From 125f9faa01e183058e60a5b65ea9c58000d8ecbe Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Tue, 7 Nov 2023 03:03:24 +1000 Subject: [PATCH] ... --- SP_TRDOS.ASM | 286 +++--- Shared_Includes | 2 +- TRDOS/TR_RMD_S.ASZ | 6 +- ZX_EXP.ASM | 4 +- ZX_EXP/EXP_HDD.ASM | 135 ++- ZX_EXP2.ASM | 13 +- inc/rom_routines.inc | 2258 +++++++++++++++++++++--------------------- 7 files changed, 1346 insertions(+), 1358 deletions(-) diff --git a/SP_TRDOS.ASM b/SP_TRDOS.ASM index cf9b774..eeb9234 100644 --- a/SP_TRDOS.ASM +++ b/SP_TRDOS.ASM @@ -9,6 +9,8 @@ ;*************************************** INCLUDE 'INC/SPRINT00.INC' + INCLUDE 'inc/rom_routines.inc' + INCLUDE 'Shared_Includes/constants/zx_char_codes.inc' ;*************************************** ;CNF_PORT EQU #74 AUTO_4000 EQU 04000H @@ -214,8 +216,7 @@ AUTO_00C8: LD HL,RET_INS AUTO_0100: LD (HL),201 - RST RST20 - DW 00EDFH + RST_ROM ROUTINE.clear_prb LD HL,L_SCR_SIZE LD (HL),2 LD HL,AUTO_128B @@ -254,8 +255,7 @@ AUTO_0140: LD (NEW_PPC),HL XOR A LD (NEW_S_PPC),A - RST RST20 - DW 016B0H + RST_ROM ROUTINE.set_min LD HL,(BAS_PROG) DEC HL LD (DATA_ADR),HL @@ -264,8 +264,7 @@ AUTO_0140: OR A LD HL,AUTO_1B76 JR Z,AUTO_0166 - RST RST20 - DW 01BB0H + RST_ROM ROUTINE.report_0 AUTO_0166: PUSH HL LD HL,RET_INS @@ -498,7 +497,7 @@ AUTO_030A: CALL AUTO_3DC8 ; SET CONT_DISK POP AF AUTO_031A: - LD HL,AUTO_2FF3 ; СПИСОК КОМАНД + LD HL,TRDOS_CMD.LIST ; СПИСОК КОМАНД DEC HL LD C,0 AUTO_0320: @@ -522,7 +521,7 @@ AUTO_0320: LD HL,FLAGS RES 7,(HL) LD B,0 - LD HL,AUTO_3008 + LD HL,TRDOS_CMD.TABLE DEC C SLA C ADD HL,BC @@ -1215,18 +1214,15 @@ AUTO_1052: PUSH BC PUSH DE AUTO_1056: - RST RST20 - DW 0028EH + RST_ROM ROUTINE.key_scan AUTO_1059: LD C,0 JR NZ,AUTO_1056 - RST RST20 - DW 0031EH + RST_ROM ROUTINE.key_test JR NC,AUTO_1056 DEC D LD E,A - RST RST20 - DW 00333H + RST_ROM ROUTINE.key_decode POP DE POP BC POP HL @@ -1966,9 +1962,8 @@ AUTO_166F: LD (VAR_1),HL JP AUTO_1E23 AUTO_1680: - RST RST20 - DW 01F1AH - LD HL,0FFFFh + RST_ROM ROUTINE.free_mem + LD HL,#FFFF SBC HL,BC LD A,H CP 16 @@ -2435,8 +2430,7 @@ CMD_MERGE: LD (MED_LEN),BC PUSH BC INC BC - RST RST20 - DW 00030H + RST_ROM ROUTINE.bc_spaces AUTO_19D1: LD (HL),128 EX DE,HL @@ -2450,8 +2444,7 @@ AUTO_19D1: CALL AUTO_1921 POP HL LD DE,(BAS_PROG) - RST RST20 - DW 008D2H + RST_ROM ROUTINE.me_new_lp JP AUTO_03E1 AUTO_19F2: EX DE,HL @@ -2463,8 +2456,7 @@ AUTO_19F2: LD B,H LD C,L AUTO_19FD: - RST RST20 - DW 01F05H + RST_ROM ROUTINE.test_room RET AUTO_1A01: LD DE,(BAS_PROG) @@ -2498,8 +2490,7 @@ AUTO_1A31: POP DE POP HL PUSH BC - RST RST20 - DW 019E5H + RST_ROM ROUTINE.reclaim_1 POP BC CALL AUTO_1E32 INC HL @@ -2963,14 +2954,13 @@ CMD_RUN: AUTO_1D63: LD HL,BAS_DOS_FLG LD A,(HL) - DB 254 -AUTO_1D68: - RST R38 + CP #FF LD (HL),0 RET NZ - RST RST20 - DW 016BFH + RST_ROM ROUTINE.set_work RET +; Проверка, идет ли проверка строки на синтаксис или выполнение команды. +; Если идет выполнение, то флаг Z будет сброшен, иначе установлен. AUTO_1D70: BIT 7,(IY+1) RET @@ -2986,32 +2976,26 @@ AUTO_1D7B: OPEN_CH0: XOR A AUTO_1D84: - RST RST20 - DW 01601H + RST_ROM ROUTINE.chan_open RET OPEN_CH2: LD A,2 JR AUTO_1D84 AUTO_1D8C: - RST RST20 - DW 00018H + RST_ROM ROUTINE.get_char AUTO_1D8F: RET CALL OPEN_CH0 - RST RST20 - DW 00F2CH + RST_ROM ROUTINE.editor RET AUTO_1D97: - RST RST20 - DW 00D6BH + RST_ROM ROUTINE.cls RET AUTO_1D9B: - RST RST20 - DW 028B2H + RST_ROM ROUTINE.look_vars RET AUTO_1D9F: - RST RST20 - DW 00D6EH + RST_ROM ROUTINE.cls_lower RET AUTO_1DA3: LD C,A @@ -3022,25 +3006,20 @@ AUTO_1DA9: PUSH BC CALL xchg_intf1 POP BC - RST RST20 - DW 01A1BH + RST_ROM ROUTINE.out_num_1 CALL xchg_intf1 RET BAS_2BF1: - RST RST20 - DW 02BF1H + RST_ROM ROUTINE.stack_fetch RET AUTO_1DB9: - RST RST20 - DW 01E99H + RST_ROM ROUTINE.find_int2 RET AUTO_1DBD: - RST RST20 - DW 01C8CH + RST_ROM ROUTINE.expt_exp RET AUTO_1DC1: - RST RST20 - DW 01C82H + RST_ROM ROUTINE.expt_1num RET AUTO_1DC5: LD HL,(ADR_DOS_COM) @@ -3088,27 +3067,22 @@ AUTO_1E0B: RET AUTO_1E1C: LD HL,(ADR_DOS_COM) - RST RST20 - DW 011A7H + RST_ROM ROUTINE.remove_fp RET AUTO_1E23: LD HL,(WORK_SP) - RST RST20 - DW 00030H + RST_ROM ROUTINE.bc_spaces AUTO_1E29: RET BASIC_RST20: - RST RST20 - DW 00020H + RST_ROM ROUTINE.next_char AUTO_1E2D: RET AUTO_1E2E: - RST RST20 - DW 019E8H + RST_ROM ROUTINE.reclaim_2 RET AUTO_1E32: - RST RST20 - DW 01655H + RST_ROM ROUTINE.make_room RET READ_TRK_NUM: CALL READ_ADR_LABL @@ -3319,8 +3293,7 @@ AUTO_1F55: CALL AUTO_1DA9 JP AUTO_01D3 AUTO_1FB9: - DB 1,9,2,10,3,11,4,12,5,13,6,14,7,15,8 - DB 16,1 + DB 1,9,2,10,3,11,4,12,5,13,6,14,7,15,8,16,1 test_d_traks: CALL get_disk_time OR 17 @@ -3650,8 +3623,7 @@ AUTO_2206: JP AUTO_03D9 AUTO_220F: LD A,(MED_LEN) - RST RST20 - DW 01727H + RST_ROM ROUTINE.str_data1 LD A,B OR C JP NZ,AUTO_221B @@ -4052,8 +4024,7 @@ AUTO_2492: AUTO_2494: LD (ERR_NR),A CALL AUTO_20E5 - RST RST20 - DW 00058H + RST_ROM ROUTINE.error_4 RET AUTO_249E: LD A,23 @@ -4285,8 +4256,7 @@ AUTO_2614: AUTO_261D: CP 13 JR Z,AUTO_2614 - RST RST20 - DW 00F85H + RST_ROM ROUTINE.add_char_keeping_current_mode JR AUTO_260F AUTO_2626: CALL AUTO_262B @@ -4327,8 +4297,7 @@ CMD_CLOSE: CALL AUTO_1E0B CALL SINTAX_RET LD A,(MED_LEN) - RST RST20 - DW 01727H + RST_ROM ROUTINE.str_data1 LD A,B OR C JP Z,AUTO_01D3 @@ -4718,27 +4687,29 @@ AUTO_2992: RET ; ; -; -CMD_40: - XOR A - - +; Выполнение команды "40". Установите #5D11 и #5C3B. Используется также с адреса: +;#2998 (выполнение команды установки типа дисковода; установите все для #2997 плюс в A тип дисковода). +CMD_40: XOR A ;дисковод 40-дорожечный односторонний +;Ошибка!!! Во-первых, почему дисковод односторонний? +; во-вторых, надо проверять возможность использования дисковода в требуемом режиме. AUTO_2998: - BLOCK #2998 - $,255 - LD (MED_START),A - CALL SINTAX_RET - CALL TEST_CR - JP Z,CMD_ERROR - CALL get_disk_type - LD A,(MED_START) - LD (HL),A - JP AUTO_03E1 -; -; -; -CMD_80: - LD A,128 + LD (MED_START),A ;сохранение типа дисковода + CALL SINTAX_RET ;если идет проверка на синтакси + CALL TEST_CR ;проверка второго символа строк + JP Z,CMD_ERROR ;если это ENTER, то *ERROR* + CALL get_disk_type ;берем адрес ячейки с типом дис + LD A,(MED_START) ;установка типа дисковода + LD (HL),A + JP AUTO_03E1 ;сообщение O.K. + ; Выполнение команды "80". Установите #5D11 и #5C3B. +CMD_80: LD A,#80 ;дисковод 80-дорожечный односторонний +;Ошибка!!! Во-первых, почему дисковод односторонний? +; во-вторых, надо проверять возможность использования дисковода в требуемом режиме. JR AUTO_2998 +; +; +; +;Адрес #29B2. Тексты сообщений TR-DOS. AUTO_29B2: DB 13,"*ERROR*",141 AUTO_29BB: @@ -5589,44 +5560,69 @@ AUTO_2FDE: LD HL,BUFER LDIR RET -; -; COMANDS -; -AUTO_2FF3: - DB 207,42,208,209 - DB 230,210,239,248 - DB 254,190,244,213 - DB 247,211,212,255 - DB 52,236,56,240 - DB 214,'/' -AUTO_3008: - DW CMD_CAT - DW CMD_STAR - DW CMD_FORMAT - DW CMD_MOVE - DW CMD_NEW - DW CMD_ERASE - DW CMD_LOAD - DW CMD_SAVE - - DW CMD_RETURN - DW CMD_PEEK - DW CMD_POKE - DW CMD_MERGE - - DW CMD_RUN - DW CMD_OPEN - DW CMD_CLOSE - DW CMD_COPY - - DW CMD_40 - DW CMD_GOTO - DW CMD_80 - DW CMD_LIST - - DW CMD_VERIFY +//////////////////////////////////////////// +TRDOS_CMD: + ; Таблица команд TR-DOS. +.LIST: DB ZX_Token.cat + DB '*' + DB ZX_Token.format + DB ZX_Token.move + ; + DB ZX_Token.new + DB ZX_Token.erase + DB ZX_Token.load + DB ZX_Token.save + ; + DB ZX_Token.return + DB ZX_Token.peek + DB ZX_Token.poke + DB ZX_Token.merge + ; + DB ZX_Token.run + DB ZX_Token.open_channel + DB ZX_Token.close_channel + DB ZX_Token.copy + ; + DB '4' + DB ZX_Token.go_to + DB '8' + DB ZX_Token.list + ; + DB ZX_Token.verify + DB '/' + ;; + ;; +.Size EQU $ - TRDOS_CMD.LIST + ; Таблица адресов подпрограмм, выполняющих команды TR-DOS. +.TABLE: DW CMD_CAT + DW CMD_STAR + DW CMD_FORMAT + DW CMD_MOVE + ; + DW CMD_NEW + DW CMD_ERASE + DW CMD_LOAD + DW CMD_SAVE + ; + DW CMD_RETURN + DW CMD_PEEK + DW CMD_POKE + DW CMD_MERGE + ; + DW CMD_RUN + DW CMD_OPEN + DW CMD_CLOSE + DW CMD_COPY + ; + DW CMD_40 + DW CMD_GOTO + DW CMD_80 + DW CMD_LIST + ; + DW CMD_VERIFY DW CMD_MSDOS +//////////////////////////////////////////// ; ; ; @@ -5665,11 +5661,9 @@ AUTO_3057: ; LD (HL),A INC HL EX DE,HL - RST RST20 - DW 019DDH + RST_ROM ROUTINE.differ PUSH BC - RST RST20 - DW 019E8H + RST_ROM ROUTINE.reclaim_2 POP BC LD A,(DOS_ERROR) OR A @@ -5760,8 +5754,7 @@ AUTO_30E1: LD (DOS_ERROR),A DEC HL DEC HL - RST RST20 - DW 0196EH + RST_ROM ROUTINE.line_addr RET AUTO_30F4: LD A,255 @@ -5947,14 +5940,14 @@ FORM_STATE: INC HL LD A,(HL) FORM_NO_NEXT: - CP 0Dh + CP #0D RET Z - CP 80H + CP #80 RET Z JP NC,CMD_ERROR CP ' ' JP C,CMD_ERROR - AND 0DFh + AND #DF LD (MED_START+1),A RET ; @@ -6048,8 +6041,7 @@ FORM_X03: CALL AUTO_1C57 CALL AUTO_1D97 LD A,2 - RST RST20 - DW 01601H + RST_ROM ROUTINE.chan_open LD HL,NEW_NAME RST PRINT_LN @@ -6102,8 +6094,7 @@ F_FAST: ; Turbo/FAST FORMAT JR FORM_X08 F_TURBO_DT: - DB 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 - DB 16,1 + DB 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1 SUB_HL_14: @@ -6115,8 +6106,7 @@ SUB_HL_14: RET LOW_CLS_AT00: - RST RST20 - DW 00D6EH + RST_ROM ROUTINE.cls_lower LD HL,MSG_AT00 JP PRINT_LINE @@ -6480,8 +6470,7 @@ BEEP_1: LD HL,200 ; BEEP LD D,H LD E,(IY-1) - RST RST20 - DW 03B5h + RST_ROM ROUTINE.beeper POP AF RET @@ -6621,8 +6610,7 @@ PRINT_SYM: RST R38 RST R38 AUTO_3D94: - RST RST20 - DW #0010 ;!HARDCODE + RST_ROM ROUTINE.print_a RET AUTO_3D98: LD A,8 @@ -6630,12 +6618,10 @@ WG93_EXE: OUT (WG_COM),A AUTO_3D9C: PUSH HL - RST RST20 - DW #1F54 ;!HARDCODE + RST_ROM ROUTINE.break_key ;RET_1F54: JR C,AUTO_3DA5 - RST RST20 - DW #1B7B ;!HARDCODE + RST_ROM ROUTINE.report_l AUTO_3DA5: POP HL IN A,(P_DOS_FF) diff --git a/Shared_Includes b/Shared_Includes index 866c86e..4c835d3 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 866c86ed7b05965f52b41997aab711a32c669cbc +Subproject commit 4c835d305fd5d1bc296039706d5e163c1f2224ca diff --git a/TRDOS/TR_RMD_S.ASZ b/TRDOS/TR_RMD_S.ASZ index d4c67de..68ea148 100644 --- a/TRDOS/TR_RMD_S.ASZ +++ b/TRDOS/TR_RMD_S.ASZ @@ -453,9 +453,9 @@ RAMD_SET1: RAMD_SYM: LD A,(DE) INC DE - CP 20H + CP ' ' JR Z,RAMD_SYM - AND 223 + AND %1101'1111 CP 'E' RET C SUB 'E' @@ -468,7 +468,7 @@ RAMD_SYM: INC DE JR Z,RAMD_SYM_OK DEC DE - CP 21H + CP ' '+1 JR C,RAMD_SYM_OK POP AF SCF diff --git a/ZX_EXP.ASM b/ZX_EXP.ASM index a799285..ddb1096 100644 --- a/ZX_EXP.ASM +++ b/ZX_EXP.ASM @@ -1584,7 +1584,7 @@ HDD_MSG_LEN EQU $-HDD_MSG ;HDD_MSG_NO: DB "Boot record not found" ;HDD_NO_LEN EQU $-HDD_MSG_NO SAVE_AUTOSTART: - LD HL,8000H + LD HL,#8000 LD DE,HDD_MSG LD B,HDD_MSG_LEN SAVE_AUTO_L1: @@ -1599,7 +1599,7 @@ SAVE_AUTO_L1: CALL EXP_HDD RET C - LD HL,8000H + LD HL,#8000 LD A,0 LD DE,1 LD IX,0 diff --git a/ZX_EXP/EXP_HDD.ASM b/ZX_EXP/EXP_HDD.ASM index ddda963..2903b09 100644 --- a/ZX_EXP/EXP_HDD.ASM +++ b/ZX_EXP/EXP_HDD.ASM @@ -4,7 +4,7 @@ MACRO WAIT_HDD .LL1: - LD BC,P_HDST + LD BC,IDE.Read.Status IN A,(C) BIT 7,A JR NZ,.LL1 @@ -49,14 +49,14 @@ HD_CMD_X: ; C - COMAND ( 5 - RD, 6 - WR ) HD_BPB_PREP: LD D,A - IN A,(PAGE3) + IN A,(SLOT3) EX AF,AF' LD A,SYS_PAGE - OUT (PAGE3),A - LD A,(HD_IDF_ADR+12) + OUT (SLOT3),A + LD A,(SYS_PAGE.HD_IDF_ADR.sectors) LD E,A EX AF,AF' - OUT (PAGE3),A + OUT (SLOT3),A LD A,D LD D,0 LD IX,0 @@ -76,16 +76,16 @@ HD_PREPARE: HD_PREP_L1: LD A,B - LD BC,P_S_CNT ; Установить число секторов для чтения + LD BC,IDE.Write.Counter ; Установить число секторов для чтения OUT (C),A - LD BC,P_S_NUM + LD BC,IDE.Write.Sector OUT (C),L ; СЕКТОР - LD BC,P_C_LOW + LD BC,IDE.Write.CylinderLow OUT (C),E ; дорожка low - LD BC,P_C_HIG + LD BC,IDE.Write.CylinderHigh OUT (C),D ; дорожка high - LD BC,P_HD_CS + LD BC,IDE.Write.DeviceHead DEC B IN A,(C) AND 0F0H @@ -112,19 +112,18 @@ HD_CMD_3: ; RET C EXX - LD C,PAGE3 + LD C,SLOT3 IN B,(C) EXX - OUT (PAGE3),A + OUT (SLOT3),A EX AF,AF' LD A,0C0H OUT (RGADR),A - LD BC,P_CMD - LD A,20H + LD BC,IDE.Write.Command + LD A,#20 ; OUT (C),A - AND A RET @@ -159,16 +158,16 @@ HD_RD_CMD: HD_RD_L1: EXX - LD C,PAGE3 + LD C,SLOT3 IN B,(C) EXX - OUT (PAGE3),A + OUT (SLOT3),A EX AF,AF' LD A,0C0H OUT (RGADR),A - LD BC,P_CMD + LD BC,IDE.Write.Command LD A,20H OUT (C),A @@ -184,7 +183,7 @@ HD_RET: EXX OUT (C),B EXX - LD BC,P_ERR + LD BC,IDE.Read.Error IN A,(C) AND A SCF @@ -195,7 +194,7 @@ HD_RET: RET HD_READ_CONT: - LD BC,P_DATS + LD BC,IDE.Read.Data HD_RD_CONT1: DUP 16 @@ -216,12 +215,12 @@ HD_RD_CONT2: JR NZ,HD_RD_L2 LD A,SYS_PAGE - OUT (PAGE3),A + OUT (SLOT3),A EX AF,AF' - LD HL,RAMD_FAT + LD HL,SYS_PAGE.RAMD_FAT LD L,A LD A,(HL) - OUT (PAGE3),A + OUT (SLOT3),A EX AF,AF' LD HL,0C000H JR HD_RD_L2 @@ -243,13 +242,13 @@ HD_WR_CMD: RET C EXX - LD C,PAGE3 + LD C,SLOT3 IN B,(C) EXX - OUT (PAGE3),A + OUT (SLOT3),A EX AF,AF' - LD BC,P_CMD + LD BC,IDE.Write.Command LD A,30H OUT (C),A @@ -262,7 +261,7 @@ HD_WR_L2: ;####################################### IF HDD_TYPE - LD BC,P_DATS+100H + LD BC,IDE.Read.Data+100H LD D,32 HD_WR_CONT1: DUP 16 @@ -274,7 +273,7 @@ HD_WR_CONT1: ;####################################### ELSE LD D,64 - LD BC,P_DATS+100H + LD BC,IDE.Read.Data+100H HD_WR_LOOP: @@ -316,12 +315,12 @@ HD_WR_LOOP: JR NZ,HD_WR_L2 LD A,SYS_PAGE - OUT (PAGE3),A + OUT (SLOT3),A EX AF,AF' - LD HL,RAMD_FAT + LD HL,SYS_PAGE.RAMD_FAT LD L,A LD A,(HL) - OUT (PAGE3),A + OUT (SLOT3),A EX AF,AF' LD HL,0C000H @@ -333,14 +332,14 @@ HD_CMD_1: POP AF HD_CMD1_EX: ld a,0A0h - LD BC,P_HD_CS + LD BC,IDE.Write.DeviceHead OUT (C),A LD A,90h ; DIAGNOSTICS CALL HD_CMD_EXE AND A BIT 0,A RET Z - LD BC,P_ERR + LD BC,IDE.Read.Error IN A,(C) CP 1 RET Z @@ -354,7 +353,7 @@ HD_CMD_2: LD E,0 - LD BC,P_HD_CS + LD BC,IDE.Write.DeviceHead LD A,0A0H OUT (C),A @@ -364,7 +363,7 @@ HD_CMD_2: SET 0,E NO_HDD1: - LD BC,P_HD_CS + LD BC,IDE.Write.DeviceHead LD A,0B0H OUT (C),A @@ -383,15 +382,15 @@ NO_HDD2: TEST_HDD_DRV: LD HL,01FEH - LD BC,P_S_CNT + LD BC,IDE.Write.Counter OUT (C),L - LD BC,P_S_NUM + LD BC,IDE.Write.Sector OUT (C),H - LD BC,P_S_CNT+256 + LD BC,IDE.Write.Counter+256 IN A,(C) CP L RET NZ - LD BC,P_S_NUM+256 + LD BC,IDE.Write.Sector+256 IN A,(C) CP H RET @@ -400,7 +399,7 @@ HD_CMD_0: POP AF - LD BC,P_HD_CS + LD BC,IDE.Write.DeviceHead LD A,0A0H OUT (C),A @@ -412,14 +411,14 @@ HD_C0_L3: WAIT_HDD - LD BC,P_CMD + LD BC,IDE.Write.Command LD A,0ECH OUT (C),A WAIT_HDD ;HD_C0_L1: ; -; LD BC,P_HDST +; LD BC,IDE.Read.Status ; IN A,(C) ; BIT 7,A ; JR NZ,HD_C0_L1 @@ -431,7 +430,7 @@ HD_C0_L3: RET HD_ABSENT: - LD BC,P_HD_CS + LD BC,IDE.Write.DeviceHead LD A,0B0H OUT (C),A @@ -442,40 +441,40 @@ HD_ABSENT: RET HD_C0_L2: - LD BC,P_DATS - LD HL,HD_IDF_ADR - IN A,(PAGE3) + LD BC,IDE.Read.Data + LD HL,SYS_PAGE.HD_IDF_ADR + IN A,(SLOT3) LD D,A LD A,SYS_PAGE - OUT (PAGE3),A + OUT (SLOT3),A INIR INIR ;HD_C0_L4: -; LD BC,P_HDST +; LD BC,IDE.Read.Status ; IN A,(C) ; BIT 7,A ; JR NZ,HD_C0_L4 - LD A,(HD_IDF_ADR+12) ; число секторов + LD A,(SYS_PAGE.HD_IDF_ADR.sectors) ; число секторов LD C,A LD B,0 LD HL,0 - LD A,(HD_IDF_ADR+6) ; число головок + LD A,(SYS_PAGE.HD_IDF_ADR.heads) ; число головок LOOP_XX: ADD HL,BC DEC A JR NZ,LOOP_XX - LD (HD_IDF_ADR+4),HL + LD (SYS_PAGE.HD_IDF_ADR.sec_cyl),HL WAIT_HDD - LD BC,P_HD_CS + LD BC,IDE.Write.DeviceHead DEC B IN A,(C) AND 010H LD B,A - LD A,(HD_IDF_ADR+6) ; число головок + LD A,(SYS_PAGE.HD_IDF_ADR.heads) ; число головок DEC A AND 0FH @@ -483,22 +482,22 @@ LOOP_XX: OR B LD H,A - LD A,(HD_IDF_ADR+99) + LD A,(SYS_PAGE.HD_IDF_ADR+99) ;!HARDCODE BIT 1,A JR Z,HD_C0_NO_LBA SET 6,H HD_C0_NO_LBA: - LD BC,P_HD_CS + LD BC,IDE.Write.DeviceHead OUT (C),H - LD A,(HD_IDF_ADR+12) ; число секторов + LD A,(SYS_PAGE.HD_IDF_ADR.sectors) ; число секторов - LD BC,P_S_CNT + LD BC,IDE.Write.Counter OUT (C),A LD A,D - OUT (PAGE3),A + OUT (SLOT3),A LD A,91H ; SET HDD PARAMETERS CALL HD_CMD_EXE @@ -512,7 +511,7 @@ HD_C0_NO_LBA: HD_CMD_EXE: CALL HD_WAIT RET C - LD BC,P_CMD + LD BC,IDE.Write.Command OUT (C),A HD_WAIT: PUSH DE @@ -522,7 +521,7 @@ HD_WAIT: LD DE,0 HD_WAIT1: - LD BC,P_HDST + LD BC,IDE.Read.Status IN A,(C) BIT 7,A JR Z,HD_W_EXIT @@ -565,7 +564,7 @@ HD_CALC_SECS: RET NZ ; ошибка, слишком большой HDD.. PUSH BC - LD BC,P_HD_CS + LD BC,IDE.Write.DeviceHead DEC B IN A,(C) BIT 6,A @@ -577,14 +576,14 @@ HD_CALC_SECS: PUSH IX POP HL - IN A,(PAGE3) + IN A,(SLOT3) LD C,A LD A,SYS_PAGE - OUT (PAGE3),A + OUT (SLOT3),A LD A,C - LD (COPY_PAGE3),A + LD (SYS_PAGE.COPY_SLOT3),A - LD BC,(HD_IDF_ADR+4) ; число секторов на цилиндре + LD BC,(SYS_PAGE.HD_IDF_ADR.sec_cyl) ; число секторов на цилиндре ; HL,DE - номер сектора ; BC - число секторов на цилиндре @@ -609,7 +608,7 @@ NO_ADD: INC DE DIV_END: ; DE - результат, HL - остаток ; DE - цилиндр - LD A,(HD_IDF_ADR+12) ; A - число секторов на дорожке + LD A,(SYS_PAGE.HD_IDF_ADR.sectors) ; A - число секторов на дорожке ; HL - номер сектора в цилиндре LD B,0 LD C,A @@ -626,8 +625,8 @@ HD_CALC_LOOP2: INC L LD H,A ; HL - HEAD,SEC - LD A,(COPY_PAGE3) - OUT (PAGE3),A + LD A,(SYS_PAGE.COPY_SLOT3) + OUT (SLOT3),A POP BC AND A diff --git a/ZX_EXP2.ASM b/ZX_EXP2.ASM index ac79c80..3f72b3c 100644 --- a/ZX_EXP2.ASM +++ b/ZX_EXP2.ASM @@ -3,7 +3,8 @@ DEVICE ZXSPECTRUM128 ORG 0 - INCLUDE 'INC/SPRINT00.INC' ; константы, макросы.. + ;INCLUDE 'INC/SPRINT00.INC' ; константы, макросы.. + INCLUDE 'shared_includes/constants/sp2000.INC' ; константы, макросы.. ; *************************** ; ***** BEGIN EXPANSION ***** ; *************************** @@ -64,7 +65,7 @@ HD_CMD_XR: BLOCK #3FE8-$,255 HD_EXP_RET: PUSH AF - LD A,D_ROM16OFF + LD A,CNF_PORT.ZX_BIOS ;!TEST ;OUT (SYS_PORT_ON),A OUT (CNF_PORT),A @@ -76,16 +77,16 @@ HD_EXP_RET: HD_DOS_RET: PUSH AF DI - LD A,D_ROM16OFF - OUT (SYS_PORT_OFF),A + LD A,CNF_PORT.ZX_BIOS + OUT (SYS_PORT.OFF),A JR HD_CMD_XR ;***********************************************************************; BLOCK #3FF8-$,255 EXP_FNS_RET: PUSH AF - LD A,D_ROM16OFF - OUT (SYS_PORT_OFF),A + LD A,CNF_PORT.ZX_BIOS + OUT (SYS_PORT.OFF),A //JP HD_CMD_XR_RET RET diff --git a/inc/rom_routines.inc b/inc/rom_routines.inc index 4a011dd..1bec256 100644 --- a/inc/rom_routines.inc +++ b/inc/rom_routines.inc @@ -27,1134 +27,1136 @@ ; 2017-02-09: Add two additional entry points, and two 128K routines. ; ============================================================== + MACRO RST_ROM name + RST #20 + DW name + ENDM -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 +; ============================================================== +ROUTINE: +.abs EQU 0x346A +.acs EQU 0x3843 +.add_back EQU 0x3004 +.add_ch_1 EQU 0x0F8B +.add_char EQU 0x0F81 +.add_char_keeping_current_mode EQU 0x0F85 +.add_rep_6 EQU 0x309F +.addend_0 EQU 0x2FF9 +.addition EQU 0x3014 +.addn_oflw EQU 0x303C +.all_added EQU 0x300D +.alpha EQU 0x2C8D +.alphanum EQU 0x2C88 +.arc_end EQU 0x245F +.arc_loop EQU 0x2425 +.arc_start EQU 0x2439 +.asn EQU 0x3833 +.atn EQU 0x37E2 +.auto_l_1 EQU 0x17CE +.auto_l_2 EQU 0x17E1 +.auto_l_3 EQU 0x17E4 +.auto_l_4 EQU 0x17ED +.auto_list EQU 0x1795 +.bc_spaces EQU 0x0030 +.be_end EQU 0x03F6 +.be_h_and_l_lp EQU 0x03D6 +.be_ix_plus_0 EQU 0x03D4 +.be_ix_plus_1 EQU 0x03D3 +.be_ix_plus_2 EQU 0x03D2 +.be_ix_plus_3 EQU 0x03D1 +.beep EQU 0x03F8 +.beeper EQU 0x03B5 +.bin_digit EQU 0x2CA2 +.bin_end EQU 0x2CB3 +.bits_zero EQU 0x3283 +.border EQU 0x2294 +.border_1 EQU 0x22A6 +.border_2297 EQU 0x2297 ; secondary entry to rom_border +.border_229b EQU 0x229B ; secondary entry to rom_border +.both_null EQU 0x3572 +.break_key EQU 0x1F54 ; return the carry flag reset if SHIFT and BREAK keys are both being pressed. +.byte_comp EQU 0x3564 +.byte_zero EQU 0x327E +.c_arc_ge1 EQU 0x235A +.c_ent EQU 0x37B7 +.c_r_gre_1 EQU 0x233B +.ca_10_by_a_plus_c EQU 0x2F8B +.calculate EQU 0x335B +.call_jump EQU 0x162C +.call_sub EQU 0x15F7 +.cases EQU 0x37FA +.cat_etc EQU 0x1793 +.cd_prms1 EQU 0x247D +.ch_add_plus_1 EQU 0x0074 +.chan_flag EQU 0x1615 +.chan_k EQU 0x1634 +.chan_op_1 EQU 0x1610 +.chan_open EQU 0x1601 ; open a channel (channel in A) +.chan_p EQU 0x164D +.chan_s EQU 0x1642 ; set flags for upper screen channel +.chan_s_1 EQU 0x1646 +.check_end EQU 0x1BEE +.chn_cd_lu EQU 0x162D +.chrs EQU 0x35C9 +.circle EQU 0x2320 +.cl_09_1 EQU 0x1CD6 +.cl_addr EQU 0x0E9B +.cl_all EQU 0x0DAF ; clear whole (upper) display area +.cl_attr EQU 0x0E88 +.cl_chan EQU 0x0D94 +.cl_chan_a EQU 0x0DA0 +.cl_line EQU 0x0E44 +.cl_line_1 EQU 0x0E4A +.cl_line_2 EQU 0x0E4D +.cl_line_3 EQU 0x0E80 +.cl_sc_all EQU 0x0DFE +.cl_scr_1 EQU 0x0E05 +.cl_scr_2 EQU 0x0E0D +.cl_scr_3 EQU 0x0E19 +.cl_scroll EQU 0x0E00 ; scroll the number of lines in the B register +.cl_set EQU 0x0DD9 +.cl_set_1 EQU 0x0DEE +.cl_set_2 EQU 0x0DF4 +.cl_str_lu EQU 0x1716 +.class_01 EQU 0x1C1F +.class_02 EQU 0x1C4E +.class_03 EQU 0x1C0D +.class_04 EQU 0x1C6C +.class_05 EQU 0x1C11 +.class_07 EQU 0x1C96 +.class_09 EQU 0x1CBE +.class_0b EQU 0x1CDB +.class_tbl EQU 0x1C01 +.clear EQU 0x1EAC +.clear_1 EQU 0x1EB7 +.clear_2 EQU 0x1EDC +.clear_prb EQU 0x0EDF +.clear_run EQU 0x1EAF +.clear_sp EQU 0x1097 +.close EQU 0x16E5 +.close_0_16EB EQU 0x16EB +.close_1 EQU 0x16FC +.close_2 EQU 0x1701 +.close_str EQU 0x171C +.cls EQU 0x0D6B ; CLS +.cls_1 EQU 0x0D87 +.cls_2 EQU 0x0D89 +.cls_3 EQU 0x0D8E +.cls_lower EQU 0x0D6E +.co_change EQU 0x226C +.co_temp_1 EQU 0x21E1 +.co_temp_2 EQU 0x21E2 +.co_temp_3 EQU 0x21F2 +.co_temp_4 EQU 0x21FC +.co_temp_5 EQU 0x2211 +.co_temp_6 EQU 0x2228 +.co_temp_7 EQU 0x2234 +.co_temp_8 EQU 0x223E +.co_temp_9 EQU 0x2246 +.co_temp_a EQU 0x2257 +.co_temp_b EQU 0x2258 +.co_temp_c EQU 0x2273 +.co_temp_d EQU 0x227D +.co_temp_e EQU 0x2287 +.code EQU 0x3669 +.comma_sp EQU 0x1537 +.continue EQU 0x1E5F +.copy EQU 0x0EAC +.copy_1 EQU 0x0EB2 +.copy_2 EQU 0x0EC9 +.copy_3 EQU 0x0ED3 +.copy_buff EQU 0x0ECD +.copy_end EQU 0x0EDA +.copy_l_1 EQU 0x0EFD +.copy_l_2 EQU 0x0F0C +.copy_l_3 EQU 0x0F14 +.copy_l_4 EQU 0x0F18 +.copy_l_5 EQU 0x0F1E +.copy_line EQU 0x0EF4 +.copyright EQU 0x1539 +.cos EQU 0x37AA +.count_one EQU 0x31FA +.cp_lines EQU 0x1980 +.ctlchrtab EQU 0x0A11 +.d_l_diag EQU 0x24D4 +.d_l_hr_vt EQU 0x24DB +.d_l_loop EQU 0x24CE +.d_l_plot EQU 0x24EC +.d_l_range EQU 0x24F7 +.d_l_step EQU 0x24DF +.d_letter EQU 0x2C1F +.d_no_loop EQU 0x2C2E +.d_rport_c EQU 0x2C05 +.d_run EQU 0x2C15 +.d_size EQU 0x2C2D +.data EQU 0x1E27 +.data_1 EQU 0x1E2C +.data_2 EQU 0x1E37 +.de_comma_paren_de_plus_1_parenequ EQU 0x2AEE +.dec_jr_nz EQU 0x367A +.dec_rpt_c EQU 0x2CCF +.dec_sto_1 EQU 0x2CD5 +.dec_to_fp EQU 0x2C9B +.decimal EQU 0x2CCB +.def_fn EQU 0x1F60 +.def_fn_1 EQU 0x1F6A +.def_fn_2 EQU 0x1F7D +.def_fn_3 EQU 0x1F86 +.def_fn_4 EQU 0x1F89 +.def_fn_5 EQU 0x1F94 +.def_fn_6 EQU 0x1FA6 +.def_fn_7 EQU 0x1FBD +.delete EQU 0x33A1 +.differ EQU 0x19DD +.dim EQU 0x2C02 +.dim_clear EQU 0x2C7C +.dim_sizes EQU 0x2C7F +.div_34th EQU 0x31DB +.div_loop EQU 0x31D2 +.div_start EQU 0x31E2 +.division EQU 0x31AF +.divn_expt EQU 0x313D +.dl_larger EQU 0x24CB +.dl_x_ge_y EQU 0x24C4 +.double_a EQU 0x338C +.dr_3_prms EQU 0x238D +.dr_prms EQU 0x23C1 +.dr_sin_nz EQU 0x23A3 +.draw EQU 0x2382 +.draw_line EQU 0x24B7 +.draw_line_24BA EQU 0x24BA ; entry point of the draw_line routine +.draw_save EQU 0x2497 +.drw_steps EQU 0x2420 +.e_divsn EQU 0x2D6D +.e_end EQU 0x2D7B +.e_fetch EQU 0x2D6E +.e_format EQU 0x2CEB +.e_fp_jump EQU 0x2D18 +.e_l_1 EQU 0x1A15 +.e_line_no EQU 0x19FB +.e_loop EQU 0x2D60 +.e_save EQU 0x2D55 +.e_to_fp EQU 0x2D4F +.e_tst_end EQU 0x2D71 +.each_s_1 EQU 0x1990 +.each_s_2 EQU 0x1998 +.each_s_3 EQU 0x199A +.each_s_4 EQU 0x19A5 +.each_s_5 EQU 0x19AD +.each_s_6 EQU 0x19B1 +.each_stmt EQU 0x198B +.ed_again EQU 0x0F30 +.ed_blank EQU 0x1150 +.ed_c_done EQU 0x117C +.ed_c_end EQU 0x117E +.ed_contr EQU 0x0F6C +.ed_copy EQU 0x111D +.ed_cur EQU 0x1011 +.ed_delete EQU 0x1015 +.ed_down EQU 0x0FF3 +.ed_edge EQU 0x1031 +.ed_edge_1 EQU 0x103E +.ed_edge_2 EQU 0x1051 +.ed_edit EQU 0x0FA9 +.ed_end EQU 0x1026 +.ed_enter EQU 0x1024 +.ed_error EQU 0x107F +.ed_full EQU 0x1167 +.ed_graph EQU 0x107C +.ed_ignore EQU 0x101E +.ed_keys EQU 0x0F92 +.ed_keys_t EQU 0x0FA0 +.ed_left EQU 0x1007 +.ed_list EQU 0x106E +.ed_loop EQU 0x0F38 +.ed_right EQU 0x100C +.ed_spaces EQU 0x115E +.ed_stop EQU 0x1001 +.ed_symbol EQU 0x1076 +.ed_up EQU 0x1059 +.editor EQU 0x0F2C +.end_calc EQU 0x369B +.end_compl EQU 0x30A3 +.end_tests EQU 0x358C +.ent_table EQU 0x338E +.error_1 EQU 0x0008 +.error_2 EQU 0x0053 +.error_3 EQU 0x0055 +.error_4 EQU 0x0058 +.ex_or_not EQU 0x3543 +.exchange EQU 0x343C +.exit EQU 0x36C2 +.exp EQU 0x36C4 +.expt_1num EQU 0x1C82 +.expt_2num EQU 0x1C7A +.expt_exp EQU 0x1C8C +.f_found EQU 0x1D7C +.f_l_s EQU 0x1D34 +.f_loop EQU 0x1D64 +.f_reorder EQU 0x1D16 +.f_use_1 EQU 0x1D10 +.fetch_num EQU 0x1CDE +.fetch_two EQU 0x2FBA +.find_i_1 EQU 0x1E9C +.find_int1 EQU 0x1E94 +.find_int2 EQU 0x1E99 +.first_3d EQU 0x3380 +.fn_skpovr EQU 0x28AB +.for EQU 0x1D03 +.form_exp EQU 0x33DE +.fp_0_or_1 EQU 0x350B +.fp_a_end EQU 0x2DE1 +.fp_calc EQU 0x0028 +.fp_calc_2 EQU 0x33A2 +.fp_delete EQU 0x2DAD +.fp_to_a EQU 0x2DD5 +.fp_to_bc EQU 0x2DA2 +.free_mem EQU 0x1F1A +.frst_less EQU 0x3585 +.full_addn EQU 0x303E +.g_loop EQU 0x3453 +.gen_ent_1 EQU 0x335E +.gen_ent_2 EQU 0x3362 +.get_argt EQU 0x3783 +.get_char EQU 0x0018 +.get_hl_by_de EQU 0x2AF4 +.get_mem_xx EQU 0x340F +.get_param EQU 0x1B55 +.go_nc_mlt EQU 0x30A5 +.go_sub EQU 0x1EED +.go_to EQU 0x1E67 +.go_to_2 EQU 0x1E73 +.go_to_bc EQU 0x1E6A ; 'GO TO' line in BC register +.go_to_hl EQU 0x1E6C ; 'GO TO' line in HL register XXX not tested +.gre.8 EQU 0x373D +.greater_0 EQU 0x34F9 +.hl_again EQU 0x30BC +.hl_by_de_to_hl EQU 0x30A9 ; HL=HL*DE +.hl_end EQU 0x30BE +.hl_hl_by_de EQU 0x30A9 +.hl_loop EQU 0x30B1 +.hlxde EQU 0x30A9 ; HL=HL*DE +.i_carry EQU 0x2AE8 +.i_restore EQU 0x2AEB +.if EQU 0x1CF0 +.if_1 EQU 0x1D00 +.in EQU 0x34A5 +.in_assign EQU 0x21B9 +.in_chan_k EQU 0x21D6 +.in_item_1 EQU 0x20C1 +.in_item_2 EQU 0x20D8 +.in_item_3 EQU 0x20ED +.in_next_1 EQU 0x21AF +.in_next_2 EQU 0x21B2 +.in_pk_stk EQU 0x34B0 +.in_pr_1 EQU 0x211A +.in_pr_2 EQU 0x211C +.in_pr_3 EQU 0x2129 +.in_prompt EQU 0x20FA +.in_stop EQU 0x21D0 +.in_var_1 EQU 0x213A +.in_var_2 EQU 0x2148 +.in_var_3 EQU 0x215E +.in_var_4 EQU 0x2161 +.in_var_5 EQU 0x2174 +.in_var_6 EQU 0x219B +.indexer EQU 0x16DC +.indexer_1 EQU 0x16DB +.init_chan EQU 0x15AF +.init_strm EQU 0x15C6 +.input EQU 0x2089 +.input_1 EQU 0x2096 +.input_2 EQU 0x20AD +.input_ad EQU 0x15E6 +.int EQU 0x36AF +.int_case EQU 0x3483 +.int_exp1 EQU 0x2ACC +.int_exp2 EQU 0x2ACD +.int_fetch EQU 0x2D7F +.int_store EQU 0x2D8E +.int_to_fp EQU 0x2D3B +.ix_end EQU 0x3290 +.jump EQU 0x3686 +.jump_2 EQU 0x3687 +.jump_true EQU 0x368F +.k_8_and_9 EQU 0x0382 +.k_@_char EQU 0x03B2 +.k_ch_set EQU 0x02D1 +.k_digit EQU 0x0367 +.k_e_let EQU 0x0341 +.k_end EQU 0x0308 +.k_gra_dgt EQU 0x0389 +.k_klc_dgt EQU 0x039D +.k_klc_let EQU 0x034F +.k_look_up EQU 0x034A +.k_main EQU 0x032C +.k_new EQU 0x02F1 +.k_repeat EQU 0x0310 +.k_st_loop EQU 0x02C6 +.k_tokens EQU 0x0364 +.key_3keys EQU 0x029F +.key_bits EQU 0x02A1 +.key_chan EQU 0x1113 +.key_contr EQU 0x10FA +.key_data EQU 0x1105 +.key_decode EQU 0x0333 +.key_done2 EQU 0x111B +.key_done EQU 0x02AB +.key_flag EQU 0x10F4 +.key_input EQU 0x10A8 +.key_int EQU 0x0048 +.key_line EQU 0x0296 +.key_m_cl EQU 0x10DB +.key_mode EQU 0x10E6 +.key_next EQU 0x110D +.key_scan EQU 0x028E +.key_test EQU 0x031E +.keyboard EQU 0x02BF +.l_add_string EQU 0x2BAF +.l_char EQU 0x2B3E +.l_delete_string EQU 0x2B72 +.l_each_ch EQU 0x2B0B +.l_enter EQU 0x2BA6 +.l_exists EQU 0x2B66 +.l_first EQU 0x2BEA +.l_in_w_or_s EQU 0x2BA3 +.l_length EQU 0x2B9B +.l_new_string EQU 0x2BC0 +.l_no_sp EQU 0x2B0C +.l_numeric EQU 0x2B59 +.l_single EQU 0x2B4F +.l_spaces EQU 0x2B29 +.l_string EQU 0x2BC6 +.l_test_ch EQU 0x2B1F +.last EQU 0x386C +.ld_8_bits EQU 0x05CA +.ld_block EQU 0x0802 +.ld_break EQU 0x056B +.ld_bytes EQU 0x0556 +.ld_ch_pr EQU 0x07AD +.ld_cont_1 EQU 0x0819 +.ld_cont_2 EQU 0x0825 +.ld_contrl EQU 0x0808 +.ld_data EQU 0x082E +.ld_data_1 EQU 0x084C +.ld_dec EQU 0x05C4 +.ld_delay EQU 0x05E9 +.ld_edge_1 EQU 0x05E7 +.ld_edge_2 EQU 0x05E3 +.ld_flag EQU 0x05B3 +.ld_leader EQU 0x0580 +.ld_look_h EQU 0x0767 +.ld_loop EQU 0x05A9 +.ld_marker EQU 0x05C8 +.ld_name EQU 0x07A6 +.ld_next EQU 0x05C2 +.ld_prog EQU 0x0873 +.ld_prog_1 EQU 0x08AD +.ld_sample EQU 0x05ED +.ld_start EQU 0x056C +.ld_sync EQU 0x058F +.ld_type EQU 0x078A +.ld_verify EQU 0x05BD +.ld_wait EQU 0x0574 +.len EQU 0x3674 +.less_0 EQU 0x3506 +.less_mask EQU 0x328A +.let EQU 0x2AFF +.line_ad_1 EQU 0x1974 +.line_addr EQU 0x196E +.line_draw EQU 0x2477 +.line_end EQU 0x1BB3 +.line_new EQU 0x1B9E +.line_no EQU 0x1695 +.line_no_a EQU 0x1691 +.line_run EQU 0x1B8A +.line_scan EQU 0x1B17 +.line_use EQU 0x1BBF +.line_zero EQU 0x168F +.list EQU 0x17F9 +.list_1 EQU 0x17FB +.list_2 EQU 0x1814 +.list_3 EQU 0x181A +.list_4 EQU 0x181F +.list_5 EQU 0x1822 +.list_all EQU 0x1833 +.list_all_2 EQU 0x1835 +.llist EQU 0x17F5 +.ln EQU 0x3713 +.ln_fetch EQU 0x190F +.ln_store EQU 0x191C +.loc_mem EQU 0x3406 +.log_paren_2_power_a_paren EQU 0x2DC1 +.look_p_1 EQU 0x1D8B +.look_p_2 EQU 0x1DA3 +.look_prog EQU 0x1D86 +.look_vars EQU 0x28B2 +.lprint EQU 0x1FC9 +.main_1 EQU 0x12A9 +.main_2 EQU 0x12AC +.main_3 EQU 0x12CF +.main_4 EQU 0x1303 +.main_5 EQU 0x133C +.main_5_1349 EQU 0x1349 +.main_6 EQU 0x1373 +.main_7 EQU 0x1376 +.main_8 EQU 0x1384 +.main_9 EQU 0x1386 +.main_add1 EQU 0x157D +.main_add2 EQU 0x15AB +.main_add EQU 0x155D +.main_exec EQU 0x12A2 +.main_g EQU 0x1313 ; runtime error (error in A) +.main_keys EQU 0x0205 +.make_expt EQU 0x313B +.make_room EQU 0x1655 +.mask_int EQU 0x0038 +.me_contrl EQU 0x08B6 +.me_ent_1 EQU 0x093E +.me_ent_2 EQU 0x0955 +.me_ent_3 EQU 0x0958 +.me_enter EQU 0x092C +.me_new_l2 EQU 0x08EB +.me_new_lp EQU 0x08D2 +.me_old_l1 EQU 0x08DF +.me_old_lp EQU 0x08D7 +.me_old_v1 EQU 0x0901 +.me_old_v2 EQU 0x0909 +.me_old_v3 EQU 0x0912 +.me_old_v4 EQU 0x091E +.me_old_vp EQU 0x08F9 +.me_var_l1 EQU 0x0921 +.me_var_l2 EQU 0x0923 +.me_var_lp EQU 0x08F0 +.mlt_loop EQU 0x3114 +.move_fp EQU 0x33C0 +.mult_long EQU 0x30F0 +.mult_oflw EQU 0x30EF +.mult_rslt EQU 0x30EA +.multiply EQU 0x30CA +.n_mod_m EQU 0x36A0 +.n_negtv EQU 0x3705 +.near_zero EQU 0x3159 +.neg_byte EQU 0x2FAF +.neg_test EQU 0x3474 +.negate EQU 0x346E +.new EQU 0x11B7 +.next EQU 0x1DAB +.next_1 EQU 0x1DE2 +.next_2 EQU 0x1DE9 +.next_2num EQU 0x1C79 +.next_char EQU 0x0020 +.next_line EQU 0x1BD1 +.next_loop EQU 0x1DDA +.next_o_1 EQU 0x19C7 +.next_o_2 EQU 0x19CE +.next_o_3 EQU 0x19D5 +.next_o_4 EQU 0x19D6 +.next_o_5 EQU 0x19DB +.next_one EQU 0x19B8 +.nil_bytes EQU 0x3272 +.nmi_vect EQU 0x121C +.no_add EQU 0x311B +.no_and_no EQU 0x3524 +.no_l_eql_etc EQU 0x353B +.no_reset EQU 0x0070 +.no_rstore EQU 0x31F9 +.normalise EQU 0x316C +.norml_now EQU 0x3186 +.not EQU 0x3501 +.not_bin EQU 0x2CB8 +.not_used EQU 0x1988 +.nu_or_str EQU 0x354E +.number EQU 0x18B6 +.numeric EQU 0x2D1B +.nxt_dgt_1 EQU 0x2CDA +.nxt_dgt_2 EQU 0x2D40 +.offst_tbl EQU 0x1A48 +.oflow_clr EQU 0x3195 +.oflw1_clr EQU 0x3146 +.oflw2_clr EQU 0x3151 +.one EQU 0x386A +.one_shift EQU 0x2FE5 +.one_space EQU 0x1652 +.op_str_lu EQU 0x177A +.open EQU 0x1736 +.open_1 EQU 0x1756 +.open_2 EQU 0x175D +.open_3 EQU 0x1767 +.open_end EQU 0x178B +.open_k EQU 0x1781 +.open_p EQU 0x1789 +.open_s EQU 0x1785 +.or EQU 0x351B +.other_str EQU 0x35B7 +.out EQU 0x1E7A +.out_c_1 EQU 0x18F3 +.out_c_2 EQU 0x1909 +.out_ch_1 EQU 0x195A +.out_ch_2 EQU 0x1968 +.out_ch_3 EQU 0x196C +.out_char EQU 0x1937 +.out_code EQU 0x15EF +.out_curs EQU 0x18E1 +.out_flash EQU 0x18C1 +.out_line1 EQU 0x1865 +.out_line2 EQU 0x187D +.out_line3 EQU 0x1881 +.out_line4 EQU 0x1894 +.out_line5 EQU 0x18A1 +.out_line6 EQU 0x18B4 +.out_line EQU 0x1855 +.out_num_1 EQU 0x1A1B +.out_num_2 EQU 0x1A28 +.out_num_3 EQU 0x1A30 +.out_num_4 EQU 0x1A42 +.out_sp_1 EQU 0x192B +.out_sp_2 EQU 0x1925 +.out_sp_no EQU 0x192A +.p_beep EQU 0x1AE3 +.p_border EQU 0x1AF5 +.p_bright EQU 0x1AEE +.p_cat EQU 0x1B14 +.p_circle EQU 0x1AE7 +.p_clear EQU 0x1ABB +.p_close EQU 0x1B02 +.p_cls EQU 0x1ABE +.p_cont EQU 0x1AB8 +.p_copy EQU 0x1AD6 +.p_data EQU 0x1ACC +.p_def_fn EQU 0x1AF9 +.p_dim EQU 0x1AA2 +.p_draw EQU 0x1AD2 +.p_erase EQU 0x1B10 +.p_flash EQU 0x1AED +.p_for EQU 0x1A90 +.p_format EQU 0x1B06 +.p_go_sub EQU 0x1A86 +.p_go_to EQU 0x1A7D +.p_if EQU 0x1A81 +.p_ink EQU 0x1AEB +.p_input EQU 0x1A9F +.p_int_sto EQU 0x2D8C +.p_inverse EQU 0x1AEF +.p_let EQU 0x1A7A +.p_list EQU 0x1AAE +.p_llist EQU 0x1ADC +.p_load EQU 0x1AE0 +.p_lprint EQU 0x1AD9 +.p_merge EQU 0x1AE2 +.p_move EQU 0x1B0A +.p_new EQU 0x1AA8 +.p_next EQU 0x1A98 +.p_open EQU 0x1AFC +.p_out EQU 0x1AF1 +.p_over EQU 0x1AF0 +.p_paper EQU 0x1AEC +.p_pause EQU 0x1AC5 +.p_plot EQU 0x1AC1 +.p_poke EQU 0x1AB1 +.p_print EQU 0x1A9C +.p_random EQU 0x1AB5 +.p_read EQU 0x1AC9 +.p_rem EQU 0x1AA5 +.p_restore EQU 0x1ACF +.p_return EQU 0x1A8D +.p_run EQU 0x1AAB +.p_save EQU 0x1ADF +.p_stop EQU 0x1A8A +.p_verify EQU 0x1AE1 +.pass_by EQU 0x1E39 +.pause EQU 0x1F3A +.pause_1 EQU 0x1F3D +.pause_2 EQU 0x1F49 +.pause_end EQU 0x1F4F +.peek EQU 0x34AC +.perm EQU 0x1C96 +.pf_all_9 EQU 0x2EB8 +.pf_bits EQU 0x2E7B +.pf_bytes EQU 0x2E8A +.pf_count EQU 0x2F2D +.pf_dc_out EQU 0x2F5E +.pf_dec_0s EQU 0x2F64 +.pf_digits EQU 0x2EA1 +.pf_e_frmt EQU 0x2F6C +.pf_e_pos EQU 0x2F83 +.pf_e_sbrn EQU 0x2F4A +.pf_e_sign EQU 0x2F85 +.pf_fr_dgt EQU 0x2EEC +.pf_fr_exx EQU 0x2EEF +.pf_fractn EQU 0x2ECF +.pf_frn_lp EQU 0x2EDF +.pf_insert EQU 0x2EA9 +.pf_large EQU 0x2E56 +.pf_loop EQU 0x2E01 +.pf_medium EQU 0x2E6F +.pf_more EQU 0x2ECB +.pf_negtve EQU 0x2DF2 +.pf_not_e EQU 0x2F46 +.pf_out_dt EQU 0x2F59 +.pf_out_lp EQU 0x2F52 +.pf_postve EQU 0x2DF8 +.pf_r_back EQU 0x2F25 +.pf_rnd_lp EQU 0x2F18 +.pf_round EQU 0x2F0C +.pf_save EQU 0x2E1E +.pf_small EQU 0x2E24 +.pf_test_2 EQU 0x2EB3 +.pixel_add EQU 0x22AA +.pl_tst_in EQU 0x22FD +.plot EQU 0x22DC +.plot_22df EQU 0x22DF ; secondary entry to PLOT +.plot_end EQU 0x2303 +.plot_loop EQU 0x22F0 +.plot_sub EQU 0x22E5 ; the plot subroutine (coords in BC) +.po_1_oper EQU 0x0A7A +.po_2_oper EQU 0x0A75 +.po_able EQU 0x0AD9 +.po_any EQU 0x0B24 +.po_at_err EQU 0x0AAC +.po_at_set EQU 0x0ABF +.po_attr EQU 0x0BDB +.po_attr_1 EQU 0x0BFA +.po_attr_2 EQU 0x0C08 +.po_back_1 EQU 0x0A23 +.po_back_2 EQU 0x0A38 +.po_back_3 EQU 0x0A3A +.po_change EQU 0x0A80 +.po_char EQU 0x0B65 +.po_char_2 EQU 0x0B6A +.po_char_3 EQU 0x0B76 +.po_comma EQU 0x0A5F +.po_cont EQU 0x0A87 +.po_each EQU 0x0C22 +.po_enter EQU 0x0A4F +.po_f_pr EQU 0x0B1D +.po_fetch EQU 0x0B03 +.po_fill EQU 0x0AC3 +.po_gr_1 EQU 0x0B38 +.po_gr_2 EQU 0x0B3E +.po_gr_3 EQU 0x0B4C +.po_msg EQU 0x0C0A +.po_quest EQU 0x0A69 +.po_right EQU 0x0A3D +.po_save EQU 0x0C3B +.po_scr EQU 0x0C55 +.po_scr_2 EQU 0x0C88 +.po_scr_3 EQU 0x0CD2 +.po_scr_3a EQU 0x0CF0 +.po_scr_4 EQU 0x0D02 +.po_scr_4a EQU 0x0D1C +.po_scr_4b EQU 0x0D2D +.po_search EQU 0x0C41 +.po_space EQU 0x0AD0 +.po_st_e EQU 0x0AF0 +.po_st_pr EQU 0x0AFC +.po_step EQU 0x0C44 +.po_store EQU 0x0ADC +.po_t EQU 0x0B5F +.po_t_and_udg EQU 0x0B52 +.po_t_udg EQU 0x0B52 +.po_tab EQU 0x0AC2 +.po_table EQU 0x0C14 +.po_tokens EQU 0x0C10 +.po_tr_sp EQU 0x0C35 +.po_tv_1 EQU 0x0A7D +.po_tv_2 EQU 0x0A6D +.point_lp EQU 0x22D4 +.point_sub EQU 0x22CB +.point_sub_22ce EQU 0x22CE ; secondary entry to POINT-SUB +.pointers EQU 0x1664 +.poke EQU 0x1E80 +.pr_all EQU 0x0B7F ; "print all characters" +.pr_all_1 EQU 0x0B93 +.pr_all_2 EQU 0x0BA4 +.pr_all_3 EQU 0x0BB6 +.pr_all_4 EQU 0x0BB7 +.pr_all_5 EQU 0x0BC1 +.pr_all_6 EQU 0x0BD3 +.pr_at_tab EQU 0x201E +.pr_end_z EQU 0x2045 +.pr_item_1 EQU 0x1FFC +.pr_item_2 EQU 0x200E +.pr_item_3 EQU 0x2024 +.pr_posn_1 EQU 0x204E +.pr_posn_2 EQU 0x2061 +.pr_posn_3 EQU 0x2067 +.pr_posn_4 EQU 0x206E +.pr_st_end EQU 0x2048 +.pr_string EQU 0x203C ; print a string (start in DE, count in BC) +.prb_bytes EQU 0x0EE7 +.prep_add EQU 0x2F9B +.prep_m_or_d EQU 0x30C0 +.print EQU 0x1FCD +.print_1 EQU 0x1FCF +.print_2 EQU 0x1FDF +.print_3 EQU 0x1FE5 +.print_4 EQU 0x1FF2 +.print_a EQU 0x0010 +.print_a_2 EQU 0x15F2 +.print_cr EQU 0x1FF5 +.print_fp EQU 0x2DE3 ; print a floating point number +.print_out EQU 0x09F4 +.print_string EQU 0x203C +.ptr_done EQU 0x167F +.ptr_next EQU 0x166B +.r_i_store EQU 0x365F +.ram_check EQU 0x11DA +.ram_done EQU 0x11EF +.ram_fill EQU 0x11DC +.ram_read EQU 0x11E2 +.ram_set EQU 0x1219 +.rand_1 EQU 0x1E5A +.randomize EQU 0x1E4F +.re_entry EQU 0x3365 +.re_st_two EQU 0x3293 +.re_stack EQU 0x3297 +.read EQU 0x1DED +.read_1 EQU 0x1E0A +.read_2 EQU 0x1E1E +.read_3 EQU 0x1DEC +.read_in EQU 0x3645 +.rec_edit EQU 0x16D4 +.reclaim_1 EQU 0x19E5 +.reclaim_2 EQU 0x19E8 +.rem EQU 0x1BB2 +.remove_fp EQU 0x11A7 +.report_0 EQU 0x1BB0 +.report_1 EQU 0x1DD8 +.report_2 EQU 0x1C2E +.report_2a EQU 0x0670 +.report_3 EQU 0x2A20 +.report_4 EQU 0x1F15 +.report_5 EQU 0x0C86 +.report_6 EQU 0x31AD +.report_6b EQU 0x3703 +.report_7 EQU 0x1F36 +.report_8 EQU 0x15E4 +.report_a EQU 0x34E7 +.report_ab EQU 0x371A +.report_b EQU 0x046C +.report_bb EQU 0x1E9F +.report_bc EQU 0x24F9 +.report_bd EQU 0x35DC +.report_c EQU 0x1C8A +.report_cb EQU 0x21CE +.report_d EQU 0x0D00 +.report_da EQU 0x0552 +.report_dc EQU 0x0F0A +.report_e EQU 0x1E08 +.report_fa EQU 0x0642 +.report_fb EQU 0x1765 +.report_h EQU 0x21D4 +.report_i EQU 0x1D84 +.report_j EQU 0x15C4 +.report_k EQU 0x2244 +.report_l EQU 0x1B7B +.report_m EQU 0x1EDA +.report_n EQU 0x1BEC +.report_oa EQU 0x160E +.report_ob EQU 0x1725 +.report_p EQU 0x2812 +.report_q EQU 0x288B +.report_r EQU 0x0806 +.reserve EQU 0x169E +.reset EQU 0x0066 +.rest_run EQU 0x1E45 +.restk_sub EQU 0x3296 +.restore EQU 0x1E42 +.result_ok EQU 0x370C +.return EQU 0x1F23 +.rom_trap EQU 0x1708 +.rpt_mesgs EQU 0x1391 +.rs_nrmlse EQU 0x32B1 +.rs_store EQU 0x32BD +.rslt_zero EQU 0x370E +.rstk_loop EQU 0x32B2 +.run EQU 0x1EA1 +.s_2_coord EQU 0x2522 +.s_alphnum EQU 0x2684 +.s_attr EQU 0x2672 +.s_attr_s EQU 0x2580 +.s_attr_s_2583 EQU 0x2583 ; secondary entry to S-ATTR-S +.s_bracket EQU 0x25E8 +.s_cont_1 EQU 0x26DD +.s_cont_2 EQU 0x2712 +.s_cont_3 EQU 0x2713 +.s_decimal EQU 0x268D +.s_fn EQU 0x25F5 +.s_fn_sbrn EQU 0x27BD +.s_ik_dollar_stk EQU 0x2660 +.s_ink_dollar_en EQU 0x2665 +.s_inkey_dollar EQU 0x2634 +.s_letter EQU 0x26C9 +.s_loop EQU 0x2734 +.s_loop_1 EQU 0x24FF +.s_loopend EQU 0x2770 +.s_negate EQU 0x26DF +.s_next EQU 0x2790 +.s_no_to_string EQU 0x2707 +.s_not_and EQU 0x2788 +.s_numeric EQU 0x26C3 +.s_opertr EQU 0x2723 +.s_pi EQU 0x2627 +.s_pi_end EQU 0x2630 +.s_point EQU 0x267B +.s_push_po EQU 0x270D +.s_q_again EQU 0x25BE +.s_q_copy EQU 0x25CB +.s_q_prms EQU 0x25D9 +.s_quote EQU 0x25B3 +.s_quote_s EQU 0x250F +.s_rnd EQU 0x25F8 +.s_rnd_end EQU 0x2625 +.s_rport_c2 EQU 0x2761 +.s_rport_c EQU 0x252D +.s_runtest EQU 0x2764 +.s_sc_mtch EQU 0x255A +.s_sc_rows EQU 0x255D +.s_scr_nxt EQU 0x2573 +.s_scr_sto EQU 0x257D +.s_screen_dollar EQU 0x2668 +.s_scrn_dollar_s EQU 0x2535 +.s_scrn_lp EQU 0x254F +.s_scrn_s EQU 0x2535 +.s_scrn_s_2538 EQU 0x2538 ; secondary entry to S-SCRN$-S +.s_sd_skip EQU 0x26B6 +.s_stk_dec EQU 0x26B5 +.s_stk_lst EQU 0x274C +.s_string EQU 0x25DB +.s_syntest EQU 0x275B +.s_tighter EQU 0x2773 +.s_u_plus EQU 0x25AF +.sa_1_sec EQU 0x0991 +.sa_8_bits EQU 0x0525 +.sa_all EQU 0x075A ; tape save/load +.sa_bit_1 EQU 0x0514 +.sa_bit_2 EQU 0x0511 +.sa_blank EQU 0x0629 +.sa_bytes EQU 0x04C2 +.sa_code EQU 0x06C3 +.sa_code_1 EQU 0x06E1 +.sa_code_2 EQU 0x06F0 +.sa_code_3 EQU 0x06F5 +.sa_code_4 EQU 0x06F9 +.sa_contrl EQU 0x0970 +.sa_data EQU 0x0652 +.sa_data_1 EQU 0x0692 +.sa_delay EQU 0x053C +.sa_flag EQU 0x04D0 +.sa_leader EQU 0x04D8 +.sa_line EQU 0x0716 +.sa_line_1 EQU 0x0723 +.sa_loop EQU 0x04FE +.sa_loop_p EQU 0x0505 +.sa_name EQU 0x064B +.sa_null EQU 0x0644 +.sa_or_ld_end EQU 0x0554 +.sa_or_ld_ret EQU 0x053F +.sa_out EQU 0x051C +.sa_parity EQU 0x050E +.sa_scr_dollar EQU 0x06A0 +.sa_set EQU 0x051A +.sa_space EQU 0x0621 +.sa_start EQU 0x0507 +.sa_sync_1 EQU 0x04EA +.sa_sync_2 EQU 0x04F2 +.sa_type_0 EQU 0x073A +.sa_type_3 EQU 0x0710 +.sa_v_new EQU 0x0685 +.sa_v_old EQU 0x0672 +.sa_v_type EQU 0x068F +.save_etc EQU 0x0605 +.scan_ent EQU 0x336C +.scan_func EQU 0x2596 +.scan_loop EQU 0x1B52 +.scanning EQU 0x24FB +.scrl_mssg EQU 0x0CF8 +.sec_plus EQU 0x3575 +.secnd_low EQU 0x356B +.separator EQU 0x1B6F +.series_xx EQU 0x3449 +.set_de EQU 0x1195 +.set_hl EQU 0x1190 +.set_min EQU 0x16B0 +.set_permanent_colors_0x1CAD EQU 0x1CAD ; special entry point +.set_permanent_colors_1CAD EQU 0x1CAD ; special entry point +.set_stk EQU 0x16C5 +.set_work EQU 0x16BF +.sf_arg_lp EQU 0x2843 +.sf_arg_vl EQU 0x2852 +.sf_argmt1 EQU 0x2802 +.sf_argmts EQU 0x27D9 +.sf_brkt_1 EQU 0x27D0 +.sf_brkt_2 EQU 0x27E4 +.sf_cp_def EQU 0x2814 +.sf_flag_6 EQU 0x27E9 +.sf_fnd_df EQU 0x2808 +.sf_not_fd EQU 0x2825 +.sf_r_br_2 EQU 0x2885 +.sf_rprt_c EQU 0x27E6 +.sf_run EQU 0x27F7 +.sf_syn_en EQU 0x27F4 +.sf_value EQU 0x288D +.sf_values EQU 0x2831 +.sfa_cp_vr EQU 0x296B +.sfa_end EQU 0x2991 +.sfa_loop EQU 0x295A +.sfa_match EQU 0x2981 +.sgn EQU 0x3492 +.shift_fp EQU 0x2FDD +.shift_len EQU 0x3055 +.shift_one EQU 0x316E +.sign_done EQU 0x2CFE +.sign_flag EQU 0x2CF2 +.sign_to_c EQU 0x3507 +.sin EQU 0x37B5 +.skip_cons EQU 0x33F7 +.skip_next EQU 0x33F8 +.skip_over EQU 0x007D +.skip_zero EQU 0x315E +.skips EQU 0x0090 +.sl_define EQU 0x2A94 +.sl_over EQU 0x2AA8 +.sl_rpt_c EQU 0x2A7A +.sl_second EQU 0x2A81 +.sl_store EQU 0x2AAD +.slicing EQU 0x2A52 +.small EQU 0x37F8 +.spare EQU 0x386E +.sqr EQU 0x384A +.st_e_part EQU 0x2CFF +.st_mem_xx EQU 0x342D +.stack_a EQU 0x2D28 +.stack_bc EQU 0x2D2B ; stack BC register pair +.stack_fetch EQU 0x2BF1 ; get last value from calculator stack +.stack_num EQU 0x33B4 +.start EQU 0x0000 +.start_new EQU 0x11CB +.stk_code EQU 0x3671 +.stk_const EQU 0x33C8 +.stk_const_xx EQU 0x341B +.stk_data EQU 0x33C6 +.stk_digit EQU 0x2D22 +.stk_f_arg EQU 0x2951 +.stk_fetch EQU 0x2BF1 +.stk_pntrs EQU 0x35BF +.stk_st_0 EQU 0x2AB1 +.stk_sto_string EQU 0x2AB2 +.stk_store EQU 0x2AB6 +.stk_to_a EQU 0x2314 +.stk_to_bc EQU 0x2307 +.stk_var EQU 0x2996 +.stk_zeros EQU 0x33F1 +.stmt_l_1 EQU 0x1B29 +.stmt_loop EQU 0x1B28 +.stmt_next EQU 0x1BF4 +.stmt_r_1 EQU 0x1B7D +.stmt_ret EQU 0x1B76 +.stop EQU 0x1CEE +.str_alter EQU 0x2070 +.str_and_no EQU 0x352D +.str_data1 EQU 0x1727 +.str_data EQU 0x171E +.str_dollar EQU 0x361F +.str_test EQU 0x3588 +.strings EQU 0x3559 +.strs_add EQU 0x359C +.strt_mlt EQU 0x3125 +.subn_only EQU 0x31F2 +.subtract EQU 0x300F +.sv_arrays EQU 0x29AE +.sv_ch_add EQU 0x29E0 +.sv_close EQU 0x29D8 +.sv_comma EQU 0x29C3 +.sv_count EQU 0x29E7 +.sv_dim EQU 0x2A48 +.sv_elem_string EQU 0x2A2C +.sv_loop EQU 0x29EA +.sv_mult EQU 0x29FB +.sv_number EQU 0x2A22 +.sv_ptr EQU 0x29C0 +.sv_rpt_c EQU 0x2A12 +.sv_simple_string EQU 0x29A1 +.sv_slice EQU 0x2A45 +.sv_slice? EQU 0x2A49 +.swap_byte EQU 0x343E +.syntax_z EQU 0x2530 +.t_expnent EQU 0x326C +.t_first EQU 0x3233 +.t_gr_zero EQU 0x3221 +.t_numeric EQU 0x3252 +.t_shift EQU 0x3261 +.t_small EQU 0x323F +.t_store EQU 0x3267 +.t_test EQU 0x325E +.tan EQU 0x37DA +.tape_msgs EQU 0x09A1 +.tbl_addrs EQU 0x32D7 +.tbl_of_ops EQU 0x2795 +.tbl_priors EQU 0x27B0 +.temp_ptr1 EQU 0x0077 +.temp_ptr2 EQU 0x0078 +.temps EQU 0x0D4D ; copy the permanent color items to the temporary ones +.temps_1 EQU 0x0D5B +.temps_2 EQU 0x0D65 +.test_5_sp EQU 0x33A9 +.test_char EQU 0x001C +.test_neg EQU 0x307C +.test_norm EQU 0x3155 +.test_room EQU 0x1F05 +.test_zero EQU 0x34E9 +.tkn_table EQU 0x0095 +.to_power EQU 0x3851 +.truncate EQU 0x3214 +.two_p_1 EQU 0x1E8E +.two_param EQU 0x1E85 +.unstack_z EQU 0x1FC3 +.use_252 EQU 0x2495 +.use_zero EQU 0x1CE6 +.usr_no EQU 0x34B3 +.usr_range EQU 0x34D3 +.usr_stack EQU 0x34E4 +.usr_string EQU 0x34BC +.v_80_byte EQU 0x2932 +.v_char EQU 0x28D4 +.v_each EQU 0x2900 +.v_end EQU 0x294B +.v_found_1 EQU 0x293E +.v_found_2 EQU 0x293F +.v_get_ptr EQU 0x2929 +.v_matches EQU 0x2912 +.v_next EQU 0x292A +.v_pass EQU 0x2943 +.v_rport_c EQU 0x360C +.v_run EQU 0x28FD +.v_run_or_syn EQU 0x28EF +.v_spaces EQU 0x2913 +.v_str_var EQU 0x28DE +.v_syntax EQU 0x2934 +.v_test_fn EQU 0x28E3 +.val_dollar EQU 0x35DE +.val_fet_1 EQU 0x1C56 +.val_fet_2 EQU 0x1C59 +.valid EQU 0x371C +.var_a_1 EQU 0x1C22 +.var_a_2 EQU 0x1C30 +.var_a_3 EQU 0x1C46 +.vr_cont_1 EQU 0x07E9 +.vr_cont_2 EQU 0x07F4 +.vr_cont_3 EQU 0x0800 +.vr_contrl EQU 0x07CB +.wait_key1 EQU 0x15DE +.wait_key EQU 0x15D4 +.x_large EQU 0x326D +.x_neg EQU 0x36B7 +.xis0 EQU 0x385D +.yneg EQU 0x37A8 +.zero_rslt EQU 0x315D +.zeros_4_or_5 EQU 0x2FFB +.zplus EQU 0x37A1 +.zx81_name EQU 0x04AA ; ZX Spectrum 128K - -ROM_SWAP: equ 0x5B00 ; 128K paging subroutine in RAM - -rom_128_new: equ 0x0057 +.ROM_SWAP EQU 0x5B00 ; 128K paging subroutine in RAM +._128_new EQU 0x0057