; TR-DOS 5.04T - Base version: 5.03, added high speed & TURBO format (interleave 1:1). ; Disassembled by Michael Markowsky (C) 1992 ; Commented by Michael Markowsky (C) 1993 ; 2:5020/378, 314:5020/37 ; Translated from the:Russian to the horrible english : PokeStudio ; Note: ; I use in comments name of basic procedure, because TR-DOS calling ROM 48. ; in ZX Spectrum128 is named (BASIC-ROM). START: 0000: F3 DI 0001: 11 FF FF LD DE,#FFFF ; Top adress for test ; RAM - 65535 0004: 3E 07 LD A,#07 ; Border color - white 0006: 18 01 JR START_1 0008: 00 NOP START_1: 0009: D3 FE OUT (#FE),A ; Set white border 000B: 3E 3F LD A,#3F 000D: 18 04 JR START_2 000F: 00 NOP PRINT_CHAR: 0010: C3 82 3D JP PR_CHAR_1 ; RST #10 is use for printing character in Accumulator. ; In this routine is call RST#10 in ROM48 (Standart Basic). START_2: 0013: ED 47 LD I,A ; In I-reg is #3F 0015: C3 1B 00 JP START_3 PRINT_STRING: 0018: C3 07 27 JP PR_STRING_1 ; RST #18 is use for printing character string. HL adress of string begin. ; End of string is mark byte 0 or set to 1 Hi bit in last print character. ; (Because there is possible printing only character with max #7F value). START_3: 001B: 00 NOP 001C: 00 NOP 001D: 00 NOP 001E: 18 04 JR RAM_CHECK CALL_BAS: 0020: C3 72 2F JP CALL_BAS_1 ; RST #20 is use for calling procedure from ROM48. Adress of calling ; procedure follow dirrectly after instruction code (RST #20). 0023: C9 RET RAM_CHECK: 0024: 62 LD H,D 0025: 6B LD L,E 0026: 18 03 JR RAM_FILL CHANNEL_OFFSET: 0028: C3 23 23 JP CHAN_OFF ; RST #28 is use for getting adress of reccord in channel table. ; Reg C must be set to the number of begin channel. ; Record adress is returned in reg. HL. RAM_FILL: 002B: 36 02 LD (HL),#02 ; Fill all RAM of code 02 002D: 2B DEC HL ; Decrement adress pointer 002E: BC CP H ; If HL<>#4000 then repeat 002F: 20 FA JR NZ,RAM_FILL 0031: 18 07 JR RAM_READ ; Jump to test RAM program. 0033: FF FF FF FF FF MASK_INTERRUPT: 0038: FB EI 0039: C9 RET ; Maskable interrupt TR-DOS not supported ,because in TR-DOS rom cannot be ; time delay. RAM_READ: 003A: B7 OR A 003B: ED 52 SBC HL,DE 003D: 19 ADD HL,DE 003E: 23 INC HL 003F: 30 06 JR NC,RAM_DONE 0041: 35 DEC (HL) 0042: 28 03 JR Z,RAM_DONE 0044: 35 DEC (HL) 0045: 28 F3 JR Z,RAM_READ RAM_DONE: 0047: 2B DEC HL 0048: 22 B4 5C LD (P_RAMT),HL 004B: 11 AF 3E LD DE,#3EAF 004E: 01 A8 00 LD BC,#00A8 0051: 7B LD A,E 0052: EB EX DE,HL 0053: 31 00 60 LD SP,#6000 0056: 22 00 5F LD (#5F00),HL 0059: 21 79 00 LD HL,START_5 005C: E5 PUSH HL 005D: 21 2F 3D LD HL,RET_TR_ROM 0060: E5 PUSH HL 0061: 21 ED B8 LD HL,#B8ED 0064: 18 03 JR START_4 NMI: 0066: C3 56 2A JP MAGIC ; There is entry point in the Non-maskable interrupt ( Magic button routine) ; This routine save to disc all RAM (#4000-#FFFF),after pressing ; MAGIC BUTTON. START_4: 0069: 22 10 5F LD (#5F10),HL 006C: F5 PUSH AF 006D: 3E C9 LD A,#C9 006F: 32 12 5F LD (#5F12),A 0072: F1 POP AF 0073: 2A 00 5F LD HL,(#5F00) 0076: C3 10 5F JP #5F10 START_5: 0079: EB EX DE,HL 007A: 23 INC HL 007B: 22 7B 5C LD (UDG),HL 007E: 2B DEC HL 007F: 01 40 1E LD BC,#1E40 0082: ED 43 38 5C LD (RASP),BC RAM_SET: 0086: 22 B2 5C LD (RAMTOP),HL 0089: 21 00 3C LD HL,#3C00 008C: 22 36 5C LD (CHARS),HL 008F: 2A B2 5C LD HL,(RAMTOP) 0092: 36 3E LD (HL),#3E 0094: 2B DEC HL 0095: F9 LD SP,HL 0096: 2B DEC HL 0097: 2B DEC HL 0098: 22 3D 5C LD (ERR_SP),HL 009B: 11 03 13 LD DE,#1303 009E: D5 PUSH DE 009F: ED 56 IM 1 00A1: FD 21 3A 5C LD IY,ERR_NR 00A5: 21 B6 5C LD HL,P_RAMT+2 00A8: 22 4F 5C LD (CHANS),HL 00AB: 11 AF 15 LD DE,#15AF 00AE: 01 15 00 LD BC,#0015 00B1: EB EX DE,HL 00B2: CD 17 01 CALL LDIR_MAIN_ROM 00B5: EB EX DE,HL 00B6: 2B DEC HL 00B7: 22 57 5C LD (DATADD),HL 00BA: 23 INC HL 00BB: 22 53 5C LD (PROG),HL 00BE: 22 4B 5C LD (VARS),HL 00C1: 36 80 LD (HL),#80 00C3: 23 INC HL 00C4: 22 59 5C LD (E_LINE),HL 00C7: 36 0D LD (HL),#0D 00C9: 23 INC HL 00CA: 36 80 LD (HL),#80 00CC: 23 INC HL 00CD: 22 61 5C LD (WORK_SP),HL 00D0: 22 63 5C LD (STK_BOT),HL 00D3: 22 65 5C LD (STK_END),HL 00D6: 3E 38 LD A,#38 00D8: 32 8D 5C LD (ATTR_P),A 00DB: 32 8F 5C LD (ATTR_T),A 00DE: 32 48 5C LD (BORDCR),A 00E1: 21 23 05 LD HL,#0523 00E4: 22 09 5C LD (REPDEL),HL 00E7: FD 35 C6 DEC (IY-#3A) 00EA: FD 35 CA DEC (IY-#36) 00ED: 21 C6 15 LD HL,#15C6 00F0: 11 10 5C LD DE,STRMS 00F3: 01 0E 00 LD BC,#000E 00F6: CD 17 01 CALL LDIR_MAIN_ROM 00F9: FD CB 01 CE SET 1,(IY+#01) 00FD: 21 C2 5C LD HL,WITH_RET 0100: 36 C9 LD (HL),#C9 0102: E7 RST CALL_BAS 0103: DF 0E DW CLEAR_PRB 0105: 21 6B 5C LD HL,DF_SZ 0108: 36 02 LD (HL),#02 010A: 21 8B 12 LD HL,#128B 010D: E5 PUSH HL 010E: 3E AA LD A,#AA 0110: 32 00 5B LD (#5B00),A 0113: FB EI 0114: C3 31 3D JP TR_DOS_1 LDIR_MAIN_ROM: 0117: 22 00 5F LD (#5F00),HL 011A: 21 2F 3D LD HL,RET_TR_ROM 011D: E5 PUSH HL 011E: 21 ED B0 LD HL,#B0ED 0121: 22 10 5F LD (#5F10),HL 0124: 2A 00 5F LD HL,(#5F00) 0127: C3 10 5F JP #5F10 PROGRAM_START: 012A: CD E5 20 CALL #20E5 012D: CD 97 1D CALL CLS 0130: 2A 59 5C LD HL,(E_LINE) 0133: 23 INC HL 0134: 5E LD E,(HL) 0135: 23 INC HL 0136: 56 LD D,(HL) 0137: 7A LD A,D 0138: B3 OR E 0139: EB EX DE,HL 013A: 28 04 JR Z,#0140 013C: AF XOR A 013D: 32 10 5D LD (#5D10),A 0140: E5 PUSH HL 0141: CD 32 02 CALL SET_ERR_SP 0144: E1 POP HL 0145: 22 42 5C LD (NEW_PPC),HL 0148: AF XOR A 0149: 32 44 5C LD (NS_PPC),A 014C: E7 RST CALL_BAS 014D: B0 16 DW SET_MIN 014F: 2A 53 5C LD HL,(PROG) 0152: 2B DEC HL 0153: 22 57 5C LD (DATADD),HL 0156: ED 7B 3D 5C LD SP,(ERR_SP) 015A: 3A 10 5D LD A,(#5D10) 015D: B7 OR A 015E: 21 76 1B LD HL,#1B76 0161: 28 03 JR Z,#0166 0163: E7 RST CALL_BAS 0164: B0 1B DW REPORT_0 0166: E5 PUSH HL 0167: 21 C2 5C LD HL,WITH_RET 016A: E5 PUSH HL 016B: C9 RET SOS_CALL_2: 016C: CD F1 20 CALL SWAP_IF_NEED 016F: CD 4A 29 CALL CREATE_BUFFER 0172: 3E FF LD A,#FF 0174: 32 15 5D LD (MESS_FLAG),A 0177: AF XOR A 0178: 32 F7 5C LD (#5CF7),A 017B: 3E AA LD A,#AA 017D: 32 17 5D LD (#5D17),A 0180: 21 01 02 LD HL,MAIN_2 0183: 22 1A 5D LD (EXIT_ADDR),HL 0186: 21 00 00 LD HL,#0000 0189: 39 ADD HL,SP 018A: 22 1C 5D LD (SAVE_SP),HL 018D: 2B DEC HL 018E: 2B DEC HL 018F: F9 LD SP,HL 0190: CD 1D 02 CALL MAKE_ERR_SP 0193: 2A B2 5C LD HL,(RAMTOP) 0196: ED 5B 5D 5C LD DE,(CH_ADD) 019A: ED 52 SBC HL,DE 019C: EB EX DE,HL 019D: 30 06 JR NC,#01A5 019F: B7 OR A 01A0: 11 01 01 LD DE,#0101 01A3: ED 52 SBC HL,DE 01A5: 22 5D 5C LD (CH_ADD),HL 01A8: CD C7 01 CALL #01C7 01AB: CA D3 01 JP Z,MAIN 01AE: FE EA CP #EA 01B0: 23 INC HL 01B1: 20 F5 JR NZ,#01A8 01B3: CD C7 01 CALL #01C7 01B6: 28 F3 JR Z,#01AB 01B8: FE 3A CP ':' 01BA: C2 D3 01 JP NZ,MAIN 01BD: 23 INC HL 01BE: CD 48 30 CALL #3048 01C1: 2A 11 5D LD HL,(COM_ADDR) 01C4: C3 0A 03 JP #030A 01C7: 7E LD A,(HL) 01C8: FE 0D CP #0D 01CA: C8 RET Z 01CB: FE 80 CP #80 01CD: C8 RET Z 01CE: B7 OR A 01CF: C9 RET 01D0: CD 43 1E CALL WRITE_SEC_FROM_BUFF MAIN: 01D3: 21 00 00 LD HL,#0000 01D6: 22 F8 5C LD (#5CF8),HL 01D9: CD E5 20 CALL #20E5 01DC: CD 63 1D CALL #1D63 01DF: 21 17 5D LD HL,#5D17 01E2: 36 AA LD (HL),#AA 01E4: 21 1F 5D LD HL,#5D1F 01E7: 7E LD A,(HL) 01E8: B7 OR A 01E9: 36 00 LD (HL),#00 01EB: 20 06 JR NZ,MAIN_1 01ED: CD 1C 1E CALL REMOVE_FP 01F0: CD 12 02 CALL SKIP_TO_EOL MAIN_1: 01F3: ED 7B 1C 5D LD SP,(SAVE_SP) 01F7: 2A 1A 5D LD HL,(EXIT_ADDR) 01FA: ED 4B 0F 5D LD BC,(TRDOS_ERR) 01FE: 06 00 LD B,#00 0200: E9 JP (HL) MAIN_2: 0201: CD 32 02 CALL SET_ERR_SP 0204: FD CB 00 7E BIT 7,(IY+#00) 0208: C0 RET NZ 0209: 11 C2 5C LD DE,WITH_RET 020C: ED 7B 3D 5C LD SP,(ERR_SP) 0210: D5 PUSH DE 0211: C9 RET SKIP_TO_EOL: 0212: CD 8C 1D CALL GET_CHAR 0215: FE 0D CP #0D 0217: C8 RET Z 0218: CD 2A 1E CALL NEXT_CHAR 021B: 18 F5 JR SKIP_TO_EOL MAKE_ERR_SP: 021D: 2A 3D 5C LD HL,(ERR_SP) 0220: 22 13 5D LD (ERROR_SP),HL 0223: 2A 1C 5D LD HL,(SAVE_SP) 0226: 2B DEC HL 0227: 2B DEC HL 0228: 22 3D 5C LD (ERR_SP),HL 022B: 11 16 3D LD DE,ON_ERROR 022E: 73 LD (HL),E 022F: 23 INC HL 0230: 72 LD (HL),D 0231: C9 RET SET_ERR_SP: 0232: 2A 13 5D LD HL,(ERROR_SP) 0235: 22 3D 5C LD (ERR_SP),HL 0238: C9 RET TR_DOS_2: 0239: 21 00 00 LD HL,#0000 023C: 22 F7 5C LD (#5CF7),HL 023F: 39 ADD HL,SP 0240: 22 1C 5D LD (SAVE_SP),HL 0243: 2B DEC HL 0244: 2B DEC HL 0245: F9 LD SP,HL 0246: CD 1D 02 CALL MAKE_ERR_SP 0249: 21 17 5D LD HL,#5D17 024C: 7E LD A,(HL) 024D: FE AA CP #AA 024F: 3E 00 LD A,#00 0251: 32 0F 5D LD (TRDOS_ERR),A 0254: CA CB 02 JP Z,#02CB 0257: 36 AA LD (HL),#AA 0259: CD 97 1D CALL CLS 025C: CD 88 1D CALL OPEN_CHAN_2 025F: 21 60 03 LD HL,LOGIN_MESS 0262: DF RST PRINT_STRING 0263: CD 6E 10 CALL BANNER 0266: 3A B6 5C LD A,(P_RAMT+2) 0269: FE F4 CP #F4 026B: 28 04 JR Z,#0271 026D: 21 00 10 LD HL,#1000 0270: DF RST PRINT_STRING 0271: 3A 00 5B LD A,(#5B00) 0274: FE AA CP #AA 0276: 20 53 JR NZ,#02CB 0278: CD F1 20 CALL SWAP_IF_NEED ; RUN_BOOT is making in buffer command line with ; RUN "boot" and after follow jump to the Command Interpret. RUN_BOOT: 027B: 2A 59 5C LD HL,(E_LINE) 027E: 3E FE LD A,#FE 0280: 32 0E 5D LD (COM_FLAG),A 0283: 36 F7 LD (HL),#F7 0285: 23 INC HL 0286: 36 22 LD (HL),'"' 0288: 23 INC HL 0289: 36 62 LD (HL),'b' 028B: 23 INC HL 028C: 36 6F LD (HL),'o' 028E: 23 INC HL 028F: 36 6F LD (HL),'o' 0291: 23 INC HL 0292: 36 74 LD (HL),'t' 0294: 23 INC HL 0295: 36 22 LD (HL),'"' 0297: 23 INC HL 0298: 22 5B 5C LD (K_CUR),HL 029B: 36 0D LD (HL),#0D 029D: 23 INC HL 029E: 36 80 LD (HL),#80 02A0: 23 INC HL 02A1: 22 61 5C LD (WORK_SP),HL 02A4: 22 63 5C LD (STK_BOT),HL 02A7: 22 65 5C LD (STK_END),HL 02AA: FD CB 01 DE SET 3,(IY+#01) 02AE: 18 3F JR #02EF MOVE_3_BYTES: 02B0: 06 03 LD B,#03 02B2: 7E LD A,(HL) 02B3: 12 LD (DE),A 02B4: 23 INC HL 02B5: 13 INC DE 02B6: 10 FA DJNZ #02B2 02B8: C9 RET 02B9: 06 20 LD B,#20 02BB: C5 PUSH BC 02BC: EE 08 XOR #08 02BE: D3 FF OUT (#FF),A 02C0: F5 PUSH AF 02C1: 3E 05 LD A,#05 02C3: CD FF 3D CALL #3DFF 02C6: F1 POP AF 02C7: C1 POP BC 02C8: 10 F1 DJNZ #02BB 02CA: C9 RET 02CB: 2A 1C 5D LD HL,(SAVE_SP) 02CE: 2B DEC HL 02CF: 2B DEC HL 02D0: F9 LD SP,HL 02D1: CD F1 20 CALL SWAP_IF_NEED 02D4: CD 83 1D CALL OPEN_CHAN_0 02D7: 3A 16 5D LD A,(SYS_REG) 02DA: F6 03 OR #03 02DC: CD B9 02 CALL #02B9 02DF: 3A 16 5D LD A,(SYS_REG) 02E2: CD B9 02 CALL #02B9 02E5: AF XOR A 02E6: 32 15 5D LD (MESS_FLAG),A 02E9: CD 35 21 CALL #2135 02EC: CD 32 30 CALL #3032 02EF: CD 9F 1D CALL CLS_LOWER 02F2: 21 CB 02 LD HL,#02CB 02F5: 22 1A 5D LD (EXIT_ADDR),HL 02F8: AF XOR A 02F9: 32 0F 5D LD (TRDOS_ERR),A 02FC: 2A 59 5C LD HL,(E_LINE) 02FF: E5 PUSH HL 0300: 11 20 5D LD DE,#5D20 0303: CD B0 02 CALL MOVE_3_BYTES 0306: E1 POP HL 0307: 22 11 5D LD (COM_ADDR),HL 030A: 7E LD A,(HL) 030B: 47 LD B,A 030C: E6 80 AND #80 030E: 78 LD A,B 030F: 28 09 JR Z,#031A 0311: FE FE CP #FE 0313: 28 05 JR Z,#031A 0315: F5 PUSH AF 0316: CD C8 3D CALL #3DC8 0319: F1 POP AF 031A: 21 F3 2F LD HL,COMMANDS_OFFSET_TABLE 031D: 2B DEC HL 031E: 0E 00 LD C,#00 0320: 0C INC C 0321: 57 LD D,A 0322: 3E 15 LD A,#15 0324: B9 CP C 0325: DA D3 01 JP C,MAIN 0328: 7A LD A,D 0329: 23 INC HL 032A: BE CP (HL) 032B: 20 F3 JR NZ,#0320 032D: FE FE CP #FE 032F: C4 4A 29 CALL NZ,CREATE_BUFFER 0332: 3E 09 LD A,#09 0334: 32 06 5D LD (NAME_LENGTH),A 0337: AF XOR A 0338: 32 0F 5D LD (TRDOS_ERR),A 033B: 32 D6 5C LD (SC_00),A 033E: 32 10 5D LD (#5D10),A 0341: 21 3B 5C LD HL,FLAGS 0344: CB BE RES 7,(HL) 0346: 06 00 LD B,#00 0348: 21 08 30 LD HL,COMMANDS_ROUTINES_TABLE 034B: 0D DEC C 034C: CB 21 SLA C 034E: 09 ADD HL,BC 034F: 5E LD E,(HL) 0350: 23 INC HL 0351: 56 LD D,(HL) 0352: EB EX DE,HL 0353: E5 PUSH HL 0354: 11 59 03 LD DE,#0359 0357: D5 PUSH DE 0358: E9 JP (HL) 0359: 21 3B 5C LD HL,FLAGS 035C: CB FE SET 7,(HL) 035E: E1 POP HL 035F: E9 JP (HL) LOGIN_MESS: 0360: DB #16,#01,#05,"* TR-DOS Ver 5.04T*",#0D,#0D 0378: DB #7F," 1986 Technology Research Ltd." 0397: DB #16,#05,VT,"(U.K.)" 03A0: DB #16,#07,#05,"BETA 128",#00 03AC: CD FD 03 CALL READ_8TH_SECTOR 03AF: CD 80 3D CALL PRINT_CR 03B2: CD 80 3D CALL PRINT_CR 03B5: ED 4B 0A 5E LD BC,(BUFFER+#E5) 03B9: CD A9 1D CALL OUT_NUM_BC 03BC: 21 D2 29 LD HL,#29D2 03BF: DF RST PRINT_STRING TO_MAIN: 03C0: C3 D3 01 JP MAIN REPORT_IF_NEED: 03C3: F5 PUSH AF 03C4: 3A 0E 5D LD A,(COM_FLAG) 03C7: FE FE CP #FE 03C9: 20 02 JR NZ,TRDOS_REPORT 03CB: F1 POP AF 03CC: C9 RET TRDOS_REPORT: 03CD: F1 POP AF 03CE: 32 0F 5D LD (TRDOS_ERR),A 03D1: 3A 15 5D LD A,(MESS_FLAG) 03D4: B7 OR A 03D5: CC 07 27 CALL Z,PR_STRING_1 03D8: C9 RET REP_NO_FILE: 03D9: 21 28 2A LD HL,#2A28 03DC: 3E 01 LD A,#01 03DE: C3 4A 1C JP MAKE_REPORT REPORT_OK: 03E1: 21 66 27 LD HL,#2766 03E4: AF XOR A 03E5: C3 4A 1C JP MAKE_REPORT ; Entry point in the READ_0TH_SECTOR procedure. Read first sector in first ; track ( Absolutely it is Track:0,Sec: 0 ) in the dynamic buffer. READ_0TH_SECTOR: 03E8: AF XOR A 03E9: 32 CC 5C LD (CAT_SEC),A ; Entry point in the READ_CAT_SECTOR procedure.Read sector in first track ; ( Absolutely is is Track:0 ). Which sector has been read is set system ; variable CAT_SEC. Sector is load in dynamic buffer. READ_CAT_SECTOR: 03EC: ED 5B CC 5C LD DE,(CAT_SEC) 03F0: 16 00 LD D,#00 ; Entry point in the READ_SEC_TO_BUFF procedure.Read sector number how is ; in reg. E from the track: 0 READ_SEC_TO_BUFF: 03F2: CD 4A 29 CALL CREATE_BUFFER 03F5: 21 25 5D LD HL,BUFFER 03F8: 06 01 LD B,#01 03FA: C3 3D 1E JP READ_BUFF ; Entry point in the READ_8TH_SECTOR procedure. Read 8-th sector ( track:0 ) ; in the dynamic buffer. READ_8TH_SECTOR: 03FD: CD 4A 29 CALL CREATE_BUFFER 0400: 11 08 00 LD DE,#0008 0403: 18 ED JR READ_SEC_TO_BUFF ; CHECK_DISK_TYPE Procedure reading 8th-sector and getting information ; about disc ( 1 or 2 sides , 40 or 80 tracks ) CHECK_DISK_TYPE: 0405: CD FD 03 CALL READ_8TH_SECTOR 0408: 3A 0C 5E LD A,(BUFFER+#E7) 040B: FE 10 CP #10 040D: 28 06 JR Z,TRDOS_DISK ; If byte in 8th-sector and in adr #E7 not equal #10, ; then this disc is not TR-DOS's and printing error: "Disk error" 040F: 21 E2 29 LD HL,#29E2 0412: DF RST PRINT_STRING 0413: 18 AB JR TO_MAIN TRDOS_DISK: 0415: CD 11 3E CALL GET_DRIVE_TYPE 0418: CB 86 RES 0,(HL) 041A: CB 8E RES 1,(HL) 041C: 3A 08 5E LD A,(BUFFER+#E3) 041F: CB 47 BIT 0,A 0421: 20 02 JR NZ,#0425 0423: CB C6 SET 0,(HL) 0425: CB 5F BIT 3,A 0427: C0 RET NZ 0428: CB CE SET 1,(HL) 042A: C9 RET ; CHECK_EOL procedure testing, if command interpret is now in the end of ; command line. ; Flag Z is set to 1, if command line is ending. CHECK_EOL: 042B: 2A 11 5D LD HL,(COM_ADDR) 042E: 23 INC HL 042F: 7E LD A,(HL) 0430: FE 0D CP #0D 0432: C9 RET ; Procedure printing of disc catalog in the current stream. CAT: 0433: CD 2B 04 CALL CHECK_EOL 0436: 01 02 00 LD BC,#0002 0439: ED 43 DB 5C LD (SC_0F),BC 043D: 28 2B JR Z,#046A 043F: FE 23 CP '#' 0441: 20 1A JR NZ,#045D 0443: 22 5D 5C LD (CH_ADD),HL 0446: CD 0B 1E CALL #1E0B 0449: CD 8C 1D CALL GET_CHAR 044C: FE 0D CP #0D 044E: 28 1A JR Z,#046A 0450: FE 2C CP ',' 0452: C2 1A 1D JP NZ,ERROR_SYNTAX 0455: CD 2A 1E CALL NEXT_CHAR 0458: CD BD 1D CALL CLASS_0A 045B: 18 03 JR #0460 045D: CD DF 1D CALL EVAL_EXPR 0460: CD 75 1D CALL QUIT_SYNTAX_Z 0463: CD B5 1D CALL STK_FETCH 0466: EB EX DE,HL 0467: CD 81 1C CALL DRV_FROM_FILENAME 046A: CD 75 1D CALL QUIT_SYNTAX_Z 046D: 3A F6 5C LD A,(TMP_DRIVE) 0470: 32 F9 5C LD (#5CF9),A 0473: CD 05 04 CALL CHECK_DISK_TYPE 0476: 3A DB 5C LD A,(SC_0F) READ_CAT_1: 0479: FE 02 CP #02 047B: F5 PUSH AF ; If output go on TV screen ,call before clear screen. 047C: CC 97 1D CALL Z,CLS 047F: F1 POP AF 0480: FE 11 CP #11 ; Number of sector if greather 16 it is error. 0482: D2 1A 1D JP NC,ERROR_SYNTAX 0485: CD 84 1D CALL OPEN_CHAN 0488: 3E FF LD A,#FF 048A: 32 F8 5C LD (#5CF8),A 048D: 21 F7 29 LD HL,#29F7 0490: DF RST PRINT_STRING 0491: 21 1A 5E LD HL,BUFFER+#F5 0494: DF RST PRINT_STRING 0495: CD 80 3D CALL PRINT_CR 0498: 3A 09 5E LD A,(BUFFER+#E4) 049B: 21 19 5E LD HL,BUFFER+#F4 049E: 96 SUB (HL) 049F: E5 PUSH HL 04A0: CD A3 1D CALL OUT_NUM_A 04A3: 21 2B 2A LD HL,#2A2B 04A6: DF RST PRINT_STRING 04A7: E1 POP HL 04A8: 4E LD C,(HL) 04A9: CD A4 1D CALL OUT_NUM_C 04AC: 21 1D 2A LD HL,#2A1D 04AF: DF RST PRINT_STRING 04B0: CD E8 03 CALL READ_0TH_SECTOR 04B3: 21 25 5D LD HL,BUFFER 04B6: CD F6 04 CALL #04F6 04B9: CD 80 3D CALL PRINT_CR 04BC: 3A F6 5C LD A,(TMP_DRIVE) 04BF: C6 41 ADD A,'A' 04C1: D7 RST PRINT_CHAR 04C2: 06 02 LD B,#02 04C4: CD F6 04 CALL #04F6 04C7: C5 PUSH BC 04C8: 3E 3A LD A,':' 04CA: D7 RST PRINT_CHAR 04CB: E5 PUSH HL 04CC: CD 38 29 CALL PR_NAME_&_TYPE 04CF: 01 0D 00 LD BC,#000D 04D2: E1 POP HL 04D3: E5 PUSH HL 04D4: 09 ADD HL,BC 04D5: 4E LD C,(HL) 04D6: C5 PUSH BC 04D7: 79 LD A,C 04D8: 06 02 LD B,#02 04DA: FE 0A CP #0A 04DC: 38 01 JR C,#04DF 04DE: 05 DEC B 04DF: FE 64 CP #64 04E1: 30 05 JR NC,#04E8 04E3: 3E 20 LD A,' ' 04E5: D7 RST PRINT_CHAR 04E6: 10 FB DJNZ #04E3 04E8: C1 POP BC 04E9: CD A9 1D CALL OUT_NUM_BC 04EC: E1 POP HL 04ED: C1 POP BC 04EE: 11 10 00 LD DE,PRINT_CHAR 04F1: 19 ADD HL,DE 04F2: 10 D0 DJNZ #04C4 04F4: 18 C0 JR #04B6 04F6: E5 PUSH HL 04F7: C5 PUSH BC 04F8: 3A F9 5C LD A,(#5CF9) 04FB: 21 F6 5C LD HL,TMP_DRIVE 04FE: BE CP (HL) 04FF: C4 CB 3D CALL NZ,SET_DRIVE 0502: C1 POP BC 0503: E1 POP HL 0504: C3 C6 2F JP #2FC6 ; ADD_#10_TO_HL procedure make move pointer (HL) after record in the ; catalog. ADD_#10_TO_HL: 0507: 11 10 00 LD DE,#0010 050A: 19 ADD HL,DE 050B: C9 RET ; CHECK_BUFF_BOTTOM procedure testing if not overfloated pointer (HL) ; top of dynamic buffer and. If not overfloated goto read next sector ; of catalog CHECK_BUFF_BOTTOM: 050C: E5 PUSH HL 050D: C5 PUSH BC 050E: 01 DB A1 LD BC,-#5E25 ; #5E25 - Adress byte directly after buffer. 0511: 09 ADD HL,BC 0512: 38 03 JR C,NEXT_CAT_SEC 0514: C1 POP BC 0515: E1 POP HL 0516: C9 RET ; NEXT_CAT_SEC procedure read next sector of catalog. NEXT_CAT_SEC: 0517: 21 CC 5C LD HL,CAT_SEC 051A: 34 INC (HL) 051B: CD EC 03 CALL READ_CAT_SECTOR 051E: C1 POP BC 051F: E1 POP HL 0520: 21 25 5D LD HL,BUFFER 0523: C9 RET ; EVAL_RIGHT_DRV - Test disc drive name character(A-D) in A reg. ; Number of disc drive (0-3). ; Number 4 is getting error. EVAL_RIGHT_DRV: 0524: E6 DF AND #DF 0526: DE 41 SBC A,'A' 0528: DA 1A 1D JP C,ERROR_SYNTAX 052B: FE 04 CP #04 052D: D2 1A 1D JP NC,ERROR_SYNTAX 0530: C9 RET ; GET_NONZERO_EXPR Get number from calculator stack in the BC reg. ; And BC is testing if equal 0. GET_NONZERO_EXPR: 0531: CD B5 1D CALL STK_FETCH 0534: 79 LD A,C 0535: B8 CP B 0536: CA 1A 1D JP Z,ERROR_SYNTAX 0539: C9 RET NEW: 053A: CD CD 1D CALL EVAL_TWO_EXPR 053D: CD 75 1D CALL QUIT_SYNTAX_Z 0540: CD 2E 10 CALL DEFINE_FILE_TYPE 0543: CD B0 1C CALL FIND_NAME 0546: 3A F6 5C LD A,(TMP_DRIVE) 0549: 32 F8 5C LD (#5CF8),A 054C: C2 D9 03 JP NZ,REP_NO_FILE 054F: C5 PUSH BC 0550: CD 5D 16 CALL READ_HEADER_1 0553: CD B0 1C CALL FIND_NAME 0556: F5 PUSH AF 0557: 3A F8 5C LD A,(#5CF8) 055A: 21 F6 5C LD HL,TMP_DRIVE 055D: BE CP (HL) 055E: C2 1A 1D JP NZ,ERROR_SYNTAX 0561: CD 05 04 CALL CHECK_DISK_TYPE 0564: F1 POP AF 0565: CA 50 1C JP Z,REP_FILE_EXISTS 0568: C1 POP BC 0569: CD 6B 16 CALL #166B 056C: CD 43 1E CALL WRITE_SEC_FROM_BUFF 056F: C3 E1 03 JP REPORT_OK 0572: 3A 10 5D LD A,(#5D10) 0575: B7 OR A 0576: C9 RET 0577: 3A 07 5D LD A,(N_DELETED) 057A: B7 OR A 057B: CA D9 03 JP Z,REP_NO_FILE 057E: C3 E1 03 JP REPORT_OK OVERWRITE?: 0581: C5 PUSH BC 0582: CD 97 1D CALL CLS 0585: 3A F6 5C LD A,(TMP_DRIVE) 0588: C6 41 ADD A,'A' 058A: CD 82 3D CALL PR_CHAR_1 058D: 3E 3A LD A,':' 058F: CD 82 3D CALL PR_CHAR_1 0592: 21 DD 5C LD HL,FILE_NAME 0595: CD 38 29 CALL PR_NAME_&_TYPE 0598: 21 20 28 LD HL,#2820 059B: CD 07 27 CALL PR_STRING_1 059E: CD 52 10 CALL INKEY 05A1: FE 59 CP 'Y' 05A3: F5 PUSH AF 05A4: CD 97 1D CALL CLS 05A7: F1 POP AF 05A8: C1 POP BC 05A9: C0 RET NZ 05AA: C5 PUSH BC 05AB: CD 97 1D CALL CLS 05AE: C1 POP BC 05AF: CD 81 07 CALL #0781 05B2: AF XOR A 05B3: C9 RET 05B4: 3A E5 5C LD A,(FILE_TYPE) 05B7: FE 23 CP '#' 05B9: 28 02 JR Z,#05BD 05BB: AF XOR A 05BC: C9 RET 05BD: 3E 0A LD A,#0A 05BF: 32 06 5D LD (NAME_LENGTH),A 05C2: CD B3 1C CALL FIND_NAME_1 05C5: 3E 09 LD A,#09 05C7: 32 06 5D LD (NAME_LENGTH),A 05CA: C9 RET COPY_DRV_TO_DRV: 05CB: 3A DD 5C LD A,(FILE_NAME) 05CE: FE 2A CP '*' 05D0: C2 D9 03 JP NZ,REP_NO_FILE 05D3: CD B5 1D CALL STK_FETCH 05D6: EB EX DE,HL 05D7: CD 81 1C CALL DRV_FROM_FILENAME 05DA: 7E LD A,(HL) 05DB: FE 2A CP '*' 05DD: C2 1A 1D JP NZ,ERROR_SYNTAX 05E0: 3A F6 5C LD A,(TMP_DRIVE) 05E3: 32 F9 5C LD (#5CF9),A 05E6: 3A F9 5C LD A,(#5CF9) 05E9: CD CB 3D CALL SET_DRIVE 05EC: CD 05 04 CALL CHECK_DISK_TYPE 05EF: 3E FF LD A,#FF 05F1: 32 0D 5D LD (#5D0D),A 05F4: 3A F8 5C LD A,(#5CF8) 05F7: CD CB 3D CALL SET_DRIVE 05FA: CD 05 04 CALL CHECK_DISK_TYPE 05FD: 3A 0D 5D LD A,(#5D0D) 0600: 3C INC A 0601: 32 0D 5D LD (#5D0D),A 0604: 4F LD C,A 0605: CD 5D 16 CALL READ_HEADER_1 0608: 3A DD 5C LD A,(FILE_NAME) 060B: FE 00 CP #00 060D: CA E1 03 JP Z,REPORT_OK 0610: FE 01 CP #01 0612: 28 E0 JR Z,#05F4 0614: 21 E6 5C LD HL,FILE_START 0617: 11 ED 5C LD DE,#5CED 061A: 01 07 00 LD BC,#0007 061D: ED B0 LDIR 061F: 3A F9 5C LD A,(#5CF9) 0622: CD CB 3D CALL SET_DRIVE 0625: CD B3 1C CALL FIND_NAME_1 0628: 20 0A JR NZ,#0634 062A: CD B4 05 CALL #05B4 062D: 20 05 JR NZ,#0634 062F: CD 81 05 CALL OVERWRITE? 0632: 20 C0 JR NZ,#05F4 0634: CD 3C 06 CALL #063C 0637: CD 43 1E CALL WRITE_SEC_FROM_BUFF 063A: 18 B8 JR #05F4 063C: CD FD 03 CALL READ_8TH_SECTOR 063F: 3A 09 5E LD A,(BUFFER+#E4) 0642: FE 80 CP #80 0644: CA 45 1C JP Z,REP_NO_SPACE 0647: 21 ED 5C LD HL,#5CED 064A: 11 E6 5C LD DE,FILE_START 064D: 01 07 00 LD BC,#0007 0650: ED B0 LDIR 0652: ED 5B EA 5C LD DE,(N_SECTORS) 0656: 16 00 LD D,#00 0658: B7 OR A 0659: 2A 0A 5E LD HL,(BUFFER+#E5) 065C: ED 52 SBC HL,DE 065E: DA 45 1C JP C,REP_NO_SPACE 0661: 22 0A 5E LD (BUFFER+#E5),HL 0664: 2A 06 5E LD HL,(BUFFER+#E1) 0667: 22 EB 5C LD (FIRST_SEC),HL 066A: E5 PUSH HL 066B: CD 2F 07 CALL #072F 066E: E1 POP HL 066F: 22 EB 5C LD (FIRST_SEC),HL 0672: 2A F4 5C LD HL,(CUR_SEC) 0675: 22 06 5E LD (BUFFER+#E1),HL 0678: 21 09 5E LD HL,BUFFER+#E4 067B: 34 INC (HL) 067C: 4E LD C,(HL) 067D: 0D DEC C 067E: 06 00 LD B,#00 0680: C5 PUSH BC 0681: 11 09 00 LD DE,START_1 0684: ED 53 F4 5C LD (CUR_SEC),DE 0688: CD 43 1E CALL WRITE_SEC_FROM_BUFF 068B: C1 POP BC 068C: CD 6B 16 CALL #166B 068F: C9 RET COPY: 0690: 2A 11 5D LD HL,(COM_ADDR) 0693: 23 INC HL 0694: 7E LD A,(HL) 0695: E6 DF AND #DF 0697: FE 53 CP 'S' 0699: CA 60 13 JP Z,COPY_SINGLE_DRV 069C: FE 42 CP 'B' 069E: CA 2C 15 JP Z,BACKUP_DISK 06A1: CD CD 1D CALL EVAL_TWO_EXPR 06A4: CD 75 1D CALL QUIT_SYNTAX_Z 06A7: CD 6F 16 CALL #166F 06AA: CD 2E 10 CALL DEFINE_FILE_TYPE 06AD: CD B0 1C CALL FIND_NAME 06B0: 3A F6 5C LD A,(TMP_DRIVE) 06B3: 32 F8 5C LD (#5CF8),A 06B6: C2 CB 05 JP NZ,COPY_DRV_TO_DRV 06B9: CD 5D 16 CALL READ_HEADER_1 06BC: 21 E6 5C LD HL,FILE_START 06BF: 11 ED 5C LD DE,#5CED 06C2: 01 07 00 LD BC,#0007 06C5: ED B0 LDIR 06C7: CD B0 1C CALL FIND_NAME 06CA: F5 PUSH AF 06CB: C5 PUSH BC 06CC: 3A F6 5C LD A,(TMP_DRIVE) 06CF: 32 F9 5C LD (#5CF9),A 06D2: 3A F8 5C LD A,(#5CF8) 06D5: CD CB 3D CALL SET_DRIVE 06D8: CD 05 04 CALL CHECK_DISK_TYPE 06DB: 3A F9 5C LD A,(#5CF9) 06DE: CD CB 3D CALL SET_DRIVE 06E1: CD 05 04 CALL CHECK_DISK_TYPE 06E4: C1 POP BC 06E5: F1 POP AF 06E6: 20 0B JR NZ,#06F3 06E8: CD B4 05 CALL #05B4 06EB: 20 06 JR NZ,#06F3 06ED: CD 81 05 CALL OVERWRITE? 06F0: C2 E1 03 JP NZ,REPORT_OK 06F3: CD 3C 06 CALL #063C 06F6: CD 43 1E CALL WRITE_SEC_FROM_BUFF 06F9: 3A E5 5C LD A,(FILE_TYPE) 06FC: FE 23 CP '#' 06FE: C2 E1 03 JP NZ,REPORT_OK 0701: 3E 0A LD A,#0A 0703: 32 06 5D LD (NAME_LENGTH),A 0706: 21 E6 5C LD HL,FILE_START 0709: 34 INC (HL) 070A: 3A F8 5C LD A,(#5CF8) 070D: CD CB 3D CALL SET_DRIVE 0710: CD B4 05 CALL #05B4 0713: C2 E1 03 JP NZ,REPORT_OK 0716: CD 5D 16 CALL READ_HEADER_1 0719: 21 E6 5C LD HL,FILE_START 071C: 11 ED 5C LD DE,#5CED 071F: 01 07 00 LD BC,#0007 0722: ED B0 LDIR 0724: 3A F9 5C LD A,(#5CF9) 0727: CD CB 3D CALL SET_DRIVE 072A: CD 05 04 CALL CHECK_DISK_TYPE 072D: 18 C4 JR #06F3 072F: 3A F1 5C LD A,(#5CF1) 0732: B7 OR A 0733: C8 RET Z 0734: E5 PUSH HL 0735: 21 23 5D LD HL,#5D23 0738: 96 SUB (HL) 0739: E1 POP HL 073A: 30 39 JR NC,#0775 073C: 3A F1 5C LD A,(#5CF1) 073F: 47 LD B,A 0740: AF XOR A 0741: 32 F1 5C LD (#5CF1),A 0744: C5 PUSH BC 0745: 3A F8 5C LD A,(#5CF8) 0748: CD CB 3D CALL SET_DRIVE 074B: C1 POP BC 074C: C5 PUSH BC 074D: 2A CF 5C LD HL,(#5CCF) 0750: E5 PUSH HL 0751: ED 5B F2 5C LD DE,(#5CF2) 0755: CD 3D 1E CALL READ_BUFF 0758: 2A F4 5C LD HL,(CUR_SEC) 075B: 22 F2 5C LD (#5CF2),HL 075E: 3A F9 5C LD A,(#5CF9) 0761: CD CB 3D CALL SET_DRIVE 0764: E1 POP HL 0765: C1 POP BC 0766: ED 5B EB 5C LD DE,(FIRST_SEC) 076A: CD 4D 1E CALL WRITE_BUFF 076D: 2A F4 5C LD HL,(CUR_SEC) 0770: 22 EB 5C LD (FIRST_SEC),HL 0773: 18 BA JR #072F 0775: 32 F1 5C LD (#5CF1),A 0778: E5 PUSH HL 0779: 21 23 5D LD HL,#5D23 077C: 46 LD B,(HL) 077D: E1 POP HL 077E: AF XOR A 077F: 18 C3 JR #0744 0781: AF XOR A 0782: 32 07 5D LD (N_DELETED),A 0785: 18 19 JR MAKE_DELETED ERASE: 0787: CD DF 1D CALL EVAL_EXPR 078A: CD 75 1D CALL QUIT_SYNTAX_Z 078D: CD 2E 10 CALL DEFINE_FILE_TYPE 0790: AF XOR A 0791: 32 07 5D LD (N_DELETED),A 0794: CD 2F 29 CALL SEARCH_NAME 0797: CD A0 07 CALL MAKE_DELETED 079A: C2 77 05 JP NZ,#0577 079D: C3 E1 03 JP REPORT_OK MAKE_DELETED: 07A0: 3A DD 5C LD A,(FILE_NAME) 07A3: 32 08 5D LD (FIRST_CHAR),A 07A6: C0 RET NZ 07A7: 21 07 5D LD HL,N_DELETED 07AA: 34 INC (HL) 07AB: C5 PUSH BC 07AC: CD FD 03 CALL READ_8TH_SECTOR 07AF: 3A 09 5E LD A,(BUFFER+#E4) 07B2: C1 POP BC 07B3: 0C INC C 07B4: B9 CP C 07B5: 20 05 JR NZ,#07BC 07B7: 3D DEC A 07B8: 32 09 5E LD (BUFFER+#E4),A 07BB: AF XOR A 07BC: F5 PUSH AF 07BD: 28 04 JR Z,#07C3 07BF: 21 19 5E LD HL,BUFFER+#F4 07C2: 34 INC (HL) 07C3: C5 PUSH BC 07C4: CD 43 1E CALL WRITE_SEC_FROM_BUFF 07C7: C1 POP BC 07C8: 0D DEC C 07C9: CD 5D 16 CALL READ_HEADER_1 07CC: F1 POP AF 07CD: CA D2 07 JP Z,#07D2 07D0: 3E 01 LD A,#01 07D2: 32 DD 5C LD (FILE_NAME),A 07D5: F5 PUSH AF 07D6: CD 40 1E CALL #1E40 07D9: 3A 08 5D LD A,(FIRST_CHAR) 07DC: 32 DD 5C LD (FILE_NAME),A 07DF: F1 POP AF 07E0: 28 05 JR Z,#07E7 07E2: CD B3 1C CALL FIND_NAME_1 07E5: 18 B9 JR MAKE_DELETED 07E7: CD FD 03 CALL READ_8TH_SECTOR 07EA: 2A EB 5C LD HL,(FIRST_SEC) 07ED: 22 06 5E LD (BUFFER+#E1),HL 07F0: ED 5B EA 5C LD DE,(N_SECTORS) 07F4: 2A 0A 5E LD HL,(BUFFER+#E5) 07F7: 16 00 LD D,#00 07F9: 19 ADD HL,DE 07FA: 22 0A 5E LD (BUFFER+#E5),HL 07FD: C3 43 1E JP WRITE_SEC_FROM_BUFF 0800: E6 FC AND #FC 0802: C3 9A 3D JP DISK_RESTORE_1 0806: DB " Message for hackers: Base version 5.03, High speed, Turbo format. ", #7F,"Copyright C.C. 1991" 085D - 0FFF: FF FF FF FF ... 1954 (#7A2) bytes free. 1000: DB #16,#09,#05,"Interface one fitted",#00 ASTERISK_SET_DRIVE: 1018: CD DF 1D CALL EVAL_EXPR 101B: CD 75 1D CALL QUIT_SYNTAX_Z 101E: CD 31 05 CALL GET_NONZERO_EXPR 1021: 1A LD A,(DE) 1022: CD 24 05 CALL EVAL_RIGHT_DRV 1025: 32 19 5D LD (DEFAULT_DRV),A 1028: CD CB 3D CALL SET_DRIVE 102B: C3 E1 03 JP REPORT_OK DEFINE_FILE_TYPE: 102E: 06 43 LD B,'C' 1030: 3A D6 5C LD A,(SC_00) 1033: B7 OR A 1034: 20 17 JR NZ,#104D 1036: CD 8C 1D CALL GET_CHAR 1039: FE AF CP #AF ;CODE 103B: 06 43 LD B,'C' 103D: 28 0E JR Z,#104D 103F: FE E4 CP #E4 ;DATA 1041: 06 44 LD B,'D' 1043: 28 08 JR Z,#104D 1045: FE 23 CP '#' 1047: 06 23 LD B,'#' 1049: 28 02 JR Z,#104D 104B: 06 42 LD B,'B' 104D: 21 E5 5C LD HL,FILE_TYPE 1050: 70 LD (HL),B 1051: C9 RET INKEY: 1052: F3 DI 1053: E5 PUSH HL 1054: C5 PUSH BC 1055: D5 PUSH DE 1056: E7 RST CALL_BAS 1057: 8E 02 DW KEY_SCAN 1059: 0E 00 LD C,#00 105B: 20 F9 JR NZ,#1056 105D: E7 RST CALL_BAS 105E: 1E 03 DW K_TEST 1060: 30 F4 JR NC,#1056 1062: 15 DEC D 1063: 5F LD E,A 1064: E7 RST CALL_BAS 1065: 33 03 DW K_DECODE 1067: D1 POP DE 1068: C1 POP BC 1069: E1 POP HL 106A: E6 DF AND #DF 106C: FB EI 106D: C9 RET BANNER: 106E: 21 E5 58 LD HL,#58E5 1071: 06 0A LD B,#0A 1073: 36 07 LD (HL),#07 1075: 23 INC HL 1076: 10 FB DJNZ #1073 1078: 36 02 LD (HL),#02 107A: 23 INC HL 107B: 36 16 LD (HL),#16 107D: 23 INC HL 107E: 36 34 LD (HL),#34 1080: 23 INC HL 1081: 36 25 LD (HL),#25 1083: 23 INC HL 1084: 36 28 LD (HL),#28 1086: 23 INC HL 1087: 36 07 LD (HL),#07 1089: 21 EE 40 LD HL,#40EE 108C: 06 08 LD B,#08 108E: AF XOR A 108F: C5 PUSH BC 1090: 37 SCF 1091: 17 RLA 1092: E5 PUSH HL 1093: F5 PUSH AF 1094: 06 05 LD B,#05 1096: 23 INC HL 1097: 77 LD (HL),A 1098: 10 FC DJNZ #1096 109A: F1 POP AF 109B: E1 POP HL 109C: C1 POP BC 109D: 11 00 01 LD DE,#0100 10A0: 19 ADD HL,DE 10A1: 10 EC DJNZ #108F 10A3: C9 RET 10A4: C9 RET 10A5: DB " Del. File(s)",#00 10B3: DB "Title:",#A0 10BA: DB #17,#11," Disk Drive: ",#00 10CA: DB #17,#10," ",#00 10CE: DB #17,#10," 40 Track S. Side",#00 10E2: DB #17,#10," 80 Track S. Side",#00 10F6: DB #17,#10," 40 Track D. Side",#00 110A: DB #17,#10," 80 Track D. Side",#00 111E: DB #17,#10," Free Sector ",#00 112E: DB #0D,#0D," File Name Start Length Line",#00 1151: 2A 61 5C LD HL,(WORK_SP) 1154: 22 CF 5C LD (#5CCF),HL 1157: 01 22 02 LD BC,#0222 115A: C3 23 1E JP BC_SPACES ; PRINT_NUM procedure print number from reg. HL. PRINT_NUM: 115D: AF XOR A 115E: 11 10 27 LD DE,#2710 ; Loop for calculating ten-thousand/fraction LOOP_10000: 1161: ED 52 SBC HL,DE 1163: 38 03 JR C,#1168 1165: 3C INC A 1166: 18 F9 JR LOOP_10000 1168: C6 30 ADD A,'0' 116A: CD A8 11 CALL PRINT_DIGIT 116D: 19 ADD HL,DE 116E: AF XOR A 116F: 11 E8 03 LD DE,#03E8 ; Loop for calculating one-thousand/fraction LOOP_1000: 1172: ED 52 SBC HL,DE 1174: 38 03 JR C,#1179 1176: 3C INC A 1177: 18 F9 JR LOOP_1000 1179: C6 30 ADD A,'0' 117B: CD A8 11 CALL PRINT_DIGIT 117E: 19 ADD HL,DE 117F: AF XOR A 1180: 11 64 00 LD DE,#0064 ; Loop for calculating hundred/fraction LOOP_100: 1183: ED 52 SBC HL,DE 1185: 38 03 JR C,#118A 1187: 3C INC A 1188: 18 F9 JR LOOP_100 118A: C6 30 ADD A,'0' 118C: CD A8 11 CALL PRINT_DIGIT 118F: 19 ADD HL,DE 1190: AF XOR A 1191: 11 0A 00 LD DE,#000A ; Loop for calculating ten/fraction LOOP_10: 1194: ED 52 SBC HL,DE 1196: 38 03 JR C,#119B 1198: 3C INC A 1199: 18 F9 JR LOOP_10 119B: C6 30 ADD A,'0' 119D: CD A8 11 CALL PRINT_DIGIT 11A0: 19 ADD HL,DE ; In reg L now only one/fraction 11A1: 7D LD A,L 11A2: C6 30 ADD A,'0' 11A4: CD A8 11 CALL PRINT_DIGIT 11A7: C9 RET ; PRINT_DIGIT print character in A. Value in reg. HL and DE is not destroyed. PRINT_DIGIT: 11A8: E5 PUSH HL 11A9: D5 PUSH DE 11AA: CD 82 3D CALL PR_CHAR_1 11AD: D1 POP DE 11AE: E1 POP HL 11AF: C9 RET 11B0: E5 PUSH HL 11B1: C5 PUSH BC 11B2: 3A F9 5C LD A,(#5CF9) 11B5: 21 F6 5C LD HL,TMP_DRIVE 11B8: BE CP (HL) 11B9: C4 CB 3D CALL NZ,SET_DRIVE 11BC: C1 POP BC 11BD: E1 POP HL 11BE: CD 0C 05 CALL CHECK_BUFF_BOTTOM 11C1: 7E LD A,(HL) 11C2: B7 OR A 11C3: CA D3 01 JP Z,MAIN 11C6: FE 01 CP #01 11C8: CC 07 05 CALL Z,ADD_#10_TO_HL 11CB: C0 RET NZ 11CC: 18 E2 JR #11B0 LIST: 11CE: CD 2B 04 CALL CHECK_EOL 11D1: 01 02 00 LD BC,#0002 11D4: ED 43 DB 5C LD (SC_0F),BC 11D8: 28 2B JR Z,#1205 11DA: FE 23 CP '#' 11DC: 20 1A JR NZ,#11F8 11DE: 22 5D 5C LD (CH_ADD),HL 11E1: CD 0B 1E CALL #1E0B 11E4: CD 8C 1D CALL GET_CHAR 11E7: FE 0D CP #0D 11E9: 28 1A JR Z,#1205 11EB: FE 2C CP ',' 11ED: C2 1A 1D JP NZ,ERROR_SYNTAX 11F0: CD 2A 1E CALL NEXT_CHAR 11F3: CD BD 1D CALL CLASS_0A 11F6: 18 03 JR #11FB 11F8: CD DF 1D CALL EVAL_EXPR 11FB: CD 75 1D CALL QUIT_SYNTAX_Z 11FE: CD B5 1D CALL STK_FETCH 1201: EB EX DE,HL 1202: CD 81 1C CALL DRV_FROM_FILENAME 1205: CD 75 1D CALL QUIT_SYNTAX_Z 1208: 3A F6 5C LD A,(TMP_DRIVE) 120B: 32 F9 5C LD (#5CF9),A 120E: CD 05 04 CALL CHECK_DISK_TYPE 1211: 3A DB 5C LD A,(SC_0F) 1214: FE 02 CP #02 1216: F5 PUSH AF 1217: CC 97 1D CALL Z,CLS 121A: F1 POP AF 121B: FE 11 CP #11 121D: D2 1A 1D JP NC,ERROR_SYNTAX 1220: CD 84 1D CALL OPEN_CHAN 1223: 3E FF LD A,#FF 1225: 32 F8 5C LD (#5CF8),A 1228: CD 51 11 CALL #1151 122B: 21 06 5E LD HL,BUFFER+#E1 122E: ED 5B CF 5C LD DE,(#5CCF) 1232: 01 20 00 LD BC,#0020 1235: ED B0 LDIR 1237: CD E8 03 CALL READ_0TH_SECTOR 123A: 21 25 5D LD HL,BUFFER 123D: E5 PUSH HL 123E: 21 B3 10 LD HL,#10B3 1241: C5 PUSH BC 1242: DF RST PRINT_STRING 1243: 2A CF 5C LD HL,(#5CCF) 1246: 01 14 00 LD BC,#0014 1249: 09 ADD HL,BC 124A: DF RST PRINT_STRING 124B: 21 BA 10 LD HL,#10BA 124E: DF RST PRINT_STRING 124F: 3A F6 5C LD A,(TMP_DRIVE) 1252: C6 41 ADD A,'A' 1254: CD 82 3D CALL PR_CHAR_1 1257: CD 80 3D CALL PRINT_CR 125A: 2A CF 5C LD HL,(#5CCF) 125D: 01 03 00 LD BC,#0003 1260: 09 ADD HL,BC 1261: 7E LD A,(HL) 1262: 2A CF 5C LD HL,(#5CCF) 1265: 01 13 00 LD BC,#0013 1268: 09 ADD HL,BC 1269: 96 SUB (HL) 126A: E5 PUSH HL 126B: CD A3 1D CALL OUT_NUM_A 126E: 21 AA 10 LD HL,#10AA 1271: DF RST PRINT_STRING 1272: 2A CF 5C LD HL,(#5CCF) 1275: 01 02 00 LD BC,#0002 1278: 09 ADD HL,BC 1279: 7E LD A,(HL) 127A: 21 CE 10 LD HL,#10CE 127D: FE 19 CP #19 127F: 28 11 JR Z,#1292 1281: 21 E2 10 LD HL,#10E2 1284: FE 18 CP #18 1286: 28 0A JR Z,#1292 1288: 21 F6 10 LD HL,#10F6 128B: FE 17 CP #17 128D: 28 03 JR Z,#1292 128F: 21 0A 11 LD HL,#110A 1292: DF RST PRINT_STRING 1293: E1 POP HL 1294: 4E LD C,(HL) 1295: CD A4 1D CALL OUT_NUM_C 1298: 21 A5 10 LD HL,#10A5 129B: DF RST PRINT_STRING 129C: 21 1E 11 LD HL,#111E 129F: DF RST PRINT_STRING 12A0: 2A CF 5C LD HL,(#5CCF) 12A3: 01 04 00 LD BC,#0004 12A6: 09 ADD HL,BC 12A7: 4E LD C,(HL) 12A8: 23 INC HL 12A9: 46 LD B,(HL) 12AA: CD A9 1D CALL OUT_NUM_BC 12AD: 21 2E 11 LD HL,#112E 12B0: DF RST PRINT_STRING 12B1: C1 POP BC 12B2: E1 POP HL 12B3: 06 10 LD B,#10 12B5: CD B0 11 CALL #11B0 12B8: CD 80 3D CALL PRINT_CR 12BB: C5 PUSH BC 12BC: E5 PUSH HL 12BD: CD 38 29 CALL PR_NAME_&_TYPE 12C0: 01 0D 00 LD BC,#000D 12C3: E1 POP HL 12C4: E5 PUSH HL 12C5: 09 ADD HL,BC 12C6: 4E LD C,(HL) 12C7: C5 PUSH BC 12C8: 79 LD A,C 12C9: 06 02 LD B,#02 12CB: FE 0A CP #0A 12CD: 38 01 JR C,#12D0 12CF: 05 DEC B 12D0: FE 64 CP #64 12D2: 30 05 JR NC,#12D9 12D4: 3E 20 LD A,' ' 12D6: D7 RST PRINT_CHAR 12D7: 10 FB DJNZ #12D4 12D9: C1 POP BC 12DA: CD A9 1D CALL OUT_NUM_BC 12DD: 21 CA 10 LD HL,#10CA 12E0: DF RST PRINT_STRING 12E1: E1 POP HL 12E2: E5 PUSH HL 12E3: 01 09 00 LD BC,#0009 12E6: 09 ADD HL,BC 12E7: 5E LD E,(HL) 12E8: 23 INC HL 12E9: 56 LD D,(HL) 12EA: E5 PUSH HL 12EB: EB EX DE,HL 12EC: CD 5D 11 CALL PRINT_NUM 12EF: 3E 20 LD A,' ' 12F1: CD 82 3D CALL PR_CHAR_1 12F4: E1 POP HL 12F5: 23 INC HL 12F6: 5E LD E,(HL) 12F7: 23 INC HL 12F8: 56 LD D,(HL) 12F9: EB EX DE,HL 12FA: CD 5D 11 CALL PRINT_NUM 12FD: E1 POP HL 12FE: E5 PUSH HL 12FF: 01 08 00 LD BC,#0008 1302: 09 ADD HL,BC 1303: 7E LD A,(HL) 1304: FE 42 CP 'B' 1306: CC 1B 13 CALL Z,#131B 1309: E1 POP HL 130A: C1 POP BC 130B: 11 10 00 LD DE,PRINT_CHAR 130E: 19 ADD HL,DE 130F: 10 A4 DJNZ #12B5 1311: E5 PUSH HL 1312: CD 80 3D CALL PRINT_CR 1315: CD 80 3D CALL PRINT_CR 1318: C3 3E 12 JP #123E 131B: 01 05 00 LD BC,#0005 131E: 09 ADD HL,BC 131F: 46 LD B,(HL) 1320: 23 INC HL 1321: 5E LD E,(HL) 1322: 23 INC HL 1323: 56 LD D,(HL) 1324: 05 DEC B 1325: 28 0E JR Z,#1335 1327: 05 DEC B 1328: 28 0B JR Z,#1335 132A: 3E 10 LD A,#10 132C: 1C INC E 132D: BB CP E 132E: 20 03 JR NZ,#1333 1330: 1E 00 LD E,#00 1332: 14 INC D 1333: 10 F7 DJNZ #132C 1335: 2A CF 5C LD HL,(#5CCF) 1338: 01 21 00 LD BC,#0021 133B: 09 ADD HL,BC 133C: 06 02 LD B,#02 133E: E5 PUSH HL 133F: CD 3D 1E CALL READ_BUFF 1342: 3E 80 LD A,#80 1344: E1 POP HL 1345: 01 00 02 LD BC,#0200 1348: ED B1 CPIR 134A: 7E LD A,(HL) 134B: FE AA CP #AA 134D: C0 RET NZ 134E: 23 INC HL 134F: 4E LD C,(HL) 1350: 23 INC HL 1351: 46 LD B,(HL) 1352: 78 LD A,B 1353: B1 OR C 1354: C8 RET Z 1355: C5 PUSH BC 1356: 3E 20 LD A,' ' 1358: CD 82 3D CALL PR_CHAR_1 135B: C1 POP BC 135C: CD A9 1D CALL OUT_NUM_BC 135F: C9 RET COPY_SINGLE_DRV: 1360: CD C5 1D CALL SET_CH_ADD 1363: CD 2A 1E CALL NEXT_CHAR 1366: CD BD 1D CALL CLASS_0A 1369: CD 75 1D CALL QUIT_SYNTAX_Z 136C: CD 6F 16 CALL #166F 136F: 21 AA 27 LD HL,#27AA 1372: CD 07 27 CALL PR_STRING_1 1375: CD 52 10 CALL INKEY 1378: FE 59 CP 'Y' 137A: 20 F9 JR NZ,#1375 137C: CD 9F 1D CALL CLS_LOWER 137F: CD 2E 10 CALL DEFINE_FILE_TYPE 1382: CD B0 1C CALL FIND_NAME 1385: C2 D9 03 JP NZ,REP_NO_FILE 1388: CD B7 13 CALL #13B7 138B: 3A E5 5C LD A,(FILE_TYPE) 138E: FE 23 CP '#' 1390: C2 E1 03 JP NZ,REPORT_OK 1393: 3E 0A LD A,#0A 1395: 32 06 5D LD (NAME_LENGTH),A 1398: 21 E6 5C LD HL,FILE_START 139B: 34 INC (HL) 139C: CD 97 1D CALL CLS 139F: 21 AA 27 LD HL,#27AA 13A2: CD 07 27 CALL PR_STRING_1 13A5: CD 52 10 CALL INKEY 13A8: FE 59 CP 'Y' 13AA: 20 F9 JR NZ,#13A5 13AC: CD B3 1C CALL FIND_NAME_1 13AF: C2 E1 03 JP NZ,REPORT_OK 13B2: CD B7 13 CALL #13B7 13B5: 18 DC JR #1393 13B7: CD 5D 16 CALL READ_HEADER_1 13BA: 21 E6 5C LD HL,FILE_START 13BD: 11 ED 5C LD DE,#5CED 13C0: 01 07 00 LD BC,#0007 13C3: ED B0 LDIR 13C5: 3A F1 5C LD A,(#5CF1) 13C8: 32 10 5D LD (#5D10),A 13CB: CD 05 04 CALL CHECK_DISK_TYPE 13CE: CD 11 3E CALL GET_DRIVE_TYPE 13D1: 32 D9 5C LD (SC_0D),A 13D4: 3E FF LD A,#FF 13D6: 32 21 5D LD (#5D21),A 13D9: CD 51 14 CALL #1451 13DC: 2A 1F 5D LD HL,(#5D1F) 13DF: 22 EB 5C LD (FIRST_SEC),HL 13E2: 2A F4 5C LD HL,(CUR_SEC) 13E5: 22 06 5E LD (BUFFER+#E1),HL 13E8: 21 09 5E LD HL,BUFFER+#E4 13EB: 34 INC (HL) 13EC: 4E LD C,(HL) 13ED: 0D DEC C 13EE: 06 00 LD B,#00 13F0: C5 PUSH BC 13F1: 11 09 00 LD DE,START_1 13F4: ED 53 F4 5C LD (CUR_SEC),DE 13F8: CD 43 1E CALL WRITE_SEC_FROM_BUFF 13FB: C1 POP BC 13FC: CD 6B 16 CALL #166B 13FF: CD 43 1E CALL WRITE_SEC_FROM_BUFF 1402: C9 RET 1403: AF XOR A 1404: 32 21 5D LD (#5D21),A 1407: CD 05 04 CALL CHECK_DISK_TYPE 140A: CD 11 3E CALL GET_DRIVE_TYPE 140D: 32 DA 5C LD (#5CDA),A 1410: CD B3 1C CALL FIND_NAME_1 1413: CA 50 1C JP Z,REP_FILE_EXISTS 1416: CD FD 03 CALL READ_8TH_SECTOR 1419: 3A 09 5E LD A,(BUFFER+#E4) 141C: FE 80 CP #80 141E: CA 23 27 JP Z,REP_DIR_FULL 1421: 21 ED 5C LD HL,#5CED 1424: 11 E6 5C LD DE,FILE_START 1427: 01 07 00 LD BC,#0007 142A: ED B0 LDIR 142C: CD FD 03 CALL READ_8TH_SECTOR 142F: 3A 10 5D LD A,(#5D10) 1432: 32 EA 5C LD (N_SECTORS),A 1435: ED 5B EA 5C LD DE,(N_SECTORS) 1439: 16 00 LD D,#00 143B: B7 OR A 143C: 2A 0A 5E LD HL,(BUFFER+#E5) 143F: ED 52 SBC HL,DE 1441: DA 45 1C JP C,REP_NO_SPACE 1444: 22 0A 5E LD (BUFFER+#E5),HL 1447: 2A 06 5E LD HL,(BUFFER+#E1) 144A: 22 EB 5C LD (FIRST_SEC),HL 144D: 22 1F 5D LD (#5D1F),HL 1450: C9 RET 1451: 3A F1 5C LD A,(#5CF1) 1454: B7 OR A 1455: C8 RET Z 1456: 3A 21 5D LD A,(#5D21) 1459: B7 OR A 145A: 20 13 JR NZ,#146F 145C: CD 97 1D CALL CLS 145F: 21 AA 27 LD HL,#27AA 1462: CD 07 27 CALL PR_STRING_1 1465: CD 52 10 CALL INKEY 1468: FE 59 CP 'Y' 146A: 20 F9 JR NZ,#1465 146C: CD 9F 1D CALL CLS_LOWER 146F: 3A F1 5C LD A,(#5CF1) 1472: B7 OR A 1473: C8 RET Z 1474: E5 PUSH HL 1475: 21 23 5D LD HL,#5D23 1478: 96 SUB (HL) 1479: E1 POP HL 147A: 30 4F JR NC,#14CB 147C: 3A F1 5C LD A,(#5CF1) 147F: 47 LD B,A 1480: AF XOR A 1481: 32 F1 5C LD (#5CF1),A 1484: C5 PUSH BC 1485: 32 CE 5C LD (RW_FLAG),A 1488: 2A CF 5C LD HL,(#5CCF) 148B: E5 PUSH HL 148C: ED 5B F2 5C LD DE,(#5CF2) 1490: CD D8 14 CALL #14D8 1493: CD 3D 1E CALL READ_BUFF 1496: 2A F4 5C LD HL,(CUR_SEC) 1499: 22 F2 5C LD (#5CF2),HL 149C: CD 97 1D CALL CLS 149F: 21 85 27 LD HL,#2785 14A2: CD 07 27 CALL PR_STRING_1 14A5: CD 52 10 CALL INKEY 14A8: FE 59 CP 'Y' 14AA: 20 F9 JR NZ,#14A5 14AC: CD 9F 1D CALL CLS_LOWER 14AF: 3A 21 5D LD A,(#5D21) 14B2: B7 OR A 14B3: C4 03 14 CALL NZ,#1403 14B6: E1 POP HL 14B7: C1 POP BC 14B8: ED 5B EB 5C LD DE,(FIRST_SEC) 14BC: CD E4 14 CALL #14E4 14BF: CD 4D 1E CALL WRITE_BUFF 14C2: 2A F4 5C LD HL,(CUR_SEC) 14C5: 22 EB 5C LD (FIRST_SEC),HL 14C8: C3 51 14 JP #1451 14CB: 32 F1 5C LD (#5CF1),A 14CE: E5 PUSH HL 14CF: 21 23 5D LD HL,#5D23 14D2: 46 LD B,(HL) 14D3: E1 POP HL 14D4: AF XOR A 14D5: C3 84 14 JP #1484 14D8: E5 PUSH HL 14D9: D5 PUSH DE 14DA: CD 11 3E CALL GET_DRIVE_TYPE 14DD: 3A D9 5C LD A,(SC_0D) 14E0: 77 LD (HL),A 14E1: D1 POP DE 14E2: E1 POP HL 14E3: C9 RET 14E4: E5 PUSH HL 14E5: D5 PUSH DE 14E6: CD 11 3E CALL GET_DRIVE_TYPE 14E9: 3A DA 5C LD A,(#5CDA) 14EC: 77 LD (HL),A 14ED: D1 POP DE 14EE: E1 POP HL 14EF: C9 RET 14F0: AF XOR A 14F1: 32 21 5D LD (#5D21),A 14F4: CD 05 04 CALL CHECK_DISK_TYPE 14F7: CD 11 3E CALL GET_DRIVE_TYPE 14FA: 32 DA 5C LD (#5CDA),A 14FD: 3A 08 5E LD A,(BUFFER+#E3) 1500: 32 E7 5C LD (#5CE7),A 1503: 21 80 02 LD HL,#0280 1506: FE 19 CP #19 1508: 28 15 JR Z,#151F 150A: 21 00 05 LD HL,#0500 150D: FE 18 CP #18 150F: 28 0E JR Z,#151F 1511: FE 17 CP #17 1513: 28 0A JR Z,#151F 1515: 21 00 0A LD HL,#0A00 1518: FE 16 CP #16 151A: 28 03 JR Z,#151F 151C: C3 1A 1D JP ERROR_SYNTAX 151F: 22 DD 5C LD (FILE_NAME),HL 1522: ED 4B DF 5C LD BC,(#5CDF) 1526: ED 42 SBC HL,BC 1528: DA 45 1C JP C,REP_NO_SPACE 152B: C9 RET BACKUP_DISK: 152C: CD 75 1D CALL QUIT_SYNTAX_Z 152F: CD 6F 16 CALL #166F 1532: 21 79 27 LD HL,#2779 1535: CD 07 27 CALL PR_STRING_1 1538: 21 AA 27 LD HL,#27AA 153B: CD 07 27 CALL PR_STRING_1 153E: CD 52 10 CALL INKEY 1541: FE 59 CP 'Y' 1543: 20 F9 JR NZ,#153E 1545: CD 9F 1D CALL CLS_LOWER 1548: 3E FF LD A,#FF 154A: 32 21 5D LD (#5D21),A 154D: CD 05 04 CALL CHECK_DISK_TYPE 1550: CD 11 3E CALL GET_DRIVE_TYPE 1553: 32 D9 5C LD (SC_0D),A 1556: 3A 08 5E LD A,(BUFFER+#E3) 1559: FE 19 CP #19 155B: 21 80 02 LD HL,#0280 155E: 28 15 JR Z,#1575 1560: 21 00 05 LD HL,#0500 1563: FE 18 CP #18 1565: 28 0E JR Z,#1575 1567: FE 17 CP #17 1569: 28 0A JR Z,#1575 156B: 21 00 0A LD HL,#0A00 156E: FE 16 CP #16 1570: 28 03 JR Z,#1575 1572: C3 1A 1D JP ERROR_SYNTAX 1575: ED 4B 0A 5E LD BC,(BUFFER+#E5) 1579: ED 42 SBC HL,BC 157B: 22 E5 5C LD (FILE_TYPE),HL 157E: 22 DF 5C LD (#5CDF),HL 1581: 21 00 00 LD HL,#0000 1584: 22 E1 5C LD (#5CE1),HL 1587: 22 E3 5C LD (#5CE3),HL 158A: CD B8 15 CALL #15B8 158D: CD 05 04 CALL CHECK_DISK_TYPE 1590: 3A E7 5C LD A,(#5CE7) 1593: 32 08 5E LD (BUFFER+#E3),A 1596: 2A DD 5C LD HL,(FILE_NAME) 1599: ED 4B DF 5C LD BC,(#5CDF) 159D: ED 42 SBC HL,BC 159F: 22 0A 5E LD (BUFFER+#E5),HL 15A2: CD E4 14 CALL #14E4 15A5: 11 09 00 LD DE,#0009 15A8: ED 53 F4 5C LD (CUR_SEC),DE 15AC: CD 43 1E CALL WRITE_SEC_FROM_BUFF 15AF: C3 E1 03 JP REPORT_OK 15B2: 2A E5 5C LD HL,(FILE_TYPE) 15B5: 7C LD A,H 15B6: B5 OR L 15B7: C9 RET 15B8: CD B2 15 CALL #15B2 15BB: C8 RET Z 15BC: 3A 21 5D LD A,(#5D21) 15BF: B7 OR A 15C0: 20 19 JR NZ,#15DB 15C2: CD 97 1D CALL CLS 15C5: 21 79 27 LD HL,#2779 15C8: CD 07 27 CALL PR_STRING_1 15CB: 21 AA 27 LD HL,#27AA 15CE: CD 07 27 CALL PR_STRING_1 15D1: CD 52 10 CALL INKEY 15D4: FE 59 CP 'Y' 15D6: 20 F9 JR NZ,#15D1 15D8: CD 9F 1D CALL CLS_LOWER 15DB: CD B2 15 CALL #15B2 15DE: C8 RET Z 15DF: C5 PUSH BC 15E0: E5 PUSH HL 15E1: 21 23 5D LD HL,#5D23 15E4: 4E LD C,(HL) 15E5: 06 00 LD B,#00 15E7: E1 POP HL 15E8: ED 42 SBC HL,BC 15EA: C1 POP BC 15EB: D2 44 16 JP NC,#1644 15EE: ED 4B E5 5C LD BC,(FILE_TYPE) 15F2: 21 00 00 LD HL,#0000 15F5: 22 E5 5C LD (FILE_TYPE),HL 15F8: C5 PUSH BC 15F9: 2A CF 5C LD HL,(#5CCF) 15FC: E5 PUSH HL 15FD: CD D8 14 CALL #14D8 1600: ED 5B E1 5C LD DE,(#5CE1) 1604: 41 LD B,C 1605: CD 3D 1E CALL READ_BUFF 1608: 2A F4 5C LD HL,(CUR_SEC) 160B: 22 E1 5C LD (#5CE1),HL 160E: CD 97 1D CALL CLS 1611: 21 79 27 LD HL,#2779 1614: CD 07 27 CALL PR_STRING_1 1617: 21 85 27 LD HL,#2785 161A: CD 07 27 CALL PR_STRING_1 161D: CD 52 10 CALL INKEY 1620: FE 59 CP 'Y' 1622: 20 F9 JR NZ,#161D 1624: CD 9F 1D CALL CLS_LOWER 1627: 3A 21 5D LD A,(#5D21) 162A: B7 OR A 162B: C4 F0 14 CALL NZ,#14F0 162E: E1 POP HL 162F: C1 POP BC 1630: ED 5B E3 5C LD DE,(#5CE3) 1634: 41 LD B,C 1635: CD E4 14 CALL #14E4 1638: CD 4D 1E CALL WRITE_BUFF 163B: 2A F4 5C LD HL,(CUR_SEC) 163E: 22 E3 5C LD (#5CE3),HL 1641: C3 B8 15 JP #15B8 1644: 22 E5 5C LD (FILE_TYPE),HL 1647: E5 PUSH HL 1648: 21 23 5D LD HL,#5D23 164B: 4E LD C,(HL) 164C: 06 00 LD B,#00 164E: E1 POP HL 164F: AF XOR A 1650: C3 F8 15 JP #15F8 1653: CD 5D 16 CALL READ_HEADER_1 1656: 3A DD 5C LD A,(FILE_NAME) 1659: FE 01 CP #01 165B: C9 RET READ_HEADER: 165C: 4F LD C,A READ_HEADER_1: 165D: AF XOR A READ_HEADER_2: 165E: C5 PUSH BC 165F: CD E9 17 CALL READ_HEADER_3 1662: C1 POP BC 1663: C9 RET WRITE_HEADER: 1664: 4F LD C,A 1665: CD 6B 16 CALL #166B 1668: C3 43 1E JP WRITE_SEC_FROM_BUFF 166B: 3E FF LD A,#FF 166D: 18 EF JR READ_HEADER_2 166F: 3E FF LD A,#FF 1671: 32 0E 5D LD (COM_FLAG),A 1674: CD 80 16 CALL #1680 1677: 2A 61 5C LD HL,(WORK_SP) 167A: 22 CF 5C LD (#5CCF),HL 167D: C3 23 1E JP BC_SPACES 1680: E7 RST CALL_BAS 1681: 1A 1F DW FREE_MEM 1683: 21 FF FF LD HL,#FFFF 1686: ED 42 SBC HL,BC 1688: 7C LD A,H 1689: FE 10 CP #10 168B: 30 02 JR NC,#168F 168D: 3E 11 LD A,#11 168F: 3D DEC A 1690: 32 23 5D LD (#5D23),A 1693: 47 LD B,A 1694: 0E 00 LD C,#00 1696: C9 RET 1697: 22 D7 5C LD (SC_0B),HL 169A: 22 DB 5C LD (SC_0F),HL 169D: ED 5B EA 5C LD DE,(N_SECTORS) 16A1: 2A D9 5C LD HL,(SC_0D) 16A4: 16 00 LD D,#00 16A6: 19 ADD HL,DE 16A7: 22 D9 5C LD (SC_0D),HL 16AA: C9 RET MOVE: 16AB: CD 75 1D CALL QUIT_SYNTAX_Z 16AE: CD 6F 16 CALL #166F 16B1: CD 05 04 CALL CHECK_DISK_TYPE 16B4: 3A 19 5E LD A,(BUFFER+#F4) 16B7: B7 OR A 16B8: CA E1 03 JP Z,REPORT_OK 16BB: 21 00 00 LD HL,#0000 16BE: 22 D9 5C LD (SC_0D),HL 16C1: 0E FF LD C,#FF 16C3: 0C INC C 16C4: CD 53 16 CALL #1653 16C7: 20 FA JR NZ,#16C3 16C9: 79 LD A,C 16CA: 32 D4 5C LD (#5CD4),A 16CD: 2A EB 5C LD HL,(FIRST_SEC) 16D0: 22 D5 5C LD (#5CD5),HL 16D3: CD 97 16 CALL #1697 16D6: 0C INC C 16D7: CD 53 16 CALL #1653 16DA: 28 FA JR Z,#16D6 16DC: FE 00 CP #00 16DE: C2 10 17 JP NZ,#1710 16E1: 3A D4 5C LD A,(#5CD4) 16E4: 4F LD C,A 16E5: 0C INC C 16E6: CD 53 16 CALL #1653 16E9: FE 00 CP #00 16EB: 28 7F JR Z,#176C 16ED: AF XOR A 16EE: 32 DD 5C LD (FILE_NAME),A 16F1: CD 40 1E CALL #1E40 16F4: CD 97 16 CALL #1697 16F7: 18 EC JR #16E5 16F9: FF FF FF FF FF FF FF FF FF FF 1703: FF FF FF FF FF FF FF FF FF FF 170D: FF FF FF 1710: 3A EA 5C LD A,(N_SECTORS) 1713: 32 D3 5C LD (#5CD3),A 1716: 32 D1 5C LD (#5CD1),A 1719: 2A EB 5C LD HL,(FIRST_SEC) 171C: 22 D5 5C LD (#5CD5),HL 171F: C5 PUSH BC 1720: CD A5 17 CALL #17A5 1723: C1 POP BC 1724: 2A F4 5C LD HL,(CUR_SEC) 1727: 22 D5 5C LD (#5CD5),HL 172A: 22 EB 5C LD (FIRST_SEC),HL 172D: AF XOR A 172E: 32 EA 5C LD (N_SECTORS),A 1731: 3A DD 5C LD A,(FILE_NAME) 1734: F5 PUSH AF 1735: 3E 01 LD A,#01 1737: 32 DD 5C LD (FILE_NAME),A 173A: CD 40 1E CALL #1E40 173D: F1 POP AF 173E: 32 DD 5C LD (FILE_NAME),A 1741: 3A D4 5C LD A,(#5CD4) 1744: 4F LD C,A 1745: 2A DB 5C LD HL,(SC_0F) 1748: 22 EB 5C LD (FIRST_SEC),HL 174B: 3A D1 5C LD A,(#5CD1) 174E: 32 EA 5C LD (N_SECTORS),A 1751: CD 40 1E CALL #1E40 1754: 3A D4 5C LD A,(#5CD4) 1757: 3C INC A 1758: 4F LD C,A 1759: CD 5D 16 CALL READ_HEADER_1 175C: 2A D5 5C LD HL,(#5CD5) 175F: 22 EB 5C LD (FIRST_SEC),HL 1762: CD 40 1E CALL #1E40 1765: 3A D4 5C LD A,(#5CD4) 1768: 4F LD C,A 1769: C3 C3 16 JP #16C3 176C: 2A CF 5C LD HL,(#5CCF) 176F: 01 00 10 LD BC,#1000 1772: CD 2E 1E CALL RECLAIM_2 1775: CD FD 03 CALL READ_8TH_SECTOR 1778: 2A 0A 5E LD HL,(BUFFER+#E5) 177B: ED 5B D9 5C LD DE,(SC_0D) 177F: 19 ADD HL,DE 1780: 22 0A 5E LD (BUFFER+#E5),HL 1783: 3A 09 5E LD A,(BUFFER+#E4) 1786: 21 19 5E LD HL,BUFFER+#F4 1789: 96 SUB (HL) 178A: 32 09 5E LD (BUFFER+#E4),A 178D: 36 00 LD (HL),#00 178F: 2A D5 5C LD HL,(#5CD5) 1792: 22 06 5E LD (BUFFER+#E1),HL 1795: F5 PUSH AF 1796: CD 43 1E CALL WRITE_SEC_FROM_BUFF 1799: F1 POP AF 179A: 4F LD C,A 179B: CD 5D 16 CALL READ_HEADER_1 179E: AF XOR A 179F: 32 DD 5C LD (FILE_NAME),A 17A2: C3 69 05 JP #0569 17A5: 3A D3 5C LD A,(#5CD3) 17A8: B7 OR A 17A9: C8 RET Z 17AA: E5 PUSH HL 17AB: 21 23 5D LD HL,#5D23 17AE: 96 SUB (HL) 17AF: E1 POP HL 17B0: 30 2B JR NC,#17DD 17B2: 3A D3 5C LD A,(#5CD3) 17B5: 47 LD B,A 17B6: AF XOR A 17B7: 32 D3 5C LD (#5CD3),A 17BA: C5 PUSH BC 17BB: 2A CF 5C LD HL,(#5CCF) 17BE: E5 PUSH HL 17BF: ED 5B D5 5C LD DE,(#5CD5) 17C3: CD 3D 1E CALL READ_BUFF 17C6: 2A F4 5C LD HL,(CUR_SEC) 17C9: 22 D5 5C LD (#5CD5),HL 17CC: E1 POP HL 17CD: C1 POP BC 17CE: ED 5B D7 5C LD DE,(SC_0B) 17D2: CD 4D 1E CALL WRITE_BUFF 17D5: 2A F4 5C LD HL,(CUR_SEC) 17D8: 22 D7 5C LD (SC_0B),HL 17DB: 18 C8 JR #17A5 17DD: 32 D3 5C LD (#5CD3),A 17E0: E5 PUSH HL 17E1: 21 23 5D LD HL,#5D23 17E4: 46 LD B,(HL) 17E5: E1 POP HL 17E6: AF XOR A 17E7: 18 D1 JR #17BA READ_HEADER_3: 17E9: F5 PUSH AF 17EA: 21 CC 5C LD HL,CAT_SEC 17ED: 36 00 LD (HL),#00 17EF: 79 LD A,C 17F0: D6 10 SUB #10 17F2: 38 03 JR C,#17F7 17F4: 34 INC (HL) 17F5: 18 F9 JR #17F0 17F7: C6 10 ADD A,#10 17F9: 4F LD C,A 17FA: C5 PUSH BC 17FB: CD EC 03 CALL READ_CAT_SECTOR 17FE: C1 POP BC 17FF: F1 POP AF 1800: CD A4 1C CALL HEADER_NR_C 1803: 11 DD 5C LD DE,FILE_NAME 1806: 01 10 00 LD BC,#0010 1809: B7 OR A 180A: 28 01 JR Z,#180D 180C: EB EX DE,HL 180D: ED B0 LDIR 180F: C9 RET VERIFY: 1810: 3E FF LD A,#FF 1812: 32 F9 5C LD (#5CF9),A LOAD: 1815: CD 52 18 CALL #1852 LOAD_1: 1818: CD 36 18 CALL #1836 181B: CD 75 1D CALL QUIT_SYNTAX_Z 181E: 3E FF LD A,#FF 1820: 32 10 5D LD (#5D10),A 1823: 3A F9 5C LD A,(#5CF9) 1826: FE FF CP #FF 1828: CA E1 03 JP Z,REPORT_OK 182B: 3A E5 5C LD A,(FILE_TYPE) 182E: FE 42 CP 'B' 1830: CA 2A 01 JP Z,PROGRAM_START 1833: C3 E1 03 JP REPORT_OK 1836: CD 7A 18 CALL #187A 1839: CD 75 1D CALL QUIT_SYNTAX_Z 183C: CD AB 18 CALL #18AB 183F: C3 21 19 JP #1921 1842: 2A 5D 5C LD HL,(CH_ADD) 1845: 23 INC HL 1846: 7E LD A,(HL) 1847: FE 0D CP #0D 1849: C8 RET Z 184A: 3E 01 LD A,#01 184C: 32 D6 5C LD (SC_00),A 184F: CD EB 1D CALL #1DEB 1852: AF XOR A 1853: 32 10 5D LD (#5D10),A 1856: C9 RET 1857: CD 2E 10 CALL DEFINE_FILE_TYPE 185A: 3E 42 LD A,'B' 185C: B8 CP B 185D: 20 07 JR NZ,#1866 185F: 2A 5D 5C LD HL,(CH_ADD) 1862: 2B DEC HL 1863: 22 5D 5C LD (CH_ADD),HL 1866: CD EB 1D CALL #1DEB 1869: 2A D9 5C LD HL,(SC_0D) 186C: 22 D7 5C LD (SC_0B),HL 186F: 2A DB 5C LD HL,(SC_0F) 1872: 22 D9 5C LD (SC_0D),HL 1875: AF XOR A 1876: 32 D6 5C LD (SC_00),A 1879: C9 RET 187A: CD 2B 04 CALL CHECK_EOL 187D: CA 7B 02 JP Z,RUN_BOOT 1880: CD DF 1D CALL EVAL_EXPR 1883: CD 72 05 CALL #0572 1886: C4 57 18 CALL NZ,#1857 1889: CD 8C 1D CALL GET_CHAR 188C: FE AF CP #AF ;CODE 188E: CC 42 18 CALL Z,#1842 1891: FE E4 CP #E4 ;DATA 1893: F5 PUSH AF 1894: CD 72 05 CALL #0572 1897: CC 2E 10 CALL Z,DEFINE_FILE_TYPE 189A: F1 POP AF 189B: CC FC 1B CALL Z,#1BFC 189E: CD 75 1D CALL QUIT_SYNTAX_Z 18A1: CD 2F 29 CALL SEARCH_NAME 18A4: C2 D9 03 JP NZ,REP_NO_FILE 18A7: CD 5D 16 CALL READ_HEADER_1 18AA: C9 RET 18AB: 3A D6 5C LD A,(SC_00) 18AE: B7 OR A 18AF: 2A E6 5C LD HL,(FILE_START) 18B2: 28 03 JR Z,#18B7 18B4: 2A D9 5C LD HL,(SC_0D) 18B7: ED 5B EB 5C LD DE,(FIRST_SEC) 18BB: FE 03 CP #03 18BD: 3A EA 5C LD A,(N_SECTORS) 18C0: D5 PUSH DE 18C1: ED 5B E8 5C LD DE,(FILE_LENGTH) 18C5: 20 04 JR NZ,#18CB 18C7: ED 5B DB 5C LD DE,(SC_0F) 18CB: 47 LD B,A 18CC: ED 53 DB 5C LD (SC_0F),DE 18D0: 3A E5 5C LD A,(FILE_TYPE) 18D3: FE 43 CP 'C' 18D5: 78 LD A,B 18D6: 20 25 JR NZ,#18FD 18D8: 78 LD A,B 18D9: BA CP D 18DA: 28 1A JR Z,#18F6 18DC: 3D DEC A 18DD: BA CP D 18DE: 78 LD A,B 18DF: 28 15 JR Z,#18F6 18E1: 3A D6 5C LD A,(SC_00) 18E4: FE 03 CP #03 18E6: 78 LD A,B 18E7: 28 0D JR Z,#18F6 18E9: AF XOR A 18EA: 32 D6 5C LD (SC_00),A 18ED: 50 LD D,B 18EE: 1E 00 LD E,#00 18F0: ED 53 DB 5C LD (SC_0F),DE 18F4: 18 03 JR #18F9 18F6: CD 1B 19 CALL #191B 18F9: 78 LD A,B 18FA: CD AC 1E CALL #1EAC 18FD: 47 LD B,A 18FE: 3A E5 5C LD A,(FILE_TYPE) 1901: FE 43 CP 'C' 1903: D1 POP DE 1904: C8 RET Z 1905: D5 PUSH DE 1906: FE 42 CP 'B' 1908: F5 PUSH AF 1909: CC 01 1A CALL Z,#1A01 190C: F1 POP AF 190D: FE 44 CP 'D' 190F: CC 4C 1A CALL Z,#1A4C 1912: CD 1B 19 CALL #191B 1915: 3A DC 5C LD A,(#5CDC) 1918: 47 LD B,A 1919: D1 POP DE 191A: C9 RET 191B: 3E 03 LD A,#03 191D: 32 D6 5C LD (SC_00),A 1920: C9 RET 1921: CD 72 05 CALL #0572 1924: 28 07 JR Z,#192D 1926: F5 PUSH AF 1927: CD 94 1A CALL #1A94 192A: F1 POP AF 192B: FE FF CP #FF 192D: F5 PUSH AF 192E: CC 5C 19 CALL Z,#195C 1931: F1 POP AF 1932: 28 03 JR Z,#1937 1934: C3 4D 1E JP WRITE_BUFF 1937: 3A D6 5C LD A,(SC_00) 193A: FE 03 CP #03 193C: CC 46 19 CALL Z,#1946 193F: 2A 59 5C LD HL,(E_LINE) 1942: 2B DEC HL 1943: 36 80 LD (HL),#80 1945: C9 RET 1946: 3A F9 5C LD A,(#5CF9) 1949: FE FF CP #FF 194B: C2 DE 2F JP NZ,#2FDE 194E: 3A DB 5C LD A,(SC_0F) 1951: B7 OR A 1952: C8 RET Z 1953: 4F LD C,A 1954: 06 01 LD B,#01 1956: ED 5B F4 5C LD DE,(CUR_SEC) 195A: 18 0E JR #196A 195C: 3A F9 5C LD A,(#5CF9) 195F: FE FF CP #FF 1961: C2 3D 1E JP NZ,READ_BUFF 1964: ED 53 F4 5C LD (CUR_SEC),DE 1968: 0E 00 LD C,#00 196A: 78 LD A,B 196B: B7 OR A 196C: C8 RET Z 196D: 22 D7 5C LD (SC_0B),HL 1970: ED 53 D9 5C LD (SC_0D),DE 1974: C5 PUSH BC 1975: 06 01 LD B,#01 1977: ED 5B D9 5C LD DE,(SC_0D) 197B: 21 25 5D LD HL,BUFFER 197E: CD 3D 1E CALL READ_BUFF 1981: 2A F4 5C LD HL,(CUR_SEC) 1984: 22 D9 5C LD (SC_0D),HL 1987: C1 POP BC 1988: 2A D7 5C LD HL,(SC_0B) 198B: 11 25 5D LD DE,BUFFER 198E: 1A LD A,(DE) 198F: BE CP (HL) 1990: 20 0B JR NZ,REP_VERIFY_ERROR 1992: 23 INC HL 1993: 13 INC DE 1994: 0D DEC C 1995: 20 F7 JR NZ,#198E 1997: 22 D7 5C LD (SC_0B),HL 199A: 10 D8 DJNZ #1974 199C: C9 RET REP_VERIFY_ERROR: 199D: 21 6B 27 LD HL,#276B 19A0: 3E 0D LD A,#0D 19A2: C3 4A 1C JP MAKE_REPORT PEEK: 19A5: 3E FF LD A,#FF 19A7: 18 02 JR PEEK_POKE POKE: 19A9: 3E EE LD A,#EE PEEK_POKE: 19AB: 32 10 5D LD (#5D10),A 19AE: C3 18 18 JP LOAD_1 MERGE: 19B1: 3E FF LD A,#FF 19B3: 32 1F 5D LD (#5D1F),A 19B6: CD 7A 18 CALL #187A 19B9: CD 75 1D CALL QUIT_SYNTAX_Z 19BC: 3A E5 5C LD A,(FILE_TYPE) 19BF: FE 42 CP 'B' 19C1: C2 1A 1D JP NZ,ERROR_SYNTAX 19C4: ED 4B E6 5C LD BC,(FILE_START) 19C8: ED 43 DB 5C LD (SC_0F),BC 19CC: C5 PUSH BC 19CD: 03 INC BC 19CE: E7 RST CALL_BAS 19CF: 30 00 DW BC_SPACES 19D1: 36 80 LD (HL),#80 19D3: EB EX DE,HL 19D4: D1 POP DE 19D5: E5 PUSH HL 19D6: ED 5B EB 5C LD DE,(FIRST_SEC) 19DA: CD 1B 19 CALL #191B 19DD: 3A DC 5C LD A,(#5CDC) 19E0: 47 LD B,A 19E1: CD 52 18 CALL #1852 19E4: CD 21 19 CALL #1921 19E7: E1 POP HL 19E8: ED 5B 53 5C LD DE,(PROG) 19EC: E7 RST CALL_BAS 19ED: D2 08 DW ME_NEW_LP 19EF: C3 E1 03 JP REPORT_OK 19F2: EB EX DE,HL 19F3: 37 SCF 19F4: ED 52 SBC HL,DE 19F6: D8 RET C 19F7: 11 0A 00 LD DE,#000A 19FA: 19 ADD HL,DE 19FB: 44 LD B,H 19FC: 4D LD C,L 19FD: E7 RST CALL_BAS 19FE: 05 1F DW TEST_ROOM 1A00: C9 RET 1A01: ED 5B 53 5C LD DE,(PROG) 1A05: 2A 59 5C LD HL,(E_LINE) 1A08: 2B DEC HL 1A09: E5 PUSH HL 1A0A: D5 PUSH DE 1A0B: ED 52 SBC HL,DE 1A0D: ED 5B E6 5C LD DE,(FILE_START) 1A11: D5 PUSH DE 1A12: E5 PUSH HL 1A13: 21 00 00 LD HL,#0000 1A16: 3A F9 5C LD A,(#5CF9) 1A19: FE FF CP #FF 1A1B: 28 03 JR Z,#1A20 1A1D: 21 05 00 LD HL,#0005 1A20: 19 ADD HL,DE 1A21: 22 DB 5C LD (SC_0F),HL 1A24: E1 POP HL 1A25: 3A F9 5C LD A,(#5CF9) 1A28: FE FF CP #FF 1A2A: 20 05 JR NZ,#1A31 1A2C: D1 POP DE 1A2D: D1 POP DE 1A2E: E1 POP HL 1A2F: 18 17 JR #1A48 1A31: CD F2 19 CALL #19F2 1A34: C1 POP BC 1A35: D1 POP DE 1A36: E1 POP HL 1A37: C5 PUSH BC 1A38: E7 RST CALL_BAS 1A39: E5 19 DW RECLAIM_1 1A3B: C1 POP BC 1A3C: CD 32 1E CALL MAKE_ROOM 1A3F: 23 INC HL 1A40: ED 4B E8 5C LD BC,(FILE_LENGTH) 1A44: 09 ADD HL,BC 1A45: 22 4B 5C LD (VARS),HL 1A48: 2A 53 5C LD HL,(PROG) 1A4B: C9 RET 1A4C: ED 5B E8 5C LD DE,(FILE_LENGTH) 1A50: ED 53 DB 5C LD (SC_0F),DE 1A54: 2A D7 5C LD HL,(SC_0B) 1A57: 3A F9 5C LD A,(#5CF9) 1A5A: FE FF CP #FF 1A5C: C8 RET Z 1A5D: 2A D9 5C LD HL,(SC_0D) 1A60: E5 PUSH HL 1A61: CD F2 19 CALL #19F2 1A64: E1 POP HL 1A65: 7C LD A,H 1A66: B5 OR L 1A67: 28 10 JR Z,#1A79 1A69: 2A D7 5C LD HL,(SC_0B) 1A6C: 2B DEC HL 1A6D: 2B DEC HL 1A6E: 2B DEC HL 1A6F: ED 4B D9 5C LD BC,(SC_0D) 1A73: 03 INC BC 1A74: 03 INC BC 1A75: 03 INC BC 1A76: CD 2E 1E CALL RECLAIM_2 1A79: 2A 59 5C LD HL,(E_LINE) 1A7C: 2B DEC HL 1A7D: ED 4B E8 5C LD BC,(FILE_LENGTH) 1A81: C5 PUSH BC 1A82: 03 INC BC 1A83: 03 INC BC 1A84: 03 INC BC 1A85: CD 32 1E CALL MAKE_ROOM 1A88: 23 INC HL 1A89: 3A D2 5C LD A,(#5CD2) 1A8C: 77 LD (HL),A 1A8D: 23 INC HL 1A8E: D1 POP DE 1A8F: 73 LD (HL),E 1A90: 23 INC HL 1A91: 72 LD (HL),D 1A92: 23 INC HL 1A93: C9 RET 1A94: 3A D9 5C LD A,(SC_0D) 1A97: 48 LD C,B 1A98: 47 LD B,A 1A99: 79 LD A,C 1A9A: B8 CP B 1A9B: 38 19 JR C,#1AB6 1A9D: 78 LD A,B 1A9E: B7 OR A 1A9F: CA 1A 1D JP Z,ERROR_SYNTAX 1AA2: 05 DEC B 1AA3: 28 0B JR Z,#1AB0 1AA5: 3E 10 LD A,#10 1AA7: 1C INC E 1AA8: BB CP E 1AA9: 20 03 JR NZ,#1AAE 1AAB: 1E 00 LD E,#00 1AAD: 14 INC D 1AAE: 10 F7 DJNZ #1AA7 1AB0: 06 01 LD B,#01 1AB2: 2A D7 5C LD HL,(SC_0B) 1AB5: C9 RET 1AB6: 21 ED 29 LD HL,#29ED 1AB9: 3E 05 LD A,#05 1ABB: C3 4A 1C JP MAKE_REPORT 1ABE: CD 2F 29 CALL SEARCH_NAME 1AC1: CA 50 1C JP Z,REP_FILE_EXISTS TEST_CAT_ROOM: 1AC4: CD FD 03 CALL READ_8TH_SECTOR 1AC7: 3A 09 5E LD A,(BUFFER+#E4) 1ACA: FE 80 CP #80 1ACC: CA 23 27 JP Z,REP_DIR_FULL 1ACF: C9 RET SAVE: 1AD0: CD 52 18 CALL #1852 1AD3: 21 00 00 LD HL,#0000 1AD6: 22 D1 5C LD (#5CD1),HL 1AD9: CD DF 1D CALL EVAL_EXPR 1ADC: CD 8C 1D CALL GET_CHAR 1ADF: FE AF CP #AF 1AE1: 28 56 JR Z,#1B39 1AE3: FE CA CP #CA 1AE5: 20 11 JR NZ,#1AF8 1AE7: CD 0B 1E CALL #1E0B 1AEA: CD 75 1D CALL QUIT_SYNTAX_Z 1AED: 2A DB 5C LD HL,(SC_0F) 1AF0: 22 D1 5C LD (#5CD1),HL 1AF3: 21 E5 5C LD HL,FILE_TYPE 1AF6: 18 27 JR #1B1F 1AF8: FE AA CP #AA 1AFA: 20 11 JR NZ,#1B0D 1AFC: 21 00 40 LD HL,#4000 1AFF: 22 D7 5C LD (SC_0B),HL 1B02: 21 00 1B LD HL,#1B00 1B05: 22 D9 5C LD (SC_0D),HL 1B08: 22 DB 5C LD (SC_0F),HL 1B0B: 18 3B JR #1B48 1B0D: CD 75 1D CALL QUIT_SYNTAX_Z 1B10: CD 8C 1D CALL GET_CHAR 1B13: 21 E5 5C LD HL,FILE_TYPE 1B16: FE E4 CP #E4 1B18: 28 12 JR Z,#1B2C 1B1A: FE 0D CP #0D 1B1C: C2 1A 1D JP NZ,ERROR_SYNTAX 1B1F: 36 42 LD (HL),'B' 1B21: CD BE 1A CALL #1ABE 1B24: CD 1C 1E CALL REMOVE_FP WRITE_PROG_1: 1B27: CD DE 1B CALL PROG_VARS_ADDR 1B2A: 18 27 JR WRITE_CODE_1 1B2C: 36 44 LD (HL),'D' 1B2E: CD BE 1A CALL #1ABE 1B31: CD 0F 1C CALL #1C0F 1B34: 30 1D JR NC,WRITE_CODE_1 1B36: DA 1A 1D JP C,ERROR_SYNTAX 1B39: CD E5 1D CALL #1DE5 1B3C: 2A D9 5C LD HL,(SC_0D) 1B3F: 22 D7 5C LD (SC_0B),HL 1B42: 2A DB 5C LD HL,(SC_0F) 1B45: 22 D9 5C LD (SC_0D),HL 1B48: CD 75 1D CALL QUIT_SYNTAX_Z 1B4B: 3E 43 LD A,'C' 1B4D: 32 E5 5C LD (FILE_TYPE),A 1B50: CD BE 1A CALL #1ABE WRITE_CODE_1: 1B53: CD 59 1B CALL WRITE_FILE_HEADER 1B56: C3 69 05 JP #0569 WRITE_FILE_HEADER: 1B59: 2A D7 5C LD HL,(SC_0B) 1B5C: 22 E6 5C LD (FILE_START),HL 1B5F: EB EX DE,HL 1B60: 2A D9 5C LD HL,(SC_0D) 1B63: 7D LD A,L 1B64: B4 OR H 1B65: CA 1A 1D JP Z,ERROR_SYNTAX 1B68: 7D LD A,L 1B69: B7 OR A 1B6A: 28 01 JR Z,#1B6D 1B6C: 24 INC H 1B6D: 7C LD A,H 1B6E: 32 EA 5C LD (N_SECTORS),A 1B71: 5F LD E,A 1B72: 16 00 LD D,#00 1B74: 2A 0A 5E LD HL,(BUFFER+#E5) 1B77: ED 52 SBC HL,DE 1B79: DA 45 1C JP C,REP_NO_SPACE 1B7C: E5 PUSH HL 1B7D: 2A 59 5C LD HL,(E_LINE) 1B80: 36 AA LD (HL),#AA 1B82: 23 INC HL 1B83: ED 5B D1 5C LD DE,(#5CD1) 1B87: 73 LD (HL),E 1B88: 23 INC HL 1B89: 72 LD (HL),D 1B8A: 2A DB 5C LD HL,(SC_0F) 1B8D: 22 E8 5C LD (FILE_LENGTH),HL 1B90: 2A 06 5E LD HL,(BUFFER+#E1) 1B93: 22 EB 5C LD (FIRST_SEC),HL 1B96: EB EX DE,HL 1B97: 2A E6 5C LD HL,(FILE_START) 1B9A: 3A EA 5C LD A,(N_SECTORS) 1B9D: 47 LD B,A 1B9E: CD 4D 1E CALL WRITE_BUFF 1BA1: 2A F4 5C LD HL,(CUR_SEC) 1BA4: E5 PUSH HL 1BA5: CD FD 03 CALL READ_8TH_SECTOR 1BA8: E1 POP HL 1BA9: 22 06 5E LD (BUFFER+#E1),HL 1BAC: E1 POP HL 1BAD: 22 0A 5E LD (BUFFER+#E5),HL 1BB0: 21 09 5E LD HL,BUFFER+#E4 1BB3: 7E LD A,(HL) 1BB4: 32 1E 5D LD (FILE_NR),A 1BB7: 34 INC (HL) 1BB8: E5 PUSH HL 1BB9: CD 43 1E CALL WRITE_SEC_FROM_BUFF 1BBC: E1 POP HL 1BBD: 4E LD C,(HL) 1BBE: 0D DEC C 1BBF: 3A E5 5C LD A,(FILE_TYPE) 1BC2: FE 42 CP 'B' 1BC4: CC C8 1B CALL Z,PROG_START_LENGTH 1BC7: C9 RET PROG_START_LENGTH: 1BC8: 2A 59 5C LD HL,(E_LINE) 1BCB: ED 5B 53 5C LD DE,(PROG) 1BCF: 37 SCF 1BD0: ED 52 SBC HL,DE 1BD2: 22 E6 5C LD (FILE_START),HL 1BD5: 2A 4B 5C LD HL,(VARS) 1BD8: ED 52 SBC HL,DE 1BDA: 22 E8 5C LD (FILE_LENGTH),HL 1BDD: C9 RET PROG_VARS_ADDR: 1BDE: 2A 4B 5C LD HL,(VARS) 1BE1: ED 5B 53 5C LD DE,(PROG) 1BE5: ED 52 SBC HL,DE 1BE7: 22 DB 5C LD (SC_0F),HL 1BEA: 2A 53 5C LD HL,(PROG) 1BED: 22 D7 5C LD (SC_0B),HL 1BF0: 2A 59 5C LD HL,(E_LINE) 1BF3: 23 INC HL 1BF4: 23 INC HL 1BF5: 23 INC HL 1BF6: ED 52 SBC HL,DE 1BF8: 22 D9 5C LD (SC_0D),HL 1BFB: C9 RET 1BFC: CD 1B 1C CALL #1C1B 1BFF: D0 RET NC 1C00: 21 00 00 LD HL,#0000 1C03: 22 D9 5C LD (SC_0D),HL 1C06: 3A F9 5C LD A,(#5CF9) 1C09: FE FF CP #FF 1C0B: C0 RET NZ 1C0C: C3 13 1C JP #1C13 1C0F: CD 1B 1C CALL #1C1B 1C12: D0 RET NC 1C13: 3E 0E LD A,#0E 1C15: 21 DD 27 LD HL,#27DD 1C18: C3 4A 1C JP MAKE_REPORT 1C1B: CD 2A 1E CALL NEXT_CHAR 1C1E: CD 9B 1D CALL LOOK_VARS 1C21: CB F9 SET 7,C 1C23: 79 LD A,C 1C24: 32 D2 5C LD (#5CD2),A 1C27: 30 02 JR NC,#1C2B 1C29: 37 SCF 1C2A: C9 RET 1C2B: 20 FC JR NZ,#1C29 1C2D: 23 INC HL 1C2E: 5E LD E,(HL) 1C2F: 23 INC HL 1C30: 56 LD D,(HL) 1C31: 23 INC HL 1C32: 22 D7 5C LD (SC_0B),HL 1C35: ED 53 DB 5C LD (SC_0F),DE 1C39: ED 53 D9 5C LD (SC_0D),DE 1C3D: CD 2A 1E CALL NEXT_CHAR 1C40: FE 29 CP ')' 1C42: 20 E7 JR NZ,#1C2B 1C44: C9 RET REP_NO_SPACE: 1C45: 21 BB 29 LD HL,#29BB 1C48: 3E 03 LD A,#03 MAKE_REPORT: 1C4A: CD C3 03 CALL REPORT_IF_NEED 1C4D: C3 D3 01 JP MAIN REP_FILE_EXISTS: 1C50: 21 C5 29 LD HL,#29C5 1C53: 3E 02 LD A,#02 1C55: 18 F3 JR MAKE_REPORT PREPARE_FILENAME: 1C57: 21 DD 5C LD HL,FILE_NAME 1C5A: 06 08 LD B,#08 1C5C: 36 20 LD (HL),' ' 1C5E: 23 INC HL 1C5F: 10 FB DJNZ #1C5C 1C61: CD 31 05 CALL GET_NONZERO_EXPR 1C64: EB EX DE,HL 1C65: CD 81 1C CALL DRV_FROM_FILENAME 1C68: 79 LD A,C 1C69: B7 OR A 1C6A: CA 1A 1D JP Z,ERROR_SYNTAX 1C6D: FE 09 CP #09 1C6F: 38 02 JR C,#1C73 1C71: 0E 08 LD C,#08 1C73: 7E LD A,(HL) 1C74: FE 20 CP ' ' 1C76: DA 1A 1D JP C,ERROR_SYNTAX 1C79: 11 DD 5C LD DE,FILE_NAME 1C7C: C5 PUSH BC 1C7D: ED B0 LDIR 1C7F: C1 POP BC 1C80: C9 RET DRV_FROM_FILENAME: 1C81: 23 INC HL 1C82: 7E LD A,(HL) 1C83: FE 3A CP ':' 1C85: 20 11 JR NZ,#1C98 1C87: 2B DEC HL 1C88: 7E LD A,(HL) 1C89: CD 24 05 CALL EVAL_RIGHT_DRV 1C8C: C5 PUSH BC 1C8D: E5 PUSH HL 1C8E: CD CB 3D CALL SET_DRIVE 1C91: E1 POP HL 1C92: C1 POP BC 1C93: 0B DEC BC 1C94: 0B DEC BC 1C95: 23 INC HL 1C96: 23 INC HL 1C97: C9 RET 1C98: 2B DEC HL 1C99: 3A 19 5D LD A,(DEFAULT_DRV) 1C9C: C5 PUSH BC 1C9D: E5 PUSH HL 1C9E: CD CB 3D CALL SET_DRIVE 1CA1: E1 POP HL 1CA2: C1 POP BC 1CA3: C9 RET HEADER_NR_C: 1CA4: 69 LD L,C 1CA5: 26 00 LD H,#00 1CA7: 29 ADD HL,HL 1CA8: 29 ADD HL,HL 1CA9: 29 ADD HL,HL 1CAA: 29 ADD HL,HL 1CAB: 01 25 5D LD BC,BUFFER 1CAE: 09 ADD HL,BC 1CAF: C9 RET FIND_NAME: 1CB0: CD 57 1C CALL PREPARE_FILENAME FIND_NAME_1: 1CB3: CD E8 03 CALL READ_0TH_SECTOR 1CB6: 06 80 LD B,#80 1CB8: 0E 00 LD C,#00 1CBA: C5 PUSH BC 1CBB: CD A4 1C CALL HEADER_NR_C 1CBE: CD 0C 05 CALL CHECK_BUFF_BOTTOM 1CC1: C1 POP BC 1CC2: C5 PUSH BC 1CC3: 79 LD A,C 1CC4: FE 10 CP #10 1CC6: 20 05 JR NZ,#1CCD 1CC8: C1 POP BC 1CC9: 0E 00 LD C,#00 1CCB: 18 ED JR #1CBA 1CCD: 11 DD 5C LD DE,FILE_NAME 1CD0: 3A 06 5D LD A,(NAME_LENGTH) 1CD3: 47 LD B,A 1CD4: AF XOR A 1CD5: BE CP (HL) 1CD6: 20 03 JR NZ,#1CDB 1CD8: C1 POP BC 1CD9: 18 09 JR END_OF_CAT 1CDB: CD 13 27 CALL COMPARE_B_BYTES 1CDE: C1 POP BC 1CDF: 28 06 JR Z,FOUND 1CE1: 0C INC C 1CE2: 10 D6 DJNZ #1CBA END_OF_CAT: 1CE4: F6 FF OR #FF 1CE6: C9 RET FOUND: 1CE7: 3E 80 LD A,#80 1CE9: 90 SUB B 1CEA: 4F LD C,A 1CEB: 32 1E 5D LD (FILE_NR),A 1CEE: AF XOR A 1CEF: C8 RET Z FIND_BY_NAME: 1CF0: CD B3 1C CALL FIND_NAME_1 1CF3: 21 0F 5D LD HL,TRDOS_ERR 1CF6: 71 LD (HL),C 1CF7: C8 RET Z 1CF8: 36 FF LD (HL),#FF 1CFA: C9 RET RETURN: 1CFB: CD 75 1D CALL QUIT_SYNTAX_Z 1CFE: CD E5 20 CALL #20E5 1D01: FD CB 01 9E RES 3,(IY+#01) 1D05: CD 32 02 CALL SET_ERR_SP 1D08: ED 7B 1C 5D LD SP,(SAVE_SP) 1D0C: 2A 3D 5C LD HL,(ERR_SP) 1D0F: 2B DEC HL 1D10: 3E 12 LD A,#12 1D12: BE CP (HL) 1D13: 20 04 JR NZ,#1D19 1D15: 2B DEC HL 1D16: 22 3D 5C LD (ERR_SP),HL 1D19: C9 RET ERROR_SYNTAX: 1D1A: FD CB 00 7E BIT 7,(IY+#00) 1D1E: 28 05 JR Z,#1D25 1D20: 3E 0B LD A,#0B 1D22: 32 3A 5C LD (ERR_NR),A 1D25: 3C INC A 1D26: 21 B2 29 LD HL,#29B2 1D29: CD C3 03 CALL REPORT_IF_NEED 1D2C: C3 D3 01 JP MAIN ON_ERROR_2: 1D2F: 3A 3A 5C LD A,(ERR_NR) 1D32: 21 CA 27 LD HL,#27CA 1D35: FE 14 CP #14 1D37: 28 F0 JR Z,#1D29 1D39: FE 0C CP FF 1D3B: 28 EC JR Z,#1D29 1D3D: 21 D2 27 LD HL,#27D2 1D40: FE 03 CP #03 1D42: 28 E5 JR Z,#1D29 1D44: 21 DD 27 LD HL,#27DD 1D47: FE 01 CP #01 1D49: 28 DE JR Z,#1D29 1D4B: 18 CD JR ERROR_SYNTAX RUN: 1D4D: CD 52 18 CALL #1852 1D50: CD 36 18 CALL #1836 1D53: CD 75 1D CALL QUIT_SYNTAX_Z 1D56: 2A E6 5C LD HL,(FILE_START) 1D59: 3A E5 5C LD A,(FILE_TYPE) 1D5C: FE 42 CP 'B' 1D5E: CA 2A 01 JP Z,PROGRAM_START 1D61: E5 PUSH HL 1D62: C9 RET 1D63: 21 0E 5D LD HL,COM_FLAG 1D66: 7E LD A,(HL) 1D67: FE FF CP #FF 1D69: 36 00 LD (HL),#00 1D6B: C0 RET NZ 1D6C: E7 RST CALL_BAS 1D6D: BF 16 DW SET_WORK 1D6F: C9 RET SYNTAX_Z: 1D70: FD CB 01 7E BIT 7,(IY+#01) 1D74: C9 RET QUIT_SYNTAX_Z: 1D75: CD 70 1D CALL SYNTAX_Z 1D78: C0 RET NZ 1D79: E1 POP HL 1D7A: C9 RET 1D7B: CD 2A 1E CALL NEXT_CHAR 1D7E: CD C1 1D CALL CLASS_06 1D81: 18 ED JR SYNTAX_Z OPEN_CHAN_0: 1D83: AF XOR A OPEN_CHAN: 1D84: E7 RST CALL_BAS 1D85: 01 16 DW CHAN_OPEN 1D87: C9 RET OPEN_CHAN_2: 1D88: 3E 02 LD A,#02 1D8A: 18 F8 JR OPEN_CHAN GET_CHAR: 1D8C: E7 RST CALL_BAS 1D8D: 18 00 DW GET_CHAR 1D8F: C9 RET EDITOR: 1D90: CD 83 1D CALL OPEN_CHAN_0 1D93: E7 RST CALL_BAS 1D94: 2C 0F DW EDITOR 1D96: C9 RET CLS: 1D97: E7 RST CALL_BAS 1D98: 6B 0D DW CLS 1D9A: C9 RET LOOK_VARS: 1D9B: E7 RST CALL_BAS 1D9C: B2 28 DW LOOK_VARS 1D9E: C9 RET CLS_LOWER: 1D9F: E7 RST CALL_BAS 1DA0: 6E 0D DW CLS_LOWER 1DA2: C9 RET OUT_NUM_A: 1DA3: 4F LD C,A OUT_NUM_C: 1DA4: 06 00 LD B,#00 1DA6: C3 A9 1D JP OUT_NUM_BC OUT_NUM_BC: 1DA9: C5 PUSH BC 1DAA: CD F1 20 CALL SWAP_IF_NEED 1DAD: C1 POP BC 1DAE: E7 RST CALL_BAS 1DAF: 1B 1A DW OUT_NUM_1 1DB1: CD F1 20 CALL SWAP_IF_NEED 1DB4: C9 RET STK_FETCH: 1DB5: E7 RST CALL_BAS 1DB6: F1 2B DW STK_FETCH 1DB8: C9 RET FIND_INT_2: 1DB9: E7 RST CALL_BAS 1DBA: 99 1E DW FIND_INT_2 1DBC: C9 RET CLASS_0A: 1DBD: E7 RST CALL_BAS 1DBE: 8C 1C DW EXPT_EXP_(CLASS_0A) 1DC0: C9 RET CLASS_06: 1DC1: E7 RST CALL_BAS 1DC2: 82 1C DW EXPT_1NUM_(CLASS_06) 1DC4: C9 RET SET_CH_ADD: 1DC5: 2A 11 5D LD HL,(COM_ADDR) 1DC8: 23 INC HL 1DC9: 22 5D 5C LD (CH_ADD),HL 1DCC: C9 RET EVAL_TWO_EXPR: 1DCD: CD DF 1D CALL EVAL_EXPR EVAL_2ND_EXPR: 1DD0: CD 8C 1D CALL GET_CHAR 1DD3: FE 2C CP ',' 1DD5: C2 1A 1D JP NZ,ERROR_SYNTAX 1DD8: CD 2A 1E CALL NEXT_CHAR 1DDB: CD BD 1D CALL CLASS_0A 1DDE: C9 RET EVAL_EXPR: 1DDF: CD C5 1D CALL SET_CH_ADD 1DE2: C3 BD 1D JP CLASS_0A 1DE5: CD 8C 1D CALL GET_CHAR 1DE8: FE AF CP #AF 1DEA: C0 RET NZ 1DEB: CD 7B 1D CALL #1D7B 1DEE: 28 0B JR Z,#1DFB 1DF0: CD B9 1D CALL FIND_INT_2 1DF3: ED 43 D9 5C LD (SC_0D),BC 1DF7: ED 43 DB 5C LD (SC_0F),BC 1DFB: CD 8C 1D CALL GET_CHAR 1DFE: FE 2C CP ',' 1E00: 28 09 JR Z,#1E0B 1E02: FE 0D CP #0D 1E04: C2 1A 1D JP NZ,ERROR_SYNTAX 1E07: CD 75 1D CALL QUIT_SYNTAX_Z 1E0A: C9 RET 1E0B: CD 7B 1D CALL #1D7B 1E0E: C8 RET Z 1E0F: CD B9 1D CALL FIND_INT_2 1E12: ED 43 DB 5C LD (SC_0F),BC 1E16: 3E 03 LD A,#03 1E18: 32 D6 5C LD (SC_00),A 1E1B: C9 RET REMOVE_FP: 1E1C: 2A 11 5D LD HL,(COM_ADDR) 1E1F: E7 RST CALL_BAS 1E20: A7 11 DW REMOVE_FP 1E22: C9 RET BC_SPACES: 1E23: 2A 61 5C LD HL,(WORK_SP) 1E26: E7 RST CALL_BAS 1E27: 30 00 DW BC_SPACES 1E29: C9 RET NEXT_CHAR: 1E2A: E7 RST CALL_BAS 1E2B: 20 00 DW NEXT_CHAR 1E2D: C9 RET RECLAIM_2: 1E2E: E7 RST CALL_BAS 1E2F: E8 19 DW RECLAIM_2 1E31: C9 RET MAKE_ROOM: 1E32: E7 RST CALL_BAS 1E33: 55 16 DW MAKE_ROOM 1E35: C9 RET 1E36: CD B2 3E CALL #3EB2 1E39: 7C LD A,H 1E3A: D3 3F OUT (#3F),A 1E3C: C9 RET READ_BUFF: 1E3D: AF XOR A 1E3E: 18 24 JR RW_BUFF 1E40: CD 6B 16 CALL #166B WRITE_SEC_FROM_BUFF: 1E43: ED 5B F4 5C LD DE,(CUR_SEC) 1E47: 1B DEC DE 1E48: 06 01 LD B,#01 1E4A: 21 25 5D LD HL,BUFFER WRITE_BUFF: 1E4D: E5 PUSH HL 1E4E: D5 PUSH DE 1E4F: CD 11 3E CALL GET_DRIVE_TYPE 1E52: CB 7E BIT 7,(HL) 1E54: 28 0A JR Z,WRITE_BUFF_1 1E56: CB 46 BIT 0,(HL) 1E58: 20 06 JR NZ,WRITE_BUFF_1 1E5A: 21 D8 29 LD HL,#29D8 1E5D: C3 29 1D JP #1D29 WRITE_BUFF_1: 1E60: D1 POP DE 1E61: E1 POP HL WRITE_BUFF_2: 1E62: 3E FF LD A,#FF RW_BUFF: 1E64: 32 CE 5C LD (RW_FLAG),A 1E67: ED 53 F4 5C LD (CUR_SEC),DE 1E6B: C5 PUSH BC 1E6C: E5 PUSH HL 1E6D: CD 36 1E CALL #1E36 1E70: E1 POP HL 1E71: C1 POP BC 1E72: AF XOR A 1E73: B0 OR B 1E74: C8 RET Z 1E75: C5 PUSH BC 1E76: E5 PUSH HL 1E77: CD 06 3F CALL SET_DMA 1E7A: 3A F4 5C LD A,(CUR_SEC) 1E7D: CD 02 3F CALL SET_SECTOR 1E80: 3A F5 5C LD A,(CUR_TRK) 1E83: CD 63 3E CALL SET_TRACK 1E86: 3A CE 5C LD A,(RW_FLAG) 1E89: B7 OR A 1E8A: F5 PUSH AF 1E8B: CC 0E 3F CALL Z,RD_DEVICE_SEC 1E8E: F1 POP AF 1E8F: C4 0A 3F CALL NZ,WR_DEVICE_SEC 1E92: E1 POP HL 1E93: 11 00 01 LD DE,#0100 1E96: 19 ADD HL,DE 1E97: E5 PUSH HL 1E98: 3E 10 LD A,#10 1E9A: 21 F4 5C LD HL,CUR_SEC 1E9D: 34 INC (HL) 1E9E: BE CP (HL) 1E9F: 20 06 JR NZ,#1EA7 1EA1: 36 00 LD (HL),#00 1EA3: 21 F5 5C LD HL,CUR_TRK 1EA6: 34 INC (HL) 1EA7: E1 POP HL 1EA8: C1 POP BC 1EA9: 10 CA DJNZ #1E75 1EAB: C9 RET 1EAC: E5 PUSH HL 1EAD: 67 LD H,A 1EAE: 2E 00 LD L,#00 1EB0: E5 PUSH HL 1EB1: ED 52 SBC HL,DE 1EB3: DC BC 1E CALL C,#1EBC 1EB6: E1 POP HL 1EB7: 7C LD A,H 1EB8: E1 POP HL 1EB9: D8 RET C 1EBA: 7A LD A,D 1EBB: C9 RET 1EBC: AF XOR A 1EBD: 32 D6 5C LD (SC_00),A 1EC0: 37 SCF 1EC1: C9 RET FORMAT: 1EC2: 21 FF FF LD HL,#FFFF 1EC5: 22 D7 5C LD (SC_0B),HL 1EC8: 22 D9 5C LD (SC_0D),HL 1ECB: 22 D1 5C LD (#5CD1),HL 1ECE: CD 2B 04 CALL CHECK_EOL 1ED1: CA 1A 1D JP Z,ERROR_SYNTAX 1ED4: CD DF 1D CALL EVAL_EXPR 1ED7: CD 75 1D CALL QUIT_SYNTAX_Z 1EDA: CD 57 1C CALL PREPARE_FILENAME FORMAT_1: 1EDD: CD 00 32 CALL TURBO_FMT? 1EE0: E6 80 AND #80 1EE2: 3E 28 LD A,#28 1EE4: 28 02 JR Z,#1EE8 1EE6: 3E 50 LD A,#50 1EE8: 32 D7 5C LD (SC_0B),A 1EEB: CD 98 3D CALL DISK_RESTORE 1EEE: CD F6 1F CALL SELECT_SIDE_1 1EF1: CD A0 3E CALL #3EA0 1EF4: 1E 01 LD E,#01 1EF6: CD FD 1F CALL #1FFD 1EF9: CD EB 1F CALL LOAD_SYS_REG 1EFC: 1E 00 LD E,#00 1EFE: CD FD 1F CALL #1FFD 1F01: 3A DD 5C LD A,(FILE_NAME) 1F04: FE 24 CP '$' 1F06: 28 13 JR Z,#1F1B 1F08: CD F6 1F CALL SELECT_SIDE_1 1F0B: CD A0 3E CALL #3EA0 1F0E: CD B5 3E CALL #3EB5 1F11: 7C LD A,H 1F12: FE 01 CP #01 1F14: 20 05 JR NZ,#1F1B 1F16: 3E 80 LD A,#80 1F18: 32 DA 5C LD (#5CDA),A 1F1B: CD BD 20 CALL #20BD 1F1E: 21 25 5D LD HL,BUFFER 1F21: 36 00 LD (HL),#00 1F23: 11 26 5D LD DE,#5D26 1F26: 01 FF 00 LD BC,#00FF 1F29: ED B0 LDIR 1F2B: 01 D7 5C LD BC,SC_0B 1F2E: 11 DA 5C LD DE,#5CDA 1F31: 0A LD A,(BC) 1F32: FE 50 CP #50 1F34: 28 13 JR Z,#1F49 1F36: 1A LD A,(DE) 1F37: FE 80 CP #80 1F39: 28 07 JR Z,#1F42 1F3B: 3E 19 LD A,#19 1F3D: 21 70 02 LD HL,#0270 1F40: 18 13 JR INIT_8TH_SECTOR 1F42: 3E 17 LD A,#17 1F44: 21 F0 04 LD HL,#04F0 1F47: 18 0C JR INIT_8TH_SECTOR 1F49: 1A LD A,(DE) 1F4A: FE 80 CP #80 1F4C: 3E 18 LD A,#18 1F4E: 20 F4 JR NZ,#1F44 1F50: 3E 16 LD A,#16 1F52: 21 F0 09 LD HL,#09F0 INIT_8TH_SECTOR: 1F55: 32 08 5E LD (BUFFER+#E3),A 1F58: 22 0A 5E LD (BUFFER+#E5),HL 1F5B: 3E 01 LD A,#01 1F5D: 32 07 5E LD (BUFFER+#E2),A 1F60: 3E 10 LD A,#10 1F62: 32 0C 5E LD (BUFFER+#E7),A 1F65: 21 0F 5E LD HL,BUFFER+#EA 1F68: 11 10 5E LD DE,BUFFER+#EB 1F6B: 01 08 00 LD BC,#0008 1F6E: 36 20 LD (HL),' ' 1F70: ED B0 LDIR 1F72: 21 DD 5C LD HL,FILE_NAME 1F75: 11 1A 5E LD DE,BUFFER+#F5 1F78: 01 08 00 LD BC,#0008 1F7B: ED B0 LDIR 1F7D: CD EB 1F CALL LOAD_SYS_REG 1F80: 06 01 LD B,#01 1F82: 11 08 00 LD DE,#0008 1F85: 21 25 5D LD HL,BUFFER 1F88: CD 62 1E CALL WRITE_BUFF_2 1F8B: 3A D6 5C LD A,(SC_00) 1F8E: F5 PUSH AF 1F8F: AF XOR A 1F90: CD C4 32 CALL #32C4 1F93: 2A 0A 5E LD HL,(BUFFER+#E5) 1F96: 22 D7 5C LD (SC_0B),HL 1F99: 21 DD 5C LD HL,FILE_NAME 1F9C: DF RST PRINT_STRING 1F9D: 3E 0D LD A,#0D 1F9F: D7 RST PRINT_CHAR 1FA0: 2A D7 5C LD HL,(SC_0B) 1FA3: F1 POP AF 1FA4: E5 PUSH HL 1FA5: 16 00 LD D,#00 1FA7: 5F LD E,A 1FA8: ED 52 SBC HL,DE 1FAA: 44 LD B,H 1FAB: 4D LD C,L 1FAC: CD A9 1D CALL OUT_NUM_BC 1FAF: 3E 2F LD A,'/' 1FB1: D7 RST PRINT_CHAR 1FB2: C1 POP BC 1FB3: CD A9 1D CALL OUT_NUM_BC 1FB6: C3 6B 32 JP REPEAT_FMT? SEC_TABLE: 1FB9: 01 09 02 0A 03 0B 04 0C 05 0D 06 0E 07 0F 08 10 1FC9: 01 1FCA: CD 08 3E CALL GET_RATE 1FCD: F6 11 OR #11 1FCF: 47 LD B,A 1FD0: 3E 32 LD A,'2' 1FD2: CD 44 3E CALL #3E44 1FD5: 3E 02 LD A,#02 1FD7: CD 44 3E CALL #3E44 1FDA: CD FD 3D CALL #3DFD 1FDD: DB 1F IN A,(#1F) 1FDF: E6 04 AND #04 1FE1: 3E 50 LD A,#50 1FE3: 28 02 JR Z,#1FE7 1FE5: 3E 28 LD A,#28 1FE7: 32 D7 5C LD (SC_0B),A 1FEA: C9 RET LOAD_SYS_REG: 1FEB: 3A 16 5D LD A,(SYS_REG) 1FEE: F6 3C OR #3C 1FF0: 32 16 5D LD (SYS_REG),A 1FF3: D3 FF OUT (#FF),A 1FF5: C9 RET SELECT_SIDE_1: 1FF6: 3A 16 5D LD A,(SYS_REG) 1FF9: E6 6F AND #6F 1FFB: 18 F3 JR #1FF0 1FFD: F3 DI 1FFE: 3E F4 LD A,#F4 2000: D3 1F OUT (#1F),A 2002: 2A E6 5C LD HL,(FILE_START) 2005: 0E 7F LD C,#7F 2007: 06 0A LD B,#0A 2009: 16 4E LD D,#4E 200B: CD B1 20 CALL #20B1 200E: 06 0C LD B,#0C 2010: 16 00 LD D,#00 2012: CD B1 20 CALL #20B1 2015: 06 03 LD B,#03 2017: 16 F5 LD D,#F5 2019: CD B1 20 CALL #20B1 201C: 16 FE LD D,#FE 201E: CD AF 20 CALL #20AF 2021: 53 LD D,E 2022: CD AF 20 CALL #20AF 2025: 16 00 LD D,#00 2027: CD AF 20 CALL #20AF 202A: 56 LD D,(HL) 202B: CD AF 20 CALL #20AF 202E: 16 01 LD D,#01 2030: CD AF 20 CALL #20AF 2033: 16 F7 LD D,#F7 2035: CD AF 20 CALL #20AF 2038: 06 16 LD B,#16 203A: 16 4E LD D,#4E 203C: CD B1 20 CALL #20B1 203F: 06 0C LD B,#0C 2041: 16 00 LD D,#00 2043: CD B1 20 CALL #20B1 2046: 06 03 LD B,#03 2048: 16 F5 LD D,#F5 204A: CD B1 20 CALL #20B1 204D: 16 FB LD D,#FB 204F: CD AF 20 CALL #20AF 2052: 06 00 LD B,#00 2054: 16 00 LD D,#00 2056: CD B1 20 CALL #20B1 2059: 16 F7 LD D,#F7 205B: CD AF 20 CALL #20AF 205E: 06 3C LD B,#3C 2060: 16 4E LD D,#4E 2062: CD B1 20 CALL #20B1 2065: 7E LD A,(HL) 2066: 23 INC HL 2067: FE 10 CP #10 2069: 20 9C JR NZ,#2007 206B: 06 00 LD B,#00 206D: CD B1 20 CALL #20B1 2070: FA 76 20 JP M,#2076 2073: CD B1 20 CALL #20B1 2076: DB 1F IN A,(#1F) 2078: E6 40 AND #40 207A: C2 39 3F JP NZ,#3F39 207D: 3A D8 5C LD A,(#5CD8) 2080: B7 OR A 2081: C0 RET NZ 2082: 0E 7F LD C,#7F 2084: 7B LD A,E 2085: D3 3F OUT (#3F),A 2087: 2A E8 5C LD HL,(FILE_LENGTH) 208A: 06 03 LD B,#03 208C: 7E LD A,(HL) 208D: D3 5F OUT (#5F),A 208F: E5 PUSH HL 2090: F3 DI 2091: 3E 80 LD A,#80 2093: D3 1F OUT (#1F),A 2095: C5 PUSH BC 2096: CD E5 3F CALL #3FE5 2099: DB 1F IN A,(#1F) 209B: E6 7F AND #7F 209D: C1 POP BC 209E: 28 06 JR Z,#20A6 20A0: 10 EE DJNZ #2090 20A2: 21 D6 5C LD HL,SC_00 20A5: 34 INC (HL) 20A6: E1 POP HL 20A7: 7E LD A,(HL) 20A8: 23 INC HL 20A9: FE 01 CP #01 20AB: 20 DD JR NZ,#208A 20AD: FB EI 20AE: C9 RET 20AF: 06 01 LD B,#01 20B1: DB FF IN A,(#FF) 20B3: E6 C0 AND #C0 20B5: 28 FA JR Z,#20B1 20B7: F8 RET M 20B8: ED 51 OUT (C),D 20BA: 10 F5 DJNZ #20B1 20BC: C9 RET 20BD: 21 D7 5C LD HL,SC_0B 20C0: 46 LD B,(HL) 20C1: AF XOR A 20C2: 23 INC HL 20C3: 77 LD (HL),A 20C4: 1E FF LD E,#FF 20C6: C5 PUSH BC 20C7: 1C INC E 20C8: 7B LD A,E 20C9: 06 1B LD B,#1B 20CB: CD 44 3E CALL #3E44 20CE: CD EB 1F CALL LOAD_SYS_REG 20D1: CD DD 32 CALL PRINT_HEAD_0 20D4: 3A DA 5C LD A,(#5CDA) 20D7: FE 80 CP #80 20D9: 20 06 JR NZ,#20E1 20DB: CD F6 1F CALL SELECT_SIDE_1 20DE: CD 0F 33 CALL PRINT_HEAD_1 20E1: C1 POP BC 20E2: 10 E2 DJNZ #20C6 20E4: C9 RET 20E5: F5 PUSH AF 20E6: 3A F8 5C LD A,(#5CF8) 20E9: FE FF CP #FF 20EB: 28 2F JR Z,#211C 20ED: F1 POP AF 20EE: CD 70 29 CALL KILL_BUFFER SWAP_IF_NEED: 20F1: F5 PUSH AF 20F2: 3A B6 5C LD A,(P_RAMT+2) 20F5: FE F4 CP #F4 20F7: 28 23 JR Z,NO_SWAP 20F9: AF XOR A 20FA: 21 18 5D LD HL,SWAP_FLAG 20FD: B6 OR (HL) 20FE: 36 FF LD (HL),#FF 2100: 28 1A JR Z,NO_SWAP 2102: 3A 0C 5D LD A,(BUFF_FLAG) 2105: B7 OR A 2106: 21 C3 5C LD HL,#5CC3 2109: 11 33 5D LD DE,#5D33 210C: 20 03 JR NZ,MAKE_SWAP 210E: 11 34 5E LD DE,#5E34 MAKE_SWAP: 2111: 06 2D LD B,#2D 2113: 4E LD C,(HL) 2114: 1A LD A,(DE) 2115: 77 LD (HL),A 2116: 79 LD A,C 2117: 12 LD (DE),A 2118: 23 INC HL 2119: 13 INC DE 211A: 10 F7 DJNZ #2113 NO_SWAP: 211C: F1 POP AF 211D: C9 RET 211E: 2A 59 5C LD HL,(E_LINE) 2121: 36 0D LD (HL),#0D 2123: 22 5B 5C LD (K_CUR),HL 2126: 23 INC HL 2127: 36 80 LD (HL),#80 2129: C9 RET 212A: ED 5B 59 5C LD DE,(E_LINE) 212E: 21 20 5D LD HL,#5D20 2131: CD B0 02 CALL MOVE_3_BYTES 2134: C9 RET 2135: 3A 0F 5D LD A,(TRDOS_ERR) 2138: B7 OR A 2139: F5 PUSH AF 213A: C4 2A 21 CALL NZ,#212A 213D: F1 POP AF 213E: CC 1E 21 CALL Z,#211E 2141: 2A 59 5C LD HL,(E_LINE) 2144: CD 80 3D CALL PRINT_CR 2147: 3A 19 5D LD A,(DEFAULT_DRV) 214A: C6 41 ADD A,'A' 214C: D7 RST PRINT_CHAR 214D: 3E 3E LD A,'>' 214F: D7 RST PRINT_CHAR 2150: 21 3A 5C LD HL,ERR_NR 2153: 36 FF LD (HL),#FF 2155: C3 90 1D JP EDITOR 2158: CD 2A 1E CALL NEXT_CHAR 215B: CD 8C 1D CALL GET_CHAR 215E: FE 2C CP ',' 2160: C2 1A 1D JP NZ,ERROR_SYNTAX 2163: 2A DB 5C LD HL,(SC_0F) 2166: 22 D9 5C LD (SC_0D),HL 2169: CD 0B 1E CALL #1E0B 216C: CD 75 1D CALL QUIT_SYNTAX_Z 216F: 2A DB 5C LD HL,(SC_0F) 2172: 7C LD A,H 2173: B7 OR A 2174: C2 1A 1D JP NZ,ERROR_SYNTAX 2177: 23 INC HL 2178: 22 D7 5C LD (SC_0B),HL 217B: 2A D9 5C LD HL,(SC_0D) 217E: 22 DB 5C LD (SC_0F),HL 2181: C9 RET OPEN: 2182: 2A 11 5D LD HL,(COM_ADDR) 2185: 22 5D 5C LD (CH_ADD),HL 2188: CD 0B 1E CALL #1E0B 218B: CD D0 1D CALL EVAL_2ND_EXPR 218E: CD 8C 1D CALL GET_CHAR 2191: FE 41 CP 'A' 2193: 30 05 JR NC,#219A 2195: CD 2A 1E CALL NEXT_CHAR 2198: 18 F4 JR #218E 219A: FE A5 CP #A5 219C: F5 PUSH AF 219D: CC 58 21 CALL Z,#2158 21A0: F1 POP AF 21A1: 28 0B JR Z,#21AE 21A3: E6 DF AND #DF 21A5: FE 52 CP 'R' 21A7: 28 05 JR Z,#21AE 21A9: FE 57 CP 'W' 21AB: C2 1A 1D JP NZ,ERROR_SYNTAX 21AE: 32 09 5D LD (#5DO9),A 21B1: CD 75 1D CALL QUIT_SYNTAX_Z 21B4: 3E 23 LD A,'#' 21B6: 32 E5 5C LD (FILE_TYPE),A 21B9: 3E 00 LD A,#00 21BB: 32 E6 5C LD (FILE_START),A 21BE: CD DB 21 CALL #21DB 21C1: F5 PUSH AF 21C2: CD 0F 22 CALL CHECK_FREE_STREAM 21C5: F1 POP AF 21C6: F5 PUSH AF 21C7: C4 88 22 CALL NZ,#2288 21CA: F1 POP AF 21CB: CD 42 22 CALL #2242 21CE: 2A 11 5D LD HL,(COM_ADDR) 21D1: 01 24 01 LD BC,#0124 21D4: 09 ADD HL,BC 21D5: 22 11 5D LD (COM_ADDR),HL 21D8: C3 D3 01 JP MAIN 21DB: 3E 0A LD A,#0A 21DD: 32 06 5D LD (NAME_LENGTH),A 21E0: CD B0 1C CALL FIND_NAME 21E3: F5 PUSH AF 21E4: CD 05 04 CALL CHECK_DISK_TYPE 21E7: F1 POP AF 21E8: 20 1C JR NZ,#2206 21EA: 3A 09 5D LD A,(#5DO9) 21ED: FE 52 CP 'R' 21EF: 28 10 JR Z,#2201 21F1: 21 E6 5C LD HL,FILE_START 21F4: 34 INC (HL) 21F5: CD B3 1C CALL FIND_NAME_1 21F8: 28 F7 JR Z,#21F1 21FA: 21 E6 5C LD HL,FILE_START 21FD: 35 DEC (HL) 21FE: CD B3 1C CALL FIND_NAME_1 2201: CD 5D 16 CALL READ_HEADER_1 2204: AF XOR A 2205: C9 RET 2206: 3A 09 5D LD A,(#5DO9) 2209: FE 52 CP 'R' 220B: C0 RET NZ 220C: C3 D9 03 JP REP_NO_FILE CHECK_FREE_STREAM: 220F: 3A DB 5C LD A,(SC_0F) 2212: E7 RST CALL_BAS 2213: 27 17 DW STREAM_DATA_1 2215: 78 LD A,B 2216: B1 OR C 2217: C2 1B 22 JP NZ,REP_STREAM_OPENED 221A: C9 RET REP_STREAM_OPENED: 221B: 3E 19 LD A,#19 221D: 32 3A 5C LD (ERR_NR),A 2220: 21 04 28 LD HL,#2804 2223: 3E 0A LD A,#0A 2225: C3 4A 1C JP MAKE_REPORT REP_NOT_DISK_FILE: 2228: 3E 0B LD A,#0B 222A: 21 12 28 LD HL,#2812 222D: 18 F6 JR #2225 222F: E5 PUSH HL 2230: 0E 20 LD C,#20 2232: EF RST CHANNEL_OFFSET 2233: 3A D7 5C LD A,(SC_0B) 2236: 77 LD (HL),A 2237: 23 INC HL 2238: AF XOR A 2239: 77 LD (HL),A 223A: 23 INC HL 223B: 77 LD (HL),A 223C: 23 INC HL 223D: 77 LD (HL),A 223E: 3E 7F LD A,#7F 2240: E1 POP HL 2241: C9 RET 2242: F5 PUSH AF 2243: CD 0F 22 CALL CHECK_FREE_STREAM 2246: EB EX DE,HL 2247: 2A 53 5C LD HL,(PROG) 224A: ED 4B 4F 5C LD BC,(CHANS) 224E: ED 42 SBC HL,BC 2250: EB EX DE,HL 2251: 73 LD (HL),E 2252: 23 INC HL 2253: 72 LD (HL),D 2254: CD B2 22 CALL #22B2 2257: 3A 09 5D LD A,(#5DO9) 225A: FE A5 CP #A5 225C: CC 2F 22 CALL Z,#222F 225F: 28 0A JR Z,#226B 2261: 3A 09 5D LD A,(#5DO9) 2264: FE 52 CP 'R' 2266: 3E FF LD A,#FF 2268: 20 01 JR NZ,#226B 226A: AF XOR A 226B: 77 LD (HL),A 226C: F1 POP AF 226D: C3 70 22 JP #2270 2270: F5 PUSH AF 2271: 01 14 00 LD BC,#0014 2274: 09 ADD HL,BC 2275: E5 PUSH HL 2276: CD 23 24 CALL #2423 2279: E1 POP HL 227A: 23 INC HL 227B: 06 01 LD B,#01 227D: F1 POP AF 227E: B7 OR A 227F: F5 PUSH AF 2280: C4 4D 1E CALL NZ,WRITE_BUFF 2283: F1 POP AF 2284: CC 3D 1E CALL Z,READ_BUFF 2287: C9 RET 2288: 2A D7 5C LD HL,(SC_0B) 228B: E5 PUSH HL 228C: 21 00 20 LD HL,#2000 228F: 22 D7 5C LD (SC_0B),HL 2292: CD 9A 22 CALL #229A 2295: E1 POP HL 2296: 22 D7 5C LD (SC_0B),HL 2299: C9 RET 229A: 21 00 10 LD HL,#1000 229D: 22 D9 5C LD (SC_0D),HL 22A0: CD C4 1A CALL TEST_CAT_ROOM 22A3: CD 59 1B CALL WRITE_FILE_HEADER 22A6: 21 00 00 LD HL,#0000 22A9: 22 E8 5C LD (FILE_LENGTH),HL 22AC: CD 6B 16 CALL #166B 22AF: C3 43 1E JP WRITE_SEC_FROM_BUFF 22B2: 2A 53 5C LD HL,(PROG) 22B5: 2B DEC HL 22B6: 22 51 5C LD (CUR_CHL),HL 22B9: E5 PUSH HL 22BA: 01 24 01 LD BC,#0124 22BD: CD 32 1E CALL MAKE_ROOM 22C0: 3E 00 LD A,#00 22C2: 06 00 LD B,#00 22C4: 12 LD (DE),A 22C5: 1B DEC DE 22C6: 10 FC DJNZ #22C4 22C8: E1 POP HL 22C9: E5 PUSH HL 22CA: 11 0E 3D LD DE,#3D0E 22CD: 73 LD (HL),E 22CE: 23 INC HL 22CF: 72 LD (HL),D 22D0: 23 INC HL 22D1: 11 06 3D LD DE,#3D06 22D4: 73 LD (HL),E 22D5: 23 INC HL 22D6: 72 LD (HL),D 22D7: 23 INC HL 22D8: 36 44 LD (HL),#44 22DA: 23 INC HL 22DB: 23 INC HL 22DC: 23 INC HL 22DD: 23 INC HL 22DE: 23 INC HL 22DF: 36 24 LD (HL),#24 22E1: 23 INC HL 22E2: 36 01 LD (HL),#01 22E4: 23 INC HL 22E5: 3A F6 5C LD A,(TMP_DRIVE) 22E8: 77 LD (HL),A 22E9: 23 INC HL 22EA: 3A 1E 5D LD A,(FILE_NR) 22ED: 77 LD (HL),A 22EE: 23 INC HL 22EF: 3A 09 5D LD A,(#5DO9) 22F2: FE 52 CP 'R' 22F4: 36 00 LD (HL),#00 22F6: 28 04 JR Z,#22FC 22F8: 3A E8 5C LD A,(FILE_LENGTH) 22FB: 77 LD (HL),A 22FC: 23 INC HL 22FD: 70 LD (HL),B 22FE: 28 04 JR Z,#2304 2300: 3A E9 5C LD A,(FILE_LENGTH+1) 2303: 77 LD (HL),A 2304: 23 INC HL 2305: EB EX DE,HL 2306: E1 POP HL 2307: D5 PUSH DE 2308: 11 10 00 LD DE,PRINT_CHAR 230B: 19 ADD HL,DE 230C: EB EX DE,HL 230D: 21 DD 5C LD HL,FILE_NAME 2310: 01 10 00 LD BC,#0010 2313: ED B0 LDIR 2315: E1 POP HL 2316: C9 RET 2317: 0E 0D LD C,#0D 2319: EF RST CHANNEL_OFFSET 231A: 4E LD C,(HL) 231B: EF RST CHANNEL_OFFSET 231C: 01 24 00 LD BC,#0024 231F: 09 ADD HL,BC 2320: C9 RET 2321: 0E 24 LD C,#24 CHAN_OFF: 2323: 06 00 LD B,#00 2325: 2A 51 5C LD HL,(CUR_CHL) 2328: 09 ADD HL,BC 2329: C9 RET 232A: 0E 0D LD C,#0D 232C: EF RST CHANNEL_OFFSET 232D: 34 INC (HL) 232E: C0 RET NZ 232F: E5 PUSH HL 2330: CD 43 24 CALL #2443 2333: CD FC 23 CALL #23FC 2336: E1 POP HL 2337: 23 INC HL 2338: 34 INC (HL) 2339: E5 PUSH HL 233A: CD 18 24 CALL #2418 233D: E1 POP HL 233E: 3E 10 LD A,#10 2340: BE CP (HL) 2341: C0 RET NZ 2342: E5 PUSH HL 2343: 0E 0F LD C,#0F 2345: EF RST CHANNEL_OFFSET 2346: 7E LD A,(HL) 2347: FE 7F CP #7F 2349: E1 POP HL 234A: 28 0C JR Z,#2358 234C: 2A 51 5C LD HL,(CUR_CHL) 234F: CD E1 26 CALL #26E1 2352: 0E 0E LD C,#0E 2354: EF RST CHANNEL_OFFSET 2355: C3 79 23 JP #2379 2358: CD CF 23 CALL #23CF 235B: F5 PUSH AF 235C: CC 18 24 CALL Z,#2418 235F: 0E 0E LD C,#0E 2361: EF RST CHANNEL_OFFSET 2362: F1 POP AF 2363: C4 70 23 CALL NZ,#2370 2366: C9 RET 2367: 36 00 LD (HL),#00 2369: 0E 19 LD C,#19 236B: EF RST CHANNEL_OFFSET 236C: 16 20 LD D,#20 236E: 5E LD E,(HL) 236F: C9 RET 2370: CD 67 23 CALL #2367 2373: ED 53 D7 5C LD (SC_0B),DE 2377: 18 08 JR #2381 2379: CD 67 23 CALL #2367 237C: 1C INC E 237D: ED 53 D7 5C LD (SC_0B),DE 2381: CD 9A 22 CALL #229A 2384: CD 70 29 CALL KILL_BUFFER 2387: 0E 10 LD C,#10 2389: EF RST CHANNEL_OFFSET 238A: EB EX DE,HL 238B: 21 DD 5C LD HL,FILE_NAME 238E: 01 10 00 LD BC,#0010 2391: ED B0 LDIR 2393: 0E 0C LD C,#0C 2395: EF RST CHANNEL_OFFSET 2396: 3A 1E 5D LD A,(FILE_NR) 2399: 77 LD (HL),A 239A: C9 RET 239B: 0E 0D LD C,#0D 239D: EF RST CHANNEL_OFFSET 239E: 34 INC (HL) 239F: C0 RET NZ 23A0: 23 INC HL 23A1: 34 INC (HL) 23A2: E5 PUSH HL 23A3: CD 43 24 CALL #2443 23A6: 0E 23 LD C,#23 23A8: EF RST CHANNEL_OFFSET 23A9: 7E LD A,(HL) 23AA: B7 OR A 23AB: 28 09 JR Z,#23B6 23AD: E1 POP HL 23AE: E5 PUSH HL 23AF: 35 DEC (HL) 23B0: CD FC 23 CALL #23FC 23B3: E1 POP HL 23B4: E5 PUSH HL 23B5: 34 INC (HL) 23B6: CD 18 24 CALL #2418 23B9: E1 POP HL 23BA: 3E 10 LD A,#10 23BC: BE CP (HL) 23BD: CC C1 23 CALL Z,#23C1 23C0: C9 RET 23C1: CD CF 23 CALL #23CF 23C4: F5 PUSH AF 23C5: CD 70 29 CALL KILL_BUFFER 23C8: F1 POP AF 23C9: C2 92 24 JP NZ,#2492 23CC: C3 18 24 JP #2418 23CF: 36 00 LD (HL),#00 23D1: 0E 19 LD C,#19 23D3: EF RST CHANNEL_OFFSET 23D4: 34 INC (HL) 23D5: 0E 10 LD C,#10 23D7: EF RST CHANNEL_OFFSET 23D8: 11 DD 5C LD DE,FILE_NAME 23DB: 01 10 00 LD BC,#0010 23DE: ED B0 LDIR 23E0: CD B3 1C CALL FIND_NAME_1 23E3: C0 RET NZ 23E4: CD 5D 16 CALL READ_HEADER_1 23E7: 0E 10 LD C,#10 23E9: EF RST CHANNEL_OFFSET 23EA: EB EX DE,HL 23EB: 21 DD 5C LD HL,FILE_NAME 23EE: 01 10 00 LD BC,#0010 23F1: ED B0 LDIR 23F3: 0E 0C LD C,#0C 23F5: EF RST CHANNEL_OFFSET 23F6: 3A 1E 5D LD A,(FILE_NR) 23F9: 77 LD (HL),A 23FA: AF XOR A 23FB: C9 RET 23FC: CD 23 24 CALL #2423 23FF: CD 21 23 CALL #2321 2402: 06 01 LD B,#01 2404: CD 4D 1E CALL WRITE_BUFF 2407: 0E 0F LD C,#0F 2409: EF RST CHANNEL_OFFSET 240A: 7E LD A,(HL) 240B: FE 7F CP #7F 240D: C8 RET Z 240E: CD 21 23 CALL #2321 2411: AF XOR A 2412: 47 LD B,A 2413: 77 LD (HL),A 2414: 23 INC HL 2415: 10 FC DJNZ #2413 2417: C9 RET 2418: CD 23 24 CALL #2423 241B: CD 21 23 CALL #2321 241E: 06 01 LD B,#01 2420: C3 3D 1E JP READ_BUFF 2423: 2A 51 5C LD HL,(CUR_CHL) 2426: 01 1E 00 LD BC,#001E 2429: 09 ADD HL,BC 242A: 5E LD E,(HL) 242B: 23 INC HL 242C: 56 LD D,(HL) 242D: 0E 0E LD C,#0E 242F: EF RST CHANNEL_OFFSET 2430: 46 LD B,(HL) 2431: 05 DEC B 2432: 04 INC B 2433: F5 PUSH AF 2434: 3E 10 LD A,#10 2436: 28 09 JR Z,#2441 2438: 1C INC E 2439: BB CP E 243A: 20 03 JR NZ,#243F 243C: 1E 00 LD E,#00 243E: 14 INC D 243F: 10 F7 DJNZ #2438 2441: F1 POP AF 2442: C9 RET 2443: 0E 0B LD C,#0B 2445: EF RST CHANNEL_OFFSET 2446: 7E LD A,(HL) 2447: C3 CB 3D JP SET_DRIVE 244A: 21 C2 5C LD HL,WITH_RET 244D: E5 PUSH HL 244E: 21 F1 20 LD HL,SWAP_IF_NEED 2451: E5 PUSH HL 2452: F5 PUSH AF 2453: CD F1 20 CALL SWAP_IF_NEED 2456: 3E 0A LD A,#0A 2458: 32 06 5D LD (NAME_LENGTH),A 245B: F1 POP AF 245C: CD A2 24 CALL #24A2 245F: F5 PUSH AF 2460: CD 50 26 CALL #2650 2463: CA 9E 24 JP Z,#249E 2466: F1 POP AF 2467: CD 17 23 CALL #2317 246A: 77 LD (HL),A 246B: C3 2A 23 JP #232A 246E: 0E 0D LD C,#0D 2470: EF RST CHANNEL_OFFSET 2471: 7E LD A,(HL) 2472: 01 0E 00 LD BC,#000E 2475: 09 ADD HL,BC 2476: BE CP (HL) 2477: C0 RET NZ 2478: 0E 0E LD C,#0E 247A: EF RST CHANNEL_OFFSET 247B: 7E LD A,(HL) 247C: 01 0E 00 LD BC,#000E 247F: 09 ADD HL,BC 2480: BE CP (HL) 2481: C0 RET NZ 2482: 21 B6 5C LD HL,P_RAMT+2 2485: 7E LD A,(HL) 2486: FE F4 CP #F4 2488: 28 08 JR Z,#2492 248A: CB 66 BIT 4,(HL) 248C: 28 04 JR Z,#2492 248E: F6 01 OR #01 2490: E1 POP HL 2491: C9 RET 2492: 3E 07 LD A,#07 2494: 32 3A 5C LD (ERR_NR),A 2497: CD E5 20 CALL #20E5 249A: E7 RST CALL_BAS 249B: 58 00 DW ERROR_3+03 249D: C9 RET 249E: 3E 17 LD A,#17 24A0: 18 F2 JR #2494 24A2: 57 LD D,A 24A3: 0E 0F LD C,#0F 24A5: EF RST CHANNEL_OFFSET 24A6: 7E LD A,(HL) 24A7: FE 7F CP #7F 24A9: 7A LD A,D 24AA: C0 RET NZ 24AB: 01 13 00 LD BC,#0013 24AE: 09 ADD HL,BC 24AF: 7E LD A,(HL) 24B0: B7 OR A 24B1: 7A LD A,D 24B2: 20 21 JR NZ,#24D5 24B4: 2B DEC HL 24B5: 7E LD A,(HL) 24B6: B7 OR A 24B7: 20 09 JR NZ,#24C2 24B9: C5 PUSH BC 24BA: E5 PUSH HL 24BB: D5 PUSH DE 24BC: CD F8 24 CALL #24F8 24BF: D1 POP DE 24C0: E1 POP HL 24C1: C1 POP BC 24C2: 4E LD C,(HL) 24C3: 7A LD A,D 24C4: EB EX DE,HL 24C5: 2A CF 5C LD HL,(#5CCF) 24C8: 09 ADD HL,BC 24C9: FE 06 CP #06 24CB: 77 LD (HL),A 24CC: CC 04 25 CALL Z,#2504 24CF: 0E 21 LD C,#21 24D1: EF RST CHANNEL_OFFSET 24D2: 34 INC (HL) 24D3: E1 POP HL 24D4: C9 RET 24D5: 2B DEC HL 24D6: 7E LD A,(HL) 24D7: 2B DEC HL 24D8: 3C INC A 24D9: BE CP (HL) 24DA: 23 INC HL 24DB: 34 INC (HL) 24DC: E5 PUSH HL 24DD: F5 PUSH AF 24DE: 0E 23 LD C,#23 24E0: EF RST CHANNEL_OFFSET 24E1: 36 FF LD (HL),#FF 24E3: F1 POP AF 24E4: E1 POP HL 24E5: 38 07 JR C,#24EE 24E7: 7A LD A,D 24E8: FE 0D CP #0D 24EA: 28 06 JR Z,#24F2 24EC: C1 POP BC 24ED: C9 RET 24EE: 7A LD A,D 24EF: FE 0D CP #0D 24F1: C0 RET NZ 24F2: AF XOR A 24F3: 77 LD (HL),A 24F4: 23 INC HL 24F5: 77 LD (HL),A 24F6: 7A LD A,D 24F7: C9 RET 24F8: 2A 61 5C LD HL,(WORK_SP) 24FB: 22 CF 5C LD (#5CCF),HL 24FE: 01 10 00 LD BC,#0010 2501: C3 23 1E JP BC_SPACES 2504: 36 0D LD (HL),#0D 2506: 2A 5D 5C LD HL,(CH_ADD) 2509: 22 D7 5C LD (SC_0B),HL 250C: 2A CF 5C LD HL,(#5CCF) 250F: 22 5D 5C LD (CH_ADD),HL 2512: 21 3B 5C LD HL,FLAGS 2515: CB BE RES 7,(HL) 2517: CD C1 1D CALL CLASS_06 251A: 21 3B 5C LD HL,FLAGS 251D: CB FE SET 7,(HL) 251F: 2A CF 5C LD HL,(#5CCF) 2522: 22 5D 5C LD (CH_ADD),HL 2525: CD C1 1D CALL CLASS_06 2528: CD B9 1D CALL FIND_INT_2 252B: C5 PUSH BC 252C: D1 POP DE 252D: 0E 20 LD C,#20 252F: EF RST CHANNEL_OFFSET 2530: 46 LD B,(HL) 2531: AF XOR A 2532: 21 00 00 LD HL,#0000 2535: 22 DB 5C LD (SC_0F),HL 2538: 19 ADD HL,DE 2539: 30 09 JR NC,#2544 253B: E5 PUSH HL 253C: 2A DB 5C LD HL,(SC_0F) 253F: 23 INC HL 2540: 22 DB 5C LD (SC_0F),HL 2543: E1 POP HL 2544: 10 F2 DJNZ #2538 2546: 22 D9 5C LD (SC_0D),HL 2549: 3A DB 5C LD A,(SC_0F) 254C: 21 DA 5C LD HL,#5CDA 254F: ED 67 RRD 2551: E6 0F AND #0F 2553: 32 DB 5C LD (SC_0F),A 2556: 2A D7 5C LD HL,(SC_0B) 2559: 22 5D 5C LD (CH_ADD),HL 255C: CD 68 25 CALL #2568 255F: 0E 21 LD C,#21 2561: EF RST CHANNEL_OFFSET 2562: 3E FF LD A,#FF 2564: 77 LD (HL),A 2565: 23 INC HL 2566: 77 LD (HL),A 2567: C9 RET 2568: 0E 19 LD C,#19 256A: EF RST CHANNEL_OFFSET 256B: 3A DA 5C LD A,(#5CDA) 256E: BE CP (HL) 256F: C2 84 25 JP NZ,#2584 2572: 0E 0E LD C,#0E 2574: EF RST CHANNEL_OFFSET 2575: 3A DB 5C LD A,(SC_0F) 2578: BE CP (HL) 2579: C2 A7 25 JP NZ,#25A7 257C: 0E 0D LD C,#0D 257E: EF RST CHANNEL_OFFSET 257F: 3A D9 5C LD A,(SC_0D) 2582: 77 LD (HL),A 2583: C9 RET 2584: CD CA 25 CALL #25CA 2587: C4 C3 25 CALL NZ,#25C3 258A: 3A DA 5C LD A,(#5CDA) 258D: 0E 19 LD C,#19 258F: EF RST CHANNEL_OFFSET 2590: 77 LD (HL),A 2591: 0E 10 LD C,#10 2593: EF RST CHANNEL_OFFSET 2594: 11 DD 5C LD DE,FILE_NAME 2597: 01 10 00 LD BC,#0010 259A: ED B0 LDIR 259C: CD B3 1C CALL FIND_NAME_1 259F: C2 D2 25 JP NZ,#25D2 25A2: CD E4 23 CALL #23E4 25A5: 18 06 JR #25AD 25A7: CD CA 25 CALL #25CA 25AA: C4 C3 25 CALL NZ,#25C3 25AD: 3A DB 5C LD A,(SC_0F) 25B0: 0E 0E LD C,#0E 25B2: EF RST CHANNEL_OFFSET 25B3: 77 LD (HL),A 25B4: E5 PUSH HL 25B5: CD 43 24 CALL #2443 25B8: CD 18 24 CALL #2418 25BB: E1 POP HL 25BC: 2B DEC HL 25BD: 3A D9 5C LD A,(SC_0D) 25C0: 77 LD (HL),A 25C1: 18 B9 JR #257C 25C3: CD 43 24 CALL #2443 25C6: CD FC 23 CALL #23FC 25C9: C9 RET 25CA: 0E 23 LD C,#23 25CC: EF RST CHANNEL_OFFSET 25CD: 7E LD A,(HL) 25CE: B7 OR A 25CF: 36 00 LD (HL),#00 25D1: C9 RET 25D2: 2A DA 5C LD HL,(#5CDA) 25D5: 26 20 LD H,#20 25D7: 22 D7 5C LD (SC_0B),HL 25DA: 2A D9 5C LD HL,(SC_0D) 25DD: E5 PUSH HL 25DE: 2A DB 5C LD HL,(SC_0F) 25E1: E5 PUSH HL 25E2: CD 81 23 CALL #2381 25E5: E1 POP HL 25E6: 22 DB 5C LD (SC_0F),HL 25E9: E1 POP HL 25EA: 22 D9 5C LD (SC_0D),HL 25ED: 18 BE JR #25AD 25EF: CD F1 20 CALL SWAP_IF_NEED 25F2: 21 3C 5C LD HL,TV_FLAG 25F5: CB 9E RES 3,(HL) 25F7: 2A 3D 5C LD HL,(ERR_SP) 25FA: 5E LD E,(HL) 25FB: 23 INC HL 25FC: 56 LD D,(HL) 25FD: B7 OR A 25FE: 21 7F 10 LD HL,#107F 2601: ED 52 SBC HL,DE 2603: 20 21 JR NZ,#2626 2605: ED 7B 3D 5C LD SP,(ERR_SP) 2609: D1 POP DE 260A: D1 POP DE 260B: ED 53 3D 5C LD (ERR_SP),DE 260F: CD 2B 26 CALL #262B 2612: 38 09 JR C,#261D 2614: 21 C2 5C LD HL,WITH_RET 2617: E5 PUSH HL 2618: 21 E5 20 LD HL,#20E5 261B: E5 PUSH HL 261C: C9 RET 261D: FE 0D CP #0D 261F: 28 F3 JR Z,#2614 2621: E7 RST CALL_BAS 2622: 85 0F DW ADD_CHAR+5 2624: 18 E9 JR #260F 2626: CD 2B 26 CALL #262B 2629: 18 E9 JR #2614 262B: 3E 0A LD A,#0A 262D: 32 06 5D LD (NAME_LENGTH),A 2630: CD 50 26 CALL #2650 2633: 28 0D JR Z,#2642 2635: FE 7F CP #7F 2637: C2 9E 24 JP NZ,#249E 263A: 01 13 00 LD BC,#0013 263D: 09 ADD HL,BC 263E: 36 00 LD (HL),#00 2640: 18 03 JR #2645 2642: CD 6E 24 CALL #246E 2645: CD 17 23 CALL #2317 2648: 7E LD A,(HL) 2649: F5 PUSH AF 264A: CD 9B 23 CALL #239B 264D: F1 POP AF 264E: 37 SCF 264F: C9 RET 2650: 0E 0F LD C,#0F 2652: EF RST CHANNEL_OFFSET 2653: 7E LD A,(HL) 2654: B7 OR A 2655: C9 RET CLOSE: 2656: 2A 11 5D LD HL,(COM_ADDR) 2659: 22 5D 5C LD (CH_ADD),HL 265C: CD 0B 1E CALL #1E0B 265F: CD 75 1D CALL QUIT_SYNTAX_Z 2662: 3A DB 5C LD A,(SC_0F) 2665: E7 RST CALL_BAS 2666: 27 17 DW STREAM_DATA_1 2668: 78 LD A,B 2669: B1 OR C 266A: CA D3 01 JP Z,MAIN 266D: E5 PUSH HL 266E: 2A 4F 5C LD HL,(CHANS) 2671: 09 ADD HL,BC 2672: 7E LD A,(HL) 2673: 21 0E 3D LD HL,#3D0E 2676: BC CP H 2677: E1 POP HL 2678: C2 28 22 JP NZ,REP_NOT_DISK_FILE 267B: 36 00 LD (HL),#00 267D: 23 INC HL 267E: 36 00 LD (HL),#00 2680: ED 43 D9 5C LD (SC_0D),BC 2684: 2A 4F 5C LD HL,(CHANS) 2687: 09 ADD HL,BC 2688: 2B DEC HL 2689: 22 D7 5C LD (SC_0B),HL 268C: CD CE 26 CALL #26CE 268F: 2A D7 5C LD HL,(SC_0B) 2692: 01 24 01 LD BC,#0124 2695: CD 2E 1E CALL RECLAIM_2 2698: 21 10 5C LD HL,STRMS 269B: 06 10 LD B,#10 269D: C5 PUSH BC 269E: ED 4B D9 5C LD BC,(SC_0D) 26A2: 5E LD E,(HL) 26A3: 23 INC HL 26A4: 56 LD D,(HL) 26A5: EB EX DE,HL 26A6: ED 42 SBC HL,BC 26A8: EB EX DE,HL 26A9: 38 11 JR C,#26BC 26AB: 56 LD D,(HL) 26AC: 2B DEC HL 26AD: 5E LD E,(HL) 26AE: 23 INC HL 26AF: E5 PUSH HL 26B0: EB EX DE,HL 26B1: 01 24 01 LD BC,#0124 26B4: ED 42 SBC HL,BC 26B6: EB EX DE,HL 26B7: E1 POP HL 26B8: 72 LD (HL),D 26B9: 2B DEC HL 26BA: 73 LD (HL),E 26BB: 23 INC HL 26BC: 23 INC HL 26BD: C1 POP BC 26BE: 10 DD DJNZ #269D 26C0: 2A 11 5D LD HL,(COM_ADDR) 26C3: 01 24 01 LD BC,#0124 26C6: ED 42 SBC HL,BC 26C8: 22 11 5D LD (COM_ADDR),HL 26CB: C3 D3 01 JP MAIN 26CE: 01 0F 00 LD BC,#000F 26D1: 09 ADD HL,BC 26D2: 7E LD A,(HL) 26D3: B7 OR A 26D4: C8 RET Z 26D5: 2A D7 5C LD HL,(SC_0B) 26D8: 22 51 5C LD (CUR_CHL),HL 26DB: CD E1 26 CALL #26E1 26DE: C3 FC 23 JP #23FC 26E1: 01 0D 00 LD BC,#000D 26E4: 09 ADD HL,BC 26E5: 5E LD E,(HL) 26E6: 23 INC HL 26E7: 56 LD D,(HL) 26E8: 01 0D 00 LD BC,#000D 26EB: 09 ADD HL,BC 26EC: 73 LD (HL),E 26ED: 23 INC HL 26EE: 72 LD (HL),D 26EF: 0E 10 LD C,#10 26F1: EF RST CHANNEL_OFFSET 26F2: 11 DD 5C LD DE,FILE_NAME 26F5: 01 10 00 LD BC,#0010 26F8: ED B0 LDIR 26FA: CD 43 24 CALL #2443 26FD: 0E 0C LD C,#0C 26FF: EF RST CHANNEL_OFFSET 2700: 4E LD C,(HL) 2701: CD 6B 16 CALL #166B 2704: C3 43 1E JP WRITE_SEC_FROM_BUFF PR_STRING_1: 2707: 7E LD A,(HL) 2708: B7 OR A 2709: C8 RET Z 270A: E6 7F AND #7F 270C: D7 RST PRINT_CHAR 270D: CB 7E BIT 7,(HL) 270F: C0 RET NZ 2710: 23 INC HL 2711: 18 F4 JR PR_STRING_1 COMPARE_B_BYTES: 2713: 1A LD A,(DE) 2714: BE CP (HL) 2715: C0 RET NZ 2716: 13 INC DE 2717: 23 INC HL 2718: 10 F9 DJNZ COMPARE_B_BYTES 271A: C9 RET REP_NO_DISK: 271B: 21 FC 27 LD HL,#27FC 271E: 3E 06 LD A,#06 2720: C3 4A 1C JP MAKE_REPORT REP_DIR_FULL: 2723: 21 ED 27 LD HL,#27ED 2726: 3E 04 LD A,#04 2728: C3 4A 1C JP MAKE_REPORT 272B: 3E 1A LD A,#1A 272D: 18 02 JR #2731 272F: 3E 12 LD A,#12 2731: 32 3A 5C LD (ERR_NR),A 2734: C9 RET 2735: 3E 03 LD A,#03 2737: 18 F8 JR #2731 CHECK_TRACK: 2739: AF XOR A 273A: 32 D8 5C LD (#5CD9),A 273D: 32 D6 5C LD (SC_00),A 2740: DB 1F IN A,(#1F) 2742: 32 CD 5C LD (READY),A 2745: 5A LD E,D 2746: D5 PUSH DE 2747: 7B LD A,E 2748: D3 7F OUT (#7F),A 274A: 3E 18 LD A,#18 274C: CD 9A 3D CALL DISK_RESTORE_1 274F: 3A CD 5C LD A,(READY) 2752: E6 80 AND #80 2754: C4 A0 3E CALL NZ,#3EA0 2757: D1 POP DE 2758: CD BB 32 CALL #32BB 275B: 3A D6 5C LD A,(SC_00) 275E: B7 OR A 275F: C8 RET Z 2760: 3E 07 LD A,#07 2762: 32 0F 5D LD (TRDOS_ERR),A 2765: C9 RET 2766: DB "O.K.",#00 276B: DB "Verify Error.",#0D+#80 2779: DB "BACKUP DISK",#0D+#80 2785: DB "Insert Destination disk",#0D,"then press Y",#00 27AA: DB "Insert Source disk then press Y",#00 27CA: DB "*BREAK*",#0D+#80 27D2: DB "Out of RAM",#0D+#80 27DD: DB "Array not found",#0D+#80 27ED: DB "Directory full",#0D+#80 27FC: DB "No disk",#0D+#80 2804: DB "Stream opened",#0D+#80 2812: DB "Not disk file",#0D+#80 2820: DB "File exists",#0D,"Over write?(Y/N",')'+#80 ASM_CALL_2: 283C: F5 PUSH AF 283D: C5 PUSH BC 283E: ED 53 04 5D LD (SAVE_DE),DE 2842: 22 02 5D LD (SAVE_HL),HL 2845: CD F1 20 CALL SWAP_IF_NEED 2848: 3E FF LD A,#FF 284A: 32 15 5D LD (MESS_FLAG),A 284D: 32 1F 5D LD (#5D1F),A 2850: C1 POP BC 2851: F1 POP AF 2852: 21 01 02 LD HL,MAIN_2 2855: 22 1A 5D LD (EXIT_ADDR),HL 2858: 21 00 00 LD HL,#0000 285B: 39 ADD HL,SP 285C: 22 1C 5D LD (SAVE_SP),HL 285F: 2B DEC HL 2860: 2B DEC HL 2861: F9 LD SP,HL 2862: F5 PUSH AF 2863: CD 1D 02 CALL MAKE_ERR_SP 2866: 21 8C 28 LD HL,SUBS_ADDRS NEXT_MATCH: 2869: 7E LD A,(HL) 286A: B9 CP C 286B: 20 12 JR NZ,NOT_MATCH 286D: F1 POP AF 286E: 23 INC HL 286F: 5E LD E,(HL) 2870: 23 INC HL 2871: 56 LD D,(HL) 2872: 21 D3 01 LD HL,MAIN 2875: E5 PUSH HL 2876: D5 PUSH DE 2877: 2A 02 5D LD HL,(SAVE_HL) 287A: ED 5B 04 5D LD DE,(SAVE_DE) 287E: C9 RET NOT_MATCH: 287F: FE FF CP #FF 2881: 20 04 JR NZ,NOT_END 2883: F1 POP AF 2884: C3 D3 01 JP MAIN NOT_END: 2887: 23 INC HL 2888: 23 INC HL 2889: 23 INC HL 288A: 18 DD JR NEXT_MATCH SUBS_ADDRS: 288C: 00 DB #00 288D: 98 3D DW DISK_RESTORE 288F: 01 DB #01 2890: CB 3D DW SET_DRIVE 2892: 02 DB #02 2893: 63 3E DW SET_TRACK 2895: 03 DB #03 2896: 02 3F DW SET_SECTOR 2898: 04 DB #04 2899: 06 3F DW SET_DMA 289B: 05 DB #05 289C: 3D 1E DW READ_BUFF 289E: 06 DB #06 289F: 4D 1E DW WRITE_BUFF 28A1: 07 DB #07 28A2: D8 28 DW READ_CAT 28A5: 08 DB #08 28A5: 5C 16 DW READ_HEADER 28A7: 09 DB #09 28A8: 64 16 DW WRITE_HEADER 28AA: 0A DB #0A 28AB: F0 1C DW FIND_BY_NAME 28AD: 0B DB #0B 28AE: FB 28 DW WRITE_CODE 28B0: 0C DB #0C 28B1: F2 28 DW WRITE_PROG 28B3: 0D DB #0D 28B4: D3 01 DW MAIN 28B6: 0E DB #0E 28B7: 0F 29 DW READ_CODE 28B9: 0F DB #0F 28BA: D3 01 DW MAIN 28BC: 10 DB #10 28BD: D3 01 DW MAIN 28BF: 11 DB #11 28C0: D3 01 DW MAIN 28C2: 12 DB #12 28C3: 26 29 DW ERASE_FILE 28C5: 13 DB #13 28C6: E0 28 DW MOVE_TO_#5CDD 28C8: 14 DB #14 28C9: E3 28 DW MOVE_FROM_#5CDD 28CB: 15 DB #15 28CC: 39 27 DW CHECK_TRACK 28CE: 16 DB #16 28CF: EB 1F DW LOAD_SYS_REG 28D1: 17 DB #17 28D2: F6 1F DW SELECT_SIDE_1 28D4: 18 DB #18 28D5: 05 04 DW CHECK_DISK_TYPE 28D7: FF DB #FF READ_CAT: 28D8: F5 PUSH AF 28D9: CD 05 04 CALL CHECK_DISK_TYPE 28DC: F1 POP AF 28DD: C3 79 04 JP READ_CAT_1 MOVE_TO_#5CDD: 28E0: AF XOR A 28E1: 18 02 JR MOVE_#5CDD MOVE_FROM_#5CDD: 28E3: 3E FF LD A,#FF MOVE_#5CDD: 28E5: 11 DD 5C LD DE,FILE_NAME 28E8: 01 10 00 LD BC,#0010 28EB: B7 OR A 28EC: 28 01 JR Z,#28EF 28EE: EB EX DE,HL 28EF: ED B0 LDIR 28F1: C9 RET WRITE_PROG: 28F2: CD 05 04 CALL CHECK_DISK_TYPE 28F5: CD C4 1A CALL TEST_CAT_ROOM 28F8: C3 27 1B JP WRITE_PROG_1 WRITE_CODE: 28FB: 22 D7 5C LD (SC_0B),HL 28FE: ED 53 D9 5C LD (SC_0D),DE 2902: ED 53 DB 5C LD (SC_0F),DE 2906: CD 05 04 CALL CHECK_DISK_TYPE 2909: CD C4 1A CALL TEST_CAT_ROOM 290C: C3 53 1B JP WRITE_CODE_1 READ_CODE: 290F: B7 OR A 2910: 32 D6 5C LD (SC_00),A 2913: 22 D9 5C LD (SC_0D),HL 2916: ED 53 DB 5C LD (SC_0F),DE 291A: CD B3 1C CALL FIND_NAME_1 291D: CD A4 18 CALL #18A4 2920: CD AB 18 CALL #18AB 2923: C3 21 19 JP #1921 ERASE_FILE: 2926: CD 05 04 CALL CHECK_DISK_TYPE 2929: CD B3 1C CALL FIND_NAME_1 292C: C3 A0 07 JP MAKE_DELETED SEARCH_NAME: 292F: CD 57 1C CALL PREPARE_FILENAME 2932: CD 05 04 CALL CHECK_DISK_TYPE 2935: C3 B3 1C JP FIND_NAME_1 PR_NAME_&_TYPE: 2938: C5 PUSH BC 2939: 06 08 LD B,#08 293B: 7E LD A,(HL) 293C: D7 RST PRINT_CHAR 293D: 23 INC HL 293E: 10 FB DJNZ #293B 2940: 3E 3C LD A,'<' 2942: D7 RST PRINT_CHAR 2943: 7E LD A,(HL) 2944: D7 RST PRINT_CHAR 2945: 3E 3E LD A,'>' 2947: D7 RST PRINT_CHAR 2948: C1 POP BC 2949: C9 RET CREATE_BUFFER: 294A: E5 PUSH HL 294B: D5 PUSH DE 294C: C5 PUSH BC 294D: F5 PUSH AF 294E: 21 0C 5D LD HL,BUFF_FLAG 2951: 7E LD A,(HL) 2952: B7 OR A 2953: 28 3D JR Z,ALREADY 2955: E5 PUSH HL 2956: 01 01 01 LD BC,#0101 2959: C5 PUSH BC 295A: CD FD 19 CALL #19FD 295D: C1 POP BC 295E: E1 POP HL 295F: 36 00 LD (HL),#00 2961: 21 25 5D LD HL,BUFFER 2964: CD 32 1E CALL MAKE_ROOM 2967: 2A 11 5D LD HL,(COM_ADDR) 296A: 01 01 01 LD BC,#0101 296D: 09 ADD HL,BC 296E: 18 1F JR DONE KILL_BUFFER: 2970: E5 PUSH HL 2971: D5 PUSH DE 2972: C5 PUSH BC 2973: F5 PUSH AF 2974: 21 0C 5D LD HL,BUFF_FLAG 2977: 7E LD A,(HL) 2978: B7 OR A 2979: 20 17 JR NZ,ALREADY 297B: 36 FF LD (HL),#FF 297D: 21 25 5D LD HL,BUFFER 2980: 01 01 01 LD BC,#0101 2983: CD 2E 1E CALL RECLAIM_2 2986: B7 OR A 2987: 01 01 01 LD BC,#0101 298A: 2A 11 5D LD HL,(COM_ADDR) 298D: ED 42 SBC HL,BC DONE: 298F: 22 11 5D LD (COM_ADDR),HL ALREADY: 2992: F1 POP AF 2993: C1 POP BC 2994: D1 POP DE 2995: E1 POP HL 2996: C9 RET 40_TRACKS: 2997: AF XOR A TRACKS: 2998: 32 D7 5C LD (SC_0B),A 299B: CD 75 1D CALL QUIT_SYNTAX_Z 299E: CD 2B 04 CALL CHECK_EOL 29A1: CA 1A 1D JP Z,ERROR_SYNTAX 29A4: CD 11 3E CALL GET_DRIVE_TYPE 29A7: 3A D7 5C LD A,(SC_0B) 29AA: 77 LD (HL),A 29AB: C3 E1 03 JP REPORT_OK 80_TRACKS: 29AE: 3E 80 LD A,#80 29B0: 18 E6 JR TRACKS 29B2: DB #0D,"*ERROR*",#0D+#80 29BB: DB #0D,"No space",#0D+#80 29C5: DB #0D,"File exists",#0D+#80 29D2: DB " Free",#0D+#80 29D8: DB #0D,"Read Onl",'Y'+#80 29E2: DB #0D,"Disc Erro",'r'+#80 29ED: DB #0D,"Rec. O/",'F'+#80 29F7: DB "Title:",' '+#80 29FE: DB #0D,"Retry,Abort,Ignore?",#00 2A13: DB #0D,"Trk",' '+#80 2A18: DB " sec",' '+#80 2A1D: DB " Del. File",#0D+#80 2A28: DB #0D,"No File(s)",#0D+#80 2A34: DB #00 MOVE_SWITCHER: 2A35: 21 41 2A LD HL,SET_128_ROM1 2A38: 11 80 40 LD DE,#4080 2A3B: 01 20 00 LD BC,#0020 2A3E: ED B0 LDIR 2A40: C9 RET SET_128_ROM1: 2A41: 3A B5 03 LD A,(#03B5) 2A44: FE F3 CP #F3 2A46: 3E 10 LD A,#10 2A48: 28 01 JR Z,#2A4B 2A4A: AF XOR A 2A4B: 32 01 5C LD (KSTATE+1),A 2A4E: 01 FD 7F LD BC,#7FFD 2A51: 3E 10 LD A,#10 2A53: ED 79 OUT (C),A 2A55: C9 RET MAGIC: 2A56: F5 PUSH AF 2A57: C5 PUSH BC 2A58: D5 PUSH DE 2A59: E5 PUSH HL 2A5A: DD E5 PUSH IX 2A5C: FD E5 PUSH IY 2A5E: D9 EXX 2A5F: C5 PUSH BC 2A60: D5 PUSH DE 2A61: E5 PUSH HL 2A62: 08 EX AF,AF' 2A63: F5 PUSH AF 2A64: ED 57 LD A,I 2A66: F5 PUSH AF 2A67: ED 5F LD A,R 2A69: F5 PUSH AF 2A6A: 21 00 00 LD HL,#0000 2A6D: 39 ADD HL,SP 2A6E: E5 PUSH HL 2A6F: 3E 3C LD A,#3C 2A71: D3 FF OUT (#FF),A 2A73: 3E 3F LD A,#3F 2A75: ED 47 LD I,A 2A77: DB 1F IN A,(#1F) 2A79: E6 80 AND #80 2A7B: 0F RRCA 2A7C: 0F RRCA 2A7D: 0F RRCA 2A7E: 32 01 5C LD (KSTATE+1),A 2A81: CD 65 2F CALL #2F65 2A84: CD A0 3E CALL #3EA0 2A87: CD A0 3E CALL #3EA0 2A8A: 11 0A 00 LD DE,#000A 2A8D: 21 00 40 LD HL,#4000 2A90: E5 PUSH HL 2A91: CD 73 2D CALL #2D73 2A94: 21 00 41 LD HL,#4100 2A97: 11 0B 00 LD DE,#000B 2A9A: CD 73 2D CALL #2D73 2A9D: E1 POP HL 2A9E: E5 PUSH HL 2A9F: 11 08 00 LD DE,#0008 2AA2: CD 1B 2F CALL #2F1B 2AA5: 21 E3 40 LD HL,#40E3 2AA8: 7E LD A,(HL) 2AA9: 32 00 5C LD (KSTATE),A 2AAC: 23 INC HL 2AAD: 7E LD A,(HL) 2AAE: 34 INC (HL) 2AAF: 23 INC HL 2AB0: 5E LD E,(HL) 2AB1: 23 INC HL 2AB2: 56 LD D,(HL) 2AB3: B7 OR A 2AB4: EB EX DE,HL 2AB5: 11 C0 00 LD DE,#00C0 2AB8: ED 52 SBC HL,DE 2ABA: 22 E5 40 LD (#40E5),HL 2ABD: 21 00 40 LD HL,#4000 2AC0: 11 08 00 LD DE,#0008 2AC3: CD 73 2D CALL #2D73 2AC6: E1 POP HL 2AC7: ED 5B E1 40 LD DE,(#40E1) 2ACB: D5 PUSH DE 2ACC: 11 0A 00 LD DE,#000A 2ACF: CD 1B 2F CALL #2F1B 2AD2: D1 POP DE 2AD3: CD 4C 2D CALL #2D4C 2AD6: D5 PUSH DE 2AD7: 3E 3C LD A,#3C 2AD9: D3 FF OUT (#FF),A 2ADB: CD 65 2F CALL #2F65 2ADE: 21 00 40 LD HL,#4000 2AE1: 11 08 00 LD DE,#0008 2AE4: 06 01 LD B,#01 2AE6: CD 1B 2F CALL #2F1B 2AE9: D1 POP DE 2AEA: 2A E1 40 LD HL,(#40E1) 2AED: ED 53 E1 40 LD (#40E1),DE 2AF1: E5 PUSH HL 2AF2: 21 00 40 LD HL,#4000 2AF5: 11 08 00 LD DE,#0008 2AF8: 06 01 LD B,#01 2AFA: CD 73 2D CALL #2D73 2AFD: 3A E4 40 LD A,(#40E4) 2B00: 3D DEC A 2B01: CD E5 2C CALL #2CE5 2B04: 36 40 LD (HL),'@' 2B06: 23 INC HL 2B07: 06 07 LD B,#07 2B09: 36 20 LD (HL),' ' 2B0B: 23 INC HL 2B0C: 10 FB DJNZ #2B09 2B0E: 36 43 LD (HL),'C' 2B10: D1 POP DE 2B11: C1 POP BC 2B12: 23 INC HL 2B13: 71 LD (HL),C 2B14: 23 INC HL 2B15: 70 LD (HL),B 2B16: 23 INC HL 2B17: 23 INC HL 2B18: 23 INC HL 2B19: 36 C0 LD (HL),#C0 2B1B: 23 INC HL 2B1C: 73 LD (HL),E 2B1D: 23 INC HL 2B1E: 72 LD (HL),D 2B1F: 21 00 40 LD HL,#4000 2B22: 11 00 00 LD DE,#0000 2B25: DB 5F IN A,(#5F) 2B27: 3D DEC A 2B28: 5F LD E,A 2B29: 06 01 LD B,#01 2B2B: CD 73 2D CALL #2D73 2B2E: 21 00 00 LD HL,#0000 2B31: 39 ADD HL,SP 2B32: 22 40 41 LD (#4140),HL 2B35: 31 FF 41 LD SP,#41FF 2B38: CD 35 2A CALL MOVE_SWITCHER 2B3B: 21 00 C0 LD HL,#C000 2B3E: AF XOR A SUM_CURR_RAM_PAGE: 2B3F: 86 ADD A,(HL) 2B40: 23 INC HL 2B41: 47 LD B,A 2B42: 7C LD A,H 2B43: B7 OR A 2B44: 78 LD A,B 2B45: 20 F8 JR NZ,SUM_CURR_RAM_PAGE 2B47: 21 00 41 LD HL,#4100 2B4A: 77 LD (HL),A 2B4B: E5 PUSH HL 2B4C: 21 58 2B LD HL,#2B58 2B4F: E5 PUSH HL 2B50: 21 2F 3D LD HL,RET_TR_ROM 2B53: E5 PUSH HL 2B54: F3 DI 2B55: C3 80 40 JP #4080 2B58: E1 POP HL 2B59: 01 FD 7F LD BC,#7FFD 2B5C: 3E AA LD A,#AA 2B5E: 32 30 41 LD (#4130),A 2B61: 16 05 LD D,#05 2B63: 3A 01 5C LD A,(KSTATE+1) 2B66: B2 OR D 2B67: 57 LD D,A 2B68: ED 51 OUT (C),D 2B6A: 3A 30 C1 LD A,(#C130) 2B6D: FE AA CP #AA 2B6F: C2 1B 2C JP NZ,NOT_128K 2B72: 7A LD A,D 2B73: E6 F8 AND #F8 2B75: 57 LD D,A 2B76: 23 INC HL 2B77: 06 08 LD B,#08 FIND_CURRENT_PAGE: 2B79: 72 LD (HL),D 2B7A: ED 51 OUT (C),D 2B7C: AF XOR A 2B7D: 21 00 C0 LD HL,#C000 SUM_RAM_PAGE: 2B80: 86 ADD A,(HL) 2B81: 23 INC HL 2B82: 5F LD E,A 2B83: 7C LD A,H 2B84: B7 OR A 2B85: 7B LD A,E 2B86: 20 F8 JR NZ,SUM_RAM_PAGE 2B88: 21 00 41 LD HL,#4100 2B8B: BE CP (HL) 2B8C: 23 INC HL 2B8D: 28 04 JR Z,PAGE_WAS_CURRENT 2B8F: 14 INC D 2B90: 10 E7 DJNZ FIND_CURRENT_PAGE 2B92: 15 DEC D PAGE_WAS_CURRENT: 2B93: 06 08 LD B,#08 2B95: C5 PUSH BC 2B96: CD 37 2C CALL #2C37 2B99: C1 POP BC 2B9A: 10 F9 DJNZ #2B95 2B9C: 0E 00 LD C,#00 2B9E: CD 3A 2F CALL #2F3A 2BA1: CD 2A 2D CALL #2D2A 2BA4: 3A E4 40 LD A,(#40E4) 2BA7: 32 02 41 LD (#4102),A 2BAA: 3C INC A 2BAB: 32 E4 40 LD (#40E4),A 2BAE: 2A E5 40 LD HL,(#40E5) 2BB1: 11 01 00 LD DE,#0001 2BB4: ED 52 SBC HL,DE 2BB6: 22 E5 40 LD (#40E5),HL 2BB9: D8 RET C 2BBA: 2A E1 40 LD HL,(#40E1) 2BBD: 22 1E 41 LD (#411E),HL 2BC0: CD 1E 2D CALL #2D1E 2BC3: 3E 38 LD A,'8' 2BC5: 32 11 41 LD (#4111),A 2BC8: 3E 01 LD A,#01 2BCA: 32 1D 41 LD (#411D),A 2BCD: 21 00 41 LD HL,#4100 2BD0: 22 19 41 LD (#4119),HL 2BD3: 21 00 01 LD HL,#0100 2BD6: 22 1B 41 LD (#411B),HL 2BD9: ED 5B E1 40 LD DE,(#40E1) 2BDD: CD 65 2F CALL #2F65 2BE0: 4A LD C,D 2BE1: CD 3A 2F CALL #2F3A 2BE4: 21 00 41 LD HL,#4100 2BE7: 06 01 LD B,#01 2BE9: CD 58 2D CALL #2D58 2BEC: ED 53 E1 40 LD (#40E1),DE 2BF0: 0E 00 LD C,#00 2BF2: CD 3A 2F CALL #2F3A 2BF5: CD 34 2D CALL #2D34 2BF8: 3A 02 41 LD A,(#4102) 2BFB: CD E5 2C CALL #2CE5 2BFE: 11 10 41 LD DE,#4110 2C01: 01 10 00 LD BC,#0010 2C04: EB EX DE,HL 2C05: ED B0 LDIR 2C07: DB 5F IN A,(#5F) 2C09: 3D DEC A 2C0A: 5F LD E,A 2C0B: 16 00 LD D,#00 2C0D: 21 00 40 LD HL,#4000 2C10: CD 73 2D CALL #2D73 2C13: 01 FD 7F LD BC,#7FFD 2C16: 3A 01 41 LD A,(#4101) 2C19: ED 79 OUT (C),A NOT_128K: 2C1B: 2A 40 41 LD HL,(#4140) 2C1E: F9 LD SP,HL 2C1F: 21 00 40 LD HL,#4000 2C22: 11 0A 00 LD DE,#000A 2C25: CD 1B 2F CALL #2F1B 2C28: 21 00 41 LD HL,#4100 2C2B: 11 0B 00 LD DE,#000B 2C2E: CD 1B 2F CALL #2F1B 2C31: 3E 3C LD A,3C 2C33: F5 PUSH AF 2C34: C3 BC 2E JP #2EBC 2C37: 78 LD A,B 2C38: 3D DEC A 2C39: 32 03 41 LD (#4103),A 2C3C: 47 LD B,A 2C3D: 3A 01 41 LD A,(#4101) 2C40: E6 07 AND #07 2C42: B8 CP B 2C43: C8 RET Z 2C44: 3E 02 LD A,#02 2C46: B8 CP B 2C47: C8 RET Z 2C48: 3A 01 41 LD A,(#4101) 2C4B: E6 08 AND #08 2C4D: 28 06 JR Z,#2C55 2C4F: 78 LD A,B 2C50: FE 07 CP #07 2C52: C8 RET Z 2C53: 18 04 JR #2C59 2C55: 78 LD A,B 2C56: FE 05 CP #05 2C58: C8 RET Z 2C59: CD 5D 2C CALL #2C5D 2C5C: C9 RET 2C5D: 21 01 41 LD HL,#4101 2C60: 7E LD A,(HL) 2C61: E6 F8 AND #F8 2C63: 4F LD C,A 2C64: 78 LD A,B 2C65: B1 OR C 2C66: C5 PUSH BC 2C67: 01 FD 7F LD BC,#7FFD 2C6A: ED 79 OUT (C),A 2C6C: C1 POP BC 2C6D: 21 00 C0 LD HL,#C000 FIND_NONZERO: 2C70: 7E LD A,(HL) 2C71: B7 OR A 2C72: 20 06 JR NZ,PAGE_NOT_EMPTY 2C74: 23 INC HL 2C75: 7C LD A,H 2C76: B7 OR A 2C77: 20 F7 JR NZ,FIND_NONZERO 2C79: C9 RET PAGE_NOT_EMPTY: 2C7A: CD 7E 2C CALL #2C7E 2C7D: C9 RET 2C7E: 0E 00 LD C,#00 2C80: CD 3A 2F CALL #2F3A 2C83: CD 2A 2D CALL #2D2A 2C86: 3A E4 40 LD A,(#40E4) 2C89: 32 02 41 LD (#4102),A 2C8C: 3C INC A 2C8D: 32 E4 40 LD (#40E4),A 2C90: 2A E5 40 LD HL,(#40E5) 2C93: 11 40 00 LD DE,#0040 2C96: ED 52 SBC HL,DE 2C98: 22 E5 40 LD (#40E5),HL 2C9B: D8 RET C 2C9C: 2A E1 40 LD HL,(#40E1) 2C9F: 22 1E 41 LD (#411E),HL 2CA2: CD 1E 2D CALL #2D1E 2CA5: 3E 40 LD A,'@' 2CA7: 32 1D 41 LD (#411D),A 2CAA: 21 00 C0 LD HL,#C000 2CAD: 22 19 41 LD (#4119),HL 2CB0: 21 00 40 LD HL,#4000 2CB3: 22 1B 41 LD (#411B),HL 2CB6: ED 5B E1 40 LD DE,(#40E1) 2CBA: CD 3E 2D CALL #2D3E 2CBD: ED 53 E1 40 LD (#40E1),DE 2CC1: 0E 00 LD C,#00 2CC3: CD 3A 2F CALL #2F3A 2CC6: CD 34 2D CALL #2D34 2CC9: 3A 02 41 LD A,(#4102) 2CCC: CD E5 2C CALL #2CE5 2CCF: 11 10 41 LD DE,#4110 2CD2: 01 10 00 LD BC,#0010 2CD5: EB EX DE,HL 2CD6: ED B0 LDIR 2CD8: DB 5F IN A,(#5F) 2CDA: 3D DEC A 2CDB: 5F LD E,A 2CDC: 16 00 LD D,#00 2CDE: 21 00 40 LD HL,#4000 2CE1: CD 73 2D CALL #2D73 2CE4: C9 RET 2CE5: 4F LD C,A 2CE6: E6 F0 AND #F0 2CE8: 0F RRCA 2CE9: 0F RRCA 2CEA: 0F RRCA 2CEB: 0F RRCA 2CEC: 47 LD B,A 2CED: C5 PUSH BC 2CEE: 58 LD E,B 2CEF: 16 00 LD D,#00 2CF1: 21 00 40 LD HL,#4000 2CF4: D5 PUSH DE 2CF5: CD 1B 2F CALL #2F1B 2CF8: D1 POP DE 2CF9: C1 POP BC 2CFA: 06 00 LD B,#00 2CFC: 79 LD A,C 2CFD: E6 0F AND #0F 2CFF: 07 RLCA 2D00: 07 RLCA 2D01: 07 RLCA 2D02: 07 RLCA 2D03: 21 00 40 LD HL,#4000 2D06: 85 ADD A,L 2D07: 6F LD L,A 2D08: C9 RET 2D09: 21 10 41 LD HL,#4110 2D0C: 06 09 LD B,#09 2D0E: 36 20 LD (HL),' ' 2D10: 23 INC HL 2D11: 10 FB DJNZ #2D0E 2D13: 3E 40 LD A,'@' 2D15: 32 10 41 LD (#4110),A 2D18: 3E 43 LD A,'C' 2D1A: 32 18 41 LD (#4118),A 2D1D: C9 RET 2D1E: CD 09 2D CALL #2D09 2D21: 3A 03 41 LD A,(#4103) 2D24: C6 30 ADD A,'0' 2D26: 32 11 41 LD (#4111),A 2D29: C9 RET 2D2A: 21 00 40 LD HL,#4000 2D2D: 11 08 00 LD DE,#0008 2D30: CD 1B 2F CALL #2F1B 2D33: C9 RET 2D34: 21 00 40 LD HL,#4000 2D37: 11 08 00 LD DE,#0008 2D3A: CD 73 2D CALL #2D73 2D3D: C9 RET 2D3E: CD 65 2F CALL #2F65 2D41: 4A LD C,D 2D42: CD 3A 2F CALL #2F3A 2D45: 21 00 C0 LD HL,#C000 2D48: 06 40 LD B,'@' 2D4A: 18 0C JR #2D58 2D4C: CD 65 2F CALL #2F65 2D4F: 4A LD C,D 2D50: CD 3A 2F CALL #2F3A 2D53: 21 00 40 LD HL,#4000 2D56: 06 C0 LD B,#C0 2D58: C5 PUSH BC 2D59: D5 PUSH DE 2D5A: CD 73 2D CALL #2D73 2D5D: 11 00 01 LD DE,#0100 2D60: 19 ADD HL,DE 2D61: D1 POP DE 2D62: 1C INC E 2D63: 7B LD A,E 2D64: FE 10 CP #10 2D66: 20 07 JR NZ,#2D6F 2D68: 1E 00 LD E,#00 2D6A: 14 INC D 2D6B: 4A LD C,D 2D6C: CD 3A 2F CALL #2F3A 2D6F: C1 POP BC 2D70: 10 E6 DJNZ #2D58 2D72: C9 RET 2D73: 7B LD A,E 2D74: 3C INC A 2D75: D3 5F OUT (#5F),A 2D77: E5 PUSH HL 2D78: 16 14 LD D,#14 2D7A: D5 PUSH DE 2D7B: F3 DI 2D7C: 0E 7F LD C,#7F 2D7E: 3E A0 LD A,#A0 2D80: D3 1F OUT (#1F),A 2D82: CD CA 3F CALL #3FCA 2D85: D1 POP DE 2D86: E1 POP HL 2D87: DB 1F IN A,(#1F) 2D89: E6 7F AND #7F 2D8B: C8 RET Z 2D8C: 15 DEC D 2D8D: E5 PUSH HL 2D8E: D5 PUSH DE 2D8F: 20 EA JR NZ,#2D7B 2D91: 76 HALT 2D92: 2A E6 5C LD HL,(FILE_START) 2D95: ED 5B EB 5C LD DE,(FIRST_SEC) 2D99: 3A EA 5C LD A,(N_SECTORS) 2D9C: 47 LD B,A 2D9D: CD 3D 1E CALL READ_BUFF 2DA0: C9 RET GOTO: 2DA1: CD DF 1D CALL EVAL_EXPR 2DA4: CD 75 1D CALL QUIT_SYNTAX_Z 2DA7: CD 2E 10 CALL DEFINE_FILE_TYPE 2DAA: CD 57 1C CALL PREPARE_FILENAME 2DAD: ED 43 20 40 LD (#4020),BC 2DB1: 79 LD A,C 2DB2: FE 08 CP #08 2DB4: 30 1C JR NC,#2DD2 2DB6: CD 05 04 CALL CHECK_DISK_TYPE 2DB9: CD B3 1C CALL FIND_NAME_1 2DBC: C2 D9 03 JP NZ,REP_NO_FILE 2DBF: 21 DD 5C LD HL,FILE_NAME 2DC2: ED 4B 20 40 LD BC,(#4020) 2DC6: 09 ADD HL,BC 2DC7: 36 38 LD (HL),'8' 2DC9: E5 PUSH HL 2DCA: CD B3 1C CALL FIND_NAME_1 2DCD: E1 POP HL 2DCE: 28 08 JR Z,#2DD8 2DD0: 36 20 LD (HL),' ' 2DD2: CD B3 1C CALL FIND_NAME_1 2DD5: C3 33 2E JP #2E33 2DD8: CD 5D 16 CALL READ_HEADER_1 2DDB: CD 92 2D CALL #2D92 2DDE: 31 FF 40 LD SP,#40FF 2DE1: 06 08 LD B,#08 2DE3: C5 PUSH BC 2DE4: 78 LD A,B 2DE5: 01 FD 7F LD BC,#7FFD 2DE8: 3D DEC A 2DE9: F5 PUSH AF 2DEA: F6 10 OR #10 2DEC: ED 79 OUT (C),A 2DEE: F1 POP AF 2DEF: C6 30 ADD A,'0' 2DF1: 21 DD 5C LD HL,FILE_NAME 2DF4: ED 4B 20 40 LD BC,(#4020) 2DF8: 09 ADD HL,BC 2DF9: 77 LD (HL),A 2DFA: CD B3 1C CALL FIND_NAME_1 2DFD: 20 06 JR NZ,#2E05 2DFF: CD 5D 16 CALL READ_HEADER_1 2E02: CD 92 2D CALL #2D92 2E05: C1 POP BC 2E06: 10 DB DJNZ #2DE3 2E08: 3E 20 LD A,' ' 2E0A: 21 DD 5C LD HL,FILE_NAME 2E0D: ED 4B 20 40 LD BC,(#4020) 2E11: 09 ADD HL,BC 2E12: 77 LD (HL),A 2E13: CD B3 1C CALL FIND_NAME_1 2E16: CD 5D 16 CALL READ_HEADER_1 2E19: C5 PUSH BC 2E1A: F5 PUSH AF 2E1B: 01 FD 7F LD BC,#7FFD 2E1E: 3A 01 41 LD A,(#4101) 2E21: ED 79 OUT (C),A 2E23: F1 POP AF 2E24: C1 POP BC 2E25: 18 12 JR #2E39 2E27: CD DF 1D CALL EVAL_EXPR 2E2A: CD 75 1D CALL QUIT_SYNTAX_Z 2E2D: CD 2E 10 CALL DEFINE_FILE_TYPE 2E30: CD 2F 29 CALL SEARCH_NAME 2E33: C2 D9 03 JP NZ,REP_NO_FILE 2E36: CD 5D 16 CALL READ_HEADER_1 2E39: 3A DD 5C LD A,(FILE_NAME) 2E3C: FE 24 CP '$' 2E3E: F3 DI 2E3F: 20 02 JR NZ,#2E43 2E41: ED 5E IM 2 2E43: 31 F0 40 LD SP,#40F0 2E46: CD 11 3E CALL GET_DRIVE_TYPE 2E49: 32 10 40 LD (#4010),A 2E4C: 3A 16 5D LD A,(SYS_REG) 2E4F: 32 11 40 LD (#4011),A 2E52: 2A E6 5C LD HL,(FILE_START) 2E55: E5 PUSH HL 2E56: ED 5B EB 5C LD DE,(FIRST_SEC) 2E5A: D5 PUSH DE 2E5B: 1C INC E 2E5C: 7B LD A,E 2E5D: FE 10 CP #10 2E5F: 20 03 JR NZ,#2E64 2E61: 1E 00 LD E,#00 2E63: 14 INC D 2E64: 4A LD C,D 2E65: CD 07 2F CALL #2F07 2E68: 3A 10 40 LD A,(#4010) 2E6B: E6 02 AND #02 2E6D: C4 0F 2F CALL NZ,#2F0F 2E70: 79 LD A,C 2E71: CD 50 2F CALL #2F50 2E74: 21 00 41 LD HL,#4100 2E77: 06 BF LD B,#BF 2E79: C5 PUSH BC 2E7A: D5 PUSH DE 2E7B: CD 1B 2F CALL #2F1B 2E7E: 11 00 01 LD DE,#0100 2E81: 19 ADD HL,DE 2E82: D1 POP DE 2E83: 1C INC E 2E84: 7B LD A,E 2E85: FE 10 CP #10 2E87: 20 13 JR NZ,#2E9C 2E89: 1E 00 LD E,#00 2E8B: 14 INC D 2E8C: 4A LD C,D 2E8D: CD 07 2F CALL #2F07 2E90: 3A 10 40 LD A,(#4010) 2E93: E6 02 AND #02 2E95: C4 0F 2F CALL NZ,#2F0F 2E98: 79 LD A,C 2E99: CD 50 2F CALL #2F50 2E9C: C1 POP BC 2E9D: 10 DA DJNZ #2E79 2E9F: D1 POP DE 2EA0: E1 POP HL 2EA1: F9 LD SP,HL 2EA2: 3A 11 40 LD A,(#4011) 2EA5: F5 PUSH AF 2EA6: 4A LD C,D 2EA7: CD 07 2F CALL #2F07 2EAA: 3A 10 40 LD A,(#4010) 2EAD: E6 02 AND #02 2EAF: C4 0F 2F CALL NZ,#2F0F 2EB2: 79 LD A,C 2EB3: CD 50 2F CALL #2F50 2EB6: 21 00 40 LD HL,#4000 2EB9: CD 1B 2F CALL #2F1B 2EBC: F1 POP AF 2EBD: 08 EX AF,AF' 2EBE: F1 POP AF 2EBF: ED 4F LD R,A 2EC1: F1 POP AF 2EC2: ED 47 LD I,A 2EC4: F3 DI 2EC5: 3E FF LD A,#FF 2EC7: E2 CC 2E JP PO,#2ECC 2ECA: 3E 00 LD A,#00 2ECC: 32 00 5C LD (KSTATE),A 2ECF: F1 POP AF 2ED0: E1 POP HL 2ED1: D1 POP DE 2ED2: C1 POP BC 2ED3: D9 EXX 2ED4: 08 EX AF,AF' 2ED5: FD E1 POP IY 2ED7: DD E1 POP IX 2ED9: E1 POP HL 2EDA: D1 POP DE 2EDB: C1 POP BC 2EDC: 3A 48 5C LD A,(BORDCR) 2EDF: E6 38 AND #38 2EE1: 0F RRCA 2EE2: 0F RRCA 2EE3: 0F RRCA 2EE4: D3 FE OUT (#FE),A 2EE6: 3A 08 5B LD A,(#5B08) 2EE9: FE EE CP #EE 2EEB: 20 0A JR NZ,#2EF7 2EED: C5 PUSH BC 2EEE: 01 FD 7F LD BC,#7FFD 2EF1: 3A 5C 5B LD A,(#5B5C) 2EF4: ED 79 OUT (C),A 2EF6: C1 POP BC 2EF7: 3A 00 5C LD A,(KSTATE) 2EFA: B7 OR A 2EFB: 3E C9 LD A,#C9 2EFD: 32 00 5C LD (KSTATE),A 2F00: 20 01 JR NZ,#2F03 2F02: FB EI 2F03: F1 POP AF 2F04: C3 00 5C JP KSTATE 2F07: 3A 11 40 LD A,(#4011) 2F0A: F6 3C OR #3C 2F0C: D3 FF OUT (#FF),A 2F0E: C9 RET 2F0F: 79 LD A,C 2F10: B7 OR A 2F11: 1F RRA 2F12: 4F LD C,A 2F13: D0 RET NC 2F14: 3A 11 40 LD A,(#4011) 2F17: E6 6F AND #6F 2F19: 18 F1 JR #2F0C 2F1B: 7B LD A,E 2F1C: 3C INC A 2F1D: D3 5F OUT (#5F),A 2F1F: E5 PUSH HL 2F20: 16 14 LD D,#14 2F22: D5 PUSH DE 2F23: F3 DI 2F24: 0E 7F LD C,#7F 2F26: 3E 80 LD A,#80 2F28: D3 1F OUT (#1F),A 2F2A: CD E5 3F CALL #3FE5 2F2D: D1 POP DE 2F2E: E1 POP HL 2F2F: DB 1F IN A,(#1F) 2F31: E6 7F AND #7F 2F33: C8 RET Z 2F34: 15 DEC D 2F35: E5 PUSH HL 2F36: D5 PUSH DE 2F37: 20 EA JR NZ,#2F23 2F39: 76 HALT 2F3A: 3E 3C LD A,#3C 2F3C: D3 FF OUT (#FF),A 2F3E: 3A 00 5C LD A,(KSTATE) 2F41: E6 08 AND #08 2F43: 20 0A JR NZ,#2F4F 2F45: 79 LD A,C 2F46: B7 OR A 2F47: 1F RRA 2F48: 4F LD C,A 2F49: 30 04 JR NC,#2F4F 2F4B: 3E 2C LD A,#2C 2F4D: D3 FF OUT (#FF),A 2F4F: 79 LD A,C 2F50: D3 7F OUT (#7F),A 2F52: CD FD 3D CALL #3DFD 2F55: 3E 18 LD A,#18 2F57: D3 1F OUT (#1F),A 2F59: DB FF IN A,(#FF) 2F5B: E6 80 AND #80 2F5D: 28 FA JR Z,#2F59 2F5F: C5 PUSH BC 2F60: CD FD 3D CALL #3DFD 2F63: C1 POP BC 2F64: C9 RET 2F65: 3E 08 LD A,#08 2F67: 18 EE JR #2F57 ON_ERROR_1: 2F69: 2A 1C 5D LD HL,(SAVE_SP) 2F6C: 2B DEC HL 2F6D: 2B DEC HL 2F6E: F9 LD SP,HL 2F6F: C3 2F 1D JP ON_ERROR_2 CALL_BAS_1: 2F72: 22 02 5D LD (SAVE_HL),HL 2F75: ED 53 04 5D LD (SAVE_DE),DE 2F79: E1 POP HL 2F7A: 5E LD E,(HL) 2F7B: 23 INC HL 2F7C: 56 LD D,(HL) 2F7D: 23 INC HL 2F7E: E5 PUSH HL 2F7F: 21 2F 3D LD HL,RET_TR_ROM 2F82: E5 PUSH HL 2F83: D5 PUSH DE 2F84: 21 C2 5C LD HL,WITH_RET 2F87: E5 PUSH HL 2F88: 2A 02 5D LD HL,(SAVE_HL) 2F8B: ED 5B 04 5D LD DE,(SAVE_DE) 2F8F: C9 RET RESET_DOS: 2F90: 21 FF FF LD HL,#FFFF 2F93: 22 FA 5C LD (RATE_A),HL 2F96: 22 FC 5C LD (RATE_C),HL 2F99: 22 C8 5C LD (DRIVE_A),HL 2F9C: 22 CA 5C LD (DRIVE_C),HL 2F9F: AF XOR A 2FA0: 32 17 5D LD (#5D17),A 2FA3: 32 19 5D LD (DEFAULT_DRV),A 2FA6: 32 18 5D LD (SWAP_FLAG),A 2FA9: 32 0F 5D LD (TRDOS_ERR),A 2FAC: 32 1F 5D LD (#5D1F),A 2FAF: 3E FF LD A,#FF 2FB1: D3 FF OUT (#FF),A 2FB3: 32 3A 5C LD (ERR_NR),A 2FB6: 32 16 5D LD (SYS_REG),A 2FB9: 32 0C 5D LD (BUFF_FLAG),A 2FBC: 3E C9 LD A,#C9 2FBE: 32 C2 5C LD (WITH_RET),A 2FC1: 3E D0 LD A,#D0 2FC3: D3 1F OUT (#1F),A 2FC5: C9 RET 2FC6: CD 0C 05 CALL CHECK_BUFF_BOTTOM 2FC9: 7E LD A,(HL) 2FCA: B7 OR A 2FCB: CA AC 03 JP Z,#03AC 2FCE: FE 01 CP #01 2FD0: CC 07 05 CALL Z,ADD_#10_TO_HL 2FD3: C0 RET NZ 2FD4: 18 F0 JR #2FC6 2FD6: 06 01 LD B,#01 2FD8: 21 25 5D LD HL,BUFFER 2FDB: C3 67 1E JP #1E67 2FDE: E5 PUSH HL 2FDF: ED 5B F4 5C LD DE,(CUR_SEC) 2FE3: CD D6 2F CALL #2FD6 2FE6: 3A DB 5C LD A,(SC_0F) 2FE9: D1 POP DE 2FEA: B7 OR A 2FEB: C8 RET Z 2FEC: 4F LD C,A 2FED: 21 25 5D LD HL,BUFFER 2FF0: ED B0 LDIR 2FF2: C9 RET COMMANDS_OFFSET_TABLE: 2FF3: CF DB #CF ; OFFSET 00 - CAT 2FF4: 2A DB #2A ; OFFSET 01 - * 2FF5: D0 DB #D0 ; OFFSET 02 - FORMAT 2FF6: D1 DB #D1 ; OFFSET 03 - MOVE 2FF7: E6 DB #E6 ; OFFSET 04 - NEW 2FF8: D2 DB #D2 ; OFFSET 05 - ERASE 2FF9: EF DB #EF ; OFFSET 06 - LOAD 2FFA: F8 DB #F8 ; OFFSET 07 - SAVE 2FFB: FE DB #FE ; OFFSET 08 - RETURN 2FFC: BE DB #BE ; OFFSET 09 - PEEK 2FFD: F4 DB #F4 ; OFFSET 0A - POKE 2FFE: D5 DB #D5 ; OFFSET 0B - MERGE 2FFF: F7 DB #F7 ; OFFSET 0C - RUN 3000: D3 DB #D3 ; OFFSET 0D - OPEN# 3001: D4 DB #D4 ; OFFSET 0E - CLOSE# 3002: FF DB #FF ; OFFSET 0F - COPY 3003: 34 DB #34 ; OFFSET 10 - 4 3004: EC DB #EC ; OFFSET 11 - GO TO 3005: 38 DB #38 ; OFFSET 12 - 8 3006: F0 DB #F0 ; OFFSET 13 - LIST 3007: D6 DB #D6 ; OFFSET 14 - VERIFY COMMANDS_ROUTINES_TABLE: 3008: 33 04 DW CAT 300A: 18 10 DW ASTERISK_SET_DRIVE 300C: C2 1E DW FORMAT 300E: AB 16 DW MOVE 3010: 3A 05 DW NEW 3012: 87 07 DW ERASE 3014: 15 18 DW LOAD 3016: D0 1A DW SAVE 3018: FB 1C DW RETURN 301A: A5 19 DW PEEK 301C: A9 19 DW POKE 301E: B1 19 DW MERGE 3020: 4D 1D DW RUN 3022: 82 21 DW OPEN 3024: 56 26 DW CLOSE 3026: 90 06 DW COPY 3028: 97 29 DW 40_TRACKS 302A: A1 2D DW GOTO 302C: AE 29 DW 80_TRACKS 302E: CE 11 DW LIST 3030: 10 18 DW VERIFY 3032: 2A 59 5C LD HL,(E_LINE) 3035: 22 11 5D LD (COM_ADDR),HL 3038: 22 D9 5C LD (SC_0D),HL 303B: 3E FF LD A,#FF 303D: 32 D6 5C LD (SC_00),A 3040: 21 DB 5C LD HL,SC_0F 3043: 22 D7 5C LD (SC_0B),HL 3046: 18 0F JR #3057 3048: 22 11 5D LD (COM_ADDR),HL 304B: 22 D9 5C LD (SC_0D),HL 304E: CD E1 30 CALL #30E1 3051: C0 RET NZ 3052: 23 INC HL 3053: 23 INC HL 3054: 22 D7 5C LD (SC_0B),HL 3057: CD A9 30 CALL #30A9 305A: 20 2B JR NZ,#3087 305C: EB EX DE,HL 305D: 13 INC DE 305E: 06 00 LD B,#00 3060: 21 C8 31 LD HL,TOKENS_TABLE 3063: 09 ADD HL,BC 3064: 7E LD A,(HL) 3065: 2A D9 5C LD HL,(SC_0D) 3068: 77 LD (HL),A 3069: 23 INC HL 306A: EB EX DE,HL 306B: E7 RST CALL_BAS 306C: DD 19 DW DIFFER 306E: C5 PUSH BC 306F: E7 RST CALL_BAS 3070: E8 19 DW RECLAIM_2 3072: C1 POP BC 3073: 3A D6 5C LD A,(SC_00) 3076: B7 OR A 3077: 20 0E JR NZ,#3087 3079: 2A D7 5C LD HL,(SC_0B) 307C: 5E LD E,(HL) 307D: 23 INC HL 307E: 56 LD D,(HL) 307F: EB EX DE,HL 3080: B7 OR A 3081: ED 42 SBC HL,BC 3083: EB EX DE,HL 3084: 72 LD (HL),D 3085: 2B DEC HL 3086: 73 LD (HL),E 3087: 2A D9 5C LD HL,(SC_0D) 308A: 7E LD A,(HL) 308B: FE 0D CP #0D 308D: C8 RET Z 308E: 23 INC HL 308F: 22 D9 5C LD (SC_0D),HL 3092: 7E LD A,(HL) 3093: FE 0D CP #0D 3095: C8 RET Z 3096: FE 22 CP '"' 3098: 20 BD JR NZ,#3057 309A: 23 INC HL 309B: 7E LD A,(HL) 309C: FE 0D CP #0D 309E: C8 RET Z 309F: FE 22 CP '"' 30A1: 20 F7 JR NZ,#309A 30A3: 23 INC HL 30A4: 22 D9 5C LD (SC_0D),HL 30A7: 18 AE JR #3057 30A9: 2A D9 5C LD HL,(SC_0D) 30AC: 11 FD 30 LD DE,COMMANDS_TABLE 30AF: 0E 00 LD C,#00 30B1: 7E LD A,(HL) 30B2: E6 DF AND #DF 30B4: 47 LD B,A 30B5: B7 OR A 30B6: 20 03 JR NZ,#30BB 30B8: 23 INC HL 30B9: 18 F6 JR #30B1 30BB: 1A LD A,(DE) 30BC: E6 80 AND #80 30BE: 20 08 JR NZ,#30C8 30C0: 1A LD A,(DE) 30C1: B8 CP B 30C2: 20 15 JR NZ,#30D9 30C4: 23 INC HL 30C5: 13 INC DE 30C6: 18 E9 JR #30B1 30C8: 1A LD A,(DE) 30C9: E6 7F AND #7F 30CB: B8 CP B 30CC: C8 RET Z 30CD: 0C INC C 30CE: 2A D9 5C LD HL,(SC_0D) 30D1: 13 INC DE 30D2: 1A LD A,(DE) 30D3: FE FF CP #FF 30D5: 20 DA JR NZ,#30B1 30D7: B7 OR A 30D8: C9 RET 30D9: 13 INC DE 30DA: 1A LD A,(DE) 30DB: E6 80 AND #80 30DD: 28 FA JR Z,#30D9 30DF: 18 EC JR #30CD 30E1: 2A 45 5C LD HL,(PPC) 30E4: 23 INC HL 30E5: 23 INC HL 30E6: 7C LD A,H 30E7: B5 OR L 30E8: 28 0A JR Z,#30F4 30EA: AF XOR A 30EB: 32 D6 5C LD (SC_00),A 30EE: 2B DEC HL 30EF: 2B DEC HL 30F0: E7 RST CALL_BAS 30F1: 6E 19 DW LINE_ADDR 30F3: C9 RET 30F4: 3E FF LD A,#FF 30F6: 32 D6 5C LD (SC_00),A 30F9: 2A 59 5C LD HL,(E_LINE) 30FC: C9 RET COMMANDS_TABLE: 30FD: DB "SAVE",#80 3102: DB "SAV",'E'+#80 3106: DB "LOAD",#80 310B: DB "LOA",'D'+#80 310F: DB "RUN",#80 3113: DB "RU",'N'+#80 3116: DB "CAT",#80 311A: DB "CA",'T'+#80 311D: DB "ERASE",#80 3123: DB "ERAS",'E'+#80 3128: DB "NEW",#80 312C: DB "NE",'W'+#80 312F: DB "MOVE",#80 3134: DB "MOV",'E'+#80 3138: DB "MERGE",#80 313E: DB "MERG",'E'+#80 3143: DB "PEEK",#80 3148: DB "PEE",'K'+#80 314C: DB "POKE",#80 3151: DB "POK",'E'+#80 3155: DB "OPEN",#83 315A: DB "CLOSE",#83 3160: DB "CODE",#80 3165: DB "COD",'E'+#80 3169: DB "RND",#80 316D: DB "RN",'D'+#80 3170: DB "DATA",#80 3175: DB "DAT",'A'+#80 3179: DB "SCREEN",04,04+#80 3181: DB "SCREEN",04+#80 3188: DB "COPY",#80 318D: DB "COP",'Y'+#80 3191: DB "FORMAT",#80 3198: DB "FORMA",'T'+#80 319E: DB "GOTO",#80 31A3: DB "GOT",'O'+#80 31A7: DB "LIST",#80 31AC: DB "LIS",'T'+#80 31B0: DB "LINE",#80 31B5: DB "LIN",'E'+#80 31B9: DB "VERIFY",#80 31C0: DB "VERIF",'Y'+#80 31C6: DB #FF,#FF TOKENS_TABLE: 31C8: F8 F8 ; SAVE,SAVE 31CA: EF EF ; LOAD,LOAD 31CC: F7 F7 ; RUN,RUN 31CE: CF CF ; CAT,CAT 31D0: D2 D2 ; ERASE,ERASE 31D2: E6 E6 ; NEW,NEW 31D4: D1 D1 ; MOVE,MOVE 31D6: D5 D5 ; MERGE,MERGE 31D8: BE BE ; PEEK,PEEK 31DA: F4 F4 ; POKE,POKE 31DC: D3 ; OPEN# 31DD: D4 ; CLOSE# 31DE: AF AF ; CODE,CODE 31E0: A5 A5 ; RND,RND 31E2: E4 E4 ; DATA,DATA 31E4: AA AA ; SCREEN$,SCREEN$ 31E6: FF FF ; COPY,COPY 31E8: D0 D0 ; FORMAT,FORMAT 31EA: EC EC ; GOTO,GOTO 31EC: F0 F0 ; LIST,LIST 31EE: CA CA ; LINE,LINE 31F0: D6 D6 ; VERIFY,VERIFY 31F2: 00 DB 00 VARS_CHECK: 31F3: 2A 4F 5C LD HL,(CHANS) 31F6: B7 OR A 31F7: 01 25 5D LD BC,BUFFER 31FA: ED 42 SBC HL,BC 31FC: C9 RET 31FD: DB "SSP" TURBO_FMT?: 3200: 21 2C 32 LD HL,#322C 3203: DF RST PRINT_STRING 3204: CD 52 10 CALL INKEY 3207: FE 54 CP 'T' 3209: 28 0C JR Z,#3217 320B: 21 B9 1F LD HL,SEC_TABLE 320E: 22 E6 5C LD (FILE_START),HL 3211: 23 INC HL 3212: 22 E8 5C LD (FILE_LENGTH),HL 3215: 18 0A JR #3221 3217: 21 5A 32 LD HL,SEC_TURBO_TABLE 321A: 22 E6 5C LD (FILE_START),HL 321D: 23 INC HL 321E: 22 E8 5C LD (FILE_LENGTH),HL 3221: E7 RST CALL_BAS 3222: 6E DW CLS_LOWER 3224: 21 12 33 LD HL,#3312 3227: DF RST PRINT_STRING 3228: CD 11 3E CALL #3E11 322B: C9 RET 322C: DB "Press T for TURBO-FORMAT",#0D 3245: DB "Other key for FORMAT",#00 SEC_TURBO_TABLE: 325A: 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 326A: 01 REPEAT_FMT?: 326B: 3E 0D LD A,#0D 326D: D7 RST PRINT_CHAR 326E: 21 8C 32 LD HL,#328C 3271: DF RST PRINT_STRING 3272: CD 52 10 CALL INKEY 3275: FE 52 CP 'R' 3277: 28 03 JR Z,#327C 3279: C3 D3 01 JP MAIN 327C: E7 RST CALL_BAS 327D: 6E 0D DW CLS_LOWER 327F: E7 RST CALL_BAS 3280: 8E 02 DW KEY_SCAN 3282: 20 FB JR NZ,#327F 3284: E7 RST CALL_BAS 3285: 1E 03 DW K_TEST 3287: 38 F6 JR C,#327F 3289: C3 DD 1E JP FORMAT_1 328C: DB "Press R for repeat FORMAT",#0D 32A6: DB "Other key for TR-DOS", 32BA: DB #00 32BB: 21 BA 1F LD HL,SEC_TABLE+1 32BE: 22 E8 5C LD (FILE_LENGTH),HL 32C1: C3 7D 20 JP #207D 32C4: 32 E5 5C LD (FILE_TYPE),A 32C7: E7 RST CALL_BAS 32C8: 6E 0D DW CLS_LOWER 32CA: C9 RET 32CB: DB "HEAD ",#00 32D1: DB " CYLINDER ",#00 PRINT_HEAD_0: 32DD: B7 OR A PR_HEAD_CYLINDER: 32DE: D5 PUSH DE 32DF: F5 PUSH AF 32E0: 3E 16 LD A,#16 32E2: D7 RST PRINT_CHAR 32E3: 3A 6B 5C LD A,(DF_SZ) 32E6: 3D DEC A 32E7: D7 RST PRINT_CHAR 32E8: 3E 00 LD A,#00 32EA: D7 RST PRINT_CHAR 32EB: 21 CB 32 LD HL,#32CB 32EE: DF RST PRINT_STRING 32EF: F1 POP AF 32F0: 3E 30 LD A,'0' 32F2: CE 00 ADC A,#00 32F4: D7 RST PRINT_CHAR 32F5: 21 D1 32 LD HL,#32D1 32F8: DF RST PRINT_STRING 32F9: D1 POP DE 32FA: D5 PUSH DE 32FB: 4B LD C,E 32FC: 06 00 LD B,#00 32FE: CD A9 1D CALL OUT_NUM_BC 3301: D1 POP DE 3302: D5 PUSH DE 3303: 7B LD A,E 3304: FE 0A CP #0A 3306: 30 03 JR NC,#330B 3308: 3E 20 LD A,' ' 330A: D7 RST PRINT_CHAR 330B: D1 POP DE 330C: C3 FD 1F JP #1FFD PRINT_HEAD_1: 330F: 37 SCF 3310: 18 CC JR PR_HEAD_CYLINDER 3312: DB "HEAD 0 CYLINDER 0" 3324: DB #00,#00,#00,#00,#00,#00,#00,#00 332C - 3C00: FF FF FF FF ... 2260 (#8D4) bytes free.. 3C01: 18 03 JR #3C06 3C03: FF DB #FF 3C04: 18 03 JR #3C09 3C06: C3 00 3D JP TR_DOS 3C09: C3 03 3D JP SOS_CALL 3C0C - 3CF9: FF FF FF FF ... 237 (#ED) bytes free.. SWAP_CALL_1: 3CFA: C3 F1 20 JP SWAP_IF_NEED ASM_CALL_1: 3CFD: C3 3C 28 JP ASM_CALL_2 TR_DOS: 3D00: 00 NOP 3D01: 18 2E JR TR_DOS_1 SOS_CALL: 3D03: 00 NOP 3D04: 18 14 JR SOS_CALL_1 3D06: 00 NOP 3D07: C3 EF 25 JP #25EF 3D0A: C3 4A 24 JP #244A 3D0D: 00 NOP 3D0E: 18 FA JR #3D0A SWAP_CALL: 3D10: 00 NOP 3D11: 18 E7 JR SWAP_CALL_1 ASM_CALL: 3D13: 00 NOP 3D14: 18 E7 JR ASM_CALL_1 ON_ERROR: 3D16: 00 NOP 3D17: C3 69 2F JP ON_ERROR_1 SOS_CALL_1: 3D1A: CD 21 3D CALL MAKE_AREA_IF_NEED 3D1D: E5 PUSH HL 3D1E: C3 6C 01 JP SOS_CALL_2 MAKE_AREA_IF_NEED: 3D21: CD F3 31 CALL VARS_CHECK 3D24: 00 NOP 3D25: 00 NOP 3D26: DC 4C 3D CALL C,MAKE_AREA 3D29: 21 C2 5C LD HL,WITH_RET 3D2C: C9 RET 3D2D: 00 NOP 3D2E: 00 NOP RET_TR_ROM: 3D2F: 00 NOP 3D30: C9 RET TR_DOS_1: 3D31: CD 21 3D CALL MAKE_AREA_IF_NEED 3D34: E5 PUSH HL 3D35: C3 39 02 JP TR_DOS_2 TO_MEMBOT: 3D38: AF XOR A 3D39: D3 F7 OUT (#F7),A 3D3B: DB F7 IN A,(#F7) 3D3D: FE 1E CP #1E 3D3F: 28 03 JR Z,#3D44 3D41: FE 1F CP #1F 3D43: C0 RET NZ 3D44: CF RST 08 3D45: 31 DB #31 3D46: 3E 01 LD A,01 3D48: 32 EF 5C LD (I1_FLAG),A 3D4B: C9 RET MAKE_AREA: 3D4C: AF XOR A 3D4D: D3 FF OUT (#FF),A 3D4F: DB F6 IN A,(#F6) 3D51: 21 38 3D LD HL,TO_MEMBOT 3D54: 11 92 5C LD DE,MEMBOT 3D57: 01 14 00 LD BC,#0014 3D5A: ED B0 LDIR 3D5C: 21 67 3D LD HL,MAKE_AREA_1 3D5F: E5 PUSH HL 3D60: 21 2F 3D LD HL,RET_TR_ROM 3D63: E5 PUSH HL 3D64: C3 92 5C JP MEMBOT MAKE_AREA_1: 3D67: 21 90 2F LD HL,RESET_DOS 3D6A: E5 PUSH HL 3D6B: 21 2F 3D LD HL,RET_TR_ROM 3D6E: E5 PUSH HL 3D6F: 21 55 16 LD HL,#1655 ;MAKE_ROOM 3D72: E5 PUSH HL 3D73: 21 FF 5B LD HL,#5BFF 3D76: E5 PUSH HL 3D77: 36 C9 LD (HL),#C9 3D79: 21 B5 5C LD HL,P_RAMT+1 3D7C: 01 70 00 LD BC,#0070 3D7F: C9 RET PRINT_CR: 3D80: 3E 0D LD A,#0D PR_CHAR_1: 3D82: E5 PUSH HL 3D83: C5 PUSH BC 3D84: D5 PUSH DE 3D85: F5 PUSH AF 3D86: CD F1 20 CALL SWAP_IF_NEED 3D89: F1 POP AF PR_CHAR_2: 3D8A: CD 94 3D CALL PR_CHAR_3 3D8D: CD F1 20 CALL SWAP_IF_NEED 3D90: D1 POP DE 3D91: C1 POP BC 3D92: E1 POP HL 3D93: C9 RET PR_CHAR_3: 3D94: E7 RST CALL_BAS 3D95: 10 00 DW PRINT_A_1 3D97: C9 RET DISK_RESTORE: 3D98: 3E 08 LD A,#08 DISK_RESTORE_1: 3D9A: D3 1F OUT (#1F),A DISK_RST_LOOP: 3D9C: E5 PUSH HL 3D9D: E7 RST CALL_BAS 3D9E: 54 1F DW BREAK_KEY 3DA0: 38 03 JR C,DISK_RST_NO_BRK 3DA2: E7 RST CALL_BAS 3DA3: 7B 1B DW REPORT_L DISK_RST_NO_BRK: 3DA5: E1 POP HL 3DA6: DB FF IN A,(#FF) 3DA8: E6 80 AND #80 3DAA: 28 F0 JR Z,DISK_RST_LOOP 3DAC: C9 RET 3DAD: 3E 08 LD A,#08 3DAF: CD 9A 3D CALL DISK_RESTORE_1 3DB2: 11 00 00 LD DE,#0000 3DB5: DB 1F IN A,(#1F) 3DB7: E6 02 AND #02 3DB9: 47 LD B,A 3DBA: DB 1F IN A,(#1F) 3DBC: E6 02 AND #02 3DBE: B8 CP B 3DBF: C0 RET NZ 3DC0: 13 INC DE 3DC1: 7B LD A,E 3DC2: B2 OR D 3DC3: 20 F5 JR NZ,#3DBA 3DC5: C3 E7 3E JP #3EE7 3DC8: 3A 19 5D LD A,(DEFAULT_DRV) SET_DRIVE: 3DCB: 32 F6 5C LD (TMP_DRIVE),A 3DCE: 21 16 5D LD HL,SYS_REG 3DD1: 4F LD C,A 3DD2: 3E 3C LD A,#3C 3DD4: B1 OR C 3DD5: D3 FF OUT (#FF),A 3DD7: 77 LD (HL),A 3DD8: CD 08 3E CALL GET_RATE 3DDB: E6 80 AND #80 3DDD: 28 1B JR Z,#3DFA 3DDF: CD AD 3D CALL #3DAD 3DE2: CD 16 3E CALL #3E16 3DE5: CD 11 3E CALL GET_DRIVE_TYPE 3DE8: FE FF CP #FF 3DEA: 28 0E JR Z,#3DFA ; TR-DOS 5.03 have in adress #3DEA instruction JR NZ,#3DFA - This is ; all change in TR-DOS 5.03 and 5.04s. 3DEC: E5 PUSH HL 3DED: CD CA 1F CALL #1FCA 3DF0: E1 POP HL 3DF1: FE 50 CP #50 3DF3: 3E 00 LD A,#00 3DF5: 20 02 JR NZ,#3DF9 3DF7: 3E 80 LD A,#80 3DF9: 77 LD (HL),A 3DFA: CD 36 1E CALL #1E36 3DFD: 3E 50 LD A,#50 3DFF: 0E FF LD C,#FF 3E01: 0D DEC C 3E02: 20 FD JR NZ,#3E01 3E04: 3D DEC A 3E05: 20 F8 JR NZ,#3DFF 3E07: C9 RET GET_RATE: 3E08: 11 FA 5C LD DE,RATE_A GET_DRIVE_DATA: 3E0B: 2A F6 5C LD HL,(TMP_DRIVE) 3E0E: 19 ADD HL,DE 3E0F: 7E LD A,(HL) 3E10: C9 RET GET_DRIVE_TYPE: 3E11: 11 C8 5C LD DE,DRIVE_A 3E14: 18 F5 JR GET_DRIVE_DATA 3E16: CD 08 3E CALL GET_RATE 3E19: 06 08 LD B,#08 3E1B: 0E 04 LD C,#04 3E1D: 70 LD (HL),B 3E1E: 3E 08 LD A,#08 3E20: CD 9A 3D CALL DISK_RESTORE_1 3E23: 3E 20 LD A,#20 3E25: 06 0B LD B,#0B 3E27: CD 44 3E CALL #3E44 3E2A: 46 LD B,(HL) 3E2B: 3E 01 LD A,#01 3E2D: CD 44 3E CALL #3E44 3E30: DB 1F IN A,(#1F) 3E32: E6 04 AND #04 3E34: 20 09 JR NZ,#3E3F 3E36: AF XOR A 3E37: CD 44 3E CALL #3E44 3E3A: DB 1F IN A,(#1F) 3E3C: E6 04 AND #04 3E3E: C0 RET NZ 3E3F: 04 INC B 3E40: 0D DEC C 3E41: C8 RET Z 3E42: 18 D9 JR #3E1D 3E44: D3 7F OUT (#7F),A 3E46: 78 LD A,B 3E47: F6 18 OR #18 3E49: C3 00 08 JP #0800 3E4C: D3 7F OUT (#7F),A 3E4E: C5 PUSH BC 3E4F: 47 LD B,A 3E50: DB 3F IN A,(#3F) 3E52: B8 CP B 3E53: C1 POP BC 3E54: F5 PUSH AF 3E55: 78 LD A,B 3E56: F6 18 OR #18 3E58: CD 00 08 CALL #0800 3E5B: F1 POP AF 3E5C: C8 RET Z 3E5D: C5 PUSH BC 3E5E: CD FD 3D CALL #3DFD 3E61: C1 POP BC 3E62: C9 RET SET_TRACK: 3E63: 4F LD C,A 3E64: CD EB 1F CALL LOAD_SYS_REG 3E67: CD 11 3E CALL GET_DRIVE_TYPE 3E6A: E6 02 AND #02 3E6C: C4 AA 3E CALL NZ,SIDE_1_EVEN_TRACK 3E6F: C5 PUSH BC 3E70: CB 7E BIT 7,(HL) 3E72: 28 0F JR Z,#3E83 3E74: CB 46 BIT 0,(HL) 3E76: 20 0B JR NZ,#3E83 3E78: DB 3F IN A,(#3F) 3E7A: B9 CP C 3E7B: 28 05 JR Z,#3E82 3E7D: 07 RLCA 3E7E: D3 3F OUT (#3F),A 3E80: 79 LD A,C 3E81: 07 RLCA 3E82: 4F LD C,A 3E83: CD 08 3E CALL GET_RATE 3E86: 47 LD B,A 3E87: DB 3F IN A,(#3F) 3E89: B9 CP C 3E8A: C5 PUSH BC 3E8B: C4 FD 3D CALL NZ,#3DFD 3E8E: C1 POP BC 3E8F: 79 LD A,C 3E90: CD 4C 3E CALL #3E4C 3E93: C1 POP BC 3E94: 79 LD A,C 3E95: D3 3F OUT (#3F),A 3E97: 3A CD 5C LD A,(READY) 3E9A: B7 OR A 3E9B: C8 RET Z 3E9C: AF XOR A 3E9D: 32 CD 5C LD (READY),A 3EA0: 06 03 LD B,#03 3EA2: 3E FF LD A,#FF 3EA4: CD FF 3D CALL #3DFF 3EA7: 10 F9 DJNZ #3EA2 3EA9: C9 RET SIDE_1_EVEN_TRACK: 3EAA: 79 LD A,C 3EAB: B7 OR A 3EAC: 1F RRA 3EAD: 4F LD C,A 3EAE: D0 RET NC 3EAF: C3 F6 1F JP SELECT_SIDE_1 3EB2: CD EB 1F CALL LOAD_SYS_REG 3EB5: DB 1F IN A,(#1F) 3EB7: E6 80 AND #80 3EB9: 32 CD 5C LD (READY),A 3EBC: DB 3F IN A,(#3F) 3EBE: 67 LD H,A 3EBF: CD 44 3E CALL #3E44 3EC2: 0E 7F LD C,#7F 3EC4: 16 01 LD D,#01 3EC6: F3 DI 3EC7: 3E C0 LD A,#C0 3EC9: D3 1F OUT (#1F),A 3ECB: C5 PUSH BC 3ECC: 06 03 LD B,#03 3ECE: DB FF IN A,(#FF) 3ED0: E6 C0 AND #C0 3ED2: 20 1E JR NZ,#3EF2 3ED4: 13 INC DE 3ED5: 7B LD A,E 3ED6: B2 OR D 3ED7: 20 F5 JR NZ,#3ECE 3ED9: 10 F3 DJNZ #3ECE 3EDB: C1 POP BC 3EDC: FB EI 3EDD: 3E D0 LD A,#D0 3EDF: D3 1F OUT (#1F),A 3EE1: 3A D1 5C LD A,(#5CD1) 3EE4: FE FF CP #FF 3EE6: C8 RET Z 3EE7: CD 2B 27 CALL #272B 3EEA: 3E FF LD A,#FF 3EEC: 32 17 5D LD (#5D17),A 3EEF: C3 1B 27 JP REP_NO_DISK 3EF2: C1 POP BC 3EF3: ED 60 IN H,(C) 3EF5: DB FF IN A,(#FF) 3EF7: E6 C0 AND #C0 3EF9: 28 FA JR Z,#3EF5 3EFB: FB EI 3EFC: F8 RET M 3EFD: F3 DI 3EFE: DB 7F IN A,(#7F) 3F00: 18 F3 JR #3EF5 SET_SECTOR: 3F02: 32 FF 5C LD (SEC_RW),A 3F05: C9 RET SET_DMA: 3F06: 22 00 5D LD (BUFF_ADDR),HL 3F09: C9 RET WR_DEVICE_SEC: 3F0A: 3E A0 LD A,#A0 3F0C: 18 02 JR RW_DEVICE_SEC RD_DEVICE_SEC: 3F0E: 3E 80 LD A,#80 RW_DEVICE_SEC: 3F10: 32 FE 5C LD (CTRL_COM),A 3F13: 16 0A LD D,#0A RW_DEVICE_REPEAT: 3F15: D5 PUSH DE 3F16: F3 DI 3F17: 3A FF 5C LD A,(SEC_RW) 3F1A: 3C INC A 3F1B: D3 5F OUT (#5F),A 3F1D: 2A 00 5D LD HL,(BUFF_ADDR) 3F20: 0E 7F LD C,#7F 3F22: 3A FE 5C LD A,(CTRL_COM) 3F25: D3 1F OUT (#1F),A 3F27: FE A0 CP #A0 3F29: F5 PUSH AF 3F2A: CC BA 3F CALL Z,#3FBA 3F2D: F1 POP AF 3F2E: C4 D5 3F CALL NZ,#3FD5 3F31: D1 POP DE 3F32: FB EI 3F33: DB 1F IN A,(#1F) 3F35: 47 LD B,A 3F36: E6 7F AND #7F 3F38: C8 RET Z 3F39: 21 D8 29 LD HL,#29D8 3F3C: E6 40 AND #40 3F3E: 20 0B JR NZ,#3F4B 3F40: 78 LD A,B 3F41: E6 04 AND #04 3F43: 28 5B JR Z,#3FA0 3F45: 15 DEC D 3F46: 20 CD JR NZ,RW_DEVICE_REPEAT 3F48: 21 E2 29 LD HL,#29E2 3F4B: 3E D0 LD A,#D0 3F4D: D3 1F OUT (#1F),A 3F4F: 78 LD A,B 3F50: E6 01 AND #01 3F52: C2 E7 3E JP NZ,#3EE7 3F55: DB 3F IN A,(#3F) 3F57: B7 OR A 3F58: 20 05 JR NZ,#3F5F 3F5A: DB 5F IN A,(#5F) 3F5C: FE 0A CP #0A 3F5E: C8 RET Z 3F5F: E5 PUSH HL 3F60: CD 97 1D CALL CLS 3F63: E1 POP HL 3F64: DF RST PRINT_STRING 3F65: 21 13 2A LD HL,#2A13 3F68: DF RST PRINT_STRING 3F69: DB 3F IN A,(#3F) 3F6B: CD A3 1D CALL OUT_NUM_A 3F6E: 21 18 2A LD HL,#2A18 3F71: DF RST PRINT_STRING 3F72: DB 5F IN A,(#5F) 3F74: CD A3 1D CALL OUT_NUM_A 3F77: 21 FE 29 LD HL,#29FE 3F7A: DF RST PRINT_STRING 3F7B: CD 52 10 CALL INKEY 3F7E: FE 49 CP 'I' 3F80: C8 RET Z 3F81: FE 52 CP 'R' 3F83: 28 0F JR Z,#3F94 3F85: FE 41 CP 'A' 3F87: 20 F2 JR NZ,#3F7B 3F89: CD 2B 27 CALL #272B 3F8C: 3E 07 LD A,#07 3F8E: 32 0F 5D LD (TRDOS_ERR),A 3F91: C3 D3 01 JP MAIN 3F94: 3A F5 5C LD A,(CUR_TRK) 3F97: CD 63 3E CALL SET_TRACK 3F9A: CD A0 3E CALL #3EA0 3F9D: C3 13 3F JP #3F13 3FA0: 15 DEC D 3FA1: CA 48 3F JP Z,#3F48 3FA4: D5 PUSH DE 3FA5: CD 08 3E CALL GET_RATE 3FA8: E6 02 AND #02 3FAA: 20 01 JR NZ,#3FAD 3FAC: 34 INC (HL) 3FAD: CD 98 3D CALL DISK_RESTORE 3FB0: 3A F5 5C LD A,(CUR_TRK) 3FB3: CD 63 3E CALL SET_TRACK 3FB6: D1 POP DE 3FB7: C3 15 3F JP RW_DEVICE_REPEAT 3FBA: 06 04 LD B,#04 3FBC: DB FF IN A,(#FF) 3FBE: E6 C0 AND #C0 3FC0: 20 0F JR NZ,#3FD1 3FC2: 13 INC DE 3FC3: 7B LD A,E 3FC4: B2 OR D 3FC5: 20 F5 JR NZ,#3FBC 3FC7: 10 F3 DJNZ #3FBC 3FC9: C9 RET 3FCA: DB FF IN A,(#FF) 3FCC: E6 C0 AND #C0 3FCE: 28 FA JR Z,#3FCA 3FD0: F8 RET M 3FD1: ED A3 OUTI 3FD3: 18 F5 JR #3FCA 3FD5: 06 04 LD B,#04 3FD7: DB FF IN A,(#FF) 3FD9: E6 C0 AND #C0 3FDB: 20 0F JR NZ,#3FEC 3FDD: 13 INC DE 3FDE: 7B LD A,E 3FDF: B2 OR D 3FE0: 20 F5 JR NZ,#3FD7 3FE2: 10 F3 DJNZ #3FD7 3FE4: C9 RET 3FE5: DB FF IN A,(#FF) 3FE7: E6 C0 AND #C0 3FE9: 28 FA JR Z,#3FE5 3FEB: F8 RET M 3FEC: ED A2 INI 3FEE: 18 F5 JR #3FE5 3FF0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF