; ZX Spectrum ROM routines ; By Marcos Cruz (programandala.net) ; ============================================================== ; History ; 2014-12-17: Start. Regulary improved afterwards. ; ; 2015-05-24: Changes to make the file usable as symbols input ; file by z80dasm. ; ; 2015-08-20: Add new routines. ; ; 2015-09-06: Add new routines. ; ; 2016-04-16: Add new routines. ; ; 2016-08-19: Add all remaining routines, extracted from the ROM ; disassembly; remove duplicates; change all hex addresses to ; upper case. Rename `draw` to `draw_line_24BA; use `draw` for ; the official routine. ; 2016-09-02: Rename the entry point of ADD-CHAR at 0F85 with a descriptive ; name. ; ; 2017-02-09: Add two additional entry points, and two 128K routines. ; ============================================================== rom_0058: equ 0x0058 ; XXX TODO -- name rom_abs: equ 0x346A rom_acs: equ 0x3843 rom_add_back: equ 0x3004 rom_add_ch_1: equ 0x0F8B rom_add_char: equ 0x0F81 rom_add_char_keeping_current_mode: equ 0x0F85 rom_add_rep_6: equ 0x309F rom_addend_0: equ 0x2FF9 rom_addition: equ 0x3014 rom_addn_oflw: equ 0x303C rom_all_added: equ 0x300D rom_alpha: equ 0x2C8D rom_alphanum: equ 0x2C88 rom_arc_end: equ 0x245F rom_arc_loop: equ 0x2425 rom_arc_start: equ 0x2439 rom_asn: equ 0x3833 rom_atn: equ 0x37E2 rom_auto_l_1: equ 0x17CE rom_auto_l_2: equ 0x17E1 rom_auto_l_3: equ 0x17E4 rom_auto_l_4: equ 0x17ED rom_auto_list: equ 0x1795 rom_bc_spaces: equ 0x0030 rom_be_end: equ 0x03F6 rom_be_h_and_l_lp: equ 0x03D6 rom_be_ix_plus_0: equ 0x03D4 rom_be_ix_plus_1: equ 0x03D3 rom_be_ix_plus_2: equ 0x03D2 rom_be_ix_plus_3: equ 0x03D1 rom_beep: equ 0x03F8 rom_beeper: equ 0x03B5 rom_bin_digit: equ 0x2CA2 rom_bin_end: equ 0x2CB3 rom_bits_zero: equ 0x3283 rom_border: equ 0x2294 rom_border_1: equ 0x22A6 rom_border_2297: equ 0x2297 ; secondary entry to rom_border rom_border_229b: equ 0x229B ; secondary entry to rom_border rom_both_null: equ 0x3572 rom_break_key: equ 0x1F54 ; return the carry flag reset if SHIFT and BREAK keys are both being pressed. rom_byte_comp: equ 0x3564 rom_byte_zero: equ 0x327E rom_c_arc_ge1: equ 0x235A rom_c_ent: equ 0x37B7 rom_c_r_gre_1: equ 0x233B rom_ca_10_by_a_plus_c: equ 0x2F8B rom_calculate: equ 0x335B rom_call_jump: equ 0x162C rom_call_sub: equ 0x15F7 rom_cases: equ 0x37FA rom_cat_etc: equ 0x1793 rom_cd_prms1: equ 0x247D rom_ch_add_plus_1: equ 0x0074 rom_chan_flag: equ 0x1615 rom_chan_k: equ 0x1634 rom_chan_op_1: equ 0x1610 rom_chan_open: equ 0x1601 ; open a channel (channel in A) rom_chan_p: equ 0x164D rom_chan_s: equ 0x1642 ; set flags for upper screen channel rom_chan_s_1: equ 0x1646 rom_check_end: equ 0x1BEE rom_chn_cd_lu: equ 0x162D rom_chrs: equ 0x35C9 rom_circle: equ 0x2320 rom_cl_09_1: equ 0x1CD6 rom_cl_addr: equ 0x0E9B rom_cl_all: equ 0x0DAF ; clear whole (upper) display area rom_cl_attr: equ 0x0E88 rom_cl_chan: equ 0x0D94 rom_cl_chan_a: equ 0x0DA0 rom_cl_line: equ 0x0E44 rom_cl_line_1: equ 0x0E4A rom_cl_line_2: equ 0x0E4D rom_cl_line_3: equ 0x0E80 rom_cl_sc_all: equ 0x0DFE rom_cl_scr_1: equ 0x0E05 rom_cl_scr_2: equ 0x0E0D rom_cl_scr_3: equ 0x0E19 rom_cl_scroll: equ 0x0E00 ; scroll the number of lines in the B register rom_cl_set: equ 0x0DD9 rom_cl_set_1: equ 0x0DEE rom_cl_set_2: equ 0x0DF4 rom_cl_str_lu: equ 0x1716 rom_class_01: equ 0x1C1F rom_class_02: equ 0x1C4E rom_class_03: equ 0x1C0D rom_class_04: equ 0x1C6C rom_class_05: equ 0x1C11 rom_class_07: equ 0x1C96 rom_class_09: equ 0x1CBE rom_class_0b: equ 0x1CDB rom_class_tbl: equ 0x1C01 rom_clear: equ 0x1EAC rom_clear_1: equ 0x1EB7 rom_clear_2: equ 0x1EDC rom_clear_prb: equ 0x0EDF rom_clear_run: equ 0x1EAF rom_clear_sp: equ 0x1097 rom_close: equ 0x16E5 rom_close_0_16EB: equ 0x16EB rom_close_1: equ 0x16FC rom_close_2: equ 0x1701 rom_close_str: equ 0x171C rom_cls: equ 0x0D6B ; CLS rom_cls_1: equ 0x0D87 rom_cls_2: equ 0x0D89 rom_cls_3: equ 0x0D8E rom_cls_lower: equ 0x0D6E rom_co_change: equ 0x226C rom_co_temp_1: equ 0x21E1 rom_co_temp_2: equ 0x21E2 rom_co_temp_3: equ 0x21F2 rom_co_temp_4: equ 0x21FC rom_co_temp_5: equ 0x2211 rom_co_temp_6: equ 0x2228 rom_co_temp_7: equ 0x2234 rom_co_temp_8: equ 0x223E rom_co_temp_9: equ 0x2246 rom_co_temp_a: equ 0x2257 rom_co_temp_b: equ 0x2258 rom_co_temp_c: equ 0x2273 rom_co_temp_d: equ 0x227D rom_co_temp_e: equ 0x2287 rom_code: equ 0x3669 rom_comma_sp: equ 0x1537 rom_continue: equ 0x1E5F rom_copy: equ 0x0EAC rom_copy_1: equ 0x0EB2 rom_copy_2: equ 0x0EC9 rom_copy_3: equ 0x0ED3 rom_copy_buff: equ 0x0ECD rom_copy_end: equ 0x0EDA rom_copy_l_1: equ 0x0EFD rom_copy_l_2: equ 0x0F0C rom_copy_l_3: equ 0x0F14 rom_copy_l_4: equ 0x0F18 rom_copy_l_5: equ 0x0F1E rom_copy_line: equ 0x0EF4 rom_copyright: equ 0x1539 rom_cos: equ 0x37AA rom_count_one: equ 0x31FA rom_cp_lines: equ 0x1980 rom_ctlchrtab: equ 0x0A11 rom_d_l_diag: equ 0x24D4 rom_d_l_hr_vt: equ 0x24DB rom_d_l_loop: equ 0x24CE rom_d_l_plot: equ 0x24EC rom_d_l_range: equ 0x24F7 rom_d_l_step: equ 0x24DF rom_d_letter: equ 0x2C1F rom_d_no_loop: equ 0x2C2E rom_d_rport_c: equ 0x2C05 rom_d_run: equ 0x2C15 rom_d_size: equ 0x2C2D rom_data: equ 0x1E27 rom_data_1: equ 0x1E2C rom_data_2: equ 0x1E37 rom_de_comma_paren_de_plus_1_paren: equ 0x2AEE rom_dec_jr_nz: equ 0x367A rom_dec_rpt_c: equ 0x2CCF rom_dec_sto_1: equ 0x2CD5 rom_dec_to_fp: equ 0x2C9B rom_decimal: equ 0x2CCB rom_def_fn: equ 0x1F60 rom_def_fn_1: equ 0x1F6A rom_def_fn_2: equ 0x1F7D rom_def_fn_3: equ 0x1F86 rom_def_fn_4: equ 0x1F89 rom_def_fn_5: equ 0x1F94 rom_def_fn_6: equ 0x1FA6 rom_def_fn_7: equ 0x1FBD rom_delete: equ 0x33A1 rom_differ: equ 0x19DD rom_dim: equ 0x2C02 rom_dim_clear: equ 0x2C7C rom_dim_sizes: equ 0x2C7F rom_div_34th: equ 0x31DB rom_div_loop: equ 0x31D2 rom_div_start: equ 0x31E2 rom_division: equ 0x31AF rom_divn_expt: equ 0x313D rom_dl_larger: equ 0x24CB rom_dl_x_ge_y: equ 0x24C4 rom_double_a: equ 0x338C rom_dr_3_prms: equ 0x238D rom_dr_prms: equ 0x23C1 rom_dr_sin_nz: equ 0x23A3 rom_draw: equ 0x2382 rom_draw_line: equ 0x24B7 rom_draw_line_24BA: equ 0x24BA ; entry point of the draw_line routine rom_draw_save: equ 0x2497 rom_drw_steps: equ 0x2420 rom_e_divsn: equ 0x2D6D rom_e_end: equ 0x2D7B rom_e_fetch: equ 0x2D6E rom_e_format: equ 0x2CEB rom_e_fp_jump: equ 0x2D18 rom_e_l_1: equ 0x1A15 rom_e_line_no: equ 0x19FB rom_e_loop: equ 0x2D60 rom_e_save: equ 0x2D55 rom_e_to_fp: equ 0x2D4F rom_e_tst_end: equ 0x2D71 rom_each_s_1: equ 0x1990 rom_each_s_2: equ 0x1998 rom_each_s_3: equ 0x199A rom_each_s_4: equ 0x19A5 rom_each_s_5: equ 0x19AD rom_each_s_6: equ 0x19B1 rom_each_stmt: equ 0x198B rom_ed_again: equ 0x0F30 rom_ed_blank: equ 0x1150 rom_ed_c_done: equ 0x117C rom_ed_c_end: equ 0x117E rom_ed_contr: equ 0x0F6C rom_ed_copy: equ 0x111D rom_ed_cur: equ 0x1011 rom_ed_delete: equ 0x1015 rom_ed_down: equ 0x0FF3 rom_ed_edge: equ 0x1031 rom_ed_edge_1: equ 0x103E rom_ed_edge_2: equ 0x1051 rom_ed_edit: equ 0x0FA9 rom_ed_end: equ 0x1026 rom_ed_enter: equ 0x1024 rom_ed_error: equ 0x107F rom_ed_full: equ 0x1167 rom_ed_graph: equ 0x107C rom_ed_ignore: equ 0x101E rom_ed_keys: equ 0x0F92 rom_ed_keys_t: equ 0x0FA0 rom_ed_left: equ 0x1007 rom_ed_list: equ 0x106E rom_ed_loop: equ 0x0F38 rom_ed_right: equ 0x100C rom_ed_spaces: equ 0x115E rom_ed_stop: equ 0x1001 rom_ed_symbol: equ 0x1076 rom_ed_up: equ 0x1059 rom_editor: equ 0x0F2C rom_end_calc: equ 0x369B rom_end_compl: equ 0x30A3 rom_end_tests: equ 0x358C rom_ent_table: equ 0x338E rom_error_1: equ 0x0008 rom_error_2: equ 0x0053 rom_error_3: equ 0x0055 rom_ex_or_not: equ 0x3543 rom_exchange: equ 0x343C rom_exit: equ 0x36C2 rom_exp: equ 0x36C4 rom_expt_1num: equ 0x1C82 rom_expt_2num: equ 0x1C7A rom_expt_exp: equ 0x1C8C rom_f_found: equ 0x1D7C rom_f_l_s: equ 0x1D34 rom_f_loop: equ 0x1D64 rom_f_reorder: equ 0x1D16 rom_f_use_1: equ 0x1D10 rom_fetch_num: equ 0x1CDE rom_fetch_two: equ 0x2FBA rom_find_i_1: equ 0x1E9C rom_find_int1: equ 0x1E94 rom_find_int2: equ 0x1E99 rom_first_3d: equ 0x3380 rom_fn_skpovr: equ 0x28AB rom_for: equ 0x1D03 rom_form_exp: equ 0x33DE rom_fp_0_or_1: equ 0x350B rom_fp_a_end: equ 0x2DE1 rom_fp_calc: equ 0x0028 rom_fp_calc_2: equ 0x33A2 rom_fp_delete: equ 0x2DAD rom_fp_to_a: equ 0x2DD5 rom_fp_to_bc: equ 0x2DA2 rom_free_mem: equ 0x1F1A rom_frst_less: equ 0x3585 rom_full_addn: equ 0x303E rom_g_loop: equ 0x3453 rom_gen_ent_1: equ 0x335E rom_gen_ent_2: equ 0x3362 rom_get_argt: equ 0x3783 rom_get_char: equ 0x0018 rom_get_hl_by_de: equ 0x2AF4 rom_get_mem_xx: equ 0x340F rom_get_param: equ 0x1B55 rom_go_nc_mlt: equ 0x30A5 rom_go_sub: equ 0x1EED rom_go_to: equ 0x1E67 rom_go_to_2: equ 0x1E73 rom_go_to_bc: equ 0x1E6A ; 'GO TO' line in BC register rom_go_to_hl: equ 0x1E6C ; 'GO TO' line in HL register XXX not tested rom_gre.8: equ 0x373D rom_greater_0: equ 0x34F9 rom_hl_again: equ 0x30BC rom_hl_by_de_to_hl: equ 0x30A9 ; HL=HL*DE rom_hl_end: equ 0x30BE rom_hl_hl_by_de: equ 0x30A9 rom_hl_loop: equ 0x30B1 rom_hlxde: equ 0x30A9 ; HL=HL*DE rom_i_carry: equ 0x2AE8 rom_i_restore: equ 0x2AEB rom_if: equ 0x1CF0 rom_if_1: equ 0x1D00 rom_in: equ 0x34A5 rom_in_assign: equ 0x21B9 rom_in_chan_k: equ 0x21D6 rom_in_item_1: equ 0x20C1 rom_in_item_2: equ 0x20D8 rom_in_item_3: equ 0x20ED rom_in_next_1: equ 0x21AF rom_in_next_2: equ 0x21B2 rom_in_pk_stk: equ 0x34B0 rom_in_pr_1: equ 0x211A rom_in_pr_2: equ 0x211C rom_in_pr_3: equ 0x2129 rom_in_prompt: equ 0x20FA rom_in_stop: equ 0x21D0 rom_in_var_1: equ 0x213A rom_in_var_2: equ 0x2148 rom_in_var_3: equ 0x215E rom_in_var_4: equ 0x2161 rom_in_var_5: equ 0x2174 rom_in_var_6: equ 0x219B rom_indexer: equ 0x16DC rom_indexer_1: equ 0x16DB rom_init_chan: equ 0x15AF rom_init_strm: equ 0x15C6 rom_input: equ 0x2089 rom_input_1: equ 0x2096 rom_input_2: equ 0x20AD rom_input_ad: equ 0x15E6 rom_int: equ 0x36AF rom_int_case: equ 0x3483 rom_int_exp1: equ 0x2ACC rom_int_exp2: equ 0x2ACD rom_int_fetch: equ 0x2D7F rom_int_store: equ 0x2D8E rom_int_to_fp: equ 0x2D3B rom_ix_end: equ 0x3290 rom_jump: equ 0x3686 rom_jump_2: equ 0x3687 rom_jump_true: equ 0x368F rom_k_8_and_9: equ 0x0382 rom_k_@_char: equ 0x03B2 rom_k_ch_set: equ 0x02D1 rom_k_decode: equ 0x0333 rom_k_digit: equ 0x0367 rom_k_e_let: equ 0x0341 rom_k_end: equ 0x0308 rom_k_gra_dgt: equ 0x0389 rom_k_klc_dgt: equ 0x039D rom_k_klc_let: equ 0x034F rom_k_look_up: equ 0x034A rom_k_main: equ 0x032C rom_k_new: equ 0x02F1 rom_k_repeat: equ 0x0310 rom_k_st_loop: equ 0x02C6 rom_k_test: equ 0x031E rom_k_tokens: equ 0x0364 rom_key_3keys: equ 0x029F rom_key_bits: equ 0x02A1 rom_key_chan: equ 0x1113 rom_key_contr: equ 0x10FA rom_key_data: equ 0x1105 rom_key_decode: equ 0x0333 rom_key_done2: equ 0x111B rom_key_done: equ 0x02AB rom_key_flag: equ 0x10F4 rom_key_input: equ 0x10A8 rom_key_int: equ 0x0048 rom_key_line: equ 0x0296 rom_key_m_cl: equ 0x10DB rom_key_mode: equ 0x10E6 rom_key_next: equ 0x110D rom_key_scan: equ 0x028E rom_key_test: equ 0x031E rom_keyboard: equ 0x02BF rom_l_add_string: equ 0x2BAF rom_l_char: equ 0x2B3E rom_l_delete_string: equ 0x2B72 rom_l_each_ch: equ 0x2B0B rom_l_enter: equ 0x2BA6 rom_l_exists: equ 0x2B66 rom_l_first: equ 0x2BEA rom_l_in_w_or_s: equ 0x2BA3 rom_l_length: equ 0x2B9B rom_l_new_string: equ 0x2BC0 rom_l_no_sp: equ 0x2B0C rom_l_numeric: equ 0x2B59 rom_l_single: equ 0x2B4F rom_l_spaces: equ 0x2B29 rom_l_string: equ 0x2BC6 rom_l_test_ch: equ 0x2B1F rom_last: equ 0x386C rom_ld_8_bits: equ 0x05CA rom_ld_block: equ 0x0802 rom_ld_break: equ 0x056B rom_ld_bytes: equ 0x0556 rom_ld_ch_pr: equ 0x07AD rom_ld_cont_1: equ 0x0819 rom_ld_cont_2: equ 0x0825 rom_ld_contrl: equ 0x0808 rom_ld_data: equ 0x082E rom_ld_data_1: equ 0x084C rom_ld_dec: equ 0x05C4 rom_ld_delay: equ 0x05E9 rom_ld_edge_1: equ 0x05E7 rom_ld_edge_2: equ 0x05E3 rom_ld_flag: equ 0x05B3 rom_ld_leader: equ 0x0580 rom_ld_look_h: equ 0x0767 rom_ld_loop: equ 0x05A9 rom_ld_marker: equ 0x05C8 rom_ld_name: equ 0x07A6 rom_ld_next: equ 0x05C2 rom_ld_prog: equ 0x0873 rom_ld_prog_1: equ 0x08AD rom_ld_sample: equ 0x05ED rom_ld_start: equ 0x056C rom_ld_sync: equ 0x058F rom_ld_type: equ 0x078A rom_ld_verify: equ 0x05BD rom_ld_wait: equ 0x0574 rom_len: equ 0x3674 rom_less_0: equ 0x3506 rom_less_mask: equ 0x328A rom_let: equ 0x2AFF rom_line_ad_1: equ 0x1974 rom_line_addr: equ 0x196E rom_line_draw: equ 0x2477 rom_line_end: equ 0x1BB3 rom_line_new: equ 0x1B9E rom_line_no: equ 0x1695 rom_line_no_a: equ 0x1691 rom_line_run: equ 0x1B8A rom_line_scan: equ 0x1B17 rom_line_use: equ 0x1BBF rom_line_zero: equ 0x168F rom_list: equ 0x17F9 rom_list_1: equ 0x17FB rom_list_2: equ 0x1814 rom_list_3: equ 0x181A rom_list_4: equ 0x181F rom_list_5: equ 0x1822 rom_list_all: equ 0x1833 rom_list_all_2: equ 0x1835 rom_llist: equ 0x17F5 rom_ln: equ 0x3713 rom_ln_fetch: equ 0x190F rom_ln_store: equ 0x191C rom_loc_mem: equ 0x3406 rom_log_paren_2_power_a_paren: equ 0x2DC1 rom_look_p_1: equ 0x1D8B rom_look_p_2: equ 0x1DA3 rom_look_prog: equ 0x1D86 rom_look_vars: equ 0x28B2 rom_lprint: equ 0x1FC9 rom_main_1: equ 0x12A9 rom_main_2: equ 0x12AC rom_main_3: equ 0x12CF rom_main_4: equ 0x1303 rom_main_5: equ 0x133C rom_main_5_1349: equ 0x1349 rom_main_6: equ 0x1373 rom_main_7: equ 0x1376 rom_main_8: equ 0x1384 rom_main_9: equ 0x1386 rom_main_add1: equ 0x157D rom_main_add2: equ 0x15AB rom_main_add: equ 0x155D rom_main_exec: equ 0x12A2 rom_main_g: equ 0x1313 ; runtime error (error in A) rom_main_keys: equ 0x0205 rom_make_expt: equ 0x313B rom_make_room: equ 0x1655 rom_mask_int: equ 0x0038 rom_me_contrl: equ 0x08B6 rom_me_ent_1: equ 0x093E rom_me_ent_2: equ 0x0955 rom_me_ent_3: equ 0x0958 rom_me_enter: equ 0x092C rom_me_new_l2: equ 0x08EB rom_me_new_lp: equ 0x08D2 rom_me_old_l1: equ 0x08DF rom_me_old_lp: equ 0x08D7 rom_me_old_v1: equ 0x0901 rom_me_old_v2: equ 0x0909 rom_me_old_v3: equ 0x0912 rom_me_old_v4: equ 0x091E rom_me_old_vp: equ 0x08F9 rom_me_var_l1: equ 0x0921 rom_me_var_l2: equ 0x0923 rom_me_var_lp: equ 0x08F0 rom_mlt_loop: equ 0x3114 rom_move_fp: equ 0x33C0 rom_mult_long: equ 0x30F0 rom_mult_oflw: equ 0x30EF rom_mult_rslt: equ 0x30EA rom_multiply: equ 0x30CA rom_n_mod_m: equ 0x36A0 rom_n_negtv: equ 0x3705 rom_near_zero: equ 0x3159 rom_neg_byte: equ 0x2FAF rom_neg_test: equ 0x3474 rom_negate: equ 0x346E rom_new: equ 0x11B7 rom_next: equ 0x1DAB rom_next_1: equ 0x1DE2 rom_next_2: equ 0x1DE9 rom_next_2num: equ 0x1C79 rom_next_char: equ 0x0020 rom_next_line: equ 0x1BD1 rom_next_loop: equ 0x1DDA rom_next_o_1: equ 0x19C7 rom_next_o_2: equ 0x19CE rom_next_o_3: equ 0x19D5 rom_next_o_4: equ 0x19D6 rom_next_o_5: equ 0x19DB rom_next_one: equ 0x19B8 rom_nil_bytes: equ 0x3272 rom_nmi_vect: equ 0x121C rom_no_add: equ 0x311B rom_no_and_no: equ 0x3524 rom_no_l_eql_etc: equ 0x353B rom_no_reset: equ 0x0070 rom_no_rstore: equ 0x31F9 rom_normalise: equ 0x316C rom_norml_now: equ 0x3186 rom_not: equ 0x3501 rom_not_bin: equ 0x2CB8 rom_not_used: equ 0x1988 rom_nu_or_str: equ 0x354E rom_number: equ 0x18B6 rom_numeric: equ 0x2D1B rom_nxt_dgt_1: equ 0x2CDA rom_nxt_dgt_2: equ 0x2D40 rom_offst_tbl: equ 0x1A48 rom_oflow_clr: equ 0x3195 rom_oflw1_clr: equ 0x3146 rom_oflw2_clr: equ 0x3151 rom_one: equ 0x386A rom_one_shift: equ 0x2FE5 rom_one_space: equ 0x1652 rom_op_str_lu: equ 0x177A rom_open: equ 0x1736 rom_open_1: equ 0x1756 rom_open_2: equ 0x175D rom_open_3: equ 0x1767 rom_open_end: equ 0x178B rom_open_k: equ 0x1781 rom_open_p: equ 0x1789 rom_open_s: equ 0x1785 rom_or: equ 0x351B rom_other_str: equ 0x35B7 rom_out: equ 0x1E7A rom_out_c_1: equ 0x18F3 rom_out_c_2: equ 0x1909 rom_out_ch_1: equ 0x195A rom_out_ch_2: equ 0x1968 rom_out_ch_3: equ 0x196C rom_out_char: equ 0x1937 rom_out_code: equ 0x15EF rom_out_curs: equ 0x18E1 rom_out_flash: equ 0x18C1 rom_out_line1: equ 0x1865 rom_out_line2: equ 0x187D rom_out_line3: equ 0x1881 rom_out_line4: equ 0x1894 rom_out_line5: equ 0x18A1 rom_out_line6: equ 0x18B4 rom_out_line: equ 0x1855 rom_out_num_1: equ 0x1A1B rom_out_num_2: equ 0x1A28 rom_out_num_3: equ 0x1A30 rom_out_num_4: equ 0x1A42 rom_out_sp_1: equ 0x192B rom_out_sp_2: equ 0x1925 rom_out_sp_no: equ 0x192A rom_p_beep: equ 0x1AE3 rom_p_border: equ 0x1AF5 rom_p_bright: equ 0x1AEE rom_p_cat: equ 0x1B14 rom_p_circle: equ 0x1AE7 rom_p_clear: equ 0x1ABB rom_p_close: equ 0x1B02 rom_p_cls: equ 0x1ABE rom_p_cont: equ 0x1AB8 rom_p_copy: equ 0x1AD6 rom_p_data: equ 0x1ACC rom_p_def_fn: equ 0x1AF9 rom_p_dim: equ 0x1AA2 rom_p_draw: equ 0x1AD2 rom_p_erase: equ 0x1B10 rom_p_flash: equ 0x1AED rom_p_for: equ 0x1A90 rom_p_format: equ 0x1B06 rom_p_go_sub: equ 0x1A86 rom_p_go_to: equ 0x1A7D rom_p_if: equ 0x1A81 rom_p_ink: equ 0x1AEB rom_p_input: equ 0x1A9F rom_p_int_sto: equ 0x2D8C rom_p_inverse: equ 0x1AEF rom_p_let: equ 0x1A7A rom_p_list: equ 0x1AAE rom_p_llist: equ 0x1ADC rom_p_load: equ 0x1AE0 rom_p_lprint: equ 0x1AD9 rom_p_merge: equ 0x1AE2 rom_p_move: equ 0x1B0A rom_p_new: equ 0x1AA8 rom_p_next: equ 0x1A98 rom_p_open: equ 0x1AFC rom_p_out: equ 0x1AF1 rom_p_over: equ 0x1AF0 rom_p_paper: equ 0x1AEC rom_p_pause: equ 0x1AC5 rom_p_plot: equ 0x1AC1 rom_p_poke: equ 0x1AB1 rom_p_print: equ 0x1A9C rom_p_random: equ 0x1AB5 rom_p_read: equ 0x1AC9 rom_p_rem: equ 0x1AA5 rom_p_restore: equ 0x1ACF rom_p_return: equ 0x1A8D rom_p_run: equ 0x1AAB rom_p_save: equ 0x1ADF rom_p_stop: equ 0x1A8A rom_p_verify: equ 0x1AE1 rom_pass_by: equ 0x1E39 rom_pause: equ 0x1F3A rom_pause_1: equ 0x1F3D rom_pause_2: equ 0x1F49 rom_pause_end: equ 0x1F4F rom_peek: equ 0x34AC rom_perm: equ 0x1C96 rom_pf_all_9: equ 0x2EB8 rom_pf_bits: equ 0x2E7B rom_pf_bytes: equ 0x2E8A rom_pf_count: equ 0x2F2D rom_pf_dc_out: equ 0x2F5E rom_pf_dec_0s: equ 0x2F64 rom_pf_digits: equ 0x2EA1 rom_pf_e_frmt: equ 0x2F6C rom_pf_e_pos: equ 0x2F83 rom_pf_e_sbrn: equ 0x2F4A rom_pf_e_sign: equ 0x2F85 rom_pf_fr_dgt: equ 0x2EEC rom_pf_fr_exx: equ 0x2EEF rom_pf_fractn: equ 0x2ECF rom_pf_frn_lp: equ 0x2EDF rom_pf_insert: equ 0x2EA9 rom_pf_large: equ 0x2E56 rom_pf_loop: equ 0x2E01 rom_pf_medium: equ 0x2E6F rom_pf_more: equ 0x2ECB rom_pf_negtve: equ 0x2DF2 rom_pf_not_e: equ 0x2F46 rom_pf_out_dt: equ 0x2F59 rom_pf_out_lp: equ 0x2F52 rom_pf_postve: equ 0x2DF8 rom_pf_r_back: equ 0x2F25 rom_pf_rnd_lp: equ 0x2F18 rom_pf_round: equ 0x2F0C rom_pf_save: equ 0x2E1E rom_pf_small: equ 0x2E24 rom_pf_test_2: equ 0x2EB3 rom_pixel_add: equ 0x22AA rom_pl_tst_in: equ 0x22FD rom_plot: equ 0x22DC rom_plot_22df: equ 0x22DF ; secondary entry to PLOT rom_plot_end: equ 0x2303 rom_plot_loop: equ 0x22F0 rom_plot_sub: equ 0x22E5 ; the plot subroutine (coords in BC) rom_po_1_oper: equ 0x0A7A rom_po_2_oper: equ 0x0A75 rom_po_able: equ 0x0AD9 rom_po_any: equ 0x0B24 rom_po_at_err: equ 0x0AAC rom_po_at_set: equ 0x0ABF rom_po_attr: equ 0x0BDB rom_po_attr_1: equ 0x0BFA rom_po_attr_2: equ 0x0C08 rom_po_back_1: equ 0x0A23 rom_po_back_2: equ 0x0A38 rom_po_back_3: equ 0x0A3A rom_po_change: equ 0x0A80 rom_po_char: equ 0x0B65 rom_po_char_2: equ 0x0B6A rom_po_char_3: equ 0x0B76 rom_po_comma: equ 0x0A5F rom_po_cont: equ 0x0A87 rom_po_each: equ 0x0C22 rom_po_enter: equ 0x0A4F rom_po_f_pr: equ 0x0B1D rom_po_fetch: equ 0x0B03 rom_po_fill: equ 0x0AC3 rom_po_gr_1: equ 0x0B38 rom_po_gr_2: equ 0x0B3E rom_po_gr_3: equ 0x0B4C rom_po_msg: equ 0x0C0A rom_po_quest: equ 0x0A69 rom_po_right: equ 0x0A3D rom_po_save: equ 0x0C3B rom_po_scr: equ 0x0C55 rom_po_scr_2: equ 0x0C88 rom_po_scr_3: equ 0x0CD2 rom_po_scr_3a: equ 0x0CF0 rom_po_scr_4: equ 0x0D02 rom_po_scr_4a: equ 0x0D1C rom_po_scr_4b: equ 0x0D2D rom_po_search: equ 0x0C41 rom_po_space: equ 0x0AD0 rom_po_st_e: equ 0x0AF0 rom_po_st_pr: equ 0x0AFC rom_po_step: equ 0x0C44 rom_po_store: equ 0x0ADC rom_po_t: equ 0x0B5F rom_po_t_and_udg: equ 0x0B52 rom_po_t_udg: equ 0x0B52 rom_po_tab: equ 0x0AC2 rom_po_table: equ 0x0C14 rom_po_tokens: equ 0x0C10 rom_po_tr_sp: equ 0x0C35 rom_po_tv_1: equ 0x0A7D rom_po_tv_2: equ 0x0A6D rom_point_lp: equ 0x22D4 rom_point_sub: equ 0x22CB rom_point_sub_22ce: equ 0x22CE ; secondary entry to POINT-SUB rom_pointers: equ 0x1664 rom_poke: equ 0x1E80 rom_pr_all: equ 0x0B7F ; "print all characters" rom_pr_all_1: equ 0x0B93 rom_pr_all_2: equ 0x0BA4 rom_pr_all_3: equ 0x0BB6 rom_pr_all_4: equ 0x0BB7 rom_pr_all_5: equ 0x0BC1 rom_pr_all_6: equ 0x0BD3 rom_pr_at_tab: equ 0x201E rom_pr_end_z: equ 0x2045 rom_pr_item_1: equ 0x1FFC rom_pr_item_2: equ 0x200E rom_pr_item_3: equ 0x2024 rom_pr_posn_1: equ 0x204E rom_pr_posn_2: equ 0x2061 rom_pr_posn_3: equ 0x2067 rom_pr_posn_4: equ 0x206E rom_pr_st_end: equ 0x2048 rom_pr_string: equ 0x203C ; print a string (start in DE, count in BC) rom_prb_bytes: equ 0x0EE7 rom_prep_add: equ 0x2F9B rom_prep_m_or_d: equ 0x30C0 rom_print: equ 0x1FCD rom_print_1: equ 0x1FCF rom_print_2: equ 0x1FDF rom_print_3: equ 0x1FE5 rom_print_4: equ 0x1FF2 rom_print_a: equ 0x0010 rom_print_a_2: equ 0x15F2 rom_print_cr: equ 0x1FF5 rom_print_fp: equ 0x2DE3 ; print a floating point number rom_print_out: equ 0x09F4 rom_print_string: equ 0x203C rom_ptr_done: equ 0x167F rom_ptr_next: equ 0x166B rom_r_i_store: equ 0x365F rom_ram_check: equ 0x11DA rom_ram_done: equ 0x11EF rom_ram_fill: equ 0x11DC rom_ram_read: equ 0x11E2 rom_ram_set: equ 0x1219 rom_rand_1: equ 0x1E5A rom_randomize: equ 0x1E4F rom_re_entry: equ 0x3365 rom_re_st_two: equ 0x3293 rom_re_stack: equ 0x3297 rom_read: equ 0x1DED rom_read_1: equ 0x1E0A rom_read_2: equ 0x1E1E rom_read_3: equ 0x1DEC rom_read_in: equ 0x3645 rom_rec_edit: equ 0x16D4 rom_reclaim_1: equ 0x19E5 rom_reclaim_2: equ 0x19E8 rom_rem: equ 0x1BB2 rom_remove_fp: equ 0x11A7 rom_report_0: equ 0x1BB0 rom_report_1: equ 0x1DD8 rom_report_2: equ 0x1C2E rom_report_2a: equ 0x0670 rom_report_3: equ 0x2A20 rom_report_4: equ 0x1F15 rom_report_5: equ 0x0C86 rom_report_6: equ 0x31AD rom_report_6b: equ 0x3703 rom_report_7: equ 0x1F36 rom_report_8: equ 0x15E4 rom_report_a: equ 0x34E7 rom_report_ab: equ 0x371A rom_report_b: equ 0x046C rom_report_bb: equ 0x1E9F rom_report_bc: equ 0x24F9 rom_report_bd: equ 0x35DC rom_report_c: equ 0x1C8A rom_report_cb: equ 0x21CE rom_report_d: equ 0x0D00 rom_report_da: equ 0x0552 rom_report_dc: equ 0x0F0A rom_report_e: equ 0x1E08 rom_report_fa: equ 0x0642 rom_report_fb: equ 0x1765 rom_report_h: equ 0x21D4 rom_report_i: equ 0x1D84 rom_report_j: equ 0x15C4 rom_report_k: equ 0x2244 rom_report_l: equ 0x1B7B rom_report_m: equ 0x1EDA rom_report_n: equ 0x1BEC rom_report_oa: equ 0x160E rom_report_ob: equ 0x1725 rom_report_p: equ 0x2812 rom_report_q: equ 0x288B rom_report_r: equ 0x0806 rom_reserve: equ 0x169E rom_reset: equ 0x0066 rom_rest_run: equ 0x1E45 rom_restk_sub: equ 0x3296 rom_restore: equ 0x1E42 rom_result_ok: equ 0x370C rom_return: equ 0x1F23 rom_rom_trap: equ 0x1708 rom_rpt_mesgs: equ 0x1391 rom_rs_nrmlse: equ 0x32B1 rom_rs_store: equ 0x32BD rom_rslt_zero: equ 0x370E rom_rstk_loop: equ 0x32B2 rom_run: equ 0x1EA1 rom_s_2_coord: equ 0x2522 rom_s_alphnum: equ 0x2684 rom_s_attr: equ 0x2672 rom_s_attr_s: equ 0x2580 rom_s_attr_s_2583: equ 0x2583 ; secondary entry to S-ATTR-S rom_s_bracket: equ 0x25E8 rom_s_cont_1: equ 0x26DD rom_s_cont_2: equ 0x2712 rom_s_cont_3: equ 0x2713 rom_s_decimal: equ 0x268D rom_s_fn: equ 0x25F5 rom_s_fn_sbrn: equ 0x27BD rom_s_ik_dollar_stk: equ 0x2660 rom_s_ink_dollar_en: equ 0x2665 rom_s_inkey_dollar: equ 0x2634 rom_s_letter: equ 0x26C9 rom_s_loop: equ 0x2734 rom_s_loop_1: equ 0x24FF rom_s_loopend: equ 0x2770 rom_s_negate: equ 0x26DF rom_s_next: equ 0x2790 rom_s_no_to_string: equ 0x2707 rom_s_not_and: equ 0x2788 rom_s_numeric: equ 0x26C3 rom_s_opertr: equ 0x2723 rom_s_pi: equ 0x2627 rom_s_pi_end: equ 0x2630 rom_s_point: equ 0x267B rom_s_push_po: equ 0x270D rom_s_q_again: equ 0x25BE rom_s_q_copy: equ 0x25CB rom_s_q_prms: equ 0x25D9 rom_s_quote: equ 0x25B3 rom_s_quote_s: equ 0x250F rom_s_rnd: equ 0x25F8 rom_s_rnd_end: equ 0x2625 rom_s_rport_c2: equ 0x2761 rom_s_rport_c: equ 0x252D rom_s_runtest: equ 0x2764 rom_s_sc_mtch: equ 0x255A rom_s_sc_rows: equ 0x255D rom_s_scr_nxt: equ 0x2573 rom_s_scr_sto: equ 0x257D rom_s_screen_dollar: equ 0x2668 rom_s_scrn_dollar_s: equ 0x2535 rom_s_scrn_lp: equ 0x254F rom_s_scrn_s: equ 0x2535 rom_s_scrn_s_2538: equ 0x2538 ; secondary entry to S-SCRN$-S rom_s_sd_skip: equ 0x26B6 rom_s_stk_dec: equ 0x26B5 rom_s_stk_lst: equ 0x274C rom_s_string: equ 0x25DB rom_s_syntest: equ 0x275B rom_s_tighter: equ 0x2773 rom_s_u_plus: equ 0x25AF rom_sa_1_sec: equ 0x0991 rom_sa_8_bits: equ 0x0525 rom_sa_all: equ 0x075A ; tape save/load rom_sa_bit_1: equ 0x0514 rom_sa_bit_2: equ 0x0511 rom_sa_blank: equ 0x0629 rom_sa_bytes: equ 0x04C2 rom_sa_code: equ 0x06C3 rom_sa_code_1: equ 0x06E1 rom_sa_code_2: equ 0x06F0 rom_sa_code_3: equ 0x06F5 rom_sa_code_4: equ 0x06F9 rom_sa_contrl: equ 0x0970 rom_sa_data: equ 0x0652 rom_sa_data_1: equ 0x0692 rom_sa_delay: equ 0x053C rom_sa_flag: equ 0x04D0 rom_sa_leader: equ 0x04D8 rom_sa_line: equ 0x0716 rom_sa_line_1: equ 0x0723 rom_sa_loop: equ 0x04FE rom_sa_loop_p: equ 0x0505 rom_sa_name: equ 0x064B rom_sa_null: equ 0x0644 rom_sa_or_ld_end: equ 0x0554 rom_sa_or_ld_ret: equ 0x053F rom_sa_out: equ 0x051C rom_sa_parity: equ 0x050E rom_sa_scr_dollar: equ 0x06A0 rom_sa_set: equ 0x051A rom_sa_space: equ 0x0621 rom_sa_start: equ 0x0507 rom_sa_sync_1: equ 0x04EA rom_sa_sync_2: equ 0x04F2 rom_sa_type_0: equ 0x073A rom_sa_type_3: equ 0x0710 rom_sa_v_new: equ 0x0685 rom_sa_v_old: equ 0x0672 rom_sa_v_type: equ 0x068F rom_save_etc: equ 0x0605 rom_scan_ent: equ 0x336C rom_scan_func: equ 0x2596 rom_scan_loop: equ 0x1B52 rom_scanning: equ 0x24FB rom_scrl_mssg: equ 0x0CF8 rom_sec_plus: equ 0x3575 rom_secnd_low: equ 0x356B rom_separator: equ 0x1B6F rom_series_xx: equ 0x3449 rom_set_de: equ 0x1195 rom_set_hl: equ 0x1190 rom_set_min: equ 0x16B0 rom_set_permanent_colors_0x1CAD: equ 0x1CAD ; special entry point rom_set_permanent_colors_1CAD: equ 0x1CAD ; special entry point rom_set_stk: equ 0x16C5 rom_set_work: equ 0x16BF rom_sf_arg_lp: equ 0x2843 rom_sf_arg_vl: equ 0x2852 rom_sf_argmt1: equ 0x2802 rom_sf_argmts: equ 0x27D9 rom_sf_brkt_1: equ 0x27D0 rom_sf_brkt_2: equ 0x27E4 rom_sf_cp_def: equ 0x2814 rom_sf_flag_6: equ 0x27E9 rom_sf_fnd_df: equ 0x2808 rom_sf_not_fd: equ 0x2825 rom_sf_r_br_2: equ 0x2885 rom_sf_rprt_c: equ 0x27E6 rom_sf_run: equ 0x27F7 rom_sf_syn_en: equ 0x27F4 rom_sf_value: equ 0x288D rom_sf_values: equ 0x2831 rom_sfa_cp_vr: equ 0x296B rom_sfa_end: equ 0x2991 rom_sfa_loop: equ 0x295A rom_sfa_match: equ 0x2981 rom_sgn: equ 0x3492 rom_shift_fp: equ 0x2FDD rom_shift_len: equ 0x3055 rom_shift_one: equ 0x316E rom_sign_done: equ 0x2CFE rom_sign_flag: equ 0x2CF2 rom_sign_to_c: equ 0x3507 rom_sin: equ 0x37B5 rom_skip_cons: equ 0x33F7 rom_skip_next: equ 0x33F8 rom_skip_over: equ 0x007D rom_skip_zero: equ 0x315E rom_skips: equ 0x0090 rom_sl_define: equ 0x2A94 rom_sl_over: equ 0x2AA8 rom_sl_rpt_c: equ 0x2A7A rom_sl_second: equ 0x2A81 rom_sl_store: equ 0x2AAD rom_slicing: equ 0x2A52 rom_small: equ 0x37F8 rom_spare: equ 0x386E rom_sqr: equ 0x384A rom_st_e_part: equ 0x2CFF rom_st_mem_xx: equ 0x342D rom_stack_a: equ 0x2D28 rom_stack_bc: equ 0x2D2B ; stack BC register pair rom_stack_fetch: equ 0x2BF1 ; get last value from calculator stack rom_stack_num: equ 0x33B4 rom_start: equ 0x0000 rom_start_new: equ 0x11CB rom_stk_code: equ 0x3671 rom_stk_const: equ 0x33C8 rom_stk_const_xx: equ 0x341B rom_stk_data: equ 0x33C6 rom_stk_digit: equ 0x2D22 rom_stk_f_arg: equ 0x2951 rom_stk_fetch: equ 0x2BF1 rom_stk_pntrs: equ 0x35BF rom_stk_st_0: equ 0x2AB1 rom_stk_sto_string: equ 0x2AB2 rom_stk_store: equ 0x2AB6 rom_stk_to_a: equ 0x2314 rom_stk_to_bc: equ 0x2307 rom_stk_var: equ 0x2996 rom_stk_zeros: equ 0x33F1 rom_stmt_l_1: equ 0x1B29 rom_stmt_loop: equ 0x1B28 rom_stmt_next: equ 0x1BF4 rom_stmt_r_1: equ 0x1B7D rom_stmt_ret: equ 0x1B76 rom_stop: equ 0x1CEE rom_str_alter: equ 0x2070 rom_str_and_no: equ 0x352D rom_str_data1: equ 0x1727 rom_str_data: equ 0x171E rom_str_dollar: equ 0x361F rom_str_test: equ 0x3588 rom_strings: equ 0x3559 rom_strs_add: equ 0x359C rom_strt_mlt: equ 0x3125 rom_subn_only: equ 0x31F2 rom_subtract: equ 0x300F rom_sv_arrays: equ 0x29AE rom_sv_ch_add: equ 0x29E0 rom_sv_close: equ 0x29D8 rom_sv_comma: equ 0x29C3 rom_sv_count: equ 0x29E7 rom_sv_dim: equ 0x2A48 rom_sv_elem_string: equ 0x2A2C rom_sv_loop: equ 0x29EA rom_sv_mult: equ 0x29FB rom_sv_number: equ 0x2A22 rom_sv_ptr: equ 0x29C0 rom_sv_rpt_c: equ 0x2A12 rom_sv_simple_string: equ 0x29A1 rom_sv_slice: equ 0x2A45 rom_sv_slice?: equ 0x2A49 rom_swap_byte: equ 0x343E rom_syntax_z: equ 0x2530 rom_t_expnent: equ 0x326C rom_t_first: equ 0x3233 rom_t_gr_zero: equ 0x3221 rom_t_numeric: equ 0x3252 rom_t_shift: equ 0x3261 rom_t_small: equ 0x323F rom_t_store: equ 0x3267 rom_t_test: equ 0x325E rom_tan: equ 0x37DA rom_tape_msgs: equ 0x09A1 rom_tbl_addrs: equ 0x32D7 rom_tbl_of_ops: equ 0x2795 rom_tbl_priors: equ 0x27B0 rom_temp_ptr1: equ 0x0077 rom_temp_ptr2: equ 0x0078 rom_temps: equ 0x0D4D ; copy the permanent color items to the temporary ones rom_temps_1: equ 0x0D5B rom_temps_2: equ 0x0D65 rom_test_5_sp: equ 0x33A9 rom_test_char: equ 0x001C rom_test_neg: equ 0x307C rom_test_norm: equ 0x3155 rom_test_room: equ 0x1F05 rom_test_zero: equ 0x34E9 rom_tkn_table: equ 0x0095 rom_to_power: equ 0x3851 rom_truncate: equ 0x3214 rom_two_p_1: equ 0x1E8E rom_two_param: equ 0x1E85 rom_unstack_z: equ 0x1FC3 rom_use_252: equ 0x2495 rom_use_zero: equ 0x1CE6 rom_usr_no: equ 0x34B3 rom_usr_range: equ 0x34D3 rom_usr_stack: equ 0x34E4 rom_usr_string: equ 0x34BC rom_v_80_byte: equ 0x2932 rom_v_char: equ 0x28D4 rom_v_each: equ 0x2900 rom_v_end: equ 0x294B rom_v_found_1: equ 0x293E rom_v_found_2: equ 0x293F rom_v_get_ptr: equ 0x2929 rom_v_matches: equ 0x2912 rom_v_next: equ 0x292A rom_v_pass: equ 0x2943 rom_v_rport_c: equ 0x360C rom_v_run: equ 0x28FD rom_v_run_or_syn: equ 0x28EF rom_v_spaces: equ 0x2913 rom_v_str_var: equ 0x28DE rom_v_syntax: equ 0x2934 rom_v_test_fn: equ 0x28E3 rom_val_dollar: equ 0x35DE rom_val_fet_1: equ 0x1C56 rom_val_fet_2: equ 0x1C59 rom_valid: equ 0x371C rom_var_a_1: equ 0x1C22 rom_var_a_2: equ 0x1C30 rom_var_a_3: equ 0x1C46 rom_vr_cont_1: equ 0x07E9 rom_vr_cont_2: equ 0x07F4 rom_vr_cont_3: equ 0x0800 rom_vr_contrl: equ 0x07CB rom_wait_key1: equ 0x15DE rom_wait_key: equ 0x15D4 rom_x_large: equ 0x326D rom_x_neg: equ 0x36B7 rom_xis0: equ 0x385D rom_yneg: equ 0x37A8 rom_zero_rslt: equ 0x315D rom_zeros_4_or_5: equ 0x2FFB rom_zplus: equ 0x37A1 rom_zx81_name: equ 0x04AA ; ZX Spectrum 128K ROM_SWAP: equ 0x5B00 ; 128K paging subroutine in RAM rom_128_new: equ 0x0057