diff --git a/.gitignore b/.gitignore
index 54c2cad..7d38621 100644
--- a/.gitignore
+++ b/.gitignore
@@ -49,7 +49,6 @@ Manuals/
asm/CPM22-BIOS.asm
asm/MZ80AFI.asm.bak
asm/cpm22.mzf
-asm/dz80.ini
asm/old/
howto
roms/MZ80AFI.BIN
@@ -187,7 +186,6 @@ DSK
MZ800_IOCS.ref
asm/new/
asm/savit
-dz80.ini
full.asm
software.bak/
roms/data
@@ -196,7 +194,6 @@ roms/keymap_readme.txt
roms/split
roms/x
x/
-dz80.ini
full.asm
full.bin
MZ800_IOCS.ref
@@ -212,3 +209,59 @@ tools/fsck.cpm
tools/fsed.cpm
tools/mkfs.cpm
tools/share/
+BASIC_5Z008A.qd
+BASIC_5Z008A.qd.new
+BASIC_5Z008A.qd.new.2
+BASIC_5Z008A.qd.new.3
+BASIC_5Z008A_RFS.qd
+VERSION
+asm/rfs.rom
+asm/rfs.sym
+dis/1Z-013B/
+dis/MZ-2Z009E.bak2/
+dis/MZ-2Z009E/mz2z009e.ref
+dis/MZ-2Z009E/mz2z009e_annotated.asm
+dis/MZ-2Z009E/mz2z009e_dz80.asm.bak.v1.0A
+dis/MZ-2Z009E/mz2z009e_dz80.asm.bak.v1.0B
+dis/MZ-2Z009E/mz2z009e_dz80.asm.bak.v1.0D
+dis/MZ-2Z009E/mz2z009e_dz80.asm.bak.v1.0E
+dis/MZ-2Z009E/mz2z009e_dz80.asm.bak.v1.0F
+dis/MZ-2Z009E/mz2z009e_dz80.asm.bak.v1.0G
+dis/MZ-2Z009E/mz2z009e_dz80.asm.bak.v1.0H
+dis/MZ-2Z009E/mz2z009e_dz80.asm.bak.v1.0I
+dis/MZ-2Z009E/mz2z009e_dz80.asm.bak.v1.0J
+dis/MZ-2Z009E/mz2z009e_dz80.asm.bak.v1.0K
+dis/MZ-2Z009E/mz2z009e_labels.json
+dis/MZ-2Z009E/mz2z009e_rfs.bin.bak.v1.0A
+dis/MZ-2Z009E/mz2z009e_rfs.dsk
+dis/MZ-2Z009E/mz2z009e_rfs.dsk.bak.v1.0A
+dis/MZ-2Z009E/mz2z009e_rfs.dsk.bak.v1.0D
+dis/MZ-2Z009E/mz2z009e_rfs.dsk.bak.v1.0G
+dis/MZ-2Z009E/mz2z009e_rfs.dsk.bak.v1.0H
+dis/MZ-2Z009E/mz2z009e_rfs.dsk.bak.v1.0I
+dis/MZ-2Z009E/mz2z009e_rfs.dsk.bak.v1.0J
+dis/MZ-2Z009E/mz2z009e_rfs.dsk.bak.v1.0K
+dis/MZ-5Z008/mz5z008.asm.old
+dis/MZ-5Z008/mz5z008.qd
+dis/MZ-5Z008/mz5z008.ref
+dis/MZ-5Z008/mz5z008_dz80.asm.20260319-1600
+dis/MZ-5Z008/mz5z008_dz80.asm.20260319-1809
+dis/MZ-5Z008/mz5z008_dz80.asm.backup_20260319-213038
+dis/MZ-5Z008/mz5z008_dz80.asm.backup_20260319-dbg
+dis/MZ-5Z008/mz5z008_rfs.qd
+dis/MZ-5Z008/mz5z009_labels.json
+dis/MZ-5Z009.backup_before_glass_conversion/
+dis/MZ-5Z009/
+dis/dz80.ini
+dis/mz5z008.asm
+roms/dz80.ini
+roms/mz-1e14.asm
+roms/mz-1e14.ini
+roms/mz-1e14.ref
+roms/rfs_mrom_bank6.rom
+roms/rfs_mrom_bank7.rom
+roms/rfs_mrom_bank9.rom
+roms/rfs_mrom_msgs.rom
+roms/rfs_mrom_opcd6.rom
+roms/rfs_mrom_opcd7.rom
+
diff --git a/README.md b/README.md
index 014c611..89e2253 100644
--- a/README.md
+++ b/README.md
@@ -260,6 +260,44 @@ The full set of commands are listed in the table below:
If the 40/80 column card is installed, typing '4' switches to 40 Column display, typing '8' switches to 80 Column display. For the directory listing commands, 4 columns of output will be shown when in 80 column mode.
+--------------------------------------------------------------------------------------------------------
+
+### SFD700 Build Commands
+
+
+When RFS is built with the BUILD_SFD700 option enabled, it targets the Kersten & Partners SFD700 Floppy Disk Controller. This build supports the full set of RFS monitor commands but is tailored for the SFD700 hardware — SD Card commands are not available as the SFD700 does not include an SD Card interface, and display mode switching commands (40, 80, 700, 7008) are not included. In addition, the SFD700 build provides a built-in Z80 Assembler and Disassembler not present in other builds.
+
+
+The full set of commands available in the SFD700 build are listed in the table below:
+
+
+
+| Command | Parameters | Description |
+|-------------|--------------------------------------------------|------------------------------------------------------------------------------------|
+| ASM | \ | Invoke the built-in Z80 assembler starting at \\. |
+| B | n/a | Enable/Disable key entry beep\. |
+| BASIC | n/a | Locates BASIC SA-5510 in ROM, loads and runs it\. |
+| C | \[\<8 bit value\>\] | Initialise memory from 0x1200 \- Top of RAM with 0x00 or provided value\. |
+| CP | \ \ \ | Copy a block of memory\. Ie\. CP120020003FFF copies 0x3FFF bytes from 0x1200 to 0x2000\. |
+| CPM | n/a | Locates CP/M 2.23 in ROM, loads and runs it\. |
+| D | \\[\\] | Dump memory from \ to \ (or 20 lines) in hex and ascii. When a screen is full, the output is paused until a key is pressed\.
Subsequent 'D' commands without an address value continue on from last displayed address\.
Recognised keys during paging are:
'D' - page down, 'U' - page up, 'X' - exit, all other keys list another screen of data\.|
+| DASM | \\[\\] | Invoke the built-in Z80 disassembler from \ to \ (or until a key is pressed)\. |
+| F | n/a | Boot from the SFD700 Floppy Disk\. |
+| H | n/a | Help screen of all these commands\. |
+| IR | n/a | Paged directory listing of the files stored in ROM\. Each file title is preceded with a hex number which can be used to identify the file\. |
+| J | \ | Jump \(start execution\) at location \\. |
+| L \| LT | n/a | Load file into memory from Tape and execute\. |
+| LTNX | n/a | Load file into memory from Tape, dont execute\. |
+| LR | \ or
\ | Load file into memory from ROM\. The ROM is searched for a file with \ or \ and if found, loaded and executed\. |
+| LRNX | \ or
\ | Load file into memory from ROM\. The ROM is searched for a file with \ or \ and if found, loaded and not executed\. |
+| M | \ | Edit and change memory locations starting at \\. |
+| P | n/a | Run a test on connected printer\. |
+| R | n/a | Run a memory test on main memory\. |
+| S \| ST | \ \ \ | Save a block of memory to tape\. You will be prompted to enter the filename\.
Ie\. S120020001203 - Save starting at 0x1200 up until 0x2000 and set execution address to 0x1203\. |
+| T | n/a | Test the 8253 timer\. |
+| V | n/a | Verify a file just written to tape with the original data stored in memory\. |
+
+
--------------------------------------------------------------------------------------------------------
### Sharp MZ-700 Mode
diff --git a/asm/1z-013b.asm b/asm/1z-013b.asm
new file mode 100644
index 0000000..663ffd4
--- /dev/null
+++ b/asm/1z-013b.asm
@@ -0,0 +1,15770 @@
+; Disassembly of the file "1z-013b.bin"
+;
+; CPU Type: Z80
+;
+; Created with dZ80 2.1
+;
+; on Monday, 16 of March 2026 at 02:47 PM
+;
+LSD0 EQU 0D0H
+LSD1 EQU 0D1H
+LSD2 EQU 0D2H
+LSD3 EQU 0D3H
+LSD4 EQU 0D4H
+LSD5 EQU 0D5H
+LSD6 EQU 0D6H
+LSD7 EQU 0D7H
+LSE0 EQU 0E0H
+LSE1 EQU 0E1H
+LSE2 EQU 0E2H
+LSE3 EQU 0E3H
+LSE4 EQU 0E4H
+LSE5 EQU 0E5H
+LSE6 EQU 0E6H
+LSE8 EQU 0E8H
+APTS EQU 010F0H
+NAME EQU 010F1H
+SIZE EQU 01102H
+DTADR EQU 01104H
+EXADR EQU 01106H
+COMNT EQU 01108H
+DTEFG EQU 01171H
+DTEFGX EQU 01172H
+TEMPW EQU 01178H
+TMCNT EQU 01180H
+SUMDT EQU 01183H
+KEYBM1 EQU 0118AH
+KEYBUF EQU 0118BH
+DSPXY EQU 01171H
+TEXTST EQU 01070H
+TEXTED EQU 01072H
+VARST EQU 01074H
+STRST EQU 01076H
+VARED EQU 01078H
+TMPEND EQU 0107AH
+INTFAC EQU 0107CH
+MEMLMT EQU 0107EH
+MEMMAX EQU 01080H
+VRAM EQU 0D000H
+ARAM EQU 0D800H
+MMAPIO EQU 0E000H
+MEMSWAP EQU 0E008H
+SCRNEN EQU 0E010H
+SCRNDI EQU 0E014H
+INBUFC EQU 01352H
+INBUFL EQU 01353H
+INBUF EQU 01354H
+MONIT EQU 00000H
+GETL EQU 00003H
+LETNL EQU 00006H
+NL EQU 00009H
+PRNTS EQU 0000CH
+PRNTT EQU 0000FH
+PRNT EQU 00012H
+MSG EQU 00015H
+MSGX EQU 00018H
+GETKY EQU 0001BH
+BRKEY EQU 0001EH
+WRINF EQU 00021H
+WRDAT EQU 00024H
+RDINF EQU 00027H
+RDDAT EQU 0002AH
+VERFY EQU 0002DH
+MELDY EQU 00030H
+TIMST EQU 00033H
+TIMRD EQU 00036H
+BELL EQU 00039H
+XTEMP EQU 0003CH
+MSTA EQU 0003FH
+MSTP EQU 00042H
+RST38 EQU 00038H
+ATRB EQU 010F0H
+PRGSTART EQU 01200H
+BUILD_ORIG EQU 1
+BUILD_RFS EQU 0
+
+ ; Create an MZF Tape header.
+ ORG ATRB
+
+ ; Declare the MZF header to bootstrap BASIC from tape/SD.
+BOOTATRB: DB 01h ; Code Type, 01 = Machine Code.
+BOOTNAME: IF BUILD_ORIG = 1
+ DB "BASIC 1Z-013B ", 0Dh ; Title/Name (17 bytes).
+ ENDIF
+ IF BUILD_RFS = 1
+ DB "BASIC 1Z-013BRFS", 0Dh ; Title/Name (17 bytes).
+ ENDIF
+BOOTSIZE: DW BASICEND - TAPECOPY ; Size of program.
+BOOTDTADR: DW TAPECOPY ; Load address of program.
+BOOTEXADR: DW EXECSTART ; Exec address of program.
+BOOTCOMNT: DS 104
+
+ ORG PRGSTART
+
+TAPECOPY: JP 000DAH ; Cold start entry - JP to initialization
+
+ JP 00120H
+
+ JP 004FEH
+
+ JP 004FAH
+
+ JP 00531H
+
+ JP 00502H
+
+ JP 00533H
+
+ JP 004DAH
+
+ JP 004DAH
+
+ JP 002F0H
+
+ JP 004A0H
+
+ JP 00A3BH
+
+ JP 00A3FH
+
+ JP 00A7AH
+
+ JP 00A7EH
+
+ JP 00A94H
+
+ JP 008E4H
+
+ JP 00D5AH
+
+ EX DE,HL
+ NOP
+ JP 00DE4H
+
+ JP 00DA7H
+
+ JP 00A13H
+
+ JP 00A04H
+
+ JP 009B7H
+
+ JP 009D2H
+
+ DB 0C3H
+ DB 020H
+ DB 001H
+ DS 2, 000H
+ DB 0FFH
+ DB 000H
+ DB 0C3H
+ DB 0DAH
+ DB 004H
+L1254: DS 3, 000H
+ DB 018H
+ DB 0C3H
+ DB 053H
+ DB 002H
+ DB 000H
+ DB 027H
+L125D: DB 071H
+ DS 2, 000H
+ DB 0EFH
+ DB 0C3H
+ DB 06AH
+ DB 00EH
+ DS 3, 000H
+ DB 0E9H
+ DB 000H
+ DB 0E9H
+ DB 000H
+ DB 0E9H
+ DB 000H
+ DB 0E9H
+ DB 000H
+ DB 0E9H
+ DB 000H
+ DB 0FEH
+ DB 007H
+ DB 0F8H
+ DB 007H
+ DB 0E9H
+ DB 000H
+L1277: DB 0E9H
+ DB 000H
+ DB 0E9H
+ DB 000H
+ DB 0E9H
+ DB 000H
+ DB 0E9H
+ DB 000H
+ DB 0E9H
+ DB 000H
+ DB 08DH
+ DB 007H
+ DB 0E9H
+ DB 000H
+ DB 0E9H
+ DB 000H
+ DB 004H
+ DB 008H
+ DB 0B1H
+ DB 007H
+ DB LSD6
+ DB 007H
+ DB 0B7H
+ DB 007H
+ DB 0DBH
+ DB 007H
+ DB 0F9H
+ DB 006H
+ DB 01EH
+ DB 007H
+ DB 0FBH
+ DB 007H
+ DB 0A6H
+ DB 008H
+ DB 0F8H
+ DB 007H
+ DB 0E9H
+ DB 000H
+L129D: DB 08DH
+ DB 007H
+ DB 0E9H
+ DB 000H
+ DB 0E9H
+ DB 000H
+ DB 0E9H
+ DB 000H
+ DB 0E9H
+ DS 52, 000H ; Zero padding / work area
+ DI
+ LD SP,MONIT
+ IM 1
+ OUT (LSE1),A
+ XOR A
+ LD (L1819),A
+L12E6: JP 01822H
+
+ RET
+
+ DI
+ OUT (LSE3),A
+ LD A,(HL)
+ OUT (LSE1),A
+ EI
+ RET
+
+ DI
+ OUT (LSE3),A
+ LD (HL),A
+ OUT (LSE1),A
+ EI
+ RET
+
+ PUSH HL
+ LD HL,(00054H)
+ PUSH HL
+ PUSH DE
+ CALL 005AEH
+ POP DE
+ LD (HL),000H
+ POP HL
+ CALL 00120H
+ JR C,L131A ; (+00eH)
+ LD A,(0005BH)
+ SUB L
+ JR NC,L131A ; (+008H)
+ NEG
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ EX DE,HL
+ OR A
+L131A: POP HL
+ RET
+
+ DEC D
+L131D: LD D,010H
+ JR L12E6 ; (-03bH)
+
+ PUSH HL
+L1322: PUSH DE
+ JR L1329 ; (+004H)
+
+L1325: POP AF
+L1326: CALL 00A12H
+L1329: CALL 0025BH
+ CP 00DH
+ JP Z,001D7H
+ CP 01BH
+ JP Z,001ADH
+ PUSH AF
+ CP 020H
+ JR NC,L138A ; (+04fH)
+ JR L1390 ; (+053H)
+
+L133D: LD A,(0004DH)
+ OR A
+ JR NZ,L1360 ; (+01dH)
+ LD A,(00EE9H)
+ RRCA
+ JR C,L1360 ; (+017H)
+ LD A,(0004EH)
+ OR A
+ JR NZ,L1360 ; (+011H)
+ POP AF
+ LD HL,00129H
+ PUSH HL
+ CP 011H
+ JP Z,00655H
+ CP 012H
+ JP Z,0067DH
+ POP HL
+L135F: PUSH AF
+L1360: LD A,(0004DH)
+ OR A
+ JR Z,L138A ; (+024H)
+ LD HL,0011CH
+ POP AF
+ LD B,004H
+L136C: CP (HL)
+ JR Z,L1326 ; (-049H)
+ INC HL
+ DJNZ L136C ; (-006H)
+ PUSH AF
+ LD DE,(00054H)
+ LD HL,(0005BH)
+ CP 014H
+ JR Z,L1386 ; (+008H)
+ CP 012H
+ JR NZ,L138A ; (+008H)
+ LD HL,(00056H)
+ LD E,D
+L1386: LD A,L
+ CP E
+ JR NC,L1325 ; (-065H)
+L138A: POP AF
+ CALL 00533H
+ JR L1329 ; (-067H)
+
+L1390: LD A,(00060H)
+ CP 0FFH
+ JR NZ,L133D ; (-05aH)
+ POP AF
+ CP 017H
+ JR NC,L135F ; (-03dH)
+ CP 011H
+ JR C,L135F ; (-041H)
+ LD HL,(00EE9H)
+ BIT 6,L
+ JR Z,L135F ; (-048H)
+ CALL 0055EH
+ JP 00129H
+
+ SCF
+ PUSH AF
+ LD A,00DH
+ CALL 00533H
+ POP AF
+ POP DE
+ POP HL
+ POP BC
+ RET
+
+ CALL 005AEH
+L13BC: LD A,(HL)
+ OR A
+ RET Z
+ DEC HL
+ DEC E
+ LD A,(00056H)
+ CP E
+ JR C,L13BC ; (-00bH)
+ RET
+
+ CALL 005AEH
+L13CB: INC E
+ INC HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD A,(00057H)
+ CP E
+ JR NC,L13CB ; (-00bH)
+ RET
+
+ LD HL,(00054H)
+ CALL 001B9H
+ LD D,E
+ CALL 001CBH
+ LD A,(0005BH)
+ LD L,A
+ LD A,E
+ SUB D
+ LD E,A
+ LD H,D
+ LD D,L
+ CALL 005B9H
+ LD A,(0005CH)
+ SUB D
+ INC A
+ LD D,A
+ POP BC
+ PUSH BC
+ EXX
+ PUSH HL
+ LD HL,(0004FH)
+ EXX
+L13FB: PUSH DE
+ PUSH HL
+ CALL 000EAH
+ CALL 004B6H
+ INC HL
+ LD (BC),A
+ INC BC
+ EXX
+ DEC L
+ JR Z,L141D ; (+013H)
+ EXX
+L140B: DEC D
+ JP NZ,001FDH
+ POP HL
+ PUSH BC
+ LD BC,00028H
+L1414: ADD HL,BC
+ POP BC
+ POP DE
+ DEC E
+ JR NZ,L13FB ; (-01fH)
+ PUSH DE
+ PUSH HL
+L141C: EXX
+L141D: EXX
+ POP HL
+ POP DE
+ EXX
+ POP HL
+ EXX
+ XOR A
+ LD (BC),A
+ LD L,C
+ LD H,B
+ POP DE
+ PUSH DE
+ PUSH HL
+ OR A
+ SBC HL,DE
+ LD B,L
+ POP HL
+ LD A,020H
+ LD D,A
+ JP Z,001AEH
+ DEC HL
+L1436: LD A,(HL)
+ OR A
+ JR Z,L143F ; (+005H)
+ CP D
+ JR NZ,L1446 ; (+009H)
+ LD (HL),000H
+L143F: DEC HL
+ DJNZ L1436 ; (-00cH)
+ OR A
+ JP 001AEH
+
+L1446: LD A,(HL)
+ OR A
+ JR NZ,L144C ; (+002H)
+ LD (HL),020H
+L144C: DEC HL
+ DJNZ L1446 ; (-009H)
+ OR A
+ JP 001AEH
+
+ INC A
+ JP Z,002D8H
+ DEC A
+ JP Z,002F0H
+ CALL 002FAH
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ CALL 005B6H
+ CALL 000EAH
+ LD D,A
+ LD A,(00060H)
+ LD E,A
+ CALL 000F2H
+ XOR A
+ DI
+ OUT (LSE3),A
+ LD (MMAPIO),A
+ CPL
+ LD (MMAPIO),A
+ OUT (LSE1),A
+ EI
+ LD C,000H
+ EX AF,AF'
+ PUSH AF
+ CALL 00333H
+L1484: LD A,060H
+L1486: EX AF,AF'
+L1487: LD B,010H
+L1489: CALL 00313H
+ CALL 00333H
+ BIT 1,A
+ JR NZ,L1487 ; (-00cH)
+ DJNZ L1489 ; (-00cH)
+ BIT 0,A
+ JR Z,L14AA ; (+011H)
+ BIT 2,A
+ JR NZ,L14BB ; (+01eH)
+ EX AF,AF'
+ DEC A
+ JR NZ,L1486 ; (-01bH)
+ LD A,000H
+ OR A
+ JR NZ,L1487 ; (-01fH)
+ LD A,006H
+ JR L14BD ; (+013H)
+
+L14AA: PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,00EF2H
+ LD DE,00EE8H
+ LD BC,0000AH
+ LDIR
+ POP BC
+ POP DE
+ POP HL
+L14BB: LD A,060H
+L14BD: LD (00285H),A
+L14C0: CALL 00313H
+ CALL 00371H
+ OR A
+ JR Z,L14C0 ; (-009H)
+ LD (0005FH),A
+ LD C,A
+ LD A,D
+ CALL 000F2H
+ POP AF
+ EX AF,AF'
+ LD A,C
+ POP DE
+ POP HL
+ POP BC
+ RET
+
+ CALL 002FAH
+ PUSH HL
+L14DC: LD HL,(0005FH)
+ CALL 00371H
+ OR A
+ JR Z,L14EB ; (+006H)
+ CP L
+ JR NZ,L14EB ; (+003H)
+ POP HL
+ XOR A
+ RET
+
+L14EB: POP HL
+ LD (0005FH),A
+ RET
+
+ CALL 002FAH
+ CALL 00371H
+ LD (0005FH),A
+ RET
+
+ PUSH HL
+ LD HL,(00ED0H)
+ LD A,L
+ CP H
+ POP HL
+L1501: RET Z
+ EX (SP),HL
+ PUSH BC
+ INC A
+ LD (00ED0H),A
+ LD L,A
+ LD H,000H
+ LD BC,00ED2H
+ ADD HL,BC
+ LD A,(HL)
+ POP BC
+ POP HL
+ RET
+
+ DI
+ OUT (LSE3),A
+ LD A,(0E002H)
+ OUT (LSE1),A
+L151B: EI
+ RLCA
+ RLCA
+ LD A,C
+ JR C,L152A ; (+009H)
+ OR A
+L1522: RET Z
+ LD C,000H
+ LD A,D
+ CALL 000F2H
+ RET
+
+L152A: DEC A
+ RET Z
+ LD C,001H
+ LD A,E
+ CALL 000F2H
+ RET
+
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ LD DE,00EF2H
+ LD HL,00EE8H
+ LD BC,00A00H
+ DI
+ OUT (LSE3),A
+L1542: LD A,B
+ ADD A,0EFH
+ LD (MMAPIO),A
+ CP 0F8H
+ LD A,(0E001H)
+ JR NZ,L1551 ; (+002H)
+ OR 07FH
+L1551: CP 0FFH
+ JR Z,L1557 ; (+002H)
+ SET 0,C
+L1557: EX DE,HL
+ CP (HL)
+ LD (HL),A
+ EX DE,HL
+ JR Z,L155F ; (+002H)
+ SET 1,C
+L155F: CPL
+ AND (HL)
+ JR Z,L1565 ; (+002H)
+ SET 2,C
+L1565: INC HL
+ INC DE
+ DJNZ L1542 ; (-027H)
+ LD A,C
+L156A: OUT (LSE1),A
+ EI
+L156D: POP DE
+ POP HL
+ POP BC
+ RET
+
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ LD HL,00EE8H
+ LD DE,00EF2H
+ PUSH HL
+ PUSH DE
+ LD BC,0000AH
+ LDIR
+ POP HL
+ POP DE
+ LD BC,00AF9H
+ DI
+ OUT (LSE3),A
+ LD A,C
+ LD (MMAPIO),A
+ NOP
+ LD A,(0E001H)
+ LD (DE),A
+L1592: LD A,C
+ LD (MMAPIO),A
+ CP 0F8H
+ LD A,(0E001H)
+ LD (DE),A
+ JR Z,L15C1 ; (+023H)
+ CPL
+ AND (HL)
+L15A0: LD (HL),A
+ INC DE
+L15A2: INC HL
+ DEC C
+ DJNZ L1592 ; (-014H)
+ OUT (LSE1),A
+ EI
+ LD BC,00A00H
+L15AC: DEC HL
+ LD A,(HL)
+ OR A
+ JR NZ,L15E4 ; (+033H)
+ INC C
+ DJNZ L15AC ; (-008H)
+ LD B,00AH
+L15B6: DEC DE
+ LD A,(DE)
+ CP 0FFH
+ JR NZ,L15C4 ; (+008H)
+L15BC: DJNZ L15B6 ; (-008H)
+L15BE: XOR A
+ JR L156A ; (-057H)
+
+L15C1: XOR A
+ JR L15A0 ; (-024H)
+
+L15C4: LD A,B
+ CP 002H
+ JR NZ,L15D2 ; (+009H)
+ LD A,(DE)
+ AND 081H
+ JR NZ,L15BC ; (-012H)
+ LD A,01BH
+ JR L156A ; (-068H)
+
+L15D2: CP 001H
+ JR Z,L15BE ; (-018H)
+ CP 000H
+ JR NZ,L15BC ; (-01eH)
+ LD A,(DE)
+ AND 001H
+ JR NZ,L15BC ; (-023H)
+ LD A,(0005FH)
+ JR L156A ; (-07aH)
+
+L15E4: PUSH AF
+ LD A,B
+ LD (003D7H),A
+ LD A,(HL)
+L15EA: LD (003DCH),A
+ POP AF
+ DEC B
+L15EF: JR NZ,L1629 ; (+038H)
+ CALL 00496H
+ LD A,(00EE9H)
+ BIT 6,A
+ JR Z,L15BE ; (-03dH)
+ BIT 0,A
+ LD A,B
+ JR NZ,L1602 ; (+002H)
+ ADD A,005H
+L1602: LD L,A
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ LD BC,L1322
+ ADD HL,BC
+ LD DE,00ED0H
+ XOR A
+ LD (DE),A
+ INC DE
+ LD BC,00010H
+ LDIR
+ LD A,(00ED1H)
+ OR A
+ JP Z,003BEH
+ DEC A
+ LD (00ED1H),A
+ LD A,(00ED2H)
+ JP 0036AH
+
+L1629: CALL 00496H
+ LD L,C
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ LD C,B
+ LD B,000H
+ ADD HL,BC
+ LD A,(00EE9H)
+ BIT 6,A
+ LD BC,0121DH
+ JR Z,L166F ; (+02fH)
+ PUSH AF
+ LD A,(00060H)
+ CP 043H
+ JR NZ,L164E ; (+006H)
+ EX (SP),HL
+ LD A,001H
+ XOR H
+ LD H,A
+ EX (SP),HL
+L164E: POP AF
+ BIT 0,A
+ JR NZ,L1656 ; (+003H)
+ LD BC,L125D
+L1656: LD A,(00060H)
+ CP 0FFH
+ JR NZ,L166A ; (+00dH)
+ LD BC,012DDH
+ LD A,(00EE9H)
+ BIT 0,A
+ JR Z,L166A ; (+003H)
+ LD BC,L129D
+L166A: ADD HL,BC
+ LD A,(HL)
+ JP 0036AH
+
+L166F: ADD HL,BC
+ LD A,(HL)
+L1671: CP 020H
+ JP C,0036AH
+ LD HL,L131D
+ LD B,005H
+L167B: CP (HL)
+ JR Z,L1690 ; (+012H)
+L167E: INC HL
+ DJNZ L167B ; (-006H)
+ CP 040H
+ JP C,003BEH
+ CP 05BH
+ JP NC,003BEH
+ SUB 040H
+ JP 0036AH
+
+L1690: LD A,020H
+ SUB B
+ JP 0036AH
+
+ LD B,008H
+L1698: RRCA
+ JR C,L169E ; (+003H)
+L169B: DJNZ L1698 ; (-005H)
+ RET
+
+L169E: DEC B
+ RET
+
+L16A0: LD A,LSE8
+ DI
+ OUT (LSE3),A
+ LD (MMAPIO),A
+ NOP
+ LD A,(0E001H)
+ OUT (LSE1),A
+ EI
+ AND 081H
+ RET Z
+ RLCA
+ RET C
+ JR L16A0 ; (-016H)
+
+ PUSH HL
+ PUSH BC
+L16B8: LD HL,00EFCH
+ LD B,000H
+L16BD: CP (HL)
+L16BE: JR Z,L16C7 ; (+007H)
+ INC HL
+ DJNZ L16BD ; (-006H)
+ XOR A
+ POP BC
+ POP HL
+ RET
+
+L16C7: LD A,000H
+ SUB B
+ POP BC
+ POP HL
+ RET
+
+ PUSH HL
+ PUSH BC
+ LD C,A
+ LD B,000H
+ LD HL,00EFCH
+ ADD HL,BC
+ LD A,(HL)
+ POP BC
+ POP HL
+ RET
+
+ PUSH DE
+L16DB: LD A,(DE)
+ OR A
+ JR Z,L16E5 ; (+006H)
+ CALL 00533H
+ INC DE
+ JR L16DB ; (-00aH)
+
+L16E5: POP DE
+ RET
+
+ PUSH HL
+ LD HL,(00054H)
+ LD A,(0005BH)
+L16EE: CP L
+ JR C,L16F8 ; (+007H)
+ PUSH DE
+ CALL 005AEH
+ LD A,(HL)
+ OR A
+ POP DE
+L16F8: POP HL
+ RET
+
+ CALL 004E7H
+ RET Z
+ LD A,00DH
+ JR L1733 ; (+031H)
+
+L1702: CALL PRNTS
+ LD A,(00054H)
+L1708: SUB 00AH
+ JR NC,L1708 ; (-004H)
+ ADD A,00AH
+ RET Z
+ JR L1702 ; (-00fH)
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC E
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC C
+L171F: NOP
+ NOP
+ NOP
+ LD A,(BC)
+ INC BC
+ JR NZ,L1734 ; (+00eH)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L172C: DEC C
+ NOP
+ NOP
+ NOP
+ NOP
+ LD A,020H
+L1733: PUSH HL
+L1734: PUSH DE
+ PUSH BC
+ PUSH AF
+ CALL 0056DH
+ LD A,(0004DH)
+ OR A
+ JR Z,L1759 ; (+019H)
+ POP AF
+ PUSH AF
+ CP 020H
+ JR NC,L1754 ; (+00eH)
+ LD L,A
+ LD H,000H
+ LD DE,00511H
+ ADD HL,DE
+ LD A,(HL)
+ OR A
+ CALL NZ,L167E
+ JR L1759 ; (+005H)
+
+L1754: POP AF
+ PUSH AF
+ CALL L1762
+L1759: POP AF
+ POP BC
+ POP DE
+ POP HL
+ RET
+
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ PUSH AF
+L1762: CALL 00572H
+ LD A,(0004DH)
+ OR A
+ JR NZ,L1754 ; (-017H)
+ JR L1759 ; (-014H)
+
+ CP 020H
+ JP C,005D2H
+L1772: LD HL,(00054H)
+ PUSH HL
+ PUSH AF
+ CALL 005B9H
+ POP AF
+ CALL 004CDH
+ CALL 000F2H
+ SET 3,H
+ LD A,(0005DH)
+ CALL 000F2H
+ POP HL
+ INC L
+ LD A,(0005CH)
+ CP L
+ JP NC,007D2H
+ LD A,(0005BH)
+ LD L,A
+ INC H
+ PUSH HL
+ CALL 005AEH
+ LD (HL),001H
+ POP HL
+ LD A,(00057H)
+ CP H
+ JP NC,007D2H
+ LD H,A
+ PUSH HL
+ CALL 006A5H
+ POP HL
+ JP 007D2H
+
+ LD E,H
+ LD D,000H
+ LD HL,000A7H
+ ADD HL,DE
+ RET
+
+ LD HL,(00054H)
+ PUSH DE
+ CALL 005C5H
+ LD D,LSD0
+ ADD HL,DE
+ POP DE
+ RET
+
+ LD HL,(00054H)
+ LD E,L
+ LD L,H
+ LD H,000H
+ LD C,L
+ LD B,H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,BC
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ RET
+
+ LD L,A
+L17D3: LD H,000H
+ ADD HL,HL
+ LD BC,00067H
+ ADD HL,BC
+ LD C,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,C
+ JP (HL)
+
+ LD BC,00028H
+L17E2: LD (005F0H),BC
+ EXX
+ PUSH BC
+ EXX
+L17E9: LD B,H
+ LD C,L
+ DEC D
+ JR Z,L1817 ; (+029H)
+ PUSH DE
+ LD HL,00028H
+ ADD HL,BC
+ PUSH HL
+ PUSH HL
+ EXX
+ POP BC
+ EXX
+ DI
+L17F9: OUT (LSE3),A
+L17FB: EXX
+ LD A,(BC)
+ EXX
+ LD (BC),A
+ EXX
+L1800: RES 3,B
+ LD A,(BC)
+L1803: SET 3,B
+ INC BC
+ EXX
+ RES 3,B
+ LD (BC),A
+ SET 3,B
+ INC BC
+ DEC E
+L180E: JR NZ,L17FB ; (-015H)
+ OUT (LSE1),A
+ EI
+ POP HL
+ POP DE
+ JR L17E9 ; (-02eH)
+
+L1817: LD H,B
+ LD L,C
+L1819: LD BC,(0005DH)
+ DI
+ OUT (LSE3),A
+L1820: LD (HL),C
+ RES 3,H
+ LD (HL),B
+ SET 3,H
+ INC HL
+ DEC E
+ JR NZ,L1820 ; (-00aH)
+ OUT (LSE1),A
+ EI
+ EXX
+ POP BC
+ EXX
+ RET
+
+ LD A,0B0H
+ JR L1837 ; (+002H)
+
+ LD A,0B8H
+L1837: LD (00651H),A
+ LD BC,00028H
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ CALL 0064EH
+ POP BC
+ POP DE
+ POP HL
+ LD A,008H
+L1848: XOR H
+ LD H,A
+ LD A,008H
+ XOR D
+L184D: LD D,A
+ OUT (LSE3),A
+ LDIR
+ OUT (LSE1),A
+ RET
+
+ LD HL,VRAM
+ LD DE,0D7D0H
+ DI
+ CALL 00631H
+L185F: LD HL,0D028H
+ LD DE,VRAM
+ LD B,032H
+L1867: PUSH BC
+ CALL 00631H
+ POP BC
+ DJNZ L1867 ; (-007H)
+ EI
+ LD HL,000A7H
+L1872: LD E,L
+ LD D,H
+ LD A,(HL)
+ INC HL
+L1876: LD BC,00031H
+ LDIR
+ LD (DE),A
+ RET
+
+ LD HL,0D7CFH
+ LD DE,0D7F7H
+ DI
+ LD B,032H
+L1886: PUSH BC
+ CALL 00635H
+ POP BC
+ DJNZ L1886 ; (-007H)
+ LD HL,0D7D0H
+ LD DE,VRAM
+ CALL 00631H
+ EI
+ LD HL,000D9H
+ LD E,L
+ LD D,H
+ DEC HL
+ LD A,(DE)
+ LD BC,00031H
+ LDDR
+ LD (DE),A
+ RET
+
+ LD A,(0004EH)
+ OR A
+ JR NZ,L18D5 ; (+02aH)
+ LD HL,0D3E8H
+ LD DE,0D3E9H
+ LD BC,RDINF
+ DI
+ OUT (LSE3),A
+ LD (HL),000H
+ LDIR
+ LD HL,0DBE8H
+ LD DE,0DBE9H
+ LD BC,RDINF
+ LD A,(0005DH)
+ LD (HL),A
+ LDIR
+ OUT (LSE1),A
+ EI
+ CALL 00655H
+ XOR A
+ LD (000C0H),A
+ RET
+
+L18D5: CALL 00704H
+ CALL 005DFH
+ LD A,(00056H)
+ LD H,A
+ CALL 005AEH
+ LD A,(00057H)
+ SUB E
+ LD B,A
+ LD (HL),000H
+ INC HL
+ OR A
+ JR Z,L18F6 ; (+009H)
+ LD D,H
+ LD E,L
+ INC DE
+L18F0: LD A,(DE)
+ INC DE
+ LD (HL),A
+ INC HL
+ DJNZ L18F0 ; (-006H)
+L18F6: LD (HL),000H
+ RET
+
+ LD A,(0005BH)
+ LD L,A
+ LD A,(00056H)
+ LD H,A
+ JP 007D2H
+
+ CALL 006F9H
+ CALL 005C5H
+ LD D,0D8H
+ ADD HL,DE
+ LD A,(0005CH)
+ SUB E
+ INC A
+ LD E,A
+ LD A,(00056H)
+ LD D,A
+ LD A,(00057H)
+ SUB D
+ INC A
+ LD D,A
+ RET
+
+ LD A,(0004EH)
+ OR A
+ JR NZ,L1957 ; (+033H)
+ LD HL,VRAM
+ LD DE,0D001H
+ LD BC,007F8H
+ DI
+ OUT (LSE3),A
+ LD (HL),000H
+L1932: LDIR
+ LD HL,ARAM
+ LD DE,0D801H
+ LD BC,007F8H
+ LD A,(0005DH)
+ LD (HL),A
+ LDIR
+ OUT (LSE1),A
+ EI
+ LD HL,000A7H
+ LD B,033H
+ XOR A
+L194C: LD (HL),A
+ INC HL
+ DJNZ L194C ; (-004H)
+ LD HL,MONIT
+ LD (00054H),HL
+ RET
+
+L1957: CALL 00704H
+L195A: PUSH DE
+ PUSH HL
+ LD A,(0005DH)
+ DI
+ OUT (LSE3),A
+L1962: LD (HL),A
+ RES 3,H
+ LD (HL),000H
+ SET 3,H
+ INC HL
+ DEC E
+ JR NZ,L1962 ; (-00bH)
+ OUT (LSE1),A
+ EI
+ POP HL
+ LD BC,00028H
+ ADD HL,BC
+ POP DE
+ DEC D
+ JR NZ,L195A ; (-01fH)
+ LD A,(00056H)
+ LD H,A
+ CALL 005AEH
+ LD A,(00057H)
+ SUB E
+ ADD A,002H
+ LD B,A
+ XOR A
+L1988: LD (HL),A
+L1989: INC HL
+ DJNZ L1988 ; (-004H)
+ RET
+
+ LD HL,(00054H)
+ LD A,(0005DH)
+ AND 07FH
+ LD (0005DH),A
+ PUSH HL
+ INC H
+ CALL 005AEH
+ LD A,(00057H)
+ LD D,A
+L19A1: LD A,(HL)
+ OR A
+ JR Z,L19AB ; (+006H)
+ INC HL
+ INC E
+ LD A,D
+ CP E
+ JR NC,L19A1 ; (-00aH)
+L19AB: DEC E
+ POP HL
+ LD H,E
+ JP 007C1H
+
+ LD HL,(00054H)
+ JP 007C5H
+
+ LD HL,(00054H)
+ INC L
+ LD A,(0005CH)
+ CP L
+ JR NC,L19D2 ; (+011H)
+ LD A,(0005BH)
+ LD L,A
+ INC H
+ LD A,(00057H)
+ CP H
+ JR NC,L19D2 ; (+006H)
+ LD H,A
+ PUSH HL
+ CALL 006A5H
+ POP HL
+L19D2: LD (00054H),HL
+ RET
+
+ LD HL,(00054H)
+ JR L19E8 ; (+00dH)
+
+ LD HL,(00054H)
+ LD A,(0005BH)
+ CP L
+ JR C,019F3H ; (+00fH)
+ LD A,(0005CH)
+ LD L,A
+L19E8: LD A,(00056H)
+ CP H
+ JR C,019F5H ; (+007H)
+ LD A,(00056H)
+ LD H,A
+ LD A,02DH
+ LD A,025H
+ JR L19D2 ; (-026H)
+
+ LD A,0EFH
+ LD HL,0FF3EH
+ LD HL,L433E
+ LD (00060H),A
+ RET
+
+ LD HL,(00054H)
+ LD BC,(0005BH)
+ LD A,L
+ DEC L
+ INC C
+ CP C
+ JR NC,L1A1D ; (+00cH)
+ PUSH HL
+ CALL 005AEH
+ LD A,(HL)
+ POP HL
+ INC L
+ OR A
+ JR Z,L1A56 ; (+03bH)
+ LD L,B
+ DEC H
+L1A1D: LD DE,(00054H)
+ LD (00054H),HL
+ EX DE,HL
+ LD A,(0005BH)
+ CP L
+ JR C,L1A4F ; (+024H)
+L1A2B: PUSH HL
+ CALL 005AEH
+ LD A,(HL)
+ POP HL
+ OR A
+ JR Z,L1A43 ; (+00fH)
+ CALL 00864H
+ PUSH HL
+ LD A,(0005CH)
+ LD L,A
+ DEC H
+ CALL 00880H
+ POP HL
+ JR L1A56 ; (+013H)
+
+L1A43: LD A,(0005CH)
+ LD L,A
+ DEC H
+ LD DE,(0005DH)
+ JP 00880H
+
+L1A4F: CALL 00864H
+ DEC BC
+ CALL 0087BH
+L1A56: INC L
+ LD A,(0005CH)
+ CP L
+ JR NC,L1A4F ; (-00eH)
+ LD A,(0005BH)
+ LD L,A
+ INC H
+ JR L1A2B ; (-039H)
+
+ PUSH HL
+ CALL 005C5H
+ LD D,0D8H
+ ADD HL,DE
+L1A6B: CALL 000EAH
+ LD E,A
+ RES 3,H
+ CALL 000EAH
+ SET 3,H
+L1A76: LD D,A
+ LD C,L
+ LD B,H
+ POP HL
+ RET
+
+ PUSH HL
+ LD L,C
+ LD H,B
+ JR L1A89 ; (+009H)
+
+ PUSH HL
+ PUSH DE
+ CALL 005C5H
+ LD D,0D8H
+ ADD HL,DE
+ POP DE
+L1A89: LD A,E
+ CALL 000F2H
+ RES 3,H
+ LD A,D
+ CALL 000F2H
+ SET 3,H
+ LD C,L
+ LD B,H
+ POP HL
+ RET
+
+ LD HL,(00054H)
+ CALL 001C8H
+ DEC E
+ LD H,E
+ LD A,(0005CH)
+ LD L,A
+ RET
+
+ CALL 00899H
+ CALL 00864H
+ LD A,0F0H
+ CP D
+ JR Z,L1AB4 ; (+003H)
+ XOR A
+ CP D
+ RET NZ
+L1AB4: LD BC,(0005BH)
+ EX DE,HL
+ LD HL,(00054H)
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ JR Z,L1ADD ; (+01bH)
+ LD A,C
+ CP L
+ JR NC,L1AD0 ; (+00aH)
+ DEC L
+ CALL 00864H
+ INC BC
+ CALL 0087BH
+ JR L1AB4 ; (-01cH)
+
+L1AD0: PUSH HL
+ LD L,B
+ DEC H
+ CALL 00864H
+ EX (SP),HL
+ CALL 00880H
+ POP HL
+ JR L1AB4 ; (-029H)
+
+L1ADD: LD DE,(0005DH)
+ JP 00880H
+
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD A,002H
+ LD (00A38H),A
+ LD B,001H
+L1AEE: LD A,(DE)
+ CP 00DH
+ JR Z,L1B31 ; (+03eH)
+ OR A
+ JR Z,L1B31 ; (+03bH)
+ CP 0C8H
+ JR Z,L1B31 ; (+037H)
+ CP 0CFH
+ JR Z,L1B25 ; (+027H)
+ CP 02DH
+ JR Z,L1B25 ; (+023H)
+ CP 02BH
+ JR Z,L1B2D ; (+027H)
+ CP LSD7
+ JR Z,L1B2D ; (+023H)
+ CP 023H
+ LD HL,00991H
+ JR NZ,L1B15 ; (+004H)
+ LD HL,0099FH
+ INC DE
+L1B15: CALL 0093DH
+ JR C,L1AEE ; (-02cH)
+ CALL 009E2H
+ JR C,L1B34 ; (+015H)
+ CALL 009B7H
+ LD B,C
+ JR L1AEE ; (-037H)
+
+L1B25: LD A,003H
+L1B27: LD (00A38H),A
+ INC DE
+ JR L1AEE ; (-03fH)
+
+L1B2D: LD A,001H
+ JR L1B27 ; (-00aH)
+
+L1B31: CALL 009E2H
+L1B34: PUSH AF
+ CALL 009D2H
+ POP AF
+ POP HL
+ POP DE
+ POP BC
+ RET
+
+ LD A,(DE)
+ INC DE
+ CP 052H
+ JR Z,L1B5E ; (+01bH)
+ SUB 041H
+ RET C
+ CP 007H
+ CCF
+ RET C
+ PUSH DE
+ LD E,A
+ LD D,000H
+ EX DE,HL
+ ADD HL,HL
+ ADD HL,DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ LD A,(00A38H)
+L1B58: DEC A
+ JR Z,L1B62 ; (+007H)
+ ADD HL,HL
+ JR L1B58 ; (-006H)
+
+L1B5E: PUSH DE
+ LD HL,MONIT
+L1B62: LD (00A39H),HL
+ LD HL,00A38H
+ LD (HL),002H
+ DEC HL
+ POP DE
+ LD A,(DE)
+ PUSH BC
+ LD B,A
+ AND 0F0H
+ CP 030H
+ JR Z,L1B78 ; (+003H)
+ LD A,(HL)
+ JR L1B7D ; (+005H)
+
+L1B78: INC DE
+ LD A,B
+ AND 00FH
+L1B7C: LD (HL),A
+L1B7D: LD HL,009ADH
+ LD C,A
+ LD B,000H
+ ADD HL,BC
+ LD C,(HL)
+ LD A,(00A32H)
+ LD B,A
+ XOR A
+L1B8A: ADD A,C
+ DJNZ L1B8A ; (-003H)
+ POP BC
+ LD C,A
+ XOR A
+ RET
+
+ CALL PE,L6404
+ INC B
+ LD B,(HL)
+ EX AF,AF'
+ LD E,A
+ RLCA
+ SUB C
+ LD B,033H
+ LD B,086H
+ DEC B
+ AND L
+ INC B
+ INC HL
+ INC B
+ RST 008H
+ RLCA
+ PUSH AF
+ LD B,033H
+ LD B,0DAH
+ DEC B
+ SCF
+ DEC B
+ LD BC,00302H
+ INC B
+ LD B,008H
+ INC C
+ DJNZ 01BCEH ; (+018H)
+ JR NZ,L1BE2 ; (+02aH)
+ ADD HL,SP
+ LD A,(BC)
+ LD A,H
+ OR L
+ JR Z,L1BD2 ; (+014H)
+ PUSH DE
+ EX DE,HL
+ LD HL,0E004H
+ DI
+ OUT (LSE3),A
+ LD (HL),E
+ LD (HL),D
+ LD A,001H
+ LD (MEMSWAP),A
+ OUT (LSE1),A
+ EI
+ POP DE
+ RET
+
+L1BD2: LD A,036H
+ DI
+ OUT (LSE3),A
+ LD (0E007H),A
+ XOR A
+ LD (MEMSWAP),A
+ OUT (LSE1),A
+ EI
+ RET
+
+L1BE2: LD HL,MMAPIO
+ DI
+ OUT (LSE3),A
+ LD (HL),0F8H
+ INC HL
+ LD A,(HL)
+L1BEC: AND 081H
+ SCF
+ JR Z,L1C00 ; (+00fH)
+L1BF1: LD A,(MEMSWAP)
+ RRCA
+ JR C,L1BF1 ; (-006H)
+L1BF7: LD A,(MEMSWAP)
+ RRCA
+ JR NC,L1BF7 ; (-006H)
+ DJNZ L1BF1 ; (-00eH)
+ XOR A
+L1C00: OUT (LSE1),A
+ EI
+ RET
+
+ PUSH AF
+ PUSH BC
+ AND 00FH
+ LD B,A
+ LD A,008H
+ SUB B
+ LD (00A32H),A
+ POP BC
+ POP AF
+ RET
+
+ XOR A
+ PUSH HL
+ LD HL,003F8H
+ JR Z,L1C22 ; (+009H)
+ CP 001H
+ JR Z,L1C2D ; (+010H)
+ CALL 009BAH
+ POP HL
+ RET
+
+L1C22: CALL 009BAH
+ LD HL,02710H
+L1C28: DEC HL
+ LD A,H
+ OR L
+ JR NZ,L1C28 ; (-005H)
+L1C2D: CALL 009D2H
+ POP HL
+ RET
+
+ INC B
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD A,0CCH
+ JR L1C41 ; (+002H)
+
+L1C3F: LD A,053H
+L1C41: PUSH DE
+ LD E,A
+ LD D,LSD7
+ LD A,B
+ OR C
+ JR Z,L1C71 ; (+028H)
+ CALL 00AACH
+ CALL 00ACEH
+ JR C,L1C6E ; (+01dH)
+ LD A,E
+ CP 0CCH
+ JR NZ,L1C67 ; (+011H)
+ LD A,(00050H)
+ OR A
+ JR NZ,L1C67 ; (+00bH)
+ CALL NL
+ PUSH DE
+ LD DE,L1803
+ CALL 016C8H
+L1C66: POP DE
+L1C67: DI
+ CALL 00B5AH
+ CALL NC,00B85H
+L1C6E: CALL 00B3BH
+L1C71: POP DE
+ PUSH AF
+ XOR A
+ LD (00050H),A
+ POP AF
+ RET
+
+ RET
+
+ LD A,0CCH
+ JR L1C80 ; (+002H)
+
+ LD A,053H
+L1C80: PUSH DE
+ LD D,LSD2
+ LD E,A
+ LD A,B
+L1C85: OR C
+ JR Z,L1C71 ; (-017H)
+ CALL 00ACEH
+ DI
+ CALL NC,00C2AH
+ CALL NC,00C66H
+ JR L1C6E ; (-026H)
+
+ PUSH DE
+ LD D,LSD2
+ LD E,053H
+ LD A,B
+ OR C
+ JR Z,L1C71 ; (-02cH)
+ CALL 00AACH
+ CALL 00ACEH
+ DI
+ CALL NC,00C2AH
+ CALL NC,00CDFH
+ JR L1C6E ; (-03eH)
+
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD DE,MONIT
+L1CB2: LD A,B
+ OR C
+ JR NZ,L1CBF ; (+009H)
+ EX DE,HL
+ LD (00EBFH),HL
+ LD (00EC1H),HL
+ JR L1D37 ; (+078H)
+
+L1CBF: LD A,(HL)
+ PUSH BC
+ LD B,008H
+L1CC3: RLCA
+ JR NC,L1CC7 ; (+001H)
+ INC DE
+L1CC7: DJNZ L1CC3 ; (-006H)
+ POP BC
+ INC HL
+ DEC BC
+ JR L1CB2 ; (-01cH)
+
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD HL,MMAPIO
+ LD A,0F8H
+ CALL 000F2H
+ LD B,00AH
+L1CDB: LD HL,0E002H
+ CALL 000EAH
+ AND 010H
+ JR Z,L1CEF ; (+00aH)
+L1CE5: LD B,0A6H
+L1CE7: CALL 00D4CH
+ DJNZ L1CE7 ; (-005H)
+ XOR A
+ JR L1D37 ; (+048H)
+
+L1CEF: LD HL,0E003H
+ LD A,006H
+ CALL 000F2H
+ INC A
+ CALL 000F2H
+ DJNZ L1CDB ; (-022H)
+ LD A,(00050H)
+ OR A
+ JR NZ,L1D22 ; (+01fH)
+ CALL NL
+ LD A,07FH
+ CALL 0055EH
+ CALL PRNTS
+ LD A,D
+ CP LSD7
+ JR NZ,L1D19 ; (+006H)
+ LD DE,00EC3H
+ CALL 00051H
+L1D19: LD DE,00ECBH
+ CALL 00051H
+ CALL NL
+L1D22: LD HL,0E002H
+ CALL 000EAH
+ AND 010H
+ JR NZ,L1CE5 ; (-047H)
+ LD HL,0E001H
+ CALL 000EAH
+ AND 080H
+ JR NZ,L1D22 ; (-014H)
+ SCF
+L1D37: POP HL
+ POP DE
+ POP BC
+ RET
+
+ PUSH AF
+ PUSH BC
+ LD B,00AH
+ DI
+ OUT (LSE3),A
+L1D42: LD A,(0E002H)
+ AND 010H
+ JR Z,L1D54 ; (+00bH)
+ LD A,006H
+ LD (0E003H),A
+ INC A
+ LD (0E003H),A
+ DJNZ L1D42 ; (-012H)
+L1D54: OUT (LSE1),A
+ EI
+ POP BC
+ POP AF
+ RET
+
+ PUSH BC
+ PUSH HL
+ LD A,E
+ LD BC,L2AF8
+ LD HL,L1414
+ CP 0CCH
+ JR NZ,L1D6B ; (+004H)
+ LD BC,055F0H
+ ADD HL,HL
+L1D6B: CALL 00BFEH
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L1D6B ; (-008H)
+L1D73: CALL 00BDFH
+ DEC H
+ JR NZ,L1D73 ; (-006H)
+L1D79: CALL 00BFEH
+ DEC L
+ JR NZ,L1D79 ; (-006H)
+ CALL 00BDFH
+ POP HL
+ POP BC
+ RET
+
+ PUSH DE
+ PUSH BC
+ PUSH HL
+ LD D,002H
+ LD A,0F8H
+ DI
+ OUT (LSE3),A
+ LD (MMAPIO),A
+ OUT (LSE1),A
+L1D94: LD A,(HL)
+ CALL 00BCEH
+ OUT (LSE3),A
+ LD A,(0E001H)
+ OUT (LSE1),A
+ AND 080H
+ SCF
+ JR Z,L1DCA ; (+026H)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JP NZ,00B94H
+ LD HL,(00EBFH)
+ LD A,H
+ CALL 00BCEH
+ LD A,L
+ CALL 00BCEH
+ CALL 00BDFH
+ XOR A
+ DEC D
+ JR Z,L1DCA ; (+00dH)
+ LD B,000H
+L1DBF: CALL 00BFEH
+ DJNZ L1DBF ; (-005H)
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+ JR L1D94 ; (-036H)
+
+L1DCA: POP HL
+ POP BC
+ POP DE
+ RET
+
+ PUSH BC
+ LD B,008H
+L1DD1: CALL 00BDFH
+L1DD4: RLCA
+ CALL C,00BDFH
+ CALL NC,00BFEH
+ DJNZ L1DD4 ; (-009H)
+ POP BC
+ RET
+
+L1DDF: PUSH AF
+ PUSH HL
+ LD HL,0E003H
+ LD A,003H
+ CALL 00C1CH
+ LD A,060H
+ NOP
+ CALL 00D47H
+ LD A,002H
+ CALL 00C1CH
+ LD A,06FH
+ LD A,05FH
+ CALL 00D47H
+ POP HL
+ POP AF
+ RET
+
+ PUSH AF
+ PUSH HL
+ LD HL,0E003H
+ LD A,003H
+ CALL 00C1CH
+ LD A,02EH
+ CALL 00D47H
+ LD A,002H
+ CALL 00C1CH
+ LD A,02BH
+ NOP
+ NOP
+ CALL 00D47H
+ POP HL
+ POP AF
+ RET
+
+ DI
+ OUT (LSE3),A
+ LD (HL),A
+ OUT (LSE1),A
+ RET
+
+ DI
+ OUT (LSE3),A
+ LD A,(HL)
+ OUT (LSE1),A
+ RET
+
+ PUSH DE
+ PUSH BC
+ PUSH HL
+ LD A,E
+ CP 0CCH
+ LD A,014H
+ JR NZ,L1E35 ; (+001H)
+ ADD A,A
+L1E35: LD D,A
+ LD HL,0E002H
+L1E39: LD E,D
+L1E3A: CALL 00D24H
+ JR C,L1E62 ; (+023H)
+ CALL 00D44H
+ CALL 00C23H
+ AND 020H
+ JR Z,L1E39 ; (-010H)
+ DEC E
+ JR NZ,L1E3A ; (-012H)
+ LD E,D
+L1E4D: CALL 00D24H
+ JR C,L1E62 ; (+010H)
+ CALL 00D44H
+ CALL 00C23H
+ AND 020H
+ JR NZ,L1E39 ; (-023H)
+ DEC E
+ JR NZ,L1E4D ; (-012H)
+ CALL 00D24H
+L1E62: POP HL
+ POP BC
+ POP DE
+ RET
+
+ PUSH DE
+ PUSH BC
+ PUSH HL
+L1E69: LD D,002H
+L1E6B: LD HL,0E002H
+L1E6E: CALL 00D24H
+ JR C,L1E62 ; (-011H)
+ CALL 00D44H
+ CALL 00C23H
+ AND 020H
+ JR Z,L1E6E ; (-00fH)
+ LD HL,MONIT
+ LD (00EBFH),HL
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+L1E87: CALL 00CB3H
+ JR C,L1E62 ; (-02aH)
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L1E87 ; (-00cH)
+ LD HL,(00EBFH)
+ CALL 00CB3H
+ JR C,L1E62 ; (-039H)
+ LD E,A
+ CALL 00CB3H
+ JR C,L1E62 ; (-03fH)
+ CP L
+ JR NZ,L1EAB ; (+007H)
+ LD A,E
+ CP H
+ JR NZ,L1EAB ; (+003H)
+ XOR A
+ JR L1E62 ; (-049H)
+
+L1EAB: DEC D
+ JR NZ,L1E6B ; (-043H)
+ LD A,002H
+ SCF
+ JR L1E62 ; (-051H)
+
+ PUSH DE
+ PUSH BC
+ PUSH HL
+ LD HL,0E002H
+ LD DE,(00EBFH)
+ LD BC,00800H
+L1EC0: CALL 00D24H
+ JR C,L1F1B ; (+056H)
+ CALL 00D44H
+ CALL 00C23H
+ AND 020H
+ JR Z,L1ED1 ; (+002H)
+ INC DE
+ SCF
+L1ED1: RL C
+ DJNZ L1EC0 ; (-015H)
+ CALL 00D24H
+ LD (00EBFH),DE
+ LD A,C
+ JR L1F1B ; (+03cH)
+
+ PUSH DE
+ PUSH BC
+ PUSH HL
+L1EE2: LD D,002H
+L1EE4: LD HL,0E002H
+L1EE7: CALL 00D24H
+ JR C,L1F1B ; (+02fH)
+ CALL 00D44H
+ CALL 00C23H
+ AND 020H
+ JR Z,L1EE7 ; (-00fH)
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+L1EFA: CALL 00CB3H
+ JR C,L1F1B ; (+01cH)
+ CP (HL)
+ JR NZ,L1F1F ; (+01dH)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L1EFA ; (-00eH)
+ LD HL,(00EC1H)
+ CALL 00CB3H
+ CP H
+ JR NZ,L1F1F ; (+00eH)
+ CALL 00CB3H
+ CP L
+ JR NZ,L1F1F ; (+008H)
+ DEC D
+ JR NZ,L1EE4 ; (-036H)
+ XOR A
+L1F1B: POP HL
+ POP BC
+ POP DE
+L1F1E: RET
+
+L1F1F: LD A,002H
+ SCF
+ JR L1F1B ; (-009H)
+
+ DI
+ OUT (LSE3),A
+L1F27: DEC L
+ LD A,(HL)
+ INC L
+ RLCA
+ JR NC,L1F40 ; (+013H)
+ LD A,(HL)
+ AND 020H
+ JR NZ,L1F27 ; (-00bH)
+L1F32: DEC L
+ LD A,(HL)
+ INC L
+ RLCA
+ JR NC,L1F40 ; (+008H)
+ LD A,(HL)
+ AND 020H
+ JR Z,L1F32 ; (-00bH)
+ OUT (LSE1),A
+ RET
+
+L1F40: OUT (LSE1),A
+ SCF
+ RET
+
+ LD A,044H
+ NOP
+L1F47: DEC A
+ JP NZ,00D47H
+ RET
+
+ PUSH BC
+ LD B,024H
+L1F4F: CALL 00D56H
+ DJNZ L1F4F ; (-005H)
+ POP BC
+ RET
+
+ LD A,03FH
+ JR L1F47 ; (-013H)
+
+ DI
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD (00064H),A
+ LD HL,0A8C0H
+ XOR A
+ SBC HL,DE
+ PUSH HL
+ NOP
+ EX DE,HL
+ LD HL,0E007H
+ OUT (LSE3),A
+ LD (HL),074H
+ LD (HL),0B0H
+ DEC HL
+ LD (HL),E
+ LD (HL),D
+ DEC HL
+ LD (HL),00AH
+ LD (HL),000H
+ INC HL
+ INC HL
+ LD (HL),080H
+ DEC HL
+L1F80: LD C,(HL)
+ LD A,(HL)
+ CP D
+ JR NZ,L1F80 ; (-005H)
+ LD A,C
+ CP E
+ JR NZ,L1F80 ; (-009H)
+ DEC HL
+ NOP
+ NOP
+ NOP
+ LD (HL),0FBH
+ LD (HL),03CH
+ OUT (LSE1),A
+ INC HL
+ POP DE
+ OUT (LSE3),A
+L1F97: LD C,(HL)
+ LD A,(HL)
+ OUT (LSE1),A
+ CP D
+ JR NZ,L1F97 ; (-007H)
+ LD A,C
+ CP E
+ JR NZ,L1F97 ; (-00bH)
+ POP HL
+ POP DE
+ POP BC
+L1FA5: EI
+ RET
+
+ PUSH HL
+ DI
+ LD HL,0E007H
+ OUT (LSE3),A
+ LD (HL),080H
+ DEC HL
+ LD E,(HL)
+ LD D,(HL)
+ OUT (LSE1),A
+ EI
+ LD A,E
+ OR D
+L1FB8: JR Z,L1FC8 ; (+00eH)
+ XOR A
+ LD HL,0A8C0H
+ SBC HL,DE
+ JR C,L1FD2 ; (+010H)
+L1FC2: EX DE,HL
+ LD A,(00064H)
+ POP HL
+L1FC7: RET
+
+L1FC8: LD DE,0A8C0H
+L1FCB: LD A,(00064H)
+ XOR 001H
+ POP HL
+ RET
+
+L1FD2: DI
+ LD HL,0E006H
+ OUT (LSE3),A
+ LD A,(HL)
+ CPL
+ LD E,A
+ LD A,(HL)
+ CPL
+ LD D,A
+ OUT (LSE1),A
+ EI
+ INC DE
+ JR L1FCB ; (-019H)
+
+ DI
+ PUSH AF
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD HL,00064H
+L1FEC: LD A,(HL)
+ XOR 001H
+ LD (HL),A
+ LD HL,0E007H
+ OUT (LSE3),A
+ LD (HL),080H
+ OUT (LSE1),A
+ DEC HL
+ PUSH HL
+ OUT (LSE3),A
+ LD E,(HL)
+ LD D,(HL)
+L1FFF: OUT (LSE1),A
+ LD HL,0A8C0H
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ POP HL
+ OUT (LSE3),A
+ LD (HL),E
+ LD (HL),D
+ OUT (LSE1),A
+ POP HL
+ POP DE
+ POP BC
+ POP AF
+ EI
+ RET
+
+ LD A,04EH
+ DEC L
+ RET Z
+ LD A,056H
+ DEC L
+ RET Z
+ LD A,05EH
+ DEC L
+ RET Z
+ LD A,066H
+ DEC L
+ RET
+
+ PUSH DE
+ LD (00E45H),A
+ LD DE,0FFFFH
+ LD HL,0E002H
+ DI
+ OUT (LSE3),A
+ BIT 7,(HL)
+ JP Z,00E32H
+ BIT 7,(HL)
+ JP NZ,00E37H
+ LD L,008H
+ LD A,011H
+L2040: DEC A
+ JR NZ,L2040 ; (-003H)
+ INC DE
+ BIT 0,(HL)
+ JP Z,00E43H
+ OUT (LSE1),A
+ EI
+ LD A,D
+ OR A
+L204E: LD A,E
+ JR Z,L2053 ; (+002H)
+ LD A,0FFH
+L2053: LD (00066H),A
+ POP DE
+ POP HL
+ SCF
+ RET
+
+ LD A,04EH
+ DEC L
+ RET Z
+ LD A,056H
+ DEC L
+ RET Z
+ LD A,05EH
+ DEC L
+ RET Z
+ LD A,066H
+ DEC L
+L2069: RET
+
+ INC A
+ PUSH HL
+ LD L,A
+ CALL 00E15H
+ JP Z,00E25H
+ CALL 00E5AH
+ LD (00EACH),A
+ LD (00E8AH),A
+ LD HL,0E002H
+ DI
+ OUT (LSE3),A
+ BIT 7,(HL)
+ JP Z,00E82H
+ LD L,008H
+ BIT 0,(HL)
+ LD A,L
+ JP Z,00E90H
+ XOR A
+ LD (00EB4H),A
+ OUT (LSE1),A
+ LD A,009H
+L2097: PUSH AF
+ XOR A
+L2099: DEC A
+ JR NZ,L2099 ; (-003H)
+ POP AF
+ DEC A
+ JR NZ,L2097 ; (-009H)
+ OUT (LSE3),A
+ LD L,002H
+ BIT 7,(HL)
+ JP Z,00EA4H
+ LD L,008H
+ BIT 0,(HL)
+ LD A,L
+ JP Z,00EB2H
+ XOR A
+ LD L,A
+ LD A,000H
+ AND L
+ LD (00065H),A
+L20B9: OUT (LSE1),A
+L20BB: EI
+ POP HL
+ OR A
+ RET
+
+ NOP
+ NOP
+ NOP
+ NOP
+ LD D,D
+ LD B,L
+ LD B,E
+ LD C,A
+ LD D,D
+L20C8: LD B,H
+ LD L,000H
+L20CB: LD D,B
+ LD C,H
+ LD B,C
+L20CE: LD E,C
+ DS 2, 000H ; Work area (45 bytes)
+L20D1: DS 3, 000H
+L20D4: DS 12, 000H
+L20E0: DS 3, 000H
+L20E3: DS 3, 000H
+L20E6: DS 3, 000H
+L20E9: DS 6, 000H
+L20EF: DS 3, 000H
+L20F2: DS 3, 000H
+L20F5: DS 3, 000H
+L20F8: DS 3, 000H
+L20FB: DB 000H
+ RET P
+ RET P
+L20FE: RET P
+ RET P
+ RET P
+L2101: RET P
+ RET P
+ RET P
+ RET P
+ RET P
+ RET P
+ RET P
+L2108: RET P
+ RET P
+ RET P
+ RET P
+ RET P
+ POP BC
+ JP NZ,0C4C3H
+ PUSH BC
+ ADD A,0F0H
+ RET P
+ RET P
+ RET P
+ RET P
+ RET P
+ RET P
+ RET P
+ RET P
+ NOP
+ LD H,C
+ LD H,D
+ LD H,E
+ LD H,H
+ LD H,L
+ LD H,(HL)
+ LD H,A
+ LD L,B
+ LD L,C
+ LD L,E
+ LD L,D
+ CPL
+ LD HL,(02D2EH)
+ JR NZ,L214F ; (+021H)
+ LD (L2423),HL
+ DEC H
+ LD H,027H
+ JR Z,L215F ; (+029H)
+ LD C,A
+ INC L
+ LD D,C
+ DEC HL
+ LD D,A
+ LD C,C
+ LD D,L
+ LD BC,00302H
+ INC B
+ DEC B
+ LD B,007H
+ EX AF,AF'
+ ADD HL,BC
+ LD A,(BC)
+ DEC BC
+ INC C
+ DEC C
+ LD C,00FH
+ DJNZ L215F ; (+011H)
+ LD (DE),A
+L214F: INC DE
+ INC D
+ DEC D
+ LD D,017H
+ JR 0216FH ; (+019H)
+
+ LD A,(DE)
+ LD D,D
+ LD E,C
+ LD D,H
+ LD D,B
+ LD B,L
+ RST 000H
+ RET Z
+ RET
+
+L215F: JP Z,0CCCBH
+ CALL 0CFCEH
+ RST 018H
+ RST 020H
+ RET PE
+ PUSH HL
+ JP (HL)
+
+ CALL PE,0D0EDH
+ POP DE
+ JP NC,0D4D3H
+ PUSH DE
+ SUB LSD7
+ RET C
+ EXX
+ JP C,0DCDBH
+ DB 0DDH
+ SBC A,0C0H
+ LD B,B
+ CP L
+ SBC A,L
+ OR C
+ OR L
+ CP C
+ OR H
+ SBC A,(HL)
+ OR D
+ OR (HL)
+ CP D
+ CP (HL)
+ SBC A,A
+ OR E
+ OR A
+ CP E
+ CP A
+ AND E
+ ADD A,L
+ AND H
+ AND L
+ AND (HL)
+ SUB H
+ ADD A,A
+ ADC A,B
+ SBC A,H
+L2196: ADD A,D
+ SBC A,B
+ ADD A,H
+ SUB D
+ SUB B
+L219B: ADD A,E
+ SUB C
+ ADD A,C
+ SBC A,D
+ SUB A
+ SUB E
+L21A1: SUB L
+ ADC A,C
+ AND C
+ XOR A
+ ADC A,E
+ ADD A,(HL)
+L21A7: SUB (HL)
+ AND D
+ XOR E
+ XOR D
+ ADC A,D
+ ADC A,(HL)
+ OR B
+ XOR L
+ ADC A,L
+ AND A
+ XOR B
+ XOR C
+ ADC A,A
+ ADC A,H
+ XOR (HL)
+ XOR H
+ SBC A,E
+ AND B
+ SBC A,C
+ CP H
+ CP B
+ ADD A,B
+ DEC SP
+ LD A,(03C70H)
+ LD (HL),C
+ LD E,D
+ DEC A
+ LD B,E
+ LD D,(HL)
+ CCF
+ LD E,04AH
+ INC E
+ LD E,L
+ LD A,05CH
+ RRA
+ LD E,A
+ LD E,(HL)
+ SCF
+ LD A,E
+ LD A,A
+ LD (HL),07AH
+ LD A,(HL)
+ INC SP
+ LD C,E
+ LD C,H
+ DEC E
+ LD L,H
+ LD E,E
+ LD A,B
+ LD B,C
+ DEC (HL)
+ INC (HL)
+ LD (HL),H
+ JR NC,L221B ; (+038H)
+ LD (HL),L
+ ADD HL,SP
+ LD C,L
+ LD L,A
+ LD L,(HL)
+ LD (L7677),A
+ LD (HL),D
+ LD (HL),E
+ LD B,A
+ LD A,H
+ LD D,E
+ LD SP,06D4EH
+ LD C,B
+ LD B,(HL)
+ LD A,L
+ LD B,H
+ DEC DE
+ LD E,B
+ LD A,C
+ LD B,D
+ LD H,B
+ DS 31, 000H ; Large work/buffer area (545 bytes)
+L221B: DS 14, 000H
+L2229: DS 8, 000H
+L2231: DS 8, 000H
+L2239: DS 21, 000H
+L224E: DS 42, 000H
+L2278: DS 10, 000H
+L2282: DS 5, 000H
+L2287: DS 52, 000H
+L22BB: DS 103, 000H
+L2322: DS 56, 000H
+L235A: DS 11, 000H
+L2365: DS 165, 000H
+L240A: DS 4, 000H
+L240E: DS 5, 000H
+L2413: DS 8, 000H
+L241B: DS 2, 000H
+ SUB B
+ RLA
+ CALL M,00019H
+ DEC SP
+L2423: LD A,(0590DH)
+ LD E,D
+ LD B,B
+ LD E,E
+ LD E,L
+ NOP
+ NOP
+ NOP
+ LD D,C
+ LD D,D
+ LD D,E
+ LD D,H
+ LD D,L
+ LD D,(HL)
+ LD D,A
+ LD E,B
+ LD C,C
+ LD C,D
+ LD C,E
+ LD C,H
+ LD C,L
+ LD C,(HL)
+ LD C,A
+L243C: LD D,B
+ LD B,C
+ LD B,D
+ LD B,E
+ LD B,H
+ LD B,L
+ LD B,(HL)
+ LD B,A
+ LD C,B
+ LD SP,03332H
+ INC (HL)
+ DEC (HL)
+ LD (HL),037H
+ JR C,L24AA ; (+05cH)
+L244E: LD E,(HL)
+ DEC L
+ JR NZ,L2482 ; (+030H)
+ ADD HL,SP
+ INC L
+ LD L,018H
+ DJNZ L246A ; (+012H)
+ LD DE,01413H
+ CCF
+ CPL
+ SUB B
+ RLA
+ EI
+ DEC B
+ NOP
+ DEC HL
+ LD HL,(0BD0DH)
+ AND D
+ SUB E
+ CP (HL)
+ ADD A,B
+L246A: NOP
+L246B: NOP
+ NOP
+ AND B
+ SBC A,L
+ AND H
+ SUB (HL)
+ AND L
+ XOR E
+ AND E
+ SBC A,E
+ AND (HL)
+ XOR A
+ XOR C
+ CP B
+ OR E
+ OR B
+ OR A
+ SBC A,(HL)
+ AND C
+ SBC A,D
+ SBC A,A
+ SBC A,H
+ SUB D
+L2482: XOR D
+ SUB A
+ SBC A,B
+ LD HL,L2322
+ INC H
+ DEC H
+ LD H,027H
+ JR Z,L244E ; (-040H)
+ SUB H
+ DEC A
+ JR NZ,02491H ; (-001H)
+ ADD HL,HL
+ INC A
+L2494: LD A,016H
+ DEC D
+ LD (DE),A
+ LD DE,01413H
+ ADD A,05FH
+ SUB B
+ RLA
+ LD L,H
+L24A0: ADD HL,DE
+ NOP
+ CP 089H
+ DEC C
+ RST 020H
+ XOR 088H
+ LD A,B
+ PUSH AF
+L24AA: NOP
+ NOP
+ NOP
+ CALL NZ,0FAE5H
+ PUSH BC
+ DB 0FDH
+ LD A,D
+ AND 0F6H
+ LD SP,HL
+ RET NC
+ RST 018H
+ ADD A,(HL)
+ CALL 0B1ECH
+ HALT
+ DI
+ JP PE,0F17EH
+ EX (SP),HL
+ CALL Z,0EFDBH
+ CALL NC,0D6CFH
+ PUSH DE
+ JP NZ,0D1D3H
+ ADD A,C
+ LD (HL),H
+ ADD A,A
+ LD (HL),D
+ JR NZ,L246B ; (-067H)
+ AND A
+ LD H,E
+ CP A
+ LD D,015H
+ LD (DE),A
+ LD DE,01413H
+ ADC A,D
+ LD A,E
+ SUB B
+ RLA
+ LD L,B
+ DEC B
+ NOP
+ ADD A,H
+ JP (HL)
+
+ DEC C
+ JP PO,L77ED
+ ADC A,L
+ ADC A,(HL)
+L24EA: NOP
+ NOP
+ NOP
+ JP P,0E1C3H
+ CALL P,095E8H
+ RET PO
+ LD A,L
+ RST 000H
+ ADC A,0DEH
+ RET
+
+ DB 0DDH
+ JP C,08375H
+ RET M
+ EX DE,HL
+ LD A,C
+ RST 030H
+ CALL PO,0DCC8H
+ RET P
+ JP Z,0D9D7H
+ POP BC
+ RET C
+ SET 2,D
+ XOR H
+ LD (HL),E
+ ADC A,H
+ LD (HL),C
+ JR NZ,L2494 ; (-07eH)
+ SUB C
+ LD (HL),B
+ ADD A,L
+ LD D,015H
+ LD (DE),A
+ LD DE,01413H
+ ADC A,A
+ ADC A,E
+ LD E,E
+ LD E,H
+ LD E,L
+ LD E,(HL)
+ CPL
+ INC B
+ LD D,D
+ LD D,L
+ LD C,(HL)
+ DEC C
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ INC B
+ LD C,H
+ LD C,C
+ LD D,E
+L2536: LD D,H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ INC B
+ LD B,C
+ LD D,L
+ LD D,H
+ LD C,A
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC B
+ LD D,D
+ LD B,L
+ LD C,(HL)
+ LD D,L
+ LD C,L
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC B
+ LD B,E
+ LD C,A
+ LD C,H
+ LD C,A
+ LD D,D
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC B
+ LD B,E
+ LD C,B
+ LD D,D
+ INC H
+ JR Z,L2579 ; (+000H)
+L2579: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ EX AF,AF'
+ LD B,H
+ LD B,L
+ LD B,(HL)
+ JR NZ,L25D3 ; (+04bH)
+ LD B,L
+ LD E,C
+ JR Z,L258C ; (+000H)
+L258C: NOP
+ NOP
+L258E: NOP
+ NOP
+ NOP
+ NOP
+ INC B
+ LD B,E
+ LD C,A
+ LD C,(HL)
+ LD D,H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ INC B
+ LD D,E
+ LD B,C
+ LD D,(HL)
+ LD B,L
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ INC B
+ LD C,H
+ LD C,A
+ LD B,C
+ LD B,H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ PUSH HL
+ LD DE,(01820H)
+L25C7: PUSH DE
+ LD DE,L140B
+ LD (01820H),DE
+ LD A,(0004FH)
+ PUSH AF
+L25D3: LD A,064H
+ LD (0004FH),A
+ LD (014B9H),SP
+ XOR A
+ LD (L1819),A
+L25E0: LD SP,MONIT
+ LD BC,013E3H
+ PUSH BC
+ CALL NL
+ LD A,02AH
+ CALL PRNT
+L25EF: CALL 014C5H
+ JR NC,L25EF ; (-005H)
+ LD A,(DE)
+ CP 02AH
+ RET NZ
+ INC DE
+ LD A,(DE)
+ INC DE
+ EXX
+ LD HL,L141C
+ LD B,00AH
+L2601: CP (HL)
+ INC HL
+ JR Z,L2616 ; (+011H)
+ INC HL
+ INC HL
+ DJNZ L2601 ; (-008H)
+ EXX
+ RET
+
+ LD DE,0181AH
+ CALL NL
+ CALL 00051H
+ JR L25E0 ; (-036H)
+
+L2616: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH DE
+ EXX
+ RET
+
+ LD B,H
+ LD C,D
+ DEC D
+ LD C,L
+ CP L
+ DEC D
+ LD D,B
+ LD A,(04714H)
+ LD B,L
+ DEC D
+ LD B,(HL)
+ CALL P,L5215
+L262C: CP B
+ INC D
+ LD D,E
+ LD B,E
+ INC D
+ LD C,H
+ LD L,C
+L2633: INC D
+ LD D,(HL)
+ XOR C
+ INC D
+ LD D,H
+ LD E,D
+ LD D,03AH
+ ADD HL,DE
+ JR L262C ; (-012H)
+
+ LD BC,L1932
+ JR 0260CH ; (-037H)
+
+ CALL 01642H
+ RET C
+ LD (0100EH),BC
+ LD (01010H),DE
+ LD (01012H),HL
+ PUSH DE
+ PUSH BC
+ EXX
+ CALL L171F
+ LD HL,00FFCH
+ LD (HL),001H
+ LD BC,00080H
+ CALL WRINF
+ POP BC
+ POP HL
+ CALL NC,WRDAT
+L2668: RET
+
+ CALL 014E7H
+ PUSH HL
+ PUSH AF
+ CALL L1484
+ POP AF
+ POP HL
+ JR NC,L2678 ; (+003H)
+ LD HL,(0FF14H)
+L2678: LD BC,(0FF12H)
+ CALL RDDAT
+L267F: JP C,0181FH
+ JR L2668 ; (-01cH)
+
+ CALL L171F
+ LD A,001H
+ LD (00FFCH),A
+L268C: LD HL,0FF00H
+ LD BC,00080H
+ CALL RDINF
+ JP C,0181FH
+ LD DE,L180E
+ CALL 016C8H
+ CALL L16EE
+ JR NZ,L268C ; (-017H)
+ LD DE,L430B
+ JP 016C8H
+
+ CALL L1484
+ LD HL,(0FF14H)
+ LD BC,(0FF12H)
+ CALL VERFY
+ JR L267F ; (-039H)
+
+ LD SP,MONIT
+ POP AF
+ LD (0004FH),A
+ POP HL
+ LD (L1820),HL
+ POP HL
+L26C4: RET
+
+ LD DE,0FF00H
+ CALL 0004AH
+ JR C,L26E5 ; (+018H)
+ LD A,(DE)
+ CP 03AH
+ SCF
+ RET NZ
+ INC DE
+ CALL 014E7H
+ RET C
+ LD A,(DE)
+ INC DE
+ XOR 03DH
+ RET NZ
+L26DC: CALL L151B
+ CCF
+ RET NC
+ LD (HL),A
+ INC HL
+ JR L26DC ; (-009H)
+
+L26E5: LD (DE),A
+ RET
+
+ PUSH HL
+ CALL L1501
+ PUSH DE
+ CALL L1522
+ JR C,L26FC ; (+00bH)
+ LD H,A
+ CALL L1522
+ JR C,L26FC ; (+005H)
+ LD L,A
+ POP AF
+ POP AF
+ XOR A
+ RET
+
+L26FC: POP DE
+ POP HL
+ SCF
+ RET
+
+L2700: INC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L2700 ; (-006H)
+ RET
+
+ LD A,(DE)
+ SUB 030H
+ RET C
+ CP 00AH
+L270D: JR C,L2718 ; (+009H)
+ CP 011H
+ RET C
+ SUB 007H
+ CP 010H
+ CCF
+ RET C
+L2718: OR A
+ INC DE
+ RET
+
+ CALL L1501
+ CP 03BH
+L2720: JR Z,L2740 ; (+01eH)
+ PUSH BC
+ PUSH DE
+ CALL 01507H
+ JR C,L273C ; (+013H)
+ LD C,A
+L272A: CALL 01507H
+ JR C,L273C ; (+00dH)
+ LD B,A
+L2730: LD A,C
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ ADD A,B
+ LD C,A
+ LD A,C
+ POP BC
+ POP BC
+ OR A
+ RET
+
+L273C: POP DE
+ POP BC
+ SCF
+ RET
+
+L2740: INC DE
+ LD A,(DE)
+ INC DE
+ OR A
+ RET
+
+ CALL 014E7H
+ RET C
+ JP (HL)
+
+ CALL 014E7H
+ JR C,L275A ; (+00bH)
+ PUSH HL
+ CALL 014E7H
+ JR C,L2759 ; (+004H)
+ POP DE
+ EX DE,HL
+ JR L2760 ; (+007H)
+
+L2759: POP HL
+L275A: EX DE,HL
+ LD HL,00080H
+ ADD HL,DE
+ EX DE,HL
+L2760: LD C,008H
+ CALL L156D
+ RET C
+ PUSH HL
+ SBC HL,DE
+ POP HL
+L276A: RET NC
+ JR L2760 ; (-00dH)
+
+ CALL L15EF
+ CALL L15A2
+ CALL L15EA
+ LD B,C
+ PUSH HL
+L2778: LD A,(HL)
+ CALL 015A7H
+ INC HL
+ LD A,020H
+ CALL L17D3
+ DJNZ L2778 ; (-00cH)
+ POP HL
+ LD A,02FH
+ CALL L17D3
+ LD B,C
+L278B: LD A,(HL)
+ CP 020H
+ JR NC,L2792 ; (+002H)
+ LD A,02EH
+L2792: CALL L17D3
+ INC HL
+ DJNZ L278B ; (-00dH)
+ CALL L17F9
+ CALL BRKEY
+ SCF
+ RET Z
+ OR A
+ RET
+
+ LD A,H
+ CALL 015A7H
+ LD A,L
+ PUSH AF
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ CALL 015B0H
+L27AF: POP AF
+ AND 00FH
+ ADD A,030H
+ CP 03AH
+ JR C,L27BA ; (+002H)
+ ADD A,007H
+L27BA: JP L17D3
+
+ CALL 014E7H
+ LD A,(L1819)
+ PUSH AF
+ XOR A
+ LD (L1819),A
+L27C8: CALL NL
+ CALL L15EF
+ CALL L15A2
+ CALL L15EA
+ LD A,(HL)
+ CALL 015A7H
+ LD A,014H
+ CALL PRNT
+ CALL PRNT
+ CALL 014C5H
+ JR NC,L27C8 ; (-01dH)
+ POP AF
+ LD (L1819),A
+ RET
+
+ LD A,03DH
+ JP L17D3
+
+ LD A,03AH
+ JP L17D3
+
+ CALL 014E7H
+ RET C
+ PUSH HL
+L27F9: CALL 014E7H
+ POP BC
+ RET C
+ PUSH HL
+ PUSH BC
+ LD HL,0FF00H
+ CALL L14DC
+ LD DE,0FF00H
+ OR A
+ SBC HL,DE
+ LD C,L
+ POP HL
+ PUSH HL
+ EXX
+ POP HL
+ POP DE
+ EXX
+ RET Z
+L2814: CALL 0162EH
+ JR NZ,L281D ; (+004H)
+ CALL L156D
+ RET C
+L281D: CALL BRKEY
+ RET Z
+ EXX
+ INC HL
+ PUSH HL
+ SCF
+ SBC HL,DE
+ POP HL
+ RET NC
+ PUSH HL
+ EXX
+ POP HL
+ JR L2814 ; (-01aH)
+
+ LD A,(DE)
+ CP (HL)
+ RET NZ
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD B,C
+L2835: LD A,(DE)
+ CP (HL)
+ JR NZ,L283E ; (+005H)
+ INC DE
+ INC HL
+ DJNZ L2835 ; (-008H)
+ XOR A
+L283E: POP HL
+ POP DE
+ POP BC
+ RET
+
+ CALL 014E7H
+ RET C
+ PUSH HL
+ CALL 014E7H
+ POP BC
+ RET C
+ SBC HL,BC
+ INC HL
+ PUSH HL
+ PUSH BC
+ CALL 014E7H
+ PUSH HL
+ EXX
+ POP HL
+ POP DE
+ POP BC
+ RET
+
+ CALL 01642H
+ RET C
+L285E: EX DE,HL
+ PUSH HL
+ SBC HL,DE
+ POP HL
+ JR C,L2868 ; (+003H)
+ LDIR
+ RET
+
+L2868: ADD HL,BC
+ DEC HL
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ EX DE,HL
+ LDDR
+ RET
+
+ LD A,0FFH
+ LD (L16BE),A
+ LD A,00DH
+ PUSH HL
+ LD HL,L16BE
+ INC (HL)
+ POP HL
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ PUSH AF
+ XOR A
+ CALL L169B
+ POP AF
+ PUSH AF
+ OUT (0FFH),A
+ LD A,080H
+ OUT (0FEH),A
+ LD A,001H
+ CALL L169B
+ XOR A
+ OUT (0FEH),A
+ POP AF
+ POP HL
+ POP DE
+ POP BC
+ RET
+
+ LD D,A
+ LD BC,MONIT
+L289F: LD E,020H
+L28A1: IN A,(0FEH)
+ AND 00DH
+ CP D
+ RET Z
+ DEC E
+ JR NZ,L28A1 ; (-009H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L289F ; (-010H)
+ XOR A
+ LD (0004DH),A
+ LD A,041H
+ JP 0181FH
+
+L28B8: LD A,020H
+ CALL 01678H
+ LD A,000H
+L28BF: SUB 00AH
+ JR NC,L28BF ; (-004H)
+ ADD A,00AH
+ RET Z
+ JR L28B8 ; (-010H)
+
+ CALL NL
+ CALL 00051H
+ PUSH HL
+ INC HL
+ CALL 016E9H
+ LD D,010H
+L28D5: LD A,(HL)
+ CP 00DH
+ JR Z,L28E1 ; (+007H)
+ CALL PRNT
+ INC HL
+ DEC D
+ JR NZ,L28D5 ; (-00cH)
+L28E1: CALL 016E9H
+ CALL NL
+ POP HL
+ RET
+
+ LD A,022H
+ JP PRNT
+
+ PUSH DE
+ PUSH HL
+ INC HL
+ LD DE,00FFCH
+ INC DE
+ LD A,(DE)
+ CP 00DH
+ JR Z,L290D ; (+013H)
+ LD B,011H
+L28FC: LD A,(DE)
+ CP (HL)
+ JR NZ,L290A ; (+00aH)
+ CP 00DH
+ JR Z,L290D ; (+009H)
+ INC HL
+ INC DE
+ DJNZ L28FC ; (-00cH)
+ JR L290D ; (+003H)
+
+L290A: POP HL
+ POP DE
+ RET
+
+L290D: POP HL
+ PUSH HL
+ LD A,(00FFCH)
+ OR A
+ JR Z,L291B ; (+006H)
+ CP (HL)
+ LD A,018H
+ JP NZ,0181FH
+L291B: POP HL
+ POP DE
+ XOR A
+ RET
+
+L291F: LD A,(DE)
+ OR A
+ JR Z,L2928 ; (+005H)
+ INC DE
+ CP 03AH
+ JR NZ,L291F ; (-009H)
+L2928: LD B,010H
+ JR L2934 ; (+008H)
+
+ CALL L1C66
+ LD B,000H
+ CALL NZ,04DBCH
+L2934: PUSH HL
+ LD HL,00FFCH
+ INC HL
+ LD C,011H
+ PUSH HL
+L293C: LD (HL),020H
+ INC HL
+ DEC C
+ JR NZ,L293C ; (-006H)
+ POP HL
+ LD A,B
+ OR A
+L2945: JR Z,L2956 ; (+00fH)
+ CP 011H
+ JR C,L294D ; (+002H)
+ LD B,010H
+L294D: LD A,(DE)
+ OR A
+L294F: JR Z,L2956 ; (+005H)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L294D ; (-009H)
+L2956: LD (HL),00DH
+ POP HL
+ RET
+
+ EX AF,AF'
+ LD A,(L1819)
+ OR A
+ JR Z,L29DE ; (+07dH)
+ EX AF,AF'
+ CP 011H
+ JR C,L29CB ; (+065H)
+ CP 017H
+ JP C,01678H
+ CP 020H
+ JR C,L29CB ; (+05cH)
+ CP 060H
+ JP C,01678H
+ CP 07BH
+ JP Z,01678H
+ CP 080H
+ JP Z,01678H
+ CP 08BH
+ JP Z,01678H
+ CP 092H
+ JR C,L29CB ; (+044H)
+ CP 095H
+ JR Z,L29CB ; (+040H)
+ CP 099H
+ JR Z,L29CB ; (+03cH)
+ CP 0A7H
+ JR Z,L29CB ; (+038H)
+ CP 0ACH
+ JR Z,L29CB ; (+034H)
+ CP 0B1H
+ JR Z,L29CB ; (+030H)
+ CP 0B4H
+ JP C,01678H
+ CP 0B7H
+ JR C,L29CB ; (+027H)
+ CP 0BCH
+ JR Z,L29CB ; (+023H)
+ CP 0BFH
+ JP C,01678H
+ CP 0C6H
+ JP Z,01678H
+ CP 0CFH
+ JP Z,01678H
+ CP LSD7
+ JP Z,01678H
+ CP 0FBH
+ JP Z,01678H
+ CP 0FCH
+ JP Z,01678H
+ CP 0FFH
+ JP Z,01678H
+L29CB: PUSH AF
+ LD A,02EH
+ CALL 01678H
+ POP AF
+ RET
+
+ EX AF,AF'
+ LD A,(L1819)
+ OR A
+ JR Z,L29DE ; (+004H)
+ EX AF,AF'
+ JP 01678H
+
+L29DE: EX AF,AF'
+ JP PRNT
+
+ PUSH DE
+L29E3: LD A,(DE)
+ OR A
+ JR Z,L29ED ; (+006H)
+ CALL L17D3
+ INC DE
+ JR L29E3 ; (-00aH)
+
+L29ED: POP DE
+L29EE: RET
+
+ LD A,(L1819)
+ OR A
+ JP Z,PRNTT
+ JP L16B8
+
+ LD A,(L1819)
+ OR A
+ JP Z,LETNL
+ JP L1671
+
+ LD D,A
+ SBC A,L
+ AND (HL)
+ SUB (HL)
+ AND (HL)
+ OR B
+ SUB A
+ JR NZ,L2A2C ; (+020H)
+ JR NZ,L2A0E ; (+000H)
+L2A0E: LD B,(HL)
+ OR A
+ AND L
+ OR B
+ SBC A,H
+ JR NZ,02A35H ; (+020H)
+ JR NZ,L2A37 ; (+020H)
+ JR NZ,L2A19 ; (+000H)
+L2A19: NOP
+ LD B,L
+ SBC A,L
+ SBC A,L
+ CCF
+ NOP
+ JP L2108
+
+ LD DE,L6AC1
+L2A25: CALL 00051H
+ EX DE,HL
+L2A29: LD (HL),000H
+ INC HL
+L2A2C: LD A,H
+ CP 0FFH
+ JR C,L2A29 ; (-008H)
+ LD HL,L1848
+ LD (000E7H),HL
+L2A37: LD HL,0FF00H
+ LD (06ABDH),HL
+ CALL L2231
+ CALL L2239
+L2A43: CALL L224E
+ JR L2A4D ; (+005H)
+
+L2A48: LD A,016H
+ CALL L17D3
+L2A4D: LD SP,(06AB9H)
+ LD HL,0FFFFH
+ PUSH HL
+ LD (038D5H),SP
+ CALL L1C85
+ CALL L2282
+L2A5F: XOR A
+ LD (L42A3),A
+ LD (L38DC),A
+ CALL NL
+ LD DE,L219B
+ CALL 00051H
+ CALL LETNL
+L2A72: XOR A
+ LD (L38DC),A
+L2A76: LD HL,0FFFFH
+ LD (038E6H),HL
+ CALL L2229
+ LD DE,0110FH
+ LD A,(L42A3)
+ OR A
+ JR Z,L2A96 ; (+00eH)
+ CP 002H
+ JR NZ,L2A91 ; (+005H)
+ CALL 019B9H
+ JR L2A99 ; (+008H)
+
+L2A91: CALL L1989
+ JR L2A99 ; (+003H)
+
+L2A96: CALL 0004AH
+L2A99: JR NC,L2ABA ; (+01fH)
+ CP 004H
+ JR NZ,L2A9F ; (+000H)
+L2A9F: LD A,(L38DF)
+ OR A
+ LD A,000H
+ LD (L38DF),A
+ JR NZ,L2A5F ; (-04bH)
+ LD A,(L38DE)
+ OR A
+ JP NZ,L1C6E
+ LD A,(L38DC)
+ OR A
+ JR Z,L2A72 ; (-045H)
+ JR L2A5F ; (-05aH)
+
+L2AB9: INC DE
+L2ABA: LD A,(DE)
+ CP 020H
+ JR Z,L2AB9 ; (-006H)
+ OR A
+ JR Z,L2A76 ; (-04cH)
+ CALL 03ABEH
+ JP NC,L6891
+ LD A,(L38DC)
+ OR A
+ JP NZ,L20E9
+ LD HL,L6AC1
+ PUSH HL
+ CALL 04795H
+ INC HL
+ LD (L38E0),HL
+ LD (HL),000H
+ INC HL
+ LD (HL),000H
+ POP HL
+L2AE0: JR L2B25 ; (+043H)
+
+L2AE2: POP HL
+ LD HL,(038E6H)
+ INC HL
+ LD A,L
+ OR H
+ JP Z,L185F
+ XOR A
+ LD (L38D9),A
+ LD A,(L38D8)
+ CP 002H
+L2AF5: JP NZ,L185F
+L2AF8: JP L20EF
+
+L2AFB: LD HL,(L38E0)
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L2AE2 ; (-023H)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ LD (L38E0),HL
+ EX DE,HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD (038E6H),DE
+ LD A,(L38DD)
+ OR A
+ CALL NZ,L2278
+ POP DE
+ JR L2B25 ; (+006H)
+
+ CALL L1C66
+ JP NZ,L20FE
+L2B25: LD (038D5H),SP
+ LD DE,0191FH
+ PUSH DE
+L2B2D: LD (038F0H),HL
+ CALL BRKEY
+ JP Z,02071H
+ LD A,(HL)
+ CP 080H
+ JP NC,L1C3F
+ CP 027H
+ JP Z,03324H
+ CP 020H
+ JR NZ,L2B48 ; (+003H)
+L2B45: INC HL
+ JR L2B2D ; (-01bH)
+
+L2B48: CP 03AH
+ JR Z,L2B45 ; (-007H)
+ OR A
+ JR Z,L2AFB ; (-054H)
+ CP 041H
+ JP C,L20FE
+ CP 05BH
+ JP NC,L20FE
+ CALL 0580BH
+ PUSH BC
+ PUSH BC
+ PUSH AF
+ CALL L5414
+ CP 0F4H
+ JP NZ,L20FE
+ INC HL
+ CALL 0528BH
+ POP BC
+ LD A,(06A65H)
+ CP B
+ JP NZ,L20FB
+ EX (SP),HL
+ EX DE,HL
+ CP 005H
+ JR Z,L2B81 ; (+008H)
+ PUSH BC
+ CALL 01B82H
+ POP AF
+ POP HL
+ POP BC
+ RET
+
+L2B81: LD C,A
+ LD B,000H
+ LDIR
+ POP HL
+ POP BC
+ RET
+
+ LD HL,(L42A1)
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD A,D
+ OR E
+ JR Z,L2BC3 ; (+02fH)
+ PUSH DE
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ LD (L42A1),HL
+ EX DE,HL
+ LD DE,L6AC1
+ LD A,00BH
+ LD (DE),A
+ INC DE
+ POP BC
+ DEC BC
+ DEC BC
+ LDIR
+ LD HL,L6AC1
+ LD DE,0110FH
+ CALL L49CD
+ LD A,02EH
+ CALL L17D3
+ OR A
+ RET
+
+ LD HL,(L42A1)
+ LD E,(HL)
+ INC HL
+ LD A,(HL)
+ INC HL
+ OR E
+ JR NZ,L2BD0 ; (+00dH)
+L2BC3: LD (L42A3),A
+ CALL LETNL
+ LD SP,(038D5H)
+ JP L185F
+
+L2BD0: LD DE,L6AC1
+ LD A,00BH
+ LD (DE),A
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ INC DE
+ INC HL
+ LD A,(HL)
+L2BDC: LD (DE),A
+ INC DE
+ INC HL
+L2BDF: LD A,(HL)
+ CP 03AH
+ JR Z,L2BDC ; (-008H)
+ CP 080H
+ JP Z,01A72H
+ CP 081H
+ JP Z,L1A76
+ CP 022H
+ CALL Z,01A1FH
+ CP 022H
+ JR Z,L2BDC ; (-01bH)
+ CP 00DH
+ JR NZ,L2C2B ; (+030H)
+ XOR A
+ LD (DE),A
+ INC HL
+ LD (L42A1),HL
+ EX DE,HL
+ LD HL,(06AB3H)
+ INC H
+ INC H
+ INC H
+ INC H
+ OR A
+ SBC HL,DE
+ JP NC,L20B9
+ LD HL,L6AC1
+ LD DE,0110FH
+ CALL L49CD
+ LD A,02EH
+ CALL L17D3
+ OR A
+ RET
+
+L2C1F: LD (DE),A
+ INC DE
+ INC HL
+ LD A,(HL)
+ CP 00DH
+ RET Z
+ CP 022H
+ RET Z
+ JR L2C1F ; (-00cH)
+
+L2C2B: CP 0FFH
+ JR Z,L2C3C ; (+00dH)
+ CP 0F2H
+ JR NZ,L2C49 ; (+016H)
+ LD A,0FEH
+ LD (DE),A
+ INC DE
+ LD A,0A4H
+ JP 019DCH
+
+L2C3C: INC HL
+ PUSH HL
+ LD B,005H
+ LD HL,L1B7C
+ CALL L1A6B
+ POP HL
+ JR L2BDF ; (-06aH)
+
+L2C49: CP 080H
+ JR C,L2BDC ; (-071H)
+ INC HL
+ PUSH HL
+ LD HL,01A91H
+ SUB 080H
+L2C54: LD B,A
+ JR Z,L2C5E ; (+007H)
+L2C57: LD A,(HL)
+ OR A
+ INC HL
+ JR NZ,L2C57 ; (-005H)
+ DJNZ L2C57 ; (-007H)
+L2C5E: LD A,(HL)
+ OR A
+ JR Z,L2C67 ; (+005H)
+ LD (DE),A
+ INC DE
+ INC HL
+ JR L2C5E ; (-009H)
+
+L2C67: POP HL
+ JP 019DFH
+
+L2C6B: LD A,(HL)
+ LD (DE),A
+ INC DE
+ INC HL
+ DJNZ L2C6B ; (-006H)
+ RET
+
+ LD A,097H
+ JR L2C78 ; (+002H)
+
+ LD A,094H
+L2C78: LD (DE),A
+ INC DE
+ INC HL
+ LD A,(HL)
+ CP 03AH
+ JP Z,019DCH
+ CP 022H
+ CALL Z,01A1FH
+ CP 022H
+ JR Z,L2C78 ; (-012H)
+ CP 00DH
+ JP Z,019FBH
+ JR L2C78 ; (-019H)
+
+ SUB A
+ NOP
+ SUB H
+ NOP
+ ADD A,A
+ NOP
+ ADD A,E
+ NOP
+ SBC A,A
+ NOP
+ ADC A,A
+ NOP
+ SBC A,(HL)
+ NOP
+ ADC A,L
+ NOP
+ SUB E
+ NOP
+ ADD A,B
+ NOP
+ SUB L
+ NOP
+ ADD A,C
+ NOP
+ ADD A,H
+ NOP
+ ADC A,(HL)
+ NOP
+ SBC A,C
+ NOP
+ SBC A,B
+ NOP
+ SBC A,L
+ NOP
+ OR H
+ NOP
+ OR L
+ NOP
+ CP 0A5H
+ NOP
+ AND B
+ NOP
+ SUB (HL)
+ NOP
+ RST 000H
+ RST 038H
+ RST 000H
+ NOP
+ SUB C
+ NOP
+ ADD A,L
+ NOP
+ CP 0A6H
+ NOP
+ CP 0A2H
+ NOP
+ CP 0A3H
+ NOP
+ JP 00028H
+
+ ADC A,000H
+ RET NC
+ NOP
+ RST 008H
+ NOP
+ CALL NZ,0FE00H
+ AND A
+ NOP
+ SBC A,D
+ NOP
+ CP 081H
+ NOP
+ CP 082H
+ NOP
+ XOR L
+ NOP
+ XOR E
+ NOP
+ CP D
+ NOP
+ CP 0A4H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ JP PO,MMAPIO
+ NOP
+ POP HL
+ NOP
+ XOR 000H
+ RST 028H
+ NOP
+ RET P
+ NOP
+ POP AF
+ NOP
+ JP P,0F300H
+ NOP
+ CALL P,0F500H
+ NOP
+ OR 000H
+ CALL PE,0EB00H
+ NOP
+ DB 0EDH, 000H ; Undocumented 8 T-State NOP
+ RST 030H
+ NOP
+ RET M
+ NOP
+ CALL M,0FB00H
+ NOP
+ RST 038H
+ CP D
+ JR Z,L2D1C ; (+000H)
+L2D1C: RST 038H
+ CP E
+ JR Z,L2D20 ; (+000H)
+L2D20: RST 038H
+ CP H
+ JR Z,L2D24 ; (+000H)
+L2D24: RST 038H
+ XOR H
+ JR Z,L2D28 ; (+000H)
+L2D28: RST 038H
+ AND B
+ JR Z,L2D2C ; (+000H)
+L2D2C: RST 038H
+ AND C
+ JR Z,L2D30 ; (+000H)
+L2D30: RST 038H
+ XOR E
+ JR Z,L2D34 ; (+000H)
+L2D34: RST 038H
+ XOR L
+ JR Z,L2D38 ; (+000H)
+L2D38: RST 038H
+ ADC A,C
+ JR Z,L2D3C ; (+000H)
+L2D3C: AND 028H
+ NOP
+ RST 020H
+ JR Z,L2D42 ; (+000H)
+L2D42: RST 038H
+ OR L
+ NOP
+ NOP
+ NOP
+ NOP
+ DB 0FDH
+ NOP
+ RST 038H
+ ADC A,B
+ JR Z,L2D4E ; (+000H)
+L2D4E: RST 038H
+ ADD A,D
+ JR Z,L2D52 ; (+000H)
+L2D52: RST 038H
+ ADD A,E
+ JR Z,L2D56 ; (+000H)
+L2D56: RST 038H
+ ADD A,H
+ JR Z,L2D5A ; (+000H)
+L2D5A: RST 038H
+ ADC A,D
+ JR Z,L2D5E ; (+000H)
+L2D5E: RST 038H
+ ADD A,(HL)
+ JR Z,L2D62 ; (+000H)
+L2D62: RST 038H
+ ADD A,B
+ JR Z,L2D66 ; (+000H)
+L2D66: RST 038H
+ ADC A,H
+ JR Z,L2D6A ; (+000H)
+L2D6A: RST 038H
+ ADD A,L
+ JR Z,L2D6E ; (+000H)
+L2D6E: RST 038H
+ ADD A,C
+ JR Z,L2D72 ; (+000H)
+L2D72: RST 038H
+ ADC A,E
+ JR Z,L2D76 ; (+000H)
+L2D76: RST 038H
+ ADD A,A
+ JR Z,L2D7A ; (+000H)
+L2D7A: NOP
+ NOP
+ RST 038H
+ ADC A,(HL)
+ JR Z,L2DB1 ; (+031H)
+ ADD HL,HL
+ NOP
+ PUSH DE
+ CALL 0527FH
+ LD HL,0110FH
+ LD (HL),A
+ LD B,A
+ LD C,A
+L2D8C: INC HL
+ LD A,(DE)
+ LD (HL),A
+ INC DE
+ DJNZ L2D8C ; (-006H)
+ POP HL
+ LD A,(HL)
+ CP C
+ JR Z,L2DDC ; (+045H)
+ PUSH HL
+ OR A
+ CALL NZ,L1BEC
+ POP HL
+ LD A,(0110FH)
+ OR A
+ JR Z,L2DD9 ; (+036H)
+ PUSH HL
+ LD BC,(06AB3H)
+ SBC HL,BC
+ EX DE,HL
+ LD HL,(L6AB7)
+ DEC HL
+ DEC HL
+ LD (HL),E
+L2DB1: INC HL
+ LD (HL),D
+ INC HL
+ LD BC,(06AB5H)
+ OR A
+ POP DE
+ PUSH HL
+ SBC HL,BC
+ EX DE,HL
+ LD (HL),A
+ LD B,A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ POP HL
+ LD DE,0110FH
+ INC DE
+ CALL 058D0H
+ LD (HL),000H
+ INC HL
+ LD (HL),000H
+ INC HL
+ LD (038D3H),HL
+ LD (L6AB7),HL
+ RET
+
+L2DD9: LD (HL),000H
+ RET
+
+L2DDC: INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L6AB5)
+ ADD HL,DE
+ LD DE,0110FH
+ LD B,C
+ INC DE
+ JP 058D0H
+
+ LD C,(HL)
+ LD B,000H
+ INC BC
+ INC BC
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L6AB5)
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ LD E,L
+ LD D,H
+ ADD HL,BC
+ PUSH BC
+ PUSH DE
+ EX DE,HL
+ LD HL,(L6AB7)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ EX DE,HL
+ POP DE
+ PUSH DE
+ JR Z,L2E10 ; (+002H)
+ LDIR
+L2E10: POP DE
+ POP BC
+ LD HL,(L6AB7)
+ OR A
+ SBC HL,BC
+ LD (L6AB7),HL
+ EX DE,HL
+L2E1C: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ RET Z
+ LD HL,(06AB3H)
+ ADD HL,DE
+ LD A,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ OR A
+ EX DE,HL
+ SBC HL,BC
+ EX DE,HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ PUSH BC
+ LD C,A
+ LD B,000H
+ LD HL,(L6AB5)
+ ADD HL,DE
+ ADD HL,BC
+ POP BC
+ JR L2E1C ; (-023H)
+
+ INC HL
+ CP 0FFH
+ JP Z,L241B
+ LD DE,L3207
+ CP 0FEH
+ JR NZ,L2E50 ; (+004H)
+ LD A,(HL)
+ INC HL
+ JR L2E58 ; (+008H)
+
+L2E50: CP LSE0
+ JP NC,L20FE
+ LD DE,03147H
+L2E58: SUB 080H
+ PUSH HL
+ EX DE,HL
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ ADD HL,DE
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ EX (SP),HL
+ CALL L5414
+ OR A
+ RET Z
+ CP 03AH
+ RET
+
+ JP NZ,L3807
+ LD DE,(06ABFH)
+ CALL L1C85
+ LD SP,(06AB9H)
+ LD HL,0FFFFH
+ PUSH HL
+ PUSH HL
+ EX DE,HL
+ JP 018FEH
+
+ PUSH HL
+ PUSH DE
+ CALL L224E
+ CALL L258E
+ LD HL,MONIT
+ LD (038EAH),HL
+ DEC HL
+ LD (L272A),HL
+ XOR A
+ LD (0272EH),A
+ LD (L38DE),A
+ LD (L38D9),A
+ LD (L38D8),A
+ LD (L38DF),A
+ LD (L38F2),A
+ LD (L3900),A
+ LD (03901H),A
+ LD (L5B42),A
+ LD HL,0000AH
+ LD (038E2H),HL
+ LD (L38E4),HL
+ POP DE
+ POP HL
+ RET
+
+ POP BC
+ LD (01D6DH),BC
+ CALL 01959H
+ LD (038FBH),BC
+ LD IX,MONIT
+ ADD IX,SP
+ LD (01D4DH),HL
+L2ED4: LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FFFFH
+ OR A
+ SBC HL,DE
+ JR Z,L2F04 ; (+022H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JR NZ,L2F04 ; (+01aH)
+ LD E,(IX+006H)
+ LD D,(IX+007H)
+ EX DE,HL
+ OR A
+ SBC HL,BC
+ JR Z,L2EFD ; (+007H)
+ LD DE,PRNT
+ ADD IX,DE
+ JR L2ED4 ; (-029H)
+
+L2EFD: LD DE,PRNT
+ ADD IX,DE
+ LD SP,IX
+L2F04: LD HL,(01D4DH)
+ CALL L5414
+ CP LSE0
+ INC HL
+ JP NZ,L20FE
+ CALL 0528BH
+ PUSH AF
+ PUSH HL
+ EX DE,HL
+ LD BC,00005H
+ LD DE,L2720
+ LDIR
+ POP HL
+ POP AF
+ CP LSE1
+ LD DE,L3D77
+ JR NZ,L2F2B ; (+004H)
+ INC HL
+ CALL 0528BH
+L2F2B: LD (01D4DH),HL
+ EXX
+ LD HL,0FFFBH
+ ADD HL,SP
+ EX DE,HL
+ LD HL,L2720
+ LD BC,00005H
+ LDIR
+ EXX
+ LD HL,0FFF6H
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ LD BC,00005H
+ LDIR
+ LD HL,(038FBH)
+ PUSH HL
+ LD HL,MONIT
+ PUSH HL
+ LD HL,(L38E0)
+ PUSH HL
+ LD HL,0FF12H
+ PUSH HL
+ LD HL,MONIT
+ ADD HL,SP
+ LD DE,(038D3H)
+ DEC H
+ DEC H
+ SBC HL,DE
+ LD A,00BH
+ JP C,L20BB
+ LD HL,(01D4DH)
+ JP MONIT
+
+ LD A,005H
+ LD (06A65H),A
+ POP BC
+ LD (01DE2H),BC
+ PUSH AF
+ POP BC
+ LD (01D4DH),HL
+ LD IX,MONIT
+ ADD IX,SP
+ LD (L1DD1),IX
+ LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JP NZ,L20C8
+ PUSH BC
+ POP AF
+ JP NZ,01DFAH
+ LD E,(IX+004H)
+ LD D,(IX+005H)
+ EX DE,HL
+ LD (L1DDF),HL
+ LD E,(IX+006H)
+ LD D,(IX+007H)
+ EX DE,HL
+ LD BC,00008H
+ ADD IX,BC
+ PUSH IX
+ POP DE
+ CALL L5DAF
+ INC DE
+ LD A,(DE)
+ LD IX,(L1DD1)
+ LD DE,0000DH
+ ADD IX,DE
+ PUSH IX
+ POP DE
+ BIT 7,A
+ JR NZ,L2FCB ; (+001H)
+ EX DE,HL
+L2FCB: CALL L5E4A
+ JR C,L2FE4 ; (+014H)
+ LD SP,MONIT
+ LD HL,00002H
+ ADD HL,SP
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ LD (L38E0),HL
+ LD HL,MONIT
+L2FE1: JP MONIT
+
+L2FE4: LD DE,PRNT
+ LD HL,(L1DD1)
+ ADD HL,DE
+ LD SP,HL
+ LD HL,(01D4DH)
+ CALL L5414
+ CP 02CH
+ JR NZ,L2FE1 ; (-015H)
+ INC HL
+ LD (01D4DH),HL
+ LD IX,MONIT
+ ADD IX,SP
+ LD (L1DD1),IX
+ LD HL,(01D4DH)
+ CALL L5414
+ CP 02CH
+ INC HL
+ JP Z,L1D79
+ DEC HL
+ CALL 0580BH
+ LD (01D4DH),HL
+ LD IX,(L1DD1)
+L301B: LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JP NZ,L20C8
+ LD L,(IX+006H)
+ LD H,(IX+007H)
+ OR A
+ SBC HL,BC
+ LD HL,(01D4DH)
+L3036: JP Z,L1D79
+ LD DE,PRNT
+ ADD IX,DE
+ LD (L1DD1),IX
+ LD SP,(01DD1H)
+ JR L301B ; (-02dH)
+
+ NOP
+ NOP
+ NOP
+ NOP
+L304C: CALL 03880H
+ OR A
+ RET NZ
+ INC HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ INC HL
+ LD (01E4BH),DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (01E49H),DE
+ POP DE
+ SCF
+ RET Z
+ JR L304C ; (-01dH)
+
+ LD (HL),C
+ XOR A
+ LD (L1819),A
+ LD A,(0005DH)
+ AND 07FH
+ LD (L1E69),A
+ CALL L5414
+ CP 0FBH
+ JR NZ,L3090 ; (+013H)
+ INC HL
+ CALL L5414
+ CP 050H
+ INC HL
+ JR Z,L308B ; (+005H)
+ CP 054H
+ JP NZ,L20FE
+L308B: LD (L1819),A
+ JR L30E2 ; (+052H)
+
+L3090: CP 05BH
+ JP NZ,L1EE2
+ INC HL
+ CALL L5414
+ CP 02CH
+ INC HL
+ JR Z,L30BE ; (+020H)
+ DEC HL
+ CALL L4D50
+ CP 008H
+ JP NC,L2101
+ RLCA
+ RLCA
+L30A9: RLCA
+ RLCA
+ LD B,A
+ LD A,(L1E69)
+ AND 08FH
+ OR B
+ LD (L1E69),A
+ CALL L5414
+ CP 02CH
+ JP NZ,L20FE
+ INC HL
+L30BE: CALL L5414
+ CP 05DH
+ INC HL
+ JR Z,L30E2 ; (+01cH)
+ DEC HL
+ CALL L4D50
+ CP 008H
+ JP NC,L2101
+ LD B,A
+ LD A,(L1E69)
+ AND 0F8H
+ OR B
+ LD (L1E69),A
+ CALL L5414
+ CP 05DH
+ JP NZ,L20FE
+ INC HL
+L30E2: CALL L1C66
+ JP Z,L1FEC
+ LD A,(HL)
+ CP 03BH
+ JP Z,L1FC7
+ CP 02CH
+ JP Z,L1FC7
+ CP LSE6
+ JR Z,L3170 ; (+079H)
+ CP LSE3
+ JP Z,L2730
+ PUSH BC
+ CALL 0528BH
+ POP BC
+ LD A,(06A65H)
+ OR A
+ JP Z,L1FEC
+ CP 003H
+ JP Z,02033H
+ PUSH HL
+ EX DE,HL
+ CALL L3C69
+ POP HL
+L3113: LD A,(DE)
+ OR A
+ JP Z,L1FC2
+ CALL L1F1E
+ INC DE
+ JR L3113 ; (-00bH)
+
+ EX AF,AF'
+ LD A,(L1819)
+ CP 054H
+ JR Z,L3144 ; (+01eH)
+ CP 050H
+ JR Z,L3148 ; (+01eH)
+ PUSH HL
+ LD HL,0005DH
+ LD A,(HL)
+ PUSH AF
+ LD A,(L1E69)
+ RLCA
+ RLC (HL)
+ RRA
+ LD (HL),A
+ EX AF,AF'
+ CALL L17D3
+ POP AF
+ RLCA
+ RLC (HL)
+ RRA
+ LD (HL),A
+ POP HL
+ RET
+
+L3144: EX AF,AF'
+ JP 0466FH
+
+L3148: EX AF,AF'
+ CP 011H
+ LD C,009H
+ JR Z,L316C ; (+01dH)
+ CP 012H
+ LD C,00BH
+ JR Z,L316C ; (+017H)
+ CP 015H
+ LD C,00FH
+ JR Z,L316C ; (+011H)
+ CP 016H
+ JP NZ,01678H
+ LD A,00CH
+ CALL 01678H
+ LD A,00AH
+ CALL 01678H
+ LD C,003H
+L316C: LD A,C
+ JP 01678H
+
+L3170: LD A,020H
+ LD (L1FB8),A
+ LD A,028H
+ LD (L1FA5),A
+ LD A,(L1819)
+ OR A
+ JR Z,L3198 ; (+018H)
+ CP 054H
+ JR Z,L318E ; (+00aH)
+ LD A,0A0H
+ LD (L1FA5),A
+ LD A,(L16BE)
+ JR L31A0 ; (+012H)
+
+L318E: LD A,0FFH
+ LD (L1FA5),A
+ CALL 0464EH
+ JR L31A0 ; (+008H)
+
+L3198: LD A,013H
+ LD (L1FB8),A
+ LD A,(00054H)
+L31A0: PUSH AF
+ CALL L204E
+ CP 028H
+ JR C,L31AD ; (+005H)
+ LD A,003H
+ JP L2108
+
+L31AD: POP DE
+ SUB D
+ JP C,L1EE2
+ OR A
+ JP Z,L1EE2
+ LD D,A
+L31B7: LD A,013H
+ CALL L1F1E
+ DEC D
+ JR NZ,L31B7 ; (-008H)
+ JP L1EE2
+
+ CALL L1C66
+ JR Z,L31EC ; (+025H)
+ EX AF,AF'
+ LD A,(L1819)
+ CP 054H
+ JR Z,L31E2 ; (+013H)
+ EX AF,AF'
+ CP 02CH
+ JR Z,L322E ; (+05aH)
+ CP 03BH
+ JP NZ,01EE8H
+L31D9: INC HL
+ CALL L1C66
+ JP NZ,01EE8H
+ JR L31EF ; (+00dH)
+
+L31E2: CALL L1FFF
+ JR L31D9 ; (-00eH)
+
+ CALL L4D50
+ JR L31F6 ; (+00aH)
+
+L31EC: CALL L1FFF
+L31EF: XOR A
+ LD (L1819),A
+ LD A,(L3900)
+L31F6: OR A
+L31F7: RET Z
+ LD B,000H
+L31FA: DJNZ L31FA ; (-002H)
+ DEC A
+ JR L31F7 ; (-008H)
+
+ LD A,(L1819)
+ CP 054H
+ JP Z,L4665
+L3207: OR A
+ JP Z,LETNL
+ JP L1671
+
+ LD A,(L1819)
+ OR A
+ JR Z,L321C ; (+008H)
+ CP 054H
+ JP Z,L4655
+ JP L16B8
+
+L321C: LD A,(0005DH)
+ PUSH AF
+ LD A,(L1E69)
+ LD (0005DH),A
+ CALL PRNTT
+ POP AF
+ LD (0005DH),A
+ RET
+
+L322E: CALL 0200EH
+ JR L31D9 ; (-05aH)
+
+ PUSH HL
+ EX DE,HL
+ LD A,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L6AB5)
+ ADD HL,DE
+ EX DE,HL
+ POP HL
+ OR A
+L3241: JP Z,L1FC2
+ PUSH AF
+ LD A,(DE)
+ CALL L1F1E
+ INC DE
+ POP AF
+ DEC A
+ JR L3241 ; (-00dH)
+
+ CALL L57F9
+ PUSH BC
+ CALL L4D50
+ POP BC
+ PUSH AF
+ CALL L270D
+ POP AF
+ RET
+
+ LD A,000H
+ LD (L3900),A
+ RET Z
+ CALL L4D50
+L3265: LD (L3900),A
+ RET
+
+ LD SP,(038D5H)
+ LD HL,(038F0H)
+ PUSH HL
+ XOR A
+ CALL 0003EH
+ POP DE
+ LD (L38F3),HL
+ LD HL,(L38E0)
+ LD (038F7H),HL
+ LD HL,(038E6H)
+ LD (038F5H),HL
+ CALL NL
+ LD DE,L21A1
+ CALL 00051H
+ LD HL,(038E6H)
+ INC HL
+ LD A,L
+ OR H
+ JP Z,L185F
+ LD A,001H
+ LD (L38D9),A
+ JP 02173H
+
+ POP DE
+ LD A,(L38D9)
+ OR A
+ JP Z,L20E3
+ LD HL,(038F5H)
+ LD (038E6H),HL
+ LD HL,(038F7H)
+ LD (L38E0),HL
+ LD HL,(L38F3)
+ JP 01925H
+
+ LD A,006H
+ LD SP,(06AB9H)
+ LD HL,0FFFFH
+ PUSH HL
+ LD (038D5H),SP
+ LD HL,00D3EH
+ LD HL,0103EH
+ LD HL,0073EH
+ LD HL,0033EH
+ LD HL,0153EH
+ LD HL,0013EH
+ LD HL,0013EH
+ LD HL,0013EH
+ LD HL,00E3EH
+ LD HL,0113EH
+ LD HL,0053EH
+ LD HL,0013EH
+ LD HL,0013EH
+ LD HL,0143EH
+ LD HL,0083EH
+ LD HL,0023EH
+ LD HL,0063EH
+ LD HL,0033EH
+ LD HL,0013EH
+ LD HL,0033EH
+ JR L3308 ; (+003H)
+
+ CALL L4D50
+L3308: LD SP,(038D5H)
+ LD C,A
+ LD HL,MONIT
+ LD (L5D83),HL
+ LD HL,(038E6H)
+ INC HL
+ LD A,L
+ OR H
+ LD A,C
+ JR Z,L333E ; (+022H)
+ LD HL,(038E6H)
+ LD (038EAH),HL
+L3322: LD (038E2H),HL
+ LD HL,(L38E0)
+ LD (038ECH),HL
+ LD HL,(038F0H)
+ LD (L38EE),HL
+ LD (L38F2),A
+ EX AF,AF'
+ LD A,(L38D8)
+ INC A
+ CP 002H
+ JR Z,L338C ; (+04fH)
+ EX AF,AF'
+L333E: CP 047H
+ JR NC,L3350 ; (+00eH)
+ LD DE,L4B72
+ CP 019H
+ JR C,L3355 ; (+00cH)
+ LD DE,L4CD0
+ SUB 02AH
+ JR NC,L3355 ; (+005H)
+L3350: LD DE,L4B72
+ LD A,001H
+L3355: OR A
+ JR Z,L3350 ; (-008H)
+L3358: DEC A
+ JR Z,L3368 ; (+00dH)
+ EX AF,AF'
+L335C: LD A,(DE)
+ INC DE
+ CP 080H
+ JR Z,L3365 ; (+003H)
+ OR A
+ JR NZ,L335C ; (-009H)
+L3365: EX AF,AF'
+ JR L3358 ; (-010H)
+
+L3368: LD A,(DE)
+ CP 080H
+ JR Z,L3350 ; (-01dH)
+ CALL NL
+ CALL 00051H
+ LD HL,(038E6H)
+ INC HL
+ LD A,L
+ OR H
+ JP Z,L185F
+ DEC HL
+ LD DE,L2196
+ CALL 00051H
+ CALL L21A7
+ CALL 00051H
+ JP L185F
+
+L338C: LD (L38D8),A
+ LD HL,(038E8H)
+ PUSH HL
+ JP 018FEH
+
+ JR NZ,L333E ; (-05aH)
+ OR B
+ JR NZ,L339B ; (+000H)
+L339B: LD D,D
+ SUB D
+ AND C
+ SBC A,H
+ CP L
+ NOP
+ LD B,D
+ SBC A,L
+ SUB D
+ AND C
+ XOR C
+ NOP
+ LD DE,06A26H
+ CALL L3D86
+ LD B,004H
+L33AF: LD A,(DE)
+ CP 030H
+ RET NZ
+ INC DE
+ DJNZ L33AF ; (-007H)
+ RET
+
+ POP BC
+ LD (L38F3),HL
+ LD HL,(L38E0)
+L33BE: LD (038F7H),HL
+ LD HL,(038E6H)
+ LD (038F5H),HL
+ INC HL
+ LD A,L
+ OR H
+ JP Z,L185F
+ LD A,001H
+ LD (L38D9),A
+ JP L185F
+
+ LD DE,0000AH
+ LD BC,0000AH
+ JR Z,L340D ; (+030H)
+ CP 02CH
+ JR NZ,L33EC ; (+00bH)
+ INC HL
+ CALL L4D65
+ LD B,D
+ LD C,E
+ LD DE,0000AH
+ JR L340D ; (+021H)
+
+L33EC: CP 02EH
+ LD DE,(038E2H)
+ JR Z,L33FD ; (+009H)
+ CP 00BH
+ JP NZ,L20FE
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L33FD: INC HL
+ CALL L5414
+ CP 02CH
+ JR NZ,L340D ; (+008H)
+ PUSH DE
+ INC HL
+ CALL L4D65
+ LD C,E
+L340B: LD B,D
+ POP DE
+L340D: CALL L1C66
+ JP NZ,L20FE
+ LD A,C
+ OR B
+ JP Z,L2101
+ LD (038E2H),DE
+ LD (038E4H),BC
+ LD A,001H
+ LD (L38DF),A
+ POP AF
+ JP L1876
+
+ LD A,(L38DF)
+ OR A
+ RET Z
+ JP L3646
+
+ LD (L6ABB),HL
+ DEC H
+ LD (06AB9H),HL
+ RET
+
+ LD HL,(06ABFH)
+ LD (HL),000H
+ INC HL
+ LD (HL),000H
+ INC HL
+ LD (06AB3H),HL
+ JP L224E
+
+ CALL L2239
+ JP L184D
+
+ PUSH HL
+ PUSH DE
+ LD HL,(06AB3H)
+ LD (HL),000H
+ INC HL
+ LD (L6AB5),HL
+ LD A,(038D7H)
+ LD B,A
+ INC B
+ LD DE,00110H
+L3461: LD (HL),000H
+ ADD HL,DE
+ DJNZ L3461 ; (-005H)
+ LD (038DAH),HL
+ LD (HL),000H
+ INC HL
+ LD (HL),000H
+ INC HL
+ LD (L6AB7),HL
+ LD (038D3H),HL
+ POP DE
+ POP HL
+ RET
+
+ BIT 0,A
+ CALL NZ,L2287
+ RET
+
+ LD A,001H
+ JR L3483 ; (+001H)
+
+ XOR A
+L3483: LD (L38DD),A
+ RET
+
+ PUSH AF
+ PUSH HL
+ LD A,05BH
+ CALL L17D3
+ LD HL,(038E6H)
+ CALL L21A7
+ CALL 00051H
+ LD A,05DH
+ CALL L17D3
+ POP HL
+ POP AF
+ RET
+
+ LD A,(03901H)
+ OR A
+ JP NZ,L20CE
+ INC HL
+ CALL L4D50
+ OR A
+ JR Z,L34B2 ; (+005H)
+ CP 002H
+ JP NC,L2101
+L34B2: LD (L5B42),A
+ LD A,001H
+L34B7: LD (03901H),A
+ RET
+
+ CALL 04DBCH
+ LD A,B
+ OR A
+ RET Z
+L34C1: LD A,(DE)
+ INC DE
+ CALL L17D3
+ DJNZ L34C1 ; (-007H)
+ XOR A
+ RET
+
+ XOR A
+ LD (0265EH),A
+ CALL L5414
+ CP 0FBH
+ JP Z,L2365
+ PUSH HL
+ LD HL,(L6AB7)
+ LD (038D3H),HL
+ POP HL
+ CALL L5414
+ CP 022H
+ CALL Z,L22BB
+ JR NZ,L34F3 ; (+00bH)
+ CALL L5414
+ CP 03BH
+L34ED: INC HL
+ JR Z,L34F9 ; (+009H)
+ JP L20FE
+
+L34F3: LD DE,02713H
+ CALL 00051H
+L34F9: LD (02726H),SP
+L34FD: CALL 0580BH
+ PUSH AF
+ PUSH BC
+ CALL 02705H
+ JR Z,L350C ; (+005H)
+ CALL 03332H
+ JR L34FD ; (-00fH)
+
+L350C: XOR A
+ PUSH AF
+ PUSH HL
+ LD HL,(L6AB5)
+ LD DE,00010H
+ ADD HL,DE
+ EX DE,HL
+ CALL 000FAH
+ JP C,L2069
+ PUSH DE
+ LD HL,(02726H)
+ DEC HL
+L3522: LD A,(HL)
+ OR A
+ JR Z,L3547 ; (+021H)
+ LD (02677H),A
+ DEC HL
+ DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ DEC HL
+L352F: LD (02674H),BC
+ EX (SP),HL
+L3534: CALL L5414
+ OR A
+ JR Z,L354E ; (+014H)
+ CP 02CH
+ JR NZ,L3541 ; (+003H)
+ INC HL
+ JR L3544 ; (+003H)
+
+L3541: CALL L2633
+L3544: EX (SP),HL
+ JR L3522 ; (-025H)
+
+L3547: POP DE
+ POP HL
+ LD SP,(02726H)
+ RET
+
+L354E: LD DE,02713H
+ CALL 00051H
+ LD HL,(L6AB5)
+ LD DE,00010H
+L355A: ADD HL,DE
+ EX DE,HL
+ CALL 000FAH
+ JP C,L2069
+ EX DE,HL
+ JR L3534 ; (-031H)
+
+ INC HL
+ CALL L5414
+ CP 054H
+ JP NZ,L20FE
+ INC HL
+L356F: CALL 0580BH
+ LD (02677H),A
+ LD (02674H),BC
+ PUSH HL
+ LD HL,0110FH
+ LD BC,0FE00H
+ CP 003H
+ JR Z,L35D4 ; (+050H)
+ CALL L240E
+ CP 022H
+ JR Z,L35EB ; (+060H)
+L358B: CALL L2413
+ JR Z,L35A8 ; (+018H)
+ DEC C
+ JR NZ,L3597 ; (+004H)
+ CP 020H
+ JR Z,L35BA ; (+023H)
+L3597: CP 020H
+ JR Z,L359D ; (+002H)
+ LD C,001H
+L359D: LD (HL),A
+ INC HL
+ CALL L240A
+ JR C,L35A8 ; (+004H)
+ DJNZ L358B ; (-01bH)
+ LD (HL),A
+ INC HL
+L35A8: LD (HL),000H
+ LD HL,0110FH
+ CALL L2633
+ POP HL
+ CALL L5414
+ CP 02CH
+ RET NZ
+ INC HL
+ JR L356F ; (-04bH)
+
+L35BA: CALL L240A
+ JR C,L35A8 ; (-017H)
+ CP 020H
+ JR Z,L35BA ; (-009H)
+ CP 02CH
+ JR Z,L35A8 ; (-01fH)
+ CP 00DH
+ JR Z,L35A8 ; (-023H)
+L35CB: DEC (IY+00BH)
+ LD (IY+00CH),001H
+ JR L35A8 ; (-02cH)
+
+L35D4: CALL L240E
+ CP 022H
+ JR Z,L35EB ; (+010H)
+L35DB: CALL L2413
+ JR Z,L35A8 ; (-038H)
+ LD (HL),A
+ INC HL
+ CALL L240A
+ JR C,L35A8 ; (-03fH)
+ DJNZ L35DB ; (-00eH)
+ JR L35A8 ; (-043H)
+
+L35EB: LD (HL),A
+ INC HL
+ LD B,0FFH
+L35EF: CALL L240A
+ JR C,L35A8 ; (-04cH)
+ LD (HL),A
+ INC HL
+ CP 022H
+ JR Z,L35FE ; (+004H)
+ DJNZ L35EF ; (-00dH)
+ JR L35A8 ; (-056H)
+
+L35FE: CALL L240A
+ JR C,L35A8 ; (-05bH)
+ CALL L2413
+ JR Z,L35A8 ; (-060H)
+ JR L35CB ; (-03fH)
+
+ CALL L45B5
+ RET C
+ CALL L4571
+ OR A
+ RET
+
+ OR A
+ RET Z
+ CP 02CH
+ RET Z
+ CP 00DH
+ RET
+
+ LD A,(HL)
+ INC HL
+ CP 0BCH
+ JP Z,L2536
+ CP 0C0H
+ JP Z,L24EA
+ CP 0C4H
+ JP Z,02459H
+ JP L20FE
+
+ CALL L243C
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ LD C,A
+ CALL L243C
+ OR C
+ RET
+
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JR C,L3645 ; (+003H)
+ CP 00AH
+ RET C
+L3645: LD A,B
+L3646: RET
+
+L3647: LD A,(DE)
+ CP 02CH
+ JR L364F ; (+003H)
+
+ LD A,(DE)
+ CP 03AH
+L364F: JR L3654 ; (+003H)
+
+ LD A,(DE)
+ CP 02FH
+L3654: INC DE
+ RET Z
+ JP L2101
+
+ CALL L5414
+ CP 0F4H
+ JP NZ,L20FE
+ INC HL
+ CALL 04DBCH
+ LD A,B
+ CP 006H
+ JP NZ,L2101
+ PUSH HL
+ PUSH DE
+ LD HL,MONIT
+ CALL L24A0
+ CP 018H
+ JP NC,L2101
+ CP 00CH
+ LD A,000H
+ JR C,L3687 ; (+009H)
+ PUSH DE
+ LD DE,PRNTS
+ OR A
+ SBC HL,DE
+ POP DE
+ INC A
+L3687: PUSH AF
+ CALL L24A0
+ CP 03CH
+ JP NC,L2101
+ CALL L24A0
+ CP 03CH
+ JP NC,L2101
+ POP AF
+ EX DE,HL
+ CALL TIMST
+ POP DE
+ POP HL
+ RET
+
+ PUSH DE
+ LD D,H
+ LD E,L
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,DE
+ LD D,H
+ LD E,L
+ ADD HL,HL
+ ADD HL,DE
+ ADD HL,HL
+ ADD HL,HL
+ POP DE
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JP C,L20FB
+ CP 00AH
+ JP NC,L20FB
+ PUSH BC
+ LD C,A
+ ADD A,A
+ ADD A,A
+ ADD A,C
+ ADD A,A
+ LD C,A
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JP C,L20FB
+ CP 00AH
+ JP NC,L20FB
+ ADD A,C
+L36CD: LD C,A
+ LD B,000H
+ ADD HL,BC
+ POP BC
+ RET
+
+ PUSH BC
+ LD C,A
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ AND 00FH
+ LD B,A
+ JR Z,L36E3 ; (+005H)
+ XOR A
+L36DF: ADD A,00AH
+ DJNZ L36DF ; (-004H)
+L36E3: LD B,A
+ LD A,C
+ AND 00FH
+ ADD A,B
+ POP BC
+ RET
+
+ CALL 057FAH
+ CALL L4D65
+ CALL 03332H
+ PUSH DE
+ CALL L4D65
+ CALL 05804H
+ CALL 04D53H
+ PUSH AF
+ CALL L5414
+ INC HL
+ CP 0F4H
+ JP NZ,L20FE
+ CALL 04DBCH
+ POP BC
+ EX (SP),HL
+ CP B
+ JR NC,L3710 ; (+001H)
+ LD B,A
+L3710: INC B
+ JR L3717 ; (+004H)
+
+L3713: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+L3717: DJNZ L3713 ; (-006H)
+ POP HL
+ RET
+
+ CP 0B2H
+ JR NZ,L3726 ; (+007H)
+ INC HL
+ CALL L5414
+ JP 043E2H
+
+L3726: CP 0FFH
+ JP NZ,L20FE
+ INC HL
+ LD A,(HL)
+ INC HL
+ CP 0C7H
+ JP Z,L5C77
+ JP L20FE
+
+ CALL 057FAH
+ CALL 0580BH
+ CP 003H
+ JP NZ,L20FB
+ PUSH BC
+ CALL 0332FH
+ CALL L4D50
+ OR A
+ JP Z,L2101
+ PUSH AF
+ CALL 0332FH
+ CALL L4D50
+ POP BC
+ LD C,A
+ PUSH BC
+ CALL L270D
+ CALL L5414
+ CP 0F4H
+ JP NZ,L20FE
+ INC HL
+ CALL 04DBCH
+ EXX
+ POP BC
+ EX (SP),HL
+ EX AF,AF'
+ CALL 0527FH
+ SUB B
+ JR C,L378C ; (+01dH)
+ LD L,B
+ DEC L
+ LD H,000H
+ ADD HL,DE
+ INC A
+ LD E,A
+ EX AF,AF'
+ CP C
+ JR C,L377B ; (+001H)
+ LD A,C
+L377B: CP E
+ JR C,L377F ; (+001H)
+ LD A,E
+L377F: PUSH HL
+ EXX
+ POP HL
+ LD B,A
+ OR A
+ JR Z,L378C ; (+006H)
+L3786: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L3786 ; (-006H)
+L378C: POP HL
+ RET
+
+L378E: XOR A
+ LD (0272EH),A
+ PUSH HL
+ LD HL,(06ABFH)
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ DEC DE
+ JR Z,L37A2 ; (+004H)
+ INC HL
+ LD E,(HL)
+ INC L
+ LD D,(HL)
+L37A2: LD (0272AH),DE
+ POP HL
+ RET
+
+ CALL L1C66
+ JR Z,L378E ; (-01fH)
+ INC HL
+ CP 00CH
+ JP NZ,L25C7
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX DE,HL
+L37B8: INC HL
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ LD (0272AH),BC
+ CALL L26C4
+ EX DE,HL
+ RET
+
+ CP 00BH
+ JP NZ,L20FE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ CALL 035BBH
+ JP C,L20CB
+ EX DE,HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00CH
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ JR L37B8 ; (-02bH)
+
+L37E3: LD A,03AH
+ LD (0265EH),A
+ CALL 0580BH
+ PUSH HL
+ LD (02677H),A
+ LD (02674H),BC
+ LD A,(0272EH)
+ CP 001H
+ JP Z,02613H
+ JR NC,L381D ; (+020H)
+ LD HL,(06ABFH)
+ LD A,(HL)
+ INC HL
+ OR (HL)
+ JR Z,L3813 ; (+00eH)
+ INC HL
+ LD E,(HL)
+L3807: INC HL
+ LD D,(HL)
+ LD (0272AH),DE
+ INC HL
+ CALL L26C4
+ JR NC,L381D ; (+00aH)
+L3813: LD A,001H
+ LD (0272EH),A
+ LD A,018H
+ JP L2108
+
+L381D: LD HL,(0272CH)
+ CALL L2633
+ LD (0272CH),HL
+ CALL Z,L26C4
+ POP HL
+ CALL L5414
+ CP 02CH
+ RET NZ
+ INC HL
+ JR L37E3 ; (-050H)
+
+ LD DE,(038D3H)
+ LD B,000H
+ CALL L5414
+ CP 022H
+ JR NZ,L3859 ; (+019H)
+ INC HL
+L3841: LD A,(HL)
+ OR A
+ JR Z,L386B ; (+026H)
+ INC HL
+ CP 022H
+ JR Z,L384F ; (+005H)
+ LD (DE),A
+ INC DE
+ INC B
+ JR L3841 ; (-00eH)
+
+L384F: CALL L5414
+ CP 02CH
+ JR NZ,L386B ; (+015H)
+ INC HL
+ JR L386B ; (+012H)
+
+L3859: LD A,(HL)
+ OR A
+ JR Z,L386B ; (+00eH)
+ CP 03AH
+ JR Z,L386B ; (+00aH)
+ INC HL
+ CP 02CH
+ JR Z,L386B ; (+005H)
+ LD (DE),A
+ INC DE
+ INC B
+L3869: JR L3859 ; (-012H)
+
+L386B: PUSH HL
+ PUSH AF
+ XOR A
+ LD (DE),A
+ LD A,B
+ LD (L268C),A
+ LD DE,MONIT
+ LD A,005H
+ CP 003H
+ JR NZ,L3899 ; (+01dH)
+L387C: LD HL,(038D3H)
+ LD BC,(06AB5H)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ LD HL,(06AB9H)
+ LD A,000H
+ LD (HL),A
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ DEC HL
+ DEC HL
+ CALL 01B82H
+ JR L38BD ; (+024H)
+
+L3899: PUSH DE
+ PUSH AF
+ LD HL,(06AB9H)
+ LD DE,(038D3H)
+ EX DE,HL
+ CALL L5414
+ CP 045H
+ JP Z,L20FB
+ EX DE,HL
+ CALL L3B14
+ LD A,(DE)
+ OR A
+ JP NZ,L20FB
+ POP AF
+ POP DE
+ LD B,A
+L38B7: LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ DJNZ L38B7 ; (-006H)
+L38BD: POP AF
+ POP HL
+ OR A
+ RET Z
+ CP 03AH
+ RET
+
+ DEC HL
+L38C5: PUSH DE
+ LD DE,(0272AH)
+ LD (01E49H),DE
+L38CE: CALL L387C
+ OR A
+ JR NZ,L38E7 ; (+013H)
+ INC HL
+ LD A,(HL)
+ INC HL
+ OR (HL)
+L38D8: SCF
+L38D9: JR Z,L38FE ; (+023H)
+ INC HL
+L38DC: PUSH DE
+L38DD: LD E,(HL)
+L38DE: INC HL
+L38DF: LD D,(HL)
+L38E0: LD (026ECH),DE
+L38E4: POP DE
+ JR L38CE ; (-019H)
+
+L38E7: CP 094H
+ JR NZ,L38CE ; (-01dH)
+ LD DE,MONIT
+L38EE: LD (0272AH),DE
+L38F2: INC HL
+L38F3: LD (0272CH),HL
+ LD A,002H
+ LD (0272EH),A
+ OR A
+ POP DE
+ RET
+
+L38FE: LD A,001H
+L3900: LD (0272EH),A
+ POP DE
+ RET
+
+ CALL L5414
+ OR A
+ RET Z
+ CP 03AH
+ RET
+
+ CALL L5414
+ JP 05804H
+
+ CCF
+ JR NZ,L3916 ; (+000H)
+L3916: ADD A,(HL)
+ LD (HL),B
+ NOP
+ NOP
+ NOP
+ SUB C
+ JR Z,L38DE ; (-040H)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ RST 038H
+ RST 038H
+ NOP
+ NOP
+ NOP
+ NOP
+ INC HL
+ PUSH BC
+ CALL 04DBCH
+ LD A,B
+ PUSH HL
+ LD HL,(L6AB5)
+ LD BC,00010H
+ LD (02774H),BC
+ ADD HL,BC
+ LD B,A
+ OR A
+ JP Z,L2101
+L3947: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L3947 ; (-006H)
+ LD (HL),000H
+ POP HL
+ POP BC
+L3951: CALL L2AE0
+ JP NC,L1FEC
+ CALL L1C66
+ RET Z
+L395B: PUSH BC
+ CALL 0528BH
+ POP BC
+ LD A,(06A65H)
+ PUSH HL
+ CALL L276A
+ POP HL
+ JR L3951 ; (-019H)
+
+ CP 003H
+ JP NZ,028B4H
+ PUSH DE
+ LD HL,(L6AB5)
+ LD DE,00010H
+ ADD HL,DE
+L3977: LD A,(HL)
+ OR A
+ JP Z,L2101
+ CP 021H
+ JP Z,027E4H
+ CP 026H
+ JP Z,L285E
+ CP 023H
+ JP Z,L2101
+ CP 02AH
+ JP Z,027CDH
+ CP 024H
+ JP Z,027D9H
+ CP 0FBH
+ JP Z,027D9H
+ CP 02EH
+ JP Z,027C1H
+ CP 02BH
+ JP Z,L2101
+ CP 0C4H
+ JP NZ,L27AF
+ INC HL
+ LD A,(HL)
+ OR A
+ JP Z,L2101
+L39AF: CALL L1F1E
+ INC HL
+ LD DE,(06AB5H)
+ OR A
+ PUSH HL
+ SBC HL,DE
+ LD (02774H),HL
+ POP HL
+ JR L3977 ; (-04aH)
+
+ INC HL
+ LD A,(HL)
+ CP 023H
+ JP Z,L2101
+ DEC HL
+ LD A,02EH
+ JR L39AF ; (-01eH)
+
+ INC HL
+ LD A,(HL)
+ CP 02AH
+ JP Z,L2101
+ DEC HL
+ LD A,02AH
+ JR L39AF ; (-02aH)
+
+ INC HL
+ LD A,(HL)
+ CP 02AH
+ JP Z,L2101
+ DEC HL
+ LD A,(HL)
+ JR L39AF ; (-035H)
+
+ EX (SP),HL
+ LD A,(HL)
+ OR A
+ LD A,020H
+ JR Z,L39F6 ; (+00bH)
+ INC HL
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ LD DE,(06AB5H)
+ ADD HL,DE
+ LD A,(HL)
+L39F6: CALL L1F1E
+ POP HL
+ INC HL
+L39FB: LD A,(HL)
+ OR A
+ JR Z,L3A4E ; (+04fH)
+ CP 021H
+ JR Z,L3A53 ; (+050H)
+ CP 023H
+ JR Z,L3A53 ; (+04cH)
+ CP 026H
+ JR Z,L3A53 ; (+048H)
+ CP 02BH
+ JR Z,L3A53 ; (+044H)
+ CP 02AH
+ JR Z,L3A40 ; (+02dH)
+ CP 02EH
+ JR Z,L3A2F ; (+018H)
+ CP 024H
+ JR Z,L3A38 ; (+01dH)
+ CP 0FBH
+ JR Z,L3A38 ; (+019H)
+ CP 0C4H
+ JR NZ,L3A29 ; (+006H)
+ INC HL
+ LD A,(HL)
+ OR A
+ JP Z,L2101
+L3A29: CALL L1F1E
+ INC HL
+ JR L39FB ; (-034H)
+
+L3A2F: INC HL
+ LD A,(HL)
+ LD D,A
+ CP 023H
+ LD A,02EH
+ JR L3A47 ; (+00fH)
+
+L3A38: INC HL
+ PUSH AF
+ LD A,(HL)
+ LD D,A
+ POP AF
+ CP D
+ JR L3A47 ; (+007H)
+
+L3A40: INC HL
+ LD A,(HL)
+ LD D,A
+ CP 02AH
+ LD A,02AH
+L3A47: DEC HL
+ JR NZ,L3A29 ; (-021H)
+ LD A,D
+ OR A
+ JR NZ,L3A53 ; (+005H)
+L3A4E: LD HL,00010H
+ JR L3A5A ; (+007H)
+
+L3A53: LD DE,(06AB5H)
+ OR A
+ SBC HL,DE
+L3A5A: LD (02774H),HL
+ RET
+
+ LD D,002H
+L3A60: INC HL
+ LD A,(HL)
+ CP 026H
+ JR Z,L3A6E ; (+008H)
+ INC D
+L3A67: CP 020H
+ JR Z,L3A60 ; (-00bH)
+ JP L2101
+
+L3A6E: EX (SP),HL
+ LD A,(HL)
+ CP D
+ JR C,L3A8A ; (+017H)
+ INC HL
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ PUSH BC
+ LD BC,(06AB5H)
+ ADD HL,BC
+ POP BC
+L3A7F: LD A,(HL)
+ CALL L1F1E
+ INC HL
+ DEC D
+ JR NZ,L3A7F ; (-008H)
+ JP L27F9
+
+L3A8A: LD E,(HL)
+ INC HL
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ LD A,E
+ OR A
+ JR Z,L3AA9 ; (+015H)
+ PUSH BC
+ LD BC,(06AB5H)
+ ADD HL,BC
+ POP BC
+L3A9B: LD A,(HL)
+ CALL L1F1E
+ INC HL
+ DEC E
+ JR Z,L3AAE ; (+00bH)
+ DEC D
+ JR NZ,L3A9B ; (-00bH)
+ JP L27F9
+
+L3AA9: LD A,020H
+ CALL L1F1E
+L3AAE: DEC D
+ JR NZ,L3AA9 ; (-008H)
+ JP L27F9
+
+ PUSH DE
+L3AB5: XOR A
+ LD (L2A48),A
+ LD (L2A99),A
+ LD (02A80H),A
+ LD (02A3EH),A
+ LD (029F8H),A
+ LD (L2A25),A
+ LD (L2A43),A
+ LD (029F1H),A
+ DEC A
+ LD (L29EE),A
+ LD HL,(L6AB5)
+ LD DE,(02774H)
+ ADD HL,DE
+L3ADA: LD A,(HL)
+ OR A
+ JP Z,L2101
+ CP 021H
+ JP Z,L2101
+ CP 026H
+ JP Z,L2101
+ CP 023H
+ JP Z,0295CH
+ CP 02AH
+ JP Z,02917H
+ CP 024H
+ JP Z,0293AH
+ CP 0FBH
+ JP Z,0293AH
+ CP 02EH
+ JP Z,L294F
+ CP 02BH
+L3B04: JP Z,L2945
+ CP 0C4H
+ JR NZ,L3B11 ; (+006H)
+ INC HL
+ LD A,(HL)
+ OR A
+ JP Z,L2101
+L3B11: CALL L1F1E
+L3B14: INC HL
+ JR L3ADA ; (-03dH)
+
+ INC HL
+ CP (HL)
+ DEC HL
+ JR NZ,L3B11 ; (-00bH)
+ LD A,001H
+ LD (L2A99),A
+ INC HL
+ INC HL
+ LD A,(HL)
+ LD D,002H
+ CP 0FBH
+L3B28: JR Z,L3B2E ; (+004H)
+ CP 024H
+ JR NZ,L3B5F ; (+031H)
+L3B2E: INC HL
+ INC D
+L3B30: LD (02AF4H),A
+ LD A,001H
+ LD (02A80H),A
+ JR L3B5F ; (+025H)
+
+ INC HL
+ CP (HL)
+ DEC HL
+ JR NZ,L3B11 ; (-02eH)
+ INC HL
+ INC HL
+ LD D,002H
+ JR L3B30 ; (-015H)
+
+ LD A,001H
+ LD (L2A48),A
+ INC HL
+ LD D,001H
+ JR L3B5F ; (+010H)
+
+ INC HL
+ LD A,(HL)
+ DEC HL
+ CP 023H
+ LD A,02EH
+ JR NZ,L3B11 ; (-047H)
+ LD D,000H
+ JR L3B5F ; (+003H)
+
+ LD D,001H
+ INC HL
+L3B5F: EX DE,HL
+ DEC H
+L3B61: INC H
+ LD A,(DE)
+ INC DE
+ CP 023H
+ JR Z,L3B61 ; (-007H)
+ CP 02CH
+ JR NZ,L3B73 ; (+007H)
+ LD A,001H
+ LD (029F8H),A
+ JR L3B61 ; (-012H)
+
+L3B73: CP 02EH
+ JR Z,L3B9A ; (+023H)
+ CP 02DH
+ JR NZ,L3B83 ; (+008H)
+ LD A,001H
+ LD (02A3EH),A
+ INC DE
+ JR L3B93 ; (+010H)
+
+L3B83: CP 02BH
+ JR NZ,L3B93 ; (+00cH)
+ LD A,(L2A48)
+ OR A
+ JR NZ,L3B93 ; (+006H)
+ LD A,001H
+ LD (L2A43),A
+ INC DE
+L3B93: DEC DE
+ LD A,H
+ LD (L2A25),A
+ JR L3BCD ; (+033H)
+
+L3B9A: LD A,H
+ LD (L2A25),A
+ LD H,0FFH
+L3BA0: INC H
+ LD A,(DE)
+ INC DE
+ CP 023H
+ JR Z,L3BA0 ; (-007H)
+ CP 02DH
+ JR NZ,L3BB3 ; (+008H)
+ LD A,001H
+ LD (02A3EH),A
+ INC DE
+ JR L3BC3 ; (+010H)
+
+L3BB3: CP 02BH
+L3BB5: JR NZ,L3BC3 ; (+00cH)
+ LD A,(L2A48)
+ OR A
+ JR NZ,L3BC3 ; (+006H)
+ LD A,001H
+ LD (L2A43),A
+ INC DE
+L3BC3: DEC DE
+ LD A,H
+ LD (L29EE),A
+ JR L3BCD ; (+003H)
+
+L3BCA: POP DE
+ JR L3BDF ; (+012H)
+
+L3BCD: LD H,004H
+ PUSH DE
+L3BD0: LD A,(DE)
+ INC DE
+ CP 05EH
+ JR NZ,L3BCA ; (-00cH)
+ DEC H
+ JR NZ,L3BD0 ; (-009H)
+ POP AF
+ LD A,001H
+ LD (029F1H),A
+L3BDF: POP HL
+ PUSH DE
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ LD (02A75H),A
+ LD A,(L2A25)
+ LD D,A
+ LD A,000H
+ LD E,A
+ LD A,000H
+ PUSH BC
+ CALL L3E7E
+ POP BC
+ LD A,000H
+ OR A
+ JR Z,L3C3D ; (+041H)
+ PUSH BC
+ PUSH DE
+ LD A,(L2A25)
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ LD DE,06A26H
+ LD C,000H
+ DEC HL
+L3C0B: LD B,003H
+L3C0D: LD A,(HL)
+ CP 020H
+ JR Z,L3C24 ; (+012H)
+ INC C
+ LD (DE),A
+ INC DE
+ DEC HL
+ DJNZ L3C0D ; (-00bH)
+ LD A,(HL)
+ CP 020H
+ JR Z,L3C24 ; (+007H)
+ LD A,02CH
+ LD (DE),A
+ INC DE
+ INC C
+ JR L3C0B ; (-019H)
+
+L3C24: LD A,000H
+ CP C
+ JP C,02ADBH
+ LD B,C
+ LD L,A
+ LD H,000H
+ POP DE
+ PUSH DE
+ ADD HL,DE
+L3C31: LD DE,06A26H
+ DEC HL
+L3C35: LD A,(DE)
+ LD (HL),A
+ DEC HL
+L3C38: INC DE
+ DJNZ L3C35 ; (-006H)
+ POP DE
+ POP BC
+L3C3D: LD A,000H
+ OR A
+ JR NZ,L3C7F ; (+03dH)
+ LD A,000H
+ OR A
+L3C45: JR NZ,L3C7F ; (+038H)
+ LD A,000H
+L3C49: OR A
+ JR NZ,L3C74 ; (+028H)
+ LD A,(02A75H)
+ RLCA
+ JR NC,L3C7F ; (+02dH)
+ LD A,(DE)
+ CP 020H
+ LD H,02DH
+ JR Z,L3C5E ; (+005H)
+ CP 030H
+ JP NZ,02ADBH
+L3C5E: PUSH DE
+L3C5F: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L3C5F ; (-006H)
+ CP 030H
+ JR Z,L3C5F ; (-00aH)
+L3C69: OR A
+ JR NZ,L3C6D ; (+001H)
+ DEC DE
+L3C6D: DEC DE
+ DEC DE
+ LD A,H
+ LD (DE),A
+ POP DE
+ JR L3C7F ; (+00bH)
+
+L3C74: LD A,000H
+ RLCA
+ LD H,02BH
+ JR NC,L3C5E ; (-01dH)
+ LD H,02DH
+ JR L3C5E ; (-021H)
+
+L3C7F: LD A,000H
+ OR A
+ JR Z,L3C98 ; (+014H)
+ LD A,(DE)
+ CP 020H
+ JP NZ,02ADBH
+L3C8A: PUSH DE
+L3C8B: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L3C8B ; (-006H)
+ DEC DE
+ DEC DE
+L3C93: LD A,(02AF4H)
+ LD (DE),A
+L3C97: POP DE
+L3C98: LD A,000H
+ OR A
+ JR Z,L3CAA ; (+00dH)
+ PUSH DE
+L3C9E: LD A,(DE)
+ CP 020H
+ JR NZ,L3CA9 ; (+006H)
+ LD A,02AH
+ LD (DE),A
+ INC DE
+ JR L3C9E ; (-00bH)
+
+L3CA9: POP DE
+L3CAA: LD A,(DE)
+ OR A
+ JR Z,L3CB4 ; (+006H)
+ CALL L1F1E
+ INC DE
+ JR L3CAA ; (-00aH)
+
+L3CB4: LD A,(L2A43)
+ OR A
+ JR Z,L3CC9 ; (+00fH)
+ LD A,(02A75H)
+ RLCA
+ LD A,02BH
+L3CC0: JR NC,L3CC4 ; (+002H)
+ LD A,02DH
+L3CC4: CALL L1F1E
+ JR L3CD7 ; (+00eH)
+
+L3CC9: LD A,(02A3EH)
+ OR A
+L3CCD: JR Z,L3CD7 ; (+008H)
+ LD A,(02A75H)
+ RLCA
+L3CD3: LD A,020H
+ JR L3CC0 ; (-017H)
+
+L3CD7: POP HL
+ JP 027FBH
+
+ LD A,002H
+ JP L2108
+
+ CALL L5414
+ OR A
+ RET Z
+ CP 03AH
+ RET Z
+ CP 02CH
+ INC HL
+ SCF
+L3CEC: RET Z
+ CP 03BH
+ SCF
+ RET Z
+ JP L20FE
+
+ NOP
+STMTWORDTBL:DB "GOT", "O" | 080H ; BASIC statement keyword text table
+ DB "GOSU", "B" | 080H
+ DB 080H
+ DB "RU", "N" | 080H
+ DB "RETUR", "N" | 080H
+ DB 052H,045H
+L3D0A: DB "STOR", "E" | 080H
+ DB "RESUM", "E" | 080H
+ DB "LIS", "T" | 080H
+ DB 080H
+ DB "DELET", "E" | 080H
+ DB 052H
+L3D21: DB "ENU", "M" | 080H
+ DB "AUT", "O" | 080H
+ DB 080H
+ DB "FO", "R" | 080H
+ DB "NEX", "T" | 080H
+L3D31: DB "PRIN", "T" | 080H
+ DB 080H
+ DB "INPU", "T" | 080H
+ DB 080H
+ DB "I", "F" | 080H
+ DB "DAT", "A" | 080H
+ DB "REA", "D" | 080H
+ DB "DI", "M" | 080H
+ DB "RE", "M" | 080H
+ DB 045H,04EH
+L3D4F: DB "D" | 080H
+ DB "STO", "P" | 080H
+L3D54: DB "CON", "T" | 080H
+ DB "CL", "S" | 080H
+ DB 080H
+ DB "O", "N" | 080H
+ DB "LE", "T" | 080H
+ DB "NE", "W" | 080H
+ DB "POK", "E" | 080H
+ DB "OF", "F" | 080H
+ DB "MOD", "E" | 080H
+ DB 053H,04BH,049H
+L3D72: DB "P" | 080H
+ DB "PLO", "T" | 080H
+L3D77: DB "LIN", "E" | 080H
+ DB "RLIN", "E" | 080H
+ DB 04DH
+L3D81: DB "OV", "E" | 080H
+ DB 052H,04DH
+L3D86: DB "OV", "E" | 080H
+ DB "TRO", "N" | 080H
+ DB "TROF", "F" | 080H
+ DB "INP", "#" | 080H
+ DB 080H
+ DB "GE", "T" | 080H
+ DB "PCOLO", "R" | 080H
+ DB "PHOM", "E" | 080H
+ DB "HSE", "T" | 080H
+ DB "GPRIN", "T" | 080H
+ DB "KE", "Y" | 080H
+L3DB2: DB "AXI", "S" | 080H
+ DB "LOA", "D" | 080H
+ DB "SAV", "E" | 080H
+ DB "MERG", "E" | 080H
+ DB 080H
+ DB 043H,04FH,04EH
+L3DC7: DB "SOL", "E" | 080H
+ DB 080H
+ DB "OUT", "#" | 080H
+ DB "CIRCL", "E" | 080H
+ DB "TES", "T" | 080H
+ DB "PAG", "E" | 080H
+ DB 080H
+ DB 080H
+ DB "ERAS", "E" | 080H
+ DB "ERRO", "R" | 080H
+ DB 080H
+ DB "US", "R" | 080H
+ DB "BY", "E" | 080H
+ DB 080H
+ DB 080H
+ DB "DE", "F" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "WOPE", "N" | 080H
+ DB 043H
+L3E02: DB "LOS", "E" | 080H
+ DB "ROPE", "N" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "KIL", "L" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "T", "O" | 080H
+ DB "STE", "P" | 080H
+ DB "THE", "N" | 080H
+ DB "USIN", "G" | 080H
+ DB 080H
+ DB 080H
+ DB 054H
+L3E2F: DB "A", "B" | 080H
+ DB "SP", "C" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "O", "R" | 080H
+ DB "AN", "D" | 080H
+ DB 080H
+ DB ">", "<" | 080H
+ DB "<", ">" | 080H
+ DB "=", "<" | 080H
+ DB "<", "=" | 080H
+ DB "=", ">" | 080H
+ DB ">", "=" | 080H
+ DB "=" | 080H
+ DB ">" | 080H
+ DB "<" | 080H
+ DB "+" | 080H
+ DB "-" | 080H
+ DB 080H
+ DB 080H
+ DB "/" | 080H
+L3E51: DB "*" | 080H
+ DB "^" | 080H
+ DB 0FFH
+ DB 080H
+ DB "SE", "T" | 080H
+ DB "RESE", "T" | 080H
+ DB "COLO", "R" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+L3E7E: DB 080H
+ DB 080H
+ DB "MUSI", "C" | 080H
+ DB "TEMP", "O" | 080H
+ DB "CURSO", "R" | 080H
+ DB "VERIF", "Y" | 080H
+ DB "CL", "R" | 080H
+ DB "LIMI", "T" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "BOO", "T" | 080H
+ DB 0FFH
+ DS 96, 000H ; Zero padding / dispatch work area
+L3F09: DS 26, 000H
+L3F23: DS 140, 000H
+L3FAF: DS 80, 000H
+L3FFF: DS 28, 000H
+L401B: DS 16, 000H
+L402B: DS 12, 000H
+L4037: DS 3, 000H
+L403A: DS 100, 000H
+L409E: DS 40, 000H
+L40C6: DS 50, 000H
+L40F8: DS 57, 000H
+L4131: DS 98, 000H
+L4193: DS 18, 000H
+L41A5: DS 39, 000H
+L41CC: DS 133, 000H
+L4251: DS 63, 000H
+L4290: DS 17, 000H
+L42A1: DS 2, 000H
+L42A3: DS 6, 000H
+FUNCWORDTBL:DB "IN", "T" | 080H ; BASIC function keyword text table
+ DB "AB", "S" | 080H
+ DB "SI", "N" | 080H
+ DB "CO", "S" | 080H
+ DB "TA", "N" | 080H
+ DB "L", "N" | 080H
+ DB "EX", "P" | 080H
+ DB "SQ", "R" | 080H
+ DB "RN", "D" | 080H
+ DB "PEE", "K" | 080H
+ DB "AT", "N" | 080H
+ DB "SG", "N" | 080H
+ DB "LO", "G" | 080H
+ DB 080H
+ DB "PA", "I" | 080H
+ DB "RA", "D" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "EO", "F" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "JO", "Y" | 080H
+ DB 080H
+ DB "CHR", "$" | 080H
+ DB "STR", "$" | 080H
+ DB "HEX", "$" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "AS", "C" | 080H
+ DB "LE", "N" | 080H
+ DB "VA", "L" | 080H
+L4308: DB 080H
+ DB 080H
+ DB 080H
+L430B: DB 080H
+ DB 080H
+ DB "ER", "N" | 080H
+ DB "ER", "L" | 080H
+ DB 053H
+L4314: DB 049H,05AH
+L4316: DB "E" | 080H
+L4317: DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "LEFT", "$" | 080H
+ DB "RIGHT", "$" | 080H
+ DB "MID", "$" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 053H,054H,052H,049H
+L4334: DB "NG", "$" | 080H
+ DB "TI", "$" | 080H
+ DB 080H
+ DB 080H
+ DB "F", "N" | 080H
+L433E: DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ RST 038H
+ RLCA
+ JR C,L4317 ; (-033H)
+ LD (HL),0FEH
+L434C: JR NZ,L43BC ; (+06eH)
+ INC E
+ SUB H
+ LD (HL),0A8H
+ DEC H
+ EI
+ LD (HL),002H
+ LD B,C
+ CP 020H
+ LD D,(HL)
+ INC (HL)
+ LD (HL),C
+ INC (HL)
+ PUSH DE
+ LD HL,L20FE
+ CP A
+ INC E
+ LD L,A
+ DEC E
+ LD L,D
+ LD E,0FEH
+ JR NZ,L4334 ; (-036H)
+ LD (L20FE),HL
+ CCF
+ JR C,L4393 ; (+023H)
+ INC SP
+ EX (SP),HL
+ DEC H
+ JP PE,L235A
+ INC SP
+ OR A
+ LD HL,02071H
+ SBC A,A
+ JR NZ,L434C ; (-032H)
+L437E: JR C,L437E ; (-002H)
+ JR NZ,L4314 ; (-06eH)
+ SCF
+ LD E,C
+ ADD HL,DE
+ LD C,B
+ LD (033D7H),HL
+ CP 020H
+ RET NC
+ LD C,L
+ INC L
+ LD C,(HL)
+ LD SP,08C3AH
+ LD C,(HL)
+L4393: CP 04EH
+ DEC B
+ LD C,A
+ INC D
+ LD C,A
+ LD A,(HL)
+ LD (L2282),HL
+ LD D,B
+ INC SP
+ CP 020H
+ ADC A,C
+ INC SP
+ DEC DE
+ LD C,A
+ LD D,B
+ LD C,A
+ LD H,H
+ LD C,A
+ HALT
+ LD C,A
+ LD HL,0FC43H
+ LD C,A
+ POP DE
+ LD B,C
+ AND H
+ LD B,D
+ XOR E
+ LD B,C
+ CP 020H
+ SRL C
+ CP 020H
+ ADD HL,SP
+L43BC: INC SP
+ LD D,B
+ LD D,B
+ DAA
+ LD D,D
+ DEC SP
+ LD D,D
+ CP 020H
+ CP 020H
+ CP 020H
+ DEC B
+ LD HL,L20FE
+ DEC B
+ INC SP
+ JP NZ,0FE13H
+L43D2: JR NZ,L43D2 ; (-002H)
+ JR NZ,L43F1 ; (+01bH)
+ DEC H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ AND E
+ LD B,(HL)
+ LD B,L
+ LD B,L
+ RST 018H
+ LD B,(HL)
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+L43F1: CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ LD (BC),A
+ ADD HL,SP
+ DEC (HL)
+ ADD HL,SP
+ LD (HL),E
+ LD B,H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ INC A
+ LD B,H
+ LD H,E
+ LD B,H
+ LD L,H
+ INC SP
+ POP DE
+ LD B,D
+ LD C,(HL)
+ LD (L340B),HL
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ LD L,D
+ LD A,(06277H)
+ LD (HL),D
+ LD H,D
+ ADD A,063H
+ OR B
+ LD H,E
+ CP L
+ LD H,H
+ LD (HL),067H
+ DEC D
+ LD H,(HL)
+ RET NC
+ LD H,D
+ RET NC
+ LD H,L
+ OR L
+ LD H,L
+ XOR 062H
+ LD A,D
+ LD H,L
+ LD HL,(0FE67H)
+ JR NZ,04424H ; (-05eH)
+ LD H,L
+ SBC A,L
+ LD H,L
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ AND E
+ ADD HL,SP
+ CP 020H
+ CP 020H
+ LD (HL),A
+ LD D,(HL)
+ CALL PE,0FE55H
+L44AC: JR NZ,L44AC ; (-002H)
+L44AE: JR NZ,L44AE ; (-002H)
+L44B0: JR NZ,L44B0 ; (-002H)
+L44B2: JR NZ,L44B2 ; (-002H)
+L44B4: JR NZ,L44B4 ; (-002H)
+L44B6: JR NZ,L44B6 ; (-002H)
+L44B8: JR NZ,L44B8 ; (-002H)
+ JR NZ,0445CH ; (-060H)
+ LD D,(HL)
+ XOR H
+ LD D,(HL)
+ OR H
+ LD D,(HL)
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ LD H,D
+ LD D,L
+ LD L,D
+ LD D,L
+ LD C,B
+ LD D,L
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ RST 000H
+ LD D,(HL)
+ CALL PO,00256H
+ LD D,A
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CCF
+ LD D,A
+ CP 020H
+ CP 020H
+ RST 030H
+ LD E,H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CP 020H
+ CALL 057FDH
+ CALL L4D65
+ PUSH DE
+ INC HL
+ CP 029H
+ JR Z,L451C ; (+00bH)
+ DEC HL
+ CALL 03332H
+ CALL 04DBCH
+ LD C,B
+ CALL 05804H
+L451C: EX (SP),HL
+ CALL L3322
+ POP HL
+ RET
+
+ JP (HL)
+
+ DEC HL
+L4524: CALL 03880H
+ OR A
+ SCF
+ RET Z
+ CP 03AH
+ RET Z
+ JR L4524 ; (-00bH)
+
+ CALL L5414
+ CP 02CH
+ JP NZ,L20FE
+L4537: INC HL
+ RET
+
+ CALL L4D50
+ CP LSE0
+ JR C,L4545 ; (+005H)
+ CP 0E7H
+ JP C,L2101
+L4545: CALL 0332FH
+ PUSH DE
+ CALL L4D50
+ POP BC
+ OUT (C),A
+ RET
+
+ CALL L4D50
+ CALL 0332FH
+ PUSH DE
+ CALL 0580BH
+ CP 005H
+ JP NZ,L20FB
+ EX (SP),HL
+ PUSH BC
+ EX (SP),HL
+ POP BC
+ IN E,(C)
+ LD D,000H
+ CALL 03A82H
+ POP HL
+ RET
+
+ CALL L4D50
+ CP 028H
+L4571: JP NC,L2101
+ LD (00054H),A
+ CALL L5414
+ CALL 03332H
+ CALL L4D50
+ CP 019H
+ JP NC,L2101
+ LD (00055H),A
+ RET
+
+L4589: CALL 0580BH
+ LD (06A65H),A
+ CP 005H
+ JP Z,L33BE
+ PUSH HL
+ PUSH BC
+ LD A,0FFH
+ CALL 00058H
+ OR A
+ JR Z,L45AB ; (+00dH)
+ LD HL,(038D3H)
+ LD (HL),A
+ LD BC,(06AB5H)
+ OR A
+ SBC HL,BC
+ LD A,001H
+L45AB: LD DE,(06AB9H)
+ EX DE,HL
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+L45B5: LD HL,(06AB9H)
+ POP DE
+ CALL 01B82H
+ POP HL
+ RET
+
+ PUSH HL
+ PUSH BC
+ LD A,0FFH
+ CALL 00058H
+ SUB 030H
+ JR C,L45CD ; (+004H)
+ CP 00AH
+ JR C,L45CE ; (+001H)
+L45CD: XOR A
+L45CE: LD E,A
+ LD D,000H
+ POP HL
+ CALL 03A82H
+ POP HL
+ RET
+
+ CP 040H
+ JR NZ,L45FF ; (+024H)
+ LD BC,L33FD
+ LD (033F0H),BC
+ INC HL
+L45E3: CALL L4D65
+ CALL 03332H
+L45E9: PUSH DE
+ CALL L4D50
+ POP DE
+ EX DE,HL
+ CALL 000F2H
+ EX DE,HL
+ INC DE
+ CALL L5414
+ CP 02CH
+ RET NZ
+ INC HL
+ JR L45E9 ; (-014H)
+
+ LD (HL),A
+ RET
+
+L45FF: LD BC,000F2H
+ LD (033F0H),BC
+ JR L45E3 ; (-025H)
+
+ JP Z,L224E
+ PUSH HL
+ CALL L5414
+ CP 04DH
+ JR NZ,L462B ; (+018H)
+ INC HL
+ CALL L5414
+ CP 041H
+ JR NZ,L462B ; (+010H)
+ INC HL
+ CALL L5414
+ CP 058H
+ JR NZ,L462B ; (+008H)
+ INC HL
+ POP DE
+ PUSH HL
+L4626: LD HL,0FF00H
+ JR L4647 ; (+01cH)
+
+L462B: POP HL
+ CALL L4D65
+ PUSH HL
+ LD HL,(06ABDH)
+ OR A
+L4634: SBC HL,DE
+ JP C,L20B9
+ LD HL,(L6AB7)
+ INC H
+ INC H
+ INC H
+ INC H
+L4640: OR A
+ SBC HL,DE
+ JP NC,L2101
+ EX DE,HL
+L4647: CALL L2231
+ POP HL
+ POP DE
+ LD SP,(06AB9H)
+ LD BC,0FFFFH
+ PUSH BC
+ PUSH DE
+L4655: RET
+
+ JP Z,L20FE
+ CALL L352F
+ CALL L35EF
+ EX DE,HL
+ LD E,C
+ LD D,B
+ CALL L6974
+L4665: JP L184D
+
+ CALL L4D65
+ LD A,D
+ OR E
+ RET NZ
+ JP L2101
+
+ LD DE,0000AH
+ LD (034EDH),DE
+ LD (034FFH),DE
+ LD E,000H
+ LD (034DCH),DE
+ JR Z,L46B7 ; (+033H)
+ CP 02CH
+ JR Z,L4698 ; (+010H)
+ CALL 03468H
+ LD (034EDH),DE
+ CALL L1C66
+ JR Z,L46B7 ; (+023H)
+ CALL 0332FH
+ DEC HL
+L4698: CALL 05413H
+ CP 02CH
+ JR Z,L46AF ; (+010H)
+ CALL 03468H
+ LD (034DCH),DE
+ CALL L1C66
+ JR Z,L46B7 ; (+00cH)
+ CALL 0332FH
+ DEC HL
+L46AF: INC HL
+ CALL 03468H
+ LD (034FFH),DE
+L46B7: PUSH HL
+ LD HL,(034DCH)
+L46BB: EX DE,HL
+ LD HL,(L34ED)
+ OR A
+ SBC HL,DE
+ JP C,L2101
+ CALL L3522
+ LD HL,(06ABFH)
+L46CB: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4709 ; (+037H)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ EX DE,HL
+L46D6: INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ PUSH HL
+ LD HL,MONIT
+ OR A
+ SBC HL,BC
+ POP HL
+ JR Z,L46E9 ; (+005H)
+ JR C,L46E9 ; (+003H)
+ EX DE,HL
+ JR L46CB ; (-01eH)
+
+L46E9: DEC HL
+ DEC HL
+ DEC HL
+ LD BC,MONIT
+L46EF: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4709 ; (+013H)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ EX DE,HL
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ LD HL,MONIT
+ ADD HL,BC
+ JR C,L470E ; (+00aH)
+ LD C,L
+ LD B,H
+ EX DE,HL
+ JR L46EF ; (-01aH)
+
+L4709: CALL L352F
+ POP HL
+ RET
+
+L470E: LD HL,0000AH
+ LD (034FFH),HL
+ LD (L34ED),HL
+ LD L,000H
+ LD (034DCH),HL
+ CALL L34B7
+ JP L2101
+
+ PUSH DE
+ PUSH HL
+ LD HL,03574H
+ LD (03558H),HL
+ JR L4737 ; (+00bH)
+
+L472C: POP HL
+ POP DE
+ RET
+
+ PUSH DE
+ PUSH HL
+ LD HL,L355A
+ LD (03558H),HL
+L4737: LD HL,(06ABFH)
+ DEC HL
+L473B: INC HL
+ LD A,(HL)
+ INC HL
+ OR (HL)
+L473F: JR Z,L472C ; (-015H)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (035ACH),DE
+L4749: CALL 03880H
+ OR A
+ JR Z,L473B ; (-014H)
+L474F: CP 00BH
+ JR Z,L4757 ; (+004H)
+ CP 00CH
+ JR NZ,L4749 ; (-00eH)
+L4757: JP L355A
+
+ CP 00BH
+ JR Z,L4749 ; (-015H)
+ DEC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH HL
+ EX DE,HL
+L4764: INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00BH
+ INC HL
+ INC HL
+L4772: JR L4749 ; (-02bH)
+
+ CP 00CH
+ JR Z,L4749 ; (-02fH)
+ DEC HL
+L4779: PUSH HL
+ CALL L3A60
+ LD E,L
+L477E: LD D,H
+ LD A,L
+ OR H
+ JR Z,L47B7 ; (+034H)
+ CALL 035BBH
+ JR C,L4793 ; (+00bH)
+ EX DE,HL
+ POP HL
+ DEC HL
+ LD (HL),00CH
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+L4791: JR L4772 ; (-021H)
+
+L4793: EX DE,HL
+ LD DE,L4C59
+ CALL 00051H
+ LD A,020H
+ CALL L17D3
+ CALL L21A7
+ CALL 00051H
+ LD DE,L2196
+ CALL 00051H
+ LD HL,MONIT
+ CALL L21A7
+ CALL 00051H
+ CALL NL
+L47B7: POP HL
+ INC HL
+ JR L4791 ; (-02aH)
+
+ PUSH BC
+ PUSH DE
+ EX DE,HL
+ LD HL,(06ABFH)
+L47C1: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ LD A,B
+ OR C
+ JR Z,L47EC ; (+024H)
+ PUSH HL
+ ADD HL,BC
+ DEC HL
+ LD C,L
+ LD B,H
+ POP HL
+ PUSH BC
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ LD A,C
+ CP E
+ JR NZ,L47E3 ; (+00cH)
+ LD A,B
+ CP D
+ DEC HL
+ DEC HL
+ DEC HL
+ JR NZ,L47E3 ; (+005H)
+ POP BC
+ OR A
+L47E0: POP DE
+ POP BC
+ RET
+
+L47E3: PUSH DE
+ EX DE,HL
+ OR A
+ SBC HL,BC
+L47E8: POP DE
+ POP HL
+ JR NC,L47C1 ; (-02bH)
+L47EC: SCF
+ JR L47E0 ; (-00fH)
+
+ LD DE,MONIT
+ LD BC,0FFFFH
+ CALL L1C66
+ RET Z
+ CP 02DH
+ JR Z,L4827 ; (+02aH)
+ CP 02CH
+ JP Z,L20FE
+ CP 02EH
+ JR NZ,L480C ; (+006H)
+ LD DE,(038E2H)
+ JR L4815 ; (+009H)
+
+L480C: CP 00BH
+L480E: JP NZ,L20FE
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L4815: INC HL
+ CALL L1C66
+ JR Z,L4824 ; (+009H)
+ CP 02DH
+ JR Z,L4827 ; (+008H)
+ CP 02CH
+ JP Z,L20FE
+L4824: LD C,E
+ LD B,D
+ RET
+
+L4827: INC HL
+ CALL L1C66
+ RET Z
+ CP 02EH
+ JR NZ,L4836 ; (+006H)
+ LD BC,(038E2H)
+ INC HL
+ RET
+
+L4836: CP 00BH
+ JR NZ,L480E ; (-02cH)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+L483E: INC HL
+ RET
+
+ CALL L3647
+ JP L1872
+
+ XOR A
+ LD DE,(038E2H)
+ JR Z,L4850 ; (+003H)
+ CALL L35EF
+L4850: PUSH DE
+ EX DE,HL
+ CALL 035BBH
+ POP DE
+ JR NC,L485F ; (+007H)
+ LD HL,L6AC1
+ LD (HL),000H
+ JR L4863 ; (+004H)
+
+L485F: LD BC,00004H
+ ADD HL,BC
+L4863: EX DE,HL
+ PUSH DE
+ LD (038E2H),HL
+ CALL L21A7
+ CALL 00051H
+ LD A,020H
+ CALL L17D3
+ POP HL
+ LD DE,0110FH
+ PUSH DE
+ CALL L49CD
+ POP DE
+ LD B,000H
+L487E: LD A,(DE)
+ OR A
+ JR Z,L4889 ; (+007H)
+ INC B
+ CALL 0055EH
+ INC DE
+ JR L487E ; (-00bH)
+
+L4889: LD A,B
+ OR A
+ RET Z
+ LD A,014H
+L488E: CALL L17D3
+ DJNZ L488E ; (-005H)
+ RET
+
+ POP IX
+L4896: POP BC
+ INC BC
+ LD A,B
+ OR C
+ JR Z,L48B9 ; (+01dH)
+ INC BC
+ LD A,B
+ OR C
+ JR NZ,L48BD ; (+01cH)
+ CALL L5414
+ EX DE,HL
+ POP HL
+ LD (038E6H),HL
+ POP HL
+ LD (L38E0),HL
+ POP HL
+ PUSH IX
+ CP 03AH
+ RET Z
+ OR A
+ RET Z
+ EX DE,HL
+ JP L3807
+
+L48B9: PUSH BC
+ JP L20E0
+
+L48BD: DEC BC
+ DEC BC
+ LD A,012H
+ CP C
+ JR NZ,L48B9 ; (-00bH)
+ EX DE,HL
+ LD HL,00010H
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ JR L4896 ; (-037H)
+
+ PUSH HL
+ CALL 03323H
+ EX DE,HL
+ POP HL
+ POP BC
+ PUSH DE
+ EXX
+ LD HL,(L38E0)
+ PUSH HL
+ LD HL,(038E6H)
+ PUSH HL
+L48DE: LD HL,0FFFEH
+ PUSH HL
+ LD HL,MONIT
+ ADD HL,SP
+ LD DE,(038D3H)
+ DEC H
+ DEC H
+ SBC HL,DE
+ LD A,00AH
+ JP C,L20BB
+ EXX
+L48F4: PUSH BC
+ JP L3807
+
+ JP L20FE
+
+ LD A,(L38D8)
+ CP 002H
+ JP C,L20D4
+ DEC A
+ LD (L38D8),A
+ CALL L1C66
+ EX DE,HL
+ LD HL,(038EAH)
+ LD (038E6H),HL
+ LD HL,(038ECH)
+ LD (L38E0),HL
+ LD HL,(L38EE)
+ JR NZ,L4920 ; (+004H)
+ POP BC
+ JP 01929H
+
+L4920: CP 08EH
+ JP Z,03323H
+ EX DE,HL
+ JP L3807
+
+L4929: CALL 05413H
+ CP 080H
+ JR Z,L493D ; (+00dH)
+ CP 082H
+ JP NZ,L20FE
+ CALL 05413H
+L4938: CP LSE0
+ JP NZ,L20FE
+L493D: CALL 05413H
+ CP 00BH
+ JR NZ,L495F ; (+01bH)
+ INC HL
+ PUSH HL
+ CALL L3A60
+ LD A,L
+ OR H
+ JR Z,L497C ; (+02fH)
+ CALL 035BBH
+ JP C,L20CB
+ LD (038E8H),HL
+ LD A,001H
+L4958: LD (L38D8),A
+ POP HL
+ INC HL
+ INC HL
+ RET
+
+L495F: CP 022H
+ JP NZ,L20CB
+ PUSH HL
+ CALL L3A67
+ LD HL,MONIT
+ LD (038E8H),HL
+ POP HL
+ CALL L38C5
+ OR A
+ JR Z,L4976 ; (+001H)
+ INC HL
+L4976: LD A,001H
+ LD (L38D8),A
+ RET
+
+L497C: LD A,(L38D8)
+ DEC A
+ JR Z,L4958 ; (-02aH)
+ XOR A
+ LD (L38D8),A
+ LD HL,(038EAH)
+ LD (038E6H),HL
+ LD A,(L38F2)
+ JP L2108
+
+ CALL L5414
+ CP 0C1H
+ JR Z,L4929 ; (-070H)
+ CALL L4D65
+ LD C,E
+ LD B,D
+ CP 087H
+ JP NC,L20FE
+ CP 082H
+ JR NZ,L49B7 ; (+010H)
+ CALL 05413H
+ LD E,081H
+ CP LSE4
+ JR Z,L49B6 ; (+006H)
+ CP LSE0
+ JP NZ,L20FE
+ DEC E
+L49B6: LD A,E
+L49B7: PUSH HL
+ LD HL,03147H
+ SUB 080H
+ ADD A,A
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ CALL L3A60
+ EX (SP),HL
+ INC HL
+ LD A,B
+L49C8: OR A
+ JR NZ,L49ED ; (+022H)
+ LD A,C
+ OR A
+L49CD: JR Z,L49ED ; (+01eH)
+ LD B,A
+L49D0: DEC B
+ RET Z
+ CALL L5414
+ CP 022H
+ JR Z,L49F1 ; (+018H)
+ CP 00BH
+ JR Z,L49E2 ; (+005H)
+ CP 00CH
+ JP NZ,L20FE
+L49E2: INC HL
+ INC HL
+L49E4: CALL 05413H
+ CP 02CH
+ INC HL
+ JR Z,L49D0 ; (-01cH)
+ DEC HL
+L49ED: POP DE
+ JP 03323H
+
+L49F1: CALL L38C5
+ OR A
+ JR Z,L49ED ; (-00aH)
+ JR L49E4 ; (-015H)
+
+ CALL L5414
+ INC HL
+ CP LSE4
+ JP Z,L36CD
+L4A02: CP LSE0
+ JP NZ,L20FE
+ CALL L5414
+L4A0A: INC HL
+ CP 00CH
+ JR NZ,L4A21 ; (+012H)
+ CALL L3A60
+L4A12: LD (L38E0),HL
+ XOR A
+ LD (L38D9),A
+ JP 018FEH
+
+L4A1C: LD HL,(06ABFH)
+ JR L4A12 ; (-00fH)
+
+L4A21: CP 00BH
+ JP NZ,036F8H
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4A1C ; (-011H)
+ EX DE,HL
+ CALL 035BBH
+ JP C,L20CB
+ EX DE,HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00CH
+ EX DE,HL
+ JP 03812H
+
+ CALL 0528BH
+ EX AF,AF'
+ LD A,(DE)
+ OR A
+ JR Z,L4A60 ; (+019H)
+ EX AF,AF'
+ CP LSE2
+ JR NZ,L4A5C ; (+010H)
+L4A4C: INC HL
+ CALL L5414
+ CP 00BH
+ JR Z,L4A0A ; (-04aH)
+ CP 00CH
+ JR Z,L4A0A ; (-04eH)
+ CP 022H
+ JR Z,L4A0A ; (-052H)
+L4A5C: POP AF
+ JP 01925H
+
+L4A60: DEC HL
+ CALL L3869
+ JR NC,L4A4C ; (-01aH)
+ JP 018FBH
+
+L4A69: CALL 03880H
+ OR A
+ SCF
+ RET Z
+ CP 0C2H
+ RET Z
+ CP 093H
+ JR NZ,L4A69 ; (-00dH)
+ CALL L3869
+ RET C
+ JR L4A69 ; (-013H)
+
+ INC HL
+ LD A,(HL)
+ JR L4A86 ; (+006H)
+
+ INC HL
+ LD A,(HL)
+ CP 094H
+ JR Z,L4AA5 ; (+01fH)
+L4A86: OR A
+ RET Z
+ CP 022H
+ JR Z,L4AC5 ; (+039H)
+ CP 0FEH
+ JR NC,L4AA3 ; (+013H)
+ CP 097H
+ JR Z,L4AA5 ; (+011H)
+ CP 027H
+ JR Z,L4AA5 ; (+00dH)
+ CP 020H
+ RET NC
+ CP 00BH
+ RET C
+ CP 015H
+ JR NC,L4ABA ; (+018H)
+L4AA2: INC HL
+L4AA3: INC HL
+ RET
+
+L4AA5: LD A,(HL)
+ OR A
+ RET Z
+ CP 03AH
+ RET Z
+ CP 022H
+ JR Z,L4AB2 ; (+003H)
+ INC HL
+ JR L4AA5 ; (-00dH)
+
+L4AB2: CALL L38C5
+ OR A
+ RET Z
+ INC HL
+ JR L4AA5 ; (-015H)
+
+L4ABA: AND 00FH
+ ADD A,L
+ LD L,A
+ LD A,000H
+ ADC A,H
+ LD H,A
+ LD A,020H
+ RET
+
+L4AC5: INC HL
+L4AC6: LD A,(HL)
+ OR A
+ RET Z
+ CP 022H
+L4ACB: RET Z
+ JR L4AC5 ; (-009H)
+
+ LD A,016H
+ JP PRNT
+
+ NOP
+ NOP
+ NOP
+ NOP
+ LD BC,MONIT
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L4AE3: NOP
+ NOP
+ NOP
+L4AE6: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L4AF4: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ CALL L395B
+ PUSH HL
+ LD B,001H
+ SRL D
+ JR NC,L4B0E ; (+002H)
+ SLA B
+L4B0E: SRL E
+ JR NC,L4B16 ; (+004H)
+ SLA B
+ SLA B
+L4B16: CALL 0398EH
+ SET 3,H
+L4B1B: CALL 000EAH
+ AND 08FH
+L4B20: OR C
+ CALL 000F2H
+ RES 3,H
+ CALL 000EAH
+ CP 0F0H
+ JR NC,L4B2F ; (+002H)
+L4B2D: LD A,0F0H
+L4B2F: OR B
+ CALL 000F2H
+ POP HL
+ RET
+
+ CALL L395B
+L4B38: PUSH HL
+ LD B,0FEH
+ SRL D
+ JR NC,L4B41 ; (+002H)
+ RL B
+L4B41: SRL E
+ JR NC,L4B49 ; (+004H)
+ RL B
+ RL B
+L4B49: CALL 0398EH
+ CALL 000EAH
+ CP 0F0H
+ JR NC,L4B55 ; (+002H)
+ LD A,0F0H
+L4B55: AND B
+ CALL 000F2H
+ POP HL
+ RET
+
+ CALL L4D50
+ CP 050H
+ JP NC,L2101
+ PUSH AF
+ LD A,(HL)
+ CALL 03332H
+ CALL L4D50
+ CP 064H
+ JP NC,L2101
+ LD E,A
+ POP AF
+L4B72: LD D,A
+ LD A,(0005DH)
+ AND 070H
+ LD C,A
+ LD A,(HL)
+ CP 02CH
+ RET NZ
+ INC HL
+ PUSH DE
+ CALL L4D50
+ POP DE
+ CP 008H
+ JP NC,L2101
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ LD C,A
+ RET
+
+ PUSH DE
+ LD D,000H
+ LD H,D
+ LD L,E
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,DE
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ POP DE
+ LD E,D
+ LD D,000H
+ ADD HL,DE
+ LD DE,VRAM
+ ADD HL,DE
+ RET
+
+ PUSH HL
+ CALL L3D21
+ LD A,H
+ OR A
+ JP NZ,L2101
+ LD A,L
+ CP 008H
+ JP NC,L2101
+ CALL 00061H
+ POP HL
+ JR C,L4BC6 ; (+00eH)
+ JR Z,L4BC6 ; (+00cH)
+ LD DE,0FFFFH
+L4BBD: CALL 03A82H
+ LD A,005H
+ LD (06A65H),A
+ RET
+
+L4BC6: LD E,A
+ LD D,000H
+ JR L4BBD ; (-00eH)
+
+ JR Z,L4BFB ; (+02eH)
+ LD A,001H
+ LD (0004EH),A
+ LD A,(00056H)
+ LD B,019H
+ CALL 03A0EH
+ LD (00056H),BC
+ LD A,(HL)
+ CP 02CH
+ JR NZ,L4BF6 ; (+013H)
+ INC HL
+ LD B,028H
+ LD A,(0005BH)
+ CALL 03A0EH
+ LD (0005BH),BC
+L4BF0: LD A,00BH
+ CALL L17D3
+ RET
+
+L4BF6: CALL 03A06H
+ JR L4BF0 ; (-00bH)
+
+L4BFB: LD BC,L1800
+ XOR A
+ LD (0004EH),A
+ LD (00056H),BC
+ LD BC,L2700
+ LD (0005BH),BC
+ RET
+
+ LD D,000H
+ LD E,A
+ CALL L5414
+ CP 02CH
+ JR Z,L4C1D ; (+005H)
+ PUSH BC
+ CALL L4D50
+ POP BC
+L4C1D: CALL 0332FH
+ LD C,E
+ PUSH BC
+ CALL L4D50
+ POP BC
+ DEC A
+ JP M,L2101
+ ADD A,C
+ CP B
+ JP NC,L2101
+ LD B,A
+ RET
+
+ CP 09DH
+ JR Z,L4C40 ; (+00bH)
+ CP 0A1H
+ JP NZ,L20FE
+ XOR A
+L4C3B: LD (0004DH),A
+ INC HL
+ RET
+
+L4C40: LD A,(04DCBH)
+ CP 002H
+ JP Z,L4FF7
+ LD A,(04DCDH)
+ CP 04EH
+ JP NZ,L4FF7
+ LD A,(0004DH)
+ OR A
+ JR NZ,L4C3B ; (-01bH)
+ CALL L39FB
+L4C59: LD A,016H
+ CALL PRNT
+ JR L4C3B ; (-025H)
+
+ PUSH AF
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ POP AF
+ RET
+
+ JP L20FE
+
+ DI
+ OUT (LSE4),A
+ JP MONIT
+
+ SUB C
+ LD L,B
+ ADD A,D
+ LD A,(L5D87)
+ INC C
+ LD L,D
+ SUB L
+ LD B,A
+ LD (HL),D
+ LD C,E
+ LD D,B
+ LD C,L
+ OR A
+ LD H,C
+ LD BC,0CD41H
+ ADD A,A
+ LD E,L
+ LD A,E
+ OR D
+ RET Z
+ BIT 7,D
+ LD A,07FH
+ JR Z,L4C97 ; (+009H)
+ LD A,D
+ CPL
+ LD D,A
+ LD A,E
+ CPL
+ LD E,A
+ INC DE
+ LD A,0FFH
+L4C97: LD B,091H
+L4C99: DEC B
+ BIT 7,D
+ JR NZ,L4CA4 ; (+006H)
+ RL E
+ RL D
+ JR L4C99 ; (-00bH)
+
+L4CA4: LD (HL),B
+ INC HL
+ AND D
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ DEC HL
+ DEC HL
+ RET
+
+ PUSH HL
+ LD HL,00005H
+ ADD HL,DE
+ EX DE,HL
+ POP HL
+ RET
+
+ LD HL,L3D77
+ LD BC,00005H
+ LDIR
+ RET
+
+ CP 030H
+ RET C
+ CP 03AH
+ CCF
+ RET
+
+ LD A,(DE)
+ RET
+
+ CP 05FH
+ RET Z
+ CP 030H
+ RET C
+ CP 05BH
+ CCF
+L4CD0: RET C
+ CP 03AH
+ CCF
+ RET NC
+ CP 041H
+ RET
+
+ PUSH HL
+ LD HL,MONIT
+L4CDC: LD A,(DE)
+ INC DE
+ CALL L3B04
+ JR C,L4CFA ; (+017H)
+ CALL L3C49
+ CALL L3C49
+ CALL L3C49
+ CALL L3C49
+ ADD A,L
+ LD L,A
+ LD A,000H
+ ADC A,H
+ JP C,L20F5
+ LD H,A
+ JR L4CDC ; (-01eH)
+
+L4CFA: DEC DE
+ EX DE,HL
+ EX (SP),HL
+ CALL 03A82H
+ POP DE
+ LD A,005H
+ RET
+
+ SUB 030H
+ RET C
+ CP 00AH
+ CCF
+ RET NC
+ CP 011H
+ RET C
+ SUB 007H
+ CP 010H
+ CCF
+ RET
+
+ CALL L5D87
+ LD (L6A81),A
+ LD (06A82H),A
+ LD (L6A83),A
+ LD (06A84H),A
+ LD A,005H
+ LD (06A65H),A
+L4D28: CALL 03C62H
+ CP 02BH
+ JR Z,L4D28 ; (-007H)
+ CP 02DH
+ JR NZ,L4D39 ; (+006H)
+ CALL L3B28
+ JP L5D91
+
+L4D39: CP 024H
+ JP Z,03AD8H
+L4D3E: CP 030H
+ JR NZ,L4D48 ; (+006H)
+ LD A,(DE)
+ INC DE
+ JR L4D3E ; (-008H)
+
+L4D46: LD A,(DE)
+ INC DE
+L4D48: CP 020H
+ JR NZ,L4D52 ; (+006H)
+ LD A,(06A80H)
+ OR A
+L4D50: JR Z,L4D46 ; (-00cH)
+L4D52: CP 02EH
+ JR Z,L4D71 ; (+01bH)
+ CALL 03ABEH
+ JR C,L4DB1 ; (+056H)
+ SUB 030H
+ CALL L3D0A
+ CALL 03C4EH
+ LD A,001H
+L4D65: LD (06A82H),A
+ LD A,(L6A81)
+ INC A
+ LD (L6A81),A
+ JR L4D46 ; (-02bH)
+
+L4D71: LD A,001H
+ LD (06A84H),A
+ LD C,A
+L4D77: LD A,(DE)
+L4D78: INC DE
+ CP 020H
+ JR NZ,L4D83 ; (+006H)
+ LD A,(06A80H)
+ OR A
+ JR Z,L4D77 ; (-00cH)
+L4D83: CALL 03ABEH
+ JR C,L4DA9 ; (+021H)
+ INC C
+ SUB 030H
+ JR Z,L4D94 ; (+007H)
+ PUSH AF
+ LD A,001H
+ LD (06A82H),A
+L4D93: POP AF
+L4D94: PUSH AF
+ LD A,(06A82H)
+ LD B,A
+ LD A,(L6A81)
+ ADD A,B
+ LD (L6A81),A
+ POP AF
+L4DA1: CALL L3D0A
+ CALL 03C4EH
+ JR L4D77 ; (-032H)
+
+L4DA9: DEC C
+ JR Z,L4DB1 ; (+005H)
+ CALL L3C38
+ JR L4DA9 ; (-008H)
+
+L4DB1: CP 045H
+ JR Z,L4DC3 ; (+00eH)
+L4DB5: DEC DE
+ LD A,(L6A83)
+ OR A
+ RET NZ
+ LD A,(06A84H)
+ OR A
+ RET NZ
+ LD A,005H
+ RET
+
+L4DC3: LD A,(DE)
+ CP 02DH
+ JR Z,L4DD1 ; (+009H)
+ CP 02BH
+ JR Z,L4DD1 ; (+005H)
+ CALL 03ABEH
+ JR C,L4DB5 ; (-01cH)
+L4DD1: LD A,001H
+ LD (06A84H),A
+ PUSH HL
+ LD HL,05FE1H
+ LD (L3C31),HL
+ LD HL,MONIT
+ LD A,(DE)
+ INC DE
+ CP 02BH
+ JR Z,L4DF2 ; (+00cH)
+ CP 02DH
+ JR NZ,L4DF4 ; (+00aH)
+ PUSH HL
+ LD HL,L60CC
+ LD (L3C31),HL
+ POP HL
+L4DF2: LD A,(DE)
+ INC DE
+L4DF4: SUB 030H
+ JR C,L4E14 ; (+01cH)
+ CP 00AH
+ JR NC,L4E14 ; (+018H)
+ PUSH DE
+ CALL L3C49
+ LD E,L
+L4E01: LD D,H
+ CALL L3C49
+ CALL L3C49
+ CALL L3C45
+ LD E,A
+ LD D,000H
+ CALL L3C45
+ POP DE
+ JR L4DF2 ; (-022H)
+
+L4E14: LD A,H
+ OR A
+ JR NZ,L4E4B ; (+033H)
+ LD A,L
+ POP HL
+ PUSH DE
+ PUSH BC
+ PUSH HL
+ LD DE,L6A66
+ PUSH DE
+L4E21: CALL L3AB5
+ POP HL
+ LD B,A
+ INC B
+ JR L4E2C ; (+003H)
+
+L4E29: CALL L3D0A
+L4E2C: DJNZ L4E29 ; (-005H)
+ EX DE,HL
+ POP HL
+ CALL MONIT
+ POP BC
+ POP DE
+ JP L3BB5
+
+ PUSH AF
+ PUSH BC
+ PUSH DE
+ LD DE,L3D72
+ CALL L60CC
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+ ADD HL,DE
+ RET NC
+ JR L4E4B ; (+002H)
+
+ ADD HL,HL
+ RET NC
+L4E4B: JP L20F5
+
+ PUSH DE
+ PUSH HL
+ LD HL,L6A66
+ LD E,A
+ LD D,000H
+ CALL 03A82H
+ EX DE,HL
+ POP HL
+ PUSH BC
+ CALL L5DAF
+L4E5F: POP BC
+ POP DE
+ RET
+
+L4E62: LD A,(DE)
+ CP 020H
+ INC DE
+ JR Z,L4E62 ; (-006H)
+ RET
+
+ LD A,005H
+ LD (06A65H),A
+ LD A,(HL)
+L4E6F: OR A
+ JR Z,L4E76 ; (+004H)
+ INC HL
+ LD A,(HL)
+ DEC HL
+ RLCA
+L4E76: LD A,020H
+ JR NC,L4E7F ; (+005H)
+ CALL L5D91
+ LD A,02DH
+L4E7F: PUSH AF
+L4E80: CALL L3FAF
+ CALL L403A
+ POP AF
+ DEC DE
+ LD (DE),A
+ RET
+
+ PUSH BC
+ CALL L5E4A
+ POP BC
+ RET
+
+L4E90: CALL L5D87
+L4E93: POP DE
+ POP HL
+ POP BC
+ RET
+
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ LD A,(HL)
+ CP 081H
+ JR C,L4E90 ; (-00fH)
+ LD A,(HL)
+ CP 0A0H
+ JR NC,L4E93 ; (-011H)
+ INC HL
+ CALL L3CD3
+ PUSH HL
+ LD L,(HL)
+ LD B,000H
+L4EAC: SRL E
+ RR D
+ RR C
+ RR L
+ INC A
+ INC B
+ CP 0A0H
+ JR NZ,L4EAC ; (-00eH)
+L4EBA: SLA L
+ RL C
+ RL D
+ RL E
+ DJNZ L4EBA ; (-00aH)
+ LD A,L
+ POP HL
+ LD (HL),A
+ DEC HL
+ CALL L3CCD
+ JR L4E93 ; (-03aH)
+
+ LD (HL),C
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ RET
+
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD C,(HL)
+ INC HL
+ RET
+
+ LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ PUSH AF
+ CALL L3CEC
+ POP AF
+ RLCA
+ RET NC
+ JP L5D91
+
+ PUSH BC
+L4EED: PUSH HL
+ PUSH DE
+ LD A,(HL)
+ CP 081H
+ JP C,L3C93
+ LD DE,L6A66
+ PUSH HL
+ CALL 03AB8H
+ LD HL,L6A66
+ CALL L3C97
+ POP DE
+ EX DE,HL
+ CALL L5DA6
+ JP L3C93
+
+ PUSH AF
+ PUSH BC
+ PUSH DE
+ LD DE,L3D72
+ CALL 05FE1H
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+ LD A,(HL)
+ CP 091H
+ JR C,L4F21 ; (+005H)
+L4F1C: CCF
+ LD HL,MONIT
+ RET
+
+L4F21: INC HL
+ BIT 7,(HL)
+ JR Z,L4F31 ; (+00bH)
+ CALL L3D31
+ LD A,H
+ CPL
+ LD H,A
+ LD A,L
+ CPL
+ LD L,A
+ INC HL
+ RET
+
+L4F31: DEC HL
+ LD A,(HL)
+ CP 091H
+ JP NC,L20F5
+ CP 081H
+ JR C,L4F1C ; (-020H)
+ PUSH AF
+ INC HL
+ LD A,(HL)
+L4F3F: INC HL
+ LD L,(HL)
+ LD H,A
+ POP AF
+ SET 7,H
+L4F45: CP 090H
+ RET Z
+ INC A
+ SRL H
+ RR L
+ JR L4F45 ; (-00aH)
+
+ SBC A,E
+ LD A,0BCH
+ JR NZ,L4F54 ; (+000H)
+L4F54: SBC A,B
+ JR L4EED ; (-06aH)
+
+ ADD A,B
+ NOP
+ SUB H
+ LD (HL),H
+ INC H
+ NOP
+ NOP
+ SUB C
+ LD B,E
+ LD D,B
+ NOP
+ NOP
+ ADC A,(HL)
+ INC E
+ LD B,B
+ NOP
+ NOP
+ ADC A,D
+ LD A,D
+ NOP
+ NOP
+ NOP
+ ADD A,A
+ LD C,B
+ NOP
+ NOP
+ NOP
+ ADD A,H
+ JR NZ,L4F75 ; (+000H)
+L4F75: NOP
+ NOP
+ ADD A,C
+ NOP
+ NOP
+ NOP
+ NOP
+ LD A,L
+ LD C,H
+ CALL Z,0CDCCH
+ LD H,(HL)
+ DEC HL
+ CALL Z,L1277
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ LD C,000H
+ PUSH DE
+ LD B,000H
+ LD DE,02710H
+ CALL L3DB2
+ LD DE,003E8H
+ CALL L3DB2
+ LD DE,00064H
+ CALL L3DB2
+ LD DE,0000AH
+ CALL L3DB2
+ LD A,L
+ POP DE
+ OR 030H
+ LD (DE),A
+ INC DE
+ XOR A
+ LD (DE),A
+ POP BC
+ POP DE
+ POP HL
+ RET
+
+ LD A,0FFH
+L4FB4: INC A
+ OR A
+ SBC HL,DE
+ JR NC,L4FB4 ; (-006H)
+ ADD HL,DE
+ OR A
+ INC B
+ OR 030H
+ POP DE
+ EX (SP),HL
+ LD (HL),A
+ INC HL
+ EX (SP),HL
+ PUSH DE
+ INC C
+ RET
+
+ LD HL,(L6A7E)
+ LD B,000H
+L4FCC: LD DE,L3D72
+ CALL L3C8A
+ JR C,L4FDA ; (+006H)
+ CALL L3C38
+ INC B
+ JR L4FCC ; (-00eH)
+
+L4FDA: LD DE,L3D77
+ CALL L3C8A
+ JR NC,L4FE8 ; (+006H)
+ CALL L3D0A
+ DEC B
+ JR L4FDA ; (-00eH)
+
+L4FE8: PUSH BC
+ CALL L3FAF
+ CALL L403A
+ POP BC
+ PUSH DE
+ EX DE,HL
+L4FF2: LD A,(HL)
+ OR A
+ JR Z,L4FF9 ; (+003H)
+ INC HL
+L4FF7: JR L4FF2 ; (-007H)
+
+L4FF9: DEC HL
+ LD A,(HL)
+ INC HL
+ CP 030H
+ JR NZ,L5002 ; (+002H)
+ INC B
+ DEC HL
+L5002: LD A,045H
+ LD (HL),A
+ INC HL
+ LD A,B
+ LD B,02BH
+ BIT 7,A
+ JR Z,L5011 ; (+004H)
+ NEG
+ LD B,02DH
+L5011: LD (HL),B
+ INC HL
+ LD (HL),030H
+L5015: SUB 00AH
+ JR C,L501C ; (+003H)
+ INC (HL)
+ JR L5015 ; (-007H)
+
+L501C: ADD A,03AH
+ INC HL
+ LD (HL),A
+ INC HL
+ LD (HL),000H
+ POP DE
+ RET
+
+ PUSH HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L5029: EX DE,HL
+ CALL L3E2F
+ POP HL
+ RET
+
+ LD DE,06A26H
+ PUSH DE
+ CALL L3D86
+ POP DE
+ JP L409E
+
+ PUSH HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ BIT 7,D
+ JR Z,L5029 ; (-019H)
+ LD HL,MONIT
+ OR A
+ SBC HL,DE
+ CALL L3E2F
+ DEC DE
+ LD A,02DH
+ LD (DE),A
+ POP HL
+ RET
+
+ PUSH HL
+ CALL L3D21
+ LD DE,06A31H
+ PUSH DE
+ CALL L3D86
+ POP HL
+ LD A,030H
+ LD B,005H
+L5061: CP (HL)
+ JR NZ,L5069 ; (+005H)
+ INC HL
+ DJNZ L5061 ; (-006H)
+ JR L5072 ; (+009H)
+
+L5069: LD A,B
+ LD (L6A81),A
+ LD A,001H
+ LD (06A82H),A
+L5072: LD A,02EH
+ LD (L6A36),A
+ POP HL
+ CALL 03CDAH
+ JP L3FFF
+
+ OR A
+ JP Z,L3F09
+ PUSH DE
+ LD A,(HL)
+ OR A
+ JR Z,L50C6 ; (+03fH)
+ PUSH HL
+ LD A,D
+ LD DE,L6A6E
+ PUSH AF
+ CALL L3AB5
+ POP AF
+ OR A
+ JR Z,L509F ; (+00bH)
+ LD B,A
+ LD HL,L6A6E
+ JR L509D ; (+003H)
+
+L509A: CALL L3D0A
+L509D: DJNZ L509A ; (-005H)
+L509F: POP HL
+ LD B,000H
+L50A2: LD DE,L6A6E
+ CALL L3C8A
+ JR C,L50B0 ; (+006H)
+ CALL L3C38
+ INC B
+ JR L50A2 ; (-00eH)
+
+L50B0: PUSH HL
+ LD HL,L6A6E
+ CALL L3C38
+ POP HL
+L50B8: LD DE,L6A6E
+ CALL L3C8A
+ JR NC,L50C6 ; (+006H)
+ CALL L3D0A
+ DEC B
+ JR L50B8 ; (-00eH)
+
+L50C6: POP DE
+ PUSH BC
+ CALL L3F23
+ POP BC
+ PUSH DE
+ LD A,(DE)
+ CP 02EH
+ JR NZ,L50E4 ; (+012H)
+ LD DE,L6A36
+ DEC DE
+ LD A,(DE)
+ CP 031H
+ POP DE
+ PUSH DE
+ JR NZ,L5100 ; (+023H)
+ EX DE,HL
+ INC HL
+ LD (HL),031H
+ DEC HL
+ JR L50FE ; (+01aH)
+
+L50E4: LD A,(DE)
+ CP 031H
+ JR NZ,L5100 ; (+017H)
+ EX DE,HL
+ INC HL
+ LD A,(HL)
+ DEC HL
+ CP 02EH
+ LD A,030H
+ JR Z,L50F5 ; (+002H)
+ LD A,020H
+L50F5: LD (HL),A
+L50F6: INC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L50F6 ; (-006H)
+ LD (HL),031H
+L50FE: EX DE,HL
+ INC B
+L5100: LD A,(DE)
+ INC DE
+ OR A
+ JR NZ,L5100 ; (-005H)
+ DEC DE
+ JP L3E02
+
+ PUSH DE
+ CALL L3F23
+ POP AF
+ OR A
+ RET NZ
+ PUSH HL
+ LD HL,L6A36
+ DEC HL
+ LD A,030H
+ CP (HL)
+L5118: JP NZ,02ADBH
+ DEC HL
+ LD A,020H
+ CP (HL)
+ JR NZ,L5118 ; (-009H)
+ POP HL
+ RET
+
+ PUSH DE
+ CALL L3FAF
+ JP C,02ADBH
+ POP HL
+ PUSH HL
+ LD H,000H
+ INC L
+ JR Z,L5132 ; (+001H)
+ DEC L
+L5132: LD DE,L6A37
+ ADD HL,DE
+ LD A,(HL)
+ LD (HL),000H
+ LD DE,L3036
+ CP 035H
+ JR C,L514F ; (+00fH)
+L5140: DEC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L5140 ; (-006H)
+ INC A
+ JP Z,02ADBH
+ LD (HL),A
+ CP 03AH
+ JR Z,0513AH ; (-015H)
+L514F: LD HL,0110EH
+ LD DE,02000H
+L5155: LD (HL),D
+ INC HL
+ DEC E
+ JR NZ,L5155 ; (-005H)
+ POP HL
+ PUSH HL
+ LD E,H
+ LD D,000H
+ LD HL,0110FH
+ ADD HL,DE
+ PUSH HL
+ LD HL,06A2DH
+ LD (HL),020H
+ INC HL
+ LD D,007H
+L516C: LD A,(HL)
+ CP 030H
+ JR NZ,L5177 ; (+006H)
+ LD (HL),020H
+ INC HL
+ DEC D
+ JR NZ,L516C ; (-00bH)
+L5177: POP HL
+ PUSH HL
+ LD B,E
+ LD A,B
+ OR A
+L517C: JR Z,L5195 ; (+017H)
+ LD DE,L6A36
+L5181: DEC HL
+ DEC DE
+ LD A,(DE)
+ LD (HL),A
+ CP 020H
+ JR Z,L5195 ; (+00cH)
+ DJNZ L5181 ; (-00aH)
+ DEC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L5195 ; (+004H)
+ INC A
+ JP NZ,02ADBH
+L5195: POP HL
+ POP DE
+ INC E
+ JR Z,L51A9 ; (+00fH)
+ LD B,E
+ LD DE,L6A37
+ LD (HL),02EH
+L51A0: INC HL
+ DEC B
+ JR Z,L51A9 ; (+005H)
+ LD A,(DE)
+ INC DE
+ LD (HL),A
+ JR L51A0 ; (-009H)
+
+L51A9: LD (HL),000H
+L51AB: LD DE,0110FH
+ RET
+
+ LD (L6A7E),HL
+ XOR A
+ LD (L6A81),A
+ LD (06A82H),A
+ PUSH HL
+ LD HL,06A2DH
+ LD (HL),0FFH
+ LD B,021H
+ LD A,030H
+L51C3: INC HL
+ LD (HL),A
+ DJNZ L51C3 ; (-004H)
+ LD A,02EH
+ LD (L6A36),A
+ POP HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD DE,L3D4F
+ CALL L5E4A
+ CCF
+ RET C
+ LD DE,L3D81
+ CALL L5E4A
+ RET C
+ LD DE,L6A6E
+ PUSH DE
+ CALL 03AB8H
+ POP HL
+ LD A,(HL)
+ CP 081H
+ JR C,L51FF ; (+013H)
+ CP 090H
+ JP C,L3E51
+ LD IX,L6A2E
+L51F5: LD DE,L3D54
+ CALL L40C6
+ CALL L40F8
+ RET NC
+L51FF: LD IX,L6A37
+L5203: LD DE,L3D4F
+ PUSH BC
+ PUSH IX
+L5209: CALL 05FE1H
+ POP IX
+L520E: POP BC
+ CALL 03AADH
+ CALL L40C6
+L5215: CALL L40F8
+L5218: JR C,L5203 ; (-017H)
+ RET
+
+ LD A,005H
+ LD (06A65H),A
+ PUSH HL
+ LD DE,L6A76
+ PUSH DE
+ CALL 03AB8H
+ POP HL
+ CALL L3FAF
+ CALL L4037
+ POP HL
+ RET
+
+L5231: LD DE,L6A36
+ LD (DE),A
+ DEC DE
+ RET
+
+ JP C,L3DC7
+ LD HL,(L6A7E)
+ LD A,(HL)
+ OR A
+ JR Z,L5231 ; (-010H)
+ LD DE,L6A2E
+ DEC DE
+ EX DE,HL
+ LD DE,00001H
+L5249: INC HL
+ LD A,(HL)
+ CP 02EH
+ JR NZ,L5254 ; (+005H)
+ LD DE,MONIT
+ JR L5249 ; (-00bH)
+
+L5254: CP 030H
+ JR Z,L5249 ; (-00fH)
+ ADD HL,DE
+ LD DE,00008H
+ ADD HL,DE
+ LD A,(HL)
+L525E: LD (HL),030H
+ CP 035H
+ JR C,L5273 ; (+00fH)
+L5264: DEC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L5264 ; (-006H)
+ INC A
+ JR Z,L52AD ; (+040H)
+ LD (HL),A
+ CP 03AH
+ JR Z,L525E ; (-014H)
+ INC HL
+L5273: LD DE,L6A36
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ JR C,L5282 ; (+005H)
+ LD HL,L6A36
+ JR L5299 ; (+017H)
+
+L5282: DEC HL
+ LD A,(HL)
+ CP 02EH
+ DEC HL
+ JR Z,L5298 ; (+00fH)
+ INC HL
+ CP 030H
+ JR Z,L5273 ; (-01bH)
+ PUSH HL
+ LD DE,L6A3F
+ SBC HL,DE
+ POP HL
+ JP NC,L3DC7
+L5298: INC HL
+L5299: LD (HL),000H
+ LD DE,L6A2E
+L529E: LD A,(DE)
+ CP 030H
+ JR NZ,L52A6 ; (+003H)
+ INC DE
+ JR L529E ; (-008H)
+
+L52A6: OR A
+ RET NZ
+ DEC DE
+ LD A,030H
+ LD (DE),A
+ RET
+
+L52AD: LD HL,06A26H
+ LD (HL),031H
+ INC HL
+ LD (HL),045H
+ LD DE,03038H
+ INC HL
+ LD (HL),02BH
+ INC HL
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),000H
+ LD DE,06A26H
+ RET
+
+L52C6: LD A,(DE)
+ CP 07DH
+ RET Z
+L52CA: CALL L5E4A
+ JR C,L52E2 ; (+013H)
+ INC (IX+000H)
+ PUSH IX
+ PUSH BC
+ CALL L5DA6
+ POP BC
+ POP IX
+ LD A,001H
+ LD (06A82H),A
+ JR L52CA ; (-018H)
+
+L52E2: INC IX
+ CALL 03AADH
+ LD A,(06A82H)
+ LD B,A
+ LD A,(L6A81)
+ ADD A,B
+ LD (L6A81),A
+ CALL L40F8
+ RET NC
+ JR L52C6 ; (-032H)
+
+ LD A,(HL)
+ OR A
+ RET Z
+ LD A,(L6A81)
+ CP 009H
+ RET
+
+ NOP
+ XOR A
+ LD (L1819),A
+ CALL L5414
+ CP 0FBH
+ JR NZ,L5322 ; (+015H)
+ INC HL
+ CALL L5414
+ CP 050H
+ JP NZ,L20FE
+ INC HL
+ LD (L1819),A
+ LD A,(04DCBH)
+ CP 002H
+ JP Z,L4FF7
+L5322: CALL L35EF
+ LD (04146H),DE
+ LD (04154H),BC
+ PUSH HL
+ LD HL,(06ABFH)
+L5331: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD A,D
+ OR E
+ JP Z,L41A5
+ EX DE,HL
+L533B: ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ PUSH HL
+ LD HL,MONIT
+ OR A
+ SBC HL,DE
+ JR C,L5353 ; (+006H)
+ JR Z,L5353 ; (+004H)
+ POP HL
+ POP HL
+ JR L5331 ; (-022H)
+
+L5353: LD HL,MONIT
+ OR A
+ SBC HL,DE
+ JR NC,L535F ; (+004H)
+ POP HL
+ POP HL
+ JR L53A5 ; (+046H)
+
+L535F: POP HL
+ EX DE,HL
+ PUSH DE
+ LD (038E2H),HL
+ CALL L21A7
+ CALL L17E2
+ LD A,020H
+ CALL L17D3
+ POP HL
+ LD DE,0110FH
+ PUSH DE
+ CALL L49CD
+ POP DE
+ LD A,(L1819)
+ OR A
+ JR NZ,L5389 ; (+00aH)
+L537F: LD A,(DE)
+ OR A
+ JR Z,L538C ; (+009H)
+ CALL 0055EH
+ INC DE
+ JR L537F ; (-00aH)
+
+L5389: CALL L17E2
+L538C: CALL L17F9
+ POP HL
+L5390: XOR A
+ CALL 00058H
+ CP 020H
+ JR Z,L5390 ; (-008H)
+ CP 01BH
+ JP NZ,L4131
+ POP HL
+ XOR A
+ LD (L1819),A
+ JP L2069
+
+L53A5: POP HL
+ XOR A
+ LD (L1819),A
+ RET
+
+ XOR A
+ LD (00FFCH),A
+ CALL L46D6
+ PUSH HL
+ LD DE,L430B
+ LD HL,00FFCH
+L53B9: CALL L473F
+ LD A,001H
+ LD (L42A3),A
+ LD A,(00FFCH)
+ CP 002H
+ JR Z,L53F4 ; (+02cH)
+ CP 005H
+ JR Z,L53F4 ; (+028H)
+L53CC: LD A,018H
+ JP L2108
+
+ XOR A
+ LD (00FFCH),A
+ CALL L46D6
+ PUSH HL
+ LD DE,L430B
+ LD HL,00FFCH
+ CALL L473F
+ LD A,(00FFCH)
+ CP 001H
+ JR Z,L542E ; (+045H)
+ CP 004H
+ JR Z,L53CC ; (-021H)
+ XOR A
+ LD (L42A3),A
+ CALL L2239
+L53F4: LD HL,(06AB9H)
+ LD DE,00200H
+ OR A
+ SBC HL,DE
+ LD (L4251),HL
+ LD A,(00FFCH)
+ CP 002H
+ JR Z,L544D ; (+046H)
+ LD A,(L42A3)
+ CP 001H
+ JR Z,L5450 ; (+042H)
+ LD HL,(06ABFH)
+ LD (01010H),HL
+L5414: LD BC,(0100EH)
+ CALL RDDAT
+ JP C,L4779
+ LD HL,(01010H)
+ LD DE,(0100EH)
+ ADD HL,DE
+ LD (06AB3H),HL
+ CALL L224E
+ POP HL
+ RET
+
+L542E: LD HL,(01010H)
+ PUSH HL
+ PUSH DE
+ LD DE,(06ABBH)
+ OR A
+ SBC HL,DE
+ LD A,012H
+ JP C,L2108
+ POP DE
+ POP HL
+ LD BC,(0100EH)
+ CALL RDDAT
+ JP C,L477E
+ POP HL
+ RET
+
+L544D: LD (L42A3),A
+L5450: LD HL,MONIT
+ LD DE,(0100EH)
+ OR A
+ SBC HL,DE
+ LD (01010H),HL
+ LD (L42A1),HL
+ LD DE,(06AB3H)
+ INC D
+ INC D
+ INC D
+ INC D
+ INC D
+ OR A
+ SBC HL,DE
+ JP C,L20B9
+ LD HL,(01010H)
+ LD BC,(0100EH)
+ CALL RDDAT
+ JP C,L4779
+ LD A,(00FFCH)
+ CP 005H
+ JR Z,L548C ; (+009H)
+ LD DE,L4290
+ CALL 00051H
+ CALL LETNL
+L548C: POP HL
+ JP L1876
+
+ DB "CONVERT" ; CONVERTING TEXT string
+L5497: DB "ING TEXT",000H
+ NOP
+ NOP
+ NOP
+ NOP
+ CALL L352F
+ PUSH HL
+ LD HL,00FFCH
+ LD (HL),005H
+ LD HL,(06ABFH)
+ LD (01010H),HL
+ EX DE,HL
+ LD HL,(06AB3H)
+ OR A
+ SBC HL,DE
+ LD (0100EH),HL
+ POP HL
+ CALL 046C1H
+ PUSH HL
+ LD HL,(01010H)
+ LD BC,(0100EH)
+ CALL WRDAT
+ JP C,L477E
+ POP HL
+ RET
+
+ CALL L352F
+ CALL L46D6
+ PUSH HL
+ LD DE,L4316
+ LD HL,00FFCH
+ CALL L473F
+ LD BC,(0100EH)
+ LD A,(00FFCH)
+ LD HL,(06ABFH)
+ CP 005H
+ JR Z,L54F7 ; (+008H)
+ CP 001H
+ JP NZ,L41CC
+ LD HL,(01010H)
+L54F7: CALL VERFY
+ JP C,L477E
+ CALL NL
+ LD DE,L4308
+ CALL 00051H
+ POP HL
+ RET
+
+ LD C,A
+ LD C,E
+ NOP
+ DB "LOADING" ; LOADING string
+ DS 3, 020H
+ NOP
+ DB "VERIFYING " ; VERIFYING string
+ NOP
+ CP 087H
+ JP NZ,L20FE
+ INC HL
+ PUSH HL
+ LD C,000H
+L552A: CALL NL
+ LD DE,04432H
+ CALL 00051H
+ LD A,C
+ CP 009H
+ JR Z,L553C ; (+004H)
+ ADD A,031H
+ JR L5542 ; (+006H)
+
+L553C: LD A,031H
+ CALL L17D3
+ DEC A
+L5542: CALL L17D3
+ LD A,029H
+ CALL L17D3
+ LD A,03DH
+ CALL L17D3
+ LD A,C
+ CALL 04424H
+ LD B,(HL)
+ INC HL
+ LD DE,0110FH
+ CALL 0436CH
+ LD DE,0110FH
+ CALL 00051H
+ INC C
+ LD A,C
+ CP 00AH
+L5565: JR NZ,L552A ; (-03dH)
+ CALL NL
+ POP HL
+ RET
+
+ EX DE,HL
+ PUSH BC
+ LD A,B
+ OR A
+ LD C,000H
+ JR Z,L559D ; (+029H)
+L5574: LD A,(DE)
+ CP 020H
+ JR C,L55A2 ; (+029H)
+ CP 022H
+ JR Z,L55A2 ; (+025H)
+ LD A,C
+ CP 001H
+ JR Z,L558E ; (+00cH)
+ OR A
+ JR Z,L558B ; (+006H)
+ LD (HL),029H
+ INC HL
+L5588: LD (HL),02BH
+ INC HL
+L558B: LD (HL),022H
+ INC HL
+L558E: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ LD C,001H
+ DJNZ L5574 ; (-022H)
+L5596: LD (HL),022H
+L5598: INC HL
+ LD (HL),000H
+ POP BC
+ RET
+
+L559D: LD (HL),022H
+ INC HL
+ JR L5596 ; (-00cH)
+
+L55A2: LD A,C
+ CP 0FFH
+ JR Z,L55DE ; (+037H)
+ OR A
+ JR Z,L55B0 ; (+006H)
+ LD (HL),022H
+ INC HL
+ LD (HL),02BH
+ INC HL
+L55B0: LD (HL),043H
+ INC HL
+ LD (HL),048H
+ INC HL
+ LD (HL),052H
+ INC HL
+ LD (HL),024H
+ INC HL
+ LD (HL),028H
+L55BE: INC HL
+ PUSH DE
+ PUSH HL
+ PUSH BC
+ EX DE,HL
+ LD L,(HL)
+ LD H,000H
+ CALL L21A7
+ POP BC
+ POP HL
+L55CB: LD A,(DE)
+ OR A
+ JR Z,L55D4 ; (+005H)
+ LD (HL),A
+ INC DE
+ INC HL
+ JR L55CB ; (-009H)
+
+L55D4: POP DE
+ INC DE
+ LD C,0FFH
+ DJNZ L5574 ; (-066H)
+ LD (HL),029H
+ JR L5598 ; (-046H)
+
+L55DE: LD (HL),02CH
+ JR L55BE ; (-024H)
+
+ CALL L5414
+L55E5: CP 028H
+ INC HL
+ JP NZ,L20FE
+ CALL L4D50
+ PUSH AF
+ CALL L5414
+ CALL 05804H
+ CALL L5414
+ CP 0F4H
+ JP NZ,L20FE
+ INC HL
+ POP AF
+L55FF: DEC A
+ CP 00AH
+ JP NC,L2101
+ PUSH HL
+ CALL 04424H
+ EX (SP),HL
+ CALL 04DBCH
+ EX (SP),HL
+ LD A,B
+L560F: CP 010H
+ JR C,L5615 ; (+002H)
+ LD A,00FH
+L5615: LD (HL),A
+L5616: OR A
+ JR Z,L5621 ; (+008H)
+ LD B,A
+ INC HL
+L561B: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L561B ; (-006H)
+L5621: POP HL
+ EI
+ RET
+
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ LD HL,L1322
+ ADD A,L
+ LD L,A
+L562D: LD A,000H
+ ADC A,H
+ LD H,A
+ RET
+
+ LD B,H
+ LD B,L
+ LD B,(HL)
+ JR NZ,05682H ; (+04bH)
+ LD B,L
+ LD E,C
+ JR Z,L563B ; (+000H)
+L563B: INC HL
+ CALL 04DBCH
+ LD A,B
+ OR A
+ JR Z,L5657 ; (+014H)
+ PUSH HL
+ LD HL,0110FH
+ EX DE,HL
+ LD C,B
+ LD B,000H
+ LDIR
+ LD A,00DH
+ LD (DE),A
+ LD DE,0110FH
+ CALL MELDY
+ POP HL
+L5657: CALL L5414
+ CP 03BH
+ JR Z,L563B ; (-023H)
+ CP 02CH
+ JR Z,L563B ; (-027H)
+ RET
+
+ CALL L4D50
+L5666: OR A
+ JP Z,L2101
+ CP 008H
+ JP NC,L2101
+ CALL 00041H
+ RET
+
+ CALL L5414
+ CP 02CH
+ JR NZ,L568E ; (+014H)
+ INC HL
+ CALL L5414
+ CP 02CH
+ JP NZ,L20FE
+ INC HL
+ PUSH HL
+ LD HL,0005DH
+ LD (04533H),HL
+ POP HL
+ JR L56CE ; (+040H)
+
+L568E: CALL L4D50
+ CP 028H
+ JP NC,L2101
+ LD (04535H),A
+ CALL L5414
+ CP 02CH
+ JP NZ,L20FE
+ INC HL
+ CALL L5414
+ CP 02CH
+ JP Z,L20FE
+ CALL L4D50
+ CP 025H
+ JP NC,L2101
+ LD (04536H),A
+ PUSH HL
+ LD HL,(04535H)
+ PUSH DE
+ CALL 005C5H
+ LD D,0D8H
+ ADD HL,DE
+ POP DE
+ LD (04533H),HL
+ POP HL
+ CALL L5414
+ CP 02CH
+ JP NZ,L20FE
+ INC HL
+L56CE: CALL L5414
+ CP 02CH
+ INC HL
+ JR Z,L5701 ; (+02bH)
+ DEC HL
+ CALL L4D50
+ CP 008H
+ JP NC,L2101
+ RLA
+ RLA
+ RLA
+ RLA
+ AND 070H
+ LD B,A
+ PUSH HL
+ LD HL,(04533H)
+ LD A,H
+ CP 0D8H
+ JR NC,L56F7 ; (+008H)
+ LD A,(HL)
+ AND 08FH
+ OR B
+ LD (HL),A
+ POP HL
+ JR L5701 ; (+00aH)
+
+L56F7: CALL 000EAH
+ AND 08FH
+ OR B
+ CALL 000F2H
+ POP HL
+L5701: CALL L5414
+ CP 02CH
+ JR NZ,L5709 ; (+001H)
+ INC HL
+L5709: CALL L1C66
+ RET Z
+ CALL L4D50
+ CP 008H
+ JP NC,L2101
+ AND 007H
+ LD B,A
+ PUSH HL
+ LD HL,(04533H)
+ LD A,H
+ CP 0D8H
+ JR NC,L5728 ; (+007H)
+ LD A,(HL)
+ AND 0F8H
+ OR B
+ LD (HL),A
+ POP HL
+ RET
+
+L5728: CALL 000EAH
+ AND 0F8H
+ OR B
+ CALL 000F2H
+ POP HL
+ RET
+
+ NOP
+ NOP
+ NOP
+ NOP
+ LD IY,(L6AB5)
+ LD DE,00110H
+ ADD IY,DE
+ LD A,(IY+000H)
+ OR A
+ RET
+
+ PUSH HL
+ CALL L4537
+ JR Z,L576B ; (+020H)
+ LD A,(IY+001H)
+ CP 04FH
+ JR NZ,L576B ; (+019H)
+ LD A,(00FFCH)
+ CP 004H
+ JR NZ,L576B ; (+012H)
+ CALL 04696H
+ LD (HL),01AH
+ PUSH IY
+ POP HL
+ LD BC,0000EH
+ ADD HL,BC
+ CALL 0461EH
+ JP C,L477E
+L576B: LD (IY+000H),000H
+ POP HL
+ RET
+
+ PUSH HL
+ PUSH BC
+ CALL L45B5
+ JP C,L4589
+ CALL 04696H
+ LD A,(HL)
+ INC (IY+00BH)
+ JR NZ,L5786 ; (+004H)
+ LD (IY+00CH),000H
+L5786: POP BC
+ POP HL
+ RET
+
+ LD A,03FH
+ JP L2108
+
+ INC B
+L578F: LD A,(IY+00CH)
+ OR A
+ JR NZ,L57AD ; (+018H)
+ LD BC,00090H
+ ADD HL,BC
+ LD BC,00080H
+ CALL L474F
+ CALL RDDAT
+ JP C,L477E
+ LD (IY+00BH),080H
+ LD (IY+00CH),001H
+L57AD: CALL 04696H
+ LD A,(HL)
+ CP 0FFH
+ JR L57F1 ; (+03cH)
+
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ CALL L4626
+ PUSH IY
+ POP HL
+ LD A,(0458EH)
+ CP 003H
+ JR Z,L578F ; (-036H)
+ LD BC,0000EH
+ ADD HL,BC
+ LD A,(IY+00CH)
+ OR A
+ JR NZ,L57DC ; (+00dH)
+ PUSH HL
+ CALL 045F6H
+ POP HL
+ LD (IY+00BH),000H
+ LD (IY+00CH),001H
+L57DC: LD A,(HL)
+ INC HL
+L57DE: AND (HL)
+ INC A
+ OR A
+ JR NZ,L57F2 ; (+00fH)
+ LD BC,00100H
+ ADD HL,BC
+L57E7: LD A,(HL)
+ DEC HL
+ DEC C
+ OR A
+ JR Z,L57E7 ; (-006H)
+ LD A,(IY+00BH)
+ CP C
+L57F1: CCF
+L57F2: POP HL
+ POP DE
+ POP BC
+ RET
+
+ LD BC,00102H
+L57F9: CALL L474F
+ CALL RDDAT
+L57FF: JP C,L477E
+ RET
+
+L5803: LD BC,00102H
+ CALL L474F
+ CALL WRDAT
+ PUSH AF
+ CALL 04758H
+ CALL 04616H
+ POP AF
+ JR L57FF ; (-017H)
+
+ INC (IY+00EH)
+ RET NZ
+ INC (IY+00FH)
+ RET
+
+ LD A,0FFH
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ DEC HL
+ JR L5803 ; (-023H)
+
+ PUSH AF
+ CALL 04645H
+ LD A,(IY+001H)
+ CP 049H
+ JP NZ,L4640
+ POP AF
+ RET
+
+ PUSH AF
+ CALL 04645H
+ LD A,(IY+001H)
+ CP 04FH
+ JP Z,04632H
+ LD A,018H
+ JP L2108
+
+ CALL L4537
+ RET NZ
+ LD A,018H
+ JP L2108
+
+ CALL L4537
+ LD A,(IY+00DH)
+ RET
+
+ CALL L4634
+L5858: LD A,020H
+ CALL 0466FH
+ LD A,(IY+00DH)
+ AND 007H
+ RET Z
+ JR L5858 ; (-00dH)
+
+ CALL L4634
+ LD A,0FFH
+ LD (IY+00DH),A
+ LD A,00DH
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ PUSH AF
+ CALL L4634
+ INC (IY+00DH)
+ CALL 04696H
+ POP AF
+ LD (HL),A
+L587E: PUSH AF
+ INC (IY+00BH)
+ JR NZ,L5891 ; (+00dH)
+ PUSH IY
+ POP HL
+ LD BC,0000EH
+ ADD HL,BC
+L588B: CALL 04603H
+ CALL 04758H
+L5891: POP AF
+ POP BC
+ POP DE
+ POP HL
+ RET
+
+ PUSH IY
+ POP HL
+ LD C,010H
+ LD B,000H
+ ADD HL,BC
+ LD C,(IY+00BH)
+ ADD HL,BC
+ RET
+
+ LD A,004H
+ LD (00FFCH),A
+ CALL L172C
+ PUSH HL
+ CALL L4537
+ JR NZ,L592D ; (+07cH)
+L58B1: CALL L4764
+ LD (IY+001H),04FH
+ CALL 046C4H
+L58BB: POP HL
+ LD (IY+000H),001H
+ RET
+
+ CALL L172C
+L58C4: PUSH HL
+ LD HL,00FFCH
+ LD BC,00080H
+ CALL L474F
+ CALL WRINF
+ JP C,L477E
+ POP HL
+ RET
+
+ CALL L172C
+ PUSH HL
+ CALL 04708H
+ POP HL
+ RET
+
+L58DF: LD A,000H
+ LD (00FFCH),A
+ CALL L172C
+ PUSH HL
+ CALL L4537
+ JR NZ,L592D ; (+040H)
+L58ED: CALL L4764
+ LD (IY+001H),049H
+L58F4: CALL 04708H
+ LD A,(00FFCH)
+ LD (0458EH),A
+ CP 004H
+ JR Z,L58BB ; (-046H)
+ CP 003H
+ JP NZ,L41CC
+ JR L58BB ; (-04dH)
+
+L5908: LD HL,0110FH
+ LD BC,00080H
+ CALL L474F
+ CALL RDINF
+ JR C,L597E ; (+068H)
+ LD DE,L180E
+ CALL L473F
+ CALL L16EE
+ JR NZ,L5908 ; (-019H)
+ LD HL,0110FH
+ LD DE,00FFCH
+ LD BC,00080H
+ LDIR
+ RET
+
+L592D: LD A,02BH
+ JP L2108
+
+ LD DE,00FFCH
+ LD BC,00020H
+ PUSH HL
+ LDIR
+ POP HL
+ JP L46BB
+
+ CALL 04746H
+ CALL Z,016C8H
+ RET
+
+ PUSH HL
+ LD HL,(038E6H)
+ INC HL
+ LD A,H
+ OR L
+ POP HL
+ RET
+
+ PUSH AF
+ CALL 04746H
+ LD (00050H),A
+ POP AF
+ RET
+
+ PUSH HL
+ PUSH BC
+ PUSH IY
+ POP HL
+ LD BC,00010H
+ ADD HL,BC
+ XOR A
+ JR L5970 ; (+00cH)
+
+ PUSH HL
+ PUSH BC
+ PUSH IY
+ POP HL
+ LD B,010H
+ XOR A
+L596C: LD (HL),A
+ INC HL
+ DJNZ L596C ; (-004H)
+L5970: LD B,000H
+L5972: LD (HL),A
+ INC HL
+ DJNZ L5972 ; (-004H)
+ POP BC
+ POP HL
+ RET
+
+ PUSH AF
+ CALL L2239
+ POP AF
+L597E: EX AF,AF'
+ XOR A
+ LD (L1819),A
+ CALL L4537
+ LD (IY+000H),000H
+ EX AF,AF'
+ CP 002H
+ JP NZ,L2069
+ LD A,018H
+ JP L2108
+
+ PUSH DE
+ PUSH BC
+ EX DE,HL
+ CALL L5414
+ EX DE,HL
+ LD C,000H
+L599E: CALL 0493EH
+ OR A
+ JR Z,L59DD ; (+039H)
+ CP 0FFH
+ JR Z,L59D2 ; (+02aH)
+ INC DE
+ CP 060H
+ JP NC,L20FE
+ CP 020H
+ JR C,L599E ; (-014H)
+ DEC DE
+ CP 027H
+ JP Z,L483E
+ CP 03FH
+ JR Z,L59D6 ; (+01aH)
+ CP 022H
+ JR Z,L59E1 ; (+021H)
+ CP 02EH
+ JR Z,L59CD ; (+009H)
+ CP 024H
+ JR Z,L59CD ; (+005H)
+ CALL 03ABEH
+ JR C,L5A02 ; (+035H)
+L59CD: CALL 04948H
+ JR L599E ; (-034H)
+
+L59D2: LD (HL),LSE4
+ JR L59D8 ; (+002H)
+
+L59D6: LD (HL),08FH
+L59D8: CALL 04937H
+ JR L599E ; (-03fH)
+
+L59DD: LD (HL),A
+ POP BC
+ POP DE
+ RET
+
+L59E1: CALL 0492BH
+ JR Z,L59DD ; (-009H)
+ JR L599E ; (-04aH)
+
+L59E8: JR L599E ; (-04cH)
+
+L59EA: POP BC
+ LD A,(DE)
+ CALL 03AC7H
+ JR C,L59FD ; (+00cH)
+L59F1: CALL 04936H
+ LD A,(DE)
+ CALL 03ABEH
+ JP C,0479EH
+ JR L59F1 ; (-00cH)
+
+L59FD: CALL 04936H
+ JR L599E ; (-064H)
+
+L5A02: PUSH BC
+ LD BC,L2AF5
+ CALL L48F4
+ JR NC,L5A44 ; (+039H)
+ LD BC,L2C54
+ CALL L48F4
+ LD C,0FEH
+ JR NC,L5A1F ; (+00aH)
+ LD BC,L30A9
+ CALL L48F4
+ LD C,0FFH
+ JR C,L59EA ; (-035H)
+L5A1F: LD (HL),C
+ INC HL
+ LD (HL),B
+ LD A,B
+ POP BC
+ CALL 04939H
+ CALL L4938
+ CP 0B4H
+ JR NZ,L59E8 ; (-046H)
+ CALL 0493EH
+ CP 03DH
+ JP NZ,L47E8
+ LD (HL),0F4H
+ CALL 04937H
+ JP 04884H
+
+ CALL 04936H
+ JP L48DE
+
+L5A44: LD A,B
+ POP BC
+ CALL L4938
+ CP 097H
+ JP Z,L48DE
+ CP 094H
+ JP Z,L48DE
+ CP 0C2H
+ JR Z,L5AD4 ; (+07dH)
+ CP LSE2
+ JR Z,L5A84 ; (+029H)
+ CP 08DH
+L5A5D: JR NC,L59E8 ; (-077H)
+ CP 087H
+ JR NC,L5A9E ; (+03bH)
+ CP 082H
+ JR NZ,L5A84 ; (+01dH)
+ CALL 0493EH
+ OR A
+ JR Z,L5A5D ; (-010H)
+ PUSH BC
+ LD BC,L2AF5
+ CALL L48F4
+ LD A,B
+ POP BC
+ JP C,0479EH
+ CALL L4938
+ CP LSE0
+ JR Z,L5A84 ; (+004H)
+ CP LSE4
+ JR NZ,L5A5D ; (-027H)
+L5A84: CALL 0493EH
+ CP 02CH
+ JR Z,L5A96 ; (+00bH)
+ CALL 03ABEH
+ JP C,L47E8
+ CALL 049B3H
+ JR L5A84 ; (-012H)
+
+L5A96: CALL 04936H
+ JR L5A84 ; (-017H)
+
+L5A9B: CALL 04936H
+L5A9E: CALL 0493EH
+ CP 02FH
+ JR NZ,L5AB5 ; (+010H)
+ LD A,0FBH
+ CALL 04936H
+ EX DE,HL
+ CALL L5414
+ EX DE,HL
+ CALL 04936H
+ CALL 0493EH
+L5AB5: CP 022H
+ JR NZ,L5AC1 ; (+008H)
+ CALL 0492BH
+ JR NZ,L5A9E ; (-020H)
+ JP 047DDH
+
+L5AC1: CP 02CH
+ JR C,L5ACC ; (+007H)
+L5AC5: CP 02FH
+ JR C,L5A9B ; (-02eH)
+ CALL 03ABEH
+L5ACC: JP C,L47E8
+ CALL 049B3H
+ JR L5A9E ; (-036H)
+
+L5AD4: DEC HL
+ LD (HL),03AH
+ INC HL
+ LD (HL),A
+ CALL L4938
+ JR L5A84 ; (-05aH)
+
+L5ADE: LD A,(DE)
+ CALL L49C8
+ JP Z,0479EH
+ CALL 04936H
+ CP 022H
+ JR NZ,L5ADE ; (-00eH)
+ CALL 0492FH
+ JP Z,047DDH
+ JR L5ADE ; (-016H)
+
+ PUSH HL
+ PUSH DE
+ LD L,C
+ LD H,B
+ LD B,07FH
+L5AFA: POP DE
+ PUSH DE
+ INC B
+ LD A,(HL)
+ INC A
+ JR NZ,L5B06 ; (+005H)
+ POP DE
+ POP HL
+ SCF
+ RET
+
+L5B05: INC DE
+L5B06: LD A,(DE)
+ CP 020H
+ JR Z,L5B05 ; (-006H)
+ LD C,(HL)
+ INC HL
+ INC DE
+ CP 02EH
+ JR Z,L5B21 ; (+00fH)
+ SUB C
+L5B13: JR Z,L5B06 ; (-00fH)
+ CP 080H
+ JR Z,L5B27 ; (+00eH)
+L5B19: DEC HL
+L5B1A: LD A,(HL)
+ RLCA
+ INC HL
+ JR NC,L5B1A ; (-005H)
+ JR L5AFA ; (-027H)
+
+L5B21: LD A,B
+ CP 0EEH
+ JR NC,L5B19 ; (-00dH)
+ CCF
+L5B27: POP HL
+ POP HL
+ LD (HL),B
+ RET
+
+L5B2B: LD (HL),A
+ CALL 04937H
+ LD A,(DE)
+ OR A
+ RET Z
+ CP 022H
+ JR NZ,L5B2B ; (-00bH)
+ LD (HL),A
+L5B37: INC DE
+ INC HL
+ INC C
+ RET NZ
+ JP L20F2
+
+L5B3E: LD A,(DE)
+ CP 020H
+L5B41: RET NZ
+L5B42: LD (HL),A
+L5B43: CALL 04937H
+ JR L5B3E ; (-00aH)
+
+ PUSH BC
+ CP 024H
+ PUSH HL
+ INC HL
+ JR NZ,L5B75 ; (+026H)
+ CALL 0497AH
+ JR NZ,L5B59 ; (+005H)
+L5B54: POP HL
+ POP BC
+ LD (HL),A
+ JR L5B37 ; (-022H)
+
+L5B59: PUSH BC
+ PUSH AF
+ INC DE
+ LD A,(DE)
+ DEC DE
+ CALL L3B04
+ POP BC
+ LD A,B
+ POP BC
+ JR C,L5B54 ; (-012H)
+ CALL L3B14
+ PUSH DE
+ CALL L3D21
+ POP DE
+ LD B,011H
+ LD A,B
+ LD C,L
+ LD B,H
+ JR L5B9C ; (+027H)
+
+L5B75: CALL L3B14
+ JR L5BBB ; (+041H)
+
+ PUSH DE
+ PUSH BC
+ PUSH AF
+ INC DE
+ LD A,(DE)
+ CP 045H
+ JR NZ,L5B93 ; (+010H)
+ INC DE
+ LD A,(DE)
+ CP 04CH
+ JR NZ,L5B93 ; (+00aH)
+ INC DE
+ LD A,(DE)
+ CP 053H
+ JR NZ,L5B93 ; (+004H)
+ INC DE
+ LD A,(DE)
+ CP 045H
+L5B93: POP BC
+ LD A,B
+ POP BC
+ POP DE
+ RET
+
+ LD A,012H
+ LD C,L
+ LD B,H
+L5B9C: POP HL
+L5B9D: LD (HL),A
+ LD A,003H
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+L5BA5: POP BC
+ ADD A,C
+ JP C,L20F2
+ LD C,A
+L5BAB: DEC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L5BAB ; (-006H)
+ INC DE
+ RET
+
+ PUSH BC
+ CALL L4B38
+ LD A,00BH
+ JR L5B9D ; (-01eH)
+
+L5BBB: LD A,015H
+ POP HL
+ LD (HL),A
+ INC HL
+ LD BC,00005H
+ ADD HL,BC
+ LD A,C
+ INC A
+ JR L5BA5 ; (-023H)
+
+ CP 03AH
+ RET Z
+ OR A
+ RET
+
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ XOR A
+ LD (06A58H),A
+ LD C,000H
+L5BD6: LD A,(HL)
+ CP 027H
+ JR Z,L5C26 ; (+04bH)
+ INC HL
+ OR A
+ JR Z,L5C04 ; (+025H)
+ LD BC,L2AF5
+ CP 020H
+ JP C,04A65H
+ CP 022H
+ JR Z,L5C46 ; (+05bH)
+ CP 03AH
+ JR Z,L5C58 ; (+069H)
+ CP 097H
+ JR Z,L5C21 ; (+02eH)
+ CP 094H
+ JR Z,L5C21 ; (+02aH)
+ CP LSE4
+ JR Z,L5C09 ; (+00eH)
+ CP 080H
+ JR NC,L5C0D ; (+00eH)
+L5BFF: CALL L4AE3
+L5C02: JR L5BD6 ; (-02eH)
+
+L5C04: LD (DE),A
+ POP BC
+L5C06: POP DE
+ POP HL
+ RET
+
+L5C09: LD A,0FFH
+ JR L5BFF ; (-00eH)
+
+L5C0D: CP 0FEH
+ JR C,L5C1C ; (+00bH)
+ INC A
+ LD BC,L30A9
+ JR Z,L5C1A ; (+003H)
+ LD BC,L2C54
+L5C1A: LD A,(HL)
+ INC HL
+L5C1C: CALL L4AC6
+ JR L5C02 ; (-01fH)
+
+L5C21: CALL L4AC6
+ JR Z,L5C02 ; (-024H)
+L5C26: LD A,(HL)
+ CP 022H
+ JR Z,L5C38 ; (+00dH)
+ CALL L49C8
+ JR Z,L5BD6 ; (-05aH)
+L5C30: CALL L4AE3
+ INC HL
+ JR NZ,L5C26 ; (-010H)
+ JR L5C04 ; (-034H)
+
+L5C38: CALL L4AE3
+ INC HL
+ LD A,(HL)
+ OR A
+ JR Z,L5BD6 ; (-06aH)
+ CP 022H
+ JR NZ,L5C38 ; (-00cH)
+ JR L5C30 ; (-016H)
+
+L5C46: LD B,022H
+ CALL L4AE3
+L5C4B: LD A,(HL)
+ OR A
+ JR Z,L5C04 ; (-04bH)
+ INC HL
+ CP B
+ JR Z,L5BFF ; (-054H)
+ CALL L4AE3
+ JR L5C4B ; (-00dH)
+
+L5C58: LD (DE),A
+ LD A,(HL)
+ CP 0C2H
+ JP Z,049D6H
+ CALL L4AE6
+ JP L4A02
+
+ CP 015H
+ JR Z,L5CAD ; (+044H)
+ CP 00BH
+ JR NC,L5C72 ; (+005H)
+ DEC A
+ OR 030H
+ JR L5BFF ; (-073H)
+
+L5C72: PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+L5C77: PUSH HL
+ CP 012H
+ JR Z,L5C89 ; (+00dH)
+ CP 00CH
+ JR C,L5C89 ; (+009H)
+ JP NZ,L4AF4
+ EX DE,HL
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L5C89: EX DE,HL
+ LD DE,06A31H
+ CALL L3D86
+ XOR A
+ LD (L6A36),A
+ LD B,004H
+L5C96: LD A,(DE)
+ CP 030H
+ JR NZ,L5C9E ; (+003H)
+ INC DE
+ DJNZ L5C96 ; (-008H)
+L5C9E: LD C,E
+ LD B,D
+ POP HL
+ POP DE
+L5CA2: LD A,(BC)
+ OR A
+ JP Z,049D6H
+ CALL L4AE3
+ INC BC
+ JR L5CA2 ; (-00bH)
+
+L5CAD: PUSH HL
+ PUSH DE
+ CALL L401B
+ EX DE,HL
+ POP DE
+L5CB4: LD A,(HL)
+ OR A
+ JR Z,L5CBE ; (+006H)
+ INC HL
+ CALL L4AE3
+ JR L5CB4 ; (-00aH)
+
+L5CBE: LD BC,00005H
+ POP HL
+ ADD HL,BC
+ JP 049D6H
+
+L5CC6: CP 080H
+ JR Z,L5CD5 ; (+00bH)
+ EX AF,AF'
+ LD A,(BC)
+ RLCA
+ INC BC
+ JP NC,L4ACB
+ EX AF,AF'
+ DEC A
+ JR L5CC6 ; (-00fH)
+
+L5CD5: LD A,(BC)
+ BIT 7,A
+ JR NZ,L5CE1 ; (+007H)
+ CALL L4AE3
+ RET Z
+ INC BC
+ JR L5CD5 ; (-00cH)
+
+L5CE1: AND 07FH
+ LD (DE),A
+ OR A
+ RET Z
+ INC DE
+ LD A,(06A58H)
+ INC A
+L5CEB: LD (06A58H),A
+ RET NZ
+ LD (DE),A
+ DEC DE
+ DEC A
+ JR L5CEB ; (-009H)
+
+ LD A,024H
+ EX AF,AF'
+ EX DE,HL
+ LD DE,L6A32
+ CALL 04B13H
+ LD B,003H
+L5D00: LD A,(DE)
+ CP 030H
+ JR NZ,L5D08 ; (+003H)
+ INC DE
+ DJNZ L5D00 ; (-008H)
+L5D08: LD C,E
+ LD B,D
+ POP HL
+ POP DE
+L5D0C: EX AF,AF'
+ CALL L4AE3
+ JP L4AA2
+
+ PUSH DE
+ CALL L4B1B
+ XOR A
+ LD (DE),A
+ POP DE
+ RET
+
+ LD A,H
+L5D1C: CALL L4B20
+ LD A,L
+ PUSH AF
+ RRCA
+ RRCA
+ RRCA
+ RRCA
+ AND 00FH
+ CALL L4B2D
+ POP AF
+ AND 00FH
+ ADD A,030H
+L5D2F: CP 03AH
+ JR C,L5D35 ; (+002H)
+ ADD A,007H
+L5D35: LD (DE),A
+ INC DE
+ RET
+
+ PUSH HL
+ CALL 04B4BH
+ LD C,L
+ LD B,H
+ DEC DE
+ DEC DE
+ POP HL
+L5D41: LD A,(DE)
+ CP 020H
+L5D44: JR NZ,L5D49 ; (+003H)
+ DEC DE
+ JR L5D41 ; (-008H)
+
+L5D49: INC DE
+ RET
+
+ LD HL,MONIT
+L5D4E: CALL 03C62H
+ SUB 030H
+ RET C
+ CP 00AH
+ RET NC
+ CALL 04B6EH
+L5D5A: LD C,L
+ LD B,H
+ CALL 04B6EH
+ CALL 04B6EH
+ ADD HL,BC
+L5D63: JR C,L5D6B ; (+006H)
+ LD C,A
+ LD B,000H
+ ADD HL,BC
+ JR NC,L5D4E ; (-01dH)
+L5D6B: JP L20F5
+
+ ADD HL,HL
+ RET NC
+L5D70: JR L5D6B ; (-007H)
+
+ LD D,E
+ CP L
+ OR B
+ SUB (HL)
+ AND C
+ SBC A,E
+ JR NZ,L5D0C ; (-06eH)
+L5D7A: SBC A,L
+ SBC A,L
+L5D7C: OR A
+ SBC A,L
+ NOP
+ LD C,A
+ XOR E
+ SUB D
+ SBC A,L
+L5D83: JR NZ,L5D2F ; (-056H)
+L5D85: CP B
+ OR A
+L5D87: AND E
+ JR NZ,L5D1C ; (-06eH)
+ SBC A,L
+ SBC A,L
+ OR A
+ SBC A,L
+ NOP
+ LD C,C
+ CP B
+L5D91: CP B
+ SUB D
+ SUB A
+ AND C
+ CP B
+ JR NZ,05D34H ; (-064H)
+ AND C
+ SUB (HL)
+ AND C
+L5D9B: JR NZ,L5D2F ; (-06eH)
+ SBC A,L
+ SBC A,L
+ OR A
+ SBC A,L
+ NOP
+L5DA2: ADD A,B
+ LD D,E
+ SUB (HL)
+ SBC A,L
+L5DA6: AND (HL)
+L5DA7: OR B
+ SUB A
+ JR NZ,L5D63 ; (-048H)
+ SUB D
+ OR B
+ SUB A
+ SUB (HL)
+L5DAF: SBC A,B
+ JR NZ,L5D44 ; (-06eH)
+ SBC A,L
+ SBC A,L
+ OR A
+ SBC A,L
+ NOP
+L5DB7: LD C,L
+ SUB D
+L5DB9: OR E
+ OR A
+ SBC A,L
+ CP L
+ JR NZ,05D5EH ; (-061H)
+ AND C
+ SBC A,(HL)
+ AND C
+L5DC2: SBC A,A
+ AND (HL)
+ SUB (HL)
+ CP L
+ JR NZ,L5D5A ; (-06eH)
+ SBC A,L
+ SBC A,L
+ OR A
+ SBC A,L
+ NOP
+L5DCD: LD B,C
+ SBC A,L
+L5DCF: SBC A,L
+ AND C
+ CP L
+ JR NZ,L5D70 ; (-064H)
+ SUB D
+ XOR D
+ JR NZ,05D6AH ; (-06eH)
+ SBC A,L
+ SBC A,L
+ OR A
+ SBC A,L
+ NOP
+ LD C,H
+ AND (HL)
+ OR B
+L5DE0: SUB D
+ JR NZ,L5D9B ; (-048H)
+ SUB D
+ OR B
+ SUB A
+L5DE6: SUB (HL)
+ SBC A,B
+ JR NZ,L5D7C ; (-06eH)
+ SBC A,L
+ SBC A,L
+ OR A
+ SBC A,L
+ NOP
+ ADD A,B
+ LD B,A
+ LD C,A
+ LD D,E
+ LD D,L
+ LD B,D
+ JR NZ,L5DA7 ; (-050H)
+L5DF7: SUB D
+ AND H
+L5DF9: SUB (HL)
+ AND (HL)
+ OR B
+L5DFC: SUB A
+ JR NZ,L5D91 ; (-06eH)
+ SBC A,L
+ SBC A,L
+ OR A
+ SBC A,L
+ NOP
+ LD B,(HL)
+ LD C,A
+ LD D,D
+L5E07: LD L,02EH
+ LD L,04EH
+ LD B,L
+ LD E,B
+ LD D,H
+ JR NZ,L5DA2 ; (-06eH)
+ SBC A,L
+ SBC A,L
+ OR A
+ SBC A,L
+ NOP
+ LD B,H
+L5E16: LD B,L
+L5E17: LD B,(HL)
+ JR NZ,05E60H ; (+046H)
+ LD C,(HL)
+ JR NZ,L5DCD ; (-050H)
+ SUB D
+ AND H
+ SUB (HL)
+ AND (HL)
+ OR B
+ SUB A
+ JR NZ,L5DB7 ; (-06eH)
+L5E25: SBC A,L
+ SBC A,L
+ OR A
+ SBC A,L
+ NOP
+ LD C,(HL)
+ LD B,L
+ LD E,B
+ LD D,H
+ JR NZ,L5DC2 ; (-06eH)
+L5E30: SBC A,L
+ SBC A,L
+ OR A
+ SBC A,L
+ NOP
+ LD D,D
+ LD B,L
+ LD D,H
+ LD D,L
+ LD D,D
+ LD C,(HL)
+ JR NZ,L5DCF ; (-06eH)
+ SBC A,L
+ SBC A,L
+ OR A
+ SBC A,L
+ NOP
+ LD D,L
+L5E43: OR B
+ JR NZ,05DE2H ; (-064H)
+ SUB D
+ XOR D
+ LD L,020H
+L5E4A: XOR D
+ AND L
+ OR B
+ SBC A,A
+ SUB (HL)
+ AND (HL)
+L5E50: OR A
+ OR B
+ JR NZ,L5DE6 ; (-06eH)
+ SBC A,L
+ SBC A,L
+ OR A
+ SBC A,L
+ NOP
+ LD D,L
+ OR B
+ JR NZ,L5DF9 ; (-064H)
+L5E5D: SUB D
+ XOR D
+ LD L,020H
+ CP B
+ AND (HL)
+ OR B
+ SUB D
+ JR NZ,L5E17 ; (-050H)
+ AND L
+ OR E
+ LD L,092H
+ SBC A,L
+ SBC A,L
+ OR A
+ SBC A,L
+ NOP
+L5E70: LD B,E
+ AND C
+ OR B
+ DAA
+ SUB (HL)
+ JR NZ,L5E16 ; (-061H)
+ OR A
+ OR B
+ SUB (HL)
+ AND (HL)
+ OR B
+ AND L
+ SUB D
+ NOP
+ LD C,L
+ SUB D
+ OR E
+ OR A
+ SBC A,L
+ CP L
+ JR NZ,L5E25 ; (-062H)
+ SBC A,L
+ OR A
+ SUB (HL)
+ SUB D
+ SBC A,A
+ SUB (HL)
+ AND (HL)
+ OR A
+ OR B
+L5E90: NOP
+ LD C,C
+ OR B
+ AND H
+ SUB (HL)
+L5E95: SBC A,L
+ AND L
+ SBC A,A
+ SUB (HL)
+ AND (HL)
+ OR A
+ OR B
+L5E9C: JR NZ,L5E30 ; (-06eH)
+ SBC A,L
+ SBC A,L
+ OR A
+ SBC A,L
+ NOP
+ LD B,E
+ AND C
+ OR B
+ DAA
+ SUB (HL)
+L5EA8: JR NZ,L5EFC ; (+052H)
+ LD B,L
+ LD D,E
+ LD D,L
+ LD C,L
+ LD B,L
+ JR NZ,L5E43 ; (-06eH)
+ SBC A,L
+L5EB2: SBC A,L
+ OR A
+ SBC A,L
+ NOP
+L5EB6: LD D,D
+ LD B,L
+L5EB8: LD D,E
+ LD D,L
+ LD C,L
+ LD B,L
+ JR NZ,L5E50 ; (-06eH)
+ SBC A,L
+ SBC A,L
+L5EC0: OR A
+ SBC A,L
+ NOP
+ ADD A,B
+ ADD A,B
+L5EC5: LD D,D
+ LD B,L
+ LD B,C
+L5EC8: LD B,H
+ JR NZ,L5E5D ; (-06eH)
+ SBC A,L
+L5ECC: SBC A,L
+ OR A
+ SBC A,L
+ NOP
+ LD B,C
+ CP B
+ SBC A,L
+ SUB D
+ AND C
+ SBC A,H
+ CP L
+ JR NZ,L5E90 ; (-049H)
+ SBC A,(HL)
+ SUB D
+L5EDB: OR B
+ JR NZ,L5E70 ; (-06eH)
+ SBC A,L
+ SBC A,L
+ OR A
+ SBC A,L
+ NOP
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+L5EE8: ADD A,B
+ ADD A,B
+ ADD A,B
+L5EEB: ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ LD C,A
+ AND L
+ SUB (HL)
+ JR NZ,L5EB2 ; (-049H)
+ XOR D
+L5EFC: JR NZ,L5EA8 ; (-056H)
+ AND (HL)
+ CP B
+ SUB D
+ JR NZ,L5E95 ; (-06eH)
+ SBC A,L
+ SBC A,L
+ OR A
+ SBC A,L
+ NOP
+ ADD A,B
+ LD D,B
+ SBC A,L
+L5F0B: AND (HL)
+ OR B
+ SUB (HL)
+ SUB D
+ SBC A,L
+ JR NZ,L5EB8 ; (-05aH)
+ AND H
+ JR NZ,L5EC5 ; (-050H)
+ OR A
+ SUB (HL)
+ JR NZ,L5EB6 ; (-063H)
+ SUB D
+ AND C
+ SBC A,H
+ CP L
+ NOP
+ ADD A,B
+ LD C,A
+ AND L
+ SUB (HL)
+ JR NZ,L5EDB ; (-049H)
+ XOR D
+ JR NZ,L5EC5 ; (-062H)
+ AND C
+ SBC A,(HL)
+ SUB D
+ SBC A,L
+ NOP
+ LD D,B
+ SBC A,L
+ AND (HL)
+ OR B
+ SUB (HL)
+ SUB D
+ SBC A,L
+ JR NZ,L5EE8 ; (-04dH)
+ OR A
+ SBC A,H
+ SUB D
+ JR NZ,L5ECC ; (-06eH)
+ SBC A,L
+ SBC A,L
+ OR A
+ SBC A,L
+ NOP
+L5F3F: ADD A,B
+ LD B,E
+ SBC A,B
+ SUB D
+ SBC A,A
+ XOR C
+ JR NZ,L5EEB ; (-05cH)
+ AND L
+ OR E
+ JR NZ,05EDDH ; (-06eH)
+ SBC A,L
+ SBC A,L
+ OR A
+ SBC A,L
+ NOP
+ CALL L4D65
+ LD A,D
+ OR A
+ JP NZ,L2101
+ LD A,E
+ RET
+
+ CALL 0529DH
+ EX DE,HL
+ LD BC,0FFFBH
+ ADD HL,BC
+ EX DE,HL
+ JR L5F68 ; (+003H)
+
+ CALL 0528BH
+L5F68: PUSH AF
+ PUSH HL
+ EX DE,HL
+ CALL L5D9B
+ CALL L3D21
+ EX DE,HL
+ POP HL
+ POP AF
+ RET
+
+ CALL L4D65
+ PUSH AF
+ PUSH HL
+ LD HL,(06AB9H)
+ CALL 03A82H
+ CALL L3C69
+L5F83: LD A,(DE)
+ CP 000H
+ JR Z,L5F8E ; (+006H)
+ CALL L167E
+ INC DE
+ JR L5F83 ; (-00bH)
+
+L5F8E: POP HL
+ POP AF
+ RET
+
+ PUSH HL
+L5F92: LD HL,00010H
+ BIT 7,D
+ JR NZ,L5F9F ; (+006H)
+ OR A
+ SBC HL,DE
+ JP C,L2101
+L5F9F: PUSH DE
+ LD HL,00001H
+ BIT 7,H
+ JR NZ,L5FB6 ; (+00fH)
+ BIT 7,D
+ JP NZ,L2101
+L5FAC: OR A
+ EX DE,HL
+ SBC HL,DE
+L5FB0: JP C,L2101
+L5FB3: POP DE
+ POP HL
+ RET
+
+L5FB6: BIT 7,D
+ JR Z,L5FB3 ; (-007H)
+ JR L5FAC ; (-010H)
+
+ CALL 0528BH
+ PUSH AF
+ CALL L5D7A
+ PUSH HL
+ EX DE,HL
+ CALL 0527FH
+ POP HL
+ POP AF
+ RET
+
+ LD BC,L4E01
+ NOP
+ NOP
+ LD A,(0004DH)
+ OR A
+ JP NZ,L4FF7
+ CALL L5414
+ INC HL
+ CP 047H
+ JP Z,L4E5F
+ CP 054H
+ JP NZ,L20FE
+ LD A,001H
+ LD (04DCBH),A
+ CALL L5414
+ INC HL
+ CP 04EH
+ JR Z,L5FFB ; (+009H)
+ CP 04CH
+ JR Z,L5FFB ; (+005H)
+ CP 053H
+ JP NZ,L20FE
+L5FFB: LD (04DCDH),A
+ CALL L1C66
+ JP NZ,L20FE
+ LD A,001H
+ CALL L167E
+ LD A,(04DCDH)
+ CP 04EH
+ JR Z,L6021 ; (+011H)
+ CP 04CH
+ LD A,00BH
+ JR Z,L601E ; (+008H)
+ LD A,009H
+ CALL L167E
+ CALL L167E
+L601E: CALL L167E
+L6021: LD A,00AH
+ CALL L167E
+ LD A,003H
+ CALL L167E
+ RET
+
+ LD A,(04DCBH)
+ CP 001H
+ JP NZ,L4FF7
+ CALL L4D65
+ LD A,E
+ OR A
+ RET Z
+ CP 0ECH
+ JR NC,L6043 ; (+005H)
+ CP 015H
+ JP NC,L2101
+L6043: CALL L1C66
+ JP NZ,L20FE
+ BIT 7,E
+ JR NZ,L6056 ; (+009H)
+L604D: LD A,00AH
+ CALL L167E
+ DEC E
+ JR NZ,L604D ; (-008H)
+ RET
+
+L6056: LD A,003H
+ CALL L167E
+ INC E
+ JR NZ,L6056 ; (-008H)
+ RET
+
+ INC HL
+ CALL L1C66
+ JP NZ,L20FE
+ LD A,002H
+ LD (04DCBH),A
+ CALL L167E
+ RET
+
+ PUSH HL
+ LD HL,003E7H
+ LD (L4D93),HL
+ LD HL,0FC19H
+L6079: LD (L4DA1),HL
+ POP HL
+ JP 04D91H
+
+ PUSH HL
+ LD HL,001E0H
+ LD (L4D93),HL
+ LD HL,0FE20H
+ JR L6079 ; (-013H)
+
+ LD A,044H
+ LD (04EE0H),A
+L6091: LD A,(04DCBH)
+ CP 002H
+ JP NZ,L4FF7
+ CALL L5414
+ CP 025H
+ JR NZ,L60C3 ; (+023H)
+ INC HL
+ CALL L4D50
+ LD A,E
+ DEC A
+ CP 010H
+ JP NC,L2101
+ DEC DE
+ LD A,04CH
+ CALL L167E
+ CALL L4D78
+ LD A,00DH
+ CALL L167E
+L60B9: CALL L1C66
+ RET Z
+ CP 02CH
+ JP NZ,L20FE
+ INC HL
+L60C3: CALL L4D65
+ CALL 03332H
+ CALL L4E80
+L60CC: PUSH DE
+ CALL L4D65
+ CP 02CH
+ JR Z,L60DA ; (+006H)
+ CALL L1C66
+ JP NZ,L20FE
+L60DA: CALL L4E6F
+ POP BC
+ PUSH DE
+ LD A,044H
+ CALL L167E
+ LD E,C
+ LD D,B
+ CALL L4D78
+ LD A,02CH
+ CALL L167E
+ POP DE
+ CALL L4D78
+ LD A,00DH
+ CALL L167E
+ CALL L1C66
+ RET Z
+ INC HL
+ JR L60C3 ; (-03bH)
+
+ LD A,04AH
+ LD (04EE0H),A
+ JR L6091 ; (-074H)
+
+ LD A,04DH
+ LD (04EE0H),A
+L610A: LD A,(04DCBH)
+ CP 002H
+ JP NZ,L4FF7
+ JR L60C3 ; (-051H)
+
+ LD A,052H
+ LD (04EE0H),A
+ JR L610A ; (-011H)
+
+ CALL L4D50
+ LD A,E
+ CP 004H
+L6121: JP NC,L2101
+ CALL L1C66
+ JP NZ,L20FE
+ LD A,(04DCBH)
+ CP 002H
+ JR Z,L613F ; (+00eH)
+ CALL L4E21
+ LD A,002H
+ CALL L167E
+ CALL L4F3F
+ JP 04E04H
+
+L613F: LD A,043H
+ CALL L167E
+ LD A,E
+ OR 030H
+ CALL L167E
+ LD A,00DH
+ CALL L167E
+ RET
+
+ LD A,(04DCBH)
+ CP 002H
+ JP NZ,L4FF7
+ CALL L1C66
+ JP NZ,L20FE
+ LD A,048H
+L6160: CALL L167E
+ RET
+
+ LD A,(04DCBH)
+ CP 002H
+ JP NZ,L4FF7
+ CALL L1C66
+L616F: JP NZ,L20FE
+ LD A,049H
+ JR L6160 ; (-016H)
+
+ LD A,(04DCBH)
+ CP 002H
+L617B: JR NZ,L61F7 ; (+07aH)
+ CALL L5414
+ CP 05BH
+ JR NZ,L61CE ; (+04aH)
+ INC HL
+ CALL L4D50
+ CP 040H
+ JP NC,L2101
+ PUSH DE
+ CALL L5414
+ CALL 03332H
+ CALL L4D50
+ CP 004H
+ JP NC,L2101
+ PUSH DE
+ CALL L5414
+ CP 05DH
+ JP NZ,L20FE
+ INC HL
+ POP BC
+ POP DE
+ PUSH BC
+ LD A,053H
+ CALL L167E
+ CALL L4D78
+ LD A,02CH
+ CALL L167E
+ POP DE
+L61B7: LD A,051H
+ CALL L167E
+L61BC: CALL L4D78
+ LD A,00DH
+L61C1: CALL L167E
+ CALL L1C66
+ RET Z
+ CP 02CH
+ JP NZ,L20FE
+ INC HL
+L61CE: CALL 04DBCH
+ CALL L1C66
+ JR Z,L61DB ; (+005H)
+ CP 02CH
+ JP NZ,L20FE
+L61DB: LD A,B
+ OR A
+ JR Z,L61F0 ; (+011H)
+ LD A,050H
+ CALL L167E
+L61E4: LD A,(DE)
+ CALL L167E
+ INC DE
+ DJNZ L61E4 ; (-007H)
+ LD A,00DH
+ CALL L167E
+L61F0: CALL L1C66
+ RET Z
+ INC HL
+L61F5: JR L61CE ; (-029H)
+
+L61F7: LD A,044H
+ JP L2108
+
+ LD A,(04DCBH)
+ CP 002H
+ JP NZ,L4FF7
+ CALL L4D50
+ CP 002H
+ JP NC,L2101
+ PUSH AF
+ CALL L5414
+ CALL 03332H
+ CALL L4D65
+ PUSH DE
+ CALL 03332H
+ CALL L4D50
+ OR A
+ JP Z,L2101
+ CALL L1C66
+ JP NZ,L20FE
+ LD A,058H
+ CALL L167E
+ POP BC
+ POP AF
+ PUSH DE
+ PUSH BC
+ OR 030H
+L6232: CALL L167E
+ LD A,02CH
+ CALL L167E
+ POP DE
+ CALL L4E6F
+ CALL L4D78
+ LD A,02CH
+ CALL L167E
+ POP DE
+ CALL L4D78
+ LD A,00DH
+ CALL L167E
+ RET
+
+ LD A,(04DCBH)
+ CP 002H
+ JR NZ,L61F7 ; (-060H)
+ PUSH HL
+L6258: LD DE,MONIT
+ LD HL,05204H
+L625E: CALL 03A82H
+ LD DE,00168H
+ LD HL,L5209
+ CALL 03A82H
+ LD HL,L3D72
+ LD DE,L520E
+ CALL 03AB8H
+ POP HL
+ CALL 0528BH
+ CALL 03332H
+ PUSH HL
+ LD HL,L51F5
+ EX DE,HL
+ CALL 03AB8H
+ POP HL
+ CALL 0528BH
+ CALL 03332H
+ PUSH HL
+ LD HL,051FAH
+ EX DE,HL
+ CALL 03AB8H
+ POP HL
+ CALL 0528BH
+L6295: PUSH HL
+ PUSH AF
+ LD HL,L51FF
+ EX DE,HL
+L629B: CALL 03AB8H
+ LD A,(05200H)
+L62A1: RLCA
+ JP C,L2101
+ POP AF
+ CP 02CH
+ JR NZ,L62E4 ; (+03aH)
+ POP HL
+ INC HL
+ CALL 0528BH
+ PUSH HL
+L62B0: PUSH AF
+ LD HL,05204H
+ EX DE,HL
+ CALL 03AB8H
+ POP AF
+ CP 02CH
+ JR NZ,L62E4 ; (+027H)
+ POP HL
+ INC HL
+ CALL 0528BH
+ PUSH HL
+ PUSH AF
+ LD HL,L5209
+ EX DE,HL
+ CALL 03AB8H
+ POP AF
+ CP 02CH
+ JR NZ,L62E4 ; (+014H)
+ POP HL
+ INC HL
+ CALL 0528BH
+ PUSH HL
+ LD HL,L520E
+ EX DE,HL
+ CALL 03AB8H
+ LD A,(0520FH)
+ RLCA
+ JP C,L2101
+L62E4: POP HL
+ CALL L1C66
+ JP NZ,L20FE
+ PUSH HL
+L62EC: LD HL,L5209
+ LD DE,05204H
+ LD A,(L520E)
+ OR A
+ CALL NZ,L5E4A
+ JP C,L2101
+ CALL L51AB
+L62FF: LD HL,05213H
+ LD (05172H),HL
+ LD HL,L5218
+ LD (L517C),HL
+ CALL 0516EH
+ LD A,(L520E)
+ OR A
+ JR Z,L6348 ; (+034H)
+L6314: LD HL,05204H
+ LD DE,L520E
+ CALL L5DAF
+ LD DE,L5209
+ CALL L5E4A
+ JR NC,L6332 ; (+00dH)
+ CALL L51AB
+L6328: CALL 0516BH
+ CALL BRKEY
+ JR NZ,L6314 ; (-01cH)
+ POP HL
+ RET
+
+L6332: CALL 0513AH
+ CALL 0516BH
+ POP HL
+ RET
+
+ LD HL,L5209
+ LD DE,05204H
+ LD BC,00005H
+ LDIR
+ JP L51AB
+
+L6348: LD HL,L51F5
+ LD (05172H),HL
+ LD HL,051FAH
+ LD (L517C),HL
+ CALL 0516BH
+ CALL 0513AH
+ LD HL,05213H
+ LD (05172H),HL
+ LD HL,L5218
+ LD (L517C),HL
+ CALL 0516BH
+ POP HL
+ RET
+
+ LD A,044H
+ LD HL,L4D3E
+ PUSH AF
+ LD HL,L51F5
+ CALL L3D21
+ PUSH HL
+ CALL 0519DH
+ LD HL,051FAH
+ CALL L3D21
+ PUSH HL
+ CALL 0519DH
+ POP HL
+ POP DE
+ POP AF
+ CALL L167E
+ PUSH HL
+ CALL L4D78
+ LD A,02CH
+ CALL L167E
+ POP DE
+ CALL L4D78
+ LD A,00DH
+ JP L167E
+
+ EX DE,HL
+ LD HL,003E7H
+ PUSH HL
+ ADD HL,DE
+ POP HL
+ RET C
+ SBC HL,DE
+ RET NC
+ JP L2101
+
+ LD DE,(06AB9H)
+ LD HL,05204H
+ CALL 03AB8H
+ LD HL,(06AB9H)
+ CALL 0659DH
+ CALL 063B0H
+ LD DE,L51FF
+ CALL 05FE1H
+ LD DE,L51F5
+ CALL L5DAF
+ LD DE,05213H
+ CALL 03AB8H
+ LD DE,(06AB9H)
+ LD HL,05204H
+ CALL 03AB8H
+ LD HL,(06AB9H)
+ CALL 0659DH
+ CALL 063C6H
+ LD DE,L51FF
+ CALL 05FE1H
+ LD DE,051FAH
+ CALL L5DAF
+ LD DE,L5218
+ JP 03AB8H
+
+ DS 15, 000H ; Work area (45 bytes)
+L6404: DS 30, 000H
+ LD B,H
+ JR NC,06451H ; (+02cH)
+ JR NC,06434H ; (+00dH)
+ LD A,(04DCBH)
+ CP 001H
+ JP NZ,L4FF7
+ CALL L1C66
+ JP NZ,L20FE
+ LD A,004H
+ CALL L167E
+ RET
+
+ LD A,(04DCBH)
+ CP 001H
+ JP NZ,L4FF7
+ CALL L4D65
+ LD A,E
+ OR A
+ JP Z,L2101
+ CP 049H
+ JP NC,L2101
+ CALL L1C66
+ JP NZ,L20FE
+ LD A,009H
+ CALL L167E
+ CALL L167E
+ CALL L4D78
+ LD A,00DH
+ CALL L167E
+ DB 0C9H,"PRINTER MODE E" ; PRINTER MODE ERROR!! string
+ DS 2, 052H
+ DB 04FH
+ DB 052H
+ DS 2, 021H
+ NOP
+ LD D,H
+ LD L,04DH
+ LD B,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L6AB5)
+ ADD HL,DE
+ EX DE,HL
+ LD A,B
+ RET
+
+ LD DE,(06AB7H)
+ LD (038D3H),DE
+ LD DE,(06AB9H)
+ PUSH DE
+ CALL 0529DH
+ POP DE
+ RET
+
+ PUSH DE
+ LD DE,(038D3H)
+ CALL L58DF
+ POP DE
+ CALL 05310H
+L64A9: CP 0EEH
+ RET C
+ PUSH AF
+ LD A,(06A65H)
+ PUSH AF
+ INC HL
+ CALL 05310H
+ POP BC
+ EX (SP),HL
+ PUSH AF
+ PUSH HL
+ CALL L58B1
+ CALL L5E4A
+ EX AF,AF'
+ POP AF
+ CP 0F6H
+ JR NZ,L64E3 ; (+01eH)
+ EX AF,AF'
+ JR C,L64DE ; (+016H)
+L64C8: LD BC,MONIT
+L64CB: LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ XOR A
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ LD A,005H
+ LD (06A65H),A
+ POP AF
+ POP HL
+ JR L64A9 ; (-035H)
+
+L64DE: LD BC,08081H
+ JR L64CB ; (-018H)
+
+L64E3: CP 0F5H
+ JR NZ,L64EE ; (+007H)
+ EX AF,AF'
+ JR Z,L64C8 ; (-022H)
+ JR C,L64C8 ; (-024H)
+ JR L64DE ; (-010H)
+
+L64EE: CP 0F4H
+ JR NZ,L64F7 ; (+005H)
+ EX AF,AF'
+L64F3: JR Z,L64DE ; (-017H)
+ JR L64C8 ; (-02fH)
+
+L64F7: CP 0F2H
+ JR C,L6500 ; (+005H)
+ EX AF,AF'
+ JR NC,L64DE ; (-020H)
+ JR L64C8 ; (-038H)
+
+L6500: CP 0F0H
+ JR C,L650B ; (+007H)
+ EX AF,AF'
+ JR Z,L64DE ; (-029H)
+ JR C,L64DE ; (-02bH)
+ JR L64C8 ; (-043H)
+
+L650B: EX AF,AF'
+ JR Z,L64C8 ; (-046H)
+ JR L64DE ; (-032H)
+
+ CALL L533B
+L6513: CP 0F7H
+ RET C
+ LD A,(06A65H)
+ PUSH AF
+ INC HL
+L651B: JR Z,L652D ; (+010H)
+ CALL L533B
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L58B1
+ CALL L5DA6
+L6529: POP HL
+ POP AF
+ JR L6513 ; (-01aH)
+
+L652D: CALL L533B
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L58B1
+ CALL L5DAF
+ JR L6529 ; (-012H)
+
+ CALL 05367H
+L653E: CP 0FBH
+ RET C
+ LD A,(06A65H)
+ PUSH AF
+ INC HL
+ JR Z,L6558 ; (+010H)
+ CALL 05367H
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L58B1
+ CALL 05FE1H
+L6554: POP HL
+ POP AF
+ JR L653E ; (-01aH)
+
+L6558: CALL 05367H
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L58B1
+ CALL L60CC
+ JR L6554 ; (-012H)
+
+L6566: INC HL
+ CALL L5414
+ CP 0F7H
+ JR Z,L6566 ; (-008H)
+ CP 0F8H
+ JR NZ,L6599 ; (+027H)
+ INC HL
+ CALL 05367H
+L6576: PUSH AF
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L5D91
+ LD DE,00005H
+ ADD HL,DE
+ EX DE,HL
+ POP HL
+ POP AF
+ RET
+
+L6587: INC HL
+ CALL L5414
+ CP 0F7H
+ JR Z,L6587 ; (-008H)
+ CP 0F8H
+ JR NZ,L65B9 ; (+026H)
+ INC HL
+ CALL 05388H
+ JR L6576 ; (-023H)
+
+L6599: CALL L53B9
+L659C: CP 0FDH
+ RET NZ
+ INC HL
+ LD A,(06A65H)
+ CP 003H
+ JP Z,L20FB
+ PUSH AF
+ CALL 05388H
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L58B1
+ CALL L61F5
+ POP HL
+ POP AF
+ JR L659C ; (-01dH)
+
+L65B9: CALL L1C66
+ JP Z,L20FE
+ CALL L53CC
+ EX AF,AF'
+ LD A,(06A65H)
+ OR A
+ JP Z,L20FE
+ EX AF,AF'
+ RET
+
+ XOR A
+ LD (06A65H),A
+ PUSH HL
+ LD HL,(L6ABB)
+ SCF
+ SBC HL,DE
+ JP C,L20F8
+ POP HL
+ PUSH DE
+ LD B,005H
+L65DE: LD (DE),A
+ INC DE
+ DJNZ L65DE ; (-004H)
+ POP DE
+L65E3: CALL L5414
+ CP 0F7H
+ INC HL
+ JR Z,L65E3 ; (-008H)
+ DEC HL
+ CP LSE4
+ JP Z,0541AH
+ CP 00BH
+ JR NC,L662E ; (+039H)
+ OR A
+ RET Z
+ INC HL
+ DEC A
+ LD B,000H
+ LD C,A
+L65FC: PUSH HL
+ PUSH DE
+ EX DE,HL
+ LD E,C
+ LD D,B
+ CALL 03A82H
+ POP DE
+ POP HL
+ LD A,005H
+ LD (06A65H),A
+ EX DE,HL
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ JR L6614 ; (+001H)
+
+L6613: INC HL
+L6614: LD A,(HL)
+L6615: CP 020H
+ JR Z,L6613 ; (-006H)
+ RET
+
+ EX DE,HL
+ LD (HL),081H
+ LD A,005H
+ LD (06A65H),A
+ PUSH DE
+ CALL 065A2H
+ LD DE,00005H
+ ADD HL,DE
+ EX DE,HL
+ POP HL
+ JR L6613 ; (-01bH)
+
+L662E: CP 015H
+ JR NC,L6646 ; (+014H)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ CP 00CH
+ JR NZ,L65FC ; (-03fH)
+ INC BC
+ INC BC
+ LD A,(BC)
+ INC BC
+ EX AF,AF'
+ LD A,(BC)
+ LD B,A
+ EX AF,AF'
+ LD C,A
+ JR L65FC ; (-04aH)
+
+L6646: JP NZ,05459H
+ INC HL
+ PUSH DE
+ LD BC,00505H
+L664E: LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ DJNZ L664E ; (-006H)
+ LD A,C
+L6655: POP DE
+ JP 05408H
+
+ CP 022H
+ JR NZ,L6686 ; (+029H)
+ INC HL
+ PUSH DE
+ PUSH HL
+ CALL L58C4
+ EX (SP),HL
+ PUSH HL
+ LD HL,(038D3H)
+ PUSH BC
+ LD BC,(06AB5H)
+ OR A
+ SBC HL,BC
+ POP BC
+ EX DE,HL
+ LD (HL),B
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ LD HL,(038D3H)
+ POP DE
+ CALL 058D0H
+ LD (038D3H),HL
+ POP HL
+ LD A,003H
+ JR L6655 ; (-031H)
+
+L6686: CP 028H
+ JP NZ,L5B43
+ INC HL
+ CALL 0529DH
+ CP 029H
+ JP NZ,L20FE
+ JP 05413H
+
+ CP 0E7H
+ JP Z,0563AH
+ CP 0FFH
+ RET NZ
+ INC HL
+ LD A,(HL)
+ CP 0ABH
+ JR NC,L6711 ; (+06cH)
+ CP 088H
+ JR Z,L66F8 ; (+04fH)
+ CP 0A0H
+ JP Z,L5588
+ CP 089H
+ PUSH AF
+ JR NZ,L66BA ; (+007H)
+ INC HL
+ LD A,(HL)
+ CP 040H
+ JR Z,L66D5 ; (+01cH)
+ DEC HL
+L66BA: CALL L57F9
+L66BD: CALL 0529DH
+ CALL 05804H
+ CALL L5D9B
+L66C6: POP AF
+ PUSH DE
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL 05537H
+L66D0: POP HL
+L66D1: POP DE
+ JP L5414
+
+L66D5: POP AF
+ PUSH DE
+ CALL L57F9
+ CALL 0529DH
+ CALL 05804H
+ CALL L5D9B
+ EX DE,HL
+ EX (SP),HL
+ PUSH DE
+ PUSH HL
+ CALL L3D21
+ LD C,L
+ LD B,H
+ POP HL
+ LD A,(BC)
+ LD E,A
+ LD D,000H
+ CALL 03A82H
+ LD A,005H
+ JR L66D0 ; (-028H)
+
+L66F8: PUSH AF
+ INC HL
+ CALL L5414
+ CP 028H
+ JR NZ,L6704 ; (+003H)
+ INC HL
+ JR L66BD ; (-047H)
+
+L6704: LD A,005H
+L6706: LD (06A65H),A
+ EX DE,HL
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ JR L66C6 ; (-04bH)
+
+L6711: CP 0B3H
+ JR NC,L6729 ; (+014H)
+ PUSH AF
+ CALL L57F9
+ CALL 0529DH
+ CALL 05804H
+ LD A,(06A65H)
+ CP 003H
+ JP NZ,L20FB
+ JR L66C6 ; (-063H)
+
+L6729: CP 0BAH
+ JR NC,L6733 ; (+006H)
+ PUSH AF
+ LD A,002H
+ INC HL
+ JR L6706 ; (-02dH)
+
+L6733: CP LSD0
+ RET NC
+L6736: INC HL
+ PUSH HL
+ SUB 080H
+ LD L,A
+ LD H,000H
+ LD BC,L3265
+ ADD HL,HL
+ ADD HL,BC
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ EX (SP),HL
+ RET
+
+ EX DE,HL
+ LD HL,MONIT
+ ADD HL,SP
+ LD BC,(038D3H)
+ OR A
+ SBC HL,BC
+ OR A
+ LD BC,00100H
+ SBC HL,BC
+ EX DE,HL
+ JR L676E ; (+011H)
+
+ LD A,(00055H)
+ JR L6765 ; (+003H)
+
+ LD A,(L38F2)
+L6765: LD E,A
+ LD D,000H
+ JR L676E ; (+004H)
+
+ LD DE,(038EAH)
+L676E: CALL 03A82H
+ LD A,005H
+ LD (06A65H),A
+ INC HL
+ BIT 7,(HL)
+ DEC HL
+ RET Z
+ LD DE,L6A6E
+ EX DE,HL
+ CALL L5D87
+ LD (HL),091H
+ EX DE,HL
+ JP L5DAF
+
+ CALL L57F9
+ SCF
+L678C: PUSH AF
+ PUSH DE
+ CALL 04D5AH
+ CP 029H
+ JR Z,L67A1 ; (+00cH)
+ CP 02CH
+ JP NZ,L20FE
+ INC HL
+ CALL 04D53H
+ POP DE
+ JR L678C ; (-015H)
+
+L67A1: INC HL
+ CALL 04D53H
+ POP DE
+ PUSH AF
+ EXX
+ LD DE,0110FH
+ LD B,000H
+L67AD: POP AF
+ JR C,L67B5 ; (+005H)
+ LD (DE),A
+ INC DE
+ INC B
+ JR L67AD ; (-008H)
+
+L67B5: LD C,B
+ LD HL,(038D3H)
+ PUSH HL
+L67BA: DEC DE
+ LD A,(DE)
+ LD (HL),A
+ INC HL
+ DJNZ L67BA ; (-006H)
+ POP DE
+ CALL 055C7H
+ JP L5414
+
+ EX DE,HL
+ CALL L58DF
+ LD (038D3H),DE
+ LD DE,(06AB5H)
+ OR A
+ SBC HL,DE
+ PUSH HL
+ PUSH BC
+ EXX
+ POP BC
+ EX DE,HL
+ LD (HL),C
+ INC HL
+ POP BC
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ LD BC,GETL
+ ADD HL,BC
+ EX DE,HL
+ LD A,003H
+ LD (06A65H),A
+ RET
+
+ PUSH HL
+ CALL L560F
+ CALL L5616
+ LD B,004H
+L67F5: LD A,(DE)
+ CP 030H
+ JR NZ,L67FF ; (+005H)
+ INC DE
+ DJNZ L67F5 ; (-008H)
+ DEC DE
+ INC B
+L67FF: LD C,B
+ LD HL,(038D3H)
+ PUSH HL
+ CALL 058D0H
+ EX DE,HL
+ POP HL
+ EXX
+ POP DE
+ EXX
+ JP L55CB
+
+ CALL L3D21
+ LD DE,0110FH
+ RET
+
+ PUSH DE
+ LD A,H
+ CALL 05629H
+ LD A,H
+ CALL L562D
+ LD A,L
+ CALL 05629H
+L6823: LD A,L
+ CALL L562D
+ POP DE
+L6828: RET
+
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ AND 00FH
+ ADD A,030H
+ CP 03AH
+ JR C,L6837 ; (+002H)
+ ADD A,007H
+L6837: LD (DE),A
+ INC DE
+ RET
+
+ CALL L57F9
+ CALL 0529DH
+ CALL 05804H
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ PUSH DE
+ CALL 05651H
+ POP DE
+ POP HL
+ JP L5414
+
+ PUSH HL
+ CALL 0566DH
+ LD B,A
+ LD C,A
+ OR A
+ JR Z,L6866 ; (+00cH)
+ LD A,020H
+ PUSH DE
+L685D: LD (DE),A
+ INC DE
+ DJNZ L685D ; (-004H)
+ POP DE
+ LD B,C
+ JP L55FF
+
+L6866: POP HL
+ CALL L5D87
+ JP L55E5
+
+ CALL L560F
+ LD A,H
+ OR A
+ JP NZ,L2101
+ LD A,L
+ RET
+
+ PUSH HL
+L6878: CALL L3C69
+ LD A,(DE)
+ CP 020H
+ JR NZ,L6881 ; (+001H)
+ INC DE
+L6881: LD HL,(038D3H)
+ LD B,000H
+L6886: LD A,(DE)
+L6887: OR A
+ JR Z,L6890 ; (+006H)
+ LD (HL),A
+ INC DE
+L688C: INC HL
+ INC B
+ JR L6886 ; (-00aH)
+
+L6890: LD A,B
+L6891: OR A
+ JP Z,L5666
+ LD DE,(038D3H)
+ EXX
+ POP DE
+ EXX
+ LD C,B
+ JP 055C7H
+
+ PUSH HL
+ CALL 0527FH
+ OR A
+ JR Z,L68A8 ; (+001H)
+ LD A,(DE)
+L68A8: POP HL
+ JP L5565
+
+ PUSH HL
+ CALL 0527FH
+ POP HL
+ JP L5565
+
+ PUSH HL
+ CALL 0527FH
+ LD HL,(038D3H)
+ PUSH HL
+ LD B,A
+ CALL 058D0H
+ LD (HL),000H
+ POP DE
+ POP HL
+ JP L3B14
+
+ CALL 057E5H
+ CALL 05804H
+ CALL L57DE
+ EX DE,HL
+ LD A,(HL)
+ CP C
+ JR NC,L68D6 ; (+001H)
+ LD C,A
+L68D6: LD (HL),C
+ LD BC,00005H
+L68DA: LD A,003H
+ ADD HL,BC
+ EX DE,HL
+ LD (06A65H),A
+ JP L5414
+
+ CALL 057E5H
+ CALL 05804H
+ CALL L57DE
+ EX DE,HL
+ LD A,(HL)
+ SUB C
+ JR NC,L68F4 ; (+002H)
+ XOR A
+ LD C,(HL)
+L68F4: LD (HL),C
+ INC HL
+ ADD A,(HL)
+ LD (HL),A
+ INC HL
+ LD A,000H
+L68FB: ADC A,(HL)
+ LD (HL),A
+ LD BC,GETL
+ JR L68DA ; (-028H)
+
+ CALL 057E5H
+ CALL L57DE
+ OR A
+ JP Z,L2101
+ PUSH AF
+ LD A,(HL)
+ CP 029H
+ JR Z,L6936 ; (+024H)
+ CALL 03332H
+ PUSH DE
+ EX DE,HL
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ CALL 04D5AH
+ CALL 05804H
+ CALL 04D53H
+ POP DE
+L6926: POP BC
+ LD C,A
+ EX DE,HL
+ LD A,(HL)
+ SUB B
+ JR C,L693B ; (+00eH)
+ INC A
+ CP C
+ JR NC,L6932 ; (+001H)
+ LD C,A
+L6932: LD A,B
+ DEC A
+ JR L68F4 ; (-042H)
+
+L6936: INC HL
+ LD A,0FFH
+ JR L6926 ; (-015H)
+
+L693B: XOR A
+ LD C,A
+ JR L68F4 ; (-04bH)
+
+ PUSH HL
+ PUSH DE
+ LD HL,(038D3H)
+ PUSH HL
+ LD A,030H
+ LD B,006H
+L6949: LD (HL),A
+ INC HL
+ DJNZ L6949 ; (-004H)
+ CALL 0003BH
+ POP HL
+ OR A
+ JR Z,L6959 ; (+005H)
+ INC (HL)
+ INC HL
+ INC (HL)
+ INC (HL)
+ DEC HL
+L6959: EX DE,HL
+ LD BC,08CA0H
+ CALL 057D1H
+ LD BC,00E10H
+ CALL 057D1H
+ CP 03AH
+ JR C,L6974 ; (+00aH)
+ SUB 00AH
+ DEC DE
+ LD (DE),A
+ DEC DE
+ LD A,(DE)
+ INC A
+ LD (DE),A
+ INC DE
+ INC DE
+L6974: DEC DE
+ DEC DE
+ LD A,(DE)
+ INC DE
+ LD B,A
+ LD A,(DE)
+ INC DE
+ LD C,A
+ LD A,B
+ CP 032H
+ JR NZ,L6993 ; (+012H)
+ LD A,C
+ CP 034H
+ JR NZ,L6993 ; (+00dH)
+ LD HL,(038D3H)
+ LD A,030H
+ LD B,006H
+L698D: LD (HL),A
+ INC HL
+ DJNZ L698D ; (-004H)
+ JR L69A9 ; (+016H)
+
+L6993: LD BC,00258H
+ CALL 057D1H
+ LD BC,XTEMP
+ CALL 057D1H
+ LD BC,0000AH
+ CALL 057D1H
+ LD A,030H
+L69A7: ADD A,L
+ LD (DE),A
+L69A9: LD HL,(038D3H)
+ LD DE,LETNL
+ EX DE,HL
+ ADD HL,DE
+ LD (038D3H),HL
+ EX DE,HL
+ LD DE,(06AB5H)
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ POP HL
+ LD (HL),006H
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ POP HL
+ LD A,003H
+ LD (06A65H),A
+ JP L5414
+
+L69D1: OR A
+ SBC HL,BC
+ JR C,L69DB ; (+005H)
+ LD A,(DE)
+ INC A
+ LD (DE),A
+ JR L69D1 ; (-00aH)
+
+L69DB: ADD HL,BC
+ INC DE
+ RET
+
+ LD A,B
+ OR A
+ JP NZ,L2101
+ LD A,C
+ RET
+
+ CALL 057FAH
+ PUSH DE
+ CALL 0529DH
+ CALL 03332H
+ CALL L5D7A
+ CALL 04D5AH
+ LD C,E
+ LD B,D
+ POP DE
+ RET
+
+ INC HL
+ CALL L5414
+ CP 028H
+ INC HL
+ RET Z
+ JP L20FE
+
+ CP 029H
+ INC HL
+ RET Z
+ JP L20FE
+
+ LD DE,(06AB7H)
+ LD (038D3H),DE
+ LD DE,(06AB9H)
+ CALL L5414
+L6A1A: CP 041H
+ JP C,L20FE
+L6A1F: CP 05BH
+L6A21: JP NC,L20FE
+L6A24: PUSH DE
+ CALL L588B
+ LD A,(HL)
+ CP 028H
+ JP Z,L58F4
+L6A2E: PUSH HL
+ CALL L5C06
+L6A32: JR NC,L6A3A ; (+006H)
+ LD A,C
+ LD C,L
+L6A36: LD B,H
+L6A37: POP HL
+ POP DE
+ RET
+
+L6A3A: LD A,(DE)
+ ADD A,C
+ ADD A,002H
+ PUSH BC
+L6A3F: EX DE,HL
+ LD HL,(038D3H)
+ PUSH HL
+ OR A
+ SBC HL,DE
+ INC HL
+ LD C,L
+ LD B,H
+ POP HL
+ PUSH DE
+ EX DE,HL
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ EX DE,HL
+ CALL L58DF
+ LD (038D3H),DE
+L6A59: LDDR
+L6A5B: LD E,A
+ LD D,000H
+ CALL L5AD4
+ POP HL
+ POP BC
+ LD DE,0110FH
+L6A66: LD (HL),C
+ INC HL
+ SCF
+ SBC A,C
+ LD B,A
+L6A6B: LD A,(DE)
+ LD (HL),A
+ INC DE
+L6A6E: INC HL
+ DJNZ L6A6B ; (-006H)
+ PUSH HL
+ LD B,C
+ XOR A
+L6A74: LD (HL),A
+ INC HL
+L6A76: DJNZ L6A74 ; (-004H)
+ LD (HL),A
+ LD A,C
+ POP BC
+ POP HL
+ POP DE
+ RET
+
+L6A7E: CALL L5414
+L6A81: CP 041H
+L6A83: JP C,L20FE
+ CP 05BH
+ JP NC,L20FE
+ LD DE,0110FH
+ LD B,000H
+L6A90: INC DE
+ LD A,(HL)
+ CALL 03AC7H
+ JR C,L6AA2 ; (+00bH)
+ LD (DE),A
+ INC B
+ LD A,B
+ CP 003H
+ JR C,L6A9F ; (+001H)
+ DEC B
+L6A9F: INC HL
+ JR L6A90 ; (-012H)
+
+L6AA2: LD DE,0110FH
+ EX DE,HL
+ LD (HL),B
+ EX DE,HL
+ LD C,005H
+ CP 024H
+ RET NZ
+ LD C,003H
+ INC HL
+ RET
+
+ LD HL,0FFFBH
+ ADD HL,DE
+L6AB5: EX DE,HL
+ PUSH DE
+L6AB7: LD HL,0FFFBH
+ ADD HL,DE
+L6ABB: POP DE
+ LD A,(06A65H)
+ CP B
+ RET Z
+L6AC1: JP L20FB
+
+ LD B,0FFH
+L6AC6: INC B
+ LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ RET Z
+ JR L6AC6 ; (-00aH)
+
+ LD A,B
+ OR A
+ RET Z
+L6AD3: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L6AD3 ; (-006H)
+ EX DE,HL
+ CALL L58DF
+ EX DE,HL
+ RET
+
+ PUSH HL
+ LD HL,MONIT
+ ADD HL,SP
+ DEC H
+ DEC H
+ SBC HL,DE
+ POP HL
+ RET NC
+ JP L20B9
+
+ LD DE,(06AB9H)
+ PUSH DE
+ JR L6AFC ; (+008H)
+
+ XOR A
+ LD (L5B41),A
+ INC HL
+ LD (05B3DH),HL
+L6AFC: LD B,000H
+ EXX
+ POP HL
+ PUSH HL
+ PUSH HL
+ LD HL,(038D3H)
+ LD DE,0110FH
+ PUSH HL
+ LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ LD B,A
+ CALL 058D0H
+ POP DE
+ LD (038D3H),HL
+ LD HL,(L6AB5)
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX (SP),HL
+ PUSH HL
+ EXX
+L6B1F: POP DE
+ PUSH DE
+ PUSH BC
+ LD BC,(05B3DH)
+ LD A,(L5B41)
+ PUSH BC
+ PUSH AF
+ LD BC,(06A26H)
+ PUSH BC
+ CALL 04D5AH
+ BIT 7,D
+ JP NZ,L20B9
+ EX AF,AF'
+ POP BC
+ LD (06A26H),BC
+ POP AF
+ LD (L5B41),A
+ POP BC
+ LD (05B3DH),BC
+ EX AF,AF'
+ INC HL
+ CP 029H
+ JR Z,L6B69 ; (+01cH)
+ CP 02CH
+ JP NZ,L20FE
+ POP BC
+ INC B
+ LD A,B
+ CP 004H
+ JR C,L6B5E ; (+005H)
+ LD A,003H
+ JP L2108
+
+L6B5E: EXX
+ POP HL
+ POP DE
+ EXX
+ PUSH DE
+ EXX
+ PUSH DE
+ PUSH HL
+ EXX
+ JR L6B1F ; (-04aH)
+
+L6B69: POP BC
+ EXX
+ POP HL
+ POP DE
+ EXX
+ INC B
+ PUSH DE
+ PUSH HL
+ EXX
+ LD HL,(L6AB5)
+ ADD HL,DE
+ LD B,(HL)
+ INC B
+ LD DE,0110FH
+L6B7B: LD A,(HL)
+ LD (DE),A
+ INC DE
+ INC HL
+ DJNZ L6B7B ; (-006H)
+ EXX
+ SET 7,C
+ CALL L5C06
+ RES 7,C
+ JP NC,059F3H
+ LD A,B
+ CP (HL)
+ JP NZ,L20CE
+ INC HL
+ EX DE,HL
+ POP HL
+ LD (06A26H),HL
+ EXX
+ LD HL,MONIT
+ EXX
+ EX DE,HL
+L6B9D: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX (SP),HL
+ PUSH DE
+ EXX
+ POP DE
+ CALL L5B13
+ EXX
+ EX DE,HL
+ CALL 059E7H
+ EX DE,HL
+ PUSH HL
+ OR A
+ SBC HL,DE
+ JP NC,L20D1
+ EXX
+ POP DE
+ CALL 05B0FH
+ EXX
+ POP HL
+ DJNZ L6B9D ; (-021H)
+ PUSH HL
+ EXX
+ LD A,C
+ LD D,B
+ BIT 6,A
+ JR NZ,L6BDA ; (+014H)
+ AND 00FH
+ LD E,A
+ PUSH AF
+ CALL L5B13
+ PUSH HL
+ EXX
+ POP BC
+ POP AF
+ POP HL
+ ADD HL,BC
+ LD C,L
+ LD B,H
+L6BD5: LD HL,(06A26H)
+ POP DE
+ RET
+
+L6BDA: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD C,L
+ LD B,H
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ AND 00FH
+ JR L6BD5 ; (-012H)
+
+ LD A,(L5B42)
+ OR A
+ RET Z
+ LD A,D
+ OR E
+ JP Z,L20D1
+ DEC DE
+ RET
+
+ EXX
+ LD A,(L5B41)
+ OR A
+ JP Z,L20D1
+ POP HL
+ LD (06A26H),HL
+ EXX
+ LD DE,(038D3H)
+ LD L,B
+ LD H,000H
+ ADD HL,HL
+ ADD HL,DE
+ EX DE,HL
+ INC DE
+ CALL L58DF
+ LD (HL),B
+ INC HL
+ EXX
+ LD HL,00001H
+ EXX
+L6C15: POP DE
+ LD A,(L5B41)
+ OR A
+ JR NZ,L6C28 ; (+00cH)
+ PUSH HL
+ EX DE,HL
+ LD DE,0000AH
+ SCF
+ SBC HL,DE
+ JP NC,L20D1
+ POP HL
+L6C28: CALL 059E7H
+ INC DE
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ PUSH DE
+ EXX
+ POP DE
+ CALL L5B13
+ EXX
+ DJNZ L6C15 ; (-024H)
+ LD E,C
+ LD D,000H
+ PUSH BC
+ PUSH DE
+ EXX
+ POP DE
+ CALL L5B13
+ PUSH HL
+ EXX
+ POP BC
+ PUSH BC
+ EX DE,HL
+ LD HL,(038D3H)
+ LD L,(HL)
+ LD H,000H
+ ADD HL,HL
+ LD A,(0110FH)
+ ADD A,005H
+ ADD A,L
+ LD L,A
+ LD A,000H
+ ADC A,H
+ LD H,A
+ JR C,L6C61 ; (+005H)
+ ADD HL,BC
+ JR C,L6C61 ; (+002H)
+ PUSH HL
+ ADD HL,DE
+L6C61: JP C,L20B9
+ EX DE,HL
+ CALL L58DF
+ PUSH HL
+ EXX
+ POP HL
+ LD BC,(06AB5H)
+ DEC BC
+ OR A
+ SBC HL,BC
+ PUSH HL
+ EXX
+ POP BC
+ LDDR
+ POP DE
+ CALL 05ACDH
+ POP BC
+ PUSH DE
+ EXX
+ POP DE
+ LD H,B
+ LD L,C
+ POP BC
+ LD A,C
+ OR 080H
+ LD (HL),A
+ INC HL
+ DEC DE
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,0110FH
+ LD A,(DE)
+ INC A
+ CALL L5AC5
+ LD DE,(038D3H)
+ LD A,(DE)
+ LD (HL),A
+ INC HL
+ INC DE
+ ADD A,A
+ CALL L5AC5
+ PUSH HL
+ EXX
+ POP HL
+L6CA4: XOR A
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L6CA4 ; (-008H)
+ LD (HL),A
+ LD A,001H
+ LD (03901H),A
+ EXX
+ POP DE
+ LD A,(L5B41)
+ OR A
+ JR Z,L6CBE ; (+004H)
+ LD HL,(06A26H)
+ RET
+
+L6CBE: LD HL,(05B3DH)
+ PUSH DE
+ JP 058FCH
+
+ LD B,A
+L6CC6: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L6CC6 ; (-006H)
+ RET
+
+ LD HL,(038D3H)
+ ADD HL,DE
+ LD (038D3H),HL
+ LD HL,(L6AB5)
+ ADD HL,DE
+ LD (L6AB5),HL
+ LD HL,(L6AB7)
+ ADD HL,DE
+ LD (L6AB7),HL
+ LD HL,(038DAH)
+ ADD HL,DE
+ LD (038DAH),HL
+ RET
+
+ LD A,0FFH
+ LD (L5B41),A
+L6CEF: EX DE,HL
+ LD A,(DE)
+ EX DE,HL
+ CP 041H
+ JP C,L20FE
+ CP 05BH
+ JP NC,L20FE
+ CALL L588B
+ LD A,(HL)
+ CALL 057FDH
+ CALL L58ED
+ CALL L5414
+ CP 02CH
+ RET NZ
+ INC HL
+ JR L6CEF ; (-020H)
+
+ ADD HL,DE
+ RET NC
+ JR L6D3A ; (+027H)
+
+ PUSH BC
+ EX DE,HL
+ LD C,L
+ LD A,H
+ LD HL,MONIT
+ CALL 05B23H
+ LD A,C
+ CALL 05B23H
+ POP BC
+ RET
+
+ OR A
+ JR Z,L6D34 ; (+00eH)
+ LD B,008H
+L6D28: ADD HL,HL
+ JR C,L6D3A ; (+00fH)
+ RLCA
+ JR NC,L6D31 ; (+003H)
+ ADD HL,DE
+ JR C,L6D3A ; (+009H)
+L6D31: DJNZ L6D28 ; (-00bH)
+ RET
+
+L6D34: LD A,H
+ LD H,L
+ LD L,000H
+ OR A
+ RET Z
+L6D3A: JP L20D1
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ CP 041H
+ RET C
+ CP 05BH
+ JP NC,L5497
+ LD BC,(05D83H)
+ LD A,B
+ OR C
+ JR NZ,L6D66 ; (+013H)
+ CALL 05817H
+L6D56: PUSH DE
+ PUSH HL
+ LD L,C
+ LD H,B
+ LD B,A
+ LD C,A
+L6D5C: LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ DJNZ L6D5C ; (-006H)
+ POP HL
+ JP 05454H
+
+L6D66: PUSH DE
+ CALL L587E
+ PUSH HL
+ INC B
+ LD DE,0110FH
+ LD HL,(038D3H)
+ CALL 058D0H
+ LD B,000H
+ LD HL,(L5D83)
+ CALL L5414
+ CP 0F4H
+ JR Z,L6DB0 ; (+02fH)
+ CP 028H
+ JR NZ,L6DAD ; (+028H)
+L6D85: INC HL
+ INC B
+ PUSH BC
+ CALL L587E
+ LD A,C
+ POP DE
+ CP E
+ LD C,E
+ JR NZ,L6DA2 ; (+011H)
+ PUSH DE
+ LD C,B
+ INC C
+ PUSH HL
+ LD HL,(038D3H)
+ LD DE,0110FH
+ CALL 0162EH
+ POP HL
+ POP BC
+ JR Z,L6DC6 ; (+024H)
+L6DA2: CALL L5414
+ CP 029H
+ JR Z,L6DB0 ; (+007H)
+ CP 02CH
+ JR Z,L6D85 ; (-028H)
+L6DAD: JP L20FE
+
+L6DB0: LD HL,(038D3H)
+ LD DE,0110FH
+ LD A,(HL)
+ LD (DE),A
+ LD B,A
+L6DB9: INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ DJNZ L6DB9 ; (-006H)
+ POP HL
+ POP DE
+ CALL L5C02
+ JR L6D56 ; (-070H)
+
+L6DC6: LD HL,(L5D85)
+ CALL 057FAH
+ DEC B
+ JR Z,L6DE7 ; (+018H)
+ DEC HL
+L6DD0: PUSH BC
+L6DD1: CALL 03880H
+ CALL L1C66
+ JP Z,L20FE
+ CP 029H
+ JP Z,L20FE
+ CP 02CH
+ JR NZ,L6DD1 ; (-012H)
+ POP BC
+ DJNZ L6DD0 ; (-016H)
+ INC HL
+L6DE7: EX DE,HL
+ POP HL
+ EX (SP),HL
+ EX DE,HL
+ LD BC,(05D83H)
+ PUSH BC
+ LD BC,MONIT
+ LD (05D83H),BC
+ CALL 0529DH
+ POP HL
+ LD (L5D83),HL
+ POP HL
+ JP L5414
+
+ PUSH DE
+ JP 05828H
+
+ LD HL,(06AB3H)
+L6E09: LD DE,0110FH
+ LD A,(HL)
+ OR A
+ RET Z
+ CP 040H
+ JR NC,L6E3A ; (+027H)
+ CP C
+ JR NZ,L6E2F ; (+019H)
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L6E2D ; (+012H)
+ LD B,A
+L6E1C: INC DE
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L6E27 ; (+005H)
+ DJNZ L6E1C ; (-008H)
+ INC HL
+ SCF
+ RET
+
+L6E27: INC HL
+ DJNZ L6E27 ; (-003H)
+ LD A,C
+ JR L6E34 ; (+007H)
+
+L6E2D: LD A,C
+ DEC HL
+L6E2F: AND 00FH
+ INC HL
+ ADD A,(HL)
+ INC HL
+L6E34: LD E,A
+ LD D,000H
+ ADD HL,DE
+ JR L6E09 ; (-031H)
+
+L6E3A: CP C
+ JR Z,L6E52 ; (+015H)
+ INC HL
+L6E3E: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ ADD HL,DE
+ JP L5C09
+
+ LD A,C
+ SUB B
+ CPL
+ LD C,A
+ LD B,0FFH
+ ADD HL,BC
+ POP BC
+ DEC HL
+ DEC HL
+ JR L6E3E ; (-014H)
+
+L6E52: LD A,(HL)
+ EXX
+ LD C,A
+ LD B,000H
+ EXX
+ INC HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ POP DE
+ LD A,(DE)
+ CP (HL)
+ JP NZ,05C4EH
+ PUSH BC
+ LD B,A
+ LD C,A
+L6E6A: INC HL
+ INC DE
+ LD A,(DE)
+ CP (HL)
+ JP NZ,L5C46
+ DJNZ L6E6A ; (-009H)
+ INC HL
+ POP BC
+ SCF
+ RET
+
+ LD A,(HL)
+ CALL 05881H
+ SET 6,C
+ PUSH HL
+ CALL L5C06
+ JP C,L20CE
+ LD (HL),C
+ EX (SP),HL
+ PUSH HL
+ DEC HL
+L6E88: CALL 03880H
+ OR A
+ JR Z,L6E92 ; (+004H)
+ CP 03AH
+ JR NZ,L6E88 ; (-00aH)
+L6E92: POP DE
+ PUSH HL
+ INC HL
+ SBC HL,DE
+ LD A,(0110FH)
+ ADD A,004H
+ LD C,A
+ LD B,000H
+ LD A,L
+ ADD HL,BC
+ LD B,A
+ PUSH HL
+ EXX
+ POP BC
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,MONIT
+ ADD HL,SP
+ LD DE,(038D3H)
+ DEC H
+ OR A
+ SBC HL,DE
+ LD A,00CH
+ JP C,L20BB
+ POP BC
+ POP DE
+ POP HL
+ LD HL,(038D3H)
+ PUSH HL
+ ADD HL,BC
+ EX (SP),HL
+ PUSH HL
+ LD DE,(06AB5H)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ POP HL
+ POP DE
+ LDDR
+ POP DE
+ CALL 05ACDH
+ DEC DE
+ POP HL
+ EX (SP),HL
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,0110FH
+ LD A,(DE)
+ LD (HL),A
+ LD B,A
+L6EE3: INC DE
+ INC HL
+ LD A,(DE)
+ LD (HL),A
+ DJNZ L6EE3 ; (-006H)
+ INC HL
+ PUSH HL
+ EXX
+ POP HL
+L6EED: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L6EED ; (-006H)
+ LD (HL),000H
+ POP HL
+ RET
+
+ PUSH DE
+ LD A,(HL)
+ CALL 05881H
+ POP IX
+ PUSH BC
+ SET 6,C
+ LD DE,(05D85H)
+ LD (L5D85),HL
+ PUSH DE
+ CALL L5C06
+ LD A,00FH
+ JP NC,L2108
+ LD DE,(05D83H)
+ LD (L5D83),HL
+ PUSH DE
+ PUSH IX
+ DEC HL
+L6F1C: CALL 03880H
+ CALL L1C66
+ JP Z,L20FE
+ CP 0F4H
+ JR NZ,L6F1C ; (-00dH)
+ INC HL
+ POP DE
+ PUSH DE
+ CALL 0529DH
+ POP DE
+ LD HL,(L5D85)
+ POP BC
+ LD (05D83H),BC
+ POP BC
+ LD (05D85H),BC
+ EX DE,HL
+ POP BC
+ LD A,C
+ CALL L5D70
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ CALL L5414
+ CP 028H
+ RET NZ
+ PUSH DE
+ LD B,001H
+L6F51: PUSH BC
+ CALL 03880H
+ POP BC
+ OR A
+ JP Z,L20FE
+ CP 03AH
+ JP Z,L20FE
+ CP 028H
+ JR NZ,L6F64 ; (+001H)
+ INC B
+L6F64: CP 029H
+ JR NZ,L6F51 ; (-017H)
+ DJNZ L6F51 ; (-019H)
+ INC HL
+ CALL L5414
+ POP DE
+ RET
+
+ CP 003H
+ JR Z,L6F7A ; (+006H)
+ CP 003H
+ RET NZ
+ JP L20FB
+
+L6F7A: LD A,(06A65H)
+ CP 003H
+ RET Z
+ JP L20FB
+
+ NOP
+ NOP
+ NOP
+ NOP
+ PUSH HL
+ LD B,005H
+ XOR A
+L6F8B: LD (HL),A
+ INC HL
+ DJNZ L6F8B ; (-004H)
+ POP HL
+ RET
+
+ LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ LD A,(HL)
+ XOR 080H
+ LD (HL),A
+ DEC HL
+ RET
+
+ LD A,(06A65H)
+ CP 003H
+ LD A,005H
+ RET NZ
+ JP L20FB
+
+ CALL L5D9B
+ LD C,A
+ LD A,080H
+ JP L5DB9
+
+ LD A,(06A65H)
+ CP 003H
+ JP Z,L5E07
+ LD C,A
+ XOR A
+ LD (L6A59),HL
+ PUSH DE
+ PUSH HL
+ LD (06A5CH),SP
+ INC HL
+ INC DE
+ LD B,(HL)
+ XOR (HL)
+ EX DE,HL
+ XOR (HL)
+ DEC HL
+ DEC DE
+ EX DE,HL
+ RLCA
+ LD A,B
+ LD (L6A5B),A
+ JP C,L5EC8
+ XOR A
+ CP (HL)
+ JP Z,L5DFC
+ LD A,(DE)
+ OR A
+ JR Z,L6FE0 ; (+004H)
+ SUB (HL)
+ JP L5F0B
+
+L6FE0: LD SP,(06A5CH)
+ POP HL
+ POP DE
+ EI
+ LD A,(HL)
+ OR A
+ JR Z,L6FF7 ; (+00cH)
+ LD A,(L6A5B)
+ AND 080H
+ INC HL
+ RES 7,(HL)
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ RET
+
+L6FF7: INC HL
+ RES 7,(HL)
+ DEC HL
+ RET
+
+ LD B,000H
+ LD A,005H
+ LD C,A
+ EX DE,HL
+ LDIR
+ JP L5DE0
+
+ LD B,(HL)
+ LD A,(DE)
+ ADD A,B
+ JP C,L20E6
+ LD C,A
+ PUSH DE
+ PUSH HL
+ PUSH DE
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L6AB5)
+ ADD HL,DE
+ EX DE,HL
+ LD HL,(038D3H)
+ CALL 058D0H
+ EX (SP),HL
+ LD B,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L6AB5)
+ ADD HL,DE
+ EX DE,HL
+ POP HL
+ CALL 058D0H
+ LD A,C
+ LD DE,(038D3H)
+ LD BC,(06AB5H)
+ EX DE,HL
+ OR A
+ SBC HL,BC
+ EX DE,HL
+ LD (038D3H),HL
+ POP HL
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ DEC HL
+ DEC HL
+ POP DE
+ RET
+
+ LD A,(06A65H)
+ CP 003H
+ JR NZ,L7085 ; (+034H)
+ PUSH DE
+ PUSH HL
+ LD A,(DE)
+ OR (HL)
+ JR Z,L7082 ; (+02bH)
+ LD A,(DE)
+ CP (HL)
+ JR C,L705C ; (+001H)
+ LD A,(HL)
+L705C: OR A
+ JR Z,L707C ; (+01dH)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ EX DE,HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L6AB5)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ ADD HL,BC
+ EX DE,HL
+ LD B,A
+ OR A
+ JR Z,L7082 ; (+00eH)
+L7074: LD A,(DE)
+ CP (HL)
+ JR NZ,L7082 ; (+00aH)
+ INC DE
+ INC HL
+ DJNZ L7074 ; (-008H)
+L707C: POP DE
+ POP HL
+ LD A,(DE)
+ CP (HL)
+ EX DE,HL
+ RET
+
+L7082: POP HL
+ POP DE
+ RET
+
+L7085: INC DE
+ INC HL
+ LD A,(DE)
+ DEC DE
+ XOR (HL)
+ RLCA
+ JR NC,L7091 ; (+004H)
+ LD A,(HL)
+ DEC HL
+ RLCA
+ RET
+
+L7091: LD A,(HL)
+ DEC HL
+ RLCA
+ JR NC,L709C ; (+006H)
+ CALL L5E9C
+ RET Z
+ CCF
+ RET
+
+L709C: PUSH DE
+ PUSH HL
+ EX DE,HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L70BD ; (+01aH)
+ INC DE
+ INC HL
+ LD A,(HL)
+ OR 080H
+ LD B,A
+ LD A,(DE)
+ OR 080H
+ CP B
+ JR NZ,L70BD ; (+00eH)
+ LD A,(06A65H)
+ LD B,A
+ DEC B
+ DEC B
+L70B5: INC DE
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L70BD ; (+002H)
+ DJNZ L70B5 ; (-008H)
+L70BD: POP HL
+ POP DE
+ RET
+
+L70C0: POP HL
+ PUSH HL
+ CALL L5D87
+ JP L5DE0
+
+ CALL L5E9C
+ JR Z,L70C0 ; (-00dH)
+ JR NC,L70D8 ; (+009H)
+ LD A,(L6A5B)
+ XOR 080H
+ LD (L6A5B),A
+ SCF
+L70D8: EX AF,AF'
+ LD A,(HL)
+ OR A
+ JP Z,L5DFC
+ LD A,(DE)
+ OR A
+ JP Z,L5DE0
+ SUB (HL)
+ JR C,L70ED ; (+007H)
+ CP 020H
+ JP NC,L5DFC
+ JR L70F4 ; (+007H)
+
+L70ED: NEG
+ CP 020H
+ JP NC,L5DE0
+L70F4: EX AF,AF'
+ JR C,L70F8 ; (+001H)
+ EX DE,HL
+L70F8: EX AF,AF'
+ JP L5F92
+
+ LD SP,(06A5CH)
+ EI
+ POP HL
+ POP DE
+ LD A,(06A63H)
+ OR A
+ JP Z,L20F5
+ RET
+
+ JR NC,L7117 ; (+00aH)
+ NEG
+ CP 020H
+ JP NC,L5DE0
+ EX DE,HL
+ JR L711C ; (+005H)
+
+L7117: CP 020H
+ JP NC,L5DFC
+L711C: CALL 05F52H
+ LD A,H
+ EXX
+ ADC A,H
+ EXX
+ LD H,A
+ LD A,L
+ EXX
+ ADC A,L
+ EXX
+ LD L,A
+ LD A,D
+ EXX
+ ADC A,D
+ EXX
+ LD D,A
+ LD A,E
+ EXX
+ ADC A,E
+ EXX
+ JR NC,L713F ; (+00bH)
+ RRA
+ RR D
+ RR L
+ RR H
+ INC C
+ JP Z,L5EFC
+L713F: LD E,A
+ LD A,C
+ EXX
+ LD BC,00005H
+ LD HL,(L6A59)
+ LD (HL),A
+ ADD HL,BC
+ DI
+ LD SP,HL
+ EXX
+ PUSH HL
+ PUSH DE
+ JP L5DE0
+
+ DI
+ LD (06A5EH),SP
+ EX AF,AF'
+ INC HL
+ LD SP,HL
+ EXX
+ POP DE
+ SET 7,E
+ POP HL
+ OR A
+L7160: EX AF,AF'
+ CP 008H
+ JR C,L7171 ; (+00cH)
+ SUB 008H
+ EX AF,AF'
+ RL H
+ LD H,L
+ LD L,D
+ LD D,E
+ LD E,000H
+ JR L7160 ; (-011H)
+
+L7171: OR A
+ JR Z,L7182 ; (+00eH)
+L7174: EX AF,AF'
+ OR A
+ RR E
+ RR D
+ RR L
+ RR H
+ EX AF,AF'
+ DEC A
+ JR NZ,L7174 ; (-00eH)
+L7182: EXX
+ EX DE,HL
+ LD C,(HL)
+ INC HL
+ LD SP,HL
+ POP DE
+ SET 7,E
+ POP HL
+ EX AF,AF'
+ LD SP,(06A5EH)
+ EI
+ RET
+
+ CP 020H
+ JP NC,L5DE0
+ CALL 05F52H
+ LD A,H
+ EXX
+ SBC A,H
+ EXX
+ LD H,A
+ LD A,L
+ EXX
+ SBC A,L
+ EXX
+ LD L,A
+ LD A,D
+ EXX
+ SBC A,D
+ EXX
+ LD D,A
+ LD A,E
+ EXX
+ SBC A,E
+ EXX
+L71AD: OR A
+ JR Z,L71C6 ; (+016H)
+ BIT 7,A
+ JR NZ,L71C2 ; (+00eH)
+ RL H
+ RL L
+ RL D
+ RLA
+ DEC C
+ JP NZ,L5FB0
+ JP L5EC0
+
+L71C2: LD E,A
+ JP L5F3F
+
+L71C6: LD A,C
+ SUB 008H
+ LD C,A
+ LD A,D
+ LD D,L
+ LD L,H
+ LD H,000H
+ JR Z,L71D3 ; (+002H)
+ JR NC,L71AD ; (-026H)
+L71D3: JP L5EC0
+
+ LD C,A
+ INC HL
+ INC DE
+ LD A,(DE)
+ XOR (HL)
+ LD (L6A5B),A
+ DEC HL
+ DEC DE
+ RET
+
+ CALL L5D9B
+ CALL 05FD6H
+ PUSH DE
+ PUSH HL
+ LD (06A5CH),SP
+ LD A,(HL)
+ OR A
+ JP Z,L5EC0
+ LD A,(DE)
+ OR A
+ JP Z,L5EC0
+ INC DE
+ PUSH DE
+ POP IX
+ ADD A,(HL)
+ LD E,A
+ LD A,000H
+ ADC A,A
+ LD D,A
+ LD (06A61H),DE
+ INC HL
+ XOR A
+ LD (06A60H),A
+ LD D,(HL)
+ SET 7,D
+ INC HL
+ LD E,(HL)
+ INC HL
+ PUSH HL
+ LD H,A
+ LD L,A
+ EXX
+ POP HL
+ LD D,(HL)
+ INC HL
+ LD E,(HL)
+ LD B,A
+ LD C,A
+ LD H,A
+ LD L,A
+ EXX
+ LD A,(IX+000H)
+ OR 080H
+ LD C,004H
+L7224: LD B,008H
+ OR A
+ JP Z,L60B9
+L722A: RLCA
+ JR NC,L723F ; (+012H)
+ EX AF,AF'
+ EXX
+ LD A,C
+ ADD A,B
+ LD C,A
+ ADC HL,DE
+ EXX
+ ADC HL,DE
+ JR NC,L723E ; (+005H)
+ LD A,001H
+ LD (06A60H),A
+L723E: EX AF,AF'
+L723F: SRL D
+ RR E
+ EXX
+ RR D
+ RR E
+ RR B
+ EXX
+ DJNZ L722A ; (-023H)
+ INC IX
+ LD A,(IX+000H)
+ DEC C
+ JR NZ,L7224 ; (-031H)
+ EXX
+ LD A,(06A60H)
+ OR A
+ JR Z,L7272 ; (+016H)
+ LD DE,(06A61H)
+ INC DE
+ LD (06A61H),DE
+ EXX
+ SCF
+ RR H
+ RR L
+ EXX
+ RR H
+ RR L
+ RR C
+L7272: BIT 7,C
+ JR Z,L7290 ; (+01aH)
+ LD DE,00001H
+ ADD HL,DE
+ EXX
+ LD DE,MONIT
+ ADC HL,DE
+ EXX
+ JR NC,L7290 ; (+00dH)
+ LD DE,(06A61H)
+ INC DE
+ LD (06A61H),DE
+ EXX
+ LD H,080H
+ EXX
+L7290: POP IX
+ PUSH IX
+ LD (IX+004H),L
+ LD (IX+003H),H
+ EXX
+ LD (IX+002H),L
+ LD (IX+001H),H
+ LD HL,(06A61H)
+ OR A
+ LD DE,00081H
+ SBC HL,DE
+ LD A,H
+ ADD A,000H
+ JP M,060C5H
+ JP NZ,L5EFC
+ LD (IX+000H),L
+ JP L5DE0
+
+ LD A,E
+ EXX
+ LD B,E
+ LD E,D
+ LD D,A
+ EXX
+ LD E,D
+ LD D,000H
+ JP L604D
+
+ LD SP,(06A5CH)
+ JP L5EC0
+
+ CALL L5D9B
+ CALL 05FD6H
+ PUSH DE
+ PUSH HL
+ LD (06A5CH),SP
+ LD A,(DE)
+ OR A
+ JP Z,L20F5
+ EX AF,AF'
+ LD A,(HL)
+ OR A
+ JP Z,L5EC0
+ EXX
+ ADD A,081H
+ LD B,A
+ LD A,000H
+ ADC A,A
+ EX AF,AF'
+ LD C,A
+ LD A,B
+ SUB C
+ LD C,A
+ EX AF,AF'
+ LD B,A
+ EX AF,AF'
+ LD A,B
+ SBC A,000H
+ JP C,060C5H
+ JP NZ,L5EFC
+ LD A,C
+ PUSH AF
+ EXX
+ INC DE
+ INC HL
+ LD B,(HL)
+ SET 7,B
+ INC HL
+ LD C,(HL)
+ INC HL
+ PUSH HL
+ EX DE,HL
+ LD D,(HL)
+ SET 7,D
+ INC HL
+ LD E,(HL)
+ INC HL
+ PUSH HL
+ LD H,B
+ LD L,C
+ EXX
+ POP HL
+ LD D,(HL)
+ INC HL
+ LD E,(HL)
+ POP HL
+ LD A,(HL)
+ INC HL
+ LD L,(HL)
+ LD H,A
+ EXX
+ LD C,005H
+L731E: LD B,008H
+ XOR A
+L7321: BIT 7,H
+ JR NZ,L7335 ; (+010H)
+ OR A
+L7326: RLA
+ EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ DJNZ L7321 ; (-00dH)
+ PUSH AF
+ DEC C
+ JR NZ,L731E ; (-014H)
+ JP L616F
+
+L7335: OR A
+ EXX
+ SBC HL,DE
+ EXX
+ SBC HL,DE
+ CCF
+ JR C,L7326 ; (-019H)
+ EXX
+ ADD HL,DE
+ EXX
+ ADC HL,DE
+ OR A
+ RLA
+ EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ DJNZ L7354 ; (+007H)
+ PUSH AF
+ LD B,008H
+ DEC C
+ JP Z,L616F
+L7354: EXX
+ OR A
+ SBC HL,DE
+ EXX
+ SBC HL,DE
+ SCF
+ RLA
+ DJNZ L7365 ; (+006H)
+ PUSH AF
+ LD B,008H
+ DEC C
+ JR Z,L736F ; (+00aH)
+L7365: EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ JR C,L7354 ; (-018H)
+ JP L6121
+
+L736F: POP AF
+ LD H,A
+ EXX
+ POP AF
+ LD E,A
+ POP AF
+ LD D,A
+ POP AF
+ LD C,A
+ POP AF
+ LD B,A
+ POP AF
+ BIT 7,B
+ JR NZ,L7392 ; (+013H)
+ EXX
+ SLA H
+ EXX
+ RL E
+ RL D
+ RL C
+ RL B
+ DEC A
+ JP NZ,L617B
+ JP L5EC0
+
+L7392: EXX
+ RL H
+ EXX
+ JR NC,L73A9 ; (+011H)
+ LD HL,00001H
+ ADD HL,DE
+ EX DE,HL
+ LD HL,MONIT
+ ADC HL,BC
+ LD B,H
+ LD C,L
+ JR NC,L73A9 ; (+003H)
+ LD B,080H
+ INC A
+L73A9: POP HL
+ PUSH HL
+ LD (HL),A
+ INC HL
+ LD (HL),B
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ JP L5DE0
+
+ INC HL
+ BIT 7,(HL)
+ DEC HL
+ RET
+
+ INC (HL)
+ RET NZ
+ JP L20F5
+
+ LD A,(HL)
+ OR A
+ RET Z
+ DEC (HL)
+ RET NZ
+ JP L5D87
+
+ PUSH HL
+ LD DE,00005H
+ ADD HL,DE
+ EX DE,HL
+ LD HL,(06ABDH)
+ DEC HL
+ SBC HL,DE
+ JP C,L20F8
+ POP HL
+ RET
+
+ PUSH HL
+ LD (06A12H),HL
+ CALL 061C9H
+ EX DE,HL
+ LD (06A14H),HL
+ CALL 061C9H
+ EX DE,HL
+ LD (06A16H),HL
+ CALL 061C9H
+ LD (06A18H),DE
+ POP HL
+ RET
+
+ EX DE,HL
+ LD A,(HL)
+ OR A
+ JP Z,L6258
+ EX DE,HL
+ LD A,(HL)
+ OR A
+ JP Z,L5D87
+ CALL L61B7
+ JR Z,L7432 ; (+02cH)
+ CALL L5D91
+ EX DE,HL
+ PUSH DE
+ PUSH HL
+ LD DE,L6A6E
+ CALL 03AB8H
+ LD HL,L6A6E
+ CALL L62B0
+ LD A,(HL)
+ OR A
+ JP NZ,L2101
+ POP HL
+ PUSH HL
+ CALL L3D21
+ XOR A
+ RR L
+ RRA
+ POP DE
+ POP HL
+ PUSH AF
+ CALL L6232
+ POP AF
+ INC HL
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ RET
+
+L7432: EX DE,HL
+ LD A,(HL)
+ OR A
+ JR Z,L7458 ; (+021H)
+ CALL L61B7
+ JR Z,L745E ; (+022H)
+ CALL L5D91
+ CALL L625E
+ PUSH DE
+ PUSH HL
+ LD DE,L6A6E
+ CALL L3AB5
+ LD HL,L6A6E
+ POP DE
+ CALL L60CC
+ PUSH DE
+ CALL 03AB8H
+ POP HL
+ POP DE
+ RET
+
+L7458: PUSH DE
+ CALL L3AB5
+ POP HL
+ RET
+
+L745E: PUSH DE
+ LD DE,L6A6E
+ CALL 03AB8H
+ POP HL
+ CALL L6736
+ LD DE,L6A6E
+ CALL 05FE1H
+ JP L6615
+
+ INC HL
+ RES 7,(HL)
+ DEC HL
+ RET
+
+ LD A,(06A65H)
+ CP 002H
+ RET Z
+ CALL L61B7
+ JP Z,L3C97
+ PUSH HL
+ LD DE,L6A6E
+ CALL 03AB8H
+ POP HL
+ CALL L3C97
+ LD DE,L6A6E
+ CALL L5E4A
+ RET Z
+ LD DE,L3D77
+ JP L5DA6
+
+ LD DE,L3D77
+ JP L5DAF
+
+ LD DE,L3D77
+ JP L5E4A
+
+ LD A,(06A65H)
+ CP 002H
+ RET Z
+ JP L3C97
+
+ LD A,(06A65H)
+ CP 002H
+ JR Z,L74C9 ; (+012H)
+ PUSH HL
+ LD DE,L6A6E
+ CALL 03AB8H
+ LD HL,L6A6E
+ CALL L3C97
+ EX DE,HL
+ POP HL
+ JP L5DA6
+
+L74C9: LD (HL),000H
+ INC HL
+ LD (HL),000H
+ DEC HL
+ RET
+
+ LD A,(HL)
+ OR A
+ RET Z
+ CALL L61B7
+ JP NZ,L2101
+ CALL L6736
+ CALL L61C1
+ JP L6615
+
+ PUSH HL
+ EX DE,HL
+ CALL L3AB5
+ POP HL
+ POP BC
+ RET
+
+ LD A,(HL)
+ LD C,H
+ ADD A,B
+ DEC HL
+ PUSH BC
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ PUSH AF
+ CALL L62FF
+ POP AF
+ POP BC
+ RLCA
+ RET NC
+ JP L5D91
+
+ CALL L62A1
+ JR C,L7528 ; (+024H)
+ CALL 061C9H
+ PUSH DE
+ PUSH HL
+ CALL 03AB8H
+ POP DE
+ PUSH DE
+ CALL L3AB5
+ POP HL
+ POP DE
+ CALL L60CC
+ CALL L6328
+ LD DE,065ABH
+ CALL L61BC
+ CALL L5DA6
+ CALL L61C1
+ JP L5DF7
+
+L7528: LD A,0FFH
+ LD (06A1EH),A
+ LD DE,062EAH
+ CALL L5E4A
+ JR C,07584H ; (+04fH)
+ LD DE,L62EC
+ CALL L5E4A
+ PUSH AF
+ CALL 061C9H
+ POP AF
+ PUSH HL
+ PUSH DE
+ CALL 03AB8H
+ POP HL
+ JR C,L755C ; (+014H)
+ CALL L629B
+ EX (SP),HL
+ CALL L5DA6
+ POP DE
+ CALL L60CC
+ CALL 06384H
+ LD DE,06575H
+ JP L5DAF
+
+L755C: LD DE,0637FH
+ CALL 05FE1H
+ CALL L629B
+ EX (SP),HL
+ LD DE,0637FH
+ CALL L5DA6
+ POP DE
+ CALL L60CC
+ CALL 06384H
+ CALL L61BC
+ LD DE,06575H
+ CALL L5DAF
+ JP L61C1
+
+ LD A,A
+ LD D,H
+ INC DE
+ CALL Z,0C5D0H
+ PUSH HL
+ CALL 061DAH
+ POP HL
+ PUSH HL
+ PUSH DE
+ CALL 03AB8H
+ POP HL
+ LD E,L
+ LD D,H
+ CALL 05FE1H
+ LD DE,(06A16H)
+ POP HL
+ PUSH HL
+ CALL 03AB8H
+ LD A,(06A65H)
+ DEC A
+ CP 004H
+ LD B,A
+ LD HL,06543H
+ JP Z,06444H
+ LD B,00AH
+ JP 06444H
+
+ PUSH BC
+ LD A,(HL)
+ OR A
+ JP Z,062E2H
+ LD DE,06575H
+ CALL L61C1
+ CALL L5DA6
+ CALL L61BC
+ CALL L5D91
+ POP BC
+ PUSH BC
+ PUSH HL
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ AND 080H
+ CPL
+ LD (06A1EH),A
+ DEC HL
+ CALL 061C9H
+ LD HL,06575H
+ PUSH DE
+ CALL 03AB8H
+ POP HL
+ CALL L61BC
+ CALL L61BC
+ CALL L61BC
+ EX DE,HL
+ POP HL
+ PUSH HL
+ CALL L5E4A
+ CALL NC,0680EH
+ EX DE,HL
+ CALL L61C1
+ EX DE,HL
+ CALL L5E4A
+ JR C,L7605 ; (+00bH)
+ CALL L5DA6
+ LD A,(06A1EH)
+ XOR 080H
+ LD (06A1EH),A
+L7605: EX DE,HL
+ CALL L61C1
+ EX DE,HL
+ CALL L5E4A
+ JR C,L761B ; (+00cH)
+ CALL L61C1
+ CALL L5DA6
+ CALL L61BC
+ CALL L5DF7
+L761B: CALL 061DAH
+ POP HL
+ PUSH DE
+ LD DE,06575H
+ CALL L5E4A
+ JR NC,L768D ; (+065H)
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL 03AB8H
+ POP HL
+ LD E,L
+ LD D,H
+ CALL 05FE1H
+ LD DE,(06A16H)
+ POP HL
+ PUSH HL
+ CALL 03AB8H
+ LD A,(06A65H)
+ LD B,A
+ LD HL,L64F3
+L7644: PUSH BC
+ PUSH HL
+ LD HL,(06A16H)
+ LD DE,(06A18H)
+ CALL 05FE1H
+ POP HL
+ PUSH HL
+ LD DE,(06A14H)
+ PUSH DE
+ CALL 03AB8H
+ POP HL
+ LD DE,(06A16H)
+ CALL 05FE1H
+ EX DE,HL
+ LD HL,(06A12H)
+ CALL L5DAF
+ POP HL
+ LD DE,00005H
+ ADD HL,DE
+ POP BC
+ DJNZ L7644 ; (-02dH)
+ POP HL
+ POP BC
+ LD A,(06A1EH)
+ INC HL
+L7677: XOR (HL)
+ CPL
+ LD (HL),A
+ DEC HL
+ LD A,(06A65H)
+ CP 008H
+ LD A,(HL)
+ JR Z,L7689 ; (+006H)
+ CP 05CH
+L7685: RET NC
+ JP L5D87
+
+L7689: CP 04DH
+ JR L7685 ; (-008H)
+
+L768D: CALL L61C1
+ LD DE,06575H
+ CALL L5DA6
+ CALL L61BC
+ CALL L5DF7
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL 03AB8H
+ POP HL
+ LD E,L
+ LD D,H
+ CALL 05FE1H
+ LD DE,(06A16H)
+ CALL L3AB5
+ POP DE
+ PUSH DE
+ CALL L3AB5
+ LD A,(06A65H)
+ LD B,A
+ LD HL,L651B
+ JR L7644 ; (-079H)
+
+ PUSH BC
+ PUSH HL
+ CALL 061C9H
+ EX DE,HL
+ LD (L6A1A),HL
+ CALL 061C9H
+ LD (06A1CH),DE
+ POP HL
+ PUSH HL
+ CALL 03AB8H
+ LD HL,(L6A1A)
+ EX DE,HL
+ POP HL
+ PUSH HL
+ CALL 03AB8H
+ LD HL,(06A1CH)
+ CALL 063C6H
+ POP DE
+ PUSH DE
+ CALL 03AB8H
+ LD HL,(L6A1A)
+ CALL 063B0H
+ EX DE,HL
+ POP HL
+ CALL L60CC
+ POP BC
+ RET
+
+ LD A,(HL)
+L76F4: XOR D
+ XOR D
+ XOR D
+ XOR E
+ LD A,D
+ EX AF,AF'
+ ADC A,B
+ ADC A,B
+ ADC A,C
+ LD (HL),H
+ RET NC
+ DEC C
+ NOP
+ RET NC
+ LD L,(HL)
+ JR C,L76F4 ; (-011H)
+ DEC E
+ DEC HL
+ LD H,A
+ RST 010H
+ LD (L402B),A
+ LD H,B
+ JR NC,076A1H ; (-06eH)
+ JR NC,076AEH ; (-063H)
+ LD E,B
+ RST 010H
+ CCF
+ SBC A,A
+ LD A,(04A50H)
+ SUB (HL)
+ DEC SP
+ ADD A,D
+ ADD A,B
+ ADD A,B
+ NOP
+ NOP
+ NOP
+ LD A,H
+ LD HL,(0AAAAH)
+ XOR E
+ LD (HL),A
+ OR (HL)
+ DEC BC
+ LD H,B
+ OR (HL)
+ LD (HL),C
+ LD D,B
+ DEC C
+ NOP
+ RET NC
+ LD L,E
+ SUB E
+ JP P,0BC7DH
+ LD H,H
+ RRCA
+ HALT
+ RST 000H
+L7738: ADD A,B
+ LD E,H
+ RET
+
+L773B: RES 4,L
+ LD B,(HL)
+ LD D,H
+ LD D,A
+ CCF
+ SBC A,A
+ LD A,(0AA7FH)
+ XOR D
+ XOR D
+ XOR E
+ LD A,(HL)
+ LD C,H
+ CALL Z,0CDCCH
+ LD A,(HL)
+ SUB D
+ LD C,C
+ INC H
+ SUB D
+ LD A,L
+ LD H,E
+ ADC A,(HL)
+ JR C,L773B ; (-01cH)
+ LD A,L
+ CP D
+ LD L,08BH
+ AND E
+ LD A,L
+ DEC E
+ ADC A,C
+ RET C
+ SBC A,(HL)
+ LD A,L
+ ADC A,B
+ ADC A,B
+ ADC A,B
+ ADC A,C
+ LD A,H
+ LD (HL),B
+ RET P
+ RET P
+ POP AF
+ LD A,H
+ RST 010H
+ SUB H
+ DEC (HL)
+ PUSH HL
+ LD A,H
+ LD B,E
+ INC C
+ JR NC,L7738 ; (-03dH)
+ ADD A,B
+ LD C,C
+ RRCA
+ JP C,011A2H
+ NOP
+ NOP
+ CALL 0658EH
+ JR Z,L778A ; (+008H)
+ CALL L61B7
+ INC DE
+ JR Z,L778A ; (+002H)
+ DEC DE
+ DEC DE
+L778A: CALL 03A82H
+ RET
+
+ LD A,(06A65H)
+ CP 002H
+ JR Z,L7798 ; (+003H)
+ LD A,(HL)
+ OR A
+ RET
+
+L7798: LD A,(HL)
+ INC HL
+ OR (HL)
+ DEC HL
+ RET
+
+ LD DE,065B0H
+ JR L77A5 ; (+003H)
+
+ LD DE,065ABH
+L77A5: PUSH BC
+ CALL 05FE1H
+ POP BC
+ RET
+
+ ADD A,D
+ LD C,C
+ RRCA
+ JP C,L7BA2
+ LD C,0FAH
+ DEC (HL)
+ INC DE
+ CP 040H
+ JR Z,L77C8 ; (+00fH)
+ PUSH HL
+ CALL L3D21
+ CALL 000EAH
+L77C0: LD E,A
+ LD D,000H
+ POP HL
+ CALL 03A82H
+ RET
+
+L77C8: INC HL
+ PUSH HL
+ CALL L3D21
+ LD A,(HL)
+ JR L77C0 ; (-010H)
+
+ LD A,(HL)
+ OR A
+ JR Z,L77DB ; (+007H)
+ INC HL
+ LD A,(HL)
+ DEC HL
+ BIT 7,A
+ JR Z,L77E6 ; (+00bH)
+L77DB: PUSH HL
+ LD HL,L4193
+ LD (L6A1F),HL
+ POP HL
+ XOR A
+ LD R,A
+L77E6: PUSH BC
+ LD DE,(06A1FH)
+ LD A,R
+L77ED: XOR D
+ RRC A
+ RRC A
+ RRC A
+ LD D,A
+ LD A,R
+ XOR E
+ RLC A
+ RLC A
+ LD E,D
+ LD D,A
+ LD (06A1FH),DE
+ PUSH HL
+ INC HL
+ RES 7,D
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ INC HL
+ LD A,R
+ LD (HL),A
+ POP HL
+ LD (HL),081H
+ CALL L6295
+ POP BC
+ RET
+
+ PUSH BC
+ LD A,(HL)
+ OR A
+ JP Z,062E2H
+ INC HL
+ LD A,(HL)
+ LD (06A22H),A
+ RES 7,(HL)
+ DEC HL
+ LD DE,L6887
+ CALL 05FE1H
+ PUSH HL
+ CALL 061C9H
+ PUSH DE
+ CALL 03AB8H
+ POP HL
+ CALL L3C97
+ PUSH HL
+ CALL L3D21
+ XOR A
+ CP H
+ JP NZ,L20F5
+ LD A,L
+ LD (L6A21),A
+ POP DE
+ POP HL
+ PUSH HL
+ CALL L5DA6
+ PUSH DE
+ PUSH HL
+ CALL L3AB5
+ POP DE
+ POP HL
+ CALL L61C1
+ EX DE,HL
+ XOR A
+ LD B,008H
+L7856: PUSH BC
+ PUSH AF
+ CALL L5E4A
+ JR C,L7864 ; (+007H)
+ CALL L5DA6
+ POP AF
+ SET 7,A
+ PUSH AF
+L7864: POP AF
+ RLC A
+ EX DE,HL
+ PUSH AF
+ CALL L61C1
+ POP AF
+ EX DE,HL
+ POP BC
+ DJNZ L7856 ; (-01bH)
+ LD (06A23H),A
+ PUSH DE
+ LD DE,0687DH
+ LD A,(06A65H)
+ BIT 3,A
+ JR NZ,L7882 ; (+003H)
+ LD DE,06882H
+L7882: CALL 05FE1H
+ POP DE
+ PUSH DE
+ CALL 03AB8H
+ POP HL
+ LD A,(06A65H)
+ BIT 3,A
+ JP Z,06718H
+ CALL L61BC
+ LD DE,L3D72
+ CALL L5DAF
+ CALL L61C1
+ POP DE
+ PUSH DE
+ CALL 05FE1H
+ LD DE,L3D72
+ CALL L61C1
+ CALL L5DAF
+ CALL L61BC
+ POP DE
+ PUSH DE
+ CALL 05FE1H
+ LD DE,L6878
+ CALL 05FE1H
+ CALL L61BC
+ CALL L629B
+ CALL L61C1
+ POP DE
+ PUSH DE
+ CALL 05FE1H
+ CALL L629B
+ POP DE
+ PUSH DE
+ CALL 05FE1H
+ CALL L629B
+ EX (SP),HL
+ EX DE,HL
+ PUSH DE
+ CALL L3AB5
+ POP HL
+ LD DE,L6828
+ LD A,(06A23H)
+ LD B,008H
+L78E3: RLC A
+ JR NC,L78EE ; (+007H)
+ PUSH AF
+ PUSH BC
+ CALL 05FE1H
+ POP BC
+ POP AF
+L78EE: CALL 03AADH
+ DJNZ L78E3 ; (-010H)
+ LD A,(L6A21)
+ ADD A,(HL)
+ JP C,L20F5
+ LD (HL),A
+ POP DE
+ CALL 05FE1H
+ POP BC
+ LD A,(06A22H)
+ RLC A
+ RET NC
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ CALL 03AB8H
+ POP DE
+ PUSH DE
+ CALL L3AB5
+ POP HL
+ POP DE
+ CALL L60CC
+ POP BC
+ RET
+
+ POP DE
+ PUSH DE
+ CALL 05FE1H
+ LD A,(HL)
+ OR A
+ JR Z,L7924 ; (+003H)
+ CALL L61C1
+L7924: CALL L5DAF
+ JP L66D1
+
+ PUSH BC
+ CALL L6736
+ LD DE,06819H
+ CALL 05FE1H
+ POP BC
+ RET
+
+ PUSH BC
+ INC HL
+ LD A,(HL)
+ RLC A
+ JP C,L2101
+ DEC HL
+ LD A,(HL)
+ OR A
+ JP Z,L2101
+ SUB 081H
+ LD (L6A24),A
+ LD (HL),081H
+ XOR A
+ LD B,008H
+ LD DE,L6828
+L7951: PUSH BC
+ PUSH AF
+ CALL L5E4A
+ JR C,L7967 ; (+00fH)
+ PUSH HL
+ LD HL,00028H
+ ADD HL,DE
+ EX DE,HL
+ EX (SP),HL
+ CALL 05FE1H
+ POP DE
+ POP AF
+ SET 7,A
+ PUSH AF
+L7967: POP AF
+ RLC A
+ CALL 03AADH
+ POP BC
+ DJNZ L7951 ; (-01fH)
+ LD (06A12H),HL
+ CALL 061C9H
+ EX DE,HL
+ LD E,A
+ LD D,000H
+ CALL 03A82H
+ LD A,(HL)
+ OR A
+ JR Z,L7984 ; (+003H)
+ SUB 008H
+ LD (HL),A
+L7984: LD A,(L6A24)
+ CP 080H
+ JR C,L798D ; (+002H)
+ NEG
+L798D: PUSH HL
+ CALL 061C9H
+ EX DE,HL
+ LD (06A14H),HL
+ LD E,A
+ LD D,000H
+ CALL 03A82H
+ LD A,(L6A24)
+ AND 080H
+ INC HL
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ EX DE,HL
+ POP HL
+ CALL L5DAF
+ LD A,(06A65H)
+ LD DE,L688C
+ CP 005H
+ JR Z,L79B6 ; (+003H)
+ LD DE,0687DH
+L79B6: CALL 05FE1H
+ PUSH HL
+ LD DE,(06A14H)
+ LD HL,(06A12H)
+ PUSH HL
+ PUSH DE
+ CALL 03AB8H
+ POP HL
+ CALL L629B
+ EX (SP),HL
+ CALL L5DA6
+ POP DE
+ CALL L60CC
+ PUSH DE
+ CALL 03AB8H
+ POP HL
+ PUSH DE
+ LD E,L
+ LD D,H
+ CALL 05FE1H
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL 03AB8H
+ POP HL
+ LD DE,L6823
+ CALL L5DAF
+ EX DE,HL
+ POP HL
+ CALL 05FE1H
+ LD DE,L3D72
+ CALL L61BC
+ CALL L5DAF
+ CALL L61C1
+ EX DE,HL
+ LD HL,(06A12H)
+ CALL 05FE1H
+ LD DE,0681EH
+ CALL 05FE1H
+ POP DE
+ CALL L5DAF
+ POP BC
+ RET
+
+ CALL L60CC
+ PUSH DE
+ CALL 03CDAH
+ POP DE
+ JP 05FE1H
+
+ LD A,A
+ LD E,(HL)
+ LD E,E
+ RET C
+ XOR C
+ LD A,A
+ LD C,H
+ CALL Z,0CDCCH
+ ADD A,C
+ LD D,L
+ LD D,L
+ LD D,L
+ LD D,(HL)
+ ADD A,C
+ DEC (HL)
+ INC B
+ DI
+ INC (HL)
+ ADD A,C
+ JR L7A67 ; (+037H)
+
+ RET P
+ LD D,D
+ ADD A,C
+ DEC BC
+L7A34: SUB L
+ POP BC
+ CALL PO,00581H
+ XOR D
+ JP 08168H
+
+ LD (BC),A
+ CALL 09986H
+ ADD A,C
+ LD BC,0D164H
+ CALL P,00081H
+ OR C
+ IN D,(C)
+ ADD A,C
+ NOP
+ LD E,B
+ RST 010H
+ OUT (080H),A
+ DEC (HL)
+ INC B
+ DI
+ INC (HL)
+ ADD A,B
+ LD D,A
+ LD B,H
+ CALL M,080CBH
+ LD L,D
+ RET NZ
+ ADD A,LSE8
+ ADD A,B
+ LD (HL),L
+ DEC H
+ LD A,L
+ LD D,080H
+ LD A,D
+ ADD A,E
+L7A67: OR D
+ CALL C,L7D80
+ LD A,00CH
+ DEC C
+ ADD A,B
+ LD A,(HL)
+ SBC A,(HL)
+ LD DE,0805DH
+ LD A,A
+ LD C,(HL)
+ BIT 3,D
+ LD A,D
+ EX AF,AF'
+ ADC A,B
+ ADC A,B
+ ADC A,C
+ ADD A,B
+ LD SP,L1772
+ RET M
+ ADD A,B
+ LD SP,L1772
+ RET M
+ ADD A,C
+ JR C,L7A34 ; (-056H)
+ DEC SP
+ LD HL,(03180H)
+ LD (HL),D
+ RLA
+ RET M
+ XOR A
+ LD (L38D9),A
+ LD (L38D8),A
+ LD (06A80H),A
+ CALL L352F
+ CALL L4B38
+ LD A,B
+ OR C
+ JP Z,L1876
+ LD (038E2H),BC
+ LD A,(DE)
+ CP 020H
+ JR NZ,L7AB0 ; (+001H)
+ INC DE
+L7AB0: PUSH AF
+ LD HL,L6AC1
+ CALL 04795H
+ PUSH HL
+ LD HL,(038E2H)
+ LD E,L
+ LD D,H
+ CALL L6974
+ POP HL
+ POP AF
+ OR A
+ JP Z,0695CH
+ LD DE,L6AC1
+ OR A
+ SBC HL,DE
+ LD DE,00005H
+ ADD HL,DE
+ PUSH HL
+ LD BC,(038E2H)
+ LD HL,(06ABFH)
+ JR L7ADF ; (+005H)
+
+L7ADA: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ ADD HL,DE
+L7ADF: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ LD A,D
+ OR E
+ JR Z,L7AF5 ; (+00eH)
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ SBC HL,BC
+ DEC DE
+ DEC DE
+ DEC DE
+ EX DE,HL
+ JR C,L7ADA ; (-01bH)
+L7AF5: POP DE
+ CALL L68FB
+ JR L7B3D ; (+042H)
+
+ PUSH HL
+ LD HL,(L6AB7)
+ LD C,L
+ LD B,H
+ ADD HL,DE
+ JP C,L20B9
+ EX DE,HL
+ CALL L58DF
+ EX DE,HL
+ LD (L6AB7),HL
+ LD (038D3H),HL
+ LD HL,(038DAH)
+ ADD HL,DE
+ LD (038DAH),HL
+ LD HL,(06AB3H)
+ ADD HL,DE
+ LD (06AB3H),HL
+ LD HL,(L6AB5)
+ ADD HL,DE
+ LD (L6AB5),HL
+ POP HL
+ PUSH DE
+ EX DE,HL
+ LD L,C
+ LD H,B
+ LD BC,(06AB7H)
+L7B2E: LD A,(HL)
+ LD (BC),A
+ PUSH HL
+ OR A
+ SBC HL,DE
+ POP HL
+ JR Z,L7B3B ; (+004H)
+ DEC HL
+ DEC BC
+ JR L7B2E ; (-00dH)
+
+L7B3B: POP BC
+ RET
+
+L7B3D: ADD HL,BC
+ PUSH HL
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,(038E2H)
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ EX DE,HL
+ LD HL,L6AC1
+ PUSH BC
+ DEC BC
+ DEC BC
+ DEC BC
+ DEC BC
+ LDIR
+ POP BC
+ POP HL
+ LD A,(L38DF)
+ OR A
+ JP Z,L1876
+ LD DE,(038E4H)
+ LD HL,(038E2H)
+ ADD HL,DE
+ LD (038E2H),HL
+ JP NC,L1876
+ JP 0189FH
+
+ PUSH AF
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ LD C,L
+ LD B,H
+ LD HL,(06ABFH)
+L7B7D: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD A,E
+ OR D
+ JR NZ,L7B8D ; (+008H)
+L7B85: POP DE
+ POP HL
+ POP BC
+ POP AF
+ RET
+
+L7B8A: POP DE
+ JR L7B85 ; (-008H)
+
+L7B8D: EX DE,HL
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ LD (L69A7),HL
+ SBC HL,BC
+ POP HL
+ JR C,L7B7D ; (-022H)
+ DEC DE
+ DEC DE
+ DEC DE
+L7BA2: POP BC
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD HL,MONIT
+ SBC HL,BC
+ POP HL
+ JR Z,L7BCD ; (+01fH)
+ JR NC,L7B8A ; (-026H)
+L7BB0: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD A,D
+ OR E
+ JR Z,L7BCB ; (+013H)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ DEC DE
+ DEC DE
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ SBC HL,BC
+ POP HL
+ JR C,L7BB0 ; (-017H)
+ JR Z,L7BCD ; (+004H)
+ EX DE,HL
+ DEC HL
+L7BCB: DEC HL
+ DEC HL
+L7BCD: POP DE
+ PUSH DE
+ PUSH HL
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ LD HL,(06AB3H)
+ OR A
+ SBC HL,BC
+ LD (06AB3H),HL
+ LD HL,(038DAH)
+ OR A
+ SBC HL,BC
+ LD (038DAH),HL
+ LD HL,(L6AB5)
+ OR A
+ SBC HL,BC
+ LD (L6AB5),HL
+ POP HL
+ POP DE
+ PUSH BC
+ PUSH DE
+ PUSH DE
+ PUSH HL
+ EX DE,HL
+ LD HL,(L6AB7)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ POP HL
+ POP DE
+ LDIR
+ EX DE,HL
+ LD (L6AB7),HL
+ POP HL
+ POP BC
+ JP 06985H
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ SUB E
+ LD B,C
+ DS 68, 000H ; Zero/work area (158 bytes)
+ DB 008H
+ DS 89, 000H
+ DB 0CFH ; Splash screen / banner text
+ DB 06BH
+ DS 2, 00DH
+ DB 020H
+ DS 38, 0D8H
+ DS 5, 020H
+ DB "BASIC INTERPRETER"
+ DS 2, 020H
+ DB "1Z-013B V1.0A"
+ DS 4, 020H
+ DB 00DH
+ DS 3, 020H
+ DB "COPYRIGHT (C) 1983 BY SHARP CORP."
+ DS 5, 020H
+ DS 38, 0C2H
+ DB 020H,00DH," 36439 BYTES FR"
+ DS 2, 045H
+ DS 2, 00DH
+ DB 000H
+
+EXECSTART: XOR A ; Execution entry point
+ LD DE,MONIT
+ CALL TIMST
+L7D80: LD HL,(DTEFG)
+ LD (L1254),HL
+ LD DE,MONIT
+ LD HL,06B79H
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ LD HL,TAPECOPY
+ OUT (LSE0),A
+ LDIR
+ JP MONIT
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+BASICEND:
diff --git a/asm/cbios.asm b/asm/cbios.asm
index 1ebbc0f..071c31e 100644
--- a/asm/cbios.asm
+++ b/asm/cbios.asm
@@ -10,7 +10,7 @@
;-
;- Credits: Some of the comments and parts of the standard CPM deblocking/blocking algorithm
;- come from the Z80-MBC2 project, (C) SuperFabius.
-;- Copyright: (c) 2018-23 Philip Smart
+;- Copyright: (c) 2018-26 Philip Smart
;-
;- History: Jan 2020 - Seperated Bank from RFS for dedicated use with CPM CBIOS.
;- May 2020 - Advent of the new RFS PCB v2.0, quite a few changes to accommodate the
@@ -48,7 +48,7 @@
; Source File Size ROM Type Address Location Description
; cbios.asm 4K MROM (relocated CBIOS providing the CP/M API, initialisation routines, ROM Disk
; Monitor ROM from controller routines, Interrupt routines.
- ; 0x0000 - 0x0FFF) 0xC000 - 0xCFFF MRON Bank 2
+ ; 0x0000 - 0x0FFF) 0xC000 - 0xCFFF MROM Bank 2
; cbios_bank1.asm 2K Paged ROM 0xE800 - 0xEFFF, UROM Bank 8 Basic Sound and Melody, RTC, Keyboard and helper functionality.
; cbios_bank2.asm 2k Paged ROM 0xE800 - 0xEFFF, UROM Bank 9 Screen I/O and ANSI Terminal Parser.
; cbios_bank2.asm 2k Paged ROM 0xE800 - 0xEFFF, UROM Bank 10 SD Card Controller functionality.
@@ -87,26 +87,26 @@
; selected until the next public access call and the page changed accordingly.
; CBIOS Bank 1 - Utilities and Audio.
-BANK8: PUSH AF
- LD A,ROMBANK8
+BANK12: PUSH AF
+ LD A,ROMBANK12
LD (BNKSELUSER),A
POP AF
RET
; CBIOS Bank 2 - Screen / ANSI Terminal
-BANK9: PUSH AF
- LD A,ROMBANK9
+BANK13: PUSH AF
+ LD A,ROMBANK13
LD (BNKSELUSER),A
POP AF
RET
; CBIOS Bank 3 - SD Card.
-BANK10: PUSH AF
- LD A,ROMBANK10
+BANK14: PUSH AF
+ LD A,ROMBANK14
LD (BNKSELUSER),A
POP AF
RET
; CBIOS Bank 4
-BANK11: PUSH AF
- LD A,ROMBANK11
+BANK15: PUSH AF
+ LD A,ROMBANK15
LD (BNKSELUSER),A
POP AF
RET
@@ -139,7 +139,7 @@ BANKTOBANK_:LD (USRBANKSAV),A ; Save
BKTOBKRET: PUSH AF
LD A,(USRBANKSAV)
AND 00FH ; We just want the bank number we are returning to.
- LD (BNKSELUSER),A ; Switch back bank.
+ LD (BNKSELUSER),A ; Switch back bank.
POP AF ; Restore A and flags to pass back to caller.
RET
@@ -148,54 +148,54 @@ BKTOBKRET: PUSH AF
?REBOOT: LD A,(ROMCTL) ; Make sure Flash RAM I is active.
AND 03FH
LD (ROMCTL),A
- LD A,ROMBANK8 ; Method to exit CPM and return to the Sharp MZ80A Monitor.
+ LD A,ROMBANK12 ; Method to exit CPM and return to the Sharp MZ80A Monitor.
SCF
CALL SELUSRBNK ; Ensure Rom Control is enabled
JP QREBOOT ; Reboot has to take place from User ROM as the monitor ROM is swapped back to default position.
-?MLDY: CALL BANK8 ; Method to sound a melody given an input array of notes to play.
+?MLDY: CALL BANK12 ; Method to sound a melody given an input array of notes to play.
JP QMELDY
-?BEL: CALL BANK8 ; Method to sound a bell.
+?BEL: CALL BANK12 ; Method to sound a bell.
JP QBEL
-?TEMP: CALL BANK8 ; Method to set the playback tempo.
+?TEMP: CALL BANK12 ; Method to set the playback tempo.
JP QTEMP
-?MLDST: CALL BANK8 ; Method to start playing a melody.
+?MLDST: CALL BANK12 ; Method to start playing a melody.
JP QMSTA
-?MLDSP: CALL BANK8 ; Method to stop playing a melody.
+?MLDSP: CALL BANK12 ; Method to stop playing a melody.
JP QMSTP
-?MODE: CALL BANK8 ; Method to setup the 8255 PIO.
+?MODE: CALL BANK12 ; Method to setup the 8255 PIO.
JP QMODE
-?TIMESET: CALL BANK8 ; Method to setup the RTC.
+?TIMESET: CALL BANK12 ; Method to setup the RTC.
JP QTIMESET
-?TIMEREAD: CALL BANK8 ; Method to read the RTC.
+?TIMEREAD: CALL BANK12 ; Method to read the RTC.
JP QTIMEREAD
-?CHKKY: CALL BANK8 ; Method to see if a key has been pressed or available in the key buffer.
+?CHKKY: CALL BANK12 ; Method to see if a key has been pressed or available in the key buffer.
JP QCHKKY
-?GETKY: CALL BANK8 ; Method to get the next key from the key buffer or wait until one is pressed.
+?GETKY: CALL BANK12 ; Method to get the next key from the key buffer or wait until one is pressed.
JP QGETKY
; Public methods for User Rom CBIOS Bank 2 - Screen / ANSI Terminal functions.
-?PRNT: CALL BANK9 ; Print a character onto the screen at current X/Y location.
+?PRNT: CALL BANK13 ; Print a character onto the screen at current X/Y location.
JP QPRNT
-?PRTHX: CALL BANK9 ; Print register A onto screen as 2 hex digits.
+?PRTHX: CALL BANK13 ; Print register A onto screen as 2 hex digits.
JP QPRTHX
-?PRTHL: CALL BANK9 ; Print register HL onto screen as 4 hex digits.
+?PRTHL: CALL BANK13 ; Print register HL onto screen as 4 hex digits.
JP QPRTHL
-?ANSITERM: CALL BANK9 ; Send character into the ANSI terminal emulator and process.
+?ANSITERM: CALL BANK13 ; Send character into the ANSI terminal emulator and process.
JP QANSITERM
?NL: LD A,LF ; Print a newline.
@@ -206,45 +206,45 @@ BKTOBKRET: PUSH AF
; Public methods for User ROM CBIOS Bank 3 - SD Card functions.
-?SDINIT: CALL BANK10 ; Initialise the SD Card subsystem
+?SDINIT: CALL BANK14 ; Initialise the SD Card subsystem
JP SD_INIT
-?SDREAD: CALL BANK10 ; Read a full or partial sector (512 bytes).
+?SDREAD: CALL BANK14 ; Read a full or partial sector (512 bytes).
JP SD_READ
-?SDWRITE: CALL BANK10 ; Write a full or partial sector (512 bytes).
+?SDWRITE: CALL BANK14 ; Write a full or partial sector (512 bytes).
JP SD_WRITE
-?SDGETLBA: CALL BANK10 ; Get the LBA address for the given CPM Track and Sector.
+?SDGETLBA: CALL BANK14 ; Get the LBA address for the given CPM Track and Sector.
JP SD_GETLBA
-?SDCREAD: CALL BANK10 ; Read a CPM host sector according to stored values (512 bytes).
+?SDCREAD: CALL BANK14 ; Read a CPM host sector according to stored values (512 bytes).
JP SDC_READ
-?SDCWRITE: CALL BANK10 ; Write a CPM host sector according to stored values (512 bytes).
+?SDCWRITE: CALL BANK14 ; Write a CPM host sector according to stored values (512 bytes).
JP SDC_WRITE
; Public methods for User ROM CBIOS Bank 4 - Floppy Disk Controller functions.
-?DSKINIT: CALL BANK11 ; Initialise the disk system.
+?DSKINIT: CALL BANK15 ; Initialise the disk system.
JP QDSKINIT
-?SETDRVCFG: CALL BANK11 ; Set the drive configuration.
+?SETDRVCFG: CALL BANK15 ; Set the drive configuration.
JP QSETDRVCFG
-?SETDRVMAP: CALL BANK11 ; Set the drive mapping, ie. CPM Drive C is FDC Drive.
+?SETDRVMAP: CALL BANK15 ; Set the drive mapping, ie. CPM Drive C is FDC Drive.
JP QSETDRVMAP
-?SELDRIVE: CALL BANK11 ; Select the requested drive and turn on motor.
+?SELDRIVE: CALL BANK15 ; Select the requested drive and turn on motor.
JP QSELDRIVE
-?GETMAPDSK: CALL BANK11 ; Map the CPM Disk to an actual controller + disk number.
+?GETMAPDSK: CALL BANK15 ; Map the CPM Disk to an actual controller + disk number.
JP QGETMAPDSK
-?DSKREAD: CALL BANK11 ; Read a sector from the selected disk
+?DSKREAD: CALL BANK15 ; Read a sector from the selected disk
JP QDSKREAD
-?DSKWRITE: CALL BANK11 ; Write a sector to the selected disk
+?DSKWRITE: CALL BANK15 ; Write a sector to the selected disk
JP QDSKWRITE
@@ -310,7 +310,7 @@ INIT3: LD A,(BNKCTRLRST)
LD A,BNKCTRLDEF ; Set coded latch, SDCS high, BBMOSI to high and BBCLK to high which enables SDCLK.
LD (BNKCTRL),A
LD (ROMCTL),A ; Save to memory the value in the bank control register - this register is used for SPI etc so need to remember its setting.
- LD A,ROMBANK9 ; Screen Bank.
+ LD A,ROMBANK13 ; Screen Bank.
LD (BNKSELUSER),A
; Setup keyboard buffer control.
@@ -585,7 +585,7 @@ WBOOT_: DI
LD DE,CPMBIOS-CBASE ; Only want to load in CCP and BDOS.
LD BC,(CPMROMLOC) ; Load up the Bank and Page where the CPM Image can be found.
CALL UROMLOAD
- LD A,ROMBANK9 ; Screen Bank.
+ LD A,ROMBANK13 ; Screen Bank.
LD (BNKSELUSER),A
JP Z,CPMINIT ; Initialise CPM and run.
LD DE,NOBDOS
@@ -2648,7 +2648,7 @@ FINDMZFYES: LD A,(ROMCTL)
XOR A ; Clear Z flag to indicate we found the file and BC points to it.
;
FINDMZFNO: PUSH AF ; Preserve flags.
- LD A,ROMBANK9
+ LD A,ROMBANK13
SCF ; Select the required user bank and Set carry so that the control registers remain enabled.
CALL SELUSRBNK
POP AF
@@ -2793,7 +2793,7 @@ LROMLOAD5: PUSH AF
LD A,(ROMCTL)
AND 03FH
LD (ROMCTL),A ; Switch back to primary Flash RAM I device.
- LD A,ROMBANK9
+ LD A,ROMBANK13
SCF ; Select the required user bank and Set carry so that the control registers remain enabled.
CALL SELUSRBNK
POP AF
@@ -3573,9 +3573,9 @@ INFOMSG5: DB ",SP=", 000H
CBIOSSIGNON:IF BUILD_80C = 1
- DB "** CBIOS v1.26, (C) P.D. Smart, 2019-23. Drives:", NUL
+ DB "** CBIOS v1.27, (C) P.D. Smart, 2019-26. Drives:", NUL
ELSE
- DB "CBIOS v1.26, (C) P.D. Smart, 2019-23. "
+ DB "CBIOS v1.27, (C) P.D. Smart, 2019-26. "
DB "Drives:", NUL
ENDIF
CBIOSIGNEND:IF BUILD_80C = 1
diff --git a/asm/cbios_bank1.asm b/asm/cbios_bank1.asm
index 425f9da..d854b65 100644
--- a/asm/cbios_bank1.asm
+++ b/asm/cbios_bank1.asm
@@ -9,7 +9,7 @@
;- CPM TPA programs.
;-
;- Credits:
-;- Copyright: (c) 2018-23 Philip Smart
+;- Copyright: (c) 2018-26 Philip Smart
;-
;- History: Jan 2020 - Seperated Bank from RFS for dedicated use with CPM CBIOS.
;- May 2020 - Advent of the new RFS PCB v2.0, quite a few changes to accommodate the
@@ -346,7 +346,15 @@ OPTBL: DB 001H
;
LD HL,CONTF
LD (HL),074H ; Set Counter 1, read/load lsb first then msb, mode 2 rate generator, binary
- LD (HL),0B0H ; Set Counter 2, read/load lsb first then msb, mode 0 interrupt on terminal count, binary
+ IF BUILD_MZ80A = 1
+ LD (HL),0B0H ; Set Counter 2, read/load lsb first then msb, mode 0 interrupt on terminal count, binary
+ ENDIF
+ IF BUILD_MZ700 = 1
+ LD (HL),0B0H ; Set Counter 2, read/load lsb first then msb, mode 0 interrupt on terminal count, binary
+ ENDIF
+ IF BUILD_MZ1500 = 1
+ LD (HL),0B0H ; Set Counter 2, read/load lsb first then msb, mode 0 interrupt on terminal count, binary
+ ENDIF
DEC HL
LD DE,TMRTICKINTV ; 100Hz coming into Timer 2 from Timer 1, set divisor to set interrupts per second.
LD (HL),E ; Place current time in Counter 2
@@ -414,7 +422,11 @@ OPTBL: DB 001H
LD (HL),074H ; Set Counter 1, read/load lsb first then msb, mode 2 rate generator, binary
LD (HL),0B0H ; Set Counter 2, read/load lsb first then msb, mode 0 interrupt on terminal count, binary
DEC HL
- LD DE,0FFFFH ; 100Hz coming into Timer 2 from Timer 1, set divisor to maximum, ie. set interrupts per second.
+ IF BUILD_KUMA = 1
+ LD DE,0FFFFH ; We dont want interrupts if KUMA enabled as it is using the INTEN line.
+ ELSE
+ LD DE,TMRTICKINTV ; 100Hz coming into Timer 2 from Timer 1, set divisor to set interrupts per second.
+ ENDIF
LD (HL),E ; Place current time in Counter 2
LD (HL),D
DEC HL
diff --git a/asm/cbios_bank2.asm b/asm/cbios_bank2.asm
index e657eeb..34cbce1 100644
--- a/asm/cbios_bank2.asm
+++ b/asm/cbios_bank2.asm
@@ -12,7 +12,7 @@
; Ansi Parser.
;
; (C) Oct 2000 - only the ansiterm.22b module was used with a lot stripped out.
-;- Copyright: (c) 2018-23 Philip Smart
+;- Copyright: (c) 2018-26 Philip Smart
;-
;- History: Jan 2020 - Seperated Bank from RFS for dedicated use with CPM CBIOS.
;- May 2020 - Advent of the new RFS PCB v2.0, quite a few changes to accommodate the
@@ -1085,9 +1085,9 @@ CUF: CALL GetNumber ; Numbe
LD B,1 ; Default
CUFget: LD A,(DSPXY) ; A <- Column
ADD A,B ; Add movement.
- CP 80 ; Too far?
+ CP COLW ; Too far?
JR C,CUF2
- LD A,79 ; Yes, right edge
+ LD A,COLW-1 ; Yes, right edge
CUF2: LD (DSPXY),A ; Column <- A
JP ANSIEXIT
@@ -1125,7 +1125,7 @@ CUP: CALL GetNumber
CALL Z,DefaultColumn
CP 254 ; Sequence End -> 1
CALL Z,DefaultColumn
- CP 81 ; Out of range, then don't move
+ CP COLW+1 ; Out of range, then don't move
JP NC,ANSIEXIT
OR A
CALL Z,DefaultColumn ; 0 means go with default
@@ -1184,13 +1184,13 @@ ED1: LD HL,(DSPXY) ; Get a
OR A ; Do we have any lines to add?
JR Z,ED1_2 ; If no bypass that addition!
LD B,A ; Number of lines to count
- LD DE,80
+ LD DE,COLW
ED1_1: ADD HL,DE
DJNZ ED1_1
ED1_2: EX DE,HL ; Value into DE
POP HL
- LD A,80
- SUB L ; 80 - Columns
+ LD A,COLW
+ SUB L ; COLW - Columns
LD L,A ; Add to value before
LD H,0
ADD HL,DE
@@ -1210,7 +1210,7 @@ ED2: LD HL,(DSPXY) ; Get a
OR A ; Do we have any lines to add?
JR Z,ED2_2 ; If no bypass that addition!
LD B,A ; Number of lines
- LD DE,80
+ LD DE,COLW
ED2_1: ADD HL,DE
DJNZ ED2_1
ED2_2: EX DE,HL ; Value into DE
@@ -1243,14 +1243,14 @@ EL: CALL GetNumber ; Get v
LD L,0
LD (DSPXY),HL
CALL CALCSCADDR
- LD BC,80 ; 80 bytes to clear (whole line)
+ LD BC,COLW ; COLW bytes to clear (whole line)
CALL CLRSCRN
JP ANSIEXIT
;*** Option 0 - Clear from Cursor to end of line.
;
EL1: LD HL,(DSPXY)
- LD A,80 ; Calculate distance to end of line
+ LD A,COLW ; Calculate distance to end of line
SUB L
LD C,A
LD B,0
@@ -1284,7 +1284,7 @@ CALCSCADDR: PUSH AF
LD HL,SCRN
OR A
JR Z,CALC3
- LD DE,80
+ LD DE,COLW
CALC2: ADD HL,DE
DJNZ CALC2
CALC3: POP DE
diff --git a/asm/cbios_bank3.asm b/asm/cbios_bank3.asm
index fac0c37..bce97dd 100644
--- a/asm/cbios_bank3.asm
+++ b/asm/cbios_bank3.asm
@@ -9,7 +9,7 @@
;- CPM TPA programs.
;-
;- Credits:
-;- Copyright: (c) 2018-23 Philip Smart
+;- Copyright: (c) 2018-26 Philip Smart
;-
;- History: Jan 2020 - Seperated Bank from RFS for dedicated use with CPM CBIOS.
;- May 2020 - Advent of the new RFS PCB v2.0, quite a few changes to accommodate the
@@ -795,7 +795,7 @@ ADD32: LD BC,(SDSTARTSEC+2)
; DEHL = LBA on SD Card for the desired sector.
;
?SD_GETLBA: PUSH AF ; If needed, pass A and flags via the stack. NB This push is removed by BANKTOBANK so no need to pop after the call.
- LD A,ROMBANK11 << 4 | ROMBANK10 ; Calling a function in Bank 11 (CBIOS Bank 4) and returning to current bank 10 (CBIOS Bank 3).
+ LD A,ROMBANK15 << 4 | ROMBANK14 ; Calling a function in Bank 11 (CBIOS Bank 4) and returning to current bank 10 (CBIOS Bank 3).
LD HL,QGETMAPDSK ; Calling the map disk function.
CALL BANKTOBANK ; Now make a bank to bank function call.
CP 0FFH
diff --git a/asm/cbios_bank4.asm b/asm/cbios_bank4.asm
index d540a8c..d8b9960 100644
--- a/asm/cbios_bank4.asm
+++ b/asm/cbios_bank4.asm
@@ -9,7 +9,7 @@
;- CPM TPA programs.
;-
;- Credits:
-;- Copyright: (c) 2018-23 Philip Smart
+;- Copyright: (c) 2018-26 Philip Smart
;-
;- History: Jan 2020 - Seperated Bank from RFS for dedicated use with CPM CBIOS.
;- May 2020 - Advent of the new RFS PCB v2.0, quite a few changes to accommodate the
@@ -607,7 +607,7 @@ HOLPRTSTR: LD A,(DE)
INC DE
HOLPRTSTR2: LD HL,QPRNT
PUSH AF
- LD A,ROMBANK9 << 4 | ROMBANK11 ; Call CBIOS Bank 2 from CBIOS Bank 4
+ LD A,ROMBANK13 << 4 | ROMBANK15 ; Call CBIOS Bank 2 from CBIOS Bank 4
CALL BANKTOBANK
JR HOLPRTSTR
HOLERR3: XOR A
diff --git a/asm/cpm22-bios.asm b/asm/cpm22-bios.asm
index ee74e5a..74e633f 100644
--- a/asm/cpm22-bios.asm
+++ b/asm/cpm22-bios.asm
@@ -10,7 +10,7 @@
;-
;- Credits: Some of the comments and parts of the deblocking/blocking algorithm come from the
; Z80-MBC2 project, (C) SuperFabius.
-;- Copyright: (c) 2020-2023 Philip Smart
+;- Copyright: (c) 2020-2026 Philip Smart
;-
;- History: January 2020 - Initial creation.
;-
diff --git a/asm/include/cpm_definitions.asm b/asm/include/cpm_definitions.asm
index 7812981..c133243 100644
--- a/asm/include/cpm_definitions.asm
+++ b/asm/include/cpm_definitions.asm
@@ -17,6 +17,7 @@
;- Apr 2021 - Removed ROM and RAM Drive functionality as it provided no performance or
;- use benefit over SD which are much larger and RW.
;- May 2023 - Updates to accommodate RFS use on a FusionX board.
+;- Feb 2026 - Updates to accommodate RFS on the picoZ80.
;-
;--------------------------------------------------------------------------------------------------------
;- This source file is free software: you can redistribute it and-or modify
@@ -42,11 +43,11 @@ PP_SPI_ENA EQU 0 ; Set t
; Build time options, only set to '1' to build, '0' to disable, only set one 40C/80C at a time. Set KUMA 80C option if Kuma upgrade being targetted otherwise will default to 40/80 column card.
; IF BUILD_VERSION = 0
-BUILD_80C EQU 1 ; Build for an MZ-80A with a 40/80 column card.
-BUILD_40C EQU 0 ; Build for a standard 40 column MZ-80A.
+BUILD_80C EQU 0 ; Build for an MZ-80A with a 40/80 column card.
+BUILD_40C EQU 1 ; Build for a standard 40 column MZ-80A.
BUILD_KUMA EQU 0 ; Enable support for the Kuma 40/80 column upgrade.
-BUILD_MZ80A EQU 1 ; Build for the Sharp MZ-80A base hardware.
-BUILD_MZ700 EQU 0 ; Build for the Sharp MZ-700 base hardware.
+BUILD_MZ80A EQU 0 ; Build for the Sharp MZ-80A base hardware.
+BUILD_MZ700 EQU 1 ; Build for the Sharp MZ-700 base hardware.
BUILD_MZ1500 EQU 0 ; Build for the Sharp MZ-1500 base hardware.
; ENDIF
@@ -286,23 +287,25 @@ RAMDRVMAXBANK EQU (RAMDRVSIZE * 1024)/UROMSIZE ; Maxim
; 8-15 are reserved for CPM code in
; the User ROM bank.
;-----------------------------------------------
-MROMPAGES EQU 8
-USRROMPAGES EQU 12 ; Monitor ROM : User ROM
-ROMBANK0 EQU 0 ; MROM SA1510 40 Char : RFS Bank 0 - Main RFS Entry point and functions.
-ROMBANK1 EQU 1 ; MROM SA1510 80 Char : RFS Bank 1 - Floppy disk controller and utilities.
-ROMBANK2 EQU 2 ; CPM 2.2 CBIOS : RFS Bank 2 - SD Card controller and utilities.
-ROMBANK3 EQU 3 ; RFS Utilities : RFS Bank 3 - Cmdline tools (Memory, Printer, Help)
-ROMBANK4 EQU 4 ; Free : RFS Bank 4 - CMT Utilities.
-ROMBANK5 EQU 5 ; Free : RFS Bank 5
-ROMBANK6 EQU 6 ; Free : RFS Bank 6
-ROMBANK7 EQU 7 ; Free : RFS Bank 7 - Memory and timer test utilities.
-ROMBANK8 EQU 8 ; : CBIOS Bank 1 - Utilities
-ROMBANK9 EQU 9 ; : CBIOS Bank 2 - Screen / ANSI Terminal
-ROMBANK10 EQU 10 ; : CBIOS Bank 3 - SD Card
-ROMBANK11 EQU 11 ; : CBIOS Bank 4 - Floppy disk controller.
-
-
-
+MROMPAGES EQU 16
+USRROMPAGES EQU 16 ; Monitor ROM : User ROM
+ROMBANK0 EQU 0 ; MROM SA1510 40 Char : RFS Bank 0 - Main RFS Entry point and functions.
+ROMBANK1 EQU 1 ; MROM SA1510 80 Char : RFS Bank 1 - Floppy disk controller and utilities.
+ROMBANK2 EQU 2 ; CPM 2.2 CBIOS : RFS Bank 2 - SD Card controller and utilities.
+ROMBANK3 EQU 3 ; RFS Utilities : RFS Bank 3 - Cmdline tools (Memory, Printer, Help)
+ROMBANK4 EQU 4 ; MZ700 1Z-013A 40C : RFS Bank 4 - CMT Utilities.
+ROMBANK5 EQU 5 ; MZ700-1Z-013A 80C : RFS Bank 5
+ROMBANK6 EQU 6 ; DASM/ASM Opcode Tbl1: RFS Bank 6
+ROMBANK7 EQU 7 ; DASM/ASM Opcode Tbl2: RFS Bank 7 - Memory and timer test utilities + DASM.
+ROMBANK8 EQU 8 ; MZ80B IPL : RFS Bank 8 - Assembler.
+ROMBANK9 EQU 9 ; Free : RFS Bank 9 -
+ROMBANK10 EQU 10 ; Free : RFS Bank 10 -
+ROMBANK11 EQU 11 ; Free : RFS Bank 11 -
+ROMBANK12 EQU 12 ; Free : CBIOS Bank 1 - Utilities
+ROMBANK13 EQU 13 ; Free : CBIOS Bank 2 - Screen / ANSI Terminal
+ROMBANK14 EQU 14 ; Free : CBIOS Bank 3 - SD Card
+ROMBANK15 EQU 15 ; Free : CBIOS Bank 4 - Floppy disk controller.
+
OBJCD EQU 001h
;-----------------------------------------------
diff --git a/asm/include/macros.asm b/asm/include/macros.asm
index bbf6396..1e93ac7 100644
--- a/asm/include/macros.asm
+++ b/asm/include/macros.asm
@@ -34,7 +34,7 @@ ALIGN_FIT8: MACRO ?size
ENDM
HWSELROM: MACRO
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
LD B,16 ; If we read the bank control reset register 15 times then this will enable bank control and then the 16th read will reset all bank control registers to default.
HWSEL1: LD A,(BNKCTRLRST)
DJNZ HWSEL1 ; Apply the default number of coded latch reads to enable the bank control registers.
@@ -70,7 +70,7 @@ HWSEL11: OUT (REG_FXXX),A
ENDM
HWSELROM2: MACRO
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
LD B,16 ; If we read the bank control reset register 15 times then this will enable bank control and then the 16th read will reset all bank control registers to default.
HWSEL2: LD A,(BNKCTRLRST)
DJNZ HWSEL2 ; Apply the default number of coded latch reads to enable the bank control registers.
@@ -112,7 +112,7 @@ HWSEL21: OUT (REG_FXXX),A
; On the SFD700 board, for ease of coding as the Monitor ROM doesnt exist but the Floppy ROM F000:FFFF window does,
; then on this board, MROM refers to the F000:FFFF window when working with code which is compatible across the RomDisk, SFD700 etc..
HWSELMROM: MACRO
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
LD (BNKSELMROM),A
ENDIF
IF BUILD_SFD700 = 1
@@ -123,7 +123,7 @@ HWSELMROM: MACRO
; Macro to perform the in-situ bank switch. RomDisk it is a simple register load, for the SFD700
; depending on the target bank, we need to bring in the complimentary FXXX bank as needed.
BNKSWSEL: MACRO
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
LD (BNKSELUSER),A
ENDIF
IF BUILD_SFD700 = 1
@@ -139,7 +139,7 @@ BNKSWJMP2: OUT (REG_FXXX),A
; Macro to return from a bank switch.
BNKSWSELRET:MACRO
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
LD (BNKSELUSER),A
ENDIF
IF BUILD_SFD700 = 1
@@ -151,7 +151,7 @@ BNKSWSELRET:MACRO
; Macro to select which part of the FlashROM appears in the User ROM E800:EFFF window.
HWSELUROM: MACRO
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
LD (BNKSELUSER),A
ENDIF
IF BUILD_SFD700 = 1
@@ -161,7 +161,7 @@ HWSELUROM: MACRO
; Macro which is generally specific to the RomDisk, the code enables the Bank paging registers.
SETCODELTCH:MACRO
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
LD A,BNKCTRLDEF ; Set coded latch, SDCS high, BBMOSI to high and BBCLK to high which enables SDCLK.
LD (ROMCTL),A ; Save to memory the value in the bank control register - this register is used for SPI etc so need to remember its setting.
ENDIF
diff --git a/asm/include/msbasic_definitions.asm b/asm/include/msbasic_definitions.asm
index 1b6bada..e928727 100644
--- a/asm/include/msbasic_definitions.asm
+++ b/asm/include/msbasic_definitions.asm
@@ -46,7 +46,7 @@
; Build options. Set just one to '1' the rest to '0'.
; NB: As there are now 4 versions and 1 or more need to be built, ie. MZ-80A and RFS version for RFS, a flag is set in the file
; BASIC_build.asm which configures the equates below for the correct build.
-BUILD_KUMA EQU 1 ; Enable support for Kuma 40/80 column upgrade.
+BUILD_KUMA EQU 0 ; Enable support for Kuma 40/80 column upgrade.
; MZ-80A Build
IF BUILD_VERSION = 0
@@ -56,6 +56,8 @@ BUILD_RFSTZ EQU 0 ; Build
BUILD_TZFS EQU 0 ; Build for TZFS where extended memory is available.
BUILD_80C EQU 0
INCLUDE_ANSITERM EQU 1 ; Include the Ansi terminal emulation processor in the build.
+BUILD_MZ700 EQU 0 ; Build to target MZ-700.
+BUILD_MZ1500 EQU 0 ; Build to target MZ-1500.
ENDIF
; RFS 40 Build
IF BUILD_VERSION = 1
@@ -65,6 +67,8 @@ BUILD_RFSTZ EQU 0
BUILD_TZFS EQU 0
BUILD_80C EQU 0
INCLUDE_ANSITERM EQU 1 ; Include the Ansi terminal emulation processor in the build.
+BUILD_MZ700 EQU 1 ; Build to target MZ-700.
+BUILD_MZ1500 EQU 0 ; Build to target MZ-1500.
ENDIF
; RFS 80 Build
IF BUILD_VERSION = 2
@@ -74,6 +78,8 @@ BUILD_RFSTZ EQU 0
BUILD_TZFS EQU 0
BUILD_80C EQU 1
INCLUDE_ANSITERM EQU 1 ; Include the Ansi terminal emulation processor in the build.
+BUILD_MZ700 EQU 1 ; Build to target MZ-700.
+BUILD_MZ1500 EQU 0 ; Build to target MZ-1500.
ENDIF
; RFS/TZ Build
IF BUILD_VERSION = 3
@@ -83,6 +89,8 @@ BUILD_RFSTZ EQU 1
BUILD_TZFS EQU 0
BUILD_80C EQU 1
INCLUDE_ANSITERM EQU 1 ; Include the Ansi terminal emulation processor in the build.
+BUILD_MZ700 EQU 1 ; Build to target MZ-700.
+BUILD_MZ1500 EQU 0 ; Build to target MZ-1500.
ENDIF
; TZFS Build
IF BUILD_VERSION = 4
@@ -92,6 +100,8 @@ BUILD_RFSTZ EQU 0
BUILD_TZFS EQU 1
BUILD_80C EQU 1
INCLUDE_ANSITERM EQU 1 ; Include the Ansi terminal emulation processor in the build.
+BUILD_MZ700 EQU 0 ; Build to target MZ-700.
+BUILD_MZ1500 EQU 0 ; Build to target MZ-1500.
ENDIF
IF BUILD_80C = 1
COLW: EQU 80 ; Width of the display screen (ie. columns).
@@ -127,7 +137,7 @@ ENADEBUG EQU 0 ; Enabl
; RFS ROM addresses.
UROMADDR EQU 0E800H ; Start of User ROM Address space.
UROMBSTBL EQU UROMADDR + 020H ; Entry point to the bank switching table.
-RFSJMPTABLE EQU UROMADDR + 000B0H ; Start of jump table.
+RFSJMPTABLE EQU UROMADDR + 000A0H ; Start of jump table.
;-----------------------------------------------
; CMT Object types.
@@ -349,21 +359,26 @@ RESULT: EQU BUFER+50+30 ; Resul
; 8-15 are reserved for CPM code in
; the User ROM bank.
;--------------------------------------------------
-MROMPAGES EQU 8
-USRROMPAGES EQU 12 ; Monitor ROM : User ROM
-ROMBANK0 EQU 0 ; MROM SA1510 40 Char : RFS Bank 0 - Main RFS Entry point and functions.
-ROMBANK1 EQU 1 ; MROM SA1510 80 Char : RFS Bank 1 - Floppy disk controller and utilities.
-ROMBANK2 EQU 2 ; CPM 2.2 CBIOS : RFS Bank 2 - SD Card controller and utilities.
-ROMBANK3 EQU 3 ; RFS Utilities : RFS Bank 3 - Cmdline tools (Memory, Printer, Help)
-ROMBANK4 EQU 4 ; MZ700 1Z-013A 40C : RFS Bank 4 - CMT Utilities.
-ROMBANK5 EQU 5 ; MZ700-1Z-013A 80C : RFS Bank 5
-ROMBANK6 EQU 6 ; MZ-80B IPL : RFS Bank 6
-ROMBANK7 EQU 7 ; Free : RFS Bank 7 - Memory and timer test utilities.
-ROMBANK8 EQU 8 ; : CBIOS Bank 1 - Utilities
-ROMBANK9 EQU 9 ; : CBIOS Bank 2 - Screen / ANSI Terminal
-ROMBANK10 EQU 10 ; : CBIOS Bank 3 - SD Card
-ROMBANK11 EQU 11 ; : CBIOS Bank 4 - Floppy disk controller.
+MROMPAGES EQU 16
+USRROMPAGES EQU 16 ; Monitor ROM : User ROM
+ROMBANK0 EQU 0 ; MROM SA1510 40 Char : RFS Bank 0 - Main RFS Entry point and functions.
+ROMBANK1 EQU 1 ; MROM SA1510 80 Char : RFS Bank 1 - Floppy disk controller and utilities.
+ROMBANK2 EQU 2 ; CPM 2.2 CBIOS : RFS Bank 2 - SD Card controller and utilities.
+ROMBANK3 EQU 3 ; RFS Utilities : RFS Bank 3 - Cmdline tools (Memory, Printer, Help)
+ROMBANK4 EQU 4 ; MZ700 1Z-013A 40C : RFS Bank 4 - CMT Utilities.
+ROMBANK5 EQU 5 ; MZ700-1Z-013A 80C : RFS Bank 5
+ROMBANK6 EQU 6 ; DASM/ASM Opcode Tbl1: RFS Bank 6
+ROMBANK7 EQU 7 ; DASM/ASM Opcode Tbl2: RFS Bank 7 - Memory and timer test utilities + DASM.
+ROMBANK8 EQU 8 ; MZ80B IPL : RFS Bank 8 - Assembler.
+ROMBANK9 EQU 9 ; Free : RFS Bank 9 -
+ROMBANK10 EQU 10 ; Free : RFS Bank 10 -
+ROMBANK11 EQU 11 ; Free : RFS Bank 11 -
+ROMBANK12 EQU 12 ; Free : CBIOS Bank 1 - Utilities
+ROMBANK13 EQU 13 ; Free : CBIOS Bank 2 - Screen / ANSI Terminal
+ROMBANK14 EQU 14 ; Free : CBIOS Bank 3 - SD Card
+ROMBANK15 EQU 15 ; Free : CBIOS Bank 4 - Floppy disk controller.
+
;-----------------------------------------------
; IO ports in hardware and values.
;-----------------------------------------------
diff --git a/asm/include/rfs_definitions.asm b/asm/include/rfs_definitions.asm
index 99cd1ad..656f8c7 100644
--- a/asm/include/rfs_definitions.asm
+++ b/asm/include/rfs_definitions.asm
@@ -22,6 +22,7 @@
;- Aug 2023 - Updates to make RFS run under the SFD700 Floppy Disk Interface board.
;- UROM remains the same, a 2K paged ROM, MROM is located at F000 when
;- RFS is built for the SFD700.
+;- Feb 2026 - Updates to accommodate RFS on the picoZ80.
;-
;--------------------------------------------------------------------------------------------------------
;- This source file is free software: you can redistribute it and-or modify
@@ -47,10 +48,13 @@ PP_SPI_ENA EQU 0 ; Set t
FUSIONX_ENA EQU 0 ; Set to 1 if using RFS on the tranZPUter FusionX board.
KUMA80_ENA EQU 0 ; Target has Kuma 40/80 upgrade installed.
VIDEOMODULE_ENA EQU 0 ; Target has 40/80 column colour video module installed.
+; Only enable one BUILD_<> operative. Customisations applied according
+; to the target.
BUILD_ROMDISK EQU 0 ; RFS is built for the MZ-80A RomDisk card.
-BUILD_SFD700 EQU 1 ; RFS is built for the SFD700 Floppy Disk Controller.
-;BUILD_MZ80A EQU 0 ; RFS is customised to operate on an MZ-80A.
-;BUILD_MZ700 EQU 1 ; RFS is customised to operate on an MZ-700.
+BUILD_SFD700 EQU 0 ; RFS is built for the SFD700 Floppy Disk Controller.
+BUILD_PICOZ80 EQU 1 ; RFS is built for the SFD700 Floppy Disk Controller.
+BUILD_MZ80A EQU 0 ; RFS is customised to operate on an MZ-80A.
+BUILD_MZ700 EQU 1 ; RFS is customised to operate on an MZ-700.
; Debugging
ENADEBUG EQU 0 ; Enable debugging logic, 1 = enable, 0 = disable
@@ -60,7 +64,7 @@ ENADEBUG EQU 0 ; Enabl
;-----------------------------------------------
UROMADDR EQU 0E800H ; Start of User ROM Address space.
UROMBSTBL EQU UROMADDR + 020H ; Entry point to the bank switching table.
-RFSJMPTABLE EQU UROMADDR + 000B0H ; Start of jump table.
+RFSJMPTABLE EQU UROMADDR + 000A0H ; Start of jump table.
FDCROMADDR EQU 0F000H
IF BUILD_SFD700 = 1
@@ -260,6 +264,13 @@ CPUINFO EQU 06DH ; Versi
CPLDCFG EQU 06EH ; Version 2.1 CPLD configuration register.
CPLDSTATUS EQU 06EH ; Version 2.1 CPLD status register.
CPLDINFO EQU 06FH ; Version 2.1 CPLD version information register.
+;
+; QD Interface SIO ports (MZ-1E14/MZ-1E19)
+;
+SIOA_DATA EQU 0F4H ; SIO Channel A Data (QD data read/write)
+SIOA_CTRL EQU 0F6H ; SIO Channel A Control (sync/hunt control)
+SIOB_CTRL EQU 0F7H ; SIO Channel B Control (motor control)
+;
MMIO0 EQU 0E0H ; MZ-700/MZ-800 Memory Management Set 0
MMIO1 EQU 0E1H ; MZ-700/MZ-800 Memory Management Set 1
MMIO2 EQU 0E2H ; MZ-700/MZ-800 Memory Management Set 2
@@ -352,7 +363,7 @@ RFSSECTSZ EQU 256
MROMSIZE EQU 4096
UROMSIZE EQU 2048
FNSIZE EQU 17
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
MROMSTART: EQU 00000H
ENDIF
IF BUILD_SFD700 = 1
@@ -376,40 +387,48 @@ MROMLOAD: EQU MROMJMPTBL + 00006H
; 8-15 are reserved for CPM code in
; the User ROM bank.
;-----------------------------------------------
- IF BUILD_ROMDISK = 1
-MROMPAGES EQU 8
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+MROMPAGES EQU 16
ENDIF
IF BUILD_SFD700 = 1
-MROMPAGES EQU 12 ; 10 Pages (8 but Bank6/7 are 2 pages) + 2 pages for ROMs
+MROMPAGES EQU 16 ; 14 Pages (8 but Bank6/7 are 2 pages) + 2 pages for ROMs
ENDIF
-USRROMPAGES EQU 12 ; Monitor ROM : User ROM
- IF BUILD_ROMDISK = 1
-ROMBANK0 EQU 0 ; MROM SA1510 40 Char : RFS Bank 0 - Main RFS Entry point and functions.
-ROMBANK1 EQU 1 ; MROM SA1510 80 Char : RFS Bank 1 - Floppy disk controller and utilities.
-ROMBANK2 EQU 2 ; CPM 2.2 CBIOS : RFS Bank 2 - SD Card controller and utilities.
-ROMBANK3 EQU 3 ; RFS Utilities : RFS Bank 3 - Cmdline tools (Memory, Printer, Help)
-ROMBANK4 EQU 4 ; MZ700 1Z-013A 40C : RFS Bank 4 - CMT Utilities.
+USRROMPAGES EQU 16 ; Monitor ROM : User ROM
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+ROMBANK0 EQU 0 ; MROM SA1510 40 Char : RFS Bank 0 - Main RFS Entry point and functions.
+ROMBANK1 EQU 1 ; MROM SA1510 80 Char : RFS Bank 1 - Floppy disk controller and utilities.
+ROMBANK2 EQU 2 ; CPM 2.2 CBIOS : RFS Bank 2 - SD Card controller and utilities.
+ROMBANK3 EQU 3 ; RFS Utilities : RFS Bank 3 - Cmdline tools (Memory, Printer, Help)
+ROMBANK4 EQU 4 ; MZ700 1Z-013A 40C : RFS Bank 4 - CMT Utilities.
ROMBANK5 EQU 5 ; MZ700-1Z-013A 80C : RFS Bank 5
-ROMBANK6 EQU 6 ; MZ-80B IPL : RFS Bank 6
-ROMBANK7 EQU 7 ; Free : RFS Bank 7 - Memory and timer test utilities.
-ROMBANK8 EQU 8 ; : CBIOS Bank 1 - Utilities
-ROMBANK9 EQU 9 ; : CBIOS Bank 2 - Screen / ANSI Terminal
-ROMBANK10 EQU 10 ; : CBIOS Bank 3 - SD Card
-ROMBANK11 EQU 11 ; : CBIOS Bank 4 - Floppy disk controller.
+ROMBANK6 EQU 6 ; DASM/ASM Opcode Tbl1: RFS Bank 6
+ROMBANK7 EQU 7 ; DASM/ASM Opcode Tbl2: RFS Bank 7 - Memory and timer test utilities + DASM.
+ROMBANK8 EQU 8 ; MZ80B IPL : RFS Bank 8 - Assembler.
+ROMBANK9 EQU 9 ; MROM Messages : RFS Bank 9 - Message strings for PRINTMSG.
+ROMBANK10 EQU 10 ; Free : RFS Bank 10 -
+ROMBANK11 EQU 11 ; Free : RFS Bank 11 -
+ROMBANK12 EQU 12 ; Free : CBIOS Bank 1 - Utilities
+ROMBANK13 EQU 13 ; Free : CBIOS Bank 2 - Screen / ANSI Terminal
+ROMBANK14 EQU 14 ; Free : CBIOS Bank 3 - SD Card
+ROMBANK15 EQU 15 ; Free : CBIOS Bank 4 - Floppy disk controller.
ENDIF
IF BUILD_SFD700 = 1
-ROMBANK0 EQU 0 + BNKDEFUROM ; : RFS Bank 0 - Main RFS Entry point and functions.
-ROMBANK1 EQU 1 + BNKDEFUROM ; : RFS Bank 1 - Floppy disk controller and utilities.
-ROMBANK2 EQU 2 + BNKDEFUROM ; : RFS Bank 2 - SD Card controller and utilities.
-ROMBANK3 EQU 3 + BNKDEFUROM ; : RFS Bank 3 - Cmdline tools (Memory, Printer, Help)
-ROMBANK4 EQU 4 + BNKDEFUROM ; : RFS Bank 4 - CMT Utilities.
+ROMBANK0 EQU 0 + BNKDEFUROM ; : RFS Bank 0 - Main RFS Entry point and functions.
+ROMBANK1 EQU 1 + BNKDEFUROM ; : RFS Bank 1 - Floppy disk controller and utilities.
+ROMBANK2 EQU 2 + BNKDEFUROM ; : RFS Bank 2 - SD Card controller and utilities.
+ROMBANK3 EQU 3 + BNKDEFUROM ; : RFS Bank 3 - Cmdline tools (Memory, Printer, Help)
+ROMBANK4 EQU 4 + BNKDEFUROM ; : RFS Bank 4 - CMT Utilities.
ROMBANK5 EQU 5 + BNKDEFUROM ; : RFS Bank 5
ROMBANK6 EQU 6 + BNKDEFUROM ; : RFS Bank 6
-ROMBANK7 EQU 8 + BNKDEFUROM ; : RFS Bank 7 - Memory and timer test utilities.
-ROMBANK8 EQU 10 + BNKDEFUROM ; : CBIOS Bank 1 - Utilities
-ROMBANK9 EQU 11 + BNKDEFUROM ; : CBIOS Bank 2 - Screen / ANSI Terminal
-ROMBANK10 EQU 12 + BNKDEFUROM ; : CBIOS Bank 3 - SD Card
-ROMBANK11 EQU 13 + BNKDEFUROM ; : CBIOS Bank 4 - Floppy disk controller.
+ROMBANK7 EQU 8 + BNKDEFUROM ; : RFS Bank 7 - Memory and timer test utilities.
+ROMBANK8 EQU 8 + BNKDEFUROM ; Free : RFS Bank 8 -
+ROMBANK9 EQU 9 + BNKDEFUROM ; Free : RFS Bank 9 -
+ROMBANK10 EQU 10 + BNKDEFUROM ; Free : RFS Bank 10 -
+ROMBANK11 EQU 11 + BNKDEFUROM ; Free : RFS Bank 11 -
+ROMBANK12 EQU 12 + BNKDEFUROM ; Free : CBIOS Bank 1 - Utilities
+ROMBANK13 EQU 13 + BNKDEFUROM ; Free : CBIOS Bank 2 - Screen / ANSI Terminal
+ROMBANK14 EQU 14 + BNKDEFUROM ; Free : CBIOS Bank 3 - SD Card
+ROMBANK15 EQU 15 + BNKDEFUROM ; Free : CBIOS Bank 4 - Floppy disk controller.
ENDIF
; MMC/SD command (SPI mode)
@@ -554,6 +573,56 @@ SDCAP: EQU 01027H
SDDRIVENO EQU 01028H ; RFS SDCFS Active Drive Number
CMTFILENO EQU 01029H ; Next Sequential file number to read when file request given without name.
TZPU: EQU 0102AH ; Tranzputer present flag (0 = not present, > 0 = present and version number).
+SVMSGMROM: EQU 0102BH ; Saved MROM bank during PRINTMSG message copy.
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+MROM_MSGS EQU 9 ; MROM bank containing message strings.
+MSGBUF EQU 0CF40H ; 64-byte temp buffer for MROM->RAM message copy.
+; Message string EQUs — addresses in MROM bank 9 (rfs_mrom_msgs.asm).
+MSGSONTZ EQU 010H
+MSGSON EQU 014H
+MSGNOTFND EQU 025H
+MSGRDIRLST EQU 030H
+MSGTRM EQU 040H
+MSGBADCMD EQU 042H
+MSGSDINITER EQU 047H
+MSGCDIRLST EQU 058H
+MSGSDRERR EQU 068H
+MSGSDWERR EQU 07AH
+MSGSVFAIL EQU 08DH
+MSGERAFAIL EQU 0A2H
+MSGSVDIRENT EQU 0B6H
+MSGERASEDIR EQU 0CFH
+MSGCMTDATA EQU 0E3H
+MSGDCHEAD EQU 0F9H
+MSGNOTBIN EQU 113H
+MSGLOAD EQU 11FH
+MSGSAVE EQU 12DH
+MSGDIRFULL EQU 139H
+MSGE1 EQU 143H
+MSGCMTWRITE EQU 156H
+MSGOK EQU 164H
+MSGSAVEOK EQU 16AH
+MSGBOOTDRV EQU 17DH
+MSGLOADERR EQU 192H
+MSGIPLLOAD EQU 1A7H
+MSGDSKNOTMST EQU 1B6H
+MSGINITM EQU 1C8H
+MSGREAD4HEX EQU 1D5H
+MSGT2SDERR EQU 1E5H
+MSGSD2TERR EQU 1FDH
+MSGT2SDOK EQU 215H
+MSGSD2TOK EQU 230H
+MSGNOTZINST EQU 24BH
+MSGNOCMTDIR EQU 26FH
+MSGINVDRV EQU 280H
+MSGNOVERIFY EQU 2A1H
+MSGNOINSTR EQU 2B4H
+MSGNOPARAM EQU 2C6H
+MSGQDERR EQU 2D6H
+MSGQDFMT EQU 2E6H
+MSGFDDIR EQU 2F5H
+MSGFDINFO EQU 2FCH
+ ENDIF
; Variables sharing the BUFER buffer, normally the BUFER is only used to get keyboard input and so long as data in BUFER is processed
; before calling the CMT/SD commands and not inbetween there shouldnt be any issue. Also the space used is at the top end of the buffer which is not used so often.
; This frees up memory needed by the CMT and SD card.
@@ -572,24 +641,24 @@ DTADRSTORE: EQU BUFER+50+27 ; Backu
SDCOPY: EQU BUFER+50+29 ; Flag to indicate an SD copy is taking place, either CMT->SD or SD->CMT.
RESULT: EQU BUFER+50+30 ; Result variable needed for interbank calls when a result is needed.
-; Quickdisk work area
-;QDPA EQU 01130h ; QD code 1
-;QDPB EQU 01131h ; QD code 2
-;QDPC EQU 01132h ; QD header startaddress
-;QDPE EQU 01134h ; QD header length
-;QDCPA EQU 0113Bh ; QD error flag
-;HDPT EQU 0113Ch ; QD new headpoint possition
-;HDPT0 EQU 0113Dh ; QD actual headpoint possition
-;FNUPS EQU 0113Eh
-;FNUPF EQU 01140h
-;FNA EQU 01141h ; File Number A (actual file number)
-;FNB EQU 01142h ; File Number B (next file number)
-;MTF EQU 01143h ; QD motor flag
-;RTYF EQU 01144h
-;SYNCF EQU 01146h ; SyncFlags
-;RETSP EQU 01147h
-;BUFER EQU 011A3h
-;QDIRBF EQU 0CD90h
+; Quickdisk work area (MZ-1E14 compatible)
+QDCMD EQU 01130h ; QD operation mode (1=dir, 3=read, 5=motor off, 6=motor off full)
+QDSUBCMD EQU 01131h ; QD sub-mode / file number for dir scan
+QDLOADADDR EQU 01132h ; QD target load address (2 bytes)
+QDBLKSIZE EQU 01134h ; QD block size limit (2 bytes)
+QDRELOC EQU 0113Ah ; QD relocation flag (0xFF = relocate to 0000h)
+QDDISPFLG EQU 0113Bh ; QD display flag
+QDADDRMARK EQU 0113Ch ; QD address mark sequence counter
+QDEXPMARK EQU 0113Dh ; QD expected address mark
+QDWORK1 EQU 0113Eh ; QD work variable 1
+QDWORK2 EQU 01140h ; QD work variable 2
+QDTOTBLKS EQU 01141h ; QD total blocks on disk
+QDREMBLKS EQU 01142h ; QD remaining blocks to scan
+QDMOTOR EQU 01143h ; QD motor flag (0=off, 5=on)
+QDRETRY EQU 01144h ; QD retry counter
+QDFLAGS EQU 01146h ; QD flags (bit 3 = first read after init)
+QDSAVESP EQU 01147h ; QD saved SP for error recovery
+QDIRBUF EQU 0CD90h ; QD directory buffer (18 bytes per entry)
diff --git a/asm/msbasic.asm b/asm/msbasic.asm
index 0fb4019..187332e 100644
--- a/asm/msbasic.asm
+++ b/asm/msbasic.asm
@@ -23,7 +23,7 @@
; Original source is: (C) 1978 Microsoft
; Updates (some reversed out): Grant Searle, http://searle.hostei.com/grant/index.html
; eMail: home.micros01@btinternet.com
-; All other updates (C) Philip Smart, 2020-23. http://www.eaw.app philip.smart\@net2net.org
+; All other updates (C) Philip Smart, 2020-26. http://www.eaw.app philip.smart\@net2net.org
;-----------------------------------------------------------------------------------------------
@@ -5666,6 +5666,7 @@ FLSHCTL1: LD HL,(DSPXYADDR) ; Load
; Keyboard processing.
;
TIMIN3: ; Perform keyboard sweep - inline to avoid overhead of a call.
+ IF BUILD_MZ80A > 0
; KEYBOARD SWEEP
;
; EXIT B,D7=0 NO DATA
@@ -5839,7 +5840,7 @@ MEMSW3: IF BUILD_TZFS+BUILD_RFSTZ > 0
;
LD SP,(SPISRSAVE)
EI
- RET
+ RETI
;
; Helper to determine if a key is being held down and autorepeat should be applied.
@@ -6209,7 +6210,555 @@ KTBLC: ; CTRL ON
DB NOKEY
DB CTRL_RB
DB NOKEY
+ ENDIF
+ ;
+ ; Keyboard routine for the MZ-700 hardware.
+ ;
+ IF BUILD_MZ700+BUILD_MZ1500 > 0
+ ;
+ ; KEY BOARD SWEEP
+ ; EXIT B,D7=0 NO DATA
+ ; =1 DATA
+ ; D6=0 SHIFT OFF
+ ; =1 SHIFT ON
+ ; D5=0 CTRL OFF
+ ; =1 CTRL ON
+ ; D4=0 SHIFT+CTRL OFF
+ ; =1 SHIFT+CTRL ON
+ ; C = ROW & COLUMN
+ ; 7 6 5 4 3 2 1 0
+ ; * * ^ ^ ^ < < <
+ XOR A
+ LD B,0F8H
+ LD D,A
+
+ ; BREAK KEY CHECK
+ ; AND SHIFT, CTRL KEY CHECK
+ ; EXIT BREAK ON : ZERO=1
+ ; OFF: ZERO=0
+ ; NO KEY : CY =0
+ ; KEY IN : CY =1
+ ; A D6=1 : SHIFT ON
+ ; =0 : OFF
+ ; D5=1 : CTRL ON
+ ; =0 : OFF
+ ; D4=1 : SHIFT+CNT ON
+ ; =0 : OFF
+ ; D3=1 : BREAK ON
+ ; =0 : OFF
+BREAK: LD A,0F8H ; LINE 8SWEEP
+ LD (KEYPA),A
+ NOP
+ LD A,(KEYPB)
+ CP 03EH ; BREAK + CTRL + SHIFT = RESET TO MONITOR
+ JP Z, REBOOT
+ OR A
+ RRA
+ JP C,BREAK2 ; SHIFT ?
+ RLA
+ RLA
+ JR NC,BREAK1 ; BREAK ?
+ LD A,40H ; SHIFT D6=1
+ SCF
+ JR SWEP6
+
+BREAK1: XOR A ; SHIFT ?
+ JR SWEP6
+
+ ; BREAK SUBROUTINE BYPASS 1
+ ; CTRL OR NOT KEY
+BREAK2: BIT 5,A ; NOT OR CTRL
+ JR Z,BREAK3 ; CTRL
+ OR A ; NOTKEY A=7FH
+ JR SWEP6
+
+BREAK3: LD A,20H ; CTRL D5=1
+ OR A ; ZERO FLG CLR
+ SCF
+ JR SWEP6
+
+SWEP1: LD D,88H ; BREAK ON
+ JR SWEP9
+
+SWEP6: JR NC,SWEP0
+ LD D,A
+ JR SWEP0
+
+SWEP01: SET 7,D
+SWEP0: DEC B
+ LD A,B
+ LD (KEYPA),A
+ CP 0EFH ; MAP SWEEP END ?
+ JR NZ,SWEP3
+ CP 0F8H ; BREAK KEY ROW
+ JR Z,SWEP0
+SWEP9: LD B,D
+ JP ISRKEY0
+
+SWEP3: LD A,(KEYPB)
+ LD E,A
+ CPL
+ OR A
+ JR Z,SWEP0
+ LD E,A
+SWEP2: LD H,8
+ LD A,B
+ AND 0FH
+ RLCA
+ RLCA
+ RLCA
+ LD C,A
+ LD A,E
+L0A89: DEC H
+ RRCA
+ JR NC,L0A89
+ LD A,H
+ ADD A,C
+ LD C,A
+ JR SWEP01
+
+ISRKEY0: LD A,B
+ RLCA
+ JP C,ISRKEY2 ; CY=1 then data available.
+ XOR A
+ LD (KEYRPT),A ; No key held then clear the auto repeat initial pause counter.
+ LD A,NOKEY ; No key code.
+ JR ISRKEY10
+ ;
+ISRKEY1: LD E, A
+ LD A,(KEYLAST)
+ CP E
+ JR Z, ISRAUTORPT
+ LD A, E
+ISRKEY10: CP NOKEY
+ LD (KEYLAST),A
+ JR Z,ISREXIT
+ CP GRAPHKEY
+ JR Z,LOCKTOGGLE
+ CP ALPHAKEY
+ JR Z,ALPHATOGGLE
+ISRKEYRPT: LD A,(KEYCOUNT) ; Get current count of bytes in the keyboard buffer.
+ CP KEYBUFSIZE - 1
+ JR NC, ISREXIT ; Keyboard buffer full, so waste character.
+ INC A
+ LD (KEYCOUNT),A
+ LD HL,(KEYWRITE) ; Get the write buffer pointer.
+ LD (HL), E ; Store the character.
+ INC L
+ LD A,L
+ AND KEYBUFSIZE-1 ; Circular buffer, keep boundaries.
+ LD L,A
+ LD (KEYWRITE),HL ; Store updated pointer.
+ ;
+ISREXIT: POP HL
+ POP DE
+ POP BC
+ POP AF
+ ;
+ LD SP,(SPISRSAVE)
+ EI
+ RETI
+
+ ;
+ ; Helper to determine if a key is being held down and autorepeat should be applied.
+ ; The criterion is a timer, if this expires then autorepeat is applied.
+ ;
+ISRAUTORPT: LD A,(KEYRPT) ; Increment an initial pause counter.
+ INC A
+ CP 10
+ JR C,ISRAUTO1 ; Once expired we can auto repeat the last key.
+ LD A,(KEYLAST)
+ CP 080H
+ JR NC,ISREXIT ; Dont auto repeat control keys.
+ LD E,A
+ JR ISRKEYRPT
+ISRAUTO1: LD (KEYRPT),A
+ JR ISREXIT
+
+ ;
+ ; Method to alternate through the 3 shift modes, CAPSLOCK=1, SHIFTLOCK=2, NO LOCK=0
+ ;
+LOCKTOGGLE: LD HL,FLSDT
+ LD A,(SFTLK)
+ INC A
+ CP 3
+ JR C,LOCK0
+ XOR A
+LOCK0: LD (SFTLK),A
+ OR A
+ LD (HL),043H ; Thick block cursor when lower case.
+ JR Z,LOCK1
+ CP 1
+ LD (HL),03EH ; Thick underscore when CAPS lock.
+ JR Z,LOCK1
+ LD (HL),0EFH ; Block cursor when SHIFT lock.
+LOCK1: JP ISREXIT
+
+ ; Method to alternate between NO LOCK and CAPSLOCK.
+ALPHATOGGLE:LD HL,FLSDT
+ LD A,(SFTLK)
+ INC A
+ AND 001H
+ JR LOCK0
+
+
+ISRKEY2: LD DE,KTBLSL ; KEY TABLE WITH SHIFT LOCK
+ LD A,B
+ CP 88H ; BREAK IN (SHIFT & BRK)
+ JR Z,ISRBRK
+ LD H,0 ; HL=ROW & COLUMN
+ LD L,C
+ BIT 5,A ; CTRL CHECK
+ JR NZ,ISRKEY15 ; YES, CTRL
+ LD A,(SFTLK) ; CAPSLOCK=1, SHIFTLOCK=2, NO LOCK=0
+ RRCA
+ JR C,ISRKEY3
+ RRCA
+ JR C,ISRKEY6
+ LD A, B
+ BIT 6, A
+ LD DE,KTBLSL ; Shift lock.
+ JR NZ, ISRKEY5
+ LD DE,KTBLNS ; Lower case.
+ JR ISRKEY5
+
+ ; Setup pointer to Control Key mapping.
+ISRKEY15: LD DE,KTBLC
+ ; Add in offset.
+ISRKEY5: ADD HL,DE
+ ; Get key.
+ISRKEY55: LD A,(HL)
+ JP ISRKEY1
+
+ ; Setup pointer to Caps Lock mapping.
+ISRKEY3: LD A, B
+ BIT 6, A ; Shift pressed when caps lock on?
+ LD DE, KTBLSL
+ JR NZ, ISRKEY5
+ LD DE,KTBLCL
+ JR ISRKEY5
+
+ ; Setup pointer to Shift Lock mapping.
+ISRKEY6: LD A, B
+ BIT 6, A ; Shift pressed when shift lock on?
+ LD DE, KTBLNS
+ JR NZ, ISRKEY5
+ LD DE,KTBLSL
+ JR ISRKEY5
+
+ ; Break key pressed, handled in getkey routine.
+ISRBRK: LD A,(KEYLAST)
+ CP BREAKKEY
+ JP Z,ISREXIT
+ XOR A ; Reset the keyboard buffer.
+ LD (KEYCOUNT),A
+ LD HL,KEYBUF
+ LD (KEYWRITE),HL
+ LD (KEYREAD),HL
+ LD A,BREAKKEY
+ JP ISRKEY10
+
+KTBLSL: ; SHIFT LOCK.
+ ;S0 00 - 07
+ DB 0BFH ; SPARE
+ DB GRAPHKEY ; GRAPH
+ DB 58H ;
+ DB ALPHAKEY ; ALPHA
+ DB NOKEY ; NO
+ DB ';' ; ;
+ DB ':' ; :
+ DB CR ; CR
+ ;S1 08 - 0F
+ DB 'Y' ; Y
+ DB 'Z' ; Z
+ DB '@' ; @
+ DB '(' ; [
+ DB ')' ; ]
+ DB NOKEY ; NULL
+ DB NOKEY ; NULL
+ DB NOKEY ; NULL
+ ;S2 10 - 17
+ DB 'Q' ; Q
+ DB 'R' ; R
+ DB 'S' ; S
+ DB 'T' ; T
+ DB 'U' ; U
+ DB 'V' ; V
+ DB 'W' ; W
+ DB 'X' ; X
+ ;S3 18 - 1F
+ DB 'I' ; I
+ DB 'J' ; J
+ DB 'K' ; K
+ DB 'L' ; L
+ DB 'M' ; M
+ DB 'N' ; N
+ DB 'O' ; O
+ DB 'P' ; P
+ ;S4 20 - 27
+ DB 'A' ; A
+ DB 'B' ; B
+ DB 'C' ; C
+ DB 'D' ; D
+ DB 'E' ; E
+ DB 'F' ; F
+ DB 'G' ; G
+ DB 'H' ; H
+ ;S5 28 - 2F
+ DB '!' ; !
+ DB '"' ; "
+ DB '#' ; #
+ DB '$' ; $
+ DB '%' ; %
+ DB '&' ; &
+ DB '\'' ; '
+ DB '(' ; (
+ ;S6 30 - 37
+ DB '\\' ; \
+ DB '#' ; POND MARK
+ DB 2BH ; YEN
+ DB ' ' ; SPACE
+ DB ' ' ; ¶
+ DB ')' ; )
+ DB '<' ; <
+ DB '>' ; >
+ ;S7 38 - 3F
+ DB INSERT ; INST.
+ DB DELETE ; DEL.
+ DB CURSUP ; CURSOR UP
+ DB CURSDOWN ; CURSOR DOWN
+ DB CURSRIGHT ; CURSOR RIGHT
+ DB CURSLEFT ; CURSOR LEFT
+ DB '?' ; ?
+ DB '/' ; /
+ ;
+
+ ;
+KTBLNS: ; NO SHIFT
+ ;S0 00 - 07
+ DB 0BFH ; SPARE
+ DB GRAPHKEY ; GRAPH
+ DB 1BH ; POND
+ DB ALPHAKEY ; ALPHA
+ DB NOKEY ; NO
+ DB '+' ; +
+ DB '*' ; *
+ DB CR ; CR
+ ;S1 08 - 0F
+ DB 'y' ; y
+ DB 'z' ; z
+ DB '`' ; `
+ DB '{' ; {
+ DB '}' ; }
+ DB NOKEY ; NULL
+ DB NOKEY ; NULL
+ DB NOKEY ; NULL
+ ;S2 10 - 17
+ DB 'q' ; q
+ DB 'r' ; r
+ DB 's' ; s
+ DB 't' ; t
+ DB 'u' ; u
+ DB 'v' ; v
+ DB 'w' ; w
+ DB 'x' ; x
+ ;S3 18 - 1F
+ DB 'i' ; i
+ DB 'j' ; j
+ DB 'k' ; k
+ DB 'l' ; l
+ DB 'm' ; m
+ DB 'n' ; n
+ DB 'o' ; o
+ DB 'p' ; p
+ ;S4 20 - 27
+ DB 'a' ; a
+ DB 'b' ; b
+ DB 'c' ; c
+ DB 'd' ; d
+ DB 'e' ; e
+ DB 'f' ; f
+ DB 'g' ; g
+ DB 'h' ; h
+ ;S5 28 - 2F
+ DB '1' ; 1
+ DB '2' ; 2
+ DB '3' ; 3
+ DB '4' ; 4
+ DB '5' ; 5
+ DB '6' ; 6
+ DB '7' ; 7
+ DB '8' ; 8
+ ;S6 30 - 37
+ DB '\\' ; \
+ DB CURSUP ;
+ DB '-' ; -
+ DB ' ' ; SPACE
+ DB '0' ; 0
+ DB '9' ; 9
+ DB ',' ; ,
+ DB '.' ; .
+ ;S7 38 - 3F
+ DB CLRKEY ; CLR.
+ DB HOMEKEY ; HOME.
+ DB CURSUP ; CURSOR UP
+ DB CURSDOWN ; CURSOR DOWN
+ DB CURSRIGHT ; CURSOR RIGHT
+ DB CURSLEFT ; CURSOR LEFT
+ DB 0C6H ; CLR
+ DB 5AH ;
+ DB 45H ;
+ ;
+ ;
+KTBLCL: ; CAPS LOCK
+ ;S0 00 - 07
+ DB 0BFH ; SPARE
+ DB GRAPHKEY ; GRAPH
+ DB 58H ;
+ DB ALPHAKEY ; ALPHA
+ DB NOKEY ; NO
+ DB ';' ; ;
+ DB ':' ; :
+ DB CR ; CR
+ ;S1 08 - 0F
+ DB 'Y' ; Y
+ DB 'Z' ; Z
+ DB '@' ; @
+ DB '(' ; [
+ DB ')' ; ]
+ DB NOKEY ; NULL
+ DB NOKEY ; NULL
+ DB NOKEY ; NULL
+ ;S2 10 - 17
+ DB 'Q' ; Q
+ DB 'R' ; R
+ DB 'S' ; S
+ DB 'T' ; T
+ DB 'U' ; U
+ DB 'V' ; V
+ DB 'W' ; W
+ DB 'X' ; X
+ ;S3 18 - 1F
+ DB 'I' ; I
+ DB 'J' ; J
+ DB 'K' ; K
+ DB 'L' ; L
+ DB 'M' ; M
+ DB 'N' ; N
+ DB 'O' ; O
+ DB 'P' ; P
+ ;S4 20 - 27
+ DB 'A' ; A
+ DB 'B' ; B
+ DB 'C' ; C
+ DB 'D' ; D
+ DB 'E' ; E
+ DB 'F' ; F
+ DB 'G' ; G
+ DB 'H' ; H
+ ;S5 28 - 2F
+ DB '1' ; 1
+ DB '2' ; 2
+ DB '3' ; 3
+ DB '4' ; 4
+ DB '5' ; 5
+ DB '6' ; 6
+ DB '7' ; 7
+ DB '8' ; 8
+ ;S6 30 - 37
+ DB '\\' ; \
+ DB CURSUP ;
+ DB '-' ; -
+ DB ' ' ; SPACE
+ DB '0' ; 0
+ DB '9' ; 9
+ DB ',' ; ,
+ DB '.' ; .
+ ;S7 38 - 3F
+ DB INSERT ; INST.
+ DB DELETE ; DEL.
+ DB CURSUP ; CURSOR UP
+ DB CURSDOWN ; CURSOR DOWN
+ DB CURSRIGHT ; CURSOR RIGHT
+ DB CURSLEFT ; CURSOR LEFT
+ DB '?' ; ?
+ DB '/' ; /
+ ;
+ ;
+KTBLC: ; CONTROL CODE
+ ;S0 00 - 07
+ DB NOKEY
+ DB NOKEY
+ DB CTRL_CAPPA ; ^
+ DB NOKEY
+ DB NOKEY
+ DB NOKEY
+ DB NOKEY
+ DB NOKEY
+ ;S1 08 - 0F
+ DB CTRL_Y ; ^Y E3
+ DB CTRL_Z ; ^Z E4 (CHECKER)
+ DB CTRL_AT ; ^@
+ DB CTRL_LB ; ^[ EB/E5
+ DB CTRL_RB ; ^] EA/E7
+ DB NOKEY ; #NULL
+ DB NOKEY ; #NULL
+ DB NOKEY ; #NULL
+ ;S2 10 - 17
+ DB CTRL_Q ; ^Q
+ DB CTRL_R ; ^R
+ DB CTRL_S ; ^S
+ DB CTRL_T ; ^T
+ DB CTRL_U ; ^U
+ DB CTRL_V ; ^V
+ DB CTRL_W ; ^W E1
+ DB CTRL_X ; ^X E2
+ ;S3 18 - 1F
+ DB CTRL_I ; ^I F9
+ DB CTRL_J ; ^J FA
+ DB CTRL_K ; ^K FB
+ DB CTRL_L ; ^L FC
+ DB CTRL_M ; ^M CD
+ DB CTRL_N ; ^N FE
+ DB CTRL_O ; ^O FF
+ DB CTRL_P ; ^P E0
+ ;S4 20 - 27
+ DB CTRL_A ; ^A F1
+ DB CTRL_B ; ^B F2
+ DB CTRL_C ; ^C F3
+ DB CTRL_D ; ^D F4
+ DB CTRL_E ; ^E F5
+ DB CTRL_F ; ^F F6
+ DB CTRL_G ; ^G F7
+ DB CTRL_H ; ^H F8
+ ;S5 28 - 2F
+ DB NOKEY
+ DB NOKEY
+ DB NOKEY
+ DB NOKEY
+ DB NOKEY
+ DB NOKEY
+ DB NOKEY
+ DB NOKEY
+ ;S6 30 - 37 (ERROR? 7 VALUES ONLY!!)
+ DB NOKEY ; ^YEN E6
+ DB CTRL_CAPPA ; ^ EF
+ DB NOKEY
+ DB NOKEY
+ DB NOKEY
+ DB CTRL_UNDSCR ; ^,
+ DB NOKEY
+ ;S7 38 - 3F
+ DB NOKEY
+ DB NOKEY
+ DB NOKEY
+ DB NOKEY
+ DB NOKEY
+ DB NOKEY
+ DB NOKEY
+ DB CTRL_SLASH ; ^/ EE
+ ENDIF
;-------------------------------------------------------------------------------
; END OF TIMER INTERRUPT
;-------------------------------------------------------------------------------
@@ -6551,14 +7100,32 @@ TIMESET: LD (TIMESEC),HL ; Load
;
LD HL,CONTF
LD (HL),074H ; Set Counter 1, read/load lsb first then msb, mode 2 rate generator, binary
- LD (HL),0B0H ; Set Counter 2, read/load lsb first then msb, mode 0 interrupt on terminal count, binary
+ IF BUILD_MZ80A = 1
+ LD (HL),0B0H ; Set Counter 2, read/load lsb first then msb, mode 0 interrupt on terminal count, binary
+ ENDIF
+ IF BUILD_RFS = 1
+ LD (HL),0B6H ; Set Counter 2, read/load lsb first then msb, mode 0 interrupt on terminal count, binary
+ ENDIF
+ IF BUILD_MZ1500 = 1
+ LD (HL),0B0H ; Set Counter 2, read/load lsb first then msb, mode 0 interrupt on terminal count, binary
+ ENDIF
DEC HL
LD DE,TMRTICKINTV ; 100Hz coming into Timer 2 from Timer 1, set divisor to set interrupts per second.
LD (HL),E ; Place current time in Counter 2
LD (HL),D
DEC HL
- LD (HL),03BH ; Place divisor in Counter 1, = 315, thus 31500/315 = 100
- LD (HL),001H
+ IF BUILD_MZ80A = 1
+ LD (HL),03BH ; Place divisor in Counter 1, = 315, thus 31500/315 = 100
+ LD (HL),001H
+ ENDIF
+ IF BUILD_RFS = 1
+ LD (HL),09CH ; Place divisor in Counter 1, = 156, thus 15611/156 = 100
+ LD (HL),000H
+ ENDIF
+ IF BUILD_MZ1500 = 1
+ LD (HL),09CH ; Place divisor in Counter 1, = 156, thus 15611/156 = 100
+ LD (HL),000H
+ ENDIF
NOP
NOP
NOP
diff --git a/asm/mz-1e14.asm b/asm/mz-1e14.asm
new file mode 100644
index 0000000..83d9eff
--- /dev/null
+++ b/asm/mz-1e14.asm
@@ -0,0 +1,1059 @@
+; Disassembly of the file "mz-1e14.rom"
+;
+; CPU Type: Z80
+;
+; Created with dZ80 2.1
+;
+; on Saturday, 14 of March 2026 at 12:27 PM
+;
+MMIO_E0 EQU 0E0H
+SIO_CHA_D EQU 0F4H
+SIO_CHA_C EQU 0F6H
+SIO_CHB_C EQU 0F7H
+PPI_PORTB EQU 0FEH
+PPI_PORTC EQU 0FFH
+GETL EQU 00003H
+NL EQU 00009H
+PRNTS EQU 0000CH
+PRNT EQU 00012H
+MSG EQU 00015H
+MSGX EQU 00018H
+GETKY EQU 0001BH
+BRKEY EQU 0001EH
+XTEMP EQU 00041H
+MONSTART EQU 0005BH
+ERRORMSG EQU 00147H
+PRTHLA EQU 002A6H
+CLSSCR EQU 00308H
+PRTHX EQU 003B1H
+HLHEX EQU 00410H
+_2HEX EQU 0041FH
+WRINF EQU 00436H
+WRDAT EQU 00475H
+RDINF EQU 004D8H
+RDDAT EQU 004F8H
+VRFY EQU 00588H
+CLSDN EQU 005FAH
+?KEY EQU 008CAH
+PRNT4 EQU 00920H
+SAVEDMSG EQU 00942H
+PRNT3 EQU 0096CH
+FNAMMSG EQU 0098BH
+LOADINGMSG EQU 009A0H
+SPCCHK EQU 00A32H
+?ADCN EQU 00BB9H
+?BLNK EQU 00DA6H
+?DPCT EQU 00DDCH
+STACK2 EQU 010EEH
+ATRB EQU 010F0H
+NAME EQU 010F1H
+SIZE EQU 01102H
+DTADR EQU 01104H
+EXADR EQU 01106H
+COMNT EQU 01108H
+QDCMD EQU 01130H
+QDSUBCMD EQU 01131H
+QDLOADADDR EQU 01132H
+QDBLKSIZE EQU 01134H
+QDRELOC EQU 0113AH
+QDDISPFLG EQU 0113BH
+QDADDRMARK EQU 0113CH
+QDEXPMARK EQU 0113DH
+QDWORK1 EQU 0113EH
+QDWORK2 EQU 01140H
+QDTOTBLKS EQU 01141H
+QDREMBLKS EQU 01142H
+QDMOTOR EQU 01143H
+QDRETRY EQU 01144H
+QDFLAGS EQU 01146H
+QDSAVESP EQU 01147H
+DSPXY EQU 01171H
+DPRNT EQU 01194H
+SWRK EQU 0119DH
+BUFER EQU 011A3H
+BUFER10 EQU 011ADH
+USERRAM EQU 01200H
+PRGSTART EQU 0E800H
+
+ ORG PRGSTART
+
+ NOP ; MZ-1E14 QD Interface ROM - Entry point table
+ JP LE80A
+
+ JP LE884
+
+LE807: JP LEDD1
+
+LE80A: LD A,0C6H ; Cold start: IPL boot from QD
+ CALL ?DPCT
+ XOR A
+ LD (DPRNT),A
+ DI
+ XOR A
+ LD DE,00000H
+ CALL CLSSCR
+ LD A,001H
+ OUT (SIO_CHB_C),A
+ XOR A
+ OUT (SIO_CHB_C),A
+ CALL GETKY
+ CP 04DH
+ JR Z,LE880 ; (+057H)
+ CP 051H
+ JR Z,LE835 ; (+008H)
+ CALL LEB22
+ CALL Z,LF006
+ JR LE835 ; (+000H)
+
+LE835: CALL LEBD1
+ CALL NL
+ CALL LEC0C
+ JR C,LE868 ; (+028H)
+ LD A,00DH
+ LD (BUFER),A
+ CALL LED08
+ LD A,001H
+ LD (QDDISPFLG),A
+ LD HL,LE86B
+ LD SP,STACK2
+ EX (SP),HL
+ CALL LEBDC
+ JP C,LEBAC
+ LD A,(ATRB)
+ CP 001H
+ JR NZ,LE871 ; (+010H)
+ LD DE,LEB27
+ RST 018H
+ JP LEB7B
+
+LE868: LD DE,LEB37
+LE86B: CALL NL
+ RST 018H
+ JR LE87D ; (+00cH)
+
+LE871: LD A,006H
+ LD (QDCMD),A
+ CALL LE807
+ LD DE,LED4C
+ RST 018H
+LE87D: CALL NL
+LE880: LD DE,LEB45
+ RST 018H
+LE884: CALL NL ; Warm start: command prompt (* MONITOR 9Z-503M *)
+ LD A,02AH
+ CALL PRNT
+ LD DE,BUFER
+ CALL GETL
+LE892: LD A,(DE) ; Command parser: J=Jump, L=Load, F=Format, B=Bell, P=Print, M=Modify, S=Save, V=Verify, D=Dump, Q=QD sub-cmds
+ INC DE
+ CP 00DH
+ JR Z,LE884 ; (-014H)
+ CP 04AH
+ JR Z,LE910 ; (+074H)
+ CP 04CH
+ JR Z,LE914 ; (+074H)
+ CP 046H
+ JR Z,LE8DE ; (+03aH)
+ CP 042H
+ JP Z,LEA6D
+ CP 023H
+ JP Z,LEA6A
+ CP 050H
+ JP Z,LE968
+ CP 04DH
+ JP Z,LE9D9
+ CP 053H
+ JP Z,LEA0C
+ CP 056H
+ JP Z,LEA5E
+ CP 044H
+ JP Z,LEA78
+ CP 051H
+ JR NZ,LE892 ; (-039H)
+ LD HL,00000H
+ LD (QDRELOC),HL
+ LD A,(DE)
+ CP 04CH
+ JP Z,LEB5D
+ CP 044H
+ JP Z,LEC18
+LE8DC: JR LE884 ; (-05aH)
+
+LE8DE: LD A,(DE)
+ CP 00DH
+ JR NZ,LE8DC ; (-007H)
+ CALL LEB22
+ CALL Z,LF006
+ JR LE8DC ; (-00fH)
+
+LE8EB: CP 002H
+ JR Z,LE8DC ; (-013H)
+ CALL NL
+ LD DE,ERRORMSG
+ RST 018H
+ JR LE8DC ; (-01cH)
+
+LE8F8: EX (SP),HL
+ POP BC
+ LD DE,BUFER
+ CALL GETL
+ LD A,(DE)
+ CP 01BH
+ JR Z,LE8DC ; (-029H)
+ JP (HL)
+
+LE906: EX (SP),IY
+ POP AF
+ CALL HLHEX
+ JR C,LE8DC ; (-032H)
+ JP (IY)
+
+LE910: CALL LE906
+ JP (HL)
+
+LE914: CALL RDINF
+ JR C,LE8EB ; (-02eH)
+ CALL NL
+ LD DE,LOADINGMSG
+ RST 018H
+ LD DE,NAME
+ RST 018H
+ XOR A
+ LD (BUFER),A
+ LD HL,(DTADR)
+ LD A,H
+ OR L
+ JR NZ,LE941 ; (+012H)
+ LD HL,(EXADR)
+ LD A,H
+ OR L
+ JR NZ,LE941 ; (+00bH)
+ LD A,PPI_PORTC
+ LD (BUFER),A
+ LD HL,USERRAM
+ LD (DTADR),HL
+LE941: CALL RDDAT
+ JR C,LE8EB ; (-05bH)
+ LD A,(BUFER)
+ CP PPI_PORTC
+ JR Z,LE954 ; (+007H)
+ LD BC,00100H
+ LD HL,(EXADR)
+ JP (HL)
+
+LE954: OUT (MMIO_E0),A
+ LD HL,USERRAM
+ LD DE,00000H
+ LD BC,(SIZE)
+ LDIR
+ LD BC,00100H
+ JP 00000H
+
+LE968: LD A,(DE)
+ CP 026H
+ JR NZ,LE983 ; (+016H)
+LE96D: INC DE
+ LD A,(DE)
+ CP 04CH
+ JR Z,LE989 ; (+016H)
+ CP 053H
+ JR Z,LE98E ; (+017H)
+ CP 043H
+ JR Z,LE99E ; (+023H)
+ CP 047H
+ JR Z,LE997 ; (+018H)
+ CP 054H
+ JR Z,LE993 ; (+010H)
+LE983: CALL LE9B8
+LE986: JP LE8DC
+
+LE989: LD DE,00470H
+ JR LE983 ; (-00bH)
+
+LE98E: LD DE,003D5H
+ JR LE983 ; (-010H)
+
+LE993: LD A,004H
+ JR LE999 ; (+002H)
+
+LE997: LD A,002H
+LE999: CALL LE9A2
+ JR LE96D ; (-031H)
+
+LE99E: LD A,01DH
+ JR LE999 ; (-009H)
+
+LE9A2: LD C,000H
+ LD B,A
+ CALL LE9C9
+ LD A,B
+ OUT (PPI_PORTC),A
+ LD A,080H
+ OUT (PPI_PORTB),A
+ LD C,001H
+ CALL LE9C9
+ XOR A
+ OUT (PPI_PORTB),A
+ RET
+
+LE9B8: PUSH DE
+ PUSH BC
+ PUSH AF
+LE9BB: LD A,(DE)
+ CALL LE9A2
+ LD A,(DE)
+ INC DE
+ CP 00DH
+ JR NZ,LE9BB ; (-00aH)
+ POP AF
+ POP BC
+ POP DE
+ RET
+
+LE9C9: IN A,(PPI_PORTB)
+ AND 00DH
+ CP C
+ RET Z
+ CALL BRKEY
+ JR NZ,LE9C9 ; (-00bH)
+ LD SP,ATRB
+ JR LE986 ; (-053H)
+
+LE9D9: CALL LE906
+LE9DC: CALL CLSDN
+ CALL PRTHX
+ CALL PRNT4
+ CALL LE8F8
+ CALL HLHEX
+ JR C,LEA08 ; (+01bH)
+ CALL PRTHLA
+ INC DE
+ CALL _2HEX
+ JR C,LE9DC ; (-01aH)
+ CP (HL)
+ JR NZ,LE9DC ; (-01dH)
+ INC DE
+ LD A,(DE)
+ CP 00DH
+ JR Z,LEA05 ; (+006H)
+ CALL _2HEX
+ JR C,LE9DC ; (-028H)
+ LD (HL),A
+LEA05: INC HL
+ JR LE9DC ; (-02cH)
+
+LEA08: LD H,B
+ LD L,C
+ JR LE9DC ; (-030H)
+
+LEA0C: CALL LE906
+ LD (DTADR),HL
+ LD B,H
+ LD C,L
+ CALL PRTHLA
+ CALL LE906
+ SBC HL,BC
+ INC HL
+ LD (SIZE),HL
+ CALL PRTHLA
+ CALL LE906
+ LD (EXADR),HL
+ CALL NL
+ LD DE,FNAMMSG
+ RST 018H
+ CALL LE8F8
+ CALL PRTHLA
+ CALL PRTHLA
+ LD HL,NAME
+LEA3C: INC DE
+ LD A,(DE)
+ LD (HL),A
+ INC HL
+ CP 00DH
+ JR NZ,LEA3C ; (-008H)
+ LD A,001H
+ LD (ATRB),A
+ CALL WRINF
+LEA4C: JP C,LE8EB
+ CALL WRDAT
+ JR C,LEA4C ; (-008H)
+ CALL NL
+ LD DE,SAVEDMSG
+ RST 018H
+LEA5B: JP LE884
+
+LEA5E: CALL VRFY
+ JP C,LE8EB
+ LD DE,SAVEDMSG
+ RST 018H
+ JR LEA5B ; (-00fH)
+
+LEA6A: JP MONSTART
+
+LEA6D: LD A,(SWRK)
+ RRA
+ CCF
+ RLA
+ LD (SWRK),A
+LEA76: JR LEA5B ; (-01dH)
+
+LEA78: CALL LE906
+ CALL PRTHLA
+ PUSH HL
+ CALL HLHEX
+ POP DE
+ JR C,LEAD6 ; (+051H)
+LEA85: EX DE,HL
+LEA86: LD B,008H
+ LD C,017H
+ CALL CLSDN
+LEA8D: CALL PRTHX
+ INC HL
+ PUSH AF
+ LD A,(DSPXY)
+ ADD A,C
+ LD (DSPXY),A
+ POP AF
+ CP 020H
+ JR NC,LEAA0 ; (+002H)
+ LD A,02EH
+LEAA0: CALL ?ADCN
+ CALL PRNT3
+ LD A,(DSPXY)
+ INC C
+ SUB C
+ LD (DSPXY),A
+ DEC C
+ DEC C
+ DEC C
+ PUSH HL
+ SBC HL,DE
+ POP HL
+ JR Z,LEAD3 ; (+01cH)
+ LD A,0F8H
+ LD (0E000H),A
+ NOP
+ LD A,(0E001H)
+ CP PPI_PORTB
+ JR NZ,LEAC7 ; (+003H)
+ CALL ?BLNK
+LEAC7: DJNZ LEA8D ; (-03cH)
+LEAC9: CALL ?KEY
+ OR A
+ JR Z,LEAC9 ; (-006H)
+ CALL SPCCHK
+ JR NZ,LEA86 ; (-04eH)
+ JR LEA76 ; (-060H)
+
+LEAD6: LD HL,000A0H
+ ADD HL,DE
+ JR LEA85 ; (-057H)
+
+LEADC: CALL NL
+ LD DE,FNAMMSG
+ RST 018H
+ LD DE,BUFER
+ CALL GETL
+ LD A,(DE)
+ CP 01BH
+ JR NZ,LEAF3 ; (+005H)
+ LD HL,LE884
+ EX (SP),HL
+ RET
+
+LEAF3: LD B,000H
+ LD DE,BUFER10
+ LD HL,BUFER
+ LD A,(DE)
+ CP 00DH
+ JR Z,LEB20 ; (+020H)
+LEB00: CP 020H
+ JR NZ,LEB08 ; (+004H)
+ INC DE
+ LD A,(DE)
+ JR LEB00 ; (-008H)
+
+LEB08: CP 022H
+ JR Z,LEB14 ; (+008H)
+LEB0C: LD (HL),A
+ INC HL
+ INC B
+ LD A,011H
+ CP B
+ JR Z,LEADC ; (-038H)
+LEB14: INC DE
+ LD A,(DE)
+ CP 022H
+ JR Z,LEB1E ; (+004H)
+ CP 00DH
+ JR NZ,LEB0C ; (-012H)
+LEB1E: LD A,00DH
+LEB20: LD (HL),A
+ RET
+
+LEB22: LD A,(0F000H) ; Check QD interface presence (read F000H)
+ OR A
+ RET
+
+LEB27: DB "IPL IS LOADING "
+ DB 00DH
+LEB37: DB "MAKE READY QD"
+ DB 00DH
+LEB45: DB "** MONITOR 9Z-503M **"
+ DB 00DH
+LEB5D: CALL LEBD1 ; QL command: Load file from QD
+ CALL LEC0C
+ JR C,LEBAC ; (+047H)
+ CALL LEADC
+ CALL LED08
+ LD DE,LOADINGMSG
+ RST 018H
+LEB6F: CALL LEBDC
+ JR C,LEBAC ; (+038H)
+ LD A,(ATRB)
+ CP 001H
+ JR NZ,LEB6F ; (-00cH)
+LEB7B: LD DE,NAME
+ RST 018H
+ LD HL,(EXADR)
+ LD A,H
+ OR L
+ JR NZ,LEB8B ; (+005H)
+ LD HL,(COMNT)
+ LD A,H
+ OR L
+LEB8B: JR NZ,LEB97 ; (+00aH)
+ LD A,PPI_PORTC
+ LD (QDRELOC),A
+ LD HL,USERRAM
+ JR LEB9A ; (+003H)
+
+LEB97: LD HL,(EXADR)
+LEB9A: LD (QDLOADADDR),HL
+ LD HL,(DTADR)
+ LD (QDBLKSIZE),HL
+ LD HL,00103H
+ LD (QDCMD),HL
+ CALL LE807
+LEBAC: JP C,LEC51
+ LD A,(QDRELOC)
+ CP PPI_PORTC
+ JR Z,LEBBD ; (+007H)
+ LD BC,00300H
+ LD HL,(COMNT)
+ JP (HL)
+
+LEBBD: OUT (MMIO_E0),A
+ LD HL,USERRAM
+ LD DE,00000H
+ LD BC,(DTADR)
+ LDIR
+ LD BC,00300H
+ JP 00000H
+
+LEBD1: XOR A ; Init QD state variables (motor status, address marks)
+ LD (QDMOTOR),A
+ LD (QDWORK1),A
+ LD (QDWORK2),A
+ RET
+
+LEBDC: LD HL,GETL ; Read next header block from QD (mode 3)
+ LD (QDCMD),HL
+ LD HL,ATRB
+ LD (QDLOADADDR),HL
+ LD HL,00040H
+ LD (QDBLKSIZE),HL
+LEBEE: CALL LE807
+ RET C
+ LD A,(BUFER)
+ CP 00DH
+ RET Z
+ LD HL,BUFER
+ LD DE,NAME
+ LD B,011H
+LEC00: LD A,(DE)
+ CP (HL)
+ JR NZ,LEBEE ; (-016H)
+ CP 00DH
+ RET Z
+ INC DE
+ INC HL
+ DJNZ LEC00 ; (-00bH)
+ RET
+
+LEC0C: XOR A ; Start QD: motor on + status check (mode 1)
+ LD (QDSUBCMD),A
+ INC A
+ LD (QDCMD),A
+ CALL LE807
+ RET
+
+LEC18: CALL LEBD1 ; QD command: Directory listing
+ CALL LEC0C
+ JR C,LEC51 ; (+031H)
+ CALL LED08
+ LD B,000H
+ LD DE,LED5D
+ RST 018H
+ LD HL,0CD90H
+LEC2C: LD (QDLOADADDR),HL
+ LD HL,GETL
+ LD (QDCMD),HL
+ LD HL,00040H
+ LD (QDBLKSIZE),HL
+ PUSH BC
+ CALL LE807
+ POP BC
+ JR C,LEC4C ; (+00aH)
+ INC B
+ LD HL,(QDLOADADDR)
+ LD DE,PRNT
+ ADD HL,DE
+ JR LEC2C ; (-020H)
+
+LEC4C: CP 028H
+ JR Z,LEC53 ; (+003H)
+ SCF
+LEC51: JR C,LECD2 ; (+07fH)
+LEC53: LD A,006H
+ LD (QDCMD),A
+ PUSH BC
+ CALL LE807
+ POP BC
+ XOR A
+ CP B
+ JR NC,LECC8 ; (+067H)
+ CALL NL
+ LD HL,0CD90H
+LEC67: LD A,(HL)
+ LD DE,LED6E
+ DEC A
+ JR Z,LECA4 ; (+036H)
+ LD DE,LED79
+ DEC A
+ JR Z,LECA4 ; (+030H)
+ LD DE,LED84
+ DEC A
+ JR Z,LECA4 ; (+02aH)
+ LD DE,LED8F
+ DEC A
+ JR Z,LECA4 ; (+024H)
+ LD DE,LED9A
+ DEC A
+ JR Z,LECA4 ; (+01eH)
+ DEC A
+ JR Z,LECA1 ; (+018H)
+ LD DE,LEDA5
+ DEC A
+ JR Z,LECA4 ; (+015H)
+ DEC A
+ JR Z,LECA1 ; (+00fH)
+ DEC A
+ JR Z,LECA1 ; (+00cH)
+ LD DE,LEDB0
+ DEC A
+ JR Z,LECA4 ; (+009H)
+ LD DE,LEDBB
+ DEC A
+ JR Z,LECA4 ; (+003H)
+LECA1: LD DE,LEDC6
+LECA4: RST 018H
+ LD A,022H
+ CALL PRNT
+ INC HL
+ PUSH HL
+ POP DE
+ RST 018H
+ LD A,022H
+ CALL PRNT
+ CALL NL
+ LD DE,00011H
+ ADD HL,DE
+LECBA: CALL ?KEY
+ OR A
+ JR Z,LECBA ; (-006H)
+ CALL SPCCHK
+ JP Z,LE884
+ DJNZ LEC67 ; (-061H)
+LECC8: CALL NL
+ LD DE,LED11
+ RST 018H
+ JP LE884
+
+LECD2: LD DE,LED15 ; Display QD error message based on error code in A
+ CP 028H
+ JR Z,LECF1 ; (+018H)
+ LD DE,LED33
+ CP 032H
+ JR Z,LECF1 ; (+011H)
+ LD DE,LED40
+ CP 036H
+ JR Z,LECF1 ; (+00aH)
+ LD DE,LED14
+ CP 000H
+ JR Z,LECF1 ; (+003H)
+ LD DE,LED27
+LECF1: LD A,006H
+ LD (QDCMD),A
+ CALL LE807
+ CALL LED08
+ LD A,(QDDISPFLG)
+ RRA
+ RET C
+ CALL NL
+ RST 018H
+ JP LE884
+
+LED08: LD A,005H ; Send motor off command (mode 5)
+ LD (QDCMD),A
+ CALL LE807
+ RET
+
+LED11: DB "OK!"
+LED14: DB 00DH
+LED15: DB "QD:FILE NOT FOUND"
+ DB 00DH
+LED27: DB "QD:HARD ERR"
+ DB 00DH
+LED33: DB "QD:NOT READY"
+ DB 00DH
+LED40: DB "QD:UNFORMAT"
+ DB 00DH
+LED4C: DB "QD:FILE MODE ERR"
+ DB 00DH
+LED5D: DB "DIRECTORY OF QD:"
+ DB 00DH
+LED6E: DB " OBJ "
+ DB 00DH
+LED79: DB " BTX "
+ DB 00DH
+LED84: DB " BSD "
+ DB 00DH
+LED8F: DB " BRD "
+ DB 00DH
+LED9A: DB " RB "
+ DB 00DH
+LEDA5: DB " LIB "
+ DB 00DH
+LEDB0: DB " SYS "
+ DB 00DH
+LEDBB: DB " GR "
+ DB 00DH
+LEDC6: DB " ??? "
+ DB 00DH
+LEDD1: LD A,005H ; QD block read service with retry (5 retries on error 29H)
+ LD (QDRETRY),A
+LEDD6: DI
+ CALL LEDF8
+ EI
+ RET NC
+ PUSH AF
+ CP 028H
+ JR Z,LEDF6 ; (+015H)
+ CALL LEF03
+ POP AF
+ PUSH AF
+ CP 029H
+ JR NZ,LEDF6 ; (+00cH)
+ LD HL,QDRETRY
+ DEC (HL)
+ JR Z,LEDF3 ; (+003H)
+ POP AF
+ JR LEDD6 ; (-01dH)
+
+LEDF3: CALL LEE0D
+LEDF6: POP AF
+ RET
+
+LEDF8: LD (QDSAVESP),SP ; QD read dispatcher: mode 1=dir, 3=block read, 5/6=motor off
+ LD A,(QDCMD)
+ DEC A
+ JR Z,LEE14 ; (+012H)
+ DEC A
+ DEC A
+ JR Z,LEE1A ; (+014H)
+ DEC A
+ DEC A
+ JR Z,LEE0D ; (+003H)
+ JP LEF03
+
+LEE0D: PUSH AF
+ XOR A
+ LD (QDADDRMARK),A
+ POP AF
+ RET
+
+LEE14: LD A,(QDSUBCMD) ; Mode 1: Directory scan (motor on + status)
+ JP LEE8B
+
+LEE1A: LD A,(QDMOTOR) ; Mode 3: Read block (init SIO, find block, read data)
+ OR A
+ CALL Z,LEEB7
+ CALL LEE51
+ RET C
+ CALL LEFEC
+ CALL LEFA8
+ LD C,A
+ CALL LEFA8
+ LD B,A
+ LD HL,(QDBLKSIZE)
+ SBC HL,BC
+ JP C,LEFC0
+ LD HL,(QDLOADADDR)
+LEE3B: CALL LEFA8
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,LEE3B ; (-00aH)
+ CALL LEF90
+ LD A,(QDSUBCMD)
+ BIT 0,A
+ JP NZ,LEF03
+ RET
+
+LEE51: LD HL,QDREMBLKS ; Find next block: scan blocks, match address marks
+ DEC (HL)
+ JR Z,LEE87 ; (+030H)
+ CALL LEF18
+ LD C,A
+ LD A,(QDADDRMARK)
+ LD HL,QDEXPMARK
+ CP (HL)
+ JR NZ,LEE84 ; (+020H)
+ INC A
+ LD (QDADDRMARK),A
+ LD (HL),A
+ LD A,(QDSUBCMD)
+ XOR C
+ RRA
+ RET NC
+LEE6F: CALL LEFA8
+ LD C,A
+ CALL LEFA8
+ LD B,A
+LEE77: CALL LEFA8
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,LEE77 ; (-008H)
+ CALL LEF90
+ JR LEE51 ; (-033H)
+
+LEE84: INC (HL)
+ JR LEE6F ; (-018H)
+
+LEE87: LD A,028H
+ SCF
+ RET
+
+LEE8B: LD B,A ; Motor on + check drive status via SIO ChB
+ LD A,002H
+ OUT (SIO_CHB_C),A
+ LD A,081H
+ OUT (SIO_CHB_C),A
+ LD A,002H
+ OUT (SIO_CHB_C),A
+ IN A,(SIO_CHB_C)
+ AND 081H
+ CP 081H
+ JP NZ,LEFC6
+ LD A,010H
+ OUT (SIO_CHA_C),A
+ IN A,(SIO_CHA_C)
+ LD C,A
+ AND 008H
+ JP Z,LEFC6
+ LD A,B
+ OR A
+ RET Z
+ LD A,C
+ AND 020H
+ RET NZ
+ JP LEFC3
+
+LEEB7: LD HL,LEFE1 ; Full QD init: SIO reset, motor on, wait for DCD + sync
+ LD B,00BH
+ CALL LEED6
+ CALL LEF2E
+ LD (QDTOTBLKS),A
+ INC A
+ LD (QDREMBLKS),A
+ CALL LEF90
+ LD HL,QDFLAGS
+ SET 3,(HL)
+ XOR A
+ LD (QDEXPMARK),A
+ RET
+
+LEED6: LD C,SIO_CHA_C ; Write SIO init table to ChA control + motor on via ChB WR5
+ OTIR
+ LD A,005H
+ LD (QDMOTOR),A
+ OUT (SIO_CHB_C),A
+ LD A,080H
+ OUT (SIO_CHB_C),A
+LEEE5: LD A,010H
+ OUT (SIO_CHA_C),A
+ IN A,(SIO_CHA_C)
+ AND 008H
+ JP Z,LEFC6
+ CALL LEFEC
+ LD A,010H
+ OUT (SIO_CHB_C),A
+ IN A,(SIO_CHB_C)
+ AND 008H
+ JR Z,LEEE5 ; (-018H)
+ LD BC,000E9H
+ JP LEFD4
+
+LEF03: PUSH AF ; Motor off: ChA WR5=60H (RTS off), ChB WR5=00H
+ LD A,005H
+ OUT (SIO_CHA_C),A
+ LD A,060H
+ OUT (SIO_CHA_C),A
+ LD A,005H
+ OUT (SIO_CHB_C),A
+ XOR A
+ LD (QDMOTOR),A
+ OUT (SIO_CHB_C),A
+ POP AF
+ RET
+
+LEF18: LD A,058H ; Enter sync/hunt mode, wait for sync detection, read block type
+ LD B,00BH
+ LD HL,LEFE1
+ CALL LEF81
+ LD HL,QDFLAGS
+ BIT 3,(HL)
+ LD BC,GETL
+ JR Z,LEF31 ; (+005H)
+ RES 3,(HL)
+LEF2E: LD BC,000A0H
+LEF31: CALL LEFD4
+ LD A,005H
+ OUT (SIO_CHB_C),A
+ LD A,082H
+ OUT (SIO_CHB_C),A
+ LD A,003H
+ OUT (SIO_CHA_C),A
+ LD A,0D3H
+ OUT (SIO_CHA_C),A
+ LD BC,02CC0H
+LEF47: LD A,010H
+ OUT (SIO_CHA_C),A
+ IN A,(SIO_CHA_C)
+ AND 010H
+ JR Z,LEF59 ; (+008H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,LEF47 ; (-00fH)
+ JP LEFCC
+
+LEF59: LD A,003H
+ OUT (SIO_CHA_C),A
+ LD A,0C3H
+ OUT (SIO_CHA_C),A
+ LD B,09FH
+LEF63: LD A,010H
+ OUT (SIO_CHA_C),A
+ IN A,(SIO_CHA_C)
+ AND 001H
+ JR NZ,LEF73 ; (+006H)
+ DEC B
+ JR NZ,LEF63 ; (-00dH)
+ JP LEFCC
+
+LEF73: LD A,003H
+ OUT (SIO_CHA_C),A
+ LD A,0C9H
+ OUT (SIO_CHA_C),A
+ CALL LEFA8
+ JP LEFA8
+
+LEF81: LD C,SIO_CHA_C ; Write SIO register + OTIR init table to ChA control
+ OUT (C),A
+ LD A,005H
+ OUT (SIO_CHB_C),A
+ LD A,080H
+ OUT (SIO_CHB_C),A
+ OTIR
+ RET
+
+LEF90: LD B,003H ; Read 3 trailing bytes (CRC), check for Rx overrun
+LEF92: CALL LEFA8
+ DJNZ LEF92 ; (-005H)
+LEF97: IN A,(SIO_CHA_C)
+ RRCA
+ JR NC,LEF97 ; (-005H)
+ LD A,001H
+ OUT (SIO_CHA_C),A
+ IN A,(SIO_CHA_C)
+ AND 040H
+ JR NZ,LEFC0 ; (+01aH)
+ OR A
+ RET
+
+LEFA8: LD A,010H ; Read one byte from QD: check DCD, wait Rx ready, IN A,(F4H)
+ OUT (SIO_CHA_C),A
+ IN A,(SIO_CHA_C)
+ AND 008H
+ JP Z,LEFC6
+ IN A,(SIO_CHA_C)
+ RLCA
+ JR C,LEFC0 ; (+008H)
+ RRCA
+ RRCA
+ JR NC,LEFA8 ; (-014H)
+ IN A,(SIO_CHA_D)
+ OR A
+ RET
+
+LEFC0: LD A,029H ; Error return chain: 29H=CRC, 2EH=?, 32H=not ready, 35H=?, 36H=unformat
+ LD HL,02E3EH
+ LD HL,0323EH
+ LD HL,0353EH
+ LD HL,0363EH
+ LD SP,(QDSAVESP)
+ SCF
+ RET
+
+LEFD4: PUSH AF ; Delay loop: outer*inner (BC outer, 86H inner)
+LEFD5: LD A,086H
+LEFD7: DEC A
+ JR NZ,LEFD7 ; (-003H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,LEFD5 ; (-00aH)
+ POP AF
+ RET
+
+LEFE1: DB 058H ; SIO init table: 58=ChReset, 04/10=WR4(x1,sync), 05/04=WR5(CRC16), 03/D0=WR3(Rx8bit,hunt), 06/16=WR6(sync1), 07/16=WR7(sync2)
+ DB 004H
+ DB 010H
+ DB 005H
+ DB 004H
+ DB 003H
+ DB 0D0H
+ DB 006H
+ DB 016H
+ DB 007H
+ DB 016H
+LEFEC: LD A,0E8H ; QD hardware presence check via memory-mapped I/O at E000/E001H
+ LD (0E000H),A
+ NOP
+ LD A,(0E001H)
+ AND 081H
+ RET NZ
+ LD SP,(QDSAVESP)
+ SCF
+ RET
+
+ DB 02EH ; EFFE-EFFF: Residual data
+ DB 041H
+ DS 6, 0FFH ; F000-F005: Unused (0xFF padding)
+LF006: ; F006-F7FF: Unused ROM space
+ DS 2042, 0FFH ; 0xFF padding to end of ROM
diff --git a/asm/mz2z009e.asm b/asm/mz2z009e.asm
new file mode 100644
index 0000000..aaa7881
--- /dev/null
+++ b/asm/mz2z009e.asm
@@ -0,0 +1,18208 @@
+; Disassembly of the file "mz2z009e.bin"
+;
+; CPU Type: Z80
+;
+; Created with dZ80 2.1
+;
+; on Tuesday, 17 of March 2026 at 05:57 PM
+;
+LSWF EQU 0CCH
+LSRF EQU 0CDH
+LSDMD EQU 0CEH
+LSSCR EQU 0CFH
+LSD0 EQU 0D0H
+LSD1 EQU 0D1H
+LSD2 EQU 0D2H
+LSD3 EQU 0D3H
+LSE0 EQU 0E0H
+LSE1 EQU 0E1H
+LSE2 EQU 0E2H
+LSE3 EQU 0E3H
+LSE4 EQU 0E4H
+LSE5 EQU 0E5H
+LSE6 EQU 0E6H
+EM_P0 EQU 0EAH
+EM_P1 EQU 0EBH
+LSPAL EQU 0F0H
+QDPA EQU 0F2H
+QDPB EQU 0F3H
+QDPC EQU 0F4H
+QDPD EQU 0F5H
+FDPA EQU 0F8H
+FDPB EQU 0F9H
+FDPC EQU 0FAH
+FDPD EQU 0FBH
+LSFC EQU 0FCH
+ELMD EQU 01000H
+ELMD1 EQU 01001H
+ELMD18 EQU 01012H
+ELMD20 EQU 01014H
+ELMD22 EQU 01016H
+ELMD24 EQU 01018H
+ELMD26 EQU 0101AH
+ELMD30 EQU 0101EH
+ELMD32 EQU 01020H
+ZTOP EQU 01040H
+ZLOG EQU 01042H
+ZRWX EQU 01043H
+ZEQT EQU 01044H
+ZCH EQU 01046H
+ZEOF EQU 01047H
+ZWRK1 EQU 01048H
+ZWRK2 EQU 01049H
+ZNXT EQU 0104AH
+ZDEVNM EQU 0104CH
+ZFLAG1 EQU 01050H
+ZFLAG2 EQU 01051H
+ZDIRMX EQU 01052H
+ZINIT EQU 01053H
+ZRO EQU 01055H
+ZWO EQU 01057H
+ZCL EQU 01059H
+ZKL EQU 0105BH
+ZINP EQU 0105DH
+ZOUT EQU 0105FH
+ZDELT EQU 01061H
+ZWDIR EQU 01063H
+ZFREE EQU 01065H
+DCHAN EQU 01069H
+DDEV EQU 0106AH
+.$CRT EQU 0106CH
+.$LPT EQU 0106EH
+TEXTST EQU 01070H
+TEXTED EQU 01072H
+VARST EQU 01074H
+STRST EQU 01076H
+VARED EQU 01078H
+TMPEND EQU 0107AH
+INTFAC EQU 0107CH
+MEMLMT EQU 0107EH
+MEMMAX EQU 01080H
+CURXY EQU 01082H
+POSADR EQU 01084H
+BITADR EQU 01086H
+POINTX EQU 01088H
+POINTY EQU 0108AH
+CURFLG EQU 0108CH
+CURMAK EQU 0108DH
+CMTMSG EQU 0108EH
+INPFLG EQU 0108FH
+DISPX EQU 01090H
+FILOUT EQU 01091H
+PSEL EQU 01092H
+PCRLF EQU 01093H
+LPT_TM EQU 01094H
+LPOSB EQU 01095H
+PSMAL EQU 01096H
+PNMODE EQU 01097H
+DMD EQU 01098H
+MEMOP EQU 01099H
+PWMODE EQU 0109AH
+CMODE EQU 0109BH
+CPLANE EQU 0109CH
+MAXCF EQU 0109DH
+PMASK EQU 0109EH
+GMODE EQU 0109FH
+APTS EQU 010F0H
+NAME EQU 010F1H
+SIZE EQU 01102H
+DTADR EQU 01104H
+EXADR EQU 01106H
+COMNT EQU 01108H
+DTEFG EQU 01171H
+DTEFGX EQU 01172H
+TMCNT EQU 01195H
+SUMDT EQU 01197H
+CSMDT EQU 01199H
+TEMPW EQU 0119EH
+KEYBM1 EQU 011A3H
+KEYBUF EQU 011A4H
+KEY262 EQU 012AAH
+KEY264 EQU 012ACH
+KEY266 EQU 012AEH
+FUNBUF EQU 012B2H
+INBUFC EQU 01352H
+INBUFL EQU 01353H
+INBUF EQU 01354H
+TIMST EQU 00033H
+LINLIM EQU 01364H
+KEYDAT EQU 01365H
+AMPM EQU 01366H
+SECD EQU 01367H
+XS EQU 01369H
+XE EQU 0136AH
+CWIDTH EQU 0136BH
+CSIZE EQU 0136DH
+YS EQU 0136FH
+YE EQU 01370H
+YW EQU 01371H
+SOF EQU 01372H
+SW EQU 01374H
+SSA EQU 01375H
+SEA EQU 01376H
+SSW EQU 01377H
+CRTMD1 EQU 01379H
+CRTMD2 EQU 0137AH
+SELCOL EQU 0137BH
+PAIWED EQU 0137CH
+PALBK EQU 0137EH
+PALAD EQU 0137FH
+PALTBL EQU 01381H
+PAL2T EQU 01385H
+PAL4T EQU 01389H
+PAL16T EQU 0138DH
+CURDT1 EQU 01391H
+CURDT2 EQU 01399H
+CURDT3 EQU 013A1H
+SCRNT0 EQU 013A9H
+EMFLG EQU 013C3H
+EMPTR EQU 013C4H
+EMWP0 EQU 013C6H
+EMWP1 EQU 013C8H
+PBCN EQU 013CEH
+HERRF EQU 013D9H
+CTABLE EQU 013DAH
+FONTBF EQU 01000H
+TEXTBF EQU 02000H
+BITBUF EQU 08000H
+IBUFE EQU 010F0H
+ERRTXT EQU 0FDA0H
+ATRB EQU 010F0H
+PRGSTART EQU 00000H
+TAPECOPY EQU 01200H
+BUILD_ORIG EQU 1
+BUILD_RFS EQU 0
+
+ ; Create an MZF Tape header.
+ ORG ATRB
+
+ ; Declare the MZF header to bootstrap BASIC from tape/SD.
+BOOTATRB: DB 01h ; Code Type, 01 = Machine Code.
+BOOTNAME: IF BUILD_ORIG = 1
+ DB "BASIC 2Z-009E ", 0Dh ; Title/Name (17 bytes).
+ ENDIF
+ IF BUILD_RFS = 1
+ DB "BASIC 2Z-009ERFS", 0Dh ; Title/Name (17 bytes).
+ ENDIF
+BOOTSIZE: DW BASICEND - L0000 ; Size of program.
+BOOTDTADR: DW TAPECOPY ; Load address of program.
+BOOTEXADR: DW EXECSTART + TAPECOPY ; Exec address of program.
+BOOTCOMNT: DS 104
+
+ ORG PRGSTART
+
+L0000: JP L0CAF ; Cold start entry - JP to initialization
+
+L0003: JP L028C
+
+L0006: JP L05EC
+
+ JP L05E8
+
+L000C: JP L0BFD
+
+L000F: JP L05F1
+
+L0012: JP L0BFF
+
+L0015: JP L0BEE
+
+SVC_ENTRY: JP SVC_DISP ; RST 18H - SVC (Supervisor Call) dispatcher
+
+ JP L041C
+
+BRKCHK: JP L05C1
+
+ JP L30CB
+
+ JP L30D2
+
+L0027: JP L3114
+
+ JP L311B
+
+ JP L3153
+
+L0030: JP L14BC
+
+ JP L0955
+
+L0036: LD B,B
+ NOP
+RST38: JP BREAKZ ; RST 38H - Interrupt handler
+
+ JP L098F
+
+L003E: JP L0D3F
+
+L0041: JP L0D30
+
+ JP L0D05
+
+ JP L0D20
+
+ JP L028C
+
+L004D: DB 000H ; System status / work area
+L004E: DB 000H
+L004F: DB 0FFH
+L0050: DB 000H
+ DB 0C3H
+ DB 0EEH
+ DB 00BH
+L0054: DS 2, 000H
+L0056: DB 000H
+L0057: DB 018H
+ DB 0C3H
+ DB 08AH
+ DB 003H
+L005B: DB 000H
+ DB 027H
+L005D: DB 071H
+ DB 000H
+L005F: DB 000H
+L0060: DB 0EFH
+ DB 0C3H
+ DB 037H
+ DB 00AH
+L0064: DB 000H
+L0065: DB 000H
+L0066: DB 000H
+L0067: DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 0ADH
+ DB 007H
+ DB 0F1H
+ DB 008H
+L0071: DB 015H
+ DB 008H
+ DB 012H
+ DB 008H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+L0080: DB 000H
+L0081: DB 0ADH
+ DB 007H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 01EH
+ DB 008H
+ DB LSWF
+ DB 007H
+ DB LSPAL
+ DB 007H
+ DB LSD1
+ DB 007H
+ DB QDPD
+ DB 007H
+ DB 054H
+ DB 007H
+ DB 074H
+ DB 007H
+ DB 018H
+ DB 008H
+ DB 0BAH
+ DB 008H
+ DB 012H
+ DB 008H
+ DB LSE5
+ DB 000H
+ DB 0ADH
+ DB 007H
+ DB LSE5
+L00A0: DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+.NOP: DB 000H
+.HL: DS 11, 000H
+.RET: DS 8, 000H
+PUSHRA: DS 6, 000H
+L00C0: DS 7, 000H
+PUSHR: DS 18, 000H
+L00D9: DB 000H
+L00DA: DI
+ LD SP,L0000
+ IM 1
+ OUT (LSE1),A
+ JP L1800
+
+BREAKZ: RET
+
+BREAKX: DI
+ OUT (LSE3),A
+L00E9: LD A,(HL)
+ OUT (LSE1),A
+ EI
+ERRORJ: RET
+
+POPRA: DI
+ OUT (LSE3),A
+ LD (HL),A
+ OUT (LSE1),A
+ EI
+ RET
+
+ JP L026A
+
+L00F9: NOP
+L00FA: JP (HL)
+
+IOOUT: EX (SP),IX
+ PUSH HL
+ PUSH BC
+ PUSH DE
+L0100: PUSH AF
+ PUSH HL
+ LD HL,L0114
+ EX (SP),HL
+ JP (IX)
+
+SKPDE: EX (SP),IX
+ PUSH HL
+ PUSH BC
+ PUSH DE
+DEVASC: PUSH HL
+ LD HL,L0115
+ EX (SP),HL
+ JP (IX)
+
+L0114: POP AF
+L0115: POP DE
+ POP BC
+ POP HL
+ POP IX
+ RET
+
+CHKACC: EX (SP),HL
+ PUSH BC
+ LD B,(HL)
+L011E: INC HL
+ CP (HL)
+ JR Z,L0127 ; (+005H)
+ DJNZ L011E ; (-006H)
+ INC HL
+ JR L012A ; (+003H)
+
+L0127: INC HL
+ DJNZ L0127 ; (-003H)
+L012A: POP BC
+ EX (SP),HL
+ RET
+
+LDDEMI: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ RET
+
+LDDEMD: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ RET
+
+?CLRHL: XOR A
+?SETHL: LD (HL),A
+ INC HL
+ DJNZ ?SETHL ; (-004H)
+ RET
+
+?CLRDE: XOR A
+?SETDE: LD (DE),A
+ INC DE
+L0140: DJNZ ?SETDE ; (-004H)
+ RET
+
+LDDEHL: LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ DJNZ LDDEHL ; (-006H)
+ RET
+
+LDHLDE: LD A,(DE)
+ LD (HL),A
+ INC HL
+ INC DE
+ DJNZ LDHLDE ; (-006H)
+ RET
+
+INDRCT: PUSH AF
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ POP AF
+ RET
+
+ADDHLA: ADD A,L
+ LD L,A
+ RET NC
+ INC H
+ RET
+
+INCHLF: INC HL
+HLFTCH: LD A,(HL)
+ CP 020H
+ JR Z,INCHLF ; (-006H)
+ RET
+
+TEST1: CALL HLFTCH
+ EX (SP),HL
+L0168: CP (HL)
+ INC HL
+ EX (SP),HL
+ RET NZ
+ INC HL
+ RET
+
+TESTX: CALL HLFTCH
+ EX (SP),HL
+ CP (HL)
+ INC HL
+ EX (SP),HL
+ INC HL
+ RET Z
+ LD A,001H
+ JR L0182 ; (+007H)
+
+L017B: XOR A
+ LD HL,0803EH
+ LD HL,L80F6
+L0182: PUSH AF
+ CALL L0D20
+ POP AF
+ JP L0000
+
+L018A: LD A,H
+ DEC A
+ CALL PE,0E805H
+ DEC B
+ RST 038H
+ DEC BC
+ LD B,E
+ INC C
+ EX AF,AF'
+ ADD HL,BC
+ XOR C
+ RRCA
+ LD A,00FH
+ RET Z
+ DEC BC
+ JP Z,0D80BH
+ DEC BC
+ AND 00BH
+L01A2: ADC A,H
+ LD (BC),A
+ ADC A,D
+ INC BC
+ POP BC
+ DEC B
+ AND B
+ INC D
+ ADD A,A
+ LD A,(BC)
+ ADC A,C
+ LD A,(BC)
+ SCF
+ LD A,(BC)
+ LD B,(HL)
+ INC D
+ HALT
+ INC D
+ SUB C
+ INC D
+ LD B,014H
+ LD E,H
+ LD (BC),A
+ POP HL
+ INC C
+ RET PE
+ INC C
+ RST 028H
+ INC C
+ PUSH HL
+ INC D
+ AND H
+ INC DE
+ LD (HL),D
+ INC DE
+ LD C,E
+ LD B,LSE5
+ NOP
+ LD A,00DH
+ JR NC,L01CE ; (+000H)
+L01CE: PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ ADC A,A
+ ADD HL,BC
+ LD D,L
+ ADD HL,BC
+ PUSH HL
+L01D9: NOP
+ RET PE
+ DEC DE
+ IN A,(01EH)
+ DEC E
+ RRA
+L01E0: POP AF
+ LD E,03DH
+ LD A,(DE)
+ CP B
+ LD A,(DE)
+ RET PO
+ ADD HL,DE
+ LD (HL),C
+ DEC DE
+ OR H
+ INC E
+ RET C
+ INC E
+ RET
+
+ INC E
+ POP HL
+ LD A,(DE)
+ RET NC
+ JR L01D9 ; (-01cH)
+
+ JR 00243H ; (+04cH)
+
+ ADD HL,DE
+ RRCA
+ JR L01A2 ; (-059H)
+
+ DEC DE
+ DEC DE
+ DEC E
+ DB 0DDH
+ INC D
+L0200: PUSH HL
+ NOP
+ LD E,B
+ LD E,067H
+ INC L
+ OR (HL)
+ INC L
+ LD B,(HL)
+ INC L
+ NOP
+ ADD HL,HL
+ SBC A,L
+ LD HL,(02925H)
+ XOR E
+ RRA
+ CALL M,L742A
+ RLCA
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+SVC_DISP: EX (SP),HL
+ PUSH AF
+ LD A,(HL)
+ INC HL
+ PUSH HL
+ LD HL,L018A
+ ADD A,A
+ ADD A,L
+ JR NC,L0237 ; (+001H)
+ INC H
+L0237: LD L,A
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ LD (00243H),HL
+ POP HL
+ POP AF
+ EX (SP),HL
+ JP L0000
+
+IOCALL: PUSH HL
+ PUSH DE
+ LD (00251H),IX
+ LD IX,00180H
+ OR A
+ CALL L0000
+ POP DE
+ POP HL
+ RET NC
+ OR A
+ SCF
+L0258: RET Z
+ JP 00180H
+
+ PUSH DE
+ LD B,000H
+L025F: LD A,(DE)
+ OR A
+ JR Z,L0268 ; (+005H)
+ INC DE
+ INC B
+ JR NZ,L025F ; (-008H)
+ DEC B
+L0268: POP DE
+ RET
+
+L026A: PUSH HL
+ LD HL,(L0054)
+ PUSH HL
+ PUSH DE
+ CALL PUSHW
+ POP DE
+ LD (HL),000H
+ POP HL
+ CALL L028C
+ JR C,L028A ; (+00eH)
+ LD A,(L005B)
+ SUB L
+ JR NC,L028A ; (+008H)
+ NEG
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ EX DE,HL
+ OR A
+L028A: POP HL
+ RET
+
+L028C: PUSH BC
+ PUSH HL
+ PUSH DE
+L028F: CALL L0391
+ CP 00DH
+ JP Z,L0311
+ CP 01BH
+ JR Z,L02E8 ; (+04dH)
+ PUSH AF
+ CP 020H
+DEASC: JR C,L02CD ; (+02dH)
+ JR L02C8 ; (+026H)
+
+L02A2: LD A,(L004D)
+ OR A
+ JR NZ,L02C8 ; (+020H)
+ LD A,(00B18H)
+ RRCA
+ JR C,L02C8 ; (+01aH)
+ LD A,(L004E)
+ OR A
+ JR NZ,L02C8 ; (+014H)
+ POP AF
+ LD HL,L06C1
+ CP 011H
+ JR Z,L02C3 ; (+007H)
+ LD HL,L06E7
+ CP 012H
+ JR NZ,L02C9 ; (+006H)
+L02C3: CALL L00FA
+ JR L028F ; (-039H)
+
+L02C8: POP AF
+L02C9: RST 018H
+ DB 003H
+ JR L028F ; (-03eH)
+
+L02CD: LD A,(L0060)
+ CP 0FFH
+ JR NZ,L02A2 ; (-032H)
+ POP AF
+ CP 017H
+ JR NC,L02C9 ; (-010H)
+ CP 011H
+ JR C,L02C9 ; (-014H)
+ LD HL,(00B18H)
+ BIT 6,L
+ JR Z,L02C9 ; (-01bH)
+ RST 018H
+ DB 004H
+ JR L028F ; (-059H)
+
+L02E8: SCF
+CKHEX: PUSH AF
+ LD A,00DH
+ RST 018H
+ DB 003H
+ POP AF
+ POP DE
+ POP HL
+ POP BC
+ RET
+
+L02F3: CALL PUSHW
+L02F6: LD A,(HL)
+ OR A
+MHALT: RET Z
+ DEC HL
+ DEC E
+ LD A,(L0056)
+ CP E
+ JR C,L02F6 ; (-00bH)
+ RET
+
+L0302: CALL PUSHW
+L0305: INC E
+ INC HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD A,(L0057)
+ CP E
+ JR NC,L0305 ; (-00bH)
+ RET
+
+L0311: LD HL,(L0054)
+SETDFL: CALL L02F3
+ LD D,E
+ CALL L0305
+ LD A,(L005B)
+ LD L,A
+ LD A,E
+ SUB D
+ LD E,A
+ LD H,D
+ADDP1: LD D,L
+ RST 018H
+ DB 01EH
+ LD A,(0005CH)
+ SUB D
+ADDP2: INC A
+ LD D,A
+ POP BC
+ PUSH BC
+ EXX
+ PUSH HL
+ LD HL,(L004F)
+ EXX
+L0334: PUSH DE
+ PUSH HL
+L0336: CALL BREAKX
+ RST 018H
+ DB 01CH
+ INC HL
+ LD (BC),A
+ INC BC
+L033E: EXX
+ DEC L
+ERRX: JR Z,L0354 ; (+012H)
+ EXX
+ DEC D
+ JR NZ,L0336 ; (-010H)
+ POP HL
+ PUSH BC
+ LD BC,00028H
+ ADD HL,BC
+ POP BC
+ POP DE
+ DEC E
+ JR NZ,L0334 ; (-01dH)
+ PUSH DE
+ PUSH HL
+ EXX
+L0354: EXX
+ POP HL
+ POP DE
+ EXX
+ POP HL
+ EXX
+ XOR A
+ LD (BC),A
+ LD L,C
+ LD H,B
+ POP DE
+ PUSH DE
+ PUSH HL
+ OR A
+ SBC HL,DE
+ LD B,L
+ POP HL
+ LD A,020H
+ LD D,A
+ JP Z,CKHEX
+ DEC HL
+L036D: LD A,(HL)
+ OR A
+ JR Z,L0376 ; (+005H)
+ CP D
+ JR NZ,L037D ; (+009H)
+ LD (HL),000H
+L0376: DEC HL
+ DJNZ L036D ; (-00cH)
+ OR A
+ JP CKHEX
+
+L037D: LD A,(HL)
+ OR A
+ JR NZ,L0383 ; (+002H)
+ LD (HL),020H
+L0383: DEC HL
+ DJNZ L037D ; (-009H)
+ OR A
+ JP CKHEX
+
+ INC A
+ JR Z,L0406 ; (+079H)
+ DEC A
+ JP Z,L041C
+L0391: CALL L0426
+ CALL SKPDE
+SETDNM: CALL L0648
+ CALL BREAKX
+ LD D,A
+ LD A,(L0060)
+ LD E,A
+ CALL POPRA
+ XOR A
+ DI
+ OUT (LSE3),A
+ LD (0E000H),A
+ CPL
+ LD (0E000H),A
+ OUT (LSE1),A
+ EI
+ LD C,000H
+ EX AF,AF'
+ PUSH AF
+ CALL L0459
+ LD A,000H
+L03BC: EX AF,AF'
+L03BD: LD B,010H
+L03BF: CALL L043C
+ CALL L0459
+ BIT 1,A
+ JR NZ,L03BD ; (-00cH)
+ DJNZ L03BF ; (-00cH)
+ BIT 0,A
+ JR Z,L03DB ; (+00cH)
+ BIT 2,A
+ JR NZ,L03EC ; (+019H)
+ EX AF,AF'
+ DEC A
+ JR NZ,L03BC ; (-01bH)
+ LD A,006H
+ JR L03EE ; (+013H)
+
+L03DB: PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,INKEY1
+ LD DE,L0B17
+ LD BC,0000AH
+L03E7: LDIR
+ POP BC
+ POP DE
+ POP HL
+L03EC: LD A,040H
+L03EE: LD (003BBH),A
+L03F1: CALL L043C
+ CALL L0494
+ OR A
+ JR Z,L03F1 ; (-009H)
+ LD (L005F),A
+ LD C,A
+ LD A,D
+ CALL POPRA
+ POP AF
+ EX AF,AF'
+ LD A,C
+ RET
+
+L0406: CALL L0426
+ PUSH HL
+ CALL L0494
+ LD HL,L005F
+ OR A
+ JR Z,L0419 ; (+006H)
+ CP (HL)
+ JR NZ,L0419 ; (+003H)
+ POP HL
+ XOR A
+ RET
+
+L0419: LD (HL),A
+ POP HL
+ RET
+
+L041C: CALL L0426
+ CALL L0494
+ LD (L005F),A
+ RET
+
+L0426: PUSH HL
+ LD HL,(L1360)
+ LD A,L
+ CP H
+ POP HL
+ RET Z
+ EX (SP),HL
+ INC A
+ LD (L1360),A
+ LD HL,L1361
+ CALL ADDHLA
+ LD A,(HL)
+ POP HL
+ RET
+
+L043C: DI
+ OUT (LSE3),A
+ LD A,(0E002H)
+ OUT (LSE1),A
+ EI
+ RLCA
+ RLCA
+ LD A,C
+ JR C,L0451 ; (+007H)
+ OR A
+ RET Z
+ LD C,000H
+ LD A,D
+DPALBK: JR L0456 ; (+005H)
+
+L0451: DEC A
+ RET Z
+ LD C,001H
+ LD A,E
+L0456: JP POPRA
+
+L0459: CALL SKPDE
+ LD DE,INKEY1
+ LD HL,L0B17
+ LD BC,L0A00
+ DI
+ OUT (LSE3),A
+L0468: LD A,B
+ ADD A,0EFH
+ LD (0E000H),A
+ CP FDPA
+ LD A,(0E001H)
+ JR NZ,L0477 ; (+002H)
+ OR 07FH
+L0477: CP 0FFH
+ JR Z,L047D ; (+002H)
+ SET 0,C
+L047D: EX DE,HL
+ CP (HL)
+ LD (HL),A
+ EX DE,HL
+ JR Z,L0485 ; (+002H)
+ SET 1,C
+L0485: CPL
+ AND (HL)
+ JR Z,L048B ; (+002H)
+ SET 2,C
+L048B: INC HL
+ INC DE
+ DJNZ L0468 ; (-027H)
+ LD A,C
+L0490: OUT (LSE1),A
+ EI
+DGCOL: RET
+
+L0494: CALL SKPDE
+ LD HL,L0B17
+ LD DE,INKEY1
+ PUSH HL
+ PUSH DE
+ LD BC,0000AH
+ LDIR
+ POP HL
+ POP DE
+ LD BC,L0AF9
+ DI
+ OUT (LSE3),A
+ LD A,C
+ LD (0E000H),A
+ NOP
+ LD A,(0E001H)
+ LD (DE),A
+L04B5: LD A,C
+ LD (0E000H),A
+ CP FDPA
+ LD A,(0E001H)
+ LD (DE),A
+ JR Z,L04E4 ; (+023H)
+ CPL
+ AND (HL)
+L04C3: LD (HL),A
+ INC DE
+ INC HL
+ DEC C
+ DJNZ L04B5 ; (-014H)
+ OUT (LSE1),A
+ EI
+ LD BC,L0A00
+L04CF: DEC HL
+ LD A,(HL)
+ OR A
+ JR NZ,L0507 ; (+033H)
+ INC C
+ DJNZ L04CF ; (-008H)
+ LD B,00AH
+L04D9: DEC DE
+ LD A,(DE)
+ CP 0FFH
+ JR NZ,L04E7 ; (+008H)
+L04DF: DJNZ L04D9 ; (-008H)
+L04E1: XOR A
+ JR L0490 ; (-054H)
+
+L04E4: XOR A
+ JR L04C3 ; (-024H)
+
+L04E7: LD A,B
+ CP 002H
+ JR NZ,L04F5 ; (+009H)
+L04EC: LD A,(DE)
+ AND 081H
+DWIDTH: JR NZ,L04DF ; (-012H)
+ LD A,01BH
+ JR L0490 ; (-065H)
+
+L04F5: CP 001H
+ JR Z,L04E1 ; (-018H)
+ CP 000H
+ JR NZ,L04DF ; (-01eH)
+ LD A,(DE)
+ AND 001H
+ JR NZ,L04DF ; (-023H)
+ LD A,(L005F)
+ JR L0490 ; (-077H)
+
+L0507: PUSH AF
+ LD A,B
+ LD (004FAH),A
+ LD A,(HL)
+ LD (004FFH),A
+ POP AF
+ DEC B
+ JR NZ,L054A ; (+036H)
+ CALL L05B7
+ LD A,(00B18H)
+ BIT 6,A
+ JR Z,L04E1 ; (-03dH)
+ BIT 0,A
+ LD A,B
+ JR NZ,L0525 ; (+002H)
+ ADD A,005H
+L0525: CP 00AH
+ JR NC,L04E1 ; (-048H)
+ LD L,A
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ LD BC,L12C0
+ ADD HL,BC
+ LD A,(HL)
+ OR A
+ JR Z,L04E1 ; (-057H)
+ LD DE,L1360
+ LD A,001H
+ LD (DE),A
+L053E: INC DE
+ LD BC,00010H
+ LDIR
+ LD A,(01362H)
+ JP L0490
+
+L054A: CALL L05B7
+ LD A,C
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,B
+ LD L,A
+ LD H,000H
+ LD A,(00B18H)
+ BIT 6,A
+ LD BC,L0B2B
+ JR Z,L058E ; (+02fH)
+ PUSH AF
+ LD A,(L0060)
+ CP 043H
+ JR NZ,L056B ; (+004H)
+ POP AF
+ XOR 001H
+ PUSH AF
+L056B: POP AF
+ BIT 0,A
+ JR NZ,L0573 ; (+003H)
+ LD BC,L0B3D
+L0573: LD A,(L0060)
+ CP 0FFH
+ JR NZ,L0587 ; (+00dH)
+ LD BC,L0B4F
+ LD A,(00B18H)
+ BIT 0,A
+ JR Z,L0587 ; (+003H)
+ LD BC,L0B61
+L0587: CALL L13E0
+ LD A,C
+ JP L0490
+
+L058E: CALL L13E0
+ LD A,C
+ CP 020H
+ JP C,L0490
+ LD HL,L0B73
+ LD B,005H
+L059C: CP (HL)
+ JR Z,L05B1 ; (+012H)
+ INC HL
+ DJNZ L059C ; (-006H)
+ CP 040H
+ JP C,L04E1
+ CP 05BH
+ JP NC,L04E1
+ SUB 040H
+ JP L0490
+
+L05B1: LD A,020H
+ SUB B
+ JP L0490
+
+L05B7: LD B,008H
+L05B9: RRCA
+ JR C,L05BF ; (+003H)
+ DJNZ L05B9 ; (-005H)
+ RET
+
+L05BF: DEC B
+ RET
+
+L05C1: LD A,0E8H
+ DI
+ OUT (LSE3),A
+ LD (0E000H),A
+ NOP
+ LD A,(0E001H)
+ OUT (LSE1),A
+ EI
+ AND 081H
+ RET Z
+ RLCA
+ RET C
+ JR L05C1 ; (-016H)
+
+L05D7: CALL SKPDE
+ LD HL,(L0054)
+ LD A,(L005B)
+ CP L
+ RET C
+ CALL PUSHW
+ LD A,(HL)
+ OR A
+ RET
+
+L05E8: CALL L05D7
+ RET Z
+L05EC: LD A,00DH
+ JP L0BFF
+
+L05F1: CALL L0BFD
+ LD A,(L0054)
+L05F7: SUB 00AH
+LBOUND: JR NC,L05F7 ; (-004H)
+ ADD A,00AH
+ RET Z
+ JR L05F1 ; (-00fH)
+
+L0600: CALL IOOUT
+ LD HL,(L0054)
+ PUSH HL
+ PUSH AF
+ RST 018H
+ DB 01EH
+ POP AF
+ RST 018H
+ DB 01DH
+ CALL POPRA
+ SET 3,H
+ LD DE,(0005DH)
+ LD A,E
+ OR D
+ CALL POPRA
+ POP HL
+ INC L
+HCLSW: LD A,(0005CH)
+ CP L
+ JP NC,L07EC
+L0624: LD A,(L005B)
+ LD L,A
+ INC H
+ PUSH HL
+ CALL PUSHW
+ LD (HL),001H
+ POP HL
+ LD A,(L0057)
+ CP H
+ JP NC,L07EC
+ LD H,A
+ PUSH HL
+ CALL L0730
+ POP HL
+ JP L07EC
+
+PUSHW: LD E,H
+ LD D,000H
+ LD HL,.HL
+ ADD HL,DE
+ RET
+
+L0648: LD HL,(L0054)
+ PUSH DE
+ PUSH AF
+ LD D,LSD0
+ LD E,L
+ LD A,H
+ ADD A,A
+HCLS: ADD A,A
+ ADD A,H
+ LD L,A
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,DE
+L065B: POP AF
+ POP DE
+ RET
+
+L065E: ADD A,A
+ LD HL,L0067
+ CALL ADDHLA
+ CALL INDRCT
+ JP (HL)
+
+L0669: LD B,D
+ LD C,E
+L066B: LD DE,00028H
+ EX DE,HL
+ ADD HL,DE
+ DEC B
+ JR Z,L067E ; (+00bH)
+ PUSH HL
+ PUSH BC
+ LD B,000H
+ CALL L069E
+ POP BC
+ POP HL
+ JR L066B ; (-013H)
+
+L067E: EX DE,HL
+ LD E,C
+L0680: LD A,(L005D)
+ LD D,A
+ LD A,(0005EH)
+ OR D
+ LD D,A
+L0689: DI
+ OUT (LSE3),A
+ LD (HL),000H
+ SET 3,H
+ LD (HL),D
+ RES 3,H
+ OUT (LSE1),A
+ EI
+ INC HL
+ DEC E
+ JR NZ,L0689 ; (-011H)
+ RET
+
+L069B: LD BC,00028H
+L069E: LD A,0B0H
+ JR L06A4 ; (+002H)
+
+L06A2: LD A,0B8H
+L06A4: LD (006BCH),A
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ RES 3,H
+ RES 3,D
+ CALL L06B8
+ POP BC
+ POP DE
+ POP HL
+ SET 3,H
+ SET 3,D
+L06B8: DI
+ OUT (LSE3),A
+ LDIR
+ OUT (LSE1),A
+ EI
+ RET
+
+L06C1: LD HL,0D000H
+ LD DE,0D7D0H
+ CALL L069B
+ LD HL,0D028H
+ LD DE,0D000H
+ LD B,032H
+L06D2: PUSH BC
+ CALL L069B
+ POP BC
+ DJNZ L06D2 ; (-007H)
+ LD HL,.HL
+ LD D,H
+ LD E,L
+ LD A,(HL)
+ INC HL
+ LD BC,00031H
+ LDIR
+ LD (DE),A
+ RET
+
+L06E7: LD HL,0D7CFH
+ LD DE,0D7F7H
+ LD B,032H
+L06EF: PUSH BC
+ LD BC,00028H
+ CALL L06A2
+ POP BC
+ DJNZ L06EF ; (-00aH)
+ LD HL,0D7D0H
+ LD DE,0D000H
+ CALL L069B
+ LD HL,L00D9
+ LD D,H
+ LD E,L
+ DEC HL
+ LD A,(DE)
+ LD BC,00031H
+ LDDR
+ LD (DE),A
+ RET
+
+L0710: LD HL,0D3E8H
+ XOR A
+ CALL POPRA
+ SET 3,H
+ LD A,(L005D)
+ CALL POPRA
+ LD DE,0D3E9H
+ LD BC,L0027
+ CALL L069E
+ CALL L06C1
+ XOR A
+ LD (L00C0),A
+ RET
+
+L0730: LD A,(L004E)
+ OR A
+ JR Z,L0710 ; (-026H)
+ CALL L075F
+ CALL L0669
+ LD A,(L0056)
+ LD H,A
+ CALL PUSHW
+ LD A,(L0057)
+ SUB E
+ LD B,A
+ LD (HL),000H
+ INC HL
+ LD D,H
+ LD E,L
+ INC DE
+ CALL NZ,LDHLDE
+ LD (HL),000H
+ RET
+
+L0754: LD A,(L005B)
+ LD L,A
+ LD A,(L0056)
+ LD H,A
+ JP L07EC
+
+L075F: LD HL,(L005B)
+ LD DE,(00056H)
+ LD A,D
+ SUB E
+ INC A
+ LD D,A
+ LD A,H
+ SUB L
+ INC A
+ LD E,A
+ CALL L0754
+ JP L0648
+
+ CALL SKPDE
+ LD A,(L004E)
+ OR A
+ JR NZ,L078B ; (+00eH)
+ LD A,031H
+ LD (L0057),A
+ CALL L078B
+ LD A,018H
+ LD (L0057),A
+ RET
+
+L078B: CALL L075F
+L078E: PUSH DE
+ PUSH HL
+ CALL L0680
+ POP HL
+ LD BC,00028H
+ ADD HL,BC
+ POP DE
+ DEC D
+ JR NZ,L078E ; (-00eH)
+ LD A,(L0056)
+ LD H,A
+ CALL PUSHW
+ LD A,(L0057)
+ SUB E
+ ADD A,002H
+ LD B,A
+ JP ?CLRHL
+
+ XOR A
+ LD (0091FH),A
+ LD HL,(L0054)
+ PUSH HL
+ INC H
+ CALL PUSHW
+ LD A,(L0057)
+ LD D,A
+L07BD: LD A,(HL)
+ OR A
+ JR Z,L07C7 ; (+006H)
+ INC HL
+ INC E
+ LD A,D
+ CP E
+ JR NC,L07BD ; (-00aH)
+L07C7: DEC E
+ POP HL
+ LD H,E
+ JR L07DB ; (+00fH)
+
+ LD HL,(L0054)
+ JR L07DF ; (+00eH)
+
+ LD HL,(L0054)
+ INC L
+ LD A,(0005CH)
+ CP L
+ JR NC,L07EC ; (+011H)
+L07DB: LD A,(L005B)
+ LD L,A
+L07DF: INC H
+ LD A,(L0057)
+ CP H
+ JR NC,L07EC ; (+006H)
+ LD H,A
+ PUSH HL
+ CALL L0730
+ POP HL
+L07EC: LD (L0054),HL
+ RET
+
+ LD HL,(L0054)
+ JR L0802 ; (+00dH)
+
+ LD HL,(L0054)
+ LD A,(L005B)
+ CP L
+ JR C,0080DH ; (+00fH)
+ LD A,(0005CH)
+ LD L,A
+L0802: LD A,(L0056)
+ CP H
+ JR C,0080FH ; (+007H)
+ LD A,(L0056)
+ LD H,A
+ LD A,02DH
+ LD A,025H
+ JR L07EC ; (-026H)
+
+ LD A,0EFH
+ LD HL,0433EH
+ LD HL,0FF3EH
+ LD (L0060),A
+ RET
+
+ LD HL,(L0054)
+ LD BC,(0005BH)
+ LD A,L
+ DEC L
+ INC C
+ CP C
+ JR NC,L0837 ; (+00cH)
+ PUSH HL
+ CALL PUSHW
+ LD A,(HL)
+ POP HL
+ INC L
+ OR A
+ JR Z,L0874 ; (+03fH)
+ LD L,B
+ DEC H
+L0837: LD DE,(00054H)
+ LD (L0054),HL
+L083E: EX DE,HL
+ LD A,(L005B)
+ CP L
+ JR C,L086D ; (+028H)
+L0845: PUSH HL
+ CALL PUSHW
+ LD A,(HL)
+ POP HL
+ OR A
+ JR Z,L085D ; (+00fH)
+ CALL L0882
+ PUSH HL
+ LD A,(0005CH)
+ LD L,A
+ DEC H
+ CALL L089A
+ POP HL
+ JR L0874 ; (+017H)
+
+L085D: LD A,(0005CH)
+ LD L,A
+ DEC H
+L0862: LD DE,(0005DH)
+ LD A,E
+ OR D
+ LD E,A
+ LD D,000H
+ JR L089A ; (+02dH)
+
+L086D: CALL L0882
+ DEC BC
+ CALL L0895
+L0874: INC L
+ LD A,(0005CH)
+ CP L
+ JR NC,L086D ; (-00eH)
+ LD A,(L005B)
+ LD L,A
+ INC H
+ JR L0845 ; (-03dH)
+
+L0882: PUSH HL
+ RST 018H
+ DB 01EH
+ SET 3,H
+ CALL BREAKX
+ LD E,A
+ RES 3,H
+ CALL BREAKX
+ LD D,A
+ LD B,H
+ LD C,L
+ POP HL
+ RET
+
+L0895: PUSH HL
+ LD H,B
+ LD L,C
+ JR L089D ; (+003H)
+
+L089A: PUSH HL
+ RST 018H
+ DB 01EH
+L089D: SET 3,H
+ LD A,E
+ CALL POPRA
+ RES 3,H
+ LD A,D
+ CALL POPRA
+ LD B,H
+ LD C,L
+ POP HL
+ RET
+
+L08AD: LD HL,(L0054)
+ CALL L0302
+ DEC E
+ LD H,E
+ LD A,(0005CH)
+ LD L,A
+ RET
+
+ CALL L08AD
+ CALL L0882
+ LD A,LSPAL
+ CP D
+ JR Z,L08C8 ; (+003H)
+ XOR A
+ CP D
+ RET NZ
+L08C8: LD BC,(0005BH)
+ EX DE,HL
+ LD HL,(L0054)
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ JR Z,L0862 ; (-074H)
+ LD A,C
+ CP L
+ JR NC,L08E4 ; (+00aH)
+ DEC L
+ CALL L0882
+ INC BC
+ CALL L0895
+ JR L08C8 ; (-01cH)
+
+L08E4: PUSH HL
+ LD L,B
+ DEC H
+ CALL L0882
+ EX (SP),HL
+ CALL L089A
+ POP HL
+ JR L08C8 ; (-029H)
+
+ LD HL,L0071
+ LD (L005D),HL
+L08F7: LD HL,L1800
+ LD (L0056),HL
+ LD HL,L2700
+ LD (L005B),HL
+ XOR A
+ LD (L004E),A
+ RET
+
+ CALL SKPDE
+L090B: LD A,(DE)
+ INC DE
+ OR A
+ RET Z
+ LD C,A
+ CP 005H
+ JR Z,L0933 ; (+01fH)
+ CP 006H
+ JR Z,L0932 ; (+01aH)
+ SUB 041H
+ CP 01AH
+ JR NC,HCURON ; (+00dH)
+ LD A,000H
+ OR A
+ JR Z,HCURON ; (+008H)
+ LD A,C
+ LD HL,L08F7
+ CALL ADDHLA
+ LD C,(HL)
+HCURON: LD A,C
+ RST 018H
+ DB 003H
+ CP 00DH
+ JR NZ,L090B ; (-027H)
+L0932: XOR A
+L0933: LD (0091FH),A
+ JR L090B ; (-02dH)
+
+ AND C
+ SBC A,D
+ SBC A,A
+HCUROF: SBC A,H
+ SUB D
+ XOR D
+ SUB A
+ SBC A,B
+ AND (HL)
+ XOR A
+ XOR C
+ CP B
+ OR E
+FLASH: OR B
+ OR A
+ SBC A,(HL)
+ AND B
+ SBC A,L
+ AND H
+ SUB (HL)
+ AND L
+CURMOV: XOR E
+ AND E
+ SBC A,E
+ CP L
+ AND D
+ NOP
+ NOP
+L0954: NOP
+L0955: PUSH DE
+ PUSH HL
+ LD (L0954),A
+ LD (00952H),DE
+ LD HL,0E007H
+ DI
+ OUT (LSE3),A
+ LD (HL),0B4H
+ LD (HL),074H
+ DEC HL
+ LD (HL),0C0H
+ LD (HL),0A8H
+ DEC HL
+ LD (HL),002H
+ LD (HL),000H
+L0972: LD HL,0E007H
+ LD (HL),080H
+PONTCB: DEC HL
+ LD E,(HL)
+ LD D,(HL)
+PONTB: LD HL,0A8C0H
+ OR A
+ SBC HL,DE
+ JR NZ,L0972 ; (-010H)
+ LD HL,0E005H
+ LD (HL),0F6H
+ LD (HL),079H
+ OUT (LSE1),A
+ EI
+ POP HL
+ POP DE
+ RET
+
+L098F: PUSH BC
+ PUSH HL
+ DI
+ OUT (LSE3),A
+ LD HL,0E007H
+ LD (HL),080H
+ LD (HL),040H
+ DEC HL
+ LD E,(HL)
+ LD D,(HL)
+ DEC HL
+ LD C,(HL)
+ LD B,(HL)
+ OUT (LSE1),A
+ EI
+ PUSH BC
+ LD A,D
+L09A6: OR E
+ JR NZ,L09AC ; (+003H)
+ LD DE,0A8C0H
+L09AC: LD HL,0A8C0H
+ LD A,(L0954)
+ OR A
+ SBC HL,DE
+ LD DE,L5460
+ CALL L09EB
+ OR A
+ LD DE,(00952H)
+ RR D
+ RR E
+ PUSH AF
+ ADD HL,DE
+ LD DE,L5460
+ CALL L09EB
+ LD C,A
+ ADD HL,HL
+ EX DE,HL
+ POP AF
+ LD A,C
+ POP BC
+ PUSH AF
+ OR A
+ LD HL,03CFBH
+ SBC HL,BC
+ JR C,L09DC ; (+001H)
+ INC DE
+L09DC: POP AF
+ JR NC,L09E0 ; (+001H)
+ INC DE
+L09E0: EX DE,HL
+ LD DE,0A8C0H
+ CALL L09EB
+ EX DE,HL
+ POP HL
+ POP BC
+ RET
+
+L09EB: OR A
+ SBC HL,DE
+ JR NC,L09F2 ; (+002H)
+ ADD HL,DE
+ RET
+
+L09F2: XOR 001H
+ RET
+
+L09F5: LD A,04EH
+ DEC L
+ RET Z
+ LD A,056H
+ DEC L
+ RET Z
+ LD A,05EH
+ DEC L
+L0A00: RET Z
+ LD A,066H
+ DEC L
+ RET
+
+L0A05: PUSH DE
+ LD (00A23H),A
+ LD DE,0FFFFH
+ LD HL,0E002H
+ DI
+ OUT (LSE3),A
+L0A12: BIT 7,(HL)
+ JR Z,L0A12 ; (-004H)
+L0A16: BIT 7,(HL)
+ JR NZ,L0A16 ; (-004H)
+ LD L,008H
+ LD A,011H
+L0A1E: DEC A
+ JR NZ,L0A1E ; (-003H)
+L0A21: INC DE
+ BIT 0,(HL)
+ JR Z,L0A21 ; (-005H)
+ OUT (LSE1),A
+ EI
+ LD A,D
+ OR A
+ LD A,E
+ JR Z,L0A30 ; (+002H)
+ LD A,0FFH
+L0A30: LD (L0066),A
+ POP DE
+ POP HL
+ SCF
+ RET
+
+ INC A
+ PUSH HL
+ LD L,A
+ CALL L09F5
+ JR Z,L0A05 ; (-03aH)
+ CALL L09F5
+ LD (00A75H),A
+ LD (00A55H),A
+ LD HL,0E002H
+ DI
+ OUT (LSE3),A
+L0A4E: BIT 7,(HL)
+ JR Z,L0A4E ; (-004H)
+ LD L,008H
+ BIT 0,(HL)
+ LD A,L
+ JR Z,L0A5A ; (+001H)
+ XOR A
+L0A5A: LD (00A7CH),A
+ OUT (LSE1),A
+ LD A,009H
+L0A61: PUSH AF
+ XOR A
+L0A63: DEC A
+ JR NZ,L0A63 ; (-003H)
+ POP AF
+BINPUT: DEC A
+ JR NZ,L0A61 ; (-009H)
+ OUT (LSE3),A
+ LD L,002H
+L0A6E: BIT 7,(HL)
+ JR Z,L0A6E ; (-004H)
+ LD L,008H
+ BIT 0,(HL)
+ LD A,L
+ JR Z,L0A7A ; (+001H)
+ XOR A
+L0A7A: LD L,A
+ LD A,000H
+ AND L
+ LD (L0065),A
+ OUT (LSE1),A
+ EI
+GETL: POP HL
+ OR A
+ RET
+
+ DI
+ RET
+
+ EI
+ RET
+
+ DS 110, 000H
+L0AF9: DS 7, 000H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L0B17: NOP
+ NOP
+ NOP
+INKEY$: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+INKEY1: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L0B2B: JP PE,0900BH
+ RLA
+ CALL M,00019H
+ DEC SP
+ LD A,(L180D)
+ DJNZ L0B4A ; (+012H)
+ LD DE,01413H
+ CCF
+ CPL
+L0B3D: LD HL,(0900CH)
+ RLA
+ EI
+ DEC B
+ NOP
+ DEC HL
+ LD HL,(0160DH)
+ DEC D
+ LD (DE),A
+L0B4A: LD DE,01413H
+ ADD A,05FH
+L0B4F: JP (HL)
+
+ INC C
+ SUB B
+ RLA
+ LD L,B
+ DEC B
+ NOP
+ ADD A,H
+ JP (HL)
+
+ DEC C
+ LD D,015H
+ LD (DE),A
+ LD DE,01413H
+ ADC A,A
+ ADC A,E
+L0B61: LD L,D
+ INC C
+ SUB B
+ RLA
+ LD L,H
+ ADD HL,DE
+ NOP
+ CP 089H
+ DEC C
+ LD D,015H
+ LD (DE),A
+ LD DE,01413H
+ ADC A,D
+ LD A,E
+L0B73: LD E,E
+ LD E,H
+ LD E,L
+ LD E,(HL)
+ CPL
+L0B78: SUB C
+ DEC BC
+ LD B,E
+ LD D,D
+ LD D,H
+ NOP
+ ADC A,D
+ NOP
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+INKEYF: XOR D
+ DEC BC
+ OR L
+ DEC BC
+ CALL NZ,0000BH
+ RRCA
+ LD C,E
+ LD B,D
+ NOP
+ NOP
+ ADD A,C
+ NOP
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+INKEY0: NOP
+ PUSH HL
+ NOP
+ XOR D
+ DEC BC
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ RST 018H
+ DB 00CH
+ LD A,080H
+ RET C
+ JP C,0017DH
+ RST 018H
+ DB 017H
+ RET
+
+ EX AF,AF'
+ LD HL,L0BFF
+L0BB9: LD A,(L1090)
+ OR A
+ JR Z,L0BC2 ; (+003H)
+ LD HL,L0C43
+L0BC2: EX AF,AF'
+ JP (HL)
+
+ LD A,(L0054)
+ RET
+
+ LD A,00DH
+L0BCA: PUSH AF
+ LD A,(L1091)
+L0BCE: OR A
+ JR NZ,L0BD4 ; (+003H)
+ POP AF
+ JR L0BFF ; (+02bH)
+
+L0BD4: POP AF
+ JP L0F3E
+
+ PUSH AF
+ LD A,(L1091)
+ OR A
+ JR NZ,L0BE2 ; (+003H)
+ POP AF
+ JR L0C43 ; (+061H)
+
+L0BE2: POP AF
+ JP L0F2E
+
+ CALL SKPDE
+ LD HL,L0BCA
+ JR L0BF4 ; (+006H)
+
+L0BEE: CALL SKPDE
+ LD HL,L0BFF
+L0BF4: LD A,(DE)
+ OR A
+ RET Z
+ CALL L00FA
+ INC DE
+ JR L0BF4 ; (-009H)
+
+L0BFD: LD A,020H
+L0BFF: CALL IOOUT
+L0C02: LD C,A
+ LD A,(L004D)
+ OR A
+ JR Z,L0C3A ; (+031H)
+ LD A,C
+ CP 020H
+ JR NC,L0C37 ; (+029H)
+ LD DE,(00054H)
+ LD HL,(L005B)
+ CP 014H
+ JR Z,L0C21 ; (+008H)
+ CP 012H
+ JR NZ,L0C26 ; (+009H)
+ LD HL,(L0056)
+ LD E,D
+L0C21: LD A,L
+ CP E
+ JP NC,L0D3F
+L0C26: LD A,C
+ LD HL,L0C8F
+ ADD A,L
+ LD L,A
+ JR NC,L0C2F ; (+001H)
+ INC H
+L0C2F: LD A,(HL)
+ INC A
+ JR Z,L0C3A ; (+007H)
+ DEC A
+ JP Z,L0D3F
+L0C37: CALL L0C60
+L0C3A: LD A,C
+ CP 020H
+ JP C,L065E
+ JP L0600
+
+L0C43: CALL IOOUT
+ LD C,A
+ CP 00DH
+ JR Z,L0C02 ; (-049H)
+ CALL L0600
+ LD A,(L004D)
+ OR A
+ RET Z
+ LD A,C
+ CP 011H
+ JR C,L0C8A ; (+032H)
+ CP 017H
+ JR C,L0C8C ; (+030H)
+ CP 020H
+ JR C,L0C8A ; (+02aH)
+L0C60: CP 060H
+ JR C,L0C8C ; (+028H)
+ CALL CHKACC
+ ADD HL,BC
+ ADD A,B
+ LD A,E
+ ADD A,08BH
+ RST 010H
+ RST 008H
+ CALL M,0FFFBH
+ JR Z,L0C8C ; (+019H)
+ CP 092H
+ JR C,L0C8A ; (+013H)
+ CALL CHKACC
+ ADD HL,BC
+ SBC A,C
+ SUB L
+ XOR H
+ AND A
+ OR H
+ OR C
+ OR (HL)
+ OR L
+ CP H
+ JR Z,L0C8A ; (+004H)
+ CP 0BFH
+ JR C,L0C8C ; (+002H)
+L0C8A: LD A,02EH
+L0C8C: JP L0FA9
+
+L0C8F: NOP
+ NOP
+ NOP
+ NOP
+ RST 038H
+ RST 038H
+ RST 038H
+ DEC E
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC C
+ NOP
+ NOP
+ NOP
+ LD A,(BC)
+ INC BC
+ JR NZ,00CB2H ; (+00eH)
+ NOP
+ NOP
+ RST 038H
+ NOP
+ RST 038H
+ RST 038H
+ DEC C
+ RST 038H
+ NOP
+ NOP
+ NOP
+L0CAF: DI
+ XOR A
+ LD (L004D),A
+ LD (L1091),A
+ LD SP,L0000
+ OUT (LSE1),A
+ LD A,004H
+ RST 018H
+ DB 003H
+L0CC0: LD HL,L1B18
+ XOR A
+ LD (L0CC0),A
+ LD D,A
+ LD E,A
+ RST 018H
+ DB 026H
+ LD DE,$CMT
+ LD A,B
+ DEC A
+ JR Z,L0CDB ; (+009H)
+ LD DE,$FD
+ DEC A
+ JR Z,L0CDB ; (+003H)
+ LD DE,$QD
+L0CDB: LD A,C
+ RST 018H
+ DB 03AH
+ JP L00DA
+
+ LD HL,(L1072)
+ ADD HL,DE
+ LD (L1072),HL
+ LD HL,(L1074)
+ ADD HL,DE
+ LD (L1074),HL
+ LD HL,(L1076)
+ ADD HL,DE
+ LD (L1076),HL
+ LD HL,(L1078)
+ ADD HL,DE
+ LD (L1078),HL
+ LD HL,(L107A)
+ ADD HL,DE
+ LD (L107A),HL
+ RET
+
+L0D05: LD HL,(00B15H)
+L0D08: LD A,H
+ OR L
+ JR Z,L0D20 ; (+014H)
+ PUSH DE
+ EX DE,HL
+ LD HL,0E004H
+ DI
+ OUT (LSE3),A
+ LD (HL),E
+ LD (HL),D
+ LD A,001H
+ LD (0E008H),A
+ OUT (LSE1),A
+ EI
+ POP DE
+ RET
+
+L0D20: LD A,036H
+BRKEY: DI
+ OUT (LSE3),A
+ LD (0E007H),A
+ XOR A
+ LD (0E008H),A
+ OUT (LSE1),A
+ EI
+ RET
+
+L0D30: PUSH AF
+ PUSH BC
+ AND 00FH
+ LD B,A
+ LD A,008H
+ SUB B
+ LD (L119E),A
+ POP BC
+ POP AF
+ RET
+
+L0D3E: XOR A
+L0D3F: PUSH HL
+ LD HL,L04EC
+ JR Z,L0D4E ; (+009H)
+ CP 001H
+L0D47: JR Z,L0D59 ; (+010H)
+ CALL L0D08
+ POP HL
+ RET
+
+L0D4E: CALL L0D08
+ LD HL,L2710
+L0D54: DEC HL
+ LD A,H
+ OR L
+ JR NZ,L0D54 ; (-005H)
+L0D59: CALL L0D20
+ POP HL
+ RET
+
+$USR: DS 2, 000H ; $USR device descriptor
+L0D60: DB "USR",000H,09FH
+ DS 2, 000H
+ DB LSE5
+ DB 000H
+ DB 077H
+ DB 00DH
+ DB 077H
+ DB 00DH
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 086H
+ DB 00DH
+ DB 086H
+ DB 00DH
+ DB LSE5
+ DB 000H
+ DB 021H
+ DB 001H
+ DB 010H
+ DB 0DFH
+ DB 013H
+ LD A,D
+ OR E
+ JP Z,01F9AH
+ LD (ZWRK1),DE
+ RET
+
+ LD HL,(ZWRK1)
+ JP (HL)
+
+ DS 83, 000H
+EQTBL: DS 25, 000H
+$KB: DS 10, 000H
+L0E00: DS 16, 000H
+L0E10: DS 46, 000H
+L0E3E: DS 35, 000H
+CRT1C: DS 82, 000H
+PLTOTX: DS 77, 000H
+ RST 030H
+ CPL
+ LD C,H
+ LD D,B
+ LD D,H
+ NOP
+ ADC A,D
+ NOP
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ NOP
+ NOP
+ DAA
+ RRCA
+ ADD HL,DE
+ RRCA
+ LD A,(L1095)
+ RET
+
+L0F1D: LD A,00DH
+ CALL L0FA9
+ XOR A
+ LD (L1095),A
+ RET
+
+ LD HL,L1090
+ BIT 0,(HL)
+ JR Z,L0F3E ; (+010H)
+L0F2E: CALL IOOUT
+ LD B,A
+ LD A,(L004D)
+ OR A
+ LD A,B
+ LD E,0FFH
+ JR Z,L0F4E ; (+013H)
+ RST 018H
+ DB 004H
+ RET
+
+L0F3E: CALL IOOUT
+ LD B,A
+ LD A,(L004D)
+ OR A
+ LD A,B
+ LD E,000H
+ JR Z,L0F4E ; (+003H)
+ RST 018H
+ DB 003H
+ RET
+
+L0F4E: LD A,(L1097)
+ CP 001H
+ LD A,044H
+ JP NZ,00180H
+ LD A,B
+ CP 00DH
+ JR Z,L0F1D ; (-040H)
+ LD HL,L1095
+ INC (HL)
+ SUB 005H
+ CP 002H
+ JR C,L0F7C ; (+015H)
+ LD A,B
+ CP 020H
+ JR NC,L0FB0 ; (+044H)
+ BIT 0,E
+ JR Z,L0F80 ; (+010H)
+ SUB 011H
+ CP 006H
+ JR C,L0FB1 ; (+03bH)
+ SUB QDPC
+ CP 002H
+ JR NC,L0FAE ; (+032H)
+L0F7C: LD A,02EH
+ JR L0FB0 ; (+030H)
+
+L0F80: LD HL,L1095
+ DEC (HL)
+ LD A,B
+ CP 015H
+ LD B,00FH
+ JR Z,L0FB1 ; (+026H)
+ CP 011H
+ LD B,009H
+ JR Z,L0FB1 ; (+020H)
+ CP 012H
+ LD B,00BH
+ JR Z,L0FB1 ; (+01aH)
+ CP 016H
+ JR NZ,L0FB0 ; (+015H)
+ LD A,00CH
+ CALL L0FB0
+ LD A,00AH
+ CALL L0FB0
+ LD A,003H
+ JR L0FB0 ; (+007H)
+
+L0FA9: CALL IOOUT
+ JR L0FB0 ; (+002H)
+
+L0FAE: LD A,020H
+L0FB0: LD B,A
+L0FB1: CALL L0FCA
+ LD A,B
+ DI
+ CALL L0FBB
+ EI
+ RET
+
+L0FBB: OUT (0FFH),A
+ LD A,080H
+ OUT (0FEH),A
+ LD A,001H
+ CALL L0FCB
+L0FC6: XOR A
+ OUT (0FEH),A
+ RET
+
+L0FCA: XOR A
+L0FCB: CALL SKPDE
+ LD C,A
+ LD B,00EH
+L0FD1: LD HL,0E678H
+L0FD4: IN A,(0FEH)
+ AND 00DH
+ CP C
+ RET Z
+ DEC HL
+ LD A,H
+ OR L
+ NOP
+ NOP
+ JR NZ,L0FD4 ; (-00dH)
+ DJNZ L0FD1 ; (-012H)
+ XOR A
+ LD (L004D),A
+ CALL L0FC6
+ LD A,041H
+ JP L0182
+
+ DS 17, 000H
+L1000: NOP
+L1001: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1012: NOP
+ NOP
+L1014: NOP
+ NOP
+ NOP
+ NOP
+L1018: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L103E: NOP
+ NOP
+L1040: LD (BC),A
+ NOP
+L1042: NOP
+L1043: NOP
+L1044: NOP
+ NOP
+L1046: NOP
+ NOP
+ NOP
+ NOP
+L104A: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1050: LD BC,L0000
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1069: NOP
+ NOP
+ NOP
+ LD A,B
+ DEC BC
+ NOP
+ RRCA
+L1070: NOP
+ NOP
+L1072: NOP
+ NOP
+L1074: NOP
+ NOP
+L1076: NOP
+ NOP
+L1078: NOP
+ NOP
+L107A: NOP
+ NOP
+L107C: NOP
+ NOP
+L107E: NOP
+ NOP
+ NOP
+ RST 038H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1090: NOP
+L1091: NOP
+ LD BC,L0E00
+L1095: NOP
+ NOP
+L1097: LD BC,L0000
+ DS 86, 000H
+L10F0: DS 78, 000H
+L113E: DS 84, 000H
+ DB 0EFH
+ DS 4, 000H
+L1197: DS 6, 000H
+ DB 001H
+L119E: DB 004H
+ DB 005H
+ DS 3, 000H
+L11A3: DB 000H
+L11A4: DS 124, 000H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L123E: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1277: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L12C0: RLCA
+ LD D,D
+ LD D,L
+ LD C,(HL)
+ JR NZ,012E6H ; (+020H)
+ JR NZ,L12D5 ; (+00dH)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC B
+ LD C,H
+ LD C,C
+ LD D,E
+ LD D,H
+L12D5: JR NZ,L12D7 ; (+000H)
+L12D7: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC B
+ LD B,C
+ LD D,L
+ LD D,H
+ LD C,A
+ JR NZ,L12E7 ; (+000H)
+L12E7: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD B,052H
+ LD B,L
+ LD C,(HL)
+ LD D,L
+ LD C,L
+ JR NZ,L12F8 ; (+000H)
+L12F8: DS 8, 000H
+ INC B
+ LD B,H
+ LD C,C
+ LD D,D
+ JR NZ,L1306 ; (+000H)
+L1306: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC B
+ LD B,E
+ LD C,B
+ LD D,D
+ INC H
+ JR Z,L1317 ; (+000H)
+L1317: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ EX AF,AF'
+ LD B,H
+ LD B,L
+ LD B,(HL)
+ JR NZ,L1371 ; (+04bH)
+ LD B,L
+ LD E,C
+ JR Z,L132A ; (+000H)
+L132A: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ INC B
+ LD B,E
+ LD C,A
+ LD C,(HL)
+ LD D,H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L133E: NOP
+ NOP
+ LD B,053H
+ LD B,C
+ LD D,(HL)
+ LD B,L
+ JR NZ,L1367 ; (+020H)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD B,04CH
+ LD C,A
+ LD B,C
+ LD B,H
+ JR NZ,L1377 ; (+020H)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1360: NOP
+L1361: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1367: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1371: NOP
+ CALL L13D8
+ JR Z,L1385 ; (+00eH)
+L1377: CP 010H
+ JR C,L139B ; (+020H)
+ CP 080H
+ JR Z,L13A1 ; (+022H)
+ CP 0C0H
+ JR Z,L13A1 ; (+01eH)
+ JR L1391 ; (+00cH)
+
+L1385: CP 003H
+ JR Z,L139B ; (+012H)
+ CP 005H
+ JR Z,L139E ; (+011H)
+ CP 006H
+ JR Z,L139E ; (+00dH)
+L1391: DI
+ OUT (LSE2),A
+ CALL L0BB9
+ OUT (LSE0),A
+ EI
+ RET
+
+L139B: LD A,LSPAL
+ RET
+
+L139E: ADD A,0C9H
+ RET
+
+L13A1: SUB 040H
+ RET
+
+L13A4: CP LSPAL
+ JR NC,L13CF ; (+027H)
+ CP 073H
+ JR Z,L139B ; (-011H)
+ CALL L13D8
+ JR Z,L13BB ; (+00aH)
+ CP 040H
+ JR Z,L13D5 ; (+020H)
+ CP 080H
+ JR Z,L13D5 ; (+01cH)
+ JR L13C3 ; (+008H)
+
+L13BB: CP LSDMD
+ JR Z,L13D2 ; (+013H)
+ CP LSSCR
+ JR Z,L13D2 ; (+00fH)
+L13C3: DI
+ OUT (LSE2),A
+ CALL L0BCE
+ OUT (LSE0),A
+ EI
+ CP LSPAL
+ RET NZ
+L13CF: LD A,020H
+ RET
+
+L13D2: SUB 0C9H
+ RET
+
+L13D5: ADD A,040H
+ RET
+
+L13D8: PUSH HL
+ LD HL,L0036
+ BIT 6,(HL)
+ POP HL
+ RET
+
+L13E0: PUSH AF
+ LD A,L
+ SUB 008H
+ JR C,L13EA ; (+004H)
+ SUB 030H
+ JR C,L13F1 ; (+007H)
+L13EA: ADD A,00AH
+ LD L,A
+ ADD HL,BC
+ LD C,(HL)
+ POP AF
+ RET
+
+L13F1: LD A,(BC)
+ PUSH AF
+ INC BC
+ LD A,(BC)
+ LD B,A
+ POP AF
+ LD C,A
+ ADD HL,BC
+ DI
+ OUT (LSE2),A
+ LD A,(HL)
+ OUT (LSE0),A
+ EI
+ CALL L13A4
+ LD C,A
+ POP AF
+ RET
+
+ PUSH HL
+ PUSH BC
+ PUSH DE
+ LD DE,L2710
+ CALL L142C
+ LD DE,003E8H
+ CALL L142C
+ LD DE,L0064
+ CALL L142C
+ LD DE,0000AH
+ CALL L142C
+ LD A,L
+ POP DE
+ OR 030H
+ LD (DE),A
+ INC DE
+ XOR A
+ LD (DE),A
+ POP BC
+ POP HL
+ RET
+
+L142C: LD A,0FFH
+L142E: INC A
+ OR A
+ SBC HL,DE
+ JR NC,L142E ; (-006H)
+ ADD HL,DE
+ OR A
+ JR NZ,L143B ; (+003H)
+ OR B
+ RET Z
+ XOR A
+L143B: LD B,001H
+ OR 030H
+ POP DE
+ EX (SP),HL
+ LD (HL),A
+ INC HL
+ EX (SP),HL
+ PUSH DE
+ RET
+
+ CALL TEST1
+ DB 024H
+ JR Z,L1476 ; (+02aH)
+ LD DE,L0000
+L144F: CALL HLFTCH
+ SUB 030H
+ CP 00AH
+ RET NC
+ INC HL
+ PUSH HL
+ LD H,D
+ LD L,E
+ ADD HL,HL
+ JR C,L1471 ; (+013H)
+ ADD HL,HL
+ JR C,L1471 ; (+010H)
+ ADD HL,DE
+ JR C,L1471 ; (+00dH)
+ ADD HL,HL
+ JR C,L1471 ; (+00aH)
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ JR C,L1471 ; (+004H)
+ EX DE,HL
+ POP HL
+ JR L144F ; (-022H)
+
+L1471: LD A,002H
+ JP L0182
+
+L1476: LD DE,L0000
+L1479: LD A,(HL)
+ CALL L1491
+ RET C
+ INC HL
+ EX DE,HL
+ ADD HL,HL
+ JR C,L1471 ; (-012H)
+ ADD HL,HL
+ JR C,L1471 ; (-015H)
+ ADD HL,HL
+ JR C,L1471 ; (-018H)
+ ADD HL,HL
+ JR C,L1471 ; (-01bH)
+ ADD A,L
+ LD L,A
+ EX DE,HL
+ JR L1479 ; (-018H)
+
+L1491: SUB 030H
+ CP 00AH
+ CCF
+ RET NC
+ SUB 011H
+ CP 006H
+ CCF
+ RET C
+ ADD A,00AH
+ RET
+
+ CALL L14AD
+ CP 020H
+ RET NZ
+L14A6: CALL L14AD
+ OR A
+ JR Z,L14A6 ; (-006H)
+ RET
+
+L14AD: RST 018H
+ DB 00EH
+ JR Z,L14B8 ; (+007H)
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ CP 01BH
+ RET NZ
+L14B8: JP 0017DH
+
+ RET
+
+L14BC: CALL SKPDE
+ LD HL,L11A4
+ LD B,000H
+ PUSH HL
+ CALL LDHLDE
+ POP DE
+ LD (014DAH),SP
+ LD SP,L10F0
+ DI
+ OUT (LSE4),A
+ RST 030H
+ OUT (LSE0),A
+ OUT (LSE1),A
+ EI
+ LD SP,L0000
+ RET
+
+ LD (DDEV),DE
+ LD (L1069),A
+ RET
+
+ LD C,A
+ RST 018H
+ DB 020H
+ RST 018H
+ DB 002H
+ BIT 7,C
+ JR Z,L14F8 ; (+00aH)
+ LD HL,L11A4
+ PUSH HL
+ CALL L1535
+ POP DE
+ RST 018H
+ DB 005H
+L14F8: LD A,C
+ AND 07FH
+ JR L14FF ; (+002H)
+
+L14FD: LD A,045H
+L14FF: LD DE,L1554
+L1502: DEC A
+ JR Z,L150F ; (+00aH)
+ EX AF,AF'
+L1506: LD A,(DE)
+ INC DE
+ OR A
+ JP P,L1506
+ EX AF,AF'
+ JR L1502 ; (-00dH)
+
+L150F: LD A,(DE)
+ CP 080H
+ JR Z,L14FD ; (-017H)
+L1514: LD A,(DE)
+ OR A
+ JP M,L151F
+ CALL L152A
+ INC DE
+ JR L1514 ; (-00bH)
+
+L151F: AND 07FH
+ CALL L152A
+ LD DE,L179E
+ RST 018H
+ DB 005H
+ RET
+
+L152A: PUSH DE
+ LD DE,L1533
+ LD (DE),A
+ RST 018H
+ DB 005H
+ POP DE
+ RET
+
+L1533: NOP
+ NOP
+L1535: LD DE,(ZEQT)
+ INC DE
+ INC DE
+ RST 018H
+ DB 017H
+ CALL LDHLDE
+ LD A,(L1046)
+ ADD A,031H
+ LD (HL),A
+ LD A,(01051H)
+ AND 00FH
+ JR Z,L154E ; (+001H)
+ INC HL
+L154E: LD (HL),03AH
+ DB 023H
+ DB 036H
+ DB 000H
+ DB 0C9H
+L1554: DB 053H,005H,"YNTA",0D8H,04FH,005H,"VER FLO",0D7H,049H,005H
+ DS 2, 04CH
+ DB "EGAL DAT",0C1H,054H,005H,"YPE MISMATC",0C8H,053H,005H,"TRING LENGT",0C8H,04DH,005H,"EMORY CAPACIT",0D9H,041H,005H
+ DS 2, 052H
+ DB "AY DEF",0AEH,04CH,005H,"INELENGT",0C8H,080H,"GOSUB ",005H,"NESTIN",0C7H,"FOR-NEX",0D4H,"DEF FN ",005H,"NESTIN",0C7H,"NEX",0D4H,"RETUR"
+ DB LSDMD
+ DB 055H,005H,"N DEF. FUNCTIO"
+ DB LSDMD
+ DB 055H,005H,"N DEF. LIN",0C5H,043H,005H,"AN'T ",006H,"CON",0D4H,04DH,005H,"EMORY PROTECTIO"
+ DB LSDMD
+ DB 049H,005H,"NSTRUCTIO"
+ DB LSDMD
+ DB 043H,005H,"AN'T ",006H,"RESUM",0C5H,"RESUM",0C5H
+ DS 2, 080H
+ DB "REA",0C4H,"SWAP ",005H,"LEVE"
+ DB LSWF
+ DS 2, 080H
+ DB 053H,005H,"YSTEM I",0C4H,046H,005H,"RAMIN",0C7H,04FH,005H,056H,045H
+ DS 2, 052H
+ DB 055H
+ DB LSDMD
+ DB 050H,005H,"ARIT",0D9H
+ DS 8, 080H
+ DB 046H,005H,"ILE NOT FOUN",0C4H,048H,005H,"ARDWAR",0C5H,041H,005H,"LREADY EXIS",0D4H,041H,005H,"LREADY OPE"
+ DB LSDMD
+ DB 04EH,005H,"OT OPE"
+ DB LSDMD
+ DB 080H,057H,005H,"RITE PROTEC",0D4H
+ DS 3, 080H
+ DB 04EH,005H,"OT READ",0D9H,054H,005H
+ DS 2, 04FH
+ DB " MANY FILE"
+ DB LSD3
+ DB 044H,005H,"ISK MISMATC",0C8H,04EH,005H,"O FILE SPAC",0C5H,055H,005H,"NFORMA",0D4H,054H,005H
+ DS 2, 04FH
+ DB " LONG FIL",0C5H
+ DS 2, 080H
+ DB 044H,005H,"EV. NAM",0C5H,043H,005H,"AN'T EXECUT",0C5H,049H,005H
+ DS 2, 04CH
+ DB "EGAL FILENAM",0C5H,049H,005H
+ DS 2, 04CH
+ DB "EGAL FILEMOD",0C5H,080H,04FH,005H,"UT OF FIL",0C5H,04CH,005H,"OGICAL NUMBE"
+ DB LSD2
+ DB "LPT:"
+L1772: DB 04EH,005H,"OT READ",0D9H
+ DS 2, 080H
+ DB 044H,005H,"EV. MOD",0C5H,055H,005H,"NPRINTABL",0C5H,043H,005H,"HECK SU"
+ DB LSRF
+L179E: DB 020H
+ DB 005H
+ DB 045H
+ DS 2, 052H
+ DB 04FH
+ LD D,D
+ DS 91, 000H
+L1800: JP L4000
+
+L1803: LD A,(L1042)
+ CP 088H
+ RET
+
+L1809: NOP
+ NOP
+L180B: NOP
+ NOP
+L180D: NOP
+ NOP
+ CALL L181A
+ CALL L1821
+L1815: XOR A
+ LD (L1FC0),A
+ RET
+
+L181A: LD A,(L1042)
+ LD (L1FC0),A
+ RET
+
+L1821: CALL SKPDE
+ LD A,(L1050)
+ BIT 7,A
+ LD HL,L1848
+L182C: JR Z,L183D ; (+00fH)
+ BIT 3,A
+ LD HL,L1835
+ JR NZ,L183D ; (+008H)
+L1835: LD IX,(ZOUT)
+ CALL IOCALL
+ RET
+
+L183D: LD A,B
+L183E: OR A
+ RET Z
+ LD A,(DE)
+ CALL L00FA
+ INC DE
+ DEC B
+ JR L183D ; (-00bH)
+
+L1848: CALL SKPDE
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+ LD HL,(L180B)
+ ADD HL,DE
+ LD (HL),A
+ INC DE
+ LD HL,(ZKL)
+ OR A
+ SBC HL,DE
+ CALL Z,L1871
+ LD (IY+040H),E
+ LD (IY+041H),D
+ INC (IY+014H)
+ RET NZ
+ INC (IY+015H)
+ RET NZ
+ JP 01F91H
+
+L1871: PUSH BC
+ LD B,002H
+L1874: CALL L1D15
+ LD IX,L1835
+ JR Z,L1881 ; (+004H)
+ LD IX,L2907
+L1881: LD A,B
+ CALL L18B6
+ CALL L1890
+ INC (IY+04EH)
+ LD DE,L0000
+ POP BC
+ RET
+
+L1890: JP (IX)
+
+L1892: LD A,01AH
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+L189A: LD HL,(L180B)
+ ADD HL,DE
+ LD (HL),A
+ INC DE
+ LD HL,(ZKL)
+ XOR A
+ SBC HL,DE
+ JR NZ,L189A ; (-00eH)
+ PUSH BC
+ LD HL,(L180B)
+ DEC HL
+ LD (HL),0FFH
+ DEC HL
+ LD (HL),0FFH
+ LD B,006H
+ JR L1874 ; (-042H)
+
+L18B6: LD BC,(ZKL)
+ INC BC
+ INC BC
+ LD HL,(L180B)
+ DEC HL
+ DEC HL
+ LD DE,(01809H)
+ RET
+
+L18C6: OR 0AFH
+ LD IX,(ZCL)
+ CALL IOCALL
+ RET
+
+ CALL L1803
+ RET NZ
+ PUSH DE
+ LD DE,L11A4
+ CALL L026A
+ LD (0193CH),DE
+ POP DE
+ RET NC
+ JP 0017DH
+
+ PUSH HL
+ PUSH DE
+ CALL L181A
+ LD HL,(L1040)
+ INC HL
+ BIT 7,(HL)
+ PUSH HL
+ LD B,000H
+ SCF
+ CALL Z,L1913
+ POP HL
+ CALL C,L1908
+ POP DE
+ PUSH AF
+ CALL L1815
+ LD L,B
+ LD H,000H
+ ADD HL,DE
+ LD (HL),000H
+ POP AF
+ POP HL
+ RET
+
+L1908: SET 7,(HL)
+ LD HL,01051H
+ BIT 4,(HL)
+ RET Z
+ JP 01FA0H
+
+L1913: CALL L1803
+ JR Z,L193B ; (+023H)
+ LD A,(L1050)
+ BIT 7,A
+ LD HL,L1989
+ JR Z,L1975 ; (+053H)
+ BIT 2,A
+ LD HL,L1929
+ JR NZ,L1975 ; (+04cH)
+L1929: LD IX,(ZINP)
+ CALL IOCALL
+ RET
+
+L1931: LD A,03FH
+ RST 018H
+ DB 003H
+ LD A,020H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 034H
+L193B: LD HL,L0000
+L193E: CALL HLFTCH
+ OR A
+ JR Z,L1931 ; (-013H)
+ LD C,000H
+ RST 018H
+ DB 036H
+ LD (0193CH),HL
+ RET
+
+ LD B,000H
+ CALL TEST1
+ DB 022H
+ JR NZ,L1967 ; (+013H)
+L1954: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ JR Z,L1961 ; (+005H)
+ LD (DE),A
+ INC DE
+ INC B
+ JR L1954 ; (-00dH)
+
+L1961: CALL TEST1
+ DB 02CH
+ OR A
+ RET
+
+L1967: LD A,(HL)
+ OR A
+ RET Z
+ CP C
+ RET Z
+ INC HL
+ CP 02CH
+ RET Z
+ LD (DE),A
+ INC DE
+ INC B
+ JR L1967 ; (-00eH)
+
+L1975: LD (0197BH),HL
+ LD B,000H
+L197A: CALL L0000
+ RET C
+ CP 00DH
+ RET Z
+ LD (DE),A
+ INC DE
+ INC B
+ JR NZ,L197A ; (-00cH)
+ JP 01F76H
+
+L1989: CALL SKPDE
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+ LD HL,(ZKL)
+ OR A
+ SBC HL,DE
+ CALL Z,L19B4
+ RET C
+ LD L,(IY+04EH)
+ LD H,(IY+04FH)
+ XOR A
+ SBC HL,DE
+ SCF
+ RET Z
+ LD HL,(L180B)
+ ADD HL,DE
+ LD A,(HL)
+ INC DE
+ LD (IY+040H),E
+ LD (IY+041H),D
+ RET
+
+L19B4: CALL L1D15
+ JP NZ,L2A4C
+ OR 0AFH
+ CALL L18B6
+ CALL L1929
+ RET C
+ LD A,(HL)
+ INC HL
+ AND (HL)
+ LD (HL),0FFH
+ INC A
+ LD DE,L0000
+ RET NZ
+ PUSH HL
+ LD HL,(L180D)
+ LD BC,(ZKL)
+L19D5: DEC HL
+ DEC BC
+ LD A,(HL)
+ OR A
+ JR Z,L19D5 ; (-006H)
+ POP HL
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ RET
+
+ CALL SKPDE
+ LD HL,L1A2D
+ CP 088H
+ JR Z,L19F4 ; (+00aH)
+ LD HL,L1A35
+ CP 089H
+ JR Z,L19F4 ; (+003H)
+ RST 018H
+ DB 029H
+ RET C
+L19F4: LD (L1040),HL
+ LD DE,L1042
+ LD BC,00008H
+ LDIR
+ LD (L1809),HL
+ PUSH HL
+ POP IY
+ LD DE,L1000
+ CALL L1C54
+ PUSH HL
+ LD HL,(L1044)
+ LD DE,L104A
+ LD BC,0001DH
+ LDIR
+ POP HL
+ LD BC,00010H
+ ADD HL,BC
+ LD (L180B),HL
+ LD BC,(ZKL)
+ ADD HL,BC
+ LD (L180D),HL
+ LD A,(L1043)
+ AND 00FH
+ RET
+
+L1A2D: ADC A,B
+ INC BC
+ LD A,B
+ DEC BC
+ NOP
+ NOP
+ NOP
+ NOP
+L1A35: ADC A,C
+ LD (BC),A
+ NOP
+ RRCA
+ NOP
+ NOP
+ NOP
+ NOP
+ LD HL,L11A4
+ PUSH HL
+ LD A,B
+ OR A
+ CALL NZ,LDHLDE
+ LD (HL),000H
+ LD HL,L0B78
+ JR L1A50 ; (+003H)
+
+L1A4D: LD HL,L0000
+L1A50: LD A,L
+ OR H
+ JR Z,L1A89 ; (+035H)
+ LD (01A84H),HL
+ CALL LDDEMI
+ LD (01A4EH),DE
+ LD DE,L11A4
+ EX DE,HL
+L1A62: LD A,(DE)
+ OR A
+ JR Z,L1A6D ; (+007H)
+ CP (HL)
+ JR NZ,L1A4D ; (-01cH)
+ INC HL
+ INC DE
+ JR L1A62 ; (-00bH)
+
+L1A6D: LD A,(HL)
+ INC HL
+ CP 03AH
+ LD C,000H
+ JR Z,L1A82 ; (+00dH)
+ SUB 031H
+ CP 009H
+ JR NC,L1A4D ; (-02eH)
+ LD C,A
+ LD A,(HL)
+ INC HL
+ CP 03AH
+ JR NZ,L1A4D ; (-035H)
+L1A82: EX (SP),HL
+ LD HL,L0000
+ LD A,C
+ JR L1A9B ; (+012H)
+
+L1A89: POP HL
+ PUSH HL
+L1A8B: LD A,(HL)
+ INC HL
+ CP 03AH
+ JP Z,01F94H
+ OR A
+ JR NZ,L1A8B ; (-00aH)
+ LD HL,(DDEV)
+ LD A,(L1069)
+L1A9B: LD (L1044),HL
+ PUSH HL
+ LD (L1046),A
+ LD DE,L104A
+ LD BC,0001DH
+ LDIR
+ LD B,A
+ LD A,(01051H)
+ AND 007H
+ CP B
+ JP C,01F94H
+ LD A,B
+ POP DE
+ POP HL
+ RET
+
+ CALL SKPDE
+ RST 018H
+ DB 02CH
+ EX DE,HL
+ LD HL,L1001
+ LD B,01FH
+ CALL ?CLRHL
+ LD HL,L1000
+ RST 018H
+ DB 017H
+ CALL L1EB4
+ LD HL,L1050
+ BIT 4,(HL)
+ RET Z
+ INC HL
+ BIT 7,(HL)
+ RET NZ
+ LD A,(L1001)
+ CP 00DH
+ JP Z,01F9AH
+ RET
+
+ CALL SKPDE
+ CALL L1AEF
+ LD B,000H
+ CALL L1B97
+ JP L2D08
+
+L1AEF: LD A,(L1042)
+ RST 018H
+ DB 029H
+ JP NC,01F7CH
+ CALL L1C5B
+ LD HL,L005D
+ LD A,(L1050)
+ LD DE,(ZKL)
+ INC DE
+ INC DE
+ BIT 7,A
+ JR NZ,L1B0B ; (+001H)
+ ADD HL,DE
+L1B0B: LD A,(L1043)
+ BIT 2,A
+ JR Z,L1B13 ; (+001H)
+ ADD HL,DE
+L1B13: EX DE,HL
+ LD A,(L1042)
+ RST 018H
+L1B18: DB 02AH
+ LD (L1FC0),A
+ LD (L1040),HL
+ EX DE,HL
+ LD HL,L1042
+ LD BC,00008H
+ LDIR
+ LD (01809H),DE
+ PUSH DE
+ POP IY
+ LD HL,L1000
+ CALL L1C54
+ LD HL,00010H
+ ADD HL,DE
+ LD (L180B),HL
+ LD DE,(ZKL)
+ ADD HL,DE
+ LD (L180D),HL
+ CALL L1D15
+ JP NZ,L2B7F
+ LD A,(L1043)
+ BIT 2,A
+ JP NZ,01F97H
+ BIT 1,A
+ LD IX,(ZWO)
+ JR NZ,L1B65 ; (+00bH)
+ LD A,(L1050)
+ BIT 7,A
+ JR Z,L1B6B ; (+00aH)
+ LD IX,(ZRO)
+L1B65: LD HL,L1000
+ JP IOCALL
+
+L1B6B: CALL L1C39
+ JP 019BBH
+
+ CALL SKPDE
+ LD IY,L0100
+ LD (L1042),IY
+ LD IY,L1000
+ CALL L1D15
+ LD HL,L2B7A
+ JR NZ,L1B8B ; (+003H)
+ LD HL,L1C39
+L1B8B: CALL L00FA
+ LD B,080H
+ CALL L1B97
+ LD A,(L1000)
+ RET
+
+L1B97: LD A,(L1000)
+ CP 005H
+ RET C
+ LD A,(L1012)
+ AND 080H
+ CP B
+ RET Z
+ JP 01F9DH
+
+L1BA7: CALL SKPDE
+ OR A
+ JR Z,L1BED ; (+040H)
+ CALL L1BB3
+ JP L2D08
+
+L1BB3: RST 018H
+ DB 02EH
+ RET C
+ CALL L181A
+ PUSH AF
+ CALL L1D15
+ JR NZ,L1BE1 ; (+022H)
+ BIT 7,A
+ LD A,B
+ JR Z,L1BD4 ; (+010H)
+ OR A
+ LD IX,(ZKL)
+ JR Z,L1BCF ; (+004H)
+ LD IX,(ZCL)
+L1BCF: CALL IOCALL
+ JR L1BE4 ; (+010H)
+
+L1BD4: OR A
+ JR Z,L1BE4 ; (+00dH)
+ LD A,(L1043)
+ BIT 1,A
+ CALL NZ,L1892
+ JR L1BE4 ; (+003H)
+
+L1BE1: CALL L2BEC
+L1BE4: POP AF
+ RST 018H
+ DB 02BH
+ RET
+
+ CALL SKPDE
+ LD B,000H
+L1BED: LD C,08EH
+L1BEF: LD A,C
+ PUSH BC
+ RST 018H
+ DB 029H
+ CALL NC,L1BB3
+ POP BC
+ DEC C
+ JR NZ,L1BEF ; (-00bH)
+ JP L1FAB
+
+L1BFD: CALL SKPDE
+ LD A,(L1050)
+ BIT 6,A
+ JP Z,01F97H
+ CALL 018C7H
+ LD A,(ZDIRMX)
+ LD B,A
+L1C0F: LD HL,L11A4
+ PUSH BC
+ LD IX,(ZRO)
+ CALL IOCALL
+ POP BC
+ SET 0,A
+ RET C
+ PUSH IY
+ POP DE
+ CALL L1E9D
+ LD A,(HL)
+ RET Z
+ DJNZ L1C0F ; (-019H)
+ XOR A
+ SCF
+ RET
+
+L1C2B: CALL L1C5B
+ CALL L1BFD
+ JP NC,01F79H
+ OR A
+ JP Z,01F85H
+ RET
+
+L1C39: CALL L1C5B
+ CALL L1BFD
+ JP C,01F73H
+ CALL SKPDE
+ LD HL,L11A4
+ PUSH IY
+ POP DE
+ PUSH HL
+ CALL L1C54
+ POP HL
+ LD DE,L1000
+ LD A,(HL)
+L1C54: LD BC,00040H
+ LDIR
+ OR A
+ RET
+
+L1C5B: LD IX,L1C9D
+L1C5F: LD (01C99H),IX
+ CALL SKPDE
+ LD A,(L1042)
+ LD C,A
+ LD HL,(L1072)
+ PUSH HL
+L1C6E: POP HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD B,A
+ INC HL
+ CALL LDDEMI
+ PUSH HL
+ ADD HL,DE
+ EX (SP),HL
+ CP 08FH
+ JR NC,L1C6E ; (-010H)
+ CP C
+ JR Z,L1C6E ; (-013H)
+ INC HL
+ LD A,(HL)
+ EX AF,AF'
+ INC HL
+ LD DE,L1044
+ PUSH BC
+ LD BC,00300H
+L1C8C: LD A,(DE)
+ SUB (HL)
+ OR C
+ LD C,A
+ INC DE
+ INC HL
+ DJNZ L1C8C ; (-008H)
+ POP BC
+ JR NZ,L1C6E ; (-029H)
+ LD A,B
+ CALL L0000
+ JR L1C6E ; (-02fH)
+
+L1C9D: LD A,(01051H)
+ BIT 6,A
+ JP NZ,01F7CH
+ BIT 5,A
+ RET Z
+ EX AF,AF'
+ LD B,A
+ LD A,(L1043)
+ AND B
+ BIT 1,A
+ RET Z
+ JP 01F7CH
+
+ CALL L1D15
+ JP NZ,L2AD2
+ LD BC,(ELMD20)
+ PUSH BC
+ XOR A
+ LD IX,(ZINP)
+ CALL IOCALL
+ POP BC
+ RET
+
+ LD A,(01051H)
+ BIT 7,A
+ JP Z,01F97H
+ LD BC,(ELMD20)
+ JP L313A
+
+ LD A,(L1000)
+ CP 005H
+ JR C,L1CE4 ; (+005H)
+ LD A,080H
+ LD (L1012),A
+L1CE4: CALL L1D15
+ JP NZ,L2AE0
+ BIT 7,A
+ JP NZ,01F97H
+ PUSH DE
+ LD HL,L0200
+ LD (L1042),HL
+ CALL L1C5B
+ LD HL,L1000
+ PUSH HL
+ POP IY
+ LD IX,(ZWO)
+ CALL IOCALL
+ LD BC,(ELMD20)
+ POP HL
+ LD A,004H
+ LD IX,(ZOUT)
+ CALL IOCALL
+ RET
+
+L1D15: LD A,(L1050)
+ BIT 5,A
+ RET
+
+ CALL SKPDE
+ OR A
+ JR NZ,L1D6B ; (+04aH)
+ LD HL,L0100
+ LD (L1042),HL
+ CALL L1C5B
+ LD HL,L1050
+ BIT 7,(HL)
+ JP NZ,01F97H
+ BIT 5,(HL)
+ JP NZ,02F38H
+ INC HL
+ BIT 7,(HL)
+ JP NZ,01F97H
+ LD HL,L2000
+ LD BC,00008H
+L1D43: CALL ?CLRHL
+ DEC C
+ JR NZ,L1D43 ; (-006H)
+ CALL 018C7H
+ LD A,(ZDIRMX)
+ LD B,A
+ LD HL,L2000
+L1D53: PUSH BC
+ LD IX,(ZRO)
+ CALL IOCALL
+ PUSH AF
+ LD BC,00020H
+ ADD HL,BC
+ LD (HL),000H
+ POP AF
+ POP BC
+ JR C,L1D68 ; (+002H)
+ DJNZ L1D53 ; (-015H)
+L1D68: JP L18C6
+
+L1D6B: LD (01E13H),A
+ XOR A
+ LD (L1090),A
+ LD HL,L11A4
+ PUSH HL
+ LD DE,L1E1D
+ LD B,00EH
+ CALL LDHLDE
+ CALL L1535
+ LD (HL),020H
+ INC HL
+ LD (HL),020H
+ INC HL
+ EX DE,HL
+ CALL L1D15
+ LD IX,(ZFREE)
+ JR Z,L1D95 ; (+004H)
+ LD IX,L2F4B
+L1D95: CALL IOCALL
+ JR C,L1DA8 ; (+00eH)
+ LD H,B
+ LD L,C
+ LD B,000H
+ RST 018H
+ DB 016H
+ LD HL,L1E2B
+ LD B,009H
+ CALL LDDEHL
+L1DA8: EX DE,HL
+ LD (HL),00DH
+ INC HL
+ LD (HL),000H
+ POP DE
+ CALL L1E12
+ LD B,040H
+ LD HL,L2000
+L1DB7: CALL L1DC3
+ LD DE,00020H
+ ADD HL,DE
+ DJNZ L1DB7 ; (-009H)
+ JP L2D08
+
+L1DC3: CALL SKPDE
+ LD A,(HL)
+ OR A
+ RET Z
+ RET M
+ LD DE,L11A4
+ PUSH DE
+ LD A,020H
+ LD B,026H
+ CALL ?SETDE
+ LD A,(HL)
+ CP 00CH
+ JR C,L1DDC ; (+002H)
+ LD A,00CH
+L1DDC: PUSH HL
+ POP IY
+ POP DE
+ PUSH DE
+ INC DE
+ LD HL,L1E31
+ LD BC,L0003
+L1DE8: ADD HL,BC
+ DEC A
+ JR NZ,L1DE8 ; (-004H)
+ LDIR
+ EX DE,HL
+ BIT 0,(IY+012H)
+ JR Z,L1DF7 ; (+002H)
+ LD (HL),02AH
+L1DF7: INC HL
+ INC HL
+ LD (HL),022H
+ INC HL
+L1DFC: LD A,(IY+001H)
+ CP 00DH
+ JR Z,L1E09 ; (+006H)
+ LD (HL),A
+ INC IY
+ INC HL
+ JR L1DFC ; (-00dH)
+
+L1E09: LD (HL),022H
+ INC HL
+ LD (HL),00DH
+ INC HL
+ LD (HL),000H
+ POP DE
+L1E12: LD A,000H
+ RST 018H
+ DB 02EH
+ RST 018H
+ DB 017H
+ RST 018H
+ DB 037H
+ RST 018H
+ DB 00FH
+ RET
+
+L1E1D: DEC C
+ DB "DIRECTORY OF "
+L1E2B: DB " KB FR"
+L1E31: DS 2, 045H
+ DB ".OBJBTXBSDBRDRB"
+ DS 2, 020H
+ DB "? LIB ?"
+ DS 2, 020H
+ DB "? SYSGR"
+ DS 2, 020H
+ DB 03FH
+ DB 020H
+ DB LSE5
+ DB 0AFH,032H,042H,010H,0DDH,021H,071H,01EH,0EDH,073H,072H,01EH
+ DB LSRF
+ DB 05FH
+ DB 01CH
+ DB LSE1
+ DB 0DDH
+ DB 02AH
+ DB 053H
+ DB 010H
+ DB LSRF
+ DB 045H
+ DB 002H
+ DB 0C9H
+ DB 031H
+ DS 2, 000H
+ DB 006H
+ DB 000H
+ DB 0DFH
+ DB 038H
+ DB 018H
+ DB 0DFH
+L1E7A: DB LSRF
+ DB 064H,001H,059H,0C8H,011H,08EH,01EH,0DFH,005H,03EH,001H,0DFH,00DH,0FEH,059H,0C8H,0C3H,07DH,001H,"OK ? [Y/N]",019H,000H
+L1E9A: DB 011H
+ DB 000H
+ DB 010H
+L1E9D: DB LSRF
+ DB 008H
+ DB 001H
+ INC HL
+ INC DE
+ LD A,(DE)
+ CP 00DH
+ RET Z
+ LD B,011H
+L1EA8: LD A,(DE)
+ CP (HL)
+ RET NZ
+ CP 00DH
+ RET Z
+ INC HL
+ INC DE
+ DJNZ L1EA8 ; (-00aH)
+ OR A
+ RET
+
+L1EB4: INC HL
+ LD C,010H
+L1EB7: LD A,B
+ OR A
+ JR Z,L1ECF ; (+014H)
+ LD A,(DE)
+ INC DE
+ DEC B
+ OR A
+ JR Z,L1ECF ; (+00eH)
+ CP 022H
+ JR Z,L1EB7 ; (-00eH)
+ CP 03AH
+ JP Z,01F9AH
+ LD (HL),A
+ INC HL
+ DEC C
+ JR NZ,L1EB7 ; (-018H)
+L1ECF: LD (HL),00DH
+ INC HL
+L1ED2: LD A,C
+ OR A
+ RET Z
+ LD (HL),020H
+ INC HL
+ DEC C
+ JR L1ED2 ; (-009H)
+
+ LD HL,(L1072)
+L1EDE: INC (HL)
+ DEC (HL)
+ SCF
+ RET Z
+ CP (HL)
+ INC HL
+ JR Z,L1EEE ; (+008H)
+ PUSH DE
+ CALL LDDEMI
+ ADD HL,DE
+ POP DE
+ JR L1EDE ; (-010H)
+
+L1EEE: INC HL
+ INC HL
+ RET
+
+L1EF1: CALL SKPDE
+ RST 018H
+ DB 029H
+ RET C
+ DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ DEC HL
+ LD D,H
+ LD E,L
+ INC BC
+ INC BC
+ INC BC
+ PUSH BC
+ ADD HL,BC
+ PUSH HL
+ LD B,H
+ LD C,L
+ LD HL,(L107A)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ LDIR
+ POP DE
+ LD HL,L0000
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ RST 018H
+ DB 019H
+ OR A
+ RET
+
+ PUSH AF
+ PUSH BC
+ PUSH DE
+ PUSH DE
+ INC DE
+ INC DE
+ INC DE
+ LD HL,(L107A)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ JP C,01F6DH
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ SBC HL,DE
+ JR C,01F6DH ; (+037H)
+ LD HL,(L107E)
+ DEC H
+ DEC H
+ SBC HL,DE
+ JR C,01F6DH ; (+02eH)
+ POP HL
+ PUSH HL
+ LD BC,(VARST)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ INC BC
+ LDDR
+ POP DE
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ PUSH HL
+ INC DE
+ PUSH DE
+L1F58: LD (HL),000H
+ INC HL
+ DEC DE
+ LD A,D
+ OR E
+ JR NZ,L1F58 ; (-008H)
+ POP DE
+ INC DE
+ INC DE
+ RST 018H
+ DB 019H
+ POP HL
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L1F6A: LD A,003H
+ LD HL,0063EH
+ LD HL,09C3EH
+ LD HL,0A83EH
+ LD HL,0A93EH
+ LD HL,0AA3EH
+ LD HL,0AB3EH
+ LD HL,0AE3EH
+ LD HL,0B23EH
+ LD HL,0B33EH
+ LD HL,0B43EH
+ LD HL,0B53EH
+ LD HL,0B63EH
+ LD HL,0B73EH
+ LD HL,L3A3E
+ LD HL,0BB3EH
+ LD HL,0BC3EH
+ LD HL,0BD3EH
+ LD HL,0BF3EH
+ LD HL,0403EH
+ LD HL,0C43EH
+ JP L0182
+
+L1FAB: LD A,(L1FC0)
+ OR A
+ LD B,000H
+ CALL NZ,L1BA7
+ CALL L368D
+ CALL L3C34
+ CALL L2D08
+ JP L0D20
+
+L1FC0: DS 64, 000H
+L2000: DS 38, 000H
+L2026: DS 263, 000H
+L212D: DS 211, 000H
+L2200: DS 294, 000H
+L2326: DS 986, 000H
+L2700: DS 16, 000H
+L2710: DS 240, 000H
+L2800: DS 256, 000H
+ LD (02905H),DE
+ RET
+
+L2905: NOP
+ NOP
+L2907: LD BC,L0000
+ LD DE,00001H
+ BIT 2,A
+ CALL Z,L2ED0
+ LD HL,(L180D)
+ LD A,(HL)
+ LD (HL),C
+ LD C,A
+ INC HL
+ LD A,(HL)
+ LD (HL),B
+ LD B,A
+ LD HL,(L180B)
+ LD DE,L0100
+ JP L2FCF
+
+ CALL SKPDE
+ CALL L181A
+ LD HL,L11A4
+ PUSH HL
+ LD A,B
+ OR A
+ CALL NZ,LDHLDE
+ LD B,020H
+ LD A,020H
+ CALL ?SETHL
+ LD A,(IY+012H)
+ OR A
+ JP NZ,01F7FH
+ CALL L29DF
+ JR NC,L2964 ; (+01dH)
+ LD (IY+014H),E
+ LD (IY+015H),D
+ LD (IY+046H),001H
+ JR Z,L2964 ; (+011H)
+ CALL L29C2
+ CALL L2A08
+ CALL L297C
+ LD (IY+040H),L
+ LD (IY+041H),H
+ JR L296A ; (+006H)
+
+L2964: CALL L297C
+ CALL L29AB
+L296A: POP HL
+ CALL L2E24
+ LD (IY+044H),001H
+L2972: LD HL,(L2905)
+ INC HL
+ LD (L2905),HL
+ JP L1815
+
+L297C: LD HL,(L2905)
+ DEC HL
+ PUSH HL
+ ADD HL,HL
+ LD E,H
+ LD D,000H
+ LD HL,(L180B)
+ ADD HL,DE
+ ADD HL,DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD A,L
+ PUSH AF
+ RRA
+ RRA
+ RRA
+ AND 00FH
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ POP AF
+ AND 007H
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ LD DE,(0180BH)
+ INC D
+ ADD A,E
+ LD E,A
+ RET NC
+ INC D
+ RET
+
+L29AB: LD A,(IY+040H)
+ CP L
+ JR NZ,L29B6 ; (+005H)
+ LD A,(IY+041H)
+ CP H
+ RET Z
+L29B6: CALL L29C2
+ LD (IY+040H),L
+ LD (IY+041H),H
+ XOR A
+ JR L29CC ; (+00aH)
+
+L29C2: XOR A
+ CP (IY+044H)
+ RET Z
+ LD (IY+044H),A
+ LD A,003H
+L29CC: CALL SKPDE
+ LD C,(IY+040H)
+ LD B,(IY+041H)
+ LD DE,L0100
+ LD HL,(L180B)
+ INC H
+ JP L2FD1
+
+L29DF: LD L,(IY+014H)
+ LD H,(IY+015H)
+ LD DE,(02905H)
+ LD A,H
+ OR L
+ JR NZ,L29F1 ; (+004H)
+ OR 0FFH
+ SCF
+ RET
+
+L29F1: CALL L2FC9
+ RET NC
+ CALL SKPDE
+ DEC HL
+ DEC DE
+ LD A,L
+ AND 080H
+ LD L,A
+ LD A,E
+ AND 080H
+ LD E,A
+ CALL L2FC9
+ RET C
+ SCF
+ RET
+
+L2A08: CALL SKPDE
+ LD HL,(L2905)
+ DEC HL
+ ADD HL,HL
+ LD B,H
+ INC B
+ LD HL,(L180B)
+L2A15: LD A,(HL)
+ INC HL
+ OR (HL)
+ CALL Z,L2A23
+ INC HL
+ DJNZ L2A15 ; (-009H)
+ LD (IY+046H),001H
+ RET
+
+L2A23: CALL SKPDE
+ PUSH HL
+ LD DE,00010H
+ CALL L2ED0
+ POP HL
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ LD HL,(L180B)
+ INC H
+ XOR A
+L2A36: LD (HL),020H
+ INC HL
+ DEC A
+ JR NZ,L2A36 ; (-006H)
+ DEC H
+ LD DE,L0100
+ LD A,010H
+L2A42: PUSH AF
+ CALL L2FCF
+ POP AF
+ INC BC
+ DEC A
+ JR NZ,L2A42 ; (-009H)
+ RET
+
+L2A4C: LD L,(IY+014H)
+ LD H,(IY+015H)
+ LD A,H
+ OR L
+ SCF
+ RET Z
+ LD DE,0FF02H
+ PUSH HL
+ ADD HL,DE
+ JR C,L2A60 ; (+003H)
+ LD HL,L0000
+L2A60: LD (IY+014H),L
+ LD (IY+015H),H
+ POP DE
+ LD HL,(L180B)
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ CALL L2A88
+ OR A
+ LD A,(L1043)
+ BIT 2,A
+ RET NZ
+ LD HL,(L180D)
+ LD A,(HL)
+ LD (IY+01EH),A
+ INC HL
+ LD A,(HL)
+ LD (IY+01FH),A
+ LD DE,L0000
+ RET
+
+L2A88: LD C,(IY+01EH)
+ LD B,(IY+01FH)
+ LD A,B
+ OR C
+ JP Z,01F76H
+ LD DE,L0100
+ LD HL,(L180B)
+ JP 02FD0H
+
+ RET
+
+ XOR A
+ LD (DE),A
+ PUSH HL
+ PUSH DE
+ PUSH DE
+ CALL L29DF
+ POP DE
+ JR C,L2AC7 ; (+01fH)
+ CALL L181A
+ PUSH DE
+ CALL L297C
+ CALL L29AB
+ EX DE,HL
+ POP DE
+ CALL L2E24
+ XOR A
+ LD (DE),A
+ CALL L2972
+ LD B,020H
+ XOR A
+ LD HL,(L1040)
+ INC HL
+ RES 7,(HL)
+ JR L2ACF ; (+008H)
+
+L2AC7: XOR A
+ LD B,A
+ LD HL,(L1040)
+ INC HL
+ SET 7,(HL)
+L2ACF: POP DE
+ POP HL
+ RET
+
+L2AD2: LD DE,(ELMD20)
+ LD BC,(ELMD30)
+ CALL 02FD0H
+ JP L2D08
+
+L2AE0: CALL L2AEA
+ LD IY,L1000
+ JP L2C07
+
+L2AEA: PUSH DE
+ CALL L2DD0
+ CALL L2ED0
+ LD (ELMD30),BC
+ LD D,E
+ LD E,000H
+ POP HL
+ JP L2FCF
+
+ OR A
+ JR NZ,L2B34 ; (+035H)
+ PUSH DE
+ CALL L2B6A
+ LD A,000H
+ CALL Z,L2B51
+ POP DE
+ CALL L2AEA
+ LD HL,L1000
+ OR 0FFH
+ CALL L2B51
+ CALL L2E2A
+ LD HL,L2000
+ LD (HL),081H
+ PUSH HL
+ POP IY
+ LD HL,(L1014)
+ LD (IY+014H),L
+ LD (IY+015H),H
+ LD HL,(ELMD30)
+ LD (IY+01EH),L
+ LD (IY+01FH),H
+ JP L2F37
+
+L2B34: PUSH HL
+ CALL L2B6A
+ JP NZ,01F88H
+ DEC (HL)
+ LD DE,L1000
+ CALL L2E24
+ CALL L2F37
+L2B45: XOR A
+ LD HL,L2000
+ CALL L2B51
+ CALL L2E2A
+ POP HL
+ RET
+
+L2B51: CALL SKPDE
+ PUSH AF
+ LD DE,00014H
+ ADD HL,DE
+ CALL LDDEMI
+ LD BC,00008H
+ ADD HL,BC
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ CALL L2DD8
+ POP AF
+ JP L2E77
+
+L2B6A: CALL L1D15
+ JP Z,01F97H
+ CALL L2E36
+ CALL 02F38H
+ LD A,(HL)
+ CP 081H
+ RET
+
+L2B7A: LD A,009H
+ LD (L1043),A
+L2B7F: CALL L2F6E
+ XOR B
+ DEC HL
+ LD A,(L1043)
+ BIT 0,A
+ JP NZ,01F73H
+ PUSH AF
+ LD DE,00001H
+ CALL L2ED0
+ LD (IY+01EH),C
+ LD (IY+01FH),B
+ LD (IY+046H),001H
+ POP AF
+ BIT 1,A
+ RET Z
+ LD HL,(L180D)
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ RET
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD A,(L1043)
+ BIT 1,A
+ JP NZ,01F79H
+ PUSH HL
+ CALL L2E24
+ LD B,020H
+ CALL ?CLRDE
+ POP HL
+ LD A,(HL)
+ PUSH IY
+ POP DE
+ CALL L2E24
+ LD HL,L1043
+ BIT 3,(HL)
+ RET NZ
+ BIT 0,(HL)
+ JP NZ,L2A4C
+ CALL L2E5E
+ CALL L2A88
+ LD D,H
+ LD E,L
+L2BDB: LD A,(HL)
+ INC HL
+ OR (HL)
+ INC HL
+ JR NZ,L2BDB ; (-006H)
+ DEC HL
+ DEC HL
+ SBC HL,DE
+ LD (IY+042H),L
+ LD (IY+043H),H
+ RET
+
+L2BEC: LD A,B
+ OR A
+ RET Z
+ LD A,(L1043)
+ BIT 0,A
+ RET NZ
+ BIT 2,A
+ JR NZ,L2C20 ; (+027H)
+ LD A,006H
+ CALL L2907
+ PUSH IY
+ POP HL
+ LD DE,L1000
+ CALL L2E24
+L2C07: CALL L2F6E
+ RLA
+ INC L
+ JP Z,01F85H
+L2C0F: LD A,001H
+ LD B,(IY+000H)
+ JP L2D6A
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ JP 01F79H
+
+L2C20: CALL L29C2
+ LD A,(IY+046H)
+ OR A
+ RET Z
+ CALL L2F6E
+ LD (0CA2CH),A
+ ADD A,L
+ RRA
+ JR L2C0F ; (-023H)
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD (IY+045H),001H
+ LD A,(HL)
+ CP (IY+000H)
+ JP NZ,01F9DH
+ JR L2C0F ; (-037H)
+
+ CALL SKPDE
+ LD (02C60H),A
+ CALL L2F6E
+ LD D,H
+ INC L
+ JP 01F73H
+
+ RET Z
+ RET M
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD BC,L0012
+ ADD HL,BC
+ LD (HL),0FFH
+L2C61: CALL L2F37
+ JP L2D08
+
+ CALL SKPDE
+ CALL L2F6E
+ LD (HL),D
+ INC L
+ JP 01F73H
+
+ RET Z
+ RET M
+ CALL L1E9A
+ RET NZ
+ POP AF
+ CALL L2CFB
+ PUSH HL
+ LD DE,L1000
+ CALL L2E24
+ XOR A
+ LD (L1042),A
+ LD IX,L2C9B
+ CALL L1C5F
+ XOR A
+ LD (L1000),A
+ POP HL
+L2C93: LD B,(HL)
+ LD IY,L1000
+ JP L2D6A
+
+L2C9B: INC HL
+ INC HL
+ INC HL
+ CALL L1E9A
+ JP Z,01F7CH
+L2CA4: RET
+
+L2CA5: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC C
+ CALL SKPDE
+ LD HL,L2CA4
+ CALL L1EB4
+ XOR A
+L2CC0: LD (02CE3H),A
+ CALL L2F6E
+ JP Z,L182C
+ JR L2C93 ; (-038H)
+
+ RET M
+ LD DE,L2CA4
+ CALL L1E9D
+ JP Z,01F79H
+ CALL L1E9A
+ RET NZ
+ LD (02CE9H),HL
+ LD A,001H
+ LD (02CE3H),A
+ RET
+
+ LD A,0FFH
+ OR A
+ JP Z,01F73H
+ LD HL,0FFFFH
+ CALL L2CFB
+ LD DE,L2CA5
+ INC HL
+ EX DE,HL
+ LD BC,00011H
+ LDIR
+ JP L2C61
+
+L2CFB: CALL SKPDE
+ LD DE,L0012
+ ADD HL,DE
+ LD A,(HL)
+ OR A
+ RET Z
+ JP 01F7FH
+
+L2D08: CALL IOOUT
+ XOR A
+ LD (L1FC0),A
+ LD A,LSE0
+L2D11: PUSH AF
+ RST 018H
+ DB 02BH
+ POP AF
+ INC A
+ JR NZ,L2D11 ; (-007H)
+ LD HL,(L1044)
+ LD DE,$FD
+ CALL L2FC9
+ RET NZ
+ LD A,(L1046)
+ EXX
+ LD H,A
+ LD D,000H
+ LD B,003H
+ EXX
+ XOR A
+ LD (L1042),A
+L2D30: EXX
+ LD A,B
+ LD (L1046),A
+ ADD A,090H
+ LD L,A
+ LD E,000H
+ EXX
+ LD IX,L2D5C
+ CALL L1C5F
+ EXX
+ BIT 7,E
+ LD A,L
+ EXX
+ CALL Z,L1EF1
+ EXX
+ DEC B
+ EXX
+ JP P,L2D30
+ EXX
+ LD A,H
+ LD (L1046),A
+ BIT 7,D
+ EXX
+ CALL Z,L368D
+ RET
+
+L2D5C: EXX
+ LD DE,0FFFFH
+ EXX
+ RET
+
+L2D62: LD A,(L1046)
+ ADD A,090H
+ RST 018H
+ DB 029H
+ RET
+
+L2D6A: LD (L2DCF),A
+ LD A,B
+ PUSH AF
+ EX DE,HL
+ LD HL,L1000
+ CALL L2E24
+ CALL L2E36
+ POP AF
+ CP 005H
+ JR C,L2D88 ; (+00aH)
+ LD A,(L1012)
+ RLA
+ LD A,003H
+ JR NC,L2D88 ; (+002H)
+ LD A,001H
+L2D88: LD HL,02D9CH
+ ADD A,A
+ CALL ADDHLA
+ CALL INDRCT
+ CALL L00FA
+ CALL L2F37
+ CALL L2E2A
+ JP L2D08
+
+ ADD A,02DH
+ ADD A,02DH
+ AND (HL)
+ DEC L
+ JP PO,L212D
+ JR NZ,02DB9H ; (+010H)
+L2DA9: DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ LD A,B
+ OR C
+ RET Z
+ LD DE,L0100
+ LD HL,L11A4
+ PUSH HL
+ PUSH DE
+ CALL 02FD0H
+ LD DE,00001H
+ CALL L2DC9
+ POP DE
+ POP HL
+ ADD HL,DE
+ JR L2DA9 ; (-01dH)
+
+ CALL L2DD0
+L2DC9: LD A,(L2DCF)
+ JP L2E77
+
+L2DCF: NOP
+L2DD0: LD DE,(ELMD20)
+ LD BC,(ELMD30)
+L2DD8: LD A,E
+ OR D
+ JR Z,L2DDD ; (+001H)
+ DEC DE
+L2DDD: INC D
+ LD E,D
+ LD D,000H
+ RET
+
+ LD DE,L0100
+ LD BC,(ELMD30)
+ LD A,(L2DCF)
+ OR A
+ LD HL,L11A4
+ JR Z,L2DF5 ; (+003H)
+ LD HL,(L180B)
+L2DF5: PUSH HL
+ PUSH AF
+ CALL L2FD1
+ POP AF
+ PUSH AF
+ JR Z,L2E02 ; (+004H)
+ LD A,(IY+045H)
+ OR A
+L2E02: LD DE,00001H
+ CALL Z,L2DC9
+ POP AF
+ POP HL
+ JR Z,L2E13 ; (+007H)
+ LD E,(IY+042H)
+ LD D,(IY+043H)
+ ADD HL,DE
+L2E13: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ LD A,B
+ OR C
+ RET Z
+ PUSH HL
+ LD DE,00010H
+ CALL L2DC9
+ POP HL
+ JR L2E13 ; (-011H)
+
+L2E24: LD BC,00020H
+ LDIR
+ RET
+
+L2E2A: LD HL,L2800
+ LD DE,L0100
+ LD BC,L000F
+ JP L2FCF
+
+L2E36: LD HL,L2800
+ CALL L2E67
+ PUSH HL
+ CALL L2D62
+ EX DE,HL
+ POP HL
+ RET C
+ PUSH HL
+ LD A,(DE)
+ CP (HL)
+ JP NZ,01F88H
+ LD BC,L0006
+ ADD HL,BC
+ EX DE,HL
+ ADD HL,BC
+ EX DE,HL
+ LD B,FDPC
+L2E52: LD A,(DE)
+ CPL
+ AND (HL)
+ JP NZ,01F88H
+ INC HL
+ INC DE
+ DJNZ L2E52 ; (-00aH)
+ POP HL
+ RET
+
+L2E5E: CALL L2D62
+ RET NC
+ LD DE,L0100
+ RST 018H
+ DB 02AH
+L2E67: LD BC,L000F
+ LD DE,L0100
+ XOR A
+ CALL L2FD4
+ LD A,(HL)
+ OR A
+ JP M,01F70H
+ RET
+
+L2E77: LD HL,L2800
+ CALL L2E84
+ OR A
+ RET NZ
+ CALL L2D62
+ RET C
+ XOR A
+L2E84: CALL IOOUT
+ OR A
+ PUSH HL
+ LD HL,0B600H
+ LD A,013H
+ JR NZ,L2E95 ; (+005H)
+ LD HL,0A62FH
+ LD A,01BH
+L2E95: LD (L2EB2),A
+ LD (L2EC8),HL
+ POP HL
+L2E9C: CALL L2EA4
+ INC BC
+ DEC E
+ JR NZ,L2E9C ; (-007H)
+ RET
+
+L2EA4: CALL SKPDE
+ INC HL
+ LD A,C
+ SUB (HL)
+ LD C,A
+ JR NC,L2EAE ; (+001H)
+ DEC B
+L2EAE: INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L2EB2: NOP
+ DEC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ LD A,C
+ LD E,003H
+L2EBD: SRL B
+ RR C
+ DEC E
+ JR NZ,L2EBD ; (-007H)
+ ADD HL,BC
+ CALL L2F2B
+L2EC8: NOP
+ NOP
+ CP (HL)
+ LD (HL),A
+ RET NZ
+ JP 01F88H
+
+L2ED0: PUSH DE
+ CALL L2E5E
+ POP DE
+ PUSH HL
+ CALL L2EDE
+ POP HL
+ LD A,001H
+ JR L2E84 ; (-05aH)
+
+L2EDE: LD A,E
+ EXX
+ LD E,A
+ LD D,A
+ LD B,001H
+ EXX
+ INC HL
+ LD E,(HL)
+ LD D,000H
+ INC HL
+ INC HL
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ DEC BC
+ LD (02EFCH),BC
+ INC HL
+ PUSH HL
+ EXX
+ POP HL
+ EXX
+ LD B,D
+ LD C,E
+L2EFB: LD HL,L0000
+ OR A
+ SBC HL,DE
+ JP C,01F8BH
+ EXX
+ LD A,B
+ AND (HL)
+ EXX
+ CALL L2F15
+ INC DE
+ EXX
+ RLC B
+ JR NC,L2F12 ; (+001H)
+ INC HL
+L2F12: EXX
+ JR L2EFB ; (-01aH)
+
+L2F15: JR NZ,L2F24 ; (+00dH)
+ EXX
+ DEC E
+ EXX
+ RET NZ
+ POP AF
+ EXX
+ LD A,D
+ EXX
+ LD E,A
+ LD D,000H
+ OR A
+ RET
+
+L2F24: EXX
+ LD E,D
+ EXX
+ LD B,D
+ LD C,E
+ INC BC
+ RET
+
+L2F2B: PUSH BC
+ AND 007H
+ INC A
+ LD B,A
+ XOR A
+ SCF
+L2F32: ADC A,A
+ DJNZ L2F32 ; (-003H)
+ POP BC
+ RET
+
+L2F37: OR 0AFH
+ LD HL,L2000
+ LD DE,00800H
+ LD BC,00010H
+ CALL L2FD1
+ LD A,(HL)
+ OR A
+ JP P,01F70H
+ RET
+
+L2F4B: PUSH HL
+ PUSH DE
+ CALL L2E36
+ INC HL
+ INC HL
+ CALL LDDEMI
+ CALL INDRCT
+ XOR A
+ SBC HL,DE
+ JP C,01F70H
+ SRL H
+ RR L
+ SRL H
+ RR L
+ LD B,H
+ LD C,L
+ POP DE
+ POP HL
+ OR A
+ JP L368D
+
+L2F6E: CALL L1D15
+ JP Z,01F97H
+ POP HL
+ CALL LDDEMI
+ LD (02FB1H),HL
+ LD (02F97H),DE
+ XOR A
+ LD (L2FC3),A
+ CALL 02F38H
+ LD (L2FC7),HL
+ LD A,040H
+ LD (L2FC6),A
+L2F8E: LD HL,(L2FC7)
+ LD A,(HL)
+ OR A
+ CALL Z,L2FB3
+ CALL 0FFFFH
+ LD HL,(L2FC7)
+ LD BC,00020H
+ ADD HL,BC
+ LD (L2FC7),HL
+ LD HL,L2FC6
+ DEC (HL)
+ JR NZ,L2F8E ; (-01bH)
+ LD A,(L2FC3)
+ LD HL,(L2FC4)
+ OR A
+ JP 0FFFFH
+
+L2FB3: PUSH AF
+ LD A,(L2FC3)
+ OR A
+ JR NZ,L2FC1 ; (+007H)
+ INC A
+ LD (L2FC3),A
+ LD (L2FC4),HL
+L2FC1: POP AF
+ RET
+
+L2FC3: NOP
+L2FC4: NOP
+ NOP
+L2FC6: NOP
+L2FC7: NOP
+ NOP
+L2FC9: PUSH HL
+ OR A
+ SBC HL,DE
+ POP HL
+ RET
+
+L2FCF: OR 0AFH
+L2FD1: CALL L2FE8
+L2FD4: CALL SKPDE
+ OR A
+ LD IX,(ZINP)
+ JR Z,L2FE2 ; (+004H)
+ LD IX,(ZOUT)
+L2FE2: LD A,(L1046)
+ JP IOCALL
+
+L2FE8: CALL IOOUT
+ LD A,(L35B5)
+ OR A
+ RET M
+ CALL L2D62
+ RET C
+ JP L2E36
+
+$CMT: DB "Y3CMT",000H,05FH ; $CMT - Cassette device descriptor
+L2FFE: DB 0C0H,000H,014H,"0d0",022H,030H
+ DB LSE5
+ DS 2, 000H
+ DB 001H,0AAH,"0]0",097H,01FH,097H,01FH,097H,01FH
+ CALL TEST1
+ DB 054H
+ LD HL,L2FFE
+ SET 4,(HL)
+ RET Z
+ RES 4,(HL)
+ OR A
+ RET
+
+ CALL SKPDE
+ LD DE,L10F0
+ LD A,(HL)
+ LD C,005H
+ CP 002H
+ JR Z,L303D ; (+00eH)
+ LD C,004H
+L3031: CP 003H
+ JR Z,L303D ; (+008H)
+ LD C,A
+L3036: SUB 004H
+ CP 002H
+ JP C,01F9DH
+L303D: LD A,C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD BC,00011H
+ LDIR
+ INC HL
+ INC HL
+ LD BC,L0006
+ LDIR
+ LD B,068H
+ CALL ?CLRDE
+ LD HL,L10F0
+ LD BC,L0080
+ CALL L30CB
+ JR L3060 ; (+003H)
+
+ CALL L30D2
+L3060: JP C,L017B
+ RET
+
+ LD A,037H
+ LD (L30AA),A
+ PUSH HL
+ LD HL,L10F0
+ LD BC,L0080
+ CALL L3114
+ JR C,L30C1 ; (+04cH)
+ LD DE,L3332
+ CALL L3301
+ POP DE
+ LD A,(HL)
+ LD C,002H
+ CP 005H
+ JR Z,L3091 ; (+00eH)
+ LD C,003H
+ CP 004H
+ JR Z,L3091 ; (+008H)
+ LD C,A
+ SUB 002H
+ CP 002H
+ JP C,01F9DH
+L3091: LD A,C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD BC,00011H
+ LDIR
+ XOR A
+ LD B,002H
+ CALL ?CLRDE
+ LD BC,L0006
+ LDIR
+ LD B,006H
+ JP ?CLRDE
+
+L30AA: XOR A
+ JR NC,L30BD ; (+010H)
+ LD A,0AFH
+ LD (L30AA),A
+ PUSH HL
+ LD HL,L1000
+ LD DE,L333F
+ CALL L3301
+ POP HL
+L30BD: CALL L311B
+ RET NC
+L30C1: CP 002H
+ JP NZ,L017B
+ LD A,0C6H
+ JP L0182
+
+L30CB: CALL L32D4
+ LD A,LSWF
+ JR L30D4 ; (+002H)
+
+L30D2: LD A,053H
+L30D4: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD E,A
+ LD D,0D7H
+ LD A,B
+ OR C
+ JR Z,L3107 ; (+024H)
+ CALL L32CB
+ CALL L3174
+ JR C,L3101 ; (+016H)
+ LD A,E
+ CP LSWF
+ JR NZ,L30F8 ; (+008H)
+ PUSH DE
+ LD DE,L3325
+ CALL L3301
+ POP DE
+L30F8: DI
+ OUT (LSE4),A
+ CALL 00780H
+ CALL NC,L31DD
+L3101: DI
+ OUT (LSE4),A
+ CALL 00700H
+L3107: POP DE
+ LD SP,L0000
+ OUT (LSE0),A
+ OUT (LSE1),A
+ PUSH AF
+ RST 018H
+ DB 011H
+ POP AF
+ RET
+
+L3114: CALL L32D4
+ LD A,LSWF
+ JR L311D ; (+002H)
+
+L311B: LD A,053H
+L311D: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD D,LSD2
+ LD E,A
+ LD A,B
+ OR C
+ JR Z,L3107 ; (-025H)
+ CALL L3174
+ DI
+ OUT (LSE4),A
+ CALL NC,L065B
+ CALL NC,L3220
+ JR L3101 ; (-039H)
+
+L313A: PUSH HL
+ LD DE,L334C
+ LD HL,L1000
+ CALL L3301
+ POP HL
+ CALL L3153
+ RET NC
+ CP 002H
+ JP NZ,L017B
+ LD A,083H
+ JP L0182
+
+L3153: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD D,LSD2
+ LD E,053H
+ LD A,B
+ OR C
+ JR Z,L3107 ; (-05cH)
+ CALL L32CB
+ CALL L3174
+ DI
+ OUT (LSE4),A
+ CALL NC,L065B
+ CALL NC,L3274
+ JR L3101 ; (-073H)
+
+L3174: CALL SKPDE
+ RST 018H
+ DB 010H
+ LD HL,0E000H
+ LD A,FDPA
+ CALL POPRA
+ LD B,00AH
+L3183: LD HL,0E002H
+ CALL BREAKX
+ AND 010H
+ JR Z,L319A ; (+00dH)
+L318D: LD B,0FFH
+ OUT (LSE2),A
+L3191: CALL L09A6
+ DJNZ L3191 ; (-005H)
+ OUT (LSE0),A
+ XOR A
+ RET
+
+L319A: LD HL,0E003H
+ LD A,006H
+ CALL POPRA
+ INC A
+ CALL POPRA
+ DJNZ L3183 ; (-025H)
+ LD A,(L0050)
+ OR A
+ JR NZ,L31C7 ; (+019H)
+ RST 018H
+ DB 002H
+ LD A,07FH
+ RST 018H
+ DB 004H
+ LD A,020H
+ RST 018H
+ DB 003H
+ LD A,D
+ CP 0D7H
+ LD DE,L32BC
+ JR Z,L31C3 ; (+003H)
+ LD DE,L32C3
+L31C3: RST 018H
+ DB 005H
+ RST 018H
+ DB 002H
+L31C7: LD HL,0E002H
+ CALL BREAKX
+ AND 010H
+ JR NZ,L318D ; (-044H)
+ LD HL,0E001H
+ CALL BREAKX
+ AND 080H
+ JR NZ,L31C7 ; (-014H)
+ SCF
+ RET
+
+L31DD: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD D,002H
+ LD A,FDPA
+ LD (0E000H),A
+L31E7: OUT (LSE1),A
+ LD A,(HL)
+ OUT (LSE3),A
+ CALL L32C8
+ LD A,(0E001H)
+ AND 080H
+ SCF
+ JR Z,L321C ; (+025H)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L31E7 ; (-016H)
+ LD HL,(L1197)
+ LD A,H
+ CALL L32C8
+ LD A,L
+ CALL L32C8
+ CALL L0D60
+ XOR A
+ DEC D
+ JR Z,L321C ; (+00dH)
+ LD B,000H
+L3211: CALL L0D47
+ DJNZ L3211 ; (-005H)
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+ JR L31E7 ; (-035H)
+
+L321C: POP HL
+ POP BC
+ POP DE
+ RET
+
+L3220: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD H,002H
+L3225: LD BC,0E001H
+ LD DE,0E002H
+L322B: CALL 00601H
+ JR C,L3267 ; (+037H)
+ CALL 00A4AH
+ LD A,(DE)
+ AND 020H
+ JR Z,L322B ; (-00dH)
+ LD D,H
+ LD HL,L0000
+ LD (L1197),HL
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+L3243: CALL L0624
+ JR C,L3267 ; (+01fH)
+ OUT (LSE1),A
+ LD (HL),A
+ OUT (LSE3),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3243 ; (-010H)
+ LD HL,(L1197)
+ CALL L0624
+ JR C,L3267 ; (+00cH)
+ CP H
+ JR NZ,L326B ; (+00dH)
+ CALL L0624
+ JR C,L3267 ; (+004H)
+ CP L
+ JR NZ,L326B ; (+005H)
+L3266: XOR A
+L3267: POP HL
+ POP BC
+ POP DE
+ RET
+
+L326B: DEC D
+ LD H,D
+ JR NZ,L3225 ; (-04aH)
+L326F: LD A,002H
+ SCF
+ JR L3267 ; (-00dH)
+
+L3274: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD H,002H
+L3279: LD BC,0E001H
+ LD DE,0E002H
+L327F: CALL 00601H
+ JR C,L3267 ; (-01dH)
+ CALL 00A4AH
+ LD A,(DE)
+ AND 020H
+ JR Z,L327F ; (-00dH)
+ LD D,H
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+L3291: CALL L0624
+ JR C,L3267 ; (-02fH)
+ OUT (LSE1),A
+ CP (HL)
+ OUT (LSE3),A
+ JR NZ,L326F ; (-02eH)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3291 ; (-012H)
+ LD HL,(CSMDT)
+ CALL L0624
+ JR C,L3267 ; (-044H)
+ CP H
+ JR NZ,L326F ; (-03fH)
+ CALL L0624
+ JR C,L3267 ; (-04cH)
+ CP L
+ JR NZ,L326F ; (-047H)
+ DEC D
+ LD H,D
+ JR NZ,L3279 ; (-041H)
+ JR L3266 ; (-056H)
+
+L32BC: DB "RECORD."
+L32C3: DB "PLAY",000H
+L32C8: DB 0C3H
+ DB 06DH
+ DB 007H
+L32CB: DB QDPB
+ DB LSD3
+ DB LSE2
+ DB LSRF
+ DB 01AH
+ DB 007H
+ DB LSD3
+ DB LSE0
+ DB 0C9H
+L32D4: DB LSRF
+ DB 008H,001H,03EH,0C9H,032H,0D4H,"2!6",000H,0CBH,076H,0C8H,021H,067H,007H,022H,0C9H,"2!z",007H,022H
+ DB LSFC
+ DB 030H,021H,096H,009H,022H,092H,031H,021H,001H,00AH,022H,012H,032H,021H,01AH,00AH,022H,009H,032H,0C9H
+L3301: DB 03AH
+ DB 050H
+ DB 000H
+ DB 0B7H
+ DB 0C0H
+ DB 0DFH
+ DB 002H
+ DB 0DFH
+ DB 005H
+ DB LSE5
+ DB 023H,03EH,022H,0DFH,003H,016H,010H,07EH,0FEH,00DH,028H,006H,0DFH,003H,023H,015H,020H
+ DB QDPD
+ DB 03EH
+ DB 022H
+ DB 0DFH
+ DB 003H
+ DB 0DFH
+ DB 002H
+ DB LSE1
+ DB 0C9H
+L3325: DB 057H,005H,"RITING"
+ DS 3, 020H
+ DB 006H
+ DB 000H
+L3332: DB 046H,005H,"OUND"
+ DS 5, 020H
+ DB 006H
+ DB 000H
+L333F: DB 04CH,005H,"OADING"
+ DS 3, 020H
+ DB 006H
+ DB 000H
+L334C: DB 056H,005H,"ERIFYING "
+ LD B,000H
+$RS: DB 08DH,"5RS" ; $RS - RS-232C device descriptor
+ DS 2, 000H
+ DB 08FH,001H,000H,072H,033H,0A4H,033H,0A4H,033H,0B5H,033H,0B5H,033H,0C6H,033H,0DBH,033H
+ DB LSE5
+ DB 000H
+ DB 0D8H
+ DB 0FDH
+ DB LSE5
+ DB LSRF
+ CALL PE,0CD33H
+ ADD A,B
+ INC SP
+ CALL L3435
+ JR L33D8 ; (+058H)
+
+ RST 018H
+ DB 013H
+ LD (IY-003H),E
+ CALL TEST1
+ DB 02CH
+ JP NZ,L1F6A
+ RST 018H
+ DB 013H
+ LD (IY-002H),E
+ LD (IY-008H),00DH
+ CALL TEST1
+ DB 000H
+ RET Z
+ CALL TEST1
+ DB 02CH
+ RST 018H
+ DB 013H
+ LD (IY-008H),E
+ RET
+
+ PUSH IY
+ CALL L33EC
+ LD A,(IY-001H)
+ INC (IY-001H)
+ OR A
+ CALL Z,L3497
+ JR L33D8 ; (+023H)
+
+ PUSH IY
+ CALL L33EC
+ DEC (IY-001H)
+ LD A,(IY-001H)
+ OR A
+ CALL Z,L347F
+ JR L33D7 ; (+011H)
+
+ PUSH IY
+ CALL L33EC
+ CALL L34E6
+ JR C,L33D8 ; (+008H)
+ CP (IY-008H)
+ JR NZ,L33D7 ; (+002H)
+ LD A,00DH
+L33D7: OR A
+L33D8: POP IY
+ RET
+
+ PUSH IY
+ CALL L33EC
+ CP 00DH
+ JR NZ,L33E7 ; (+003H)
+ LD A,(IY-008H)
+L33E7: CALL L352B
+ JR L33D8 ; (-014H)
+
+L33EC: PUSH AF
+ PUSH DE
+ LD A,(L1046)
+ INC A
+ LD IY,033F7H
+ LD DE,L0015
+L33F9: ADD IY,DE
+ DEC A
+ JR NZ,L33F9 ; (-005H)
+ LD C,(IY+000H)
+ POP DE
+ POP AF
+ RET
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ OR C
+ OR B
+ NOP
+ DJNZ L3421 ; (+010H)
+ INC B
+ LD B,B
+ INC BC
+ RET NZ
+ DEC B
+ LD H,B
+ JR NC,L341C ; (+003H)
+ NOP
+ NOP
+ NOP
+L341C: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L3421: OR E
+ OR D
+ NOP
+ DJNZ 03436H ; (+010H)
+ INC B
+ LD B,B
+ INC BC
+ RET NZ
+ DEC B
+ LD H,B
+ JR NC,L3431 ; (+003H)
+L342E: CALL BRKCHK
+L3431: RET NZ
+ JP 0017DH
+
+L3435: LD A,018H
+ OUT (C),A
+ LD A,030H
+ OUT (C),A
+ LD A,(IY-002H)
+ AND 00CH
+ JR NZ,L3448 ; (+004H)
+ SET 2,(IY-002H)
+L3448: LD A,(IY-002H)
+ LD B,A
+ AND 00FH
+ OR 040H
+ LD (IY+006H),A
+ LD A,B
+ AND 080H
+ OR 040H
+ LD (IY+008H),A
+ RRA
+ AND 07FH
+ OR 00AH
+ LD (IY+00AH),A
+ LD A,B
+ OR 07FH
+ LD (IY+002H),A
+ CALL L348B
+L346C: IN A,(C)
+ RRCA
+ RET NC
+ DEC C
+ IN A,(C)
+ INC C
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ AND 070H
+ JR Z,L346C ; (-012H)
+ RET
+
+L347F: RES 0,(IY+008H)
+ RES 7,(IY+00AH)
+ LD (IY-001H),000H
+L348B: LD B,00AH
+ PUSH IY
+ POP HL
+ LD DE,L0003
+ ADD HL,DE
+ OTIR
+ RET
+
+L3497: LD A,030H
+ OUT (C),A
+ RET
+
+L349C: SET 0,(IY+008H)
+ LD A,013H
+ OUT (C),A
+ LD A,(IY+008H)
+ OUT (C),A
+ LD A,035H
+ OUT (C),A
+ LD A,(IY+00AH)
+ OR 088H
+ LD (IY+00AH),A
+ OUT (C),A
+ RET
+
+ LD A,003H
+ OUT (C),A
+ RES 0,(IY+008H)
+ LD A,(IY+008H)
+ OUT (C),A
+L34C5: RES 7,(IY+00AH)
+ JR L34DB ; (+010H)
+
+L34CB: SET 1,(IY+00AH)
+ JR L34DB ; (+00aH)
+
+L34D1: RES 1,(IY+00AH)
+ JR L34DB ; (+004H)
+
+ SET 7,(IY+00AH)
+L34DB: LD A,005H
+ OUT (C),A
+ LD A,(IY+00AH)
+ OUT (C),A
+ OR A
+ RET
+
+L34E6: CALL SKPDE
+ LD C,(IY+000H)
+L34EC: CALL L342E
+ CALL L3564
+ JR C,L34EC ; (-008H)
+ CALL L349C
+L34F7: CALL L342E
+ IN A,(C)
+ RRCA
+ JR NC,L34F7 ; (-008H)
+ DEC C
+ IN A,(C)
+ INC C
+ AND (IY+002H)
+ PUSH AF
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ AND 070H
+ JR NZ,L3516 ; (+005H)
+ CALL L34C5
+ POP AF
+ RET
+
+L3516: LD B,A
+ POP AF
+ PUSH BC
+ CALL L3435
+ POP BC
+ LD A,01DH
+ RLC B
+ RLC B
+ RET C
+ INC A
+ RLC B
+ RET C
+ INC A
+ SCF
+ RET
+
+L352B: CALL SKPDE
+ LD C,(IY+000H)
+ LD D,A
+ CALL L34CB
+L3535: CALL L342E
+ CALL L356B
+ CALL NC,L357C
+L353E: JR C,L3535 ; (-00bH)
+ IN A,(C)
+ BIT 2,A
+ JR Z,L3535 ; (-011H)
+ BIT 7,(IY-003H)
+ JR Z,L3555 ; (+009H)
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ RRCA
+ JR NC,L3535 ; (-020H)
+L3555: DEC C
+ OUT (C),D
+ INC C
+ BIT 6,(IY-003H)
+ JR Z,L3562 ; (+003H)
+ CALL L34D1
+L3562: OR A
+ RET
+
+L3564: OR A
+ BIT 0,(IY-003H)
+ JR L3570 ; (+005H)
+
+L356B: OR A
+ BIT 1,(IY-003H)
+L3570: RET Z
+ LD A,010H
+ OUT (C),A
+ IN A,(C)
+ AND 008H
+ RET NZ
+ SCF
+ RET
+
+L357C: OR A
+ BIT 2,(IY-003H)
+ RET Z
+ LD A,010H
+ OUT (C),A
+ IN A,(C)
+ AND 020H
+ RET NZ
+ SCF
+ RET
+
+$FD: DB 0A2H,"8FD" ; $FD - Floppy Disk device descriptor
+ DS 2, 000H
+ DB 03FH,003H,03FH,08DH,036H,00FH
+ DS 2, 000H
+ DB 001H,030H,000H,0FEH,000H,005H,037H,008H,037H,097H,01FH,097H,01FH,097H,01FH
+ NOP
+L35AB: NOP
+L35AC: NOP
+L35AD: NOP
+ NOP
+ NOP
+L35B0: NOP
+L35B1: NOP
+ NOP
+L35B3: NOP
+L35B4: NOP
+L35B5: NOP
+L35B6: NOP
+L35B7: NOP
+ NOP
+ NOP
+ NOP
+L35BB: NOP
+ NOP
+ NOP
+ NOP
+L35BF: NOP
+L35C0: PUSH BC
+ LD A,L
+ LD B,004H
+L35C4: SRL H
+ RR L
+ DJNZ L35C4 ; (-006H)
+ AND 00FH
+ INC A
+ LD H,A
+ POP BC
+ RET
+
+L35D0: LD A,H
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ DEC A
+ ADD A,L
+ LD L,A
+ RET
+
+L35DB: CALL SKPDE
+ LD HL,L35B5
+ BIT 7,(HL)
+ JR NZ,L35EB ; (+006H)
+ CALL L367C
+ CALL L3898
+L35EB: LD A,(L35AC)
+ BIT 2,A
+ SET 2,A
+ JR Z,L35F6 ; (+002H)
+ SET 5,A
+L35F6: SET 7,A
+ LD HL,L35B5
+ BIT 6,(HL)
+ JR Z,L3601 ; (+002H)
+ SET 6,A
+L3601: CALL L361C
+ LD (HL),A
+ LD HL,L35B7
+ CALL L3614
+ BIT 0,(HL)
+ CALL Z,L3695
+ RET C
+ SET 0,(HL)
+ RET
+
+L3614: LD A,(L35AC)
+ AND 003H
+ JP ADDHLA
+
+L361C: OUT (0DCH),A
+ PUSH AF
+ RLCA
+ RLCA
+ OUT (0DDH),A
+ RLCA
+ OUT (0DEH),A
+ POP AF
+ RET
+
+L3628: CALL SKPDE
+ LD D,000H
+ LD A,(L35B3)
+ SRL A
+ CPL
+ OUT (0DBH),A
+ LD B,A
+ LD A,(L35B5)
+ RES 6,A
+ BIT 5,A
+ JR Z,L3640 ; (+001H)
+ CCF
+L3640: JR C,L3644 ; (+002H)
+ SET 6,A
+L3644: CALL L361C
+ LD HL,L35B5
+ CP (HL)
+ LD (HL),A
+ JR Z,L364F ; (+001H)
+ INC D
+L364F: LD HL,L35BB
+ CALL L3614
+ LD A,(HL)
+ OUT (0D9H),A
+ CP B
+ JR Z,L3666 ; (+00bH)
+ INC D
+ CALL L3673
+ PUSH AF
+ IN A,(0D9H)
+ LD (HL),A
+ POP AF
+ RET C
+ RET NZ
+L3666: LD A,(L35B4)
+ CPL
+ OUT (0DAH),A
+ LD A,D
+ OR A
+ CALL NZ,L388D
+ XOR A
+ RET
+
+L3673: LD A,018H
+ CALL L36C2
+ RET C
+ AND 099H
+ RET
+
+L367C: LD HL,L35B5
+ SET 7,(HL)
+ LD A,(HL)
+ CALL L361C
+ LD HL,L35B7
+ LD B,004H
+ JP ?CLRHL
+
+L368D: XOR A
+ CALL L361C
+ LD (L35B5),A
+ RET
+
+L3695: CALL SKPDE
+ LD HL,L35BB
+ CALL L3614
+ LD (HL),0FFH
+ LD A,008H
+ CALL L36C2
+ RET C
+ AND 085H
+ XOR 004H
+ RET Z
+ JP L385A
+
+L36AE: PUSH AF
+ LD A,LSD0
+ CALL L36BB
+ JR C,L36B8 ; (+002H)
+ POP AF
+ RET
+
+L36B8: POP HL
+ POP HL
+ RET
+
+L36BB: CALL SKPDE
+ LD D,000H
+ JR L36DC ; (+01aH)
+
+L36C2: CALL SKPDE
+ LD B,A
+ LD A,(035AAH)
+ CPL
+ AND 003H
+ OR B
+ LD D,000H
+ JR L36D6 ; (+005H)
+
+L36D1: CALL SKPDE
+ LD D,001H
+L36D6: CALL L36AE
+ LD (L35B6),A
+L36DC: CPL
+ OUT (0D8H),A
+ CALL L3887
+ LD E,007H
+L36E4: LD HL,L2710
+L36E7: DEC HL
+ LD A,H
+ OR L
+ JP Z,L36F9
+ IN A,(0D8H)
+ CPL
+ LD B,A
+ AND 081H
+ CP D
+ JR NZ,L36E7 ; (-00fH)
+ LD A,B
+ OR A
+ RET
+
+L36F9: DEC E
+ JP Z,L385A
+ LD A,(L35B6)
+ CPL
+ OUT (0D8H),A
+ JR L36E4 ; (-021H)
+
+ DB 037H
+ JR L3709 ; (+001H)
+
+ OR A
+L3709: EX AF,AF'
+ PUSH AF
+ EX AF,AF'
+ LD (L35B1),HL
+ PUSH HL
+ LD HL,L35AB
+ RL (HL)
+ RRC (HL)
+ LD H,(HL)
+ LD L,A
+ AND 007H
+ LD (L35AC),A
+ CALL L35DB
+ JR NC,L3728 ; (+005H)
+ POP HL
+ EX AF,AF'
+ POP AF
+ EX AF,AF'
+ RET
+
+L3728: BIT 7,H
+ LD A,L
+ POP HL
+ PUSH HL
+ CALL Z,L37E7
+ LD (035AFH),DE
+ PUSH DE
+ OR A
+ PUSH AF
+ LD H,B
+ LD L,C
+ CALL P,L35C0
+ LD (L35AD),HL
+ LD A,009H
+ LD (L35BF),A
+ PUSH IY
+ CALL L375C
+ EX AF,AF'
+ POP IY
+ LD HL,(L35B3)
+ POP AF
+ CALL P,L35D0
+ LD B,H
+ LD C,L
+ POP DE
+ POP HL
+ POP AF
+ EX AF,AF'
+ JP L37E7
+
+L375C: LD E,000H
+ LD HL,(035AFH)
+ LD A,(L35B5)
+ BIT 5,A
+ JR Z,L376B ; (+003H)
+ ADD HL,HL
+ LD E,080H
+L376B: LD A,L
+ OR A
+ JR Z,L3770 ; (+001H)
+ INC H
+L3770: LD A,H
+ LD (L35B0),A
+L3774: CALL L37FA
+ CALL NC,L3628
+ RET C
+ JR NZ,L37E1 ; (+064H)
+ DI
+ LD A,(L35AB)
+ BIT 7,A
+ LD A,090H
+ LD IY,0A2EDH
+ JR NZ,L3791 ; (+006H)
+ LD A,0B4H
+ LD IY,0A3EDH
+L3791: LD (L37A8),IY
+ CALL L36D1
+ RET C
+L3799: LD B,E
+ PUSH DE
+ LD DE,0FE7CH
+L379E: IN A,(0D8H)
+ OR E
+ CP D
+ JR Z,L379E ; (-006H)
+ CP LSFC
+ JR NZ,L37AD ; (+005H)
+L37A8: NOP
+ NOP
+ JP NZ,L379E
+L37AD: POP DE
+ IN A,(0D8H)
+ RRA
+ JP C,L385A
+ LD A,(L35B4)
+ INC A
+ LD (L35B4),A
+ CP 011H
+ JR Z,L37C4 ; (+005H)
+ DEC D
+ JR NZ,L3799 ; (-029H)
+ JR L37C5 ; (+001H)
+
+L37C4: DEC D
+L37C5: CALL L36AE
+ EI
+ IN A,(0D8H)
+ CPL
+ OR A
+ JR NZ,L37E1 ; (+012H)
+ LD A,(L35AB)
+ OR A
+ CALL Z,L3830
+ JR C,L37E1 ; (+009H)
+ CALL L3818
+ LD A,D
+ OR A
+ JR NZ,L3774 ; (-06bH)
+ XOR A
+ RET
+
+L37E1: CALL L380B
+ RET C
+ JR L3774 ; (-073H)
+
+L37E7: CALL IOOUT
+ LD A,(L35B5)
+ BIT 5,A
+ RET Z
+L37F0: LD A,(HL)
+ CPL
+ LD (HL),A
+ INC HL
+ DEC DE
+ LD A,D
+ OR E
+ JR NZ,L37F0 ; (-009H)
+ RET
+
+L37FA: LD HL,(L35AD)
+ LD (L35B3),HL
+ LD HL,(L35B1)
+ LD A,(L35B0)
+ LD D,A
+ LD C,0DBH
+ OR A
+ RET
+
+L380B: CALL SKPDE
+ LD HL,L35BF
+ DEC (HL)
+ JP Z,L385A
+ JP L3695
+
+L3818: LD (L35B1),HL
+ LD A,D
+ LD (L35B0),A
+ LD HL,(L35B3)
+ LD A,H
+ CP 011H
+ RET NZ
+ LD H,001H
+ INC L
+ LD (L35AD),HL
+ LD (L35B3),HL
+ RET
+
+L3830: LD A,(035AEH)
+ CPL
+ OUT (0DAH),A
+ LD A,090H
+ CALL L36D1
+ RET C
+ LD A,(L35B4)
+ LD B,A
+L3840: IN A,(0D8H)
+ CPL
+ AND 081H
+ CP 001H
+ JR NZ,L3852 ; (+009H)
+ IN A,(0DAH)
+ CPL
+ CP B
+ JR NZ,L3840 ; (-00fH)
+ CALL L36AE
+L3852: IN A,(0D8H)
+ CPL
+ AND 099H
+ RET Z
+ SCF
+ RET
+
+L385A: LD A,(L35B6)
+ RLA
+ IN A,(0D8H)
+ CPL
+ JR NC,L3878 ; (+015H)
+ RLA
+ JR C,L387B ; (+015H)
+ RLA
+ JR NC,L3870 ; (+007H)
+ LD HL,L35AB
+ BIT 7,(HL)
+ JR Z,L387F ; (+00fH)
+L3870: AND 0C0H
+ JR NZ,L3883 ; (+00fH)
+L3874: LD A,029H
+ SCF
+ RET
+
+L3878: RLA
+ JR NC,L3874 ; (-007H)
+L387B: LD A,032H
+ SCF
+ RET
+
+L387F: LD A,02EH
+ SCF
+ RET
+
+L3883: LD A,036H
+ SCF
+ RET
+
+L3887: PUSH DE
+ LD DE,L000F
+ JR L3891 ; (+004H)
+
+L388D: PUSH DE
+ LD DE,L2026
+L3891: DEC DE
+ LD A,E
+ OR D
+ JR NZ,L3891 ; (-005H)
+ POP DE
+ RET
+
+L3898: PUSH BC
+ LD B,011H
+L389B: CALL L388D
+ DJNZ L389B ; (-005H)
+ POP BC
+ RET
+
+$QD: DB 05EH,00DH,051H,044H ; $QD - Quick Disk device descriptor
+ DS 2, 000H
+ DB "_@ ",0C4H,038H
+ DB FDPD
+ DB "8*9",0DAH,038H,000H,004H,018H
+ DS 3, 039H
+ DB 097H
+ DB 01FH
+ DB 097H
+ DB 01FH
+ DB 0C1H
+ DB 038H
+ NOP
+ NOP
+ XOR A
+ SCF
+ RET
+
+ RET C
+ CALL L1E7A
+ CALL TEST1
+ DB 000H
+ JP NZ,L1F6A
+ CALL L392F
+ RET C
+ LD HL,L3972
+ LD (HL),002H
+ JR L3928 ; (+04eH)
+
+ OR A
+ JR NZ,L38F4 ; (+017H)
+ XOR A
+ LD (L397E),A
+ LD HL,L3972
+ LD (HL),005H
+ CALL L3988
+ LD HL,00001H
+ LD (L3972),HL
+ LD HL,L3972
+ JR L3928 ; (+034H)
+
+L38F4: LD HL,L3972
+ LD (HL),006H
+ JR L3928 ; (+02dH)
+
+ LD (L3974),HL
+ LD HL,L0003
+ LD (L3972),HL
+ LD HL,00040H
+ LD (L3976),HL
+ LD HL,L3972
+ CALL L3988
+ RET NC
+ CP 028H
+ SCF
+ RET NZ
+ LD A,000H
+ RET
+
+ LD (L3974),HL
+ LD HL,00103H
+ LD (L3972),HL
+ LD (03976H),BC
+ LD HL,L3972
+L3928: JR L3988 ; (+05eH)
+
+ LD A,037H
+ LD (L393C),A
+L392F: LD A,001H
+ LD HL,L3973
+ LD (HL),A
+ DEC HL
+ LD (HL),A
+ JR L3988 ; (+04fH)
+
+ LD (L3971),A
+L393C: XOR A
+ JR NC,L395B ; (+01cH)
+ LD A,0AFH
+ LD (L393C),A
+ CALL L1C2B
+ LD (L3978),HL
+ LD HL,L1000
+ LD (L3974),HL
+ LD HL,00040H
+ LD (L3976),HL
+ LD A,(L3971)
+ JR L3963 ; (+008H)
+
+L395B: LD (L3978),HL
+ LD A,(L3971)
+ SET 0,A
+L3963: LD (L3973),A
+ LD (0397AH),BC
+ LD HL,L3972
+ LD (HL),004H
+ JR L3988 ; (+017H)
+
+L3971: NOP
+L3972: NOP
+L3973: NOP
+L3974: NOP
+ NOP
+L3976: NOP
+ NOP
+L3978: NOP
+ NOP
+ NOP
+ NOP
+L397C: NOP
+L397D: NOP
+L397E: NOP
+L397F: NOP
+L3980: NOP
+L3981: NOP
+L3982: NOP
+L3983: NOP
+L3984: NOP
+L3985: NOP
+ NOP
+ NOP
+L3988: LD A,002H
+ LD (L3984),A
+L398D: DI
+ CALL L39D5
+ EI
+ RET NC
+ PUSH AF
+ CP 028H
+ JR Z,L39D3 ; (+03bH)
+ CALL L3C34
+ LD A,(L3980)
+ OR A
+ JR Z,L39B8 ; (+017H)
+ XOR A
+ LD (L3980),A
+ LD A,(L3981)
+ PUSH HL
+ LD (03986H),SP
+ POP HL
+ DI
+ CALL L3BD3
+ EI
+ JR C,L39CD ; (+018H)
+ CALL L3C34
+L39B8: POP AF
+ PUSH AF
+ CP 029H
+ JR NZ,L39D3 ; (+015H)
+ LD HL,L3984
+ DEC (HL)
+ JR Z,L39CD ; (+009H)
+ POP AF
+ LD A,(L397F)
+ LD (L397E),A
+ JR L398D ; (-040H)
+
+L39CD: CALL L3B47
+ CALL L39EE
+L39D3: POP AF
+ RET
+
+L39D5: LD (03986H),SP
+ LD A,(L3972)
+ DEC A
+ JR Z,L39F5 ; (+016H)
+ DEC A
+ JR Z,L39FB ; (+019H)
+ DEC A
+ JR Z,L3A49 ; (+064H)
+ DEC A
+ JP Z,L3AB4
+ DEC A
+ JR Z,L39EE ; (+002H)
+ JR L3A3E ; (+050H)
+
+L39EE: PUSH AF
+ XOR A
+ LD (L397C),A
+ POP AF
+ RET
+
+L39F5: LD A,(L3973)
+ JP L3BA9
+
+L39FB: XOR A
+ CALL L3BD3
+ CALL L3CAA
+ LD BC,0FFFFH
+ LD A,0AAH
+L3A07: CPL
+ LD D,A
+ CALL L3D21
+ DEC BC
+ LD A,B
+ OR C
+ JR Z,L3A14 ; (+003H)
+ LD A,D
+ JR L3A07 ; (-00dH)
+
+L3A14: CALL L3CF7
+ CALL L3C34
+ CALL L3BEB
+ LD A,(L3982)
+ DEC A
+ JR NZ,L3A41 ; (+01eH)
+ CALL L3C49
+ LD BC,0FFFFH
+ LD E,055H
+L3A2B: CP E
+ JR NZ,L3A41 ; (+013H)
+ DEC BC
+ LD A,B
+ OR C
+ JR Z,L3A3B ; (+008H)
+ LD A,E
+ CPL
+ LD E,A
+ CALL L3D37
+ JR L3A2B ; (-010H)
+
+L3A3B: CALL L3D09
+L3A3E: JP L3C34
+
+L3A41: LD A,029H
+ SCF
+ RET
+
+L3A45: EI
+ JP 0017DH
+
+L3A49: LD A,(L3983)
+ OR A
+ CALL Z,L3BEB
+ CALL L3A7A
+ RET C
+ CALL BRKCHK
+ JP Z,L3A45
+ CALL L3D37
+ LD C,A
+ CALL L3D37
+ LD B,A
+ LD HL,(L3974)
+L3A65: CALL L3D37
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3A65 ; (-00aH)
+ CALL L3D09
+ LD A,(L3973)
+ BIT 0,A
+ JR NZ,L3A3E ; (-03bH)
+ RET
+
+L3A7A: LD HL,L3982
+ DEC (HL)
+ JR Z,L3AB0 ; (+030H)
+ CALL L3C49
+ LD C,A
+ LD A,(L397C)
+ LD HL,L397D
+ CP (HL)
+ JR NZ,L3AAD ; (+020H)
+ INC A
+ LD (L397C),A
+ LD (HL),A
+ LD A,(L3973)
+ XOR C
+ RRA
+ RET NC
+L3A98: CALL L3D37
+ LD C,A
+ CALL L3D37
+ LD B,A
+L3AA0: CALL L3D37
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3AA0 ; (-008H)
+ CALL L3D09
+ JR L3A7A ; (-033H)
+
+L3AAD: INC (HL)
+ JR L3A98 ; (-018H)
+
+L3AB0: LD A,028H
+ SCF
+ RET
+
+L3AB4: LD A,(L397E)
+ LD (L397F),A
+ LD A,(L3983)
+ OR A
+ JR NZ,L3AD7 ; (+017H)
+ CALL L3BEB
+ LD A,(L397E)
+ LD HL,L3982
+ ADD A,(HL)
+ LD (L3982),A
+ INC A
+ LD (L397C),A
+ CALL L3A7A
+ JP NC,L3B51
+L3AD7: LD A,(L3973)
+ LD B,A
+ AND 001H
+ JR NZ,L3AEE ; (+00fH)
+ LD DE,L3974
+ LD A,B
+ RES 2,A
+ CALL L3B5A
+ CALL BRKCHK
+ JP Z,L3A45
+L3AEE: LD DE,L3978
+ LD A,(L3973)
+ SET 0,A
+ CALL L3B5A
+ CALL L3C34
+ CALL BRKCHK
+ JP Z,L3A45
+ LD A,(L3973)
+ AND 004H
+ JR Z,L3B55 ; (+04cH)
+ LD A,(L3981)
+ LD HL,L397E
+ ADD A,(HL)
+ CALL L3BD3
+ LD A,001H
+ LD (L3980),A
+L3B18: LD A,(L3981)
+ LD HL,L397F
+ ADD A,(HL)
+ INC A
+ LD (L3982),A
+ INC A
+ LD (L397C),A
+ CALL L3A7A
+ JR NC,L3B51 ; (+025H)
+ LD A,(L3973)
+ AND 001H
+ JR NZ,L3B3A ; (+007H)
+ LD DE,L3974
+ CALL L3B88
+ RET C
+L3B3A: LD DE,L3978
+ CALL L3B88
+ RET C
+ LD A,(L3980)
+ OR A
+ JR Z,L3B4E ; (+007H)
+L3B47: XOR A
+ LD (L397E),A
+ LD (L3980),A
+L3B4E: JP L3C34
+
+L3B51: LD A,029H
+ SCF
+ RET
+
+L3B55: CALL L3BEB
+ JR L3B18 ; (-042H)
+
+L3B5A: PUSH AF
+ LD HL,L397E
+ INC (HL)
+ CALL L3CAA
+ POP AF
+ CALL L3D21
+ CALL L3B7E
+ LD A,C
+ CALL L3D21
+ LD A,B
+ CALL L3D21
+L3B71: LD A,(HL)
+ CALL L3D21
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3B71 ; (-00aH)
+ JP L3CF7
+
+L3B7E: EX DE,HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ EX DE,HL
+ RET
+
+L3B88: CALL L3C49
+ CALL L3B7E
+ CALL L3D37
+ CP C
+ JR NZ,L3B51 ; (-043H)
+ CALL L3D37
+ CP B
+ JR NZ,L3B51 ; (-049H)
+L3B9A: CALL L3D37
+ CP (HL)
+ JR NZ,L3B51 ; (-04fH)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3B9A ; (-00cH)
+ JP L3D09
+
+L3BA9: LD B,A
+ LD A,002H
+ OUT (0F7H),A
+ LD A,055H
+ OUT (0F7H),A
+ LD A,002H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ CP 055H
+ JP NZ,03D4DH
+ LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ LD C,A
+ AND 008H
+ JP Z,03D4DH
+ LD A,B
+ OR A
+ RET Z
+ LD A,C
+ AND 020H
+ RET NZ
+ JP 03D4AH
+
+L3BD3: PUSH AF
+ LD HL,03D73H
+ LD B,009H
+ CALL L3C0A
+ CALL L3CDF
+ CALL L3CC3
+ POP AF
+ CALL L3D21
+ CALL L3CF7
+ JR L3C00 ; (+015H)
+
+L3BEB: LD HL,L3D68
+ LD B,00BH
+ CALL L3C0A
+ CALL L3C5F
+ LD (L3981),A
+ INC A
+ LD (L3982),A
+ CALL L3D09
+L3C00: LD HL,L3985
+ SET 3,(HL)
+ XOR A
+ LD (L397D),A
+ RET
+
+L3C0A: LD C,0F6H
+ OTIR
+ LD A,005H
+ LD (L3983),A
+ OUT (0F7H),A
+ LD A,080H
+ OUT (0F7H),A
+L3C19: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03D4DH
+ LD A,010H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 008H
+ JR Z,L3C19 ; (-015H)
+ LD BC,L00E9
+ JP L3D5B
+
+L3C34: PUSH AF
+ LD A,005H
+ OUT (0F6H),A
+ LD A,060H
+ OUT (0F6H),A
+ LD A,005H
+ OUT (0F7H),A
+ XOR A
+ LD (L3983),A
+ OUT (0F7H),A
+ POP AF
+ RET
+
+L3C49: LD A,058H
+ LD B,00BH
+ LD HL,L3D68
+ CALL L3CE8
+ LD HL,L3985
+ BIT 3,(HL)
+ LD BC,L0003
+ JR Z,L3C62 ; (+005H)
+ RES 3,(HL)
+L3C5F: LD BC,L00A0
+L3C62: CALL L3D5B
+ LD A,005H
+ OUT (0F7H),A
+ LD A,082H
+ OUT (0F7H),A
+ LD A,003H
+ OUT (0F6H),A
+ LD A,LSD3
+ OUT (0F6H),A
+ LD BC,L2CC0
+L3C78: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 010H
+ JR Z,L3C8A ; (+008H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3C78 ; (-00fH)
+ JP 03D53H
+
+L3C8A: LD A,003H
+ OUT (0F6H),A
+ LD A,0C3H
+ OUT (0F6H),A
+L3C92: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 001H
+ JR Z,L3C92 ; (-00aH)
+ LD A,003H
+ OUT (0F6H),A
+ LD A,0C9H
+ OUT (0F6H),A
+ CALL L3D37
+ JP L3D37
+
+L3CAA: LD A,098H
+ LD B,009H
+ LD HL,03D73H
+ CALL L3CE8
+ CALL L3CDF
+ LD HL,L3985
+ BIT 3,(HL)
+ LD BC,0001DH
+ JR Z,L3CC6 ; (+005H)
+ RES 3,(HL)
+L3CC3: LD BC,L0140
+L3CC6: CALL L3D5B
+ LD A,005H
+ OUT (0F6H),A
+ LD A,0EFH
+ OUT (0F6H),A
+ LD BC,00001H
+ CALL L3D5B
+ LD A,0C0H
+ OUT (0F6H),A
+ LD A,0A5H
+ JR L3D21 ; (+042H)
+
+L3CDF: LD A,005H
+ OUT (0F6H),A
+ LD A,0FFH
+ OUT (0F6H),A
+ RET
+
+L3CE8: LD C,0F6H
+ OUT (C),A
+ LD A,005H
+ OUT (0F7H),A
+ LD A,080H
+ OUT (0F7H),A
+ OTIR
+ RET
+
+L3CF7: LD BC,00001H
+ CALL L3D5B
+ LD A,010H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 008H
+ RET NZ
+ JP 03D50H
+
+L3D09: LD B,003H
+L3D0B: CALL L3D37
+ DJNZ L3D0B ; (-005H)
+L3D10: IN A,(0F6H)
+ RRCA
+ JR NC,L3D10 ; (-005H)
+ LD A,001H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 040H
+ JR NZ,L3D47 ; (+028H)
+ OR A
+ RET
+
+L3D21: PUSH AF
+L3D22: IN A,(0F6H)
+ AND 004H
+ JR Z,L3D22 ; (-006H)
+ POP AF
+ OUT (QDPC),A
+L3D2B: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03D4DH
+ RET
+
+L3D37: CALL L3D2B
+ IN A,(0F6H)
+ RLCA
+ JR C,L3D47 ; (+008H)
+ RRCA
+ RRCA
+ JR NC,L3D37 ; (-00cH)
+ IN A,(QDPC)
+ OR A
+ RET
+
+L3D47: LD A,029H
+ LD HL,02E3EH
+ LD HL,0323EH
+ LD HL,L353E
+ LD HL,0363EH
+ LD SP,(03986H)
+ SCF
+ RET
+
+L3D5B: PUSH AF
+L3D5C: LD A,098H
+L3D5E: DEC A
+ JR NZ,L3D5E ; (-003H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3D5C ; (-00aH)
+ POP AF
+ RET
+
+L3D68: LD E,B
+ INC B
+ DJNZ L3D71 ; (+005H)
+ INC B
+ INC BC
+ RET NC
+ LD B,016H
+L3D71: RLCA
+ LD D,098H
+ INC B
+ DJNZ L3D7D ; (+006H)
+ LD D,007H
+ LD D,005H
+ LD L,L
+ PUSH HL
+L3D7D: LD DE,(00188H)
+ PUSH DE
+ LD DE,L3DC3
+ LD (00188H),DE
+ LD A,(L004F)
+ PUSH AF
+ LD A,064H
+ LD (L004F),A
+ LD (03E3AH),SP
+ XOR A
+ LD (L1091),A
+L3D9A: LD SP,L0000
+L3D9D: LD BC,L3D9D
+ PUSH BC
+ RST 018H
+ DB 002H
+ LD A,02AH
+ RST 018H
+ DB 003H
+L3DA7: CALL L3E46
+ JR NC,L3DA7 ; (-005H)
+ LD A,(DE)
+ CP 02AH
+ RET NZ
+ INC DE
+ LD A,(DE)
+ INC DE
+ EXX
+ LD HL,L3DD5
+ LD B,00AH
+L3DB9: CP (HL)
+ INC HL
+ JR Z,L3DCF ; (+012H)
+ INC HL
+ INC HL
+ DJNZ L3DB9 ; (-008H)
+ EXX
+ RET
+
+L3DC3: LD C,A
+ AND 07FH
+ JR Z,L3D9A ; (-02eH)
+ LD A,C
+ RST 018H
+ DB 01BH
+ RST 018H
+ DB 043H
+ JR L3D9A ; (-035H)
+
+L3DCF: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH DE
+ EXX
+ RET
+
+L3DD5: LD B,H
+ CP E
+ LD A,04DH
+ DEC L
+ CCF
+ LD D,B
+ DI
+ DEC A
+ LD B,A
+ OR (HL)
+ LD A,046H
+ LD D,C
+ CCF
+ LD D,D
+ ADD HL,SP
+ LD A,053H
+ CALL M,L4C3D
+ INC DE
+ LD A,056H
+ JR NC,03E2EH ; (+03eH)
+ LD D,H
+ AND C
+ CCF
+ LD A,(L1091)
+ XOR 001H
+ LD (L1091),A
+ RET
+
+ CALL L3F8A
+ RET C
+ EXX
+ CALL L3FB8
+ EXX
+ LD (ELMD20),BC
+ LD (ELMD22),DE
+ LD (L1018),HL
+ RST 018H
+ DB 031H
+ RET
+
+ CALL L3E67
+ PUSH HL
+ PUSH AF
+ CALL L3E25
+ POP AF
+ POP HL
+ JR NC,L3E22 ; (+003H)
+ LD HL,(ELMD22)
+L3E22: RST 018H
+ DB 030H
+ RET
+
+L3E25: CALL L3FB8
+ RST 018H
+ DB 02FH
+ CP 001H
+ RET Z
+ JP 01F9DH
+
+ CALL L3E25
+ LD HL,(ELMD22)
+ RST 018H
+ DB 032H
+ RET
+
+ LD SP,L0000
+ POP AF
+ LD (L004F),A
+ POP HL
+ LD (00188H),HL
+ POP HL
+ RET
+
+L3E46: LD DE,0FF00H
+ RST 018H
+ DB 00CH
+ JR C,L3E65 ; (+018H)
+ LD A,(DE)
+ CP 03AH
+ SCF
+ RET NZ
+ INC DE
+ CALL L3E67
+ RET C
+ LD A,(DE)
+ INC DE
+ XOR 03DH
+ RET NZ
+L3E5C: CALL L3E8C
+ CCF
+ RET NC
+ LD (HL),A
+ INC HL
+ JR L3E5C ; (-009H)
+
+L3E65: LD (DE),A
+ RET
+
+L3E67: PUSH HL
+ CALL L3E81
+ PUSH DE
+ CALL L3E93
+ JR C,L3E7C ; (+00bH)
+ LD H,A
+ CALL L3E93
+ JR C,L3E7C ; (+005H)
+ LD L,A
+ POP AF
+ POP AF
+ XOR A
+ RET
+
+L3E7C: POP DE
+ POP HL
+ SCF
+ RET
+
+L3E80: INC DE
+L3E81: LD A,(DE)
+ CP 020H
+ JR Z,L3E80 ; (-006H)
+ RET
+
+L3E87: LD A,(DE)
+ RST 018H
+ DB 015H
+ INC DE
+ RET
+
+L3E8C: CALL L3E81
+ CP 03BH
+ JR Z,L3EB1 ; (+01eH)
+L3E93: PUSH BC
+ PUSH DE
+ CALL L3E87
+ JR C,L3EAD ; (+013H)
+ LD C,A
+ CALL L3E87
+ JR C,L3EAD ; (+00dH)
+ LD B,A
+ LD A,C
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ ADD A,B
+ LD C,A
+ LD A,C
+ POP BC
+ POP BC
+ OR A
+ RET
+
+L3EAD: POP DE
+ POP BC
+ SCF
+ RET
+
+L3EB1: INC DE
+ LD A,(DE)
+ INC DE
+ OR A
+ RET
+
+ CALL L3E67
+ RET C
+ JP (HL)
+
+ CALL L3E67
+ JR C,L3ECB ; (+00bH)
+ PUSH HL
+ CALL L3E67
+ JR C,L3ECA ; (+004H)
+ POP DE
+ EX DE,HL
+ JR L3ED1 ; (+007H)
+
+L3ECA: POP HL
+L3ECB: EX DE,HL
+ LD HL,L0080
+ ADD HL,DE
+ EX DE,HL
+L3ED1: LD C,008H
+ CALL L3EDE
+ RET C
+ PUSH HL
+ SBC HL,DE
+ POP HL
+ RET NC
+ JR L3ED1 ; (-00dH)
+
+L3EDE: CALL L3F06
+ LD B,C
+ PUSH HL
+L3EE3: LD A,(HL)
+ CALL L3F17
+ INC HL
+ LD A,020H
+ RST 018H
+ DB 009H
+ DJNZ L3EE3 ; (-00bH)
+ POP HL
+ LD A,02FH
+ RST 018H
+ DB 009H
+ LD B,C
+L3EF4: LD A,(HL)
+ CP 020H
+ JR NC,L3EFB ; (+002H)
+ LD A,02EH
+L3EFB: RST 018H
+ DB 009H
+ INC HL
+ DJNZ L3EF4 ; (-00cH)
+ RST 018H
+ DB 008H
+ RST 018H
+ DB 00FH
+ OR A
+ RET
+
+L3F06: LD A,03AH
+ RST 018H
+ DB 009H
+ LD A,H
+ CALL L3F17
+ LD A,L
+ CALL L3F17
+ LD A,03DH
+ RST 018H
+ DB 009H
+ RET
+
+L3F17: PUSH AF
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ CALL L3F20
+ POP AF
+L3F20: AND 00FH
+ ADD A,030H
+ CP 03AH
+ JR C,L3F2A ; (+002H)
+ ADD A,007H
+L3F2A: RST 018H
+ DB 009H
+ RET
+
+ CALL L3E67
+ LD A,(L1091)
+ PUSH AF
+ XOR A
+ LD (L1091),A
+L3F38: RST 018H
+ DB 002H
+ CALL L3F06
+ LD A,(HL)
+ CALL L3F17
+ LD A,014H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 003H
+ CALL L3E46
+ JR NC,L3F38 ; (-014H)
+ POP AF
+ LD (L1091),A
+ RET
+
+ CALL L3E67
+ RET C
+ PUSH HL
+ CALL L3E67
+ POP BC
+ RET C
+ PUSH HL
+ PUSH BC
+ LD HL,0FF00H
+ CALL L3E5C
+ LD DE,0FF00H
+ OR A
+ SBC HL,DE
+ LD C,L
+ POP HL
+ PUSH HL
+ EXX
+ POP HL
+ POP DE
+ EXX
+ RET Z
+L3F71: CALL L3FCB
+ JR NZ,L3F7A ; (+004H)
+ CALL L3EDE
+ RET C
+L3F7A: RST 018H
+ DB 00EH
+ RET Z
+ EXX
+ INC HL
+ PUSH HL
+ SCF
+ SBC HL,DE
+ POP HL
+ RET NC
+ PUSH HL
+ EXX
+ POP HL
+ JR L3F71 ; (-019H)
+
+L3F8A: CALL L3E67
+ PUSH HL
+ CALL NC,L3E67
+ POP BC
+ RET C
+ SBC HL,BC
+ INC HL
+ PUSH HL
+ PUSH BC
+ CALL L3E67
+ PUSH HL
+ EXX
+ POP HL
+ POP DE
+ POP BC
+ RET
+
+ CALL L3F8A
+ RET C
+ EX DE,HL
+ PUSH HL
+ SBC HL,DE
+ POP HL
+ JR C,L3FAF ; (+003H)
+ LDIR
+ RET
+
+L3FAF: ADD HL,BC
+ DEC HL
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ EX DE,HL
+ LDDR
+ RET
+
+L3FB8: LD A,(DE)
+ OR A
+ JR Z,L3FC1 ; (+005H)
+ INC DE
+ CP 03AH
+ JR NZ,L3FB8 ; (-009H)
+L3FC1: RST 018H
+ DB 017H
+ RST 018H
+ DB 02DH
+ LD A,001H
+ LD (L1000),A
+ RET
+
+L3FCB: LD A,(DE)
+ CP (HL)
+ RET NZ
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD B,C
+L3FD2: LD A,(DE)
+ CP (HL)
+ JR NZ,L3FDB ; (+005H)
+ INC DE
+ INC HL
+ DJNZ L3FD2 ; (-008H)
+ XOR A
+L3FDB: POP HL
+ POP DE
+ POP BC
+ RET
+
+ DS 33, 000H
+L4000: LD HL,L85FE
+ LD (L1070),HL
+ LD HL,L4052
+ LD (000E3H),HL
+ LD A,B
+ OR A
+ JR Z,L401B ; (+00bH)
+ LD HL,L4042
+ LD DE,L1361
+ LD BC,00010H
+ LDIR
+L401B: LD A,(L0036)
+ BIT 6,A
+ LD A,045H
+ JR Z,L4027 ; (+003H)
+ LD (L852E),A
+L4027: LD DE,L84E0
+ RST 018H
+L402B: DB 005H
+ RST 018H
+ DB 020H
+ EX DE,HL
+L402F: LD (HL),000H
+ INC HL
+ LD A,H
+ CP 0FFH
+ JR C,L402F ; (-008H)
+ CALL L4902
+ CALL L4914
+ CALL L5E1B
+ JR L4056 ; (+014H)
+
+L4042: RRCA
+ DB "RUN ",022H,"AUTO RUN",022H,00DH
+L4052: DB 03EH
+ DB 016H
+ DB 0DFH
+ DB 003H
+L4056: LD HL,L4B7B
+ LD (00188H),HL
+L405C: RST 018H
+ DB 002H
+ LD DE,L4B68
+ RST 018H
+ DB 005H
+ RST 018H
+ DB 001H
+L4065: LD A,(L4B6E)
+ OR A
+ JR NZ,L4077 ; (+00cH)
+ LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ LD (0848FH),SP
+L4077: LD HL,L0000
+ LD (L847C),HL
+ XOR A
+ LD (L0050),A
+ CALL L48B1
+ RST 018H
+ DB 043H
+ LD DE,L11A4
+ RST 018H
+ DB 00CH
+ JR NC,L4099 ; (+00cH)
+L408D: LD HL,L48B0
+ LD A,(HL)
+ OR A
+ LD (HL),000H
+ JR NZ,L405C ; (-03aH)
+ JR L4065 ; (-033H)
+
+L4098: INC DE
+L4099: LD A,(DE)
+ CP 020H
+ JR Z,L4098 ; (-006H)
+ OR A
+ JR Z,L4065 ; (-03cH)
+ CALL L5EC2
+ JP NC,L4746
+ LD HL,L84E0
+ PUSH HL
+ CALL L66ED
+ INC HL
+ LD (L8476),HL
+ CALL L4952
+ POP HL
+ JR L40BB ; (+003H)
+
+L40B8: CALL L5E46
+L40BB: LD (0848FH),SP
+L40BF: LD DE,L40B8
+ PUSH DE
+L40C3: LD (L8491),HL
+ CALL BRKCHK
+ JP Z,0017DH
+L40CC: LD A,(HL)
+ INC HL
+ CP 080H
+ JR NC,L4126 ; (+054H)
+ CP 027H
+ JP Z,L4F80
+ CP 020H
+ JR Z,L40CC ; (-00fH)
+ CP 03AH
+ JR Z,L40C3 ; (-01cH)
+ OR A
+ JR Z,L40ED ; (+00bH)
+ DEC HL
+ SUB 041H
+ CP 01AH
+ JP C,L4C8F
+ JP L4AE6
+
+L40ED: LD HL,(L8476)
+L40F0: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L410F ; (+018H)
+ LD (L0050),A
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ LD (L8476),HL
+ EX DE,HL
+ INC HL
+ CALL LDDEMI
+ LD (0847CH),DE
+ CALL L4971
+ POP DE
+ JR L40BB ; (-054H)
+
+L410F: POP HL
+ CALL L4152
+ JP Z,L405C
+ XOR A
+ LD (L4B6E),A
+ LD A,(L847F)
+ CP 002H
+ JP Z,04B13H
+ PUSH HL
+ JP L4850
+
+L4126: CP 0FFH
+ JP Z,L4CC1
+ LD DE,L44B4
+ CP 0FEH
+ JR NZ,L4136 ; (+004H)
+ LD A,(HL)
+ INC HL
+ JR L413E ; (+008H)
+
+L4136: CP LSE0
+ JP NC,L4AE6
+ LD DE,L43F4
+L413E: ADD A,A
+ PUSH HL
+ EX DE,HL
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ EX (SP),HL
+L414A: CALL HLFTCH
+L414D: OR A
+ RET Z
+ CP 03AH
+ RET
+
+L4152: PUSH HL
+ LD HL,(L847C)
+ LD A,L
+ OR H
+ POP HL
+ RET
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L4167: DB "GOT", "O" | 080H ; BASIC statement keyword text table
+ DB "GOSU", "B" | 080H
+ DB 080H
+ DB "RU", "N" | 080H
+ DB "RETUR", "N" | 080H
+ DB "RESTOR", "E" | 080H
+ DB "RESUM", "E" | 080H
+ DB "LIS", "T" | 080H
+ DB 080H
+ DB "DELET", "E" | 080H
+ DB 052H
+L4193: DB "ENU", "M" | 080H
+ DB "AUT", "O" | 080H
+ DB "EDI", "T" | 080H
+ DB "FO", "R" | 080H
+ DB "NEX", "T" | 080H
+ DB "PRIN", "T" | 080H
+ DB 080H
+ DB "INPU", "T" | 080H
+ DB 080H
+ DB "I", "F" | 080H
+ DB "DAT", "A" | 080H
+ DB "REA", "D" | 080H
+ DB "DI", "M" | 080H
+ DB "RE", "M" | 080H
+ DB "EN", "D" | 080H
+ DB "STO", "P" | 080H
+ DB "CON", "T" | 080H
+ DB "CL", "S" | 080H
+ DB 080H
+ DB "O", "N" | 080H
+ DB "LE", "T" | 080H
+ DB "NE", "W" | 080H
+ DB "POK", "E" | 080H
+ DB "OF", "F" | 080H
+ DB "MOD", "E" | 080H
+ DB "SKI", "P" | 080H
+ DB "PLO", "T" | 080H
+ DB "LIN", "E" | 080H
+ DB "RLIN", "E" | 080H
+ DB "MOV", "E" | 080H
+ DB "RMO", "V" | 080H
+ DB "TRO", "N" | 080H
+ DB "TROF", "F" | 080H
+ DB "INP", "@" | 080H
+ DB "DEFAUL", "T" | 080H
+ DB "GE", "T" | 080H
+ DB "PCOLO", "R" | 080H
+ DB "PHOM", "E" | 080H
+ DB "HSE", "T" | 080H
+ DB "GPRIN", "T" | 080H
+ DB "KE", "Y" | 080H
+ DB "AXI", "S" | 080H
+ DB "LOA", "D" | 080H
+ DB "SAV", "E" | 080H
+ DB "MERG", "E" | 080H
+ DB "CHAI", "N" | 080H
+ DB "CONSOL", "E" | 080H
+ DB "SEARC", "H" | 080H
+ DB "OUT", "@" | 080H
+ DB "CIRCL", "E" | 080H
+ DB "TES", "T" | 080H
+ DB "PAG", "E" | 080H
+ DB "WAI", "T" | 080H
+ DB "SWA", "P" | 080H
+ DB 080H
+ DB "ERRO", "R" | 080H
+ DB "ELS", "E" | 080H
+ DB "US", "R" | 080H
+ DB "BY", "E" | 080H
+ DB 080H
+ DB 080H
+ DB "DE", "F" | 080H
+ DB 080H
+ DB 080H
+ DB "LABE", "L" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "WOPE", "N" | 080H
+ DB "CLOS", "E" | 080H
+ DB "ROPE", "N" | 080H
+ DB "XOPE", "N" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "DI", "R" | 080H
+ DB 080H
+ DB 080H
+ DB "RENAM", "E" | 080H
+ DB "KIL", "L" | 080H
+ DB "LOC", "K" | 080H
+ DB "UNLOC", "K" | 080H
+ DB "INI", "T" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "T", "O" | 080H
+ DB "STE", "P" | 080H
+ DB "THE", "N" | 080H
+ DB "USIN", "G" | 080H
+ DB 080H
+ DB 080H
+ DB "TA", "B" | 080H
+ DB "SP", "C" | 080H
+ DB 080H
+ DB 080H
+ DB ".XO", "R" | 080H
+ DB ".O", "R" | 080H
+ DB ".AN", "D" | 080H
+ DB ".NO", "T" | 080H
+ DB ">", "<" | 080H
+ DB "<", ">" | 080H
+ DB "=", "<" | 080H
+ DB "<", "=" | 080H
+ DB "=", ">" | 080H
+ DB ">", "=" | 080H
+ DB "=" | 080H
+ DB ">" | 080H
+ DB "<" | 080H
+ DB "+" | 080H
+ DB "-" | 080H
+ DB 080H
+ DB 080H
+ DB "/" | 080H
+ DB "*" | 080H
+ DB "^" | 080H
+ DB 0FFH
+L42FE: DB 080H
+ DB "SE", "T" | 080H
+ DB "RESE", "T" | 080H
+ DB "COLO", "R" | 080H
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ LD B,D
+ LD B,L
+ LD B,L
+ RET NC
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ LD C,L
+ LD D,L
+ LD D,E
+ LD C,C
+ JP L4554
+
+ LD C,L
+ LD D,B
+ RST 008H
+ LD B,E
+ LD D,L
+ LD D,D
+ LD D,E
+ LD C,A
+ JP NC,L4556
+ LD D,D
+ LD C,C
+ LD B,(HL)
+ EXX
+ LD B,E
+ LD C,H
+ JP NC,0494CH
+ LD C,L
+ LD C,C
+ CALL NC,08080H
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+FUNCWORDTBL:DB "BOO", "T" | 080H ; BASIC function keyword text table
+ DB 0FFH
+L4356: DB "IN", "T" | 080H
+ DB "AB", "S" | 080H
+ DB "SI", "N" | 080H
+ DB "CO", "S" | 080H
+ DB "TA", "N" | 080H
+ DB "L", "N" | 080H
+ DB "EX", "P" | 080H
+ DB "SQ", "R" | 080H
+ DB "RN", "D" | 080H
+ DB "PEE", "K" | 080H
+ DB "AT", "N" | 080H
+ DB "SG", "N" | 080H
+ DB "LO", "G" | 080H
+ DB "FRA", "C" | 080H
+ DB "PA", "I" | 080H
+ DB "RA", "D" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "JO", "Y" | 080H
+ DB 080H
+ DB "CHR", "$" | 080H
+ DB "STR", "$" | 080H
+ DB "HEX", "$" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "SPACE", "$" | 080H
+ DB 080H
+ DB 080H
+ DB "AS", "C" | 080H
+ DB "LE", "N" | 080H
+ DB "VA", "L" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "ER", "N" | 080H
+ DB "ER", "L" | 080H
+ DB "SIZ", "E" | 080H
+ DB "CSR", "H" | 080H
+ DB "CSR", "V" | 080H
+ DB 080H
+ DB 080H
+ DB "LEFT", "$" | 080H
+ DB "RIGHT", "$" | 080H
+ DB "MID", "$" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "TI", "$" | 080H
+ DB 080H
+ LD B,L
+ LD C,A
+ DW 046C6H ; Keyword dispatch address table
+ DW 0FFCEH
+L43F4: DW L513D
+ DW L50B8
+ DW L4AE6
+ DW L4802
+ DW L5087
+ DW L5828
+ DW L4C2E
+ DW 052B8H
+ DW L4AE6
+ DW L4999
+ DW L4A38
+ DW L4861
+ DW L48B9
+ DW L4D84
+ DW L4E1B
+ DW L561E
+ DW L4AE6
+ DW L575B
+ DW L4AE6
+ DW L5150
+ DW L4F80
+ DW L5754
+ DW L76A5
+ DW L4F80
+ DW L4850
+ DW L4BE0
+ DW L4C11
+ DW L552D
+ DW L4AE6
+ DW L50E0
+ DW L4C8F
+ DW L4922
+ DW L501A
+ DW L4AE6
+ DW L6A1C
+ DW L6A7F
+ DW L6E1A
+ DW L6ACC
+ DW 06ACFH
+ DW 06AD2H
+ DW 06AD5H
+ DW L4959
+ DW L496C
+ DW L4FA1
+ DW L58CA
+ DW L4FE5
+ DW L6B37
+ DW L6B69
+ DW L6B73
+ DW L6B7D
+ DW L539F
+ DW L6BE2
+ DW L5986
+ DW L5C86
+ DW L59EA
+ DW L59D5
+ DW L5256
+ DW L52B6
+ DW L4F8C
+ DW L6C22
+ DW L6DF0
+ DW L6DFB
+ DW L4F70
+ DW L5D63
+ DW L4AE6
+ DW L4B70
+ DW L5172
+ DW L4F26
+ DW L524E
+ DW L4AE6
+ DW L4AE6
+ DW L544C
+ DW L4AE6
+ DW L4AE6
+ DW L4F80
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW 058E2H
+ DW L5913
+ DW L58DF
+ DW 058E5H
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L5CE1
+ DW L4AE6
+ DW L4AE6
+ DW L5D08
+ DW 05914H
+ DW 05CD5H
+ DW L5CD3
+ DW L58D0
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+L44B4: DW L4AE6
+ DW L51E4
+ DW 051E5H
+ DW L549C
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L524B
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L54F3
+ DW L5515
+ DW L4FBD
+ DW L5C6F
+ DW L4928
+ LD B,E
+ LD D,B
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ OR B
+ LD D,D
+L4512: ADD A,H
+ LD A,(HL)
+ LD A,A
+ LD A,(HL)
+ BIT 7,A
+ CP E
+ LD A,A
+ XOR D
+ ADD A,B
+ ADD HL,DE
+ ADD A,E
+ PUSH AF
+ ADD A,C
+ POP HL
+ LD A,(HL)
+ OR B
+ ADD A,C
+ SBC A,H
+ ADD A,C
+ RST 038H
+ LD A,(HL)
+ LD H,D
+ ADD A,C
+ DEC C
+ ADD A,E
+ ADC A,E
+ LD H,B
+ LD A,D
+ ADD A,C
+ LD (HL),L
+ ADD A,C
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ DEC H
+ LD A,C
+ AND 04AH
+ AND 04AH
+L4554: JR NC,L45C8 ; (+072H)
+L4556: RST 028H
+ LD (HL),C
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ LD (DE),A
+ LD (HL),D
+ AND 04AH
+ AND 04AH
+ LD L,E
+ LD (HL),D
+ LD (HL),L
+ LD (HL),D
+ LD A,L
+ LD (HL),D
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ LD A,E
+ LD (HL),C
+ ADC A,C
+ LD (HL),C
+ LD E,H
+ LD (HL),C
+ LD (HL),C
+ LD (HL),C
+ HALT
+ LD (HL),C
+ AND 04AH
+ AND 04AH
+ ADC A,A
+ LD (HL),D
+ XOR H
+ LD (HL),D
+ RET
+
+ LD (HL),D
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ RRA
+ LD (HL),E
+ AND 04AH
+ LD A,072H
+ SBC A,B
+ LD A,B
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+L45B2: CALL TEST1
+ DB 00CH
+ JR NZ,L45BE ; (+006H)
+ CALL LDDEMI
+ OR 0FFH
+ RET
+
+L45BE: INC HL
+ CP 00BH
+ JR NZ,L45E2 ; (+01fH)
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD A,E
+L45C8: OR D
+ RET Z
+ EX DE,HL
+ CALL L4611
+ JP C,04B07H
+ EX DE,HL
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00CH
+ INC HL
+ INC HL
+ INC HL
+ OR 0FFH
+ LD (L4745),A
+ RET
+
+L45E2: CP 022H
+ JP NZ,L4AE6
+ LD (04658H),HL
+ LD B,000H
+L45EC: LD A,(HL)
+ OR A
+ JR Z,L45F8 ; (+008H)
+ INC HL
+ CP 022H
+ JR Z,L45F8 ; (+003H)
+ INC B
+ JR L45EC ; (-00cH)
+
+L45F8: LD A,B
+ OR A
+ JP Z,L4AE6
+ LD (04656H),A
+ EX DE,HL
+ CALL L460B
+ JP C,04B07H
+ EX DE,HL
+ OR 0FFH
+ RET
+
+L460B: PUSH BC
+ LD BC,L4644
+ JR L4615 ; (+004H)
+
+L4611: PUSH BC
+ LD BC,L4638
+L4615: LD (0462BH),BC
+ PUSH DE
+ EX DE,HL
+ LD HL,(L1070)
+L461E: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ LD A,B
+ OR C
+ SCF
+ JR Z,L4635 ; (+00fH)
+ DEC HL
+ PUSH HL
+ ADD HL,BC
+ EX (SP),HL
+ CALL L0000
+ JR C,L4634 ; (+005H)
+ JR Z,L4634 ; (+003H)
+ POP HL
+ JR L461E ; (-016H)
+
+L4634: POP DE
+L4635: POP DE
+ POP BC
+ RET
+
+L4638: INC HL
+ INC HL
+ INC HL
+ LD A,D
+ CP (HL)
+ RET NZ
+ DEC HL
+ LD A,E
+ CP (HL)
+ DEC HL
+ DEC HL
+ RET
+
+L4644: PUSH HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ CALL TEST1
+ DB 0CAH
+ JR NZ,L4668 ; (+019H)
+ CALL TEST1
+ DB 022H
+ JR NZ,L4668 ; (+013H)
+ LD B,000H
+ LD DE,L0000
+L465A: LD A,(DE)
+ CP (HL)
+ JR NZ,L4668 ; (+00aH)
+ INC HL
+ INC DE
+ DJNZ L465A ; (-008H)
+ LD A,(HL)
+ CP 022H
+ JR Z,L4668 ; (+001H)
+ OR A
+L4668: SCF
+ CCF
+ POP HL
+ RET
+
+L466C: LD DE,L0000
+ LD BC,0FFFFH
+ CALL L46AE
+ RET Z
+ CP 02DH
+ JR Z,L4696 ; (+01cH)
+ CP 02EH
+ LD DE,(08478H)
+ JR Z,L4689 ; (+007H)
+ CALL TESTX
+ DB 00BH
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L4689: INC HL
+ CALL L46AE
+ JR Z,L4693 ; (+004H)
+ CP 02DH
+ JR Z,L4696 ; (+003H)
+L4693: LD C,E
+ LD B,D
+ RET
+
+L4696: INC HL
+ CALL L46AE
+ RET Z
+ CP 02EH
+ JR NZ,L46A5 ; (+006H)
+ LD BC,(08478H)
+ INC HL
+ RET
+
+L46A5: CALL TESTX
+ DB 00BH
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ RET
+
+L46AE: CALL L414A
+ RET Z
+ CP 02CH
+ RET
+
+L46B5: CALL SKPDE
+ LD A,0FFH
+ LD (L4745),A
+ LD HL,L470B
+ JR L46D4 ; (+012H)
+
+L46C2: CALL SKPDE
+ CALL L4839
+L46C8: LD A,(L4745)
+ OR A
+ RET Z
+ XOR A
+ LD (L4745),A
+ LD HL,L46F1
+L46D4: LD (046EFH),HL
+ LD HL,(L1070)
+ DEC HL
+L46DB: INC HL
+ LD A,(HL)
+ INC HL
+ OR (HL)
+ RET Z
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (0473AH),DE
+L46E8: CALL L5198
+ OR A
+ JR Z,L46DB ; (-013H)
+ JP L0000
+
+L46F1: CP 00CH
+ JR NZ,L46E8 ; (-00dH)
+ DEC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH HL
+ EX DE,HL
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00BH
+ INC HL
+ INC HL
+ JR L46E8 ; (-023H)
+
+L470B: CP 00BH
+ JR NZ,L46E8 ; (-027H)
+ DEC HL
+ PUSH HL
+ CALL INDRCT
+ LD E,L
+ LD D,H
+ LD A,L
+ OR H
+ JR Z,L4741 ; (+027H)
+ CALL L4611
+ JR C,L472A ; (+00bH)
+ EX DE,HL
+ POP HL
+ DEC HL
+ LD (HL),00CH
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ JR L46E8 ; (-042H)
+
+L472A: PUSH DE
+ LD A,010H
+ RST 018H
+ DB 01BH
+ LD A,020H
+ RST 018H
+ DB 003H
+ POP HL
+ CALL L5E64
+ RST 018H
+ DB 005H
+ LD HL,L0000
+ CALL L4B4E
+ RST 018H
+ DB 002H
+L4741: POP HL
+ INC HL
+ JR L46E8 ; (-05dH)
+
+L4745: NOP
+L4746: RST 018H
+ DB 028H
+ CALL L46C2
+ CALL L6A09
+ LD A,B
+ OR C
+ JP Z,L4065
+ LD (08478H),BC
+ LD A,(DE)
+ CP 020H
+ JR NZ,L475D ; (+001H)
+ INC DE
+L475D: PUSH AF
+ LD HL,L84E0
+ CALL L66ED
+ PUSH HL
+ LD HL,(L8478)
+ LD E,L
+ LD D,H
+ CALL L49B9
+ POP HL
+ POP AF
+ OR A
+ JR Z,L4784 ; (+012H)
+ LD DE,L84E0
+ OR A
+ SBC HL,DE
+ LD DE,00005H
+ ADD HL,DE
+ LD B,H
+ LD C,L
+ LD HL,L84E0
+ CALL L479C
+L4784: LD A,(L48B0)
+ OR A
+ JP Z,L4065
+ LD DE,(0847AH)
+ LD HL,(L8478)
+ ADD HL,DE
+ LD (L8478),HL
+ JP NC,L4065
+ JP L408D
+
+L479C: LD (047F9H),HL
+ PUSH BC
+ LD BC,(08478H)
+ LD HL,(L1070)
+ JR L47AD ; (+004H)
+
+L47A9: CALL LDDEMD
+ ADD HL,DE
+L47AD: CALL LDDEMD
+ LD A,D
+ OR E
+ JR Z,L47C1 ; (+00dH)
+ INC HL
+ INC HL
+ CALL LDDEMD
+ EX DE,HL
+ SBC HL,BC
+ DEC DE
+ DEC DE
+ EX DE,HL
+ JR C,L47A9 ; (-018H)
+L47C1: POP DE
+ PUSH HL
+ LD HL,(L1078)
+ LD (L107A),HL
+ LD B,H
+ LD C,L
+ ADD HL,DE
+ JP C,L4B26
+ EX DE,HL
+ CALL L74E1
+ EX DE,HL
+ RST 018H
+ DB 018H
+ POP HL
+ PUSH DE
+ PUSH BC
+ EX (SP),HL
+ POP BC
+ PUSH HL
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ LD DE,(VARED)
+ INC BC
+ LDDR
+ INC HL
+ POP BC
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ LD DE,(08478H)
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ EX DE,HL
+ LD HL,L84E0
+ DEC BC
+ DEC BC
+ DEC BC
+ DEC BC
+ LDIR
+ RET
+
+L4802: JR Z,L480D ; (+009H)
+ CALL L516C
+ JP Z,L513D
+ JP L5AED
+
+L480D: CALL L4928
+L4810: CALL L4824
+ LD DE,(TEXTST)
+ LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ PUSH HL
+ EX DE,HL
+ JP L40F0
+
+L4824: PUSH HL
+ PUSH DE
+ CALL L4839
+ XOR A
+ LD (L48B0),A
+ LD HL,0000AH
+ LD (L8478),HL
+ LD (L847A),HL
+ POP DE
+ POP HL
+ RET
+
+L4839: CALL L5825
+ LD HL,L0000
+ LD (L8480),HL
+ XOR A
+ LD (L4B6E),A
+ LD (L847F),A
+ LD (L847E),A
+ LD (L8493),A
+ RET
+
+L4850: LD A,(L8493)
+ OR A
+ JP NZ,L5DC9
+ RST 018H
+ DB 028H
+ XOR A
+ LD (L4B6E),A
+ POP BC
+ JP L405C
+
+L4861: LD DE,0000AH
+ LD BC,0000AH
+ JR Z,L4897 ; (+02eH)
+ CP 02CH
+ JR NZ,L4878 ; (+00bH)
+ INC HL
+ CALL L6E57
+ LD B,D
+ LD C,E
+ LD DE,0000AH
+ JR L4897 ; (+01fH)
+
+L4878: CP 02EH
+ LD DE,(08478H)
+ JR Z,L4889 ; (+009H)
+ CP 00BH
+ JP NZ,L4AE6
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L4889: INC HL
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4897 ; (+007H)
+ PUSH DE
+ CALL L6E57
+ LD C,E
+ LD B,D
+ POP DE
+L4897: CALL L5E46
+ LD A,C
+ OR B
+ JP Z,04AECH
+ LD (08478H),DE
+ LD (0847AH),BC
+ LD A,001H
+ LD (L48B0),A
+ POP AF
+ JP L4065
+
+L48B0: NOP
+L48B1: LD A,(L48B0)
+ OR A
+ RET Z
+ XOR A
+ JR L48BF ; (+006H)
+
+L48B9: CALL L48BF
+ JP L4065
+
+L48BF: LD DE,(08478H)
+ CALL NZ,L466C
+ PUSH DE
+ EX DE,HL
+ CALL L4611
+ POP DE
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ JR NC,L48D5 ; (+003H)
+ LD HL,L00F9
+L48D5: EX DE,HL
+ PUSH DE
+ LD (L8478),HL
+ CALL L5E64
+ RST 018H
+ DB 005H
+ LD A,020H
+ RST 018H
+ DB 003H
+ POP HL
+ LD DE,L11A4
+ PUSH DE
+ CALL L68D8
+ POP DE
+ LD B,000H
+L48EE: LD A,(DE)
+ OR A
+ JR Z,L48F8 ; (+006H)
+ INC B
+ RST 018H
+ DB 004H
+ INC DE
+ JR L48EE ; (-00aH)
+
+L48F8: LD A,B
+ OR A
+ RET Z
+ LD A,014H
+ RST 018H
+ DB 003H
+ DJNZ 048FCH ; (-005H)
+ RET
+
+L4902: PUSH DE
+ LD DE,0FFF0H
+ ADD HL,DE
+ POP DE
+ LD (L107E),HL
+ DEC H
+ LD (L107C),HL
+ XOR A
+ LD (L8493),A
+ RET
+
+L4914: LD HL,(L1070)
+ CALL L4952
+ LD (L1072),HL
+ CALL L4824
+ JR L4928 ; (+006H)
+
+L4922: CALL L4914
+ JP L4056
+
+L4928: PUSH HL
+ CALL L4939
+ POP HL
+ RST 018H
+ DB 028H
+ RET
+
+L4930: LD HL,(L1070)
+ CALL L4952
+ LD (L1072),HL
+L4939: LD HL,(L1072)
+ LD (HL),000H
+ INC HL
+ LD (L1074),HL
+ LD (HL),000H
+ INC HL
+ LD (L1076),HL
+ CALL L4952
+ LD (L1078),HL
+ LD (L107A),HL
+ RET
+
+L4952: LD (HL),000H
+ INC HL
+ LD (HL),000H
+ INC HL
+ RET
+
+L4959: CALL L414A
+ LD A,001H
+ JR Z,L496D ; (+00dH)
+ CALL TESTX
+ DB FDPD
+ CALL TESTX
+ DB 050H
+ LD A,002H
+ JR L496D ; (+001H)
+
+L496C: XOR A
+L496D: LD (04972H),A
+ RET
+
+L4971: LD A,000H
+ OR A
+ RET Z
+ DEC A
+ LD (L1091),A
+ JR Z,L4982 ; (+007H)
+ LD A,(L1097)
+ CP 002H
+ JR Z,L4994 ; (+012H)
+L4982: PUSH HL
+ LD A,05BH
+ RST 018H
+ DB 009H
+ LD HL,(L847C)
+ CALL L5E64
+ RST 018H
+ DB 00BH
+ LD A,05DH
+ RST 018H
+ DB 009H
+ POP HL
+L4994: XOR A
+ LD (L1091),A
+ RET
+
+L4999: CALL L46AE
+ JP Z,L4AE6
+ CALL L516C
+ JR Z,L49AD ; (+009H)
+ CP 02DH
+ JR Z,L49AD ; (+005H)
+ CP 02EH
+ JP NZ,L5D00
+L49AD: CALL L466C
+ EX DE,HL
+ LD E,C
+ LD D,B
+ CALL L49B9
+ JP L405C
+
+L49B9: PUSH AF
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ CALL L46C2
+ LD C,L
+ LD B,H
+ LD HL,(L1070)
+L49C5: CALL LDDEMI
+ LD A,E
+ OR D
+ JR NZ,L49D4 ; (+008H)
+L49CC: POP DE
+ POP HL
+ POP BC
+ POP AF
+ RET
+
+L49D1: POP DE
+ JR L49CC ; (-008H)
+
+L49D4: EX DE,HL
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ LD (049EEH),HL
+ SBC HL,BC
+ POP HL
+ JR C,L49C5 ; (-021H)
+ DB 01BH
+ DEC DE
+ DEC DE
+ POP BC
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD HL,L0000
+ SBC HL,BC
+ POP HL
+ JR Z,L4A13 ; (+01eH)
+ JR NC,L49D1 ; (-026H)
+L49F7: CALL LDDEMI
+ LD A,D
+ OR E
+ JR Z,L4A11 ; (+013H)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ DEC DE
+ DEC DE
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ SBC HL,BC
+ POP HL
+ JR C,L49F7 ; (-016H)
+ JR Z,L4A13 ; (+004H)
+ EX DE,HL
+ DEC HL
+L4A11: DEC HL
+ DEC HL
+L4A13: POP DE
+ PUSH DE
+ PUSH HL
+ OR A
+ EX DE,HL
+ SBC HL,DE
+ EX DE,HL
+ LD BC,(VARED)
+ RST 018H
+ DB 018H
+ POP DE
+ LD H,B
+ LD L,C
+ OR A
+ SBC HL,DE
+ LD B,H
+ LD C,L
+ EX DE,HL
+ POP DE
+ LDIR
+ JR L49CC ; (-063H)
+
+L4A2F: CALL L6E57
+ LD A,D
+ OR E
+ RET NZ
+ JP 04AECH
+
+L4A38: LD DE,0000AH
+ LD (04AB4H),DE
+ LD (04AC6H),DE
+ LD E,000H
+ LD (04AA3H),DE
+ JR Z,L4A7E ; (+033H)
+ CP 02CH
+ JR Z,L4A5F ; (+010H)
+ CALL L4A2F
+ LD (04AB4H),DE
+ CALL L414A
+ JR Z,L4A7E ; (+023H)
+ CALL L5E6E
+ DEC HL
+L4A5F: CALL INCHLF
+ CP 02CH
+ JR Z,L4A76 ; (+010H)
+ CALL L4A2F
+ LD (04AA3H),DE
+ CALL L414A
+ JR Z,L4A7E ; (+00cH)
+ CALL L5E6E
+ DEC HL
+L4A76: INC HL
+ CALL L4A2F
+ LD (04AC6H),DE
+L4A7E: PUSH HL
+ LD HL,(04AA3H)
+ EX DE,HL
+ LD HL,(04AB4H)
+ OR A
+ SBC HL,DE
+ JP C,04AECH
+ CALL L46B5
+ LD HL,(L1070)
+L4A92: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4AD0 ; (+037H)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ EX DE,HL
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ PUSH HL
+ LD HL,L0000
+ OR A
+ SBC HL,BC
+ POP HL
+ JR Z,L4AB0 ; (+005H)
+ JR C,L4AB0 ; (+003H)
+ EX DE,HL
+ JR L4A92 ; (-01eH)
+
+L4AB0: DEC HL
+ DEC HL
+ DEC HL
+ LD BC,L0000
+L4AB6: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4AD0 ; (+013H)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ EX DE,HL
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ LD HL,L0000
+ ADD HL,BC
+ JR C,L4AD2 ; (+007H)
+ LD C,L
+ LD B,H
+ EX DE,HL
+ JR L4AB6 ; (-01aH)
+
+L4AD0: POP HL
+ RET
+
+L4AD2: LD HL,0000AH
+ LD (04AC6H),HL
+ LD (04AB4H),HL
+ LD L,000H
+ LD (04AA3H),HL
+ CALL L4A7E
+ JP 04AECH
+
+L4AE6: LD A,001H
+ LD HL,0023EH
+ LD HL,L033E
+ LD HL,0043EH
+ LD HL,L053E
+ LD HL,0063EH
+ LD HL,0073EH
+ LD HL,L083E
+ LD HL,L0D3E
+ LD HL,L0E3E
+ LD HL,L0F3E
+ LD HL,L103E
+ LD HL,L113E
+ LD HL,L123E
+ LD HL,L133E
+ LD HL,0143EH
+ LD HL,0153EH
+ LD HL,L183E
+ LD HL,L193E
+ LD HL,L3A3E
+ LD HL,0403EH
+ JR L4B34 ; (+00eH)
+
+L4B26: LD A,006H
+L4B28: LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ LD (0848FH),SP
+L4B34: JR L4B4B ; (+015H)
+
+L4B36: LD HL,(.$LPT)
+ LD IX,(.$CRT)
+ LD (L1044),HL
+ LD A,0C4H
+ LD HL,0BB3EH
+ LD HL,0BC3EH
+ LD HL,0BD3EH
+L4B4B: JP L0182
+
+L4B4E: LD A,L
+ OR H
+ RET Z
+ LD DE,L4B5C
+ RST 018H
+ DB 005H
+ CALL L5E64
+ RST 018H
+ DB 005H
+ RET
+
+L4B5C: JR NZ,04BA7H ; (+049H)
+ LD C,(HL)
+ JR NZ,L4B61 ; (+000H)
+L4B61: LD B,D
+ DEC B
+ LD D,D
+ LD B,L
+ LD B,C
+ LD C,E
+ NOP
+L4B68: LD D,D
+ DEC B
+ LD B,L
+ LD B,C
+ LD B,H
+ LD E,C
+L4B6E: NOP
+ NOP
+L4B70: CALL L6E43
+ DEC A
+ CP 046H
+ JR C,L4B7A ; (+002H)
+ LD A,044H
+L4B7A: INC A
+L4B7B: LD SP,(0848FH)
+ PUSH AF
+ RST 018H
+ DB 043H
+ CALL L5C42
+ POP AF
+ OR A
+ JR Z,L4BDB ; (+052H)
+ CP 080H
+ JR Z,L4BD9 ; (+04cH)
+ LD C,A
+ LD HL,L0000
+ LD (L7921),HL
+ CALL L4152
+ LD A,C
+ JR Z,L4BC4 ; (+02aH)
+ LD HL,(L847C)
+ LD (L8480),HL
+ LD (L8478),HL
+ LD HL,(L8476)
+ LD (L8482),HL
+ LD HL,(L8491)
+ LD (L8484),HL
+ AND 07FH
+ LD (L847E),A
+ LD A,(L847F)
+ INC A
+ CP 002H
+ JR Z,L4BCF ; (+013H)
+ XOR A
+ LD (L4B6E),A
+ LD (L8493),A
+ LD A,C
+L4BC4: RST 018H
+ DB 01BH
+L4BC6: LD HL,(L847C)
+ CALL L4B4E
+ JP L405C
+
+L4BCF: LD (L847F),A
+ LD HL,(08486H)
+ PUSH HL
+ JP L40F0
+
+L4BD9: LD A,02EH
+L4BDB: LD HL,(L8491)
+ JR L4BE3 ; (+003H)
+
+L4BE0: LD A,02EH
+ POP DE
+L4BE3: PUSH AF
+ PUSH HL
+ RST 018H
+ DB 002H
+ RST 018H
+ DB 020H
+ LD DE,L4B61
+ RST 018H
+ DB 005H
+ POP HL
+ CALL L4152
+ JR Z,L4C0D ; (+019H)
+ LD (04C29H),HL
+ LD HL,(L8476)
+ LD (04C23H),HL
+ LD HL,(L847C)
+ LD (04C1DH),HL
+ LD (L8478),HL
+ POP AF
+ LD (L4B6E),A
+ JP L4BC6
+
+L4C0D: POP AF
+ JP L405C
+
+L4C11: POP DE
+ LD HL,L4B6E
+ LD A,(HL)
+ OR A
+ JP Z,04B0AH
+ LD (HL),000H
+ LD HL,L0000
+ LD (L847C),HL
+ LD HL,L0000
+ LD (L8476),HL
+ LD HL,L0000
+ JP L40BB
+
+L4C2E: LD A,(L847F)
+ CP 002H
+ JP C,04B16H
+ DEC A
+ LD (L847F),A
+ CALL L414A
+L4C3D: EX DE,HL
+ LD HL,(L8480)
+ LD (L847C),HL
+ LD HL,(L8482)
+ LD (L8476),HL
+ LD HL,(L8484)
+ JR NZ,L4C53 ; (+004H)
+ POP BC
+ JP L40BF
+
+L4C53: CP 08EH
+ JP Z,L4F80
+ EX DE,HL
+ JP L513D
+
+L4C5C: CALL TEST1
+ DB 080H
+ JR Z,L4C6A ; (+008H)
+ CALL TESTX
+ DB 082H
+ CALL TESTX
+ DB LSE0
+L4C6A: CALL L45B2
+ JR Z,L4C79 ; (+00aH)
+ LD (08486H),DE
+ LD A,001H
+L4C75: LD (L847F),A
+ RET
+
+L4C79: LD A,(L847F)
+ DEC A
+ JR Z,L4C75 ; (-00aH)
+ XOR A
+ LD (L847F),A
+ LD HL,(L8480)
+ LD (L847C),HL
+ LD A,(L847E)
+ JP L4B7B
+
+L4C8F: CALL TEST1
+ DB 0FFH
+ JP Z,L4CC1
+ CALL L742F
+ PUSH BC
+ PUSH BC
+ PUSH AF
+ CALL TESTX
+ DB QDPC
+ CALL L6E82
+ POP BC
+ LD A,(L84C7)
+ CP B
+ JP NZ,04AEFH
+ EX (SP),HL
+ EX DE,HL
+ CP 005H
+ JR Z,L4CB9 ; (+008H)
+ PUSH BC
+ CALL L4CCC
+ POP AF
+ POP HL
+ POP BC
+ RET
+
+L4CB9: LD C,A
+ LD B,000H
+ LDIR
+ POP HL
+ POP BC
+ RET
+
+L4CC1: CALL TESTX
+ DB 0C4H
+ JP L73BB
+
+L4CC8: PUSH DE
+ EX DE,HL
+ JR L4CD0 ; (+004H)
+
+L4CCC: PUSH DE
+ CALL L6E76
+L4CD0: LD HL,L11A4
+ LD (HL),A
+ LD B,A
+ LD C,A
+ INC HL
+ CALL LDHLDE
+ POP HL
+ LD A,(HL)
+ CP C
+ JR Z,L4D21 ; (+042H)
+ PUSH HL
+ OR A
+ CALL NZ,L4D31
+ POP HL
+ LD A,(L11A4)
+ OR A
+ JR Z,L4D1E ; (+033H)
+ PUSH HL
+ LD BC,(VARST)
+ SBC HL,BC
+ EX DE,HL
+ LD HL,(L1078)
+ DEC HL
+ DEC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD BC,(STRST)
+ OR A
+ POP DE
+ PUSH HL
+ SBC HL,BC
+ EX DE,HL
+ LD (HL),A
+ LD B,A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ POP HL
+ LD DE,L11A4
+ INC DE
+ CALL L74D5
+ CALL L4952
+ LD (L107A),HL
+ LD (L1078),HL
+ RET
+
+L4D1E: LD (HL),000H
+ RET
+
+L4D21: INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ LD DE,L11A4
+ LD B,C
+ INC DE
+ JP L74D5
+
+L4D31: LD C,(HL)
+ LD B,000H
+ INC BC
+ INC BC
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+L4D3E: DEC HL
+ DEC HL
+ LD E,L
+ LD D,H
+ ADD HL,BC
+ PUSH BC
+ PUSH DE
+ EX DE,HL
+ LD HL,(L1078)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ EX DE,HL
+ POP DE
+ PUSH DE
+ JR Z,L4D55 ; (+002H)
+ LDIR
+L4D55: POP DE
+ POP BC
+ LD HL,(L1078)
+ OR A
+ SBC HL,BC
+ LD (L1078),HL
+ EX DE,HL
+L4D61: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ RET Z
+ LD HL,(L1074)
+ ADD HL,DE
+ LD A,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ OR A
+ EX DE,HL
+ SBC HL,BC
+ EX DE,HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ PUSH BC
+ LD C,A
+ LD B,000H
+ LD HL,(L1076)
+ ADD HL,DE
+ ADD HL,BC
+ POP BC
+ JR L4D61 ; (-023H)
+
+L4D84: POP BC
+ LD (04E19H),BC
+ CALL L4C8F
+ LD IX,L0000
+ ADD IX,SP
+ LD (04DFBH),HL
+ CALL L4EF4
+ LD (04DF7H),BC
+L4D9C: LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JR NZ,L4DC4 ; (+01aH)
+ LD E,(IX+006H)
+ LD D,(IX+007H)
+ EX DE,HL
+ OR A
+ SBC HL,BC
+ JR Z,L4DBD ; (+007H)
+ LD DE,L0012
+ ADD IX,DE
+ JR L4D9C ; (-021H)
+
+L4DBD: DB 011H
+ LD (DE),A
+ NOP
+ ADD IX,DE
+ LD SP,IX
+L4DC4: LD HL,(04DFBH)
+ CALL TESTX
+ DB LSE0
+ CALL L6E82
+ PUSH AF
+ PUSH HL
+ EX DE,HL
+ LD DE,L4F00
+ CALL L5E91
+ POP HL
+ POP AF
+ CP LSE1
+ LD DE,L6110
+ JR NZ,L4DE4 ; (+004H)
+ INC HL
+ CALL L6E82
+L4DE4: LD (04DFBH),HL
+ LD HL,0FFF6H
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ CALL L5E91
+ LD HL,L4F00
+ CALL L5E91
+ LD HL,L0000
+ PUSH HL
+ LD HL,L0000
+ PUSH HL
+ LD HL,(L8476)
+ PUSH HL
+ LD HL,0FF12H
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(TMPEND)
+ SBC HL,DE
+ LD A,00BH
+ JP C,L4B28
+ LD HL,(04DFBH)
+ JP L0000
+
+L4E1B: LD A,005H
+ LD (L84C7),A
+ POP BC
+ LD (04E90H),BC
+L4E25: PUSH AF
+ POP BC
+ LD (04DFBH),HL
+ LD IX,L0000
+ ADD IX,SP
+ LD (04E7FH),IX
+ LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JP NZ,04AFEH
+ PUSH BC
+ POP AF
+ JR NZ,L4EA6 ; (+05fH)
+ LD E,(IX+004H)
+ LD D,(IX+005H)
+ EX DE,HL
+ LD (04E8DH),HL
+ LD E,(IX+006H)
+ LD D,(IX+007H)
+ LD HL,(L1074)
+ ADD HL,DE
+ LD BC,00008H
+ ADD IX,BC
+ PUSH IX
+ POP DE
+ CALL L797E
+ INC DE
+ LD A,(DE)
+ LD IX,(04E7FH)
+ LD DE,0000DH
+ ADD IX,DE
+ PUSH IX
+ POP DE
+ BIT 7,A
+ JR NZ,L4E79 ; (+001H)
+ EX DE,HL
+L4E79: CALL L7A15
+ JR C,L4E92 ; (+014H)
+ LD SP,L0000
+ LD HL,00002H
+ ADD HL,SP
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ LD (L8476),HL
+ LD HL,L0000
+L4E8F: JP L0000
+
+L4E92: LD DE,L0012
+ LD HL,(04E7FH)
+ ADD HL,DE
+ LD SP,HL
+ LD HL,(04DFBH)
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4E8F ; (-014H)
+ LD (04DFBH),HL
+L4EA6: LD IX,L0000
+ ADD IX,SP
+ LD (04E7FH),IX
+ LD HL,(04DFBH)
+ CALL TEST1
+ DB 02CH
+ JP Z,L4E25
+ CALL L742F
+ LD (04DFBH),HL
+ CALL L4EF4
+ LD IX,(04E7FH)
+L4EC7: LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JP NZ,04AFEH
+ LD L,(IX+006H)
+ LD H,(IX+007H)
+ OR A
+ SBC HL,BC
+ LD HL,(04DFBH)
+ JP Z,L4E25
+ LD DE,L0012
+ ADD IX,DE
+ LD (04E7FH),IX
+ LD SP,(04E7FH)
+ JR L4EC7 ; (-02dH)
+
+L4EF4: LD H,B
+ LD L,C
+ LD BC,(VARST)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ RET
+
+L4F00: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L4F09: CALL L5198
+ OR A
+ RET NZ
+ INC HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ INC HL
+ LD (04F08H),DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (04F06H),DE
+ POP DE
+ SCF
+ RET Z
+ JR L4F09 ; (-01dH)
+
+L4F26: CALL L5E79
+ CALL L6E57
+ LD (04F5FH),DE
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4F51 ; (+01bH)
+ CALL L6E82
+ CALL L790F
+ LD (04F54H),DE
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4F51 ; (+00bH)
+ CALL L742F
+ CALL L790F
+ LD (04F67H),BC
+ XOR A
+L4F51: PUSH HL
+ PUSH AF
+ LD HL,L0000
+ CALL L6E76
+ LD IX,L0182
+ XOR A
+ CALL L0000
+ POP AF
+ JR NZ,L4F6C ; (+008H)
+ LD A,B
+ EX DE,HL
+ LD DE,L0000
+ CALL L4CC8
+L4F6C: POP HL
+ JP L5E7D
+
+L4F70: CALL L6E57
+L4F73: LD A,D
+ OR E
+ RET Z
+ LD B,000H
+L4F78: DJNZ L4F78 ; (-002H)
+ RST 018H
+ DB 00EH
+ RET Z
+ DEC DE
+ JR L4F73 ; (-00dH)
+
+L4F80: DEC HL
+L4F81: CALL L5198
+ OR A
+ SCF
+ RET Z
+ CP 03AH
+ RET Z
+ JR L4F81 ; (-00bH)
+
+L4F8C: CALL L6E43
+ SUB LSE0
+ CP 007H
+ JP C,04AECH
+ CALL L5E6E
+ PUSH DE
+ CALL L6E43
+ POP BC
+ OUT (C),A
+ RET
+
+L4FA1: CALL L6E43
+ CALL L5E6E
+ PUSH DE
+ CALL L742F
+ CP 005H
+ JP NZ,04AEFH
+ EX (SP),HL
+ PUSH BC
+ EX (SP),HL
+ POP BC
+ IN E,(C)
+ LD D,000H
+ CALL L5E97
+ POP HL
+ RET
+
+L4FBD: CALL L4FC5
+ LD (00054H),DE
+ RET
+
+L4FC5: LD B,018H
+ LD C,027H
+ CALL L4FD0
+ JP C,04AECH
+ RET
+
+L4FD0: PUSH BC
+ CALL L6E43
+ PUSH AF
+ CALL L5E6E
+ CALL L6E43
+ LD D,E
+ POP AF
+ LD E,A
+ POP BC
+ LD A,C
+ CP E
+ RET C
+ LD A,B
+ CP D
+ RET
+
+L4FE5: CALL L742F
+ LD (L84C7),A
+ CP 005H
+ JR Z,L5004 ; (+015H)
+ PUSH HL
+ PUSH BC
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ OR A
+ JR Z,L4FFE ; (+006H)
+ LD HL,(L107A)
+ LD (HL),A
+ LD A,001H
+L4FFE: POP DE
+ CALL L4CC8
+ POP HL
+ RET
+
+L5004: PUSH HL
+ PUSH BC
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ SUB 030H
+ CP 00AH
+ JR C,L5011 ; (+001H)
+ XOR A
+L5011: LD E,A
+ LD D,000H
+ POP HL
+ CALL L5E97
+ POP HL
+ RET
+
+L501A: CP 040H
+ LD BC,POPRA
+ JR NZ,L5025 ; (+004H)
+ INC HL
+ LD BC,L5041
+L5025: LD (05036H),BC
+ CALL L6E57
+ CALL L5E71
+L502F: PUSH DE
+ CALL L6E43
+ POP DE
+ EX DE,HL
+ CALL POPRA
+ EX DE,HL
+ INC DE
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ JR L502F ; (-012H)
+
+L5041: LD (HL),A
+ RET
+
+ PUSH HL
+ CALL TEST1
+ DB 04DH
+ JR NZ,L505C ; (+012H)
+ CALL TEST1
+ DB 041H
+ JR NZ,L505C ; (+00cH)
+ CALL TEST1
+ DB 058H
+ JR NZ,L505C ; (+006H)
+ EX (SP),HL
+ LD HL,(MEMMAX)
+ JR L5078 ; (+01cH)
+
+L505C: POP HL
+ CALL L6E57
+ PUSH HL
+ LD HL,(MEMMAX)
+ OR A
+ SBC HL,DE
+ JP C,L4B26
+ LD HL,(L107A)
+ INC H
+ INC H
+ INC H
+ INC H
+ OR A
+ SBC HL,DE
+ JP NC,04AECH
+ EX DE,HL
+L5078: CALL L4902
+ POP HL
+ POP DE
+ LD SP,(INTFAC)
+ LD BC,0FFFFH
+ PUSH BC
+ PUSH DE
+ RET
+
+L5087: POP IX
+L5089: POP BC
+ PUSH BC
+ LD A,B
+ INC A
+ JP NZ,04B01H
+ LD A,C
+ CP 012H
+ JR Z,L50AF ; (+01aH)
+ CP 0FEH
+ JP NZ,04B01H
+ POP BC
+ CALL L414A
+ EX DE,HL
+ POP HL
+ LD (L847C),HL
+ POP HL
+ LD (L8476),HL
+ POP HL
+ PUSH IX
+ RET Z
+ EX DE,HL
+ JP L513D
+
+L50AF: EX DE,HL
+ LD HL,L0012
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ JR L5089 ; (-02fH)
+
+L50B8: PUSH HL
+ CALL L4F80
+ EX DE,HL
+ POP HL
+ POP BC
+ PUSH DE
+ EXX
+ LD HL,(L8476)
+ PUSH HL
+ LD HL,(L847C)
+ PUSH HL
+ LD HL,0FFFEH
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(TMPEND)
+ SBC HL,DE
+ LD A,00AH
+ JP C,L4B28
+ EXX
+ PUSH BC
+ JR L513D ; (+05dH)
+
+L50E0: CALL TEST1
+ DB 0C1H
+ JP Z,L4C5C
+ CALL L6E57
+ LD C,E
+ LD B,D
+ CP 087H
+ JP NC,L4AE6
+ CP 082H
+ JR NZ,L5105 ; (+010H)
+ CALL INCHLF
+ LD E,081H
+ CP LSE4
+ JR Z,L5104 ; (+006H)
+ CP LSE0
+ JP NZ,L4AE6
+ DEC E
+L5104: LD A,E
+L5105: PUSH HL
+ LD HL,L43F4
+ SUB 080H
+ ADD A,A
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ CALL INDRCT
+ EX (SP),HL
+ INC HL
+ LD A,B
+ OR A
+ JR NZ,L5139 ; (+020H)
+ LD A,C
+ OR A
+ JR Z,L5139 ; (+01cH)
+ LD B,A
+L511E: DEC B
+ RET Z
+ CALL HLFTCH
+ CALL L5169
+ JP NZ,L4AE6
+ CALL L519E
+ OR A
+ RET Z
+ INC HL
+ CALL TEST1
+ DB 02CH
+ JR Z,L511E ; (-017H)
+ POP DE
+ JP L5E46
+
+L5139: POP DE
+ JP L4F80
+
+L513D: CALL L45B2
+ EX DE,HL
+ JR NZ,L5146 ; (+003H)
+ LD HL,(L1070)
+L5146: LD (L8476),HL
+ XOR A
+ LD (L4B6E),A
+ JP L40F0
+
+L5150: CALL L6E82
+ EX AF,AF'
+ LD A,(DE)
+ OR A
+ JR Z,L5178 ; (+020H)
+ EX AF,AF'
+ CP LSE2
+ JR NZ,L5165 ; (+008H)
+L515D: CALL INCHLF
+ CALL L5169
+ JR Z,L513D ; (-028H)
+L5165: POP AF
+ JP L40BB
+
+L5169: CP 022H
+ RET Z
+L516C: CP 00BH
+ RET Z
+ CP 00CH
+ RET
+
+L5172: CALL L5181
+ JR NC,L5172 ; (-005H)
+ RET
+
+L5178: DEC HL
+ CALL L5181
+ JR NC,L515D ; (-021H)
+ DB 0C3H
+ IN B,(C)
+L5181: CALL L5198
+ OR A
+ SCF
+ RET Z
+ CP 0C2H
+ RET Z
+ CP 093H
+ JR NZ,L5181 ; (-00dH)
+ CALL L5181
+ RET C
+ JR L5181 ; (-013H)
+
+L5194: INC HL
+ LD A,(HL)
+ JR L519E ; (+006H)
+
+L5198: INC HL
+ LD A,(HL)
+ CP 094H
+ JR Z,L51BD ; (+01fH)
+L519E: OR A
+ RET Z
+ CP 022H
+ JR Z,L51DB ; (+037H)
+ CP 0FEH
+ JR NC,L51BB ; (+013H)
+ CP 097H
+ JR Z,L51BD ; (+011H)
+ CP 027H
+ JR Z,L51BD ; (+00dH)
+ CP 020H
+ RET NC
+ CP 00BH
+ RET C
+ CP 015H
+ JR NC,L51D2 ; (+018H)
+ INC HL
+L51BB: INC HL
+ RET
+
+L51BD: LD A,(HL)
+ OR A
+ RET Z
+ CP 03AH
+ RET Z
+ CP 022H
+ JR Z,L51CA ; (+003H)
+ INC HL
+ JR L51BD ; (-00dH)
+
+L51CA: CALL L51DB
+ OR A
+ RET Z
+ INC HL
+ JR L51BD ; (-015H)
+
+L51D2: AND 00FH
+ ADD A,L
+ LD L,A
+ LD A,020H
+ RET NC
+ INC H
+ RET
+
+L51DB: INC HL
+ LD A,(HL)
+ OR A
+ RET Z
+ CP 022H
+ RET Z
+ JR L51DB ; (-009H)
+
+L51E4: OR 0AFH
+ PUSH AF
+ LD B,031H
+ LD C,04FH
+ CALL L4FD0
+ PUSH AF
+ CALL L5235
+ POP AF
+ JR C,L5233 ; (+03eH)
+ LD A,C
+ LD (05221H),A
+ LD B,001H
+ SRL E
+ JR NC,L5201 ; (+002H)
+ SLA B
+L5201: SRL D
+ JR NC,L5209 ; (+004H)
+ SLA B
+ SLA B
+L5209: EX DE,HL
+ RST 018H
+ DB 01EH
+ CALL BREAKX
+ CP LSPAL
+ JR NC,L5215 ; (+002H)
+ LD A,LSPAL
+L5215: LD C,A
+ POP AF
+ JR Z,L522B ; (+012H)
+ SET 3,H
+ CALL BREAKX
+ AND 08FH
+ OR 000H
+ CALL POPRA
+ RES 3,H
+ LD A,C
+ OR B
+ JR L522E ; (+003H)
+
+L522B: LD A,B
+ CPL
+ AND C
+L522E: CALL POPRA
+ EX DE,HL
+ RET
+
+L5233: POP AF
+ RET
+
+L5235: LD A,(L005D)
+ AND 070H
+ LD C,A
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ PUSH DE
+ CALL L5522
+ POP DE
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ LD C,A
+ RET
+
+L524B: RST 018H
+ DB 020H
+ RET
+
+L524E: CALL L5E46
+ RST 018H
+ DB 028H
+ RST 018H
+ DB 000H
+ RET
+
+L5256: JR Z,L527B ; (+023H)
+ LD A,001H
+ LD (L004E),A
+ LD A,(L0056)
+ LD B,019H
+ CALL L528E
+ LD (00056H),BC
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ LD B,028H
+ LD A,(L005B)
+ CALL L528E
+ LD (0005BH),BC
+ RET
+
+L527B: XOR A
+ LD (L004E),A
+ LD BC,L1800
+ LD (00056H),BC
+ LD BC,L2700
+ LD (0005BH),BC
+ RET
+
+L528E: LD D,000H
+ LD E,A
+ CALL TEST1
+ DB 02CH
+ JR Z,L529F ; (+008H)
+ PUSH BC
+ CALL L6E43
+ POP BC
+ CALL L5E6E
+L529F: LD C,E
+ PUSH BC
+ CALL L6E43
+ POP BC
+ DEC A
+ JP M,04AECH
+ ADD A,C
+ CP B
+ JP NC,04AECH
+ LD B,A
+ RET
+
+ DI
+ OUT (LSE4),A
+ JP L0000
+
+L52B6: XOR A
+ LD BC,?SETDE
+ LD (L539E),A
+ PUSH AF
+ CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,04B22H
+ BIT 1,A
+ JP Z,04B22H
+ CALL TEST1
+ DB 02CH
+ POP AF
+ OR A
+ JR NZ,L52E8 ; (+015H)
+ CALL L6E67
+ LD A,B
+ LD (L5399),A
+ LD (0539AH),DE
+ CALL L5E46
+ JR L52E8 ; (+005H)
+
+L52E3: LD A,002H
+ LD (L539E),A
+L52E8: CALL L466C
+ LD (0530FH),DE
+ LD (0531DH),BC
+ LD A,0FFH
+ LD (L1090),A
+ CALL SKPDE
+ LD HL,(L1070)
+L52FE: CALL LDDEMI
+ LD A,D
+ OR E
+ RET Z
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ PUSH DE
+ CALL LDDEMI
+ PUSH HL
+ LD HL,L0000
+ OR A
+ SBC HL,DE
+ JR C,L531C ; (+006H)
+ JR Z,L531C ; (+004H)
+ POP HL
+ POP HL
+ JR L52FE ; (-01eH)
+
+L531C: LD HL,L0000
+ OR A
+ SBC HL,DE
+ JR NC,L5327 ; (+003H)
+ POP HL
+ POP HL
+ RET
+
+L5327: EX DE,HL
+ CALL L5E64
+ RST 018H
+ DB 017H
+ LD HL,L11A4
+ CALL LDHLDE
+ LD (HL),020H
+ INC HL
+ EX DE,HL
+ POP HL
+ CALL L68D8
+ LD A,(L539E)
+ OR A
+ JR NZ,L5346 ; (+005H)
+ CALL L535C
+ JR NC,L5350 ; (+00aH)
+L5346: LD DE,L11A4
+ RST 018H
+ DB 017H
+ RST 018H
+ DB 037H
+ CALL L5733
+L5350: POP HL
+ LD A,(L539E)
+ CP 002H
+ JR Z,L52FE ; (-05aH)
+ RST 018H
+ DB 00FH
+ JR L52FE ; (-05eH)
+
+L535C: EX DE,HL
+L535D: PUSH HL
+ CALL L5367
+ POP HL
+ RET C
+ RET Z
+ INC HL
+ JR L535D ; (-00aH)
+
+L5367: LD A,(L5399)
+ LD B,A
+ LD DE,(0539AH)
+L536F: LD A,(HL)
+ INC HL
+ OR A
+ RET Z
+ CP 005H
+ JR Z,L537B ; (+004H)
+ CP 006H
+ JR NZ,L537D ; (+002H)
+L537B: JR L536F ; (-00eH)
+
+L537D: PUSH HL
+ LD C,A
+L537F: LD A,(DE)
+ INC DE
+ CP 005H
+ JR Z,L5389 ; (+004H)
+ CP 006H
+ JR NZ,L5390 ; (+007H)
+L5389: DEC B
+ SCF
+ POP HL
+ RET Z
+ PUSH HL
+ JR L537F ; (-011H)
+
+L5390: SUB C
+ POP HL
+ OR A
+ RET NZ
+ DEC B
+ SCF
+ RET Z
+ JR L536F ; (-02aH)
+
+L5399: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L539E: NOP
+L539F: CALL TESTX
+ DB 087H
+ CALL L5E4D
+ PUSH HL
+ LD C,000H
+L53A9: RST 018H
+ DB 008H
+ LD A,C
+ ADD A,031H
+ LD D,A
+ LD E,020H
+ CP 03AH
+ JR NZ,L53B8 ; (+003H)
+ LD DE,L3031
+L53B8: LD (0543BH),DE
+ LD DE,L5433
+ RST 018H
+ DB 00BH
+ LD A,C
+ CALL L5492
+ LD B,(HL)
+ INC HL
+ PUSH BC
+ CALL L53D6
+ POP BC
+ INC C
+ LD A,C
+ CP 00AH
+ JR NZ,L53A9 ; (-029H)
+ RST 018H
+ DB 008H
+ POP HL
+ RET
+
+L53D6: LD A,B
+ OR A
+ LD C,000H
+ JR NZ,L53E3 ; (+007H)
+ LD A,022H
+ RST 018H
+ DB 00AH
+ RST 018H
+ DB 00AH
+ RET
+
+L53E3: LD A,(HL)
+ CP 020H
+ JR C,L5408 ; (+020H)
+ CP 022H
+ JR Z,L5408 ; (+01cH)
+ LD A,C
+ CP 001H
+ JR Z,L53FB ; (+00aH)
+ OR A
+ LD DE,L5440
+ JR NZ,L53F9 ; (+002H)
+ INC DE
+ INC DE
+L53F9: RST 018H
+ DB 00BH
+L53FB: LD A,(HL)
+ RST 018H
+ DB 00AH
+ INC HL
+ LD C,001H
+ DJNZ L53E3 ; (-020H)
+ LD A,022H
+L5405: RST 018H
+ DB 00AH
+ RET
+
+L5408: LD A,C
+ CP 0FFH
+ JR Z,L542D ; (+020H)
+ OR A
+ LD DE,05444H
+ JR NZ,L5415 ; (+002H)
+ INC DE
+ INC DE
+L5415: RST 018H
+ DB 00BH
+L5417: PUSH BC
+ PUSH HL
+ LD L,(HL)
+ LD H,000H
+ CALL L5E64
+ RST 018H
+ DB 00BH
+ POP HL
+ POP BC
+ INC HL
+ LD C,0FFH
+ DJNZ L53E3 ; (-045H)
+ LD A,029H
+ JP L5405
+
+L542D: LD A,02CH
+ RST 018H
+ DB 00AH
+ JR L5417 ; (-01cH)
+
+L5433: LD B,H
+ LD B,L
+ LD B,(HL)
+ JR NZ,L5483 ; (+04bH)
+ LD B,L
+ LD E,C
+ JR Z,L543C ; (+000H)
+L543C: NOP
+ ADD HL,HL
+ DEC A
+ NOP
+L5440: ADD HL,HL
+ DEC HL
+ LD (L2200),HL
+ DEC HL
+ LD B,E
+ LD C,B
+ LD D,D
+ INC H
+ JR Z,L544C ; (+000H)
+L544C: CALL TEST1
+ DB 0B2H
+ JR Z,L545D ; (+00bH)
+ CALL TESTX
+ DB 0FFH
+ CALL TESTX
+ DB 0C7H
+ JP L781D
+
+L545D: CALL TESTX
+L5460: DB 028H
+ CALL L6E43
+ CALL TESTX
+ DB 029H
+ CALL TESTX
+ DB QDPC
+ LD A,E
+ DEC A
+ CP 00AH
+ JP NC,04AECH
+ PUSH HL
+ CALL L5492
+ EX (SP),HL
+ CALL L6E67
+ EX (SP),HL
+ LD A,B
+ CP 010H
+ JR C,L5483 ; (+002H)
+ LD A,00FH
+L5483: LD (HL),A
+ OR A
+ JR Z,L548F ; (+008H)
+ LD B,A
+ INC HL
+L5489: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L5489 ; (-006H)
+L548F: POP HL
+ EI
+ RET
+
+L5492: ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ LD HL,L12C0
+ JP ADDHLA
+
+L549C: CALL TEST1
+ DB 02CH
+ JR NZ,L54AA ; (+008H)
+ CALL L5E6E
+ LD DE,L005D
+ JR L54B6 ; (+00cH)
+
+L54AA: CALL L4FC5
+ CALL L5E6E
+ EX DE,HL
+ RST 018H
+ DB 01EH
+ SET 3,H
+ EX DE,HL
+L54B6: EX DE,HL
+ CALL BREAKX
+ EX DE,HL
+ PUSH DE
+ CALL L54C6
+ POP DE
+ EX DE,HL
+ CALL POPRA
+ EX DE,HL
+ RET
+
+L54C6: LD C,A
+ CALL TEST1
+ DB 02CH
+ JR Z,L54DF ; (+012H)
+ CALL L5522
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ XOR C
+ AND 070H
+ XOR C
+ LD C,A
+ CALL TEST1
+ DB 02CH
+ JR NZ,L54F0 ; (+011H)
+L54DF: CALL L414A
+ JR Z,L54F0 ; (+00cH)
+ CP 05DH
+ JR Z,L54F0 ; (+008H)
+ CALL L5522
+ XOR C
+ AND 007H
+ XOR C
+ RET
+
+L54F0: LD A,C
+ RET
+
+L54F2: INC HL
+L54F3: CALL L6E67
+ LD A,B
+ OR A
+ JR Z,L5509 ; (+00fH)
+ PUSH HL
+ LD HL,L11A4
+ PUSH HL
+ CALL LDHLDE
+ LD (HL),00DH
+ POP DE
+ CALL L0030
+ POP HL
+L5509: CALL HLFTCH
+ CP 03BH
+ JR Z,L54F2 ; (-01eH)
+ CP 02CH
+ JR Z,L54F2 ; (-022H)
+ RET
+
+L5515: CALL L6E43
+ DEC A
+ CP 007H
+ JP NC,04AECH
+ INC A
+ JP L0041
+
+L5522: PUSH BC
+ CALL L6E43
+ POP BC
+ CP 008H
+ JP NC,04AECH
+ RET
+
+L552D: RST 018H
+ DB 045H
+ RET
+
+ DS 208, 000H
+L5600: LD A,(L1042)
+ CP 088H
+ RET
+
+L5606: CALL L6E82
+ LD A,(L84C7)
+ CP 003H
+ PUSH HL
+ EX DE,HL
+ JR Z,L5619 ; (+007H)
+ CALL L6026
+ POP HL
+ RST 018H
+ DB 017H
+ RET
+
+L5619: CALL L6E76
+ POP HL
+ RET
+
+L561E: LD A,(L005D)
+ LD (0574DH),A
+ XOR A
+ LD (L1090),A
+ CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 2,A
+ JP NZ,L5D16
+ BIT 1,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L5600
+ JR NZ,L5655 ; (+013H)
+ CALL TEST1
+ DB 05BH
+ JR NZ,L5655 ; (+00dH)
+ LD A,(0574DH)
+ CALL L54C6
+ LD (0574DH),A
+ CALL TESTX
+ DB 05DH
+L5655: CALL L414A
+ JP Z,L5733
+L565B: LD A,(HL)
+ CP LSE3
+ JR Z,L56DA ; (+07aH)
+ LD BC,L5674
+ PUSH BC
+ CP 03BH
+ RET Z
+ CP 02CH
+ RET Z
+ CP LSE6
+ JR Z,L56AA ; (+03cH)
+ CALL L5606
+ JP L573E
+
+L5674: CALL L414A
+ JP Z,L5733
+ CP 02CH
+ JR NZ,L569A ; (+01cH)
+ CALL L5600
+ JR C,L5697 ; (+014H)
+ LD IX,(ZDELT)
+ CALL IOCALL
+ LD B,A
+L568B: SUB 00AH
+ JR NC,L568B ; (-004H)
+ NEG
+ LD B,A
+ CALL L56CC
+ JR L569A ; (+003H)
+
+L5697: CALL L5733
+L569A: LD A,(HL)
+ CP 02CH
+ JR Z,L56A1 ; (+002H)
+ CP 03BH
+L56A1: JR NZ,L56A4 ; (+001H)
+ INC HL
+L56A4: CALL L414A
+ RET Z
+ JR L565B ; (-04fH)
+
+L56AA: CALL L5600
+ JP C,057B7H
+ CALL L5E75
+ CALL L6E43
+ CALL L5E7D
+ LD IX,(ZDELT)
+ CALL IOCALL
+ SUB E
+ RET NC
+ NEG
+ LD B,A
+ CALL L5600
+ LD A,013H
+ JR Z,L56CE ; (+002H)
+L56CC: LD A,020H
+L56CE: LD DE,L11A4
+ PUSH BC
+ PUSH DE
+ CALL ?SETDE
+ POP DE
+ POP BC
+ JR L573E ; (+064H)
+
+L56DA: INC HL
+ CALL L6E67
+ LD A,B
+ OR A
+ JP Z,04AECH
+ PUSH HL
+ LD HL,L11A4
+ PUSH HL
+ PUSH BC
+ CALL LDHLDE
+ POP BC
+ LD A,LSPAL
+ LD E,B
+ LD D,000H
+ INC DE
+ RST 018H
+ DB 02AH
+ LD (L6304),HL
+ LD (L6306),HL
+ POP DE
+ CALL LDHLDE
+ LD (HL),000H
+ POP HL
+L5702: CALL L414A
+ JR Z,L5729 ; (+022H)
+ INC HL
+ CP 02CH
+ JR Z,L5711 ; (+005H)
+ CP 03BH
+ JP NZ,L4AE6
+L5711: CALL L414A
+ JR Z,L572C ; (+016H)
+ CALL L6E8A
+ PUSH HL
+ LD BC,(TMPEND)
+ PUSH BC
+ CALL L6308
+ POP DE
+ CALL L573C
+ POP HL
+ JR L5702 ; (-027H)
+
+L5729: CALL L5733
+L572C: LD A,LSPAL
+ RST 018H
+ DB 02BH
+ RET
+
+L5731: DEC C
+ NOP
+L5733: LD A,(L005D)
+ LD (0574DH),A
+ LD DE,L5731
+L573C: RST 018H
+ DB 017H
+L573E: CALL L5600
+ JR Z,L5746 ; (+003H)
+ RST 018H
+ DB 037H
+ RET
+
+L5746: PUSH HL
+ PUSH BC
+ LD HL,L005D
+ LD C,(HL)
+ LD (HL),070H
+ RST 018H
+ DB 037H
+ LD (HL),C
+ POP BC
+ POP HL
+ RET
+
+L5754: LD A,08AH
+ LD (L1042),A
+ JR L5792 ; (+037H)
+
+L575B: CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 2,A
+ JP NZ,L5D27
+ BIT 0,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L5600
+ JR NZ,L5792 ; (+01dH)
+ CALL HLFTCH
+ CP 022H
+ LD DE,L57BC
+ LD B,002H
+ JR NZ,L5788 ; (+007H)
+ CALL L6E67
+ CALL TESTX
+ DB 03BH
+L5788: LD A,B
+ OR A
+ JR Z,L5792 ; (+006H)
+L578C: LD A,(DE)
+ INC DE
+ RST 018H
+ DB 003H
+ DJNZ L578C ; (-006H)
+L5792: LD (057EBH),SP
+ LD DE,(VARED)
+ LD (TMPEND),DE
+L579E: LD DE,(TMPEND)
+ CALL L74E1
+ CALL L742F
+ PUSH AF
+ PUSH BC
+ CALL L414A
+ JR Z,057BEH ; (+00fH)
+ CALL L5E71
+ JR L579E ; (-016H)
+
+L57B4: LD A,02CH
+ LD HL,0BB3EH
+ JP L0182
+
+L57BC: CCF
+ JR NZ,0576EH ; (-051H)
+ PUSH AF
+ PUSH HL
+ RST 018H
+ DB 034H
+ LD HL,(057EBH)
+ DEC HL
+L57C7: LD A,(HL)
+ OR A
+ JR Z,L57E9 ; (+01eH)
+ DEC HL
+ DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ DEC HL
+ PUSH HL
+ PUSH AF
+ PUSH BC
+ LD DE,(TMPEND)
+ CALL L57EE
+ LD H,000H
+ LD L,B
+ ADD HL,DE
+ LD (HL),000H
+ POP DE
+ POP AF
+ CALL L57F8
+ POP HL
+ JR L57C7 ; (-022H)
+
+L57E9: POP HL
+ LD SP,L0000
+ RET
+
+L57EE: LD A,(L1042)
+ CP 08AH
+ JR Z,L5839 ; (+044H)
+ RST 018H
+ DB 035H
+ RET
+
+L57F8: CP 003H
+ JR NZ,L5803 ; (+007H)
+ LD HL,(L107A)
+ LD A,B
+$START: JP L4CC8 ; $START - BASIC warm start / system entry
+
+L5803: PUSH DE
+ LD HL,(L107C)
+ LD DE,(TMPEND)
+ EX DE,HL
+ CALL HLFTCH
+ CP 045H
+ JP Z,04AECH
+ EX DE,HL
+ CALL L5EDA
+ EX DE,HL
+ CALL TEST1
+ DB 000H
+ JP NZ,04AECH
+ EX DE,HL
+ POP DE
+ JP L5E91
+
+L5825: XOR A
+ JR L587E ; (+056H)
+
+L5828: CALL L5825
+ CALL L414A
+ CALL NZ,L45B2
+ EX DE,HL
+ CALL NZ,L5869
+ EX DE,HL
+ JP L4F80
+
+L5839: PUSH HL
+ PUSH DE
+ CALL L5847
+ POP DE
+ POP HL
+ RET
+
+L5841: LD HL,(L1070)
+ CALL L5869
+L5847: LD A,(L8488)
+ CP 001H
+ JP Z,04B19H
+ JR C,L5841 ; (-010H)
+ LD HL,(L8489)
+ LD C,03AH
+ RST 018H
+ DB 036H
+ LD (L8489),HL
+ CALL L414A
+ SCF
+ CCF
+ RET NZ
+ DEC HL
+L5862: CALL L5194
+ OR A
+ JR NZ,L5874 ; (+00cH)
+ INC HL
+L5869: LD A,(HL)
+ INC HL
+ OR (HL)
+ LD A,001H
+ JR Z,L587E ; (+00eH)
+ INC HL
+ INC HL
+ JR L5862 ; (-012H)
+
+L5874: CP 094H
+ JR NZ,L5862 ; (-016H)
+ INC HL
+ LD (L8489),HL
+ LD A,002H
+L587E: LD (L8488),A
+ RET
+
+L5882: CALL TEST1
+ DB 023H
+ JR NZ,L58AD ; (+025H)
+ CALL HLFTCH
+ CP 020H
+ JP NC,L4AE6
+ PUSH DE
+ PUSH BC
+ LD DE,L84C8
+ PUSH DE
+ CALL L7052
+ EX (SP),HL
+ CALL L60B5
+ LD A,H
+ OR A
+ JP NZ,04B22H
+ OR L
+ JP Z,04B22H
+ JP M,04B22H
+ POP HL
+ POP BC
+ POP DE
+ RET
+
+L58AD: CALL TEST1
+ DB FDPD
+ LD A,088H
+ RET NZ
+ CALL TEST1
+ DB 050H
+ LD A,089H
+ RET Z
+ CALL TESTX
+ DB 054H
+ LD A,080H
+ RET
+
+L58C2: LD A,(L1042)
+ OR A
+ RET M
+ JP L5E6E
+
+L58CA: CALL L593A
+ RST 018H
+ DB 03AH
+ RET
+
+L58D0: CALL L414A
+ LD B,000H
+ CALL NZ,L6E67
+L58D8: PUSH HL
+ RST 018H
+ DB 02CH
+ RST 018H
+ DB 03CH
+ POP HL
+ RET
+
+L58DF: LD A,001H
+ LD BC,0023EH
+ LD BC,0043EH
+ PUSH AF
+ LD (L1043),A
+ CALL L5882
+ CP 088H
+ JR NZ,L58F4 ; (+002H)
+ LD A,080H
+L58F4: LD (L1042),A
+ CALL L58C2
+ CALL L592D
+ POP AF
+ CP 004H
+ JR Z,L5904 ; (+002H)
+L5902: LD A,003H
+L5904: LD (L1000),A
+ PUSH AF
+ RST 018H
+ DB 033H
+ LD A,(L1000)
+ POP BC
+ CP B
+ JP NZ,04B49H
+ RET
+
+L5913: OR 0AFH
+ LD B,A
+ CALL L414A
+ JR Z,L5929 ; (+00eH)
+L591B: CALL L5882
+ CP 088H
+ RET NC
+ RST 018H
+ DB 038H
+ CALL TEST1
+ DB 02CH
+ JR L591B ; (-00eH)
+
+L5929: XOR A
+ RST 018H
+ DB 038H
+ RET
+
+L592D: CALL L46AE
+ LD B,000H
+ CALL NZ,L6E67
+ PUSH HL
+ RST 018H
+ DB 02DH
+ POP HL
+ RET
+
+L593A: PUSH HL
+ CALL HLFTCH
+ LD DE,L5982
+ LD B,001H
+ CALL L5975
+ CALL NC,L5975
+ JR C,L5962 ; (+017H)
+ CALL L5975
+ CALL L5EC2
+ CALL L597B
+ CALL L414A
+ JR NZ,L5962 ; (+009H)
+ LD A,03AH
+ LD (DE),A
+ POP AF
+ LD DE,L5982
+ JR L596B ; (+009H)
+
+L5962: POP HL
+ CALL L414A
+ LD B,000H
+ CALL NZ,L6E67
+L596B: PUSH HL
+ RST 018H
+ DB 02CH
+ INC (HL)
+ DEC (HL)
+ JP NZ,04B1FH
+ POP HL
+ RET
+
+L5975: CP 041H
+ RET C
+ CP 05BH
+ CCF
+L597B: RET C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ INC B
+ RET
+
+L5982: NOP
+ NOP
+ NOP
+ NOP
+L5986: CALL L592D
+ CALL TEST1
+ DB 02CH
+ JP Z,L5A47
+ PUSH HL
+ CALL L5BDC
+ DEC A
+ JR Z,L59A9 ; (+012H)
+ DEC A
+ JP NZ,04B49H
+ CALL L5C08
+ CALL L5BE5
+ CALL L5C0F
+ CALL L5C42
+ POP HL
+ RET
+
+L59A9: LD HL,(ELMD22)
+ PUSH HL
+ LD DE,(MEMLMT)
+ CALL L59CF
+ LD DE,(ELMD20)
+ LD BC,(MEMMAX)
+ CALL NC,L59CA
+ JP C,04B0DH
+ POP HL
+ RST 018H
+ DB 030H
+ CALL L5C42
+ POP HL
+ RET
+
+L59CA: ADD HL,DE
+ RET C
+ EX DE,HL
+ LD H,B
+ LD L,C
+L59CF: PUSH HL
+ OR A
+ SBC HL,DE
+ POP HL
+ RET
+
+L59D5: CALL L592D
+ CALL L5BDC
+ CP 002H
+ JP NZ,04B49H
+ LD A,(L8493)
+ OR A
+ JP Z,L5B0D
+ JP L5DB0
+
+L59EA: CALL L5C08
+ CALL L592D
+ CALL TEST1
+ DB 02CH
+ JR Z,05A4DH ; (+057H)
+ RST 018H
+ DB 02FH
+ CP 002H
+ JP NZ,04B49H
+ PUSH HL
+ LD HL,(L1078)
+ LD (L107A),HL
+ LD BC,003E8H
+ ADD HL,BC
+ JP C,L4B26
+ PUSH HL
+ LD BC,(ELMD20)
+ INC B
+ ADD HL,BC
+ JP C,L4B26
+ SBC HL,SP
+ JP NC,L4B26
+ POP HL
+ PUSH HL
+ RST 018H
+ DB 030H
+ POP HL
+ CALL L5A24
+ POP HL
+ RET
+
+L5A24: CALL LDDEMI
+ LD A,D
+ OR E
+ RET Z
+ PUSH DE
+ CALL LDDEMI
+ PUSH HL
+ LD H,D
+ LD L,E
+ LD (L8478),HL
+ CALL L49B9
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+ CALL L479C
+ POP HL
+ POP BC
+ ADD HL,BC
+ DEC HL
+ DEC HL
+ DEC HL
+ DEC HL
+ JR L5A24 ; (-023H)
+
+L5A47: CALL L5C08
+ LD A,001H
+ LD BC,L003E
+ LD BC,0023EH
+ PUSH AF
+ CALL TESTX
+ DB 041H
+ CALL L5E46
+ LD A,001H
+ LD (L1043),A
+ LD A,081H
+ LD (L1042),A
+ CALL L5902
+ POP AF
+ PUSH AF
+ PUSH HL
+ LD HL,L0000
+ LD DE,0FFFFH
+ OR A
+ CALL NZ,L49B9
+ LD A,081H
+ RST 018H
+ DB 02EH
+ LD HL,(L1078)
+ LD (L107A),HL
+ LD BC,003E8H
+ ADD HL,BC
+ JP C,04AF5H
+ PUSH HL
+ LD (L5AEB),HL
+L5A89: LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(05AEBH)
+ SBC HL,DE
+ JP C,04AF5H
+ LD DE,(TMPEND)
+ RST 018H
+ DB 035H
+ LD A,B
+ OR A
+ JR Z,L5AD6 ; (+036H)
+ CALL L6A09
+ LD A,B
+ OR C
+ JP Z,04AECH
+ LD HL,(L5AEB)
+ PUSH HL
+ INC HL
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ PUSH HL
+ LD H,D
+ LD L,E
+ CALL TEST1
+ DB 000H
+ JP Z,04AECH
+ POP HL
+ LD A,(DE)
+ CP 020H
+ JR NZ,L5AC3 ; (+001H)
+ INC DE
+L5AC3: CALL L66ED
+ LD (HL),000H
+ INC HL
+ LD (L5AEB),HL
+ POP DE
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ JR L5A89 ; (-04dH)
+
+L5AD6: LD HL,(L5AEB)
+ CALL L4952
+ CALL L4928
+ POP HL
+ CALL L5A24
+ POP HL
+ POP AF
+ CP 002H
+ RET NZ
+ JP L4810
+
+L5AEB: NOP
+ NOP
+L5AED: CALL L592D
+ PUSH HL
+ CALL TEST1
+ DB 02CH
+ JR NZ,L5AFF ; (+008H)
+ CALL HLFTCH
+ CP 041H
+ JP Z,05A50H
+L5AFF: CALL L5BDC
+ POP HL
+ DEC A
+ JR Z,L5B16 ; (+010H)
+ DEC A
+ JP NZ,04B49H
+ CALL L5BE5
+L5B0D: CALL L5C0F
+ CALL L5C42
+ JP L4810
+
+L5B16: LD D,0C9H
+ LD BC,0FF00H
+ CALL TEST1
+ DB 02CH
+ JR NZ,L5B2A ; (+009H)
+ CALL TESTX
+ DB 052H
+ LD D,000H
+ LD BC,0CF00H
+L5B2A: LD A,D
+ LD (L5B93),A
+ LD HL,(L1014)
+ LD DE,(ELMD22)
+ PUSH HL
+ CALL L59CA
+ POP DE
+ LD HL,(L1070)
+ LD BC,0FF00H
+ CALL NC,L59CA
+ JP C,L4B26
+ LD SP,L0000
+ CALL L4930
+ XOR A
+ LD (L5C07),A
+ LD HL,(L1018)
+ PUSH HL
+ LD DE,(ELMD20)
+ PUSH DE
+ LD HL,(L107A)
+ RST 018H
+ DB 030H
+ LD A,004H
+ RST 018H
+ DB 003H
+ LD A,016H
+ RST 018H
+ DB 003H
+ POP BC
+ PUSH BC
+ LD DE,(ELMD22)
+ CALL L59CF
+ LD A,0B0H
+ JR NC,L5B7B ; (+008H)
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ LD A,0B8H
+L5B7B: LD (05B92H),A
+ DI
+ PUSH HL
+ PUSH DE
+ LD BC,00016H
+ LD HL,L5B8E
+ LD DE,0FF80H
+ PUSH DE
+ LDIR
+ RET
+
+L5B8E: POP DE
+ POP HL
+ POP BC
+ LDIR
+L5B93: RET
+
+ POP BC
+ LD SP,0D000H
+ EX DE,HL
+ PUSH BC
+ PUSH HL
+ LD (HL),LSD3
+ INC HL
+ LD (HL),LSE4
+ INC HL
+ LD (HL),0C9H
+ RET
+
+L5BA4: LD HL,(L1078)
+ LD (L107A),HL
+ LD DE,(TEXTED)
+ LD (05C01H),DE
+ OR A
+ SBC HL,DE
+ LD (L5C03),HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD (L5C05),HL
+ LD DE,(VARED)
+ PUSH HL
+ OR A
+ SBC HL,DE
+ JP C,L4B26
+ EX (SP),HL
+ EX DE,HL
+ LD BC,(05C03H)
+ INC BC
+ LDDR
+ POP DE
+ RST 018H
+ DB 018H
+ LD A,001H
+ LD (L5C07),A
+ RET
+
+L5BDC: CALL L5BA4
+ RST 018H
+ DB 02FH
+ LD A,(L1000)
+ RET
+
+L5BE5: LD HL,(L1078)
+ XOR A
+ DEC HL
+ LD (HL),A
+ DEC HL
+ LD (HL),A
+ LD (L1076),HL
+ DEC HL
+ LD (HL),A
+ LD (L1074),HL
+ DEC HL
+ LD (HL),A
+ LD (L1072),HL
+ LD HL,00004H
+ LD (L5C03),HL
+ RET
+
+L5C01: NOP
+ NOP
+L5C03: NOP
+ NOP
+L5C05: NOP
+ NOP
+L5C07: NOP
+L5C08: CALL L4152
+ JP NZ,04B10H
+ RET
+
+L5C0F: LD BC,(ELMD20)
+ PUSH BC
+ LD HL,(L1072)
+ LD DE,(TEXTST)
+ OR A
+ SBC HL,DE
+ LD L,000H
+ SBC HL,BC
+ JP C,L4B26
+ LD HL,L0000
+ LD (L5C01),HL
+ CALL L4824
+ LD HL,L0000
+ LD (L847C),HL
+ LD HL,(L1070)
+ RST 018H
+ DB 030H
+ POP BC
+ LD HL,(L1070)
+ ADD HL,BC
+ LD (L5C01),HL
+ RET
+
+L5C42: LD A,081H
+ LD B,000H
+ RST 018H
+ DB 038H
+ LD HL,L5C07
+ LD A,(HL)
+ OR A
+ RET Z
+ LD (HL),000H
+ LD HL,(L5C01)
+ LD A,H
+ OR L
+ JR NZ,L5C5D ; (+006H)
+ LD HL,(L1070)
+ CALL L4952
+L5C5D: EX DE,HL
+ LD HL,(L1072)
+ LD BC,(05C03H)
+ LDIR
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ RST 018H
+ DB 018H
+ RET
+
+L5C6F: PUSH HL
+ CALL L46C8
+ POP HL
+ CALL L592D
+ PUSH HL
+ RST 018H
+ DB 02FH
+ CP 002H
+ JP NZ,04B49H
+ LD HL,(L1070)
+ RST 018H
+ DB 032H
+ POP HL
+ RET
+
+L5C86: PUSH HL
+ CALL L46C8
+ POP HL
+ CALL L592D
+ CALL TEST1
+ DB 02CH
+ JR Z,L5CB3 ; (+01fH)
+ PUSH HL
+ LD A,002H
+ LD (L1000),A
+ LD HL,(L1072)
+ LD DE,(TEXTST)
+ OR A
+ SBC HL,DE
+ LD (L1014),HL
+ LD A,(L1001)
+ CP 00DH
+ JP Z,04B46H
+ RST 018H
+ DB 031H
+ POP HL
+ RET
+
+L5CB3: CALL TESTX
+ DB 041H
+ PUSH HL
+ LD A,002H
+ LD (L1043),A
+ LD A,081H
+ LD (L1042),A
+ CALL L5902
+ POP HL
+ CALL L52E3
+ CALL L5733
+ LD B,001H
+ LD A,081H
+ RST 018H
+ DB 038H
+ RET
+
+L5CD3: XOR A
+ LD BC,?SETDE
+ PUSH AF
+ CALL L6E67
+ RST 018H
+ DB 02DH
+ POP AF
+ RST 018H
+ DB 03FH
+ RET
+
+L5CE1: CALL L5882
+ PUSH AF
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 1,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L593A
+ LD B,A
+ XOR A
+ RST 018H
+ DB 039H
+ LD A,B
+ RST 018H
+ DB 03AH
+ POP AF
+ RST 018H
+ DB 039H
+ RET
+
+L5D00: CALL L6E67
+ RST 018H
+ DB 02DH
+ RST 018H
+ DB 03DH
+ RET
+
+L5D08: CALL L6E67
+ RST 018H
+ DB 02DH
+ CALL L5E6E
+ CALL L6E67
+ RST 018H
+ DB 03EH
+ RET
+
+L5D16: CALL L5D4C
+L5D19: CALL L5606
+ RST 018H
+ DB 042H
+ CALL L414A
+ RET Z
+ CALL L5E71
+ JR L5D19 ; (-00eH)
+
+L5D27: CALL L5D4C
+ LD DE,(TMPEND)
+ CALL L74E1
+L5D31: CALL L742F
+ PUSH HL
+ PUSH AF
+ PUSH BC
+ LD DE,(TMPEND)
+ RST 018H
+ DB 041H
+ POP DE
+ POP AF
+ CALL L57F8
+ POP HL
+ CALL L414A
+ RET Z
+ CALL L5E71
+ JR L5D31 ; (-01bH)
+
+L5D4C: CALL TEST1
+ DB 028H
+ RET NZ
+ CALL L6E57
+ LD A,D
+ OR E
+ JP Z,04AECH
+ RST 018H
+ DB 040H
+ CALL L5E7D
+ CALL TEST1
+ DB 02CH
+ RET
+
+L5D63: LD A,(L8493)
+ OR A
+ JP NZ,04B1CH
+ PUSH HL
+ LD B,000H
+ RST 018H
+ DB 02CH
+ LD (05E18H),DE
+ LD (L5E1A),A
+ LD HL,(L1072)
+ LD DE,(TEXTST)
+ XOR A
+ SBC HL,DE
+ LD (L1014),HL
+ RST 018H
+ DB 044H
+ POP HL
+ CALL L592D
+ CALL L5E46
+ LD A,(L1050)
+ BIT 5,A
+ JP Z,057B7H
+ PUSH HL
+ LD HL,(0848DH)
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ LD HL,L8476
+ LD BC,(0848BH)
+ LDIR
+ CALL L5BDC
+ CP 002H
+ JP NZ,04B49H
+ LD (05DB1H),SP
+L5DB0: LD SP,L0000
+ CALL L5C0F
+ CALL L5C42
+ LD HL,0FFFDH
+ PUSH HL
+ PUSH HL
+ LD A,001H
+ LD (L8493),A
+ LD HL,(L1070)
+ JP L40F0
+
+L5DC9: XOR A
+ LD (L8493),A
+ POP IX
+L5DCF: POP BC
+ LD A,B
+ CP 0FFH
+ JP NZ,04B1CH
+ LD A,C
+ CP 0FDH
+ JR Z,L5DEE ; (+013H)
+ CP 0FEH
+ LD HL,00004H
+ JR Z,L5DEA ; (+008H)
+ CP 012H
+ LD HL,00010H
+ JP NZ,04B1CH
+L5DEA: ADD HL,SP
+ LD SP,HL
+ JR L5DCF ; (-01fH)
+
+L5DEE: LD DE,(05E18H)
+ LD A,(L5E1A)
+ RST 018H
+ DB 03AH
+ LD B,000H
+ RST 018H
+ DB 02CH
+ CALL L5BA4
+ OR 0FFH
+ RST 018H
+ DB 044H
+ CALL L5C0F
+ CALL L5C42
+ LD HL,L0000
+ ADD HL,SP
+ LD DE,L8476
+ LD BC,(0848BH)
+ LDIR
+ LD SP,HL
+ POP HL
+ RET
+
+ NOP
+ NOP
+L5E1A: NOP
+L5E1B: LD DE,L5E35
+ LD B,005H
+ CALL L58D8
+ LD A,031H
+ CALL L5E2A
+ LD A,032H
+L5E2A: LD (05E3CH),A
+ LD DE,05E3AH
+ LD B,00CH
+ JP L58D8
+
+L5E35: DB "CMT:TRS?:0,$8C,13"
+L5E46: CALL L414A
+ RET Z
+ JP L4AE6
+
+L5E4D: XOR A
+ LD (L1091),A
+ CALL TEST1
+ DB FDPD
+ RET NZ
+ CALL TESTX
+ DB 050H
+ CALL L6ABE
+ LD A,050H
+ LD (L1091),A
+ CP A
+ RET
+
+L5E64: LD DE,L8495
+ LD B,000H
+ PUSH DE
+ RST 018H
+ DB 016H
+ POP DE
+ RET
+
+L5E6E: CALL HLFTCH
+L5E71: CP 02CH
+ JR L5E82 ; (+00dH)
+
+L5E75: INC HL
+L5E76: CALL HLFTCH
+L5E79: CP 028H
+ JR L5E82 ; (+005H)
+
+L5E7D: CALL HLFTCH
+L5E80: CP 029H
+L5E82: INC HL
+ RET Z
+ JP L4AE6
+
+L5E87: LD A,(DE)
+ CP 020H
+ INC DE
+ JR Z,L5E87 ; (-006H)
+ RET
+
+L5E8E: LD HL,L6110
+L5E91: LD BC,00005H
+ LDIR
+ RET
+
+L5E97: CALL L7960
+ LD A,E
+ OR D
+ RET Z
+ BIT 7,D
+ LD A,07FH
+ JR Z,L5EAC ; (+009H)
+ LD A,D
+ CPL
+ LD D,A
+ LD A,E
+ CPL
+ LD E,A
+ INC DE
+ LD A,0FFH
+L5EAC: LD B,091H
+L5EAE: DEC B
+ BIT 7,D
+ JR NZ,L5EB9 ; (+006H)
+ RL E
+ RL D
+ JR L5EAE ; (-00bH)
+
+L5EB9: LD (HL),B
+ INC HL
+ AND D
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ DEC HL
+ DEC HL
+ RET
+
+L5EC2: CP 030H
+ RET C
+ CP 03AH
+ CCF
+ RET
+
+L5EC9: CP 05FH
+ RET Z
+ CP 030H
+ RET C
+ CP 05BH
+ CCF
+ RET C
+ CP 03AH
+ CCF
+ RET NC
+ CP 041H
+ RET
+
+L5EDA: CALL L7960
+ LD (L62FF),A
+ LD (L6300),A
+ LD (L6301),A
+ LD (05F81H),A
+ LD A,005H
+ LD (L84C7),A
+L5EEE: CALL L5E87
+ CP 02BH
+ JR Z,L5EEE ; (-007H)
+ CP 02DH
+ JR NZ,L5EFF ; (+006H)
+ CALL L5EEE
+ JP L796B
+
+L5EFF: CP 024H
+ JR NZ,L5F0F ; (+00cH)
+ PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 014H
+ EX (SP),HL
+ CALL L5E97
+ POP DE
+ LD A,005H
+ RET
+
+L5F0F: CP 030H
+ JR NZ,L5F19 ; (+006H)
+ LD A,(DE)
+ INC DE
+ JR L5F0F ; (-008H)
+
+L5F17: LD A,(DE)
+ INC DE
+L5F19: CP 020H
+ JR Z,L5F17 ; (-006H)
+ CP 02EH
+ JR Z,L5F3C ; (+01bH)
+ CALL L5EC2
+ JR C,L5F76 ; (+050H)
+ SUB 030H
+ CALL L60A8
+ CALL L6012
+ LD A,001H
+ LD (L6300),A
+ LD A,(L62FF)
+ INC A
+ LD (L62FF),A
+ JR L5F17 ; (-025H)
+
+L5F3C: LD A,001H
+ LD (05F81H),A
+ LD C,A
+L5F42: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L5F42 ; (-006H)
+ CALL L5EC2
+ JR C,L5F6E ; (+021H)
+ INC C
+ SUB 030H
+ JR Z,L5F59 ; (+007H)
+ PUSH AF
+ LD A,001H
+ LD (L6300),A
+ POP AF
+L5F59: PUSH AF
+ LD A,(L6300)
+ LD B,A
+ LD A,(L62FF)
+ ADD A,B
+ LD (L62FF),A
+ POP AF
+ CALL L60A8
+ CALL L6012
+ JR L5F42 ; (-02cH)
+
+L5F6E: DEC C
+ JR Z,L5F76 ; (+005H)
+ CALL L5FFC
+ JR L5F6E ; (-008H)
+
+L5F76: CP 045H
+ JR Z,L5F87 ; (+00dH)
+L5F7A: DEC DE
+ LD A,(L6301)
+ OR A
+ RET NZ
+ LD A,000H
+ OR A
+ RET NZ
+ LD A,005H
+ RET
+
+L5F87: LD A,(DE)
+ CP 02DH
+ JR Z,L5F95 ; (+009H)
+ CP 02BH
+ JR Z,L5F95 ; (+005H)
+ CALL L5EC2
+ JR C,L5F7A ; (-01bH)
+L5F95: LD A,001H
+ LD (05F81H),A
+ PUSH HL
+ LD HL,L7BAC
+ LD (05FF5H),HL
+ LD HL,L0000
+ LD A,(DE)
+ INC DE
+ CP 02BH
+ JR Z,L5FB6 ; (+00cH)
+ CP 02DH
+ JR NZ,L5FB8 ; (+00aH)
+ PUSH HL
+ LD HL,L7C97
+ LD (05FF5H),HL
+ POP HL
+L5FB6: LD A,(DE)
+ INC DE
+L5FB8: SUB 030H
+ JR C,L5FD8 ; (+01cH)
+ CP 00AH
+ JR NC,L5FD8 ; (+018H)
+ PUSH DE
+ CALL L600D
+ LD E,L
+ LD D,H
+ CALL L600D
+ CALL L600D
+ CALL L6009
+ LD E,A
+ LD D,000H
+ CALL L6009
+ POP DE
+ JR L5FB6 ; (-022H)
+
+L5FD8: LD A,H
+ OR A
+ JR NZ,L600F ; (+033H)
+ LD A,L
+ POP HL
+ PUSH DE
+ PUSH BC
+ PUSH HL
+ LD DE,L84C8
+ PUSH DE
+ CALL L5E8E
+ POP HL
+ LD B,A
+ INC B
+ JR L5FF0 ; (+003H)
+
+L5FED: CALL L60A8
+L5FF0: DJNZ L5FED ; (-005H)
+ EX DE,HL
+ POP HL
+ CALL L0000
+ POP BC
+ POP DE
+ JP L5F7A
+
+L5FFC: PUSH AF
+ PUSH BC
+ PUSH DE
+ LD DE,L610B
+ CALL L7C97
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L6009: ADD HL,DE
+ RET NC
+ JR L600F ; (+002H)
+
+L600D: ADD HL,HL
+ RET NC
+L600F: JP 04AE9H
+
+L6012: PUSH DE
+ PUSH HL
+ LD HL,L84C8
+ LD E,A
+ LD D,000H
+ CALL L5E97
+ EX DE,HL
+ POP HL
+ PUSH BC
+ CALL L797E
+ POP BC
+ POP DE
+ RET
+
+L6026: LD A,005H
+ LD (L84C7),A
+ LD A,(HL)
+ OR A
+ JR Z,L6033 ; (+004H)
+ INC HL
+ LD A,(HL)
+ DEC HL
+ RLCA
+L6033: LD A,020H
+ JR NC,L603C ; (+005H)
+ CALL L796B
+ LD A,02DH
+L603C: PUSH AF
+ CALL L61AB
+ CALL L6238
+ POP AF
+ DEC DE
+ LD (DE),A
+ RET
+
+L6047: PUSH BC
+ CALL L7A15
+ POP BC
+ RET
+
+L604D: CALL SKPDE
+ LD A,(HL)
+ CP 081H
+ JP C,L7960
+ LD A,(HL)
+ CP 0A0H
+ RET NC
+ INC HL
+ CALL L6084
+ PUSH HL
+ LD L,(HL)
+ LD B,000H
+L6062: SRL E
+ RR D
+ RR C
+ RR L
+ INC A
+ INC B
+ CP 0A0H
+ JR NZ,L6062 ; (-00eH)
+L6070: SLA L
+ RL C
+ RL D
+ RL E
+ DJNZ L6070 ; (-00aH)
+ LD A,L
+ POP HL
+ LD (HL),A
+ DEC HL
+ LD (HL),C
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ RET
+
+L6084: LD E,(HL)
+ INC HL
+L6086: LD D,(HL)
+ INC HL
+ LD C,(HL)
+ INC HL
+ RET
+
+L608B: LD A,(HL)
+ CP 081H
+ RET C
+ PUSH DE
+ PUSH HL
+ LD DE,L60A3
+ PUSH DE
+ CALL L5E91
+ POP HL
+ CALL L604D
+ EX DE,HL
+ POP HL
+ CALL L7975
+ POP DE
+ RET
+
+L60A3: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L60A8: PUSH AF
+ PUSH BC
+ PUSH DE
+ LD DE,L610B
+ CALL L7BAC
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L60B5: INC HL
+ BIT 7,(HL)
+ JR Z,L60C5 ; (+00bH)
+ CALL L60C5
+ LD A,H
+ CPL
+ LD H,A
+ LD A,L
+ CPL
+ LD L,A
+ INC HL
+ RET
+
+L60C5: DEC HL
+ LD A,(HL)
+ CP 091H
+ JP NC,04AE9H
+ CP 081H
+ JR C,L60E3 ; (+013H)
+ PUSH AF
+ INC HL
+ LD A,(HL)
+ INC HL
+ LD L,(HL)
+ LD H,A
+ POP AF
+ SET 7,H
+L60D9: CP 090H
+ RET Z
+ INC A
+ SRL H
+ RR L
+ JR L60D9 ; (-00aH)
+
+L60E3: CCF
+ LD HL,L0000
+ RET
+
+L60E8: SBC A,E
+ LD A,0BCH
+ JR NZ,L60ED ; (+000H)
+L60ED: SBC A,B
+ JR L6086 ; (-06aH)
+
+ ADD A,B
+ NOP
+ SUB H
+ LD (HL),H
+ INC H
+ NOP
+ NOP
+ SUB C
+ LD B,E
+ LD D,B
+ NOP
+ NOP
+ ADC A,(HL)
+ INC E
+ LD B,B
+ NOP
+ NOP
+ ADC A,D
+ LD A,D
+ NOP
+ NOP
+ NOP
+ ADD A,A
+ LD C,B
+ NOP
+ NOP
+ NOP
+L610B: ADD A,H
+ JR NZ,L610E ; (+000H)
+L610E: NOP
+ NOP
+L6110: ADD A,C
+ NOP
+ NOP
+ NOP
+ NOP
+ LD A,L
+ LD C,H
+ CALL Z,0CDCCH
+L611A: LD H,(HL)
+ DEC HL
+ CALL Z,L1277
+L611F: LD HL,(L6302)
+ LD B,000H
+L6124: LD DE,L610B
+ CALL L6047
+ JR C,L6132 ; (+006H)
+ CALL L5FFC
+ INC B
+ JR L6124 ; (-00eH)
+
+L6132: LD DE,L6110
+ CALL L6047
+ JR NC,L6140 ; (+006H)
+ CALL L60A8
+ DEC B
+ JR L6132 ; (-00eH)
+
+L6140: PUSH BC
+ CALL L61AB
+ CALL L6238
+ POP BC
+ PUSH DE
+ EX DE,HL
+L614A: LD A,(HL)
+ OR A
+ JR Z,L6151 ; (+003H)
+ INC HL
+ JR L614A ; (-007H)
+
+L6151: DEC HL
+ LD A,(HL)
+ INC HL
+ CP 030H
+ JR NZ,L615A ; (+002H)
+ INC B
+ DEC HL
+L615A: LD A,045H
+ LD (HL),A
+ INC HL
+ LD A,B
+ LD B,02BH
+ BIT 7,A
+ JR Z,L6169 ; (+004H)
+ NEG
+ LD B,02DH
+L6169: LD (HL),B
+ INC HL
+ LD (HL),030H
+L616D: SUB 00AH
+ JR C,L6174 ; (+003H)
+ INC (HL)
+ JR L616D ; (-007H)
+
+L6174: ADD A,03AH
+ INC HL
+ LD (HL),A
+ INC HL
+ LD (HL),000H
+ POP DE
+ RET
+
+L617D: PUSH HL
+ CALL L60B5
+ LD DE,L84A0
+ PUSH DE
+ LD B,001H
+ RST 018H
+ DB 016H
+ POP HL
+ LD A,030H
+ LD B,005H
+L618E: CP (HL)
+ JR NZ,L6196 ; (+005H)
+ INC HL
+ DJNZ L618E ; (-006H)
+ JR L619F ; (+009H)
+
+L6196: LD A,B
+ LD (L62FF),A
+ LD A,001H
+ LD (L6300),A
+L619F: LD A,02EH
+ LD (L84A5),A
+ POP HL
+ CALL L608B
+ JP L61FB
+
+L61AB: LD (L6302),HL
+ XOR A
+ LD (L62FF),A
+ LD (L6300),A
+ PUSH HL
+ LD HL,L849C
+ LD (HL),0FFH
+ LD B,021H
+ LD A,030H
+L61BF: INC HL
+ LD (HL),A
+ DJNZ L61BF ; (-004H)
+ LD A,02EH
+ LD (L84A5),A
+ POP HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD DE,L60E8
+ CALL L7A15
+ CCF
+ RET C
+ LD DE,L611A
+ CALL L7A15
+ RET C
+ LD DE,L84D0
+ PUSH DE
+ CALL L5E91
+ POP HL
+ LD A,(HL)
+ CP 081H
+ JR C,L61FB ; (+013H)
+ CP 090H
+ JP C,L617D
+ LD IX,L849D
+ LD DE,L60ED
+ CALL L62C2
+ CALL L62F6
+ RET NC
+L61FB: LD IX,L84A6
+L61FF: LD DE,L60E8
+ PUSH BC
+ PUSH IX
+ CALL L7BAC
+ POP IX
+ POP BC
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ CALL L62C2
+ CALL L62F6
+ JR C,L61FF ; (-019H)
+ RET
+
+L6219: LD A,005H
+ LD (L84C7),A
+ PUSH HL
+ LD DE,L84D8
+ PUSH DE
+ CALL L5E91
+ POP HL
+ CALL L61AB
+ CALL L6235
+ POP HL
+ RET
+
+L622F: LD DE,L84A5
+ LD (DE),A
+ DEC DE
+ RET
+
+L6235: JP C,L611F
+L6238: LD HL,(L6302)
+ LD A,(HL)
+ OR A
+ JR Z,L622F ; (-010H)
+ LD DE,L849D
+ DEC DE
+ EX DE,HL
+ LD DE,00001H
+L6247: INC HL
+ LD A,(HL)
+ CP 02EH
+ JR NZ,L6252 ; (+005H)
+ LD DE,L0000
+ JR L6247 ; (-00bH)
+
+L6252: CP 030H
+ JR Z,L6247 ; (-00fH)
+ ADD HL,DE
+ LD DE,00008H
+ ADD HL,DE
+ LD A,(HL)
+L625C: LD (HL),030H
+ CP 035H
+ JR C,L6271 ; (+00fH)
+L6262: DEC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L6262 ; (-006H)
+ INC A
+ JR Z,L62AB ; (+040H)
+ LD (HL),A
+ CP 03AH
+ JR Z,L625C ; (-014H)
+ INC HL
+L6271: LD DE,L84A5
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ JR C,L6280 ; (+005H)
+ LD HL,L84A5
+ JR L6297 ; (+017H)
+
+L6280: DEC HL
+ LD A,(HL)
+ CP 02EH
+ DEC HL
+ JR Z,L6296 ; (+00fH)
+ INC HL
+ CP 030H
+ JR Z,L6271 ; (-01bH)
+ PUSH HL
+ LD DE,L84AE
+ SBC HL,DE
+ POP HL
+ JP NC,L611F
+L6296: INC HL
+L6297: LD (HL),000H
+ LD DE,L849D
+L629C: LD A,(DE)
+ CP 030H
+ JR NZ,L62A4 ; (+003H)
+ INC DE
+ JR L629C ; (-008H)
+
+L62A4: OR A
+ RET NZ
+ DEC DE
+ LD A,030H
+ LD (DE),A
+ RET
+
+L62AB: LD HL,L8495
+ LD DE,L62BC
+ PUSH BC
+ LD BC,L0006
+ LDIR
+ POP BC
+ LD DE,L8495
+ RET
+
+L62BC: LD SP,L2B45
+ JR NC,L62F9 ; (+038H)
+ NOP
+L62C2: LD A,(DE)
+ CP 07DH
+ RET Z
+L62C6: CALL L7A15
+ JR C,L62DE ; (+013H)
+ INC (IX+000H)
+ PUSH IX
+ PUSH BC
+ CALL L7975
+ POP BC
+ POP IX
+ LD A,001H
+ LD (L6300),A
+ JR L62C6 ; (-018H)
+
+L62DE: INC IX
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ LD A,(L6300)
+ LD B,A
+ LD A,(L62FF)
+ ADD A,B
+ LD (L62FF),A
+ CALL L62F6
+ RET NC
+ JR L62C2 ; (-034H)
+
+L62F6: LD A,(HL)
+ OR A
+ RET Z
+L62F9: LD A,(L62FF)
+ CP 009H
+ RET
+
+L62FF: NOP
+L6300: NOP
+L6301: NOP
+L6302: NOP
+ NOP
+L6304: NOP
+ NOP
+L6306: NOP
+ NOP
+L6308: LD HL,(L6306)
+ PUSH DE
+L630C: LD A,(HL)
+ OR A
+ JP Z,04AECH
+ CALL L63AA
+ JR Z,L631B ; (+005H)
+ LD (BC),A
+ INC BC
+ INC HL
+ JR L630C ; (-00fH)
+
+L631B: EX AF,AF'
+ LD A,(L84C7)
+ CP 003H
+ JP NZ,L63D3
+ EX AF,AF'
+ CP 021H
+ JP Z,L6332
+ CP 026H
+ JP Z,L6359
+ JP 04AEFH
+
+L6332: EX (SP),HL
+ PUSH BC
+ CALL L6E76
+ OR A
+ LD A,020H
+ JR Z,L633D ; (+001H)
+ LD A,(DE)
+L633D: POP BC
+ LD (BC),A
+ INC BC
+L6340: POP HL
+ INC HL
+L6342: LD A,(HL)
+ OR A
+ JR Z,L6350 ; (+00aH)
+ CALL L63AA
+ JR Z,L6353 ; (+008H)
+ LD (BC),A
+ INC BC
+ INC HL
+ JR L6342 ; (-00eH)
+
+L6350: LD HL,(L6304)
+L6353: LD (L6306),HL
+ XOR A
+ LD (BC),A
+ RET
+
+L6359: LD D,002H
+L635B: INC HL
+ LD A,(HL)
+ CP 026H
+ JR Z,L6369 ; (+008H)
+ INC D
+ CP 020H
+ JR Z,L635B ; (-00bH)
+ JP 04AECH
+
+L6369: EX (SP),HL
+ LD A,(HL)
+ CP D
+ JR C,L6383 ; (+015H)
+ INC HL
+ CALL INDRCT
+ PUSH BC
+ LD BC,(STRST)
+ ADD HL,BC
+ POP BC
+L6379: LD A,(HL)
+ LD (BC),A
+ INC BC
+ INC HL
+ DEC D
+ JR NZ,L6379 ; (-007H)
+ JP L6340
+
+L6383: LD E,(HL)
+ INC HL
+ CALL INDRCT
+ LD A,E
+ OR A
+ JR Z,L63A0 ; (+014H)
+ PUSH BC
+ LD BC,(STRST)
+ ADD HL,BC
+ POP BC
+L6393: LD A,(HL)
+ LD (BC),A
+ INC BC
+ INC HL
+ DEC E
+ JR Z,L63A4 ; (+00aH)
+ DEC D
+ JR NZ,L6393 ; (-00aH)
+ JP L6340
+
+L63A0: LD A,020H
+ LD (BC),A
+ INC BC
+L63A4: DEC D
+ JR NZ,L63A0 ; (-007H)
+ JP L6340
+
+L63AA: CALL CHKACC
+ INC B
+ LD HL,L2326
+ DEC HL
+ RET Z
+ LD E,A
+ CP 02AH
+ JR Z,L63CD ; (+015H)
+ CALL L65AA
+ JR Z,L63CD ; (+010H)
+ CP 02EH
+ LD E,023H
+ JR Z,L63CD ; (+00aH)
+ CP 0C4H
+ RET NZ
+ INC HL
+ LD A,(HL)
+ OR A
+ JP Z,04AECH
+ RET
+
+L63CD: INC HL
+ LD A,(HL)
+ CP E
+ DEC HL
+ LD A,(HL)
+ RET
+
+L63D3: XOR A
+ LD (0651AH),A
+ LD (0656AH),A
+ LD (L6552),A
+ LD (06510H),A
+ LD (064CAH),A
+ LD (064F7H),A
+ LD (06515H),A
+ LD (064C3H),A
+ DEC A
+ LD (064C0H),A
+ EX AF,AF'
+ LD D,000H
+ CP 023H
+ JP Z,L642F
+ CP 02AH
+ JP Z,L6410
+ CALL L65AA
+ JP Z,L6421
+ CP 02EH
+ JP Z,L6431
+ CP 02BH
+ JP Z,L642A
+ JP 04AEFH
+
+L6410: LD A,001H
+ LD (0656AH),A
+ INC HL
+ INC D
+ INC HL
+ INC D
+ LD A,(HL)
+ CALL L65AA
+ JR NZ,L6431 ; (+012H)
+ JR L6423 ; (+002H)
+
+L6421: INC HL
+ INC D
+L6423: INC HL
+ INC D
+ LD (L6552),A
+ JR L6431 ; (+007H)
+
+L642A: LD A,001H
+ LD (0651AH),A
+L642F: INC HL
+ INC D
+L6431: EX DE,HL
+ DEC H
+L6433: INC H
+ LD A,(DE)
+ INC DE
+ CP 023H
+ JR Z,L6433 ; (-007H)
+ CP 02CH
+ JR NZ,L6445 ; (+007H)
+ LD A,001H
+ LD (064CAH),A
+ JR L6433 ; (-012H)
+
+L6445: CP 02EH
+ JR Z,L646C ; (+023H)
+ CP 02DH
+ JR NZ,L6455 ; (+008H)
+ LD A,001H
+ LD (06510H),A
+ INC DE
+ JR L6465 ; (+010H)
+
+L6455: CP 02BH
+ JR NZ,L6465 ; (+00cH)
+ LD A,(0651AH)
+ OR A
+ JR NZ,L6465 ; (+006H)
+ LD A,001H
+ LD (06515H),A
+ INC DE
+L6465: DEC DE
+ LD A,H
+ LD (064F7H),A
+ JR L649F ; (+033H)
+
+L646C: LD A,H
+ LD (064F7H),A
+ LD H,0FFH
+L6472: INC H
+ LD A,(DE)
+ INC DE
+ CP 023H
+ JR Z,L6472 ; (-007H)
+ CP 02DH
+ JR NZ,L6485 ; (+008H)
+ LD A,001H
+ LD (06510H),A
+ INC DE
+ JR L6495 ; (+010H)
+
+L6485: CP 02BH
+ JR NZ,L6495 ; (+00cH)
+ LD A,(0651AH)
+ OR A
+ JR NZ,L6495 ; (+006H)
+ LD A,001H
+ LD (06515H),A
+ INC DE
+L6495: DEC DE
+ LD A,H
+ LD (064C0H),A
+ JR L649F ; (+003H)
+
+L649C: POP DE
+ JR L64B1 ; (+012H)
+
+L649F: LD H,004H
+ PUSH DE
+L64A2: LD A,(DE)
+ INC DE
+ CP 05EH
+ JR NZ,L649C ; (-00cH)
+ DEC H
+ JR NZ,L64A2 ; (-009H)
+ POP AF
+ LD A,001H
+ LD (064C3H),A
+L64B1: POP HL
+ PUSH DE
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ LD (06547H),A
+ LD A,(064F7H)
+ LD D,A
+ LD A,000H
+ LD E,A
+ LD A,000H
+ PUSH BC
+ CALL L65BC
+ POP BC
+ LD A,000H
+ OR A
+ JR Z,L650F ; (+041H)
+ PUSH BC
+ PUSH DE
+ LD A,(064F7H)
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ LD DE,L8495
+ LD C,000H
+ DEC HL
+L64DD: LD B,003H
+L64DF: LD A,(HL)
+ CP 020H
+ JR Z,L64F6 ; (+012H)
+ INC C
+ LD (DE),A
+ INC DE
+ DEC HL
+ DJNZ L64DF ; (-00bH)
+ LD A,(HL)
+ CP 020H
+ JR Z,L64F6 ; (+007H)
+ LD A,02CH
+ LD (DE),A
+ INC DE
+ INC C
+ JR L64DD ; (-019H)
+
+L64F6: LD A,000H
+ CP C
+ JP C,04AE9H
+ LD B,C
+ LD L,A
+ LD H,000H
+ POP DE
+ PUSH DE
+ ADD HL,DE
+ LD DE,L8495
+ DEC HL
+L6507: LD A,(DE)
+ LD (HL),A
+ DEC HL
+ INC DE
+ DJNZ L6507 ; (-006H)
+ POP DE
+ POP BC
+L650F: LD A,000H
+ OR A
+ JR NZ,L6551 ; (+03dH)
+ LD A,000H
+ OR A
+ JR NZ,L6551 ; (+038H)
+ LD A,000H
+ OR A
+ JR NZ,L6546 ; (+028H)
+ LD A,(06547H)
+ RLCA
+ JR NC,L6551 ; (+02dH)
+ LD A,(DE)
+ CP 020H
+ LD H,02DH
+ JR Z,L6530 ; (+005H)
+ CP 030H
+ JP NZ,04AE9H
+L6530: PUSH DE
+L6531: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L6531 ; (-006H)
+ CP 030H
+ JR Z,L6531 ; (-00aH)
+ OR A
+ JR NZ,L653F ; (+001H)
+ DEC DE
+L653F: DEC DE
+ DEC DE
+ LD A,H
+ LD (DE),A
+ POP DE
+ JR L6551 ; (+00bH)
+
+L6546: LD A,000H
+ RLCA
+ LD H,02BH
+ JR NC,L6530 ; (-01dH)
+ LD H,02DH
+ JR L6530 ; (-021H)
+
+L6551: DB 03EH
+L6552: NOP
+ OR A
+ JR Z,L6569 ; (+013H)
+ LD A,(DE)
+ CP 020H
+ JR NZ,L6569 ; (+00eH)
+ PUSH DE
+L655C: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L655C ; (-006H)
+ DEC DE
+ DEC DE
+ LD A,(L6552)
+ LD (DE),A
+ POP DE
+L6569: LD A,000H
+ OR A
+ JR Z,L657B ; (+00dH)
+ PUSH DE
+L656F: LD A,(DE)
+ CP 020H
+ JR NZ,L657A ; (+006H)
+ LD A,02AH
+ LD (DE),A
+ INC DE
+ JR L656F ; (-00bH)
+
+L657A: POP DE
+L657B: LD A,(DE)
+ OR A
+ JR Z,L6584 ; (+005H)
+ LD (BC),A
+ INC BC
+ INC DE
+ JR L657B ; (-009H)
+
+L6584: LD A,(06515H)
+ OR A
+ JR Z,L6598 ; (+00eH)
+ LD A,(06547H)
+ RLCA
+ LD A,02BH
+L6590: JR NC,L6594 ; (+002H)
+ LD A,02DH
+L6594: LD (BC),A
+ INC BC
+ JR L65A6 ; (+00eH)
+
+L6598: LD A,(06510H)
+ OR A
+ JR Z,L65A6 ; (+008H)
+ LD A,(06547H)
+ RLCA
+ LD A,020H
+ JR L6590 ; (-016H)
+
+L65A6: POP HL
+ JP L6342
+
+L65AA: PUSH HL
+ LD HL,L0036
+ BIT 6,(HL)
+ POP HL
+ JR NZ,L65B6 ; (+003H)
+ CP 07DH
+ RET
+
+L65B6: CP FDPD
+ RET Z
+ CP 024H
+ RET
+
+L65BC: OR A
+ JP Z,L6647
+ PUSH DE
+ LD A,(HL)
+ OR A
+ JR Z,L6604 ; (+03fH)
+ PUSH HL
+ LD A,D
+ LD DE,L84D0
+ PUSH AF
+ CALL L5E8E
+ POP AF
+ OR A
+ JR Z,L65DD ; (+00bH)
+ LD B,A
+ LD HL,L84D0
+ JR L65DB ; (+003H)
+
+L65D8: CALL L60A8
+L65DB: DJNZ L65D8 ; (-005H)
+L65DD: POP HL
+ LD B,000H
+L65E0: LD DE,L84D0
+ CALL L6047
+ JR C,L65EE ; (+006H)
+ CALL L5FFC
+ INC B
+ JR L65E0 ; (-00eH)
+
+L65EE: PUSH HL
+ LD HL,L84D0
+ CALL L5FFC
+ POP HL
+L65F6: LD DE,L84D0
+ CALL L6047
+ JR NC,L6604 ; (+006H)
+ CALL L60A8
+ DEC B
+ JR L65F6 ; (-00eH)
+
+L6604: POP DE
+ PUSH BC
+ CALL L6661
+ POP BC
+ PUSH DE
+ LD A,(DE)
+ CP 02EH
+ JR NZ,L6622 ; (+012H)
+ LD DE,L84A5
+ DEC DE
+ LD A,(DE)
+ CP 031H
+ POP DE
+ PUSH DE
+ JR NZ,L663E ; (+023H)
+ EX DE,HL
+ INC HL
+ LD (HL),031H
+ DEC HL
+ JR L663C ; (+01aH)
+
+L6622: LD A,(DE)
+ CP 031H
+ JR NZ,L663E ; (+017H)
+ EX DE,HL
+ INC HL
+ LD A,(HL)
+ DEC HL
+ CP 02EH
+ LD A,030H
+ JR Z,L6633 ; (+002H)
+ LD A,020H
+L6633: LD (HL),A
+L6634: INC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L6634 ; (-006H)
+ LD (HL),031H
+L663C: EX DE,HL
+ INC B
+L663E: LD A,(DE)
+ INC DE
+ OR A
+ JR NZ,L663E ; (-005H)
+ DEC DE
+ JP L615A
+
+L6647: PUSH DE
+ CALL L6661
+ POP AF
+ OR A
+ RET NZ
+ PUSH HL
+ LD HL,L84A5
+ DEC HL
+ LD A,030H
+ CP (HL)
+L6656: JP NZ,04AE9H
+ DEC HL
+ LD A,020H
+ CP (HL)
+ JR NZ,L6656 ; (-009H)
+ POP HL
+ RET
+
+L6661: PUSH DE
+ CALL L61AB
+ JP C,04AE9H
+ POP HL
+ PUSH HL
+ LD H,000H
+ INC L
+ JR Z,L6670 ; (+001H)
+ DEC L
+L6670: LD DE,L84A6
+ ADD HL,DE
+ LD A,(HL)
+ LD (HL),000H
+ LD DE,L3036
+ CP 035H
+ JR C,L668D ; (+00fH)
+L667E: DEC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L667E ; (-006H)
+ INC A
+ JP Z,04AE9H
+ LD (HL),A
+ CP 03AH
+ JR Z,06678H ; (-015H)
+L668D: LD HL,L11A3
+ LD DE,L2000
+L6693: LD (HL),D
+ INC HL
+ DEC E
+ JR NZ,L6693 ; (-005H)
+ POP HL
+ PUSH HL
+ LD E,H
+ LD D,000H
+ LD HL,L11A4
+ ADD HL,DE
+ PUSH HL
+ LD HL,L849C
+ LD (HL),020H
+ INC HL
+ LD D,007H
+L66AA: LD A,(HL)
+ CP 030H
+ JR NZ,L66B5 ; (+006H)
+ LD (HL),020H
+ INC HL
+ DEC D
+ JR NZ,L66AA ; (-00bH)
+L66B5: POP HL
+ PUSH HL
+ LD B,E
+ LD A,B
+ OR A
+ JR Z,L66D3 ; (+017H)
+ LD DE,L84A5
+L66BF: DEC HL
+ DEC DE
+ LD A,(DE)
+ LD (HL),A
+ CP 020H
+ JR Z,L66D3 ; (+00cH)
+ DJNZ L66BF ; (-00aH)
+ DEC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L66D3 ; (+004H)
+ INC A
+ JP NZ,04AE9H
+L66D3: POP HL
+ POP DE
+ INC E
+ JR Z,L66E7 ; (+00fH)
+ LD B,E
+ LD DE,L84A6
+ LD (HL),02EH
+L66DE: INC HL
+ DEC B
+ JR Z,L66E7 ; (+005H)
+ LD A,(DE)
+ INC DE
+ LD (HL),A
+ JR L66DE ; (-009H)
+
+L66E7: LD (HL),000H
+ LD DE,L11A4
+ RET
+
+L66ED: PUSH DE
+ PUSH BC
+ LD C,000H
+ DEC DE
+L66F2: INC DE
+L66F3: CALL L6873
+ OR A
+ JR Z,L672A ; (+031H)
+ CP 0FFH
+ JR Z,L672E ; (+031H)
+ CP 060H
+ JP NC,L4AE6
+ CP 020H
+ JR C,L66F2 ; (-014H)
+ LD IX,L66F3
+ PUSH IX
+ CP 022H
+ JR Z,L6749 ; (+039H)
+ CP 027H
+ JR Z,L673C ; (+028H)
+ CP 03FH
+ JR Z,L6735 ; (+01dH)
+ CP 02EH
+ JP Z,L6896
+ CP 024H
+ JP Z,L68B0
+ CALL L5EC2
+ JR C,L6771 ; (+04aH)
+ JP L687D
+
+L672A: LD (HL),A
+ POP BC
+ POP DE
+ RET
+
+L672E: LD (HL),LSE4
+ CALL L6755
+ JR L66F3 ; (-042H)
+
+L6735: LD A,08FH
+ CALL L6754
+ JR L67AC ; (+070H)
+
+L673C: LD (HL),03AH
+ CALL L6755
+ LD (HL),027H
+ CALL L6756
+ JP L6813
+
+L6749: LD (HL),A
+ CALL L6755
+L674D: LD A,(DE)
+ OR A
+ RET Z
+ CP 022H
+ JR NZ,L6749 ; (-00bH)
+L6754: LD (HL),A
+L6755: INC DE
+L6756: INC HL
+L6757: INC C
+ RET NZ
+ JP 04AFBH
+
+L675C: POP BC
+ LD A,(DE)
+ CALL L5EC9
+ JR C,L6754 ; (-00fH)
+L6763: CALL L6754
+ LD A,(DE)
+ CP 024H
+ JR Z,L6754 ; (-017H)
+ CALL L5EC2
+ RET C
+ JR L6763 ; (-00eH)
+
+L6771: PUSH BC
+ LD BC,L4167
+ CALL L6822
+ JR NC,L67A8 ; (+02eH)
+ LD BC,L42FE
+ CALL L6822
+ LD C,0FEH
+ JR NC,L678E ; (+00aH)
+ LD BC,L4356
+ CALL L6822
+ LD C,0FFH
+ JR C,L675C ; (-032H)
+L678E: LD (HL),C
+ INC HL
+ LD (HL),A
+ POP BC
+ CALL L6757
+ CALL L6756
+ CP 0B4H
+ RET NZ
+ CALL L6873
+ CP 03DH
+ RET NZ
+ LD (HL),QDPC
+ CALL L6755
+ JR L67E8 ; (+040H)
+
+L67A8: POP BC
+ CALL L6756
+L67AC: CP 097H
+ JR Z,L6813 ; (+063H)
+ CP 094H
+ JR Z,L6813 ; (+05fH)
+ CP 0C2H
+ JR Z,L6809 ; (+051H)
+ CP LSE2
+ JR Z,L67E8 ; (+02cH)
+ CP LSE0
+ RET NC
+ PUSH AF
+ CALL L6873
+ CP 02FH
+ JR NZ,L67D4 ; (+00dH)
+ LD (HL),FDPD
+ CALL L6755
+ CALL L6A15
+ CALL L6754
+ JR L67E4 ; (+010H)
+
+L67D4: CP 023H
+ JR NZ,L67E4 ; (+00cH)
+ CALL L6754
+ CALL L6A15
+ CALL L5EC2
+ CALL NC,L687D
+L67E4: POP AF
+ CP 08DH
+ RET NC
+L67E8: CALL L6873
+ CP 022H
+ JR NZ,L67F4 ; (+005H)
+ CALL L6749
+ JR L67E8 ; (-00cH)
+
+L67F4: CP 02CH
+ RET C
+ CP 02FH
+ JR C,L6804 ; (+009H)
+ CALL L5EC2
+ RET C
+ CALL L68A7
+ JR L67E8 ; (-01cH)
+
+L6804: CALL L6754
+ JR L67E8 ; (-021H)
+
+L6809: DB 02BH
+ LD (HL),03AH
+ INC HL
+ LD (HL),A
+ CALL L6756
+ JR L67E8 ; (-02bH)
+
+L6813: LD A,(DE)
+ CALL L414D
+ RET Z
+ CALL L6754
+ CP 022H
+ CALL Z,L674D
+ JR L6813 ; (-00fH)
+
+L6822: PUSH HL
+ PUSH DE
+ LD H,B
+ LD L,C
+ LD B,07FH
+L6828: POP DE
+ PUSH DE
+ INC B
+ LD A,(HL)
+ CP 0FFH
+ JR NZ,L6834 ; (+004H)
+ POP DE
+ POP HL
+ SCF
+ RET
+
+L6834: CP 02EH
+ JR NZ,L6841 ; (+009H)
+ INC HL
+ DEC DE
+ LD A,(DE)
+ INC DE
+ CALL L5EC9
+ JR NC,L6860 ; (+01fH)
+L6841: LD A,(DE)
+ CP 020H
+ JR NZ,L6852 ; (+00cH)
+ LD A,(HL)
+ AND 07FH
+ SUB 041H
+ CP 01AH
+ JR C,L6860 ; (+011H)
+ CALL L6A14
+L6852: LD C,(HL)
+ INC HL
+ INC DE
+ CP 02EH
+ JR Z,L6868 ; (+00fH)
+ SUB C
+ JR Z,L6841 ; (-01bH)
+ CP 080H
+ JR Z,L686E ; (+00eH)
+L6860: DEC HL
+L6861: BIT 7,(HL)
+ INC HL
+ JR Z,L6861 ; (-005H)
+ JR L6828 ; (-040H)
+
+L6868: LD A,B
+ CP 0E8H
+ JR NC,L6860 ; (-00dH)
+ CCF
+L686E: POP HL
+ POP HL
+ LD (HL),B
+ LD A,B
+ RET
+
+L6873: LD A,(DE)
+ CP 020H
+ RET NZ
+ LD (HL),A
+ CALL L6755
+ JR L6873 ; (-00aH)
+
+L687D: EX AF,AF'
+ PUSH DE
+ CALL L6A14
+ POP DE
+ CALL L5EC2
+ JR NC,L6896 ; (+00eH)
+ CP 02EH
+ JR Z,L6896 ; (+00aH)
+ CP 045H
+ JR Z,L6896 ; (+006H)
+ EX AF,AF'
+ SUB 02FH
+ JP L6896
+
+L6896: PUSH BC
+ LD (HL),015H
+ INC HL
+ PUSH HL
+ CALL L5EDA
+ POP HL
+ LD BC,00005H
+ ADD HL,BC
+ LD A,006H
+ JR L68CA ; (+023H)
+
+L68A7: PUSH BC
+ CALL L6A09
+ LD (HL),00BH
+ INC HL
+ JR L68C4 ; (+014H)
+
+L68B0: LD (HL),A
+ INC DE
+ LD A,(DE)
+ RST 018H
+ DB 015H
+ JP C,L6756
+ PUSH BC
+ LD (HL),011H
+ INC HL
+ PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 014H
+ LD B,D
+ LD C,E
+ EX DE,HL
+ POP HL
+L68C4: LD A,003H
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+L68CA: POP BC
+ ADD A,C
+ JP C,04AFBH
+ LD C,A
+L68D0: DEC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L68D0 ; (-006H)
+ INC DE
+ RET
+
+L68D8: PUSH HL
+ PUSH DE
+ PUSH BC
+ EXX
+ LD B,000H
+ EXX
+ LD C,000H
+L68E1: LD A,(HL)
+ OR A
+ JR Z,L6915 ; (+030H)
+ LD BC,L68E1
+ PUSH BC
+ CP 027H
+ JR Z,L692F ; (+042H)
+ INC HL
+ LD BC,L4167
+ CP 020H
+ JR C,L6957 ; (+062H)
+ CP 022H
+ JR Z,L6940 ; (+047H)
+ CP 03AH
+ JR Z,L694D ; (+050H)
+ CP 097H
+ JR Z,L692B ; (+02aH)
+ CP 094H
+ JR Z,L692B ; (+026H)
+ CP LSE4
+ JR Z,L691A ; (+011H)
+ CP 0FEH
+ JR NC,L691F ; (+012H)
+ CP 080H
+ JP NC,L699B
+ JP L69B8
+
+L6915: LD (DE),A
+ POP BC
+ POP DE
+ POP HL
+ RET
+
+L691A: LD A,0FFH
+ JP L69B8
+
+L691F: LD BC,L4356
+ JR NZ,L6927 ; (+003H)
+ LD BC,L42FE
+L6927: LD A,(HL)
+ INC HL
+ JR L699B ; (+070H)
+
+L692B: CALL L699B
+ RET Z
+L692F: LD A,(HL)
+ CALL L414D
+ RET Z
+ CALL L69B8
+ LD A,(HL)
+ INC HL
+ CP 022H
+ CALL Z,L6943
+ JR L692F ; (-011H)
+
+L6940: CALL L69B8
+L6943: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ JR NZ,L6940 ; (-00bH)
+ JR L69B8 ; (+06bH)
+
+L694D: LD (DE),A
+ LD A,(HL)
+ CP 0C2H
+ RET Z
+ CP 027H
+ RET Z
+ JR L69BB ; (+064H)
+
+L6957: CP 015H
+ JR Z,L698B ; (+030H)
+ CP 00BH
+ JR NC,L6964 ; (+005H)
+ DEC A
+ OR 030H
+ JR L69B8 ; (+054H)
+
+L6964: PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ PUSH HL
+ CP 012H
+ JR Z,L697A ; (+00cH)
+ CP 00CH
+ JR C,L697A ; (+008H)
+ JR NZ,L69C7 ; (+053H)
+ EX DE,HL
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L697A: EX DE,HL
+ CALL L5E64
+ LD B,D
+ LD C,E
+ POP HL
+ POP DE
+L6982: LD A,(BC)
+ OR A
+ RET Z
+ CALL L69B8
+ INC BC
+ JR L6982 ; (-009H)
+
+L698B: PUSH HL
+ PUSH DE
+ CALL L6219
+ LD B,D
+ LD C,E
+ POP DE
+ POP HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ JR L6982 ; (-019H)
+
+L699B: CP 080H
+ JR Z,L69A9 ; (+00aH)
+ EX AF,AF'
+L69A0: LD A,(BC)
+ RLCA
+ INC BC
+ JR NC,L69A0 ; (-005H)
+ EX AF,AF'
+ DEC A
+ JR L699B ; (-00eH)
+
+L69A9: LD A,(BC)
+ BIT 7,A
+ JR NZ,L69B6 ; (+008H)
+ CP 02EH
+ CALL NZ,L69B8
+ INC BC
+ JR L69A9 ; (-00dH)
+
+L69B6: AND 07FH
+L69B8: LD (DE),A
+ OR A
+ RET Z
+L69BB: INC DE
+ EXX
+ INC B
+ EXX
+ RET NZ
+ XOR A
+ LD (DE),A
+ DEC DE
+ EXX
+ DEC B
+ EXX
+ RET
+
+L69C7: LD A,024H
+ EX AF,AF'
+ EX DE,HL
+ CALL L69D8
+ LD B,D
+ LD C,E
+ POP HL
+ POP DE
+ EX AF,AF'
+ CALL L69B8
+ JR L6982 ; (-056H)
+
+L69D8: LD DE,L84A1
+ PUSH DE
+ LD A,H
+ CALL L69F1
+ LD A,L
+ CALL L69F1
+ XOR A
+ LD (DE),A
+ POP DE
+ LD B,003H
+L69E9: LD A,(DE)
+ CP 030H
+ RET NZ
+ INC DE
+ DJNZ L69E9 ; (-007H)
+ RET
+
+L69F1: PUSH AF
+ RRCA
+ RRCA
+ RRCA
+ RRCA
+ AND 00FH
+ CALL L69FE
+ POP AF
+ AND 00FH
+L69FE: ADD A,030H
+ CP 03AH
+ JR C,L6A06 ; (+002H)
+ ADD A,007H
+L6A06: LD (DE),A
+ INC DE
+ RET
+
+L6A09: PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 013H
+ LD B,D
+ LD C,E
+ EX DE,HL
+ POP HL
+ JP L68D0
+
+L6A14: INC DE
+L6A15: LD A,(DE)
+ CP 020H
+ JR Z,L6A14 ; (-006H)
+ RET
+
+L6A1B: LD C,(HL)
+L6A1C: CALL L6A24
+ XOR A
+ LD (L1095),A
+ RET
+
+L6A24: LD A,(L004D)
+ OR A
+ JP NZ,L4B36
+ CALL TEST1
+ DB 047H
+ JR Z,L6A74 ; (+043H)
+ CALL TESTX
+ DB 054H
+ LD A,001H
+ LD (L1097),A
+ CALL TEST1
+ DB 04EH
+ JR Z,L6A4A ; (+00aH)
+ CALL TEST1
+ DB 04CH
+ JR Z,L6A4A ; (+004H)
+ CALL TESTX
+ DB 053H
+L6A4A: LD (L6A1B),A
+ CALL L5E46
+ CALL L6A6C
+L6A53: LD A,001H
+ RST 018H
+ DB 006H
+ LD A,(L6A1B)
+ CP 04EH
+ RET Z
+ CP 04CH
+ LD A,00BH
+ JR Z,L6A69 ; (+006H)
+ LD A,009H
+ RST 018H
+ DB 006H
+ RST 018H
+ DB 006H
+L6A69: RST 018H
+ DB 006H
+ RET
+
+L6A6C: LD A,00AH
+ RST 018H
+ DB 006H
+ LD A,003H
+ JR L6A69 ; (-00bH)
+
+L6A74: INC HL
+ CALL L5E46
+ LD A,002H
+ LD (L1097),A
+ JR L6A69 ; (-016H)
+
+L6A7F: CALL L6ABE
+ CALL L6E57
+ LD A,E
+ OR A
+ RET Z
+ CP 0ECH
+ JR NC,L6A91 ; (+005H)
+ CP 015H
+ JP NC,04AECH
+L6A91: CALL L5E46
+ BIT 7,E
+ JR NZ,L6AA0 ; (+008H)
+L6A98: LD A,00AH
+ RST 018H
+ DB 006H
+ DEC E
+ JR NZ,L6A98 ; (-007H)
+ RET
+
+L6AA0: LD A,003H
+ RST 018H
+ DB 006H
+ INC E
+ JR NZ,L6AA0 ; (-007H)
+ RET
+
+L6AA8: PUSH HL
+ LD HL,L03E7
+ JR L6AB2 ; (+004H)
+
+L6AAE: PUSH HL
+ LD HL,L01E0
+L6AB2: PUSH HL
+ ADD HL,DE
+ POP HL
+ JR C,L6ABC ; (+005H)
+ SBC HL,DE
+ JP C,04AECH
+L6ABC: POP HL
+ RET
+
+L6ABE: LD B,001H
+ JR L6AC4 ; (+002H)
+
+L6AC2: LD B,002H
+L6AC4: LD A,(L1097)
+ CP B
+ RET Z
+ JP L4B36
+
+L6ACC: LD C,044H
+ LD DE,04A0EH
+ LD DE,04D0EH
+ LD DE,0520EH
+ CALL L6AC2
+ LD A,C
+ LD (06B1EH),A
+ CP 04DH
+ JR NC,L6B04 ; (+022H)
+ CALL TEST1
+ DB 025H
+ JR NZ,L6B04 ; (+01cH)
+ CALL L6E43
+ LD A,E
+ DEC A
+ CP 010H
+ JP NC,04AECH
+ DEC DE
+ LD A,04CH
+ RST 018H
+ DB 006H
+ CALL L6DDA
+ CALL L6B60
+ CALL L414A
+ RET Z
+ CALL L5E71
+L6B04: CALL L6E57
+ CALL L5E71
+ CALL L6AAE
+ PUSH DE
+ CALL L6E57
+ CP 02CH
+ JR Z,L6B18 ; (+003H)
+ CALL L5E46
+L6B18: CALL L6AA8
+ POP BC
+ PUSH DE
+ LD A,000H
+ RST 018H
+ DB 006H
+ LD E,C
+ LD D,B
+ CALL L6DDA
+ CALL L6B64
+ POP DE
+ CALL L6DDA
+ CALL L6B60
+ CALL L414A
+ RET Z
+ INC HL
+ JR L6B04 ; (-033H)
+
+L6B37: CALL L6E43
+ LD A,E
+ CP 004H
+ JP NC,04AECH
+ CALL L5E46
+ LD A,(L1097)
+ CP 002H
+ JR Z,L6B57 ; (+00dH)
+ CALL L6A6C
+ LD A,002H
+ RST 018H
+ DB 006H
+ CALL L6B57
+ JP L6A53
+
+L6B57: LD A,043H
+ RST 018H
+ DB 006H
+ LD A,E
+ OR 030H
+ RST 018H
+ DB 006H
+L6B60: LD A,00DH
+ JR L6B66 ; (+002H)
+
+L6B64: LD A,02CH
+L6B66: RST 018H
+ DB 006H
+ RET
+
+L6B69: CALL L6AC2
+ CALL L5E46
+ LD A,048H
+ JR L6B66 ; (-00dH)
+
+L6B73: CALL L6AC2
+ CALL L5E46
+ LD A,049H
+ JR L6B66 ; (-017H)
+
+L6B7D: CALL L6AC2
+ CALL TEST1
+ DB 05BH
+ JR NZ,L6BBE ; (+038H)
+ CALL L6E43
+ CP 040H
+ JP NC,04AECH
+ PUSH DE
+ CALL L5E6E
+ CALL L6E43
+ CP 004H
+ JP NC,04AECH
+ PUSH DE
+ CALL TESTX
+ DB 05DH
+ POP BC
+ POP DE
+ PUSH BC
+ LD A,053H
+ RST 018H
+ DB 006H
+ CALL L6DDA
+ CALL L6B64
+ POP DE
+ LD A,051H
+ RST 018H
+ DB 006H
+ CALL L6DDA
+ CALL L6B60
+ CALL L414A
+ RET Z
+ CALL L5E71
+L6BBE: CALL L6E67
+ CALL L414A
+ JR Z,L6BCA ; (+004H)
+ CALL L5E71
+ DEC HL
+L6BCA: LD A,B
+ OR A
+ JR Z,L6BDB ; (+00dH)
+ LD A,050H
+ RST 018H
+ DB 006H
+L6BD2: LD A,(DE)
+ RST 018H
+ DB 006H
+ INC DE
+ DJNZ L6BD2 ; (-006H)
+ CALL L6B60
+L6BDB: CALL L414A
+ RET Z
+ INC HL
+ JR L6BBE ; (-024H)
+
+L6BE2: CALL L6AC2
+ CALL L6E43
+ CP 002H
+ JP NC,04AECH
+ PUSH AF
+ CALL L5E6E
+ CALL L6E57
+ PUSH DE
+ CALL L5E71
+ CALL L6E43
+ OR A
+ JP Z,04AECH
+ CALL L5E46
+ LD A,058H
+ RST 018H
+ DB 006H
+ POP BC
+ POP AF
+ PUSH DE
+ PUSH BC
+ OR 030H
+ RST 018H
+ DB 006H
+ CALL L6B64
+ POP DE
+ CALL L6AA8
+ CALL L6DDA
+ CALL L6B64
+ POP DE
+ CALL L6DDA
+ JP L6B60
+
+L6C22: CALL L6AC2
+ PUSH HL
+ LD DE,L0000
+ LD HL,L6DBC
+ CALL L5E97
+ LD DE,L0168
+ LD HL,L6DC1
+ CALL L5E97
+ LD HL,L610B
+ LD DE,L6DC6
+ CALL L5E91
+ POP HL
+ CALL L6E82
+ CALL L5E71
+ PUSH HL
+ LD HL,L6DAD
+ EX DE,HL
+ CALL L5E91
+ POP HL
+ CALL L6E82
+ CALL L5E71
+ PUSH HL
+ LD HL,L6DB2
+ EX DE,HL
+ CALL L5E91
+ POP HL
+ CALL L6E82
+ PUSH HL
+ PUSH AF
+ LD HL,L6DB7
+ EX DE,HL
+ CALL L5E91
+ LD A,(06DB8H)
+ RLCA
+ JP C,04AECH
+ POP AF
+ CP 02CH
+ JR NZ,L6CB2 ; (+03aH)
+ POP HL
+ INC HL
+ CALL L6E82
+ PUSH HL
+ PUSH AF
+ LD HL,L6DBC
+ EX DE,HL
+ CALL L5E91
+ POP AF
+ CP 02CH
+ JR NZ,L6CB2 ; (+027H)
+ POP HL
+ INC HL
+ CALL L6E82
+ PUSH HL
+ PUSH AF
+ LD HL,L6DC1
+ EX DE,HL
+ CALL L5E91
+ POP AF
+ CP 02CH
+ JR NZ,L6CB2 ; (+014H)
+ POP HL
+ INC HL
+ CALL L6E82
+ PUSH HL
+ LD HL,L6DC6
+ EX DE,HL
+ CALL L5E91
+ LD A,(06DC7H)
+ RLCA
+ JP C,04AECH
+L6CB2: POP HL
+ CALL L5E46
+ PUSH HL
+ LD HL,L6DC1
+ LD DE,L6DBC
+ LD A,(L6DC6)
+ OR A
+ CALL NZ,L7A15
+ JP C,04AECH
+ CALL L6D63
+ LD HL,L6DCB
+ LD (06D3BH),HL
+ LD HL,L6DD0
+ LD (06D46H),HL
+ CALL 06D37H
+ LD A,(L6DC6)
+ OR A
+ JR Z,L6D11 ; (+032H)
+L6CDF: LD HL,L6DBC
+ LD DE,L6DC6
+ CALL L797E
+ LD DE,L6DC1
+ CALL L7A15
+ JR NC,L6CFC ; (+00cH)
+ CALL L6D63
+ CALL L6D34
+ RST 018H
+ DB 00EH
+ JR NZ,L6CDF ; (-01bH)
+ POP HL
+ RET
+
+L6CFC: CALL L6D04
+ CALL L6D34
+ POP HL
+ RET
+
+L6D04: LD HL,L6DC1
+ LD DE,L6DBC
+ LD BC,00005H
+ LDIR
+ JR L6D63 ; (+052H)
+
+L6D11: LD HL,L6DAD
+ LD (06D3BH),HL
+ LD HL,L6DB2
+ LD (06D46H),HL
+ CALL L6D34
+ CALL L6D04
+ LD HL,L6DCB
+ LD (06D3BH),HL
+ LD HL,L6DD0
+ LD (06D46H),HL
+ CALL L6D34
+ POP HL
+ RET
+
+L6D34: LD A,044H
+ LD HL,L4D3E
+ PUSH AF
+ LD HL,L6DAD
+ CALL L60B5
+ PUSH HL
+ EX DE,HL
+ CALL L6AA8
+ LD HL,L6DB2
+ CALL L60B5
+ PUSH HL
+ EX DE,HL
+ CALL L6AA8
+ POP HL
+ POP DE
+ POP AF
+ RST 018H
+ DB 006H
+ PUSH HL
+ CALL L6DDA
+ CALL L6B64
+ POP DE
+ CALL L6DDA
+ JP L6B60
+
+L6D63: LD DE,(INTFAC)
+ LD HL,L6DBC
+ CALL L5E91
+ LD HL,(L107C)
+ CALL L8175
+ CALL L7FBB
+ LD DE,L6DB7
+ CALL L7BAC
+ LD DE,L6DAD
+ CALL L797E
+ LD DE,L6DCB
+ CALL L5E91
+ LD DE,(INTFAC)
+ LD HL,L6DBC
+ CALL L5E91
+ LD HL,(L107C)
+ CALL L8175
+ CALL L7FCB
+ LD DE,L6DB7
+ CALL L7BAC
+ LD DE,L6DB2
+ CALL L797E
+ LD DE,L6DD0
+ JP L5E91
+
+L6DAD: DS 5, 000H
+L6DB2: DS 5, 000H
+L6DB7: DS 5, 000H
+L6DBC: DS 5, 000H
+L6DC1: DS 5, 000H
+L6DC6: DS 5, 000H
+L6DCB: DS 5, 000H
+L6DD0: DS 10, 000H
+L6DDA: PUSH AF
+ PUSH HL
+ LD HL,(L107C)
+ CALL L5E97
+ CALL L6026
+ RST 018H
+ DB 017H
+L6DE7: LD A,(DE)
+ RST 018H
+ DB 006H
+ INC DE
+ DJNZ L6DE7 ; (-006H)
+ POP HL
+ POP AF
+ RET
+
+L6DF0: CALL L6ABE
+ CALL L5E46
+ LD A,004H
+ RST 018H
+ DB 006H
+ RET
+
+L6DFB: CALL L6ABE
+ CALL L6E57
+ LD A,E
+ OR A
+ JP Z,04AECH
+ CP 049H
+ JP NC,04AECH
+ CALL L5E46
+ LD A,009H
+ RST 018H
+ DB 006H
+ RST 018H
+ DB 006H
+ CALL L6DDA
+ JP L6B60
+
+L6E1A: CP 09DH
+ JR Z,L6E29 ; (+00bH)
+ CP 0A1H
+ JP NZ,L4AE6
+ XOR A
+L6E24: LD (L004D),A
+ INC HL
+ RET
+
+L6E29: CALL L6ABE
+ LD A,(L6A1B)
+ CP 04EH
+ JP NZ,L4B36
+ LD A,(L004D)
+ OR A
+ JR NZ,L6E24 ; (-016H)
+ CALL L527B
+ LD A,016H
+ RST 018H
+ DB 003H
+ JR L6E24 ; (-01fH)
+
+L6E43: CALL L6E57
+L6E46: LD A,D
+ OR A
+ JP NZ,04AECH
+ LD A,E
+ RET
+
+L6E4D: CALL L6E94
+ DEC DE
+ DEC DE
+ DEC DE
+ DEC DE
+ DEC DE
+ JR L6E5A ; (+003H)
+
+L6E57: CALL L6E82
+L6E5A: PUSH AF
+ PUSH HL
+ EX DE,HL
+ CALL L7918
+ CALL L60B5
+ EX DE,HL
+ POP HL
+ POP AF
+ RET
+
+L6E67: CALL L6E82
+ PUSH AF
+ CALL L790F
+ PUSH HL
+ EX DE,HL
+ CALL L6E76
+ POP HL
+ POP AF
+ RET
+
+L6E76: LD B,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ EX DE,HL
+ LD A,B
+ RET
+
+L6E82: LD DE,(VARED)
+ LD (TMPEND),DE
+L6E8A: LD DE,(INTFAC)
+ PUSH DE
+ CALL L6E94
+ POP DE
+ RET
+
+L6E94: PUSH DE
+ LD DE,(TMPEND)
+ CALL L74E1
+ POP DE
+ CALL L6EB8
+L6EA0: CP EM_P0
+ RET NZ
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ CALL L6EB8
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL 07E5EH
+ POP HL
+ POP AF
+ JR L6EA0 ; (-018H)
+
+L6EB8: CALL L6ED3
+L6EBB: CP EM_P1
+ RET NZ
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ CALL L6ED3
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL 07E5BH
+ POP HL
+ POP AF
+ JR L6EBB ; (-018H)
+
+L6ED3: CALL L6EEE
+L6ED6: CP 0ECH
+ RET NZ
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ CALL L6EEE
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7E58
+ POP HL
+ POP AF
+ JR L6ED6 ; (-018H)
+
+L6EEE: CALL TEST1
+ DB 0EDH
+ JR NZ,L6F03 ; (+00fH)
+ CALL L6F03
+ PUSH AF
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L7E48
+ POP HL
+ POP AF
+ RET
+
+L6F03: CALL L6F6D
+L6F06: CP 0EEH
+ RET C
+ PUSH AF
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ CALL L6F6D
+ POP BC
+ EX (SP),HL
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7A15
+ EX AF,AF'
+ POP AF
+ CP 0F6H
+ JR NZ,L6F40 ; (+01eH)
+ EX AF,AF'
+ JR C,L6F3B ; (+016H)
+L6F25: LD BC,L0000
+L6F28: LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ XOR A
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ LD A,005H
+ LD (L84C7),A
+ POP AF
+ POP HL
+ JR L6F06 ; (-035H)
+
+L6F3B: LD BC,08081H
+ JR L6F28 ; (-018H)
+
+L6F40: CP QDPD
+ JR NZ,L6F4B ; (+007H)
+ EX AF,AF'
+ JR Z,L6F25 ; (-022H)
+ JR C,L6F25 ; (-024H)
+ JR L6F3B ; (-010H)
+
+L6F4B: CP QDPC
+ JR NZ,L6F54 ; (+005H)
+ EX AF,AF'
+ JR Z,L6F3B ; (-017H)
+ JR L6F25 ; (-02fH)
+
+L6F54: CP QDPA
+ JR C,L6F5D ; (+005H)
+ EX AF,AF'
+ JR NC,L6F3B ; (-020H)
+ JR L6F25 ; (-038H)
+
+L6F5D: CP LSPAL
+ JR C,L6F68 ; (+007H)
+ EX AF,AF'
+ JR Z,L6F3B ; (-029H)
+ JR C,L6F3B ; (-02bH)
+ JR L6F25 ; (-043H)
+
+L6F68: EX AF,AF'
+ JR Z,L6F25 ; (-046H)
+ JR L6F3B ; (-032H)
+
+L6F6D: CALL L6F98
+L6F70: CP 0F7H
+ RET C
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ JR Z,L6F8A ; (+010H)
+ CALL L6F98
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7975
+L6F86: POP HL
+ POP AF
+ JR L6F70 ; (-01aH)
+
+L6F8A: CALL L6F98
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L797E
+ JR L6F86 ; (-012H)
+
+L6F98: CALL L6FC3
+L6F9B: CP FDPB
+ RET C
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ JR Z,L6FB5 ; (+010H)
+ CALL L6FC3
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7EB4
+L6FB1: POP HL
+ POP AF
+ JR L6F9B ; (-01aH)
+
+L6FB5: CALL L6FC3
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7ED3
+ JR L6FB1 ; (-012H)
+
+L6FC3: CALL L6FEE
+L6FC6: CP FDPD
+ RET C
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ JR Z,L6FE0 ; (+010H)
+ CALL L6FEE
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7BAC
+L6FDC: POP HL
+ POP AF
+ JR L6FC6 ; (-01aH)
+
+L6FE0: CALL L6FEE
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7C97
+ JR L6FDC ; (-012H)
+
+L6FEE: CALL TEST1
+ DB 0F7H
+ JR Z,L6FEE ; (-006H)
+ CP FDPA
+ JR NZ,L6FFE ; (+006H)
+ INC HL
+ CALL L6FFE
+ JR L7027 ; (+029H)
+
+L6FFE: CALL L7033
+L7001: CP 0FDH
+ RET NZ
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ CALL L7019
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7DCC
+ POP HL
+ POP AF
+ JR L7001 ; (-018H)
+
+L7019: CALL TEST1
+ DB 0F7H
+ JR Z,L7019 ; (-006H)
+ CP FDPA
+ JR NZ,L7033 ; (+010H)
+ INC HL
+ CALL L7033
+L7027: PUSH AF
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L7968
+ POP HL
+ POP AF
+ RET
+
+L7033: CALL L414A
+ JP Z,L4AE6
+ CALL L703F
+ JP HLFTCH
+
+L703F: PUSH HL
+ LD HL,(L107E)
+ SCF
+ SBC HL,DE
+ JP C,04AF5H
+ POP HL
+ CP LSE4
+ JR Z,L705C ; (+00eH)
+ CP 020H
+ JR NC,L709C ; (+04aH)
+L7052: INC HL
+ CP 015H
+ JR C,L706B ; (+014H)
+ CALL L5E91
+ JR L7065 ; (+009H)
+
+L705C: INC HL
+ PUSH HL
+ LD HL,08188H
+ CALL L5E91
+ POP HL
+L7065: LD A,005H
+L7067: LD (L84C7),A
+ RET
+
+L706B: CP 00BH
+ JR NC,L7078 ; (+009H)
+ DEC A
+ JP M,L4AE6
+ LD B,000H
+ LD C,A
+ JR L7089 ; (+011H)
+
+L7078: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ CP 00CH
+ JR NZ,L7089 ; (+009H)
+ INC BC
+ INC BC
+ LD A,(BC)
+ INC BC
+ EX AF,AF'
+ LD A,(BC)
+ LD B,A
+ EX AF,AF'
+ LD C,A
+L7089: PUSH HL
+ PUSH DE
+ EX DE,HL
+ LD E,C
+ LD D,B
+ CALL L5E97
+ POP DE
+ POP HL
+ LD A,005H
+L7095: INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ JR L7067 ; (-035H)
+
+L709C: CP 022H
+ JR NZ,L70CF ; (+02fH)
+ INC HL
+ PUSH HL
+ CALL L74C9
+ EX (SP),HL
+ PUSH HL
+ LD HL,(L107A)
+ PUSH BC
+ LD BC,(STRST)
+ OR A
+ SBC HL,BC
+ POP BC
+ EX DE,HL
+ LD (HL),B
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ POP DE
+ PUSH HL
+ LD HL,(L107A)
+ CALL L74D5
+ LD (L107A),HL
+ POP DE
+ POP HL
+ LD A,003H
+ LD (L84C7),A
+ RET
+
+L70CF: CP 028H
+ JR NZ,L70DA ; (+007H)
+ INC HL
+ CALL L6E94
+ JP L5E80
+
+L70DA: OR A
+ JP P,L76EE
+ CP 0E7H
+ INC HL
+ JR NZ,L70E8 ; (+005H)
+ LD A,0A8H
+ PUSH AF
+ JR L711D ; (+035H)
+
+L70E8: CP 0FFH
+ JP NZ,L4AE6
+ LD A,(HL)
+ INC HL
+ CP 0A0H
+ JP Z,L71A0
+ CP 0C8H
+ JP NC,L4AE6
+ CP 0BAH
+ JR NC,L714D ; (+050H)
+ PUSH AF
+ CP 0B3H
+ JR NC,L713E ; (+03cH)
+ LD B,003H
+ CP 0AAH
+ JR Z,L711D ; (+015H)
+ CP 0ABH
+ JR NC,L711D ; (+011H)
+ LD B,005H
+ CP 088H
+ JR Z,L7138 ; (+026H)
+ CP 089H
+ JR NZ,L711D ; (+007H)
+ CALL TEST1
+ DB 040H
+ LD (081A1H),A
+L711D: CALL L5E76
+L7120: PUSH BC
+ CALL L6E94
+ CALL L5E80
+ POP AF
+ CALL L790B
+L712B: POP AF
+ PUSH DE
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L714D
+ POP HL
+ POP DE
+ RET
+
+L7138: CALL TEST1
+ DB 028H
+ JR Z,L7120 ; (-01eH)
+L713E: LD A,005H
+ LD (L84C7),A
+ PUSH HL
+ LD HL,L6110
+ CALL L5E91
+ POP HL
+ JR L712B ; (-022H)
+
+L714D: PUSH HL
+ ADD A,A
+ LD L,A
+ LD H,000H
+ LD BC,L4512
+ ADD HL,BC
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ EX (SP),HL
+ RET
+
+ EX DE,HL
+ LD HL,L0000
+ ADD HL,SP
+ LD BC,(TMPEND)
+ OR A
+ SBC HL,BC
+ OR A
+ LD BC,L0100
+ SBC HL,BC
+ EX DE,HL
+ JR L7181 ; (+010H)
+
+ LD A,(L0054)
+ JR L717E ; (+008H)
+
+ LD A,(00055H)
+ JR L717E ; (+003H)
+
+ LD A,(L847E)
+L717E: LD E,A
+ LD D,000H
+L7181: LD A,005H
+ LD (L84C7),A
+ JP L5E97
+
+ LD DE,(08480H)
+ CALL L5E97
+ INC HL
+ BIT 7,(HL)
+ DEC HL
+ RET Z
+ LD DE,L719B
+ JP L797E
+
+L719B: SUB C
+ NOP
+ NOP
+ NOP
+ NOP
+L71A0: CALL L5E76
+ LD BC,(TMPEND)
+ PUSH BC
+ XOR A
+ PUSH AF
+L71AA: PUSH BC
+ PUSH DE
+ CALL L6E4D
+ CALL L6E46
+ POP DE
+ POP BC
+ LD (BC),A
+ INC BC
+ LD (TMPEND),BC
+ POP AF
+ INC A
+ PUSH AF
+ CALL TEST1
+ DB 02CH
+ JR Z,L71AA ; (-019H)
+ CALL L5E80
+ PUSH BC
+ EXX
+ POP DE
+ POP AF
+ LD B,A
+ POP HL
+ CALL L74E1
+L71CF: LD (TMPEND),DE
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ PUSH HL
+ LD A,B
+ EXX
+ EX DE,HL
+ LD (HL),A
+ INC HL
+ POP BC
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ LD BC,L0003
+ ADD HL,BC
+L71E8: EX DE,HL
+ LD A,003H
+ LD (L84C7),A
+ RET
+
+ PUSH HL
+ CALL L60B5
+ CALL L69D8
+ RST 018H
+ DB 017H
+L71F8: LD A,B
+ OR A
+ JR Z,L720C ; (+010H)
+ LD HL,(L107A)
+ PUSH HL
+ PUSH BC
+ CALL L74D5
+ POP BC
+ EX DE,HL
+ POP HL
+ EXX
+ POP DE
+ EXX
+ JR L71CF ; (-03dH)
+
+L720C: POP HL
+ CALL L7960
+ JR L71E8 ; (-02aH)
+
+ PUSH HL
+ CALL L7223
+ LD B,A
+ LD C,A
+ OR A
+ LD A,020H
+ PUSH DE
+ CALL NZ,?SETDE
+ POP DE
+ LD B,C
+ JR L71F8 ; (-02bH)
+
+L7223: CALL L60B5
+ LD DE,L11A4
+ LD A,H
+ OR A
+ JP NZ,04AECH
+ LD A,L
+ RET
+
+ PUSH HL
+ CALL L6026
+ LD A,(DE)
+ CP 020H
+ JR NZ,L723A ; (+001H)
+ INC DE
+L723A: RST 018H
+ DB 017H
+ JR L71F8 ; (-046H)
+
+ CALL L5E76
+ CALL L5882
+ LD B,A
+ CALL L5E7D
+ LD A,B
+ PUSH HL
+ PUSH DE
+ RST 018H
+ DB 029H
+ LD DE,0FFFFH
+ JR C,L725A ; (+008H)
+ INC HL
+ BIT 7,(HL)
+ JR NZ,L725A ; (+003H)
+ LD DE,L0000
+L725A: POP HL
+ CALL L5E97
+ LD A,005H
+ LD (L84C7),A
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ POP HL
+ RET
+
+ PUSH HL
+ CALL L6E76
+ OR A
+ JR Z,L7273 ; (+001H)
+ LD A,(DE)
+L7273: JR L7279 ; (+004H)
+
+ PUSH HL
+ CALL L6E76
+L7279: POP HL
+ JP L717E
+
+ PUSH HL
+ CALL L6E76
+ LD HL,(L107A)
+ PUSH HL
+ CALL L74D5
+ LD (HL),000H
+ POP DE
+ POP HL
+ JP L5EDA
+
+ CALL L730B
+ CALL L5E80
+ CALL L7304
+ EX DE,HL
+ LD A,(HL)
+ CP C
+ JR NC,L729E ; (+001H)
+ LD C,A
+L729E: LD (HL),C
+ LD BC,00005H
+L72A2: LD A,003H
+ ADD HL,BC
+ EX DE,HL
+ LD (L84C7),A
+ JP HLFTCH
+
+ CALL L730B
+ CALL L5E80
+ CALL L7304
+ EX DE,HL
+ LD A,(HL)
+ SUB C
+ JR NC,L72BC ; (+002H)
+ XOR A
+ LD C,(HL)
+L72BC: LD (HL),C
+ INC HL
+ ADD A,(HL)
+ LD (HL),A
+ INC HL
+ JR NC,L72C4 ; (+001H)
+ INC (HL)
+L72C4: LD BC,L0003
+ JR L72A2 ; (-027H)
+
+ CALL L730B
+ CALL L7304
+ OR A
+ JP Z,04AECH
+ PUSH AF
+ CALL TEST1
+ DB 029H
+ LD A,0FFH
+ JR Z,L72F0 ; (+014H)
+ CALL L5E6E
+ PUSH DE
+ EX DE,HL
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ CALL L6E4D
+ CALL L5E80
+ CALL L6E46
+ POP DE
+L72F0: POP BC
+ LD C,A
+ EX DE,HL
+ LD A,(HL)
+ SUB B
+ JR C,L7300 ; (+009H)
+ INC A
+ CP C
+ JR NC,L72FC ; (+001H)
+ LD C,A
+L72FC: LD A,B
+ DEC A
+ JR L72BC ; (-044H)
+
+L7300: XOR A
+ LD C,A
+ JR L72BC ; (-048H)
+
+L7304: LD A,B
+ OR A
+ JP NZ,04AECH
+ LD A,C
+ RET
+
+L730B: CALL L5E76
+ PUSH DE
+ CALL L6E94
+ CALL L5E71
+ CALL L790F
+ CALL L6E4D
+ LD C,E
+ LD B,D
+ POP DE
+ RET
+
+ PUSH HL
+ PUSH DE
+ LD HL,(L107A)
+ PUSH HL
+ LD A,030H
+ LD B,006H
+ CALL ?SETHL
+ RST 018H
+ DB 025H
+ POP HL
+ OR A
+ JR Z,L7337 ; (+005H)
+ INC (HL)
+ INC HL
+ INC (HL)
+ INC (HL)
+ DEC HL
+L7337: EX DE,HL
+ LD BC,L8CA0
+ CALL L73AE
+ LD BC,L0E10
+ CALL L73AE
+ CP 03AH
+ JR C,L7352 ; (+00aH)
+ SUB 00AH
+ DEC DE
+ LD (DE),A
+ DEC DE
+ LD A,(DE)
+ INC A
+ LD (DE),A
+ INC DE
+ INC DE
+L7352: DEC DE
+ DEC DE
+ LD A,(DE)
+ INC DE
+ LD B,A
+ LD A,(DE)
+ INC DE
+ LD C,A
+ LD A,B
+ CP 032H
+ JR NZ,L7370 ; (+011H)
+ LD A,C
+ CP 034H
+ JR NZ,L7370 ; (+00cH)
+ LD HL,(L107A)
+ LD A,030H
+ LD B,006H
+ CALL ?SETHL
+ JR L7386 ; (+016H)
+
+L7370: LD BC,L0258
+ CALL L73AE
+ LD BC,0003CH
+ CALL L73AE
+ LD BC,0000AH
+ CALL L73AE
+ LD A,030H
+ ADD A,L
+ LD (DE),A
+L7386: LD HL,(L107A)
+ LD DE,L0006
+ EX DE,HL
+ ADD HL,DE
+ LD (L107A),HL
+ EX DE,HL
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ POP HL
+ LD (HL),006H
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ POP HL
+ LD A,003H
+ LD (L84C7),A
+ JP HLFTCH
+
+L73AE: OR A
+ SBC HL,BC
+ JR C,L73B8 ; (+005H)
+ LD A,(DE)
+ INC A
+ LD (DE),A
+ JR L73AE ; (-00aH)
+
+L73B8: ADD HL,BC
+ INC DE
+ RET
+
+L73BB: CALL TESTX
+ DB QDPC
+ CALL L6E67
+ LD A,B
+ CP 006H
+ JP NZ,04AECH
+ PUSH HL
+ PUSH DE
+ LD HL,L0000
+ CALL L73FC
+ CP 018H
+ JP NC,04AECH
+ CP 00CH
+ LD A,000H
+ JR C,L73E4 ; (+009H)
+ PUSH DE
+ LD DE,L000C
+ OR A
+ SBC HL,DE
+ POP DE
+ INC A
+L73E4: PUSH AF
+ CALL L73FC
+ CP 03CH
+ JP NC,04AECH
+ CALL L73FC
+ CP 03CH
+ JP NC,04AECH
+ POP AF
+ EX DE,HL
+ RST 018H
+ DB 026H
+ POP DE
+ POP HL
+ RET
+
+L73FC: PUSH DE
+ LD D,H
+ LD E,L
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,DE
+ LD D,H
+ LD E,L
+ ADD HL,HL
+ ADD HL,DE
+ ADD HL,HL
+ ADD HL,HL
+ POP DE
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JP C,04AECH
+ CP 00AH
+ JP NC,04AECH
+ PUSH BC
+ LD C,A
+ ADD A,A
+ ADD A,A
+ ADD A,C
+ ADD A,A
+ LD C,A
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JP C,04AECH
+ CP 00AH
+ JP NC,04AECH
+ ADD A,C
+ LD C,A
+L742A: LD B,000H
+ ADD HL,BC
+ POP BC
+ RET
+
+L742F: LD DE,(VARED)
+ LD (TMPEND),DE
+ LD DE,(INTFAC)
+L743B: PUSH DE
+ CALL L748E
+L743F: LD A,(HL)
+ CP 028H
+ JP Z,L74F4
+ PUSH HL
+ CALL L77AF
+ JR NC,L7451 ; (+006H)
+ LD A,C
+ LD C,L
+ LD B,H
+ POP HL
+ POP DE
+ RET
+
+L7451: LD A,(DE)
+ ADD A,C
+ ADD A,002H
+ PUSH BC
+ EX DE,HL
+ LD HL,(L107A)
+ PUSH HL
+ OR A
+ SBC HL,DE
+ INC HL
+ LD C,L
+ LD B,H
+ POP HL
+ PUSH DE
+ EX DE,HL
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ EX DE,HL
+ CALL L74E1
+ LDDR
+ LD E,A
+ LD D,000H
+ RST 018H
+ DB 01AH
+ POP HL
+ POP BC
+ LD DE,L11A4
+ LD (HL),C
+ INC HL
+ SCF
+ SBC A,C
+ LD B,A
+L747D: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L747D ; (-006H)
+ PUSH HL
+ LD B,C
+ CALL ?CLRHL
+ LD (HL),A
+ LD A,C
+ POP BC
+ POP HL
+ POP DE
+ RET
+
+L748E: CALL HLFTCH
+ SUB 041H
+ CP 01AH
+ JP NC,L4AE6
+ LD DE,L11A4
+ LD B,000H
+L749D: INC DE
+ LD A,(HL)
+ CALL L5EC9
+ JR C,L74AF ; (+00bH)
+ LD (DE),A
+ INC B
+ LD A,B
+ CP 003H
+ JR C,L74AC ; (+001H)
+ DEC B
+L74AC: INC HL
+ JR L749D ; (-012H)
+
+L74AF: LD DE,L11A4
+ EX DE,HL
+ LD (HL),B
+ EX DE,HL
+ LD C,005H
+ CP 024H
+ RET NZ
+ LD C,003H
+ INC HL
+ RET
+
+L74BE: LD HL,0FFFBH
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ ADD HL,DE
+ LD A,B
+ JP L790B
+
+L74C9: LD B,0FFH
+L74CB: INC B
+ LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ RET Z
+ JR L74CB ; (-00aH)
+
+L74D5: LD A,B
+ OR A
+ RET Z
+ CALL LDHLDE
+ EX DE,HL
+ CALL L74E1
+ EX DE,HL
+ RET
+
+L74E1: PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ SBC HL,DE
+ POP HL
+ RET NC
+ JP L4B26
+
+L74ED: LD DE,(INTFAC)
+ PUSH DE
+ JR L74FC ; (+008H)
+
+L74F4: XOR A
+ LD (L76ED),A
+ INC HL
+ LD (L76EB),HL
+L74FC: LD B,000H
+ EXX
+ POP HL
+ PUSH HL
+ PUSH HL
+ LD HL,(L107A)
+ LD DE,L11A4
+ PUSH HL
+ LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ LD B,A
+ CALL L74D5
+ POP DE
+ LD (L107A),HL
+ LD HL,(L1076)
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX (SP),HL
+ PUSH HL
+ EXX
+L751F: POP DE
+ PUSH DE
+ PUSH BC
+ LD BC,(076EBH)
+ LD A,(L76ED)
+ PUSH BC
+ PUSH AF
+ LD BC,(08495H)
+ PUSH BC
+ CALL L6E4D
+ BIT 7,D
+ JP NZ,04AECH
+ EX AF,AF'
+ POP BC
+ LD (08495H),BC
+ POP AF
+ LD (L76ED),A
+ POP BC
+ LD (076EBH),BC
+ EX AF,AF'
+ INC HL
+ CP 029H
+ JR Z,L7565 ; (+018H)
+ CP 02CH
+ JP NZ,L4AE6
+ POP BC
+ INC B
+ LD A,B
+ CP 004H
+ JP NC,04AECH
+ EXX
+ POP HL
+ POP DE
+ EXX
+ PUSH DE
+ EXX
+ PUSH DE
+ PUSH HL
+ EXX
+ JR L751F ; (-046H)
+
+L7565: POP BC
+ EXX
+ POP HL
+ POP DE
+ EXX
+ INC B
+ PUSH DE
+ PUSH HL
+ EXX
+ LD HL,(L1076)
+ ADD HL,DE
+ LD B,(HL)
+ INC B
+ LD DE,L11A4
+ CALL LDDEHL
+ EXX
+ SET 7,C
+ CALL L77AF
+ RES 7,C
+ JR NC,L75DA ; (+056H)
+ LD A,B
+ CP (HL)
+ JP NZ,04AF8H
+ INC HL
+ EX DE,HL
+ POP HL
+ LD (L8495),HL
+ EXX
+ LD HL,L0000
+ EXX
+ EX DE,HL
+L7595: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX (SP),HL
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C1
+ EXX
+ PUSH HL
+ OR A
+ SBC HL,DE
+ JP NC,04AECH
+ EXX
+ POP DE
+ CALL L76BD
+ EXX
+ POP HL
+ DJNZ L7595 ; (-01cH)
+ PUSH HL
+ EXX
+ LD A,C
+ LD D,B
+ BIT 6,A
+ JR NZ,L75CD ; (+014H)
+ AND 00FH
+ LD E,A
+ PUSH AF
+ CALL L76C1
+ PUSH HL
+ EXX
+ POP BC
+ POP AF
+ POP HL
+ ADD HL,BC
+ LD C,L
+ LD B,H
+L75C8: LD HL,(L8495)
+ POP DE
+ RET
+
+L75CD: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD C,L
+ LD B,H
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ AND 00FH
+ JR L75C8 ; (-012H)
+
+L75DA: EXX
+ LD A,(L76ED)
+ OR A
+ JP Z,04AECH
+ POP HL
+ LD (L8495),HL
+ EXX
+ LD DE,(TMPEND)
+ LD L,B
+ LD H,000H
+ ADD HL,HL
+ ADD HL,DE
+ EX DE,HL
+ INC DE
+ CALL L74E1
+ LD (HL),B
+ INC HL
+ EXX
+ LD HL,00001H
+ EXX
+L75FC: POP DE
+ LD A,(L76ED)
+ OR A
+ JR NZ,L760F ; (+00cH)
+ PUSH HL
+ EX DE,HL
+ LD DE,0000AH
+ SCF
+ SBC HL,DE
+ JP NC,04AECH
+ POP HL
+L760F: INC DE
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C1
+ EXX
+ DJNZ L75FC ; (-021H)
+ DB 059H
+ LD D,000H
+ PUSH BC
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C1
+ PUSH HL
+ EXX
+ POP BC
+ PUSH BC
+ EX DE,HL
+ LD HL,(L107A)
+ LD L,(HL)
+ LD H,000H
+ ADD HL,HL
+ LD A,(L11A4)
+ ADD A,005H
+ ADD A,L
+ LD L,A
+ LD A,000H
+ ADC A,H
+ LD H,A
+ JR C,L7645 ; (+005H)
+ ADD HL,BC
+ JR C,L7645 ; (+002H)
+ PUSH HL
+ ADD HL,DE
+L7645: JP C,L4B26
+ EX DE,HL
+ CALL L74E1
+ PUSH HL
+ EXX
+ POP HL
+ LD BC,(STRST)
+ DEC BC
+ OR A
+ SBC HL,BC
+ PUSH HL
+ EXX
+ POP BC
+ LDDR
+ POP DE
+ RST 018H
+ DB 01AH
+ POP BC
+ PUSH DE
+ EXX
+ POP DE
+ LD H,B
+ LD L,C
+ POP BC
+ LD A,C
+ OR 080H
+ LD (HL),A
+ INC HL
+ DEC DE
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,L11A4
+ LD A,(DE)
+ INC A
+ LD B,A
+ CALL LDHLDE
+ LD DE,(TMPEND)
+ LD A,(DE)
+ LD (HL),A
+ INC HL
+ INC DE
+ ADD A,A
+ LD B,A
+ CALL LDHLDE
+ PUSH HL
+ EXX
+ POP HL
+L7689: XOR A
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L7689 ; (-008H)
+ LD (HL),A
+ EXX
+ POP DE
+ LD A,(L76ED)
+ OR A
+ JR Z,L769E ; (+004H)
+ LD HL,(L8495)
+ RET
+
+L769E: LD HL,(L76EB)
+ PUSH DE
+ JP L74FC
+
+L76A5: LD A,0FFH
+ LD (L76ED),A
+L76AA: CALL L748E
+ LD A,(HL)
+ CALL L5E79
+ CALL L74ED
+ CALL HLFTCH
+ CP 02CH
+ RET NZ
+ INC HL
+ JR L76AA ; (-013H)
+
+L76BD: ADD HL,DE
+ RET NC
+ JR L76E8 ; (+027H)
+
+L76C1: PUSH BC
+ EX DE,HL
+ LD C,L
+ LD A,H
+ LD HL,L0000
+ CALL L76D1
+ LD A,C
+ CALL L76D1
+ POP BC
+ RET
+
+L76D1: OR A
+ JR Z,L76E2 ; (+00eH)
+ LD B,008H
+L76D6: ADD HL,HL
+ JR C,L76E8 ; (+00fH)
+ RLCA
+ JR NC,L76DF ; (+003H)
+ ADD HL,DE
+ JR C,L76E8 ; (+009H)
+L76DF: DJNZ L76D6 ; (-00bH)
+ RET
+
+L76E2: LD A,H
+ LD H,L
+ LD L,000H
+ OR A
+ RET Z
+L76E8: JP 04AECH
+
+L76EB: NOP
+ NOP
+L76ED: NOP
+L76EE: SUB 041H
+ CP 01AH
+ JP NC,L4AE6
+ LD BC,(07921H)
+ LD A,B
+ OR C
+ JR NZ,L770F ; (+012H)
+ CALL L743B
+L7700: PUSH DE
+ PUSH HL
+ LD L,C
+ LD H,B
+ LD B,A
+ LD C,A
+ CALL LDDEHL
+ POP HL
+ LD A,C
+ POP DE
+ JP L7095
+
+L770F: PUSH DE
+ CALL L748E
+ PUSH HL
+ INC B
+ LD DE,L11A4
+ LD HL,(L107A)
+ CALL L74D5
+ LD B,000H
+ LD HL,(L7921)
+ CALL HLFTCH
+ CP QDPC
+ JR Z,L7759 ; (+02fH)
+ CP 028H
+ JR NZ,L7756 ; (+028H)
+L772E: INC HL
+ INC B
+ PUSH BC
+ CALL L748E
+ LD A,C
+ POP DE
+ CP E
+ LD C,E
+ JR NZ,L774B ; (+011H)
+ PUSH DE
+ LD C,B
+ INC C
+ PUSH HL
+ LD HL,(L107A)
+ LD DE,L11A4
+ CALL L794C
+ POP HL
+ POP BC
+ JR Z,L776F ; (+024H)
+L774B: CALL HLFTCH
+ CP 029H
+ JR Z,L7759 ; (+007H)
+ CP 02CH
+ JR Z,L772E ; (-028H)
+L7756: JP L4AE6
+
+L7759: LD HL,(L107A)
+ LD DE,L11A4
+ LD A,(HL)
+ LD (DE),A
+ LD B,A
+L7762: INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ DJNZ L7762 ; (-006H)
+ POP HL
+ POP DE
+ CALL L77AB
+ JR L7700 ; (-06fH)
+
+L776F: LD HL,(L7923)
+ CALL L5E76
+ DEC B
+ JR Z,L7790 ; (+018H)
+ DEC HL
+L7779: PUSH BC
+L777A: CALL L5198
+ CALL L414A
+ JP Z,L4AE6
+ CP 029H
+ JP Z,L4AE6
+ CP 02CH
+ JR NZ,L777A ; (-012H)
+ POP BC
+ DJNZ L7779 ; (-016H)
+ INC HL
+L7790: EX DE,HL
+ POP HL
+ EX (SP),HL
+ EX DE,HL
+ LD BC,(07921H)
+ PUSH BC
+ LD BC,L0000
+ LD (07921H),BC
+ CALL L6E94
+ POP HL
+ LD (L7921),HL
+ POP HL
+ JP HLFTCH
+
+L77AB: PUSH DE
+ JP L743F
+
+L77AF: LD HL,(L1074)
+L77B2: LD DE,L11A4
+ LD A,(HL)
+ OR A
+ RET Z
+ CP 040H
+ JR NC,L77E3 ; (+027H)
+ CP C
+ JR NZ,L77D8 ; (+019H)
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77D6 ; (+012H)
+ LD B,A
+L77C5: INC DE
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77D0 ; (+005H)
+ DJNZ L77C5 ; (-008H)
+ INC HL
+ SCF
+ RET
+
+L77D0: INC HL
+ DJNZ L77D0 ; (-003H)
+ LD A,C
+ JR L77DD ; (+007H)
+
+L77D6: LD A,C
+ DEC HL
+L77D8: AND 00FH
+ INC HL
+ ADD A,(HL)
+ INC HL
+L77DD: LD E,A
+ LD D,000H
+ ADD HL,DE
+ JR L77B2 ; (-031H)
+
+L77E3: CP C
+ JR Z,L77FA ; (+014H)
+ INC HL
+L77E7: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ ADD HL,DE
+ JR L77B2 ; (-03cH)
+
+L77EE: LD A,C
+ SUB B
+ CPL
+ LD C,A
+ LD B,0FFH
+ ADD HL,BC
+ POP BC
+L77F6: DEC HL
+ DEC HL
+ JR L77E7 ; (-013H)
+
+L77FA: LD A,(HL)
+ EXX
+ LD C,A
+ LD B,000H
+ EXX
+ INC HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ POP DE
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77F6 ; (-018H)
+ PUSH BC
+ LD B,A
+ LD C,A
+L7811: INC HL
+ INC DE
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77EE ; (-029H)
+ DJNZ L7811 ; (-008H)
+ INC HL
+ POP BC
+ SCF
+ RET
+
+L781D: CALL L748E
+ SET 6,C
+ PUSH HL
+ CALL L77AF
+ JP C,04AF8H
+ LD (HL),C
+ EX (SP),HL
+ PUSH HL
+ DEC HL
+L782D: CALL L5198
+ OR A
+ JR Z,L7837 ; (+004H)
+ CP 03AH
+ JR NZ,L782D ; (-00aH)
+L7837: POP DE
+ PUSH HL
+ INC HL
+ SBC HL,DE
+ LD A,(L11A4)
+ ADD A,004H
+ LD C,A
+ LD B,000H
+ LD A,L
+ ADD HL,BC
+ LD B,A
+ PUSH HL
+ EXX
+ POP BC
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,L0000
+ ADD HL,SP
+ LD DE,(TMPEND)
+ DEC H
+ OR A
+ SBC HL,DE
+ LD A,00CH
+ JP C,L4B28
+ POP BC
+ POP DE
+ POP HL
+ LD HL,(L107A)
+ PUSH HL
+ ADD HL,BC
+ EX (SP),HL
+ PUSH HL
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ POP HL
+ POP DE
+ LDDR
+ POP DE
+ RST 018H
+ DB 01AH
+ DEC DE
+ POP HL
+ EX (SP),HL
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,L11A4
+ LD A,(DE)
+ LD (HL),A
+ LD B,A
+L7887: INC DE
+ INC HL
+ LD A,(DE)
+ LD (HL),A
+ DJNZ L7887 ; (-006H)
+ INC HL
+ PUSH HL
+ EXX
+ POP HL
+ CALL LDHLDE
+ LD (HL),000H
+ POP HL
+ RET
+
+ PUSH DE
+ CALL L748E
+ POP IX
+ PUSH BC
+ SET 6,C
+ LD DE,(07923H)
+ LD (L7923),HL
+ PUSH DE
+ CALL L77AF
+ JP NC,04B04H
+ LD DE,(07921H)
+ LD (L7921),HL
+ PUSH DE
+ PUSH IX
+ DEC HL
+L78BA: CALL L5198
+ CALL L414A
+ JP Z,L4AE6
+ CP QDPC
+ JR NZ,L78BA ; (-00dH)
+ INC HL
+ POP DE
+ PUSH DE
+ CALL L6E94
+ POP DE
+ LD HL,(L7923)
+ POP BC
+ LD (07921H),BC
+ POP BC
+ LD (07923H),BC
+ EX DE,HL
+ POP BC
+ LD A,C
+ CALL L790B
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ CALL HLFTCH
+ CP 028H
+ RET NZ
+ PUSH DE
+ LD B,001H
+L78EF: PUSH BC
+ CALL L5198
+ POP BC
+ CALL L414D
+ JP Z,L4AE6
+ CP 028H
+ JR NZ,L78FF ; (+001H)
+ INC B
+L78FF: CP 029H
+ JR NZ,L78EF ; (-014H)
+ DJNZ L78EF ; (-016H)
+ INC HL
+ CALL HLFTCH
+ POP DE
+ RET
+
+L790B: CP 003H
+ JR NZ,L7918 ; (+009H)
+L790F: LD A,(L84C7)
+ CP 003H
+ RET Z
+ JP 04AEFH
+
+L7918: LD A,(L84C7)
+ CP 003H
+ RET NZ
+ JP 04AEFH
+
+L7921: NOP
+ NOP
+L7923: NOP
+ NOP
+ PUSH HL
+ CALL L60B5
+ LD A,H
+ OR A
+ JP NZ,04AECH
+ LD A,L
+ CP 008H
+ JP NC,04AECH
+ RST 018H
+ DB 012H
+ POP HL
+ JR C,L7947 ; (+00eH)
+ JR Z,L7947 ; (+00cH)
+ LD DE,0FFFFH
+L793E: CALL L5E97
+ LD A,005H
+ LD (L84C7),A
+ RET
+
+L7947: LD E,A
+ LD D,000H
+ JR L793E ; (-00eH)
+
+L794C: LD A,(DE)
+ CP (HL)
+ RET NZ
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD B,C
+L7953: LD A,(DE)
+ CP (HL)
+ JR NZ,L795C ; (+005H)
+ INC DE
+ INC HL
+ DJNZ L7953 ; (-008H)
+ XOR A
+L795C: POP HL
+ POP DE
+ POP BC
+ RET
+
+L7960: PUSH HL
+ LD B,005H
+ CALL ?CLRHL
+ POP HL
+ RET
+
+L7968: CALL L7918
+L796B: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ LD A,(HL)
+ XOR 080H
+ LD (HL),A
+ DEC HL
+ RET
+
+L7975: CALL L7918
+ LD C,A
+ LD A,080H
+ JP L7988
+
+L797E: LD A,(L84C7)
+ CP 003H
+ JP Z,L79D2
+ LD C,A
+ XOR A
+L7988: LD (L7D82),HL
+ PUSH DE
+ PUSH HL
+ LD (07D85H),SP
+ INC HL
+ INC DE
+ LD B,(HL)
+ XOR (HL)
+ EX DE,HL
+ XOR (HL)
+ DEC HL
+ DEC DE
+ EX DE,HL
+ RLCA
+ LD A,B
+ LD (L7D84),A
+ JP C,L7A93
+ XOR A
+ CP (HL)
+ JP Z,L79C7
+ LD A,(DE)
+ OR A
+ JR Z,L79AF ; (+004H)
+ SUB (HL)
+ JP L7AD6
+
+L79AF: LD SP,(07D85H)
+ POP HL
+ POP DE
+ EI
+ LD A,(HL)
+ OR A
+ JP Z,L7E7F
+ LD A,(L7D84)
+ AND 080H
+ INC HL
+ RES 7,(HL)
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ RET
+
+L79C7: LD B,000H
+ LD A,005H
+ LD C,A
+ EX DE,HL
+ LDIR
+ JP L79AF
+
+L79D2: LD B,(HL)
+ LD A,(DE)
+ ADD A,B
+ JP C,04AF2H
+ LD C,A
+ PUSH DE
+ PUSH HL
+ PUSH DE
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ EX DE,HL
+ LD HL,(L107A)
+ CALL L74D5
+ EX (SP),HL
+ LD B,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ EX DE,HL
+ POP HL
+ CALL L74D5
+ LD A,C
+ LD DE,(TMPEND)
+ LD BC,(STRST)
+ EX DE,HL
+ OR A
+ SBC HL,BC
+ EX DE,HL
+ LD (L107A),HL
+ POP HL
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ DEC HL
+ DEC HL
+ POP DE
+ RET
+
+L7A15: LD A,(L84C7)
+ CP 003H
+ JR NZ,L7A50 ; (+034H)
+ PUSH DE
+ PUSH HL
+ LD A,(DE)
+ OR (HL)
+ JR Z,L7A4D ; (+02bH)
+ LD A,(DE)
+ CP (HL)
+ JR C,L7A27 ; (+001H)
+ LD A,(HL)
+L7A27: OR A
+ JR Z,L7A47 ; (+01dH)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ EX DE,HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ ADD HL,BC
+ EX DE,HL
+ LD B,A
+ OR A
+ JR Z,L7A4D ; (+00eH)
+L7A3F: LD A,(DE)
+ CP (HL)
+ JR NZ,L7A4D ; (+00aH)
+ INC DE
+ INC HL
+ DJNZ L7A3F ; (-008H)
+L7A47: POP DE
+ POP HL
+ LD A,(DE)
+ CP (HL)
+ EX DE,HL
+ RET
+
+L7A4D: POP HL
+ POP DE
+ RET
+
+L7A50: INC DE
+ INC HL
+ LD A,(DE)
+ DEC DE
+ XOR (HL)
+ RLCA
+ JR NC,L7A5C ; (+004H)
+ LD A,(HL)
+ DEC HL
+ RLCA
+ RET
+
+L7A5C: LD A,(HL)
+ DEC HL
+ RLCA
+ JR NC,L7A67 ; (+006H)
+ CALL L7A67
+ RET Z
+ CCF
+ RET
+
+L7A67: PUSH DE
+ PUSH HL
+ EX DE,HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L7A88 ; (+01aH)
+ INC DE
+ INC HL
+ LD A,(HL)
+ OR 080H
+ LD B,A
+ LD A,(DE)
+ OR 080H
+ CP B
+ JR NZ,L7A88 ; (+00eH)
+ LD A,(L84C7)
+ LD B,A
+ DEC B
+ DEC B
+L7A80: INC DE
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L7A88 ; (+002H)
+ DJNZ L7A80 ; (-008H)
+L7A88: POP HL
+ POP DE
+ RET
+
+L7A8B: POP HL
+ PUSH HL
+ CALL L7960
+ JP L79AF
+
+L7A93: CALL L7A67
+ JR Z,L7A8B ; (-00dH)
+ JR NC,L7AA3 ; (+009H)
+ LD A,(L7D84)
+ XOR 080H
+ LD (L7D84),A
+ SCF
+L7AA3: EX AF,AF'
+ LD A,(HL)
+ OR A
+ JP Z,L79C7
+ LD A,(DE)
+ OR A
+ JP Z,L79AF
+ SUB (HL)
+ JR C,L7AB8 ; (+007H)
+ CP 020H
+ JP NC,L79C7
+ JR L7ABF ; (+007H)
+
+L7AB8: NEG
+ CP 020H
+ JP NC,L79AF
+L7ABF: EX AF,AF'
+ JR C,L7AC3 ; (+001H)
+ EX DE,HL
+L7AC3: EX AF,AF'
+ JP L7B5D
+
+L7AC7: LD SP,(07D85H)
+ EI
+ POP HL
+ POP DE
+ LD A,(07D8CH)
+ OR A
+ JP Z,04AE9H
+ RET
+
+L7AD6: JR NC,L7AE2 ; (+00aH)
+ NEG
+ CP 020H
+ JP NC,L79AF
+ EX DE,HL
+ JR L7AE7 ; (+005H)
+
+L7AE2: CP 020H
+ JP NC,L79C7
+L7AE7: CALL L7B1D
+ LD A,H
+ EXX
+ ADC A,H
+ EXX
+ LD H,A
+ LD A,L
+ EXX
+ ADC A,L
+ EXX
+ LD L,A
+ LD A,D
+ EXX
+ ADC A,D
+ EXX
+ LD D,A
+ LD A,E
+ EXX
+ ADC A,E
+ EXX
+ JR NC,L7B0A ; (+00bH)
+ RRA
+ RR D
+ RR L
+ RR H
+ INC C
+ JP Z,L7AC7
+L7B0A: LD E,A
+ LD A,C
+ EXX
+ LD BC,00005H
+ LD HL,(L7D82)
+ LD (HL),A
+ ADD HL,BC
+ DI
+ LD SP,HL
+ EXX
+ PUSH HL
+ PUSH DE
+ JP L79AF
+
+L7B1D: DI
+ LD (07D87H),SP
+ EX AF,AF'
+ INC HL
+ LD SP,HL
+ EXX
+ POP DE
+ SET 7,E
+ POP HL
+ OR A
+L7B2B: EX AF,AF'
+ CP 008H
+ JR C,L7B3C ; (+00cH)
+ SUB 008H
+ EX AF,AF'
+ RL H
+ LD H,L
+ LD L,D
+ LD D,E
+ LD E,000H
+ JR L7B2B ; (-011H)
+
+L7B3C: OR A
+ JR Z,L7B4D ; (+00eH)
+L7B3F: EX AF,AF'
+ OR A
+ RR E
+ RR D
+ RR L
+ RR H
+ EX AF,AF'
+ DEC A
+ JR NZ,L7B3F ; (-00eH)
+L7B4D: EXX
+ EX DE,HL
+ LD C,(HL)
+ INC HL
+ LD SP,HL
+ POP DE
+ SET 7,E
+ POP HL
+ EX AF,AF'
+ LD SP,(07D87H)
+ EI
+ RET
+
+L7B5D: CP 020H
+ JP NC,L79AF
+ CALL L7B1D
+ LD A,H
+ EXX
+ SBC A,H
+ EXX
+ LD H,A
+ LD A,L
+ EXX
+ SBC A,L
+ EXX
+ LD L,A
+ LD A,D
+ EXX
+ SBC A,D
+ EXX
+ LD D,A
+ LD A,E
+ EXX
+ SBC A,E
+ EXX
+L7B78: OR A
+ JR Z,L7B91 ; (+016H)
+L7B7B: BIT 7,A
+ JR NZ,L7B8D ; (+00eH)
+ RL H
+ RL L
+ RL D
+ RLA
+ DEC C
+ JP NZ,L7B7B
+ JP L7A8B
+
+L7B8D: LD E,A
+ JP L7B0A
+
+L7B91: LD A,C
+ SUB 008H
+ LD C,A
+ LD A,D
+ LD D,L
+ LD L,H
+ LD H,000H
+ JR Z,L7B9E ; (+002H)
+ JR NC,L7B78 ; (-026H)
+L7B9E: JP L7A8B
+
+L7BA1: LD C,A
+L7BA2: INC HL
+ INC DE
+ LD A,(DE)
+ XOR (HL)
+ LD (L7D84),A
+ DEC HL
+ DEC DE
+ RET
+
+L7BAC: CALL L7918
+ CALL L7BA1
+ PUSH DE
+ PUSH HL
+ LD (07D85H),SP
+ LD A,(HL)
+ OR A
+ JP Z,L7A8B
+ LD A,(DE)
+ OR A
+ JP Z,L7A8B
+ INC DE
+ PUSH DE
+ POP IX
+ ADD A,(HL)
+ LD E,A
+ LD A,000H
+ ADC A,A
+ LD D,A
+ LD (07D8AH),DE
+ INC HL
+ XOR A
+ LD (L7D89),A
+ LD D,(HL)
+ SET 7,D
+ INC HL
+ LD E,(HL)
+ INC HL
+ PUSH HL
+ LD H,A
+ LD L,A
+ EXX
+ POP HL
+ LD D,(HL)
+ INC HL
+ LD E,(HL)
+ LD B,A
+ LD C,A
+ LD H,A
+ LD L,A
+ EXX
+ LD A,(IX+000H)
+ OR 080H
+ LD C,004H
+L7BEF: LD B,008H
+ OR A
+ JP Z,L7C84
+L7BF5: RLCA
+ JR NC,L7C0A ; (+012H)
+ EX AF,AF'
+ EXX
+ LD A,C
+ ADD A,B
+ LD C,A
+ ADC HL,DE
+ EXX
+ ADC HL,DE
+ JR NC,L7C09 ; (+005H)
+ LD A,001H
+ LD (L7D89),A
+L7C09: EX AF,AF'
+L7C0A: SRL D
+ RR E
+ EXX
+ RR D
+ RR E
+ RR B
+ EXX
+ DJNZ L7BF5 ; (-023H)
+L7C18: INC IX
+ LD A,(IX+000H)
+ DEC C
+ JR NZ,L7BEF ; (-031H)
+ EXX
+ LD A,(L7D89)
+ OR A
+ JR Z,L7C3D ; (+016H)
+ LD DE,(07D8AH)
+ INC DE
+ LD (07D8AH),DE
+ EXX
+ SCF
+ RR H
+ RR L
+ EXX
+ RR H
+ RR L
+ RR C
+L7C3D: BIT 7,C
+ JR Z,L7C5B ; (+01aH)
+ LD DE,00001H
+ ADD HL,DE
+ EXX
+ LD DE,L0000
+ ADC HL,DE
+ EXX
+ JR NC,L7C5B ; (+00dH)
+ LD DE,(07D8AH)
+ INC DE
+ LD (07D8AH),DE
+ EXX
+ LD H,080H
+ EXX
+L7C5B: POP IX
+ PUSH IX
+ LD (IX+004H),L
+ LD (IX+003H),H
+ EXX
+ LD (IX+002H),L
+ LD (IX+001H),H
+ LD HL,(07D8AH)
+ OR A
+ LD DE,L0081
+ SBC HL,DE
+ LD A,H
+ ADD A,000H
+ JP M,L7C90
+ JP NZ,L7AC7
+ LD (IX+000H),L
+ JP L79AF
+
+L7C84: LD A,E
+ EXX
+ LD B,E
+ LD E,D
+ LD D,A
+ EXX
+ LD E,D
+ LD D,000H
+ JP L7C18
+
+L7C90: LD SP,(07D85H)
+ JP L7A8B
+
+L7C97: CALL L7918
+ CALL L7BA1
+ PUSH DE
+ PUSH HL
+ LD (07D85H),SP
+ LD A,(DE)
+ OR A
+ JP Z,04AE9H
+ EX AF,AF'
+ LD A,(HL)
+ OR A
+ JP Z,L7A8B
+ EXX
+ ADD A,081H
+ LD B,A
+ LD A,000H
+ ADC A,A
+ EX AF,AF'
+ LD C,A
+ LD A,B
+ SUB C
+ LD C,A
+ EX AF,AF'
+ LD B,A
+ EX AF,AF'
+ LD A,B
+ SBC A,000H
+ JP C,L7C90
+ JP NZ,L7AC7
+ LD A,C
+ PUSH AF
+ EXX
+ INC DE
+ INC HL
+ LD B,(HL)
+ SET 7,B
+ INC HL
+ LD C,(HL)
+ INC HL
+ PUSH HL
+ EX DE,HL
+ LD D,(HL)
+ SET 7,D
+ INC HL
+ LD E,(HL)
+ INC HL
+ PUSH HL
+ LD H,B
+ LD L,C
+ EXX
+ POP HL
+ LD D,(HL)
+ INC HL
+ LD E,(HL)
+ POP HL
+ LD A,(HL)
+ INC HL
+ LD L,(HL)
+ LD H,A
+ EXX
+ LD C,005H
+L7CE9: LD B,008H
+ XOR A
+L7CEC: BIT 7,H
+ JR NZ,L7D00 ; (+010H)
+ OR A
+L7CF1: RLA
+ EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ DJNZ L7CEC ; (-00dH)
+ PUSH AF
+ DEC C
+ JR NZ,L7CE9 ; (-014H)
+ JP L7D3A
+
+L7D00: OR A
+ EXX
+ SBC HL,DE
+ EXX
+ SBC HL,DE
+ CCF
+ JR C,L7CF1 ; (-019H)
+ EXX
+ ADD HL,DE
+ EXX
+ ADC HL,DE
+ OR A
+ RLA
+ EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ DJNZ L7D1F ; (+007H)
+ PUSH AF
+ LD B,008H
+ DEC C
+ JP Z,L7D3A
+L7D1F: EXX
+ OR A
+ SBC HL,DE
+ EXX
+ SBC HL,DE
+ SCF
+ RLA
+ DJNZ L7D30 ; (+006H)
+ PUSH AF
+ LD B,008H
+ DEC C
+ JR Z,L7D3A ; (+00aH)
+L7D30: EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ JR C,L7D1F ; (-018H)
+ JP L7CEC
+
+L7D3A: POP AF
+ LD H,A
+ EXX
+ POP AF
+ LD E,A
+ POP AF
+ LD D,A
+ POP AF
+ LD C,A
+ POP AF
+ LD B,A
+ POP AF
+L7D46: BIT 7,B
+ JR NZ,L7D5D ; (+013H)
+ EXX
+ SLA H
+ EXX
+ RL E
+ RL D
+ RL C
+ RL B
+ DEC A
+ JP NZ,L7D46
+ JP L7A8B
+
+L7D5D: EXX
+ RL H
+ EXX
+ JR NC,L7D74 ; (+011H)
+ LD HL,00001H
+ ADD HL,DE
+ EX DE,HL
+ LD HL,L0000
+ ADC HL,BC
+ LD B,H
+ LD C,L
+ JR NC,L7D74 ; (+003H)
+ LD B,080H
+ INC A
+L7D74: POP HL
+ PUSH HL
+ LD (HL),A
+ INC HL
+ LD (HL),B
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ JP L79AF
+
+L7D82: NOP
+ NOP
+L7D84: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L7D89: NOP
+ NOP
+ NOP
+ NOP
+L7D8D: INC HL
+ BIT 7,(HL)
+ DEC HL
+ RET
+
+L7D92: INC (HL)
+ RET NZ
+ JP 04AE9H
+
+L7D97: LD A,(HL)
+ OR A
+ RET Z
+ DEC (HL)
+ RET NZ
+ JP L7960
+
+L7D9F: PUSH HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ LD HL,(MEMMAX)
+ DEC HL
+ SBC HL,DE
+ JP C,04AF5H
+ POP HL
+ RET
+
+L7DB1: PUSH HL
+ LD (L846A),HL
+ CALL L7D9F
+ EX DE,HL
+ LD (L846C),HL
+ CALL L7D9F
+ EX DE,HL
+ LD (L846E),HL
+ CALL L7D9F
+ LD (08470H),DE
+ POP HL
+ RET
+
+L7DCC: CALL L7918
+ EX DE,HL
+ LD A,(HL)
+ OR A
+ JP Z,L7E2E
+ EX DE,HL
+ LD A,(HL)
+ OR A
+ JP Z,L7960
+ CALL L7D8D
+ JR Z,L7E08 ; (+028H)
+ CALL L796B
+ EX DE,HL
+ PUSH DE
+ PUSH HL
+ LD DE,L84D0
+ CALL L5E91
+ LD HL,L84D0
+ CALL L608B
+ LD A,(HL)
+ OR A
+ JP NZ,04AECH
+ POP HL
+ PUSH HL
+ CALL L60B5
+ BIT 0,L
+ POP DE
+ POP HL
+ JR Z,L7E08 ; (+006H)
+ CALL L7E08
+ JP L796B
+
+L7E08: EX DE,HL
+ LD A,(HL)
+ OR A
+ JR Z,L7E2E ; (+021H)
+ CALL L7D8D
+ JR Z,L7E34 ; (+022H)
+ CALL L796B
+ CALL L7E34
+ PUSH DE
+ PUSH HL
+ LD DE,L84D0
+ CALL L5E8E
+ LD HL,L84D0
+ POP DE
+ CALL L7C97
+ PUSH DE
+ CALL L5E91
+ POP HL
+ POP DE
+ RET
+
+L7E2E: PUSH DE
+ CALL L5E8E
+ POP HL
+ RET
+
+L7E34: PUSH DE
+ LD DE,L84D0
+ CALL L5E91
+ POP HL
+ CALL L8319
+ LD DE,L84D0
+ CALL L7BAC
+ JP L81F5
+
+L7E48: CALL L7918
+ PUSH DE
+ PUSH HL
+ CALL L60B5
+ LD A,L
+ CPL
+ LD E,A
+ LD A,H
+ CPL
+ LD D,A
+ JR L7E79 ; (+021H)
+
+L7E58: LD A,0A2H
+ LD BC,0B23EH
+ LD BC,0AA3EH
+ LD (L7E74),A
+ INC A
+ LD (L7E77),A
+ CALL L7918
+ PUSH DE
+ PUSH HL
+ CALL L60B5
+ EX DE,HL
+ CALL L60B5
+ LD A,H
+L7E74: AND D
+ LD D,A
+ LD A,L
+L7E77: AND E
+ LD E,A
+L7E79: POP HL
+ CALL L5E97
+ POP DE
+ RET
+
+L7E7F: INC HL
+ RES 7,(HL)
+ DEC HL
+ RET
+
+ CALL L7D8D
+ JP Z,L604D
+ CALL L7EA9
+ CALL L604D
+ LD DE,L84D0
+ CALL L7A15
+ RET Z
+L7E97: LD DE,L6110
+ JP L7975
+
+L7E9D: LD DE,L6110
+ JP L797E
+
+L7EA3: LD DE,L6110
+ JP L7A15
+
+L7EA9: PUSH HL
+ PUSH DE
+ LD DE,L84D0
+ CALL L5E91
+ POP DE
+ POP HL
+ RET
+
+L7EB4: CALL L604D
+ EX DE,HL
+ CALL L604D
+ EX DE,HL
+ CALL L7EA9
+ CALL L7C97
+ CALL L604D
+ CALL L7BAC
+ PUSH DE
+ LD DE,L84D0
+ CALL L7975
+ POP DE
+ JP L796B
+
+L7ED3: CALL L604D
+ EX DE,HL
+ CALL L604D
+ EX DE,HL
+ CALL L7C97
+ JP L604D
+
+ LD A,(HL)
+ OR A
+ RET Z
+ CALL L7D8D
+ JP NZ,04AECH
+ CALL L8319
+ CALL L7D97
+ JP L81F5
+
+L7EF3: PUSH HL
+ EX DE,HL
+ CALL L5E8E
+ POP HL
+ POP BC
+ RET
+
+L7EFB: LD A,(HL)
+ LD C,H
+L7EFD: ADD A,B
+ DEC HL
+ PUSH BC
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ PUSH AF
+ CALL L7F10
+ POP AF
+ POP BC
+ RLCA
+ RET NC
+ JP L796B
+
+L7F10: CALL L7EA3
+ JR C,L7F33 ; (+01eH)
+ CALL L7D9F
+ PUSH DE
+ PUSH HL
+ CALL L5E91
+ POP DE
+ PUSH DE
+ CALL L5E8E
+ POP HL
+ POP DE
+ CALL L7C97
+ CALL L7F33
+ LD DE,0818DH
+ CALL L7975
+ JP L7E7F
+
+L7F33: LD A,0FFH
+ LD (L80A9),A
+ LD DE,L7EFB
+ CALL L7A15
+ JR C,07F8FH ; (+04fH)
+ LD DE,L7EFD
+ CALL L7A15
+ PUSH AF
+ CALL L7D9F
+ POP AF
+ PUSH HL
+ PUSH DE
+ CALL L5E91
+ POP HL
+ JR C,L7F67 ; (+014H)
+ CALL L7E9D
+ EX (SP),HL
+ CALL L7975
+ POP DE
+ CALL L7C97
+ CALL 07F8FH
+ LD DE,08192H
+ JP L797E
+
+L7F67: LD DE,L7F8A
+ CALL L7BAC
+ CALL L7E9D
+ EX (SP),HL
+ LD DE,L7F8A
+ CALL L7975
+ POP DE
+ CALL L7C97
+ CALL 07F8FH
+ CALL L7D92
+ LD DE,08192H
+ CALL L797E
+ JP L7D97
+
+L7F8A: LD A,A
+ LD D,H
+ INC DE
+ CALL Z,0C5D0H
+ PUSH HL
+ CALL L7DB1
+ POP HL
+ PUSH HL
+ PUSH DE
+ CALL L5E91
+ POP HL
+ LD E,L
+ LD D,H
+ CALL L7BAC
+ LD DE,(0846EH)
+ POP HL
+ PUSH HL
+ CALL L5E91
+ LD A,(L84C7)
+ DEC A
+ CP 004H
+ LD B,A
+ LD HL,08130H
+ JP Z,L8036
+ LD B,00AH
+ JP L8036
+
+L7FBB: PUSH BC
+ LD A,(HL)
+ OR A
+ JP Z,L7EF3
+ LD DE,0818DH
+ CALL L7975
+ CALL L796B
+ POP BC
+L7FCB: PUSH BC
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ AND 080H
+ CPL
+ LD (L80A9),A
+ DEC HL
+ LD DE,L8183
+ PUSH HL
+ CALL L7A15
+ JR C,L7FE9 ; (+009H)
+ CALL L7C97
+ CALL L608B
+ CALL L7BAC
+L7FE9: LD DE,08188H
+ CALL L7A15
+ JR C,L7FFC ; (+00bH)
+ CALL L7975
+ LD A,(L80A9)
+ XOR 080H
+ LD (L80A9),A
+L7FFC: LD DE,0818DH
+ CALL L7A15
+ JR C,L800D ; (+009H)
+ LD DE,08188H
+ CALL L7975
+ CALL L7E7F
+L800D: CALL L7DB1
+ POP HL
+ PUSH DE
+ LD DE,08192H
+ CALL L7A15
+ JR NC,L807F ; (+065H)
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E91
+ POP HL
+ LD E,L
+ LD D,H
+ CALL L7BAC
+ LD DE,(0846EH)
+ POP HL
+ PUSH HL
+ CALL L5E91
+ LD A,(L84C7)
+ LD B,A
+ LD HL,L80E0
+L8036: PUSH BC
+ PUSH HL
+ LD HL,(L846E)
+ LD DE,(08470H)
+ CALL L7BAC
+ POP HL
+ PUSH HL
+ LD DE,(0846CH)
+ PUSH DE
+ CALL L5E91
+ POP HL
+ LD DE,(0846EH)
+ CALL L7BAC
+ EX DE,HL
+ LD HL,(L846A)
+ CALL L797E
+ POP HL
+ LD DE,00005H
+ ADD HL,DE
+ POP BC
+ DJNZ L8036 ; (-02dH)
+ POP HL
+ POP BC
+ LD A,(L80A9)
+ INC HL
+ XOR (HL)
+ CPL
+ LD (HL),A
+ DEC HL
+ LD A,(L84C7)
+ CP 008H
+ LD A,(HL)
+ JR Z,L807B ; (+006H)
+ CP 05CH
+L8077: RET NC
+ JP L7960
+
+L807B: CP 04DH
+ JR L8077 ; (-008H)
+
+L807F: LD DE,0818DH
+ CALL L7975
+ CALL L7E7F
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E91
+L808E: POP HL
+ LD E,L
+ LD D,H
+ CALL L7BAC
+ LD DE,(0846EH)
+ CALL L5E8E
+L809B: POP DE
+ PUSH DE
+ CALL L5E8E
+ LD A,(L84C7)
+ LD B,A
+ LD HL,L8108
+ JR L8036 ; (-073H)
+
+L80A9: NOP
+ PUSH BC
+ PUSH HL
+ CALL L7D9F
+ EX DE,HL
+ LD (L8472),HL
+ CALL L7D9F
+ LD (08474H),DE
+ POP HL
+ PUSH HL
+ CALL L5E91
+ LD HL,(L8472)
+ EX DE,HL
+ POP HL
+ PUSH HL
+ CALL L5E91
+ LD HL,(08474H)
+L80CB: CALL L7FCB
+ POP DE
+ PUSH DE
+ CALL L5E91
+ LD HL,(L8472)
+ CALL L7FBB
+ EX DE,HL
+ POP HL
+ CALL L7C97
+ POP BC
+ RET
+
+L80E0: LD A,(HL)
+L80E1: XOR D
+ XOR D
+ XOR D
+ XOR E
+ LD A,D
+ EX AF,AF'
+ ADC A,B
+ ADC A,B
+ ADC A,C
+ LD (HL),H
+ RET NC
+ DEC C
+ NOP
+ RET NC
+ LD L,(HL)
+ JR C,L80E1 ; (-011H)
+ DEC E
+ DEC HL
+ LD H,A
+ RST 010H
+L80F6: LD (L402B),A
+ LD H,B
+ JR NC,L808E ; (-06eH)
+ JR NC,L809B ; (-063H)
+ LD E,B
+ RST 010H
+ CCF
+ SBC A,A
+ LD A,(04A50H)
+ SUB (HL)
+ DEC SP
+ ADD A,D
+L8108: ADD A,B
+ ADD A,B
+ NOP
+ NOP
+ NOP
+ LD A,H
+ LD HL,(0AAAAH)
+ XOR E
+ LD (HL),A
+ OR (HL)
+ DEC BC
+ LD H,B
+ OR (HL)
+ LD (HL),C
+ LD D,B
+ DEC C
+ NOP
+ RET NC
+ LD L,E
+ SUB E
+ JP P,0BC7DH
+ LD H,H
+ RRCA
+ HALT
+ RST 000H
+L8125: ADD A,B
+ LD E,H
+ RET
+
+L8128: RES 4,L
+ LD B,(HL)
+ LD D,H
+ LD D,A
+ CCF
+ SBC A,A
+ LD A,(0AA7FH)
+ XOR D
+ XOR D
+ XOR E
+ LD A,(HL)
+ LD C,H
+ CALL Z,0CDCCH
+ LD A,(HL)
+ SUB D
+ LD C,C
+ INC H
+ SUB D
+ LD A,L
+ LD H,E
+ ADC A,(HL)
+ JR C,L8128 ; (-01cH)
+ LD A,L
+ CP D
+ LD L,08BH
+ AND E
+ LD A,L
+ DEC E
+ ADC A,C
+ RET C
+ SBC A,(HL)
+ LD A,L
+ ADC A,B
+ ADC A,B
+ ADC A,B
+ ADC A,C
+ LD A,H
+ LD (HL),B
+ RET P
+ RET P
+ POP AF
+ LD A,H
+ RST 010H
+ SUB H
+ DEC (HL)
+ PUSH HL
+ LD A,H
+ LD B,E
+ INC C
+ JR NC,L8125 ; (-03dH)
+ LD DE,L0000
+ LD A,(HL)
+ OR A
+ JR Z,L8171 ; (+008H)
+ CALL L7D8D
+ INC DE
+ JR Z,L8171 ; (+002H)
+ DEC DE
+ DEC DE
+L8171: CALL L5E97
+ RET
+
+L8175: LD DE,08197H
+ JR L817D ; (+003H)
+
+ LD DE,08188H
+L817D: PUSH BC
+ CALL L7BAC
+ POP BC
+ RET
+
+L8183: ADD A,E
+ LD C,C
+ RRCA
+ JP C,082A2H
+ LD C,C
+ RRCA
+ JP C,L81A2
+ LD C,C
+ RRCA
+ JP C,080A2H
+ LD C,C
+ RRCA
+ JP C,L7BA2
+ LD C,FDPC
+ DEC (HL)
+ INC DE
+ PUSH HL
+ CALL L60B5
+ LD A,000H
+L81A2: CP 040H
+ LD A,(HL)
+ CALL NZ,BREAKX
+ LD E,A
+ LD D,000H
+ POP HL
+ CALL L5E97
+ RET
+
+ LD A,(HL)
+ OR A
+ JR Z,L81B9 ; (+005H)
+ CALL L7D8D
+ JR Z,L81C4 ; (+00bH)
+L81B9: PUSH HL
+ LD HL,L4193
+ LD (L81F3),HL
+ POP HL
+ XOR A
+ LD R,A
+L81C4: PUSH BC
+ LD DE,(081F3H)
+ LD A,R
+ XOR D
+ RRC A
+ RRC A
+ RRC A
+ LD D,A
+ LD A,R
+ XOR E
+ RLC A
+ RLC A
+ LD E,D
+ LD D,A
+ LD (081F3H),DE
+ PUSH HL
+ INC HL
+ RES 7,D
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ INC HL
+ LD A,R
+ LD (HL),A
+ POP HL
+ LD (HL),081H
+ CALL L7E97
+ POP BC
+ RET
+
+L81F3: SUB E
+ LD B,C
+L81F5: PUSH BC
+ LD A,(HL)
+ OR A
+ JP Z,L7EF3
+ INC HL
+ LD A,(HL)
+ LD (L830B),A
+ RES 7,(HL)
+ DEC HL
+ LD DE,L8460
+ CALL L7BAC
+ PUSH HL
+ CALL L7D9F
+ PUSH DE
+ CALL L5E91
+ POP HL
+ CALL L604D
+ PUSH HL
+ CALL L60B5
+ XOR A
+ CP H
+ JP NZ,04AE9H
+ LD A,L
+ LD (L830A),A
+ POP DE
+ POP HL
+ PUSH HL
+ CALL L7975
+ PUSH DE
+ PUSH HL
+ CALL L5E8E
+ POP DE
+ POP HL
+ CALL L7D97
+ EX DE,HL
+ XOR A
+ LD B,008H
+L8236: PUSH BC
+ PUSH AF
+ CALL L7A15
+ JR C,L8244 ; (+007H)
+ CALL L7975
+ POP AF
+ SET 7,A
+ PUSH AF
+L8244: POP AF
+ RLC A
+ EX DE,HL
+ PUSH AF
+ CALL L7D97
+ POP AF
+ EX DE,HL
+ POP BC
+ DJNZ L8236 ; (-01bH)
+ LD (L830C),A
+ PUSH DE
+ LD DE,L8456
+ LD A,(L84C7)
+ BIT 3,A
+ JR NZ,L8262 ; (+003H)
+ LD DE,L845B
+L8262: CALL L7BAC
+ POP DE
+ PUSH DE
+ CALL L5E91
+ POP HL
+ LD A,(L84C7)
+ BIT 3,A
+ JP Z,L82FA
+ CALL L7D92
+ LD DE,L610B
+ CALL L797E
+ CALL L7D97
+ POP DE
+ PUSH DE
+ CALL L7BAC
+ LD DE,L610B
+ CALL L7D97
+ CALL L797E
+ CALL L7D92
+ POP DE
+ PUSH DE
+ CALL L7BAC
+ LD DE,L8451
+ CALL L7BAC
+ CALL L7D92
+ CALL L7E9D
+ CALL L7D97
+ POP DE
+ PUSH DE
+ CALL L7BAC
+ CALL L7E9D
+ POP DE
+ PUSH DE
+ CALL L7BAC
+L82B1: CALL L7E9D
+ EX (SP),HL
+ EX DE,HL
+ PUSH DE
+ CALL L5E8E
+ POP HL
+ LD DE,L8401
+ LD A,(L830C)
+ LD B,008H
+L82C3: RLC A
+ JR NC,L82CE ; (+007H)
+ PUSH AF
+ PUSH BC
+ CALL L7BAC
+ POP BC
+ POP AF
+L82CE: INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ DJNZ L82C3 ; (-012H)
+ LD A,(L830A)
+ ADD A,(HL)
+ JP C,04AE9H
+ LD (HL),A
+ POP DE
+ CALL L7BAC
+ POP BC
+ LD A,(L830B)
+ RLC A
+ RET NC
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ CALL L5E91
+ POP DE
+ PUSH DE
+ CALL L5E8E
+ POP HL
+ POP DE
+ CALL L7C97
+ POP BC
+ RET
+
+L82FA: POP DE
+ PUSH DE
+ CALL L7BAC
+ LD A,(HL)
+ OR A
+ CALL NZ,L7D97
+ CALL L797E
+ JP L82B1
+
+L830A: NOP
+L830B: NOP
+L830C: NOP
+ PUSH BC
+ CALL L8319
+ LD DE,L83F2
+ CALL L7BAC
+ POP BC
+ RET
+
+L8319: PUSH BC
+ CALL L7D8D
+ JP NZ,04AECH
+ LD A,(HL)
+ OR A
+ JP Z,04AECH
+ SUB 081H
+ LD (L83F1),A
+ LD (HL),081H
+ XOR A
+ LD B,008H
+ LD DE,L8401
+L8332: PUSH BC
+ PUSH AF
+ CALL L7A15
+ JR C,L8348 ; (+00fH)
+ PUSH HL
+ LD HL,00028H
+ ADD HL,DE
+ EX DE,HL
+ EX (SP),HL
+ CALL L7BAC
+ POP DE
+ POP AF
+ SET 7,A
+ PUSH AF
+L8348: POP AF
+ RLC A
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ POP BC
+ DJNZ L8332 ; (-021H)
+ DB 022H
+ LD L,D
+ ADD A,H
+ CALL L7D9F
+ EX DE,HL
+ LD E,A
+ LD D,000H
+ CALL L5E97
+ LD A,(HL)
+ OR A
+ JR Z,L8367 ; (+003H)
+ SUB 008H
+ LD (HL),A
+L8367: LD A,(L83F1)
+ CP 080H
+ JR C,L8370 ; (+002H)
+ NEG
+L8370: PUSH HL
+ CALL L7D9F
+ EX DE,HL
+ LD (L846C),HL
+ LD E,A
+ LD D,000H
+ CALL L5E97
+ LD A,(L83F1)
+ AND 080H
+ INC HL
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ EX DE,HL
+ POP HL
+ CALL L797E
+ LD A,(L84C7)
+ LD DE,08465H
+ CP 005H
+ JR Z,L8399 ; (+003H)
+ LD DE,L8456
+L8399: CALL L7BAC
+ PUSH HL
+ LD DE,(0846CH)
+ LD HL,(L846A)
+ PUSH HL
+ PUSH DE
+ CALL L5E91
+ POP HL
+ CALL L7E9D
+ EX (SP),HL
+ CALL L7975
+ POP DE
+ CALL L7C97
+ PUSH DE
+ CALL L5E91
+ POP HL
+ PUSH DE
+ LD E,L
+ LD D,H
+ CALL L7BAC
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E91
+ POP HL
+ LD DE,L83FC
+ CALL L797E
+ EX DE,HL
+ POP HL
+ CALL L7BAC
+ LD DE,L610B
+ CALL L7D92
+ CALL L797E
+ CALL L7D97
+ EX DE,HL
+ LD HL,(L846A)
+ CALL L7BAC
+ LD DE,L83F7
+ CALL L7BAC
+ POP DE
+ CALL L797E
+ POP BC
+ RET
+
+L83F1: NOP
+L83F2: LD A,A
+ LD E,(HL)
+ LD E,E
+ RET C
+ XOR C
+L83F7: LD A,A
+ LD C,H
+ CALL Z,0CDCCH
+L83FC: ADD A,C
+ LD D,L
+ LD D,L
+ LD D,L
+ LD D,(HL)
+L8401: ADD A,C
+ DEC (HL)
+ INC B
+ DI
+ INC (HL)
+ ADD A,C
+ JR L8440 ; (+037H)
+
+ RET P
+ LD D,D
+ ADD A,C
+ DEC BC
+L840D: SUB L
+ POP BC
+ CALL PO,00581H
+ XOR D
+ JP 08168H
+
+ LD (BC),A
+ CALL 09986H
+ ADD A,C
+ LD BC,0D164H
+ CALL P,L0081
+ OR C
+ IN D,(C)
+ ADD A,C
+ NOP
+ LD E,B
+ RST 010H
+ OUT (080H),A
+ DEC (HL)
+ INC B
+ DI
+ INC (HL)
+ ADD A,B
+ LD D,A
+ LD B,H
+ CALL M,L80CB
+ LD L,D
+ RET NZ
+ ADD A,0E8H
+ ADD A,B
+ LD (HL),L
+ DEC H
+ LD A,L
+ LD D,080H
+ LD A,D
+ ADD A,E
+L8440: OR D
+ CALL C,07D80H
+ LD A,00CH
+ DEC C
+ ADD A,B
+ LD A,(HL)
+ SBC A,(HL)
+ LD DE,0805DH
+ LD A,A
+ LD C,(HL)
+ BIT 3,D
+L8451: LD A,D
+ EX AF,AF'
+ ADC A,B
+ ADC A,B
+ ADC A,C
+L8456: ADD A,B
+ LD SP,L1772
+ RET M
+L845B: ADD A,B
+ LD SP,L1772
+ RET M
+L8460: ADD A,C
+ JR C,L840D ; (-056H)
+ DEC SP
+ LD HL,(03180H)
+ LD (HL),D
+ RLA
+ RET M
+L846A: DS 2, 000H
+L846C: DS 2, 000H
+L846E: DS 4, 000H
+L8472: DS 4, 000H
+L8476: DS 2, 000H
+L8478: DS 2, 000H
+L847A: DS 2, 000H
+L847C: DS 2, 000H
+L847E: DB 000H
+L847F: DB 000H
+L8480: DS 2, 000H
+L8482: DS 2, 000H
+L8484: DS 4, 000H
+L8488: DB 000H
+L8489: DS 2, 000H
+ DB 015H
+ DB 000H
+ DB EM_P1
+ DB 0FFH
+ DS 2, 000H
+L8491: DS 2, 000H
+L8493: DS 2, 000H
+L8495: DS 7, 000H
+L849C: DB 000H
+L849D: DS 3, 000H
+L84A0: DB 000H
+L84A1: DS 4, 000H
+L84A5: DB 000H
+L84A6: DS 8, 000H
+L84AE: DS 25, 000H
+L84C7: DB 008H ; Splash screen / banner text
+L84C8: DS 8, 000H
+L84D0: DS 8, 000H
+L84D8: DS 8, 000H
+L84E0: DB 016H
+ DB 00DH
+ DB 020H
+ DS 38, 0D7H
+ DS 2, 020H
+ DB 044H,005H,"ISK ",006H,042H,005H,"ASIC INTERPRETER ",006H,"MZ-2Z"
+ DS 2, 030H
+ DB 039H
+L852E: DS 2, 020H
+ DB "V1.0A ",00DH
+ DS 3, 020H
+ DB 043H,005H,"OPYRIGHT ",006H,"(C) 1984 ",005H,"BY ",006H,"SHARP ",005H,"CORP."
+ DS 5, 020H
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB 020H,00DH," 30406 ",005H,"BYTES FR"
+ DS 2, 045H
+ DS 2, 00DH
+ DS 93, 000H
+L85FE: DS 1698, 0FFH
+L8CA0: DS 864, 0FFH
+
+EXECSTART: XOR A ; Execution entry point
+ LD DE,L0000
+ CALL TIMST
+ ;LD HL,(DTEFG)
+ ;PUSH HL
+ LD DE,L0000
+ LD HL,BASICEND - L0000
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ LD HL,TAPECOPY
+ OUT (LSE0),A
+ LDIR
+ ;POP HL
+ ;LD (L0054),HL
+ JP L0000
+
+ DS 0,11
+BASICEND:
diff --git a/asm/mz5z008.asm b/asm/mz5z008.asm
new file mode 100644
index 0000000..03c32bb
--- /dev/null
+++ b/asm/mz5z008.asm
@@ -0,0 +1,17871 @@
+; Disassembly of the file "mz5z008.bin"
+;
+; CPU Type: Z80
+;
+; Created with dZ80 2.1
+;
+; on Monday, 16 of March 2026 at 03:02 PM
+;
+LSD0 EQU 0D0H
+LSD1 EQU 0D1H
+LSD2 EQU 0D2H
+LSD3 EQU 0D3H
+LSE0 EQU 0E0H
+LSE1 EQU 0E1H
+LSE2 EQU 0E2H
+LSE3 EQU 0E3H
+LSE4 EQU 0E4H
+LSE5 EQU 0E5H
+LSE6 EQU 0E6H
+QDPA EQU 0F2H
+QDPB EQU 0F3H
+QDPC EQU 0F4H
+QDPD EQU 0F5H
+FDPA EQU 0F8H
+FDPB EQU 0F9H
+FDPC EQU 0FAH
+FDPD EQU 0FBH
+LSFC EQU 0FCH
+ELMD EQU 01000H
+ELMD1 EQU 01001H
+ELMD18 EQU 01012H
+ELMD20 EQU 01014H
+ELMD22 EQU 01016H
+ELMD24 EQU 01018H
+ELMD26 EQU 0101AH
+ELMD30 EQU 0101EH
+ELMD32 EQU 01020H
+ZTOP EQU 01040H
+ZLOG EQU 01042H
+ZRWX EQU 01043H
+ZEQT EQU 01044H
+ZCH EQU 01046H
+ZEOF EQU 01047H
+ZWRK1 EQU 01048H
+ZWRK2 EQU 01049H
+ZNXT EQU 0104AH
+ZDEVNM EQU 0104CH
+ZFLAG1 EQU 01050H
+ZFLAG2 EQU 01051H
+ZDIRMX EQU 01052H
+ZINIT EQU 01053H
+ZRO EQU 01055H
+ZWO EQU 01057H
+ZCL EQU 01059H
+ZKL EQU 0105BH
+ZINP EQU 0105DH
+ZOUT EQU 0105FH
+ZDELT EQU 01061H
+ZWDIR EQU 01063H
+ZFREE EQU 01065H
+DCHAN EQU 01069H
+DDEV EQU 0106AH
+.$CRT EQU 0106CH
+.$LPT EQU 0106EH
+TEXTST EQU 01070H
+TEXTED EQU 01072H
+VARST EQU 01074H
+STRST EQU 01076H
+VARED EQU 01078H
+TMPEND EQU 0107AH
+INTFAC EQU 0107CH
+MEMLMT EQU 0107EH
+MEMMAX EQU 01080H
+CURXY EQU 01082H
+POSADR EQU 01084H
+BITADR EQU 01086H
+POINTX EQU 01088H
+POINTY EQU 0108AH
+CURFLG EQU 0108CH
+CURMAK EQU 0108DH
+CMTMSG EQU 0108EH
+INPFLG EQU 0108FH
+DISPX EQU 01090H
+FILOUT EQU 01091H
+PSEL EQU 01092H
+PCRLF EQU 01093H
+LPT_TM EQU 01094H
+LPOSB EQU 01095H
+PSMAL EQU 01096H
+PNMODE EQU 01097H
+DMD EQU 01098H
+MEMOP EQU 01099H
+PWMODE EQU 0109AH
+CMODE EQU 0109BH
+CPLANE EQU 0109CH
+MAXCF EQU 0109DH
+PMASK EQU 0109EH
+GMODE EQU 0109FH
+APTS EQU 010F0H
+NAME EQU 010F1H
+SIZE EQU 01102H
+DTADR EQU 01104H
+EXADR EQU 01106H
+COMNT EQU 01108H
+DTEFG EQU 01171H
+DTEFGX EQU 01172H
+TMCNT EQU 01195H
+SUMDT EQU 01197H
+CSMDT EQU 01199H
+TEMPW EQU 0119EH
+KEYBM1 EQU 011A3H
+KEYBUF EQU 011A4H
+KEY262 EQU 012AAH
+KEY264 EQU 012ACH
+KEY266 EQU 012AEH
+FUNBUF EQU 012B2H
+INBUFC EQU 01352H
+INBUFL EQU 01353H
+INBUF EQU 01354H
+TIMST EQU 00033H
+LINLIM EQU 01364H
+KEYDAT EQU 01365H
+AMPM EQU 01366H
+SECD EQU 01367H
+XS EQU 01369H
+XE EQU 0136AH
+CWIDTH EQU 0136BH
+CSIZE EQU 0136DH
+YS EQU 0136FH
+YE EQU 01370H
+YW EQU 01371H
+SOF EQU 01372H
+SW EQU 01374H
+SSA EQU 01375H
+SEA EQU 01376H
+SSW EQU 01377H
+CRTMD1 EQU 01379H
+CRTMD2 EQU 0137AH
+SELCOL EQU 0137BH
+PAIWED EQU 0137CH
+PALBK EQU 0137EH
+PALAD EQU 0137FH
+PALTBL EQU 01381H
+PAL2T EQU 01385H
+PAL4T EQU 01389H
+PAL16T EQU 0138DH
+CURDT1 EQU 01391H
+CURDT2 EQU 01399H
+CURDT3 EQU 013A1H
+SCRNT0 EQU 013A9H
+EMFLG EQU 013C3H
+EMPTR EQU 013C4H
+EMWP0 EQU 013C6H
+EMWP1 EQU 013C8H
+PBCN EQU 013CEH
+HERRF EQU 013D9H
+CTABLE EQU 013DAH
+FONTBF EQU 01000H
+TEXTBF EQU 02000H
+BITBUF EQU 08000H
+IBUFE EQU 010F0H
+ERRTXT EQU 0FDA0H
+VRAM EQU 0D000H
+ARAM EQU 0D800H
+MMIO EQU 0E000H
+TEMPO_ EQU 0E008H
+PPI_PA EQU 0E010H
+PPI_PB EQU 0E011H
+PPI_PC EQU 0E012H
+PPI_CTL EQU 0E013H
+ATRB EQU 010F0H
+PRGSTART EQU 00000H
+TAPECOPY EQU 01200H
+BUILD_ORIG EQU 1
+BUILD_RFS EQU 0
+
+ ; Create an MZF Tape header.
+ ORG ATRB
+
+ ; Declare the MZF header to bootstrap BASIC from tape/SD.
+BOOTATRB: DB 01h ; Code Type, 01 = Machine Code.
+BOOTNAME: IF BUILD_ORIG = 1
+ DB "BASIC 5Z-008B ", 0Dh ; Title/Name (17 bytes).
+ ENDIF
+ IF BUILD_RFS = 1
+ DB "BASIC 5Z-008BRFS", 0Dh ; Title/Name (17 bytes).
+ ENDIF
+BOOTSIZE: DW BASICEND - L0000 ; Size of program.
+BOOTDTADR: DW TAPECOPY ; Load address of program.
+BOOTEXADR: DW EXECSTART + TAPECOPY ; Exec address of program.
+BOOTCOMNT: DS 104
+
+ ORG PRGSTART
+
+L0000: JP L0CAF ; Cold start entry - JP to initialization
+
+L0003: JP L028C
+
+L0006: JP L05EC
+
+ JP L05E8
+
+L000C: JP L0BFD
+
+L000F: JP L05F1
+
+L0012: JP L0BFF
+
+L0015: JP L0BEE
+
+SVC_ENTRY: JP SVC_DISP ; RST 18H - SVC (Supervisor Call) dispatcher
+
+ JP L041C
+
+BRKCHK: JP L05C1
+
+ JP L30CB
+
+ JP L30D2
+
+L0027: JP L3114
+
+ JP L311B
+
+ JP L3153
+
+L0030: JP L14BC
+
+ JP L0955
+
+L0036: LD B,B
+ NOP
+RST38: JP BREAKZ ; RST 38H - Interrupt handler
+
+ JP L098F
+
+L003E: JP L0D3F
+
+L0041: JP L0D30
+
+ JP L0D05
+
+ JP L0D20
+
+ JP L028C
+
+L004D: DB 000H ; System status / work area
+L004E: DB 000H
+L004F: DB 0FFH
+L0050: DB 000H
+ DB 0C3H
+ DB 0EEH
+ DB 00BH
+L0054: DS 2, 000H
+L0056: DB 000H
+L0057: DB 018H
+ DB 0C3H
+ DB 08AH
+ DB 003H
+L005B: DB 000H
+ DB 027H
+L005D: DB 071H
+ DB 000H
+L005F: DB 000H
+L0060: DB 0EFH
+ DB 0C3H
+ DB 037H
+ DB 00AH
+L0064: DB 000H
+L0065: DB 000H
+L0066: DB 000H
+L0067: DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 0ADH
+ DB 007H
+ DB 0F1H
+ DB 008H
+L0071: DB 015H
+ DB 008H
+ DB 012H
+ DB 008H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+L0080: DB 000H
+L0081: DB 0ADH
+ DB 007H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 01EH
+ DB 008H
+ DB 0CCH
+ DB 007H
+ DB 0F0H
+ DB 007H
+ DB LSD1
+ DB 007H
+ DB QDPD
+ DB 007H
+ DB 054H
+ DB 007H
+ DB 074H
+ DB 007H
+ DB 018H
+ DB 008H
+ DB 0BAH
+ DB 008H
+ DB 012H
+ DB 008H
+ DB LSE5
+ DB 000H
+ DB 0ADH
+ DB 007H
+ DB LSE5
+L00A0: DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+.NOP: DB 000H
+.HL: DS 11, 000H
+.RET: DS 8, 000H
+PUSHRA: DS 6, 000H
+L00C0: DS 7, 000H
+PUSHR: DS 18, 000H
+L00D9: DB 000H
+L00DA: DI
+ LD SP,L0000
+ IM 1
+ OUT (LSE1),A
+ JP L1800
+
+BREAKZ: RET
+
+BREAKX: DI
+ OUT (LSE3),A
+L00E9: LD A,(HL)
+ OUT (LSE1),A
+ EI
+ERRORJ: RET
+
+POPRA: DI
+ OUT (LSE3),A
+ LD (HL),A
+ OUT (LSE1),A
+ EI
+ RET
+
+ JP L026A
+
+L00F9: NOP
+L00FA: JP (HL)
+
+IOOUT: EX (SP),IX
+ PUSH HL
+ PUSH BC
+ PUSH DE
+L0100: PUSH AF
+L0101: PUSH HL
+ LD HL,L0114
+ EX (SP),HL
+ JP (IX)
+
+SKPDE: EX (SP),IX
+ PUSH HL
+ PUSH BC
+ PUSH DE
+DEVASC: PUSH HL
+ LD HL,L0115
+ EX (SP),HL
+ JP (IX)
+
+L0114: POP AF
+L0115: POP DE
+ POP BC
+ POP HL
+ POP IX
+ RET
+
+CHKACC: EX (SP),HL
+ PUSH BC
+ LD B,(HL)
+L011E: INC HL
+ CP (HL)
+ JR Z,L0127 ; (+005H)
+ DJNZ L011E ; (-006H)
+ INC HL
+ JR L012A ; (+003H)
+
+L0127: INC HL
+ DJNZ L0127 ; (-003H)
+L012A: POP BC
+ EX (SP),HL
+ RET
+
+LDDEMI: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ RET
+
+LDDEMD: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ RET
+
+?CLRHL: XOR A
+?SETHL: LD (HL),A
+ INC HL
+ DJNZ ?SETHL ; (-004H)
+ RET
+
+?CLRDE: XOR A
+?SETDE: LD (DE),A
+ INC DE
+L0140: DJNZ ?SETDE ; (-004H)
+ RET
+
+LDDEHL: LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ DJNZ LDDEHL ; (-006H)
+ RET
+
+LDHLDE: LD A,(DE)
+ LD (HL),A
+ INC HL
+ INC DE
+ DJNZ LDHLDE ; (-006H)
+ RET
+
+INDRCT: PUSH AF
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ POP AF
+ RET
+
+ADDHLA: ADD A,L
+ LD L,A
+ RET NC
+ INC H
+ RET
+
+INCHLF: INC HL
+HLFTCH: LD A,(HL)
+ CP 020H
+ JR Z,INCHLF ; (-006H)
+ RET
+
+TEST1: CALL HLFTCH
+ EX (SP),HL
+L0168: CP (HL)
+ INC HL
+ EX (SP),HL
+ RET NZ
+ INC HL
+ RET
+
+TESTX: CALL HLFTCH
+ EX (SP),HL
+ CP (HL)
+ INC HL
+ EX (SP),HL
+ INC HL
+ RET Z
+ LD A,001H
+ JR L0182 ; (+007H)
+
+L017B: XOR A
+ LD HL,L803E
+ LD HL,L80F6
+L0182: PUSH AF
+ CALL L0D20
+ POP AF
+ JP L0000
+
+L018A: SBC A,L
+ DEC A
+ CALL PE,0E805H
+ DEC B
+ RST 038H
+ DEC BC
+ LD B,E
+ INC C
+ EX AF,AF'
+ ADD HL,BC
+ XOR C
+ RRCA
+ LD A,00FH
+ RET Z
+ DEC BC
+ JP Z,0D80BH
+ DEC BC
+ AND 00BH
+L01A2: ADC A,H
+ LD (BC),A
+ ADC A,D
+ INC BC
+ POP BC
+ DEC B
+ AND B
+ INC D
+ ADD A,A
+ LD A,(BC)
+ ADC A,C
+ LD A,(BC)
+ SCF
+ LD A,(BC)
+ LD B,(HL)
+ INC D
+ HALT
+ INC D
+ SUB C
+ INC D
+ LD B,014H
+ LD E,H
+ LD (BC),A
+ POP HL
+ INC C
+ RET PE
+ INC C
+ RST 028H
+ INC C
+ PUSH HL
+ INC D
+ AND H
+ INC DE
+ LD (HL),D
+ INC DE
+ LD C,E
+ LD B,LSE5
+ NOP
+ LD A,00DH
+ JR NC,L01CE ; (+000H)
+L01CE: PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ ADC A,A
+ ADD HL,BC
+ LD D,L
+ ADD HL,BC
+ SUB B
+L01D9: DEC C
+ RET PE
+ DEC DE
+ IN A,(01EH)
+ DEC E
+ RRA
+L01E0: POP AF
+ LD E,03DH
+ LD A,(DE)
+ CP B
+ LD A,(DE)
+ RET PO
+ ADD HL,DE
+ LD (HL),C
+ DEC DE
+ OR H
+ INC E
+ RET C
+ INC E
+ RET
+
+ INC E
+ POP HL
+ LD A,(DE)
+ RET NC
+ JR L01D9 ; (-01cH)
+
+ JR 00243H ; (+04cH)
+
+ ADD HL,DE
+ RRCA
+ JR L01A2 ; (-059H)
+
+ DEC DE
+ DEC DE
+ DEC E
+ DB 0DDH
+ INC D
+L0200: PUSH HL
+ NOP
+ LD E,B
+ LD E,067H
+ INC L
+ OR (HL)
+ INC L
+ LD B,(HL)
+ INC L
+ NOP
+ ADD HL,HL
+ SBC A,L
+ LD HL,(02925H)
+ XOR E
+ RRA
+ CALL M,L742A
+ RLCA
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+SVC_DISP: EX (SP),HL
+ PUSH AF
+ LD A,(HL)
+ INC HL
+ PUSH HL
+ LD HL,L018A
+ ADD A,A
+ ADD A,L
+ JR NC,L0237 ; (+001H)
+ INC H
+L0237: LD L,A
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ LD (00243H),HL
+ POP HL
+ POP AF
+ EX (SP),HL
+ JP L0000
+
+IOCALL: PUSH HL
+ PUSH DE
+ LD (00251H),IX
+ LD IX,00180H
+ OR A
+ CALL L0000
+ POP DE
+ POP HL
+ RET NC
+ OR A
+ SCF
+L0258: RET Z
+ JP 00180H
+
+ PUSH DE
+ LD B,000H
+L025F: LD A,(DE)
+ OR A
+ JR Z,L0268 ; (+005H)
+ INC DE
+ INC B
+ JR NZ,L025F ; (-008H)
+ DEC B
+L0268: POP DE
+ RET
+
+L026A: PUSH HL
+ LD HL,(L0054)
+ PUSH HL
+ PUSH DE
+ CALL PUSHW
+ POP DE
+ LD (HL),000H
+ POP HL
+ CALL L028C
+ JR C,L028A ; (+00eH)
+ LD A,(L005B)
+ SUB L
+ JR NC,L028A ; (+008H)
+ NEG
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ EX DE,HL
+ OR A
+L028A: POP HL
+ RET
+
+L028C: PUSH BC
+ PUSH HL
+ PUSH DE
+L028F: CALL L0391
+ CP 00DH
+ JP Z,L0311
+ CP 01BH
+ JR Z,L02E8 ; (+04dH)
+ PUSH AF
+ CP 020H
+DEASC: JR C,L02CD ; (+02dH)
+ JR L02C8 ; (+026H)
+
+L02A2: LD A,(L004D)
+ OR A
+ JR NZ,L02C8 ; (+020H)
+ LD A,(00B18H)
+ RRCA
+ JR C,L02C8 ; (+01aH)
+ LD A,(L004E)
+ OR A
+ JR NZ,L02C8 ; (+014H)
+ POP AF
+ LD HL,L06C1
+ CP 011H
+ JR Z,L02C3 ; (+007H)
+ LD HL,L06E7
+ CP 012H
+ JR NZ,L02C9 ; (+006H)
+L02C3: CALL L00FA
+ JR L028F ; (-039H)
+
+L02C8: POP AF
+L02C9: RST 018H
+ DB 003H
+ JR L028F ; (-03eH)
+
+L02CD: LD A,(L0060)
+ CP 0FFH
+ JR NZ,L02A2 ; (-032H)
+ POP AF
+ CP 017H
+ JR NC,L02C9 ; (-010H)
+ CP 011H
+ JR C,L02C9 ; (-014H)
+ LD HL,(00B18H)
+ BIT 6,L
+ JR Z,L02C9 ; (-01bH)
+ RST 018H
+ DB 004H
+ JR L028F ; (-059H)
+
+L02E8: SCF
+CKHEX: PUSH AF
+ LD A,00DH
+ RST 018H
+ DB 003H
+ POP AF
+ POP DE
+ POP HL
+ POP BC
+ RET
+
+L02F3: CALL PUSHW
+L02F6: LD A,(HL)
+ OR A
+MHALT: RET Z
+ DEC HL
+ DEC E
+ LD A,(L0056)
+ CP E
+ JR C,L02F6 ; (-00bH)
+ RET
+
+L0302: CALL PUSHW
+L0305: INC E
+ INC HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD A,(L0057)
+ CP E
+ JR NC,L0305 ; (-00bH)
+ RET
+
+L0311: LD HL,(L0054)
+SETDFL: CALL L02F3
+ LD D,E
+ CALL L0305
+ LD A,(L005B)
+ LD L,A
+ LD A,E
+ SUB D
+ LD E,A
+ LD H,D
+ADDP1: LD D,L
+ RST 018H
+ DB 01EH
+ LD A,(0005CH)
+ SUB D
+ADDP2: INC A
+ LD D,A
+ POP BC
+ PUSH BC
+ EXX
+ PUSH HL
+ LD HL,(L004F)
+ EXX
+L0334: PUSH DE
+ PUSH HL
+L0336: CALL BREAKX
+ RST 018H
+ DB 01CH
+ INC HL
+ LD (BC),A
+ INC BC
+L033E: EXX
+ DEC L
+ERRX: JR Z,L0354 ; (+012H)
+ EXX
+ DEC D
+ JR NZ,L0336 ; (-010H)
+ POP HL
+ PUSH BC
+ LD BC,00028H
+ ADD HL,BC
+ POP BC
+ POP DE
+ DEC E
+ JR NZ,L0334 ; (-01dH)
+ PUSH DE
+ PUSH HL
+ EXX
+L0354: EXX
+ POP HL
+ POP DE
+ EXX
+ POP HL
+ EXX
+ XOR A
+ LD (BC),A
+ LD L,C
+ LD H,B
+ POP DE
+ PUSH DE
+ PUSH HL
+ OR A
+ SBC HL,DE
+ LD B,L
+ POP HL
+ LD A,020H
+ LD D,A
+ JP Z,CKHEX
+ DEC HL
+L036D: LD A,(HL)
+ OR A
+ JR Z,L0376 ; (+005H)
+ CP D
+ JR NZ,L037D ; (+009H)
+ LD (HL),000H
+L0376: DEC HL
+ DJNZ L036D ; (-00cH)
+ OR A
+ JP CKHEX
+
+L037D: LD A,(HL)
+ OR A
+ JR NZ,L0383 ; (+002H)
+ LD (HL),020H
+L0383: DEC HL
+ DJNZ L037D ; (-009H)
+ OR A
+ JP CKHEX
+
+ INC A
+ JR Z,L0406 ; (+079H)
+ DEC A
+ JP Z,L041C
+L0391: CALL L0426
+ CALL SKPDE
+SETDNM: CALL L0648
+ CALL BREAKX
+ LD D,A
+ LD A,(L0060)
+ LD E,A
+ CALL POPRA
+ XOR A
+ DI
+ OUT (LSE3),A
+ LD (MMIO),A
+ CPL
+ LD (MMIO),A
+ OUT (LSE1),A
+ EI
+ LD C,000H
+ EX AF,AF'
+ PUSH AF
+ CALL L0459
+ LD A,000H
+L03BC: EX AF,AF'
+L03BD: LD B,010H
+L03BF: CALL L043C
+ CALL L0459
+ BIT 1,A
+ JR NZ,L03BD ; (-00cH)
+ DJNZ L03BF ; (-00cH)
+ BIT 0,A
+ JR Z,L03DB ; (+00cH)
+ BIT 2,A
+ JR NZ,L03EC ; (+019H)
+ EX AF,AF'
+ DEC A
+ JR NZ,L03BC ; (-01bH)
+ LD A,006H
+ JR L03EE ; (+013H)
+
+L03DB: PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,INKEY1
+ LD DE,L0B17
+ LD BC,0000AH
+L03E7: LDIR
+ POP BC
+ POP DE
+ POP HL
+L03EC: LD A,040H
+L03EE: LD (003BBH),A
+L03F1: CALL L043C
+ CALL L0494
+ OR A
+ JR Z,L03F1 ; (-009H)
+ LD (L005F),A
+ LD C,A
+ LD A,D
+ CALL POPRA
+ POP AF
+ EX AF,AF'
+ LD A,C
+ RET
+
+L0406: CALL L0426
+ PUSH HL
+ CALL L0494
+ LD HL,L005F
+ OR A
+ JR Z,L0419 ; (+006H)
+ CP (HL)
+ JR NZ,L0419 ; (+003H)
+ POP HL
+ XOR A
+ RET
+
+L0419: LD (HL),A
+ POP HL
+ RET
+
+L041C: CALL L0426
+ CALL L0494
+ LD (L005F),A
+ RET
+
+L0426: PUSH HL
+ LD HL,(L1360)
+ LD A,L
+ CP H
+ POP HL
+ RET Z
+ EX (SP),HL
+ INC A
+ LD (L1360),A
+ LD HL,L1361
+ CALL ADDHLA
+ LD A,(HL)
+ POP HL
+ RET
+
+L043C: DI
+ OUT (LSE3),A
+ LD A,(0E002H)
+ OUT (LSE1),A
+ EI
+ RLCA
+ RLCA
+ LD A,C
+ JR C,L0451 ; (+007H)
+ OR A
+ RET Z
+ LD C,000H
+ LD A,D
+DPALBK: JR L0456 ; (+005H)
+
+L0451: DEC A
+ RET Z
+ LD C,001H
+ LD A,E
+L0456: JP POPRA
+
+L0459: CALL SKPDE
+ LD DE,INKEY1
+ LD HL,L0B17
+ LD BC,L0A00
+ DI
+ OUT (LSE3),A
+L0468: LD A,B
+ ADD A,0EFH
+ LD (MMIO),A
+ CP FDPA
+ LD A,(0E001H)
+ JR NZ,L0477 ; (+002H)
+ OR 07FH
+L0477: CP 0FFH
+ JR Z,L047D ; (+002H)
+ SET 0,C
+L047D: EX DE,HL
+ CP (HL)
+ LD (HL),A
+ EX DE,HL
+ JR Z,L0485 ; (+002H)
+ SET 1,C
+L0485: CPL
+ AND (HL)
+ JR Z,L048B ; (+002H)
+ SET 2,C
+L048B: INC HL
+ INC DE
+ DJNZ L0468 ; (-027H)
+ LD A,C
+L0490: OUT (LSE1),A
+ EI
+DGCOL: RET
+
+L0494: CALL SKPDE
+ LD HL,L0B17
+ LD DE,INKEY1
+ PUSH HL
+ PUSH DE
+ LD BC,0000AH
+ LDIR
+ POP HL
+ POP DE
+ LD BC,L0AF9
+ DI
+ OUT (LSE3),A
+ LD A,C
+ LD (MMIO),A
+ NOP
+ LD A,(0E001H)
+ LD (DE),A
+L04B5: LD A,C
+ LD (MMIO),A
+ CP FDPA
+ LD A,(0E001H)
+ LD (DE),A
+ JR Z,L04E4 ; (+023H)
+ CPL
+ AND (HL)
+L04C3: LD (HL),A
+ INC DE
+ INC HL
+ DEC C
+ DJNZ L04B5 ; (-014H)
+ OUT (LSE1),A
+ EI
+ LD BC,L0A00
+L04CF: DEC HL
+ LD A,(HL)
+ OR A
+ JR NZ,L0507 ; (+033H)
+ INC C
+ DJNZ L04CF ; (-008H)
+ LD B,00AH
+L04D9: DEC DE
+ LD A,(DE)
+ CP 0FFH
+ JR NZ,L04E7 ; (+008H)
+L04DF: DJNZ L04D9 ; (-008H)
+L04E1: XOR A
+ JR L0490 ; (-054H)
+
+L04E4: XOR A
+ JR L04C3 ; (-024H)
+
+L04E7: LD A,B
+ CP 002H
+ JR NZ,L04F5 ; (+009H)
+L04EC: LD A,(DE)
+ AND 081H
+DWIDTH: JR NZ,L04DF ; (-012H)
+ LD A,01BH
+ JR L0490 ; (-065H)
+
+L04F5: CP 001H
+ JR Z,L04E1 ; (-018H)
+ CP 000H
+ JR NZ,L04DF ; (-01eH)
+ LD A,(DE)
+ AND 001H
+ JR NZ,L04DF ; (-023H)
+ LD A,(L005F)
+ JR L0490 ; (-077H)
+
+L0507: PUSH AF
+ LD A,B
+ LD (004FAH),A
+ LD A,(HL)
+ LD (004FFH),A
+ POP AF
+ DEC B
+ JR NZ,L054A ; (+036H)
+ CALL L05B7
+ LD A,(00B18H)
+ BIT 6,A
+ JR Z,L04E1 ; (-03dH)
+ BIT 0,A
+ LD A,B
+ JR NZ,L0525 ; (+002H)
+ ADD A,005H
+L0525: CP 00AH
+ JR NC,L04E1 ; (-048H)
+ LD L,A
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ LD BC,L12C0
+ ADD HL,BC
+ LD A,(HL)
+ OR A
+ JR Z,L04E1 ; (-057H)
+ LD DE,L1360
+ LD A,001H
+ LD (DE),A
+L053E: INC DE
+ LD BC,00010H
+ LDIR
+ LD A,(01362H)
+ JP L0490
+
+L054A: CALL L05B7
+ LD A,C
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,B
+ LD L,A
+ LD H,000H
+ LD A,(00B18H)
+ BIT 6,A
+ LD BC,L0B2B
+ JR Z,L058E ; (+02fH)
+ PUSH AF
+ LD A,(L0060)
+ CP 043H
+ JR NZ,L056B ; (+004H)
+ POP AF
+ XOR 001H
+ PUSH AF
+L056B: POP AF
+ BIT 0,A
+ JR NZ,L0573 ; (+003H)
+ LD BC,L0B3D
+L0573: LD A,(L0060)
+ CP 0FFH
+ JR NZ,L0587 ; (+00dH)
+ LD BC,L0B4F
+ LD A,(00B18H)
+ BIT 0,A
+ JR Z,L0587 ; (+003H)
+ LD BC,L0B61
+L0587: CALL L13E0
+ LD A,C
+ JP L0490
+
+L058E: CALL L13E0
+ LD A,C
+ CP 020H
+ JP C,L0490
+ LD HL,L0B73
+ LD B,005H
+L059C: CP (HL)
+ JR Z,L05B1 ; (+012H)
+ INC HL
+ DJNZ L059C ; (-006H)
+ CP 040H
+ JP C,L04E1
+ CP 05BH
+ JP NC,L04E1
+ SUB 040H
+ JP L0490
+
+L05B1: LD A,020H
+ SUB B
+ JP L0490
+
+L05B7: LD B,008H
+L05B9: RRCA
+ JR C,L05BF ; (+003H)
+ DJNZ L05B9 ; (-005H)
+ RET
+
+L05BF: DEC B
+ RET
+
+L05C1: LD A,0E8H
+ DI
+ OUT (LSE3),A
+ LD (MMIO),A
+ NOP
+ LD A,(0E001H)
+ OUT (LSE1),A
+ EI
+ AND 081H
+ RET Z
+ RLCA
+ RET C
+ JR L05C1 ; (-016H)
+
+L05D7: CALL SKPDE
+ LD HL,(L0054)
+ LD A,(L005B)
+ CP L
+ RET C
+ CALL PUSHW
+ LD A,(HL)
+ OR A
+ RET
+
+L05E8: CALL L05D7
+ RET Z
+L05EC: LD A,00DH
+ JP L0BFF
+
+L05F1: CALL L0BFD
+ LD A,(L0054)
+L05F7: SUB 00AH
+LBOUND: JR NC,L05F7 ; (-004H)
+ ADD A,00AH
+ RET Z
+ JR L05F1 ; (-00fH)
+
+L0600: CALL IOOUT
+ LD HL,(L0054)
+ PUSH HL
+ PUSH AF
+ RST 018H
+ DB 01EH
+ POP AF
+ RST 018H
+ DB 01DH
+ CALL POPRA
+ SET 3,H
+ LD DE,(0005DH)
+ LD A,E
+ OR D
+ CALL POPRA
+ POP HL
+ INC L
+HCLSW: LD A,(0005CH)
+ CP L
+ JP NC,L07EC
+L0624: LD A,(L005B)
+ LD L,A
+ INC H
+ PUSH HL
+ CALL PUSHW
+ LD (HL),001H
+ POP HL
+ LD A,(L0057)
+ CP H
+ JP NC,L07EC
+ LD H,A
+ PUSH HL
+ CALL L0730
+ POP HL
+ JP L07EC
+
+PUSHW: LD E,H
+ LD D,000H
+ LD HL,.HL
+ ADD HL,DE
+ RET
+
+L0648: LD HL,(L0054)
+ PUSH DE
+ PUSH AF
+ LD D,LSD0
+ LD E,L
+ LD A,H
+ ADD A,A
+HCLS: ADD A,A
+ ADD A,H
+ LD L,A
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,DE
+L065B: POP AF
+ POP DE
+ RET
+
+L065E: ADD A,A
+ LD HL,L0067
+ CALL ADDHLA
+ CALL INDRCT
+ JP (HL)
+
+L0669: LD B,D
+ LD C,E
+L066B: LD DE,00028H
+ EX DE,HL
+ ADD HL,DE
+ DEC B
+ JR Z,L067E ; (+00bH)
+ PUSH HL
+ PUSH BC
+ LD B,000H
+ CALL L069E
+ POP BC
+ POP HL
+ JR L066B ; (-013H)
+
+L067E: EX DE,HL
+ LD E,C
+L0680: LD A,(L005D)
+ LD D,A
+ LD A,(0005EH)
+ OR D
+ LD D,A
+L0689: DI
+ OUT (LSE3),A
+ LD (HL),000H
+ SET 3,H
+ LD (HL),D
+ RES 3,H
+ OUT (LSE1),A
+ EI
+ INC HL
+ DEC E
+ JR NZ,L0689 ; (-011H)
+ RET
+
+L069B: LD BC,00028H
+L069E: LD A,0B0H
+ JR L06A4 ; (+002H)
+
+L06A2: LD A,0B8H
+L06A4: LD (006BCH),A
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ RES 3,H
+ RES 3,D
+ CALL L06B8
+ POP BC
+ POP DE
+ POP HL
+ SET 3,H
+ SET 3,D
+L06B8: DI
+ OUT (LSE3),A
+ LDIR
+ OUT (LSE1),A
+ EI
+ RET
+
+L06C1: LD HL,VRAM
+ LD DE,0D7D0H
+ CALL L069B
+ LD HL,0D028H
+ LD DE,VRAM
+ LD B,032H
+L06D2: PUSH BC
+ CALL L069B
+ POP BC
+ DJNZ L06D2 ; (-007H)
+ LD HL,.HL
+ LD D,H
+ LD E,L
+ LD A,(HL)
+ INC HL
+ LD BC,00031H
+ LDIR
+ LD (DE),A
+ RET
+
+L06E7: LD HL,0D7CFH
+ LD DE,0D7F7H
+ LD B,032H
+L06EF: PUSH BC
+ LD BC,00028H
+ CALL L06A2
+ POP BC
+ DJNZ L06EF ; (-00aH)
+ LD HL,0D7D0H
+ LD DE,VRAM
+ CALL L069B
+ LD HL,L00D9
+ LD D,H
+ LD E,L
+ DEC HL
+ LD A,(DE)
+ LD BC,00031H
+ LDDR
+ LD (DE),A
+ RET
+
+L0710: LD HL,0D3E8H
+ XOR A
+ CALL POPRA
+ SET 3,H
+ LD A,(L005D)
+ CALL POPRA
+ LD DE,0D3E9H
+ LD BC,L0027
+ CALL L069E
+ CALL L06C1
+ XOR A
+ LD (L00C0),A
+ RET
+
+L0730: LD A,(L004E)
+ OR A
+ JR Z,L0710 ; (-026H)
+ CALL L075F
+ CALL L0669
+ LD A,(L0056)
+ LD H,A
+ CALL PUSHW
+ LD A,(L0057)
+ SUB E
+ LD B,A
+ LD (HL),000H
+ INC HL
+ LD D,H
+ LD E,L
+ INC DE
+ CALL NZ,LDHLDE
+ LD (HL),000H
+ RET
+
+L0754: LD A,(L005B)
+ LD L,A
+ LD A,(L0056)
+ LD H,A
+ JP L07EC
+
+L075F: LD HL,(L005B)
+ LD DE,(00056H)
+ LD A,D
+L0767: SUB E
+ INC A
+ LD D,A
+ LD A,H
+ SUB L
+ INC A
+L076D: LD E,A
+ CALL L0754
+ JP L0648
+
+ CALL SKPDE
+ LD A,(L004E)
+L077A: OR A
+ JR NZ,L078B ; (+00eH)
+ LD A,031H
+ LD (L0057),A
+ CALL L078B
+ LD A,018H
+ LD (L0057),A
+ RET
+
+L078B: CALL L075F
+L078E: PUSH DE
+ PUSH HL
+ CALL L0680
+ POP HL
+ LD BC,00028H
+ ADD HL,BC
+ POP DE
+ DEC D
+ JR NZ,L078E ; (-00eH)
+ LD A,(L0056)
+ LD H,A
+ CALL PUSHW
+ LD A,(L0057)
+ SUB E
+ ADD A,002H
+ LD B,A
+ JP ?CLRHL
+
+ XOR A
+ LD (0091FH),A
+ LD HL,(L0054)
+ PUSH HL
+ INC H
+ CALL PUSHW
+ LD A,(L0057)
+ LD D,A
+L07BD: LD A,(HL)
+ OR A
+ JR Z,L07C7 ; (+006H)
+ INC HL
+ INC E
+ LD A,D
+ CP E
+ JR NC,L07BD ; (-00aH)
+L07C7: DEC E
+ POP HL
+ LD H,E
+ JR L07DB ; (+00fH)
+
+ LD HL,(L0054)
+ JR L07DF ; (+00eH)
+
+ LD HL,(L0054)
+ INC L
+ LD A,(0005CH)
+ CP L
+ JR NC,L07EC ; (+011H)
+L07DB: LD A,(L005B)
+ LD L,A
+L07DF: INC H
+ LD A,(L0057)
+ CP H
+ JR NC,L07EC ; (+006H)
+ LD H,A
+ PUSH HL
+ CALL L0730
+ POP HL
+L07EC: LD (L0054),HL
+ RET
+
+ LD HL,(L0054)
+ JR L0802 ; (+00dH)
+
+ LD HL,(L0054)
+ LD A,(L005B)
+ CP L
+ JR C,0080DH ; (+00fH)
+ LD A,(0005CH)
+ LD L,A
+L0802: LD A,(L0056)
+ CP H
+ JR C,0080FH ; (+007H)
+ LD A,(L0056)
+ LD H,A
+ LD A,02DH
+ LD A,025H
+ JR L07EC ; (-026H)
+
+ LD A,0EFH
+ LD HL,L433E
+ LD HL,0FF3EH
+ LD (L0060),A
+ RET
+
+ LD HL,(L0054)
+ LD BC,(0005BH)
+ LD A,L
+ DEC L
+ INC C
+ CP C
+ JR NC,L0837 ; (+00cH)
+ PUSH HL
+ CALL PUSHW
+ LD A,(HL)
+ POP HL
+ INC L
+ OR A
+ JR Z,L0874 ; (+03fH)
+ LD L,B
+ DEC H
+L0837: LD DE,(00054H)
+ LD (L0054),HL
+L083E: EX DE,HL
+ LD A,(L005B)
+ CP L
+ JR C,L086D ; (+028H)
+L0845: PUSH HL
+ CALL PUSHW
+ LD A,(HL)
+ POP HL
+ OR A
+ JR Z,L085D ; (+00fH)
+ CALL L0882
+ PUSH HL
+ LD A,(0005CH)
+ LD L,A
+ DEC H
+ CALL L089A
+ POP HL
+ JR L0874 ; (+017H)
+
+L085D: LD A,(0005CH)
+ LD L,A
+ DEC H
+L0862: LD DE,(0005DH)
+ LD A,E
+ OR D
+ LD E,A
+ LD D,000H
+ JR L089A ; (+02dH)
+
+L086D: CALL L0882
+ DEC BC
+ CALL L0895
+L0874: INC L
+ LD A,(0005CH)
+ CP L
+ JR NC,L086D ; (-00eH)
+ LD A,(L005B)
+ LD L,A
+ INC H
+ JR L0845 ; (-03dH)
+
+L0882: PUSH HL
+ RST 018H
+ DB 01EH
+ SET 3,H
+ CALL BREAKX
+ LD E,A
+ RES 3,H
+ CALL BREAKX
+ LD D,A
+ LD B,H
+ LD C,L
+ POP HL
+ RET
+
+L0895: PUSH HL
+ LD H,B
+ LD L,C
+ JR L089D ; (+003H)
+
+L089A: PUSH HL
+ RST 018H
+ DB 01EH
+L089D: SET 3,H
+ LD A,E
+ CALL POPRA
+ RES 3,H
+ LD A,D
+ CALL POPRA
+ LD B,H
+ LD C,L
+ POP HL
+ RET
+
+L08AD: LD HL,(L0054)
+ CALL L0302
+ DEC E
+ LD H,E
+ LD A,(0005CH)
+ LD L,A
+ RET
+
+ CALL L08AD
+ CALL L0882
+ LD A,0F0H
+ CP D
+ JR Z,L08C8 ; (+003H)
+ XOR A
+ CP D
+ RET NZ
+L08C8: LD BC,(0005BH)
+ EX DE,HL
+ LD HL,(L0054)
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ JR Z,L0862 ; (-074H)
+ LD A,C
+ CP L
+ JR NC,L08E4 ; (+00aH)
+ DEC L
+ CALL L0882
+ INC BC
+ CALL L0895
+ JR L08C8 ; (-01cH)
+
+L08E4: PUSH HL
+ LD L,B
+ DEC H
+ CALL L0882
+ EX (SP),HL
+ CALL L089A
+ POP HL
+ JR L08C8 ; (-029H)
+
+ LD HL,L0071
+ LD (L005D),HL
+L08F7: LD HL,L1800
+ LD (L0056),HL
+ LD HL,L2700
+ LD (L005B),HL
+ XOR A
+ LD (L004E),A
+ RET
+
+ CALL SKPDE
+L090B: LD A,(DE)
+ INC DE
+ OR A
+ RET Z
+ LD C,A
+ CP 005H
+ JR Z,L0933 ; (+01fH)
+ CP 006H
+ JR Z,L0932 ; (+01aH)
+ SUB 041H
+ CP 01AH
+ JR NC,HCURON ; (+00dH)
+ LD A,000H
+ OR A
+ JR Z,HCURON ; (+008H)
+ LD A,C
+ LD HL,L08F7
+ CALL ADDHLA
+ LD C,(HL)
+HCURON: LD A,C
+ RST 018H
+ DB 003H
+ CP 00DH
+ JR NZ,L090B ; (-027H)
+L0932: XOR A
+L0933: LD (0091FH),A
+ JR L090B ; (-02dH)
+
+ AND C
+ SBC A,D
+ SBC A,A
+HCUROF: SBC A,H
+ SUB D
+ XOR D
+ SUB A
+ SBC A,B
+ AND (HL)
+ XOR A
+ XOR C
+ CP B
+ OR E
+FLASH: OR B
+ OR A
+ SBC A,(HL)
+ AND B
+ SBC A,L
+ AND H
+ SUB (HL)
+ AND L
+CURMOV: XOR E
+ AND E
+ SBC A,E
+ CP L
+ AND D
+ NOP
+ NOP
+L0954: NOP
+L0955: PUSH DE
+ PUSH HL
+ LD (L0954),A
+ LD (00952H),DE
+ LD HL,0E007H
+ DI
+ OUT (LSE3),A
+ LD (HL),0B4H
+ LD (HL),074H
+ DEC HL
+ LD (HL),0C0H
+ LD (HL),0A8H
+ DEC HL
+ LD (HL),002H
+ LD (HL),000H
+L0972: LD HL,0E007H
+ LD (HL),080H
+PONTCB: DEC HL
+ LD E,(HL)
+ LD D,(HL)
+PONTB: LD HL,0A8C0H
+ OR A
+ SBC HL,DE
+ JR NZ,L0972 ; (-010H)
+ LD HL,0E005H
+ LD (HL),0F6H
+ LD (HL),079H
+ OUT (LSE1),A
+ EI
+ POP HL
+ POP DE
+ RET
+
+L098F: PUSH BC
+ PUSH HL
+ DI
+ OUT (LSE3),A
+ LD HL,0E007H
+ LD (HL),080H
+ LD (HL),040H
+ DEC HL
+ LD E,(HL)
+ LD D,(HL)
+ DEC HL
+ LD C,(HL)
+ LD B,(HL)
+ OUT (LSE1),A
+ EI
+ PUSH BC
+ LD A,D
+L09A6: OR E
+ JR NZ,L09AC ; (+003H)
+ LD DE,0A8C0H
+L09AC: LD HL,0A8C0H
+ LD A,(L0954)
+ OR A
+ SBC HL,DE
+ LD DE,L5460
+ CALL L09EB
+ OR A
+ LD DE,(00952H)
+ RR D
+ RR E
+ PUSH AF
+ ADD HL,DE
+ LD DE,L5460
+ CALL L09EB
+ LD C,A
+ ADD HL,HL
+ EX DE,HL
+ POP AF
+ LD A,C
+ POP BC
+ PUSH AF
+ OR A
+ LD HL,L3CFB
+ SBC HL,BC
+ JR C,L09DC ; (+001H)
+ INC DE
+L09DC: POP AF
+ JR NC,L09E0 ; (+001H)
+ INC DE
+L09E0: EX DE,HL
+ LD DE,0A8C0H
+ CALL L09EB
+ EX DE,HL
+ POP HL
+ POP BC
+ RET
+
+L09EB: OR A
+ SBC HL,DE
+ JR NC,L09F2 ; (+002H)
+ ADD HL,DE
+ RET
+
+L09F2: XOR 001H
+ RET
+
+L09F5: LD A,04EH
+ DEC L
+ RET Z
+ LD A,056H
+ DEC L
+ RET Z
+ LD A,05EH
+ DEC L
+L0A00: RET Z
+L0A01: LD A,066H
+ DEC L
+ RET
+
+L0A05: PUSH DE
+ LD (00A23H),A
+ LD DE,0FFFFH
+ LD HL,0E002H
+ DI
+ OUT (LSE3),A
+L0A12: BIT 7,(HL)
+ JR Z,L0A12 ; (-004H)
+L0A16: BIT 7,(HL)
+ JR NZ,L0A16 ; (-004H)
+L0A1A: LD L,008H
+ LD A,011H
+L0A1E: DEC A
+ JR NZ,L0A1E ; (-003H)
+L0A21: INC DE
+ BIT 0,(HL)
+ JR Z,L0A21 ; (-005H)
+ OUT (LSE1),A
+ EI
+ LD A,D
+ OR A
+ LD A,E
+ JR Z,L0A30 ; (+002H)
+ LD A,0FFH
+L0A30: LD (L0066),A
+ POP DE
+ POP HL
+ SCF
+ RET
+
+ INC A
+ PUSH HL
+ LD L,A
+ CALL L09F5
+ JR Z,L0A05 ; (-03aH)
+ CALL L09F5
+ LD (00A75H),A
+ LD (00A55H),A
+ LD HL,0E002H
+ DI
+ OUT (LSE3),A
+L0A4E: BIT 7,(HL)
+ JR Z,L0A4E ; (-004H)
+ LD L,008H
+ BIT 0,(HL)
+ LD A,L
+ JR Z,L0A5A ; (+001H)
+ XOR A
+L0A5A: LD (00A7CH),A
+ OUT (LSE1),A
+ LD A,009H
+L0A61: PUSH AF
+ XOR A
+L0A63: DEC A
+ JR NZ,L0A63 ; (-003H)
+ POP AF
+BINPUT: DEC A
+ JR NZ,L0A61 ; (-009H)
+ OUT (LSE3),A
+ LD L,002H
+L0A6E: BIT 7,(HL)
+ JR Z,L0A6E ; (-004H)
+ LD L,008H
+ BIT 0,(HL)
+ LD A,L
+ JR Z,L0A7A ; (+001H)
+ XOR A
+L0A7A: LD L,A
+ LD A,000H
+ AND L
+ LD (L0065),A
+ OUT (LSE1),A
+ EI
+GETL: POP HL
+ OR A
+ RET
+
+ DI
+ RET
+
+ EI
+ RET
+
+ DS 110, 000H
+L0AF9: DS 30, 000H
+L0B17: DS 3, 000H
+INKEY$: DS 7, 000H
+INKEY1: DS 10, 000H
+L0B2B: JP PE,0900BH
+ RLA
+ CALL M,00019H
+ DEC SP
+ LD A,(L180D)
+ DJNZ L0B4A ; (+012H)
+ LD DE,01413H
+ CCF
+ CPL
+L0B3D: LD HL,(0900CH)
+ RLA
+ EI
+ DEC B
+ NOP
+ DEC HL
+ LD HL,(0160DH)
+ DEC D
+ LD (DE),A
+L0B4A: LD DE,01413H
+ ADD A,05FH
+L0B4F: JP (HL)
+
+ INC C
+ SUB B
+ RLA
+ LD L,B
+ DEC B
+ NOP
+ ADD A,H
+ JP (HL)
+
+ DEC C
+ LD D,015H
+ LD (DE),A
+ LD DE,01413H
+ ADC A,A
+ ADC A,E
+L0B61: LD L,D
+ INC C
+ SUB B
+ RLA
+ LD L,H
+ ADD HL,DE
+ NOP
+ CP 089H
+ DEC C
+ LD D,015H
+ LD (DE),A
+ LD DE,01413H
+ ADC A,D
+ LD A,E
+L0B73: LD E,E
+ LD E,H
+ LD E,L
+ LD E,(HL)
+ CPL
+$CRT: DB 091H,00BH,"CRT",000H,08AH ; $CRT - CRT device descriptor
+ DS 2, 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+INKEYF: DB 0AAH
+ DB 00BH
+ DB 0B5H
+ DB 00BH
+ DB 0C4H
+ DB 00BH
+$KB_: DB 000H ; $KB - Keyboard device descriptor
+ DB 00FH
+ DB 04BH
+ DB 042H
+ DS 2, 000H
+ DB 081H
+ DS 2, 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+INKEY0: DB 000H
+ DB LSE5
+ DB 000H
+ DB 0AAH
+ DB 00BH
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ RST 018H
+ DB 00CH
+ LD A,080H
+ RET C
+ JP C,0017DH
+ RST 018H
+ DB 017H
+ RET
+
+ EX AF,AF'
+ LD HL,L0BFF
+L0BB9: LD A,(L1090)
+ OR A
+ JR Z,L0BC2 ; (+003H)
+ LD HL,L0C43
+L0BC2: EX AF,AF'
+ JP (HL)
+
+ LD A,(L0054)
+ RET
+
+ LD A,00DH
+L0BCA: PUSH AF
+ LD A,(L1091)
+L0BCE: OR A
+ JR NZ,L0BD4 ; (+003H)
+ POP AF
+ JR L0BFF ; (+02bH)
+
+L0BD4: POP AF
+ JP L0F3E
+
+ PUSH AF
+ LD A,(L1091)
+ OR A
+ JR NZ,L0BE2 ; (+003H)
+ POP AF
+ JR L0C43 ; (+061H)
+
+L0BE2: POP AF
+ JP L0F2E
+
+ CALL SKPDE
+ LD HL,L0BCA
+ JR L0BF4 ; (+006H)
+
+L0BEE: CALL SKPDE
+ LD HL,L0BFF
+L0BF4: LD A,(DE)
+ OR A
+ RET Z
+ CALL L00FA
+ INC DE
+ JR L0BF4 ; (-009H)
+
+L0BFD: LD A,020H
+L0BFF: CALL IOOUT
+L0C02: LD C,A
+ LD A,(L004D)
+ OR A
+ JR Z,L0C3A ; (+031H)
+ LD A,C
+ CP 020H
+ JR NC,L0C37 ; (+029H)
+ LD DE,(00054H)
+ LD HL,(L005B)
+ CP 014H
+ JR Z,L0C21 ; (+008H)
+ CP 012H
+ JR NZ,L0C26 ; (+009H)
+ LD HL,(L0056)
+ LD E,D
+L0C21: LD A,L
+ CP E
+ JP NC,L0D3F
+L0C26: LD A,C
+ LD HL,L0C8F
+ ADD A,L
+ LD L,A
+ JR NC,L0C2F ; (+001H)
+ INC H
+L0C2F: LD A,(HL)
+ INC A
+ JR Z,L0C3A ; (+007H)
+ DEC A
+ JP Z,L0D3F
+L0C37: CALL L0C60
+L0C3A: LD A,C
+ CP 020H
+ JP C,L065E
+ JP L0600
+
+L0C43: CALL IOOUT
+ LD C,A
+ CP 00DH
+ JR Z,L0C02 ; (-049H)
+ CALL L0600
+ LD A,(L004D)
+ OR A
+ RET Z
+ LD A,C
+ CP 011H
+ JR C,L0C8A ; (+032H)
+ CP 017H
+ JR C,L0C8C ; (+030H)
+ CP 020H
+ JR C,L0C8A ; (+02aH)
+L0C60: CP 060H
+ JR C,L0C8C ; (+028H)
+ CALL CHKACC
+ ADD HL,BC
+ ADD A,B
+ LD A,E
+ ADD A,08BH
+ RST 010H
+ RST 008H
+ CALL M,0FFFBH
+ JR Z,L0C8C ; (+019H)
+ CP 092H
+ JR C,L0C8A ; (+013H)
+ CALL CHKACC
+ ADD HL,BC
+ SBC A,C
+ SUB L
+ XOR H
+ AND A
+ OR H
+ OR C
+ OR (HL)
+ OR L
+ CP H
+ JR Z,L0C8A ; (+004H)
+ CP 0BFH
+ JR C,L0C8C ; (+002H)
+L0C8A: LD A,02EH
+L0C8C: JP L0FA9
+
+L0C8F: NOP
+ NOP
+ NOP
+ NOP
+ RST 038H
+ RST 038H
+ RST 038H
+ DEC E
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC C
+ NOP
+ NOP
+ NOP
+ LD A,(BC)
+ INC BC
+ JR NZ,00CB2H ; (+00eH)
+ NOP
+ NOP
+ RST 038H
+ NOP
+ RST 038H
+ RST 038H
+ DEC C
+ RST 038H
+ NOP
+ NOP
+ NOP
+L0CAF: DI
+ XOR A
+ LD (L004D),A
+ LD (L1091),A
+ LD SP,L0000
+ OUT (LSE1),A
+ LD A,004H
+ RST 018H
+ DB 003H
+L0CC0: LD HL,L1B18
+ XOR A
+ LD (L0CC0),A
+ LD D,A
+ LD E,A
+ RST 018H
+ DB 026H
+ LD DE,$CMT
+ LD A,B
+ DEC A
+ JR Z,L0CDB ; (+009H)
+ LD DE,$FD
+ DEC A
+ JR Z,L0CDB ; (+003H)
+ LD DE,$QD
+L0CDB: LD A,C
+ RST 018H
+ DB 03AH
+ JP L00DA
+
+ LD HL,(L1072)
+ ADD HL,DE
+ LD (L1072),HL
+ LD HL,(L1074)
+ ADD HL,DE
+ LD (L1074),HL
+ LD HL,(L1076)
+ ADD HL,DE
+ LD (L1076),HL
+ LD HL,(L1078)
+ ADD HL,DE
+ LD (L1078),HL
+ LD HL,(L107A)
+ ADD HL,DE
+ LD (L107A),HL
+ RET
+
+L0D05: LD HL,(00B15H)
+L0D08: LD A,H
+ OR L
+ JR Z,L0D20 ; (+014H)
+ PUSH DE
+ EX DE,HL
+ LD HL,0E004H
+ DI
+ OUT (LSE3),A
+ LD (HL),E
+ LD (HL),D
+ LD A,001H
+ LD (TEMPO_),A
+ OUT (LSE1),A
+ EI
+ POP DE
+ RET
+
+L0D20: LD A,036H
+BRKEY: DI
+ OUT (LSE3),A
+ LD (0E007H),A
+ XOR A
+ LD (TEMPO_),A
+ OUT (LSE1),A
+ EI
+ RET
+
+L0D30: PUSH AF
+ PUSH BC
+ AND 00FH
+ LD B,A
+ LD A,008H
+ SUB B
+ LD (0119EH),A
+ POP BC
+ POP AF
+ RET
+
+L0D3E: XOR A
+L0D3F: PUSH HL
+ LD HL,L04EC
+ JR Z,L0D4E ; (+009H)
+ CP 001H
+L0D47: JR Z,L0D59 ; (+010H)
+ CALL L0D08
+ POP HL
+ RET
+
+L0D4E: CALL L0D08
+ LD HL,L2710
+L0D54: DEC HL
+ LD A,H
+ OR L
+ JR NZ,L0D54 ; (-005H)
+L0D59: CALL L0D20
+ POP HL
+ RET
+
+$USR: DS 2, 000H ; $USR - User device descriptor
+L0D60: DB "USR",000H,09FH
+ DS 2, 000H
+ DB LSE5
+ DB 000H
+ DB 077H
+ DB 00DH
+ DB 077H
+ DB 00DH
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 086H
+ DB 00DH
+ DB 086H
+ DB 00DH
+ DB LSE5
+ DB 000H
+ LD HL,L1001
+ RST 018H
+ DB 013H
+ LD A,D
+ OR E
+ JP Z,01F9AH
+ LD (ZWRK1),DE
+ RET
+
+ LD HL,(ZWRK1)
+ JP (HL)
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD A,(L1050)
+ BIT 7,A
+ JP NZ,01F97H
+ JP L1989
+
+L0D9B: LD B,(IY+000H)
+ CALL L1C39
+ LD A,(L1000)
+ CP B
+ JP NZ,01F9DH
+ RET
+
+L0DA9: LD A,(L004D)
+ OR A
+ LD A,(L1095)
+ RET Z
+ LD A,(L0054)
+ RET
+
+ DS 40, 000H
+EQTBL: DS 25, 000H
+$KB: DS 10, 000H
+L0E00: DS 16, 000H
+L0E10: DS 46, 000H
+L0E3E: DS 35, 000H
+CRT1C: DS 82, 000H
+PLTOTX: DS 77, 000H
+$LPT: DB 0F7H,"/LPT",000H,08AH ; $LPT - Line printer device descriptor
+ DS 2, 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DS 3, 000H
+ DB 027H
+ DB 00FH
+ DB 019H
+ DB 00FH
+ JP L0DA9
+
+ RET
+
+L0F1D: LD A,00DH
+ CALL L0FA9
+ XOR A
+ LD (L1095),A
+ RET
+
+ LD HL,L1090
+ BIT 0,(HL)
+ JR Z,L0F3E ; (+010H)
+L0F2E: CALL IOOUT
+ LD B,A
+ LD A,(L004D)
+ OR A
+ LD A,B
+ LD E,0FFH
+ JR Z,L0F4E ; (+013H)
+ RST 018H
+ DB 004H
+ RET
+
+L0F3E: CALL IOOUT
+ LD B,A
+ LD A,(L004D)
+ OR A
+ LD A,B
+ LD E,000H
+ JR Z,L0F4E ; (+003H)
+ RST 018H
+ DB 003H
+ RET
+
+L0F4E: LD A,(L1097)
+ CP 001H
+ LD A,044H
+ JP NZ,00180H
+ LD A,B
+ CP 00DH
+ JR Z,L0F1D ; (-040H)
+ LD HL,L1095
+ INC (HL)
+ SUB 005H
+ CP 002H
+ JR C,L0F7C ; (+015H)
+ LD A,B
+ CP 020H
+ JR NC,L0FB0 ; (+044H)
+ BIT 0,E
+ JR Z,L0F80 ; (+010H)
+ SUB 011H
+ CP 006H
+ JR C,L0FB1 ; (+03bH)
+ SUB QDPC
+ CP 002H
+ JR NC,L0FAE ; (+032H)
+L0F7C: LD A,02EH
+ JR L0FB0 ; (+030H)
+
+L0F80: LD HL,L1095
+ DEC (HL)
+ LD A,B
+ CP 015H
+ LD B,00FH
+ JR Z,L0FB1 ; (+026H)
+ CP 011H
+ LD B,009H
+ JR Z,L0FB1 ; (+020H)
+ CP 012H
+ LD B,00BH
+ JR Z,L0FB1 ; (+01aH)
+ CP 016H
+ JR NZ,L0FB0 ; (+015H)
+ LD A,00CH
+ CALL L0FB0
+ LD A,00AH
+ CALL L0FB0
+ LD A,003H
+ JR L0FB0 ; (+007H)
+
+L0FA9: CALL IOOUT
+ JR L0FB0 ; (+002H)
+
+L0FAE: LD A,020H
+L0FB0: LD B,A
+L0FB1: CALL L0FCA
+ LD A,B
+ DI
+ CALL L0FBB
+ EI
+ RET
+
+L0FBB: OUT (0FFH),A
+ LD A,080H
+ OUT (0FEH),A
+ LD A,001H
+ CALL L0FCB
+L0FC6: XOR A
+ OUT (0FEH),A
+ RET
+
+L0FCA: XOR A
+L0FCB: CALL SKPDE
+ LD C,A
+ LD B,00EH
+L0FD1: LD HL,0E678H
+L0FD4: IN A,(0FEH)
+ AND 00DH
+ CP C
+ RET Z
+ DEC HL
+ LD A,H
+ OR L
+ NOP
+ NOP
+ JR NZ,L0FD4 ; (-00dH)
+ DJNZ L0FD1 ; (-012H)
+ XOR A
+ LD (L004D),A
+ CALL L0FC6
+ LD A,041H
+ JP L0182
+
+ DS 17, 000H
+L1000: DB 000H
+L1001: DS 17, 000H
+L1012: DS 2, 000H
+L1014: DS 4, 000H
+L1018: DS 38, 000H
+L103E: DS 2, 000H
+L1040: LD (BC),A
+ NOP
+L1042: NOP
+L1043: NOP
+L1044: NOP
+ NOP
+L1046: NOP
+ NOP
+ NOP
+ NOP
+L104A: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1050: LD BC,L0000
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1069: NOP
+ NOP
+ NOP
+ LD A,B
+ DEC BC
+ NOP
+ RRCA
+L1070: NOP
+ NOP
+L1072: NOP
+ NOP
+L1074: NOP
+ NOP
+L1076: NOP
+ NOP
+L1078: NOP
+ NOP
+L107A: NOP
+ NOP
+L107C: NOP
+ NOP
+L107E: NOP
+ NOP
+ NOP
+ RST 038H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1090: NOP
+L1091: NOP
+ LD BC,L0E00
+L1095: NOP
+ NOP
+L1097: LD BC,L0000
+ DS 86, 000H
+L10F0: DS 78, 000H
+L113E: DS 84, 000H
+ RST 028H
+ NOP
+ NOP
+ NOP
+ NOP
+L1197: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD BC,00504H
+ DS 3, 000H
+L11A3: DB 000H
+L11A4: DS 154, 000H
+L123E: DS 57, 000H
+L1277: DS 73, 000H
+L12C0: RLCA
+ LD D,D
+ LD D,L
+ LD C,(HL)
+ JR NZ,012E6H ; (+020H)
+ JR NZ,L12D5 ; (+00dH)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC B
+ LD C,H
+ LD C,C
+ LD D,E
+ LD D,H
+L12D5: JR NZ,L12D7 ; (+000H)
+L12D7: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC B
+ LD B,C
+ LD D,L
+ LD D,H
+ LD C,A
+ JR NZ,L12E7 ; (+000H)
+L12E7: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD B,052H
+ LD B,L
+ LD C,(HL)
+ LD D,L
+ LD C,L
+ JR NZ,L12F8 ; (+000H)
+L12F8: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ INC B
+ LD B,H
+ LD C,C
+ LD D,D
+ JR NZ,L1306 ; (+000H)
+L1306: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC B
+ LD B,E
+ LD C,B
+ LD D,D
+ INC H
+ JR Z,L1317 ; (+000H)
+L1317: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ EX AF,AF'
+ LD B,H
+ LD B,L
+L1323: LD B,(HL)
+ JR NZ,L1371 ; (+04bH)
+ LD B,L
+ LD E,C
+ JR Z,L132A ; (+000H)
+L132A: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ INC B
+ LD B,E
+ LD C,A
+ LD C,(HL)
+ LD D,H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L133E: NOP
+ NOP
+ LD B,053H
+ LD B,C
+ LD D,(HL)
+ LD B,L
+ JR NZ,L1367 ; (+020H)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD B,04CH
+ LD C,A
+ LD B,C
+ LD B,H
+ JR NZ,L1377 ; (+020H)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1360: NOP
+L1361: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1367: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1371: NOP
+ CALL L13D8
+ JR Z,L1385 ; (+00eH)
+L1377: CP 010H
+ JR C,L139B ; (+020H)
+ CP 080H
+ JR Z,L13A1 ; (+022H)
+ CP 0C0H
+ JR Z,L13A1 ; (+01eH)
+ JR L1391 ; (+00cH)
+
+L1385: CP 003H
+ JR Z,L139B ; (+012H)
+ CP 005H
+ JR Z,L139E ; (+011H)
+ CP 006H
+ JR Z,L139E ; (+00dH)
+L1391: DI
+ OUT (LSE2),A
+ CALL L0BB9
+ OUT (LSE0),A
+ EI
+ RET
+
+L139B: LD A,0F0H
+ RET
+
+L139E: ADD A,0C9H
+ RET
+
+L13A1: SUB 040H
+ RET
+
+L13A4: CP 0F0H
+ JR NC,L13CF ; (+027H)
+ CP 073H
+ JR Z,L139B ; (-011H)
+ CALL L13D8
+ JR Z,L13BB ; (+00aH)
+ CP 040H
+ JR Z,L13D5 ; (+020H)
+ CP 080H
+ JR Z,L13D5 ; (+01cH)
+ JR L13C3 ; (+008H)
+
+L13BB: CP 0CEH
+ JR Z,L13D2 ; (+013H)
+ CP 0CFH
+ JR Z,L13D2 ; (+00fH)
+L13C3: DI
+ OUT (LSE2),A
+ CALL L0BCE
+ OUT (LSE0),A
+ EI
+ CP 0F0H
+ RET NZ
+L13CF: LD A,020H
+ RET
+
+L13D2: SUB 0C9H
+ RET
+
+L13D5: ADD A,040H
+ RET
+
+L13D8: PUSH HL
+ LD HL,L0036
+ BIT 6,(HL)
+ POP HL
+ RET
+
+L13E0: PUSH AF
+ LD A,L
+ SUB 008H
+ JR C,L13EA ; (+004H)
+ SUB 030H
+ JR C,L13F1 ; (+007H)
+L13EA: ADD A,00AH
+ LD L,A
+ ADD HL,BC
+ LD C,(HL)
+ POP AF
+ RET
+
+L13F1: LD A,(BC)
+ PUSH AF
+ INC BC
+ LD A,(BC)
+ LD B,A
+ POP AF
+ LD C,A
+ ADD HL,BC
+ DI
+ OUT (LSE2),A
+ LD A,(HL)
+ OUT (LSE0),A
+ EI
+ CALL L13A4
+ LD C,A
+ POP AF
+ RET
+
+ PUSH HL
+ PUSH BC
+ PUSH DE
+ LD DE,L2710
+ CALL L142C
+ LD DE,003E8H
+ CALL L142C
+ LD DE,L0064
+ CALL L142C
+ LD DE,0000AH
+ CALL L142C
+ LD A,L
+ POP DE
+ OR 030H
+ LD (DE),A
+ INC DE
+ XOR A
+ LD (DE),A
+ POP BC
+ POP HL
+ RET
+
+L142C: LD A,0FFH
+L142E: INC A
+ OR A
+ SBC HL,DE
+ JR NC,L142E ; (-006H)
+ ADD HL,DE
+ OR A
+ JR NZ,L143B ; (+003H)
+ OR B
+ RET Z
+ XOR A
+L143B: LD B,001H
+ OR 030H
+ POP DE
+ EX (SP),HL
+ LD (HL),A
+ INC HL
+ EX (SP),HL
+ PUSH DE
+ RET
+
+ CALL TEST1
+ DB 024H
+ JR Z,L1476 ; (+02aH)
+ LD DE,L0000
+L144F: CALL HLFTCH
+ SUB 030H
+ CP 00AH
+ RET NC
+ INC HL
+ PUSH HL
+ LD H,D
+ LD L,E
+ ADD HL,HL
+ JR C,L1471 ; (+013H)
+ ADD HL,HL
+ JR C,L1471 ; (+010H)
+ ADD HL,DE
+ JR C,L1471 ; (+00dH)
+ ADD HL,HL
+ JR C,L1471 ; (+00aH)
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ JR C,L1471 ; (+004H)
+ EX DE,HL
+ POP HL
+ JR L144F ; (-022H)
+
+L1471: LD A,002H
+ JP L0182
+
+L1476: LD DE,L0000
+L1479: LD A,(HL)
+ CALL L1491
+ RET C
+ INC HL
+ EX DE,HL
+ ADD HL,HL
+ JR C,L1471 ; (-012H)
+ ADD HL,HL
+ JR C,L1471 ; (-015H)
+ ADD HL,HL
+ JR C,L1471 ; (-018H)
+ ADD HL,HL
+ JR C,L1471 ; (-01bH)
+ ADD A,L
+ LD L,A
+ EX DE,HL
+ JR L1479 ; (-018H)
+
+L1491: SUB 030H
+ CP 00AH
+ CCF
+ RET NC
+ SUB 011H
+ CP 006H
+ CCF
+ RET C
+ ADD A,00AH
+ RET
+
+ CALL L14AD
+ CP 020H
+ RET NZ
+L14A6: CALL L14AD
+ OR A
+ JR Z,L14A6 ; (-006H)
+ RET
+
+L14AD: RST 018H
+ DB 00EH
+ JR Z,L14B8 ; (+007H)
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ CP 01BH
+ RET NZ
+L14B8: JP 0017DH
+
+ RET
+
+L14BC: CALL SKPDE
+ LD HL,L11A4
+ LD B,000H
+ PUSH HL
+ CALL LDHLDE
+ POP DE
+ LD (014DAH),SP
+ LD SP,L10F0
+ DI
+ OUT (LSE4),A
+ RST 030H
+ OUT (LSE0),A
+ OUT (LSE1),A
+ EI
+ LD SP,L0000
+ RET
+
+ LD (DDEV),DE
+ LD (L1069),A
+ RET
+
+ LD C,A
+ RST 018H
+ DB 020H
+ RST 018H
+ DB 002H
+ BIT 7,C
+ JR Z,L14F8 ; (+00aH)
+ LD HL,L11A4
+ PUSH HL
+ CALL L1535
+ POP DE
+ RST 018H
+ DB 005H
+L14F8: LD A,C
+ AND 07FH
+ JR L14FF ; (+002H)
+
+L14FD: LD A,045H
+L14FF: LD DE,L1554
+L1502: DEC A
+ JR Z,L150F ; (+00aH)
+ EX AF,AF'
+L1506: LD A,(DE)
+ INC DE
+ OR A
+ JP P,L1506
+ EX AF,AF'
+ JR L1502 ; (-00dH)
+
+L150F: LD A,(DE)
+ CP 080H
+ JR Z,L14FD ; (-017H)
+L1514: LD A,(DE)
+ OR A
+ JP M,L151F
+ CALL L152A
+ INC DE
+ JR L1514 ; (-00bH)
+
+L151F: AND 07FH
+ CALL L152A
+ LD DE,L179E
+ RST 018H
+ DB 005H
+ RET
+
+L152A: PUSH DE
+ LD DE,L1533
+ LD (DE),A
+ RST 018H
+ DB 005H
+ POP DE
+ RET
+
+L1533: NOP
+ NOP
+L1535: LD DE,(ZEQT)
+ INC DE
+ INC DE
+ RST 018H
+ DB 017H
+ CALL LDHLDE
+ LD A,(L1046)
+ ADD A,031H
+ LD (HL),A
+ LD A,(01051H)
+ AND 00FH
+ JR Z,L154E ; (+001H)
+ INC HL
+L154E: LD (HL),03AH
+ INC HL
+ LD (HL),000H
+ RET
+
+L1554: DB 053H,005H,"YNTA",0D8H,04FH,005H,"VER FLO",0D7H,049H,005H ; Error message table (bit-7 terminated)
+ DS 2, 04CH
+ DB "EGAL DAT",0C1H,054H,005H,"YPE MISMATC",0C8H,053H,005H,"TRING LENGT",0C8H,04DH,005H,"EMORY CAPACIT",0D9H,041H,005H
+ DS 2, 052H
+ DB "AY DEF",0AEH,04CH,005H,"INELENGT",0C8H,080H,"GOSUB ",005H,"NESTIN",0C7H,"FOR-NEX",0D4H,"DEF FN ",005H,"NESTIN",0C7H,"NEX",0D4H,"RETUR",0CEH,055H,005H,"N DEF. FUNCTIO",0CEH,055H,005H,"N DEF. LIN",0C5H,043H,005H,"AN'T ",006H,"CON",0D4H,04DH,005H,"EMORY PROTECTIO",0CEH,049H,005H,"NSTRUCTIO",0CEH,043H,005H,"AN'T ",006H,"RESUM",0C5H,"RESUM",0C5H
+ DS 2, 080H
+ DB "REA",0C4H,"SWAP ",005H,"LEVE",0CCH
+ DS 2, 080H
+ DB 053H,005H,"YSTEM I",0C4H,046H,005H,"RAMIN",0C7H,04FH,005H,056H,045H
+ DS 2, 052H
+ DB 055H,0CEH,050H,005H,"ARIT",0D9H
+ DS 8, 080H
+ DB 046H,005H,"ILE NOT FOUN",0C4H,048H,005H,"ARDWAR",0C5H,041H,005H,"LREADY EXIS",0D4H,041H,005H,"LREADY OPE",0CEH,04EH,005H,"OT OPE",0CEH,080H,057H,005H,"RITE PROTEC",0D4H
+ DS 3, 080H
+ DB 04EH,005H,"OT READ",0D9H,054H,005H
+ DS 2, 04FH
+ DB " MANY FILE"
+ DB LSD3
+ DB 044H,005H,"ISK MISMATC",0C8H,04EH,005H,"O FILE SPAC",0C5H,055H,005H,"NFORMA",0D4H,054H,005H
+ DS 2, 04FH
+ DB " LONG FIL",0C5H
+ DS 2, 080H
+ DB 044H,005H,"EV. NAM",0C5H,043H,005H,"AN'T EXECUT",0C5H,049H,005H
+ DS 2, 04CH
+ DB "EGAL FILENAM",0C5H,049H,005H
+ DS 2, 04CH
+ DB "EGAL FILEMOD",0C5H,080H,04FH,005H,"UT OF FIL",0C5H,04CH,005H,"OGICAL NUMBE"
+ DB LSD2
+ DB "LPT:"
+L1772: DB 04EH,005H,"OT READ",0D9H
+ DS 2, 080H
+ DB 044H,005H,"EV. MOD",0C5H,055H,005H,"NPRINTABL",0C5H,043H,005H,"HECK SU",0CDH
+L179E: DB 020H
+ DB 005H
+ DB 045H
+ DS 2, 052H
+ DB 04FH
+ DB 052H
+ DS 91, 000H
+L1800: JP L4000
+
+L1803: LD A,(L1042)
+ CP 088H
+ RET
+
+L1809: NOP
+ NOP
+L180B: NOP
+ NOP
+L180D: NOP
+ NOP
+ CALL L181A
+ CALL L1821
+L1815: XOR A
+ LD (L1FC0),A
+ RET
+
+L181A: LD A,(L1042)
+ LD (L1FC0),A
+ RET
+
+L1821: CALL SKPDE
+ LD A,(L1050)
+ BIT 7,A
+ LD HL,L1848
+L182C: JR Z,L183D ; (+00fH)
+ BIT 3,A
+ LD HL,L1835
+ JR NZ,L183D ; (+008H)
+L1835: LD IX,(ZOUT)
+ CALL IOCALL
+ RET
+
+L183D: LD A,B
+L183E: OR A
+ RET Z
+ LD A,(DE)
+ CALL L00FA
+ INC DE
+ DEC B
+ JR L183D ; (-00bH)
+
+L1848: CALL SKPDE
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+ LD HL,(L180B)
+ ADD HL,DE
+ LD (HL),A
+ INC DE
+ LD HL,(ZKL)
+ OR A
+ SBC HL,DE
+ CALL Z,L1871
+ LD (IY+040H),E
+ LD (IY+041H),D
+ INC (IY+014H)
+ RET NZ
+ INC (IY+015H)
+ RET NZ
+ JP 01F91H
+
+L1871: PUSH BC
+ LD B,002H
+L1874: CALL L1D15
+ LD IX,L1835
+ JR Z,L1881 ; (+004H)
+ LD IX,L2907
+L1881: LD A,B
+ CALL L18B6
+ CALL L1890
+ INC (IY+04EH)
+ LD DE,L0000
+ POP BC
+ RET
+
+L1890: JP (IX)
+
+L1892: LD A,01AH
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+L189A: LD HL,(L180B)
+ ADD HL,DE
+ LD (HL),A
+ INC DE
+ LD HL,(ZKL)
+ XOR A
+ SBC HL,DE
+ JR NZ,L189A ; (-00eH)
+ PUSH BC
+ LD HL,(L180B)
+ DEC HL
+ LD (HL),0FFH
+ DEC HL
+ LD (HL),0FFH
+ LD B,006H
+ JR L1874 ; (-042H)
+
+L18B6: LD BC,(ZKL)
+ INC BC
+ INC BC
+ LD HL,(L180B)
+ DEC HL
+ DEC HL
+ LD DE,(01809H)
+ RET
+
+L18C6: OR 0AFH
+ LD IX,(ZCL)
+ CALL IOCALL
+ RET
+
+ CALL L1803
+ RET NZ
+ PUSH DE
+ LD DE,L11A4
+ CALL L026A
+ LD (0193CH),DE
+ POP DE
+ RET NC
+ JP 0017DH
+
+ PUSH HL
+ PUSH DE
+ CALL L181A
+ LD HL,(L1040)
+ INC HL
+ BIT 7,(HL)
+ PUSH HL
+ LD B,000H
+ SCF
+ CALL Z,L1913
+ POP HL
+ CALL C,L1908
+ POP DE
+ PUSH AF
+ CALL L1815
+ LD L,B
+ LD H,000H
+ ADD HL,DE
+ LD (HL),000H
+ POP AF
+ POP HL
+ RET
+
+L1908: SET 7,(HL)
+ LD HL,01051H
+ BIT 4,(HL)
+ RET Z
+ JP 01FA0H
+
+L1913: CALL L1803
+ JR Z,L193B ; (+023H)
+ LD A,(L1050)
+ BIT 7,A
+ LD HL,L1989
+ JR Z,L1975 ; (+053H)
+ BIT 2,A
+ LD HL,L1929
+ JR NZ,L1975 ; (+04cH)
+L1929: LD IX,(ZINP)
+ CALL IOCALL
+ RET
+
+L1931: LD A,03FH
+ RST 018H
+ DB 003H
+ LD A,020H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 034H
+L193B: LD HL,L0000
+L193E: CALL HLFTCH
+ OR A
+ JR Z,L1931 ; (-013H)
+ LD C,000H
+ RST 018H
+ DB 036H
+ LD (0193CH),HL
+ RET
+
+ LD B,000H
+ CALL TEST1
+ DB 022H
+ JR NZ,L1967 ; (+013H)
+L1954: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ JR Z,L1961 ; (+005H)
+ LD (DE),A
+ INC DE
+ INC B
+ JR L1954 ; (-00dH)
+
+L1961: CALL TEST1
+ DB 02CH
+ OR A
+ RET
+
+L1967: LD A,(HL)
+ OR A
+ RET Z
+ CP C
+ RET Z
+ INC HL
+ CP 02CH
+ RET Z
+ LD (DE),A
+ INC DE
+ INC B
+ JR L1967 ; (-00eH)
+
+L1975: LD (0197BH),HL
+ LD B,000H
+L197A: CALL L0000
+ RET C
+ CP 00DH
+ RET Z
+ LD (DE),A
+ INC DE
+ INC B
+ JR NZ,L197A ; (-00cH)
+ JP 01F76H
+
+L1989: CALL SKPDE
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+ LD HL,(ZKL)
+ OR A
+ SBC HL,DE
+ CALL Z,L19B4
+ RET C
+ LD L,(IY+04EH)
+ LD H,(IY+04FH)
+ XOR A
+ SBC HL,DE
+ SCF
+ RET Z
+ LD HL,(L180B)
+ ADD HL,DE
+ LD A,(HL)
+ INC DE
+ LD (IY+040H),E
+ LD (IY+041H),D
+ RET
+
+L19B4: CALL L1D15
+ JP NZ,L2A4C
+ OR 0AFH
+ CALL L18B6
+ CALL L1929
+ RET C
+ LD A,(HL)
+ INC HL
+ AND (HL)
+ LD (HL),0FFH
+ INC A
+ LD DE,L0000
+ RET NZ
+ PUSH HL
+ LD HL,(L180D)
+ LD BC,(ZKL)
+L19D5: DEC HL
+ DEC BC
+ LD A,(HL)
+ OR A
+ JR Z,L19D5 ; (-006H)
+ POP HL
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ RET
+
+ CALL SKPDE
+ LD HL,L1A2D
+ CP 088H
+ JR Z,L19F4 ; (+00aH)
+ LD HL,L1A35
+ CP 089H
+ JR Z,L19F4 ; (+003H)
+ RST 018H
+ DB 029H
+ RET C
+L19F4: LD (L1040),HL
+ LD DE,L1042
+ LD BC,00008H
+ LDIR
+ LD (L1809),HL
+ PUSH HL
+ POP IY
+ LD DE,L1000
+ CALL L1C54
+ PUSH HL
+ LD HL,(L1044)
+ LD DE,L104A
+ LD BC,0001DH
+ LDIR
+ POP HL
+ LD BC,00010H
+ ADD HL,BC
+ LD (L180B),HL
+ LD BC,(ZKL)
+ ADD HL,BC
+ LD (L180D),HL
+ LD A,(L1043)
+ AND 00FH
+ RET
+
+L1A2D: ADC A,B
+ INC BC
+ LD A,B
+ DEC BC
+ NOP
+ NOP
+ NOP
+ NOP
+L1A35: ADC A,C
+ LD (BC),A
+ NOP
+ RRCA
+ NOP
+ NOP
+ NOP
+ NOP
+ LD HL,L11A4
+ PUSH HL
+ LD A,B
+ OR A
+ CALL NZ,LDHLDE
+ LD (HL),000H
+ LD HL,$CRT
+ JR L1A50 ; (+003H)
+
+L1A4D: LD HL,L0000
+L1A50: LD A,L
+ OR H
+ JR Z,L1A89 ; (+035H)
+ LD (01A84H),HL
+ CALL LDDEMI
+ LD (01A4EH),DE
+ LD DE,L11A4
+ EX DE,HL
+L1A62: LD A,(DE)
+ OR A
+ JR Z,L1A6D ; (+007H)
+ CP (HL)
+ JR NZ,L1A4D ; (-01cH)
+ INC HL
+ INC DE
+ JR L1A62 ; (-00bH)
+
+L1A6D: LD A,(HL)
+ INC HL
+ CP 03AH
+ LD C,000H
+ JR Z,L1A82 ; (+00dH)
+ SUB 031H
+ CP 009H
+ JR NC,L1A4D ; (-02eH)
+ LD C,A
+ LD A,(HL)
+ INC HL
+ CP 03AH
+ JR NZ,L1A4D ; (-035H)
+L1A82: EX (SP),HL
+ LD HL,L0000
+ LD A,C
+ JR L1A9B ; (+012H)
+
+L1A89: POP HL
+ PUSH HL
+L1A8B: LD A,(HL)
+ INC HL
+ CP 03AH
+ JP Z,01F94H
+ OR A
+ JR NZ,L1A8B ; (-00aH)
+ LD HL,(DDEV)
+ LD A,(L1069)
+L1A9B: LD (L1044),HL
+ PUSH HL
+ LD (L1046),A
+ LD DE,L104A
+ LD BC,0001DH
+ LDIR
+ LD B,A
+ LD A,(01051H)
+ AND 007H
+ CP B
+ JP C,01F94H
+ LD A,B
+ POP DE
+ POP HL
+ RET
+
+ CALL SKPDE
+ RST 018H
+ DB 02CH
+ EX DE,HL
+ LD HL,L1001
+ LD B,01FH
+ CALL ?CLRHL
+ LD HL,L1000
+ RST 018H
+ DB 017H
+ CALL L1EB4
+ LD HL,L1050
+ BIT 4,(HL)
+ RET Z
+ INC HL
+ BIT 7,(HL)
+ RET NZ
+ LD A,(L1001)
+ CP 00DH
+ JP Z,01F9AH
+ RET
+
+ CALL SKPDE
+ CALL L1AEF
+ LD B,000H
+ CALL L1B97
+ JP L2D08
+
+L1AEF: LD A,(L1042)
+ RST 018H
+ DB 029H
+ JP NC,01F7CH
+ CALL L1C5B
+ LD HL,L005D
+ LD A,(L1050)
+ LD DE,(ZKL)
+ INC DE
+ INC DE
+ BIT 7,A
+ JR NZ,L1B0B ; (+001H)
+ ADD HL,DE
+L1B0B: LD A,(L1043)
+ BIT 2,A
+ JR Z,L1B13 ; (+001H)
+ ADD HL,DE
+L1B13: EX DE,HL
+ LD A,(L1042)
+ RST 018H
+L1B18: DB 02AH
+ LD (L1FC0),A
+ LD (L1040),HL
+ EX DE,HL
+ LD HL,L1042
+ LD BC,00008H
+ LDIR
+ LD (01809H),DE
+ PUSH DE
+ POP IY
+ LD HL,L1000
+ CALL L1C54
+ LD HL,00010H
+ ADD HL,DE
+ LD (L180B),HL
+ LD DE,(ZKL)
+ ADD HL,DE
+ LD (L180D),HL
+ CALL L1D15
+ JP NZ,L2B7F
+ LD A,(L1043)
+ BIT 2,A
+ JP NZ,01F97H
+ BIT 1,A
+ LD IX,(ZWO)
+ JR NZ,L1B65 ; (+00bH)
+ LD A,(L1050)
+ BIT 7,A
+ JR Z,L1B6B ; (+00aH)
+ LD IX,(ZRO)
+L1B65: LD HL,L1000
+ JP IOCALL
+
+L1B6B: CALL L0D9B
+ JP 019BBH
+
+ CALL SKPDE
+ LD IY,L0100
+ LD (L1042),IY
+ LD IY,L1000
+ CALL L1D15
+ LD HL,L2B7A
+ JR NZ,L1B8B ; (+003H)
+ LD HL,L1C39
+L1B8B: CALL L00FA
+ LD B,080H
+ CALL L1B97
+ LD A,(L1000)
+ RET
+
+L1B97: LD A,(L1000)
+ CP 005H
+ RET C
+ LD A,(L1012)
+ AND 080H
+ CP B
+ RET Z
+ JP 01F9DH
+
+L1BA7: CALL SKPDE
+ OR A
+ JR Z,L1BED ; (+040H)
+ CALL L1BB3
+ JP L2D08
+
+L1BB3: RST 018H
+ DB 02EH
+ RET C
+ CALL L181A
+ PUSH AF
+ CALL L1D15
+ JR NZ,L1BE1 ; (+022H)
+ BIT 7,A
+ LD A,B
+ JR Z,L1BD4 ; (+010H)
+ OR A
+ LD IX,(ZKL)
+ JR Z,L1BCF ; (+004H)
+ LD IX,(ZCL)
+L1BCF: CALL IOCALL
+ JR L1BE4 ; (+010H)
+
+L1BD4: OR A
+ JR Z,L1BE4 ; (+00dH)
+ LD A,(L1043)
+ BIT 1,A
+ CALL NZ,L1892
+ JR L1BE4 ; (+003H)
+
+L1BE1: CALL L2BEC
+L1BE4: POP AF
+ RST 018H
+ DB 02BH
+ RET
+
+ CALL SKPDE
+ LD B,000H
+L1BED: LD C,08EH
+L1BEF: LD A,C
+ PUSH BC
+ RST 018H
+ DB 029H
+ CALL NC,L1BB3
+ POP BC
+ DEC C
+ JR NZ,L1BEF ; (-00bH)
+ JP L1FAB
+
+L1BFD: CALL SKPDE
+ LD A,(L1050)
+ BIT 6,A
+ JP Z,01F97H
+ CALL 018C7H
+ LD A,(ZDIRMX)
+ LD B,A
+L1C0F: LD HL,L11A4
+ PUSH BC
+ LD IX,(ZRO)
+ CALL IOCALL
+ POP BC
+ SET 0,A
+ RET C
+ PUSH IY
+ POP DE
+ CALL L1E9D
+ LD A,(HL)
+ RET Z
+ DJNZ L1C0F ; (-019H)
+ XOR A
+ SCF
+ RET
+
+L1C2B: CALL L1C5B
+ CALL L1BFD
+ JP NC,01F79H
+ OR A
+ JP Z,01F85H
+ RET
+
+L1C39: CALL L1C5B
+ CALL L1BFD
+ JP C,01F73H
+ CALL SKPDE
+ LD HL,L11A4
+ PUSH IY
+ POP DE
+ PUSH HL
+ CALL L1C54
+ POP HL
+ LD DE,L1000
+ LD A,(HL)
+L1C54: LD BC,00040H
+ LDIR
+ OR A
+ RET
+
+L1C5B: LD IX,L1C9D
+L1C5F: LD (01C99H),IX
+ CALL SKPDE
+ LD A,(L1042)
+ LD C,A
+ LD HL,(L1072)
+ PUSH HL
+L1C6E: POP HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD B,A
+ INC HL
+ CALL LDDEMI
+ PUSH HL
+ ADD HL,DE
+ EX (SP),HL
+ CP 08FH
+ JR NC,L1C6E ; (-010H)
+ CP C
+ JR Z,L1C6E ; (-013H)
+ INC HL
+ LD A,(HL)
+ EX AF,AF'
+ INC HL
+ LD DE,L1044
+ PUSH BC
+ LD BC,00300H
+L1C8C: LD A,(DE)
+ SUB (HL)
+ OR C
+ LD C,A
+ INC DE
+ INC HL
+ DJNZ L1C8C ; (-008H)
+ POP BC
+ JR NZ,L1C6E ; (-029H)
+ LD A,B
+ CALL L0000
+ JR L1C6E ; (-02fH)
+
+L1C9D: LD A,(01051H)
+ BIT 6,A
+ JP NZ,01F7CH
+ BIT 5,A
+ RET Z
+ EX AF,AF'
+ LD B,A
+ LD A,(L1043)
+ AND B
+ BIT 1,A
+ RET Z
+ JP 01F7CH
+
+ CALL L1D15
+ JP NZ,L2AD2
+ LD BC,(ELMD20)
+ PUSH BC
+ XOR A
+ LD IX,(ZINP)
+ CALL IOCALL
+ POP BC
+ RET
+
+ LD A,(01051H)
+ BIT 7,A
+ JP Z,01F97H
+ LD BC,(ELMD20)
+ JP L313A
+
+ LD A,(L1000)
+ CP 005H
+ JR C,L1CE4 ; (+005H)
+ LD A,080H
+ LD (L1012),A
+L1CE4: CALL L1D15
+ JP NZ,L2AE0
+ BIT 7,A
+ JP NZ,01F97H
+ PUSH DE
+ LD HL,L0200
+ LD (L1042),HL
+ CALL L1C5B
+ LD HL,L1000
+ PUSH HL
+ POP IY
+ LD IX,(ZWO)
+ CALL IOCALL
+ LD BC,(ELMD20)
+ POP HL
+ LD A,004H
+ LD IX,(ZOUT)
+ CALL IOCALL
+ RET
+
+L1D15: LD A,(L1050)
+ BIT 5,A
+ RET
+
+ CALL SKPDE
+ OR A
+ JR NZ,L1D6B ; (+04aH)
+ LD HL,L0100
+ LD (L1042),HL
+ CALL L1C5B
+ LD HL,L1050
+ BIT 7,(HL)
+ JP NZ,01F97H
+ BIT 5,(HL)
+ JP NZ,02F38H
+ INC HL
+ BIT 7,(HL)
+ JP NZ,01F97H
+ LD HL,L2000
+ LD BC,00008H
+L1D43: CALL ?CLRHL
+ DEC C
+ JR NZ,L1D43 ; (-006H)
+ CALL 018C7H
+ LD A,(ZDIRMX)
+ LD B,A
+ LD HL,L2000
+L1D53: PUSH BC
+ LD IX,(ZRO)
+ CALL IOCALL
+ PUSH AF
+ LD BC,00020H
+ ADD HL,BC
+ LD (HL),000H
+ POP AF
+ POP BC
+ JR C,L1D68 ; (+002H)
+ DJNZ L1D53 ; (-015H)
+L1D68: JP L18C6
+
+L1D6B: LD (01E13H),A
+ XOR A
+ LD (L1090),A
+ LD HL,L11A4
+ PUSH HL
+ LD DE,L1E1D
+ LD B,00EH
+ CALL LDHLDE
+ CALL L1535
+ LD (HL),020H
+ INC HL
+ LD (HL),020H
+ INC HL
+ EX DE,HL
+ CALL L1D15
+ LD IX,(ZFREE)
+ JR Z,L1D95 ; (+004H)
+ LD IX,L2F4B
+L1D95: CALL IOCALL
+ JR C,L1DA8 ; (+00eH)
+ LD H,B
+ LD L,C
+ LD B,000H
+ RST 018H
+ DB 016H
+ LD HL,L1E2B
+ LD B,009H
+ CALL LDDEHL
+L1DA8: EX DE,HL
+ LD (HL),00DH
+ INC HL
+ LD (HL),000H
+ POP DE
+ CALL L1E12
+ LD B,040H
+ LD HL,L2000
+L1DB7: CALL L1DC3
+ LD DE,00020H
+ ADD HL,DE
+ DJNZ L1DB7 ; (-009H)
+ JP L2D08
+
+L1DC3: CALL SKPDE
+ LD A,(HL)
+ OR A
+ RET Z
+ RET M
+ LD DE,L11A4
+ PUSH DE
+ LD A,020H
+ LD B,026H
+ CALL ?SETDE
+ LD A,(HL)
+ CP 00CH
+ JR C,L1DDC ; (+002H)
+ LD A,00CH
+L1DDC: PUSH HL
+ POP IY
+ POP DE
+ PUSH DE
+ INC DE
+ LD HL,L1E31
+ LD BC,L0003
+L1DE8: ADD HL,BC
+ DEC A
+ JR NZ,L1DE8 ; (-004H)
+ LDIR
+ EX DE,HL
+ BIT 0,(IY+012H)
+ JR Z,L1DF7 ; (+002H)
+ LD (HL),02AH
+L1DF7: INC HL
+ INC HL
+ LD (HL),022H
+ INC HL
+L1DFC: LD A,(IY+001H)
+ CP 00DH
+ JR Z,L1E09 ; (+006H)
+ LD (HL),A
+ INC IY
+ INC HL
+ JR L1DFC ; (-00dH)
+
+L1E09: LD (HL),022H
+ INC HL
+ LD (HL),00DH
+ INC HL
+ LD (HL),000H
+ POP DE
+L1E12: LD A,000H
+ RST 018H
+ DB 02EH
+ RST 018H
+ DB 017H
+ RST 018H
+ DB 037H
+ RST 018H
+ DB 00FH
+ RET
+
+L1E1D: DB 00DH,"DIRECTORY OF " ; Directory/file type strings
+L1E2B: DB " KB FR"
+L1E31: DS 2, 045H
+ DB ".OBJBTXBSDBRDRB"
+ DS 2, 020H
+ DB "? LIB ?"
+ DS 2, 020H
+ DB "? SYSGR"
+ DS 2, 020H
+ DB 03FH
+ DB 020H
+ DB LSE5
+ DB 0AFH,032H,042H,010H,0DDH,021H,071H,01EH,0EDH,073H,072H,01EH,0CDH,05FH,01CH
+ DB LSE1
+ DB 0DDH,02AH,053H,010H,0CDH,045H,002H,0C9H,031H
+ DS 2, 000H
+ DB 006H
+ DB 000H
+ DB 0DFH
+ DB 038H
+ DB 018H
+ DB 0DFH
+L1E7A: DB 0CDH,064H,001H,059H,0C8H,011H,08EH,01EH,0DFH,005H,03EH,001H,0DFH,00DH,0FEH,059H,0C8H,0C3H,07DH,001H,"OK ? [Y/N]",019H,000H
+L1E9A: DB 011H
+ DB 000H
+ DB 010H
+L1E9D: DB 0CDH
+ DB 008H
+ LD BC,L1323
+ LD A,(DE)
+ CP 00DH
+ RET Z
+ LD B,011H
+L1EA8: LD A,(DE)
+ CP (HL)
+ RET NZ
+ CP 00DH
+ RET Z
+ INC HL
+ INC DE
+ DJNZ L1EA8 ; (-00aH)
+ OR A
+ RET
+
+L1EB4: INC HL
+ LD C,010H
+L1EB7: LD A,B
+ OR A
+ JR Z,L1ECF ; (+014H)
+ LD A,(DE)
+ INC DE
+ DEC B
+ OR A
+ JR Z,L1ECF ; (+00eH)
+ CP 022H
+ JR Z,L1EB7 ; (-00eH)
+ CP 03AH
+ JP Z,01F9AH
+ LD (HL),A
+ INC HL
+ DEC C
+ JR NZ,L1EB7 ; (-018H)
+L1ECF: LD (HL),00DH
+ INC HL
+L1ED2: LD A,C
+ OR A
+ RET Z
+ LD (HL),020H
+ INC HL
+ DEC C
+ JR L1ED2 ; (-009H)
+
+ LD HL,(L1072)
+L1EDE: INC (HL)
+ DEC (HL)
+ SCF
+ RET Z
+ CP (HL)
+ INC HL
+ JR Z,L1EEE ; (+008H)
+ PUSH DE
+ CALL LDDEMI
+ ADD HL,DE
+ POP DE
+ JR L1EDE ; (-010H)
+
+L1EEE: INC HL
+ INC HL
+ RET
+
+L1EF1: CALL SKPDE
+ RST 018H
+ DB 029H
+ RET C
+ DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ DEC HL
+ LD D,H
+ LD E,L
+ INC BC
+ INC BC
+ INC BC
+ PUSH BC
+ ADD HL,BC
+ PUSH HL
+ LD B,H
+ LD C,L
+ LD HL,(L107A)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ LDIR
+ POP DE
+ LD HL,L0000
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ RST 018H
+ DB 019H
+ OR A
+ RET
+
+ PUSH AF
+ PUSH BC
+ PUSH DE
+ PUSH DE
+ INC DE
+ INC DE
+ INC DE
+ LD HL,(L107A)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ JP C,01F6DH
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ SBC HL,DE
+ JR C,01F6DH ; (+037H)
+ LD HL,(L107E)
+ DEC H
+ DEC H
+ SBC HL,DE
+ JR C,01F6DH ; (+02eH)
+ POP HL
+ PUSH HL
+ LD BC,(VARST)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ INC BC
+ LDDR
+ POP DE
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ PUSH HL
+ INC DE
+ PUSH DE
+L1F58: LD (HL),000H
+ INC HL
+ DEC DE
+ LD A,D
+ OR E
+ JR NZ,L1F58 ; (-008H)
+ POP DE
+ INC DE
+ INC DE
+ RST 018H
+ DB 019H
+ POP HL
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L1F6A: LD A,003H
+ LD HL,0063EH
+ LD HL,09C3EH
+ LD HL,0A83EH
+ LD HL,0A93EH
+ LD HL,0AA3EH
+ LD HL,0AB3EH
+ LD HL,0AE3EH
+ LD HL,0B23EH
+ LD HL,0B33EH
+ LD HL,0B43EH
+ LD HL,0B53EH
+ LD HL,0B63EH
+ LD HL,0B73EH
+ LD HL,L3A3E
+ LD HL,0BB3EH
+ LD HL,0BC3EH
+ LD HL,0BD3EH
+ LD HL,0BF3EH
+ LD HL,L403E
+ LD HL,0C43EH
+ JP L0182
+
+L1FAB: LD A,(L1FC0)
+ OR A
+ LD B,000H
+ CALL NZ,L1BA7
+ CALL L368D
+ CALL L38FA
+ CALL L2D08
+ JP L0D20
+
+L1FC0: DS 64, 000H
+L2000: DS 38, 000H
+L2026: DS 263, 000H
+L212D: DS 211, 000H
+L2200: DS 294, 000H
+L2326: DS 986, 000H
+L2700: DS 16, 000H
+L2710: DS 240, 000H
+L2800: DS 256, 000H
+ LD (02905H),DE
+ RET
+
+L2905: NOP
+ NOP
+L2907: LD BC,L0000
+ LD DE,00001H
+ BIT 2,A
+ CALL Z,L2ED0
+ LD HL,(L180D)
+ LD A,(HL)
+ LD (HL),C
+ LD C,A
+ INC HL
+ LD A,(HL)
+ LD (HL),B
+ LD B,A
+ LD HL,(L180B)
+ LD DE,L0100
+ JP L2FCF
+
+ CALL SKPDE
+ CALL L181A
+ LD HL,L11A4
+ PUSH HL
+ LD A,B
+ OR A
+ CALL NZ,LDHLDE
+ LD B,020H
+ LD A,020H
+ CALL ?SETHL
+ LD A,(IY+012H)
+ OR A
+ JP NZ,01F7FH
+ CALL L29DF
+ JR NC,L2964 ; (+01dH)
+ LD (IY+014H),E
+ LD (IY+015H),D
+ LD (IY+046H),001H
+ JR Z,L2964 ; (+011H)
+ CALL L29C2
+ CALL L2A08
+ CALL L297C
+ LD (IY+040H),L
+ LD (IY+041H),H
+ JR L296A ; (+006H)
+
+L2964: CALL L297C
+ CALL L29AB
+L296A: POP HL
+ CALL L2E24
+ LD (IY+044H),001H
+L2972: LD HL,(L2905)
+ INC HL
+ LD (L2905),HL
+ JP L1815
+
+L297C: LD HL,(L2905)
+ DEC HL
+ PUSH HL
+ ADD HL,HL
+ LD E,H
+ LD D,000H
+ LD HL,(L180B)
+ ADD HL,DE
+ ADD HL,DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD A,L
+ PUSH AF
+ RRA
+ RRA
+ RRA
+ AND 00FH
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ POP AF
+ AND 007H
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ LD DE,(0180BH)
+ INC D
+ ADD A,E
+ LD E,A
+ RET NC
+ INC D
+ RET
+
+L29AB: LD A,(IY+040H)
+ CP L
+ JR NZ,L29B6 ; (+005H)
+ LD A,(IY+041H)
+ CP H
+ RET Z
+L29B6: CALL L29C2
+ LD (IY+040H),L
+ LD (IY+041H),H
+ XOR A
+ JR L29CC ; (+00aH)
+
+L29C2: XOR A
+ CP (IY+044H)
+ RET Z
+ LD (IY+044H),A
+ LD A,003H
+L29CC: CALL SKPDE
+ LD C,(IY+040H)
+ LD B,(IY+041H)
+ LD DE,L0100
+ LD HL,(L180B)
+ INC H
+ JP L2FD1
+
+L29DF: LD L,(IY+014H)
+ LD H,(IY+015H)
+ LD DE,(02905H)
+ LD A,H
+ OR L
+ JR NZ,L29F1 ; (+004H)
+ OR 0FFH
+ SCF
+ RET
+
+L29F1: CALL L2FC9
+ RET NC
+ CALL SKPDE
+ DEC HL
+ DEC DE
+ LD A,L
+ AND 080H
+ LD L,A
+ LD A,E
+ AND 080H
+ LD E,A
+ CALL L2FC9
+ RET C
+ SCF
+ RET
+
+L2A08: CALL SKPDE
+ LD HL,(L2905)
+ DEC HL
+ ADD HL,HL
+ LD B,H
+ INC B
+ LD HL,(L180B)
+L2A15: LD A,(HL)
+ INC HL
+ OR (HL)
+ CALL Z,L2A23
+ INC HL
+ DJNZ L2A15 ; (-009H)
+ LD (IY+046H),001H
+ RET
+
+L2A23: CALL SKPDE
+ PUSH HL
+ LD DE,00010H
+ CALL L2ED0
+ POP HL
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ LD HL,(L180B)
+ INC H
+ XOR A
+L2A36: LD (HL),020H
+ INC HL
+ DEC A
+ JR NZ,L2A36 ; (-006H)
+ DEC H
+ LD DE,L0100
+ LD A,010H
+L2A42: PUSH AF
+ CALL L2FCF
+ POP AF
+ INC BC
+ DEC A
+ JR NZ,L2A42 ; (-009H)
+ RET
+
+L2A4C: LD L,(IY+014H)
+ LD H,(IY+015H)
+ LD A,H
+ OR L
+ SCF
+ RET Z
+ LD DE,0FF02H
+ PUSH HL
+ ADD HL,DE
+ JR C,L2A60 ; (+003H)
+ LD HL,L0000
+L2A60: LD (IY+014H),L
+ LD (IY+015H),H
+ POP DE
+ LD HL,(L180B)
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ CALL L2A88
+ OR A
+ LD A,(L1043)
+ BIT 2,A
+ RET NZ
+ LD HL,(L180D)
+ LD A,(HL)
+ LD (IY+01EH),A
+ INC HL
+ LD A,(HL)
+ LD (IY+01FH),A
+ LD DE,L0000
+ RET
+
+L2A88: LD C,(IY+01EH)
+ LD B,(IY+01FH)
+ LD A,B
+ OR C
+ JP Z,01F76H
+ LD DE,L0100
+ LD HL,(L180B)
+ JP 02FD0H
+
+ RET
+
+ XOR A
+ LD (DE),A
+ PUSH HL
+ PUSH DE
+ PUSH DE
+ CALL L29DF
+ POP DE
+ JR C,L2AC7 ; (+01fH)
+ CALL L181A
+ PUSH DE
+ CALL L297C
+ CALL L29AB
+ EX DE,HL
+ POP DE
+ CALL L2E24
+ XOR A
+ LD (DE),A
+ CALL L2972
+ LD B,020H
+ XOR A
+ LD HL,(L1040)
+ INC HL
+ RES 7,(HL)
+ JR L2ACF ; (+008H)
+
+L2AC7: XOR A
+ LD B,A
+ LD HL,(L1040)
+ INC HL
+ SET 7,(HL)
+L2ACF: POP DE
+ POP HL
+ RET
+
+L2AD2: LD DE,(ELMD20)
+ LD BC,(ELMD30)
+ CALL 02FD0H
+ JP L2D08
+
+L2AE0: CALL L2AEA
+ LD IY,L1000
+ JP L2C07
+
+L2AEA: PUSH DE
+ CALL L2DD0
+ CALL L2ED0
+ LD (ELMD30),BC
+ LD D,E
+ LD E,000H
+ POP HL
+ JP L2FCF
+
+ OR A
+ JR NZ,L2B34 ; (+035H)
+ PUSH DE
+ CALL L2B6A
+ LD A,000H
+ CALL Z,L2B51
+ POP DE
+ CALL L2AEA
+ LD HL,L1000
+ OR 0FFH
+ CALL L2B51
+ CALL L2E2A
+ LD HL,L2000
+ LD (HL),081H
+ PUSH HL
+ POP IY
+ LD HL,(L1014)
+ LD (IY+014H),L
+ LD (IY+015H),H
+ LD HL,(ELMD30)
+ LD (IY+01EH),L
+ LD (IY+01FH),H
+ JP L2F37
+
+L2B34: PUSH HL
+ CALL L2B6A
+ JP NZ,01F88H
+ DEC (HL)
+ LD DE,L1000
+ CALL L2E24
+ CALL L2F37
+L2B45: XOR A
+ LD HL,L2000
+ CALL L2B51
+ CALL L2E2A
+ POP HL
+ RET
+
+L2B51: CALL SKPDE
+ PUSH AF
+ LD DE,00014H
+ ADD HL,DE
+ CALL LDDEMI
+ LD BC,00008H
+ ADD HL,BC
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ CALL L2DD8
+ POP AF
+ JP L2E77
+
+L2B6A: CALL L1D15
+ JP Z,01F97H
+ CALL L2E36
+ CALL 02F38H
+ LD A,(HL)
+ CP 081H
+ RET
+
+L2B7A: LD A,009H
+ LD (L1043),A
+L2B7F: CALL L2F6E
+ XOR B
+ DEC HL
+ LD A,(L1043)
+ BIT 0,A
+ JP NZ,01F73H
+ PUSH AF
+ LD DE,00001H
+ CALL L2ED0
+ LD (IY+01EH),C
+ LD (IY+01FH),B
+ LD (IY+046H),001H
+ POP AF
+ BIT 1,A
+ RET Z
+ LD HL,(L180D)
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ RET
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD A,(L1043)
+ BIT 1,A
+ JP NZ,01F79H
+ PUSH HL
+ CALL L2E24
+ LD B,020H
+ CALL ?CLRDE
+ POP HL
+ LD A,(HL)
+ PUSH IY
+ POP DE
+ CALL L2E24
+ LD HL,L1043
+ BIT 3,(HL)
+ RET NZ
+ BIT 0,(HL)
+ JP NZ,L2A4C
+ CALL L2E5E
+ CALL L2A88
+ LD D,H
+ LD E,L
+L2BDB: LD A,(HL)
+ INC HL
+ OR (HL)
+ INC HL
+ JR NZ,L2BDB ; (-006H)
+ DEC HL
+ DEC HL
+ SBC HL,DE
+ LD (IY+042H),L
+ LD (IY+043H),H
+ RET
+
+L2BEC: LD A,B
+ OR A
+ RET Z
+ LD A,(L1043)
+ BIT 0,A
+ RET NZ
+ BIT 2,A
+ JR NZ,L2C20 ; (+027H)
+ LD A,006H
+ CALL L2907
+ PUSH IY
+ POP HL
+ LD DE,L1000
+ CALL L2E24
+L2C07: CALL L2F6E
+ RLA
+ INC L
+ JP Z,01F85H
+L2C0F: LD A,001H
+ LD B,(IY+000H)
+ JP L2D6A
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ JP 01F79H
+
+L2C20: CALL L29C2
+ LD A,(IY+046H)
+ OR A
+ RET Z
+ CALL L2F6E
+ LD (0CA2CH),A
+ ADD A,L
+ RRA
+ JR L2C0F ; (-023H)
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD (IY+045H),001H
+ LD A,(HL)
+ CP (IY+000H)
+ JP NZ,01F9DH
+ JR L2C0F ; (-037H)
+
+ CALL SKPDE
+ LD (02C60H),A
+ CALL L2F6E
+ LD D,H
+ INC L
+ JP 01F73H
+
+ RET Z
+ RET M
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD BC,L0012
+ ADD HL,BC
+ LD (HL),0FFH
+L2C61: CALL L2F37
+ JP L2D08
+
+ CALL SKPDE
+ CALL L2F6E
+ LD (HL),D
+ INC L
+ JP 01F73H
+
+ RET Z
+ RET M
+ CALL L1E9A
+ RET NZ
+ POP AF
+ CALL L2CFB
+ PUSH HL
+ LD DE,L1000
+ CALL L2E24
+ XOR A
+ LD (L1042),A
+ LD IX,L2C9B
+ CALL L1C5F
+ XOR A
+ LD (L1000),A
+ POP HL
+L2C93: LD B,(HL)
+ LD IY,L1000
+ JP L2D6A
+
+L2C9B: INC HL
+ INC HL
+ INC HL
+ CALL L1E9A
+ JP Z,01F7CH
+L2CA4: RET
+
+L2CA5: DS 16, 000H
+ DEC C
+ CALL SKPDE
+ LD HL,L2CA4
+ CALL L1EB4
+ XOR A
+L2CC0: LD (02CE3H),A
+ CALL L2F6E
+ JP Z,L182C
+ JR L2C93 ; (-038H)
+
+ RET M
+ LD DE,L2CA4
+ CALL L1E9D
+ JP Z,01F79H
+ CALL L1E9A
+ RET NZ
+ LD (02CE9H),HL
+ LD A,001H
+ LD (02CE3H),A
+ RET
+
+ LD A,0FFH
+ OR A
+ JP Z,01F73H
+ LD HL,0FFFFH
+ CALL L2CFB
+ LD DE,L2CA5
+ INC HL
+ EX DE,HL
+ LD BC,00011H
+ LDIR
+ JP L2C61
+
+L2CFB: CALL SKPDE
+ LD DE,L0012
+ ADD HL,DE
+ LD A,(HL)
+ OR A
+ RET Z
+ JP 01F7FH
+
+L2D08: CALL IOOUT
+ XOR A
+ LD (L1FC0),A
+ LD A,LSE0
+L2D11: PUSH AF
+ RST 018H
+ DB 02BH
+ POP AF
+ INC A
+ JR NZ,L2D11 ; (-007H)
+ LD HL,(L1044)
+ LD DE,$FD
+ CALL L2FC9
+ RET NZ
+ LD A,(L1046)
+ EXX
+ LD H,A
+ LD D,000H
+ LD B,003H
+ EXX
+ XOR A
+ LD (L1042),A
+L2D30: EXX
+ LD A,B
+ LD (L1046),A
+ ADD A,090H
+ LD L,A
+ LD E,000H
+ EXX
+ LD IX,L2D5C
+ CALL L1C5F
+ EXX
+ BIT 7,E
+ LD A,L
+ EXX
+ CALL Z,L1EF1
+ EXX
+ DEC B
+ EXX
+ JP P,L2D30
+ EXX
+ LD A,H
+ LD (L1046),A
+ BIT 7,D
+ EXX
+ CALL Z,L368D
+ RET
+
+L2D5C: EXX
+ LD DE,0FFFFH
+ EXX
+ RET
+
+L2D62: LD A,(L1046)
+ ADD A,090H
+ RST 018H
+ DB 029H
+ RET
+
+L2D6A: LD (L2DCF),A
+ LD A,B
+ PUSH AF
+ EX DE,HL
+ LD HL,L1000
+ CALL L2E24
+ CALL L2E36
+ POP AF
+ CP 005H
+ JR C,L2D88 ; (+00aH)
+ LD A,(L1012)
+ RLA
+ LD A,003H
+ JR NC,L2D88 ; (+002H)
+ LD A,001H
+L2D88: LD HL,02D9CH
+ ADD A,A
+ CALL ADDHLA
+ CALL INDRCT
+ CALL L00FA
+ CALL L2F37
+ CALL L2E2A
+ JP L2D08
+
+ ADD A,02DH
+ ADD A,02DH
+ AND (HL)
+ DEC L
+ JP PO,L212D
+ JR NZ,02DB9H ; (+010H)
+L2DA9: DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ LD A,B
+ OR C
+ RET Z
+ LD DE,L0100
+ LD HL,L11A4
+ PUSH HL
+ PUSH DE
+ CALL 02FD0H
+ LD DE,00001H
+ CALL L2DC9
+ POP DE
+ POP HL
+ ADD HL,DE
+ JR L2DA9 ; (-01dH)
+
+ CALL L2DD0
+L2DC9: LD A,(L2DCF)
+ JP L2E77
+
+L2DCF: NOP
+L2DD0: LD DE,(ELMD20)
+ LD BC,(ELMD30)
+L2DD8: LD A,E
+ OR D
+ JR Z,L2DDD ; (+001H)
+ DEC DE
+L2DDD: INC D
+ LD E,D
+ LD D,000H
+ RET
+
+ LD DE,L0100
+ LD BC,(ELMD30)
+ LD A,(L2DCF)
+ OR A
+ LD HL,L11A4
+ JR Z,L2DF5 ; (+003H)
+ LD HL,(L180B)
+L2DF5: PUSH HL
+ PUSH AF
+ CALL L2FD1
+ POP AF
+ PUSH AF
+ JR Z,L2E02 ; (+004H)
+ LD A,(IY+045H)
+ OR A
+L2E02: LD DE,00001H
+ CALL Z,L2DC9
+ POP AF
+ POP HL
+ JR Z,L2E13 ; (+007H)
+ LD E,(IY+042H)
+ LD D,(IY+043H)
+ ADD HL,DE
+L2E13: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ LD A,B
+ OR C
+ RET Z
+ PUSH HL
+ LD DE,00010H
+ CALL L2DC9
+ POP HL
+ JR L2E13 ; (-011H)
+
+L2E24: LD BC,00020H
+ LDIR
+ RET
+
+L2E2A: LD HL,L2800
+ LD DE,L0100
+ LD BC,L000F
+ JP L2FCF
+
+L2E36: LD HL,L2800
+ CALL L2E67
+ PUSH HL
+ CALL L2D62
+ EX DE,HL
+ POP HL
+ RET C
+ PUSH HL
+ LD A,(DE)
+ CP (HL)
+ JP NZ,01F88H
+ LD BC,L0006
+ ADD HL,BC
+ EX DE,HL
+ ADD HL,BC
+ EX DE,HL
+ LD B,FDPC
+L2E52: LD A,(DE)
+ CPL
+ AND (HL)
+ JP NZ,01F88H
+ INC HL
+ INC DE
+ DJNZ L2E52 ; (-00aH)
+ POP HL
+ RET
+
+L2E5E: CALL L2D62
+ RET NC
+ LD DE,L0100
+ RST 018H
+ DB 02AH
+L2E67: LD BC,L000F
+ LD DE,L0100
+ XOR A
+ CALL L2FD4
+ LD A,(HL)
+ OR A
+ JP M,01F70H
+ RET
+
+L2E77: LD HL,L2800
+ CALL L2E84
+ OR A
+ RET NZ
+ CALL L2D62
+ RET C
+ XOR A
+L2E84: CALL IOOUT
+ OR A
+ PUSH HL
+ LD HL,0B600H
+ LD A,013H
+ JR NZ,L2E95 ; (+005H)
+ LD HL,0A62FH
+ LD A,01BH
+L2E95: LD (L2EB2),A
+ LD (L2EC8),HL
+ POP HL
+L2E9C: CALL L2EA4
+ INC BC
+ DEC E
+ JR NZ,L2E9C ; (-007H)
+ RET
+
+L2EA4: CALL SKPDE
+ INC HL
+ LD A,C
+ SUB (HL)
+ LD C,A
+ JR NC,L2EAE ; (+001H)
+ DEC B
+L2EAE: INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L2EB2: NOP
+ DEC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ LD A,C
+ LD E,003H
+L2EBD: SRL B
+ RR C
+ DEC E
+ JR NZ,L2EBD ; (-007H)
+ ADD HL,BC
+ CALL L2F2B
+L2EC8: NOP
+ NOP
+ CP (HL)
+ LD (HL),A
+ RET NZ
+ JP 01F88H
+
+L2ED0: PUSH DE
+ CALL L2E5E
+ POP DE
+ PUSH HL
+ CALL L2EDE
+ POP HL
+ LD A,001H
+ JR L2E84 ; (-05aH)
+
+L2EDE: LD A,E
+ EXX
+ LD E,A
+ LD D,A
+ LD B,001H
+ EXX
+ INC HL
+ LD E,(HL)
+ LD D,000H
+ INC HL
+ INC HL
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ DEC BC
+ LD (02EFCH),BC
+ INC HL
+ PUSH HL
+ EXX
+ POP HL
+ EXX
+ LD B,D
+ LD C,E
+L2EFB: LD HL,L0000
+ OR A
+ SBC HL,DE
+ JP C,01F8BH
+ EXX
+ LD A,B
+ AND (HL)
+ EXX
+ CALL L2F15
+ INC DE
+ EXX
+ RLC B
+ JR NC,L2F12 ; (+001H)
+ INC HL
+L2F12: EXX
+ JR L2EFB ; (-01aH)
+
+L2F15: JR NZ,L2F24 ; (+00dH)
+ EXX
+ DEC E
+ EXX
+ RET NZ
+ POP AF
+ EXX
+ LD A,D
+ EXX
+ LD E,A
+ LD D,000H
+ OR A
+ RET
+
+L2F24: EXX
+ LD E,D
+ EXX
+ LD B,D
+ LD C,E
+ INC BC
+ RET
+
+L2F2B: PUSH BC
+ AND 007H
+ INC A
+ LD B,A
+ XOR A
+ SCF
+L2F32: ADC A,A
+ DJNZ L2F32 ; (-003H)
+ POP BC
+ RET
+
+L2F37: OR 0AFH
+ LD HL,L2000
+ LD DE,00800H
+ LD BC,00010H
+ CALL L2FD1
+ LD A,(HL)
+ OR A
+ JP P,01F70H
+ RET
+
+L2F4B: PUSH HL
+ PUSH DE
+ CALL L2E36
+ INC HL
+ INC HL
+ CALL LDDEMI
+ CALL INDRCT
+ XOR A
+ SBC HL,DE
+ JP C,01F70H
+ SRL H
+ RR L
+ SRL H
+ RR L
+ LD B,H
+ LD C,L
+ POP DE
+ POP HL
+ OR A
+ JP L368D
+
+L2F6E: CALL L1D15
+ JP Z,01F97H
+ POP HL
+ CALL LDDEMI
+ LD (02FB1H),HL
+ LD (02F97H),DE
+ XOR A
+ LD (L2FC3),A
+ CALL 02F38H
+ LD (L2FC7),HL
+ LD A,040H
+ LD (L2FC6),A
+L2F8E: LD HL,(L2FC7)
+ LD A,(HL)
+ OR A
+ CALL Z,L2FB3
+ CALL 0FFFFH
+ LD HL,(L2FC7)
+ LD BC,00020H
+ ADD HL,BC
+ LD (L2FC7),HL
+ LD HL,L2FC6
+ DEC (HL)
+ JR NZ,L2F8E ; (-01bH)
+ LD A,(L2FC3)
+ LD HL,(L2FC4)
+ OR A
+ JP 0FFFFH
+
+L2FB3: PUSH AF
+ LD A,(L2FC3)
+ OR A
+ JR NZ,L2FC1 ; (+007H)
+ INC A
+ LD (L2FC3),A
+ LD (L2FC4),HL
+L2FC1: POP AF
+ RET
+
+L2FC3: NOP
+L2FC4: NOP
+ NOP
+L2FC6: NOP
+L2FC7: NOP
+ NOP
+L2FC9: PUSH HL
+ OR A
+ SBC HL,DE
+ POP HL
+ RET
+
+L2FCF: OR 0AFH
+L2FD1: CALL L2FE8
+L2FD4: CALL SKPDE
+ OR A
+ LD IX,(ZINP)
+ JR Z,L2FE2 ; (+004H)
+ LD IX,(ZOUT)
+L2FE2: LD A,(L1046)
+ JP IOCALL
+
+L2FE8: CALL IOOUT
+ LD A,(L35B5)
+ OR A
+ RET M
+ CALL L2D62
+ RET C
+ JP L2E36
+
+$CMT: DB "Y3CMT",000H,05FH ; $CMT - Cassette device descriptor
+L2FFE: DB 0C0H,000H,014H,"0d0",022H,030H
+ DB LSE5
+ DS 2, 000H
+ DB 001H,0AAH,"0]0",097H,01FH
+ SUB A
+ RRA
+ SUB A
+ RRA
+ CALL TEST1
+ DB 054H
+ LD HL,L2FFE
+ SET 4,(HL)
+ RET Z
+ RES 4,(HL)
+ OR A
+ RET
+
+ CALL SKPDE
+ LD DE,L10F0
+ LD A,(HL)
+ LD C,005H
+ CP 002H
+ JR Z,L303D ; (+00eH)
+ LD C,004H
+L3031: CP 003H
+ JR Z,L303D ; (+008H)
+ LD C,A
+L3036: SUB 004H
+ CP 002H
+ JP C,01F9DH
+L303D: LD A,C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD BC,00011H
+ LDIR
+ INC HL
+ INC HL
+ LD BC,L0006
+ LDIR
+ LD B,068H
+ CALL ?CLRDE
+ LD HL,L10F0
+ LD BC,L0080
+ CALL L30CB
+ JR L3060 ; (+003H)
+
+ CALL L30D2
+L3060: JP C,L017B
+ RET
+
+ LD A,037H
+ LD (L30AA),A
+ PUSH HL
+ LD HL,L10F0
+ LD BC,L0080
+ CALL L3114
+ JR C,L30C1 ; (+04cH)
+ LD DE,L3332
+ CALL L3301
+ POP DE
+ LD A,(HL)
+ LD C,002H
+ CP 005H
+ JR Z,L3091 ; (+00eH)
+ LD C,003H
+ CP 004H
+ JR Z,L3091 ; (+008H)
+ LD C,A
+ SUB 002H
+ CP 002H
+ JP C,01F9DH
+L3091: LD A,C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD BC,00011H
+ LDIR
+ XOR A
+ LD B,002H
+ CALL ?CLRDE
+ LD BC,L0006
+ LDIR
+ LD B,006H
+ JP ?CLRDE
+
+L30AA: XOR A
+ JR NC,L30BD ; (+010H)
+ LD A,0AFH
+ LD (L30AA),A
+ PUSH HL
+ LD HL,L1000
+ LD DE,L333F
+ CALL L3301
+ POP HL
+L30BD: CALL L311B
+ RET NC
+L30C1: CP 002H
+ JP NZ,L017B
+ LD A,0C6H
+ JP L0182
+
+L30CB: CALL L32D4
+ LD A,0CCH
+ JR L30D4 ; (+002H)
+
+L30D2: LD A,053H
+L30D4: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD E,A
+ LD D,0D7H
+ LD A,B
+ OR C
+ JR Z,L3107 ; (+024H)
+ CALL L32CB
+ CALL L3174
+ JR C,L3101 ; (+016H)
+ LD A,E
+ CP 0CCH
+ JR NZ,L30F8 ; (+008H)
+ PUSH DE
+ LD DE,L3325
+ CALL L3301
+ POP DE
+L30F8: DI
+ OUT (LSE4),A
+ CALL 00780H
+ CALL NC,L31DD
+L3101: DI
+ OUT (LSE4),A
+ CALL 00700H
+L3107: POP DE
+ LD SP,L0000
+ OUT (LSE0),A
+ OUT (LSE1),A
+ PUSH AF
+ RST 018H
+ DB 011H
+ POP AF
+ RET
+
+L3114: CALL L32D4
+ LD A,0CCH
+ JR L311D ; (+002H)
+
+L311B: LD A,053H
+L311D: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD D,LSD2
+ LD E,A
+ LD A,B
+ OR C
+ JR Z,L3107 ; (-025H)
+ CALL L3174
+ DI
+ OUT (LSE4),A
+ CALL NC,L065B
+ CALL NC,L3220
+ JR L3101 ; (-039H)
+
+L313A: PUSH HL
+ LD DE,L334C
+ LD HL,L1000
+ CALL L3301
+ POP HL
+ CALL L3153
+ RET NC
+ CP 002H
+ JP NZ,L017B
+ LD A,083H
+ JP L0182
+
+L3153: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD D,LSD2
+ LD E,053H
+ LD A,B
+ OR C
+ JR Z,L3107 ; (-05cH)
+ CALL L32CB
+ CALL L3174
+ DI
+ OUT (LSE4),A
+ CALL NC,L065B
+ CALL NC,L3274
+ JR L3101 ; (-073H)
+
+L3174: CALL SKPDE
+ RST 018H
+ DB 010H
+ LD HL,MMIO
+ LD A,FDPA
+ CALL POPRA
+ LD B,00AH
+L3183: LD HL,0E002H
+ CALL BREAKX
+ AND 010H
+ JR Z,L319A ; (+00dH)
+L318D: LD B,0FFH
+ OUT (LSE2),A
+L3191: CALL L09A6
+ DJNZ L3191 ; (-005H)
+ OUT (LSE0),A
+ XOR A
+ RET
+
+L319A: LD HL,0E003H
+ LD A,006H
+ CALL POPRA
+ INC A
+ CALL POPRA
+ DJNZ L3183 ; (-025H)
+ LD A,(L0050)
+ OR A
+ JR NZ,L31C7 ; (+019H)
+ RST 018H
+ DB 002H
+ LD A,07FH
+ RST 018H
+ DB 004H
+ LD A,020H
+ RST 018H
+ DB 003H
+ LD A,D
+ CP 0D7H
+ LD DE,L32BC
+ JR Z,L31C3 ; (+003H)
+ LD DE,L32C3
+L31C3: RST 018H
+ DB 005H
+ RST 018H
+ DB 002H
+L31C7: LD HL,0E002H
+ CALL BREAKX
+ AND 010H
+ JR NZ,L318D ; (-044H)
+ LD HL,0E001H
+ CALL BREAKX
+ AND 080H
+ JR NZ,L31C7 ; (-014H)
+ SCF
+ RET
+
+L31DD: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD D,002H
+ LD A,FDPA
+ LD (MMIO),A
+L31E7: OUT (LSE1),A
+ LD A,(HL)
+ OUT (LSE3),A
+ CALL L32C8
+ LD A,(0E001H)
+ AND 080H
+ SCF
+ JR Z,L321C ; (+025H)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L31E7 ; (-016H)
+ LD HL,(L1197)
+ LD A,H
+ CALL L32C8
+ LD A,L
+ CALL L32C8
+ CALL L0D60
+ XOR A
+ DEC D
+ JR Z,L321C ; (+00dH)
+ LD B,000H
+L3211: CALL L0D47
+ DJNZ L3211 ; (-005H)
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+ JR L31E7 ; (-035H)
+
+L321C: POP HL
+ POP BC
+ POP DE
+ RET
+
+L3220: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD H,002H
+L3225: LD BC,0E001H
+ LD DE,0E002H
+L322B: CALL 00601H
+ JR C,L3267 ; (+037H)
+ CALL 00A4AH
+ LD A,(DE)
+ AND 020H
+ JR Z,L322B ; (-00dH)
+ LD D,H
+ LD HL,L0000
+ LD (L1197),HL
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+L3243: CALL L0624
+ JR C,L3267 ; (+01fH)
+ OUT (LSE1),A
+ LD (HL),A
+ OUT (LSE3),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3243 ; (-010H)
+ LD HL,(L1197)
+ CALL L0624
+ JR C,L3267 ; (+00cH)
+ CP H
+ JR NZ,L326B ; (+00dH)
+ CALL L0624
+ JR C,L3267 ; (+004H)
+ CP L
+ JR NZ,L326B ; (+005H)
+L3266: XOR A
+L3267: POP HL
+ POP BC
+ POP DE
+ RET
+
+L326B: DEC D
+ LD H,D
+ JR NZ,L3225 ; (-04aH)
+L326F: LD A,002H
+ SCF
+ JR L3267 ; (-00dH)
+
+L3274: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD H,002H
+L3279: LD BC,0E001H
+ LD DE,0E002H
+L327F: CALL 00601H
+ JR C,L3267 ; (-01dH)
+ CALL 00A4AH
+ LD A,(DE)
+ AND 020H
+ JR Z,L327F ; (-00dH)
+ LD D,H
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+L3291: CALL L0624
+ JR C,L3267 ; (-02fH)
+ OUT (LSE1),A
+ CP (HL)
+ OUT (LSE3),A
+ JR NZ,L326F ; (-02eH)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3291 ; (-012H)
+ LD HL,(CSMDT)
+ CALL L0624
+ JR C,L3267 ; (-044H)
+ CP H
+ JR NZ,L326F ; (-03fH)
+ CALL L0624
+ JR C,L3267 ; (-04cH)
+ CP L
+ JR NZ,L326F ; (-047H)
+ DEC D
+ LD H,D
+ JR NZ,L3279 ; (-041H)
+ JR L3266 ; (-056H)
+
+L32BC: DB "RECORD." ; CMT status strings (RECORD/PLAY)
+L32C3: DB "PLAY",000H
+L32C8: JP L076D
+
+L32CB: DI
+ OUT (LSE2),A
+ CALL 0071AH
+ OUT (LSE0),A
+ RET
+
+L32D4: CALL SKPDE
+ LD A,0C9H
+ LD (L32D4),A
+ LD HL,L0036
+ BIT 6,(HL)
+ RET Z
+ LD HL,L0767
+ LD (032C9H),HL
+ LD HL,L077A
+ LD (030FCH),HL
+ LD HL,00996H
+ LD (03192H),HL
+ LD HL,L0A01
+ LD (03212H),HL
+ LD HL,L0A1A
+ LD (03209H),HL
+ RET
+
+L3301: LD A,(L0050)
+ OR A
+ RET NZ
+ RST 018H
+ DB 002H
+ RST 018H
+ DB 005H
+ PUSH HL
+ INC HL
+ LD A,022H
+ RST 018H
+ DB 003H
+ LD D,010H
+L3312: LD A,(HL)
+ CP 00DH
+ JR Z,L331D ; (+006H)
+ RST 018H
+ DB 003H
+ INC HL
+ DEC D
+ JR NZ,L3312 ; (-00bH)
+L331D: LD A,022H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 002H
+ POP HL
+ RET
+
+L3325: DB 057H,005H,"RITING" ; CMT status strings (WRITING/FOUND/LOADING/VERIFYING)
+ DS 3, 020H
+ DB 006H
+ DB 000H
+L3332: DB 046H,005H,"OUND"
+ DS 5, 020H
+ DB 006H
+ DB 000H
+L333F: DB 04CH,005H,"OADING"
+ DS 3, 020H
+ DB 006H
+ DB 000H
+L334C: DB 056H,005H,"ERIFYING ",006H
+ NOP
+$RS: DB 08DH,"5RS" ; $RS - RS-232C device descriptor
+ DS 2, 000H
+ DB 08FH,001H,000H,072H,033H,0A4H,033H,0A4H,033H,0B5H,033H,0B5H,033H,0C6H,033H,0DBH,033H
+ DB LSE5
+ DB 000H
+ RET C
+ PUSH IY
+ CALL L33EC
+ CALL L3380
+ CALL L3435
+ JR L33D8 ; (+058H)
+
+L3380: RST 018H
+ DB 013H
+ LD (IY-003H),E
+ CALL TEST1
+ DB 02CH
+ JP NZ,L1F6A
+ RST 018H
+ DB 013H
+ LD (IY-002H),E
+ LD (IY-008H),00DH
+ CALL TEST1
+ DB 000H
+ RET Z
+ CALL TEST1
+ DB 02CH
+ RST 018H
+ DB 013H
+ LD (IY-008H),E
+ RET
+
+ PUSH IY
+ CALL L33EC
+ LD A,(IY-001H)
+ INC (IY-001H)
+ OR A
+ CALL Z,L3497
+ JR L33D8 ; (+023H)
+
+ PUSH IY
+ CALL L33EC
+ DEC (IY-001H)
+ LD A,(IY-001H)
+ OR A
+ CALL Z,L347F
+ JR L33D7 ; (+011H)
+
+ PUSH IY
+ CALL L33EC
+ CALL L34E6
+ JR C,L33D8 ; (+008H)
+ CP (IY-008H)
+ JR NZ,L33D7 ; (+002H)
+ LD A,00DH
+L33D7: OR A
+L33D8: POP IY
+ RET
+
+ PUSH IY
+ CALL L33EC
+ CP 00DH
+ JR NZ,L33E7 ; (+003H)
+ LD A,(IY-008H)
+L33E7: CALL L352B
+ JR L33D8 ; (-014H)
+
+L33EC: PUSH AF
+ PUSH DE
+ LD A,(L1046)
+ INC A
+ LD IY,033F7H
+ LD DE,L0015
+L33F9: ADD IY,DE
+ DEC A
+ JR NZ,L33F9 ; (-005H)
+ LD C,(IY+000H)
+ POP DE
+ POP AF
+ RET
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ OR C
+ OR B
+ NOP
+ DJNZ L3421 ; (+010H)
+ INC B
+ LD B,B
+ INC BC
+ RET NZ
+ DEC B
+ LD H,B
+ JR NC,L341C ; (+003H)
+ NOP
+ NOP
+ NOP
+L341C: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L3421: OR E
+ OR D
+ NOP
+ DJNZ 03436H ; (+010H)
+ INC B
+ LD B,B
+ INC BC
+ RET NZ
+ DEC B
+ LD H,B
+ JR NC,L3431 ; (+003H)
+L342E: CALL BRKCHK
+L3431: RET NZ
+ JP 0017DH
+
+L3435: LD A,018H
+ OUT (C),A
+ LD A,030H
+ OUT (C),A
+ LD A,(IY-002H)
+ AND 00CH
+ JR NZ,L3448 ; (+004H)
+ SET 2,(IY-002H)
+L3448: LD A,(IY-002H)
+ LD B,A
+ AND 00FH
+ OR 040H
+ LD (IY+006H),A
+ LD A,B
+ AND 080H
+ OR 040H
+ LD (IY+008H),A
+ RRA
+ AND 07FH
+ OR 00AH
+ LD (IY+00AH),A
+ LD A,B
+ OR 07FH
+ LD (IY+002H),A
+ CALL L348B
+L346C: IN A,(C)
+ RRCA
+ RET NC
+ DEC C
+ IN A,(C)
+ INC C
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ AND 070H
+ JR Z,L346C ; (-012H)
+ RET
+
+L347F: RES 0,(IY+008H)
+ RES 7,(IY+00AH)
+ LD (IY-001H),000H
+L348B: LD B,00AH
+ PUSH IY
+ POP HL
+ LD DE,L0003
+ ADD HL,DE
+ OTIR
+ RET
+
+L3497: LD A,030H
+ OUT (C),A
+ RET
+
+L349C: SET 0,(IY+008H)
+ LD A,013H
+ OUT (C),A
+ LD A,(IY+008H)
+ OUT (C),A
+ LD A,035H
+ OUT (C),A
+ LD A,(IY+00AH)
+ OR 088H
+ LD (IY+00AH),A
+ OUT (C),A
+ RET
+
+ LD A,003H
+ OUT (C),A
+ RES 0,(IY+008H)
+ LD A,(IY+008H)
+ OUT (C),A
+L34C5: RES 7,(IY+00AH)
+ JR L34DB ; (+010H)
+
+L34CB: SET 1,(IY+00AH)
+ JR L34DB ; (+00aH)
+
+L34D1: RES 1,(IY+00AH)
+ JR L34DB ; (+004H)
+
+ SET 7,(IY+00AH)
+L34DB: LD A,005H
+ OUT (C),A
+ LD A,(IY+00AH)
+ OUT (C),A
+ OR A
+ RET
+
+L34E6: CALL SKPDE
+ LD C,(IY+000H)
+L34EC: CALL L342E
+ CALL L3564
+ JR C,L34EC ; (-008H)
+ CALL L349C
+L34F7: CALL L342E
+ IN A,(C)
+ RRCA
+ JR NC,L34F7 ; (-008H)
+ DEC C
+ IN A,(C)
+ INC C
+ AND (IY+002H)
+ PUSH AF
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ AND 070H
+ JR NZ,L3516 ; (+005H)
+ CALL L34C5
+ POP AF
+ RET
+
+L3516: LD B,A
+ POP AF
+ PUSH BC
+ CALL L3435
+ POP BC
+ LD A,01DH
+ RLC B
+ RLC B
+ RET C
+ INC A
+ RLC B
+ RET C
+ INC A
+ SCF
+ RET
+
+L352B: CALL SKPDE
+ LD C,(IY+000H)
+ LD D,A
+ CALL L34CB
+L3535: CALL L342E
+ CALL L356B
+ CALL NC,L357C
+L353E: JR C,L3535 ; (-00bH)
+ IN A,(C)
+ BIT 2,A
+ JR Z,L3535 ; (-011H)
+ BIT 7,(IY-003H)
+ JR Z,L3555 ; (+009H)
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ RRCA
+ JR NC,L3535 ; (-020H)
+L3555: DEC C
+ OUT (C),D
+ INC C
+ BIT 6,(IY-003H)
+ JR Z,L3562 ; (+003H)
+ CALL L34D1
+L3562: OR A
+ RET
+
+L3564: OR A
+ BIT 0,(IY-003H)
+ JR L3570 ; (+005H)
+
+L356B: OR A
+ BIT 1,(IY-003H)
+L3570: RET Z
+ LD A,010H
+ OUT (C),A
+ IN A,(C)
+ AND 008H
+ RET NZ
+ SCF
+ RET
+
+L357C: OR A
+ BIT 2,(IY-003H)
+ RET Z
+ LD A,010H
+ OUT (C),A
+ IN A,(C)
+ AND 020H
+ RET NZ
+ SCF
+ RET
+
+$FD: DB 0A2H,"8FD" ; $FD - Floppy Disk device descriptor
+ DS 2, 000H
+ DB 03FH,003H,03FH,08DH,036H,00FH
+ DS 2, 000H
+ DB 001H,030H,000H,0FEH,000H,005H,037H,008H,037H,097H,01FH
+ SUB A
+ RRA
+ SUB A
+ RRA
+ DB 000H
+L35AB: DB 000H
+L35AC: DB 000H
+L35AD: DS 3, 000H
+L35B0: DB 000H
+L35B1: DS 2, 000H
+L35B3: DB 000H
+L35B4: DB 000H
+L35B5: DB 000H
+L35B6: DB 000H
+L35B7: DS 4, 000H
+L35BB: DS 4, 000H
+L35BF: DB 000H
+L35C0: PUSH BC
+ LD A,L
+ LD B,004H
+L35C4: SRL H
+ RR L
+ DJNZ L35C4 ; (-006H)
+ AND 00FH
+ INC A
+ LD H,A
+ POP BC
+ RET
+
+L35D0: LD A,H
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ DEC A
+ ADD A,L
+ LD L,A
+ RET
+
+L35DB: CALL SKPDE
+ LD HL,L35B5
+ BIT 7,(HL)
+ JR NZ,L35EB ; (+006H)
+ CALL L367C
+ CALL L3898
+L35EB: LD A,(L35AC)
+ BIT 2,A
+ SET 2,A
+ JR Z,L35F6 ; (+002H)
+ SET 5,A
+L35F6: SET 7,A
+ LD HL,L35B5
+ BIT 6,(HL)
+ JR Z,L3601 ; (+002H)
+ SET 6,A
+L3601: CALL L361C
+ LD (HL),A
+ LD HL,L35B7
+ CALL L3614
+ BIT 0,(HL)
+ CALL Z,L3695
+ RET C
+ SET 0,(HL)
+ RET
+
+L3614: LD A,(L35AC)
+ AND 003H
+ JP ADDHLA
+
+L361C: OUT (0DCH),A
+ PUSH AF
+ RLCA
+ RLCA
+ OUT (0DDH),A
+ RLCA
+ OUT (0DEH),A
+ POP AF
+ RET
+
+L3628: CALL SKPDE
+ LD D,000H
+ LD A,(L35B3)
+ SRL A
+ CPL
+ OUT (0DBH),A
+ LD B,A
+ LD A,(L35B5)
+ RES 6,A
+ BIT 5,A
+ JR Z,L3640 ; (+001H)
+ CCF
+L3640: JR C,L3644 ; (+002H)
+ SET 6,A
+L3644: CALL L361C
+ LD HL,L35B5
+ CP (HL)
+ LD (HL),A
+ JR Z,L364F ; (+001H)
+ INC D
+L364F: LD HL,L35BB
+ CALL L3614
+ LD A,(HL)
+ OUT (0D9H),A
+ CP B
+ JR Z,L3666 ; (+00bH)
+ INC D
+ CALL L3673
+ PUSH AF
+ IN A,(0D9H)
+ LD (HL),A
+ POP AF
+ RET C
+ RET NZ
+L3666: LD A,(L35B4)
+ CPL
+ OUT (0DAH),A
+ LD A,D
+ OR A
+ CALL NZ,L388D
+ XOR A
+ RET
+
+L3673: LD A,018H
+ CALL L36C2
+ RET C
+ AND 099H
+ RET
+
+L367C: LD HL,L35B5
+ SET 7,(HL)
+ LD A,(HL)
+ CALL L361C
+ LD HL,L35B7
+ LD B,004H
+ JP ?CLRHL
+
+L368D: XOR A
+ CALL L361C
+ LD (L35B5),A
+ RET
+
+L3695: CALL SKPDE
+ LD HL,L35BB
+ CALL L3614
+ LD (HL),0FFH
+ LD A,008H
+ CALL L36C2
+ RET C
+ AND 085H
+ XOR 004H
+ RET Z
+ JP L385A
+
+L36AE: PUSH AF
+ LD A,LSD0
+ CALL L36BB
+ JR C,L36B8 ; (+002H)
+ POP AF
+ RET
+
+L36B8: POP HL
+ POP HL
+ RET
+
+L36BB: CALL SKPDE
+ LD D,000H
+ JR L36DC ; (+01aH)
+
+L36C2: CALL SKPDE
+ LD B,A
+ LD A,(035AAH)
+ CPL
+ AND 003H
+ OR B
+ LD D,000H
+ JR L36D6 ; (+005H)
+
+L36D1: CALL SKPDE
+ LD D,001H
+L36D6: CALL L36AE
+ LD (L35B6),A
+L36DC: CPL
+ OUT (0D8H),A
+ CALL L3887
+ LD E,007H
+L36E4: LD HL,L2710
+L36E7: DEC HL
+ LD A,H
+ OR L
+ JP Z,L36F9
+ IN A,(0D8H)
+ CPL
+ LD B,A
+ AND 081H
+ CP D
+ JR NZ,L36E7 ; (-00fH)
+ LD A,B
+ OR A
+ RET
+
+L36F9: DEC E
+ JP Z,L385A
+ LD A,(L35B6)
+ CPL
+ OUT (0D8H),A
+ JR L36E4 ; (-021H)
+
+ DB 037H
+ JR L3709 ; (+001H)
+
+ OR A
+L3709: EX AF,AF'
+ PUSH AF
+ EX AF,AF'
+ LD (L35B1),HL
+ PUSH HL
+ LD HL,L35AB
+ RL (HL)
+ RRC (HL)
+ LD H,(HL)
+ LD L,A
+ AND 007H
+ LD (L35AC),A
+ CALL L35DB
+ JR NC,L3728 ; (+005H)
+ POP HL
+ EX AF,AF'
+ POP AF
+ EX AF,AF'
+ RET
+
+L3728: BIT 7,H
+ LD A,L
+ POP HL
+ PUSH HL
+ CALL Z,L37E7
+ LD (035AFH),DE
+ PUSH DE
+ OR A
+ PUSH AF
+ LD H,B
+ LD L,C
+ CALL P,L35C0
+ LD (L35AD),HL
+ LD A,009H
+ LD (L35BF),A
+ PUSH IY
+ CALL L375C
+ EX AF,AF'
+ POP IY
+ LD HL,(L35B3)
+ POP AF
+ CALL P,L35D0
+ LD B,H
+ LD C,L
+ POP DE
+ POP HL
+ POP AF
+ EX AF,AF'
+ JP L37E7
+
+L375C: LD E,000H
+ LD HL,(035AFH)
+ LD A,(L35B5)
+ BIT 5,A
+ JR Z,L376B ; (+003H)
+ ADD HL,HL
+ LD E,080H
+L376B: LD A,L
+ OR A
+ JR Z,L3770 ; (+001H)
+ INC H
+L3770: LD A,H
+ LD (L35B0),A
+L3774: CALL L37FA
+ CALL NC,L3628
+ RET C
+ JR NZ,L37E1 ; (+064H)
+ DI
+ LD A,(L35AB)
+ BIT 7,A
+ LD A,090H
+ LD IY,0A2EDH
+ JR NZ,L3791 ; (+006H)
+ LD A,0B4H
+ LD IY,0A3EDH
+L3791: LD (L37A8),IY
+ CALL L36D1
+ RET C
+L3799: LD B,E
+ PUSH DE
+ LD DE,0FE7CH
+L379E: IN A,(0D8H)
+ OR E
+ CP D
+ JR Z,L379E ; (-006H)
+ CP LSFC
+ JR NZ,L37AD ; (+005H)
+L37A8: NOP
+ NOP
+ JP NZ,L379E
+L37AD: POP DE
+ IN A,(0D8H)
+ RRA
+ JP C,L385A
+ LD A,(L35B4)
+ INC A
+ LD (L35B4),A
+ CP 011H
+ JR Z,L37C4 ; (+005H)
+ DEC D
+ JR NZ,L3799 ; (-029H)
+ JR L37C5 ; (+001H)
+
+L37C4: DEC D
+L37C5: CALL L36AE
+ EI
+ IN A,(0D8H)
+ CPL
+ OR A
+ JR NZ,L37E1 ; (+012H)
+ LD A,(L35AB)
+ OR A
+ CALL Z,L3830
+ JR C,L37E1 ; (+009H)
+ CALL L3818
+ LD A,D
+ OR A
+ JR NZ,L3774 ; (-06bH)
+ XOR A
+ RET
+
+L37E1: CALL L380B
+ RET C
+ JR L3774 ; (-073H)
+
+L37E7: CALL IOOUT
+ LD A,(L35B5)
+ BIT 5,A
+ RET Z
+L37F0: LD A,(HL)
+ CPL
+ LD (HL),A
+ INC HL
+ DEC DE
+ LD A,D
+ OR E
+ JR NZ,L37F0 ; (-009H)
+ RET
+
+L37FA: LD HL,(L35AD)
+ LD (L35B3),HL
+ LD HL,(L35B1)
+ LD A,(L35B0)
+ LD D,A
+ LD C,0DBH
+ OR A
+ RET
+
+L380B: CALL SKPDE
+ LD HL,L35BF
+ DEC (HL)
+ JP Z,L385A
+ JP L3695
+
+L3818: LD (L35B1),HL
+ LD A,D
+ LD (L35B0),A
+ LD HL,(L35B3)
+ LD A,H
+ CP 011H
+ RET NZ
+ LD H,001H
+ INC L
+ LD (L35AD),HL
+ LD (L35B3),HL
+ RET
+
+L3830: LD A,(035AEH)
+ CPL
+ OUT (0DAH),A
+ LD A,090H
+ CALL L36D1
+ RET C
+ LD A,(L35B4)
+ LD B,A
+L3840: IN A,(0D8H)
+ CPL
+ AND 081H
+ CP 001H
+ JR NZ,L3852 ; (+009H)
+ IN A,(0DAH)
+ CPL
+ CP B
+ JR NZ,L3840 ; (-00fH)
+ CALL L36AE
+L3852: IN A,(0D8H)
+ CPL
+ AND 099H
+ RET Z
+ SCF
+ RET
+
+L385A: LD A,(L35B6)
+ RLA
+ IN A,(0D8H)
+ CPL
+ JR NC,L3878 ; (+015H)
+ RLA
+ JR C,L387B ; (+015H)
+ RLA
+ JR NC,L3870 ; (+007H)
+ LD HL,L35AB
+ BIT 7,(HL)
+ JR Z,L387F ; (+00fH)
+L3870: AND 0C0H
+ JR NZ,L3883 ; (+00fH)
+L3874: LD A,029H
+ SCF
+ RET
+
+L3878: RLA
+ JR NC,L3874 ; (-007H)
+L387B: LD A,032H
+ SCF
+ RET
+
+L387F: LD A,02EH
+ SCF
+ RET
+
+L3883: LD A,036H
+ SCF
+ RET
+
+L3887: PUSH DE
+ LD DE,L000F
+ JR L3891 ; (+004H)
+
+L388D: PUSH DE
+ LD DE,L2026
+L3891: DEC DE
+ LD A,E
+ OR D
+ JR NZ,L3891 ; (-005H)
+ POP DE
+ RET
+
+L3898: PUSH BC
+ LD B,011H
+L389B: CALL L388D
+ DJNZ L389B ; (-005H)
+ POP BC
+ RET
+
+$QD: DB 05EH,00DH,051H,044H ; $QD - Quick Disk device descriptor
+ DS 2, 000H
+ DB "_@ ",0C2H,038H,001H,039H,01FH,039H,0DAH,038H,000H,004H,012H,"9)9"
+ DS 2, 000H
+ NOP
+ NOP
+ CP A
+ JR C,0386FH ; (-051H)
+ SCF
+ RET
+
+ RET C
+ CALL TEST1
+ DB 059H
+ JR Z,L38D0 ; (+007H)
+ OR A
+ JP NZ,L1F6A
+ CALL L1E7A
+L38D0: CALL L3924
+ RET C
+ RST 018H
+ DB 010H
+ LD C,002H
+ JR L3919 ; (+03fH)
+
+ OR A
+ JR NZ,L38FA ; (+01dH)
+ RST 018H
+ DB 010H
+ XOR A
+ LD (L395E),A
+ LD C,005H
+ CALL L38EB
+ LD BC,00001H
+L38EB: LD (L3954),HL
+ LD (03956H),DE
+ LD HL,L3953
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ JR L3968 ; (+06eH)
+
+L38FA: CALL SKPDE
+ LD C,006H
+ JR L3919 ; (+018H)
+
+ LD BC,L0003
+ LD DE,00040H
+ CALL L38EB
+ RET NC
+ CP 028H
+ SCF
+ RET NZ
+ LD A,000H
+ RET
+
+ RST 018H
+ DB 010H
+ LD D,B
+ LD E,C
+ LD BC,00103H
+L3919: CALL L38EB
+ RST 018H
+ DB 011H
+ RET
+
+ LD A,037H
+ LD (L392C),A
+L3924: LD BC,L0101
+ JR L38EB ; (-03eH)
+
+ PUSH AF
+ RST 018H
+ DB 010H
+L392C: XOR A
+ JR NC,L3943 ; (+014H)
+ LD A,0AFH
+ LD (L392C),A
+ CALL L1C2B
+ LD (L3958),HL
+ LD HL,L1000
+ LD DE,00040H
+ POP AF
+ JR L3949 ; (+006H)
+
+L3943: LD (L3958),HL
+ POP AF
+ SET 0,A
+L3949: LD (0395AH),BC
+ LD B,A
+ LD C,004H
+ JR L3919 ; (-039H)
+
+ DB 000H
+L3953: DB 000H
+L3954: DS 4, 000H
+L3958: DS 4, 000H
+L395C: DB 000H
+L395D: DB 000H
+L395E: DB 000H
+L395F: DB 000H
+L3960: DB 000H
+L3961: DB 000H
+L3962: DB 000H
+L3963: DB 000H
+L3964: DB 000H
+L3965: DS 3, 000H
+L3968: LD A,005H
+ LD (L3964),A
+L396D: DI
+ CALL L39BC
+ EI
+ RET NC
+ PUSH AF
+ CP 028H
+ JR Z,L39BA ; (+042H)
+ CALL L3C37
+ LD A,(03952H)
+ CP 004H
+ JR NZ,L399F ; (+01dH)
+ LD A,(L3960)
+ OR A
+ JR Z,L399F ; (+017H)
+ XOR A
+ LD (L3960),A
+ LD A,(L3961)
+ PUSH HL
+ LD (03966H),SP
+ POP HL
+ DI
+ CALL L3BB7
+ EI
+ JR C,L39B4 ; (+018H)
+ CALL L3C37
+L399F: POP AF
+ PUSH AF
+ CP 029H
+ JR NZ,L39B4 ; (+00fH)
+ LD HL,L3964
+ DEC (HL)
+ JR Z,L39B4 ; (+009H)
+ POP AF
+ LD A,(L395F)
+ LD (L395E),A
+ JR L396D ; (-047H)
+
+L39B4: CALL L3B29
+ CALL L39D5
+L39BA: POP AF
+ RET
+
+L39BC: LD (03966H),SP
+ LD A,(03952H)
+ DEC A
+ JR Z,L39DC ; (+016H)
+ DEC A
+ JR Z,L39E2 ; (+019H)
+ DEC A
+ JR Z,L3A2C ; (+060H)
+ DEC A
+ JP Z,L3A9C
+ DEC A
+ JR Z,L39D5 ; (+002H)
+ JR L3A25 ; (+050H)
+
+L39D5: PUSH AF
+ XOR A
+ LD (L395C),A
+ POP AF
+ RET
+
+L39DC: LD A,(L3953)
+ JP L3B8B
+
+L39E2: XOR A
+ CALL L3BB7
+ CALL L3CB5
+ LD BC,0EFFFH
+ LD A,0AAH
+L39EE: CPL
+ LD D,A
+ CALL L3D2C
+ DEC BC
+ LD A,B
+ OR C
+ JR Z,L39FB ; (+003H)
+ LD A,D
+ JR L39EE ; (-00dH)
+
+L39FB: CALL L3D02
+ CALL L3C37
+ CALL L3BEA
+ LD A,(L3962)
+ DEC A
+ JR NZ,L3A28 ; (+01eH)
+ CALL L3C4C
+ LD BC,0EFFFH
+ LD E,055H
+L3A12: CP E
+ JR NZ,L3A28 ; (+013H)
+ DEC BC
+ LD A,B
+ OR C
+ JR Z,L3A22 ; (+008H)
+ LD A,E
+ CPL
+ LD E,A
+ CALL L3D42
+ JR L3A12 ; (-010H)
+
+L3A22: CALL L3D14
+L3A25: JP L3C37
+
+L3A28: LD A,029H
+ SCF
+ RET
+
+L3A2C: LD A,(L3963)
+ OR A
+ CALL Z,L3BEA
+ CALL L3A62
+ RET C
+ CALL L3D87
+ CALL L3D42
+ LD C,A
+L3A3E: CALL L3D42
+ LD B,A
+ LD HL,(03956H)
+ SBC HL,BC
+ JP C,L3B33
+ LD HL,(L3954)
+L3A4D: CALL L3D42
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3A4D ; (-00aH)
+ CALL L3D14
+ LD A,(L3953)
+ BIT 0,A
+ JR NZ,L3A25 ; (-03cH)
+ RET
+
+L3A62: LD HL,L3962
+ DEC (HL)
+ JR Z,L3A98 ; (+030H)
+ CALL L3C4C
+ LD C,A
+ LD A,(L395C)
+ LD HL,L395D
+ CP (HL)
+ JR NZ,L3A95 ; (+020H)
+ INC A
+ LD (L395C),A
+ LD (HL),A
+ LD A,(L3953)
+ XOR C
+ RRA
+ RET NC
+L3A80: CALL L3D42
+ LD C,A
+ CALL L3D42
+ LD B,A
+L3A88: CALL L3D42
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3A88 ; (-008H)
+ CALL L3D14
+ JR L3A62 ; (-033H)
+
+L3A95: INC (HL)
+ JR L3A80 ; (-018H)
+
+L3A98: LD A,028H
+ SCF
+ RET
+
+L3A9C: LD A,(L395E)
+ LD (L395F),A
+ LD A,(L3963)
+ OR A
+ JR NZ,L3ABF ; (+017H)
+ CALL L3BEA
+ LD A,(L395E)
+ LD HL,L3962
+ ADD A,(HL)
+ LD (L3962),A
+ INC A
+ LD (L395C),A
+ CALL L3A62
+ JP NC,L3B33
+L3ABF: LD A,(L3953)
+ LD B,A
+ AND 001H
+ JR NZ,L3AD3 ; (+00cH)
+ LD DE,L3954
+ LD A,B
+ RES 2,A
+ CALL L3B3C
+ CALL L3D87
+L3AD3: LD DE,L3958
+ LD A,(L3953)
+ SET 0,A
+ CALL L3B3C
+ CALL L3C37
+ CALL L3D87
+ LD A,(L3953)
+ AND 004H
+ JR Z,L3B37 ; (+04cH)
+ LD A,(L3961)
+ LD HL,L395E
+ ADD A,(HL)
+ CALL L3BB7
+ LD A,001H
+ LD (L3960),A
+L3AFA: LD A,(L3961)
+ LD HL,L395F
+ ADD A,(HL)
+ INC A
+ LD (L3962),A
+ INC A
+ LD (L395C),A
+ CALL L3A62
+ JR NC,L3B33 ; (+025H)
+ LD A,(L3953)
+ AND 001H
+ JR NZ,L3B1C ; (+007H)
+ LD DE,L3954
+ CALL L3B6A
+ RET C
+L3B1C: LD DE,L3958
+ CALL L3B6A
+ RET C
+ LD A,(L3960)
+ OR A
+ JR Z,L3B30 ; (+007H)
+L3B29: XOR A
+ LD (L395E),A
+ LD (L3960),A
+L3B30: JP L3C37
+
+L3B33: LD A,029H
+ SCF
+ RET
+
+L3B37: CALL L3BEA
+ JR L3AFA ; (-042H)
+
+L3B3C: PUSH AF
+ LD HL,L395E
+ INC (HL)
+ CALL L3CB5
+ POP AF
+ CALL L3D2C
+ CALL L3B60
+ LD A,C
+ CALL L3D2C
+ LD A,B
+ CALL L3D2C
+L3B53: LD A,(HL)
+ CALL L3D2C
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3B53 ; (-00aH)
+ JP L3D02
+
+L3B60: EX DE,HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ EX DE,HL
+ RET
+
+L3B6A: CALL L3C4C
+ CALL L3B60
+ CALL L3D42
+ CP C
+ JR NZ,L3B33 ; (-043H)
+ CALL L3D42
+ CP B
+ JR NZ,L3B33 ; (-049H)
+L3B7C: CALL L3D42
+ CP (HL)
+ JR NZ,L3B33 ; (-04fH)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3B7C ; (-00cH)
+ JP L3D14
+
+L3B8B: LD B,A
+ LD A,002H
+ OUT (0F7H),A
+ LD A,081H
+ OUT (0F7H),A
+ LD A,002H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 0F0H
+ CP 080H
+ JP NZ,03D58H
+ LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ LD C,A
+ AND 008H
+ JP Z,03D58H
+ LD A,B
+ OR A
+ RET Z
+ LD A,C
+ AND 020H
+ RET NZ
+ JP 03D55H
+
+L3BB7: PUSH AF
+ LD HL,03D7EH
+ LD B,009H
+ CALL L3C27
+L3BC0: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03D58H
+ LD A,010H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 008H
+ JR Z,L3BC0 ; (-015H)
+ LD BC,L00E9
+ CALL L3D66
+ CALL L3CEA
+ CALL L3CCE
+ POP AF
+ CALL L3D2C
+ CALL L3D02
+ JR L3C1D ; (+033H)
+
+L3BEA: LD HL,L3D73
+ LD B,00BH
+ CALL L3C27
+L3BF2: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03D58H
+ CALL L3D87
+ LD A,010H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 008H
+ JR Z,L3BF2 ; (-018H)
+ LD BC,L00E9
+ CALL L3D66
+ CALL L3C62
+ LD (L3961),A
+ INC A
+ LD (L3962),A
+ CALL L3D14
+L3C1D: LD HL,L3965
+ SET 3,(HL)
+ XOR A
+ LD (L395D),A
+ RET
+
+L3C27: LD C,0F6H
+ OTIR
+ LD A,005H
+ LD (L3963),A
+ OUT (0F7H),A
+ LD A,080H
+ OUT (0F7H),A
+ RET
+
+L3C37: PUSH AF
+ LD A,005H
+ OUT (0F6H),A
+ LD A,060H
+ OUT (0F6H),A
+ LD A,005H
+ OUT (0F7H),A
+ XOR A
+ LD (L3963),A
+ OUT (0F7H),A
+ POP AF
+ RET
+
+L3C4C: LD A,058H
+ LD B,00BH
+ LD HL,L3D73
+ CALL L3CF3
+ LD HL,L3965
+ BIT 3,(HL)
+ LD BC,L0003
+ JR Z,L3C65 ; (+005H)
+ RES 3,(HL)
+L3C62: LD BC,L00A0
+L3C65: CALL L3D66
+ LD A,005H
+ OUT (0F7H),A
+ LD A,082H
+ OUT (0F7H),A
+ LD A,003H
+ OUT (0F6H),A
+ LD A,LSD3
+ OUT (0F6H),A
+ LD BC,L2CC0
+L3C7B: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 010H
+ JR Z,L3C8D ; (+008H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3C7B ; (-00fH)
+ JP 03D5EH
+
+L3C8D: LD A,003H
+ OUT (0F6H),A
+ LD A,0C3H
+ OUT (0F6H),A
+ LD B,09FH
+L3C97: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 001H
+ JR NZ,L3CA7 ; (+006H)
+ DEC B
+ JR NZ,L3C97 ; (-00dH)
+ JP 03D5EH
+
+L3CA7: LD A,003H
+ OUT (0F6H),A
+ LD A,0C9H
+ OUT (0F6H),A
+ CALL L3D42
+ JP L3D42
+
+L3CB5: LD A,098H
+ LD B,009H
+ LD HL,03D7EH
+ CALL L3CF3
+ CALL L3CEA
+ LD HL,L3965
+ BIT 3,(HL)
+ LD BC,0001DH
+ JR Z,L3CD1 ; (+005H)
+ RES 3,(HL)
+L3CCE: LD BC,L0140
+L3CD1: CALL L3D66
+ LD A,005H
+ OUT (0F6H),A
+ LD A,0EFH
+ OUT (0F6H),A
+ LD BC,00001H
+ CALL L3D66
+ LD A,0C0H
+ OUT (0F6H),A
+ LD A,0A5H
+ JR L3D2C ; (+042H)
+
+L3CEA: LD A,005H
+ OUT (0F6H),A
+ LD A,0FFH
+ OUT (0F6H),A
+ RET
+
+L3CF3: LD C,0F6H
+ OUT (C),A
+ LD A,005H
+ OUT (0F7H),A
+L3CFB: LD A,080H
+ OUT (0F7H),A
+ OTIR
+ RET
+
+L3D02: LD BC,00001H
+ CALL L3D66
+ LD A,010H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 008H
+ RET NZ
+ JP 03D5BH
+
+L3D14: LD B,003H
+L3D16: CALL L3D42
+ DJNZ L3D16 ; (-005H)
+L3D1B: IN A,(0F6H)
+ RRCA
+ JR NC,L3D1B ; (-005H)
+ LD A,001H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 040H
+ JR NZ,L3D52 ; (+028H)
+ OR A
+ RET
+
+L3D2C: PUSH AF
+L3D2D: IN A,(0F6H)
+ AND 004H
+ JR Z,L3D2D ; (-006H)
+ POP AF
+ OUT (QDPC),A
+L3D36: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03D58H
+ RET
+
+L3D42: CALL L3D36
+ IN A,(0F6H)
+ RLCA
+ JR C,L3D52 ; (+008H)
+ RRCA
+ RRCA
+ JR NC,L3D42 ; (-00cH)
+ IN A,(QDPC)
+ OR A
+ RET
+
+L3D52: LD A,029H
+ LD HL,02E3EH
+ LD HL,0323EH
+ LD HL,L353E
+ LD HL,0363EH
+ LD SP,(03966H)
+ SCF
+ RET
+
+L3D66: PUSH AF
+L3D67: LD A,096H
+L3D69: DEC A
+ JR NZ,L3D69 ; (-003H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3D67 ; (-00aH)
+ POP AF
+ RET
+
+L3D73: LD E,B
+ INC B
+ DJNZ L3D7C ; (+005H)
+ INC B
+ INC BC
+ RET NC
+ LD B,016H
+L3D7C: RLCA
+ LD D,098H
+ INC B
+ DJNZ 03D88H ; (+006H)
+ LD D,007H
+ LD D,005H
+ LD L,L
+L3D87: LD A,0E8H
+ OUT (LSE3),A
+ LD (MMIO),A
+ NOP
+ LD A,(0E001H)
+ OUT (LSE1),A
+ AND 081H
+ RET NZ
+ CALL L3B29
+ JP L017B
+
+ PUSH HL
+ LD DE,(00188H)
+ PUSH DE
+ LD DE,L3DE4
+ LD (00188H),DE
+ LD A,(L004F)
+ PUSH AF
+ LD A,064H
+ LD (L004F),A
+ LD (03E5BH),SP
+ XOR A
+ LD (L1091),A
+L3DBB: LD SP,L0000
+L3DBE: LD BC,L3DBE
+ PUSH BC
+ RST 018H
+ DB 002H
+ LD A,02AH
+ RST 018H
+ DB 003H
+L3DC8: CALL L3E67
+ JR NC,L3DC8 ; (-005H)
+ LD A,(DE)
+ CP 02AH
+ RET NZ
+ INC DE
+ LD A,(DE)
+ INC DE
+ EXX
+ LD HL,L3DF6
+ LD B,00AH
+L3DDA: CP (HL)
+ INC HL
+ JR Z,L3DF0 ; (+012H)
+ INC HL
+ INC HL
+ DJNZ L3DDA ; (-008H)
+ EXX
+ RET
+
+L3DE4: LD C,A
+ AND 07FH
+ JR Z,L3DBB ; (-02eH)
+ LD A,C
+ RST 018H
+ DB 01BH
+ RST 018H
+ DB 043H
+ JR L3DBB ; (-035H)
+
+L3DF0: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH DE
+ EXX
+ RET
+
+L3DF6: LD B,H
+ CALL C,L4D3E
+ LD C,(HL)
+ CCF
+ LD D,B
+ INC D
+ LD A,047H
+ RST 010H
+ LD A,046H
+ LD (HL),D
+ CCF
+ LD D,D
+L3E06: LD E,D
+ LD A,053H
+ DEC E
+ LD A,04CH
+ INC (HL)
+ LD A,056H
+ LD D,C
+ LD A,054H
+ JP NZ,03A3FH
+ SUB C
+ DJNZ L3E06 ; (-012H)
+ LD BC,09132H
+ DJNZ 03DE6H ; (-037H)
+ CALL L3FAB
+ RET C
+ EXX
+ CALL L3FD9
+ EXX
+ LD (ELMD20),BC
+ LD (ELMD22),DE
+ LD (L1018),HL
+ RST 018H
+ DB 031H
+ RET
+
+ CALL L3E88
+ PUSH HL
+ PUSH AF
+ CALL L3E46
+ POP AF
+ POP HL
+ JR NC,L3E43 ; (+003H)
+ LD HL,(ELMD22)
+L3E43: RST 018H
+ DB 030H
+ RET
+
+L3E46: CALL L3FD9
+ RST 018H
+ DB 02FH
+ CP 001H
+ RET Z
+ JP 01F9DH
+
+ CALL L3E46
+ LD HL,(ELMD22)
+ RST 018H
+ DB 032H
+ RET
+
+ LD SP,L0000
+ POP AF
+ LD (L004F),A
+ POP HL
+ LD (00188H),HL
+ POP HL
+ RET
+
+L3E67: LD DE,0FF00H
+ RST 018H
+ DB 00CH
+ JR C,L3E86 ; (+018H)
+ LD A,(DE)
+ CP 03AH
+ SCF
+ RET NZ
+ INC DE
+ CALL L3E88
+ RET C
+ LD A,(DE)
+ INC DE
+ XOR 03DH
+ RET NZ
+L3E7D: CALL L3EAD
+ CCF
+ RET NC
+ LD (HL),A
+ INC HL
+ JR L3E7D ; (-009H)
+
+L3E86: LD (DE),A
+ RET
+
+L3E88: PUSH HL
+ CALL L3EA2
+ PUSH DE
+ CALL L3EB4
+ JR C,L3E9D ; (+00bH)
+ LD H,A
+ CALL L3EB4
+ JR C,L3E9D ; (+005H)
+ LD L,A
+ POP AF
+ POP AF
+ XOR A
+ RET
+
+L3E9D: POP DE
+ POP HL
+ SCF
+ RET
+
+L3EA1: INC DE
+L3EA2: LD A,(DE)
+ CP 020H
+ JR Z,L3EA1 ; (-006H)
+ RET
+
+L3EA8: LD A,(DE)
+ RST 018H
+ DB 015H
+ INC DE
+ RET
+
+L3EAD: CALL L3EA2
+ CP 03BH
+ JR Z,L3ED2 ; (+01eH)
+L3EB4: PUSH BC
+ PUSH DE
+ CALL L3EA8
+ JR C,L3ECE ; (+013H)
+ LD C,A
+ CALL L3EA8
+ JR C,L3ECE ; (+00dH)
+ LD B,A
+ LD A,C
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ ADD A,B
+ LD C,A
+ LD A,C
+ POP BC
+ POP BC
+ OR A
+ RET
+
+L3ECE: POP DE
+ POP BC
+ SCF
+ RET
+
+L3ED2: INC DE
+ LD A,(DE)
+ INC DE
+ OR A
+ RET
+
+ CALL L3E88
+ RET C
+ JP (HL)
+
+ CALL L3E88
+ JR C,L3EEC ; (+00bH)
+ PUSH HL
+ CALL L3E88
+ JR C,L3EEB ; (+004H)
+ POP DE
+ EX DE,HL
+ JR L3EF2 ; (+007H)
+
+L3EEB: POP HL
+L3EEC: EX DE,HL
+ LD HL,L0080
+ ADD HL,DE
+ EX DE,HL
+L3EF2: LD C,008H
+ CALL L3EFF
+ RET C
+ PUSH HL
+ SBC HL,DE
+ POP HL
+ RET NC
+ JR L3EF2 ; (-00dH)
+
+L3EFF: CALL L3F27
+ LD B,C
+ PUSH HL
+L3F04: LD A,(HL)
+ CALL L3F38
+ INC HL
+ LD A,020H
+ RST 018H
+ DB 009H
+ DJNZ L3F04 ; (-00bH)
+ POP HL
+ LD A,02FH
+ RST 018H
+ DB 009H
+ LD B,C
+L3F15: LD A,(HL)
+ CP 020H
+ JR NC,L3F1C ; (+002H)
+ LD A,02EH
+L3F1C: RST 018H
+ DB 009H
+ INC HL
+ DJNZ L3F15 ; (-00cH)
+ RST 018H
+ DB 008H
+ RST 018H
+ DB 00FH
+ OR A
+ RET
+
+L3F27: LD A,03AH
+ RST 018H
+ DB 009H
+ LD A,H
+ CALL L3F38
+ LD A,L
+ CALL L3F38
+ LD A,03DH
+ RST 018H
+ DB 009H
+ RET
+
+L3F38: PUSH AF
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ CALL L3F41
+ POP AF
+L3F41: AND 00FH
+ ADD A,030H
+ CP 03AH
+ JR C,L3F4B ; (+002H)
+ ADD A,007H
+L3F4B: RST 018H
+ DB 009H
+ RET
+
+ CALL L3E88
+ LD A,(L1091)
+ PUSH AF
+ XOR A
+ LD (L1091),A
+L3F59: RST 018H
+ DB 002H
+ CALL L3F27
+ LD A,(HL)
+ CALL L3F38
+ LD A,014H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 003H
+ CALL L3E67
+ JR NC,L3F59 ; (-014H)
+ POP AF
+ LD (L1091),A
+ RET
+
+ CALL L3E88
+ RET C
+ PUSH HL
+ CALL L3E88
+ POP BC
+ RET C
+ PUSH HL
+ PUSH BC
+ LD HL,0FF00H
+ CALL L3E7D
+ LD DE,0FF00H
+ OR A
+ SBC HL,DE
+ LD C,L
+ POP HL
+ PUSH HL
+ EXX
+ POP HL
+ POP DE
+ EXX
+ RET Z
+L3F92: CALL L3FEC
+ JR NZ,L3F9B ; (+004H)
+ CALL L3EFF
+ RET C
+L3F9B: RST 018H
+ DB 00EH
+ RET Z
+ EXX
+ INC HL
+ PUSH HL
+ SCF
+ SBC HL,DE
+ POP HL
+ RET NC
+ PUSH HL
+ EXX
+ POP HL
+ JR L3F92 ; (-019H)
+
+L3FAB: CALL L3E88
+ PUSH HL
+ CALL NC,L3E88
+ POP BC
+ RET C
+ SBC HL,BC
+ INC HL
+ PUSH HL
+ PUSH BC
+ CALL L3E88
+ PUSH HL
+ EXX
+ POP HL
+ POP DE
+ POP BC
+ RET
+
+ CALL L3FAB
+ RET C
+ EX DE,HL
+ PUSH HL
+ SBC HL,DE
+ POP HL
+ JR C,L3FD0 ; (+003H)
+ LDIR
+ RET
+
+L3FD0: ADD HL,BC
+ DEC HL
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ EX DE,HL
+ LDDR
+ RET
+
+L3FD9: LD A,(DE)
+ OR A
+ JR Z,L3FE2 ; (+005H)
+ INC DE
+ CP 03AH
+ JR NZ,L3FD9 ; (-009H)
+L3FE2: RST 018H
+ DB 017H
+ RST 018H
+ DB 02DH
+ LD A,001H
+ LD (L1000),A
+ RET
+
+L3FEC: LD A,(DE)
+ CP (HL)
+ RET NZ
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD B,C
+L3FF3: LD A,(DE)
+ CP (HL)
+ JR NZ,L3FFC ; (+005H)
+ INC DE
+ INC HL
+ DJNZ L3FF3 ; (-008H)
+ XOR A
+L3FFC: POP HL
+ POP DE
+ POP BC
+ RET
+
+L4000: LD HL,085FFH
+ LD (L1070),HL
+ LD HL,L4046
+ LD (000E3H),HL
+ LD A,B
+ OR A
+ JR Z,L401B ; (+00bH)
+ LD HL,L4036
+ LD DE,L1361
+ LD BC,00010H
+ LDIR
+L401B: LD DE,L84E7
+ RST 018H
+ DB 005H
+ RST 018H
+ DB 020H
+ EX DE,HL
+L4023: LD (HL),000H
+ INC HL
+ LD A,H
+ CP 0FFH
+ JR C,L4023 ; (-008H)
+L402B: CALL L4902
+ CALL L4914
+ CALL L5E1D
+ JR L404A ; (+014H)
+
+L4036: RRCA
+ DB "RUN ",022H,041H,055H ; AUTO RUN string
+L403E: DB "TO RUN",022H,00DH
+L4046: DB 03EH
+ DB 016H
+ DB 0DFH
+ DB 003H
+L404A: LD HL,L4B85
+ LD (00188H),HL
+L4050: RST 018H
+ DB 002H
+ LD DE,L4B72
+ RST 018H
+ DB 005H
+ RST 018H
+ DB 001H
+L4059: LD A,(L4B78)
+ OR A
+ JR NZ,L406B ; (+00cH)
+ LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ LD (08496H),SP
+L406B: LD HL,L0000
+ LD (L8483),HL
+ XOR A
+ LD (L0050),A
+ CALL L48B1
+ RST 018H
+ DB 043H
+ LD DE,L11A4
+ RST 018H
+ DB 00CH
+ JR NC,L408D ; (+00cH)
+L4081: LD HL,L48B0
+ LD A,(HL)
+ OR A
+ LD (HL),000H
+ JR NZ,L4050 ; (-03aH)
+ JR L4059 ; (-033H)
+
+L408C: INC DE
+L408D: LD A,(DE)
+ CP 020H
+ JR Z,L408C ; (-006H)
+ OR A
+ JR Z,L4059 ; (-03cH)
+ CALL L5EC4
+ JP NC,L473E
+ LD HL,L84E7
+ PUSH HL
+ CALL L66EF
+ INC HL
+ LD (L847D),HL
+ CALL L4952
+ POP HL
+ JR L40AF ; (+003H)
+
+L40AC: CALL 05E48H
+L40AF: LD (08496H),SP
+L40B3: LD DE,L40AC
+ PUSH DE
+L40B7: LD (L8498),HL
+ CALL BRKCHK
+ JP Z,0017DH
+L40C0: LD A,(HL)
+ INC HL
+ CP 080H
+ JR NC,L411A ; (+054H)
+ CP 027H
+ JP Z,L4F8A
+ CP 020H
+ JR Z,L40C0 ; (-00fH)
+ CP 03AH
+ JR Z,L40B7 ; (-01cH)
+ OR A
+ JR Z,L40E1 ; (+00bH)
+ DEC HL
+ SUB 041H
+ CP 01AH
+ JP C,L4C99
+ JP L4AEC
+
+L40E1: LD HL,(L847D)
+L40E4: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4103 ; (+018H)
+ LD (L0050),A
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ LD (L847D),HL
+ EX DE,HL
+ INC HL
+ CALL LDDEMI
+ LD (08483H),DE
+ CALL L4971
+ POP DE
+ JR L40AF ; (-054H)
+
+L4103: POP HL
+ CALL L4146
+ JP Z,L4050
+ XOR A
+ LD (L4B78),A
+ LD A,(L8486)
+ CP 002H
+ JP Z,04B19H
+ PUSH HL
+ JP L484D
+
+L411A: CP 0FFH
+ JP Z,L4CCB
+ LD DE,L44AC
+ CP 0FEH
+ JR NZ,L412A ; (+004H)
+ LD A,(HL)
+ INC HL
+ JR L4132 ; (+008H)
+
+L412A: CP LSE0
+ JP NC,L4AEC
+ LD DE,L43EC
+L4132: ADD A,A
+ PUSH HL
+ EX DE,HL
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ EX (SP),HL
+L413E: CALL HLFTCH
+L4141: OR A
+ RET Z
+ CP 03AH
+ RET
+
+L4146: PUSH HL
+ LD HL,(L8483)
+ LD A,L
+ OR H
+ POP HL
+ RET
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+STMTWORDTBL:DB "GOT", "O" | 080H ; BASIC statement keyword text table
+ DB "GOSU", "B" | 080H
+ DB 080H
+ DB "RU", "N" | 080H
+ DB "RETUR", "N" | 080H
+ DB "RESTOR", "E" | 080H
+ DB "RESUM", "E" | 080H
+ DB "LIS", "T" | 080H
+ DB 080H
+ DB "DELET", "E" | 080H
+ DB "RENU", "M" | 080H
+ DB "AUT", "O" | 080H
+ DB "EDI", "T" | 080H
+L4193: DB "FO", "R" | 080H
+ DB "NEX", "T" | 080H
+ DB "PRIN", "T" | 080H
+ DB 080H
+ DB "INPU", "T" | 080H
+ DB 080H
+ DB "I", "F" | 080H
+ DB "DAT", "A" | 080H
+ DB "REA", "D" | 080H
+ DB "DI", "M" | 080H
+ DB "RE", "M" | 080H
+ DB "EN", "D" | 080H
+ DB "STO", "P" | 080H
+ DB "CON", "T" | 080H
+ DB "CL", "S" | 080H
+ DB 080H
+ DB "O", "N" | 080H
+ DB "LE", "T" | 080H
+ DB "NE", "W" | 080H
+ DB "POK", "E" | 080H
+ DB "OF", "F" | 080H
+ DB "MOD", "E" | 080H
+ DB "SKI", "P" | 080H
+ DB "PLO", "T" | 080H
+ DB "LIN", "E" | 080H
+ DB "RLIN", "E" | 080H
+ DB "MOV", "E" | 080H
+ DB "RMOV", "E" | 080H
+ DB "TRO", "N" | 080H
+ DB "TROF", "F" | 080H
+ DB "INP", "@" | 080H
+ DB "DEFAUL", "T" | 080H
+ DB "GE", "T" | 080H
+ DB "PCOLO", "R" | 080H
+ DB "PHOM", "E" | 080H
+ DB "HSE", "T" | 080H
+ DB "GPRIN", "T" | 080H
+ DB "KE", "Y" | 080H
+ DB "AXI", "S" | 080H
+ DB "LOA", "D" | 080H
+ DB "SAV", "E" | 080H
+ DB "MERG", "E" | 080H
+ DB "CHAI", "N" | 080H
+ DB "CONSOL", "E" | 080H
+ DB "SEARC", "H" | 080H
+ DB "OUT", "@" | 080H
+ DB "CIRCL", "E" | 080H
+ DB "TES", "T" | 080H
+ DB "PAG", "E" | 080H
+ DB "WAI", "T" | 080H
+ DB "SWA", "P" | 080H
+ DB 080H
+ DB "ERRO", "R" | 080H
+ DB "ELS", "E" | 080H
+ DB "US", "R" | 080H
+ DB "BY", "E" | 080H
+ DB 080H
+ DB 080H
+ DB "DE", "F" | 080H
+ DB 080H
+ DB 080H
+ DB "LABE", "L" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "WOPE", "N" | 080H
+ DB "CLOS", "E" | 080H
+ DB "ROPE", "N" | 080H
+ DB "XOPE", "N" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "DI", "R" | 080H
+ DB 080H
+ DB 080H
+ DB "RENAM", "E" | 080H
+ DB "KIL", "L" | 080H
+ DB "LOC", "K" | 080H
+ DB "UNLOC", "K" | 080H
+ DB "INI", "T" | 080H
+ DB 080H
+ DB 080H
+ DB "RMO", "V" | 080H
+ DB "T", "O" | 080H
+ DB "STE", "P" | 080H
+ DB "THE", "N" | 080H
+ DB "USIN", "G" | 080H
+ DB 080H
+ DB 080H
+ DB "TA", "B" | 080H
+ DB "SP", "C" | 080H
+ DB 080H
+ DB 080H
+ DB ".XO", "R" | 080H
+ DB ".O", "R" | 080H
+ DB ".AN", "D" | 080H
+ DB ".NO", "T" | 080H
+ DB ">", "<" | 080H
+ DB "<", ">" | 080H
+ DB "=", "<" | 080H
+ DB "<", "=" | 080H
+ DB "=", ">" | 080H
+ DB ">", "=" | 080H
+ DB "=" | 080H
+ DB ">" | 080H
+ DB "<" | 080H
+ DB "+" | 080H
+ DB "-" | 080H
+ DB 080H
+ DB 080H
+ DB "/" | 080H
+ DB "*" | 080H
+ DB "^" | 080H
+ DB 0FFH
+EXTWORDTBL: DB 080H ; BASIC extended keyword text table
+ DB "SE", "T" | 080H
+ DB "RESE", "T" | 080H
+ DB "COLO", "R" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "BEE", "P" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "MUSI", "C" | 080H
+ DB "TEMP", "O" | 080H
+ DB "CURSO", "R" | 080H
+ DB "VERIF", "Y" | 080H
+ DB "CL", "R" | 080H
+L433E: DB "LIMI", "T" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "BOO", "T" | 080H
+ DB 0FFH
+FUNCWORDTBL:DB "IN", "T" | 080H ; BASIC function keyword text table
+ DB "AB", "S" | 080H
+ DB "SI", "N" | 080H
+ DB "CO", "S" | 080H
+ DB "TA", "N" | 080H
+ DB "L", "N" | 080H
+ DB "EX", "P" | 080H
+ DB "SQ", "R" | 080H
+ DB "RN", "D" | 080H
+ DB "PEE", "K" | 080H
+ DB "AT", "N" | 080H
+ DB "SG", "N" | 080H
+ DB "LO", "G" | 080H
+ DB "FRA", "C" | 080H
+ DB "PA", "I" | 080H
+ DB "RA", "D" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "JO", "Y" | 080H
+ DB 080H
+ DB "CHR", "$" | 080H
+ DB "STR", "$" | 080H
+ DB "HEX", "$" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "SPACE", "$" | 080H
+ DB 080H
+ DB 080H
+ DB "AS", "C" | 080H
+ DB "LE", "N" | 080H
+ DB "VA", "L" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "ER", "N" | 080H
+ DB "ER", "L" | 080H
+ DB "SIZ", "E" | 080H
+ DB "CSR", "H" | 080H
+ DB "CSR", "V" | 080H
+ DB 080H
+ DB 080H
+ DB "LEFT", "$" | 080H
+ DB "RIGHT", "$" | 080H
+ DB "MID", "$" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "TI", "$" | 080H
+ DB 080H
+ DB "EO", "F" | 080H
+ DB "F", "N" | 080H
+ DB 0FFH
+L43EC: DW L5147 ; Keyword dispatch address table
+ DW L50C2
+ DW L4AEC
+ DW L47FF
+ DW L5091
+ DW L5828
+ DW L4C38
+ DW 052C2H
+ DW L4AEC
+ DW L4999
+ DW L4A38
+ DW L485E
+ DW L48B9
+ DW L4D8E
+ DW L4E25
+ DW L561E
+ DW L4AEC
+ DW L575B
+ DW L4AEC
+ DW L515A
+ DW L4F8A
+ DW L5754
+ DW L76AC
+ DW L4F8A
+ DW L484D
+ DW L4BEA
+ DW L4C1B
+ DW L5537
+ DW L4AEC
+ DW L50EA
+ DW L4C99
+ DW L4922
+ DW L5024
+ DW L4AEC
+ DW L6A24
+ DW L6A87
+ DW L6E22
+ DW L6AD4
+ DW 06AD7H
+ DW 06ADAH
+ DW 06ADDH
+ DW L4959
+ DW L496C
+ DW L4FAB
+ DW L58CA
+ DW L4FEF
+ DW L6B3F
+ DW L6B71
+ DW L6B7B
+ DW L6B85
+ DW L53A9
+ DW L6BEA
+ DW L5986
+ DW L5C88
+ DW L59EA
+ DW L59D5
+ DW L5260
+ DW L52C0
+ DW L4F96
+ DW L6C2A
+ DW L6DF8
+ DW L6E03
+ DW L4F7A
+ DW L5D65
+ DW L4AEC
+ DW L4B7A
+ DW L517C
+ DW L4F30
+ DW L5258
+ DW L4AEC
+ DW L4AEC
+ DW L5456
+ DW L4AEC
+ DW L4AEC
+ DW L4F8A
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW 058E2H
+ DW L5913
+ DW L58DF
+ DW 058E5H
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L5CE3
+ DW L4AEC
+ DW L4AEC
+ DW L5D0A
+ DW 05914H
+ DW 05CD7H
+ DW L5CD5
+ DW L58D0
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+L44AC: DW L4AEC
+ DW L51EE
+ DW 051EFH
+ DW L54A6
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L5255
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L54FD
+ DW L551F
+ DW L4FC7
+ DW L5C71
+ DW L4928
+ DW L504D
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L52BA
+L450A: DW L7E8B
+ DW L7E86
+ DW L7FD2
+ DW L7FC2
+ DW L80B1
+ DW L8320
+ DW L81FC
+ DW L7EE8
+ DW L81B7
+ DW L81A3
+ DW L7F06
+ DW L8169
+ DW L8314
+ DW L608D
+ DW L8181
+ DW L817C
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L792C
+ DW L4AEC
+ DW L4AEC
+ DW L7237
+ DW L71F6
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L7219
+ DW L4AEC
+ DW L4AEC
+ DW L7272
+ DW L727C
+ DW L7284
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L7180
+ DW L718E
+ DW L7164
+ DW L7176
+ DW L717B
+ DW L4AEC
+ DW L4AEC
+ DW L7296
+ DW L72B3
+ DW L72D0
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L7326
+ DW L4AEC
+ DW L7245
+ DW L789F
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+L45AA: CALL TEST1
+ DB 00CH
+ JR NZ,L45B6 ; (+006H)
+ CALL LDDEMI
+ OR 0FFH
+ RET
+
+L45B6: INC HL
+ CP 00BH
+ JR NZ,L45DA ; (+01fH)
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD A,E
+ OR D
+ RET Z
+ EX DE,HL
+ CALL L4609
+ JP C,04B0DH
+ EX DE,HL
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00CH
+ INC HL
+ INC HL
+ INC HL
+ OR 0FFH
+ LD (L473D),A
+ RET
+
+L45DA: CP 022H
+ JP NZ,L4AEC
+ LD (04650H),HL
+ LD B,000H
+L45E4: LD A,(HL)
+ OR A
+ JR Z,L45F0 ; (+008H)
+ INC HL
+ CP 022H
+ JR Z,L45F0 ; (+003H)
+ INC B
+ JR L45E4 ; (-00cH)
+
+L45F0: LD A,B
+ OR A
+ JP Z,L4AEC
+ LD (0464EH),A
+ EX DE,HL
+ CALL L4603
+ JP C,04B0DH
+ EX DE,HL
+ OR 0FFH
+ RET
+
+L4603: PUSH BC
+ LD BC,L463C
+ JR L460D ; (+004H)
+
+L4609: PUSH BC
+ LD BC,L4630
+L460D: LD (04623H),BC
+ PUSH DE
+ EX DE,HL
+ LD HL,(L1070)
+L4616: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ LD A,B
+ OR C
+ SCF
+ JR Z,L462D ; (+00fH)
+ DEC HL
+ PUSH HL
+ ADD HL,BC
+ EX (SP),HL
+ CALL L0000
+ JR C,L462C ; (+005H)
+ JR Z,L462C ; (+003H)
+ POP HL
+ JR L4616 ; (-016H)
+
+L462C: POP DE
+L462D: POP DE
+ POP BC
+ RET
+
+L4630: INC HL
+ INC HL
+ INC HL
+ LD A,D
+ CP (HL)
+ RET NZ
+ DEC HL
+ LD A,E
+ CP (HL)
+ DEC HL
+ DEC HL
+ RET
+
+L463C: PUSH HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ CALL TEST1
+ DB 0CAH
+ JR NZ,L4660 ; (+019H)
+ CALL TEST1
+ DB 022H
+ JR NZ,L4660 ; (+013H)
+ LD B,000H
+ LD DE,L0000
+L4652: LD A,(DE)
+ CP (HL)
+ JR NZ,L4660 ; (+00aH)
+ INC HL
+ INC DE
+ DJNZ L4652 ; (-008H)
+ LD A,(HL)
+ CP 022H
+ JR Z,L4660 ; (+001H)
+ OR A
+L4660: SCF
+ CCF
+ POP HL
+ RET
+
+L4664: LD DE,L0000
+ LD BC,0FFFFH
+ CALL L46A6
+ RET Z
+ CP 02DH
+ JR Z,L468E ; (+01cH)
+ CP 02EH
+ LD DE,(0847FH)
+ JR Z,L4681 ; (+007H)
+ CALL TESTX
+ DB 00BH
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L4681: INC HL
+ CALL L46A6
+ JR Z,L468B ; (+004H)
+ CP 02DH
+ JR Z,L468E ; (+003H)
+L468B: LD C,E
+ LD B,D
+ RET
+
+L468E: INC HL
+ CALL L46A6
+ RET Z
+ CP 02EH
+ JR NZ,L469D ; (+006H)
+ LD BC,(0847FH)
+ INC HL
+ RET
+
+L469D: CALL TESTX
+ DB 00BH
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ RET
+
+L46A6: CALL L413E
+ RET Z
+ CP 02CH
+ RET
+
+L46AD: CALL SKPDE
+ LD A,0FFH
+ LD (L473D),A
+ LD HL,L4703
+ JR L46CC ; (+012H)
+
+L46BA: CALL SKPDE
+ CALL L4836
+L46C0: LD A,(L473D)
+ OR A
+ RET Z
+ XOR A
+ LD (L473D),A
+ LD HL,L46E9
+L46CC: LD (046E7H),HL
+ LD HL,(L1070)
+ DEC HL
+L46D3: INC HL
+ LD A,(HL)
+ INC HL
+ OR (HL)
+ RET Z
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (04732H),DE
+L46E0: CALL L51A2
+ OR A
+ JR Z,L46D3 ; (-013H)
+ JP L0000
+
+L46E9: CP 00CH
+ JR NZ,L46E0 ; (-00dH)
+ DEC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH HL
+ EX DE,HL
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00BH
+ INC HL
+ INC HL
+ JR L46E0 ; (-023H)
+
+L4703: CP 00BH
+ JR NZ,L46E0 ; (-027H)
+ DEC HL
+ PUSH HL
+ CALL INDRCT
+ LD E,L
+ LD D,H
+ LD A,L
+ OR H
+ JR Z,L4739 ; (+027H)
+ CALL L4609
+ JR C,L4722 ; (+00bH)
+ EX DE,HL
+ POP HL
+ DEC HL
+ LD (HL),00CH
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ JR L46E0 ; (-042H)
+
+L4722: PUSH DE
+ LD A,010H
+ RST 018H
+ DB 01BH
+ LD A,020H
+ RST 018H
+ DB 003H
+ POP HL
+ CALL L5E66
+ RST 018H
+ DB 005H
+ LD HL,L0000
+ CALL L4B58
+ RST 018H
+ DB 002H
+L4739: POP HL
+ INC HL
+ JR L46E0 ; (-05dH)
+
+L473D: NOP
+L473E: RST 018H
+ DB 028H
+ CALL L46BA
+ CALL L6A11
+ LD A,B
+ OR C
+ JP Z,L4059
+ LD (0847FH),BC
+ LD A,(DE)
+ CP 020H
+ JR NZ,L4755 ; (+001H)
+ INC DE
+L4755: PUSH AF
+ LD HL,L84E7
+ CALL L66EF
+ PUSH HL
+ LD HL,(L847F)
+ LD E,L
+ LD D,H
+ CALL L49B9
+ POP HL
+ POP AF
+ OR A
+ JR Z,L477C ; (+012H)
+ LD DE,L84E7
+ OR A
+ SBC HL,DE
+ LD DE,00005H
+ ADD HL,DE
+ LD B,H
+ LD C,L
+ LD HL,L84E7
+ CALL L4794
+L477C: LD A,(L48B0)
+ OR A
+ JP Z,L4059
+ LD DE,(08481H)
+ LD HL,(L847F)
+ ADD HL,DE
+ LD (L847F),HL
+ JP NC,L4059
+ JP L4081
+
+L4794: LD (047F6H),HL
+ PUSH BC
+ LD BC,(0847FH)
+ LD HL,(L1070)
+ JR L47A5 ; (+004H)
+
+L47A1: CALL LDDEMD
+ ADD HL,DE
+L47A5: CALL LDDEMD
+ LD A,D
+ OR E
+ JR Z,L47B9 ; (+00dH)
+ INC HL
+ INC HL
+ CALL LDDEMD
+ EX DE,HL
+ SBC HL,BC
+ DEC DE
+ DEC DE
+ EX DE,HL
+ JR C,L47A1 ; (-018H)
+L47B9: POP DE
+ PUSH HL
+ PUSH DE
+ LD HL,00028H
+ ADD HL,DE
+ LD BC,(VARED)
+ LD (TMPEND),BC
+ ADD HL,BC
+ JP C,L4B2C
+ EX DE,HL
+ CALL L74E8
+ POP DE
+ RST 018H
+ DB 018H
+ POP HL
+ PUSH DE
+ PUSH BC
+ EX (SP),HL
+ POP BC
+ PUSH HL
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ LD DE,(VARED)
+ INC BC
+ LDDR
+ INC HL
+ POP BC
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ LD DE,(0847FH)
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ EX DE,HL
+ LD HL,L84E7
+ DEC BC
+ DEC BC
+ DEC BC
+ DEC BC
+ LDIR
+ RET
+
+L47FF: JR Z,L480A ; (+009H)
+ CALL L5176
+ JP Z,L5147
+ JP L5AED
+
+L480A: CALL L4928
+L480D: CALL L4821
+ LD DE,(TEXTST)
+ LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ PUSH HL
+ EX DE,HL
+ JP L40E4
+
+L4821: PUSH HL
+ PUSH DE
+ CALL L4836
+ XOR A
+ LD (L48B0),A
+ LD HL,0000AH
+ LD (L847F),HL
+ LD (L8481),HL
+ POP DE
+ POP HL
+ RET
+
+L4836: CALL L5825
+ LD HL,L0000
+ LD (L8487),HL
+ XOR A
+ LD (L4B78),A
+ LD (L8486),A
+ LD (L8485),A
+ LD (L849A),A
+ RET
+
+L484D: LD A,(L849A)
+ OR A
+ JP NZ,L5DCB
+ RST 018H
+ DB 028H
+ XOR A
+ LD (L4B78),A
+ POP BC
+ JP L4050
+
+L485E: CALL L5C08
+ LD DE,0000AH
+ LD BC,0000AH
+ JR Z,L4897 ; (+02eH)
+ CP 02CH
+ JR NZ,L4878 ; (+00bH)
+ INC HL
+ CALL L6E5F
+ LD B,D
+ LD C,E
+ LD DE,0000AH
+ JR L4897 ; (+01fH)
+
+L4878: CP 02EH
+ LD DE,(0847FH)
+ JR Z,L4889 ; (+009H)
+ CP 00BH
+ JP NZ,L4AEC
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L4889: INC HL
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4897 ; (+007H)
+ PUSH DE
+ CALL L6E5F
+ LD C,E
+ LD B,D
+ POP DE
+L4897: CALL 05E48H
+ LD A,C
+ OR B
+ JP Z,04AF2H
+ LD (0847FH),DE
+ LD (08481H),BC
+ LD A,001H
+ LD (L48B0),A
+ POP AF
+ JP L4059
+
+L48B0: NOP
+L48B1: LD A,(L48B0)
+ OR A
+ RET Z
+ XOR A
+ JR L48BF ; (+006H)
+
+L48B9: CALL L48BF
+ JP L4059
+
+L48BF: LD DE,(0847FH)
+ CALL NZ,L4664
+ PUSH DE
+ EX DE,HL
+ CALL L4609
+ POP DE
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ JR NC,L48D5 ; (+003H)
+ LD HL,L00F9
+L48D5: EX DE,HL
+ PUSH DE
+ LD (L847F),HL
+ CALL L5E66
+ RST 018H
+ DB 005H
+ LD A,020H
+ RST 018H
+ DB 003H
+ POP HL
+ LD DE,L11A4
+ PUSH DE
+ CALL L68E0
+ POP DE
+ LD B,000H
+L48EE: LD A,(DE)
+ OR A
+ JR Z,L48F8 ; (+006H)
+ INC B
+ RST 018H
+ DB 004H
+ INC DE
+ JR L48EE ; (-00aH)
+
+L48F8: LD A,B
+ OR A
+ RET Z
+ LD A,014H
+ RST 018H
+ DB 003H
+ DJNZ 048FCH ; (-005H)
+ RET
+
+L4902: PUSH DE
+ LD DE,0FFF0H
+ ADD HL,DE
+ POP DE
+ LD (L107E),HL
+ DEC H
+ LD (L107C),HL
+ XOR A
+ LD (L849A),A
+ RET
+
+L4914: LD HL,(L1070)
+ CALL L4952
+ LD (L1072),HL
+ CALL L4821
+ JR L4928 ; (+006H)
+
+L4922: CALL L4914
+ JP L404A
+
+L4928: PUSH HL
+ CALL L4939
+ POP HL
+ RST 018H
+ DB 028H
+ RET
+
+L4930: LD HL,(L1070)
+ CALL L4952
+ LD (L1072),HL
+L4939: LD HL,(L1072)
+ LD (HL),000H
+ INC HL
+ LD (L1074),HL
+ LD (HL),000H
+ INC HL
+ LD (L1076),HL
+ CALL L4952
+ LD (L1078),HL
+ LD (L107A),HL
+ RET
+
+L4952: LD (HL),000H
+ INC HL
+ LD (HL),000H
+ INC HL
+ RET
+
+L4959: CALL L413E
+ LD A,001H
+ JR Z,L496D ; (+00dH)
+ CALL TESTX
+ DB FDPD
+ CALL TESTX
+ DB 050H
+ LD A,002H
+ JR L496D ; (+001H)
+
+L496C: XOR A
+L496D: LD (04972H),A
+ RET
+
+L4971: LD A,000H
+ OR A
+ RET Z
+ DEC A
+ LD (L1091),A
+ JR Z,L4982 ; (+007H)
+ LD A,(L1097)
+ CP 002H
+ JR Z,L4994 ; (+012H)
+L4982: PUSH HL
+ LD A,05BH
+ RST 018H
+ DB 009H
+ LD HL,(L8483)
+ CALL L5E66
+ RST 018H
+ DB 00BH
+ LD A,05DH
+ RST 018H
+ DB 009H
+ POP HL
+L4994: XOR A
+ LD (L1091),A
+ RET
+
+L4999: CALL L46A6
+ JP Z,L4AEC
+ CALL L5176
+ JR Z,L49AD ; (+009H)
+ CP 02DH
+ JR Z,L49AD ; (+005H)
+ CP 02EH
+ JP NZ,L5D02
+L49AD: CALL L4664
+ EX DE,HL
+ LD E,C
+ LD D,B
+ CALL L49B9
+ JP L4050
+
+L49B9: PUSH AF
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ CALL L46BA
+ LD C,L
+ LD B,H
+ LD HL,(L1070)
+L49C5: CALL LDDEMI
+ LD A,E
+ OR D
+ JR NZ,L49D4 ; (+008H)
+L49CC: POP DE
+ POP HL
+ POP BC
+ POP AF
+ RET
+
+L49D1: POP DE
+ JR L49CC ; (-008H)
+
+L49D4: EX DE,HL
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ LD (049EEH),HL
+ SBC HL,BC
+ POP HL
+ JR C,L49C5 ; (-021H)
+ DB 01BH
+ DEC DE
+ DEC DE
+ POP BC
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD HL,L0000
+ SBC HL,BC
+ POP HL
+ JR Z,L4A13 ; (+01eH)
+ JR NC,L49D1 ; (-026H)
+L49F7: CALL LDDEMI
+ LD A,D
+ OR E
+ JR Z,L4A11 ; (+013H)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ DEC DE
+ DEC DE
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ SBC HL,BC
+ POP HL
+ JR C,L49F7 ; (-016H)
+ JR Z,L4A13 ; (+004H)
+ EX DE,HL
+ DEC HL
+L4A11: DEC HL
+ DEC HL
+L4A13: POP DE
+ PUSH DE
+ PUSH HL
+ OR A
+ EX DE,HL
+ SBC HL,DE
+ EX DE,HL
+ LD BC,(VARED)
+ RST 018H
+ DB 018H
+ POP DE
+ LD H,B
+ LD L,C
+ OR A
+ SBC HL,DE
+ LD B,H
+ LD C,L
+ EX DE,HL
+ POP DE
+ LDIR
+ JR L49CC ; (-063H)
+
+L4A2F: CALL L6E5F
+ LD A,D
+ OR E
+ RET NZ
+ JP 04AF2H
+
+L4A38: CALL L5C08
+ LD DE,0000AH
+ LD (04AB7H),DE
+ LD (04AC9H),DE
+ LD E,000H
+ LD (04AA6H),DE
+ JR Z,L4A81 ; (+033H)
+ CP 02CH
+ JR Z,L4A62 ; (+010H)
+ CALL L4A2F
+ LD (04AB7H),DE
+ CALL L413E
+ JR Z,L4A81 ; (+023H)
+ CALL L5E70
+ DEC HL
+L4A62: CALL INCHLF
+ CP 02CH
+ JR Z,L4A79 ; (+010H)
+ CALL L4A2F
+ LD (04AA6H),DE
+ CALL L413E
+ JR Z,L4A81 ; (+00cH)
+ CALL L5E70
+ DEC HL
+L4A79: INC HL
+ CALL L4A2F
+ LD (04AC9H),DE
+L4A81: PUSH HL
+ LD HL,(04AA6H)
+ EX DE,HL
+ LD HL,(04AB7H)
+ OR A
+ SBC HL,DE
+ JP C,04AF2H
+ CALL L46AD
+ LD HL,(L1070)
+L4A95: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4AD3 ; (+037H)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ EX DE,HL
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ PUSH HL
+ LD HL,L0000
+ OR A
+ SBC HL,BC
+ POP HL
+ JR Z,L4AB3 ; (+005H)
+ JR C,L4AB3 ; (+003H)
+ EX DE,HL
+ JR L4A95 ; (-01eH)
+
+L4AB3: DEC HL
+ DEC HL
+ DEC HL
+ LD BC,L0000
+L4AB9: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4AD3 ; (+013H)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ EX DE,HL
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ LD HL,L0000
+ ADD HL,BC
+ JR C,L4AD8 ; (+00aH)
+ LD C,L
+ LD B,H
+ EX DE,HL
+ JR L4AB9 ; (-01aH)
+
+L4AD3: CALL L46C0
+ POP HL
+ RET
+
+L4AD8: LD HL,0000AH
+ LD (04AC9H),HL
+ LD (04AB7H),HL
+ LD L,000H
+ LD (04AA6H),HL
+ CALL L4A81
+ JP 04AF2H
+
+L4AEC: LD A,001H
+ LD HL,0023EH
+ LD HL,L033E
+ LD HL,0043EH
+ LD HL,L053E
+ LD HL,0063EH
+ LD HL,0073EH
+ LD HL,L083E
+ LD HL,L0D3E
+ LD HL,L0E3E
+ LD HL,L0F3E
+ LD HL,L103E
+ LD HL,L113E
+ LD HL,L123E
+ LD HL,L133E
+ LD HL,0143EH
+ LD HL,0153EH
+ LD HL,L183E
+ LD HL,L193E
+ LD HL,L3A3E
+ LD HL,L403E
+ JR L4B3A ; (+00eH)
+
+L4B2C: LD A,006H
+L4B2E: LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ LD (08496H),SP
+L4B3A: JR L4B55 ; (+019H)
+
+L4B3C: LD HL,(.$LPT)
+ LD IX,(.$CRT)
+ LD (L1044),HL
+ XOR A
+ LD (01051H),A
+ LD A,0C4H
+ LD HL,0BB3EH
+ LD HL,0BC3EH
+ LD HL,0BD3EH
+L4B55: JP L0182
+
+L4B58: LD A,L
+ OR H
+ RET Z
+ LD DE,L4B66
+ RST 018H
+ DB 005H
+ CALL L5E66
+ RST 018H
+ DB 005H
+ RET
+
+L4B66: JR NZ,04BB1H ; (+049H)
+ LD C,(HL)
+ JR NZ,L4B6B ; (+000H)
+L4B6B: LD B,D
+ DEC B
+ LD D,D
+ LD B,L
+ LD B,C
+ LD C,E
+ NOP
+L4B72: LD D,D
+ DEC B
+ LD B,L
+ LD B,C
+ LD B,H
+ LD E,C
+L4B78: NOP
+ NOP
+L4B7A: CALL L6E4B
+ DEC A
+ CP 046H
+ JR C,L4B84 ; (+002H)
+ LD A,044H
+L4B84: INC A
+L4B85: LD SP,(08496H)
+ PUSH AF
+ RST 018H
+ DB 043H
+ CALL L5C44
+ POP AF
+ OR A
+ JR Z,L4BE5 ; (+052H)
+ CP 080H
+ JR Z,L4BE3 ; (+04cH)
+ LD C,A
+ LD HL,L0000
+ LD (L7928),HL
+ CALL L4146
+ LD A,C
+ JR Z,L4BCE ; (+02aH)
+ LD HL,(L8483)
+ LD (L8487),HL
+ LD (L847F),HL
+ LD HL,(L847D)
+ LD (L8489),HL
+ LD HL,(L8498)
+ LD (L848B),HL
+ AND 07FH
+ LD (L8485),A
+ LD A,(L8486)
+ INC A
+ CP 002H
+ JR Z,L4BD9 ; (+013H)
+ XOR A
+ LD (L4B78),A
+ LD (L849A),A
+ LD A,C
+L4BCE: RST 018H
+ DB 01BH
+L4BD0: LD HL,(L8483)
+ CALL L4B58
+ JP L4050
+
+L4BD9: LD (L8486),A
+ LD HL,(0848DH)
+ PUSH HL
+ JP L40E4
+
+L4BE3: LD A,02EH
+L4BE5: LD HL,(L8498)
+ JR L4BED ; (+003H)
+
+L4BEA: LD A,02EH
+ POP DE
+L4BED: PUSH AF
+ PUSH HL
+ RST 018H
+ DB 002H
+ RST 018H
+ DB 020H
+ LD DE,L4B6B
+ RST 018H
+ DB 005H
+ POP HL
+ CALL L4146
+ JR Z,L4C17 ; (+019H)
+ LD (04C33H),HL
+ LD HL,(L847D)
+ LD (04C2DH),HL
+ LD HL,(L8483)
+ LD (04C27H),HL
+ LD (L847F),HL
+ POP AF
+ LD (L4B78),A
+ JP L4BD0
+
+L4C17: POP AF
+ JP L4050
+
+L4C1B: POP DE
+ LD HL,L4B78
+ LD A,(HL)
+ OR A
+ JP Z,04B10H
+ LD (HL),000H
+ LD HL,L0000
+ LD (L8483),HL
+ LD HL,L0000
+ LD (L847D),HL
+ LD HL,L0000
+ JP L40AF
+
+L4C38: LD A,(L8486)
+ CP 002H
+ JP C,04B1CH
+ DEC A
+ LD (L8486),A
+ CALL L413E
+ EX DE,HL
+ LD HL,(L8487)
+ LD (L8483),HL
+ LD HL,(L8489)
+ LD (L847D),HL
+ LD HL,(L848B)
+ JR NZ,L4C5D ; (+004H)
+ POP BC
+ JP L40B3
+
+L4C5D: CP 08EH
+ JP Z,L4F8A
+ EX DE,HL
+ JP L5147
+
+L4C66: CALL TEST1
+ DB 080H
+ JR Z,L4C74 ; (+008H)
+ CALL TESTX
+ DB 082H
+ CALL TESTX
+ DB LSE0
+L4C74: CALL L45AA
+ JR Z,L4C83 ; (+00aH)
+ LD (0848DH),DE
+ LD A,001H
+L4C7F: LD (L8486),A
+ RET
+
+L4C83: LD A,(L8486)
+ DEC A
+ JR Z,L4C7F ; (-00aH)
+ XOR A
+ LD (L8486),A
+ LD HL,(L8487)
+ LD (L8483),HL
+ LD A,(L8485)
+ JP L4B85
+
+L4C99: CALL TEST1
+ DB 0FFH
+ JP Z,L4CCB
+ CALL L7436
+ PUSH BC
+ PUSH BC
+ PUSH AF
+ CALL TESTX
+ DB QDPC
+ CALL L6E8A
+ POP BC
+ LD A,(L84CE)
+ CP B
+ JP NZ,04AF5H
+ EX (SP),HL
+ EX DE,HL
+ CP 005H
+ JR Z,L4CC3 ; (+008H)
+ PUSH BC
+ CALL L4CD6
+ POP AF
+ POP HL
+ POP BC
+ RET
+
+L4CC3: LD C,A
+ LD B,000H
+ LDIR
+ POP HL
+ POP BC
+ RET
+
+L4CCB: CALL TESTX
+ DB 0C4H
+ JP L73C2
+
+L4CD2: PUSH DE
+ EX DE,HL
+ JR L4CDA ; (+004H)
+
+L4CD6: PUSH DE
+ CALL L6E7E
+L4CDA: LD HL,L11A3
+ LD (HL),A
+ LD B,A
+ LD C,A
+ INC HL
+ CALL LDHLDE
+ POP HL
+ LD A,(HL)
+ CP C
+ JR Z,L4D2B ; (+042H)
+ PUSH HL
+ OR A
+ CALL NZ,L4D3B
+ POP HL
+ LD A,(L11A3)
+ OR A
+ JR Z,L4D28 ; (+033H)
+ PUSH HL
+ LD BC,(VARST)
+ SBC HL,BC
+ EX DE,HL
+ LD HL,(L1078)
+ DEC HL
+ DEC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD BC,(STRST)
+ OR A
+ POP DE
+ PUSH HL
+ SBC HL,BC
+ EX DE,HL
+ LD (HL),A
+ LD B,A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ POP HL
+ LD DE,L11A3
+ INC DE
+ CALL L74DC
+ CALL L4952
+ LD (L107A),HL
+ LD (L1078),HL
+ RET
+
+L4D28: LD (HL),000H
+ RET
+
+L4D2B: INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ LD DE,L11A3
+ LD B,C
+ INC DE
+ JP L74DC
+
+L4D3B: LD C,(HL)
+ LD B,000H
+L4D3E: INC BC
+ INC BC
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ LD E,L
+ LD D,H
+ ADD HL,BC
+ PUSH BC
+ PUSH DE
+ EX DE,HL
+ LD HL,(L1078)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ EX DE,HL
+ POP DE
+ PUSH DE
+ JR Z,L4D5F ; (+002H)
+ LDIR
+L4D5F: POP DE
+ POP BC
+ LD HL,(L1078)
+ OR A
+ SBC HL,BC
+ LD (L1078),HL
+ EX DE,HL
+L4D6B: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ RET Z
+ LD HL,(L1074)
+ ADD HL,DE
+ LD A,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ OR A
+ EX DE,HL
+ SBC HL,BC
+ EX DE,HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ PUSH BC
+ LD C,A
+ LD B,000H
+ LD HL,(L1076)
+ ADD HL,DE
+ ADD HL,BC
+ POP BC
+ JR L4D6B ; (-023H)
+
+L4D8E: POP BC
+ LD (04E23H),BC
+ CALL L4C99
+ LD IX,L0000
+ ADD IX,SP
+ LD (04E05H),HL
+ CALL L4EFE
+ LD (04E01H),BC
+L4DA6: LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JR NZ,L4DCE ; (+01aH)
+ LD E,(IX+006H)
+ LD D,(IX+007H)
+ EX DE,HL
+ OR A
+ SBC HL,BC
+ JR Z,L4DC7 ; (+007H)
+ LD DE,L0012
+ ADD IX,DE
+ JR L4DA6 ; (-021H)
+
+L4DC7: DB 011H
+ LD (DE),A
+ NOP
+ ADD IX,DE
+ LD SP,IX
+L4DCE: LD HL,(04E05H)
+ CALL TESTX
+ DB LSE0
+ CALL L6E8A
+ PUSH AF
+ PUSH HL
+ EX DE,HL
+ LD DE,L4F0A
+ CALL L5E93
+ POP HL
+ POP AF
+ CP LSE1
+ LD DE,L6112
+ JR NZ,L4DEE ; (+004H)
+ INC HL
+ CALL L6E8A
+L4DEE: LD (04E05H),HL
+ LD HL,0FFF6H
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ CALL L5E93
+ LD HL,L4F0A
+ CALL L5E93
+ LD HL,L0000
+ PUSH HL
+ LD HL,L0000
+ PUSH HL
+ LD HL,(L847D)
+ PUSH HL
+ LD HL,0FF12H
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(TMPEND)
+ SBC HL,DE
+ LD A,00BH
+ JP C,L4B2E
+ LD HL,(04E05H)
+ JP L0000
+
+L4E25: LD A,005H
+ LD (L84CE),A
+ POP BC
+ LD (04E9AH),BC
+L4E2F: PUSH AF
+ POP BC
+ LD (04E05H),HL
+ LD IX,L0000
+ ADD IX,SP
+ LD (04E89H),IX
+ LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JP NZ,04B04H
+ PUSH BC
+ POP AF
+ JR NZ,L4EB0 ; (+05fH)
+ LD E,(IX+004H)
+ LD D,(IX+005H)
+ EX DE,HL
+ LD (04E97H),HL
+ LD E,(IX+006H)
+ LD D,(IX+007H)
+ LD HL,(L1074)
+ ADD HL,DE
+ LD BC,00008H
+ ADD IX,BC
+ PUSH IX
+ POP DE
+ CALL L7985
+ INC DE
+ LD A,(DE)
+ LD IX,(04E89H)
+ LD DE,0000DH
+ ADD IX,DE
+ PUSH IX
+ POP DE
+ BIT 7,A
+ JR NZ,L4E83 ; (+001H)
+ EX DE,HL
+L4E83: CALL L7A1C
+ JR C,L4E9C ; (+014H)
+ LD SP,L0000
+ LD HL,00002H
+ ADD HL,SP
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ LD (L847D),HL
+ LD HL,L0000
+L4E99: JP L0000
+
+L4E9C: LD DE,L0012
+ LD HL,(04E89H)
+ ADD HL,DE
+ LD SP,HL
+ LD HL,(04E05H)
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4E99 ; (-014H)
+ LD (04E05H),HL
+L4EB0: LD IX,L0000
+ ADD IX,SP
+ LD (04E89H),IX
+ LD HL,(04E05H)
+ CALL TEST1
+ DB 02CH
+ JP Z,L4E2F
+ CALL L7436
+ LD (04E05H),HL
+ CALL L4EFE
+ LD IX,(04E89H)
+L4ED1: LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JP NZ,04B04H
+ LD L,(IX+006H)
+ LD H,(IX+007H)
+ OR A
+ SBC HL,BC
+ LD HL,(04E05H)
+ JP Z,L4E2F
+ LD DE,L0012
+ ADD IX,DE
+ LD (04E89H),IX
+ LD SP,(04E89H)
+ JR L4ED1 ; (-02dH)
+
+L4EFE: LD H,B
+ LD L,C
+ LD BC,(VARST)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ RET
+
+L4F0A: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L4F13: CALL L51A2
+ OR A
+ RET NZ
+ INC HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ INC HL
+ LD (04F12H),DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (04F10H),DE
+ POP DE
+ SCF
+ RET Z
+ JR L4F13 ; (-01dH)
+
+L4F30: CALL L5E7B
+ CALL L6E5F
+ LD (04F69H),DE
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4F5B ; (+01bH)
+ CALL L6E8A
+ CALL L7916
+ LD (04F5EH),DE
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4F5B ; (+00bH)
+ CALL L7436
+ CALL L7916
+ LD (04F71H),BC
+ XOR A
+L4F5B: PUSH HL
+ PUSH AF
+ LD HL,L0000
+ CALL L6E7E
+ LD IX,L0182
+ XOR A
+ CALL L0000
+ POP AF
+ JR NZ,L4F76 ; (+008H)
+ LD A,B
+ EX DE,HL
+ LD DE,L0000
+ CALL L4CD2
+L4F76: POP HL
+ JP L5E7F
+
+L4F7A: CALL L6E5F
+L4F7D: LD A,D
+ OR E
+ RET Z
+ LD B,000H
+L4F82: DJNZ L4F82 ; (-002H)
+ RST 018H
+ DB 00EH
+ RET Z
+ DEC DE
+ JR L4F7D ; (-00dH)
+
+L4F8A: DEC HL
+L4F8B: CALL L51A2
+ OR A
+ SCF
+ RET Z
+ CP 03AH
+ RET Z
+ JR L4F8B ; (-00bH)
+
+L4F96: CALL L6E4B
+ SUB LSE0
+ CP 007H
+ JP C,04AF2H
+ CALL L5E70
+ PUSH DE
+ CALL L6E4B
+ POP BC
+ OUT (C),A
+ RET
+
+L4FAB: CALL L6E4B
+ CALL L5E70
+ PUSH DE
+ CALL L7436
+ CP 005H
+ JP NZ,04AF5H
+ EX (SP),HL
+ PUSH BC
+ EX (SP),HL
+ POP BC
+ IN E,(C)
+ LD D,000H
+ CALL L5E99
+ POP HL
+ RET
+
+L4FC7: CALL L4FCF
+ LD (00054H),DE
+ RET
+
+L4FCF: LD B,018H
+ LD C,027H
+ CALL L4FDA
+ JP C,04AF2H
+ RET
+
+L4FDA: PUSH BC
+ CALL L6E4B
+ PUSH AF
+ CALL L5E70
+ CALL L6E4B
+ LD D,E
+ POP AF
+ LD E,A
+ POP BC
+ LD A,C
+ CP E
+ RET C
+ LD A,B
+ CP D
+ RET
+
+L4FEF: CALL L7436
+ LD (L84CE),A
+ CP 005H
+ JR Z,L500E ; (+015H)
+ PUSH HL
+ PUSH BC
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ OR A
+ JR Z,L5008 ; (+006H)
+ LD HL,(L107A)
+ LD (HL),A
+ LD A,001H
+L5008: POP DE
+ CALL L4CD2
+ POP HL
+ RET
+
+L500E: PUSH HL
+ PUSH BC
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ SUB 030H
+ CP 00AH
+ JR C,L501B ; (+001H)
+ XOR A
+L501B: LD E,A
+ LD D,000H
+ POP HL
+ CALL L5E99
+ POP HL
+ RET
+
+L5024: CP 040H
+ LD BC,POPRA
+ JR NZ,L502F ; (+004H)
+ INC HL
+ LD BC,L504B
+L502F: LD (05040H),BC
+ CALL L6E5F
+ CALL L5E73
+L5039: PUSH DE
+ CALL L6E4B
+ POP DE
+ EX DE,HL
+ CALL POPRA
+ EX DE,HL
+ INC DE
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ JR L5039 ; (-012H)
+
+L504B: LD (HL),A
+ RET
+
+L504D: PUSH HL
+ CALL TEST1
+ DB 04DH
+ JR NZ,L5066 ; (+012H)
+ CALL TEST1
+ DB 041H
+ JR NZ,L5066 ; (+00cH)
+ CALL TEST1
+ DB 058H
+ JR NZ,L5066 ; (+006H)
+ EX (SP),HL
+ LD HL,(MEMMAX)
+ JR L5082 ; (+01cH)
+
+L5066: POP HL
+ CALL L6E5F
+ PUSH HL
+ LD HL,(MEMMAX)
+ OR A
+ SBC HL,DE
+ JP C,L4B2C
+ LD HL,(L107A)
+ INC H
+ INC H
+ INC H
+ INC H
+ OR A
+ SBC HL,DE
+ JP NC,04AF2H
+ EX DE,HL
+L5082: CALL L4902
+ POP HL
+ POP DE
+ LD SP,(INTFAC)
+ LD BC,0FFFFH
+ PUSH BC
+ PUSH DE
+ RET
+
+L5091: POP IX
+L5093: POP BC
+ PUSH BC
+ LD A,B
+ INC A
+ JP NZ,04B07H
+ LD A,C
+ CP 012H
+ JR Z,L50B9 ; (+01aH)
+ CP 0FEH
+ JP NZ,04B07H
+ POP BC
+ CALL L413E
+ EX DE,HL
+ POP HL
+ LD (L8483),HL
+ POP HL
+ LD (L847D),HL
+ POP HL
+ PUSH IX
+ RET Z
+ EX DE,HL
+ JP L5147
+
+L50B9: EX DE,HL
+ LD HL,L0012
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ JR L5093 ; (-02fH)
+
+L50C2: PUSH HL
+ CALL L4F8A
+ EX DE,HL
+ POP HL
+ POP BC
+ PUSH DE
+ EXX
+ LD HL,(L847D)
+ PUSH HL
+ LD HL,(L8483)
+ PUSH HL
+ LD HL,0FFFEH
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(TMPEND)
+ SBC HL,DE
+ LD A,00AH
+ JP C,L4B2E
+ EXX
+ PUSH BC
+ JR L5147 ; (+05dH)
+
+L50EA: CALL TEST1
+ DB 0C1H
+ JP Z,L4C66
+ CALL L6E5F
+ LD C,E
+ LD B,D
+ CP 087H
+ JP NC,L4AEC
+ CP 082H
+ JR NZ,L510F ; (+010H)
+ CALL INCHLF
+ LD E,081H
+ CP LSE4
+ JR Z,L510E ; (+006H)
+ CP LSE0
+ JP NZ,L4AEC
+ DEC E
+L510E: LD A,E
+L510F: PUSH HL
+ LD HL,L43EC
+ SUB 080H
+ ADD A,A
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ CALL INDRCT
+ EX (SP),HL
+ INC HL
+ LD A,B
+ OR A
+ JR NZ,L5143 ; (+020H)
+ LD A,C
+ OR A
+ JR Z,L5143 ; (+01cH)
+ LD B,A
+L5128: DEC B
+ RET Z
+ CALL HLFTCH
+ CALL L5173
+ JP NZ,L4AEC
+ CALL L51A8
+ OR A
+ RET Z
+ INC HL
+ CALL TEST1
+ DB 02CH
+ JR Z,L5128 ; (-017H)
+ POP DE
+ JP 05E48H
+
+L5143: POP DE
+ JP L4F8A
+
+L5147: CALL L45AA
+ EX DE,HL
+ JR NZ,L5150 ; (+003H)
+ LD HL,(L1070)
+L5150: LD (L847D),HL
+ XOR A
+ LD (L4B78),A
+ JP L40E4
+
+L515A: CALL L6E8A
+ EX AF,AF'
+ LD A,(DE)
+ OR A
+ JR Z,L5182 ; (+020H)
+ EX AF,AF'
+ CP LSE2
+ JR NZ,L516F ; (+008H)
+L5167: CALL INCHLF
+ CALL L5173
+ JR Z,L5147 ; (-028H)
+L516F: POP AF
+ JP L40AF
+
+L5173: CP 022H
+ RET Z
+L5176: CP 00BH
+ RET Z
+ CP 00CH
+ RET
+
+L517C: CALL L518B
+ JR NC,L517C ; (-005H)
+ RET
+
+L5182: DEC HL
+ CALL L518B
+ JR NC,L5167 ; (-021H)
+ DB 0C3H
+ POP HL
+ LD B,B
+L518B: CALL L51A2
+ OR A
+ SCF
+ RET Z
+ CP 0C2H
+ RET Z
+ CP 093H
+ JR NZ,L518B ; (-00dH)
+ CALL L518B
+ RET C
+ JR L518B ; (-013H)
+
+L519E: INC HL
+ LD A,(HL)
+ JR L51A8 ; (+006H)
+
+L51A2: INC HL
+ LD A,(HL)
+ CP 094H
+ JR Z,L51C7 ; (+01fH)
+L51A8: OR A
+ RET Z
+ CP 022H
+ JR Z,L51E5 ; (+037H)
+ CP 0FEH
+ JR NC,L51C5 ; (+013H)
+ CP 097H
+ JR Z,L51C7 ; (+011H)
+ CP 027H
+ JR Z,L51C7 ; (+00dH)
+ CP 020H
+ RET NC
+ CP 00BH
+ RET C
+ CP 015H
+ JR NC,L51DC ; (+018H)
+ INC HL
+L51C5: INC HL
+ RET
+
+L51C7: LD A,(HL)
+ OR A
+ RET Z
+ CP 03AH
+ RET Z
+ CP 022H
+ JR Z,L51D4 ; (+003H)
+ INC HL
+ JR L51C7 ; (-00dH)
+
+L51D4: CALL L51E5
+ OR A
+ RET Z
+ INC HL
+ JR L51C7 ; (-015H)
+
+L51DC: AND 00FH
+ ADD A,L
+ LD L,A
+ LD A,020H
+ RET NC
+ INC H
+ RET
+
+L51E5: INC HL
+ LD A,(HL)
+ OR A
+ RET Z
+ CP 022H
+ RET Z
+ JR L51E5 ; (-009H)
+
+L51EE: OR 0AFH
+ PUSH AF
+ LD B,031H
+ LD C,04FH
+ CALL L4FDA
+ PUSH AF
+ CALL L523F
+ POP AF
+ JR C,L523D ; (+03eH)
+ LD A,C
+ LD (0522BH),A
+ LD B,001H
+ SRL E
+ JR NC,L520B ; (+002H)
+ SLA B
+L520B: SRL D
+ JR NC,L5213 ; (+004H)
+ SLA B
+ SLA B
+L5213: EX DE,HL
+ RST 018H
+ DB 01EH
+ CALL BREAKX
+ CP 0F0H
+ JR NC,L521F ; (+002H)
+ LD A,0F0H
+L521F: LD C,A
+ POP AF
+ JR Z,L5235 ; (+012H)
+ SET 3,H
+ CALL BREAKX
+ AND 08FH
+ OR 000H
+ CALL POPRA
+ RES 3,H
+ LD A,C
+ OR B
+ JR L5238 ; (+003H)
+
+L5235: LD A,B
+ CPL
+ AND C
+L5238: CALL POPRA
+ EX DE,HL
+ RET
+
+L523D: POP AF
+ RET
+
+L523F: LD A,(L005D)
+ AND 070H
+ LD C,A
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ PUSH DE
+ CALL L552C
+ POP DE
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ LD C,A
+ RET
+
+L5255: RST 018H
+ DB 020H
+ RET
+
+L5258: CALL 05E48H
+ RST 018H
+ DB 028H
+ RST 018H
+ DB 000H
+ RET
+
+L5260: JR Z,L5285 ; (+023H)
+ LD A,001H
+ LD (L004E),A
+ LD A,(L0056)
+ LD B,019H
+ CALL L5298
+ LD (00056H),BC
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ LD B,028H
+ LD A,(L005B)
+ CALL L5298
+ LD (0005BH),BC
+ RET
+
+L5285: XOR A
+ LD (L004E),A
+ LD BC,L1800
+ LD (00056H),BC
+ LD BC,L2700
+ LD (0005BH),BC
+ RET
+
+L5298: LD D,000H
+ LD E,A
+ CALL TEST1
+ DB 02CH
+ JR Z,L52A9 ; (+008H)
+ PUSH BC
+ CALL L6E4B
+ POP BC
+ CALL L5E70
+L52A9: LD C,E
+ PUSH BC
+ CALL L6E4B
+ POP BC
+ DEC A
+ JP M,04AF2H
+ ADD A,C
+ CP B
+ JP NC,04AF2H
+ LD B,A
+ RET
+
+L52BA: DI
+ OUT (LSE4),A
+ JP L0000
+
+L52C0: XOR A
+ LD BC,?SETDE
+ LD (L53A8),A
+ PUSH AF
+ CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,04B28H
+ BIT 1,A
+ JP Z,04B28H
+ CALL TEST1
+ DB 02CH
+ POP AF
+ OR A
+ JR NZ,L52F2 ; (+015H)
+ CALL L6E6F
+ LD A,B
+ LD (L53A3),A
+ LD (053A4H),DE
+ CALL 05E48H
+ JR L52F2 ; (+005H)
+
+L52ED: LD A,002H
+ LD (L53A8),A
+L52F2: CALL L4664
+ LD (05319H),DE
+ LD (05327H),BC
+ LD A,0FFH
+ LD (L1090),A
+ CALL SKPDE
+ LD HL,(L1070)
+L5308: CALL LDDEMI
+ LD A,D
+ OR E
+ RET Z
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ PUSH DE
+ CALL LDDEMI
+ PUSH HL
+ LD HL,L0000
+ OR A
+ SBC HL,DE
+ JR C,L5326 ; (+006H)
+ JR Z,L5326 ; (+004H)
+ POP HL
+ POP HL
+ JR L5308 ; (-01eH)
+
+L5326: LD HL,L0000
+ OR A
+ SBC HL,DE
+ JR NC,L5331 ; (+003H)
+ POP HL
+ POP HL
+ RET
+
+L5331: EX DE,HL
+ CALL L5E66
+ RST 018H
+ DB 017H
+ LD HL,L11A4
+ CALL LDHLDE
+ LD (HL),020H
+ INC HL
+ EX DE,HL
+ POP HL
+ CALL L68E0
+ LD A,(L53A8)
+ OR A
+ JR NZ,L5350 ; (+005H)
+ CALL L5366
+ JR NC,L535A ; (+00aH)
+L5350: LD DE,L11A4
+ RST 018H
+ DB 017H
+ RST 018H
+ DB 037H
+ CALL L5733
+L535A: POP HL
+ LD A,(L53A8)
+ CP 002H
+ JR Z,L5308 ; (-05aH)
+ RST 018H
+ DB 00FH
+ JR L5308 ; (-05eH)
+
+L5366: EX DE,HL
+L5367: PUSH HL
+ CALL L5371
+ POP HL
+ RET C
+ RET Z
+ INC HL
+ JR L5367 ; (-00aH)
+
+L5371: LD A,(L53A3)
+ LD B,A
+ LD DE,(053A4H)
+L5379: LD A,(HL)
+ INC HL
+ OR A
+ RET Z
+ CP 005H
+ JR Z,L5385 ; (+004H)
+ CP 006H
+ JR NZ,L5387 ; (+002H)
+L5385: JR L5379 ; (-00eH)
+
+L5387: PUSH HL
+ LD C,A
+L5389: LD A,(DE)
+ INC DE
+ CP 005H
+ JR Z,L5393 ; (+004H)
+ CP 006H
+ JR NZ,L539A ; (+007H)
+L5393: DEC B
+ SCF
+ POP HL
+ RET Z
+ PUSH HL
+ JR L5389 ; (-011H)
+
+L539A: SUB C
+ POP HL
+ OR A
+ RET NZ
+ DEC B
+ SCF
+ RET Z
+ JR L5379 ; (-02aH)
+
+L53A3: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L53A8: NOP
+L53A9: CALL TESTX
+ DB 087H
+ CALL L5E4F
+ PUSH HL
+ LD C,000H
+L53B3: RST 018H
+ DB 008H
+ LD A,C
+ ADD A,031H
+ LD D,A
+ LD E,020H
+ CP 03AH
+ JR NZ,L53C2 ; (+003H)
+ LD DE,L3031
+L53C2: LD (05445H),DE
+ LD DE,L543D
+ RST 018H
+ DB 00BH
+ LD A,C
+ CALL L549C
+ LD B,(HL)
+ INC HL
+ PUSH BC
+ CALL L53E0
+ POP BC
+ INC C
+ LD A,C
+ CP 00AH
+ JR NZ,L53B3 ; (-029H)
+ RST 018H
+ DB 008H
+ POP HL
+ RET
+
+L53E0: LD A,B
+ OR A
+ LD C,000H
+ JR NZ,L53ED ; (+007H)
+ LD A,022H
+ RST 018H
+ DB 00AH
+ RST 018H
+ DB 00AH
+ RET
+
+L53ED: LD A,(HL)
+ CP 020H
+ JR C,L5412 ; (+020H)
+ CP 022H
+ JR Z,L5412 ; (+01cH)
+ LD A,C
+ CP 001H
+ JR Z,L5405 ; (+00aH)
+ OR A
+ LD DE,L544A
+ JR NZ,L5403 ; (+002H)
+ INC DE
+ INC DE
+L5403: RST 018H
+ DB 00BH
+L5405: LD A,(HL)
+ RST 018H
+ DB 00AH
+ INC HL
+ LD C,001H
+ DJNZ L53ED ; (-020H)
+ LD A,022H
+L540F: RST 018H
+ DB 00AH
+ RET
+
+L5412: LD A,C
+ CP 0FFH
+ JR Z,L5437 ; (+020H)
+ OR A
+ LD DE,0544EH
+ JR NZ,L541F ; (+002H)
+ INC DE
+ INC DE
+L541F: RST 018H
+ DB 00BH
+L5421: PUSH BC
+ PUSH HL
+ LD L,(HL)
+ LD H,000H
+ CALL L5E66
+ RST 018H
+ DB 00BH
+ POP HL
+ POP BC
+ INC HL
+ LD C,0FFH
+ DJNZ L53ED ; (-045H)
+ LD A,029H
+ JP L540F
+
+L5437: LD A,02CH
+ RST 018H
+ DB 00AH
+ JR L5421 ; (-01cH)
+
+L543D: LD B,H
+ LD B,L
+ LD B,(HL)
+ JR NZ,L548D ; (+04bH)
+ LD B,L
+ LD E,C
+ JR Z,L5446 ; (+000H)
+L5446: NOP
+ ADD HL,HL
+ DEC A
+ NOP
+L544A: ADD HL,HL
+ DEC HL
+ LD (L2200),HL
+ DEC HL
+ LD B,E
+ LD C,B
+ LD D,D
+ INC H
+ JR Z,L5456 ; (+000H)
+L5456: CALL TEST1
+ DB 0B2H
+ JR Z,L5467 ; (+00bH)
+ CALL TESTX
+ DB 0FFH
+L5460: CALL TESTX
+ DB 0C7H
+ JP L7824
+
+L5467: CALL TESTX
+ DB 028H
+ CALL L6E4B
+ CALL TESTX
+ DB 029H
+ CALL TESTX
+ DB QDPC
+ LD A,E
+ DEC A
+ CP 00AH
+ JP NC,04AF2H
+ PUSH HL
+ CALL L549C
+ EX (SP),HL
+ CALL L6E6F
+ EX (SP),HL
+ LD A,B
+ CP 010H
+ JR C,L548D ; (+002H)
+ LD A,00FH
+L548D: LD (HL),A
+ OR A
+ JR Z,L5499 ; (+008H)
+ LD B,A
+ INC HL
+L5493: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L5493 ; (-006H)
+L5499: POP HL
+ EI
+ RET
+
+L549C: ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ LD HL,L12C0
+ JP ADDHLA
+
+L54A6: CALL TEST1
+ DB 02CH
+ JR NZ,L54B4 ; (+008H)
+ CALL L5E70
+ LD DE,L005D
+ JR L54C0 ; (+00cH)
+
+L54B4: CALL L4FCF
+ CALL L5E70
+ EX DE,HL
+ RST 018H
+ DB 01EH
+ SET 3,H
+ EX DE,HL
+L54C0: EX DE,HL
+ CALL BREAKX
+ EX DE,HL
+ PUSH DE
+ CALL L54D0
+ POP DE
+ EX DE,HL
+ CALL POPRA
+ EX DE,HL
+ RET
+
+L54D0: LD C,A
+ CALL TEST1
+ DB 02CH
+ JR Z,L54E9 ; (+012H)
+ CALL L552C
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ XOR C
+ AND 070H
+ XOR C
+ LD C,A
+ CALL TEST1
+ DB 02CH
+ JR NZ,L54FA ; (+011H)
+L54E9: CALL L413E
+ JR Z,L54FA ; (+00cH)
+ CP 05DH
+ JR Z,L54FA ; (+008H)
+ CALL L552C
+ XOR C
+ AND 007H
+ XOR C
+ RET
+
+L54FA: LD A,C
+ RET
+
+L54FC: INC HL
+L54FD: CALL L6E6F
+ LD A,B
+ OR A
+ JR Z,L5513 ; (+00fH)
+ PUSH HL
+ LD HL,L11A4
+ PUSH HL
+ CALL LDHLDE
+ LD (HL),00DH
+ POP DE
+ CALL L0030
+ POP HL
+L5513: CALL HLFTCH
+ CP 03BH
+ JR Z,L54FC ; (-01eH)
+ CP 02CH
+ JR Z,L54FC ; (-022H)
+ RET
+
+L551F: CALL L6E4B
+ DEC A
+ CP 007H
+ JP NC,04AF2H
+ INC A
+ JP L0041
+
+L552C: PUSH BC
+ CALL L6E4B
+ POP BC
+ CP 008H
+ JP NC,04AF2H
+ RET
+
+L5537: RST 018H
+ DB 045H
+ RET
+
+ DS 198, 000H
+L5600: LD A,(L1042)
+ CP 088H
+ RET
+
+L5606: CALL L6E8A
+ LD A,(L84CE)
+ CP 003H
+ PUSH HL
+ EX DE,HL
+ JR Z,L5619 ; (+007H)
+ CALL L6028
+ POP HL
+ RST 018H
+ DB 017H
+ RET
+
+L5619: CALL L6E7E
+ POP HL
+ RET
+
+L561E: LD A,(L005D)
+ LD (0574DH),A
+ XOR A
+ LD (L1090),A
+ CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 2,A
+ JP NZ,L5D18
+ BIT 1,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L5600
+ JR NZ,L5655 ; (+013H)
+ CALL TEST1
+ DB 05BH
+ JR NZ,L5655 ; (+00dH)
+ LD A,(0574DH)
+ CALL L54D0
+ LD (0574DH),A
+ CALL TESTX
+ DB 05DH
+L5655: CALL L413E
+ JP Z,L5733
+L565B: LD A,(HL)
+ CP LSE3
+ JR Z,L56DA ; (+07aH)
+ LD BC,L5674
+ PUSH BC
+ CP 03BH
+ RET Z
+ CP 02CH
+ RET Z
+ CP LSE6
+ JR Z,L56AA ; (+03cH)
+ CALL L5606
+ JP L573E
+
+L5674: CALL L413E
+ JP Z,L5733
+ CP 02CH
+ JR NZ,L569A ; (+01cH)
+ CALL L5600
+ JR C,L5697 ; (+014H)
+ LD IX,(ZDELT)
+ CALL IOCALL
+ LD B,A
+L568B: SUB 00AH
+ JR NC,L568B ; (-004H)
+ NEG
+ LD B,A
+ CALL L56CC
+ JR L569A ; (+003H)
+
+L5697: CALL L5733
+L569A: LD A,(HL)
+ CP 02CH
+ JR Z,L56A1 ; (+002H)
+ CP 03BH
+L56A1: JR NZ,L56A4 ; (+001H)
+ INC HL
+L56A4: CALL L413E
+ RET Z
+ JR L565B ; (-04fH)
+
+L56AA: CALL L5600
+ JP C,057B7H
+ CALL L5E77
+ CALL L6E4B
+ CALL L5E7F
+ LD IX,(ZDELT)
+ CALL IOCALL
+ SUB E
+ RET NC
+ NEG
+ LD B,A
+ CALL L5600
+ LD A,013H
+ JR Z,L56CE ; (+002H)
+L56CC: LD A,020H
+L56CE: LD DE,L11A4
+ PUSH BC
+ PUSH DE
+ CALL ?SETDE
+ POP DE
+ POP BC
+ JR L573E ; (+064H)
+
+L56DA: INC HL
+ CALL L6E6F
+ LD A,B
+ OR A
+ JP Z,04AF2H
+ PUSH HL
+ LD HL,L11A4
+ PUSH HL
+ PUSH BC
+ CALL LDHLDE
+ POP BC
+ LD A,0F0H
+ LD E,B
+ LD D,000H
+ INC DE
+ RST 018H
+ DB 02AH
+ LD (L6306),HL
+ LD (L6308),HL
+ POP DE
+ CALL LDHLDE
+ LD (HL),000H
+ POP HL
+L5702: CALL L413E
+ JR Z,L5729 ; (+022H)
+ INC HL
+ CP 02CH
+ JR Z,L5711 ; (+005H)
+ CP 03BH
+ JP NZ,L4AEC
+L5711: CALL L413E
+ JR Z,L572C ; (+016H)
+ CALL L6E92
+ PUSH HL
+ LD BC,(TMPEND)
+ PUSH BC
+ CALL L630A
+ POP DE
+ CALL L573C
+ POP HL
+ JR L5702 ; (-027H)
+
+L5729: CALL L5733
+L572C: LD A,0F0H
+ RST 018H
+ DB 02BH
+ RET
+
+L5731: DEC C
+ NOP
+L5733: LD A,(L005D)
+ LD (0574DH),A
+ LD DE,L5731
+L573C: RST 018H
+ DB 017H
+L573E: CALL L5600
+ JR Z,L5746 ; (+003H)
+ RST 018H
+ DB 037H
+ RET
+
+L5746: PUSH HL
+ PUSH BC
+ LD HL,L005D
+ LD C,(HL)
+ LD (HL),070H
+ RST 018H
+ DB 037H
+ LD (HL),C
+ POP BC
+ POP HL
+ RET
+
+L5754: LD A,08AH
+ LD (L1042),A
+ JR L5792 ; (+037H)
+
+L575B: CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 2,A
+ JP NZ,L5D29
+ BIT 0,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L5600
+ JR NZ,L5792 ; (+01dH)
+ CALL HLFTCH
+ CP 022H
+ LD DE,L57BC
+ LD B,002H
+ JR NZ,L5788 ; (+007H)
+ CALL L6E6F
+ CALL TESTX
+ DB 03BH
+L5788: LD A,B
+ OR A
+ JR Z,L5792 ; (+006H)
+L578C: LD A,(DE)
+ INC DE
+ RST 018H
+ DB 003H
+ DJNZ L578C ; (-006H)
+L5792: LD (057EBH),SP
+ LD DE,(VARED)
+ LD (TMPEND),DE
+L579E: LD DE,(TMPEND)
+ CALL L74E8
+ CALL L7436
+ PUSH AF
+ PUSH BC
+ CALL L413E
+ JR Z,057BEH ; (+00fH)
+ CALL L5E73
+ JR L579E ; (-016H)
+
+L57B4: LD A,02CH
+ LD HL,0BB3EH
+ JP L0182
+
+L57BC: CCF
+ JR NZ,0576EH ; (-051H)
+ PUSH AF
+ PUSH HL
+ RST 018H
+ DB 034H
+ LD HL,(057EBH)
+ DEC HL
+L57C7: LD A,(HL)
+ OR A
+ JR Z,L57E9 ; (+01eH)
+ DEC HL
+ DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ DEC HL
+ PUSH HL
+ PUSH AF
+ PUSH BC
+ LD DE,(TMPEND)
+ CALL L57EE
+ LD H,000H
+ LD L,B
+ ADD HL,DE
+ LD (HL),000H
+ POP DE
+ POP AF
+ CALL L57F8
+ POP HL
+ JR L57C7 ; (-022H)
+
+L57E9: POP HL
+ LD SP,L0000
+ RET
+
+L57EE: LD A,(L1042)
+ CP 08AH
+ JR Z,L5839 ; (+044H)
+ RST 018H
+ DB 035H
+ RET
+
+L57F8: CP 003H
+ JR NZ,L5803 ; (+007H)
+ LD HL,(L107A)
+ LD A,B
+$START: JP L4CD2 ; $START - BASIC warm start / system entry
+
+L5803: PUSH DE
+ LD HL,(L107C)
+ LD DE,(TMPEND)
+ EX DE,HL
+ CALL HLFTCH
+ CP 045H
+ JP Z,04AF2H
+ EX DE,HL
+ CALL L5EDC
+ EX DE,HL
+ CALL TEST1
+ DB 000H
+ JP NZ,04AF2H
+ EX DE,HL
+ POP DE
+ JP L5E93
+
+L5825: XOR A
+ JR L587E ; (+056H)
+
+L5828: CALL L5825
+ CALL L413E
+ CALL NZ,L45AA
+ EX DE,HL
+ CALL NZ,L5869
+ EX DE,HL
+ JP L4F8A
+
+L5839: PUSH HL
+ PUSH DE
+ CALL L5847
+ POP DE
+ POP HL
+ RET
+
+L5841: LD HL,(L1070)
+ CALL L5869
+L5847: LD A,(L848F)
+ CP 001H
+ JP Z,04B1FH
+ JR C,L5841 ; (-010H)
+ LD HL,(L8490)
+ LD C,03AH
+ RST 018H
+ DB 036H
+ LD (L8490),HL
+ CALL L413E
+ SCF
+ CCF
+ RET NZ
+ DEC HL
+L5862: CALL L519E
+ OR A
+ JR NZ,L5874 ; (+00cH)
+ INC HL
+L5869: LD A,(HL)
+ INC HL
+ OR (HL)
+ LD A,001H
+ JR Z,L587E ; (+00eH)
+ INC HL
+ INC HL
+ JR L5862 ; (-012H)
+
+L5874: CP 094H
+ JR NZ,L5862 ; (-016H)
+ INC HL
+ LD (L8490),HL
+ LD A,002H
+L587E: LD (L848F),A
+ RET
+
+L5882: CALL TEST1
+ DB 023H
+ JR NZ,L58AD ; (+025H)
+ CALL HLFTCH
+ CP 020H
+ JP NC,L4AEC
+ PUSH DE
+ PUSH BC
+ LD DE,L84CF
+ PUSH DE
+ CALL L705A
+ EX (SP),HL
+ CALL L60B7
+ LD A,H
+ OR A
+ JP NZ,04B28H
+ OR L
+ JP Z,04B28H
+ JP M,04B28H
+ POP HL
+ POP BC
+ POP DE
+ RET
+
+L58AD: CALL TEST1
+ DB FDPD
+ LD A,088H
+ RET NZ
+ CALL TEST1
+ DB 050H
+ LD A,089H
+ RET Z
+ CALL TESTX
+ DB 054H
+ LD A,080H
+ RET
+
+L58C2: LD A,(L1042)
+ OR A
+ RET M
+ JP L5E70
+
+L58CA: CALL L593A
+ RST 018H
+ DB 03AH
+ RET
+
+L58D0: CALL L413E
+ LD B,000H
+ CALL NZ,L6E6F
+L58D8: PUSH HL
+ RST 018H
+ DB 02CH
+ RST 018H
+ DB 03CH
+ POP HL
+ RET
+
+L58DF: LD A,001H
+ LD BC,0023EH
+ LD BC,0043EH
+ PUSH AF
+ LD (L1043),A
+ CALL L5882
+ CP 088H
+ JR NZ,L58F4 ; (+002H)
+ LD A,080H
+L58F4: LD (L1042),A
+ CALL L58C2
+ CALL L592D
+ POP AF
+ CP 004H
+ JR Z,L5904 ; (+002H)
+L5902: LD A,003H
+L5904: LD (L1000),A
+ PUSH AF
+ RST 018H
+ DB 033H
+ LD A,(L1000)
+ POP BC
+ CP B
+ JP NZ,04B53H
+ RET
+
+L5913: OR 0AFH
+ LD B,A
+ CALL L413E
+ JR Z,L5929 ; (+00eH)
+L591B: CALL L5882
+ CP 088H
+ RET NC
+ RST 018H
+ DB 038H
+ CALL TEST1
+ DB 02CH
+ JR L591B ; (-00eH)
+
+L5929: XOR A
+ RST 018H
+ DB 038H
+ RET
+
+L592D: CALL L46A6
+ LD B,000H
+ CALL NZ,L6E6F
+ PUSH HL
+ RST 018H
+ DB 02DH
+ POP HL
+ RET
+
+L593A: PUSH HL
+ CALL HLFTCH
+ LD DE,L5982
+ LD B,001H
+ CALL L5975
+ CALL NC,L5975
+ JR C,L5962 ; (+017H)
+ CALL L5975
+ CALL L5EC4
+ CALL L597B
+ CALL L413E
+ JR NZ,L5962 ; (+009H)
+ LD A,03AH
+ LD (DE),A
+ POP AF
+ LD DE,L5982
+ JR L596B ; (+009H)
+
+L5962: POP HL
+ CALL L413E
+ LD B,000H
+ CALL NZ,L6E6F
+L596B: PUSH HL
+ RST 018H
+ DB 02CH
+ INC (HL)
+ DEC (HL)
+ JP NZ,04B25H
+ POP HL
+ RET
+
+L5975: CP 041H
+ RET C
+ CP 05BH
+ CCF
+L597B: RET C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ INC B
+ RET
+
+L5982: NOP
+ NOP
+ NOP
+ NOP
+L5986: CALL L592D
+ CALL TEST1
+ DB 02CH
+ JP Z,L5A47
+ PUSH HL
+ CALL L5BDC
+ DEC A
+ JR Z,L59A9 ; (+012H)
+ DEC A
+ JP NZ,04B53H
+ CALL L5C08
+ CALL L5BE5
+ CALL L5C11
+ CALL L5C44
+ POP HL
+ RET
+
+L59A9: LD HL,(ELMD22)
+ PUSH HL
+ LD DE,(MEMLMT)
+ CALL L59CF
+ LD DE,(ELMD20)
+ LD BC,(MEMMAX)
+ CALL NC,L59CA
+ JP C,04B13H
+ POP HL
+ RST 018H
+ DB 030H
+ CALL L5C44
+ POP HL
+ RET
+
+L59CA: ADD HL,DE
+ RET C
+ EX DE,HL
+ LD H,B
+ LD L,C
+L59CF: PUSH HL
+ OR A
+ SBC HL,DE
+ POP HL
+ RET
+
+L59D5: CALL L592D
+ CALL L5BDC
+ CP 002H
+ JP NZ,04B53H
+ LD A,(L849A)
+ OR A
+ JP Z,L5B0D
+ JP L5DB2
+
+L59EA: CALL L5C08
+ CALL L592D
+ CALL TEST1
+ DB 02CH
+ JR Z,05A4DH ; (+057H)
+ RST 018H
+ DB 02FH
+ CP 002H
+ JP NZ,04B53H
+ PUSH HL
+ LD HL,(L1078)
+ LD (L107A),HL
+ LD BC,003E8H
+ ADD HL,BC
+ JP C,L4B2C
+ PUSH HL
+ LD BC,(ELMD20)
+ INC B
+ ADD HL,BC
+ JP C,L4B2C
+ SBC HL,SP
+ JP NC,L4B2C
+ POP HL
+ PUSH HL
+ RST 018H
+ DB 030H
+ POP HL
+ CALL L5A24
+ POP HL
+ RET
+
+L5A24: CALL LDDEMI
+ LD A,D
+ OR E
+ RET Z
+ PUSH DE
+ CALL LDDEMI
+ PUSH HL
+ LD H,D
+ LD L,E
+ LD (L847F),HL
+ CALL L49B9
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+ CALL L4794
+ POP HL
+ POP BC
+ ADD HL,BC
+ DEC HL
+ DEC HL
+ DEC HL
+ DEC HL
+ JR L5A24 ; (-023H)
+
+L5A47: CALL L5C08
+ LD A,001H
+ LD BC,L003E
+ LD BC,0023EH
+ PUSH AF
+ CALL TESTX
+ DB 041H
+ CALL 05E48H
+ LD A,001H
+ LD (L1043),A
+ LD A,081H
+ LD (L1042),A
+ CALL L5902
+ POP AF
+ PUSH AF
+ PUSH HL
+ LD HL,L0000
+ LD DE,0FFFFH
+ OR A
+ CALL NZ,L49B9
+ LD A,081H
+ RST 018H
+ DB 02EH
+ LD HL,(L1078)
+ LD (L107A),HL
+ LD BC,003E8H
+ ADD HL,BC
+ JP C,04AFBH
+ PUSH HL
+ LD (L5AEB),HL
+L5A89: LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(05AEBH)
+ SBC HL,DE
+ JP C,04AFBH
+ LD DE,(TMPEND)
+ RST 018H
+ DB 035H
+ LD A,B
+ OR A
+ JR Z,L5AD6 ; (+036H)
+ CALL L6A11
+ LD A,B
+ OR C
+ JP Z,04AF2H
+ LD HL,(L5AEB)
+ PUSH HL
+ INC HL
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ PUSH HL
+ LD H,D
+ LD L,E
+ CALL TEST1
+ DB 000H
+ JP Z,04AF2H
+ POP HL
+ LD A,(DE)
+ CP 020H
+ JR NZ,L5AC3 ; (+001H)
+ INC DE
+L5AC3: CALL L66EF
+ LD (HL),000H
+ INC HL
+ LD (L5AEB),HL
+ POP DE
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ JR L5A89 ; (-04dH)
+
+L5AD6: LD HL,(L5AEB)
+ CALL L4952
+ CALL L4928
+ POP HL
+ CALL L5A24
+ POP HL
+ POP AF
+ CP 002H
+ RET NZ
+ JP L480D
+
+L5AEB: NOP
+ NOP
+L5AED: CALL L592D
+ PUSH HL
+ CALL TEST1
+ DB 02CH
+ JR NZ,L5AFF ; (+008H)
+ CALL HLFTCH
+ CP 041H
+ JP Z,05A50H
+L5AFF: CALL L5BDC
+ POP HL
+ DEC A
+ JR Z,L5B16 ; (+010H)
+ DEC A
+ JP NZ,04B53H
+ CALL L5BE5
+L5B0D: CALL L5C11
+ CALL L5C44
+ JP L480D
+
+L5B16: LD D,0C9H
+ LD BC,0FF00H
+ CALL TEST1
+ DB 02CH
+ JR NZ,L5B2A ; (+009H)
+ CALL TESTX
+ DB 052H
+ LD D,000H
+ LD BC,0CF00H
+L5B2A: LD A,D
+ LD (L5B93),A
+ LD HL,(L1014)
+ LD DE,(ELMD22)
+ PUSH HL
+ CALL L59CA
+ POP DE
+ LD HL,(L1070)
+ LD BC,0FF00H
+ CALL NC,L59CA
+ JP C,L4B2C
+ LD SP,L0000
+ CALL L4930
+ XOR A
+ LD (L5C07),A
+ LD HL,(L1018)
+ PUSH HL
+ LD DE,(ELMD20)
+ PUSH DE
+ LD HL,(L107A)
+ RST 018H
+ DB 030H
+ LD A,004H
+ RST 018H
+ DB 003H
+ LD A,016H
+ RST 018H
+ DB 003H
+ POP BC
+ PUSH BC
+ LD DE,(ELMD22)
+ CALL L59CF
+ LD A,0B0H
+ JR NC,L5B7B ; (+008H)
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ LD A,0B8H
+L5B7B: LD (05B92H),A
+ DI
+ PUSH HL
+ PUSH DE
+ LD BC,00016H
+ LD HL,L5B8E
+ LD DE,0FF80H
+ PUSH DE
+ LDIR
+ RET
+
+L5B8E: POP DE
+ POP HL
+ POP BC
+ LDIR
+L5B93: RET
+
+ POP BC
+ LD SP,VRAM
+ EX DE,HL
+ PUSH BC
+ PUSH HL
+ LD (HL),LSD3
+ INC HL
+ LD (HL),LSE4
+ INC HL
+ LD (HL),0C9H
+ RET
+
+L5BA4: LD HL,(L1078)
+ LD (L107A),HL
+ LD DE,(TEXTED)
+ LD (05C01H),DE
+ OR A
+ SBC HL,DE
+ LD (L5C03),HL
+ LD HL,0FF00H
+ ADD HL,SP
+ LD (L5C05),HL
+ LD DE,(VARED)
+ PUSH HL
+ OR A
+ SBC HL,DE
+ JP C,L4B2C
+ EX (SP),HL
+ EX DE,HL
+ LD BC,(05C03H)
+ INC BC
+ LDDR
+ POP DE
+ RST 018H
+ DB 018H
+ LD A,001H
+ LD (L5C07),A
+ RET
+
+L5BDC: CALL L5BA4
+ RST 018H
+ DB 02FH
+ LD A,(L1000)
+ RET
+
+L5BE5: LD HL,(L1078)
+ XOR A
+ DEC HL
+ LD (HL),A
+ DEC HL
+ LD (HL),A
+ LD (L1076),HL
+ DEC HL
+ LD (HL),A
+ LD (L1074),HL
+ DEC HL
+ LD (HL),A
+ LD (L1072),HL
+ LD HL,00004H
+ LD (L5C03),HL
+ RET
+
+L5C01: NOP
+ NOP
+L5C03: NOP
+ NOP
+L5C05: NOP
+ NOP
+L5C07: NOP
+L5C08: PUSH AF
+ CALL L4146
+ JP NZ,04B16H
+ POP AF
+ RET
+
+L5C11: LD BC,(ELMD20)
+ PUSH BC
+ LD HL,(L1072)
+ LD DE,(TEXTST)
+ OR A
+ SBC HL,DE
+ LD L,000H
+ SBC HL,BC
+ JP C,L4B2C
+ LD HL,L0000
+ LD (L5C01),HL
+ CALL L4821
+ LD HL,L0000
+ LD (L8483),HL
+ LD HL,(L1070)
+ RST 018H
+ DB 030H
+ POP BC
+ LD HL,(L1070)
+ ADD HL,BC
+ LD (L5C01),HL
+ RET
+
+L5C44: LD A,081H
+ LD B,000H
+ RST 018H
+ DB 038H
+ LD HL,L5C07
+ LD A,(HL)
+ OR A
+ RET Z
+ LD (HL),000H
+ LD HL,(L5C01)
+ LD A,H
+ OR L
+ JR NZ,L5C5F ; (+006H)
+ LD HL,(L1070)
+ CALL L4952
+L5C5F: EX DE,HL
+ LD HL,(L1072)
+ LD BC,(05C03H)
+ LDIR
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ RST 018H
+ DB 018H
+ RET
+
+L5C71: PUSH HL
+ CALL L46C0
+ POP HL
+ CALL L592D
+ PUSH HL
+ RST 018H
+ DB 02FH
+ CP 002H
+ JP NZ,04B53H
+ LD HL,(L1070)
+ RST 018H
+ DB 032H
+ POP HL
+ RET
+
+L5C88: PUSH HL
+ CALL L46C0
+ POP HL
+ CALL L592D
+ CALL TEST1
+ DB 02CH
+ JR Z,L5CB5 ; (+01fH)
+ PUSH HL
+ LD A,002H
+ LD (L1000),A
+ LD HL,(L1072)
+ LD DE,(TEXTST)
+ OR A
+ SBC HL,DE
+ LD (L1014),HL
+ LD A,(L1001)
+ CP 00DH
+ JP Z,04B50H
+ RST 018H
+ DB 031H
+ POP HL
+ RET
+
+L5CB5: CALL TESTX
+ DB 041H
+ PUSH HL
+ LD A,002H
+ LD (L1043),A
+ LD A,081H
+ LD (L1042),A
+ CALL L5902
+ POP HL
+ CALL L52ED
+ CALL L5733
+ LD B,001H
+ LD A,081H
+ RST 018H
+ DB 038H
+ RET
+
+L5CD5: XOR A
+ LD BC,?SETDE
+ PUSH AF
+ CALL L6E6F
+ RST 018H
+ DB 02DH
+ POP AF
+ RST 018H
+ DB 03FH
+ RET
+
+L5CE3: CALL L5882
+ PUSH AF
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 1,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L593A
+ LD B,A
+ XOR A
+ RST 018H
+ DB 039H
+ LD A,B
+ RST 018H
+ DB 03AH
+ POP AF
+ RST 018H
+ DB 039H
+ RET
+
+L5D02: CALL L6E6F
+ RST 018H
+ DB 02DH
+ RST 018H
+ DB 03DH
+ RET
+
+L5D0A: CALL L6E6F
+ RST 018H
+ DB 02DH
+ CALL L5E70
+ CALL L6E6F
+ RST 018H
+ DB 03EH
+ RET
+
+L5D18: CALL L5D4E
+L5D1B: CALL L5606
+ RST 018H
+ DB 042H
+ CALL L413E
+ RET Z
+ CALL L5E73
+ JR L5D1B ; (-00eH)
+
+L5D29: CALL L5D4E
+ LD DE,(TMPEND)
+ CALL L74E8
+L5D33: CALL L7436
+ PUSH HL
+ PUSH AF
+ PUSH BC
+ LD DE,(TMPEND)
+ RST 018H
+ DB 041H
+ POP DE
+ POP AF
+ CALL L57F8
+ POP HL
+ CALL L413E
+ RET Z
+ CALL L5E73
+ JR L5D33 ; (-01bH)
+
+L5D4E: CALL TEST1
+ DB 028H
+ RET NZ
+ CALL L6E5F
+ LD A,D
+ OR E
+ JP Z,04AF2H
+ RST 018H
+ DB 040H
+ CALL L5E7F
+ CALL TEST1
+ DB 02CH
+ RET
+
+L5D65: LD A,(L849A)
+ OR A
+ JP NZ,04B22H
+ PUSH HL
+ LD B,000H
+ RST 018H
+ DB 02CH
+ LD (05E1AH),DE
+ LD (L5E1C),A
+ LD HL,(L1072)
+ LD DE,(TEXTST)
+ XOR A
+ SBC HL,DE
+ LD (L1014),HL
+ RST 018H
+ DB 044H
+ POP HL
+ CALL L592D
+ CALL 05E48H
+ LD A,(L1050)
+ BIT 5,A
+ JP Z,057B7H
+ PUSH HL
+ LD HL,(08494H)
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ LD HL,L847D
+ LD BC,(08492H)
+ LDIR
+ CALL L5BDC
+ CP 002H
+ JP NZ,04B53H
+ LD (05DB3H),SP
+L5DB2: LD SP,L0000
+ CALL L5C11
+ CALL L5C44
+ LD HL,0FFFDH
+ PUSH HL
+ PUSH HL
+ LD A,001H
+ LD (L849A),A
+ LD HL,(L1070)
+ JP L40E4
+
+L5DCB: XOR A
+ LD (L849A),A
+ POP IX
+L5DD1: POP BC
+ LD A,B
+ CP 0FFH
+ JP NZ,04B22H
+ LD A,C
+ CP 0FDH
+ JR Z,L5DF0 ; (+013H)
+ CP 0FEH
+ LD HL,00004H
+ JR Z,L5DEC ; (+008H)
+ CP 012H
+ LD HL,00010H
+ JP NZ,04B22H
+L5DEC: ADD HL,SP
+ LD SP,HL
+ JR L5DD1 ; (-01fH)
+
+L5DF0: LD DE,(05E1AH)
+ LD A,(L5E1C)
+ RST 018H
+ DB 03AH
+ LD B,000H
+ RST 018H
+ DB 02CH
+ CALL L5BA4
+ OR 0FFH
+ RST 018H
+ DB 044H
+ CALL L5C11
+ CALL L5C44
+ LD HL,L0000
+ ADD HL,SP
+ LD DE,L847D
+ LD BC,(08492H)
+ LDIR
+ LD SP,HL
+ POP HL
+ RET
+
+ NOP
+ NOP
+L5E1C: NOP
+L5E1D: LD DE,L5E37
+ LD B,005H
+ CALL L58D8
+ LD A,031H
+ CALL L5E2C
+ LD A,032H
+L5E2C: LD (05E3EH),A
+ LD DE,05E3CH
+ LD B,00CH
+ JP L58D8
+
+L5E37: DB "CMT:TRS?:0,$8C,13",0CDH; XCMT device config string
+ LD A,041H
+ RET Z
+ JP L4AEC
+
+L5E4F: XOR A
+ LD (L1091),A
+ CALL TEST1
+ DB FDPD
+ RET NZ
+ CALL TESTX
+ DB 050H
+ CALL L6AC6
+ LD A,050H
+ LD (L1091),A
+ CP A
+ RET
+
+L5E66: LD DE,L849C
+ LD B,000H
+ PUSH DE
+ RST 018H
+ DB 016H
+ POP DE
+ RET
+
+L5E70: CALL HLFTCH
+L5E73: CP 02CH
+ JR L5E84 ; (+00dH)
+
+L5E77: INC HL
+L5E78: CALL HLFTCH
+L5E7B: CP 028H
+ JR L5E84 ; (+005H)
+
+L5E7F: CALL HLFTCH
+L5E82: CP 029H
+L5E84: INC HL
+ RET Z
+ JP L4AEC
+
+L5E89: LD A,(DE)
+ CP 020H
+ INC DE
+ JR Z,L5E89 ; (-006H)
+ RET
+
+L5E90: LD HL,L6112
+L5E93: LD BC,00005H
+ LDIR
+ RET
+
+L5E99: CALL L7967
+ LD A,E
+ OR D
+ RET Z
+ BIT 7,D
+ LD A,07FH
+ JR Z,L5EAE ; (+009H)
+ LD A,D
+ CPL
+ LD D,A
+ LD A,E
+ CPL
+ LD E,A
+ INC DE
+ LD A,0FFH
+L5EAE: LD B,091H
+L5EB0: DEC B
+ BIT 7,D
+ JR NZ,L5EBB ; (+006H)
+ RL E
+ RL D
+ JR L5EB0 ; (-00bH)
+
+L5EBB: LD (HL),B
+ INC HL
+ AND D
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ DEC HL
+ DEC HL
+ RET
+
+L5EC4: CP 030H
+ RET C
+ CP 03AH
+ CCF
+ RET
+
+L5ECB: CP 05FH
+ RET Z
+ CP 030H
+ RET C
+ CP 05BH
+ CCF
+ RET C
+ CP 03AH
+ CCF
+ RET NC
+ CP 041H
+ RET
+
+L5EDC: CALL L7967
+ LD (L6301),A
+ LD (L6302),A
+ LD (L6303),A
+ LD (05F83H),A
+ LD A,005H
+ LD (L84CE),A
+L5EF0: CALL L5E89
+ CP 02BH
+ JR Z,L5EF0 ; (-007H)
+ CP 02DH
+ JR NZ,L5F01 ; (+006H)
+ CALL L5EF0
+ JP L7972
+
+L5F01: CP 024H
+ JR NZ,L5F11 ; (+00cH)
+ PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 014H
+ EX (SP),HL
+ CALL L5E99
+ POP DE
+ LD A,005H
+ RET
+
+L5F11: CP 030H
+ JR NZ,L5F1B ; (+006H)
+ LD A,(DE)
+ INC DE
+ JR L5F11 ; (-008H)
+
+L5F19: LD A,(DE)
+ INC DE
+L5F1B: CP 020H
+ JR Z,L5F19 ; (-006H)
+ CP 02EH
+ JR Z,L5F3E ; (+01bH)
+ CALL L5EC4
+ JR C,L5F78 ; (+050H)
+ SUB 030H
+ CALL L60AA
+ CALL L6014
+ LD A,001H
+ LD (L6302),A
+ LD A,(L6301)
+ INC A
+ LD (L6301),A
+ JR L5F19 ; (-025H)
+
+L5F3E: LD A,001H
+ LD (05F83H),A
+ LD C,A
+L5F44: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L5F44 ; (-006H)
+ CALL L5EC4
+ JR C,L5F70 ; (+021H)
+ INC C
+ SUB 030H
+ JR Z,L5F5B ; (+007H)
+ PUSH AF
+ LD A,001H
+ LD (L6302),A
+ POP AF
+L5F5B: PUSH AF
+ LD A,(L6302)
+ LD B,A
+ LD A,(L6301)
+ ADD A,B
+ LD (L6301),A
+ POP AF
+ CALL L60AA
+ CALL L6014
+ JR L5F44 ; (-02cH)
+
+L5F70: DEC C
+ JR Z,L5F78 ; (+005H)
+ CALL L5FFE
+ JR L5F70 ; (-008H)
+
+L5F78: CP 045H
+ JR Z,L5F89 ; (+00dH)
+L5F7C: DEC DE
+ LD A,(L6303)
+ OR A
+ RET NZ
+ LD A,000H
+ OR A
+ RET NZ
+ LD A,005H
+ RET
+
+L5F89: LD A,(DE)
+ CP 02DH
+ JR Z,L5F97 ; (+009H)
+ CP 02BH
+ JR Z,L5F97 ; (+005H)
+ CALL L5EC4
+ JR C,L5F7C ; (-01bH)
+L5F97: LD A,001H
+ LD (05F83H),A
+ PUSH HL
+ LD HL,L7BB3
+ LD (05FF7H),HL
+ LD HL,L0000
+ LD A,(DE)
+ INC DE
+ CP 02BH
+ JR Z,L5FB8 ; (+00cH)
+ CP 02DH
+ JR NZ,L5FBA ; (+00aH)
+ PUSH HL
+ LD HL,L7C9E
+ LD (05FF7H),HL
+ POP HL
+L5FB8: LD A,(DE)
+ INC DE
+L5FBA: SUB 030H
+ JR C,L5FDA ; (+01cH)
+ CP 00AH
+ JR NC,L5FDA ; (+018H)
+ PUSH DE
+ CALL L600F
+ LD E,L
+ LD D,H
+ CALL L600F
+ CALL L600F
+ CALL L600B
+ LD E,A
+ LD D,000H
+ CALL L600B
+ POP DE
+ JR L5FB8 ; (-022H)
+
+L5FDA: LD A,H
+ OR A
+ JR NZ,L6011 ; (+033H)
+ LD A,L
+ POP HL
+ PUSH DE
+ PUSH BC
+ PUSH HL
+ LD DE,L84CF
+ PUSH DE
+ CALL L5E90
+ POP HL
+ LD B,A
+ INC B
+ JR L5FF2 ; (+003H)
+
+L5FEF: CALL L60AA
+L5FF2: DJNZ L5FEF ; (-005H)
+ EX DE,HL
+ POP HL
+ CALL L0000
+ POP BC
+ POP DE
+ JP L5F7C
+
+L5FFE: PUSH AF
+ PUSH BC
+ PUSH DE
+ LD DE,L610D
+ CALL L7C9E
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L600B: ADD HL,DE
+ RET NC
+ JR L6011 ; (+002H)
+
+L600F: ADD HL,HL
+ RET NC
+L6011: JP 04AEFH
+
+L6014: PUSH DE
+ PUSH HL
+ LD HL,L84CF
+ LD E,A
+ LD D,000H
+ CALL L5E99
+ EX DE,HL
+ POP HL
+ PUSH BC
+ CALL L7985
+ POP BC
+ POP DE
+ RET
+
+L6028: LD A,005H
+ LD (L84CE),A
+ LD A,(HL)
+ OR A
+ JR Z,L6035 ; (+004H)
+ INC HL
+ LD A,(HL)
+ DEC HL
+ RLCA
+L6035: LD A,020H
+ JR NC,L603E ; (+005H)
+ CALL L7972
+ LD A,02DH
+L603E: PUSH AF
+ CALL L61AD
+ CALL L623A
+ POP AF
+ DEC DE
+ LD (DE),A
+ RET
+
+L6049: PUSH BC
+ CALL L7A1C
+ POP BC
+ RET
+
+L604F: CALL SKPDE
+ LD A,(HL)
+ CP 081H
+ JP C,L7967
+ LD A,(HL)
+ CP 0A0H
+ RET NC
+ INC HL
+ CALL L6086
+ PUSH HL
+ LD L,(HL)
+ LD B,000H
+L6064: SRL E
+ RR D
+ RR C
+ RR L
+ INC A
+ INC B
+ CP 0A0H
+ JR NZ,L6064 ; (-00eH)
+L6072: SLA L
+ RL C
+ RL D
+ RL E
+ DJNZ L6072 ; (-00aH)
+ LD A,L
+ POP HL
+ LD (HL),A
+ DEC HL
+ LD (HL),C
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ RET
+
+L6086: LD E,(HL)
+ INC HL
+L6088: LD D,(HL)
+ INC HL
+ LD C,(HL)
+ INC HL
+ RET
+
+L608D: LD A,(HL)
+ CP 081H
+ RET C
+ PUSH DE
+ PUSH HL
+ LD DE,L60A5
+ PUSH DE
+ CALL L5E93
+ POP HL
+ CALL L604F
+ EX DE,HL
+ POP HL
+ CALL L797C
+ POP DE
+ RET
+
+L60A5: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L60AA: PUSH AF
+ PUSH BC
+ PUSH DE
+ LD DE,L610D
+ CALL L7BB3
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L60B7: INC HL
+ BIT 7,(HL)
+ JR Z,L60C7 ; (+00bH)
+ CALL L60C7
+ LD A,H
+ CPL
+ LD H,A
+ LD A,L
+ CPL
+ LD L,A
+ INC HL
+ RET
+
+L60C7: DEC HL
+ LD A,(HL)
+ CP 091H
+ JP NC,04AEFH
+ CP 081H
+ JR C,L60E5 ; (+013H)
+ PUSH AF
+ INC HL
+ LD A,(HL)
+ INC HL
+ LD L,(HL)
+ LD H,A
+ POP AF
+ SET 7,H
+L60DB: CP 090H
+ RET Z
+ INC A
+ SRL H
+ RR L
+ JR L60DB ; (-00aH)
+
+L60E5: CCF
+ LD HL,L0000
+ RET
+
+L60EA: SBC A,E
+ LD A,0BCH
+ JR NZ,L60EF ; (+000H)
+L60EF: SBC A,B
+ JR L6088 ; (-06aH)
+
+ ADD A,B
+ NOP
+ SUB H
+ LD (HL),H
+ INC H
+ NOP
+ NOP
+ SUB C
+ LD B,E
+ LD D,B
+ NOP
+ NOP
+ ADC A,(HL)
+ INC E
+ LD B,B
+ NOP
+ NOP
+ ADC A,D
+ LD A,D
+ NOP
+ NOP
+ NOP
+ ADD A,A
+ LD C,B
+ NOP
+ NOP
+ NOP
+L610D: ADD A,H
+ JR NZ,L6110 ; (+000H)
+L6110: NOP
+ NOP
+L6112: ADD A,C
+ NOP
+ NOP
+ NOP
+ NOP
+ LD A,L
+ LD C,H
+ CALL Z,0CDCCH
+L611C: LD H,(HL)
+ DEC HL
+ CALL Z,L1277
+L6121: LD HL,(L6304)
+ LD B,000H
+L6126: LD DE,L610D
+ CALL L6049
+ JR C,L6134 ; (+006H)
+ CALL L5FFE
+ INC B
+ JR L6126 ; (-00eH)
+
+L6134: LD DE,L6112
+ CALL L6049
+ JR NC,L6142 ; (+006H)
+ CALL L60AA
+ DEC B
+ JR L6134 ; (-00eH)
+
+L6142: PUSH BC
+ CALL L61AD
+ CALL L623A
+ POP BC
+ PUSH DE
+ EX DE,HL
+L614C: LD A,(HL)
+ OR A
+ JR Z,L6153 ; (+003H)
+ INC HL
+ JR L614C ; (-007H)
+
+L6153: DEC HL
+ LD A,(HL)
+ INC HL
+ CP 030H
+ JR NZ,L615C ; (+002H)
+ INC B
+ DEC HL
+L615C: LD A,045H
+ LD (HL),A
+ INC HL
+ LD A,B
+ LD B,02BH
+ BIT 7,A
+ JR Z,L616B ; (+004H)
+ NEG
+ LD B,02DH
+L616B: LD (HL),B
+ INC HL
+ LD (HL),030H
+L616F: SUB 00AH
+ JR C,L6176 ; (+003H)
+ INC (HL)
+ JR L616F ; (-007H)
+
+L6176: ADD A,03AH
+ INC HL
+ LD (HL),A
+ INC HL
+ LD (HL),000H
+ POP DE
+ RET
+
+L617F: PUSH HL
+ CALL L60B7
+ LD DE,L84A7
+ PUSH DE
+ LD B,001H
+ RST 018H
+ DB 016H
+ POP HL
+ LD A,030H
+ LD B,005H
+L6190: CP (HL)
+ JR NZ,L6198 ; (+005H)
+ INC HL
+ DJNZ L6190 ; (-006H)
+ JR L61A1 ; (+009H)
+
+L6198: LD A,B
+ LD (L6301),A
+ LD A,001H
+ LD (L6302),A
+L61A1: LD A,02EH
+ LD (L84AC),A
+ POP HL
+ CALL L608D
+ JP L61FD
+
+L61AD: LD (L6304),HL
+ XOR A
+ LD (L6301),A
+ LD (L6302),A
+ PUSH HL
+ LD HL,L84A3
+ LD (HL),0FFH
+ LD B,021H
+ LD A,030H
+L61C1: INC HL
+ LD (HL),A
+ DJNZ L61C1 ; (-004H)
+ LD A,02EH
+ LD (L84AC),A
+ POP HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD DE,L60EA
+ CALL L7A1C
+ CCF
+ RET C
+ LD DE,L611C
+ CALL L7A1C
+ RET C
+ LD DE,L84D7
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD A,(HL)
+ CP 081H
+ JR C,L61FD ; (+013H)
+ CP 090H
+ JP C,L617F
+ LD IX,L84A4
+ LD DE,L60EF
+ CALL L62C4
+ CALL L62F8
+ RET NC
+L61FD: LD IX,L84AD
+L6201: LD DE,L60EA
+ PUSH BC
+ PUSH IX
+ CALL L7BB3
+ POP IX
+ POP BC
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ CALL L62C4
+ CALL L62F8
+ JR C,L6201 ; (-019H)
+ RET
+
+L621B: LD A,005H
+ LD (L84CE),A
+ PUSH HL
+ LD DE,L84DF
+ PUSH DE
+ CALL L5E93
+ POP HL
+ CALL L61AD
+ CALL L6237
+ POP HL
+ RET
+
+L6231: LD DE,L84AC
+ LD (DE),A
+ DEC DE
+ RET
+
+L6237: JP C,L6121
+L623A: LD HL,(L6304)
+ LD A,(HL)
+ OR A
+ JR Z,L6231 ; (-010H)
+ LD DE,L84A4
+ DEC DE
+ EX DE,HL
+ LD DE,00001H
+L6249: INC HL
+ LD A,(HL)
+ CP 02EH
+ JR NZ,L6254 ; (+005H)
+ LD DE,L0000
+ JR L6249 ; (-00bH)
+
+L6254: CP 030H
+ JR Z,L6249 ; (-00fH)
+ ADD HL,DE
+ LD DE,00008H
+ ADD HL,DE
+ LD A,(HL)
+L625E: LD (HL),030H
+ CP 035H
+ JR C,L6273 ; (+00fH)
+L6264: DEC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L6264 ; (-006H)
+ INC A
+ JR Z,L62AD ; (+040H)
+ LD (HL),A
+ CP 03AH
+ JR Z,L625E ; (-014H)
+ INC HL
+L6273: LD DE,L84AC
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ JR C,L6282 ; (+005H)
+ LD HL,L84AC
+ JR L6299 ; (+017H)
+
+L6282: DEC HL
+ LD A,(HL)
+ CP 02EH
+ DEC HL
+ JR Z,L6298 ; (+00fH)
+ INC HL
+ CP 030H
+ JR Z,L6273 ; (-01bH)
+ PUSH HL
+ LD DE,L84B5
+ SBC HL,DE
+ POP HL
+ JP NC,L6121
+L6298: INC HL
+L6299: LD (HL),000H
+ LD DE,L84A4
+L629E: LD A,(DE)
+ CP 030H
+ JR NZ,L62A6 ; (+003H)
+ INC DE
+ JR L629E ; (-008H)
+
+L62A6: OR A
+ RET NZ
+ DEC DE
+ LD A,030H
+ LD (DE),A
+ RET
+
+L62AD: LD HL,L849C
+ LD DE,L62BE
+ PUSH BC
+ LD BC,L0006
+ LDIR
+ POP BC
+ LD DE,L849C
+ RET
+
+L62BE: LD SP,L2B45
+ JR NC,L62FB ; (+038H)
+ NOP
+L62C4: LD A,(DE)
+ CP 07DH
+ RET Z
+L62C8: CALL L7A1C
+ JR C,L62E0 ; (+013H)
+ INC (IX+000H)
+ PUSH IX
+ PUSH BC
+ CALL L797C
+ POP BC
+ POP IX
+ LD A,001H
+ LD (L6302),A
+ JR L62C8 ; (-018H)
+
+L62E0: INC IX
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ LD A,(L6302)
+ LD B,A
+ LD A,(L6301)
+ ADD A,B
+ LD (L6301),A
+ CALL L62F8
+ RET NC
+ JR L62C4 ; (-034H)
+
+L62F8: LD A,(HL)
+ OR A
+ RET Z
+L62FB: LD A,(L6301)
+ CP 009H
+ RET
+
+L6301: NOP
+L6302: NOP
+L6303: NOP
+L6304: NOP
+ NOP
+L6306: NOP
+ NOP
+L6308: NOP
+ NOP
+L630A: LD HL,(L6308)
+ PUSH DE
+L630E: LD A,(HL)
+ OR A
+ JP Z,04AF2H
+ CALL L63AC
+ JR Z,L631D ; (+005H)
+ LD (BC),A
+ INC BC
+ INC HL
+ JR L630E ; (-00fH)
+
+L631D: EX AF,AF'
+ LD A,(L84CE)
+ CP 003H
+ JP NZ,L63D5
+ EX AF,AF'
+ CP 021H
+ JP Z,L6334
+ CP 026H
+ JP Z,L635B
+ JP 04AF5H
+
+L6334: EX (SP),HL
+ PUSH BC
+ CALL L6E7E
+ OR A
+ LD A,020H
+ JR Z,L633F ; (+001H)
+ LD A,(DE)
+L633F: POP BC
+ LD (BC),A
+ INC BC
+L6342: POP HL
+ INC HL
+L6344: LD A,(HL)
+ OR A
+ JR Z,L6352 ; (+00aH)
+ CALL L63AC
+ JR Z,L6355 ; (+008H)
+ LD (BC),A
+ INC BC
+ INC HL
+ JR L6344 ; (-00eH)
+
+L6352: LD HL,(L6306)
+L6355: LD (L6308),HL
+ XOR A
+ LD (BC),A
+ RET
+
+L635B: LD D,002H
+L635D: INC HL
+ LD A,(HL)
+ CP 026H
+ JR Z,L636B ; (+008H)
+ INC D
+ CP 020H
+ JR Z,L635D ; (-00bH)
+ JP 04AF2H
+
+L636B: EX (SP),HL
+ LD A,(HL)
+ CP D
+ JR C,L6385 ; (+015H)
+ INC HL
+ CALL INDRCT
+ PUSH BC
+ LD BC,(STRST)
+ ADD HL,BC
+ POP BC
+L637B: LD A,(HL)
+ LD (BC),A
+ INC BC
+ INC HL
+ DEC D
+ JR NZ,L637B ; (-007H)
+ JP L6342
+
+L6385: LD E,(HL)
+ INC HL
+ CALL INDRCT
+ LD A,E
+ OR A
+ JR Z,L63A2 ; (+014H)
+ PUSH BC
+ LD BC,(STRST)
+ ADD HL,BC
+ POP BC
+L6395: LD A,(HL)
+ LD (BC),A
+ INC BC
+ INC HL
+ DEC E
+ JR Z,L63A6 ; (+00aH)
+ DEC D
+ JR NZ,L6395 ; (-00aH)
+ JP L6342
+
+L63A2: LD A,020H
+ LD (BC),A
+ INC BC
+L63A6: DEC D
+ JR NZ,L63A2 ; (-007H)
+ JP L6342
+
+L63AC: CALL CHKACC
+ INC B
+ LD HL,L2326
+ DEC HL
+ RET Z
+ LD E,A
+ CP 02AH
+ JR Z,L63CF ; (+015H)
+ CALL L65AC
+ JR Z,L63CF ; (+010H)
+ CP 02EH
+ LD E,023H
+ JR Z,L63CF ; (+00aH)
+ CP 0C4H
+ RET NZ
+ INC HL
+ LD A,(HL)
+ OR A
+ JP Z,04AF2H
+ RET
+
+L63CF: INC HL
+ LD A,(HL)
+ CP E
+ DEC HL
+ LD A,(HL)
+ RET
+
+L63D5: XOR A
+ LD (0651CH),A
+ LD (0656CH),A
+ LD (L6554),A
+ LD (06512H),A
+ LD (064CCH),A
+ LD (064F9H),A
+ LD (06517H),A
+ LD (064C5H),A
+ DEC A
+ LD (064C2H),A
+ EX AF,AF'
+ LD D,000H
+ CP 023H
+ JP Z,L6431
+ CP 02AH
+ JP Z,L6412
+ CALL L65AC
+ JP Z,L6423
+ CP 02EH
+ JP Z,L6433
+ CP 02BH
+ JP Z,L642C
+ JP 04AF5H
+
+L6412: LD A,001H
+ LD (0656CH),A
+ INC HL
+ INC D
+ INC HL
+ INC D
+ LD A,(HL)
+ CALL L65AC
+ JR NZ,L6433 ; (+012H)
+ JR L6425 ; (+002H)
+
+L6423: INC HL
+ INC D
+L6425: INC HL
+ INC D
+ LD (L6554),A
+ JR L6433 ; (+007H)
+
+L642C: LD A,001H
+ LD (0651CH),A
+L6431: INC HL
+ INC D
+L6433: EX DE,HL
+ DEC H
+L6435: INC H
+ LD A,(DE)
+ INC DE
+ CP 023H
+ JR Z,L6435 ; (-007H)
+ CP 02CH
+ JR NZ,L6447 ; (+007H)
+ LD A,001H
+ LD (064CCH),A
+ JR L6435 ; (-012H)
+
+L6447: CP 02EH
+ JR Z,L646E ; (+023H)
+ CP 02DH
+ JR NZ,L6457 ; (+008H)
+ LD A,001H
+ LD (06512H),A
+ INC DE
+ JR L6467 ; (+010H)
+
+L6457: CP 02BH
+ JR NZ,L6467 ; (+00cH)
+ LD A,(0651CH)
+ OR A
+ JR NZ,L6467 ; (+006H)
+ LD A,001H
+ LD (06517H),A
+ INC DE
+L6467: DEC DE
+ LD A,H
+ LD (064F9H),A
+ JR L64A1 ; (+033H)
+
+L646E: LD A,H
+ LD (064F9H),A
+ LD H,0FFH
+L6474: INC H
+ LD A,(DE)
+ INC DE
+ CP 023H
+ JR Z,L6474 ; (-007H)
+ CP 02DH
+ JR NZ,L6487 ; (+008H)
+ LD A,001H
+ LD (06512H),A
+ INC DE
+ JR L6497 ; (+010H)
+
+L6487: CP 02BH
+ JR NZ,L6497 ; (+00cH)
+ LD A,(0651CH)
+ OR A
+ JR NZ,L6497 ; (+006H)
+ LD A,001H
+ LD (06517H),A
+ INC DE
+L6497: DEC DE
+ LD A,H
+ LD (064C2H),A
+ JR L64A1 ; (+003H)
+
+L649E: POP DE
+ JR L64B3 ; (+012H)
+
+L64A1: LD H,004H
+ PUSH DE
+L64A4: LD A,(DE)
+ INC DE
+ CP 05EH
+ JR NZ,L649E ; (-00cH)
+ DEC H
+ JR NZ,L64A4 ; (-009H)
+ POP AF
+ LD A,001H
+ LD (064C5H),A
+L64B3: POP HL
+ PUSH DE
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ LD (06549H),A
+ LD A,(064F9H)
+ LD D,A
+ LD A,000H
+ LD E,A
+ LD A,000H
+ PUSH BC
+ CALL L65BE
+ POP BC
+ LD A,000H
+ OR A
+ JR Z,L6511 ; (+041H)
+ PUSH BC
+ PUSH DE
+ LD A,(064F9H)
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ LD DE,L849C
+ LD C,000H
+ DEC HL
+L64DF: LD B,003H
+L64E1: LD A,(HL)
+ CP 020H
+ JR Z,L64F8 ; (+012H)
+ INC C
+ LD (DE),A
+ INC DE
+ DEC HL
+ DJNZ L64E1 ; (-00bH)
+ LD A,(HL)
+ CP 020H
+ JR Z,L64F8 ; (+007H)
+ LD A,02CH
+ LD (DE),A
+ INC DE
+ INC C
+ JR L64DF ; (-019H)
+
+L64F8: LD A,000H
+ CP C
+ JP C,04AEFH
+ LD B,C
+ LD L,A
+ LD H,000H
+ POP DE
+ PUSH DE
+ ADD HL,DE
+ LD DE,L849C
+ DEC HL
+L6509: LD A,(DE)
+ LD (HL),A
+ DEC HL
+ INC DE
+ DJNZ L6509 ; (-006H)
+ POP DE
+ POP BC
+L6511: LD A,000H
+ OR A
+ JR NZ,L6553 ; (+03dH)
+ LD A,000H
+ OR A
+ JR NZ,L6553 ; (+038H)
+ LD A,000H
+ OR A
+ JR NZ,L6548 ; (+028H)
+ LD A,(06549H)
+ RLCA
+ JR NC,L6553 ; (+02dH)
+ LD A,(DE)
+ CP 020H
+ LD H,02DH
+ JR Z,L6532 ; (+005H)
+ CP 030H
+ JP NZ,04AEFH
+L6532: PUSH DE
+L6533: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L6533 ; (-006H)
+ CP 030H
+ JR Z,L6533 ; (-00aH)
+ OR A
+ JR NZ,L6541 ; (+001H)
+ DEC DE
+L6541: DEC DE
+ DEC DE
+ LD A,H
+ LD (DE),A
+ POP DE
+ JR L6553 ; (+00bH)
+
+L6548: LD A,000H
+ RLCA
+ LD H,02BH
+ JR NC,L6532 ; (-01dH)
+ LD H,02DH
+ JR L6532 ; (-021H)
+
+L6553: DB 03EH
+L6554: NOP
+ OR A
+ JR Z,L656B ; (+013H)
+ LD A,(DE)
+ CP 020H
+ JR NZ,L656B ; (+00eH)
+ PUSH DE
+L655E: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L655E ; (-006H)
+ DEC DE
+ DEC DE
+ LD A,(L6554)
+ LD (DE),A
+ POP DE
+L656B: LD A,000H
+ OR A
+ JR Z,L657D ; (+00dH)
+ PUSH DE
+L6571: LD A,(DE)
+ CP 020H
+ JR NZ,L657C ; (+006H)
+ LD A,02AH
+ LD (DE),A
+ INC DE
+ JR L6571 ; (-00bH)
+
+L657C: POP DE
+L657D: LD A,(DE)
+ OR A
+ JR Z,L6586 ; (+005H)
+ LD (BC),A
+ INC BC
+ INC DE
+ JR L657D ; (-009H)
+
+L6586: LD A,(06517H)
+ OR A
+ JR Z,L659A ; (+00eH)
+ LD A,(06549H)
+ RLCA
+ LD A,02BH
+L6592: JR NC,L6596 ; (+002H)
+ LD A,02DH
+L6596: LD (BC),A
+ INC BC
+ JR L65A8 ; (+00eH)
+
+L659A: LD A,(06512H)
+ OR A
+ JR Z,L65A8 ; (+008H)
+ LD A,(06549H)
+ RLCA
+ LD A,020H
+ JR L6592 ; (-016H)
+
+L65A8: POP HL
+ JP L6344
+
+L65AC: PUSH HL
+ LD HL,L0036
+ BIT 6,(HL)
+ POP HL
+ JR NZ,L65B8 ; (+003H)
+ CP 07DH
+ RET
+
+L65B8: CP FDPD
+ RET Z
+ CP 024H
+ RET
+
+L65BE: OR A
+ JP Z,L6649
+ PUSH DE
+ LD A,(HL)
+ OR A
+ JR Z,L6606 ; (+03fH)
+ PUSH HL
+ LD A,D
+ LD DE,L84D7
+ PUSH AF
+ CALL L5E90
+ POP AF
+ OR A
+ JR Z,L65DF ; (+00bH)
+ LD B,A
+ LD HL,L84D7
+ JR L65DD ; (+003H)
+
+L65DA: CALL L60AA
+L65DD: DJNZ L65DA ; (-005H)
+L65DF: POP HL
+ LD B,000H
+L65E2: LD DE,L84D7
+ CALL L6049
+ JR C,L65F0 ; (+006H)
+ CALL L5FFE
+ INC B
+ JR L65E2 ; (-00eH)
+
+L65F0: PUSH HL
+ LD HL,L84D7
+ CALL L5FFE
+ POP HL
+L65F8: LD DE,L84D7
+ CALL L6049
+ JR NC,L6606 ; (+006H)
+ CALL L60AA
+ DEC B
+ JR L65F8 ; (-00eH)
+
+L6606: POP DE
+ PUSH BC
+ CALL L6663
+ POP BC
+ PUSH DE
+ LD A,(DE)
+ CP 02EH
+ JR NZ,L6624 ; (+012H)
+ LD DE,L84AC
+ DEC DE
+ LD A,(DE)
+ CP 031H
+ POP DE
+ PUSH DE
+ JR NZ,L6640 ; (+023H)
+ EX DE,HL
+ INC HL
+ LD (HL),031H
+ DEC HL
+ JR L663E ; (+01aH)
+
+L6624: LD A,(DE)
+ CP 031H
+ JR NZ,L6640 ; (+017H)
+ EX DE,HL
+ INC HL
+ LD A,(HL)
+ DEC HL
+ CP 02EH
+ LD A,030H
+ JR Z,L6635 ; (+002H)
+ LD A,020H
+L6635: LD (HL),A
+L6636: INC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L6636 ; (-006H)
+ LD (HL),031H
+L663E: EX DE,HL
+ INC B
+L6640: LD A,(DE)
+ INC DE
+ OR A
+ JR NZ,L6640 ; (-005H)
+ DEC DE
+ JP L615C
+
+L6649: PUSH DE
+ CALL L6663
+ POP AF
+ OR A
+ RET NZ
+ PUSH HL
+ LD HL,L84AC
+ DEC HL
+ LD A,030H
+ CP (HL)
+L6658: JP NZ,04AEFH
+ DEC HL
+ LD A,020H
+ CP (HL)
+ JR NZ,L6658 ; (-009H)
+ POP HL
+ RET
+
+L6663: PUSH DE
+ CALL L61AD
+ JP C,04AEFH
+ POP HL
+ PUSH HL
+ LD H,000H
+ INC L
+ JR Z,L6672 ; (+001H)
+ DEC L
+L6672: LD DE,L84AD
+ ADD HL,DE
+ LD A,(HL)
+ LD (HL),000H
+ LD DE,L3036
+ CP 035H
+ JR C,L668F ; (+00fH)
+L6680: DEC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L6680 ; (-006H)
+ INC A
+ JP Z,04AEFH
+ LD (HL),A
+ CP 03AH
+ JR Z,0667AH ; (-015H)
+L668F: LD HL,L11A3
+ LD DE,L2000
+L6695: LD (HL),D
+ INC HL
+ DEC E
+ JR NZ,L6695 ; (-005H)
+ POP HL
+ PUSH HL
+ LD E,H
+ LD D,000H
+ LD HL,L11A4
+ ADD HL,DE
+ PUSH HL
+ LD HL,L84A3
+ LD (HL),020H
+ INC HL
+ LD D,007H
+L66AC: LD A,(HL)
+ CP 030H
+ JR NZ,L66B7 ; (+006H)
+ LD (HL),020H
+ INC HL
+ DEC D
+ JR NZ,L66AC ; (-00bH)
+L66B7: POP HL
+ PUSH HL
+ LD B,E
+ LD A,B
+ OR A
+ JR Z,L66D5 ; (+017H)
+ LD DE,L84AC
+L66C1: DEC HL
+ DEC DE
+ LD A,(DE)
+ LD (HL),A
+ CP 020H
+ JR Z,L66D5 ; (+00cH)
+ DJNZ L66C1 ; (-00aH)
+ DEC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L66D5 ; (+004H)
+ INC A
+ JP NZ,04AEFH
+L66D5: POP HL
+ POP DE
+ INC E
+ JR Z,L66E9 ; (+00fH)
+ LD B,E
+ LD DE,L84AD
+ LD (HL),02EH
+L66E0: INC HL
+ DEC B
+ JR Z,L66E9 ; (+005H)
+ LD A,(DE)
+ INC DE
+ LD (HL),A
+ JR L66E0 ; (-009H)
+
+L66E9: LD (HL),000H
+ LD DE,L11A4
+ RET
+
+L66EF: PUSH DE
+ PUSH BC
+ LD C,000H
+ DEC DE
+L66F4: INC DE
+L66F5: CALL L687B
+ OR A
+ JR Z,L672C ; (+031H)
+ CP 0FFH
+ JR Z,L6730 ; (+031H)
+ CP 060H
+ JP NC,L4AEC
+ CP 020H
+ JR C,L66F4 ; (-014H)
+ LD IX,L66F5
+ PUSH IX
+ CP 022H
+ JR Z,L674B ; (+039H)
+ CP 027H
+ JR Z,L673E ; (+028H)
+ CP 03FH
+ JR Z,L6737 ; (+01dH)
+ CP 02EH
+ JP Z,L689E
+ CP 024H
+ JP Z,L68B8
+ CALL L5EC4
+ JR C,L6773 ; (+04aH)
+ JP L6885
+
+L672C: LD (HL),A
+ POP BC
+ POP DE
+ RET
+
+L6730: LD (HL),LSE4
+ CALL L6757
+ JR L66F5 ; (-042H)
+
+L6737: LD A,08FH
+ CALL L6756
+ JR L67B4 ; (+076H)
+
+L673E: LD (HL),03AH
+ CALL L6757
+ LD (HL),027H
+ CALL L6758
+ JP L681B
+
+L674B: LD (HL),A
+ CALL L6757
+L674F: LD A,(DE)
+ OR A
+ RET Z
+ CP 022H
+ JR NZ,L674B ; (-00bH)
+L6756: LD (HL),A
+L6757: INC DE
+L6758: INC HL
+L6759: INC C
+ RET NZ
+ JP 04B01H
+
+L675E: POP BC
+ LD A,(DE)
+ CALL L5ECB
+ JR C,L6756 ; (-00fH)
+L6765: CALL L6756
+ LD A,(DE)
+ CP 024H
+ JR Z,L6756 ; (-017H)
+ CALL L5EC4
+ RET C
+ JR L6765 ; (-00eH)
+
+L6773: PUSH BC
+ LD BC,STMTWORDTBL
+ CALL L682A
+ JR NC,L67AA ; (+02eH)
+ LD BC,EXTWORDTBL
+ CALL L682A
+ LD C,0FEH
+ JR NC,L6790 ; (+00aH)
+ LD BC,FUNCWORDTBL
+ CALL L682A
+ LD C,0FFH
+ JR C,L675E ; (-032H)
+L6790: LD (HL),C
+ INC HL
+ LD (HL),A
+ POP BC
+ CALL L6759
+ CALL L6758
+ CP 0B4H
+ RET NZ
+ CALL L687B
+ CP 03DH
+ RET NZ
+ LD (HL),QDPC
+ CALL L6757
+ JR L67F0 ; (+046H)
+
+L67AA: POP BC
+ CP 0DFH
+ DB 020H
+ LD (BC),A
+ LD (HL),0A8H
+ CALL L6758
+L67B4: CP 097H
+ JR Z,L681B ; (+063H)
+ CP 094H
+ JR Z,L681B ; (+05fH)
+ CP 0C2H
+ JR Z,L6811 ; (+051H)
+ CP LSE2
+ JR Z,L67F0 ; (+02cH)
+ CP LSE0
+ RET NC
+ PUSH AF
+ CALL L687B
+ CP 02FH
+ JR NZ,L67DC ; (+00dH)
+ LD (HL),FDPD
+ CALL L6757
+ CALL L6A1D
+ CALL L6756
+ JR L67EC ; (+010H)
+
+L67DC: CP 023H
+ JR NZ,L67EC ; (+00cH)
+ CALL L6756
+ CALL L6A1D
+ CALL L5EC4
+ CALL NC,L6885
+L67EC: POP AF
+ CP 08DH
+ RET NC
+L67F0: CALL L687B
+ CP 022H
+ JR NZ,L67FC ; (+005H)
+ CALL L674B
+ JR L67F0 ; (-00cH)
+
+L67FC: CP 02CH
+ RET C
+ CP 02FH
+ JR C,L680C ; (+009H)
+ CALL L5EC4
+ RET C
+ CALL L68AF
+ JR L67F0 ; (-01cH)
+
+L680C: CALL L6756
+ JR L67F0 ; (-021H)
+
+L6811: DB 02BH
+ LD (HL),03AH
+ INC HL
+ LD (HL),A
+ CALL L6758
+ JR L67F0 ; (-02bH)
+
+L681B: LD A,(DE)
+ CALL L4141
+ RET Z
+ CALL L6756
+ CP 022H
+ CALL Z,L674F
+ JR L681B ; (-00fH)
+
+L682A: PUSH HL
+ PUSH DE
+ LD H,B
+ LD L,C
+ LD B,07FH
+L6830: POP DE
+ PUSH DE
+ INC B
+ LD A,(HL)
+ CP 0FFH
+ JR NZ,L683C ; (+004H)
+ POP DE
+ POP HL
+ SCF
+ RET
+
+L683C: CP 02EH
+ JR NZ,L6849 ; (+009H)
+ INC HL
+ DEC DE
+ LD A,(DE)
+ INC DE
+ CALL L5ECB
+ JR NC,L6868 ; (+01fH)
+L6849: LD A,(DE)
+ CP 020H
+ JR NZ,L685A ; (+00cH)
+ LD A,(HL)
+ AND 07FH
+ SUB 041H
+ CP 01AH
+ JR C,L6868 ; (+011H)
+ CALL L6A1C
+L685A: LD C,(HL)
+ INC HL
+ INC DE
+ CP 02EH
+ JR Z,L6870 ; (+00fH)
+ SUB C
+ JR Z,L6849 ; (-01bH)
+ CP 080H
+ JR Z,L6876 ; (+00eH)
+L6868: DEC HL
+L6869: BIT 7,(HL)
+ INC HL
+ JR Z,L6869 ; (-005H)
+ JR L6830 ; (-040H)
+
+L6870: LD A,B
+ CP 0E8H
+ JR NC,L6868 ; (-00dH)
+ CCF
+L6876: POP HL
+ POP HL
+ LD (HL),B
+ LD A,B
+ RET
+
+L687B: LD A,(DE)
+ CP 020H
+ RET NZ
+ LD (HL),A
+ CALL L6757
+ JR L687B ; (-00aH)
+
+L6885: EX AF,AF'
+ PUSH DE
+ CALL L6A1C
+ POP DE
+ CALL L5EC4
+ JR NC,L689E ; (+00eH)
+ CP 02EH
+ JR Z,L689E ; (+00aH)
+ CP 045H
+ JR Z,L689E ; (+006H)
+ EX AF,AF'
+ SUB 02FH
+ JP L689E
+
+L689E: PUSH BC
+ LD (HL),015H
+ INC HL
+ PUSH HL
+ CALL L5EDC
+ POP HL
+ LD BC,00005H
+ ADD HL,BC
+ LD A,006H
+ JR L68D2 ; (+023H)
+
+L68AF: PUSH BC
+ CALL L6A11
+ LD (HL),00BH
+ INC HL
+ JR L68CC ; (+014H)
+
+L68B8: LD (HL),A
+ INC DE
+ LD A,(DE)
+ RST 018H
+ DB 015H
+ JP C,L6758
+ PUSH BC
+ LD (HL),011H
+ INC HL
+ PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 014H
+ LD B,D
+ LD C,E
+ EX DE,HL
+ POP HL
+L68CC: LD A,003H
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+L68D2: POP BC
+ ADD A,C
+ JP C,04B01H
+ LD C,A
+L68D8: DEC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L68D8 ; (-006H)
+ INC DE
+ RET
+
+L68E0: PUSH HL
+ PUSH DE
+ PUSH BC
+ EXX
+ LD B,000H
+ EXX
+ LD C,000H
+L68E9: LD A,(HL)
+ OR A
+ JR Z,L691D ; (+030H)
+ LD BC,L68E9
+ PUSH BC
+ CP 027H
+ JR Z,L6937 ; (+042H)
+ INC HL
+ LD BC,STMTWORDTBL
+ CP 020H
+ JR C,L695F ; (+062H)
+ CP 022H
+ JR Z,L6948 ; (+047H)
+ CP 03AH
+ JR Z,L6955 ; (+050H)
+ CP 097H
+ JR Z,L6933 ; (+02aH)
+ CP 094H
+ JR Z,L6933 ; (+026H)
+ CP LSE4
+ JR Z,L6922 ; (+011H)
+ CP 0FEH
+ JR NC,L6927 ; (+012H)
+ CP 080H
+ JP NC,L69A3
+ JP L69C0
+
+L691D: LD (DE),A
+ POP BC
+ POP DE
+ POP HL
+ RET
+
+L6922: LD A,0FFH
+ JP L69C0
+
+L6927: LD BC,FUNCWORDTBL
+ JR NZ,L692F ; (+003H)
+ LD BC,EXTWORDTBL
+L692F: LD A,(HL)
+ INC HL
+ JR L69A3 ; (+070H)
+
+L6933: CALL L69A3
+ RET Z
+L6937: LD A,(HL)
+ CALL L4141
+ RET Z
+ CALL L69C0
+ LD A,(HL)
+ INC HL
+ CP 022H
+ CALL Z,L694B
+ JR L6937 ; (-011H)
+
+L6948: CALL L69C0
+L694B: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ JR NZ,L6948 ; (-00bH)
+ JR L69C0 ; (+06bH)
+
+L6955: LD (DE),A
+ LD A,(HL)
+ CP 0C2H
+ RET Z
+ CP 027H
+ RET Z
+ JR L69C3 ; (+064H)
+
+L695F: CP 015H
+ JR Z,L6993 ; (+030H)
+ CP 00BH
+ JR NC,L696C ; (+005H)
+ DEC A
+ OR 030H
+ JR L69C0 ; (+054H)
+
+L696C: PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ PUSH HL
+ CP 012H
+ JR Z,L6982 ; (+00cH)
+ CP 00CH
+ JR C,L6982 ; (+008H)
+ JR NZ,L69CF ; (+053H)
+ EX DE,HL
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L6982: EX DE,HL
+ CALL L5E66
+ LD B,D
+ LD C,E
+ POP HL
+ POP DE
+L698A: LD A,(BC)
+ OR A
+ RET Z
+ CALL L69C0
+ INC BC
+ JR L698A ; (-009H)
+
+L6993: PUSH HL
+ PUSH DE
+ CALL L621B
+ LD B,D
+ LD C,E
+ POP DE
+ POP HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ JR L698A ; (-019H)
+
+L69A3: CP 080H
+ JR Z,L69B1 ; (+00aH)
+ EX AF,AF'
+L69A8: LD A,(BC)
+ RLCA
+ INC BC
+ JR NC,L69A8 ; (-005H)
+ EX AF,AF'
+ DEC A
+ JR L69A3 ; (-00eH)
+
+L69B1: LD A,(BC)
+ BIT 7,A
+ JR NZ,L69BE ; (+008H)
+ CP 02EH
+ CALL NZ,L69C0
+ INC BC
+ JR L69B1 ; (-00dH)
+
+L69BE: AND 07FH
+L69C0: LD (DE),A
+ OR A
+ RET Z
+L69C3: INC DE
+ EXX
+ INC B
+ EXX
+ RET NZ
+ XOR A
+ LD (DE),A
+ DEC DE
+ EXX
+ DEC B
+ EXX
+ RET
+
+L69CF: LD A,024H
+ EX AF,AF'
+ EX DE,HL
+ CALL L69E0
+ LD B,D
+ LD C,E
+ POP HL
+ POP DE
+ EX AF,AF'
+ CALL L69C0
+ JR L698A ; (-056H)
+
+L69E0: LD DE,L84A8
+ PUSH DE
+ LD A,H
+ CALL L69F9
+ LD A,L
+ CALL L69F9
+ XOR A
+ LD (DE),A
+ POP DE
+ LD B,003H
+L69F1: LD A,(DE)
+ CP 030H
+ RET NZ
+ INC DE
+ DJNZ L69F1 ; (-007H)
+ RET
+
+L69F9: PUSH AF
+ RRCA
+ RRCA
+ RRCA
+ RRCA
+ AND 00FH
+ CALL L6A06
+ POP AF
+ AND 00FH
+L6A06: ADD A,030H
+ CP 03AH
+ JR C,L6A0E ; (+002H)
+ ADD A,007H
+L6A0E: LD (DE),A
+ INC DE
+ RET
+
+L6A11: PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 013H
+ LD B,D
+ LD C,E
+ EX DE,HL
+ POP HL
+ JP L68D8
+
+L6A1C: INC DE
+L6A1D: LD A,(DE)
+ CP 020H
+ JR Z,L6A1C ; (-006H)
+ RET
+
+L6A23: LD C,(HL)
+L6A24: CALL L6A2C
+ XOR A
+ LD (L1095),A
+ RET
+
+L6A2C: LD A,(L004D)
+ OR A
+ JP NZ,L4B3C
+ CALL TEST1
+ DB 047H
+ JR Z,L6A7C ; (+043H)
+ CALL TESTX
+ DB 054H
+ LD A,001H
+ LD (L1097),A
+ CALL TEST1
+ DB 04EH
+ JR Z,L6A52 ; (+00aH)
+ CALL TEST1
+ DB 04CH
+ JR Z,L6A52 ; (+004H)
+ CALL TESTX
+ DB 053H
+L6A52: LD (L6A23),A
+ CALL 05E48H
+ CALL L6A74
+L6A5B: LD A,001H
+ RST 018H
+ DB 006H
+ LD A,(L6A23)
+ CP 04EH
+ RET Z
+ CP 04CH
+ LD A,00BH
+ JR Z,L6A71 ; (+006H)
+ LD A,009H
+ RST 018H
+ DB 006H
+ RST 018H
+ DB 006H
+L6A71: RST 018H
+ DB 006H
+ RET
+
+L6A74: LD A,00AH
+ RST 018H
+ DB 006H
+ LD A,003H
+ JR L6A71 ; (-00bH)
+
+L6A7C: INC HL
+ CALL 05E48H
+ LD A,002H
+ LD (L1097),A
+ JR L6A71 ; (-016H)
+
+L6A87: CALL L6AC6
+ CALL L6E5F
+ LD A,E
+ OR A
+ RET Z
+ CP 0ECH
+ JR NC,L6A99 ; (+005H)
+ CP 015H
+ JP NC,04AF2H
+L6A99: CALL 05E48H
+ BIT 7,E
+ JR NZ,L6AA8 ; (+008H)
+L6AA0: LD A,00AH
+ RST 018H
+ DB 006H
+ DEC E
+ JR NZ,L6AA0 ; (-007H)
+ RET
+
+L6AA8: LD A,003H
+ RST 018H
+ DB 006H
+ INC E
+ JR NZ,L6AA8 ; (-007H)
+ RET
+
+L6AB0: PUSH HL
+ LD HL,L03E7
+ JR L6ABA ; (+004H)
+
+L6AB6: PUSH HL
+ LD HL,L01E0
+L6ABA: PUSH HL
+ ADD HL,DE
+ POP HL
+ JR C,L6AC4 ; (+005H)
+ SBC HL,DE
+ JP C,04AF2H
+L6AC4: POP HL
+ RET
+
+L6AC6: LD B,001H
+ JR L6ACC ; (+002H)
+
+L6ACA: LD B,002H
+L6ACC: LD A,(L1097)
+ CP B
+ RET Z
+ JP L4B3C
+
+L6AD4: LD C,044H
+ LD DE,04A0EH
+ LD DE,04D0EH
+ LD DE,0520EH
+ CALL L6ACA
+ LD A,C
+ LD (06B26H),A
+ CP 04DH
+ JR NC,L6B0C ; (+022H)
+ CALL TEST1
+ DB 025H
+ JR NZ,L6B0C ; (+01cH)
+ CALL L6E4B
+ LD A,E
+ DEC A
+ CP 010H
+ JP NC,04AF2H
+ DEC DE
+ LD A,04CH
+ RST 018H
+ DB 006H
+ CALL L6DE2
+ CALL L6B68
+ CALL L413E
+ RET Z
+ CALL L5E73
+L6B0C: CALL L6E5F
+ CALL L5E73
+ CALL L6AB6
+ PUSH DE
+ CALL L6E5F
+ CP 02CH
+ JR Z,L6B20 ; (+003H)
+ CALL 05E48H
+L6B20: CALL L6AB0
+ POP BC
+ PUSH DE
+ LD A,000H
+ RST 018H
+ DB 006H
+ LD E,C
+ LD D,B
+ CALL L6DE2
+ CALL L6B6C
+ POP DE
+ CALL L6DE2
+ CALL L6B68
+ CALL L413E
+ RET Z
+ INC HL
+ JR L6B0C ; (-033H)
+
+L6B3F: CALL L6E4B
+ LD A,E
+ CP 004H
+ JP NC,04AF2H
+ CALL 05E48H
+ LD A,(L1097)
+ CP 002H
+ JR Z,L6B5F ; (+00dH)
+ CALL L6A74
+ LD A,002H
+ RST 018H
+ DB 006H
+ CALL L6B5F
+ JP L6A5B
+
+L6B5F: LD A,043H
+ RST 018H
+ DB 006H
+ LD A,E
+ OR 030H
+ RST 018H
+ DB 006H
+L6B68: LD A,00DH
+ JR L6B6E ; (+002H)
+
+L6B6C: LD A,02CH
+L6B6E: RST 018H
+ DB 006H
+ RET
+
+L6B71: CALL L6ACA
+ CALL 05E48H
+ LD A,048H
+ JR L6B6E ; (-00dH)
+
+L6B7B: CALL L6ACA
+ CALL 05E48H
+ LD A,049H
+ JR L6B6E ; (-017H)
+
+L6B85: CALL L6ACA
+ CALL TEST1
+ DB 05BH
+ JR NZ,L6BC6 ; (+038H)
+ CALL L6E4B
+ CP 040H
+ JP NC,04AF2H
+ PUSH DE
+ CALL L5E70
+ CALL L6E4B
+ CP 004H
+ JP NC,04AF2H
+ PUSH DE
+ CALL TESTX
+ DB 05DH
+ POP BC
+ POP DE
+ PUSH BC
+ LD A,053H
+ RST 018H
+ DB 006H
+ CALL L6DE2
+ CALL L6B6C
+ POP DE
+ LD A,051H
+ RST 018H
+ DB 006H
+ CALL L6DE2
+ CALL L6B68
+ CALL L413E
+ RET Z
+ CALL L5E73
+L6BC6: CALL L6E6F
+ CALL L413E
+ JR Z,L6BD2 ; (+004H)
+ CALL L5E73
+ DEC HL
+L6BD2: LD A,B
+ OR A
+ JR Z,L6BE3 ; (+00dH)
+ LD A,050H
+ RST 018H
+ DB 006H
+L6BDA: LD A,(DE)
+ RST 018H
+ DB 006H
+ INC DE
+ DJNZ L6BDA ; (-006H)
+ CALL L6B68
+L6BE3: CALL L413E
+ RET Z
+ INC HL
+ JR L6BC6 ; (-024H)
+
+L6BEA: CALL L6ACA
+ CALL L6E4B
+ CP 002H
+ JP NC,04AF2H
+ PUSH AF
+ CALL L5E70
+ CALL L6E5F
+ PUSH DE
+ CALL L5E73
+ CALL L6E4B
+ OR A
+ JP Z,04AF2H
+ CALL 05E48H
+ LD A,058H
+ RST 018H
+ DB 006H
+ POP BC
+ POP AF
+ PUSH DE
+ PUSH BC
+ OR 030H
+ RST 018H
+ DB 006H
+ CALL L6B6C
+ POP DE
+ CALL L6AB0
+ CALL L6DE2
+ CALL L6B6C
+ POP DE
+ CALL L6DE2
+ JP L6B68
+
+L6C2A: CALL L6ACA
+ PUSH HL
+ LD DE,L0000
+ LD HL,L6DC4
+ CALL L5E99
+ LD DE,L0168
+ LD HL,L6DC9
+ CALL L5E99
+ LD HL,L610D
+ LD DE,L6DCE
+ CALL L5E93
+ POP HL
+ CALL L6E8A
+ CALL L5E73
+ PUSH HL
+ LD HL,L6DB5
+ EX DE,HL
+ CALL L5E93
+ POP HL
+ CALL L6E8A
+ CALL L5E73
+ PUSH HL
+ LD HL,L6DBA
+ EX DE,HL
+ CALL L5E93
+ POP HL
+ CALL L6E8A
+ PUSH HL
+ PUSH AF
+ LD HL,L6DBF
+ EX DE,HL
+ CALL L5E93
+ LD A,(06DC0H)
+ RLCA
+ JP C,04AF2H
+ POP AF
+ CP 02CH
+ JR NZ,L6CBA ; (+03aH)
+ POP HL
+ INC HL
+ CALL L6E8A
+ PUSH HL
+ PUSH AF
+ LD HL,L6DC4
+ EX DE,HL
+ CALL L5E93
+ POP AF
+ CP 02CH
+ JR NZ,L6CBA ; (+027H)
+ POP HL
+ INC HL
+ CALL L6E8A
+ PUSH HL
+ PUSH AF
+ LD HL,L6DC9
+ EX DE,HL
+ CALL L5E93
+ POP AF
+ CP 02CH
+ JR NZ,L6CBA ; (+014H)
+ POP HL
+ INC HL
+ CALL L6E8A
+ PUSH HL
+ LD HL,L6DCE
+ EX DE,HL
+ CALL L5E93
+ LD A,(06DCFH)
+ RLCA
+ JP C,04AF2H
+L6CBA: POP HL
+ CALL 05E48H
+ PUSH HL
+ LD HL,L6DC9
+ LD DE,L6DC4
+ LD A,(L6DCE)
+ OR A
+ CALL NZ,L7A1C
+ JP C,04AF2H
+ CALL L6D6B
+ LD HL,L6DD3
+ LD (06D43H),HL
+ LD HL,L6DD8
+ LD (06D4EH),HL
+ CALL 06D3FH
+ LD A,(L6DCE)
+ OR A
+ JR Z,L6D19 ; (+032H)
+L6CE7: LD HL,L6DC4
+ LD DE,L6DCE
+ CALL L7985
+ LD DE,L6DC9
+ CALL L7A1C
+ JR NC,L6D04 ; (+00cH)
+ CALL L6D6B
+ CALL L6D3C
+ RST 018H
+ DB 00EH
+ JR NZ,L6CE7 ; (-01bH)
+ POP HL
+ RET
+
+L6D04: CALL L6D0C
+ CALL L6D3C
+ POP HL
+ RET
+
+L6D0C: LD HL,L6DC9
+ LD DE,L6DC4
+ LD BC,00005H
+ LDIR
+ JR L6D6B ; (+052H)
+
+L6D19: LD HL,L6DB5
+ LD (06D43H),HL
+ LD HL,L6DBA
+ LD (06D4EH),HL
+ CALL L6D3C
+ CALL L6D0C
+ LD HL,L6DD3
+ LD (06D43H),HL
+ LD HL,L6DD8
+ LD (06D4EH),HL
+ CALL L6D3C
+ POP HL
+ RET
+
+L6D3C: LD A,044H
+ LD HL,L4D3E
+ PUSH AF
+ LD HL,L6DB5
+ CALL L60B7
+ PUSH HL
+ EX DE,HL
+ CALL L6AB0
+ LD HL,L6DBA
+ CALL L60B7
+ PUSH HL
+ EX DE,HL
+ CALL L6AB0
+ POP HL
+ POP DE
+ POP AF
+ RST 018H
+ DB 006H
+ PUSH HL
+ CALL L6DE2
+ CALL L6B6C
+ POP DE
+ CALL L6DE2
+ JP L6B68
+
+L6D6B: LD DE,(INTFAC)
+ LD HL,L6DC4
+ CALL L5E93
+ LD HL,(L107C)
+ CALL L817C
+ CALL L7FC2
+ LD DE,L6DBF
+ CALL L7BB3
+ LD DE,L6DB5
+ CALL L7985
+ LD DE,L6DD3
+ CALL L5E93
+ LD DE,(INTFAC)
+ LD HL,L6DC4
+ CALL L5E93
+ LD HL,(L107C)
+ CALL L817C
+ CALL L7FD2
+ LD DE,L6DBF
+ CALL L7BB3
+ LD DE,L6DBA
+ CALL L7985
+ LD DE,L6DD8
+ JP L5E93
+
+L6DB5: DS 5, 000H
+L6DBA: DS 5, 000H
+L6DBF: DS 5, 000H
+L6DC4: DS 5, 000H
+L6DC9: DS 5, 000H
+L6DCE: DS 5, 000H
+L6DD3: DS 5, 000H
+L6DD8: DS 10, 000H
+L6DE2: PUSH AF
+ PUSH HL
+ LD HL,(L107C)
+ CALL L5E99
+ CALL L6028
+ RST 018H
+ DB 017H
+L6DEF: LD A,(DE)
+ RST 018H
+ DB 006H
+ INC DE
+ DJNZ L6DEF ; (-006H)
+ POP HL
+ POP AF
+ RET
+
+L6DF8: CALL L6AC6
+ CALL 05E48H
+ LD A,004H
+ RST 018H
+ DB 006H
+ RET
+
+L6E03: CALL L6AC6
+ CALL L6E5F
+ LD A,E
+ OR A
+ JP Z,04AF2H
+ CP 049H
+ JP NC,04AF2H
+ CALL 05E48H
+ LD A,009H
+ RST 018H
+ DB 006H
+ RST 018H
+ DB 006H
+ CALL L6DE2
+ JP L6B68
+
+L6E22: CP 09DH
+ JR Z,L6E31 ; (+00bH)
+ CP 0A1H
+ JP NZ,L4AEC
+ XOR A
+L6E2C: LD (L004D),A
+ INC HL
+ RET
+
+L6E31: CALL L6AC6
+ LD A,(L6A23)
+ CP 04EH
+ JP NZ,L4B3C
+ LD A,(L004D)
+ OR A
+ JR NZ,L6E2C ; (-016H)
+ CALL L5285
+ LD A,016H
+ RST 018H
+ DB 003H
+ JR L6E2C ; (-01fH)
+
+L6E4B: CALL L6E5F
+L6E4E: LD A,D
+ OR A
+ JP NZ,04AF2H
+ LD A,E
+ RET
+
+L6E55: CALL L6E9C
+ DEC DE
+ DEC DE
+ DEC DE
+ DEC DE
+ DEC DE
+ JR L6E62 ; (+003H)
+
+L6E5F: CALL L6E8A
+L6E62: PUSH AF
+ PUSH HL
+ EX DE,HL
+ CALL L791F
+ CALL L60B7
+ EX DE,HL
+ POP HL
+ POP AF
+ RET
+
+L6E6F: CALL L6E8A
+ PUSH AF
+ CALL L7916
+ PUSH HL
+ EX DE,HL
+ CALL L6E7E
+ POP HL
+ POP AF
+ RET
+
+L6E7E: LD B,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ EX DE,HL
+ LD A,B
+ RET
+
+L6E8A: LD DE,(VARED)
+ LD (TMPEND),DE
+L6E92: LD DE,(INTFAC)
+ PUSH DE
+ CALL L6E9C
+ POP DE
+ RET
+
+L6E9C: PUSH DE
+ LD DE,(TMPEND)
+ CALL L74E8
+ POP DE
+ CALL L6EC0
+L6EA8: CP 0EAH
+ RET NZ
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L6EC0
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL 07E65H
+ POP HL
+ POP AF
+ JR L6EA8 ; (-018H)
+
+L6EC0: CALL L6EDB
+L6EC3: CP 0EBH
+ RET NZ
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L6EDB
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL 07E62H
+ POP HL
+ POP AF
+ JR L6EC3 ; (-018H)
+
+L6EDB: CALL L6EF6
+L6EDE: CP 0ECH
+ RET NZ
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L6EF6
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7E5F
+ POP HL
+ POP AF
+ JR L6EDE ; (-018H)
+
+L6EF6: CALL TEST1
+ DB 0EDH
+ JR NZ,L6F0B ; (+00fH)
+ CALL L6F0B
+ PUSH AF
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L7E4F
+ POP HL
+ POP AF
+ RET
+
+L6F0B: CALL L6F75
+L6F0E: CP 0EEH
+ RET C
+ PUSH AF
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L6F75
+ POP BC
+ EX (SP),HL
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7A1C
+ EX AF,AF'
+ POP AF
+ CP 0F6H
+ JR NZ,L6F48 ; (+01eH)
+ EX AF,AF'
+ JR C,L6F43 ; (+016H)
+L6F2D: LD BC,L0000
+L6F30: LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ XOR A
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ LD A,005H
+ LD (L84CE),A
+ POP AF
+ POP HL
+ JR L6F0E ; (-035H)
+
+L6F43: LD BC,08081H
+ JR L6F30 ; (-018H)
+
+L6F48: CP QDPD
+ JR NZ,L6F53 ; (+007H)
+ EX AF,AF'
+ JR Z,L6F2D ; (-022H)
+ JR C,L6F2D ; (-024H)
+ JR L6F43 ; (-010H)
+
+L6F53: CP QDPC
+ JR NZ,L6F5C ; (+005H)
+ EX AF,AF'
+ JR Z,L6F43 ; (-017H)
+ JR L6F2D ; (-02fH)
+
+L6F5C: CP QDPA
+ JR C,L6F65 ; (+005H)
+ EX AF,AF'
+ JR NC,L6F43 ; (-020H)
+ JR L6F2D ; (-038H)
+
+L6F65: CP 0F0H
+ JR C,L6F70 ; (+007H)
+ EX AF,AF'
+ JR Z,L6F43 ; (-029H)
+ JR C,L6F43 ; (-02bH)
+ JR L6F2D ; (-043H)
+
+L6F70: EX AF,AF'
+ JR Z,L6F2D ; (-046H)
+ JR L6F43 ; (-032H)
+
+L6F75: CALL L6FA0
+L6F78: CP 0F7H
+ RET C
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ JR Z,L6F92 ; (+010H)
+ CALL L6FA0
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L797C
+L6F8E: POP HL
+ POP AF
+ JR L6F78 ; (-01aH)
+
+L6F92: CALL L6FA0
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7985
+ JR L6F8E ; (-012H)
+
+L6FA0: CALL L6FCB
+L6FA3: CP FDPB
+ RET C
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ JR Z,L6FBD ; (+010H)
+ CALL L6FCB
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7EBB
+L6FB9: POP HL
+ POP AF
+ JR L6FA3 ; (-01aH)
+
+L6FBD: CALL L6FCB
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7EDA
+ JR L6FB9 ; (-012H)
+
+L6FCB: CALL L6FF6
+L6FCE: CP FDPD
+ RET C
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ JR Z,L6FE8 ; (+010H)
+ CALL L6FF6
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7BB3
+L6FE4: POP HL
+ POP AF
+ JR L6FCE ; (-01aH)
+
+L6FE8: CALL L6FF6
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7C9E
+ JR L6FE4 ; (-012H)
+
+L6FF6: CALL TEST1
+ DB 0F7H
+ JR Z,L6FF6 ; (-006H)
+ CP FDPA
+ JR NZ,L7006 ; (+006H)
+ INC HL
+ CALL L7006
+ JR L702F ; (+029H)
+
+L7006: CALL L703B
+L7009: CP 0FDH
+ RET NZ
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L7021
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7DD3
+ POP HL
+ POP AF
+ JR L7009 ; (-018H)
+
+L7021: CALL TEST1
+ DB 0F7H
+ JR Z,L7021 ; (-006H)
+ CP FDPA
+ JR NZ,L703B ; (+010H)
+ INC HL
+ CALL L703B
+L702F: PUSH AF
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L796F
+ POP HL
+ POP AF
+ RET
+
+L703B: CALL L413E
+ JP Z,L4AEC
+ CALL L7047
+ JP HLFTCH
+
+L7047: PUSH HL
+ LD HL,(L107E)
+ SCF
+ SBC HL,DE
+ JP C,04AFBH
+ POP HL
+ CP LSE4
+ JR Z,L7064 ; (+00eH)
+ CP 020H
+ JR NC,L70A4 ; (+04aH)
+L705A: INC HL
+ CP 015H
+ JR C,L7073 ; (+014H)
+ CALL L5E93
+ JR L706D ; (+009H)
+
+L7064: INC HL
+ PUSH HL
+ LD HL,0818FH
+ CALL L5E93
+ POP HL
+L706D: LD A,005H
+L706F: LD (L84CE),A
+ RET
+
+L7073: CP 00BH
+ JR NC,L7080 ; (+009H)
+ DEC A
+ JP M,L4AEC
+ LD B,000H
+ LD C,A
+ JR L7091 ; (+011H)
+
+L7080: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ CP 00CH
+ JR NZ,L7091 ; (+009H)
+ INC BC
+ INC BC
+ LD A,(BC)
+ INC BC
+ EX AF,AF'
+ LD A,(BC)
+ LD B,A
+ EX AF,AF'
+ LD C,A
+L7091: PUSH HL
+ PUSH DE
+ EX DE,HL
+ LD E,C
+ LD D,B
+ CALL L5E99
+ POP DE
+ POP HL
+ LD A,005H
+L709D: INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ JR L706F ; (-035H)
+
+L70A4: CP 022H
+ JR NZ,L70D7 ; (+02fH)
+ INC HL
+ PUSH HL
+ CALL L74D0
+ EX (SP),HL
+ PUSH HL
+ LD HL,(L107A)
+ PUSH BC
+ LD BC,(STRST)
+ OR A
+ SBC HL,BC
+ POP BC
+ EX DE,HL
+ LD (HL),B
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ POP DE
+ PUSH HL
+ LD HL,(L107A)
+ CALL L74DC
+ LD (L107A),HL
+ POP DE
+ POP HL
+ LD A,003H
+ LD (L84CE),A
+ RET
+
+L70D7: CP 028H
+ JR NZ,L70E2 ; (+007H)
+ INC HL
+ CALL L6E9C
+ JP L5E82
+
+L70E2: OR A
+ JP P,L76F5
+ CP 0E7H
+ INC HL
+ JR NZ,L70F0 ; (+005H)
+ LD A,0A8H
+ PUSH AF
+ JR L7125 ; (+035H)
+
+L70F0: CP 0FFH
+ JP NZ,L4AEC
+ LD A,(HL)
+ INC HL
+ CP 0A0H
+ JP Z,L71A5
+ CP 0C8H
+ JP NC,L4AEC
+ CP 0BAH
+ JR NC,L7155 ; (+050H)
+ PUSH AF
+ CP 0B3H
+ JR NC,L7146 ; (+03cH)
+ LD B,003H
+ CP 0AAH
+ JR Z,L7125 ; (+015H)
+ CP 0ABH
+ JR NC,L7125 ; (+011H)
+ LD B,005H
+ CP 088H
+ JR Z,L7140 ; (+026H)
+ CP 089H
+ JR NZ,L7125 ; (+007H)
+ CALL TEST1
+ DB 040H
+ LD (081A8H),A
+L7125: CALL L5E78
+L7128: PUSH BC
+ CALL L6E9C
+ CALL L5E82
+ POP AF
+ CALL L7912
+L7133: POP AF
+ PUSH DE
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L7155
+ POP HL
+ POP DE
+ RET
+
+L7140: CALL TEST1
+ DB 028H
+ JR Z,L7128 ; (-01eH)
+L7146: LD A,005H
+ LD (L84CE),A
+ PUSH HL
+ LD HL,L6112
+ CALL L5E93
+ POP HL
+ JR L7133 ; (-022H)
+
+L7155: PUSH HL
+ ADD A,A
+ LD L,A
+ LD H,000H
+ LD BC,L450A
+ ADD HL,BC
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ EX (SP),HL
+ RET
+
+L7164: EX DE,HL
+ LD HL,0FDF1H
+ ADD HL,SP
+ LD BC,(TMPEND)
+ OR A
+ SBC HL,BC
+ EX DE,HL
+ JR NC,L7186 ; (+013H)
+ XOR A
+ JR L7183 ; (+00dH)
+
+L7176: LD A,(L0054)
+ JR L7183 ; (+008H)
+
+L717B: LD A,(00055H)
+ JR L7183 ; (+003H)
+
+L7180: LD A,(L8485)
+L7183: LD E,A
+ LD D,000H
+L7186: LD A,005H
+ LD (L84CE),A
+ JP L5E99
+
+L718E: LD DE,(08487H)
+ CALL L5E99
+ INC HL
+ BIT 7,(HL)
+ DEC HL
+ RET Z
+ LD DE,L71A0
+ JP L7985
+
+L71A0: SUB C
+ NOP
+ NOP
+ NOP
+ NOP
+L71A5: CALL L5E78
+ LD B,000H
+L71AA: PUSH BC
+ PUSH DE
+ CALL L6E55
+ CALL L6E4E
+ POP DE
+ POP BC
+ PUSH AF
+ INC B
+ CALL TEST1
+ DB 02CH
+ JR Z,L71AA ; (-012H)
+ CALL L5E82
+ LD A,B
+ EXX
+ LD B,A
+ LD HL,(L107A)
+ CALL ADDHLA
+ LD D,H
+ LD E,L
+ CALL L74E8
+L71CD: DEC HL
+ POP AF
+ LD (HL),A
+ DJNZ L71CD ; (-005H)
+ EXX
+ LD A,B
+ EXX
+ LD B,A
+L71D6: LD (TMPEND),DE
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ PUSH HL
+ LD A,B
+ EXX
+ EX DE,HL
+ LD (HL),A
+ INC HL
+ POP BC
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ LD BC,L0003
+ ADD HL,BC
+L71EF: EX DE,HL
+ LD A,003H
+ LD (L84CE),A
+ RET
+
+L71F6: PUSH HL
+ CALL L60B7
+ CALL L69E0
+ RST 018H
+ DB 017H
+L71FF: LD A,B
+ OR A
+ JR Z,L7213 ; (+010H)
+ LD HL,(L107A)
+ PUSH HL
+ PUSH BC
+ CALL L74DC
+ POP BC
+ EX DE,HL
+ POP HL
+ EXX
+ POP DE
+ EXX
+ JR L71D6 ; (-03dH)
+
+L7213: POP HL
+ CALL L7967
+ JR L71EF ; (-02aH)
+
+L7219: PUSH HL
+ CALL L722A
+ LD B,A
+ LD C,A
+ OR A
+ LD A,020H
+ PUSH DE
+ CALL NZ,?SETDE
+ POP DE
+ LD B,C
+ JR L71FF ; (-02bH)
+
+L722A: CALL L60B7
+ LD DE,L11A4
+ LD A,H
+ OR A
+ JP NZ,04AF2H
+ LD A,L
+ RET
+
+L7237: PUSH HL
+ CALL L6028
+ LD A,(DE)
+ CP 020H
+ JR NZ,L7241 ; (+001H)
+ INC DE
+L7241: RST 018H
+ DB 017H
+ JR L71FF ; (-046H)
+
+L7245: CALL L5E78
+ CALL L5882
+ LD B,A
+ CALL L5E7F
+ LD A,B
+ PUSH HL
+ PUSH DE
+ RST 018H
+ DB 029H
+ LD DE,0FFFFH
+ JR C,L7261 ; (+008H)
+ INC HL
+ BIT 7,(HL)
+ JR NZ,L7261 ; (+003H)
+ LD DE,L0000
+L7261: POP HL
+ CALL L5E99
+ LD A,005H
+ LD (L84CE),A
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ POP HL
+ RET
+
+L7272: PUSH HL
+ CALL L6E7E
+ OR A
+ JR Z,L727A ; (+001H)
+ LD A,(DE)
+L727A: JR L7280 ; (+004H)
+
+L727C: PUSH HL
+ CALL L6E7E
+L7280: POP HL
+ JP L7183
+
+L7284: PUSH HL
+ CALL L6E7E
+ LD HL,(L107A)
+ PUSH HL
+ CALL L74DC
+ LD (HL),000H
+ POP DE
+ POP HL
+ JP L5EDC
+
+L7296: CALL L7312
+ CALL L5E82
+ CALL L730B
+ EX DE,HL
+ LD A,(HL)
+ CP C
+ JR NC,L72A5 ; (+001H)
+ LD C,A
+L72A5: LD (HL),C
+ LD BC,00005H
+L72A9: LD A,003H
+ ADD HL,BC
+ EX DE,HL
+ LD (L84CE),A
+ JP HLFTCH
+
+L72B3: CALL L7312
+ CALL L5E82
+ CALL L730B
+ EX DE,HL
+ LD A,(HL)
+ SUB C
+ JR NC,L72C3 ; (+002H)
+ XOR A
+ LD C,(HL)
+L72C3: LD (HL),C
+ INC HL
+ ADD A,(HL)
+ LD (HL),A
+ INC HL
+ JR NC,L72CB ; (+001H)
+ INC (HL)
+L72CB: LD BC,L0003
+ JR L72A9 ; (-027H)
+
+L72D0: CALL L7312
+ CALL L730B
+ OR A
+ JP Z,04AF2H
+ PUSH AF
+ CALL TEST1
+ DB 029H
+ LD A,0FFH
+ JR Z,L72F7 ; (+014H)
+ CALL L5E70
+ PUSH DE
+ EX DE,HL
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ CALL L6E55
+ CALL L5E82
+ CALL L6E4E
+ POP DE
+L72F7: POP BC
+ LD C,A
+ EX DE,HL
+ LD A,(HL)
+ SUB B
+ JR C,L7307 ; (+009H)
+ INC A
+ CP C
+ JR NC,L7303 ; (+001H)
+ LD C,A
+L7303: LD A,B
+ DEC A
+ JR L72C3 ; (-044H)
+
+L7307: XOR A
+ LD C,A
+ JR L72C3 ; (-048H)
+
+L730B: LD A,B
+ OR A
+ JP NZ,04AF2H
+ LD A,C
+ RET
+
+L7312: CALL L5E78
+ PUSH DE
+ CALL L6E9C
+ CALL L5E73
+ CALL L7916
+ CALL L6E55
+ LD C,E
+ LD B,D
+ POP DE
+ RET
+
+L7326: PUSH HL
+ PUSH DE
+ LD HL,(L107A)
+ PUSH HL
+ LD A,030H
+ LD B,006H
+ CALL ?SETHL
+ RST 018H
+ DB 025H
+ POP HL
+ OR A
+ JR Z,L733E ; (+005H)
+ INC (HL)
+ INC HL
+ INC (HL)
+ INC (HL)
+ DEC HL
+L733E: EX DE,HL
+ LD BC,08CA0H
+ CALL L73B5
+ LD BC,L0E10
+ CALL L73B5
+ CP 03AH
+ JR C,L7359 ; (+00aH)
+ SUB 00AH
+ DEC DE
+ LD (DE),A
+ DEC DE
+ LD A,(DE)
+ INC A
+ LD (DE),A
+ INC DE
+ INC DE
+L7359: DEC DE
+ DEC DE
+ LD A,(DE)
+ INC DE
+ LD B,A
+ LD A,(DE)
+ INC DE
+ LD C,A
+ LD A,B
+ CP 032H
+ JR NZ,L7377 ; (+011H)
+ LD A,C
+ CP 034H
+ JR NZ,L7377 ; (+00cH)
+ LD HL,(L107A)
+ LD A,030H
+ LD B,006H
+ CALL ?SETHL
+ JR L738D ; (+016H)
+
+L7377: LD BC,L0258
+ CALL L73B5
+ LD BC,0003CH
+ CALL L73B5
+ LD BC,0000AH
+ CALL L73B5
+ LD A,030H
+ ADD A,L
+ LD (DE),A
+L738D: LD HL,(L107A)
+ LD DE,L0006
+ EX DE,HL
+ ADD HL,DE
+ LD (L107A),HL
+ EX DE,HL
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ POP HL
+ LD (HL),006H
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ POP HL
+ LD A,003H
+ LD (L84CE),A
+ JP HLFTCH
+
+L73B5: OR A
+ SBC HL,BC
+ JR C,L73BF ; (+005H)
+ LD A,(DE)
+ INC A
+ LD (DE),A
+ JR L73B5 ; (-00aH)
+
+L73BF: ADD HL,BC
+ INC DE
+ RET
+
+L73C2: CALL TESTX
+ DB QDPC
+ CALL L6E6F
+ LD A,B
+ CP 006H
+ JP NZ,04AF2H
+ PUSH HL
+ PUSH DE
+ LD HL,L0000
+ CALL L7403
+ CP 018H
+ JP NC,04AF2H
+ CP 00CH
+ LD A,000H
+ JR C,L73EB ; (+009H)
+ PUSH DE
+ LD DE,L000C
+ OR A
+ SBC HL,DE
+ POP DE
+ INC A
+L73EB: PUSH AF
+ CALL L7403
+ CP 03CH
+ JP NC,04AF2H
+ CALL L7403
+ CP 03CH
+ JP NC,04AF2H
+ POP AF
+ EX DE,HL
+ RST 018H
+ DB 026H
+ POP DE
+ POP HL
+ RET
+
+L7403: PUSH DE
+ LD D,H
+ LD E,L
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,DE
+ LD D,H
+ LD E,L
+ ADD HL,HL
+ ADD HL,DE
+ ADD HL,HL
+ ADD HL,HL
+ POP DE
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JP C,04AF2H
+ CP 00AH
+ JP NC,04AF2H
+ PUSH BC
+ LD C,A
+ ADD A,A
+ ADD A,A
+ ADD A,C
+ ADD A,A
+ LD C,A
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JP C,04AF2H
+L742A: CP 00AH
+ JP NC,04AF2H
+ ADD A,C
+ LD C,A
+ LD B,000H
+ ADD HL,BC
+ POP BC
+ RET
+
+L7436: LD DE,(VARED)
+ LD (TMPEND),DE
+ LD DE,(INTFAC)
+L7442: PUSH DE
+ CALL L7495
+L7446: LD A,(HL)
+ CP 028H
+ JP Z,L74FB
+ PUSH HL
+ CALL L77B6
+ JR NC,L7458 ; (+006H)
+ LD A,C
+ LD C,L
+ LD B,H
+ POP HL
+ POP DE
+ RET
+
+L7458: LD A,(DE)
+ ADD A,C
+ ADD A,002H
+ PUSH BC
+ EX DE,HL
+ LD HL,(L107A)
+ PUSH HL
+ OR A
+ SBC HL,DE
+ INC HL
+ LD C,L
+ LD B,H
+ POP HL
+ PUSH DE
+ EX DE,HL
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ EX DE,HL
+ CALL L74E8
+ LDDR
+ LD E,A
+ LD D,000H
+ RST 018H
+ DB 01AH
+ POP HL
+ POP BC
+ LD DE,L11A4
+ LD (HL),C
+ INC HL
+ SCF
+ SBC A,C
+ LD B,A
+L7484: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L7484 ; (-006H)
+ PUSH HL
+ LD B,C
+ CALL ?CLRHL
+ LD (HL),A
+ LD A,C
+ POP BC
+ POP HL
+ POP DE
+ RET
+
+L7495: CALL HLFTCH
+ SUB 041H
+ CP 01AH
+ JP NC,L4AEC
+ LD DE,L11A4
+ LD B,000H
+L74A4: INC DE
+ LD A,(HL)
+ CALL L5ECB
+ JR C,L74B6 ; (+00bH)
+ LD (DE),A
+ INC B
+ LD A,B
+ CP 003H
+ JR C,L74B3 ; (+001H)
+ DEC B
+L74B3: INC HL
+ JR L74A4 ; (-012H)
+
+L74B6: LD DE,L11A4
+ EX DE,HL
+ LD (HL),B
+ EX DE,HL
+ LD C,005H
+ CP 024H
+ RET NZ
+ LD C,003H
+ INC HL
+ RET
+
+L74C5: LD HL,0FFFBH
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ ADD HL,DE
+ LD A,B
+ JP L7912
+
+L74D0: LD B,0FFH
+L74D2: INC B
+ LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ RET Z
+ JR L74D2 ; (-00aH)
+
+L74DC: LD A,B
+ OR A
+ RET Z
+ CALL LDHLDE
+ EX DE,HL
+ CALL L74E8
+ EX DE,HL
+ RET
+
+L74E8: PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ SBC HL,DE
+ POP HL
+ RET NC
+ JP L4B2C
+
+L74F4: LD DE,(INTFAC)
+ PUSH DE
+ JR L7503 ; (+008H)
+
+L74FB: XOR A
+ LD (L76F4),A
+ INC HL
+ LD (L76F2),HL
+L7503: LD B,000H
+ EXX
+ POP HL
+ PUSH HL
+ PUSH HL
+ LD HL,(L107A)
+ LD DE,L11A4
+ PUSH HL
+ LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ LD B,A
+ CALL L74DC
+ POP DE
+ LD (L107A),HL
+ LD HL,(L1076)
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX (SP),HL
+ PUSH HL
+ EXX
+L7526: POP DE
+ PUSH DE
+ PUSH BC
+ LD BC,(076F2H)
+ LD A,(L76F4)
+ PUSH BC
+ PUSH AF
+ LD BC,(0849CH)
+ PUSH BC
+ CALL L6E55
+ BIT 7,D
+ JP NZ,04AF2H
+ EX AF,AF'
+ POP BC
+ LD (0849CH),BC
+ POP AF
+ LD (L76F4),A
+ POP BC
+ LD (076F2H),BC
+ EX AF,AF'
+ INC HL
+ CP 029H
+ JR Z,L756C ; (+018H)
+ CP 02CH
+ JP NZ,L4AEC
+ POP BC
+ INC B
+ LD A,B
+ CP 004H
+ JP NC,04AF2H
+ EXX
+ POP HL
+ POP DE
+ EXX
+ PUSH DE
+ EXX
+ PUSH DE
+ PUSH HL
+ EXX
+ JR L7526 ; (-046H)
+
+L756C: POP BC
+ EXX
+ POP HL
+ POP DE
+ EXX
+ INC B
+ PUSH DE
+ PUSH HL
+ EXX
+ LD HL,(L1076)
+ ADD HL,DE
+ LD B,(HL)
+ INC B
+ LD DE,L11A4
+ CALL LDDEHL
+ EXX
+ SET 7,C
+ CALL L77B6
+ RES 7,C
+ JR NC,L75E1 ; (+056H)
+ LD A,B
+ CP (HL)
+ JP NZ,04AFEH
+ INC HL
+ EX DE,HL
+ POP HL
+ LD (L849C),HL
+ EXX
+ LD HL,L0000
+ EXX
+ EX DE,HL
+L759C: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX (SP),HL
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C8
+ EXX
+ PUSH HL
+ OR A
+ SBC HL,DE
+ JP NC,04AF2H
+ EXX
+ POP DE
+ CALL L76C4
+ EXX
+ POP HL
+ DJNZ L759C ; (-01cH)
+ PUSH HL
+ EXX
+ LD A,C
+ LD D,B
+ BIT 6,A
+ JR NZ,L75D4 ; (+014H)
+ AND 00FH
+ LD E,A
+ PUSH AF
+ CALL L76C8
+ PUSH HL
+ EXX
+ POP BC
+ POP AF
+ POP HL
+ ADD HL,BC
+ LD C,L
+ LD B,H
+L75CF: LD HL,(L849C)
+ POP DE
+ RET
+
+L75D4: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD C,L
+ LD B,H
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ AND 00FH
+ JR L75CF ; (-012H)
+
+L75E1: EXX
+ LD A,(L76F4)
+ OR A
+ JP Z,04AF2H
+ POP HL
+ LD (L849C),HL
+ EXX
+ LD DE,(TMPEND)
+ LD L,B
+ LD H,000H
+ ADD HL,HL
+ ADD HL,DE
+ EX DE,HL
+ INC DE
+ CALL L74E8
+ LD (HL),B
+ INC HL
+ EXX
+ LD HL,00001H
+ EXX
+L7603: POP DE
+ LD A,(L76F4)
+ OR A
+ JR NZ,L7616 ; (+00cH)
+ PUSH HL
+ EX DE,HL
+ LD DE,0000AH
+ SCF
+ SBC HL,DE
+ JP NC,04AF2H
+ POP HL
+L7616: INC DE
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C8
+ EXX
+ DJNZ L7603 ; (-021H)
+ DB 059H
+ LD D,000H
+ PUSH BC
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C8
+ PUSH HL
+ EXX
+ POP BC
+ PUSH BC
+ EX DE,HL
+ LD HL,(L107A)
+ LD L,(HL)
+ LD H,000H
+ ADD HL,HL
+ LD A,(L11A4)
+ ADD A,005H
+ ADD A,L
+ LD L,A
+ LD A,000H
+ ADC A,H
+ LD H,A
+ JR C,L764C ; (+005H)
+ ADD HL,BC
+ JR C,L764C ; (+002H)
+ PUSH HL
+ ADD HL,DE
+L764C: JP C,L4B2C
+ EX DE,HL
+ CALL L74E8
+ PUSH HL
+ EXX
+ POP HL
+ LD BC,(STRST)
+ DEC BC
+ OR A
+ SBC HL,BC
+ PUSH HL
+ EXX
+ POP BC
+ LDDR
+ POP DE
+ RST 018H
+ DB 01AH
+ POP BC
+ PUSH DE
+ EXX
+ POP DE
+ LD H,B
+ LD L,C
+ POP BC
+ LD A,C
+ OR 080H
+ LD (HL),A
+ INC HL
+ DEC DE
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,L11A4
+ LD A,(DE)
+ INC A
+ LD B,A
+ CALL LDHLDE
+ LD DE,(TMPEND)
+ LD A,(DE)
+ LD (HL),A
+ INC HL
+ INC DE
+ ADD A,A
+ LD B,A
+ CALL LDHLDE
+ PUSH HL
+ EXX
+ POP HL
+L7690: XOR A
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L7690 ; (-008H)
+ LD (HL),A
+ EXX
+ POP DE
+ LD A,(L76F4)
+ OR A
+ JR Z,L76A5 ; (+004H)
+ LD HL,(L849C)
+ RET
+
+L76A5: LD HL,(L76F2)
+ PUSH DE
+ JP L7503
+
+L76AC: LD A,0FFH
+ LD (L76F4),A
+L76B1: CALL L7495
+ LD A,(HL)
+ CALL L5E7B
+ CALL L74F4
+ CALL HLFTCH
+ CP 02CH
+ RET NZ
+ INC HL
+ JR L76B1 ; (-013H)
+
+L76C4: ADD HL,DE
+ RET NC
+ JR L76EF ; (+027H)
+
+L76C8: PUSH BC
+ EX DE,HL
+ LD C,L
+ LD A,H
+ LD HL,L0000
+ CALL L76D8
+ LD A,C
+ CALL L76D8
+ POP BC
+ RET
+
+L76D8: OR A
+ JR Z,L76E9 ; (+00eH)
+ LD B,008H
+L76DD: ADD HL,HL
+ JR C,L76EF ; (+00fH)
+ RLCA
+ JR NC,L76E6 ; (+003H)
+ ADD HL,DE
+ JR C,L76EF ; (+009H)
+L76E6: DJNZ L76DD ; (-00bH)
+ RET
+
+L76E9: LD A,H
+ LD H,L
+ LD L,000H
+ OR A
+ RET Z
+L76EF: JP 04AFBH
+
+L76F2: NOP
+ NOP
+L76F4: NOP
+L76F5: SUB 041H
+ CP 01AH
+ JP NC,L4AEC
+ LD BC,(07928H)
+ LD A,B
+ OR C
+ JR NZ,L7716 ; (+012H)
+ CALL L7442
+L7707: PUSH DE
+ PUSH HL
+ LD L,C
+ LD H,B
+ LD B,A
+ LD C,A
+ CALL LDDEHL
+ POP HL
+ LD A,C
+ POP DE
+ JP L709D
+
+L7716: PUSH DE
+ CALL L7495
+ PUSH HL
+ INC B
+ LD DE,L11A4
+ LD HL,(L107A)
+ CALL L74DC
+ LD B,000H
+ LD HL,(L7928)
+ CALL HLFTCH
+ CP QDPC
+ JR Z,L7760 ; (+02fH)
+ CP 028H
+ JR NZ,L775D ; (+028H)
+L7735: INC HL
+ INC B
+ PUSH BC
+ CALL L7495
+ LD A,C
+ POP DE
+ CP E
+ LD C,E
+ JR NZ,L7752 ; (+011H)
+ PUSH DE
+ LD C,B
+ INC C
+ PUSH HL
+ LD HL,(L107A)
+ LD DE,L11A4
+ CALL L7953
+ POP HL
+ POP BC
+ JR Z,L7776 ; (+024H)
+L7752: CALL HLFTCH
+ CP 029H
+ JR Z,L7760 ; (+007H)
+ CP 02CH
+ JR Z,L7735 ; (-028H)
+L775D: JP L4AEC
+
+L7760: LD HL,(L107A)
+ LD DE,L11A4
+ LD A,(HL)
+ LD (DE),A
+ LD B,A
+L7769: INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ DJNZ L7769 ; (-006H)
+ POP HL
+ POP DE
+ CALL L77B2
+ JR L7707 ; (-06fH)
+
+L7776: LD HL,(L792A)
+ CALL L5E78
+ DEC B
+ JR Z,L7797 ; (+018H)
+ DEC HL
+L7780: PUSH BC
+L7781: CALL L51A2
+ CALL L413E
+ JP Z,L4AEC
+ CP 029H
+ JP Z,L4AEC
+ CP 02CH
+ JR NZ,L7781 ; (-012H)
+ POP BC
+ DJNZ L7780 ; (-016H)
+ INC HL
+L7797: EX DE,HL
+ POP HL
+ EX (SP),HL
+ EX DE,HL
+ LD BC,(07928H)
+ PUSH BC
+ LD BC,L0000
+ LD (07928H),BC
+ CALL L6E9C
+ POP HL
+ LD (L7928),HL
+ POP HL
+ JP HLFTCH
+
+L77B2: PUSH DE
+ JP L7446
+
+L77B6: LD HL,(L1074)
+L77B9: LD DE,L11A4
+ LD A,(HL)
+ OR A
+ RET Z
+ CP 040H
+ JR NC,L77EA ; (+027H)
+ CP C
+ JR NZ,L77DF ; (+019H)
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77DD ; (+012H)
+ LD B,A
+L77CC: INC DE
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77D7 ; (+005H)
+ DJNZ L77CC ; (-008H)
+ INC HL
+ SCF
+ RET
+
+L77D7: INC HL
+ DJNZ L77D7 ; (-003H)
+ LD A,C
+ JR L77E4 ; (+007H)
+
+L77DD: LD A,C
+ DEC HL
+L77DF: AND 00FH
+ INC HL
+ ADD A,(HL)
+ INC HL
+L77E4: LD E,A
+ LD D,000H
+ ADD HL,DE
+ JR L77B9 ; (-031H)
+
+L77EA: CP C
+ JR Z,L7801 ; (+014H)
+ INC HL
+L77EE: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ ADD HL,DE
+ JR L77B9 ; (-03cH)
+
+L77F5: LD A,C
+ SUB B
+ CPL
+ LD C,A
+ LD B,0FFH
+ ADD HL,BC
+ POP BC
+L77FD: DEC HL
+ DEC HL
+ JR L77EE ; (-013H)
+
+L7801: LD A,(HL)
+ EXX
+ LD C,A
+ LD B,000H
+ EXX
+ INC HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ POP DE
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77FD ; (-018H)
+ PUSH BC
+ LD B,A
+ LD C,A
+L7818: INC HL
+ INC DE
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77F5 ; (-029H)
+ DJNZ L7818 ; (-008H)
+ INC HL
+ POP BC
+ SCF
+ RET
+
+L7824: CALL L7495
+ SET 6,C
+ PUSH HL
+ CALL L77B6
+ JP C,04AFEH
+ LD (HL),C
+ EX (SP),HL
+ PUSH HL
+ DEC HL
+L7834: CALL L51A2
+ OR A
+ JR Z,L783E ; (+004H)
+ CP 03AH
+ JR NZ,L7834 ; (-00aH)
+L783E: POP DE
+ PUSH HL
+ INC HL
+ SBC HL,DE
+ LD A,(L11A4)
+ ADD A,004H
+ LD C,A
+ LD B,000H
+ LD A,L
+ ADD HL,BC
+ LD B,A
+ PUSH HL
+ EXX
+ POP BC
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,L0000
+ ADD HL,SP
+ LD DE,(TMPEND)
+ DEC H
+ OR A
+ SBC HL,DE
+ LD A,00CH
+ JP C,L4B2E
+ POP BC
+ POP DE
+ POP HL
+ LD HL,(L107A)
+ PUSH HL
+ ADD HL,BC
+ EX (SP),HL
+ PUSH HL
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ POP HL
+ POP DE
+ LDDR
+ POP DE
+ RST 018H
+ DB 01AH
+ DEC DE
+ POP HL
+ EX (SP),HL
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,L11A4
+ LD A,(DE)
+ LD (HL),A
+ LD B,A
+L788E: INC DE
+ INC HL
+ LD A,(DE)
+ LD (HL),A
+ DJNZ L788E ; (-006H)
+ INC HL
+ PUSH HL
+ EXX
+ POP HL
+ CALL LDHLDE
+ LD (HL),000H
+ POP HL
+ RET
+
+L789F: PUSH DE
+ CALL L7495
+ POP IX
+ PUSH BC
+ SET 6,C
+ LD DE,(0792AH)
+ LD (L792A),HL
+ PUSH DE
+ CALL L77B6
+ JP NC,04B0AH
+ LD DE,(07928H)
+ LD (L7928),HL
+ PUSH DE
+ PUSH IX
+ DEC HL
+L78C1: CALL L51A2
+ CALL L413E
+ JP Z,L4AEC
+ CP QDPC
+ JR NZ,L78C1 ; (-00dH)
+ INC HL
+ POP DE
+ PUSH DE
+ CALL L6E9C
+ POP DE
+ LD HL,(L792A)
+ POP BC
+ LD (07928H),BC
+ POP BC
+ LD (0792AH),BC
+ EX DE,HL
+ POP BC
+ LD A,C
+ CALL L7912
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ CALL HLFTCH
+ CP 028H
+ RET NZ
+ PUSH DE
+ LD B,001H
+L78F6: PUSH BC
+ CALL L51A2
+ POP BC
+ CALL L4141
+ JP Z,L4AEC
+ CP 028H
+ JR NZ,L7906 ; (+001H)
+ INC B
+L7906: CP 029H
+ JR NZ,L78F6 ; (-014H)
+ DJNZ L78F6 ; (-016H)
+ INC HL
+ CALL HLFTCH
+ POP DE
+ RET
+
+L7912: CP 003H
+ JR NZ,L791F ; (+009H)
+L7916: LD A,(L84CE)
+ CP 003H
+ RET Z
+ JP 04AF5H
+
+L791F: LD A,(L84CE)
+ CP 003H
+ RET NZ
+ JP 04AF5H
+
+L7928: NOP
+ NOP
+L792A: NOP
+ NOP
+L792C: PUSH HL
+ CALL L60B7
+ LD A,H
+ OR A
+ JP NZ,04AF2H
+ LD A,L
+ CP 008H
+ JP NC,04AF2H
+ RST 018H
+ DB 012H
+ POP HL
+ JR C,L794E ; (+00eH)
+ JR Z,L794E ; (+00cH)
+ LD DE,0FFFFH
+L7945: CALL L5E99
+ LD A,005H
+ LD (L84CE),A
+ RET
+
+L794E: LD E,A
+ LD D,000H
+ JR L7945 ; (-00eH)
+
+L7953: LD A,(DE)
+ CP (HL)
+ RET NZ
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD B,C
+L795A: LD A,(DE)
+ CP (HL)
+ JR NZ,L7963 ; (+005H)
+ INC DE
+ INC HL
+ DJNZ L795A ; (-008H)
+ XOR A
+L7963: POP HL
+ POP DE
+ POP BC
+ RET
+
+L7967: PUSH HL
+ LD B,005H
+ CALL ?CLRHL
+ POP HL
+ RET
+
+L796F: CALL L791F
+L7972: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ LD A,(HL)
+ XOR 080H
+ LD (HL),A
+ DEC HL
+ RET
+
+L797C: CALL L791F
+ LD C,A
+ LD A,080H
+ JP L798F
+
+L7985: LD A,(L84CE)
+ CP 003H
+ JP Z,L79D9
+ LD C,A
+ XOR A
+L798F: LD (L7D89),HL
+ PUSH DE
+ PUSH HL
+ LD (07D8CH),SP
+ INC HL
+ INC DE
+ LD B,(HL)
+ XOR (HL)
+ EX DE,HL
+ XOR (HL)
+ DEC HL
+ DEC DE
+ EX DE,HL
+ RLCA
+ LD A,B
+ LD (L7D8B),A
+ JP C,L7A9A
+ XOR A
+ CP (HL)
+ JP Z,L79CE
+ LD A,(DE)
+ OR A
+ JR Z,L79B6 ; (+004H)
+ SUB (HL)
+ JP L7ADD
+
+L79B6: LD SP,(07D8CH)
+ POP HL
+ POP DE
+ EI
+ LD A,(HL)
+ OR A
+ JP Z,L7E86
+ LD A,(L7D8B)
+ AND 080H
+ INC HL
+ RES 7,(HL)
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ RET
+
+L79CE: LD B,000H
+ LD A,005H
+ LD C,A
+ EX DE,HL
+ LDIR
+ JP L79B6
+
+L79D9: LD B,(HL)
+ LD A,(DE)
+ ADD A,B
+ JP C,04AF8H
+ LD C,A
+ PUSH DE
+ PUSH HL
+ PUSH DE
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ EX DE,HL
+ LD HL,(L107A)
+ CALL L74DC
+ EX (SP),HL
+ LD B,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ EX DE,HL
+ POP HL
+ CALL L74DC
+ LD A,C
+ LD DE,(TMPEND)
+ LD BC,(STRST)
+ EX DE,HL
+ OR A
+ SBC HL,BC
+ EX DE,HL
+ LD (L107A),HL
+ POP HL
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ DEC HL
+ DEC HL
+ POP DE
+ RET
+
+L7A1C: LD A,(L84CE)
+ CP 003H
+ JR NZ,L7A57 ; (+034H)
+ PUSH DE
+ PUSH HL
+ LD A,(DE)
+ OR (HL)
+ JR Z,L7A54 ; (+02bH)
+ LD A,(DE)
+ CP (HL)
+ JR C,L7A2E ; (+001H)
+ LD A,(HL)
+L7A2E: OR A
+ JR Z,L7A4E ; (+01dH)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ EX DE,HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ ADD HL,BC
+ EX DE,HL
+ LD B,A
+ OR A
+ JR Z,L7A54 ; (+00eH)
+L7A46: LD A,(DE)
+ CP (HL)
+ JR NZ,L7A54 ; (+00aH)
+ INC DE
+ INC HL
+ DJNZ L7A46 ; (-008H)
+L7A4E: POP DE
+ POP HL
+ LD A,(DE)
+ CP (HL)
+ EX DE,HL
+ RET
+
+L7A54: POP HL
+ POP DE
+ RET
+
+L7A57: INC DE
+ INC HL
+ LD A,(DE)
+ DEC DE
+ XOR (HL)
+ RLCA
+ JR NC,L7A63 ; (+004H)
+ LD A,(HL)
+ DEC HL
+ RLCA
+ RET
+
+L7A63: LD A,(HL)
+ DEC HL
+ RLCA
+ JR NC,L7A6E ; (+006H)
+ CALL L7A6E
+ RET Z
+ CCF
+ RET
+
+L7A6E: PUSH DE
+ PUSH HL
+ EX DE,HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L7A8F ; (+01aH)
+ INC DE
+ INC HL
+ LD A,(HL)
+ OR 080H
+ LD B,A
+ LD A,(DE)
+ OR 080H
+ CP B
+ JR NZ,L7A8F ; (+00eH)
+ LD A,(L84CE)
+ LD B,A
+ DEC B
+ DEC B
+L7A87: INC DE
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L7A8F ; (+002H)
+ DJNZ L7A87 ; (-008H)
+L7A8F: POP HL
+ POP DE
+ RET
+
+L7A92: POP HL
+ PUSH HL
+ CALL L7967
+ JP L79B6
+
+L7A9A: CALL L7A6E
+ JR Z,L7A92 ; (-00dH)
+ JR NC,L7AAA ; (+009H)
+ LD A,(L7D8B)
+ XOR 080H
+ LD (L7D8B),A
+ SCF
+L7AAA: EX AF,AF'
+ LD A,(HL)
+ OR A
+ JP Z,L79CE
+ LD A,(DE)
+ OR A
+ JP Z,L79B6
+ SUB (HL)
+ JR C,L7ABF ; (+007H)
+ CP 020H
+ JP NC,L79CE
+ JR L7AC6 ; (+007H)
+
+L7ABF: NEG
+ CP 020H
+ JP NC,L79B6
+L7AC6: EX AF,AF'
+ JR C,L7ACA ; (+001H)
+ EX DE,HL
+L7ACA: EX AF,AF'
+ JP L7B64
+
+L7ACE: LD SP,(07D8CH)
+ EI
+ POP HL
+ POP DE
+ LD A,(07D93H)
+ OR A
+ JP Z,04AEFH
+ RET
+
+L7ADD: JR NC,L7AE9 ; (+00aH)
+ NEG
+ CP 020H
+ JP NC,L79B6
+ EX DE,HL
+ JR L7AEE ; (+005H)
+
+L7AE9: CP 020H
+ JP NC,L79CE
+L7AEE: CALL L7B24
+ LD A,H
+ EXX
+ ADC A,H
+ EXX
+ LD H,A
+ LD A,L
+ EXX
+ ADC A,L
+ EXX
+ LD L,A
+ LD A,D
+ EXX
+ ADC A,D
+ EXX
+ LD D,A
+ LD A,E
+ EXX
+ ADC A,E
+ EXX
+ JR NC,L7B11 ; (+00bH)
+ RRA
+ RR D
+ RR L
+ RR H
+ INC C
+ JP Z,L7ACE
+L7B11: LD E,A
+ LD A,C
+ EXX
+ LD BC,00005H
+ LD HL,(L7D89)
+ LD (HL),A
+ ADD HL,BC
+ DI
+ LD SP,HL
+ EXX
+ PUSH HL
+ PUSH DE
+ JP L79B6
+
+L7B24: DI
+ LD (07D8EH),SP
+ EX AF,AF'
+ INC HL
+ LD SP,HL
+ EXX
+ POP DE
+ SET 7,E
+ POP HL
+ OR A
+L7B32: EX AF,AF'
+ CP 008H
+ JR C,L7B43 ; (+00cH)
+ SUB 008H
+ EX AF,AF'
+ RL H
+ LD H,L
+ LD L,D
+ LD D,E
+ LD E,000H
+ JR L7B32 ; (-011H)
+
+L7B43: OR A
+ JR Z,L7B54 ; (+00eH)
+L7B46: EX AF,AF'
+ OR A
+ RR E
+ RR D
+ RR L
+ RR H
+ EX AF,AF'
+ DEC A
+ JR NZ,L7B46 ; (-00eH)
+L7B54: EXX
+ EX DE,HL
+ LD C,(HL)
+ INC HL
+ LD SP,HL
+ POP DE
+ SET 7,E
+ POP HL
+ EX AF,AF'
+ LD SP,(07D8EH)
+ EI
+ RET
+
+L7B64: CP 020H
+ JP NC,L79B6
+ CALL L7B24
+ LD A,H
+ EXX
+ SBC A,H
+ EXX
+ LD H,A
+ LD A,L
+ EXX
+ SBC A,L
+ EXX
+ LD L,A
+ LD A,D
+ EXX
+ SBC A,D
+ EXX
+ LD D,A
+ LD A,E
+ EXX
+ SBC A,E
+ EXX
+L7B7F: OR A
+ JR Z,L7B98 ; (+016H)
+L7B82: BIT 7,A
+ JR NZ,L7B94 ; (+00eH)
+ RL H
+ RL L
+ RL D
+ RLA
+ DEC C
+ JP NZ,L7B82
+ JP L7A92
+
+L7B94: LD E,A
+ JP L7B11
+
+L7B98: LD A,C
+ SUB 008H
+ LD C,A
+ LD A,D
+ LD D,L
+ LD L,H
+ LD H,000H
+ JR Z,L7BA5 ; (+002H)
+ JR NC,L7B7F ; (-026H)
+L7BA5: JP L7A92
+
+L7BA8: LD C,A
+ INC HL
+ INC DE
+ LD A,(DE)
+ XOR (HL)
+ LD (L7D8B),A
+ DEC HL
+ DEC DE
+ RET
+
+L7BB3: CALL L791F
+ CALL L7BA8
+ PUSH DE
+ PUSH HL
+ LD (07D8CH),SP
+ LD A,(HL)
+ OR A
+ JP Z,L7A92
+ LD A,(DE)
+ OR A
+ JP Z,L7A92
+ INC DE
+ PUSH DE
+ POP IX
+ ADD A,(HL)
+ LD E,A
+ LD A,000H
+ ADC A,A
+ LD D,A
+ LD (07D91H),DE
+ INC HL
+ XOR A
+ LD (L7D90),A
+ LD D,(HL)
+ SET 7,D
+ INC HL
+ LD E,(HL)
+ INC HL
+ PUSH HL
+ LD H,A
+ LD L,A
+ EXX
+ POP HL
+ LD D,(HL)
+ INC HL
+ LD E,(HL)
+ LD B,A
+ LD C,A
+ LD H,A
+ LD L,A
+ EXX
+ LD A,(IX+000H)
+ OR 080H
+ LD C,004H
+L7BF6: LD B,008H
+ OR A
+ JP Z,L7C8B
+L7BFC: RLCA
+ JR NC,L7C11 ; (+012H)
+ EX AF,AF'
+ EXX
+ LD A,C
+ ADD A,B
+ LD C,A
+ ADC HL,DE
+ EXX
+ ADC HL,DE
+ JR NC,L7C10 ; (+005H)
+ LD A,001H
+ LD (L7D90),A
+L7C10: EX AF,AF'
+L7C11: SRL D
+ RR E
+ EXX
+ RR D
+ RR E
+ RR B
+ EXX
+ DJNZ L7BFC ; (-023H)
+L7C1F: INC IX
+ LD A,(IX+000H)
+ DEC C
+ JR NZ,L7BF6 ; (-031H)
+ EXX
+ LD A,(L7D90)
+ OR A
+ JR Z,L7C44 ; (+016H)
+ LD DE,(07D91H)
+ INC DE
+ LD (07D91H),DE
+ EXX
+ SCF
+ RR H
+ RR L
+ EXX
+ RR H
+ RR L
+ RR C
+L7C44: BIT 7,C
+ JR Z,L7C62 ; (+01aH)
+ LD DE,00001H
+ ADD HL,DE
+ EXX
+ LD DE,L0000
+ ADC HL,DE
+ EXX
+ JR NC,L7C62 ; (+00dH)
+ LD DE,(07D91H)
+ INC DE
+ LD (07D91H),DE
+ EXX
+ LD H,080H
+ EXX
+L7C62: POP IX
+ PUSH IX
+ LD (IX+004H),L
+ LD (IX+003H),H
+ EXX
+ LD (IX+002H),L
+ LD (IX+001H),H
+ LD HL,(07D91H)
+ OR A
+ LD DE,L0081
+ SBC HL,DE
+ LD A,H
+ ADD A,000H
+ JP M,L7C97
+ JP NZ,L7ACE
+ LD (IX+000H),L
+ JP L79B6
+
+L7C8B: LD A,E
+ EXX
+ LD B,E
+ LD E,D
+ LD D,A
+ EXX
+ LD E,D
+ LD D,000H
+ JP L7C1F
+
+L7C97: LD SP,(07D8CH)
+ JP L7A92
+
+L7C9E: CALL L791F
+ CALL L7BA8
+ PUSH DE
+ PUSH HL
+ LD (07D8CH),SP
+ LD A,(DE)
+ OR A
+ JP Z,04AEFH
+ EX AF,AF'
+ LD A,(HL)
+ OR A
+ JP Z,L7A92
+ EXX
+ ADD A,081H
+ LD B,A
+ LD A,000H
+ ADC A,A
+ EX AF,AF'
+ LD C,A
+ LD A,B
+ SUB C
+ LD C,A
+ EX AF,AF'
+ LD B,A
+ EX AF,AF'
+ LD A,B
+ SBC A,000H
+ JP C,L7C97
+ JP NZ,L7ACE
+ LD A,C
+ PUSH AF
+ EXX
+ INC DE
+ INC HL
+ LD B,(HL)
+ SET 7,B
+ INC HL
+ LD C,(HL)
+ INC HL
+ PUSH HL
+ EX DE,HL
+ LD D,(HL)
+ SET 7,D
+ INC HL
+ LD E,(HL)
+ INC HL
+ PUSH HL
+ LD H,B
+ LD L,C
+ EXX
+ POP HL
+ LD D,(HL)
+ INC HL
+ LD E,(HL)
+ POP HL
+ LD A,(HL)
+ INC HL
+ LD L,(HL)
+ LD H,A
+ EXX
+ LD C,005H
+L7CF0: LD B,008H
+ XOR A
+L7CF3: BIT 7,H
+ JR NZ,L7D07 ; (+010H)
+ OR A
+L7CF8: RLA
+ EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ DJNZ L7CF3 ; (-00dH)
+ PUSH AF
+ DEC C
+ JR NZ,L7CF0 ; (-014H)
+ JP L7D41
+
+L7D07: OR A
+ EXX
+ SBC HL,DE
+ EXX
+ SBC HL,DE
+ CCF
+ JR C,L7CF8 ; (-019H)
+ EXX
+ ADD HL,DE
+ EXX
+ ADC HL,DE
+ OR A
+ RLA
+ EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ DJNZ L7D26 ; (+007H)
+ PUSH AF
+ LD B,008H
+ DEC C
+ JP Z,L7D41
+L7D26: EXX
+ OR A
+ SBC HL,DE
+ EXX
+ SBC HL,DE
+ SCF
+ RLA
+ DJNZ L7D37 ; (+006H)
+ PUSH AF
+ LD B,008H
+ DEC C
+ JR Z,L7D41 ; (+00aH)
+L7D37: EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ JR C,L7D26 ; (-018H)
+ JP L7CF3
+
+L7D41: POP AF
+ LD H,A
+ EXX
+ POP AF
+ LD E,A
+ POP AF
+ LD D,A
+ POP AF
+ LD C,A
+ POP AF
+ LD B,A
+ POP AF
+L7D4D: BIT 7,B
+ JR NZ,L7D64 ; (+013H)
+ EXX
+ SLA H
+ EXX
+ RL E
+ RL D
+ RL C
+ RL B
+ DEC A
+ JP NZ,L7D4D
+ JP L7A92
+
+L7D64: EXX
+ RL H
+ EXX
+ JR NC,L7D7B ; (+011H)
+ LD HL,00001H
+ ADD HL,DE
+ EX DE,HL
+ LD HL,L0000
+ ADC HL,BC
+ LD B,H
+ LD C,L
+ JR NC,L7D7B ; (+003H)
+ LD B,080H
+ INC A
+L7D7B: POP HL
+ PUSH HL
+ LD (HL),A
+ INC HL
+ LD (HL),B
+L7D80: INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ JP L79B6
+
+L7D89: NOP
+ NOP
+L7D8B: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L7D90: NOP
+ NOP
+ NOP
+ NOP
+L7D94: INC HL
+ BIT 7,(HL)
+ DEC HL
+ RET
+
+L7D99: INC (HL)
+ RET NZ
+ JP 04AEFH
+
+L7D9E: LD A,(HL)
+ OR A
+ RET Z
+ DEC (HL)
+ RET NZ
+ JP L7967
+
+L7DA6: PUSH HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ LD HL,(MEMMAX)
+ DEC HL
+ SBC HL,DE
+ JP C,04AFBH
+ POP HL
+ RET
+
+L7DB8: PUSH HL
+ LD (L8471),HL
+ CALL L7DA6
+ EX DE,HL
+ LD (L8473),HL
+ CALL L7DA6
+ EX DE,HL
+ LD (L8475),HL
+ CALL L7DA6
+ LD (08477H),DE
+ POP HL
+ RET
+
+L7DD3: CALL L791F
+ EX DE,HL
+ LD A,(HL)
+ OR A
+ JP Z,L7E35
+ EX DE,HL
+ LD A,(HL)
+ OR A
+ JP Z,L7967
+ CALL L7D94
+ JR Z,L7E0F ; (+028H)
+ CALL L7972
+ EX DE,HL
+ PUSH DE
+ PUSH HL
+ LD DE,L84D7
+ CALL L5E93
+ LD HL,L84D7
+ CALL L608D
+ LD A,(HL)
+ OR A
+ JP NZ,04AF2H
+ POP HL
+ PUSH HL
+ CALL L60B7
+ BIT 0,L
+ POP DE
+ POP HL
+ JR Z,L7E0F ; (+006H)
+ CALL L7E0F
+ JP L7972
+
+L7E0F: EX DE,HL
+ LD A,(HL)
+ OR A
+ JR Z,L7E35 ; (+021H)
+ CALL L7D94
+ JR Z,L7E3B ; (+022H)
+ CALL L7972
+ CALL L7E3B
+ PUSH DE
+ PUSH HL
+ LD DE,L84D7
+ CALL L5E90
+ LD HL,L84D7
+ POP DE
+ CALL L7C9E
+ PUSH DE
+ CALL L5E93
+ POP HL
+ POP DE
+ RET
+
+L7E35: PUSH DE
+ CALL L5E90
+ POP HL
+ RET
+
+L7E3B: PUSH DE
+ LD DE,L84D7
+ CALL L5E93
+ POP HL
+ CALL L8320
+ LD DE,L84D7
+ CALL L7BB3
+ JP L81FC
+
+L7E4F: CALL L791F
+ PUSH DE
+ PUSH HL
+ CALL L60B7
+ LD A,L
+ CPL
+ LD E,A
+ LD A,H
+ CPL
+ LD D,A
+ JR L7E80 ; (+021H)
+
+L7E5F: LD A,0A2H
+ LD BC,0B23EH
+ LD BC,0AA3EH
+ LD (L7E7B),A
+ INC A
+ LD (L7E7E),A
+ CALL L791F
+ PUSH DE
+ PUSH HL
+ CALL L60B7
+ EX DE,HL
+ CALL L60B7
+ LD A,H
+L7E7B: AND D
+ LD D,A
+ LD A,L
+L7E7E: AND E
+ LD E,A
+L7E80: POP HL
+ CALL L5E99
+ POP DE
+ RET
+
+L7E86: INC HL
+ RES 7,(HL)
+ DEC HL
+ RET
+
+L7E8B: CALL L7D94
+ JP Z,L604F
+ CALL L7EB0
+ CALL L604F
+ LD DE,L84D7
+ CALL L7A1C
+ RET Z
+L7E9E: LD DE,L6112
+ JP L797C
+
+L7EA4: LD DE,L6112
+ JP L7985
+
+L7EAA: LD DE,L6112
+ JP L7A1C
+
+L7EB0: PUSH HL
+ PUSH DE
+ LD DE,L84D7
+ CALL L5E93
+ POP DE
+ POP HL
+ RET
+
+L7EBB: CALL L604F
+ EX DE,HL
+ CALL L604F
+ EX DE,HL
+ CALL L7EB0
+ CALL L7C9E
+ CALL L604F
+ CALL L7BB3
+ PUSH DE
+ LD DE,L84D7
+ CALL L797C
+ POP DE
+ JP L7972
+
+L7EDA: CALL L604F
+ EX DE,HL
+ CALL L604F
+ EX DE,HL
+ CALL L7C9E
+ JP L604F
+
+L7EE8: LD A,(HL)
+ OR A
+ RET Z
+ CALL L7D94
+ JP NZ,04AF2H
+ CALL L8320
+ CALL L7D9E
+ JP L81FC
+
+L7EFA: PUSH HL
+ EX DE,HL
+ CALL L5E90
+ POP HL
+ POP BC
+ RET
+
+L7F02: LD A,(HL)
+ LD C,H
+L7F04: ADD A,B
+ DEC HL
+L7F06: PUSH BC
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ PUSH AF
+ CALL L7F17
+ POP AF
+ POP BC
+ RLCA
+ RET NC
+ JP L7972
+
+L7F17: CALL L7EAA
+ JR C,L7F3A ; (+01eH)
+ CALL L7DA6
+ PUSH DE
+ PUSH HL
+ CALL L5E93
+ POP DE
+ PUSH DE
+ CALL L5E90
+ POP HL
+ POP DE
+ CALL L7C9E
+ CALL L7F3A
+ LD DE,08194H
+ CALL L797C
+ JP L7E86
+
+L7F3A: LD A,0FFH
+ LD (L80B0),A
+ LD DE,L7F02
+ CALL L7A1C
+ JR C,07F96H ; (+04fH)
+ LD DE,L7F04
+ CALL L7A1C
+ PUSH AF
+ CALL L7DA6
+ POP AF
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ JR C,L7F6E ; (+014H)
+ CALL L7EA4
+ EX (SP),HL
+ CALL L797C
+ POP DE
+ CALL L7C9E
+ CALL 07F96H
+ LD DE,08199H
+ JP L7985
+
+L7F6E: LD DE,L7F91
+ CALL L7BB3
+ CALL L7EA4
+ EX (SP),HL
+ LD DE,L7F91
+ CALL L797C
+ POP DE
+ CALL L7C9E
+ CALL 07F96H
+ CALL L7D99
+ LD DE,08199H
+ CALL L7985
+ JP L7D9E
+
+L7F91: LD A,A
+ LD D,H
+ INC DE
+ CALL Z,0C5D0H
+ PUSH HL
+ CALL L7DB8
+ POP HL
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD E,L
+ LD D,H
+ CALL L7BB3
+ LD DE,(08475H)
+ POP HL
+ PUSH HL
+ CALL L5E93
+ LD A,(L84CE)
+ DEC A
+ CP 004H
+ LD B,A
+ LD HL,08137H
+ JP Z,L803D
+ LD B,00AH
+ JP L803D
+
+L7FC2: PUSH BC
+ LD A,(HL)
+ OR A
+ JP Z,L7EFA
+ LD DE,08194H
+ CALL L797C
+ CALL L7972
+ POP BC
+L7FD2: PUSH BC
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ AND 080H
+ CPL
+ LD (L80B0),A
+ DEC HL
+ LD DE,L818A
+ PUSH HL
+ CALL L7A1C
+ JR C,L7FF0 ; (+009H)
+ CALL L7C9E
+ CALL L608D
+ CALL L7BB3
+L7FF0: LD DE,0818FH
+ CALL L7A1C
+ JR C,L8003 ; (+00bH)
+ CALL L797C
+ LD A,(L80B0)
+ XOR 080H
+ LD (L80B0),A
+L8003: LD DE,08194H
+ CALL L7A1C
+ JR C,L8014 ; (+009H)
+ LD DE,0818FH
+ CALL L797C
+ CALL L7E86
+L8014: CALL L7DB8
+ POP HL
+ PUSH DE
+ LD DE,08199H
+ CALL L7A1C
+ JR NC,L8086 ; (+065H)
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD E,L
+ LD D,H
+ CALL L7BB3
+ LD DE,(08475H)
+ POP HL
+ PUSH HL
+ CALL L5E93
+ LD A,(L84CE)
+ LD B,A
+ LD HL,L80E7
+L803D: PUSH BC
+L803E: PUSH HL
+ LD HL,(L8475)
+ LD DE,(08477H)
+ CALL L7BB3
+ POP HL
+ PUSH HL
+ LD DE,(08473H)
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD DE,(08475H)
+ CALL L7BB3
+ EX DE,HL
+ LD HL,(L8471)
+ CALL L7985
+ POP HL
+ LD DE,00005H
+ ADD HL,DE
+ POP BC
+ DJNZ L803D ; (-02dH)
+ POP HL
+ POP BC
+ LD A,(L80B0)
+ INC HL
+ XOR (HL)
+ CPL
+ LD (HL),A
+ DEC HL
+ LD A,(L84CE)
+ CP 008H
+ LD A,(HL)
+ JR Z,L8082 ; (+006H)
+ CP 05CH
+L807E: RET NC
+ JP L7967
+
+L8082: CP 04DH
+ JR L807E ; (-008H)
+
+L8086: LD DE,08194H
+ CALL L797C
+ CALL L7E86
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+L8095: POP HL
+ LD E,L
+ LD D,H
+ CALL L7BB3
+ LD DE,(08475H)
+ CALL L5E90
+L80A2: POP DE
+ PUSH DE
+ CALL L5E90
+ LD A,(L84CE)
+ LD B,A
+ LD HL,L810F
+ JR L803D ; (-073H)
+
+L80B0: NOP
+L80B1: PUSH BC
+ PUSH HL
+ CALL L7DA6
+ EX DE,HL
+ LD (L8479),HL
+ CALL L7DA6
+ LD (0847BH),DE
+ POP HL
+ PUSH HL
+ CALL L5E93
+ LD HL,(L8479)
+ EX DE,HL
+ POP HL
+L80CB: PUSH HL
+ CALL L5E93
+ LD HL,(0847BH)
+ CALL L7FD2
+ POP DE
+ PUSH DE
+ CALL L5E93
+ LD HL,(L8479)
+ CALL L7FC2
+ EX DE,HL
+ POP HL
+ CALL L7C9E
+ POP BC
+ RET
+
+L80E7: LD A,(HL)
+L80E8: XOR D
+ XOR D
+ XOR D
+ XOR E
+ LD A,D
+ EX AF,AF'
+ ADC A,B
+ ADC A,B
+ ADC A,C
+ LD (HL),H
+ RET NC
+ DEC C
+ NOP
+ RET NC
+L80F6: LD L,(HL)
+ JR C,L80E8 ; (-011H)
+ DEC E
+ DEC HL
+ LD H,A
+ RST 010H
+ LD (L402B),A
+ LD H,B
+ JR NC,L8095 ; (-06eH)
+ JR NC,L80A2 ; (-063H)
+ LD E,B
+ RST 010H
+ CCF
+ SBC A,A
+ LD A,(04A50H)
+ SUB (HL)
+ DEC SP
+ ADD A,D
+L810F: ADD A,B
+ ADD A,B
+ NOP
+ NOP
+ NOP
+ LD A,H
+ LD HL,(0AAAAH)
+ XOR E
+ LD (HL),A
+ OR (HL)
+ DEC BC
+ LD H,B
+ OR (HL)
+ LD (HL),C
+ LD D,B
+ DEC C
+ NOP
+ RET NC
+ LD L,E
+ SUB E
+ JP P,0BC7DH
+ LD H,H
+ RRCA
+ HALT
+ RST 000H
+L812C: ADD A,B
+ LD E,H
+ RET
+
+L812F: RES 4,L
+ LD B,(HL)
+ LD D,H
+ LD D,A
+ CCF
+ SBC A,A
+ LD A,(0AA7FH)
+ XOR D
+ XOR D
+ XOR E
+ LD A,(HL)
+ LD C,H
+ CALL Z,0CDCCH
+ LD A,(HL)
+ SUB D
+ LD C,C
+ INC H
+ SUB D
+ LD A,L
+ LD H,E
+ ADC A,(HL)
+ JR C,L812F ; (-01cH)
+ LD A,L
+ CP D
+ LD L,08BH
+ AND E
+ LD A,L
+ DEC E
+ ADC A,C
+ RET C
+ SBC A,(HL)
+ LD A,L
+ ADC A,B
+ ADC A,B
+ ADC A,B
+ ADC A,C
+ LD A,H
+ LD (HL),B
+ RET P
+ RET P
+ POP AF
+ LD A,H
+ RST 010H
+ SUB H
+ DEC (HL)
+ PUSH HL
+ LD A,H
+ LD B,E
+ INC C
+ JR NC,L812C ; (-03dH)
+L8169: LD DE,L0000
+ LD A,(HL)
+ OR A
+ JR Z,L8178 ; (+008H)
+ CALL L7D94
+ INC DE
+ JR Z,L8178 ; (+002H)
+ DEC DE
+ DEC DE
+L8178: CALL L5E99
+ RET
+
+L817C: LD DE,0819EH
+ JR L8184 ; (+003H)
+
+L8181: LD DE,0818FH
+L8184: PUSH BC
+ CALL L7BB3
+ POP BC
+ RET
+
+L818A: ADD A,E
+ LD C,C
+ RRCA
+ JP C,L82A2
+ LD C,C
+ RRCA
+ JP C,L81A2
+ LD C,C
+ RRCA
+ JP C,L80A2
+ LD C,C
+ RRCA
+ JP C,07BA2H
+ LD C,FDPC
+ DEC (HL)
+L81A2: INC DE
+L81A3: PUSH HL
+ CALL L60B7
+ LD A,000H
+ CP 040H
+ LD A,(HL)
+ CALL NZ,BREAKX
+ LD E,A
+ LD D,000H
+ POP HL
+ CALL L5E99
+ RET
+
+L81B7: LD A,(HL)
+ OR A
+ JR Z,L81C0 ; (+005H)
+ CALL L7D94
+ JR Z,L81CB ; (+00bH)
+L81C0: PUSH HL
+ LD HL,L4193
+ LD (L81FA),HL
+ POP HL
+ XOR A
+ LD R,A
+L81CB: PUSH BC
+ LD DE,(081FAH)
+ LD A,R
+ XOR D
+ RRC A
+ RRC A
+ RRC A
+ LD D,A
+ LD A,R
+ XOR E
+ RLC A
+ RLC A
+ LD E,D
+ LD D,A
+ LD (081FAH),DE
+ PUSH HL
+ INC HL
+ RES 7,D
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ INC HL
+ LD A,R
+ LD (HL),A
+ POP HL
+ LD (HL),081H
+ CALL L7E9E
+ POP BC
+ RET
+
+L81FA: SUB E
+ LD B,C
+L81FC: PUSH BC
+ LD A,(HL)
+ OR A
+ JP Z,L7EFA
+ INC HL
+ LD A,(HL)
+ LD (L8312),A
+ RES 7,(HL)
+ DEC HL
+ LD DE,L8467
+ CALL L7BB3
+ PUSH HL
+ CALL L7DA6
+ PUSH DE
+ CALL L5E93
+ POP HL
+ CALL L604F
+ PUSH HL
+ CALL L60B7
+ XOR A
+ CP H
+ JP NZ,04AEFH
+ LD A,L
+ LD (L8311),A
+ POP DE
+ POP HL
+ PUSH HL
+ CALL L797C
+ PUSH DE
+ PUSH HL
+ CALL L5E90
+ POP DE
+ POP HL
+ CALL L7D9E
+ EX DE,HL
+ XOR A
+ LD B,008H
+L823D: PUSH BC
+ PUSH AF
+ CALL L7A1C
+ JR C,L824B ; (+007H)
+ CALL L797C
+ POP AF
+ SET 7,A
+ PUSH AF
+L824B: POP AF
+ RLC A
+ EX DE,HL
+ PUSH AF
+ CALL L7D9E
+ POP AF
+ EX DE,HL
+ POP BC
+ DJNZ L823D ; (-01bH)
+ LD (L8313),A
+ PUSH DE
+ LD DE,L845D
+ LD A,(L84CE)
+ BIT 3,A
+ JR NZ,L8269 ; (+003H)
+ LD DE,L8462
+L8269: CALL L7BB3
+ POP DE
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD A,(L84CE)
+ BIT 3,A
+ JP Z,L8301
+ CALL L7D99
+ LD DE,L610D
+ CALL L7985
+ CALL L7D9E
+ POP DE
+ PUSH DE
+ CALL L7BB3
+ LD DE,L610D
+ CALL L7D9E
+ CALL L7985
+ CALL L7D99
+ POP DE
+ PUSH DE
+ CALL L7BB3
+ LD DE,L8458
+ CALL L7BB3
+L82A2: CALL L7D99
+ CALL L7EA4
+ CALL L7D9E
+ POP DE
+ PUSH DE
+ CALL L7BB3
+ CALL L7EA4
+ POP DE
+ PUSH DE
+ CALL L7BB3
+L82B8: CALL L7EA4
+ EX (SP),HL
+ EX DE,HL
+ PUSH DE
+ CALL L5E90
+ POP HL
+ LD DE,L8408
+ LD A,(L8313)
+ LD B,008H
+L82CA: RLC A
+ JR NC,L82D5 ; (+007H)
+ PUSH AF
+ PUSH BC
+ CALL L7BB3
+ POP BC
+ POP AF
+L82D5: INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ DJNZ L82CA ; (-012H)
+ LD A,(L8311)
+ ADD A,(HL)
+ JP C,04AEFH
+ LD (HL),A
+ POP DE
+ CALL L7BB3
+ POP BC
+ LD A,(L8312)
+ RLC A
+ RET NC
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ CALL L5E93
+ POP DE
+ PUSH DE
+ CALL L5E90
+ POP HL
+ POP DE
+ CALL L7C9E
+ POP BC
+ RET
+
+L8301: POP DE
+ PUSH DE
+ CALL L7BB3
+ LD A,(HL)
+ OR A
+ CALL NZ,L7D9E
+ CALL L7985
+ JP L82B8
+
+L8311: NOP
+L8312: NOP
+L8313: NOP
+L8314: PUSH BC
+ CALL L8320
+ LD DE,L83F9
+ CALL L7BB3
+ POP BC
+ RET
+
+L8320: PUSH BC
+ CALL L7D94
+ JP NZ,04AF2H
+ LD A,(HL)
+ OR A
+ JP Z,04AF2H
+ SUB 081H
+ LD (L83F8),A
+ LD (HL),081H
+ XOR A
+ LD B,008H
+ LD DE,L8408
+L8339: PUSH BC
+ PUSH AF
+ CALL L7A1C
+ JR C,L834F ; (+00fH)
+ PUSH HL
+ LD HL,00028H
+ ADD HL,DE
+ EX DE,HL
+ EX (SP),HL
+ CALL L7BB3
+ POP DE
+ POP AF
+ SET 7,A
+ PUSH AF
+L834F: POP AF
+ RLC A
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ POP BC
+ DJNZ L8339 ; (-021H)
+ DB 022H
+ LD (HL),C
+ ADD A,H
+ CALL L7DA6
+ EX DE,HL
+ LD E,A
+ LD D,000H
+ CALL L5E99
+ LD A,(HL)
+ OR A
+ JR Z,L836E ; (+003H)
+ SUB 008H
+ LD (HL),A
+L836E: LD A,(L83F8)
+ CP 080H
+ JR C,L8377 ; (+002H)
+ NEG
+L8377: PUSH HL
+ CALL L7DA6
+ EX DE,HL
+ LD (L8473),HL
+ LD E,A
+ LD D,000H
+ CALL L5E99
+ LD A,(L83F8)
+ AND 080H
+ INC HL
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ EX DE,HL
+ POP HL
+ CALL L7985
+ LD A,(L84CE)
+ LD DE,0846CH
+ CP 005H
+ JR Z,L83A0 ; (+003H)
+ LD DE,L845D
+L83A0: CALL L7BB3
+ PUSH HL
+ LD DE,(08473H)
+ LD HL,(L8471)
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ CALL L7EA4
+ EX (SP),HL
+ CALL L797C
+ POP DE
+ CALL L7C9E
+ PUSH DE
+ CALL L5E93
+ POP HL
+ PUSH DE
+ LD E,L
+ LD D,H
+ CALL L7BB3
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD DE,L8403
+ CALL L7985
+ EX DE,HL
+ POP HL
+ CALL L7BB3
+ LD DE,L610D
+ CALL L7D99
+ CALL L7985
+ CALL L7D9E
+ EX DE,HL
+ LD HL,(L8471)
+ CALL L7BB3
+ LD DE,L83FE
+ CALL L7BB3
+ POP DE
+ CALL L7985
+ POP BC
+ RET
+
+L83F8: NOP
+L83F9: LD A,A
+ LD E,(HL)
+ LD E,E
+ RET C
+ XOR C
+L83FE: LD A,A
+ LD C,H
+ CALL Z,0CDCCH
+L8403: ADD A,C
+ LD D,L
+ LD D,L
+ LD D,L
+ LD D,(HL)
+L8408: ADD A,C
+ DEC (HL)
+ INC B
+ DI
+ INC (HL)
+ ADD A,C
+ JR L8447 ; (+037H)
+
+ RET P
+ LD D,D
+ ADD A,C
+ DEC BC
+L8414: SUB L
+ POP BC
+ CALL PO,00581H
+ XOR D
+ JP 08168H
+
+ LD (BC),A
+ CALL 09986H
+ ADD A,C
+ LD BC,0D164H
+ CALL P,L0081
+ OR C
+ IN D,(C)
+ ADD A,C
+ NOP
+ LD E,B
+ RST 010H
+ OUT (080H),A
+ DEC (HL)
+ INC B
+ DI
+ INC (HL)
+ ADD A,B
+ LD D,A
+ LD B,H
+ CALL M,L80CB
+ LD L,D
+ RET NZ
+ ADD A,0E8H
+ ADD A,B
+ LD (HL),L
+ DEC H
+ LD A,L
+ LD D,080H
+ LD A,D
+ ADD A,E
+L8447: OR D
+ CALL C,L7D80
+ LD A,00CH
+ DEC C
+ ADD A,B
+ LD A,(HL)
+ SBC A,(HL)
+ LD DE,0805DH
+ LD A,A
+ LD C,(HL)
+ BIT 3,D
+L8458: LD A,D
+ EX AF,AF'
+ ADC A,B
+ ADC A,B
+ ADC A,C
+L845D: ADD A,B
+ LD SP,L1772
+ RET M
+L8462: ADD A,B
+ LD SP,L1772
+ RET M
+L8467: ADD A,C
+ JR C,L8414 ; (-056H)
+ DEC SP
+ LD HL,(03180H)
+ LD (HL),D
+ RLA
+ RET M
+L8471: DS 2, 000H
+L8473: DS 2, 000H
+L8475: DS 4, 000H
+L8479: DS 4, 000H
+L847D: DS 2, 000H
+L847F: DS 2, 000H
+L8481: DS 2, 000H
+L8483: DS 2, 000H
+L8485: DB 000H
+L8486: DB 000H
+L8487: DS 2, 000H
+L8489: DS 2, 000H
+L848B: DS 4, 000H
+L848F: DB 000H
+L8490: DS 2, 000H
+ DB 015H
+ DB 000H
+ DB 0EBH
+ DB 0FFH
+ DS 2, 000H
+L8498: DS 2, 000H
+L849A: DS 2, 000H
+L849C: DS 7, 000H
+L84A3: DB 000H
+L84A4: DS 3, 000H
+L84A7: DB 000H
+L84A8: DS 4, 000H
+L84AC: DB 000H
+L84AD: DS 8, 000H
+L84B5: DS 25, 000H
+L84CE: DB 008H ; Splash screen / banner text
+L84CF: DS 8, 000H
+L84D7: DS 8, 000H
+L84DF: DS 8, 000H
+L84E7: DB 016H
+ DB 00DH
+ DB 020H
+ DS 38, 0D7H
+ DS 4, 020H
+ DB "BASIC ",005H,"INTERPRETER"
+ DS 2, 020H
+ DB 006H,"MZ-5Z"
+ DS 2, 030H
+ DB "8 V1.0A ",00DH
+ DS 3, 020H
+ DB 043H,005H,"OPYRIGHT ",006H,"(C) 1984 ",005H,"BY ",006H,"SHARP CORP."
+ DS 5, 020H
+ DS 38, 0CFH
+ DB 020H,00DH,020H,005H,"30134 BYTES FR"
+ DS 2, 045H
+ DS 2, 00DH
+ DS 93, 000H
+
+EXECSTART: XOR A ; Execution entry point
+ LD DE,L0000
+ CALL TIMST
+ ;LD HL,(DTEFG)
+ ;PUSH HL
+ LD DE,L0000
+ LD HL,BASICEND - L0000
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ LD HL,TAPECOPY
+ OUT (LSE0),A
+ LDIR
+ ;POP HL
+ ;LD (L0054),HL
+ JP L0000
+
+ DS 0,11
+BASICEND:
diff --git a/asm/mz5z008_rfs.asm b/asm/mz5z008_rfs.asm
new file mode 100644
index 0000000..50e0935
--- /dev/null
+++ b/asm/mz5z008_rfs.asm
@@ -0,0 +1,20226 @@
+; Disassembly of the file "mz5z008.bin"
+;
+; CPU Type: Z80
+;
+; Created with dZ80 2.1
+;
+; on Monday, 16 of March 2026 at 07:23 PM
+;
+LSD0 EQU 0D0H
+LSD1 EQU 0D1H
+LSD2 EQU 0D2H
+LSD3 EQU 0D3H
+LSE0 EQU 0E0H
+LSE1 EQU 0E1H
+LSE2 EQU 0E2H
+LSE3 EQU 0E3H
+LSE4 EQU 0E4H
+LSE5 EQU 0E5H
+LSE6 EQU 0E6H
+QDPA EQU 0F2H
+QDPB EQU 0F3H
+QDPC EQU 0F4H
+QDPD EQU 0F5H
+FDPA EQU 0F8H
+FDPB EQU 0F9H
+FDPC EQU 0FAH
+FDPD EQU 0FBH
+LSFC EQU 0FCH
+TMCNT EQU 01195H
+CSMDT EQU 01199H
+TEMPW EQU 0119EH
+KEY262 EQU 012AAH
+KEY264 EQU 012ACH
+KEY266 EQU 012AEH
+FUNBUF EQU 012B2H
+INBUFC EQU 01352H
+INBUFL EQU 01353H
+INBUF EQU 01354H
+TIMST EQU 00033H
+LINLIM EQU 01364H
+KEYDAT EQU 01365H
+AMPM EQU 01366H
+SECD EQU 01367H
+XS EQU 01369H
+XE EQU 0136AH
+CWIDTH EQU 0136BH
+CSIZE EQU 0136DH
+YS EQU 0136FH
+YE EQU 01370H
+YW EQU 01371H
+SOF EQU 01372H
+SW EQU 01374H
+SSA EQU 01375H
+SEA EQU 01376H
+SSW EQU 01377H
+CRTMD1 EQU 01379H
+CRTMD2 EQU 0137AH
+SELCOL EQU 0137BH
+PAIWED EQU 0137CH
+PALBK EQU 0137EH
+PALAD EQU 0137FH
+PALTBL EQU 01381H
+PAL2T EQU 01385H
+PAL4T EQU 01389H
+PAL16T EQU 0138DH
+CURDT1 EQU 01391H
+CURDT2 EQU 01399H
+CURDT3 EQU 013A1H
+SCRNT0 EQU 013A9H
+EMFLG EQU 013C3H
+EMPTR EQU 013C4H
+EMWP0 EQU 013C6H
+EMWP1 EQU 013C8H
+PBCN EQU 013CEH
+HERRF EQU 013D9H
+CTABLE EQU 013DAH
+FONTBF EQU 01000H
+TEXTBF EQU 02000H
+BITBUF EQU 08000H
+IBUFE EQU 010F0H
+ERRTXT EQU 0FDA0H
+VRAM EQU 0D000H
+ARAM EQU 0D800H
+MMIO EQU 0E000H
+TEMPO_ EQU 0E008H
+PPI_PA EQU 0E010H
+PPI_PB EQU 0E011H
+PPI_PC EQU 0E012H
+PPI_CTL EQU 0E013H
+ATRB EQU 010F0H
+PRGSTART EQU 00000H
+
+; RFS (ROM Filing System) constants for picoZ80
+PORT_LODRAM EQU 0E0H ; OUT: map 0000-0FFF to DRAM
+PORT_DRAM EQU 0E1H ; OUT: map D000-FFFF to DRAM
+PORT_LOROM EQU 0E2H ; OUT: map 0000-0FFF to Monitor ROM
+PORT_MMIO EQU 0E3H ; OUT: map D000-FFFF to VRAM/MMIO/ROM
+BNKCTRLRST EQU 0EFF8H ; RFS bank control reset register
+BNKCTRL EQU 0EFFFH ; Bank Control register (CS, CLK bits)
+HWSPIDATA EQU 0EFFBH ; Hardware SPI Data register (read/write)
+HWSPISTART EQU 0EFFCH ; Start SPI transfer register
+; SECTORBUF relocated to RFS data area — was EQU 0CE00H (overlapped BASIC stack)
+SDCS_ACT EQU 001H ; BNKCTRL: CS LOW (active), BBCLK enable
+SDCS_DEACT EQU 003H ; BNKCTRL: CS HIGH (inactive), BBCLK enable
+HDRLEN EQU 00040H ; File header length (64 bytes)
+
+; Tape and build configuration.
+TAPECOPY EQU 01200H
+BUILD_ORIG EQU 1
+BUILD_RFS EQU 0
+
+ ; Create an MZF Tape header.
+ ORG ATRB
+
+ ; Declare the MZF header to bootstrap BASIC from tape/SD.
+BOOTATRB: DB 01h ; Code Type, 01 = Machine Code.
+BOOTNAME: IF BUILD_ORIG = 1
+ DB "BASIC 5Z-008B ", 0Dh ; Title/Name (17 bytes).
+ ENDIF
+ IF BUILD_RFS = 1
+ DB "BASIC 5Z-008BRFS", 0Dh ; Title/Name (17 bytes).
+ ENDIF
+BOOTSIZE: DW BASICEND - L0000 ; Size of program.
+BOOTDTADR: DW TAPECOPY ; Load address of program.
+BOOTEXADR: DW EXECSTART + TAPECOPY ; Exec address of program.
+BOOTCOMNT: DS 104
+
+ ORG PRGSTART
+
+L0000: JP L0CAF ; Cold start entry - JP to initialization
+
+L0003: JP L028C
+
+L0006: JP L05EC
+
+ JP L05E8
+
+L000C: JP L0BFD
+
+L000F: JP L05F1
+
+L0012: JP L0BFF
+
+L0015: JP L0BEE
+
+SVC_ENTRY: JP SVC_DISP ; RST 18H - SVC (Supervisor Call) dispatcher
+
+ JP L041C
+
+BRKCHK: JP L05C1
+
+ JP L30CB
+
+ JP L30D2
+
+L0027: JP L3114
+
+ JP L311B
+
+ JP L3153
+
+L0030: JP L14BC
+
+ JP L0955
+
+L0036: LD B,B
+ NOP
+RST38: JP BREAKZ ; RST 38H - Interrupt handler
+
+ JP L098F
+
+L003E: JP L0D3F
+
+L0041: JP L0D30
+
+ JP L0D05
+
+ JP L0D20
+
+ JP L028C
+
+L004D: DB 000H ; System status / work area
+L004E: DB 000H
+L004F: DB 0FFH
+L0050: DB 000H
+ DB 0C3H
+ DB 0EEH
+ DB 00BH
+L0054: DS 2, 000H
+L0056: DB 000H
+L0057: DB 018H
+ DB 0C3H
+ DB 08AH
+ DB 003H
+L005B: DB 000H
+ DB 027H
+L005D: DB 071H
+ DB 000H
+L005F: DB 000H
+L0060: DB 0EFH
+ DB 0C3H
+ DB 037H
+ DB 00AH
+L0064: DB 000H
+L0065: DB 000H
+L0066: DB 000H
+L0067: DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 0ADH
+ DB 007H
+ DB 0F1H
+ DB 008H
+L0071: DB 015H
+ DB 008H
+ DB 012H
+ DB 008H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+L0080: DB 000H
+L0081: DB 0ADH
+ DB 007H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 01EH
+ DB 008H
+ DB 0CCH
+ DB 007H
+ DB 0F0H
+ DB 007H
+ DB LSD1
+ DB 007H
+ DB QDPD
+ DB 007H
+ DB 054H
+ DB 007H
+ DB 074H
+ DB 007H
+ DB 018H
+ DB 008H
+ DB 0BAH
+ DB 008H
+ DB 012H
+ DB 008H
+ DB LSE5
+ DB 000H
+ DB 0ADH
+ DB 007H
+ DB LSE5
+L00A0: DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+.NOP: DB 000H
+.HL: DS 11, 000H
+.RET: DS 8, 000H
+PUSHRA: DS 6, 000H
+L00C0: DS 7, 000H
+PUSHR: DS 18, 000H
+L00D9: DB 000H
+L00DA: DI
+ LD SP,L0000
+ IM 1
+ OUT (LSE1),A
+ JP L1800
+
+BREAKZ: RET
+
+BREAKX: DI
+ OUT (LSE3),A
+L00E9: LD A,(HL)
+ OUT (LSE1),A
+ EI
+ERRORJ: RET
+
+POPRA: DI
+ OUT (LSE3),A
+ LD (HL),A
+ OUT (LSE1),A
+ EI
+ RET
+
+ JP L026A
+
+L00F9: NOP
+L00FA: JP (HL)
+
+IOOUT: EX (SP),IX
+ PUSH HL
+ PUSH BC
+ PUSH DE
+L0100: PUSH AF
+L0101: PUSH HL
+ LD HL,L0114
+ EX (SP),HL
+ JP (IX)
+
+SKPDE: EX (SP),IX
+ PUSH HL
+ PUSH BC
+ PUSH DE
+DEVASC: PUSH HL
+ LD HL,L0115
+ EX (SP),HL
+ JP (IX)
+
+L0114: POP AF
+L0115: POP DE
+ POP BC
+ POP HL
+ POP IX
+ RET
+
+CHKACC: EX (SP),HL
+ PUSH BC
+ LD B,(HL)
+L011E: INC HL
+ CP (HL)
+ JR Z,L0127 ; (+005H)
+ DJNZ L011E ; (-006H)
+ INC HL
+ JR L012A ; (+003H)
+
+L0127: INC HL
+ DJNZ L0127 ; (-003H)
+L012A: POP BC
+ EX (SP),HL
+ RET
+
+LDDEMI: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ RET
+
+LDDEMD: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ RET
+
+?CLRHL: XOR A
+?SETHL: LD (HL),A
+ INC HL
+ DJNZ ?SETHL ; (-004H)
+ RET
+
+?CLRDE: XOR A
+?SETDE: LD (DE),A
+ INC DE
+L0140: DJNZ ?SETDE ; (-004H)
+ RET
+
+LDDEHL: LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ DJNZ LDDEHL ; (-006H)
+ RET
+
+LDHLDE: LD A,(DE)
+ LD (HL),A
+ INC HL
+ INC DE
+ DJNZ LDHLDE ; (-006H)
+ RET
+
+INDRCT: PUSH AF
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ POP AF
+ RET
+
+ADDHLA: ADD A,L
+ LD L,A
+ RET NC
+ INC H
+ RET
+
+INCHLF: INC HL
+HLFTCH: LD A,(HL)
+ CP 020H
+ JR Z,INCHLF ; (-006H)
+ RET
+
+TEST1: CALL HLFTCH
+ EX (SP),HL
+L0168: CP (HL)
+ INC HL
+ EX (SP),HL
+ RET NZ
+ INC HL
+ RET
+
+TESTX: CALL HLFTCH
+ EX (SP),HL
+ CP (HL)
+ INC HL
+ EX (SP),HL
+ INC HL
+ RET Z
+ LD A,001H
+ JR L0182 ; (+007H)
+
+L017B: XOR A
+ LD HL,L803E
+ LD HL,L80F6
+L0182: PUSH AF
+ CALL L0D20
+ POP AF
+ JP L0000
+
+; ---------------------------------------------------------------------------
+; SVC Dispatch Table (L018A - ~0x0201)
+;
+; This is a lookup table of 2-byte handler addresses indexed by SVC number.
+; SVC_DISP uses: handler = word[L018A + SVC*2].
+; NOTE: The bytes in this table also serve as executable code — several
+; labels within the table (L01A2, L01CE, L01D9, L01E0) are jump targets
+; from nearby code. This dual-purpose layout prevents conversion to DW.
+;
+; Key entries:
+; SVC #00=3D9D #02=05E8 #05=0908 #20=0D3E #29=1EDB #2A=1F1D
+; SVC #2E=19E0 #33=1AE1 #39=1D1B #3A=14DD
+; ---------------------------------------------------------------------------
+L018A: SBC A,L
+ DEC A
+ CALL PE,0E805H
+ DEC B
+ RST 038H
+ DEC BC
+ LD B,E
+ INC C
+ EX AF,AF'
+ ADD HL,BC
+ XOR C
+ RRCA
+ LD A,00FH
+ RET Z
+ DEC BC
+ JP Z,0D80BH
+ DEC BC
+ AND 00BH
+L01A2: ADC A,H
+ LD (BC),A
+ ADC A,D
+ INC BC
+ POP BC
+ DEC B
+ AND B
+ INC D
+ ADD A,A
+ LD A,(BC)
+ ADC A,C
+ LD A,(BC)
+ SCF
+ LD A,(BC)
+ LD B,(HL)
+ INC D
+ HALT
+ INC D
+ SUB C
+ INC D
+ LD B,014H
+ LD E,H
+ LD (BC),A
+ POP HL
+ INC C
+ RET PE
+ INC C
+ RST 028H
+ INC C
+ PUSH HL
+ INC D
+ AND H
+ INC DE
+ LD (HL),D
+ INC DE
+ LD C,E
+ LD B,LSE5
+ NOP
+ LD A,00DH
+ JR NC,L01CE ; (+000H)
+L01CE: PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ ADC A,A
+ ADD HL,BC
+ LD D,L
+ ADD HL,BC
+ SUB B
+L01D9: DEC C
+ RET PE
+ DEC DE
+ IN A,(01EH)
+ DEC E
+ RRA
+L01E0: POP AF
+ LD E,03DH
+ LD A,(DE)
+ CP B
+ LD A,(DE)
+ RET PO
+ ADD HL,DE
+ LD (HL),C
+ DEC DE
+ OR H
+ INC E
+ RET C
+ INC E
+ RET
+
+ INC E
+ POP HL
+ LD A,(DE)
+ RET NC
+ JR L01D9 ; (-01cH)
+
+ JR 00243H ; (+04cH)
+
+ ADD HL,DE
+ RRCA
+ JR L01A2 ; (-059H)
+
+ DEC DE
+ DEC DE
+ DEC E
+ DB 0DDH
+ INC D
+L0200: PUSH HL
+ NOP
+ LD E,B
+ LD E,067H
+ INC L
+ OR (HL)
+ INC L
+ LD B,(HL)
+ INC L
+ NOP
+ ADD HL,HL
+ SBC A,L
+ LD HL,(02925H)
+ XOR E
+ RRA
+ CALL M,L742A
+ RLCA
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+SVC_DISP: EX (SP),HL
+ PUSH AF
+ LD A,(HL)
+ INC HL
+ PUSH HL
+ LD HL,L018A
+ ADD A,A
+ ADD A,L
+ JR NC,L0237 ; (+001H)
+ INC H
+L0237: LD L,A
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ LD (00243H),HL
+ POP HL
+ POP AF
+ EX (SP),HL
+ JP L0000
+
+IOCALL: PUSH HL
+ PUSH DE
+ LD (00251H),IX
+ LD IX,00180H
+ OR A
+ CALL L0000
+ POP DE
+ POP HL
+ RET NC
+ OR A
+ SCF
+L0258: RET Z
+ JP 00180H
+
+ PUSH DE
+ LD B,000H
+L025F: LD A,(DE)
+ OR A
+ JR Z,L0268 ; (+005H)
+ INC DE
+ INC B
+ JR NZ,L025F ; (-008H)
+ DEC B
+L0268: POP DE
+ RET
+
+L026A: PUSH HL
+ LD HL,(L0054)
+ PUSH HL
+ PUSH DE
+ CALL PUSHW
+ POP DE
+ LD (HL),000H
+ POP HL
+ CALL L028C
+ JR C,L028A ; (+00eH)
+ LD A,(L005B)
+ SUB L
+ JR NC,L028A ; (+008H)
+ NEG
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ EX DE,HL
+ OR A
+L028A: POP HL
+ RET
+
+L028C: PUSH BC
+ PUSH HL
+ PUSH DE
+L028F: CALL L0391
+ CP 00DH
+ JP Z,L0311
+ CP 01BH
+ JR Z,L02E8 ; (+04dH)
+ PUSH AF
+ CP 020H
+DEASC: JR C,L02CD ; (+02dH)
+ JR L02C8 ; (+026H)
+
+L02A2: LD A,(L004D)
+ OR A
+ JR NZ,L02C8 ; (+020H)
+ LD A,(00B18H)
+ RRCA
+ JR C,L02C8 ; (+01aH)
+ LD A,(L004E)
+ OR A
+ JR NZ,L02C8 ; (+014H)
+ POP AF
+ LD HL,L06C1
+ CP 011H
+ JR Z,L02C3 ; (+007H)
+ LD HL,L06E7
+ CP 012H
+ JR NZ,L02C9 ; (+006H)
+L02C3: CALL L00FA
+ JR L028F ; (-039H)
+
+L02C8: POP AF
+L02C9: RST 018H
+ DB 003H
+ JR L028F ; (-03eH)
+
+L02CD: LD A,(L0060)
+ CP 0FFH
+ JR NZ,L02A2 ; (-032H)
+ POP AF
+ CP 017H
+ JR NC,L02C9 ; (-010H)
+ CP 011H
+ JR C,L02C9 ; (-014H)
+ LD HL,(00B18H)
+ BIT 6,L
+ JR Z,L02C9 ; (-01bH)
+ RST 018H
+ DB 004H
+ JR L028F ; (-059H)
+
+L02E8: SCF
+CKHEX: PUSH AF
+ LD A,00DH
+ RST 018H
+ DB 003H
+ POP AF
+ POP DE
+ POP HL
+ POP BC
+ RET
+
+L02F3: CALL PUSHW
+L02F6: LD A,(HL)
+ OR A
+MHALT: RET Z
+ DEC HL
+ DEC E
+ LD A,(L0056)
+ CP E
+ JR C,L02F6 ; (-00bH)
+ RET
+
+L0302: CALL PUSHW
+L0305: INC E
+ INC HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD A,(L0057)
+ CP E
+ JR NC,L0305 ; (-00bH)
+ RET
+
+L0311: LD HL,(L0054)
+SETDFL: CALL L02F3
+ LD D,E
+ CALL L0305
+ LD A,(L005B)
+ LD L,A
+ LD A,E
+ SUB D
+ LD E,A
+ LD H,D
+ADDP1: LD D,L
+ RST 018H
+ DB 01EH
+ LD A,(0005CH)
+ SUB D
+ADDP2: INC A
+ LD D,A
+ POP BC
+ PUSH BC
+ EXX
+ PUSH HL
+ LD HL,(L004F)
+ EXX
+L0334: PUSH DE
+ PUSH HL
+L0336: CALL BREAKX
+ RST 018H
+ DB 01CH
+ INC HL
+ LD (BC),A
+ INC BC
+L033E: EXX
+ DEC L
+ERRX: JR Z,L0354 ; (+012H)
+ EXX
+ DEC D
+ JR NZ,L0336 ; (-010H)
+ POP HL
+ PUSH BC
+ LD BC,00028H
+ ADD HL,BC
+ POP BC
+ POP DE
+ DEC E
+ JR NZ,L0334 ; (-01dH)
+ PUSH DE
+ PUSH HL
+ EXX
+L0354: EXX
+ POP HL
+ POP DE
+ EXX
+ POP HL
+ EXX
+ XOR A
+ LD (BC),A
+ LD L,C
+ LD H,B
+ POP DE
+ PUSH DE
+ PUSH HL
+ OR A
+ SBC HL,DE
+ LD B,L
+ POP HL
+ LD A,020H
+ LD D,A
+ JP Z,CKHEX
+ DEC HL
+L036D: LD A,(HL)
+ OR A
+ JR Z,L0376 ; (+005H)
+ CP D
+ JR NZ,L037D ; (+009H)
+ LD (HL),000H
+L0376: DEC HL
+ DJNZ L036D ; (-00cH)
+ OR A
+ JP CKHEX
+
+L037D: LD A,(HL)
+ OR A
+ JR NZ,L0383 ; (+002H)
+ LD (HL),020H
+L0383: DEC HL
+ DJNZ L037D ; (-009H)
+ OR A
+ JP CKHEX
+
+ INC A
+ JR Z,L0406 ; (+079H)
+ DEC A
+ JP Z,L041C
+L0391: CALL L0426
+ CALL SKPDE
+SETDNM: CALL L0648
+ CALL BREAKX
+ LD D,A
+ LD A,(L0060)
+ LD E,A
+ CALL POPRA
+ XOR A
+ DI
+ OUT (LSE3),A
+ LD (MMIO),A
+ CPL
+ LD (MMIO),A
+ OUT (LSE1),A
+ EI
+ LD C,000H
+ EX AF,AF'
+ PUSH AF
+ CALL L0459
+ LD A,000H
+L03BC: EX AF,AF'
+L03BD: LD B,010H
+L03BF: CALL L043C
+ CALL L0459
+ BIT 1,A
+ JR NZ,L03BD ; (-00cH)
+ DJNZ L03BF ; (-00cH)
+ BIT 0,A
+ JR Z,L03DB ; (+00cH)
+ BIT 2,A
+ JR NZ,L03EC ; (+019H)
+ EX AF,AF'
+ DEC A
+ JR NZ,L03BC ; (-01bH)
+ LD A,006H
+ JR L03EE ; (+013H)
+
+L03DB: PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,INKEY1
+ LD DE,L0B17
+ LD BC,0000AH
+L03E7: LDIR
+ POP BC
+ POP DE
+ POP HL
+L03EC: LD A,040H
+L03EE: LD (003BBH),A
+L03F1: CALL L043C
+ CALL L0494
+ OR A
+ JR Z,L03F1 ; (-009H)
+ LD (L005F),A
+ LD C,A
+ LD A,D
+ CALL POPRA
+ POP AF
+ EX AF,AF'
+ LD A,C
+ RET
+
+L0406: CALL L0426
+ PUSH HL
+ CALL L0494
+ LD HL,L005F
+ OR A
+ JR Z,L0419 ; (+006H)
+ CP (HL)
+ JR NZ,L0419 ; (+003H)
+ POP HL
+ XOR A
+ RET
+
+L0419: LD (HL),A
+ POP HL
+ RET
+
+L041C: CALL L0426
+ CALL L0494
+ LD (L005F),A
+ RET
+
+L0426: PUSH HL
+ LD HL,(L1360)
+ LD A,L
+ CP H
+ POP HL
+ RET Z
+ EX (SP),HL
+ INC A
+ LD (L1360),A
+ LD HL,L1361
+ CALL ADDHLA
+ LD A,(HL)
+ POP HL
+ RET
+
+L043C: DI
+ OUT (LSE3),A
+ LD A,(0E002H)
+ OUT (LSE1),A
+ EI
+ RLCA
+ RLCA
+ LD A,C
+ JR C,L0451 ; (+007H)
+ OR A
+ RET Z
+ LD C,000H
+ LD A,D
+DPALBK: JR L0456 ; (+005H)
+
+L0451: DEC A
+ RET Z
+ LD C,001H
+ LD A,E
+L0456: JP POPRA
+
+L0459: CALL SKPDE
+ LD DE,INKEY1
+ LD HL,L0B17
+ LD BC,L0A00
+ DI
+ OUT (LSE3),A
+L0468: LD A,B
+ ADD A,0EFH
+ LD (MMIO),A
+ CP FDPA
+ LD A,(0E001H)
+ JR NZ,L0477 ; (+002H)
+ OR 07FH
+L0477: CP 0FFH
+ JR Z,L047D ; (+002H)
+ SET 0,C
+L047D: EX DE,HL
+ CP (HL)
+ LD (HL),A
+ EX DE,HL
+ JR Z,L0485 ; (+002H)
+ SET 1,C
+L0485: CPL
+ AND (HL)
+ JR Z,L048B ; (+002H)
+ SET 2,C
+L048B: INC HL
+ INC DE
+ DJNZ L0468 ; (-027H)
+ LD A,C
+L0490: OUT (LSE1),A
+ EI
+DGCOL: RET
+
+L0494: CALL SKPDE
+ LD HL,L0B17
+ LD DE,INKEY1
+ PUSH HL
+ PUSH DE
+ LD BC,0000AH
+ LDIR
+ POP HL
+ POP DE
+ LD BC,L0AF9
+ DI
+ OUT (LSE3),A
+ LD A,C
+ LD (MMIO),A
+ NOP
+ LD A,(0E001H)
+ LD (DE),A
+L04B5: LD A,C
+ LD (MMIO),A
+ CP FDPA
+ LD A,(0E001H)
+ LD (DE),A
+ JR Z,L04E4 ; (+023H)
+ CPL
+ AND (HL)
+L04C3: LD (HL),A
+ INC DE
+ INC HL
+ DEC C
+ DJNZ L04B5 ; (-014H)
+ OUT (LSE1),A
+ EI
+ LD BC,L0A00
+L04CF: DEC HL
+ LD A,(HL)
+ OR A
+ JR NZ,L0507 ; (+033H)
+ INC C
+ DJNZ L04CF ; (-008H)
+ LD B,00AH
+L04D9: DEC DE
+ LD A,(DE)
+ CP 0FFH
+ JR NZ,L04E7 ; (+008H)
+L04DF: DJNZ L04D9 ; (-008H)
+L04E1: XOR A
+ JR L0490 ; (-054H)
+
+L04E4: XOR A
+ JR L04C3 ; (-024H)
+
+L04E7: LD A,B
+ CP 002H
+ JR NZ,L04F5 ; (+009H)
+L04EC: LD A,(DE)
+ AND 081H
+DWIDTH: JR NZ,L04DF ; (-012H)
+ LD A,01BH
+ JR L0490 ; (-065H)
+
+L04F5: CP 001H
+ JR Z,L04E1 ; (-018H)
+ CP 000H
+ JR NZ,L04DF ; (-01eH)
+ LD A,(DE)
+ AND 001H
+ JR NZ,L04DF ; (-023H)
+ LD A,(L005F)
+ JR L0490 ; (-077H)
+
+L0507: PUSH AF
+ LD A,B
+ LD (004FAH),A
+ LD A,(HL)
+ LD (004FFH),A
+ POP AF
+ DEC B
+ JR NZ,L054A ; (+036H)
+ CALL L05B7
+ LD A,(00B18H)
+ BIT 6,A
+ JR Z,L04E1 ; (-03dH)
+ BIT 0,A
+ LD A,B
+ JR NZ,L0525 ; (+002H)
+ ADD A,005H
+L0525: CP 00AH
+ JR NC,L04E1 ; (-048H)
+ LD L,A
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ LD BC,L12C0
+ ADD HL,BC
+ LD A,(HL)
+ OR A
+ JR Z,L04E1 ; (-057H)
+ LD DE,L1360
+ LD A,001H
+ LD (DE),A
+L053E: INC DE
+ LD BC,00010H
+ LDIR
+ LD A,(01362H)
+ JP L0490
+
+L054A: CALL L05B7
+ LD A,C
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,B
+ LD L,A
+ LD H,000H
+ LD A,(00B18H)
+ BIT 6,A
+ LD BC,L0B2B
+ JR Z,L058E ; (+02fH)
+ PUSH AF
+ LD A,(L0060)
+ CP 043H
+ JR NZ,L056B ; (+004H)
+ POP AF
+ XOR 001H
+ PUSH AF
+L056B: POP AF
+ BIT 0,A
+ JR NZ,L0573 ; (+003H)
+ LD BC,L0B3D
+L0573: LD A,(L0060)
+ CP 0FFH
+ JR NZ,L0587 ; (+00dH)
+ LD BC,L0B4F
+ LD A,(00B18H)
+ BIT 0,A
+ JR Z,L0587 ; (+003H)
+ LD BC,L0B61
+L0587: CALL L13E0
+ LD A,C
+ JP L0490
+
+L058E: CALL L13E0
+ LD A,C
+ CP 020H
+ JP C,L0490
+ LD HL,L0B73
+ LD B,005H
+L059C: CP (HL)
+ JR Z,L05B1 ; (+012H)
+ INC HL
+ DJNZ L059C ; (-006H)
+ CP 040H
+ JP C,L04E1
+ CP 05BH
+ JP NC,L04E1
+ SUB 040H
+ JP L0490
+
+L05B1: LD A,020H
+ SUB B
+ JP L0490
+
+L05B7: LD B,008H
+L05B9: RRCA
+ JR C,L05BF ; (+003H)
+ DJNZ L05B9 ; (-005H)
+ RET
+
+L05BF: DEC B
+ RET
+
+L05C1: LD A,0E8H
+ DI
+ OUT (LSE3),A
+ LD (MMIO),A
+ NOP
+ LD A,(0E001H)
+ OUT (LSE1),A
+ EI
+ AND 081H
+ RET Z
+ RLCA
+ RET C
+ JR L05C1 ; (-016H)
+
+L05D7: CALL SKPDE
+ LD HL,(L0054)
+ LD A,(L005B)
+ CP L
+ RET C
+ CALL PUSHW
+ LD A,(HL)
+ OR A
+ RET
+
+L05E8: CALL L05D7
+ RET Z
+L05EC: LD A,00DH
+ JP L0BFF
+
+L05F1: CALL L0BFD
+ LD A,(L0054)
+L05F7: SUB 00AH
+LBOUND: JR NC,L05F7 ; (-004H)
+ ADD A,00AH
+ RET Z
+ JR L05F1 ; (-00fH)
+
+L0600: CALL IOOUT
+ LD HL,(L0054)
+ PUSH HL
+ PUSH AF
+ RST 018H
+ DB 01EH
+ POP AF
+ RST 018H
+ DB 01DH
+ CALL POPRA
+ SET 3,H
+ LD DE,(0005DH)
+ LD A,E
+ OR D
+ CALL POPRA
+ POP HL
+ INC L
+HCLSW: LD A,(0005CH)
+ CP L
+ JP NC,L07EC
+L0624: LD A,(L005B)
+ LD L,A
+ INC H
+ PUSH HL
+ CALL PUSHW
+ LD (HL),001H
+ POP HL
+ LD A,(L0057)
+ CP H
+ JP NC,L07EC
+ LD H,A
+ PUSH HL
+ CALL L0730
+ POP HL
+ JP L07EC
+
+PUSHW: LD E,H
+ LD D,000H
+ LD HL,.HL
+ ADD HL,DE
+ RET
+
+L0648: LD HL,(L0054)
+ PUSH DE
+ PUSH AF
+ LD D,LSD0
+ LD E,L
+ LD A,H
+ ADD A,A
+HCLS: ADD A,A
+ ADD A,H
+ LD L,A
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,DE
+L065B: POP AF
+ POP DE
+ RET
+
+L065E: ADD A,A
+ LD HL,L0067
+ CALL ADDHLA
+ CALL INDRCT
+ JP (HL)
+
+L0669: LD B,D
+ LD C,E
+L066B: LD DE,00028H
+ EX DE,HL
+ ADD HL,DE
+ DEC B
+ JR Z,L067E ; (+00bH)
+ PUSH HL
+ PUSH BC
+ LD B,000H
+ CALL L069E
+ POP BC
+ POP HL
+ JR L066B ; (-013H)
+
+L067E: EX DE,HL
+ LD E,C
+L0680: LD A,(L005D)
+ LD D,A
+ LD A,(0005EH)
+ OR D
+ LD D,A
+L0689: DI
+ OUT (LSE3),A
+ LD (HL),000H
+ SET 3,H
+ LD (HL),D
+ RES 3,H
+ OUT (LSE1),A
+ EI
+ INC HL
+ DEC E
+ JR NZ,L0689 ; (-011H)
+ RET
+
+L069B: LD BC,00028H
+L069E: LD A,0B0H
+ JR L06A4 ; (+002H)
+
+L06A2: LD A,0B8H
+L06A4: LD (006BCH),A
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ RES 3,H
+ RES 3,D
+ CALL L06B8
+ POP BC
+ POP DE
+ POP HL
+ SET 3,H
+ SET 3,D
+L06B8: DI
+ OUT (LSE3),A
+ LDIR
+ OUT (LSE1),A
+ EI
+ RET
+
+L06C1: LD HL,VRAM
+ LD DE,0D7D0H
+ CALL L069B
+ LD HL,0D028H
+ LD DE,VRAM
+ LD B,032H
+L06D2: PUSH BC
+ CALL L069B
+ POP BC
+ DJNZ L06D2 ; (-007H)
+ LD HL,.HL
+ LD D,H
+ LD E,L
+ LD A,(HL)
+ INC HL
+ LD BC,00031H
+ LDIR
+ LD (DE),A
+ RET
+
+L06E7: LD HL,0D7CFH
+ LD DE,0D7F7H
+ LD B,032H
+L06EF: PUSH BC
+ LD BC,00028H
+ CALL L06A2
+ POP BC
+ DJNZ L06EF ; (-00aH)
+ LD HL,0D7D0H
+ LD DE,VRAM
+ CALL L069B
+ LD HL,L00D9
+ LD D,H
+ LD E,L
+ DEC HL
+ LD A,(DE)
+ LD BC,00031H
+ LDDR
+ LD (DE),A
+ RET
+
+L0710: LD HL,0D3E8H
+ XOR A
+ CALL POPRA
+ SET 3,H
+ LD A,(L005D)
+ CALL POPRA
+ LD DE,0D3E9H
+ LD BC,L0027
+ CALL L069E
+ CALL L06C1
+ XOR A
+ LD (L00C0),A
+ RET
+
+L0730: LD A,(L004E)
+ OR A
+ JR Z,L0710 ; (-026H)
+ CALL L075F
+ CALL L0669
+ LD A,(L0056)
+ LD H,A
+ CALL PUSHW
+ LD A,(L0057)
+ SUB E
+ LD B,A
+ LD (HL),000H
+ INC HL
+ LD D,H
+ LD E,L
+ INC DE
+ CALL NZ,LDHLDE
+ LD (HL),000H
+ RET
+
+L0754: LD A,(L005B)
+ LD L,A
+ LD A,(L0056)
+ LD H,A
+ JP L07EC
+
+L075F: LD HL,(L005B)
+ LD DE,(00056H)
+ LD A,D
+L0767: SUB E
+ INC A
+ LD D,A
+ LD A,H
+ SUB L
+ INC A
+L076D: LD E,A
+ CALL L0754
+ JP L0648
+
+ CALL SKPDE
+ LD A,(L004E)
+L077A: OR A
+ JR NZ,L078B ; (+00eH)
+ LD A,031H
+ LD (L0057),A
+ CALL L078B
+ LD A,018H
+ LD (L0057),A
+ RET
+
+L078B: CALL L075F
+L078E: PUSH DE
+ PUSH HL
+ CALL L0680
+ POP HL
+ LD BC,00028H
+ ADD HL,BC
+ POP DE
+ DEC D
+ JR NZ,L078E ; (-00eH)
+ LD A,(L0056)
+ LD H,A
+ CALL PUSHW
+ LD A,(L0057)
+ SUB E
+ ADD A,002H
+ LD B,A
+ JP ?CLRHL
+
+ XOR A
+ LD (0091FH),A
+ LD HL,(L0054)
+ PUSH HL
+ INC H
+ CALL PUSHW
+ LD A,(L0057)
+ LD D,A
+L07BD: LD A,(HL)
+ OR A
+ JR Z,L07C7 ; (+006H)
+ INC HL
+ INC E
+ LD A,D
+ CP E
+ JR NC,L07BD ; (-00aH)
+L07C7: DEC E
+ POP HL
+ LD H,E
+ JR L07DB ; (+00fH)
+
+ LD HL,(L0054)
+ JR L07DF ; (+00eH)
+
+ LD HL,(L0054)
+ INC L
+ LD A,(0005CH)
+ CP L
+ JR NC,L07EC ; (+011H)
+L07DB: LD A,(L005B)
+ LD L,A
+L07DF: INC H
+ LD A,(L0057)
+ CP H
+ JR NC,L07EC ; (+006H)
+ LD H,A
+ PUSH HL
+ CALL L0730
+ POP HL
+L07EC: LD (L0054),HL
+ RET
+
+ LD HL,(L0054)
+ JR L0802 ; (+00dH)
+
+ LD HL,(L0054)
+ LD A,(L005B)
+ CP L
+ JR C,0080DH ; (+00fH)
+ LD A,(0005CH)
+ LD L,A
+L0802: LD A,(L0056)
+ CP H
+ JR C,0080FH ; (+007H)
+ LD A,(L0056)
+ LD H,A
+ LD A,02DH
+ LD A,025H
+ JR L07EC ; (-026H)
+
+ LD A,0EFH
+ LD HL,L433E
+ LD HL,0FF3EH
+ LD (L0060),A
+ RET
+
+ LD HL,(L0054)
+ LD BC,(0005BH)
+ LD A,L
+ DEC L
+ INC C
+ CP C
+ JR NC,L0837 ; (+00cH)
+ PUSH HL
+ CALL PUSHW
+ LD A,(HL)
+ POP HL
+ INC L
+ OR A
+ JR Z,L0874 ; (+03fH)
+ LD L,B
+ DEC H
+L0837: LD DE,(00054H)
+ LD (L0054),HL
+L083E: EX DE,HL
+ LD A,(L005B)
+ CP L
+ JR C,L086D ; (+028H)
+L0845: PUSH HL
+ CALL PUSHW
+ LD A,(HL)
+ POP HL
+ OR A
+ JR Z,L085D ; (+00fH)
+ CALL L0882
+ PUSH HL
+ LD A,(0005CH)
+ LD L,A
+ DEC H
+ CALL L089A
+ POP HL
+ JR L0874 ; (+017H)
+
+L085D: LD A,(0005CH)
+ LD L,A
+ DEC H
+L0862: LD DE,(0005DH)
+ LD A,E
+ OR D
+ LD E,A
+ LD D,000H
+ JR L089A ; (+02dH)
+
+L086D: CALL L0882
+ DEC BC
+ CALL L0895
+L0874: INC L
+ LD A,(0005CH)
+ CP L
+ JR NC,L086D ; (-00eH)
+ LD A,(L005B)
+ LD L,A
+ INC H
+ JR L0845 ; (-03dH)
+
+L0882: PUSH HL
+ RST 018H
+ DB 01EH
+ SET 3,H
+ CALL BREAKX
+ LD E,A
+ RES 3,H
+ CALL BREAKX
+ LD D,A
+ LD B,H
+ LD C,L
+ POP HL
+ RET
+
+L0895: PUSH HL
+ LD H,B
+ LD L,C
+ JR L089D ; (+003H)
+
+L089A: PUSH HL
+ RST 018H
+ DB 01EH
+L089D: SET 3,H
+ LD A,E
+ CALL POPRA
+ RES 3,H
+ LD A,D
+ CALL POPRA
+ LD B,H
+ LD C,L
+ POP HL
+ RET
+
+L08AD: LD HL,(L0054)
+ CALL L0302
+ DEC E
+ LD H,E
+ LD A,(0005CH)
+ LD L,A
+ RET
+
+ CALL L08AD
+ CALL L0882
+ LD A,0F0H
+ CP D
+ JR Z,L08C8 ; (+003H)
+ XOR A
+ CP D
+ RET NZ
+L08C8: LD BC,(0005BH)
+ EX DE,HL
+ LD HL,(L0054)
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ JR Z,L0862 ; (-074H)
+ LD A,C
+ CP L
+ JR NC,L08E4 ; (+00aH)
+ DEC L
+ CALL L0882
+ INC BC
+ CALL L0895
+ JR L08C8 ; (-01cH)
+
+L08E4: PUSH HL
+ LD L,B
+ DEC H
+ CALL L0882
+ EX (SP),HL
+ CALL L089A
+ POP HL
+ JR L08C8 ; (-029H)
+
+ LD HL,L0071
+ LD (L005D),HL
+L08F7: LD HL,L1800
+ LD (L0056),HL
+ LD HL,L2700
+ LD (L005B),HL
+ XOR A
+ LD (L004E),A
+ RET
+
+ CALL SKPDE
+L090B: LD A,(DE)
+ INC DE
+ OR A
+ RET Z
+ LD C,A
+ CP 005H
+ JR Z,L0933 ; (+01fH)
+ CP 006H
+ JR Z,L0932 ; (+01aH)
+ SUB 041H
+ CP 01AH
+ JR NC,HCURON ; (+00dH)
+ LD A,000H
+ OR A
+ JR Z,HCURON ; (+008H)
+ LD A,C
+ LD HL,L08F7
+ CALL ADDHLA
+ LD C,(HL)
+HCURON: LD A,C
+ RST 018H
+ DB 003H
+ CP 00DH
+ JR NZ,L090B ; (-027H)
+L0932: XOR A
+L0933: LD (0091FH),A
+ JR L090B ; (-02dH)
+
+ AND C
+ SBC A,D
+ SBC A,A
+HCUROF: SBC A,H
+ SUB D
+ XOR D
+ SUB A
+ SBC A,B
+ AND (HL)
+ XOR A
+ XOR C
+ CP B
+ OR E
+FLASH: OR B
+ OR A
+ SBC A,(HL)
+ AND B
+ SBC A,L
+ AND H
+ SUB (HL)
+ AND L
+CURMOV: XOR E
+ AND E
+ SBC A,E
+ CP L
+ AND D
+ NOP
+ NOP
+L0954: NOP
+L0955: PUSH DE
+ PUSH HL
+ LD (L0954),A
+ LD (00952H),DE
+ LD HL,0E007H
+ DI
+ OUT (LSE3),A
+ LD (HL),0B4H
+ LD (HL),074H
+ DEC HL
+ LD (HL),0C0H
+ LD (HL),0A8H
+ DEC HL
+ LD (HL),002H
+ LD (HL),000H
+L0972: LD HL,0E007H
+ LD (HL),080H
+PONTCB: DEC HL
+ LD E,(HL)
+ LD D,(HL)
+PONTB: LD HL,0A8C0H
+ OR A
+ SBC HL,DE
+ JR NZ,L0972 ; (-010H)
+ LD HL,0E005H
+ LD (HL),0F6H
+ LD (HL),079H
+ OUT (LSE1),A
+ EI
+ POP HL
+ POP DE
+ RET
+
+L098F: PUSH BC
+ PUSH HL
+ DI
+ OUT (LSE3),A
+ LD HL,0E007H
+ LD (HL),080H
+ LD (HL),040H
+ DEC HL
+ LD E,(HL)
+ LD D,(HL)
+ DEC HL
+ LD C,(HL)
+ LD B,(HL)
+ OUT (LSE1),A
+ EI
+ PUSH BC
+ LD A,D
+L09A6: OR E
+ JR NZ,L09AC ; (+003H)
+ LD DE,0A8C0H
+L09AC: LD HL,0A8C0H
+ LD A,(L0954)
+ OR A
+ SBC HL,DE
+ LD DE,L5460
+ CALL L09EB
+ OR A
+ LD DE,(00952H)
+ RR D
+ RR E
+ PUSH AF
+ ADD HL,DE
+ LD DE,L5460
+ CALL L09EB
+ LD C,A
+ ADD HL,HL
+ EX DE,HL
+ POP AF
+ LD A,C
+ POP BC
+ PUSH AF
+ OR A
+ LD HL,L3CFB
+ SBC HL,BC
+ JR C,L09DC ; (+001H)
+ INC DE
+L09DC: POP AF
+ JR NC,L09E0 ; (+001H)
+ INC DE
+L09E0: EX DE,HL
+ LD DE,0A8C0H
+ CALL L09EB
+ EX DE,HL
+ POP HL
+ POP BC
+ RET
+
+L09EB: OR A
+ SBC HL,DE
+ JR NC,L09F2 ; (+002H)
+ ADD HL,DE
+ RET
+
+L09F2: XOR 001H
+ RET
+
+L09F5: LD A,04EH
+ DEC L
+ RET Z
+ LD A,056H
+ DEC L
+ RET Z
+ LD A,05EH
+ DEC L
+L0A00: RET Z
+L0A01: LD A,066H
+ DEC L
+ RET
+
+L0A05: PUSH DE
+ LD (00A23H),A
+ LD DE,0FFFFH
+ LD HL,0E002H
+ DI
+ OUT (LSE3),A
+L0A12: BIT 7,(HL)
+ JR Z,L0A12 ; (-004H)
+L0A16: BIT 7,(HL)
+ JR NZ,L0A16 ; (-004H)
+L0A1A: LD L,008H
+ LD A,011H
+L0A1E: DEC A
+ JR NZ,L0A1E ; (-003H)
+L0A21: INC DE
+ BIT 0,(HL)
+ JR Z,L0A21 ; (-005H)
+ OUT (LSE1),A
+ EI
+ LD A,D
+ OR A
+ LD A,E
+ JR Z,L0A30 ; (+002H)
+ LD A,0FFH
+L0A30: LD (L0066),A
+ POP DE
+ POP HL
+ SCF
+ RET
+
+ INC A
+ PUSH HL
+ LD L,A
+ CALL L09F5
+ JR Z,L0A05 ; (-03aH)
+ CALL L09F5
+ LD (00A75H),A
+ LD (00A55H),A
+ LD HL,0E002H
+ DI
+ OUT (LSE3),A
+L0A4E: BIT 7,(HL)
+ JR Z,L0A4E ; (-004H)
+ LD L,008H
+ BIT 0,(HL)
+ LD A,L
+ JR Z,L0A5A ; (+001H)
+ XOR A
+L0A5A: LD (00A7CH),A
+ OUT (LSE1),A
+ LD A,009H
+L0A61: PUSH AF
+ XOR A
+L0A63: DEC A
+ JR NZ,L0A63 ; (-003H)
+ POP AF
+BINPUT: DEC A
+ JR NZ,L0A61 ; (-009H)
+ OUT (LSE3),A
+ LD L,002H
+L0A6E: BIT 7,(HL)
+ JR Z,L0A6E ; (-004H)
+ LD L,008H
+ BIT 0,(HL)
+ LD A,L
+ JR Z,L0A7A ; (+001H)
+ XOR A
+L0A7A: LD L,A
+ LD A,000H
+ AND L
+ LD (L0065),A
+ OUT (LSE1),A
+ EI
+GETL: POP HL
+ OR A
+ RET
+
+ DI
+ RET
+
+ EI
+ RET
+
+ DS 110, 000H
+L0AF9: DS 30, 000H
+L0B17: DS 3, 000H
+INKEY$: DS 7, 000H
+INKEY1: DS 10, 000H
+L0B2B: JP PE,0900BH
+ RLA
+ CALL M,00019H
+ DEC SP
+ LD A,(L180D)
+ DJNZ L0B4A ; (+012H)
+ LD DE,01413H
+ CCF
+ CPL
+L0B3D: LD HL,(0900CH)
+ RLA
+ EI
+ DEC B
+ NOP
+ DEC HL
+ LD HL,(0160DH)
+ DEC D
+ LD (DE),A
+L0B4A: LD DE,01413H
+ ADD A,05FH
+L0B4F: JP (HL)
+
+ INC C
+ SUB B
+ RLA
+ LD L,B
+ DEC B
+ NOP
+ ADD A,H
+ JP (HL)
+
+ DEC C
+ LD D,015H
+ LD (DE),A
+ LD DE,01413H
+ ADC A,A
+ ADC A,E
+L0B61: LD L,D
+ INC C
+ SUB B
+ RLA
+ LD L,H
+ ADD HL,DE
+ NOP
+ CP 089H
+ DEC C
+ LD D,015H
+ LD (DE),A
+ LD DE,01413H
+ ADC A,D
+ LD A,E
+L0B73: LD E,E
+ LD E,H
+ LD E,L
+ LD E,(HL)
+ CPL
+$CRT: DB 091H,00BH,"CRT",000H,08AH ; $CRT - CRT device descriptor
+ DS 2, 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+INKEYF: DB 0AAH
+ DB 00BH
+ DB 0B5H
+ DB 00BH
+ DB 0C4H
+ DB 00BH
+$KB_: DB 000H ; $KB - Keyboard device descriptor
+ DB 00FH
+ DB 04BH
+ DB 042H
+ DS 2, 000H
+ DB 081H
+ DS 2, 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+INKEY0: DB 000H
+ DB LSE5
+ DB 000H
+ DB 0AAH
+ DB 00BH
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ RST 018H
+ DB 00CH
+ LD A,080H
+ RET C
+ JP C,0017DH
+ RST 018H
+ DB 017H
+ RET
+
+ EX AF,AF'
+ LD HL,L0BFF
+L0BB9: LD A,(DISPX)
+ OR A
+ JR Z,L0BC2 ; (+003H)
+ LD HL,L0C43
+L0BC2: EX AF,AF'
+ JP (HL)
+
+ LD A,(L0054)
+ RET
+
+ LD A,00DH
+L0BCA: PUSH AF
+ LD A,(FILOUT)
+L0BCE: OR A
+ JR NZ,L0BD4 ; (+003H)
+ POP AF
+ JR L0BFF ; (+02bH)
+
+L0BD4: POP AF
+ JP L0F3E
+
+ PUSH AF
+ LD A,(FILOUT)
+ OR A
+ JR NZ,L0BE2 ; (+003H)
+ POP AF
+ JR L0C43 ; (+061H)
+
+L0BE2: POP AF
+ JP L0F2E
+
+ CALL SKPDE
+ LD HL,L0BCA
+ JR L0BF4 ; (+006H)
+
+L0BEE: CALL SKPDE
+ LD HL,L0BFF
+L0BF4: LD A,(DE)
+ OR A
+ RET Z
+ CALL L00FA
+ INC DE
+ JR L0BF4 ; (-009H)
+
+L0BFD: LD A,020H
+L0BFF: CALL IOOUT
+L0C02: LD C,A
+ LD A,(L004D)
+ OR A
+ JR Z,L0C3A ; (+031H)
+ LD A,C
+ CP 020H
+ JR NC,L0C37 ; (+029H)
+ LD DE,(00054H)
+ LD HL,(L005B)
+ CP 014H
+ JR Z,L0C21 ; (+008H)
+ CP 012H
+ JR NZ,L0C26 ; (+009H)
+ LD HL,(L0056)
+ LD E,D
+L0C21: LD A,L
+ CP E
+ JP NC,L0D3F
+L0C26: LD A,C
+ LD HL,L0C8F
+ ADD A,L
+ LD L,A
+ JR NC,L0C2F ; (+001H)
+ INC H
+L0C2F: LD A,(HL)
+ INC A
+ JR Z,L0C3A ; (+007H)
+ DEC A
+ JP Z,L0D3F
+L0C37: CALL L0C60
+L0C3A: LD A,C
+ CP 020H
+ JP C,L065E
+ JP L0600
+
+L0C43: CALL IOOUT
+ LD C,A
+ CP 00DH
+ JR Z,L0C02 ; (-049H)
+ CALL L0600
+ LD A,(L004D)
+ OR A
+ RET Z
+ LD A,C
+ CP 011H
+ JR C,L0C8A ; (+032H)
+ CP 017H
+ JR C,L0C8C ; (+030H)
+ CP 020H
+ JR C,L0C8A ; (+02aH)
+L0C60: CP 060H
+ JR C,L0C8C ; (+028H)
+ CALL CHKACC
+ ADD HL,BC
+ ADD A,B
+ LD A,E
+ ADD A,08BH
+ RST 010H
+ RST 008H
+ CALL M,0FFFBH
+ JR Z,L0C8C ; (+019H)
+ CP 092H
+ JR C,L0C8A ; (+013H)
+ CALL CHKACC
+ ADD HL,BC
+ SBC A,C
+ SUB L
+ XOR H
+ AND A
+ OR H
+ OR C
+ OR (HL)
+ OR L
+ CP H
+ JR Z,L0C8A ; (+004H)
+ CP 0BFH
+ JR C,L0C8C ; (+002H)
+L0C8A: LD A,02EH
+L0C8C: JP L0FA9
+
+; ---------------------------------------------------------------------------
+; Control character translation table (indexed by char code 0x00-0x1F)
+; Used by L0C26: HL = L0C8F + C, A = (HL).
+; 0x00 → handle via L0D3F, 0xFF → skip, other → translate via L0C60
+; ---------------------------------------------------------------------------
+L0C8F: DB 000H,000H,000H,000H ; 00-03: NUL,SOH,STX,ETX → L0D3F
+ DB 0FFH,0FFH,0FFH,01DH ; 04-07: EOT,ENQ,ACK → skip; BEL → 0x1D
+ DB 000H,000H,000H,000H ; 08-0B: BS,HT,LF,VT → L0D3F
+ DB 000H,00DH,000H,000H ; 0C-0F: FF → L0D3F; CR → 0x0D; SO,SI → L0D3F
+ DB 000H,00AH,003H,020H ; 10-13: DLE → L0D3F; DC1 → 0x0A; DC2 → 0x03; DC3 → 0x20
+ DB 00EH,000H,000H,0FFH ; 14-17: DC4 → 0x0E; NAK,SYN → L0D3F; ETB → skip
+ DB 000H,0FFH,0FFH,00DH ; 18-1B: CAN → L0D3F; EM,SUB → skip; ESC → 0x0D
+ DB 0FFH,000H,000H,000H ; 1C-1F: FS → skip; GS,RS,US → L0D3F
+L0CAF: DI
+ XOR A
+ LD (L004D),A
+ LD (FILOUT),A
+ LD SP,L0000
+ OUT (LSE1),A
+ LD A,004H
+ RST 018H
+ DB 003H
+L0CC0: LD HL,L1B18
+ XOR A
+ LD (L0CC0),A
+ LD D,A
+ LD E,A
+ RST 018H
+ DB 026H
+ LD DE,$CMT
+ LD A,B
+ DEC A
+ JR Z,L0CDB ; (+009H)
+ LD DE,$FD
+ DEC A
+ JR Z,L0CDB ; (+003H)
+ LD DE,$QD
+L0CDB: LD A,C
+ RST 018H
+ DB 03AH
+ JP L00DA
+
+ LD HL,(TEXTED)
+ ADD HL,DE
+ LD (TEXTED),HL
+ LD HL,(VARST)
+ ADD HL,DE
+ LD (VARST),HL
+ LD HL,(STRST)
+ ADD HL,DE
+ LD (STRST),HL
+ LD HL,(VARED)
+ ADD HL,DE
+ LD (VARED),HL
+ LD HL,(TMPEND)
+ ADD HL,DE
+ LD (TMPEND),HL
+ RET
+
+L0D05: LD HL,(00B15H)
+L0D08: LD A,H
+ OR L
+ JR Z,L0D20 ; (+014H)
+ PUSH DE
+ EX DE,HL
+ LD HL,0E004H
+ DI
+ OUT (LSE3),A
+ LD (HL),E
+ LD (HL),D
+ LD A,001H
+ LD (TEMPO_),A
+ OUT (LSE1),A
+ EI
+ POP DE
+ RET
+
+L0D20: LD A,036H
+BRKEY: DI
+ OUT (LSE3),A
+ LD (0E007H),A
+ XOR A
+ LD (TEMPO_),A
+ OUT (LSE1),A
+ EI
+ RET
+
+L0D30: PUSH AF
+ PUSH BC
+ AND 00FH
+ LD B,A
+ LD A,008H
+ SUB B
+ LD (0119EH),A
+ POP BC
+ POP AF
+ RET
+
+L0D3E: XOR A
+L0D3F: PUSH HL
+ LD HL,L04EC
+ JR Z,L0D4E ; (+009H)
+ CP 001H
+L0D47: JR Z,L0D59 ; (+010H)
+ CALL L0D08
+ POP HL
+ RET
+
+L0D4E: CALL L0D08
+ LD HL,L2710
+L0D54: DEC HL
+ LD A,H
+ OR L
+ JR NZ,L0D54 ; (-005H)
+L0D59: CALL L0D20
+ POP HL
+ RET
+
+; ---------------------------------------------------------------------------
+; $USR Device Descriptor (User-defined device)
+;
+; Handlers pointing to 0x00E5 (monitor ROM) are stubs (no-op/error).
+; ZRO and ZWO share the same handler (USR_RO).
+; ZINP and ZOUT share the same handler (USR_IO).
+; ZWDIR and ZFREE are not emitted explicitly — USR_RO code at 0x0D77
+; overlaps these 2 DW fields (the first 4 bytes of USR_RO: 21 01 10 DF
+; encode ZWDIR=0x0121, ZFREE=0xDF10). Neither is called (flags1 bit7=1).
+; ---------------------------------------------------------------------------
+$USR: DW 00000H ; Next device = NULL (end of chain)
+L0D60: DB "USR",000H ; Device name
+ DB 09FH ; flags1: bit7=1 (no dir/free), bit4-0=0x1F
+ DB 000H ; flags2
+ DB 000H ; dirmx: 0
+ DW 000E5H ; ZINIT (monitor ROM stub)
+ DW USR_RO ; ZRO handler (read/write open)
+ DW USR_RO ; ZWO handler (same as ZRO)
+ DW 000E5H ; ZCL (monitor ROM stub)
+ DW 000E5H ; ZKL (monitor ROM stub)
+ DW USR_IO ; ZINP handler (user I/O dispatch)
+ DW USR_IO ; ZOUT handler (same as ZINP)
+ DW 000E5H ; ZDELT (monitor ROM stub)
+; ZWDIR/ZFREE implicit — next 4 bytes are USR_RO code, read as DW pointers
+;
+; ---------------------------------------------------------------------------
+; USR_RO - User device open (ZRO/ZWO handler)
+;
+; Calls SVC #13H to find the USR device entry point, stores it in ZWRK1.
+; ---------------------------------------------------------------------------
+USR_RO: LD HL,ELMD1
+ RST 018H
+ DB 013H
+ LD A,D
+ OR E
+ JP Z,01F9AH
+ LD (ZWRK1),DE
+ RET
+;
+; ---------------------------------------------------------------------------
+; USR_IO - User device I/O (ZINP/ZOUT handler)
+;
+; Dispatches to the user-supplied routine address stored in ZWRK1.
+; ---------------------------------------------------------------------------
+USR_IO: LD HL,(ZWRK1)
+ JP (HL)
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD A,(ZFLAG1)
+ BIT 7,A
+ JP NZ,01F97H
+ JP L1989
+
+L0D9B: LD B,(IY+000H)
+ CALL L1C39
+ LD A,(ELMD)
+ CP B
+ JP NZ,01F9DH
+ RET
+
+L0DA9: LD A,(L004D)
+ OR A
+ LD A,(LPOSB)
+ RET Z
+ LD A,(L0054)
+ RET
+
+ DS 40, 000H
+EQTBL: DS 25, 000H
+$KB: DS 10, 000H
+L0E00: DS 16, 000H
+L0E10: DS 46, 000H
+L0E3E: DS 35, 000H
+CRT1C: DS 82, 000H
+PLTOTX: DS 77, 000H
+$LPT: DB 0F7H,"/LPT",000H,08AH ; $LPT - Line printer device descriptor
+ DS 2, 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DS 3, 000H
+ DB 027H
+ DB 00FH
+ DB 019H
+ DB 00FH
+ JP L0DA9
+
+ RET
+
+L0F1D: LD A,00DH
+ CALL L0FA9
+ XOR A
+ LD (LPOSB),A
+ RET
+
+ LD HL,DISPX
+ BIT 0,(HL)
+ JR Z,L0F3E ; (+010H)
+L0F2E: CALL IOOUT
+ LD B,A
+ LD A,(L004D)
+ OR A
+ LD A,B
+ LD E,0FFH
+ JR Z,L0F4E ; (+013H)
+ RST 018H
+ DB 004H
+ RET
+
+L0F3E: CALL IOOUT
+ LD B,A
+ LD A,(L004D)
+ OR A
+ LD A,B
+ LD E,000H
+ JR Z,L0F4E ; (+003H)
+ RST 018H
+ DB 003H
+ RET
+
+L0F4E: LD A,(PNMODE)
+ CP 001H
+ LD A,044H
+ JP NZ,00180H
+ LD A,B
+ CP 00DH
+ JR Z,L0F1D ; (-040H)
+ LD HL,LPOSB
+ INC (HL)
+ SUB 005H
+ CP 002H
+ JR C,L0F7C ; (+015H)
+ LD A,B
+ CP 020H
+ JR NC,L0FB0 ; (+044H)
+ BIT 0,E
+ JR Z,L0F80 ; (+010H)
+ SUB 011H
+ CP 006H
+ JR C,L0FB1 ; (+03bH)
+ SUB QDPC
+ CP 002H
+ JR NC,L0FAE ; (+032H)
+L0F7C: LD A,02EH
+ JR L0FB0 ; (+030H)
+
+L0F80: LD HL,LPOSB
+ DEC (HL)
+ LD A,B
+ CP 015H
+ LD B,00FH
+ JR Z,L0FB1 ; (+026H)
+ CP 011H
+ LD B,009H
+ JR Z,L0FB1 ; (+020H)
+ CP 012H
+ LD B,00BH
+ JR Z,L0FB1 ; (+01aH)
+ CP 016H
+ JR NZ,L0FB0 ; (+015H)
+ LD A,00CH
+ CALL L0FB0
+ LD A,00AH
+ CALL L0FB0
+ LD A,003H
+ JR L0FB0 ; (+007H)
+
+L0FA9: CALL IOOUT
+ JR L0FB0 ; (+002H)
+
+L0FAE: LD A,020H
+L0FB0: LD B,A
+L0FB1: CALL L0FCA
+ LD A,B
+ DI
+ CALL L0FBB
+ EI
+ RET
+
+L0FBB: OUT (0FFH),A
+ LD A,080H
+ OUT (0FEH),A
+ LD A,001H
+ CALL L0FCB
+L0FC6: XOR A
+ OUT (0FEH),A
+ RET
+
+L0FCA: XOR A
+L0FCB: CALL SKPDE
+ LD C,A
+ LD B,00EH
+L0FD1: LD HL,0E678H
+L0FD4: IN A,(0FEH)
+ AND 00DH
+ CP C
+ RET Z
+ DEC HL
+ LD A,H
+ OR L
+ NOP
+ NOP
+ JR NZ,L0FD4 ; (-00dH)
+ DJNZ L0FD1 ; (-012H)
+ XOR A
+ LD (L004D),A
+ CALL L0FC6
+ LD A,041H
+ JP L0182
+
+ DS 17, 000H
+; ===========================================================================
+; BASIC System Workspace (0x1000-0x109F)
+; ===========================================================================
+;
+; --- ELMD: File header / element data (0x1000-0x103F) ---
+ELMD: DB 000H ; File type (0=obj, 1=BTX, 2=BASIC, 3=data, 5=MZF)
+ELMD1: DS 17, 000H ; Filename (17 bytes, null-padded)
+ELMD18: DW 00000H ; File size (bytes)
+ELMD20: DW 00000H ; Load address / BASIC program size
+ELMD22: DW 00000H ; Execution address
+ELMD24: DW 00000H ; Reserved
+ELMD26: DW 00000H ; Reserved
+ DS 2, 000H
+ELMD30: DW 00000H ; Reserved
+ELMD32: DW 00000H ; Reserved
+ DS 6, 000H
+SDDRIVENO: DB 000H ; SD drive number (numeric 0-9)
+CMTFILENO: DB 000H ; Sequential file counter
+ DS 20, 000H
+L103E: DS 2, 000H
+;
+; --- Device workspace (0x1040-0x106F) ---
+ZTOP: DW 00002H ; Top of device chain pointer
+ZLOG: DB 000H ; Logical unit number
+ZRWX: DB 000H ; Read/write mode
+ZEQT: DW 00000H ; Equipment/device type
+ZCH: DB 000H ; Channel number
+ZEOF: DB 000H ; End of file flag
+ZWRK1: DW 00000H ; Work area 1 (16-bit)
+ZNXT: DW 00000H ; Next byte pointer
+ZDEVNM: DS 4, 000H ; Active device name (4 bytes)
+ZFLAG1: DB 001H ; Active device flags1
+ZFLAG2: DB 000H ; Active device flags2
+ZDIRMX: DB 000H ; Active device max dir entries
+ZINIT: DW 00000H ; Active ZINIT function pointer
+ZRO: DW 00000H ; Active ZRO function pointer
+ZWO: DW 00000H ; Active ZWO function pointer
+ZCL: DW 00000H ; Active ZCL function pointer
+ZKL: DW 00000H ; Active ZKL function pointer
+ZINP: DW 00000H ; Active ZINP function pointer
+ZOUT: DW 00000H ; Active ZOUT function pointer
+ZDELT: DW 00000H ; Active ZDELT function pointer
+ZWDIR: DW 00000H ; Active ZWDIR function pointer
+ZFREE: DW 00000H ; Active ZFREE function pointer
+ DS 2, 000H
+DCHAN: DB 000H ; Default channel
+DDEV: DW 00000H ; Default device descriptor pointer
+_CRT: DW 00B78H ; CRT device descriptor pointer
+_LPT: DW 00F00H ; LPT device descriptor pointer
+;
+; --- BASIC memory pointers (0x1070-0x109F) ---
+TEXTST: DW 00000H ; Start of BASIC text
+TEXTED: DW 00000H ; End of BASIC text
+VARST: DW 00000H ; Start of variables
+STRST: DW 00000H ; Start of string space
+VARED: DW 00000H ; End of variables
+TMPEND: DW 00000H ; End of temporary area
+INTFAC: DW 00000H ; Integer accumulator
+MEMLMT: DW 00000H ; Memory limit
+MEMMAX: DW 0FF00H ; Maximum memory
+CURXY: DW 00000H ; Cursor X,Y position
+POSADR: DW 00000H ; Cursor VRAM address
+BITADR: DW 00000H ; Bit address
+POINTX: DW 00000H ; Graphics point X
+POINTY: DW 00000H ; Graphics point Y
+CURFLG: DB 000H ; Cursor flag
+CURMAK: DB 000H ; Cursor make flag
+CMTMSG: DB 000H ; CMT message flag
+INPFLG: DB 000H ; Input flag
+DISPX: DB 000H ; Display X position
+FILOUT: DB 000H ; File output flag
+PSEL: DB 001H ; Printer select
+PCRLF: DB 000H ; Printer CR/LF mode
+LPT_TM: DB 00EH ; LPT timeout
+LPOSB: DB 000H ; LPT position
+PSMAL: DB 000H ; Printer small flag
+PNMODE: DB 001H ; Printer mode
+DMD: DB 000H ; Display mode
+MEMOP: DB 000H ; Memory operation flag
+PWMODE: DB 000H ; Power mode
+CMODE: DB 000H ; Color mode
+CPLANE: DB 000H ; Color plane
+MAXCF: DB 000H ; Max color flag
+PMASK: DB 000H ; Plane mask
+GMODE: DB 000H ; Graphics mode
+ DS 80, 000H ; 0x10A0-0x10EF (padding to L10F0)
+L10F0: DS 78, 000H
+L113E: DS 84, 000H
+ RST 028H
+ NOP
+ NOP
+ NOP
+ NOP
+SUMDT: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD BC,00504H
+ DS 3, 000H
+KEYBM1: DB 000H
+KEYBUF: DS 154, 000H
+L123E: DS 57, 000H
+L1277: DS 73, 000H
+; ---------------------------------------------------------------------------
+; Function key definition table (F1-F10 defaults, stored in RAM)
+; Each entry: 1 byte length + string + zero-padded to 16 bytes total.
+; Loaded at startup, modifiable via DEF KEY statement.
+; ---------------------------------------------------------------------------
+L12C0: DB 007H,"RUN",020H,020H,020H,00DH ; F1: RUN
+ DS 8, 000H
+ DB 005H,"LIST",020H ; F2: LIST
+ DS 10, 000H
+ DB 005H,"AUTO",020H ; F3: AUTO
+ DS 10, 000H
+ DB 006H,"RENUM",020H ; F4: RENUM
+ DS 9, 000H
+ DB 004H,"DIR",020H ; F5: DIR
+ DS 11, 000H
+ DB 005H,"CHR$(" ; F6: CHR$(
+ DS 10, 000H
+ DB 008H,"DEF KEY(" ; F7: DEF KEY(
+ DS 7, 000H
+ DB 004H,"CONT" ; F8: CONT
+ DS 9, 000H
+L133E: DS 2, 000H ; (last 2 bytes of F8 entry, used as workspace)
+ DB 006H,"SAVE",020H,020H ; F9: SAVE
+ DS 9, 000H
+ DB 006H,"LOAD",020H,020H ; F10: LOAD
+ DS 9, 000H
+L1360: DB 000H ; F11: (empty/unused)
+L1361: DS 15, 000H ; (F11 padding, used as workspace)
+ DB 000H ; End marker
+L1371: DB 000H ; End marker
+ CALL L13D8
+ JR Z,L1385 ; (+00eH)
+L1377: CP 010H
+ JR C,L139B ; (+020H)
+ CP 080H
+ JR Z,L13A1 ; (+022H)
+ CP 0C0H
+ JR Z,L13A1 ; (+01eH)
+ JR L1391 ; (+00cH)
+
+L1385: CP 003H
+ JR Z,L139B ; (+012H)
+ CP 005H
+ JR Z,L139E ; (+011H)
+ CP 006H
+ JR Z,L139E ; (+00dH)
+L1391: DI
+ OUT (LSE2),A
+ CALL L0BB9
+ OUT (LSE0),A
+ EI
+ RET
+
+L139B: LD A,0F0H
+ RET
+
+L139E: ADD A,0C9H
+ RET
+
+L13A1: SUB 040H
+ RET
+
+L13A4: CP 0F0H
+ JR NC,L13CF ; (+027H)
+ CP 073H
+ JR Z,L139B ; (-011H)
+ CALL L13D8
+ JR Z,L13BB ; (+00aH)
+ CP 040H
+ JR Z,L13D5 ; (+020H)
+ CP 080H
+ JR Z,L13D5 ; (+01cH)
+ JR L13C3 ; (+008H)
+
+L13BB: CP 0CEH
+ JR Z,L13D2 ; (+013H)
+ CP 0CFH
+ JR Z,L13D2 ; (+00fH)
+L13C3: DI
+ OUT (LSE2),A
+ CALL L0BCE
+ OUT (LSE0),A
+ EI
+ CP 0F0H
+ RET NZ
+L13CF: LD A,020H
+ RET
+
+L13D2: SUB 0C9H
+ RET
+
+L13D5: ADD A,040H
+ RET
+
+L13D8: PUSH HL
+ LD HL,L0036
+ BIT 6,(HL)
+ POP HL
+ RET
+
+L13E0: PUSH AF
+ LD A,L
+ SUB 008H
+ JR C,L13EA ; (+004H)
+ SUB 030H
+ JR C,L13F1 ; (+007H)
+L13EA: ADD A,00AH
+ LD L,A
+ ADD HL,BC
+ LD C,(HL)
+ POP AF
+ RET
+
+L13F1: LD A,(BC)
+ PUSH AF
+ INC BC
+ LD A,(BC)
+ LD B,A
+ POP AF
+ LD C,A
+ ADD HL,BC
+ DI
+ OUT (LSE2),A
+ LD A,(HL)
+ OUT (LSE0),A
+ EI
+ CALL L13A4
+ LD C,A
+ POP AF
+ RET
+
+ PUSH HL
+ PUSH BC
+ PUSH DE
+ LD DE,L2710
+ CALL L142C
+ LD DE,003E8H
+ CALL L142C
+ LD DE,L0064
+ CALL L142C
+ LD DE,0000AH
+ CALL L142C
+ LD A,L
+ POP DE
+ OR 030H
+ LD (DE),A
+ INC DE
+ XOR A
+ LD (DE),A
+ POP BC
+ POP HL
+ RET
+
+L142C: LD A,0FFH
+L142E: INC A
+ OR A
+ SBC HL,DE
+ JR NC,L142E ; (-006H)
+ ADD HL,DE
+ OR A
+ JR NZ,L143B ; (+003H)
+ OR B
+ RET Z
+ XOR A
+L143B: LD B,001H
+ OR 030H
+ POP DE
+ EX (SP),HL
+ LD (HL),A
+ INC HL
+ EX (SP),HL
+ PUSH DE
+ RET
+
+ CALL TEST1
+ DB 024H
+ JR Z,L1476 ; (+02aH)
+ LD DE,L0000
+L144F: CALL HLFTCH
+ SUB 030H
+ CP 00AH
+ RET NC
+ INC HL
+ PUSH HL
+ LD H,D
+ LD L,E
+ ADD HL,HL
+ JR C,L1471 ; (+013H)
+ ADD HL,HL
+ JR C,L1471 ; (+010H)
+ ADD HL,DE
+ JR C,L1471 ; (+00dH)
+ ADD HL,HL
+ JR C,L1471 ; (+00aH)
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ JR C,L1471 ; (+004H)
+ EX DE,HL
+ POP HL
+ JR L144F ; (-022H)
+
+L1471: LD A,002H
+ JP L0182
+
+L1476: LD DE,L0000
+L1479: LD A,(HL)
+ CALL L1491
+ RET C
+ INC HL
+ EX DE,HL
+ ADD HL,HL
+ JR C,L1471 ; (-012H)
+ ADD HL,HL
+ JR C,L1471 ; (-015H)
+ ADD HL,HL
+ JR C,L1471 ; (-018H)
+ ADD HL,HL
+ JR C,L1471 ; (-01bH)
+ ADD A,L
+ LD L,A
+ EX DE,HL
+ JR L1479 ; (-018H)
+
+L1491: SUB 030H
+ CP 00AH
+ CCF
+ RET NC
+ SUB 011H
+ CP 006H
+ CCF
+ RET C
+ ADD A,00AH
+ RET
+
+ CALL L14AD
+ CP 020H
+ RET NZ
+L14A6: CALL L14AD
+ OR A
+ JR Z,L14A6 ; (-006H)
+ RET
+
+L14AD: RST 018H
+ DB 00EH
+ JR Z,L14B8 ; (+007H)
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ CP 01BH
+ RET NZ
+L14B8: JP 0017DH
+
+ RET
+
+L14BC: CALL SKPDE
+ LD HL,KEYBUF
+ LD B,000H
+ PUSH HL
+ CALL LDHLDE
+ POP DE
+ LD (014DAH),SP
+ LD SP,L10F0
+ DI
+ OUT (LSE4),A
+ RST 030H
+ OUT (LSE0),A
+ OUT (LSE1),A
+ EI
+ LD SP,L0000
+ RET
+
+ LD (DDEV),DE
+ LD (DCHAN),A
+ RET
+
+ LD C,A
+ RST 018H
+ DB 020H
+ RST 018H
+ DB 002H
+ BIT 7,C
+ JR Z,L14F8 ; (+00aH)
+ LD HL,KEYBUF
+ PUSH HL
+ CALL L1535
+ POP DE
+ RST 018H
+ DB 005H
+L14F8: LD A,C
+ AND 07FH
+ JR L14FF ; (+002H)
+
+L14FD: LD A,045H
+L14FF: LD DE,L1554
+L1502: DEC A
+ JR Z,L150F ; (+00aH)
+ EX AF,AF'
+L1506: LD A,(DE)
+ INC DE
+ OR A
+ JP P,L1506
+ EX AF,AF'
+ JR L1502 ; (-00dH)
+
+L150F: LD A,(DE)
+ CP 080H
+ JR Z,L14FD ; (-017H)
+L1514: LD A,(DE)
+ OR A
+ JP M,L151F
+ CALL L152A
+ INC DE
+ JR L1514 ; (-00bH)
+
+L151F: AND 07FH
+ CALL L152A
+ LD DE,L179E
+ RST 018H
+ DB 005H
+ RET
+
+L152A: PUSH DE
+ LD DE,L1533
+ LD (DE),A
+ RST 018H
+ DB 005H
+ POP DE
+ RET
+
+L1533: NOP
+ NOP
+L1535: LD DE,(ZEQT)
+ INC DE
+ INC DE
+ RST 018H
+ DB 017H
+ CALL LDHLDE
+ LD A,(ZCH)
+ ADD A,031H
+ LD (HL),A
+ LD A,(01051H)
+ AND 00FH
+ JR Z,L154E ; (+001H)
+ INC HL
+L154E: LD (HL),03AH
+ INC HL
+ LD (HL),000H
+ RET
+
+L1554: DB 053H,005H,"YNTA",0D8H,04FH,005H,"VER FLO",0D7H,049H,005H ; Error message table (bit-7 terminated)
+ DS 2, 04CH
+ DB "EGAL DAT",0C1H,054H,005H,"YPE MISMATC",0C8H,053H,005H,"TRING LENGT",0C8H,04DH,005H,"EMORY CAPACIT",0D9H,041H,005H
+ DS 2, 052H
+ DB "AY DEF",0AEH,04CH,005H,"INELENGT",0C8H,080H,"GOSUB ",005H,"NESTIN",0C7H,"FOR-NEX",0D4H,"DEF FN ",005H,"NESTIN",0C7H,"NEX",0D4H,"RETUR",0CEH,055H,005H,"N DEF. FUNCTIO",0CEH,055H,005H,"N DEF. LIN",0C5H,043H,005H,"AN'T ",006H,"CON",0D4H,04DH,005H,"EMORY PROTECTIO",0CEH,049H,005H,"NSTRUCTIO",0CEH,043H,005H,"AN'T ",006H,"RESUM",0C5H,"RESUM",0C5H
+ DS 2, 080H
+ DB "REA",0C4H,"SWAP ",005H,"LEVE",0CCH
+ DS 2, 080H
+ DB 053H,005H,"YSTEM I",0C4H,046H,005H,"RAMIN",0C7H,04FH,005H,056H,045H
+ DS 2, 052H
+ DB 055H,0CEH,050H,005H,"ARIT",0D9H
+ DS 8, 080H
+ DB 046H,005H,"ILE NOT FOUN",0C4H,048H,005H,"ARDWAR",0C5H,041H,005H,"LREADY EXIS",0D4H,041H,005H,"LREADY OPE",0CEH,04EH,005H,"OT OPE",0CEH,080H,057H,005H,"RITE PROTEC",0D4H
+ DS 3, 080H
+ DB 04EH,005H,"OT READ",0D9H,054H,005H
+ DS 2, 04FH
+ DB " MANY FILE"
+ DB LSD3
+ DB 044H,005H,"ISK MISMATC",0C8H,04EH,005H,"O FILE SPAC",0C5H,055H,005H,"NFORMA",0D4H,054H,005H
+ DS 2, 04FH
+ DB " LONG FIL",0C5H
+ DS 2, 080H
+ DB 044H,005H,"EV. NAM",0C5H,043H,005H,"AN'T EXECUT",0C5H,049H,005H
+ DS 2, 04CH
+ DB "EGAL FILENAM",0C5H,049H,005H
+ DS 2, 04CH
+ DB "EGAL FILEMOD",0C5H,080H,04FH,005H,"UT OF FIL",0C5H,04CH,005H,"OGICAL NUMBE"
+ DB LSD2
+ DB "LPT:"
+L1772: DB 04EH,005H,"OT READ",0D9H
+ DS 2, 080H
+ DB 044H,005H,"EV. MOD",0C5H,055H,005H,"NPRINTABL",0C5H,043H,005H,"HECK SU",0CDH
+L179E: DB 020H
+ DB 005H
+ DB 045H
+ DS 2, 052H
+ DB 04FH
+ DB 052H
+ DS 91, 000H
+L1800: JP L4000
+
+L1803: LD A,(ZLOG)
+ CP 088H
+ RET
+
+L1809: NOP
+ NOP
+L180B: NOP
+ NOP
+L180D: NOP
+ NOP
+ CALL L181A
+ CALL L1821
+L1815: XOR A
+ LD (L1FC0),A
+ RET
+
+L181A: LD A,(ZLOG)
+ LD (L1FC0),A
+ RET
+
+L1821: CALL SKPDE
+ LD A,(ZFLAG1)
+ BIT 7,A
+ LD HL,L1848
+L182C: JR Z,L183D ; (+00fH)
+ BIT 3,A
+ LD HL,L1835
+ JR NZ,L183D ; (+008H)
+L1835: LD IX,(ZOUT)
+ CALL IOCALL
+ RET
+
+L183D: LD A,B
+L183E: OR A
+ RET Z
+ LD A,(DE)
+ CALL L00FA
+ INC DE
+ DEC B
+ JR L183D ; (-00bH)
+
+L1848: CALL SKPDE
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+ LD HL,(L180B)
+ ADD HL,DE
+ LD (HL),A
+ INC DE
+ LD HL,(ZKL)
+ OR A
+ SBC HL,DE
+ CALL Z,L1871
+ LD (IY+040H),E
+ LD (IY+041H),D
+ INC (IY+014H)
+ RET NZ
+ INC (IY+015H)
+ RET NZ
+ JP 01F91H
+
+L1871: PUSH BC
+ LD B,002H
+L1874: CALL L1D15
+ LD IX,L1835
+ JR Z,L1881 ; (+004H)
+ LD IX,L2907
+L1881: LD A,B
+ CALL L18B6
+ CALL L1890
+ INC (IY+04EH)
+ LD DE,L0000
+ POP BC
+ RET
+
+L1890: JP (IX)
+
+L1892: LD A,01AH
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+L189A: LD HL,(L180B)
+ ADD HL,DE
+ LD (HL),A
+ INC DE
+ LD HL,(ZKL)
+ XOR A
+ SBC HL,DE
+ JR NZ,L189A ; (-00eH)
+ PUSH BC
+ LD HL,(L180B)
+ DEC HL
+ LD (HL),0FFH
+ DEC HL
+ LD (HL),0FFH
+ LD B,006H
+ JR L1874 ; (-042H)
+
+L18B6: LD BC,(ZKL)
+ INC BC
+ INC BC
+ LD HL,(L180B)
+ DEC HL
+ DEC HL
+ LD DE,(01809H)
+ RET
+
+L18C6: OR 0AFH
+ LD IX,(ZCL)
+ CALL IOCALL
+ RET
+
+ CALL L1803
+ RET NZ
+ PUSH DE
+ LD DE,KEYBUF
+ CALL L026A
+ LD (0193CH),DE
+ POP DE
+ RET NC
+ JP 0017DH
+
+ PUSH HL
+ PUSH DE
+ CALL L181A
+ LD HL,(ZTOP)
+ INC HL
+ BIT 7,(HL)
+ PUSH HL
+ LD B,000H
+ SCF
+ CALL Z,L1913
+ POP HL
+ CALL C,L1908
+ POP DE
+ PUSH AF
+ CALL L1815
+ LD L,B
+ LD H,000H
+ ADD HL,DE
+ LD (HL),000H
+ POP AF
+ POP HL
+ RET
+
+L1908: SET 7,(HL)
+ LD HL,01051H
+ BIT 4,(HL)
+ RET Z
+ JP 01FA0H
+
+L1913: CALL L1803
+ JR Z,L193B ; (+023H)
+ LD A,(ZFLAG1)
+ BIT 7,A
+ LD HL,L1989
+ JR Z,L1975 ; (+053H)
+ BIT 2,A
+ LD HL,L1929
+ JR NZ,L1975 ; (+04cH)
+L1929: LD IX,(ZINP)
+ CALL IOCALL
+ RET
+
+L1931: LD A,03FH
+ RST 018H
+ DB 003H
+ LD A,020H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 034H
+L193B: LD HL,L0000
+L193E: CALL HLFTCH
+ OR A
+ JR Z,L1931 ; (-013H)
+ LD C,000H
+ RST 018H
+ DB 036H
+ LD (0193CH),HL
+ RET
+
+ LD B,000H
+ CALL TEST1
+ DB 022H
+ JR NZ,L1967 ; (+013H)
+L1954: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ JR Z,L1961 ; (+005H)
+ LD (DE),A
+ INC DE
+ INC B
+ JR L1954 ; (-00dH)
+
+L1961: CALL TEST1
+ DB 02CH
+ OR A
+ RET
+
+L1967: LD A,(HL)
+ OR A
+ RET Z
+ CP C
+ RET Z
+ INC HL
+ CP 02CH
+ RET Z
+ LD (DE),A
+ INC DE
+ INC B
+ JR L1967 ; (-00eH)
+
+L1975: LD (0197BH),HL
+ LD B,000H
+L197A: CALL L0000
+ RET C
+ CP 00DH
+ RET Z
+ LD (DE),A
+ INC DE
+ INC B
+ JR NZ,L197A ; (-00cH)
+ JP 01F76H
+
+L1989: CALL SKPDE
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+ LD HL,(ZKL)
+ OR A
+ SBC HL,DE
+ CALL Z,L19B4
+ RET C
+ LD L,(IY+04EH)
+ LD H,(IY+04FH)
+ XOR A
+ SBC HL,DE
+ SCF
+ RET Z
+ LD HL,(L180B)
+ ADD HL,DE
+ LD A,(HL)
+ INC DE
+ LD (IY+040H),E
+ LD (IY+041H),D
+ RET
+
+L19B4: CALL L1D15
+ JP NZ,L2A4C
+ OR 0AFH
+ CALL L18B6
+ CALL L1929
+ RET C
+ LD A,(HL)
+ INC HL
+ AND (HL)
+ LD (HL),0FFH
+ INC A
+ LD DE,L0000
+ RET NZ
+ PUSH HL
+ LD HL,(L180D)
+ LD BC,(ZKL)
+L19D5: DEC HL
+ DEC BC
+ LD A,(HL)
+ OR A
+ JR Z,L19D5 ; (-006H)
+ POP HL
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ RET
+
+ CALL SKPDE
+ LD HL,L1A2D
+ CP 088H
+ JR Z,L19F4 ; (+00aH)
+ LD HL,L1A35
+ CP 089H
+ JR Z,L19F4 ; (+003H)
+ RST 018H
+ DB 029H
+ RET C
+L19F4: LD (ZTOP),HL
+ LD DE,ZLOG
+ LD BC,00008H
+ LDIR
+ LD (L1809),HL
+ PUSH HL
+ POP IY
+ LD DE,ELMD
+ CALL L1C54
+ PUSH HL
+ LD HL,(ZEQT)
+ LD DE,ZNXT
+ LD BC,0001DH
+ LDIR
+ POP HL
+ LD BC,00010H
+ ADD HL,BC
+ LD (L180B),HL
+ LD BC,(ZKL)
+ ADD HL,BC
+ LD (L180D),HL
+ LD A,(ZRWX)
+ AND 00FH
+ RET
+
+L1A2D: ADC A,B
+ INC BC
+ LD A,B
+ DEC BC
+ NOP
+ NOP
+ NOP
+ NOP
+L1A35: ADC A,C
+ LD (BC),A
+ NOP
+ RRCA
+ NOP
+ NOP
+ NOP
+ NOP
+ LD HL,KEYBUF
+ PUSH HL
+ LD A,B
+ OR A
+ CALL NZ,LDHLDE
+ LD (HL),000H
+ LD HL,$CRT
+ JR L1A50 ; (+003H)
+
+L1A4D: LD HL,L0000
+L1A50: LD A,L
+ OR H
+ JR Z,L1A89 ; (+035H)
+ LD (01A84H),HL
+ CALL LDDEMI
+ LD (01A4EH),DE
+ LD DE,KEYBUF
+ EX DE,HL
+L1A62: LD A,(DE)
+ OR A
+ JR Z,L1A6D ; (+007H)
+ CP (HL)
+ JR NZ,L1A4D ; (-01cH)
+ INC HL
+ INC DE
+ JR L1A62 ; (-00bH)
+
+L1A6D: LD A,(HL)
+ INC HL
+ CP 03AH
+ LD C,000H
+ JR Z,L1A82 ; (+00dH)
+ SUB 031H
+ CP 009H
+ JR NC,L1A4D ; (-02eH)
+ LD C,A
+ LD A,(HL)
+ INC HL
+ CP 03AH
+ JR NZ,L1A4D ; (-035H)
+L1A82: EX (SP),HL
+ LD HL,L0000
+ LD A,C
+ JR L1A9B ; (+012H)
+
+L1A89: POP HL
+ PUSH HL
+L1A8B: LD A,(HL)
+ INC HL
+ CP 03AH
+ JP Z,01F94H
+ OR A
+ JR NZ,L1A8B ; (-00aH)
+ LD HL,(DDEV)
+ LD A,(DCHAN)
+L1A9B: LD (ZEQT),HL
+ PUSH HL
+ LD (ZCH),A
+ LD DE,ZNXT
+ LD BC,0001DH
+ LDIR
+ LD B,A
+ LD A,(01051H)
+ AND 007H
+ CP B
+ JP C,01F94H
+ LD A,B
+ POP DE
+ POP HL
+ RET
+
+ CALL SKPDE
+ RST 018H
+ DB 02CH
+ EX DE,HL
+ LD HL,ELMD1
+ LD B,01FH
+ CALL ?CLRHL
+ LD HL,ELMD
+ RST 018H
+ DB 017H
+ CALL L1EB4
+ LD HL,ZFLAG1
+ BIT 4,(HL)
+ RET Z
+ INC HL
+ BIT 7,(HL)
+ RET NZ
+ LD A,(ELMD1)
+ CP 00DH
+ JP Z,01F9AH
+ RET
+
+ CALL SKPDE
+ CALL L1AEF
+ LD B,000H
+ CALL L1B97
+ JP L2D08
+
+L1AEF: LD A,(ZLOG)
+ RST 018H
+ DB 029H
+ JP NC,01F7CH
+ CALL L1C5B
+ LD HL,L005D
+ LD A,(ZFLAG1)
+ LD DE,(ZKL)
+ INC DE
+ INC DE
+ BIT 7,A
+ JR NZ,L1B0B ; (+001H)
+ ADD HL,DE
+L1B0B: LD A,(ZRWX)
+ BIT 2,A
+ JR Z,L1B13 ; (+001H)
+ ADD HL,DE
+L1B13: EX DE,HL
+ LD A,(ZLOG)
+ RST 018H
+L1B18: DB 02AH
+ LD (L1FC0),A
+ LD (ZTOP),HL
+ EX DE,HL
+ LD HL,ZLOG
+ LD BC,00008H
+ LDIR
+ LD (01809H),DE
+ PUSH DE
+ POP IY
+ LD HL,ELMD
+ CALL L1C54
+ LD HL,00010H
+ ADD HL,DE
+ LD (L180B),HL
+ LD DE,(ZKL)
+ ADD HL,DE
+ LD (L180D),HL
+ CALL L1D15
+ JP NZ,L2B7F
+ LD A,(ZRWX)
+ BIT 2,A
+ JP NZ,01F97H
+ BIT 1,A
+ LD IX,(ZWO)
+ JR NZ,L1B65 ; (+00bH)
+ LD A,(ZFLAG1)
+ BIT 7,A
+ JR Z,L1B6B ; (+00aH)
+ LD IX,(ZRO)
+L1B65: LD HL,ELMD
+ JP IOCALL
+
+L1B6B: CALL L0D9B
+ JP 019BBH
+
+ CALL SKPDE
+ LD IY,L0100
+ LD (ZLOG),IY
+ LD IY,ELMD
+ CALL L1D15
+ LD HL,L2B7A
+ JR NZ,L1B8B ; (+003H)
+ LD HL,L1C39
+L1B8B: CALL L00FA
+ LD B,080H
+ CALL L1B97
+ LD A,(ELMD)
+ RET
+
+L1B97: LD A,(ELMD)
+ CP 005H
+ RET C
+ LD A,(ELMD18)
+ AND 080H
+ CP B
+ RET Z
+ JP 01F9DH
+
+L1BA7: CALL SKPDE
+ OR A
+ JR Z,L1BED ; (+040H)
+ CALL L1BB3
+ JP L2D08
+
+L1BB3: RST 018H
+ DB 02EH
+ RET C
+ CALL L181A
+ PUSH AF
+ CALL L1D15
+ JR NZ,L1BE1 ; (+022H)
+ BIT 7,A
+ LD A,B
+ JR Z,L1BD4 ; (+010H)
+ OR A
+ LD IX,(ZKL)
+ JR Z,L1BCF ; (+004H)
+ LD IX,(ZCL)
+L1BCF: CALL IOCALL
+ JR L1BE4 ; (+010H)
+
+L1BD4: OR A
+ JR Z,L1BE4 ; (+00dH)
+ LD A,(ZRWX)
+ BIT 1,A
+ CALL NZ,L1892
+ JR L1BE4 ; (+003H)
+
+L1BE1: CALL L2BEC
+L1BE4: POP AF
+ RST 018H
+ DB 02BH
+ RET
+
+ CALL SKPDE
+ LD B,000H
+L1BED: LD C,08EH
+L1BEF: LD A,C
+ PUSH BC
+ RST 018H
+ DB 029H
+ CALL NC,L1BB3
+ POP BC
+ DEC C
+ JR NZ,L1BEF ; (-00bH)
+ JP L1FAB
+
+L1BFD: CALL SKPDE
+ LD A,(ZFLAG1)
+ BIT 6,A
+ JP Z,01F97H
+ CALL 018C7H
+ LD A,(ZDIRMX)
+ LD B,A
+L1C0F: LD HL,KEYBUF
+ PUSH BC
+ LD IX,(ZRO)
+ CALL IOCALL
+ POP BC
+ SET 0,A
+ RET C
+ PUSH IY
+ POP DE
+ CALL L1E9D
+ LD A,(HL)
+ RET Z
+ DJNZ L1C0F ; (-019H)
+ XOR A
+ SCF
+ RET
+
+L1C2B: CALL L1C5B
+ CALL L1BFD
+ JP NC,01F79H
+ OR A
+ JP Z,01F85H
+ RET
+
+L1C39: CALL L1C5B
+ CALL L1BFD
+ JP C,01F73H
+ CALL SKPDE
+ LD HL,KEYBUF
+ PUSH IY
+ POP DE
+ PUSH HL
+ CALL L1C54
+ POP HL
+ LD DE,ELMD
+ LD A,(HL)
+L1C54: LD BC,00040H
+ LDIR
+ OR A
+ RET
+
+L1C5B: LD IX,L1C9D
+L1C5F: LD (01C99H),IX
+ CALL SKPDE
+ LD A,(ZLOG)
+ LD C,A
+ LD HL,(TEXTED)
+ PUSH HL
+L1C6E: POP HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD B,A
+ INC HL
+ CALL LDDEMI
+ PUSH HL
+ ADD HL,DE
+ EX (SP),HL
+ CP 08FH
+ JR NC,L1C6E ; (-010H)
+ CP C
+ JR Z,L1C6E ; (-013H)
+ INC HL
+ LD A,(HL)
+ EX AF,AF'
+ INC HL
+ LD DE,ZEQT
+ PUSH BC
+ LD BC,00300H
+L1C8C: LD A,(DE)
+ SUB (HL)
+ OR C
+ LD C,A
+ INC DE
+ INC HL
+ DJNZ L1C8C ; (-008H)
+ POP BC
+ JR NZ,L1C6E ; (-029H)
+ LD A,B
+ CALL L0000
+ JR L1C6E ; (-02fH)
+
+L1C9D: LD A,(01051H)
+ BIT 6,A
+ JP NZ,01F7CH
+ BIT 5,A
+ RET Z
+ EX AF,AF'
+ LD B,A
+ LD A,(ZRWX)
+ AND B
+ BIT 1,A
+ RET Z
+ JP 01F7CH
+
+ CALL L1D15
+ JP NZ,L2AD2
+ LD BC,(ELMD20)
+ PUSH BC
+ XOR A
+ LD IX,(ZINP)
+ CALL IOCALL
+ POP BC
+ RET
+
+ LD A,(01051H)
+ BIT 7,A
+ JP Z,01F97H
+ LD BC,(ELMD20)
+ JP L313A
+
+ LD A,(ELMD)
+ CP 005H
+ JR C,L1CE4 ; (+005H)
+ LD A,080H
+ LD (ELMD18),A
+L1CE4: CALL L1D15
+ JP NZ,L2AE0
+ BIT 7,A
+ JP NZ,01F97H
+ PUSH DE
+ LD HL,L0200
+ LD (ZLOG),HL
+ CALL L1C5B
+ LD HL,ELMD
+ PUSH HL
+ POP IY
+ LD IX,(ZWO)
+ CALL IOCALL
+ LD BC,(ELMD20)
+ POP HL
+ LD A,004H
+ LD IX,(ZOUT)
+ CALL IOCALL
+ RET
+
+L1D15: LD A,(ZFLAG1)
+ BIT 5,A
+ RET
+
+ CALL SKPDE
+ OR A
+ JR NZ,L1D6B ; (+04aH)
+ LD HL,L0100
+ LD (ZLOG),HL
+ CALL DBG_L1C5B_WRAP
+ CALL DBG_FLAGS_TEST
+ ;
+ ; V1.1Z: Restore original ZFLAG1/ZFLAG2 bit tests.
+ ; DBG_FLAGS_TEST returns HL=ZFLAG1 for non-$RFS devices
+ ; (and already handles the ZFLAG1 bit7 error check).
+ ; Original code: BIT 7,ZFLAG1 / BIT 5,ZFLAG1 / INC HL /
+ ; BIT 7,ZFLAG2. bit5 of ZFLAG1 (not ZFLAG2!) flags block
+ ; devices ($FD, $QD) for the ZINP-based DIR path at 02F38H.
+ ;
+ BIT 5,(HL) ; ZFLAG1 bit5 = block device
+ JP NZ,02F38H ; Block device DIR path (ZINP-based)
+ INC HL ; HL = ZFLAG2
+ BIT 7,(HL) ; ZFLAG2 bit7 = error
+ JP NZ,01F97H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD HL,L2000
+ LD BC,00008H
+L1D43: CALL ?CLRHL
+ DEC C
+ JR NZ,L1D43 ; (-006H)
+ CALL 018C7H
+ LD A,(ZDIRMX)
+ LD B,A
+ LD HL,L2000
+L1D53: PUSH BC
+ LD IX,(ZRO)
+ CALL IOCALL
+ PUSH AF
+ LD BC,00020H
+ ADD HL,BC
+ LD (HL),000H
+ POP AF
+ POP BC
+ JR C,L1D68 ; (+002H)
+ DJNZ L1D53 ; (-015H)
+L1D68: JP L18C6
+
+L1D6B: LD (01E13H),A
+ XOR A
+ LD (DISPX),A
+ LD HL,KEYBUF
+ PUSH HL
+ LD DE,L1E1D
+ LD B,00EH
+ CALL LDHLDE
+ CALL L1535
+ LD (HL),020H
+ INC HL
+ LD (HL),020H
+ INC HL
+ EX DE,HL
+ CALL L1D15
+ LD IX,(ZFREE)
+ JR Z,L1D95 ; (+004H)
+ LD IX,L2F4B
+L1D95: CALL IOCALL
+ JR C,L1DA8 ; (+00eH)
+ LD H,B
+ LD L,C
+ LD B,000H
+ RST 018H
+ DB 016H
+ LD HL,L1E2B
+ LD B,009H
+ CALL LDDEHL
+L1DA8: EX DE,HL
+ LD (HL),00DH
+ INC HL
+ LD (HL),000H
+ POP DE
+ CALL L1E12
+ LD B,040H
+ LD HL,L2000
+L1DB7: CALL L1DC3
+ LD DE,00020H
+ ADD HL,DE
+ DJNZ L1DB7 ; (-009H)
+ JP L2D08
+
+L1DC3: CALL SKPDE
+ LD A,(HL)
+ OR A
+ RET Z
+ RET M
+ LD DE,KEYBUF
+ PUSH DE
+ LD A,020H
+ LD B,026H
+ CALL ?SETDE
+ LD A,(HL)
+ CP 00CH
+ JR C,L1DDC ; (+002H)
+ LD A,00CH
+L1DDC: PUSH HL
+ POP IY
+ POP DE
+ PUSH DE
+ INC DE
+ LD HL,L1E31
+ LD BC,L0003
+L1DE8: ADD HL,BC
+ DEC A
+ JR NZ,L1DE8 ; (-004H)
+ LDIR
+ EX DE,HL
+ BIT 0,(IY+012H)
+ JR Z,L1DF7 ; (+002H)
+ LD (HL),02AH
+L1DF7: INC HL
+ INC HL
+ LD (HL),022H
+ INC HL
+L1DFC: LD A,(IY+001H)
+ CP 00DH
+ JR Z,L1E09 ; (+006H)
+ LD (HL),A
+ INC IY
+ INC HL
+ JR L1DFC ; (-00dH)
+
+L1E09: LD (HL),022H
+ INC HL
+ LD (HL),00DH
+ INC HL
+ LD (HL),000H
+ POP DE
+L1E12: LD A,000H
+ RST 018H
+ DB 02EH
+ RST 018H
+ DB 017H
+ RST 018H
+ DB 037H
+ RST 018H
+ DB 00FH
+ RET
+
+L1E1D: DB 00DH,"DIRECTORY OF " ; Directory/file type strings
+L1E2B: DB " KB FR"
+L1E31: DS 2, 045H
+ DB ".OBJBTXBSDBRDRB"
+ DS 2, 020H
+ DB "? LIB ?"
+ DS 2, 020H
+ DB "? SYSGR"
+ DS 2, 020H
+ DB 03FH
+ DB 020H
+; ---------------------------------------------------------------------------
+; Subroutine at 0x1E58: Opens device I/O channel (saves/restores SP and IX)
+; ---------------------------------------------------------------------------
+ PUSH HL ; E5
+L1E59: XOR A ; AF
+ LD (01042H),A ; 32 42 10 — clear I/O flag
+ LD IX,01E71H ; DD 21 71 1E — IX = workspace
+ LD (01E72H),SP ; ED 73 72 1E — save stack pointer
+ CALL L1C5F ; CD 5F 1C — open channel
+ POP HL ; E1
+ LD IX,(01053H) ; DD 2A 53 10 — restore IX
+ CALL IOCALL ; CD 45 02
+ RET ; C9
+; Workspace area (0x1E71-0x1E73, used by above subroutine)
+ DB 031H ; 0x1E71 data (IX-based structure)
+ DS 2, 000H ; 0x1E72-73 SP save area
+; ---------------------------------------------------------------------------
+; Subroutine at 0x1E74: Confirm prompt — SVC #38 + "OK ? [Y/N]"
+; ---------------------------------------------------------------------------
+ LD B,000H ; 06 00
+ RST 018H ; DF
+ DB 038H ; SVC #38
+ JR L1E59 ; 18 DF — loop back to XOR A at 0x1E59
+; ---------------------------------------------------------------------------
+; Subroutine at 0x1E7A: Ask "OK ? [Y/N]" and return Z if 'Y'
+; ---------------------------------------------------------------------------
+L1E7A: CALL 00164H ; CD 64 01
+ DB 059H ; inline param 'Y' for CALL 0164H
+ RET Z ; C8 — return if match
+ LD DE,01E8EH ; 11 8E 1E — DE → "OK ? [Y/N]" string
+ RST 018H ; DF
+ DB 005H ; SVC #5 — display string
+ LD A,001H ; 3E 01
+ RST 018H ; DF
+ DB 00DH ; SVC #0D — read key
+ CP 059H ; FE 59 — compare with 'Y'
+ RET Z ; C8 — return Z if 'Y'
+ JP 0017DH ; C3 7D 01 — jump to error/cancel handler
+ DB "OK ? [Y/N]",019H,000H ; Inline string at 0x1E8E
+; ---------------------------------------------------------------------------
+; L1E9D: Filename comparison — compares entry name (HL) with search name (DE).
+; Skips ATRB byte in both, compares up to 17 chars, CR terminates/matches.
+; ---------------------------------------------------------------------------
+L1E9A: LD DE,01000H
+L1E9D: CALL SKPDE ; Skip DE past device name
+ INC HL ; Skip ATRB byte in directory entry
+ INC DE ; Skip ATRB byte in search name
+ LD A,(DE)
+ CP 00DH
+ RET Z
+ LD B,011H
+L1EA8: LD A,(DE)
+ CP (HL)
+ RET NZ
+ CP 00DH
+ RET Z
+ INC HL
+ INC DE
+ DJNZ L1EA8 ; (-00aH)
+ OR A
+ RET
+
+L1EB4: INC HL
+ LD C,010H
+L1EB7: LD A,B
+ OR A
+ JR Z,L1ECF ; (+014H)
+ LD A,(DE)
+ INC DE
+ DEC B
+ OR A
+ JR Z,L1ECF ; (+00eH)
+ CP 022H
+ JR Z,L1EB7 ; (-00eH)
+ CP 03AH
+ JP Z,01F9AH
+ LD (HL),A
+ INC HL
+ DEC C
+ JR NZ,L1EB7 ; (-018H)
+L1ECF: LD (HL),00DH
+ INC HL
+L1ED2: LD A,C
+ OR A
+ RET Z
+ LD (HL),020H
+ INC HL
+ DEC C
+ JR L1ED2 ; (-009H)
+
+ LD HL,(TEXTED)
+L1EDE: INC (HL)
+ DEC (HL)
+ SCF
+ RET Z
+ CP (HL)
+ INC HL
+ JR Z,L1EEE ; (+008H)
+ PUSH DE
+ CALL LDDEMI
+ ADD HL,DE
+ POP DE
+ JR L1EDE ; (-010H)
+
+L1EEE: INC HL
+ INC HL
+ RET
+
+L1EF1: CALL SKPDE
+ RST 018H
+ DB 029H
+ RET C
+ DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ DEC HL
+ LD D,H
+ LD E,L
+ INC BC
+ INC BC
+ INC BC
+ PUSH BC
+ ADD HL,BC
+ PUSH HL
+ LD B,H
+ LD C,L
+ LD HL,(TMPEND)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ LDIR
+ POP DE
+ LD HL,L0000
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ RST 018H
+ DB 019H
+ OR A
+ RET
+
+ PUSH AF
+ PUSH BC
+ PUSH DE
+ PUSH DE
+ INC DE
+ INC DE
+ INC DE
+ LD HL,(TMPEND)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ JP C,01F6DH
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ SBC HL,DE
+ JR C,01F6DH ; (+037H)
+ LD HL,(MEMLMT)
+ DEC H
+ DEC H
+ SBC HL,DE
+ JR C,01F6DH ; (+02eH)
+ POP HL
+ PUSH HL
+ LD BC,(VARST)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ INC BC
+ LDDR
+ POP DE
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ PUSH HL
+ INC DE
+ PUSH DE
+L1F58: LD (HL),000H
+ INC HL
+ DEC DE
+ LD A,D
+ OR E
+ JR NZ,L1F58 ; (-008H)
+ POP DE
+ INC DE
+ INC DE
+ RST 018H
+ DB 019H
+ POP HL
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L1F6A: LD A,003H
+ LD HL,0063EH
+ LD HL,09C3EH
+ LD HL,0A83EH
+ LD HL,0A93EH
+ LD HL,0AA3EH
+ LD HL,0AB3EH
+ LD HL,0AE3EH
+ LD HL,0B23EH
+ LD HL,0B33EH
+ LD HL,0B43EH
+ LD HL,0B53EH
+ LD HL,0B63EH
+ LD HL,0B73EH
+ LD HL,L3A3E
+ LD HL,0BB3EH
+ LD HL,0BC3EH
+ LD HL,0BD3EH
+ LD HL,0BF3EH
+ LD HL,L403E
+ LD HL,0C43EH
+ JP L0182
+
+L1FAB: LD A,(L1FC0)
+ OR A
+ LD B,000H
+ CALL NZ,L1BA7
+ CALL L368D
+ CALL L38FA
+ CALL L2D08
+ JP L0D20
+
+L1FC0: DS 64, 000H
+L2000: DS 38, 000H
+L2026: DS 263, 000H
+L212D: DS 211, 000H
+L2200: DS 294, 000H
+L2326: DS 986, 000H
+L2700: DS 16, 000H
+L2710: DS 240, 000H
+L2800: DS 256, 000H
+ LD (02905H),DE
+ RET
+
+L2905: NOP
+ NOP
+L2907: LD BC,L0000
+ LD DE,00001H
+ BIT 2,A
+ CALL Z,L2ED0
+ LD HL,(L180D)
+ LD A,(HL)
+ LD (HL),C
+ LD C,A
+ INC HL
+ LD A,(HL)
+ LD (HL),B
+ LD B,A
+ LD HL,(L180B)
+ LD DE,L0100
+ JP L2FCF
+
+ CALL SKPDE
+ CALL L181A
+ LD HL,KEYBUF
+ PUSH HL
+ LD A,B
+ OR A
+ CALL NZ,LDHLDE
+ LD B,020H
+ LD A,020H
+ CALL ?SETHL
+ LD A,(IY+012H)
+ OR A
+ JP NZ,01F7FH
+ CALL L29DF
+ JR NC,L2964 ; (+01dH)
+ LD (IY+014H),E
+ LD (IY+015H),D
+ LD (IY+046H),001H
+ JR Z,L2964 ; (+011H)
+ CALL L29C2
+ CALL L2A08
+ CALL L297C
+ LD (IY+040H),L
+ LD (IY+041H),H
+ JR L296A ; (+006H)
+
+L2964: CALL L297C
+ CALL L29AB
+L296A: POP HL
+ CALL L2E24
+ LD (IY+044H),001H
+L2972: LD HL,(L2905)
+ INC HL
+ LD (L2905),HL
+ JP L1815
+
+L297C: LD HL,(L2905)
+ DEC HL
+ PUSH HL
+ ADD HL,HL
+ LD E,H
+ LD D,000H
+ LD HL,(L180B)
+ ADD HL,DE
+ ADD HL,DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD A,L
+ PUSH AF
+ RRA
+ RRA
+ RRA
+ AND 00FH
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ POP AF
+ AND 007H
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ LD DE,(0180BH)
+ INC D
+ ADD A,E
+ LD E,A
+ RET NC
+ INC D
+ RET
+
+L29AB: LD A,(IY+040H)
+ CP L
+ JR NZ,L29B6 ; (+005H)
+ LD A,(IY+041H)
+ CP H
+ RET Z
+L29B6: CALL L29C2
+ LD (IY+040H),L
+ LD (IY+041H),H
+ XOR A
+ JR L29CC ; (+00aH)
+
+L29C2: XOR A
+ CP (IY+044H)
+ RET Z
+ LD (IY+044H),A
+ LD A,003H
+L29CC: CALL SKPDE
+ LD C,(IY+040H)
+ LD B,(IY+041H)
+ LD DE,L0100
+ LD HL,(L180B)
+ INC H
+ JP L2FD1
+
+L29DF: LD L,(IY+014H)
+ LD H,(IY+015H)
+ LD DE,(02905H)
+ LD A,H
+ OR L
+ JR NZ,L29F1 ; (+004H)
+ OR 0FFH
+ SCF
+ RET
+
+L29F1: CALL L2FC9
+ RET NC
+ CALL SKPDE
+ DEC HL
+ DEC DE
+ LD A,L
+ AND 080H
+ LD L,A
+ LD A,E
+ AND 080H
+ LD E,A
+ CALL L2FC9
+ RET C
+ SCF
+ RET
+
+L2A08: CALL SKPDE
+ LD HL,(L2905)
+ DEC HL
+ ADD HL,HL
+ LD B,H
+ INC B
+ LD HL,(L180B)
+L2A15: LD A,(HL)
+ INC HL
+ OR (HL)
+ CALL Z,L2A23
+ INC HL
+ DJNZ L2A15 ; (-009H)
+ LD (IY+046H),001H
+ RET
+
+L2A23: CALL SKPDE
+ PUSH HL
+ LD DE,00010H
+ CALL L2ED0
+ POP HL
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ LD HL,(L180B)
+ INC H
+ XOR A
+L2A36: LD (HL),020H
+ INC HL
+ DEC A
+ JR NZ,L2A36 ; (-006H)
+ DEC H
+ LD DE,L0100
+ LD A,010H
+L2A42: PUSH AF
+ CALL L2FCF
+ POP AF
+ INC BC
+ DEC A
+ JR NZ,L2A42 ; (-009H)
+ RET
+
+L2A4C: LD L,(IY+014H)
+ LD H,(IY+015H)
+ LD A,H
+ OR L
+ SCF
+ RET Z
+ LD DE,0FF02H
+ PUSH HL
+ ADD HL,DE
+ JR C,L2A60 ; (+003H)
+ LD HL,L0000
+L2A60: LD (IY+014H),L
+ LD (IY+015H),H
+ POP DE
+ LD HL,(L180B)
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ CALL L2A88
+ OR A
+ LD A,(ZRWX)
+ BIT 2,A
+ RET NZ
+ LD HL,(L180D)
+ LD A,(HL)
+ LD (IY+01EH),A
+ INC HL
+ LD A,(HL)
+ LD (IY+01FH),A
+ LD DE,L0000
+ RET
+
+L2A88: LD C,(IY+01EH)
+ LD B,(IY+01FH)
+ LD A,B
+ OR C
+ JP Z,01F76H
+ LD DE,L0100
+ LD HL,(L180B)
+ JP 02FD0H
+
+ RET
+
+ XOR A
+ LD (DE),A
+ PUSH HL
+ PUSH DE
+ PUSH DE
+ CALL L29DF
+ POP DE
+ JR C,L2AC7 ; (+01fH)
+ CALL L181A
+ PUSH DE
+ CALL L297C
+ CALL L29AB
+ EX DE,HL
+ POP DE
+ CALL L2E24
+ XOR A
+ LD (DE),A
+ CALL L2972
+ LD B,020H
+ XOR A
+ LD HL,(ZTOP)
+ INC HL
+ RES 7,(HL)
+ JR L2ACF ; (+008H)
+
+L2AC7: XOR A
+ LD B,A
+ LD HL,(ZTOP)
+ INC HL
+ SET 7,(HL)
+L2ACF: POP DE
+ POP HL
+ RET
+
+L2AD2: LD DE,(ELMD20)
+ LD BC,(ELMD30)
+ CALL 02FD0H
+ JP L2D08
+
+L2AE0: CALL L2AEA
+ LD IY,ELMD
+ JP L2C07
+
+L2AEA: PUSH DE
+ CALL L2DD0
+ CALL L2ED0
+ LD (ELMD30),BC
+ LD D,E
+ LD E,000H
+ POP HL
+ JP L2FCF
+
+ OR A
+ JR NZ,L2B34 ; (+035H)
+ PUSH DE
+ CALL L2B6A
+ LD A,000H
+ CALL Z,L2B51
+ POP DE
+ CALL L2AEA
+ LD HL,ELMD
+ OR 0FFH
+ CALL L2B51
+ CALL L2E2A
+ LD HL,L2000
+ LD (HL),081H
+ PUSH HL
+ POP IY
+ LD HL,(ELMD20)
+ LD (IY+014H),L
+ LD (IY+015H),H
+ LD HL,(ELMD30)
+ LD (IY+01EH),L
+ LD (IY+01FH),H
+ JP L2F37
+
+L2B34: PUSH HL
+ CALL L2B6A
+ JP NZ,01F88H
+ DEC (HL)
+ LD DE,ELMD
+ CALL L2E24
+ CALL L2F37
+L2B45: XOR A
+ LD HL,L2000
+ CALL L2B51
+ CALL L2E2A
+ POP HL
+ RET
+
+L2B51: CALL SKPDE
+ PUSH AF
+ LD DE,00014H
+ ADD HL,DE
+ CALL LDDEMI
+ LD BC,00008H
+ ADD HL,BC
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ CALL L2DD8
+ POP AF
+ JP L2E77
+
+L2B6A: CALL L1D15
+ JP Z,01F97H
+ CALL L2E36
+ CALL 02F38H
+ LD A,(HL)
+ CP 081H
+ RET
+
+L2B7A: LD A,009H
+ LD (ZRWX),A
+L2B7F: CALL L2F6E
+ XOR B
+ DEC HL
+ LD A,(ZRWX)
+ BIT 0,A
+ JP NZ,01F73H
+ PUSH AF
+ LD DE,00001H
+ CALL L2ED0
+ LD (IY+01EH),C
+ LD (IY+01FH),B
+ LD (IY+046H),001H
+ POP AF
+ BIT 1,A
+ RET Z
+ LD HL,(L180D)
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ RET
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD A,(ZRWX)
+ BIT 1,A
+ JP NZ,01F79H
+ PUSH HL
+ CALL L2E24
+ LD B,020H
+ CALL ?CLRDE
+ POP HL
+ LD A,(HL)
+ PUSH IY
+ POP DE
+ CALL L2E24
+ LD HL,ZRWX
+ BIT 3,(HL)
+ RET NZ
+ BIT 0,(HL)
+ JP NZ,L2A4C
+ CALL L2E5E
+ CALL L2A88
+ LD D,H
+ LD E,L
+L2BDB: LD A,(HL)
+ INC HL
+ OR (HL)
+ INC HL
+ JR NZ,L2BDB ; (-006H)
+ DEC HL
+ DEC HL
+ SBC HL,DE
+ LD (IY+042H),L
+ LD (IY+043H),H
+ RET
+
+L2BEC: LD A,B
+ OR A
+ RET Z
+ LD A,(ZRWX)
+ BIT 0,A
+ RET NZ
+ BIT 2,A
+ JR NZ,L2C20 ; (+027H)
+ LD A,006H
+ CALL L2907
+ PUSH IY
+ POP HL
+ LD DE,ELMD
+ CALL L2E24
+L2C07: CALL L2F6E
+ RLA
+ INC L
+ JP Z,01F85H
+L2C0F: LD A,001H
+ LD B,(IY+000H)
+ JP L2D6A
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ JP 01F79H
+
+L2C20: CALL L29C2
+ LD A,(IY+046H)
+ OR A
+ RET Z
+ CALL L2F6E
+ LD (0CA2CH),A
+ ADD A,L
+ RRA
+ JR L2C0F ; (-023H)
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD (IY+045H),001H
+ LD A,(HL)
+ CP (IY+000H)
+ JP NZ,01F9DH
+ JR L2C0F ; (-037H)
+
+ CALL SKPDE
+ LD (02C60H),A
+ CALL L2F6E
+ LD D,H
+ INC L
+ JP 01F73H
+
+ RET Z
+ RET M
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD BC,L0012
+ ADD HL,BC
+ LD (HL),0FFH
+L2C61: CALL L2F37
+ JP L2D08
+
+ CALL SKPDE
+ CALL L2F6E
+ LD (HL),D
+ INC L
+ JP 01F73H
+
+ RET Z
+ RET M
+ CALL L1E9A
+ RET NZ
+ POP AF
+ CALL L2CFB
+ PUSH HL
+ LD DE,ELMD
+ CALL L2E24
+ XOR A
+ LD (ZLOG),A
+ LD IX,L2C9B
+ CALL L1C5F
+ XOR A
+ LD (ELMD),A
+ POP HL
+L2C93: LD B,(HL)
+ LD IY,ELMD
+ JP L2D6A
+
+L2C9B: INC HL
+ INC HL
+ INC HL
+ CALL L1E9A
+ JP Z,01F7CH
+L2CA4: RET
+
+L2CA5: DS 16, 000H
+ DEC C
+ CALL SKPDE
+ LD HL,L2CA4
+ CALL L1EB4
+ XOR A
+L2CC0: LD (02CE3H),A
+ CALL L2F6E
+ JP Z,L182C
+ JR L2C93 ; (-038H)
+
+ RET M
+ LD DE,L2CA4
+ CALL L1E9D
+ JP Z,01F79H
+ CALL L1E9A
+ RET NZ
+ LD (02CE9H),HL
+ LD A,001H
+ LD (02CE3H),A
+ RET
+
+ LD A,0FFH
+ OR A
+ JP Z,01F73H
+ LD HL,0FFFFH
+ CALL L2CFB
+ LD DE,L2CA5
+ INC HL
+ EX DE,HL
+ LD BC,00011H
+ LDIR
+ JP L2C61
+
+L2CFB: CALL SKPDE
+ LD DE,L0012
+ ADD HL,DE
+ LD A,(HL)
+ OR A
+ RET Z
+ JP 01F7FH
+
+L2D08: CALL IOOUT
+ XOR A
+ LD (L1FC0),A
+ LD A,LSE0
+L2D11: PUSH AF
+ RST 018H
+ DB 02BH
+ POP AF
+ INC A
+ JR NZ,L2D11 ; (-007H)
+ LD HL,(ZEQT)
+ LD DE,$FD
+ CALL L2FC9
+ RET NZ
+ LD A,(ZCH)
+ EXX
+ LD H,A
+ LD D,000H
+ LD B,003H
+ EXX
+ XOR A
+ LD (ZLOG),A
+L2D30: EXX
+ LD A,B
+ LD (ZCH),A
+ ADD A,090H
+ LD L,A
+ LD E,000H
+ EXX
+ LD IX,L2D5C
+ CALL L1C5F
+ EXX
+ BIT 7,E
+ LD A,L
+ EXX
+ CALL Z,L1EF1
+ EXX
+ DEC B
+ EXX
+ JP P,L2D30
+ EXX
+ LD A,H
+ LD (ZCH),A
+ BIT 7,D
+ EXX
+ CALL Z,L368D
+ RET
+
+L2D5C: EXX
+ LD DE,0FFFFH
+ EXX
+ RET
+
+L2D62: LD A,(ZCH)
+ ADD A,090H
+ RST 018H
+ DB 029H
+ RET
+
+L2D6A: LD (L2DCF),A
+ LD A,B
+ PUSH AF
+ EX DE,HL
+ LD HL,ELMD
+ CALL L2E24
+ CALL L2E36
+ POP AF
+ CP 005H
+ JR C,L2D88 ; (+00aH)
+ LD A,(ELMD18)
+ RLA
+ LD A,003H
+ JR NC,L2D88 ; (+002H)
+ LD A,001H
+L2D88: LD HL,02D9CH
+ ADD A,A
+ CALL ADDHLA
+ CALL INDRCT
+ CALL L00FA
+ CALL L2F37
+ CALL L2E2A
+ JP L2D08
+
+ ADD A,02DH
+ ADD A,02DH
+ AND (HL)
+ DEC L
+ JP PO,L212D
+ JR NZ,02DB9H ; (+010H)
+L2DA9: DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ LD A,B
+ OR C
+ RET Z
+ LD DE,L0100
+ LD HL,KEYBUF
+ PUSH HL
+ PUSH DE
+ CALL 02FD0H
+ LD DE,00001H
+ CALL L2DC9
+ POP DE
+ POP HL
+ ADD HL,DE
+ JR L2DA9 ; (-01dH)
+
+ CALL L2DD0
+L2DC9: LD A,(L2DCF)
+ JP L2E77
+
+L2DCF: NOP
+L2DD0: LD DE,(ELMD20)
+ LD BC,(ELMD30)
+L2DD8: LD A,E
+ OR D
+ JR Z,L2DDD ; (+001H)
+ DEC DE
+L2DDD: INC D
+ LD E,D
+ LD D,000H
+ RET
+
+ LD DE,L0100
+ LD BC,(ELMD30)
+ LD A,(L2DCF)
+ OR A
+ LD HL,KEYBUF
+ JR Z,L2DF5 ; (+003H)
+ LD HL,(L180B)
+L2DF5: PUSH HL
+ PUSH AF
+ CALL L2FD1
+ POP AF
+ PUSH AF
+ JR Z,L2E02 ; (+004H)
+ LD A,(IY+045H)
+ OR A
+L2E02: LD DE,00001H
+ CALL Z,L2DC9
+ POP AF
+ POP HL
+ JR Z,L2E13 ; (+007H)
+ LD E,(IY+042H)
+ LD D,(IY+043H)
+ ADD HL,DE
+L2E13: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ LD A,B
+ OR C
+ RET Z
+ PUSH HL
+ LD DE,00010H
+ CALL L2DC9
+ POP HL
+ JR L2E13 ; (-011H)
+
+L2E24: LD BC,00020H
+ LDIR
+ RET
+
+L2E2A: LD HL,L2800
+ LD DE,L0100
+ LD BC,L000F
+ JP L2FCF
+
+L2E36: LD HL,L2800
+ CALL L2E67
+ PUSH HL
+ CALL L2D62
+ EX DE,HL
+ POP HL
+ RET C
+ PUSH HL
+ LD A,(DE)
+ CP (HL)
+ JP NZ,01F88H
+ LD BC,L0006
+ ADD HL,BC
+ EX DE,HL
+ ADD HL,BC
+ EX DE,HL
+ LD B,FDPC
+L2E52: LD A,(DE)
+ CPL
+ AND (HL)
+ JP NZ,01F88H
+ INC HL
+ INC DE
+ DJNZ L2E52 ; (-00aH)
+ POP HL
+ RET
+
+L2E5E: CALL L2D62
+ RET NC
+ LD DE,L0100
+ RST 018H
+ DB 02AH
+L2E67: LD BC,L000F
+ LD DE,L0100
+ XOR A
+ CALL L2FD4
+ LD A,(HL)
+ OR A
+ JP M,01F70H
+ RET
+
+L2E77: LD HL,L2800
+ CALL L2E84
+ OR A
+ RET NZ
+ CALL L2D62
+ RET C
+ XOR A
+L2E84: CALL IOOUT
+ OR A
+ PUSH HL
+ LD HL,0B600H
+ LD A,013H
+ JR NZ,L2E95 ; (+005H)
+ LD HL,0A62FH
+ LD A,01BH
+L2E95: LD (L2EB2),A
+ LD (L2EC8),HL
+ POP HL
+L2E9C: CALL L2EA4
+ INC BC
+ DEC E
+ JR NZ,L2E9C ; (-007H)
+ RET
+
+L2EA4: CALL SKPDE
+ INC HL
+ LD A,C
+ SUB (HL)
+ LD C,A
+ JR NC,L2EAE ; (+001H)
+ DEC B
+L2EAE: INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L2EB2: NOP
+ DEC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ LD A,C
+ LD E,003H
+L2EBD: SRL B
+ RR C
+ DEC E
+ JR NZ,L2EBD ; (-007H)
+ ADD HL,BC
+ CALL L2F2B
+L2EC8: NOP
+ NOP
+ CP (HL)
+ LD (HL),A
+ RET NZ
+ JP 01F88H
+
+L2ED0: PUSH DE
+ CALL L2E5E
+ POP DE
+ PUSH HL
+ CALL L2EDE
+ POP HL
+ LD A,001H
+ JR L2E84 ; (-05aH)
+
+L2EDE: LD A,E
+ EXX
+ LD E,A
+ LD D,A
+ LD B,001H
+ EXX
+ INC HL
+ LD E,(HL)
+ LD D,000H
+ INC HL
+ INC HL
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ DEC BC
+ LD (02EFCH),BC
+ INC HL
+ PUSH HL
+ EXX
+ POP HL
+ EXX
+ LD B,D
+ LD C,E
+L2EFB: LD HL,L0000
+ OR A
+ SBC HL,DE
+ JP C,01F8BH
+ EXX
+ LD A,B
+ AND (HL)
+ EXX
+ CALL L2F15
+ INC DE
+ EXX
+ RLC B
+ JR NC,L2F12 ; (+001H)
+ INC HL
+L2F12: EXX
+ JR L2EFB ; (-01aH)
+
+L2F15: JR NZ,L2F24 ; (+00dH)
+ EXX
+ DEC E
+ EXX
+ RET NZ
+ POP AF
+ EXX
+ LD A,D
+ EXX
+ LD E,A
+ LD D,000H
+ OR A
+ RET
+
+L2F24: EXX
+ LD E,D
+ EXX
+ LD B,D
+ LD C,E
+ INC BC
+ RET
+
+L2F2B: PUSH BC
+ AND 007H
+ INC A
+ LD B,A
+ XOR A
+ SCF
+L2F32: ADC A,A
+ DJNZ L2F32 ; (-003H)
+ POP BC
+ RET
+
+L2F37: OR 0AFH
+ LD HL,L2000
+ LD DE,00800H
+ LD BC,00010H
+ CALL L2FD1
+ LD A,(HL)
+ OR A
+ JP P,01F70H
+ RET
+
+L2F4B: PUSH HL
+ PUSH DE
+ CALL L2E36
+ INC HL
+ INC HL
+ CALL LDDEMI
+ CALL INDRCT
+ XOR A
+ SBC HL,DE
+ JP C,01F70H
+ SRL H
+ RR L
+ SRL H
+ RR L
+ LD B,H
+ LD C,L
+ POP DE
+ POP HL
+ OR A
+ JP L368D
+
+L2F6E: CALL L1D15
+ JP Z,01F97H
+ POP HL
+ CALL LDDEMI
+ LD (02FB1H),HL
+ LD (02F97H),DE
+ XOR A
+ LD (L2FC3),A
+ CALL 02F38H
+ LD (L2FC7),HL
+ LD A,040H
+ LD (L2FC6),A
+L2F8E: LD HL,(L2FC7)
+ LD A,(HL)
+ OR A
+ CALL Z,L2FB3
+ CALL 0FFFFH
+ LD HL,(L2FC7)
+ LD BC,00020H
+ ADD HL,BC
+ LD (L2FC7),HL
+ LD HL,L2FC6
+ DEC (HL)
+ JR NZ,L2F8E ; (-01bH)
+ LD A,(L2FC3)
+ LD HL,(L2FC4)
+ OR A
+ JP 0FFFFH
+
+L2FB3: PUSH AF
+ LD A,(L2FC3)
+ OR A
+ JR NZ,L2FC1 ; (+007H)
+ INC A
+ LD (L2FC3),A
+ LD (L2FC4),HL
+L2FC1: POP AF
+ RET
+
+L2FC3: NOP
+L2FC4: NOP
+ NOP
+L2FC6: NOP
+L2FC7: NOP
+ NOP
+L2FC9: PUSH HL
+ OR A
+ SBC HL,DE
+ POP HL
+ RET
+
+L2FCF: OR 0AFH
+L2FD1: CALL L2FE8
+L2FD4: CALL SKPDE
+ OR A
+ LD IX,(ZINP)
+ JR Z,L2FE2 ; (+004H)
+ LD IX,(ZOUT)
+L2FE2: LD A,(ZCH)
+ JP IOCALL
+
+L2FE8: CALL IOOUT
+ LD A,(L35B5)
+ OR A
+ RET M
+ CALL L2D62
+ RET C
+ JP L2E36
+
+; ---------------------------------------------------------------------------
+; $CMT - Cassette Tape device descriptor (same format as $RFS, $FD, etc.)
+; ---------------------------------------------------------------------------
+$CMT: DW 03359H ; Next device = $RS
+ DB "CMT",000H ; Device name
+ DB 05FH ; flags1: bit5=0, bit6=1
+L2FFE: DB 0C0H ; flags2 (bit 4 toggled by CMT handler)
+ DB 000H ; dirmx = 0
+ DW 03014H ; ZINIT
+ DW 03064H ; ZRO
+ DW 03022H ; ZWO
+ DW 000E5H ; ZCL (= NOP stub)
+ DW 00100H ; ZKL
+ DW 030AAH ; ZINP
+ DW 0305DH ; ZOUT
+ DW 01F97H ; ZDELT (= error handler)
+ DW 01F97H ; ZWDIR (= error handler)
+ DW 01F97H ; ZFREE (= error handler)
+ CALL TEST1
+ DB 054H
+ LD HL,L2FFE
+ SET 4,(HL)
+ RET Z
+ RES 4,(HL)
+ OR A
+ RET
+
+ CALL SKPDE
+ LD DE,L10F0
+ LD A,(HL)
+ LD C,005H
+ CP 002H
+ JR Z,L303D ; (+00eH)
+ LD C,004H
+L3031: CP 003H
+ JR Z,L303D ; (+008H)
+ LD C,A
+L3036: SUB 004H
+ CP 002H
+ JP C,01F9DH
+L303D: LD A,C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD BC,00011H
+ LDIR
+ INC HL
+ INC HL
+ LD BC,L0006
+ LDIR
+ LD B,068H
+ CALL ?CLRDE
+ LD HL,L10F0
+ LD BC,L0080
+ CALL L30CB
+ JR L3060 ; (+003H)
+
+ CALL L30D2
+L3060: JP C,L017B
+ RET
+
+ LD A,037H
+ LD (L30AA),A
+ PUSH HL
+ LD HL,L10F0
+ LD BC,L0080
+ CALL L3114
+ JR C,L30C1 ; (+04cH)
+ LD DE,L3332
+ CALL L3301
+ POP DE
+ LD A,(HL)
+ LD C,002H
+ CP 005H
+ JR Z,L3091 ; (+00eH)
+ LD C,003H
+ CP 004H
+ JR Z,L3091 ; (+008H)
+ LD C,A
+ SUB 002H
+ CP 002H
+ JP C,01F9DH
+L3091: LD A,C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD BC,00011H
+ LDIR
+ XOR A
+ LD B,002H
+ CALL ?CLRDE
+ LD BC,L0006
+ LDIR
+ LD B,006H
+ JP ?CLRDE
+
+L30AA: XOR A
+ JR NC,L30BD ; (+010H)
+ LD A,0AFH
+ LD (L30AA),A
+ PUSH HL
+ LD HL,ELMD
+ LD DE,L333F
+ CALL L3301
+ POP HL
+L30BD: CALL L311B
+ RET NC
+L30C1: CP 002H
+ JP NZ,L017B
+ LD A,0C6H
+ JP L0182
+
+L30CB: CALL L32D4
+ LD A,0CCH
+ JR L30D4 ; (+002H)
+
+L30D2: LD A,053H
+L30D4: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD E,A
+ LD D,0D7H
+ LD A,B
+ OR C
+ JR Z,L3107 ; (+024H)
+ CALL L32CB
+ CALL L3174
+ JR C,L3101 ; (+016H)
+ LD A,E
+ CP 0CCH
+ JR NZ,L30F8 ; (+008H)
+ PUSH DE
+ LD DE,L3325
+ CALL L3301
+ POP DE
+L30F8: DI
+ OUT (LSE4),A
+ CALL 00780H
+ CALL NC,L31DD
+L3101: DI
+ OUT (LSE4),A
+ CALL 00700H
+L3107: POP DE
+ LD SP,L0000
+ OUT (LSE0),A
+ OUT (LSE1),A
+ PUSH AF
+ RST 018H
+ DB 011H
+ POP AF
+ RET
+
+L3114: CALL L32D4
+ LD A,0CCH
+ JR L311D ; (+002H)
+
+L311B: LD A,053H
+L311D: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD D,LSD2
+ LD E,A
+ LD A,B
+ OR C
+ JR Z,L3107 ; (-025H)
+ CALL L3174
+ DI
+ OUT (LSE4),A
+ CALL NC,L065B
+ CALL NC,L3220
+ JR L3101 ; (-039H)
+
+L313A: PUSH HL
+ LD DE,L334C
+ LD HL,ELMD
+ CALL L3301
+ POP HL
+ CALL L3153
+ RET NC
+ CP 002H
+ JP NZ,L017B
+ LD A,083H
+ JP L0182
+
+L3153: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD D,LSD2
+ LD E,053H
+ LD A,B
+ OR C
+ JR Z,L3107 ; (-05cH)
+ CALL RFS_LOAD_HOOK
+ NOP
+ NOP
+ NOP
+ DI
+ OUT (LSE4),A
+ CALL NC,L065B
+ CALL NC,L3274
+ JR L3101 ; (-073H)
+
+L3174: CALL SKPDE
+ RST 018H
+ DB 010H
+ LD HL,MMIO
+ LD A,FDPA
+ CALL POPRA
+ LD B,00AH
+L3183: LD HL,0E002H
+ CALL BREAKX
+ AND 010H
+ JR Z,L319A ; (+00dH)
+L318D: LD B,0FFH
+ OUT (LSE2),A
+L3191: CALL L09A6
+ DJNZ L3191 ; (-005H)
+ OUT (LSE0),A
+ XOR A
+ RET
+
+L319A: LD HL,0E003H
+ LD A,006H
+ CALL POPRA
+ INC A
+ CALL POPRA
+ DJNZ L3183 ; (-025H)
+ LD A,(L0050)
+ OR A
+ JR NZ,L31C7 ; (+019H)
+ RST 018H
+ DB 002H
+ LD A,07FH
+ RST 018H
+ DB 004H
+ LD A,020H
+ RST 018H
+ DB 003H
+ LD A,D
+ CP 0D7H
+ LD DE,L32BC
+ JR Z,L31C3 ; (+003H)
+ LD DE,L32C3
+L31C3: RST 018H
+ DB 005H
+ RST 018H
+ DB 002H
+L31C7: LD HL,0E002H
+ CALL BREAKX
+ AND 010H
+ JR NZ,L318D ; (-044H)
+ LD HL,0E001H
+ CALL BREAKX
+ AND 080H
+ JR NZ,L31C7 ; (-014H)
+ SCF
+ RET
+
+L31DD: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD D,002H
+ LD A,FDPA
+ LD (MMIO),A
+L31E7: OUT (LSE1),A
+ LD A,(HL)
+ OUT (LSE3),A
+ CALL L32C8
+ LD A,(0E001H)
+ AND 080H
+ SCF
+ JR Z,L321C ; (+025H)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L31E7 ; (-016H)
+ LD HL,(SUMDT)
+ LD A,H
+ CALL L32C8
+ LD A,L
+ CALL L32C8
+ CALL L0D60
+ XOR A
+ DEC D
+ JR Z,L321C ; (+00dH)
+ LD B,000H
+L3211: CALL L0D47
+ DJNZ L3211 ; (-005H)
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+ JR L31E7 ; (-035H)
+
+L321C: POP HL
+ POP BC
+ POP DE
+ RET
+
+L3220: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD H,002H
+L3225: LD BC,0E001H
+ LD DE,0E002H
+L322B: CALL 00601H
+ JR C,L3267 ; (+037H)
+ CALL 00A4AH
+ LD A,(DE)
+ AND 020H
+ JR Z,L322B ; (-00dH)
+ LD D,H
+ LD HL,L0000
+ LD (SUMDT),HL
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+L3243: CALL L0624
+ JR C,L3267 ; (+01fH)
+ OUT (LSE1),A
+ LD (HL),A
+ OUT (LSE3),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3243 ; (-010H)
+ LD HL,(SUMDT)
+ CALL L0624
+ JR C,L3267 ; (+00cH)
+ CP H
+ JR NZ,L326B ; (+00dH)
+ CALL L0624
+ JR C,L3267 ; (+004H)
+ CP L
+ JR NZ,L326B ; (+005H)
+L3266: XOR A
+L3267: POP HL
+ POP BC
+ POP DE
+ RET
+
+L326B: DEC D
+ LD H,D
+ JR NZ,L3225 ; (-04aH)
+L326F: LD A,002H
+ SCF
+ JR L3267 ; (-00dH)
+
+L3274: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD H,002H
+L3279: LD BC,0E001H
+ LD DE,0E002H
+L327F: CALL 00601H
+ JR C,L3267 ; (-01dH)
+ CALL 00A4AH
+ LD A,(DE)
+ AND 020H
+ JR Z,L327F ; (-00dH)
+ LD D,H
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+L3291: CALL L0624
+ JR C,L3267 ; (-02fH)
+ OUT (LSE1),A
+ CP (HL)
+ OUT (LSE3),A
+ JR NZ,L326F ; (-02eH)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3291 ; (-012H)
+ LD HL,(CSMDT)
+ CALL L0624
+ JR C,L3267 ; (-044H)
+ CP H
+ JR NZ,L326F ; (-03fH)
+ CALL L0624
+ JR C,L3267 ; (-04cH)
+ CP L
+ JR NZ,L326F ; (-047H)
+ DEC D
+ LD H,D
+ JR NZ,L3279 ; (-041H)
+ JR L3266 ; (-056H)
+
+L32BC: DB "RECORD." ; CMT status strings (RECORD/PLAY)
+L32C3: DB "PLAY",000H
+L32C8: JP L076D
+
+L32CB: DI
+ OUT (LSE2),A
+ CALL 0071AH
+ OUT (LSE0),A
+ RET
+
+L32D4: CALL SKPDE
+ LD A,0C9H
+ LD (L32D4),A
+ LD HL,L0036
+ BIT 6,(HL)
+ RET Z
+ LD HL,L0767
+ LD (032C9H),HL
+ LD HL,L077A
+ LD (030FCH),HL
+ LD HL,00996H
+ LD (03192H),HL
+ LD HL,L0A01
+ LD (03212H),HL
+ LD HL,L0A1A
+ LD (03209H),HL
+ RET
+
+L3301: LD A,(L0050)
+ OR A
+ RET NZ
+ RST 018H
+ DB 002H
+ RST 018H
+ DB 005H
+ PUSH HL
+ INC HL
+ LD A,022H
+ RST 018H
+ DB 003H
+ LD D,010H
+L3312: LD A,(HL)
+ CP 00DH
+ JR Z,L331D ; (+006H)
+ RST 018H
+ DB 003H
+ INC HL
+ DEC D
+ JR NZ,L3312 ; (-00bH)
+L331D: LD A,022H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 002H
+ POP HL
+ RET
+
+L3325: DB 057H,005H,"RITING" ; CMT status strings (WRITING/FOUND/LOADING/VERIFYING)
+ DS 3, 020H
+ DB 006H
+ DB 000H
+L3332: DB 046H,005H,"OUND"
+ DS 5, 020H
+ DB 006H
+ DB 000H
+L333F: DB 04CH,005H,"OADING"
+ DS 3, 020H
+ DB 006H
+ DB 000H
+L334C: DB 056H,005H,"ERIFYING ",006H
+ NOP
+; ---------------------------------------------------------------------------
+; $RS - RS-232C device descriptor
+; flags1 bit7=1: ZWDIR/ZFREE not used, overlap with RS_INIT code below.
+; ---------------------------------------------------------------------------
+$RS: DW $FD ; Next device = $FD (0x358D)
+ DB "RS",000H,000H ; Device name
+ DB 08FH ; flags1: bit7=1 (no dir/free)
+ DB 001H ; flags2
+ DB 000H ; dirmx = 0
+ DW 03372H ; ZINIT
+ DW 033A4H ; ZRO
+ DW 033A4H ; ZWO (same handler as ZRO)
+ DW 033B5H ; ZCL
+ DW 033B5H ; ZKL (same handler as ZCL)
+ DW 033C6H ; ZINP
+ DW 033DBH ; ZOUT
+ DW 000E5H ; ZDELT (= monitor ROM stub)
+; ZWDIR/ZFREE implicit — next 4 bytes are ZINIT code, read as DW pointers
+; (flags1 bit 7=1 → ZWDIR/ZFREE never called)
+RS_INIT: RET C
+ PUSH IY
+ CALL L33EC
+ CALL L3380
+ CALL L3435
+ JR L33D8 ; (+058H)
+
+L3380: RST 018H
+ DB 013H
+ LD (IY-003H),E
+ CALL TEST1
+ DB 02CH
+ JP NZ,L1F6A
+ RST 018H
+ DB 013H
+ LD (IY-002H),E
+ LD (IY-008H),00DH
+ CALL TEST1
+ DB 000H
+ RET Z
+ CALL TEST1
+ DB 02CH
+ RST 018H
+ DB 013H
+ LD (IY-008H),E
+ RET
+
+ PUSH IY
+ CALL L33EC
+ LD A,(IY-001H)
+ INC (IY-001H)
+ OR A
+ CALL Z,L3497
+ JR L33D8 ; (+023H)
+
+ PUSH IY
+ CALL L33EC
+ DEC (IY-001H)
+ LD A,(IY-001H)
+ OR A
+ CALL Z,L347F
+ JR L33D7 ; (+011H)
+
+ PUSH IY
+ CALL L33EC
+ CALL L34E6
+ JR C,L33D8 ; (+008H)
+ CP (IY-008H)
+ JR NZ,L33D7 ; (+002H)
+ LD A,00DH
+L33D7: OR A
+L33D8: POP IY
+ RET
+
+ PUSH IY
+ CALL L33EC
+ CP 00DH
+ JR NZ,L33E7 ; (+003H)
+ LD A,(IY-008H)
+L33E7: CALL L352B
+ JR L33D8 ; (-014H)
+
+L33EC: PUSH AF
+ PUSH DE
+ LD A,(ZCH)
+ INC A
+ LD IY,033F7H
+ LD DE,L0015
+L33F9: ADD IY,DE
+ DEC A
+ JR NZ,L33F9 ; (-005H)
+ LD C,(IY+000H)
+ POP DE
+ POP AF
+ RET
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ OR C
+ OR B
+ NOP
+ DJNZ L3421 ; (+010H)
+ INC B
+ LD B,B
+ INC BC
+ RET NZ
+ DEC B
+ LD H,B
+ JR NC,L341C ; (+003H)
+ NOP
+ NOP
+ NOP
+L341C: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L3421: OR E
+ OR D
+ NOP
+ DJNZ 03436H ; (+010H)
+ INC B
+ LD B,B
+ INC BC
+ RET NZ
+ DEC B
+ LD H,B
+ JR NC,L3431 ; (+003H)
+L342E: CALL BRKCHK
+L3431: RET NZ
+ JP 0017DH
+
+L3435: LD A,018H
+ OUT (C),A
+ LD A,030H
+ OUT (C),A
+ LD A,(IY-002H)
+ AND 00CH
+ JR NZ,L3448 ; (+004H)
+ SET 2,(IY-002H)
+L3448: LD A,(IY-002H)
+ LD B,A
+ AND 00FH
+ OR 040H
+ LD (IY+006H),A
+ LD A,B
+ AND 080H
+ OR 040H
+ LD (IY+008H),A
+ RRA
+ AND 07FH
+ OR 00AH
+ LD (IY+00AH),A
+ LD A,B
+ OR 07FH
+ LD (IY+002H),A
+ CALL L348B
+L346C: IN A,(C)
+ RRCA
+ RET NC
+ DEC C
+ IN A,(C)
+ INC C
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ AND 070H
+ JR Z,L346C ; (-012H)
+ RET
+
+L347F: RES 0,(IY+008H)
+ RES 7,(IY+00AH)
+ LD (IY-001H),000H
+L348B: LD B,00AH
+ PUSH IY
+ POP HL
+ LD DE,L0003
+ ADD HL,DE
+ OTIR
+ RET
+
+L3497: LD A,030H
+ OUT (C),A
+ RET
+
+L349C: SET 0,(IY+008H)
+ LD A,013H
+ OUT (C),A
+ LD A,(IY+008H)
+ OUT (C),A
+ LD A,035H
+ OUT (C),A
+ LD A,(IY+00AH)
+ OR 088H
+ LD (IY+00AH),A
+ OUT (C),A
+ RET
+
+ LD A,003H
+ OUT (C),A
+ RES 0,(IY+008H)
+ LD A,(IY+008H)
+ OUT (C),A
+L34C5: RES 7,(IY+00AH)
+ JR L34DB ; (+010H)
+
+L34CB: SET 1,(IY+00AH)
+ JR L34DB ; (+00aH)
+
+L34D1: RES 1,(IY+00AH)
+ JR L34DB ; (+004H)
+
+ SET 7,(IY+00AH)
+L34DB: LD A,005H
+ OUT (C),A
+ LD A,(IY+00AH)
+ OUT (C),A
+ OR A
+ RET
+
+L34E6: CALL SKPDE
+ LD C,(IY+000H)
+L34EC: CALL L342E
+ CALL L3564
+ JR C,L34EC ; (-008H)
+ CALL L349C
+L34F7: CALL L342E
+ IN A,(C)
+ RRCA
+ JR NC,L34F7 ; (-008H)
+ DEC C
+ IN A,(C)
+ INC C
+ AND (IY+002H)
+ PUSH AF
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ AND 070H
+ JR NZ,L3516 ; (+005H)
+ CALL L34C5
+ POP AF
+ RET
+
+L3516: LD B,A
+ POP AF
+ PUSH BC
+ CALL L3435
+ POP BC
+ LD A,01DH
+ RLC B
+ RLC B
+ RET C
+ INC A
+ RLC B
+ RET C
+ INC A
+ SCF
+ RET
+
+L352B: CALL SKPDE
+ LD C,(IY+000H)
+ LD D,A
+ CALL L34CB
+L3535: CALL L342E
+ CALL L356B
+ CALL NC,L357C
+L353E: JR C,L3535 ; (-00bH)
+ IN A,(C)
+ BIT 2,A
+ JR Z,L3535 ; (-011H)
+ BIT 7,(IY-003H)
+ JR Z,L3555 ; (+009H)
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ RRCA
+ JR NC,L3535 ; (-020H)
+L3555: DEC C
+ OUT (C),D
+ INC C
+ BIT 6,(IY-003H)
+ JR Z,L3562 ; (+003H)
+ CALL L34D1
+L3562: OR A
+ RET
+
+L3564: OR A
+ BIT 0,(IY-003H)
+ JR L3570 ; (+005H)
+
+L356B: OR A
+ BIT 1,(IY-003H)
+L3570: RET Z
+ LD A,010H
+ OUT (C),A
+ IN A,(C)
+ AND 008H
+ RET NZ
+ SCF
+ RET
+
+L357C: OR A
+ BIT 2,(IY-003H)
+ RET Z
+ LD A,010H
+ OUT (C),A
+ IN A,(C)
+ AND 020H
+ RET NZ
+ SCF
+ RET
+
+; $FD descriptor (original, restored)
+$FD: DW $QD ; Next device = $QD
+ DB "FD",000H,000H ; Device name
+ DB 03FH ; ZFLAG1 (original, bit5=1 = ZINP-based DIR)
+ DB 003H ; ZFLAG2 (original)
+ DB 03FH ; ZDIRMX (original)
+ DW 0368DH ; func[0] ZINIT
+ DW 0000FH ; func[1] ZRO (original)
+ DW 00100H ; func[2] ZWO
+ DW 00030H ; func[3] ZCL
+ DW 000FEH ; func[4] ZKL
+ DW 03705H ; func[5] ZINP (original restored)
+ DW 03708H ; func[6] ZOUT
+ DW 01F97H ; func[7] ZDELT
+ DW 01F97H ; func[8] ZWDIR
+ DW 01F97H ; func[9] ZFREE
+ DB 000H
+L35AB: DB 000H
+L35AC: DB 000H
+L35AD: DS 3, 000H
+L35B0: DB 000H
+L35B1: DS 2, 000H
+L35B3: DB 000H
+L35B4: DB 000H
+L35B5: DB 000H
+L35B6: DB 000H
+L35B7: DS 4, 000H
+L35BB: DS 4, 000H
+L35BF: DB 000H
+L35C0: PUSH BC
+ LD A,L
+ LD B,004H
+L35C4: SRL H
+ RR L
+ DJNZ L35C4 ; (-006H)
+ AND 00FH
+ INC A
+ LD H,A
+ POP BC
+ RET
+
+L35D0: LD A,H
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ DEC A
+ ADD A,L
+ LD L,A
+ RET
+
+L35DB: CALL SKPDE
+ LD HL,L35B5
+ BIT 7,(HL)
+ JR NZ,L35EB ; (+006H)
+ CALL L367C
+ CALL L3898
+L35EB: LD A,(L35AC)
+ BIT 2,A
+ SET 2,A
+ JR Z,L35F6 ; (+002H)
+ SET 5,A
+L35F6: SET 7,A
+ LD HL,L35B5
+ BIT 6,(HL)
+ JR Z,L3601 ; (+002H)
+ SET 6,A
+L3601: CALL L361C
+ LD (HL),A
+ LD HL,L35B7
+ CALL L3614
+ BIT 0,(HL)
+ CALL Z,L3695
+ RET C
+ SET 0,(HL)
+ RET
+
+L3614: LD A,(L35AC)
+ AND 003H
+ JP ADDHLA
+
+L361C: OUT (0DCH),A
+ PUSH AF
+ RLCA
+ RLCA
+ OUT (0DDH),A
+ RLCA
+ OUT (0DEH),A
+ POP AF
+ RET
+
+L3628: CALL SKPDE
+ LD D,000H
+ LD A,(L35B3)
+ SRL A
+ CPL
+ OUT (0DBH),A
+ LD B,A
+ LD A,(L35B5)
+ RES 6,A
+ BIT 5,A
+ JR Z,L3640 ; (+001H)
+ CCF
+L3640: JR C,L3644 ; (+002H)
+ SET 6,A
+L3644: CALL L361C
+ LD HL,L35B5
+ CP (HL)
+ LD (HL),A
+ JR Z,L364F ; (+001H)
+ INC D
+L364F: LD HL,L35BB
+ CALL L3614
+ LD A,(HL)
+ OUT (0D9H),A
+ CP B
+ JR Z,L3666 ; (+00bH)
+ INC D
+ CALL L3673
+ PUSH AF
+ IN A,(0D9H)
+ LD (HL),A
+ POP AF
+ RET C
+ RET NZ
+L3666: LD A,(L35B4)
+ CPL
+ OUT (0DAH),A
+ LD A,D
+ OR A
+ CALL NZ,L388D
+ XOR A
+ RET
+
+L3673: LD A,018H
+ CALL L36C2
+ RET C
+ AND 099H
+ RET
+
+L367C: LD HL,L35B5
+ SET 7,(HL)
+ LD A,(HL)
+ CALL L361C
+ LD HL,L35B7
+ LD B,004H
+ JP ?CLRHL
+
+L368D: XOR A
+ CALL L361C
+ LD (L35B5),A
+ RET
+
+L3695: CALL SKPDE
+ LD HL,L35BB
+ CALL L3614
+ LD (HL),0FFH
+ LD A,008H
+ CALL L36C2
+ RET C
+ AND 085H
+ XOR 004H
+ RET Z
+ JP L385A
+
+L36AE: PUSH AF
+ LD A,LSD0
+ CALL L36BB
+ JR C,L36B8 ; (+002H)
+ POP AF
+ RET
+
+L36B8: POP HL
+ POP HL
+ RET
+
+L36BB: CALL SKPDE
+ LD D,000H
+ JR L36DC ; (+01aH)
+
+L36C2: CALL SKPDE
+ LD B,A
+ LD A,(035AAH)
+ CPL
+ AND 003H
+ OR B
+ LD D,000H
+ JR L36D6 ; (+005H)
+
+L36D1: CALL SKPDE
+ LD D,001H
+L36D6: CALL L36AE
+ LD (L35B6),A
+L36DC: CPL
+ OUT (0D8H),A
+ CALL L3887
+ LD E,007H
+L36E4: LD HL,L2710
+L36E7: DEC HL
+ LD A,H
+ OR L
+ JP Z,L36F9
+ IN A,(0D8H)
+ CPL
+ LD B,A
+ AND 081H
+ CP D
+ JR NZ,L36E7 ; (-00fH)
+ LD A,B
+ OR A
+ RET
+
+L36F9: DEC E
+ JP Z,L385A
+ LD A,(L35B6)
+ CPL
+ OUT (0D8H),A
+ JR L36E4 ; (-021H)
+
+ DB 037H
+ JR L3709 ; (+001H)
+
+ OR A
+L3709: EX AF,AF'
+ PUSH AF
+ EX AF,AF'
+ LD (L35B1),HL
+ PUSH HL
+ LD HL,L35AB
+ RL (HL)
+ RRC (HL)
+ LD H,(HL)
+ LD L,A
+ AND 007H
+ LD (L35AC),A
+ CALL L35DB
+ JR NC,L3728 ; (+005H)
+ POP HL
+ EX AF,AF'
+ POP AF
+ EX AF,AF'
+ RET
+
+L3728: BIT 7,H
+ LD A,L
+ POP HL
+ PUSH HL
+ CALL Z,L37E7
+ LD (035AFH),DE
+ PUSH DE
+ OR A
+ PUSH AF
+ LD H,B
+ LD L,C
+ CALL P,L35C0
+ LD (L35AD),HL
+ LD A,009H
+ LD (L35BF),A
+ PUSH IY
+ CALL L375C
+ EX AF,AF'
+ POP IY
+ LD HL,(L35B3)
+ POP AF
+ CALL P,L35D0
+ LD B,H
+ LD C,L
+ POP DE
+ POP HL
+ POP AF
+ EX AF,AF'
+ JP L37E7
+
+L375C: LD E,000H
+ LD HL,(035AFH)
+ LD A,(L35B5)
+ BIT 5,A
+ JR Z,L376B ; (+003H)
+ ADD HL,HL
+ LD E,080H
+L376B: LD A,L
+ OR A
+ JR Z,L3770 ; (+001H)
+ INC H
+L3770: LD A,H
+ LD (L35B0),A
+L3774: CALL L37FA
+ CALL NC,L3628
+ RET C
+ JR NZ,L37E1 ; (+064H)
+ DI
+ LD A,(L35AB)
+ BIT 7,A
+ LD A,090H
+ LD IY,0A2EDH
+ JR NZ,L3791 ; (+006H)
+ LD A,0B4H
+ LD IY,0A3EDH
+L3791: LD (L37A8),IY
+ CALL L36D1
+ RET C
+L3799: LD B,E
+ PUSH DE
+ LD DE,0FE7CH
+L379E: IN A,(0D8H)
+ OR E
+ CP D
+ JR Z,L379E ; (-006H)
+ CP LSFC
+ JR NZ,L37AD ; (+005H)
+L37A8: NOP
+ NOP
+ JP NZ,L379E
+L37AD: POP DE
+ IN A,(0D8H)
+ RRA
+ JP C,L385A
+ LD A,(L35B4)
+ INC A
+ LD (L35B4),A
+ CP 011H
+ JR Z,L37C4 ; (+005H)
+ DEC D
+ JR NZ,L3799 ; (-029H)
+ JR L37C5 ; (+001H)
+
+L37C4: DEC D
+L37C5: CALL L36AE
+ EI
+ IN A,(0D8H)
+ CPL
+ OR A
+ JR NZ,L37E1 ; (+012H)
+ LD A,(L35AB)
+ OR A
+ CALL Z,L3830
+ JR C,L37E1 ; (+009H)
+ CALL L3818
+ LD A,D
+ OR A
+ JR NZ,L3774 ; (-06bH)
+ XOR A
+ RET
+
+L37E1: CALL L380B
+ RET C
+ JR L3774 ; (-073H)
+
+L37E7: CALL IOOUT
+ LD A,(L35B5)
+ BIT 5,A
+ RET Z
+L37F0: LD A,(HL)
+ CPL
+ LD (HL),A
+ INC HL
+ DEC DE
+ LD A,D
+ OR E
+ JR NZ,L37F0 ; (-009H)
+ RET
+
+L37FA: LD HL,(L35AD)
+ LD (L35B3),HL
+ LD HL,(L35B1)
+ LD A,(L35B0)
+ LD D,A
+ LD C,0DBH
+ OR A
+ RET
+
+L380B: CALL SKPDE
+ LD HL,L35BF
+ DEC (HL)
+ JP Z,L385A
+ JP L3695
+
+L3818: LD (L35B1),HL
+ LD A,D
+ LD (L35B0),A
+ LD HL,(L35B3)
+ LD A,H
+ CP 011H
+ RET NZ
+ LD H,001H
+ INC L
+ LD (L35AD),HL
+ LD (L35B3),HL
+ RET
+
+L3830: LD A,(035AEH)
+ CPL
+ OUT (0DAH),A
+ LD A,090H
+ CALL L36D1
+ RET C
+ LD A,(L35B4)
+ LD B,A
+L3840: IN A,(0D8H)
+ CPL
+ AND 081H
+ CP 001H
+ JR NZ,L3852 ; (+009H)
+ IN A,(0DAH)
+ CPL
+ CP B
+ JR NZ,L3840 ; (-00fH)
+ CALL L36AE
+L3852: IN A,(0D8H)
+ CPL
+ AND 099H
+ RET Z
+ SCF
+ RET
+
+L385A: LD A,(L35B6)
+ RLA
+ IN A,(0D8H)
+ CPL
+ JR NC,L3878 ; (+015H)
+ RLA
+ JR C,L387B ; (+015H)
+ RLA
+ JR NC,L3870 ; (+007H)
+ LD HL,L35AB
+ BIT 7,(HL)
+ JR Z,L387F ; (+00fH)
+L3870: AND 0C0H
+ JR NZ,L3883 ; (+00fH)
+L3874: LD A,029H
+ SCF
+ RET
+
+L3878: RLA
+ JR NC,L3874 ; (-007H)
+L387B: LD A,032H
+ SCF
+ RET
+
+L387F: LD A,02EH
+ SCF
+ RET
+
+L3883: LD A,036H
+ SCF
+ RET
+
+L3887: PUSH DE
+ LD DE,L000F
+ JR L3891 ; (+004H)
+
+L388D: PUSH DE
+ LD DE,L2026
+L3891: DEC DE
+ LD A,E
+ OR D
+ JR NZ,L3891 ; (-005H)
+ POP DE
+ RET
+
+L3898: PUSH BC
+ LD B,011H
+L389B: CALL L388D
+ DJNZ L389B ; (-005H)
+ POP BC
+ RET
+
+; ---------------------------------------------------------------------------
+; $QD Device Descriptor (Quick Disk)
+; ---------------------------------------------------------------------------
+$QD: DW $RFS ; Next device = $RFS (was $USR at 0D5EH)
+ DB "QD",000H,000H ; Device name
+ DB 05FH ; flags1: bit5=1 ZINP-based DIR, bit6=1 ZRO enum
+ DB 040H ; flags2
+ DB 020H ; dirmx: 32 (max directory entries)
+ DW QDINIT ; ZINIT handler
+ DW QDRO ; ZRO handler
+ DW QDWO ; ZWO handler
+ DW QDCL ; ZCL handler
+ DW 00400H ; ZKL (constant)
+ DW QDINP ; ZINP handler
+ DW QDOUT ; ZOUT handler
+ DW 00000H ; ZDELT (not supported)
+ DW 00000H ; ZWDIR (not supported)
+ DW QDFREE ; ZFREE handler
+;
+; ---------------------------------------------------------------------------
+; QDFREE - Free space query (returns carry = not supported)
+; ---------------------------------------------------------------------------
+QDFREE: XOR A
+ SCF
+ RET
+;
+; ---------------------------------------------------------------------------
+; QDINIT - Quick Disk initialization
+; ---------------------------------------------------------------------------
+QDINIT: RET C
+ CALL TEST1
+ DB 059H ; Test for 'Y'
+ JR Z,L38D0 ; (+007H)
+ OR A
+ JP NZ,L1F6A
+ CALL L1E7A
+L38D0: CALL L3924
+ RET C
+ RST 018H
+ DB 010H
+ LD C,002H
+ JR L3919 ; (+03fH)
+;
+; ---------------------------------------------------------------------------
+; QDCL - Quick Disk close
+; ---------------------------------------------------------------------------
+QDCL: OR A
+ JR NZ,L38FA ; (+01dH)
+ RST 018H
+ DB 010H
+ XOR A
+ LD (L395E),A
+ LD C,005H
+ CALL L38EB
+ LD BC,00001H
+L38EB: LD (L3954),HL
+ LD (03956H),DE
+ LD HL,L3953
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ JR L3968 ; (+06eH)
+
+L38FA: CALL SKPDE
+ LD C,006H
+ JR L3919 ; (+018H)
+;
+; ---------------------------------------------------------------------------
+; QDRO - Quick Disk read open (ZRO handler)
+; ---------------------------------------------------------------------------
+QDRO: LD BC,L0003
+ LD DE,00040H
+ CALL L38EB
+ RET NC
+ CP 028H
+ SCF
+ RET NZ
+ LD A,000H
+ RET
+;
+; ---------------------------------------------------------------------------
+; QDINP - Quick Disk input (ZINP handler)
+; ---------------------------------------------------------------------------
+QDINP: RST 018H
+ DB 010H
+ LD D,B
+ LD E,C
+ LD BC,00103H
+L3919: CALL L38EB
+ RST 018H
+ DB 011H
+ RET
+;
+; ---------------------------------------------------------------------------
+; QDWO - Quick Disk write open (ZWO handler)
+; ---------------------------------------------------------------------------
+QDWO: LD A,037H
+ LD (L392C),A
+L3924: LD BC,L0101
+ JR L38EB ; (-03eH)
+;
+; ---------------------------------------------------------------------------
+; QDOUT - Quick Disk output (ZOUT handler)
+; ---------------------------------------------------------------------------
+QDOUT: PUSH AF
+ RST 018H
+ DB 010H
+L392C: XOR A
+ JR NC,L3943 ; (+014H)
+ LD A,0AFH
+ LD (L392C),A
+ CALL L1C2B
+ LD (L3958),HL
+ LD HL,ELMD
+ LD DE,00040H
+ POP AF
+ JR L3949 ; (+006H)
+
+L3943: LD (L3958),HL
+ POP AF
+ SET 0,A
+L3949: LD (0395AH),BC
+ LD B,A
+ LD C,004H
+ JR L3919 ; (-039H)
+
+ DB 000H
+L3953: DB 000H
+L3954: DS 4, 000H
+L3958: DS 4, 000H
+L395C: DB 000H
+L395D: DB 000H
+L395E: DB 000H
+L395F: DB 000H
+L3960: DB 000H
+L3961: DB 000H
+L3962: DB 000H
+L3963: DB 000H
+L3964: DB 000H
+L3965: DS 3, 000H
+L3968: LD A,005H
+ LD (L3964),A
+L396D: DI
+ CALL L39BC
+ EI
+ RET NC
+ PUSH AF
+ CP 028H
+ JR Z,L39BA ; (+042H)
+ CALL L3C37
+ LD A,(03952H)
+ CP 004H
+ JR NZ,L399F ; (+01dH)
+ LD A,(L3960)
+ OR A
+ JR Z,L399F ; (+017H)
+ XOR A
+ LD (L3960),A
+ LD A,(L3961)
+ PUSH HL
+ LD (03966H),SP
+ POP HL
+ DI
+ CALL L3BB7
+ EI
+ JR C,L39B4 ; (+018H)
+ CALL L3C37
+L399F: POP AF
+ PUSH AF
+ CP 029H
+ JR NZ,L39B4 ; (+00fH)
+ LD HL,L3964
+ DEC (HL)
+ JR Z,L39B4 ; (+009H)
+ POP AF
+ LD A,(L395F)
+ LD (L395E),A
+ JR L396D ; (-047H)
+
+L39B4: CALL L3B29
+ CALL L39D5
+L39BA: POP AF
+ RET
+
+L39BC: LD (03966H),SP
+ LD A,(03952H)
+ DEC A
+ JR Z,L39DC ; (+016H)
+ DEC A
+ JR Z,L39E2 ; (+019H)
+ DEC A
+ JR Z,L3A2C ; (+060H)
+ DEC A
+ JP Z,L3A9C
+ DEC A
+ JR Z,L39D5 ; (+002H)
+ JR L3A25 ; (+050H)
+
+L39D5: PUSH AF
+ XOR A
+ LD (L395C),A
+ POP AF
+ RET
+
+L39DC: LD A,(L3953)
+ JP L3B8B
+
+L39E2: XOR A
+ CALL L3BB7
+ CALL L3CB5
+ LD BC,0EFFFH
+ LD A,0AAH
+L39EE: CPL
+ LD D,A
+ CALL L3D2C
+ DEC BC
+ LD A,B
+ OR C
+ JR Z,L39FB ; (+003H)
+ LD A,D
+ JR L39EE ; (-00dH)
+
+L39FB: CALL L3D02
+ CALL L3C37
+ CALL L3BEA
+ LD A,(L3962)
+ DEC A
+ JR NZ,L3A28 ; (+01eH)
+ CALL L3C4C
+ LD BC,0EFFFH
+ LD E,055H
+L3A12: CP E
+ JR NZ,L3A28 ; (+013H)
+ DEC BC
+ LD A,B
+ OR C
+ JR Z,L3A22 ; (+008H)
+ LD A,E
+ CPL
+ LD E,A
+ CALL L3D42
+ JR L3A12 ; (-010H)
+
+L3A22: CALL L3D14
+L3A25: JP L3C37
+
+L3A28: LD A,029H
+ SCF
+ RET
+
+L3A2C: LD A,(L3963)
+ OR A
+ CALL Z,L3BEA
+ CALL L3A62
+ RET C
+ CALL L3D87
+ CALL L3D42
+ LD C,A
+L3A3E: CALL L3D42
+ LD B,A
+ LD HL,(03956H)
+ SBC HL,BC
+ JP C,L3B33
+ LD HL,(L3954)
+L3A4D: CALL L3D42
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3A4D ; (-00aH)
+ CALL L3D14
+ LD A,(L3953)
+ BIT 0,A
+ JR NZ,L3A25 ; (-03cH)
+ RET
+
+L3A62: LD HL,L3962
+ DEC (HL)
+ JR Z,L3A98 ; (+030H)
+ CALL L3C4C
+ LD C,A
+ LD A,(L395C)
+ LD HL,L395D
+ CP (HL)
+ JR NZ,L3A95 ; (+020H)
+ INC A
+ LD (L395C),A
+ LD (HL),A
+ LD A,(L3953)
+ XOR C
+ RRA
+ RET NC
+L3A80: CALL L3D42
+ LD C,A
+ CALL L3D42
+ LD B,A
+L3A88: CALL L3D42
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3A88 ; (-008H)
+ CALL L3D14
+ JR L3A62 ; (-033H)
+
+L3A95: INC (HL)
+ JR L3A80 ; (-018H)
+
+L3A98: LD A,028H
+ SCF
+ RET
+
+L3A9C: LD A,(L395E)
+ LD (L395F),A
+ LD A,(L3963)
+ OR A
+ JR NZ,L3ABF ; (+017H)
+ CALL L3BEA
+ LD A,(L395E)
+ LD HL,L3962
+ ADD A,(HL)
+ LD (L3962),A
+ INC A
+ LD (L395C),A
+ CALL L3A62
+ JP NC,L3B33
+L3ABF: LD A,(L3953)
+ LD B,A
+ AND 001H
+ JR NZ,L3AD3 ; (+00cH)
+ LD DE,L3954
+ LD A,B
+ RES 2,A
+ CALL L3B3C
+ CALL L3D87
+L3AD3: LD DE,L3958
+ LD A,(L3953)
+ SET 0,A
+ CALL L3B3C
+ CALL L3C37
+ CALL L3D87
+ LD A,(L3953)
+ AND 004H
+ JR Z,L3B37 ; (+04cH)
+ LD A,(L3961)
+ LD HL,L395E
+ ADD A,(HL)
+ CALL L3BB7
+ LD A,001H
+ LD (L3960),A
+L3AFA: LD A,(L3961)
+ LD HL,L395F
+ ADD A,(HL)
+ INC A
+ LD (L3962),A
+ INC A
+ LD (L395C),A
+ CALL L3A62
+ JR NC,L3B33 ; (+025H)
+ LD A,(L3953)
+ AND 001H
+ JR NZ,L3B1C ; (+007H)
+ LD DE,L3954
+ CALL L3B6A
+ RET C
+L3B1C: LD DE,L3958
+ CALL L3B6A
+ RET C
+ LD A,(L3960)
+ OR A
+ JR Z,L3B30 ; (+007H)
+L3B29: XOR A
+ LD (L395E),A
+ LD (L3960),A
+L3B30: JP L3C37
+
+L3B33: LD A,029H
+ SCF
+ RET
+
+L3B37: CALL L3BEA
+ JR L3AFA ; (-042H)
+
+L3B3C: PUSH AF
+ LD HL,L395E
+ INC (HL)
+ CALL L3CB5
+ POP AF
+ CALL L3D2C
+ CALL L3B60
+ LD A,C
+ CALL L3D2C
+ LD A,B
+ CALL L3D2C
+L3B53: LD A,(HL)
+ CALL L3D2C
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3B53 ; (-00aH)
+ JP L3D02
+
+L3B60: EX DE,HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ EX DE,HL
+ RET
+
+L3B6A: CALL L3C4C
+ CALL L3B60
+ CALL L3D42
+ CP C
+ JR NZ,L3B33 ; (-043H)
+ CALL L3D42
+ CP B
+ JR NZ,L3B33 ; (-049H)
+L3B7C: CALL L3D42
+ CP (HL)
+ JR NZ,L3B33 ; (-04fH)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3B7C ; (-00cH)
+ JP L3D14
+
+L3B8B: LD B,A
+ LD A,002H
+ OUT (0F7H),A
+ LD A,081H
+ OUT (0F7H),A
+ LD A,002H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 0F0H
+ CP 080H
+ JP NZ,03D58H
+ LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ LD C,A
+ AND 008H
+ JP Z,03D58H
+ LD A,B
+ OR A
+ RET Z
+ LD A,C
+ AND 020H
+ RET NZ
+ JP 03D55H
+
+L3BB7: PUSH AF
+ LD HL,03D7EH
+ LD B,009H
+ CALL L3C27
+L3BC0: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03D58H
+ LD A,010H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 008H
+ JR Z,L3BC0 ; (-015H)
+ LD BC,L00E9
+ CALL L3D66
+ CALL L3CEA
+ CALL L3CCE
+ POP AF
+ CALL L3D2C
+ CALL L3D02
+ JR L3C1D ; (+033H)
+
+L3BEA: LD HL,L3D73
+ LD B,00BH
+ CALL L3C27
+L3BF2: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03D58H
+ CALL L3D87
+ LD A,010H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 008H
+ JR Z,L3BF2 ; (-018H)
+ LD BC,L00E9
+ CALL L3D66
+ CALL L3C62
+ LD (L3961),A
+ INC A
+ LD (L3962),A
+ CALL L3D14
+L3C1D: LD HL,L3965
+ SET 3,(HL)
+ XOR A
+ LD (L395D),A
+ RET
+
+L3C27: LD C,0F6H
+ OTIR
+ LD A,005H
+ LD (L3963),A
+ OUT (0F7H),A
+ LD A,080H
+ OUT (0F7H),A
+ RET
+
+L3C37: PUSH AF
+ LD A,005H
+ OUT (0F6H),A
+ LD A,060H
+ OUT (0F6H),A
+ LD A,005H
+ OUT (0F7H),A
+ XOR A
+ LD (L3963),A
+ OUT (0F7H),A
+ POP AF
+ RET
+
+L3C4C: LD A,058H
+ LD B,00BH
+ LD HL,L3D73
+ CALL L3CF3
+ LD HL,L3965
+ BIT 3,(HL)
+ LD BC,L0003
+ JR Z,L3C65 ; (+005H)
+ RES 3,(HL)
+L3C62: LD BC,L00A0
+L3C65: CALL L3D66
+ LD A,005H
+ OUT (0F7H),A
+ LD A,082H
+ OUT (0F7H),A
+ LD A,003H
+ OUT (0F6H),A
+ LD A,LSD3
+ OUT (0F6H),A
+ LD BC,L2CC0
+L3C7B: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 010H
+ JR Z,L3C8D ; (+008H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3C7B ; (-00fH)
+ JP 03D5EH
+
+L3C8D: LD A,003H
+ OUT (0F6H),A
+ LD A,0C3H
+ OUT (0F6H),A
+ LD B,09FH
+L3C97: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 001H
+ JR NZ,L3CA7 ; (+006H)
+ DEC B
+ JR NZ,L3C97 ; (-00dH)
+ JP 03D5EH
+
+L3CA7: LD A,003H
+ OUT (0F6H),A
+ LD A,0C9H
+ OUT (0F6H),A
+ CALL L3D42
+ JP L3D42
+
+L3CB5: LD A,098H
+ LD B,009H
+ LD HL,03D7EH
+ CALL L3CF3
+ CALL L3CEA
+ LD HL,L3965
+ BIT 3,(HL)
+ LD BC,0001DH
+ JR Z,L3CD1 ; (+005H)
+ RES 3,(HL)
+L3CCE: LD BC,L0140
+L3CD1: CALL L3D66
+ LD A,005H
+ OUT (0F6H),A
+ LD A,0EFH
+ OUT (0F6H),A
+ LD BC,00001H
+ CALL L3D66
+ LD A,0C0H
+ OUT (0F6H),A
+ LD A,0A5H
+ JR L3D2C ; (+042H)
+
+L3CEA: LD A,005H
+ OUT (0F6H),A
+ LD A,0FFH
+ OUT (0F6H),A
+ RET
+
+L3CF3: LD C,0F6H
+ OUT (C),A
+ LD A,005H
+ OUT (0F7H),A
+L3CFB: LD A,080H
+ OUT (0F7H),A
+ OTIR
+ RET
+
+L3D02: LD BC,00001H
+ CALL L3D66
+ LD A,010H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 008H
+ RET NZ
+ JP 03D5BH
+
+L3D14: LD B,003H
+L3D16: CALL L3D42
+ DJNZ L3D16 ; (-005H)
+L3D1B: IN A,(0F6H)
+ RRCA
+ JR NC,L3D1B ; (-005H)
+ LD A,001H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 040H
+ JR NZ,L3D52 ; (+028H)
+ OR A
+ RET
+
+L3D2C: PUSH AF
+L3D2D: IN A,(0F6H)
+ AND 004H
+ JR Z,L3D2D ; (-006H)
+ POP AF
+ OUT (QDPC),A
+L3D36: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03D58H
+ RET
+
+L3D42: CALL L3D36
+ IN A,(0F6H)
+ RLCA
+ JR C,L3D52 ; (+008H)
+ RRCA
+ RRCA
+ JR NC,L3D42 ; (-00cH)
+ IN A,(QDPC)
+ OR A
+ RET
+
+L3D52: LD A,029H
+ LD HL,02E3EH
+ LD HL,0323EH
+ LD HL,L353E
+ LD HL,0363EH
+ LD SP,(03966H)
+ SCF
+ RET
+
+L3D66: PUSH AF
+L3D67: LD A,096H
+L3D69: DEC A
+ JR NZ,L3D69 ; (-003H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3D67 ; (-00aH)
+ POP AF
+ RET
+
+L3D73: LD E,B
+ INC B
+ DJNZ L3D7C ; (+005H)
+ INC B
+ INC BC
+ RET NC
+ LD B,016H
+L3D7C: RLCA
+ LD D,098H
+ INC B
+ DJNZ 03D88H ; (+006H)
+ LD D,007H
+ LD D,005H
+ LD L,L
+L3D87: LD A,0E8H
+ OUT (LSE3),A
+ LD (MMIO),A
+ NOP
+ LD A,(0E001H)
+ OUT (LSE1),A
+ AND 081H
+ RET NZ
+ CALL L3B29
+ JP L017B
+
+ PUSH HL
+ LD DE,(00188H)
+ PUSH DE
+ LD DE,L3DE4
+ LD (00188H),DE
+ LD A,(L004F)
+ PUSH AF
+ LD A,064H
+ LD (L004F),A
+ LD (03E5BH),SP
+ XOR A
+ LD (FILOUT),A
+L3DBB: LD SP,L0000
+L3DBE: LD BC,L3DBE
+ PUSH BC
+ RST 018H
+ DB 002H
+ LD A,02AH
+ RST 018H
+ DB 003H
+L3DC8: CALL L3E67
+ JR NC,L3DC8 ; (-005H)
+ LD A,(DE)
+ CP 02AH
+ RET NZ
+ INC DE
+ LD A,(DE)
+ INC DE
+ EXX
+ LD HL,L3DF6
+ LD B,00AH
+L3DDA: CP (HL)
+ INC HL
+ JR Z,L3DF0 ; (+012H)
+ INC HL
+ INC HL
+ DJNZ L3DDA ; (-008H)
+ EXX
+ RET
+
+L3DE4: LD C,A
+ AND 07FH
+ JR Z,L3DBB ; (-02eH)
+ LD A,C
+ RST 018H
+ DB 01BH
+ RST 018H
+ DB 043H
+ JR L3DBB ; (-035H)
+
+L3DF0: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH DE
+ EXX
+ RET
+
+L3DF6: LD B,H
+ CALL C,L4D3E
+ LD C,(HL)
+ CCF
+ LD D,B
+ INC D
+ LD A,047H
+ RST 010H
+ LD A,046H
+ LD (HL),D
+ CCF
+ LD D,D
+L3E06: LD E,D
+ LD A,053H
+ DEC E
+ LD A,04CH
+ INC (HL)
+ LD A,056H
+ LD D,C
+ LD A,054H
+ JP NZ,03A3FH
+ SUB C
+ DJNZ L3E06 ; (-012H)
+ LD BC,09132H
+ DJNZ 03DE6H ; (-037H)
+ CALL L3FAB
+ RET C
+ EXX
+ CALL L3FD9
+ EXX
+ LD (ELMD20),BC
+ LD (ELMD22),DE
+ LD (ELMD24),HL
+ RST 018H
+ DB 031H
+ RET
+
+ CALL L3E88
+ PUSH HL
+ PUSH AF
+ CALL L3E46
+ POP AF
+ POP HL
+ JR NC,L3E43 ; (+003H)
+ LD HL,(ELMD22)
+L3E43: RST 018H
+ DB 030H
+ RET
+
+L3E46: CALL L3FD9
+ RST 018H
+ DB 02FH
+ CP 001H
+ RET Z
+ JP 01F9DH
+
+ CALL L3E46
+ LD HL,(ELMD22)
+ RST 018H
+ DB 032H
+ RET
+
+ LD SP,L0000
+ POP AF
+ LD (L004F),A
+ POP HL
+ LD (00188H),HL
+ POP HL
+ RET
+
+L3E67: LD DE,0FF00H
+ RST 018H
+ DB 00CH
+ JR C,L3E86 ; (+018H)
+ LD A,(DE)
+ CP 03AH
+ SCF
+ RET NZ
+ INC DE
+ CALL L3E88
+ RET C
+ LD A,(DE)
+ INC DE
+ XOR 03DH
+ RET NZ
+L3E7D: CALL L3EAD
+ CCF
+ RET NC
+ LD (HL),A
+ INC HL
+ JR L3E7D ; (-009H)
+
+L3E86: LD (DE),A
+ RET
+
+L3E88: PUSH HL
+ CALL L3EA2
+ PUSH DE
+ CALL L3EB4
+ JR C,L3E9D ; (+00bH)
+ LD H,A
+ CALL L3EB4
+ JR C,L3E9D ; (+005H)
+ LD L,A
+ POP AF
+ POP AF
+ XOR A
+ RET
+
+L3E9D: POP DE
+ POP HL
+ SCF
+ RET
+
+L3EA1: INC DE
+L3EA2: LD A,(DE)
+ CP 020H
+ JR Z,L3EA1 ; (-006H)
+ RET
+
+L3EA8: LD A,(DE)
+ RST 018H
+ DB 015H
+ INC DE
+ RET
+
+L3EAD: CALL L3EA2
+ CP 03BH
+ JR Z,L3ED2 ; (+01eH)
+L3EB4: PUSH BC
+ PUSH DE
+ CALL L3EA8
+ JR C,L3ECE ; (+013H)
+ LD C,A
+ CALL L3EA8
+ JR C,L3ECE ; (+00dH)
+ LD B,A
+ LD A,C
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ ADD A,B
+ LD C,A
+ LD A,C
+ POP BC
+ POP BC
+ OR A
+ RET
+
+L3ECE: POP DE
+ POP BC
+ SCF
+ RET
+
+L3ED2: INC DE
+ LD A,(DE)
+ INC DE
+ OR A
+ RET
+
+ CALL L3E88
+ RET C
+ JP (HL)
+
+ CALL L3E88
+ JR C,L3EEC ; (+00bH)
+ PUSH HL
+ CALL L3E88
+ JR C,L3EEB ; (+004H)
+ POP DE
+ EX DE,HL
+ JR L3EF2 ; (+007H)
+
+L3EEB: POP HL
+L3EEC: EX DE,HL
+ LD HL,L0080
+ ADD HL,DE
+ EX DE,HL
+L3EF2: LD C,008H
+ CALL L3EFF
+ RET C
+ PUSH HL
+ SBC HL,DE
+ POP HL
+ RET NC
+ JR L3EF2 ; (-00dH)
+
+L3EFF: CALL L3F27
+ LD B,C
+ PUSH HL
+L3F04: LD A,(HL)
+ CALL L3F38
+ INC HL
+ LD A,020H
+ RST 018H
+ DB 009H
+ DJNZ L3F04 ; (-00bH)
+ POP HL
+ LD A,02FH
+ RST 018H
+ DB 009H
+ LD B,C
+L3F15: LD A,(HL)
+ CP 020H
+ JR NC,L3F1C ; (+002H)
+ LD A,02EH
+L3F1C: RST 018H
+ DB 009H
+ INC HL
+ DJNZ L3F15 ; (-00cH)
+ RST 018H
+ DB 008H
+ RST 018H
+ DB 00FH
+ OR A
+ RET
+
+L3F27: LD A,03AH
+ RST 018H
+ DB 009H
+ LD A,H
+ CALL L3F38
+ LD A,L
+ CALL L3F38
+ LD A,03DH
+ RST 018H
+ DB 009H
+ RET
+
+L3F38: PUSH AF
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ CALL L3F41
+ POP AF
+L3F41: AND 00FH
+ ADD A,030H
+ CP 03AH
+ JR C,L3F4B ; (+002H)
+ ADD A,007H
+L3F4B: RST 018H
+ DB 009H
+ RET
+
+ CALL L3E88
+ LD A,(FILOUT)
+ PUSH AF
+ XOR A
+ LD (FILOUT),A
+L3F59: RST 018H
+ DB 002H
+ CALL L3F27
+ LD A,(HL)
+ CALL L3F38
+ LD A,014H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 003H
+ CALL L3E67
+ JR NC,L3F59 ; (-014H)
+ POP AF
+ LD (FILOUT),A
+ RET
+
+ CALL L3E88
+ RET C
+ PUSH HL
+ CALL L3E88
+ POP BC
+ RET C
+ PUSH HL
+ PUSH BC
+ LD HL,0FF00H
+ CALL L3E7D
+ LD DE,0FF00H
+ OR A
+ SBC HL,DE
+ LD C,L
+ POP HL
+ PUSH HL
+ EXX
+ POP HL
+ POP DE
+ EXX
+ RET Z
+L3F92: CALL L3FEC
+ JR NZ,L3F9B ; (+004H)
+ CALL L3EFF
+ RET C
+L3F9B: RST 018H
+ DB 00EH
+ RET Z
+ EXX
+ INC HL
+ PUSH HL
+ SCF
+ SBC HL,DE
+ POP HL
+ RET NC
+ PUSH HL
+ EXX
+ POP HL
+ JR L3F92 ; (-019H)
+
+L3FAB: CALL L3E88
+ PUSH HL
+ CALL NC,L3E88
+ POP BC
+ RET C
+ SBC HL,BC
+ INC HL
+ PUSH HL
+ PUSH BC
+ CALL L3E88
+ PUSH HL
+ EXX
+ POP HL
+ POP DE
+ POP BC
+ RET
+
+ CALL L3FAB
+ RET C
+ EX DE,HL
+ PUSH HL
+ SBC HL,DE
+ POP HL
+ JR C,L3FD0 ; (+003H)
+ LDIR
+ RET
+
+L3FD0: ADD HL,BC
+ DEC HL
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ EX DE,HL
+ LDDR
+ RET
+
+L3FD9: LD A,(DE)
+ OR A
+ JR Z,L3FE2 ; (+005H)
+ INC DE
+ CP 03AH
+ JR NZ,L3FD9 ; (-009H)
+L3FE2: RST 018H
+ DB 017H
+ RST 018H
+ DB 02DH
+ LD A,001H
+ LD (ELMD),A
+ RET
+
+L3FEC: LD A,(DE)
+ CP (HL)
+ RET NZ
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD B,C
+L3FF3: LD A,(DE)
+ CP (HL)
+ JR NZ,L3FFC ; (+005H)
+ INC DE
+ INC HL
+ DJNZ L3FF3 ; (-008H)
+ XOR A
+L3FFC: POP HL
+ POP DE
+ POP BC
+ RET
+
+L4000: LD HL,RFS_END ; TEXTST: moved past RFS module (was 085FFH)
+ LD (TEXTST),HL
+ LD HL,L4046
+ LD (000E3H),HL
+ LD A,B
+ OR A
+ JR Z,L401B ; (+00bH)
+ LD HL,L4036
+ LD DE,L1361
+ LD BC,00010H
+ LDIR
+L401B: LD DE,L84E7
+ RST 018H
+ DB 005H
+ JP MEMCLI_PATCH ; MEMCLI: call SVC 020H then set HL=RFS_END (was SVC 020H + EX DE,HL)
+L4023: LD (HL),000H
+ INC HL
+ LD A,H
+ CP 0FFH
+ JR C,L4023 ; (-008H)
+L402B: CALL L4902
+ CALL L4914
+ CALL L5E1D
+ JR L404A ; (+014H)
+
+; ---------------------------------------------------------------------------
+; Auto-run command string (16 bytes, copied into F-key slot at startup)
+; L403E overlaps: referenced as "TO RUN"\r (suffix of "AUTO RUN"\r)
+; ---------------------------------------------------------------------------
+L4036: DB 00FH,"RUN ",022H ; Length (15) + 'RUN "'
+L403E: DB "AUTO RUN",022H,00DH ; 'AUTO RUN"\r' (also read as 'TO RUN"\r' via L403E+2)
+; ---------------------------------------------------------------------------
+; Hook snippet installed at 0x00E3 — executed in-place as Z80 code
+; ---------------------------------------------------------------------------
+L4046: LD A,016H ; 3E 16
+ RST 018H ; DF
+ DB 003H ; SVC #3
+L404A: LD HL,L4B85
+ LD (00188H),HL
+L4050: RST 018H
+ DB 002H
+ LD DE,L4B72
+ RST 018H
+ DB 005H
+ RST 018H
+ DB 001H
+L4059: LD A,(L4B78)
+ OR A
+ JR NZ,L406B ; (+00cH)
+ LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ LD (08496H),SP
+L406B: LD HL,L0000
+ LD (L8483),HL
+ XOR A
+ LD (L0050),A
+ CALL L48B1
+ RST 018H
+ DB 043H
+ LD DE,KEYBUF
+ RST 018H
+ DB 00CH
+ JR NC,L408D ; (+00cH)
+L4081: LD HL,L48B0
+ LD A,(HL)
+ OR A
+ LD (HL),000H
+ JR NZ,L4050 ; (-03aH)
+ JR L4059 ; (-033H)
+
+L408C: INC DE
+L408D: LD A,(DE)
+ CP 020H
+ JR Z,L408C ; (-006H)
+ OR A
+ JR Z,L4059 ; (-03cH)
+ CALL L5EC4
+ JP NC,L473E
+ LD HL,L84E7
+ PUSH HL
+ CALL L66EF
+ INC HL
+ LD (L847D),HL
+ CALL L4952
+ POP HL
+ JR L40AF ; (+003H)
+
+L40AC: CALL 05E48H
+L40AF: LD (08496H),SP
+L40B3: LD DE,L40AC
+ PUSH DE
+L40B7: LD (L8498),HL
+ CALL BRKCHK
+ JP Z,0017DH
+L40C0: LD A,(HL)
+ INC HL
+ CP 080H
+ JR NC,L411A ; (+054H)
+ CP 027H
+ JP Z,L4F8A
+ CP 020H
+ JR Z,L40C0 ; (-00fH)
+ CP 03AH
+ JR Z,L40B7 ; (-01cH)
+ OR A
+ JR Z,L40E1 ; (+00bH)
+ DEC HL
+ SUB 041H
+ CP 01AH
+ JP C,L4C99
+ JP L4AEC
+
+L40E1: LD HL,(L847D)
+L40E4: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4103 ; (+018H)
+ LD (L0050),A
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ LD (L847D),HL
+ EX DE,HL
+ INC HL
+ CALL LDDEMI
+ LD (08483H),DE
+ CALL L4971
+ POP DE
+ JR L40AF ; (-054H)
+
+L4103: POP HL
+ CALL L4146
+ JP Z,L4050
+ XOR A
+ LD (L4B78),A
+ LD A,(L8486)
+ CP 002H
+ JP Z,04B19H
+ PUSH HL
+ JP L484D
+
+L411A: CP 0FFH
+ JP Z,L4CCB
+ LD DE,L44AC
+ CP 0FEH
+ JR NZ,L412A ; (+004H)
+ LD A,(HL)
+ INC HL
+ JR L4132 ; (+008H)
+
+L412A: CP LSE0
+ JP NC,L4AEC
+ LD DE,L43EC
+L4132: ADD A,A
+ PUSH HL
+ EX DE,HL
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ EX (SP),HL
+L413E: CALL HLFTCH
+L4141: OR A
+ RET Z
+ CP 03AH
+ RET
+
+L4146: PUSH HL
+ LD HL,(L8483)
+ LD A,L
+ OR H
+ POP HL
+ RET
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+STMTWORDTBL:DB "GOT", "O" | 080H ; BASIC statement keyword text table
+ DB "GOSU", "B" | 080H
+ DB 080H
+ DB "RU", "N" | 080H
+ DB "RETUR", "N" | 080H
+ DB "RESTOR", "E" | 080H
+ DB "RESUM", "E" | 080H
+ DB "LIS", "T" | 080H
+ DB 080H
+ DB "DELET", "E" | 080H
+ DB "RENU", "M" | 080H
+ DB "AUT", "O" | 080H
+ DB "EDI", "T" | 080H
+L4193: DB "FO", "R" | 080H
+ DB "NEX", "T" | 080H
+ DB "PRIN", "T" | 080H
+ DB 080H
+ DB "INPU", "T" | 080H
+ DB 080H
+ DB "I", "F" | 080H
+ DB "DAT", "A" | 080H
+ DB "REA", "D" | 080H
+ DB "DI", "M" | 080H
+ DB "RE", "M" | 080H
+ DB "EN", "D" | 080H
+ DB "STO", "P" | 080H
+ DB "CON", "T" | 080H
+ DB "CL", "S" | 080H
+ DB 080H
+ DB "O", "N" | 080H
+ DB "LE", "T" | 080H
+ DB "NE", "W" | 080H
+ DB "POK", "E" | 080H
+ DB "OF", "F" | 080H
+ DB "MOD", "E" | 080H
+ DB "SKI", "P" | 080H
+ DB "PLO", "T" | 080H
+ DB "LIN", "E" | 080H
+ DB "RLIN", "E" | 080H
+ DB "MOV", "E" | 080H
+ DB "RMOV", "E" | 080H
+ DB "TRO", "N" | 080H
+ DB "TROF", "F" | 080H
+ DB "INP", "@" | 080H
+ DB "DEFAUL", "T" | 080H
+ DB "GE", "T" | 080H
+ DB "PCOLO", "R" | 080H
+ DB "PHOM", "E" | 080H
+ DB "HSE", "T" | 080H
+ DB "GPRIN", "T" | 080H
+ DB "KE", "Y" | 080H
+ DB "AXI", "S" | 080H
+ DB "LOA", "D" | 080H
+ DB "SAV", "E" | 080H
+ DB "MERG", "E" | 080H
+ DB "CHAI", "N" | 080H
+ DB "CONSOL", "E" | 080H
+ DB "SEARC", "H" | 080H
+ DB "OUT", "@" | 080H
+ DB "CIRCL", "E" | 080H
+ DB "TES", "T" | 080H
+ DB "PAG", "E" | 080H
+ DB "WAI", "T" | 080H
+ DB "SWA", "P" | 080H
+ DB 080H
+ DB "ERRO", "R" | 080H
+ DB "ELS", "E" | 080H
+ DB "US", "R" | 080H
+ DB "BY", "E" | 080H
+ DB 080H
+ DB 080H
+ DB "DE", "F" | 080H
+ DB 080H
+ DB 080H
+ DB "LABE", "L" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "WOPE", "N" | 080H
+ DB "CLOS", "E" | 080H
+ DB "ROPE", "N" | 080H
+ DB "XOPE", "N" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "DI", "R" | 080H
+ DB 080H
+ DB 080H
+ DB "RENAM", "E" | 080H
+ DB "KIL", "L" | 080H
+ DB "LOC", "K" | 080H
+ DB "UNLOC", "K" | 080H
+ DB "INI", "T" | 080H
+ DB 080H
+ DB 080H
+ DB "RMO", "V" | 080H
+ DB "T", "O" | 080H
+ DB "STE", "P" | 080H
+ DB "THE", "N" | 080H
+ DB "USIN", "G" | 080H
+ DB 080H
+ DB 080H
+ DB "TA", "B" | 080H
+ DB "SP", "C" | 080H
+ DB 080H
+ DB 080H
+ DB ".XO", "R" | 080H
+ DB ".O", "R" | 080H
+ DB ".AN", "D" | 080H
+ DB ".NO", "T" | 080H
+ DB ">", "<" | 080H
+ DB "<", ">" | 080H
+ DB "=", "<" | 080H
+ DB "<", "=" | 080H
+ DB "=", ">" | 080H
+ DB ">", "=" | 080H
+ DB "=" | 080H
+ DB ">" | 080H
+ DB "<" | 080H
+ DB "+" | 080H
+ DB "-" | 080H
+ DB 080H
+ DB 080H
+ DB "/" | 080H
+ DB "*" | 080H
+ DB "^" | 080H
+ DB 0FFH
+EXTWORDTBL: DB 080H ; BASIC extended keyword text table
+ DB "SE", "T" | 080H
+ DB "RESE", "T" | 080H
+ DB "COLO", "R" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "BEE", "P" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "MUSI", "C" | 080H
+ DB "TEMP", "O" | 080H
+ DB "CURSO", "R" | 080H
+ DB "VERIF", "Y" | 080H
+ DB "CL", "R" | 080H
+L433E: DB "LIMI", "T" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "BOO", "T" | 080H
+ DB 0FFH
+FUNCWORDTBL:DB "IN", "T" | 080H ; BASIC function keyword text table
+ DB "AB", "S" | 080H
+ DB "SI", "N" | 080H
+ DB "CO", "S" | 080H
+ DB "TA", "N" | 080H
+ DB "L", "N" | 080H
+ DB "EX", "P" | 080H
+ DB "SQ", "R" | 080H
+ DB "RN", "D" | 080H
+ DB "PEE", "K" | 080H
+ DB "AT", "N" | 080H
+ DB "SG", "N" | 080H
+ DB "LO", "G" | 080H
+ DB "FRA", "C" | 080H
+ DB "PA", "I" | 080H
+ DB "RA", "D" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "JO", "Y" | 080H
+ DB 080H
+ DB "CHR", "$" | 080H
+ DB "STR", "$" | 080H
+ DB "HEX", "$" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "SPACE", "$" | 080H
+ DB 080H
+ DB 080H
+ DB "AS", "C" | 080H
+ DB "LE", "N" | 080H
+ DB "VA", "L" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "ER", "N" | 080H
+ DB "ER", "L" | 080H
+ DB "SIZ", "E" | 080H
+ DB "CSR", "H" | 080H
+ DB "CSR", "V" | 080H
+ DB 080H
+ DB 080H
+ DB "LEFT", "$" | 080H
+ DB "RIGHT", "$" | 080H
+ DB "MID", "$" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "TI", "$" | 080H
+ DB 080H
+ DB "EO", "F" | 080H
+ DB "F", "N" | 080H
+ DB 0FFH
+L43EC: DW L5147 ; Keyword dispatch address table
+ DW L50C2
+ DW L4AEC
+ DW L47FF
+ DW L5091
+ DW L5828
+ DW L4C38
+ DW 052C2H
+ DW L4AEC
+ DW L4999
+ DW L4A38
+ DW L485E
+ DW L48B9
+ DW L4D8E
+ DW L4E25
+ DW L561E
+ DW L4AEC
+ DW L575B
+ DW L4AEC
+ DW L515A
+ DW L4F8A
+ DW L5754
+ DW L76AC
+ DW L4F8A
+ DW L484D
+ DW L4BEA
+ DW L4C1B
+ DW L5537
+ DW L4AEC
+ DW L50EA
+ DW L4C99
+ DW L4922
+ DW L5024
+ DW L4AEC
+ DW L6A24
+ DW L6A87
+ DW L6E22
+ DW L6AD4
+ DW 06AD7H
+ DW 06ADAH
+ DW 06ADDH
+ DW L4959
+ DW L496C
+ DW L4FAB
+ DW L58CA
+ DW L4FEF
+ DW L6B3F
+ DW L6B71
+ DW L6B7B
+ DW L6B85
+ DW L53A9
+ DW L6BEA
+ DW L5986
+ DW L5C88
+ DW L59EA
+ DW L59D5
+ DW L5260
+ DW L52C0
+ DW L4F96
+ DW L6C2A
+ DW L6DF8
+ DW L6E03
+ DW L4F7A
+ DW L5D65
+ DW L4AEC
+ DW L4B7A
+ DW L517C
+ DW L4F30
+ DW L5258
+ DW L4AEC
+ DW L4AEC
+ DW L5456
+ DW L4AEC
+ DW L4AEC
+ DW L4F8A
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW 058E2H
+ DW L5913
+ DW L58DF
+ DW 058E5H
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L5CE3
+ DW L4AEC
+ DW L4AEC
+ DW L5D0A
+ DW 05914H
+ DW 05CD7H
+ DW L5CD5
+ DW L58D0
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+L44AC: DW L4AEC
+ DW L51EE
+ DW 051EFH
+ DW L54A6
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L5255
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L54FD
+ DW L551F
+ DW L4FC7
+ DW L5C71
+ DW L4928
+ DW L504D
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L52BA
+L450A: DW L7E8B
+ DW L7E86
+ DW L7FD2
+ DW L7FC2
+ DW L80B1
+ DW L8320
+ DW L81FC
+ DW L7EE8
+ DW L81B7
+ DW L81A3
+ DW L7F06
+ DW L8169
+ DW L8314
+ DW L608D
+ DW L8181
+ DW L817C
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L792C
+ DW L4AEC
+ DW L4AEC
+ DW L7237
+ DW L71F6
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L7219
+ DW L4AEC
+ DW L4AEC
+ DW L7272
+ DW L727C
+ DW L7284
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L7180
+ DW L718E
+ DW L7164
+ DW L7176
+ DW L717B
+ DW L4AEC
+ DW L4AEC
+ DW L7296
+ DW L72B3
+ DW L72D0
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L7326
+ DW L4AEC
+ DW L7245
+ DW L789F
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+L45AA: CALL TEST1
+ DB 00CH
+ JR NZ,L45B6 ; (+006H)
+ CALL LDDEMI
+ OR 0FFH
+ RET
+
+L45B6: INC HL
+ CP 00BH
+ JR NZ,L45DA ; (+01fH)
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD A,E
+ OR D
+ RET Z
+ EX DE,HL
+ CALL L4609
+ JP C,04B0DH
+ EX DE,HL
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00CH
+ INC HL
+ INC HL
+ INC HL
+ OR 0FFH
+ LD (L473D),A
+ RET
+
+L45DA: CP 022H
+ JP NZ,L4AEC
+ LD (04650H),HL
+ LD B,000H
+L45E4: LD A,(HL)
+ OR A
+ JR Z,L45F0 ; (+008H)
+ INC HL
+ CP 022H
+ JR Z,L45F0 ; (+003H)
+ INC B
+ JR L45E4 ; (-00cH)
+
+L45F0: LD A,B
+ OR A
+ JP Z,L4AEC
+ LD (0464EH),A
+ EX DE,HL
+ CALL L4603
+ JP C,04B0DH
+ EX DE,HL
+ OR 0FFH
+ RET
+
+L4603: PUSH BC
+ LD BC,L463C
+ JR L460D ; (+004H)
+
+L4609: PUSH BC
+ LD BC,L4630
+L460D: LD (04623H),BC
+ PUSH DE
+ EX DE,HL
+ LD HL,(TEXTST)
+L4616: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ LD A,B
+ OR C
+ SCF
+ JR Z,L462D ; (+00fH)
+ DEC HL
+ PUSH HL
+ ADD HL,BC
+ EX (SP),HL
+ CALL L0000
+ JR C,L462C ; (+005H)
+ JR Z,L462C ; (+003H)
+ POP HL
+ JR L4616 ; (-016H)
+
+L462C: POP DE
+L462D: POP DE
+ POP BC
+ RET
+
+L4630: INC HL
+ INC HL
+ INC HL
+ LD A,D
+ CP (HL)
+ RET NZ
+ DEC HL
+ LD A,E
+ CP (HL)
+ DEC HL
+ DEC HL
+ RET
+
+L463C: PUSH HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ CALL TEST1
+ DB 0CAH
+ JR NZ,L4660 ; (+019H)
+ CALL TEST1
+ DB 022H
+ JR NZ,L4660 ; (+013H)
+ LD B,000H
+ LD DE,L0000
+L4652: LD A,(DE)
+ CP (HL)
+ JR NZ,L4660 ; (+00aH)
+ INC HL
+ INC DE
+ DJNZ L4652 ; (-008H)
+ LD A,(HL)
+ CP 022H
+ JR Z,L4660 ; (+001H)
+ OR A
+L4660: SCF
+ CCF
+ POP HL
+ RET
+
+L4664: LD DE,L0000
+ LD BC,0FFFFH
+ CALL L46A6
+ RET Z
+ CP 02DH
+ JR Z,L468E ; (+01cH)
+ CP 02EH
+ LD DE,(0847FH)
+ JR Z,L4681 ; (+007H)
+ CALL TESTX
+ DB 00BH
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L4681: INC HL
+ CALL L46A6
+ JR Z,L468B ; (+004H)
+ CP 02DH
+ JR Z,L468E ; (+003H)
+L468B: LD C,E
+ LD B,D
+ RET
+
+L468E: INC HL
+ CALL L46A6
+ RET Z
+ CP 02EH
+ JR NZ,L469D ; (+006H)
+ LD BC,(0847FH)
+ INC HL
+ RET
+
+L469D: CALL TESTX
+ DB 00BH
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ RET
+
+L46A6: CALL L413E
+ RET Z
+ CP 02CH
+ RET
+
+L46AD: CALL SKPDE
+ LD A,0FFH
+ LD (L473D),A
+ LD HL,L4703
+ JR L46CC ; (+012H)
+
+L46BA: CALL SKPDE
+ CALL L4836
+L46C0: LD A,(L473D)
+ OR A
+ RET Z
+ XOR A
+ LD (L473D),A
+ LD HL,L46E9
+L46CC: LD (046E7H),HL
+ LD HL,(TEXTST)
+ DEC HL
+L46D3: INC HL
+ LD A,(HL)
+ INC HL
+ OR (HL)
+ RET Z
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (04732H),DE
+L46E0: CALL L51A2
+ OR A
+ JR Z,L46D3 ; (-013H)
+ JP L0000
+
+L46E9: CP 00CH
+ JR NZ,L46E0 ; (-00dH)
+ DEC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH HL
+ EX DE,HL
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00BH
+ INC HL
+ INC HL
+ JR L46E0 ; (-023H)
+
+L4703: CP 00BH
+ JR NZ,L46E0 ; (-027H)
+ DEC HL
+ PUSH HL
+ CALL INDRCT
+ LD E,L
+ LD D,H
+ LD A,L
+ OR H
+ JR Z,L4739 ; (+027H)
+ CALL L4609
+ JR C,L4722 ; (+00bH)
+ EX DE,HL
+ POP HL
+ DEC HL
+ LD (HL),00CH
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ JR L46E0 ; (-042H)
+
+L4722: PUSH DE
+ LD A,010H
+ RST 018H
+ DB 01BH
+ LD A,020H
+ RST 018H
+ DB 003H
+ POP HL
+ CALL L5E66
+ RST 018H
+ DB 005H
+ LD HL,L0000
+ CALL L4B58
+ RST 018H
+ DB 002H
+L4739: POP HL
+ INC HL
+ JR L46E0 ; (-05dH)
+
+L473D: NOP
+L473E: RST 018H
+ DB 028H
+ CALL L46BA
+ CALL L6A11
+ LD A,B
+ OR C
+ JP Z,L4059
+ LD (0847FH),BC
+ LD A,(DE)
+ CP 020H
+ JR NZ,L4755 ; (+001H)
+ INC DE
+L4755: PUSH AF
+ LD HL,L84E7
+ CALL L66EF
+ PUSH HL
+ LD HL,(L847F)
+ LD E,L
+ LD D,H
+ CALL L49B9
+ POP HL
+ POP AF
+ OR A
+ JR Z,L477C ; (+012H)
+ LD DE,L84E7
+ OR A
+ SBC HL,DE
+ LD DE,00005H
+ ADD HL,DE
+ LD B,H
+ LD C,L
+ LD HL,L84E7
+ CALL L4794
+L477C: LD A,(L48B0)
+ OR A
+ JP Z,L4059
+ LD DE,(08481H)
+ LD HL,(L847F)
+ ADD HL,DE
+ LD (L847F),HL
+ JP NC,L4059
+ JP L4081
+
+L4794: LD (047F6H),HL
+ PUSH BC
+ LD BC,(0847FH)
+ LD HL,(TEXTST)
+ JR L47A5 ; (+004H)
+
+L47A1: CALL LDDEMD
+ ADD HL,DE
+L47A5: CALL LDDEMD
+ LD A,D
+ OR E
+ JR Z,L47B9 ; (+00dH)
+ INC HL
+ INC HL
+ CALL LDDEMD
+ EX DE,HL
+ SBC HL,BC
+ DEC DE
+ DEC DE
+ EX DE,HL
+ JR C,L47A1 ; (-018H)
+L47B9: POP DE
+ PUSH HL
+ PUSH DE
+ LD HL,00028H
+ ADD HL,DE
+ LD BC,(VARED)
+ LD (TMPEND),BC
+ ADD HL,BC
+ JP C,L4B2C
+ EX DE,HL
+ CALL L74E8
+ POP DE
+ RST 018H
+ DB 018H
+ POP HL
+ PUSH DE
+ PUSH BC
+ EX (SP),HL
+ POP BC
+ PUSH HL
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ LD DE,(VARED)
+ INC BC
+ LDDR
+ INC HL
+ POP BC
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ LD DE,(0847FH)
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ EX DE,HL
+ LD HL,L84E7
+ DEC BC
+ DEC BC
+ DEC BC
+ DEC BC
+ LDIR
+ RET
+
+L47FF: JR Z,L480A ; (+009H)
+ CALL L5176
+ JP Z,L5147
+ JP L5AED
+
+L480A: CALL L4928
+L480D: CALL L4821
+ LD DE,(TEXTST)
+ LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ PUSH HL
+ EX DE,HL
+ JP L40E4
+
+L4821: PUSH HL
+ PUSH DE
+ CALL L4836
+ XOR A
+ LD (L48B0),A
+ LD HL,0000AH
+ LD (L847F),HL
+ LD (L8481),HL
+ POP DE
+ POP HL
+ RET
+
+L4836: CALL L5825
+ LD HL,L0000
+ LD (L8487),HL
+ XOR A
+ LD (L4B78),A
+ LD (L8486),A
+ LD (L8485),A
+ LD (L849A),A
+ RET
+
+L484D: LD A,(L849A)
+ OR A
+ JP NZ,L5DCB
+ RST 018H
+ DB 028H
+ XOR A
+ LD (L4B78),A
+ POP BC
+ JP L4050
+
+L485E: CALL L5C08
+ LD DE,0000AH
+ LD BC,0000AH
+ JR Z,L4897 ; (+02eH)
+ CP 02CH
+ JR NZ,L4878 ; (+00bH)
+ INC HL
+ CALL L6E5F
+ LD B,D
+ LD C,E
+ LD DE,0000AH
+ JR L4897 ; (+01fH)
+
+L4878: CP 02EH
+ LD DE,(0847FH)
+ JR Z,L4889 ; (+009H)
+ CP 00BH
+ JP NZ,L4AEC
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L4889: INC HL
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4897 ; (+007H)
+ PUSH DE
+ CALL L6E5F
+ LD C,E
+ LD B,D
+ POP DE
+L4897: CALL 05E48H
+ LD A,C
+ OR B
+ JP Z,04AF2H
+ LD (0847FH),DE
+ LD (08481H),BC
+ LD A,001H
+ LD (L48B0),A
+ POP AF
+ JP L4059
+
+L48B0: NOP
+L48B1: LD A,(L48B0)
+ OR A
+ RET Z
+ XOR A
+ JR L48BF ; (+006H)
+
+L48B9: CALL L48BF
+ JP L4059
+
+L48BF: LD DE,(0847FH)
+ CALL NZ,L4664
+ PUSH DE
+ EX DE,HL
+ CALL L4609
+ POP DE
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ JR NC,L48D5 ; (+003H)
+ LD HL,L00F9
+L48D5: EX DE,HL
+ PUSH DE
+ LD (L847F),HL
+ CALL L5E66
+ RST 018H
+ DB 005H
+ LD A,020H
+ RST 018H
+ DB 003H
+ POP HL
+ LD DE,KEYBUF
+ PUSH DE
+ CALL L68E0
+ POP DE
+ LD B,000H
+L48EE: LD A,(DE)
+ OR A
+ JR Z,L48F8 ; (+006H)
+ INC B
+ RST 018H
+ DB 004H
+ INC DE
+ JR L48EE ; (-00aH)
+
+L48F8: LD A,B
+ OR A
+ RET Z
+ LD A,014H
+ RST 018H
+ DB 003H
+ DJNZ 048FCH ; (-005H)
+ RET
+
+L4902: PUSH DE
+ LD DE,0FFF0H
+ ADD HL,DE
+ POP DE
+ LD (MEMLMT),HL
+ DEC H
+ LD (INTFAC),HL
+ XOR A
+ LD (L849A),A
+ RET
+
+L4914: LD HL,(TEXTST)
+ CALL L4952
+ LD (TEXTED),HL
+ CALL L4821
+ JR L4928 ; (+006H)
+
+L4922: CALL L4914
+ JP L404A
+
+L4928: PUSH HL
+ CALL L4939
+ POP HL
+ RST 018H
+ DB 028H
+ RET
+
+L4930: LD HL,(TEXTST)
+ CALL L4952
+ LD (TEXTED),HL
+L4939: LD HL,(TEXTED)
+ LD (HL),000H
+ INC HL
+ LD (VARST),HL
+ LD (HL),000H
+ INC HL
+ LD (STRST),HL
+ CALL L4952
+ LD (VARED),HL
+ LD (TMPEND),HL
+ RET
+
+L4952: LD (HL),000H
+ INC HL
+ LD (HL),000H
+ INC HL
+ RET
+
+L4959: CALL L413E
+ LD A,001H
+ JR Z,L496D ; (+00dH)
+ CALL TESTX
+ DB FDPD
+ CALL TESTX
+ DB 050H
+ LD A,002H
+ JR L496D ; (+001H)
+
+L496C: XOR A
+L496D: LD (04972H),A
+ RET
+
+L4971: LD A,000H
+ OR A
+ RET Z
+ DEC A
+ LD (FILOUT),A
+ JR Z,L4982 ; (+007H)
+ LD A,(PNMODE)
+ CP 002H
+ JR Z,L4994 ; (+012H)
+L4982: PUSH HL
+ LD A,05BH
+ RST 018H
+ DB 009H
+ LD HL,(L8483)
+ CALL L5E66
+ RST 018H
+ DB 00BH
+ LD A,05DH
+ RST 018H
+ DB 009H
+ POP HL
+L4994: XOR A
+ LD (FILOUT),A
+ RET
+
+L4999: CALL L46A6
+ JP Z,L4AEC
+ CALL L5176
+ JR Z,L49AD ; (+009H)
+ CP 02DH
+ JR Z,L49AD ; (+005H)
+ CP 02EH
+ JP NZ,L5D02
+L49AD: CALL L4664
+ EX DE,HL
+ LD E,C
+ LD D,B
+ CALL L49B9
+ JP L4050
+
+L49B9: PUSH AF
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ CALL L46BA
+ LD C,L
+ LD B,H
+ LD HL,(TEXTST)
+L49C5: CALL LDDEMI
+ LD A,E
+ OR D
+ JR NZ,L49D4 ; (+008H)
+L49CC: POP DE
+ POP HL
+ POP BC
+ POP AF
+ RET
+
+L49D1: POP DE
+ JR L49CC ; (-008H)
+
+L49D4: EX DE,HL
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ LD (049EEH),HL
+ SBC HL,BC
+ POP HL
+ JR C,L49C5 ; (-021H)
+ DB 01BH
+ DEC DE
+ DEC DE
+ POP BC
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD HL,L0000
+ SBC HL,BC
+ POP HL
+ JR Z,L4A13 ; (+01eH)
+ JR NC,L49D1 ; (-026H)
+L49F7: CALL LDDEMI
+ LD A,D
+ OR E
+ JR Z,L4A11 ; (+013H)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ DEC DE
+ DEC DE
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ SBC HL,BC
+ POP HL
+ JR C,L49F7 ; (-016H)
+ JR Z,L4A13 ; (+004H)
+ EX DE,HL
+ DEC HL
+L4A11: DEC HL
+ DEC HL
+L4A13: POP DE
+ PUSH DE
+ PUSH HL
+ OR A
+ EX DE,HL
+ SBC HL,DE
+ EX DE,HL
+ LD BC,(VARED)
+ RST 018H
+ DB 018H
+ POP DE
+ LD H,B
+ LD L,C
+ OR A
+ SBC HL,DE
+ LD B,H
+ LD C,L
+ EX DE,HL
+ POP DE
+ LDIR
+ JR L49CC ; (-063H)
+
+L4A2F: CALL L6E5F
+ LD A,D
+ OR E
+ RET NZ
+ JP 04AF2H
+
+L4A38: CALL L5C08
+ LD DE,0000AH
+ LD (04AB7H),DE
+ LD (04AC9H),DE
+ LD E,000H
+ LD (04AA6H),DE
+ JR Z,L4A81 ; (+033H)
+ CP 02CH
+ JR Z,L4A62 ; (+010H)
+ CALL L4A2F
+ LD (04AB7H),DE
+ CALL L413E
+ JR Z,L4A81 ; (+023H)
+ CALL L5E70
+ DEC HL
+L4A62: CALL INCHLF
+ CP 02CH
+ JR Z,L4A79 ; (+010H)
+ CALL L4A2F
+ LD (04AA6H),DE
+ CALL L413E
+ JR Z,L4A81 ; (+00cH)
+ CALL L5E70
+ DEC HL
+L4A79: INC HL
+ CALL L4A2F
+ LD (04AC9H),DE
+L4A81: PUSH HL
+ LD HL,(04AA6H)
+ EX DE,HL
+ LD HL,(04AB7H)
+ OR A
+ SBC HL,DE
+ JP C,04AF2H
+ CALL L46AD
+ LD HL,(TEXTST)
+L4A95: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4AD3 ; (+037H)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ EX DE,HL
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ PUSH HL
+ LD HL,L0000
+ OR A
+ SBC HL,BC
+ POP HL
+ JR Z,L4AB3 ; (+005H)
+ JR C,L4AB3 ; (+003H)
+ EX DE,HL
+ JR L4A95 ; (-01eH)
+
+L4AB3: DEC HL
+ DEC HL
+ DEC HL
+ LD BC,L0000
+L4AB9: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4AD3 ; (+013H)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ EX DE,HL
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ LD HL,L0000
+ ADD HL,BC
+ JR C,L4AD8 ; (+00aH)
+ LD C,L
+ LD B,H
+ EX DE,HL
+ JR L4AB9 ; (-01aH)
+
+L4AD3: CALL L46C0
+ POP HL
+ RET
+
+L4AD8: LD HL,0000AH
+ LD (04AC9H),HL
+ LD (04AB7H),HL
+ LD L,000H
+ LD (04AA6H),HL
+ CALL L4A81
+ JP 04AF2H
+
+L4AEC: LD A,001H
+ LD HL,0023EH
+ LD HL,L033E
+ LD HL,0043EH
+ LD HL,L053E
+ LD HL,0063EH
+ LD HL,0073EH
+ LD HL,L083E
+ LD HL,L0D3E
+ LD HL,L0E3E
+ LD HL,L0F3E
+ LD HL,L103E
+ LD HL,L113E
+ LD HL,L123E
+ LD HL,L133E
+ LD HL,0143EH
+ LD HL,0153EH
+ LD HL,L183E
+ LD HL,L193E
+ LD HL,L3A3E
+ LD HL,L403E
+ JR L4B3A ; (+00eH)
+
+L4B2C: LD A,006H
+L4B2E: LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ LD (08496H),SP
+L4B3A: JR L4B55 ; (+019H)
+
+L4B3C: LD HL,(_LPT)
+ LD IX,(_CRT)
+ LD (ZEQT),HL
+ XOR A
+ LD (01051H),A
+ LD A,0C4H
+ LD HL,0BB3EH
+ LD HL,0BC3EH
+ LD HL,0BD3EH
+L4B55: JP L0182
+
+L4B58: LD A,L
+ OR H
+ RET Z
+ LD DE,L4B66
+ RST 018H
+ DB 005H
+ CALL L5E66
+ RST 018H
+ DB 005H
+ RET
+
+L4B66: JR NZ,04BB1H ; (+049H)
+ LD C,(HL)
+ JR NZ,L4B6B ; (+000H)
+L4B6B: LD B,D
+ DEC B
+ LD D,D
+ LD B,L
+ LD B,C
+ LD C,E
+ NOP
+L4B72: LD D,D
+ DEC B
+ LD B,L
+ LD B,C
+ LD B,H
+ LD E,C
+L4B78: NOP
+ NOP
+L4B7A: CALL L6E4B
+ DEC A
+ CP 046H
+ JR C,L4B84 ; (+002H)
+ LD A,044H
+L4B84: INC A
+L4B85: LD SP,(08496H)
+ PUSH AF
+ RST 018H
+ DB 043H
+ CALL L5C44
+ POP AF
+ OR A
+ JR Z,L4BE5 ; (+052H)
+ CP 080H
+ JR Z,L4BE3 ; (+04cH)
+ LD C,A
+ LD HL,L0000
+ LD (L7928),HL
+ CALL L4146
+ LD A,C
+ JR Z,L4BCE ; (+02aH)
+ LD HL,(L8483)
+ LD (L8487),HL
+ LD (L847F),HL
+ LD HL,(L847D)
+ LD (L8489),HL
+ LD HL,(L8498)
+ LD (L848B),HL
+ AND 07FH
+ LD (L8485),A
+ LD A,(L8486)
+ INC A
+ CP 002H
+ JR Z,L4BD9 ; (+013H)
+ XOR A
+ LD (L4B78),A
+ LD (L849A),A
+ LD A,C
+L4BCE: RST 018H
+ DB 01BH
+L4BD0: LD HL,(L8483)
+ CALL L4B58
+ JP L4050
+
+L4BD9: LD (L8486),A
+ LD HL,(0848DH)
+ PUSH HL
+ JP L40E4
+
+L4BE3: LD A,02EH
+L4BE5: LD HL,(L8498)
+ JR L4BED ; (+003H)
+
+L4BEA: LD A,02EH
+ POP DE
+L4BED: PUSH AF
+ PUSH HL
+ RST 018H
+ DB 002H
+ RST 018H
+ DB 020H
+ LD DE,L4B6B
+ RST 018H
+ DB 005H
+ POP HL
+ CALL L4146
+ JR Z,L4C17 ; (+019H)
+ LD (04C33H),HL
+ LD HL,(L847D)
+ LD (04C2DH),HL
+ LD HL,(L8483)
+ LD (04C27H),HL
+ LD (L847F),HL
+ POP AF
+ LD (L4B78),A
+ JP L4BD0
+
+L4C17: POP AF
+ JP L4050
+
+L4C1B: POP DE
+ LD HL,L4B78
+ LD A,(HL)
+ OR A
+ JP Z,04B10H
+ LD (HL),000H
+ LD HL,L0000
+ LD (L8483),HL
+ LD HL,L0000
+ LD (L847D),HL
+ LD HL,L0000
+ JP L40AF
+
+L4C38: LD A,(L8486)
+ CP 002H
+ JP C,04B1CH
+ DEC A
+ LD (L8486),A
+ CALL L413E
+ EX DE,HL
+ LD HL,(L8487)
+ LD (L8483),HL
+ LD HL,(L8489)
+ LD (L847D),HL
+ LD HL,(L848B)
+ JR NZ,L4C5D ; (+004H)
+ POP BC
+ JP L40B3
+
+L4C5D: CP 08EH
+ JP Z,L4F8A
+ EX DE,HL
+ JP L5147
+
+L4C66: CALL TEST1
+ DB 080H
+ JR Z,L4C74 ; (+008H)
+ CALL TESTX
+ DB 082H
+ CALL TESTX
+ DB LSE0
+L4C74: CALL L45AA
+ JR Z,L4C83 ; (+00aH)
+ LD (0848DH),DE
+ LD A,001H
+L4C7F: LD (L8486),A
+ RET
+
+L4C83: LD A,(L8486)
+ DEC A
+ JR Z,L4C7F ; (-00aH)
+ XOR A
+ LD (L8486),A
+ LD HL,(L8487)
+ LD (L8483),HL
+ LD A,(L8485)
+ JP L4B85
+
+L4C99: CALL TEST1
+ DB 0FFH
+ JP Z,L4CCB
+ CALL L7436
+ PUSH BC
+ PUSH BC
+ PUSH AF
+ CALL TESTX
+ DB QDPC
+ CALL L6E8A
+ POP BC
+ LD A,(L84CE)
+ CP B
+ JP NZ,04AF5H
+ EX (SP),HL
+ EX DE,HL
+ CP 005H
+ JR Z,L4CC3 ; (+008H)
+ PUSH BC
+ CALL L4CD6
+ POP AF
+ POP HL
+ POP BC
+ RET
+
+L4CC3: LD C,A
+ LD B,000H
+ LDIR
+ POP HL
+ POP BC
+ RET
+
+L4CCB: CALL TESTX
+ DB 0C4H
+ JP L73C2
+
+L4CD2: PUSH DE
+ EX DE,HL
+ JR L4CDA ; (+004H)
+
+L4CD6: PUSH DE
+ CALL L6E7E
+L4CDA: LD HL,KEYBM1
+ LD (HL),A
+ LD B,A
+ LD C,A
+ INC HL
+ CALL LDHLDE
+ POP HL
+ LD A,(HL)
+ CP C
+ JR Z,L4D2B ; (+042H)
+ PUSH HL
+ OR A
+ CALL NZ,L4D3B
+ POP HL
+ LD A,(KEYBM1)
+ OR A
+ JR Z,L4D28 ; (+033H)
+ PUSH HL
+ LD BC,(VARST)
+ SBC HL,BC
+ EX DE,HL
+ LD HL,(VARED)
+ DEC HL
+ DEC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD BC,(STRST)
+ OR A
+ POP DE
+ PUSH HL
+ SBC HL,BC
+ EX DE,HL
+ LD (HL),A
+ LD B,A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ POP HL
+ LD DE,KEYBM1
+ INC DE
+ CALL L74DC
+ CALL L4952
+ LD (TMPEND),HL
+ LD (VARED),HL
+ RET
+
+L4D28: LD (HL),000H
+ RET
+
+L4D2B: INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(STRST)
+ ADD HL,DE
+ LD DE,KEYBM1
+ LD B,C
+ INC DE
+ JP L74DC
+
+L4D3B: LD C,(HL)
+ LD B,000H
+L4D3E: INC BC
+ INC BC
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(STRST)
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ LD E,L
+ LD D,H
+ ADD HL,BC
+ PUSH BC
+ PUSH DE
+ EX DE,HL
+ LD HL,(VARED)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ EX DE,HL
+ POP DE
+ PUSH DE
+ JR Z,L4D5F ; (+002H)
+ LDIR
+L4D5F: POP DE
+ POP BC
+ LD HL,(VARED)
+ OR A
+ SBC HL,BC
+ LD (VARED),HL
+ EX DE,HL
+L4D6B: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ RET Z
+ LD HL,(VARST)
+ ADD HL,DE
+ LD A,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ OR A
+ EX DE,HL
+ SBC HL,BC
+ EX DE,HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ PUSH BC
+ LD C,A
+ LD B,000H
+ LD HL,(STRST)
+ ADD HL,DE
+ ADD HL,BC
+ POP BC
+ JR L4D6B ; (-023H)
+
+L4D8E: POP BC
+ LD (04E23H),BC
+ CALL L4C99
+ LD IX,L0000
+ ADD IX,SP
+ LD (04E05H),HL
+ CALL L4EFE
+ LD (04E01H),BC
+L4DA6: LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JR NZ,L4DCE ; (+01aH)
+ LD E,(IX+006H)
+ LD D,(IX+007H)
+ EX DE,HL
+ OR A
+ SBC HL,BC
+ JR Z,L4DC7 ; (+007H)
+ LD DE,L0012
+ ADD IX,DE
+ JR L4DA6 ; (-021H)
+
+L4DC7: LD DE,00012H
+
+ ADD IX,DE
+ LD SP,IX
+L4DCE: LD HL,(04E05H)
+ CALL TESTX
+ DB LSE0
+ CALL L6E8A
+ PUSH AF
+ PUSH HL
+ EX DE,HL
+ LD DE,L4F0A
+ CALL L5E93
+ POP HL
+ POP AF
+ CP LSE1
+ LD DE,L6112
+ JR NZ,L4DEE ; (+004H)
+ INC HL
+ CALL L6E8A
+L4DEE: LD (04E05H),HL
+ LD HL,0FFF6H
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ CALL L5E93
+ LD HL,L4F0A
+ CALL L5E93
+ LD HL,L0000
+ PUSH HL
+ LD HL,L0000
+ PUSH HL
+ LD HL,(L847D)
+ PUSH HL
+ LD HL,0FF12H
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(TMPEND)
+ SBC HL,DE
+ LD A,00BH
+ JP C,L4B2E
+ LD HL,(04E05H)
+ JP L0000
+
+L4E25: LD A,005H
+ LD (L84CE),A
+ POP BC
+ LD (04E9AH),BC
+L4E2F: PUSH AF
+ POP BC
+ LD (04E05H),HL
+ LD IX,L0000
+ ADD IX,SP
+ LD (04E89H),IX
+ LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JP NZ,04B04H
+ PUSH BC
+ POP AF
+ JR NZ,L4EB0 ; (+05fH)
+ LD E,(IX+004H)
+ LD D,(IX+005H)
+ EX DE,HL
+ LD (04E97H),HL
+ LD E,(IX+006H)
+ LD D,(IX+007H)
+ LD HL,(VARST)
+ ADD HL,DE
+ LD BC,00008H
+ ADD IX,BC
+ PUSH IX
+ POP DE
+ CALL L7985
+ INC DE
+ LD A,(DE)
+ LD IX,(04E89H)
+ LD DE,0000DH
+ ADD IX,DE
+ PUSH IX
+ POP DE
+ BIT 7,A
+ JR NZ,L4E83 ; (+001H)
+ EX DE,HL
+L4E83: CALL L7A1C
+ JR C,L4E9C ; (+014H)
+ LD SP,L0000
+ LD HL,00002H
+ ADD HL,SP
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ LD (L847D),HL
+ LD HL,L0000
+L4E99: JP L0000
+
+L4E9C: LD DE,L0012
+ LD HL,(04E89H)
+ ADD HL,DE
+ LD SP,HL
+ LD HL,(04E05H)
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4E99 ; (-014H)
+ LD (04E05H),HL
+L4EB0: LD IX,L0000
+ ADD IX,SP
+ LD (04E89H),IX
+ LD HL,(04E05H)
+ CALL TEST1
+ DB 02CH
+ JP Z,L4E2F
+ CALL L7436
+ LD (04E05H),HL
+ CALL L4EFE
+ LD IX,(04E89H)
+L4ED1: LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JP NZ,04B04H
+ LD L,(IX+006H)
+ LD H,(IX+007H)
+ OR A
+ SBC HL,BC
+ LD HL,(04E05H)
+ JP Z,L4E2F
+ LD DE,L0012
+ ADD IX,DE
+ LD (04E89H),IX
+ LD SP,(04E89H)
+ JR L4ED1 ; (-02dH)
+
+L4EFE: LD H,B
+ LD L,C
+ LD BC,(VARST)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ RET
+
+L4F0A: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L4F13: CALL L51A2
+ OR A
+ RET NZ
+ INC HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ INC HL
+ LD (04F12H),DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (04F10H),DE
+ POP DE
+ SCF
+ RET Z
+ JR L4F13 ; (-01dH)
+
+L4F30: CALL L5E7B
+ CALL L6E5F
+ LD (04F69H),DE
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4F5B ; (+01bH)
+ CALL L6E8A
+ CALL L7916
+ LD (04F5EH),DE
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4F5B ; (+00bH)
+ CALL L7436
+ CALL L7916
+ LD (04F71H),BC
+ XOR A
+L4F5B: PUSH HL
+ PUSH AF
+ LD HL,L0000
+ CALL L6E7E
+ LD IX,L0182
+ XOR A
+ CALL L0000
+ POP AF
+ JR NZ,L4F76 ; (+008H)
+ LD A,B
+ EX DE,HL
+ LD DE,L0000
+ CALL L4CD2
+L4F76: POP HL
+ JP L5E7F
+
+L4F7A: CALL L6E5F
+L4F7D: LD A,D
+ OR E
+ RET Z
+ LD B,000H
+L4F82: DJNZ L4F82 ; (-002H)
+ RST 018H
+ DB 00EH
+ RET Z
+ DEC DE
+ JR L4F7D ; (-00dH)
+
+L4F8A: DEC HL
+L4F8B: CALL L51A2
+ OR A
+ SCF
+ RET Z
+ CP 03AH
+ RET Z
+ JR L4F8B ; (-00bH)
+
+L4F96: CALL L6E4B
+ SUB LSE0
+ CP 007H
+ JP C,04AF2H
+ CALL L5E70
+ PUSH DE
+ CALL L6E4B
+ POP BC
+ OUT (C),A
+ RET
+
+L4FAB: CALL L6E4B
+ CALL L5E70
+ PUSH DE
+ CALL L7436
+ CP 005H
+ JP NZ,04AF5H
+ EX (SP),HL
+ PUSH BC
+ EX (SP),HL
+ POP BC
+ IN E,(C)
+ LD D,000H
+ CALL L5E99
+ POP HL
+ RET
+
+L4FC7: CALL L4FCF
+ LD (00054H),DE
+ RET
+
+L4FCF: LD B,018H
+ LD C,027H
+ CALL L4FDA
+ JP C,04AF2H
+ RET
+
+L4FDA: PUSH BC
+ CALL L6E4B
+ PUSH AF
+ CALL L5E70
+ CALL L6E4B
+ LD D,E
+ POP AF
+ LD E,A
+ POP BC
+ LD A,C
+ CP E
+ RET C
+ LD A,B
+ CP D
+ RET
+
+L4FEF: CALL L7436
+ LD (L84CE),A
+ CP 005H
+ JR Z,L500E ; (+015H)
+ PUSH HL
+ PUSH BC
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ OR A
+ JR Z,L5008 ; (+006H)
+ LD HL,(TMPEND)
+ LD (HL),A
+ LD A,001H
+L5008: POP DE
+ CALL L4CD2
+ POP HL
+ RET
+
+L500E: PUSH HL
+ PUSH BC
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ SUB 030H
+ CP 00AH
+ JR C,L501B ; (+001H)
+ XOR A
+L501B: LD E,A
+ LD D,000H
+ POP HL
+ CALL L5E99
+ POP HL
+ RET
+
+L5024: CP 040H
+ LD BC,POPRA
+ JR NZ,L502F ; (+004H)
+ INC HL
+ LD BC,L504B
+L502F: LD (05040H),BC
+ CALL L6E5F
+ CALL L5E73
+L5039: PUSH DE
+ CALL L6E4B
+ POP DE
+ EX DE,HL
+ CALL POPRA
+ EX DE,HL
+ INC DE
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ JR L5039 ; (-012H)
+
+L504B: LD (HL),A
+ RET
+
+L504D: PUSH HL
+ CALL TEST1
+ DB 04DH
+ JR NZ,L5066 ; (+012H)
+ CALL TEST1
+ DB 041H
+ JR NZ,L5066 ; (+00cH)
+ CALL TEST1
+ DB 058H
+ JR NZ,L5066 ; (+006H)
+ EX (SP),HL
+ LD HL,(MEMMAX)
+ JR L5082 ; (+01cH)
+
+L5066: POP HL
+ CALL L6E5F
+ PUSH HL
+ LD HL,(MEMMAX)
+ OR A
+ SBC HL,DE
+ JP C,L4B2C
+ LD HL,(TMPEND)
+ INC H
+ INC H
+ INC H
+ INC H
+ OR A
+ SBC HL,DE
+ JP NC,04AF2H
+ EX DE,HL
+L5082: CALL L4902
+ POP HL
+ POP DE
+ LD SP,(INTFAC)
+ LD BC,0FFFFH
+ PUSH BC
+ PUSH DE
+ RET
+
+L5091: POP IX
+L5093: POP BC
+ PUSH BC
+ LD A,B
+ INC A
+ JP NZ,04B07H
+ LD A,C
+ CP 012H
+ JR Z,L50B9 ; (+01aH)
+ CP 0FEH
+ JP NZ,04B07H
+ POP BC
+ CALL L413E
+ EX DE,HL
+ POP HL
+ LD (L8483),HL
+ POP HL
+ LD (L847D),HL
+ POP HL
+ PUSH IX
+ RET Z
+ EX DE,HL
+ JP L5147
+
+L50B9: EX DE,HL
+ LD HL,L0012
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ JR L5093 ; (-02fH)
+
+L50C2: PUSH HL
+ CALL L4F8A
+ EX DE,HL
+ POP HL
+ POP BC
+ PUSH DE
+ EXX
+ LD HL,(L847D)
+ PUSH HL
+ LD HL,(L8483)
+ PUSH HL
+ LD HL,0FFFEH
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(TMPEND)
+ SBC HL,DE
+ LD A,00AH
+ JP C,L4B2E
+ EXX
+ PUSH BC
+ JR L5147 ; (+05dH)
+
+L50EA: CALL TEST1
+ DB 0C1H
+ JP Z,L4C66
+ CALL L6E5F
+ LD C,E
+ LD B,D
+ CP 087H
+ JP NC,L4AEC
+ CP 082H
+ JR NZ,L510F ; (+010H)
+ CALL INCHLF
+ LD E,081H
+ CP LSE4
+ JR Z,L510E ; (+006H)
+ CP LSE0
+ JP NZ,L4AEC
+ DEC E
+L510E: LD A,E
+L510F: PUSH HL
+ LD HL,L43EC
+ SUB 080H
+ ADD A,A
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ CALL INDRCT
+ EX (SP),HL
+ INC HL
+ LD A,B
+ OR A
+ JR NZ,L5143 ; (+020H)
+ LD A,C
+ OR A
+ JR Z,L5143 ; (+01cH)
+ LD B,A
+L5128: DEC B
+ RET Z
+ CALL HLFTCH
+ CALL L5173
+ JP NZ,L4AEC
+ CALL L51A8
+ OR A
+ RET Z
+ INC HL
+ CALL TEST1
+ DB 02CH
+ JR Z,L5128 ; (-017H)
+ POP DE
+ JP 05E48H
+
+L5143: POP DE
+ JP L4F8A
+
+L5147: CALL L45AA
+ EX DE,HL
+ JR NZ,L5150 ; (+003H)
+ LD HL,(TEXTST)
+L5150: LD (L847D),HL
+ XOR A
+ LD (L4B78),A
+ JP L40E4
+
+L515A: CALL L6E8A
+ EX AF,AF'
+ LD A,(DE)
+ OR A
+ JR Z,L5182 ; (+020H)
+ EX AF,AF'
+ CP LSE2
+ JR NZ,L516F ; (+008H)
+L5167: CALL INCHLF
+ CALL L5173
+ JR Z,L5147 ; (-028H)
+L516F: POP AF
+ JP L40AF
+
+L5173: CP 022H
+ RET Z
+L5176: CP 00BH
+ RET Z
+ CP 00CH
+ RET
+
+L517C: CALL L518B
+ JR NC,L517C ; (-005H)
+ RET
+
+L5182: DEC HL
+ CALL L518B
+ JR NC,L5167 ; (-021H)
+ DB 0C3H
+ POP HL
+ LD B,B
+L518B: CALL L51A2
+ OR A
+ SCF
+ RET Z
+ CP 0C2H
+ RET Z
+ CP 093H
+ JR NZ,L518B ; (-00dH)
+ CALL L518B
+ RET C
+ JR L518B ; (-013H)
+
+L519E: INC HL
+ LD A,(HL)
+ JR L51A8 ; (+006H)
+
+L51A2: INC HL
+ LD A,(HL)
+ CP 094H
+ JR Z,L51C7 ; (+01fH)
+L51A8: OR A
+ RET Z
+ CP 022H
+ JR Z,L51E5 ; (+037H)
+ CP 0FEH
+ JR NC,L51C5 ; (+013H)
+ CP 097H
+ JR Z,L51C7 ; (+011H)
+ CP 027H
+ JR Z,L51C7 ; (+00dH)
+ CP 020H
+ RET NC
+ CP 00BH
+ RET C
+ CP 015H
+ JR NC,L51DC ; (+018H)
+ INC HL
+L51C5: INC HL
+ RET
+
+L51C7: LD A,(HL)
+ OR A
+ RET Z
+ CP 03AH
+ RET Z
+ CP 022H
+ JR Z,L51D4 ; (+003H)
+ INC HL
+ JR L51C7 ; (-00dH)
+
+L51D4: CALL L51E5
+ OR A
+ RET Z
+ INC HL
+ JR L51C7 ; (-015H)
+
+L51DC: AND 00FH
+ ADD A,L
+ LD L,A
+ LD A,020H
+ RET NC
+ INC H
+ RET
+
+L51E5: INC HL
+ LD A,(HL)
+ OR A
+ RET Z
+ CP 022H
+ RET Z
+ JR L51E5 ; (-009H)
+
+L51EE: OR 0AFH
+ PUSH AF
+ LD B,031H
+ LD C,04FH
+ CALL L4FDA
+ PUSH AF
+ CALL L523F
+ POP AF
+ JR C,L523D ; (+03eH)
+ LD A,C
+ LD (0522BH),A
+ LD B,001H
+ SRL E
+ JR NC,L520B ; (+002H)
+ SLA B
+L520B: SRL D
+ JR NC,L5213 ; (+004H)
+ SLA B
+ SLA B
+L5213: EX DE,HL
+ RST 018H
+ DB 01EH
+ CALL BREAKX
+ CP 0F0H
+ JR NC,L521F ; (+002H)
+ LD A,0F0H
+L521F: LD C,A
+ POP AF
+ JR Z,L5235 ; (+012H)
+ SET 3,H
+ CALL BREAKX
+ AND 08FH
+ OR 000H
+ CALL POPRA
+ RES 3,H
+ LD A,C
+ OR B
+ JR L5238 ; (+003H)
+
+L5235: LD A,B
+ CPL
+ AND C
+L5238: CALL POPRA
+ EX DE,HL
+ RET
+
+L523D: POP AF
+ RET
+
+L523F: LD A,(L005D)
+ AND 070H
+ LD C,A
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ PUSH DE
+ CALL L552C
+ POP DE
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ LD C,A
+ RET
+
+L5255: RST 018H
+ DB 020H
+ RET
+
+L5258: CALL 05E48H
+ RST 018H
+ DB 028H
+ RST 018H
+ DB 000H
+ RET
+
+L5260: JR Z,L5285 ; (+023H)
+ LD A,001H
+ LD (L004E),A
+ LD A,(L0056)
+ LD B,019H
+ CALL L5298
+ LD (00056H),BC
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ LD B,028H
+ LD A,(L005B)
+ CALL L5298
+ LD (0005BH),BC
+ RET
+
+L5285: XOR A
+ LD (L004E),A
+ LD BC,L1800
+ LD (00056H),BC
+ LD BC,L2700
+ LD (0005BH),BC
+ RET
+
+L5298: LD D,000H
+ LD E,A
+ CALL TEST1
+ DB 02CH
+ JR Z,L52A9 ; (+008H)
+ PUSH BC
+ CALL L6E4B
+ POP BC
+ CALL L5E70
+L52A9: LD C,E
+ PUSH BC
+ CALL L6E4B
+ POP BC
+ DEC A
+ JP M,04AF2H
+ ADD A,C
+ CP B
+ JP NC,04AF2H
+ LD B,A
+ RET
+
+L52BA: DI
+ OUT (LSE4),A
+ JP L0000
+
+L52C0: XOR A
+ LD BC,?SETDE
+ LD (L53A8),A
+ PUSH AF
+ CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,04B28H
+ BIT 1,A
+ JP Z,04B28H
+ CALL TEST1
+ DB 02CH
+ POP AF
+ OR A
+ JR NZ,L52F2 ; (+015H)
+ CALL L6E6F
+ LD A,B
+ LD (L53A3),A
+ LD (053A4H),DE
+ CALL 05E48H
+ JR L52F2 ; (+005H)
+
+L52ED: LD A,002H
+ LD (L53A8),A
+L52F2: CALL L4664
+ LD (05319H),DE
+ LD (05327H),BC
+ LD A,0FFH
+ LD (DISPX),A
+ CALL SKPDE
+ LD HL,(TEXTST)
+L5308: CALL LDDEMI
+ LD A,D
+ OR E
+ RET Z
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ PUSH DE
+ CALL LDDEMI
+ PUSH HL
+ LD HL,L0000
+ OR A
+ SBC HL,DE
+ JR C,L5326 ; (+006H)
+ JR Z,L5326 ; (+004H)
+ POP HL
+ POP HL
+ JR L5308 ; (-01eH)
+
+L5326: LD HL,L0000
+ OR A
+ SBC HL,DE
+ JR NC,L5331 ; (+003H)
+ POP HL
+ POP HL
+ RET
+
+L5331: EX DE,HL
+ CALL L5E66
+ RST 018H
+ DB 017H
+ LD HL,KEYBUF
+ CALL LDHLDE
+ LD (HL),020H
+ INC HL
+ EX DE,HL
+ POP HL
+ CALL L68E0
+ LD A,(L53A8)
+ OR A
+ JR NZ,L5350 ; (+005H)
+ CALL L5366
+ JR NC,L535A ; (+00aH)
+L5350: LD DE,KEYBUF
+ RST 018H
+ DB 017H
+ RST 018H
+ DB 037H
+ CALL L5733
+L535A: POP HL
+ LD A,(L53A8)
+ CP 002H
+ JR Z,L5308 ; (-05aH)
+ RST 018H
+ DB 00FH
+ JR L5308 ; (-05eH)
+
+L5366: EX DE,HL
+L5367: PUSH HL
+ CALL L5371
+ POP HL
+ RET C
+ RET Z
+ INC HL
+ JR L5367 ; (-00aH)
+
+L5371: LD A,(L53A3)
+ LD B,A
+ LD DE,(053A4H)
+L5379: LD A,(HL)
+ INC HL
+ OR A
+ RET Z
+ CP 005H
+ JR Z,L5385 ; (+004H)
+ CP 006H
+ JR NZ,L5387 ; (+002H)
+L5385: JR L5379 ; (-00eH)
+
+L5387: PUSH HL
+ LD C,A
+L5389: LD A,(DE)
+ INC DE
+ CP 005H
+ JR Z,L5393 ; (+004H)
+ CP 006H
+ JR NZ,L539A ; (+007H)
+L5393: DEC B
+ SCF
+ POP HL
+ RET Z
+ PUSH HL
+ JR L5389 ; (-011H)
+
+L539A: SUB C
+ POP HL
+ OR A
+ RET NZ
+ DEC B
+ SCF
+ RET Z
+ JR L5379 ; (-02aH)
+
+L53A3: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L53A8: NOP
+L53A9: CALL TESTX
+ DB 087H
+ CALL L5E4F
+ PUSH HL
+ LD C,000H
+L53B3: RST 018H
+ DB 008H
+ LD A,C
+ ADD A,031H
+ LD D,A
+ LD E,020H
+ CP 03AH
+ JR NZ,L53C2 ; (+003H)
+ LD DE,L3031
+L53C2: LD (05445H),DE
+ LD DE,L543D
+ RST 018H
+ DB 00BH
+ LD A,C
+ CALL L549C
+ LD B,(HL)
+ INC HL
+ PUSH BC
+ CALL L53E0
+ POP BC
+ INC C
+ LD A,C
+ CP 00AH
+ JR NZ,L53B3 ; (-029H)
+ RST 018H
+ DB 008H
+ POP HL
+ RET
+
+L53E0: LD A,B
+ OR A
+ LD C,000H
+ JR NZ,L53ED ; (+007H)
+ LD A,022H
+ RST 018H
+ DB 00AH
+ RST 018H
+ DB 00AH
+ RET
+
+L53ED: LD A,(HL)
+ CP 020H
+ JR C,L5412 ; (+020H)
+ CP 022H
+ JR Z,L5412 ; (+01cH)
+ LD A,C
+ CP 001H
+ JR Z,L5405 ; (+00aH)
+ OR A
+ LD DE,L544A
+ JR NZ,L5403 ; (+002H)
+ INC DE
+ INC DE
+L5403: RST 018H
+ DB 00BH
+L5405: LD A,(HL)
+ RST 018H
+ DB 00AH
+ INC HL
+ LD C,001H
+ DJNZ L53ED ; (-020H)
+ LD A,022H
+L540F: RST 018H
+ DB 00AH
+ RET
+
+L5412: LD A,C
+ CP 0FFH
+ JR Z,L5437 ; (+020H)
+ OR A
+ LD DE,0544EH
+ JR NZ,L541F ; (+002H)
+ INC DE
+ INC DE
+L541F: RST 018H
+ DB 00BH
+L5421: PUSH BC
+ PUSH HL
+ LD L,(HL)
+ LD H,000H
+ CALL L5E66
+ RST 018H
+ DB 00BH
+ POP HL
+ POP BC
+ INC HL
+ LD C,0FFH
+ DJNZ L53ED ; (-045H)
+ LD A,029H
+ JP L540F
+
+L5437: LD A,02CH
+ RST 018H
+ DB 00AH
+ JR L5421 ; (-01cH)
+
+L543D: LD B,H
+ LD B,L
+ LD B,(HL)
+ JR NZ,L548D ; (+04bH)
+ LD B,L
+ LD E,C
+ JR Z,L5446 ; (+000H)
+L5446: NOP
+ ADD HL,HL
+ DEC A
+ NOP
+L544A: ADD HL,HL
+ DEC HL
+ LD (L2200),HL
+ DEC HL
+ LD B,E
+ LD C,B
+ LD D,D
+ INC H
+ JR Z,L5456 ; (+000H)
+L5456: CALL TEST1
+ DB 0B2H
+ JR Z,L5467 ; (+00bH)
+ CALL TESTX
+ DB 0FFH
+L5460: CALL TESTX
+ DB 0C7H
+ JP L7824
+
+L5467: CALL TESTX
+ DB 028H
+ CALL L6E4B
+ CALL TESTX
+ DB 029H
+ CALL TESTX
+ DB QDPC
+ LD A,E
+ DEC A
+ CP 00AH
+ JP NC,04AF2H
+ PUSH HL
+ CALL L549C
+ EX (SP),HL
+ CALL L6E6F
+ EX (SP),HL
+ LD A,B
+ CP 010H
+ JR C,L548D ; (+002H)
+ LD A,00FH
+L548D: LD (HL),A
+ OR A
+ JR Z,L5499 ; (+008H)
+ LD B,A
+ INC HL
+L5493: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L5493 ; (-006H)
+L5499: POP HL
+ EI
+ RET
+
+L549C: ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ LD HL,L12C0
+ JP ADDHLA
+
+L54A6: CALL TEST1
+ DB 02CH
+ JR NZ,L54B4 ; (+008H)
+ CALL L5E70
+ LD DE,L005D
+ JR L54C0 ; (+00cH)
+
+L54B4: CALL L4FCF
+ CALL L5E70
+ EX DE,HL
+ RST 018H
+ DB 01EH
+ SET 3,H
+ EX DE,HL
+L54C0: EX DE,HL
+ CALL BREAKX
+ EX DE,HL
+ PUSH DE
+ CALL L54D0
+ POP DE
+ EX DE,HL
+ CALL POPRA
+ EX DE,HL
+ RET
+
+L54D0: LD C,A
+ CALL TEST1
+ DB 02CH
+ JR Z,L54E9 ; (+012H)
+ CALL L552C
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ XOR C
+ AND 070H
+ XOR C
+ LD C,A
+ CALL TEST1
+ DB 02CH
+ JR NZ,L54FA ; (+011H)
+L54E9: CALL L413E
+ JR Z,L54FA ; (+00cH)
+ CP 05DH
+ JR Z,L54FA ; (+008H)
+ CALL L552C
+ XOR C
+ AND 007H
+ XOR C
+ RET
+
+L54FA: LD A,C
+ RET
+
+L54FC: INC HL
+L54FD: CALL L6E6F
+ LD A,B
+ OR A
+ JR Z,L5513 ; (+00fH)
+ PUSH HL
+ LD HL,KEYBUF
+ PUSH HL
+ CALL LDHLDE
+ LD (HL),00DH
+ POP DE
+ CALL L0030
+ POP HL
+L5513: CALL HLFTCH
+ CP 03BH
+ JR Z,L54FC ; (-01eH)
+ CP 02CH
+ JR Z,L54FC ; (-022H)
+ RET
+
+L551F: CALL L6E4B
+ DEC A
+ CP 007H
+ JP NC,04AF2H
+ INC A
+ JP L0041
+
+L552C: PUSH BC
+ CALL L6E4B
+ POP BC
+ CP 008H
+ JP NC,04AF2H
+ RET
+
+L5537: RST 018H
+ DB 045H
+ RET
+
+ DS 198, 000H
+L5600: LD A,(ZLOG)
+ CP 088H
+ RET
+
+L5606: CALL L6E8A
+ LD A,(L84CE)
+ CP 003H
+ PUSH HL
+ EX DE,HL
+ JR Z,L5619 ; (+007H)
+ CALL L6028
+ POP HL
+ RST 018H
+ DB 017H
+ RET
+
+L5619: CALL L6E7E
+ POP HL
+ RET
+
+L561E: LD A,(L005D)
+ LD (0574DH),A
+ XOR A
+ LD (DISPX),A
+ CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 2,A
+ JP NZ,L5D18
+ BIT 1,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L5600
+ JR NZ,L5655 ; (+013H)
+ CALL TEST1
+ DB 05BH
+ JR NZ,L5655 ; (+00dH)
+ LD A,(0574DH)
+ CALL L54D0
+ LD (0574DH),A
+ CALL TESTX
+ DB 05DH
+L5655: CALL L413E
+ JP Z,L5733
+L565B: LD A,(HL)
+ CP LSE3
+ JR Z,L56DA ; (+07aH)
+ LD BC,L5674
+ PUSH BC
+ CP 03BH
+ RET Z
+ CP 02CH
+ RET Z
+ CP LSE6
+ JR Z,L56AA ; (+03cH)
+ CALL L5606
+ JP L573E
+
+L5674: CALL L413E
+ JP Z,L5733
+ CP 02CH
+ JR NZ,L569A ; (+01cH)
+ CALL L5600
+ JR C,L5697 ; (+014H)
+ LD IX,(ZDELT)
+ CALL IOCALL
+ LD B,A
+L568B: SUB 00AH
+ JR NC,L568B ; (-004H)
+ NEG
+ LD B,A
+ CALL L56CC
+ JR L569A ; (+003H)
+
+L5697: CALL L5733
+L569A: LD A,(HL)
+ CP 02CH
+ JR Z,L56A1 ; (+002H)
+ CP 03BH
+L56A1: JR NZ,L56A4 ; (+001H)
+ INC HL
+L56A4: CALL L413E
+ RET Z
+ JR L565B ; (-04fH)
+
+L56AA: CALL L5600
+ JP C,057B7H
+ CALL L5E77
+ CALL L6E4B
+ CALL L5E7F
+ LD IX,(ZDELT)
+ CALL IOCALL
+ SUB E
+ RET NC
+ NEG
+ LD B,A
+ CALL L5600
+ LD A,013H
+ JR Z,L56CE ; (+002H)
+L56CC: LD A,020H
+L56CE: LD DE,KEYBUF
+ PUSH BC
+ PUSH DE
+ CALL ?SETDE
+ POP DE
+ POP BC
+ JR L573E ; (+064H)
+
+L56DA: INC HL
+ CALL L6E6F
+ LD A,B
+ OR A
+ JP Z,04AF2H
+ PUSH HL
+ LD HL,KEYBUF
+ PUSH HL
+ PUSH BC
+ CALL LDHLDE
+ POP BC
+ LD A,0F0H
+ LD E,B
+ LD D,000H
+ INC DE
+ RST 018H
+ DB 02AH
+ LD (L6306),HL
+ LD (L6308),HL
+ POP DE
+ CALL LDHLDE
+ LD (HL),000H
+ POP HL
+L5702: CALL L413E
+ JR Z,L5729 ; (+022H)
+ INC HL
+ CP 02CH
+ JR Z,L5711 ; (+005H)
+ CP 03BH
+ JP NZ,L4AEC
+L5711: CALL L413E
+ JR Z,L572C ; (+016H)
+ CALL L6E92
+ PUSH HL
+ LD BC,(TMPEND)
+ PUSH BC
+ CALL L630A
+ POP DE
+ CALL L573C
+ POP HL
+ JR L5702 ; (-027H)
+
+L5729: CALL L5733
+L572C: LD A,0F0H
+ RST 018H
+ DB 02BH
+ RET
+
+L5731: DEC C
+ NOP
+L5733: LD A,(L005D)
+ LD (0574DH),A
+ LD DE,L5731
+L573C: RST 018H
+ DB 017H
+L573E: CALL L5600
+ JR Z,L5746 ; (+003H)
+ RST 018H
+ DB 037H
+ RET
+
+L5746: PUSH HL
+ PUSH BC
+ LD HL,L005D
+ LD C,(HL)
+ LD (HL),070H
+ RST 018H
+ DB 037H
+ LD (HL),C
+ POP BC
+ POP HL
+ RET
+
+L5754: LD A,08AH
+ LD (ZLOG),A
+ JR L5792 ; (+037H)
+
+L575B: CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 2,A
+ JP NZ,L5D29
+ BIT 0,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L5600
+ JR NZ,L5792 ; (+01dH)
+ CALL HLFTCH
+ CP 022H
+ LD DE,L57BC
+ LD B,002H
+ JR NZ,L5788 ; (+007H)
+ CALL L6E6F
+ CALL TESTX
+ DB 03BH
+L5788: LD A,B
+ OR A
+ JR Z,L5792 ; (+006H)
+L578C: LD A,(DE)
+ INC DE
+ RST 018H
+ DB 003H
+ DJNZ L578C ; (-006H)
+L5792: LD (057EBH),SP
+ LD DE,(VARED)
+ LD (TMPEND),DE
+L579E: LD DE,(TMPEND)
+ CALL L74E8
+ CALL L7436
+ PUSH AF
+ PUSH BC
+ CALL L413E
+ JR Z,057BEH ; (+00fH)
+ CALL L5E73
+ JR L579E ; (-016H)
+
+L57B4: LD A,02CH
+ LD HL,0BB3EH
+ JP L0182
+
+L57BC: CCF
+ JR NZ,0576EH ; (-051H)
+ PUSH AF
+ PUSH HL
+ RST 018H
+ DB 034H
+ LD HL,(057EBH)
+ DEC HL
+L57C7: LD A,(HL)
+ OR A
+ JR Z,L57E9 ; (+01eH)
+ DEC HL
+ DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ DEC HL
+ PUSH HL
+ PUSH AF
+ PUSH BC
+ LD DE,(TMPEND)
+ CALL L57EE
+ LD H,000H
+ LD L,B
+ ADD HL,DE
+ LD (HL),000H
+ POP DE
+ POP AF
+ CALL L57F8
+ POP HL
+ JR L57C7 ; (-022H)
+
+L57E9: POP HL
+ LD SP,L0000
+ RET
+
+L57EE: LD A,(ZLOG)
+ CP 08AH
+ JR Z,L5839 ; (+044H)
+ RST 018H
+ DB 035H
+ RET
+
+L57F8: CP 003H
+ JR NZ,L5803 ; (+007H)
+ LD HL,(TMPEND)
+ LD A,B
+$START: JP L4CD2 ; $START - BASIC warm start / system entry
+
+L5803: PUSH DE
+ LD HL,(INTFAC)
+ LD DE,(TMPEND)
+ EX DE,HL
+ CALL HLFTCH
+ CP 045H
+ JP Z,04AF2H
+ EX DE,HL
+ CALL L5EDC
+ EX DE,HL
+ CALL TEST1
+ DB 000H
+ JP NZ,04AF2H
+ EX DE,HL
+ POP DE
+ JP L5E93
+
+L5825: XOR A
+ JR L587E ; (+056H)
+
+L5828: CALL L5825
+ CALL L413E
+ CALL NZ,L45AA
+ EX DE,HL
+ CALL NZ,L5869
+ EX DE,HL
+ JP L4F8A
+
+L5839: PUSH HL
+ PUSH DE
+ CALL L5847
+ POP DE
+ POP HL
+ RET
+
+L5841: LD HL,(TEXTST)
+ CALL L5869
+L5847: LD A,(L848F)
+ CP 001H
+ JP Z,04B1FH
+ JR C,L5841 ; (-010H)
+ LD HL,(L8490)
+ LD C,03AH
+ RST 018H
+ DB 036H
+ LD (L8490),HL
+ CALL L413E
+ SCF
+ CCF
+ RET NZ
+ DEC HL
+L5862: CALL L519E
+ OR A
+ JR NZ,L5874 ; (+00cH)
+ INC HL
+L5869: LD A,(HL)
+ INC HL
+ OR (HL)
+ LD A,001H
+ JR Z,L587E ; (+00eH)
+ INC HL
+ INC HL
+ JR L5862 ; (-012H)
+
+L5874: CP 094H
+ JR NZ,L5862 ; (-016H)
+ INC HL
+ LD (L8490),HL
+ LD A,002H
+L587E: LD (L848F),A
+ RET
+
+L5882: CALL TEST1
+ DB 023H
+ JR NZ,L58AD ; (+025H)
+ CALL HLFTCH
+ CP 020H
+ JP NC,L4AEC
+ PUSH DE
+ PUSH BC
+ LD DE,L84CF
+ PUSH DE
+ CALL L705A
+ EX (SP),HL
+ CALL L60B7
+ LD A,H
+ OR A
+ JP NZ,04B28H
+ OR L
+ JP Z,04B28H
+ JP M,04B28H
+ POP HL
+ POP BC
+ POP DE
+ RET
+
+L58AD: CALL TEST1
+ DB FDPD
+ LD A,088H
+ RET NZ
+ CALL TEST1
+ DB 050H
+ LD A,089H
+ RET Z
+ CALL TESTX
+ DB 054H
+ LD A,080H
+ RET
+
+L58C2: LD A,(ZLOG)
+ OR A
+ RET M
+ JP L5E70
+
+L58CA: JP DBG_DIRCMD1 ; Debug hook: DIR handler 1 (via L593A)
+ NOP
+ NOP
+ NOP
+
+L58D0: JP DBG_DIRCMD2 ; Debug hook: DIR handler 2 (via L6E6F)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L58D8: PUSH HL
+ RST 018H
+ DB 02CH
+ RST 018H
+ DB 03CH
+ POP HL
+ RET
+
+L58DF: LD A,001H
+ LD BC,0023EH
+ LD BC,0043EH
+ PUSH AF
+ LD (ZRWX),A
+ CALL L5882
+ CP 088H
+ JR NZ,L58F4 ; (+002H)
+ LD A,080H
+L58F4: LD (ZLOG),A
+ CALL L58C2
+ CALL L592D
+ POP AF
+ CP 004H
+ JR Z,L5904 ; (+002H)
+L5902: LD A,003H
+L5904: LD (ELMD),A
+ PUSH AF
+ RST 018H
+ DB 033H
+ LD A,(ELMD)
+ POP BC
+ CP B
+ JP NZ,04B53H
+ RET
+
+L5913: OR 0AFH
+ LD B,A
+ CALL L413E
+ JR Z,L5929 ; (+00eH)
+L591B: CALL L5882
+ CP 088H
+ RET NC
+ RST 018H
+ DB 038H
+ CALL TEST1
+ DB 02CH
+ JR L591B ; (-00eH)
+
+L5929: XOR A
+ RST 018H
+ DB 038H
+ RET
+
+L592D: CALL L46A6
+ LD B,000H
+ CALL NZ,L6E6F
+ PUSH HL
+ RST 018H
+ DB 02DH
+ POP HL
+ RET
+
+L593A: PUSH HL
+ CALL HLFTCH
+ LD DE,L5982
+ LD B,001H
+ CALL L5975
+ CALL NC,L5975
+ JR C,L5962 ; (+017H)
+ CALL L5975
+ CALL L5EC4
+ CALL L597B
+ CALL L413E
+ JR NZ,L5962 ; (+009H)
+ LD A,03AH
+ LD (DE),A
+ POP AF
+ JP RFS_DIR_FIX
+ NOP
+ NOP
+
+L5962: POP HL
+ CALL L413E
+ LD B,000H
+ CALL NZ,L6E6F
+L596B: JP DBG_DIR ; Debug hook: trace SVC #2C for DIR
+ NOP ; (was: PUSH HL / RST 018H / DB 02CH / INC(HL) / DEC(HL) / JP NZ / POP HL / RET)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+
+L5975: CP 041H
+ RET C
+ CP 05BH
+ CCF
+L597B: RET C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ INC B
+ RET
+
+L5982: NOP
+ NOP
+ NOP
+ NOP
+L5986: CALL L592D
+ CALL TEST1
+ DB 02CH
+ JP Z,L5A47
+ PUSH HL
+ CALL L5BDC
+ DEC A
+ JR Z,L59A9 ; (+012H)
+ DEC A
+ JP NZ,04B53H
+ CALL L5C08
+ CALL L5BE5
+ CALL L5C11
+ CALL L5C44
+ POP HL
+ RET
+
+L59A9: LD HL,(ELMD22)
+ PUSH HL
+ LD DE,(MEMLMT)
+ CALL L59CF
+ LD DE,(ELMD20)
+ LD BC,(MEMMAX)
+ CALL NC,L59CA
+ JP C,04B13H
+ POP HL
+ RST 018H
+ DB 030H
+ CALL L5C44
+ POP HL
+ RET
+
+L59CA: ADD HL,DE
+ RET C
+ EX DE,HL
+ LD H,B
+ LD L,C
+L59CF: PUSH HL
+ OR A
+ SBC HL,DE
+ POP HL
+ RET
+
+L59D5: CALL L592D
+ CALL L5BDC
+ CP 002H
+ JP NZ,04B53H
+ LD A,(L849A)
+ OR A
+ JP Z,L5B0D
+ JP L5DB2
+
+L59EA: CALL L5C08
+ CALL L592D
+ CALL TEST1
+ DB 02CH
+ JR Z,05A4DH ; (+057H)
+ RST 018H
+ DB 02FH
+ CP 002H
+ JP NZ,04B53H
+ PUSH HL
+ LD HL,(VARED)
+ LD (TMPEND),HL
+ LD BC,003E8H
+ ADD HL,BC
+ JP C,L4B2C
+ PUSH HL
+ LD BC,(ELMD20)
+ INC B
+ ADD HL,BC
+ JP C,L4B2C
+ SBC HL,SP
+ JP NC,L4B2C
+ POP HL
+ PUSH HL
+ RST 018H
+ DB 030H
+ POP HL
+ CALL L5A24
+ POP HL
+ RET
+
+L5A24: CALL LDDEMI
+ LD A,D
+ OR E
+ RET Z
+ PUSH DE
+ CALL LDDEMI
+ PUSH HL
+ LD H,D
+ LD L,E
+ LD (L847F),HL
+ CALL L49B9
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+ CALL L4794
+ POP HL
+ POP BC
+ ADD HL,BC
+ DEC HL
+ DEC HL
+ DEC HL
+ DEC HL
+ JR L5A24 ; (-023H)
+
+L5A47: CALL L5C08
+ LD A,001H
+ LD BC,L003E
+ LD BC,0023EH
+ PUSH AF
+ CALL TESTX
+ DB 041H
+ CALL 05E48H
+ LD A,001H
+ LD (ZRWX),A
+ LD A,081H
+ LD (ZLOG),A
+ CALL L5902
+ POP AF
+ PUSH AF
+ PUSH HL
+ LD HL,L0000
+ LD DE,0FFFFH
+ OR A
+ CALL NZ,L49B9
+ LD A,081H
+ RST 018H
+ DB 02EH
+ LD HL,(VARED)
+ LD (TMPEND),HL
+ LD BC,003E8H
+ ADD HL,BC
+ JP C,04AFBH
+ PUSH HL
+ LD (L5AEB),HL
+L5A89: LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(05AEBH)
+ SBC HL,DE
+ JP C,04AFBH
+ LD DE,(TMPEND)
+ RST 018H
+ DB 035H
+ LD A,B
+ OR A
+ JR Z,L5AD6 ; (+036H)
+ CALL L6A11
+ LD A,B
+ OR C
+ JP Z,04AF2H
+ LD HL,(L5AEB)
+ PUSH HL
+ INC HL
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ PUSH HL
+ LD H,D
+ LD L,E
+ CALL TEST1
+ DB 000H
+ JP Z,04AF2H
+ POP HL
+ LD A,(DE)
+ CP 020H
+ JR NZ,L5AC3 ; (+001H)
+ INC DE
+L5AC3: CALL L66EF
+ LD (HL),000H
+ INC HL
+ LD (L5AEB),HL
+ POP DE
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ JR L5A89 ; (-04dH)
+
+L5AD6: LD HL,(L5AEB)
+ CALL L4952
+ CALL L4928
+ POP HL
+ CALL L5A24
+ POP HL
+ POP AF
+ CP 002H
+ RET NZ
+ JP L480D
+
+L5AEB: NOP
+ NOP
+L5AED: CALL L592D
+ PUSH HL
+ CALL TEST1
+ DB 02CH
+ JR NZ,L5AFF ; (+008H)
+ CALL HLFTCH
+ CP 041H
+ JP Z,05A50H
+L5AFF: CALL L5BDC
+ POP HL
+ DEC A
+ JR Z,L5B16 ; (+010H)
+ DEC A
+ JP NZ,04B53H
+ CALL L5BE5
+L5B0D: CALL L5C11
+ CALL L5C44
+ JP L480D
+
+L5B16: LD D,0C9H
+ LD BC,0FF00H
+ CALL TEST1
+ DB 02CH
+ JR NZ,L5B2A ; (+009H)
+ CALL TESTX
+ DB 052H
+ LD D,000H
+ LD BC,0CF00H
+L5B2A: LD A,D
+ LD (L5B93),A
+ LD HL,(ELMD20)
+ LD DE,(ELMD22)
+ PUSH HL
+ CALL L59CA
+ POP DE
+ LD HL,(TEXTST)
+ LD BC,0FF00H
+ CALL NC,L59CA
+ JP C,L4B2C
+ LD SP,L0000
+ CALL L4930
+ XOR A
+ LD (L5C07),A
+ LD HL,(ELMD24)
+ PUSH HL
+ LD DE,(ELMD20)
+ PUSH DE
+ LD HL,(TMPEND)
+ RST 018H
+ DB 030H
+ LD A,004H
+ RST 018H
+ DB 003H
+ LD A,016H
+ RST 018H
+ DB 003H
+ POP BC
+ PUSH BC
+ LD DE,(ELMD22)
+ CALL L59CF
+ LD A,0B0H
+ JR NC,L5B7B ; (+008H)
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ LD A,0B8H
+L5B7B: LD (05B92H),A
+ DI
+ PUSH HL
+ PUSH DE
+ LD BC,00016H
+ LD HL,L5B8E
+ LD DE,0FF80H
+ PUSH DE
+ LDIR
+ RET
+
+L5B8E: POP DE
+ POP HL
+ POP BC
+ LDIR
+L5B93: RET
+
+ POP BC
+ LD SP,VRAM
+ EX DE,HL
+ PUSH BC
+ PUSH HL
+ LD (HL),LSD3
+ INC HL
+ LD (HL),LSE4
+ INC HL
+ LD (HL),0C9H
+ RET
+
+L5BA4: LD HL,(VARED)
+ LD (TMPEND),HL
+ LD DE,(TEXTED)
+ LD (05C01H),DE
+ OR A
+ SBC HL,DE
+ LD (L5C03),HL
+ LD HL,0FF00H
+ ADD HL,SP
+ LD (L5C05),HL
+ LD DE,(VARED)
+ PUSH HL
+ OR A
+ SBC HL,DE
+ JP C,L4B2C
+ EX (SP),HL
+ EX DE,HL
+ LD BC,(05C03H)
+ INC BC
+ LDDR
+ POP DE
+ RST 018H
+ DB 018H
+ LD A,001H
+ LD (L5C07),A
+ RET
+
+L5BDC: CALL L5BA4
+ RST 018H
+ DB 02FH
+ LD A,(ELMD)
+ RET
+
+L5BE5: LD HL,(VARED)
+ XOR A
+ DEC HL
+ LD (HL),A
+ DEC HL
+ LD (HL),A
+ LD (STRST),HL
+ DEC HL
+ LD (HL),A
+ LD (VARST),HL
+ DEC HL
+ LD (HL),A
+ LD (TEXTED),HL
+ LD HL,00004H
+ LD (L5C03),HL
+ RET
+
+L5C01: NOP
+ NOP
+L5C03: NOP
+ NOP
+L5C05: NOP
+ NOP
+L5C07: NOP
+L5C08: PUSH AF
+ CALL L4146
+ JP NZ,04B16H
+ POP AF
+ RET
+
+L5C11: LD BC,(ELMD20)
+ PUSH BC
+ LD HL,(TEXTED)
+ LD DE,(TEXTST)
+ OR A
+ SBC HL,DE
+ LD L,000H
+ SBC HL,BC
+ JP C,L4B2C
+ LD HL,L0000
+ LD (L5C01),HL
+ CALL L4821
+ LD HL,L0000
+ LD (L8483),HL
+ LD HL,(TEXTST)
+ RST 018H
+ DB 030H
+ POP BC
+ LD HL,(TEXTST)
+ ADD HL,BC
+ LD (L5C01),HL
+ RET
+
+L5C44: LD A,081H
+ LD B,000H
+ RST 018H
+ DB 038H
+ LD HL,L5C07
+ LD A,(HL)
+ OR A
+ RET Z
+ LD (HL),000H
+ LD HL,(L5C01)
+ LD A,H
+ OR L
+ JR NZ,L5C5F ; (+006H)
+ LD HL,(TEXTST)
+ CALL L4952
+L5C5F: EX DE,HL
+ LD HL,(TEXTED)
+ LD BC,(05C03H)
+ LDIR
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ RST 018H
+ DB 018H
+ RET
+
+L5C71: PUSH HL
+ CALL L46C0
+ POP HL
+ CALL L592D
+ PUSH HL
+ RST 018H
+ DB 02FH
+ CP 002H
+ JP NZ,04B53H
+ LD HL,(TEXTST)
+ RST 018H
+ DB 032H
+ POP HL
+ RET
+
+L5C88: PUSH HL
+ CALL L46C0
+ POP HL
+ CALL L592D
+ CALL TEST1
+ DB 02CH
+ JR Z,L5CB5 ; (+01fH)
+ PUSH HL
+ LD A,002H
+ LD (ELMD),A
+ LD HL,(TEXTED)
+ LD DE,(TEXTST)
+ OR A
+ SBC HL,DE
+ LD (ELMD20),HL
+ LD A,(ELMD1)
+ CP 00DH
+ JP Z,04B50H
+ RST 018H
+ DB 031H
+ POP HL
+ RET
+
+L5CB5: CALL TESTX
+ DB 041H
+ PUSH HL
+ LD A,002H
+ LD (ZRWX),A
+ LD A,081H
+ LD (ZLOG),A
+ CALL L5902
+ POP HL
+ CALL L52ED
+ CALL L5733
+ LD B,001H
+ LD A,081H
+ RST 018H
+ DB 038H
+ RET
+
+L5CD5: XOR A
+ LD BC,?SETDE
+ PUSH AF
+ CALL L6E6F
+ RST 018H
+ DB 02DH
+ POP AF
+ RST 018H
+ DB 03FH
+ RET
+
+L5CE3: JP DBG_DIR3 ; Debug hook: trace full DIR handler
+ PUSH AF
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 1,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L593A
+ LD B,A
+ XOR A
+ RST 018H
+ DB 039H
+ LD A,B
+ RST 018H
+ DB 03AH
+ POP AF
+ RST 018H
+ DB 039H
+ RET
+
+L5D02: CALL L6E6F
+ RST 018H
+ DB 02DH
+ RST 018H
+ DB 03DH
+ RET
+
+L5D0A: CALL L6E6F
+ RST 018H
+ DB 02DH
+ CALL L5E70
+ CALL L6E6F
+ RST 018H
+ DB 03EH
+ RET
+
+L5D18: CALL L5D4E
+L5D1B: CALL L5606
+ RST 018H
+ DB 042H
+ CALL L413E
+ RET Z
+ CALL L5E73
+ JR L5D1B ; (-00eH)
+
+L5D29: CALL L5D4E
+ LD DE,(TMPEND)
+ CALL L74E8
+L5D33: CALL L7436
+ PUSH HL
+ PUSH AF
+ PUSH BC
+ LD DE,(TMPEND)
+ RST 018H
+ DB 041H
+ POP DE
+ POP AF
+ CALL L57F8
+ POP HL
+ CALL L413E
+ RET Z
+ CALL L5E73
+ JR L5D33 ; (-01bH)
+
+L5D4E: CALL TEST1
+ DB 028H
+ RET NZ
+ CALL L6E5F
+ LD A,D
+ OR E
+ JP Z,04AF2H
+ RST 018H
+ DB 040H
+ CALL L5E7F
+ CALL TEST1
+ DB 02CH
+ RET
+
+L5D65: LD A,(L849A)
+ OR A
+ JP NZ,04B22H
+ PUSH HL
+ LD B,000H
+ RST 018H
+ DB 02CH
+ LD (05E1AH),DE
+ LD (L5E1C),A
+ LD HL,(TEXTED)
+ LD DE,(TEXTST)
+ XOR A
+ SBC HL,DE
+ LD (ELMD20),HL
+ RST 018H
+ DB 044H
+ POP HL
+ CALL L592D
+ CALL 05E48H
+ LD A,(ZFLAG1)
+ BIT 5,A
+ JP Z,057B7H
+ PUSH HL
+ LD HL,(08494H)
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ LD HL,L847D
+ LD BC,(08492H)
+ LDIR
+ CALL L5BDC
+ CP 002H
+ JP NZ,04B53H
+ LD (05DB3H),SP
+L5DB2: LD SP,L0000
+ CALL L5C11
+ CALL L5C44
+ LD HL,0FFFDH
+ PUSH HL
+ PUSH HL
+ LD A,001H
+ LD (L849A),A
+ LD HL,(TEXTST)
+ JP L40E4
+
+L5DCB: XOR A
+ LD (L849A),A
+ POP IX
+L5DD1: POP BC
+ LD A,B
+ CP 0FFH
+ JP NZ,04B22H
+ LD A,C
+ CP 0FDH
+ JR Z,L5DF0 ; (+013H)
+ CP 0FEH
+ LD HL,00004H
+ JR Z,L5DEC ; (+008H)
+ CP 012H
+ LD HL,00010H
+ JP NZ,04B22H
+L5DEC: ADD HL,SP
+ LD SP,HL
+ JR L5DD1 ; (-01fH)
+
+L5DF0: LD DE,(05E1AH)
+ LD A,(L5E1C)
+ RST 018H
+ DB 03AH
+ LD B,000H
+ RST 018H
+ DB 02CH
+ CALL L5BA4
+ OR 0FFH
+ RST 018H
+ DB 044H
+ CALL L5C11
+ CALL L5C44
+ LD HL,L0000
+ ADD HL,SP
+ LD DE,L847D
+ LD BC,(08492H)
+ LDIR
+ LD SP,HL
+ POP HL
+ RET
+
+ NOP
+ NOP
+L5E1C: NOP
+L5E1D: LD DE,L5E37
+ LD B,005H
+ CALL L58D8
+ LD A,031H
+ CALL L5E2C
+ LD A,032H
+L5E2C: LD (05E3EH),A
+ LD DE,05E3CH
+ LD B,00CH
+ JP L58D8
+
+L5E37: DB "CMT:TRS?:0,$8C,13",0CDH; XCMT device config string
+ LD A,041H
+ RET Z
+ JP L4AEC
+
+L5E4F: XOR A
+ LD (FILOUT),A
+ CALL TEST1
+ DB FDPD
+ RET NZ
+ CALL TESTX
+ DB 050H
+ CALL L6AC6
+ LD A,050H
+ LD (FILOUT),A
+ CP A
+ RET
+
+L5E66: LD DE,L849C
+ LD B,000H
+ PUSH DE
+ RST 018H
+ DB 016H
+ POP DE
+ RET
+
+L5E70: CALL HLFTCH
+L5E73: CP 02CH
+ JR L5E84 ; (+00dH)
+
+L5E77: INC HL
+L5E78: CALL HLFTCH
+L5E7B: CP 028H
+ JR L5E84 ; (+005H)
+
+L5E7F: CALL HLFTCH
+L5E82: CP 029H
+L5E84: INC HL
+ RET Z
+ JP L4AEC
+
+L5E89: LD A,(DE)
+ CP 020H
+ INC DE
+ JR Z,L5E89 ; (-006H)
+ RET
+
+L5E90: LD HL,L6112
+L5E93: LD BC,00005H
+ LDIR
+ RET
+
+L5E99: CALL L7967
+ LD A,E
+ OR D
+ RET Z
+ BIT 7,D
+ LD A,07FH
+ JR Z,L5EAE ; (+009H)
+ LD A,D
+ CPL
+ LD D,A
+ LD A,E
+ CPL
+ LD E,A
+ INC DE
+ LD A,0FFH
+L5EAE: LD B,091H
+L5EB0: DEC B
+ BIT 7,D
+ JR NZ,L5EBB ; (+006H)
+ RL E
+ RL D
+ JR L5EB0 ; (-00bH)
+
+L5EBB: LD (HL),B
+ INC HL
+ AND D
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ DEC HL
+ DEC HL
+ RET
+
+L5EC4: CP 030H
+ RET C
+ CP 03AH
+ CCF
+ RET
+
+L5ECB: CP 05FH
+ RET Z
+ CP 030H
+ RET C
+ CP 05BH
+ CCF
+ RET C
+ CP 03AH
+ CCF
+ RET NC
+ CP 041H
+ RET
+
+L5EDC: CALL L7967
+ LD (L6301),A
+ LD (L6302),A
+ LD (L6303),A
+ LD (05F83H),A
+ LD A,005H
+ LD (L84CE),A
+L5EF0: CALL L5E89
+ CP 02BH
+ JR Z,L5EF0 ; (-007H)
+ CP 02DH
+ JR NZ,L5F01 ; (+006H)
+ CALL L5EF0
+ JP L7972
+
+L5F01: CP 024H
+ JR NZ,L5F11 ; (+00cH)
+ PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 014H
+ EX (SP),HL
+ CALL L5E99
+ POP DE
+ LD A,005H
+ RET
+
+L5F11: CP 030H
+ JR NZ,L5F1B ; (+006H)
+ LD A,(DE)
+ INC DE
+ JR L5F11 ; (-008H)
+
+L5F19: LD A,(DE)
+ INC DE
+L5F1B: CP 020H
+ JR Z,L5F19 ; (-006H)
+ CP 02EH
+ JR Z,L5F3E ; (+01bH)
+ CALL L5EC4
+ JR C,L5F78 ; (+050H)
+ SUB 030H
+ CALL L60AA
+ CALL L6014
+ LD A,001H
+ LD (L6302),A
+ LD A,(L6301)
+ INC A
+ LD (L6301),A
+ JR L5F19 ; (-025H)
+
+L5F3E: LD A,001H
+ LD (05F83H),A
+ LD C,A
+L5F44: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L5F44 ; (-006H)
+ CALL L5EC4
+ JR C,L5F70 ; (+021H)
+ INC C
+ SUB 030H
+ JR Z,L5F5B ; (+007H)
+ PUSH AF
+ LD A,001H
+ LD (L6302),A
+ POP AF
+L5F5B: PUSH AF
+ LD A,(L6302)
+ LD B,A
+ LD A,(L6301)
+ ADD A,B
+ LD (L6301),A
+ POP AF
+ CALL L60AA
+ CALL L6014
+ JR L5F44 ; (-02cH)
+
+L5F70: DEC C
+ JR Z,L5F78 ; (+005H)
+ CALL L5FFE
+ JR L5F70 ; (-008H)
+
+L5F78: CP 045H
+ JR Z,L5F89 ; (+00dH)
+L5F7C: DEC DE
+ LD A,(L6303)
+ OR A
+ RET NZ
+ LD A,000H
+ OR A
+ RET NZ
+ LD A,005H
+ RET
+
+L5F89: LD A,(DE)
+ CP 02DH
+ JR Z,L5F97 ; (+009H)
+ CP 02BH
+ JR Z,L5F97 ; (+005H)
+ CALL L5EC4
+ JR C,L5F7C ; (-01bH)
+L5F97: LD A,001H
+ LD (05F83H),A
+ PUSH HL
+ LD HL,L7BB3
+ LD (05FF7H),HL
+ LD HL,L0000
+ LD A,(DE)
+ INC DE
+ CP 02BH
+ JR Z,L5FB8 ; (+00cH)
+ CP 02DH
+ JR NZ,L5FBA ; (+00aH)
+ PUSH HL
+ LD HL,L7C9E
+ LD (05FF7H),HL
+ POP HL
+L5FB8: LD A,(DE)
+ INC DE
+L5FBA: SUB 030H
+ JR C,L5FDA ; (+01cH)
+ CP 00AH
+ JR NC,L5FDA ; (+018H)
+ PUSH DE
+ CALL L600F
+ LD E,L
+ LD D,H
+ CALL L600F
+ CALL L600F
+ CALL L600B
+ LD E,A
+ LD D,000H
+ CALL L600B
+ POP DE
+ JR L5FB8 ; (-022H)
+
+L5FDA: LD A,H
+ OR A
+ JR NZ,L6011 ; (+033H)
+ LD A,L
+ POP HL
+ PUSH DE
+ PUSH BC
+ PUSH HL
+ LD DE,L84CF
+ PUSH DE
+ CALL L5E90
+ POP HL
+ LD B,A
+ INC B
+ JR L5FF2 ; (+003H)
+
+L5FEF: CALL L60AA
+L5FF2: DJNZ L5FEF ; (-005H)
+ EX DE,HL
+ POP HL
+ CALL L0000
+ POP BC
+ POP DE
+ JP L5F7C
+
+L5FFE: PUSH AF
+ PUSH BC
+ PUSH DE
+ LD DE,L610D
+ CALL L7C9E
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L600B: ADD HL,DE
+ RET NC
+ JR L6011 ; (+002H)
+
+L600F: ADD HL,HL
+ RET NC
+L6011: JP 04AEFH
+
+L6014: PUSH DE
+ PUSH HL
+ LD HL,L84CF
+ LD E,A
+ LD D,000H
+ CALL L5E99
+ EX DE,HL
+ POP HL
+ PUSH BC
+ CALL L7985
+ POP BC
+ POP DE
+ RET
+
+L6028: LD A,005H
+ LD (L84CE),A
+ LD A,(HL)
+ OR A
+ JR Z,L6035 ; (+004H)
+ INC HL
+ LD A,(HL)
+ DEC HL
+ RLCA
+L6035: LD A,020H
+ JR NC,L603E ; (+005H)
+ CALL L7972
+ LD A,02DH
+L603E: PUSH AF
+ CALL L61AD
+ CALL L623A
+ POP AF
+ DEC DE
+ LD (DE),A
+ RET
+
+L6049: PUSH BC
+ CALL L7A1C
+ POP BC
+ RET
+
+L604F: CALL SKPDE
+ LD A,(HL)
+ CP 081H
+ JP C,L7967
+ LD A,(HL)
+ CP 0A0H
+ RET NC
+ INC HL
+ CALL L6086
+ PUSH HL
+ LD L,(HL)
+ LD B,000H
+L6064: SRL E
+ RR D
+ RR C
+ RR L
+ INC A
+ INC B
+ CP 0A0H
+ JR NZ,L6064 ; (-00eH)
+L6072: SLA L
+ RL C
+ RL D
+ RL E
+ DJNZ L6072 ; (-00aH)
+ LD A,L
+ POP HL
+ LD (HL),A
+ DEC HL
+ LD (HL),C
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ RET
+
+L6086: LD E,(HL)
+ INC HL
+L6088: LD D,(HL)
+ INC HL
+ LD C,(HL)
+ INC HL
+ RET
+
+L608D: LD A,(HL)
+ CP 081H
+ RET C
+ PUSH DE
+ PUSH HL
+ LD DE,L60A5
+ PUSH DE
+ CALL L5E93
+ POP HL
+ CALL L604F
+ EX DE,HL
+ POP HL
+ CALL L797C
+ POP DE
+ RET
+
+L60A5: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L60AA: PUSH AF
+ PUSH BC
+ PUSH DE
+ LD DE,L610D
+ CALL L7BB3
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L60B7: INC HL
+ BIT 7,(HL)
+ JR Z,L60C7 ; (+00bH)
+ CALL L60C7
+ LD A,H
+ CPL
+ LD H,A
+ LD A,L
+ CPL
+ LD L,A
+ INC HL
+ RET
+
+L60C7: DEC HL
+ LD A,(HL)
+ CP 091H
+ JP NC,04AEFH
+ CP 081H
+ JR C,L60E5 ; (+013H)
+ PUSH AF
+ INC HL
+ LD A,(HL)
+ INC HL
+ LD L,(HL)
+ LD H,A
+ POP AF
+ SET 7,H
+L60DB: CP 090H
+ RET Z
+ INC A
+ SRL H
+ RR L
+ JR L60DB ; (-00aH)
+
+L60E5: CCF
+ LD HL,L0000
+ RET
+
+L60EA: SBC A,E
+ LD A,0BCH
+ JR NZ,L60EF ; (+000H)
+L60EF: SBC A,B
+ JR L6088 ; (-06aH)
+
+ ADD A,B
+ NOP
+ SUB H
+ LD (HL),H
+ INC H
+ NOP
+ NOP
+ SUB C
+ LD B,E
+ LD D,B
+ NOP
+ NOP
+ ADC A,(HL)
+ INC E
+ LD B,B
+ NOP
+ NOP
+ ADC A,D
+ LD A,D
+ NOP
+ NOP
+ NOP
+ ADD A,A
+ LD C,B
+ NOP
+ NOP
+ NOP
+L610D: ADD A,H
+ JR NZ,L6110 ; (+000H)
+L6110: NOP
+ NOP
+L6112: ADD A,C
+ NOP
+ NOP
+ NOP
+ NOP
+ LD A,L
+ LD C,H
+ CALL Z,0CDCCH
+L611C: LD H,(HL)
+ DEC HL
+ CALL Z,L1277
+L6121: LD HL,(L6304)
+ LD B,000H
+L6126: LD DE,L610D
+ CALL L6049
+ JR C,L6134 ; (+006H)
+ CALL L5FFE
+ INC B
+ JR L6126 ; (-00eH)
+
+L6134: LD DE,L6112
+ CALL L6049
+ JR NC,L6142 ; (+006H)
+ CALL L60AA
+ DEC B
+ JR L6134 ; (-00eH)
+
+L6142: PUSH BC
+ CALL L61AD
+ CALL L623A
+ POP BC
+ PUSH DE
+ EX DE,HL
+L614C: LD A,(HL)
+ OR A
+ JR Z,L6153 ; (+003H)
+ INC HL
+ JR L614C ; (-007H)
+
+L6153: DEC HL
+ LD A,(HL)
+ INC HL
+ CP 030H
+ JR NZ,L615C ; (+002H)
+ INC B
+ DEC HL
+L615C: LD A,045H
+ LD (HL),A
+ INC HL
+ LD A,B
+ LD B,02BH
+ BIT 7,A
+ JR Z,L616B ; (+004H)
+ NEG
+ LD B,02DH
+L616B: LD (HL),B
+ INC HL
+ LD (HL),030H
+L616F: SUB 00AH
+ JR C,L6176 ; (+003H)
+ INC (HL)
+ JR L616F ; (-007H)
+
+L6176: ADD A,03AH
+ INC HL
+ LD (HL),A
+ INC HL
+ LD (HL),000H
+ POP DE
+ RET
+
+L617F: PUSH HL
+ CALL L60B7
+ LD DE,L84A7
+ PUSH DE
+ LD B,001H
+ RST 018H
+ DB 016H
+ POP HL
+ LD A,030H
+ LD B,005H
+L6190: CP (HL)
+ JR NZ,L6198 ; (+005H)
+ INC HL
+ DJNZ L6190 ; (-006H)
+ JR L61A1 ; (+009H)
+
+L6198: LD A,B
+ LD (L6301),A
+ LD A,001H
+ LD (L6302),A
+L61A1: LD A,02EH
+ LD (L84AC),A
+ POP HL
+ CALL L608D
+ JP L61FD
+
+L61AD: LD (L6304),HL
+ XOR A
+ LD (L6301),A
+ LD (L6302),A
+ PUSH HL
+ LD HL,L84A3
+ LD (HL),0FFH
+ LD B,021H
+ LD A,030H
+L61C1: INC HL
+ LD (HL),A
+ DJNZ L61C1 ; (-004H)
+ LD A,02EH
+ LD (L84AC),A
+ POP HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD DE,L60EA
+ CALL L7A1C
+ CCF
+ RET C
+ LD DE,L611C
+ CALL L7A1C
+ RET C
+ LD DE,L84D7
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD A,(HL)
+ CP 081H
+ JR C,L61FD ; (+013H)
+ CP 090H
+ JP C,L617F
+ LD IX,L84A4
+ LD DE,L60EF
+ CALL L62C4
+ CALL L62F8
+ RET NC
+L61FD: LD IX,L84AD
+L6201: LD DE,L60EA
+ PUSH BC
+ PUSH IX
+ CALL L7BB3
+ POP IX
+ POP BC
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ CALL L62C4
+ CALL L62F8
+ JR C,L6201 ; (-019H)
+ RET
+
+L621B: LD A,005H
+ LD (L84CE),A
+ PUSH HL
+ LD DE,L84DF
+ PUSH DE
+ CALL L5E93
+ POP HL
+ CALL L61AD
+ CALL L6237
+ POP HL
+ RET
+
+L6231: LD DE,L84AC
+ LD (DE),A
+ DEC DE
+ RET
+
+L6237: JP C,L6121
+L623A: LD HL,(L6304)
+ LD A,(HL)
+ OR A
+ JR Z,L6231 ; (-010H)
+ LD DE,L84A4
+ DEC DE
+ EX DE,HL
+ LD DE,00001H
+L6249: INC HL
+ LD A,(HL)
+ CP 02EH
+ JR NZ,L6254 ; (+005H)
+ LD DE,L0000
+ JR L6249 ; (-00bH)
+
+L6254: CP 030H
+ JR Z,L6249 ; (-00fH)
+ ADD HL,DE
+ LD DE,00008H
+ ADD HL,DE
+ LD A,(HL)
+L625E: LD (HL),030H
+ CP 035H
+ JR C,L6273 ; (+00fH)
+L6264: DEC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L6264 ; (-006H)
+ INC A
+ JR Z,L62AD ; (+040H)
+ LD (HL),A
+ CP 03AH
+ JR Z,L625E ; (-014H)
+ INC HL
+L6273: LD DE,L84AC
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ JR C,L6282 ; (+005H)
+ LD HL,L84AC
+ JR L6299 ; (+017H)
+
+L6282: DEC HL
+ LD A,(HL)
+ CP 02EH
+ DEC HL
+ JR Z,L6298 ; (+00fH)
+ INC HL
+ CP 030H
+ JR Z,L6273 ; (-01bH)
+ PUSH HL
+ LD DE,L84B5
+ SBC HL,DE
+ POP HL
+ JP NC,L6121
+L6298: INC HL
+L6299: LD (HL),000H
+ LD DE,L84A4
+L629E: LD A,(DE)
+ CP 030H
+ JR NZ,L62A6 ; (+003H)
+ INC DE
+ JR L629E ; (-008H)
+
+L62A6: OR A
+ RET NZ
+ DEC DE
+ LD A,030H
+ LD (DE),A
+ RET
+
+L62AD: LD HL,L849C
+ LD DE,L62BE
+ PUSH BC
+ LD BC,L0006
+ LDIR
+ POP BC
+ LD DE,L849C
+ RET
+
+L62BE: LD SP,L2B45
+ JR NC,L62FB ; (+038H)
+ NOP
+L62C4: LD A,(DE)
+ CP 07DH
+ RET Z
+L62C8: CALL L7A1C
+ JR C,L62E0 ; (+013H)
+ INC (IX+000H)
+ PUSH IX
+ PUSH BC
+ CALL L797C
+ POP BC
+ POP IX
+ LD A,001H
+ LD (L6302),A
+ JR L62C8 ; (-018H)
+
+L62E0: INC IX
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ LD A,(L6302)
+ LD B,A
+ LD A,(L6301)
+ ADD A,B
+ LD (L6301),A
+ CALL L62F8
+ RET NC
+ JR L62C4 ; (-034H)
+
+L62F8: LD A,(HL)
+ OR A
+ RET Z
+L62FB: LD A,(L6301)
+ CP 009H
+ RET
+
+L6301: NOP
+L6302: NOP
+L6303: NOP
+L6304: NOP
+ NOP
+L6306: NOP
+ NOP
+L6308: NOP
+ NOP
+L630A: LD HL,(L6308)
+ PUSH DE
+L630E: LD A,(HL)
+ OR A
+ JP Z,04AF2H
+ CALL L63AC
+ JR Z,L631D ; (+005H)
+ LD (BC),A
+ INC BC
+ INC HL
+ JR L630E ; (-00fH)
+
+L631D: EX AF,AF'
+ LD A,(L84CE)
+ CP 003H
+ JP NZ,L63D5
+ EX AF,AF'
+ CP 021H
+ JP Z,L6334
+ CP 026H
+ JP Z,L635B
+ JP 04AF5H
+
+L6334: EX (SP),HL
+ PUSH BC
+ CALL L6E7E
+ OR A
+ LD A,020H
+ JR Z,L633F ; (+001H)
+ LD A,(DE)
+L633F: POP BC
+ LD (BC),A
+ INC BC
+L6342: POP HL
+ INC HL
+L6344: LD A,(HL)
+ OR A
+ JR Z,L6352 ; (+00aH)
+ CALL L63AC
+ JR Z,L6355 ; (+008H)
+ LD (BC),A
+ INC BC
+ INC HL
+ JR L6344 ; (-00eH)
+
+L6352: LD HL,(L6306)
+L6355: LD (L6308),HL
+ XOR A
+ LD (BC),A
+ RET
+
+L635B: LD D,002H
+L635D: INC HL
+ LD A,(HL)
+ CP 026H
+ JR Z,L636B ; (+008H)
+ INC D
+ CP 020H
+ JR Z,L635D ; (-00bH)
+ JP 04AF2H
+
+L636B: EX (SP),HL
+ LD A,(HL)
+ CP D
+ JR C,L6385 ; (+015H)
+ INC HL
+ CALL INDRCT
+ PUSH BC
+ LD BC,(STRST)
+ ADD HL,BC
+ POP BC
+L637B: LD A,(HL)
+ LD (BC),A
+ INC BC
+ INC HL
+ DEC D
+ JR NZ,L637B ; (-007H)
+ JP L6342
+
+L6385: LD E,(HL)
+ INC HL
+ CALL INDRCT
+ LD A,E
+ OR A
+ JR Z,L63A2 ; (+014H)
+ PUSH BC
+ LD BC,(STRST)
+ ADD HL,BC
+ POP BC
+L6395: LD A,(HL)
+ LD (BC),A
+ INC BC
+ INC HL
+ DEC E
+ JR Z,L63A6 ; (+00aH)
+ DEC D
+ JR NZ,L6395 ; (-00aH)
+ JP L6342
+
+L63A2: LD A,020H
+ LD (BC),A
+ INC BC
+L63A6: DEC D
+ JR NZ,L63A2 ; (-007H)
+ JP L6342
+
+L63AC: CALL CHKACC
+ INC B
+ LD HL,L2326
+ DEC HL
+ RET Z
+ LD E,A
+ CP 02AH
+ JR Z,L63CF ; (+015H)
+ CALL L65AC
+ JR Z,L63CF ; (+010H)
+ CP 02EH
+ LD E,023H
+ JR Z,L63CF ; (+00aH)
+ CP 0C4H
+ RET NZ
+ INC HL
+ LD A,(HL)
+ OR A
+ JP Z,04AF2H
+ RET
+
+L63CF: INC HL
+ LD A,(HL)
+ CP E
+ DEC HL
+ LD A,(HL)
+ RET
+
+L63D5: XOR A
+ LD (0651CH),A
+ LD (0656CH),A
+ LD (L6554),A
+ LD (06512H),A
+ LD (064CCH),A
+ LD (064F9H),A
+ LD (06517H),A
+ LD (064C5H),A
+ DEC A
+ LD (064C2H),A
+ EX AF,AF'
+ LD D,000H
+ CP 023H
+ JP Z,L6431
+ CP 02AH
+ JP Z,L6412
+ CALL L65AC
+ JP Z,L6423
+ CP 02EH
+ JP Z,L6433
+ CP 02BH
+ JP Z,L642C
+ JP 04AF5H
+
+L6412: LD A,001H
+ LD (0656CH),A
+ INC HL
+ INC D
+ INC HL
+ INC D
+ LD A,(HL)
+ CALL L65AC
+ JR NZ,L6433 ; (+012H)
+ JR L6425 ; (+002H)
+
+L6423: INC HL
+ INC D
+L6425: INC HL
+ INC D
+ LD (L6554),A
+ JR L6433 ; (+007H)
+
+L642C: LD A,001H
+ LD (0651CH),A
+L6431: INC HL
+ INC D
+L6433: EX DE,HL
+ DEC H
+L6435: INC H
+ LD A,(DE)
+ INC DE
+ CP 023H
+ JR Z,L6435 ; (-007H)
+ CP 02CH
+ JR NZ,L6447 ; (+007H)
+ LD A,001H
+ LD (064CCH),A
+ JR L6435 ; (-012H)
+
+L6447: CP 02EH
+ JR Z,L646E ; (+023H)
+ CP 02DH
+ JR NZ,L6457 ; (+008H)
+ LD A,001H
+ LD (06512H),A
+ INC DE
+ JR L6467 ; (+010H)
+
+L6457: CP 02BH
+ JR NZ,L6467 ; (+00cH)
+ LD A,(0651CH)
+ OR A
+ JR NZ,L6467 ; (+006H)
+ LD A,001H
+ LD (06517H),A
+ INC DE
+L6467: DEC DE
+ LD A,H
+ LD (064F9H),A
+ JR L64A1 ; (+033H)
+
+L646E: LD A,H
+ LD (064F9H),A
+ LD H,0FFH
+L6474: INC H
+ LD A,(DE)
+ INC DE
+ CP 023H
+ JR Z,L6474 ; (-007H)
+ CP 02DH
+ JR NZ,L6487 ; (+008H)
+ LD A,001H
+ LD (06512H),A
+ INC DE
+ JR L6497 ; (+010H)
+
+L6487: CP 02BH
+ JR NZ,L6497 ; (+00cH)
+ LD A,(0651CH)
+ OR A
+ JR NZ,L6497 ; (+006H)
+ LD A,001H
+ LD (06517H),A
+ INC DE
+L6497: DEC DE
+ LD A,H
+ LD (064C2H),A
+ JR L64A1 ; (+003H)
+
+L649E: POP DE
+ JR L64B3 ; (+012H)
+
+L64A1: LD H,004H
+ PUSH DE
+L64A4: LD A,(DE)
+ INC DE
+ CP 05EH
+ JR NZ,L649E ; (-00cH)
+ DEC H
+ JR NZ,L64A4 ; (-009H)
+ POP AF
+ LD A,001H
+ LD (064C5H),A
+L64B3: POP HL
+ PUSH DE
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ LD (06549H),A
+ LD A,(064F9H)
+ LD D,A
+ LD A,000H
+ LD E,A
+ LD A,000H
+ PUSH BC
+ CALL L65BE
+ POP BC
+ LD A,000H
+ OR A
+ JR Z,L6511 ; (+041H)
+ PUSH BC
+ PUSH DE
+ LD A,(064F9H)
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ LD DE,L849C
+ LD C,000H
+ DEC HL
+L64DF: LD B,003H
+L64E1: LD A,(HL)
+ CP 020H
+ JR Z,L64F8 ; (+012H)
+ INC C
+ LD (DE),A
+ INC DE
+ DEC HL
+ DJNZ L64E1 ; (-00bH)
+ LD A,(HL)
+ CP 020H
+ JR Z,L64F8 ; (+007H)
+ LD A,02CH
+ LD (DE),A
+ INC DE
+ INC C
+ JR L64DF ; (-019H)
+
+L64F8: LD A,000H
+ CP C
+ JP C,04AEFH
+ LD B,C
+ LD L,A
+ LD H,000H
+ POP DE
+ PUSH DE
+ ADD HL,DE
+ LD DE,L849C
+ DEC HL
+L6509: LD A,(DE)
+ LD (HL),A
+ DEC HL
+ INC DE
+ DJNZ L6509 ; (-006H)
+ POP DE
+ POP BC
+L6511: LD A,000H
+ OR A
+ JR NZ,L6553 ; (+03dH)
+ LD A,000H
+ OR A
+ JR NZ,L6553 ; (+038H)
+ LD A,000H
+ OR A
+ JR NZ,L6548 ; (+028H)
+ LD A,(06549H)
+ RLCA
+ JR NC,L6553 ; (+02dH)
+ LD A,(DE)
+ CP 020H
+ LD H,02DH
+ JR Z,L6532 ; (+005H)
+ CP 030H
+ JP NZ,04AEFH
+L6532: PUSH DE
+L6533: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L6533 ; (-006H)
+ CP 030H
+ JR Z,L6533 ; (-00aH)
+ OR A
+ JR NZ,L6541 ; (+001H)
+ DEC DE
+L6541: DEC DE
+ DEC DE
+ LD A,H
+ LD (DE),A
+ POP DE
+ JR L6553 ; (+00bH)
+
+L6548: LD A,000H
+ RLCA
+ LD H,02BH
+ JR NC,L6532 ; (-01dH)
+ LD H,02DH
+ JR L6532 ; (-021H)
+
+L6553: DB 03EH ; LD A,nn opcode (self-modifying: operand at L6554)
+L6554: DB 000H ; Operand byte — patched by LD (L6554),A
+ OR A
+ JR Z,L656B ; (+013H)
+ LD A,(DE)
+ CP 020H
+ JR NZ,L656B ; (+00eH)
+ PUSH DE
+L655E: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L655E ; (-006H)
+ DEC DE
+ DEC DE
+ LD A,(L6554)
+ LD (DE),A
+ POP DE
+L656B: LD A,000H
+ OR A
+ JR Z,L657D ; (+00dH)
+ PUSH DE
+L6571: LD A,(DE)
+ CP 020H
+ JR NZ,L657C ; (+006H)
+ LD A,02AH
+ LD (DE),A
+ INC DE
+ JR L6571 ; (-00bH)
+
+L657C: POP DE
+L657D: LD A,(DE)
+ OR A
+ JR Z,L6586 ; (+005H)
+ LD (BC),A
+ INC BC
+ INC DE
+ JR L657D ; (-009H)
+
+L6586: LD A,(06517H)
+ OR A
+ JR Z,L659A ; (+00eH)
+ LD A,(06549H)
+ RLCA
+ LD A,02BH
+L6592: JR NC,L6596 ; (+002H)
+ LD A,02DH
+L6596: LD (BC),A
+ INC BC
+ JR L65A8 ; (+00eH)
+
+L659A: LD A,(06512H)
+ OR A
+ JR Z,L65A8 ; (+008H)
+ LD A,(06549H)
+ RLCA
+ LD A,020H
+ JR L6592 ; (-016H)
+
+L65A8: POP HL
+ JP L6344
+
+L65AC: PUSH HL
+ LD HL,L0036
+ BIT 6,(HL)
+ POP HL
+ JR NZ,L65B8 ; (+003H)
+ CP 07DH
+ RET
+
+L65B8: CP FDPD
+ RET Z
+ CP 024H
+ RET
+
+L65BE: OR A
+ JP Z,L6649
+ PUSH DE
+ LD A,(HL)
+ OR A
+ JR Z,L6606 ; (+03fH)
+ PUSH HL
+ LD A,D
+ LD DE,L84D7
+ PUSH AF
+ CALL L5E90
+ POP AF
+ OR A
+ JR Z,L65DF ; (+00bH)
+ LD B,A
+ LD HL,L84D7
+ JR L65DD ; (+003H)
+
+L65DA: CALL L60AA
+L65DD: DJNZ L65DA ; (-005H)
+L65DF: POP HL
+ LD B,000H
+L65E2: LD DE,L84D7
+ CALL L6049
+ JR C,L65F0 ; (+006H)
+ CALL L5FFE
+ INC B
+ JR L65E2 ; (-00eH)
+
+L65F0: PUSH HL
+ LD HL,L84D7
+ CALL L5FFE
+ POP HL
+L65F8: LD DE,L84D7
+ CALL L6049
+ JR NC,L6606 ; (+006H)
+ CALL L60AA
+ DEC B
+ JR L65F8 ; (-00eH)
+
+L6606: POP DE
+ PUSH BC
+ CALL L6663
+ POP BC
+ PUSH DE
+ LD A,(DE)
+ CP 02EH
+ JR NZ,L6624 ; (+012H)
+ LD DE,L84AC
+ DEC DE
+ LD A,(DE)
+ CP 031H
+ POP DE
+ PUSH DE
+ JR NZ,L6640 ; (+023H)
+ EX DE,HL
+ INC HL
+ LD (HL),031H
+ DEC HL
+ JR L663E ; (+01aH)
+
+L6624: LD A,(DE)
+ CP 031H
+ JR NZ,L6640 ; (+017H)
+ EX DE,HL
+ INC HL
+ LD A,(HL)
+ DEC HL
+ CP 02EH
+ LD A,030H
+ JR Z,L6635 ; (+002H)
+ LD A,020H
+L6635: LD (HL),A
+L6636: INC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L6636 ; (-006H)
+ LD (HL),031H
+L663E: EX DE,HL
+ INC B
+L6640: LD A,(DE)
+ INC DE
+ OR A
+ JR NZ,L6640 ; (-005H)
+ DEC DE
+ JP L615C
+
+L6649: PUSH DE
+ CALL L6663
+ POP AF
+ OR A
+ RET NZ
+ PUSH HL
+ LD HL,L84AC
+ DEC HL
+ LD A,030H
+ CP (HL)
+L6658: JP NZ,04AEFH
+ DEC HL
+ LD A,020H
+ CP (HL)
+ JR NZ,L6658 ; (-009H)
+ POP HL
+ RET
+
+L6663: PUSH DE
+ CALL L61AD
+ JP C,04AEFH
+ POP HL
+ PUSH HL
+ LD H,000H
+ INC L
+ JR Z,L6672 ; (+001H)
+ DEC L
+L6672: LD DE,L84AD
+ ADD HL,DE
+ LD A,(HL)
+ LD (HL),000H
+ LD DE,L3036
+ CP 035H
+ JR C,L668F ; (+00fH)
+L6680: DEC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L6680 ; (-006H)
+ INC A
+ JP Z,04AEFH
+ LD (HL),A
+ CP 03AH
+ JR Z,0667AH ; (-015H)
+L668F: LD HL,KEYBM1
+ LD DE,L2000
+L6695: LD (HL),D
+ INC HL
+ DEC E
+ JR NZ,L6695 ; (-005H)
+ POP HL
+ PUSH HL
+ LD E,H
+ LD D,000H
+ LD HL,KEYBUF
+ ADD HL,DE
+ PUSH HL
+ LD HL,L84A3
+ LD (HL),020H
+ INC HL
+ LD D,007H
+L66AC: LD A,(HL)
+ CP 030H
+ JR NZ,L66B7 ; (+006H)
+ LD (HL),020H
+ INC HL
+ DEC D
+ JR NZ,L66AC ; (-00bH)
+L66B7: POP HL
+ PUSH HL
+ LD B,E
+ LD A,B
+ OR A
+ JR Z,L66D5 ; (+017H)
+ LD DE,L84AC
+L66C1: DEC HL
+ DEC DE
+ LD A,(DE)
+ LD (HL),A
+ CP 020H
+ JR Z,L66D5 ; (+00cH)
+ DJNZ L66C1 ; (-00aH)
+ DEC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L66D5 ; (+004H)
+ INC A
+ JP NZ,04AEFH
+L66D5: POP HL
+ POP DE
+ INC E
+ JR Z,L66E9 ; (+00fH)
+ LD B,E
+ LD DE,L84AD
+ LD (HL),02EH
+L66E0: INC HL
+ DEC B
+ JR Z,L66E9 ; (+005H)
+ LD A,(DE)
+ INC DE
+ LD (HL),A
+ JR L66E0 ; (-009H)
+
+L66E9: LD (HL),000H
+ LD DE,KEYBUF
+ RET
+
+L66EF: PUSH DE
+ PUSH BC
+ LD C,000H
+ DEC DE
+L66F4: INC DE
+L66F5: CALL L687B
+ OR A
+ JR Z,L672C ; (+031H)
+ CP 0FFH
+ JR Z,L6730 ; (+031H)
+ CP 060H
+ JP NC,L4AEC
+ CP 020H
+ JR C,L66F4 ; (-014H)
+ LD IX,L66F5
+ PUSH IX
+ CP 022H
+ JR Z,L674B ; (+039H)
+ CP 027H
+ JR Z,L673E ; (+028H)
+ CP 03FH
+ JR Z,L6737 ; (+01dH)
+ CP 02EH
+ JP Z,L689E
+ CP 024H
+ JP Z,L68B8
+ CALL L5EC4
+ JR C,L6773 ; (+04aH)
+ JP L6885
+
+L672C: LD (HL),A
+ POP BC
+ POP DE
+ RET
+
+L6730: LD (HL),LSE4
+ CALL L6757
+ JR L66F5 ; (-042H)
+
+L6737: LD A,08FH
+ CALL L6756
+ JR L67B4 ; (+076H)
+
+L673E: LD (HL),03AH
+ CALL L6757
+ LD (HL),027H
+ CALL L6758
+ JP L681B
+
+L674B: LD (HL),A
+ CALL L6757
+L674F: LD A,(DE)
+ OR A
+ RET Z
+ CP 022H
+ JR NZ,L674B ; (-00bH)
+L6756: LD (HL),A
+L6757: INC DE
+L6758: INC HL
+L6759: INC C
+ RET NZ
+ JP 04B01H
+
+L675E: POP BC
+ LD A,(DE)
+ CALL L5ECB
+ JR C,L6756 ; (-00fH)
+L6765: CALL L6756
+ LD A,(DE)
+ CP 024H
+ JR Z,L6756 ; (-017H)
+ CALL L5EC4
+ RET C
+ JR L6765 ; (-00eH)
+
+L6773: PUSH BC
+ LD BC,STMTWORDTBL
+ CALL L682A
+ JR NC,L67AA ; (+02eH)
+ LD BC,EXTWORDTBL
+ CALL L682A
+ LD C,0FEH
+ JR NC,L6790 ; (+00aH)
+ LD BC,FUNCWORDTBL
+ CALL L682A
+ LD C,0FFH
+ JR C,L675E ; (-032H)
+L6790: LD (HL),C
+ INC HL
+ LD (HL),A
+ POP BC
+ CALL L6759
+ CALL L6758
+ CP 0B4H
+ RET NZ
+ CALL L687B
+ CP 03DH
+ RET NZ
+ LD (HL),QDPC
+ CALL L6757
+ JR L67F0 ; (+046H)
+
+L67AA: POP BC
+ CP 0DFH
+ DB 020H
+ LD (BC),A
+ LD (HL),0A8H
+ CALL L6758
+L67B4: CP 097H
+ JR Z,L681B ; (+063H)
+ CP 094H
+ JR Z,L681B ; (+05fH)
+ CP 0C2H
+ JR Z,L6811 ; (+051H)
+ CP LSE2
+ JR Z,L67F0 ; (+02cH)
+ CP LSE0
+ RET NC
+ PUSH AF
+ CALL L687B
+ CP 02FH
+ JR NZ,L67DC ; (+00dH)
+ LD (HL),FDPD
+ CALL L6757
+ CALL L6A1D
+ CALL L6756
+ JR L67EC ; (+010H)
+
+L67DC: CP 023H
+ JR NZ,L67EC ; (+00cH)
+ CALL L6756
+ CALL L6A1D
+ CALL L5EC4
+ CALL NC,L6885
+L67EC: POP AF
+ CP 08DH
+ RET NC
+L67F0: CALL L687B
+ CP 022H
+ JR NZ,L67FC ; (+005H)
+ CALL L674B
+ JR L67F0 ; (-00cH)
+
+L67FC: CP 02CH
+ RET C
+ CP 02FH
+ JR C,L680C ; (+009H)
+ CALL L5EC4
+ RET C
+ CALL L68AF
+ JR L67F0 ; (-01cH)
+
+L680C: CALL L6756
+ JR L67F0 ; (-021H)
+
+L6811: DEC HL
+ LD (HL),03AH ; Store ':' at previous position
+ INC HL
+ LD (HL),A
+ CALL L6758
+ JR L67F0 ; (-02bH)
+
+L681B: LD A,(DE)
+ CALL L4141
+ RET Z
+ CALL L6756
+ CP 022H
+ CALL Z,L674F
+ JR L681B ; (-00fH)
+
+L682A: PUSH HL
+ PUSH DE
+ LD H,B
+ LD L,C
+ LD B,07FH
+L6830: POP DE
+ PUSH DE
+ INC B
+ LD A,(HL)
+ CP 0FFH
+ JR NZ,L683C ; (+004H)
+ POP DE
+ POP HL
+ SCF
+ RET
+
+L683C: CP 02EH
+ JR NZ,L6849 ; (+009H)
+ INC HL
+ DEC DE
+ LD A,(DE)
+ INC DE
+ CALL L5ECB
+ JR NC,L6868 ; (+01fH)
+L6849: LD A,(DE)
+ CP 020H
+ JR NZ,L685A ; (+00cH)
+ LD A,(HL)
+ AND 07FH
+ SUB 041H
+ CP 01AH
+ JR C,L6868 ; (+011H)
+ CALL L6A1C
+L685A: LD C,(HL)
+ INC HL
+ INC DE
+ CP 02EH
+ JR Z,L6870 ; (+00fH)
+ SUB C
+ JR Z,L6849 ; (-01bH)
+ CP 080H
+ JR Z,L6876 ; (+00eH)
+L6868: DEC HL
+L6869: BIT 7,(HL)
+ INC HL
+ JR Z,L6869 ; (-005H)
+ JR L6830 ; (-040H)
+
+L6870: LD A,B
+ CP 0E8H
+ JR NC,L6868 ; (-00dH)
+ CCF
+L6876: POP HL
+ POP HL
+ LD (HL),B
+ LD A,B
+ RET
+
+L687B: LD A,(DE)
+ CP 020H
+ RET NZ
+ LD (HL),A
+ CALL L6757
+ JR L687B ; (-00aH)
+
+L6885: EX AF,AF'
+ PUSH DE
+ CALL L6A1C
+ POP DE
+ CALL L5EC4
+ JR NC,L689E ; (+00eH)
+ CP 02EH
+ JR Z,L689E ; (+00aH)
+ CP 045H
+ JR Z,L689E ; (+006H)
+ EX AF,AF'
+ SUB 02FH
+ JP L689E
+
+L689E: PUSH BC
+ LD (HL),015H
+ INC HL
+ PUSH HL
+ CALL L5EDC
+ POP HL
+ LD BC,00005H
+ ADD HL,BC
+ LD A,006H
+ JR L68D2 ; (+023H)
+
+L68AF: PUSH BC
+ CALL L6A11
+ LD (HL),00BH
+ INC HL
+ JR L68CC ; (+014H)
+
+L68B8: LD (HL),A
+ INC DE
+ LD A,(DE)
+ RST 018H
+ DB 015H
+ JP C,L6758
+ PUSH BC
+ LD (HL),011H
+ INC HL
+ PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 014H
+ LD B,D
+ LD C,E
+ EX DE,HL
+ POP HL
+L68CC: LD A,003H
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+L68D2: POP BC
+ ADD A,C
+ JP C,04B01H
+ LD C,A
+L68D8: DEC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L68D8 ; (-006H)
+ INC DE
+ RET
+
+L68E0: PUSH HL
+ PUSH DE
+ PUSH BC
+ EXX
+ LD B,000H
+ EXX
+ LD C,000H
+L68E9: LD A,(HL)
+ OR A
+ JR Z,L691D ; (+030H)
+ LD BC,L68E9
+ PUSH BC
+ CP 027H
+ JR Z,L6937 ; (+042H)
+ INC HL
+ LD BC,STMTWORDTBL
+ CP 020H
+ JR C,L695F ; (+062H)
+ CP 022H
+ JR Z,L6948 ; (+047H)
+ CP 03AH
+ JR Z,L6955 ; (+050H)
+ CP 097H
+ JR Z,L6933 ; (+02aH)
+ CP 094H
+ JR Z,L6933 ; (+026H)
+ CP LSE4
+ JR Z,L6922 ; (+011H)
+ CP 0FEH
+ JR NC,L6927 ; (+012H)
+ CP 080H
+ JP NC,L69A3
+ JP L69C0
+
+L691D: LD (DE),A
+ POP BC
+ POP DE
+ POP HL
+ RET
+
+L6922: LD A,0FFH
+ JP L69C0
+
+L6927: LD BC,FUNCWORDTBL
+ JR NZ,L692F ; (+003H)
+ LD BC,EXTWORDTBL
+L692F: LD A,(HL)
+ INC HL
+ JR L69A3 ; (+070H)
+
+L6933: CALL L69A3
+ RET Z
+L6937: LD A,(HL)
+ CALL L4141
+ RET Z
+ CALL L69C0
+ LD A,(HL)
+ INC HL
+ CP 022H
+ CALL Z,L694B
+ JR L6937 ; (-011H)
+
+L6948: CALL L69C0
+L694B: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ JR NZ,L6948 ; (-00bH)
+ JR L69C0 ; (+06bH)
+
+L6955: LD (DE),A
+ LD A,(HL)
+ CP 0C2H
+ RET Z
+ CP 027H
+ RET Z
+ JR L69C3 ; (+064H)
+
+L695F: CP 015H
+ JR Z,L6993 ; (+030H)
+ CP 00BH
+ JR NC,L696C ; (+005H)
+ DEC A
+ OR 030H
+ JR L69C0 ; (+054H)
+
+L696C: PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ PUSH HL
+ CP 012H
+ JR Z,L6982 ; (+00cH)
+ CP 00CH
+ JR C,L6982 ; (+008H)
+ JR NZ,L69CF ; (+053H)
+ EX DE,HL
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L6982: EX DE,HL
+ CALL L5E66
+ LD B,D
+ LD C,E
+ POP HL
+ POP DE
+L698A: LD A,(BC)
+ OR A
+ RET Z
+ CALL L69C0
+ INC BC
+ JR L698A ; (-009H)
+
+L6993: PUSH HL
+ PUSH DE
+ CALL L621B
+ LD B,D
+ LD C,E
+ POP DE
+ POP HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ JR L698A ; (-019H)
+
+L69A3: CP 080H
+ JR Z,L69B1 ; (+00aH)
+ EX AF,AF'
+L69A8: LD A,(BC)
+ RLCA
+ INC BC
+ JR NC,L69A8 ; (-005H)
+ EX AF,AF'
+ DEC A
+ JR L69A3 ; (-00eH)
+
+L69B1: LD A,(BC)
+ BIT 7,A
+ JR NZ,L69BE ; (+008H)
+ CP 02EH
+ CALL NZ,L69C0
+ INC BC
+ JR L69B1 ; (-00dH)
+
+L69BE: AND 07FH
+L69C0: LD (DE),A
+ OR A
+ RET Z
+L69C3: INC DE
+ EXX
+ INC B
+ EXX
+ RET NZ
+ XOR A
+ LD (DE),A
+ DEC DE
+ EXX
+ DEC B
+ EXX
+ RET
+
+L69CF: LD A,024H
+ EX AF,AF'
+ EX DE,HL
+ CALL L69E0
+ LD B,D
+ LD C,E
+ POP HL
+ POP DE
+ EX AF,AF'
+ CALL L69C0
+ JR L698A ; (-056H)
+
+L69E0: LD DE,L84A8
+ PUSH DE
+ LD A,H
+ CALL L69F9
+ LD A,L
+ CALL L69F9
+ XOR A
+ LD (DE),A
+ POP DE
+ LD B,003H
+L69F1: LD A,(DE)
+ CP 030H
+ RET NZ
+ INC DE
+ DJNZ L69F1 ; (-007H)
+ RET
+
+L69F9: PUSH AF
+ RRCA
+ RRCA
+ RRCA
+ RRCA
+ AND 00FH
+ CALL L6A06
+ POP AF
+ AND 00FH
+L6A06: ADD A,030H
+ CP 03AH
+ JR C,L6A0E ; (+002H)
+ ADD A,007H
+L6A0E: LD (DE),A
+ INC DE
+ RET
+
+L6A11: PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 013H
+ LD B,D
+ LD C,E
+ EX DE,HL
+ POP HL
+ JP L68D8
+
+L6A1C: INC DE
+L6A1D: LD A,(DE)
+ CP 020H
+ JR Z,L6A1C ; (-006H)
+ RET
+
+L6A23: LD C,(HL)
+L6A24: CALL L6A2C
+ XOR A
+ LD (LPOSB),A
+ RET
+
+L6A2C: LD A,(L004D)
+ OR A
+ JP NZ,L4B3C
+ CALL TEST1
+ DB 047H
+ JR Z,L6A7C ; (+043H)
+ CALL TESTX
+ DB 054H
+ LD A,001H
+ LD (PNMODE),A
+ CALL TEST1
+ DB 04EH
+ JR Z,L6A52 ; (+00aH)
+ CALL TEST1
+ DB 04CH
+ JR Z,L6A52 ; (+004H)
+ CALL TESTX
+ DB 053H
+L6A52: LD (L6A23),A
+ CALL 05E48H
+ CALL L6A74
+L6A5B: LD A,001H
+ RST 018H
+ DB 006H
+ LD A,(L6A23)
+ CP 04EH
+ RET Z
+ CP 04CH
+ LD A,00BH
+ JR Z,L6A71 ; (+006H)
+ LD A,009H
+ RST 018H
+ DB 006H
+ RST 018H
+ DB 006H
+L6A71: RST 018H
+ DB 006H
+ RET
+
+L6A74: LD A,00AH
+ RST 018H
+ DB 006H
+ LD A,003H
+ JR L6A71 ; (-00bH)
+
+L6A7C: INC HL
+ CALL 05E48H
+ LD A,002H
+ LD (PNMODE),A
+ JR L6A71 ; (-016H)
+
+L6A87: CALL L6AC6
+ CALL L6E5F
+ LD A,E
+ OR A
+ RET Z
+ CP 0ECH
+ JR NC,L6A99 ; (+005H)
+ CP 015H
+ JP NC,04AF2H
+L6A99: CALL 05E48H
+ BIT 7,E
+ JR NZ,L6AA8 ; (+008H)
+L6AA0: LD A,00AH
+ RST 018H
+ DB 006H
+ DEC E
+ JR NZ,L6AA0 ; (-007H)
+ RET
+
+L6AA8: LD A,003H
+ RST 018H
+ DB 006H
+ INC E
+ JR NZ,L6AA8 ; (-007H)
+ RET
+
+L6AB0: PUSH HL
+ LD HL,L03E7
+ JR L6ABA ; (+004H)
+
+L6AB6: PUSH HL
+ LD HL,L01E0
+L6ABA: PUSH HL
+ ADD HL,DE
+ POP HL
+ JR C,L6AC4 ; (+005H)
+ SBC HL,DE
+ JP C,04AF2H
+L6AC4: POP HL
+ RET
+
+L6AC6: LD B,001H
+ JR L6ACC ; (+002H)
+
+L6ACA: LD B,002H
+L6ACC: LD A,(PNMODE)
+ CP B
+ RET Z
+ JP L4B3C
+
+L6AD4: LD C,044H
+ LD DE,04A0EH
+ LD DE,04D0EH
+ LD DE,0520EH
+ CALL L6ACA
+ LD A,C
+ LD (06B26H),A
+ CP 04DH
+ JR NC,L6B0C ; (+022H)
+ CALL TEST1
+ DB 025H
+ JR NZ,L6B0C ; (+01cH)
+ CALL L6E4B
+ LD A,E
+ DEC A
+ CP 010H
+ JP NC,04AF2H
+ DEC DE
+ LD A,04CH
+ RST 018H
+ DB 006H
+ CALL L6DE2
+ CALL L6B68
+ CALL L413E
+ RET Z
+ CALL L5E73
+L6B0C: CALL L6E5F
+ CALL L5E73
+ CALL L6AB6
+ PUSH DE
+ CALL L6E5F
+ CP 02CH
+ JR Z,L6B20 ; (+003H)
+ CALL 05E48H
+L6B20: CALL L6AB0
+ POP BC
+ PUSH DE
+ LD A,000H
+ RST 018H
+ DB 006H
+ LD E,C
+ LD D,B
+ CALL L6DE2
+ CALL L6B6C
+ POP DE
+ CALL L6DE2
+ CALL L6B68
+ CALL L413E
+ RET Z
+ INC HL
+ JR L6B0C ; (-033H)
+
+L6B3F: CALL L6E4B
+ LD A,E
+ CP 004H
+ JP NC,04AF2H
+ CALL 05E48H
+ LD A,(PNMODE)
+ CP 002H
+ JR Z,L6B5F ; (+00dH)
+ CALL L6A74
+ LD A,002H
+ RST 018H
+ DB 006H
+ CALL L6B5F
+ JP L6A5B
+
+L6B5F: LD A,043H
+ RST 018H
+ DB 006H
+ LD A,E
+ OR 030H
+ RST 018H
+ DB 006H
+L6B68: LD A,00DH
+ JR L6B6E ; (+002H)
+
+L6B6C: LD A,02CH
+L6B6E: RST 018H
+ DB 006H
+ RET
+
+L6B71: CALL L6ACA
+ CALL 05E48H
+ LD A,048H
+ JR L6B6E ; (-00dH)
+
+L6B7B: CALL L6ACA
+ CALL 05E48H
+ LD A,049H
+ JR L6B6E ; (-017H)
+
+L6B85: CALL L6ACA
+ CALL TEST1
+ DB 05BH
+ JR NZ,L6BC6 ; (+038H)
+ CALL L6E4B
+ CP 040H
+ JP NC,04AF2H
+ PUSH DE
+ CALL L5E70
+ CALL L6E4B
+ CP 004H
+ JP NC,04AF2H
+ PUSH DE
+ CALL TESTX
+ DB 05DH
+ POP BC
+ POP DE
+ PUSH BC
+ LD A,053H
+ RST 018H
+ DB 006H
+ CALL L6DE2
+ CALL L6B6C
+ POP DE
+ LD A,051H
+ RST 018H
+ DB 006H
+ CALL L6DE2
+ CALL L6B68
+ CALL L413E
+ RET Z
+ CALL L5E73
+L6BC6: CALL L6E6F
+ CALL L413E
+ JR Z,L6BD2 ; (+004H)
+ CALL L5E73
+ DEC HL
+L6BD2: LD A,B
+ OR A
+ JR Z,L6BE3 ; (+00dH)
+ LD A,050H
+ RST 018H
+ DB 006H
+L6BDA: LD A,(DE)
+ RST 018H
+ DB 006H
+ INC DE
+ DJNZ L6BDA ; (-006H)
+ CALL L6B68
+L6BE3: CALL L413E
+ RET Z
+ INC HL
+ JR L6BC6 ; (-024H)
+
+L6BEA: CALL L6ACA
+ CALL L6E4B
+ CP 002H
+ JP NC,04AF2H
+ PUSH AF
+ CALL L5E70
+ CALL L6E5F
+ PUSH DE
+ CALL L5E73
+ CALL L6E4B
+ OR A
+ JP Z,04AF2H
+ CALL 05E48H
+ LD A,058H
+ RST 018H
+ DB 006H
+ POP BC
+ POP AF
+ PUSH DE
+ PUSH BC
+ OR 030H
+ RST 018H
+ DB 006H
+ CALL L6B6C
+ POP DE
+ CALL L6AB0
+ CALL L6DE2
+ CALL L6B6C
+ POP DE
+ CALL L6DE2
+ JP L6B68
+
+L6C2A: CALL L6ACA
+ PUSH HL
+ LD DE,L0000
+ LD HL,L6DC4
+ CALL L5E99
+ LD DE,L0168
+ LD HL,L6DC9
+ CALL L5E99
+ LD HL,L610D
+ LD DE,L6DCE
+ CALL L5E93
+ POP HL
+ CALL L6E8A
+ CALL L5E73
+ PUSH HL
+ LD HL,L6DB5
+ EX DE,HL
+ CALL L5E93
+ POP HL
+ CALL L6E8A
+ CALL L5E73
+ PUSH HL
+ LD HL,L6DBA
+ EX DE,HL
+ CALL L5E93
+ POP HL
+ CALL L6E8A
+ PUSH HL
+ PUSH AF
+ LD HL,L6DBF
+ EX DE,HL
+ CALL L5E93
+ LD A,(06DC0H)
+ RLCA
+ JP C,04AF2H
+ POP AF
+ CP 02CH
+ JR NZ,L6CBA ; (+03aH)
+ POP HL
+ INC HL
+ CALL L6E8A
+ PUSH HL
+ PUSH AF
+ LD HL,L6DC4
+ EX DE,HL
+ CALL L5E93
+ POP AF
+ CP 02CH
+ JR NZ,L6CBA ; (+027H)
+ POP HL
+ INC HL
+ CALL L6E8A
+ PUSH HL
+ PUSH AF
+ LD HL,L6DC9
+ EX DE,HL
+ CALL L5E93
+ POP AF
+ CP 02CH
+ JR NZ,L6CBA ; (+014H)
+ POP HL
+ INC HL
+ CALL L6E8A
+ PUSH HL
+ LD HL,L6DCE
+ EX DE,HL
+ CALL L5E93
+ LD A,(06DCFH)
+ RLCA
+ JP C,04AF2H
+L6CBA: POP HL
+ CALL 05E48H
+ PUSH HL
+ LD HL,L6DC9
+ LD DE,L6DC4
+ LD A,(L6DCE)
+ OR A
+ CALL NZ,L7A1C
+ JP C,04AF2H
+ CALL L6D6B
+ LD HL,L6DD3
+ LD (06D43H),HL
+ LD HL,L6DD8
+ LD (06D4EH),HL
+ CALL 06D3FH
+ LD A,(L6DCE)
+ OR A
+ JR Z,L6D19 ; (+032H)
+L6CE7: LD HL,L6DC4
+ LD DE,L6DCE
+ CALL L7985
+ LD DE,L6DC9
+ CALL L7A1C
+ JR NC,L6D04 ; (+00cH)
+ CALL L6D6B
+ CALL L6D3C
+ RST 018H
+ DB 00EH
+ JR NZ,L6CE7 ; (-01bH)
+ POP HL
+ RET
+
+L6D04: CALL L6D0C
+ CALL L6D3C
+ POP HL
+ RET
+
+L6D0C: LD HL,L6DC9
+ LD DE,L6DC4
+ LD BC,00005H
+ LDIR
+ JR L6D6B ; (+052H)
+
+L6D19: LD HL,L6DB5
+ LD (06D43H),HL
+ LD HL,L6DBA
+ LD (06D4EH),HL
+ CALL L6D3C
+ CALL L6D0C
+ LD HL,L6DD3
+ LD (06D43H),HL
+ LD HL,L6DD8
+ LD (06D4EH),HL
+ CALL L6D3C
+ POP HL
+ RET
+
+L6D3C: LD A,044H
+ LD HL,L4D3E
+ PUSH AF
+ LD HL,L6DB5
+ CALL L60B7
+ PUSH HL
+ EX DE,HL
+ CALL L6AB0
+ LD HL,L6DBA
+ CALL L60B7
+ PUSH HL
+ EX DE,HL
+ CALL L6AB0
+ POP HL
+ POP DE
+ POP AF
+ RST 018H
+ DB 006H
+ PUSH HL
+ CALL L6DE2
+ CALL L6B6C
+ POP DE
+ CALL L6DE2
+ JP L6B68
+
+L6D6B: LD DE,(INTFAC)
+ LD HL,L6DC4
+ CALL L5E93
+ LD HL,(INTFAC)
+ CALL L817C
+ CALL L7FC2
+ LD DE,L6DBF
+ CALL L7BB3
+ LD DE,L6DB5
+ CALL L7985
+ LD DE,L6DD3
+ CALL L5E93
+ LD DE,(INTFAC)
+ LD HL,L6DC4
+ CALL L5E93
+ LD HL,(INTFAC)
+ CALL L817C
+ CALL L7FD2
+ LD DE,L6DBF
+ CALL L7BB3
+ LD DE,L6DBA
+ CALL L7985
+ LD DE,L6DD8
+ JP L5E93
+
+L6DB5: DS 5, 000H
+L6DBA: DS 5, 000H
+L6DBF: DS 5, 000H
+L6DC4: DS 5, 000H
+L6DC9: DS 5, 000H
+L6DCE: DS 5, 000H
+L6DD3: DS 5, 000H
+L6DD8: DS 10, 000H
+L6DE2: PUSH AF
+ PUSH HL
+ LD HL,(INTFAC)
+ CALL L5E99
+ CALL L6028
+ RST 018H
+ DB 017H
+L6DEF: LD A,(DE)
+ RST 018H
+ DB 006H
+ INC DE
+ DJNZ L6DEF ; (-006H)
+ POP HL
+ POP AF
+ RET
+
+L6DF8: CALL L6AC6
+ CALL 05E48H
+ LD A,004H
+ RST 018H
+ DB 006H
+ RET
+
+L6E03: CALL L6AC6
+ CALL L6E5F
+ LD A,E
+ OR A
+ JP Z,04AF2H
+ CP 049H
+ JP NC,04AF2H
+ CALL 05E48H
+ LD A,009H
+ RST 018H
+ DB 006H
+ RST 018H
+ DB 006H
+ CALL L6DE2
+ JP L6B68
+
+L6E22: CP 09DH
+ JR Z,L6E31 ; (+00bH)
+ CP 0A1H
+ JP NZ,L4AEC
+ XOR A
+L6E2C: LD (L004D),A
+ INC HL
+ RET
+
+L6E31: CALL L6AC6
+ LD A,(L6A23)
+ CP 04EH
+ JP NZ,L4B3C
+ LD A,(L004D)
+ OR A
+ JR NZ,L6E2C ; (-016H)
+ CALL L5285
+ LD A,016H
+ RST 018H
+ DB 003H
+ JR L6E2C ; (-01fH)
+
+L6E4B: CALL L6E5F
+L6E4E: LD A,D
+ OR A
+ JP NZ,04AF2H
+ LD A,E
+ RET
+
+L6E55: CALL L6E9C
+ DEC DE
+ DEC DE
+ DEC DE
+ DEC DE
+ DEC DE
+ JR L6E62 ; (+003H)
+
+L6E5F: CALL L6E8A
+L6E62: PUSH AF
+ PUSH HL
+ EX DE,HL
+ CALL L791F
+ CALL L60B7
+ EX DE,HL
+ POP HL
+ POP AF
+ RET
+
+L6E6F: CALL L6E8A
+ PUSH AF
+ CALL L7916
+ PUSH HL
+ EX DE,HL
+ CALL L6E7E
+ POP HL
+ POP AF
+ RET
+
+L6E7E: LD B,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(STRST)
+ ADD HL,DE
+ EX DE,HL
+ LD A,B
+ RET
+
+L6E8A: LD DE,(VARED)
+ LD (TMPEND),DE
+L6E92: LD DE,(INTFAC)
+ PUSH DE
+ CALL L6E9C
+ POP DE
+ RET
+
+L6E9C: PUSH DE
+ LD DE,(TMPEND)
+ CALL L74E8
+ POP DE
+ CALL L6EC0
+L6EA8: CP 0EAH
+ RET NZ
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L6EC0
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL 07E65H
+ POP HL
+ POP AF
+ JR L6EA8 ; (-018H)
+
+L6EC0: CALL L6EDB
+L6EC3: CP 0EBH
+ RET NZ
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L6EDB
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL 07E62H
+ POP HL
+ POP AF
+ JR L6EC3 ; (-018H)
+
+L6EDB: CALL L6EF6
+L6EDE: CP 0ECH
+ RET NZ
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L6EF6
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7E5F
+ POP HL
+ POP AF
+ JR L6EDE ; (-018H)
+
+L6EF6: CALL TEST1
+ DB 0EDH
+ JR NZ,L6F0B ; (+00fH)
+ CALL L6F0B
+ PUSH AF
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L7E4F
+ POP HL
+ POP AF
+ RET
+
+L6F0B: CALL L6F75
+L6F0E: CP 0EEH
+ RET C
+ PUSH AF
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L6F75
+ POP BC
+ EX (SP),HL
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7A1C
+ EX AF,AF'
+ POP AF
+ CP 0F6H
+ JR NZ,L6F48 ; (+01eH)
+ EX AF,AF'
+ JR C,L6F43 ; (+016H)
+L6F2D: LD BC,L0000
+L6F30: LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ XOR A
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ LD A,005H
+ LD (L84CE),A
+ POP AF
+ POP HL
+ JR L6F0E ; (-035H)
+
+L6F43: LD BC,08081H
+ JR L6F30 ; (-018H)
+
+L6F48: CP QDPD
+ JR NZ,L6F53 ; (+007H)
+ EX AF,AF'
+ JR Z,L6F2D ; (-022H)
+ JR C,L6F2D ; (-024H)
+ JR L6F43 ; (-010H)
+
+L6F53: CP QDPC
+ JR NZ,L6F5C ; (+005H)
+ EX AF,AF'
+ JR Z,L6F43 ; (-017H)
+ JR L6F2D ; (-02fH)
+
+L6F5C: CP QDPA
+ JR C,L6F65 ; (+005H)
+ EX AF,AF'
+ JR NC,L6F43 ; (-020H)
+ JR L6F2D ; (-038H)
+
+L6F65: CP 0F0H
+ JR C,L6F70 ; (+007H)
+ EX AF,AF'
+ JR Z,L6F43 ; (-029H)
+ JR C,L6F43 ; (-02bH)
+ JR L6F2D ; (-043H)
+
+L6F70: EX AF,AF'
+ JR Z,L6F2D ; (-046H)
+ JR L6F43 ; (-032H)
+
+L6F75: CALL L6FA0
+L6F78: CP 0F7H
+ RET C
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ JR Z,L6F92 ; (+010H)
+ CALL L6FA0
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L797C
+L6F8E: POP HL
+ POP AF
+ JR L6F78 ; (-01aH)
+
+L6F92: CALL L6FA0
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7985
+ JR L6F8E ; (-012H)
+
+L6FA0: CALL L6FCB
+L6FA3: CP FDPB
+ RET C
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ JR Z,L6FBD ; (+010H)
+ CALL L6FCB
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7EBB
+L6FB9: POP HL
+ POP AF
+ JR L6FA3 ; (-01aH)
+
+L6FBD: CALL L6FCB
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7EDA
+ JR L6FB9 ; (-012H)
+
+L6FCB: CALL L6FF6
+L6FCE: CP FDPD
+ RET C
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ JR Z,L6FE8 ; (+010H)
+ CALL L6FF6
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7BB3
+L6FE4: POP HL
+ POP AF
+ JR L6FCE ; (-01aH)
+
+L6FE8: CALL L6FF6
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7C9E
+ JR L6FE4 ; (-012H)
+
+L6FF6: CALL TEST1
+ DB 0F7H
+ JR Z,L6FF6 ; (-006H)
+ CP FDPA
+ JR NZ,L7006 ; (+006H)
+ INC HL
+ CALL L7006
+ JR L702F ; (+029H)
+
+L7006: CALL L703B
+L7009: CP 0FDH
+ RET NZ
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L7021
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7DD3
+ POP HL
+ POP AF
+ JR L7009 ; (-018H)
+
+L7021: CALL TEST1
+ DB 0F7H
+ JR Z,L7021 ; (-006H)
+ CP FDPA
+ JR NZ,L703B ; (+010H)
+ INC HL
+ CALL L703B
+L702F: PUSH AF
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L796F
+ POP HL
+ POP AF
+ RET
+
+L703B: CALL L413E
+ JP Z,L4AEC
+ CALL L7047
+ JP HLFTCH
+
+L7047: PUSH HL
+ LD HL,(MEMLMT)
+ SCF
+ SBC HL,DE
+ JP C,04AFBH
+ POP HL
+ CP LSE4
+ JR Z,L7064 ; (+00eH)
+ CP 020H
+ JR NC,L70A4 ; (+04aH)
+L705A: INC HL
+ CP 015H
+ JR C,L7073 ; (+014H)
+ CALL L5E93
+ JR L706D ; (+009H)
+
+L7064: INC HL
+ PUSH HL
+ LD HL,0818FH
+ CALL L5E93
+ POP HL
+L706D: LD A,005H
+L706F: LD (L84CE),A
+ RET
+
+L7073: CP 00BH
+ JR NC,L7080 ; (+009H)
+ DEC A
+ JP M,L4AEC
+ LD B,000H
+ LD C,A
+ JR L7091 ; (+011H)
+
+L7080: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ CP 00CH
+ JR NZ,L7091 ; (+009H)
+ INC BC
+ INC BC
+ LD A,(BC)
+ INC BC
+ EX AF,AF'
+ LD A,(BC)
+ LD B,A
+ EX AF,AF'
+ LD C,A
+L7091: PUSH HL
+ PUSH DE
+ EX DE,HL
+ LD E,C
+ LD D,B
+ CALL L5E99
+ POP DE
+ POP HL
+ LD A,005H
+L709D: INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ JR L706F ; (-035H)
+
+L70A4: CP 022H
+ JR NZ,L70D7 ; (+02fH)
+ INC HL
+ PUSH HL
+ CALL L74D0
+ EX (SP),HL
+ PUSH HL
+ LD HL,(TMPEND)
+ PUSH BC
+ LD BC,(STRST)
+ OR A
+ SBC HL,BC
+ POP BC
+ EX DE,HL
+ LD (HL),B
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ POP DE
+ PUSH HL
+ LD HL,(TMPEND)
+ CALL L74DC
+ LD (TMPEND),HL
+ POP DE
+ POP HL
+ LD A,003H
+ LD (L84CE),A
+ RET
+
+L70D7: CP 028H
+ JR NZ,L70E2 ; (+007H)
+ INC HL
+ CALL L6E9C
+ JP L5E82
+
+L70E2: OR A
+ JP P,L76F5
+ CP 0E7H
+ INC HL
+ JR NZ,L70F0 ; (+005H)
+ LD A,0A8H
+ PUSH AF
+ JR L7125 ; (+035H)
+
+L70F0: CP 0FFH
+ JP NZ,L4AEC
+ LD A,(HL)
+ INC HL
+ CP 0A0H
+ JP Z,L71A5
+ CP 0C8H
+ JP NC,L4AEC
+ CP 0BAH
+ JR NC,L7155 ; (+050H)
+ PUSH AF
+ CP 0B3H
+ JR NC,L7146 ; (+03cH)
+ LD B,003H
+ CP 0AAH
+ JR Z,L7125 ; (+015H)
+ CP 0ABH
+ JR NC,L7125 ; (+011H)
+ LD B,005H
+ CP 088H
+ JR Z,L7140 ; (+026H)
+ CP 089H
+ JR NZ,L7125 ; (+007H)
+ CALL TEST1
+ DB 040H
+ LD (081A8H),A
+L7125: CALL L5E78
+L7128: PUSH BC
+ CALL L6E9C
+ CALL L5E82
+ POP AF
+ CALL L7912
+L7133: POP AF
+ PUSH DE
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L7155
+ POP HL
+ POP DE
+ RET
+
+L7140: CALL TEST1
+ DB 028H
+ JR Z,L7128 ; (-01eH)
+L7146: LD A,005H
+ LD (L84CE),A
+ PUSH HL
+ LD HL,L6112
+ CALL L5E93
+ POP HL
+ JR L7133 ; (-022H)
+
+L7155: PUSH HL
+ ADD A,A
+ LD L,A
+ LD H,000H
+ LD BC,L450A
+ ADD HL,BC
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ EX (SP),HL
+ RET
+
+L7164: EX DE,HL
+ LD HL,0FDF1H
+ ADD HL,SP
+ LD BC,(TMPEND)
+ OR A
+ SBC HL,BC
+ EX DE,HL
+ JR NC,L7186 ; (+013H)
+ XOR A
+ JR L7183 ; (+00dH)
+
+L7176: LD A,(L0054)
+ JR L7183 ; (+008H)
+
+L717B: LD A,(00055H)
+ JR L7183 ; (+003H)
+
+L7180: LD A,(L8485)
+L7183: LD E,A
+ LD D,000H
+L7186: LD A,005H
+ LD (L84CE),A
+ JP L5E99
+
+L718E: LD DE,(08487H)
+ CALL L5E99
+ INC HL
+ BIT 7,(HL)
+ DEC HL
+ RET Z
+ LD DE,L71A0
+ JP L7985
+
+L71A0: SUB C
+ NOP
+ NOP
+ NOP
+ NOP
+L71A5: CALL L5E78
+ LD B,000H
+L71AA: PUSH BC
+ PUSH DE
+ CALL L6E55
+ CALL L6E4E
+ POP DE
+ POP BC
+ PUSH AF
+ INC B
+ CALL TEST1
+ DB 02CH
+ JR Z,L71AA ; (-012H)
+ CALL L5E82
+ LD A,B
+ EXX
+ LD B,A
+ LD HL,(TMPEND)
+ CALL ADDHLA
+ LD D,H
+ LD E,L
+ CALL L74E8
+L71CD: DEC HL
+ POP AF
+ LD (HL),A
+ DJNZ L71CD ; (-005H)
+ EXX
+ LD A,B
+ EXX
+ LD B,A
+L71D6: LD (TMPEND),DE
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ PUSH HL
+ LD A,B
+ EXX
+ EX DE,HL
+ LD (HL),A
+ INC HL
+ POP BC
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ LD BC,L0003
+ ADD HL,BC
+L71EF: EX DE,HL
+ LD A,003H
+ LD (L84CE),A
+ RET
+
+L71F6: PUSH HL
+ CALL L60B7
+ CALL L69E0
+ RST 018H
+ DB 017H
+L71FF: LD A,B
+ OR A
+ JR Z,L7213 ; (+010H)
+ LD HL,(TMPEND)
+ PUSH HL
+ PUSH BC
+ CALL L74DC
+ POP BC
+ EX DE,HL
+ POP HL
+ EXX
+ POP DE
+ EXX
+ JR L71D6 ; (-03dH)
+
+L7213: POP HL
+ CALL L7967
+ JR L71EF ; (-02aH)
+
+L7219: PUSH HL
+ CALL L722A
+ LD B,A
+ LD C,A
+ OR A
+ LD A,020H
+ PUSH DE
+ CALL NZ,?SETDE
+ POP DE
+ LD B,C
+ JR L71FF ; (-02bH)
+
+L722A: CALL L60B7
+ LD DE,KEYBUF
+ LD A,H
+ OR A
+ JP NZ,04AF2H
+ LD A,L
+ RET
+
+L7237: PUSH HL
+ CALL L6028
+ LD A,(DE)
+ CP 020H
+ JR NZ,L7241 ; (+001H)
+ INC DE
+L7241: RST 018H
+ DB 017H
+ JR L71FF ; (-046H)
+
+L7245: CALL L5E78
+ CALL L5882
+ LD B,A
+ CALL L5E7F
+ LD A,B
+ PUSH HL
+ PUSH DE
+ RST 018H
+ DB 029H
+ LD DE,0FFFFH
+ JR C,L7261 ; (+008H)
+ INC HL
+ BIT 7,(HL)
+ JR NZ,L7261 ; (+003H)
+ LD DE,L0000
+L7261: POP HL
+ CALL L5E99
+ LD A,005H
+ LD (L84CE),A
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ POP HL
+ RET
+
+L7272: PUSH HL
+ CALL L6E7E
+ OR A
+ JR Z,L727A ; (+001H)
+ LD A,(DE)
+L727A: JR L7280 ; (+004H)
+
+L727C: PUSH HL
+ CALL L6E7E
+L7280: POP HL
+ JP L7183
+
+L7284: PUSH HL
+ CALL L6E7E
+ LD HL,(TMPEND)
+ PUSH HL
+ CALL L74DC
+ LD (HL),000H
+ POP DE
+ POP HL
+ JP L5EDC
+
+L7296: CALL L7312
+ CALL L5E82
+ CALL L730B
+ EX DE,HL
+ LD A,(HL)
+ CP C
+ JR NC,L72A5 ; (+001H)
+ LD C,A
+L72A5: LD (HL),C
+ LD BC,00005H
+L72A9: LD A,003H
+ ADD HL,BC
+ EX DE,HL
+ LD (L84CE),A
+ JP HLFTCH
+
+L72B3: CALL L7312
+ CALL L5E82
+ CALL L730B
+ EX DE,HL
+ LD A,(HL)
+ SUB C
+ JR NC,L72C3 ; (+002H)
+ XOR A
+ LD C,(HL)
+L72C3: LD (HL),C
+ INC HL
+ ADD A,(HL)
+ LD (HL),A
+ INC HL
+ JR NC,L72CB ; (+001H)
+ INC (HL)
+L72CB: LD BC,L0003
+ JR L72A9 ; (-027H)
+
+L72D0: CALL L7312
+ CALL L730B
+ OR A
+ JP Z,04AF2H
+ PUSH AF
+ CALL TEST1
+ DB 029H
+ LD A,0FFH
+ JR Z,L72F7 ; (+014H)
+ CALL L5E70
+ PUSH DE
+ EX DE,HL
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ CALL L6E55
+ CALL L5E82
+ CALL L6E4E
+ POP DE
+L72F7: POP BC
+ LD C,A
+ EX DE,HL
+ LD A,(HL)
+ SUB B
+ JR C,L7307 ; (+009H)
+ INC A
+ CP C
+ JR NC,L7303 ; (+001H)
+ LD C,A
+L7303: LD A,B
+ DEC A
+ JR L72C3 ; (-044H)
+
+L7307: XOR A
+ LD C,A
+ JR L72C3 ; (-048H)
+
+L730B: LD A,B
+ OR A
+ JP NZ,04AF2H
+ LD A,C
+ RET
+
+L7312: CALL L5E78
+ PUSH DE
+ CALL L6E9C
+ CALL L5E73
+ CALL L7916
+ CALL L6E55
+ LD C,E
+ LD B,D
+ POP DE
+ RET
+
+L7326: PUSH HL
+ PUSH DE
+ LD HL,(TMPEND)
+ PUSH HL
+ LD A,030H
+ LD B,006H
+ CALL ?SETHL
+ RST 018H
+ DB 025H
+ POP HL
+ OR A
+ JR Z,L733E ; (+005H)
+ INC (HL)
+ INC HL
+ INC (HL)
+ INC (HL)
+ DEC HL
+L733E: EX DE,HL
+ LD BC,08CA0H
+ CALL L73B5
+ LD BC,L0E10
+ CALL L73B5
+ CP 03AH
+ JR C,L7359 ; (+00aH)
+ SUB 00AH
+ DEC DE
+ LD (DE),A
+ DEC DE
+ LD A,(DE)
+ INC A
+ LD (DE),A
+ INC DE
+ INC DE
+L7359: DEC DE
+ DEC DE
+ LD A,(DE)
+ INC DE
+ LD B,A
+ LD A,(DE)
+ INC DE
+ LD C,A
+ LD A,B
+ CP 032H
+ JR NZ,L7377 ; (+011H)
+ LD A,C
+ CP 034H
+ JR NZ,L7377 ; (+00cH)
+ LD HL,(TMPEND)
+ LD A,030H
+ LD B,006H
+ CALL ?SETHL
+ JR L738D ; (+016H)
+
+L7377: LD BC,L0258
+ CALL L73B5
+ LD BC,0003CH
+ CALL L73B5
+ LD BC,0000AH
+ CALL L73B5
+ LD A,030H
+ ADD A,L
+ LD (DE),A
+L738D: LD HL,(TMPEND)
+ LD DE,L0006
+ EX DE,HL
+ ADD HL,DE
+ LD (TMPEND),HL
+ EX DE,HL
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ POP HL
+ LD (HL),006H
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ POP HL
+ LD A,003H
+ LD (L84CE),A
+ JP HLFTCH
+
+L73B5: OR A
+ SBC HL,BC
+ JR C,L73BF ; (+005H)
+ LD A,(DE)
+ INC A
+ LD (DE),A
+ JR L73B5 ; (-00aH)
+
+L73BF: ADD HL,BC
+ INC DE
+ RET
+
+L73C2: CALL TESTX
+ DB QDPC
+ CALL L6E6F
+ LD A,B
+ CP 006H
+ JP NZ,04AF2H
+ PUSH HL
+ PUSH DE
+ LD HL,L0000
+ CALL L7403
+ CP 018H
+ JP NC,04AF2H
+ CP 00CH
+ LD A,000H
+ JR C,L73EB ; (+009H)
+ PUSH DE
+ LD DE,L000C
+ OR A
+ SBC HL,DE
+ POP DE
+ INC A
+L73EB: PUSH AF
+ CALL L7403
+ CP 03CH
+ JP NC,04AF2H
+ CALL L7403
+ CP 03CH
+ JP NC,04AF2H
+ POP AF
+ EX DE,HL
+ RST 018H
+ DB 026H
+ POP DE
+ POP HL
+ RET
+
+L7403: PUSH DE
+ LD D,H
+ LD E,L
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,DE
+ LD D,H
+ LD E,L
+ ADD HL,HL
+ ADD HL,DE
+ ADD HL,HL
+ ADD HL,HL
+ POP DE
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JP C,04AF2H
+ CP 00AH
+ JP NC,04AF2H
+ PUSH BC
+ LD C,A
+ ADD A,A
+ ADD A,A
+ ADD A,C
+ ADD A,A
+ LD C,A
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JP C,04AF2H
+L742A: CP 00AH
+ JP NC,04AF2H
+ ADD A,C
+ LD C,A
+ LD B,000H
+ ADD HL,BC
+ POP BC
+ RET
+
+L7436: LD DE,(VARED)
+ LD (TMPEND),DE
+ LD DE,(INTFAC)
+L7442: PUSH DE
+ CALL L7495
+L7446: LD A,(HL)
+ CP 028H
+ JP Z,L74FB
+ PUSH HL
+ CALL L77B6
+ JR NC,L7458 ; (+006H)
+ LD A,C
+ LD C,L
+ LD B,H
+ POP HL
+ POP DE
+ RET
+
+L7458: LD A,(DE)
+ ADD A,C
+ ADD A,002H
+ PUSH BC
+ EX DE,HL
+ LD HL,(TMPEND)
+ PUSH HL
+ OR A
+ SBC HL,DE
+ INC HL
+ LD C,L
+ LD B,H
+ POP HL
+ PUSH DE
+ EX DE,HL
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ EX DE,HL
+ CALL L74E8
+ LDDR
+ LD E,A
+ LD D,000H
+ RST 018H
+ DB 01AH
+ POP HL
+ POP BC
+ LD DE,KEYBUF
+ LD (HL),C
+ INC HL
+ SCF
+ SBC A,C
+ LD B,A
+L7484: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L7484 ; (-006H)
+ PUSH HL
+ LD B,C
+ CALL ?CLRHL
+ LD (HL),A
+ LD A,C
+ POP BC
+ POP HL
+ POP DE
+ RET
+
+L7495: CALL HLFTCH
+ SUB 041H
+ CP 01AH
+ JP NC,L4AEC
+ LD DE,KEYBUF
+ LD B,000H
+L74A4: INC DE
+ LD A,(HL)
+ CALL L5ECB
+ JR C,L74B6 ; (+00bH)
+ LD (DE),A
+ INC B
+ LD A,B
+ CP 003H
+ JR C,L74B3 ; (+001H)
+ DEC B
+L74B3: INC HL
+ JR L74A4 ; (-012H)
+
+L74B6: LD DE,KEYBUF
+ EX DE,HL
+ LD (HL),B
+ EX DE,HL
+ LD C,005H
+ CP 024H
+ RET NZ
+ LD C,003H
+ INC HL
+ RET
+
+L74C5: LD HL,0FFFBH
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ ADD HL,DE
+ LD A,B
+ JP L7912
+
+L74D0: LD B,0FFH
+L74D2: INC B
+ LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ RET Z
+ JR L74D2 ; (-00aH)
+
+L74DC: LD A,B
+ OR A
+ RET Z
+ CALL LDHLDE
+ EX DE,HL
+ CALL L74E8
+ EX DE,HL
+ RET
+
+L74E8: PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ SBC HL,DE
+ POP HL
+ RET NC
+ JP L4B2C
+
+L74F4: LD DE,(INTFAC)
+ PUSH DE
+ JR L7503 ; (+008H)
+
+L74FB: XOR A
+ LD (L76F4),A
+ INC HL
+ LD (L76F2),HL
+L7503: LD B,000H
+ EXX
+ POP HL
+ PUSH HL
+ PUSH HL
+ LD HL,(TMPEND)
+ LD DE,KEYBUF
+ PUSH HL
+ LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ LD B,A
+ CALL L74DC
+ POP DE
+ LD (TMPEND),HL
+ LD HL,(STRST)
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX (SP),HL
+ PUSH HL
+ EXX
+L7526: POP DE
+ PUSH DE
+ PUSH BC
+ LD BC,(076F2H)
+ LD A,(L76F4)
+ PUSH BC
+ PUSH AF
+ LD BC,(0849CH)
+ PUSH BC
+ CALL L6E55
+ BIT 7,D
+ JP NZ,04AF2H
+ EX AF,AF'
+ POP BC
+ LD (0849CH),BC
+ POP AF
+ LD (L76F4),A
+ POP BC
+ LD (076F2H),BC
+ EX AF,AF'
+ INC HL
+ CP 029H
+ JR Z,L756C ; (+018H)
+ CP 02CH
+ JP NZ,L4AEC
+ POP BC
+ INC B
+ LD A,B
+ CP 004H
+ JP NC,04AF2H
+ EXX
+ POP HL
+ POP DE
+ EXX
+ PUSH DE
+ EXX
+ PUSH DE
+ PUSH HL
+ EXX
+ JR L7526 ; (-046H)
+
+L756C: POP BC
+ EXX
+ POP HL
+ POP DE
+ EXX
+ INC B
+ PUSH DE
+ PUSH HL
+ EXX
+ LD HL,(STRST)
+ ADD HL,DE
+ LD B,(HL)
+ INC B
+ LD DE,KEYBUF
+ CALL LDDEHL
+ EXX
+ SET 7,C
+ CALL L77B6
+ RES 7,C
+ JR NC,L75E1 ; (+056H)
+ LD A,B
+ CP (HL)
+ JP NZ,04AFEH
+ INC HL
+ EX DE,HL
+ POP HL
+ LD (L849C),HL
+ EXX
+ LD HL,L0000
+ EXX
+ EX DE,HL
+L759C: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX (SP),HL
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C8
+ EXX
+ PUSH HL
+ OR A
+ SBC HL,DE
+ JP NC,04AF2H
+ EXX
+ POP DE
+ CALL L76C4
+ EXX
+ POP HL
+ DJNZ L759C ; (-01cH)
+ PUSH HL
+ EXX
+ LD A,C
+ LD D,B
+ BIT 6,A
+ JR NZ,L75D4 ; (+014H)
+ AND 00FH
+ LD E,A
+ PUSH AF
+ CALL L76C8
+ PUSH HL
+ EXX
+ POP BC
+ POP AF
+ POP HL
+ ADD HL,BC
+ LD C,L
+ LD B,H
+L75CF: LD HL,(L849C)
+ POP DE
+ RET
+
+L75D4: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD C,L
+ LD B,H
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ AND 00FH
+ JR L75CF ; (-012H)
+
+L75E1: EXX
+ LD A,(L76F4)
+ OR A
+ JP Z,04AF2H
+ POP HL
+ LD (L849C),HL
+ EXX
+ LD DE,(TMPEND)
+ LD L,B
+ LD H,000H
+ ADD HL,HL
+ ADD HL,DE
+ EX DE,HL
+ INC DE
+ CALL L74E8
+ LD (HL),B
+ INC HL
+ EXX
+ LD HL,00001H
+ EXX
+L7603: POP DE
+ LD A,(L76F4)
+ OR A
+ JR NZ,L7616 ; (+00cH)
+ PUSH HL
+ EX DE,HL
+ LD DE,0000AH
+ SCF
+ SBC HL,DE
+ JP NC,04AF2H
+ POP HL
+L7616: INC DE
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C8
+ EXX
+ DJNZ L7603 ; (-021H)
+ DB 059H
+ LD D,000H
+ PUSH BC
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C8
+ PUSH HL
+ EXX
+ POP BC
+ PUSH BC
+ EX DE,HL
+ LD HL,(TMPEND)
+ LD L,(HL)
+ LD H,000H
+ ADD HL,HL
+ LD A,(KEYBUF)
+ ADD A,005H
+ ADD A,L
+ LD L,A
+ LD A,000H
+ ADC A,H
+ LD H,A
+ JR C,L764C ; (+005H)
+ ADD HL,BC
+ JR C,L764C ; (+002H)
+ PUSH HL
+ ADD HL,DE
+L764C: JP C,L4B2C
+ EX DE,HL
+ CALL L74E8
+ PUSH HL
+ EXX
+ POP HL
+ LD BC,(STRST)
+ DEC BC
+ OR A
+ SBC HL,BC
+ PUSH HL
+ EXX
+ POP BC
+ LDDR
+ POP DE
+ RST 018H
+ DB 01AH
+ POP BC
+ PUSH DE
+ EXX
+ POP DE
+ LD H,B
+ LD L,C
+ POP BC
+ LD A,C
+ OR 080H
+ LD (HL),A
+ INC HL
+ DEC DE
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,KEYBUF
+ LD A,(DE)
+ INC A
+ LD B,A
+ CALL LDHLDE
+ LD DE,(TMPEND)
+ LD A,(DE)
+ LD (HL),A
+ INC HL
+ INC DE
+ ADD A,A
+ LD B,A
+ CALL LDHLDE
+ PUSH HL
+ EXX
+ POP HL
+L7690: XOR A
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L7690 ; (-008H)
+ LD (HL),A
+ EXX
+ POP DE
+ LD A,(L76F4)
+ OR A
+ JR Z,L76A5 ; (+004H)
+ LD HL,(L849C)
+ RET
+
+L76A5: LD HL,(L76F2)
+ PUSH DE
+ JP L7503
+
+L76AC: LD A,0FFH
+ LD (L76F4),A
+L76B1: CALL L7495
+ LD A,(HL)
+ CALL L5E7B
+ CALL L74F4
+ CALL HLFTCH
+ CP 02CH
+ RET NZ
+ INC HL
+ JR L76B1 ; (-013H)
+
+L76C4: ADD HL,DE
+ RET NC
+ JR L76EF ; (+027H)
+
+L76C8: PUSH BC
+ EX DE,HL
+ LD C,L
+ LD A,H
+ LD HL,L0000
+ CALL L76D8
+ LD A,C
+ CALL L76D8
+ POP BC
+ RET
+
+L76D8: OR A
+ JR Z,L76E9 ; (+00eH)
+ LD B,008H
+L76DD: ADD HL,HL
+ JR C,L76EF ; (+00fH)
+ RLCA
+ JR NC,L76E6 ; (+003H)
+ ADD HL,DE
+ JR C,L76EF ; (+009H)
+L76E6: DJNZ L76DD ; (-00bH)
+ RET
+
+L76E9: LD A,H
+ LD H,L
+ LD L,000H
+ OR A
+ RET Z
+L76EF: JP 04AFBH
+
+L76F2: NOP
+ NOP
+L76F4: NOP
+L76F5: SUB 041H
+ CP 01AH
+ JP NC,L4AEC
+ LD BC,(07928H)
+ LD A,B
+ OR C
+ JR NZ,L7716 ; (+012H)
+ CALL L7442
+L7707: PUSH DE
+ PUSH HL
+ LD L,C
+ LD H,B
+ LD B,A
+ LD C,A
+ CALL LDDEHL
+ POP HL
+ LD A,C
+ POP DE
+ JP L709D
+
+L7716: PUSH DE
+ CALL L7495
+ PUSH HL
+ INC B
+ LD DE,KEYBUF
+ LD HL,(TMPEND)
+ CALL L74DC
+ LD B,000H
+ LD HL,(L7928)
+ CALL HLFTCH
+ CP QDPC
+ JR Z,L7760 ; (+02fH)
+ CP 028H
+ JR NZ,L775D ; (+028H)
+L7735: INC HL
+ INC B
+ PUSH BC
+ CALL L7495
+ LD A,C
+ POP DE
+ CP E
+ LD C,E
+ JR NZ,L7752 ; (+011H)
+ PUSH DE
+ LD C,B
+ INC C
+ PUSH HL
+ LD HL,(TMPEND)
+ LD DE,KEYBUF
+ CALL L7953
+ POP HL
+ POP BC
+ JR Z,L7776 ; (+024H)
+L7752: CALL HLFTCH
+ CP 029H
+ JR Z,L7760 ; (+007H)
+ CP 02CH
+ JR Z,L7735 ; (-028H)
+L775D: JP L4AEC
+
+L7760: LD HL,(TMPEND)
+ LD DE,KEYBUF
+ LD A,(HL)
+ LD (DE),A
+ LD B,A
+L7769: INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ DJNZ L7769 ; (-006H)
+ POP HL
+ POP DE
+ CALL L77B2
+ JR L7707 ; (-06fH)
+
+L7776: LD HL,(L792A)
+ CALL L5E78
+ DEC B
+ JR Z,L7797 ; (+018H)
+ DEC HL
+L7780: PUSH BC
+L7781: CALL L51A2
+ CALL L413E
+ JP Z,L4AEC
+ CP 029H
+ JP Z,L4AEC
+ CP 02CH
+ JR NZ,L7781 ; (-012H)
+ POP BC
+ DJNZ L7780 ; (-016H)
+ INC HL
+L7797: EX DE,HL
+ POP HL
+ EX (SP),HL
+ EX DE,HL
+ LD BC,(07928H)
+ PUSH BC
+ LD BC,L0000
+ LD (07928H),BC
+ CALL L6E9C
+ POP HL
+ LD (L7928),HL
+ POP HL
+ JP HLFTCH
+
+L77B2: PUSH DE
+ JP L7446
+
+L77B6: LD HL,(VARST)
+L77B9: LD DE,KEYBUF
+ LD A,(HL)
+ OR A
+ RET Z
+ CP 040H
+ JR NC,L77EA ; (+027H)
+ CP C
+ JR NZ,L77DF ; (+019H)
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77DD ; (+012H)
+ LD B,A
+L77CC: INC DE
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77D7 ; (+005H)
+ DJNZ L77CC ; (-008H)
+ INC HL
+ SCF
+ RET
+
+L77D7: INC HL
+ DJNZ L77D7 ; (-003H)
+ LD A,C
+ JR L77E4 ; (+007H)
+
+L77DD: LD A,C
+ DEC HL
+L77DF: AND 00FH
+ INC HL
+ ADD A,(HL)
+ INC HL
+L77E4: LD E,A
+ LD D,000H
+ ADD HL,DE
+ JR L77B9 ; (-031H)
+
+L77EA: CP C
+ JR Z,L7801 ; (+014H)
+ INC HL
+L77EE: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ ADD HL,DE
+ JR L77B9 ; (-03cH)
+
+L77F5: LD A,C
+ SUB B
+ CPL
+ LD C,A
+ LD B,0FFH
+ ADD HL,BC
+ POP BC
+L77FD: DEC HL
+ DEC HL
+ JR L77EE ; (-013H)
+
+L7801: LD A,(HL)
+ EXX
+ LD C,A
+ LD B,000H
+ EXX
+ INC HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ POP DE
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77FD ; (-018H)
+ PUSH BC
+ LD B,A
+ LD C,A
+L7818: INC HL
+ INC DE
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77F5 ; (-029H)
+ DJNZ L7818 ; (-008H)
+ INC HL
+ POP BC
+ SCF
+ RET
+
+L7824: CALL L7495
+ SET 6,C
+ PUSH HL
+ CALL L77B6
+ JP C,04AFEH
+ LD (HL),C
+ EX (SP),HL
+ PUSH HL
+ DEC HL
+L7834: CALL L51A2
+ OR A
+ JR Z,L783E ; (+004H)
+ CP 03AH
+ JR NZ,L7834 ; (-00aH)
+L783E: POP DE
+ PUSH HL
+ INC HL
+ SBC HL,DE
+ LD A,(KEYBUF)
+ ADD A,004H
+ LD C,A
+ LD B,000H
+ LD A,L
+ ADD HL,BC
+ LD B,A
+ PUSH HL
+ EXX
+ POP BC
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,L0000
+ ADD HL,SP
+ LD DE,(TMPEND)
+ DEC H
+ OR A
+ SBC HL,DE
+ LD A,00CH
+ JP C,L4B2E
+ POP BC
+ POP DE
+ POP HL
+ LD HL,(TMPEND)
+ PUSH HL
+ ADD HL,BC
+ EX (SP),HL
+ PUSH HL
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ POP HL
+ POP DE
+ LDDR
+ POP DE
+ RST 018H
+ DB 01AH
+ DEC DE
+ POP HL
+ EX (SP),HL
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,KEYBUF
+ LD A,(DE)
+ LD (HL),A
+ LD B,A
+L788E: INC DE
+ INC HL
+ LD A,(DE)
+ LD (HL),A
+ DJNZ L788E ; (-006H)
+ INC HL
+ PUSH HL
+ EXX
+ POP HL
+ CALL LDHLDE
+ LD (HL),000H
+ POP HL
+ RET
+
+L789F: PUSH DE
+ CALL L7495
+ POP IX
+ PUSH BC
+ SET 6,C
+ LD DE,(0792AH)
+ LD (L792A),HL
+ PUSH DE
+ CALL L77B6
+ JP NC,04B0AH
+ LD DE,(07928H)
+ LD (L7928),HL
+ PUSH DE
+ PUSH IX
+ DEC HL
+L78C1: CALL L51A2
+ CALL L413E
+ JP Z,L4AEC
+ CP QDPC
+ JR NZ,L78C1 ; (-00dH)
+ INC HL
+ POP DE
+ PUSH DE
+ CALL L6E9C
+ POP DE
+ LD HL,(L792A)
+ POP BC
+ LD (07928H),BC
+ POP BC
+ LD (0792AH),BC
+ EX DE,HL
+ POP BC
+ LD A,C
+ CALL L7912
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ CALL HLFTCH
+ CP 028H
+ RET NZ
+ PUSH DE
+ LD B,001H
+L78F6: PUSH BC
+ CALL L51A2
+ POP BC
+ CALL L4141
+ JP Z,L4AEC
+ CP 028H
+ JR NZ,L7906 ; (+001H)
+ INC B
+L7906: CP 029H
+ JR NZ,L78F6 ; (-014H)
+ DJNZ L78F6 ; (-016H)
+ INC HL
+ CALL HLFTCH
+ POP DE
+ RET
+
+L7912: CP 003H
+ JR NZ,L791F ; (+009H)
+L7916: LD A,(L84CE)
+ CP 003H
+ RET Z
+ JP 04AF5H
+
+L791F: LD A,(L84CE)
+ CP 003H
+ RET NZ
+ JP 04AF5H
+
+L7928: NOP
+ NOP
+L792A: NOP
+ NOP
+L792C: PUSH HL
+ CALL L60B7
+ LD A,H
+ OR A
+ JP NZ,04AF2H
+ LD A,L
+ CP 008H
+ JP NC,04AF2H
+ RST 018H
+ DB 012H
+ POP HL
+ JR C,L794E ; (+00eH)
+ JR Z,L794E ; (+00cH)
+ LD DE,0FFFFH
+L7945: CALL L5E99
+ LD A,005H
+ LD (L84CE),A
+ RET
+
+L794E: LD E,A
+ LD D,000H
+ JR L7945 ; (-00eH)
+
+L7953: LD A,(DE)
+ CP (HL)
+ RET NZ
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD B,C
+L795A: LD A,(DE)
+ CP (HL)
+ JR NZ,L7963 ; (+005H)
+ INC DE
+ INC HL
+ DJNZ L795A ; (-008H)
+ XOR A
+L7963: POP HL
+ POP DE
+ POP BC
+ RET
+
+L7967: PUSH HL
+ LD B,005H
+ CALL ?CLRHL
+ POP HL
+ RET
+
+L796F: CALL L791F
+L7972: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ LD A,(HL)
+ XOR 080H
+ LD (HL),A
+ DEC HL
+ RET
+
+L797C: CALL L791F
+ LD C,A
+ LD A,080H
+ JP L798F
+
+L7985: LD A,(L84CE)
+ CP 003H
+ JP Z,L79D9
+ LD C,A
+ XOR A
+L798F: LD (L7D89),HL
+ PUSH DE
+ PUSH HL
+ LD (07D8CH),SP
+ INC HL
+ INC DE
+ LD B,(HL)
+ XOR (HL)
+ EX DE,HL
+ XOR (HL)
+ DEC HL
+ DEC DE
+ EX DE,HL
+ RLCA
+ LD A,B
+ LD (L7D8B),A
+ JP C,L7A9A
+ XOR A
+ CP (HL)
+ JP Z,L79CE
+ LD A,(DE)
+ OR A
+ JR Z,L79B6 ; (+004H)
+ SUB (HL)
+ JP L7ADD
+
+L79B6: LD SP,(07D8CH)
+ POP HL
+ POP DE
+ EI
+ LD A,(HL)
+ OR A
+ JP Z,L7E86
+ LD A,(L7D8B)
+ AND 080H
+ INC HL
+ RES 7,(HL)
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ RET
+
+L79CE: LD B,000H
+ LD A,005H
+ LD C,A
+ EX DE,HL
+ LDIR
+ JP L79B6
+
+L79D9: LD B,(HL)
+ LD A,(DE)
+ ADD A,B
+ JP C,04AF8H
+ LD C,A
+ PUSH DE
+ PUSH HL
+ PUSH DE
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(STRST)
+ ADD HL,DE
+ EX DE,HL
+ LD HL,(TMPEND)
+ CALL L74DC
+ EX (SP),HL
+ LD B,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(STRST)
+ ADD HL,DE
+ EX DE,HL
+ POP HL
+ CALL L74DC
+ LD A,C
+ LD DE,(TMPEND)
+ LD BC,(STRST)
+ EX DE,HL
+ OR A
+ SBC HL,BC
+ EX DE,HL
+ LD (TMPEND),HL
+ POP HL
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ DEC HL
+ DEC HL
+ POP DE
+ RET
+
+L7A1C: LD A,(L84CE)
+ CP 003H
+ JR NZ,L7A57 ; (+034H)
+ PUSH DE
+ PUSH HL
+ LD A,(DE)
+ OR (HL)
+ JR Z,L7A54 ; (+02bH)
+ LD A,(DE)
+ CP (HL)
+ JR C,L7A2E ; (+001H)
+ LD A,(HL)
+L7A2E: OR A
+ JR Z,L7A4E ; (+01dH)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ EX DE,HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(STRST)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ ADD HL,BC
+ EX DE,HL
+ LD B,A
+ OR A
+ JR Z,L7A54 ; (+00eH)
+L7A46: LD A,(DE)
+ CP (HL)
+ JR NZ,L7A54 ; (+00aH)
+ INC DE
+ INC HL
+ DJNZ L7A46 ; (-008H)
+L7A4E: POP DE
+ POP HL
+ LD A,(DE)
+ CP (HL)
+ EX DE,HL
+ RET
+
+L7A54: POP HL
+ POP DE
+ RET
+
+L7A57: INC DE
+ INC HL
+ LD A,(DE)
+ DEC DE
+ XOR (HL)
+ RLCA
+ JR NC,L7A63 ; (+004H)
+ LD A,(HL)
+ DEC HL
+ RLCA
+ RET
+
+L7A63: LD A,(HL)
+ DEC HL
+ RLCA
+ JR NC,L7A6E ; (+006H)
+ CALL L7A6E
+ RET Z
+ CCF
+ RET
+
+L7A6E: PUSH DE
+ PUSH HL
+ EX DE,HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L7A8F ; (+01aH)
+ INC DE
+ INC HL
+ LD A,(HL)
+ OR 080H
+ LD B,A
+ LD A,(DE)
+ OR 080H
+ CP B
+ JR NZ,L7A8F ; (+00eH)
+ LD A,(L84CE)
+ LD B,A
+ DEC B
+ DEC B
+L7A87: INC DE
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L7A8F ; (+002H)
+ DJNZ L7A87 ; (-008H)
+L7A8F: POP HL
+ POP DE
+ RET
+
+L7A92: POP HL
+ PUSH HL
+ CALL L7967
+ JP L79B6
+
+L7A9A: CALL L7A6E
+ JR Z,L7A92 ; (-00dH)
+ JR NC,L7AAA ; (+009H)
+ LD A,(L7D8B)
+ XOR 080H
+ LD (L7D8B),A
+ SCF
+L7AAA: EX AF,AF'
+ LD A,(HL)
+ OR A
+ JP Z,L79CE
+ LD A,(DE)
+ OR A
+ JP Z,L79B6
+ SUB (HL)
+ JR C,L7ABF ; (+007H)
+ CP 020H
+ JP NC,L79CE
+ JR L7AC6 ; (+007H)
+
+L7ABF: NEG
+ CP 020H
+ JP NC,L79B6
+L7AC6: EX AF,AF'
+ JR C,L7ACA ; (+001H)
+ EX DE,HL
+L7ACA: EX AF,AF'
+ JP L7B64
+
+L7ACE: LD SP,(07D8CH)
+ EI
+ POP HL
+ POP DE
+ LD A,(07D93H)
+ OR A
+ JP Z,04AEFH
+ RET
+
+L7ADD: JR NC,L7AE9 ; (+00aH)
+ NEG
+ CP 020H
+ JP NC,L79B6
+ EX DE,HL
+ JR L7AEE ; (+005H)
+
+L7AE9: CP 020H
+ JP NC,L79CE
+L7AEE: CALL L7B24
+ LD A,H
+ EXX
+ ADC A,H
+ EXX
+ LD H,A
+ LD A,L
+ EXX
+ ADC A,L
+ EXX
+ LD L,A
+ LD A,D
+ EXX
+ ADC A,D
+ EXX
+ LD D,A
+ LD A,E
+ EXX
+ ADC A,E
+ EXX
+ JR NC,L7B11 ; (+00bH)
+ RRA
+ RR D
+ RR L
+ RR H
+ INC C
+ JP Z,L7ACE
+L7B11: LD E,A
+ LD A,C
+ EXX
+ LD BC,00005H
+ LD HL,(L7D89)
+ LD (HL),A
+ ADD HL,BC
+ DI
+ LD SP,HL
+ EXX
+ PUSH HL
+ PUSH DE
+ JP L79B6
+
+L7B24: DI
+ LD (07D8EH),SP
+ EX AF,AF'
+ INC HL
+ LD SP,HL
+ EXX
+ POP DE
+ SET 7,E
+ POP HL
+ OR A
+L7B32: EX AF,AF'
+ CP 008H
+ JR C,L7B43 ; (+00cH)
+ SUB 008H
+ EX AF,AF'
+ RL H
+ LD H,L
+ LD L,D
+ LD D,E
+ LD E,000H
+ JR L7B32 ; (-011H)
+
+L7B43: OR A
+ JR Z,L7B54 ; (+00eH)
+L7B46: EX AF,AF'
+ OR A
+ RR E
+ RR D
+ RR L
+ RR H
+ EX AF,AF'
+ DEC A
+ JR NZ,L7B46 ; (-00eH)
+L7B54: EXX
+ EX DE,HL
+ LD C,(HL)
+ INC HL
+ LD SP,HL
+ POP DE
+ SET 7,E
+ POP HL
+ EX AF,AF'
+ LD SP,(07D8EH)
+ EI
+ RET
+
+L7B64: CP 020H
+ JP NC,L79B6
+ CALL L7B24
+ LD A,H
+ EXX
+ SBC A,H
+ EXX
+ LD H,A
+ LD A,L
+ EXX
+ SBC A,L
+ EXX
+ LD L,A
+ LD A,D
+ EXX
+ SBC A,D
+ EXX
+ LD D,A
+ LD A,E
+ EXX
+ SBC A,E
+ EXX
+L7B7F: OR A
+ JR Z,L7B98 ; (+016H)
+L7B82: BIT 7,A
+ JR NZ,L7B94 ; (+00eH)
+ RL H
+ RL L
+ RL D
+ RLA
+ DEC C
+ JP NZ,L7B82
+ JP L7A92
+
+L7B94: LD E,A
+ JP L7B11
+
+L7B98: LD A,C
+ SUB 008H
+ LD C,A
+ LD A,D
+ LD D,L
+ LD L,H
+ LD H,000H
+ JR Z,L7BA5 ; (+002H)
+ JR NC,L7B7F ; (-026H)
+L7BA5: JP L7A92
+
+L7BA8: LD C,A
+ INC HL
+ INC DE
+ LD A,(DE)
+ XOR (HL)
+ LD (L7D8B),A
+ DEC HL
+ DEC DE
+ RET
+
+L7BB3: CALL L791F
+ CALL L7BA8
+ PUSH DE
+ PUSH HL
+ LD (07D8CH),SP
+ LD A,(HL)
+ OR A
+ JP Z,L7A92
+ LD A,(DE)
+ OR A
+ JP Z,L7A92
+ INC DE
+ PUSH DE
+ POP IX
+ ADD A,(HL)
+ LD E,A
+ LD A,000H
+ ADC A,A
+ LD D,A
+ LD (07D91H),DE
+ INC HL
+ XOR A
+ LD (L7D90),A
+ LD D,(HL)
+ SET 7,D
+ INC HL
+ LD E,(HL)
+ INC HL
+ PUSH HL
+ LD H,A
+ LD L,A
+ EXX
+ POP HL
+ LD D,(HL)
+ INC HL
+ LD E,(HL)
+ LD B,A
+ LD C,A
+ LD H,A
+ LD L,A
+ EXX
+ LD A,(IX+000H)
+ OR 080H
+ LD C,004H
+L7BF6: LD B,008H
+ OR A
+ JP Z,L7C8B
+L7BFC: RLCA
+ JR NC,L7C11 ; (+012H)
+ EX AF,AF'
+ EXX
+ LD A,C
+ ADD A,B
+ LD C,A
+ ADC HL,DE
+ EXX
+ ADC HL,DE
+ JR NC,L7C10 ; (+005H)
+ LD A,001H
+ LD (L7D90),A
+L7C10: EX AF,AF'
+L7C11: SRL D
+ RR E
+ EXX
+ RR D
+ RR E
+ RR B
+ EXX
+ DJNZ L7BFC ; (-023H)
+L7C1F: INC IX
+ LD A,(IX+000H)
+ DEC C
+ JR NZ,L7BF6 ; (-031H)
+ EXX
+ LD A,(L7D90)
+ OR A
+ JR Z,L7C44 ; (+016H)
+ LD DE,(07D91H)
+ INC DE
+ LD (07D91H),DE
+ EXX
+ SCF
+ RR H
+ RR L
+ EXX
+ RR H
+ RR L
+ RR C
+L7C44: BIT 7,C
+ JR Z,L7C62 ; (+01aH)
+ LD DE,00001H
+ ADD HL,DE
+ EXX
+ LD DE,L0000
+ ADC HL,DE
+ EXX
+ JR NC,L7C62 ; (+00dH)
+ LD DE,(07D91H)
+ INC DE
+ LD (07D91H),DE
+ EXX
+ LD H,080H
+ EXX
+L7C62: POP IX
+ PUSH IX
+ LD (IX+004H),L
+ LD (IX+003H),H
+ EXX
+ LD (IX+002H),L
+ LD (IX+001H),H
+ LD HL,(07D91H)
+ OR A
+ LD DE,L0081
+ SBC HL,DE
+ LD A,H
+ ADD A,000H
+ JP M,L7C97
+ JP NZ,L7ACE
+ LD (IX+000H),L
+ JP L79B6
+
+L7C8B: LD A,E
+ EXX
+ LD B,E
+ LD E,D
+ LD D,A
+ EXX
+ LD E,D
+ LD D,000H
+ JP L7C1F
+
+L7C97: LD SP,(07D8CH)
+ JP L7A92
+
+L7C9E: CALL L791F
+ CALL L7BA8
+ PUSH DE
+ PUSH HL
+ LD (07D8CH),SP
+ LD A,(DE)
+ OR A
+ JP Z,04AEFH
+ EX AF,AF'
+ LD A,(HL)
+ OR A
+ JP Z,L7A92
+ EXX
+ ADD A,081H
+ LD B,A
+ LD A,000H
+ ADC A,A
+ EX AF,AF'
+ LD C,A
+ LD A,B
+ SUB C
+ LD C,A
+ EX AF,AF'
+ LD B,A
+ EX AF,AF'
+ LD A,B
+ SBC A,000H
+ JP C,L7C97
+ JP NZ,L7ACE
+ LD A,C
+ PUSH AF
+ EXX
+ INC DE
+ INC HL
+ LD B,(HL)
+ SET 7,B
+ INC HL
+ LD C,(HL)
+ INC HL
+ PUSH HL
+ EX DE,HL
+ LD D,(HL)
+ SET 7,D
+ INC HL
+ LD E,(HL)
+ INC HL
+ PUSH HL
+ LD H,B
+ LD L,C
+ EXX
+ POP HL
+ LD D,(HL)
+ INC HL
+ LD E,(HL)
+ POP HL
+ LD A,(HL)
+ INC HL
+ LD L,(HL)
+ LD H,A
+ EXX
+ LD C,005H
+L7CF0: LD B,008H
+ XOR A
+L7CF3: BIT 7,H
+ JR NZ,L7D07 ; (+010H)
+ OR A
+L7CF8: RLA
+ EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ DJNZ L7CF3 ; (-00dH)
+ PUSH AF
+ DEC C
+ JR NZ,L7CF0 ; (-014H)
+ JP L7D41
+
+L7D07: OR A
+ EXX
+ SBC HL,DE
+ EXX
+ SBC HL,DE
+ CCF
+ JR C,L7CF8 ; (-019H)
+ EXX
+ ADD HL,DE
+ EXX
+ ADC HL,DE
+ OR A
+ RLA
+ EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ DJNZ L7D26 ; (+007H)
+ PUSH AF
+ LD B,008H
+ DEC C
+ JP Z,L7D41
+L7D26: EXX
+ OR A
+ SBC HL,DE
+ EXX
+ SBC HL,DE
+ SCF
+ RLA
+ DJNZ L7D37 ; (+006H)
+ PUSH AF
+ LD B,008H
+ DEC C
+ JR Z,L7D41 ; (+00aH)
+L7D37: EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ JR C,L7D26 ; (-018H)
+ JP L7CF3
+
+L7D41: POP AF
+ LD H,A
+ EXX
+ POP AF
+ LD E,A
+ POP AF
+ LD D,A
+ POP AF
+ LD C,A
+ POP AF
+ LD B,A
+ POP AF
+L7D4D: BIT 7,B
+ JR NZ,L7D64 ; (+013H)
+ EXX
+ SLA H
+ EXX
+ RL E
+ RL D
+ RL C
+ RL B
+ DEC A
+ JP NZ,L7D4D
+ JP L7A92
+
+L7D64: EXX
+ RL H
+ EXX
+ JR NC,L7D7B ; (+011H)
+ LD HL,00001H
+ ADD HL,DE
+ EX DE,HL
+ LD HL,L0000
+ ADC HL,BC
+ LD B,H
+ LD C,L
+ JR NC,L7D7B ; (+003H)
+ LD B,080H
+ INC A
+L7D7B: POP HL
+ PUSH HL
+ LD (HL),A
+ INC HL
+ LD (HL),B
+L7D80: INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ JP L79B6
+
+L7D89: NOP
+ NOP
+L7D8B: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L7D90: NOP
+ NOP
+ NOP
+ NOP
+L7D94: INC HL
+ BIT 7,(HL)
+ DEC HL
+ RET
+
+L7D99: INC (HL)
+ RET NZ
+ JP 04AEFH
+
+L7D9E: LD A,(HL)
+ OR A
+ RET Z
+ DEC (HL)
+ RET NZ
+ JP L7967
+
+L7DA6: PUSH HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ LD HL,(MEMMAX)
+ DEC HL
+ SBC HL,DE
+ JP C,04AFBH
+ POP HL
+ RET
+
+L7DB8: PUSH HL
+ LD (L8471),HL
+ CALL L7DA6
+ EX DE,HL
+ LD (L8473),HL
+ CALL L7DA6
+ EX DE,HL
+ LD (L8475),HL
+ CALL L7DA6
+ LD (08477H),DE
+ POP HL
+ RET
+
+L7DD3: CALL L791F
+ EX DE,HL
+ LD A,(HL)
+ OR A
+ JP Z,L7E35
+ EX DE,HL
+ LD A,(HL)
+ OR A
+ JP Z,L7967
+ CALL L7D94
+ JR Z,L7E0F ; (+028H)
+ CALL L7972
+ EX DE,HL
+ PUSH DE
+ PUSH HL
+ LD DE,L84D7
+ CALL L5E93
+ LD HL,L84D7
+ CALL L608D
+ LD A,(HL)
+ OR A
+ JP NZ,04AF2H
+ POP HL
+ PUSH HL
+ CALL L60B7
+ BIT 0,L
+ POP DE
+ POP HL
+ JR Z,L7E0F ; (+006H)
+ CALL L7E0F
+ JP L7972
+
+L7E0F: EX DE,HL
+ LD A,(HL)
+ OR A
+ JR Z,L7E35 ; (+021H)
+ CALL L7D94
+ JR Z,L7E3B ; (+022H)
+ CALL L7972
+ CALL L7E3B
+ PUSH DE
+ PUSH HL
+ LD DE,L84D7
+ CALL L5E90
+ LD HL,L84D7
+ POP DE
+ CALL L7C9E
+ PUSH DE
+ CALL L5E93
+ POP HL
+ POP DE
+ RET
+
+L7E35: PUSH DE
+ CALL L5E90
+ POP HL
+ RET
+
+L7E3B: PUSH DE
+ LD DE,L84D7
+ CALL L5E93
+ POP HL
+ CALL L8320
+ LD DE,L84D7
+ CALL L7BB3
+ JP L81FC
+
+L7E4F: CALL L791F
+ PUSH DE
+ PUSH HL
+ CALL L60B7
+ LD A,L
+ CPL
+ LD E,A
+ LD A,H
+ CPL
+ LD D,A
+ JR L7E80 ; (+021H)
+
+L7E5F: LD A,0A2H
+ LD BC,0B23EH
+ LD BC,0AA3EH
+ LD (L7E7B),A
+ INC A
+ LD (L7E7E),A
+ CALL L791F
+ PUSH DE
+ PUSH HL
+ CALL L60B7
+ EX DE,HL
+ CALL L60B7
+ LD A,H
+L7E7B: AND D
+ LD D,A
+ LD A,L
+L7E7E: AND E
+ LD E,A
+L7E80: POP HL
+ CALL L5E99
+ POP DE
+ RET
+
+L7E86: INC HL
+ RES 7,(HL)
+ DEC HL
+ RET
+
+L7E8B: CALL L7D94
+ JP Z,L604F
+ CALL L7EB0
+ CALL L604F
+ LD DE,L84D7
+ CALL L7A1C
+ RET Z
+L7E9E: LD DE,L6112
+ JP L797C
+
+L7EA4: LD DE,L6112
+ JP L7985
+
+L7EAA: LD DE,L6112
+ JP L7A1C
+
+L7EB0: PUSH HL
+ PUSH DE
+ LD DE,L84D7
+ CALL L5E93
+ POP DE
+ POP HL
+ RET
+
+L7EBB: CALL L604F
+ EX DE,HL
+ CALL L604F
+ EX DE,HL
+ CALL L7EB0
+ CALL L7C9E
+ CALL L604F
+ CALL L7BB3
+ PUSH DE
+ LD DE,L84D7
+ CALL L797C
+ POP DE
+ JP L7972
+
+L7EDA: CALL L604F
+ EX DE,HL
+ CALL L604F
+ EX DE,HL
+ CALL L7C9E
+ JP L604F
+
+L7EE8: LD A,(HL)
+ OR A
+ RET Z
+ CALL L7D94
+ JP NZ,04AF2H
+ CALL L8320
+ CALL L7D9E
+ JP L81FC
+
+L7EFA: PUSH HL
+ EX DE,HL
+ CALL L5E90
+ POP HL
+ POP BC
+ RET
+
+L7F02: LD A,(HL)
+ LD C,H
+L7F04: ADD A,B
+ DEC HL
+L7F06: PUSH BC
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ PUSH AF
+ CALL L7F17
+ POP AF
+ POP BC
+ RLCA
+ RET NC
+ JP L7972
+
+L7F17: CALL L7EAA
+ JR C,L7F3A ; (+01eH)
+ CALL L7DA6
+ PUSH DE
+ PUSH HL
+ CALL L5E93
+ POP DE
+ PUSH DE
+ CALL L5E90
+ POP HL
+ POP DE
+ CALL L7C9E
+ CALL L7F3A
+ LD DE,08194H
+ CALL L797C
+ JP L7E86
+
+L7F3A: LD A,0FFH
+ LD (L80B0),A
+ LD DE,L7F02
+ CALL L7A1C
+ JR C,07F96H ; (+04fH)
+ LD DE,L7F04
+ CALL L7A1C
+ PUSH AF
+ CALL L7DA6
+ POP AF
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ JR C,L7F6E ; (+014H)
+ CALL L7EA4
+ EX (SP),HL
+ CALL L797C
+ POP DE
+ CALL L7C9E
+ CALL 07F96H
+ LD DE,08199H
+ JP L7985
+
+L7F6E: LD DE,L7F91
+ CALL L7BB3
+ CALL L7EA4
+ EX (SP),HL
+ LD DE,L7F91
+ CALL L797C
+ POP DE
+ CALL L7C9E
+ CALL 07F96H
+ CALL L7D99
+ LD DE,08199H
+ CALL L7985
+ JP L7D9E
+
+L7F91: LD A,A
+ LD D,H
+ INC DE
+ CALL Z,0C5D0H
+ PUSH HL
+ CALL L7DB8
+ POP HL
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD E,L
+ LD D,H
+ CALL L7BB3
+ LD DE,(08475H)
+ POP HL
+ PUSH HL
+ CALL L5E93
+ LD A,(L84CE)
+ DEC A
+ CP 004H
+ LD B,A
+ LD HL,08137H
+ JP Z,L803D
+ LD B,00AH
+ JP L803D
+
+L7FC2: PUSH BC
+ LD A,(HL)
+ OR A
+ JP Z,L7EFA
+ LD DE,08194H
+ CALL L797C
+ CALL L7972
+ POP BC
+L7FD2: PUSH BC
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ AND 080H
+ CPL
+ LD (L80B0),A
+ DEC HL
+ LD DE,L818A
+ PUSH HL
+ CALL L7A1C
+ JR C,L7FF0 ; (+009H)
+ CALL L7C9E
+ CALL L608D
+ CALL L7BB3
+L7FF0: LD DE,0818FH
+ CALL L7A1C
+ JR C,L8003 ; (+00bH)
+ CALL L797C
+ LD A,(L80B0)
+ XOR 080H
+ LD (L80B0),A
+L8003: LD DE,08194H
+ CALL L7A1C
+ JR C,L8014 ; (+009H)
+ LD DE,0818FH
+ CALL L797C
+ CALL L7E86
+L8014: CALL L7DB8
+ POP HL
+ PUSH DE
+ LD DE,08199H
+ CALL L7A1C
+ JR NC,L8086 ; (+065H)
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD E,L
+ LD D,H
+ CALL L7BB3
+ LD DE,(08475H)
+ POP HL
+ PUSH HL
+ CALL L5E93
+ LD A,(L84CE)
+ LD B,A
+ LD HL,L80E7
+L803D: PUSH BC
+L803E: PUSH HL
+ LD HL,(L8475)
+ LD DE,(08477H)
+ CALL L7BB3
+ POP HL
+ PUSH HL
+ LD DE,(08473H)
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD DE,(08475H)
+ CALL L7BB3
+ EX DE,HL
+ LD HL,(L8471)
+ CALL L7985
+ POP HL
+ LD DE,00005H
+ ADD HL,DE
+ POP BC
+ DJNZ L803D ; (-02dH)
+ POP HL
+ POP BC
+ LD A,(L80B0)
+ INC HL
+ XOR (HL)
+ CPL
+ LD (HL),A
+ DEC HL
+ LD A,(L84CE)
+ CP 008H
+ LD A,(HL)
+ JR Z,L8082 ; (+006H)
+ CP 05CH
+L807E: RET NC
+ JP L7967
+
+L8082: CP 04DH
+ JR L807E ; (-008H)
+
+L8086: LD DE,08194H
+ CALL L797C
+ CALL L7E86
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+L8095: POP HL
+ LD E,L
+ LD D,H
+ CALL L7BB3
+ LD DE,(08475H)
+ CALL L5E90
+L80A2: POP DE
+ PUSH DE
+ CALL L5E90
+ LD A,(L84CE)
+ LD B,A
+ LD HL,L810F
+ JR L803D ; (-073H)
+
+L80B0: NOP
+L80B1: PUSH BC
+ PUSH HL
+ CALL L7DA6
+ EX DE,HL
+ LD (L8479),HL
+ CALL L7DA6
+ LD (0847BH),DE
+ POP HL
+ PUSH HL
+ CALL L5E93
+ LD HL,(L8479)
+ EX DE,HL
+ POP HL
+L80CB: PUSH HL
+ CALL L5E93
+ LD HL,(0847BH)
+ CALL L7FD2
+ POP DE
+ PUSH DE
+ CALL L5E93
+ LD HL,(L8479)
+ CALL L7FC2
+ EX DE,HL
+ POP HL
+ CALL L7C9E
+ POP BC
+ RET
+
+L80E7: LD A,(HL)
+L80E8: XOR D
+ XOR D
+ XOR D
+ XOR E
+ LD A,D
+ EX AF,AF'
+ ADC A,B
+ ADC A,B
+ ADC A,C
+ LD (HL),H
+ RET NC
+ DEC C
+ NOP
+ RET NC
+L80F6: LD L,(HL)
+ JR C,L80E8 ; (-011H)
+ DEC E
+ DEC HL
+ LD H,A
+ RST 010H
+ LD (L402B),A
+ LD H,B
+ JR NC,L8095 ; (-06eH)
+ JR NC,L80A2 ; (-063H)
+ LD E,B
+ RST 010H
+ CCF
+ SBC A,A
+ LD A,(04A50H)
+ SUB (HL)
+ DEC SP
+ ADD A,D
+L810F: ADD A,B
+ ADD A,B
+ NOP
+ NOP
+ NOP
+ LD A,H
+ LD HL,(0AAAAH)
+ XOR E
+ LD (HL),A
+ OR (HL)
+ DEC BC
+ LD H,B
+ OR (HL)
+ LD (HL),C
+ LD D,B
+ DEC C
+ NOP
+ RET NC
+ LD L,E
+ SUB E
+ JP P,0BC7DH
+ LD H,H
+ RRCA
+ HALT
+ RST 000H
+L812C: ADD A,B
+ LD E,H
+ RET
+
+L812F: RES 4,L
+ LD B,(HL)
+ LD D,H
+ LD D,A
+ CCF
+ SBC A,A
+ LD A,(0AA7FH)
+ XOR D
+ XOR D
+ XOR E
+ LD A,(HL)
+ LD C,H
+ CALL Z,0CDCCH
+ LD A,(HL)
+ SUB D
+ LD C,C
+ INC H
+ SUB D
+ LD A,L
+ LD H,E
+ ADC A,(HL)
+ JR C,L812F ; (-01cH)
+ LD A,L
+ CP D
+ LD L,08BH
+ AND E
+ LD A,L
+ DEC E
+ ADC A,C
+ RET C
+ SBC A,(HL)
+ LD A,L
+ ADC A,B
+ ADC A,B
+ ADC A,B
+ ADC A,C
+ LD A,H
+ LD (HL),B
+ RET P
+ RET P
+ POP AF
+ LD A,H
+ RST 010H
+ SUB H
+ DEC (HL)
+ PUSH HL
+ LD A,H
+ LD B,E
+ INC C
+ JR NC,L812C ; (-03dH)
+L8169: LD DE,L0000
+ LD A,(HL)
+ OR A
+ JR Z,L8178 ; (+008H)
+ CALL L7D94
+ INC DE
+ JR Z,L8178 ; (+002H)
+ DEC DE
+ DEC DE
+L8178: CALL L5E99
+ RET
+
+L817C: LD DE,0819EH
+ JR L8184 ; (+003H)
+
+L8181: LD DE,0818FH
+L8184: PUSH BC
+ CALL L7BB3
+ POP BC
+ RET
+
+L818A: ADD A,E
+ LD C,C
+ RRCA
+ JP C,L82A2
+ LD C,C
+ RRCA
+ JP C,L81A2
+ LD C,C
+ RRCA
+ JP C,L80A2
+ LD C,C
+ RRCA
+ JP C,07BA2H
+ LD C,FDPC
+ DEC (HL)
+L81A2: INC DE
+L81A3: PUSH HL
+ CALL L60B7
+ LD A,000H
+ CP 040H
+ LD A,(HL)
+ CALL NZ,BREAKX
+ LD E,A
+ LD D,000H
+ POP HL
+ CALL L5E99
+ RET
+
+L81B7: LD A,(HL)
+ OR A
+ JR Z,L81C0 ; (+005H)
+ CALL L7D94
+ JR Z,L81CB ; (+00bH)
+L81C0: PUSH HL
+ LD HL,L4193
+ LD (L81FA),HL
+ POP HL
+ XOR A
+ LD R,A
+L81CB: PUSH BC
+ LD DE,(081FAH)
+ LD A,R
+ XOR D
+ RRC A
+ RRC A
+ RRC A
+ LD D,A
+ LD A,R
+ XOR E
+ RLC A
+ RLC A
+ LD E,D
+ LD D,A
+ LD (081FAH),DE
+ PUSH HL
+ INC HL
+ RES 7,D
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ INC HL
+ LD A,R
+ LD (HL),A
+ POP HL
+ LD (HL),081H
+ CALL L7E9E
+ POP BC
+ RET
+
+L81FA: SUB E
+ LD B,C
+L81FC: PUSH BC
+ LD A,(HL)
+ OR A
+ JP Z,L7EFA
+ INC HL
+ LD A,(HL)
+ LD (L8312),A
+ RES 7,(HL)
+ DEC HL
+ LD DE,L8467
+ CALL L7BB3
+ PUSH HL
+ CALL L7DA6
+ PUSH DE
+ CALL L5E93
+ POP HL
+ CALL L604F
+ PUSH HL
+ CALL L60B7
+ XOR A
+ CP H
+ JP NZ,04AEFH
+ LD A,L
+ LD (L8311),A
+ POP DE
+ POP HL
+ PUSH HL
+ CALL L797C
+ PUSH DE
+ PUSH HL
+ CALL L5E90
+ POP DE
+ POP HL
+ CALL L7D9E
+ EX DE,HL
+ XOR A
+ LD B,008H
+L823D: PUSH BC
+ PUSH AF
+ CALL L7A1C
+ JR C,L824B ; (+007H)
+ CALL L797C
+ POP AF
+ SET 7,A
+ PUSH AF
+L824B: POP AF
+ RLC A
+ EX DE,HL
+ PUSH AF
+ CALL L7D9E
+ POP AF
+ EX DE,HL
+ POP BC
+ DJNZ L823D ; (-01bH)
+ LD (L8313),A
+ PUSH DE
+ LD DE,L845D
+ LD A,(L84CE)
+ BIT 3,A
+ JR NZ,L8269 ; (+003H)
+ LD DE,L8462
+L8269: CALL L7BB3
+ POP DE
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD A,(L84CE)
+ BIT 3,A
+ JP Z,L8301
+ CALL L7D99
+ LD DE,L610D
+ CALL L7985
+ CALL L7D9E
+ POP DE
+ PUSH DE
+ CALL L7BB3
+ LD DE,L610D
+ CALL L7D9E
+ CALL L7985
+ CALL L7D99
+ POP DE
+ PUSH DE
+ CALL L7BB3
+ LD DE,L8458
+ CALL L7BB3
+L82A2: CALL L7D99
+ CALL L7EA4
+ CALL L7D9E
+ POP DE
+ PUSH DE
+ CALL L7BB3
+ CALL L7EA4
+ POP DE
+ PUSH DE
+ CALL L7BB3
+L82B8: CALL L7EA4
+ EX (SP),HL
+ EX DE,HL
+ PUSH DE
+ CALL L5E90
+ POP HL
+ LD DE,L8408
+ LD A,(L8313)
+ LD B,008H
+L82CA: RLC A
+ JR NC,L82D5 ; (+007H)
+ PUSH AF
+ PUSH BC
+ CALL L7BB3
+ POP BC
+ POP AF
+L82D5: INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ DJNZ L82CA ; (-012H)
+ LD A,(L8311)
+ ADD A,(HL)
+ JP C,04AEFH
+ LD (HL),A
+ POP DE
+ CALL L7BB3
+ POP BC
+ LD A,(L8312)
+ RLC A
+ RET NC
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ CALL L5E93
+ POP DE
+ PUSH DE
+ CALL L5E90
+ POP HL
+ POP DE
+ CALL L7C9E
+ POP BC
+ RET
+
+L8301: POP DE
+ PUSH DE
+ CALL L7BB3
+ LD A,(HL)
+ OR A
+ CALL NZ,L7D9E
+ CALL L7985
+ JP L82B8
+
+L8311: NOP
+L8312: NOP
+L8313: NOP
+L8314: PUSH BC
+ CALL L8320
+ LD DE,L83F9
+ CALL L7BB3
+ POP BC
+ RET
+
+L8320: PUSH BC
+ CALL L7D94
+ JP NZ,04AF2H
+ LD A,(HL)
+ OR A
+ JP Z,04AF2H
+ SUB 081H
+ LD (L83F8),A
+ LD (HL),081H
+ XOR A
+ LD B,008H
+ LD DE,L8408
+L8339: PUSH BC
+ PUSH AF
+ CALL L7A1C
+ JR C,L834F ; (+00fH)
+ PUSH HL
+ LD HL,00028H
+ ADD HL,DE
+ EX DE,HL
+ EX (SP),HL
+ CALL L7BB3
+ POP DE
+ POP AF
+ SET 7,A
+ PUSH AF
+L834F: POP AF
+ RLC A
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ POP BC
+ DJNZ L8339 ; (-021H)
+ DB 022H
+ LD (HL),C
+ ADD A,H
+ CALL L7DA6
+ EX DE,HL
+ LD E,A
+ LD D,000H
+ CALL L5E99
+ LD A,(HL)
+ OR A
+ JR Z,L836E ; (+003H)
+ SUB 008H
+ LD (HL),A
+L836E: LD A,(L83F8)
+ CP 080H
+ JR C,L8377 ; (+002H)
+ NEG
+L8377: PUSH HL
+ CALL L7DA6
+ EX DE,HL
+ LD (L8473),HL
+ LD E,A
+ LD D,000H
+ CALL L5E99
+ LD A,(L83F8)
+ AND 080H
+ INC HL
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ EX DE,HL
+ POP HL
+ CALL L7985
+ LD A,(L84CE)
+ LD DE,0846CH
+ CP 005H
+ JR Z,L83A0 ; (+003H)
+ LD DE,L845D
+L83A0: CALL L7BB3
+ PUSH HL
+ LD DE,(08473H)
+ LD HL,(L8471)
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ CALL L7EA4
+ EX (SP),HL
+ CALL L797C
+ POP DE
+ CALL L7C9E
+ PUSH DE
+ CALL L5E93
+ POP HL
+ PUSH DE
+ LD E,L
+ LD D,H
+ CALL L7BB3
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD DE,L8403
+ CALL L7985
+ EX DE,HL
+ POP HL
+ CALL L7BB3
+ LD DE,L610D
+ CALL L7D99
+ CALL L7985
+ CALL L7D9E
+ EX DE,HL
+ LD HL,(L8471)
+ CALL L7BB3
+ LD DE,L83FE
+ CALL L7BB3
+ POP DE
+ CALL L7985
+ POP BC
+ RET
+
+L83F8: NOP
+L83F9: LD A,A
+ LD E,(HL)
+ LD E,E
+ RET C
+ XOR C
+L83FE: LD A,A
+ LD C,H
+ CALL Z,0CDCCH
+L8403: ADD A,C
+ LD D,L
+ LD D,L
+ LD D,L
+ LD D,(HL)
+L8408: ADD A,C
+ DEC (HL)
+ INC B
+ DI
+ INC (HL)
+ ADD A,C
+ JR L8447 ; (+037H)
+
+ RET P
+ LD D,D
+ ADD A,C
+ DEC BC
+L8414: SUB L
+ POP BC
+ CALL PO,00581H
+ XOR D
+ JP 08168H
+
+ LD (BC),A
+ CALL 09986H
+ ADD A,C
+ LD BC,0D164H
+ CALL P,L0081
+ OR C
+ IN D,(C)
+ ADD A,C
+ NOP
+ LD E,B
+ RST 010H
+ OUT (080H),A
+ DEC (HL)
+ INC B
+ DI
+ INC (HL)
+ ADD A,B
+ LD D,A
+ LD B,H
+ CALL M,L80CB
+ LD L,D
+ RET NZ
+ ADD A,0E8H
+ ADD A,B
+ LD (HL),L
+ DEC H
+ LD A,L
+ LD D,080H
+ LD A,D
+ ADD A,E
+L8447: OR D
+ CALL C,L7D80
+ LD A,00CH
+ DEC C
+ ADD A,B
+ LD A,(HL)
+ SBC A,(HL)
+ LD DE,0805DH
+ LD A,A
+ LD C,(HL)
+ BIT 3,D
+L8458: LD A,D
+ EX AF,AF'
+ ADC A,B
+ ADC A,B
+ ADC A,C
+L845D: ADD A,B
+ LD SP,L1772
+ RET M
+L8462: ADD A,B
+ LD SP,L1772
+ RET M
+L8467: ADD A,C
+ JR C,L8414 ; (-056H)
+ DEC SP
+ LD HL,(03180H)
+ LD (HL),D
+ RLA
+ RET M
+L8471: DS 2, 000H
+L8473: DS 2, 000H
+L8475: DS 4, 000H
+L8479: DS 4, 000H
+L847D: DS 2, 000H
+L847F: DS 2, 000H
+L8481: DS 2, 000H
+L8483: DS 2, 000H
+L8485: DB 000H
+L8486: DB 000H
+L8487: DS 2, 000H
+L8489: DS 2, 000H
+L848B: DS 4, 000H
+L848F: DB 000H
+L8490: DS 2, 000H
+ DB 015H
+ DB 000H
+ DB 0EBH
+ DB 0FFH
+ DS 2, 000H
+L8498: DS 2, 000H
+L849A: DS 2, 000H
+L849C: DS 7, 000H
+L84A3: DB 000H
+L84A4: DS 3, 000H
+L84A7: DB 000H
+L84A8: DS 4, 000H
+L84AC: DB 000H
+L84AD: DS 8, 000H
+L84B5: DS 25, 000H
+L84CE: DB 008H ; Splash screen / banner text
+L84CF: DS 8, 000H
+L84D7: DS 8, 000H
+L84DF: DS 8, 000H
+L84E7: DB 016H
+ DB 00DH
+ DB 020H
+ DS 38, 0D7H
+ DS 4, 020H
+ DB "BASIC ",005H,"INTERPRETER"
+ DS 2, 020H
+ DB 006H,"MZ-5Z"
+ DS 2, 030H
+ DB "8 V1.1Z ",00DH
+ DS 3, 020H
+ DB 043H,005H,"OPYRIGHT ",006H,"(C) 1984 ",005H,"BY ",006H,"SHARP CORP."
+ DS 5, 020H
+ DS 38, 0CFH
+ DB 020H,00DH,020H,005H,"30134 BYTES FR"
+ DS 2, 045H
+ DS 2, 00DH
+ DS 93, 000H
+
+; =============================================================================
+; $RFS - ROM Filing System device module (Direct SD Card Access)
+;
+; V1.0Z: Bypasses the RFS ROM entirely. All SD card access is done via
+; direct SPI through the picoZ80 hardware SPI emulation at EFFBh/EFFCh.
+;
+; Only OUT(E3H) is needed to map MMIO for SPI port access, and OUT(E1H)
+; to return to DRAM. No ROM banking, no BNKSELUSER, no lower memory
+; switching required.
+;
+; SPI protocol:
+; SPIOUT: LD (HWSPIDATA),A ; LD (HWSPISTART),A (send byte)
+; SPIIN: LD (HWSPISTART),A ; LD A,(HWSPIDATA) (receive byte)
+;
+; SD card sector read (CMD17):
+; CS LOW -> CMD17(0x51) + 4-byte sector + 0xFF -> poll R1(0x00) ->
+; poll data token(0xFE) -> read 512 bytes -> 2 CRC -> CS HIGH
+;
+; SD image layout: each drive = 0x8010 sectors (directory + file blocks).
+; Drive 0 at sector 0, drive 1 at 0x8010, drive 2 at 0x10020, etc.
+; RFS1: = SD drive 3, RFS7: = SD drive 9 (SDDRIVENO = ZCH + 3, offset +3 skips boot drives 0-2).
+;
+; Directory: 16 entries per sector, 32 bytes each:
+; [0] FLAG1 (bit7=active), [1] ATRB, [2..18] NAME (17, null-term),
+; [19..22] START_SECTOR (4 bytes, big-endian),
+; [23..24] SIZE (2 bytes, LE), [25..26] DTADR (2 bytes, LE),
+; [27..28] EXADR (2 bytes, LE), [29..31] reserved.
+;
+; Device chain: $QD -> $RFS -> $USR -> NULL
+; =============================================================================
+
+; ---------------------------------------------------------------------------
+; $RFS Device Descriptor (29 bytes header + 22 bytes state = 51 bytes)
+; ---------------------------------------------------------------------------
+$RFS: DW $USR ; Next device = $USR
+ DB "RFS",000H ; Device name
+ DB 05FH ; flags1: bit5=1 ZINP-based DIR, bit6=1 ZRO enum capable
+ DB 007H ; flags2: max channel 7 (bit7 must be 0, SVC #39 errors if set)
+ DB 0FFH ; dirmx: 255 (max directory entries)
+ DW RFSINIT ; ZINIT handler
+ DW RFSRO ; ZRO handler (LOAD: find file, extract header)
+ DW RFSWO ; ZWO handler (SAVE: sets ELMD20 SIZE)
+ DW RFSSTRT ; ZCL/ZSTRT handler
+ DW 00000H ; ZKL (not used)
+ DW RFSINP_DIR ; ZINP handler (DIR buffer fill + LOAD data)
+ DW RFSOUT ; ZOUT handler (triggers RFSWO on first call during SAVE)
+ DW 00000H ; ZDELT (not used)
+ DW RFSDIR ; ZWDIR handler (stub)
+ DW RFSFREE ; ZFREE handler
+; Device state area (22 bytes) - BASIC reads/writes state at descriptor+29..+50.
+; Without this, BASIC reads into code bytes causing "Disk mismatch" errors.
+RFSST00: DB 000H ; +29: state byte 0
+RFSST01: DB 000H ; +30: state byte 1
+RFSST02: DB 000H ; +31: state byte 2
+RFSST03: DS 3, 000H ; +32..+34: state bytes 3-5
+RFSST06: DB 000H ; +35: state byte 6
+RFSST07: DS 2, 000H ; +36..+37: state bytes 7-8
+RFSST09: DB 000H ; +38: state byte 9
+RFSST10: DB 000H ; +39: state byte 10
+RFSST11: DB 000H ; +40: state byte 11
+RFSST12: DB 000H ; +41: state byte 12
+RFSST13: DS 4, 000H ; +42..+45: state bytes 13-16
+RFSST17: DS 4, 000H ; +46..+49: state bytes 17-20
+RFSST21: DB 000H ; +50: state byte 21
+
+; ---------------------------------------------------------------------------
+; RFSFREE - Free space query (not supported, return carry)
+; ---------------------------------------------------------------------------
+RFSFREE: XOR A
+ SCF
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSINIT - Initialize RFS device
+; ---------------------------------------------------------------------------
+RFSINIT: XOR A
+ LD (SAVE_PENDING),A ; Clear at start of any operation
+ LD (DIR_FILLED),A ; Clear so next ZINP does DIR fill
+ LD (DIR_ENTRY_IDX),A ; Reset directory entry enumerator
+ LD A,0FFH
+ LD (DIRSECBUF),A ; Invalidate sector cache
+ LD A,(ZCH)
+ ADD A,003H ; RFS1:=drive 3, skipping boot drives 0-2
+ LD (SDDRIVENO),A
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSSTRT - Start/Open device (A=0 means open, A!=0 means close)
+; ---------------------------------------------------------------------------
+RFSSTRT: OR A
+ RET NZ ; Close = just return
+ LD A,(ZCH)
+ ADD A,003H ; RFS1:=drive 3, skipping boot drives 0-2
+ LD (SDDRIVENO),A
+ ;
+ ; V1.1Y: Reset RFSRO state so file search starts from entry 0.
+ ; Without this, LOAD after DIR/SAVE fails: RFSRO resumes from
+ ; the post-DIR DIR_ENTRY_IDX position and misses files at earlier
+ ; directory indices ("File not found" for files that exist).
+ XOR A
+ LD (DIR_ENTRY_IDX),A
+ LD A,0FFH
+ LD (DIRSECBUF),A ; Invalidate sector cache (stale after SAVE)
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSDIR - ZWDIR handler (stub, not called with bit5=1 in flags1)
+; ---------------------------------------------------------------------------
+RFSDIR: XOR A
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSWO - Write Open (ZWO handler)
+;
+; BASIC calls ZWO from BOTH the OPEN handler and L1CE4 SAVE path, THEN
+; calls ZOUT. If we do the actual write here, the file gets created
+; multiple times and the premature directory entry triggers "Already exist"
+; during BASIC's own duplicate check.
+;
+; RFSWO calculates SIZE = TEXTED - TEXTST and stores it in ELMD20.
+; This is essential because the SAVE path for bit-5 devices never populates
+; ELMD20, leaving RFSDOWRITE to read SIZE=0. The actual SD write is still
+; deferred to RFSOUT (ZOUT) via the SAVE_PENDING one-shot flag.
+; ---------------------------------------------------------------------------
+RFSWO: LD HL,(TEXTED) ; End of BASIC text area
+ LD DE,(TEXTST) ; Start of BASIC text area
+ OR A
+ SBC HL,DE ; HL = program size in bytes
+ LD (ELMD20),HL ; Store SIZE for RFSDOWRITE
+ XOR A ; A=0, NC = success
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSDOWRITE - Actual SD card write (called from RFSOUT only)
+;
+; Performs the complete save operation:
+; 1. Finds a free directory entry
+; 2. Calculates the file's start sector from entry number
+; 3. Writes file data sector-by-sector (toggling DRAM/MMIO)
+; 4. Re-reads directory sector, fills entry, writes it back
+;
+; Entry: ELMD filled with file header (ATRB, NAME, SIZE, DTADR, EXADR)
+; For type 2 (BASIC): ELMD20=SIZE, source data at TEXTST
+; For type 1 (machine code): ELMD20=DTADR, ELMD18=SIZE
+; Exit: NC = success, C = error
+; ---------------------------------------------------------------------------
+RFSDOWRITE: PUSH HL
+ PUSH DE
+ PUSH BC
+ ;
+ ; Get file info from ELMD — field mapping depends on file type.
+ ; BASIC SAVE (type 2) stores SIZE in ELMD20 and source is TEXTST.
+ ; Machine code SAVE (type 1) uses ELMD18=SIZE, ELMD20=DTADR.
+ LD A,(ELMD)
+ CP 002H
+ JR NZ,WO_NONBASIC
+ ;
+ ; Type 2 (BASIC): SIZE in ELMD20, source at TEXTST
+ LD HL,(ELMD20) ; SIZE (program length)
+ LD (FILE_SIZE),HL
+ LD HL,(TEXTST) ; Source = start of BASIC text
+ LD (FILE_LOADADDR),HL
+ JR WO_GOTINFO
+ ;
+WO_NONBASIC:
+ ; Non-BASIC: SIZE in ELMD18, source at ELMD20
+ LD HL,(ELMD18) ; SIZE
+ LD (FILE_SIZE),HL
+ LD HL,(ELMD20) ; DTADR (source address for data)
+ LD (FILE_LOADADDR),HL
+WO_GOTINFO:
+ ;
+ ; Set up drive number
+ LD A,(ZCH)
+ ADD A,003H ; RFS1:=drive 3
+ LD (SDDRIVENO),A
+ ;
+ ; Enter MMIO mode
+ CALL MMIO_ON
+ ;
+ ; Reset directory cache
+ LD A,0FFH
+ LD (DIRSECBUF),A
+ ;
+ ; --- Find free directory entry ---
+ LD E,000H
+ LD B,000H ; 256 entries (DJNZ wraps)
+WO_SCAN: PUSH BC
+ PUSH DE
+ CALL GETSDDIRENT
+ POP DE
+ POP BC
+ OR A
+ JP NZ,WO_IOERR ; SD read error
+ LD A,(HL)
+ BIT 7,A
+ JR Z,WO_FOUND ; Bit 7 clear = free slot
+ INC E
+ DJNZ WO_SCAN
+ JP WO_IOERR ; Directory full
+ ;
+WO_FOUND: ; E = free entry number
+ LD A,E
+ LD (SAVE_DIRENT),A
+ ;
+ ; --- Calculate start sector: E * 128 + 16 ---
+ ; E * 128 = E << 7, result fits 16 bits (max 255*128=32640)
+ LD H,000H
+ LD L,E ; HL = entry number
+ ADD HL,HL ; *2
+ ADD HL,HL ; *4
+ ADD HL,HL ; *8
+ ADD HL,HL ; *16
+ ADD HL,HL ; *32
+ ADD HL,HL ; *64
+ ADD HL,HL ; *128
+ LD DE,00010H ; +16 (directory sectors)
+ ADD HL,DE
+ LD D,000H
+ LD E,000H ; DEHL = relative sector
+ CALL RFSGETSECTR ; DEHL = absolute sector
+ CALL SETLBAADDR ; Store in SDSTARTSEC
+ ;
+ ; --- Write file data sector-by-sector ---
+WO_WLOOP: LD HL,(FILE_SIZE)
+ LD A,H
+ OR L
+ JR Z,WO_WDONE ; No data left
+ ;
+ ; Map DRAM to read source data
+ OUT (PORT_DRAM),A
+ ;
+ ; Calculate bytes to copy: min(FILE_SIZE, 512)
+ LD HL,(FILE_SIZE)
+ LD DE,00200H ; 512
+ OR A
+ SBC HL,DE
+ JR C,WO_PARTIAL
+ ;
+ ; Full sector: remaining = HL
+ LD (FILE_SIZE),HL
+ LD BC,00200H
+ JR WO_COPY
+ ;
+WO_PARTIAL: ; Less than 512 bytes left
+ ADD HL,DE ; Restore HL = FILE_SIZE
+ LD B,H
+ LD C,L ; BC = bytes to copy
+ PUSH BC ; Save actual byte count
+ LD HL,0
+ LD (FILE_SIZE),HL
+ ;
+ ; Zero-fill SECTORBUF first for partial sector
+ LD HL,SECTORBUF
+ LD DE,SECTORBUF + 1
+ PUSH BC
+ LD BC,001FFH ; 511 bytes
+ LD (HL),000H
+ LDIR
+ POP BC
+ POP BC ; Restore actual byte count
+ ;
+WO_COPY: LD HL,(FILE_LOADADDR)
+ LD DE,SECTORBUF
+ LDIR ; Copy source data to SECTORBUF
+ LD (FILE_LOADADDR),HL ; Update source address
+ ;
+ ; Map MMIO for SPI write
+ OUT (PORT_MMIO),A
+ ;
+ ; Write SECTORBUF to current sector
+ CALL SD_WRITE
+ OR A
+ JP NZ,WO_IOERR
+ ;
+ ; Increment sector for next write
+ CALL INC_STARTSEC
+ JR WO_WLOOP
+ ;
+ ; --- Write directory entry ---
+WO_WDONE: ; Ensure MMIO is active
+ OUT (PORT_MMIO),A
+ ;
+ ; Re-read the directory sector containing our entry
+ LD A,0FFH
+ LD (DIRSECBUF),A ; Force re-read
+ LD A,(SAVE_DIRENT)
+ LD E,A
+ PUSH DE
+ CALL GETSDDIRENT ; HL = entry in SECTORBUF
+ POP DE
+ OR A
+ JP NZ,WO_IOERR
+ ;
+ ; HL = 32-byte entry in SECTORBUF. Fill it.
+ ; FLAG1 = 0x80 (active)
+ LD (HL),080H
+ INC HL
+ ;
+ ; ATRB: remap type 02 -> 05 for SD storage
+ LD A,(ELMD) ; Disk BASIC type
+ CP 002H
+ JR NZ,WO_AT1
+ LD A,005H ; BTX -> MZ-700 BASIC tape type
+WO_AT1: LD (HL),A
+ INC HL
+ ;
+ ; NAME: 17 bytes from ELMD1, CR -> null
+ PUSH DE
+ LD DE,ELMD1
+ LD B,17
+WO_NM: LD A,(DE)
+ CP 00DH ; CR?
+ JR NZ,WO_NM1
+ XOR A ; CR -> null for SD
+WO_NM1: LD (HL),A
+ INC HL
+ INC DE
+ DJNZ WO_NM
+ POP DE
+ ;
+ ; START_SECTOR: 4 bytes (calculate from entry number)
+ PUSH HL ; Save directory entry pointer
+ LD A,(SAVE_DIRENT)
+ LD H,000H
+ LD L,A
+ ADD HL,HL ; *2
+ ADD HL,HL ; *4
+ ADD HL,HL ; *8
+ ADD HL,HL ; *16
+ ADD HL,HL ; *32
+ ADD HL,HL ; *64
+ ADD HL,HL ; *128
+ LD DE,00010H ; +16
+ ADD HL,DE ; HL = relative start sector (16-bit)
+ ; Store as big-endian 32-bit (D=0, E=0, H, L)
+ EX DE,HL ; DE = sector
+ POP HL ; HL = entry pointer
+ LD (HL),000H ; Byte 0 (MSB) = 0
+ INC HL
+ LD (HL),000H ; Byte 1 = 0
+ INC HL
+ LD (HL),D ; Byte 2
+ INC HL
+ LD (HL),E ; Byte 3 (LSB)
+ INC HL
+ ;
+ ; SIZE: 2 bytes LE — read original from ELMD (FILE_SIZE is 0 after write loop).
+ PUSH DE
+ LD A,(ELMD)
+ CP 002H
+ JR NZ,WO_SZ_NB
+ LD DE,(ELMD20) ; BASIC: SIZE in ELMD20
+ JR WO_SZ_OK
+WO_SZ_NB: LD DE,(ELMD18) ; Non-BASIC: SIZE in ELMD18
+WO_SZ_OK: LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ ;
+ ; DTADR: 2 bytes LE — read original from ELMD/TEXTST.
+ LD A,(ELMD)
+ CP 002H
+ JR NZ,WO_DA_NB
+ LD DE,(TEXTST) ; BASIC: load address is TEXTST
+ JR WO_DA_OK
+WO_DA_NB: LD DE,(ELMD20) ; Non-BASIC: DTADR in ELMD20
+WO_DA_OK: LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ ;
+ ; EXADR: 2 bytes LE from ELMD22
+ LD DE,(ELMD22)
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ ;
+ ; RESERVED: 3 bytes zero
+ LD (HL),000H
+ INC HL
+ LD (HL),000H
+ INC HL
+ LD (HL),000H
+ POP DE
+ ;
+ ; Write the directory sector back to SD
+ ; Calculate directory sector address
+ LD A,(SAVE_DIRENT)
+ SRL A
+ SRL A
+ SRL A
+ SRL A ; A = dir sector number (0-15)
+ LD DE,0
+ LD H,0
+ LD L,A
+ CALL RFSGETSECTR ; DEHL = absolute dir sector
+ CALL SETLBAADDR
+ CALL SD_WRITE
+ OR A
+ JR NZ,WO_IOERR
+ ;
+ ; Success
+ CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ XOR A ; NC = success
+ RET
+ ;
+WO_IOERR: CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ XOR A
+ SCF ; C = error
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSOUT - Write Data (ZOUT handler for SAVE)
+;
+; BASIC's SAVE path calls ZOUT after ZWO. Since RFSWO is now a no-op,
+; RFSOUT is the single entry point for the actual write. On the first
+; call (SAVE_PENDING=0, cleared by RFSINIT), we call RFSDOWRITE to do
+; the full SD card write in one shot (reading directly from DTADR in
+; memory). Sets SAVE_PENDING=1 after, so subsequent calls are no-ops.
+; ---------------------------------------------------------------------------
+RFSOUT: LD A,(SAVE_PENDING)
+ OR A
+ JR NZ,RFSOUT_NOP ; Already written (1 = done), return success
+ INC A ; A = 1
+ LD (SAVE_PENDING),A ; Mark as done (one-shot)
+ JP RFSDOWRITE ; Do the full SD write and return
+RFSOUT_NOP: XOR A ; A=0, NC = success
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSRO - Read One directory entry (ZRO handler).
+;
+; V1.1V: Rewritten as directory entry enumerator.
+;
+; ZRO is called by BASIC for two purposes:
+; 1. L1C0F file search loop (HL=KEYBUF) — enumerate entries, compare names
+; 2. L1D53 DIR buffer fill loop (HL=L2000+offset) — fill 32-byte entries
+;
+; Each call returns one valid 32-byte MZF directory entry at the buffer
+; pointed to by HL (the caller's HL passed through IOCALL). The internal
+; DIR_ENTRY_IDX counter advances across calls; RFSINIT resets it to 0.
+;
+; Entry: HL = target buffer (32 bytes, set by caller before IOCALL)
+; Exit: NC = valid entry written to (HL), A = entry type (ATRB byte)
+; CF = no more entries (A=0)
+; ---------------------------------------------------------------------------
+RFSRO:
+ ; Save target buffer address for CONVERT_ENTRY
+ LD (DIR_BUFPTR),HL
+ ;
+ ; Save registers on BASIC stack (before MMIO_ON switches stacks)
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ ;
+ ; Set up drive number
+ LD A,(ZCH)
+ ADD A,003H ; RFS1:=drive 3
+ LD (SDDRIVENO),A
+ ;
+ ; Enter MMIO mode (switches to temp stack, enables SPI)
+ CALL MMIO_ON
+ ;
+ ; Clear 32 bytes at target buffer (below D000H, accessible in MMIO)
+ LD HL,(DIR_BUFPTR)
+ LD B,32
+RFSRO_CLR: LD (HL),000H
+ INC HL
+ DJNZ RFSRO_CLR
+ ;
+RFSRO_NEXT:
+ ; Get current entry index
+ LD A,(DIR_ENTRY_IDX)
+ LD E,A
+ ;
+ ; Read directory entry from SD card
+ CALL GETSDDIRENT ; HL=entry in SECTORBUF, A=status
+ OR A
+ JR NZ,RFSRO_END ; SD read error → done
+ ;
+ ; Check if entry is active (FLAG1 bit 7 set)
+ LD A,(HL)
+ BIT 7,A
+ JR Z,RFSRO_SKIP ; Inactive, skip
+ ;
+ ; Check ATRB at offset 1 — reject 0x00 (empty) and 0xFF (uninit)
+ INC HL
+ LD A,(HL)
+ DEC HL ; HL back to entry start
+ OR A
+ JR Z,RFSRO_SKIP ; ATRB=0, skip
+ CP 0FFH
+ JR Z,RFSRO_SKIP ; ATRB=0xFF, skip
+ ;
+ ; Valid entry: convert SD format to MZF format at DIR_BUFPTR
+ ; (DIR_BUFPTR was set at RFSRO entry from caller's HL)
+ ; HL = SD entry in SECTORBUF
+ CALL CONVERT_ENTRY
+ ;
+ ; Advance entry index for next call
+ LD A,(DIR_ENTRY_IDX)
+ INC A
+ LD (DIR_ENTRY_IDX),A
+ ;
+ ; Debug: show entry delivered
+ PUSH AF
+ OUT (PORT_DRAM),A ; Switch to DRAM for debug I/O
+ LD A,'R'
+ OUT (050H),A
+ LD A,'O'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD A,(DIR_ENTRY_IDX)
+ DEC A ; Show the index we just returned
+ CALL DBG_HEX
+ CALL DBG_CRLF
+ OUT (PORT_MMIO),A ; Back to MMIO
+ POP AF
+ ;
+ ; Success: exit MMIO, restore regs, return NC
+ CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ ;
+ ; Return ATRB value in A, NC = success
+ LD HL,(DIR_BUFPTR)
+ LD A,(HL) ; A = ATRB byte (first byte of MZF entry)
+ OR A ; Clear carry
+ RET
+ ;
+RFSRO_SKIP:
+ ; Advance to next entry
+ LD A,(DIR_ENTRY_IDX)
+ INC A
+ LD (DIR_ENTRY_IDX),A
+ JR Z,RFSRO_END ; Wrapped 255->0: all 256 scanned
+ JR RFSRO_NEXT
+ ;
+RFSRO_END:
+ ; No more entries (or SD error)
+ CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ XOR A ; A=0
+ SCF ; CF = no more entries
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSINP_DIR - ZINP handler for $RFS device
+;
+; For bit-5 devices, BASIC calls ZINP for three purposes:
+; 1. Disk identity read (H >= 28H) — returns zeros at 2800-28FF
+; 2. DIR buffer fill (DIR_FILLED=0, H < 28H) — fills 2000-27FF
+; 3. LOAD data transfer (DIR_FILLED=1, H < 28H) — reads from SD card
+;
+; IMPORTANT: H >= 28H MUST be checked first, before DIR_FILLED.
+; BASIC's data transfer path (L2AD2 → L2FD1 → L2FE8 → L2E36 → L2E67)
+; does an identity read (H=28H) AFTER the DIR buffer fill has set
+; DIR_FILLED=1. If DIR_FILLED were checked first, this identity read
+; would incorrectly dispatch to RFSINP_LD.
+;
+; Returns: carry clear, A=0 (success)
+; ---------------------------------------------------------------------------
+RFSINP_DIR:
+ ; Debug: trace every ZINP call
+ PUSH AF
+ LD A,'Z'
+ OUT (050H),A
+ LD A,H
+ CALL DBG_HEX
+ CALL DBG_CRLF
+ POP AF
+ ;
+ ; LOAD data path: BASIC's LOAD for bit5=0 devices calls ZINP once
+ ; via JP 019BBH (XOR A; CALL L18B6; CALL L1929). Entry A=0 signals
+ ; "load file data now" — skip DIR fill and identity checks entirely.
+ ; The byte-at-a-time refill path (L19B4) enters with A=0xFF (OR 0AFH).
+ OR A
+ JP Z,RFSINP_LD ; A=0 → LOAD path: read file to DTADR
+ ;
+ ; Identity reads (H >= 28H) MUST go to RFSINP_DISKID regardless of
+ ; DIR_FILLED, because BASIC does identity validation (L2E36 → L2E67 →
+ ; L2FD4 → IOCALL) AFTER the DIR buffer fill has set DIR_FILLED=1.
+ ; If DIR_FILLED were checked first, the identity read would dispatch
+ ; to RFSINP_LD instead of RFSINP_DISKID → identity validation fails.
+ LD A,H
+ CP 028H
+ JP NC,RFSINP_DISKID ; H >= 28H → identity (always)
+ ;
+ ; H < 28H: DIR buffer fill or data transfer
+ LD A,(DIR_FILLED)
+ OR A
+ JP NZ,RFSINP_LD ; DIR already filled → data transfer
+ ;
+ ; --- DIR mode: enumerate files into 0x2000 buffer ---
+ ;
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ ;
+ ; Clear DIR buffer 0x2000-0x27FF (2048 bytes = 64 entries x 32)
+ LD HL,L2000
+ LD DE,L2000 + 1
+ LD BC,007FFH
+ LD (HL),000H
+ LDIR
+ ;
+ ; Set up SD drive from channel number
+ LD A,(ZCH)
+ ADD A,003H ; RFS1:=drive 3, skipping boot drives 0-2
+ LD (SDDRIVENO),A
+ ;
+ ; Entry 0 at 0x2000: skip marker (0x80)
+ LD HL,L2000
+ LD (HL),080H
+ ;
+ ; Enter MMIO mode
+ CALL MMIO_ON
+ ;
+ ; Reset directory sector cache
+ LD A,0FFH
+ LD (DIRSECBUF),A
+ ;
+ ; Scan SD directory, fill MZF entries starting at 0x2020
+ LD HL,L2000 + 020H
+ LD (DIR_BUFPTR),HL ; Current buffer write position
+ LD E,000H ; E = SD directory entry index (0-255)
+ LD D,03FH ; D = remaining buffer entries (max 63)
+ LD B,000H ; B = 256 entries to scan (DJNZ wraps)
+ ;
+RDIR_LOOP: PUSH BC
+ PUSH DE
+ CALL GETSDDIRENT ; HL = entry in SECTORBUF, A = status
+ POP DE
+ POP BC
+ OR A
+ JR NZ,RDIR_DONE ; SD read error, stop
+ ;
+ ; Debug: dump first 4 entries (E=0..3) FLAG1+ATRB
+ LD A,E
+ CP 004H
+ JR NC,RDIR_NDBG ; Only dump entries 0-3
+ PUSH HL
+ PUSH AF
+ LD A,'['
+ OUT (050H),A
+ LD A,E
+ CALL DBG_HEX ; Entry number
+ LD A,']'
+ OUT (050H),A
+ POP AF
+ POP HL
+ PUSH HL
+ PUSH BC
+ ; Dump 8 bytes from entry
+ LD B,008H
+RDIR_DBLP: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ RDIR_DBLP
+ CALL DBG_CRLF
+ POP BC
+ POP HL
+ ;
+RDIR_NDBG:
+ ; Check if entry is active (FLAG1 bit 7) AND has valid ATRB.
+ ; Uninitialized SD entries (0xFF fill) have bit 7 set but ATRB=0xFF,
+ ; so we reject ATRB=0x00 (empty) and ATRB=0xFF (uninitialized).
+ ; All other values (0x01-0xFE) are accepted, including non-standard
+ ; file types like 0x7E found on some partitions.
+ LD A,(HL)
+ BIT 7,A
+ JR Z,RDIR_NEXT ; Inactive (FLAG1 bit7=0), skip
+ INC HL
+ LD A,(HL) ; A = ATRB (offset 1)
+ DEC HL ; HL back to entry start
+ OR A
+ JR Z,RDIR_NEXT ; ATRB=0 → invalid, skip
+ CP 0FFH
+ JR Z,RDIR_NEXT ; ATRB=0xFF → uninitialized, skip
+ ;
+ ; Convert SD entry at HL to MZF format in DIR buffer
+ PUSH DE
+ PUSH BC
+ CALL CONVERT_ENTRY ; HL=SD entry, writes to (DIR_BUFPTR)
+ POP BC
+ POP DE
+ DEC D ; One fewer buffer slot
+ JR Z,RDIR_DONE ; Buffer full
+ ;
+RDIR_NEXT: INC E ; Next SD directory entry
+ DJNZ RDIR_LOOP
+ ;
+RDIR_DONE: CALL MMIO_OFF
+ ; Debug: show how many entries found (D started at 63, remaining = D)
+ PUSH AF
+ LD A,'F'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ LD A,03FH ; 63 max
+ SUB D ; A = entries found
+ CALL DBG_HEX
+ CALL DBG_CRLF
+ POP AF
+ ;
+ POP BC
+ POP DE
+ POP HL
+ LD A,001H
+ LD (DIR_FILLED),A ; Mark DIR buffer as filled
+ XOR A ; A=0, carry clear = success
+ RET
+ ;
+ ; --- Disk identity mode: zero L2800-L28FF ---
+ ; L2E36 validates: (L2800) exact + L2806-L28FF bitmask against
+ ; stored reference. L2E77/L2E84 modifies L2801-L2805 and writes
+ ; computed values at L2806+. By presenting all-zeros consistently,
+ ; L2E84 computes the same result each time → reference matches.
+ ;
+RFSINP_DISKID:
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,02800H
+ LD DE,02801H
+ LD BC,000FFH ; 255 bytes: L2800-L28FF
+ LD (HL),000H
+ LDIR
+ POP BC
+ POP DE
+ POP HL
+ XOR A ; A=0, carry clear = success
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSINP_LD - LOAD data transfer (ZINP with ZLOG != 0)
+;
+; Reads file data sector-by-sector from SD card into the load address.
+; For bit-5 devices, BASIC's LOAD path does NOT call ZRO and does not
+; set ZLOG. RFSINP_DIR dispatches here when DIR_FILLED=1 (DIR buffer
+; already populated). We find the file in the SD directory via FINDSD,
+; extract SIZE, DTADR, and start sector directly from the SD entry.
+; ---------------------------------------------------------------------------
+RFSINP_LD: ; Debug: trace RFSINP_LD entry
+ PUSH AF
+ LD A,'I'
+ OUT (050H),A
+ LD A,'L'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ ; Dump ELMD1 first 8 chars
+ PUSH HL
+ PUSH BC
+ LD HL,ELMD1
+ LD B,008H
+ILD_DMP: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ ILD_DMP
+ CALL DBG_CRLF
+ POP BC
+ POP HL
+ POP AF
+ ;
+ ; V1.1Y: Save entry A value (0=SVC #30 LOAD, nonzero=SVC #33 refill).
+ ; RLD_DONE needs this to skip status byte writes when L180B still points
+ ; at SVC #2C self-modifying code (0x1A85, set by prior DIR's SVC #2E).
+ LD (RFS_LD_A0),A
+ ;
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ ;
+ ; Set up drive number
+ LD A,(ZCH)
+ ADD A,003H ; RFS1:=drive 3, skipping boot drives 0-2
+ LD (SDDRIVENO),A
+ ;
+ ; Enter MMIO mode
+ CALL MMIO_ON
+ ;
+ ; Reset directory sector cache
+ LD A,0FFH
+ LD (DIRSECBUF),A
+ ;
+ ; Find file by name in SD directory to get start sector
+ LD DE,ELMD1
+ CALL FINDSD
+ JP NZ,RLD_NFERR ; File not found
+ ;
+ ; HL = directory entry in SECTORBUF
+ ; Skip FLAG1(1) + ATRB(1) + NAME(17) = 19 bytes to START_SECTOR
+ LD DE,19
+ ADD HL,DE
+ ;
+ ; Copy 4-byte start sector to FILE_STARTSEC (big-endian)
+ LD DE,FILE_STARTSEC
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ ;
+ ; HL now at offset 22 (last byte of START_SECTOR).
+ ; Read SIZE(2) and DTADR(2) from the SD directory entry
+ ; (offset 23..26) instead of ELMD, which may not be populated
+ ; for bit-5 device LOAD paths.
+ INC HL ; HL = offset 23 = SIZE low
+ LD E,(HL)
+ INC HL ; HL = offset 24 = SIZE high
+ LD D,(HL)
+ EX DE,HL ; HL = SIZE
+ LD (FILE_SIZE),HL
+ EX DE,HL ; HL = offset 24 again
+ INC HL ; HL = offset 25 = DTADR low
+ LD E,(HL)
+ INC HL ; HL = offset 26 = DTADR high
+ LD D,(HL)
+ EX DE,HL ; HL = DTADR
+ LD (FILE_LOADADDR),HL
+ ;
+ ; For BASIC programs (ELMD type 2/BTX), override FILE_LOADADDR
+ ; with TEXTST. The file's DTADR reflects whatever system it was
+ ; saved on and may point inside Disk BASIC code. BASIC's own
+ ; SVC 038H rechain (called in the LOAD command handler at L5C44)
+ ; rebuilds all next-line pointers from scratch, so the data just
+ ; needs to land at the current TEXTST.
+ LD A,(ELMD) ; File attribute byte
+ CP 002H ; Type 2 = BTX (BASIC text)?
+ JR NZ,RLD_NORLOC ; No → use DTADR as-is
+ LD HL,(TEXTST) ; Current text area start
+ LD (FILE_LOADADDR),HL
+RLD_NORLOC:
+ ;
+ ; Convert FILE_STARTSEC to absolute sector (add drive offset)
+ LD A,(FILE_STARTSEC)
+ LD D,A
+ LD A,(FILE_STARTSEC+1)
+ LD E,A
+ LD A,(FILE_STARTSEC+2)
+ LD H,A
+ LD A,(FILE_STARTSEC+3)
+ LD L,A
+ CALL RFSGETSECTR ; DEHL += drive_offset
+ ;
+ ; Store absolute sector in SDSTARTSEC for SD_READ
+ LD A,D
+ LD (SDSTARTSEC),A
+ LD A,E
+ LD (SDSTARTSEC+1),A
+ LD A,H
+ LD (SDSTARTSEC+2),A
+ LD A,L
+ LD (SDSTARTSEC+3),A
+ ;
+ ; Debug: dump FILE_STARTSEC, absolute sector, SIZE, DTADR
+ ; Switch to DRAM for debug output (port 050H may need DRAM)
+ PUSH AF
+ OUT (PORT_DRAM),A
+ LD A,'I'
+ OUT (050H),A
+ LD A,'S'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ ; FILE_STARTSEC (4 bytes)
+ LD A,(FILE_STARTSEC)
+ CALL DBG_HEX
+ LD A,(FILE_STARTSEC+1)
+ CALL DBG_HEX
+ LD A,(FILE_STARTSEC+2)
+ CALL DBG_HEX
+ LD A,(FILE_STARTSEC+3)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ ; Absolute sector (SDSTARTSEC, 4 bytes)
+ LD A,'A'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD A,(SDSTARTSEC)
+ CALL DBG_HEX
+ LD A,(SDSTARTSEC+1)
+ CALL DBG_HEX
+ LD A,(SDSTARTSEC+2)
+ CALL DBG_HEX
+ LD A,(SDSTARTSEC+3)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ ; SIZE
+ LD A,'Z'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD A,(FILE_SIZE+1) ; High byte
+ CALL DBG_HEX
+ LD A,(FILE_SIZE) ; Low byte
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ ; DTADR
+ LD A,'D'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD A,(FILE_LOADADDR+1) ; High byte
+ CALL DBG_HEX
+ LD A,(FILE_LOADADDR) ; Low byte
+ CALL DBG_HEX
+ CALL DBG_CRLF
+ ; Switch back to MMIO
+ OUT (PORT_MMIO),A
+ POP AF
+ ;
+RLD_LOOP: ; Read one sector into SECTORBUF
+ CALL SD_READ
+ OR A
+ JR NZ,RLD_ERR
+ ;
+ ; Map DRAM to copy data (target may be >= D000H)
+ OUT (PORT_DRAM),A
+ ;
+ ; Calculate bytes to copy: min(FILE_SIZE, 512)
+ LD HL,(FILE_SIZE)
+ LD DE,00200H ; 512
+ OR A
+ SBC HL,DE ; HL = FILE_SIZE - 512
+ JR C,RLD_PARTIAL ; FILE_SIZE < 512
+ ;
+ ; Full sector: remaining = HL, copy 512 bytes
+ LD (FILE_SIZE),HL
+ LD BC,00200H
+ JR RLD_COPY
+ ;
+RLD_PARTIAL:; Partial sector: remaining = 0, copy FILE_SIZE bytes
+ ADD HL,DE ; Restore HL = FILE_SIZE
+ LD B,H
+ LD C,L ; BC = bytes to copy
+ LD HL,0
+ LD (FILE_SIZE),HL ; Done after this
+ ;
+RLD_COPY: LD HL,SECTORBUF
+ LD DE,(FILE_LOADADDR)
+ LDIR ; Copy sector data to target
+ LD (FILE_LOADADDR),DE ; Update target address
+ ;
+ ; Check if all data transferred
+ LD HL,(FILE_SIZE)
+ LD A,H
+ OR L
+ JR Z,RLD_DONE ; All done
+ ;
+ ; Increment SDSTARTSEC for next sector
+ CALL INC_STARTSEC
+ ;
+ ; Map MMIO for next sector read
+ OUT (PORT_MMIO),A
+ JR RLD_LOOP
+ ;
+RLD_DONE: ; Map MMIO so MMIO_OFF can work (it expects temp stack)
+ OUT (PORT_MMIO),A
+ CALL MMIO_OFF
+ ;
+ ; V1.1Y: Only write status bytes when entered via SVC #33 refill path
+ ; (A≠0 at entry). The SVC #30 LOAD path (A=0) leaves L180B pointing at
+ ; 0x1A85 (set by prior DIR's SVC #2E), which is inside SVC #2C's
+ ; self-modifying LD HL,nnnn instruction (opcode 0x21 at 0x1A83).
+ ; Writing 0xFF there corrupts the opcode to RST 38H, breaking all
+ ; subsequent device-open calls ("Dev. name error" after LOAD).
+ ; SVC #30 callers don't read the status bytes, so skipping is safe.
+ LD A,(RFS_LD_A0)
+ OR A
+ JR Z,RLD_SKIP_STAT
+ ;
+ ; SVC #33 refill path: write status bytes at (L180B)-2 to 0xFF,0xFF
+ ; = "last block, all done". L1AEF already set L180B to a safe buffer.
+ LD HL,(L180B)
+ DEC HL
+ LD (HL),0FFH ; (L180B)-1 = 0xFF
+ DEC HL
+ LD (HL),0FFH ; (L180B)-2 = 0xFF
+ ;
+RLD_SKIP_STAT:
+ POP BC
+ POP DE
+ POP HL
+ XOR A ; NC = success
+ RET
+ ;
+RLD_ERR: CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ XOR A
+ SCF ; Carry = error
+ RET
+ ;
+RLD_NFERR: CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ XOR A
+ SCF ; Carry = file not found
+ RET
+
+; ===========================================================================
+; Low-level SD card access routines
+; ===========================================================================
+
+; ---------------------------------------------------------------------------
+; MMIO_ON - Enter MMIO mode for SPI access
+;
+; Saves BASIC stack pointer, switches to temp stack, disables interrupts,
+; maps MMIO (D000-FFFF), and trains the upCntr latch.
+; After return, caller is on temp stack and can access EFF8-EFFF.
+; ---------------------------------------------------------------------------
+MMIO_ON: POP HL ; Get return address (from BASIC stack)
+ LD (SAVE_SP),SP ; Save BASIC SP
+ LD SP,TEMP_STACK_TOP ; Switch to temp stack
+ PUSH HL ; Push return address on temp stack
+ DI
+ XOR A
+ OUT (PORT_MMIO),A ; Map D000-FFFF to MMIO
+ CALL TRAIN_UPCNTR ; Train latch (15 reads of EFF8H)
+ RET ; Return to caller (via temp stack)
+
+; ---------------------------------------------------------------------------
+; MMIO_OFF - Leave MMIO mode, restore DRAM and BASIC stack
+;
+; Maps D000-FFFF back to DRAM, enables interrupts, restores BASIC stack.
+; ---------------------------------------------------------------------------
+MMIO_OFF: POP HL ; Get return address (from temp stack)
+ XOR A
+ OUT (PORT_DRAM),A ; Map D000-FFFF to DRAM
+ EI
+ LD SP,(SAVE_SP) ; Restore BASIC stack
+ JP (HL) ; Return to caller (on BASIC stack)
+
+; ---------------------------------------------------------------------------
+; TRAIN_UPCNTR - Train the RFS register latch (upCntr) to 15
+;
+; Reads BNKCTRLRST 15 times to enable control register writes.
+; Entry: MMIO must be mapped (OUT E3H done)
+; Exit: A = 0, HL and B modified
+; ---------------------------------------------------------------------------
+TRAIN_UPCNTR:
+ LD HL,BNKCTRLRST ; EFF8H
+ LD B,15
+TRAIN_LP: LD A,(HL) ; Each read increments upCntr
+ DJNZ TRAIN_LP
+ XOR A
+ RET
+
+; ---------------------------------------------------------------------------
+; SPIOUT - Send one byte via hardware SPI
+; Entry: A = byte to send
+; Exit: A unchanged
+; ---------------------------------------------------------------------------
+SPIOUT: LD (HWSPIDATA),A ; Write data to SPI register
+ LD (HWSPISTART),A ; Start SPI transfer (clocks 8 bits)
+ RET
+
+; ---------------------------------------------------------------------------
+; SPIIN - Receive one byte via hardware SPI
+; Entry: (none)
+; Exit: A = received byte
+; ---------------------------------------------------------------------------
+SPIIN: LD (HWSPISTART),A ; Clock 8 bits (sends whatever was in A)
+ LD A,(HWSPIDATA) ; Read received byte
+ RET
+
+; ---------------------------------------------------------------------------
+; SPI_CS_LO - Activate SD card chip select (CS LOW)
+; ---------------------------------------------------------------------------
+SPI_CS_LO: LD A,SDCS_ACT ; CS LOW, clock enable
+ LD (BNKCTRL),A
+ RET
+
+; ---------------------------------------------------------------------------
+; SPI_CS_HI - Deactivate SD card chip select (CS HIGH)
+; ---------------------------------------------------------------------------
+SPI_CS_HI: LD A,SDCS_DEACT ; CS HIGH, clock enable
+ LD (BNKCTRL),A
+ RET
+
+; ---------------------------------------------------------------------------
+; SD_READ - Read one 512-byte sector from SD card into SECTORBUF
+;
+; Entry: SDSTARTSEC = 32-bit sector address (big-endian, 4 bytes)
+; MMIO must be mapped, upCntr trained
+; Exit: A = 0 success, A = 1 error
+; SECTORBUF contains 512 bytes of sector data
+; Modified: A, B, D, HL
+; ---------------------------------------------------------------------------
+SD_READ: CALL SPI_CS_LO ; CS LOW (activate card)
+ ;
+ ; Send CMD17 (Read Single Block): 0x51 + 4-byte sector + 0xFF
+ LD A,051H ; CMD17
+ CALL SPIOUT
+ LD A,(SDSTARTSEC) ; Sector byte 0 (MSB)
+ CALL SPIOUT
+ LD A,(SDSTARTSEC+1) ; Sector byte 1
+ CALL SPIOUT
+ LD A,(SDSTARTSEC+2) ; Sector byte 2
+ CALL SPIOUT
+ LD A,(SDSTARTSEC+3) ; Sector byte 3 (LSB)
+ CALL SPIOUT
+ LD A,0FFH ; CRC (dummy, ignored by emulation)
+ CALL SPIOUT
+ ;
+ ; Poll for R1 response (should be 0x00, not 0xFF)
+ LD B,0FFH ; Max 255 retries
+SDR_R1: CALL SPIIN
+ CP 0FFH
+ JR NZ,SDR_GOTR1 ; Got non-0xFF response
+ DJNZ SDR_R1
+ JR SDR_ERR ; Timeout
+ ;
+SDR_GOTR1: OR A ; R1 should be 0x00 (no error)
+ JR NZ,SDR_ERR
+ ;
+ ; Poll for data token (0xFE)
+ LD B,0FFH
+SDR_TOK: CALL SPIIN
+ CP 0FEH ; Data token?
+ JR Z,SDR_DATA ; Yes, start reading data
+ CP 0FFH ; Still busy?
+ JR NZ,SDR_ERR ; Error token
+ DJNZ SDR_TOK
+ JR SDR_ERR ; Timeout
+ ;
+ ; Read 512 bytes into SECTORBUF (2 pages of 256 bytes)
+SDR_DATA: LD HL,SECTORBUF
+ LD D,002H ; 2 pages
+SDR_PG: LD B,000H ; 256 bytes per page (B=0 wraps DJNZ)
+SDR_BYTE: CALL SPIIN
+ LD (HL),A
+ INC HL
+ DJNZ SDR_BYTE
+ DEC D
+ JR NZ,SDR_PG
+ ;
+ ; Skip 2 CRC bytes
+ CALL SPIIN
+ CALL SPIIN
+ ;
+ CALL SPI_CS_HI ; CS HIGH (deactivate)
+ XOR A ; A = 0, success
+ RET
+ ;
+SDR_ERR: CALL SPI_CS_HI ; CS HIGH on error too
+ LD A,001H ; A = 1, error
+ RET
+
+; ---------------------------------------------------------------------------
+; SD_WRITE - Write one 512-byte sector from SECTORBUF to SD card
+;
+; Entry: SDSTARTSEC = 32-bit sector address (big-endian, 4 bytes)
+; SECTORBUF contains 512 bytes to write
+; MMIO must be mapped, upCntr trained
+; Exit: A = 0 success, A = 1 error
+; Modified: A, B, D, HL
+; ---------------------------------------------------------------------------
+SD_WRITE: CALL SPI_CS_LO ; CS LOW (activate card)
+ ;
+ ; Send CMD24 (Write Single Block): 0x58 + 4-byte sector + 0xFF
+ LD A,058H ; CMD24
+ CALL SPIOUT
+ LD A,(SDSTARTSEC)
+ CALL SPIOUT
+ LD A,(SDSTARTSEC+1)
+ CALL SPIOUT
+ LD A,(SDSTARTSEC+2)
+ CALL SPIOUT
+ LD A,(SDSTARTSEC+3)
+ CALL SPIOUT
+ LD A,0FFH ; Dummy CRC
+ CALL SPIOUT
+ ;
+ ; Poll for R1 response (should be 0x00)
+ LD B,0FFH
+SDW_R1: CALL SPIIN
+ CP 0FFH
+ JR NZ,SDW_GOTR1
+ DJNZ SDW_R1
+ JR SDW_ERR ; Timeout
+ ;
+SDW_GOTR1: OR A
+ JR NZ,SDW_ERR ; R1 error
+ ;
+ ; Send data token 0xFE
+ LD A,0FEH
+ CALL SPIOUT
+ ;
+ ; Send 512 bytes from SECTORBUF (2 pages of 256)
+ LD HL,SECTORBUF
+ LD D,002H
+SDW_PG: LD B,000H ; 256 bytes per page
+SDW_BYTE: LD A,(HL)
+ CALL SPIOUT
+ INC HL
+ DJNZ SDW_BYTE
+ DEC D
+ JR NZ,SDW_PG
+ ;
+ ; Send 2 dummy CRC bytes
+ LD A,0FFH
+ CALL SPIOUT
+ CALL SPIOUT
+ ;
+ ; Read data response token: xxx00101 = accepted (0x05)
+ CALL SPIIN
+ AND 01FH
+ CP 005H
+ JR NZ,SDW_ERR
+ ;
+ ; Wait for busy (card holds MISO low while writing)
+ LD D,040H ; Outer loop: 64
+SDW_BSY1: LD B,000H ; Inner loop: 256 -> 64*256=16384 polls
+SDW_BSY2: CALL SPIIN
+ CP 0FFH ; 0xFF = not busy
+ JR Z,SDW_DONE
+ DJNZ SDW_BSY2
+ DEC D
+ JR NZ,SDW_BSY1
+ JR SDW_ERR ; Timeout
+ ;
+SDW_DONE: CALL SPI_CS_HI
+ XOR A ; A = 0, success
+ RET
+ ;
+SDW_ERR: CALL SPI_CS_HI
+ LD A,001H ; A = 1, error
+ RET
+
+; ===========================================================================
+; Directory and file access routines
+; ===========================================================================
+
+; ---------------------------------------------------------------------------
+; ADD3216 - Add 16-bit BC to 32-bit DEHL
+;
+; Entry: DEHL = 32-bit number, BC = 16-bit addend
+; Exit: DEHL = DEHL + BC
+; Modified: BC (set to 0)
+; ---------------------------------------------------------------------------
+ADD3216: ADD HL,BC
+ EX DE,HL
+ LD BC,0
+ ADC HL,BC ; Add carry to upper 16 bits
+ EX DE,HL
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSGETSECTR - Calculate absolute SD sector from drive-relative sector
+;
+; Adds (SDDRIVENO * 0x8010) to DEHL.
+; Each drive image occupies 0x8010 sectors in the SD card image.
+;
+; Entry: DEHL = relative sector (32-bit)
+; SDDRIVENO = drive number (0 = first drive, 1 = second, etc.)
+; Exit: DEHL = absolute sector
+; Modified: A, BC
+; ---------------------------------------------------------------------------
+RFSGETSECTR:
+ LD A,(SDDRIVENO)
+GETSEC_LP: OR A
+ RET Z ; Drive 0 = no offset
+ DEC A
+ LD BC,08010H ; Sectors per drive image
+ CALL ADD3216
+ JR GETSEC_LP
+
+; ---------------------------------------------------------------------------
+; SETLBAADDR - Store DEHL into SDSTARTSEC (big-endian)
+;
+; Entry: DEHL = 32-bit sector (D=MSB, L=LSB)
+; Exit: SDSTARTSEC updated
+; Modified: A
+; ---------------------------------------------------------------------------
+SETLBAADDR: LD A,D
+ LD (SDSTARTSEC),A
+ LD A,E
+ LD (SDSTARTSEC+1),A
+ LD A,H
+ LD (SDSTARTSEC+2),A
+ LD A,L
+ LD (SDSTARTSEC+3),A
+ RET
+
+; ---------------------------------------------------------------------------
+; INC_STARTSEC - Increment SDSTARTSEC by 1 (32-bit big-endian)
+; Modified: HL
+; ---------------------------------------------------------------------------
+INC_STARTSEC:
+ LD HL,SDSTARTSEC+3 ; LSB
+ INC (HL)
+ RET NZ
+ DEC HL ; Byte 2
+ INC (HL)
+ RET NZ
+ DEC HL ; Byte 1
+ INC (HL)
+ RET NZ
+ DEC HL ; MSB
+ INC (HL)
+ RET
+
+; ---------------------------------------------------------------------------
+; GETSDDIRENT - Get SD directory entry with sector caching
+;
+; Reads the directory sector containing entry E if not cached, then
+; returns a pointer to the entry within SECTORBUF.
+;
+; Entry: E = directory entry number (0-255)
+; MMIO mapped, upCntr trained
+; Exit: HL = pointer to 32-byte entry in SECTORBUF
+; A = 0 success, A = 1 error
+; Modified: A, BC, DE, HL
+; ---------------------------------------------------------------------------
+GETSDDIRENT:
+ PUSH DE
+ ;
+ ; Calculate which sector this entry is in (E / 16)
+ LD A,E
+ SRL A
+ SRL A
+ SRL A
+ SRL A ; A = sector number within directory
+ ;
+ ; Check if this sector is already cached
+ LD C,A
+ LD A,(DIRSECBUF)
+ CP C
+ JR Z,GDIR_CACHED ; Same sector, use cached data
+ ;
+ ; Need to read a new sector
+ LD A,C
+ LD (DIRSECBUF),A ; Update cache tag
+ ;
+ ; Calculate absolute sector: drive_offset + dir_sector
+ LD DE,0
+ LD H,0
+ LD L,A ; DEHL = directory sector (relative)
+ CALL RFSGETSECTR ; DEHL = absolute sector
+ CALL SETLBAADDR ; Store in SDSTARTSEC
+ CALL SD_READ ; Read sector into SECTORBUF
+ OR A
+ JR NZ,GDIR_ERR
+ ;
+GDIR_CACHED:; Calculate offset within sector: (E & 0x0F) * 32
+ POP DE
+ PUSH DE
+ LD A,E
+ AND 00FH ; Entry within sector (0-15)
+ LD HL,SECTORBUF
+ OR A
+ JR Z,GDIR_DONE ; First entry, no offset needed
+ ;
+ ; Add A * 32 to HL
+ LD B,A
+ LD DE,00020H ; 32 bytes per entry
+GDIR_ADD: ADD HL,DE
+ DJNZ GDIR_ADD
+ ;
+GDIR_DONE: POP DE
+ XOR A ; A = 0, success
+ RET
+ ;
+GDIR_ERR: POP DE
+ LD A,001H ; A = 1, error
+ RET
+
+; ---------------------------------------------------------------------------
+; FINDSD - Find file by name in SD card directory
+;
+; Searches all 256 directory entries for an active entry whose filename
+; matches the string at DE (prefix match: input terminated by CR or null).
+;
+; Entry: DE = filename string (CR or null terminated)
+; MMIO mapped, upCntr trained, DIRSECBUF set to 0xFF
+; Exit: Z flag set = found, HL = directory entry in SECTORBUF
+; NZ flag = not found
+; Modified: A, BC, DE, HL
+; ---------------------------------------------------------------------------
+FINDSD: LD (FINDSD_NAME),DE ; Save search name pointer
+ LD E,000H ; E = directory entry index
+ LD B,000H ; B = 256 entries (DJNZ wraps from 0)
+ ;
+FSD_LOOP: PUSH BC
+ PUSH DE
+ CALL GETSDDIRENT ; HL = entry, A = status
+ POP DE
+ POP BC
+ OR A
+ JR NZ,FSD_NF ; Read error = not found
+ ;
+ ; Check if entry is active (FLAG1 bit 7) AND has valid ATRB.
+ ; Accept all non-zero, non-0xFF ATRB (01-FE).
+ LD A,(HL)
+ BIT 7,A
+ JR Z,FSD_NEXT ; Inactive, skip
+ INC HL
+ LD A,(HL) ; A = ATRB (offset 1)
+ DEC HL ; HL back to entry start
+ OR A
+ JR Z,FSD_NEXT ; ATRB=0 → invalid, skip
+ CP 0FFH
+ JR Z,FSD_NEXT ; ATRB=0xFF → uninitialized, skip
+ ;
+ ; Compare filename: dir entry name at HL+2 vs search name
+ PUSH HL ; Save entry start
+ PUSH DE
+ PUSH BC
+ INC HL
+ INC HL ; HL = directory entry name (offset 2)
+ LD DE,(FINDSD_NAME) ; DE = search name
+ LD B,17 ; Max filename length
+ ;
+FSD_CMP: LD A,(DE)
+ CP 00DH ; CR terminator?
+ JR Z,FSD_MATCH ; Input ended = prefix match
+ OR A ; Null terminator?
+ JR Z,FSD_MATCH
+ CP (HL) ; Compare characters
+ JR NZ,FSD_NOMATCH
+ INC DE
+ INC HL
+ DJNZ FSD_CMP
+ ; All 17 characters matched
+ ;
+FSD_MATCH: POP BC
+ POP DE
+ POP HL ; HL = entry start
+ XOR A ; Z flag = found
+ RET
+ ;
+FSD_NOMATCH:POP BC
+ POP DE
+ POP HL
+ ;
+FSD_NEXT: INC E ; Next directory entry
+ DJNZ FSD_LOOP
+ ;
+FSD_NF: LD A,001H
+ OR A ; NZ flag = not found
+ RET
+
+; ---------------------------------------------------------------------------
+; EXTRACT_HDR - Extract file header from SD directory entry
+;
+; Converts SD directory entry fields to MZF format in ELMD, and saves
+; the file's absolute start sector in FILE_STARTSEC for data transfer.
+;
+; Entry: HL = directory entry in SECTORBUF (MMIO mapped)
+; SDDRIVENO set for current drive
+; Exit: ELMD filled with MZF header (ATRB, NAME, SIZE, DTADR, EXADR)
+; FILE_STARTSEC set to absolute start sector
+; Modified: A, BC, DE, HL
+; ---------------------------------------------------------------------------
+EXTRACT_HDR:
+ INC HL ; Skip FLAG1, HL = ATRB (offset 1)
+ ;
+ ; Copy ATRB to ELMD[0], remapping CMT type 05 -> Disk BASIC type 02
+ LD DE,ELMD
+ LD A,(HL)
+ CP 005H ; CMT type 05 = MZ-700 BASIC text
+ JR NZ,EH_AT1
+ LD A,002H ; Disk BASIC type 02 = BTX
+EH_AT1: LD (DE),A
+ INC HL ; HL = NAME (offset 2)
+ INC DE ; DE = ELMD+1
+ ;
+ ; Copy 17-byte filename, converting null to CR
+ LD B,17
+EH_NAME: LD A,(HL)
+ OR A
+ JR NZ,EH_NM1
+ LD A,00DH ; Null -> CR for BASIC
+EH_NM1: LD (DE),A
+ INC HL
+ INC DE
+ DJNZ EH_NAME
+ ;
+ ; HL at offset 19: START_SECTOR (4 bytes, big-endian)
+ ; DE at ELMD+18
+ PUSH DE ; Save ELMD position
+ ;
+ ; Copy 4-byte start sector to FILE_STARTSEC
+ LD DE,FILE_STARTSEC
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ INC HL ; HL at offset 23: SIZE
+ ;
+ ; Copy SIZE(2) + DTADR(2) + EXADR(2) = 6 bytes to ELMD
+ POP DE ; DE = ELMD+18
+ LD BC,6
+ LDIR
+ ;
+ ; Convert FILE_STARTSEC to absolute sector (add drive offset)
+ LD A,(FILE_STARTSEC)
+ LD D,A
+ LD A,(FILE_STARTSEC+1)
+ LD E,A
+ LD A,(FILE_STARTSEC+2)
+ LD H,A
+ LD A,(FILE_STARTSEC+3)
+ LD L,A
+ CALL RFSGETSECTR ; DEHL += drive_offset
+ ;
+ ; Store absolute sector back to FILE_STARTSEC
+ LD A,D
+ LD (FILE_STARTSEC),A
+ LD A,E
+ LD (FILE_STARTSEC+1),A
+ LD A,H
+ LD (FILE_STARTSEC+2),A
+ LD A,L
+ LD (FILE_STARTSEC+3),A
+ RET
+
+; ---------------------------------------------------------------------------
+; CONVERT_ENTRY - Convert SD directory entry to Disk BASIC DIR buffer format
+;
+; Writes a 32-byte directory entry to the DIR buffer at (DIR_BUFPTR)
+; and advances DIR_BUFPTR by 32. Format matches standard MZ Disk BASIC
+; floppy directory layout so LOAD/SAVE work correctly.
+;
+; SD entry format: FLAG1(1), ATRB(1), NAME(17), SECTOR(4), SIZE(2), DTADR(2), EXADR(2), RESV(3)
+; Disk BASIC format: ATRB(1), NAME(17), STARTSEC(2), SIZE(2), DTADR(2), EXADR(2), pad(6)
+;
+; Entry: HL = SD directory entry in SECTORBUF
+; Exit: DIR_BUFPTR advanced by 32
+; Modified: A, BC, DE, HL
+; ---------------------------------------------------------------------------
+CONVERT_ENTRY:
+ INC HL ; Skip FLAG1
+ ;
+ ; Copy ATRB to buffer, remapping CMT type 05 -> Disk BASIC type 02
+ LD DE,(DIR_BUFPTR)
+ LD A,(HL)
+ CP 005H ; CMT type 05 = MZ-700 BASIC text
+ JR NZ,CE_AT1
+ LD A,002H ; Disk BASIC type 02 = BTX
+CE_AT1: LD (DE),A
+ INC HL ; HL = NAME (offset 2)
+ INC DE
+ ;
+ ; Copy 17-byte filename, null -> CR
+ LD B,17
+CE_NAME: LD A,(HL)
+ OR A
+ JR NZ,CE_NM1
+ LD A,00DH
+CE_NM1: LD (DE),A
+ INC HL
+ INC DE
+ DJNZ CE_NAME
+ ;
+ ; HL now at SD offset 19 = START_SECTOR (4 bytes, big-endian)
+ ; Write 2-byte start sector placeholder at DIR offset 18-19
+ ; then SIZE(2)+DTADR(2)+EXADR(2) at DIR offsets 20-25.
+ ; BASIC reads SIZE from DIR offset 20 (IY+14H), DTADR from 22,
+ ; EXADR from 24. The 2-byte slot at 18 must exist for alignment.
+ INC HL ; Skip START_SECTOR[0]
+ INC HL ; Skip START_SECTOR[1]
+ LD A,(HL)
+ LD (DE),A ; DIR[18] = START_SECTOR[2]
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A ; DIR[19] = START_SECTOR[3]
+ INC HL
+ INC DE
+ ;
+ ; Copy SIZE(2) + DTADR(2) + EXADR(2) = 6 bytes to DIR offset 20-25
+ LD BC,6
+ LDIR
+ ;
+ ; Remaining 8 bytes already zeroed by buffer clear
+ ; Advance DIR_BUFPTR by 32
+ LD HL,(DIR_BUFPTR)
+ LD DE,00020H
+ ADD HL,DE
+ LD (DIR_BUFPTR),HL
+ RET
+
+; ---------------------------------------------------------------------------
+; MEMCLI_PATCH - Trampoline from L4020 (MEMCLI).
+; Original code was: RST 018H / DB 020H / EX DE,HL
+; SVC 020H programs the boot beep timer and (critically) enables interrupts.
+; We must still call it, then load HL with RFS_END for the memory clear.
+; ---------------------------------------------------------------------------
+MEMCLI_PATCH:
+ RST 018H
+ DB 020H ; SVC 020H: boot beep + EI
+ LD HL,RFS_END
+ JP L4023 ; Continue with memory clear loop
+
+; ---------------------------------------------------------------------------
+; RFS_LOAD_HOOK - Trampoline for L3153 data transfer
+;
+; Replaces CALL L32CB + CALL L3174 in L3153. Checks if the current device
+; is $RFS (by comparing the ZINP handler pointer). For $RFS, performs SD
+; card data transfer via RFSINP_LD instead of the FD/QD hardware path.
+; For all other devices, calls the original L32CB + L3174 sequence.
+;
+; ---------------------------------------------------------------------------
+; RFS_DIR_FIX — Trampoline for DIR device-name parsing.
+; L593A's success path jumps here instead of directly to L596B.
+; We advance HL past the ':' so the INC/DEC zero-test at L596B sees
+; end-of-text (0x00) rather than ':' (0x3A).
+; ---------------------------------------------------------------------------
+RFS_DIR_FIX:
+ LD DE,L5982
+ INC HL ; Advance HL past ':'.
+ JP L596B
+;
+; ---------------------------------------------------------------------------
+; RFS_DIR_STR — Hook for L5962 string expression path.
+; Called instead of L6E6F when L593A's letter parsing fails (e.g., DIR "RFS1:").
+; Evaluates the string expression, then copies the device name (up to ':')
+; into L5982 and sets B = length for SVC #2CH.
+; Entry: HL = text pointer (at '"'), B = 0
+; Exit: HL advanced past expression, B = name length, DE = L5982
+; ---------------------------------------------------------------------------
+RFS_DIR_STR:
+ CALL L6E6F ; Evaluate string expr. B=strlen, DE=strptr
+ PUSH HL ; Save text pointer (past closing quote)
+ EX DE,HL ; HL = string data pointer
+ LD DE,L5982 ; DE = name buffer
+ LD A,B ; A = string length
+ OR A
+ JR Z,DSTR_DONE ; Empty string → B stays 0
+ LD C,A ; C = remaining chars
+ LD B,000H ; B = bytes copied
+DSTR_LP: LD A,(HL) ; Get char from string
+ LD (DE),A ; Copy to name buffer
+ INC HL
+ INC DE
+ INC B ; Count
+ DEC C
+ CP 03AH ; ':' ?
+ JR Z,DSTR_DONE ; Stop after ':'
+ LD A,C
+ OR A
+ JR NZ,DSTR_LP ; Loop if more chars
+DSTR_DONE: LD DE,L5982 ; DE = start of name buffer (for SVC #2CH)
+ POP HL ; Restore text pointer
+ RET
+;
+; Entry: BC = SIZE (file size to load), stack = L10F0 stack
+; Exit: A=0 NC on success; carry on error. Registers preserved.
+; ---------------------------------------------------------------------------
+RFS_LOAD_HOOK:
+ ; Debug: trace L3153 hook entry
+ PUSH AF
+ LD A,'L'
+ OUT (050H),A
+ LD A,'H'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ ; Show BC (SIZE)
+ LD A,B
+ CALL DBG_HEX
+ LD A,C
+ CALL DBG_HEX
+ CALL DBG_CRLF
+ POP AF
+ ;
+ LD HL,(ZINP) ; Current device ZINP handler
+ PUSH DE
+ LD DE,RFSINP_DIR ; $RFS handler address
+ OR A
+ SBC HL,DE
+ POP DE
+ JR Z,RFLH_RFS
+ ;
+ ; Not $RFS — call original FD/QD transfer
+ CALL L32CB
+ JP L3174
+ ;
+RFLH_RFS: ; $RFS device: transfer file data from SD card.
+ ; Debug: show ELMD contents before RFSINP_LD
+ PUSH AF
+ PUSH HL
+ PUSH BC
+ LD A,'L'
+ OUT (050H),A
+ LD A,'D'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ ; Dump ELMD[0..7] (ATRB + first 7 chars of name)
+ LD HL,ELMD
+ LD B,008H
+RFLH_DMP1: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ RFLH_DMP1
+ CALL DBG_CRLF
+ ; Dump ELMD18-ELMD23 (SIZE+DTADR+EXADR)
+ LD A,'E'
+ OUT (050H),A
+ LD A,'M'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD HL,ELMD18
+ LD B,006H
+RFLH_DMP2: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ RFLH_DMP2
+ CALL DBG_CRLF
+ POP BC
+ POP HL
+ POP AF
+ ;
+ CALL RFSINP_LD
+ ; Debug: show return status
+ PUSH AF
+ LD A,'L'
+ OUT (050H),A
+ LD A,'R'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ JR C,RFLH_ERR
+ LD A,'K'
+ OUT (050H),A
+ JR RFLH_DONE
+RFLH_ERR: LD A,'E'
+ OUT (050H),A
+RFLH_DONE: CALL DBG_CRLF
+ POP AF
+ JP L3101
+
+; ===========================================================================
+; DBG_DIRCMD1 — Debug wrapper for L58CA (DIR handler 1: device-name path).
+; Outputs "1E\n" on port 050H as version/path marker, then original logic.
+; ===========================================================================
+DBG_DIRCMD1:
+ LD A,'1' ; DIR path 1 marker
+ OUT (050H),A
+ LD A,'M' ; Version letter M
+ OUT (050H),A
+ CALL DBG_CRLF
+ CALL L593A ; Original: parse device name
+ RST 018H
+ DB 03AH ; SVC #3A: list directory
+ RET
+
+; ===========================================================================
+; DBG_DIRCMD2 — Debug wrapper for L58D0 (DIR handler 2: string-expr path).
+; Outputs "2E\n" on port 050H as version/path marker, then original logic.
+; ===========================================================================
+DBG_DIRCMD2:
+ LD A,'2' ; DIR path 2 marker
+ OUT (050H),A
+ LD A,'M' ; Version letter M
+ OUT (050H),A
+ CALL DBG_CRLF
+ CALL L413E ; Original: check current char
+ LD B,000H
+ CALL NZ,L6E6F ; Evaluate string expression
+ JP L58D8 ; Continue at PUSH HL / SVC #2C / SVC #3C
+
+; ===========================================================================
+; DBG_DIR — Debug wrapper replacing L596B for DIR SVC #2C.
+; Outputs trace info on port 050H, then performs the original SVC call and
+; error check. Format:
+; D:BB NAMESTR... (before SVC: B=count, name from DE)
+; K:xx xx xx xx xx xx (after SVC: KEYBUF[0..5])
+; =HHHH:VV (after SVC: HL pointer and (HL) value)
+; ===========================================================================
+DBG_DIR:
+ PUSH AF
+ ; --- Before SVC: output "D:" + B (hex) + space + name string ---
+ LD A,'D'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD A,B
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ ; Output the name (B chars from DE)
+ PUSH BC
+ PUSH DE
+ LD A,B
+ OR A
+ JR Z,DBG_NN
+DBG_NLP: LD A,(DE)
+ OUT (050H),A
+ INC DE
+ DJNZ DBG_NLP
+DBG_NN: POP DE
+ POP BC
+ CALL DBG_CRLF
+ POP AF
+ ; --- Call SVC #2C (original L596B logic) ---
+ PUSH HL
+ RST 018H
+ DB 02CH
+ ; --- After SVC: dump KEYBUF[0..7] ---
+ PUSH AF
+ PUSH BC
+ PUSH DE
+ PUSH HL ; save SVC result HL
+ LD A,'K'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD HL,KEYBUF
+ LD B,008H
+DBG_KLP: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ DBG_KLP
+ CALL DBG_CRLF
+ POP HL ; restore SVC result HL
+ ; --- Output "=" + HL (4 hex) + ":" + (HL) (2 hex) ---
+ LD A,'='
+ OUT (050H),A
+ LD A,H
+ CALL DBG_HEX
+ LD A,L
+ CALL DBG_HEX
+ LD A,':'
+ OUT (050H),A
+ LD A,(HL)
+ CALL DBG_HEX
+ CALL DBG_CRLF
+ POP DE
+ POP BC
+ POP AF
+ ; --- Original error check ---
+ INC (HL)
+ DEC (HL)
+ JP NZ,04B25H
+ POP HL
+ RET
+;
+; ---------------------------------------------------------------------------
+; DBG_HEX — Output A as 2 hex ASCII digits to port 050H.
+; Preserves BC, DE, HL.
+; ---------------------------------------------------------------------------
+DBG_HEX: PUSH AF
+ RRCA
+ RRCA
+ RRCA
+ RRCA
+ AND 00FH
+ CALL DBG_NIB
+ POP AF
+ AND 00FH
+DBG_NIB: CP 00AH
+ JR C,DBG_DIG
+ ADD A,037H ; 'A'..'F'
+ OUT (050H),A
+ RET
+DBG_DIG: ADD A,030H ; '0'..'9'
+ OUT (050H),A
+ RET
+;
+; ---------------------------------------------------------------------------
+; DBG_CRLF — Output CR+LF to port 050H. Preserves all registers.
+; ---------------------------------------------------------------------------
+DBG_CRLF: PUSH AF
+ LD A,00DH ; CR
+ OUT (050H),A
+ LD A,00AH ; LF
+ OUT (050H),A
+ POP AF
+ RET
+
+; ===========================================================================
+; DBG_DIR3 — Debug wrapper for L5CE3 (the real DIR command handler).
+; Replicates the full DIR flow with debug markers around each SVC call.
+; Output format on port 050H:
+; D3:E (entry marker + version)
+; 82:AA (L5882 result in A, hex)
+; 2E:AA C=x B1=x (SVC #2E result: A, carry flag, bit1 of A)
+; C2: (L58C2 done)
+; 3A:AA (L593A result: channel in A)
+; 39a: (SVC #39 with A=0 done)
+; 3Ac:AA (SVC #3A with A=channel done)
+; 39b:AA (SVC #39 with A=orig done)
+; D3:X (exit marker)
+; ===========================================================================
+DBG_DIR3:
+ ; --- Entry marker ---
+ LD A,'D'
+ OUT (050H),A
+ LD A,'3'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD A,'M' ; Version M
+ OUT (050H),A
+ CALL DBG_CRLF
+ ; --- Call L5882 (original first instruction) ---
+ CALL L5882
+ ; --- Debug: show L5882 result ---
+ PUSH AF
+ PUSH AF
+ LD A,'8'
+ OUT (050H),A
+ LD A,'2'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ POP AF
+ PUSH AF
+ CALL DBG_HEX ; show A from L5882
+ CALL DBG_CRLF
+ POP AF
+ ; --- PUSH AF (as original) ---
+ ; AF is already on stack from our PUSH above
+ ; --- SVC #2E ---
+ RST 018H
+ DB 02EH
+ ; --- Debug: show SVC #2E result ---
+ PUSH AF ; save flags from SVC #2E
+ PUSH AF
+ LD A,'2'
+ OUT (050H),A
+ LD A,'E'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ POP AF
+ PUSH AF
+ CALL DBG_HEX ; show A from SVC #2E
+ LD A,' '
+ OUT (050H),A
+ LD A,'C'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ POP AF
+ JR C,DBG_D3_CY1
+ LD A,'0'
+ JR DBG_D3_CY1D
+DBG_D3_CY1:
+ LD A,'1'
+DBG_D3_CY1D:
+ OUT (050H),A
+ CALL DBG_CRLF
+ POP AF ; restore flags from SVC #2E
+ ; --- JP C,L57B4 (error 0x2C on carry) ---
+ JP C,L57B4
+ ; --- BIT 1,A / JP Z,057B7H ---
+ PUSH AF
+ LD A,'B'
+ OUT (050H),A
+ LD A,'1'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ POP AF
+ BIT 1,A
+ PUSH AF
+ JR Z,DBG_D3_B0
+ LD A,'1'
+ JR DBG_D3_B1D
+DBG_D3_B0:
+ LD A,'0'
+DBG_D3_B1D:
+ OUT (050H),A
+ CALL DBG_CRLF
+ POP AF
+ JP Z,057B7H ; error 0xBB if bit1=0
+ ; --- CALL L58C2 (check ZLOG) ---
+ CALL L58C2
+ LD A,'C'
+ OUT (050H),A
+ LD A,'2'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD A,'K' ; OK
+ OUT (050H),A
+ CALL DBG_CRLF
+ ; --- CALL L593A (parse device name) ---
+ CALL L593A
+ ; --- Debug: show L593A result (channel in A) ---
+ PUSH AF
+ LD A,'3'
+ OUT (050H),A
+ LD A,'A'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ POP AF
+ PUSH AF
+ CALL DBG_HEX ; show channel
+ CALL DBG_CRLF
+ POP AF
+ ; --- LD B,A / XOR A / SVC #39 (A=0) ---
+ LD B,A
+ ;
+ ; Debug V1.1J: dump ZINP pointer and ZFLAG1 before SVC #39
+ PUSH BC
+ LD A,'I' ; "IP=" marker for ZINP
+ OUT (050H),A
+ LD A,'P'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ LD A,(ZINP+1) ; High byte of ZINP pointer
+ CALL DBG_HEX
+ LD A,(ZINP) ; Low byte of ZINP pointer
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ LD A,'F' ; "F1=" marker for ZFLAG1
+ OUT (050H),A
+ LD A,'1'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ LD A,(ZFLAG1)
+ CALL DBG_HEX
+ CALL DBG_CRLF
+ POP BC
+ ;
+ ; Debug V1.1K: dump first 4 bytes at RFSINP_DIR (runtime) and 0x2000
+ PUSH HL
+ PUSH BC
+ LD A,'R'
+ OUT (050H),A
+ LD A,'@'
+ OUT (050H),A
+ LD HL,RFSINP_DIR ; Point to RFSINP_DIR code in memory
+ LD B,004H
+DBG_RDMP: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ DBG_RDMP
+ CALL DBG_CRLF
+ ; Also dump first 4 bytes of DIR buffer at 0x2000
+ LD A,'B'
+ OUT (050H),A
+ LD A,'@'
+ OUT (050H),A
+ LD HL,L2000
+ LD B,004H
+DBG_BDMP: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ DBG_BDMP
+ CALL DBG_CRLF
+ POP BC
+ POP HL
+ ;
+ ; (V1.1L debug hook removed in V1.1Y — was calling RFSINP_DIR for
+ ; ALL devices, causing 20s delay + empty DIR for non-RFS devices)
+ ;
+ XOR A
+ LD A,'S'
+ OUT (050H),A
+ LD A,'9'
+ OUT (050H),A
+ LD A,'a'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ CALL DBG_CRLF
+ XOR A ; A=0 again (debug output clobbered it)
+ RST 018H
+ DB 039H
+ ; --- Debug: after SVC #39 --- dump 0x2000 again
+ PUSH AF
+ PUSH HL
+ PUSH BC
+ LD A,'B'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ LD HL,L2000
+ LD B,004H
+DBG_BDMP2: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ DBG_BDMP2
+ CALL DBG_CRLF
+ POP BC
+ POP HL
+ POP AF
+ ; --- original after-SVC debug ---
+ PUSH AF
+ LD A,'S'
+ OUT (050H),A
+ LD A,'9'
+ OUT (050H),A
+ LD A,'a'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ POP AF
+ PUSH AF
+ CALL DBG_HEX ; show A result
+ LD A,' '
+ OUT (050H),A
+ LD A,'C'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ POP AF
+ JR C,DBG_D3_CY2
+ LD A,'0'
+ JR DBG_D3_CY2D
+DBG_D3_CY2:
+ LD A,'1'
+DBG_D3_CY2D:
+ OUT (050H),A
+ CALL DBG_CRLF
+ ; --- LD A,B / SVC #3A (A=channel) ---
+ LD A,B
+ PUSH AF
+ LD A,'S'
+ OUT (050H),A
+ LD A,'A'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ POP AF
+ PUSH AF
+ CALL DBG_HEX ; show channel being sent
+ CALL DBG_CRLF
+ POP AF
+ RST 018H
+ DB 03AH
+ ; --- Debug: after SVC #3A ---
+ PUSH AF
+ LD A,'S'
+ OUT (050H),A
+ LD A,'A'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ POP AF
+ PUSH AF
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ LD A,'C'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ POP AF
+ JR C,DBG_D3_CY3
+ LD A,'0'
+ JR DBG_D3_CY3D
+DBG_D3_CY3:
+ LD A,'1'
+DBG_D3_CY3D:
+ OUT (050H),A
+ CALL DBG_CRLF
+ ; --- POP AF / SVC #39 (A=original from L5882) ---
+ POP AF
+ PUSH AF
+ PUSH AF
+ LD A,'S'
+ OUT (050H),A
+ LD A,'9'
+ OUT (050H),A
+ LD A,'b'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ POP AF
+ PUSH AF
+ CALL DBG_HEX ; show original A being sent
+ CALL DBG_CRLF
+ POP AF
+ RST 018H
+ DB 039H
+ ; --- Debug: after final SVC #39 ---
+ PUSH AF
+ LD A,'S'
+ OUT (050H),A
+ LD A,'9'
+ OUT (050H),A
+ LD A,'b'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ POP AF
+ PUSH AF
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ LD A,'C'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ POP AF
+ JR C,DBG_D3_CY4
+ LD A,'0'
+ JR DBG_D3_CY4D
+DBG_D3_CY4:
+ LD A,'1'
+DBG_D3_CY4D:
+ OUT (050H),A
+ CALL DBG_CRLF
+ ; --- Exit marker ---
+ LD A,'D'
+ OUT (050H),A
+ LD A,'3'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD A,'X'
+ OUT (050H),A
+ CALL DBG_CRLF
+ ; --- Clean up and return ---
+ POP AF ; balance the PUSH AF from after L5882
+ RET
+
+; ===========================================================================
+; Data area
+; ===========================================================================
+SDSTARTSEC: DS 4, 000H ; Current sector address for SD_READ (big-endian)
+DIRSECBUF: DB 0FFH ; Cached directory sector number (0xFF = none)
+FILE_STARTSEC:
+ DS 4, 000H ; Saved file start sector (absolute, big-endian)
+FILE_LOADADDR:
+ DW 00000H ; Current load address during LOAD transfer
+; ===========================================================================
+; DBG_L1C5B_WRAP — Wrapper around CALL L1C5B to dump ZFLAG1 before and after.
+; This reveals whether L1C5B modifies ZFLAG1 (specifically bit 5).
+; Output format: "F1:xx>xx\r\n" where xx=before, xx=after
+; ===========================================================================
+DBG_L1C5B_WRAP:
+ PUSH AF
+ PUSH HL
+ ; --- Print "F1:" ---
+ LD A,'F'
+ OUT (050H),A
+ LD A,'1'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ ; --- Dump ZFLAG1 before ---
+ LD A,(ZFLAG1)
+ CALL DBG_HEX
+ POP HL
+ POP AF
+ ; --- Call the real L1C5B ---
+ CALL L1C5B
+ ; --- Save return flags ---
+ PUSH AF
+ PUSH HL
+ ; --- Print ">" ---
+ LD A,'>'
+ OUT (050H),A
+ ; --- Dump ZFLAG1 after ---
+ LD A,(ZFLAG1)
+ CALL DBG_HEX
+ CALL DBG_CRLF
+ POP HL
+ POP AF
+ RET
+
+; ===========================================================================
+; DBG_FLAGS_TEST — Replaces the LD HL,ZFLAG1 / BIT 7 / BIT 5 sequence.
+; V1.1Q: Workaround for suspected Z80 emulator bug where AND immediate
+; does not correctly set the Z flag (0x5F AND 0x20 = 0x20 yet Z is set).
+; Instead of testing ZFLAG1 bit 5, check device name for "$RFS" and force
+; the ZINP path directly. This is safe because this code point is only
+; reached when A=0 (DIR enumeration) in SVC #39.
+; ===========================================================================
+DBG_FLAGS_TEST:
+ LD HL,ZFLAG1
+ ; --- Check bit 7 first (error condition, applies to all devices) ---
+ LD A,(HL)
+ AND 080H
+ JR Z,DBG_FT_NO7
+ POP DE ; discard CALL return address
+ JP 01F97H
+DBG_FT_NO7:
+ ; --- Check if this is the $RFS device by name ---
+ LD A,(ZDEVNM) ; first char of device name
+ CP 'R'
+ JR NZ,DBG_FT_NORFS
+ LD A,(ZDEVNM+1) ; second char
+ CP 'F'
+ JR NZ,DBG_FT_NORFS
+ ; --- This IS $RFS — force ZINP/DIR path ---
+ PUSH AF
+ LD A,'R'
+ OUT (050H),A
+ LD A,'!'
+ OUT (050H),A
+ CALL DBG_CRLF
+ POP AF
+ POP DE ; discard CALL return address
+ JP DBG_BIT5PATH
+DBG_FT_NORFS:
+ ; --- Not $RFS: fall through to ZRO path ---
+ ; HL = ZFLAG1 (correct for INC HL that follows the NOPs)
+ RET
+
+; ===========================================================================
+; DBG_BIT5PATH — Replacement for the SVC #39 bit-5 path at 0x2F38.
+; Instead of calling through L2FD1 → IOCALL, this calls RFSINP_DIR directly
+; to bypass the broken IOCALL dispatch. Also traces the path.
+; Original bit-5 path: XOR A / LD HL,L2000 / LD DE,800 / LD BC,10 / CALL L2FD1
+; L2FD1 does TWO ZINP calls:
+; 1st: L2FE8 → disk identity (H=0x28)
+; 2nd: L2FD4 → DIR fill (H=0x20)
+; We replicate both calls directly to RFSINP_DIR.
+; ===========================================================================
+DBG_BIT5PATH:
+ ; --- Marker ---
+ LD A,'B'
+ OUT (050H),A
+ LD A,'5'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ CALL DBG_CRLF
+ ;
+ ; --- 1st ZINP call: disk identity (H=0x28) ---
+ LD HL,02800H ; H=0x28 → DISKID path
+ LD A,(ZCH) ; Channel number
+ CALL RFSINP_DIR
+ ;
+ ; --- 2nd ZINP call: DIR fill (H=0x20) ---
+ LD HL,L2000 ; H=0x20 → DIR fill
+ LD A,(ZCH)
+ CALL RFSINP_DIR
+ ;
+ ; --- After both calls, check DIR buffer ---
+ PUSH HL
+ PUSH BC
+ LD A,'D'
+ OUT (050H),A
+ LD A,'R'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ LD HL,L2000
+ LD B,008H
+DBG_B5DMP: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ DBG_B5DMP
+ CALL DBG_CRLF
+ POP BC
+ POP HL
+ ;
+ ; --- Replicate original return logic ---
+ ; Original: LD A,(HL) / OR A / JP P,01F70H / RET
+ ; After L2FD1 returns, HL=0x2000 (restored by wrappers).
+ ; We set HL=0x2000 explicitly since we bypassed the wrappers.
+ LD HL,L2000
+ LD A,(HL)
+ OR A
+ JP P,01F70H
+ ;
+ ; Clear DIR_FILLED for next DIR call
+ XOR A
+ LD (DIR_FILLED),A
+ ;
+ ; Return — will go through SKPDE cleanup from SVC #39 handler
+ RET
+
+FILE_SIZE: DW 00000H ; Remaining bytes during LOAD transfer
+RFS_LD_A0: DB 000H ; V1.1Y: Entry A for RFSINP_LD (0=SVC #30, else SVC #33)
+DIR_BUFPTR: DW 00000H ; Current write position in DIR buffer
+FINDSD_NAME:DW 00000H ; Saved filename pointer for FINDSD
+SAVE_DIRENT:DB 000H ; Saved directory entry number for SAVE
+SAVE_PENDING:DB 000H ; 1 = SAVE in progress, trigger RFSWO on first RFSOUT call
+DIR_FILLED: DB 000H ; 1 = DIR buffer filled, next ZINP call is data transfer
+SAVE_SP: DW 00000H ; Saved BASIC stack pointer
+DIR_ENTRY_IDX: DB 000H ; Current SD directory entry index for RFSRO (0-255)
+SECTORBUF: DS 512, 000H ; SD card sector buffer (was EQU 0CE00H, moved here
+ ; to avoid overlap with BASIC stack at ~0xCFFF)
+ DS 128, 000H ; Temp stack (64 levels)
+TEMP_STACK_TOP: ; SP points here (grows downward)
+RFS_END EQU TEMP_STACK_TOP ; End of RFS code = new TEXTST
+
+EXECSTART: XOR A ; Execution entry point
+ LD DE,L0000
+ CALL TIMST
+ LD DE,L0000
+ LD HL,BASICEND - L0000
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ LD HL,TAPECOPY
+ OUT (LSE0),A
+ LDIR
+ JP L0000
+
+ DS 0,11
+BASICEND:
diff --git a/asm/mz5z009.asm b/asm/mz5z009.asm
new file mode 100644
index 0000000..56b46e1
--- /dev/null
+++ b/asm/mz5z009.asm
@@ -0,0 +1,21863 @@
+; Disassembly of the file "mz5z009.bin"
+;
+; CPU Type: Z80
+;
+; Created with dZ80 2.1
+;
+; on Tuesday, 17 of March 2026 at 05:34 PM
+;
+LSWF EQU 0CCH
+LSRF EQU 0CDH
+LSDMD EQU 0CEH
+LSSCR EQU 0CFH
+LSD0 EQU 0D0H
+LSD1 EQU 0D1H
+LSD2 EQU 0D2H
+LSD3 EQU 0D3H
+LSE0 EQU 0E0H
+LSE1 EQU 0E1H
+LSE2 EQU 0E2H
+LSE3 EQU 0E3H
+LSE4 EQU 0E4H
+LSE5 EQU 0E5H
+LSPAL EQU 0F0H
+PSGA EQU 0F2H
+SIOAD EQU 0F4H
+SIOBD EQU 0F5H
+SIOBC EQU 0F7H
+LSFC EQU 0FCH
+ELMD EQU 01000H
+ELMD1 EQU 01001H
+ELMD18 EQU 01012H
+ELMD20 EQU 01014H
+ELMD22 EQU 01016H
+ELMD24 EQU 01018H
+ELMD26 EQU 0101AH
+ELMD30 EQU 0101EH
+ELMD32 EQU 01020H
+ZTOP EQU 01040H
+ZLOG EQU 01042H
+ZRWX EQU 01043H
+ZEQT EQU 01044H
+ZCH EQU 01046H
+ZEOF EQU 01047H
+ZWRK1 EQU 01048H
+ZWRK2 EQU 01049H
+ZNXT EQU 0104AH
+ZDEVNM EQU 0104CH
+ZFLAG1 EQU 01050H
+ZFLAG2 EQU 01051H
+ZDIRMX EQU 01052H
+ZINIT EQU 01053H
+ZRO EQU 01055H
+ZWO EQU 01057H
+ZCL EQU 01059H
+ZKL EQU 0105BH
+ZINP EQU 0105DH
+ZOUT EQU 0105FH
+ZDELT EQU 01061H
+ZWDIR EQU 01063H
+ZFREE EQU 01065H
+DCHAN EQU 01069H
+DDEV EQU 0106AH
+.$CRT EQU 0106CH
+.$LPT EQU 0106EH
+TEXTST EQU 01070H
+TEXTED EQU 01072H
+VARST EQU 01074H
+STRST EQU 01076H
+VARED EQU 01078H
+TMPEND EQU 0107AH
+INTFAC EQU 0107CH
+MEMLMT EQU 0107EH
+MEMMAX EQU 01080H
+CURXY EQU 01082H
+POSADR EQU 01084H
+BITADR EQU 01086H
+POINTX EQU 01088H
+POINTY EQU 0108AH
+CURFLG EQU 0108CH
+CURMAK EQU 0108DH
+CMTMSG EQU 0108EH
+INPFLG EQU 0108FH
+DISPX EQU 01090H
+FILOUT EQU 01091H
+PSEL EQU 01092H
+PCRLF EQU 01093H
+DMD EQU 01098H
+GMODE EQU 0109FH
+APTS EQU 010F0H
+NAME EQU 010F1H
+SIZE EQU 01102H
+DTADR EQU 01104H
+EXADR EQU 01106H
+COMNT EQU 01108H
+DTEFG EQU 01171H
+DTEFGX EQU 01172H
+TMCNT EQU 01195H
+KEYBUF EQU 011A4H
+INBUFC EQU 01352H
+INBUF EQU 01354H
+TIMST EQU 00033H
+XS EQU 01369H
+CWIDTH EQU 0136BH
+YS EQU 0136FH
+YE EQU 01370H
+SOF EQU 01372H
+CRTMD1 EQU 01379H
+CRTMD2 EQU 0137AH
+SELCOL EQU 0137BH
+SCRNT0 EQU 013A9H
+EMFLG EQU 013C3H
+HERRF EQU 013D9H
+CTABLE EQU 013DAH
+FONTBF EQU 01000H
+TEXTBF EQU 02000H
+BITBUF EQU 08000H
+IBUFE EQU 010F0H
+ERRTXT EQU 0FDA0H
+VRAM EQU 0D000H
+ARAM EQU 0D800H
+MMIO EQU 0E000H
+ATRB EQU 010F0H
+PRGSTART EQU 00000H
+TAPECOPY EQU 01200H
+BUILD_ORIG EQU 1
+BUILD_RFS EQU 0
+
+ ; Create an MZF Tape header.
+ ORG ATRB
+
+ ; Declare the MZF header to bootstrap BASIC from tape/SD.
+BOOTATRB: DB 01h ; Code Type, 01 = Machine Code.
+BOOTNAME: IF BUILD_ORIG = 1
+ DB "BASIC 5Z-009A ", 0Dh ; Title/Name (17 bytes).
+ ENDIF
+ IF BUILD_RFS = 1
+ DB "BASIC 5Z-009ARFS", 0Dh ; Title/Name (17 bytes).
+ ENDIF
+BOOTSIZE: DW BASICEND - L0000 ; Size of program.
+BOOTDTADR: DW TAPECOPY ; Load address of program.
+BOOTEXADR: DW EXECSTART + TAPECOPY ; Exec address of program.
+BOOTCOMNT: DS 104
+
+ ORG PRGSTART
+
+L0000: JP L0EF9 ; Cold start entry - JP to initialization
+
+L0003: JP GETL
+
+L0006: JP L09AB
+
+L0009: JP L099B
+
+L000C: JP L0E5F
+
+ JP PRNTT
+
+L0012: JP L0E61
+
+L0015: JP L0E50
+
+SVC_ENTRY: JP L022C ; RST 18H - SVC (Supervisor Call) dispatcher
+
+ JP INKEY0
+
+BRKCHK: JP L0D22
+
+ JP L382E
+
+ JP L3832
+
+ JP L386C
+
+ JP L3870
+
+ JP L38A6
+
+ JP .RET
+
+ JP L149E
+
+ NOP
+ NOP
+ JP .RET
+
+ JP L14A2
+
+L003E: JP L44F3
+
+L0041: JP 04520H
+
+ JP L447B
+
+L0047: JP L447B
+
+ JP GETL
+
+L004D: DB 000H ; System status / work area
+ DB 058H
+L004F: DB 000H
+L0050: DB 000H
+ JP L0E50
+
+ DS 4, 000H
+L0058: JP INKEY$
+
+ DW .RET ; CONTTB - CRT control code dispatch table
+L005D: DW .RET
+ DW .RET
+ DW L09B0
+ DW .RET
+ DW 00A1BH
+ DW L0A19
+ DW .RET
+ DW .RET
+ DW L0A24
+ DW .RET
+ DW .RET
+ DW .RET
+ DW L09B0
+ DW L1500
+ DW .RET
+ DW L06BE
+ DW L09CF
+ DW L09F9
+L0081: DW L09D4
+ DW L09FE
+ DW L0992
+ DW HCLSW
+ DW 00A1EH
+ DW L0776
+ DW L0A19
+ DW .RET
+ DW L09B0
+ DW .RET
+ DW .RET
+ DW .RET
+ DW .RET
+L009B: DB 087H
+ DB 021H
+ DB 05BH
+ DB 000H
+ DB LSRF
+L00A0: DB 058H
+ DB 001H
+ DB LSRF
+ DB 051H
+ DB 001H
+ DB 0E9H
+.NOP: NOP
+.HL: JP (HL)
+
+L00A8: EI
+ PUSH AF
+ CALL L44A3
+ CALL 014F8H
+ POP AF
+ DI
+.RET: RET
+
+L00B3: PUSH AF
+ CALL L14FC
+ POP AF
+ EI
+ RET
+
+PUSHRA: EX (SP),IX
+ PUSH HL
+ PUSH BC
+ PUSH DE
+ PUSH AF
+ PUSH HL
+ LD HL,L00D3
+ EX (SP),HL
+ JP (IX)
+
+PUSHR: EX (SP),IX
+ PUSH HL
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD HL,L00D4
+L00D0: EX (SP),HL
+ JP (IX)
+
+L00D3: POP AF
+L00D4: POP DE
+ POP BC
+ POP HL
+ POP IX
+ RET
+
+L00DA: DI
+ LD SP,L0000
+ IM 2
+ OUT (LSE1),A
+ LD HL,(L004D)
+ JP (HL)
+
+BREAKX: XOR A
+ DB 021H
+BREAKZ: LD A,080H
+ DB 021H
+IOERR: OR 080H
+ERRORJ: PUSH AF
+ CALL L447B
+ POP AF
+ LD HL,(L004F)
+ JP (HL)
+
+COUNT: PUSH DE
+ LD B,000H
+L00F9: LD A,(DE)
+ OR A
+ JR Z,L0102 ; (+005H)
+ INC DE
+ INC B
+ JR NZ,L00F9 ; (-008H)
+L0101: DEC B
+L0102: POP DE
+L0103: RET
+
+IOOUT: LD A,(HL)
+ INC HL
+ LD C,(HL)
+ INC HL
+ OUT (C),A
+ DJNZ IOOUT ; (-008H)
+ RET
+
+DEVASC: RST 018H
+ DB 013H
+ LD A,D
+ OR A
+ JP NZ,L1F7F
+ LD A,E
+ CP B
+ RET C
+ JP L1F7F
+
+ NOP
+CHKACC: EX (SP),HL
+ PUSH BC
+ LD B,(HL)
+L011E: INC HL
+ CP (HL)
+ JR Z,L0127 ; (+005H)
+ DJNZ L011E ; (-006H)
+ INC HL
+ JR L012A ; (+003H)
+
+L0127: INC HL
+ DJNZ L0127 ; (-003H)
+L012A: POP BC
+ EX (SP),HL
+ RET
+
+LDDEMI: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ RET
+
+LDDEMD: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ RET
+
+?CLRHL: XOR A
+?SETHL: LD (HL),A
+ INC HL
+ DJNZ ?SETHL ; (-004H)
+ RET
+
+?CLRDE: XOR A
+?SETDE: LD (DE),A
+L013F: INC DE
+L0140: DJNZ ?SETDE ; (-004H)
+ RET
+
+LDDEHL: LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ DJNZ LDDEHL ; (-006H)
+ RET
+
+LDHLDE: LD A,(DE)
+ LD (HL),A
+ INC HL
+ INC DE
+ DJNZ LDHLDE ; (-006H)
+ RET
+
+INDRCT: PUSH AF
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ POP AF
+ RET
+
+ADDHLA: ADD A,L
+ LD L,A
+ RET NC
+ INC H
+ RET
+
+INCHLF: INC HL
+HLFTCH: LD A,(HL)
+ CP 020H
+ JR Z,INCHLF ; (-006H)
+ RET
+
+TEST1: CALL HLFTCH
+ EX (SP),HL
+L0168: CP (HL)
+ INC HL
+ EX (SP),HL
+ RET NZ
+ INC HL
+ RET
+
+TESTX: CALL HLFTCH
+ EX (SP),HL
+ CP (HL)
+ INC HL
+ EX (SP),HL
+ INC HL
+ RET Z
+ LD A,001H
+ JP ERRORJ
+
+IOSVCT: DW L1587 ; IOSVCT - SVC dispatch table
+ DW L09AB
+ DW L099B
+ DW L0E61
+ DW L0EA2
+ DW L0D94
+ DW 014F0H
+ DW L14B9
+ DW L0E2A
+ DW L0E2C
+ DW L0E3A
+ DW L0E48
+ DW GETL
+ DW INKEY$
+ DW L0D22
+ DW MHALT
+ DW L00A8
+ DW L00B3
+ DW CURMOV
+ DW DEASC
+ DW DEHEX
+ DW CKHEX
+ DW ASCHL
+ DW COUNT
+ DW ADDP0
+ DW ADDP1
+ DW ADDP2
+ DW ERRX
+ DW L3C1C
+ DW L3C00
+ DW 014A6H
+ DW L14AA
+ DW L44F3
+ DW L4422
+ DW L437A
+ DW L44AF
+ DW IOOUT
+ DW L14A2
+ DW L149E
+ DW L1989
+ DW L1BFA
+ DW L1EF0
+ DW L1F32
+ DW L1F06
+ DW L1A45
+ DW L1AC0
+ DW L19E8
+ DW L1B83
+ DW L1CC6
+ DW L1CEA
+L01E0: DW L1CDB
+ DW L1AE9
+ DW L18D0
+ DW L18E4
+ DW L194C
+ DW L180F
+ DW L1BB9
+ DW L1D2D
+ DW SETDFL
+ DW L34DE
+ DW L1E6D
+ DW L3BA6
+ DW L3BBD
+ DW L3BA3
+ DW L3BA1
+ DW L3BA1
+L0200: DW L3BA1
+ DW L1FC0
+ DW L3BA3
+ DW HCLS
+ DW L4D08
+ DW L4D13
+ DW L4694
+ DW L46CE
+ DW L4F52
+ DW L4BE9
+ DW L5036
+ DW L47E7
+ DW L4629
+ DW L14AE
+ DW DSMODE
+ DW DPALBK
+ DW DPALST
+ DW DWIND
+ DW DCOLOR
+ DW DGCOL
+ DW L458E
+ DW L4D2D
+L022C: DW 0F5E3H
+ DW L237E
+ DW L21E5
+ DW IOSVCT
+ ADD A,A
+ ADD A,L
+ JR NC,L0239 ; (+001H)
+ INC H
+L0239: LD L,A
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+L023E: LD (00245H),HL
+ POP HL
+ POP AF
+ EX (SP),HL
+ JP L0000
+
+_IOCALL: PUSH HL
+ PUSH DE
+ LD (00253H),IX
+ LD IX,IOERR
+ OR A
+ CALL L0000
+ POP DE
+ POP HL
+ RET NC
+L0258: OR A
+ SCF
+ RET Z
+ JP IOERR
+
+ASCHL: PUSH HL
+ PUSH BC
+ PUSH DE
+ LD DE,L2710
+ CALL L0284
+ LD DE,003E8H
+ CALL L0284
+ LD DE,00064H
+ CALL L0284
+ LD DE,0000AH
+ CALL L0284
+ LD A,L
+ POP DE
+ OR 030H
+ LD (DE),A
+ INC DE
+L027F: XOR A
+ LD (DE),A
+ POP BC
+ POP HL
+ RET
+
+L0284: LD A,0FFH
+L0286: INC A
+ OR A
+ SBC HL,DE
+ JR NC,L0286 ; (-006H)
+ ADD HL,DE
+ OR A
+ JR NZ,L0293 ; (+003H)
+ OR B
+ RET Z
+ XOR A
+L0293: LD B,001H
+ OR 030H
+ POP DE
+ EX (SP),HL
+ LD (HL),A
+ INC HL
+ EX (SP),HL
+ PUSH DE
+ RET
+
+DEASC: CALL TEST1
+ DB 024H
+ JR Z,DEHEX ; (+02aH)
+ LD DE,L0000
+L02A7: CALL HLFTCH
+ SUB 030H
+ CP 00AH
+ RET NC
+ INC HL
+ PUSH HL
+ LD H,D
+ LD L,E
+ ADD HL,HL
+ JR C,L02C9 ; (+013H)
+ ADD HL,HL
+ JR C,L02C9 ; (+010H)
+ ADD HL,DE
+ JR C,L02C9 ; (+00dH)
+ ADD HL,HL
+ JR C,L02C9 ; (+00aH)
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ JR C,L02C9 ; (+004H)
+ EX DE,HL
+ POP HL
+ JR L02A7 ; (-022H)
+
+L02C9: LD A,002H
+ JP ERRORJ
+
+DEHEX: LD DE,L0000
+L02D1: LD A,(HL)
+ CALL CKHEX
+ RET C
+ INC HL
+ EX DE,HL
+ ADD HL,HL
+ JR C,L02C9 ; (-012H)
+ ADD HL,HL
+ JR C,L02C9 ; (-015H)
+ ADD HL,HL
+ JR C,L02C9 ; (-018H)
+ ADD HL,HL
+ JR C,L02C9 ; (-01bH)
+ ADD A,L
+ LD L,A
+ EX DE,HL
+ JR L02D1 ; (-018H)
+
+CKHEX: SUB 030H
+ CP 00AH
+ CCF
+ RET NC
+ SUB 011H
+ CP 006H
+ CCF
+ RET C
+ ADD A,00AH
+ RET
+
+MHALT: CALL L0305
+ CP 020H
+ RET NZ
+L02FE: CALL L0305
+ OR A
+ JR Z,L02FE ; (-006H)
+ RET
+
+L0305: RST 018H
+ DB 00EH
+ JR Z,L0310 ; (+007H)
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ CP 01BH
+ RET NZ
+L0310: JP BREAKZ
+
+ RET
+
+SETDFL: LD (DDEV),DE
+ LD (L1069),A
+ RET
+
+ADDP0: LD HL,(L1072)
+ ADD HL,DE
+ LD (L1072),HL
+ADDP1: LD HL,(L1074)
+ ADD HL,DE
+ LD (L1074),HL
+ADDP2: LD HL,(L1076)
+ ADD HL,DE
+ LD (L1076),HL
+ LD HL,(L1078)
+ ADD HL,DE
+ LD (L1078),HL
+ LD HL,(L107A)
+ ADD HL,DE
+ LD (L107A),HL
+ RET
+
+ERRX: LD C,A
+ RST 018H
+ DB 020H
+ RST 018H
+ DB 002H
+ BIT 7,C
+ JR Z,L0353 ; (+00aH)
+ LD HL,L11A4
+ PUSH HL
+ CALL SETDNM
+ POP DE
+ RST 018H
+ DB 005H
+L0353: LD A,C
+ AND 07FH
+ LD C,A
+ RST 018H
+ DB 010H
+ OUT (LSE3),A
+ JR L035F ; (+002H)
+
+L035D: LD C,045H
+L035F: LD DE,ERRTXT
+L0362: DEC C
+ JR Z,L036F ; (+00aH)
+L0365: LD A,(DE)
+ INC DE
+ OR A
+ JP P,L0365
+ JR Z,L035D ; (-010H)
+ JR L0362 ; (-00dH)
+
+L036F: LD A,(DE)
+ CP 080H
+ JR Z,L035D ; (-017H)
+ EX DE,HL
+ LD DE,L11A4
+L0378: LD A,(HL)
+ OR A
+ JP M,L0381
+ LDI
+ JR L0378 ; (-009H)
+
+L0381: AND 07FH
+ LD (DE),A
+ OUT (LSE1),A
+ RST 018H
+ DB 011H
+ INC DE
+ LD HL,L03B6
+ LD B,008H
+ CALL LDDEHL
+ LD DE,L11A4
+ RST 018H
+ DB 005H
+ RET
+
+SETDNM: LD DE,(ZEQT)
+ INC DE
+ INC DE
+ RST 018H
+ DB 017H
+ CALL LDHLDE
+ LD A,(L1046)
+ ADD A,031H
+ LD (HL),A
+ LD A,(L1051)
+ AND 00FH
+ JR Z,L03B0 ; (+001H)
+ INC HL
+L03B0: LD (HL),03AH
+ INC HL
+ LD (HL),000H
+ RET
+
+L03B6: JR NZ,L03BD ; (+005H)
+ LD B,L
+ LD D,D
+ LD D,D
+ LD C,A
+ LD D,D
+L03BD: NOP
+DSMODE: CALL PUSHR
+ LD B,A
+ LD A,(L1099)
+ OR A
+ LD A,B
+ JR NZ,L03D1 ; (+008H)
+ CP 002H
+ JR Z,L0417 ; (+04aH)
+ CP 004H
+ JR Z,L0417 ; (+046H)
+L03D1: PUSH AF
+ DEC A
+ LD D,0FFH
+ LD HL,L1389
+ LD BC,00403H
+ JR Z,L03F7 ; (+01aH)
+ DEC A
+ LD HL,L138D
+ LD BC,L100F
+ JR Z,L03F7 ; (+011H)
+ DEC A
+L03E7: LD HL,L1385
+ LD BC,00201H
+ JR Z,L03F7 ; (+008H)
+ LD HL,L1389
+L03F2: LD BC,L0805
+ LD D,0FDH
+L03F7: LD (0109CH),BC
+ LD A,D
+ LD (L109E),A
+ LD (L137F),HL
+ CALL PALOFF
+ POP AF
+ DEC A
+ RLCA
+ LD (L1098),A
+ OUT (LSDMD),A
+ AND 004H
+ CALL DWIDTH
+ CALL L0419
+ OR A
+ RET
+
+L0417: SCF
+ RET
+
+L0419: LD HL,$IOCS
+ CALL DWIND
+ LD A,(0109CH)
+ LD (L109B),A
+ XOR A
+ CALL DPALBK
+ LD HL,L137F
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ LD DE,L1381
+ PUSH DE
+ LD BC,00004H
+ LDIR
+ POP HL
+L043A: LD B,004H
+ LD C,LSPAL
+L043E: OTIR
+ RET
+
+PALOFF: PUSH BC
+ XOR A
+ LD B,005H
+ LD C,LSPAL
+L0447: OUT (C),A
+ ADD A,010H
+ DJNZ L0447 ; (-006H)
+ POP BC
+ RET
+
+DPALBK: CALL PUSHR
+ LD (L137E),A
+ LD E,A
+ LD A,(L1098)
+ CP 002H
+ JR NZ,L0470 ; (+013H)
+ LD A,E
+ RLCA
+ RLCA
+ LD HL,L1381
+ LD B,004H
+ PUSH HL
+L0466: LD (HL),A
+ ADD A,011H
+ INC HL
+ DJNZ L0466 ; (-006H)
+ POP HL
+ CALL L043A
+L0470: LD A,E
+ OR 040H
+ OUT (LSPAL),A
+ RET
+
+DPALST: CALL PUSHR
+ LD HL,L1381
+ LD D,000H
+ LD E,A
+ ADD HL,DE
+ OR A
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ OR B
+ LD (HL),A
+ OUT (LSPAL),A
+ RET
+
+DCOLOR: PUSH AF
+ CALL COLS
+ LD (L109B),A
+ POP AF
+ RET
+
+DGCOL: PUSH AF
+ CALL COLS
+ LD (L109F),A
+ POP AF
+ RET
+
+COLS: PUSH BC
+ LD B,A
+ LD A,(L1098)
+ CP 006H
+ LD A,B
+ JR NZ,L04AC ; (+006H)
+ CP 002H
+ JR C,L04AC ; (+002H)
+ ADD A,002H
+L04AC: POP BC
+ RET
+
+DWIND: CALL PUSHR
+ LD (L136F),HL
+ LD A,H
+ SUB L
+ INC A
+ LD (L1371),A
+ LD B,A
+ ADD A,A
+ ADD A,A
+ ADD A,B
+ LD (L1374),A
+ EX DE,HL
+ LD H,000H
+ LD L,A
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ LD (L1377),HL
+ EX DE,HL
+ INC H
+ LD A,H
+ ADD A,A
+ ADD A,A
+ ADD A,H
+ LD (L1376),A
+ LD A,L
+ ADD A,A
+ ADD A,A
+ ADD A,L
+ LD (L1375),A
+ LD HL,L0000
+ LD (L1372),HL
+ LD HL,L1376
+ LD BC,L06CF
+ OTDR
+ CALL HCLS
+ JP L0992
+
+DWIDTH: CALL PUSHR
+L04F2: OR A
+ LD A,028H
+ LD DE,L2300
+ JR Z,L04FE ; (+004H)
+ ADD A,A
+ LD DE,00023H
+L04FE: LD (L136B),A
+ LD H,000H
+ LD L,A
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ LD (L136D),HL
+ DEC A
+ LD (L136A),A
+ LD A,D
+ LD (L0535),A
+ LD (L0536),A
+ LD (L0547),A
+ LD A,E
+ LD (L053E),A
+ LD (L053F),A
+ LD (L054B),A
+ LD BC,00B07H
+ LD HL,L054F
+ CALL PATCH
+ CALL L45D0
+ JP HCLS
+
+PATCH: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+L0535: INC HL
+L0536: INC HL
+ LD A,(HL)
+ INC HL
+ LD (DE),A
+ INC DE
+ LD A,(HL)
+ INC HL
+ LD (DE),A
+L053E: NOP
+L053F: NOP
+ DJNZ PATCH ; (-011H)
+ LD B,C
+L0543: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+L0547: INC HL
+ LD A,(HL)
+ INC HL
+ LD (DE),A
+L054B: NOP
+ DJNZ L0543 ; (-00bH)
+ RET
+
+L054F: DB 0E6H,005H,050H,000H,028H,000H,03DH,006H,0CBH,021H ; CHTBL - CRT driver 40/80-column patch table
+ DS 2, 000H
+ DB 067H,006H,090H,001H,0C8H,000H,06AH,006H,080H,0BEH,040H,09FH,020H,007H,050H,000H,028H,000H,048H,007H,030H,002H,018H,001H,0C3H,007H,050H,000H,028H,000H,0E9H,007H,0B0H,0FFH,0D8H,0FFH,015H,008H
+ DB LSD0
+ DB 0FDH,0E8H,0FEH,02AH,008H,050H,000H,028H,000H,0D5H,008H,07FH,002H,03FH,001H
+ DB LSE5
+ DB 006H,04FH,027H,00EH,007H,04FH,027H,0B4H,007H,"O'%",008H,"O'Y",008H,"P(r",009H,029H,000H,089H,009H,029H,000H
+ACCDI: CALL PUSHRA
+ LD HL,(L1084)
+ LD C,A
+ CP 020H
+ JR NZ,L05B9 ; (+001H)
+ XOR A
+L05B9: LD (HL),A
+ LD HL,(L1086)
+ LD A,C
+ CALL BITMAP
+ XOR A
+ LD (009E2H),A
+ CALL L09D4
+ LD A,007H
+ LD (009E2H),A
+ RET
+
+BITMAP: RST 018H
+ DB 01DH
+ DI
+ EXX
+ PUSH HL
+ LD H,000H
+ LD L,A
+ LD A,(L109B)
+ OR 080H
+ OUT (LSWF),A
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ SET 4,H
+ EXX
+ LD B,008H
+ LD DE,00028H
+ IN A,(LSE0)
+L05EA: EXX
+ LD A,(HL)
+ INC HL
+ EXX
+ LD (HL),A
+ ADD HL,DE
+ DJNZ L05EA ; (-008H)
+ IN A,(LSE1)
+ EI
+ EXX
+ POP HL
+ EXX
+ RET
+
+LBOUND: CALL TBCALC
+L05FC: LD A,(HL)
+ OR A
+ JR Z,L0608 ; (+008H)
+ DEC HL
+ DEC E
+ LD A,(L136F)
+ CP E
+ JR C,L05FC ; (-00cH)
+L0608: LD D,E
+L0609: INC E
+ INC HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD A,(YE)
+ CP E
+ JR NC,L0609 ; (-00bH)
+ RET
+
+TBCALC: LD E,H
+ LD D,000H
+ LD HL,L13A9
+ ADD HL,DE
+ RET
+
+HCLSW: CALL PUSHR
+ LD A,(L136F)
+ LD H,A
+ CALL TBCALC
+ LD A,(L1371)
+ LD B,A
+ LD E,A
+ CALL ?CLRHL
+ LD C,E
+ LD A,(YE)
+ INC A
+ LD L,000H
+ LD H,A
+ PUSH HL
+ CALL PONT
+ LD B,000H
+ NOP
+L063E: NOP
+ PUSH BC
+ CALL PUSHW
+ POP HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ LD C,L
+ LD B,H
+ POP HL
+ CALL PONTB
+ CALL PUSHW
+ JR L06AC ; (+05aH)
+
+HCLS: CALL PUSHRA
+ LD HL,L27D0
+ LD BC,00032H
+ CALL PUSHW
+ LD B,019H
+ LD HL,L13A9
+ CALL ?CLRHL
+ LD BC,000C8H
+ LD HL,L9F40
+ CALL PUSHW
+ JR L06AC ; (+03bH)
+
+PUSHW: LD (006A3H),SP
+ LD (00684H),HL
+ LD HL,L0000
+ LD A,(0109CH)
+ OR 080H
+ OUT (LSWF),A
+L0682: DI
+ LD SP,L0000
+ IN A,(LSE0)
+ PUSH HL
+ PUSH HL
+ PUSH HL
+ PUSH HL
+ PUSH HL
+ PUSH HL
+ PUSH HL
+ PUSH HL
+ PUSH HL
+ PUSH HL
+ PUSH HL
+ PUSH HL
+ PUSH HL
+ PUSH HL
+ PUSH HL
+ PUSH HL
+ PUSH HL
+ PUSH HL
+ PUSH HL
+ PUSH HL
+ IN A,(LSE1)
+ LD (00684H),SP
+ LD SP,L0000
+ EI
+ DEC BC
+ LD A,C
+ OR B
+ JR NZ,L0682 ; (-029H)
+ RET
+
+L06AC: LD HL,L0000
+ LD (L1372),HL
+ LD B,002H
+ LD C,LSSCR
+ OUT (C),H
+ DEC B
+ OUT (C),L
+ JP L0992
+
+L06BE: EXX
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ EXX
+ CALL L06CC
+ EXX
+ POP BC
+ POP DE
+ POP HL
+ EXX
+ RET
+
+L06CC: LD HL,(L1082)
+L06CF: DEC L
+ JP P,L06E6
+ CALL TBCALC
+ LD A,(HL)
+ LD H,E
+ LD L,000H
+ OR A
+ JR Z,L06E6 ; (+009H)
+ LD A,(L136F)
+ CP H
+ JR Z,L06E6 ; (+003H)
+ DEC H
+ LD L,027H
+L06E6: LD (L1082),HL
+ CALL L0822
+ CALL PONTC
+ PUSH BC
+ LD D,H
+ LD E,L
+ INC HL
+ EXX
+ PUSH HL
+ EXX
+ POP BC
+ LDIR
+ XOR A
+ LD (DE),A
+ POP BC
+ LD HL,(L1082)
+ INC HL
+ CALL PONTB
+L0703: EXX
+ LD D,009H
+ LD HL,(0109DH)
+ DEC D
+ EXX
+ JR L0723 ; (+016H)
+
+L070D: LD C,027H
+ DEC B
+ JR Z,L0755 ; (+043H)
+ INC DE
+ INC DE
+ LD H,D
+ LD L,E
+ JR L0703 ; (-015H)
+
+L0718: LD HL,(0109DH)
+ DEC D
+ EXX
+ JR Z,L070D ; (-012H)
+ LD DE,00028H
+ ADD HL,DE
+L0723: EXX
+ RRC L
+ JR C,L0718 ; (-010H)
+ LD A,L
+ AND H
+ EXX
+ JR Z,L0723 ; (-00aH)
+ DI
+ PUSH HL
+ PUSH BC
+ OUT (LSRF),A
+ OUT (LSWF),A
+ IN A,(LSE0)
+ OUT (LSE0),A
+ LD D,H
+ LD E,L
+ DEC DE
+ LD A,C
+ OR A
+ JR Z,L0747 ; (+008H)
+ LD A,B
+ LD B,000H
+ LDIR
+ DEC A
+ JR Z,L074D ; (+006H)
+L0747: LD BC,00118H
+ ADD HL,BC
+ LD A,(HL)
+ LD (DE),A
+L074D: IN A,(LSE1)
+ EI
+ POP BC
+ POP HL
+ JP L0723
+
+L0755: EX DE,HL
+ INC C
+ LD E,C
+ LD D,B
+ LD B,008H
+ DI
+ IN A,(LSE0)
+ OUT (LSE0),A
+ LD A,(0109CH)
+ OR 080H
+ OUT (LSWF),A
+L0767: XOR A
+ LD (HL),A
+ SBC HL,DE
+ DJNZ L0767 ; (-006H)
+ IN A,(LSE1)
+ EI
+ LD HL,(L1082)
+ JP CURMOV
+
+L0776: EXX
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ EXX
+ CALL L0784
+ EXX
+ POP BC
+ POP DE
+ POP HL
+ EXX
+ RET
+
+L0784: LD HL,(L1082)
+ CALL L0822
+ PUSH HL
+ CALL PONT
+ DEC HL
+ LD A,(HL)
+ OR A
+ JR NZ,L07AE ; (+01bH)
+ PUSH BC
+ LD D,H
+ LD E,L
+ DEC HL
+ EXX
+ PUSH HL
+ EXX
+ POP BC
+ LDDR
+ XOR A
+ LD (DE),A
+ POP BC
+ POP HL
+ CALL PONTB
+ DEC HL
+ LD A,C
+ LD (007BBH),A
+ DEC B
+ JR Z,L07BC ; (+010H)
+ JR L07B3 ; (+005H)
+
+L07AE: POP HL
+ RET
+
+L07B0: DEC B
+ JR Z,L07BA ; (+007H)
+L07B3: LD C,027H
+ CALL L07DC
+ JR L07B0 ; (-00aH)
+
+L07BA: LD C,000H
+L07BC: CALL L07DC
+ CALL PONTCB
+ LD DE,00028H
+ LD B,008H
+ DI
+ LD A,(0109CH)
+ OR 080H
+ OUT (LSWF),A
+ IN A,(LSE0)
+ OUT (LSE0),A
+L07D3: XOR A
+ LD (HL),A
+ ADD HL,DE
+ DJNZ L07D3 ; (-005H)
+ IN A,(LSE1)
+ EI
+ RET
+
+L07DC: EXX
+ LD D,009H
+L07DF: LD HL,(0109DH)
+ DEC D
+ EXX
+ RET Z
+ CALL L07EF
+ LD DE,0FFD8H
+ ADD HL,DE
+ EXX
+ JR L07DF ; (-010H)
+
+L07EF: EXX
+ RRC L
+ LD A,L
+ EXX
+ RET C
+ EXX
+ AND H
+ EXX
+ JR Z,L07EF ; (-00bH)
+ PUSH HL
+ PUSH BC
+ DI
+ OUT (LSRF),A
+ OUT (LSWF),A
+ IN A,(LSE0)
+ OUT (LSE0),A
+L0805: LD D,H
+ LD E,L
+ DEC HL
+L0808: LD A,C
+ OR A
+ JR Z,L0814 ; (+008H)
+ LD A,B
+ LD B,000H
+ LDDR
+ OR A
+ JR Z,L081A ; (+006H)
+L0814: LD BC,0FEE8H
+ ADD HL,BC
+ LD A,(HL)
+ LD (DE),A
+L081A: IN A,(LSE1)
+ EI
+ POP BC
+ POP HL
+ JP L07EF
+
+L0822: LD B,001H
+ LD A,027H
+ SUB L
+ LD C,A
+ EXX
+ LD DE,00028H
+ LD H,000H
+ LD L,A
+ EXX
+L0830: INC H
+ LD A,(YE)
+ CP H
+ JR C,L0845 ; (+00eH)
+ CALL TBCALC
+ LD A,(HL)
+ OR A
+ LD H,E
+ JR Z,L0845 ; (+006H)
+ INC B
+ EXX
+ ADD HL,DE
+ EXX
+ JR L0830 ; (-015H)
+
+L0845: LD L,000H
+ RET
+
+L0848: CALL PUSHRA
+ LD A,(L136F)
+ LD H,A
+ LD L,000H
+ CALL PONT
+ LD D,H
+ LD E,L
+ LD B,000H
+ LD C,028H
+ ADD HL,BC
+ LD A,(L1371)
+ DEC A
+ JR Z,L0870 ; (+00fH)
+ PUSH BC
+ PUSH HL
+ LD HL,L0000
+L0866: ADD HL,BC
+ DEC A
+ JR NZ,L0866 ; (-004H)
+ LD B,H
+ LD C,L
+ POP HL
+ LDIR
+ POP BC
+L0870: LD B,C
+ CALL ?CLRDE
+ LD A,(L136F)
+ LD H,A
+ CALL TBCALC
+ LD A,(L1371)
+ DEC A
+ LD B,A
+ LD (HL),000H
+ INC HL
+ LD D,H
+ LD E,L
+ INC DE
+ CALL NZ,LDHLDE
+ LD (HL),000H
+ LD A,(YE)
+ LD H,A
+ LD L,000H
+ CALL PONTB
+ LD (008CDH),HL
+ LD DE,00028H
+ LD HL,(L1372)
+ ADD HL,DE
+ PUSH HL
+ LD DE,(01377H)
+ OR A
+ SBC HL,DE
+ POP HL
+ JR NZ,L08AC ; (+003H)
+ LD HL,L0000
+L08AC: LD (L1372),HL
+L08AF: IN A,(LSDMD)
+ AND 040H
+ JR NZ,L08AF ; (-006H)
+ DI
+ LD C,LSSCR
+ LD B,002H
+ OUT (C),H
+ DEC B
+ OUT (C),L
+ LD A,(L109B)
+ OUT (LSRF),A
+ OR 080H
+ OUT (LSWF),A
+ IN A,(LSE0)
+ OUT (LSE0),A
+ LD HL,L0000
+ LD (HL),000H
+ LD D,H
+ LD E,L
+ INC DE
+ LD BC,L013F
+ LDIR
+ IN A,(LSE1)
+ EI
+ LD A,(YE)
+ LD H,A
+ LD L,000H
+ JP CURMOV
+
+L08E5: CALL PUSHRA
+ EXX
+ PUSH HL
+ LD HL,L1391
+ LD A,(L108D)
+ OR A
+ JR Z,L08FC ; (+009H)
+ LD HL,L1399
+ DEC A
+ JR Z,L08FC ; (+003H)
+ LD HL,L13A1
+L08FC: EXX
+ DI
+ LD A,(L108C)
+ XOR 001H
+ LD (L108C),A
+ LD HL,(L1086)
+ LD D,000H
+ LD A,(L136B)
+ LD E,A
+ LD B,008H
+ LD A,(L109B)
+ OR 020H
+ OUT (LSWF),A
+ IN A,(LSE0)
+ OUT (LSE0),A
+L091C: EXX
+ LD A,(HL)
+ INC HL
+ EXX
+ LD (HL),A
+ ADD HL,DE
+ DJNZ L091C ; (-008H)
+ IN A,(LSE1)
+ EXX
+ POP HL
+ EXX
+ EI
+ RET
+
+HCURON: CALL PUSHRA
+ XOR A
+ OUT (LSD0),A
+ CPL
+ OUT (LSD0),A
+ LD A,(L108C)
+ OR A
+ RET NZ
+ JR L08E5 ; (-056H)
+
+HCUROF: CALL PUSHRA
+ LD A,(L108C)
+ OR A
+ RET Z
+ JR L08E5 ; (-060H)
+
+FLASH: IN A,(LSD2)
+ RLCA
+ RLCA
+ JR NC,HCURON ; (-020H)
+ JR HCUROF ; (-012H)
+
+CURMOV: CALL PUSHR
+ LD (L1082),HL
+ CALL PONT
+ LD (L1084),HL
+ CALL PONTCB
+ LD (L1086),HL
+ RET
+
+PONTC: LD HL,(L1082)
+PONT: PUSH DE
+ PUSH AF
+ LD D,020H
+ LD E,L
+ LD A,H
+ ADD A,A
+ ADD A,A
+ ADD A,H
+ LD L,A
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ NOP
+ ADD HL,DE
+ POP AF
+ POP DE
+ RET
+
+PONTCB: LD HL,(L1082)
+PONTB: PUSH DE
+ PUSH AF
+ LD D,H
+ LD E,000H
+ LD A,L
+ LD L,H
+ LD H,E
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,DE
+ NOP
+ CALL ADDHLA
+ SET 7,H
+ POP AF
+ POP DE
+ RET
+
+L0992: LD L,000H
+ LD A,(L136F)
+ LD H,A
+ JP L09F6
+
+L099B: CALL PUSHR
+ LD HL,(L1082)
+ LD A,L
+ OR A
+ JR NZ,L09AB ; (+006H)
+ CALL TBCALC
+ LD A,(HL)
+ OR A
+ RET Z
+L09AB: LD A,00DH
+ JP L0E61
+
+L09B0: XOR A
+ LD (00DABH),A
+ LD HL,(L1082)
+ PUSH HL
+ INC H
+ CALL TBCALC
+ LD A,(YE)
+ LD D,A
+L09C0: LD A,(HL)
+ OR A
+ JR Z,L09CA ; (+006H)
+ INC HL
+ INC E
+ LD A,D
+ CP E
+ JR NC,L09C0 ; (-00aH)
+L09CA: DEC E
+ POP HL
+ LD H,E
+ JR L09DE ; (+00fH)
+
+L09CF: LD HL,(L1082)
+ JR L09E0 ; (+00cH)
+
+L09D4: LD HL,(L1082)
+ INC L
+ LD A,(L136A)
+ CP L
+ JR NC,L09F6 ; (+018H)
+L09DE: LD L,000H
+L09E0: INC H
+ JR L09EA ; (+007H)
+
+ PUSH HL
+ CALL TBCALC
+ LD (HL),001H
+ POP HL
+L09EA: LD A,(YE)
+ CP H
+ JR NC,L09F6 ; (+006H)
+ LD H,A
+ PUSH HL
+L09F2: CALL L0848
+ POP HL
+L09F6: JP CURMOV
+
+L09F9: LD HL,(L1082)
+ JR L0A09 ; (+00bH)
+
+L09FE: LD HL,(L1082)
+ LD A,L
+ OR A
+ JR NZ,00A14H ; (+00fH)
+ LD A,(L136A)
+ LD L,A
+L0A09: LD A,(L136F)
+ CP H
+ JR C,00A16H ; (+007H)
+ LD A,(L136F)
+ LD H,A
+ LD A,02DH
+ LD A,025H
+ JR L09F6 ; (-023H)
+
+L0A19: XOR A
+ LD HL,?SETDE
+ LD HL,L023E
+ LD (L108D),A
+ RET
+
+L0A24: LD B,000H
+ LD HL,(L1082)
+ INC L
+ LD A,L
+L0A2B: INC B
+ SUB 00AH
+ JR NC,L0A2B ; (-005H)
+ XOR A
+L0A31: ADD A,00AH
+ DJNZ L0A31 ; (-004H)
+ LD L,A
+ LD A,(L136A)
+ CP L
+ RET C
+ PUSH HL
+ LD A,(L108F)
+ OR A
+ JR Z,L0A54 ; (+012H)
+ LD A,(L1082)
+ LD H,A
+ LD A,L
+ SUB H
+ JR Z,L0A54 ; (+00aH)
+ LD B,A
+L0A4B: PUSH BC
+ LD A,020H
+ CALL L0EBF
+ POP BC
+ DJNZ L0A4B ; (-009H)
+L0A54: POP HL
+ JP CURMOV
+
+PRNTT: CALL L0E5F
+ LD A,(L1082)
+L0A5E: SUB 00AH
+ JR NC,L0A5E ; (-004H)
+ ADD A,00AH
+ RET Z
+ JR PRNTT ; (-00fH)
+
+BINPUT: PUSH HL
+ LD HL,(L1082)
+ PUSH HL
+ PUSH DE
+ CALL TBCALC
+ POP DE
+ LD (HL),000H
+ POP HL
+ CALL GETL
+ JR C,L0A82 ; (+009H)
+ LD A,L
+ OR A
+ JR Z,L0A82 ; (+005H)
+ LD H,000H
+ ADD HL,DE
+ EX DE,HL
+ OR A
+L0A82: POP HL
+ RET
+
+GETL: PUSH BC
+ PUSH HL
+ PUSH DE
+L0A87: CALL INKEY1
+ CP 00DH
+ JP Z,L0ABB
+ CP 01BH
+ JR Z,L0AB4 ; (+021H)
+ PUSH AF
+ LD A,(L108D)
+ CP 002H
+ JR NZ,L0AAF ; (+014H)
+ POP AF
+ CP 017H
+ JR NC,L0AB0 ; (+010H)
+ CP 011H
+ JR C,L0AB0 ; (+00cH)
+ LD HL,(00D31H)
+ BIT 6,L
+ JR Z,L0AB0 ; (+005H)
+ RST 018H
+ DB 004H
+ JR L0A87 ; (-028H)
+
+L0AAF: POP AF
+L0AB0: RST 018H
+ DB 003H
+ JR L0A87 ; (-02dH)
+
+L0AB4: SCF
+L0AB5: RST 018H
+ DB 001H
+ POP DE
+ POP HL
+ POP BC
+ RET
+
+L0ABB: LD HL,(L1082)
+ CALL LBOUND
+ LD A,E
+ SUB D
+ LD E,A
+ LD H,D
+ LD L,000H
+ CALL PONT
+ LD A,(L136B)
+ LD D,A
+ POP BC
+ PUSH BC
+ EXX
+ PUSH HL
+ LD HL,(L1364)
+ EXX
+L0AD6: LD A,(HL)
+ INC HL
+ LD (BC),A
+ INC BC
+ EXX
+ DEC L
+ JR Z,L0AEA ; (+00cH)
+ EXX
+ DEC D
+ JR NZ,L0AD6 ; (-00cH)
+ LD A,(L136B)
+ LD D,A
+ DEC E
+ JR NZ,L0AD6 ; (-013H)
+ EXX
+L0AEA: POP HL
+ EXX
+ XOR A
+ LD (BC),A
+ LD L,C
+ LD H,B
+ POP DE
+ PUSH DE
+ PUSH HL
+ OR A
+ SBC HL,DE
+ LD B,L
+ POP HL
+ LD A,020H
+ LD D,A
+ JP Z,L0AB5
+ DEC HL
+L0AFF: LD A,(HL)
+ OR A
+ JR Z,L0B08 ; (+005H)
+ CP D
+ JR NZ,L0B0D ; (+007H)
+ LD (HL),000H
+L0B08: DEC HL
+ DJNZ L0AFF ; (-00cH)
+ JR L0B16 ; (+009H)
+
+L0B0D: LD A,(HL)
+ OR A
+ JR NZ,L0B13 ; (+002H)
+ LD (HL),020H
+L0B13: DEC HL
+ DJNZ L0B0D ; (-009H)
+L0B16: OR A
+ JP L0AB5
+
+INKEY$: INC A
+ JR Z,INKEYF ; (+06eH)
+ DEC A
+ JP Z,INKEY0
+INKEY1: CALL L0BAB
+ CALL PUSHR
+ CALL HCURON
+ EX AF,AF'
+ PUSH AF
+ CALL L0BC1
+ LD A,(L0D44)
+L0B32: EX AF,AF'
+L0B33: LD B,010H
+L0B35: CALL FLASH
+ CALL L0BC1
+ BIT 1,A
+ JR NZ,L0B33 ; (-00cH)
+ DJNZ L0B35 ; (-00cH)
+ BIT 0,A
+ JR Z,L0B51 ; (+00cH)
+ BIT 2,A
+ JR NZ,L0B62 ; (+019H)
+ EX AF,AF'
+ DEC A
+ JR NZ,L0B32 ; (-01bH)
+ LD A,006H
+ JR L0B64 ; (+013H)
+
+L0B51: PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,L0D3A
+ LD DE,L0D30
+ LD BC,0000AH
+ LDIR
+ POP BC
+ POP DE
+ POP HL
+L0B62: LD A,040H
+L0B64: LD (L0D44),A
+L0B67: CALL FLASH
+ CALL L0BF6
+ OR A
+ JR Z,L0B7B ; (+00bH)
+ LD (L1365),A
+ LD C,A
+ CALL HCUROF
+ POP AF
+ EX AF,AF'
+ LD A,C
+ RET
+
+L0B7B: PUSH HL
+ PUSH BC
+ LD B,00AH
+ LD HL,L0D30
+L0B82: LD (HL),0FFH
+ INC HL
+ DJNZ L0B82 ; (-005H)
+ POP BC
+ POP HL
+ JR L0B67 ; (-024H)
+
+INKEYF: CALL L0BAB
+ PUSH HL
+ CALL L0BF6
+ LD HL,L1365
+ OR A
+ JR Z,L0B9E ; (+006H)
+ CP (HL)
+ JR NZ,L0B9E ; (+003H)
+ POP HL
+ XOR A
+ RET
+
+L0B9E: LD (HL),A
+ POP HL
+ RET
+
+INKEY0: CALL L0BAB
+ CALL L0BF6
+ LD (L1365),A
+ RET
+
+L0BAB: PUSH HL
+ LD HL,(L1352)
+ LD A,L
+ CP H
+ POP HL
+ RET Z
+ EX (SP),HL
+ INC A
+ LD (L1352),A
+ LD HL,L1353
+ CALL ADDHLA
+ LD A,(HL)
+ POP HL
+ RET
+
+L0BC1: CALL PUSHR
+ LD DE,L0D3A
+ LD HL,L0D30
+ LD BC,00A00H
+ DI
+L0BCE: LD A,B
+ ADD A,0EFH
+ OUT (LSD0),A
+ CP 0F8H
+ IN A,(LSD1)
+ JR NZ,L0BDB ; (+002H)
+ OR 07FH
+L0BDB: CP 0FFH
+ JR Z,L0BE1 ; (+002H)
+ SET 0,C
+L0BE1: EX DE,HL
+ CP (HL)
+ LD (HL),A
+ EX DE,HL
+ JR Z,L0BE9 ; (+002H)
+ SET 1,C
+L0BE9: CPL
+ AND (HL)
+ JR Z,L0BEF ; (+002H)
+ SET 2,C
+L0BEF: INC HL
+ INC DE
+ DJNZ L0BCE ; (-025H)
+ LD A,C
+L0BF4: EI
+ RET
+
+L0BF6: CALL PUSHR
+ LD HL,L0D30
+ LD DE,L0D3A
+ PUSH HL
+ PUSH DE
+ LD BC,0000AH
+ LDIR
+ POP HL
+ POP DE
+ LD BC,00AF9H
+ DI
+ LD A,C
+ OUT (LSD0),A
+ NOP
+ IN A,(LSD1)
+ LD (DE),A
+L0C13: LD A,C
+ OUT (LSD0),A
+ CP 0F8H
+ IN A,(LSD1)
+ LD (DE),A
+ JR Z,L0C3E ; (+021H)
+ CPL
+ AND (HL)
+L0C1F: LD (HL),A
+ INC DE
+ INC HL
+ DEC C
+ DJNZ L0C13 ; (-012H)
+ EI
+ LD BC,00A00H
+L0C29: DEC HL
+ LD A,(HL)
+ OR A
+ JR NZ,L0C68 ; (+03aH)
+ INC C
+ DJNZ L0C29 ; (-008H)
+ LD B,00AH
+L0C33: DEC DE
+ LD A,(DE)
+ CP 0FFH
+ JR NZ,L0C41 ; (+008H)
+L0C39: DJNZ L0C33 ; (-008H)
+L0C3B: XOR A
+ JR L0BF4 ; (-04aH)
+
+L0C3E: XOR A
+ JR L0C1F ; (-022H)
+
+L0C41: LD A,B
+ CP 002H
+ JR NZ,L0C4F ; (+009H)
+ LD A,(DE)
+ AND 081H
+ JR NZ,L0C39 ; (-012H)
+ LD A,01BH
+ JR L0BF4 ; (-05bH)
+
+L0C4F: CP 001H
+ JR Z,L0C3B ; (-018H)
+ LD A,(L0D45)
+ CP B
+ JR NZ,L0C39 ; (-020H)
+ LD A,(DE)
+ PUSH DE
+ LD D,A
+ LD A,(L0D46)
+ AND D
+ POP DE
+ JR NZ,L0C39 ; (-02aH)
+ LD A,(L1365)
+ JR L0BF4 ; (-074H)
+
+L0C68: PUSH AF
+ LD A,B
+ LD (L0D45),A
+ LD A,(HL)
+ LD (L0D46),A
+ POP AF
+ DEC B
+ JR NZ,L0CAB ; (+036H)
+ CALL L0D18
+ LD A,(00D31H)
+ BIT 6,A
+ JR Z,L0C3B ; (-044H)
+ BIT 0,A
+ LD A,B
+ JR NZ,L0C86 ; (+002H)
+ ADD A,005H
+L0C86: CP 00AH
+ JR NC,L0C3B ; (-04fH)
+ LD L,A
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ LD BC,L12B2
+ ADD HL,BC
+ LD A,(HL)
+ OR A
+ JR Z,L0C3B ; (-05eH)
+ LD DE,L1352
+ LD A,001H
+ LD (DE),A
+ INC DE
+ LD BC,00010H
+ LDIR
+ LD A,(INBUF)
+ JP L0BF4
+
+L0CAB: CALL L0D18
+ LD A,C
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,B
+ LD L,A
+ LD H,000H
+ LD A,(00D31H)
+ BIT 6,A
+ LD BC,L0D47
+ JR Z,L0CEF ; (+02fH)
+ PUSH AF
+ LD A,(L108D)
+ CP 001H
+ JR NZ,L0CCC ; (+004H)
+ POP AF
+ XOR 001H
+ PUSH AF
+L0CCC: POP AF
+ BIT 0,A
+ JR NZ,L0CD4 ; (+003H)
+ LD BC,L0D59
+L0CD4: LD A,(L108D)
+ CP 002H
+ JR NZ,L0CE8 ; (+00dH)
+ LD BC,L0D6B
+ LD A,(00D31H)
+ BIT 0,A
+ JR Z,L0CE8 ; (+003H)
+ LD BC,L0D7D
+L0CE8: CALL L3C3E
+ LD A,C
+ JP L0BF4
+
+L0CEF: CALL L3C3E
+ LD A,C
+ CP 020H
+ JP C,L0BF4
+ LD HL,L0D8F
+ LD B,005H
+L0CFD: CP (HL)
+ JR Z,L0D12 ; (+012H)
+ INC HL
+ DJNZ L0CFD ; (-006H)
+ CP 040H
+ JP C,L0C3B
+ CP 05BH
+ JP NC,L0C3B
+ SUB 040H
+ JP L0BF4
+
+L0D12: LD A,020H
+ SUB B
+ JP L0BF4
+
+L0D18: LD B,008H
+L0D1A: RRCA
+ JR C,L0D20 ; (+003H)
+ DJNZ L0D1A ; (-005H)
+BRKEY: RET
+
+L0D20: DEC B
+ RET
+
+L0D22: LD A,0E8H
+ OUT (LSD0),A
+ NOP
+ IN A,(LSD1)
+ AND 081H
+ RET Z
+ RLCA
+ DB 0D8H
+ DB 018H
+ DB PSGA
+L0D30: DS 10, 000H
+L0D3A: DS 4, 000H
+L0D3E: DS 6, 000H
+L0D44: DB 000H
+L0D45: DB 000H
+L0D46: DB 001H
+L0D47: DB 0EAH
+ DB 00BH
+ DB 090H
+ DB 017H
+ DB LSFC
+ DB 019H,009H,03BH,03AH,00DH,018H,010H,012H,011H,013H,014H,03FH,02FH
+L0D59: DB 02AH,00CH,090H,017H,0FBH,005H,009H,02BH,02AH,00DH,016H,015H,012H,011H,013H,014H,0C6H,05FH
+L0D6B: DB 0E9H
+ DB 00CH
+ DB 090H
+ DB 017H
+ DB 068H
+ DB 005H
+ DB 009H
+ DB 084H
+ DB 0E9H
+ DB 00DH
+ DB 016H
+ DB 015H
+ DB 012H
+ DB 011H
+ DB 013H
+ DB 014H
+ DB 08FH
+ DB 08BH
+L0D7D: DB 06AH
+ DB 00CH
+ DB 090H
+ DB 017H
+ DB 06CH
+L0D82: DB 019H
+ DB 009H
+ DB 0FEH
+ DB 089H
+ DB 00DH
+ DB 016H
+ DB 015H
+ DB 012H
+ DB 011H
+ DB 013H
+ DB 014H
+ DB 08AH
+ DB 07BH
+L0D8F: DB 05BH
+ DB 05CH
+ LD E,L
+ LD E,(HL)
+ CPL
+L0D94: CALL PUSHR
+L0D97: LD A,(DE)
+ INC DE
+ OR A
+ RET Z
+ LD C,A
+ CP 005H
+ JR Z,L0DBE ; (+01eH)
+ CP 006H
+ JR Z,L0DBD ; (+019H)
+ SUB 041H
+ CP 01AH
+ JR NC,L0DB6 ; (+00cH)
+ LD A,000H
+ OR A
+ JR Z,L0DB6 ; (+007H)
+ LD HL,L0D82
+ LD B,000H
+ ADD HL,BC
+ LD C,(HL)
+L0DB6: LD A,C
+ RST 018H
+ DB 003H
+ CP 00DH
+ JR NZ,L0D97 ; (-026H)
+L0DBD: XOR A
+L0DBE: LD (00DABH),A
+ DB 018H
+ DB 0D4H
+ DB 0A1H
+ DB 09AH
+ DB 09FH
+ DB 09CH
+ DB 092H
+ DB 0AAH
+ DB 097H
+ DB 098H
+ DB 0A6H
+ DB 0AFH
+ DB 0A9H
+ DB 0B8H
+ DB 0B3H
+ DB 0B0H
+ DB 0B7H
+ DB 09EH
+ DB 0A0H
+ DB 09DH
+ DB 0A4H
+ DB 096H
+ DB 0A5H
+ DB 0ABH
+ DB 0A3H
+EQTBL: DB 09BH ; $CRT / EQTBL - CRT device descriptor
+ DB 0BDH
+ DB 0A2H
+L0DDD: DB 0F6H,00DH,"CRT",000H,08AH
+ DS 2, 000H
+ DB 03AH
+ DB 045H
+ DB 0B2H
+ DB 000H
+ DB 0B2H
+ DB 000H
+ DB 0B2H
+ DB 000H
+ DB 0B2H
+ DB 000H
+ DB 00FH
+ DB 00EH
+ DB 017H
+$KB_: DB 00EH,026H,00EH,079H,014H,04BH,042H ; $KB - Keyboard device descriptor
+ DS 2, 000H
+ DB 081H
+ DS 2, 000H
+ DB 0B2H
+ DB 000H
+ DB 0B2H
+ DB 000H
+ DB 0B2H
+ DB 000H
+ DB 0B2H
+ DB 000H
+ DB 0B2H
+ DB 000H
+ DB 00FH
+ LD C,0B2H
+ NOP
+ OR D
+ NOP
+ RST 018H
+L0E10: DB 00CH
+ LD A,080H
+ RET C
+ RST 018H
+ DB 017H
+ RET
+
+ EX AF,AF'
+ LD HL,L0E61
+ LD A,(L1090)
+ OR A
+ JR Z,L0E24 ; (+003H)
+ LD HL,L0EA2
+L0E24: EX AF,AF'
+ JP (HL)
+
+ LD A,(L1082)
+ RET
+
+L0E2A: LD A,00DH
+L0E2C: PUSH AF
+ LD A,(L1091)
+ OR A
+ JR NZ,L0E36 ; (+003H)
+ POP AF
+ JR L0E61 ; (+02bH)
+
+L0E36: POP AF
+ JP L14B9
+
+L0E3A: PUSH AF
+ LD A,(L1091)
+L0E3E: OR A
+ JR NZ,L0E44 ; (+003H)
+ POP AF
+ JR L0EA2 ; (+05eH)
+
+L0E44: POP AF
+ JP L14E0
+
+L0E48: CALL PUSHR
+ LD HL,L0E2C
+ JR L0E56 ; (+006H)
+
+L0E50: CALL PUSHR
+ LD HL,L0E61
+L0E56: LD A,(DE)
+ OR A
+ RET Z
+ CALL .HL
+CRT1C: INC DE
+ JR L0E56 ; (-009H)
+
+L0E5F: LD A,020H
+L0E61: CALL PUSHRA
+L0E64: LD C,A
+ LD A,(L108F)
+ OR A
+ JR Z,L0E99 ; (+02eH)
+ LD A,C
+ CP 020H
+ JR NC,L0E96 ; (+026H)
+ LD DE,(CURXY)
+ LD HL,(XS)
+ CP 014H
+ JR Z,L0E83 ; (+008H)
+ CP 012H
+ JR NZ,L0E88 ; (+009H)
+ LD HL,(L136F)
+ LD E,D
+L0E83: LD A,L
+ CP E
+ JP NC,L003E
+L0E88: LD HL,L0ED9
+ LD B,000H
+ ADD HL,BC
+ LD A,(HL)
+ INC A
+ JR Z,L0E99 ; (+007H)
+ DEC A
+ JP Z,L003E
+L0E96: CALL L0EBF
+L0E99: LD A,C
+ CP 020H
+ JP C,L009B
+ JP ACCDI
+
+L0EA2: CALL PUSHRA
+ LD C,A
+ CP 00DH
+ JR Z,L0E64 ; (-046H)
+ CALL ACCDI
+ LD A,(L108F)
+ OR A
+ RET Z
+ LD A,C
+PLTOTX: CP 011H
+ JR C,L0ED4 ; (+01dH)
+ CP 017H
+ JR C,L0ED6 ; (+01bH)
+ CP 020H
+ JR C,L0ED4 ; (+015H)
+L0EBF: CP 060H
+ JR C,L0ED6 ; (+013H)
+ CP 070H
+ JR C,L0ED4 ; (+00dH)
+ CP 0C1H
+ JR C,L0ED6 ; (+00bH)
+ CALL CHKACC
+ INC BC
+ RST 010H
+ RST 008H
+ RST 038H
+ JR Z,L0ED6 ; (+002H)
+L0ED4: DB 03EH
+ DB 02EH
+L0ED6: DB 0C3H
+ DB LSPAL
+ DB 014H
+L0ED9: DS 4, 000H
+ DS 3, 0FFH
+ DB 01DH
+ DB 000H
+ DB 0FFH
+ DS 3, 000H
+ DB 00DH
+ DS 3, 000H
+ DB 00AH
+ DB 003H
+ DB 020H
+ DB 00EH
+ DS 2, 000H
+ DB 0FFH
+ DB 000H
+ DS 2, 0FFH
+ DEC C
+ RST 038H
+ NOP
+ NOP
+ NOP
+L0EF9: DI
+ XOR A
+ OUT (LSDMD),A
+ LD (L108F),A
+ DB 032H
+ DB 091H
+ DB 010H
+ DB 031H
+ DS 2, 000H
+ DB 0EDH
+ DB 05EH
+ DB 03EH
+ DB 004H
+ DB LSD3
+ DB LSD3
+ DB LSD3
+ DB LSE0
+ DB LSD3
+ DB LSE1
+ DB LSRF
+ DB 041H,004H,03EH,00FH,0EDH,047H,03EH,0FEH
+ DB LSD3
+ DB 0FDH
+ DB 03EH
+ DB 00FH
+ DB LSD3
+ DB 0FDH
+ DB 0C5H
+ DB LSRF
+ DB 04EH
+ DB 00FH
+ DB LSRF
+ DB 0B9H
+ LD B,H
+ CALL L3F58
+ POP BC
+L0F2A: LD HL,L1E18
+ XOR A
+ LD (L0F2A),A
+ LD D,A
+ LD E,A
+ RST 018H
+ DB 026H
+ LD DE,$RFS
+ LD A,B
+ OR A
+ JR Z,L0F48 ; (+00cH)
+ DEC A
+ JR Z,L0F48 ; (+009H)
+ LD DE,L3B9E
+ DEC A
+ JR Z,L0F48 ; (+003H)
+ LD DE,$QD
+L0F48: LD A,C
+ RST 018H
+ DB 03AH
+ JP L00DA
+
+ DI
+ XOR A
+ OUT (LSDMD),A
+ LD A,014H
+ OUT (LSRF),A
+ LD A,094H
+ OUT (LSWF),A
+ IN A,(LSE0)
+ OUT (LSE0),A
+ LD HL,L9FFF
+ LD A,(HL)
+ LD C,A
+ CPL
+ LD (HL),A
+ CP (HL)
+ LD (HL),C
+ LD A,000H
+ JR NZ,L0F6C ; (+001H)
+ INC A
+L0F6C: LD (L1099),A
+ IN A,(LSE1)
+ EI
+ LD A,001H
+ CALL DSMODE
+ XOR A
+ LD (L108C),A
+ LD (L108D),A
+ RET
+
+ NOP
+ NOP
+ LD D,L
+ LD D,E
+ LD D,D
+ NOP
+ SBC A,A
+ NOP
+ NOP
+ OR D
+ NOP
+ SBC A,B
+ RRCA
+ SBC A,B
+ RRCA
+ OR D
+ NOP
+ OR D
+ NOP
+ AND A
+ RRCA
+ AND A
+ RRCA
+ OR D
+ NOP
+ LD HL,L1001
+ RST 018H
+ DB 013H
+ LD A,D
+ OR E
+ JP Z,01FAFH
+ LD (ZWRK1),DE
+ RET
+
+ LD HL,(ZWRK1)
+ JP (HL)
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DS 12, 000H
+ DB 01AH
+ DB 042H
+ DB 061H
+ DB 015H
+L1000: DB 000H
+L1001: DS 14, 000H
+L100F: DS 3, 000H
+L1012: DS 2, 000H
+L1014: DS 4, 000H
+L1018: DS 32, 000H
+L1038: DB 000H
+L1039: DS 5, 000H
+L103E: DS 2, 000H
+L1040: DB 002H
+ DB 000H
+L1042: DB 000H
+L1043: DB 000H
+L1044: DS 2, 000H
+L1046: DS 4, 000H
+L104A: DS 6, 000H
+L1050: DB 001H
+L1051: DS 23, 000H
+ NOP
+L1069: DS 3, 000H
+ DB 0DDH
+ DB 00DH
+ DB 079H
+ DB 014H
+L1070: DS 2, 000H
+L1072: DS 2, 000H
+L1074: DS 2, 000H
+L1076: DS 2, 000H
+L1078: DS 2, 000H
+L107A: DS 2, 000H
+L107C: DS 2, 000H
+L107E: DS 3, 000H
+ DB 0FFH
+L1082: DS 2, 000H
+L1084: DB 000H
+ DB 020H
+L1086: DB 000H
+ DB 080H
+L1088: DS 2, 000H
+L108A: DS 2, 000H
+L108C: DB 000H
+L108D: DB 000H
+L108E: DB 000H
+L108F: DB 000H
+L1090: DB 000H
+L1091: DB 000H
+ DB 001H
+ DB 00DH
+ DB 00EH
+L1095: DS 2, 000H
+L1097: DB 001H
+L1098: DB 000H
+L1099: DB 000H
+L109A: DB 000H
+L109B: DS 2, 003H
+ DB 004H
+L109E: DB 0FFH
+L109F: DB 003H
+ DS 80, 000H
+L10F0: DS 78, 000H
+L113E: DS 84, 000H
+ DB 0EFH
+ DS 4, 000H
+L1197: DS 2, 000H
+L1199: DS 4, 000H
+ DB 001H
+ DB 004H
+ DB 005H
+ DS 3, 000H
+L11A3: DB 000H
+L11A4: DB 000H
+L11A5: DB 000H
+L11A6: DS 2, 000H
+L11A8: DB 000H
+L11A9: DB 000H
+L11AA: DB 000H
+L11AB: DB 000H
+L11AC: DB 000H
+L11AD: DB 000H
+L11AE: DB 000H
+L11AF: DB 000H
+L11B0: DB 000H
+L11B1: DB 000H
+L11B2: DB 000H
+L11B3: DB 000H
+L11B4: DB 000H
+L11B5: DB 000H
+L11B6: DB 000H
+L11B7: DB 000H
+L11B8: DB 000H
+L11B9: DB 000H
+L11BA: DS 11, 000H
+L11C5: DS 4, 000H
+L11C9: DS 2, 000H
+L11CB: DS 2, 000H
+L11CD: DS 33, 000H
+L11EE: DS 18, 000H
+L1200: DS 7, 000H
+L1207: DB 000H
+L1208: DB 000H
+L1209: DS 5, 000H
+L120E: DS 2, 000H
+L1210: DS 2, 000H
+L1212: DS 2, 000H
+L1214: DS 2, 000H
+L1216: DS 2, 000H
+L1218: DS 2, 000H
+L121A: DS 2, 000H
+L121C: DS 2, 000H
+L121E: DS 2, 000H
+L1220: DB 000H
+L1221: DS 2, 000H
+L1223: DS 9, 000H
+L122C: DS 18, 000H
+L123E: DS 8, 000H
+L1246: DS 13, 000H
+L1253: DS 36, 000H
+L1277: DS 39, 000H
+L129E: DS 2, 000H
+L12A0: DS 10, 000H
+L12AA: DS 4, 000H
+L12AE: DS 4, 000H
+L12B2: DB 007H,"RUN"
+ DS 3, 020H
+ DB 00DH
+ DS 8, 000H
+ DB 005H,"LIST "
+ DS 10, 000H
+ DB 005H,"AUTO "
+ DS 10, 000H
+ DB 006H,"RENUM "
+ DS 9, 000H
+ DB 006H,"COLOR "
+ DS 9, 000H
+ DB 005H,"CHR$("
+ DS 10, 000H
+ DB 008H,"DEF KEY("
+ DS 7, 000H
+ DB 004H,"CONT"
+ DS 11, 000H
+ DB 006H,"SAVE"
+ DS 2, 020H
+ DS 5, 000H
+L133E: DS 4, 000H
+ DB 006H,"LOAD"
+ DS 2, 020H
+ DS 8, 000H
+ NOP
+L1352: DB 000H
+L1353: DS 17, 000H
+L1364: DB 0FFH
+L1365: DS 5, 000H
+L136A: DB 027H
+L136B: DB 028H
+ DB 000H
+L136D: DB 040H
+ DB 001H
+L136F: DB 000H
+ DB 018H
+L1371: DB 019H
+L1372: DS 2, 000H
+L1374: DB 07DH
+L1375: DB 000H
+L1376: DB 07DH
+L1377: DB 0E8H
+ DB 003H
+L1379: DB 001H
+L137A: DB 001H
+L137B: DB 003H
+L137C: DS 2, 000H
+L137E: DB 000H
+L137F: DB 089H
+ DB 013H
+L1381: DS 4, 000H
+L1385: DB 000H
+ DB 01FH
+ DB 02FH
+ DB 03FH
+L1389: DB 000H
+ DB 011H
+ DB 022H
+ DB 03FH
+L138D: DB 000H
+ DB 011H
+ DB 022H
+ DB 033H
+L1391: DS 8, 0FFH
+L1399: DB 07EH
+ DS 6, 0FFH
+ DB 07EH
+L13A1: DS 7, 000H
+ DB 0FFH
+L13A9: DS 26, 000H
+L13C3: DB 000H
+L13C4: DS 8, 000H
+ DB LSPAL
+ DB 03FH
+ DS 3, 000H
+ DB 0C0H
+ DB 000H
+ DB 0C0H
+ DB 000H
+ DB 0C0H
+ DS 2, 000H
+ DB 004H
+L13D9: DB 000H
+ DB 0DCH
+ DB 013H
+ DB 027H
+ DS 2, 023H
+ DS 2, 040H
+ DS 2, 05BH
+ DS 2, 05CH
+ DS 2, 05DH
+ DB 08BH,05EH,090H,05FH,093H,060H,0A1H,061H,09AH,062H,09FH,063H,09CH,064H,092H,065H,0AAH,066H,097H,067H,098H,068H,0A6H,069H,0AFH,06AH,0A9H,06BH,0B8H,06CH,0B3H,06DH,0B0H,06EH,0B7H,06FH,09EH,070H,0A0H,071H,09DH,072H,0A4H,073H,096H
+L1414: DB 074H,0A5H,075H,0ABH,076H,0A3H,077H,09BH,078H,0BDH,079H,0A2H,07AH,0BEH,07BH,0C0H,07CH,080H,07DH,094H,07EH
+ DS 2, 07FH
+L142B: DB 0FEH
+ DB 00DH
+ DB 028H
+ DB 013H
+ DB 0FEH
+ DB 00AH
+ DB 028H
+ DB 00FH
+ DB LSRF
+ DB 048H,014H,0FEH,020H,030H,006H,0CBH,043H,028H,002H
+L143E: DB 03EH
+ DB 020H
+ DB 0DDH
+ DB 0E9H
+ DB LSRF
+ DB 040H
+ DB 014H
+ DB 036H
+ DB 000H
+ DB 0C9H
+ DB 0C5H
+ DB 00EH
+ DB 000H
+ DB LSRF
+ DB 050H
+ DB 014H
+ DB 0C1H
+ DB 0C9H
+ DB LSRF
+ DB 0C7H,000H,02AH,0DAH,013H,"F#T]",013H,0CBH,041H,028H,001H,0EBH,0BEH,028H,007H
+ DS 2, 023H
+ DS 2, 013H
+ DB 010H
+ DB SIOBC
+ DB 0C9H
+ DB 01AH
+ DB 0C9H
+L146C: DB LSRF
+ DB 040H
+ DB 014H
+ DB 0D8H
+ DB 0C5H
+ DB 00EH
+ DB 001H
+ DB LSRF
+ DB 050H
+ DB 014H
+ DB 0C1H
+ DB 0B7H
+ DB 0C9H
+$LPT: DB "Z7LPT",000H,08AH ; $LPT - Line printer device descriptor
+ DS 2, 000H
+ DB 0ECH
+ DB 014H
+ DB 0ACH
+ DB 01FH
+ DB 0B2H
+ DB 000H
+ DB 0B2H
+ DB 000H
+ DB 0B2H
+ DS 3, 000H
+ DB 0B2H
+ DB 014H
+ DB 092H
+ DB 014H
+ LD A,(L108F)
+ OR A
+ LD A,(L1095)
+ RET Z
+ LD A,(L1082)
+ RET
+
+L149E: CALL L1517
+ INC BC
+L14A2: CALL L1517
+ LD B,LSRF
+ RLA
+ DEC D
+ ADD HL,BC
+L14AA: CALL L1517
+ INC C
+L14AE: CALL 01508H
+ RRCA
+ LD HL,L1090
+ BIT 0,(HL)
+ JR NZ,L14E0 ; (+027H)
+L14B9: PUSH IY
+ EX AF,AF'
+ LD A,012H
+L14BE: LD (L14DF),A
+ LD A,003H
+L14C3: LD (L14D6),A
+ EX AF,AF'
+ CALL L14D8
+ POP IY
+ PUSH BC
+ LD B,A
+ LD A,(L108F)
+ OR A
+ LD A,B
+ POP BC
+ RET Z
+ RST 018H
+L14D6: DB 003H
+ RET
+
+L14D8: LD IY,L142B
+ CALL 01508H
+L14DF: LD (DE),A
+L14E0: PUSH IY
+ EX AF,AF'
+ LD A,015H
+ LD (L14DF),A
+ LD A,003H
+ JR L14C3 ; (-029H)
+
+ CALL 01508H
+ JR L14BE ; (-033H)
+
+ EX AF,AF'
+ DEC D
+ DEC DE
+L14F4: CALL 01508H
+ LD E,LSRF
+ DB 008H
+ DB 015H
+ DB 021H
+L14FC: DB LSRF
+ DB 008H
+ DB 015H
+ DB 024H
+L1500: DB LSRF
+ DB 008H
+ DB 015H
+ DB 027H
+L1504: CALL 01508H
+ LD HL,(03A08H)
+ SUB D
+ DJNZ L14D8 ; (-035H)
+ LD C,A
+ JR Z,L1516 ; (+006H)
+ PUSH BC
+ LD B,003H
+ RST 018H
+ DB 023H
+ POP BC
+L1516: EX AF,AF'
+L1517: EX AF,AF'
+ XOR A
+ LD (L12AE),HL
+ LD (L13D9),A
+ EX AF,AF'
+ DI
+ LD (012ACH),SP
+ EX (SP),HL
+ LD SP,HL
+ POP HL
+ OUT (LSE3),A
+ LD SP,L12AA
+ CALL L1543
+ OUT (LSE1),A
+ LD SP,(012ACH)
+ EX (SP),HL
+ INC SP
+ INC SP
+ EI
+ EX AF,AF'
+ LD A,(L13D9)
+L153E: OR A
+ JR NZ,L1546 ; (+005H)
+ EX AF,AF'
+ RET
+
+L1543: LD H,SIOAD
+ JP (HL)
+
+L1546: LD B,A
+ EX AF,AF'
+ DEC B
+ JP Z,BREAKZ
+ DEC B
+ JP NZ,ERRORJ
+L1550: LD HL,(013CEH)
+ LD A,H
+ OR L
+ JR Z,L1504 ; (-053H)
+ CALL L14FC
+ RST 018H
+ DB 00EH
+ JP Z,BREAKZ
+ JR L1550 ; (-011H)
+
+ DI
+ PUSH AF
+ PUSH HL
+ PUSH BC
+ LD (01585H),SP
+ LD SP,L1585
+ OUT (LSE3),A
+ CALL 0F400H
+ OUT (LSE1),A
+ LD SP,(01585H)
+ POP BC
+ POP HL
+ POP AF
+ EI
+ RETI
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1585: NOP
+ NOP
+L1587: PUSH HL
+ LD DE,(0004FH)
+ PUSH DE
+ LD DE,L15CE
+ LD (0004FH),DE
+ LD A,(L1364)
+ PUSH AF
+ LD A,064H
+ LD (L1364),A
+ LD (01645H),SP
+ XOR A
+ LD (L1091),A
+L15A5: LD SP,L0000
+L15A8: LD BC,L15A8
+ PUSH BC
+ RST 018H
+ DB 002H
+ LD A,02AH
+ RST 018H
+ DB 003H
+L15B2: CALL L1651
+ JR NC,L15B2 ; (-005H)
+ LD A,(DE)
+ CP 02AH
+ RET NZ
+ INC DE
+ LD A,(DE)
+ INC DE
+ EXX
+ LD HL,L15E0
+ LD B,00AH
+L15C4: CP (HL)
+ INC HL
+ JR Z,L15DA ; (+012H)
+ INC HL
+ INC HL
+ DJNZ L15C4 ; (-008H)
+ EXX
+ RET
+
+L15CE: LD C,A
+ AND 07FH
+ JR Z,L15A5 ; (-02eH)
+ LD A,C
+ RST 018H
+ DB 01BH
+ RST 018H
+ DB 043H
+ JR L15A5 ; (-035H)
+
+L15DA: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH DE
+ EXX
+ RET
+
+L15E0: LD B,H
+ ADD A,016H
+ LD C,L
+ JR C,L15FD ; (+017H)
+ LD D,B
+ CP 015H
+ LD B,A
+ POP BC
+ LD D,046H
+ LD E,H
+ RLA
+ LD D,D
+ LD B,H
+ LD D,053H
+ RLCA
+ LD D,04CH
+ LD E,016H
+ LD D,(HL)
+ DEC SP
+ LD D,054H
+ XOR H
+L15FD: RLA
+ LD A,(L1091)
+ XOR 001H
+ LD (L1091),A
+ RET
+
+ CALL L1795
+ RET C
+ EXX
+ CALL L17C3
+ EXX
+ LD (ELMD20),BC
+ LD (ELMD22),DE
+ LD (L1018),HL
+ RST 018H
+ DB 031H
+ RET
+
+ CALL L1672
+ PUSH HL
+ PUSH AF
+ CALL L1630
+ POP AF
+ POP HL
+ JR NC,L162D ; (+003H)
+ LD HL,(ELMD22)
+L162D: RST 018H
+ DB 030H
+ RET
+
+L1630: CALL L17C3
+ RST 018H
+ DB 02FH
+ CP 001H
+ RET Z
+ JP 01FB2H
+
+ CALL L1630
+L163E: LD HL,(ELMD22)
+ RST 018H
+ DB 032H
+ RET
+
+ LD SP,L0000
+ POP AF
+ LD (L1364),A
+ POP HL
+ LD (L004F),HL
+ POP HL
+ RET
+
+L1651: LD DE,0FF00H
+ RST 018H
+ DB 00CH
+ JR C,L1670 ; (+018H)
+ LD A,(DE)
+ CP 03AH
+ SCF
+ RET NZ
+ INC DE
+ CALL L1672
+ RET C
+ LD A,(DE)
+ INC DE
+ XOR 03DH
+ RET NZ
+L1667: CALL L1697
+ CCF
+ RET NC
+ LD (HL),A
+ INC HL
+ JR L1667 ; (-009H)
+
+L1670: LD (DE),A
+ RET
+
+L1672: PUSH HL
+ CALL L168C
+ PUSH DE
+ CALL L169E
+ JR C,L1687 ; (+00bH)
+ LD H,A
+ CALL L169E
+ JR C,L1687 ; (+005H)
+ LD L,A
+ POP AF
+ POP AF
+ XOR A
+ RET
+
+L1687: POP DE
+ POP HL
+ SCF
+ RET
+
+L168B: INC DE
+L168C: LD A,(DE)
+ CP 020H
+ JR Z,L168B ; (-006H)
+ RET
+
+L1692: LD A,(DE)
+ RST 018H
+ DB 015H
+ INC DE
+ RET
+
+L1697: CALL L168C
+ CP 03BH
+ JR Z,L16BC ; (+01eH)
+L169E: PUSH BC
+ PUSH DE
+ CALL L1692
+ JR C,L16B8 ; (+013H)
+ LD C,A
+ CALL L1692
+ JR C,L16B8 ; (+00dH)
+ LD B,A
+ LD A,C
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ ADD A,B
+ LD C,A
+ LD A,C
+ POP BC
+ POP BC
+ OR A
+ RET
+
+L16B8: POP DE
+ POP BC
+ SCF
+ RET
+
+L16BC: INC DE
+ LD A,(DE)
+ INC DE
+ OR A
+ RET
+
+ CALL L1672
+ RET C
+ JP (HL)
+
+ CALL L1672
+ JR C,L16D6 ; (+00bH)
+ PUSH HL
+ CALL L1672
+ JR C,L16D5 ; (+004H)
+ POP DE
+ EX DE,HL
+ JR L16DC ; (+007H)
+
+L16D5: POP HL
+L16D6: EX DE,HL
+ LD HL,00080H
+ ADD HL,DE
+ EX DE,HL
+L16DC: LD C,008H
+ CALL L16E9
+ RET C
+ PUSH HL
+ SBC HL,DE
+ POP HL
+ RET NC
+ JR L16DC ; (-00dH)
+
+L16E9: CALL L1711
+ LD B,C
+ PUSH HL
+L16EE: LD A,(HL)
+ CALL L1722
+ INC HL
+ LD A,020H
+ RST 018H
+ DB 009H
+ DJNZ L16EE ; (-00bH)
+ POP HL
+ LD A,02FH
+ RST 018H
+ DB 009H
+ LD B,C
+L16FF: LD A,(HL)
+ CP 020H
+ JR NC,L1706 ; (+002H)
+ LD A,02EH
+L1706: RST 018H
+ DB 009H
+ INC HL
+ DJNZ L16FF ; (-00cH)
+ RST 018H
+ DB 008H
+ RST 018H
+ DB 00FH
+ OR A
+ RET
+
+L1711: LD A,03AH
+ RST 018H
+ DB 009H
+ LD A,H
+ CALL L1722
+ LD A,L
+ CALL L1722
+ LD A,03DH
+ RST 018H
+ DB 009H
+ RET
+
+L1722: PUSH AF
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ CALL L172B
+ POP AF
+L172B: AND 00FH
+ ADD A,030H
+ CP 03AH
+ JR C,L1735 ; (+002H)
+ ADD A,007H
+L1735: RST 018H
+ DB 009H
+ RET
+
+ CALL L1672
+ LD A,(L1091)
+ PUSH AF
+ XOR A
+ LD (L1091),A
+L1743: RST 018H
+ DB 002H
+ CALL L1711
+ LD A,(HL)
+ CALL L1722
+ LD A,014H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 003H
+ CALL L1651
+ JR NC,L1743 ; (-014H)
+ POP AF
+ LD (L1091),A
+ RET
+
+ CALL L1672
+ RET C
+ PUSH HL
+ CALL L1672
+ POP BC
+ RET C
+ PUSH HL
+ PUSH BC
+ LD HL,0FF00H
+ CALL L1667
+ LD DE,0FF00H
+ OR A
+ SBC HL,DE
+ LD C,L
+ POP HL
+ PUSH HL
+ EXX
+ POP HL
+ POP DE
+ EXX
+ RET Z
+L177C: CALL L17D6
+ JR NZ,L1785 ; (+004H)
+ CALL L16E9
+ RET C
+L1785: RST 018H
+ DB 00EH
+ RET Z
+ EXX
+ INC HL
+ PUSH HL
+ SCF
+ SBC HL,DE
+ POP HL
+ RET NC
+ PUSH HL
+ EXX
+ POP HL
+ JR L177C ; (-019H)
+
+L1795: CALL L1672
+ PUSH HL
+ CALL NC,L1672
+ POP BC
+ RET C
+ SBC HL,BC
+ INC HL
+ PUSH HL
+ PUSH BC
+ CALL L1672
+ PUSH HL
+ EXX
+ POP HL
+ POP DE
+ POP BC
+ RET
+
+ CALL L1795
+ RET C
+ EX DE,HL
+ PUSH HL
+ SBC HL,DE
+ POP HL
+ JR C,L17BA ; (+003H)
+ LDIR
+ RET
+
+L17BA: ADD HL,BC
+ DEC HL
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ EX DE,HL
+ LDDR
+ RET
+
+L17C3: LD A,(DE)
+ OR A
+ JR Z,L17CC ; (+005H)
+ INC DE
+ CP 03AH
+ JR NZ,L17C3 ; (-009H)
+L17CC: RST 018H
+ DB 017H
+ RST 018H
+ DB 02DH
+ LD A,001H
+ LD (L1000),A
+ RET
+
+L17D6: LD A,(DE)
+ CP (HL)
+ RET NZ
+ PUSH BC
+ DB 0D5H
+ DB LSE5
+ DB 041H,01AH,0BEH,020H,005H,013H,023H,010H,0F8H,0AFH
+ DB LSE1
+ DB LSD1
+ DB 0C1H
+ DB 0C9H
+ DS 22, 000H
+$IOCS: DB 0C3H,000H,"X:B",010H,0FEH,088H,0C9H ; $IOCS - I/O control system entry
+L1809: DS 2, 000H
+L180B: DS 2, 000H
+L180D: DS 2, 000H
+L180F: DB LSRF
+ DB 01AH
+ DB 018H
+ DB LSRF
+ DB 021H
+ DB 018H
+ DB 0AFH
+ DB 032H
+ DB 0D9H
+ DB 01FH
+ DB 0C9H
+L181A: DB 03AH,042H,010H,032H,0D9H,01FH,0C9H
+ DB LSRF
+ DB 0C7H,000H,03AH,050H,010H,0CBH,07FH,021H,048H,018H,028H,00FH,0CBH,"_!5",018H,020H,008H,0DDH,02AH,05FH,010H
+ DB LSRF
+ DB 047H
+ DB 002H
+ DB 0C9H
+ DB 078H
+L183E: DB 0B7H
+ DB 0C8H
+ DB 01AH
+ DB LSRF
+ DB 0A7H
+ DB 000H
+ DB 013H
+ DB 005H
+ DB 018H
+ DB SIOBD
+ DB LSRF
+ DB 0C7H,000H,0FDH,05EH,040H,0FDH,"VA*",00BH,018H,019H,077H,013H,02AH,05BH,010H,0B7H,0EDH,052H
+ DB LSWF
+ DB 071H,018H,0FDH,073H,040H,0FDH,072H,041H,0FDH,034H,014H,0C0H,0FDH,034H,015H,0C0H,0C3H,0A6H,01FH,0C5H,006H,002H
+ DB LSRF
+ DB 027H,01DH,0DDH,021H,035H,018H,028H,004H,0DDH,021H,0A1H,03BH,078H
+ DB LSRF
+ DB 0B6H
+ DB 018H
+ DB LSRF
+ DB 090H
+ DB 018H
+ DB 0FDH
+ DB 034H
+ DB 04EH
+ DB 011H
+ DS 2, 000H
+ DB 0C1H
+ DB 0C9H
+ DB 0DDH
+ DB 0E9H
+L1892: DB 03EH,01AH,0FDH,05EH,040H,0FDH,"VA*",00BH,018H,019H,077H,013H,02AH,05BH,010H,0AFH,0EDH,052H,020H
+ DB PSGA
+ DB 0C5H,02AH,00BH,018H,02BH,036H,0FFH,02BH,036H,0FFH
+ DS 2, 006H
+ DB 018H
+ DB 0BEH
+ DB 0EDH
+ DB 04BH
+ DB 05BH
+ DB 010H
+ DS 2, 003H
+ DB 02AH
+ DB 00BH
+ DB 018H
+ DS 2, 02BH
+ DB 0EDH
+ DB 05BH
+ DB 009H
+ DB 018H
+ DB 0C9H
+L18C6: DB 0F6H
+L18C7: DB 0AFH
+ DB 0DDH
+ DB 02AH
+ DB 059H
+ DB 010H
+ DB LSRF
+ DB 047H
+ DB 002H
+ DB 0C9H
+L18D0: DB LSRF
+ DB 003H
+ DB 018H
+ DB 0C0H
+ DB 0D5H
+ DB 011H
+ DB 0A4H
+ DB 011H
+ DB LSRF
+ DB 067H,00AH,0EDH,053H,03CH,019H
+ DB LSD1
+ DB LSD0
+ DB 0C3H
+ DB 0E8H
+ DB 000H
+L18E4: DB LSE5
+ DB 0D5H
+ DB LSRF
+ DB 01AH,018H,02AH,040H,010H,023H,0CBH,07EH
+ DB LSE5
+ DB 006H
+ DB 000H
+ DB 037H
+ DB LSWF
+ DB 013H
+ DB 019H
+ DB LSE1
+ DB 0DCH
+ DB 008H
+ DB 019H
+ DB LSD1
+ DB SIOBD
+ DB LSRF
+ DB 015H,018H,068H,026H,000H,019H,036H,000H,0F1H
+ DB LSE1
+ DB 0C9H,0CBH,0FEH,021H,051H,010H,0CBH,066H,0C8H,0C3H,0B5H,01FH
+ DB LSRF
+ DB 003H,018H,"(#:P",010H,0CBH,07FH,021H,091H,019H,028H,053H,0CBH,"W!)",019H,020H,04CH,0DDH,02AH,05DH,010H
+ DB LSRF
+ DB 047H,002H,0C9H,03EH,03FH,0DFH,003H,03EH,020H,0DFH,003H,0DFH,034H,021H
+ DS 2, 000H
+L193E: DB LSRF
+ DB 05EH,001H,0B7H,028H,0EDH,00EH,000H,0DFH,036H,022H,03CH,019H,0C9H
+L194C: DB 006H
+ DB 000H
+ DB LSRF
+ DB 064H,001H,022H,020H,013H,07EH,0B7H,0C8H,023H,0FEH,022H,028H,005H,012H,013H,004H,018H,0F3H
+ DB LSRF
+ DB 064H,001H,02CH,0B7H,0C9H,07EH,0B7H,0C8H,0B9H,0C8H,023H,0FEH,02CH,0C8H,012H,013H,004H,018H
+ DB PSGA
+ DB 022H
+ DB 07BH
+ DB 019H
+ DB 006H
+ DB 000H
+ DB LSRF
+ DS 2, 000H
+ DB 0D8H
+ DB 0FEH
+ DB 00DH
+ DB 0C8H
+ DB 012H
+ DB 013H
+ DB 004H
+ DB 020H
+ DB SIOAD
+ DB 0C3H
+ DB 08BH
+ DB 01FH
+L1989: DB 03AH
+ DB 050H
+ DB 010H
+ DB 0CBH
+ DB 07FH
+ DB 0C2H
+ DB 0ACH
+ DB 01FH
+ DB LSRF
+ DB 0C7H,000H,0FDH,05EH,040H,0FDH,"VA*[",010H,0B7H,0EDH,052H
+ DB LSWF
+ DB 0BCH,019H,0D8H,0FDH,06EH,04EH,0FDH,066H,04FH,0AFH,0EDH,052H,037H,0C8H,02AH,00BH,018H,019H,07EH,013H,0FDH,073H,040H,0FDH,072H,041H,0C9H
+ DB LSRF
+ DB 027H
+ DB 01DH
+ DB 0C2H
+ DB 0A1H
+ DB 03BH
+ DB 0F6H
+L19C3: DB 0AFH
+ DB LSRF
+ DB 0B6H
+ DB 018H
+ DB LSRF
+ DB 029H,019H,0D8H,07EH,023H,0A6H,036H,0FFH,03CH,011H
+ DS 2, 000H
+ DB 0C0H
+ DB LSE5
+ DB 02AH,00DH,018H,0EDH,04BH,05BH,010H,02BH,00BH,07EH,0B7H,028H,0FAH
+ DB LSE1
+ DB "p+q",0C9H
+L19E8: DB LSRF
+ DB 0C7H,000H,021H,035H,01AH,0FEH,088H,028H,00AH,021H,03DH,01AH,0FEH,089H,028H,003H,0DFH,029H,0D8H,022H,040H,010H,011H
+ LD B,D
+ DJNZ L1A04 ; (+001H)
+ EX AF,AF'
+L1A04: NOP
+ LDIR
+ LD (L1809),HL
+ PUSH HL
+ POP IY
+ LD DE,L1000
+ CALL L1C66
+ PUSH HL
+ LD HL,(L1044)
+ LD DE,L104A
+ LD BC,0001DH
+ LDIR
+ POP HL
+ LD BC,00010H
+ ADD HL,BC
+ LD (L180B),HL
+ LD BC,(ZKL)
+ ADD HL,BC
+ LD (L180D),HL
+ LD A,(L1043)
+ AND 00FH
+ RET
+
+ DB 088H
+ DB 003H
+ DB 0DDH
+ DB 00DH
+ DS 4, 000H
+ DB 089H
+ DB 002H
+ DB 079H
+ DB 014H
+ DS 4, 000H
+L1A45: LD HL,L11A4
+ PUSH HL
+ LD A,B
+ OR A
+ CALL NZ,LDHLDE
+ LD (HL),000H
+ LD HL,L0DDD
+ JR L1A58 ; (+003H)
+
+L1A55: LD HL,L0000
+L1A58: LD A,L
+ OR H
+ JR Z,L1A91 ; (+035H)
+ LD (01A8CH),HL
+ CALL LDDEMI
+ LD (01A56H),DE
+ LD DE,L11A4
+ EX DE,HL
+L1A6A: LD A,(DE)
+ OR A
+ JR Z,L1A75 ; (+007H)
+ CP (HL)
+ JR NZ,L1A55 ; (-01cH)
+ INC HL
+ INC DE
+ JR L1A6A ; (-00bH)
+
+L1A75: LD A,(HL)
+ INC HL
+ CP 03AH
+ LD C,000H
+ JR Z,L1A8A ; (+00dH)
+ SUB 031H
+ CP 009H
+ JR NC,L1A55 ; (-02eH)
+ LD C,A
+ LD A,(HL)
+ INC HL
+ CP 03AH
+ JR NZ,L1A55 ; (-035H)
+L1A8A: EX (SP),HL
+ LD HL,L0000
+ LD A,C
+ JR L1AA3 ; (+012H)
+
+L1A91: POP HL
+ PUSH HL
+L1A93: LD A,(HL)
+ INC HL
+ CP 03AH
+ JP Z,01FA9H
+ OR A
+ JR NZ,L1A93 ; (-00aH)
+ LD HL,(DDEV)
+ LD A,(L1069)
+L1AA3: LD (L1044),HL
+ PUSH HL
+ LD (L1046),A
+ LD DE,L104A
+ LD BC,0001DH
+ LDIR
+ LD B,A
+ LD A,(L1051)
+ AND 007H
+ CP B
+ JP C,01FA9H
+ LD A,B
+ POP DE
+ POP HL
+ RET
+
+L1AC0: CALL PUSHR
+ RST 018H
+ DB 02CH
+ EX DE,HL
+ LD HL,L1001
+ LD B,01FH
+ CALL ?CLRHL
+ LD HL,L1000
+ RST 018H
+ DB 017H
+ CALL L1EC9
+ LD HL,L1050
+ BIT 4,(HL)
+ RET Z
+ INC HL
+ BIT 7,(HL)
+ RET NZ
+ LD A,(L1001)
+ CP 00DH
+ JP Z,01FAFH
+ RET
+
+L1AE9: CALL PUSHR
+ CALL L1AF7
+ LD B,000H
+ CALL L1BA9
+ JP L3BA1
+
+L1AF7: LD A,(L1042)
+ RST 018H
+ DB 029H
+ JP NC,01F91H
+ CALL L1C6D
+ LD HL,L005D
+ LD A,(L1050)
+ LD DE,(ZKL)
+ INC DE
+ INC DE
+ BIT 7,A
+ JR NZ,L1B13 ; (+001H)
+ ADD HL,DE
+L1B13: LD A,(L1043)
+ BIT 2,A
+ JR Z,L1B1B ; (+001H)
+ ADD HL,DE
+L1B1B: EX DE,HL
+ LD A,(L1042)
+ RST 018H
+ DB 02AH
+ LD (L1FD9),A
+ LD (L1040),HL
+ EX DE,HL
+ LD HL,L1042
+ LD BC,00008H
+ LDIR
+ LD (01809H),DE
+ PUSH DE
+ POP IY
+ LD HL,L1000
+ CALL L1C66
+ LD HL,00010H
+ ADD HL,DE
+ LD (L180B),HL
+ LD DE,(ZKL)
+ ADD HL,DE
+ LD (L180D),HL
+ CALL L1D27
+ JP NZ,L3BA1
+ LD A,(L1043)
+ BIT 2,A
+ JP NZ,01FACH
+ BIT 1,A
+ LD IX,(ZWO)
+ JR NZ,L1B6D ; (+00bH)
+ LD A,(L1050)
+ BIT 7,A
+ JR Z,L1B73 ; (+00aH)
+ LD IX,(ZRO)
+L1B6D: LD HL,L1000
+ JP _IOCALL
+
+L1B73: LD B,(IY+000H)
+ CALL L1C4B
+ LD A,(L1000)
+ CP B
+ JP NZ,01FB2H
+ JP L19C3
+
+L1B83: CALL PUSHR
+ LD IY,00100H
+ LD (L1042),IY
+ LD IY,L1000
+ CALL L1D27
+ LD HL,L3BA1
+ JR NZ,L1B9D ; (+003H)
+ LD HL,L1C4B
+L1B9D: CALL .HL
+ LD B,080H
+ CALL L1BA9
+ LD A,(L1000)
+ RET
+
+L1BA9: LD A,(L1000)
+ CP 005H
+ RET C
+ LD A,(L1012)
+ AND 080H
+ CP B
+ RET Z
+ JP 01FB2H
+
+L1BB9: CALL PUSHR
+ OR A
+ JR Z,L1BFF ; (+040H)
+ CALL L1BC5
+ JP L3BA1
+
+L1BC5: RST 018H
+ DB 02EH
+ RET C
+ CALL L181A
+ PUSH AF
+ CALL L1D27
+ JR NZ,L1BF3 ; (+022H)
+ BIT 7,A
+ LD A,B
+ JR Z,L1BE6 ; (+010H)
+ OR A
+ LD IX,(ZKL)
+ JR Z,L1BE1 ; (+004H)
+ LD IX,(ZCL)
+L1BE1: CALL _IOCALL
+ JR L1BF6 ; (+010H)
+
+L1BE6: OR A
+ JR Z,L1BF6 ; (+00dH)
+ LD A,(L1043)
+ BIT 1,A
+ CALL NZ,L1892
+ JR L1BF6 ; (+003H)
+
+L1BF3: CALL L3BA1
+L1BF6: POP AF
+ RST 018H
+ DB 02BH
+ RET
+
+L1BFA: CALL PUSHR
+ LD B,000H
+L1BFF: LD C,08EH
+L1C01: LD A,C
+ PUSH BC
+ RST 018H
+ DB 029H
+ CALL NC,L1BC5
+ POP BC
+ DEC C
+ JR NZ,L1C01 ; (-00bH)
+ JP L1FC0
+
+L1C0F: CALL PUSHR
+ LD A,(L1050)
+ BIT 6,A
+ JP Z,01FACH
+ CALL L18C7
+ LD A,(ZDIRMX)
+ LD B,A
+L1C21: LD HL,L11A4
+ PUSH BC
+ LD IX,(ZRO)
+ CALL _IOCALL
+ POP BC
+ SET 0,A
+ RET C
+ PUSH IY
+ POP DE
+ CALL L1EB2
+ LD A,(HL)
+ RET Z
+ DJNZ L1C21 ; (-019H)
+ XOR A
+ SCF
+ RET
+
+L1C3D: CALL L1C6D
+ CALL L1C0F
+ JP NC,01F8EH
+ OR A
+ JP Z,01F9AH
+ RET
+
+L1C4B: CALL L1C6D
+ CALL L1C0F
+ JP C,01F88H
+ CALL PUSHR
+ LD HL,L11A4
+ PUSH IY
+ POP DE
+ PUSH HL
+ CALL L1C66
+ POP HL
+ LD DE,L1000
+ LD A,(HL)
+L1C66: LD BC,00040H
+ LDIR
+ OR A
+ RET
+
+L1C6D: LD IX,L1CAF
+L1C71: LD (01CABH),IX
+ CALL PUSHR
+ LD A,(L1042)
+ LD C,A
+ LD HL,(L1072)
+ PUSH HL
+L1C80: POP HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD B,A
+ INC HL
+ CALL LDDEMI
+ PUSH HL
+ ADD HL,DE
+ EX (SP),HL
+ CP 08FH
+ JR NC,L1C80 ; (-010H)
+ CP C
+ JR Z,L1C80 ; (-013H)
+ INC HL
+ LD A,(HL)
+ EX AF,AF'
+ INC HL
+ LD DE,L1044
+ PUSH BC
+ LD BC,00300H
+L1C9E: LD A,(DE)
+ SUB (HL)
+ OR C
+ LD C,A
+ INC DE
+ INC HL
+ DJNZ L1C9E ; (-008H)
+ POP BC
+ JR NZ,L1C80 ; (-029H)
+ LD A,B
+ CALL L0000
+ JR L1C80 ; (-02fH)
+
+L1CAF: LD A,(L1051)
+ BIT 6,A
+ JP NZ,01F91H
+ BIT 5,A
+ RET Z
+ EX AF,AF'
+ LD B,A
+ LD A,(L1043)
+ AND B
+ BIT 1,A
+ RET Z
+ JP 01F91H
+
+L1CC6: CALL L1D27
+ JP NZ,L3BA1
+ LD BC,(ELMD20)
+ PUSH BC
+ XOR A
+ LD IX,(ZINP)
+ CALL _IOCALL
+ POP BC
+ RET
+
+L1CDB: LD A,(L1051)
+ BIT 7,A
+ JP Z,01FACH
+ LD BC,(ELMD20)
+ JP L388D
+
+L1CEA: LD A,(L1000)
+ CP 005H
+ JR C,L1CF6 ; (+005H)
+ LD A,080H
+ LD (L1012),A
+L1CF6: CALL L1D27
+ JP NZ,L3BA1
+ BIT 7,A
+ JP NZ,01FACH
+ PUSH DE
+ LD HL,L0200
+ LD (L1042),HL
+ CALL L1C6D
+ LD HL,L1000
+ PUSH HL
+ POP IY
+ LD IX,(ZWO)
+ CALL _IOCALL
+ LD BC,(ELMD20)
+ POP HL
+ LD A,004H
+ LD IX,(ZOUT)
+ CALL _IOCALL
+ RET
+
+L1D27: LD A,(L1050)
+ BIT 5,A
+ RET
+
+L1D2D: CALL PUSHR
+ OR A
+ JR NZ,L1D80 ; (+04dH)
+ LD HL,00100H
+ LD (L1042),HL
+ CALL L1C6D
+ LD HL,L1050
+ BIT 7,(HL)
+ JP NZ,01FACH
+ BIT 5,(HL)
+ JP NZ,L3BA1
+ INC HL
+ BIT 7,(HL)
+ JP NZ,01FACH
+ CALL L44A3
+ LD HL,L27D0
+ LD BC,00008H
+L1D58: CALL ?CLRHL
+ DEC C
+ JR NZ,L1D58 ; (-006H)
+ CALL L18C7
+ LD A,(ZDIRMX)
+ LD B,A
+ LD HL,L27D0
+L1D68: PUSH BC
+ LD IX,(ZRO)
+ CALL _IOCALL
+ PUSH AF
+ LD BC,00020H
+ ADD HL,BC
+ LD (HL),000H
+ POP AF
+ POP BC
+ JR C,L1D7D ; (+002H)
+ DJNZ L1D68 ; (-015H)
+L1D7D: JP L18C6
+
+L1D80: LD (01E28H),A
+ XOR A
+ LD (L1090),A
+ LD HL,L11A4
+ PUSH HL
+ LD DE,L1E32
+ LD B,00EH
+ CALL LDHLDE
+ CALL SETDNM
+ LD (HL),020H
+ INC HL
+ LD (HL),020H
+ INC HL
+ EX DE,HL
+ CALL L1D27
+ LD IX,(ZFREE)
+ JR Z,L1DAA ; (+004H)
+ LD IX,L3BA1
+L1DAA: CALL _IOCALL
+ JR C,L1DBD ; (+00eH)
+ LD H,B
+ LD L,C
+ LD B,000H
+ RST 018H
+ DB 016H
+ LD HL,L1E40
+ LD B,009H
+ CALL LDDEHL
+L1DBD: EX DE,HL
+ LD (HL),00DH
+ INC HL
+ LD (HL),000H
+ POP DE
+ CALL L1E27
+ LD B,040H
+ LD HL,L27D0
+L1DCC: CALL L1DD8
+ LD DE,00020H
+ ADD HL,DE
+ DJNZ L1DCC ; (-009H)
+ JP L3BA1
+
+L1DD8: CALL PUSHR
+ LD A,(HL)
+ OR A
+ RET Z
+ RET M
+ LD DE,L11A4
+ PUSH DE
+ LD A,020H
+ LD B,026H
+ CALL ?SETDE
+ LD A,(HL)
+ CP 00CH
+ JR C,L1DF1 ; (+002H)
+ LD A,00CH
+L1DF1: PUSH HL
+ POP IY
+ POP DE
+ PUSH DE
+ INC DE
+ LD HL,L1E46
+ LD BC,L0003
+L1DFD: ADD HL,BC
+ DEC A
+ JR NZ,L1DFD ; (-004H)
+ LDIR
+ EX DE,HL
+ BIT 0,(IY+012H)
+ JR Z,L1E0C ; (+002H)
+ LD (HL),02AH
+L1E0C: INC HL
+ INC HL
+ LD (HL),022H
+ INC HL
+L1E11: LD A,(IY+001H)
+ CP 00DH
+ JR Z,L1E1E ; (+006H)
+L1E18: LD (HL),A
+ INC IY
+ INC HL
+ JR L1E11 ; (-00dH)
+
+L1E1E: LD (HL),022H
+ INC HL
+ LD (HL),00DH
+ INC HL
+ LD (HL),000H
+ POP DE
+L1E27: LD A,000H
+ RST 018H
+ DB 02EH
+ RST 018H
+ DB 017H
+ RST 018H
+ DB 037H
+ RST 018H
+ DB 00FH
+ RET
+
+L1E32: DB 00DH,"DIRECTORY OF " ; Directory/file type strings
+L1E40: DB " KB FR"
+L1E46: DS 2, 045H
+ DB ".OBJBTXBSDBRDRB"
+ DS 2, 020H
+ DB "? LIB ?"
+ DS 2, 020H
+ DB "? SYSGR"
+ DS 2, 020H
+ DB 03FH
+ DB 020H
+L1E6D: PUSH HL
+L1E6E: XOR A
+ LD (L1042),A
+ LD IX,L1E86
+ LD (01E87H),SP
+ CALL L1C71
+ POP HL
+ LD IX,(ZINIT)
+ CALL _IOCALL
+ RET
+
+L1E86: LD SP,L0000
+ LD B,000H
+ RST 018H
+ DB 038H
+ JR L1E6E ; (-021H)
+
+L1E8F: DB LSRF
+ LD H,H
+ LD BC,0C859H
+ LD DE,L1EA3
+ RST 018H
+ DB 005H
+ LD A,001H
+ RST 018H
+ DB 00DH
+ CP 059H
+ RET Z
+ JP BREAKZ
+
+L1EA3: DB "OK ? [Y/N]",019H,000H
+ LD DE,L1000
+L1EB2: CALL PUSHR
+ INC HL
+ INC DE
+ LD A,(DE)
+ CP 00DH
+ RET Z
+ LD B,011H
+L1EBD: LD A,(DE)
+ CP (HL)
+ RET NZ
+ CP 00DH
+ RET Z
+ INC HL
+ INC DE
+ DJNZ L1EBD ; (-00aH)
+ OR A
+ RET
+
+L1EC9: INC HL
+ LD C,010H
+L1ECC: LD A,B
+ OR A
+ JR Z,L1EE4 ; (+014H)
+ LD A,(DE)
+ INC DE
+ DEC B
+ OR A
+ JR Z,L1EE4 ; (+00eH)
+ CP 022H
+ JR Z,L1ECC ; (-00eH)
+ CP 03AH
+ JP Z,01FAFH
+ LD (HL),A
+ INC HL
+ DEC C
+ JR NZ,L1ECC ; (-018H)
+L1EE4: LD (HL),00DH
+ INC HL
+L1EE7: LD A,C
+ OR A
+ RET Z
+ LD (HL),020H
+ INC HL
+ DEC C
+ JR L1EE7 ; (-009H)
+
+L1EF0: LD HL,(L1072)
+L1EF3: INC (HL)
+ DEC (HL)
+ SCF
+ RET Z
+ CP (HL)
+ INC HL
+ JR Z,L1F03 ; (+008H)
+ PUSH DE
+ CALL LDDEMI
+ ADD HL,DE
+ POP DE
+ JR L1EF3 ; (-010H)
+
+L1F03: INC HL
+ INC HL
+ RET
+
+L1F06: CALL PUSHR
+ RST 018H
+ DB 029H
+ RET C
+ DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ DEC HL
+ LD D,H
+ LD E,L
+ INC BC
+ INC BC
+ INC BC
+ PUSH BC
+ ADD HL,BC
+ PUSH HL
+ LD B,H
+ LD C,L
+ LD HL,(L107A)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ LDIR
+ POP DE
+ LD HL,L0000
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ RST 018H
+ DB 019H
+ OR A
+ RET
+
+L1F32: PUSH AF
+ PUSH BC
+ PUSH DE
+ PUSH DE
+ INC DE
+ INC DE
+ INC DE
+ LD HL,(L107A)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ JP C,01F82H
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ SBC HL,DE
+ JR C,01F82H ; (+037H)
+ LD HL,(L107E)
+ DEC H
+ DEC H
+ SBC HL,DE
+ JR C,01F82H ; (+02eH)
+ POP HL
+ PUSH HL
+ LD BC,(VARST)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ INC BC
+ LDDR
+ POP DE
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ PUSH HL
+ INC DE
+ PUSH DE
+L1F6D: LD (HL),000H
+ INC HL
+ DEC DE
+ LD A,D
+ OR E
+ JR NZ,L1F6D ; (-008H)
+ POP DE
+ INC DE
+ INC DE
+ RST 018H
+ DB 019H
+ POP HL
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L1F7F: LD A,003H
+ LD HL,L063E
+ LD HL,09C3EH
+ LD HL,0A83EH
+ LD HL,0A93EH
+ LD HL,0AA3EH
+ LD HL,0AB3EH
+ LD HL,0AE3EH
+ LD HL,0B23EH
+ LD HL,0B33EH
+ LD HL,0B43EH
+ LD HL,0B53EH
+ LD HL,0B63EH
+ LD HL,0B73EH
+ LD HL,L3A3E
+ LD HL,0BB3EH
+ LD HL,0BC3EH
+ LD HL,0BD3EH
+ LD HL,0BF3EH
+ LD HL,L403E
+ LD HL,0C43EH
+ JP ERRORJ
+
+L1FC0: LD A,(L1FD9)
+ OR A
+ LD B,000H
+ CALL NZ,L1BB9
+ CALL L3BA1
+ CALL L3028
+ XOR A
+ LD (L1FD9),A
+ JP L3BA1
+
+ NOP
+ NOP
+ NOP
+L1FD9: DB 000H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L2000: DS 230, 000H
+L20E6: DS 255, 000H
+L21E5: DS 283, 000H
+L2300: DS 38, 000H
+L2326: DS 88, 000H
+L237E: DS 353, 000H
+L24DF: DS 561, 000H
+L2710: DS 192, 000H
+L27D0: DS 88, 000H
+L2828: DS 720, 000H
+L2AF8: DS 77, 000H
+L2B45: DS 379, 000H
+L2CC0: DS 382, 000H
+L2E3E: DS 146, 000H
+L2ED0: DS 256, 000H
+$QD: DB 07FH ; $QD - Quick Disk device descriptor
+ DB 00FH
+ DB 051H
+ DB 044H
+ DS 2, 000H
+ DB "_@ "
+ DB LSPAL
+ DS 2, 02FH
+ DB "0M0",008H,030H,000H,004H,"@0W0"
+ DS 4, 000H
+ DB 0EDH
+ DB 02FH
+ XOR A
+ SCF
+ RET
+
+ RET C
+ CALL TEST1
+ DB 059H
+ JR Z,L2FFE ; (+007H)
+ OR A
+ JP NZ,L1F7F
+ CALL L1E8F
+L2FFE: CALL L3052
+ RET C
+ RST 018H
+ DB 010H
+ LD C,002H
+ JR L3047 ; (+03fH)
+
+ OR A
+ JR NZ,L3028 ; (+01dH)
+ RST 018H
+ DB 010H
+ XOR A
+ LD (L308C),A
+ LD C,005H
+ CALL L3019
+ LD BC,00001H
+L3019: LD (L3082),HL
+ LD (03084H),DE
+ LD HL,L3081
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ JR L3096 ; (+06eH)
+
+L3028: CALL PUSHR
+ LD C,006H
+ JR L3047 ; (+018H)
+
+ LD BC,L0003
+ LD DE,00040H
+ CALL L3019
+ RET NC
+ CP 028H
+ SCF
+ RET NZ
+ LD A,000H
+ RET
+
+ RST 018H
+ DB 010H
+ LD D,B
+ LD E,C
+ LD BC,L0103
+L3047: CALL L3019
+ RST 018H
+ DB 011H
+ RET
+
+ LD A,037H
+ LD (L305A),A
+L3052: LD BC,L0101
+ JR L3019 ; (-03eH)
+
+ PUSH AF
+ RST 018H
+ DB 010H
+L305A: XOR A
+ JR NC,L3071 ; (+014H)
+ LD A,0AFH
+ LD (L305A),A
+ CALL L1C3D
+ LD (L3086),HL
+ LD HL,L1000
+ LD DE,00040H
+ POP AF
+ JR L3077 ; (+006H)
+
+L3071: LD (L3086),HL
+ POP AF
+ SET 0,A
+L3077: LD (03088H),BC
+ LD B,A
+ LD C,004H
+ JR L3047 ; (-039H)
+
+ DB 000H
+L3081: DB 000H
+L3082: DS 4, 000H
+L3086: DS 4, 000H
+L308A: DB 000H
+L308B: DB 000H
+L308C: DB 000H
+L308D: DB 000H
+L308E: DB 000H
+L308F: DB 000H
+L3090: DB 000H
+L3091: DB 000H
+L3092: DB 000H
+L3093: DS 3, 000H
+L3096: LD A,005H
+ LD (L3092),A
+L309B: DI
+ CALL L30F2
+ EI
+ RET NC
+ PUSH AF
+ CP 028H
+ JR Z,L30F0 ; (+04aH)
+ CALL L3371
+ LD A,(03080H)
+ CP 004H
+ JR NZ,L30CD ; (+01dH)
+ LD A,(L308E)
+ OR A
+ JR Z,L30D5 ; (+01fH)
+ XOR A
+ LD (L308E),A
+ LD A,(L308F)
+ PUSH HL
+ LD (03094H),SP
+ POP HL
+ DI
+ CALL L32F1
+ EI
+ JR C,L30EA ; (+020H)
+ CALL L3371
+L30CD: CP 003H
+ JR NZ,L30D5 ; (+004H)
+ LD HL,L308A
+ DEC (HL)
+L30D5: POP AF
+ PUSH AF
+ CP 029H
+ JR NZ,L30EA ; (+00fH)
+ LD HL,L3092
+ DEC (HL)
+ JR Z,L30EA ; (+009H)
+ POP AF
+ LD A,(L308D)
+ LD (L308C),A
+ JR L309B ; (-04fH)
+
+L30EA: CALL L3263
+ CALL L310B
+L30F0: POP AF
+ RET
+
+L30F2: LD (03094H),SP
+ LD A,(03080H)
+ DEC A
+ JR Z,L3112 ; (+016H)
+ DEC A
+ JR Z,L3118 ; (+019H)
+ DEC A
+ JR Z,L3162 ; (+060H)
+ DEC A
+ JP Z,L31D6
+ DEC A
+ JR Z,L310B ; (+002H)
+ JR L315B ; (+050H)
+
+L310B: PUSH AF
+ XOR A
+ LD (L308A),A
+ POP AF
+ RET
+
+L3112: LD A,(L3081)
+ JP L32C5
+
+L3118: XOR A
+ CALL L32F1
+ CALL L33EF
+ LD BC,0EFFFH
+ LD A,0AAH
+L3124: CPL
+ LD D,A
+ CALL L3466
+ DEC BC
+ LD A,B
+ OR C
+ JR Z,L3131 ; (+003H)
+ LD A,D
+ JR L3124 ; (-00dH)
+
+L3131: CALL L343C
+ CALL L3371
+ CALL L3324
+ LD A,(L3090)
+ DEC A
+ JR NZ,L315E ; (+01eH)
+ CALL L3386
+ LD BC,0EFFFH
+ LD E,055H
+L3148: CP E
+ JR NZ,L315E ; (+013H)
+ DEC BC
+ LD A,B
+ OR C
+ JR Z,L3158 ; (+008H)
+ LD A,E
+ CPL
+ LD E,A
+ CALL L347C
+ JR L3148 ; (-010H)
+
+L3158: CALL L344E
+L315B: JP L3371
+
+L315E: LD A,029H
+ SCF
+ RET
+
+L3162: LD A,(L3091)
+ OR A
+ CALL Z,L3324
+ CALL L319C
+ RET C
+ CALL L34C1
+ CALL L347C
+ LD C,A
+ CALL L347C
+ LD B,A
+ OR C
+ JP Z,L326D
+ LD HL,(03084H)
+ SBC HL,BC
+ JP C,L326D
+ LD HL,(L3082)
+L3187: CALL L347C
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3187 ; (-00aH)
+ CALL L344E
+ LD A,(L3081)
+ BIT 0,A
+ JR NZ,L315B ; (-040H)
+ RET
+
+L319C: LD HL,L3090
+ DEC (HL)
+ JR Z,L31D2 ; (+030H)
+ CALL L3386
+ LD C,A
+ LD A,(L308A)
+ LD HL,L308B
+ CP (HL)
+ JR NZ,L31CF ; (+020H)
+ INC A
+ LD (L308A),A
+ LD (HL),A
+ LD A,(L3081)
+ XOR C
+ RRA
+ RET NC
+L31BA: CALL L347C
+ LD C,A
+ CALL L347C
+ LD B,A
+L31C2: CALL L347C
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L31C2 ; (-008H)
+ CALL L344E
+ JR L319C ; (-033H)
+
+L31CF: INC (HL)
+ JR L31BA ; (-018H)
+
+L31D2: LD A,028H
+ SCF
+ RET
+
+L31D6: LD A,(L308C)
+ LD (L308D),A
+ LD A,(L3091)
+ OR A
+ JR NZ,L31F9 ; (+017H)
+ CALL L3324
+ LD A,(L308C)
+ LD HL,L3090
+ ADD A,(HL)
+ LD (L3090),A
+ INC A
+ LD (L308A),A
+ CALL L319C
+ JP NC,L326D
+L31F9: LD A,(L3081)
+ LD B,A
+ AND 001H
+ JR NZ,L320D ; (+00cH)
+ LD DE,L3082
+ LD A,B
+ RES 2,A
+ CALL L3276
+ CALL L34C1
+L320D: LD DE,L3086
+ LD A,(L3081)
+ SET 0,A
+ CALL L3276
+ CALL L3371
+ CALL L34C1
+ LD A,(L3081)
+ AND 004H
+ JR Z,L3271 ; (+04cH)
+ LD A,(L308F)
+ LD HL,L308C
+ ADD A,(HL)
+ CALL L32F1
+ LD A,001H
+ LD (L308E),A
+L3234: LD A,(L308F)
+ LD HL,L308D
+ ADD A,(HL)
+ INC A
+ LD (L3090),A
+ INC A
+ LD (L308A),A
+ CALL L319C
+ JR NC,L326D ; (+025H)
+ LD A,(L3081)
+ AND 001H
+ JR NZ,L3256 ; (+007H)
+ LD DE,L3082
+ CALL L32A4
+ RET C
+L3256: LD DE,L3086
+ CALL L32A4
+ RET C
+ LD A,(L308E)
+ OR A
+ JR Z,L326A ; (+007H)
+L3263: XOR A
+ LD (L308C),A
+ LD (L308E),A
+L326A: JP L3371
+
+L326D: LD A,029H
+ SCF
+ RET
+
+L3271: CALL L3324
+ JR L3234 ; (-042H)
+
+L3276: PUSH AF
+ LD HL,L308C
+ INC (HL)
+ CALL L33EF
+ POP AF
+ CALL L3466
+ CALL L329A
+ LD A,C
+ CALL L3466
+ LD A,B
+ CALL L3466
+L328D: LD A,(HL)
+ CALL L3466
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L328D ; (-00aH)
+ JP L343C
+
+L329A: EX DE,HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ EX DE,HL
+ RET
+
+L32A4: CALL L3386
+ CALL L329A
+ CALL L347C
+ CP C
+ JR NZ,L326D ; (-043H)
+ CALL L347C
+ CP B
+ JR NZ,L326D ; (-049H)
+L32B6: CALL L347C
+ CP (HL)
+ JR NZ,L326D ; (-04fH)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L32B6 ; (-00cH)
+ JP L344E
+
+L32C5: LD B,A
+ LD A,002H
+ OUT (SIOBC),A
+ LD A,081H
+ OUT (SIOBC),A
+ LD A,002H
+ OUT (SIOBC),A
+ IN A,(SIOBC)
+ AND 081H
+ CP 081H
+ JP NZ,03492H
+ LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ LD C,A
+ AND 008H
+ JP Z,03492H
+ LD A,B
+ OR A
+ RET Z
+ LD A,C
+ AND 020H
+ RET NZ
+ JP 0348FH
+
+L32F1: PUSH AF
+ LD HL,L34B8
+ LD B,009H
+ CALL L3361
+L32FA: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03492H
+ LD A,010H
+ OUT (SIOBC),A
+ IN A,(SIOBC)
+ AND 008H
+ JR Z,L32FA ; (-015H)
+ LD BC,000E9H
+ CALL L34A0
+ CALL L3424
+ CALL L3408
+ POP AF
+ CALL L3466
+ CALL L343C
+ JR L3357 ; (+033H)
+
+L3324: LD HL,L34AD
+ LD B,00BH
+ CALL L3361
+L332C: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03492H
+ CALL L34C1
+ LD A,010H
+ OUT (SIOBC),A
+ IN A,(SIOBC)
+ AND 008H
+ JR Z,L332C ; (-018H)
+ LD BC,000E9H
+ CALL L34A0
+ CALL L339C
+ LD (L308F),A
+ INC A
+ LD (L3090),A
+ CALL L344E
+L3357: LD HL,L3093
+ SET 3,(HL)
+ XOR A
+ LD (L308B),A
+ RET
+
+L3361: LD C,0F6H
+ OTIR
+ LD A,005H
+ LD (L3091),A
+ OUT (SIOBC),A
+ LD A,080H
+ OUT (SIOBC),A
+ RET
+
+L3371: PUSH AF
+ LD A,005H
+ OUT (0F6H),A
+ LD A,060H
+ OUT (0F6H),A
+ LD A,005H
+ OUT (SIOBC),A
+ XOR A
+ LD (L3091),A
+ OUT (SIOBC),A
+ POP AF
+ RET
+
+L3386: LD A,058H
+ LD B,00BH
+ LD HL,L34AD
+ CALL L342D
+ LD HL,L3093
+ BIT 3,(HL)
+ LD BC,L0003
+ JR Z,L339F ; (+005H)
+ RES 3,(HL)
+L339C: LD BC,L00A0
+L339F: CALL L34A0
+ LD A,005H
+ OUT (SIOBC),A
+ LD A,082H
+ OUT (SIOBC),A
+ LD A,003H
+ OUT (0F6H),A
+ LD A,LSD3
+ OUT (0F6H),A
+ LD BC,L2CC0
+L33B5: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 010H
+ JR Z,L33C7 ; (+008H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L33B5 ; (-00fH)
+ JP 03498H
+
+L33C7: LD A,003H
+ OUT (0F6H),A
+ LD A,0C3H
+ OUT (0F6H),A
+ LD B,09FH
+L33D1: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 001H
+ JR NZ,L33E1 ; (+006H)
+ DEC B
+ JR NZ,L33D1 ; (-00dH)
+ JP 03498H
+
+L33E1: LD A,003H
+ OUT (0F6H),A
+ LD A,0C9H
+ OUT (0F6H),A
+ CALL L347C
+ JP L347C
+
+L33EF: LD A,098H
+ LD B,009H
+ LD HL,L34B8
+ CALL L342D
+ CALL L3424
+ LD HL,L3093
+ BIT 3,(HL)
+ LD BC,0001DH
+ JR Z,L340B ; (+005H)
+ RES 3,(HL)
+L3408: LD BC,L0140
+L340B: CALL L34A0
+ LD A,005H
+ OUT (0F6H),A
+ LD A,0EFH
+ OUT (0F6H),A
+ LD BC,00001H
+ CALL L34A0
+ LD A,0C0H
+ OUT (0F6H),A
+ LD A,0A5H
+ JR L3466 ; (+042H)
+
+L3424: LD A,005H
+ OUT (0F6H),A
+ LD A,0FFH
+ OUT (0F6H),A
+ RET
+
+L342D: LD C,0F6H
+ OUT (C),A
+ LD A,005H
+ OUT (SIOBC),A
+ LD A,080H
+ OUT (SIOBC),A
+ OTIR
+ RET
+
+L343C: LD BC,00001H
+ CALL L34A0
+ LD A,010H
+ OUT (SIOBC),A
+ IN A,(SIOBC)
+ AND 008H
+ RET NZ
+ JP 03495H
+
+L344E: LD B,003H
+L3450: CALL L347C
+ DJNZ L3450 ; (-005H)
+L3455: IN A,(0F6H)
+ RRCA
+ JR NC,L3455 ; (-005H)
+ LD A,001H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 040H
+ JR NZ,L348C ; (+028H)
+ OR A
+ RET
+
+L3466: PUSH AF
+L3467: IN A,(0F6H)
+ AND 004H
+ JR Z,L3467 ; (-006H)
+ POP AF
+ OUT (SIOAD),A
+L3470: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03492H
+ RET
+
+L347C: CALL L3470
+ IN A,(0F6H)
+ RLCA
+ JR C,L348C ; (+008H)
+ RRCA
+ RRCA
+ JR NC,L347C ; (-00cH)
+ IN A,(SIOAD)
+ OR A
+ RET
+
+L348C: LD A,029H
+ LD HL,L2E3E
+ LD HL,0323EH
+ LD HL,0353EH
+ LD HL,L363E
+ LD SP,(03094H)
+ SCF
+ RET
+
+L34A0: PUSH AF
+L34A1: LD A,096H
+L34A3: DEC A
+ JR NZ,L34A3 ; (-003H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L34A1 ; (-00aH)
+ POP AF
+ RET
+
+L34AD: DB 058H
+ DB 004H
+ DB 010H
+ DB 005H
+ DB 004H
+ DB 003H
+ DB LSD0
+ DB 006H
+ DB 016H
+ DB 007H
+ DB 016H
+L34B8: DB 098H
+ DB 004H
+ DB 010H
+ DB 006H
+ DB 016H
+ DB 007H
+ DB 016H
+ DB 005H
+ DB 06DH
+L34C1: LD A,0E8H
+ OUT (LSD0),A
+ NOP
+ IN A,(LSD1)
+ AND 081H
+ RET NZ
+ CALL L3263
+ JP BREAKX
+
+ DS 2, 000H
+L34D3: DS 2, 000H
+L34D5: DS 2, 000H
+L34D7: DS 2, 000H
+L34D9: DB 000H
+L34DA: DB 000H
+L34DB: DB 000H
+L34DC: DB 000H
+L34DD: DB 000H
+L34DE: CALL PUSHR
+ LD HL,L351D
+ OR A
+ JR Z,L34EA ; (+003H)
+ LD HL,L3611
+L34EA: LD (03506H),HL
+ RST 018H
+ DB 028H
+ CALL L310B
+ PUSH HL
+ LD (03094H),SP
+ POP HL
+ XOR A
+ CALL L32C5
+ JR C,L351A ; (+01cH)
+ LD A,005H
+ LD (L3092),A
+L3503: RST 018H
+ DB 010H
+ CALL L0000
+ CALL L3371
+ RST 018H
+ DB 011H
+ RET NC
+ CP 029H
+ JR NZ,L351A ; (+008H)
+ LD HL,L3092
+ DEC (HL)
+ JR NZ,L3503 ; (-015H)
+ LD A,029H
+L351A: JP ERRORJ
+
+L351D: LD (03094H),SP
+ LD HL,L0000
+ CALL L40B5
+ DEC DE
+ DEC DE
+ LD (034D1H),DE
+ LD HL,00002H
+ CALL L40B5
+ LD HL,00010H
+ OR A
+ SBC HL,DE
+ JP NZ,L3752
+ LD (034D5H),DE
+ INC DE
+ INC DE
+ LD (034D7H),DE
+ LD HL,L34D3
+ LD (HL),000H
+ INC HL
+ LD (HL),000H
+ CALL L3324
+L3551: LD HL,L3090
+ DEC (HL)
+ JP Z,L35F7
+ CALL L3386
+ LD (L34DB),A
+ CALL L347C
+ LD (L34DC),A
+ CALL L347C
+ LD (L34DD),A
+ LD HL,(L34DC)
+ LD DE,(034D7H)
+ ADD HL,DE
+ JR C,L3578 ; (+004H)
+ LD BC,00002H
+ ADD HL,BC
+L3578: JP C,L360A
+ LD BC,(034D1H)
+ SBC HL,BC
+ JR Z,L3586 ; (+003H)
+ JP NC,L360A
+L3586: LD HL,L34DB
+ LD BC,L0003
+ CALL L40D0
+ EX DE,HL
+ LD DE,(034DCH)
+ LD A,D
+ OR E
+ JP Z,L348C
+L3599: IN A,(0F6H)
+ RLCA
+ JR C,L360F ; (+071H)
+ RRCA
+ RRCA
+ JR NC,L3599 ; (-009H)
+ IN A,(SIOAD)
+ LD C,0EBH
+ LD B,H
+ OUT (C),L
+ DEC C
+ OUT (C),A
+ INC HL
+ DEC DE
+ LD A,D
+ OR E
+ JR NZ,L3599 ; (-019H)
+ CALL L344E
+ LD (L34D7),HL
+ LD HL,(L34D3)
+ LD DE,(034DCH)
+ ADD HL,DE
+ INC HL
+ INC HL
+ INC HL
+ LD (L34D3),HL
+ LD A,(L34DB)
+ BIT 2,A
+ JR NZ,L35D6 ; (+009H)
+L35CD: CALL BRKCHK
+ JP NZ,L3551
+ JP BREAKZ
+
+L35D6: LD DE,(034D5H)
+ ADD HL,DE
+ INC HL
+ INC HL
+ LD (L34D5),HL
+ PUSH HL
+ EX DE,HL
+ LD DE,(034D3H)
+ CALL L40AA
+ LD HL,L0000
+ LD (L34D3),HL
+ POP HL
+ INC HL
+ INC HL
+ LD (L34D7),HL
+ JR L35CD ; (-02aH)
+
+L35F7: LD HL,(L34D5)
+ LD DE,00002H
+ EX DE,HL
+ CALL L40AA
+ EX DE,HL
+ NOP
+ LD DE,L0000
+ CALL L40AA
+ RET
+
+L360A: CALL L35F7
+ LD A,035H
+L360F: SCF
+ RET
+
+L3611: LD (03094H),SP
+ XOR A
+ LD (L34DA),A
+ LD (L34D9),A
+ LD (L308C),A
+ LD HL,00010H
+ CALL L40B5
+ LD A,D
+ OR E
+ RET Z
+ CALL L3324
+ LD A,(L3090)
+ DEC A
+ JP NZ,L3752
+ LD HL,00010H
+L3635: CALL L40B5
+ LD (034D3H),DE
+ LD A,D
+ OR E
+L363E: JR Z,L36BA ; (+07aH)
+ INC HL
+ INC HL
+L3642: PUSH HL
+ CALL L33EF
+ POP HL
+ CALL L409F
+ CALL L3466
+ INC HL
+ CALL L40B5
+ LD (034DCH),DE
+ LD A,E
+ CALL L3466
+ LD A,D
+ CALL L3466
+ INC HL
+ INC HL
+L365F: LD C,0EBH
+ LD B,H
+ OUT (C),L
+ DEC C
+ IN B,(C)
+L3667: IN A,(0F6H)
+ AND 004H
+ JR Z,L3667 ; (-006H)
+ LD A,B
+ OUT (SIOAD),A
+ INC HL
+ DEC DE
+ LD A,D
+ OR E
+ JR NZ,L365F ; (-017H)
+ LD BC,00001H
+ CALL L34A0
+ LD A,010H
+ OUT (SIOBC),A
+ IN A,(SIOBC)
+ AND 008H
+ JR NZ,L368E ; (+008H)
+ LD A,035H
+ LD (L34D9),A
+ JP L36BA
+
+L368E: PUSH HL
+ LD HL,L308C
+ INC (HL)
+ CALL BRKCHK
+ JP Z,BREAKZ
+ LD HL,(L34D3)
+ LD DE,(034DCH)
+ LD BC,L0003
+ XOR A
+ SBC HL,DE
+ SBC HL,BC
+ JR Z,L36B0 ; (+006H)
+ LD (L34D3),HL
+ POP HL
+ JR L3642 ; (-06eH)
+
+L36B0: POP HL
+ LD A,(L308C)
+ LD (L34DA),A
+ JP L3635
+
+L36BA: LD A,(L34DA)
+ LD (L308C),A
+ CALL L3371
+ CALL L3324
+ LD HL,00010H
+L36C9: CALL L40B5
+ LD (034D3H),DE
+ INC HL
+ INC HL
+L36D2: LD A,(L34DA)
+ DEC A
+ JP Z,L373E
+ LD (L34DA),A
+ PUSH HL
+ CALL L3386
+ POP HL
+ LD D,A
+ CALL L409F
+ CP D
+ JR NZ,L3756 ; (+06eH)
+ INC HL
+ CALL L40B5
+ LD (034DCH),DE
+ CALL L347C
+ CP E
+ JR NZ,L3756 ; (+060H)
+ CALL L347C
+ CP D
+ JR NZ,L3756 ; (+05aH)
+ INC HL
+ INC HL
+L36FE: IN A,(0F6H)
+ RLCA
+ JR C,L3756 ; (+053H)
+ RRCA
+ RRCA
+ JR NC,L36FE ; (-009H)
+ IN A,(SIOAD)
+ LD C,0EBH
+ LD B,H
+ OUT (C),L
+ DEC C
+ IN B,(C)
+ CP B
+ JR NZ,L3756 ; (+042H)
+ INC HL
+ DEC DE
+ LD A,D
+ OR E
+ JR NZ,L36FE ; (-01cH)
+ CALL L344E
+ PUSH HL
+ CALL BRKCHK
+ JP Z,BREAKZ
+ LD HL,(L34D3)
+ LD DE,(034DCH)
+ LD BC,L0003
+ XOR A
+ SBC HL,DE
+ SBC HL,BC
+ JR Z,L373B ; (+006H)
+ LD (L34D3),HL
+ POP HL
+ JR L36D2 ; (-069H)
+
+L373B: POP HL
+ JR L36C9 ; (-075H)
+
+L373E: CALL L3371
+ LD A,(L308C)
+ CALL L32F1
+ XOR A
+ LD (L308C),A
+ LD A,(L34D9)
+ OR A
+ RET Z
+ SCF
+ RET
+
+L3752: LD A,036H
+ SCF
+ RET
+
+L3756: LD A,029H
+ SCF
+ RET
+
+$RFS: DB "dRS" ; $RS - RS-232C device descriptor
+ DS 2, 000H
+ DB 08FH,001H,000H,07DH,03CH,0AEH,03CH,0AEH,03CH,0BFH,03CH,0BFH,03CH
+ DB LSD0
+ DB 03CH
+ DB 0FBH
+ DB 03CH
+ DB 0B2H
+ DB 000H
+ RET C
+ PUSH IY
+ CALL L3D25
+ CALL L3C8B
+ CALL L3D6E
+ JR L3CE3 ; (+058H)
+
+L3C8B: RST 018H
+ DB 013H
+ LD (IY-003H),E
+ CALL TEST1
+ DB 02CH
+ JP NZ,L1F7F
+ RST 018H
+ DB 013H
+ LD (IY-002H),E
+ CALL TEST1
+ DB 000H
+ RET Z
+ CALL TEST1
+ DB 02CH
+ JP NZ,L1F7F
+ RST 018H
+ DB 013H
+ LD (IY-008H),E
+ RET
+
+ PUSH IY
+ CALL L3D25
+ LD A,(IY-001H)
+ INC (IY-001H)
+ OR A
+ CALL Z,L3DD0
+ JR L3CE3 ; (+024H)
+
+ PUSH IY
+ CALL L3D25
+ DEC (IY-001H)
+ LD A,(IY-001H)
+ OR A
+ CALL Z,L3DB8
+ JR L3CE2 ; (+012H)
+
+ PUSH IY
+ CALL L3D25
+ CALL L3CE6
+ JP C,IOERR
+ CP (IY-008H)
+ JR NZ,L3CE2 ; (+002H)
+ LD A,00DH
+L3CE2: OR A
+L3CE3: POP IY
+ RET
+
+L3CE6: BIT 6,(IY-002H)
+ JP Z,L3E1F
+ LD IX,L3E1F
+ PUSH IY
+ POP HL
+ LD DE,0FFFBH
+ ADD HL,DE
+ JP L146C
+
+ PUSH IY
+ CALL L3D25
+ CP 00DH
+ JR NZ,L3D07 ; (+003H)
+ LD A,(IY-008H)
+L3D07: CALL L3D0C
+ JR L3CE3 ; (-029H)
+
+L3D0C: BIT 6,(IY-002H)
+ JP Z,L3E64
+ LD IX,L3E64
+ PUSH IY
+ POP HL
+ LD DE,0FFF9H
+ ADD HL,DE
+ LD DE,(DISPX)
+ JP L142B
+
+L3D25: PUSH AF
+ PUSH DE
+ LD A,(L1046)
+ INC A
+ LD IY,03D30H
+ LD DE,L0015
+L3D32: ADD IY,DE
+ DEC A
+ JR NZ,L3D32 ; (-005H)
+ LD C,(IY+000H)
+ POP DE
+ POP AF
+ RET
+
+ DS 8, 000H
+ DB 0B1H
+ DB 0B0H
+ DB 000H
+ DS 2, 010H
+ DB 004H,040H,003H,0C0H,005H,060H,030H,003H
+ DS 8, 000H
+ DB 0B3H
+ DB 0B2H
+ DB 000H
+ DS 2, 010H
+ DB 004H,040H,003H,0C0H,005H,060H,030H,003H
+L3D67: CALL BRKCHK
+ RET NZ
+ JP BREAKZ
+
+L3D6E: LD A,018H
+ OUT (C),A
+ LD A,030H
+ OUT (C),A
+ LD A,(IY-002H)
+ AND 00CH
+ JR NZ,L3D81 ; (+004H)
+ SET 2,(IY-002H)
+L3D81: LD A,(IY-002H)
+ LD B,A
+ AND 00FH
+ OR 040H
+ LD (IY+006H),A
+ LD A,B
+ AND 080H
+ OR 040H
+ LD (IY+008H),A
+ RRA
+ AND 07FH
+ OR 00AH
+ LD (IY+00AH),A
+ LD A,B
+ OR 07FH
+ LD (IY+002H),A
+ CALL L3DC4
+L3DA5: IN A,(C)
+ RRCA
+ RET NC
+ DEC C
+ IN A,(C)
+ INC C
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ AND 070H
+ JR Z,L3DA5 ; (-012H)
+ RET
+
+L3DB8: RES 0,(IY+008H)
+ RES 7,(IY+00AH)
+ LD (IY-001H),000H
+L3DC4: LD B,00AH
+ PUSH IY
+ POP HL
+ LD DE,L0003
+ ADD HL,DE
+ OTIR
+ RET
+
+L3DD0: LD A,030H
+ OUT (C),A
+ RET
+
+L3DD5: SET 0,(IY+008H)
+ LD A,013H
+ OUT (C),A
+ LD A,(IY+008H)
+ OUT (C),A
+ LD A,035H
+ OUT (C),A
+ LD A,(IY+00AH)
+ OR 088H
+ LD (IY+00AH),A
+ OUT (C),A
+ RET
+
+ LD A,003H
+ OUT (C),A
+ RES 0,(IY+008H)
+ LD A,(IY+008H)
+ OUT (C),A
+L3DFE: RES 7,(IY+00AH)
+ JR L3E14 ; (+010H)
+
+L3E04: SET 1,(IY+00AH)
+ JR L3E14 ; (+00aH)
+
+L3E0A: RES 1,(IY+00AH)
+ JR L3E14 ; (+004H)
+
+ SET 7,(IY+00AH)
+L3E14: LD A,005H
+ OUT (C),A
+ LD A,(IY+00AH)
+ OUT (C),A
+ OR A
+ RET
+
+L3E1F: CALL PUSHR
+ LD C,(IY+000H)
+L3E25: CALL L3D67
+ CALL L3E9D
+ JR C,L3E25 ; (-008H)
+ CALL L3DD5
+L3E30: CALL L3D67
+ IN A,(C)
+ RRCA
+ JR NC,L3E30 ; (-008H)
+ DEC C
+ IN A,(C)
+ INC C
+ AND (IY+002H)
+ PUSH AF
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ AND 070H
+ JR NZ,L3E4F ; (+005H)
+ CALL L3DFE
+ POP AF
+ RET
+
+L3E4F: LD B,A
+ POP AF
+ PUSH BC
+ CALL L3D6E
+ POP BC
+ LD A,01DH
+ RLC B
+ RLC B
+ RET C
+ INC A
+ RLC B
+ RET C
+ INC A
+ SCF
+ RET
+
+L3E64: CALL PUSHR
+ LD C,(IY+000H)
+ LD D,A
+ CALL L3E04
+L3E6E: CALL L3D67
+ CALL L3EA4
+ CALL NC,L3EB5
+ JR C,L3E6E ; (-00bH)
+ IN A,(C)
+ BIT 2,A
+ JR Z,L3E6E ; (-011H)
+ BIT 7,(IY-003H)
+ JR Z,L3E8E ; (+009H)
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ RRCA
+ JR NC,L3E6E ; (-020H)
+L3E8E: DEC C
+ OUT (C),D
+ INC C
+ BIT 6,(IY-003H)
+ JR Z,L3E9B ; (+003H)
+ CALL L3E0A
+L3E9B: OR A
+ RET
+
+L3E9D: OR A
+ BIT 0,(IY-003H)
+ JR L3EA9 ; (+005H)
+
+L3EA4: OR A
+ BIT 1,(IY-003H)
+L3EA9: RET Z
+ LD A,010H
+ OUT (C),A
+ IN A,(C)
+ AND 008H
+ RET NZ
+ SCF
+ RET
+
+L3EB5: OR A
+ BIT 2,(IY-003H)
+ RET Z
+ LD A,010H
+ OUT (C),A
+ IN A,(C)
+ AND 020H
+ RET NZ
+ SCF
+ RET
+
+$RAM: DB 09EH,";RAM",000H,05FH ; $RAM - EMM device descriptor
+ DS 2, 020H
+ DB 014H,03FH,0A9H,03FH,0EAH,03FH,09BH,03FH,000H,004H,0D5H,03FH,011H,"@V@",083H,040H
+ DB LSE3
+ DB 03EH
+ CALL L3EEF
+ LD C,H
+ LD B,000H
+ SRL C
+ SRL C
+ OR A
+ RET
+
+L3EEF: PUSH DE
+ LD HL,L0000
+ CALL L40B5
+ PUSH DE
+ INC HL
+ INC HL
+ CALL L40B5
+ POP HL
+ SBC HL,DE
+ JP C,01F8BH
+ POP DE
+ RET
+
+L3F04: LD DE,00010H
+L3F07: LD HL,00002H
+ CALL L40AA
+ EX DE,HL
+ LD DE,L0000
+ JP L40AA
+
+ RET C
+ LD A,(L13C3)
+ OR A
+ JP Z,01F97H
+ CALL L1E8F
+ CALL TEST1
+ DB 02CH
+ PUSH HL
+ CALL L3F04
+ POP HL
+ CALL TEST1
+ DB 000H
+ RET Z
+ RST 018H
+ DB 013H
+L3F2F: LD HL,L0000
+ DI
+ LD B,001H
+ LD A,D
+ AND LSFC
+ CP LSFC
+ LD HL,0FFFFH
+ JR Z,L3F48 ; (+009H)
+ LD B,003H
+ LD A,D
+ OR A
+ LD HL,00020H
+ JR NZ,L3F49 ; (+001H)
+L3F48: EX DE,HL
+L3F49: LD A,B
+ LD (L13C3),A
+ LD HL,L0000
+ CALL L40AA
+ CALL L14F4
+ EI
+ RET
+
+L3F58: LD HL,00008H
+ LD B,L
+ LD C,000H
+L3F5E: CALL L409F
+ SUB L
+ OR C
+ LD C,A
+ LD A,L
+ CALL L4094
+ INC L
+ DJNZ L3F5E ; (-00dH)
+ LD A,C
+ OR A
+ JR NZ,L3F81 ; (+012H)
+ LD HL,L0000
+ CALL L40B5
+ LD A,002H
+ INC D
+ JR Z,L3F7B ; (+001H)
+ INC A
+L3F7B: LD (L13C3),A
+ JP L14F4
+
+L3F81: CALL L3F04
+ LD HL,L0000
+ LD A,05AH
+ CALL L4094
+ CALL L409F
+ SUB 05AH
+ LD DE,0C000H
+ JR Z,L3F2F ; (-067H)
+ XOR A
+ LD (L13C3),A
+ RET
+
+ LD A,(L13C3)
+ OR A
+ JP Z,01F97H
+ LD HL,00010H
+ LD (L13C4),HL
+ RET
+
+ LD B,H
+ LD C,L
+ LD HL,(L13C4)
+ CALL L40B5
+ LD A,D
+ OR E
+ SCF
+ RET Z
+ INC HL
+ INC HL
+ PUSH HL
+ ADD HL,DE
+ JP C,01F8BH
+ LD (L13C4),HL
+ POP HL
+ INC HL
+ INC HL
+ INC HL
+ LD D,B
+ LD E,C
+ LD BC,BRKCHK
+ CALL L40DE
+ LD BC,00022H
+ ADD HL,BC
+ EX DE,HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ OR A
+ RET
+
+ EX DE,HL
+ LD L,(IY+01EH)
+ LD H,(IY+01FH)
+ INC HL
+ INC HL
+ INC HL
+ CALL L40DE
+ LD (IY+01EH),L
+ LD (IY+01FH),H
+ OR A
+ RET
+
+ PUSH AF
+ CALL L1C3D
+ PUSH HL
+ LD HL,00002H
+ CALL L40B5
+ LD (013C6H),DE
+ PUSH DE
+ LD HL,L0047
+ ADD HL,DE
+ CALL L4045
+ POP DE
+ INC DE
+ INC DE
+ POP HL
+ LD BC,00040H
+ POP AF
+ CALL L40C0
+ LD (013C8H),DE
+ RET
+
+ PUSH AF
+ PUSH HL
+ PUSH BC
+ LD HL,(013C8H)
+ INC BC
+ INC BC
+ INC BC
+ ADD HL,BC
+ CALL L4045
+ POP BC
+ POP HL
+ LD DE,(013C8H)
+ POP AF
+ PUSH AF
+ OR 001H
+ CALL L40C0
+ LD (013C8H),DE
+ POP AF
+ BIT 2,A
+ RET Z
+ PUSH DE
+ CALL L3F07
+ POP HL
+ LD DE,(013C6H)
+ DEC HL
+ DEC HL
+L403E: OR A
+ SBC HL,DE
+ EX DE,HL
+ JP L40AA
+
+L4045: JR C,L4053 ; (+00cH)
+ PUSH HL
+ LD HL,L0000
+ CALL L40B5
+ OR A
+ POP HL
+ SBC HL,DE
+ RET C
+L4053: JP 01FA0H
+
+ LD HL,(ELMD30)
+ LD DE,0FFBBH
+ ADD HL,DE
+ CALL L40B5
+ EX DE,HL
+ ADD HL,DE
+ INC HL
+ INC HL
+ PUSH DE
+ PUSH HL
+ LD HL,00002H
+ CALL L40B5
+ EX DE,HL
+ POP DE
+ PUSH DE
+ OR A
+ SBC HL,DE
+ INC HL
+ INC HL
+ LD B,H
+ LD C,L
+ POP HL
+ POP DE
+ CALL L40EA
+ DEC DE
+ DEC DE
+ LD HL,00002H
+ JP L40AA
+
+ LD HL,(ELMD30)
+ LD DE,0FFC0H
+ ADD HL,DE
+ EX DE,HL
+ LD HL,L1000
+ LD BC,00020H
+ JP L40D0
+
+L4094: PUSH BC
+ LD C,0EBH
+ LD B,H
+ OUT (C),L
+ OUT (0EAH),A
+ POP BC
+ OR A
+ RET
+
+L409F: PUSH BC
+ LD C,0EBH
+ LD B,H
+ OUT (C),L
+ IN A,(0EAH)
+ POP BC
+ OR A
+ RET
+
+L40AA: LD A,E
+ CALL L4094
+ INC HL
+ LD A,D
+ CALL L4094
+ DEC HL
+ RET
+
+L40B5: CALL L409F
+ LD E,A
+ INC HL
+ CALL L409F
+ LD D,A
+ DEC HL
+ RET
+
+L40C0: EX DE,HL
+ CALL L4094
+ INC HL
+ LD A,C
+ CALL L4094
+ INC HL
+ LD A,B
+ CALL L4094
+ INC HL
+ EX DE,HL
+L40D0: EX DE,HL
+L40D1: LD A,(DE)
+ CALL L4094
+ INC HL
+ INC DE
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L40D1 ; (-00bH)
+ EX DE,HL
+ RET
+
+L40DE: CALL L409F
+ LD (DE),A
+ INC HL
+ INC DE
+ DEC BC
+ LD A,B
+ OR C
+ RET Z
+ JR L40DE ; (-00cH)
+
+L40EA: CALL L409F
+ EX DE,HL
+ CALL L4094
+ EX DE,HL
+ INC HL
+ INC DE
+ DEC BC
+ LD A,B
+ OR C
+ RET Z
+ JR L40EA ; (-010H)
+
+L40FA: DB 000H ; PSG data tables (INTM, STBL, PTBL, LTBL, ETBL, NTBL)
+L40FB: DS 2, 000H
+L40FD: DB 080H
+ DB 000H
+L40FF: DB 09FH
+ DB 0A0H
+ DB 000H
+ DB 0BFH
+ DB 0C0H
+ DB 000H
+L4105: DB 0DFH
+L4106: DS 16, 000H
+ DB 001H
+ DS 15, 000H
+ DB 002H
+ DS 15, 000H
+ DB 003H
+ DS 15, 000H
+L4146: DB 001H
+ DB 002H
+ DB 003H
+ DB 004H
+ DB 006H
+ DB 008H
+ DB 00CH
+ DB 010H
+ DB 018H
+ DB 020H
+ DB 017H
+ DB 014H
+ DB 011H
+ DB 00DH
+ DB 00AH
+ DB 007H
+ DB 003H
+L4157: DB 000H
+ DB 005H
+ DS 2, 003H
+ DB 00FH
+ DB 004H
+ DB 001H
+ DB 003H
+ DB 000H
+ DB 005H
+ DB 002H
+ DB 000H
+ DB 00FH
+ DB 004H
+ DB 001H
+ DS 2, 000H
+ DB 005H
+ DB 002H
+ DB 003H
+ DB 00FH
+ DB 004H
+ DS 2, 003H
+ DB 000H
+ DB 005H
+ DB 004H
+ DB 000H
+ DB 00FH
+ DB 004H
+ DB 005H
+ DS 2, 000H
+ DS 2, 003H
+ DB 000H
+L417B: DB 000H,03FH,007H,03BH,002H,038H,00FH,034H,000H,032H,003H,02FH,009H,02CH,001H,02AH,00BH,027H,007H,025H,006H,023H,006H,021H
+L4193: DB 008H
+ DB 01FH
+ DB 00CH
+ DB 01DH
+ DB 001H
+ DB 01CH
+ DB 008H
+ DB 01AH
+ DB 000H
+ DB 019H
+ DB 009H
+ DB 017H
+ DB 004H
+ DB 016H
+ DB 000H
+ DB 015H
+ DB 00DH
+ DB 013H
+ DB 00CH
+ DB 012H
+ DB 00BH
+ DB 011H
+ DB 00BH
+ DB 010H
+ DB 00CH
+ DB 00FH
+ DS 2, 00EH
+ DB 000H
+ DB 00EH
+ DB 004H
+ DB 00DH
+ DB 008H
+ DB 00CH
+ DB 00DH
+ DB 00BH
+ DB 002H
+ DB 00BH
+ DB 008H
+ DB 00AH
+ DB 00FH
+ DB 009H
+ DB 006H
+ DB 009H
+ DB 00DH
+ DB 008H
+ DB 005H
+ DB 008H
+ DB 00EH
+ DS 3, 007H
+ DB 000H
+ DB 007H
+ DB 00AH
+ DB 006H
+ DB 004H
+ DB 006H
+ DB 00EH
+ DB 005H
+ DB 009H
+ DB 005H
+ DB 004H
+ DB 005H
+ DB 00FH
+ DB 004H
+ DB 00BH
+ DB 004H
+ DB 007H
+ DB 004H
+ DB 003H
+ DB 004H
+ DB 00FH
+ DB 003H
+ DB 00BH
+ DB 003H
+ DB 008H
+ DB 003H
+ DB 005H
+ DB 003H
+ DB 002H
+ DB 003H
+ DB 00FH
+ DB 002H
+ DB 00DH
+ DB 002H
+ DB 00AH
+ DB 002H
+ DB 008H
+ DB 002H
+ DB 005H
+ DB 002H
+ DB 003H
+ DB 002H
+ DB 001H
+ DB 002H
+ DB 00FH
+ DB 001H
+ DB 00EH
+ DB 001H
+ DB 00CH
+ DB 001H
+ DB 00AH
+ DB 001H
+ DB 009H
+ DB 001H
+ DB 008H
+ DB 001H
+ DB 006H
+ DB 001H
+ DB 005H
+ DB 001H
+ DB 004H
+ DB 001H
+ DB 003H
+ DB 001H
+ DB 002H
+ DS 3, 001H
+ DB 000H
+ DB 001H
+ DB 00FH
+ DB 000H
+ DB 00EH
+ DB 000H
+L4211: DB 09FH
+ DB 0BFH
+ DB 0DFH
+ DB 0FFH
+L4215: DB 080H
+ DB 000H
+ DB 090H
+L4218: DS 2, 000H
+ PUSH IY
+ CALL L4224
+ POP IY
+ EI
+ RETI
+
+L4224: CALL PUSHRA
+ CALL L44CC
+ LD A,(L40FA)
+ OR A
+ JP Z,L447E
+ DEC A
+ JP NZ,L43B9
+ LD BC,L09F2
+ LD HL,L40FD
+ OTIR
+ LD B,008H
+ LD A,(L40FB)
+ OR A
+ JP Z,L447E
+ LD C,A
+L4247: DEC B
+ RET M
+ RLC C
+ JR NC,L4247 ; (-006H)
+ PUSH BC
+ LD A,B
+ CALL L43FC
+ BIT 0,(IY+00DH)
+ CALL Z,L425F
+ CALL L42AC
+ POP BC
+ JR L4247 ; (-018H)
+
+L425F: DEC (HL)
+ RET NZ
+ INC HL
+ LD A,(HL)
+ DEC HL
+ LD (HL),A
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+L426B: LD A,(HL)
+ OR A
+ JR NZ,L4273 ; (+004H)
+ DEC HL
+ DEC HL
+ JR L426B ; (-008H)
+
+L4273: EX DE,HL
+ INC HL
+ DEC A
+ JR Z,L4288 ; (+010H)
+ DEC A
+ JR Z,L4296 ; (+01bH)
+ DEC A
+ RET Z
+ DEC A
+ LD A,(HL)
+ JR Z,L428C ; (+00bH)
+ INC A
+ CP 00FH
+ JR Z,L429A ; (+014H)
+ JR C,L429A ; (+012H)
+L4288: LD A,00FH
+ JR L4299 ; (+00dH)
+
+L428C: DEC A
+ JP M,L4296
+ LD C,(IY+00EH)
+ CP C
+ JR NC,L429A ; (+004H)
+L4296: LD A,(IY+00EH)
+L4299: INC DE
+L429A: LD (HL),A
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+L429F: AND 00FH
+ LD B,A
+ LD A,(IX+002H)
+ AND LSPAL
+ OR B
+ LD (IX+002H),A
+ RET
+
+L42AC: DEC (IY+006H)
+ RET NZ
+ DEC (IY+007H)
+ LD A,(IY+008H)
+ LD (IY+006H),A
+ RET NZ
+ LD A,(IY+009H)
+ LD (IY+007H),A
+ LD E,(IY+00AH)
+ LD D,(IY+00BH)
+L42C6: LD A,(DE)
+ INC DE
+ CP 0FFH
+ JR Z,L4331 ; (+065H)
+ CP 0A0H
+ JR Z,L432A ; (+05aH)
+ CP 090H
+ JR NC,L4339 ; (+065H)
+ CP 080H
+ JR NC,L4340 ; (+068H)
+ CP 060H
+ JR NC,L434A ; (+06eH)
+ SUB 009H
+ LD (IY+00AH),E
+ LD (IY+00BH),D
+ SET 0,(IY+00DH)
+ JR C,L42F1 ; (+007H)
+ RES 0,(IY+00DH)
+ CALL L4362
+L42F1: LD A,(IY+002H)
+ LD (IY+001H),A
+ LD A,(IY+008H)
+ LD (IY+006H),A
+ LD A,(IY+009H)
+ LD (IY+007H),A
+ BIT 0,(IY+00DH)
+ JR NZ,L4334 ; (+02bH)
+ LD A,(IY+00CH)
+ LD BC,L4157
+ ADD A,A
+ ADD A,A
+ LD H,000H
+ LD L,A
+ ADD HL,BC
+ LD A,(HL)
+ OR A
+ JR NZ,L431C ; (+003H)
+ LD A,(IY+00EH)
+L431C: LD (IY+005H),A
+ CALL L429F
+ INC HL
+ LD (IY+003H),L
+ LD (IY+004H),H
+ RET
+
+L432A: LD A,(DE)
+ INC DE
+ LD (IY+002H),A
+L432F: JR L42C6 ; (-06bH)
+
+L4331: CALL L4464
+L4334: LD A,00FH
+ JP L429F
+
+L4339: SUB 090H
+ LD (IY+00CH),A
+ JR L432F ; (-011H)
+
+L4340: SUB 080H
+ CPL
+ AND 00FH
+ LD (IY+00EH),A
+ JR L432F ; (-01bH)
+
+L434A: SUB 060H
+ LD B,000H
+ LD C,A
+ LD HL,L4146
+ ADD HL,BC
+ CP 00AH
+ LD A,(HL)
+ JR NC,L435D ; (+005H)
+ LD (IY+008H),A
+ JR L432F ; (-02eH)
+
+L435D: LD (IY+009H),A
+ JR L432F ; (-033H)
+
+L4362: ADD A,A
+ LD HL,L417B
+ LD B,000H
+ LD C,A
+ ADD HL,BC
+ LD B,(HL)
+ LD A,(IX+000H)
+ AND LSPAL
+ OR B
+ LD (IX+000H),A
+ INC HL
+ LD A,(HL)
+ LD (IX+001H),A
+ RET
+
+L437A: OR A
+ JP P,L43C6
+ AND 00FH
+ LD C,PSGA
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ OR 080H
+ LD B,A
+ BIT 4,A
+ JR NZ,L43AB ; (+01eH)
+ CP LSE0
+ JR Z,L43A7 ; (+016H)
+ LD A,D
+ CP 004H
+ JR NC,L43B6 ; (+020H)
+ LD A,E
+ AND 00FH
+ OR B
+ OUT (C),A
+ LD A,D
+ LD B,004H
+L439F: RL E
+ RLA
+ DJNZ L439F ; (-005H)
+ OUT (C),A
+ RET
+
+L43A7: BIT 3,E
+ JR NZ,L43B6 ; (+00bH)
+L43AB: LD A,E
+ AND LSPAL
+ OR D
+ JR NZ,L43B6 ; (+005H)
+ LD A,E
+ OR B
+ OUT (C),A
+ RET
+
+L43B6: JP L1F7F
+
+L43B9: LD HL,(L4218)
+ DEC HL
+ LD (L4218),HL
+ LD A,L
+ OR H
+ RET NZ
+ JP L447E
+
+L43C6: LD C,A
+ LD A,D
+ OR E
+ RET Z
+ LD A,C
+ LD IX,L4215
+ CP 054H
+ RET NC
+ SUB 009H
+ PUSH AF
+ LD A,090H
+ JR NC,L43DB ; (+002H)
+ LD A,09FH
+L43DB: LD (IX+002H),A
+ CALL L44A3
+ POP AF
+ CALL NC,L4362
+ DI
+ LD A,002H
+ LD (L40FA),A
+ LD (04218H),DE
+ LD HL,L4215
+ LD BC,L03F2
+ OTIR
+ CALL L44CC
+ EI
+ RET
+
+L43FC: PUSH BC
+ PUSH AF
+ CP 003H
+ JR C,L4403 ; (+001H)
+ DEC A
+L4403: LD HL,L40FD
+ LD B,A
+ ADD A,A
+ ADD A,B
+ LD C,A
+ LD B,000H
+ ADD HL,BC
+ PUSH HL
+ POP IX
+ POP AF
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ LD HL,L4106
+ LD B,000H
+ LD C,A
+ ADD HL,BC
+ PUSH HL
+ POP IY
+ INC HL
+ POP BC
+ RET
+
+L4422: CP 0FFH
+ JR NZ,L4435 ; (+00fH)
+ LD A,003H
+L4428: PUSH AF
+ PUSH DE
+ CALL L4435
+ POP DE
+ POP AF
+ DEC A
+ JP M,L445A
+ JR L4428 ; (-00dH)
+
+L4435: PUSH AF
+ LD HL,L4105
+ CP 003H
+ JR Z,04441H ; (+004H)
+ LD A,0DFH
+ DB 018H
+ LD B,03EH
+ RST 020H
+ OUT (PSGA),A
+ LD A,0FFH
+ LD (HL),A
+ DI
+ LD A,001H
+ LD (L40FA),A
+ POP AF
+ CALL L43FC
+ CALL L4468
+ CALL L42C6
+ EI
+ RET
+
+L445A: DI
+ LD A,(L40FA)
+ OR A
+ CALL NZ,L44CC
+ EI
+ RET
+
+L4464: LD B,086H
+ JR L446A ; (+002H)
+
+L4468: LD B,0C6H
+L446A: LD HL,L40FB
+ LD A,(IY+000H)
+ OR A
+ RLCA
+ RLCA
+ RLCA
+ OR B
+ LD (04479H),A
+ RLC B
+ RET
+
+L447B: CALL PUSHR
+L447E: XOR A
+ LD (L40FA),A
+ LD (L40FB),A
+ LD BC,L04F2
+ LD HL,L4211
+ OTIR
+ LD B,003H
+ LD HL,L40FF
+L4492: LD A,(HL)
+ AND LSPAL
+ OR 00FH
+ LD (HL),A
+ INC HL
+ INC HL
+ INC HL
+ DJNZ L4492 ; (-00bH)
+ LD A,003H
+ OUT (LSFC),A
+ XOR A
+ RET
+
+L44A3: LD A,(L40FA)
+ OR A
+ RET Z
+ RST 018H
+ DB 00EH
+ JR NZ,L44A3 ; (-009H)
+ JP BREAKZ
+
+L44AF: DEC B
+ JP Z,L445A
+ DEC B
+ JR Z,L447B ; (-03bH)
+ DEC B
+ JR Z,L44A3 ; (-016H)
+ CALL L447B
+ LD BC,L05FC
+ LD HL,L44DC
+ OTIR
+ LD DE,044EDH
+ LD A,0FFH
+ JP L4422
+
+L44CC: LD HL,L44DC
+ LD BC,L05FC
+ OTIR
+ LD HL,L44E1
+ LD B,006H
+ JP IOOUT
+
+L44DC: DB LSFC
+ DB 0FFH
+ DB 03FH
+ DB 017H
+ DB 0EFH
+L44E1: DB 030H
+ DB 0D7H
+ DB 0B0H
+ DB 0D4H
+ DB 02AH
+ DB 0D4H
+ INC B
+ OUT (000H),A
+ OUT (083H),A
+ CALL M,L6D65
+ DB 098H
+ DB 0A0H
+ DS 2, 0FFH
+L44F3: CALL PUSHR
+ RST 018H
+ DB 010H
+ LD HL,L4514
+ LD B,004H
+ CALL IOOUT
+ LD BC,SVC_ENTRY
+L4503: EX (SP),HL
+ DJNZ L4503 ; (-003H)
+ DEC C
+ JR NZ,L4503 ; (-006H)
+ LD HL,L451C
+ LD B,002H
+ CALL IOOUT
+ RST 018H
+ DB 011H
+ RET
+
+L4514: LD (HL),0D7H
+ LD BC,0F9D3H
+ CALL NC,0D403H
+L451C: LD (HL),0D7H
+ NOP
+ OUT (LSRF),A
+ CP D
+ NOP
+ LD DE,L4538
+ AND 00FH
+ ADD A,069H
+ LD (DE),A
+ LD B,003H
+ RST 018H
+ DB 023H
+ LD A,0FFH
+ RST 018H
+ DB 021H
+ LD B,001H
+ RST 018H
+ DB 023H
+ RET
+
+L4538: DB 000H
+ DB 0FFH
+L453A: CALL TEST1
+ DB 04DH
+ JR Z,L4561 ; (+021H)
+ OR A
+ JR Z,L458E ; (+04bH)
+ CP 042H
+ JP NZ,L1F7F
+ XOR A
+ LD (L137E),A
+ LD A,(L137A)
+ CP 002H
+ JP NZ,01FBBH
+ INC HL
+ LD B,004H
+ CALL DEVASC
+ LD (L137E),A
+ RST 018H
+ DB 051H
+ JR L4581 ; (+020H)
+
+L4561: LD B,005H
+ CALL DEVASC
+ OR A
+ JR Z,L458B ; (+022H)
+ LD B,A
+ RST 018H
+ DB 050H
+ JP C,01FBBH
+ LD A,B
+ LD (L137A),A
+ XOR A
+ LD (L108F),A
+ SCF
+L4578: ADC A,A
+ DJNZ L4578 ; (-003H)
+ LD (L1379),A
+ CALL L4593
+L4581: CALL TEST1
+ DB 000H
+ RET Z
+ CP 02CH
+ INC HL
+ JR Z,L453A ; (-051H)
+L458B: JP L1F7F
+
+L458E: LD A,(L137A)
+ RST 018H
+ DB 050H
+L4593: CALL L459D
+ XOR A
+ LD (L137E),A
+ RST 018H
+ DB 051H
+ RET
+
+L459D: LD A,(L1379)
+ LD B,003H
+ RRA
+ JR C,L45B1 ; (+00cH)
+ LD B,00FH
+ RRA
+ JR C,L45B1 ; (+007H)
+ LD B,001H
+ RRA
+ JR C,L45B1 ; (+002H)
+ LD B,003H
+L45B1: LD A,B
+ LD (L137B),A
+ RST 018H
+ DB 054H
+ RET
+
+L45B8: DB 0FFH
+ DB 0FEH
+ DB LSFC
+ DB 0F8H
+ DB LSPAL
+ DB LSE0
+ DB 0C0H
+ DB 080H
+L45C0: DB 001H
+ DB 003H
+ DB 007H
+ DB 00FH
+ DB 01FH
+ DB 03FH
+ DB 07FH
+ DB 0FFH
+L45C8: DB 001H
+ DB 002H
+ DB 004H
+ DB 008H
+ DB 010H
+ DB 020H
+ DB 040H
+ DB 080H
+L45D0: LD BC,L0703
+ LD HL,L45D9
+ JP PATCH
+
+L45D9: DB 0C8H,04EH,080H,0BEH,040H,09FH,0C5H,046H,080H,0FDH,0C0H,0FEH,030H,054H,080H,002H,040H,001H,0C1H,04CH,050H,000H,028H,000H,0D4H,04CH,050H,000H,028H,000H
+ DB LSFC
+ DB 04CH,080H,0FDH,0C0H,0FEH,003H,04DH,07FH,002H,03FH,001H,00FH,046H,029H,000H,"$NP(",0BEH,"NP("
+L460F: DB 029H,07BH,0E6H,007H,047H,07BH,0E6H,0F8H,082H
+ DS 3, 00FH
+ DB 04FH,078H,006H,080H,054H,05DH
+ DS 2, 029H
+ DB 019H
+ DS 3, 029H
+ DB 009H
+ DB 0C9H
+L4629: CALL L46B2
+ JP C,L479B
+ CALL L460F
+ RLCA
+ RLCA
+ RLCA
+ OR 046H
+ LD (0464CH),A
+ LD C,LSRF
+ LD A,(0109DH)
+ LD B,A
+ DI
+ IN A,(LSE0)
+ XOR A
+L4644: RR B
+ JR C,L4653 ; (+00bH)
+ OUT (C),B
+ OR A
+ BIT 0,(HL)
+ JR Z,L4650 ; (+001H)
+ SCF
+L4650: RLA
+ JR L4644 ; (-00fH)
+
+L4653: LD B,A
+ IN A,(LSE1)
+ EI
+ LD A,(0109CH)
+ AND B
+ LD B,A
+ LD A,(L1098)
+ CP 006H
+ LD A,B
+ RET NZ
+ CP 004H
+ RET C
+ SUB 002H
+ RET
+
+L4669: LD A,0FFH
+L466B: PUSH BC
+ OR A
+ LD A,(L109F)
+ LD C,A
+ LD A,(L109A)
+ JR Z,L4682 ; (+00cH)
+ OR A
+ LD A,0C0H
+ JR Z,L467D ; (+002H)
+ LD A,040H
+L467D: OR C
+ OUT (LSWF),A
+ POP BC
+ RET
+
+L4682: OR A
+ LD A,060H
+ JR NZ,L467D ; (-00aH)
+ LD A,(0109CH)
+ LD B,A
+ LD A,C
+ CPL
+ AND B
+ OR 0C0H
+ OUT (LSWF),A
+ POP BC
+ RET
+
+L4694: CALL L466B
+L4697: CALL L46B2
+ JP C,L479B
+ CALL L460F
+ EX DE,HL
+ LD HL,L45C8
+ LD B,000H
+ LD C,A
+ ADD HL,BC
+ DI
+ IN A,(LSE0)
+ LDI
+ IN A,(LSE1)
+ EI
+ XOR A
+ RET
+
+L46B2: PUSH BC
+ PUSH DE
+ PUSH HL
+ LD A,H
+ RLCA
+ JR C,L46C8 ; (+00fH)
+ LD BC,0FF38H
+ ADD HL,BC
+ JR C,L46C8 ; (+009H)
+ LD A,D
+ RLCA
+ JR C,L46C8 ; (+005H)
+ EX DE,HL
+ LD BC,0FD80H
+ ADD HL,BC
+L46C8: POP HL
+ POP DE
+ POP BC
+ RET
+
+L46CC: LD A,0FFH
+L46CE: CALL L466B
+ PUSH DE
+ PUSH HL
+ EXX
+ LD (KEYBUF),DE
+ LD (L11A9),HL
+ EXX
+ PUSH HL
+ PUSH DE
+ EX DE,HL
+ LD HL,(L11A9)
+ CALL L478B
+ LD (L11AD),A
+ LD (L11AB),HL
+ POP DE
+ JP NC,L4778
+ PUSH HL
+ LD HL,(L11A4)
+ CALL L478B
+ LD (L11A8),A
+ LD (L11A6),HL
+ POP BC
+ POP DE
+ JP NC,L4784
+ XOR A
+ SBC HL,BC
+ JR NC,L4719 ; (+013H)
+ LD HL,L11A4
+ LD DE,L11A9
+ LD B,005H
+L470E: LD A,(DE)
+ LD C,(HL)
+ LD (HL),A
+ LD A,C
+ LD (DE),A
+ INC HL
+ INC DE
+ DJNZ L470E ; (-009H)
+ LD A,0EBH
+L4719: LD (L4753),A
+ LD (L475D),A
+ LD A,(L11AD)
+ AND A
+ LD A,023H
+ JR Z,L4729 ; (+002H)
+ LD A,02BH
+L4729: LD (L476F),A
+ LD A,(L11A8)
+ AND A
+ LD A,013H
+ JR Z,L4736 ; (+002H)
+ LD A,01BH
+L4736: LD (L4763),A
+ EXX
+ LD HL,(L11A6)
+ LD D,H
+ LD E,L
+ SRL H
+ RR L
+ LD BC,(011ABH)
+ EXX
+ LD HL,(L11A9)
+ LD DE,(KEYBUF)
+ LD BC,(011A6H)
+L4753: EX DE,HL
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ CALL L4697
+ POP BC
+ POP DE
+ POP HL
+L475D: EX DE,HL
+ DEC BC
+ LD A,B
+ INC A
+ JR Z,L4773 ; (+010H)
+L4763: NOP
+ EXX
+ OR A
+ SBC HL,BC
+ EXX
+ JP NC,L4753
+ EXX
+ ADD HL,DE
+ EXX
+L476F: NOP
+ JP L4753
+
+L4773: EXX
+ POP HL
+ POP DE
+ EXX
+ RET
+
+L4778: POP HL
+L4779: CALL L4C16
+ CALL L4C16
+ CALL L4C47
+ JR L4773 ; (-011H)
+
+L4784: EX DE,HL
+ LD DE,(KEYBUF)
+ JR L4779 ; (-012H)
+
+L478B: LD A,H
+ ADD A,040H
+ LD H,A
+ LD A,D
+ ADD A,040H
+ LD D,A
+ OR A
+ SBC HL,DE
+ JR C,L479F ; (+007H)
+ LD A,H
+ OR L
+ RET Z
+L479B: LD A,0FFH
+ SCF
+ RET
+
+L479F: OR A
+ EX DE,HL
+ LD HL,L0000
+ SBC HL,DE
+ XOR A
+ SCF
+ RET
+
+L47A9: CALL L47BA
+ LD HL,(L1088)
+ PUSH HL
+ PUSH BC
+ EXX
+ CALL L47BA
+ LD B,002H
+ JP L4C08
+
+L47BA: POP IX
+ EX DE,HL
+ CP 002H
+ CALL Z,L47D6
+ LD BC,(POINTX)
+ ADD HL,BC
+ PUSH HL
+ EX DE,HL
+ CP 001H
+ CALL Z,L47D6
+ LD BC,(POINTY)
+ ADD HL,BC
+ PUSH HL
+ JP (IX)
+
+L47D6: BIT 7,H
+ JP Z,L4BA7
+ CALL L47E1
+ CALL L4BA7
+L47E1: EX AF,AF'
+ CALL L4B80
+ EX AF,AF'
+ RET
+
+L47E7: PUSH AF
+ CALL L4669
+ POP AF
+ PUSH AF
+ LD (04874H),IX
+ LD (011C7H),DE
+ LD (L11C9),HL
+ EXX
+ LD (011D3H),BC
+ LD (011C3H),DE
+ LD (L11C5),HL
+ LD A,C
+ CALL C,L47A9
+ LD HL,(011C3H)
+ LD DE,(011C5H)
+ CALL L4B44
+ LD (L11AE),A
+ LD HL,(011C7H)
+ LD DE,(011C9H)
+ CALL L4B44
+ LD (L11AF),A
+ LD HL,L11BA
+ LD B,008H
+ CALL ?CLRHL
+ LD HL,L11AE
+ POP AF
+ LD B,A
+ AND 00FH
+ JR Z,L4858 ; (+025H)
+ CP 003H
+ JR Z,L4843 ; (+00cH)
+ LD A,(HL)
+ INC HL
+ CP (HL)
+ JR NZ,L4858 ; (+01cH)
+ LD A,B
+ CP 081H
+ JR Z,L4858 ; (+017H)
+ JR L4848 ; (+005H)
+
+L4843: LD A,009H
+ LD (HL),A
+ INC HL
+ LD (HL),A
+L4848: LD B,008H
+ LD HL,L11BA
+ INC A
+ CALL ?SETHL
+ LD A,0B0H
+ CALL L4BD0
+ JR L4873 ; (+01bH)
+
+L4858: LD A,0A0H
+ CALL L4BD0
+ LD D,000H
+ LD HL,(L11AE)
+ LD B,H
+ LD A,L
+L4864: LD HL,L11B9
+ LD E,A
+ ADD HL,DE
+ LD (HL),001H
+ CP B
+ JR Z,L4873 ; (+005H)
+ AND 007H
+ INC A
+ JR L4864 ; (-00fH)
+
+L4873: LD HL,L0000
+ LD (L11A6),HL
+ LD (L11A8),HL
+ LD HL,00001H
+ LD (L11A4),HL
+ LD (L11AA),HL
+L4885: LD HL,(L11A6)
+ LD DE,(KEYBUF)
+ XOR A
+ SBC HL,DE
+ LD (L11A6),HL
+ LD HL,(L11AA)
+ DEC HL
+ LD (L11AC),HL
+ LD A,(011D3H)
+ OR A
+ LD D,H
+ LD E,L
+ CALL NZ,L4BA7
+ CP 001H
+ JR Z,L48A7 ; (+001H)
+ EX DE,HL
+L48A7: LD (011D1H),DE
+ LD (L11CD),HL
+ LD HL,(L11A8)
+ OR A
+ LD D,H
+ LD E,L
+ CALL NZ,L4BA7
+ CP 001H
+ JR Z,L48BC ; (+001H)
+ EX DE,HL
+L48BC: LD (011CFH),DE
+ LD (L11CB),HL
+ LD HL,(011CFH)
+ CALL L4B80
+ LD (L11B2),HL
+ LD HL,(011D1H)
+ CALL L4B80
+ LD (L11B0),HL
+ LD HL,(L11CD)
+ CALL L4B80
+ LD (L11B4),HL
+ LD HL,(L11CB)
+ CALL L4B80
+ LD (L11B6),HL
+ LD HL,(L11AC)
+ CALL L4B80
+ LD (L11B8),HL
+ LD HL,L11BA
+ LD A,(HL)
+ OR A
+ INC HL
+ JR Z,L4938 ; (+040H)
+ EXX
+ LD HL,(011CFH)
+ LD (04B95H),HL
+ LD B,000H
+ LD DE,(011B8H)
+ BIT 7,D
+ JR Z,L491B ; (+012H)
+ LD A,(L11AE)
+ CP 001H
+L490E: JR NZ,L491A ; (+00aH)
+ LD HL,(L11C5)
+ XOR A
+ SBC HL,DE
+ JR Z,L491A ; (+002H)
+ JR C,L491B ; (+001H)
+L491A: INC B
+L491B: LD A,(L11AF)
+ CP 001H
+ JR NZ,L492C ; (+00aH)
+ LD HL,(L11C9)
+ XOR A
+ SBC HL,DE
+ JR Z,L492C ; (+002H)
+ JR NC,L492E ; (+002H)
+L492C: LD A,001H
+L492E: AND B
+ JR Z,L4937 ; (+006H)
+ LD HL,(L11B4)
+ CALL L4B88
+L4937: EXX
+L4938: LD A,(HL)
+ OR A
+ INC HL
+ JR Z,L4979 ; (+03cH)
+ EXX
+ LD B,000H
+ LD HL,(011D1H)
+ LD (04B95H),HL
+ LD DE,(011ACH)
+ LD A,(L11AE)
+ CP 002H
+ JR NZ,L495B ; (+00aH)
+ LD HL,(011C3H)
+ XOR A
+ SBC HL,DE
+ JR Z,L495B ; (+002H)
+ JR C,L495C ; (+001H)
+L495B: INC B
+L495C: LD A,(L11AF)
+ CP 002H
+ JR NZ,L496D ; (+00aH)
+ LD HL,(011C7H)
+ XOR A
+ SBC HL,DE
+ JR Z,L496D ; (+002H)
+ JR NC,L496F ; (+002H)
+L496D: LD A,001H
+L496F: AND B
+ JR Z,L4978 ; (+006H)
+ LD HL,(L11B6)
+ CALL L4B88
+L4978: EXX
+L4979: LD A,(HL)
+ OR A
+ INC HL
+ JR Z,L49BE ; (+040H)
+ EXX
+ LD B,000H
+ LD HL,(L11B0)
+ LD (04B95H),HL
+ LD DE,(011B8H)
+ BIT 7,D
+ JR Z,L49A1 ; (+012H)
+ LD A,(L11AE)
+ CP 003H
+ JR NZ,L49A0 ; (+00aH)
+ LD HL,(011C3H)
+ XOR A
+ SBC HL,DE
+ JR Z,L49A0 ; (+002H)
+ JR C,L49A1 ; (+001H)
+L49A0: INC B
+L49A1: LD A,(L11AF)
+ CP 003H
+ JR NZ,L49B2 ; (+00aH)
+ LD HL,(011C7H)
+ XOR A
+ SBC HL,DE
+ JR Z,L49B2 ; (+002H)
+ JR NC,L49B4 ; (+002H)
+L49B2: LD A,001H
+L49B4: AND B
+ JR Z,L49BD ; (+006H)
+ LD HL,(L11B6)
+ CALL L4B88
+L49BD: EXX
+L49BE: LD A,(HL)
+ OR A
+ INC HL
+ JR Z,L4A04 ; (+041H)
+ EXX
+ LD B,000H
+ LD HL,(L11B2)
+ LD (04B95H),HL
+ LD DE,(011B8H)
+ LD A,(L11AE)
+ CP 004H
+ JR NZ,L49E1 ; (+00aH)
+ LD HL,(L11C5)
+ XOR A
+ SBC HL,DE
+ JR Z,L49E1 ; (+002H)
+ JR NC,L49E2 ; (+001H)
+L49E1: INC B
+L49E2: XOR A
+ BIT 7,D
+ JR Z,L49FA ; (+013H)
+ LD A,(L11AF)
+ CP 004H
+ JR NZ,L49F8 ; (+00aH)
+ LD HL,(L11C9)
+ XOR A
+ SBC HL,DE
+ JR Z,L49F8 ; (+002H)
+ JR C,L49FA ; (+002H)
+L49F8: LD A,001H
+L49FA: AND B
+ JR Z,L4A03 ; (+006H)
+ LD HL,(L11B4)
+ CALL L4B88
+L4A03: EXX
+L4A04: LD A,(HL)
+ OR A
+ INC HL
+ JR Z,L4A45 ; (+03cH)
+ EXX
+ LD B,000H
+ LD HL,(L11B2)
+ LD (04B95H),HL
+ LD DE,(011ACH)
+ LD A,(L11AE)
+ CP 005H
+ JR NZ,L4A27 ; (+00aH)
+ LD HL,(L11C5)
+ XOR A
+ SBC HL,DE
+ JR Z,L4A27 ; (+002H)
+ JR NC,L4A28 ; (+001H)
+L4A27: INC B
+L4A28: LD A,(L11AF)
+ CP 005H
+ JR NZ,L4A39 ; (+00aH)
+ LD HL,(L11C9)
+ XOR A
+ SBC HL,DE
+ JR Z,L4A39 ; (+002H)
+ JR C,L4A3B ; (+002H)
+L4A39: LD A,001H
+L4A3B: AND B
+ JR Z,L4A44 ; (+006H)
+ LD HL,(L11CD)
+ CALL L4B88
+L4A44: EXX
+L4A45: LD A,(HL)
+ OR A
+ INC HL
+ JR Z,L4A8B ; (+041H)
+ EXX
+ LD B,000H
+ LD HL,(L11B0)
+ LD (04B95H),HL
+ LD DE,(011B8H)
+ LD A,(L11AE)
+ CP 006H
+ JR NZ,L4A68 ; (+00aH)
+ LD HL,(011C3H)
+ XOR A
+ SBC HL,DE
+ JR Z,L4A68 ; (+002H)
+ JR NC,L4A69 ; (+001H)
+L4A68: INC B
+L4A69: XOR A
+ BIT 7,D
+ JR Z,L4A81 ; (+013H)
+ LD A,(L11AF)
+ CP 006H
+ JR NZ,L4A7F ; (+00aH)
+ LD HL,(011C7H)
+ XOR A
+ SBC HL,DE
+ JR Z,L4A7F ; (+002H)
+ JR C,L4A81 ; (+002H)
+L4A7F: LD A,001H
+L4A81: AND B
+ JR Z,L4A8A ; (+006H)
+ LD HL,(L11CB)
+ CALL L4B88
+L4A8A: EXX
+L4A8B: LD A,(HL)
+ OR A
+ INC HL
+ JR Z,L4ACC ; (+03cH)
+ EXX
+ LD HL,(011D1H)
+ LD (04B95H),HL
+ LD DE,(011ACH)
+ LD B,000H
+ LD A,(L11AE)
+ CP 007H
+ JR NZ,L4AAE ; (+00aH)
+ LD HL,(011C3H)
+ XOR A
+ SBC HL,DE
+ JR Z,L4AAE ; (+002H)
+ JR NC,L4AAF ; (+001H)
+L4AAE: INC B
+L4AAF: LD A,(L11AF)
+ CP 007H
+ JR NZ,L4AC0 ; (+00aH)
+ LD HL,(011C7H)
+ XOR A
+ SBC HL,DE
+ JR Z,L4AC0 ; (+002H)
+ JR C,L4AC2 ; (+002H)
+L4AC0: LD A,001H
+L4AC2: AND B
+ JR Z,L4ACB ; (+006H)
+ LD HL,(L11CB)
+ CALL L4B88
+L4ACB: EXX
+L4ACC: LD A,(HL)
+ OR A
+ INC HL
+ JR Z,L4B0D ; (+03cH)
+ EXX
+ LD HL,(011CFH)
+ LD (04B95H),HL
+ LD DE,(011ACH)
+ LD B,000H
+ LD A,(L11AE)
+ CP 008H
+ JR NZ,L4AEF ; (+00aH)
+ LD HL,(L11C5)
+ XOR A
+ SBC HL,DE
+ JR Z,L4AEF ; (+002H)
+ JR C,L4AF0 ; (+001H)
+L4AEF: INC B
+L4AF0: LD A,(L11AF)
+ CP 008H
+ JR NZ,L4B01 ; (+00aH)
+ LD HL,(L11C9)
+ XOR A
+ SBC HL,DE
+ JR Z,L4B01 ; (+002H)
+ JR NC,L4B03 ; (+002H)
+L4B01: LD A,001H
+L4B03: AND B
+ JR Z,L4B0C ; (+006H)
+ LD HL,(L11CD)
+ CALL L4B88
+L4B0C: EXX
+L4B0D: LD HL,(L11A6)
+ BIT 7,H
+ JR Z,L4B32 ; (+01eH)
+ LD DE,(011AAH)
+ LD HL,(L11A8)
+ DEC HL
+ LD (L11A8),HL
+ BIT 7,H
+ RET NZ
+ XOR A
+ SBC HL,DE
+ RET C
+ LD HL,(L11A8)
+ ADD HL,HL
+ LD DE,(011A6H)
+ ADD HL,DE
+ LD (L11A6),HL
+L4B32: LD HL,(L11AA)
+ INC HL
+ LD (L11AA),HL
+ LD HL,(L11A4)
+ INC HL
+ INC HL
+ LD (L11A4),HL
+ JP L4885
+
+L4B44: PUSH HL
+ PUSH DE
+ CALL L4B7D
+ EX DE,HL
+ CALL L4B7D
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ POP DE
+ POP HL
+ JR C,L4B69 ; (+014H)
+ BIT 7,H
+ JR NZ,L4B61 ; (+008H)
+ BIT 7,D
+ LD A,008H
+ RET Z
+ LD A,001H
+ RET
+
+L4B61: BIT 7,D
+ LD A,005H
+ RET Z
+ LD A,004H
+ RET
+
+L4B69: BIT 7,H
+ JR NZ,L4B75 ; (+008H)
+ BIT 7,D
+ LD A,007H
+ RET Z
+ LD A,002H
+ RET
+
+L4B75: BIT 7,D
+ LD A,006H
+ RET Z
+ LD A,003H
+ RET
+
+L4B7D: BIT 7,H
+ RET Z
+L4B80: LD A,H
+ CPL
+ LD H,A
+ LD A,L
+ CPL
+ LD L,A
+ INC HL
+ RET
+
+L4B88: LD DE,(POINTY)
+ ADD HL,DE
+ LD DE,0FF38H
+ LD B,H
+ LD C,L
+ ADD HL,DE
+ RET C
+ LD HL,L0000
+ LD DE,(POINTX)
+ ADD HL,DE
+ EX DE,HL
+ LD HL,0FD80H
+ ADD HL,DE
+ RET C
+ LD H,B
+ LD L,C
+ JP L4697
+
+L4BA7: PUSH AF
+ PUSH DE
+ LD B,008H
+ LD C,L
+ LD E,H
+ XOR A
+ LD D,A
+ LD H,A
+ LD L,A
+ EX AF,AF'
+ LD A,(011D4H)
+L4BB5: RRA
+ JR NC,L4BBF ; (+007H)
+ ADD HL,DE
+ EX AF,AF'
+ ADD A,C
+ JR NC,L4BBE ; (+001H)
+ INC HL
+L4BBE: EX AF,AF'
+L4BBF: SLA C
+ RL E
+ RL D
+ DJNZ L4BB5 ; (-012H)
+ EX AF,AF'
+ BIT 7,A
+ JR Z,L4BCD ; (+001H)
+ INC HL
+L4BCD: POP DE
+ POP AF
+ RET
+
+L4BD0: LD (L492E),A
+ LD (L496F),A
+ LD (L49B4),A
+ LD (L49FA),A
+ LD (L4A3B),A
+ LD (L4A81),A
+ LD (L4AC2),A
+ LD (L4B03),A
+ RET
+
+L4BE9: LD (011A8H),SP
+ EX AF,AF'
+ CALL L4C16
+ CALL L4C16
+ EXX
+ PUSH DE
+ PUSH HL
+ PUSH DE
+ EXX
+ PUSH HL
+ PUSH DE
+ PUSH HL
+ PUSH DE
+ EXX
+ PUSH HL
+ PUSH DE
+ PUSH HL
+ EXX
+ EX AF,AF'
+ CALL C,L4C2C
+ LD B,004H
+L4C08: EXX
+ POP HL
+ POP DE
+ EXX
+L4C0C: POP HL
+ POP DE
+ PUSH BC
+ CALL L46CC
+ POP BC
+ DJNZ L4C0C ; (-009H)
+ RET
+
+L4C16: EX DE,HL
+ LD A,H
+ EXX
+ EX DE,HL
+ CP H
+ EXX
+ JR Z,L4C21 ; (+003H)
+ RET P
+ JR L4C26 ; (+005H)
+
+L4C21: LD A,L
+ EXX
+ CP L
+ EXX
+ RET NC
+L4C26: PUSH HL
+ EXX
+ EX (SP),HL
+ EXX
+ POP HL
+ RET
+
+L4C2C: CALL COLS
+ LD B,A
+ LD A,(L109F)
+ CP B
+ JR NZ,L4C3A ; (+004H)
+ LD SP,(011A8H)
+L4C3A: LD A,(L109A)
+ OR A
+ LD A,0C0H
+ JR Z,L4C44 ; (+002H)
+ LD A,040H
+L4C44: OR B
+ OUT (LSWF),A
+L4C47: LD A,H
+ OR D
+ RET M
+ CALL L4CEC
+ LD A,L
+ EXX
+ BIT 7,H
+ JR Z,L4C56 ; (+003H)
+ LD HL,L0000
+L4C56: BIT 7,D
+ JR Z,L4C5D ; (+003H)
+ LD DE,L0000
+L4C5D: EX AF,AF'
+ CALL L4CEC
+ RET C
+ EX AF,AF'
+ INC A
+ SUB L
+ RET C
+ RET Z
+ EX AF,AF'
+ PUSH HL
+ CALL L460F
+ LD (L11A4),HL
+ EXX
+ POP HL
+ LD B,A
+ PUSH BC
+ CALL L460F
+ POP BC
+ LD (L11A6),HL
+ LD C,A
+ LD DE,(KEYBUF)
+ OR A
+ SBC HL,DE
+ JR Z,L4CAA ; (+026H)
+ DEC HL
+ INC DE
+ LD A,L
+ OR A
+ CALL NZ,L4CCD
+ LD HL,L45C0
+ LD A,B
+ LD B,000H
+ ADD HL,BC
+ LD L,(HL)
+ LD C,A
+ LD A,L
+ LD HL,L45B8
+ ADD HL,BC
+ LD B,(HL)
+ LD DE,(011A6H)
+ PUSH BC
+ CALL L4CBA
+ POP BC
+ LD DE,(KEYBUF)
+ LD A,B
+ JR L4CBA ; (+010H)
+
+L4CAA: LD HL,L45C0
+ LD A,B
+ LD B,000H
+ ADD HL,BC
+ LD C,A
+ LD A,0FFH
+ AND (HL)
+ LD HL,L45B8
+ ADD HL,BC
+ AND (HL)
+L4CBA: LD C,A
+ EX AF,AF'
+ LD B,A
+ EX AF,AF'
+ EX DE,HL
+ DI
+ LD DE,L0050
+ IN A,(LSE0)
+L4CC5: LD (HL),C
+ ADD HL,DE
+ DJNZ L4CC5 ; (-004H)
+ IN A,(LSE1)
+ EI
+ RET
+
+L4CCD: PUSH BC
+ EX DE,HL
+ LD B,A
+ EX AF,AF'
+ LD C,A
+ EX AF,AF'
+ LD DE,L0050
+ DI
+L4CD7: PUSH HL
+ PUSH BC
+ IN A,(LSE0)
+ LD A,0FFH
+L4CDD: LD (HL),A
+ INC HL
+ DJNZ L4CDD ; (-004H)
+ IN A,(LSE1)
+ POP BC
+ POP HL
+ ADD HL,DE
+ DEC C
+ JR NZ,L4CD7 ; (-012H)
+ EI
+ POP BC
+ RET
+
+L4CEC: LD A,H
+ OR A
+ JR NZ,L4CF5 ; (+005H)
+ LD A,0C7H
+ CP L
+ JR NC,L4CF9 ; (+004H)
+L4CF5: LD HL,PUSHR
+ SCF
+L4CF9: RRA
+ PUSH HL
+ LD HL,0FD80H
+ ADD HL,DE
+ POP HL
+ JR NC,L4D06 ; (+004H)
+ LD DE,L027F
+ RET
+
+L4D06: RLA
+ RET
+
+L4D08: EXX
+ CALL L46B2
+ EXX
+ RET NC
+L4D0E: LD A,003H
+ JP ERRORJ
+
+L4D13: EXX
+ LD (POINTX),DE
+ LD (L108A),HL
+ EXX
+ RET
+
+L4D1D: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L4D25: DB LSE1
+ DB 04EH,0EDH,04EH,003H,04FH,01CH,04FH
+L4D2D: PUSH BC
+ PUSH DE
+ LD BC,L1218
+ LD D,L
+ LD E,H
+ BIT 0,A
+ JR Z,L4D3B ; (+003H)
+ EX DE,HL
+ INC BC
+ INC BC
+L4D3B: LD (04DB4H),BC
+ LD (L1212),HL
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ LD (L1214),HL
+ LD L,E
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ LD (L1216),HL
+ LD DE,L0000
+ EX DE,HL
+ SBC HL,DE
+ LD (L1221),HL
+ BIT 1,A
+ JR Z,L4D64 ; (+004H)
+ LD (01221H),DE
+L4D64: OR A
+ JP PO,L4D6B
+ LD HL,L0000
+L4D6B: LD DE,(POINTY)
+ ADD HL,DE
+ LD (L121A),HL
+ LD DE,(01214H)
+ LD HL,L0000
+ OR A
+ SBC HL,DE
+ BIT 0,A
+ JR NZ,L4D8C ; (+00bH)
+ BIT 1,A
+ LD (01221H),DE
+ JR Z,L4D8C ; (+003H)
+ LD (L1221),HL
+L4D8C: EX DE,HL
+ LD HL,(L1088)
+ BIT 1,A
+ JR Z,L4D95 ; (+001H)
+ ADD HL,DE
+L4D95: LD (L1218),HL
+ ADD A,A
+ LD HL,L4D25
+ LD D,000H
+ LD E,A
+ ADD HL,DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (04DEAH),DE
+ CALL L4669
+ POP HL
+ POP BC
+L4DAC: DEC B
+ RET M
+ PUSH HL
+ PUSH BC
+ CALL L4DC8
+ LD HL,L1218
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH HL
+ LD HL,(L1221)
+ ADD HL,DE
+ EX DE,HL
+ POP HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ POP BC
+ POP HL
+ INC HL
+ JR L4DAC ; (-01cH)
+
+L4DC8: LD IY,L1208
+ LD A,(HL)
+ RST 018H
+ DB 01DH
+ LD H,000H
+ LD L,A
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ LD A,010H
+ ADD A,H
+ LD H,A
+ LD DE,L4D1D
+ LD BC,00008H
+ DI
+ IN A,(LSE0)
+ LDIR
+ IN A,(LSE1)
+ EI
+ LD B,008H
+ CALL L4EE1
+ LD HL,L0808
+ LD (L1209),HL
+ LD DE,(01212H)
+ LD (0121FH),DE
+ LD HL,(L1218)
+ BIT 7,H
+ JR Z,L4E16 ; (+015H)
+ CALL L4F32
+ RET C
+L4E05: EXX
+ LD B,008H
+ LD HL,L1200
+L4E0B: RLC (HL)
+ INC HL
+ DJNZ L4E0B ; (-005H)
+ EXX
+ DJNZ L4E05 ; (-00eH)
+ LD HL,L0000
+L4E16: LD (04E46H),HL
+ LD A,0F8H
+ AND L
+ OR H
+ RRC A
+ RRC A
+ RRC A
+ SUB 050H
+ RET NC
+ LD L,A
+ LD H,011H
+ LD (L1210),HL
+ LD HL,(L121A)
+ XOR A
+ BIT 7,H
+ JR Z,L4E42 ; (+00eH)
+ INC IY
+ CALL L4F32
+ DEC IY
+ RET C
+ LD HL,L0000
+ LD A,008H
+ SUB B
+L4E42: LD (04E62H),A
+ LD DE,L0000
+ PUSH HL
+ PUSH DE
+ CALL L46B2
+ POP DE
+ POP HL
+ RET C
+ CALL L460F
+ LD (L121C),HL
+ LD HL,L45C8
+ LD D,000H
+ LD E,A
+ ADD HL,DE
+ LD A,(HL)
+ LD (L121E),A
+ LD HL,L1200
+L4E64: LD DE,(01210H)
+ LD BC,(0121EH)
+ XOR A
+ EXX
+ LD B,(IY+001H)
+L4E71: EXX
+ LD (DE),A
+ XOR A
+ RRC (HL)
+ JR NC,L4E7A ; (+002H)
+ LD A,0B1H
+L4E7A: LD (L4E7E),A
+ LD A,(DE)
+L4E7E: OR C
+ RLC C
+ JR NC,L4E88 ; (+005H)
+ LD (DE),A
+ INC E
+ JR Z,L4E93 ; (+00cH)
+ XOR A
+L4E88: DJNZ L4E7E ; (-00cH)
+ LD B,(IY+00AH)
+ EXX
+ DJNZ L4E71 ; (-01fH)
+ EXX
+ LD (DE),A
+ INC E
+L4E93: DEC E
+ INC L
+ LD (L120E),HL
+ LD HL,(L1210)
+ EX DE,HL
+ XOR A
+ SBC HL,DE
+ INC HL
+ LD (L1223),HL
+ LD A,(L1220)
+ LD B,A
+L4EA7: EXX
+ LD DE,(0121CH)
+ LD HL,(L1210)
+ LD BC,(01223H)
+ DI
+ IN A,(LSE0)
+ OUT (LSE0),A
+ LDIR
+ IN A,(LSE1)
+ EI
+ LD DE,L0050
+ LD HL,(L121C)
+ ADD HL,DE
+ LD (L121C),HL
+ LD DE,0BE80H
+ OR A
+ SBC HL,DE
+ RET NC
+ EXX
+ DJNZ L4EA7 ; (-02aH)
+ LD A,(01213H)
+ LD (L1220),A
+ LD HL,(L120E)
+ DEC (IY+002H)
+ JP NZ,L4E64
+ RET
+
+L4EE1: LD HL,L4D1D
+ LD DE,L1200
+ LD C,B
+ LD B,000H
+ LDIR
+ RET
+
+ LD DE,L1200
+L4EF0: EXX
+ LD HL,L4D1D
+ LD B,008H
+ XOR A
+L4EF7: RLC (HL)
+ RRA
+ INC HL
+ DJNZ L4EF7 ; (-006H)
+ EXX
+ LD (DE),A
+ INC DE
+ DJNZ L4EF0 ; (-012H)
+ RET
+
+ LD DE,L1207
+ LD HL,L4D1D
+L4F09: LD A,(HL)
+ EXX
+ LD C,A
+ LD B,008H
+ XOR A
+L4F0F: RR C
+ RL A
+ DJNZ L4F0F ; (-006H)
+ EXX
+ LD (DE),A
+ INC HL
+ DEC DE
+ DJNZ L4F09 ; (-012H)
+ RET
+
+ LD DE,L1207
+L4F1F: EXX
+ LD HL,L4D1D
+ XOR A
+ LD B,008H
+L4F26: RLC (HL)
+ RLA
+ INC HL
+ DJNZ L4F26 ; (-006H)
+ EXX
+ LD (DE),A
+ DEC DE
+ DJNZ L4F1F ; (-012H)
+ RET
+
+L4F32: LD B,008H
+ LD E,(IY+00AH)
+ LD D,000H
+L4F39: ADD HL,DE
+ BIT 7,H
+ JR Z,L4F42 ; (+004H)
+ DJNZ L4F39 ; (-007H)
+L4F40: SCF
+ RET
+
+L4F42: LD A,H
+ OR L
+ JR NZ,L4F4A ; (+004H)
+ LD L,E
+ DEC B
+ JR Z,L4F40 ; (-00aH)
+L4F4A: LD (IY+017H),L
+ LD (IY+001H),B
+ OR A
+ RET
+
+L4F52: OR A
+ RET Z
+ LD (011A6H),DE
+ LD E,A
+ LD C,A
+ LD A,H
+ OR A
+ LD A,023H
+ JR NZ,L4F62 ; (+002H)
+ LD A,02BH
+L4F62: LD (L4FF5),A
+ LD (L4FE1),A
+ LD A,B
+ OR A
+ RET Z
+ LD HL,(L1088)
+ LD A,007H
+ AND L
+ LD D,A
+ EXX
+ LD HL,L45B8
+ LD D,000H
+ LD E,A
+ ADD HL,DE
+ LD A,(HL)
+ LD (04F85H),A
+L4F7E: LD HL,(L108A)
+L4F81: LD (L11A4),HL
+ LD C,0FFH
+ LD HL,(L11A6)
+ LD A,(HL)
+ EXX
+ LD H,A
+ LD A,D
+ OR A
+ JR Z,L4F95 ; (+005H)
+L4F90: RRC H
+ DEC A
+ JR NZ,L4F90 ; (-005H)
+L4F95: LD A,H
+ EXX
+ LD HL,L129E
+ LD B,008H
+ LD D,A
+L4F9D: SRL D
+ RLA
+ DJNZ L4F9D ; (-005H)
+ LD D,A
+ AND C
+ LD (HL),A
+ LD A,D
+ CPL
+ LD B,A
+ AND C
+ INC HL
+ LD (HL),A
+ LD A,C
+ CPL
+ LD C,A
+ AND D
+ INC HL
+ LD (HL),A
+ LD A,C
+ AND B
+ INC HL
+ LD (HL),A
+ LD DE,(POINTX)
+ LD HL,(L11A4)
+ PUSH DE
+ PUSH HL
+ EX DE,HL
+ LD BC,00008H
+ ADD HL,BC
+ EX DE,HL
+ LD A,001H
+ CALL L5003
+ POP HL
+ POP DE
+ XOR A
+ CALL L5003
+ LD HL,(L11A6)
+ INC HL
+ LD (L11A6),HL
+ EXX
+ DJNZ L4FE7 ; (+00eH)
+ DEC C
+ EXX
+ JP Z,L4FF8
+ LD HL,(L11A4)
+L4FE1: INC HL
+ LD (L108A),HL
+ XOR A
+ RET
+
+L4FE7: DEC C
+ JR NZ,L4FF1 ; (+007H)
+ LD C,E
+ EXX
+ CALL L4FF8
+ JR L4F7E ; (-073H)
+
+L4FF1: EXX
+ LD HL,(L11A4)
+L4FF5: INC HL
+ JR L4F81 ; (-077H)
+
+L4FF8: LD HL,(L1088)
+ LD BC,00008H
+ ADD HL,BC
+ LD (L1088),HL
+ RET
+
+L5003: EX AF,AF'
+ CALL L46B2
+ RET C
+ CALL L460F
+ LD B,A
+ LD DE,L129E
+ EX AF,AF'
+ OR A
+ JR Z,L5018 ; (+005H)
+ LD A,B
+ OR A
+ RET Z
+ INC DE
+ INC DE
+L5018: CALL L4669
+ DI
+ IN A,(LSE0)
+ OUT (LSE0),A
+ LD A,(DE)
+ LD (HL),A
+ LD A,(L109A)
+ OR A
+ JR NZ,L5032 ; (+00aH)
+ LD A,(0109CH)
+ OR 060H
+ OUT (LSWF),A
+ INC DE
+ LD A,(DE)
+ LD (HL),A
+L5032: IN A,(LSE1)
+ EI
+ RET
+
+L5036: LD A,(L109F)
+ OR 0C0H
+ OUT (LSWF),A
+ EXX
+ LD DE,L27D0
+ LD HL,L5556
+ LD BC,L0009
+ LDIR
+ EXX
+L504A: LD A,(HL)
+ CALL COLS
+ OR 080H
+ LD (05560H),A
+ INC HL
+ EXX
+ LD HL,L555F
+ LD BC,00005H
+ LDIR
+ EXX
+ DJNZ L504A ; (-016H)
+ EXX
+ LD BC,00007H
+ LDIR
+ LD HL,(L107A)
+ LD (L11A6),HL
+ LD (051CFH),HL
+ LD HL,(L137C)
+ LD DE,0FFFAH
+ ADD HL,DE
+ LD (054DAH),HL
+ LD HL,(L1088)
+ DEC HL
+ LD (L11B1),HL
+ INC HL
+ INC HL
+ LD (L11B3),HL
+ DEC HL
+ EX DE,HL
+ LD HL,L0000
+ LD (L11A4),HL
+ LD HL,(L108A)
+ LD (L11AF),HL
+ CALL L46B2
+ CCF
+ RET NC
+ LD (054E2H),SP
+ LD SP,L2ED0
+ CALL L460F
+ LD DE,L45C8
+ PUSH HL
+ LD H,000H
+ LD L,A
+ ADD HL,DE
+ LD C,(HL)
+ POP HL
+ CALL L27D0
+ AND C
+ JP NZ,L5163
+ CALL L5425
+ LD (L11B3),IX
+ CALL L53F5
+ LD (L11B1),IX
+ LD A,0FFH
+ LD (L11B5),A
+ CALL L54D5
+ LD HL,L12A0
+ LD (L11A9),HL
+ XOR A
+ LD (L11B5),A
+ LD (L11A8),A
+L50D6: LD A,(L11B5)
+ CALL L53C4
+ LD A,0C7H
+ CP L
+ JR C,L5115 ; (+034H)
+ CALL L539D
+ JR C,L5115 ; (+02fH)
+ LD (L11B6),A
+ AND 009H
+ CALL NZ,L518A
+ CALL L51CD
+ LD A,(L11B7)
+ OR A
+ JR NZ,L5115 ; (+01eH)
+L50F7: CALL L54FA
+ JR Z,L50D6 ; (-026H)
+ LD HL,(L11B3)
+ PUSH HL
+ PUSH DE
+ CALL L5429
+ LD (L11B3),IX
+ CALL L54D5
+ POP HL
+ LD (L11B1),HL
+ POP HL
+ LD (L11B3),HL
+ JR L50D6 ; (-03fH)
+
+L5115: LD HL,(L11A6)
+ DEC HL
+ LD DE,0FFF9H
+ LD BC,(KEYBUF)
+L5120: LD A,B
+ OR C
+ JR Z,L515C ; (+038H)
+ LD A,00FH
+ DEC BC
+ CP (HL)
+ ADD HL,DE
+ JR Z,L5120 ; (-00bH)
+ INC HL
+ PUSH HL
+ LD (05149H),HL
+ LD DE,L11AF
+ LD BC,00007H
+ LDIR
+ EX DE,HL
+ LD HL,(L11A6)
+ XOR A
+ POP BC
+ LD (011A6H),BC
+ SBC HL,DE
+ JR Z,L5152 ; (+00cH)
+ LD B,H
+ LD C,L
+ LD HL,L0000
+ EX DE,HL
+ LDIR
+ LD (011A6H),DE
+L5152: LD HL,(L11A4)
+ DEC HL
+ LD (L11A4),HL
+ JP L50F7
+
+L515C: LD HL,(L11A4)
+ LD A,L
+ OR H
+ JR NZ,L5168 ; (+005H)
+L5163: LD SP,(054E2H)
+ RET
+
+L5168: DEC HL
+ LD (L11A4),HL
+ LD HL,(L11A6)
+ DEC HL
+ LD DE,L11B5
+ LD BC,00007H
+ LDDR
+ INC HL
+ LD (L11A6),HL
+L517C: CALL L54FA
+ JR Z,L515C ; (-025H)
+ CALL L5429
+ LD (L11B3),IX
+ JR L517C ; (-00eH)
+
+L518A: LD HL,L11AB
+ LD DE,L11B9
+ CALL L51C7
+ LD A,(L11B6)
+ BIT 0,A
+ JR Z,L51B2 ; (+018H)
+L519A: LD HL,(L11AB)
+ LD (L11B3),HL
+ CALL L53D1
+ JR C,L51A9 ; (+004H)
+ BIT 0,A
+ JR NZ,L519A ; (-00fH)
+L51A9: CALL L51C1
+ LD A,(L11B6)
+ CP 009H
+ RET NZ
+L51B2: LD HL,(L11AD)
+ LD (L11B1),HL
+ CALL L53D1
+ JR C,L51C1 ; (+004H)
+ BIT 3,A
+ JR NZ,L51B2 ; (-00fH)
+L51C1: LD HL,L11B9
+ LD DE,L11AB
+L51C7: LD BC,0000BH
+ LDIR
+ RET
+
+L51CD: LD IY,L0000
+ LD BC,(KEYBUF)
+ LD HL,L0000
+ LD (L11B7),HL
+L51DB: CALL L5203
+ LD A,(L11A8)
+ OR A
+ RET Z
+ DEC A
+ LD (L11A8),A
+ LD (051FFH),SP
+ LD SP,(011A9H)
+ POP IY
+ POP BC
+ POP HL
+ LD (L11B3),HL
+ POP HL
+ LD (L11B1),HL
+ LD (011A9H),SP
+ LD SP,L0000
+ JR L51DB ; (-028H)
+
+L5203: LD A,B
+ OR C
+ LD (0528EH),BC
+ JP Z,L5294
+ LD HL,(L11AF)
+ LD E,(IY+000H)
+ LD D,(IY+001H)
+ XOR A
+ SBC HL,DE
+ JR NZ,L5288 ; (+06eH)
+ CALL L556B
+ CP 005H
+ JR Z,L5258 ; (+037H)
+ CP 00FH
+ JR NZ,L529C ; (+077H)
+ LD L,(IY+002H)
+ LD H,(IY+003H)
+ LD DE,(011B3H)
+ XOR A
+ SBC HL,DE
+ JR NC,L5288 ; (+054H)
+ LD HL,(L11B1)
+ PUSH HL
+ LD L,(IY+002H)
+ LD H,(IY+003H)
+ PUSH HL
+ LD (L11B1),HL
+ LD A,003H
+ CALL L5334
+ POP HL
+ LD (L11B3),HL
+ POP HL
+ LD (L11B1),HL
+ CALL L5425
+ LD (L11B3),IX
+ JR L5288 ; (+030H)
+
+L5258: LD E,(IY+004H)
+ LD D,(IY+005H)
+ LD HL,(L11B1)
+ XOR A
+ SBC HL,DE
+ JR NC,L5288 ; (+022H)
+ LD HL,(L11B3)
+ PUSH HL
+ LD L,(IY+004H)
+ LD H,(IY+005H)
+ PUSH HL
+ LD (L11B3),HL
+ LD A,004H
+ CALL L5334
+ POP HL
+ LD (L11B1),HL
+ POP HL
+ LD (L11B3),HL
+ CALL L53F5
+ LD (L11B1),IX
+L5288: LD DE,00007H
+ ADD IY,DE
+ LD BC,L0000
+ DEC BC
+ JP L5203
+
+L5294: LD A,(L11B8)
+ OR A
+ CALL NZ,L54D5
+ RET
+
+L529C: EX AF,AF'
+ LD A,00FH
+ LD (L11B7),A
+ EX AF,AF'
+ OR A
+ JR NZ,L52AC ; (+006H)
+ LD A,00FH
+ LD (IY+006H),A
+ RET
+
+L52AC: CP 001H
+ JR NZ,L52C2 ; (+012H)
+ LD L,(IY+004H)
+ LD H,(IY+005H)
+ LD (L11B1),HL
+ CALL L53F5
+ LD (L11B1),IX
+ JR L52D6 ; (+014H)
+
+L52C2: CP 00CH
+ JR NZ,L52E0 ; (+01aH)
+L52C6: LD L,(IY+002H)
+ LD H,(IY+003H)
+ LD (L11B3),HL
+ CALL L5425
+ LD (L11B3),IX
+L52D6: LD A,00FH
+ LD (IY+006H),A
+ LD (L11B8),A
+ JR L5288 ; (-058H)
+
+L52E0: CP 00DH
+ JP NZ,L5334
+ LD A,(L11A8)
+ INC A
+ CP 01BH
+ CCF
+ JP C,L54E1
+ LD (L11A8),A
+ LD HL,(L11B1)
+ PUSH HL
+ LD L,(IY+004H)
+ LD H,(IY+005H)
+ LD (L11B1),HL
+ CALL L53F5
+ LD (0532BH),IY
+ LD DE,00007H
+ ADD IY,DE
+ LD BC,(0528EH)
+ DEC BC
+ LD (05327H),SP
+ LD SP,(011A9H)
+ PUSH IX
+ LD DE,(011B3H)
+ PUSH DE
+ PUSH BC
+ PUSH IY
+ LD (011A9H),SP
+ LD SP,L0000
+ LD IY,L0000
+ POP HL
+ LD (L11B1),HL
+ JP L52C6
+
+L5334: EX AF,AF'
+ CALL L54D5
+ DEC DE
+ LD A,00FH
+ LD (DE),A
+ EX AF,AF'
+ CP 003H
+ JR NZ,L535D ; (+01cH)
+L5341: LD HL,(L11B3)
+ LD (L11B1),HL
+ LD L,(IY+004H)
+ LD H,(IY+005H)
+ LD (L11B3),HL
+ CALL L53F5
+ PUSH IX
+ POP HL
+ LD (IY+002H),L
+ LD (IY+003H),H
+ RET
+
+L535D: CP 004H
+ JR Z,L5381 ; (+020H)
+ LD HL,(L11A6)
+ PUSH HL
+ LD (054E7H),IY
+ CALL L54D5
+ LD HL,L11AF
+ LD (054E7H),HL
+ LD HL,(L11B1)
+ PUSH HL
+ CALL L5341
+ POP HL
+ LD (L11B3),HL
+ POP IY
+ JR L5387 ; (+006H)
+
+L5381: LD HL,(L11B1)
+ LD (L11B3),HL
+L5387: LD L,(IY+002H)
+ LD H,(IY+003H)
+ LD (L11B1),HL
+ CALL L5425
+ PUSH IX
+ POP HL
+ LD (IY+004H),L
+ LD (IY+005H),H
+ RET
+
+L539D: LD HL,(L11B1)
+ LD (L11AB),HL
+ LD HL,(L11B3)
+ LD (L11AD),HL
+ CALL L53F5
+ RET C
+ LD (L11B1),IX
+ CALL L5425
+ LD (L11B3),IX
+ CALL L54B1
+ LD A,B
+ RET
+
+L53BD: LD A,(L11B5)
+ CPL
+ LD (L11B5),A
+L53C4: LD HL,(L11AF)
+ INC L
+ OR A
+ JR NZ,L53CD ; (+002H)
+ DEC L
+ DEC L
+L53CD: LD (L11AF),HL
+ RET
+
+L53D1: CALL L53BD
+ CALL L539D
+ RET C
+ PUSH AF
+ LD HL,(L11B1)
+ PUSH HL
+ LD HL,(L11B3)
+ PUSH HL
+ CALL L51CD
+ LD A,(L11B7)
+ OR A
+ CALL Z,L54D5
+ POP HL
+ LD (L11B3),HL
+ POP HL
+ LD (L11B1),HL
+ POP AF
+ RET
+
+L53F5: LD DE,(011B3H)
+ LD HL,(L11B1)
+ PUSH HL
+ LD (054A9H),DE
+ LD HL,L0000
+ LD (0547DH),HL
+ LD A,02BH
+ LD (0546FH),A
+ LD A,02FH
+ LD (L54A0),A
+ XOR A
+ LD (L548A),A
+ LD HL,L5471
+ LD (05469H),HL
+ LD HL,L5490
+ LD (0546CH),HL
+ POP DE
+ INC DE
+ JR L5450 ; (+02bH)
+
+L5425: LD DE,(011B3H)
+L5429: LD HL,(L11B1)
+ LD (0547DH),HL
+ LD HL,08002H
+ LD (054A9H),HL
+ LD A,023H
+ LD (0546FH),A
+ LD A,02FH
+ LD (L548A),A
+ XOR A
+ LD (L54A0),A
+ LD HL,L5490
+ LD (05469H),HL
+ LD HL,L5471
+ LD (0546CH),HL
+ DEC DE
+L5450: LD HL,(L11AF)
+ PUSH DE
+ POP IX
+ CALL L460F
+ LD DE,L45C8
+ PUSH HL
+ LD H,000H
+ LD L,A
+ ADD HL,DE
+ LD C,(HL)
+ POP HL
+ CALL L27D0
+ LD E,A
+ AND C
+ JP Z,L5471
+ CALL L5490
+ DEC IX
+ RET
+
+L5471: DEC IX
+ RRC C
+ JR NC,L5489 ; (+012H)
+ PUSH IX
+ EXX
+ POP DE
+ INC DE
+ LD HL,L0000
+ INC HL
+ SBC HL,DE
+ EXX
+ RET NC
+ DEC HL
+ CALL L27D0
+ LD E,A
+L5489: LD A,E
+L548A: NOP
+ AND C
+ JP Z,L5471
+ RET
+
+L5490: INC IX
+ RLC C
+ JR NC,L549F ; (+009H)
+ CALL L54A4
+ RET C
+ INC HL
+ CALL L27D0
+ LD E,A
+L549F: LD A,E
+L54A0: CPL
+ AND C
+ JR Z,L5490 ; (-014H)
+L54A4: PUSH IX
+ EXX
+ POP HL
+ LD DE,L11B3
+ XOR A
+ SBC HL,DE
+ EXX
+ CCF
+ RET
+
+L54B1: LD B,000H
+ LD HL,(L11AD)
+ LD DE,(011B3H)
+ CALL L54C6
+ LD HL,(L11AB)
+ LD DE,(011B1H)
+ INC HL
+ INC DE
+L54C6: PUSH HL
+ XOR A
+ INC HL
+ SBC HL,DE
+ POP HL
+ RL B
+ INC DE
+ EX DE,HL
+ SBC HL,DE
+ RL B
+ RET
+
+L54D5: LD DE,(011A6H)
+ LD HL,L0000
+ XOR A
+ SBC HL,DE
+ JR NC,L54E6 ; (+005H)
+L54E1: LD SP,L0000
+ SCF
+ RET
+
+L54E6: LD HL,L11AF
+ LD BC,00007H
+ LDIR
+ LD (011A6H),DE
+ LD HL,(L11A4)
+ INC HL
+ LD (L11A4),HL
+ RET
+
+L54FA: LD HL,(L11AF)
+ LD DE,(011B3H)
+ DEC DE
+ CALL L460F
+ LD DE,L45C0
+ PUSH HL
+ LD H,000H
+ LD L,A
+ ADD HL,DE
+ INC C
+ LD B,C
+ LD C,(HL)
+ POP HL
+L5511: CALL L27D0
+ AND C
+ JR NZ,L5528 ; (+011H)
+ DI
+ IN A,(LSE0)
+ LD (HL),C
+ IN A,(LSE1)
+ EI
+ LD C,0FFH
+ DEC HL
+ DJNZ L5511 ; (-012H)
+ LD DE,0FFFFH
+ JR L554F ; (+027H)
+
+L5528: LD E,B
+ LD B,007H
+ LD D,000H
+L552D: RLC A
+ JR C,L5536 ; (+005H)
+ SCF
+ RR D
+ DJNZ L552D ; (-009H)
+L5536: IN A,(LSE0)
+ LD A,C
+ AND D
+ LD (HL),A
+ IN A,(LSE1)
+ LD A,E
+ DEC A
+ RLC A
+ RLC A
+ RLC A
+ LD C,A
+ LD A,007H
+ AND C
+ LD D,A
+ LD A,0F8H
+ AND C
+ OR B
+ LD E,A
+L554F: XOR A
+ LD HL,(L11B1)
+ SBC HL,DE
+ RET
+
+L5556: PUSH HL
+ EXX
+ POP HL
+ DI
+ IN A,(LSE0)
+ LD C,LSRF
+ XOR A
+L555F: LD B,000H
+ OUT (C),B
+ OR (HL)
+ LD E,A
+ IN A,(LSE1)
+ EI
+ LD A,E
+ EXX
+ RET
+
+L556B: LD HL,(L11B1)
+ LD E,(IY+002H)
+ LD D,(IY+003H)
+ INC HL
+ INC DE
+ XOR A
+ CALL L5583
+ LD HL,(L11B3)
+ LD E,(IY+004H)
+ LD D,(IY+005H)
+L5583: SBC HL,DE
+ RLA
+ RLA
+ RET Z
+ OR 001H
+ RET
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L55F0: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+$START: PUSH BC ; $START - BASIC warm start / system entry
+ CALL L585D
+ POP BC
+ LD HL,0A471H
+ LD (L1070),HL
+ LD HL,L586F
+ LD (L004D),HL
+ LD A,B
+ OR A
+L5813: JP Z,L5825
+ CP 001H
+ JR Z,L5825 ; (+00bH)
+ LD HL,L584D
+ LD DE,L1353
+ LD BC,00010H
+ LDIR
+L5825: LD DE,L9EB5
+ RST 018H
+ DB 005H
+ RST 018H
+ DB 020H
+ LD A,0C3H
+ LD (L5813),A
+ LD HL,L5837
+ LD (05814H),HL
+L5837: LD HL,0A471H
+L583A: LD (HL),000H
+ INC HL
+ LD A,H
+ CP 0FFH
+ JR C,L583A ; (-008H)
+ CALL L616E
+ CALL L6180
+ CALL L755E
+ JR L5872 ; (+025H)
+
+L584D: DB 00FH,"RUN ",022H,"AUTO RUN",022H,00DH ; AUTO RUN string
+L585D: LD A,001H
+ RST 018H
+ DB 050H
+ XOR A
+ LD (L109A),A
+ INC A
+ LD (L137A),A
+ LD (L1379),A
+ RST 018H
+ DB 056H
+ RET
+
+L586F: CALL L585D
+L5872: LD HL,L6403
+ LD (L004F),HL
+L5878: RST 018H
+ DB 002H
+ LD DE,L63F0
+ RST 018H
+ DB 005H
+ RST 018H
+ DB 001H
+L5881: LD A,(L63F6)
+ OR A
+ JR NZ,L5893 ; (+00cH)
+ LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ LD (09E64H),SP
+L5893: LD HL,L0000
+ LD (L9E51),HL
+ XOR A
+ LD (L108E),A
+ CALL L611D
+ RST 018H
+ DB 043H
+ LD DE,L11A4
+ RST 018H
+ DB 00CH
+ JR NC,L58B4 ; (+00bH)
+L58A9: LD HL,L611C
+ LD A,(HL)
+ OR A
+ LD (HL),000H
+ JR NZ,L5878 ; (-03aH)
+ JR L5881 ; (-033H)
+
+L58B4: CALL L79BC
+ OR A
+ JR Z,L5881 ; (-039H)
+ CALL L79F6
+ JP NC,L5FAD
+ LD HL,L9EB5
+ PUSH HL
+ CALL L8216
+ INC HL
+ LD (L9E4B),HL
+ CALL L61C5
+ POP HL
+ JR L58D4 ; (+003H)
+
+L58D1: CALL L797A
+L58D4: LD (09E64H),SP
+L58D8: LD DE,L58D1
+ PUSH DE
+L58DC: LD (L9E66),HL
+ CALL BRKCHK
+ JP Z,BREAKZ
+L58E5: LD A,(HL)
+ INC HL
+ CP 080H
+ JR NC,L593F ; (+054H)
+ CP 027H
+ JP Z,L67FE
+ CP 020H
+ JR Z,L58E5 ; (-00fH)
+ CP 03AH
+ JR Z,L58DC ; (-01cH)
+ OR A
+ JR Z,L5906 ; (+00bH)
+ DEC HL
+ SUB 041H
+ CP 01AH
+ JP C,L650D
+ JP L6364
+
+L5906: LD HL,(L9E4B)
+L5909: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L5928 ; (+018H)
+ LD (L108E),A
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ LD (L9E4B),HL
+ EX DE,HL
+ INC HL
+ CALL LDDEMI
+ LD (09E51H),DE
+ CALL L61E4
+ POP DE
+ JR L58D4 ; (-054H)
+
+L5928: POP HL
+ CALL L596B
+ JP Z,L5878
+ XOR A
+ LD (L63F6),A
+ LD A,(L9E54)
+ CP 002H
+ JP Z,06391H
+ PUSH HL
+ JP L60B9
+
+L593F: CP 0FFH
+ JP Z,L653F
+ LD DE,L5D1B
+ CP 0FEH
+ JR NZ,L594F ; (+004H)
+ LD A,(HL)
+ INC HL
+ JR L5957 ; (+008H)
+
+L594F: CP LSE0
+ JP NC,L6364
+ LD DE,L5C5B
+L5957: ADD A,A
+ PUSH HL
+ EX DE,HL
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ EX (SP),HL
+L5963: CALL HLFTCH
+L5966: OR A
+ RET Z
+ CP 03AH
+ RET
+
+L596B: PUSH HL
+ LD HL,(L9E51)
+ LD A,L
+ OR H
+ POP HL
+ RET
+
+CTBL1: DB "GOT", "O" | 080H ; CTBL1 - BASIC statement keyword text table
+ DB "GOSU", "B" | 080H
+ DB 080H
+ DB "RU", "N" | 080H
+ DB "RETUR", "N" | 080H
+ DB "RESTOR", "E" | 080H
+ DB "RESUM", "E" | 080H
+ DB "LIS", "T" | 080H
+ DB 080H
+ DB "DELET", "E" | 080H
+ DB "RENU", "M" | 080H
+ DB "AUT", "O" | 080H
+ DB "EDI", "T" | 080H
+ DB "FO", "R" | 080H
+ DB "NEX", "T" | 080H
+ DB "PRIN", "T" | 080H
+ DB 080H
+ DB "INPU", "T" | 080H
+ DB 080H
+ DB "I", "F" | 080H
+ DB "DAT", "A" | 080H
+ DB "REA", "D" | 080H
+ DB "DI", "M" | 080H
+ DB "RE", "M" | 080H
+ DB "EN", "D" | 080H
+ DB "STO", "P" | 080H
+ DB "CON", "T" | 080H
+ DB "CL", "S" | 080H
+ DB 080H
+ DB "O", "N" | 080H
+ DB "LE", "T" | 080H
+ DB "NE", "W" | 080H
+ DB "POK", "E" | 080H
+ DB "OF", "F" | 080H
+ DB "PMOD", "E" | 080H
+ DB "PSKI", "P" | 080H
+ DB "PLO", "T" | 080H
+ DB "PLIN", "E" | 080H
+ DB "RLIN", "E" | 080H
+ DB "PMOV", "E" | 080H
+ DB "RMOV", "E" | 080H
+ DB "TRO", "N" | 080H
+ DB "TROF", "F" | 080H
+ DB "INP", "@" | 080H
+ DB "DEFAUL", "T" | 080H
+ DB "GE", "T" | 080H
+ DB "PCOLO", "R" | 080H
+ DB "PHOM", "E" | 080H
+ DB "HSE", "T" | 080H
+ DB "GPRIN", "T" | 080H
+ DB "KE", "Y" | 080H
+ DB "AXI", "S" | 080H
+ DB "LOA", "D" | 080H
+ DB "SAV", "E" | 080H
+ DB "MERG", "E" | 080H
+ DB "CHAI", "N" | 080H
+ DB "CONSOL", "E" | 080H
+ DB "SEARC", "H" | 080H
+ DB "OUT", "@" | 080H
+ DB "PCIRCL", "E" | 080H
+ DB "PTES", "T" | 080H
+ DB "PAG", "E" | 080H
+ DB "WAI", "T" | 080H
+ DB "SWA", "P" | 080H
+ DB 080H
+ DB "ERRO", "R" | 080H
+ DB "ELS", "E" | 080H
+ DB "US", "R" | 080H
+ DB "BY", "E" | 080H
+ DB 080H
+ DB 080H
+ DB "DE", "F" | 080H
+ DB 080H
+ DB 080H
+ DB "LABE", "L" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "WOPE", "N" | 080H
+ DB "CLOS", "E" | 080H
+ DB "ROPE", "N" | 080H
+ DB "XOPE", "N" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "DI", "R" | 080H
+ DB 080H
+ DB 080H
+ DB "RENAM", "E" | 080H
+ DB "KIL", "L" | 080H
+ DB "LOC", "K" | 080H
+ DB "UNLOC", "K" | 080H
+ DB "INI", "T" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "T", "O" | 080H
+ DB "STE", "P" | 080H
+ DB "THE", "N" | 080H
+ DB "USIN", "G" | 080H
+ DB 080H
+ DB "AL", "L" | 080H
+ DB "TA", "B" | 080H
+ DB "SP", "C" | 080H
+ DB 080H
+ DB 080H
+ DB ".XO", "R" | 080H
+ DB ".O", "R" | 080H
+ DB ".AN", "D" | 080H
+ DB ".NO", "T" | 080H
+ DB ">", "<" | 080H
+ DB "<", ">" | 080H
+ DB "=", "<" | 080H
+ DB "<", "=" | 080H
+ DB "=", ">" | 080H
+ DB ">", "=" | 080H
+ DB "=" | 080H
+ DB ">" | 080H
+ DB "<" | 080H
+ DB "+" | 080H
+ DB "-" | 080H
+ DB "}" | 080H
+ DB ".MO", "D" | 080H
+ DB "/" | 080H
+ DB "*" | 080H
+ DB "^" | 080H
+ DB 0FFH
+GTABL: DB 080H ; GTABL - BASIC extended keyword text table
+ DB "CSE", "T" | 080H
+ DB "CRESE", "T" | 080H
+ DB "CCOLO", "R" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "SOUN", "D" | 080H
+ DB 080H
+ DB "NOIS", "E" | 080H
+ DB "BEE", "P" | 080H
+ DB 080H
+ DB 080H
+ DB "COLO", "R" | 080H
+ DB 080H
+ DB "SE", "T" | 080H
+ DB "RESE", "T" | 080H
+ DB "LIN", "E" | 080H
+ DB "BLIN", "E" | 080H
+ DB "PA", "L" | 080H
+ DB "CIRCL", "E" | 080H
+ DB "BO", "X" | 080H
+ DB "PAIN", "T" | 080H
+ DB "POSITIO", "N" | 080H
+ DB "PATTER", "N" | 080H
+ DB "HCOP", "Y" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "SYMBO", "L" | 080H
+ DB 080H
+ DB "MUSI", "C" | 080H
+ DB "TEMP", "O" | 080H
+ DB "CURSO", "R" | 080H
+ DB "VERIF", "Y" | 080H
+ DB "CL", "R" | 080H
+ DB "LIMI", "T" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "BOO", "T" | 080H
+ DB 0FFH
+CTBL2: DB "IN", "T" | 080H ; CTBL2 - BASIC function keyword text table
+ DB "AB", "S" | 080H
+ DB "SI", "N" | 080H
+ DB "CO", "S" | 080H
+ DB "TA", "N" | 080H
+ DB "L", "N" | 080H
+ DB "EX", "P" | 080H
+ DB "SQ", "R" | 080H
+ DB "RN", "D" | 080H
+ DB "PEE", "K" | 080H
+ DB "AT", "N" | 080H
+ DB "SG", "N" | 080H
+ DB "LO", "G" | 080H
+ DB "FRA", "C" | 080H
+ DB "PA", "I" | 080H
+ DB "RA", "D" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "STIC", "K" | 080H
+ DB "STRI", "G" | 080H
+ DB 080H
+ DB 080H
+ DB "CHR", "$" | 080H
+ DB "STR", "$" | 080H
+ DB "HEX", "$" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "SPACE", "$" | 080H
+ DB 080H
+ DB 080H
+ DB "AS", "C" | 080H
+ DB "LE", "N" | 080H
+ DB "VA", "L" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "ER", "N" | 080H
+ DB "ER", "L" | 080H
+ DB "SIZ", "E" | 080H
+ DB "CSR", "H" | 080H
+ DB "CSR", "V" | 080H
+ DB "POS", "H" | 080H
+ DB "POS", "V" | 080H
+ DB "LEFT", "$" | 080H
+ DB "RIGHT", "$" | 080H
+ DB "MID", "$" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "TI", "$" | 080H
+ DB "POIN", "T" | 080H
+ DB "EO", "F" | 080H
+ DB "F", "N" | 080H
+ DB 0FFH
+L5C5B: DW L69AF ; SJPTBL - Statement keyword dispatch address table
+ DW L692A
+ DW L6364
+ DW L606E
+ DW L68F9
+ DW L6E9E
+ DW L64B6
+ DW 06A9DH
+ DW L6364
+ DW L620C
+ DW L62AB
+ DW L60CA
+ DW L6125
+ DW L6602
+ DW L6699
+ DW L6C9F
+ DW L6364
+ DW L6DD4
+ DW L6364
+ DW L69C2
+ DW L67FE
+ DW L6DCD
+ DW L8DCC
+ DW L67FE
+ DW L60B9
+ DW L6468
+ DW L6499
+ DW L7972
+ DW L6364
+ DW L6952
+ DW L650D
+ DW L618E
+ DW L68A1
+ DW L6364
+ DW LA015
+ DW LA07A
+ DW LA428
+ DW LA0BC
+ DW 0A0BFH
+ DW 0A0C2H
+ DW 0A0C5H
+ DW L61CC
+ DW L61DF
+ DW L681F
+ DW L6F41
+ DW L686C
+ DW LA12A
+ DW LA15F
+ DW 0A162H
+ DW LA16D
+ DW L6B84
+ DW LA1D5
+ DW L6FFD
+ DW L73C0
+ DW L7068
+ DW L7053
+ DW L6A61
+ DW L6A9B
+ DW L680A
+ DW LA215
+ DW LA3E3
+ DW LA3F1
+ DW L67EE
+ DW L74A6
+ DW L6364
+ DW L63F8
+ DW L69E4
+ DW L67A4
+ DW L6A59
+ DW L6364
+ DW L6364
+ DW L6C31
+ DW L6364
+ DW L6364
+ DW L67FE
+ DW L6364
+ DW L6364
+ DW L6364
+ DW 06F59H
+ DW L6F8A
+ DW L6F56
+ DW 06F5CH
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L7424
+ DW L6364
+ DW L6364
+ DW L744B
+ DW 06F8BH
+ DW 07418H
+ DW L7416
+ DW L6F47
+ DW L6364
+ DW L6364
+ DW L6364
+L5D1B: DW L6364 ; GJPTBL - Extended keyword dispatch address table
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L9BAC
+ DW L6364
+ DW L9BE3
+ DW L6A56
+ DW L6364
+ DW L6364
+ DW L7675
+ DW L6364
+ DW L7592
+ DW 07593H
+ DW L75A1
+ DW 075A2H
+ DW L7619
+ DW L774C
+ DW L7648
+ DW L76FD
+ DW L75F5
+ DW L75C4
+ DW L7968
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L790F
+ DW L6364
+ DW 09BE6H
+ DW L9BD9
+ DW L683B
+ DW L73A9
+ DW L619B
+ DW L68B5
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6A95
+L5D79: DW L95C2 ; FJPTBL - Function keyword dispatch address table
+ DW L95BD
+ DW L9709
+ DW L96F9
+ DW L97E8
+ DW L9A4F
+ DW L992B
+ DW L961F
+ DW L98E6
+ DW L98DA
+ DW L963D
+ DW L98A0
+ DW L9A43
+ DW L7BC0
+ DW L98B8
+ DW L98B3
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L9060
+ DW L907F
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L8931
+ DW L88F0
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L8913
+ DW L6364
+ DW L6364
+ DW L8992
+ DW L899C
+ DW L89A4
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L887A
+ DW L8888
+ DW L8852
+ DW L8864
+ DW L8869
+ DW L886E
+ DW L8874
+ DW L89B6
+ DW L89D3
+ DW L89F0
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L8A46
+ DW L896C
+ DW L893F
+ DW L8FBF
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+ DW L6364
+L5E19: CALL TEST1
+ DB 00CH
+ JR NZ,L5E25 ; (+006H)
+ CALL LDDEMI
+ OR 0FFH
+ RET
+
+L5E25: INC HL
+ CP 00BH
+ JR NZ,L5E49 ; (+01fH)
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD A,E
+ OR D
+ RET Z
+ EX DE,HL
+ CALL L5E78
+ JP C,06385H
+ EX DE,HL
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00CH
+ INC HL
+ INC HL
+ INC HL
+ OR 0FFH
+ LD (L5FAC),A
+ RET
+
+L5E49: CP 022H
+ JP NZ,L6364
+ LD (05EBFH),HL
+ LD B,000H
+L5E53: LD A,(HL)
+ OR A
+ JR Z,L5E5F ; (+008H)
+ INC HL
+ CP 022H
+ JR Z,L5E5F ; (+003H)
+ INC B
+ JR L5E53 ; (-00cH)
+
+L5E5F: LD A,B
+ OR A
+ JP Z,L6364
+ LD (05EBDH),A
+ EX DE,HL
+ CALL L5E72
+ JP C,06385H
+ EX DE,HL
+ OR 0FFH
+ RET
+
+L5E72: PUSH BC
+ LD BC,L5EAB
+ JR L5E7C ; (+004H)
+
+L5E78: PUSH BC
+ LD BC,L5E9F
+L5E7C: LD (05E92H),BC
+ PUSH DE
+ EX DE,HL
+ LD HL,(L1070)
+L5E85: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ LD A,B
+ OR C
+ SCF
+ JR Z,L5E9C ; (+00fH)
+ DEC HL
+ PUSH HL
+ ADD HL,BC
+ EX (SP),HL
+ CALL L0000
+ JR C,L5E9B ; (+005H)
+ JR Z,L5E9B ; (+003H)
+ POP HL
+ JR L5E85 ; (-016H)
+
+L5E9B: POP DE
+L5E9C: POP DE
+ POP BC
+ RET
+
+L5E9F: INC HL
+ INC HL
+ INC HL
+ LD A,D
+ CP (HL)
+ RET NZ
+ DEC HL
+ LD A,E
+ CP (HL)
+ DEC HL
+ DEC HL
+ RET
+
+L5EAB: PUSH HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ CALL TEST1
+ DB 0CAH
+ JR NZ,L5ECF ; (+019H)
+ CALL TEST1
+ DB 022H
+ JR NZ,L5ECF ; (+013H)
+ LD B,000H
+ LD DE,L0000
+L5EC1: LD A,(DE)
+ CP (HL)
+ JR NZ,L5ECF ; (+00aH)
+ INC HL
+ INC DE
+ DJNZ L5EC1 ; (-008H)
+ LD A,(HL)
+ CP 022H
+ JR Z,L5ECF ; (+001H)
+ OR A
+L5ECF: SCF
+ CCF
+ POP HL
+ RET
+
+L5ED3: LD DE,L0000
+ LD BC,0FFFFH
+ CALL L5F15
+ RET Z
+ CP 02DH
+ JR Z,L5EFD ; (+01cH)
+ CP 02EH
+ LD DE,(09E4DH)
+ JR Z,L5EF0 ; (+007H)
+ CALL TESTX
+ DB 00BH
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L5EF0: INC HL
+ CALL L5F15
+ JR Z,L5EFA ; (+004H)
+ CP 02DH
+ JR Z,L5EFD ; (+003H)
+L5EFA: LD C,E
+ LD B,D
+ RET
+
+L5EFD: INC HL
+ CALL L5F15
+ RET Z
+ CP 02EH
+ JR NZ,L5F0C ; (+006H)
+ LD BC,(09E4DH)
+ INC HL
+ RET
+
+L5F0C: CALL TESTX
+ DB 00BH
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ RET
+
+L5F15: CALL L5963
+ RET Z
+ CP 02CH
+ RET
+
+L5F1C: CALL PUSHR
+ LD A,0FFH
+ LD (L5FAC),A
+ LD HL,L5F72
+ JR L5F3B ; (+012H)
+
+L5F29: CALL PUSHR
+ CALL L60A2
+L5F2F: LD A,(L5FAC)
+ OR A
+ RET Z
+ XOR A
+ LD (L5FAC),A
+ LD HL,L5F58
+L5F3B: LD (05F56H),HL
+ LD HL,(L1070)
+ DEC HL
+L5F42: INC HL
+ LD A,(HL)
+ INC HL
+ OR (HL)
+ RET Z
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (05FA1H),DE
+L5F4F: CALL L6A0A
+ OR A
+ JR Z,L5F42 ; (-013H)
+ JP L0000
+
+L5F58: CP 00CH
+ JR NZ,L5F4F ; (-00dH)
+ DEC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH HL
+ EX DE,HL
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00BH
+ INC HL
+ INC HL
+ JR L5F4F ; (-023H)
+
+L5F72: CP 00BH
+ JR NZ,L5F4F ; (-027H)
+ DEC HL
+ PUSH HL
+ CALL INDRCT
+ LD E,L
+ LD D,H
+ LD A,L
+ OR H
+ JR Z,L5FA8 ; (+027H)
+ CALL L5E78
+ JR C,L5F91 ; (+00bH)
+ EX DE,HL
+ POP HL
+ DEC HL
+ LD (HL),00CH
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ JR L5F4F ; (-042H)
+
+L5F91: PUSH DE
+ LD A,010H
+ RST 018H
+ DB 01BH
+ LD A,020H
+ RST 018H
+ DB 003H
+ POP HL
+ CALL L7998
+ RST 018H
+ DB 005H
+ LD HL,L0000
+ CALL L63D6
+ RST 018H
+ DB 002H
+L5FA8: POP HL
+ INC HL
+ JR L5F4F ; (-05dH)
+
+L5FAC: NOP
+L5FAD: RST 018H
+ DB 028H
+ CALL L5F29
+ CALL L8532
+ LD A,B
+ OR C
+ JP Z,L5881
+ LD (09E4DH),BC
+ LD A,(DE)
+ CP 020H
+ JR NZ,L5FC4 ; (+001H)
+ INC DE
+L5FC4: PUSH AF
+ LD HL,L9EB5
+ CALL L8216
+ PUSH HL
+ LD HL,(L9E4D)
+ LD E,L
+ LD D,H
+ CALL L622C
+ POP HL
+ POP AF
+ OR A
+ JR Z,L5FEB ; (+012H)
+ LD DE,L9EB5
+ OR A
+ SBC HL,DE
+ LD DE,00005H
+ ADD HL,DE
+ LD B,H
+ LD C,L
+ LD HL,L9EB5
+ CALL L6003
+L5FEB: LD A,(L611C)
+ OR A
+ JP Z,L5881
+ LD DE,(09E4FH)
+ LD HL,(L9E4D)
+ ADD HL,DE
+ LD (L9E4D),HL
+ JP NC,L5881
+ JP L58A9
+
+L6003: LD (06065H),HL
+ PUSH BC
+ LD BC,(09E4DH)
+ LD HL,(L1070)
+ JR L6014 ; (+004H)
+
+L6010: CALL LDDEMD
+ ADD HL,DE
+L6014: CALL LDDEMD
+ LD A,D
+ OR E
+ JR Z,L6028 ; (+00dH)
+ INC HL
+ INC HL
+ CALL LDDEMD
+ EX DE,HL
+ SBC HL,BC
+ DEC DE
+ DEC DE
+ EX DE,HL
+ JR C,L6010 ; (-018H)
+L6028: POP DE
+ PUSH HL
+ PUSH DE
+ LD HL,00028H
+ ADD HL,DE
+ LD BC,(VARED)
+ LD (TMPEND),BC
+ ADD HL,BC
+ JP C,L63A7
+ EX DE,HL
+ CALL L8C08
+ POP DE
+ RST 018H
+ DB 018H
+ POP HL
+ PUSH DE
+ PUSH BC
+ EX (SP),HL
+ POP BC
+ PUSH HL
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ LD DE,(VARED)
+ INC BC
+ LDDR
+ INC HL
+ POP BC
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ LD DE,(09E4DH)
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ EX DE,HL
+ LD HL,L9EB5
+ DEC BC
+ DEC BC
+ DEC BC
+ DEC BC
+ LDIR
+ RET
+
+L606E: JR Z,L6079 ; (+009H)
+ CALL L69DE
+ JP Z,L69AF
+ JP L716B
+
+L6079: CALL L619B
+L607C: CALL L6090
+ LD DE,(TEXTST)
+ LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ PUSH HL
+ EX DE,HL
+ JP L5909
+
+L6090: PUSH HL
+ CALL L60A2
+ LD (L611C),A
+ LD HL,0000AH
+ LD (L9E4D),HL
+ LD (L9E4F),HL
+ POP HL
+ RET
+
+L60A2: LD HL,L0000
+ LD (L9E55),HL
+ XOR A
+ LD (L9E5D),A
+ LD (L63F6),A
+ LD (L9E54),A
+ LD (L9E53),A
+ LD (L9E68),A
+ RET
+
+L60B9: LD A,(L9E68)
+ OR A
+ JP NZ,L750C
+ RST 018H
+ DB 028H
+ XOR A
+ LD (L63F6),A
+ POP BC
+ JP L5878
+
+L60CA: CALL L7340
+ LD DE,0000AH
+ LD BC,0000AH
+ JR Z,L6103 ; (+02eH)
+ CP 02CH
+ JR NZ,L60E4 ; (+00bH)
+ INC HL
+ CALL L8551
+ LD B,D
+ LD C,E
+ LD DE,0000AH
+ JR L6103 ; (+01fH)
+
+L60E4: CP 02EH
+ LD DE,(09E4DH)
+ JR Z,L60F5 ; (+009H)
+ CP 00BH
+ JP NZ,L6364
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L60F5: INC HL
+ CALL TEST1
+ DB 02CH
+ JR NZ,L6103 ; (+007H)
+ PUSH DE
+ CALL L8551
+ LD C,E
+ LD B,D
+ POP DE
+L6103: CALL L797A
+ LD A,C
+ OR B
+ JP Z,0636AH
+ LD (09E4DH),DE
+ LD (09E4FH),BC
+ LD A,001H
+ LD (L611C),A
+ POP AF
+ JP L5881
+
+L611C: NOP
+L611D: LD A,(L611C)
+ OR A
+ RET Z
+ XOR A
+ JR L612B ; (+006H)
+
+L6125: CALL L612B
+ JP L5881
+
+L612B: LD DE,(09E4DH)
+ CALL NZ,L5ED3
+ PUSH DE
+ EX DE,HL
+ CALL L5E78
+ POP DE
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ JR NC,L6141 ; (+003H)
+ LD HL,.NOP
+L6141: EX DE,HL
+ PUSH DE
+ LD (L9E4D),HL
+ CALL L7998
+ RST 018H
+ DB 005H
+ LD A,020H
+ RST 018H
+ DB 003H
+ POP HL
+ LD DE,L11A4
+ PUSH DE
+ CALL L8401
+ POP DE
+ LD B,000H
+L615A: LD A,(DE)
+ OR A
+ JR Z,L6164 ; (+006H)
+ INC B
+ RST 018H
+ DB 004H
+ INC DE
+ JR L615A ; (-00aH)
+
+L6164: LD A,B
+ OR A
+ RET Z
+ LD A,014H
+ RST 018H
+ DB 003H
+ DJNZ 06168H ; (-005H)
+ RET
+
+L616E: PUSH DE
+ LD DE,0FFF0H
+ ADD HL,DE
+ POP DE
+ LD (L107E),HL
+ DEC H
+ LD (L107C),HL
+ XOR A
+ LD (L9E68),A
+ RET
+
+L6180: LD HL,(L1070)
+ CALL L61C5
+ LD (L1072),HL
+ CALL L6090
+ JR L619B ; (+00dH)
+
+L618E: CALL TEST1
+ DB 09DH
+ CALL Z,L9FCF
+ CALL L6180
+ JP L5872
+
+L619B: PUSH HL
+ CALL L61AC
+ POP HL
+ RST 018H
+ DB 028H
+ RET
+
+L61A3: LD HL,(L1070)
+ CALL L61C5
+ LD (L1072),HL
+L61AC: LD HL,(L1072)
+ LD (HL),000H
+ INC HL
+ LD (L1074),HL
+ LD (HL),000H
+ INC HL
+ LD (L1076),HL
+ CALL L61C5
+ LD (L1078),HL
+ LD (L107A),HL
+ RET
+
+L61C5: LD (HL),000H
+ INC HL
+ LD (HL),000H
+ INC HL
+ RET
+
+L61CC: CALL L5963
+ LD A,001H
+ JR Z,L61E0 ; (+00dH)
+ CALL TESTX
+ DB 0FBH
+ CALL TESTX
+ DB 050H
+ LD A,002H
+ JR L61E0 ; (+001H)
+
+L61DF: XOR A
+L61E0: LD (061E5H),A
+ RET
+
+L61E4: LD A,000H
+ OR A
+ RET Z
+ DEC A
+ LD (L1091),A
+ JR Z,L61F5 ; (+007H)
+ LD A,(L1097)
+ CP 002H
+ JR Z,L6207 ; (+012H)
+L61F5: PUSH HL
+ LD A,05BH
+ RST 018H
+ DB 009H
+ LD HL,(L9E51)
+ CALL L7998
+ RST 018H
+ DB 00BH
+ LD A,05DH
+ RST 018H
+ DB 009H
+ POP HL
+L6207: XOR A
+ LD (L1091),A
+ RET
+
+L620C: CALL L5F15
+ JP Z,L6364
+ CALL L69DE
+ JR Z,L6220 ; (+009H)
+ CP 02DH
+ JR Z,L6220 ; (+005H)
+ CP 02EH
+ JP NZ,L7443
+L6220: CALL L5ED3
+ EX DE,HL
+ LD E,C
+ LD D,B
+ CALL L622C
+ JP L5878
+
+L622C: PUSH AF
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ CALL L5F29
+ LD C,L
+ LD B,H
+ LD HL,(L1070)
+L6238: CALL LDDEMI
+ LD A,E
+ OR D
+ JR NZ,L6247 ; (+008H)
+L623F: POP DE
+ POP HL
+ POP BC
+ POP AF
+ RET
+
+L6244: POP DE
+ JR L623F ; (-008H)
+
+L6247: EX DE,HL
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ LD (06261H),HL
+ SBC HL,BC
+ POP HL
+ JR C,L6238 ; (-021H)
+ DB 01BH
+ DEC DE
+ DEC DE
+ POP BC
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD HL,L0000
+ SBC HL,BC
+ POP HL
+ JR Z,L6286 ; (+01eH)
+ JR NC,L6244 ; (-026H)
+L626A: CALL LDDEMI
+ LD A,D
+ OR E
+ JR Z,L6284 ; (+013H)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ DEC DE
+ DEC DE
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ SBC HL,BC
+ POP HL
+ JR C,L626A ; (-016H)
+ JR Z,L6286 ; (+004H)
+ EX DE,HL
+ DEC HL
+L6284: DEC HL
+ DEC HL
+L6286: POP DE
+ PUSH DE
+ PUSH HL
+ OR A
+ EX DE,HL
+ SBC HL,DE
+ EX DE,HL
+ LD BC,(VARED)
+ RST 018H
+ DB 018H
+ POP DE
+ LD H,B
+ LD L,C
+ OR A
+ SBC HL,DE
+ LD B,H
+ LD C,L
+ EX DE,HL
+ POP DE
+ LDIR
+ JR L623F ; (-063H)
+
+L62A2: CALL L8551
+ LD A,D
+ OR E
+ RET NZ
+ JP 0636AH
+
+L62AB: CALL L7340
+ LD DE,0000AH
+ LD (0632AH),DE
+ LD (06341H),DE
+ LD E,000H
+ LD (06319H),DE
+ JR Z,L62F4 ; (+033H)
+ CP 02CH
+ JR Z,L62D5 ; (+010H)
+ CALL L62A2
+ LD (0632AH),DE
+ CALL L5963
+ JR Z,L62F4 ; (+023H)
+ CALL L79B1
+ DEC HL
+L62D5: CALL INCHLF
+ CP 02CH
+ JR Z,L62EC ; (+010H)
+ CALL L62A2
+ LD (06319H),DE
+ CALL L5963
+ JR Z,L62F4 ; (+00cH)
+ CALL L79B1
+ DEC HL
+L62EC: INC HL
+ CALL L62A2
+ LD (06341H),DE
+L62F4: PUSH HL
+ LD HL,(06319H)
+ EX DE,HL
+ LD HL,(0632AH)
+ OR A
+ SBC HL,DE
+ JP C,0636AH
+ CALL L5F1C
+ LD HL,(L1070)
+L6308: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L634A ; (+03bH)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ EX DE,HL
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ PUSH HL
+ LD HL,L0000
+ OR A
+ SBC HL,BC
+ POP HL
+ JR Z,L6326 ; (+005H)
+ JR C,L6326 ; (+003H)
+ EX DE,HL
+ JR L6308 ; (-01eH)
+
+L6326: DEC HL
+ DEC HL
+ DEC HL
+ LD BC,L0000
+ OR A
+ PUSH AF
+L632E: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L634A ; (+015H)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ EX DE,HL
+ POP AF
+ JR C,L6350 ; (+014H)
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ LD HL,L0000
+ ADD HL,BC
+ PUSH AF
+ LD C,L
+ LD B,H
+ EX DE,HL
+ JR L632E ; (-01cH)
+
+L634A: POP AF
+ CALL L5F2F
+ POP HL
+ RET
+
+L6350: LD HL,0000AH
+ LD (06341H),HL
+ LD (0632AH),HL
+ LD L,000H
+ LD (06319H),HL
+ CALL L62F4
+ JP 0636AH
+
+L6364: LD A,001H
+ LD HL,L023E
+ LD HL,0033EH
+ LD HL,L043E
+ LD HL,L053E
+ LD HL,L063E
+ LD HL,0073EH
+ LD HL,0083EH
+ LD HL,L0D3E
+ LD HL,L0E3E
+ LD HL,00F3EH
+ LD HL,L103E
+ LD HL,L113E
+ LD HL,L123E
+ LD HL,L133E
+ LD HL,L143E
+ LD HL,L153E
+ LD HL,L163E
+ LD HL,L183E
+ LD HL,L193E
+ LD HL,L3A3E
+ LD HL,L403E
+ JR L63B5 ; (+00eH)
+
+L63A7: LD A,006H
+L63A9: LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ LD (09E64H),SP
+L63B5: JR L63D3 ; (+01cH)
+
+L63B7: LD HL,(.$LPT)
+ LD IX,(.$CRT)
+ LD (L1044),HL
+ XOR A
+ LD (L1051),A
+ LD A,0C4H
+ LD HL,0BB3EH
+ LD HL,L3B3E
+ LD HL,0BC3EH
+ LD HL,0BD3EH
+L63D3: JP ERRORJ
+
+L63D6: LD A,L
+ OR H
+ RET Z
+ LD DE,L63E4
+ RST 018H
+ DB 005H
+ CALL L7998
+ DB 0DFH
+ DB 005H
+ DB 0C9H
+L63E4: DB " IN ",000H
+L63E9: DB 042H,005H,"REAK",000H
+L63F0: DB 052H
+ DB 005H
+ DB 045H
+ LD B,C
+ LD B,H
+ LD E,C
+L63F6: NOP
+ NOP
+L63F8: CALL L853D
+ DEC A
+ CP 046H
+ JR C,L6402 ; (+002H)
+ LD A,044H
+L6402: INC A
+L6403: LD SP,(09E64H)
+ PUSH AF
+ RST 018H
+ DB 043H
+ CALL L737C
+ POP AF
+ OR A
+ JR Z,L6463 ; (+052H)
+ CP 080H
+ JR Z,L6461 ; (+04cH)
+ LD C,A
+ LD HL,L0000
+ LD (L9048),HL
+ CALL L596B
+ LD A,C
+ JR Z,L644C ; (+02aH)
+ LD HL,(L9E51)
+ LD (L9E55),HL
+ LD (L9E4D),HL
+ LD HL,(L9E4B)
+ LD (L9E57),HL
+ LD HL,(L9E66)
+ LD (L9E59),HL
+ AND 07FH
+ LD (L9E53),A
+ LD A,(L9E54)
+ INC A
+ CP 002H
+ JR Z,L6457 ; (+013H)
+ XOR A
+ LD (L63F6),A
+ LD (L9E68),A
+ LD A,C
+L644C: RST 018H
+ DB 01BH
+L644E: LD HL,(L9E51)
+ CALL L63D6
+ JP L5878
+
+L6457: LD (L9E54),A
+ LD HL,(09E5BH)
+ PUSH HL
+ JP L5909
+
+L6461: LD A,02EH
+L6463: LD HL,(L9E66)
+ JR L646B ; (+003H)
+
+L6468: LD A,02EH
+ POP DE
+L646B: PUSH AF
+ PUSH HL
+ RST 018H
+ DB 002H
+ RST 018H
+ DB 020H
+ LD DE,L63E9
+ RST 018H
+ DB 005H
+ POP HL
+ CALL L596B
+ JR Z,L6495 ; (+019H)
+ LD (064B1H),HL
+ LD HL,(L9E4B)
+ LD (064ABH),HL
+ LD HL,(L9E51)
+ LD (064A5H),HL
+ LD (L9E4D),HL
+ POP AF
+ LD (L63F6),A
+ JP L644E
+
+L6495: POP AF
+ JP L5878
+
+L6499: POP DE
+ LD HL,L63F6
+ LD A,(HL)
+ OR A
+ JP Z,06388H
+ LD (HL),000H
+ LD HL,L0000
+ LD (L9E51),HL
+ LD HL,L0000
+ LD (L9E4B),HL
+ LD HL,L0000
+ JP L58D4
+
+L64B6: LD A,(L9E54)
+ CP 002H
+ JP C,06394H
+ DEC A
+ LD (L9E54),A
+ CALL L5963
+ EX DE,HL
+ LD HL,(L9E55)
+ LD (L9E51),HL
+ LD HL,(L9E57)
+ LD (L9E4B),HL
+ LD HL,(L9E59)
+ JR NZ,L64DB ; (+004H)
+ POP BC
+ JP L58D8
+
+L64DB: CP 08EH
+ JP Z,L67FE
+ EX DE,HL
+ JP L69AF
+
+L64E4: CALL TESTX
+ DB 080H
+ CALL L5E19
+ JR Z,L64F7 ; (+00aH)
+ LD (09E5BH),DE
+ LD A,001H
+L64F3: LD (L9E54),A
+ RET
+
+L64F7: LD A,(L9E54)
+ DEC A
+ JR Z,L64F3 ; (-00aH)
+ XOR A
+ LD (L9E54),A
+ LD HL,(L9E55)
+ LD (L9E51),HL
+ LD A,(L9E53)
+ JP L6403
+
+L650D: CALL TEST1
+ DB 0FFH
+ JP Z,L653F
+ CALL L8B56
+ PUSH BC
+ PUSH BC
+ PUSH AF
+ CALL TESTX
+ DB SIOAD
+ CALL L857C
+ POP BC
+ LD A,(L9E9C)
+ CP B
+ JP NZ,0636DH
+ EX (SP),HL
+ EX DE,HL
+ CP 005H
+ JR Z,L6537 ; (+008H)
+ PUSH BC
+ CALL L654A
+ POP AF
+ POP HL
+ POP BC
+ RET
+
+L6537: LD C,A
+ LD B,000H
+ LDIR
+ POP HL
+ POP BC
+ RET
+
+L653F: CALL TESTX
+ DB 0C4H
+ JP L8AE2
+
+L6546: PUSH DE
+ EX DE,HL
+ JR L654E ; (+004H)
+
+L654A: PUSH DE
+ CALL L8570
+L654E: LD HL,L11A3
+ LD (HL),A
+ LD B,A
+ LD C,A
+ INC HL
+ CALL LDHLDE
+ POP HL
+ LD A,(HL)
+ CP C
+ JR Z,L659F ; (+042H)
+ PUSH HL
+ OR A
+ CALL NZ,L65AF
+ POP HL
+ LD A,(L11A3)
+ OR A
+ JR Z,L659C ; (+033H)
+ PUSH HL
+ LD BC,(VARST)
+ SBC HL,BC
+ EX DE,HL
+ LD HL,(L1078)
+ DEC HL
+ DEC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD BC,(STRST)
+ OR A
+ POP DE
+ PUSH HL
+ SBC HL,BC
+ EX DE,HL
+ LD (HL),A
+ LD B,A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ POP HL
+ LD DE,L11A3
+ INC DE
+ CALL L8BFC
+ CALL L61C5
+ LD (L107A),HL
+ LD (L1078),HL
+ RET
+
+L659C: LD (HL),000H
+ RET
+
+L659F: INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ LD DE,L11A3
+ LD B,C
+ INC DE
+ JP L8BFC
+
+L65AF: LD C,(HL)
+ LD B,000H
+ INC BC
+ INC BC
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ LD E,L
+ LD D,H
+ ADD HL,BC
+ PUSH BC
+ PUSH DE
+ EX DE,HL
+ LD HL,(L1078)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ EX DE,HL
+ POP DE
+ PUSH DE
+ JR Z,L65D3 ; (+002H)
+ LDIR
+L65D3: POP DE
+ POP BC
+ LD HL,(L1078)
+ OR A
+ SBC HL,BC
+ LD (L1078),HL
+ EX DE,HL
+L65DF: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ RET Z
+ LD HL,(L1074)
+ ADD HL,DE
+ LD A,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ OR A
+ EX DE,HL
+ SBC HL,BC
+ EX DE,HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ PUSH BC
+ LD C,A
+ LD B,000H
+ LD HL,(L1076)
+ ADD HL,DE
+ ADD HL,BC
+ POP BC
+ JR L65DF ; (-023H)
+
+L6602: POP BC
+ LD (06697H),BC
+ CALL L650D
+ LD IX,L0000
+ ADD IX,SP
+ LD (06679H),HL
+ CALL L6772
+ LD (06675H),BC
+L661A: LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JR NZ,L6642 ; (+01aH)
+ LD E,(IX+006H)
+ LD D,(IX+007H)
+ EX DE,HL
+ OR A
+ SBC HL,BC
+ JR Z,L663B ; (+007H)
+ LD DE,L0012
+ ADD IX,DE
+ JR L661A ; (-021H)
+
+L663B: DB 011H
+ LD (DE),A
+ NOP
+ ADD IX,DE
+ LD SP,IX
+L6642: LD HL,(06679H)
+ CALL TESTX
+ DB LSE0
+ CALL L857C
+ PUSH AF
+ PUSH HL
+ EX DE,HL
+ LD DE,L677E
+ CALL L79C5
+ POP HL
+ POP AF
+ CP LSE1
+ LD DE,L7C45
+ JR NZ,L6662 ; (+004H)
+ INC HL
+ CALL L857C
+L6662: LD (06679H),HL
+ LD HL,0FFF6H
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ CALL L79C5
+ LD HL,L677E
+ CALL L79C5
+ LD HL,L0000
+ PUSH HL
+ LD HL,L0000
+ PUSH HL
+ LD HL,(L9E4B)
+ PUSH HL
+ LD HL,0FF12H
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(TMPEND)
+ SBC HL,DE
+ LD A,00BH
+ JP C,L63A9
+ LD HL,(06679H)
+ JP L0000
+
+L6699: LD A,005H
+ LD (L9E9C),A
+ POP BC
+ LD (0670EH),BC
+L66A3: PUSH AF
+ POP BC
+ LD (06679H),HL
+ LD IX,L0000
+ ADD IX,SP
+ LD (066FDH),IX
+ LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JP NZ,0637CH
+ PUSH BC
+ POP AF
+ JR NZ,L6724 ; (+05fH)
+ LD E,(IX+004H)
+ LD D,(IX+005H)
+ EX DE,HL
+ LD (0670BH),HL
+ LD E,(IX+006H)
+ LD D,(IX+007H)
+ LD HL,(L1074)
+ ADD HL,DE
+ LD BC,00008H
+ ADD IX,BC
+ PUSH IX
+ POP DE
+ CALL L90BC
+ INC DE
+ LD A,(DE)
+ LD IX,(066FDH)
+ LD DE,0000DH
+ ADD IX,DE
+ PUSH IX
+ POP DE
+ BIT 7,A
+ JR NZ,L66F7 ; (+001H)
+ EX DE,HL
+L66F7: CALL L9153
+ JR C,L6710 ; (+014H)
+ LD SP,L0000
+ LD HL,00002H
+ ADD HL,SP
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ LD (L9E4B),HL
+ LD HL,L0000
+L670D: JP L0000
+
+L6710: LD DE,L0012
+ LD HL,(066FDH)
+ ADD HL,DE
+ LD SP,HL
+ LD HL,(06679H)
+ CALL TEST1
+ DB 02CH
+ JR NZ,L670D ; (-014H)
+ LD (06679H),HL
+L6724: LD IX,L0000
+ ADD IX,SP
+ LD (066FDH),IX
+ LD HL,(06679H)
+ CALL TEST1
+ DB 02CH
+ JP Z,L66A3
+ CALL L8B56
+ LD (06679H),HL
+ CALL L6772
+ LD IX,(066FDH)
+L6745: LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JP NZ,0637CH
+ LD L,(IX+006H)
+ LD H,(IX+007H)
+ OR A
+ SBC HL,BC
+ LD HL,(06679H)
+ JP Z,L66A3
+ LD DE,L0012
+ ADD IX,DE
+ LD (066FDH),IX
+ LD SP,(066FDH)
+ JR L6745 ; (-02dH)
+
+L6772: LD H,B
+ LD L,C
+ LD BC,(VARST)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ RET
+
+L677E: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L6787: CALL L6A0A
+ OR A
+ RET NZ
+ INC HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ INC HL
+ LD (06786H),DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (06784H),DE
+ POP DE
+ SCF
+ RET Z
+ JR L6787 ; (-01dH)
+
+L67A4: CALL L79A6
+ CALL L8551
+ LD (067DDH),DE
+ CALL TEST1
+ DB 02CH
+ JR NZ,L67CF ; (+01bH)
+ CALL L857C
+ CALL L9036
+ LD (067D2H),DE
+ CALL TEST1
+ DB 02CH
+ JR NZ,L67CF ; (+00bH)
+ CALL L8B56
+ CALL L9036
+ LD (067E5H),BC
+ XOR A
+L67CF: PUSH HL
+ PUSH AF
+ LD HL,L0000
+ CALL L8570
+ LD IX,ERRORJ
+ XOR A
+ CALL L0000
+ POP AF
+ JR NZ,L67EA ; (+008H)
+ LD A,B
+ EX DE,HL
+ LD DE,L0000
+ CALL L6546
+L67EA: POP HL
+ JP L79AA
+
+L67EE: CALL L8551
+L67F1: LD A,D
+ OR E
+ RET Z
+ LD B,0FBH
+L67F6: DJNZ L67F6 ; (-002H)
+ RST 018H
+ DB 00EH
+ RET Z
+ DEC DE
+ JR L67F1 ; (-00dH)
+
+L67FE: DEC HL
+L67FF: CALL L6A0A
+ OR A
+ SCF
+ RET Z
+ CP 03AH
+ RET Z
+ JR L67FF ; (-00bH)
+
+L680A: CALL L853D
+ SUB LSE0
+ CP 007H
+ JP C,0636AH
+ CALL L79B1
+ PUSH DE
+ CALL L853D
+ POP BC
+ OUT (C),A
+ RET
+
+L681F: CALL L853D
+ CALL L79B1
+ PUSH DE
+ CALL L8B56
+ CP 005H
+ JP NZ,0636DH
+ EX (SP),HL
+ PUSH BC
+ EX (SP),HL
+ POP BC
+ IN E,(C)
+ LD D,000H
+ CALL L79CB
+ POP HL
+ RET
+
+L683B: CALL L6843
+ EX DE,HL
+ RST 018H
+ DB 012H
+ EX DE,HL
+ RET
+
+L6843: LD B,018H
+ LD C,027H
+ LD A,(L137A)
+ CP 003H
+ JR C,L6850 ; (+002H)
+ LD C,04FH
+L6850: CALL L6857
+ JP C,0636AH
+ RET
+
+L6857: PUSH BC
+ CALL L853D
+ PUSH AF
+ CALL L79B1
+ CALL L853D
+ LD D,E
+ POP AF
+ LD E,A
+ POP BC
+ LD A,C
+ CP E
+ RET C
+ LD A,B
+ CP D
+ RET
+
+L686C: CALL L8B56
+ LD (L9E9C),A
+ CP 005H
+ JR Z,L688B ; (+015H)
+ PUSH HL
+ PUSH BC
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ OR A
+ JR Z,L6885 ; (+006H)
+ LD HL,(L107A)
+ LD (HL),A
+ LD A,001H
+L6885: POP DE
+ CALL L6546
+ POP HL
+ RET
+
+L688B: PUSH HL
+ PUSH BC
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ SUB 030H
+ CP 00AH
+ JR C,L6898 ; (+001H)
+ XOR A
+L6898: LD E,A
+ LD D,000H
+ POP HL
+ CALL L79CB
+ POP HL
+ RET
+
+L68A1: CALL L8551
+ CALL L79B4
+L68A7: PUSH DE
+ CALL L853D
+ POP DE
+ LD (DE),A
+ INC DE
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ JR L68A7 ; (-00eH)
+
+L68B5: PUSH HL
+ CALL TEST1
+ DB 04DH
+ JR NZ,L68CE ; (+012H)
+ CALL TEST1
+ DB 041H
+ JR NZ,L68CE ; (+00cH)
+ CALL TEST1
+ DB 058H
+ JR NZ,L68CE ; (+006H)
+ EX (SP),HL
+ LD HL,(MEMMAX)
+ JR L68EA ; (+01cH)
+
+L68CE: POP HL
+ CALL L8551
+ PUSH HL
+ LD HL,(MEMMAX)
+ OR A
+ SBC HL,DE
+ JP C,L63A7
+ LD HL,(L107A)
+ INC H
+ INC H
+ INC H
+ INC H
+ OR A
+ SBC HL,DE
+ JP NC,0636AH
+ EX DE,HL
+L68EA: CALL L616E
+ POP HL
+ POP DE
+ LD SP,(INTFAC)
+ LD BC,0FFFFH
+ PUSH BC
+ PUSH DE
+ RET
+
+L68F9: POP IX
+L68FB: POP BC
+ PUSH BC
+ LD A,B
+ INC A
+ JP NZ,0637FH
+ LD A,C
+ CP 012H
+ JR Z,L6921 ; (+01aH)
+ CP 0FEH
+ JP NZ,0637FH
+ POP BC
+ CALL L5963
+ EX DE,HL
+ POP HL
+ LD (L9E51),HL
+ POP HL
+ LD (L9E4B),HL
+ POP HL
+ PUSH IX
+ RET Z
+ EX DE,HL
+ JP L69AF
+
+L6921: EX DE,HL
+ LD HL,L0012
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ JR L68FB ; (-02fH)
+
+L692A: PUSH HL
+ CALL L67FE
+ EX DE,HL
+ POP HL
+ POP BC
+ PUSH DE
+ EXX
+ LD HL,(L9E4B)
+ PUSH HL
+ LD HL,(L9E51)
+ PUSH HL
+ LD HL,0FFFEH
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(TMPEND)
+ SBC HL,DE
+ LD A,00AH
+ JP C,L63A9
+ EXX
+ PUSH BC
+ JR L69AF ; (+05dH)
+
+L6952: CALL TEST1
+ DB 0C1H
+ JP Z,L64E4
+ CALL L8551
+ LD C,E
+ LD B,D
+ CP 087H
+ JP NC,L6364
+ CP 082H
+ JR NZ,L6977 ; (+010H)
+ CALL INCHLF
+ LD E,081H
+ CP LSE4
+ JR Z,L6976 ; (+006H)
+ CP LSE0
+ JP NZ,L6364
+ DEC E
+L6976: LD A,E
+L6977: PUSH HL
+ LD HL,L5C5B
+ SUB 080H
+ ADD A,A
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ CALL INDRCT
+ EX (SP),HL
+ INC HL
+ LD A,B
+ OR A
+ JR NZ,L69AB ; (+020H)
+ LD A,C
+ OR A
+ JR Z,L69AB ; (+01cH)
+ LD B,A
+L6990: DEC B
+ RET Z
+ CALL HLFTCH
+ CALL L69DB
+ JP NZ,L6364
+ CALL L6A10
+ OR A
+ RET Z
+ INC HL
+ CALL TEST1
+ DB 02CH
+ JR Z,L6990 ; (-017H)
+ POP DE
+ JP L797A
+
+L69AB: POP DE
+ JP L67FE
+
+L69AF: CALL L5E19
+ EX DE,HL
+ JR NZ,L69B8 ; (+003H)
+ LD HL,(L1070)
+L69B8: LD (L9E4B),HL
+ XOR A
+ LD (L63F6),A
+ JP L5909
+
+L69C2: CALL L857C
+ EX AF,AF'
+ LD A,(DE)
+ OR A
+ JR Z,L69EA ; (+020H)
+ EX AF,AF'
+ CP LSE2
+ JR NZ,L69D7 ; (+008H)
+L69CF: CALL INCHLF
+ CALL L69DB
+ JR Z,L69AF ; (-028H)
+L69D7: POP AF
+ JP L58D4
+
+L69DB: CP 022H
+ RET Z
+L69DE: CP 00BH
+ RET Z
+ CP 00CH
+ RET
+
+L69E4: CALL L69F3
+ JR NC,L69E4 ; (-005H)
+ RET
+
+L69EA: DEC HL
+ CALL L69F3
+ JR NC,L69CF ; (-021H)
+ DB 0C3H
+ LD B,059H
+L69F3: CALL L6A0A
+ OR A
+ SCF
+ RET Z
+ CP 0C2H
+ RET Z
+ CP 093H
+ JR NZ,L69F3 ; (-00dH)
+ CALL L69F3
+ RET C
+ JR L69F3 ; (-013H)
+
+L6A06: INC HL
+ LD A,(HL)
+ JR L6A10 ; (+006H)
+
+L6A0A: INC HL
+ LD A,(HL)
+ CP 094H
+ JR Z,L6A2F ; (+01fH)
+L6A10: OR A
+ RET Z
+ CP 022H
+ JR Z,L6A4D ; (+037H)
+ CP 0FEH
+ JR NC,L6A2D ; (+013H)
+ CP 097H
+ JR Z,L6A2F ; (+011H)
+ CP 027H
+ JR Z,L6A2F ; (+00dH)
+ CP 020H
+ RET NC
+ CP 00BH
+ RET C
+ CP 015H
+ JR NC,L6A44 ; (+018H)
+ INC HL
+L6A2D: INC HL
+ RET
+
+L6A2F: LD A,(HL)
+ OR A
+ RET Z
+ CP 03AH
+ RET Z
+ CP 022H
+ JR Z,L6A3C ; (+003H)
+ INC HL
+ JR L6A2F ; (-00dH)
+
+L6A3C: CALL L6A4D
+ OR A
+ RET Z
+ INC HL
+ JR L6A2F ; (-015H)
+
+L6A44: AND 00FH
+ ADD A,L
+ LD L,A
+ LD A,020H
+ RET NC
+ INC H
+ RET
+
+L6A4D: INC HL
+ LD A,(HL)
+ OR A
+ RET Z
+ CP 022H
+ RET Z
+ JR L6A4D ; (-009H)
+
+L6A56: RST 018H
+ DB 020H
+ RET
+
+L6A59: CALL L797A
+ RST 018H
+ DB 028H
+ RST 018H
+ DB 000H
+ RET
+
+L6A61: JR Z,L6A8D ; (+02aH)
+ LD A,(L136F)
+ LD D,000H
+ LD E,A
+ CALL TEST1
+ DB 02CH
+ JR Z,L6A75 ; (+006H)
+ CALL L853D
+ CALL L79B1
+L6A75: LD C,E
+ PUSH BC
+ CALL L853D
+ POP BC
+ DEC A
+ JP M,0636AH
+ ADD A,C
+ CP 019H
+ JP NC,0636AH
+ LD B,A
+ PUSH HL
+ LD H,B
+ LD L,C
+ RST 018H
+ DB 053H
+ POP HL
+ RET
+
+L6A8D: PUSH HL
+ LD HL,$IOCS
+ RST 018H
+ DB 053H
+ POP HL
+ RET
+
+L6A95: DI
+ OUT (LSE4),A
+ JP L0000
+
+L6A9B: XOR A
+ LD BC,?SETDE
+ LD (L6B83),A
+ PUSH AF
+ CALL L6EF9
+ RST 018H
+ DB 02EH
+ JP C,063A3H
+ BIT 1,A
+ JP Z,063A3H
+ CALL TEST1
+ DB 02CH
+ POP AF
+ OR A
+ JR NZ,L6ACD ; (+015H)
+ CALL L8561
+ LD A,B
+ LD (L6B7E),A
+ LD (06B7FH),DE
+ CALL L797A
+ JR L6ACD ; (+005H)
+
+L6AC8: LD A,002H
+ LD (L6B83),A
+L6ACD: CALL L5ED3
+ LD (06AF4H),DE
+ LD (06B02H),BC
+ LD A,0FFH
+ LD (L1090),A
+ CALL PUSHR
+ LD HL,(L1070)
+L6AE3: CALL LDDEMI
+ LD A,D
+ OR E
+ RET Z
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ PUSH DE
+ CALL LDDEMI
+ PUSH HL
+ LD HL,L0000
+ OR A
+ SBC HL,DE
+ JR C,L6B01 ; (+006H)
+ JR Z,L6B01 ; (+004H)
+ POP HL
+ POP HL
+ JR L6AE3 ; (-01eH)
+
+L6B01: LD HL,L0000
+ OR A
+ SBC HL,DE
+ JR NC,L6B0C ; (+003H)
+ POP HL
+ POP HL
+ RET
+
+L6B0C: EX DE,HL
+ CALL L7998
+ RST 018H
+ DB 017H
+ LD HL,L11A4
+ CALL LDHLDE
+ LD (HL),020H
+ INC HL
+ EX DE,HL
+ POP HL
+ CALL L8401
+ LD A,(L6B83)
+ OR A
+ JR NZ,L6B2B ; (+005H)
+ CALL L6B41
+ JR NC,L6B35 ; (+00aH)
+L6B2B: LD DE,L11A4
+ RST 018H
+ DB 017H
+ RST 018H
+ DB 037H
+ CALL L6DB1
+L6B35: POP HL
+ LD A,(L6B83)
+ CP 002H
+ JR Z,L6AE3 ; (-05aH)
+ RST 018H
+ DB 00FH
+ JR L6AE3 ; (-05eH)
+
+L6B41: EX DE,HL
+L6B42: PUSH HL
+ CALL L6B4C
+ POP HL
+ RET C
+ RET Z
+ INC HL
+ JR L6B42 ; (-00aH)
+
+L6B4C: LD A,(L6B7E)
+ LD B,A
+ LD DE,(06B7FH)
+L6B54: LD A,(HL)
+ INC HL
+ OR A
+ RET Z
+ CP 005H
+ JR Z,L6B60 ; (+004H)
+ CP 006H
+ JR NZ,L6B62 ; (+002H)
+L6B60: JR L6B54 ; (-00eH)
+
+L6B62: PUSH HL
+ LD C,A
+L6B64: LD A,(DE)
+ INC DE
+ CP 005H
+ JR Z,L6B6E ; (+004H)
+ CP 006H
+ JR NZ,L6B75 ; (+007H)
+L6B6E: DEC B
+ SCF
+ POP HL
+ RET Z
+ PUSH HL
+ JR L6B64 ; (-011H)
+
+L6B75: SUB C
+ POP HL
+ OR A
+ RET NZ
+ DEC B
+ SCF
+ RET Z
+ JR L6B54 ; (-02aH)
+
+L6B7E: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L6B83: NOP
+L6B84: CALL TESTX
+ DB 087H
+ CALL L7981
+ PUSH HL
+ LD C,000H
+L6B8E: RST 018H
+ DB 008H
+ LD A,C
+ ADD A,031H
+ LD D,A
+ LD E,020H
+ CP 03AH
+ JR NZ,L6B9D ; (+003H)
+ LD DE,03031H
+L6B9D: LD (06C20H),DE
+ LD DE,L6C18
+ RST 018H
+ DB 00BH
+ LD A,C
+ CALL L6C77
+ LD B,(HL)
+ INC HL
+ PUSH BC
+ CALL L6BBB
+ POP BC
+ INC C
+ LD A,C
+ CP 00AH
+ JR NZ,L6B8E ; (-029H)
+ RST 018H
+ DB 008H
+ POP HL
+ RET
+
+L6BBB: LD A,B
+ OR A
+ LD C,000H
+ JR NZ,L6BC8 ; (+007H)
+ LD A,022H
+ RST 018H
+ DB 00AH
+ RST 018H
+ DB 00AH
+ RET
+
+L6BC8: LD A,(HL)
+ CP 020H
+ JR C,L6BED ; (+020H)
+ CP 022H
+ JR Z,L6BED ; (+01cH)
+ LD A,C
+ CP 001H
+ JR Z,L6BE0 ; (+00aH)
+ OR A
+ LD DE,L6C25
+ JR NZ,L6BDE ; (+002H)
+ INC DE
+ INC DE
+L6BDE: RST 018H
+ DB 00BH
+L6BE0: LD A,(HL)
+ RST 018H
+ DB 00AH
+ INC HL
+ LD C,001H
+ DJNZ L6BC8 ; (-020H)
+ LD A,022H
+L6BEA: RST 018H
+ DB 00AH
+ RET
+
+L6BED: LD A,C
+ CP 0FFH
+ JR Z,L6C12 ; (+020H)
+ OR A
+ LD DE,L6C29
+ JR NZ,L6BFA ; (+002H)
+ INC DE
+ INC DE
+L6BFA: RST 018H
+ DB 00BH
+ PUSH BC
+ PUSH HL
+ LD L,(HL)
+ LD H,000H
+ CALL L7998
+ RST 018H
+ DB 00BH
+ POP HL
+ POP BC
+ INC HL
+ LD C,0FFH
+ DJNZ L6BC8 ; (-045H)
+ LD A,029H
+ JP L6BEA
+
+L6C12: DB 03EH
+ DB 02CH
+ DB 0DFH
+ DB 00AH
+ DB 018H
+ DB LSE4
+L6C18: DB "DEF KEY("
+ DS 2, 000H
+ DB 029H
+ DB 03DH
+ DB 000H
+L6C25: DB 029H
+ DB 02BH
+ DB 022H
+ DB 000H
+L6C29: DB 022H
+ DEC HL
+ LD B,E
+ LD C,B
+ LD D,D
+ INC H
+ JR Z,L6C31 ; (+000H)
+L6C31: CALL TEST1
+ DB 0B2H
+ JR Z,L6C42 ; (+00bH)
+ CALL TESTX
+ DB 0FFH
+ CALL TESTX
+ DB 0C7H
+ JP L8F44
+
+L6C42: CALL TESTX
+ DB 028H
+ CALL L853D
+ CALL TESTX
+ DB 029H
+ CALL TESTX
+ DB SIOAD
+ LD A,E
+ DEC A
+ CP 00AH
+ JP NC,0636AH
+ PUSH HL
+ CALL L6C77
+ EX (SP),HL
+ CALL L8561
+ EX (SP),HL
+ LD A,B
+ CP 010H
+ JR C,L6C68 ; (+002H)
+ LD A,00FH
+L6C68: LD (HL),A
+ OR A
+ JR Z,L6C74 ; (+008H)
+ LD B,A
+ INC HL
+L6C6E: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L6C6E ; (-006H)
+L6C74: POP HL
+ EI
+ RET
+
+L6C77: ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ LD HL,L12B2
+ JP ADDHLA
+
+L6C81: LD A,(L1042)
+ CP 088H
+ RET
+
+L6C87: CALL L857C
+ LD A,(L9E9C)
+ CP 003H
+ PUSH HL
+ EX DE,HL
+ JR Z,L6C9A ; (+007H)
+ CALL L7B5B
+ POP HL
+ RST 018H
+ DB 017H
+ RET
+
+L6C9A: CALL L8570
+ POP HL
+ RET
+
+L6C9F: XOR A
+ LD (L1090),A
+ CALL L6EF9
+ RST 018H
+ DB 02EH
+ JP C,L6E2D
+ BIT 2,A
+ JP NZ,L7459
+ BIT 1,A
+ JP Z,06E30H
+ CALL L6F39
+ CALL L6C81
+ JR NZ,L6CD3 ; (+016H)
+ LD A,(L137B)
+ LD (L7591),A
+ CALL TEST1
+ DB 05BH
+ JR NZ,L6CD3 ; (+00aH)
+ CALL L76D9
+ LD (L7591),A
+ CALL TESTX
+ DB 05DH
+L6CD3: CALL L5963
+ JP Z,L6DB1
+L6CD9: LD A,(HL)
+ CP LSE3
+ JR Z,L6D58 ; (+07aH)
+ LD BC,L6CF2
+ PUSH BC
+ CP 03BH
+ RET Z
+ CP 02CH
+ RET Z
+ CP 0E6H
+ JR Z,L6D28 ; (+03cH)
+ CALL L6C87
+ JP L6DB6
+
+L6CF2: CALL L5963
+ JP Z,L6DB1
+ CP 02CH
+ JR NZ,L6D18 ; (+01cH)
+ CALL L6C81
+ JR C,L6D15 ; (+014H)
+ LD IX,(ZDELT)
+ CALL _IOCALL
+ LD B,A
+L6D09: SUB 00AH
+ JR NC,L6D09 ; (-004H)
+ NEG
+ LD B,A
+ CALL L6D4A
+ JR L6D18 ; (+003H)
+
+L6D15: CALL L6DB1
+L6D18: LD A,(HL)
+ CP 02CH
+ JR Z,L6D1F ; (+002H)
+ CP 03BH
+L6D1F: JR NZ,L6D22 ; (+001H)
+ INC HL
+L6D22: CALL L5963
+ RET Z
+ JR L6CD9 ; (-04fH)
+
+L6D28: CALL L6C81
+ JP C,06E30H
+ CALL L79A2
+ CALL L853D
+ CALL L79AA
+ LD IX,(ZDELT)
+ CALL _IOCALL
+ SUB E
+ RET NC
+ NEG
+ LD B,A
+ CALL L6C81
+ LD A,013H
+ JR Z,L6D4C ; (+002H)
+L6D4A: LD A,020H
+L6D4C: LD DE,L11A5
+ PUSH BC
+ PUSH DE
+ CALL ?SETDE
+ POP DE
+ POP BC
+ JR L6DB6 ; (+05eH)
+
+L6D58: INC HL
+ CALL L8561
+ LD A,B
+ OR A
+ JP Z,0636AH
+ PUSH HL
+ LD HL,L11A5
+L6D65: PUSH HL
+ PUSH BC
+ CALL LDHLDE
+ POP BC
+ LD A,LSPAL
+ LD E,B
+ LD D,000H
+ INC DE
+ RST 018H
+ DB 02AH
+ LD (L7E39),HL
+ LD (L7E3B),HL
+ POP DE
+ CALL LDHLDE
+ LD (HL),000H
+ POP HL
+L6D80: CALL L5963
+ JR Z,L6DA7 ; (+022H)
+ INC HL
+ CP 02CH
+ JR Z,L6D8F ; (+005H)
+ CP 03BH
+ JP NZ,L6364
+L6D8F: CALL L5963
+ JR Z,L6DAA ; (+016H)
+ CALL L8584
+ PUSH HL
+ LD BC,(TMPEND)
+ PUSH BC
+ CALL L7E3D
+ POP DE
+ CALL L6DB4
+ POP HL
+ JR L6D80 ; (-027H)
+
+L6DA7: CALL L6DB1
+L6DAA: LD A,LSPAL
+ RST 018H
+ DB 02BH
+ RET
+
+L6DAF: DEC C
+ NOP
+L6DB1: LD DE,L6DAF
+L6DB4: RST 018H
+ DB 017H
+L6DB6: CALL L6C81
+ JR Z,L6DBE ; (+003H)
+ RST 018H
+ DB 037H
+ RET
+
+L6DBE: PUSH AF
+ LD A,(L7591)
+ RST 018H
+ DB 054H
+ POP AF
+ RST 018H
+ DB 037H
+ LD A,(L137B)
+ RST 018H
+ DB 054H
+ RET
+
+L6DCD: LD A,08AH
+ LD (L1042),A
+ JR L6E0B ; (+037H)
+
+L6DD4: CALL L6EF9
+ RST 018H
+ DB 02EH
+ JP C,L6E2D
+ BIT 2,A
+ JP NZ,L746A
+ BIT 0,A
+ JP Z,06E30H
+ CALL L6F39
+ CALL L6C81
+ JR NZ,L6E0B ; (+01dH)
+ CALL HLFTCH
+ CP 022H
+ LD DE,L6E35
+ LD B,002H
+ JR NZ,L6E01 ; (+007H)
+ CALL L8561
+ CALL TESTX
+ DB 03BH
+L6E01: LD A,B
+ OR A
+ JR Z,L6E0B ; (+006H)
+L6E05: LD A,(DE)
+ INC DE
+ RST 018H
+ DB 003H
+ DJNZ L6E05 ; (-006H)
+L6E0B: LD (06E64H),SP
+ LD DE,(VARED)
+ LD (TMPEND),DE
+L6E17: LD DE,(TMPEND)
+ CALL L8C08
+ CALL L8B56
+ PUSH AF
+ PUSH BC
+ CALL L5963
+ JR Z,06E37H ; (+00fH)
+ CALL L79B4
+ JR L6E17 ; (-016H)
+
+L6E2D: LD A,02CH
+ LD HL,0BB3EH
+ JP ERRORJ
+
+L6E35: CCF
+ JR NZ,06DE7H ; (-051H)
+ PUSH AF
+ PUSH HL
+ RST 018H
+ DB 034H
+ LD HL,(06E64H)
+ DEC HL
+L6E40: LD A,(HL)
+ OR A
+ JR Z,L6E62 ; (+01eH)
+ DEC HL
+ DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ DEC HL
+ PUSH HL
+ PUSH AF
+ PUSH BC
+ LD DE,(TMPEND)
+ CALL L6E67
+ LD H,000H
+ LD L,B
+ ADD HL,DE
+ LD (HL),000H
+ POP DE
+ POP AF
+ CALL L6E71
+ POP HL
+ JR L6E40 ; (-022H)
+
+L6E62: POP HL
+ LD SP,L0000
+ RET
+
+L6E67: LD A,(L1042)
+ CP 08AH
+ JR Z,L6EB0 ; (+042H)
+ RST 018H
+ DB 035H
+ RET
+
+L6E71: CP 003H
+ JR NZ,L6E7C ; (+007H)
+ LD HL,(L107A)
+ LD A,B
+ JP L6546
+
+L6E7C: PUSH DE
+ LD HL,(L107C)
+ LD DE,(TMPEND)
+ EX DE,HL
+ CALL HLFTCH
+ CP 045H
+ JP Z,0636AH
+ EX DE,HL
+ CALL L7A0E
+ EX DE,HL
+ CALL TEST1
+ DB 000H
+ JP NZ,0636AH
+ EX DE,HL
+ POP DE
+ JP L79C5
+
+L6E9E: XOR A
+ LD (L9E5D),A
+ CALL L5963
+ CALL NZ,L5E19
+ EX DE,HL
+ CALL NZ,L6EE0
+ EX DE,HL
+ JP L67FE
+
+L6EB0: PUSH HL
+ PUSH DE
+ CALL L6EBE
+ POP DE
+ POP HL
+ RET
+
+L6EB8: LD HL,(L1070)
+ CALL L6EE0
+L6EBE: LD A,(L9E5D)
+ CP 001H
+ JP Z,0639AH
+ JR C,L6EB8 ; (-010H)
+ LD HL,(L9E5E)
+ LD C,03AH
+ RST 018H
+ DB 036H
+ LD (L9E5E),HL
+ CALL L5963
+ SCF
+ CCF
+ RET NZ
+ DEC HL
+L6ED9: CALL L6A06
+ OR A
+ JR NZ,L6EEB ; (+00cH)
+ INC HL
+L6EE0: LD A,(HL)
+ INC HL
+ OR (HL)
+ LD A,001H
+ JR Z,L6EF5 ; (+00eH)
+ INC HL
+ INC HL
+ JR L6ED9 ; (-012H)
+
+L6EEB: CP 094H
+ JR NZ,L6ED9 ; (-016H)
+ INC HL
+ LD (L9E5E),HL
+ LD A,002H
+L6EF5: LD (L9E5D),A
+ RET
+
+L6EF9: CALL TEST1
+ DB 023H
+ JR NZ,L6F24 ; (+025H)
+ CALL HLFTCH
+ CP 020H
+ JP NC,L6364
+ PUSH DE
+ PUSH BC
+ LD DE,L9E9D
+ PUSH DE
+ CALL L874C
+ EX (SP),HL
+ CALL L7BEA
+ LD A,H
+ OR A
+ JP NZ,063A3H
+ OR L
+ JP Z,063A3H
+ JP M,063A3H
+ POP HL
+ POP BC
+ POP DE
+ RET
+
+L6F24: CALL TEST1
+ DB 0FBH
+ LD A,088H
+ RET NZ
+ CALL TEST1
+ DB 050H
+ LD A,089H
+ RET Z
+ CALL TESTX
+ DB 054H
+ LD A,080H
+ RET
+
+L6F39: LD A,(L1042)
+ OR A
+ RET M
+ JP L79B1
+
+L6F41: CALL L6FB1
+ RST 018H
+ DB 03AH
+ RET
+
+L6F47: CALL L5963
+ LD B,000H
+ CALL NZ,L8561
+ PUSH HL
+ RST 018H
+ DB 02CH
+ RST 018H
+ DB 03CH
+ POP HL
+ RET
+
+L6F56: LD A,001H
+ LD BC,L023E
+ LD BC,L043E
+ PUSH AF
+ LD (L1043),A
+ CALL L6EF9
+ CP 088H
+ JR NZ,L6F6B ; (+002H)
+ LD A,080H
+L6F6B: LD (L1042),A
+ CALL L6F39
+ CALL L6FA4
+ POP AF
+ CP 004H
+ JR Z,L6F7B ; (+002H)
+L6F79: LD A,003H
+L6F7B: LD (L1000),A
+ PUSH AF
+ RST 018H
+ DB 033H
+ LD A,(L1000)
+ POP BC
+ CP B
+ JP NZ,063D1H
+ RET
+
+L6F8A: OR 0AFH
+ LD B,A
+ CALL L5963
+ JR Z,L6FA0 ; (+00eH)
+L6F92: CALL L6EF9
+ CP 088H
+ RET NC
+ RST 018H
+ DB 038H
+ CALL TEST1
+ DB 02CH
+ JR L6F92 ; (-00eH)
+
+L6FA0: XOR A
+ RST 018H
+ DB 038H
+ RET
+
+L6FA4: CALL L5F15
+ LD B,000H
+ CALL NZ,L8561
+ PUSH HL
+ RST 018H
+ DB 02DH
+ POP HL
+ RET
+
+L6FB1: PUSH HL
+ CALL HLFTCH
+ LD DE,L6FF9
+ LD B,001H
+ CALL L6FEC
+ CALL NC,L6FEC
+ JR C,L6FD9 ; (+017H)
+ CALL L6FEC
+ CALL L79F6
+ CALL L6FF2
+ CALL L5963
+ JR NZ,L6FD9 ; (+009H)
+ LD A,03AH
+ LD (DE),A
+ POP AF
+ LD DE,L6FF9
+ JR L6FE2 ; (+009H)
+
+L6FD9: POP HL
+ CALL L5963
+ LD B,000H
+ CALL NZ,L8561
+L6FE2: PUSH HL
+ RST 018H
+ DB 02CH
+ INC (HL)
+ DEC (HL)
+ JP NZ,063A0H
+ POP HL
+ RET
+
+L6FEC: CP 041H
+ RET C
+ CP 05BH
+ CCF
+L6FF2: RET C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ INC B
+ RET
+
+L6FF9: NOP
+ NOP
+ NOP
+ NOP
+L6FFD: CALL TEST1
+ DB LSE5
+ JR NZ,L7007 ; (+004H)
+ XOR A
+L7004: RST 018H
+ DB 03BH
+ RET
+
+L7007: CALL L6FA4
+ CALL TEST1
+ DB 02CH
+ JP Z,L70C5
+ PUSH HL
+ CALL L7314
+ DEC A
+ JR Z,L7027 ; (+00fH)
+ DEC A
+ JP NZ,063D1H
+ CALL L7340
+ CALL L731D
+ CALL L7349
+ JR L7043 ; (+01cH)
+
+L7027: LD HL,(ELMD22)
+ PUSH HL
+ LD DE,(MEMLMT)
+ CALL L704D
+ LD DE,(ELMD20)
+ LD BC,(MEMMAX)
+ CALL NC,L7048
+ JP C,0638BH
+ POP HL
+ RST 018H
+ DB 030H
+L7043: CALL L737C
+ POP HL
+ RET
+
+L7048: ADD HL,DE
+ RET C
+ EX DE,HL
+ LD H,B
+ LD L,C
+L704D: PUSH HL
+ OR A
+ SBC HL,DE
+ POP HL
+ RET
+
+L7053: CALL L6FA4
+ CALL L7314
+ CP 002H
+ JP NZ,063D1H
+ LD A,(L9E68)
+ OR A
+ JP Z,L718B
+ JP L74F3
+
+L7068: CALL L7340
+ CALL L6FA4
+ CALL TEST1
+ DB 02CH
+ JR Z,070CBH ; (+057H)
+ RST 018H
+ DB 02FH
+ CP 002H
+ JP NZ,063D1H
+ PUSH HL
+ LD HL,(L1078)
+ LD (L107A),HL
+ LD BC,003E8H
+ ADD HL,BC
+ JP C,L63A7
+ PUSH HL
+ LD BC,(ELMD20)
+ INC B
+ ADD HL,BC
+ JP C,L63A7
+ SBC HL,SP
+ JP NC,L63A7
+ POP HL
+ PUSH HL
+ RST 018H
+ DB 030H
+ POP HL
+ CALL L70A2
+ POP HL
+ RET
+
+L70A2: CALL LDDEMI
+ LD A,D
+ OR E
+ RET Z
+ PUSH DE
+ CALL LDDEMI
+ PUSH HL
+ LD H,D
+ LD L,E
+ LD (L9E4D),HL
+ CALL L622C
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+ CALL L6003
+ POP HL
+ POP BC
+ ADD HL,BC
+ DEC HL
+ DEC HL
+ DEC HL
+ DEC HL
+ JR L70A2 ; (-023H)
+
+L70C5: CALL L7340
+ LD A,001H
+ LD BC,L003E
+ LD BC,L023E
+ PUSH AF
+ CALL TESTX
+ DB 041H
+ CALL L797A
+ LD A,001H
+ LD (L1043),A
+ LD A,081H
+ LD (L1042),A
+ CALL L6F79
+ POP AF
+ PUSH AF
+ PUSH HL
+ LD HL,L0000
+ LD DE,0FFFFH
+ OR A
+ CALL NZ,L622C
+ LD A,081H
+ RST 018H
+ DB 02EH
+ LD HL,(L1078)
+ LD (L107A),HL
+ LD BC,003E8H
+ ADD HL,BC
+ JP C,06373H
+ PUSH HL
+ LD (L7169),HL
+L7107: LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(07169H)
+ SBC HL,DE
+ JP C,06373H
+ LD DE,(TMPEND)
+ RST 018H
+ DB 035H
+ LD A,B
+ OR A
+ JR Z,L7154 ; (+036H)
+ CALL L8532
+ LD A,B
+ OR C
+ JP Z,0636AH
+ LD HL,(L7169)
+ PUSH HL
+ INC HL
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ PUSH HL
+ LD H,D
+ LD L,E
+ CALL TEST1
+ DB 000H
+ JP Z,0636AH
+ POP HL
+ LD A,(DE)
+ CP 020H
+ JR NZ,L7141 ; (+001H)
+ INC DE
+L7141: CALL L8216
+ LD (HL),000H
+ INC HL
+ LD (L7169),HL
+ POP DE
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ JR L7107 ; (-04dH)
+
+L7154: LD HL,(L7169)
+ CALL L61C5
+ CALL L619B
+ POP HL
+ CALL L70A2
+ POP HL
+ POP AF
+ CP 002H
+ RET NZ
+ JP L607C
+
+L7169: NOP
+ NOP
+L716B: CALL L6FA4
+ PUSH HL
+ CALL TEST1
+ DB 02CH
+ JR NZ,L717D ; (+008H)
+ CALL HLFTCH
+ CP 041H
+ JP Z,070CEH
+L717D: CALL L7314
+ POP HL
+ DEC A
+ JR Z,L7194 ; (+010H)
+ DEC A
+ JP NZ,063D1H
+ CALL L731D
+L718B: CALL L7349
+ CALL L737C
+ JP L607C
+
+L7194: LD D,000H
+ LD BC,0FF00H
+ CALL TEST1
+ DB 02CH
+ JR NZ,L71A8 ; (+009H)
+ CALL TESTX
+ DB 052H
+ LD D,001H
+ LD BC,0CFF0H
+L71A8: LD A,D
+ LD (L11A4),A
+ LD HL,(L1014)
+ LD DE,(ELMD22)
+ PUSH HL
+ CALL L7048
+ POP DE
+ LD HL,$START
+ LD BC,0FF00H
+ CALL NC,L7048
+ JP C,L63A7
+ LD SP,L0000
+ CALL L61A3
+ XOR A
+ LD (L733F),A
+ LD A,036H
+ OUT (0D7H),A
+ LD A,001H
+ OUT (LSD3),A
+ LD HL,(ELMD22)
+ LD DE,(TMPEND)
+ CALL L704D
+ JR NC,L71F3 ; (+011H)
+ PUSH HL
+ LD HL,$START
+ LD (L1070),HL
+ CALL L61A3
+ LD HL,L122C
+ LD (L004F),HL
+ POP HL
+L71F3: LD DE,(TMPEND)
+ CALL L704D
+ JR NC,L71FD ; (+001H)
+ EX DE,HL
+L71FD: PUSH AF
+ PUSH HL
+ LD HL,L720C
+ LD DE,L11A5
+ PUSH DE
+ LD BC,L00D0
+ LDIR
+ RET
+
+L720C: POP HL
+ RST 018H
+ DB 030H
+ LD A,0C3H
+ LD HL,0038DH
+ LD (L1038),A
+ LD (L1039),HL
+ LD A,001H
+ RST 018H
+ DB 050H
+ RST 018H
+ DB 010H
+ EX AF,AF'
+ LD A,(L11A4)
+ OR A
+ CALL NZ,L1246
+ EX AF,AF'
+ LD HL,(L1018)
+ LD A,H
+ OR L
+ EXX
+ LD HL,(L107A)
+ LD DE,(ELMD22)
+ LD BC,(ELMD20)
+ OR D
+ OR E
+ JR Z,L7243 ; (+005H)
+ LD A,0E9H
+ LD (L123E),A
+L7243: EXX
+ POP AF
+ PUSH HL
+ LD HL,L11EE
+ LD DE,0FF00H
+ LD BC,L0058
+ LDIR
+ EXX
+ JP 0FF00H
+
+ JR NC,L7259 ; (+002H)
+ LDIR
+L7259: EX AF,AF'
+ RET Z
+ IN A,(LSDMD)
+ AND 002H
+ LD A,000H
+ OUT (LSDMD),A
+ LD HL,0FF53H
+ LD BC,00005H
+ JR NZ,L7284 ; (+019H)
+ LD A,008H
+ OUT (LSDMD),A
+ IN A,(LSE0)
+ LD HL,L1000
+ LD DE,0C000H
+ LD BC,L1000
+ LDIR
+ IN A,(LSE1)
+ LD HL,0FF45H
+ LD BC,0000EH
+L7284: LD DE,0CFF0H
+ LDIR
+ POP HL
+ LD SP,L10F0
+ LD DE,ARAM
+ JP 0CFF0H
+
+ RST 018H
+ DB 01BH
+ RST 018H
+ DB 043H
+ RST 018H
+ DB 010H
+ HALT
+ OUT (LSE4),A
+L729C: LD A,071H
+ LD (DE),A
+ INC DE
+ LD A,D
+ CP LSE0
+ JR NZ,L729C ; (-009H)
+ OUT (LSE0),A
+ JP (HL)
+
+ OUT (LSE0),A
+ OUT (LSE3),A
+ JP (HL)
+
+ PUSH AF
+ DI
+ IM 1
+ LD HL,L1253
+ LD B,011H
+ DW L24DF
+ DW 0C9F1H
+ DW 0FC00H
+ DW 0FCCFH
+ DW 0FC3FH
+ DW 0FC07H
+ DW 0FD00H
+ DW 0FDCFH
+ DW 0FD00H
+ DW 0FD07H
+ DW 0D774H
+ DW 0D7B0H
+ DW 0D6C0H
+L72D0: DW 0D6A8H
+ DW 0D5FBH
+L72D4: DW 0D53CH
+ DW 0D305H
+ LD BC,001CDH
+ CALL Z,0782AH
+ DJNZ L7302 ; (+022H)
+ LD A,D
+ DJNZ L72D0 ; (-013H)
+ LD E,E
+ LD (HL),D
+ DJNZ L72D4 ; (-013H)
+ LD D,E
+ ADD HL,SP
+ LD (HL),E
+ OR A
+ SBC HL,DE
+ LD (L733B),HL
+ LD HL,0FF00H
+ ADD HL,SP
+ LD (L733D),HL
+ LD DE,(VARED)
+ PUSH HL
+ OR A
+ SBC HL,DE
+ JP C,L63A7
+L7302: EX (SP),HL
+ EX DE,HL
+ LD BC,(0733BH)
+ INC BC
+ LDDR
+ POP DE
+ RST 018H
+ DB 018H
+ LD A,001H
+ LD (L733F),A
+ RET
+
+L7314: CALL 072DCH
+ RST 018H
+ DB 02FH
+ LD A,(L1000)
+ RET
+
+L731D: LD HL,(L1078)
+ XOR A
+ DEC HL
+ LD (HL),A
+ DEC HL
+ LD (HL),A
+ LD (L1076),HL
+ DEC HL
+ LD (HL),A
+ LD (L1074),HL
+ DEC HL
+ LD (HL),A
+ LD (L1072),HL
+ LD HL,00004H
+ LD (L733B),HL
+ RET
+
+L7339: NOP
+ NOP
+L733B: NOP
+ NOP
+L733D: NOP
+ NOP
+L733F: NOP
+L7340: PUSH AF
+ CALL L596B
+ JP NZ,0638EH
+ POP AF
+ RET
+
+L7349: LD BC,(ELMD20)
+ PUSH BC
+ LD HL,(L1072)
+ LD DE,(TEXTST)
+ OR A
+ SBC HL,DE
+ LD L,000H
+ SBC HL,BC
+ JP C,L63A7
+ LD HL,L0000
+ LD (L7339),HL
+ CALL L6090
+ LD HL,L0000
+ LD (L9E51),HL
+ LD HL,(L1070)
+ RST 018H
+ DB 030H
+ POP BC
+ LD HL,(L1070)
+ ADD HL,BC
+ LD (L7339),HL
+ RET
+
+L737C: LD A,081H
+ LD B,000H
+ RST 018H
+ DB 038H
+ LD HL,L733F
+ LD A,(HL)
+ OR A
+ RET Z
+ LD (HL),000H
+ LD HL,(L7339)
+ LD A,H
+ OR L
+ JR NZ,L7397 ; (+006H)
+ LD HL,(L1070)
+ CALL L61C5
+L7397: EX DE,HL
+ LD HL,(L1072)
+ LD BC,(0733BH)
+ LDIR
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ RST 018H
+ DB 018H
+ RET
+
+L73A9: PUSH HL
+ CALL L5F2F
+ POP HL
+ CALL L6FA4
+ PUSH HL
+ RST 018H
+ DB 02FH
+ CP 002H
+ JP NZ,063D1H
+ LD HL,(L1070)
+ RST 018H
+ DB 032H
+ POP HL
+ RET
+
+L73C0: CALL TEST1
+ DB LSE5
+ LD A,001H
+ JP Z,L7004
+ PUSH HL
+ CALL L5F2F
+ POP HL
+ CALL L6FA4
+ CALL TEST1
+ DB 02CH
+ JR Z,L73F6 ; (+01fH)
+ PUSH HL
+ LD A,002H
+ LD (L1000),A
+ LD HL,(L1072)
+ LD DE,(TEXTST)
+ OR A
+ SBC HL,DE
+ LD (L1014),HL
+ LD A,(L1001)
+ CP 00DH
+ JP Z,063CEH
+ RST 018H
+ DB 031H
+ POP HL
+ RET
+
+L73F6: CALL TESTX
+ DB 041H
+ PUSH HL
+ LD A,002H
+ LD (L1043),A
+ LD A,081H
+ LD (L1042),A
+ CALL L6F79
+ POP HL
+ CALL L6AC8
+ CALL L6DB1
+ LD B,001H
+ LD A,081H
+ RST 018H
+ DB 038H
+ RET
+
+L7416: XOR A
+ LD BC,?SETDE
+ PUSH AF
+ CALL L8561
+ RST 018H
+ DB 02DH
+ POP AF
+ RST 018H
+ DB 03FH
+ RET
+
+L7424: CALL L6EF9
+ PUSH AF
+ RST 018H
+ DB 02EH
+ JP C,L6E2D
+ BIT 1,A
+ JP Z,06E30H
+ CALL L6F39
+ CALL L6FB1
+ LD B,A
+ XOR A
+ RST 018H
+ DB 039H
+ LD A,B
+ RST 018H
+ DB 03AH
+ POP AF
+ RST 018H
+ DB 039H
+ RET
+
+L7443: CALL L8561
+ RST 018H
+ DB 02DH
+ RST 018H
+ DB 03DH
+ RET
+
+L744B: CALL L8561
+ RST 018H
+ DB 02DH
+ CALL L79B1
+ CALL L8561
+ RST 018H
+ DB 03EH
+ RET
+
+L7459: CALL L748F
+L745C: CALL L6C87
+ RST 018H
+ DB 042H
+ CALL L5963
+ RET Z
+ CALL L79B4
+ JR L745C ; (-00eH)
+
+L746A: CALL L748F
+ LD DE,(TMPEND)
+ CALL L8C08
+L7474: CALL L8B56
+ PUSH HL
+ PUSH AF
+ PUSH BC
+ LD DE,(TMPEND)
+ RST 018H
+ DB 041H
+ POP DE
+ POP AF
+ CALL L6E71
+ POP HL
+ CALL L5963
+ RET Z
+ CALL L79B4
+ JR L7474 ; (-01bH)
+
+L748F: CALL TEST1
+ DB 028H
+ RET NZ
+ CALL L8551
+ LD A,D
+ OR E
+ JP Z,0636AH
+ RST 018H
+ DB 040H
+ CALL L79AA
+ CALL TEST1
+ DB 02CH
+ RET
+
+L74A6: LD A,(L9E68)
+ OR A
+ JP NZ,0639DH
+ PUSH HL
+ LD B,000H
+ RST 018H
+ DB 02CH
+ LD (0755BH),DE
+ LD (L755D),A
+ LD HL,(L1072)
+ LD DE,(TEXTST)
+ XOR A
+ SBC HL,DE
+ LD (L1014),HL
+ RST 018H
+ DB 044H
+ POP HL
+ CALL L6FA4
+ CALL L797A
+ LD A,(L1050)
+ BIT 5,A
+ JP Z,06E30H
+ PUSH HL
+ LD HL,(09E62H)
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ LD HL,L9E4B
+ LD BC,(09E60H)
+ LDIR
+ CALL L7314
+ CP 002H
+ JP NZ,063D1H
+ LD (074F4H),SP
+L74F3: LD SP,L0000
+ CALL L7349
+ CALL L737C
+ LD HL,0FFFDH
+ PUSH HL
+ PUSH HL
+ LD A,001H
+ LD (L9E68),A
+ LD HL,(L1070)
+ JP L5909
+
+L750C: XOR A
+ LD (L9E68),A
+ POP IX
+L7512: POP BC
+ LD A,B
+ CP 0FFH
+ JP NZ,0639DH
+ LD A,C
+ CP 0FDH
+ JR Z,L7531 ; (+013H)
+ CP 0FEH
+ LD HL,00004H
+ JR Z,L752D ; (+008H)
+ CP 012H
+ LD HL,00010H
+ JP NZ,0639DH
+L752D: ADD HL,SP
+ LD SP,HL
+ JR L7512 ; (-01fH)
+
+L7531: LD DE,(0755BH)
+ LD A,(L755D)
+ RST 018H
+ DB 03AH
+ LD B,000H
+ RST 018H
+ DB 02CH
+ CALL 072DCH
+ OR 0FFH
+ RST 018H
+ DB 044H
+ CALL L7349
+ CALL L737C
+ LD HL,L0000
+ ADD HL,SP
+ LD DE,L9E4B
+ LD BC,(09E60H)
+ LDIR
+ LD SP,HL
+ POP HL
+ RET
+
+ NOP
+ NOP
+L755D: NOP
+L755E: POP HL
+ PUSH HL
+ LD (L004F),HL
+ LD A,031H
+ CALL L7574
+ LD A,032H
+ CALL L7574
+ LD DE,L758B
+ LD B,005H
+ JR L757C ; (+008H)
+
+L7574: LD (L7581),A
+ LD DE,L757F
+ DB 006H
+ DB 00CH
+L757C: DB 0C3H
+ DB 04FH
+ DB 06FH
+L757F: DB 052H
+ DB 053H
+L7581: DB "?:0,$8C,13"
+L758B: DB 043H
+ DB 04DH
+ LD D,H
+ LD A,(00054H)
+L7591: INC BC
+L7592: OR 0AFH
+ PUSH AF
+ CALL L75FB
+ RST 018H
+ DB 047H
+ POP AF
+ PUSH HL
+ EXX
+ RST 018H
+ DB 048H
+ POP HL
+ RET
+
+L75A1: OR 0AFH
+ LD (075B7H),A
+ CALL L75FB
+ CALL L79B1
+L75AC: EXX
+ PUSH HL
+ PUSH DE
+ EXX
+ CALL L75FE
+ POP DE
+ EX (SP),HL
+ EXX
+ LD A,000H
+ RST 018H
+ DB 049H
+ POP HL
+ CALL TEST1
+ DB 02CH
+ JR Z,L75AC ; (-015H)
+ RST 018H
+ DB 047H
+ RET
+
+L75C4: CALL L768A
+ CALL L8551
+ XOR A
+ BIT 7,D
+ JR Z,L75D8 ; (+009H)
+ PUSH HL
+ LD H,A
+ LD L,A
+ SBC HL,DE
+ EX DE,HL
+ POP HL
+ LD A,001H
+L75D8: EX AF,AF'
+ LD A,D
+ OR A
+ JR NZ,L7616 ; (+039H)
+ LD A,E
+ PUSH AF
+ EX AF,AF'
+ PUSH AF
+ CALL L79B1
+ CALL L8561
+ POP AF
+ LD C,A
+ POP AF
+ PUSH HL
+ LD H,C
+ RST 018H
+ DB 04AH
+ POP HL
+ CALL L5963
+ JR NZ,L75C4 ; (-030H)
+ RET
+
+L75F5: CALL L75FE
+ RST 018H
+ DB 047H
+ RET
+
+L75FB: CALL L768A
+L75FE: CALL L760F
+ PUSH DE
+ CALL TEST1
+ DB 02CH
+ CALL L760F
+ PUSH DE
+ EXX
+ POP HL
+ POP DE
+ EXX
+ RET
+
+L760F: CALL L8551
+ LD A,D
+ ADD A,040H
+ RET P
+L7616: JP 0636AH
+
+L7619: CALL L5963
+ JP Z,L6364
+ CALL L7640
+ CALL L76DE
+ AND 003H
+ PUSH AF
+ LD A,(L137E)
+ LD D,E
+ SRL D
+ SRL D
+ CP D
+ JP NZ,06397H
+ CALL TESTX
+ DB 02CH
+ CALL L7640
+ LD B,A
+ POP AF
+ RST 018H
+ DB 052H
+ RET
+
+L7640: CALL L853D
+ CP 010H
+ JR NC,L7616 ; (-031H)
+ RET
+
+L7648: CALL L75FB
+ EXX
+ PUSH HL
+ PUSH DE
+ EXX
+ CALL L79B1
+ CALL L75FE
+ EXX
+ PUSH HL
+ PUSH DE
+ EXX
+ CALL L5963
+ JR Z,L766B ; (+00dH)
+ CALL L79B4
+ CALL L5963
+ LD A,(L7591)
+ CALL NZ,L76D9
+ SCF
+L766B: EXX
+ POP DE
+ POP HL
+ EXX
+ POP DE
+ EX (SP),HL
+ RST 018H
+ DB 04BH
+ POP HL
+ RET
+
+L7675: CALL L76B4
+ LD A,(L7591)
+ RST 018H
+ DB 054H
+ LD (L137B),A
+ LD A,(L109A)
+ LD (07590H),A
+ CALL L797A
+ RET
+
+L768A: CALL TEST1
+ DB 02CH
+ CALL TEST1
+ DB 05BH
+ JR NZ,L76A5 ; (+011H)
+ CALL L76B4
+ LD A,(L7591)
+ RST 018H
+ DB 055H
+ CALL TESTX
+ DB 05DH
+ CALL TEST1
+ DB 02CH
+ RET
+
+L76A5: LD A,(L137B)
+ LD (L7591),A
+ RST 018H
+ DB 055H
+L76AD: LD A,(07590H)
+ LD (L109A),A
+ RET
+
+L76B4: CALL TEST1
+ DB 02CH
+ JR Z,L76D1 ; (+017H)
+ CALL L76D9
+ LD (L7591),A
+ CALL TEST1
+ DB 02CH
+ JR NZ,L76AD ; (-019H)
+L76C6: CALL L853D
+ CP 002H
+ JR NC,L76FA ; (+02dH)
+ LD (L109A),A
+ RET
+
+L76D1: LD A,(L137B)
+ LD (L7591),A
+ JR L76C6 ; (-013H)
+
+L76D9: PUSH BC
+ CALL L853D
+ POP BC
+L76DE: LD A,(L1379)
+ RRA
+ JR C,L76EA ; (+006H)
+ RRA
+ JR C,L76F0 ; (+009H)
+ RRA
+ JR C,L76F6 ; (+00cH)
+L76EA: LD A,E
+ CP 004H
+ JR NC,L76FA ; (+00bH)
+ RET
+
+L76F0: LD A,E
+ CP 010H
+ JR NC,L76FA ; (+005H)
+ RET
+
+L76F6: LD A,E
+ CP 002H
+ RET C
+L76FA: JP 0636AH
+
+L76FD: CALL L768A
+ CALL L75F5
+ LD B,000H
+ LD DE,L773C
+ PUSH DE
+ CALL L5963
+ JR Z,L7735 ; (+027H)
+L770E: CALL L79B4
+ PUSH DE
+ CALL L76D9
+ POP DE
+ LD (DE),A
+ INC DE
+ INC B
+ LD A,B
+ CP 010H
+ JP Z,L6364
+ CALL L5963
+ JR NZ,L770E ; (-016H)
+L7724: EX (SP),HL
+ PUSH HL
+ LD HL,0FDF1H
+ ADD HL,SP
+ LD (L137C),HL
+ POP HL
+ RST 018H
+ DB 04CH
+ JP C,06373H
+ POP HL
+ RET
+
+L7735: LD A,(L7591)
+ LD (DE),A
+ INC B
+ JR L7724 ; (-018H)
+
+L773C: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L774C: PUSH HL
+ LD HL,L0000
+ LD (0782FH),HL
+ LD (07829H),HL
+ LD (0782CH),HL
+ LD (07833H),HL
+ LD (07836H),HL
+ LD HL,L7905
+ CALL L909E
+ LD HL,L98C1
+ LD DE,L790A
+ CALL L79C5
+ POP HL
+ CALL L75FB
+ RST 018H
+ DB 047H
+ CALL L79B1
+ CALL L8551
+ PUSH HL
+ LD A,D
+ AND 0C0H
+ JP NZ,0636AH
+ EX DE,HL
+ LD (0783AH),HL
+ LD (07829H),HL
+ LD (07833H),HL
+ LD HL,(L107C)
+ LD DE,L78F1
+ CALL L79C5
+ POP HL
+ CALL L5963
+ JP Z,L77EB
+ CALL L79B4
+ CALL TEST1
+ DB 02CH
+ JR Z,L77B0 ; (+00cH)
+ CALL L7841
+ CALL L5963
+ JP Z,L77EB
+ CALL L79B4
+L77B0: CALL TEST1
+ DB 02CH
+ JR Z,L77CA ; (+014H)
+ LD IX,07829H
+ LD IY,L7905
+ CALL L788E
+ CALL L5963
+ JP Z,L77EB
+ CALL L79B4
+L77CA: CALL TEST1
+ DB 02CH
+ JR Z,L77E4 ; (+014H)
+ LD IX,07833H
+ LD IY,L790A
+ CALL L788E
+ CALL L5963
+ JP Z,L77EB
+ CALL L79B4
+L77E4: CALL TESTX
+ DB 04FH
+ SCF
+ JR L77EC ; (+001H)
+
+L77EB: XOR A
+L77EC: PUSH HL
+ PUSH AF
+ LD HL,L7905
+ LD DE,L790A
+ CALL L90B3
+ CALL L79C5
+ LD A,(L7905)
+ OR A
+ LD B,000H
+ JR Z,L781E ; (+01cH)
+ LD HL,L7906
+ RES 7,(HL)
+ DEC HL
+ LD DE,L98C6
+ CALL L9153
+ LD B,001H
+ JR C,L781E ; (+00cH)
+ LD DE,L98C1
+ CALL L9153
+ LD B,002H
+ JR C,L781E ; (+002H)
+ LD B,003H
+L781E: LD A,(0790BH)
+ AND 080H
+ OR B
+ LD B,A
+ POP AF
+ LD A,B
+ EXX
+ LD DE,L0000
+ LD HL,L0000
+ LD BC,L0000
+ EXX
+ LD DE,L0000
+ LD HL,L0000
+ LD IX,L0000
+ RST 018H
+ DB 04DH
+ POP HL
+ OR A
+ RET
+
+L7841: CALL L8551
+ CALL PUSHR
+ LD HL,(L107C)
+ INC HL
+ BIT 7,(HL)
+ JP NZ,0636AH
+ DEC HL
+ LD DE,L7C45
+ CALL L9153
+ RET Z
+ LD A,001H
+ JR C,L7870 ; (+014H)
+ LD HL,L7C45
+ LD DE,L78F6
+ PUSH DE
+ CALL L79C5
+ POP HL
+ LD DE,(INTFAC)
+ CALL L93D5
+ LD A,002H
+L7870: LD (0782FH),A
+ LD DE,L78FB
+ CALL L92EA
+ LD DE,L7900
+ CALL L90BC
+ CALL L7BEA
+ LD A,L
+ LD (07830H),A
+ BIT 0,H
+ RET Z
+ XOR A
+ LD (0782FH),A
+ RET
+
+L788E: PUSH IX
+ PUSH IY
+ CALL L8551
+ POP DE
+ POP IX
+ PUSH HL
+ PUSH IX
+ LD HL,(L107C)
+ CALL L79C5
+ LD HL,(L107C)
+ LD D,H
+ LD E,L
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ CALL L79C5
+ CALL L96F9
+ LD DE,L78F1
+ CALL L92EA
+ CALL L78D0
+ LD HL,(L107C)
+ CALL L9709
+ LD DE,L78F1
+ CALL L92EA
+ CALL L90A6
+ CALL L78D0
+ POP IX
+ POP HL
+ RET
+
+L78D0: INC HL
+ BIT 7,(HL)
+ PUSH AF
+ RES 7,(HL)
+ DEC HL
+ LD DE,L7900
+ CALL L90BC
+ POP AF
+ INC HL
+ JR Z,L78E3 ; (+002H)
+ SET 7,(HL)
+L78E3: DEC HL
+ CALL L7BEA
+ EX DE,HL
+ POP HL
+ EX (SP),HL
+ LD (HL),E
+ INC HL
+ DB 072H
+ DS 2, 023H
+ DB LSE3
+ DB 0E9H
+L78F1: DS 5, 000H
+L78F6: DS 5, 000H
+L78FB: DB 089H
+ DS 4, 000H
+L7900: DB 080H
+ DS 2, 000H
+ DB 0A7H
+ DB 0C6H
+L7905: DB 000H
+L7906: DS 4, 000H
+L790A: DS 5, 000H
+L790F: DB LSRF
+ DB 0FBH
+ DB 075H
+ DB 0DFH
+ DB 047H
+ DB LSRF
+ DB 0B1H
+ DB 079H
+ DB LSRF
+ DB 061H
+ DB 085H
+ LD A,B
+ OR A
+ PUSH BC
+ PUSH HL
+ LD C,B
+ LD B,000H
+ LD HL,L27D0
+ EX DE,HL
+ JR Z,L7929 ; (+002H)
+ LDIR
+L7929: POP HL
+ CALL L79B1
+ CALL L853D
+ LD A,D
+ OR E
+ JR Z,L793D ; (+009H)
+ PUSH DE
+ CALL L79B1
+ CALL L853D
+ LD A,D
+ OR E
+L793D: JP Z,0636AH
+ LD A,E
+ POP DE
+ LD D,A
+ CALL L5963
+ PUSH DE
+ JR Z,07957H ; (+00eH)
+ CALL L79B1
+ CALL L853D
+ LD A,003H
+ CP E
+ JP C,0636AH
+ LD A,E
+ LD B,0AFH
+ POP DE
+ POP BC
+ LD C,A
+ LD A,B
+ OR A
+ RET Z
+ LD A,C
+ PUSH HL
+ EX DE,HL
+ LD DE,L27D0
+ RST 018H
+ DB 057H
+ POP HL
+ RET
+
+L7968: CALL L797A
+ PUSH HL
+ LD A,000H
+ RST 018H
+ DB 04FH
+ POP HL
+ RET
+
+L7972: CALL L797A
+ PUSH HL
+ RST 018H
+ DB 045H
+ POP HL
+ RET
+
+L797A: CALL L5963
+ RET Z
+ JP L6364
+
+L7981: XOR A
+ LD (L1091),A
+ CALL TEST1
+ DB 0FBH
+ RET NZ
+ CALL TESTX
+ DB 050H
+ CALL LA007
+ LD A,050H
+ LD (L1091),A
+ CP A
+ RET
+
+L7998: LD DE,L9E6A
+ LD B,000H
+ PUSH DE
+ RST 018H
+ DB 016H
+ POP DE
+ RET
+
+L79A2: INC HL
+L79A3: CALL HLFTCH
+L79A6: CP 028H
+ JR L79B6 ; (+00cH)
+
+L79AA: CALL HLFTCH
+L79AD: CP 029H
+ JR L79B6 ; (+005H)
+
+L79B1: CALL HLFTCH
+L79B4: CP 02CH
+L79B6: INC HL
+ RET Z
+ JP L6364
+
+L79BB: INC DE
+L79BC: LD A,(DE)
+ CP 020H
+ JR Z,L79BB ; (-006H)
+ RET
+
+L79C2: LD HL,L7C45
+L79C5: LD BC,00005H
+ LDIR
+ RET
+
+L79CB: CALL L909E
+ LD A,E
+ OR D
+ RET Z
+ BIT 7,D
+ LD A,07FH
+ JR Z,L79E0 ; (+009H)
+ LD A,D
+ CPL
+ LD D,A
+ LD A,E
+ CPL
+ LD E,A
+ INC DE
+ LD A,0FFH
+L79E0: LD B,091H
+L79E2: DEC B
+ BIT 7,D
+ JR NZ,L79ED ; (+006H)
+ RL E
+ RL D
+ JR L79E2 ; (-00bH)
+
+L79ED: LD (HL),B
+ INC HL
+ AND D
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ DEC HL
+ DEC HL
+ RET
+
+L79F6: CP 030H
+ RET C
+ CP 03AH
+ CCF
+ RET
+
+L79FD: CP 05FH
+ RET Z
+ CP 030H
+ RET C
+ CP 05BH
+ CCF
+ RET C
+ CP 03AH
+ CCF
+ RET NC
+ CP 041H
+ RET
+
+L7A0E: CALL L909E
+ LD (L7E34),A
+ LD (L7E35),A
+ LD (L7E36),A
+ LD (07AB6H),A
+ LD A,005H
+ LD (L9E9C),A
+L7A22: CALL L79BC
+ INC DE
+ CP 02BH
+ JR Z,L7A22 ; (-008H)
+ CP 02DH
+ JR NZ,L7A34 ; (+006H)
+ CALL L7A22
+ JP L90A9
+
+L7A34: CP 024H
+ JR NZ,L7A44 ; (+00cH)
+ PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 014H
+ EX (SP),HL
+ CALL L79CB
+ POP DE
+ LD A,005H
+ RET
+
+L7A44: CP 030H
+ JR NZ,L7A4E ; (+006H)
+ LD A,(DE)
+ INC DE
+ JR L7A44 ; (-008H)
+
+L7A4C: LD A,(DE)
+ INC DE
+L7A4E: CP 020H
+ JR Z,L7A4C ; (-006H)
+ CP 02EH
+ JR Z,L7A71 ; (+01bH)
+ CALL L79F6
+ JR C,L7AAB ; (+050H)
+ SUB 030H
+ CALL L7BDD
+ CALL L7B47
+ LD A,001H
+ LD (L7E35),A
+ LD A,(L7E34)
+ INC A
+ LD (L7E34),A
+ JR L7A4C ; (-025H)
+
+L7A71: LD A,001H
+ LD (07AB6H),A
+ LD C,A
+L7A77: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L7A77 ; (-006H)
+ CALL L79F6
+ JR C,L7AA3 ; (+021H)
+ INC C
+ SUB 030H
+ JR Z,L7A8E ; (+007H)
+ PUSH AF
+ LD A,001H
+ LD (L7E35),A
+ POP AF
+L7A8E: PUSH AF
+ LD A,(L7E35)
+ LD B,A
+ LD A,(L7E34)
+ ADD A,B
+ LD (L7E34),A
+ POP AF
+ CALL L7BDD
+ CALL L7B47
+ JR L7A77 ; (-02cH)
+
+L7AA3: DEC C
+ JR Z,L7AAB ; (+005H)
+ CALL L7B31
+ JR L7AA3 ; (-008H)
+
+L7AAB: CP 045H
+ JR Z,L7ABC ; (+00dH)
+L7AAF: DEC DE
+ LD A,(L7E36)
+ OR A
+ RET NZ
+ LD A,000H
+ OR A
+ RET NZ
+ LD A,005H
+ RET
+
+L7ABC: LD A,(DE)
+ CP 02DH
+ JR Z,L7ACA ; (+009H)
+ CP 02BH
+ JR Z,L7ACA ; (+005H)
+ CALL L79F6
+ JR C,L7AAF ; (-01bH)
+L7ACA: LD A,001H
+ LD (07AB6H),A
+ PUSH HL
+ LD HL,L92EA
+ LD (07B2AH),HL
+ LD HL,L0000
+ LD A,(DE)
+ INC DE
+ CP 02BH
+ JR Z,L7AEB ; (+00cH)
+ CP 02DH
+ JR NZ,L7AED ; (+00aH)
+ PUSH HL
+ LD HL,L93D5
+ LD (07B2AH),HL
+ POP HL
+L7AEB: LD A,(DE)
+ INC DE
+L7AED: SUB 030H
+ JR C,L7B0D ; (+01cH)
+ CP 00AH
+ JR NC,L7B0D ; (+018H)
+ PUSH DE
+ CALL L7B42
+ LD E,L
+ LD D,H
+ CALL L7B42
+ CALL L7B42
+ CALL L7B3E
+ LD E,A
+ LD D,000H
+ CALL L7B3E
+ POP DE
+ JR L7AEB ; (-022H)
+
+L7B0D: LD A,H
+ OR A
+ JR NZ,L7B44 ; (+033H)
+ LD A,L
+ POP HL
+ PUSH DE
+ PUSH BC
+ PUSH HL
+ LD DE,L9E9D
+ PUSH DE
+ CALL L79C2
+ POP HL
+ LD B,A
+ INC B
+ JR L7B25 ; (+003H)
+
+L7B22: CALL L7BDD
+L7B25: DJNZ L7B22 ; (-005H)
+ EX DE,HL
+ POP HL
+ CALL L0000
+ POP BC
+ POP DE
+ JP L7AAF
+
+L7B31: PUSH AF
+ PUSH BC
+ PUSH DE
+ LD DE,L7C40
+ CALL L93D5
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L7B3E: ADD HL,DE
+ RET NC
+ JR L7B44 ; (+002H)
+
+L7B42: ADD HL,HL
+ RET NC
+L7B44: JP 06367H
+
+L7B47: PUSH DE
+ PUSH HL
+ LD HL,L9E9D
+ LD E,A
+ LD D,000H
+ CALL L79CB
+ EX DE,HL
+ POP HL
+ PUSH BC
+ CALL L90BC
+ POP BC
+ POP DE
+ RET
+
+L7B5B: LD A,005H
+ LD (L9E9C),A
+ LD A,(HL)
+ OR A
+ JR Z,L7B68 ; (+004H)
+ INC HL
+ LD A,(HL)
+ DEC HL
+ RLCA
+L7B68: LD A,020H
+ JR NC,L7B71 ; (+005H)
+ CALL L90A9
+ LD A,02DH
+L7B71: PUSH AF
+ CALL L7CE0
+ CALL L7D6D
+ POP AF
+ DEC DE
+ LD (DE),A
+ RET
+
+L7B7C: PUSH BC
+ CALL L9153
+ POP BC
+ RET
+
+L7B82: CALL PUSHR
+ LD A,(HL)
+ CP 081H
+ JP C,L909E
+ LD A,(HL)
+ CP 0A0H
+ RET NC
+ INC HL
+ CALL L7BB9
+ PUSH HL
+ LD L,(HL)
+ LD B,000H
+L7B97: SRL E
+ RR D
+ RR C
+ RR L
+ INC A
+ INC B
+ CP 0A0H
+ JR NZ,L7B97 ; (-00eH)
+L7BA5: SLA L
+ RL C
+ RL D
+ RL E
+ DJNZ L7BA5 ; (-00aH)
+ LD A,L
+ POP HL
+ LD (HL),A
+ DEC HL
+ LD (HL),C
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ RET
+
+L7BB9: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD C,(HL)
+ INC HL
+ RET
+
+L7BC0: LD A,(HL)
+ CP 081H
+ RET C
+ PUSH DE
+ PUSH HL
+ LD DE,L7BD8
+ PUSH DE
+ CALL L79C5
+ POP HL
+ CALL L7B82
+ EX DE,HL
+ POP HL
+ CALL L90B3
+ POP DE
+ RET
+
+L7BD8: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L7BDD: PUSH AF
+ PUSH BC
+ PUSH DE
+ LD DE,L7C40
+ CALL L92EA
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L7BEA: INC HL
+ BIT 7,(HL)
+ JR Z,L7BFA ; (+00bH)
+ CALL L7BFA
+ LD A,H
+ CPL
+ LD H,A
+ LD A,L
+ CPL
+ LD L,A
+ INC HL
+ RET
+
+L7BFA: DEC HL
+ LD A,(HL)
+ CP 091H
+ JP NC,06367H
+ CP 081H
+ JR C,L7C18 ; (+013H)
+ PUSH AF
+ INC HL
+ LD A,(HL)
+ INC HL
+ LD L,(HL)
+ LD H,A
+ POP AF
+ SET 7,H
+L7C0E: CP 090H
+ RET Z
+ INC A
+ SRL H
+ RR L
+ JR L7C0E ; (-00aH)
+
+L7C18: DB 03FH
+ DB 021H
+ DS 2, 000H
+ DB 0C9H
+L7C1D: DB 09BH
+ DB 03EH
+ DB 0BCH
+ DB 020H
+ DB 000H
+L7C22: DB 098H
+ DB 018H
+ DB 096H
+ DB 080H
+ DB 000H
+ DB 094H
+ DB 074H
+ DB 024H
+ DS 2, 000H
+ DB 091H
+ DB 043H
+ DB 050H
+ DS 2, 000H
+ DB 08EH
+ DB 01CH
+ DB 040H
+ DS 2, 000H
+ DB 08AH
+ DB 07AH
+ DS 3, 000H
+ DB 087H
+ DB 048H
+ DS 3, 000H
+L7C40: DB 084H
+ DB 020H
+ DS 3, 000H
+L7C45: DB 081H
+ DS 4, 000H
+ LD A,L
+ LD C,H
+ CALL Z,0CDCCH
+L7C4F: LD H,(HL)
+ DEC HL
+ CALL Z,L1277
+L7C54: LD HL,(L7E37)
+ LD B,000H
+L7C59: LD DE,L7C40
+ CALL L7B7C
+ JR C,L7C67 ; (+006H)
+ CALL L7B31
+ INC B
+ JR L7C59 ; (-00eH)
+
+L7C67: LD DE,L7C45
+ CALL L7B7C
+ JR NC,L7C75 ; (+006H)
+ CALL L7BDD
+ DEC B
+ JR L7C67 ; (-00eH)
+
+L7C75: PUSH BC
+ CALL L7CE0
+ CALL L7D6D
+ POP BC
+ PUSH DE
+ EX DE,HL
+L7C7F: LD A,(HL)
+ OR A
+ JR Z,L7C86 ; (+003H)
+ INC HL
+ JR L7C7F ; (-007H)
+
+L7C86: DEC HL
+ LD A,(HL)
+ INC HL
+ CP 030H
+ JR NZ,L7C8F ; (+002H)
+ INC B
+ DEC HL
+L7C8F: LD A,045H
+ LD (HL),A
+ INC HL
+ LD A,B
+ LD B,02BH
+ BIT 7,A
+ JR Z,L7C9E ; (+004H)
+ NEG
+ LD B,02DH
+L7C9E: LD (HL),B
+ INC HL
+ LD (HL),030H
+L7CA2: SUB 00AH
+ JR C,L7CA9 ; (+003H)
+ INC (HL)
+ JR L7CA2 ; (-007H)
+
+L7CA9: ADD A,03AH
+ INC HL
+ LD (HL),A
+ INC HL
+ LD (HL),000H
+ POP DE
+ RET
+
+L7CB2: PUSH HL
+ CALL L7BEA
+ LD DE,L9E75
+ PUSH DE
+ LD B,001H
+ RST 018H
+ DB 016H
+ POP HL
+ LD A,030H
+ LD B,005H
+L7CC3: CP (HL)
+ JR NZ,L7CCB ; (+005H)
+ INC HL
+ DJNZ L7CC3 ; (-006H)
+ JR L7CD4 ; (+009H)
+
+L7CCB: LD A,B
+ LD (L7E34),A
+ LD A,001H
+ LD (L7E35),A
+L7CD4: LD A,02EH
+ LD (L9E7A),A
+ POP HL
+ CALL L7BC0
+ JP L7D30
+
+L7CE0: LD (L7E37),HL
+ XOR A
+ LD (L7E34),A
+ LD (L7E35),A
+ PUSH HL
+ LD HL,L9E71
+ LD (HL),0FFH
+ LD B,021H
+ LD A,030H
+L7CF4: INC HL
+ LD (HL),A
+ DJNZ L7CF4 ; (-004H)
+ LD A,02EH
+ LD (L9E7A),A
+ POP HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD DE,L7C1D
+ CALL L9153
+ CCF
+ RET C
+ LD DE,L7C4F
+ CALL L9153
+ RET C
+ LD DE,L9EA5
+ PUSH DE
+ CALL L79C5
+ POP HL
+ LD A,(HL)
+ CP 081H
+ JR C,L7D30 ; (+013H)
+ CP 090H
+ JP C,L7CB2
+ LD IX,L9E72
+ LD DE,L7C22
+ CALL L7DF7
+ CALL L7E2B
+ RET NC
+L7D30: LD IX,L9E7B
+L7D34: LD DE,L7C1D
+ PUSH BC
+ PUSH IX
+ CALL L92EA
+ POP IX
+ POP BC
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ CALL L7DF7
+ CALL L7E2B
+ JR C,L7D34 ; (-019H)
+ RET
+
+L7D4E: LD A,005H
+ LD (L9E9C),A
+ PUSH HL
+ LD DE,L9EAD
+ PUSH DE
+ CALL L79C5
+ POP HL
+ CALL L7CE0
+ CALL L7D6A
+ POP HL
+ RET
+
+L7D64: LD DE,L9E7A
+ LD (DE),A
+ DEC DE
+ RET
+
+L7D6A: JP C,L7C54
+L7D6D: LD HL,(L7E37)
+ LD A,(HL)
+ OR A
+ JR Z,L7D64 ; (-010H)
+ LD DE,L9E72
+ DEC DE
+ EX DE,HL
+ LD DE,00001H
+L7D7C: INC HL
+ LD A,(HL)
+ CP 02EH
+ JR NZ,L7D87 ; (+005H)
+ LD DE,L0000
+ JR L7D7C ; (-00bH)
+
+L7D87: CP 030H
+ JR Z,L7D7C ; (-00fH)
+ ADD HL,DE
+ LD DE,00008H
+ ADD HL,DE
+ LD A,(HL)
+L7D91: LD (HL),030H
+ CP 035H
+ JR C,L7DA6 ; (+00fH)
+L7D97: DEC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L7D97 ; (-006H)
+ INC A
+ JR Z,L7DE0 ; (+040H)
+ LD (HL),A
+ CP 03AH
+ JR Z,L7D91 ; (-014H)
+ INC HL
+L7DA6: LD DE,L9E7A
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ JR C,L7DB5 ; (+005H)
+ LD HL,L9E7A
+ JR L7DCC ; (+017H)
+
+L7DB5: DEC HL
+ LD A,(HL)
+ CP 02EH
+ DEC HL
+ JR Z,L7DCB ; (+00fH)
+ INC HL
+ CP 030H
+ JR Z,L7DA6 ; (-01bH)
+ PUSH HL
+ LD DE,L9E83
+ SBC HL,DE
+ POP HL
+ JP NC,L7C54
+L7DCB: INC HL
+L7DCC: LD (HL),000H
+ LD DE,L9E72
+L7DD1: LD A,(DE)
+ CP 030H
+ JR NZ,L7DD9 ; (+003H)
+ INC DE
+ JR L7DD1 ; (-008H)
+
+L7DD9: OR A
+ RET NZ
+ DEC DE
+ LD A,030H
+ LD (DE),A
+ RET
+
+L7DE0: LD HL,L9E6A
+ LD DE,L7DF1
+ PUSH BC
+ LD BC,L0006
+ LDIR
+ POP BC
+ LD DE,L9E6A
+ RET
+
+L7DF1: LD SP,L2B45
+ JR NC,L7E2E ; (+038H)
+ NOP
+L7DF7: LD A,(DE)
+ CP 07DH
+ RET Z
+L7DFB: CALL L9153
+ JR C,L7E13 ; (+013H)
+ INC (IX+000H)
+ PUSH IX
+ PUSH BC
+ CALL L90B3
+ POP BC
+ POP IX
+ LD A,001H
+ LD (L7E35),A
+ JR L7DFB ; (-018H)
+
+L7E13: INC IX
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ LD A,(L7E35)
+ LD B,A
+ LD A,(L7E34)
+ ADD A,B
+ LD (L7E34),A
+ DB LSRF
+ DB 02BH
+ DB 07EH
+ DB LSD0
+ DB 018H
+ DB LSWF
+L7E2B: DB 07EH
+ DB 0B7H
+ DB 0C8H
+L7E2E: DB ":4~",0FEH
+ ADD HL,BC
+ RET
+
+L7E34: NOP
+L7E35: NOP
+L7E36: NOP
+L7E37: NOP
+ NOP
+L7E39: NOP
+ NOP
+L7E3B: NOP
+ NOP
+L7E3D: LD HL,(L7E3B)
+ PUSH DE
+L7E41: LD A,(HL)
+ OR A
+ JP Z,0636AH
+ CALL L7EDF
+ JR Z,L7E50 ; (+005H)
+ LD (BC),A
+ INC BC
+ INC HL
+ JR L7E41 ; (-00fH)
+
+L7E50: EX AF,AF'
+ LD A,(L9E9C)
+ CP 003H
+ JP NZ,L7F08
+ EX AF,AF'
+ CP 021H
+ JP Z,L7E67
+ CP 026H
+ JP Z,L7E8E
+ JP 0636DH
+
+L7E67: EX (SP),HL
+ PUSH BC
+ CALL L8570
+ OR A
+ LD A,020H
+ JR Z,L7E72 ; (+001H)
+ LD A,(DE)
+L7E72: POP BC
+ LD (BC),A
+ INC BC
+L7E75: POP HL
+ INC HL
+L7E77: LD A,(HL)
+ OR A
+ JR Z,L7E85 ; (+00aH)
+ CALL L7EDF
+ JR Z,L7E88 ; (+008H)
+ LD (BC),A
+ INC BC
+ INC HL
+ JR L7E77 ; (-00eH)
+
+L7E85: LD HL,(L7E39)
+L7E88: LD (L7E3B),HL
+ XOR A
+ LD (BC),A
+ RET
+
+L7E8E: LD D,002H
+L7E90: INC HL
+ LD A,(HL)
+ CP 026H
+ JR Z,L7E9E ; (+008H)
+ INC D
+ CP 020H
+ JR Z,L7E90 ; (-00bH)
+ JP 0636AH
+
+L7E9E: EX (SP),HL
+ LD A,(HL)
+ CP D
+ JR C,L7EB8 ; (+015H)
+ INC HL
+ CALL INDRCT
+ PUSH BC
+ LD BC,(STRST)
+ ADD HL,BC
+ POP BC
+L7EAE: LD A,(HL)
+ LD (BC),A
+ INC BC
+ INC HL
+ DEC D
+ JR NZ,L7EAE ; (-007H)
+ JP L7E75
+
+L7EB8: LD E,(HL)
+ INC HL
+ CALL INDRCT
+ LD A,E
+ OR A
+ JR Z,L7ED5 ; (+014H)
+ PUSH BC
+ LD BC,(STRST)
+ ADD HL,BC
+ POP BC
+L7EC8: LD A,(HL)
+ LD (BC),A
+ INC BC
+ INC HL
+ DEC E
+ JR Z,L7ED9 ; (+00aH)
+ DEC D
+ JR NZ,L7EC8 ; (-00aH)
+ JP L7E75
+
+L7ED5: LD A,020H
+ LD (BC),A
+ INC BC
+L7ED9: DEC D
+ JR NZ,L7ED5 ; (-007H)
+ JP L7E75
+
+L7EDF: CALL CHKACC
+ INC B
+ LD HL,L2326
+ DEC HL
+ RET Z
+ LD E,A
+ CP 02AH
+ JR Z,L7F02 ; (+015H)
+ CALL L80DF
+ JR Z,L7F02 ; (+010H)
+ CP 02EH
+ LD E,023H
+ JR Z,L7F02 ; (+00aH)
+ CP 0C4H
+ RET NZ
+ INC HL
+ LD A,(HL)
+ OR A
+ JP Z,0636AH
+ RET
+
+L7F02: INC HL
+ LD A,(HL)
+ CP E
+ DEC HL
+ LD A,(HL)
+ RET
+
+L7F08: XOR A
+ LD (0804FH),A
+ LD (0809FH),A
+ LD (L8087),A
+ LD (08045H),A
+ LD (07FFFH),A
+ LD (0802CH),A
+ LD (0804AH),A
+ LD (07FF8H),A
+ DEC A
+ LD (07FF5H),A
+ EX AF,AF'
+ LD D,000H
+ CP 023H
+ JP Z,L7F64
+ CP 02AH
+ JP Z,L7F45
+ CALL L80DF
+ JP Z,L7F56
+ CP 02EH
+ JP Z,L7F66
+ CP 02BH
+ JP Z,L7F5F
+ JP 0636DH
+
+L7F45: LD A,001H
+ LD (0809FH),A
+ INC HL
+ INC D
+ INC HL
+ INC D
+ LD A,(HL)
+ CALL L80DF
+ JR NZ,L7F66 ; (+012H)
+ JR L7F58 ; (+002H)
+
+L7F56: INC HL
+ INC D
+L7F58: INC HL
+ INC D
+ LD (L8087),A
+ JR L7F66 ; (+007H)
+
+L7F5F: LD A,001H
+ LD (0804FH),A
+L7F64: INC HL
+ INC D
+L7F66: EX DE,HL
+ DEC H
+L7F68: INC H
+ LD A,(DE)
+ INC DE
+ CP 023H
+ JR Z,L7F68 ; (-007H)
+ CP 02CH
+ JR NZ,L7F7A ; (+007H)
+ LD A,001H
+ LD (07FFFH),A
+ JR L7F68 ; (-012H)
+
+L7F7A: CP 02EH
+ JR Z,L7FA1 ; (+023H)
+ CP 02DH
+ JR NZ,L7F8A ; (+008H)
+ LD A,001H
+ LD (08045H),A
+ INC DE
+ JR L7F9A ; (+010H)
+
+L7F8A: CP 02BH
+ JR NZ,L7F9A ; (+00cH)
+ LD A,(0804FH)
+ OR A
+ JR NZ,L7F9A ; (+006H)
+ LD A,001H
+ LD (0804AH),A
+ INC DE
+L7F9A: DEC DE
+ LD A,H
+ LD (0802CH),A
+ JR L7FD4 ; (+033H)
+
+L7FA1: LD A,H
+ LD (0802CH),A
+ LD H,0FFH
+L7FA7: INC H
+ LD A,(DE)
+ INC DE
+ CP 023H
+ JR Z,L7FA7 ; (-007H)
+ CP 02DH
+ JR NZ,L7FBA ; (+008H)
+ LD A,001H
+ LD (08045H),A
+ INC DE
+ JR L7FCA ; (+010H)
+
+L7FBA: CP 02BH
+ JR NZ,L7FCA ; (+00cH)
+ LD A,(0804FH)
+ OR A
+ JR NZ,L7FCA ; (+006H)
+ LD A,001H
+ LD (0804AH),A
+ INC DE
+L7FCA: DEC DE
+ LD A,H
+ LD (07FF5H),A
+ JR L7FD4 ; (+003H)
+
+L7FD1: POP DE
+ JR L7FE6 ; (+012H)
+
+L7FD4: LD H,004H
+ PUSH DE
+L7FD7: LD A,(DE)
+ INC DE
+ CP 05EH
+ JR NZ,L7FD1 ; (-00cH)
+ DEC H
+ JR NZ,L7FD7 ; (-009H)
+ POP AF
+ LD A,001H
+ LD (07FF8H),A
+L7FE6: POP HL
+ PUSH DE
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ LD (0807CH),A
+ LD A,(0802CH)
+ LD D,A
+ LD A,000H
+ LD E,A
+ LD A,000H
+ PUSH BC
+ CALL L80E5
+ POP BC
+ LD A,000H
+ OR A
+ JR Z,L8044 ; (+041H)
+ PUSH BC
+ PUSH DE
+ LD A,(0802CH)
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ LD DE,L9E6A
+ LD C,000H
+ DEC HL
+L8012: LD B,003H
+L8014: LD A,(HL)
+ CP 020H
+ JR Z,L802B ; (+012H)
+ INC C
+ LD (DE),A
+ INC DE
+ DEC HL
+ DJNZ L8014 ; (-00bH)
+ LD A,(HL)
+ CP 020H
+ JR Z,L802B ; (+007H)
+ LD A,02CH
+ LD (DE),A
+ INC DE
+ INC C
+ JR L8012 ; (-019H)
+
+L802B: LD A,000H
+ CP C
+ JP C,06367H
+ LD B,C
+ LD L,A
+ LD H,000H
+ POP DE
+ PUSH DE
+ ADD HL,DE
+ LD DE,L9E6A
+ DEC HL
+L803C: LD A,(DE)
+ LD (HL),A
+ DEC HL
+ INC DE
+ DJNZ L803C ; (-006H)
+ POP DE
+ POP BC
+L8044: LD A,000H
+ OR A
+ JR NZ,L8086 ; (+03dH)
+ LD A,000H
+ OR A
+ JR NZ,L8086 ; (+038H)
+ LD A,000H
+ OR A
+ JR NZ,L807B ; (+028H)
+ LD A,(0807CH)
+ RLCA
+ JR NC,L8086 ; (+02dH)
+ LD A,(DE)
+ CP 020H
+ LD H,02DH
+ JR Z,L8065 ; (+005H)
+ CP 030H
+ JP NZ,06367H
+L8065: PUSH DE
+L8066: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L8066 ; (-006H)
+ CP 030H
+ JR Z,L8066 ; (-00aH)
+ OR A
+ JR NZ,L8074 ; (+001H)
+ DEC DE
+L8074: DEC DE
+ DEC DE
+ LD A,H
+ LD (DE),A
+ POP DE
+ JR L8086 ; (+00bH)
+
+L807B: LD A,000H
+ RLCA
+ LD H,02BH
+ JR NC,L8065 ; (-01dH)
+ LD H,02DH
+ JR L8065 ; (-021H)
+
+L8086: DB 03EH
+L8087: NOP
+ OR A
+ JR Z,L809E ; (+013H)
+ LD A,(DE)
+ CP 020H
+ JR NZ,L809E ; (+00eH)
+ PUSH DE
+L8091: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L8091 ; (-006H)
+ DEC DE
+ DEC DE
+ LD A,(L8087)
+ LD (DE),A
+ POP DE
+L809E: LD A,000H
+ OR A
+ JR Z,L80B0 ; (+00dH)
+ PUSH DE
+L80A4: LD A,(DE)
+ CP 020H
+ JR NZ,L80AF ; (+006H)
+ LD A,02AH
+ LD (DE),A
+ INC DE
+ JR L80A4 ; (-00bH)
+
+L80AF: POP DE
+L80B0: LD A,(DE)
+ OR A
+ JR Z,L80B9 ; (+005H)
+ LD (BC),A
+ INC BC
+ INC DE
+ JR L80B0 ; (-009H)
+
+L80B9: LD A,(0804AH)
+ OR A
+ JR Z,L80CD ; (+00eH)
+ LD A,(0807CH)
+ RLCA
+ LD A,02BH
+L80C5: JR NC,L80C9 ; (+002H)
+ LD A,02DH
+L80C9: LD (BC),A
+ INC BC
+ JR L80DB ; (+00eH)
+
+L80CD: LD A,(08045H)
+ OR A
+ JR Z,L80DB ; (+008H)
+ LD A,(0807CH)
+ RLCA
+ LD A,020H
+ JR L80C5 ; (-016H)
+
+L80DB: POP HL
+ JP L7E77
+
+L80DF: CP 0FBH
+ RET Z
+ CP 024H
+ RET
+
+L80E5: OR A
+ JP Z,L8170
+ PUSH DE
+ LD A,(HL)
+ OR A
+ JR Z,L812D ; (+03fH)
+ PUSH HL
+ LD A,D
+ LD DE,L9EA5
+ PUSH AF
+ CALL L79C2
+ POP AF
+ OR A
+ JR Z,L8106 ; (+00bH)
+ LD B,A
+ LD HL,L9EA5
+ JR L8104 ; (+003H)
+
+L8101: CALL L7BDD
+L8104: DJNZ L8101 ; (-005H)
+L8106: POP HL
+ LD B,000H
+L8109: LD DE,L9EA5
+ CALL L7B7C
+ JR C,L8117 ; (+006H)
+ CALL L7B31
+ INC B
+ JR L8109 ; (-00eH)
+
+L8117: PUSH HL
+ LD HL,L9EA5
+ CALL L7B31
+ POP HL
+L811F: LD DE,L9EA5
+ CALL L7B7C
+ JR NC,L812D ; (+006H)
+ CALL L7BDD
+ DEC B
+ JR L811F ; (-00eH)
+
+L812D: POP DE
+ PUSH BC
+ CALL L818A
+ POP BC
+ PUSH DE
+ LD A,(DE)
+ CP 02EH
+ JR NZ,L814B ; (+012H)
+ LD DE,L9E7A
+ DEC DE
+ LD A,(DE)
+ CP 031H
+ POP DE
+ PUSH DE
+ JR NZ,L8167 ; (+023H)
+ EX DE,HL
+ INC HL
+ LD (HL),031H
+ DEC HL
+ JR L8165 ; (+01aH)
+
+L814B: LD A,(DE)
+ CP 031H
+ JR NZ,L8167 ; (+017H)
+ EX DE,HL
+ INC HL
+ LD A,(HL)
+ DEC HL
+ CP 02EH
+ LD A,030H
+ JR Z,L815C ; (+002H)
+ LD A,020H
+L815C: LD (HL),A
+L815D: INC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L815D ; (-006H)
+ LD (HL),031H
+L8165: EX DE,HL
+ INC B
+L8167: LD A,(DE)
+ INC DE
+ OR A
+ JR NZ,L8167 ; (-005H)
+ DEC DE
+ JP L7C8F
+
+L8170: PUSH DE
+ CALL L818A
+ POP AF
+ OR A
+ RET NZ
+ PUSH HL
+ LD HL,L9E7A
+ DEC HL
+ LD A,030H
+ CP (HL)
+L817F: JP NZ,06367H
+ DEC HL
+ LD A,020H
+ CP (HL)
+ JR NZ,L817F ; (-009H)
+ POP HL
+ RET
+
+L818A: PUSH DE
+ CALL L7CE0
+ JP C,06367H
+ POP HL
+ PUSH HL
+ LD H,000H
+ INC L
+ JR Z,L8199 ; (+001H)
+ DEC L
+L8199: LD DE,L9E7B
+ ADD HL,DE
+ LD A,(HL)
+ LD (HL),000H
+ LD DE,03036H
+ CP 035H
+ JR C,L81B6 ; (+00fH)
+L81A7: DEC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L81A7 ; (-006H)
+ INC A
+ JP Z,06367H
+ LD (HL),A
+ CP 03AH
+ JR Z,081A1H ; (-015H)
+L81B6: LD HL,L11A3
+ LD DE,L2000
+L81BC: LD (HL),D
+ INC HL
+ DEC E
+ JR NZ,L81BC ; (-005H)
+ POP HL
+ PUSH HL
+ LD E,H
+ LD D,000H
+ LD HL,L11A4
+ ADD HL,DE
+ PUSH HL
+ LD HL,L9E71
+ LD (HL),020H
+ INC HL
+ LD D,007H
+L81D3: LD A,(HL)
+ CP 030H
+ JR NZ,L81DE ; (+006H)
+ LD (HL),020H
+ INC HL
+ DEC D
+ JR NZ,L81D3 ; (-00bH)
+L81DE: POP HL
+ PUSH HL
+ LD B,E
+ LD A,B
+ OR A
+ JR Z,L81FC ; (+017H)
+ LD DE,L9E7A
+L81E8: DEC HL
+ DEC DE
+ LD A,(DE)
+ LD (HL),A
+ CP 020H
+ JR Z,L81FC ; (+00cH)
+ DJNZ L81E8 ; (-00aH)
+ DEC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L81FC ; (+004H)
+ INC A
+ JP NZ,06367H
+L81FC: POP HL
+ POP DE
+ INC E
+ JR Z,L8210 ; (+00fH)
+ LD B,E
+ LD DE,L9E7B
+ LD (HL),02EH
+L8207: INC HL
+ DEC B
+ JR Z,L8210 ; (+005H)
+ LD A,(DE)
+ INC DE
+ LD (HL),A
+ JR L8207 ; (-009H)
+
+L8210: LD (HL),000H
+ LD DE,L11A4
+ RET
+
+L8216: PUSH DE
+ PUSH BC
+ LD C,000H
+ DEC DE
+L821B: INC DE
+L821C: CALL L839C
+ OR A
+ JR Z,L8253 ; (+031H)
+ CP 0FFH
+ JR Z,L8257 ; (+031H)
+ CP 080H
+ JP NC,L6364
+ CP 020H
+ JR C,L821B ; (-014H)
+ LD IX,L821C
+ PUSH IX
+ CP 022H
+ JR Z,L8272 ; (+039H)
+ CP 027H
+ JR Z,L8265 ; (+028H)
+ CP 03FH
+ JR Z,L825E ; (+01dH)
+ CP 02EH
+ JP Z,L83BF
+ CP 024H
+ JP Z,L83D9
+ CALL L79F6
+ JR C,L829A ; (+04aH)
+ JP L83A6
+
+L8253: LD (HL),A
+ POP BC
+ POP DE
+ RET
+
+L8257: LD (HL),LSE4
+ CALL L827E
+ JR L821C ; (-042H)
+
+L825E: LD A,08FH
+ CALL L827D
+ JR L82D5 ; (+070H)
+
+L8265: LD (HL),03AH
+ CALL L827E
+ LD (HL),027H
+ CALL L827F
+ JP L833C
+
+L8272: LD (HL),A
+ CALL L827E
+L8276: LD A,(DE)
+ OR A
+ RET Z
+ CP 022H
+ JR NZ,L8272 ; (-00bH)
+L827D: LD (HL),A
+L827E: INC DE
+L827F: INC HL
+L8280: INC C
+ RET NZ
+ JP 06379H
+
+L8285: POP BC
+ LD A,(DE)
+ CALL L79FD
+ JR C,L827D ; (-00fH)
+L828C: CALL L827D
+ LD A,(DE)
+ CP 024H
+ JR Z,L827D ; (-017H)
+ CALL L79F6
+ RET C
+ JR L828C ; (-00eH)
+
+L829A: PUSH BC
+ LD BC,CTBL1
+ CALL L834B
+ JR NC,L82D1 ; (+02eH)
+ LD BC,GTABL
+ CALL L834B
+ LD C,0FEH
+ JR NC,L82B7 ; (+00aH)
+ LD BC,CTBL2
+ CALL L834B
+ LD C,0FFH
+ JR C,L8285 ; (-032H)
+L82B7: LD (HL),C
+ INC HL
+ LD (HL),A
+ POP BC
+ CALL L8280
+ CALL L827F
+ CP 0B4H
+ RET NZ
+ CALL L839C
+ CP 03DH
+ RET NZ
+ LD (HL),SIOAD
+ CALL L827E
+ JR L8311 ; (+040H)
+
+L82D1: POP BC
+ CALL L827F
+L82D5: CP 097H
+ JR Z,L833C ; (+063H)
+ CP 094H
+ JR Z,L833C ; (+05fH)
+ CP 0C2H
+ JR Z,L8332 ; (+051H)
+ CP LSE2
+ JR Z,L8311 ; (+02cH)
+ CP LSE0
+ RET NC
+ PUSH AF
+ CALL L839C
+ CP 02FH
+ JR NZ,L82FD ; (+00dH)
+ LD (HL),0FBH
+ CALL L827E
+ CALL L79BC
+ CALL L827D
+ JR L830D ; (+010H)
+
+L82FD: CP 023H
+ JR NZ,L830D ; (+00cH)
+ CALL L827D
+ CALL L79BC
+ CALL L79F6
+ CALL NC,L83A6
+L830D: POP AF
+ CP 08DH
+ RET NC
+L8311: CALL L839C
+ CP 022H
+ JR NZ,L831D ; (+005H)
+ CALL L8272
+ JR L8311 ; (-00cH)
+
+L831D: CP 02CH
+ RET C
+ CP 02FH
+ JR C,L832D ; (+009H)
+ CALL L79F6
+ RET C
+ CALL L83D0
+ JR L8311 ; (-01cH)
+
+L832D: CALL L827D
+ JR L8311 ; (-021H)
+
+L8332: DB 02BH
+ LD (HL),03AH
+ INC HL
+ LD (HL),A
+ CALL L827F
+ JR L8311 ; (-02bH)
+
+L833C: LD A,(DE)
+ CALL L5966
+ RET Z
+ CALL L827D
+ CP 022H
+ CALL Z,L8276
+ JR L833C ; (-00fH)
+
+L834B: PUSH HL
+ PUSH DE
+ LD H,B
+ LD L,C
+ LD B,07FH
+L8351: POP DE
+ PUSH DE
+ INC B
+ LD A,(HL)
+ CP 0FFH
+ JR NZ,L835D ; (+004H)
+ POP DE
+ POP HL
+ SCF
+ RET
+
+L835D: CP 02EH
+ JR NZ,L836A ; (+009H)
+ INC HL
+ DEC DE
+ LD A,(DE)
+ INC DE
+ CALL L79FD
+ JR NC,L8389 ; (+01fH)
+L836A: LD A,(DE)
+ CP 020H
+ JR NZ,L837B ; (+00cH)
+ LD A,(HL)
+ AND 07FH
+ SUB 041H
+ CP 01AH
+ JR C,L8389 ; (+011H)
+ CALL L79BB
+L837B: LD C,(HL)
+ INC HL
+ INC DE
+ CP 02EH
+ JR Z,L8391 ; (+00fH)
+ SUB C
+ JR Z,L836A ; (-01bH)
+ CP 080H
+ JR Z,L8397 ; (+00eH)
+L8389: DEC HL
+L838A: BIT 7,(HL)
+ INC HL
+ JR Z,L838A ; (-005H)
+ JR L8351 ; (-040H)
+
+L8391: LD A,B
+ CP 0E8H
+ JR NC,L8389 ; (-00dH)
+ CCF
+L8397: POP HL
+ POP HL
+ LD (HL),B
+ LD A,B
+ RET
+
+L839C: LD A,(DE)
+ CP 020H
+ RET NZ
+ LD (HL),A
+ CALL L827E
+ JR L839C ; (-00aH)
+
+L83A6: EX AF,AF'
+ PUSH DE
+ CALL L79BB
+ POP DE
+ CALL L79F6
+ JR NC,L83BF ; (+00eH)
+ CP 02EH
+ JR Z,L83BF ; (+00aH)
+ CP 045H
+ JR Z,L83BF ; (+006H)
+ EX AF,AF'
+ SUB 02FH
+ JP L83BF
+
+L83BF: PUSH BC
+ LD (HL),015H
+ INC HL
+ PUSH HL
+ CALL L7A0E
+ POP HL
+ LD BC,00005H
+ ADD HL,BC
+ LD A,006H
+ JR L83F3 ; (+023H)
+
+L83D0: PUSH BC
+ CALL L8532
+ LD (HL),00BH
+ INC HL
+ JR L83ED ; (+014H)
+
+L83D9: LD (HL),A
+ INC DE
+ LD A,(DE)
+ RST 018H
+ DB 015H
+ JP C,L827F
+ PUSH BC
+ LD (HL),011H
+ INC HL
+ PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 014H
+ LD B,D
+ LD C,E
+ EX DE,HL
+ POP HL
+L83ED: LD A,003H
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+L83F3: POP BC
+ ADD A,C
+ JP C,06379H
+ LD C,A
+L83F9: DEC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L83F9 ; (-006H)
+ INC DE
+ RET
+
+L8401: PUSH HL
+ PUSH DE
+ PUSH BC
+ EXX
+ LD B,000H
+ EXX
+ LD C,000H
+L840A: LD A,(HL)
+ OR A
+ JR Z,L843E ; (+030H)
+ LD BC,L840A
+ PUSH BC
+ CP 027H
+ JR Z,L8458 ; (+042H)
+ INC HL
+ LD BC,CTBL1
+ CP 020H
+ JR C,L8480 ; (+062H)
+ CP 022H
+ JR Z,L8469 ; (+047H)
+ CP 03AH
+ JR Z,L8476 ; (+050H)
+ CP 097H
+ JR Z,L8454 ; (+02aH)
+ CP 094H
+ JR Z,L8454 ; (+026H)
+ CP LSE4
+ JR Z,L8443 ; (+011H)
+ CP 0FEH
+ JR NC,L8448 ; (+012H)
+ CP 080H
+ JP NC,L84C4
+ JP L84E1
+
+L843E: LD (DE),A
+ POP BC
+ POP DE
+ POP HL
+ RET
+
+L8443: LD A,0FFH
+ JP L84E1
+
+L8448: LD BC,CTBL2
+ JR NZ,L8450 ; (+003H)
+ LD BC,GTABL
+L8450: LD A,(HL)
+ INC HL
+ JR L84C4 ; (+070H)
+
+L8454: CALL L84C4
+ RET Z
+L8458: LD A,(HL)
+ CALL L5966
+ RET Z
+ CALL L84E1
+ LD A,(HL)
+ INC HL
+ CP 022H
+ CALL Z,L846C
+ JR L8458 ; (-011H)
+
+L8469: CALL L84E1
+L846C: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ JR NZ,L8469 ; (-00bH)
+ JR L84E1 ; (+06bH)
+
+L8476: LD (DE),A
+ LD A,(HL)
+ CP 0C2H
+ RET Z
+ CP 027H
+ RET Z
+ JR L84E4 ; (+064H)
+
+L8480: CP 015H
+ JR Z,L84B4 ; (+030H)
+ CP 00BH
+ JR NC,L848D ; (+005H)
+ DEC A
+ OR 030H
+ JR L84E1 ; (+054H)
+
+L848D: PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ PUSH HL
+ CP 012H
+ JR Z,L84A3 ; (+00cH)
+ CP 00CH
+ JR C,L84A3 ; (+008H)
+ JR NZ,L84F0 ; (+053H)
+ EX DE,HL
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L84A3: EX DE,HL
+ CALL L7998
+ LD B,D
+ LD C,E
+ POP HL
+ POP DE
+L84AB: LD A,(BC)
+ OR A
+ RET Z
+ CALL L84E1
+ INC BC
+ JR L84AB ; (-009H)
+
+L84B4: PUSH HL
+ PUSH DE
+ CALL L7D4E
+ LD B,D
+ LD C,E
+ POP DE
+ POP HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ JR L84AB ; (-019H)
+
+L84C4: CP 080H
+ JR Z,L84D2 ; (+00aH)
+ EX AF,AF'
+L84C9: LD A,(BC)
+ RLCA
+ INC BC
+ JR NC,L84C9 ; (-005H)
+ EX AF,AF'
+ DEC A
+ JR L84C4 ; (-00eH)
+
+L84D2: LD A,(BC)
+ BIT 7,A
+ JR NZ,L84DF ; (+008H)
+ CP 02EH
+ CALL NZ,L84E1
+ INC BC
+ JR L84D2 ; (-00dH)
+
+L84DF: AND 07FH
+L84E1: LD (DE),A
+ OR A
+ RET Z
+L84E4: INC DE
+ EXX
+ INC B
+ EXX
+ RET NZ
+ XOR A
+ LD (DE),A
+ DEC DE
+ EXX
+ DEC B
+ EXX
+ RET
+
+L84F0: LD A,024H
+ EX AF,AF'
+ EX DE,HL
+ CALL L8501
+ LD B,D
+ LD C,E
+ POP HL
+ POP DE
+ EX AF,AF'
+ CALL L84E1
+ JR L84AB ; (-056H)
+
+L8501: LD DE,L9E76
+ PUSH DE
+ LD A,H
+ CALL L851A
+ LD A,L
+ CALL L851A
+ XOR A
+ LD (DE),A
+ POP DE
+ LD B,003H
+L8512: LD A,(DE)
+ CP 030H
+ RET NZ
+ INC DE
+ DJNZ L8512 ; (-007H)
+ RET
+
+L851A: PUSH AF
+ RRCA
+ RRCA
+ RRCA
+ RRCA
+ AND 00FH
+ CALL L8527
+ POP AF
+ AND 00FH
+L8527: ADD A,030H
+ CP 03AH
+ JR C,L852F ; (+002H)
+ ADD A,007H
+L852F: LD (DE),A
+ INC DE
+ RET
+
+L8532: PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 013H
+ LD B,D
+ LD C,E
+ EX DE,HL
+ DB LSE1
+ DB 0C3H
+ DB 0F9H
+ DB 083H
+L853D: DB LSRF
+ LD D,C
+ ADD A,L
+L8540: LD A,D
+ OR A
+ JP NZ,0636AH
+ LD A,E
+ RET
+
+L8547: CALL L858E
+ DEC DE
+ DEC DE
+ DEC DE
+ DEC DE
+ DEC DE
+ JR L8554 ; (+003H)
+
+L8551: CALL L857C
+L8554: PUSH AF
+ PUSH HL
+ EX DE,HL
+ CALL L903F
+ CALL L7BEA
+ EX DE,HL
+ POP HL
+ POP AF
+ RET
+
+L8561: CALL L857C
+ PUSH AF
+ CALL L9036
+ PUSH HL
+ EX DE,HL
+ CALL L8570
+ POP HL
+ POP AF
+ RET
+
+L8570: LD B,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ EX DE,HL
+ LD A,B
+ RET
+
+L857C: LD DE,(VARED)
+ LD (TMPEND),DE
+L8584: LD DE,(INTFAC)
+ PUSH DE
+ CALL L858E
+ POP DE
+ RET
+
+L858E: PUSH DE
+ LD DE,(TMPEND)
+ CALL L8C08
+ POP DE
+ CALL L85B2
+L859A: CP 0EAH
+ RET NZ
+ LD A,(L9E9C)
+ PUSH AF
+ INC HL
+ CALL L85B2
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L8BE5
+ CALL 0959CH
+ POP HL
+ POP AF
+ JR L859A ; (-018H)
+
+L85B2: CALL L85CD
+L85B5: CP 0EBH
+ RET NZ
+ LD A,(L9E9C)
+ PUSH AF
+ INC HL
+ CALL L85CD
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L8BE5
+ CALL 09599H
+ POP HL
+ POP AF
+ JR L85B5 ; (-018H)
+
+L85CD: CALL L85E8
+L85D0: CP 0ECH
+ RET NZ
+ LD A,(L9E9C)
+ PUSH AF
+ INC HL
+ CALL L85E8
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L8BE5
+ CALL L9596
+ POP HL
+ POP AF
+ JR L85D0 ; (-018H)
+
+L85E8: CALL TEST1
+ DB 0EDH
+ JR NZ,L85FD ; (+00fH)
+ CALL L85FD
+ PUSH AF
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L9586
+ POP HL
+ POP AF
+ RET
+
+L85FD: CALL L8667
+L8600: CP 0EEH
+ RET C
+ PUSH AF
+ LD A,(L9E9C)
+ PUSH AF
+ INC HL
+ CALL L8667
+ POP BC
+ EX (SP),HL
+ PUSH AF
+ PUSH HL
+ CALL L8BE5
+ CALL L9153
+ EX AF,AF'
+ POP AF
+ CP 0F6H
+ JR NZ,L863A ; (+01eH)
+ EX AF,AF'
+ JR C,L8635 ; (+016H)
+L861F: LD BC,L0000
+L8622: LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ XOR A
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ LD A,005H
+ LD (L9E9C),A
+ POP AF
+ POP HL
+ JR L8600 ; (-035H)
+
+L8635: LD BC,08081H
+ JR L8622 ; (-018H)
+
+L863A: CP SIOBD
+ JR NZ,L8645 ; (+007H)
+ EX AF,AF'
+ JR Z,L861F ; (-022H)
+ JR C,L861F ; (-024H)
+ JR L8635 ; (-010H)
+
+L8645: CP SIOAD
+ JR NZ,L864E ; (+005H)
+ EX AF,AF'
+ JR Z,L8635 ; (-017H)
+ JR L861F ; (-02fH)
+
+L864E: CP PSGA
+ JR C,L8657 ; (+005H)
+ EX AF,AF'
+ JR NC,L8635 ; (-020H)
+ JR L861F ; (-038H)
+
+L8657: CP LSPAL
+ JR C,L8662 ; (+007H)
+ EX AF,AF'
+ JR Z,L8635 ; (-029H)
+ JR C,L8635 ; (-02bH)
+ JR L861F ; (-043H)
+
+L8662: EX AF,AF'
+ JR Z,L861F ; (-046H)
+ JR L8635 ; (-032H)
+
+L8667: CALL L8692
+L866A: CP SIOBC
+ RET C
+ LD A,(L9E9C)
+ PUSH AF
+ INC HL
+ JR Z,L8684 ; (+010H)
+ CALL L8692
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L8BE5
+ CALL L90B3
+L8680: POP HL
+ POP AF
+ JR L866A ; (-01aH)
+
+L8684: CALL L8692
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L8BE5
+ CALL L90BC
+ JR L8680 ; (-012H)
+
+L8692: CALL L86BD
+L8695: CP 0F9H
+ RET C
+ LD A,(L9E9C)
+ PUSH AF
+ INC HL
+ JR Z,L86AF ; (+010H)
+ CALL L86BD
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L8BE5
+ CALL L95F2
+L86AB: POP HL
+ POP AF
+ JR L8695 ; (-01aH)
+
+L86AF: CALL L86BD
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L8BE5
+ CALL L9611
+ JR L86AB ; (-012H)
+
+L86BD: CALL L86E8
+L86C0: CP 0FBH
+ RET C
+ LD A,(L9E9C)
+ PUSH AF
+ INC HL
+ JR Z,L86DA ; (+010H)
+ CALL L86E8
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L8BE5
+ CALL L92EA
+L86D6: POP HL
+ POP AF
+ JR L86C0 ; (-01aH)
+
+L86DA: CALL L86E8
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L8BE5
+ CALL L93D5
+ JR L86D6 ; (-012H)
+
+L86E8: CALL TEST1
+ DB SIOBC
+ JR Z,L86E8 ; (-006H)
+ CP 0F8H
+ JR NZ,L86F8 ; (+006H)
+ INC HL
+ CALL L86F8
+ JR L8721 ; (+029H)
+
+L86F8: CALL L872D
+L86FB: CP 0FDH
+ RET NZ
+ LD A,(L9E9C)
+ PUSH AF
+ INC HL
+ CALL L8713
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L8BE5
+ CALL L950A
+ POP HL
+ POP AF
+ JR L86FB ; (-018H)
+
+L8713: CALL TEST1
+ DB SIOBC
+ JR Z,L8713 ; (-006H)
+ CP 0F8H
+ JR NZ,L872D ; (+010H)
+ INC HL
+ CALL L872D
+L8721: PUSH AF
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L90A6
+ POP HL
+ POP AF
+ RET
+
+L872D: CALL L5963
+ JP Z,L6364
+ CALL L8739
+ JP HLFTCH
+
+L8739: PUSH HL
+ LD HL,(L107E)
+ SCF
+ SBC HL,DE
+ JP C,06373H
+ POP HL
+ CP LSE4
+ JR Z,L8756 ; (+00eH)
+ CP 020H
+ JR NC,L8796 ; (+04aH)
+L874C: INC HL
+ CP 015H
+ JR C,L8765 ; (+014H)
+ CALL L79C5
+ JR L875F ; (+009H)
+
+L8756: INC HL
+ PUSH HL
+ LD HL,L98C6
+ CALL L79C5
+ POP HL
+L875F: LD A,005H
+L8761: LD (L9E9C),A
+ RET
+
+L8765: CP 00BH
+ JR NC,L8772 ; (+009H)
+ DEC A
+ JP M,L6364
+ LD B,000H
+ LD C,A
+ JR L8783 ; (+011H)
+
+L8772: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ CP 00CH
+ JR NZ,L8783 ; (+009H)
+ INC BC
+ INC BC
+ LD A,(BC)
+ INC BC
+ EX AF,AF'
+ LD A,(BC)
+ LD B,A
+ EX AF,AF'
+ LD C,A
+L8783: PUSH HL
+ PUSH DE
+ EX DE,HL
+ LD E,C
+ LD D,B
+ CALL L79CB
+ POP DE
+ POP HL
+ LD A,005H
+L878F: INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ JR L8761 ; (-035H)
+
+L8796: CP 022H
+ JR NZ,L87C9 ; (+02fH)
+ INC HL
+ PUSH HL
+ CALL L8BF0
+ EX (SP),HL
+ PUSH HL
+ LD HL,(L107A)
+ PUSH BC
+ LD BC,(STRST)
+ OR A
+ SBC HL,BC
+ POP BC
+ EX DE,HL
+ LD (HL),B
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ POP DE
+ PUSH HL
+ LD HL,(L107A)
+ CALL L8BFC
+ LD (L107A),HL
+ POP DE
+ POP HL
+ LD A,003H
+ LD (L9E9C),A
+ RET
+
+L87C9: CP 028H
+ JR NZ,L87D4 ; (+007H)
+ INC HL
+ CALL L858E
+ JP L79AD
+
+L87D4: OR A
+ JP P,L8E15
+ CP 0E7H
+ INC HL
+ JR NZ,L87E4 ; (+007H)
+ LD B,005H
+ LD A,0A8H
+ PUSH AF
+ JR L8813 ; (+02fH)
+
+L87E4: CP 0FFH
+ JP NZ,L6364
+ LD A,(HL)
+ INC HL
+ CP 0A0H
+ JP Z,L889F
+ CP 0C8H
+ JP NC,L6364
+ CP 0BAH
+ JR NC,L8843 ; (+04aH)
+ CP 09CH
+ JR Z,L8843 ; (+046H)
+ CP 09DH
+ JP Z,L8843
+ PUSH AF
+ CP 0B3H
+ JR NC,L8834 ; (+02dH)
+ LD B,003H
+ CP 0ABH
+ JR NC,L8813 ; (+006H)
+ LD B,005H
+ CP 088H
+ JR Z,L882E ; (+01bH)
+L8813: CALL L79A3
+L8816: PUSH BC
+ CALL L858E
+ CALL L79AD
+ POP AF
+ CALL L9032
+L8821: POP AF
+ PUSH DE
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L8843
+ POP HL
+ POP DE
+ RET
+
+L882E: CALL TEST1
+ DB 028H
+ JR Z,L8816 ; (-01eH)
+L8834: LD A,005H
+ LD (L9E9C),A
+ PUSH HL
+ LD HL,L7C45
+ CALL L79C5
+ POP HL
+ JR L8821 ; (-022H)
+
+L8843: PUSH HL
+ ADD A,A
+ LD L,A
+ LD H,000H
+ LD BC,L5D79
+ ADD HL,BC
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ EX (SP),HL
+ RET
+
+L8852: EX DE,HL
+ LD HL,0FDF1H
+ ADD HL,SP
+ LD BC,(TMPEND)
+ OR A
+ SBC HL,BC
+ EX DE,HL
+ JR NC,L8880 ; (+01fH)
+ XOR A
+ JR L887D ; (+019H)
+
+L8864: LD A,(L1082)
+ JR L887D ; (+014H)
+
+L8869: LD A,(01083H)
+ JR L887D ; (+00fH)
+
+L886E: LD DE,(POINTX)
+ JR L8880 ; (+00cH)
+
+L8874: LD DE,(POINTY)
+ JR L8880 ; (+006H)
+
+L887A: LD A,(L9E53)
+L887D: LD E,A
+ LD D,000H
+L8880: LD A,005H
+ LD (L9E9C),A
+ JP L79CB
+
+L8888: LD DE,(09E55H)
+ CALL L79CB
+ INC HL
+ BIT 7,(HL)
+ DEC HL
+ RET Z
+ LD DE,L889A
+ JP L90BC
+
+L889A: SUB C
+ NOP
+ NOP
+ NOP
+ NOP
+L889F: CALL L79A3
+ LD B,000H
+L88A4: PUSH BC
+ PUSH DE
+ CALL L8547
+ CALL L8540
+ POP DE
+ POP BC
+ PUSH AF
+ INC B
+ CALL TEST1
+ DB 02CH
+ JR Z,L88A4 ; (-012H)
+ CALL L79AD
+ LD A,B
+ EXX
+ LD B,A
+ LD HL,(L107A)
+ CALL ADDHLA
+ LD D,H
+ LD E,L
+ CALL L8C08
+L88C7: DEC HL
+ POP AF
+ LD (HL),A
+ DJNZ L88C7 ; (-005H)
+ EXX
+ LD A,B
+ EXX
+ LD B,A
+L88D0: LD (TMPEND),DE
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ PUSH HL
+ LD A,B
+ EXX
+ EX DE,HL
+ LD (HL),A
+ INC HL
+ POP BC
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ LD BC,L0003
+ ADD HL,BC
+L88E9: EX DE,HL
+ LD A,003H
+ LD (L9E9C),A
+ RET
+
+L88F0: PUSH HL
+ CALL L7BEA
+ CALL L8501
+ RST 018H
+ DB 017H
+L88F9: LD A,B
+ OR A
+ JR Z,L890D ; (+010H)
+ LD HL,(L107A)
+ PUSH HL
+ PUSH BC
+ CALL L8BFC
+ POP BC
+ EX DE,HL
+ POP HL
+ EXX
+ POP DE
+ EXX
+ JR L88D0 ; (-03dH)
+
+L890D: POP HL
+ CALL L909E
+ JR L88E9 ; (-02aH)
+
+L8913: PUSH HL
+ CALL L8924
+ LD B,A
+ LD C,A
+ OR A
+ LD A,020H
+ PUSH DE
+ CALL NZ,?SETDE
+ POP DE
+ LD B,C
+ JR L88F9 ; (-02bH)
+
+L8924: CALL L7BEA
+ LD DE,L11A4
+ LD A,H
+ OR A
+ JP NZ,0636AH
+ LD A,L
+ RET
+
+L8931: PUSH HL
+ CALL L7B5B
+ LD A,(DE)
+ CP 020H
+ JR NZ,L893B ; (+001H)
+ INC DE
+L893B: RST 018H
+ DB 017H
+ JR L88F9 ; (-046H)
+
+L893F: CALL L79A3
+ CALL L6EF9
+ LD B,A
+ CALL L79AA
+ LD A,B
+ PUSH HL
+ PUSH DE
+ RST 018H
+ DB 029H
+ LD DE,0FFFFH
+ JR C,L895B ; (+008H)
+ INC HL
+ BIT 7,(HL)
+ JR NZ,L895B ; (+003H)
+ LD DE,L0000
+L895B: POP HL
+ CALL L79CB
+ LD A,005H
+ LD (L9E9C),A
+L8964: INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ POP HL
+ RET
+
+L896C: CALL L79A3
+ PUSH DE
+ CALL L8547
+ LD B,D
+ LD C,E
+ POP DE
+ PUSH DE
+ PUSH BC
+ CALL L79B4
+ CALL L8547
+ CALL L79AD
+ EX (SP),HL
+ EX DE,HL
+ RST 018H
+ DB 04EH
+ INC A
+ JP Z,0636AH
+ DEC A
+ POP DE
+ POP HL
+ PUSH DE
+ CALL L887D
+ JR L8964 ; (-02eH)
+
+L8992: PUSH HL
+ CALL L8570
+ OR A
+ JR Z,L899A ; (+001H)
+ LD A,(DE)
+L899A: JR L89A0 ; (+004H)
+
+L899C: PUSH HL
+ CALL L8570
+L89A0: POP HL
+ JP L887D
+
+L89A4: PUSH HL
+ CALL L8570
+ LD HL,(L107A)
+ PUSH HL
+ CALL L8BFC
+ LD (HL),000H
+ POP DE
+ POP HL
+ JP L7A0E
+
+L89B6: CALL L8A32
+ CALL L79AD
+ CALL L8A2B
+ EX DE,HL
+ LD A,(HL)
+ CP C
+ JR NC,L89C5 ; (+001H)
+ LD C,A
+L89C5: LD (HL),C
+ LD BC,00005H
+L89C9: LD A,003H
+ ADD HL,BC
+ EX DE,HL
+ LD (L9E9C),A
+ JP HLFTCH
+
+L89D3: CALL L8A32
+ CALL L79AD
+ CALL L8A2B
+ EX DE,HL
+ LD A,(HL)
+ SUB C
+ JR NC,L89E3 ; (+002H)
+ XOR A
+ LD C,(HL)
+L89E3: LD (HL),C
+ INC HL
+ ADD A,(HL)
+ LD (HL),A
+ INC HL
+ JR NC,L89EB ; (+001H)
+ INC (HL)
+L89EB: LD BC,L0003
+ JR L89C9 ; (-027H)
+
+L89F0: CALL L8A32
+ CALL L8A2B
+ OR A
+ JP Z,0636AH
+ PUSH AF
+ CALL TEST1
+ DB 029H
+ LD A,0FFH
+ JR Z,L8A17 ; (+014H)
+ CALL L79B1
+ PUSH DE
+ EX DE,HL
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ CALL L8547
+ CALL L79AD
+ CALL L8540
+ POP DE
+L8A17: POP BC
+ LD C,A
+ EX DE,HL
+ LD A,(HL)
+ SUB B
+ JR C,L8A27 ; (+009H)
+ INC A
+ CP C
+ JR NC,L8A23 ; (+001H)
+ LD C,A
+L8A23: LD A,B
+ DEC A
+ JR L89E3 ; (-044H)
+
+L8A27: XOR A
+ LD C,A
+ JR L89E3 ; (-048H)
+
+L8A2B: LD A,B
+ OR A
+ JP NZ,0636AH
+ LD A,C
+ RET
+
+L8A32: CALL L79A3
+ PUSH DE
+ CALL L858E
+ CALL L79B4
+ CALL L9036
+ CALL L8547
+ LD C,E
+ LD B,D
+ POP DE
+ RET
+
+L8A46: PUSH HL
+ PUSH DE
+ LD HL,(L107A)
+ PUSH HL
+ LD A,030H
+ LD B,006H
+ CALL ?SETHL
+ RST 018H
+ DB 025H
+ POP HL
+ OR A
+ JR Z,L8A5E ; (+005H)
+ INC (HL)
+ INC HL
+ INC (HL)
+ INC (HL)
+ DEC HL
+L8A5E: EX DE,HL
+ LD BC,08CA0H
+ CALL L8AD5
+ LD BC,L0E10
+ CALL L8AD5
+ CP 03AH
+ JR C,L8A79 ; (+00aH)
+ SUB 00AH
+ DEC DE
+ LD (DE),A
+ DEC DE
+ LD A,(DE)
+ INC A
+ LD (DE),A
+ INC DE
+ INC DE
+L8A79: DEC DE
+ DEC DE
+ LD A,(DE)
+ INC DE
+ LD B,A
+ LD A,(DE)
+ INC DE
+ LD C,A
+ LD A,B
+ CP 032H
+ JR NZ,L8A97 ; (+011H)
+ LD A,C
+ CP 034H
+ JR NZ,L8A97 ; (+00cH)
+ LD HL,(L107A)
+ LD A,030H
+ LD B,006H
+ CALL ?SETHL
+ JR L8AAD ; (+016H)
+
+L8A97: LD BC,L0258
+ CALL L8AD5
+ LD BC,0003CH
+ CALL L8AD5
+ LD BC,0000AH
+ CALL L8AD5
+ LD A,030H
+ ADD A,L
+ LD (DE),A
+L8AAD: LD HL,(L107A)
+ LD DE,L0006
+ EX DE,HL
+ ADD HL,DE
+ LD (L107A),HL
+ EX DE,HL
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ POP HL
+ LD (HL),006H
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ POP HL
+ LD A,003H
+ LD (L9E9C),A
+ JP HLFTCH
+
+L8AD5: OR A
+ SBC HL,BC
+ JR C,L8ADF ; (+005H)
+ LD A,(DE)
+ INC A
+ LD (DE),A
+ JR L8AD5 ; (-00aH)
+
+L8ADF: ADD HL,BC
+ INC DE
+ RET
+
+L8AE2: CALL TESTX
+ DB SIOAD
+ CALL L8561
+ LD A,B
+ CP 006H
+ JP NZ,0636AH
+ PUSH HL
+ PUSH DE
+ LD HL,L0000
+ CALL L8B23
+ CP 018H
+ JP NC,0636AH
+ CP 00CH
+ LD A,000H
+ JR C,L8B0B ; (+009H)
+ PUSH DE
+ LD DE,L000C
+ OR A
+ SBC HL,DE
+ POP DE
+ INC A
+L8B0B: PUSH AF
+ CALL L8B23
+ CP 03CH
+ JP NC,0636AH
+ CALL L8B23
+ CP 03CH
+ JP NC,0636AH
+ POP AF
+ EX DE,HL
+ RST 018H
+ DB 026H
+ POP DE
+ POP HL
+ RET
+
+L8B23: PUSH DE
+ LD D,H
+ LD E,L
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,DE
+ LD D,H
+ LD E,L
+ ADD HL,HL
+ ADD HL,DE
+ ADD HL,HL
+ ADD HL,HL
+ POP DE
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JP C,0636AH
+ CP 00AH
+ JP NC,0636AH
+ PUSH BC
+ LD C,A
+ ADD A,A
+ ADD A,A
+ ADD A,C
+ ADD A,A
+ LD C,A
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JP C,0636AH
+ CP 00AH
+ JP NC,0636AH
+ ADD A,C
+ LD C,A
+ LD B,000H
+ ADD HL,BC
+ POP BC
+ RET
+
+L8B56: LD DE,(VARED)
+ LD (TMPEND),DE
+ LD DE,(INTFAC)
+L8B62: PUSH DE
+ CALL L8BB5
+L8B66: LD A,(HL)
+ CP 028H
+ JP Z,L8C1B
+ PUSH HL
+ CALL L8ED6
+ JR NC,L8B78 ; (+006H)
+ LD A,C
+ LD C,L
+ LD B,H
+ POP HL
+ POP DE
+ RET
+
+L8B78: LD A,(DE)
+ ADD A,C
+ ADD A,002H
+ PUSH BC
+ EX DE,HL
+ LD HL,(L107A)
+ PUSH HL
+ OR A
+ SBC HL,DE
+ INC HL
+ LD C,L
+ LD B,H
+ POP HL
+ PUSH DE
+ EX DE,HL
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ EX DE,HL
+ CALL L8C08
+ LDDR
+ LD E,A
+ LD D,000H
+ RST 018H
+ DB 01AH
+ POP HL
+ POP BC
+ LD DE,L11A4
+ LD (HL),C
+ INC HL
+ SCF
+ SBC A,C
+ LD B,A
+L8BA4: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L8BA4 ; (-006H)
+ PUSH HL
+ LD B,C
+ CALL ?CLRHL
+ LD (HL),A
+ LD A,C
+ POP BC
+ POP HL
+ POP DE
+ RET
+
+L8BB5: CALL HLFTCH
+ SUB 041H
+ CP 01AH
+ JP NC,L6364
+ LD DE,L11A4
+ LD B,000H
+L8BC4: INC DE
+ LD A,(HL)
+ CALL L79FD
+ JR C,L8BD6 ; (+00bH)
+ LD (DE),A
+ INC B
+ LD A,B
+ CP 003H
+ JR C,L8BD3 ; (+001H)
+ DEC B
+L8BD3: INC HL
+ JR L8BC4 ; (-012H)
+
+L8BD6: LD DE,L11A4
+ EX DE,HL
+ LD (HL),B
+ EX DE,HL
+ LD C,005H
+ CP 024H
+ RET NZ
+ LD C,003H
+ INC HL
+ RET
+
+L8BE5: LD HL,0FFFBH
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ ADD HL,DE
+ LD A,B
+ JP L9032
+
+L8BF0: LD B,0FFH
+L8BF2: INC B
+ LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ RET Z
+ JR L8BF2 ; (-00aH)
+
+L8BFC: LD A,B
+ OR A
+ RET Z
+ CALL LDHLDE
+ EX DE,HL
+ CALL L8C08
+ EX DE,HL
+ RET
+
+L8C08: PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ SBC HL,DE
+ POP HL
+ RET NC
+ JP L63A7
+
+L8C14: LD DE,(INTFAC)
+ PUSH DE
+ JR L8C23 ; (+008H)
+
+L8C1B: XOR A
+ LD (L8E14),A
+ INC HL
+ LD (L8E12),HL
+L8C23: LD B,000H
+ EXX
+ POP HL
+ PUSH HL
+ PUSH HL
+ LD HL,(L107A)
+ LD DE,L11A4
+ PUSH HL
+ LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ LD B,A
+ CALL L8BFC
+ POP DE
+ LD (L107A),HL
+ LD HL,(L1076)
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX (SP),HL
+ PUSH HL
+ EXX
+L8C46: POP DE
+ PUSH DE
+ PUSH BC
+ LD BC,(08E12H)
+ LD A,(L8E14)
+ PUSH BC
+ PUSH AF
+ LD BC,(09E6AH)
+ PUSH BC
+ CALL L8547
+ BIT 7,D
+ JP NZ,0636AH
+ EX AF,AF'
+ POP BC
+ LD (09E6AH),BC
+ POP AF
+ LD (L8E14),A
+ POP BC
+ LD (08E12H),BC
+ EX AF,AF'
+ INC HL
+ CP 029H
+ JR Z,L8C8C ; (+018H)
+ CP 02CH
+ JP NZ,L6364
+ POP BC
+ INC B
+ LD A,B
+ CP 004H
+ JP NC,0636AH
+ EXX
+ POP HL
+ POP DE
+ EXX
+ PUSH DE
+ EXX
+ PUSH DE
+ PUSH HL
+ EXX
+ JR L8C46 ; (-046H)
+
+L8C8C: POP BC
+ EXX
+ POP HL
+ POP DE
+ EXX
+ INC B
+ PUSH DE
+ PUSH HL
+ EXX
+ LD HL,(L1076)
+ ADD HL,DE
+ LD B,(HL)
+ INC B
+ LD DE,L11A4
+ CALL LDDEHL
+ EXX
+ SET 7,C
+ CALL L8ED6
+ RES 7,C
+ JR NC,L8D01 ; (+056H)
+ LD A,B
+ CP (HL)
+ JP NZ,06376H
+ INC HL
+ EX DE,HL
+ POP HL
+ LD (L9E6A),HL
+ EXX
+ LD HL,L0000
+ EXX
+ EX DE,HL
+L8CBC: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX (SP),HL
+ PUSH DE
+ EXX
+ POP DE
+ CALL L8DE8
+ EXX
+ PUSH HL
+ OR A
+ SBC HL,DE
+ JP NC,0636AH
+ EXX
+ POP DE
+ CALL L8DE4
+ EXX
+ POP HL
+ DJNZ L8CBC ; (-01cH)
+ PUSH HL
+ EXX
+ LD A,C
+ LD D,B
+ BIT 6,A
+ JR NZ,L8CF4 ; (+014H)
+ AND 00FH
+ LD E,A
+ PUSH AF
+ CALL L8DE8
+ PUSH HL
+ EXX
+ POP BC
+ POP AF
+ POP HL
+ ADD HL,BC
+ LD C,L
+ LD B,H
+L8CEF: LD HL,(L9E6A)
+ POP DE
+ RET
+
+L8CF4: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD C,L
+ LD B,H
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ AND 00FH
+ JR L8CEF ; (-012H)
+
+L8D01: EXX
+ LD A,(L8E14)
+ OR A
+ JP Z,0636AH
+ POP HL
+ LD (L9E6A),HL
+ EXX
+ LD DE,(TMPEND)
+ LD L,B
+ LD H,000H
+ ADD HL,HL
+ ADD HL,DE
+ EX DE,HL
+ INC DE
+ CALL L8C08
+ LD (HL),B
+ INC HL
+ EXX
+ LD HL,00001H
+ EXX
+L8D23: POP DE
+ LD A,(L8E14)
+ OR A
+ JR NZ,L8D36 ; (+00cH)
+ PUSH HL
+ EX DE,HL
+ LD DE,0000AH
+ SCF
+ SBC HL,DE
+ JP NC,0636AH
+ POP HL
+L8D36: INC DE
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ PUSH DE
+ EXX
+ POP DE
+ CALL L8DE8
+ EXX
+ DJNZ L8D23 ; (-021H)
+ DB 059H
+ LD D,000H
+ PUSH BC
+ PUSH DE
+ EXX
+ POP DE
+ CALL L8DE8
+ PUSH HL
+ EXX
+ POP BC
+ PUSH BC
+ EX DE,HL
+ LD HL,(L107A)
+ LD L,(HL)
+ LD H,000H
+ ADD HL,HL
+ LD A,(L11A4)
+ ADD A,005H
+ ADD A,L
+ LD L,A
+ LD A,000H
+ ADC A,H
+ LD H,A
+ JR C,L8D6C ; (+005H)
+ ADD HL,BC
+ JR C,L8D6C ; (+002H)
+ PUSH HL
+ ADD HL,DE
+L8D6C: JP C,L63A7
+ EX DE,HL
+ CALL L8C08
+ PUSH HL
+ EXX
+ POP HL
+ LD BC,(STRST)
+ DEC BC
+ OR A
+ SBC HL,BC
+ PUSH HL
+ EXX
+ POP BC
+ LDDR
+ POP DE
+ RST 018H
+ DB 01AH
+ POP BC
+ PUSH DE
+ EXX
+ POP DE
+ LD H,B
+ LD L,C
+ POP BC
+ LD A,C
+ OR 080H
+ LD (HL),A
+ INC HL
+ DEC DE
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,L11A4
+ LD A,(DE)
+ INC A
+ LD B,A
+ CALL LDHLDE
+ LD DE,(TMPEND)
+ LD A,(DE)
+ LD (HL),A
+ INC HL
+ INC DE
+ ADD A,A
+ LD B,A
+ CALL LDHLDE
+ PUSH HL
+ EXX
+ POP HL
+L8DB0: XOR A
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L8DB0 ; (-008H)
+ LD (HL),A
+ EXX
+ POP DE
+ LD A,(L8E14)
+ OR A
+ JR Z,L8DC5 ; (+004H)
+ LD HL,(L9E6A)
+ RET
+
+L8DC5: LD HL,(L8E12)
+ PUSH DE
+ JP L8C23
+
+L8DCC: LD A,0FFH
+ LD (L8E14),A
+L8DD1: CALL L8BB5
+ LD A,(HL)
+ CALL L79A6
+ CALL L8C14
+ CALL HLFTCH
+ CP 02CH
+ RET NZ
+ INC HL
+ JR L8DD1 ; (-013H)
+
+L8DE4: ADD HL,DE
+ RET NC
+ JR L8E0F ; (+027H)
+
+L8DE8: PUSH BC
+ EX DE,HL
+ LD C,L
+ LD A,H
+ LD HL,L0000
+ CALL L8DF8
+ LD A,C
+ CALL L8DF8
+ POP BC
+ RET
+
+L8DF8: OR A
+ JR Z,L8E09 ; (+00eH)
+ LD B,008H
+L8DFD: ADD HL,HL
+ JR C,L8E0F ; (+00fH)
+ RLCA
+ JR NC,L8E06 ; (+003H)
+ ADD HL,DE
+ JR C,L8E0F ; (+009H)
+L8E06: DJNZ L8DFD ; (-00bH)
+ RET
+
+L8E09: LD A,H
+ LD H,L
+ LD L,000H
+ OR A
+ RET Z
+L8E0F: JP 06373H
+
+L8E12: NOP
+ NOP
+L8E14: NOP
+L8E15: SUB 041H
+ CP 01AH
+ JP NC,L6364
+ LD BC,(09048H)
+ LD A,B
+ OR C
+ JR NZ,L8E36 ; (+012H)
+ CALL L8B62
+L8E27: PUSH DE
+ PUSH HL
+ LD L,C
+ LD H,B
+ LD B,A
+ LD C,A
+ CALL LDDEHL
+ POP HL
+ LD A,C
+ POP DE
+ JP L878F
+
+L8E36: PUSH DE
+ CALL L8BB5
+ PUSH HL
+ INC B
+ LD DE,L11A4
+ LD HL,(L107A)
+ CALL L8BFC
+ LD B,000H
+ LD HL,(L9048)
+ CALL HLFTCH
+ CP SIOAD
+ JR Z,L8E80 ; (+02fH)
+ CP 028H
+ JR NZ,L8E7D ; (+028H)
+L8E55: INC HL
+ INC B
+ PUSH BC
+ CALL L8BB5
+ LD A,C
+ POP DE
+ CP E
+ LD C,E
+ JR NZ,L8E72 ; (+011H)
+ PUSH DE
+ LD C,B
+ INC C
+ PUSH HL
+ LD HL,(L107A)
+ LD DE,L11A4
+ CALL L904C
+ POP HL
+ POP BC
+ JR Z,L8E96 ; (+024H)
+L8E72: CALL HLFTCH
+ CP 029H
+ JR Z,L8E80 ; (+007H)
+ CP 02CH
+ JR Z,L8E55 ; (-028H)
+L8E7D: JP L6364
+
+L8E80: LD HL,(L107A)
+ LD DE,L11A4
+ LD A,(HL)
+ LD (DE),A
+ LD B,A
+L8E89: INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ DJNZ L8E89 ; (-006H)
+ POP HL
+ POP DE
+ CALL L8ED2
+ JR L8E27 ; (-06fH)
+
+L8E96: LD HL,(L904A)
+ CALL L79A3
+ DEC B
+ JR Z,L8EB7 ; (+018H)
+ DEC HL
+L8EA0: PUSH BC
+L8EA1: CALL L6A0A
+ CALL L5963
+ JP Z,L6364
+ CP 029H
+ JP Z,L6364
+ CP 02CH
+ JR NZ,L8EA1 ; (-012H)
+ POP BC
+ DJNZ L8EA0 ; (-016H)
+ INC HL
+L8EB7: EX DE,HL
+ POP HL
+ EX (SP),HL
+ EX DE,HL
+ LD BC,(09048H)
+ PUSH BC
+ LD BC,L0000
+ LD (09048H),BC
+ CALL L858E
+ POP HL
+ LD (L9048),HL
+ POP HL
+ JP HLFTCH
+
+L8ED2: PUSH DE
+ JP L8B66
+
+L8ED6: LD HL,(L1074)
+L8ED9: LD DE,L11A4
+ LD A,(HL)
+ OR A
+ RET Z
+ CP 040H
+ JR NC,L8F0A ; (+027H)
+ CP C
+ JR NZ,L8EFF ; (+019H)
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L8EFD ; (+012H)
+ LD B,A
+L8EEC: INC DE
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L8EF7 ; (+005H)
+ DJNZ L8EEC ; (-008H)
+ INC HL
+ SCF
+ RET
+
+L8EF7: INC HL
+ DJNZ L8EF7 ; (-003H)
+ LD A,C
+ JR L8F04 ; (+007H)
+
+L8EFD: LD A,C
+ DEC HL
+L8EFF: AND 00FH
+ INC HL
+ ADD A,(HL)
+ INC HL
+L8F04: LD E,A
+ LD D,000H
+ ADD HL,DE
+ JR L8ED9 ; (-031H)
+
+L8F0A: CP C
+ JR Z,L8F21 ; (+014H)
+ INC HL
+L8F0E: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ ADD HL,DE
+ JR L8ED9 ; (-03cH)
+
+L8F15: LD A,C
+ SUB B
+ CPL
+ LD C,A
+ LD B,0FFH
+ ADD HL,BC
+ POP BC
+L8F1D: DEC HL
+ DEC HL
+ JR L8F0E ; (-013H)
+
+L8F21: LD A,(HL)
+ EXX
+ LD C,A
+ LD B,000H
+ EXX
+ INC HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ POP DE
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L8F1D ; (-018H)
+ PUSH BC
+ LD B,A
+ LD C,A
+L8F38: INC HL
+ INC DE
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L8F15 ; (-029H)
+ DJNZ L8F38 ; (-008H)
+ INC HL
+ POP BC
+ SCF
+ RET
+
+L8F44: CALL L8BB5
+ SET 6,C
+ PUSH HL
+ CALL L8ED6
+ JP C,06376H
+ LD (HL),C
+ EX (SP),HL
+ PUSH HL
+ DEC HL
+L8F54: CALL L6A0A
+ OR A
+ JR Z,L8F5E ; (+004H)
+ CP 03AH
+ JR NZ,L8F54 ; (-00aH)
+L8F5E: POP DE
+ PUSH HL
+ INC HL
+ SBC HL,DE
+ LD A,(L11A4)
+ ADD A,004H
+ LD C,A
+ LD B,000H
+ LD A,L
+ ADD HL,BC
+ LD B,A
+ PUSH HL
+ EXX
+ POP BC
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,L0000
+ ADD HL,SP
+ LD DE,(TMPEND)
+ DEC H
+ OR A
+ SBC HL,DE
+ LD A,00CH
+ JP C,L63A9
+ POP BC
+ POP DE
+ POP HL
+ LD HL,(L107A)
+ PUSH HL
+ ADD HL,BC
+ EX (SP),HL
+ PUSH HL
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ POP HL
+ POP DE
+ LDDR
+ POP DE
+ RST 018H
+ DB 01AH
+ DEC DE
+ POP HL
+ EX (SP),HL
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,L11A4
+ LD A,(DE)
+ LD (HL),A
+ LD B,A
+L8FAE: INC DE
+ INC HL
+ LD A,(DE)
+ LD (HL),A
+ DJNZ L8FAE ; (-006H)
+ INC HL
+ PUSH HL
+ EXX
+ POP HL
+ CALL LDHLDE
+ LD (HL),000H
+ POP HL
+ RET
+
+L8FBF: PUSH DE
+ CALL L8BB5
+ POP IX
+ PUSH BC
+ SET 6,C
+ LD DE,(0904AH)
+ LD (L904A),HL
+ PUSH DE
+ CALL L8ED6
+ JP NC,06382H
+ LD DE,(09048H)
+ LD (L9048),HL
+ PUSH DE
+ PUSH IX
+ DEC HL
+L8FE1: CALL L6A0A
+ CALL L5963
+ JP Z,L6364
+ CP SIOAD
+ JR NZ,L8FE1 ; (-00dH)
+ INC HL
+ POP DE
+ PUSH DE
+ CALL L858E
+ POP DE
+ LD HL,(L904A)
+ POP BC
+ LD (09048H),BC
+ POP BC
+ LD (0904AH),BC
+ EX DE,HL
+ POP BC
+ LD A,C
+ CALL L9032
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ CALL HLFTCH
+ CP 028H
+ RET NZ
+ PUSH DE
+ LD B,001H
+L9016: PUSH BC
+ CALL L6A0A
+ POP BC
+ CALL L5966
+ JP Z,L6364
+ CP 028H
+ JR NZ,L9026 ; (+001H)
+ INC B
+L9026: CP 029H
+ JR NZ,L9016 ; (-014H)
+ DJNZ L9016 ; (-016H)
+ INC HL
+ CALL HLFTCH
+ POP DE
+ RET
+
+L9032: CP 003H
+ JR NZ,L903F ; (+009H)
+L9036: LD A,(L9E9C)
+ CP 003H
+ RET Z
+ JP 0636DH
+
+L903F: LD A,(L9E9C)
+ CP 003H
+ RET NZ
+ JP 0636DH
+
+L9048: NOP
+ NOP
+L904A: NOP
+ NOP
+L904C: LD A,(DE)
+ CP (HL)
+ RET NZ
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD B,C
+L9053: LD A,(DE)
+ CP (HL)
+ JR NZ,L905C ; (+005H)
+ INC DE
+ INC HL
+ DJNZ L9053 ; (-008H)
+ XOR A
+L905C: POP HL
+ POP DE
+ POP BC
+ RET
+
+L9060: CALL L79A3
+ PUSH DE
+ CALL L8547
+ CALL L8540
+ CP 003H
+ JP NC,0636AH
+ POP DE
+ PUSH AF
+ CALL L79AA
+ POP AF
+ RST 018H
+ DB 01EH
+ EX DE,HL
+ PUSH DE
+ CALL L887D
+ JP L8964
+
+L907F: CALL L79A3
+ PUSH DE
+ CALL L8547
+ CALL L8540
+ CP 005H
+ JP NC,0636AH
+ POP DE
+ PUSH AF
+ CALL L79AA
+ POP AF
+ RST 018H
+ DB 01FH
+ EX DE,HL
+ PUSH DE
+ CALL L887D
+ JP L8964
+
+L909E: PUSH HL
+ LD B,005H
+ CALL ?CLRHL
+ POP HL
+ RET
+
+L90A6: CALL L903F
+L90A9: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ LD A,(HL)
+ XOR 080H
+ LD (HL),A
+ DEC HL
+ RET
+
+L90B3: CALL L903F
+ LD C,A
+ LD A,080H
+ JP L90C6
+
+L90BC: LD A,(L9E9C)
+ CP 003H
+ JP Z,L9110
+ LD C,A
+ XOR A
+L90C6: LD (L94C0),HL
+ PUSH DE
+ PUSH HL
+ LD (094C3H),SP
+ INC HL
+ INC DE
+ LD B,(HL)
+ XOR (HL)
+ EX DE,HL
+ XOR (HL)
+ DEC HL
+ DEC DE
+ EX DE,HL
+ RLCA
+ LD A,B
+ LD (L94C2),A
+ JP C,L91D1
+ XOR A
+ CP (HL)
+ JP Z,L9105
+ LD A,(DE)
+ OR A
+ JR Z,L90ED ; (+004H)
+ SUB (HL)
+ JP L9214
+
+L90ED: LD SP,(094C3H)
+ POP HL
+ POP DE
+ EI
+ LD A,(HL)
+ OR A
+ JP Z,L95BD
+ LD A,(L94C2)
+ AND 080H
+ INC HL
+ RES 7,(HL)
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ RET
+
+L9105: LD B,000H
+ LD A,005H
+ LD C,A
+ EX DE,HL
+ LDIR
+ JP L90ED
+
+L9110: LD B,(HL)
+ LD A,(DE)
+ ADD A,B
+ JP C,06370H
+ LD C,A
+ PUSH DE
+ PUSH HL
+ PUSH DE
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ EX DE,HL
+ LD HL,(L107A)
+ CALL L8BFC
+ EX (SP),HL
+ LD B,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ EX DE,HL
+ POP HL
+ CALL L8BFC
+ LD A,C
+ LD DE,(TMPEND)
+ LD BC,(STRST)
+ EX DE,HL
+ OR A
+ SBC HL,BC
+ EX DE,HL
+ LD (L107A),HL
+ POP HL
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ DEC HL
+ DEC HL
+ POP DE
+ RET
+
+L9153: LD A,(L9E9C)
+ CP 003H
+ JR NZ,L918E ; (+034H)
+ PUSH DE
+ PUSH HL
+ LD A,(DE)
+ OR (HL)
+ JR Z,L918B ; (+02bH)
+ LD A,(DE)
+ CP (HL)
+ JR C,L9165 ; (+001H)
+ LD A,(HL)
+L9165: OR A
+ JR Z,L9185 ; (+01dH)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ EX DE,HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ ADD HL,BC
+ EX DE,HL
+ LD B,A
+ OR A
+ JR Z,L918B ; (+00eH)
+L917D: LD A,(DE)
+ CP (HL)
+ JR NZ,L918B ; (+00aH)
+ INC DE
+ INC HL
+ DJNZ L917D ; (-008H)
+L9185: POP DE
+ POP HL
+ LD A,(DE)
+ CP (HL)
+ EX DE,HL
+ RET
+
+L918B: POP HL
+ POP DE
+ RET
+
+L918E: INC DE
+ INC HL
+ LD A,(DE)
+ DEC DE
+ XOR (HL)
+ RLCA
+ JR NC,L919A ; (+004H)
+ LD A,(HL)
+ DEC HL
+ RLCA
+ RET
+
+L919A: LD A,(HL)
+ DEC HL
+ RLCA
+ JR NC,L91A5 ; (+006H)
+ CALL L91A5
+ RET Z
+ CCF
+ RET
+
+L91A5: PUSH DE
+ PUSH HL
+ EX DE,HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L91C6 ; (+01aH)
+ INC DE
+ INC HL
+ LD A,(HL)
+ OR 080H
+ LD B,A
+ LD A,(DE)
+ OR 080H
+ CP B
+ JR NZ,L91C6 ; (+00eH)
+ LD A,(L9E9C)
+ LD B,A
+ DEC B
+ DEC B
+L91BE: INC DE
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L91C6 ; (+002H)
+ DJNZ L91BE ; (-008H)
+L91C6: POP HL
+ POP DE
+ RET
+
+L91C9: POP HL
+ PUSH HL
+ CALL L909E
+ JP L90ED
+
+L91D1: CALL L91A5
+ JR Z,L91C9 ; (-00dH)
+ JR NC,L91E1 ; (+009H)
+ LD A,(L94C2)
+ XOR 080H
+ LD (L94C2),A
+ SCF
+L91E1: EX AF,AF'
+ LD A,(HL)
+ OR A
+ JP Z,L9105
+ LD A,(DE)
+ OR A
+ JP Z,L90ED
+ SUB (HL)
+ JR C,L91F6 ; (+007H)
+ CP 020H
+ JP NC,L9105
+ JR L91FD ; (+007H)
+
+L91F6: NEG
+ CP 020H
+ JP NC,L90ED
+L91FD: EX AF,AF'
+ JR C,L9201 ; (+001H)
+ EX DE,HL
+L9201: EX AF,AF'
+ JP L929B
+
+L9205: LD SP,(094C3H)
+ EI
+ POP HL
+ POP DE
+ LD A,(094CAH)
+ OR A
+ JP Z,06367H
+ RET
+
+L9214: JR NC,L9220 ; (+00aH)
+ NEG
+ CP 020H
+ JP NC,L90ED
+ EX DE,HL
+ JR L9225 ; (+005H)
+
+L9220: CP 020H
+ JP NC,L9105
+L9225: CALL L925B
+ LD A,H
+ EXX
+ ADC A,H
+ EXX
+ LD H,A
+ LD A,L
+ EXX
+ ADC A,L
+ EXX
+ LD L,A
+ LD A,D
+ EXX
+ ADC A,D
+ EXX
+ LD D,A
+ LD A,E
+ EXX
+ ADC A,E
+ EXX
+ JR NC,L9248 ; (+00bH)
+ RRA
+ RR D
+ RR L
+ RR H
+ INC C
+ JP Z,L9205
+L9248: LD E,A
+ LD A,C
+ EXX
+ LD BC,00005H
+ LD HL,(L94C0)
+ LD (HL),A
+ ADD HL,BC
+ DI
+ LD SP,HL
+ EXX
+ PUSH HL
+ PUSH DE
+ JP L90ED
+
+L925B: DI
+ LD (094C5H),SP
+ EX AF,AF'
+ INC HL
+ LD SP,HL
+ EXX
+ POP DE
+ SET 7,E
+ POP HL
+ OR A
+L9269: EX AF,AF'
+ CP 008H
+ JR C,L927A ; (+00cH)
+ SUB 008H
+ EX AF,AF'
+ RL H
+ LD H,L
+ LD L,D
+ LD D,E
+ LD E,000H
+ JR L9269 ; (-011H)
+
+L927A: OR A
+ JR Z,L928B ; (+00eH)
+L927D: EX AF,AF'
+ OR A
+ RR E
+ RR D
+ RR L
+ RR H
+ EX AF,AF'
+ DEC A
+ JR NZ,L927D ; (-00eH)
+L928B: EXX
+ EX DE,HL
+ LD C,(HL)
+ INC HL
+ LD SP,HL
+ POP DE
+ SET 7,E
+ POP HL
+ EX AF,AF'
+ LD SP,(094C5H)
+ EI
+ RET
+
+L929B: CP 020H
+ JP NC,L90ED
+ CALL L925B
+ LD A,H
+ EXX
+ SBC A,H
+ EXX
+ LD H,A
+ LD A,L
+ EXX
+ SBC A,L
+ EXX
+ LD L,A
+ LD A,D
+ EXX
+ SBC A,D
+ EXX
+ LD D,A
+ LD A,E
+ EXX
+ SBC A,E
+ EXX
+L92B6: OR A
+ JR Z,L92CF ; (+016H)
+L92B9: BIT 7,A
+ JR NZ,L92CB ; (+00eH)
+ RL H
+ RL L
+ RL D
+ RLA
+ DEC C
+ JP NZ,L92B9
+ JP L91C9
+
+L92CB: LD E,A
+ JP L9248
+
+L92CF: LD A,C
+ SUB 008H
+ LD C,A
+ LD A,D
+ LD D,L
+ LD L,H
+ LD H,000H
+ JR Z,L92DC ; (+002H)
+ JR NC,L92B6 ; (-026H)
+L92DC: JP L91C9
+
+L92DF: LD C,A
+ INC HL
+ INC DE
+ LD A,(DE)
+ XOR (HL)
+ LD (L94C2),A
+ DEC HL
+ DEC DE
+ RET
+
+L92EA: CALL L903F
+ CALL L92DF
+ PUSH DE
+ PUSH HL
+ LD (094C3H),SP
+ LD A,(HL)
+ OR A
+ JP Z,L91C9
+ LD A,(DE)
+ OR A
+ JP Z,L91C9
+ INC DE
+ PUSH DE
+ POP IX
+ ADD A,(HL)
+ LD E,A
+ LD A,000H
+ ADC A,A
+ LD D,A
+ LD (094C8H),DE
+ INC HL
+ XOR A
+ LD (L94C7),A
+ LD D,(HL)
+ SET 7,D
+ INC HL
+ LD E,(HL)
+ INC HL
+ PUSH HL
+ LD H,A
+ LD L,A
+ EXX
+ POP HL
+ LD D,(HL)
+ INC HL
+ LD E,(HL)
+ LD B,A
+ LD C,A
+ LD H,A
+ LD L,A
+ EXX
+ LD A,(IX+000H)
+ OR 080H
+ LD C,004H
+L932D: LD B,008H
+ OR A
+ JP Z,L93C2
+L9333: RLCA
+ JR NC,L9348 ; (+012H)
+ EX AF,AF'
+ EXX
+ LD A,C
+ ADD A,B
+ LD C,A
+ ADC HL,DE
+ EXX
+ ADC HL,DE
+ JR NC,L9347 ; (+005H)
+ LD A,001H
+ LD (L94C7),A
+L9347: EX AF,AF'
+L9348: SRL D
+ RR E
+ EXX
+ RR D
+ RR E
+ RR B
+ EXX
+ DJNZ L9333 ; (-023H)
+L9356: INC IX
+ LD A,(IX+000H)
+ DEC C
+ JR NZ,L932D ; (-031H)
+ EXX
+ LD A,(L94C7)
+ OR A
+ JR Z,L937B ; (+016H)
+ LD DE,(094C8H)
+ INC DE
+ LD (094C8H),DE
+ EXX
+ SCF
+ RR H
+ RR L
+ EXX
+ RR H
+ RR L
+ RR C
+L937B: BIT 7,C
+ JR Z,L9399 ; (+01aH)
+ LD DE,00001H
+ ADD HL,DE
+ EXX
+ LD DE,L0000
+ ADC HL,DE
+ EXX
+ JR NC,L9399 ; (+00dH)
+ LD DE,(094C8H)
+ INC DE
+ LD (094C8H),DE
+ EXX
+ LD H,080H
+ EXX
+L9399: POP IX
+ PUSH IX
+ LD (IX+004H),L
+ LD (IX+003H),H
+ EXX
+ LD (IX+002H),L
+ LD (IX+001H),H
+ LD HL,(094C8H)
+ OR A
+ LD DE,L0081
+ SBC HL,DE
+ LD A,H
+ ADD A,000H
+ JP M,L93CE
+ JP NZ,L9205
+ LD (IX+000H),L
+ JP L90ED
+
+L93C2: LD A,E
+ EXX
+ LD B,E
+ LD E,D
+ LD D,A
+ EXX
+ LD E,D
+ LD D,000H
+ JP L9356
+
+L93CE: LD SP,(094C3H)
+ JP L91C9
+
+L93D5: CALL L903F
+ CALL L92DF
+ PUSH DE
+ PUSH HL
+ LD (094C3H),SP
+ LD A,(DE)
+ OR A
+ JP Z,06367H
+ EX AF,AF'
+ LD A,(HL)
+ OR A
+ JP Z,L91C9
+ EXX
+ ADD A,081H
+ LD B,A
+ LD A,000H
+ ADC A,A
+ EX AF,AF'
+ LD C,A
+ LD A,B
+ SUB C
+ LD C,A
+ EX AF,AF'
+ LD B,A
+ EX AF,AF'
+ LD A,B
+ SBC A,000H
+ JP C,L93CE
+ JP NZ,L9205
+ LD A,C
+ PUSH AF
+ EXX
+ INC DE
+ INC HL
+ LD B,(HL)
+ SET 7,B
+ INC HL
+ LD C,(HL)
+ INC HL
+ PUSH HL
+ EX DE,HL
+ LD D,(HL)
+ SET 7,D
+ INC HL
+ LD E,(HL)
+ INC HL
+ PUSH HL
+ LD H,B
+ LD L,C
+ EXX
+ POP HL
+ LD D,(HL)
+ INC HL
+ LD E,(HL)
+ POP HL
+ LD A,(HL)
+ INC HL
+ LD L,(HL)
+ LD H,A
+ EXX
+ LD C,005H
+L9427: LD B,008H
+ XOR A
+L942A: BIT 7,H
+ JR NZ,L943E ; (+010H)
+ OR A
+L942F: RLA
+ EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ DJNZ L942A ; (-00dH)
+ PUSH AF
+ DEC C
+ JR NZ,L9427 ; (-014H)
+ JP L9478
+
+L943E: OR A
+ EXX
+ SBC HL,DE
+ EXX
+ SBC HL,DE
+ CCF
+ JR C,L942F ; (-019H)
+ EXX
+ ADD HL,DE
+ EXX
+ ADC HL,DE
+ OR A
+ RLA
+ EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ DJNZ L945D ; (+007H)
+ PUSH AF
+ LD B,008H
+ DEC C
+ JP Z,L9478
+L945D: EXX
+ OR A
+ SBC HL,DE
+ EXX
+ SBC HL,DE
+ SCF
+ RLA
+ DJNZ L946E ; (+006H)
+ PUSH AF
+ LD B,008H
+ DEC C
+ JR Z,L9478 ; (+00aH)
+L946E: EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ JR C,L945D ; (-018H)
+ JP L942A
+
+L9478: POP AF
+ LD H,A
+ EXX
+ POP AF
+ LD E,A
+ POP AF
+ LD D,A
+ POP AF
+ LD C,A
+ POP AF
+ LD B,A
+ POP AF
+L9484: BIT 7,B
+ JR NZ,L949B ; (+013H)
+ EXX
+ SLA H
+ EXX
+ RL E
+ RL D
+ RL C
+ RL B
+ DEC A
+ JP NZ,L9484
+ JP L91C9
+
+L949B: EXX
+ RL H
+ EXX
+ JR NC,L94B2 ; (+011H)
+ LD HL,00001H
+ ADD HL,DE
+ EX DE,HL
+ LD HL,L0000
+ ADC HL,BC
+ LD B,H
+ LD C,L
+ JR NC,L94B2 ; (+003H)
+ LD B,080H
+ INC A
+L94B2: POP HL
+ PUSH HL
+ LD (HL),A
+ INC HL
+ LD (HL),B
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ JP L90ED
+
+L94C0: NOP
+ NOP
+L94C2: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L94C7: NOP
+ NOP
+ NOP
+ NOP
+L94CB: INC HL
+ BIT 7,(HL)
+ DEC HL
+ RET
+
+L94D0: INC (HL)
+ RET NZ
+ JP 06367H
+
+L94D5: LD A,(HL)
+ OR A
+ RET Z
+ DEC (HL)
+ RET NZ
+ JP L909E
+
+L94DD: PUSH HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ LD HL,(MEMMAX)
+ DEC HL
+ SBC HL,DE
+ JP C,06373H
+ POP HL
+ RET
+
+L94EF: PUSH HL
+ LD (L9BA0),HL
+ CALL L94DD
+ EX DE,HL
+ LD (L9BA2),HL
+ CALL L94DD
+ EX DE,HL
+ LD (L9BA4),HL
+ CALL L94DD
+ LD (09BA6H),DE
+ POP HL
+ RET
+
+L950A: CALL L903F
+ EX DE,HL
+ LD A,(HL)
+ OR A
+ JP Z,L956C
+ EX DE,HL
+ LD A,(HL)
+ OR A
+ JP Z,L909E
+ CALL L94CB
+ JR Z,L9546 ; (+028H)
+ CALL L90A9
+ EX DE,HL
+ PUSH DE
+ PUSH HL
+ LD DE,L9EA5
+ CALL L79C5
+L952A: LD HL,L9EA5
+ CALL L7BC0
+ LD A,(HL)
+ OR A
+ JP NZ,0636AH
+ POP HL
+ PUSH HL
+ CALL L7BEA
+ BIT 0,L
+ POP DE
+ POP HL
+ JR Z,L9546 ; (+006H)
+ CALL L9546
+ JP L90A9
+
+L9546: EX DE,HL
+ LD A,(HL)
+ OR A
+ JR Z,L956C ; (+021H)
+ CALL L94CB
+ JR Z,L9572 ; (+022H)
+ CALL L90A9
+ CALL L9572
+ PUSH DE
+ PUSH HL
+ LD DE,L9EA5
+ CALL L79C2
+ LD HL,L9EA5
+ POP DE
+ CALL L93D5
+ PUSH DE
+ CALL L79C5
+ POP HL
+ POP DE
+ RET
+
+L956C: PUSH DE
+ CALL L79C2
+ POP HL
+ RET
+
+L9572: PUSH DE
+ LD DE,L9EA5
+ CALL L79C5
+ POP HL
+ CALL L9A4F
+ LD DE,L9EA5
+ CALL L92EA
+ JP L992B
+
+L9586: CALL L903F
+ PUSH DE
+ PUSH HL
+ CALL L7BEA
+ LD A,L
+ CPL
+ LD E,A
+ LD A,H
+ CPL
+ LD D,A
+ JR L95B7 ; (+021H)
+
+L9596: LD A,0A2H
+ LD BC,0B23EH
+ LD BC,0AA3EH
+ LD (L95B2),A
+ INC A
+ LD (L95B5),A
+ CALL L903F
+ PUSH DE
+ PUSH HL
+ CALL L7BEA
+ EX DE,HL
+ CALL L7BEA
+ LD A,H
+L95B2: AND D
+ LD D,A
+ LD A,L
+L95B5: AND E
+ LD E,A
+L95B7: POP HL
+ CALL L79CB
+ POP DE
+ RET
+
+L95BD: INC HL
+ RES 7,(HL)
+ DEC HL
+ RET
+
+L95C2: CALL L94CB
+ JP Z,L7B82
+ CALL L95E7
+ CALL L7B82
+ LD DE,L9EA5
+ CALL L9153
+ RET Z
+ LD DE,L7C45
+ JP L90B3
+
+L95DB: LD DE,L7C45
+ JP L90BC
+
+L95E1: LD DE,L7C45
+ JP L9153
+
+L95E7: PUSH HL
+ PUSH DE
+ LD DE,L9EA5
+ CALL L79C5
+ POP DE
+ POP HL
+ RET
+
+L95F2: CALL L7B82
+ EX DE,HL
+ CALL L7B82
+ EX DE,HL
+ CALL L95E7
+ CALL L93D5
+ CALL L7B82
+ CALL L92EA
+ PUSH DE
+ LD DE,L9EA5
+ CALL L90B3
+ POP DE
+ JP L90A9
+
+L9611: CALL L7B82
+ EX DE,HL
+ CALL L7B82
+ EX DE,HL
+ CALL L93D5
+ JP L7B82
+
+L961F: LD A,(HL)
+ OR A
+ RET Z
+ CALL L94CB
+ JP NZ,0636AH
+ CALL L9A4F
+ CALL L94D5
+ JP L992B
+
+L9631: PUSH HL
+ EX DE,HL
+ CALL L79C2
+ POP HL
+ POP BC
+ RET
+
+L9639: LD A,(HL)
+ LD C,H
+L963B: ADD A,B
+ DEC HL
+L963D: PUSH BC
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ PUSH AF
+ CALL L964E
+ POP AF
+ POP BC
+ RLCA
+ RET NC
+ JP L90A9
+
+L964E: CALL L95E1
+ JR C,L9671 ; (+01eH)
+ CALL L94DD
+ PUSH DE
+ PUSH HL
+ CALL L79C5
+ POP DE
+ PUSH DE
+ CALL L79C2
+ POP HL
+ POP DE
+ CALL L93D5
+ CALL L9671
+ LD DE,L98CB
+ CALL L90B3
+ JP L95BD
+
+L9671: LD A,0FFH
+ LD (L97E7),A
+ LD DE,L9639
+ CALL L9153
+ JR C,096CDH ; (+04fH)
+ LD DE,L963B
+ CALL L9153
+ PUSH AF
+ CALL L94DD
+ POP AF
+ PUSH HL
+ PUSH DE
+ CALL L79C5
+ POP HL
+ JR C,L96A5 ; (+014H)
+ CALL L95DB
+ EX (SP),HL
+ CALL L90B3
+ POP DE
+ CALL L93D5
+ CALL 096CDH
+ LD DE,L98D0
+ JP L90BC
+
+L96A5: LD DE,L96C8
+ CALL L92EA
+ CALL L95DB
+ EX (SP),HL
+ LD DE,L96C8
+ CALL L90B3
+ POP DE
+ CALL L93D5
+ CALL 096CDH
+ CALL L94D0
+ LD DE,L98D0
+ CALL L90BC
+ JP L94D5
+
+L96C8: LD A,A
+ LD D,H
+ INC DE
+ CALL Z,0C5D0H
+ PUSH HL
+ CALL L94EF
+ POP HL
+ PUSH HL
+ PUSH DE
+ CALL L79C5
+ POP HL
+ LD E,L
+ LD D,H
+ CALL L92EA
+ LD DE,(09BA4H)
+ POP HL
+ PUSH HL
+ CALL L79C5
+ LD A,(L9E9C)
+ DEC A
+ CP 004H
+ LD B,A
+ LD HL,L986E
+ JP Z,L9774
+ LD B,00AH
+ JP L9774
+
+L96F9: PUSH BC
+ LD A,(HL)
+ OR A
+ JP Z,L9631
+ LD DE,L98CB
+ CALL L90B3
+ CALL L90A9
+ POP BC
+L9709: PUSH BC
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ AND 080H
+ CPL
+ LD (L97E7),A
+ DEC HL
+ LD DE,L98C1
+ PUSH HL
+ CALL L9153
+ JR C,L9727 ; (+009H)
+ CALL L93D5
+ CALL L7BC0
+ CALL L92EA
+L9727: LD DE,L98C6
+ CALL L9153
+ JR C,L973A ; (+00bH)
+ CALL L90B3
+L9732: LD A,(L97E7)
+ XOR 080H
+ LD (L97E7),A
+L973A: LD DE,L98CB
+ CALL L9153
+ JR C,L974B ; (+009H)
+ LD DE,L98C6
+ CALL L90B3
+ CALL L95BD
+L974B: CALL L94EF
+ POP HL
+ PUSH DE
+ LD DE,L98D0
+ CALL L9153
+ JR NC,L97BD ; (+065H)
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L79C5
+ POP HL
+ LD E,L
+ LD D,H
+ CALL L92EA
+ LD DE,(09BA4H)
+ POP HL
+ PUSH HL
+ CALL L79C5
+ LD A,(L9E9C)
+ LD B,A
+ LD HL,L981E
+L9774: PUSH BC
+ PUSH HL
+ LD HL,(L9BA4)
+ LD DE,(09BA6H)
+ CALL L92EA
+ POP HL
+ PUSH HL
+ LD DE,(09BA2H)
+ PUSH DE
+ CALL L79C5
+ POP HL
+ LD DE,(09BA4H)
+ CALL L92EA
+ EX DE,HL
+ LD HL,(L9BA0)
+ CALL L90BC
+ POP HL
+ LD DE,00005H
+ ADD HL,DE
+ POP BC
+ DJNZ L9774 ; (-02dH)
+ POP HL
+ POP BC
+ LD A,(L97E7)
+ INC HL
+ XOR (HL)
+ CPL
+ LD (HL),A
+ DEC HL
+ LD A,(L9E9C)
+ CP 008H
+ LD A,(HL)
+ JR Z,L97B9 ; (+006H)
+ CP 05CH
+L97B5: RET NC
+ JP L909E
+
+L97B9: CP 04DH
+ JR L97B5 ; (-008H)
+
+L97BD: LD DE,L98CB
+ CALL L90B3
+ CALL L95BD
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L79C5
+ POP HL
+ LD E,L
+ LD D,H
+ CALL L92EA
+ LD DE,(09BA4H)
+ CALL L79C2
+ POP DE
+ PUSH DE
+ CALL L79C2
+ LD A,(L9E9C)
+ LD B,A
+ LD HL,L9846
+ JR L9774 ; (-073H)
+
+L97E7: NOP
+L97E8: PUSH BC
+ PUSH HL
+ CALL L94DD
+ EX DE,HL
+ LD (L9BA8),HL
+ CALL L94DD
+ LD (09BAAH),DE
+ POP HL
+ PUSH HL
+ CALL L79C5
+ LD HL,(L9BA8)
+ EX DE,HL
+ POP HL
+ PUSH HL
+ CALL L79C5
+ LD HL,(09BAAH)
+ CALL L9709
+ POP DE
+ PUSH DE
+ CALL L79C5
+ LD HL,(L9BA8)
+ CALL L96F9
+ EX DE,HL
+ DB LSE1 ; SINTBL - Sine Taylor series coefficients
+ DB LSRF
+ DB 0D5H
+ DB 093H
+ DB 0C1H
+ DB 0C9H
+L981E: DB 07EH
+ DS 3, 0AAH
+ DB 0ABH
+ DB 07AH
+ DB 008H
+ DS 2, 088H
+ DB 089H
+ DB 074H
+ DB LSD0
+ DB 00DH
+ DB 000H
+ DB LSD0
+ DB 06EH,038H,0EFH,01DH,02BH,067H,0D7H,"2+@`0",092H,030H,09DH,058H,0D7H,03FH,09FH,":PJ",096H,03BH,082H
+L9846: DS 2, 080H
+ DS 3, 000H
+ DB 07CH
+ DB 02AH
+ DS 2, 0AAH
+ DB 0ABH,077H,0B6H,00BH,060H,0B6H,071H,050H,00DH,000H
+ DB LSD0
+ DB 06BH
+ DB 093H
+ DB PSGA
+ DB 07DH,0BCH,064H,00FH,076H,0C7H,080H,05CH,0C9H,0CBH,0A5H,"FTW?",09FH,03AH
+L986E: DB 07FH
+ DS 3, 0AAH
+ DB 0ABH
+ DB 07EH
+ DB 04CH
+ DB LSWF
+ DB LSWF
+ DB LSRF
+ DB 07EH,092H,049H,024H,092H,07DH,063H,08EH,038H
+ DB LSE4
+ DB 07DH,0BAH,02EH,08BH,0A3H,07DH,01DH,089H,0D8H,09EH,07DH
+ DS 3, 088H
+ DB 089H
+ DB 07CH
+ DB 070H
+ DB LSPAL
+ DB LSPAL
+ DB 0F1H
+ DB 07CH
+ DB 0D7H
+ DB 094H
+ DB 035H
+ DB LSE5
+ DB 07CH,043H,00CH,030H,0C3H
+L98A0: DB 011H
+ DS 2, 000H
+ DB 07EH
+ DB 0B7H
+ DB 028H
+ DB 008H
+ DB LSRF
+ DB 0CBH
+ DB 094H
+ DB 013H
+ DB 028H
+ DB 002H
+ DS 2, 01BH
+ DB LSRF
+ DB 0CBH
+ DB 079H
+ DB 0C9H
+L98B3: DB 011H
+ DB 0D5H
+ DB 098H
+ DB 018H
+ DB 003H
+L98B8: DB 011H
+ DB 0C6H
+ DB 098H
+ DB 0C5H
+ DB LSRF
+ DB 0EAH
+ DB 092H
+ DB 0C1H
+ DB 0C9H
+L98C1: DB 083H
+ DB 049H
+ DB 00FH
+ DB 0DAH
+ DB 0A2H
+L98C6: DB 082H
+ DB 049H
+ DB 00FH
+ DB 0DAH
+ DB 0A2H
+L98CB: DB 081H
+ DB 049H
+ DB 00FH
+ DB 0DAH
+ DB 0A2H
+L98D0: DB 080H
+ DB 049H
+ DB 00FH
+ DB 0DAH
+ DB 0A2H
+ LD A,E
+ LD C,0FAH
+ DEC (HL)
+ INC DE
+L98DA: PUSH HL
+ CALL L7BEA
+ LD E,(HL)
+ LD D,000H
+ POP HL
+ CALL L79CB
+ RET
+
+L98E6: LD A,(HL)
+ OR A
+ JR Z,L98EF ; (+005H)
+ CALL L94CB
+ JR Z,L98FA ; (+00bH)
+L98EF: PUSH HL
+ LD HL,L4193
+ LD (L9929),HL
+ POP HL
+ XOR A
+ LD R,A
+L98FA: PUSH BC
+ LD DE,(09929H)
+ LD A,R
+ XOR D
+ RRC A
+ RRC A
+ RRC A
+ LD D,A
+ LD A,R
+ XOR E
+ RLC A
+ RLC A
+ LD E,D
+ LD D,A
+ LD (09929H),DE
+ PUSH HL
+ INC HL
+ RES 7,D
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ INC HL
+ LD A,R
+ LD (HL),A
+ POP HL
+ LD (HL),081H
+ DB LSRF
+ DB 0D5H
+ DB 095H
+ DB 0C1H
+ DB 0C9H
+L9929: DB 093H
+ DB 041H
+L992B: DB 0C5H,07EH,0B7H,0CAH,031H,096H,"#~2"
+ LD B,C
+ SBC A,D
+ RES 7,(HL)
+ DEC HL
+ LD DE,L9B96
+ CALL L92EA
+ PUSH HL
+ CALL L94DD
+ PUSH DE
+ CALL L79C5
+ POP HL
+ CALL L7B82
+ PUSH HL
+ CALL L7BEA
+ XOR A
+ CP H
+ JP NZ,06367H
+ LD A,L
+ LD (L9A40),A
+ POP DE
+ POP HL
+ PUSH HL
+ CALL L90B3
+ PUSH DE
+ PUSH HL
+ CALL L79C2
+ POP DE
+ POP HL
+ CALL L94D5
+ EX DE,HL
+ XOR A
+ LD B,008H
+L996C: PUSH BC
+ PUSH AF
+ CALL L9153
+ JR C,L997A ; (+007H)
+ CALL L90B3
+ POP AF
+ SET 7,A
+ PUSH AF
+L997A: POP AF
+ RLC A
+ EX DE,HL
+ PUSH AF
+ CALL L94D5
+ POP AF
+ EX DE,HL
+ POP BC
+ DJNZ L996C ; (-01bH)
+ LD (L9A42),A
+ PUSH DE
+ LD DE,L9B8C
+ LD A,(L9E9C)
+ BIT 3,A
+ JR NZ,L9998 ; (+003H)
+ LD DE,L9B91
+L9998: CALL L92EA
+ POP DE
+ PUSH DE
+ CALL L79C5
+ POP HL
+ LD A,(L9E9C)
+ BIT 3,A
+ JP Z,L9A30
+ CALL L94D0
+ LD DE,L7C40
+ CALL L90BC
+ CALL L94D5
+ POP DE
+ PUSH DE
+ CALL L92EA
+ LD DE,L7C40
+ CALL L94D5
+ CALL L90BC
+ CALL L94D0
+ POP DE
+ PUSH DE
+ CALL L92EA
+ LD DE,L9B87
+ CALL L92EA
+ CALL L94D0
+ CALL L95DB
+ CALL L94D5
+ POP DE
+ PUSH DE
+ CALL L92EA
+ CALL L95DB
+ POP DE
+ PUSH DE
+ CALL L92EA
+L99E7: CALL L95DB
+ EX (SP),HL
+ EX DE,HL
+ PUSH DE
+ CALL L79C2
+ POP HL
+ LD DE,L9B37
+ LD A,(L9A42)
+ LD B,008H
+L99F9: RLC A
+ JR NC,L9A04 ; (+007H)
+ PUSH AF
+ PUSH BC
+ CALL L92EA
+ POP BC
+ POP AF
+L9A04: INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ DJNZ L99F9 ; (-012H)
+ LD A,(L9A40)
+ ADD A,(HL)
+ JP C,06367H
+ LD (HL),A
+ POP DE
+ CALL L92EA
+ POP BC
+ LD A,(09A41H)
+ RLC A
+ RET NC
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ CALL L79C5
+ POP DE
+ PUSH DE
+ CALL L79C2
+ POP HL
+ POP DE
+ CALL L93D5
+ POP BC
+ RET
+
+L9A30: POP DE
+ PUSH DE
+ CALL L92EA
+ LD A,(HL)
+ OR A
+ CALL NZ,L94D5
+ CALL L90BC
+ JP L99E7
+
+L9A40: NOP
+ NOP
+L9A42: NOP
+L9A43: PUSH BC
+ CALL L9A4F
+ LD DE,L9B28
+ CALL L92EA
+ POP BC
+ RET
+
+L9A4F: PUSH BC
+ CALL L94CB
+ JP NZ,0636AH
+ LD A,(HL)
+ OR A
+ JP Z,0636AH
+ SUB 081H
+ LD (L9B27),A
+ LD (HL),081H
+ XOR A
+ LD B,008H
+ LD DE,L9B37
+L9A68: PUSH BC
+ PUSH AF
+ CALL L9153
+ JR C,L9A7E ; (+00fH)
+ PUSH HL
+ LD HL,00028H
+ ADD HL,DE
+ EX DE,HL
+ EX (SP),HL
+ CALL L92EA
+ POP DE
+ POP AF
+ SET 7,A
+ PUSH AF
+L9A7E: POP AF
+ RLC A
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ POP BC
+ DJNZ L9A68 ; (-021H)
+ DB 022H
+ AND B
+ SBC A,E
+ CALL L94DD
+ EX DE,HL
+ LD E,A
+ LD D,000H
+ CALL L79CB
+ LD A,(HL)
+ OR A
+ JR Z,L9A9D ; (+003H)
+ SUB 008H
+ LD (HL),A
+L9A9D: LD A,(L9B27)
+ CP 080H
+ JR C,L9AA6 ; (+002H)
+ NEG
+L9AA6: PUSH HL
+ CALL L94DD
+ EX DE,HL
+ LD (L9BA2),HL
+ LD E,A
+ LD D,000H
+ CALL L79CB
+ LD A,(L9B27)
+ AND 080H
+ INC HL
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ EX DE,HL
+ POP HL
+ CALL L90BC
+ LD A,(L9E9C)
+ LD DE,09B9BH
+ CP 005H
+ JR Z,L9ACF ; (+003H)
+ LD DE,L9B8C
+L9ACF: CALL L92EA
+ PUSH HL
+ LD DE,(09BA2H)
+ LD HL,(L9BA0)
+ PUSH HL
+ PUSH DE
+ CALL L79C5
+ POP HL
+ CALL L95DB
+ EX (SP),HL
+ CALL L90B3
+ POP DE
+ CALL L93D5
+ PUSH DE
+ CALL L79C5
+ POP HL
+ PUSH DE
+ LD E,L
+ LD D,H
+ CALL L92EA
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L79C5
+ POP HL
+ LD DE,L9B32
+ CALL L90BC
+ EX DE,HL
+ POP HL
+ CALL L92EA
+ LD DE,L7C40
+ CALL L94D0
+ CALL L90BC
+ CALL L94D5
+ EX DE,HL
+ LD HL,(L9BA0)
+ CALL L92EA
+ LD DE,L9B2D
+ CALL L92EA
+ POP DE
+ CALL L90BC
+ POP BC
+ RET
+
+L9B27: NOP
+L9B28: LD A,A
+ LD E,(HL)
+ LD E,E
+ RET C
+ XOR C
+L9B2D: LD A,A
+ LD C,H
+ CALL Z,0CDCCH
+L9B32: DB 081H
+ DS 3, 055H
+ DB 056H
+L9B37: DB 081H,035H,004H,0F3H,034H,081H,018H,037H
+ DB LSPAL
+ DB 052H
+ DB 081H
+ DB 00BH
+ DB 095H
+ DB 0C1H
+ DB LSE4
+ DB 081H
+ DB 005H
+ DB 0AAH
+ DB 0C3H
+ DB 068H
+ DB 081H
+ DB 002H
+ DB LSRF
+ DB 086H
+ DB 099H
+ DB 081H
+ DB 001H
+ DB 064H
+ DB LSD1
+ DB SIOAD
+ DB 081H
+ DB 000H
+ DB 0B1H
+ DB 0EDH
+ DB 050H
+ DB 081H
+ DB 000H
+ DB 058H
+ DB 0D7H
+ DB LSD3
+ DB 080H,035H,004H,0F3H,034H,080H,057H,044H
+ DB LSFC
+ DB 0CBH,080H,06AH,0C0H,0C6H,0E8H,080H,"u%}",016H,080H,07AH,083H,0B2H,0DCH,080H,07DH,03EH,00CH,00DH,080H,07EH,09EH,011H,05DH,080H,07FH,04EH,0CBH,05AH
+L9B87: DB 07AH
+ DB 008H
+ DS 2, 088H
+ DB 089H
+L9B8C: DB 080H
+ DB 031H
+ DB 072H
+ DB 017H
+ DB 0F8H
+L9B91: DB 080H
+ DB 031H
+ DB 072H
+ DB 017H
+ DB 0F8H
+L9B96: DB 081H
+ DB 038H
+ DB 0AAH
+ DEC SP
+ LD HL,(03180H)
+ LD (HL),D
+ RLA
+ RET M
+L9BA0: NOP
+ NOP
+L9BA2: NOP
+ NOP
+L9BA4: NOP
+ NOP
+ NOP
+ NOP
+L9BA8: NOP
+ NOP
+ NOP
+ NOP
+L9BAC: CALL TEST1
+ DB SIOAD
+ JR NZ,L9BBE ; (+00cH)
+ CALL L79A3
+ CALL L853D
+ CP 010H
+ SET 7,A
+ JR L9BC3 ; (+005H)
+
+L9BBE: CALL L853D
+ CP 054H
+L9BC3: JP NC,0636AH
+ PUSH AF
+ CALL L79B1
+ CALL L8551
+ POP AF
+ PUSH AF
+ OR A
+ CALL M,L79AA
+ POP AF
+ PUSH HL
+ RST 018H
+ DB 022H
+ POP HL
+ RET
+
+L9BD9: CALL L853D
+ DEC A
+ CP 007H
+ INC A
+ JP L0041
+
+L9BE3: LD A,008H
+ LD BC,0073EH
+ LD (L9CEB),A
+ CALL HLFTCH
+ LD B,003H
+ CP 0BEH
+ JR Z,L9C07 ; (+013H)
+ DEC B
+ CP 099H
+ JR Z,L9C07 ; (+00eH)
+ CP 0DCH
+ JR NZ,L9C0D ; (+010H)
+ LD DE,L9CDF
+ LD B,004H
+ LD A,002H
+ CALL ?SETDE
+L9C07: PUSH HL
+ RST 018H
+ DB 023H
+ POP HL
+ INC HL
+ RET
+
+L9C0D: CALL L5963
+ RET Z
+ XOR A
+ LD (L9CE7),A
+ LD (L9CE8),A
+ LD B,A
+ LD A,00DH
+ LD DE,L27D0
+ LD (09CE9H),DE
+ LD (DE),A
+ CALL ?SETDE
+ LD A,(L9CEB)
+ LD (L9CEC),A
+L9C2C: LD DE,L9CEC
+ LD A,(DE)
+ RRC A
+ LD (DE),A
+ PUSH AF
+ LD B,000H
+ JR NC,L9C42 ; (+00aH)
+ CALL HLFTCH
+ CP 03BH
+ JR Z,L9C42 ; (+003H)
+ CALL L8561
+L9C42: PUSH HL
+ LD A,(L9CE8)
+ CP 004H
+ JP Z,L6364
+ INC A
+ LD (L9CE8),A
+ INC B
+ JP Z,06370H
+ LD A,(L9CE7)
+ ADD A,B
+ JP C,06370H
+ LD (L9CE7),A
+ LD HL,(L9CE9)
+ CALL LDHLDE
+ LD (L9CE9),HL
+ DEC HL
+ LD (HL),00DH
+ POP HL
+ POP AF
+ JR NC,L9C2C ; (-041H)
+ CALL L5963
+ JR Z,L9C7E ; (+00cH)
+ CALL TEST1
+ DB 02CH
+ JR Z,L9C7E ; (+006H)
+ CALL TEST1
+ DB 03BH
+ JR L9C2C ; (-052H)
+
+L9C7E: PUSH HL
+ LD HL,L27D0
+ PUSH HL
+ POP IX
+ LD IY,L9CDF
+ LD B,004H
+L9C8B: PUSH BC
+ PUSH HL
+ PUSH IX
+ POP HL
+ LD DE,L27D0
+ XOR A
+ SBC HL,DE
+ LD (IY+004H),L
+ POP HL
+ LD (09CA2H),SP
+ CALL L9CED
+L9CA1: LD SP,L0000
+ POP BC
+ INC HL
+ INC IY
+ DJNZ L9C8B ; (-01fH)
+ LD B,003H
+ RST 018H
+ DB 023H
+ LD BC,00100H
+ LD HL,L27D0
+ LD DE,L2ED0
+ LDIR
+ LD B,004H
+ LD HL,L9CE3
+L9CBE: LD E,(HL)
+ LD D,000H
+ INC HL
+ PUSH HL
+ LD HL,L2ED0
+ ADD HL,DE
+ LD A,(HL)
+ CP 0FFH
+ JR Z,L9CD4 ; (+008H)
+ LD A,004H
+ SUB B
+ PUSH BC
+ EX DE,HL
+ RST 018H
+ DB 021H
+ POP BC
+L9CD4: POP HL
+ DJNZ L9CBE ; (-019H)
+ LD B,001H
+ RST 018H
+ DB 023H
+ POP HL
+ JP L9C0D
+
+L9CDF: LD (BC),A
+ LD (BC),A
+ LD (BC),A
+ LD (BC),A
+L9CE3: NOP
+ NOP
+ NOP
+ NOP
+L9CE7: NOP
+L9CE8: NOP
+L9CE9: NOP
+ NOP
+L9CEB: NOP
+L9CEC: NOP
+L9CED: CALL L9E36
+L9CF0: CALL HLFTCH
+ CALL L9E0C
+ JR C,L9CFF ; (+007H)
+ LD C,000H
+ CALL L9D60
+ JR L9D1F ; (+020H)
+
+L9CFF: CALL L9E16
+ JP Z,L9E1E
+ LD B,00CH
+ EX DE,HL
+ LD HL,L9D26
+L9D0B: CP (HL)
+ INC HL
+ JR Z,L9D17 ; (+008H)
+ DEC B
+ JP Z,0636AH
+ INC HL
+ INC HL
+ JR L9D0B ; (-00cH)
+
+L9D17: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ EX DE,HL
+ INC HL
+ CALL L9D24
+L9D1F: JP C,0636AH
+ JR L9CF0 ; (-034H)
+
+L9D24: PUSH BC
+ RET
+
+L9D26: INC HL
+ LD D,A
+ SBC A,L
+ DEC HL
+ LD C,L
+ SBC A,L
+ RST 010H
+ LD C,L
+ SBC A,L
+ DEC L
+ LD C,D
+ SBC A,L
+ RST 008H
+ LD C,D
+ DB 09DH,04FH,091H,09DH,04EH,0A0H,09DH,054H,0AAH,09DH,056H,0BCH,09DH,053H,0DEH,09DH,04DH,0ECH,09DH,04CH
+ DB LSRF
+ DB 09DH
+ DB 00EH
+ DB SIOAD
+ DB 011H
+ DB 00EH
+ DB 00CH
+ DB LSRF
+ DB 064H,001H,023H,020H,001H,00CH,011H,00EH,001H
+ DB LSRF
+ DB 05EH
+ DB 001H
+ DB LSRF
+ DB 00CH
+ DB 09EH
+ DB 0D8H
+L9D60: DB 047H
+ DB 023H
+ DB LSRF
+ DB LSFC
+ DB 09DH,03FH,0DCH,0D4H,09DH,0D8H,078H,0FEH,052H
+ JR Z,L9D85 ; (+016H)
+ PUSH HL
+ LD HL,09DFDH
+ CALL ADDHLA
+ LD B,(IY+000H)
+ INC B
+ LD A,(HL)
+ POP HL
+ ADD A,C
+ SUB 00CH
+L9D7F: ADD A,00CH
+ DJNZ L9D7F ; (-004H)
+ JR L9DA4 ; (+01fH)
+
+L9D85: XOR A
+L9D86: PUSH AF
+ CALL L9E29
+ POP AF
+L9D8B: LD (IX+000H),A
+ INC IX
+ RET
+
+ CALL L9DFC
+ JR NC,L9D98 ; (+002H)
+ LD A,002H
+L9D98: CP 007H
+ CCF
+ RET C
+ LD (IY+000H),A
+ RET
+
+ CALL L9DFC
+ RET C
+L9DA4: CP 054H
+ CCF
+ RET C
+ JR L9D86 ; (-024H)
+
+ CALL L9DFC
+ JR NC,L9DB1 ; (+002H)
+ LD A,004H
+L9DB1: DEC A
+ CP 007H
+ CCF
+ RET C
+ ADD A,06AH
+ LD (L9E45),A
+ RET
+
+ CALL L9DFC
+ JR NC,L9DC3 ; (+002H)
+ LD A,00FH
+L9DC3: CP 010H
+ CCF
+ RET C
+ ADD A,080H
+ LD (L9E46),A
+ RET
+
+ CALL L9DFC
+ JR NC,L9DD4 ; (+002H)
+ LD A,005H
+L9DD4: CP 00AH
+ CCF
+ RET C
+ ADD A,060H
+ LD (L9E47),A
+ RET
+
+ CALL L9DFC
+ RET C
+ CP 009H
+ CCF
+ RET C
+ ADD A,090H
+ LD (L9E48),A
+ RET
+
+ CALL L9DFC
+ RET C
+ OR A
+ SCF
+ RET Z
+ LD B,A
+ LD C,0A0H
+ LD (09E49H),BC
+ OR A
+ RET
+
+L9DFC: CALL HLFTCH
+ CALL L9E16
+ SCF
+ CALL NZ,L79F6
+ RET C
+ RST 018H
+ DB 013H
+ JP L8540
+
+L9E0C: CP 052H
+ RET Z
+ CP 041H
+ RET C
+ CP 048H
+ CCF
+ RET
+
+L9E16: OR A
+ RET Z
+ CP 00DH
+ RET Z
+ CP 0C8H
+ RET
+
+L9E1E: CALL L9E29
+ LD A,0FFH
+ CALL L9D8B
+ JP L9CA1
+
+L9E29: LD DE,L9E45
+ LD B,006H
+L9E2E: LD A,(DE)
+ OR A
+ CALL NZ,L9D8B
+ INC DE
+ DJNZ L9E2E ; (-008H)
+L9E36: LD DE,L9E45
+ LD B,006H
+ JP ?CLRDE
+
+ ADD HL,BC
+ DEC BC
+ NOP
+ LD (BC),A
+ INC B
+ DEC B
+ RLCA
+L9E45: NOP
+L9E46: NOP
+L9E47: NOP
+L9E48: NOP
+ NOP
+ NOP
+L9E4B: DS 2, 000H
+L9E4D: DS 2, 000H
+L9E4F: DS 2, 000H
+L9E51: DS 2, 000H
+L9E53: DB 000H
+L9E54: DB 000H
+L9E55: DS 2, 000H
+L9E57: DS 2, 000H
+L9E59: DS 4, 000H
+L9E5D: DB 000H
+L9E5E: DS 2, 000H
+ DB 015H
+ DB 000H
+ DB 0EBH
+ DB 0FFH
+ DS 2, 000H
+L9E66: DS 2, 000H
+L9E68: DS 2, 000H
+L9E6A: DS 7, 000H
+L9E71: DB 000H
+L9E72: DS 3, 000H
+L9E75: DB 000H
+L9E76: DS 4, 000H
+L9E7A: DB 000H
+L9E7B: DS 8, 000H
+L9E83: DS 25, 000H
+L9E9C: DB 008H
+L9E9D: DS 8, 000H
+L9EA5: DS 8, 000H
+L9EAD: DS 8, 000H
+L9EB5: DB 016H
+ DB 00DH
+ DB 020H
+ DS 38, 0D7H
+ DS 4, 020H
+ DB "BASIC ",005H,"INTERPRETER"
+ DS 2, 020H
+ DB 006H,"MZ-5Z"
+ DS 2, 030H
+ DB "9 V1.0A"
+ DS 2, 020H
+ DB 00DH
+ DS 3, 020H
+ DB 043H,005H,"OPYRIGHT ",006H,"(C) 1984 ",005H,"BY ",006H,"SHARP CORP."
+ DS 5, 020H
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+L9F40: DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB 020H
+ DB 00DH
+ DB 020H
+ DB 005H
+ DS 2, 032H
+ DB "340 BYTES FR"
+ DS 2, 045H
+ DS 2, 00DH
+ DS 93, 000H
+ LD C,(HL)
+L9FCF: LD BC,063CBH
+ LD DE,L9FF7
+L9FD5: LD A,(DE)
+ INC DE
+ ADD A,A
+ JR Z,L9FE5 ; (+00bH)
+ LD HL,L5C5B
+ CALL ADDHLA
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ JR L9FD5 ; (-010H)
+
+L9FE5: XOR A
+ LD (L108F),A
+ LD A,(L1097)
+ DEC A
+ CALL NZ,LA04B
+ LD HL,LA015
+ LD (L1070),HL
+ RET
+
+L9FF7: AND D
+ AND E
+ AND H
+ AND L
+ AND (HL)
+ AND A
+ XOR B
+ XOR (HL)
+L9FFF: XOR A
+ OR B
+ OR C
+ OR E
+ CP E
+ CP H
+ CP L
+ NOP
+LA007: LD B,001H
+ JR LA00D ; (+002H)
+
+LA00B: LD B,002H
+LA00D: LD A,(L1097)
+ CP B
+ RET Z
+ JP L63B7
+
+LA015: CALL LA01D
+ XOR A
+ LD (L1095),A
+ RET
+
+LA01D: LD A,(L108F)
+ OR A
+ JP NZ,L63B7
+ CALL LA468
+ CALL TEST1
+ DB 047H
+ JP Z,LA06F
+ CALL TESTX
+ DB 054H
+ CALL TEST1
+ DB 04EH
+ JR Z,LA042 ; (+00aH)
+ CALL TEST1
+ DB 04CH
+ DB 028H
+ DB 004H
+ DB LSRF
+ DB 06EH
+ DB 001H
+ DB 053H
+LA042: DB 032H
+ DB LSDMD
+ DB 09FH
+ DB LSRF
+ DB 07AH
+ DB 079H
+ DB LSRF
+ DB 067H
+ DB 0A0H
+LA04B: DB 03EH
+ LD BC,L9732
+ DJNZ 0A030H ; (-021H)
+ DB 006H
+ LD A,(09FCEH)
+ CP 04EH
+ RET Z
+ CP 04CH
+ LD A,00BH
+ JR Z,LA064 ; (+006H)
+LA05E: LD A,009H
+ RST 018H
+ DB 006H
+ RST 018H
+ DB 006H
+LA064: RST 018H
+ DB 006H
+ RET
+
+LA067: LD A,00AH
+ RST 018H
+ DB 006H
+ LD A,003H
+ JR LA064 ; (-00bH)
+
+LA06F: INC HL
+ CALL L797A
+ LD A,002H
+ LD (L1097),A
+ JR LA064 ; (-016H)
+
+LA07A: CALL LA468
+ CALL LA007
+ CALL L8551
+ LD A,E
+ OR A
+ RET Z
+ CP 0ECH
+ JR NC,LA08F ; (+005H)
+ CP 015H
+ JP NC,0636AH
+LA08F: CALL L797A
+ BIT 7,E
+ JR NZ,LA09E ; (+008H)
+LA096: LD A,00AH
+ RST 018H
+ DB 006H
+ DEC E
+ JR NZ,LA096 ; (-007H)
+ RET
+
+LA09E: LD A,003H
+ RST 018H
+ DB 006H
+ INC E
+ JR NZ,LA09E ; (-007H)
+ RET
+
+LA0A6: PUSH HL
+ LD HL,L03E7
+ JR LA0B0 ; (+004H)
+
+LA0AC: PUSH HL
+ LD HL,L01E0
+LA0B0: PUSH HL
+ ADD HL,DE
+ POP HL
+ JR C,LA0BA ; (+005H)
+ SBC HL,DE
+ JP C,0636AH
+LA0BA: POP HL
+ RET
+
+LA0BC: LD C,044H
+ LD DE,04A0EH
+ LD DE,L4D0E
+ LD DE,0520EH
+ CALL LA468
+ CALL LA00B
+ LD A,C
+ LD (0A111H),A
+ CP 04DH
+ JR NC,LA0F7 ; (+022H)
+ CALL TEST1
+ DB 025H
+ JR NZ,LA0F7 ; (+01cH)
+ CALL L853D
+ LD A,E
+ DEC A
+ CP 010H
+ JP NC,0636AH
+ DEC DE
+ LD A,04CH
+ RST 018H
+ DB 006H
+ CALL LA3CD
+ CALL LA156
+ CALL L5963
+ RET Z
+ CALL L79B4
+LA0F7: CALL L8551
+ CALL L79B4
+ CALL LA0AC
+ PUSH DE
+ CALL L8551
+ CP 02CH
+ JR Z,LA10B ; (+003H)
+ CALL L797A
+LA10B: CALL LA0A6
+ POP BC
+ PUSH DE
+ LD A,000H
+ RST 018H
+ DB 006H
+ LD E,C
+ LD D,B
+ CALL LA3CD
+ CALL LA15A
+ POP DE
+ CALL LA3CD
+ CALL LA156
+ CALL L5963
+ RET Z
+ INC HL
+ JR LA0F7 ; (-033H)
+
+LA12A: CALL LA468
+ CALL L853D
+ LD A,E
+ CP 004H
+ JP NC,0636AH
+ CALL L797A
+ LD A,(L1097)
+ CP 002H
+ JR Z,LA14D ; (+00dH)
+ CALL LA067
+ LD A,002H
+ RST 018H
+ DB 006H
+ CALL LA14D
+ JP LA45A
+
+LA14D: LD A,043H
+ RST 018H
+ DB 006H
+ LD A,E
+ OR 030H
+ RST 018H
+ DB 006H
+LA156: LD A,00DH
+ JR LA15C ; (+002H)
+
+LA15A: LD A,02CH
+LA15C: RST 018H
+ DB 006H
+ RET
+
+LA15F: LD C,048H
+ LD DE,L490E
+ CALL LA00B
+ CALL L797A
+ LD A,C
+ JR LA15C ; (-011H)
+
+LA16D: CALL LA468
+ CALL LA00B
+ CALL TEST1
+ DB 05BH
+ JR NZ,LA1B1 ; (+038H)
+ CALL L853D
+ CP 040H
+ JP NC,0636AH
+ PUSH DE
+ CALL L79B1
+ CALL L853D
+ CP 004H
+ JP NC,0636AH
+ PUSH DE
+ CALL TESTX
+ DB 05DH
+ POP BC
+ POP DE
+ PUSH BC
+ LD A,053H
+ RST 018H
+ DB 006H
+ CALL LA3CD
+ CALL LA15A
+ POP DE
+ LD A,051H
+ RST 018H
+ DB 006H
+ CALL LA3CD
+ CALL LA156
+ CALL L5963
+ RET Z
+ CALL L79B4
+LA1B1: CALL L8561
+ CALL L5963
+ JR Z,LA1BD ; (+004H)
+ CALL L79B4
+ DEC HL
+LA1BD: LD A,B
+ OR A
+ JR Z,LA1CE ; (+00dH)
+ LD A,050H
+ RST 018H
+ DB 006H
+LA1C5: LD A,(DE)
+ RST 018H
+ DB 006H
+ INC DE
+ DJNZ LA1C5 ; (-006H)
+ CALL LA156
+LA1CE: CALL L5963
+ RET Z
+ INC HL
+ JR LA1B1 ; (-024H)
+
+LA1D5: CALL LA00B
+ CALL L853D
+ CP 002H
+ JP NC,0636AH
+ PUSH AF
+ CALL L79B1
+ CALL L8551
+ PUSH DE
+ CALL L79B4
+ CALL L853D
+ OR A
+ JP Z,0636AH
+ CALL L797A
+ LD A,058H
+ RST 018H
+ DB 006H
+ POP BC
+ POP AF
+ PUSH DE
+ PUSH BC
+ OR 030H
+ RST 018H
+ DB 006H
+ CALL LA15A
+ POP DE
+ CALL LA0A6
+ CALL LA3CD
+ CALL LA15A
+ POP DE
+ CALL LA3CD
+ JP LA156
+
+LA215: CALL LA00B
+ PUSH HL
+ LD DE,L0000
+ LD HL,LA3AF
+ CALL L79CB
+ LD DE,L0168
+ LD HL,LA3B4
+ CALL L79CB
+ LD HL,L7C40
+ LD DE,LA3B9
+ CALL L79C5
+ POP HL
+ CALL L857C
+ CALL L79B4
+ PUSH HL
+ LD HL,LA3A0
+ EX DE,HL
+ CALL L79C5
+ POP HL
+ CALL L857C
+ CALL L79B4
+ PUSH HL
+ LD HL,LA3A5
+ EX DE,HL
+ CALL L79C5
+ POP HL
+ CALL L857C
+ PUSH HL
+ PUSH AF
+ LD HL,LA3AA
+ EX DE,HL
+ CALL L79C5
+ LD A,(0A3ABH)
+ RLCA
+ JP C,0636AH
+ POP AF
+ CP 02CH
+ JR NZ,LA2A5 ; (+03aH)
+ POP HL
+ INC HL
+ CALL L857C
+ PUSH HL
+ PUSH AF
+ LD HL,LA3AF
+ EX DE,HL
+ CALL L79C5
+ POP AF
+ CP 02CH
+ JR NZ,LA2A5 ; (+027H)
+ POP HL
+ INC HL
+ CALL L857C
+ PUSH HL
+ PUSH AF
+ LD HL,LA3B4
+ EX DE,HL
+ CALL L79C5
+ POP AF
+ CP 02CH
+ JR NZ,LA2A5 ; (+014H)
+ POP HL
+ INC HL
+ CALL L857C
+ PUSH HL
+ LD HL,LA3B9
+ EX DE,HL
+ CALL L79C5
+ LD A,(0A3BAH)
+ RLCA
+ JP C,0636AH
+LA2A5: POP HL
+ CALL L797A
+ PUSH HL
+ LD HL,LA3B4
+ LD DE,LA3AF
+ LD A,(LA3B9)
+ OR A
+ CALL NZ,L9153
+ JP C,0636AH
+ CALL LA356
+ LD HL,LA3BE
+ LD (0A32EH),HL
+ LD HL,LA3C3
+ LD (0A339H),HL
+ CALL 0A32AH
+ LD A,(LA3B9)
+ OR A
+ JR Z,LA304 ; (+032H)
+LA2D2: LD HL,LA3AF
+ LD DE,LA3B9
+ CALL L90BC
+ LD DE,LA3B4
+ CALL L9153
+ JR NC,LA2EF ; (+00cH)
+ CALL LA356
+ CALL LA327
+ RST 018H
+ DB 00EH
+ JR NZ,LA2D2 ; (-01bH)
+ POP HL
+ RET
+
+LA2EF: CALL LA2F7
+ CALL LA327
+ POP HL
+ RET
+
+LA2F7: LD HL,LA3B4
+ LD DE,LA3AF
+ LD BC,00005H
+ LDIR
+ JR LA356 ; (+052H)
+
+LA304: LD HL,LA3A0
+ LD (0A32EH),HL
+ LD HL,LA3A5
+ LD (0A339H),HL
+ CALL LA327
+ CALL LA2F7
+ LD HL,LA3BE
+ LD (0A32EH),HL
+ LD HL,LA3C3
+ LD (0A339H),HL
+ CALL LA327
+ POP HL
+ RET
+
+LA327: LD A,044H
+ LD HL,04D3EH
+ PUSH AF
+ LD HL,LA3A0
+ CALL L7BEA
+ PUSH HL
+ EX DE,HL
+ CALL LA0A6
+ LD HL,LA3A5
+ CALL L7BEA
+ PUSH HL
+ EX DE,HL
+ CALL LA0A6
+ POP HL
+ POP DE
+ POP AF
+ RST 018H
+ DB 006H
+ PUSH HL
+ CALL LA3CD
+ CALL LA15A
+ POP DE
+ CALL LA3CD
+ JP LA156
+
+LA356: LD DE,(INTFAC)
+ LD HL,LA3AF
+ CALL L79C5
+ LD HL,(L107C)
+ CALL L98B3
+ CALL L96F9
+ LD DE,LA3AA
+ CALL L92EA
+ LD DE,LA3A0
+ CALL L90BC
+ LD DE,LA3BE
+ CALL L79C5
+ LD DE,(INTFAC)
+ LD HL,LA3AF
+ CALL L79C5
+ LD HL,(L107C)
+ CALL L98B3
+ CALL L9709
+ LD DE,LA3AA
+ CALL L92EA
+ LD DE,LA3A5
+ CALL L90BC
+ LD DE,LA3C3
+ JP L79C5
+
+LA3A0: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+LA3A5: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+LA3AA: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+LA3AF: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+LA3B4: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+LA3B9: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+LA3BE: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+LA3C3: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+LA3CD: PUSH AF
+ PUSH HL
+ LD HL,(L107C)
+ CALL L79CB
+ CALL L7B5B
+ RST 018H
+ DB 017H
+LA3DA: LD A,(DE)
+ RST 018H
+ DB 006H
+ INC DE
+ DJNZ LA3DA ; (-006H)
+ POP HL
+ POP AF
+ RET
+
+LA3E3: CALL LA468
+ DB LSRF
+ DB 007H
+ DB 0A0H
+ DB LSRF
+ DB "zy>",004H,0DFH,006H,0C9H
+LA3F1: DB LSRF
+ DB 007H
+ DB 0A0H
+ DB LSRF
+ DB 051H,085H,07BH,0B7H,0CAH,06AH,063H,0FEH,049H
+ DB LSD2
+ DB 06AH
+ DB 063H
+ DB LSRF
+ DB "zy>",009H,0DFH,006H,0DFH,006H,03AH,092H,010H,0CBH,047H,028H,006H
+ DB LSRF
+ CALL 0C3A3H
+ LD D,(HL)
+ AND C
+ LD A,E
+ LD DE,L11A4
+ CALL L851A
+ DEC DE
+ DEC DE
+ LD A,(DE)
+ RST 018H
+ DB 006H
+ INC DE
+ LD A,(DE)
+ RST 018H
+ DB 006H
+ RET
+
+LA428: LD A,(HL)
+ CP 09DH
+ JR Z,LA438 ; (+00bH)
+ CP 0A1H
+ JP NZ,L6364
+ XOR A
+LA433: LD (L108F),A
+ INC HL
+ RET
+
+LA438: CALL LA007
+ CALL LA468
+ LD A,(09FCEH)
+ CP 04CH
+ JP Z,L63B7
+ CALL LA45A
+ LD A,(L108F)
+ OR A
+ JR NZ,LA433 ; (-01cH)
+ CALL L6A8D
+ LD A,016H
+ RST 018H
+ DB 003H
+ OR 001H
+ JR LA433 ; (-027H)
+
+LA45A: LD A,001H
+ RST 018H
+ DB 006H
+ LD A,(L137A)
+ CP 003H
+ RET C
+ CALL LA05E
+ RET
+
+LA468: LD A,(PSEL)
+ BIT 0,A
+ JP Z,L63B7
+ RET
+
+EXECSTART: XOR A ; Execution entry point
+ LD DE,L0000
+ CALL TIMST
+ ;LD HL,(DTEFG)
+ ;PUSH HL
+ LD DE,L0000
+ LD HL,BASICEND - L0000
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ LD HL,TAPECOPY
+ OUT (LSE0),A
+ LDIR
+ ;POP HL
+ ;LD (L0054),HL
+ JP L0000
+
+ DS 0,11
+BASICEND:
diff --git a/asm/rfs.asm b/asm/rfs.asm
index 11ebe23..3da3dee 100644
--- a/asm/rfs.asm
+++ b/asm/rfs.asm
@@ -8,7 +8,7 @@
;- the MZ-80A RFS hardware upgrade.
;-
;- Credits:
-;- Copyright: (c) 2018-2023 Philip Smart
+;- Copyright: (c) 2018-2026 Philip Smart
;-
;- History: v1.0 July 2019 - Merged 2 utilities to create this compilation.
;- v2.0 May 2020 - Bank switch changes with release of v2 pcb with coded latch. The coded
@@ -27,6 +27,8 @@
;- RFS is built for the SFD700.
;- v2.31 Dec 2025 - Bug fixes. Disabled internal floppy control logic for SFD700 as it is not
;- needed, AFI ROM always needs to be present, especially for MZ-80A.
+;- v2.32 Mar 2026 - Added DUC command.
+;- v2.33 Mar 2026 - Expanded to 12 Banks.
;-
;--------------------------------------------------------------------------------------------------------
;- This source file is free software: you can redistribute it and-or modify
@@ -54,85 +56,97 @@
; Monitor command table (SFD700). This table contains the list of recognised commands along with the
; handler function and bank in which it is located.
;
- ; 7 6 5:3 2:0
- ; END MATCH BANK SIZE
+ ; 7 6:3 2:0
+ ; MATCH BANK SIZE
CMDTABLE2: IF BUILD_SFD700 = 1
- DB 000H | 000H | 038H | 003H
+ DB 000H | 038H | 003H
DB "ASM" ; Assembler.
DW ASM_MAIN
- DB 000H | 000H | 000H | 005H
+ DB 000H | 000H | 005H
DB "BASIC" ; Load and run BASIC SA-5510.
DW LOADBASIC
- DB 000H | 000H | 020H | 001H
+ DB 000H | 020H | 001H
DB 'B' ; Bell.
DW SGX
- DB 000H | 000H | 000H | 003H
+ DB 000H | 000H | 003H
DB "CPM" ; Load and run CPM.
DW LOADCPM
- DB 000H | 000H | 018H | 002H
+ DB 000H | 018H | 002H
DB "CP" ; Copy Memory.
DW MCOPY
- DB 000H | 000H | 018H | 001H
+ DB 000H | 018H | 003H
+ DB "DUC" ; Dump SD Card file contents (hex or text).
+ DW DUMPSDCARD
+ DB 000H | 018H | 001H
DB 'C' ; Clear Memory.
DW INITMEMX
- DB 000H | 000H | 038H | 004H
+ DB 000H | 038H | 004H
DB "DASM" ; Disassembler.
DW DASM_MAIN
- DB 000H | 000H | 018H | 001H
+ DB 000H | 018H | 001H
DB 'D' ; Dump Memory.
DW DUMPX
- DB 000H | 000H | 008H | 001H
- DB 'F' ; 'F' RFS Floppy boot code.
+ DB 000H | 008H | 002H
+ DB "FL" ; 'FL' RFS Floppy load.
DW FDCK
- DB 000H | 000H | 030H | 001H
- DB 'H' ; Help screen.
+ DB 000H | 008H | 002H
+ DB "FD" ; 'FD' Floppy directory.
+ DW FDDIR
+ DB 000H | 058H | 001H
+ DB 'H' ; Help screen (bank 11).
DW HELP
- DB 000H | 000H | 000H | 002H
+ DB 000H | 018H | 002H ; Bank 3, 2-char command.
+ DB "IN" ; I/O port input.
+ DW INX
+ DB 000H | 000H | 002H
DB "IR" ; List ROM directory.
DW DIRROM
- DB 000H | 000H | 000H | 001H
+ DB 000H | 000H | 001H
DB 'J' ; Jump to address.
DW GOTOX
- DB 000H | 000H | 020H | 004H
+ DB 000H | 020H | 004H
DB "LTNX" ; Load from CMT without auto execution.
DW LOADTAPENX
- DB 000H | 000H | 020H | 002H
+ DB 000H | 020H | 002H
DB "LT" ; Load from CMT
DW LOADTAPE
- DB 000H | 000H | 000H | 004H
+ DB 000H | 000H | 004H
DB "LRNX" ; Load from ROM without auto execution.
DW LOADROMNX
- DB 000H | 000H | 000H | 002H
+ DB 000H | 000H | 002H
DB "LR" ; Load from ROM
DW LOADROM
- DB 000H | 000H | 020H | 001H
+ DB 000H | 020H | 001H
DB "L" ; Original Load from CMT
DW LOADTAPE
- DB 000H | 000H | 018H | 001H
+ DB 000H | 018H | 001H
DB 'M' ; Edit Memory.
DW MCORX
- DB 000H | 000H | 018H | 001H
+ DB 000H | 018H | 003H ; Bank 3, 3-char command.
+ DB "OUT" ; I/O port output.
+ DW OUTX
+ DB 000H | 018H | 001H
DB 'P' ; Printer test.
DW PTESTX
- DB 000H | 000H | 020H | 001H
+ DB 000H | 020H | 001H
DB 'R' ; Memory test.
DW MEMTEST
- DB 000H | 000H | 020H | 002H
+ DB 000H | 020H | 002H
DB "ST" ; Save to CMT
DW SAVEX
- DB 000H | 000H | 020H | 001H
+ DB 000H | 020H | 001H
DB 'S' ; Save to CMT
DW SAVEX
- DB 000H | 000H | 000H | 004H
+ DB 000H | 000H | 004H
DB "TEST" ; A test function used in debugging.
DW LOCALTEST
- DB 000H | 000H | 020H | 001H
+ DB 000H | 020H | 001H
DB 'T' ; Timer test.
DW TIMERTST
- DB 000H | 000H | 000H | 001H
+ DB 000H | 000H | 001H
DB 'V' ; Verify CMT Save.
DW VRFYX
- DB 080H | 000H | 000H | 001H
+ DB 0FFH ; END OF TABLE
ENDIF
IF BUILD_SFD700 = 1
@@ -200,6 +214,26 @@ BKSW0to7: PUSH AF
LD A, ROMBANK0 ; Calling bank (ie. us).
PUSH AF
LD A, ROMBANK7 ; Required bank to call.
+ JR BKSW0_0
+BKSW0to8: PUSH AF
+ LD A, ROMBANK0 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK8 ; Required bank to call.
+ JR BKSW0_0
+BKSW0to9: PUSH AF
+ LD A, ROMBANK0 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK9 ; Required bank to call.
+ JR BKSW0_0
+BKSW0to10: PUSH AF
+ LD A, ROMBANK0 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK10 ; Required bank to call.
+ JR BKSW0_0
+BKSW0to11: PUSH AF
+ LD A, ROMBANK0 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK11 ; Required bank to call.
;
BKSW0_0: PUSH HL ; Place function to call on stack
LD HL, BKSWRET0 ; Place bank switchers return address on stack.
@@ -212,6 +246,22 @@ BKSWRET0: POP AF ; Get b
POP AF
RET ; Return to caller.
+ ;-----------------------------------------
+ ; picoZ80/RomDisk: trampolines for _PRTMZF and _PRTDBG.
+ ; Defined BEFORE the jump table so they are backward references.
+ ; Real implementations are in bank 9 (rfs_bank9.asm).
+ ;-----------------------------------------
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+_PRTMZF: LD HL,RFSJMPTABLE ; Bank 9 jump table: JP _PRTMZF9 at same address.
+ CALL BKSW0to9
+ RET
+_PRTDBG: LD HL,RFSJMPTABLE+3 ; Bank 9 jump table: JP _PRTDBG9.
+ CALL BKSW0to9
+ RET
+ ENDIF
+
+ ; Critical - External applications need to know the address of the Jump Table.
+ ; If changed, go through the applications and update RFSJMPTABLE.
ALIGN RFSJMPTABLE
ORG RFSJMPTABLE
@@ -219,18 +269,17 @@ BKSWRET0: POP AF ; Get b
; Enhanced function Jump table.
; This table is generally used by the monitor ROM to call functions within the User ROM.
;------------------------------------------------------------------------------------------
-PRTMZF: JP _PRTMZF ; UROMADDR+80H - Print out an MZF header stored in the IBUFE location.
-PRTDBG: JP _PRTDBG ; UROMADDR+83H - Print out debug information, if enabled.
-CMT_RDINF: JP _CMT_RDINF ; UROMADDR+86H - Tape/SD intercept handler - Read Header
-CMT_RDDATA: JP _CMT_RDDATA ; UROMADDR+89H - Tape/SD intercept handler - Read Data
-CMT_WRINF: JP _CMT_WRINF ; UROMADDR+80H - Tape/SD intercept handler - Write Header
-CMT_WRDATA: JP _CMT_WRDATA ; UROMADDR+8FH - Tape/SD intercept handler - Write Data
-CMT_VERIFY: JP _CMT_VERIFY ; UROMADDR+92H - Tape/SD intercept handler - Verify Data
-CMT_DIR: JP _CMT_DIR ; UROMADDR+95H - SD card directory listing command.
-CNV_ATOS: JP _CNV_ATOS ; UROMADDR+98H - Convert string from Ascii to Sharp Ascii
+PRTMZF: JP _PRTMZF ; UROMADDR+A0H - Print out an MZF header stored in the IBUFE location.
+PRTDBG: JP _PRTDBG ; UROMADDR+A3H - Print out debug information, if enabled.
+CMT_RDINF: JP _CMT_RDINF ; UROMADDR+A6H - Tape/SD intercept handler - Read Header
+CMT_RDDATA: JP _CMT_RDDATA ; UROMADDR+A9H - Tape/SD intercept handler - Read Data
+CMT_WRINF: JP _CMT_WRINF ; UROMADDR+ACH - Tape/SD intercept handler - Write Header
+CMT_WRDATA: JP _CMT_WRDATA ; UROMADDR+AFH - Tape/SD intercept handler - Write Data
+CMT_VERIFY: JP _CMT_VERIFY ; UROMADDR+B2H - Tape/SD intercept handler - Verify Data
+CMT_DIR: JP _CMT_DIR ; UROMADDR+B5H - SD card directory listing command.
+CNV_ATOS: JP _CNV_ATOS ; UROMADDR+B8H - Convert string from Ascii to Sharp Ascii
;-----------------------------------------
-
;-----------------------------------------
; Initialisation and startup.
;-----------------------------------------
@@ -238,7 +287,6 @@ CNV_ATOS: JP _CNV_ATOS ; UROMA
; NB. Bank control registers are left selected. Any software needing access to the top 8 bytes of a
; ROM/RAM page need to disable them, perform their actions then re-emable.
;
- JP ROMFS_1 ; Skip the reset vector.
;
ROMFS_1:
LD A, (ROMBK1) ; Ensure all banks are at default
@@ -285,7 +333,7 @@ CHKTZ1: AND 0E0H
XOR A ; Set the initial SDCFS active drive number.
LD (SDDRIVENO),A
;
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
LD A, (ROMBK1) ; Is the 80column MZ-80A monitor active? Yes, set display as 80col.
CP 1
JR Z, SET80CHAR
@@ -340,7 +388,7 @@ SIGNON3: LD HL,PRINTMSG
; JR ST1X
; Initialise SD card, report any errors.
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
LD HL, SDINIT ; SD Card Initialisation
CALL BKSW0to2 ; Call the initialisation routine.
LD A,L
@@ -383,7 +431,7 @@ ST1X: CALL NL ; Comma
;
CMDCMP: XOR A ; Clear the result variable used by interbank calls. Some functions set this variable and we act on it.
LD (RESULT),A
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
LD HL,CMDTABLE
ENDIF
IF BUILD_SFD700 = 1
@@ -393,11 +441,11 @@ CMDCMP0: LD DE,BUFER+1 ; First
LD A,(HL)
CP 000H
JR Z,ST1X ; Skip processing on lines where just CR pressed.
- BIT 7,A ; Bit 7 set on command properties indicates table end, exit if needed.
- JR NZ,CMDNOCMP
-
+ CP 0FFH ; All bits set on command properties indicates table end, exit if needed.
+ JR Z,CMDNOCMP
+ ;
LD C,A ; Command properties into C
- SET 6,C ; Assume command match.
+ SET 7,C ; Assume command match.
AND 007H ; Mask out bytes in command mask.
LD B,A ; Number of bytes in command.
INC HL
@@ -405,11 +453,11 @@ CMDCMP1: LD A,(DE) ; Compa
CP (HL)
JR Z, CMDCMP2
- RES 6,C ; No command match.
+ RES 7,C ; No command match.
CMDCMP2: INC DE
INC HL
DJNZ CMDCMP1
- BIT 6,C ; Bit 7 is still set then we have a command match.
+ BIT 7,C ; Bit 7 is still set then we have a command match.
JR NZ,CMDCMP3
INC HL
INC HL ; Skip over function address
@@ -421,10 +469,10 @@ CMDCMP3: LD A,(HL) ; Comma
PUSH HL ; Push the address of the function to be called.
LD (TMPADR),DE ; Store the key buffer location where arguments start.
LD A,C ; Get back command properties, ie. bank number
+ SRL A ; Shift 3 size bits to obtain bank number
SRL A
SRL A
- SRL A
- AND 007H ; Mask out just the bank number of the command.
+ AND 00FH ; Mask out just the bank number of the command.
CP 000H
JR Z,CMDCMP6 ; No point using the bank switching logic for the current bank 0.
LD B,A
@@ -463,118 +511,144 @@ CMDCMPEND: LD A,(RESULT)
; Monitor command table (ROMDISK). This table contains the list of recognised commands along with the
; handler function and bank in which it is located.
;
- ; 7 6 5:3 2:0
- ; END MATCH BANK SIZE
-CMDTABLE: IF BUILD_ROMDISK = 1
- DB 000H | 000H | 000H | 002H ; Bit 2:0 = Command Size, 5:3 = Bank, 6 = Command match, 7 = Command table end.
+ ; 7 6:3 2:0
+ ; MATCH BANK SIZE
+CMDTABLE: IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+ DB 000H | 000H | 002H ; Bit 2:0 = Command Size, 5:3 = Bank, 6 = Command match, 7 = Command table end.
DB "40" ; 40 Char screen mode.
DW SETMODE40
- DB 000H | 000H | 000H | 002H
+ DB 000H | 000H | 002H
DB "80" ; 80 Char screen mode.
DW SETMODE80
- ;DB 000H | 000H | 000H | 004H
+ ;DB 000H | 000H | 004H
;DB "7008" ; Switch to 80 column MZ700 mode.
;DW SETMODE7008
- ;DB 000H | 000H | 000H | 003H
+ ;DB 000H | 000H | 003H
;DB "700" ; Switch to 40 column MZ700 mode.
;DW SETMODE700
- DB 000H | 000H | 000H | 005H
+ DB 000H | 040H | 003H
+ DB "ASM" ; Assembler.
+ DW ASM_MAIN
+ DB 000H | 048H | 005H ; Bank 9.
DB "BASIC" ; Load and run BASIC SA-5510.
- DW LOADBASIC
- DB 000H | 000H | 020H | 001H
+ DW LOADBASIC9
+ DB 000H | 020H | 001H
DB 'B' ; Bell.
DW SGX
- DB 000H | 000H | 000H | 003H
+ DB 000H | 048H | 003H ; Bank 9.
DB "CPM" ; Load and run CPM.
- DW LOADCPM
- DB 000H | 000H | 018H | 002H
+ DW LOADCPM9
+ DB 000H | 018H | 002H
DB "CP" ; Copy Memory.
DW MCOPY
- DB 000H | 000H | 018H | 001H
+ DB 000H | 018H | 001H
DB 'C' ; Clear Memory.
DW INITMEMX
- DB 000H | 000H | 018H | 001H
+ DB 000H | 038H | 004H
+ DB "DASM" ; Disassembler.
+ DW DASM_MAIN
+ DB 000H | 018H | 003H
+ DB "DUC" ; Dump SD Card file contents (hex or text).
+ DW DUMPSDCARD
+ DB 000H | 018H | 001H
DB 'D' ; Dump Memory.
DW DUMPX
- DB 000H | 000H | 010H | 002H
+ DB 000H | 010H | 002H
DB "EC" ; Erase file.
DW ERASESD
- DB 000H | 000H | 008H | 001H
- DB 'F' ; 'F' RFS Floppy boot code.
+ DB 000H | 008H | 002H
+ DB "FL" ; 'FL' RFS Floppy load/boot.
DW FLOPPY
- DB 000H | 000H | 008H | 001H
+ DB 000H | 008H | 002H
+ DB "FD" ; 'FD' Floppy directory.
+ DW FDDIR
+ DB 000H | 008H | 001H
DB 0AAH ; 'f' Original Floppy boot code.
DW FDCK
- DB 000H | 000H | 030H | 001H
- DB 'H' ; Help screen.
+ DB 000H | 058H | 001H
+ DB 'H' ; Help screen (bank 11).
DW HELP
- DB 000H | 000H | 000H | 002H
+ DB 000H | 018H | 002H ; Bank 3, 2-char command.
+ DB "IN" ; I/O port input.
+ DW INX
+ DB 000H | 048H | 002H ; Bank 9.
DB "IR" ; List ROM directory.
- DW DIRROM
- DB 000H | 000H | 010H | 002H
+ DW DIRROM9
+ DB 000H | 010H | 002H
DB "IC" ; List SD Card directory.
DW DIRSDCARD
- DB 000H | 000H | 000H | 001H
+ DB 000H | 000H | 001H
DB 'J' ; Jump to address.
DW GOTOX
- DB 000H | 000H | 020H | 004H
+ DB 000H | 020H | 004H
DB "LTNX" ; Load from CMT without auto execution.
DW LOADTAPENX
- DB 000H | 000H | 020H | 002H
+ DB 000H | 020H | 002H
DB "LT" ; Load from CMT
DW LOADTAPE
- DB 000H | 000H | 000H | 004H
+ DB 000H | 048H | 004H ; Bank 9.
DB "LRNX" ; Load from ROM without auto execution.
- DW LOADROMNX
- DB 000H | 000H | 000H | 002H
+ DW LOADROMNX9
+ DB 000H | 048H | 002H ; Bank 9.
DB "LR" ; Load from ROM
- DW LOADROM
- DB 000H | 000H | 010H | 004H
+ DW LOADROM9
+ DB 000H | 010H | 004H
DB "LCNX" ; Load from SDCARD without auto execution.
DW LOADSDCARDX
- DB 000H | 000H | 010H | 002H
+ DB 000H | 010H | 002H
DB "LC" ; Load from SD CARD
DW LOADSDCARD
- DB 000H | 000H | 020H | 001H
+ DB 000H | 020H | 001H
DB "L" ; Original Load from CMT
DW LOADTAPE
- DB 000H | 000H | 018H | 001H
+ DB 000H | 018H | 001H
DB 'M' ; Edit Memory.
DW MCORX
- DB 000H | 000H | 018H | 001H
+ DB 000H | 018H | 003H ; Bank 3, 3-char command.
+ DB "OUT" ; I/O port output.
+ DW OUTX
+ DB 000H | 018H | 001H
DB 'P' ; Printer test.
DW PTESTX
- DB 000H | 000H | 020H | 001H
+ DB 000H | 020H | 001H
DB 'R' ; Memory test.
DW MEMTEST
- DB 000H | 000H | 018H | 004H
+ DB 000H | 018H | 004H
DB "SD2T" ; Copy SD Card to Tape.
DW SD2TAPE
- DB 000H | 000H | 010H | 002H
+ DB 000H | 010H | 002H
DB "SC" ; Save to SD CARD
DW SAVESDCARD
- DB 000H | 000H | 020H | 002H
+ DB 000H | 020H | 002H
DB "ST" ; Save to CMT
DW SAVEX
- DB 000H | 000H | 020H | 001H
+ DB 000H | 020H | 001H
DB 'S' ; Save to CMT
DW SAVEX
- DB 000H | 000H | 000H | 004H
+ DB 000H | 000H | 004H
DB "TEST" ; A test function used in debugging.
DW LOCALTEST
- DB 000H | 000H | 018H | 004H
+ DB 000H | 018H | 004H
DB "T2SD" ; Copy Tape to SD Card.
DW TAPE2SD
- DB 000H | 000H | 020H | 001H
+ DB 000H | 020H | 001H
DB 'T' ; Timer test.
DW TIMERTST
- DB 000H | 000H | 000H | 001H
+ DB 000H | 000H | 001H
DB 'V' ; Verify CMT Save.
DW VRFYX
- DB 000H | 000H | 000H | 001H
+ DB 000H | 000H | 001H
DB 'X' ; Exchange to hi load rom so DRAM = 0000:0CFFF
DW HIROM
- DB 080H | 000H | 000H | 001H
+ IF BUILD_PICOZ80 = 1
+ DB 000H | 020H | 002H ; Bank 4, 2-char command.
+ DB "QL" ; Boot first file from QD drive.
+ DW QDBOOT
+ DB 000H | 020H | 002H ; Bank 4, 2-char command.
+ DB "QD" ; List QD drive directory.
+ DW QDLIST
+ ENDIF
+ DB 0FFH ; END OF TABLE
ENDIF
;-------------------------------------------------------------------------------
@@ -612,7 +686,7 @@ HEXIYX2: POP AF ; Waste
;
;====================================
-HIROM: IF BUILD_ROMDISK = 1
+HIROM: IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
LD A, (MEMSW) ; Swap ROM into high range slot.
LD A, ROMBANK2
LD (ROMBK1),A ; Save bank being enabled.
@@ -620,7 +694,7 @@ HIROM: IF BUILD_ROMDISK = 1
JP 0C000H
ENDIF
-SETMODE40: IF BUILD_ROMDISK = 1
+SETMODE40: IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
LD A, ROMBANK0 ; Switch to 40Char monitor.
LD (ROMBK1),A
HWSELMROM
@@ -637,7 +711,7 @@ SETMODE40: IF BUILD_ROMDISK = 1
JP MONIT
ENDIF
-SETMODE80: IF BUILD_ROMDISK = 1
+SETMODE80: IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
LD A, ROMBANK1 ; Switch to 80char monitor.
LD (ROMBK1),A
HWSELMROM
@@ -711,6 +785,13 @@ SETCLR_1: LD (DE),A
;
;====================================
+ ;------------------------------------------------------------------------------------------
+ ; ROM File System functions.
+ ; picoZ80/RomDisk: moved to bank 9 (rfs_bank9.asm) to free space in bank 0.
+ ; SFD700: kept inline (4K UROM banks have plenty of room).
+ ;------------------------------------------------------------------------------------------
+ IF BUILD_SFD700 = 1
+
; HL contains address of block to check.
ISMZF: PUSH BC
PUSH DE
@@ -751,7 +832,7 @@ _PRTDBG: IF ENADEBUG = 1
PUSH DE
PUSH BC
PUSH AF
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
LD A,(ROMBK1)
HWSELMROM ; Set the MROM bank back to original.
ENDIF
@@ -779,7 +860,7 @@ _PRTDBG: IF ENADEBUG = 1
CALL PRNT
; CALL NL
; CALL GETKY
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
LD A,(WRKROMBK1)
HWSELMROM ; Set the MROM bank back to scanned bank.
ENDIF
@@ -794,7 +875,7 @@ _PRTMZF: PUSH BC
PUSH DE
PUSH HL
;
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
LD A,(ROMBK1) ; Ensure main MROM is switched in.
HWSELMROM
ENDIF
@@ -863,7 +944,7 @@ PRTMZF2: LD L,A
PRTMZF3: XOR A
PRTMZF4: OR A
PUSH AF
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
LD A, (WRKROMBK1)
HWSELMROM
ENDIF
@@ -890,7 +971,7 @@ DIRROM: ;DI ; Disab
;
; Get directory of User ROM (RomDisk).
;
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
LD A,ROMBANK3
LD (WRKROMBK1),A
HWSELMROM
@@ -1052,7 +1133,7 @@ LOADROM1: ;DI
; D = File sequence number.
LD D,0 ; File numbering start.
;
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
PUSH HL ; Save pointer to filename for FINDMZF in Monitor ROM.
LD A,ROMBANK3 ; Activate the RFS Utilities MROM bank.
LD (WRKROMBK1), A
@@ -1068,10 +1149,10 @@ LOADROM1: ;DI
JR LROMNTFND ; Requested file not found.
;
MROMLOAD0: PUSH BC ; Preserve bank and block where MZF file found.
- PUSH AF
+ PUSH AF ; Preserve 7:6 of A which is upper bank select.
LD A,(ROMBK1) ; Page in monitor so we can print a message.
HWSELMROM
- LD DE,MSGLOAD+1 ; Skip initial CR.
+ LD DE,MSGLOAD+1 ; Skip initial file type identifier.
LD BC,NAME
LD HL,PRINTMSG
CALL BKSW0to6
@@ -1218,6 +1299,8 @@ LOADPRGNM2: POP HL
LOADBASIC: LD DE,BASICFILENM
JR LOADPRGNM
+ ENDIF ; BUILD_SFD700
+
LOADPROG: LD HL,LOADSDCARD
CALL BKSW0to2
RET
@@ -1498,3 +1581,7 @@ MEND:
INCLUDE "rfs_bank5.asm"
INCLUDE "rfs_bank6.asm"
INCLUDE "rfs_bank7.asm"
+ INCLUDE "rfs_bank8.asm"
+ INCLUDE "rfs_bank9.asm"
+ INCLUDE "rfs_bank10.asm"
+ INCLUDE "rfs_bank11.asm"
diff --git a/asm/rfs_bank1.asm b/asm/rfs_bank1.asm
index e3ef092..000b85a 100644
--- a/asm/rfs_bank1.asm
+++ b/asm/rfs_bank1.asm
@@ -8,7 +8,7 @@
;- the MZ-80A RFS hardware upgrade.
;-
;- Credits:
-;- Copyright: (c) 2018-2023 Philip Smart
+;- Copyright: (c) 2018-2026 Philip Smart
;-
;- History: July 2019 - Merged 2 utilities to create this compilation.
;- May 2020 - Bank switch changes with release of v2 pcb with coded latch. The coded
@@ -105,6 +105,26 @@ BKSW1to7: PUSH AF
LD A, ROMBANK1 ; Calling bank (ie. us).
PUSH AF
LD A, ROMBANK7 ; Required bank to call.
+ JR BKSW1_0
+BKSW1to8: PUSH AF
+ LD A, ROMBANK1 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK8 ; Required bank to call.
+ JR BKSW1_0
+BKSW1to9: PUSH AF
+ LD A, ROMBANK1 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK9 ; Required bank to call.
+ JR BKSW1_0
+BKSW1to10: PUSH AF
+ LD A, ROMBANK1 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK10 ; Required bank to call.
+ JR BKSW1_0
+BKSW1to11: PUSH AF
+ LD A, ROMBANK1 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK11 ; Required bank to call.
;
BKSW1_0: PUSH HL ; Place function to call on stack
LD HL, BKSWRET1 ; Place bank switchers return address on stack.
@@ -139,7 +159,8 @@ FDCKROM: LD A,(0F000h)
OR A
RET
-FLOPPY: IF BUILD_ROMDISK = 1
+FLOPPY: IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+ IF BUILD_MZ80A = 1
PUSH DE ; Preserve pointer to input buffer.
LD DE,BPARA ; Copy disk parameter block into RAM work area. (From)
LD HL,PRMBLK ; (To)
@@ -503,6 +524,585 @@ L0300: IN A,(0D8H) ; State
RRCA
JR C,L0300 ; Wait on data reg ready
JP (IY) ; to f1df
+ ENDIF
+
+ IF BUILD_MZ700 = 1
+ ;
+ ;-------------------------------------------------------------------------------
+ ; MZ-700 FLOPPY DISK CONTROLLER - Based on MZ-1E05 ROM code.
+ ;
+ ; The MZ-700 FDC uses the same WD1773 controller as the MZ-80A but with an
+ ; inverted data bus (all values CPL'd before OUT, after IN). The read loop
+ ; uses a simple INI transfer rather than the MZ-80A's hardware-assisted JP(IX)/JP(IY).
+ ;
+ ; Disk geometry: 70 tracks (0-69), 2 heads, 16 sectors/track (1-16), 256 bytes/sector.
+ ;
+ ; Work area in RAM:
+ ; BPARA (1008H): 11-byte parameter block (drive, sector, size, addr, track, sector)
+ ; FDCCMD (1000H): Last FDC command byte
+ ; MOTON (1001H): Motor on flag
+ ; TRK0FD1-4 (1002-1005H): Track 0 calibrated flags per drive
+ ; RETRIES (1006H): Retry counter
+ ;-------------------------------------------------------------------------------
+
+ ; Method to boot from MZ-700 floppy disk.
+ ;
+ PUSH DE ; Preserve pointer to input buffer.
+ LD DE,BPARA ; Copy disk parameter block into RAM work area.
+ LD HL,PRMBLK
+ LD BC,11
+ LDIR
+ POP DE
+ LD A,(DE) ; Check if drive number given on command line.
+ CP 00DH
+ JR NZ,FD7BOOT
+ CALL FD7INIT ; Initialise disk and flags.
+FD7PRMPT: LD DE,MSGBOOTDRV
+ LD HL,PRINTMSG
+ CALL BKSW1to6
+ LD DE,011A3H
+ CALL GETL
+ LD A,(DE)
+ CP 01BH ; BREAK pressed?
+ JP Z,ST1X
+ LD HL,19
+ ADD HL,DE
+ LD A,(HL)
+ CP 00DH
+ JR Z,FD7READ1
+FD7BOOT: CALL HEX ; Convert number to binary.
+ JR C,FD7PRMPT
+ DEC A
+ CP 4
+ JR NC,FD7PRMPT
+ LD (BPARA),A ; Store drive number.
+ ;
+ ; Read boot sector (sector 0, track 0).
+FD7READ1: LD IX,BPARA
+ CALL FD7READ ; Read boot sector into 0xCF00.
+ ;
+ ; Verify boot disk - check for "2IPLPRO" signature.
+ LD HL,0CF00H ; Boot sector loaded here.
+ LD DE,DSKID
+ LD B,7
+FD7CHK: LD C,(HL)
+ LD A,(DE)
+ CP C
+ JP NZ,FD7NOTMST ; Not a master disk.
+ INC HL
+ INC DE
+ DJNZ FD7CHK
+ ;
+ ; Valid boot disk - print loading message and program name.
+ LD DE,MSGIPLLOAD
+ LD HL,PRINTMSG
+ CALL BKSW1to6
+ LD DE,0CF07H ; Program name in boot sector.
+ LD HL,PRTFN
+ CALL BKSW1to6
+ ;
+ ; Extract load parameters from boot sector.
+ LD HL,(0CF16H) ; Load/target address.
+ LD A,H
+ OR L
+ JR NZ,FD7NORM ; Non-zero = normal file.
+ LD HL,(0CF18H) ; Check exec address too.
+ LD A,H
+ OR L
+ JR Z,FD7RELO ; Both zero = needs relocation (loads into ROM space).
+FD7NORM: LD HL,(0CF18H) ; Normal: use load address from boot sector.
+ LD (IX+5),L
+ LD (IX+6),H
+ XOR A
+ JR FD7LOAD
+ ;
+FD7RELO: LD A,0FFH ; Target is 0x0000 (ROM area), load to temp buffer.
+ LD HL,01200H
+ LD (IX+5),L
+ LD (IX+6),H
+FD7LOAD: LD (CMTLOLOAD),A ; Save relocation flag.
+ LD HL,(0CF14H) ; Byte size.
+ LD (IX+3),L
+ LD (IX+4),H
+ LD HL,(0CF1EH) ; Start logical sector.
+ LD (IX+1),L
+ LD (IX+2),H
+ ;
+ CALL FD7READ ; Read the program data.
+ CALL FD7INIT ; Motor off, reset.
+ ;
+ ; If relocation needed, page out ROM and copy to real address.
+ LD A,(CMTLOLOAD)
+ CP 0FFH
+ JR NZ,FD7EXEC
+ OUT (0E0H),A ; Page out ROM, enable lower DRAM.
+ LD HL,01200H ; Source.
+ LD DE,(0CF16H) ; Target address.
+ LD BC,(0CF14H) ; Byte count.
+ LDIR
+FD7EXEC: LD BC,00200H ; Default return code.
+ LD HL,(0CF18H) ; Execution address.
+ JP (HL)
+ ;
+ ; Error handlers.
+FD7NOTMST: CALL FD7INIT
+ LD DE,MSGDSKNOTMST
+ JR FD7ERR
+FD7LOADERR: LD DE,MSGLOADERR
+FD7ERR: LD HL,PRINTMSG
+ CALL BKSW1to6
+ LD DE,ERRTONE
+ CALL MELDY
+ LD SP,(TMPSTACKP) ; Recover stack pointer.
+ RET
+
+ ;-------------------------------------------------------------------------------
+ ; MZ-700 FDC LOW-LEVEL ROUTINES
+ ;-------------------------------------------------------------------------------
+
+ ; FDC I/O presence check: write/read test on track register.
+FD7CC: LD A,0A5H
+ LD B,A
+ CPL
+ OUT (FDC_TRACK),A
+ CALL FD7DLY80U
+ IN A,(FDC_TRACK)
+ CPL
+ CP B
+ RET
+
+ ; Initialise disk: motor off, clear all flags.
+FD7INIT: PUSH AF
+ CALL FD7DLY1M
+ XOR A
+ OUT (FDC_DRIVE),A ; Motor off.
+ LD (TRK0FD1),A
+ LD (TRK0FD2),A
+ LD (TRK0FD3),A
+ LD (TRK0FD4),A
+ LD (MOTON),A
+ POP AF
+ RET
+
+ ; Motor on: enable motor and wait for spinup.
+FD7MOTON: LD A,080H
+ OUT (FDC_DRIVE),A
+ LD B,16
+FD7MTD1: CALL FD7DLY60M
+ DJNZ FD7MTD1
+ LD A,1
+ LD (MOTON),A
+ RET
+
+ ; Ready check: ensure motor is on, drive selected, seek track 0 if needed.
+FD7READY: LD A,(MOTON)
+ RRCA
+ CALL NC,FD7MOTON
+ LD A,(IX+0) ; Drive number.
+ OR 084H
+ OUT (FDC_DRIVE),A ; Drive select + motor on.
+ XOR A
+ LD (FDCCMD),A
+ CALL FD7DLY60M
+ LD HL,0
+FD7RDY0: DEC HL
+ LD A,H
+ OR L
+ JP Z,FD7DSKERR ; Timeout.
+ IN A,(FDC_CMD)
+ CPL
+ RLCA
+ JR C,FD7RDY0 ; Wait for not-busy.
+ LD C,(IX+0)
+ LD HL,TRK0FD1
+ LD B,0
+ ADD HL,BC
+ BIT 0,(HL)
+ JR NZ,FD7RDY2 ; Already calibrated.
+ CALL FD7RCLB ; Seek track 0.
+ SET 0,(HL)
+FD7RDY2: RET
+
+ ; Seek to track in track register.
+FD7SEEK: LD A,01BH ; Seek command.
+ CALL FD7CMD1
+ AND 099H
+ RET
+
+ ; Restore (seek track 0).
+FD7RCLB: LD A,00BH ; Restore command.
+ CALL FD7CMD1
+ AND 085H
+ XOR 004H
+ RET Z
+ JP FD7DSKERR
+
+ ; Send FDC command and wait for completion (type I commands).
+FD7CMD1: LD (FDCCMD),A
+ CPL
+ OUT (FDC_CMD),A
+ CALL FD7BSYON ; Wait for busy.
+ CALL FD7DLY60M
+ IN A,(FDC_CMD)
+ CPL
+ RET
+
+ ; Send FDC command and wait for not-busy (type II/III commands).
+FD7CMD2: LD (FDCCMD),A
+ CPL
+ OUT (FDC_CMD),A
+ CALL FD7BSYOFF
+ RET
+
+ ; Wait for FDC to become busy (command accepted).
+FD7BSYON: PUSH DE
+ PUSH HL
+ CALL FD7DLY80U
+ LD E,7
+FD7BSY1: LD HL,0
+FD7BSY2: DEC HL
+ LD A,H
+ OR L
+ JR Z,FD7BSY3
+ IN A,(FDC_CMD)
+ RRCA
+ JR NC,FD7BSY2 ; Wait until busy bit set.
+ POP HL
+ POP DE
+ RET
+FD7BSY3: DEC E
+ JR NZ,FD7BSY1
+ POP HL
+ POP DE
+ JP FD7DSKERR
+
+ ; Wait for FDC to become not-busy (command complete).
+FD7BSYOFF: PUSH DE
+ PUSH HL
+ CALL FD7DLY80U
+ LD E,7
+FD7BSF1: LD HL,0
+FD7BSF2: DEC HL
+ LD A,H
+ OR L
+ JR Z,FD7BSF3
+ IN A,(FDC_CMD)
+ RRCA
+ JR C,FD7BSF2 ; Wait until busy bit clear.
+ POP HL
+ POP DE
+ RET
+FD7BSF3: DEC E
+ JR NZ,FD7BSF1
+ POP HL
+ POP DE
+ JP FD7DSKERR
+
+ ; Sequential read from disk.
+ ; IX = parameter block (BPARA).
+FD7READ: CALL FD7CNVRT ; Convert logical sector to track/sector.
+ CALL FD7PRST1 ; Setup params, HL = load address.
+FD7RE8: CALL FD7SIDST ; Set side/head.
+ CALL FD7SEEK
+ JP NZ,FD7DSKERR
+ CALL FD7PRST2 ; Set track & sector registers.
+ DI
+ LD A,094H ; Read sector (multiple records).
+ CALL FD7CMD2
+FD7RE6: LD B,0 ; 256 bytes per sector.
+FD7RE4: IN A,(FDC_CMD)
+ RRCA
+ JR C,FD7RE3 ; Busy dropped = done.
+ RRCA
+ JR C,FD7RE4 ; DRQ not set, keep waiting.
+ INI ; Read byte: (HL) = IN(C), B--, HL++.
+ JR NZ,FD7RE4
+ ;
+ INC (IX+8) ; Next sector.
+ LD A,(IX+8)
+ CP 17 ; Past last sector on track?
+ JR Z,FD7RESEC
+ DEC D ; Decrement sector count.
+ JR NZ,FD7RE6 ; More sectors to read.
+ JR FD7REDONE
+FD7RESEC: DEC D
+FD7REDONE: LD A,0D8H ; Force interrupt.
+ CPL
+ OUT (FDC_CMD),A
+ CALL FD7BSYON
+FD7RE3: EI
+ IN A,(FDC_CMD)
+ CPL
+ AND 0FFH
+ JR NZ,FD7DSKERR ; Read error.
+ CALL FD7ADJ ; Adjust sector/track.
+ JR Z,FD7REND ; All sectors read.
+ LD A,(IX+7) ; Next track.
+ JR FD7RE8
+FD7REND: LD A,080H
+ OUT (FDC_DRIVE),A ; Keep motor on.
+ RET
+
+ ; Parameter setup: ready check, set sector count and start positions.
+FD7PRST1: CALL FD7READY
+ LD D,(IX+4) ; Sector count (high byte of size = pages).
+ LD A,(IX+3) ; Low byte of size.
+ OR A
+ JR Z,FD7PRS1A
+ INC D ; Round up if partial sector.
+FD7PRS1A: LD A,(IX+10) ; Start sector -> current.
+ LD (IX+8),A
+ LD A,(IX+9) ; Start track -> current.
+ LD (IX+7),A
+ LD L,(IX+5) ; Load address.
+ LD H,(IX+6)
+ RET
+
+ ; Set side/head based on track number.
+FD7SIDST: SRL A ; Track/2, carry = side.
+ CPL
+ OUT (FDC_DATA),A ; Track to data register for seek.
+ JR NC,FD7SIDE0
+ LD A,1 ; Side 1.
+ JR FD7SIDES
+FD7SIDE0: XOR A ; Side 0.
+FD7SIDES: CPL
+ OUT (FDC_SIDE),A
+ RET
+
+ ; Set track and sector registers.
+FD7PRST2: LD C,FDC_DATA ; Data port for INI instruction.
+ LD A,(IX+7) ; Current track.
+ SRL A
+ CPL
+ OUT (FDC_TRACK),A
+ LD A,(IX+8) ; Current sector.
+ CPL
+ OUT (FDC_SECTOR),A
+ RET
+
+ ; Adjust sector/track after reading.
+FD7ADJ: LD A,(IX+8)
+ CP 17 ; Past last sector?
+ JR NZ,FD7ADJ1
+ LD A,1 ; Wrap to sector 1.
+ LD (IX+8),A
+ INC (IX+7) ; Next track.
+FD7ADJ1: LD A,D
+ OR A ; Z if all sectors read.
+ RET
+
+ ; Convert logical sector number to physical track and sector.
+FD7CNVRT: LD B,0 ; Track counter.
+ LD DE,16 ; 16 sectors per track.
+ LD L,(IX+1) ; Logical sector number.
+ LD H,(IX+2)
+ XOR A
+FD7CNV0: SBC HL,DE
+ JR C,FD7CNV1
+ INC B
+ JR FD7CNV0
+FD7CNV1: ADD HL,DE
+ LD H,B ; Track.
+ INC L ; Sector 1-16 (not 0-15).
+ LD (IX+9),H ; Start track.
+ LD (IX+10),L ; Start sector.
+ RET
+
+ ; Disk error handler.
+FD7DSKERR: CALL FD7INIT
+ JP FD7LOADERR
+
+ ; Time delays.
+FD7DLY80U: PUSH DE
+ LD DE,15
+ JR FD7DLYT
+FD7DLY1M: PUSH DE
+ LD DE,160
+ JR FD7DLYT
+FD7DLY60M: PUSH DE
+ LD DE,8230
+FD7DLYT: DEC DE
+ LD A,E
+ OR D
+ JR NZ,FD7DLYT
+ POP DE
+ RET
+
+ ;-------------------------------------------------------------------------------
+ ; MZ-700 FLOPPY DIRECTORY
+ ;
+ ; Lists all files on a floppy disk. Default drive 1, or FD1..FD4.
+ ;
+ ; Disk layout:
+ ; Sector 0: IPL boot header ("3IPLPRO" signature)
+ ; Sectors 1..(N-1): Directory slots (one MZF header per sector)
+ ; Sectors N..end: File data
+ ;
+ ; N = start data sector from boot header at +1EH.
+ ; Each directory slot is one 256-byte sector containing an MZF header:
+ ; +00: file type (00=empty/deleted, 01=OBJ, 02=BTX, etc)
+ ; +01: filename (17 bytes)
+ ; +12: byte size (16-bit LE)
+ ; +14: load address (16-bit LE)
+ ; +16: exec address (16-bit LE)
+ ;
+ ; All slots are scanned; empty slots (type=00) are skipped.
+ ;
+ ; Input: DE = pointer to optional drive number on command line.
+ ;-------------------------------------------------------------------------------
+
+FDDIR: ; Parse drive number (default = drive 1 = index 0).
+ LD A,(DE)
+ CP 00DH
+ JR Z,FDDIR_DEF
+ CALL HEX
+ JR C,FDDIR_DEF
+ DEC A ; 1-based to 0-based.
+ CP 4
+ JR C,FDDIR_GO
+FDDIR_DEF: XOR A
+ ;
+FDDIR_GO: LD (BPARA),A ; Store drive number.
+ ADD A,'1'
+ LD C,A
+ PUSH BC
+ LD DE,MSGFDDIR
+ LD HL,PRINTMSG
+ CALL BKSW1to6
+ POP BC
+ ;
+ ; Setup parameter block: read sector 0, 256 bytes to CF00H.
+ LD A,(BPARA)
+ PUSH AF
+ LD DE,BPARA
+ LD HL,PRMBLK
+ PUSH BC
+ LD BC,11
+ LDIR
+ POP BC
+ POP AF
+ LD (BPARA),A
+ ;
+ CALL FD7CC
+ JP NZ,FDDIR_END ; No FDC.
+ ;
+ ; Read boot sector (sector 0 = IPL) and verify signature.
+ LD IX,BPARA
+ CALL FD7READ
+ LD HL,0CF00H
+ LD DE,DSKID
+ LD B,7
+FDDIR_IPL: LD A,(DE)
+ CP (HL)
+ JP NZ,FDDIR_END ; Not a valid disk.
+ INC HL
+ INC DE
+ DJNZ FDDIR_IPL
+ ; Print IPL boot entry: name at +07, size +14, load +16, exec +18.
+ LD DE,0CF07H
+ LD HL,PRTFN
+ CALL BKSW1to6
+ LD HL,(0CF16H)
+ PUSH HL
+ LD HL,(0CF18H)
+ PUSH HL
+ LD BC,(0CF14H)
+ LD DE,MSGFDINFO
+ LD HL,PRINTMSG
+ CALL BKSW1to6
+ POP BC
+ POP BC
+ ;
+ ; Scan directory: 32-byte entries, 8 per sector.
+ ; The MZ-700 disk has: side 1 = IPL (sector 0), side 0 = directory (sector 16+).
+ ; Boot sector offset +1EH has the start data sector — directory spans
+ ; from sector 16 to (startDataSec - 1). First sector entry 0 is FAT header.
+ ;
+ ; Get number of directory sectors from IPL offset +1EH.
+ LD A,(0CF1EH) ; Start data sector (low byte).
+ SUB 16 ; Directory sectors = startDataSec - 16.
+ JR Z,FDDIR_END ; No directory sectors.
+ JR C,FDDIR_END
+ LD C,A ; C = number of directory sectors.
+ LD A,16 ; First directory sector.
+ ;
+FDDIR_SEC: ; Read next directory sector.
+ PUSH AF ; Save current sector number.
+ PUSH BC ; Save remaining sector count.
+ LD (IX+1),A
+ LD (IX+2),0
+ CALL FD7READ
+ ;
+ ; First sector (16): skip entry 0 (FAT header), scan entries 1-7.
+ ; Subsequent sectors: scan all 8 entries.
+ POP BC
+ POP AF
+ PUSH AF ; Keep sector number on stack.
+ PUSH BC
+ CP 16
+ JR NZ,FDDIR_AL8 ; Not first sector → all 8 entries.
+ LD HL,0CF20H ; Skip entry 0 (FAT header).
+ LD B,7 ; 7 entries in first sector.
+ JR FDDIR_ENT
+FDDIR_AL8: LD HL,0CF00H ; Start from entry 0.
+ LD B,8 ; 8 entries per sector.
+ ;
+FDDIR_ENT: ; Check type byte at (HL). 00 = empty/deleted, FF = unused → skip.
+ LD A,(HL)
+ OR A
+ JR Z,FDDIR_NXE
+ CP 0FFH
+ JR Z,FDDIR_NXE
+ ;
+ ; Valid entry: print filename and load/exec/size.
+ LD (TMPADR),HL ; Save entry base.
+ PUSH HL
+ PUSH BC
+ INC HL ; +01 = filename.
+ EX DE,HL
+ LD HL,PRTFN
+ CALL BKSW1to6
+ ; Read size from base+12H, load from base+14H, exec from base+16H.
+ LD HL,(TMPADR)
+ LD DE,012H
+ ADD HL,DE
+ LD C,(HL)
+ INC HL
+ LD B,(HL) ; BC = size.
+ INC HL ; +14H = load addr.
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH DE ; Stack: load addr.
+ INC HL ; +16H = exec addr.
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH DE ; Stack: exec addr.
+ LD DE,MSGFDINFO
+ LD HL,PRINTMSG
+ CALL BKSW1to6
+ POP BC ; Clean exec.
+ POP BC ; Clean load.
+ POP BC ; Restore entry counter.
+ POP HL ; Restore entry pointer.
+ ;
+FDDIR_NXE: LD DE,32 ; Next 32-byte entry.
+ ADD HL,DE
+ DJNZ FDDIR_ENT
+ ;
+ ; Move to next directory sector.
+ POP BC ; B unused, C = remaining sectors.
+ POP AF ; A = current sector number.
+ INC A ; Next sector.
+ DEC C
+ JR NZ,FDDIR_SEC ; More directory sectors.
+ ;
+FDDIR_END: CALL FD7INIT
+ RET
+
+ ENDIF
ENDIF
;-------------------------------------------------------------------------------
@@ -519,20 +1119,30 @@ L0300: IN A,(0D8H) ; State
; Error tone.
ERRTONE: DB "A0", 0D7H, "ARA", 0D7H, "AR", 00DH
- ; Identifier to indicate this is a valid boot disk
-DSKID: DB 002H, "IPLPRO"
+ ; Boot disk identifier - 002H prefix for MZ-80A, 003H prefix for MZ-700.
+DSKID: IF BUILD_MZ80A = 1
+ DB 002H, "IPLPRO"
+ ELSE
+ DB 003H, "IPLPRO"
+ ENDIF
- ; Parameter block to indicate configuration and load area.
-PRMBLK: DB 000H, 000H, 000H, 000H, 001H, 000H, 0CEH, 000H, 000H, 000H, 000H
+ ; Parameter block: drive 0, sector 0, 256 bytes, load address differs.
+ ; MZ-80A loads boot sector to CE00H, MZ-700 loads to CF00H.
+PRMBLK: IF BUILD_MZ80A = 1
+ DB 000H, 000H, 000H, 000H, 001H, 000H, 0CEH, 000H, 000H, 000H, 000H
+ ELSE
+ DB 000H, 000H, 000H, 000H, 001H, 000H, 0CFH, 000H, 000H, 000H, 000H
+ ENDIF
- ; Ensure we fill the entire 2K by padding with FF's.
+ IF BUILD_MZ80A = 1
+ ; MZ-80A hardware-assisted read: JP (IY) must be at a fixed address (EBFDh/F3FEh).
ALIGN 0EBFDh
DB 0FFh
-
L03FE: JP (IY)
+ ENDIF
; RomDisk, top 8 bytes are used by the control registers when enabled so dont use the space.
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
ALIGN 0EFF8h
ORG 0EFF8h
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
diff --git a/asm/rfs_bank10.asm b/asm/rfs_bank10.asm
new file mode 100644
index 0000000..d49d4a1
--- /dev/null
+++ b/asm/rfs_bank10.asm
@@ -0,0 +1,150 @@
+;--------------------------------------------------------------------------------------------------------
+;-
+;- Name: rfs_bank10.asm
+;- Created: July 2019
+;- Author(s): Philip Smart
+;- Description: Sharp MZ series Rom Filing System.
+;- This assembly language program is written to utilise the banked flashroms added with
+;- the MZ-80A RFS hardware upgrade.
+;-
+;- Credits:
+;- Copyright: (c) 2018-2026 Philip Smart
+;-
+;- History: July 2019 - Merged 2 utilities to create this compilation.
+;- May 2020 - Bank switch changes with release of v2 pcb with coded latch. The coded
+;- latch adds additional instruction overhead as the control latches share
+;- the same address space as the Flash RAMS thus the extra hardware to
+;- only enable the control registers if a fixed number of reads is made
+;- into the upper 8 bytes which normally wouldnt occur. Caveat - ensure
+;- that no loop instruction is ever placed into EFF8H - EFFFH.
+;- Aug 2023 - Updates to make RFS run under the SFD700 Floppy Disk Interface board.
+;- UROM remains the same, a 2K paged ROM, MROM is located at F000 when
+;- RFS is built for the SFD700.
+;-
+;--------------------------------------------------------------------------------------------------------
+;- This source file is free software: you can redistribute it and-or modify
+;- it under the terms of the GNU General Public License as published
+;- by the Free Software Foundation, either version 3 of the License, or
+;- (at your option) any later version.
+;-
+;- This source file is distributed in the hope that it will be useful,
+;- but WITHOUT ANY WARRANTY; without even the implied warranty of
+;- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;- GNU General Public License for more details.
+;-
+;- You should have received a copy of the GNU General Public License
+;- along with this program. If not, see .
+;--------------------------------------------------------------------------------------------------------
+
+ ;===========================================================
+ ;
+ ; USER ROM BANK 10 -
+ ;
+ ;===========================================================
+ ORG UROMADDR
+
+ ;--------------------------------
+ ; Common code spanning all banks.
+ ;--------------------------------
+ NOP
+ HWSELROM2 ; Select the first ROM page.
+ ;
+ ; No mans land... this should have switched to Bank 0 and at this point there is a jump to 00000H.
+ JP 00000H ; This is for safety!!
+
+
+ ;------------------------------------------------------------------------------------------
+ ; Bank switching code, allows a call to code in another bank.
+ ; This code is duplicated in each bank such that a bank switch doesnt affect logic flow.
+ ;------------------------------------------------------------------------------------------
+ ALIGN_NOPS UROMBSTBL
+ ;
+BKSW10to0: PUSH AF
+ LD A, ROMBANK10 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK0 ; Required bank to call.
+ JR BKSW10_0
+BKSW10to1: PUSH AF
+ LD A, ROMBANK10 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK1 ; Required bank to call.
+ JR BKSW10_0
+BKSW10to2: PUSH AF
+ LD A, ROMBANK10 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK2 ; Required bank to call.
+ JR BKSW10_0
+BKSW10to3: PUSH AF
+ LD A, ROMBANK10 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK3 ; Required bank to call.
+ JR BKSW10_0
+BKSW10to4: PUSH AF
+ LD A, ROMBANK10 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK4 ; Required bank to call.
+ JR BKSW10_0
+BKSW10to5: PUSH AF
+ LD A, ROMBANK10 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK5 ; Required bank to call.
+ JR BKSW10_0
+BKSW10to6: PUSH AF
+ LD A, ROMBANK10 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK6 ; Required bank to call.
+ JR BKSW10_0
+BKSW10to7: PUSH AF
+ LD A, ROMBANK10 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK7 ; Required bank to call.
+ JR BKSW10_0
+BKSW10to8: PUSH AF
+ LD A, ROMBANK10 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK8 ; Required bank to call.
+ JR BKSW10_0
+BKSW10to9: PUSH AF
+ LD A, ROMBANK10 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK9 ; Required bank to call.
+ JR BKSW10_0
+BKSW10to10: PUSH AF
+ LD A, ROMBANK10 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK10 ; Required bank to call.
+ JR BKSW10_0
+BKSW10to11: PUSH AF
+ LD A, ROMBANK10 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK11 ; Required bank to call.
+ ;
+BKSW10_0: PUSH HL ; Place function to call on stack
+ LD HL, BKSWRET10 ; Place bank switchers return address on stack.
+ EX (SP),HL
+ LD (TMPSTACKP),SP ; Save the stack pointer as some old code corrupts it.
+ BNKSWSEL
+ JP (HL) ; Jump to required function.
+BKSWRET10: POP AF ; Get bank which called us.
+ BNKSWSELRET
+ POP AF
+ RET
+
+ ;-------------------------------------------------------------------------------
+ ; START OF METHODS
+ ;-------------------------------------------------------------------------------
+
+ ;-------------------------------------------------------------------------------
+ ; END OF METHODS
+ ;-------------------------------------------------------------------------------
+
+ ; RomDisk - Pad to EFFF boundary.
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+ ALIGN 0EFF8h
+ ORG 0EFF8h
+ DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
+ ENDIF
+ ; SFD700 - Pad to 10000H
+ IF BUILD_SFD700 = 1
+ ALIGN 10000H
+ ENDIF
diff --git a/asm/rfs_bank11.asm b/asm/rfs_bank11.asm
new file mode 100644
index 0000000..9eba723
--- /dev/null
+++ b/asm/rfs_bank11.asm
@@ -0,0 +1,419 @@
+;--------------------------------------------------------------------------------------------------------
+;-
+;- Name: rfs_bank11.asm
+;- Created: July 2019
+;- Author(s): Philip Smart
+;- Description: Sharp MZ series Rom Filing System.
+;- This assembly language program is written to utilise the banked flashroms added with
+;- the MZ-80A RFS hardware upgrade.
+;-
+;- Credits:
+;- Copyright: (c) 2018-2026 Philip Smart
+;-
+;- History: July 2019 - Merged 2 utilities to create this compilation.
+;- May 2020 - Bank switch changes with release of v2 pcb with coded latch. The coded
+;- latch adds additional instruction overhead as the control latches share
+;- the same address space as the Flash RAMS thus the extra hardware to
+;- only enable the control registers if a fixed number of reads is made
+;- into the upper 8 bytes which normally wouldnt occur. Caveat - ensure
+;- that no loop instruction is ever placed into EFF8H - EFFFH.
+;- Aug 2023 - Updates to make RFS run under the SFD700 Floppy Disk Interface board.
+;- UROM remains the same, a 2K paged ROM, MROM is located at F000 when
+;- RFS is built for the SFD700.
+;- Mar 2026 - 4 additional banks added, help screen moved to bank 11.
+;-
+;--------------------------------------------------------------------------------------------------------
+;- This source file is free software: you can redistribute it and-or modify
+;- it under the terms of the GNU General Public License as published
+;- by the Free Software Foundation, either version 3 of the License, or
+;- (at your option) any later version.
+;-
+;- This source file is distributed in the hope that it will be useful,
+;- but WITHOUT ANY WARRANTY; without even the implied warranty of
+;- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;- GNU General Public License for more details.
+;-
+;- You should have received a copy of the GNU General Public License
+;- along with this program. If not, see .
+;--------------------------------------------------------------------------------------------------------
+
+ ;===========================================================
+ ;
+ ; USER ROM BANK 11 -
+ ;
+ ;===========================================================
+ ORG UROMADDR
+
+ ;--------------------------------
+ ; Common code spanning all banks.
+ ;--------------------------------
+ NOP
+ HWSELROM2 ; Select the first ROM page.
+ ;
+ ; No mans land... this should have switched to Bank 0 and at this point there is a jump to 00000H.
+ JP 00000H ; This is for safety!!
+
+
+ ;------------------------------------------------------------------------------------------
+ ; Bank switching code, allows a call to code in another bank.
+ ; This code is duplicated in each bank such that a bank switch doesnt affect logic flow.
+ ;------------------------------------------------------------------------------------------
+ ALIGN_NOPS UROMBSTBL
+ ;
+BKSW11to0: PUSH AF
+ LD A, ROMBANK11 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK0 ; Required bank to call.
+ JR BKSW11_0
+BKSW11to1: PUSH AF
+ LD A, ROMBANK11 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK1 ; Required bank to call.
+ JR BKSW11_0
+BKSW11to2: PUSH AF
+ LD A, ROMBANK11 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK2 ; Required bank to call.
+ JR BKSW11_0
+BKSW11to3: PUSH AF
+ LD A, ROMBANK11 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK3 ; Required bank to call.
+ JR BKSW11_0
+BKSW11to4: PUSH AF
+ LD A, ROMBANK11 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK4 ; Required bank to call.
+ JR BKSW11_0
+BKSW11to5: PUSH AF
+ LD A, ROMBANK11 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK5 ; Required bank to call.
+ JR BKSW11_0
+BKSW11to6: PUSH AF
+ LD A, ROMBANK11 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK6 ; Required bank to call.
+ JR BKSW11_0
+BKSW11to7: PUSH AF
+ LD A, ROMBANK11 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK7 ; Required bank to call.
+ JR BKSW11_0
+BKSW11to8: PUSH AF
+ LD A, ROMBANK11 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK8 ; Required bank to call.
+ JR BKSW11_0
+BKSW11to9: PUSH AF
+ LD A, ROMBANK11 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK9 ; Required bank to call.
+ JR BKSW11_0
+BKSW11to10: PUSH AF
+ LD A, ROMBANK11 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK10 ; Required bank to call.
+ JR BKSW11_0
+BKSW11to11: PUSH AF
+ LD A, ROMBANK11 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK11 ; Required bank to call.
+ ;
+BKSW11_0: PUSH HL ; Place function to call on stack
+ LD HL, BKSWRET11 ; Place bank switchers return address on stack.
+ EX (SP),HL
+ LD (TMPSTACKP),SP ; Save the stack pointer as some old code corrupts it.
+ BNKSWSEL
+ JP (HL) ; Jump to required function.
+BKSWRET11: POP AF ; Get bank which called us.
+ BNKSWSELRET
+ POP AF
+ RET
+
+ ;-------------------------------------------------------------------------------
+ ; HELP SCREEN - Moved from bank 6 to free message space.
+ ;
+ ; This bank contains the HELP command handler, PRTSTR routine,
+ ; PRINTASCII character mapper, ATBL mapping table, and the help
+ ; text itself. All self-contained so no cross-bank calls needed.
+ ;-------------------------------------------------------------------------------
+
+ ; Simple help screen to display commands.
+HELP: CALL NL
+ LD DE, HELPSCR
+ CALL PRTSTR11
+ RET
+
+ ; Print string routine with full screen pause for help text.
+ ; String is NULL terminated, CR (0DH) triggers line counting and pause.
+PRTSTR11: PUSH AF
+ PUSH BC
+ PUSH DE
+ LD A,0
+ LD (TMPLINECNT),A
+PRTST11A: LD A,(DE)
+ CP 000H ; NULL terminates the string.
+ JR Z,PRTST11E
+ CP 00DH ; CR triggers line count.
+ JR Z,PRTST11C
+PRTST11B: CALL PRNTASC11
+ INC DE
+ JR PRTST11A
+PRTST11C: PUSH AF
+ LD A,(TMPLINECNT)
+ CP 24
+ JR Z,PRTST11F
+ INC A
+PRTST11D: LD (TMPLINECNT),A
+ POP AF
+ JR PRTST11B
+PRTST11F: CALL GETKY
+ CP ' '
+ JR NZ,PRTST11F
+ XOR A
+ JR PRTST11D
+PRTST11E: POP DE
+ POP BC
+ POP AF
+ RET
+
+ ; Print a true ASCII character using the ATBL mapping table.
+ ; Input: A = ASCII character (0-127). >= 128 calls Sharp PRNT directly.
+PRNTASC11: PUSH HL
+ PUSH BC
+ CP 080H
+ JR NC,PRNTASC11B
+ CP 00DH ; CR: don't map, call Sharp directly.
+ JR Z,PRNTASC11B
+ LD HL,ATBL11
+ LD C,A
+ LD B,0
+ ADD HL,BC
+ LD A,(HL)
+ CALL ?DSP
+PRNTASC11A: POP BC
+ POP HL
+ RET
+PRNTASC11B: CALL PRNT
+ JR PRNTASC11A
+
+ ; TRUE ASCII TO DISPLAY CODE TABLE (128 bytes, same as bank 6 ATBL)
+ATBL11: DB 0CCH ; NUL '\0' (null character)
+ DB 0E0H ; SOH (start of heading)
+ DB 0F2H ; STX (start of text)
+ DB 0F3H ; ETX (end of text)
+ DB 0CEH ; EOT (end of transmission)
+ DB 0CFH ; ENQ (enquiry)
+ DB 0F6H ; ACK (acknowledge)
+ DB 0F7H ; BEL '\a' (bell)
+ DB 0F8H ; BS '\b' (backspace)
+ DB 0F9H ; HT '\t' (horizontal tab)
+ DB 0FAH ; LF '\n' (new line)
+ DB 0FBH ; VT '\v' (vertical tab)
+ DB 0FCH ; FF '\f' (form feed)
+ DB 0FDH ; CR '\r' (carriage ret)
+ DB 0FEH ; SO (shift out)
+ DB 0FFH ; SI (shift in)
+ DB 0E1H ; DLE (data link escape)
+ DB 0C1H ; DC1 (device control 1)
+ DB 0C2H ; DC2 (device control 2)
+ DB 0C3H ; DC3 (device control 3)
+ DB 0C4H ; DC4 (device control 4)
+ DB 0C5H ; NAK (negative ack.)
+ DB 0C6H ; SYN (synchronous idle)
+ DB 0E2H ; ETB (end of trans. blk)
+ DB 0E3H ; CAN (cancel)
+ DB 0E4H ; EM (end of medium)
+ DB 0E5H ; SUB (substitute)
+ DB 0E6H ; ESC (escape)
+ DB 0EBH ; FS (file separator)
+ DB 0EEH ; GS (group separator)
+ DB 0EFH ; RS (record separator)
+ DB 0F4H ; US (unit separator)
+ DB 000H ; SPACE
+ DB 061H ; !
+ DB 062H ; "
+ DB 063H ; #
+ DB 064H ; $
+ DB 065H ; %
+ DB 066H ; &
+ DB 067H ; '
+ DB 068H ; (
+ DB 069H ; )
+ DB 06BH ; *
+ DB 06AH ; +
+ DB 02FH ; ,
+ DB 02AH ; -
+ DB 02EH ; .
+ DB 02DH ; /
+ DB 020H ; 0
+ DB 021H ; 1
+ DB 022H ; 2
+ DB 023H ; 3
+ DB 024H ; 4
+ DB 025H ; 5
+ DB 026H ; 6
+ DB 027H ; 7
+ DB 028H ; 8
+ DB 029H ; 9
+ DB 04FH ; :
+ DB 02CH ; ;
+ DB 051H ; <
+ DB 02BH ; =
+ DB 057H ; >
+ DB 049H ; ?
+ DB 055H ; @
+ DB 001H ; A
+ DB 002H ; B
+ DB 003H ; C
+ DB 004H ; D
+ DB 005H ; E
+ DB 006H ; F
+ DB 007H ; G
+ DB 008H ; H
+ DB 009H ; I
+ DB 00AH ; J
+ DB 00BH ; K
+ DB 00CH ; L
+ DB 00DH ; M
+ DB 00EH ; N
+ DB 00FH ; O
+ DB 010H ; P
+ DB 011H ; Q
+ DB 012H ; R
+ DB 013H ; S
+ DB 014H ; T
+ DB 015H ; U
+ DB 016H ; V
+ DB 017H ; W
+ DB 018H ; X
+ DB 019H ; Y
+ DB 01AH ; Z
+ DB 052H ; [
+ DB 059H ; \ '\\'
+ DB 054H ; ]
+ DB 0BEH ; ^
+ DB 03CH ; _
+ DB 0C7H ; `
+ DB 081H ; a
+ DB 082H ; b
+ DB 083H ; c
+ DB 084H ; d
+ DB 085H ; e
+ DB 086H ; f
+ DB 087H ; g
+ DB 088H ; h
+ DB 089H ; i
+ DB 08AH ; j
+ DB 08BH ; k
+ DB 08CH ; l
+ DB 08DH ; m
+ DB 08EH ; n
+ DB 08FH ; o
+ DB 090H ; p
+ DB 091H ; q
+ DB 092H ; r
+ DB 093H ; s
+ DB 094H ; t
+ DB 095H ; u
+ DB 096H ; v
+ DB 097H ; w
+ DB 098H ; x
+ DB 099H ; y
+ DB 09AH ; z
+ DB 0BCH ; {
+ DB 080H ; |
+ DB 040H ; }
+ DB 0A5H ; ~
+ DB 0C0H ; DEL
+
+ ; Help text.
+ ; 1 40
+HELPSCR: IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+ DB "0..9 - select RFS Drive", 00DH
+ IF BUILD_ROMDISK = 1
+ DB "40 - 40 col mode", 00DH
+ DB "80 - 80 col mode", 00DH
+ ENDIF
+ DB "ASMXXXX assemble into dest XXXX", 00DH
+ DB "B - toggle bell", 00DH
+ DB "BASIC - load BASIC SA-5510", 00DH
+ DB "C - clear mem $1200-$D000", 00DH
+ DB "CPXXXXYYYYZZZZ - copy mem X->Y size Z", 00DH
+ DB "CPM - load CPM", 00DH
+ DB "DUC[H|T]FN-dump sd file,H=hex+hdr,T=txt", 00DH
+ DB "DASMXXXX[YYYY] - disassemble X to Y", 00DH
+ DB "DXXXX[YYYY] - dump mem X -> Y", 00DH
+ DB "EC[FN]- erase file, FN=No, or Filename", 00DH
+ DB "FD/FL - fd dir/boot", 00DH
+ DB "f - boot orig fd rom", 00DH
+ DB "H - help screen", 00DH
+ DB "IN[port,..] - read I/O port(s)", 00DH
+ DB "IR/IC - rfs rom/sd card directory", 00DH
+ DB "JXXXX - jump to addr X", 00DH
+ DB "LT[FN]- load tape, FN=Filename", 00DH
+ DB "LR[FN]- load rom, FN=No. or Filename", 00DH
+ DB "LC[NX][FN]- load sd, FN=No or Filename", 00DH
+ DB " - NX = no exec", 00DH
+ DB "MXXXX - edit mem at X", 00DH
+ DB "OUT[port:val,..]-write I/O port(s)", 00DH
+ DB "P - test printer", 00DH
+ DB "QD/QL - QD dir/boot", 00DH
+ DB "R - test RAM", 00DH
+ DB "SD2T - copy sd to tape", 00DH
+ DB "ST[XXXXYYYYZZZZ] - save mem to tape", 00DH
+ DB "SC[XXXXYYYYZZZZ] - save mem to sd", 00DH
+ DB " X=start,Y=end,Z=exec", 00DH
+ DB "T - test timer", 00DH
+ DB "T2SD - copy tape to sd", 00DH
+ DB "V - verify tape save", 00DH
+ DB 000H
+ ENDIF
+ IF BUILD_SFD700 = 1
+ DB "ASMXXXX assemble into dest X", 00DH
+ DB "B - toggle keyboard bell.", 00DH
+ DB "BASIC - Load BASIC SA-5510.", 00DH
+ DB "C - clear memory $1200-$D000.", 00DH
+ DB "CPXXXXYYYYZZZZ - copy memory", 00DH
+ DB " X=src,Y=dst,Z=size", 00DH
+ ;DB "CPM - Load CPM.", 00DH
+ DB "DUC[H|T]FN-dump sd file,H=hex+hdr,T=txt", 00DH
+ DB "DXXXX[YYYY] - dump mem X to Y.", 00DH
+ DB "DASMXXXX[YYYY]", 00DH
+ DB " disassemble X to Y", 00DH
+ DB "FD/FL - fd dir/boot", 00DH
+ DB "H - this help screen.", 00DH
+ DB "IR - rfs rom dir listing.", 00DH
+ DB "JXXXX - jump to location X.", 00DH
+ DB "LT[FN]- load tape, FN=Filename", 00DH
+ DB "LR[FN]- load rom, FN=No. or Filename", 00DH
+ DB " - add NX for no exec, ie.LRNX.", 00DH
+ DB "MXXXX - edit memory starting at X.", 00DH
+ DB "P - test printer.", 00DH
+ DB "QD/QL - QD dir/boot", 00DH
+ DB "R - test dram memory.", 00DH
+ DB "SD2T - copy sd card to tape.", 00DH
+ DB "ST[XXXXYYYYZZZZ] - save mem to tape.", 00DH
+ DB "SC[XXXXYYYYZZZZ] - save mem to card.", 00DH
+ DB " X=start,Y=end,Z=exec", 00DH
+ DB "T - test timer.", 00DH
+ DB "T2SD - copy tape to sd card.", 00DH
+ DB "V - verify tape save.", 00DH
+ DB 000H
+ ENDIF
+
+ ;-------------------------------------------------------------------------------
+ ; END OF HELP SCREEN
+ ;-------------------------------------------------------------------------------
+
+ ; RomDisk - Pad to EFFF boundary.
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+ ALIGN 0EFF8h
+ ORG 0EFF8h
+ DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
+ ENDIF
+ ; SFD700 - Pad to 10000H
+ IF BUILD_SFD700 = 1
+ ALIGN 10000H
+ ENDIF
diff --git a/asm/rfs_bank2.asm b/asm/rfs_bank2.asm
index 5b1e8be..b69811c 100644
--- a/asm/rfs_bank2.asm
+++ b/asm/rfs_bank2.asm
@@ -8,7 +8,7 @@
;- the MZ-80A RFS hardware upgrade.
;-
;- Credits:
-;- Copyright: (c) 2018-2023 Philip Smart
+;- Copyright: (c) 2018-2026 Philip Smart
;-
;- History: July 2019 - Merged 2 utilities to create this compilation.
;- May 2020 - Bank switch changes with release of v2 pcb with coded latch. The coded
@@ -108,6 +108,26 @@ BKSW2to7: PUSH AF
LD A, ROMBANK2 ; Calling bank (ie. us).
PUSH AF
LD A, ROMBANK7 ; Required bank to call.
+ JR BKSW2_0
+BKSW2to8: PUSH AF
+ LD A, ROMBANK2 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK8 ; Required bank to call.
+ JR BKSW2_0
+BKSW2to9: PUSH AF
+ LD A, ROMBANK2 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK9 ; Required bank to call.
+ JR BKSW2_0
+BKSW2to10: PUSH AF
+ LD A, ROMBANK2 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK10 ; Required bank to call.
+ JR BKSW2_0
+BKSW2to11: PUSH AF
+ LD A, ROMBANK2 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK11 ; Required bank to call.
;
BKSW2_0: PUSH HL ; Place function to call on stack
LD HL, BKSWRET2 ; Place bank switchers return address on stack.
@@ -154,21 +174,21 @@ ADD3216: ADD HL,BC
EX DE,HL
RET
- ; Method to add two 32bit numbers whilst calculating the SD Start Sector.
- ; Input: DEHL = 32bit Addend
- ; (SDSTARTSEC) = 32bit Addend
- ; Output: (SDSTARTSEC) = 32bit Sum.
- ; Output; DEHL = 32bit Sum.
- ;
-ADD32: LD BC,(SDSTARTSEC+2)
- ADD HL,BC
- LD (SDSTARTSEC+2),HL
- LD BC,(SDSTARTSEC)
- EX DE,HL
- ADC HL,BC
- LD (SDSTARTSEC),HL
- EX DE,HL
- RET
+; ; Method to add two 32bit numbers whilst calculating the SD Start Sector.
+; ; Input: DEHL = 32bit Addend
+; ; (SDSTARTSEC) = 32bit Addend
+; ; Output: (SDSTARTSEC) = 32bit Sum.
+; ; Output; DEHL = 32bit Sum.
+; ;
+;ADD32: LD BC,(SDSTARTSEC+2)
+; ADD HL,BC
+; LD (SDSTARTSEC+2),HL
+; LD BC,(SDSTARTSEC)
+; EX DE,HL
+; ADC HL,BC
+; LD (SDSTARTSEC),HL
+; EX DE,HL
+; RET
; A function from the z88dk stdlib, a delay loop with T state accuracy.
;
@@ -196,7 +216,6 @@ TDELAYB1: RRA
;RET NC
RET
-
;-------------------------------------------------------------------------------
; START OF SD CONTROLLER FUNCTIONALITY
;-------------------------------------------------------------------------------
@@ -1584,12 +1603,18 @@ SAVESD9: LD DE,MSGSVFAIL ; Fail,
LD A,1 ; Write failed code.
JP SDPRINTRES ; Print out the filename.
+ ; DC helper: restore HL from BC and jump to LOADSD9.
+ ; Called via bank switch from bank 3, BC = dirent pointer.
+LOADSD9BC: LD H,B
+ LD L,C
+ JP LOADSD9
+
;-------------------------------------------------------------------------------
; END OF SD CONTROLLER FUNCTIONALITY
;-------------------------------------------------------------------------------
; RomDisk, top 8 bytes are used by the control registers when enabled so dont use the space.
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
ALIGN 0EFF8h
ORG 0EFF8h
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
diff --git a/asm/rfs_bank3.asm b/asm/rfs_bank3.asm
index 9dd6608..88fe710 100644
--- a/asm/rfs_bank3.asm
+++ b/asm/rfs_bank3.asm
@@ -8,7 +8,7 @@
;- the MZ-80A RFS hardware upgrade.
;-
;- Credits:
-;- Copyright: (c) 2018-2023 Philip Smart
+;- Copyright: (c) 2018-2026 Philip Smart
;-
;- History: July 2019 - Merged 2 utilities to create this compilation.
;- May 2020 - Bank switch changes with release of v2 pcb with coded latch. The coded
@@ -110,6 +110,26 @@ BKSW3to7: PUSH AF
LD A, ROMBANK3 ; Calling bank (ie. us).
PUSH AF
LD A, ROMBANK7 ; Required bank to call.
+ JR BKSW3_0
+BKSW3to8: PUSH AF
+ LD A, ROMBANK3 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK8 ; Required bank to call.
+ JR BKSW3_0
+BKSW3to9: PUSH AF
+ LD A, ROMBANK3 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK9 ; Required bank to call.
+ JR BKSW3_0
+BKSW3to10: PUSH AF
+ LD A, ROMBANK3 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK10 ; Required bank to call.
+ JR BKSW3_0
+BKSW3to11: PUSH AF
+ LD A, ROMBANK3 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK11 ; Required bank to call.
;
BKSW3_0: PUSH HL ; Place function to call on stack
LD HL, BKSWRET3 ; Place bank switchers return address on stack.
@@ -426,6 +446,193 @@ SPHEX: CALL PRNTS ; SPACE
NLPHL: CALL NL
CALL PRTHL
RET
+ ; Text dump of a memory region as ASCII with page pausing.
+ ; Called inter-bank from DUMPSDCARD (bank 2).
+ ; Input: BC = Start address, DE = End address.
+ ;
+DCTEXTX: PUSH BC
+ POP HL ; HL = start.
+ OR A
+ SBC HL,DE
+ ADD HL,DE ; Check HL >= DE (end).
+ JR NC,DCTXT9
+ PUSH DE ; Save end address.
+ EX DE,HL ; DE = start, HL = end (but we need count).
+ OR A
+ SBC HL,DE ; HL = size.
+ LD B,H
+ LD C,L ; BC = byte count.
+ EX DE,HL ; HL = start address.
+ POP DE ; DE = end (not needed, but clean stack).
+ LD A,1
+ LD (TMPCNT),A ; Line counter.
+ ;
+DCTXT1: LD A,B
+ OR C
+ JR Z,DCTXT9 ; Done.
+ LD A,(HL)
+ INC HL
+ DEC BC
+ CP 00DH ; CR?
+ JR NZ,DCTXT3
+ CALL NL
+ LD A,(TMPCNT)
+ INC A
+ LD (TMPCNT),A
+ CP 23
+ JR C,DCTXT1
+ XOR A
+ LD (TMPCNT),A
+ PUSH HL
+ PUSH BC
+DCTXT2: CALL GETKY
+ OR A
+ JR Z,DCTXT2
+ CP 'X'
+ POP BC
+ POP HL
+ JR Z,DCTXT9
+ JR DCTXT1
+ ;
+DCTXT3: CP 00AH ; LF? Skip.
+ JR Z,DCTXT1
+ CP 020H ; Non-printable? Skip.
+ JR C,DCTXT1
+ CP 07FH
+ JR NC,DCTXT1
+ CALL ?ADCN
+ CALL PRNT3
+ JR DCTXT1
+ ;
+DCTXT9: CALL NL
+ RET
+
+ ; DUC helper: find file, read header, force load at 1200H, load data.
+ ; Three separate bank switches to bank 2, with HL preserved via BC.
+ ;
+ ; Input: DE = filename/number string.
+ ; Output: SIZE set (0 = not found/error), data loaded at 1200H.
+ ;
+LOADSDDUMP: ; Step 1: Find file. FINDSDX returns HL = dirent ptr.
+ ; Flags are LOST through bank switch, so we detect failure via SIZE=0.
+ LD HL,FINDSDX
+ CALL BKSW3to2 ; HL = dirent ptr on success.
+ LD B,H ; Save dirent ptr in BC.
+ LD C,L ; BC is preserved through bank switches.
+ ;
+ ; Step 2: Read header. LOADSD9 needs HL = dirent ptr.
+ ; LOADSD9BC in bank 2 does: LD H,B / LD L,C / JP LOADSD9.
+ LD HL,LOADSD9BC
+ CALL BKSW3to2 ; Header -> SIZE, SDSTARTSEC etc.
+ ;
+ ; Check if FINDSDX actually found the file (SIZE != 0).
+ LD A,(SIZE+1)
+ OR A
+ JR NZ,LDSDMP1 ; SIZE > 255, file was found.
+ LD A,(SIZE)
+ OR A
+ JR NZ,LDSDMP1 ; SIZE > 0, file was found.
+ ; Not found. Print message.
+ LD HL,LOADSD3
+ CALL BKSW3to2
+ RET ; SIZE=0, caller detects this.
+ ;
+ ; Step 3: Override load address and load data.
+LDSDMP1: LD HL,01200H
+ LD (SDLOADADDR),HL ; Force load to 1200H (RAM, writeable from any bank).
+ LD HL,LOADSD11
+ CALL BKSW3to2 ; Load file data.
+ RET
+
+ ; Method to dump the contents of an SD Card file as hex+ASCII or plain text.
+ ;
+ ; Usage: DUC[H|T]
+ ; DUC0A - Hex dump file #0A (no header)
+ ; DUCH0A - Hex dump with MZF header info
+ ; DUCT0A - Text dump (printable ASCII)
+ ; DUCTMYFILE - Text dump file named MYFILE
+ ;
+ ; Loads the file into memory at 1200H via LOADSDDUMP, then displays
+ ; using hex DUMP or text DUCTEXTX routines (both in this bank).
+ ; TMPSIZE (RAM) is used for the mode flag since bank ROM is read-only.
+ ;
+ ; Input: DE = Pointer to command-line arguments after "DC".
+ ;
+DUMPSDCARD: XOR A
+ LD (TMPSIZE),A ; Default = 0 (hex, no header). Uses RAM variable.
+ LD A,(DE)
+ CP 'T'
+ JR Z,DUMPSDM1 ; T = text mode.
+ CP 'H'
+ JR NZ,DUMPSD0 ; No flag letter, straight to load.
+ LD A,2 ; H = hex with header.
+ JR DUMPSDM2
+DUMPSDM1: LD A,1 ; T = text mode.
+DUMPSDM2: LD (TMPSIZE),A ; Store mode in RAM.
+ INC DE ; Skip flag letter.
+ ;
+ ; Validate that a file number or filename follows.
+DUMPSD0: LD A,(DE)
+ CP 00DH ; CR = no argument given.
+ RET Z ; Exit silently if no file specified.
+ OR A
+ RET Z ; Also exit on NULL.
+ ;
+ ; Load file into memory at 1200H via LOADSDDUMP.
+ ; HL = function addr, DE = parameter string (filename/number).
+DUMPSD1: XOR A ; Clear SIZE so we can detect load failure.
+ LD (SIZE),A
+ LD (SIZE+1),A
+ CALL LOADSDDUMP ; Load file (prints "Not Found" on fail).
+ LD A,(SIZE+1) ; Check if anything was loaded.
+ OR A
+ JR NZ,DUMPSD1A ; SIZE > 255, definitely loaded.
+ LD A,(SIZE)
+ OR A
+ RET Z ; SIZE = 0, nothing loaded (not found or error).
+ ;
+ ; File loaded at 1200H. Clamp size to BD00H (CF00-1200) for display.
+DUMPSD1A: LD HL,(SIZE)
+ LD DE,0BD00H
+ OR A
+ SBC HL,DE
+ JR C,DUMPSD1B ; Fits.
+ LD HL,0BD00H
+ LD (SIZE),HL
+ ;
+ ; Print MZF header info if H flag was given.
+DUMPSD1B: LD A,(TMPSIZE) ; Read mode from RAM.
+ CP 2
+ JR NZ,DUMPSD2 ; No header requested.
+ ;
+ ; Print: "filename" CR Load:XXXX, Exec:YYYY, Size:ZZZZ CR
+ ; 0xFF=stack[0]=Load, 0xFE=stack[1]=Exec, 0xFD=stack[2]=Size
+ ; 0xFA=filename from BC
+ LD DE,MSGDCHEAD
+ LD HL,(DTADRSTORE) ; Original MZF load address.
+ PUSH HL ; Stack param 1 (0xFF).
+ LD HL,(EXADR)
+ PUSH HL ; Stack param 2 (0xFE).
+ LD HL,(SIZE)
+ PUSH HL ; Stack param 3 (0xFD).
+ LD BC,NAME ; Filename pointer for 0xFA marker.
+ LD HL,PRINTMSG
+ CALL BKSW3to6
+ POP HL ; Clean 3 stack parameters.
+ POP HL
+ POP HL
+ ;
+ ; Display file contents. BC = start addr, DE = end addr.
+DUMPSD2: LD BC,01200H ; Data always at 1200H.
+ LD HL,01200H
+ LD DE,(SIZE)
+ ADD HL,DE
+ EX DE,HL ; DE = end address.
+ LD A,(TMPSIZE) ; Read mode from RAM.
+ CP 1
+ JP Z,DCTEXTX ; Text mode.
+ JP DUMPBC ; Hex dump mode (with or without header).
+
;-------------------------------------------------------------------------------
; END OF MEMORY CMDLINE TOOLS FUNCTIONALITY
;-------------------------------------------------------------------------------
@@ -533,6 +740,116 @@ SLPT: DB 01H ; TEXT
; END OF PRINTER CMDLINE TOOLS FUNCTIONALITY
;-------------------------------------------------------------------------------
+ ;-------------------------------------------------------------------------------
+ ; START OF I/O PORT CMDLINE TOOLS
+ ;-------------------------------------------------------------------------------
+
+ ;******************************************************************
+ ; TRYHEX
+ ; Convert ASCII hex char in A to nibble value 0-15.
+ ; Returns: carry set = valid hex, A = value (0-15).
+ ; carry clear = not a hex digit, A unchanged.
+ ;******************************************************************
+TRYHEX: CP '0'
+ JR C,TRYHEX_NO
+ CP '9'+1
+ JR C,TRYHEX_DIG
+ CP 'A'
+ JR C,TRYHEX_NO
+ CP 'F'+1
+ JR C,TRYHEX_AF
+TRYHEX_NO: OR A ; Clear carry = not hex.
+ RET
+TRYHEX_DIG: SUB '0'
+ SCF ; Set carry = valid hex.
+ RET
+TRYHEX_AF: SUB 'A'-10
+ SCF
+ RET
+
+ ;******************************************************************
+ ; PARSEHEX
+ ; Parse 2 or 4 hex digits from (DE) into HL.
+ ; Returns: carry clear = success, HL = value, DE past digits.
+ ; carry set = error (not 2 or 4 hex digits).
+ ;******************************************************************
+PARSEHEX: LD HL,0
+ LD B,0 ; Digit count.
+PARSEHX_LP: LD A,(DE)
+ CALL TRYHEX
+ JR NC,PARSEHX_DN ; Not hex = done reading digits.
+ ADD HL,HL ; HL <<= 4
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ OR L ; Add new nibble.
+ LD L,A
+ INC DE
+ INC B
+ JR PARSEHX_LP
+PARSEHX_DN: LD A,B
+ CP 2
+ JR Z,PARSEHX_OK
+ CP 4
+ JR Z,PARSEHX_OK
+ SCF ; Error: not 2 or 4 digits.
+ RET
+PARSEHX_OK: OR A ; Clear carry = success.
+ RET
+
+ ;******************************************************************
+ ; INX I/O Port Input Command
+ ; Syntax: IN[,...]
+ ; Port = 2 or 4 hex digit I/O port address.
+ ; Reads each port via IN A,(C) and prints the value.
+ ;******************************************************************
+INX: CALL NL
+INX_LP: CALL PARSEHEX ; HL = port number.
+ RET C ; Bad input, exit.
+ LD B,H ; BC = 16-bit port.
+ LD C,L
+ IN A,(C) ; Read from port.
+ CALL PRTHX ; Print value as 2-digit hex.
+ LD A,(DE) ; Check for comma separator.
+ CP ','
+ JR NZ,INX_END
+ CALL PRNTS ; Space between values.
+ INC DE ; Skip comma.
+ JR INX_LP
+INX_END: CALL NL
+ RET
+
+ ;******************************************************************
+ ; OUTX I/O Port Output Command
+ ; Syntax: OUT:[,:...]
+ ; Port = 2 or 4 hex digit I/O port address.
+ ; Value = 2 hex digit byte value.
+ ; Writes each value to the corresponding port via OUT (C),A.
+ ;******************************************************************
+OUTX: CALL NL
+OUTX_LP: CALL PARSEHEX ; HL = port number.
+ RET C ; Bad input, exit.
+ LD B,H ; BC = 16-bit port.
+ LD C,L
+ LD A,(DE) ; Expect colon separator.
+ CP ':'
+ RET NZ ; No colon, exit.
+ INC DE ; Skip colon.
+ CALL _2HEX ; A = 2-digit hex value (DE auto-advanced).
+ RET C ; Bad value, exit.
+ OUT (C),A ; Write to port.
+ LD A,(DE) ; Check for comma separator.
+ CP ','
+ JR NZ,OUTX_END
+ INC DE ; Skip comma.
+ JR OUTX_LP
+OUTX_END: CALL NL
+ RET
+
+ ;-------------------------------------------------------------------------------
+ ; END OF I/O PORT CMDLINE TOOLS
+ ;-------------------------------------------------------------------------------
+
;--------------------------------------
;
; Message table - Refer to bank 6 for
@@ -541,7 +858,7 @@ SLPT: DB 01H ; TEXT
;--------------------------------------
; RomDisk, top 8 bytes are used by the control registers when enabled so dont use the space.
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
ALIGN 0EFF8h
ORG 0EFF8h
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
diff --git a/asm/rfs_bank4.asm b/asm/rfs_bank4.asm
index a314a61..6e787df 100644
--- a/asm/rfs_bank4.asm
+++ b/asm/rfs_bank4.asm
@@ -8,7 +8,7 @@
;- the MZ-80A RFS hardware upgrade.
;-
;- Credits:
-;- Copyright: (c) 2018-2023 Philip Smart
+;- Copyright: (c) 2018-2026 Philip Smart
;-
;- History: July 2019 - Merged 2 utilities to create this compilation.
;- May 2020 - Bank switch changes with release of v2 pcb with coded latch. The coded
@@ -105,6 +105,26 @@ BKSW4to7: PUSH AF
LD A, ROMBANK4 ; Calling bank (ie. us).
PUSH AF
LD A, ROMBANK7 ; Required bank to call.
+ JR BKSW4_0
+BKSW4to8: PUSH AF
+ LD A, ROMBANK4 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK8 ; Required bank to call.
+ JR BKSW4_0
+BKSW4to9: PUSH AF
+ LD A, ROMBANK4 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK9 ; Required bank to call.
+ JR BKSW4_0
+BKSW4to10: PUSH AF
+ LD A, ROMBANK4 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK10 ; Required bank to call.
+ JR BKSW4_0
+BKSW4to11: PUSH AF
+ LD A, ROMBANK4 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK11 ; Required bank to call.
;
BKSW4_0: PUSH HL ; Place function to call on stack
LD HL, BKSWRET4 ; Place bank switchers return address on stack.
@@ -117,6 +137,7 @@ BKSWRET4: POP AF ; G
POP AF
RET
+
;-------------------------------------------------------------------------------
; START OF CMT CONTROLLER FUNCTIONALITY
;-------------------------------------------------------------------------------
@@ -215,7 +236,7 @@ CMTWRI: ;DI
LD HL,IBUFE
LD BC,00080H
CALL CKSUM
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
CALL MOTOR80A
ENDIF
IF BUILD_SFD700 = 1
@@ -241,7 +262,7 @@ CMTWRI0: JR C,CMTWRI2
POP DE
POP HL
CMTWRI1: CALL GAP
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
CALL WTAPE80A
ENDIF
IF BUILD_SFD700 = 1
@@ -709,6 +730,680 @@ MSG_TIMERVAL2:
MSG_TIMERVAL3:
DB "READ DONE.", 0Dh, 00h
+ IF BUILD_PICOZ80 = 1
+ ;-------------------------------------------------------------------------------
+ ; QD BOOT / QL LIST - Quick Disk boot and directory listing (picoZ80 only).
+ ;
+ ; QD - Load & execute first file from QD drive via SIO ports F4-F7H.
+ ; QL - List directory of QD disk.
+ ;
+ ; Works with both PHYSICAL QD drives (MZ-1E14) and VIRTUAL QD drives
+ ; (picoZ80 QDDrive.c emulator) since both use the same Z80 SIO/2 protocol.
+ ;
+ ; Based on disassembly of the MZ-1E14 QD Interface ROM.
+ ; SIO port mapping: F4=ChA Data, F6=ChA Ctrl, F7=ChB Ctrl
+ ; Protocol: SIO sync mode with sync chars 16H 16H, address mark A5H,
+ ; block type + size(2) + data + CRC(3 trailing bytes).
+ ; Block type 00=header (64-byte MZF header), 01/05=data.
+ ;-------------------------------------------------------------------------------
+
+ ;---------------------------------------------------------------
+ ; QD command entry: boot first file from QD.
+ ;---------------------------------------------------------------
+QDBOOT: XOR A ; 0 = boot (auto-execute)
+ JR QDGO
+
+ ;---------------------------------------------------------------
+ ; QL command entry: list QD directory.
+ ;---------------------------------------------------------------
+QDLIST: LD A,001H ; 1 = list directory
+
+QDGO: LD (RESULT),A ; Store mode: 0=boot, 1=list
+
+ ; --- Initialize SIO and start QD motor ---
+ CALL QDINIT_STATE ; Zero out QD work area
+ CALL QDSTART_MOTOR ; SIO init + motor on + wait DCD
+
+ LD A,(RESULT)
+ OR A
+ JP NZ,QDGO_LIST ; Mode 1 = directory list
+
+ ; --- QD BOOT: Read first header, then first data block ---
+ CALL QDREAD_HDR ; Read first header block into MZF area
+ JP C,QDERR_EXIT ; Error reading header
+
+ ; Print "Loading "
+ LD DE,MSGLOAD+1 ; Skip leading CR
+ LD BC,NAME
+ LD HL,PRINTMSG
+ CALL BKSW4to6
+
+ ; Read the data block.
+ ; QD header field convention (differs from CMT):
+ ; DTADR = data size limit, EXADR = load address.
+ ; If EXADR=0 and COMNT=0, relocate: load to 1200H, copy to 0000H after.
+ LD HL,(EXADR)
+ LD A,H
+ OR L
+ JR NZ,QDBOOT1 ; EXADR non-zero, use as load addr
+ LD HL,(COMNT)
+ LD A,H
+ OR L
+ JR NZ,QDBOOT1A ; COMNT non-zero, load to EXADR (=0)
+ ; Both zero: load to 1200H, will relocate to 0000H after
+ LD A,0FFH
+ LD (QDRELOC),A
+ LD HL,01200H
+ JR QDBOOT1
+QDBOOT1A: LD HL,(EXADR) ; Re-read EXADR (matches MZ-1E14 ROM)
+QDBOOT1: LD (QDLOADADDR),HL
+ LD HL,(DTADR)
+ LD (QDBLKSIZE),HL ; Max bytes to read (QD: DTADR=size)
+
+ ; Read data block using QD SVC (mode 3, sub-mode 1 = data block)
+ LD HL,00003H
+ LD (QDCMD),HL ; QDCMD=3 (read block), QDSUBCMD=0 (low byte)
+ LD A,001H
+ LD (QDSUBCMD),A ; Sub-mode 1 = data block (bit 0 = 1)
+ CALL QDSVC_MAIN ; Read data block with retry
+ JP C,QDERR_EXIT ; Error reading data
+
+ ; Motor off
+ CALL QDMOTOR_OFF
+
+ ; Display loaded file info (QD: DTADR=size, EXADR=load addr)
+ LD DE,MSGCMTDATA
+ LD HL,(QDLOADADDR)
+ PUSH HL ; Load address for 0FEH
+ PUSH HL ; Exec address for 0FFH (same for QD)
+ LD BC,(DTADR) ; Size for 0FBH (QD: DTADR=size)
+ LD HL,PRINTMSG
+ CALL BKSW4to6
+ POP BC
+ POP BC
+
+ ; Check if OBJ type for auto-execution
+ LD A,(ATRB)
+ CP OBJCD
+ RET NZ ; Not OBJ, just return
+
+ ; Check relocation flag
+ LD A,(QDRELOC)
+ CP 0FFH
+ JR Z,QDBOOT_RELOC
+
+ ; Execute from load address (EXADR in QD convention)
+ LD BC,00300H ; B=3 → $QD default device + auto-run
+ LD HL,(QDLOADADDR)
+ JP (HL)
+
+QDBOOT_RELOC:
+ ; Relocate from 1200H to 0000H and execute
+ OUT (MMIO0),A ; Page out ROM at E800H
+ LD HL,01200H
+ LD DE,00000H
+ LD BC,(DTADR) ; QD: DTADR = data size
+ LDIR
+ LD BC,00300H ; B=3 → $QD default device + auto-run
+ JP 00000H
+
+ ; --- QD DIRECTORY LIST ---
+QDGO_LIST: CALL QDREAD_DIR ; Read all headers, display directory
+ ; Motor off (already done inside QDREAD_DIR on error/completion)
+
+QDERR_EXIT: ; Common error/return handler — motor off
+ PUSH AF ; Save error code
+ CALL QDMOTOR_OFF
+ POP AF
+ RET NC ; No error, just return
+
+ ; Display error message based on error code in A
+ LD DE,MSGQDERR ; Default: "QD: Read error"
+ CP 028H
+ JR Z,QDERR_SHOW ; End of tape (file not found)
+ CP 032H
+ JR NZ,QDERR_SHOW2
+ LD DE,MSGQDERR ; Not ready
+ JR QDERR_SHOW
+QDERR_SHOW2:
+ CP 036H
+ JR NZ,QDERR_SHOW
+ LD DE,MSGQDFMT ; Unformat / bad format
+QDERR_SHOW: LD HL,PRINTMSG
+ CALL BKSW4to6
+ RET
+
+ ;---------------------------------------------------------------
+ ; QDINIT_STATE: Initialize QD work area variables to zero.
+ ;---------------------------------------------------------------
+QDINIT_STATE:
+ XOR A
+ LD (QDMOTOR),A
+ LD (QDWORK1),A
+ LD (QDWORK2),A
+ LD (QDADDRMARK),A
+ LD (QDEXPMARK),A
+ LD (QDRELOC),A
+ RET
+
+ ;---------------------------------------------------------------
+ ; QDSTART_MOTOR: Initialize SIO, turn motor on, wait for DCD.
+ ; Combines QDSIO_INIT + QDINIT_FULL from MZ-1E14 ROM.
+ ; Returns: CF=1 on error (not ready).
+ ;---------------------------------------------------------------
+QDSTART_MOTOR:
+ ; Write SIO init table to Channel A control (OTIR)
+ LD HL,QDSIO_INITTBL
+ LD B,011 ; 11 bytes in init table
+ LD C,SIOA_CTRL
+ OTIR ; Output init table to ChA ctrl
+
+ ; Motor on: ChB WR5 = 80H (RTS = motor on)
+ LD A,005H
+ LD (QDMOTOR),A ; Motor status = on
+ OUT (SIOB_CTRL),A ; ChB: register pointer = WR5
+ LD A,080H
+ OUT (SIOB_CTRL),A ; ChB WR5 = 80H (motor on)
+
+ ; Wait for DCD on Channel A
+QDSM_WDCD: LD A,010H
+ OUT (SIOA_CTRL),A ; ChA: reset ext/status
+ IN A,(SIOA_CTRL) ; Read ChA RR0
+ AND 008H ; DCD? (bit 3)
+ JR NZ,QDSM_HAVEDCD
+ ; Check break key
+ CALL BRKEY
+ JR NZ,QDSM_WDCD ; Keep waiting unless break
+ ; Break pressed or no DCD
+ SCF
+ RET
+
+QDSM_HAVEDCD:
+ ; Wait for sync detection on Channel B (tape motion detected)
+ LD A,010H
+ OUT (SIOB_CTRL),A ; ChB: reset ext/status
+ IN A,(SIOB_CTRL) ; Read ChB RR0
+ AND 008H ; DCD on ChB?
+ JR Z,QDSM_WDCD ; Not yet, keep waiting
+
+ ; Short delay for tape to stabilize
+ LD BC,000E9H
+ CALL QDDELAY
+
+ ; Count total blocks on disk by reading FNBLK
+ CALL QDHUNT_SYNC ; Enter hunt, wait sync, read type
+ ; A = block type from FNBLK (should be the block count encoded)
+ ; Actually the FNBLK has: sync + A5 + + CRC
+ ; After hunt, first byte read is the address mark (A5 consumed by hunt)
+ ; then block type (= block count).
+ ; For FNBLK the 'type' byte IS the total block count.
+ LD (QDTOTBLKS),A
+ INC A
+ LD (QDREMBLKS),A
+ ; Read trailing CRC bytes
+ CALL QDREAD_TRAILING
+ ; Set first-read flag
+ LD HL,QDFLAGS
+ SET 3,(HL)
+ XOR A
+ LD (QDEXPMARK),A ; Reset expected address mark
+ OR A ; Clear carry = success
+ RET
+
+ ;---------------------------------------------------------------
+ ; QDREAD_HDR: Read first header block from QD into MZF header area.
+ ; Populates: ATRB, NAME, SIZE, DTADR, EXADR from the 64-byte header.
+ ; Returns: CF=1 on error.
+ ;---------------------------------------------------------------
+QDREAD_HDR:
+ LD HL,00003H
+ LD (QDCMD),HL ; Mode 3 = read block
+ XOR A
+ LD (QDSUBCMD),A ; Sub-mode 0 = header block (bit 0 = 0)
+ LD HL,ATRB ; Load address = MZF header area
+ LD (QDLOADADDR),HL
+ LD HL,00040H ; Max 64 bytes (MZF header)
+ LD (QDBLKSIZE),HL
+ JP QDSVC_MAIN ; Read with retry, returns CF
+
+ ;---------------------------------------------------------------
+ ; QDREAD_DIR: Read all header blocks and display directory.
+ ; Returns: CF=1 on error.
+ ;---------------------------------------------------------------
+QDREAD_DIR:
+ ; Read headers into directory buffer at QDIRBUF (18 bytes per entry)
+ LD B,000H ; File counter
+ LD HL,QDIRBUF ; Directory buffer start
+
+QDRD_LOOP: LD (QDLOADADDR),HL
+ PUSH HL
+ PUSH BC
+ LD HL,00003H
+ LD (QDCMD),HL ; Mode 3 = read block
+ XOR A
+ LD (QDSUBCMD),A ; Header block
+ LD HL,00040H
+ LD (QDBLKSIZE),HL ; 64 bytes max
+ CALL QDSVC_MAIN ; Read header
+ POP BC
+ POP HL
+ JR C,QDRD_DONE ; Error or end of tape (28H)
+
+ INC B ; Count this file
+ LD DE,00012H ; Next entry offset (18 bytes)
+ ADD HL,DE
+ JR QDRD_LOOP
+
+QDRD_DONE: ; Motor off
+ PUSH BC
+ CALL QDMOTOR_OFF
+ POP BC
+
+ ; Check if we found any files
+ XOR A
+ CP B
+ JR NC,QDRD_EMPTY ; No files found
+
+ ; Display directory listing
+ CALL NL
+ LD HL,QDIRBUF
+QDRD_SHOW: ; Print filename from header at (HL)+1 (offset 1 = NAME in MZF header)
+ PUSH HL
+ PUSH BC
+ INC HL ; Point to NAME field
+ EX DE,HL
+ ; Print the filename (17 chars max)
+ LD B,FNSIZE
+QDRD_PNAME: LD A,(DE)
+ OR A
+ JR Z,QDRD_PEND
+ CP CR
+ JR Z,QDRD_PEND
+ CALL PRNT ; Print one character
+ INC DE
+ DJNZ QDRD_PNAME
+QDRD_PEND: CALL NL ; Newline after each entry
+ POP BC
+ POP HL
+ ; Advance to next entry
+ LD DE,00012H
+ ADD HL,DE
+ DJNZ QDRD_SHOW
+
+ OR A ; Clear carry = success
+ RET
+
+QDRD_EMPTY: ; No files on disk
+ OR A
+ RET
+
+ ;---------------------------------------------------------------
+ ; QDSVC_MAIN: QD block read service with retry (5 retries).
+ ; Uses QDCMD/QDSUBCMD/QDLOADADDR/QDBLKSIZE.
+ ; Returns: CF=1 on error, A=error code.
+ ;---------------------------------------------------------------
+QDSVC_MAIN: LD A,005H ; 5 retries
+ LD (QDRETRY),A
+QDSVC_RETRY:
+ DI
+ CALL QDREAD_DISPATCH ; Attempt read
+ EI
+ RET NC ; Success
+ PUSH AF
+ CP 028H ; End of tape?
+ JR Z,QDSVC_RET ; Yes — not retryable
+ CALL QDMOTOR_OFF
+ POP AF
+ PUSH AF
+ CP 029H ; CRC/overrun error?
+ JR NZ,QDSVC_RET ; No — not retryable
+ ; Retry on error 29H
+ LD HL,QDRETRY
+ DEC (HL)
+ JR Z,QDSVC_EXHAUST
+ POP AF
+ ; Re-init for retry
+ CALL QDSTART_MOTOR
+ JR NC,QDSVC_RETRY
+ ; Motor start failed on retry — return error
+ SCF
+ RET
+QDSVC_EXHAUST:
+ XOR A
+ LD (QDADDRMARK),A ; Reset address mark counter
+QDSVC_RET: POP AF
+ RET
+
+ ;---------------------------------------------------------------
+ ; QDREAD_DISPATCH: Read dispatcher based on QDCMD.
+ ; Mode 3 = read block.
+ ; Returns: CF=1 on error, A=error code.
+ ;---------------------------------------------------------------
+QDREAD_DISPATCH:
+ LD (QDSAVESP),SP ; Save SP for error recovery
+ LD A,(QDCMD)
+ CP 003H
+ JR Z,QDREAD_BLOCK
+ ; Other modes not needed for RFS QD/QL
+ RET
+
+ ;---------------------------------------------------------------
+ ; QDREAD_BLOCK: Read one block from QD.
+ ; Expects QDSUBCMD bit 0: 0=header, 1=data.
+ ; Expects QDLOADADDR, QDBLKSIZE set.
+ ; Returns: CF=1 on error.
+ ;---------------------------------------------------------------
+QDREAD_BLOCK:
+ ; Ensure motor is on
+ LD A,(QDMOTOR)
+ OR A
+ CALL Z,QDSTART_MOTOR
+ RET C
+
+ ; Find matching block
+ CALL QDREAD_FINDBLK
+ RET C ; Error finding block
+
+ ; Read block size (2 bytes: lo, hi)
+ CALL QDREAD_BYTE
+ LD C,A ; Size low
+ CALL QDREAD_BYTE
+ LD B,A ; Size high
+
+ ; Check block fits in buffer
+ LD HL,(QDBLKSIZE)
+ SBC HL,BC
+ JP C,QDERR_29_ENTRY ; Too big
+
+ ; Read data bytes into QDLOADADDR
+ LD HL,(QDLOADADDR)
+QDRD_DATA: CALL QDREAD_BYTE
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,QDRD_DATA
+
+ ; Read trailing CRC bytes
+ CALL QDREAD_TRAILING
+
+ ; If data block (odd sub-mode), we're done
+ LD A,(QDSUBCMD)
+ BIT 0,A
+ JR NZ,QDRD_DONE2
+ ; Header block — keep motor running for next read
+ OR A ; Clear carry
+ RET
+QDRD_DONE2: OR A ; Clear carry
+ RET
+
+ ;---------------------------------------------------------------
+ ; QDREAD_FINDBLK: Scan blocks to find matching type.
+ ; QDSUBCMD bit 0 determines: 0=header, 1=data.
+ ; Returns: CF=1 on error (28H=end of tape).
+ ;---------------------------------------------------------------
+QDREAD_FINDBLK:
+ LD HL,QDREMBLKS
+ DEC (HL)
+ JR Z,QDRD_END ; No more blocks
+
+ ; Enter hunt mode, sync, read block type
+ CALL QDHUNT_SYNC
+ LD C,A ; Save block type
+
+ ; Check address mark sequence
+ LD A,(QDADDRMARK)
+ LD HL,QDEXPMARK
+ CP (HL)
+ JR NZ,QDRD_SKIP ; Not expected mark, skip
+
+ INC A
+ LD (QDADDRMARK),A ; Increment address mark
+ LD (HL),A
+
+ ; Check if block type matches what we want
+ LD A,(QDSUBCMD)
+ XOR C ; Compare type bits
+ RRA ; Bit 0 to carry
+ RET NC ; Match found! (same parity)
+
+ ; Wrong block type — skip its data
+QDRD_SKIPDATA:
+ CALL QDREAD_BYTE ; Size low
+ LD C,A
+ CALL QDREAD_BYTE ; Size high
+ LD B,A
+QDRD_SKIPLOOP:
+ CALL QDREAD_BYTE ; Discard data byte
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,QDRD_SKIPLOOP
+ CALL QDREAD_TRAILING ; Read CRC
+ JR QDREAD_FINDBLK ; Try next block
+
+QDRD_SKIP: INC (HL) ; Adjust expected mark
+ JR QDRD_SKIPDATA ; Skip this block
+
+QDRD_END: LD A,028H ; Error: end of tape
+ SCF
+ RET
+
+ ;---------------------------------------------------------------
+ ; QDHUNT_SYNC: Enter hunt mode, wait for sync, read block type.
+ ; Returns: A = block type byte.
+ ; On error: jumps to QDERR_xx via QDSAVESP.
+ ;---------------------------------------------------------------
+QDHUNT_SYNC:
+ ; Re-init SIO for hunt (same as EF18 in MZ-1E14)
+ LD A,058H ; WR0: Channel reset + reset IUS
+ LD B,011 ; 11 bytes
+ LD HL,QDSIO_INITTBL
+ ; Write register + OTIR: OUT (C),A then OTIR
+ LD C,SIOA_CTRL
+ OUT (C),A ; Write WR0 command
+ ; Motor on via ChB
+ LD A,005H
+ OUT (SIOB_CTRL),A ; ChB: register pointer = WR5
+ LD A,080H
+ OUT (SIOB_CTRL),A ; ChB WR5 = 80H (motor on)
+ OTIR ; Output init table to ChA ctrl
+
+ ; Delay: longer on first read, shorter on subsequent
+ LD HL,QDFLAGS
+ BIT 3,(HL)
+ LD BC,00003H ; Short delay
+ JR Z,QDHS_DLY
+ RES 3,(HL) ; Clear first-read flag
+ LD BC,000A0H ; Long delay
+QDHS_DLY: CALL QDDELAY
+
+ ; Set up hunt mode on Channel A
+ LD A,005H
+ OUT (SIOB_CTRL),A ; ChB: WR5
+ LD A,082H
+ OUT (SIOB_CTRL),A ; ChB WR5 = 82H (RTS + hunt enable?)
+
+ LD A,003H
+ OUT (SIOA_CTRL),A ; ChA: register = WR3
+ LD A,0D3H ; Rx enable, hunt, auto enables, 8-bit
+ OUT (SIOA_CTRL),A ; ChA WR3 = D3H (hunt mode ON)
+
+ ; Wait for sync detected (RR0 bit 4 = 0 means sync found)
+ LD BC,02CC0H ; Timeout count
+QDHS_WSYNC: LD A,010H
+ OUT (SIOA_CTRL),A ; ChA: reset ext/status
+ IN A,(SIOA_CTRL) ; Read ChA RR0
+ AND 010H ; Sync/hunt bit (bit 4)
+ JR Z,QDHS_FOUND ; Sync found! (bit cleared)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,QDHS_WSYNC
+ JP QDERR_36_ENTRY ; Timeout: unformat error
+
+QDHS_FOUND: ; Sync detected — clear hunt mode
+ LD A,003H
+ OUT (SIOA_CTRL),A ; ChA: WR3
+ LD A,0C3H ; Rx enable, NO hunt, auto enables, 8-bit
+ OUT (SIOA_CTRL),A ; ChA WR3 = C3H
+
+ ; Wait for first Rx char available
+ LD B,09FH ; Timeout
+QDHS_WRX: LD A,010H
+ OUT (SIOA_CTRL),A ; Reset ext/status
+ IN A,(SIOA_CTRL) ; RR0
+ AND 001H ; Rx char available?
+ JR NZ,QDHS_READY
+ DEC B
+ JR NZ,QDHS_WRX
+ JP QDERR_36_ENTRY ; Timeout
+
+QDHS_READY: ; Set address mark check mode
+ LD A,003H
+ OUT (SIOA_CTRL),A ; ChA: WR3
+ LD A,0C9H ; Rx enable, addr mark check, 8-bit
+ OUT (SIOA_CTRL),A
+
+ ; Read and discard address mark byte (A5H)
+ CALL QDREAD_BYTE
+ ; Read block type byte
+ JP QDREAD_BYTE ; Returns A = block type
+
+ ;---------------------------------------------------------------
+ ; QDREAD_BYTE: Read one byte from QD via SIO Channel A.
+ ; Returns: A = data byte read from port F4H.
+ ; On error: jumps to QDERR_xx via QDSAVESP.
+ ;---------------------------------------------------------------
+QDREAD_BYTE:
+ PUSH BC
+ LD BC,08000H ; Timeout: ~32768 iterations
+QDRD_BPOLL: LD A,010H
+ OUT (SIOA_CTRL),A ; Reset ext/status
+ IN A,(SIOA_CTRL) ; Read RR0
+ AND 008H ; DCD? (bit 3)
+ JR Z,QDRD_BDCD ; No DCD: not ready
+
+ IN A,(SIOA_CTRL) ; Read RR0 again
+ RLCA ; Bit 7 (break/abort) to carry
+ JR C,QDRD_BBRK ; Break detected
+
+ RRCA ; Restore
+ RRCA ; Bit 0 → carry (Rx available)
+ JR C,QDRD_BOK ; Data ready!
+
+ DEC BC ; Timeout counter
+ LD A,B
+ OR C
+ JR NZ,QDRD_BPOLL ; Keep polling
+ ; Timeout — treat as end-of-tape
+ POP BC
+ JP QDERR_28_ENTRY ; Error 28H: end of tape
+QDRD_BDCD: POP BC
+ JP QDERR_32_ENTRY ; Error 32H: no DCD
+QDRD_BBRK: POP BC
+ JP QDERR_29_ENTRY ; Error 29H: break/CRC
+QDRD_BOK: POP BC
+ IN A,(SIOA_DATA) ; Read data byte from F4H
+ OR A ; Set flags (clear carry)
+ RET
+
+ ;---------------------------------------------------------------
+ ; QDREAD_TRAILING: Read 3 trailing bytes (CRC), check for overrun.
+ ; Returns: CF=1 on overrun error.
+ ;---------------------------------------------------------------
+QDREAD_TRAILING:
+ LD B,003H
+QDRT_LOOP: CALL QDREAD_BYTE
+ DJNZ QDRT_LOOP
+
+ ; Wait for Rx char to appear (checking for buffer clear)
+QDRT_WAIT: IN A,(SIOA_CTRL)
+ RRCA ; Bit 0 (Rx avail) to carry
+ JR NC,QDRT_WAIT
+
+ ; Check for Rx overrun in RR1
+ LD A,001H
+ OUT (SIOA_CTRL),A ; Register pointer = RR1
+ IN A,(SIOA_CTRL) ; Read RR1
+ AND 040H ; Rx overrun? (bit 6)
+ JR NZ,QDERR_29_ENTRY ; Overrun error
+ OR A ; Clear carry
+ RET
+
+ ;---------------------------------------------------------------
+ ; QDMOTOR_OFF: Turn off QD motor via SIO.
+ ;---------------------------------------------------------------
+QDMOTOR_OFF:
+ PUSH AF
+ ; Channel A WR5: RTS off
+ LD A,005H
+ OUT (SIOA_CTRL),A ; ChA: register = WR5
+ LD A,060H
+ OUT (SIOA_CTRL),A ; ChA WR5 = 60H (DTR on, RTS off)
+ ; Channel B WR5: motor off
+ LD A,005H
+ OUT (SIOB_CTRL),A ; ChB: register = WR5
+ XOR A
+ LD (QDMOTOR),A ; Motor status = off
+ OUT (SIOB_CTRL),A ; ChB WR5 = 00H
+ POP AF
+ RET
+
+ ;---------------------------------------------------------------
+ ; QDDELAY: Delay loop. BC = outer count, inner = 86H iterations.
+ ;---------------------------------------------------------------
+QDDELAY: PUSH AF
+QDDELAY_O: LD A,086H
+QDDELAY_I: DEC A
+ JR NZ,QDDELAY_I
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,QDDELAY_O
+ POP AF
+ RET
+
+ ;---------------------------------------------------------------
+ ; Error entry points: restore SP and return with carry set.
+ ; These are jumped to from deep in the read routines.
+ ;---------------------------------------------------------------
+QDERR_28_ENTRY: ; End of tape / read timeout
+ LD A,028H
+ JR QDERR_RETURN
+QDERR_29_ENTRY: ; CRC/overrun/break error
+ LD A,029H
+ JR QDERR_RETURN
+QDERR_32_ENTRY: ; Not ready (no DCD)
+ LD A,032H
+ JR QDERR_RETURN
+QDERR_36_ENTRY: ; Unformat (sync timeout)
+ LD A,036H
+QDERR_RETURN:
+ LD SP,(QDSAVESP) ; Restore SP
+ SCF ; Set carry = error
+ RET
+
+ ;---------------------------------------------------------------
+ ; SIO init table: 11 bytes written to Channel A control port.
+ ; Configures: channel reset, x1 clock sync mode, sync chars 16H.
+ ;---------------------------------------------------------------
+QDSIO_INITTBL:
+ DB 058H ; WR0: Channel reset + reset IUS
+ DB 004H ; WR0: register pointer = WR4
+ DB 010H ; WR4: x1 clock, 8-bit sync mode
+ DB 005H ; WR0: register pointer = WR5
+ DB 004H ; WR5: CRC-16
+ DB 003H ; WR0: register pointer = WR3
+ DB 0D0H ; WR3: Rx 8-bit, hunt mode, auto enables
+ DB 006H ; WR0: register pointer = WR6
+ DB 016H ; WR6: sync char 1 = 16H
+ DB 007H ; WR0: register pointer = WR7
+ DB 016H ; WR7: sync char 2 = 16H
+
+ ENDIF
+
;--------------------------------------
;
; Message table - Refer to bank 6 for
@@ -717,7 +1412,7 @@ MSG_TIMERVAL3:
;--------------------------------------
; RomDisk, top 8 bytes are used by the control registers when enabled so dont use the space.
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
ALIGN 0EFF8h
ORG 0EFF8h
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
diff --git a/asm/rfs_bank5.asm b/asm/rfs_bank5.asm
index b516ccb..c3c18b0 100644
--- a/asm/rfs_bank5.asm
+++ b/asm/rfs_bank5.asm
@@ -8,7 +8,7 @@
;- the MZ-80A RFS hardware upgrade.
;-
;- Credits:
-;- Copyright: (c) 2018-2023 Philip Smart
+;- Copyright: (c) 2018-2026 Philip Smart
;-
;- History: July 2019 - Merged 2 utilities to create this compilation.
;- May 2020 - Bank switch changes with release of v2 pcb with coded latch. The coded
@@ -106,6 +106,26 @@ BKSW5to7: PUSH AF
LD A, ROMBANK5 ; Calling bank (ie. us).
PUSH AF
LD A, ROMBANK7 ; Required bank to call.
+ JR BKSW5_0
+BKSW5to8: PUSH AF
+ LD A, ROMBANK5 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK8 ; Required bank to call.
+ JR BKSW5_0
+BKSW5to9: PUSH AF
+ LD A, ROMBANK5 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK9 ; Required bank to call.
+ JR BKSW5_0
+BKSW5to10: PUSH AF
+ LD A, ROMBANK5 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK10 ; Required bank to call.
+ JR BKSW5_0
+BKSW5to11: PUSH AF
+ LD A, ROMBANK5 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK11 ; Required bank to call.
;
BKSW5_0: PUSH HL ; Place function to call on stack
LD HL, BKSWRET5 ; Place bank switchers return address on stack.
@@ -118,7 +138,6 @@ BKSWRET5: POP AF ; G
POP AF
RET
-
; Method to convert a string with Sharp ASCII codes into standard ASCII codes via map lookup.
; Inputs: DE = pointer to string for conversion.
; B = Maximum number of characters to convert if string not terminated.
@@ -202,7 +221,7 @@ SHARPTOASC: DB 000H, 020H, 020H, 020H, 020H, 020H, 020H, 020H, 020H
DB 020H, 020H, 020H, 020H, 020H, 020H, 020H, 020H, 020H, 020H, 020H, 020H, 020H, 020H, 020H, 020H ; 0xFF
; RomDisk, top 8 bytes are used by the control registers when enabled so dont use the space.
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
ALIGN 0EFF8h
ORG 0EFF8h
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
diff --git a/asm/rfs_bank6.asm b/asm/rfs_bank6.asm
index 4d537ef..84d92d3 100644
--- a/asm/rfs_bank6.asm
+++ b/asm/rfs_bank6.asm
@@ -8,7 +8,7 @@
;- the MZ-80A RFS hardware upgrade.
;-
;- Credits:
-;- Copyright: (c) 2018-2023 Philip Smart
+;- Copyright: (c) 2018-2026 Philip Smart
;-
;- History: July 2019 - Merged 2 utilities to create this compilation.
;- May 2020 - Bank switch changes with release of v2 pcb with coded latch. The coded
@@ -23,6 +23,11 @@
;- Aug 2023 - Updates to make RFS run under the SFD700 Floppy Disk Interface board.
;- UROM remains the same, a 2K paged ROM, MROM is located at F000 when
;- RFS is built for the SFD700.
+;- v2.31a Dec 2025 - Minor bug fix for SFD700 version.
+;- v2.32 Feb 2026 - Bug fixes. Issues found during porting to picoZ80 such as IR/LR in the
+;- 2/3 User ROM access.
+;- v2.33 Mar 2026 - Additions of DUC command.
+;- v2.34 Mar 2026 - Addition of 4 extra banks.
;-
;--------------------------------------------------------------------------------------------------------
;- This source file is free software: you can redistribute it and-or modify
@@ -108,6 +113,26 @@ BKSW6to7: PUSH AF
LD A, ROMBANK6 ; Calling bank (ie. us).
PUSH AF
LD A, ROMBANK7 ; Required bank to call.
+ JR BKSW6_0
+BKSW6to8: PUSH AF
+ LD A, ROMBANK6 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK8 ; Required bank to call.
+ JR BKSW6_0
+BKSW6to9: PUSH AF
+ LD A, ROMBANK6 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK9 ; Required bank to call.
+ JR BKSW6_0
+BKSW6to10: PUSH AF
+ LD A, ROMBANK6 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK10 ; Required bank to call.
+ JR BKSW6_0
+BKSW6to11: PUSH AF
+ LD A, ROMBANK6 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK11 ; Required bank to call.
;
BKSW6_0: PUSH HL ; Place function to call on stack
LD HL, BKSWRET6 ; Place bank switchers return address on stack.
@@ -157,7 +182,27 @@ PRINTASCII1:CALL PRNT
; Input: DE = Address, in this bank or any other location EXCEPT another bank.
; BC = Value to print with marker 0xFB if needed.
; Upto 4 stack values accessed by markers 0xFF, 0xFE, 0xFD, 0xFC
-PRINTMSG: LD A,(DE)
+PRINTMSG:
+ ; Copy message from MROM bank 9 to RAM buffer, then restore monitor ROM.
+ ; DE may point to MROM (0x0000-0x0FFF) or RAM (0xCFxx) — copy handles both.
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+ LD A,(ROMBK1) ; Save current MROM bank.
+ LD (SVMSGMROM),A
+ LD A,MROM_MSGS ; Select message MROM bank (9).
+ LD (BNKSELMROM),A
+ LD HL,MSGBUF ; Destination: RAM temp buffer.
+PMCOPY: LD A,(DE) ; Read byte (from MROM or RAM).
+ LD (HL),A ; Write to RAM buffer.
+ OR A ; Null terminator?
+ JR Z,PMCOPYD ; Yes - done copying.
+ INC DE
+ INC HL
+ JR PMCOPY
+PMCOPYD: LD A,(SVMSGMROM) ; Restore original MROM bank.
+ LD (BNKSELMROM),A
+ LD DE,MSGBUF ; Point DE to RAM copy.
+ ENDIF
+ LD A,(DE)
CP 000H ; End of string?
RET Z
CP 0FFH ; Marker to print out first stack parameter.
@@ -227,122 +272,6 @@ PRTMSGE: POP BC
; END OF PRINT ROUTINE METHODS
;-------------------------------------------------------------------------------
-
-
- ;-------------------------------------------------------------------------------
- ; START OF HELP SCREEN FUNCTIONALITY
- ;-------------------------------------------------------------------------------
-
- ; Simple help screen to display commands.
-HELP: CALL NL
- LD DE, HELPSCR
- CALL PRTSTR
- RET
-
- ; A modified print string routine with full screen pause to print out the help screen text. The routine prints out true ascii
- ; as opposed to Sharp modified ascii.
- ; A string is NULL terminated.
-PRTSTR: PUSH AF
- PUSH BC
- PUSH DE
- LD A,0
- LD (TMPLINECNT),A
-PRTSTR1: LD A,(DE)
- CP 000H ; NULL terminates the string.
- JR Z,PRTSTRE
- CP 00DH ; As does CR.
- JR Z,PRTSTR3
-PRTSTR2: CALL PRINTASCII
- INC DE
- JR PRTSTR1
-PRTSTR3: PUSH AF
- LD A,(TMPLINECNT)
- CP 24
- JR Z,PRTSTR5
- INC A
-PRTSTR4: LD (TMPLINECNT),A
- POP AF
- JR PRTSTR2
-PRTSTR5: CALL GETKY
- CP ' '
- JR NZ,PRTSTR5
- XOR A
- JR PRTSTR4
-PRTSTRE: POP DE
- POP BC
- POP AF
- RET
-
- ; Help text. Use of lower case, due to Sharp's non standard character set, is not easy, you have to manually code each byte
- ; hence using upper case.
- ; 1 40
-HELPSCR: IF BUILD_ROMDISK = 1
- DB "0..9 - select RFS Drive.", 00DH
- DB "40 - 40 col mode.", 00DH
- DB "80 - 80 col mode.", 00DH
- ;DB "700 - Select MZ-700 Mode.", 00DH
- ;DB "7008 - Select MZ-700 80 col Mode.", 00DH
- DB "B - toggle keyboard bell.", 00DH
- DB "BASIC - Load BASIC SA-5510.", 00DH
- DB "C - clear memory $1200-$D000.", 00DH
- DB "CPXXXXYYYYZZZZ - copy memory", 00DH
- DB " XXXX=src,YYYY=dst,ZZZZ=size", 00DH
- DB "CPM - Load CPM.", 00DH
- DB "DXXXX[YYYY] - dump mem XXXX to YYYY.", 00DH
- DB "EC[FN]- erase file, FN=No, or Filename", 00DH
- DB "F[X] - boot fd drive X.", 00DH
- DB "f - boot fd original rom.", 00DH
- DB "H - this help screen.", 00DH
- DB "IR/IC - rfs dir listing rom/sd card.", 00DH
- DB "JXXXX - jump to location XXXX.", 00DH
- DB "LT[FN]- load tape, FN=Filename", 00DH
- DB "LR[FN]- load rom, FN=No. or Filename", 00DH
- DB "LC[FN]- load sdcard, FN=No. or Filename", 00DH
- DB " - add NX for no exec, ie.LRNX.", 00DH
- DB "MXXXX - edit memory starting at XXXX.", 00DH
- DB "P - test printer.", 00DH
- DB "R - test dram memory.", 00DH
- DB "SD2T - copy sd card to tape.", 00DH
- DB "ST[XXXXYYYYZZZZ] - save mem to tape.", 00DH
- DB "SC[XXXXYYYYZZZZ] - save mem to card.", 00DH
- DB " XXXX=start,YYYY=end,ZZZZ=exec", 00DH
- DB "T - test timer.", 00DH
- DB "T2SD - copy tape to sd card.", 00DH
- DB "V - verify tape save.", 00DH
- DB 000H
- ENDIF
- IF BUILD_SFD700 = 1
- DB "ASMXXXX assemble into dest XXXX", 00DH
- DB "B - toggle keyboard bell.", 00DH
- DB "BASIC - Load BASIC SA-5510.", 00DH
- DB "C - clear memory $1200-$D000.", 00DH
- DB "CPXXXXYYYYZZZZ - copy memory", 00DH
- DB " XXXX=src,YYYY=dst,ZZZZ=size", 00DH
- ;DB "CPM - Load CPM.", 00DH
- DB "DXXXX[YYYY] - dump mem XXXX to YYYY.", 00DH
- DB "DASMXXXX[YYYY]", 00DH
- DB " disassemble XXXX to YYYY", 00DH
- DB "F - boot fd.", 00DH
- DB "H - this help screen.", 00DH
- DB "IR - rfs rom dir listing.", 00DH
- DB "JXXXX - jump to location XXXX.", 00DH
- DB "LT[FN]- load tape, FN=Filename", 00DH
- DB "LR[FN]- load rom, FN=No. or Filename", 00DH
- DB " - add NX for no exec, ie.LRNX.", 00DH
- DB "MXXXX - edit memory starting at XXXX.", 00DH
- DB "P - test printer.", 00DH
- DB "R - test dram memory.", 00DH
- DB "ST[XXXXYYYYZZZZ] - save mem to tape.", 00DH
- DB " XXXX=start,YYYY=end,ZZZZ=exec", 00DH
- DB "T - test timer.", 00DH
- DB "V - verify tape save.", 00DH
- DB 000H
- ENDIF
-
- ;-------------------------------------------------------------------------------
- ; END OF HELP SCREEN FUNCTIONALITY
- ;-------------------------------------------------------------------------------
-
; TRUE ASCII TO DISPLAY CODE TABLE
;
ATBL: DB 0CCH ; NUL '\0' (null character)
@@ -479,48 +408,58 @@ ATBL: DB 0CCH ; NUL '\0' (null character)
; Message table
;
;--------------------------------------
-MSGSONTZ: DB "+ TZ" ; Version 2.x with version 2.1+ of tranZPUter board installed.
-MSGSON: DB "+ RFS ", 0ABh, "2.31a **", 00DH, 000H ; Version 2.x-> as we are now using the v2.x PCB with 4 devices on-board
-MSGNOTFND: DB "Not Found", 00DH, 000H
-MSGRDIRLST: DB "ROM Directory:", 00DH, 000H
-MSGTRM: DB 00DH, 000H
-MSGBADCMD: DB "???", 00DH, 000H
-MSGSDINITER:DB "SD Card Error ", 0F9H, 00DH, 000H
-MSGCDIRLST: DB "SD Card Directory ",0F9H,":", 00DH, 000H
-MSGSDRERR: DB "Read error, Sec:",0FBH, 000H
-MSGSDWERR: DB "Write error, Sec:",0FBH, 000H
-MSGSVFAIL: DB "Error, save failed.", 00DH, 000H
-MSGERAFAIL: DB "Dir update failed.", 00DH, 000H
-MSGSVDIRENT:DB "Saving into dir entry:",0FBH, 00DH, 000H
-MSGERASEDIR:DB "Deleted dir entry:",0FBH, 000H
-MSGCMTDATA: DB "Load:",0FEH,",Exec:",0FFH, ",Size:",0FBH, 00DH, 000H
-MSGNOTBIN: DB "Not binary", 00DH, 000H
-MSGLOAD: DB 00DH, "Loading ",'"',0FAH,'"', 00DH, 000H
-MSGSAVE: DB 00DH, "Filename: ", 000H
-MSGDIRFULL: DB "Directory full", 00DH, 000H
-MSGE1: DB 00DH, "Check sum error!", 00DH, 000H ; Check sum error.
-MSGCMTWRITE:DB 00DH, "Writing ", '"',0FAH,'"', 00DH, 000H
-MSGOK: DB 00DH, "OK!", 00DH, 000H
-MSGSAVEOK: DB "Tape image saved.", 00DH, 000H
-MSGBOOTDRV: DB 00DH, "Floppy boot drive ?", 000H
-MSGLOADERR: DB 00DH, "Disk loading error", 00DH, 000H
-MSGIPLLOAD: DB 00DH, "Disk loading ", 000H
-MSGDSKNOTMST:DB 00DH, "Not a boot disk", 00Dh, 000H
-MSGINITM: DB "Init memory", 00DH, 000H
-MSGREAD4HEX:DB "Bad hex number", 00DH, 000H
-MSGT2SDERR: DB "Copy from Tape to SD Failed", 00DH, 000H
-MSGSD2TERR: DB "Copy from SD to Tape Failed", 00DH, 000H
-MSGT2SDOK: DB "Success, Tape to SD done.", 00DH, 000H
-MSGSD2TOK: DB "Success, SD to Tape done.", 00DH, 000H
-MSGNOTZINST:DB "No tranZPUter >=v2 card installed.", 00DH, 000H
-MSGNOCMTDIR:DB "CMT has no directory.", 00DH, 000H
-MSGINVDRV: DB "Invalid drive, SD=0..9 or C=CMT", 00DH, 000H
-MSGNOVERIFY:DB "No Verify for SD!", 00DH, 000H
-MSGNOINSTR: DB "Bad instruction.", 00DH, 000H
-MSGNOPARAM: DB "Bad parameter.", 00DH, 000H
+ ; picoZ80/RomDisk: Messages are in MROM bank 9 (EQUs in rfs_definitions.asm).
+ ; SFD700: Messages remain inline below.
+ IF BUILD_SFD700 = 1
+MSGSONTZ: DB "+ TZ" ; Version 2.x with version 2.1+ of tranZPUter board installed.
+MSGSON: DB "+ RFS ", 0ABh, "2.40 **", 00DH, 000H ; Version 2.x-> as we are now using the v2.x PCB with 4 devices on-board
+MSGNOTFND: DB "Not Found", 00DH, 000H
+MSGRDIRLST: DB "ROM Directory:", 00DH, 000H
+MSGTRM: DB 00DH, 000H
+MSGBADCMD: DB "???", 00DH, 000H
+MSGSDINITER: DB "SD Card Error ", 0F9H, 00DH, 000H
+MSGCDIRLST: DB "SD Card Dir ",0F9H,":", 00DH, 000H
+MSGSDRERR: DB "Read error, Sec:",0FBH, 000H
+MSGSDWERR: DB "Write error, Sec:",0FBH, 000H
+MSGSVFAIL: DB "Error, save failed.", 00DH, 000H
+MSGERAFAIL: DB "Dir update failed.", 00DH, 000H
+MSGSVDIRENT: DB "Saving into dir entry:",0FBH, 00DH, 000H
+MSGERASEDIR: DB "Deleted dir entry:",0FBH, 000H
+MSGCMTDATA: DB "Load:",0FEH,",Exec:",0FFH, ",Size:",0FBH, 00DH, 000H
+MSGDCHEAD: DB '"',0FAH,'"',00DH,"Load:",0FDH,",Exec:",0FEH,",Size:",0FFH,00DH,000H
+MSGNOTBIN: DB "Not binary", 00DH, 000H
+MSGLOAD: DB 00DH, "Loading ",'"',0FAH,'"', 00DH, 000H
+MSGSAVE: DB 00DH, "Filename: ", 000H
+MSGDIRFULL: DB "Dir full", 00DH, 000H
+MSGE1: DB 00DH, "Check sum error!", 00DH, 000H ; Check sum error.
+MSGCMTWRITE: DB 00DH, "Writing ", '"',0FAH,'"', 00DH, 000H
+MSGOK: DB 00DH, "OK!", 00DH, 000H
+MSGSAVEOK: DB "Tape image saved.", 00DH, 000H
+MSGBOOTDRV: DB 00DH, "Floppy boot drive ?", 000H
+MSGLOADERR: DB 00DH, "Disk loading error", 00DH, 000H
+MSGIPLLOAD: DB 00DH, "Disk loading ", 000H
+MSGDSKNOTMST: DB 00DH, "Not a boot disk", 00Dh, 000H
+MSGINITM: DB "Init memory", 00DH, 000H
+MSGREAD4HEX: DB "Bad hex number", 00DH, 000H
+MSGT2SDERR: DB "Copy Tape to SD Failed", 00DH, 000H
+MSGSD2TERR: DB "Copy SD to Tape Failed", 00DH, 000H
+MSGT2SDOK: DB "Success, Tape to SD done.", 00DH, 000H
+MSGSD2TOK: DB "Success, SD to Tape done.", 00DH, 000H
+MSGNOTZINST: DB "No tranZPUter >=v2 card installed.", 00DH, 000H
+MSGNOCMTDIR: DB "CMT has no dir.", 00DH, 000H
+MSGINVDRV: DB "Invalid drive, SD=0..9 or C=CMT", 00DH, 000H
+MSGNOVERIFY: DB "No Verify for SD!", 00DH, 000H
+MSGNOINSTR: DB "Bad instruction.", 00DH, 000H
+MSGNOPARAM: DB "Bad parameter.", 00DH, 000H
+MSGQDERR: DB "QD: Read error", 00DH, 000H
+MSGQDFMT: DB "QD: Not ready", 00DH, 000H
+ ; Floppy directory messages.
+MSGFDDIR: DB "FD ",0F9H,":", 00DH, 000H
+MSGFDINFO: DB " L:",0FFH," E:",0FEH," S:",0FBH, 00DH, 000H
+ ENDIF
; RomDisk - Pad to EFFF boundary.
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
ALIGN 0EFF8h
ORG 0EFF8h
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
diff --git a/asm/rfs_bank7.asm b/asm/rfs_bank7.asm
index 6936414..8cd5eb0 100644
--- a/asm/rfs_bank7.asm
+++ b/asm/rfs_bank7.asm
@@ -8,7 +8,7 @@
;- the MZ-80A RFS hardware upgrade.
;-
;- Credits:
-;- Copyright: (c) 2018-2023 Philip Smart
+;- Copyright: (c) 2018-2026 Philip Smart
;-
;- History: July 2019 - Merged 2 utilities to create this compilation.
;- May 2020 - Bank switch changes with release of v2 pcb with coded latch. The coded
@@ -62,11 +62,21 @@ ML_BUF: DS virtual 2 ; 3 byte ML buffer
ML_BTCOUNT: DS virtual 1 ; Last byte of ML buffer(byte count)
VAL_LO: DS virtual 1 ; Converted value LO
VAL_HI: DS virtual 1 ; Converted value Hi
-BUF_END:
+BUF_END:
+OPCD_MROMBNK: DS virtual 1 ; MROM bank (6 or 7) where ASM instruction was found
+ ; Fixed addresses of search routines in MROM banks 6 and 7.
+DSMFINDOPCD_MROM EQU 0E80H
+ASMFINDINST_MROM EQU 0F10H
+ASMFINDPARM_MROM EQU 0F70H
+ ; MROM bank numbers for opcode tables.
+MROM_OPCD6 EQU 6
+MROM_OPCD7 EQU 7
- ORG 0E000H
- ALIGN 0E300H
+ IF BUILD_SFD700 = 1
+ ORG 0E000H
+ ALIGN 0E300H
+ ENDIF
IF BUILD_SFD700 = 1
;******************************************************************
@@ -866,6 +876,26 @@ BKSW7to7: PUSH AF
LD A, ROMBANK7 ; Calling bank (ie. us).
PUSH AF
LD A, ROMBANK7 ; Required bank to call.
+ JR BKSW7_0
+BKSW7to8: PUSH AF
+ LD A, ROMBANK7 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK8 ; Required bank to call.
+ JR BKSW7_0
+BKSW7to9: PUSH AF
+ LD A, ROMBANK7 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK9 ; Required bank to call.
+ JR BKSW7_0
+BKSW7to10: PUSH AF
+ LD A, ROMBANK7 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK10 ; Required bank to call.
+ JR BKSW7_0
+BKSW7to11: PUSH AF
+ LD A, ROMBANK7 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK11 ; Required bank to call.
;
BKSW7_0: PUSH HL ; Place function to call on stack
LD HL, BKSWRET7 ; Place bank switchers return address on stack.
@@ -876,10 +906,456 @@ BKSW7_0: PUSH HL ; P
BKSWRET7: POP AF ; Get bank which called us.
BNKSWSELRET
POP AF
- RET
+ RET
;-------------------------------------------------------------------------------
- ; Z80 Assembler lookup table
+ ; START OF PICOZ80/ROMDISK DISASSEMBLER
+ ;-------------------------------------------------------------------------------
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+
+ ;******************************************************************
+ ; DASM_MAIN Z80 Dis-Assembler (picoZ80/RomDisk multi-bank)
+ ; Opcode tables are in MROM banks 6 and 7 (0x0000 address space).
+ ; Search routines in MROM at fixed addresses, called from UROM.
+ ;******************************************************************
+DASM_MAIN: LD B,(VAL_HI-COUNT_C)+1
+ LD HL,COUNT_C
+ XOR A
+ CALL MEMSET
+ ;
+ CALL HLHEX ; Get starting address.
+ JP C,DASM_ERR
+ LD (SRC_ADDR),HL ; Save in SRC_ADDR
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+
+ LD BC,0h ; Add 1 to Start Address
+ SCF
+ ADC HL,BC
+ RET Z ; Exit if xFFFF was entered
+
+ CALL HLHEX ; Get end address
+ LD (ADDR_LO),HL
+ JP NC,DASM_UENDAD ; User entered end address
+
+ XOR A
+ LD (ASM_ADDR),A ; Not using end address - just do 16 rows
+ LD (ASM_ADDR+1),A
+ LD A,10h
+ LD (COUNT_C),A ; Set Row Counter = 16
+ JP DASM_UROWCT
+
+DASM_UENDAD:LD A,0FFh ; End Address was entered
+ LD (COUNT_C),A
+
+ LD HL,(ADDR_LO)
+ LD (ASM_ADDR),HL
+DASM_UROWCT:LD HL,(SRC_ADDR)
+ LD (ADDR_LO),HL
+
+ ; ** Print CR, LF, ADDR_HI, ADDR_LO (in HEX), space
+DASM_LOOP1: CALL NL ; Print CR & LF
+ LD A,(ADDR_HI) ; Print Address
+ CALL PRTHX
+ LD A,(ADDR_LO)
+ CALL PRTHX
+ CALL PRNTS ; Print Space
+
+ LD HL,ASM_BUF ; Clear ASM_BUF through BUF_END
+ LD A,020H
+ LD B,BUF_END-ASM_BUF
+DASM_FILL: LD (HL),A
+ INC HL
+ DEC B
+ JP NZ,DASM_FILL
+
+ ; Get 2 bytes from memory
+ LD HL,(ADDR_LO)
+ LD A,(HL)
+ LD (ML_BUF),A
+ INC HL
+ LD A,(HL)
+ LD (ML_BUF+1),A
+
+ ; Save current MROM bank for restore after table access
+ LD A,(ROMBK1)
+ PUSH AF
+
+ CALL DASMBITINST ; Is this a BIT,SET or RES inst?
+ JP NZ,DASM_FIND ; NO=Do regular search
+
+ ; BIT/SET/RES path: value already in VAL_BUF
+ CALL DSMFIND_BOTH ; Search both MROM banks
+ JP Z,DASM_ERR2 ; NOT FOUND
+ CALL DASMGETINST ; Copy instruction name (MROM still active)
+ JP DASM_JUSTV ; Skip to value justification
+
+DASM_FIND: CALL DSMFIND_BOTH ; Search both MROM banks
+ JP Z,DASM_ERR2 ; NOT FOUND
+ CALL DASMGETINST ; Copy instruction name
+
+ ; Set up VAL_BUF defaults
+ LD A,'0'
+ LD (VAL_BUF_HI),A
+ LD (VAL_BUF_HI+1),A
+ LD A,0
+ LD (VAL_BUF_LO),A
+
+ CALL DASMGETVAL ; Get value bytes from Z80 memory
+
+DASM_JUSTV: CALL DSMLFJVAL ; Left justify VAL_BUF
+ CALL DASMGETPARM ; Build parameter string (MROM still active)
+
+ ; Restore MROM bank
+ POP AF
+ LD (BNKSELMROM),A
+
+ CALL DSMRTRIMASM ; Trim trailing spaces
+
+ ; Output memory bytes and advance address pointer
+ LD A,0Fh
+ LD C,A
+ LD HL,(ADDR_LO)
+ LD A,(ML_BTCOUNT)
+ LD B,A
+DASM_MEMOUT: LD A,(HL)
+ CALL PRTHX
+ CALL PRNTS
+ INC HL
+ DEC C
+ DEC C
+ DEC C
+ DEC B
+ JP NZ,DASM_MEMOUT
+ LD (ADDR_LO),HL
+
+DASM_SPCOUT: CALL PRNTS ; Pad with spaces to 15 bytes
+ DEC C
+ JP NZ,DASM_SPCOUT
+
+ ; Print ASM_BUF via PRINTMSG in bank 6
+ LD DE,ASM_BUF
+ LD HL,PRINTMSG
+ CALL BKSW7to6
+
+ LD A,(COUNT_C) ; Get Row Count
+ CP 0FFh ; Using End Address?
+ JP Z,DASM_CKEADR
+ DEC A ; Decrement
+ RET Z ; DONE
+ LD (COUNT_C),A
+ JP DASM_LOOP1
+
+DASM_CKEADR: LD HL,(ASM_ADDR)
+ LD BC,(ADDR_LO)
+ SBC HL,BC
+ RET M
+ JP DASM_LOOP1
+
+DASM_ERR2: POP AF ; Restore MROM bank
+ LD (BNKSELMROM),A
+DASM_ERR: LD DE,MSGNOTFND
+ LD HL,PRINTMSG
+ CALL BKSW7to6
+ RET
+
+ ;******************************************************************
+ ; DSMFIND_BOTH
+ ; Search MROM banks 6 and 7 for opcode match.
+ ; Leaves the matching MROM bank active.
+ ; Returns: NZ if found, Z if not found.
+ ;******************************************************************
+DSMFIND_BOTH:LD A,MROM_OPCD6
+ LD (BNKSELMROM),A
+ CALL DSMFINDOPCD_MROM
+ RET NZ ; Found in bank 6
+ LD A,MROM_OPCD7
+ LD (BNKSELMROM),A
+ JP DSMFINDOPCD_MROM ; Tail call - search bank 7
+
+ ;******************************************************************
+ ; Dis-Assembler Routines (shared with SFD700 version)
+ ;******************************************************************
+
+ ;******************************************************************
+ ; ISVALBUF0
+ ;******************************************************************
+ISVALBUF0: LD A,(VAL_BUF)
+ CP '0'
+ JP NZ,IZVBFZ_RET
+ LD A,(VAL_BUF+1)
+ CP 0
+IZVBFZ_RET: RET
+
+ ;******************************************************************
+ ; ISIXIYPRM
+ ;******************************************************************
+ISIXIYPRM: PUSH BC
+ PUSH HL
+ LD C,0
+ LD B,7
+ LD HL,(ROW_ADDR)
+ISIX_LOOP: LD A,(HL)
+ CP '('
+ JP Z,ISIX_CKI
+ CP '*'
+ JP Z,ISIX_COUNT
+ JP ISIX_NEXT
+ISIX_CKI: INC HL
+ LD A,(HL)
+ CP 'I'
+ JP Z,ISIX_COUNT
+ JP ISIX_NEXT2
+ISIX_COUNT: INC C
+ISIX_NEXT: INC HL
+ISIX_NEXT2: DEC B
+ JP NZ,ISIX_LOOP
+ LD A,C
+ CP 2
+ POP HL
+ POP BC
+ RET
+
+ ;******************************************************************
+ ; IS_DIGIT, ISHEXDIGIT, ISDECDIGIT
+ ;******************************************************************
+IS_DIGIT: CALL ISDECDIGIT
+ JP Z,IS_DIG_EXIT
+ CALL ISHEXDIGIT
+IS_DIG_EXIT: RET
+
+ISHEXDIGIT: CP 'A'
+ JP M,ISHEXD_EXIT
+ CP 'G'
+ JP M,ISHEXD_ZRET
+ JP ISHEXD_EXIT
+ISHEXD_ZRET: CP A
+ RET
+ISHEXD_EXIT: CP 0
+ RET
+
+ISDECDIGIT: CP '0'
+ JP M,ISDECD_EXIT
+ CP 03Ah
+ JP M,ISDECD_ZRET
+ JP ISDECD_EXIT
+ISDECD_ZRET: CP A
+ RET
+ISDECD_EXIT: CP 0
+ RET
+
+ ;******************************************************************
+ ; MEMSET HL=src B=COUNT A=FILL
+ ;******************************************************************
+MEMSET: LD (HL),A
+ INC HL
+ DEC B
+ JP NZ, MEMSET
+ RET
+
+ ;******************************************************************
+ ; RTJUSTVAL
+ ;******************************************************************
+RTJUSTVAL: PUSH IX
+ PUSH BC
+ LD IX,VAL_BUF
+ LD B,05h
+RTJVAL_LOOP: LD A,(IX+3)
+ CP ' '
+ JP NZ,RTJVAL_EXIT
+ LD A,(IX+2)
+ LD (IX+3),A
+ LD A,(IX+1)
+ LD (IX+2),A
+ LD A,(IX+0)
+ LD (IX+1),A
+ LD A,'0'
+ LD (IX+0),A
+ DEC B
+ JP NZ,RTJVAL_LOOP
+RTJVAL_EXIT: POP BC
+ POP IX
+ RET
+
+ ;******************************************************************
+ ; DSMRTRIMASM
+ ;******************************************************************
+DSMRTRIMASM: PUSH BC
+ PUSH HL
+ LD B,0Fh
+ LD HL,ASM_BUF+15
+DSMRTA_LOOP: LD A,(HL)
+ CP ' '
+ JP NZ,DSMRTA_EXIT
+ LD A,000h
+ LD (HL),A
+ DEC HL
+ DEC B
+ JP NZ,DSMRTA_LOOP
+DSMRTA_EXIT: POP HL
+ POP BC
+ RET
+
+ ;******************************************************************
+ ; DSMLFJVAL
+ ;******************************************************************
+DSMLFJVAL: PUSH BC
+ LD B,03h
+DSMLFJ_LOOP: LD A,(VAL_BUF)
+ CP '0'
+ JP NZ,DSMLFJ_EXIT
+ LD A,(VAL_BUF+1)
+ LD (VAL_BUF),A
+ LD A,(VAL_BUF+2)
+ LD (VAL_BUF+1),A
+ LD A,(VAL_BUF+3)
+ LD (VAL_BUF+2),A
+ LD A,0
+ LD (VAL_BUF+3),A
+ DEC B
+ JP NZ,DSMLFJ_LOOP
+DSMLFJ_EXIT: POP BC
+ RET
+
+ ;******************************************************************
+ ; BYTE2ASCII / NIB_TOHEX
+ ;******************************************************************
+BYTE2ASCII: LD H,A
+ RRA
+ RRA
+ RRA
+ RRA
+ CALL NIB_TOHEX
+ LD L,A
+ LD A,H
+ CALL NIB_TOHEX
+ LD H,A
+ RET
+
+NIB_TOHEX: AND 0Fh
+ CP 0Ah
+ JP M,ADD_30X
+ ADD A,07h
+ADD_30X: ADD A,030h
+ RET
+
+ ;******************************************************************
+ ; DASMBITINST
+ ;******************************************************************
+DASMBITINST: LD B,0CBh
+ LD A,(ML_BUF)
+ CP B
+ JP NZ,DASMBIT_RET
+ LD A,(ML_BUF+1)
+ AND 0C0h
+ JP NZ,DASMBIT_VAL
+ LD A,0FFh
+ JP DASMBITRETN
+DASMBIT_VAL: LD A,(ML_BUF+1)
+ AND 038h
+ RRA
+ RRA
+ RRA
+ AND 07h
+ PUSH HL
+ CALL BYTE2ASCII
+ LD (VAL_BUF_LO),HL
+ LD A,'0'
+ LD (VAL_BUF_HI),A
+ LD (VAL_BUF_HI+1),A
+ POP HL
+ LD A,(ML_BUF+1)
+ AND 0C7h
+ LD (ML_BUF+1),A
+DASMBITRETZ: LD A,0
+DASMBITRETN: CP 0
+DASMBIT_RET: RET
+
+ ;******************************************************************
+ ; DASMGETPARM
+ ;******************************************************************
+DASMGETPARM: LD B,7
+ LD IY,ASM_BUF+5
+ LD IX,(ROW_ADDR) ; ROW_ADDR points into MROM
+DASM_GETPRM: LD A,(IX)
+ CP '*'
+ JP NZ,DASM_SAVPAR
+ CALL ISIXIYPRM
+ JP NZ,DASM_MOVVAL
+ CALL ISVALBUF0
+ JP Z,DASM_NXTPR2
+ LD A,'+'
+ LD (IY),A
+ INC IY
+DASM_MOVVAL: LD C,4
+ LD HL,VAL_BUF
+DASM_MVLOOP: LD A,(HL)
+ CP 0
+ JP Z,DASM_SAVH
+ LD (IY),A
+ INC IY
+ INC HL
+ DEC C
+ JP NZ,DASM_MVLOOP
+DASM_SAVH: LD A,'h'
+DASM_SAVPAR: LD (IY),A
+DASM_NXTPAR: INC IY
+DASM_NXTPR2: INC IX
+ DEC B
+ JP NZ,DASM_GETPRM
+ RET
+
+ ;******************************************************************
+ ; DASMGETVAL
+ ;******************************************************************
+DASMGETVAL: LD HL,(ADDR_LO)
+ LD A,(ML_BTCOUNT)
+ LD B,A
+ DEC B
+ INC HL
+ LD A,(ML_BUF+1)
+ CP 0
+ JP Z,DASM_CKBTCNT
+ DEC B
+ INC HL
+DASM_CKBTCNT:LD A,0
+ CP B
+ JP Z,DASM_GVEXIT
+ LD A,(HL)
+ PUSH HL
+ CALL BYTE2ASCII
+ LD (VAL_BUF_LO),HL
+ POP HL
+ DEC B
+ LD A,0
+ CP B
+ JP Z,DASM_GVEXIT
+ INC HL
+ LD A,(HL)
+ CALL BYTE2ASCII
+ LD (VAL_BUF_HI),HL
+DASM_GVEXIT: RET
+
+ ;******************************************************************
+ ; DASMGETINST
+ ;******************************************************************
+DASMGETINST: LD HL,(BLK_ADDR) ; BLK_ADDR points into MROM
+ LD DE,ASM_BUF
+ LD B,04h
+DASM_MOVINS: INC HL
+ LD A,(HL)
+ LD (DE),A
+ INC DE
+ DEC B
+ JP NZ,DASM_MOVINS
+ RET
+
+ ENDIF ; BUILD_ROMDISK+BUILD_PICOZ80
+
+ ;-------------------------------------------------------------------------------
+ ; Z80 Assembler lookup table
; FORMAT: 10 bytes per row
; Instruction Blocks: start with # followed by 4 char instruction
; byte 5 = #of rows for this instruction
@@ -1738,7 +2214,7 @@ CPY2SP_EXIT: RET
ENDIF ; SFD700
; RomDisk - Pad to EFFF boundary.
- IF BUILD_ROMDISK = 1
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
ALIGN 0EFF8h
ORG 0EFF8h
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
diff --git a/asm/rfs_bank8.asm b/asm/rfs_bank8.asm
new file mode 100644
index 0000000..074bc0b
--- /dev/null
+++ b/asm/rfs_bank8.asm
@@ -0,0 +1,591 @@
+;--------------------------------------------------------------------------------------------------------
+;-
+;- Name: rfs_bank8.asm
+;- Created: July 2019
+;- Author(s): Philip Smart
+;- Description: Sharp MZ series Rom Filing System.
+;- This assembly language program is written to utilise the banked flashroms added with
+;- the MZ-80A RFS hardware upgrade.
+;-
+;- Credits:
+;- Copyright: (c) 2018-2026 Philip Smart
+;-
+;- History: July 2019 - Merged 2 utilities to create this compilation.
+;- May 2020 - Bank switch changes with release of v2 pcb with coded latch. The coded
+;- latch adds additional instruction overhead as the control latches share
+;- the same address space as the Flash RAMS thus the extra hardware to
+;- only enable the control registers if a fixed number of reads is made
+;- into the upper 8 bytes which normally wouldnt occur. Caveat - ensure
+;- that no loop instruction is ever placed into EFF8H - EFFFH.
+;- Aug 2023 - Updates to make RFS run under the SFD700 Floppy Disk Interface board.
+;- UROM remains the same, a 2K paged ROM, MROM is located at F000 when
+;- RFS is built for the SFD700.
+;-
+;--------------------------------------------------------------------------------------------------------
+;- This source file is free software: you can redistribute it and-or modify
+;- it under the terms of the GNU General Public License as published
+;- by the Free Software Foundation, either version 3 of the License, or
+;- (at your option) any later version.
+;-
+;- This source file is distributed in the hope that it will be useful,
+;- but WITHOUT ANY WARRANTY; without even the implied warranty of
+;- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;- GNU General Public License for more details.
+;-
+;- You should have received a copy of the GNU General Public License
+;- along with this program. If not, see .
+;--------------------------------------------------------------------------------------------------------
+
+ ;===========================================================
+ ;
+ ; USER ROM BANK 8 -
+ ;
+ ;===========================================================
+ ORG UROMADDR
+
+ ;--------------------------------
+ ; Common code spanning all banks.
+ ;--------------------------------
+ NOP
+ HWSELROM2 ; Select the first ROM page.
+ ;
+ ; No mans land... this should have switched to Bank 0 and at this point there is a jump to 00000H.
+ JP 00000H ; This is for safety!!
+
+
+ ;------------------------------------------------------------------------------------------
+ ; Bank switching code, allows a call to code in another bank.
+ ; This code is duplicated in each bank such that a bank switch doesnt affect logic flow.
+ ;------------------------------------------------------------------------------------------
+ ALIGN_NOPS UROMBSTBL
+ ;
+BKSW8to0: PUSH AF
+ LD A, ROMBANK8 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK0 ; Required bank to call.
+ JR BKSW8_0
+BKSW8to1: PUSH AF
+ LD A, ROMBANK8 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK1 ; Required bank to call.
+ JR BKSW8_0
+BKSW8to2: PUSH AF
+ LD A, ROMBANK8 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK2 ; Required bank to call.
+ JR BKSW8_0
+BKSW8to3: PUSH AF
+ LD A, ROMBANK8 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK3 ; Required bank to call.
+ JR BKSW8_0
+BKSW8to4: PUSH AF
+ LD A, ROMBANK8 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK4 ; Required bank to call.
+ JR BKSW8_0
+BKSW8to5: PUSH AF
+ LD A, ROMBANK8 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK5 ; Required bank to call.
+ JR BKSW8_0
+BKSW8to6: PUSH AF
+ LD A, ROMBANK8 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK6 ; Required bank to call.
+ JR BKSW8_0
+BKSW8to7: PUSH AF
+ LD A, ROMBANK8 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK7 ; Required bank to call.
+ JR BKSW8_0
+BKSW8to8: PUSH AF
+ LD A, ROMBANK8 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK8 ; Required bank to call.
+ JR BKSW8_0
+BKSW8to9: PUSH AF
+ LD A, ROMBANK8 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK9 ; Required bank to call.
+ JR BKSW8_0
+BKSW8to10: PUSH AF
+ LD A, ROMBANK8 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK10 ; Required bank to call.
+ JR BKSW8_0
+BKSW8to11: PUSH AF
+ LD A, ROMBANK8 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK11 ; Required bank to call.
+ ;
+BKSW8_0: PUSH HL ; Place function to call on stack
+ LD HL, BKSWRET8 ; Place bank switchers return address on stack.
+ EX (SP),HL
+ LD (TMPSTACKP),SP ; Save the stack pointer as some old code corrupts it.
+ BNKSWSEL
+ JP (HL) ; Jump to required function.
+BKSWRET8: POP AF ; Get bank which called us.
+ BNKSWSELRET
+ POP AF
+ RET
+
+ ;-------------------------------------------------------------------------------
+ ; START OF METHODS
+ ;-------------------------------------------------------------------------------
+
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+
+ ; Work RAM addresses (must match rfs_bank7.asm layout at 0xCF00)
+OPCD_MROMBNK_8: EQU 0CF3BH ; Same address as OPCD_MROMBNK in bank 7
+DSMFINDOPCD_MROM_8: EQU 0E80H
+ASMFINDINST_MROM_8: EQU 0F10H
+ASMFINDPARM_MROM_8: EQU 0F70H
+MROM_OPCD6_8: EQU 6
+MROM_OPCD7_8: EQU 7
+
+ ; Work RAM EQUs for variables defined with DS virtual in bank 7.
+COUNT_C_8: EQU 0CF00H
+ADDR_8: EQU 0CF01H
+ADDR_LO_8: EQU 0CF01H
+ADDR_HI_8: EQU 0CF02H
+ASM_ADDR_8: EQU 0CF03H
+ASM_BUF_8: EQU 0CF0BH
+OUT_BUF_8: EQU 0CF17H
+INS_BUF_8: EQU 0CF1BH
+PARM_BUF_8: EQU 0CF1FH
+VAL_BUF_8: EQU 0CF26H
+VAL_BUF_HI_8: EQU 0CF26H
+VAL_BUF_LO_8: EQU 0CF28H
+SRC_ADDR_8: EQU 0CF2BH
+DES_ADDR_8: EQU 0CF2DH
+BLK_ADDR_8: EQU 0CF2FH
+ROW_ADDR_8: EQU 0CF31H
+BLK_NUM_8: EQU 0CF33H
+BLK_SIZE_8: EQU 0CF34H
+ROW_NUM_8: EQU 0CF35H
+ML_BUF_8: EQU 0CF36H
+ML_BTCOUNT_8: EQU 0CF38H
+VAL_LO_8: EQU 0CF39H
+VAL_HI_8: EQU 0CF3AH
+BUF_END_8: EQU 0CF3BH
+
+ ;******************************************************************
+ ; ASM_MAIN Z80 Assembler (picoZ80/RomDisk multi-bank)
+ ;******************************************************************
+ASM_MAIN: CALL HLHEX ; Get address
+ JP C,ASM_ERR8
+ LD (ADDR_8),HL
+
+ASM_LOOP1: CALL NL
+ LD A,(ADDR_HI_8)
+ CALL PRTHX
+ LD A,(ADDR_LO_8)
+ CALL PRTHX
+ CALL PRNTS
+
+ LD HL,ASM_BUF_8
+ LD B,30h
+ CALL MEMSET8
+
+ LD DE,BUFER
+ CALL GETL
+ CALL HLHEX
+ JR C,ASM_LOOP3
+ LD (ADDR_8),HL
+ASM_LOOP3: LD BC,01005H
+ LD DE,BUFER+5
+ LD HL,ASM_BUF_8
+ CALL GETSTR8
+ LD A,0C2H
+ CALL DPCT
+
+ ; Clear the line
+ LD A,(SCRNMODE)
+ LD B,39
+ OR A
+ JR Z,ASM_LOOP4
+ LD B,79
+ASM_LOOP4: CALL PRNTS
+ DJNZ ASM_LOOP4
+
+ ; Reprint the line
+ LD HL,(DSPXY)
+ LD L, 0
+ LD (DSPXY),HL
+ LD A,(ADDR_HI_8)
+ CALL PRTHX
+ LD A,(ADDR_LO_8)
+ CALL PRTHX
+ CALL PRNTS
+ LD DE,ASM_BUF_8
+ASM_LOOP5: LD A,(DE)
+ CP 000H
+ JR Z,ASM_LOOP6
+ CALL PRNT
+ INC DE
+ JR ASM_LOOP5
+
+ASM_LOOP6: LD HL,(DSPXY)
+ LD L, 22
+ LD (DSPXY),HL
+
+ LD A,(ASM_BUF_8)
+ CP 0
+ JP Z,ASM_EXIT8
+
+ASM_CPYINS: LD DE,INS_BUF_8
+ LD HL,ASM_BUF_8
+ CALL CPY2SPC8
+ CALL SKIPSPC8
+
+ LD BC,PARM_BUF_8
+ CALL PADWSPC8
+
+ LD A,10h
+ LD B,A
+GET_NEXTASM: LD A,(HL)
+ CP 0
+ JP Z,ASMLOOPEXIT
+ CALL ISFLAGORNUM8
+ JP NZ,SAVE_ASMCHR
+ CALL ASMGETVAL8
+ LD A,'*'
+ LD (DE),A
+ INC DE
+ LD A,(HL)
+
+SAVE_ASMCHR: CP 0
+ JP Z,ASMLOOPEXIT
+ LD (DE),A
+ INC DE
+ INC HL
+ DEC B
+ JP NZ,GET_NEXTASM
+
+ASMLOOPEXIT: LD BC,VAL_BUF_8
+ CALL PADWSPC8
+
+ LD (SRC_ADDR_8),HL
+ LD (DES_ADDR_8),DE
+
+ CALL ASMFINDINST_WRAP
+ LD A,(BLK_SIZE_8)
+ CP 0
+ JP NZ,ASM_FINDPRM
+ASM_ERR_INS: LD DE,MSGNOINSTR
+ LD HL,PRINTMSG
+ CALL BKSW8to6
+ JP ASM_LOOP1
+
+ASM_FINDPRM: CALL ASMFINDPARM_WRAP
+ LD A,(ML_BUF_8+2)
+ CP 0
+ JP NZ,ASMOUTML
+ LD DE,MSGNOPARAM
+ LD HL,PRINTMSG
+ CALL BKSW8to6
+ JP ASM_LOOP1
+
+ASMOUTML: CALL RTJUSTVAL8
+
+ LD DE,VAL_BUF_HI_8
+ CALL HLHEX
+ JR C, ASM_ERR_INS
+ LD A,H
+ LD (VAL_HI_8),A
+ LD A,L
+ LD (VAL_LO_8),A
+
+ LD IX,OUT_BUF_8
+ LD A,(ML_BUF_8+1)
+ CP 0
+ JP Z,ASMNOBYTE2
+ LD (IX),A
+ INC IX
+ CP 0CBh
+ JP NZ,ASMNOBYTE2
+ LD A,(ML_BUF_8)
+ AND 0C0h
+ JP Z,ASMNOBYTE2
+ LD A,(ML_BUF_8)
+ LD B,A
+ LD A,(VAL_LO_8)
+ SLA A
+ SLA A
+ SLA A
+ AND 38h
+ OR B
+ LD (ML_BUF_8),A
+
+ASMNOBYTE2: LD A,(ML_BUF_8)
+ LD (IX),A
+ INC IX
+
+ LD A,(VAL_LO_8)
+ LD (IX),A
+ INC IX
+ LD A,(VAL_HI_8)
+ LD (IX),A
+
+ASM_TOMEM: LD A,(ML_BTCOUNT_8)
+ LD B,A
+ LD IX,OUT_BUF_8
+ASM_TOMEM1: LD HL,(ADDR_LO_8)
+ LD A,(IX)
+ LD (HL),A
+ CALL PRTHX
+ CALL PRNTS
+ INC HL
+ LD (ADDR_LO_8),HL
+ INC IX
+ DEC B
+ JP NZ,ASM_TOMEM1
+ JP ASM_LOOP1
+
+ASM_EXIT8: RET
+
+ASM_ERR8: LD DE,MSGNOTFND
+ LD HL,PRINTMSG
+ CALL BKSW8to6
+ RET
+
+ ;******************************************************************
+ ; ASMFINDINST_WRAP
+ ; Search both MROM banks for instruction match.
+ ; Saves matched bank in OPCD_MROMBNK.
+ ;******************************************************************
+ASMFINDINST_WRAP:
+ LD A,(ROMBK1)
+ PUSH AF
+ LD A,MROM_OPCD6_8
+ LD (BNKSELMROM),A
+ CALL ASMFINDINST_MROM_8
+ LD A,(BLK_SIZE_8)
+ OR A
+ JR NZ,AFIW_FND6
+ LD A,MROM_OPCD7_8
+ LD (BNKSELMROM),A
+ CALL ASMFINDINST_MROM_8
+ LD A,(BLK_SIZE_8)
+ OR A
+ JR NZ,AFIW_FND7
+ POP AF
+ LD (BNKSELMROM),A
+ RET
+AFIW_FND6: LD A,MROM_OPCD6_8
+ LD (OPCD_MROMBNK_8),A
+ POP AF
+ LD (BNKSELMROM),A
+ RET
+AFIW_FND7: LD A,MROM_OPCD7_8
+ LD (OPCD_MROMBNK_8),A
+ POP AF
+ LD (BNKSELMROM),A
+ RET
+
+ ;******************************************************************
+ ; ASMFINDPARM_WRAP
+ ; Select correct MROM bank and call ASMFINDPARM.
+ ;******************************************************************
+ASMFINDPARM_WRAP:
+ LD A,(ROMBK1)
+ PUSH AF
+ LD A,(OPCD_MROMBNK_8)
+ LD (BNKSELMROM),A
+ CALL ASMFINDPARM_MROM_8
+ POP AF
+ LD (BNKSELMROM),A
+ RET
+
+ ;******************************************************************
+ ; Assembler utility routines (bank 8 local copies)
+ ;******************************************************************
+
+MEMSET8: LD (HL),A
+ INC HL
+ DEC B
+ JP NZ, MEMSET8
+ RET
+
+RTJUSTVAL8: PUSH IX
+ PUSH BC
+ LD IX,VAL_BUF_8
+ LD B,05h
+RTJVAL_LP8: LD A,(IX+3)
+ CP ' '
+ JP NZ,RTJVAL_EX8
+ LD A,(IX+2)
+ LD (IX+3),A
+ LD A,(IX+1)
+ LD (IX+2),A
+ LD A,(IX+0)
+ LD (IX+1),A
+ LD A,'0'
+ LD (IX+0),A
+ DEC B
+ JP NZ,RTJVAL_LP8
+RTJVAL_EX8: POP BC
+ POP IX
+ RET
+
+BYTE2ASCII8: LD H,A
+ RRA
+ RRA
+ RRA
+ RRA
+ CALL NIB_TOHEX8
+ LD L,A
+ LD A,H
+ CALL NIB_TOHEX8
+ LD H,A
+ RET
+
+NIB_TOHEX8: AND 0Fh
+ CP 0Ah
+ JP M,ADD_30X8
+ ADD A,07h
+ADD_30X8: ADD A,030h
+ RET
+
+IS_DIGIT8: CALL ISDECDIGIT8
+ JP Z,IS_DIG_EX8
+ CALL ISHEXDIGIT8
+IS_DIG_EX8: RET
+
+ISHEXDIGIT8: CP 'A'
+ JP M,ISHEXD_EX8
+ CP 'G'
+ JP M,ISHEXD_ZR8
+ JP ISHEXD_EX8
+ISHEXD_ZR8: CP A
+ RET
+ISHEXD_EX8: CP 0
+ RET
+
+ISDECDIGIT8: CP '0'
+ JP M,ISDECD_EX8
+ CP 03Ah
+ JP M,ISDECD_ZR8
+ JP ISDECD_EX8
+ISDECD_ZR8: CP A
+ RET
+ISDECD_EX8: CP 0
+ RET
+
+GETSTR8: LD A,(DE)
+ CP 33
+ JR NC, GSTR1_8
+ CP 00DH
+ JR Z, GSTR2_8
+ OR A
+ JR Z, GSTR2_8
+ INC DE
+ INC C
+ JR GETSTR8
+GSTR1_8: LD (HL),A
+ INC DE
+ INC HL
+ INC C
+ LD A,(DE)
+ CP 00DH
+ JR Z,GSTR2_8
+ DJNZ GSTR1_8
+GSTR2_8: XOR A
+ LD (HL),A
+ RET
+
+ASMGETVAL8: PUSH DE
+ PUSH BC
+ LD DE,VAL_BUF_8
+ LD B,05h
+ASMGVL_LP8: LD A,(HL)
+ CP 0
+ JP Z,ASMGVL_EX8
+ CALL ISVALFLAG8
+ JP Z,ASMGVL_SK8
+ CALL IS_DIGIT8
+ JP NZ,ASMGVL_EX8
+ LD (DE),A
+ INC DE
+ASMGVL_SK8: INC HL
+ DEC B
+ JP NZ,ASMGVL_LP8
+ASMGVL_EX8: POP BC
+ POP DE
+ RET
+
+ISFLAGORNUM8:CALL ISVALFLAG8
+ JP Z,ISNUMF_ZR8
+ CALL ISDECDIGIT8
+ISNUMF_ZR8: RET
+
+ISVALFLAG8: CP '$'
+ JP Z,ISVALF_ZR8
+ CP '+'
+ JP Z,ISVALF_ZR8
+ CP '#'
+ JP Z,ISVALF_ZR8
+ CP 0
+ISVALF_ZR8: RET
+
+PADWSPC8: LD A,B
+ CP D
+ JP NZ,DOPADWSP8
+ LD A,C
+ CP E
+ JP M,PADWSP_EX8
+ JP NZ,DOPADWSP8
+PADWSP_EX8: RET
+DOPADWSP8: LD A,' '
+ LD (DE),A
+ INC DE
+ JP PADWSPC8
+
+SKIPSPC8: LD B,10h
+SKIPSP_LP8: LD A,(HL)
+ INC HL
+ CP ' '
+ JP Z,SKIPSP_EX8
+ CP 0
+ JP Z,SKIPSP_EX8
+ DEC B
+ JP NZ,SKIPSP_LP8
+SKIPSP_EX8: RET
+
+CPY2SPC8: LD B,0Ch
+CPY2SP_LP8: LD A,(HL)
+ CP ' '
+ JP Z,CPY2SP_EX8
+ CP 0
+ JP NZ,CPY2SP_CP8
+ LD A,' '
+ LD (HL),A
+ INC HL
+ LD A,0
+ LD (HL),A
+ DEC HL
+ JP CPY2SP_EX8
+CPY2SP_CP8: LD (DE),A
+ INC DE
+ INC HL
+ DEC B
+ JP NZ,CPY2SP_LP8
+CPY2SP_EX8: RET
+
+ ENDIF ; BUILD_ROMDISK+BUILD_PICOZ80
+
+ ;-------------------------------------------------------------------------------
+ ; END OF METHODS
+ ;-------------------------------------------------------------------------------
+
+ ; RomDisk - Pad to EFFF boundary.
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+ ALIGN 0EFF8h
+ ORG 0EFF8h
+ DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
+ ENDIF
+ ; SFD700 - Pad to 10000H
+ IF BUILD_SFD700 = 1
+ ALIGN 10000H
+ ENDIF
diff --git a/asm/rfs_bank9.asm b/asm/rfs_bank9.asm
new file mode 100644
index 0000000..3f66a90
--- /dev/null
+++ b/asm/rfs_bank9.asm
@@ -0,0 +1,862 @@
+;--------------------------------------------------------------------------------------------------------
+;-
+;- Name: rfs_bank9.asm
+;- Created: July 2019
+;- Author(s): Philip Smart
+;- Description: Sharp MZ series Rom Filing System.
+;- This assembly language program is written to utilise the banked flashroms added with
+;- the MZ-80A RFS hardware upgrade.
+;-
+;- Credits:
+;- Copyright: (c) 2018-2026 Philip Smart
+;-
+;- History: July 2019 - Merged 2 utilities to create this compilation.
+;- May 2020 - Bank switch changes with release of v2 pcb with coded latch. The coded
+;- latch adds additional instruction overhead as the control latches share
+;- the same address space as the Flash RAMS thus the extra hardware to
+;- only enable the control registers if a fixed number of reads is made
+;- into the upper 8 bytes which normally wouldnt occur. Caveat - ensure
+;- that no loop instruction is ever placed into EFF8H - EFFFH.
+;- Aug 2023 - Updates to make RFS run under the SFD700 Floppy Disk Interface board.
+;- UROM remains the same, a 2K paged ROM, MROM is located at F000 when
+;- RFS is built for the SFD700.
+;- Mar 2026 - Moved ROM directory, find, load and print functions from bank 0 for
+;- picoZ80/RomDisk builds to free space in bank 0.
+;-
+;--------------------------------------------------------------------------------------------------------
+;- This source file is free software: you can redistribute it and-or modify
+;- it under the terms of the GNU General Public License as published
+;- by the Free Software Foundation, either version 3 of the License, or
+;- (at your option) any later version.
+;-
+;- This source file is distributed in the hope that it will be useful,
+;- but WITHOUT ANY WARRANTY; without even the implied warranty of
+;- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;- GNU General Public License for more details.
+;-
+;- You should have received a copy of the GNU General Public License
+;- along with this program. If not, see .
+;--------------------------------------------------------------------------------------------------------
+
+ ;===========================================================
+ ;
+ ; USER ROM BANK 9 -
+ ;
+ ;===========================================================
+ ORG UROMADDR
+
+ ;--------------------------------
+ ; Common code spanning all banks.
+ ;--------------------------------
+ NOP
+ HWSELROM2 ; Select the first ROM page.
+ ;
+ ; No mans land... this should have switched to Bank 0 and at this point there is a jump to 00000H.
+ JP 00000H ; This is for safety!!
+
+
+ ;------------------------------------------------------------------------------------------
+ ; Bank switching code, allows a call to code in another bank.
+ ; This code is duplicated in each bank such that a bank switch doesnt affect logic flow.
+ ;------------------------------------------------------------------------------------------
+ ALIGN_NOPS UROMBSTBL
+ ;
+BKSW9to0: PUSH AF
+ LD A, ROMBANK9 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK0 ; Required bank to call.
+ JR BKSW9_0
+BKSW9to1: PUSH AF
+ LD A, ROMBANK9 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK1 ; Required bank to call.
+ JR BKSW9_0
+BKSW9to2: PUSH AF
+ LD A, ROMBANK9 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK2 ; Required bank to call.
+ JR BKSW9_0
+BKSW9to3: PUSH AF
+ LD A, ROMBANK9 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK3 ; Required bank to call.
+ JR BKSW9_0
+BKSW9to4: PUSH AF
+ LD A, ROMBANK9 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK4 ; Required bank to call.
+ JR BKSW9_0
+BKSW9to5: PUSH AF
+ LD A, ROMBANK9 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK5 ; Required bank to call.
+ JR BKSW9_0
+BKSW9to6: PUSH AF
+ LD A, ROMBANK9 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK6 ; Required bank to call.
+ JR BKSW9_0
+BKSW9to7: PUSH AF
+ LD A, ROMBANK9 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK7 ; Required bank to call.
+ JR BKSW9_0
+BKSW9to8: PUSH AF
+ LD A, ROMBANK9 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK8 ; Required bank to call.
+ JR BKSW9_0
+BKSW9to9: PUSH AF
+ LD A, ROMBANK9 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK9 ; Required bank to call.
+ JR BKSW9_0
+BKSW9to10: PUSH AF
+ LD A, ROMBANK9 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK10 ; Required bank to call.
+ JR BKSW9_0
+BKSW9to11: PUSH AF
+ LD A, ROMBANK9 ; Calling bank (ie. us).
+ PUSH AF
+ LD A, ROMBANK11 ; Required bank to call.
+ ;
+BKSW9_0: PUSH HL ; Place function to call on stack
+ LD HL, BKSWRET8 ; Place bank switchers return address on stack.
+ EX (SP),HL
+ LD (TMPSTACKP),SP ; Save the stack pointer as some old code corrupts it.
+ BNKSWSEL
+ JP (HL) ; Jump to required function.
+BKSWRET9: POP AF ; Get bank which called us.
+ BNKSWSELRET
+ POP AF
+ RET
+
+ ;-------------------------------------------------------------------------------
+ ; START OF METHODS
+ ;-------------------------------------------------------------------------------
+
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+
+ ;------------------------------------------------------------------------------------------
+ ; Jump table for functions accessed from monitor ROM.
+ ; PRTMZF and PRTDBG are at fixed offsets from UROMADDR (0xA0 and 0xA3).
+ ;------------------------------------------------------------------------------------------
+ ALIGN_NOPS RFSJMPTABLE
+ ORG RFSJMPTABLE
+PRTMZF9: JP _PRTMZF9
+PRTDBG9: JP _PRTDBG9
+
+
+ ;------------------------------------------------------------------------------------------
+ ; Function: ISMZF9
+ ; Description: Check if the data pointed to by HL looks like a valid MZF header.
+ ; On return Z flag set = valid MZF, NZ = not valid.
+ ;------------------------------------------------------------------------------------------
+ISMZF9: PUSH BC
+ PUSH DE
+ PUSH HL
+ ;
+ LD A,(HL)
+ CP OBJCD ; Only interested in machine code images.
+ JR NZ, ISMZFNOT9
+ ;
+ INC HL
+ LD DE,NAME ; Checks to confirm this is an MZF header.
+ LD B,FNSIZE ; Maximum of 17 characters, including terminator in filename.
+ISMZFNXT9: LD A,(HL)
+ LD (DE),A
+ CP 00DH ; If we find a terminator then this indicates potentially a valid name.
+ JR Z, ISMZFNXT39
+ CP 000H ; Same applies for NULL terminator.
+ JR Z, ISMZFNXT39
+ CP 020H ; >= Space
+ JR C, ISMZFNOT9
+ CP 05DH ; =< ]
+ JR C, ISMZFNXT39
+ISMZFNXT29: CP 091H
+ JR C, ISMZFNOT9 ; DEL or > 0x7F, cant be a valid filename so this is not an MZF header.
+ISMZFNXT39: INC DE
+ INC HL
+ DJNZ ISMZFNXT9
+ISMZFYES9: CP A ; Set zero flag to indicate match.
+
+ISMZFNOT9: POP HL
+ POP DE
+ POP BC
+ RET
+
+
+ ;------------------------------------------------------------------------------------------
+ ; Function: _PRTDBG9
+ ; Description: Debug output, conditional on ENADEBUG=1.
+ ;------------------------------------------------------------------------------------------
+_PRTDBG9: IF ENADEBUG = 1
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ PUSH AF
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+ LD A,(ROMBK1)
+ HWSELMROM ; Set the MROM bank back to original.
+ ENDIF
+ CALL PRTHL ; HL
+ LD A, ' '
+ CALL PRNT
+ LD H,B
+ LD L,C
+ CALL PRTHL ; BC
+ LD A, ' '
+ CALL PRNT
+ LD H,D
+ LD L,E
+ CALL PRTHL ; DE
+ LD A, ' '
+ CALL PRNT
+ POP HL ; Get AF into HL.
+ PUSH HL
+ CALL PRTHL ; AF
+ LD A, ' '
+ CALL PRNT
+ LD A, ':'
+ CALL PRNT
+ LD A, ' '
+ CALL PRNT
+ ; CALL NL
+ ; CALL GETKY
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+ LD A,(WRKROMBK1)
+ HWSELMROM ; Set the MROM bank back to scanned bank.
+ ENDIF
+ POP AF
+ POP BC
+ POP DE
+ POP HL
+ RET
+ ENDIF
+
+
+ ;------------------------------------------------------------------------------------------
+ ; Function: _PRTMZF9
+ ; Description: Print MZF directory entry with pagination.
+ ; D = file sequence number.
+ ; On return NZ = user pressed X to exit listing.
+ ;------------------------------------------------------------------------------------------
+_PRTMZF9: PUSH BC
+ PUSH DE
+ PUSH HL
+ ;
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+ LD A,(ROMBK1) ; Ensure main MROM is switched in.
+ HWSELMROM
+ ENDIF
+ ;
+ LD A,(SCRNMODE)
+ CP 0
+ LD H,47
+ JR Z,PRTMZF09
+ LD H,93
+PRTMZF09: LD A,(TMPLINECNT) ; Pause if we fill the screen.
+ LD E,A
+ INC E
+ CP H
+ JR NZ,PRTNOPAUSE9
+ LD E, 0
+PRTPAUSE9: CALL GETKY
+ CP ' '
+ JR Z,PRTNOPAUSE9
+ CP 'X' ; Exit from listing.
+ LD A,001H
+ JR Z,PRTMZF49
+ JR PRTPAUSE9
+PRTNOPAUSE9:LD A,E
+ LD (TMPLINECNT),A
+ ;
+ LD A, D ; Print out file number and increment.
+ CALL PRTHX
+ LD A, '.' ; File type is MACHINE CODE program.
+ CALL PRNT
+ LD DE,NAME ; Print out filename.
+ LD B,FNSIZE ; Maximum size of filename.
+_PRTMSG9: LD A,(DE)
+ INC DE
+ CP 000H
+ JR Z,_PRTMSGE9
+ CP 00DH
+ JR Z,_PRTMSGE9
+ CALL PRNT
+ DJNZ _PRTMSG9
+ ;
+_PRTMSGE9: LD HL, (DSPXY)
+ ;
+ LD A,L
+ CP 20
+ LD A,20
+ JR C, PRTMZF29
+ ;
+ LD A,(SCRNMODE) ; 40 Char mode? 2 columns of filenames displayed so NL.
+ CP 0
+ JR Z,PRTMZF19
+ ;
+ LD A,L ; 80 Char mode we print 4 columns of filenames.
+ CP 40
+ LD A,40
+ JR C, PRTMZF29
+ ;
+ LD A,L
+ CP 60
+ LD A,60
+ JR C, PRTMZF29
+ ;
+PRTMZF19: CALL NL
+ JR PRTMZF39
+PRTMZF29: LD L,A
+ LD (DSPXY),HL
+PRTMZF39: XOR A
+PRTMZF49: OR A
+ PUSH AF
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+ LD A, (WRKROMBK1)
+ HWSELMROM
+ ENDIF
+ POP AF
+ POP HL
+ POP DE
+ POP BC
+ RET
+
+
+ ;------------------------------------------------------------------------------------------
+ ; Function: DIRROM9
+ ; Description: ROM directory listing command.
+ ;------------------------------------------------------------------------------------------
+DIRROM9: ;DI ; Disable interrupts as we are switching out the main rom.
+ ;
+ LD A,1 ; Account for the title.
+ LD (TMPLINECNT),A
+ ;
+ LD DE,MSGRDIRLST ; Print out header.
+ LD HL,PRINTMSG
+ CALL BKSW9to6
+
+ ; D = File sequence number.
+ LD D,0 ; File numbering start.
+
+ ;
+ ; Get directory of User ROM (RomDisk).
+ ;
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+ ; Set ROMBK2 to bank 9 so MROM code (_DIRMROM, _PRTMZF) restores
+ ; UROM to this bank on exit. Our return addresses are in bank 9.
+ LD A,ROMBANK9
+ LD (ROMBK2),A
+ ;
+ LD A,ROMBANK3
+ LD (WRKROMBK1),A
+ HWSELMROM
+ CALL DIRMROM
+ ;
+ ; Restore ROMBK2 to default.
+ LD A,ROMBANK0
+ LD (ROMBK2),A
+ ENDIF
+ ;
+ ; Scan MROM Banks (16..127) for application files stored in spare banks.
+ ;
+ LD B,MROMPAGES ; First set of pages are reserved in MROM bank.
+ LD C,0 ; Block in page.
+ ;
+DIRNXTPG9: LD A,B
+ LD (WRKROMBK1), A
+ HWSELMROM ; Select bank.
+
+ PUSH BC ; Preserve bank count/block number.
+ PUSH DE ; Preserve file numbering.
+ LD A,C
+ IF RFSSECTSZ >= 512
+ RLCA
+ ENDIF
+ IF RFSSECTSZ >= 1024
+ RLCA
+ ENDIF
+ LD B,A
+ LD C,0
+ LD HL,MROMSTART ; Add block offset to get the valid block address.
+ ADD HL,BC
+ CALL ISMZF9
+ POP DE
+ POP BC
+ JR NZ, DIRNOTMZF9
+ ;
+ CALL PRTMZF9
+ JR NZ,DIRNXTPGX9
+ INC D ; Next file sequence number.
+ ;
+DIRNOTMZF9: INC C ; Next block.
+ LD A,C
+ CP MROMSIZE/RFSSECTSZ ; Max blocks per page reached?
+ JR C, DIRNXTPG29
+ LD C,0
+ INC B
+DIRNXTPG29: LD A,B
+ CP 080h ; MROM has 128 banks of 4K, so stop when we reach 128.
+ JR NZ, DIRNXTPG9
+
+DIRNXTPGX9: LD A,(ROMBK1)
+ HWSELMROM ; Set the MROM bank back to original.
+ ;EI ; No need to block interrupts now as MROM bank restored.
+ RET ; End of scan, return to monitor
+
+
+ ;------------------------------------------------------------------------------------------
+ ; Function: FINDMZF9
+ ; Description: Find a file in the ROM banks by name or file number.
+ ; HL = pointer to filename or file number string.
+ ; D = file sequence number start.
+ ; On return Z = found, NZ = not found.
+ ; B = bank, C = block where file resides.
+ ;------------------------------------------------------------------------------------------
+FINDMZF9: PUSH DE
+ LD (TMPADR), HL ; Save name of program to load.
+ EX DE, HL ; String needed in DE for conversion.
+ LD HL,0FFFFh ; Tag the filenumber as invalid.
+ LD (TMPCNT), HL
+ CALL ConvertStringToNumber9 ; See if a file number was given instead of a filename.
+ JR NZ, FINDMZF09 ;
+ LD (TMPCNT), HL ; Store filenumber making load by filenumber valid.
+ ;
+ ; Scan MROM Bank
+ ; B = Bank Page
+ ; C = Block in page
+ ;
+FINDMZF09: POP DE ; Get file sequence number in D.
+ LD B,MROMPAGES ; First set of pages are reserved in User ROM bank.
+ LD C,0 ; Block in page.
+FINDMZF19: LD A,B
+ LD (WRKROMBK1), A
+ HWSELMROM ; Select bank.
+FINDMZF29: PUSH BC ; Preserve bank count/block number.
+ PUSH DE ; Preserve file numbering.
+ LD HL,MROMSTART ; Add block offset to get the valid block.
+ LD A,C
+ IF RFSSECTSZ >= 512
+ RLCA
+ ENDIF
+ IF RFSSECTSZ >= 1024
+ RLCA
+ ENDIF
+ LD B,A
+ LD C,0
+ ADD HL,BC
+
+ CALL ISMZF9
+ POP DE
+ POP BC
+ LD A,(ROMBK1)
+ HWSELMROM ; Set the MROM bank back to original.
+ JR NZ, FINDMZF49 ; Z set if we found an MZF record.
+ INC HL ; Save address of filename.
+ PUSH HL
+ ; CALL PRTMZF9 ; Print out for confirmation.
+ LD HL,(TMPCNT)
+ LD A,H
+ CP 0FFh ; If TMPCNT tagged as 0xFF then we dont have a filenumber so must match filename.
+ JR Z, FINDMZF39
+ LD A,L ; Check file number, load if match
+ CP D
+ JR NZ, FINDMZF39 ; Check name just in case.
+ POP HL
+ JR FINDMZFYES9 ; Else the filenumber matches so load the file.
+
+FINDMZF39: POP HL
+ PUSH DE
+ PUSH BC
+ LD DE,(TMPADR) ; Original DE put onto stack, original filename into HL
+ LD BC,FNSIZE
+ LD A,(WRKROMBK1)
+ HWSELMROM ; Select correct bank for comparison.
+ CALL CMPSTRING9
+ POP BC
+ POP DE
+ JR Z, FINDMZFYES9
+ INC D ; Next file sequence number.
+FINDMZF49: INC C
+ LD A,C
+ CP MROMSIZE/RFSSECTSZ ; Max blocks per page reached?
+ JR C, FINDMZF59
+ LD C,0
+ INC B
+FINDMZF59: LD A,B
+ CP 080h ; MROM has 128 banks of 4K, so stop when we get to 128.
+ JR NZ, FINDMZF19
+ INC B
+ JR FINDMZFNO9
+
+FINDMZFYES9: ; Flag set by previous test.
+FINDMZFNO9: PUSH AF
+ LD A,(ROMBK1)
+ HWSELMROM ; Set the MROM bank back to original.
+ POP AF
+ RET
+
+
+ ;------------------------------------------------------------------------------------------
+ ; Function: LOADROMNX9 / LOADROM9
+ ; Description: Load a program from ROM banks.
+ ; LOADROMNX9 = load without auto-execute.
+ ; LOADROM9 = load with auto-execute.
+ ; DE = pointer to filename.
+ ;------------------------------------------------------------------------------------------
+LOADROMNX9: LD L,0FFH
+ JR LOADROM19
+LOADROM9: LD L,000H
+LOADROM19: ;DI
+ PUSH HL ; Preserve execute flag.
+ EX DE,HL ; User ROM expects HL to have the filename pointer.
+
+ ; D = File sequence number.
+ LD D,0 ; File numbering start.
+ ;
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+ ; Set ROMBK2 to bank 9 so MROM code restores UROM to this bank on exit.
+ LD A,ROMBANK9
+ LD (ROMBK2),A
+ ;
+ PUSH HL ; Save pointer to filename for FINDMZF in Monitor ROM.
+ LD A,ROMBANK3 ; Activate the RFS Utilities MROM bank.
+ LD (WRKROMBK1), A
+ HWSELMROM
+ CALL MFINDMZF ; Try and find the file in User ROM via MROM utility.
+ POP HL
+ JR Z,MROMLOAD09
+ ;
+ ; Not found via MROM — restore ROMBK2 to default before trying FINDMZF9.
+ LD A,ROMBANK0
+ LD (ROMBK2),A
+ ENDIF
+ ;
+ CALL FINDMZF9 ; Find the bank and block where the file resides. HL = filename.
+ JR Z, LROMLOAD9
+ ;
+ JR LROMNTFND9 ; Requested file not found.
+ ;
+MROMLOAD09: PUSH BC ; Preserve bank and block where MZF file found.
+ PUSH AF ; Preserve 7:6 of A which is upper bank select.
+ LD A,(ROMBK1) ; Page in monitor so we can print a message.
+ HWSELMROM
+ LD DE,MSGLOAD+1 ; Skip initial file type identifier.
+ LD BC,NAME
+ LD HL,PRINTMSG
+ CALL BKSW9to6
+ LD A,(WRKROMBK1) ; Revert to MROM bank to load the application.
+ HWSELMROM
+ POP AF
+ POP BC
+ ;
+ CALL MROMLOAD ; Load the file from User ROM via MROM utility.
+ ; Restore ROMBK2 to default. LD does not affect flags so Z from MROMLOAD is preserved.
+ LD A,ROMBANK0
+ LD (ROMBK2),A
+ JP Z, LROMLOAD59
+
+LROMNTFND9: POP HL ; Dont need execute flag anymore so waste it.
+ LD A,(ROMBK1)
+ HWSELMROM
+ LD HL,PRINTMSG
+ LD DE,MSGNOTFND ; Not found
+ CALL BKSW9to6
+LOADROMEND9:;EI
+ RET
+
+ ;
+ ; Load program from RFS Bank 1 (MROM Bank)
+ ;
+LROMLOAD9: PUSH BC
+ ;
+ PUSH BC ; Print Loading
+ LD DE,MSGLOAD+1
+ LD BC,NAME
+ LD HL,PRINTMSG
+ CALL BKSW9to6
+ POP BC
+ ;
+ LD A,B
+ LD (WRKROMBK1),A
+ HWSELMROM
+ ;
+ LD DE, IBUFE ; Copy the header into the work area.
+ LD HL, MROMSTART ; Add block offset to get the valid block.
+ LD A,C
+ IF RFSSECTSZ >= 512
+ RLCA
+ ENDIF
+ IF RFSSECTSZ >= 1024
+ RLCA
+ ENDIF
+ LD B,A
+ LD C,0
+ ADD HL,BC
+ LD BC, MZFHDRSZ
+ LDIR
+
+ PUSH HL
+ LD DE, (DTADR)
+ LD HL, (SIZE)
+ LD BC, RFSSECTSZ - MZFHDRSZ
+ SBC HL, BC
+ JR NC, LROMLOAD49
+ LD HL, (SIZE)
+ JR LROMLOAD49
+
+ ; HL = address in active block to read.
+ ; B = Bank
+ ; C = Block
+LROMLOAD29: LD A, B
+ LD (WRKROMBK1), A
+ HWSELMROM
+
+LROMLOAD39: PUSH BC
+ LD HL, MROMSTART
+ LD A, C
+ IF RFSSECTSZ >= 512
+ RLCA
+ ENDIF
+ IF RFSSECTSZ >= 1024
+ RLCA
+ ENDIF
+ LD B, A
+ LD C, 0
+ ADD HL,BC
+ PUSH HL
+
+ LD DE, (TMPADR)
+ LD HL, (TMPSIZE)
+ LD BC, RFSSECTSZ
+ SBC HL, BC
+ JR NC, LROMLOAD49
+ LD BC, (TMPSIZE)
+ LD HL, 0
+LROMLOAD49: LD (TMPSIZE), HL ; HL contains remaining amount of bytes to load.
+ POP HL
+ ;
+ LD A, B ; Pre check to ensure BC is not zero.
+ OR C
+ JR Z, LROMLOAD89
+ LDIR
+ LD BC, (TMPSIZE)
+ LD A, B ; Post check to ensure we still have bytes
+ OR C
+ JR Z, LROMLOAD89
+ ;
+ LD (TMPADR),DE ; Address we are loading into.
+ POP BC
+LROMLOAD69: INC C
+ LD A, C
+ CP MROMSIZE/RFSSECTSZ ; Max blocks per page reached?
+ JR C, LROMLOAD79
+ LD C, 0
+ INC B
+ ;
+LROMLOAD79: LD A, B
+ CP 080h ; MROM has 128 banks of 4K, stop at 128.
+ JR Z, LROMLOAD59
+ JR LROMLOAD29
+ ;
+LROMLOAD89: POP BC
+LROMLOAD59: POP HL ; Retrieve execute flag.
+ LD A,(ROMBK1)
+ HWSELMROM ; Set the MROM bank back to original.
+ LD A,L ; Autoexecute turned off?
+ CP 0FFh
+ JP Z,LROMLOAD99 ; Go back to monitor if it has been, else execute.
+ LD HL,(EXADR)
+ ;EI ; No need to block interrupts now as MROM bank restored.
+ JP (HL) ; Execution address.
+LROMLOAD99: RET
+
+
+ ; Quick method to load CPM. So long as the filename doesnt change this method will load and boot CPM.
+LOADCPM9: LD DE,CPMFN489 ; Load up the 48K version of CPM
+LOADPRGNM9: PUSH HL
+ LD HL,BUFER
+LOADPRGNM19:LD A,(DE)
+ LD (HL),A
+ CP CR
+ JR Z,LOADPRGNM29
+ INC DE
+ INC HL
+ JR LOADPRGNM19
+LOADPRGNM29:POP HL
+ LD DE,BUFER
+ JP LOADROM9
+
+ ; Quick method to load the basic interpreter. So long as the filename doesnt change this method will load and boot Basic.
+LOADBASIC9: LD DE,BASICFILENM9
+ JR LOADPRGNM9
+
+
+ ; Quick load program names.
+CPMFN489: DB "CPM223RFS", 00DH
+BASICFILENM9:DB "BASIC SA-5510RFS", 00DH
+
+
+ ;------------------------------------------------------------------------------------------
+ ; Utility functions (local copies for bank 9, suffixed to avoid label conflicts).
+ ; These are duplicated from rfs_utilities.asm because the bank 0 copies are not
+ ; accessible when bank 9 is active.
+ ;------------------------------------------------------------------------------------------
+
+ ; Compare two strings.
+ ; HL = pointer to string 1, DE = pointer to string 2, BC = max length.
+ ; On exit: Z = match, NZ = no match.
+CMPSTRING9: PUSH HL
+ PUSH DE
+CMPSTR19: LD A, (DE)
+ CP 000h
+ JR Z, CMPSTR39
+ CP 00Dh
+ JR Z, CMPSTR39
+ CPI
+ JR NZ, CMPSTR29
+ INC DE
+ JP PE, CMPSTR19
+CMPSTR29: DEC HL
+ CP (HL)
+CMPSTR49: POP DE
+ POP HL
+ RET
+CMPSTR39: LD A, (HL)
+ CP 000h
+ JR Z, CMPSTR49
+ CP 00Dh
+ JR Z, CMPSTR49
+ SCF
+ JR CMPSTR49
+
+ ; Convert character to upper case.
+ConvertCharToUCase9:
+ CP 'a'
+ RET C
+ CP 'z'+1
+ RET NC
+ SUB 'a'-'A'
+ RET
+
+ ; Convert character to numeric value (0-15).
+ConvertCharToNumber9:
+ CALL ConvertCharToUCase9
+ CP '0'
+ JR C,@Bad9
+ CP '9'+1
+ JR C,@OK9
+ CP 'A'
+ JR C,@Bad9
+ CP 'F'+1
+ JR C,@OK9
+@Bad9: LD A,0FFh
+ OR A
+ RET
+@OK9: SUB '0'
+ CP 00Ah
+ JR C,@Fin9
+ SUB 007h
+@Fin9: CP A
+ RET
+
+ ; Is character numeric ('0'-'9')?
+IsCharNumeric9:
+ CP '0'
+ JR C,@Not9
+ CP '9'+1
+ RET C
+@Not9: OR A
+ RET
+
+ ; Convert hexadecimal or decimal string to number.
+ ; DE = pointer to string. On exit: Z+HL=number, or NZ=failure.
+ConvertStringToNumber9:
+ PUSH BC
+ LD HL,0
+ LD A,(DE)
+ CP '+'
+ JR Z,@Dec9
+ CP '$'
+ JR Z,@Hdec9
+ CP 39
+ JR Z,@Char9
+ CP '"'
+ JR Z,@Char9
+ CP '0'
+ JR NZ,@HxNx9
+ INC DE
+ LD A,(DE)
+ CALL ConvertCharToUCase9
+ CP 'X'
+ JR NZ,@HxNx9
+@Hdec9: INC DE
+@HxNx9: LD A,(DE)
+ CP ')'
+ JR Z,@Succ9
+ CP 32+1
+ JR C,@Succ9
+ CALL ConvertCharToNumber9
+ JR NZ,@Fail9
+ INC DE
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ OR L
+ LD L,A
+ JR @HxNx9
+@Dec9: INC DE
+@DcNx9: LD A,(DE)
+ CP ')'
+ JR Z,@Succ9
+ CP 32+1
+ JR C,@Succ9
+ CALL IsCharNumeric9
+ JR NC,@Fail9
+ CALL ConvertCharToNumber9
+ JR NZ,@Fail9
+ INC DE
+ PUSH DE
+ LD B,9
+ LD D,H
+ LD E,L
+@DcLp9: ADD HL,DE
+ DJNZ @DcLp9
+ POP DE
+ ADD A,L
+ LD L,A
+ JR NC,@DcNx9
+ INC H
+ JR @DcNx9
+@Char9: INC DE
+ LD A,(DE)
+ LD L,A
+ LD H,0
+@Succ9: POP BC
+ XOR A
+ RET
+@Fail9: POP BC
+ LD A,0FFh
+ OR A
+ RET
+
+ ENDIF
+
+ ;-------------------------------------------------------------------------------
+ ; END OF METHODS
+ ;-------------------------------------------------------------------------------
+
+ ; RomDisk - Pad to EFFF boundary.
+ IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+ ALIGN 0EFF8h
+ ORG 0EFF8h
+ DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
+ ENDIF
+ ; SFD700 - Pad to 10000H
+ IF BUILD_SFD700 = 1
+ ALIGN 10000H
+ ENDIF
diff --git a/asm/rfs_mrom.asm b/asm/rfs_mrom.asm
index 4d42e8c..e527d88 100644
--- a/asm/rfs_mrom.asm
+++ b/asm/rfs_mrom.asm
@@ -10,7 +10,7 @@
;- the RFS can read the User Banks and extract required programs.
;-
;- Credits:
-;- Copyright: (c) 2018-2023 Philip Smart
+;- Copyright: (c) 2018-2026 Philip Smart
;-
;- History: Sep 2019 - Initial version.
;- May 2020 - Bank switch changes with release of v2 pcb with coded latch. The coded
@@ -166,20 +166,25 @@ RFS_COMNT: EQU 00018h ; COMME
; 8-15 are reserved for CPM code in
; the User ROM bank.
;-----------------------------------------------
-MROMPAGES EQU 8
-USRROMPAGES EQU 12 ; Monitor ROM : User ROM
-ROMBANK0 EQU 0 ; MROM SA1510 40 Char : RFS Bank 0 - Main RFS Entry point and functions.
-ROMBANK1 EQU 1 ; MROM SA1510 80 Char : RFS Bank 1 - Floppy disk controller and utilities.
-ROMBANK2 EQU 2 ; CPM 2.2 CBIOS : RFS Bank 2 - SD Card controller and utilities.
-ROMBANK3 EQU 3 ; RFS Utilities : RFS Bank 3 - Cmdline tools (Memory, Printer, Help)
-ROMBANK4 EQU 4 ; Free : RFS Bank 4 - CMT Utilities.
-ROMBANK5 EQU 5 ; Free : RFS Bank 5
-ROMBANK6 EQU 6 ; Free : RFS Bank 6
-ROMBANK7 EQU 7 ; Free : RFS Bank 7 - Memory and timer test utilities.
-ROMBANK8 EQU 8 ; : CBIOS Bank 1 - Utilities
-ROMBANK9 EQU 9 ; : CBIOS Bank 2 - Screen / ANSI Terminal
-ROMBANK10 EQU 10 ; : CBIOS Bank 3 - SD Card
-ROMBANK11 EQU 11 ; : CBIOS Bank 4 - Floppy disk controller.
+MROMPAGES EQU 16
+USRROMPAGES EQU 16 ; Monitor ROM : User ROM
+
+ROMBANK0 EQU 0 ; MROM SA1510 40 Char : RFS Bank 0 - Main RFS Entry point and functions.
+ROMBANK1 EQU 1 ; MROM SA1510 80 Char : RFS Bank 1 - Floppy disk controller and utilities.
+ROMBANK2 EQU 2 ; CPM 2.2 CBIOS : RFS Bank 2 - SD Card controller and utilities.
+ROMBANK3 EQU 3 ; RFS Utilities : RFS Bank 3 - Cmdline tools (Memory, Printer, Help)
+ROMBANK4 EQU 4 ; MZ700 1Z-013A 40C : RFS Bank 4 - CMT Utilities.
+ROMBANK5 EQU 5 ; MZ700-1Z-013A 80C : RFS Bank 5
+ROMBANK6 EQU 6 ; DASM/ASM Opcode Tbl1: RFS Bank 6
+ROMBANK7 EQU 7 ; DASM/ASM Opcode Tbl2: RFS Bank 7 - Memory and timer test utilities + DASM.
+ROMBANK8 EQU 8 ; MZ80B IPL : RFS Bank 8 - Assembler.
+ROMBANK9 EQU 9 ; Free : RFS Bank 9 -
+ROMBANK10 EQU 10 ; Free : RFS Bank 10 -
+ROMBANK11 EQU 11 ; Free : RFS Bank 11 -
+ROMBANK12 EQU 12 ; Free : CBIOS Bank 1 - Utilities
+ROMBANK13 EQU 13 ; Free : CBIOS Bank 2 - Screen / ANSI Terminal
+ROMBANK14 EQU 14 ; Free : CBIOS Bank 3 - SD Card
+ROMBANK15 EQU 15 ; Free : CBIOS Bank 4 - Floppy disk controller.
; File types.
OBJCD EQU 001H ; MZF contains a binary object.
@@ -201,7 +206,7 @@ MROMJMPTBL EQU 00070H ; Fixed
;
; User ROM Jump Table definitions.
;
-RFSJMPTABLE EQU UROMADDR + 00080H ; Entry point to the bank switching table.
+RFSJMPTABLE EQU UROMADDR + 000A0H ; Entry point to the bank switching table.
PRTMZF EQU RFSJMPTABLE + 00000H ; Entry point into User ROM for the PRTMZF function.
PRTDBG EQU RFSJMPTABLE + 00003H ; Entry point into User ROM for the PRTDBG function.
;
@@ -299,6 +304,7 @@ SELUSRBNK: PUSH BC
RRA
CPL
AND 00FH ; Preserve bits 3-1, bit 0 is always 0 on the 74HCT191 latch.
+ INC A
LD B,A ; Set value to B for loop.
LD A,(BNKCTRLDIS)
SELUSRBNK1:LD A,(BNKSELUSER)
@@ -386,7 +392,7 @@ _DIRMROM: PUSH BC
;
LD B,USRROMPAGES ; First 16x2K pages are reserved in User bank.
LD A,(ROMCTL)
- AND 03FH ; Mask out the upper bank address lines so we start with Flash RAM I.
+ AND 03FH ; Mask out the upper bank address lines 7:6 so we start with Flash RAM I.
;
DIRNXTDVC: LD (ROMCTL),A
LD C,0 ; Block in page.
@@ -421,6 +427,7 @@ DIRNOTMZF: INC C
LD C,0
INC B
DIRNXTPG2: LD A,B
+ OR C ; Bank 0, Block 0 is next ROM or exit.
CP 000h ; User rom has 256 banks of 2K, so stop when we wrap round to 0.
JR NZ, DIRNXTPG
LD A,(ROMCTL)
@@ -431,7 +438,7 @@ DIRNXTPG2: LD A,B
LD (ROMCTL),A ; Switch back to primary Flash RAM I device.
LD A,(ROMBK2)
SCF ; Select the required user bank and Set carry so that the control registers remain enabled.
- CALL SELUSRBNK
+ CALL SELUSRBNK
POP BC
RET
@@ -458,12 +465,12 @@ _PRTMZF: LD A,(ROMBK2)
; D = File sequence number.
; Z set if found.
_MFINDMZF: PUSH DE
- LD (TMPADR), HL ; Save name of program to load.
+ LD (TMPADR), HL ; Save name of program to load.
EX DE, HL ; String needed in DE for conversion.
LD HL,0FFFFh ; Tag the filenumber as invalid.
LD (TMPCNT), HL
CALL ConvertStringToNumber ; See if a file number was given instead of a filename.
- JR NZ, FINDMZF0 ;
+ JR NZ, FINDMZF0 ;
LD (TMPCNT), HL ; Store filenumber making load by filenumber valid.
;
@@ -536,6 +543,7 @@ FINDMZF4: INC C
LD C,0
INC B
FINDMZF5: LD A,B
+ OR C ; Bank 0, Block 0 is next ROM or exit.
CP 000h ; User ROM has 256 banks of 2K, so stop when we wrap around to zero.
JR NZ, FINDMZF1
;
@@ -543,12 +551,13 @@ FINDMZF5: LD A,B
ADD A, 64
CP 0C0H ; If both upper address bits are set then we have come to the end.
JR C,FINDNXTDVC
+ ; ; End of search, nothing found.
AND 03FH
LD (ROMCTL),A ; Switch back to primary Flash RAM I device.
;
INC B
JR FINDMZFNO
-FINDMZFYES: ; Flag set by previous test.
+FINDMZFYES:LD A,(ROMCTL) ; Flag set by previous test.
FINDMZFNO: PUSH AF
LD A,(ROMBK2)
SCF ; Select the required user bank and Set carry so that the control registers remain enabled.
diff --git a/asm/rfs_mrom_bank6.asm b/asm/rfs_mrom_bank6.asm
new file mode 100644
index 0000000..9de044a
--- /dev/null
+++ b/asm/rfs_mrom_bank6.asm
@@ -0,0 +1,590 @@
+;--------------------------------------------------------------------------------------------------------
+;-
+;- Name: rfs_mrom_bank6.asm
+;- Created: March 2026
+;- Author(s): Philip Smart
+;- Description: Z80 Opcode table (part 1: ADC-OR) and search routines for MROM bank 6.
+;- This is used by the DASM/ASM tools in UROM banks 7 and 8 (picoZ80/RomDisk builds).
+;- The opcode table is split across MROM banks 6 and 7 because the full table (~5.5KB)
+;- exceeds a single 2K UROM bank. MROM banks are 4K each (0x0000-0x0FFF).
+;-
+;- Search routines are placed at FIXED addresses identical in both MROM banks 6 and 7
+;- so UROM code can call them regardless of which bank is selected:
+;- DSMFINDOPCD @ 0x0E80
+;- ASMFINDINST @ 0x0F10
+;- ASMFINDPARM @ 0x0F70
+;-
+;- Copyright: (c) 2018-2026 Philip Smart
+;-
+;--------------------------------------------------------------------------------------------------------
+;- This source file is free software: you can redistribute it and-or modify
+;- it under the terms of the GNU General Public License as published
+;- by the Free Software Foundation, either version 3 of the License, or
+;- (at your option) any later version.
+;-
+;- This source file is distributed in the hope that it will be useful,
+;- but WITHOUT ANY WARRANTY; without even the implied warranty of
+;- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;- GNU General Public License for more details.
+;-
+;- You should have received a copy of the GNU General Public License
+;- along with this program. If not, see .
+;--------------------------------------------------------------------------------------------------------
+
+ INCLUDE "macros.asm"
+
+;-----------------------------------------------
+; Work RAM addresses (must match rfs_bank7.asm)
+;-----------------------------------------------
+INS_BUF: EQU 0CF1BH
+PARM_BUF: EQU 0CF1FH
+BLK_ADDR: EQU 0CF2FH
+ROW_ADDR: EQU 0CF31H
+BLK_NUM: EQU 0CF33H
+BLK_SIZE: EQU 0CF34H
+ROW_NUM: EQU 0CF35H
+ML_BUF: EQU 0CF36H
+ML_BTCOUNT: EQU 0CF38H
+
+;-----------------------------------------------
+; MROM Bank 6 - Opcode Table Part 1 (ADC-OR)
+;-----------------------------------------------
+ ORG 00000H
+
+ ; Safety: if this bank is accidentally executed (e.g. after reset),
+ ; jump to address 0 after switching back to the default MROM bank.
+ ; On picoZ80 a write to 0xEFFD selects the MROM bank.
+ XOR A
+ LD (0EFFDh),A ; Select MROM bank 0 (default monitor)
+ JP 00000H ; Reset into monitor ROM
+
+ ; Pad to table start
+ ALIGN_NOPS 010H
+
+;-------------------------------------------------------------------------------
+; Z80 Assembler lookup table - PART 1 (ADC through OR)
+; FORMAT: 10 bytes per row
+; Instruction Blocks: start with # followed by 4 char instruction
+; byte 5 = #of rows for this instruction
+; Parameter Blocks: A 7 byte parameter pattern
+; Opcode byte 1, Opcode byte 2(if any otherwise zero)
+; Number of bytes used for opcodes & data parameters.
+;-------------------------------------------------------------------------------
+OPCD_TABLE:
+ DB "#ADC ", 00FH, 000H, 000H, 000H, 000H
+ DB "A,(HL) ", 08EH, 000H, 001H
+ DB "A,(IX*)", 08EH, 0DDH, 003H
+ DB "A,(IY*)", 08EH, 0FDH, 003H
+ DB "A,A ", 08FH, 000H, 001H
+ DB "A,B ", 088H, 000H, 001H
+ DB "A,C ", 089H, 000H, 001H
+ DB "A,D ", 08AH, 000H, 001H
+ DB "A,E ", 08BH, 000H, 001H
+ DB "A,H ", 08CH, 000H, 001H
+ DB "A,L ", 08DH, 000H, 001H
+ DB "A,* ", 0CEH, 000H, 002H
+ DB "HL,BC ", 04AH, 0EDH, 002H
+ DB "HL,DE ", 05AH, 0EDH, 002H
+ DB "HL,HL ", 06AH, 0EDH, 002H
+ DB "HL,SP ", 07AH, 0EDH, 002H
+ DB "#ADD ", 017H, 000H, 000H, 000H, 000H
+ DB "A,(HL) ", 086H, 000H, 001H
+ DB "A,(IX*)", 086H, 0DDH, 003H
+ DB "A,(IY*)", 086H, 0FDH, 003H
+ DB "A,A ", 087H, 000H, 001H
+ DB "A,B ", 080H, 000H, 001H
+ DB "A,C ", 081H, 000H, 001H
+ DB "A,D ", 082H, 000H, 001H
+ DB "A,E ", 083H, 000H, 001H
+ DB "A,H ", 084H, 000H, 001H
+ DB "A,L ", 085H, 000H, 001H
+ DB "A,* ", 0C6H, 000H, 002H
+ DB "HL,BC ", 009H, 000H, 001H
+ DB "HL,DE ", 019H, 000H, 001H
+ DB "HL,HL ", 029H, 000H, 001H
+ DB "HL,SP ", 039H, 000H, 001H
+ DB "IX,BC ", 009H, 0DDH, 002H
+ DB "IX,DE ", 019H, 0DDH, 002H
+ DB "IX,IX ", 029H, 0DDH, 002H
+ DB "IX,SP ", 039H, 0DDH, 002H
+ DB "IY,BC ", 009H, 0FDH, 002H
+ DB "IY,DE ", 019H, 0FDH, 002H
+ DB "IY,IY ", 029H, 0FDH, 002H
+ DB "IY,SP ", 039H, 0FDH, 002H
+ DB "#AND ", 00BH, 000H, 000H, 000H, 000H
+ DB "(HL) ", 0A6H, 000H, 001H
+ DB "(IX*) ", 0A6H, 0DDH, 003H
+ DB "(IY*) ", 0A6H, 0FDH, 003H
+ DB "A ", 0A7H, 000H, 001H
+ DB "B ", 0A0H, 000H, 001H
+ DB "C ", 0A1H, 000H, 001H
+ DB "D ", 0A2H, 000H, 001H
+ DB "E ", 0A3H, 000H, 001H
+ DB "H ", 0A4H, 000H, 001H
+ DB "L ", 0A5H, 000H, 001H
+ DB "* ", 0E6H, 000H, 002H
+ DB "#BIT ", 008H, 000H, 000H, 000H, 000H
+ DB "*,(HL) ", 046H, 0CBH, 002H
+ DB "*,A ", 047H, 0CBH, 002H
+ DB "*,B ", 040H, 0CBH, 002H
+ DB "*,C ", 041H, 0CBH, 002H
+ DB "*,D ", 042H, 0CBH, 002H
+ DB "*,E ", 043H, 0CBH, 002H
+ DB "*,H ", 044H, 0CBH, 002H
+ DB "*,L ", 045H, 0CBH, 002H
+ DB "#CALL", 009H, 000H, 000H, 000H, 000H
+ DB "C,* ", 0DCH, 000H, 003H
+ DB "M,* ", 0FCH, 000H, 003H
+ DB "NC,* ", 0D4H, 000H, 003H
+ DB "NZ,* ", 0C4H, 000H, 003H
+ DB "P,* ", 0F4H, 000H, 003H
+ DB "PE,* ", 0ECH, 000H, 003H
+ DB "PO,* ", 0E4H, 000H, 003H
+ DB "Z,* ", 0CCH, 000H, 003H
+ DB "* ", 0CDH, 000H, 003H
+ DB "#CCF ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 03FH, 000H, 001H
+ DB "#CP ", 00BH, 000H, 000H, 000H, 000H
+ DB "(HL) ", 0BEH, 000H, 001H
+ DB "(IX*) ", 0BEH, 0DDH, 003H
+ DB "(IY*) ", 0BEH, 0FDH, 003H
+ DB "A ", 0BFH, 000H, 001H
+ DB "B ", 0B8H, 000H, 001H
+ DB "C ", 0B9H, 000H, 001H
+ DB "D ", 0BAH, 000H, 001H
+ DB "E ", 0BBH, 000H, 001H
+ DB "H ", 0BCH, 000H, 001H
+ DB "L ", 0BDH, 000H, 001H
+ DB "* ", 0FEH, 000H, 002H
+ DB "#CPD ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0A9H, 0EDH, 002H
+ DB "#CPDR", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0B9H, 0EDH, 002H
+ DB "#CPIR", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0B1H, 0EDH, 002H
+ DB "#CPI ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0A1H, 0EDH, 002H
+ DB "#CPL ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 02FH, 000H, 001H
+ DB "#DAA ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 027H, 000H, 001H
+ DB "#DEC ", 010H, 000H, 000H, 000H, 000H
+ DB "(HL) ", 035H, 000H, 001H
+ DB "(IX*) ", 035H, 0DDH, 003H
+ DB "(IY*) ", 035H, 0FDH, 003H
+ DB "A ", 03DH, 000H, 001H
+ DB "B ", 005H, 000H, 001H
+ DB "BC ", 00BH, 000H, 001H
+ DB "C ", 00DH, 000H, 001H
+ DB "D ", 015H, 000H, 001H
+ DB "DE ", 01BH, 000H, 001H
+ DB "E ", 01DH, 000H, 001H
+ DB "H ", 025H, 000H, 001H
+ DB "HL ", 02BH, 000H, 001H
+ DB "IX ", 02BH, 0DDH, 002H
+ DB "IY ", 02BH, 0FDH, 002H
+ DB "L ", 02DH, 000H, 001H
+ DB "SP ", 03BH, 000H, 001H
+ DB "#DI ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0F3H, 000H, 001H
+ DB "#DJNZ", 001H, 000H, 000H, 000H, 000H
+ DB "* ", 010H, 000H, 002H
+ DB "#EI ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0FBH, 000H, 001H
+ DB "#EX ", 005H, 000H, 000H, 000H, 000H
+ DB "(SP),HL", 0E3H, 000H, 001H
+ DB "(SP),IX", 0E3H, 0DDH, 002H
+ DB "(SP),IY", 0E3H, 0FDH, 002H
+ DB "AF,AF", 02CH, 020H, 008H, 000H, 001H
+ DB "DE,HL ", 0EBH, 000H, 001H
+ DB "#EXX ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0D9H, 000H, 001H
+ DB "#HALT", 001H, 000H, 000H, 000H, 000H
+ DB " ", 076H, 000H, 001H
+ DB "#IM ", 003H, 000H, 000H, 000H, 000H
+ DB "0 ", 046H, 0EDH, 002H
+ DB "1 ", 056H, 0EDH, 002H
+ DB "2 ", 05EH, 0EDH, 002H
+ DB "#IN ", 008H, 000H, 000H, 000H, 000H
+ DB "A,(C) ", 078H, 0EDH, 002H
+ DB "B,(C) ", 040H, 0EDH, 002H
+ DB "C,(C) ", 048H, 0EDH, 002H
+ DB "D,(C) ", 050H, 0EDH, 002H
+ DB "E,(C) ", 058H, 0EDH, 002H
+ DB "H,(C) ", 060H, 0EDH, 002H
+ DB "L,(C) ", 068H, 0EDH, 002H
+ DB "A,(*) ", 0DBH, 000H, 002H
+ DB "#IN0 ", 007H, 000H, 000H, 000H, 000H
+ DB " A,(*) ", 038H, 0EDH, 003H
+ DB " B,(*) ", 000H, 0EDH, 003H
+ DB " C,(*) ", 008H, 0EDH, 003H
+ DB " D,(*) ", 010H, 0EDH, 003H
+ DB " E,(*) ", 018H, 0EDH, 003H
+ DB " H,(*) ", 020H, 0EDH, 003H
+ DB " L,(*) ", 028H, 0EDH, 003H
+ DB "#INC ", 010H, 000H, 000H, 000H, 000H
+ DB "(HL) ", 034H, 000H, 001H
+ DB "(IX*) ", 034H, 0DDH, 003H
+ DB "(IY*) ", 034H, 0FDH, 003H
+ DB "A ", 03CH, 000H, 001H
+ DB "B ", 004H, 000H, 001H
+ DB "BC ", 003H, 000H, 001H
+ DB "C ", 00CH, 000H, 001H
+ DB "D ", 014H, 000H, 001H
+ DB "DE ", 013H, 000H, 001H
+ DB "E ", 01CH, 000H, 001H
+ DB "H ", 024H, 000H, 001H
+ DB "HL ", 023H, 000H, 001H
+ DB "IX ", 023H, 0DDH, 002H
+ DB "IY ", 023H, 0FDH, 002H
+ DB "L ", 02CH, 000H, 001H
+ DB "SP ", 033H, 000H, 001H
+ DB "#IND ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0AAH, 0EDH, 002H
+ DB "#INDR", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0BAH, 0EDH, 002H
+ DB "#INI ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0A2H, 0EDH, 002H
+ DB "#INIR", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0B2H, 0EDH, 002H
+ DB "#JP ", 00CH, 000H, 000H, 000H, 000H
+ DB "(HL) ", 0E9H, 000H, 001H
+ DB "(IX) ", 0E9H, 0DDH, 002H
+ DB "(IY) ", 0E9H, 0FDH, 002H
+ DB "C,* ", 0DAH, 000H, 003H
+ DB "M,* ", 0FAH, 000H, 003H
+ DB "NC,* ", 0D2H, 000H, 003H
+ DB "NZ,* ", 0C2H, 000H, 003H
+ DB "P,* ", 0F2H, 000H, 003H
+ DB "PE,* ", 0EAH, 000H, 003H
+ DB "PO,* ", 0E2H, 000H, 003H
+ DB "Z,* ", 0CAH, 000H, 003H
+ DB "* ", 0C3H, 000H, 003H
+ DB "#JR ", 005H, 000H, 000H, 000H, 000H
+ DB "C,* ", 038H, 000H, 002H
+ DB "NC,* ", 030H, 000H, 002H
+ DB "NZ,* ", 020H, 000H, 002H
+ DB "Z,* ", 028H, 000H, 002H
+ DB "* ", 018H, 000H, 002H
+ DB "#LD ", 084H, 000H, 000H, 000H, 000H
+ DB "(BC),A ", 002H, 000H, 001H
+ DB "(DE),A ", 012H, 000H, 001H
+ DB "(HL),A ", 077H, 000H, 001H
+ DB "(HL),B ", 070H, 000H, 001H
+ DB "(HL),C ", 071H, 000H, 001H
+ DB "(HL),D ", 072H, 000H, 001H
+ DB "(HL),E ", 073H, 000H, 001H
+ DB "(HL),H ", 074H, 000H, 001H
+ DB "(HL),L ", 075H, 000H, 001H
+ DB "(HL),* ", 036H, 000H, 002H
+ DB "(IX*),A", 077H, 0DDH, 003H
+ DB "(IX*),B", 070H, 0DDH, 003H
+ DB "(IX*),C", 071H, 0DDH, 003H
+ DB "(IX*),D", 072H, 0DDH, 003H
+ DB "(IX*),E", 073H, 0DDH, 003H
+ DB "(IX*),H", 074H, 0DDH, 003H
+ DB "(IX*),L", 075H, 0DDH, 003H
+ DB "(IX*),*", 036H, 0DDH, 004H
+ DB "(IY*),A", 077H, 0FDH, 003H
+ DB "(IY*),B", 070H, 0FDH, 003H
+ DB "(IY*),C", 071H, 0FDH, 003H
+ DB "(IY*),D", 072H, 0FDH, 003H
+ DB "(IY*),E", 073H, 0FDH, 003H
+ DB "(IY*),H", 074H, 0FDH, 003H
+ DB "(IY*),L", 075H, 0FDH, 003H
+ DB "(IY*),*", 036H, 0FDH, 004H
+ DB "(*),A ", 032H, 000H, 003H
+ DB "(*),BC ", 043H, 0EDH, 004H
+ DB "(*),DE ", 053H, 0EDH, 004H
+ DB "(*),HL ", 022H, 000H, 003H
+ DB "(*),IX ", 022H, 0DDH, 004H
+ DB "(*),IY ", 022H, 0FDH, 004H
+ DB "(*),SP ", 073H, 0EDH, 004H
+ DB "A,(BC) ", 00AH, 000H, 001H
+ DB "A,(DE) ", 01AH, 000H, 001H
+ DB "A,(HL) ", 07EH, 000H, 001H
+ DB "A,(IX*)", 07EH, 0DDH, 003H
+ DB "A,(IY*)", 07EH, 0FDH, 003H
+ DB "A,A ", 07FH, 000H, 001H
+ DB "A,B ", 078H, 000H, 001H
+ DB "A,C ", 079H, 000H, 001H
+ DB "A,D ", 07AH, 000H, 001H
+ DB "A,E ", 07BH, 000H, 001H
+ DB "A,H ", 07CH, 000H, 001H
+ DB "A,I ", 057H, 0EDH, 002H
+ DB "A,L ", 07DH, 000H, 001H
+ DB "A,R ", 05FH, 0EDH, 002H
+ DB "A,(*) ", 03AH, 000H, 003H
+ DB "A,* ", 03EH, 000H, 002H
+ DB "B,(HL) ", 046H, 000H, 001H
+ DB "B,(IX*)", 046H, 0DDH, 003H
+ DB "B,(IY*)", 046H, 0FDH, 003H
+ DB "B,A ", 047H, 000H, 001H
+ DB "B,B ", 040H, 000H, 001H
+ DB "B,C ", 041H, 000H, 001H
+ DB "B,D ", 042H, 000H, 001H
+ DB "B,E ", 043H, 000H, 001H
+ DB "B,H ", 044H, 000H, 001H
+ DB "B,L ", 045H, 000H, 001H
+ DB "B,* ", 006H, 000H, 002H
+ DB "BC,(*) ", 04BH, 0EDH, 004H
+ DB "BC,* ", 001H, 000H, 003H
+ DB "C,(HL) ", 04EH, 000H, 001H
+ DB "C,(IX*)", 04EH, 0DDH, 003H
+ DB "C,(IY*)", 04EH, 0FDH, 003H
+ DB "C,A ", 04FH, 000H, 001H
+ DB "C,B ", 048H, 000H, 001H
+ DB "C,C ", 049H, 000H, 001H
+ DB "C,D ", 04AH, 000H, 001H
+ DB "C,E ", 04BH, 000H, 001H
+ DB "C,H ", 04CH, 000H, 001H
+ DB "C,L ", 04DH, 000H, 001H
+ DB "C,* ", 00EH, 000H, 002H
+ DB "D,(HL) ", 056H, 000H, 001H
+ DB "D,(IX*)", 056H, 0DDH, 003H
+ DB "D,(IY*)", 056H, 0FDH, 003H
+ DB "D,A ", 057H, 000H, 001H
+ DB "D,B ", 050H, 000H, 001H
+ DB "D,C ", 051H, 000H, 001H
+ DB "D,D ", 052H, 000H, 001H
+ DB "D,E ", 053H, 000H, 001H
+ DB "D,H ", 054H, 000H, 001H
+ DB "D,L ", 055H, 000H, 001H
+ DB "D,* ", 016H, 000H, 002H
+ DB "DE,(*) ", 05BH, 0EDH, 004H
+ DB "DE,* ", 011H, 000H, 003H
+ DB "E,(HL) ", 05EH, 000H, 001H
+ DB "E,(IX*)", 05EH, 0DDH, 003H
+ DB "E,(IY*)", 05EH, 0FDH, 003H
+ DB "E,A ", 05FH, 000H, 001H
+ DB "E,B ", 058H, 000H, 001H
+ DB "E,C ", 059H, 000H, 001H
+ DB "E,D ", 05AH, 000H, 001H
+ DB "E,E ", 05BH, 000H, 001H
+ DB "E,H ", 05CH, 000H, 001H
+ DB "E,L ", 05DH, 000H, 001H
+ DB "E,* ", 01EH, 000H, 002H
+ DB "H,(HL) ", 066H, 000H, 001H
+ DB "H,(IX*)", 066H, 0DDH, 003H
+ DB "H,(IY*)", 066H, 0FDH, 003H
+ DB "H,A ", 067H, 000H, 001H
+ DB "H,B ", 060H, 000H, 001H
+ DB "H,C ", 061H, 000H, 001H
+ DB "H,D ", 062H, 000H, 001H
+ DB "H,E ", 063H, 000H, 001H
+ DB "H,H ", 064H, 000H, 001H
+ DB "H,L ", 065H, 000H, 001H
+ DB "H,* ", 026H, 000H, 002H
+ DB "HL,(*) ", 02AH, 000H, 003H
+ DB "HL,* ", 021H, 000H, 003H
+ DB "I,A ", 047H, 0EDH, 002H
+ DB "IX,(*) ", 02AH, 0DDH, 004H
+ DB "IX,* ", 021H, 0DDH, 004H
+ DB "IY,(*) ", 02AH, 0FDH, 004H
+ DB "IY,* ", 021H, 0FDH, 004H
+ DB "L,(HL) ", 06EH, 000H, 001H
+ DB "L,(IX*)", 06EH, 0DDH, 003H
+ DB "L,(IY*)", 06EH, 0FDH, 003H
+ DB "L,A ", 06FH, 000H, 001H
+ DB "L,B ", 068H, 000H, 001H
+ DB "L,C ", 069H, 000H, 001H
+ DB "L,D ", 06AH, 000H, 001H
+ DB "L,E ", 06BH, 000H, 001H
+ DB "L,H ", 06CH, 000H, 001H
+ DB "L,L ", 06DH, 000H, 001H
+ DB "L,* ", 02EH, 000H, 002H
+ DB "R,A ", 04FH, 0EDH, 002H
+ DB "SP,(*) ", 07BH, 0EDH, 004H
+ DB "SP,HL ", 0F9H, 000H, 001H
+ DB "SP,IX ", 0F9H, 0DDH, 002H
+ DB "SP,IY ", 0F9H, 0FDH, 002H
+ DB "SP,* ", 031H, 000H, 003H
+ DB "#LDD ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0A8H, 0EDH, 002H
+ DB "#LDDR", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0B8H, 0EDH, 002H
+ DB "#LDI ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0A0H, 0EDH, 002H
+ DB "#LDIR", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0B0H, 0EDH, 002H
+ DB "#NEG ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 044H, 0EDH, 002H
+ DB "#NOP ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 000H, 000H, 001H
+ DB "#OR ", 00BH, 000H, 000H, 000H, 000H
+ DB "(HL) ", 0B6H, 000H, 001H
+ DB "(IX*) ", 0B6H, 0DDH, 003H
+ DB "(IY*) ", 0B6H, 0FDH, 003H
+ DB "A ", 0B7H, 000H, 001H
+ DB "B ", 0B0H, 000H, 001H
+ DB "C ", 0B1H, 000H, 001H
+ DB "D ", 0B2H, 000H, 001H
+ DB "E ", 0B3H, 000H, 001H
+ DB "H ", 0B4H, 000H, 001H
+ DB "L ", 0B5H, 000H, 001H
+ DB "* ", 0F6H, 000H, 002H
+ ; End sentinel for this partial table
+ DB "#END ", 000H, 000H, 000H, 000H, 000H
+
+;-------------------------------------------------------------------------------
+; Search routines at fixed addresses (same in both MROM banks 6 and 7)
+;-------------------------------------------------------------------------------
+
+ ; Pad to DSMFINDOPCD address
+ PAD 0E80H
+
+ ;******************************************************************
+ ; DSMFINDOPCD
+ ; ML_BUF contains 2 bytes from current memory location.
+ ; Search opcode table for a matching opcode.
+ ; Return: BLK_ADDR=block header, ROW_ADDR=found row,
+ ; ML_BTCOUNT=byte count (0=not found), Z flag set if not found.
+ ;******************************************************************
+DSMFINDOPCD:PUSH BC
+ LD IX,OPCD_TABLE
+DSMFN_LP1: LD A,(IX+0)
+ CP '#'
+ JP NZ,DSMFN_CK1
+ LD (BLK_ADDR),IX
+ JP DSMFN_NXT
+
+DSMFN_CK1: LD A,(ML_BUF)
+ CP 0CBh
+ JP Z,DSMFN_CK2
+ CP 0DDh
+ JP Z,DSMFN_CK2
+ CP 0EDh
+ JP Z,DSMFN_CK2
+ CP 0FDh
+ JP Z,DSMFN_CK2
+ LD C,(IX+7)
+ CP C
+ JP NZ,DSMFN_NXT
+ LD A,0
+ LD C,(IX+8)
+ CP C
+ JP Z,DSMFN_MAT
+ JP DSMFN_NXT
+
+DSMFN_CK2: LD C,(IX+8)
+ CP C
+ JP NZ,DSMFN_NXT
+ LD A,(ML_BUF+1)
+ LD C,(IX+7)
+ CP C
+ JP Z,DSMFN_MAT
+
+DSMFN_NXT: LD BC,000Ah
+ ADD IX,BC
+ LD A,(IX+5)
+ CP 0
+ JP NZ,DSMFN_LP1
+
+DSMFN_MAT: LD (ROW_ADDR),IX
+ LD A,(IX+8)
+ LD (ML_BUF+1),A
+ LD A,(IX+9)
+ LD (ML_BTCOUNT),A
+ CP 0
+ POP BC
+ RET
+
+ ; Pad to ASMFINDINST address
+ PAD 0F10H
+
+ ;******************************************************************
+ ; ASMFINDINST
+ ; Search table for matching instruction in INS_BUF.
+ ; Return: BLK_ADDR=matching block, BLK_SIZE=row count (0=not found).
+ ;******************************************************************
+ASMFINDINST:PUSH DE
+ PUSH BC
+ LD A,0
+ LD (ROW_NUM),A
+ LD IX,OPCD_TABLE
+AFI_NXTBLK: LD (BLK_ADDR),IX
+ LD A,(IX+5)
+ LD (BLK_SIZE),A
+ CP 0
+ JP Z,AFI_EXIT
+
+ LD IY,INS_BUF
+ LD C,04h
+AFI_CMPLP: LD A,(IX+1)
+ LD B,(IY+0)
+ CP B
+ JP NZ,AFI_NOMAT
+ INC IX
+ INC IY
+ DEC C
+ JP NZ,AFI_CMPLP
+ JP AFI_EXIT
+
+AFI_NOMAT: LD A,(BLK_SIZE)
+ INC A
+ LD IX,(BLK_ADDR)
+ LD DE,000Ah
+AFI_BLKLP: ADD IX,DE
+ DEC A
+ JP NZ,AFI_BLKLP
+ LD A,(ROW_NUM)
+ INC A
+ LD (ROW_NUM),A
+ JP AFI_NXTBLK
+
+AFI_EXIT: POP BC
+ POP DE
+ RET
+
+ ; Pad to ASMFINDPARM address
+ PAD 0F70H
+
+ ;******************************************************************
+ ; ASMFINDPARM
+ ; Search block for matching parameter pattern in PARM_BUF.
+ ; Return: ML_BUF[0..2] set if found, ML_BUF[2]=0 if not found.
+ ;******************************************************************
+ASMFINDPARM:PUSH DE
+ PUSH BC
+ PUSH HL
+ LD IX,(BLK_ADDR)
+ LD A,(BLK_SIZE)
+ LD L,A
+AFP_NXTROW: LD DE,000Ah
+ ADD IX,DE
+ LD (ROW_ADDR),IX
+ LD IY,PARM_BUF
+ LD C,07h
+AFP_CMPLP: LD A,(IX+0)
+ LD B,(IY+0)
+ CP B
+ JP NZ,AFP_NOMAT
+ INC IX
+ INC IY
+ DEC C
+ JP NZ,AFP_CMPLP
+ JP AFP_MATCH
+
+AFP_NOMAT: DEC L
+ JP Z,AFP_NOFND
+ LD IX,(ROW_ADDR)
+ JP AFP_NXTROW
+
+AFP_NOFND: LD A,0
+ LD (ML_BUF+2),A
+ JP AFP_EXIT
+
+AFP_MATCH: LD A,(IX+0)
+ LD (ML_BUF),A
+ LD A,(IX+1)
+ LD (ML_BUF+1),A
+ LD A,(IX+2)
+ LD (ML_BUF+2),A
+
+AFP_EXIT: POP HL
+ POP BC
+ POP DE
+ RET
+
+ ; Pad to 4K boundary
+ ALIGN 1000H
diff --git a/asm/rfs_mrom_bank7.asm b/asm/rfs_mrom_bank7.asm
new file mode 100644
index 0000000..09cc5cb
--- /dev/null
+++ b/asm/rfs_mrom_bank7.asm
@@ -0,0 +1,418 @@
+;--------------------------------------------------------------------------------------------------------
+;-
+;- Name: rfs_mrom_bank7.asm
+;- Created: March 2026
+;- Author(s): Philip Smart
+;- Description: Z80 Opcode table (part 2: OTDR-END) and search routines for MROM bank 7.
+;- This is used by the DASM/ASM tools in UROM banks 7 and 8 (picoZ80/RomDisk builds).
+;- See rfs_mrom_bank6.asm for full description.
+;-
+;- Search routines at FIXED addresses (same as MROM bank 6):
+;- DSMFINDOPCD @ 0x0E80
+;- ASMFINDINST @ 0x0F10
+;- ASMFINDPARM @ 0x0F70
+;-
+;- Copyright: (c) 2018-2026 Philip Smart
+;-
+;--------------------------------------------------------------------------------------------------------
+;- This source file is free software: you can redistribute it and-or modify
+;- it under the terms of the GNU General Public License as published
+;- by the Free Software Foundation, either version 3 of the License, or
+;- (at your option) any later version.
+;-
+;- This source file is distributed in the hope that it will be useful,
+;- but WITHOUT ANY WARRANTY; without even the implied warranty of
+;- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;- GNU General Public License for more details.
+;-
+;- You should have received a copy of the GNU General Public License
+;- along with this program. If not, see .
+;--------------------------------------------------------------------------------------------------------
+
+ INCLUDE "macros.asm"
+
+;-----------------------------------------------
+; Work RAM addresses (must match rfs_bank7.asm)
+;-----------------------------------------------
+INS_BUF: EQU 0CF1BH
+PARM_BUF: EQU 0CF1FH
+BLK_ADDR: EQU 0CF2FH
+ROW_ADDR: EQU 0CF31H
+BLK_NUM: EQU 0CF33H
+BLK_SIZE: EQU 0CF34H
+ROW_NUM: EQU 0CF35H
+ML_BUF: EQU 0CF36H
+ML_BTCOUNT: EQU 0CF38H
+
+;-----------------------------------------------
+; MROM Bank 7 - Opcode Table Part 2 (OTDR-END)
+;-----------------------------------------------
+ ORG 00000H
+
+ ; Safety: if this bank is accidentally executed, reset to default.
+ XOR A
+ LD (0EFFDh),A ; Select MROM bank 0
+ JP 00000H
+
+ ; Pad to table start
+ ALIGN_NOPS 010H
+
+;-------------------------------------------------------------------------------
+; Z80 Assembler lookup table - PART 2 (OTDR through END)
+;-------------------------------------------------------------------------------
+OPCD_TABLE:
+ DB "#OTDR", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0BBH, 0EDH, 002H
+ DB "#OTIR", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0B3H, 0EDH, 002H
+ DB "#OUT ", 008H, 000H, 000H, 000H, 000H
+ DB "(C),A ", 079H, 0EDH, 002H
+ DB "(C),B ", 041H, 0EDH, 002H
+ DB "(C),C ", 049H, 0EDH, 002H
+ DB "(C),D ", 051H, 0EDH, 002H
+ DB "(C),E ", 059H, 0EDH, 002H
+ DB "(C),H ", 061H, 0EDH, 002H
+ DB "(C),L ", 069H, 0EDH, 002H
+ DB "(*),A ", 0D3H, 000H, 002H
+ DB "#OUT0", 007H, 000H, 000H, 000H, 000H
+ DB "(*),A ", 039H, 0EDH, 003H
+ DB "(*),B ", 001H, 0EDH, 003H
+ DB "(*),C ", 009H, 0EDH, 003H
+ DB "(*),D ", 011H, 0EDH, 003H
+ DB "(*),E ", 019H, 0EDH, 003H
+ DB "(*),H ", 021H, 0EDH, 003H
+ DB "(*),L ", 029H, 0EDH, 003H
+ DB "#OUTD", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0ABH, 0EDH, 002H
+ DB "#OUTI", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0A3H, 0EDH, 002H
+ DB "#POP ", 006H, 000H, 000H, 000H, 000H
+ DB "AF ", 0F1H, 000H, 001H
+ DB "BC ", 0C1H, 000H, 001H
+ DB "DE ", 0D1H, 000H, 001H
+ DB "HL ", 0E1H, 000H, 001H
+ DB "IX ", 0E1H, 0DDH, 002H
+ DB "IY ", 0E1H, 0FDH, 002H
+ DB "#PUSH", 006H, 000H, 000H, 000H, 000H
+ DB "AF ", 0F5H, 000H, 001H
+ DB "BC ", 0C5H, 000H, 001H
+ DB "DE ", 0D5H, 000H, 001H
+ DB "HL ", 0E5H, 000H, 001H
+ DB "IX ", 0E5H, 0DDH, 002H
+ DB "IY ", 0E5H, 0FDH, 002H
+ DB "#RES ", 008H, 000H, 000H, 000H, 000H
+ DB "*,(HL) ", 086H, 0CBH, 002H
+ DB "*,A ", 087H, 0CBH, 002H
+ DB "*,B ", 080H, 0CBH, 002H
+ DB "*,C ", 081H, 0CBH, 002H
+ DB "*,D ", 082H, 0CBH, 002H
+ DB "*,E ", 083H, 0CBH, 002H
+ DB "*,H ", 084H, 0CBH, 002H
+ DB "*,L ", 085H, 0CBH, 002H
+ DB "#RET ", 009H, 000H, 000H, 000H, 000H
+ DB " ", 0C9H, 000H, 001H
+ DB "C ", 0D8H, 000H, 001H
+ DB "M ", 0F8H, 000H, 001H
+ DB "NC ", 0D0H, 000H, 001H
+ DB "NZ ", 0C0H, 000H, 001H
+ DB "P ", 0F0H, 000H, 001H
+ DB "PE ", 0E8H, 000H, 001H
+ DB "PO ", 0E0H, 000H, 001H
+ DB "Z ", 0C8H, 000H, 001H
+ DB "#RETI", 001H, 000H, 000H, 000H, 000H
+ DB " ", 04DH, 0EDH, 002H
+ DB "#RETN", 001H, 000H, 000H, 000H, 000H
+ DB " ", 045H, 0EDH, 002H
+ DB "#RL ", 008H, 000H, 000H, 000H, 000H
+ DB "(HL) ", 016H, 0CBH, 002H
+ DB "A ", 017H, 0CBH, 002H
+ DB "B ", 010H, 0CBH, 002H
+ DB "C ", 011H, 0CBH, 002H
+ DB "D ", 012H, 0CBH, 002H
+ DB "E ", 013H, 0CBH, 002H
+ DB "H ", 014H, 0CBH, 002H
+ DB "L ", 015H, 0CBH, 002H
+ DB "#RLA ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 017H, 000H, 001H
+ DB "#RLC ", 008H, 000H, 000H, 000H, 000H
+ DB "(HL) ", 006H, 0CBH, 002H
+ DB "A ", 007H, 0CBH, 002H
+ DB "B ", 000H, 0CBH, 002H
+ DB "C ", 001H, 0CBH, 002H
+ DB "D ", 002H, 0CBH, 002H
+ DB "E ", 003H, 0CBH, 002H
+ DB "H ", 004H, 0CBH, 002H
+ DB "L ", 005H, 0CBH, 002H
+ DB "#RLCA", 001H, 000H, 000H, 000H, 000H
+ DB " ", 007H, 000H, 001H
+ DB "#RLD ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 06FH, 0EDH, 002H
+ DB "#RR ", 008H, 000H, 000H, 000H, 000H
+ DB "(HL) ", 01EH, 0CBH, 002H
+ DB "A ", 01FH, 0CBH, 002H
+ DB "B ", 018H, 0CBH, 002H
+ DB "C ", 019H, 0CBH, 002H
+ DB "D ", 01AH, 0CBH, 002H
+ DB "E ", 01BH, 0CBH, 002H
+ DB "H ", 01CH, 0CBH, 002H
+ DB "L ", 01DH, 0CBH, 002H
+ DB "#RRA ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 01FH, 000H, 001H
+ DB "#RRC ", 008H, 000H, 000H, 000H, 000H
+ DB "(HL) ", 00EH, 0CBH, 002H
+ DB "A ", 00FH, 0CBH, 002H
+ DB "B ", 008H, 0CBH, 002H
+ DB "C ", 009H, 0CBH, 002H
+ DB "D ", 00AH, 0CBH, 002H
+ DB "E ", 00BH, 0CBH, 002H
+ DB "H ", 00CH, 0CBH, 002H
+ DB "L ", 00DH, 0CBH, 002H
+ DB "#RRCA", 001H, 000H, 000H, 000H, 000H
+ DB " ", 00FH, 000H, 001H
+ DB "#RRD ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 067H, 0EDH, 002H
+ DB "#RST ", 008H, 000H, 000H, 000H, 000H
+ DB "00H ", 0C7H, 000H, 001H
+ DB "08H ", 0CFH, 000H, 001H
+ DB "10H ", 0D7H, 000H, 001H
+ DB "18H ", 0DFH, 000H, 001H
+ DB "20H ", 0E7H, 000H, 001H
+ DB "28H ", 0EFH, 000H, 001H
+ DB "30H ", 0F7H, 000H, 001H
+ DB "38H ", 0FFH, 000H, 001H
+ DB "#SBC ", 00FH, 000H, 000H, 000H, 000H
+ DB "A,(HL) ", 09EH, 000H, 001H
+ DB "A,(IX*)", 09EH, 0DDH, 003H
+ DB "A,(IY*)", 09EH, 0FDH, 003H
+ DB "A,A ", 09FH, 000H, 001H
+ DB "A,B ", 098H, 000H, 001H
+ DB "A,C ", 099H, 000H, 001H
+ DB "A,D ", 09AH, 000H, 001H
+ DB "A,E ", 09BH, 000H, 001H
+ DB "A,H ", 09CH, 000H, 001H
+ DB "A,L ", 09DH, 000H, 001H
+ DB "HL,BC ", 042H, 0EDH, 002H
+ DB "HL,DE ", 052H, 0EDH, 002H
+ DB "HL,HL ", 062H, 0EDH, 002H
+ DB "HL,SP ", 072H, 0EDH, 002H
+ DB "A,* ", 0DEH, 000H, 002H
+ DB "#SCF ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 037H, 000H, 001H
+ DB "#SET ", 008H, 000H, 000H, 000H, 000H
+ DB "*,(HL) ", 0C6H, 0CBH, 002H
+ DB "*,A ", 0C7H, 0CBH, 002H
+ DB "*,B ", 0C0H, 0CBH, 002H
+ DB "*,C ", 0C1H, 0CBH, 002H
+ DB "*,D ", 0C2H, 0CBH, 002H
+ DB "*,E ", 0C3H, 0CBH, 002H
+ DB "*,H ", 0C4H, 0CBH, 002H
+ DB "*,L ", 0C5H, 0CBH, 002H
+ DB "#SLA ", 008H, 000H, 000H, 000H, 000H
+ DB "(HL) ", 026H, 0CBH, 002H
+ DB "A ", 027H, 0CBH, 002H
+ DB "B ", 020H, 0CBH, 002H
+ DB "C ", 021H, 0CBH, 002H
+ DB "D ", 022H, 0CBH, 002H
+ DB "E ", 023H, 0CBH, 002H
+ DB "H ", 024H, 0CBH, 002H
+ DB "L ", 025H, 0CBH, 002H
+ DB "#SRA ", 008H, 000H, 000H, 000H, 000H
+ DB "(HL) ", 02EH, 0CBH, 002H
+ DB "A ", 02FH, 0CBH, 002H
+ DB "B ", 028H, 0CBH, 002H
+ DB "C ", 029H, 0CBH, 002H
+ DB "D ", 02AH, 0CBH, 002H
+ DB "E ", 02BH, 0CBH, 002H
+ DB "H ", 02CH, 0CBH, 002H
+ DB "L ", 02DH, 0CBH, 002H
+ DB "#SRL ", 008H, 000H, 000H, 000H, 000H
+ DB "(HL) ", 03EH, 0CBH, 002H
+ DB "A ", 03FH, 0CBH, 002H
+ DB "B ", 038H, 0CBH, 002H
+ DB "C ", 039H, 0CBH, 002H
+ DB "D ", 03AH, 0CBH, 002H
+ DB "E ", 03BH, 0CBH, 002H
+ DB "H ", 03CH, 0CBH, 002H
+ DB "L ", 03DH, 0CBH, 002H
+ DB "#SUB ", 00BH, 000H, 000H, 000H, 000H
+ DB "(HL) ", 096H, 000H, 001H
+ DB "(IX*) ", 096H, 0DDH, 003H
+ DB "(IY*) ", 096H, 0FDH, 003H
+ DB "A ", 097H, 000H, 001H
+ DB "B ", 090H, 000H, 001H
+ DB "C ", 091H, 000H, 001H
+ DB "D ", 092H, 000H, 001H
+ DB "E ", 093H, 000H, 001H
+ DB "H ", 094H, 000H, 001H
+ DB "L ", 095H, 000H, 001H
+ DB "* ", 0D6H, 000H, 002H
+ DB "#XOR ", 00BH, 000H, 000H, 000H, 000H
+ DB "(HL) ", 0AEH, 000H, 001H
+ DB "(IX*) ", 0AEH, 0DDH, 003H
+ DB "(IY*) ", 0AEH, 0FDH, 003H
+ DB "A ", 0AFH, 000H, 001H
+ DB "B ", 0A8H, 000H, 001H
+ DB "C ", 0A9H, 000H, 001H
+ DB "D ", 0AAH, 000H, 001H
+ DB "E ", 0ABH, 000H, 001H
+ DB "H ", 0ACH, 000H, 001H
+ DB "L ", 0ADH, 000H, 001H
+ DB "* ", 0EEH, 000H, 002H
+ ; End of table sentinel
+ DB "#END ", 000H, 000H, 000H, 000H, 000H
+
+;-------------------------------------------------------------------------------
+; Search routines at fixed addresses (same as MROM bank 6)
+;-------------------------------------------------------------------------------
+
+ ; Pad to DSMFINDOPCD address
+ PAD 0E80H
+
+ ;******************************************************************
+ ; DSMFINDOPCD - identical to bank 6 copy but LD IX,OPCD_TABLE
+ ; points to THIS bank's table.
+ ;******************************************************************
+DSMFINDOPCD:PUSH BC
+ LD IX,OPCD_TABLE
+DSMFN_LP1: LD A,(IX+0)
+ CP '#'
+ JP NZ,DSMFN_CK1
+ LD (BLK_ADDR),IX
+ JP DSMFN_NXT
+
+DSMFN_CK1: LD A,(ML_BUF)
+ CP 0CBh
+ JP Z,DSMFN_CK2
+ CP 0DDh
+ JP Z,DSMFN_CK2
+ CP 0EDh
+ JP Z,DSMFN_CK2
+ CP 0FDh
+ JP Z,DSMFN_CK2
+ LD C,(IX+7)
+ CP C
+ JP NZ,DSMFN_NXT
+ LD A,0
+ LD C,(IX+8)
+ CP C
+ JP Z,DSMFN_MAT
+ JP DSMFN_NXT
+
+DSMFN_CK2: LD C,(IX+8)
+ CP C
+ JP NZ,DSMFN_NXT
+ LD A,(ML_BUF+1)
+ LD C,(IX+7)
+ CP C
+ JP Z,DSMFN_MAT
+
+DSMFN_NXT: LD BC,000Ah
+ ADD IX,BC
+ LD A,(IX+5)
+ CP 0
+ JP NZ,DSMFN_LP1
+
+DSMFN_MAT: LD (ROW_ADDR),IX
+ LD A,(IX+8)
+ LD (ML_BUF+1),A
+ LD A,(IX+9)
+ LD (ML_BTCOUNT),A
+ CP 0
+ POP BC
+ RET
+
+ ; Pad to ASMFINDINST address
+ PAD 0F10H
+
+ ;******************************************************************
+ ; ASMFINDINST - identical to bank 6 copy
+ ;******************************************************************
+ASMFINDINST:PUSH DE
+ PUSH BC
+ LD A,0
+ LD (ROW_NUM),A
+ LD IX,OPCD_TABLE
+AFI_NXTBLK: LD (BLK_ADDR),IX
+ LD A,(IX+5)
+ LD (BLK_SIZE),A
+ CP 0
+ JP Z,AFI_EXIT
+
+ LD IY,INS_BUF
+ LD C,04h
+AFI_CMPLP: LD A,(IX+1)
+ LD B,(IY+0)
+ CP B
+ JP NZ,AFI_NOMAT
+ INC IX
+ INC IY
+ DEC C
+ JP NZ,AFI_CMPLP
+ JP AFI_EXIT
+
+AFI_NOMAT: LD A,(BLK_SIZE)
+ INC A
+ LD IX,(BLK_ADDR)
+ LD DE,000Ah
+AFI_BLKLP: ADD IX,DE
+ DEC A
+ JP NZ,AFI_BLKLP
+ LD A,(ROW_NUM)
+ INC A
+ LD (ROW_NUM),A
+ JP AFI_NXTBLK
+
+AFI_EXIT: POP BC
+ POP DE
+ RET
+
+ ; Pad to ASMFINDPARM address
+ PAD 0F70H
+
+ ;******************************************************************
+ ; ASMFINDPARM - identical to bank 6 copy
+ ;******************************************************************
+ASMFINDPARM:PUSH DE
+ PUSH BC
+ PUSH HL
+ LD IX,(BLK_ADDR)
+ LD A,(BLK_SIZE)
+ LD L,A
+AFP_NXTROW: LD DE,000Ah
+ ADD IX,DE
+ LD (ROW_ADDR),IX
+ LD IY,PARM_BUF
+ LD C,07h
+AFP_CMPLP: LD A,(IX+0)
+ LD B,(IY+0)
+ CP B
+ JP NZ,AFP_NOMAT
+ INC IX
+ INC IY
+ DEC C
+ JP NZ,AFP_CMPLP
+ JP AFP_MATCH
+
+AFP_NOMAT: DEC L
+ JP Z,AFP_NOFND
+ LD IX,(ROW_ADDR)
+ JP AFP_NXTROW
+
+AFP_NOFND: LD A,0
+ LD (ML_BUF+2),A
+ JP AFP_EXIT
+
+AFP_MATCH: LD A,(IX+0)
+ LD (ML_BUF),A
+ LD A,(IX+1)
+ LD (ML_BUF+1),A
+ LD A,(IX+2)
+ LD (ML_BUF+2),A
+
+AFP_EXIT: POP HL
+ POP BC
+ POP DE
+ RET
+
+ ; Pad to 4K boundary
+ ALIGN 1000H
diff --git a/asm/rfs_mrom_bank9.asm b/asm/rfs_mrom_bank9.asm
new file mode 100644
index 0000000..c141deb
--- /dev/null
+++ b/asm/rfs_mrom_bank9.asm
@@ -0,0 +1,98 @@
+;--------------------------------------------------------------------------------------------------------
+;-
+;- Name: rfs_mrom_bank9.asm
+;- Created: March 2026
+;- Author(s): Philip Smart
+;- Description: RFS message strings for MROM bank 9 (picoZ80/RomDisk builds).
+;- Offloaded from UROM bank 6 to free ~750 bytes of UROM space.
+;- PRINTMSG in bank 6 copies the message from this MROM bank to a RAM buffer
+;- before processing, since monitor ROM functions (PRNT, ?DSP, etc.) need the
+;- monitor MROM bank active during character output.
+;-
+;- Copyright: (c) 2018-2026 Philip Smart
+;-
+;--------------------------------------------------------------------------------------------------------
+;- This source file is free software: you can redistribute it and-or modify
+;- it under the terms of the GNU General Public License as published
+;- by the Free Software Foundation, either version 3 of the License, or
+;- (at your option) any later version.
+;-
+;- This source file is distributed in the hope that it will be useful,
+;- but WITHOUT ANY WARRANTY; without even the implied warranty of
+;- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;- GNU General Public License for more details.
+;-
+;- You should have received a copy of the GNU General Public License
+;- along with this program. If not, see .
+;--------------------------------------------------------------------------------------------------------
+
+ INCLUDE "macros.asm"
+
+;-----------------------------------------------
+; MROM Bank 9 - RFS Message Strings
+;-----------------------------------------------
+ ORG 00000H
+
+ ; Safety: if this bank is accidentally executed, reset to default.
+ XOR A
+ LD (0EFFDh),A ; Select MROM bank 0
+ JP 00000H
+
+ ; Pad to message area start
+ ALIGN_NOPS 010H
+
+ ;--------------------------------------
+ ;
+ ; Message table
+ ;
+ ;--------------------------------------
+MSGSONTZ: DB "+ TZ" ; Version 2.x with version 2.1+ of tranZPUter board installed.
+MSGSON: DB "+ RFS ", 0ABh, "2.40 **", 00DH, 000H ; Version 2.x-> as we are now using the v2.x PCB with 4 devices on-board
+MSGNOTFND: DB "Not Found", 00DH, 000H
+MSGRDIRLST: DB "ROM Directory:", 00DH, 000H
+MSGTRM: DB 00DH, 000H
+MSGBADCMD: DB "???", 00DH, 000H
+MSGSDINITER:DB "SD Card Error ", 0F9H, 00DH, 000H
+MSGCDIRLST: DB "SD Card Dir ",0F9H,":", 00DH, 000H
+MSGSDRERR: DB "Read error, Sec:",0FBH, 000H
+MSGSDWERR: DB "Write error, Sec:",0FBH, 000H
+MSGSVFAIL: DB "Error, save failed.", 00DH, 000H
+MSGERAFAIL: DB "Dir update failed.", 00DH, 000H
+MSGSVDIRENT:DB "Saving into dir entry:",0FBH, 00DH, 000H
+MSGERASEDIR:DB "Deleted dir entry:",0FBH, 000H
+MSGCMTDATA: DB "Load:",0FEH,",Exec:",0FFH, ",Size:",0FBH, 00DH, 000H
+MSGDCHEAD: DB '"',0FAH,'"',00DH,"Load:",0FDH,",Exec:",0FEH,",Size:",0FFH,00DH,000H
+MSGNOTBIN: DB "Not binary", 00DH, 000H
+MSGLOAD: DB 00DH, "Loading ",'"',0FAH,'"', 00DH, 000H
+MSGSAVE: DB 00DH, "Filename: ", 000H
+MSGDIRFULL: DB "Dir full", 00DH, 000H
+MSGE1: DB 00DH, "Check sum error!", 00DH, 000H
+MSGCMTWRITE:DB 00DH, "Writing ", '"',0FAH,'"', 00DH, 000H
+MSGOK: DB 00DH, "OK!", 00DH, 000H
+MSGSAVEOK: DB "Tape image saved.", 00DH, 000H
+MSGBOOTDRV: DB 00DH, "Floppy boot drive ?", 000H
+MSGLOADERR: DB 00DH, "Disk loading error", 00DH, 000H
+MSGIPLLOAD: DB 00DH, "Disk loading ", 000H
+MSGDSKNOTMST:DB 00DH, "Not a boot disk", 00Dh, 000H
+MSGINITM: DB "Init memory", 00DH, 000H
+MSGREAD4HEX:DB "Bad hex number", 00DH, 000H
+MSGT2SDERR: DB "Copy Tape to SD Failed", 00DH, 000H
+MSGSD2TERR: DB "Copy SD to Tape Failed", 00DH, 000H
+MSGT2SDOK: DB "Success, Tape to SD done.", 00DH, 000H
+MSGSD2TOK: DB "Success, SD to Tape done.", 00DH, 000H
+MSGNOTZINST:DB "No tranZPUter >=v2 card installed.", 00DH, 000H
+MSGNOCMTDIR:DB "CMT has no dir.", 00DH, 000H
+MSGINVDRV: DB "Invalid drive, SD=0..9 or C=CMT", 00DH, 000H
+MSGNOVERIFY:DB "No Verify for SD!", 00DH, 000H
+MSGNOINSTR: DB "Bad instruction.", 00DH, 000H
+MSGNOPARAM: DB "Bad parameter.", 00DH, 000H
+
+MSGQDERR: DB "QD: Read error", 00DH, 000H
+MSGQDFMT: DB "QD: Not ready", 00DH, 000H
+
+ ; Floppy directory messages.
+MSGFDDIR: DB "FD ",0F9H,":", 00DH, 000H
+MSGFDINFO: DB " L:",0FFH," E:",0FEH," S:",0FBH, 00DH, 000H
+
+ ; Pad to 4K boundary
+ ALIGN 1000H
diff --git a/asm/rfs_mrom_opcd7.asm b/asm/rfs_mrom_opcd7.asm
new file mode 100644
index 0000000..7e6aa8b
--- /dev/null
+++ b/asm/rfs_mrom_opcd7.asm
@@ -0,0 +1,418 @@
+;--------------------------------------------------------------------------------------------------------
+;-
+;- Name: rfs_mrom_opcd7.asm
+;- Created: March 2026
+;- Author(s): Philip Smart
+;- Description: Z80 Opcode table (part 2: OTDR-END) and search routines for MROM bank 7.
+;- This is used by the DASM/ASM tools in UROM banks 7 and 8 (picoZ80/RomDisk builds).
+;- See rfs_mrom_opcd6.asm for full description.
+;-
+;- Search routines at FIXED addresses (same as MROM bank 6):
+;- DSMFINDOPCD @ 0x0E80
+;- ASMFINDINST @ 0x0F10
+;- ASMFINDPARM @ 0x0F70
+;-
+;- Copyright: (c) 2018-2026 Philip Smart
+;-
+;--------------------------------------------------------------------------------------------------------
+;- This source file is free software: you can redistribute it and-or modify
+;- it under the terms of the GNU General Public License as published
+;- by the Free Software Foundation, either version 3 of the License, or
+;- (at your option) any later version.
+;-
+;- This source file is distributed in the hope that it will be useful,
+;- but WITHOUT ANY WARRANTY; without even the implied warranty of
+;- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;- GNU General Public License for more details.
+;-
+;- You should have received a copy of the GNU General Public License
+;- along with this program. If not, see .
+;--------------------------------------------------------------------------------------------------------
+
+ INCLUDE "macros.asm"
+
+;-----------------------------------------------
+; Work RAM addresses (must match rfs_bank7.asm)
+;-----------------------------------------------
+INS_BUF: EQU 0CF1BH
+PARM_BUF: EQU 0CF1FH
+BLK_ADDR: EQU 0CF2FH
+ROW_ADDR: EQU 0CF31H
+BLK_NUM: EQU 0CF33H
+BLK_SIZE: EQU 0CF34H
+ROW_NUM: EQU 0CF35H
+ML_BUF: EQU 0CF36H
+ML_BTCOUNT: EQU 0CF38H
+
+;-----------------------------------------------
+; MROM Bank 7 - Opcode Table Part 2 (OTDR-END)
+;-----------------------------------------------
+ ORG 00000H
+
+ ; Safety: if this bank is accidentally executed, reset to default.
+ XOR A
+ LD (0EFFDh),A ; Select MROM bank 0
+ JP 00000H
+
+ ; Pad to table start
+ ALIGN_NOPS 010H
+
+;-------------------------------------------------------------------------------
+; Z80 Assembler lookup table - PART 2 (OTDR through END)
+;-------------------------------------------------------------------------------
+OPCD_TABLE:
+ DB "#OTDR", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0BBH, 0EDH, 002H
+ DB "#OTIR", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0B3H, 0EDH, 002H
+ DB "#OUT ", 008H, 000H, 000H, 000H, 000H
+ DB "(C),A ", 079H, 0EDH, 002H
+ DB "(C),B ", 041H, 0EDH, 002H
+ DB "(C),C ", 049H, 0EDH, 002H
+ DB "(C),D ", 051H, 0EDH, 002H
+ DB "(C),E ", 059H, 0EDH, 002H
+ DB "(C),H ", 061H, 0EDH, 002H
+ DB "(C),L ", 069H, 0EDH, 002H
+ DB "(*),A ", 0D3H, 000H, 002H
+ DB "#OUT0", 007H, 000H, 000H, 000H, 000H
+ DB "(*),A ", 039H, 0EDH, 003H
+ DB "(*),B ", 001H, 0EDH, 003H
+ DB "(*),C ", 009H, 0EDH, 003H
+ DB "(*),D ", 011H, 0EDH, 003H
+ DB "(*),E ", 019H, 0EDH, 003H
+ DB "(*),H ", 021H, 0EDH, 003H
+ DB "(*),L ", 029H, 0EDH, 003H
+ DB "#OUTD", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0ABH, 0EDH, 002H
+ DB "#OUTI", 001H, 000H, 000H, 000H, 000H
+ DB " ", 0A3H, 0EDH, 002H
+ DB "#POP ", 006H, 000H, 000H, 000H, 000H
+ DB "AF ", 0F1H, 000H, 001H
+ DB "BC ", 0C1H, 000H, 001H
+ DB "DE ", 0D1H, 000H, 001H
+ DB "HL ", 0E1H, 000H, 001H
+ DB "IX ", 0E1H, 0DDH, 002H
+ DB "IY ", 0E1H, 0FDH, 002H
+ DB "#PUSH", 006H, 000H, 000H, 000H, 000H
+ DB "AF ", 0F5H, 000H, 001H
+ DB "BC ", 0C5H, 000H, 001H
+ DB "DE ", 0D5H, 000H, 001H
+ DB "HL ", 0E5H, 000H, 001H
+ DB "IX ", 0E5H, 0DDH, 002H
+ DB "IY ", 0E5H, 0FDH, 002H
+ DB "#RES ", 008H, 000H, 000H, 000H, 000H
+ DB "*,(HL) ", 086H, 0CBH, 002H
+ DB "*,A ", 087H, 0CBH, 002H
+ DB "*,B ", 080H, 0CBH, 002H
+ DB "*,C ", 081H, 0CBH, 002H
+ DB "*,D ", 082H, 0CBH, 002H
+ DB "*,E ", 083H, 0CBH, 002H
+ DB "*,H ", 084H, 0CBH, 002H
+ DB "*,L ", 085H, 0CBH, 002H
+ DB "#RET ", 009H, 000H, 000H, 000H, 000H
+ DB " ", 0C9H, 000H, 001H
+ DB "C ", 0D8H, 000H, 001H
+ DB "M ", 0F8H, 000H, 001H
+ DB "NC ", 0D0H, 000H, 001H
+ DB "NZ ", 0C0H, 000H, 001H
+ DB "P ", 0F0H, 000H, 001H
+ DB "PE ", 0E8H, 000H, 001H
+ DB "PO ", 0E0H, 000H, 001H
+ DB "Z ", 0C8H, 000H, 001H
+ DB "#RETI", 001H, 000H, 000H, 000H, 000H
+ DB " ", 04DH, 0EDH, 002H
+ DB "#RETN", 001H, 000H, 000H, 000H, 000H
+ DB " ", 045H, 0EDH, 002H
+ DB "#RL ", 008H, 000H, 000H, 000H, 000H
+ DB "(HL) ", 016H, 0CBH, 002H
+ DB "A ", 017H, 0CBH, 002H
+ DB "B ", 010H, 0CBH, 002H
+ DB "C ", 011H, 0CBH, 002H
+ DB "D ", 012H, 0CBH, 002H
+ DB "E ", 013H, 0CBH, 002H
+ DB "H ", 014H, 0CBH, 002H
+ DB "L ", 015H, 0CBH, 002H
+ DB "#RLA ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 017H, 000H, 001H
+ DB "#RLC ", 008H, 000H, 000H, 000H, 000H
+ DB "(HL) ", 006H, 0CBH, 002H
+ DB "A ", 007H, 0CBH, 002H
+ DB "B ", 000H, 0CBH, 002H
+ DB "C ", 001H, 0CBH, 002H
+ DB "D ", 002H, 0CBH, 002H
+ DB "E ", 003H, 0CBH, 002H
+ DB "H ", 004H, 0CBH, 002H
+ DB "L ", 005H, 0CBH, 002H
+ DB "#RLCA", 001H, 000H, 000H, 000H, 000H
+ DB " ", 007H, 000H, 001H
+ DB "#RLD ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 06FH, 0EDH, 002H
+ DB "#RR ", 008H, 000H, 000H, 000H, 000H
+ DB "(HL) ", 01EH, 0CBH, 002H
+ DB "A ", 01FH, 0CBH, 002H
+ DB "B ", 018H, 0CBH, 002H
+ DB "C ", 019H, 0CBH, 002H
+ DB "D ", 01AH, 0CBH, 002H
+ DB "E ", 01BH, 0CBH, 002H
+ DB "H ", 01CH, 0CBH, 002H
+ DB "L ", 01DH, 0CBH, 002H
+ DB "#RRA ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 01FH, 000H, 001H
+ DB "#RRC ", 008H, 000H, 000H, 000H, 000H
+ DB "(HL) ", 00EH, 0CBH, 002H
+ DB "A ", 00FH, 0CBH, 002H
+ DB "B ", 008H, 0CBH, 002H
+ DB "C ", 009H, 0CBH, 002H
+ DB "D ", 00AH, 0CBH, 002H
+ DB "E ", 00BH, 0CBH, 002H
+ DB "H ", 00CH, 0CBH, 002H
+ DB "L ", 00DH, 0CBH, 002H
+ DB "#RRCA", 001H, 000H, 000H, 000H, 000H
+ DB " ", 00FH, 000H, 001H
+ DB "#RRD ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 067H, 0EDH, 002H
+ DB "#RST ", 008H, 000H, 000H, 000H, 000H
+ DB "00H ", 0C7H, 000H, 001H
+ DB "08H ", 0CFH, 000H, 001H
+ DB "10H ", 0D7H, 000H, 001H
+ DB "18H ", 0DFH, 000H, 001H
+ DB "20H ", 0E7H, 000H, 001H
+ DB "28H ", 0EFH, 000H, 001H
+ DB "30H ", 0F7H, 000H, 001H
+ DB "38H ", 0FFH, 000H, 001H
+ DB "#SBC ", 00FH, 000H, 000H, 000H, 000H
+ DB "A,(HL) ", 09EH, 000H, 001H
+ DB "A,(IX*)", 09EH, 0DDH, 003H
+ DB "A,(IY*)", 09EH, 0FDH, 003H
+ DB "A,A ", 09FH, 000H, 001H
+ DB "A,B ", 098H, 000H, 001H
+ DB "A,C ", 099H, 000H, 001H
+ DB "A,D ", 09AH, 000H, 001H
+ DB "A,E ", 09BH, 000H, 001H
+ DB "A,H ", 09CH, 000H, 001H
+ DB "A,L ", 09DH, 000H, 001H
+ DB "HL,BC ", 042H, 0EDH, 002H
+ DB "HL,DE ", 052H, 0EDH, 002H
+ DB "HL,HL ", 062H, 0EDH, 002H
+ DB "HL,SP ", 072H, 0EDH, 002H
+ DB "A,* ", 0DEH, 000H, 002H
+ DB "#SCF ", 001H, 000H, 000H, 000H, 000H
+ DB " ", 037H, 000H, 001H
+ DB "#SET ", 008H, 000H, 000H, 000H, 000H
+ DB "*,(HL) ", 0C6H, 0CBH, 002H
+ DB "*,A ", 0C7H, 0CBH, 002H
+ DB "*,B ", 0C0H, 0CBH, 002H
+ DB "*,C ", 0C1H, 0CBH, 002H
+ DB "*,D ", 0C2H, 0CBH, 002H
+ DB "*,E ", 0C3H, 0CBH, 002H
+ DB "*,H ", 0C4H, 0CBH, 002H
+ DB "*,L ", 0C5H, 0CBH, 002H
+ DB "#SLA ", 008H, 000H, 000H, 000H, 000H
+ DB "(HL) ", 026H, 0CBH, 002H
+ DB "A ", 027H, 0CBH, 002H
+ DB "B ", 020H, 0CBH, 002H
+ DB "C ", 021H, 0CBH, 002H
+ DB "D ", 022H, 0CBH, 002H
+ DB "E ", 023H, 0CBH, 002H
+ DB "H ", 024H, 0CBH, 002H
+ DB "L ", 025H, 0CBH, 002H
+ DB "#SRA ", 008H, 000H, 000H, 000H, 000H
+ DB "(HL) ", 02EH, 0CBH, 002H
+ DB "A ", 02FH, 0CBH, 002H
+ DB "B ", 028H, 0CBH, 002H
+ DB "C ", 029H, 0CBH, 002H
+ DB "D ", 02AH, 0CBH, 002H
+ DB "E ", 02BH, 0CBH, 002H
+ DB "H ", 02CH, 0CBH, 002H
+ DB "L ", 02DH, 0CBH, 002H
+ DB "#SRL ", 008H, 000H, 000H, 000H, 000H
+ DB "(HL) ", 03EH, 0CBH, 002H
+ DB "A ", 03FH, 0CBH, 002H
+ DB "B ", 038H, 0CBH, 002H
+ DB "C ", 039H, 0CBH, 002H
+ DB "D ", 03AH, 0CBH, 002H
+ DB "E ", 03BH, 0CBH, 002H
+ DB "H ", 03CH, 0CBH, 002H
+ DB "L ", 03DH, 0CBH, 002H
+ DB "#SUB ", 00BH, 000H, 000H, 000H, 000H
+ DB "(HL) ", 096H, 000H, 001H
+ DB "(IX*) ", 096H, 0DDH, 003H
+ DB "(IY*) ", 096H, 0FDH, 003H
+ DB "A ", 097H, 000H, 001H
+ DB "B ", 090H, 000H, 001H
+ DB "C ", 091H, 000H, 001H
+ DB "D ", 092H, 000H, 001H
+ DB "E ", 093H, 000H, 001H
+ DB "H ", 094H, 000H, 001H
+ DB "L ", 095H, 000H, 001H
+ DB "* ", 0D6H, 000H, 002H
+ DB "#XOR ", 00BH, 000H, 000H, 000H, 000H
+ DB "(HL) ", 0AEH, 000H, 001H
+ DB "(IX*) ", 0AEH, 0DDH, 003H
+ DB "(IY*) ", 0AEH, 0FDH, 003H
+ DB "A ", 0AFH, 000H, 001H
+ DB "B ", 0A8H, 000H, 001H
+ DB "C ", 0A9H, 000H, 001H
+ DB "D ", 0AAH, 000H, 001H
+ DB "E ", 0ABH, 000H, 001H
+ DB "H ", 0ACH, 000H, 001H
+ DB "L ", 0ADH, 000H, 001H
+ DB "* ", 0EEH, 000H, 002H
+ ; End of table sentinel
+ DB "#END ", 000H, 000H, 000H, 000H, 000H
+
+;-------------------------------------------------------------------------------
+; Search routines at fixed addresses (same as MROM bank 6)
+;-------------------------------------------------------------------------------
+
+ ; Pad to DSMFINDOPCD address
+ PAD 0E80H
+
+ ;******************************************************************
+ ; DSMFINDOPCD - identical to bank 6 copy but LD IX,OPCD_TABLE
+ ; points to THIS bank's table.
+ ;******************************************************************
+DSMFINDOPCD:PUSH BC
+ LD IX,OPCD_TABLE
+DSMFN_LP1: LD A,(IX+0)
+ CP '#'
+ JP NZ,DSMFN_CK1
+ LD (BLK_ADDR),IX
+ JP DSMFN_NXT
+
+DSMFN_CK1: LD A,(ML_BUF)
+ CP 0CBh
+ JP Z,DSMFN_CK2
+ CP 0DDh
+ JP Z,DSMFN_CK2
+ CP 0EDh
+ JP Z,DSMFN_CK2
+ CP 0FDh
+ JP Z,DSMFN_CK2
+ LD C,(IX+7)
+ CP C
+ JP NZ,DSMFN_NXT
+ LD A,0
+ LD C,(IX+8)
+ CP C
+ JP Z,DSMFN_MAT
+ JP DSMFN_NXT
+
+DSMFN_CK2: LD C,(IX+8)
+ CP C
+ JP NZ,DSMFN_NXT
+ LD A,(ML_BUF+1)
+ LD C,(IX+7)
+ CP C
+ JP Z,DSMFN_MAT
+
+DSMFN_NXT: LD BC,000Ah
+ ADD IX,BC
+ LD A,(IX+5)
+ CP 0
+ JP NZ,DSMFN_LP1
+
+DSMFN_MAT: LD (ROW_ADDR),IX
+ LD A,(IX+8)
+ LD (ML_BUF+1),A
+ LD A,(IX+9)
+ LD (ML_BTCOUNT),A
+ CP 0
+ POP BC
+ RET
+
+ ; Pad to ASMFINDINST address
+ PAD 0F10H
+
+ ;******************************************************************
+ ; ASMFINDINST - identical to bank 6 copy
+ ;******************************************************************
+ASMFINDINST:PUSH DE
+ PUSH BC
+ LD A,0
+ LD (ROW_NUM),A
+ LD IX,OPCD_TABLE
+AFI_NXTBLK: LD (BLK_ADDR),IX
+ LD A,(IX+5)
+ LD (BLK_SIZE),A
+ CP 0
+ JP Z,AFI_EXIT
+
+ LD IY,INS_BUF
+ LD C,04h
+AFI_CMPLP: LD A,(IX+1)
+ LD B,(IY+0)
+ CP B
+ JP NZ,AFI_NOMAT
+ INC IX
+ INC IY
+ DEC C
+ JP NZ,AFI_CMPLP
+ JP AFI_EXIT
+
+AFI_NOMAT: LD A,(BLK_SIZE)
+ INC A
+ LD IX,(BLK_ADDR)
+ LD DE,000Ah
+AFI_BLKLP: ADD IX,DE
+ DEC A
+ JP NZ,AFI_BLKLP
+ LD A,(ROW_NUM)
+ INC A
+ LD (ROW_NUM),A
+ JP AFI_NXTBLK
+
+AFI_EXIT: POP BC
+ POP DE
+ RET
+
+ ; Pad to ASMFINDPARM address
+ PAD 0F70H
+
+ ;******************************************************************
+ ; ASMFINDPARM - identical to bank 6 copy
+ ;******************************************************************
+ASMFINDPARM:PUSH DE
+ PUSH BC
+ PUSH HL
+ LD IX,(BLK_ADDR)
+ LD A,(BLK_SIZE)
+ LD L,A
+AFP_NXTROW: LD DE,000Ah
+ ADD IX,DE
+ LD (ROW_ADDR),IX
+ LD IY,PARM_BUF
+ LD C,07h
+AFP_CMPLP: LD A,(IX+0)
+ LD B,(IY+0)
+ CP B
+ JP NZ,AFP_NOMAT
+ INC IX
+ INC IY
+ DEC C
+ JP NZ,AFP_CMPLP
+ JP AFP_MATCH
+
+AFP_NOMAT: DEC L
+ JP Z,AFP_NOFND
+ LD IX,(ROW_ADDR)
+ JP AFP_NXTROW
+
+AFP_NOFND: LD A,0
+ LD (ML_BUF+2),A
+ JP AFP_EXIT
+
+AFP_MATCH: LD A,(IX+0)
+ LD (ML_BUF),A
+ LD A,(IX+1)
+ LD (ML_BUF+1),A
+ LD A,(IX+2)
+ LD (ML_BUF+2),A
+
+AFP_EXIT: POP HL
+ POP BC
+ POP DE
+ RET
+
+ ; Pad to 4K boundary
+ ALIGN 1000H
diff --git a/asm/sa-5510_rfs.asm b/asm/sa-5510_rfs.asm
index f23c9cd..3dd7aed 100644
--- a/asm/sa-5510_rfs.asm
+++ b/asm/sa-5510_rfs.asm
@@ -100,7 +100,7 @@ BUFER EQU 011A3H
; RFS ROM addresses.
UROMADDR EQU 0E800H ; Start of User ROM Address space.
UROMBSTBL EQU UROMADDR + 020H ; Entry point to the bank switching table.
-RFSJMPTABLE EQU UROMADDR + 000B0H ; Start of jump table.
+RFSJMPTABLE EQU UROMADDR + 000A0H ; Start of jump table.
;-------------------------------------------------------
; Function entry points in the RFS ROM.
diff --git a/asm/sharpmz-test.asm b/asm/sharpmz-test.asm
index c08c31f..78487de 100644
--- a/asm/sharpmz-test.asm
+++ b/asm/sharpmz-test.asm
@@ -14,7 +14,7 @@
;- 4. Graphics RAM Test
;-
;- Credits:
-;- Copyright: (c) 2018-2023 Philip Smart
+;- Copyright: (c) 2018-2026 Philip Smart
;-
;- History: October 2018 - Merged 2 utilities to create this compilation.
;-
diff --git a/build.sh b/build.sh
index 8edbb5e..e2cd75b 100755
--- a/build.sh
+++ b/build.sh
@@ -1,9 +1,9 @@
#!/bin/bash
-ROOT_DIR=`pwd`
+ROOT_DIR=$(pwd)
SW_DIR=${ROOT_DIR}/
PROCESS_MZF_FILES=0
-if [ "$1" = '-m' ]; then
+if [ "x$1" = '-m' ]; then
PROCESS_MZF_FILES=1
fi
diff --git a/dis/MZ-2Z009E/assemble_mz2z009e.sh b/dis/MZ-2Z009E/assemble_mz2z009e.sh
new file mode 100755
index 0000000..91974d4
--- /dev/null
+++ b/dis/MZ-2Z009E/assemble_mz2z009e.sh
@@ -0,0 +1,101 @@
+#!/bin/bash
+#########################################################################################################
+##
+## Name: assemble_mz2z009e.sh
+## Created: March 2026
+## Author(s): Philip Smart
+## Description: Assemble MZ-2Z009E dz80 disassembly with GLASS Z80 assembler
+## and verify binary matches original.
+##
+## Credits:
+## Copyright: (c) 2026 Philip Smart
+##
+## History: March 2026 - Initial script.
+##
+#########################################################################################################
+## This source file is free software: you can redistribute it and#or modify
+## it under the terms of the GNU General Public License as published
+## by the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## This source file is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program. If not, see .
+#########################################################################################################
+
+DISDIR="$(cd "$(dirname "$0")" && pwd)"
+OUTDIR="${DISDIR}/tmp"
+
+GLASS_JAR=""
+for candidate in \
+ "${DISDIR}/glass.jar" \
+ "/srv/dvlp/Projects/RFS/tools/glass.jar" \
+ "$(which glass.jar 2>/dev/null)"; do
+ if [ -f "$candidate" ]; then
+ GLASS_JAR="$candidate"
+ break
+ fi
+done
+
+if [ -z "$GLASS_JAR" ]; then
+ echo "ERROR: glass.jar not found."
+ exit 1
+fi
+
+SRC="${DISDIR}/mz2z009e_dz80.asm"
+ORIGINAL_BIN="${DISDIR}/mz2z009e.bin"
+
+if [ ! -f "${SRC}" ]; then
+ echo "ERROR: Source file not found at ${SRC}"
+ echo " Run disassemble_mz2z009e.sh first to generate it."
+ exit 1
+fi
+
+if [ ! -f "${ORIGINAL_BIN}" ]; then
+ echo "ERROR: Original binary not found at ${ORIGINAL_BIN}"
+ exit 1
+fi
+
+mkdir -p "${OUTDIR}"
+
+echo "MZ-2Z009E Disk BASIC Assembly Tool"
+echo "==================================="
+echo " Source: ${SRC}"
+echo " Glass: ${GLASS_JAR}"
+echo " Output: ${OUTDIR}"
+echo ""
+
+echo "--- Assembling with GLASS Z80 assembler ---"
+java -jar "${GLASS_JAR}" "${SRC}" "${OUTDIR}/mz2z009e.bin" "${OUTDIR}/mz2z009e.sym"
+
+if [ $? -ne 0 ]; then
+ echo ""
+ echo "ERROR: Assembly failed. Fix errors above and retry."
+ exit 1
+fi
+
+ORIG_SIZE=$(wc -c < "${ORIGINAL_BIN}")
+ASM_SIZE=$(wc -c < "${OUTDIR}/mz2z009e.bin")
+echo " Binary: ${OUTDIR}/mz2z009e.bin (${ASM_SIZE} bytes)"
+echo " Symbols: ${OUTDIR}/mz2z009e.sym"
+echo " Reference: ${ORIGINAL_BIN} (${ORIG_SIZE} bytes)"
+echo ""
+
+echo "--- Verifying binary match ---"
+if cmp -s "${ORIGINAL_BIN}" "${OUTDIR}/mz2z009e.bin"; then
+ echo " PASS: Re-assembled binary is identical to original."
+else
+ echo " FAIL: Re-assembled binary differs from original!"
+ echo " Differences:"
+ cmp -l "${ORIGINAL_BIN}" "${OUTDIR}/mz2z009e.bin" | head -20
+ exit 1
+fi
+echo ""
+
+echo "==================================="
+echo "Complete."
+ls -la "${OUTDIR}"/mz2z009e*
diff --git a/dis/MZ-2Z009E/disassemble_mz2z009e.sh b/dis/MZ-2Z009E/disassemble_mz2z009e.sh
new file mode 100755
index 0000000..cfc88ae
--- /dev/null
+++ b/dis/MZ-2Z009E/disassemble_mz2z009e.sh
@@ -0,0 +1,154 @@
+#!/bin/bash
+#########################################################################################################
+##
+## Name: disassemble_mz2z009e.sh
+## Created: March 2026
+## Author(s): Philip Smart
+## Description: MZ-2Z009E Disk BASIC disassembly and re-assembly tool
+## This script performs a full round-trip:
+## 1. Disassembles mz2z009e.bin using dz80
+## 2. Post-processes the output for GLASS assembler compatibility
+## (fixes undefined label references, compacts repeated DB into DS,
+## reformats keyword tables)
+## 3. Re-assembles with the GLASS Z80 assembler
+## 4. Verifies the re-assembled binary is identical to the original
+##
+## Credits:
+## Copyright: (c) 2026 Philip Smart
+##
+## History: March 2026 - Initial script (based on MZ-5Z009 version).
+##
+#########################################################################################################
+## This source file is free software: you can redistribute it and#or modify
+## it under the terms of the GNU General Public License as published
+## by the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## This source file is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program. If not, see .
+#########################################################################################################
+
+DISDIR="$(cd "$(dirname "$0")" && pwd)"
+OUTDIR="${DISDIR}/tmp"
+
+# Tools
+DZ80="/srv/dvlp/Projects/RFS/tools/dz80"
+POSTPROCESS="${DISDIR}/postprocess_dz80.py"
+
+# Use glass.jar from the RFS project if available.
+GLASS_JAR=""
+for candidate in \
+ "${DISDIR}/glass.jar" \
+ "/srv/dvlp/Projects/RFS/tools/glass.jar" \
+ "$(which glass.jar 2>/dev/null)"; do
+ if [ -f "$candidate" ]; then
+ GLASS_JAR="$candidate"
+ break
+ fi
+done
+
+if [ -z "$GLASS_JAR" ]; then
+ echo "ERROR: glass.jar not found."
+ exit 1
+fi
+
+ORIGINAL_BIN="${DISDIR}/mz2z009e.bin"
+DZ80_INI="${DISDIR}/mz2z009e.ini"
+
+# Verify prerequisites exist
+if [ ! -f "${ORIGINAL_BIN}" ]; then
+ echo "ERROR: Original binary not found at ${ORIGINAL_BIN}"
+ echo " This is the raw MZ-2Z009E Disk BASIC binary (36864 bytes)."
+ exit 1
+fi
+
+if [ ! -f "${DZ80_INI}" ]; then
+ echo "ERROR: dz80 configuration not found at ${DZ80_INI}"
+ exit 1
+fi
+
+if [ ! -x "${DZ80}" ]; then
+ echo "ERROR: dz80 disassembler not found at ${DZ80}"
+ exit 1
+fi
+
+if [ ! -f "${POSTPROCESS}" ]; then
+ echo "ERROR: Post-processor not found at ${POSTPROCESS}"
+ exit 1
+fi
+
+mkdir -p "${OUTDIR}"
+
+echo "MZ-2Z009E Disk BASIC Disassembly & Re-assembly Tool"
+echo "===================================================="
+echo " Source binary: ${ORIGINAL_BIN}"
+echo " dz80 config: ${DZ80_INI}"
+echo " Glass: ${GLASS_JAR}"
+echo " Output dir: ${OUTDIR}"
+echo ""
+
+# ---- Step 1: Disassemble with dz80 ----
+echo "--- Step 1: Disassembling with dz80 ---"
+# dz80 uses dz80.ini from CWD (symlink -> mz2z009e.ini), so we cd to the dis dir
+SAVEDCWD="$(pwd)"
+cd "${DISDIR}"
+${DZ80} -l mz2z009e.bin mz2z009e_dz80.asm
+DZ80_RC=$?
+cd "${SAVEDCWD}"
+
+if [ ${DZ80_RC} -ne 0 ]; then
+ echo "ERROR: dz80 disassembly failed (exit code ${DZ80_RC})."
+ exit 1
+fi
+echo " dz80 output: ${DISDIR}/mz2z009e_dz80.asm"
+echo ""
+
+# ---- Step 2: Post-process for GLASS compatibility ----
+echo "--- Step 2: Post-processing for GLASS compatibility ---"
+# Post-process in-place so dis/mz2z009e_dz80.asm is the final compacted version,
+# and also copy to tmp/ for assembly.
+python3 "${POSTPROCESS}" "${DISDIR}/mz2z009e_dz80.asm"
+if [ $? -ne 0 ]; then
+ echo "ERROR: Post-processing failed."
+ exit 1
+fi
+cp "${DISDIR}/mz2z009e_dz80.asm" "${OUTDIR}/mz2z009e_dz80.asm"
+echo ""
+
+# ---- Step 3: Assemble with GLASS ----
+echo "--- Step 3: Assembling with GLASS Z80 assembler ---"
+java -jar "${GLASS_JAR}" "${OUTDIR}/mz2z009e_dz80.asm" "${OUTDIR}/mz2z009e.bin" "${OUTDIR}/mz2z009e.sym"
+
+if [ $? -ne 0 ]; then
+ echo ""
+ echo "ERROR: Assembly failed. Fix errors above and retry."
+ exit 1
+fi
+echo " Binary: ${OUTDIR}/mz2z009e.bin"
+echo " Symbols: ${OUTDIR}/mz2z009e.sym"
+echo ""
+
+# ---- Step 4: Verify binary match ----
+echo "--- Step 4: Verifying binary match ---"
+if cmp -s "${ORIGINAL_BIN}" "${OUTDIR}/mz2z009e.bin"; then
+ echo " PASS: Re-assembled binary is identical to original."
+else
+ ORIG_SIZE=$(wc -c < "${ORIGINAL_BIN}")
+ ASM_SIZE=$(wc -c < "${OUTDIR}/mz2z009e.bin")
+ echo " FAIL: Re-assembled binary differs from original!"
+ echo " Original size: ${ORIG_SIZE} bytes"
+ echo " Assembled size: ${ASM_SIZE} bytes"
+ echo ""
+ echo " Run 'cmp -l ${ORIGINAL_BIN} ${OUTDIR}/mz2z009e.bin' for details."
+ exit 1
+fi
+echo ""
+
+echo "===================================================="
+echo "Complete. Output files in ${OUTDIR}/"
+ls -la "${OUTDIR}"/mz2z009e*
diff --git a/dis/MZ-2Z009E/dz80.ini b/dis/MZ-2Z009E/dz80.ini
new file mode 120000
index 0000000..6453532
--- /dev/null
+++ b/dis/MZ-2Z009E/dz80.ini
@@ -0,0 +1 @@
+mz2z009e.ini
\ No newline at end of file
diff --git a/dis/MZ-2Z009E/mz2z009e.asm b/dis/MZ-2Z009E/mz2z009e.asm
new file mode 100644
index 0000000..ebd63cb
--- /dev/null
+++ b/dis/MZ-2Z009E/mz2z009e.asm
@@ -0,0 +1,18158 @@
+; Disassembly of the file "mz2z009e.bin"
+;
+; CPU Type: Z80
+;
+; Created with dZ80 2.1
+;
+; on Monday, 16 of March 2026 at 01:37 PM
+;
+LSWF EQU 0CCH
+LSRF EQU 0CDH
+LSDMD EQU 0CEH
+LSSCR EQU 0CFH
+LSD0 EQU 0D0H
+LSD1 EQU 0D1H
+LSD2 EQU 0D2H
+LSD3 EQU 0D3H
+LSE0 EQU 0E0H
+LSE1 EQU 0E1H
+LSE2 EQU 0E2H
+LSE3 EQU 0E3H
+LSE4 EQU 0E4H
+LSE5 EQU 0E5H
+LSE6 EQU 0E6H
+EM_P0 EQU 0EAH
+EM_P1 EQU 0EBH
+LSPAL EQU 0F0H
+QDPA EQU 0F2H
+QDPB EQU 0F3H
+QDPC EQU 0F4H
+QDPD EQU 0F5H
+FDPA EQU 0F8H
+FDPB EQU 0F9H
+FDPC EQU 0FAH
+FDPD EQU 0FBH
+LSFC EQU 0FCH
+ELMD EQU 01000H
+ELMD1 EQU 01001H
+ELMD18 EQU 01012H
+ELMD20 EQU 01014H
+ELMD22 EQU 01016H
+ELMD24 EQU 01018H
+ELMD26 EQU 0101AH
+ELMD30 EQU 0101EH
+ELMD32 EQU 01020H
+ZTOP EQU 01040H
+ZLOG EQU 01042H
+ZRWX EQU 01043H
+ZEQT EQU 01044H
+ZCH EQU 01046H
+ZEOF EQU 01047H
+ZWRK1 EQU 01048H
+ZWRK2 EQU 01049H
+ZNXT EQU 0104AH
+ZDEVNM EQU 0104CH
+ZFLAG1 EQU 01050H
+ZFLAG2 EQU 01051H
+ZDIRMX EQU 01052H
+ZINIT EQU 01053H
+ZRO EQU 01055H
+ZWO EQU 01057H
+ZCL EQU 01059H
+ZKL EQU 0105BH
+ZINP EQU 0105DH
+ZOUT EQU 0105FH
+ZDELT EQU 01061H
+ZWDIR EQU 01063H
+ZFREE EQU 01065H
+DCHAN EQU 01069H
+DDEV EQU 0106AH
+.$CRT EQU 0106CH
+.$LPT EQU 0106EH
+TEXTST EQU 01070H
+TEXTED EQU 01072H
+VARST EQU 01074H
+STRST EQU 01076H
+VARED EQU 01078H
+TMPEND EQU 0107AH
+INTFAC EQU 0107CH
+MEMLMT EQU 0107EH
+MEMMAX EQU 01080H
+CURXY EQU 01082H
+POSADR EQU 01084H
+BITADR EQU 01086H
+POINTX EQU 01088H
+POINTY EQU 0108AH
+CURFLG EQU 0108CH
+CURMAK EQU 0108DH
+CMTMSG EQU 0108EH
+INPFLG EQU 0108FH
+DISPX EQU 01090H
+FILOUT EQU 01091H
+PSEL EQU 01092H
+PCRLF EQU 01093H
+LPT_TM EQU 01094H
+LPOSB EQU 01095H
+PSMAL EQU 01096H
+PNMODE EQU 01097H
+DMD EQU 01098H
+MEMOP EQU 01099H
+PWMODE EQU 0109AH
+CMODE EQU 0109BH
+CPLANE EQU 0109CH
+MAXCF EQU 0109DH
+PMASK EQU 0109EH
+GMODE EQU 0109FH
+TMCNT EQU 01195H
+SUMDT EQU 01197H
+CSMDT EQU 01199H
+TEMPW EQU 0119EH
+KEYBM1 EQU 011A3H
+KEYBUF EQU 011A4H
+KEY262 EQU 012AAH
+KEY264 EQU 012ACH
+KEY266 EQU 012AEH
+FUNBUF EQU 012B2H
+INBUFC EQU 01352H
+INBUFL EQU 01353H
+INBUF EQU 01354H
+LINLIM EQU 01364H
+KEYDAT EQU 01365H
+AMPM EQU 01366H
+SECD EQU 01367H
+XS EQU 01369H
+XE EQU 0136AH
+CWIDTH EQU 0136BH
+CSIZE EQU 0136DH
+YS EQU 0136FH
+YE EQU 01370H
+YW EQU 01371H
+SOF EQU 01372H
+SW EQU 01374H
+SSA EQU 01375H
+SEA EQU 01376H
+SSW EQU 01377H
+CRTMD1 EQU 01379H
+CRTMD2 EQU 0137AH
+SELCOL EQU 0137BH
+PAIWED EQU 0137CH
+PALBK EQU 0137EH
+PALAD EQU 0137FH
+PALTBL EQU 01381H
+PAL2T EQU 01385H
+PAL4T EQU 01389H
+PAL16T EQU 0138DH
+CURDT1 EQU 01391H
+CURDT2 EQU 01399H
+CURDT3 EQU 013A1H
+SCRNT0 EQU 013A9H
+EMFLG EQU 013C3H
+EMPTR EQU 013C4H
+EMWP0 EQU 013C6H
+EMWP1 EQU 013C8H
+PBCN EQU 013CEH
+HERRF EQU 013D9H
+CTABLE EQU 013DAH
+FONTBF EQU 01000H
+TEXTBF EQU 02000H
+BITBUF EQU 08000H
+IBUFE EQU 010F0H
+ERRTXT EQU 0FDA0H
+PRGSTART EQU 00000H
+
+ ORG PRGSTART
+
+L0000: JP L0CAF ; Cold start entry - JP to initialization
+
+L0003: JP L028C
+
+L0006: JP L05EC
+
+ JP L05E8
+
+L000C: JP L0BFD
+
+L000F: JP L05F1
+
+L0012: JP L0BFF
+
+L0015: JP L0BEE
+
+SVC_ENTRY: JP SVC_DISP ; RST 18H - SVC (Supervisor Call) dispatcher
+
+ JP L041C
+
+BRKCHK: JP L05C1
+
+ JP L30CB
+
+ JP L30D2
+
+L0027: JP L3114
+
+ JP L311B
+
+ JP L3153
+
+L0030: JP L14BC
+
+ JP L0955
+
+L0036: LD B,B
+ NOP
+RST38: JP BREAKZ ; RST 38H - Interrupt handler
+
+ JP L098F
+
+L003E: JP L0D3F
+
+L0041: JP L0D30
+
+ JP L0D05
+
+ JP L0D20
+
+ JP L028C
+
+L004D: DB 000H ; System status / work area
+L004E: DB 000H
+L004F: DB 0FFH
+L0050: DB 000H
+ DB 0C3H
+ DB 0EEH
+ DB 00BH
+L0054: DS 2, 000H
+L0056: DB 000H
+L0057: DB 018H
+ DB 0C3H
+ DB 08AH
+ DB 003H
+L005B: DB 000H
+ DB 027H
+L005D: DB 071H
+ DB 000H
+L005F: DB 000H
+L0060: DB 0EFH
+ DB 0C3H
+ DB 037H
+ DB 00AH
+L0064: DB 000H
+L0065: DB 000H
+L0066: DB 000H
+L0067: DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 0ADH
+ DB 007H
+ DB 0F1H
+ DB 008H
+L0071: DB 015H
+ DB 008H
+ DB 012H
+ DB 008H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+L0080: DB 000H
+L0081: DB 0ADH
+ DB 007H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 01EH
+ DB 008H
+ DB LSWF
+ DB 007H
+ DB LSPAL
+ DB 007H
+ DB LSD1
+ DB 007H
+ DB QDPD
+ DB 007H
+ DB 054H
+ DB 007H
+ DB 074H
+ DB 007H
+ DB 018H
+ DB 008H
+ DB 0BAH
+ DB 008H
+ DB 012H
+ DB 008H
+ DB LSE5
+ DB 000H
+ DB 0ADH
+ DB 007H
+ DB LSE5
+L00A0: DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+.NOP: DB 000H
+.HL: DS 11, 000H
+.RET: DS 8, 000H
+PUSHRA: DS 6, 000H
+L00C0: DS 7, 000H
+PUSHR: DS 18, 000H
+L00D9: DB 000H
+L00DA: DI
+ LD SP,L0000
+ IM 1
+ OUT (LSE1),A
+ JP L1800
+
+BREAKZ: RET
+
+BREAKX: DI
+ OUT (LSE3),A
+L00E9: LD A,(HL)
+ OUT (LSE1),A
+ EI
+ERRORJ: RET
+
+POPRA: DI
+ OUT (LSE3),A
+ LD (HL),A
+ OUT (LSE1),A
+ EI
+ RET
+
+ JP L026A
+
+L00F9: NOP
+L00FA: JP (HL)
+
+IOOUT: EX (SP),IX
+ PUSH HL
+ PUSH BC
+ PUSH DE
+L0100: PUSH AF
+ PUSH HL
+ LD HL,L0114
+ EX (SP),HL
+ JP (IX)
+
+SKPDE: EX (SP),IX
+ PUSH HL
+ PUSH BC
+ PUSH DE
+DEVASC: PUSH HL
+ LD HL,L0115
+ EX (SP),HL
+ JP (IX)
+
+L0114: POP AF
+L0115: POP DE
+ POP BC
+ POP HL
+ POP IX
+ RET
+
+CHKACC: EX (SP),HL
+ PUSH BC
+ LD B,(HL)
+L011E: INC HL
+ CP (HL)
+ JR Z,L0127 ; (+005H)
+ DJNZ L011E ; (-006H)
+ INC HL
+ JR L012A ; (+003H)
+
+L0127: INC HL
+ DJNZ L0127 ; (-003H)
+L012A: POP BC
+ EX (SP),HL
+ RET
+
+LDDEMI: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ RET
+
+LDDEMD: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ RET
+
+?CLRHL: XOR A
+?SETHL: LD (HL),A
+ INC HL
+ DJNZ ?SETHL ; (-004H)
+ RET
+
+?CLRDE: XOR A
+?SETDE: LD (DE),A
+ INC DE
+L0140: DJNZ ?SETDE ; (-004H)
+ RET
+
+LDDEHL: LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ DJNZ LDDEHL ; (-006H)
+ RET
+
+LDHLDE: LD A,(DE)
+ LD (HL),A
+ INC HL
+ INC DE
+ DJNZ LDHLDE ; (-006H)
+ RET
+
+INDRCT: PUSH AF
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ POP AF
+ RET
+
+ADDHLA: ADD A,L
+ LD L,A
+ RET NC
+ INC H
+ RET
+
+INCHLF: INC HL
+HLFTCH: LD A,(HL)
+ CP 020H
+ JR Z,INCHLF ; (-006H)
+ RET
+
+TEST1: CALL HLFTCH
+ EX (SP),HL
+L0168: CP (HL)
+ INC HL
+ EX (SP),HL
+ RET NZ
+ INC HL
+ RET
+
+TESTX: CALL HLFTCH
+ EX (SP),HL
+ CP (HL)
+ INC HL
+ EX (SP),HL
+ INC HL
+ RET Z
+ LD A,001H
+ JR L0182 ; (+007H)
+
+L017B: XOR A
+ LD HL,0803EH
+ LD HL,L80F6
+L0182: PUSH AF
+ CALL L0D20
+ POP AF
+ JP L0000
+
+L018A: LD A,H
+ DEC A
+ CALL PE,0E805H
+ DEC B
+ RST 038H
+ DEC BC
+ LD B,E
+ INC C
+ EX AF,AF'
+ ADD HL,BC
+ XOR C
+ RRCA
+ LD A,00FH
+ RET Z
+ DEC BC
+ JP Z,0D80BH
+ DEC BC
+ AND 00BH
+L01A2: ADC A,H
+ LD (BC),A
+ ADC A,D
+ INC BC
+ POP BC
+ DEC B
+ AND B
+ INC D
+ ADD A,A
+ LD A,(BC)
+ ADC A,C
+ LD A,(BC)
+ SCF
+ LD A,(BC)
+ LD B,(HL)
+ INC D
+ HALT
+ INC D
+ SUB C
+ INC D
+ LD B,014H
+ LD E,H
+ LD (BC),A
+ POP HL
+ INC C
+ RET PE
+ INC C
+ RST 028H
+ INC C
+ PUSH HL
+ INC D
+ AND H
+ INC DE
+ LD (HL),D
+ INC DE
+ LD C,E
+ LD B,LSE5
+ NOP
+ LD A,00DH
+ JR NC,L01CE ; (+000H)
+L01CE: PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ ADC A,A
+ ADD HL,BC
+ LD D,L
+ ADD HL,BC
+ PUSH HL
+L01D9: NOP
+ RET PE
+ DEC DE
+ IN A,(01EH)
+ DEC E
+ RRA
+L01E0: POP AF
+ LD E,03DH
+ LD A,(DE)
+ CP B
+ LD A,(DE)
+ RET PO
+ ADD HL,DE
+ LD (HL),C
+ DEC DE
+ OR H
+ INC E
+ RET C
+ INC E
+ RET
+
+ INC E
+ POP HL
+ LD A,(DE)
+ RET NC
+ JR L01D9 ; (-01cH)
+
+ JR 00243H ; (+04cH)
+
+ ADD HL,DE
+ RRCA
+ JR L01A2 ; (-059H)
+
+ DEC DE
+ DEC DE
+ DEC E
+ DB 0DDH
+ INC D
+L0200: PUSH HL
+ NOP
+ LD E,B
+ LD E,067H
+ INC L
+ OR (HL)
+ INC L
+ LD B,(HL)
+ INC L
+ NOP
+ ADD HL,HL
+ SBC A,L
+ LD HL,(02925H)
+ XOR E
+ RRA
+ CALL M,L742A
+ RLCA
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+SVC_DISP: EX (SP),HL
+ PUSH AF
+ LD A,(HL)
+ INC HL
+ PUSH HL
+ LD HL,L018A
+ ADD A,A
+ ADD A,L
+ JR NC,L0237 ; (+001H)
+ INC H
+L0237: LD L,A
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ LD (00243H),HL
+ POP HL
+ POP AF
+ EX (SP),HL
+ JP L0000
+
+IOCALL: PUSH HL
+ PUSH DE
+ LD (00251H),IX
+ LD IX,00180H
+ OR A
+ CALL L0000
+ POP DE
+ POP HL
+ RET NC
+ OR A
+ SCF
+L0258: RET Z
+ JP 00180H
+
+ PUSH DE
+ LD B,000H
+L025F: LD A,(DE)
+ OR A
+ JR Z,L0268 ; (+005H)
+ INC DE
+ INC B
+ JR NZ,L025F ; (-008H)
+ DEC B
+L0268: POP DE
+ RET
+
+L026A: PUSH HL
+ LD HL,(L0054)
+ PUSH HL
+ PUSH DE
+ CALL PUSHW
+ POP DE
+ LD (HL),000H
+ POP HL
+ CALL L028C
+ JR C,L028A ; (+00eH)
+ LD A,(L005B)
+ SUB L
+ JR NC,L028A ; (+008H)
+ NEG
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ EX DE,HL
+ OR A
+L028A: POP HL
+ RET
+
+L028C: PUSH BC
+ PUSH HL
+ PUSH DE
+L028F: CALL L0391
+ CP 00DH
+ JP Z,L0311
+ CP 01BH
+ JR Z,L02E8 ; (+04dH)
+ PUSH AF
+ CP 020H
+DEASC: JR C,L02CD ; (+02dH)
+ JR L02C8 ; (+026H)
+
+L02A2: LD A,(L004D)
+ OR A
+ JR NZ,L02C8 ; (+020H)
+ LD A,(00B18H)
+ RRCA
+ JR C,L02C8 ; (+01aH)
+ LD A,(L004E)
+ OR A
+ JR NZ,L02C8 ; (+014H)
+ POP AF
+ LD HL,L06C1
+ CP 011H
+ JR Z,L02C3 ; (+007H)
+ LD HL,L06E7
+ CP 012H
+ JR NZ,L02C9 ; (+006H)
+L02C3: CALL L00FA
+ JR L028F ; (-039H)
+
+L02C8: POP AF
+L02C9: RST 018H
+ DB 003H
+ JR L028F ; (-03eH)
+
+L02CD: LD A,(L0060)
+ CP 0FFH
+ JR NZ,L02A2 ; (-032H)
+ POP AF
+ CP 017H
+ JR NC,L02C9 ; (-010H)
+ CP 011H
+ JR C,L02C9 ; (-014H)
+ LD HL,(00B18H)
+ BIT 6,L
+ JR Z,L02C9 ; (-01bH)
+ RST 018H
+ DB 004H
+ JR L028F ; (-059H)
+
+L02E8: SCF
+CKHEX: PUSH AF
+ LD A,00DH
+ RST 018H
+ DB 003H
+ POP AF
+ POP DE
+ POP HL
+ POP BC
+ RET
+
+L02F3: CALL PUSHW
+L02F6: LD A,(HL)
+ OR A
+MHALT: RET Z
+ DEC HL
+ DEC E
+ LD A,(L0056)
+ CP E
+ JR C,L02F6 ; (-00bH)
+ RET
+
+L0302: CALL PUSHW
+L0305: INC E
+ INC HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD A,(L0057)
+ CP E
+ JR NC,L0305 ; (-00bH)
+ RET
+
+L0311: LD HL,(L0054)
+SETDFL: CALL L02F3
+ LD D,E
+ CALL L0305
+ LD A,(L005B)
+ LD L,A
+ LD A,E
+ SUB D
+ LD E,A
+ LD H,D
+ADDP1: LD D,L
+ RST 018H
+ DB 01EH
+ LD A,(0005CH)
+ SUB D
+ADDP2: INC A
+ LD D,A
+ POP BC
+ PUSH BC
+ EXX
+ PUSH HL
+ LD HL,(L004F)
+ EXX
+L0334: PUSH DE
+ PUSH HL
+L0336: CALL BREAKX
+ RST 018H
+ DB 01CH
+ INC HL
+ LD (BC),A
+ INC BC
+L033E: EXX
+ DEC L
+ERRX: JR Z,L0354 ; (+012H)
+ EXX
+ DEC D
+ JR NZ,L0336 ; (-010H)
+ POP HL
+ PUSH BC
+ LD BC,00028H
+ ADD HL,BC
+ POP BC
+ POP DE
+ DEC E
+ JR NZ,L0334 ; (-01dH)
+ PUSH DE
+ PUSH HL
+ EXX
+L0354: EXX
+ POP HL
+ POP DE
+ EXX
+ POP HL
+ EXX
+ XOR A
+ LD (BC),A
+ LD L,C
+ LD H,B
+ POP DE
+ PUSH DE
+ PUSH HL
+ OR A
+ SBC HL,DE
+ LD B,L
+ POP HL
+ LD A,020H
+ LD D,A
+ JP Z,CKHEX
+ DEC HL
+L036D: LD A,(HL)
+ OR A
+ JR Z,L0376 ; (+005H)
+ CP D
+ JR NZ,L037D ; (+009H)
+ LD (HL),000H
+L0376: DEC HL
+ DJNZ L036D ; (-00cH)
+ OR A
+ JP CKHEX
+
+L037D: LD A,(HL)
+ OR A
+ JR NZ,L0383 ; (+002H)
+ LD (HL),020H
+L0383: DEC HL
+ DJNZ L037D ; (-009H)
+ OR A
+ JP CKHEX
+
+ INC A
+ JR Z,L0406 ; (+079H)
+ DEC A
+ JP Z,L041C
+L0391: CALL L0426
+ CALL SKPDE
+SETDNM: CALL L0648
+ CALL BREAKX
+ LD D,A
+ LD A,(L0060)
+ LD E,A
+ CALL POPRA
+ XOR A
+ DI
+ OUT (LSE3),A
+ LD (0E000H),A
+ CPL
+ LD (0E000H),A
+ OUT (LSE1),A
+ EI
+ LD C,000H
+ EX AF,AF'
+ PUSH AF
+ CALL L0459
+ LD A,000H
+L03BC: EX AF,AF'
+L03BD: LD B,010H
+L03BF: CALL L043C
+ CALL L0459
+ BIT 1,A
+ JR NZ,L03BD ; (-00cH)
+ DJNZ L03BF ; (-00cH)
+ BIT 0,A
+ JR Z,L03DB ; (+00cH)
+ BIT 2,A
+ JR NZ,L03EC ; (+019H)
+ EX AF,AF'
+ DEC A
+ JR NZ,L03BC ; (-01bH)
+ LD A,006H
+ JR L03EE ; (+013H)
+
+L03DB: PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,INKEY1
+ LD DE,L0B17
+ LD BC,0000AH
+L03E7: LDIR
+ POP BC
+ POP DE
+ POP HL
+L03EC: LD A,040H
+L03EE: LD (003BBH),A
+L03F1: CALL L043C
+ CALL L0494
+ OR A
+ JR Z,L03F1 ; (-009H)
+ LD (L005F),A
+ LD C,A
+ LD A,D
+ CALL POPRA
+ POP AF
+ EX AF,AF'
+ LD A,C
+ RET
+
+L0406: CALL L0426
+ PUSH HL
+ CALL L0494
+ LD HL,L005F
+ OR A
+ JR Z,L0419 ; (+006H)
+ CP (HL)
+ JR NZ,L0419 ; (+003H)
+ POP HL
+ XOR A
+ RET
+
+L0419: LD (HL),A
+ POP HL
+ RET
+
+L041C: CALL L0426
+ CALL L0494
+ LD (L005F),A
+ RET
+
+L0426: PUSH HL
+ LD HL,(L1360)
+ LD A,L
+ CP H
+ POP HL
+ RET Z
+ EX (SP),HL
+ INC A
+ LD (L1360),A
+ LD HL,L1361
+ CALL ADDHLA
+ LD A,(HL)
+ POP HL
+ RET
+
+L043C: DI
+ OUT (LSE3),A
+ LD A,(0E002H)
+ OUT (LSE1),A
+ EI
+ RLCA
+ RLCA
+ LD A,C
+ JR C,L0451 ; (+007H)
+ OR A
+ RET Z
+ LD C,000H
+ LD A,D
+DPALBK: JR L0456 ; (+005H)
+
+L0451: DEC A
+ RET Z
+ LD C,001H
+ LD A,E
+L0456: JP POPRA
+
+L0459: CALL SKPDE
+ LD DE,INKEY1
+ LD HL,L0B17
+ LD BC,L0A00
+ DI
+ OUT (LSE3),A
+L0468: LD A,B
+ ADD A,0EFH
+ LD (0E000H),A
+ CP FDPA
+ LD A,(0E001H)
+ JR NZ,L0477 ; (+002H)
+ OR 07FH
+L0477: CP 0FFH
+ JR Z,L047D ; (+002H)
+ SET 0,C
+L047D: EX DE,HL
+ CP (HL)
+ LD (HL),A
+ EX DE,HL
+ JR Z,L0485 ; (+002H)
+ SET 1,C
+L0485: CPL
+ AND (HL)
+ JR Z,L048B ; (+002H)
+ SET 2,C
+L048B: INC HL
+ INC DE
+ DJNZ L0468 ; (-027H)
+ LD A,C
+L0490: OUT (LSE1),A
+ EI
+DGCOL: RET
+
+L0494: CALL SKPDE
+ LD HL,L0B17
+ LD DE,INKEY1
+ PUSH HL
+ PUSH DE
+ LD BC,0000AH
+ LDIR
+ POP HL
+ POP DE
+ LD BC,L0AF9
+ DI
+ OUT (LSE3),A
+ LD A,C
+ LD (0E000H),A
+ NOP
+ LD A,(0E001H)
+ LD (DE),A
+L04B5: LD A,C
+ LD (0E000H),A
+ CP FDPA
+ LD A,(0E001H)
+ LD (DE),A
+ JR Z,L04E4 ; (+023H)
+ CPL
+ AND (HL)
+L04C3: LD (HL),A
+ INC DE
+ INC HL
+ DEC C
+ DJNZ L04B5 ; (-014H)
+ OUT (LSE1),A
+ EI
+ LD BC,L0A00
+L04CF: DEC HL
+ LD A,(HL)
+ OR A
+ JR NZ,L0507 ; (+033H)
+ INC C
+ DJNZ L04CF ; (-008H)
+ LD B,00AH
+L04D9: DEC DE
+ LD A,(DE)
+ CP 0FFH
+ JR NZ,L04E7 ; (+008H)
+L04DF: DJNZ L04D9 ; (-008H)
+L04E1: XOR A
+ JR L0490 ; (-054H)
+
+L04E4: XOR A
+ JR L04C3 ; (-024H)
+
+L04E7: LD A,B
+ CP 002H
+ JR NZ,L04F5 ; (+009H)
+L04EC: LD A,(DE)
+ AND 081H
+DWIDTH: JR NZ,L04DF ; (-012H)
+ LD A,01BH
+ JR L0490 ; (-065H)
+
+L04F5: CP 001H
+ JR Z,L04E1 ; (-018H)
+ CP 000H
+ JR NZ,L04DF ; (-01eH)
+ LD A,(DE)
+ AND 001H
+ JR NZ,L04DF ; (-023H)
+ LD A,(L005F)
+ JR L0490 ; (-077H)
+
+L0507: PUSH AF
+ LD A,B
+ LD (004FAH),A
+ LD A,(HL)
+ LD (004FFH),A
+ POP AF
+ DEC B
+ JR NZ,L054A ; (+036H)
+ CALL L05B7
+ LD A,(00B18H)
+ BIT 6,A
+ JR Z,L04E1 ; (-03dH)
+ BIT 0,A
+ LD A,B
+ JR NZ,L0525 ; (+002H)
+ ADD A,005H
+L0525: CP 00AH
+ JR NC,L04E1 ; (-048H)
+ LD L,A
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ LD BC,L12C0
+ ADD HL,BC
+ LD A,(HL)
+ OR A
+ JR Z,L04E1 ; (-057H)
+ LD DE,L1360
+ LD A,001H
+ LD (DE),A
+L053E: INC DE
+ LD BC,00010H
+ LDIR
+ LD A,(01362H)
+ JP L0490
+
+L054A: CALL L05B7
+ LD A,C
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,B
+ LD L,A
+ LD H,000H
+ LD A,(00B18H)
+ BIT 6,A
+ LD BC,L0B2B
+ JR Z,L058E ; (+02fH)
+ PUSH AF
+ LD A,(L0060)
+ CP 043H
+ JR NZ,L056B ; (+004H)
+ POP AF
+ XOR 001H
+ PUSH AF
+L056B: POP AF
+ BIT 0,A
+ JR NZ,L0573 ; (+003H)
+ LD BC,L0B3D
+L0573: LD A,(L0060)
+ CP 0FFH
+ JR NZ,L0587 ; (+00dH)
+ LD BC,L0B4F
+ LD A,(00B18H)
+ BIT 0,A
+ JR Z,L0587 ; (+003H)
+ LD BC,L0B61
+L0587: CALL L13E0
+ LD A,C
+ JP L0490
+
+L058E: CALL L13E0
+ LD A,C
+ CP 020H
+ JP C,L0490
+ LD HL,L0B73
+ LD B,005H
+L059C: CP (HL)
+ JR Z,L05B1 ; (+012H)
+ INC HL
+ DJNZ L059C ; (-006H)
+ CP 040H
+ JP C,L04E1
+ CP 05BH
+ JP NC,L04E1
+ SUB 040H
+ JP L0490
+
+L05B1: LD A,020H
+ SUB B
+ JP L0490
+
+L05B7: LD B,008H
+L05B9: RRCA
+ JR C,L05BF ; (+003H)
+ DJNZ L05B9 ; (-005H)
+ RET
+
+L05BF: DEC B
+ RET
+
+L05C1: LD A,0E8H
+ DI
+ OUT (LSE3),A
+ LD (0E000H),A
+ NOP
+ LD A,(0E001H)
+ OUT (LSE1),A
+ EI
+ AND 081H
+ RET Z
+ RLCA
+ RET C
+ JR L05C1 ; (-016H)
+
+L05D7: CALL SKPDE
+ LD HL,(L0054)
+ LD A,(L005B)
+ CP L
+ RET C
+ CALL PUSHW
+ LD A,(HL)
+ OR A
+ RET
+
+L05E8: CALL L05D7
+ RET Z
+L05EC: LD A,00DH
+ JP L0BFF
+
+L05F1: CALL L0BFD
+ LD A,(L0054)
+L05F7: SUB 00AH
+LBOUND: JR NC,L05F7 ; (-004H)
+ ADD A,00AH
+ RET Z
+ JR L05F1 ; (-00fH)
+
+L0600: CALL IOOUT
+ LD HL,(L0054)
+ PUSH HL
+ PUSH AF
+ RST 018H
+ DB 01EH
+ POP AF
+ RST 018H
+ DB 01DH
+ CALL POPRA
+ SET 3,H
+ LD DE,(0005DH)
+ LD A,E
+ OR D
+ CALL POPRA
+ POP HL
+ INC L
+HCLSW: LD A,(0005CH)
+ CP L
+ JP NC,L07EC
+L0624: LD A,(L005B)
+ LD L,A
+ INC H
+ PUSH HL
+ CALL PUSHW
+ LD (HL),001H
+ POP HL
+ LD A,(L0057)
+ CP H
+ JP NC,L07EC
+ LD H,A
+ PUSH HL
+ CALL L0730
+ POP HL
+ JP L07EC
+
+PUSHW: LD E,H
+ LD D,000H
+ LD HL,.HL
+ ADD HL,DE
+ RET
+
+L0648: LD HL,(L0054)
+ PUSH DE
+ PUSH AF
+ LD D,LSD0
+ LD E,L
+ LD A,H
+ ADD A,A
+HCLS: ADD A,A
+ ADD A,H
+ LD L,A
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,DE
+L065B: POP AF
+ POP DE
+ RET
+
+L065E: ADD A,A
+ LD HL,L0067
+ CALL ADDHLA
+ CALL INDRCT
+ JP (HL)
+
+L0669: LD B,D
+ LD C,E
+L066B: LD DE,00028H
+ EX DE,HL
+ ADD HL,DE
+ DEC B
+ JR Z,L067E ; (+00bH)
+ PUSH HL
+ PUSH BC
+ LD B,000H
+ CALL L069E
+ POP BC
+ POP HL
+ JR L066B ; (-013H)
+
+L067E: EX DE,HL
+ LD E,C
+L0680: LD A,(L005D)
+ LD D,A
+ LD A,(0005EH)
+ OR D
+ LD D,A
+L0689: DI
+ OUT (LSE3),A
+ LD (HL),000H
+ SET 3,H
+ LD (HL),D
+ RES 3,H
+ OUT (LSE1),A
+ EI
+ INC HL
+ DEC E
+ JR NZ,L0689 ; (-011H)
+ RET
+
+L069B: LD BC,00028H
+L069E: LD A,0B0H
+ JR L06A4 ; (+002H)
+
+L06A2: LD A,0B8H
+L06A4: LD (006BCH),A
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ RES 3,H
+ RES 3,D
+ CALL L06B8
+ POP BC
+ POP DE
+ POP HL
+ SET 3,H
+ SET 3,D
+L06B8: DI
+ OUT (LSE3),A
+ LDIR
+ OUT (LSE1),A
+ EI
+ RET
+
+L06C1: LD HL,0D000H
+ LD DE,0D7D0H
+ CALL L069B
+ LD HL,0D028H
+ LD DE,0D000H
+ LD B,032H
+L06D2: PUSH BC
+ CALL L069B
+ POP BC
+ DJNZ L06D2 ; (-007H)
+ LD HL,.HL
+ LD D,H
+ LD E,L
+ LD A,(HL)
+ INC HL
+ LD BC,00031H
+ LDIR
+ LD (DE),A
+ RET
+
+L06E7: LD HL,0D7CFH
+ LD DE,0D7F7H
+ LD B,032H
+L06EF: PUSH BC
+ LD BC,00028H
+ CALL L06A2
+ POP BC
+ DJNZ L06EF ; (-00aH)
+ LD HL,0D7D0H
+ LD DE,0D000H
+ CALL L069B
+ LD HL,L00D9
+ LD D,H
+ LD E,L
+ DEC HL
+ LD A,(DE)
+ LD BC,00031H
+ LDDR
+ LD (DE),A
+ RET
+
+L0710: LD HL,0D3E8H
+ XOR A
+ CALL POPRA
+ SET 3,H
+ LD A,(L005D)
+ CALL POPRA
+ LD DE,0D3E9H
+ LD BC,L0027
+ CALL L069E
+ CALL L06C1
+ XOR A
+ LD (L00C0),A
+ RET
+
+L0730: LD A,(L004E)
+ OR A
+ JR Z,L0710 ; (-026H)
+ CALL L075F
+ CALL L0669
+ LD A,(L0056)
+ LD H,A
+ CALL PUSHW
+ LD A,(L0057)
+ SUB E
+ LD B,A
+ LD (HL),000H
+ INC HL
+ LD D,H
+ LD E,L
+ INC DE
+ CALL NZ,LDHLDE
+ LD (HL),000H
+ RET
+
+L0754: LD A,(L005B)
+ LD L,A
+ LD A,(L0056)
+ LD H,A
+ JP L07EC
+
+L075F: LD HL,(L005B)
+ LD DE,(00056H)
+ LD A,D
+ SUB E
+ INC A
+ LD D,A
+ LD A,H
+ SUB L
+ INC A
+ LD E,A
+ CALL L0754
+ JP L0648
+
+ CALL SKPDE
+ LD A,(L004E)
+ OR A
+ JR NZ,L078B ; (+00eH)
+ LD A,031H
+ LD (L0057),A
+ CALL L078B
+ LD A,018H
+ LD (L0057),A
+ RET
+
+L078B: CALL L075F
+L078E: PUSH DE
+ PUSH HL
+ CALL L0680
+ POP HL
+ LD BC,00028H
+ ADD HL,BC
+ POP DE
+ DEC D
+ JR NZ,L078E ; (-00eH)
+ LD A,(L0056)
+ LD H,A
+ CALL PUSHW
+ LD A,(L0057)
+ SUB E
+ ADD A,002H
+ LD B,A
+ JP ?CLRHL
+
+ XOR A
+ LD (0091FH),A
+ LD HL,(L0054)
+ PUSH HL
+ INC H
+ CALL PUSHW
+ LD A,(L0057)
+ LD D,A
+L07BD: LD A,(HL)
+ OR A
+ JR Z,L07C7 ; (+006H)
+ INC HL
+ INC E
+ LD A,D
+ CP E
+ JR NC,L07BD ; (-00aH)
+L07C7: DEC E
+ POP HL
+ LD H,E
+ JR L07DB ; (+00fH)
+
+ LD HL,(L0054)
+ JR L07DF ; (+00eH)
+
+ LD HL,(L0054)
+ INC L
+ LD A,(0005CH)
+ CP L
+ JR NC,L07EC ; (+011H)
+L07DB: LD A,(L005B)
+ LD L,A
+L07DF: INC H
+ LD A,(L0057)
+ CP H
+ JR NC,L07EC ; (+006H)
+ LD H,A
+ PUSH HL
+ CALL L0730
+ POP HL
+L07EC: LD (L0054),HL
+ RET
+
+ LD HL,(L0054)
+ JR L0802 ; (+00dH)
+
+ LD HL,(L0054)
+ LD A,(L005B)
+ CP L
+ JR C,0080DH ; (+00fH)
+ LD A,(0005CH)
+ LD L,A
+L0802: LD A,(L0056)
+ CP H
+ JR C,0080FH ; (+007H)
+ LD A,(L0056)
+ LD H,A
+ LD A,02DH
+ LD A,025H
+ JR L07EC ; (-026H)
+
+ LD A,0EFH
+ LD HL,0433EH
+ LD HL,0FF3EH
+ LD (L0060),A
+ RET
+
+ LD HL,(L0054)
+ LD BC,(0005BH)
+ LD A,L
+ DEC L
+ INC C
+ CP C
+ JR NC,L0837 ; (+00cH)
+ PUSH HL
+ CALL PUSHW
+ LD A,(HL)
+ POP HL
+ INC L
+ OR A
+ JR Z,L0874 ; (+03fH)
+ LD L,B
+ DEC H
+L0837: LD DE,(00054H)
+ LD (L0054),HL
+L083E: EX DE,HL
+ LD A,(L005B)
+ CP L
+ JR C,L086D ; (+028H)
+L0845: PUSH HL
+ CALL PUSHW
+ LD A,(HL)
+ POP HL
+ OR A
+ JR Z,L085D ; (+00fH)
+ CALL L0882
+ PUSH HL
+ LD A,(0005CH)
+ LD L,A
+ DEC H
+ CALL L089A
+ POP HL
+ JR L0874 ; (+017H)
+
+L085D: LD A,(0005CH)
+ LD L,A
+ DEC H
+L0862: LD DE,(0005DH)
+ LD A,E
+ OR D
+ LD E,A
+ LD D,000H
+ JR L089A ; (+02dH)
+
+L086D: CALL L0882
+ DEC BC
+ CALL L0895
+L0874: INC L
+ LD A,(0005CH)
+ CP L
+ JR NC,L086D ; (-00eH)
+ LD A,(L005B)
+ LD L,A
+ INC H
+ JR L0845 ; (-03dH)
+
+L0882: PUSH HL
+ RST 018H
+ DB 01EH
+ SET 3,H
+ CALL BREAKX
+ LD E,A
+ RES 3,H
+ CALL BREAKX
+ LD D,A
+ LD B,H
+ LD C,L
+ POP HL
+ RET
+
+L0895: PUSH HL
+ LD H,B
+ LD L,C
+ JR L089D ; (+003H)
+
+L089A: PUSH HL
+ RST 018H
+ DB 01EH
+L089D: SET 3,H
+ LD A,E
+ CALL POPRA
+ RES 3,H
+ LD A,D
+ CALL POPRA
+ LD B,H
+ LD C,L
+ POP HL
+ RET
+
+L08AD: LD HL,(L0054)
+ CALL L0302
+ DEC E
+ LD H,E
+ LD A,(0005CH)
+ LD L,A
+ RET
+
+ CALL L08AD
+ CALL L0882
+ LD A,LSPAL
+ CP D
+ JR Z,L08C8 ; (+003H)
+ XOR A
+ CP D
+ RET NZ
+L08C8: LD BC,(0005BH)
+ EX DE,HL
+ LD HL,(L0054)
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ JR Z,L0862 ; (-074H)
+ LD A,C
+ CP L
+ JR NC,L08E4 ; (+00aH)
+ DEC L
+ CALL L0882
+ INC BC
+ CALL L0895
+ JR L08C8 ; (-01cH)
+
+L08E4: PUSH HL
+ LD L,B
+ DEC H
+ CALL L0882
+ EX (SP),HL
+ CALL L089A
+ POP HL
+ JR L08C8 ; (-029H)
+
+ LD HL,L0071
+ LD (L005D),HL
+L08F7: LD HL,L1800
+ LD (L0056),HL
+ LD HL,L2700
+ LD (L005B),HL
+ XOR A
+ LD (L004E),A
+ RET
+
+ CALL SKPDE
+L090B: LD A,(DE)
+ INC DE
+ OR A
+ RET Z
+ LD C,A
+ CP 005H
+ JR Z,L0933 ; (+01fH)
+ CP 006H
+ JR Z,L0932 ; (+01aH)
+ SUB 041H
+ CP 01AH
+ JR NC,HCURON ; (+00dH)
+ LD A,000H
+ OR A
+ JR Z,HCURON ; (+008H)
+ LD A,C
+ LD HL,L08F7
+ CALL ADDHLA
+ LD C,(HL)
+HCURON: LD A,C
+ RST 018H
+ DB 003H
+ CP 00DH
+ JR NZ,L090B ; (-027H)
+L0932: XOR A
+L0933: LD (0091FH),A
+ JR L090B ; (-02dH)
+
+ AND C
+ SBC A,D
+ SBC A,A
+HCUROF: SBC A,H
+ SUB D
+ XOR D
+ SUB A
+ SBC A,B
+ AND (HL)
+ XOR A
+ XOR C
+ CP B
+ OR E
+FLASH: OR B
+ OR A
+ SBC A,(HL)
+ AND B
+ SBC A,L
+ AND H
+ SUB (HL)
+ AND L
+CURMOV: XOR E
+ AND E
+ SBC A,E
+ CP L
+ AND D
+ NOP
+ NOP
+L0954: NOP
+L0955: PUSH DE
+ PUSH HL
+ LD (L0954),A
+ LD (00952H),DE
+ LD HL,0E007H
+ DI
+ OUT (LSE3),A
+ LD (HL),0B4H
+ LD (HL),074H
+ DEC HL
+ LD (HL),0C0H
+ LD (HL),0A8H
+ DEC HL
+ LD (HL),002H
+ LD (HL),000H
+L0972: LD HL,0E007H
+ LD (HL),080H
+PONTCB: DEC HL
+ LD E,(HL)
+ LD D,(HL)
+PONTB: LD HL,0A8C0H
+ OR A
+ SBC HL,DE
+ JR NZ,L0972 ; (-010H)
+ LD HL,0E005H
+ LD (HL),0F6H
+ LD (HL),079H
+ OUT (LSE1),A
+ EI
+ POP HL
+ POP DE
+ RET
+
+L098F: PUSH BC
+ PUSH HL
+ DI
+ OUT (LSE3),A
+ LD HL,0E007H
+ LD (HL),080H
+ LD (HL),040H
+ DEC HL
+ LD E,(HL)
+ LD D,(HL)
+ DEC HL
+ LD C,(HL)
+ LD B,(HL)
+ OUT (LSE1),A
+ EI
+ PUSH BC
+ LD A,D
+L09A6: OR E
+ JR NZ,L09AC ; (+003H)
+ LD DE,0A8C0H
+L09AC: LD HL,0A8C0H
+ LD A,(L0954)
+ OR A
+ SBC HL,DE
+ LD DE,L5460
+ CALL L09EB
+ OR A
+ LD DE,(00952H)
+ RR D
+ RR E
+ PUSH AF
+ ADD HL,DE
+ LD DE,L5460
+ CALL L09EB
+ LD C,A
+ ADD HL,HL
+ EX DE,HL
+ POP AF
+ LD A,C
+ POP BC
+ PUSH AF
+ OR A
+ LD HL,03CFBH
+ SBC HL,BC
+ JR C,L09DC ; (+001H)
+ INC DE
+L09DC: POP AF
+ JR NC,L09E0 ; (+001H)
+ INC DE
+L09E0: EX DE,HL
+ LD DE,0A8C0H
+ CALL L09EB
+ EX DE,HL
+ POP HL
+ POP BC
+ RET
+
+L09EB: OR A
+ SBC HL,DE
+ JR NC,L09F2 ; (+002H)
+ ADD HL,DE
+ RET
+
+L09F2: XOR 001H
+ RET
+
+L09F5: LD A,04EH
+ DEC L
+ RET Z
+ LD A,056H
+ DEC L
+ RET Z
+ LD A,05EH
+ DEC L
+L0A00: RET Z
+ LD A,066H
+ DEC L
+ RET
+
+L0A05: PUSH DE
+ LD (00A23H),A
+ LD DE,0FFFFH
+ LD HL,0E002H
+ DI
+ OUT (LSE3),A
+L0A12: BIT 7,(HL)
+ JR Z,L0A12 ; (-004H)
+L0A16: BIT 7,(HL)
+ JR NZ,L0A16 ; (-004H)
+ LD L,008H
+ LD A,011H
+L0A1E: DEC A
+ JR NZ,L0A1E ; (-003H)
+L0A21: INC DE
+ BIT 0,(HL)
+ JR Z,L0A21 ; (-005H)
+ OUT (LSE1),A
+ EI
+ LD A,D
+ OR A
+ LD A,E
+ JR Z,L0A30 ; (+002H)
+ LD A,0FFH
+L0A30: LD (L0066),A
+ POP DE
+ POP HL
+ SCF
+ RET
+
+ INC A
+ PUSH HL
+ LD L,A
+ CALL L09F5
+ JR Z,L0A05 ; (-03aH)
+ CALL L09F5
+ LD (00A75H),A
+ LD (00A55H),A
+ LD HL,0E002H
+ DI
+ OUT (LSE3),A
+L0A4E: BIT 7,(HL)
+ JR Z,L0A4E ; (-004H)
+ LD L,008H
+ BIT 0,(HL)
+ LD A,L
+ JR Z,L0A5A ; (+001H)
+ XOR A
+L0A5A: LD (00A7CH),A
+ OUT (LSE1),A
+ LD A,009H
+L0A61: PUSH AF
+ XOR A
+L0A63: DEC A
+ JR NZ,L0A63 ; (-003H)
+ POP AF
+BINPUT: DEC A
+ JR NZ,L0A61 ; (-009H)
+ OUT (LSE3),A
+ LD L,002H
+L0A6E: BIT 7,(HL)
+ JR Z,L0A6E ; (-004H)
+ LD L,008H
+ BIT 0,(HL)
+ LD A,L
+ JR Z,L0A7A ; (+001H)
+ XOR A
+L0A7A: LD L,A
+ LD A,000H
+ AND L
+ LD (L0065),A
+ OUT (LSE1),A
+ EI
+GETL: POP HL
+ OR A
+ RET
+
+ DI
+ RET
+
+ EI
+ RET
+
+ DS 110, 000H
+L0AF9: DS 7, 000H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L0B17: NOP
+ NOP
+ NOP
+INKEY$: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+INKEY1: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L0B2B: JP PE,0900BH
+ RLA
+ CALL M,00019H
+ DEC SP
+ LD A,(L180D)
+ DJNZ L0B4A ; (+012H)
+ LD DE,01413H
+ CCF
+ CPL
+L0B3D: LD HL,(0900CH)
+ RLA
+ EI
+ DEC B
+ NOP
+ DEC HL
+ LD HL,(0160DH)
+ DEC D
+ LD (DE),A
+L0B4A: LD DE,01413H
+ ADD A,05FH
+L0B4F: JP (HL)
+
+ INC C
+ SUB B
+ RLA
+ LD L,B
+ DEC B
+ NOP
+ ADD A,H
+ JP (HL)
+
+ DEC C
+ LD D,015H
+ LD (DE),A
+ LD DE,01413H
+ ADC A,A
+ ADC A,E
+L0B61: LD L,D
+ INC C
+ SUB B
+ RLA
+ LD L,H
+ ADD HL,DE
+ NOP
+ CP 089H
+ DEC C
+ LD D,015H
+ LD (DE),A
+ LD DE,01413H
+ ADC A,D
+ LD A,E
+L0B73: LD E,E
+ LD E,H
+ LD E,L
+ LD E,(HL)
+ CPL
+L0B78: SUB C
+ DEC BC
+ LD B,E
+ LD D,D
+ LD D,H
+ NOP
+ ADC A,D
+ NOP
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+INKEYF: XOR D
+ DEC BC
+ OR L
+ DEC BC
+ CALL NZ,0000BH
+ RRCA
+ LD C,E
+ LD B,D
+ NOP
+ NOP
+ ADD A,C
+ NOP
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+INKEY0: NOP
+ PUSH HL
+ NOP
+ XOR D
+ DEC BC
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ RST 018H
+ DB 00CH
+ LD A,080H
+ RET C
+ JP C,0017DH
+ RST 018H
+ DB 017H
+ RET
+
+ EX AF,AF'
+ LD HL,L0BFF
+L0BB9: LD A,(L1090)
+ OR A
+ JR Z,L0BC2 ; (+003H)
+ LD HL,L0C43
+L0BC2: EX AF,AF'
+ JP (HL)
+
+ LD A,(L0054)
+ RET
+
+ LD A,00DH
+L0BCA: PUSH AF
+ LD A,(L1091)
+L0BCE: OR A
+ JR NZ,L0BD4 ; (+003H)
+ POP AF
+ JR L0BFF ; (+02bH)
+
+L0BD4: POP AF
+ JP L0F3E
+
+ PUSH AF
+ LD A,(L1091)
+ OR A
+ JR NZ,L0BE2 ; (+003H)
+ POP AF
+ JR L0C43 ; (+061H)
+
+L0BE2: POP AF
+ JP L0F2E
+
+ CALL SKPDE
+ LD HL,L0BCA
+ JR L0BF4 ; (+006H)
+
+L0BEE: CALL SKPDE
+ LD HL,L0BFF
+L0BF4: LD A,(DE)
+ OR A
+ RET Z
+ CALL L00FA
+ INC DE
+ JR L0BF4 ; (-009H)
+
+L0BFD: LD A,020H
+L0BFF: CALL IOOUT
+L0C02: LD C,A
+ LD A,(L004D)
+ OR A
+ JR Z,L0C3A ; (+031H)
+ LD A,C
+ CP 020H
+ JR NC,L0C37 ; (+029H)
+ LD DE,(00054H)
+ LD HL,(L005B)
+ CP 014H
+ JR Z,L0C21 ; (+008H)
+ CP 012H
+ JR NZ,L0C26 ; (+009H)
+ LD HL,(L0056)
+ LD E,D
+L0C21: LD A,L
+ CP E
+ JP NC,L0D3F
+L0C26: LD A,C
+ LD HL,L0C8F
+ ADD A,L
+ LD L,A
+ JR NC,L0C2F ; (+001H)
+ INC H
+L0C2F: LD A,(HL)
+ INC A
+ JR Z,L0C3A ; (+007H)
+ DEC A
+ JP Z,L0D3F
+L0C37: CALL L0C60
+L0C3A: LD A,C
+ CP 020H
+ JP C,L065E
+ JP L0600
+
+L0C43: CALL IOOUT
+ LD C,A
+ CP 00DH
+ JR Z,L0C02 ; (-049H)
+ CALL L0600
+ LD A,(L004D)
+ OR A
+ RET Z
+ LD A,C
+ CP 011H
+ JR C,L0C8A ; (+032H)
+ CP 017H
+ JR C,L0C8C ; (+030H)
+ CP 020H
+ JR C,L0C8A ; (+02aH)
+L0C60: CP 060H
+ JR C,L0C8C ; (+028H)
+ CALL CHKACC
+ ADD HL,BC
+ ADD A,B
+ LD A,E
+ ADD A,08BH
+ RST 010H
+ RST 008H
+ CALL M,0FFFBH
+ JR Z,L0C8C ; (+019H)
+ CP 092H
+ JR C,L0C8A ; (+013H)
+ CALL CHKACC
+ ADD HL,BC
+ SBC A,C
+ SUB L
+ XOR H
+ AND A
+ OR H
+ OR C
+ OR (HL)
+ OR L
+ CP H
+ JR Z,L0C8A ; (+004H)
+ CP 0BFH
+ JR C,L0C8C ; (+002H)
+L0C8A: LD A,02EH
+L0C8C: JP L0FA9
+
+L0C8F: NOP
+ NOP
+ NOP
+ NOP
+ RST 038H
+ RST 038H
+ RST 038H
+ DEC E
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC C
+ NOP
+ NOP
+ NOP
+ LD A,(BC)
+ INC BC
+ JR NZ,00CB2H ; (+00eH)
+ NOP
+ NOP
+ RST 038H
+ NOP
+ RST 038H
+ RST 038H
+ DEC C
+ RST 038H
+ NOP
+ NOP
+ NOP
+L0CAF: DI
+ XOR A
+ LD (L004D),A
+ LD (L1091),A
+ LD SP,L0000
+ OUT (LSE1),A
+ LD A,004H
+ RST 018H
+ DB 003H
+L0CC0: LD HL,L1B18
+ XOR A
+ LD (L0CC0),A
+ LD D,A
+ LD E,A
+ RST 018H
+ DB 026H
+ LD DE,$CMT
+ LD A,B
+ DEC A
+ JR Z,L0CDB ; (+009H)
+ LD DE,$FD
+ DEC A
+ JR Z,L0CDB ; (+003H)
+ LD DE,$QD
+L0CDB: LD A,C
+ RST 018H
+ DB 03AH
+ JP L00DA
+
+ LD HL,(L1072)
+ ADD HL,DE
+ LD (L1072),HL
+ LD HL,(L1074)
+ ADD HL,DE
+ LD (L1074),HL
+ LD HL,(L1076)
+ ADD HL,DE
+ LD (L1076),HL
+ LD HL,(L1078)
+ ADD HL,DE
+ LD (L1078),HL
+ LD HL,(L107A)
+ ADD HL,DE
+ LD (L107A),HL
+ RET
+
+L0D05: LD HL,(00B15H)
+L0D08: LD A,H
+ OR L
+ JR Z,L0D20 ; (+014H)
+ PUSH DE
+ EX DE,HL
+ LD HL,0E004H
+ DI
+ OUT (LSE3),A
+ LD (HL),E
+ LD (HL),D
+ LD A,001H
+ LD (0E008H),A
+ OUT (LSE1),A
+ EI
+ POP DE
+ RET
+
+L0D20: LD A,036H
+BRKEY: DI
+ OUT (LSE3),A
+ LD (0E007H),A
+ XOR A
+ LD (0E008H),A
+ OUT (LSE1),A
+ EI
+ RET
+
+L0D30: PUSH AF
+ PUSH BC
+ AND 00FH
+ LD B,A
+ LD A,008H
+ SUB B
+ LD (L119E),A
+ POP BC
+ POP AF
+ RET
+
+L0D3E: XOR A
+L0D3F: PUSH HL
+ LD HL,L04EC
+ JR Z,L0D4E ; (+009H)
+ CP 001H
+L0D47: JR Z,L0D59 ; (+010H)
+ CALL L0D08
+ POP HL
+ RET
+
+L0D4E: CALL L0D08
+ LD HL,L2710
+L0D54: DEC HL
+ LD A,H
+ OR L
+ JR NZ,L0D54 ; (-005H)
+L0D59: CALL L0D20
+ POP HL
+ RET
+
+$USR: DS 2, 000H ; $USR device descriptor
+L0D60: DB "USR",000H,09FH
+ DS 2, 000H
+ DB LSE5
+ DB 000H
+ DB 077H
+ DB 00DH
+ DB 077H
+ DB 00DH
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 086H
+ DB 00DH
+ DB 086H
+ DB 00DH
+ DB LSE5
+ DB 000H
+ DB 021H
+ DB 001H
+ DB 010H
+ DB 0DFH
+ DB 013H
+ LD A,D
+ OR E
+ JP Z,01F9AH
+ LD (ZWRK1),DE
+ RET
+
+ LD HL,(ZWRK1)
+ JP (HL)
+
+ DS 83, 000H
+EQTBL: DS 25, 000H
+$KB: DS 10, 000H
+L0E00: DS 16, 000H
+L0E10: DS 46, 000H
+L0E3E: DS 35, 000H
+CRT1C: DS 82, 000H
+PLTOTX: DS 77, 000H
+ RST 030H
+ CPL
+ LD C,H
+ LD D,B
+ LD D,H
+ NOP
+ ADC A,D
+ NOP
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ NOP
+ NOP
+ DAA
+ RRCA
+ ADD HL,DE
+ RRCA
+ LD A,(L1095)
+ RET
+
+L0F1D: LD A,00DH
+ CALL L0FA9
+ XOR A
+ LD (L1095),A
+ RET
+
+ LD HL,L1090
+ BIT 0,(HL)
+ JR Z,L0F3E ; (+010H)
+L0F2E: CALL IOOUT
+ LD B,A
+ LD A,(L004D)
+ OR A
+ LD A,B
+ LD E,0FFH
+ JR Z,L0F4E ; (+013H)
+ RST 018H
+ DB 004H
+ RET
+
+L0F3E: CALL IOOUT
+ LD B,A
+ LD A,(L004D)
+ OR A
+ LD A,B
+ LD E,000H
+ JR Z,L0F4E ; (+003H)
+ RST 018H
+ DB 003H
+ RET
+
+L0F4E: LD A,(L1097)
+ CP 001H
+ LD A,044H
+ JP NZ,00180H
+ LD A,B
+ CP 00DH
+ JR Z,L0F1D ; (-040H)
+ LD HL,L1095
+ INC (HL)
+ SUB 005H
+ CP 002H
+ JR C,L0F7C ; (+015H)
+ LD A,B
+ CP 020H
+ JR NC,L0FB0 ; (+044H)
+ BIT 0,E
+ JR Z,L0F80 ; (+010H)
+ SUB 011H
+ CP 006H
+ JR C,L0FB1 ; (+03bH)
+ SUB QDPC
+ CP 002H
+ JR NC,L0FAE ; (+032H)
+L0F7C: LD A,02EH
+ JR L0FB0 ; (+030H)
+
+L0F80: LD HL,L1095
+ DEC (HL)
+ LD A,B
+ CP 015H
+ LD B,00FH
+ JR Z,L0FB1 ; (+026H)
+ CP 011H
+ LD B,009H
+ JR Z,L0FB1 ; (+020H)
+ CP 012H
+ LD B,00BH
+ JR Z,L0FB1 ; (+01aH)
+ CP 016H
+ JR NZ,L0FB0 ; (+015H)
+ LD A,00CH
+ CALL L0FB0
+ LD A,00AH
+ CALL L0FB0
+ LD A,003H
+ JR L0FB0 ; (+007H)
+
+L0FA9: CALL IOOUT
+ JR L0FB0 ; (+002H)
+
+L0FAE: LD A,020H
+L0FB0: LD B,A
+L0FB1: CALL L0FCA
+ LD A,B
+ DI
+ CALL L0FBB
+ EI
+ RET
+
+L0FBB: OUT (0FFH),A
+ LD A,080H
+ OUT (0FEH),A
+ LD A,001H
+ CALL L0FCB
+L0FC6: XOR A
+ OUT (0FEH),A
+ RET
+
+L0FCA: XOR A
+L0FCB: CALL SKPDE
+ LD C,A
+ LD B,00EH
+L0FD1: LD HL,0E678H
+L0FD4: IN A,(0FEH)
+ AND 00DH
+ CP C
+ RET Z
+ DEC HL
+ LD A,H
+ OR L
+ NOP
+ NOP
+ JR NZ,L0FD4 ; (-00dH)
+ DJNZ L0FD1 ; (-012H)
+ XOR A
+ LD (L004D),A
+ CALL L0FC6
+ LD A,041H
+ JP L0182
+
+ DS 17, 000H
+L1000: NOP
+L1001: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1012: NOP
+ NOP
+L1014: NOP
+ NOP
+ NOP
+ NOP
+L1018: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L103E: NOP
+ NOP
+L1040: LD (BC),A
+ NOP
+L1042: NOP
+L1043: NOP
+L1044: NOP
+ NOP
+L1046: NOP
+ NOP
+ NOP
+ NOP
+L104A: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1050: LD BC,L0000
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1069: NOP
+ NOP
+ NOP
+ LD A,B
+ DEC BC
+ NOP
+ RRCA
+L1070: NOP
+ NOP
+L1072: NOP
+ NOP
+L1074: NOP
+ NOP
+L1076: NOP
+ NOP
+L1078: NOP
+ NOP
+L107A: NOP
+ NOP
+L107C: NOP
+ NOP
+L107E: NOP
+ NOP
+ NOP
+ RST 038H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1090: NOP
+L1091: NOP
+ LD BC,L0E00
+L1095: NOP
+ NOP
+L1097: LD BC,L0000
+ DS 86, 000H
+L10F0: DS 78, 000H
+L113E: DS 84, 000H
+ DB 0EFH
+ DS 4, 000H
+L1197: DS 6, 000H
+ DB 001H
+L119E: DB 004H
+ DB 005H
+ DS 3, 000H
+L11A3: DB 000H
+L11A4: DS 124, 000H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L123E: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1277: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L12C0: RLCA
+ LD D,D
+ LD D,L
+ LD C,(HL)
+ JR NZ,012E6H ; (+020H)
+ JR NZ,L12D5 ; (+00dH)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC B
+ LD C,H
+ LD C,C
+ LD D,E
+ LD D,H
+L12D5: JR NZ,L12D7 ; (+000H)
+L12D7: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC B
+ LD B,C
+ LD D,L
+ LD D,H
+ LD C,A
+ JR NZ,L12E7 ; (+000H)
+L12E7: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD B,052H
+ LD B,L
+ LD C,(HL)
+ LD D,L
+ LD C,L
+ JR NZ,L12F8 ; (+000H)
+L12F8: DS 8, 000H
+ INC B
+ LD B,H
+ LD C,C
+ LD D,D
+ JR NZ,L1306 ; (+000H)
+L1306: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC B
+ LD B,E
+ LD C,B
+ LD D,D
+ INC H
+ JR Z,L1317 ; (+000H)
+L1317: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ EX AF,AF'
+ LD B,H
+ LD B,L
+ LD B,(HL)
+ JR NZ,L1371 ; (+04bH)
+ LD B,L
+ LD E,C
+ JR Z,L132A ; (+000H)
+L132A: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ INC B
+ LD B,E
+ LD C,A
+ LD C,(HL)
+ LD D,H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L133E: NOP
+ NOP
+ LD B,053H
+ LD B,C
+ LD D,(HL)
+ LD B,L
+ JR NZ,L1367 ; (+020H)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD B,04CH
+ LD C,A
+ LD B,C
+ LD B,H
+ JR NZ,L1377 ; (+020H)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1360: NOP
+L1361: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1367: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1371: NOP
+ CALL L13D8
+ JR Z,L1385 ; (+00eH)
+L1377: CP 010H
+ JR C,L139B ; (+020H)
+ CP 080H
+ JR Z,L13A1 ; (+022H)
+ CP 0C0H
+ JR Z,L13A1 ; (+01eH)
+ JR L1391 ; (+00cH)
+
+L1385: CP 003H
+ JR Z,L139B ; (+012H)
+ CP 005H
+ JR Z,L139E ; (+011H)
+ CP 006H
+ JR Z,L139E ; (+00dH)
+L1391: DI
+ OUT (LSE2),A
+ CALL L0BB9
+ OUT (LSE0),A
+ EI
+ RET
+
+L139B: LD A,LSPAL
+ RET
+
+L139E: ADD A,0C9H
+ RET
+
+L13A1: SUB 040H
+ RET
+
+L13A4: CP LSPAL
+ JR NC,L13CF ; (+027H)
+ CP 073H
+ JR Z,L139B ; (-011H)
+ CALL L13D8
+ JR Z,L13BB ; (+00aH)
+ CP 040H
+ JR Z,L13D5 ; (+020H)
+ CP 080H
+ JR Z,L13D5 ; (+01cH)
+ JR L13C3 ; (+008H)
+
+L13BB: CP LSDMD
+ JR Z,L13D2 ; (+013H)
+ CP LSSCR
+ JR Z,L13D2 ; (+00fH)
+L13C3: DI
+ OUT (LSE2),A
+ CALL L0BCE
+ OUT (LSE0),A
+ EI
+ CP LSPAL
+ RET NZ
+L13CF: LD A,020H
+ RET
+
+L13D2: SUB 0C9H
+ RET
+
+L13D5: ADD A,040H
+ RET
+
+L13D8: PUSH HL
+ LD HL,L0036
+ BIT 6,(HL)
+ POP HL
+ RET
+
+L13E0: PUSH AF
+ LD A,L
+ SUB 008H
+ JR C,L13EA ; (+004H)
+ SUB 030H
+ JR C,L13F1 ; (+007H)
+L13EA: ADD A,00AH
+ LD L,A
+ ADD HL,BC
+ LD C,(HL)
+ POP AF
+ RET
+
+L13F1: LD A,(BC)
+ PUSH AF
+ INC BC
+ LD A,(BC)
+ LD B,A
+ POP AF
+ LD C,A
+ ADD HL,BC
+ DI
+ OUT (LSE2),A
+ LD A,(HL)
+ OUT (LSE0),A
+ EI
+ CALL L13A4
+ LD C,A
+ POP AF
+ RET
+
+ PUSH HL
+ PUSH BC
+ PUSH DE
+ LD DE,L2710
+ CALL L142C
+ LD DE,003E8H
+ CALL L142C
+ LD DE,L0064
+ CALL L142C
+ LD DE,0000AH
+ CALL L142C
+ LD A,L
+ POP DE
+ OR 030H
+ LD (DE),A
+ INC DE
+ XOR A
+ LD (DE),A
+ POP BC
+ POP HL
+ RET
+
+L142C: LD A,0FFH
+L142E: INC A
+ OR A
+ SBC HL,DE
+ JR NC,L142E ; (-006H)
+ ADD HL,DE
+ OR A
+ JR NZ,L143B ; (+003H)
+ OR B
+ RET Z
+ XOR A
+L143B: LD B,001H
+ OR 030H
+ POP DE
+ EX (SP),HL
+ LD (HL),A
+ INC HL
+ EX (SP),HL
+ PUSH DE
+ RET
+
+ CALL TEST1
+ DB 024H
+ JR Z,L1476 ; (+02aH)
+ LD DE,L0000
+L144F: CALL HLFTCH
+ SUB 030H
+ CP 00AH
+ RET NC
+ INC HL
+ PUSH HL
+ LD H,D
+ LD L,E
+ ADD HL,HL
+ JR C,L1471 ; (+013H)
+ ADD HL,HL
+ JR C,L1471 ; (+010H)
+ ADD HL,DE
+ JR C,L1471 ; (+00dH)
+ ADD HL,HL
+ JR C,L1471 ; (+00aH)
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ JR C,L1471 ; (+004H)
+ EX DE,HL
+ POP HL
+ JR L144F ; (-022H)
+
+L1471: LD A,002H
+ JP L0182
+
+L1476: LD DE,L0000
+L1479: LD A,(HL)
+ CALL L1491
+ RET C
+ INC HL
+ EX DE,HL
+ ADD HL,HL
+ JR C,L1471 ; (-012H)
+ ADD HL,HL
+ JR C,L1471 ; (-015H)
+ ADD HL,HL
+ JR C,L1471 ; (-018H)
+ ADD HL,HL
+ JR C,L1471 ; (-01bH)
+ ADD A,L
+ LD L,A
+ EX DE,HL
+ JR L1479 ; (-018H)
+
+L1491: SUB 030H
+ CP 00AH
+ CCF
+ RET NC
+ SUB 011H
+ CP 006H
+ CCF
+ RET C
+ ADD A,00AH
+ RET
+
+ CALL L14AD
+ CP 020H
+ RET NZ
+L14A6: CALL L14AD
+ OR A
+ JR Z,L14A6 ; (-006H)
+ RET
+
+L14AD: RST 018H
+ DB 00EH
+ JR Z,L14B8 ; (+007H)
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ CP 01BH
+ RET NZ
+L14B8: JP 0017DH
+
+ RET
+
+L14BC: CALL SKPDE
+ LD HL,L11A4
+ LD B,000H
+ PUSH HL
+ CALL LDHLDE
+ POP DE
+ LD (014DAH),SP
+ LD SP,L10F0
+ DI
+ OUT (LSE4),A
+ RST 030H
+ OUT (LSE0),A
+ OUT (LSE1),A
+ EI
+ LD SP,L0000
+ RET
+
+ LD (DDEV),DE
+ LD (L1069),A
+ RET
+
+ LD C,A
+ RST 018H
+ DB 020H
+ RST 018H
+ DB 002H
+ BIT 7,C
+ JR Z,L14F8 ; (+00aH)
+ LD HL,L11A4
+ PUSH HL
+ CALL L1535
+ POP DE
+ RST 018H
+ DB 005H
+L14F8: LD A,C
+ AND 07FH
+ JR L14FF ; (+002H)
+
+L14FD: LD A,045H
+L14FF: LD DE,L1554
+L1502: DEC A
+ JR Z,L150F ; (+00aH)
+ EX AF,AF'
+L1506: LD A,(DE)
+ INC DE
+ OR A
+ JP P,L1506
+ EX AF,AF'
+ JR L1502 ; (-00dH)
+
+L150F: LD A,(DE)
+ CP 080H
+ JR Z,L14FD ; (-017H)
+L1514: LD A,(DE)
+ OR A
+ JP M,L151F
+ CALL L152A
+ INC DE
+ JR L1514 ; (-00bH)
+
+L151F: AND 07FH
+ CALL L152A
+ LD DE,L179E
+ RST 018H
+ DB 005H
+ RET
+
+L152A: PUSH DE
+ LD DE,L1533
+ LD (DE),A
+ RST 018H
+ DB 005H
+ POP DE
+ RET
+
+L1533: NOP
+ NOP
+L1535: LD DE,(ZEQT)
+ INC DE
+ INC DE
+ RST 018H
+ DB 017H
+ CALL LDHLDE
+ LD A,(L1046)
+ ADD A,031H
+ LD (HL),A
+ LD A,(01051H)
+ AND 00FH
+ JR Z,L154E ; (+001H)
+ INC HL
+L154E: LD (HL),03AH
+ DB 023H
+ DB 036H
+ DB 000H
+ DB 0C9H
+L1554: DB 053H,005H,"YNTA",0D8H,04FH,005H,"VER FLO",0D7H,049H,005H
+ DS 2, 04CH
+ DB "EGAL DAT",0C1H,054H,005H,"YPE MISMATC",0C8H,053H,005H,"TRING LENGT",0C8H,04DH,005H,"EMORY CAPACIT",0D9H,041H,005H
+ DS 2, 052H
+ DB "AY DEF",0AEH,04CH,005H,"INELENGT",0C8H,080H,"GOSUB ",005H,"NESTIN",0C7H,"FOR-NEX",0D4H,"DEF FN ",005H,"NESTIN",0C7H,"NEX",0D4H,"RETUR"
+ DB LSDMD
+ DB 055H,005H,"N DEF. FUNCTIO"
+ DB LSDMD
+ DB 055H,005H,"N DEF. LIN",0C5H,043H,005H,"AN'T ",006H,"CON",0D4H,04DH,005H,"EMORY PROTECTIO"
+ DB LSDMD
+ DB 049H,005H,"NSTRUCTIO"
+ DB LSDMD
+ DB 043H,005H,"AN'T ",006H,"RESUM",0C5H,"RESUM",0C5H
+ DS 2, 080H
+ DB "REA",0C4H,"SWAP ",005H,"LEVE"
+ DB LSWF
+ DS 2, 080H
+ DB 053H,005H,"YSTEM I",0C4H,046H,005H,"RAMIN",0C7H,04FH,005H,056H,045H
+ DS 2, 052H
+ DB 055H
+ DB LSDMD
+ DB 050H,005H,"ARIT",0D9H
+ DS 8, 080H
+ DB 046H,005H,"ILE NOT FOUN",0C4H,048H,005H,"ARDWAR",0C5H,041H,005H,"LREADY EXIS",0D4H,041H,005H,"LREADY OPE"
+ DB LSDMD
+ DB 04EH,005H,"OT OPE"
+ DB LSDMD
+ DB 080H,057H,005H,"RITE PROTEC",0D4H
+ DS 3, 080H
+ DB 04EH,005H,"OT READ",0D9H,054H,005H
+ DS 2, 04FH
+ DB " MANY FILE"
+ DB LSD3
+ DB 044H,005H,"ISK MISMATC",0C8H,04EH,005H,"O FILE SPAC",0C5H,055H,005H,"NFORMA",0D4H,054H,005H
+ DS 2, 04FH
+ DB " LONG FIL",0C5H
+ DS 2, 080H
+ DB 044H,005H,"EV. NAM",0C5H,043H,005H,"AN'T EXECUT",0C5H,049H,005H
+ DS 2, 04CH
+ DB "EGAL FILENAM",0C5H,049H,005H
+ DS 2, 04CH
+ DB "EGAL FILEMOD",0C5H,080H,04FH,005H,"UT OF FIL",0C5H,04CH,005H,"OGICAL NUMBE"
+ DB LSD2
+ DB "LPT:"
+L1772: DB 04EH,005H,"OT READ",0D9H
+ DS 2, 080H
+ DB 044H,005H,"EV. MOD",0C5H,055H,005H,"NPRINTABL",0C5H,043H,005H,"HECK SU"
+ DB LSRF
+L179E: DB 020H
+ DB 005H
+ DB 045H
+ DS 2, 052H
+ DB 04FH
+ LD D,D
+ DS 91, 000H
+L1800: JP L4000
+
+L1803: LD A,(L1042)
+ CP 088H
+ RET
+
+L1809: NOP
+ NOP
+L180B: NOP
+ NOP
+L180D: NOP
+ NOP
+ CALL L181A
+ CALL L1821
+L1815: XOR A
+ LD (L1FC0),A
+ RET
+
+L181A: LD A,(L1042)
+ LD (L1FC0),A
+ RET
+
+L1821: CALL SKPDE
+ LD A,(L1050)
+ BIT 7,A
+ LD HL,L1848
+L182C: JR Z,L183D ; (+00fH)
+ BIT 3,A
+ LD HL,L1835
+ JR NZ,L183D ; (+008H)
+L1835: LD IX,(ZOUT)
+ CALL IOCALL
+ RET
+
+L183D: LD A,B
+L183E: OR A
+ RET Z
+ LD A,(DE)
+ CALL L00FA
+ INC DE
+ DEC B
+ JR L183D ; (-00bH)
+
+L1848: CALL SKPDE
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+ LD HL,(L180B)
+ ADD HL,DE
+ LD (HL),A
+ INC DE
+ LD HL,(ZKL)
+ OR A
+ SBC HL,DE
+ CALL Z,L1871
+ LD (IY+040H),E
+ LD (IY+041H),D
+ INC (IY+014H)
+ RET NZ
+ INC (IY+015H)
+ RET NZ
+ JP 01F91H
+
+L1871: PUSH BC
+ LD B,002H
+L1874: CALL L1D15
+ LD IX,L1835
+ JR Z,L1881 ; (+004H)
+ LD IX,L2907
+L1881: LD A,B
+ CALL L18B6
+ CALL L1890
+ INC (IY+04EH)
+ LD DE,L0000
+ POP BC
+ RET
+
+L1890: JP (IX)
+
+L1892: LD A,01AH
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+L189A: LD HL,(L180B)
+ ADD HL,DE
+ LD (HL),A
+ INC DE
+ LD HL,(ZKL)
+ XOR A
+ SBC HL,DE
+ JR NZ,L189A ; (-00eH)
+ PUSH BC
+ LD HL,(L180B)
+ DEC HL
+ LD (HL),0FFH
+ DEC HL
+ LD (HL),0FFH
+ LD B,006H
+ JR L1874 ; (-042H)
+
+L18B6: LD BC,(ZKL)
+ INC BC
+ INC BC
+ LD HL,(L180B)
+ DEC HL
+ DEC HL
+ LD DE,(01809H)
+ RET
+
+L18C6: OR 0AFH
+ LD IX,(ZCL)
+ CALL IOCALL
+ RET
+
+ CALL L1803
+ RET NZ
+ PUSH DE
+ LD DE,L11A4
+ CALL L026A
+ LD (0193CH),DE
+ POP DE
+ RET NC
+ JP 0017DH
+
+ PUSH HL
+ PUSH DE
+ CALL L181A
+ LD HL,(L1040)
+ INC HL
+ BIT 7,(HL)
+ PUSH HL
+ LD B,000H
+ SCF
+ CALL Z,L1913
+ POP HL
+ CALL C,L1908
+ POP DE
+ PUSH AF
+ CALL L1815
+ LD L,B
+ LD H,000H
+ ADD HL,DE
+ LD (HL),000H
+ POP AF
+ POP HL
+ RET
+
+L1908: SET 7,(HL)
+ LD HL,01051H
+ BIT 4,(HL)
+ RET Z
+ JP 01FA0H
+
+L1913: CALL L1803
+ JR Z,L193B ; (+023H)
+ LD A,(L1050)
+ BIT 7,A
+ LD HL,L1989
+ JR Z,L1975 ; (+053H)
+ BIT 2,A
+ LD HL,L1929
+ JR NZ,L1975 ; (+04cH)
+L1929: LD IX,(ZINP)
+ CALL IOCALL
+ RET
+
+L1931: LD A,03FH
+ RST 018H
+ DB 003H
+ LD A,020H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 034H
+L193B: LD HL,L0000
+L193E: CALL HLFTCH
+ OR A
+ JR Z,L1931 ; (-013H)
+ LD C,000H
+ RST 018H
+ DB 036H
+ LD (0193CH),HL
+ RET
+
+ LD B,000H
+ CALL TEST1
+ DB 022H
+ JR NZ,L1967 ; (+013H)
+L1954: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ JR Z,L1961 ; (+005H)
+ LD (DE),A
+ INC DE
+ INC B
+ JR L1954 ; (-00dH)
+
+L1961: CALL TEST1
+ DB 02CH
+ OR A
+ RET
+
+L1967: LD A,(HL)
+ OR A
+ RET Z
+ CP C
+ RET Z
+ INC HL
+ CP 02CH
+ RET Z
+ LD (DE),A
+ INC DE
+ INC B
+ JR L1967 ; (-00eH)
+
+L1975: LD (0197BH),HL
+ LD B,000H
+L197A: CALL L0000
+ RET C
+ CP 00DH
+ RET Z
+ LD (DE),A
+ INC DE
+ INC B
+ JR NZ,L197A ; (-00cH)
+ JP 01F76H
+
+L1989: CALL SKPDE
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+ LD HL,(ZKL)
+ OR A
+ SBC HL,DE
+ CALL Z,L19B4
+ RET C
+ LD L,(IY+04EH)
+ LD H,(IY+04FH)
+ XOR A
+ SBC HL,DE
+ SCF
+ RET Z
+ LD HL,(L180B)
+ ADD HL,DE
+ LD A,(HL)
+ INC DE
+ LD (IY+040H),E
+ LD (IY+041H),D
+ RET
+
+L19B4: CALL L1D15
+ JP NZ,L2A4C
+ OR 0AFH
+ CALL L18B6
+ CALL L1929
+ RET C
+ LD A,(HL)
+ INC HL
+ AND (HL)
+ LD (HL),0FFH
+ INC A
+ LD DE,L0000
+ RET NZ
+ PUSH HL
+ LD HL,(L180D)
+ LD BC,(ZKL)
+L19D5: DEC HL
+ DEC BC
+ LD A,(HL)
+ OR A
+ JR Z,L19D5 ; (-006H)
+ POP HL
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ RET
+
+ CALL SKPDE
+ LD HL,L1A2D
+ CP 088H
+ JR Z,L19F4 ; (+00aH)
+ LD HL,L1A35
+ CP 089H
+ JR Z,L19F4 ; (+003H)
+ RST 018H
+ DB 029H
+ RET C
+L19F4: LD (L1040),HL
+ LD DE,L1042
+ LD BC,00008H
+ LDIR
+ LD (L1809),HL
+ PUSH HL
+ POP IY
+ LD DE,L1000
+ CALL L1C54
+ PUSH HL
+ LD HL,(L1044)
+ LD DE,L104A
+ LD BC,0001DH
+ LDIR
+ POP HL
+ LD BC,00010H
+ ADD HL,BC
+ LD (L180B),HL
+ LD BC,(ZKL)
+ ADD HL,BC
+ LD (L180D),HL
+ LD A,(L1043)
+ AND 00FH
+ RET
+
+L1A2D: ADC A,B
+ INC BC
+ LD A,B
+ DEC BC
+ NOP
+ NOP
+ NOP
+ NOP
+L1A35: ADC A,C
+ LD (BC),A
+ NOP
+ RRCA
+ NOP
+ NOP
+ NOP
+ NOP
+ LD HL,L11A4
+ PUSH HL
+ LD A,B
+ OR A
+ CALL NZ,LDHLDE
+ LD (HL),000H
+ LD HL,L0B78
+ JR L1A50 ; (+003H)
+
+L1A4D: LD HL,L0000
+L1A50: LD A,L
+ OR H
+ JR Z,L1A89 ; (+035H)
+ LD (01A84H),HL
+ CALL LDDEMI
+ LD (01A4EH),DE
+ LD DE,L11A4
+ EX DE,HL
+L1A62: LD A,(DE)
+ OR A
+ JR Z,L1A6D ; (+007H)
+ CP (HL)
+ JR NZ,L1A4D ; (-01cH)
+ INC HL
+ INC DE
+ JR L1A62 ; (-00bH)
+
+L1A6D: LD A,(HL)
+ INC HL
+ CP 03AH
+ LD C,000H
+ JR Z,L1A82 ; (+00dH)
+ SUB 031H
+ CP 009H
+ JR NC,L1A4D ; (-02eH)
+ LD C,A
+ LD A,(HL)
+ INC HL
+ CP 03AH
+ JR NZ,L1A4D ; (-035H)
+L1A82: EX (SP),HL
+ LD HL,L0000
+ LD A,C
+ JR L1A9B ; (+012H)
+
+L1A89: POP HL
+ PUSH HL
+L1A8B: LD A,(HL)
+ INC HL
+ CP 03AH
+ JP Z,01F94H
+ OR A
+ JR NZ,L1A8B ; (-00aH)
+ LD HL,(DDEV)
+ LD A,(L1069)
+L1A9B: LD (L1044),HL
+ PUSH HL
+ LD (L1046),A
+ LD DE,L104A
+ LD BC,0001DH
+ LDIR
+ LD B,A
+ LD A,(01051H)
+ AND 007H
+ CP B
+ JP C,01F94H
+ LD A,B
+ POP DE
+ POP HL
+ RET
+
+ CALL SKPDE
+ RST 018H
+ DB 02CH
+ EX DE,HL
+ LD HL,L1001
+ LD B,01FH
+ CALL ?CLRHL
+ LD HL,L1000
+ RST 018H
+ DB 017H
+ CALL L1EB4
+ LD HL,L1050
+ BIT 4,(HL)
+ RET Z
+ INC HL
+ BIT 7,(HL)
+ RET NZ
+ LD A,(L1001)
+ CP 00DH
+ JP Z,01F9AH
+ RET
+
+ CALL SKPDE
+ CALL L1AEF
+ LD B,000H
+ CALL L1B97
+ JP L2D08
+
+L1AEF: LD A,(L1042)
+ RST 018H
+ DB 029H
+ JP NC,01F7CH
+ CALL L1C5B
+ LD HL,L005D
+ LD A,(L1050)
+ LD DE,(ZKL)
+ INC DE
+ INC DE
+ BIT 7,A
+ JR NZ,L1B0B ; (+001H)
+ ADD HL,DE
+L1B0B: LD A,(L1043)
+ BIT 2,A
+ JR Z,L1B13 ; (+001H)
+ ADD HL,DE
+L1B13: EX DE,HL
+ LD A,(L1042)
+ RST 018H
+L1B18: DB 02AH
+ LD (L1FC0),A
+ LD (L1040),HL
+ EX DE,HL
+ LD HL,L1042
+ LD BC,00008H
+ LDIR
+ LD (01809H),DE
+ PUSH DE
+ POP IY
+ LD HL,L1000
+ CALL L1C54
+ LD HL,00010H
+ ADD HL,DE
+ LD (L180B),HL
+ LD DE,(ZKL)
+ ADD HL,DE
+ LD (L180D),HL
+ CALL L1D15
+ JP NZ,L2B7F
+ LD A,(L1043)
+ BIT 2,A
+ JP NZ,01F97H
+ BIT 1,A
+ LD IX,(ZWO)
+ JR NZ,L1B65 ; (+00bH)
+ LD A,(L1050)
+ BIT 7,A
+ JR Z,L1B6B ; (+00aH)
+ LD IX,(ZRO)
+L1B65: LD HL,L1000
+ JP IOCALL
+
+L1B6B: CALL L1C39
+ JP 019BBH
+
+ CALL SKPDE
+ LD IY,L0100
+ LD (L1042),IY
+ LD IY,L1000
+ CALL L1D15
+ LD HL,L2B7A
+ JR NZ,L1B8B ; (+003H)
+ LD HL,L1C39
+L1B8B: CALL L00FA
+ LD B,080H
+ CALL L1B97
+ LD A,(L1000)
+ RET
+
+L1B97: LD A,(L1000)
+ CP 005H
+ RET C
+ LD A,(L1012)
+ AND 080H
+ CP B
+ RET Z
+ JP 01F9DH
+
+L1BA7: CALL SKPDE
+ OR A
+ JR Z,L1BED ; (+040H)
+ CALL L1BB3
+ JP L2D08
+
+L1BB3: RST 018H
+ DB 02EH
+ RET C
+ CALL L181A
+ PUSH AF
+ CALL L1D15
+ JR NZ,L1BE1 ; (+022H)
+ BIT 7,A
+ LD A,B
+ JR Z,L1BD4 ; (+010H)
+ OR A
+ LD IX,(ZKL)
+ JR Z,L1BCF ; (+004H)
+ LD IX,(ZCL)
+L1BCF: CALL IOCALL
+ JR L1BE4 ; (+010H)
+
+L1BD4: OR A
+ JR Z,L1BE4 ; (+00dH)
+ LD A,(L1043)
+ BIT 1,A
+ CALL NZ,L1892
+ JR L1BE4 ; (+003H)
+
+L1BE1: CALL L2BEC
+L1BE4: POP AF
+ RST 018H
+ DB 02BH
+ RET
+
+ CALL SKPDE
+ LD B,000H
+L1BED: LD C,08EH
+L1BEF: LD A,C
+ PUSH BC
+ RST 018H
+ DB 029H
+ CALL NC,L1BB3
+ POP BC
+ DEC C
+ JR NZ,L1BEF ; (-00bH)
+ JP L1FAB
+
+L1BFD: CALL SKPDE
+ LD A,(L1050)
+ BIT 6,A
+ JP Z,01F97H
+ CALL 018C7H
+ LD A,(ZDIRMX)
+ LD B,A
+L1C0F: LD HL,L11A4
+ PUSH BC
+ LD IX,(ZRO)
+ CALL IOCALL
+ POP BC
+ SET 0,A
+ RET C
+ PUSH IY
+ POP DE
+ CALL L1E9D
+ LD A,(HL)
+ RET Z
+ DJNZ L1C0F ; (-019H)
+ XOR A
+ SCF
+ RET
+
+L1C2B: CALL L1C5B
+ CALL L1BFD
+ JP NC,01F79H
+ OR A
+ JP Z,01F85H
+ RET
+
+L1C39: CALL L1C5B
+ CALL L1BFD
+ JP C,01F73H
+ CALL SKPDE
+ LD HL,L11A4
+ PUSH IY
+ POP DE
+ PUSH HL
+ CALL L1C54
+ POP HL
+ LD DE,L1000
+ LD A,(HL)
+L1C54: LD BC,00040H
+ LDIR
+ OR A
+ RET
+
+L1C5B: LD IX,L1C9D
+L1C5F: LD (01C99H),IX
+ CALL SKPDE
+ LD A,(L1042)
+ LD C,A
+ LD HL,(L1072)
+ PUSH HL
+L1C6E: POP HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD B,A
+ INC HL
+ CALL LDDEMI
+ PUSH HL
+ ADD HL,DE
+ EX (SP),HL
+ CP 08FH
+ JR NC,L1C6E ; (-010H)
+ CP C
+ JR Z,L1C6E ; (-013H)
+ INC HL
+ LD A,(HL)
+ EX AF,AF'
+ INC HL
+ LD DE,L1044
+ PUSH BC
+ LD BC,00300H
+L1C8C: LD A,(DE)
+ SUB (HL)
+ OR C
+ LD C,A
+ INC DE
+ INC HL
+ DJNZ L1C8C ; (-008H)
+ POP BC
+ JR NZ,L1C6E ; (-029H)
+ LD A,B
+ CALL L0000
+ JR L1C6E ; (-02fH)
+
+L1C9D: LD A,(01051H)
+ BIT 6,A
+ JP NZ,01F7CH
+ BIT 5,A
+ RET Z
+ EX AF,AF'
+ LD B,A
+ LD A,(L1043)
+ AND B
+ BIT 1,A
+ RET Z
+ JP 01F7CH
+
+ CALL L1D15
+ JP NZ,L2AD2
+ LD BC,(ELMD20)
+ PUSH BC
+ XOR A
+ LD IX,(ZINP)
+ CALL IOCALL
+ POP BC
+ RET
+
+ LD A,(01051H)
+ BIT 7,A
+ JP Z,01F97H
+ LD BC,(ELMD20)
+ JP L313A
+
+ LD A,(L1000)
+ CP 005H
+ JR C,L1CE4 ; (+005H)
+ LD A,080H
+ LD (L1012),A
+L1CE4: CALL L1D15
+ JP NZ,L2AE0
+ BIT 7,A
+ JP NZ,01F97H
+ PUSH DE
+ LD HL,L0200
+ LD (L1042),HL
+ CALL L1C5B
+ LD HL,L1000
+ PUSH HL
+ POP IY
+ LD IX,(ZWO)
+ CALL IOCALL
+ LD BC,(ELMD20)
+ POP HL
+ LD A,004H
+ LD IX,(ZOUT)
+ CALL IOCALL
+ RET
+
+L1D15: LD A,(L1050)
+ BIT 5,A
+ RET
+
+ CALL SKPDE
+ OR A
+ JR NZ,L1D6B ; (+04aH)
+ LD HL,L0100
+ LD (L1042),HL
+ CALL L1C5B
+ LD HL,L1050
+ BIT 7,(HL)
+ JP NZ,01F97H
+ BIT 5,(HL)
+ JP NZ,02F38H
+ INC HL
+ BIT 7,(HL)
+ JP NZ,01F97H
+ LD HL,L2000
+ LD BC,00008H
+L1D43: CALL ?CLRHL
+ DEC C
+ JR NZ,L1D43 ; (-006H)
+ CALL 018C7H
+ LD A,(ZDIRMX)
+ LD B,A
+ LD HL,L2000
+L1D53: PUSH BC
+ LD IX,(ZRO)
+ CALL IOCALL
+ PUSH AF
+ LD BC,00020H
+ ADD HL,BC
+ LD (HL),000H
+ POP AF
+ POP BC
+ JR C,L1D68 ; (+002H)
+ DJNZ L1D53 ; (-015H)
+L1D68: JP L18C6
+
+L1D6B: LD (01E13H),A
+ XOR A
+ LD (L1090),A
+ LD HL,L11A4
+ PUSH HL
+ LD DE,L1E1D
+ LD B,00EH
+ CALL LDHLDE
+ CALL L1535
+ LD (HL),020H
+ INC HL
+ LD (HL),020H
+ INC HL
+ EX DE,HL
+ CALL L1D15
+ LD IX,(ZFREE)
+ JR Z,L1D95 ; (+004H)
+ LD IX,L2F4B
+L1D95: CALL IOCALL
+ JR C,L1DA8 ; (+00eH)
+ LD H,B
+ LD L,C
+ LD B,000H
+ RST 018H
+ DB 016H
+ LD HL,L1E2B
+ LD B,009H
+ CALL LDDEHL
+L1DA8: EX DE,HL
+ LD (HL),00DH
+ INC HL
+ LD (HL),000H
+ POP DE
+ CALL L1E12
+ LD B,040H
+ LD HL,L2000
+L1DB7: CALL L1DC3
+ LD DE,00020H
+ ADD HL,DE
+ DJNZ L1DB7 ; (-009H)
+ JP L2D08
+
+L1DC3: CALL SKPDE
+ LD A,(HL)
+ OR A
+ RET Z
+ RET M
+ LD DE,L11A4
+ PUSH DE
+ LD A,020H
+ LD B,026H
+ CALL ?SETDE
+ LD A,(HL)
+ CP 00CH
+ JR C,L1DDC ; (+002H)
+ LD A,00CH
+L1DDC: PUSH HL
+ POP IY
+ POP DE
+ PUSH DE
+ INC DE
+ LD HL,L1E31
+ LD BC,L0003
+L1DE8: ADD HL,BC
+ DEC A
+ JR NZ,L1DE8 ; (-004H)
+ LDIR
+ EX DE,HL
+ BIT 0,(IY+012H)
+ JR Z,L1DF7 ; (+002H)
+ LD (HL),02AH
+L1DF7: INC HL
+ INC HL
+ LD (HL),022H
+ INC HL
+L1DFC: LD A,(IY+001H)
+ CP 00DH
+ JR Z,L1E09 ; (+006H)
+ LD (HL),A
+ INC IY
+ INC HL
+ JR L1DFC ; (-00dH)
+
+L1E09: LD (HL),022H
+ INC HL
+ LD (HL),00DH
+ INC HL
+ LD (HL),000H
+ POP DE
+L1E12: LD A,000H
+ RST 018H
+ DB 02EH
+ RST 018H
+ DB 017H
+ RST 018H
+ DB 037H
+ RST 018H
+ DB 00FH
+ RET
+
+L1E1D: DEC C
+ DB "DIRECTORY OF "
+L1E2B: DB " KB FR"
+L1E31: DS 2, 045H
+ DB ".OBJBTXBSDBRDRB"
+ DS 2, 020H
+ DB "? LIB ?"
+ DS 2, 020H
+ DB "? SYSGR"
+ DS 2, 020H
+ DB 03FH
+ DB 020H
+ DB LSE5
+ DB 0AFH,032H,042H,010H,0DDH,021H,071H,01EH,0EDH,073H,072H,01EH
+ DB LSRF
+ DB 05FH
+ DB 01CH
+ DB LSE1
+ DB 0DDH
+ DB 02AH
+ DB 053H
+ DB 010H
+ DB LSRF
+ DB 045H
+ DB 002H
+ DB 0C9H
+ DB 031H
+ DS 2, 000H
+ DB 006H
+ DB 000H
+ DB 0DFH
+ DB 038H
+ DB 018H
+ DB 0DFH
+L1E7A: DB LSRF
+ DB 064H,001H,059H,0C8H,011H,08EH,01EH,0DFH,005H,03EH,001H,0DFH,00DH,0FEH,059H,0C8H,0C3H,07DH,001H,"OK ? [Y/N]",019H,000H
+L1E9A: DB 011H
+ DB 000H
+ DB 010H
+L1E9D: DB LSRF
+ DB 008H
+ DB 001H
+ INC HL
+ INC DE
+ LD A,(DE)
+ CP 00DH
+ RET Z
+ LD B,011H
+L1EA8: LD A,(DE)
+ CP (HL)
+ RET NZ
+ CP 00DH
+ RET Z
+ INC HL
+ INC DE
+ DJNZ L1EA8 ; (-00aH)
+ OR A
+ RET
+
+L1EB4: INC HL
+ LD C,010H
+L1EB7: LD A,B
+ OR A
+ JR Z,L1ECF ; (+014H)
+ LD A,(DE)
+ INC DE
+ DEC B
+ OR A
+ JR Z,L1ECF ; (+00eH)
+ CP 022H
+ JR Z,L1EB7 ; (-00eH)
+ CP 03AH
+ JP Z,01F9AH
+ LD (HL),A
+ INC HL
+ DEC C
+ JR NZ,L1EB7 ; (-018H)
+L1ECF: LD (HL),00DH
+ INC HL
+L1ED2: LD A,C
+ OR A
+ RET Z
+ LD (HL),020H
+ INC HL
+ DEC C
+ JR L1ED2 ; (-009H)
+
+ LD HL,(L1072)
+L1EDE: INC (HL)
+ DEC (HL)
+ SCF
+ RET Z
+ CP (HL)
+ INC HL
+ JR Z,L1EEE ; (+008H)
+ PUSH DE
+ CALL LDDEMI
+ ADD HL,DE
+ POP DE
+ JR L1EDE ; (-010H)
+
+L1EEE: INC HL
+ INC HL
+ RET
+
+L1EF1: CALL SKPDE
+ RST 018H
+ DB 029H
+ RET C
+ DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ DEC HL
+ LD D,H
+ LD E,L
+ INC BC
+ INC BC
+ INC BC
+ PUSH BC
+ ADD HL,BC
+ PUSH HL
+ LD B,H
+ LD C,L
+ LD HL,(L107A)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ LDIR
+ POP DE
+ LD HL,L0000
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ RST 018H
+ DB 019H
+ OR A
+ RET
+
+ PUSH AF
+ PUSH BC
+ PUSH DE
+ PUSH DE
+ INC DE
+ INC DE
+ INC DE
+ LD HL,(L107A)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ JP C,01F6DH
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ SBC HL,DE
+ JR C,01F6DH ; (+037H)
+ LD HL,(L107E)
+ DEC H
+ DEC H
+ SBC HL,DE
+ JR C,01F6DH ; (+02eH)
+ POP HL
+ PUSH HL
+ LD BC,(VARST)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ INC BC
+ LDDR
+ POP DE
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ PUSH HL
+ INC DE
+ PUSH DE
+L1F58: LD (HL),000H
+ INC HL
+ DEC DE
+ LD A,D
+ OR E
+ JR NZ,L1F58 ; (-008H)
+ POP DE
+ INC DE
+ INC DE
+ RST 018H
+ DB 019H
+ POP HL
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L1F6A: LD A,003H
+ LD HL,0063EH
+ LD HL,09C3EH
+ LD HL,0A83EH
+ LD HL,0A93EH
+ LD HL,0AA3EH
+ LD HL,0AB3EH
+ LD HL,0AE3EH
+ LD HL,0B23EH
+ LD HL,0B33EH
+ LD HL,0B43EH
+ LD HL,0B53EH
+ LD HL,0B63EH
+ LD HL,0B73EH
+ LD HL,L3A3E
+ LD HL,0BB3EH
+ LD HL,0BC3EH
+ LD HL,0BD3EH
+ LD HL,0BF3EH
+ LD HL,0403EH
+ LD HL,0C43EH
+ JP L0182
+
+L1FAB: LD A,(L1FC0)
+ OR A
+ LD B,000H
+ CALL NZ,L1BA7
+ CALL L368D
+ CALL L3C34
+ CALL L2D08
+ JP L0D20
+
+L1FC0: DS 64, 000H
+L2000: DS 38, 000H
+L2026: DS 263, 000H
+L212D: DS 211, 000H
+L2200: DS 294, 000H
+L2326: DS 986, 000H
+L2700: DS 16, 000H
+L2710: DS 240, 000H
+L2800: DS 256, 000H
+ LD (02905H),DE
+ RET
+
+L2905: NOP
+ NOP
+L2907: LD BC,L0000
+ LD DE,00001H
+ BIT 2,A
+ CALL Z,L2ED0
+ LD HL,(L180D)
+ LD A,(HL)
+ LD (HL),C
+ LD C,A
+ INC HL
+ LD A,(HL)
+ LD (HL),B
+ LD B,A
+ LD HL,(L180B)
+ LD DE,L0100
+ JP L2FCF
+
+ CALL SKPDE
+ CALL L181A
+ LD HL,L11A4
+ PUSH HL
+ LD A,B
+ OR A
+ CALL NZ,LDHLDE
+ LD B,020H
+ LD A,020H
+ CALL ?SETHL
+ LD A,(IY+012H)
+ OR A
+ JP NZ,01F7FH
+ CALL L29DF
+ JR NC,L2964 ; (+01dH)
+ LD (IY+014H),E
+ LD (IY+015H),D
+ LD (IY+046H),001H
+ JR Z,L2964 ; (+011H)
+ CALL L29C2
+ CALL L2A08
+ CALL L297C
+ LD (IY+040H),L
+ LD (IY+041H),H
+ JR L296A ; (+006H)
+
+L2964: CALL L297C
+ CALL L29AB
+L296A: POP HL
+ CALL L2E24
+ LD (IY+044H),001H
+L2972: LD HL,(L2905)
+ INC HL
+ LD (L2905),HL
+ JP L1815
+
+L297C: LD HL,(L2905)
+ DEC HL
+ PUSH HL
+ ADD HL,HL
+ LD E,H
+ LD D,000H
+ LD HL,(L180B)
+ ADD HL,DE
+ ADD HL,DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD A,L
+ PUSH AF
+ RRA
+ RRA
+ RRA
+ AND 00FH
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ POP AF
+ AND 007H
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ LD DE,(0180BH)
+ INC D
+ ADD A,E
+ LD E,A
+ RET NC
+ INC D
+ RET
+
+L29AB: LD A,(IY+040H)
+ CP L
+ JR NZ,L29B6 ; (+005H)
+ LD A,(IY+041H)
+ CP H
+ RET Z
+L29B6: CALL L29C2
+ LD (IY+040H),L
+ LD (IY+041H),H
+ XOR A
+ JR L29CC ; (+00aH)
+
+L29C2: XOR A
+ CP (IY+044H)
+ RET Z
+ LD (IY+044H),A
+ LD A,003H
+L29CC: CALL SKPDE
+ LD C,(IY+040H)
+ LD B,(IY+041H)
+ LD DE,L0100
+ LD HL,(L180B)
+ INC H
+ JP L2FD1
+
+L29DF: LD L,(IY+014H)
+ LD H,(IY+015H)
+ LD DE,(02905H)
+ LD A,H
+ OR L
+ JR NZ,L29F1 ; (+004H)
+ OR 0FFH
+ SCF
+ RET
+
+L29F1: CALL L2FC9
+ RET NC
+ CALL SKPDE
+ DEC HL
+ DEC DE
+ LD A,L
+ AND 080H
+ LD L,A
+ LD A,E
+ AND 080H
+ LD E,A
+ CALL L2FC9
+ RET C
+ SCF
+ RET
+
+L2A08: CALL SKPDE
+ LD HL,(L2905)
+ DEC HL
+ ADD HL,HL
+ LD B,H
+ INC B
+ LD HL,(L180B)
+L2A15: LD A,(HL)
+ INC HL
+ OR (HL)
+ CALL Z,L2A23
+ INC HL
+ DJNZ L2A15 ; (-009H)
+ LD (IY+046H),001H
+ RET
+
+L2A23: CALL SKPDE
+ PUSH HL
+ LD DE,00010H
+ CALL L2ED0
+ POP HL
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ LD HL,(L180B)
+ INC H
+ XOR A
+L2A36: LD (HL),020H
+ INC HL
+ DEC A
+ JR NZ,L2A36 ; (-006H)
+ DEC H
+ LD DE,L0100
+ LD A,010H
+L2A42: PUSH AF
+ CALL L2FCF
+ POP AF
+ INC BC
+ DEC A
+ JR NZ,L2A42 ; (-009H)
+ RET
+
+L2A4C: LD L,(IY+014H)
+ LD H,(IY+015H)
+ LD A,H
+ OR L
+ SCF
+ RET Z
+ LD DE,0FF02H
+ PUSH HL
+ ADD HL,DE
+ JR C,L2A60 ; (+003H)
+ LD HL,L0000
+L2A60: LD (IY+014H),L
+ LD (IY+015H),H
+ POP DE
+ LD HL,(L180B)
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ CALL L2A88
+ OR A
+ LD A,(L1043)
+ BIT 2,A
+ RET NZ
+ LD HL,(L180D)
+ LD A,(HL)
+ LD (IY+01EH),A
+ INC HL
+ LD A,(HL)
+ LD (IY+01FH),A
+ LD DE,L0000
+ RET
+
+L2A88: LD C,(IY+01EH)
+ LD B,(IY+01FH)
+ LD A,B
+ OR C
+ JP Z,01F76H
+ LD DE,L0100
+ LD HL,(L180B)
+ JP 02FD0H
+
+ RET
+
+ XOR A
+ LD (DE),A
+ PUSH HL
+ PUSH DE
+ PUSH DE
+ CALL L29DF
+ POP DE
+ JR C,L2AC7 ; (+01fH)
+ CALL L181A
+ PUSH DE
+ CALL L297C
+ CALL L29AB
+ EX DE,HL
+ POP DE
+ CALL L2E24
+ XOR A
+ LD (DE),A
+ CALL L2972
+ LD B,020H
+ XOR A
+ LD HL,(L1040)
+ INC HL
+ RES 7,(HL)
+ JR L2ACF ; (+008H)
+
+L2AC7: XOR A
+ LD B,A
+ LD HL,(L1040)
+ INC HL
+ SET 7,(HL)
+L2ACF: POP DE
+ POP HL
+ RET
+
+L2AD2: LD DE,(ELMD20)
+ LD BC,(ELMD30)
+ CALL 02FD0H
+ JP L2D08
+
+L2AE0: CALL L2AEA
+ LD IY,L1000
+ JP L2C07
+
+L2AEA: PUSH DE
+ CALL L2DD0
+ CALL L2ED0
+ LD (ELMD30),BC
+ LD D,E
+ LD E,000H
+ POP HL
+ JP L2FCF
+
+ OR A
+ JR NZ,L2B34 ; (+035H)
+ PUSH DE
+ CALL L2B6A
+ LD A,000H
+ CALL Z,L2B51
+ POP DE
+ CALL L2AEA
+ LD HL,L1000
+ OR 0FFH
+ CALL L2B51
+ CALL L2E2A
+ LD HL,L2000
+ LD (HL),081H
+ PUSH HL
+ POP IY
+ LD HL,(L1014)
+ LD (IY+014H),L
+ LD (IY+015H),H
+ LD HL,(ELMD30)
+ LD (IY+01EH),L
+ LD (IY+01FH),H
+ JP L2F37
+
+L2B34: PUSH HL
+ CALL L2B6A
+ JP NZ,01F88H
+ DEC (HL)
+ LD DE,L1000
+ CALL L2E24
+ CALL L2F37
+L2B45: XOR A
+ LD HL,L2000
+ CALL L2B51
+ CALL L2E2A
+ POP HL
+ RET
+
+L2B51: CALL SKPDE
+ PUSH AF
+ LD DE,00014H
+ ADD HL,DE
+ CALL LDDEMI
+ LD BC,00008H
+ ADD HL,BC
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ CALL L2DD8
+ POP AF
+ JP L2E77
+
+L2B6A: CALL L1D15
+ JP Z,01F97H
+ CALL L2E36
+ CALL 02F38H
+ LD A,(HL)
+ CP 081H
+ RET
+
+L2B7A: LD A,009H
+ LD (L1043),A
+L2B7F: CALL L2F6E
+ XOR B
+ DEC HL
+ LD A,(L1043)
+ BIT 0,A
+ JP NZ,01F73H
+ PUSH AF
+ LD DE,00001H
+ CALL L2ED0
+ LD (IY+01EH),C
+ LD (IY+01FH),B
+ LD (IY+046H),001H
+ POP AF
+ BIT 1,A
+ RET Z
+ LD HL,(L180D)
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ RET
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD A,(L1043)
+ BIT 1,A
+ JP NZ,01F79H
+ PUSH HL
+ CALL L2E24
+ LD B,020H
+ CALL ?CLRDE
+ POP HL
+ LD A,(HL)
+ PUSH IY
+ POP DE
+ CALL L2E24
+ LD HL,L1043
+ BIT 3,(HL)
+ RET NZ
+ BIT 0,(HL)
+ JP NZ,L2A4C
+ CALL L2E5E
+ CALL L2A88
+ LD D,H
+ LD E,L
+L2BDB: LD A,(HL)
+ INC HL
+ OR (HL)
+ INC HL
+ JR NZ,L2BDB ; (-006H)
+ DEC HL
+ DEC HL
+ SBC HL,DE
+ LD (IY+042H),L
+ LD (IY+043H),H
+ RET
+
+L2BEC: LD A,B
+ OR A
+ RET Z
+ LD A,(L1043)
+ BIT 0,A
+ RET NZ
+ BIT 2,A
+ JR NZ,L2C20 ; (+027H)
+ LD A,006H
+ CALL L2907
+ PUSH IY
+ POP HL
+ LD DE,L1000
+ CALL L2E24
+L2C07: CALL L2F6E
+ RLA
+ INC L
+ JP Z,01F85H
+L2C0F: LD A,001H
+ LD B,(IY+000H)
+ JP L2D6A
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ JP 01F79H
+
+L2C20: CALL L29C2
+ LD A,(IY+046H)
+ OR A
+ RET Z
+ CALL L2F6E
+ LD (0CA2CH),A
+ ADD A,L
+ RRA
+ JR L2C0F ; (-023H)
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD (IY+045H),001H
+ LD A,(HL)
+ CP (IY+000H)
+ JP NZ,01F9DH
+ JR L2C0F ; (-037H)
+
+ CALL SKPDE
+ LD (02C60H),A
+ CALL L2F6E
+ LD D,H
+ INC L
+ JP 01F73H
+
+ RET Z
+ RET M
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD BC,L0012
+ ADD HL,BC
+ LD (HL),0FFH
+L2C61: CALL L2F37
+ JP L2D08
+
+ CALL SKPDE
+ CALL L2F6E
+ LD (HL),D
+ INC L
+ JP 01F73H
+
+ RET Z
+ RET M
+ CALL L1E9A
+ RET NZ
+ POP AF
+ CALL L2CFB
+ PUSH HL
+ LD DE,L1000
+ CALL L2E24
+ XOR A
+ LD (L1042),A
+ LD IX,L2C9B
+ CALL L1C5F
+ XOR A
+ LD (L1000),A
+ POP HL
+L2C93: LD B,(HL)
+ LD IY,L1000
+ JP L2D6A
+
+L2C9B: INC HL
+ INC HL
+ INC HL
+ CALL L1E9A
+ JP Z,01F7CH
+L2CA4: RET
+
+L2CA5: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC C
+ CALL SKPDE
+ LD HL,L2CA4
+ CALL L1EB4
+ XOR A
+L2CC0: LD (02CE3H),A
+ CALL L2F6E
+ JP Z,L182C
+ JR L2C93 ; (-038H)
+
+ RET M
+ LD DE,L2CA4
+ CALL L1E9D
+ JP Z,01F79H
+ CALL L1E9A
+ RET NZ
+ LD (02CE9H),HL
+ LD A,001H
+ LD (02CE3H),A
+ RET
+
+ LD A,0FFH
+ OR A
+ JP Z,01F73H
+ LD HL,0FFFFH
+ CALL L2CFB
+ LD DE,L2CA5
+ INC HL
+ EX DE,HL
+ LD BC,00011H
+ LDIR
+ JP L2C61
+
+L2CFB: CALL SKPDE
+ LD DE,L0012
+ ADD HL,DE
+ LD A,(HL)
+ OR A
+ RET Z
+ JP 01F7FH
+
+L2D08: CALL IOOUT
+ XOR A
+ LD (L1FC0),A
+ LD A,LSE0
+L2D11: PUSH AF
+ RST 018H
+ DB 02BH
+ POP AF
+ INC A
+ JR NZ,L2D11 ; (-007H)
+ LD HL,(L1044)
+ LD DE,$FD
+ CALL L2FC9
+ RET NZ
+ LD A,(L1046)
+ EXX
+ LD H,A
+ LD D,000H
+ LD B,003H
+ EXX
+ XOR A
+ LD (L1042),A
+L2D30: EXX
+ LD A,B
+ LD (L1046),A
+ ADD A,090H
+ LD L,A
+ LD E,000H
+ EXX
+ LD IX,L2D5C
+ CALL L1C5F
+ EXX
+ BIT 7,E
+ LD A,L
+ EXX
+ CALL Z,L1EF1
+ EXX
+ DEC B
+ EXX
+ JP P,L2D30
+ EXX
+ LD A,H
+ LD (L1046),A
+ BIT 7,D
+ EXX
+ CALL Z,L368D
+ RET
+
+L2D5C: EXX
+ LD DE,0FFFFH
+ EXX
+ RET
+
+L2D62: LD A,(L1046)
+ ADD A,090H
+ RST 018H
+ DB 029H
+ RET
+
+L2D6A: LD (L2DCF),A
+ LD A,B
+ PUSH AF
+ EX DE,HL
+ LD HL,L1000
+ CALL L2E24
+ CALL L2E36
+ POP AF
+ CP 005H
+ JR C,L2D88 ; (+00aH)
+ LD A,(L1012)
+ RLA
+ LD A,003H
+ JR NC,L2D88 ; (+002H)
+ LD A,001H
+L2D88: LD HL,02D9CH
+ ADD A,A
+ CALL ADDHLA
+ CALL INDRCT
+ CALL L00FA
+ CALL L2F37
+ CALL L2E2A
+ JP L2D08
+
+ ADD A,02DH
+ ADD A,02DH
+ AND (HL)
+ DEC L
+ JP PO,L212D
+ JR NZ,02DB9H ; (+010H)
+L2DA9: DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ LD A,B
+ OR C
+ RET Z
+ LD DE,L0100
+ LD HL,L11A4
+ PUSH HL
+ PUSH DE
+ CALL 02FD0H
+ LD DE,00001H
+ CALL L2DC9
+ POP DE
+ POP HL
+ ADD HL,DE
+ JR L2DA9 ; (-01dH)
+
+ CALL L2DD0
+L2DC9: LD A,(L2DCF)
+ JP L2E77
+
+L2DCF: NOP
+L2DD0: LD DE,(ELMD20)
+ LD BC,(ELMD30)
+L2DD8: LD A,E
+ OR D
+ JR Z,L2DDD ; (+001H)
+ DEC DE
+L2DDD: INC D
+ LD E,D
+ LD D,000H
+ RET
+
+ LD DE,L0100
+ LD BC,(ELMD30)
+ LD A,(L2DCF)
+ OR A
+ LD HL,L11A4
+ JR Z,L2DF5 ; (+003H)
+ LD HL,(L180B)
+L2DF5: PUSH HL
+ PUSH AF
+ CALL L2FD1
+ POP AF
+ PUSH AF
+ JR Z,L2E02 ; (+004H)
+ LD A,(IY+045H)
+ OR A
+L2E02: LD DE,00001H
+ CALL Z,L2DC9
+ POP AF
+ POP HL
+ JR Z,L2E13 ; (+007H)
+ LD E,(IY+042H)
+ LD D,(IY+043H)
+ ADD HL,DE
+L2E13: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ LD A,B
+ OR C
+ RET Z
+ PUSH HL
+ LD DE,00010H
+ CALL L2DC9
+ POP HL
+ JR L2E13 ; (-011H)
+
+L2E24: LD BC,00020H
+ LDIR
+ RET
+
+L2E2A: LD HL,L2800
+ LD DE,L0100
+ LD BC,L000F
+ JP L2FCF
+
+L2E36: LD HL,L2800
+ CALL L2E67
+ PUSH HL
+ CALL L2D62
+ EX DE,HL
+ POP HL
+ RET C
+ PUSH HL
+ LD A,(DE)
+ CP (HL)
+ JP NZ,01F88H
+ LD BC,L0006
+ ADD HL,BC
+ EX DE,HL
+ ADD HL,BC
+ EX DE,HL
+ LD B,FDPC
+L2E52: LD A,(DE)
+ CPL
+ AND (HL)
+ JP NZ,01F88H
+ INC HL
+ INC DE
+ DJNZ L2E52 ; (-00aH)
+ POP HL
+ RET
+
+L2E5E: CALL L2D62
+ RET NC
+ LD DE,L0100
+ RST 018H
+ DB 02AH
+L2E67: LD BC,L000F
+ LD DE,L0100
+ XOR A
+ CALL L2FD4
+ LD A,(HL)
+ OR A
+ JP M,01F70H
+ RET
+
+L2E77: LD HL,L2800
+ CALL L2E84
+ OR A
+ RET NZ
+ CALL L2D62
+ RET C
+ XOR A
+L2E84: CALL IOOUT
+ OR A
+ PUSH HL
+ LD HL,0B600H
+ LD A,013H
+ JR NZ,L2E95 ; (+005H)
+ LD HL,0A62FH
+ LD A,01BH
+L2E95: LD (L2EB2),A
+ LD (L2EC8),HL
+ POP HL
+L2E9C: CALL L2EA4
+ INC BC
+ DEC E
+ JR NZ,L2E9C ; (-007H)
+ RET
+
+L2EA4: CALL SKPDE
+ INC HL
+ LD A,C
+ SUB (HL)
+ LD C,A
+ JR NC,L2EAE ; (+001H)
+ DEC B
+L2EAE: INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L2EB2: NOP
+ DEC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ LD A,C
+ LD E,003H
+L2EBD: SRL B
+ RR C
+ DEC E
+ JR NZ,L2EBD ; (-007H)
+ ADD HL,BC
+ CALL L2F2B
+L2EC8: NOP
+ NOP
+ CP (HL)
+ LD (HL),A
+ RET NZ
+ JP 01F88H
+
+L2ED0: PUSH DE
+ CALL L2E5E
+ POP DE
+ PUSH HL
+ CALL L2EDE
+ POP HL
+ LD A,001H
+ JR L2E84 ; (-05aH)
+
+L2EDE: LD A,E
+ EXX
+ LD E,A
+ LD D,A
+ LD B,001H
+ EXX
+ INC HL
+ LD E,(HL)
+ LD D,000H
+ INC HL
+ INC HL
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ DEC BC
+ LD (02EFCH),BC
+ INC HL
+ PUSH HL
+ EXX
+ POP HL
+ EXX
+ LD B,D
+ LD C,E
+L2EFB: LD HL,L0000
+ OR A
+ SBC HL,DE
+ JP C,01F8BH
+ EXX
+ LD A,B
+ AND (HL)
+ EXX
+ CALL L2F15
+ INC DE
+ EXX
+ RLC B
+ JR NC,L2F12 ; (+001H)
+ INC HL
+L2F12: EXX
+ JR L2EFB ; (-01aH)
+
+L2F15: JR NZ,L2F24 ; (+00dH)
+ EXX
+ DEC E
+ EXX
+ RET NZ
+ POP AF
+ EXX
+ LD A,D
+ EXX
+ LD E,A
+ LD D,000H
+ OR A
+ RET
+
+L2F24: EXX
+ LD E,D
+ EXX
+ LD B,D
+ LD C,E
+ INC BC
+ RET
+
+L2F2B: PUSH BC
+ AND 007H
+ INC A
+ LD B,A
+ XOR A
+ SCF
+L2F32: ADC A,A
+ DJNZ L2F32 ; (-003H)
+ POP BC
+ RET
+
+L2F37: OR 0AFH
+ LD HL,L2000
+ LD DE,00800H
+ LD BC,00010H
+ CALL L2FD1
+ LD A,(HL)
+ OR A
+ JP P,01F70H
+ RET
+
+L2F4B: PUSH HL
+ PUSH DE
+ CALL L2E36
+ INC HL
+ INC HL
+ CALL LDDEMI
+ CALL INDRCT
+ XOR A
+ SBC HL,DE
+ JP C,01F70H
+ SRL H
+ RR L
+ SRL H
+ RR L
+ LD B,H
+ LD C,L
+ POP DE
+ POP HL
+ OR A
+ JP L368D
+
+L2F6E: CALL L1D15
+ JP Z,01F97H
+ POP HL
+ CALL LDDEMI
+ LD (02FB1H),HL
+ LD (02F97H),DE
+ XOR A
+ LD (L2FC3),A
+ CALL 02F38H
+ LD (L2FC7),HL
+ LD A,040H
+ LD (L2FC6),A
+L2F8E: LD HL,(L2FC7)
+ LD A,(HL)
+ OR A
+ CALL Z,L2FB3
+ CALL 0FFFFH
+ LD HL,(L2FC7)
+ LD BC,00020H
+ ADD HL,BC
+ LD (L2FC7),HL
+ LD HL,L2FC6
+ DEC (HL)
+ JR NZ,L2F8E ; (-01bH)
+ LD A,(L2FC3)
+ LD HL,(L2FC4)
+ OR A
+ JP 0FFFFH
+
+L2FB3: PUSH AF
+ LD A,(L2FC3)
+ OR A
+ JR NZ,L2FC1 ; (+007H)
+ INC A
+ LD (L2FC3),A
+ LD (L2FC4),HL
+L2FC1: POP AF
+ RET
+
+L2FC3: NOP
+L2FC4: NOP
+ NOP
+L2FC6: NOP
+L2FC7: NOP
+ NOP
+L2FC9: PUSH HL
+ OR A
+ SBC HL,DE
+ POP HL
+ RET
+
+L2FCF: OR 0AFH
+L2FD1: CALL L2FE8
+L2FD4: CALL SKPDE
+ OR A
+ LD IX,(ZINP)
+ JR Z,L2FE2 ; (+004H)
+ LD IX,(ZOUT)
+L2FE2: LD A,(L1046)
+ JP IOCALL
+
+L2FE8: CALL IOOUT
+ LD A,(L35B5)
+ OR A
+ RET M
+ CALL L2D62
+ RET C
+ JP L2E36
+
+$CMT: DB "Y3CMT",000H,05FH ; $CMT - Cassette device descriptor
+L2FFE: DB 0C0H,000H,014H,"0d0",022H,030H
+ DB LSE5
+ DS 2, 000H
+ DB 001H,0AAH,"0]0",097H,01FH,097H,01FH,097H,01FH
+ CALL TEST1
+ DB 054H
+ LD HL,L2FFE
+ SET 4,(HL)
+ RET Z
+ RES 4,(HL)
+ OR A
+ RET
+
+ CALL SKPDE
+ LD DE,L10F0
+ LD A,(HL)
+ LD C,005H
+ CP 002H
+ JR Z,L303D ; (+00eH)
+ LD C,004H
+L3031: CP 003H
+ JR Z,L303D ; (+008H)
+ LD C,A
+L3036: SUB 004H
+ CP 002H
+ JP C,01F9DH
+L303D: LD A,C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD BC,00011H
+ LDIR
+ INC HL
+ INC HL
+ LD BC,L0006
+ LDIR
+ LD B,068H
+ CALL ?CLRDE
+ LD HL,L10F0
+ LD BC,L0080
+ CALL L30CB
+ JR L3060 ; (+003H)
+
+ CALL L30D2
+L3060: JP C,L017B
+ RET
+
+ LD A,037H
+ LD (L30AA),A
+ PUSH HL
+ LD HL,L10F0
+ LD BC,L0080
+ CALL L3114
+ JR C,L30C1 ; (+04cH)
+ LD DE,L3332
+ CALL L3301
+ POP DE
+ LD A,(HL)
+ LD C,002H
+ CP 005H
+ JR Z,L3091 ; (+00eH)
+ LD C,003H
+ CP 004H
+ JR Z,L3091 ; (+008H)
+ LD C,A
+ SUB 002H
+ CP 002H
+ JP C,01F9DH
+L3091: LD A,C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD BC,00011H
+ LDIR
+ XOR A
+ LD B,002H
+ CALL ?CLRDE
+ LD BC,L0006
+ LDIR
+ LD B,006H
+ JP ?CLRDE
+
+L30AA: XOR A
+ JR NC,L30BD ; (+010H)
+ LD A,0AFH
+ LD (L30AA),A
+ PUSH HL
+ LD HL,L1000
+ LD DE,L333F
+ CALL L3301
+ POP HL
+L30BD: CALL L311B
+ RET NC
+L30C1: CP 002H
+ JP NZ,L017B
+ LD A,0C6H
+ JP L0182
+
+L30CB: CALL L32D4
+ LD A,LSWF
+ JR L30D4 ; (+002H)
+
+L30D2: LD A,053H
+L30D4: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD E,A
+ LD D,0D7H
+ LD A,B
+ OR C
+ JR Z,L3107 ; (+024H)
+ CALL L32CB
+ CALL L3174
+ JR C,L3101 ; (+016H)
+ LD A,E
+ CP LSWF
+ JR NZ,L30F8 ; (+008H)
+ PUSH DE
+ LD DE,L3325
+ CALL L3301
+ POP DE
+L30F8: DI
+ OUT (LSE4),A
+ CALL 00780H
+ CALL NC,L31DD
+L3101: DI
+ OUT (LSE4),A
+ CALL 00700H
+L3107: POP DE
+ LD SP,L0000
+ OUT (LSE0),A
+ OUT (LSE1),A
+ PUSH AF
+ RST 018H
+ DB 011H
+ POP AF
+ RET
+
+L3114: CALL L32D4
+ LD A,LSWF
+ JR L311D ; (+002H)
+
+L311B: LD A,053H
+L311D: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD D,LSD2
+ LD E,A
+ LD A,B
+ OR C
+ JR Z,L3107 ; (-025H)
+ CALL L3174
+ DI
+ OUT (LSE4),A
+ CALL NC,L065B
+ CALL NC,L3220
+ JR L3101 ; (-039H)
+
+L313A: PUSH HL
+ LD DE,L334C
+ LD HL,L1000
+ CALL L3301
+ POP HL
+ CALL L3153
+ RET NC
+ CP 002H
+ JP NZ,L017B
+ LD A,083H
+ JP L0182
+
+L3153: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD D,LSD2
+ LD E,053H
+ LD A,B
+ OR C
+ JR Z,L3107 ; (-05cH)
+ CALL L32CB
+ CALL L3174
+ DI
+ OUT (LSE4),A
+ CALL NC,L065B
+ CALL NC,L3274
+ JR L3101 ; (-073H)
+
+L3174: CALL SKPDE
+ RST 018H
+ DB 010H
+ LD HL,0E000H
+ LD A,FDPA
+ CALL POPRA
+ LD B,00AH
+L3183: LD HL,0E002H
+ CALL BREAKX
+ AND 010H
+ JR Z,L319A ; (+00dH)
+L318D: LD B,0FFH
+ OUT (LSE2),A
+L3191: CALL L09A6
+ DJNZ L3191 ; (-005H)
+ OUT (LSE0),A
+ XOR A
+ RET
+
+L319A: LD HL,0E003H
+ LD A,006H
+ CALL POPRA
+ INC A
+ CALL POPRA
+ DJNZ L3183 ; (-025H)
+ LD A,(L0050)
+ OR A
+ JR NZ,L31C7 ; (+019H)
+ RST 018H
+ DB 002H
+ LD A,07FH
+ RST 018H
+ DB 004H
+ LD A,020H
+ RST 018H
+ DB 003H
+ LD A,D
+ CP 0D7H
+ LD DE,L32BC
+ JR Z,L31C3 ; (+003H)
+ LD DE,L32C3
+L31C3: RST 018H
+ DB 005H
+ RST 018H
+ DB 002H
+L31C7: LD HL,0E002H
+ CALL BREAKX
+ AND 010H
+ JR NZ,L318D ; (-044H)
+ LD HL,0E001H
+ CALL BREAKX
+ AND 080H
+ JR NZ,L31C7 ; (-014H)
+ SCF
+ RET
+
+L31DD: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD D,002H
+ LD A,FDPA
+ LD (0E000H),A
+L31E7: OUT (LSE1),A
+ LD A,(HL)
+ OUT (LSE3),A
+ CALL L32C8
+ LD A,(0E001H)
+ AND 080H
+ SCF
+ JR Z,L321C ; (+025H)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L31E7 ; (-016H)
+ LD HL,(L1197)
+ LD A,H
+ CALL L32C8
+ LD A,L
+ CALL L32C8
+ CALL L0D60
+ XOR A
+ DEC D
+ JR Z,L321C ; (+00dH)
+ LD B,000H
+L3211: CALL L0D47
+ DJNZ L3211 ; (-005H)
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+ JR L31E7 ; (-035H)
+
+L321C: POP HL
+ POP BC
+ POP DE
+ RET
+
+L3220: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD H,002H
+L3225: LD BC,0E001H
+ LD DE,0E002H
+L322B: CALL 00601H
+ JR C,L3267 ; (+037H)
+ CALL 00A4AH
+ LD A,(DE)
+ AND 020H
+ JR Z,L322B ; (-00dH)
+ LD D,H
+ LD HL,L0000
+ LD (L1197),HL
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+L3243: CALL L0624
+ JR C,L3267 ; (+01fH)
+ OUT (LSE1),A
+ LD (HL),A
+ OUT (LSE3),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3243 ; (-010H)
+ LD HL,(L1197)
+ CALL L0624
+ JR C,L3267 ; (+00cH)
+ CP H
+ JR NZ,L326B ; (+00dH)
+ CALL L0624
+ JR C,L3267 ; (+004H)
+ CP L
+ JR NZ,L326B ; (+005H)
+L3266: XOR A
+L3267: POP HL
+ POP BC
+ POP DE
+ RET
+
+L326B: DEC D
+ LD H,D
+ JR NZ,L3225 ; (-04aH)
+L326F: LD A,002H
+ SCF
+ JR L3267 ; (-00dH)
+
+L3274: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD H,002H
+L3279: LD BC,0E001H
+ LD DE,0E002H
+L327F: CALL 00601H
+ JR C,L3267 ; (-01dH)
+ CALL 00A4AH
+ LD A,(DE)
+ AND 020H
+ JR Z,L327F ; (-00dH)
+ LD D,H
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+L3291: CALL L0624
+ JR C,L3267 ; (-02fH)
+ OUT (LSE1),A
+ CP (HL)
+ OUT (LSE3),A
+ JR NZ,L326F ; (-02eH)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3291 ; (-012H)
+ LD HL,(CSMDT)
+ CALL L0624
+ JR C,L3267 ; (-044H)
+ CP H
+ JR NZ,L326F ; (-03fH)
+ CALL L0624
+ JR C,L3267 ; (-04cH)
+ CP L
+ JR NZ,L326F ; (-047H)
+ DEC D
+ LD H,D
+ JR NZ,L3279 ; (-041H)
+ JR L3266 ; (-056H)
+
+L32BC: DB "RECORD."
+L32C3: DB "PLAY",000H
+L32C8: DB 0C3H
+ DB 06DH
+ DB 007H
+L32CB: DB QDPB
+ DB LSD3
+ DB LSE2
+ DB LSRF
+ DB 01AH
+ DB 007H
+ DB LSD3
+ DB LSE0
+ DB 0C9H
+L32D4: DB LSRF
+ DB 008H,001H,03EH,0C9H,032H,0D4H,"2!6",000H,0CBH,076H,0C8H,021H,067H,007H,022H,0C9H,"2!z",007H,022H
+ DB LSFC
+ DB 030H,021H,096H,009H,022H,092H,031H,021H,001H,00AH,022H,012H,032H,021H,01AH,00AH,022H,009H,032H,0C9H
+L3301: DB 03AH
+ DB 050H
+ DB 000H
+ DB 0B7H
+ DB 0C0H
+ DB 0DFH
+ DB 002H
+ DB 0DFH
+ DB 005H
+ DB LSE5
+ DB 023H,03EH,022H,0DFH,003H,016H,010H,07EH,0FEH,00DH,028H,006H,0DFH,003H,023H,015H,020H
+ DB QDPD
+ DB 03EH
+ DB 022H
+ DB 0DFH
+ DB 003H
+ DB 0DFH
+ DB 002H
+ DB LSE1
+ DB 0C9H
+L3325: DB 057H,005H,"RITING"
+ DS 3, 020H
+ DB 006H
+ DB 000H
+L3332: DB 046H,005H,"OUND"
+ DS 5, 020H
+ DB 006H
+ DB 000H
+L333F: DB 04CH,005H,"OADING"
+ DS 3, 020H
+ DB 006H
+ DB 000H
+L334C: DB 056H,005H,"ERIFYING "
+ LD B,000H
+$RS: DB 08DH,"5RS" ; $RS - RS-232C device descriptor
+ DS 2, 000H
+ DB 08FH,001H,000H,072H,033H,0A4H,033H,0A4H,033H,0B5H,033H,0B5H,033H,0C6H,033H,0DBH,033H
+ DB LSE5
+ DB 000H
+ DB 0D8H
+ DB 0FDH
+ DB LSE5
+ DB LSRF
+ CALL PE,0CD33H
+ ADD A,B
+ INC SP
+ CALL L3435
+ JR L33D8 ; (+058H)
+
+ RST 018H
+ DB 013H
+ LD (IY-003H),E
+ CALL TEST1
+ DB 02CH
+ JP NZ,L1F6A
+ RST 018H
+ DB 013H
+ LD (IY-002H),E
+ LD (IY-008H),00DH
+ CALL TEST1
+ DB 000H
+ RET Z
+ CALL TEST1
+ DB 02CH
+ RST 018H
+ DB 013H
+ LD (IY-008H),E
+ RET
+
+ PUSH IY
+ CALL L33EC
+ LD A,(IY-001H)
+ INC (IY-001H)
+ OR A
+ CALL Z,L3497
+ JR L33D8 ; (+023H)
+
+ PUSH IY
+ CALL L33EC
+ DEC (IY-001H)
+ LD A,(IY-001H)
+ OR A
+ CALL Z,L347F
+ JR L33D7 ; (+011H)
+
+ PUSH IY
+ CALL L33EC
+ CALL L34E6
+ JR C,L33D8 ; (+008H)
+ CP (IY-008H)
+ JR NZ,L33D7 ; (+002H)
+ LD A,00DH
+L33D7: OR A
+L33D8: POP IY
+ RET
+
+ PUSH IY
+ CALL L33EC
+ CP 00DH
+ JR NZ,L33E7 ; (+003H)
+ LD A,(IY-008H)
+L33E7: CALL L352B
+ JR L33D8 ; (-014H)
+
+L33EC: PUSH AF
+ PUSH DE
+ LD A,(L1046)
+ INC A
+ LD IY,033F7H
+ LD DE,L0015
+L33F9: ADD IY,DE
+ DEC A
+ JR NZ,L33F9 ; (-005H)
+ LD C,(IY+000H)
+ POP DE
+ POP AF
+ RET
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ OR C
+ OR B
+ NOP
+ DJNZ L3421 ; (+010H)
+ INC B
+ LD B,B
+ INC BC
+ RET NZ
+ DEC B
+ LD H,B
+ JR NC,L341C ; (+003H)
+ NOP
+ NOP
+ NOP
+L341C: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L3421: OR E
+ OR D
+ NOP
+ DJNZ 03436H ; (+010H)
+ INC B
+ LD B,B
+ INC BC
+ RET NZ
+ DEC B
+ LD H,B
+ JR NC,L3431 ; (+003H)
+L342E: CALL BRKCHK
+L3431: RET NZ
+ JP 0017DH
+
+L3435: LD A,018H
+ OUT (C),A
+ LD A,030H
+ OUT (C),A
+ LD A,(IY-002H)
+ AND 00CH
+ JR NZ,L3448 ; (+004H)
+ SET 2,(IY-002H)
+L3448: LD A,(IY-002H)
+ LD B,A
+ AND 00FH
+ OR 040H
+ LD (IY+006H),A
+ LD A,B
+ AND 080H
+ OR 040H
+ LD (IY+008H),A
+ RRA
+ AND 07FH
+ OR 00AH
+ LD (IY+00AH),A
+ LD A,B
+ OR 07FH
+ LD (IY+002H),A
+ CALL L348B
+L346C: IN A,(C)
+ RRCA
+ RET NC
+ DEC C
+ IN A,(C)
+ INC C
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ AND 070H
+ JR Z,L346C ; (-012H)
+ RET
+
+L347F: RES 0,(IY+008H)
+ RES 7,(IY+00AH)
+ LD (IY-001H),000H
+L348B: LD B,00AH
+ PUSH IY
+ POP HL
+ LD DE,L0003
+ ADD HL,DE
+ OTIR
+ RET
+
+L3497: LD A,030H
+ OUT (C),A
+ RET
+
+L349C: SET 0,(IY+008H)
+ LD A,013H
+ OUT (C),A
+ LD A,(IY+008H)
+ OUT (C),A
+ LD A,035H
+ OUT (C),A
+ LD A,(IY+00AH)
+ OR 088H
+ LD (IY+00AH),A
+ OUT (C),A
+ RET
+
+ LD A,003H
+ OUT (C),A
+ RES 0,(IY+008H)
+ LD A,(IY+008H)
+ OUT (C),A
+L34C5: RES 7,(IY+00AH)
+ JR L34DB ; (+010H)
+
+L34CB: SET 1,(IY+00AH)
+ JR L34DB ; (+00aH)
+
+L34D1: RES 1,(IY+00AH)
+ JR L34DB ; (+004H)
+
+ SET 7,(IY+00AH)
+L34DB: LD A,005H
+ OUT (C),A
+ LD A,(IY+00AH)
+ OUT (C),A
+ OR A
+ RET
+
+L34E6: CALL SKPDE
+ LD C,(IY+000H)
+L34EC: CALL L342E
+ CALL L3564
+ JR C,L34EC ; (-008H)
+ CALL L349C
+L34F7: CALL L342E
+ IN A,(C)
+ RRCA
+ JR NC,L34F7 ; (-008H)
+ DEC C
+ IN A,(C)
+ INC C
+ AND (IY+002H)
+ PUSH AF
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ AND 070H
+ JR NZ,L3516 ; (+005H)
+ CALL L34C5
+ POP AF
+ RET
+
+L3516: LD B,A
+ POP AF
+ PUSH BC
+ CALL L3435
+ POP BC
+ LD A,01DH
+ RLC B
+ RLC B
+ RET C
+ INC A
+ RLC B
+ RET C
+ INC A
+ SCF
+ RET
+
+L352B: CALL SKPDE
+ LD C,(IY+000H)
+ LD D,A
+ CALL L34CB
+L3535: CALL L342E
+ CALL L356B
+ CALL NC,L357C
+L353E: JR C,L3535 ; (-00bH)
+ IN A,(C)
+ BIT 2,A
+ JR Z,L3535 ; (-011H)
+ BIT 7,(IY-003H)
+ JR Z,L3555 ; (+009H)
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ RRCA
+ JR NC,L3535 ; (-020H)
+L3555: DEC C
+ OUT (C),D
+ INC C
+ BIT 6,(IY-003H)
+ JR Z,L3562 ; (+003H)
+ CALL L34D1
+L3562: OR A
+ RET
+
+L3564: OR A
+ BIT 0,(IY-003H)
+ JR L3570 ; (+005H)
+
+L356B: OR A
+ BIT 1,(IY-003H)
+L3570: RET Z
+ LD A,010H
+ OUT (C),A
+ IN A,(C)
+ AND 008H
+ RET NZ
+ SCF
+ RET
+
+L357C: OR A
+ BIT 2,(IY-003H)
+ RET Z
+ LD A,010H
+ OUT (C),A
+ IN A,(C)
+ AND 020H
+ RET NZ
+ SCF
+ RET
+
+$FD: DB 0A2H,"8FD" ; $FD - Floppy Disk device descriptor
+ DS 2, 000H
+ DB 03FH,003H,03FH,08DH,036H,00FH
+ DS 2, 000H
+ DB 001H,030H,000H,0FEH,000H,005H,037H,008H,037H,097H,01FH,097H,01FH,097H,01FH
+ NOP
+L35AB: NOP
+L35AC: NOP
+L35AD: NOP
+ NOP
+ NOP
+L35B0: NOP
+L35B1: NOP
+ NOP
+L35B3: NOP
+L35B4: NOP
+L35B5: NOP
+L35B6: NOP
+L35B7: NOP
+ NOP
+ NOP
+ NOP
+L35BB: NOP
+ NOP
+ NOP
+ NOP
+L35BF: NOP
+L35C0: PUSH BC
+ LD A,L
+ LD B,004H
+L35C4: SRL H
+ RR L
+ DJNZ L35C4 ; (-006H)
+ AND 00FH
+ INC A
+ LD H,A
+ POP BC
+ RET
+
+L35D0: LD A,H
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ DEC A
+ ADD A,L
+ LD L,A
+ RET
+
+L35DB: CALL SKPDE
+ LD HL,L35B5
+ BIT 7,(HL)
+ JR NZ,L35EB ; (+006H)
+ CALL L367C
+ CALL L3898
+L35EB: LD A,(L35AC)
+ BIT 2,A
+ SET 2,A
+ JR Z,L35F6 ; (+002H)
+ SET 5,A
+L35F6: SET 7,A
+ LD HL,L35B5
+ BIT 6,(HL)
+ JR Z,L3601 ; (+002H)
+ SET 6,A
+L3601: CALL L361C
+ LD (HL),A
+ LD HL,L35B7
+ CALL L3614
+ BIT 0,(HL)
+ CALL Z,L3695
+ RET C
+ SET 0,(HL)
+ RET
+
+L3614: LD A,(L35AC)
+ AND 003H
+ JP ADDHLA
+
+L361C: OUT (0DCH),A
+ PUSH AF
+ RLCA
+ RLCA
+ OUT (0DDH),A
+ RLCA
+ OUT (0DEH),A
+ POP AF
+ RET
+
+L3628: CALL SKPDE
+ LD D,000H
+ LD A,(L35B3)
+ SRL A
+ CPL
+ OUT (0DBH),A
+ LD B,A
+ LD A,(L35B5)
+ RES 6,A
+ BIT 5,A
+ JR Z,L3640 ; (+001H)
+ CCF
+L3640: JR C,L3644 ; (+002H)
+ SET 6,A
+L3644: CALL L361C
+ LD HL,L35B5
+ CP (HL)
+ LD (HL),A
+ JR Z,L364F ; (+001H)
+ INC D
+L364F: LD HL,L35BB
+ CALL L3614
+ LD A,(HL)
+ OUT (0D9H),A
+ CP B
+ JR Z,L3666 ; (+00bH)
+ INC D
+ CALL L3673
+ PUSH AF
+ IN A,(0D9H)
+ LD (HL),A
+ POP AF
+ RET C
+ RET NZ
+L3666: LD A,(L35B4)
+ CPL
+ OUT (0DAH),A
+ LD A,D
+ OR A
+ CALL NZ,L388D
+ XOR A
+ RET
+
+L3673: LD A,018H
+ CALL L36C2
+ RET C
+ AND 099H
+ RET
+
+L367C: LD HL,L35B5
+ SET 7,(HL)
+ LD A,(HL)
+ CALL L361C
+ LD HL,L35B7
+ LD B,004H
+ JP ?CLRHL
+
+L368D: XOR A
+ CALL L361C
+ LD (L35B5),A
+ RET
+
+L3695: CALL SKPDE
+ LD HL,L35BB
+ CALL L3614
+ LD (HL),0FFH
+ LD A,008H
+ CALL L36C2
+ RET C
+ AND 085H
+ XOR 004H
+ RET Z
+ JP L385A
+
+L36AE: PUSH AF
+ LD A,LSD0
+ CALL L36BB
+ JR C,L36B8 ; (+002H)
+ POP AF
+ RET
+
+L36B8: POP HL
+ POP HL
+ RET
+
+L36BB: CALL SKPDE
+ LD D,000H
+ JR L36DC ; (+01aH)
+
+L36C2: CALL SKPDE
+ LD B,A
+ LD A,(035AAH)
+ CPL
+ AND 003H
+ OR B
+ LD D,000H
+ JR L36D6 ; (+005H)
+
+L36D1: CALL SKPDE
+ LD D,001H
+L36D6: CALL L36AE
+ LD (L35B6),A
+L36DC: CPL
+ OUT (0D8H),A
+ CALL L3887
+ LD E,007H
+L36E4: LD HL,L2710
+L36E7: DEC HL
+ LD A,H
+ OR L
+ JP Z,L36F9
+ IN A,(0D8H)
+ CPL
+ LD B,A
+ AND 081H
+ CP D
+ JR NZ,L36E7 ; (-00fH)
+ LD A,B
+ OR A
+ RET
+
+L36F9: DEC E
+ JP Z,L385A
+ LD A,(L35B6)
+ CPL
+ OUT (0D8H),A
+ JR L36E4 ; (-021H)
+
+ DB 037H
+ JR L3709 ; (+001H)
+
+ OR A
+L3709: EX AF,AF'
+ PUSH AF
+ EX AF,AF'
+ LD (L35B1),HL
+ PUSH HL
+ LD HL,L35AB
+ RL (HL)
+ RRC (HL)
+ LD H,(HL)
+ LD L,A
+ AND 007H
+ LD (L35AC),A
+ CALL L35DB
+ JR NC,L3728 ; (+005H)
+ POP HL
+ EX AF,AF'
+ POP AF
+ EX AF,AF'
+ RET
+
+L3728: BIT 7,H
+ LD A,L
+ POP HL
+ PUSH HL
+ CALL Z,L37E7
+ LD (035AFH),DE
+ PUSH DE
+ OR A
+ PUSH AF
+ LD H,B
+ LD L,C
+ CALL P,L35C0
+ LD (L35AD),HL
+ LD A,009H
+ LD (L35BF),A
+ PUSH IY
+ CALL L375C
+ EX AF,AF'
+ POP IY
+ LD HL,(L35B3)
+ POP AF
+ CALL P,L35D0
+ LD B,H
+ LD C,L
+ POP DE
+ POP HL
+ POP AF
+ EX AF,AF'
+ JP L37E7
+
+L375C: LD E,000H
+ LD HL,(035AFH)
+ LD A,(L35B5)
+ BIT 5,A
+ JR Z,L376B ; (+003H)
+ ADD HL,HL
+ LD E,080H
+L376B: LD A,L
+ OR A
+ JR Z,L3770 ; (+001H)
+ INC H
+L3770: LD A,H
+ LD (L35B0),A
+L3774: CALL L37FA
+ CALL NC,L3628
+ RET C
+ JR NZ,L37E1 ; (+064H)
+ DI
+ LD A,(L35AB)
+ BIT 7,A
+ LD A,090H
+ LD IY,0A2EDH
+ JR NZ,L3791 ; (+006H)
+ LD A,0B4H
+ LD IY,0A3EDH
+L3791: LD (L37A8),IY
+ CALL L36D1
+ RET C
+L3799: LD B,E
+ PUSH DE
+ LD DE,0FE7CH
+L379E: IN A,(0D8H)
+ OR E
+ CP D
+ JR Z,L379E ; (-006H)
+ CP LSFC
+ JR NZ,L37AD ; (+005H)
+L37A8: NOP
+ NOP
+ JP NZ,L379E
+L37AD: POP DE
+ IN A,(0D8H)
+ RRA
+ JP C,L385A
+ LD A,(L35B4)
+ INC A
+ LD (L35B4),A
+ CP 011H
+ JR Z,L37C4 ; (+005H)
+ DEC D
+ JR NZ,L3799 ; (-029H)
+ JR L37C5 ; (+001H)
+
+L37C4: DEC D
+L37C5: CALL L36AE
+ EI
+ IN A,(0D8H)
+ CPL
+ OR A
+ JR NZ,L37E1 ; (+012H)
+ LD A,(L35AB)
+ OR A
+ CALL Z,L3830
+ JR C,L37E1 ; (+009H)
+ CALL L3818
+ LD A,D
+ OR A
+ JR NZ,L3774 ; (-06bH)
+ XOR A
+ RET
+
+L37E1: CALL L380B
+ RET C
+ JR L3774 ; (-073H)
+
+L37E7: CALL IOOUT
+ LD A,(L35B5)
+ BIT 5,A
+ RET Z
+L37F0: LD A,(HL)
+ CPL
+ LD (HL),A
+ INC HL
+ DEC DE
+ LD A,D
+ OR E
+ JR NZ,L37F0 ; (-009H)
+ RET
+
+L37FA: LD HL,(L35AD)
+ LD (L35B3),HL
+ LD HL,(L35B1)
+ LD A,(L35B0)
+ LD D,A
+ LD C,0DBH
+ OR A
+ RET
+
+L380B: CALL SKPDE
+ LD HL,L35BF
+ DEC (HL)
+ JP Z,L385A
+ JP L3695
+
+L3818: LD (L35B1),HL
+ LD A,D
+ LD (L35B0),A
+ LD HL,(L35B3)
+ LD A,H
+ CP 011H
+ RET NZ
+ LD H,001H
+ INC L
+ LD (L35AD),HL
+ LD (L35B3),HL
+ RET
+
+L3830: LD A,(035AEH)
+ CPL
+ OUT (0DAH),A
+ LD A,090H
+ CALL L36D1
+ RET C
+ LD A,(L35B4)
+ LD B,A
+L3840: IN A,(0D8H)
+ CPL
+ AND 081H
+ CP 001H
+ JR NZ,L3852 ; (+009H)
+ IN A,(0DAH)
+ CPL
+ CP B
+ JR NZ,L3840 ; (-00fH)
+ CALL L36AE
+L3852: IN A,(0D8H)
+ CPL
+ AND 099H
+ RET Z
+ SCF
+ RET
+
+L385A: LD A,(L35B6)
+ RLA
+ IN A,(0D8H)
+ CPL
+ JR NC,L3878 ; (+015H)
+ RLA
+ JR C,L387B ; (+015H)
+ RLA
+ JR NC,L3870 ; (+007H)
+ LD HL,L35AB
+ BIT 7,(HL)
+ JR Z,L387F ; (+00fH)
+L3870: AND 0C0H
+ JR NZ,L3883 ; (+00fH)
+L3874: LD A,029H
+ SCF
+ RET
+
+L3878: RLA
+ JR NC,L3874 ; (-007H)
+L387B: LD A,032H
+ SCF
+ RET
+
+L387F: LD A,02EH
+ SCF
+ RET
+
+L3883: LD A,036H
+ SCF
+ RET
+
+L3887: PUSH DE
+ LD DE,L000F
+ JR L3891 ; (+004H)
+
+L388D: PUSH DE
+ LD DE,L2026
+L3891: DEC DE
+ LD A,E
+ OR D
+ JR NZ,L3891 ; (-005H)
+ POP DE
+ RET
+
+L3898: PUSH BC
+ LD B,011H
+L389B: CALL L388D
+ DJNZ L389B ; (-005H)
+ POP BC
+ RET
+
+$QD: DB 05EH,00DH,051H,044H ; $QD - Quick Disk device descriptor
+ DS 2, 000H
+ DB "_@ ",0C4H,038H
+ DB FDPD
+ DB "8*9",0DAH,038H,000H,004H,018H
+ DS 3, 039H
+ DB 097H
+ DB 01FH
+ DB 097H
+ DB 01FH
+ DB 0C1H
+ DB 038H
+ NOP
+ NOP
+ XOR A
+ SCF
+ RET
+
+ RET C
+ CALL L1E7A
+ CALL TEST1
+ DB 000H
+ JP NZ,L1F6A
+ CALL L392F
+ RET C
+ LD HL,L3972
+ LD (HL),002H
+ JR L3928 ; (+04eH)
+
+ OR A
+ JR NZ,L38F4 ; (+017H)
+ XOR A
+ LD (L397E),A
+ LD HL,L3972
+ LD (HL),005H
+ CALL L3988
+ LD HL,00001H
+ LD (L3972),HL
+ LD HL,L3972
+ JR L3928 ; (+034H)
+
+L38F4: LD HL,L3972
+ LD (HL),006H
+ JR L3928 ; (+02dH)
+
+ LD (L3974),HL
+ LD HL,L0003
+ LD (L3972),HL
+ LD HL,00040H
+ LD (L3976),HL
+ LD HL,L3972
+ CALL L3988
+ RET NC
+ CP 028H
+ SCF
+ RET NZ
+ LD A,000H
+ RET
+
+ LD (L3974),HL
+ LD HL,00103H
+ LD (L3972),HL
+ LD (03976H),BC
+ LD HL,L3972
+L3928: JR L3988 ; (+05eH)
+
+ LD A,037H
+ LD (L393C),A
+L392F: LD A,001H
+ LD HL,L3973
+ LD (HL),A
+ DEC HL
+ LD (HL),A
+ JR L3988 ; (+04fH)
+
+ LD (L3971),A
+L393C: XOR A
+ JR NC,L395B ; (+01cH)
+ LD A,0AFH
+ LD (L393C),A
+ CALL L1C2B
+ LD (L3978),HL
+ LD HL,L1000
+ LD (L3974),HL
+ LD HL,00040H
+ LD (L3976),HL
+ LD A,(L3971)
+ JR L3963 ; (+008H)
+
+L395B: LD (L3978),HL
+ LD A,(L3971)
+ SET 0,A
+L3963: LD (L3973),A
+ LD (0397AH),BC
+ LD HL,L3972
+ LD (HL),004H
+ JR L3988 ; (+017H)
+
+L3971: NOP
+L3972: NOP
+L3973: NOP
+L3974: NOP
+ NOP
+L3976: NOP
+ NOP
+L3978: NOP
+ NOP
+ NOP
+ NOP
+L397C: NOP
+L397D: NOP
+L397E: NOP
+L397F: NOP
+L3980: NOP
+L3981: NOP
+L3982: NOP
+L3983: NOP
+L3984: NOP
+L3985: NOP
+ NOP
+ NOP
+L3988: LD A,002H
+ LD (L3984),A
+L398D: DI
+ CALL L39D5
+ EI
+ RET NC
+ PUSH AF
+ CP 028H
+ JR Z,L39D3 ; (+03bH)
+ CALL L3C34
+ LD A,(L3980)
+ OR A
+ JR Z,L39B8 ; (+017H)
+ XOR A
+ LD (L3980),A
+ LD A,(L3981)
+ PUSH HL
+ LD (03986H),SP
+ POP HL
+ DI
+ CALL L3BD3
+ EI
+ JR C,L39CD ; (+018H)
+ CALL L3C34
+L39B8: POP AF
+ PUSH AF
+ CP 029H
+ JR NZ,L39D3 ; (+015H)
+ LD HL,L3984
+ DEC (HL)
+ JR Z,L39CD ; (+009H)
+ POP AF
+ LD A,(L397F)
+ LD (L397E),A
+ JR L398D ; (-040H)
+
+L39CD: CALL L3B47
+ CALL L39EE
+L39D3: POP AF
+ RET
+
+L39D5: LD (03986H),SP
+ LD A,(L3972)
+ DEC A
+ JR Z,L39F5 ; (+016H)
+ DEC A
+ JR Z,L39FB ; (+019H)
+ DEC A
+ JR Z,L3A49 ; (+064H)
+ DEC A
+ JP Z,L3AB4
+ DEC A
+ JR Z,L39EE ; (+002H)
+ JR L3A3E ; (+050H)
+
+L39EE: PUSH AF
+ XOR A
+ LD (L397C),A
+ POP AF
+ RET
+
+L39F5: LD A,(L3973)
+ JP L3BA9
+
+L39FB: XOR A
+ CALL L3BD3
+ CALL L3CAA
+ LD BC,0FFFFH
+ LD A,0AAH
+L3A07: CPL
+ LD D,A
+ CALL L3D21
+ DEC BC
+ LD A,B
+ OR C
+ JR Z,L3A14 ; (+003H)
+ LD A,D
+ JR L3A07 ; (-00dH)
+
+L3A14: CALL L3CF7
+ CALL L3C34
+ CALL L3BEB
+ LD A,(L3982)
+ DEC A
+ JR NZ,L3A41 ; (+01eH)
+ CALL L3C49
+ LD BC,0FFFFH
+ LD E,055H
+L3A2B: CP E
+ JR NZ,L3A41 ; (+013H)
+ DEC BC
+ LD A,B
+ OR C
+ JR Z,L3A3B ; (+008H)
+ LD A,E
+ CPL
+ LD E,A
+ CALL L3D37
+ JR L3A2B ; (-010H)
+
+L3A3B: CALL L3D09
+L3A3E: JP L3C34
+
+L3A41: LD A,029H
+ SCF
+ RET
+
+L3A45: EI
+ JP 0017DH
+
+L3A49: LD A,(L3983)
+ OR A
+ CALL Z,L3BEB
+ CALL L3A7A
+ RET C
+ CALL BRKCHK
+ JP Z,L3A45
+ CALL L3D37
+ LD C,A
+ CALL L3D37
+ LD B,A
+ LD HL,(L3974)
+L3A65: CALL L3D37
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3A65 ; (-00aH)
+ CALL L3D09
+ LD A,(L3973)
+ BIT 0,A
+ JR NZ,L3A3E ; (-03bH)
+ RET
+
+L3A7A: LD HL,L3982
+ DEC (HL)
+ JR Z,L3AB0 ; (+030H)
+ CALL L3C49
+ LD C,A
+ LD A,(L397C)
+ LD HL,L397D
+ CP (HL)
+ JR NZ,L3AAD ; (+020H)
+ INC A
+ LD (L397C),A
+ LD (HL),A
+ LD A,(L3973)
+ XOR C
+ RRA
+ RET NC
+L3A98: CALL L3D37
+ LD C,A
+ CALL L3D37
+ LD B,A
+L3AA0: CALL L3D37
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3AA0 ; (-008H)
+ CALL L3D09
+ JR L3A7A ; (-033H)
+
+L3AAD: INC (HL)
+ JR L3A98 ; (-018H)
+
+L3AB0: LD A,028H
+ SCF
+ RET
+
+L3AB4: LD A,(L397E)
+ LD (L397F),A
+ LD A,(L3983)
+ OR A
+ JR NZ,L3AD7 ; (+017H)
+ CALL L3BEB
+ LD A,(L397E)
+ LD HL,L3982
+ ADD A,(HL)
+ LD (L3982),A
+ INC A
+ LD (L397C),A
+ CALL L3A7A
+ JP NC,L3B51
+L3AD7: LD A,(L3973)
+ LD B,A
+ AND 001H
+ JR NZ,L3AEE ; (+00fH)
+ LD DE,L3974
+ LD A,B
+ RES 2,A
+ CALL L3B5A
+ CALL BRKCHK
+ JP Z,L3A45
+L3AEE: LD DE,L3978
+ LD A,(L3973)
+ SET 0,A
+ CALL L3B5A
+ CALL L3C34
+ CALL BRKCHK
+ JP Z,L3A45
+ LD A,(L3973)
+ AND 004H
+ JR Z,L3B55 ; (+04cH)
+ LD A,(L3981)
+ LD HL,L397E
+ ADD A,(HL)
+ CALL L3BD3
+ LD A,001H
+ LD (L3980),A
+L3B18: LD A,(L3981)
+ LD HL,L397F
+ ADD A,(HL)
+ INC A
+ LD (L3982),A
+ INC A
+ LD (L397C),A
+ CALL L3A7A
+ JR NC,L3B51 ; (+025H)
+ LD A,(L3973)
+ AND 001H
+ JR NZ,L3B3A ; (+007H)
+ LD DE,L3974
+ CALL L3B88
+ RET C
+L3B3A: LD DE,L3978
+ CALL L3B88
+ RET C
+ LD A,(L3980)
+ OR A
+ JR Z,L3B4E ; (+007H)
+L3B47: XOR A
+ LD (L397E),A
+ LD (L3980),A
+L3B4E: JP L3C34
+
+L3B51: LD A,029H
+ SCF
+ RET
+
+L3B55: CALL L3BEB
+ JR L3B18 ; (-042H)
+
+L3B5A: PUSH AF
+ LD HL,L397E
+ INC (HL)
+ CALL L3CAA
+ POP AF
+ CALL L3D21
+ CALL L3B7E
+ LD A,C
+ CALL L3D21
+ LD A,B
+ CALL L3D21
+L3B71: LD A,(HL)
+ CALL L3D21
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3B71 ; (-00aH)
+ JP L3CF7
+
+L3B7E: EX DE,HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ EX DE,HL
+ RET
+
+L3B88: CALL L3C49
+ CALL L3B7E
+ CALL L3D37
+ CP C
+ JR NZ,L3B51 ; (-043H)
+ CALL L3D37
+ CP B
+ JR NZ,L3B51 ; (-049H)
+L3B9A: CALL L3D37
+ CP (HL)
+ JR NZ,L3B51 ; (-04fH)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3B9A ; (-00cH)
+ JP L3D09
+
+L3BA9: LD B,A
+ LD A,002H
+ OUT (0F7H),A
+ LD A,055H
+ OUT (0F7H),A
+ LD A,002H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ CP 055H
+ JP NZ,03D4DH
+ LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ LD C,A
+ AND 008H
+ JP Z,03D4DH
+ LD A,B
+ OR A
+ RET Z
+ LD A,C
+ AND 020H
+ RET NZ
+ JP 03D4AH
+
+L3BD3: PUSH AF
+ LD HL,03D73H
+ LD B,009H
+ CALL L3C0A
+ CALL L3CDF
+ CALL L3CC3
+ POP AF
+ CALL L3D21
+ CALL L3CF7
+ JR L3C00 ; (+015H)
+
+L3BEB: LD HL,L3D68
+ LD B,00BH
+ CALL L3C0A
+ CALL L3C5F
+ LD (L3981),A
+ INC A
+ LD (L3982),A
+ CALL L3D09
+L3C00: LD HL,L3985
+ SET 3,(HL)
+ XOR A
+ LD (L397D),A
+ RET
+
+L3C0A: LD C,0F6H
+ OTIR
+ LD A,005H
+ LD (L3983),A
+ OUT (0F7H),A
+ LD A,080H
+ OUT (0F7H),A
+L3C19: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03D4DH
+ LD A,010H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 008H
+ JR Z,L3C19 ; (-015H)
+ LD BC,L00E9
+ JP L3D5B
+
+L3C34: PUSH AF
+ LD A,005H
+ OUT (0F6H),A
+ LD A,060H
+ OUT (0F6H),A
+ LD A,005H
+ OUT (0F7H),A
+ XOR A
+ LD (L3983),A
+ OUT (0F7H),A
+ POP AF
+ RET
+
+L3C49: LD A,058H
+ LD B,00BH
+ LD HL,L3D68
+ CALL L3CE8
+ LD HL,L3985
+ BIT 3,(HL)
+ LD BC,L0003
+ JR Z,L3C62 ; (+005H)
+ RES 3,(HL)
+L3C5F: LD BC,L00A0
+L3C62: CALL L3D5B
+ LD A,005H
+ OUT (0F7H),A
+ LD A,082H
+ OUT (0F7H),A
+ LD A,003H
+ OUT (0F6H),A
+ LD A,LSD3
+ OUT (0F6H),A
+ LD BC,L2CC0
+L3C78: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 010H
+ JR Z,L3C8A ; (+008H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3C78 ; (-00fH)
+ JP 03D53H
+
+L3C8A: LD A,003H
+ OUT (0F6H),A
+ LD A,0C3H
+ OUT (0F6H),A
+L3C92: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 001H
+ JR Z,L3C92 ; (-00aH)
+ LD A,003H
+ OUT (0F6H),A
+ LD A,0C9H
+ OUT (0F6H),A
+ CALL L3D37
+ JP L3D37
+
+L3CAA: LD A,098H
+ LD B,009H
+ LD HL,03D73H
+ CALL L3CE8
+ CALL L3CDF
+ LD HL,L3985
+ BIT 3,(HL)
+ LD BC,0001DH
+ JR Z,L3CC6 ; (+005H)
+ RES 3,(HL)
+L3CC3: LD BC,L0140
+L3CC6: CALL L3D5B
+ LD A,005H
+ OUT (0F6H),A
+ LD A,0EFH
+ OUT (0F6H),A
+ LD BC,00001H
+ CALL L3D5B
+ LD A,0C0H
+ OUT (0F6H),A
+ LD A,0A5H
+ JR L3D21 ; (+042H)
+
+L3CDF: LD A,005H
+ OUT (0F6H),A
+ LD A,0FFH
+ OUT (0F6H),A
+ RET
+
+L3CE8: LD C,0F6H
+ OUT (C),A
+ LD A,005H
+ OUT (0F7H),A
+ LD A,080H
+ OUT (0F7H),A
+ OTIR
+ RET
+
+L3CF7: LD BC,00001H
+ CALL L3D5B
+ LD A,010H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 008H
+ RET NZ
+ JP 03D50H
+
+L3D09: LD B,003H
+L3D0B: CALL L3D37
+ DJNZ L3D0B ; (-005H)
+L3D10: IN A,(0F6H)
+ RRCA
+ JR NC,L3D10 ; (-005H)
+ LD A,001H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 040H
+ JR NZ,L3D47 ; (+028H)
+ OR A
+ RET
+
+L3D21: PUSH AF
+L3D22: IN A,(0F6H)
+ AND 004H
+ JR Z,L3D22 ; (-006H)
+ POP AF
+ OUT (QDPC),A
+L3D2B: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03D4DH
+ RET
+
+L3D37: CALL L3D2B
+ IN A,(0F6H)
+ RLCA
+ JR C,L3D47 ; (+008H)
+ RRCA
+ RRCA
+ JR NC,L3D37 ; (-00cH)
+ IN A,(QDPC)
+ OR A
+ RET
+
+L3D47: LD A,029H
+ LD HL,02E3EH
+ LD HL,0323EH
+ LD HL,L353E
+ LD HL,0363EH
+ LD SP,(03986H)
+ SCF
+ RET
+
+L3D5B: PUSH AF
+L3D5C: LD A,098H
+L3D5E: DEC A
+ JR NZ,L3D5E ; (-003H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3D5C ; (-00aH)
+ POP AF
+ RET
+
+L3D68: LD E,B
+ INC B
+ DJNZ L3D71 ; (+005H)
+ INC B
+ INC BC
+ RET NC
+ LD B,016H
+L3D71: RLCA
+ LD D,098H
+ INC B
+ DJNZ L3D7D ; (+006H)
+ LD D,007H
+ LD D,005H
+ LD L,L
+ PUSH HL
+L3D7D: LD DE,(00188H)
+ PUSH DE
+ LD DE,L3DC3
+ LD (00188H),DE
+ LD A,(L004F)
+ PUSH AF
+ LD A,064H
+ LD (L004F),A
+ LD (03E3AH),SP
+ XOR A
+ LD (L1091),A
+L3D9A: LD SP,L0000
+L3D9D: LD BC,L3D9D
+ PUSH BC
+ RST 018H
+ DB 002H
+ LD A,02AH
+ RST 018H
+ DB 003H
+L3DA7: CALL L3E46
+ JR NC,L3DA7 ; (-005H)
+ LD A,(DE)
+ CP 02AH
+ RET NZ
+ INC DE
+ LD A,(DE)
+ INC DE
+ EXX
+ LD HL,L3DD5
+ LD B,00AH
+L3DB9: CP (HL)
+ INC HL
+ JR Z,L3DCF ; (+012H)
+ INC HL
+ INC HL
+ DJNZ L3DB9 ; (-008H)
+ EXX
+ RET
+
+L3DC3: LD C,A
+ AND 07FH
+ JR Z,L3D9A ; (-02eH)
+ LD A,C
+ RST 018H
+ DB 01BH
+ RST 018H
+ DB 043H
+ JR L3D9A ; (-035H)
+
+L3DCF: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH DE
+ EXX
+ RET
+
+L3DD5: LD B,H
+ CP E
+ LD A,04DH
+ DEC L
+ CCF
+ LD D,B
+ DI
+ DEC A
+ LD B,A
+ OR (HL)
+ LD A,046H
+ LD D,C
+ CCF
+ LD D,D
+ ADD HL,SP
+ LD A,053H
+ CALL M,L4C3D
+ INC DE
+ LD A,056H
+ JR NC,03E2EH ; (+03eH)
+ LD D,H
+ AND C
+ CCF
+ LD A,(L1091)
+ XOR 001H
+ LD (L1091),A
+ RET
+
+ CALL L3F8A
+ RET C
+ EXX
+ CALL L3FB8
+ EXX
+ LD (ELMD20),BC
+ LD (ELMD22),DE
+ LD (L1018),HL
+ RST 018H
+ DB 031H
+ RET
+
+ CALL L3E67
+ PUSH HL
+ PUSH AF
+ CALL L3E25
+ POP AF
+ POP HL
+ JR NC,L3E22 ; (+003H)
+ LD HL,(ELMD22)
+L3E22: RST 018H
+ DB 030H
+ RET
+
+L3E25: CALL L3FB8
+ RST 018H
+ DB 02FH
+ CP 001H
+ RET Z
+ JP 01F9DH
+
+ CALL L3E25
+ LD HL,(ELMD22)
+ RST 018H
+ DB 032H
+ RET
+
+ LD SP,L0000
+ POP AF
+ LD (L004F),A
+ POP HL
+ LD (00188H),HL
+ POP HL
+ RET
+
+L3E46: LD DE,0FF00H
+ RST 018H
+ DB 00CH
+ JR C,L3E65 ; (+018H)
+ LD A,(DE)
+ CP 03AH
+ SCF
+ RET NZ
+ INC DE
+ CALL L3E67
+ RET C
+ LD A,(DE)
+ INC DE
+ XOR 03DH
+ RET NZ
+L3E5C: CALL L3E8C
+ CCF
+ RET NC
+ LD (HL),A
+ INC HL
+ JR L3E5C ; (-009H)
+
+L3E65: LD (DE),A
+ RET
+
+L3E67: PUSH HL
+ CALL L3E81
+ PUSH DE
+ CALL L3E93
+ JR C,L3E7C ; (+00bH)
+ LD H,A
+ CALL L3E93
+ JR C,L3E7C ; (+005H)
+ LD L,A
+ POP AF
+ POP AF
+ XOR A
+ RET
+
+L3E7C: POP DE
+ POP HL
+ SCF
+ RET
+
+L3E80: INC DE
+L3E81: LD A,(DE)
+ CP 020H
+ JR Z,L3E80 ; (-006H)
+ RET
+
+L3E87: LD A,(DE)
+ RST 018H
+ DB 015H
+ INC DE
+ RET
+
+L3E8C: CALL L3E81
+ CP 03BH
+ JR Z,L3EB1 ; (+01eH)
+L3E93: PUSH BC
+ PUSH DE
+ CALL L3E87
+ JR C,L3EAD ; (+013H)
+ LD C,A
+ CALL L3E87
+ JR C,L3EAD ; (+00dH)
+ LD B,A
+ LD A,C
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ ADD A,B
+ LD C,A
+ LD A,C
+ POP BC
+ POP BC
+ OR A
+ RET
+
+L3EAD: POP DE
+ POP BC
+ SCF
+ RET
+
+L3EB1: INC DE
+ LD A,(DE)
+ INC DE
+ OR A
+ RET
+
+ CALL L3E67
+ RET C
+ JP (HL)
+
+ CALL L3E67
+ JR C,L3ECB ; (+00bH)
+ PUSH HL
+ CALL L3E67
+ JR C,L3ECA ; (+004H)
+ POP DE
+ EX DE,HL
+ JR L3ED1 ; (+007H)
+
+L3ECA: POP HL
+L3ECB: EX DE,HL
+ LD HL,L0080
+ ADD HL,DE
+ EX DE,HL
+L3ED1: LD C,008H
+ CALL L3EDE
+ RET C
+ PUSH HL
+ SBC HL,DE
+ POP HL
+ RET NC
+ JR L3ED1 ; (-00dH)
+
+L3EDE: CALL L3F06
+ LD B,C
+ PUSH HL
+L3EE3: LD A,(HL)
+ CALL L3F17
+ INC HL
+ LD A,020H
+ RST 018H
+ DB 009H
+ DJNZ L3EE3 ; (-00bH)
+ POP HL
+ LD A,02FH
+ RST 018H
+ DB 009H
+ LD B,C
+L3EF4: LD A,(HL)
+ CP 020H
+ JR NC,L3EFB ; (+002H)
+ LD A,02EH
+L3EFB: RST 018H
+ DB 009H
+ INC HL
+ DJNZ L3EF4 ; (-00cH)
+ RST 018H
+ DB 008H
+ RST 018H
+ DB 00FH
+ OR A
+ RET
+
+L3F06: LD A,03AH
+ RST 018H
+ DB 009H
+ LD A,H
+ CALL L3F17
+ LD A,L
+ CALL L3F17
+ LD A,03DH
+ RST 018H
+ DB 009H
+ RET
+
+L3F17: PUSH AF
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ CALL L3F20
+ POP AF
+L3F20: AND 00FH
+ ADD A,030H
+ CP 03AH
+ JR C,L3F2A ; (+002H)
+ ADD A,007H
+L3F2A: RST 018H
+ DB 009H
+ RET
+
+ CALL L3E67
+ LD A,(L1091)
+ PUSH AF
+ XOR A
+ LD (L1091),A
+L3F38: RST 018H
+ DB 002H
+ CALL L3F06
+ LD A,(HL)
+ CALL L3F17
+ LD A,014H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 003H
+ CALL L3E46
+ JR NC,L3F38 ; (-014H)
+ POP AF
+ LD (L1091),A
+ RET
+
+ CALL L3E67
+ RET C
+ PUSH HL
+ CALL L3E67
+ POP BC
+ RET C
+ PUSH HL
+ PUSH BC
+ LD HL,0FF00H
+ CALL L3E5C
+ LD DE,0FF00H
+ OR A
+ SBC HL,DE
+ LD C,L
+ POP HL
+ PUSH HL
+ EXX
+ POP HL
+ POP DE
+ EXX
+ RET Z
+L3F71: CALL L3FCB
+ JR NZ,L3F7A ; (+004H)
+ CALL L3EDE
+ RET C
+L3F7A: RST 018H
+ DB 00EH
+ RET Z
+ EXX
+ INC HL
+ PUSH HL
+ SCF
+ SBC HL,DE
+ POP HL
+ RET NC
+ PUSH HL
+ EXX
+ POP HL
+ JR L3F71 ; (-019H)
+
+L3F8A: CALL L3E67
+ PUSH HL
+ CALL NC,L3E67
+ POP BC
+ RET C
+ SBC HL,BC
+ INC HL
+ PUSH HL
+ PUSH BC
+ CALL L3E67
+ PUSH HL
+ EXX
+ POP HL
+ POP DE
+ POP BC
+ RET
+
+ CALL L3F8A
+ RET C
+ EX DE,HL
+ PUSH HL
+ SBC HL,DE
+ POP HL
+ JR C,L3FAF ; (+003H)
+ LDIR
+ RET
+
+L3FAF: ADD HL,BC
+ DEC HL
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ EX DE,HL
+ LDDR
+ RET
+
+L3FB8: LD A,(DE)
+ OR A
+ JR Z,L3FC1 ; (+005H)
+ INC DE
+ CP 03AH
+ JR NZ,L3FB8 ; (-009H)
+L3FC1: RST 018H
+ DB 017H
+ RST 018H
+ DB 02DH
+ LD A,001H
+ LD (L1000),A
+ RET
+
+L3FCB: LD A,(DE)
+ CP (HL)
+ RET NZ
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD B,C
+L3FD2: LD A,(DE)
+ CP (HL)
+ JR NZ,L3FDB ; (+005H)
+ INC DE
+ INC HL
+ DJNZ L3FD2 ; (-008H)
+ XOR A
+L3FDB: POP HL
+ POP DE
+ POP BC
+ RET
+
+ DS 33, 000H
+L4000: LD HL,L85FE
+ LD (L1070),HL
+ LD HL,L4052
+ LD (000E3H),HL
+ LD A,B
+ OR A
+ JR Z,L401B ; (+00bH)
+ LD HL,L4042
+ LD DE,L1361
+ LD BC,00010H
+ LDIR
+L401B: LD A,(L0036)
+ BIT 6,A
+ LD A,045H
+ JR Z,L4027 ; (+003H)
+ LD (L852E),A
+L4027: LD DE,L84E0
+ RST 018H
+L402B: DB 005H
+ RST 018H
+ DB 020H
+ EX DE,HL
+L402F: LD (HL),000H
+ INC HL
+ LD A,H
+ CP 0FFH
+ JR C,L402F ; (-008H)
+ CALL L4902
+ CALL L4914
+ CALL L5E1B
+ JR L4056 ; (+014H)
+
+L4042: RRCA
+ DB "RUN ",022H,"AUTO RUN",022H,00DH
+L4052: DB 03EH
+ DB 016H
+ DB 0DFH
+ DB 003H
+L4056: LD HL,L4B7B
+ LD (00188H),HL
+L405C: RST 018H
+ DB 002H
+ LD DE,L4B68
+ RST 018H
+ DB 005H
+ RST 018H
+ DB 001H
+L4065: LD A,(L4B6E)
+ OR A
+ JR NZ,L4077 ; (+00cH)
+ LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ LD (0848FH),SP
+L4077: LD HL,L0000
+ LD (L847C),HL
+ XOR A
+ LD (L0050),A
+ CALL L48B1
+ RST 018H
+ DB 043H
+ LD DE,L11A4
+ RST 018H
+ DB 00CH
+ JR NC,L4099 ; (+00cH)
+L408D: LD HL,L48B0
+ LD A,(HL)
+ OR A
+ LD (HL),000H
+ JR NZ,L405C ; (-03aH)
+ JR L4065 ; (-033H)
+
+L4098: INC DE
+L4099: LD A,(DE)
+ CP 020H
+ JR Z,L4098 ; (-006H)
+ OR A
+ JR Z,L4065 ; (-03cH)
+ CALL L5EC2
+ JP NC,L4746
+ LD HL,L84E0
+ PUSH HL
+ CALL L66ED
+ INC HL
+ LD (L8476),HL
+ CALL L4952
+ POP HL
+ JR L40BB ; (+003H)
+
+L40B8: CALL L5E46
+L40BB: LD (0848FH),SP
+L40BF: LD DE,L40B8
+ PUSH DE
+L40C3: LD (L8491),HL
+ CALL BRKCHK
+ JP Z,0017DH
+L40CC: LD A,(HL)
+ INC HL
+ CP 080H
+ JR NC,L4126 ; (+054H)
+ CP 027H
+ JP Z,L4F80
+ CP 020H
+ JR Z,L40CC ; (-00fH)
+ CP 03AH
+ JR Z,L40C3 ; (-01cH)
+ OR A
+ JR Z,L40ED ; (+00bH)
+ DEC HL
+ SUB 041H
+ CP 01AH
+ JP C,L4C8F
+ JP L4AE6
+
+L40ED: LD HL,(L8476)
+L40F0: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L410F ; (+018H)
+ LD (L0050),A
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ LD (L8476),HL
+ EX DE,HL
+ INC HL
+ CALL LDDEMI
+ LD (0847CH),DE
+ CALL L4971
+ POP DE
+ JR L40BB ; (-054H)
+
+L410F: POP HL
+ CALL L4152
+ JP Z,L405C
+ XOR A
+ LD (L4B6E),A
+ LD A,(L847F)
+ CP 002H
+ JP Z,04B13H
+ PUSH HL
+ JP L4850
+
+L4126: CP 0FFH
+ JP Z,L4CC1
+ LD DE,L44B4
+ CP 0FEH
+ JR NZ,L4136 ; (+004H)
+ LD A,(HL)
+ INC HL
+ JR L413E ; (+008H)
+
+L4136: CP LSE0
+ JP NC,L4AE6
+ LD DE,L43F4
+L413E: ADD A,A
+ PUSH HL
+ EX DE,HL
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ EX (SP),HL
+L414A: CALL HLFTCH
+L414D: OR A
+ RET Z
+ CP 03AH
+ RET
+
+L4152: PUSH HL
+ LD HL,(L847C)
+ LD A,L
+ OR H
+ POP HL
+ RET
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L4167: DB "GOT", "O" | 080H ; BASIC statement keyword text table
+ DB "GOSU", "B" | 080H
+ DB 080H
+ DB "RU", "N" | 080H
+ DB "RETUR", "N" | 080H
+ DB "RESTOR", "E" | 080H
+ DB "RESUM", "E" | 080H
+ DB "LIS", "T" | 080H
+ DB 080H
+ DB "DELET", "E" | 080H
+ DB 052H
+L4193: DB "ENU", "M" | 080H
+ DB "AUT", "O" | 080H
+ DB "EDI", "T" | 080H
+ DB "FO", "R" | 080H
+ DB "NEX", "T" | 080H
+ DB "PRIN", "T" | 080H
+ DB 080H
+ DB "INPU", "T" | 080H
+ DB 080H
+ DB "I", "F" | 080H
+ DB "DAT", "A" | 080H
+ DB "REA", "D" | 080H
+ DB "DI", "M" | 080H
+ DB "RE", "M" | 080H
+ DB "EN", "D" | 080H
+ DB "STO", "P" | 080H
+ DB "CON", "T" | 080H
+ DB "CL", "S" | 080H
+ DB 080H
+ DB "O", "N" | 080H
+ DB "LE", "T" | 080H
+ DB "NE", "W" | 080H
+ DB "POK", "E" | 080H
+ DB "OF", "F" | 080H
+ DB "MOD", "E" | 080H
+ DB "SKI", "P" | 080H
+ DB "PLO", "T" | 080H
+ DB "LIN", "E" | 080H
+ DB "RLIN", "E" | 080H
+ DB "MOV", "E" | 080H
+ DB "RMO", "V" | 080H
+ DB "TRO", "N" | 080H
+ DB "TROF", "F" | 080H
+ DB "INP", "@" | 080H
+ DB "DEFAUL", "T" | 080H
+ DB "GE", "T" | 080H
+ DB "PCOLO", "R" | 080H
+ DB "PHOM", "E" | 080H
+ DB "HSE", "T" | 080H
+ DB "GPRIN", "T" | 080H
+ DB "KE", "Y" | 080H
+ DB "AXI", "S" | 080H
+ DB "LOA", "D" | 080H
+ DB "SAV", "E" | 080H
+ DB "MERG", "E" | 080H
+ DB "CHAI", "N" | 080H
+ DB "CONSOL", "E" | 080H
+ DB "SEARC", "H" | 080H
+ DB "OUT", "@" | 080H
+ DB "CIRCL", "E" | 080H
+ DB "TES", "T" | 080H
+ DB "PAG", "E" | 080H
+ DB "WAI", "T" | 080H
+ DB "SWA", "P" | 080H
+ DB 080H
+ DB "ERRO", "R" | 080H
+ DB "ELS", "E" | 080H
+ DB "US", "R" | 080H
+ DB "BY", "E" | 080H
+ DB 080H
+ DB 080H
+ DB "DE", "F" | 080H
+ DB 080H
+ DB 080H
+ DB "LABE", "L" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "WOPE", "N" | 080H
+ DB "CLOS", "E" | 080H
+ DB "ROPE", "N" | 080H
+ DB "XOPE", "N" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "DI", "R" | 080H
+ DB 080H
+ DB 080H
+ DB "RENAM", "E" | 080H
+ DB "KIL", "L" | 080H
+ DB "LOC", "K" | 080H
+ DB "UNLOC", "K" | 080H
+ DB "INI", "T" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "T", "O" | 080H
+ DB "STE", "P" | 080H
+ DB "THE", "N" | 080H
+ DB "USIN", "G" | 080H
+ DB 080H
+ DB 080H
+ DB "TA", "B" | 080H
+ DB "SP", "C" | 080H
+ DB 080H
+ DB 080H
+ DB ".XO", "R" | 080H
+ DB ".O", "R" | 080H
+ DB ".AN", "D" | 080H
+ DB ".NO", "T" | 080H
+ DB ">", "<" | 080H
+ DB "<", ">" | 080H
+ DB "=", "<" | 080H
+ DB "<", "=" | 080H
+ DB "=", ">" | 080H
+ DB ">", "=" | 080H
+ DB "=" | 080H
+ DB ">" | 080H
+ DB "<" | 080H
+ DB "+" | 080H
+ DB "-" | 080H
+ DB 080H
+ DB 080H
+ DB "/" | 080H
+ DB "*" | 080H
+ DB "^" | 080H
+ DB 0FFH
+L42FE: DB 080H
+ DB "SE", "T" | 080H
+ DB "RESE", "T" | 080H
+ DB "COLO", "R" | 080H
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ LD B,D
+ LD B,L
+ LD B,L
+ RET NC
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ LD C,L
+ LD D,L
+ LD D,E
+ LD C,C
+ JP L4554
+
+ LD C,L
+ LD D,B
+ RST 008H
+ LD B,E
+ LD D,L
+ LD D,D
+ LD D,E
+ LD C,A
+ JP NC,L4556
+ LD D,D
+ LD C,C
+ LD B,(HL)
+ EXX
+ LD B,E
+ LD C,H
+ JP NC,0494CH
+ LD C,L
+ LD C,C
+ CALL NC,08080H
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+FUNCWORDTBL:DB "BOO", "T" | 080H ; BASIC function keyword text table
+ DB 0FFH
+L4356: DB "IN", "T" | 080H
+ DB "AB", "S" | 080H
+ DB "SI", "N" | 080H
+ DB "CO", "S" | 080H
+ DB "TA", "N" | 080H
+ DB "L", "N" | 080H
+ DB "EX", "P" | 080H
+ DB "SQ", "R" | 080H
+ DB "RN", "D" | 080H
+ DB "PEE", "K" | 080H
+ DB "AT", "N" | 080H
+ DB "SG", "N" | 080H
+ DB "LO", "G" | 080H
+ DB "FRA", "C" | 080H
+ DB "PA", "I" | 080H
+ DB "RA", "D" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "JO", "Y" | 080H
+ DB 080H
+ DB "CHR", "$" | 080H
+ DB "STR", "$" | 080H
+ DB "HEX", "$" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "SPACE", "$" | 080H
+ DB 080H
+ DB 080H
+ DB "AS", "C" | 080H
+ DB "LE", "N" | 080H
+ DB "VA", "L" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "ER", "N" | 080H
+ DB "ER", "L" | 080H
+ DB "SIZ", "E" | 080H
+ DB "CSR", "H" | 080H
+ DB "CSR", "V" | 080H
+ DB 080H
+ DB 080H
+ DB "LEFT", "$" | 080H
+ DB "RIGHT", "$" | 080H
+ DB "MID", "$" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "TI", "$" | 080H
+ DB 080H
+ LD B,L
+ LD C,A
+ DW 046C6H ; Keyword dispatch address table
+ DW 0FFCEH
+L43F4: DW L513D
+ DW L50B8
+ DW L4AE6
+ DW L4802
+ DW L5087
+ DW L5828
+ DW L4C2E
+ DW 052B8H
+ DW L4AE6
+ DW L4999
+ DW L4A38
+ DW L4861
+ DW L48B9
+ DW L4D84
+ DW L4E1B
+ DW L561E
+ DW L4AE6
+ DW L575B
+ DW L4AE6
+ DW L5150
+ DW L4F80
+ DW L5754
+ DW L76A5
+ DW L4F80
+ DW L4850
+ DW L4BE0
+ DW L4C11
+ DW L552D
+ DW L4AE6
+ DW L50E0
+ DW L4C8F
+ DW L4922
+ DW L501A
+ DW L4AE6
+ DW L6A1C
+ DW L6A7F
+ DW L6E1A
+ DW L6ACC
+ DW 06ACFH
+ DW 06AD2H
+ DW 06AD5H
+ DW L4959
+ DW L496C
+ DW L4FA1
+ DW L58CA
+ DW L4FE5
+ DW L6B37
+ DW L6B69
+ DW L6B73
+ DW L6B7D
+ DW L539F
+ DW L6BE2
+ DW L5986
+ DW L5C86
+ DW L59EA
+ DW L59D5
+ DW L5256
+ DW L52B6
+ DW L4F8C
+ DW L6C22
+ DW L6DF0
+ DW L6DFB
+ DW L4F70
+ DW L5D63
+ DW L4AE6
+ DW L4B70
+ DW L5172
+ DW L4F26
+ DW L524E
+ DW L4AE6
+ DW L4AE6
+ DW L544C
+ DW L4AE6
+ DW L4AE6
+ DW L4F80
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW 058E2H
+ DW L5913
+ DW L58DF
+ DW 058E5H
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L5CE1
+ DW L4AE6
+ DW L4AE6
+ DW L5D08
+ DW 05914H
+ DW 05CD5H
+ DW L5CD3
+ DW L58D0
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+L44B4: DW L4AE6
+ DW L51E4
+ DW 051E5H
+ DW L549C
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L524B
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L54F3
+ DW L5515
+ DW L4FBD
+ DW L5C6F
+ DW L4928
+ LD B,E
+ LD D,B
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ OR B
+ LD D,D
+L4512: ADD A,H
+ LD A,(HL)
+ LD A,A
+ LD A,(HL)
+ BIT 7,A
+ CP E
+ LD A,A
+ XOR D
+ ADD A,B
+ ADD HL,DE
+ ADD A,E
+ PUSH AF
+ ADD A,C
+ POP HL
+ LD A,(HL)
+ OR B
+ ADD A,C
+ SBC A,H
+ ADD A,C
+ RST 038H
+ LD A,(HL)
+ LD H,D
+ ADD A,C
+ DEC C
+ ADD A,E
+ ADC A,E
+ LD H,B
+ LD A,D
+ ADD A,C
+ LD (HL),L
+ ADD A,C
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ DEC H
+ LD A,C
+ AND 04AH
+ AND 04AH
+L4554: JR NC,L45C8 ; (+072H)
+L4556: RST 028H
+ LD (HL),C
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ LD (DE),A
+ LD (HL),D
+ AND 04AH
+ AND 04AH
+ LD L,E
+ LD (HL),D
+ LD (HL),L
+ LD (HL),D
+ LD A,L
+ LD (HL),D
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ LD A,E
+ LD (HL),C
+ ADC A,C
+ LD (HL),C
+ LD E,H
+ LD (HL),C
+ LD (HL),C
+ LD (HL),C
+ HALT
+ LD (HL),C
+ AND 04AH
+ AND 04AH
+ ADC A,A
+ LD (HL),D
+ XOR H
+ LD (HL),D
+ RET
+
+ LD (HL),D
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ RRA
+ LD (HL),E
+ AND 04AH
+ LD A,072H
+ SBC A,B
+ LD A,B
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+L45B2: CALL TEST1
+ DB 00CH
+ JR NZ,L45BE ; (+006H)
+ CALL LDDEMI
+ OR 0FFH
+ RET
+
+L45BE: INC HL
+ CP 00BH
+ JR NZ,L45E2 ; (+01fH)
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD A,E
+L45C8: OR D
+ RET Z
+ EX DE,HL
+ CALL L4611
+ JP C,04B07H
+ EX DE,HL
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00CH
+ INC HL
+ INC HL
+ INC HL
+ OR 0FFH
+ LD (L4745),A
+ RET
+
+L45E2: CP 022H
+ JP NZ,L4AE6
+ LD (04658H),HL
+ LD B,000H
+L45EC: LD A,(HL)
+ OR A
+ JR Z,L45F8 ; (+008H)
+ INC HL
+ CP 022H
+ JR Z,L45F8 ; (+003H)
+ INC B
+ JR L45EC ; (-00cH)
+
+L45F8: LD A,B
+ OR A
+ JP Z,L4AE6
+ LD (04656H),A
+ EX DE,HL
+ CALL L460B
+ JP C,04B07H
+ EX DE,HL
+ OR 0FFH
+ RET
+
+L460B: PUSH BC
+ LD BC,L4644
+ JR L4615 ; (+004H)
+
+L4611: PUSH BC
+ LD BC,L4638
+L4615: LD (0462BH),BC
+ PUSH DE
+ EX DE,HL
+ LD HL,(L1070)
+L461E: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ LD A,B
+ OR C
+ SCF
+ JR Z,L4635 ; (+00fH)
+ DEC HL
+ PUSH HL
+ ADD HL,BC
+ EX (SP),HL
+ CALL L0000
+ JR C,L4634 ; (+005H)
+ JR Z,L4634 ; (+003H)
+ POP HL
+ JR L461E ; (-016H)
+
+L4634: POP DE
+L4635: POP DE
+ POP BC
+ RET
+
+L4638: INC HL
+ INC HL
+ INC HL
+ LD A,D
+ CP (HL)
+ RET NZ
+ DEC HL
+ LD A,E
+ CP (HL)
+ DEC HL
+ DEC HL
+ RET
+
+L4644: PUSH HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ CALL TEST1
+ DB 0CAH
+ JR NZ,L4668 ; (+019H)
+ CALL TEST1
+ DB 022H
+ JR NZ,L4668 ; (+013H)
+ LD B,000H
+ LD DE,L0000
+L465A: LD A,(DE)
+ CP (HL)
+ JR NZ,L4668 ; (+00aH)
+ INC HL
+ INC DE
+ DJNZ L465A ; (-008H)
+ LD A,(HL)
+ CP 022H
+ JR Z,L4668 ; (+001H)
+ OR A
+L4668: SCF
+ CCF
+ POP HL
+ RET
+
+L466C: LD DE,L0000
+ LD BC,0FFFFH
+ CALL L46AE
+ RET Z
+ CP 02DH
+ JR Z,L4696 ; (+01cH)
+ CP 02EH
+ LD DE,(08478H)
+ JR Z,L4689 ; (+007H)
+ CALL TESTX
+ DB 00BH
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L4689: INC HL
+ CALL L46AE
+ JR Z,L4693 ; (+004H)
+ CP 02DH
+ JR Z,L4696 ; (+003H)
+L4693: LD C,E
+ LD B,D
+ RET
+
+L4696: INC HL
+ CALL L46AE
+ RET Z
+ CP 02EH
+ JR NZ,L46A5 ; (+006H)
+ LD BC,(08478H)
+ INC HL
+ RET
+
+L46A5: CALL TESTX
+ DB 00BH
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ RET
+
+L46AE: CALL L414A
+ RET Z
+ CP 02CH
+ RET
+
+L46B5: CALL SKPDE
+ LD A,0FFH
+ LD (L4745),A
+ LD HL,L470B
+ JR L46D4 ; (+012H)
+
+L46C2: CALL SKPDE
+ CALL L4839
+L46C8: LD A,(L4745)
+ OR A
+ RET Z
+ XOR A
+ LD (L4745),A
+ LD HL,L46F1
+L46D4: LD (046EFH),HL
+ LD HL,(L1070)
+ DEC HL
+L46DB: INC HL
+ LD A,(HL)
+ INC HL
+ OR (HL)
+ RET Z
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (0473AH),DE
+L46E8: CALL L5198
+ OR A
+ JR Z,L46DB ; (-013H)
+ JP L0000
+
+L46F1: CP 00CH
+ JR NZ,L46E8 ; (-00dH)
+ DEC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH HL
+ EX DE,HL
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00BH
+ INC HL
+ INC HL
+ JR L46E8 ; (-023H)
+
+L470B: CP 00BH
+ JR NZ,L46E8 ; (-027H)
+ DEC HL
+ PUSH HL
+ CALL INDRCT
+ LD E,L
+ LD D,H
+ LD A,L
+ OR H
+ JR Z,L4741 ; (+027H)
+ CALL L4611
+ JR C,L472A ; (+00bH)
+ EX DE,HL
+ POP HL
+ DEC HL
+ LD (HL),00CH
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ JR L46E8 ; (-042H)
+
+L472A: PUSH DE
+ LD A,010H
+ RST 018H
+ DB 01BH
+ LD A,020H
+ RST 018H
+ DB 003H
+ POP HL
+ CALL L5E64
+ RST 018H
+ DB 005H
+ LD HL,L0000
+ CALL L4B4E
+ RST 018H
+ DB 002H
+L4741: POP HL
+ INC HL
+ JR L46E8 ; (-05dH)
+
+L4745: NOP
+L4746: RST 018H
+ DB 028H
+ CALL L46C2
+ CALL L6A09
+ LD A,B
+ OR C
+ JP Z,L4065
+ LD (08478H),BC
+ LD A,(DE)
+ CP 020H
+ JR NZ,L475D ; (+001H)
+ INC DE
+L475D: PUSH AF
+ LD HL,L84E0
+ CALL L66ED
+ PUSH HL
+ LD HL,(L8478)
+ LD E,L
+ LD D,H
+ CALL L49B9
+ POP HL
+ POP AF
+ OR A
+ JR Z,L4784 ; (+012H)
+ LD DE,L84E0
+ OR A
+ SBC HL,DE
+ LD DE,00005H
+ ADD HL,DE
+ LD B,H
+ LD C,L
+ LD HL,L84E0
+ CALL L479C
+L4784: LD A,(L48B0)
+ OR A
+ JP Z,L4065
+ LD DE,(0847AH)
+ LD HL,(L8478)
+ ADD HL,DE
+ LD (L8478),HL
+ JP NC,L4065
+ JP L408D
+
+L479C: LD (047F9H),HL
+ PUSH BC
+ LD BC,(08478H)
+ LD HL,(L1070)
+ JR L47AD ; (+004H)
+
+L47A9: CALL LDDEMD
+ ADD HL,DE
+L47AD: CALL LDDEMD
+ LD A,D
+ OR E
+ JR Z,L47C1 ; (+00dH)
+ INC HL
+ INC HL
+ CALL LDDEMD
+ EX DE,HL
+ SBC HL,BC
+ DEC DE
+ DEC DE
+ EX DE,HL
+ JR C,L47A9 ; (-018H)
+L47C1: POP DE
+ PUSH HL
+ LD HL,(L1078)
+ LD (L107A),HL
+ LD B,H
+ LD C,L
+ ADD HL,DE
+ JP C,L4B26
+ EX DE,HL
+ CALL L74E1
+ EX DE,HL
+ RST 018H
+ DB 018H
+ POP HL
+ PUSH DE
+ PUSH BC
+ EX (SP),HL
+ POP BC
+ PUSH HL
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ LD DE,(VARED)
+ INC BC
+ LDDR
+ INC HL
+ POP BC
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ LD DE,(08478H)
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ EX DE,HL
+ LD HL,L84E0
+ DEC BC
+ DEC BC
+ DEC BC
+ DEC BC
+ LDIR
+ RET
+
+L4802: JR Z,L480D ; (+009H)
+ CALL L516C
+ JP Z,L513D
+ JP L5AED
+
+L480D: CALL L4928
+L4810: CALL L4824
+ LD DE,(TEXTST)
+ LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ PUSH HL
+ EX DE,HL
+ JP L40F0
+
+L4824: PUSH HL
+ PUSH DE
+ CALL L4839
+ XOR A
+ LD (L48B0),A
+ LD HL,0000AH
+ LD (L8478),HL
+ LD (L847A),HL
+ POP DE
+ POP HL
+ RET
+
+L4839: CALL L5825
+ LD HL,L0000
+ LD (L8480),HL
+ XOR A
+ LD (L4B6E),A
+ LD (L847F),A
+ LD (L847E),A
+ LD (L8493),A
+ RET
+
+L4850: LD A,(L8493)
+ OR A
+ JP NZ,L5DC9
+ RST 018H
+ DB 028H
+ XOR A
+ LD (L4B6E),A
+ POP BC
+ JP L405C
+
+L4861: LD DE,0000AH
+ LD BC,0000AH
+ JR Z,L4897 ; (+02eH)
+ CP 02CH
+ JR NZ,L4878 ; (+00bH)
+ INC HL
+ CALL L6E57
+ LD B,D
+ LD C,E
+ LD DE,0000AH
+ JR L4897 ; (+01fH)
+
+L4878: CP 02EH
+ LD DE,(08478H)
+ JR Z,L4889 ; (+009H)
+ CP 00BH
+ JP NZ,L4AE6
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L4889: INC HL
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4897 ; (+007H)
+ PUSH DE
+ CALL L6E57
+ LD C,E
+ LD B,D
+ POP DE
+L4897: CALL L5E46
+ LD A,C
+ OR B
+ JP Z,04AECH
+ LD (08478H),DE
+ LD (0847AH),BC
+ LD A,001H
+ LD (L48B0),A
+ POP AF
+ JP L4065
+
+L48B0: NOP
+L48B1: LD A,(L48B0)
+ OR A
+ RET Z
+ XOR A
+ JR L48BF ; (+006H)
+
+L48B9: CALL L48BF
+ JP L4065
+
+L48BF: LD DE,(08478H)
+ CALL NZ,L466C
+ PUSH DE
+ EX DE,HL
+ CALL L4611
+ POP DE
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ JR NC,L48D5 ; (+003H)
+ LD HL,L00F9
+L48D5: EX DE,HL
+ PUSH DE
+ LD (L8478),HL
+ CALL L5E64
+ RST 018H
+ DB 005H
+ LD A,020H
+ RST 018H
+ DB 003H
+ POP HL
+ LD DE,L11A4
+ PUSH DE
+ CALL L68D8
+ POP DE
+ LD B,000H
+L48EE: LD A,(DE)
+ OR A
+ JR Z,L48F8 ; (+006H)
+ INC B
+ RST 018H
+ DB 004H
+ INC DE
+ JR L48EE ; (-00aH)
+
+L48F8: LD A,B
+ OR A
+ RET Z
+ LD A,014H
+ RST 018H
+ DB 003H
+ DJNZ 048FCH ; (-005H)
+ RET
+
+L4902: PUSH DE
+ LD DE,0FFF0H
+ ADD HL,DE
+ POP DE
+ LD (L107E),HL
+ DEC H
+ LD (L107C),HL
+ XOR A
+ LD (L8493),A
+ RET
+
+L4914: LD HL,(L1070)
+ CALL L4952
+ LD (L1072),HL
+ CALL L4824
+ JR L4928 ; (+006H)
+
+L4922: CALL L4914
+ JP L4056
+
+L4928: PUSH HL
+ CALL L4939
+ POP HL
+ RST 018H
+ DB 028H
+ RET
+
+L4930: LD HL,(L1070)
+ CALL L4952
+ LD (L1072),HL
+L4939: LD HL,(L1072)
+ LD (HL),000H
+ INC HL
+ LD (L1074),HL
+ LD (HL),000H
+ INC HL
+ LD (L1076),HL
+ CALL L4952
+ LD (L1078),HL
+ LD (L107A),HL
+ RET
+
+L4952: LD (HL),000H
+ INC HL
+ LD (HL),000H
+ INC HL
+ RET
+
+L4959: CALL L414A
+ LD A,001H
+ JR Z,L496D ; (+00dH)
+ CALL TESTX
+ DB FDPD
+ CALL TESTX
+ DB 050H
+ LD A,002H
+ JR L496D ; (+001H)
+
+L496C: XOR A
+L496D: LD (04972H),A
+ RET
+
+L4971: LD A,000H
+ OR A
+ RET Z
+ DEC A
+ LD (L1091),A
+ JR Z,L4982 ; (+007H)
+ LD A,(L1097)
+ CP 002H
+ JR Z,L4994 ; (+012H)
+L4982: PUSH HL
+ LD A,05BH
+ RST 018H
+ DB 009H
+ LD HL,(L847C)
+ CALL L5E64
+ RST 018H
+ DB 00BH
+ LD A,05DH
+ RST 018H
+ DB 009H
+ POP HL
+L4994: XOR A
+ LD (L1091),A
+ RET
+
+L4999: CALL L46AE
+ JP Z,L4AE6
+ CALL L516C
+ JR Z,L49AD ; (+009H)
+ CP 02DH
+ JR Z,L49AD ; (+005H)
+ CP 02EH
+ JP NZ,L5D00
+L49AD: CALL L466C
+ EX DE,HL
+ LD E,C
+ LD D,B
+ CALL L49B9
+ JP L405C
+
+L49B9: PUSH AF
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ CALL L46C2
+ LD C,L
+ LD B,H
+ LD HL,(L1070)
+L49C5: CALL LDDEMI
+ LD A,E
+ OR D
+ JR NZ,L49D4 ; (+008H)
+L49CC: POP DE
+ POP HL
+ POP BC
+ POP AF
+ RET
+
+L49D1: POP DE
+ JR L49CC ; (-008H)
+
+L49D4: EX DE,HL
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ LD (049EEH),HL
+ SBC HL,BC
+ POP HL
+ JR C,L49C5 ; (-021H)
+ DB 01BH
+ DEC DE
+ DEC DE
+ POP BC
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD HL,L0000
+ SBC HL,BC
+ POP HL
+ JR Z,L4A13 ; (+01eH)
+ JR NC,L49D1 ; (-026H)
+L49F7: CALL LDDEMI
+ LD A,D
+ OR E
+ JR Z,L4A11 ; (+013H)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ DEC DE
+ DEC DE
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ SBC HL,BC
+ POP HL
+ JR C,L49F7 ; (-016H)
+ JR Z,L4A13 ; (+004H)
+ EX DE,HL
+ DEC HL
+L4A11: DEC HL
+ DEC HL
+L4A13: POP DE
+ PUSH DE
+ PUSH HL
+ OR A
+ EX DE,HL
+ SBC HL,DE
+ EX DE,HL
+ LD BC,(VARED)
+ RST 018H
+ DB 018H
+ POP DE
+ LD H,B
+ LD L,C
+ OR A
+ SBC HL,DE
+ LD B,H
+ LD C,L
+ EX DE,HL
+ POP DE
+ LDIR
+ JR L49CC ; (-063H)
+
+L4A2F: CALL L6E57
+ LD A,D
+ OR E
+ RET NZ
+ JP 04AECH
+
+L4A38: LD DE,0000AH
+ LD (04AB4H),DE
+ LD (04AC6H),DE
+ LD E,000H
+ LD (04AA3H),DE
+ JR Z,L4A7E ; (+033H)
+ CP 02CH
+ JR Z,L4A5F ; (+010H)
+ CALL L4A2F
+ LD (04AB4H),DE
+ CALL L414A
+ JR Z,L4A7E ; (+023H)
+ CALL L5E6E
+ DEC HL
+L4A5F: CALL INCHLF
+ CP 02CH
+ JR Z,L4A76 ; (+010H)
+ CALL L4A2F
+ LD (04AA3H),DE
+ CALL L414A
+ JR Z,L4A7E ; (+00cH)
+ CALL L5E6E
+ DEC HL
+L4A76: INC HL
+ CALL L4A2F
+ LD (04AC6H),DE
+L4A7E: PUSH HL
+ LD HL,(04AA3H)
+ EX DE,HL
+ LD HL,(04AB4H)
+ OR A
+ SBC HL,DE
+ JP C,04AECH
+ CALL L46B5
+ LD HL,(L1070)
+L4A92: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4AD0 ; (+037H)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ EX DE,HL
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ PUSH HL
+ LD HL,L0000
+ OR A
+ SBC HL,BC
+ POP HL
+ JR Z,L4AB0 ; (+005H)
+ JR C,L4AB0 ; (+003H)
+ EX DE,HL
+ JR L4A92 ; (-01eH)
+
+L4AB0: DEC HL
+ DEC HL
+ DEC HL
+ LD BC,L0000
+L4AB6: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4AD0 ; (+013H)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ EX DE,HL
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ LD HL,L0000
+ ADD HL,BC
+ JR C,L4AD2 ; (+007H)
+ LD C,L
+ LD B,H
+ EX DE,HL
+ JR L4AB6 ; (-01aH)
+
+L4AD0: POP HL
+ RET
+
+L4AD2: LD HL,0000AH
+ LD (04AC6H),HL
+ LD (04AB4H),HL
+ LD L,000H
+ LD (04AA3H),HL
+ CALL L4A7E
+ JP 04AECH
+
+L4AE6: LD A,001H
+ LD HL,0023EH
+ LD HL,L033E
+ LD HL,0043EH
+ LD HL,L053E
+ LD HL,0063EH
+ LD HL,0073EH
+ LD HL,L083E
+ LD HL,L0D3E
+ LD HL,L0E3E
+ LD HL,L0F3E
+ LD HL,L103E
+ LD HL,L113E
+ LD HL,L123E
+ LD HL,L133E
+ LD HL,0143EH
+ LD HL,0153EH
+ LD HL,L183E
+ LD HL,L193E
+ LD HL,L3A3E
+ LD HL,0403EH
+ JR L4B34 ; (+00eH)
+
+L4B26: LD A,006H
+L4B28: LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ LD (0848FH),SP
+L4B34: JR L4B4B ; (+015H)
+
+L4B36: LD HL,(.$LPT)
+ LD IX,(.$CRT)
+ LD (L1044),HL
+ LD A,0C4H
+ LD HL,0BB3EH
+ LD HL,0BC3EH
+ LD HL,0BD3EH
+L4B4B: JP L0182
+
+L4B4E: LD A,L
+ OR H
+ RET Z
+ LD DE,L4B5C
+ RST 018H
+ DB 005H
+ CALL L5E64
+ RST 018H
+ DB 005H
+ RET
+
+L4B5C: JR NZ,04BA7H ; (+049H)
+ LD C,(HL)
+ JR NZ,L4B61 ; (+000H)
+L4B61: LD B,D
+ DEC B
+ LD D,D
+ LD B,L
+ LD B,C
+ LD C,E
+ NOP
+L4B68: LD D,D
+ DEC B
+ LD B,L
+ LD B,C
+ LD B,H
+ LD E,C
+L4B6E: NOP
+ NOP
+L4B70: CALL L6E43
+ DEC A
+ CP 046H
+ JR C,L4B7A ; (+002H)
+ LD A,044H
+L4B7A: INC A
+L4B7B: LD SP,(0848FH)
+ PUSH AF
+ RST 018H
+ DB 043H
+ CALL L5C42
+ POP AF
+ OR A
+ JR Z,L4BDB ; (+052H)
+ CP 080H
+ JR Z,L4BD9 ; (+04cH)
+ LD C,A
+ LD HL,L0000
+ LD (L7921),HL
+ CALL L4152
+ LD A,C
+ JR Z,L4BC4 ; (+02aH)
+ LD HL,(L847C)
+ LD (L8480),HL
+ LD (L8478),HL
+ LD HL,(L8476)
+ LD (L8482),HL
+ LD HL,(L8491)
+ LD (L8484),HL
+ AND 07FH
+ LD (L847E),A
+ LD A,(L847F)
+ INC A
+ CP 002H
+ JR Z,L4BCF ; (+013H)
+ XOR A
+ LD (L4B6E),A
+ LD (L8493),A
+ LD A,C
+L4BC4: RST 018H
+ DB 01BH
+L4BC6: LD HL,(L847C)
+ CALL L4B4E
+ JP L405C
+
+L4BCF: LD (L847F),A
+ LD HL,(08486H)
+ PUSH HL
+ JP L40F0
+
+L4BD9: LD A,02EH
+L4BDB: LD HL,(L8491)
+ JR L4BE3 ; (+003H)
+
+L4BE0: LD A,02EH
+ POP DE
+L4BE3: PUSH AF
+ PUSH HL
+ RST 018H
+ DB 002H
+ RST 018H
+ DB 020H
+ LD DE,L4B61
+ RST 018H
+ DB 005H
+ POP HL
+ CALL L4152
+ JR Z,L4C0D ; (+019H)
+ LD (04C29H),HL
+ LD HL,(L8476)
+ LD (04C23H),HL
+ LD HL,(L847C)
+ LD (04C1DH),HL
+ LD (L8478),HL
+ POP AF
+ LD (L4B6E),A
+ JP L4BC6
+
+L4C0D: POP AF
+ JP L405C
+
+L4C11: POP DE
+ LD HL,L4B6E
+ LD A,(HL)
+ OR A
+ JP Z,04B0AH
+ LD (HL),000H
+ LD HL,L0000
+ LD (L847C),HL
+ LD HL,L0000
+ LD (L8476),HL
+ LD HL,L0000
+ JP L40BB
+
+L4C2E: LD A,(L847F)
+ CP 002H
+ JP C,04B16H
+ DEC A
+ LD (L847F),A
+ CALL L414A
+L4C3D: EX DE,HL
+ LD HL,(L8480)
+ LD (L847C),HL
+ LD HL,(L8482)
+ LD (L8476),HL
+ LD HL,(L8484)
+ JR NZ,L4C53 ; (+004H)
+ POP BC
+ JP L40BF
+
+L4C53: CP 08EH
+ JP Z,L4F80
+ EX DE,HL
+ JP L513D
+
+L4C5C: CALL TEST1
+ DB 080H
+ JR Z,L4C6A ; (+008H)
+ CALL TESTX
+ DB 082H
+ CALL TESTX
+ DB LSE0
+L4C6A: CALL L45B2
+ JR Z,L4C79 ; (+00aH)
+ LD (08486H),DE
+ LD A,001H
+L4C75: LD (L847F),A
+ RET
+
+L4C79: LD A,(L847F)
+ DEC A
+ JR Z,L4C75 ; (-00aH)
+ XOR A
+ LD (L847F),A
+ LD HL,(L8480)
+ LD (L847C),HL
+ LD A,(L847E)
+ JP L4B7B
+
+L4C8F: CALL TEST1
+ DB 0FFH
+ JP Z,L4CC1
+ CALL L742F
+ PUSH BC
+ PUSH BC
+ PUSH AF
+ CALL TESTX
+ DB QDPC
+ CALL L6E82
+ POP BC
+ LD A,(L84C7)
+ CP B
+ JP NZ,04AEFH
+ EX (SP),HL
+ EX DE,HL
+ CP 005H
+ JR Z,L4CB9 ; (+008H)
+ PUSH BC
+ CALL L4CCC
+ POP AF
+ POP HL
+ POP BC
+ RET
+
+L4CB9: LD C,A
+ LD B,000H
+ LDIR
+ POP HL
+ POP BC
+ RET
+
+L4CC1: CALL TESTX
+ DB 0C4H
+ JP L73BB
+
+L4CC8: PUSH DE
+ EX DE,HL
+ JR L4CD0 ; (+004H)
+
+L4CCC: PUSH DE
+ CALL L6E76
+L4CD0: LD HL,L11A4
+ LD (HL),A
+ LD B,A
+ LD C,A
+ INC HL
+ CALL LDHLDE
+ POP HL
+ LD A,(HL)
+ CP C
+ JR Z,L4D21 ; (+042H)
+ PUSH HL
+ OR A
+ CALL NZ,L4D31
+ POP HL
+ LD A,(L11A4)
+ OR A
+ JR Z,L4D1E ; (+033H)
+ PUSH HL
+ LD BC,(VARST)
+ SBC HL,BC
+ EX DE,HL
+ LD HL,(L1078)
+ DEC HL
+ DEC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD BC,(STRST)
+ OR A
+ POP DE
+ PUSH HL
+ SBC HL,BC
+ EX DE,HL
+ LD (HL),A
+ LD B,A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ POP HL
+ LD DE,L11A4
+ INC DE
+ CALL L74D5
+ CALL L4952
+ LD (L107A),HL
+ LD (L1078),HL
+ RET
+
+L4D1E: LD (HL),000H
+ RET
+
+L4D21: INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ LD DE,L11A4
+ LD B,C
+ INC DE
+ JP L74D5
+
+L4D31: LD C,(HL)
+ LD B,000H
+ INC BC
+ INC BC
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+L4D3E: DEC HL
+ DEC HL
+ LD E,L
+ LD D,H
+ ADD HL,BC
+ PUSH BC
+ PUSH DE
+ EX DE,HL
+ LD HL,(L1078)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ EX DE,HL
+ POP DE
+ PUSH DE
+ JR Z,L4D55 ; (+002H)
+ LDIR
+L4D55: POP DE
+ POP BC
+ LD HL,(L1078)
+ OR A
+ SBC HL,BC
+ LD (L1078),HL
+ EX DE,HL
+L4D61: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ RET Z
+ LD HL,(L1074)
+ ADD HL,DE
+ LD A,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ OR A
+ EX DE,HL
+ SBC HL,BC
+ EX DE,HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ PUSH BC
+ LD C,A
+ LD B,000H
+ LD HL,(L1076)
+ ADD HL,DE
+ ADD HL,BC
+ POP BC
+ JR L4D61 ; (-023H)
+
+L4D84: POP BC
+ LD (04E19H),BC
+ CALL L4C8F
+ LD IX,L0000
+ ADD IX,SP
+ LD (04DFBH),HL
+ CALL L4EF4
+ LD (04DF7H),BC
+L4D9C: LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JR NZ,L4DC4 ; (+01aH)
+ LD E,(IX+006H)
+ LD D,(IX+007H)
+ EX DE,HL
+ OR A
+ SBC HL,BC
+ JR Z,L4DBD ; (+007H)
+ LD DE,L0012
+ ADD IX,DE
+ JR L4D9C ; (-021H)
+
+L4DBD: DB 011H
+ LD (DE),A
+ NOP
+ ADD IX,DE
+ LD SP,IX
+L4DC4: LD HL,(04DFBH)
+ CALL TESTX
+ DB LSE0
+ CALL L6E82
+ PUSH AF
+ PUSH HL
+ EX DE,HL
+ LD DE,L4F00
+ CALL L5E91
+ POP HL
+ POP AF
+ CP LSE1
+ LD DE,L6110
+ JR NZ,L4DE4 ; (+004H)
+ INC HL
+ CALL L6E82
+L4DE4: LD (04DFBH),HL
+ LD HL,0FFF6H
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ CALL L5E91
+ LD HL,L4F00
+ CALL L5E91
+ LD HL,L0000
+ PUSH HL
+ LD HL,L0000
+ PUSH HL
+ LD HL,(L8476)
+ PUSH HL
+ LD HL,0FF12H
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(TMPEND)
+ SBC HL,DE
+ LD A,00BH
+ JP C,L4B28
+ LD HL,(04DFBH)
+ JP L0000
+
+L4E1B: LD A,005H
+ LD (L84C7),A
+ POP BC
+ LD (04E90H),BC
+L4E25: PUSH AF
+ POP BC
+ LD (04DFBH),HL
+ LD IX,L0000
+ ADD IX,SP
+ LD (04E7FH),IX
+ LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JP NZ,04AFEH
+ PUSH BC
+ POP AF
+ JR NZ,L4EA6 ; (+05fH)
+ LD E,(IX+004H)
+ LD D,(IX+005H)
+ EX DE,HL
+ LD (04E8DH),HL
+ LD E,(IX+006H)
+ LD D,(IX+007H)
+ LD HL,(L1074)
+ ADD HL,DE
+ LD BC,00008H
+ ADD IX,BC
+ PUSH IX
+ POP DE
+ CALL L797E
+ INC DE
+ LD A,(DE)
+ LD IX,(04E7FH)
+ LD DE,0000DH
+ ADD IX,DE
+ PUSH IX
+ POP DE
+ BIT 7,A
+ JR NZ,L4E79 ; (+001H)
+ EX DE,HL
+L4E79: CALL L7A15
+ JR C,L4E92 ; (+014H)
+ LD SP,L0000
+ LD HL,00002H
+ ADD HL,SP
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ LD (L8476),HL
+ LD HL,L0000
+L4E8F: JP L0000
+
+L4E92: LD DE,L0012
+ LD HL,(04E7FH)
+ ADD HL,DE
+ LD SP,HL
+ LD HL,(04DFBH)
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4E8F ; (-014H)
+ LD (04DFBH),HL
+L4EA6: LD IX,L0000
+ ADD IX,SP
+ LD (04E7FH),IX
+ LD HL,(04DFBH)
+ CALL TEST1
+ DB 02CH
+ JP Z,L4E25
+ CALL L742F
+ LD (04DFBH),HL
+ CALL L4EF4
+ LD IX,(04E7FH)
+L4EC7: LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JP NZ,04AFEH
+ LD L,(IX+006H)
+ LD H,(IX+007H)
+ OR A
+ SBC HL,BC
+ LD HL,(04DFBH)
+ JP Z,L4E25
+ LD DE,L0012
+ ADD IX,DE
+ LD (04E7FH),IX
+ LD SP,(04E7FH)
+ JR L4EC7 ; (-02dH)
+
+L4EF4: LD H,B
+ LD L,C
+ LD BC,(VARST)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ RET
+
+L4F00: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L4F09: CALL L5198
+ OR A
+ RET NZ
+ INC HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ INC HL
+ LD (04F08H),DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (04F06H),DE
+ POP DE
+ SCF
+ RET Z
+ JR L4F09 ; (-01dH)
+
+L4F26: CALL L5E79
+ CALL L6E57
+ LD (04F5FH),DE
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4F51 ; (+01bH)
+ CALL L6E82
+ CALL L790F
+ LD (04F54H),DE
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4F51 ; (+00bH)
+ CALL L742F
+ CALL L790F
+ LD (04F67H),BC
+ XOR A
+L4F51: PUSH HL
+ PUSH AF
+ LD HL,L0000
+ CALL L6E76
+ LD IX,L0182
+ XOR A
+ CALL L0000
+ POP AF
+ JR NZ,L4F6C ; (+008H)
+ LD A,B
+ EX DE,HL
+ LD DE,L0000
+ CALL L4CC8
+L4F6C: POP HL
+ JP L5E7D
+
+L4F70: CALL L6E57
+L4F73: LD A,D
+ OR E
+ RET Z
+ LD B,000H
+L4F78: DJNZ L4F78 ; (-002H)
+ RST 018H
+ DB 00EH
+ RET Z
+ DEC DE
+ JR L4F73 ; (-00dH)
+
+L4F80: DEC HL
+L4F81: CALL L5198
+ OR A
+ SCF
+ RET Z
+ CP 03AH
+ RET Z
+ JR L4F81 ; (-00bH)
+
+L4F8C: CALL L6E43
+ SUB LSE0
+ CP 007H
+ JP C,04AECH
+ CALL L5E6E
+ PUSH DE
+ CALL L6E43
+ POP BC
+ OUT (C),A
+ RET
+
+L4FA1: CALL L6E43
+ CALL L5E6E
+ PUSH DE
+ CALL L742F
+ CP 005H
+ JP NZ,04AEFH
+ EX (SP),HL
+ PUSH BC
+ EX (SP),HL
+ POP BC
+ IN E,(C)
+ LD D,000H
+ CALL L5E97
+ POP HL
+ RET
+
+L4FBD: CALL L4FC5
+ LD (00054H),DE
+ RET
+
+L4FC5: LD B,018H
+ LD C,027H
+ CALL L4FD0
+ JP C,04AECH
+ RET
+
+L4FD0: PUSH BC
+ CALL L6E43
+ PUSH AF
+ CALL L5E6E
+ CALL L6E43
+ LD D,E
+ POP AF
+ LD E,A
+ POP BC
+ LD A,C
+ CP E
+ RET C
+ LD A,B
+ CP D
+ RET
+
+L4FE5: CALL L742F
+ LD (L84C7),A
+ CP 005H
+ JR Z,L5004 ; (+015H)
+ PUSH HL
+ PUSH BC
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ OR A
+ JR Z,L4FFE ; (+006H)
+ LD HL,(L107A)
+ LD (HL),A
+ LD A,001H
+L4FFE: POP DE
+ CALL L4CC8
+ POP HL
+ RET
+
+L5004: PUSH HL
+ PUSH BC
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ SUB 030H
+ CP 00AH
+ JR C,L5011 ; (+001H)
+ XOR A
+L5011: LD E,A
+ LD D,000H
+ POP HL
+ CALL L5E97
+ POP HL
+ RET
+
+L501A: CP 040H
+ LD BC,POPRA
+ JR NZ,L5025 ; (+004H)
+ INC HL
+ LD BC,L5041
+L5025: LD (05036H),BC
+ CALL L6E57
+ CALL L5E71
+L502F: PUSH DE
+ CALL L6E43
+ POP DE
+ EX DE,HL
+ CALL POPRA
+ EX DE,HL
+ INC DE
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ JR L502F ; (-012H)
+
+L5041: LD (HL),A
+ RET
+
+ PUSH HL
+ CALL TEST1
+ DB 04DH
+ JR NZ,L505C ; (+012H)
+ CALL TEST1
+ DB 041H
+ JR NZ,L505C ; (+00cH)
+ CALL TEST1
+ DB 058H
+ JR NZ,L505C ; (+006H)
+ EX (SP),HL
+ LD HL,(MEMMAX)
+ JR L5078 ; (+01cH)
+
+L505C: POP HL
+ CALL L6E57
+ PUSH HL
+ LD HL,(MEMMAX)
+ OR A
+ SBC HL,DE
+ JP C,L4B26
+ LD HL,(L107A)
+ INC H
+ INC H
+ INC H
+ INC H
+ OR A
+ SBC HL,DE
+ JP NC,04AECH
+ EX DE,HL
+L5078: CALL L4902
+ POP HL
+ POP DE
+ LD SP,(INTFAC)
+ LD BC,0FFFFH
+ PUSH BC
+ PUSH DE
+ RET
+
+L5087: POP IX
+L5089: POP BC
+ PUSH BC
+ LD A,B
+ INC A
+ JP NZ,04B01H
+ LD A,C
+ CP 012H
+ JR Z,L50AF ; (+01aH)
+ CP 0FEH
+ JP NZ,04B01H
+ POP BC
+ CALL L414A
+ EX DE,HL
+ POP HL
+ LD (L847C),HL
+ POP HL
+ LD (L8476),HL
+ POP HL
+ PUSH IX
+ RET Z
+ EX DE,HL
+ JP L513D
+
+L50AF: EX DE,HL
+ LD HL,L0012
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ JR L5089 ; (-02fH)
+
+L50B8: PUSH HL
+ CALL L4F80
+ EX DE,HL
+ POP HL
+ POP BC
+ PUSH DE
+ EXX
+ LD HL,(L8476)
+ PUSH HL
+ LD HL,(L847C)
+ PUSH HL
+ LD HL,0FFFEH
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(TMPEND)
+ SBC HL,DE
+ LD A,00AH
+ JP C,L4B28
+ EXX
+ PUSH BC
+ JR L513D ; (+05dH)
+
+L50E0: CALL TEST1
+ DB 0C1H
+ JP Z,L4C5C
+ CALL L6E57
+ LD C,E
+ LD B,D
+ CP 087H
+ JP NC,L4AE6
+ CP 082H
+ JR NZ,L5105 ; (+010H)
+ CALL INCHLF
+ LD E,081H
+ CP LSE4
+ JR Z,L5104 ; (+006H)
+ CP LSE0
+ JP NZ,L4AE6
+ DEC E
+L5104: LD A,E
+L5105: PUSH HL
+ LD HL,L43F4
+ SUB 080H
+ ADD A,A
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ CALL INDRCT
+ EX (SP),HL
+ INC HL
+ LD A,B
+ OR A
+ JR NZ,L5139 ; (+020H)
+ LD A,C
+ OR A
+ JR Z,L5139 ; (+01cH)
+ LD B,A
+L511E: DEC B
+ RET Z
+ CALL HLFTCH
+ CALL L5169
+ JP NZ,L4AE6
+ CALL L519E
+ OR A
+ RET Z
+ INC HL
+ CALL TEST1
+ DB 02CH
+ JR Z,L511E ; (-017H)
+ POP DE
+ JP L5E46
+
+L5139: POP DE
+ JP L4F80
+
+L513D: CALL L45B2
+ EX DE,HL
+ JR NZ,L5146 ; (+003H)
+ LD HL,(L1070)
+L5146: LD (L8476),HL
+ XOR A
+ LD (L4B6E),A
+ JP L40F0
+
+L5150: CALL L6E82
+ EX AF,AF'
+ LD A,(DE)
+ OR A
+ JR Z,L5178 ; (+020H)
+ EX AF,AF'
+ CP LSE2
+ JR NZ,L5165 ; (+008H)
+L515D: CALL INCHLF
+ CALL L5169
+ JR Z,L513D ; (-028H)
+L5165: POP AF
+ JP L40BB
+
+L5169: CP 022H
+ RET Z
+L516C: CP 00BH
+ RET Z
+ CP 00CH
+ RET
+
+L5172: CALL L5181
+ JR NC,L5172 ; (-005H)
+ RET
+
+L5178: DEC HL
+ CALL L5181
+ JR NC,L515D ; (-021H)
+ DB 0C3H
+ IN B,(C)
+L5181: CALL L5198
+ OR A
+ SCF
+ RET Z
+ CP 0C2H
+ RET Z
+ CP 093H
+ JR NZ,L5181 ; (-00dH)
+ CALL L5181
+ RET C
+ JR L5181 ; (-013H)
+
+L5194: INC HL
+ LD A,(HL)
+ JR L519E ; (+006H)
+
+L5198: INC HL
+ LD A,(HL)
+ CP 094H
+ JR Z,L51BD ; (+01fH)
+L519E: OR A
+ RET Z
+ CP 022H
+ JR Z,L51DB ; (+037H)
+ CP 0FEH
+ JR NC,L51BB ; (+013H)
+ CP 097H
+ JR Z,L51BD ; (+011H)
+ CP 027H
+ JR Z,L51BD ; (+00dH)
+ CP 020H
+ RET NC
+ CP 00BH
+ RET C
+ CP 015H
+ JR NC,L51D2 ; (+018H)
+ INC HL
+L51BB: INC HL
+ RET
+
+L51BD: LD A,(HL)
+ OR A
+ RET Z
+ CP 03AH
+ RET Z
+ CP 022H
+ JR Z,L51CA ; (+003H)
+ INC HL
+ JR L51BD ; (-00dH)
+
+L51CA: CALL L51DB
+ OR A
+ RET Z
+ INC HL
+ JR L51BD ; (-015H)
+
+L51D2: AND 00FH
+ ADD A,L
+ LD L,A
+ LD A,020H
+ RET NC
+ INC H
+ RET
+
+L51DB: INC HL
+ LD A,(HL)
+ OR A
+ RET Z
+ CP 022H
+ RET Z
+ JR L51DB ; (-009H)
+
+L51E4: OR 0AFH
+ PUSH AF
+ LD B,031H
+ LD C,04FH
+ CALL L4FD0
+ PUSH AF
+ CALL L5235
+ POP AF
+ JR C,L5233 ; (+03eH)
+ LD A,C
+ LD (05221H),A
+ LD B,001H
+ SRL E
+ JR NC,L5201 ; (+002H)
+ SLA B
+L5201: SRL D
+ JR NC,L5209 ; (+004H)
+ SLA B
+ SLA B
+L5209: EX DE,HL
+ RST 018H
+ DB 01EH
+ CALL BREAKX
+ CP LSPAL
+ JR NC,L5215 ; (+002H)
+ LD A,LSPAL
+L5215: LD C,A
+ POP AF
+ JR Z,L522B ; (+012H)
+ SET 3,H
+ CALL BREAKX
+ AND 08FH
+ OR 000H
+ CALL POPRA
+ RES 3,H
+ LD A,C
+ OR B
+ JR L522E ; (+003H)
+
+L522B: LD A,B
+ CPL
+ AND C
+L522E: CALL POPRA
+ EX DE,HL
+ RET
+
+L5233: POP AF
+ RET
+
+L5235: LD A,(L005D)
+ AND 070H
+ LD C,A
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ PUSH DE
+ CALL L5522
+ POP DE
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ LD C,A
+ RET
+
+L524B: RST 018H
+ DB 020H
+ RET
+
+L524E: CALL L5E46
+ RST 018H
+ DB 028H
+ RST 018H
+ DB 000H
+ RET
+
+L5256: JR Z,L527B ; (+023H)
+ LD A,001H
+ LD (L004E),A
+ LD A,(L0056)
+ LD B,019H
+ CALL L528E
+ LD (00056H),BC
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ LD B,028H
+ LD A,(L005B)
+ CALL L528E
+ LD (0005BH),BC
+ RET
+
+L527B: XOR A
+ LD (L004E),A
+ LD BC,L1800
+ LD (00056H),BC
+ LD BC,L2700
+ LD (0005BH),BC
+ RET
+
+L528E: LD D,000H
+ LD E,A
+ CALL TEST1
+ DB 02CH
+ JR Z,L529F ; (+008H)
+ PUSH BC
+ CALL L6E43
+ POP BC
+ CALL L5E6E
+L529F: LD C,E
+ PUSH BC
+ CALL L6E43
+ POP BC
+ DEC A
+ JP M,04AECH
+ ADD A,C
+ CP B
+ JP NC,04AECH
+ LD B,A
+ RET
+
+ DI
+ OUT (LSE4),A
+ JP L0000
+
+L52B6: XOR A
+ LD BC,?SETDE
+ LD (L539E),A
+ PUSH AF
+ CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,04B22H
+ BIT 1,A
+ JP Z,04B22H
+ CALL TEST1
+ DB 02CH
+ POP AF
+ OR A
+ JR NZ,L52E8 ; (+015H)
+ CALL L6E67
+ LD A,B
+ LD (L5399),A
+ LD (0539AH),DE
+ CALL L5E46
+ JR L52E8 ; (+005H)
+
+L52E3: LD A,002H
+ LD (L539E),A
+L52E8: CALL L466C
+ LD (0530FH),DE
+ LD (0531DH),BC
+ LD A,0FFH
+ LD (L1090),A
+ CALL SKPDE
+ LD HL,(L1070)
+L52FE: CALL LDDEMI
+ LD A,D
+ OR E
+ RET Z
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ PUSH DE
+ CALL LDDEMI
+ PUSH HL
+ LD HL,L0000
+ OR A
+ SBC HL,DE
+ JR C,L531C ; (+006H)
+ JR Z,L531C ; (+004H)
+ POP HL
+ POP HL
+ JR L52FE ; (-01eH)
+
+L531C: LD HL,L0000
+ OR A
+ SBC HL,DE
+ JR NC,L5327 ; (+003H)
+ POP HL
+ POP HL
+ RET
+
+L5327: EX DE,HL
+ CALL L5E64
+ RST 018H
+ DB 017H
+ LD HL,L11A4
+ CALL LDHLDE
+ LD (HL),020H
+ INC HL
+ EX DE,HL
+ POP HL
+ CALL L68D8
+ LD A,(L539E)
+ OR A
+ JR NZ,L5346 ; (+005H)
+ CALL L535C
+ JR NC,L5350 ; (+00aH)
+L5346: LD DE,L11A4
+ RST 018H
+ DB 017H
+ RST 018H
+ DB 037H
+ CALL L5733
+L5350: POP HL
+ LD A,(L539E)
+ CP 002H
+ JR Z,L52FE ; (-05aH)
+ RST 018H
+ DB 00FH
+ JR L52FE ; (-05eH)
+
+L535C: EX DE,HL
+L535D: PUSH HL
+ CALL L5367
+ POP HL
+ RET C
+ RET Z
+ INC HL
+ JR L535D ; (-00aH)
+
+L5367: LD A,(L5399)
+ LD B,A
+ LD DE,(0539AH)
+L536F: LD A,(HL)
+ INC HL
+ OR A
+ RET Z
+ CP 005H
+ JR Z,L537B ; (+004H)
+ CP 006H
+ JR NZ,L537D ; (+002H)
+L537B: JR L536F ; (-00eH)
+
+L537D: PUSH HL
+ LD C,A
+L537F: LD A,(DE)
+ INC DE
+ CP 005H
+ JR Z,L5389 ; (+004H)
+ CP 006H
+ JR NZ,L5390 ; (+007H)
+L5389: DEC B
+ SCF
+ POP HL
+ RET Z
+ PUSH HL
+ JR L537F ; (-011H)
+
+L5390: SUB C
+ POP HL
+ OR A
+ RET NZ
+ DEC B
+ SCF
+ RET Z
+ JR L536F ; (-02aH)
+
+L5399: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L539E: NOP
+L539F: CALL TESTX
+ DB 087H
+ CALL L5E4D
+ PUSH HL
+ LD C,000H
+L53A9: RST 018H
+ DB 008H
+ LD A,C
+ ADD A,031H
+ LD D,A
+ LD E,020H
+ CP 03AH
+ JR NZ,L53B8 ; (+003H)
+ LD DE,L3031
+L53B8: LD (0543BH),DE
+ LD DE,L5433
+ RST 018H
+ DB 00BH
+ LD A,C
+ CALL L5492
+ LD B,(HL)
+ INC HL
+ PUSH BC
+ CALL L53D6
+ POP BC
+ INC C
+ LD A,C
+ CP 00AH
+ JR NZ,L53A9 ; (-029H)
+ RST 018H
+ DB 008H
+ POP HL
+ RET
+
+L53D6: LD A,B
+ OR A
+ LD C,000H
+ JR NZ,L53E3 ; (+007H)
+ LD A,022H
+ RST 018H
+ DB 00AH
+ RST 018H
+ DB 00AH
+ RET
+
+L53E3: LD A,(HL)
+ CP 020H
+ JR C,L5408 ; (+020H)
+ CP 022H
+ JR Z,L5408 ; (+01cH)
+ LD A,C
+ CP 001H
+ JR Z,L53FB ; (+00aH)
+ OR A
+ LD DE,L5440
+ JR NZ,L53F9 ; (+002H)
+ INC DE
+ INC DE
+L53F9: RST 018H
+ DB 00BH
+L53FB: LD A,(HL)
+ RST 018H
+ DB 00AH
+ INC HL
+ LD C,001H
+ DJNZ L53E3 ; (-020H)
+ LD A,022H
+L5405: RST 018H
+ DB 00AH
+ RET
+
+L5408: LD A,C
+ CP 0FFH
+ JR Z,L542D ; (+020H)
+ OR A
+ LD DE,05444H
+ JR NZ,L5415 ; (+002H)
+ INC DE
+ INC DE
+L5415: RST 018H
+ DB 00BH
+L5417: PUSH BC
+ PUSH HL
+ LD L,(HL)
+ LD H,000H
+ CALL L5E64
+ RST 018H
+ DB 00BH
+ POP HL
+ POP BC
+ INC HL
+ LD C,0FFH
+ DJNZ L53E3 ; (-045H)
+ LD A,029H
+ JP L5405
+
+L542D: LD A,02CH
+ RST 018H
+ DB 00AH
+ JR L5417 ; (-01cH)
+
+L5433: LD B,H
+ LD B,L
+ LD B,(HL)
+ JR NZ,L5483 ; (+04bH)
+ LD B,L
+ LD E,C
+ JR Z,L543C ; (+000H)
+L543C: NOP
+ ADD HL,HL
+ DEC A
+ NOP
+L5440: ADD HL,HL
+ DEC HL
+ LD (L2200),HL
+ DEC HL
+ LD B,E
+ LD C,B
+ LD D,D
+ INC H
+ JR Z,L544C ; (+000H)
+L544C: CALL TEST1
+ DB 0B2H
+ JR Z,L545D ; (+00bH)
+ CALL TESTX
+ DB 0FFH
+ CALL TESTX
+ DB 0C7H
+ JP L781D
+
+L545D: CALL TESTX
+L5460: DB 028H
+ CALL L6E43
+ CALL TESTX
+ DB 029H
+ CALL TESTX
+ DB QDPC
+ LD A,E
+ DEC A
+ CP 00AH
+ JP NC,04AECH
+ PUSH HL
+ CALL L5492
+ EX (SP),HL
+ CALL L6E67
+ EX (SP),HL
+ LD A,B
+ CP 010H
+ JR C,L5483 ; (+002H)
+ LD A,00FH
+L5483: LD (HL),A
+ OR A
+ JR Z,L548F ; (+008H)
+ LD B,A
+ INC HL
+L5489: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L5489 ; (-006H)
+L548F: POP HL
+ EI
+ RET
+
+L5492: ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ LD HL,L12C0
+ JP ADDHLA
+
+L549C: CALL TEST1
+ DB 02CH
+ JR NZ,L54AA ; (+008H)
+ CALL L5E6E
+ LD DE,L005D
+ JR L54B6 ; (+00cH)
+
+L54AA: CALL L4FC5
+ CALL L5E6E
+ EX DE,HL
+ RST 018H
+ DB 01EH
+ SET 3,H
+ EX DE,HL
+L54B6: EX DE,HL
+ CALL BREAKX
+ EX DE,HL
+ PUSH DE
+ CALL L54C6
+ POP DE
+ EX DE,HL
+ CALL POPRA
+ EX DE,HL
+ RET
+
+L54C6: LD C,A
+ CALL TEST1
+ DB 02CH
+ JR Z,L54DF ; (+012H)
+ CALL L5522
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ XOR C
+ AND 070H
+ XOR C
+ LD C,A
+ CALL TEST1
+ DB 02CH
+ JR NZ,L54F0 ; (+011H)
+L54DF: CALL L414A
+ JR Z,L54F0 ; (+00cH)
+ CP 05DH
+ JR Z,L54F0 ; (+008H)
+ CALL L5522
+ XOR C
+ AND 007H
+ XOR C
+ RET
+
+L54F0: LD A,C
+ RET
+
+L54F2: INC HL
+L54F3: CALL L6E67
+ LD A,B
+ OR A
+ JR Z,L5509 ; (+00fH)
+ PUSH HL
+ LD HL,L11A4
+ PUSH HL
+ CALL LDHLDE
+ LD (HL),00DH
+ POP DE
+ CALL L0030
+ POP HL
+L5509: CALL HLFTCH
+ CP 03BH
+ JR Z,L54F2 ; (-01eH)
+ CP 02CH
+ JR Z,L54F2 ; (-022H)
+ RET
+
+L5515: CALL L6E43
+ DEC A
+ CP 007H
+ JP NC,04AECH
+ INC A
+ JP L0041
+
+L5522: PUSH BC
+ CALL L6E43
+ POP BC
+ CP 008H
+ JP NC,04AECH
+ RET
+
+L552D: RST 018H
+ DB 045H
+ RET
+
+ DS 208, 000H
+L5600: LD A,(L1042)
+ CP 088H
+ RET
+
+L5606: CALL L6E82
+ LD A,(L84C7)
+ CP 003H
+ PUSH HL
+ EX DE,HL
+ JR Z,L5619 ; (+007H)
+ CALL L6026
+ POP HL
+ RST 018H
+ DB 017H
+ RET
+
+L5619: CALL L6E76
+ POP HL
+ RET
+
+L561E: LD A,(L005D)
+ LD (0574DH),A
+ XOR A
+ LD (L1090),A
+ CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 2,A
+ JP NZ,L5D16
+ BIT 1,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L5600
+ JR NZ,L5655 ; (+013H)
+ CALL TEST1
+ DB 05BH
+ JR NZ,L5655 ; (+00dH)
+ LD A,(0574DH)
+ CALL L54C6
+ LD (0574DH),A
+ CALL TESTX
+ DB 05DH
+L5655: CALL L414A
+ JP Z,L5733
+L565B: LD A,(HL)
+ CP LSE3
+ JR Z,L56DA ; (+07aH)
+ LD BC,L5674
+ PUSH BC
+ CP 03BH
+ RET Z
+ CP 02CH
+ RET Z
+ CP LSE6
+ JR Z,L56AA ; (+03cH)
+ CALL L5606
+ JP L573E
+
+L5674: CALL L414A
+ JP Z,L5733
+ CP 02CH
+ JR NZ,L569A ; (+01cH)
+ CALL L5600
+ JR C,L5697 ; (+014H)
+ LD IX,(ZDELT)
+ CALL IOCALL
+ LD B,A
+L568B: SUB 00AH
+ JR NC,L568B ; (-004H)
+ NEG
+ LD B,A
+ CALL L56CC
+ JR L569A ; (+003H)
+
+L5697: CALL L5733
+L569A: LD A,(HL)
+ CP 02CH
+ JR Z,L56A1 ; (+002H)
+ CP 03BH
+L56A1: JR NZ,L56A4 ; (+001H)
+ INC HL
+L56A4: CALL L414A
+ RET Z
+ JR L565B ; (-04fH)
+
+L56AA: CALL L5600
+ JP C,057B7H
+ CALL L5E75
+ CALL L6E43
+ CALL L5E7D
+ LD IX,(ZDELT)
+ CALL IOCALL
+ SUB E
+ RET NC
+ NEG
+ LD B,A
+ CALL L5600
+ LD A,013H
+ JR Z,L56CE ; (+002H)
+L56CC: LD A,020H
+L56CE: LD DE,L11A4
+ PUSH BC
+ PUSH DE
+ CALL ?SETDE
+ POP DE
+ POP BC
+ JR L573E ; (+064H)
+
+L56DA: INC HL
+ CALL L6E67
+ LD A,B
+ OR A
+ JP Z,04AECH
+ PUSH HL
+ LD HL,L11A4
+ PUSH HL
+ PUSH BC
+ CALL LDHLDE
+ POP BC
+ LD A,LSPAL
+ LD E,B
+ LD D,000H
+ INC DE
+ RST 018H
+ DB 02AH
+ LD (L6304),HL
+ LD (L6306),HL
+ POP DE
+ CALL LDHLDE
+ LD (HL),000H
+ POP HL
+L5702: CALL L414A
+ JR Z,L5729 ; (+022H)
+ INC HL
+ CP 02CH
+ JR Z,L5711 ; (+005H)
+ CP 03BH
+ JP NZ,L4AE6
+L5711: CALL L414A
+ JR Z,L572C ; (+016H)
+ CALL L6E8A
+ PUSH HL
+ LD BC,(TMPEND)
+ PUSH BC
+ CALL L6308
+ POP DE
+ CALL L573C
+ POP HL
+ JR L5702 ; (-027H)
+
+L5729: CALL L5733
+L572C: LD A,LSPAL
+ RST 018H
+ DB 02BH
+ RET
+
+L5731: DEC C
+ NOP
+L5733: LD A,(L005D)
+ LD (0574DH),A
+ LD DE,L5731
+L573C: RST 018H
+ DB 017H
+L573E: CALL L5600
+ JR Z,L5746 ; (+003H)
+ RST 018H
+ DB 037H
+ RET
+
+L5746: PUSH HL
+ PUSH BC
+ LD HL,L005D
+ LD C,(HL)
+ LD (HL),070H
+ RST 018H
+ DB 037H
+ LD (HL),C
+ POP BC
+ POP HL
+ RET
+
+L5754: LD A,08AH
+ LD (L1042),A
+ JR L5792 ; (+037H)
+
+L575B: CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 2,A
+ JP NZ,L5D27
+ BIT 0,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L5600
+ JR NZ,L5792 ; (+01dH)
+ CALL HLFTCH
+ CP 022H
+ LD DE,L57BC
+ LD B,002H
+ JR NZ,L5788 ; (+007H)
+ CALL L6E67
+ CALL TESTX
+ DB 03BH
+L5788: LD A,B
+ OR A
+ JR Z,L5792 ; (+006H)
+L578C: LD A,(DE)
+ INC DE
+ RST 018H
+ DB 003H
+ DJNZ L578C ; (-006H)
+L5792: LD (057EBH),SP
+ LD DE,(VARED)
+ LD (TMPEND),DE
+L579E: LD DE,(TMPEND)
+ CALL L74E1
+ CALL L742F
+ PUSH AF
+ PUSH BC
+ CALL L414A
+ JR Z,057BEH ; (+00fH)
+ CALL L5E71
+ JR L579E ; (-016H)
+
+L57B4: LD A,02CH
+ LD HL,0BB3EH
+ JP L0182
+
+L57BC: CCF
+ JR NZ,0576EH ; (-051H)
+ PUSH AF
+ PUSH HL
+ RST 018H
+ DB 034H
+ LD HL,(057EBH)
+ DEC HL
+L57C7: LD A,(HL)
+ OR A
+ JR Z,L57E9 ; (+01eH)
+ DEC HL
+ DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ DEC HL
+ PUSH HL
+ PUSH AF
+ PUSH BC
+ LD DE,(TMPEND)
+ CALL L57EE
+ LD H,000H
+ LD L,B
+ ADD HL,DE
+ LD (HL),000H
+ POP DE
+ POP AF
+ CALL L57F8
+ POP HL
+ JR L57C7 ; (-022H)
+
+L57E9: POP HL
+ LD SP,L0000
+ RET
+
+L57EE: LD A,(L1042)
+ CP 08AH
+ JR Z,L5839 ; (+044H)
+ RST 018H
+ DB 035H
+ RET
+
+L57F8: CP 003H
+ JR NZ,L5803 ; (+007H)
+ LD HL,(L107A)
+ LD A,B
+$START: JP L4CC8 ; $START - BASIC warm start / system entry
+
+L5803: PUSH DE
+ LD HL,(L107C)
+ LD DE,(TMPEND)
+ EX DE,HL
+ CALL HLFTCH
+ CP 045H
+ JP Z,04AECH
+ EX DE,HL
+ CALL L5EDA
+ EX DE,HL
+ CALL TEST1
+ DB 000H
+ JP NZ,04AECH
+ EX DE,HL
+ POP DE
+ JP L5E91
+
+L5825: XOR A
+ JR L587E ; (+056H)
+
+L5828: CALL L5825
+ CALL L414A
+ CALL NZ,L45B2
+ EX DE,HL
+ CALL NZ,L5869
+ EX DE,HL
+ JP L4F80
+
+L5839: PUSH HL
+ PUSH DE
+ CALL L5847
+ POP DE
+ POP HL
+ RET
+
+L5841: LD HL,(L1070)
+ CALL L5869
+L5847: LD A,(L8488)
+ CP 001H
+ JP Z,04B19H
+ JR C,L5841 ; (-010H)
+ LD HL,(L8489)
+ LD C,03AH
+ RST 018H
+ DB 036H
+ LD (L8489),HL
+ CALL L414A
+ SCF
+ CCF
+ RET NZ
+ DEC HL
+L5862: CALL L5194
+ OR A
+ JR NZ,L5874 ; (+00cH)
+ INC HL
+L5869: LD A,(HL)
+ INC HL
+ OR (HL)
+ LD A,001H
+ JR Z,L587E ; (+00eH)
+ INC HL
+ INC HL
+ JR L5862 ; (-012H)
+
+L5874: CP 094H
+ JR NZ,L5862 ; (-016H)
+ INC HL
+ LD (L8489),HL
+ LD A,002H
+L587E: LD (L8488),A
+ RET
+
+L5882: CALL TEST1
+ DB 023H
+ JR NZ,L58AD ; (+025H)
+ CALL HLFTCH
+ CP 020H
+ JP NC,L4AE6
+ PUSH DE
+ PUSH BC
+ LD DE,L84C8
+ PUSH DE
+ CALL L7052
+ EX (SP),HL
+ CALL L60B5
+ LD A,H
+ OR A
+ JP NZ,04B22H
+ OR L
+ JP Z,04B22H
+ JP M,04B22H
+ POP HL
+ POP BC
+ POP DE
+ RET
+
+L58AD: CALL TEST1
+ DB FDPD
+ LD A,088H
+ RET NZ
+ CALL TEST1
+ DB 050H
+ LD A,089H
+ RET Z
+ CALL TESTX
+ DB 054H
+ LD A,080H
+ RET
+
+L58C2: LD A,(L1042)
+ OR A
+ RET M
+ JP L5E6E
+
+L58CA: CALL L593A
+ RST 018H
+ DB 03AH
+ RET
+
+L58D0: CALL L414A
+ LD B,000H
+ CALL NZ,L6E67
+L58D8: PUSH HL
+ RST 018H
+ DB 02CH
+ RST 018H
+ DB 03CH
+ POP HL
+ RET
+
+L58DF: LD A,001H
+ LD BC,0023EH
+ LD BC,0043EH
+ PUSH AF
+ LD (L1043),A
+ CALL L5882
+ CP 088H
+ JR NZ,L58F4 ; (+002H)
+ LD A,080H
+L58F4: LD (L1042),A
+ CALL L58C2
+ CALL L592D
+ POP AF
+ CP 004H
+ JR Z,L5904 ; (+002H)
+L5902: LD A,003H
+L5904: LD (L1000),A
+ PUSH AF
+ RST 018H
+ DB 033H
+ LD A,(L1000)
+ POP BC
+ CP B
+ JP NZ,04B49H
+ RET
+
+L5913: OR 0AFH
+ LD B,A
+ CALL L414A
+ JR Z,L5929 ; (+00eH)
+L591B: CALL L5882
+ CP 088H
+ RET NC
+ RST 018H
+ DB 038H
+ CALL TEST1
+ DB 02CH
+ JR L591B ; (-00eH)
+
+L5929: XOR A
+ RST 018H
+ DB 038H
+ RET
+
+L592D: CALL L46AE
+ LD B,000H
+ CALL NZ,L6E67
+ PUSH HL
+ RST 018H
+ DB 02DH
+ POP HL
+ RET
+
+L593A: PUSH HL
+ CALL HLFTCH
+ LD DE,L5982
+ LD B,001H
+ CALL L5975
+ CALL NC,L5975
+ JR C,L5962 ; (+017H)
+ CALL L5975
+ CALL L5EC2
+ CALL L597B
+ CALL L414A
+ JR NZ,L5962 ; (+009H)
+ LD A,03AH
+ LD (DE),A
+ POP AF
+ LD DE,L5982
+ JR L596B ; (+009H)
+
+L5962: POP HL
+ CALL L414A
+ LD B,000H
+ CALL NZ,L6E67
+L596B: PUSH HL
+ RST 018H
+ DB 02CH
+ INC (HL)
+ DEC (HL)
+ JP NZ,04B1FH
+ POP HL
+ RET
+
+L5975: CP 041H
+ RET C
+ CP 05BH
+ CCF
+L597B: RET C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ INC B
+ RET
+
+L5982: NOP
+ NOP
+ NOP
+ NOP
+L5986: CALL L592D
+ CALL TEST1
+ DB 02CH
+ JP Z,L5A47
+ PUSH HL
+ CALL L5BDC
+ DEC A
+ JR Z,L59A9 ; (+012H)
+ DEC A
+ JP NZ,04B49H
+ CALL L5C08
+ CALL L5BE5
+ CALL L5C0F
+ CALL L5C42
+ POP HL
+ RET
+
+L59A9: LD HL,(ELMD22)
+ PUSH HL
+ LD DE,(MEMLMT)
+ CALL L59CF
+ LD DE,(ELMD20)
+ LD BC,(MEMMAX)
+ CALL NC,L59CA
+ JP C,04B0DH
+ POP HL
+ RST 018H
+ DB 030H
+ CALL L5C42
+ POP HL
+ RET
+
+L59CA: ADD HL,DE
+ RET C
+ EX DE,HL
+ LD H,B
+ LD L,C
+L59CF: PUSH HL
+ OR A
+ SBC HL,DE
+ POP HL
+ RET
+
+L59D5: CALL L592D
+ CALL L5BDC
+ CP 002H
+ JP NZ,04B49H
+ LD A,(L8493)
+ OR A
+ JP Z,L5B0D
+ JP L5DB0
+
+L59EA: CALL L5C08
+ CALL L592D
+ CALL TEST1
+ DB 02CH
+ JR Z,05A4DH ; (+057H)
+ RST 018H
+ DB 02FH
+ CP 002H
+ JP NZ,04B49H
+ PUSH HL
+ LD HL,(L1078)
+ LD (L107A),HL
+ LD BC,003E8H
+ ADD HL,BC
+ JP C,L4B26
+ PUSH HL
+ LD BC,(ELMD20)
+ INC B
+ ADD HL,BC
+ JP C,L4B26
+ SBC HL,SP
+ JP NC,L4B26
+ POP HL
+ PUSH HL
+ RST 018H
+ DB 030H
+ POP HL
+ CALL L5A24
+ POP HL
+ RET
+
+L5A24: CALL LDDEMI
+ LD A,D
+ OR E
+ RET Z
+ PUSH DE
+ CALL LDDEMI
+ PUSH HL
+ LD H,D
+ LD L,E
+ LD (L8478),HL
+ CALL L49B9
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+ CALL L479C
+ POP HL
+ POP BC
+ ADD HL,BC
+ DEC HL
+ DEC HL
+ DEC HL
+ DEC HL
+ JR L5A24 ; (-023H)
+
+L5A47: CALL L5C08
+ LD A,001H
+ LD BC,L003E
+ LD BC,0023EH
+ PUSH AF
+ CALL TESTX
+ DB 041H
+ CALL L5E46
+ LD A,001H
+ LD (L1043),A
+ LD A,081H
+ LD (L1042),A
+ CALL L5902
+ POP AF
+ PUSH AF
+ PUSH HL
+ LD HL,L0000
+ LD DE,0FFFFH
+ OR A
+ CALL NZ,L49B9
+ LD A,081H
+ RST 018H
+ DB 02EH
+ LD HL,(L1078)
+ LD (L107A),HL
+ LD BC,003E8H
+ ADD HL,BC
+ JP C,04AF5H
+ PUSH HL
+ LD (L5AEB),HL
+L5A89: LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(05AEBH)
+ SBC HL,DE
+ JP C,04AF5H
+ LD DE,(TMPEND)
+ RST 018H
+ DB 035H
+ LD A,B
+ OR A
+ JR Z,L5AD6 ; (+036H)
+ CALL L6A09
+ LD A,B
+ OR C
+ JP Z,04AECH
+ LD HL,(L5AEB)
+ PUSH HL
+ INC HL
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ PUSH HL
+ LD H,D
+ LD L,E
+ CALL TEST1
+ DB 000H
+ JP Z,04AECH
+ POP HL
+ LD A,(DE)
+ CP 020H
+ JR NZ,L5AC3 ; (+001H)
+ INC DE
+L5AC3: CALL L66ED
+ LD (HL),000H
+ INC HL
+ LD (L5AEB),HL
+ POP DE
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ JR L5A89 ; (-04dH)
+
+L5AD6: LD HL,(L5AEB)
+ CALL L4952
+ CALL L4928
+ POP HL
+ CALL L5A24
+ POP HL
+ POP AF
+ CP 002H
+ RET NZ
+ JP L4810
+
+L5AEB: NOP
+ NOP
+L5AED: CALL L592D
+ PUSH HL
+ CALL TEST1
+ DB 02CH
+ JR NZ,L5AFF ; (+008H)
+ CALL HLFTCH
+ CP 041H
+ JP Z,05A50H
+L5AFF: CALL L5BDC
+ POP HL
+ DEC A
+ JR Z,L5B16 ; (+010H)
+ DEC A
+ JP NZ,04B49H
+ CALL L5BE5
+L5B0D: CALL L5C0F
+ CALL L5C42
+ JP L4810
+
+L5B16: LD D,0C9H
+ LD BC,0FF00H
+ CALL TEST1
+ DB 02CH
+ JR NZ,L5B2A ; (+009H)
+ CALL TESTX
+ DB 052H
+ LD D,000H
+ LD BC,0CF00H
+L5B2A: LD A,D
+ LD (L5B93),A
+ LD HL,(L1014)
+ LD DE,(ELMD22)
+ PUSH HL
+ CALL L59CA
+ POP DE
+ LD HL,(L1070)
+ LD BC,0FF00H
+ CALL NC,L59CA
+ JP C,L4B26
+ LD SP,L0000
+ CALL L4930
+ XOR A
+ LD (L5C07),A
+ LD HL,(L1018)
+ PUSH HL
+ LD DE,(ELMD20)
+ PUSH DE
+ LD HL,(L107A)
+ RST 018H
+ DB 030H
+ LD A,004H
+ RST 018H
+ DB 003H
+ LD A,016H
+ RST 018H
+ DB 003H
+ POP BC
+ PUSH BC
+ LD DE,(ELMD22)
+ CALL L59CF
+ LD A,0B0H
+ JR NC,L5B7B ; (+008H)
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ LD A,0B8H
+L5B7B: LD (05B92H),A
+ DI
+ PUSH HL
+ PUSH DE
+ LD BC,00016H
+ LD HL,L5B8E
+ LD DE,0FF80H
+ PUSH DE
+ LDIR
+ RET
+
+L5B8E: POP DE
+ POP HL
+ POP BC
+ LDIR
+L5B93: RET
+
+ POP BC
+ LD SP,0D000H
+ EX DE,HL
+ PUSH BC
+ PUSH HL
+ LD (HL),LSD3
+ INC HL
+ LD (HL),LSE4
+ INC HL
+ LD (HL),0C9H
+ RET
+
+L5BA4: LD HL,(L1078)
+ LD (L107A),HL
+ LD DE,(TEXTED)
+ LD (05C01H),DE
+ OR A
+ SBC HL,DE
+ LD (L5C03),HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD (L5C05),HL
+ LD DE,(VARED)
+ PUSH HL
+ OR A
+ SBC HL,DE
+ JP C,L4B26
+ EX (SP),HL
+ EX DE,HL
+ LD BC,(05C03H)
+ INC BC
+ LDDR
+ POP DE
+ RST 018H
+ DB 018H
+ LD A,001H
+ LD (L5C07),A
+ RET
+
+L5BDC: CALL L5BA4
+ RST 018H
+ DB 02FH
+ LD A,(L1000)
+ RET
+
+L5BE5: LD HL,(L1078)
+ XOR A
+ DEC HL
+ LD (HL),A
+ DEC HL
+ LD (HL),A
+ LD (L1076),HL
+ DEC HL
+ LD (HL),A
+ LD (L1074),HL
+ DEC HL
+ LD (HL),A
+ LD (L1072),HL
+ LD HL,00004H
+ LD (L5C03),HL
+ RET
+
+L5C01: NOP
+ NOP
+L5C03: NOP
+ NOP
+L5C05: NOP
+ NOP
+L5C07: NOP
+L5C08: CALL L4152
+ JP NZ,04B10H
+ RET
+
+L5C0F: LD BC,(ELMD20)
+ PUSH BC
+ LD HL,(L1072)
+ LD DE,(TEXTST)
+ OR A
+ SBC HL,DE
+ LD L,000H
+ SBC HL,BC
+ JP C,L4B26
+ LD HL,L0000
+ LD (L5C01),HL
+ CALL L4824
+ LD HL,L0000
+ LD (L847C),HL
+ LD HL,(L1070)
+ RST 018H
+ DB 030H
+ POP BC
+ LD HL,(L1070)
+ ADD HL,BC
+ LD (L5C01),HL
+ RET
+
+L5C42: LD A,081H
+ LD B,000H
+ RST 018H
+ DB 038H
+ LD HL,L5C07
+ LD A,(HL)
+ OR A
+ RET Z
+ LD (HL),000H
+ LD HL,(L5C01)
+ LD A,H
+ OR L
+ JR NZ,L5C5D ; (+006H)
+ LD HL,(L1070)
+ CALL L4952
+L5C5D: EX DE,HL
+ LD HL,(L1072)
+ LD BC,(05C03H)
+ LDIR
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ RST 018H
+ DB 018H
+ RET
+
+L5C6F: PUSH HL
+ CALL L46C8
+ POP HL
+ CALL L592D
+ PUSH HL
+ RST 018H
+ DB 02FH
+ CP 002H
+ JP NZ,04B49H
+ LD HL,(L1070)
+ RST 018H
+ DB 032H
+ POP HL
+ RET
+
+L5C86: PUSH HL
+ CALL L46C8
+ POP HL
+ CALL L592D
+ CALL TEST1
+ DB 02CH
+ JR Z,L5CB3 ; (+01fH)
+ PUSH HL
+ LD A,002H
+ LD (L1000),A
+ LD HL,(L1072)
+ LD DE,(TEXTST)
+ OR A
+ SBC HL,DE
+ LD (L1014),HL
+ LD A,(L1001)
+ CP 00DH
+ JP Z,04B46H
+ RST 018H
+ DB 031H
+ POP HL
+ RET
+
+L5CB3: CALL TESTX
+ DB 041H
+ PUSH HL
+ LD A,002H
+ LD (L1043),A
+ LD A,081H
+ LD (L1042),A
+ CALL L5902
+ POP HL
+ CALL L52E3
+ CALL L5733
+ LD B,001H
+ LD A,081H
+ RST 018H
+ DB 038H
+ RET
+
+L5CD3: XOR A
+ LD BC,?SETDE
+ PUSH AF
+ CALL L6E67
+ RST 018H
+ DB 02DH
+ POP AF
+ RST 018H
+ DB 03FH
+ RET
+
+L5CE1: CALL L5882
+ PUSH AF
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 1,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L593A
+ LD B,A
+ XOR A
+ RST 018H
+ DB 039H
+ LD A,B
+ RST 018H
+ DB 03AH
+ POP AF
+ RST 018H
+ DB 039H
+ RET
+
+L5D00: CALL L6E67
+ RST 018H
+ DB 02DH
+ RST 018H
+ DB 03DH
+ RET
+
+L5D08: CALL L6E67
+ RST 018H
+ DB 02DH
+ CALL L5E6E
+ CALL L6E67
+ RST 018H
+ DB 03EH
+ RET
+
+L5D16: CALL L5D4C
+L5D19: CALL L5606
+ RST 018H
+ DB 042H
+ CALL L414A
+ RET Z
+ CALL L5E71
+ JR L5D19 ; (-00eH)
+
+L5D27: CALL L5D4C
+ LD DE,(TMPEND)
+ CALL L74E1
+L5D31: CALL L742F
+ PUSH HL
+ PUSH AF
+ PUSH BC
+ LD DE,(TMPEND)
+ RST 018H
+ DB 041H
+ POP DE
+ POP AF
+ CALL L57F8
+ POP HL
+ CALL L414A
+ RET Z
+ CALL L5E71
+ JR L5D31 ; (-01bH)
+
+L5D4C: CALL TEST1
+ DB 028H
+ RET NZ
+ CALL L6E57
+ LD A,D
+ OR E
+ JP Z,04AECH
+ RST 018H
+ DB 040H
+ CALL L5E7D
+ CALL TEST1
+ DB 02CH
+ RET
+
+L5D63: LD A,(L8493)
+ OR A
+ JP NZ,04B1CH
+ PUSH HL
+ LD B,000H
+ RST 018H
+ DB 02CH
+ LD (05E18H),DE
+ LD (L5E1A),A
+ LD HL,(L1072)
+ LD DE,(TEXTST)
+ XOR A
+ SBC HL,DE
+ LD (L1014),HL
+ RST 018H
+ DB 044H
+ POP HL
+ CALL L592D
+ CALL L5E46
+ LD A,(L1050)
+ BIT 5,A
+ JP Z,057B7H
+ PUSH HL
+ LD HL,(0848DH)
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ LD HL,L8476
+ LD BC,(0848BH)
+ LDIR
+ CALL L5BDC
+ CP 002H
+ JP NZ,04B49H
+ LD (05DB1H),SP
+L5DB0: LD SP,L0000
+ CALL L5C0F
+ CALL L5C42
+ LD HL,0FFFDH
+ PUSH HL
+ PUSH HL
+ LD A,001H
+ LD (L8493),A
+ LD HL,(L1070)
+ JP L40F0
+
+L5DC9: XOR A
+ LD (L8493),A
+ POP IX
+L5DCF: POP BC
+ LD A,B
+ CP 0FFH
+ JP NZ,04B1CH
+ LD A,C
+ CP 0FDH
+ JR Z,L5DEE ; (+013H)
+ CP 0FEH
+ LD HL,00004H
+ JR Z,L5DEA ; (+008H)
+ CP 012H
+ LD HL,00010H
+ JP NZ,04B1CH
+L5DEA: ADD HL,SP
+ LD SP,HL
+ JR L5DCF ; (-01fH)
+
+L5DEE: LD DE,(05E18H)
+ LD A,(L5E1A)
+ RST 018H
+ DB 03AH
+ LD B,000H
+ RST 018H
+ DB 02CH
+ CALL L5BA4
+ OR 0FFH
+ RST 018H
+ DB 044H
+ CALL L5C0F
+ CALL L5C42
+ LD HL,L0000
+ ADD HL,SP
+ LD DE,L8476
+ LD BC,(0848BH)
+ LDIR
+ LD SP,HL
+ POP HL
+ RET
+
+ NOP
+ NOP
+L5E1A: NOP
+L5E1B: LD DE,L5E35
+ LD B,005H
+ CALL L58D8
+ LD A,031H
+ CALL L5E2A
+ LD A,032H
+L5E2A: LD (05E3CH),A
+ LD DE,05E3AH
+ LD B,00CH
+ JP L58D8
+
+L5E35: DB "CMT:TRS?:0,$8C,13"
+L5E46: CALL L414A
+ RET Z
+ JP L4AE6
+
+L5E4D: XOR A
+ LD (L1091),A
+ CALL TEST1
+ DB FDPD
+ RET NZ
+ CALL TESTX
+ DB 050H
+ CALL L6ABE
+ LD A,050H
+ LD (L1091),A
+ CP A
+ RET
+
+L5E64: LD DE,L8495
+ LD B,000H
+ PUSH DE
+ RST 018H
+ DB 016H
+ POP DE
+ RET
+
+L5E6E: CALL HLFTCH
+L5E71: CP 02CH
+ JR L5E82 ; (+00dH)
+
+L5E75: INC HL
+L5E76: CALL HLFTCH
+L5E79: CP 028H
+ JR L5E82 ; (+005H)
+
+L5E7D: CALL HLFTCH
+L5E80: CP 029H
+L5E82: INC HL
+ RET Z
+ JP L4AE6
+
+L5E87: LD A,(DE)
+ CP 020H
+ INC DE
+ JR Z,L5E87 ; (-006H)
+ RET
+
+L5E8E: LD HL,L6110
+L5E91: LD BC,00005H
+ LDIR
+ RET
+
+L5E97: CALL L7960
+ LD A,E
+ OR D
+ RET Z
+ BIT 7,D
+ LD A,07FH
+ JR Z,L5EAC ; (+009H)
+ LD A,D
+ CPL
+ LD D,A
+ LD A,E
+ CPL
+ LD E,A
+ INC DE
+ LD A,0FFH
+L5EAC: LD B,091H
+L5EAE: DEC B
+ BIT 7,D
+ JR NZ,L5EB9 ; (+006H)
+ RL E
+ RL D
+ JR L5EAE ; (-00bH)
+
+L5EB9: LD (HL),B
+ INC HL
+ AND D
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ DEC HL
+ DEC HL
+ RET
+
+L5EC2: CP 030H
+ RET C
+ CP 03AH
+ CCF
+ RET
+
+L5EC9: CP 05FH
+ RET Z
+ CP 030H
+ RET C
+ CP 05BH
+ CCF
+ RET C
+ CP 03AH
+ CCF
+ RET NC
+ CP 041H
+ RET
+
+L5EDA: CALL L7960
+ LD (L62FF),A
+ LD (L6300),A
+ LD (L6301),A
+ LD (05F81H),A
+ LD A,005H
+ LD (L84C7),A
+L5EEE: CALL L5E87
+ CP 02BH
+ JR Z,L5EEE ; (-007H)
+ CP 02DH
+ JR NZ,L5EFF ; (+006H)
+ CALL L5EEE
+ JP L796B
+
+L5EFF: CP 024H
+ JR NZ,L5F0F ; (+00cH)
+ PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 014H
+ EX (SP),HL
+ CALL L5E97
+ POP DE
+ LD A,005H
+ RET
+
+L5F0F: CP 030H
+ JR NZ,L5F19 ; (+006H)
+ LD A,(DE)
+ INC DE
+ JR L5F0F ; (-008H)
+
+L5F17: LD A,(DE)
+ INC DE
+L5F19: CP 020H
+ JR Z,L5F17 ; (-006H)
+ CP 02EH
+ JR Z,L5F3C ; (+01bH)
+ CALL L5EC2
+ JR C,L5F76 ; (+050H)
+ SUB 030H
+ CALL L60A8
+ CALL L6012
+ LD A,001H
+ LD (L6300),A
+ LD A,(L62FF)
+ INC A
+ LD (L62FF),A
+ JR L5F17 ; (-025H)
+
+L5F3C: LD A,001H
+ LD (05F81H),A
+ LD C,A
+L5F42: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L5F42 ; (-006H)
+ CALL L5EC2
+ JR C,L5F6E ; (+021H)
+ INC C
+ SUB 030H
+ JR Z,L5F59 ; (+007H)
+ PUSH AF
+ LD A,001H
+ LD (L6300),A
+ POP AF
+L5F59: PUSH AF
+ LD A,(L6300)
+ LD B,A
+ LD A,(L62FF)
+ ADD A,B
+ LD (L62FF),A
+ POP AF
+ CALL L60A8
+ CALL L6012
+ JR L5F42 ; (-02cH)
+
+L5F6E: DEC C
+ JR Z,L5F76 ; (+005H)
+ CALL L5FFC
+ JR L5F6E ; (-008H)
+
+L5F76: CP 045H
+ JR Z,L5F87 ; (+00dH)
+L5F7A: DEC DE
+ LD A,(L6301)
+ OR A
+ RET NZ
+ LD A,000H
+ OR A
+ RET NZ
+ LD A,005H
+ RET
+
+L5F87: LD A,(DE)
+ CP 02DH
+ JR Z,L5F95 ; (+009H)
+ CP 02BH
+ JR Z,L5F95 ; (+005H)
+ CALL L5EC2
+ JR C,L5F7A ; (-01bH)
+L5F95: LD A,001H
+ LD (05F81H),A
+ PUSH HL
+ LD HL,L7BAC
+ LD (05FF5H),HL
+ LD HL,L0000
+ LD A,(DE)
+ INC DE
+ CP 02BH
+ JR Z,L5FB6 ; (+00cH)
+ CP 02DH
+ JR NZ,L5FB8 ; (+00aH)
+ PUSH HL
+ LD HL,L7C97
+ LD (05FF5H),HL
+ POP HL
+L5FB6: LD A,(DE)
+ INC DE
+L5FB8: SUB 030H
+ JR C,L5FD8 ; (+01cH)
+ CP 00AH
+ JR NC,L5FD8 ; (+018H)
+ PUSH DE
+ CALL L600D
+ LD E,L
+ LD D,H
+ CALL L600D
+ CALL L600D
+ CALL L6009
+ LD E,A
+ LD D,000H
+ CALL L6009
+ POP DE
+ JR L5FB6 ; (-022H)
+
+L5FD8: LD A,H
+ OR A
+ JR NZ,L600F ; (+033H)
+ LD A,L
+ POP HL
+ PUSH DE
+ PUSH BC
+ PUSH HL
+ LD DE,L84C8
+ PUSH DE
+ CALL L5E8E
+ POP HL
+ LD B,A
+ INC B
+ JR L5FF0 ; (+003H)
+
+L5FED: CALL L60A8
+L5FF0: DJNZ L5FED ; (-005H)
+ EX DE,HL
+ POP HL
+ CALL L0000
+ POP BC
+ POP DE
+ JP L5F7A
+
+L5FFC: PUSH AF
+ PUSH BC
+ PUSH DE
+ LD DE,L610B
+ CALL L7C97
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L6009: ADD HL,DE
+ RET NC
+ JR L600F ; (+002H)
+
+L600D: ADD HL,HL
+ RET NC
+L600F: JP 04AE9H
+
+L6012: PUSH DE
+ PUSH HL
+ LD HL,L84C8
+ LD E,A
+ LD D,000H
+ CALL L5E97
+ EX DE,HL
+ POP HL
+ PUSH BC
+ CALL L797E
+ POP BC
+ POP DE
+ RET
+
+L6026: LD A,005H
+ LD (L84C7),A
+ LD A,(HL)
+ OR A
+ JR Z,L6033 ; (+004H)
+ INC HL
+ LD A,(HL)
+ DEC HL
+ RLCA
+L6033: LD A,020H
+ JR NC,L603C ; (+005H)
+ CALL L796B
+ LD A,02DH
+L603C: PUSH AF
+ CALL L61AB
+ CALL L6238
+ POP AF
+ DEC DE
+ LD (DE),A
+ RET
+
+L6047: PUSH BC
+ CALL L7A15
+ POP BC
+ RET
+
+L604D: CALL SKPDE
+ LD A,(HL)
+ CP 081H
+ JP C,L7960
+ LD A,(HL)
+ CP 0A0H
+ RET NC
+ INC HL
+ CALL L6084
+ PUSH HL
+ LD L,(HL)
+ LD B,000H
+L6062: SRL E
+ RR D
+ RR C
+ RR L
+ INC A
+ INC B
+ CP 0A0H
+ JR NZ,L6062 ; (-00eH)
+L6070: SLA L
+ RL C
+ RL D
+ RL E
+ DJNZ L6070 ; (-00aH)
+ LD A,L
+ POP HL
+ LD (HL),A
+ DEC HL
+ LD (HL),C
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ RET
+
+L6084: LD E,(HL)
+ INC HL
+L6086: LD D,(HL)
+ INC HL
+ LD C,(HL)
+ INC HL
+ RET
+
+L608B: LD A,(HL)
+ CP 081H
+ RET C
+ PUSH DE
+ PUSH HL
+ LD DE,L60A3
+ PUSH DE
+ CALL L5E91
+ POP HL
+ CALL L604D
+ EX DE,HL
+ POP HL
+ CALL L7975
+ POP DE
+ RET
+
+L60A3: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L60A8: PUSH AF
+ PUSH BC
+ PUSH DE
+ LD DE,L610B
+ CALL L7BAC
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L60B5: INC HL
+ BIT 7,(HL)
+ JR Z,L60C5 ; (+00bH)
+ CALL L60C5
+ LD A,H
+ CPL
+ LD H,A
+ LD A,L
+ CPL
+ LD L,A
+ INC HL
+ RET
+
+L60C5: DEC HL
+ LD A,(HL)
+ CP 091H
+ JP NC,04AE9H
+ CP 081H
+ JR C,L60E3 ; (+013H)
+ PUSH AF
+ INC HL
+ LD A,(HL)
+ INC HL
+ LD L,(HL)
+ LD H,A
+ POP AF
+ SET 7,H
+L60D9: CP 090H
+ RET Z
+ INC A
+ SRL H
+ RR L
+ JR L60D9 ; (-00aH)
+
+L60E3: CCF
+ LD HL,L0000
+ RET
+
+L60E8: SBC A,E
+ LD A,0BCH
+ JR NZ,L60ED ; (+000H)
+L60ED: SBC A,B
+ JR L6086 ; (-06aH)
+
+ ADD A,B
+ NOP
+ SUB H
+ LD (HL),H
+ INC H
+ NOP
+ NOP
+ SUB C
+ LD B,E
+ LD D,B
+ NOP
+ NOP
+ ADC A,(HL)
+ INC E
+ LD B,B
+ NOP
+ NOP
+ ADC A,D
+ LD A,D
+ NOP
+ NOP
+ NOP
+ ADD A,A
+ LD C,B
+ NOP
+ NOP
+ NOP
+L610B: ADD A,H
+ JR NZ,L610E ; (+000H)
+L610E: NOP
+ NOP
+L6110: ADD A,C
+ NOP
+ NOP
+ NOP
+ NOP
+ LD A,L
+ LD C,H
+ CALL Z,0CDCCH
+L611A: LD H,(HL)
+ DEC HL
+ CALL Z,L1277
+L611F: LD HL,(L6302)
+ LD B,000H
+L6124: LD DE,L610B
+ CALL L6047
+ JR C,L6132 ; (+006H)
+ CALL L5FFC
+ INC B
+ JR L6124 ; (-00eH)
+
+L6132: LD DE,L6110
+ CALL L6047
+ JR NC,L6140 ; (+006H)
+ CALL L60A8
+ DEC B
+ JR L6132 ; (-00eH)
+
+L6140: PUSH BC
+ CALL L61AB
+ CALL L6238
+ POP BC
+ PUSH DE
+ EX DE,HL
+L614A: LD A,(HL)
+ OR A
+ JR Z,L6151 ; (+003H)
+ INC HL
+ JR L614A ; (-007H)
+
+L6151: DEC HL
+ LD A,(HL)
+ INC HL
+ CP 030H
+ JR NZ,L615A ; (+002H)
+ INC B
+ DEC HL
+L615A: LD A,045H
+ LD (HL),A
+ INC HL
+ LD A,B
+ LD B,02BH
+ BIT 7,A
+ JR Z,L6169 ; (+004H)
+ NEG
+ LD B,02DH
+L6169: LD (HL),B
+ INC HL
+ LD (HL),030H
+L616D: SUB 00AH
+ JR C,L6174 ; (+003H)
+ INC (HL)
+ JR L616D ; (-007H)
+
+L6174: ADD A,03AH
+ INC HL
+ LD (HL),A
+ INC HL
+ LD (HL),000H
+ POP DE
+ RET
+
+L617D: PUSH HL
+ CALL L60B5
+ LD DE,L84A0
+ PUSH DE
+ LD B,001H
+ RST 018H
+ DB 016H
+ POP HL
+ LD A,030H
+ LD B,005H
+L618E: CP (HL)
+ JR NZ,L6196 ; (+005H)
+ INC HL
+ DJNZ L618E ; (-006H)
+ JR L619F ; (+009H)
+
+L6196: LD A,B
+ LD (L62FF),A
+ LD A,001H
+ LD (L6300),A
+L619F: LD A,02EH
+ LD (L84A5),A
+ POP HL
+ CALL L608B
+ JP L61FB
+
+L61AB: LD (L6302),HL
+ XOR A
+ LD (L62FF),A
+ LD (L6300),A
+ PUSH HL
+ LD HL,L849C
+ LD (HL),0FFH
+ LD B,021H
+ LD A,030H
+L61BF: INC HL
+ LD (HL),A
+ DJNZ L61BF ; (-004H)
+ LD A,02EH
+ LD (L84A5),A
+ POP HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD DE,L60E8
+ CALL L7A15
+ CCF
+ RET C
+ LD DE,L611A
+ CALL L7A15
+ RET C
+ LD DE,L84D0
+ PUSH DE
+ CALL L5E91
+ POP HL
+ LD A,(HL)
+ CP 081H
+ JR C,L61FB ; (+013H)
+ CP 090H
+ JP C,L617D
+ LD IX,L849D
+ LD DE,L60ED
+ CALL L62C2
+ CALL L62F6
+ RET NC
+L61FB: LD IX,L84A6
+L61FF: LD DE,L60E8
+ PUSH BC
+ PUSH IX
+ CALL L7BAC
+ POP IX
+ POP BC
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ CALL L62C2
+ CALL L62F6
+ JR C,L61FF ; (-019H)
+ RET
+
+L6219: LD A,005H
+ LD (L84C7),A
+ PUSH HL
+ LD DE,L84D8
+ PUSH DE
+ CALL L5E91
+ POP HL
+ CALL L61AB
+ CALL L6235
+ POP HL
+ RET
+
+L622F: LD DE,L84A5
+ LD (DE),A
+ DEC DE
+ RET
+
+L6235: JP C,L611F
+L6238: LD HL,(L6302)
+ LD A,(HL)
+ OR A
+ JR Z,L622F ; (-010H)
+ LD DE,L849D
+ DEC DE
+ EX DE,HL
+ LD DE,00001H
+L6247: INC HL
+ LD A,(HL)
+ CP 02EH
+ JR NZ,L6252 ; (+005H)
+ LD DE,L0000
+ JR L6247 ; (-00bH)
+
+L6252: CP 030H
+ JR Z,L6247 ; (-00fH)
+ ADD HL,DE
+ LD DE,00008H
+ ADD HL,DE
+ LD A,(HL)
+L625C: LD (HL),030H
+ CP 035H
+ JR C,L6271 ; (+00fH)
+L6262: DEC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L6262 ; (-006H)
+ INC A
+ JR Z,L62AB ; (+040H)
+ LD (HL),A
+ CP 03AH
+ JR Z,L625C ; (-014H)
+ INC HL
+L6271: LD DE,L84A5
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ JR C,L6280 ; (+005H)
+ LD HL,L84A5
+ JR L6297 ; (+017H)
+
+L6280: DEC HL
+ LD A,(HL)
+ CP 02EH
+ DEC HL
+ JR Z,L6296 ; (+00fH)
+ INC HL
+ CP 030H
+ JR Z,L6271 ; (-01bH)
+ PUSH HL
+ LD DE,L84AE
+ SBC HL,DE
+ POP HL
+ JP NC,L611F
+L6296: INC HL
+L6297: LD (HL),000H
+ LD DE,L849D
+L629C: LD A,(DE)
+ CP 030H
+ JR NZ,L62A4 ; (+003H)
+ INC DE
+ JR L629C ; (-008H)
+
+L62A4: OR A
+ RET NZ
+ DEC DE
+ LD A,030H
+ LD (DE),A
+ RET
+
+L62AB: LD HL,L8495
+ LD DE,L62BC
+ PUSH BC
+ LD BC,L0006
+ LDIR
+ POP BC
+ LD DE,L8495
+ RET
+
+L62BC: LD SP,L2B45
+ JR NC,L62F9 ; (+038H)
+ NOP
+L62C2: LD A,(DE)
+ CP 07DH
+ RET Z
+L62C6: CALL L7A15
+ JR C,L62DE ; (+013H)
+ INC (IX+000H)
+ PUSH IX
+ PUSH BC
+ CALL L7975
+ POP BC
+ POP IX
+ LD A,001H
+ LD (L6300),A
+ JR L62C6 ; (-018H)
+
+L62DE: INC IX
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ LD A,(L6300)
+ LD B,A
+ LD A,(L62FF)
+ ADD A,B
+ LD (L62FF),A
+ CALL L62F6
+ RET NC
+ JR L62C2 ; (-034H)
+
+L62F6: LD A,(HL)
+ OR A
+ RET Z
+L62F9: LD A,(L62FF)
+ CP 009H
+ RET
+
+L62FF: NOP
+L6300: NOP
+L6301: NOP
+L6302: NOP
+ NOP
+L6304: NOP
+ NOP
+L6306: NOP
+ NOP
+L6308: LD HL,(L6306)
+ PUSH DE
+L630C: LD A,(HL)
+ OR A
+ JP Z,04AECH
+ CALL L63AA
+ JR Z,L631B ; (+005H)
+ LD (BC),A
+ INC BC
+ INC HL
+ JR L630C ; (-00fH)
+
+L631B: EX AF,AF'
+ LD A,(L84C7)
+ CP 003H
+ JP NZ,L63D3
+ EX AF,AF'
+ CP 021H
+ JP Z,L6332
+ CP 026H
+ JP Z,L6359
+ JP 04AEFH
+
+L6332: EX (SP),HL
+ PUSH BC
+ CALL L6E76
+ OR A
+ LD A,020H
+ JR Z,L633D ; (+001H)
+ LD A,(DE)
+L633D: POP BC
+ LD (BC),A
+ INC BC
+L6340: POP HL
+ INC HL
+L6342: LD A,(HL)
+ OR A
+ JR Z,L6350 ; (+00aH)
+ CALL L63AA
+ JR Z,L6353 ; (+008H)
+ LD (BC),A
+ INC BC
+ INC HL
+ JR L6342 ; (-00eH)
+
+L6350: LD HL,(L6304)
+L6353: LD (L6306),HL
+ XOR A
+ LD (BC),A
+ RET
+
+L6359: LD D,002H
+L635B: INC HL
+ LD A,(HL)
+ CP 026H
+ JR Z,L6369 ; (+008H)
+ INC D
+ CP 020H
+ JR Z,L635B ; (-00bH)
+ JP 04AECH
+
+L6369: EX (SP),HL
+ LD A,(HL)
+ CP D
+ JR C,L6383 ; (+015H)
+ INC HL
+ CALL INDRCT
+ PUSH BC
+ LD BC,(STRST)
+ ADD HL,BC
+ POP BC
+L6379: LD A,(HL)
+ LD (BC),A
+ INC BC
+ INC HL
+ DEC D
+ JR NZ,L6379 ; (-007H)
+ JP L6340
+
+L6383: LD E,(HL)
+ INC HL
+ CALL INDRCT
+ LD A,E
+ OR A
+ JR Z,L63A0 ; (+014H)
+ PUSH BC
+ LD BC,(STRST)
+ ADD HL,BC
+ POP BC
+L6393: LD A,(HL)
+ LD (BC),A
+ INC BC
+ INC HL
+ DEC E
+ JR Z,L63A4 ; (+00aH)
+ DEC D
+ JR NZ,L6393 ; (-00aH)
+ JP L6340
+
+L63A0: LD A,020H
+ LD (BC),A
+ INC BC
+L63A4: DEC D
+ JR NZ,L63A0 ; (-007H)
+ JP L6340
+
+L63AA: CALL CHKACC
+ INC B
+ LD HL,L2326
+ DEC HL
+ RET Z
+ LD E,A
+ CP 02AH
+ JR Z,L63CD ; (+015H)
+ CALL L65AA
+ JR Z,L63CD ; (+010H)
+ CP 02EH
+ LD E,023H
+ JR Z,L63CD ; (+00aH)
+ CP 0C4H
+ RET NZ
+ INC HL
+ LD A,(HL)
+ OR A
+ JP Z,04AECH
+ RET
+
+L63CD: INC HL
+ LD A,(HL)
+ CP E
+ DEC HL
+ LD A,(HL)
+ RET
+
+L63D3: XOR A
+ LD (0651AH),A
+ LD (0656AH),A
+ LD (L6552),A
+ LD (06510H),A
+ LD (064CAH),A
+ LD (064F7H),A
+ LD (06515H),A
+ LD (064C3H),A
+ DEC A
+ LD (064C0H),A
+ EX AF,AF'
+ LD D,000H
+ CP 023H
+ JP Z,L642F
+ CP 02AH
+ JP Z,L6410
+ CALL L65AA
+ JP Z,L6421
+ CP 02EH
+ JP Z,L6431
+ CP 02BH
+ JP Z,L642A
+ JP 04AEFH
+
+L6410: LD A,001H
+ LD (0656AH),A
+ INC HL
+ INC D
+ INC HL
+ INC D
+ LD A,(HL)
+ CALL L65AA
+ JR NZ,L6431 ; (+012H)
+ JR L6423 ; (+002H)
+
+L6421: INC HL
+ INC D
+L6423: INC HL
+ INC D
+ LD (L6552),A
+ JR L6431 ; (+007H)
+
+L642A: LD A,001H
+ LD (0651AH),A
+L642F: INC HL
+ INC D
+L6431: EX DE,HL
+ DEC H
+L6433: INC H
+ LD A,(DE)
+ INC DE
+ CP 023H
+ JR Z,L6433 ; (-007H)
+ CP 02CH
+ JR NZ,L6445 ; (+007H)
+ LD A,001H
+ LD (064CAH),A
+ JR L6433 ; (-012H)
+
+L6445: CP 02EH
+ JR Z,L646C ; (+023H)
+ CP 02DH
+ JR NZ,L6455 ; (+008H)
+ LD A,001H
+ LD (06510H),A
+ INC DE
+ JR L6465 ; (+010H)
+
+L6455: CP 02BH
+ JR NZ,L6465 ; (+00cH)
+ LD A,(0651AH)
+ OR A
+ JR NZ,L6465 ; (+006H)
+ LD A,001H
+ LD (06515H),A
+ INC DE
+L6465: DEC DE
+ LD A,H
+ LD (064F7H),A
+ JR L649F ; (+033H)
+
+L646C: LD A,H
+ LD (064F7H),A
+ LD H,0FFH
+L6472: INC H
+ LD A,(DE)
+ INC DE
+ CP 023H
+ JR Z,L6472 ; (-007H)
+ CP 02DH
+ JR NZ,L6485 ; (+008H)
+ LD A,001H
+ LD (06510H),A
+ INC DE
+ JR L6495 ; (+010H)
+
+L6485: CP 02BH
+ JR NZ,L6495 ; (+00cH)
+ LD A,(0651AH)
+ OR A
+ JR NZ,L6495 ; (+006H)
+ LD A,001H
+ LD (06515H),A
+ INC DE
+L6495: DEC DE
+ LD A,H
+ LD (064C0H),A
+ JR L649F ; (+003H)
+
+L649C: POP DE
+ JR L64B1 ; (+012H)
+
+L649F: LD H,004H
+ PUSH DE
+L64A2: LD A,(DE)
+ INC DE
+ CP 05EH
+ JR NZ,L649C ; (-00cH)
+ DEC H
+ JR NZ,L64A2 ; (-009H)
+ POP AF
+ LD A,001H
+ LD (064C3H),A
+L64B1: POP HL
+ PUSH DE
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ LD (06547H),A
+ LD A,(064F7H)
+ LD D,A
+ LD A,000H
+ LD E,A
+ LD A,000H
+ PUSH BC
+ CALL L65BC
+ POP BC
+ LD A,000H
+ OR A
+ JR Z,L650F ; (+041H)
+ PUSH BC
+ PUSH DE
+ LD A,(064F7H)
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ LD DE,L8495
+ LD C,000H
+ DEC HL
+L64DD: LD B,003H
+L64DF: LD A,(HL)
+ CP 020H
+ JR Z,L64F6 ; (+012H)
+ INC C
+ LD (DE),A
+ INC DE
+ DEC HL
+ DJNZ L64DF ; (-00bH)
+ LD A,(HL)
+ CP 020H
+ JR Z,L64F6 ; (+007H)
+ LD A,02CH
+ LD (DE),A
+ INC DE
+ INC C
+ JR L64DD ; (-019H)
+
+L64F6: LD A,000H
+ CP C
+ JP C,04AE9H
+ LD B,C
+ LD L,A
+ LD H,000H
+ POP DE
+ PUSH DE
+ ADD HL,DE
+ LD DE,L8495
+ DEC HL
+L6507: LD A,(DE)
+ LD (HL),A
+ DEC HL
+ INC DE
+ DJNZ L6507 ; (-006H)
+ POP DE
+ POP BC
+L650F: LD A,000H
+ OR A
+ JR NZ,L6551 ; (+03dH)
+ LD A,000H
+ OR A
+ JR NZ,L6551 ; (+038H)
+ LD A,000H
+ OR A
+ JR NZ,L6546 ; (+028H)
+ LD A,(06547H)
+ RLCA
+ JR NC,L6551 ; (+02dH)
+ LD A,(DE)
+ CP 020H
+ LD H,02DH
+ JR Z,L6530 ; (+005H)
+ CP 030H
+ JP NZ,04AE9H
+L6530: PUSH DE
+L6531: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L6531 ; (-006H)
+ CP 030H
+ JR Z,L6531 ; (-00aH)
+ OR A
+ JR NZ,L653F ; (+001H)
+ DEC DE
+L653F: DEC DE
+ DEC DE
+ LD A,H
+ LD (DE),A
+ POP DE
+ JR L6551 ; (+00bH)
+
+L6546: LD A,000H
+ RLCA
+ LD H,02BH
+ JR NC,L6530 ; (-01dH)
+ LD H,02DH
+ JR L6530 ; (-021H)
+
+L6551: DB 03EH
+L6552: NOP
+ OR A
+ JR Z,L6569 ; (+013H)
+ LD A,(DE)
+ CP 020H
+ JR NZ,L6569 ; (+00eH)
+ PUSH DE
+L655C: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L655C ; (-006H)
+ DEC DE
+ DEC DE
+ LD A,(L6552)
+ LD (DE),A
+ POP DE
+L6569: LD A,000H
+ OR A
+ JR Z,L657B ; (+00dH)
+ PUSH DE
+L656F: LD A,(DE)
+ CP 020H
+ JR NZ,L657A ; (+006H)
+ LD A,02AH
+ LD (DE),A
+ INC DE
+ JR L656F ; (-00bH)
+
+L657A: POP DE
+L657B: LD A,(DE)
+ OR A
+ JR Z,L6584 ; (+005H)
+ LD (BC),A
+ INC BC
+ INC DE
+ JR L657B ; (-009H)
+
+L6584: LD A,(06515H)
+ OR A
+ JR Z,L6598 ; (+00eH)
+ LD A,(06547H)
+ RLCA
+ LD A,02BH
+L6590: JR NC,L6594 ; (+002H)
+ LD A,02DH
+L6594: LD (BC),A
+ INC BC
+ JR L65A6 ; (+00eH)
+
+L6598: LD A,(06510H)
+ OR A
+ JR Z,L65A6 ; (+008H)
+ LD A,(06547H)
+ RLCA
+ LD A,020H
+ JR L6590 ; (-016H)
+
+L65A6: POP HL
+ JP L6342
+
+L65AA: PUSH HL
+ LD HL,L0036
+ BIT 6,(HL)
+ POP HL
+ JR NZ,L65B6 ; (+003H)
+ CP 07DH
+ RET
+
+L65B6: CP FDPD
+ RET Z
+ CP 024H
+ RET
+
+L65BC: OR A
+ JP Z,L6647
+ PUSH DE
+ LD A,(HL)
+ OR A
+ JR Z,L6604 ; (+03fH)
+ PUSH HL
+ LD A,D
+ LD DE,L84D0
+ PUSH AF
+ CALL L5E8E
+ POP AF
+ OR A
+ JR Z,L65DD ; (+00bH)
+ LD B,A
+ LD HL,L84D0
+ JR L65DB ; (+003H)
+
+L65D8: CALL L60A8
+L65DB: DJNZ L65D8 ; (-005H)
+L65DD: POP HL
+ LD B,000H
+L65E0: LD DE,L84D0
+ CALL L6047
+ JR C,L65EE ; (+006H)
+ CALL L5FFC
+ INC B
+ JR L65E0 ; (-00eH)
+
+L65EE: PUSH HL
+ LD HL,L84D0
+ CALL L5FFC
+ POP HL
+L65F6: LD DE,L84D0
+ CALL L6047
+ JR NC,L6604 ; (+006H)
+ CALL L60A8
+ DEC B
+ JR L65F6 ; (-00eH)
+
+L6604: POP DE
+ PUSH BC
+ CALL L6661
+ POP BC
+ PUSH DE
+ LD A,(DE)
+ CP 02EH
+ JR NZ,L6622 ; (+012H)
+ LD DE,L84A5
+ DEC DE
+ LD A,(DE)
+ CP 031H
+ POP DE
+ PUSH DE
+ JR NZ,L663E ; (+023H)
+ EX DE,HL
+ INC HL
+ LD (HL),031H
+ DEC HL
+ JR L663C ; (+01aH)
+
+L6622: LD A,(DE)
+ CP 031H
+ JR NZ,L663E ; (+017H)
+ EX DE,HL
+ INC HL
+ LD A,(HL)
+ DEC HL
+ CP 02EH
+ LD A,030H
+ JR Z,L6633 ; (+002H)
+ LD A,020H
+L6633: LD (HL),A
+L6634: INC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L6634 ; (-006H)
+ LD (HL),031H
+L663C: EX DE,HL
+ INC B
+L663E: LD A,(DE)
+ INC DE
+ OR A
+ JR NZ,L663E ; (-005H)
+ DEC DE
+ JP L615A
+
+L6647: PUSH DE
+ CALL L6661
+ POP AF
+ OR A
+ RET NZ
+ PUSH HL
+ LD HL,L84A5
+ DEC HL
+ LD A,030H
+ CP (HL)
+L6656: JP NZ,04AE9H
+ DEC HL
+ LD A,020H
+ CP (HL)
+ JR NZ,L6656 ; (-009H)
+ POP HL
+ RET
+
+L6661: PUSH DE
+ CALL L61AB
+ JP C,04AE9H
+ POP HL
+ PUSH HL
+ LD H,000H
+ INC L
+ JR Z,L6670 ; (+001H)
+ DEC L
+L6670: LD DE,L84A6
+ ADD HL,DE
+ LD A,(HL)
+ LD (HL),000H
+ LD DE,L3036
+ CP 035H
+ JR C,L668D ; (+00fH)
+L667E: DEC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L667E ; (-006H)
+ INC A
+ JP Z,04AE9H
+ LD (HL),A
+ CP 03AH
+ JR Z,06678H ; (-015H)
+L668D: LD HL,L11A3
+ LD DE,L2000
+L6693: LD (HL),D
+ INC HL
+ DEC E
+ JR NZ,L6693 ; (-005H)
+ POP HL
+ PUSH HL
+ LD E,H
+ LD D,000H
+ LD HL,L11A4
+ ADD HL,DE
+ PUSH HL
+ LD HL,L849C
+ LD (HL),020H
+ INC HL
+ LD D,007H
+L66AA: LD A,(HL)
+ CP 030H
+ JR NZ,L66B5 ; (+006H)
+ LD (HL),020H
+ INC HL
+ DEC D
+ JR NZ,L66AA ; (-00bH)
+L66B5: POP HL
+ PUSH HL
+ LD B,E
+ LD A,B
+ OR A
+ JR Z,L66D3 ; (+017H)
+ LD DE,L84A5
+L66BF: DEC HL
+ DEC DE
+ LD A,(DE)
+ LD (HL),A
+ CP 020H
+ JR Z,L66D3 ; (+00cH)
+ DJNZ L66BF ; (-00aH)
+ DEC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L66D3 ; (+004H)
+ INC A
+ JP NZ,04AE9H
+L66D3: POP HL
+ POP DE
+ INC E
+ JR Z,L66E7 ; (+00fH)
+ LD B,E
+ LD DE,L84A6
+ LD (HL),02EH
+L66DE: INC HL
+ DEC B
+ JR Z,L66E7 ; (+005H)
+ LD A,(DE)
+ INC DE
+ LD (HL),A
+ JR L66DE ; (-009H)
+
+L66E7: LD (HL),000H
+ LD DE,L11A4
+ RET
+
+L66ED: PUSH DE
+ PUSH BC
+ LD C,000H
+ DEC DE
+L66F2: INC DE
+L66F3: CALL L6873
+ OR A
+ JR Z,L672A ; (+031H)
+ CP 0FFH
+ JR Z,L672E ; (+031H)
+ CP 060H
+ JP NC,L4AE6
+ CP 020H
+ JR C,L66F2 ; (-014H)
+ LD IX,L66F3
+ PUSH IX
+ CP 022H
+ JR Z,L6749 ; (+039H)
+ CP 027H
+ JR Z,L673C ; (+028H)
+ CP 03FH
+ JR Z,L6735 ; (+01dH)
+ CP 02EH
+ JP Z,L6896
+ CP 024H
+ JP Z,L68B0
+ CALL L5EC2
+ JR C,L6771 ; (+04aH)
+ JP L687D
+
+L672A: LD (HL),A
+ POP BC
+ POP DE
+ RET
+
+L672E: LD (HL),LSE4
+ CALL L6755
+ JR L66F3 ; (-042H)
+
+L6735: LD A,08FH
+ CALL L6754
+ JR L67AC ; (+070H)
+
+L673C: LD (HL),03AH
+ CALL L6755
+ LD (HL),027H
+ CALL L6756
+ JP L6813
+
+L6749: LD (HL),A
+ CALL L6755
+L674D: LD A,(DE)
+ OR A
+ RET Z
+ CP 022H
+ JR NZ,L6749 ; (-00bH)
+L6754: LD (HL),A
+L6755: INC DE
+L6756: INC HL
+L6757: INC C
+ RET NZ
+ JP 04AFBH
+
+L675C: POP BC
+ LD A,(DE)
+ CALL L5EC9
+ JR C,L6754 ; (-00fH)
+L6763: CALL L6754
+ LD A,(DE)
+ CP 024H
+ JR Z,L6754 ; (-017H)
+ CALL L5EC2
+ RET C
+ JR L6763 ; (-00eH)
+
+L6771: PUSH BC
+ LD BC,L4167
+ CALL L6822
+ JR NC,L67A8 ; (+02eH)
+ LD BC,L42FE
+ CALL L6822
+ LD C,0FEH
+ JR NC,L678E ; (+00aH)
+ LD BC,L4356
+ CALL L6822
+ LD C,0FFH
+ JR C,L675C ; (-032H)
+L678E: LD (HL),C
+ INC HL
+ LD (HL),A
+ POP BC
+ CALL L6757
+ CALL L6756
+ CP 0B4H
+ RET NZ
+ CALL L6873
+ CP 03DH
+ RET NZ
+ LD (HL),QDPC
+ CALL L6755
+ JR L67E8 ; (+040H)
+
+L67A8: POP BC
+ CALL L6756
+L67AC: CP 097H
+ JR Z,L6813 ; (+063H)
+ CP 094H
+ JR Z,L6813 ; (+05fH)
+ CP 0C2H
+ JR Z,L6809 ; (+051H)
+ CP LSE2
+ JR Z,L67E8 ; (+02cH)
+ CP LSE0
+ RET NC
+ PUSH AF
+ CALL L6873
+ CP 02FH
+ JR NZ,L67D4 ; (+00dH)
+ LD (HL),FDPD
+ CALL L6755
+ CALL L6A15
+ CALL L6754
+ JR L67E4 ; (+010H)
+
+L67D4: CP 023H
+ JR NZ,L67E4 ; (+00cH)
+ CALL L6754
+ CALL L6A15
+ CALL L5EC2
+ CALL NC,L687D
+L67E4: POP AF
+ CP 08DH
+ RET NC
+L67E8: CALL L6873
+ CP 022H
+ JR NZ,L67F4 ; (+005H)
+ CALL L6749
+ JR L67E8 ; (-00cH)
+
+L67F4: CP 02CH
+ RET C
+ CP 02FH
+ JR C,L6804 ; (+009H)
+ CALL L5EC2
+ RET C
+ CALL L68A7
+ JR L67E8 ; (-01cH)
+
+L6804: CALL L6754
+ JR L67E8 ; (-021H)
+
+L6809: DB 02BH
+ LD (HL),03AH
+ INC HL
+ LD (HL),A
+ CALL L6756
+ JR L67E8 ; (-02bH)
+
+L6813: LD A,(DE)
+ CALL L414D
+ RET Z
+ CALL L6754
+ CP 022H
+ CALL Z,L674D
+ JR L6813 ; (-00fH)
+
+L6822: PUSH HL
+ PUSH DE
+ LD H,B
+ LD L,C
+ LD B,07FH
+L6828: POP DE
+ PUSH DE
+ INC B
+ LD A,(HL)
+ CP 0FFH
+ JR NZ,L6834 ; (+004H)
+ POP DE
+ POP HL
+ SCF
+ RET
+
+L6834: CP 02EH
+ JR NZ,L6841 ; (+009H)
+ INC HL
+ DEC DE
+ LD A,(DE)
+ INC DE
+ CALL L5EC9
+ JR NC,L6860 ; (+01fH)
+L6841: LD A,(DE)
+ CP 020H
+ JR NZ,L6852 ; (+00cH)
+ LD A,(HL)
+ AND 07FH
+ SUB 041H
+ CP 01AH
+ JR C,L6860 ; (+011H)
+ CALL L6A14
+L6852: LD C,(HL)
+ INC HL
+ INC DE
+ CP 02EH
+ JR Z,L6868 ; (+00fH)
+ SUB C
+ JR Z,L6841 ; (-01bH)
+ CP 080H
+ JR Z,L686E ; (+00eH)
+L6860: DEC HL
+L6861: BIT 7,(HL)
+ INC HL
+ JR Z,L6861 ; (-005H)
+ JR L6828 ; (-040H)
+
+L6868: LD A,B
+ CP 0E8H
+ JR NC,L6860 ; (-00dH)
+ CCF
+L686E: POP HL
+ POP HL
+ LD (HL),B
+ LD A,B
+ RET
+
+L6873: LD A,(DE)
+ CP 020H
+ RET NZ
+ LD (HL),A
+ CALL L6755
+ JR L6873 ; (-00aH)
+
+L687D: EX AF,AF'
+ PUSH DE
+ CALL L6A14
+ POP DE
+ CALL L5EC2
+ JR NC,L6896 ; (+00eH)
+ CP 02EH
+ JR Z,L6896 ; (+00aH)
+ CP 045H
+ JR Z,L6896 ; (+006H)
+ EX AF,AF'
+ SUB 02FH
+ JP L6896
+
+L6896: PUSH BC
+ LD (HL),015H
+ INC HL
+ PUSH HL
+ CALL L5EDA
+ POP HL
+ LD BC,00005H
+ ADD HL,BC
+ LD A,006H
+ JR L68CA ; (+023H)
+
+L68A7: PUSH BC
+ CALL L6A09
+ LD (HL),00BH
+ INC HL
+ JR L68C4 ; (+014H)
+
+L68B0: LD (HL),A
+ INC DE
+ LD A,(DE)
+ RST 018H
+ DB 015H
+ JP C,L6756
+ PUSH BC
+ LD (HL),011H
+ INC HL
+ PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 014H
+ LD B,D
+ LD C,E
+ EX DE,HL
+ POP HL
+L68C4: LD A,003H
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+L68CA: POP BC
+ ADD A,C
+ JP C,04AFBH
+ LD C,A
+L68D0: DEC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L68D0 ; (-006H)
+ INC DE
+ RET
+
+L68D8: PUSH HL
+ PUSH DE
+ PUSH BC
+ EXX
+ LD B,000H
+ EXX
+ LD C,000H
+L68E1: LD A,(HL)
+ OR A
+ JR Z,L6915 ; (+030H)
+ LD BC,L68E1
+ PUSH BC
+ CP 027H
+ JR Z,L692F ; (+042H)
+ INC HL
+ LD BC,L4167
+ CP 020H
+ JR C,L6957 ; (+062H)
+ CP 022H
+ JR Z,L6940 ; (+047H)
+ CP 03AH
+ JR Z,L694D ; (+050H)
+ CP 097H
+ JR Z,L692B ; (+02aH)
+ CP 094H
+ JR Z,L692B ; (+026H)
+ CP LSE4
+ JR Z,L691A ; (+011H)
+ CP 0FEH
+ JR NC,L691F ; (+012H)
+ CP 080H
+ JP NC,L699B
+ JP L69B8
+
+L6915: LD (DE),A
+ POP BC
+ POP DE
+ POP HL
+ RET
+
+L691A: LD A,0FFH
+ JP L69B8
+
+L691F: LD BC,L4356
+ JR NZ,L6927 ; (+003H)
+ LD BC,L42FE
+L6927: LD A,(HL)
+ INC HL
+ JR L699B ; (+070H)
+
+L692B: CALL L699B
+ RET Z
+L692F: LD A,(HL)
+ CALL L414D
+ RET Z
+ CALL L69B8
+ LD A,(HL)
+ INC HL
+ CP 022H
+ CALL Z,L6943
+ JR L692F ; (-011H)
+
+L6940: CALL L69B8
+L6943: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ JR NZ,L6940 ; (-00bH)
+ JR L69B8 ; (+06bH)
+
+L694D: LD (DE),A
+ LD A,(HL)
+ CP 0C2H
+ RET Z
+ CP 027H
+ RET Z
+ JR L69BB ; (+064H)
+
+L6957: CP 015H
+ JR Z,L698B ; (+030H)
+ CP 00BH
+ JR NC,L6964 ; (+005H)
+ DEC A
+ OR 030H
+ JR L69B8 ; (+054H)
+
+L6964: PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ PUSH HL
+ CP 012H
+ JR Z,L697A ; (+00cH)
+ CP 00CH
+ JR C,L697A ; (+008H)
+ JR NZ,L69C7 ; (+053H)
+ EX DE,HL
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L697A: EX DE,HL
+ CALL L5E64
+ LD B,D
+ LD C,E
+ POP HL
+ POP DE
+L6982: LD A,(BC)
+ OR A
+ RET Z
+ CALL L69B8
+ INC BC
+ JR L6982 ; (-009H)
+
+L698B: PUSH HL
+ PUSH DE
+ CALL L6219
+ LD B,D
+ LD C,E
+ POP DE
+ POP HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ JR L6982 ; (-019H)
+
+L699B: CP 080H
+ JR Z,L69A9 ; (+00aH)
+ EX AF,AF'
+L69A0: LD A,(BC)
+ RLCA
+ INC BC
+ JR NC,L69A0 ; (-005H)
+ EX AF,AF'
+ DEC A
+ JR L699B ; (-00eH)
+
+L69A9: LD A,(BC)
+ BIT 7,A
+ JR NZ,L69B6 ; (+008H)
+ CP 02EH
+ CALL NZ,L69B8
+ INC BC
+ JR L69A9 ; (-00dH)
+
+L69B6: AND 07FH
+L69B8: LD (DE),A
+ OR A
+ RET Z
+L69BB: INC DE
+ EXX
+ INC B
+ EXX
+ RET NZ
+ XOR A
+ LD (DE),A
+ DEC DE
+ EXX
+ DEC B
+ EXX
+ RET
+
+L69C7: LD A,024H
+ EX AF,AF'
+ EX DE,HL
+ CALL L69D8
+ LD B,D
+ LD C,E
+ POP HL
+ POP DE
+ EX AF,AF'
+ CALL L69B8
+ JR L6982 ; (-056H)
+
+L69D8: LD DE,L84A1
+ PUSH DE
+ LD A,H
+ CALL L69F1
+ LD A,L
+ CALL L69F1
+ XOR A
+ LD (DE),A
+ POP DE
+ LD B,003H
+L69E9: LD A,(DE)
+ CP 030H
+ RET NZ
+ INC DE
+ DJNZ L69E9 ; (-007H)
+ RET
+
+L69F1: PUSH AF
+ RRCA
+ RRCA
+ RRCA
+ RRCA
+ AND 00FH
+ CALL L69FE
+ POP AF
+ AND 00FH
+L69FE: ADD A,030H
+ CP 03AH
+ JR C,L6A06 ; (+002H)
+ ADD A,007H
+L6A06: LD (DE),A
+ INC DE
+ RET
+
+L6A09: PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 013H
+ LD B,D
+ LD C,E
+ EX DE,HL
+ POP HL
+ JP L68D0
+
+L6A14: INC DE
+L6A15: LD A,(DE)
+ CP 020H
+ JR Z,L6A14 ; (-006H)
+ RET
+
+L6A1B: LD C,(HL)
+L6A1C: CALL L6A24
+ XOR A
+ LD (L1095),A
+ RET
+
+L6A24: LD A,(L004D)
+ OR A
+ JP NZ,L4B36
+ CALL TEST1
+ DB 047H
+ JR Z,L6A74 ; (+043H)
+ CALL TESTX
+ DB 054H
+ LD A,001H
+ LD (L1097),A
+ CALL TEST1
+ DB 04EH
+ JR Z,L6A4A ; (+00aH)
+ CALL TEST1
+ DB 04CH
+ JR Z,L6A4A ; (+004H)
+ CALL TESTX
+ DB 053H
+L6A4A: LD (L6A1B),A
+ CALL L5E46
+ CALL L6A6C
+L6A53: LD A,001H
+ RST 018H
+ DB 006H
+ LD A,(L6A1B)
+ CP 04EH
+ RET Z
+ CP 04CH
+ LD A,00BH
+ JR Z,L6A69 ; (+006H)
+ LD A,009H
+ RST 018H
+ DB 006H
+ RST 018H
+ DB 006H
+L6A69: RST 018H
+ DB 006H
+ RET
+
+L6A6C: LD A,00AH
+ RST 018H
+ DB 006H
+ LD A,003H
+ JR L6A69 ; (-00bH)
+
+L6A74: INC HL
+ CALL L5E46
+ LD A,002H
+ LD (L1097),A
+ JR L6A69 ; (-016H)
+
+L6A7F: CALL L6ABE
+ CALL L6E57
+ LD A,E
+ OR A
+ RET Z
+ CP 0ECH
+ JR NC,L6A91 ; (+005H)
+ CP 015H
+ JP NC,04AECH
+L6A91: CALL L5E46
+ BIT 7,E
+ JR NZ,L6AA0 ; (+008H)
+L6A98: LD A,00AH
+ RST 018H
+ DB 006H
+ DEC E
+ JR NZ,L6A98 ; (-007H)
+ RET
+
+L6AA0: LD A,003H
+ RST 018H
+ DB 006H
+ INC E
+ JR NZ,L6AA0 ; (-007H)
+ RET
+
+L6AA8: PUSH HL
+ LD HL,L03E7
+ JR L6AB2 ; (+004H)
+
+L6AAE: PUSH HL
+ LD HL,L01E0
+L6AB2: PUSH HL
+ ADD HL,DE
+ POP HL
+ JR C,L6ABC ; (+005H)
+ SBC HL,DE
+ JP C,04AECH
+L6ABC: POP HL
+ RET
+
+L6ABE: LD B,001H
+ JR L6AC4 ; (+002H)
+
+L6AC2: LD B,002H
+L6AC4: LD A,(L1097)
+ CP B
+ RET Z
+ JP L4B36
+
+L6ACC: LD C,044H
+ LD DE,04A0EH
+ LD DE,04D0EH
+ LD DE,0520EH
+ CALL L6AC2
+ LD A,C
+ LD (06B1EH),A
+ CP 04DH
+ JR NC,L6B04 ; (+022H)
+ CALL TEST1
+ DB 025H
+ JR NZ,L6B04 ; (+01cH)
+ CALL L6E43
+ LD A,E
+ DEC A
+ CP 010H
+ JP NC,04AECH
+ DEC DE
+ LD A,04CH
+ RST 018H
+ DB 006H
+ CALL L6DDA
+ CALL L6B60
+ CALL L414A
+ RET Z
+ CALL L5E71
+L6B04: CALL L6E57
+ CALL L5E71
+ CALL L6AAE
+ PUSH DE
+ CALL L6E57
+ CP 02CH
+ JR Z,L6B18 ; (+003H)
+ CALL L5E46
+L6B18: CALL L6AA8
+ POP BC
+ PUSH DE
+ LD A,000H
+ RST 018H
+ DB 006H
+ LD E,C
+ LD D,B
+ CALL L6DDA
+ CALL L6B64
+ POP DE
+ CALL L6DDA
+ CALL L6B60
+ CALL L414A
+ RET Z
+ INC HL
+ JR L6B04 ; (-033H)
+
+L6B37: CALL L6E43
+ LD A,E
+ CP 004H
+ JP NC,04AECH
+ CALL L5E46
+ LD A,(L1097)
+ CP 002H
+ JR Z,L6B57 ; (+00dH)
+ CALL L6A6C
+ LD A,002H
+ RST 018H
+ DB 006H
+ CALL L6B57
+ JP L6A53
+
+L6B57: LD A,043H
+ RST 018H
+ DB 006H
+ LD A,E
+ OR 030H
+ RST 018H
+ DB 006H
+L6B60: LD A,00DH
+ JR L6B66 ; (+002H)
+
+L6B64: LD A,02CH
+L6B66: RST 018H
+ DB 006H
+ RET
+
+L6B69: CALL L6AC2
+ CALL L5E46
+ LD A,048H
+ JR L6B66 ; (-00dH)
+
+L6B73: CALL L6AC2
+ CALL L5E46
+ LD A,049H
+ JR L6B66 ; (-017H)
+
+L6B7D: CALL L6AC2
+ CALL TEST1
+ DB 05BH
+ JR NZ,L6BBE ; (+038H)
+ CALL L6E43
+ CP 040H
+ JP NC,04AECH
+ PUSH DE
+ CALL L5E6E
+ CALL L6E43
+ CP 004H
+ JP NC,04AECH
+ PUSH DE
+ CALL TESTX
+ DB 05DH
+ POP BC
+ POP DE
+ PUSH BC
+ LD A,053H
+ RST 018H
+ DB 006H
+ CALL L6DDA
+ CALL L6B64
+ POP DE
+ LD A,051H
+ RST 018H
+ DB 006H
+ CALL L6DDA
+ CALL L6B60
+ CALL L414A
+ RET Z
+ CALL L5E71
+L6BBE: CALL L6E67
+ CALL L414A
+ JR Z,L6BCA ; (+004H)
+ CALL L5E71
+ DEC HL
+L6BCA: LD A,B
+ OR A
+ JR Z,L6BDB ; (+00dH)
+ LD A,050H
+ RST 018H
+ DB 006H
+L6BD2: LD A,(DE)
+ RST 018H
+ DB 006H
+ INC DE
+ DJNZ L6BD2 ; (-006H)
+ CALL L6B60
+L6BDB: CALL L414A
+ RET Z
+ INC HL
+ JR L6BBE ; (-024H)
+
+L6BE2: CALL L6AC2
+ CALL L6E43
+ CP 002H
+ JP NC,04AECH
+ PUSH AF
+ CALL L5E6E
+ CALL L6E57
+ PUSH DE
+ CALL L5E71
+ CALL L6E43
+ OR A
+ JP Z,04AECH
+ CALL L5E46
+ LD A,058H
+ RST 018H
+ DB 006H
+ POP BC
+ POP AF
+ PUSH DE
+ PUSH BC
+ OR 030H
+ RST 018H
+ DB 006H
+ CALL L6B64
+ POP DE
+ CALL L6AA8
+ CALL L6DDA
+ CALL L6B64
+ POP DE
+ CALL L6DDA
+ JP L6B60
+
+L6C22: CALL L6AC2
+ PUSH HL
+ LD DE,L0000
+ LD HL,L6DBC
+ CALL L5E97
+ LD DE,L0168
+ LD HL,L6DC1
+ CALL L5E97
+ LD HL,L610B
+ LD DE,L6DC6
+ CALL L5E91
+ POP HL
+ CALL L6E82
+ CALL L5E71
+ PUSH HL
+ LD HL,L6DAD
+ EX DE,HL
+ CALL L5E91
+ POP HL
+ CALL L6E82
+ CALL L5E71
+ PUSH HL
+ LD HL,L6DB2
+ EX DE,HL
+ CALL L5E91
+ POP HL
+ CALL L6E82
+ PUSH HL
+ PUSH AF
+ LD HL,L6DB7
+ EX DE,HL
+ CALL L5E91
+ LD A,(06DB8H)
+ RLCA
+ JP C,04AECH
+ POP AF
+ CP 02CH
+ JR NZ,L6CB2 ; (+03aH)
+ POP HL
+ INC HL
+ CALL L6E82
+ PUSH HL
+ PUSH AF
+ LD HL,L6DBC
+ EX DE,HL
+ CALL L5E91
+ POP AF
+ CP 02CH
+ JR NZ,L6CB2 ; (+027H)
+ POP HL
+ INC HL
+ CALL L6E82
+ PUSH HL
+ PUSH AF
+ LD HL,L6DC1
+ EX DE,HL
+ CALL L5E91
+ POP AF
+ CP 02CH
+ JR NZ,L6CB2 ; (+014H)
+ POP HL
+ INC HL
+ CALL L6E82
+ PUSH HL
+ LD HL,L6DC6
+ EX DE,HL
+ CALL L5E91
+ LD A,(06DC7H)
+ RLCA
+ JP C,04AECH
+L6CB2: POP HL
+ CALL L5E46
+ PUSH HL
+ LD HL,L6DC1
+ LD DE,L6DBC
+ LD A,(L6DC6)
+ OR A
+ CALL NZ,L7A15
+ JP C,04AECH
+ CALL L6D63
+ LD HL,L6DCB
+ LD (06D3BH),HL
+ LD HL,L6DD0
+ LD (06D46H),HL
+ CALL 06D37H
+ LD A,(L6DC6)
+ OR A
+ JR Z,L6D11 ; (+032H)
+L6CDF: LD HL,L6DBC
+ LD DE,L6DC6
+ CALL L797E
+ LD DE,L6DC1
+ CALL L7A15
+ JR NC,L6CFC ; (+00cH)
+ CALL L6D63
+ CALL L6D34
+ RST 018H
+ DB 00EH
+ JR NZ,L6CDF ; (-01bH)
+ POP HL
+ RET
+
+L6CFC: CALL L6D04
+ CALL L6D34
+ POP HL
+ RET
+
+L6D04: LD HL,L6DC1
+ LD DE,L6DBC
+ LD BC,00005H
+ LDIR
+ JR L6D63 ; (+052H)
+
+L6D11: LD HL,L6DAD
+ LD (06D3BH),HL
+ LD HL,L6DB2
+ LD (06D46H),HL
+ CALL L6D34
+ CALL L6D04
+ LD HL,L6DCB
+ LD (06D3BH),HL
+ LD HL,L6DD0
+ LD (06D46H),HL
+ CALL L6D34
+ POP HL
+ RET
+
+L6D34: LD A,044H
+ LD HL,L4D3E
+ PUSH AF
+ LD HL,L6DAD
+ CALL L60B5
+ PUSH HL
+ EX DE,HL
+ CALL L6AA8
+ LD HL,L6DB2
+ CALL L60B5
+ PUSH HL
+ EX DE,HL
+ CALL L6AA8
+ POP HL
+ POP DE
+ POP AF
+ RST 018H
+ DB 006H
+ PUSH HL
+ CALL L6DDA
+ CALL L6B64
+ POP DE
+ CALL L6DDA
+ JP L6B60
+
+L6D63: LD DE,(INTFAC)
+ LD HL,L6DBC
+ CALL L5E91
+ LD HL,(L107C)
+ CALL L8175
+ CALL L7FBB
+ LD DE,L6DB7
+ CALL L7BAC
+ LD DE,L6DAD
+ CALL L797E
+ LD DE,L6DCB
+ CALL L5E91
+ LD DE,(INTFAC)
+ LD HL,L6DBC
+ CALL L5E91
+ LD HL,(L107C)
+ CALL L8175
+ CALL L7FCB
+ LD DE,L6DB7
+ CALL L7BAC
+ LD DE,L6DB2
+ CALL L797E
+ LD DE,L6DD0
+ JP L5E91
+
+L6DAD: DS 5, 000H
+L6DB2: DS 5, 000H
+L6DB7: DS 5, 000H
+L6DBC: DS 5, 000H
+L6DC1: DS 5, 000H
+L6DC6: DS 5, 000H
+L6DCB: DS 5, 000H
+L6DD0: DS 10, 000H
+L6DDA: PUSH AF
+ PUSH HL
+ LD HL,(L107C)
+ CALL L5E97
+ CALL L6026
+ RST 018H
+ DB 017H
+L6DE7: LD A,(DE)
+ RST 018H
+ DB 006H
+ INC DE
+ DJNZ L6DE7 ; (-006H)
+ POP HL
+ POP AF
+ RET
+
+L6DF0: CALL L6ABE
+ CALL L5E46
+ LD A,004H
+ RST 018H
+ DB 006H
+ RET
+
+L6DFB: CALL L6ABE
+ CALL L6E57
+ LD A,E
+ OR A
+ JP Z,04AECH
+ CP 049H
+ JP NC,04AECH
+ CALL L5E46
+ LD A,009H
+ RST 018H
+ DB 006H
+ RST 018H
+ DB 006H
+ CALL L6DDA
+ JP L6B60
+
+L6E1A: CP 09DH
+ JR Z,L6E29 ; (+00bH)
+ CP 0A1H
+ JP NZ,L4AE6
+ XOR A
+L6E24: LD (L004D),A
+ INC HL
+ RET
+
+L6E29: CALL L6ABE
+ LD A,(L6A1B)
+ CP 04EH
+ JP NZ,L4B36
+ LD A,(L004D)
+ OR A
+ JR NZ,L6E24 ; (-016H)
+ CALL L527B
+ LD A,016H
+ RST 018H
+ DB 003H
+ JR L6E24 ; (-01fH)
+
+L6E43: CALL L6E57
+L6E46: LD A,D
+ OR A
+ JP NZ,04AECH
+ LD A,E
+ RET
+
+L6E4D: CALL L6E94
+ DEC DE
+ DEC DE
+ DEC DE
+ DEC DE
+ DEC DE
+ JR L6E5A ; (+003H)
+
+L6E57: CALL L6E82
+L6E5A: PUSH AF
+ PUSH HL
+ EX DE,HL
+ CALL L7918
+ CALL L60B5
+ EX DE,HL
+ POP HL
+ POP AF
+ RET
+
+L6E67: CALL L6E82
+ PUSH AF
+ CALL L790F
+ PUSH HL
+ EX DE,HL
+ CALL L6E76
+ POP HL
+ POP AF
+ RET
+
+L6E76: LD B,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ EX DE,HL
+ LD A,B
+ RET
+
+L6E82: LD DE,(VARED)
+ LD (TMPEND),DE
+L6E8A: LD DE,(INTFAC)
+ PUSH DE
+ CALL L6E94
+ POP DE
+ RET
+
+L6E94: PUSH DE
+ LD DE,(TMPEND)
+ CALL L74E1
+ POP DE
+ CALL L6EB8
+L6EA0: CP EM_P0
+ RET NZ
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ CALL L6EB8
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL 07E5EH
+ POP HL
+ POP AF
+ JR L6EA0 ; (-018H)
+
+L6EB8: CALL L6ED3
+L6EBB: CP EM_P1
+ RET NZ
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ CALL L6ED3
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL 07E5BH
+ POP HL
+ POP AF
+ JR L6EBB ; (-018H)
+
+L6ED3: CALL L6EEE
+L6ED6: CP 0ECH
+ RET NZ
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ CALL L6EEE
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7E58
+ POP HL
+ POP AF
+ JR L6ED6 ; (-018H)
+
+L6EEE: CALL TEST1
+ DB 0EDH
+ JR NZ,L6F03 ; (+00fH)
+ CALL L6F03
+ PUSH AF
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L7E48
+ POP HL
+ POP AF
+ RET
+
+L6F03: CALL L6F6D
+L6F06: CP 0EEH
+ RET C
+ PUSH AF
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ CALL L6F6D
+ POP BC
+ EX (SP),HL
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7A15
+ EX AF,AF'
+ POP AF
+ CP 0F6H
+ JR NZ,L6F40 ; (+01eH)
+ EX AF,AF'
+ JR C,L6F3B ; (+016H)
+L6F25: LD BC,L0000
+L6F28: LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ XOR A
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ LD A,005H
+ LD (L84C7),A
+ POP AF
+ POP HL
+ JR L6F06 ; (-035H)
+
+L6F3B: LD BC,08081H
+ JR L6F28 ; (-018H)
+
+L6F40: CP QDPD
+ JR NZ,L6F4B ; (+007H)
+ EX AF,AF'
+ JR Z,L6F25 ; (-022H)
+ JR C,L6F25 ; (-024H)
+ JR L6F3B ; (-010H)
+
+L6F4B: CP QDPC
+ JR NZ,L6F54 ; (+005H)
+ EX AF,AF'
+ JR Z,L6F3B ; (-017H)
+ JR L6F25 ; (-02fH)
+
+L6F54: CP QDPA
+ JR C,L6F5D ; (+005H)
+ EX AF,AF'
+ JR NC,L6F3B ; (-020H)
+ JR L6F25 ; (-038H)
+
+L6F5D: CP LSPAL
+ JR C,L6F68 ; (+007H)
+ EX AF,AF'
+ JR Z,L6F3B ; (-029H)
+ JR C,L6F3B ; (-02bH)
+ JR L6F25 ; (-043H)
+
+L6F68: EX AF,AF'
+ JR Z,L6F25 ; (-046H)
+ JR L6F3B ; (-032H)
+
+L6F6D: CALL L6F98
+L6F70: CP 0F7H
+ RET C
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ JR Z,L6F8A ; (+010H)
+ CALL L6F98
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7975
+L6F86: POP HL
+ POP AF
+ JR L6F70 ; (-01aH)
+
+L6F8A: CALL L6F98
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L797E
+ JR L6F86 ; (-012H)
+
+L6F98: CALL L6FC3
+L6F9B: CP FDPB
+ RET C
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ JR Z,L6FB5 ; (+010H)
+ CALL L6FC3
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7EB4
+L6FB1: POP HL
+ POP AF
+ JR L6F9B ; (-01aH)
+
+L6FB5: CALL L6FC3
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7ED3
+ JR L6FB1 ; (-012H)
+
+L6FC3: CALL L6FEE
+L6FC6: CP FDPD
+ RET C
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ JR Z,L6FE0 ; (+010H)
+ CALL L6FEE
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7BAC
+L6FDC: POP HL
+ POP AF
+ JR L6FC6 ; (-01aH)
+
+L6FE0: CALL L6FEE
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7C97
+ JR L6FDC ; (-012H)
+
+L6FEE: CALL TEST1
+ DB 0F7H
+ JR Z,L6FEE ; (-006H)
+ CP FDPA
+ JR NZ,L6FFE ; (+006H)
+ INC HL
+ CALL L6FFE
+ JR L7027 ; (+029H)
+
+L6FFE: CALL L7033
+L7001: CP 0FDH
+ RET NZ
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ CALL L7019
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7DCC
+ POP HL
+ POP AF
+ JR L7001 ; (-018H)
+
+L7019: CALL TEST1
+ DB 0F7H
+ JR Z,L7019 ; (-006H)
+ CP FDPA
+ JR NZ,L7033 ; (+010H)
+ INC HL
+ CALL L7033
+L7027: PUSH AF
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L7968
+ POP HL
+ POP AF
+ RET
+
+L7033: CALL L414A
+ JP Z,L4AE6
+ CALL L703F
+ JP HLFTCH
+
+L703F: PUSH HL
+ LD HL,(L107E)
+ SCF
+ SBC HL,DE
+ JP C,04AF5H
+ POP HL
+ CP LSE4
+ JR Z,L705C ; (+00eH)
+ CP 020H
+ JR NC,L709C ; (+04aH)
+L7052: INC HL
+ CP 015H
+ JR C,L706B ; (+014H)
+ CALL L5E91
+ JR L7065 ; (+009H)
+
+L705C: INC HL
+ PUSH HL
+ LD HL,08188H
+ CALL L5E91
+ POP HL
+L7065: LD A,005H
+L7067: LD (L84C7),A
+ RET
+
+L706B: CP 00BH
+ JR NC,L7078 ; (+009H)
+ DEC A
+ JP M,L4AE6
+ LD B,000H
+ LD C,A
+ JR L7089 ; (+011H)
+
+L7078: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ CP 00CH
+ JR NZ,L7089 ; (+009H)
+ INC BC
+ INC BC
+ LD A,(BC)
+ INC BC
+ EX AF,AF'
+ LD A,(BC)
+ LD B,A
+ EX AF,AF'
+ LD C,A
+L7089: PUSH HL
+ PUSH DE
+ EX DE,HL
+ LD E,C
+ LD D,B
+ CALL L5E97
+ POP DE
+ POP HL
+ LD A,005H
+L7095: INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ JR L7067 ; (-035H)
+
+L709C: CP 022H
+ JR NZ,L70CF ; (+02fH)
+ INC HL
+ PUSH HL
+ CALL L74C9
+ EX (SP),HL
+ PUSH HL
+ LD HL,(L107A)
+ PUSH BC
+ LD BC,(STRST)
+ OR A
+ SBC HL,BC
+ POP BC
+ EX DE,HL
+ LD (HL),B
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ POP DE
+ PUSH HL
+ LD HL,(L107A)
+ CALL L74D5
+ LD (L107A),HL
+ POP DE
+ POP HL
+ LD A,003H
+ LD (L84C7),A
+ RET
+
+L70CF: CP 028H
+ JR NZ,L70DA ; (+007H)
+ INC HL
+ CALL L6E94
+ JP L5E80
+
+L70DA: OR A
+ JP P,L76EE
+ CP 0E7H
+ INC HL
+ JR NZ,L70E8 ; (+005H)
+ LD A,0A8H
+ PUSH AF
+ JR L711D ; (+035H)
+
+L70E8: CP 0FFH
+ JP NZ,L4AE6
+ LD A,(HL)
+ INC HL
+ CP 0A0H
+ JP Z,L71A0
+ CP 0C8H
+ JP NC,L4AE6
+ CP 0BAH
+ JR NC,L714D ; (+050H)
+ PUSH AF
+ CP 0B3H
+ JR NC,L713E ; (+03cH)
+ LD B,003H
+ CP 0AAH
+ JR Z,L711D ; (+015H)
+ CP 0ABH
+ JR NC,L711D ; (+011H)
+ LD B,005H
+ CP 088H
+ JR Z,L7138 ; (+026H)
+ CP 089H
+ JR NZ,L711D ; (+007H)
+ CALL TEST1
+ DB 040H
+ LD (081A1H),A
+L711D: CALL L5E76
+L7120: PUSH BC
+ CALL L6E94
+ CALL L5E80
+ POP AF
+ CALL L790B
+L712B: POP AF
+ PUSH DE
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L714D
+ POP HL
+ POP DE
+ RET
+
+L7138: CALL TEST1
+ DB 028H
+ JR Z,L7120 ; (-01eH)
+L713E: LD A,005H
+ LD (L84C7),A
+ PUSH HL
+ LD HL,L6110
+ CALL L5E91
+ POP HL
+ JR L712B ; (-022H)
+
+L714D: PUSH HL
+ ADD A,A
+ LD L,A
+ LD H,000H
+ LD BC,L4512
+ ADD HL,BC
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ EX (SP),HL
+ RET
+
+ EX DE,HL
+ LD HL,L0000
+ ADD HL,SP
+ LD BC,(TMPEND)
+ OR A
+ SBC HL,BC
+ OR A
+ LD BC,L0100
+ SBC HL,BC
+ EX DE,HL
+ JR L7181 ; (+010H)
+
+ LD A,(L0054)
+ JR L717E ; (+008H)
+
+ LD A,(00055H)
+ JR L717E ; (+003H)
+
+ LD A,(L847E)
+L717E: LD E,A
+ LD D,000H
+L7181: LD A,005H
+ LD (L84C7),A
+ JP L5E97
+
+ LD DE,(08480H)
+ CALL L5E97
+ INC HL
+ BIT 7,(HL)
+ DEC HL
+ RET Z
+ LD DE,L719B
+ JP L797E
+
+L719B: SUB C
+ NOP
+ NOP
+ NOP
+ NOP
+L71A0: CALL L5E76
+ LD BC,(TMPEND)
+ PUSH BC
+ XOR A
+ PUSH AF
+L71AA: PUSH BC
+ PUSH DE
+ CALL L6E4D
+ CALL L6E46
+ POP DE
+ POP BC
+ LD (BC),A
+ INC BC
+ LD (TMPEND),BC
+ POP AF
+ INC A
+ PUSH AF
+ CALL TEST1
+ DB 02CH
+ JR Z,L71AA ; (-019H)
+ CALL L5E80
+ PUSH BC
+ EXX
+ POP DE
+ POP AF
+ LD B,A
+ POP HL
+ CALL L74E1
+L71CF: LD (TMPEND),DE
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ PUSH HL
+ LD A,B
+ EXX
+ EX DE,HL
+ LD (HL),A
+ INC HL
+ POP BC
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ LD BC,L0003
+ ADD HL,BC
+L71E8: EX DE,HL
+ LD A,003H
+ LD (L84C7),A
+ RET
+
+ PUSH HL
+ CALL L60B5
+ CALL L69D8
+ RST 018H
+ DB 017H
+L71F8: LD A,B
+ OR A
+ JR Z,L720C ; (+010H)
+ LD HL,(L107A)
+ PUSH HL
+ PUSH BC
+ CALL L74D5
+ POP BC
+ EX DE,HL
+ POP HL
+ EXX
+ POP DE
+ EXX
+ JR L71CF ; (-03dH)
+
+L720C: POP HL
+ CALL L7960
+ JR L71E8 ; (-02aH)
+
+ PUSH HL
+ CALL L7223
+ LD B,A
+ LD C,A
+ OR A
+ LD A,020H
+ PUSH DE
+ CALL NZ,?SETDE
+ POP DE
+ LD B,C
+ JR L71F8 ; (-02bH)
+
+L7223: CALL L60B5
+ LD DE,L11A4
+ LD A,H
+ OR A
+ JP NZ,04AECH
+ LD A,L
+ RET
+
+ PUSH HL
+ CALL L6026
+ LD A,(DE)
+ CP 020H
+ JR NZ,L723A ; (+001H)
+ INC DE
+L723A: RST 018H
+ DB 017H
+ JR L71F8 ; (-046H)
+
+ CALL L5E76
+ CALL L5882
+ LD B,A
+ CALL L5E7D
+ LD A,B
+ PUSH HL
+ PUSH DE
+ RST 018H
+ DB 029H
+ LD DE,0FFFFH
+ JR C,L725A ; (+008H)
+ INC HL
+ BIT 7,(HL)
+ JR NZ,L725A ; (+003H)
+ LD DE,L0000
+L725A: POP HL
+ CALL L5E97
+ LD A,005H
+ LD (L84C7),A
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ POP HL
+ RET
+
+ PUSH HL
+ CALL L6E76
+ OR A
+ JR Z,L7273 ; (+001H)
+ LD A,(DE)
+L7273: JR L7279 ; (+004H)
+
+ PUSH HL
+ CALL L6E76
+L7279: POP HL
+ JP L717E
+
+ PUSH HL
+ CALL L6E76
+ LD HL,(L107A)
+ PUSH HL
+ CALL L74D5
+ LD (HL),000H
+ POP DE
+ POP HL
+ JP L5EDA
+
+ CALL L730B
+ CALL L5E80
+ CALL L7304
+ EX DE,HL
+ LD A,(HL)
+ CP C
+ JR NC,L729E ; (+001H)
+ LD C,A
+L729E: LD (HL),C
+ LD BC,00005H
+L72A2: LD A,003H
+ ADD HL,BC
+ EX DE,HL
+ LD (L84C7),A
+ JP HLFTCH
+
+ CALL L730B
+ CALL L5E80
+ CALL L7304
+ EX DE,HL
+ LD A,(HL)
+ SUB C
+ JR NC,L72BC ; (+002H)
+ XOR A
+ LD C,(HL)
+L72BC: LD (HL),C
+ INC HL
+ ADD A,(HL)
+ LD (HL),A
+ INC HL
+ JR NC,L72C4 ; (+001H)
+ INC (HL)
+L72C4: LD BC,L0003
+ JR L72A2 ; (-027H)
+
+ CALL L730B
+ CALL L7304
+ OR A
+ JP Z,04AECH
+ PUSH AF
+ CALL TEST1
+ DB 029H
+ LD A,0FFH
+ JR Z,L72F0 ; (+014H)
+ CALL L5E6E
+ PUSH DE
+ EX DE,HL
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ CALL L6E4D
+ CALL L5E80
+ CALL L6E46
+ POP DE
+L72F0: POP BC
+ LD C,A
+ EX DE,HL
+ LD A,(HL)
+ SUB B
+ JR C,L7300 ; (+009H)
+ INC A
+ CP C
+ JR NC,L72FC ; (+001H)
+ LD C,A
+L72FC: LD A,B
+ DEC A
+ JR L72BC ; (-044H)
+
+L7300: XOR A
+ LD C,A
+ JR L72BC ; (-048H)
+
+L7304: LD A,B
+ OR A
+ JP NZ,04AECH
+ LD A,C
+ RET
+
+L730B: CALL L5E76
+ PUSH DE
+ CALL L6E94
+ CALL L5E71
+ CALL L790F
+ CALL L6E4D
+ LD C,E
+ LD B,D
+ POP DE
+ RET
+
+ PUSH HL
+ PUSH DE
+ LD HL,(L107A)
+ PUSH HL
+ LD A,030H
+ LD B,006H
+ CALL ?SETHL
+ RST 018H
+ DB 025H
+ POP HL
+ OR A
+ JR Z,L7337 ; (+005H)
+ INC (HL)
+ INC HL
+ INC (HL)
+ INC (HL)
+ DEC HL
+L7337: EX DE,HL
+ LD BC,L8CA0
+ CALL L73AE
+ LD BC,L0E10
+ CALL L73AE
+ CP 03AH
+ JR C,L7352 ; (+00aH)
+ SUB 00AH
+ DEC DE
+ LD (DE),A
+ DEC DE
+ LD A,(DE)
+ INC A
+ LD (DE),A
+ INC DE
+ INC DE
+L7352: DEC DE
+ DEC DE
+ LD A,(DE)
+ INC DE
+ LD B,A
+ LD A,(DE)
+ INC DE
+ LD C,A
+ LD A,B
+ CP 032H
+ JR NZ,L7370 ; (+011H)
+ LD A,C
+ CP 034H
+ JR NZ,L7370 ; (+00cH)
+ LD HL,(L107A)
+ LD A,030H
+ LD B,006H
+ CALL ?SETHL
+ JR L7386 ; (+016H)
+
+L7370: LD BC,L0258
+ CALL L73AE
+ LD BC,0003CH
+ CALL L73AE
+ LD BC,0000AH
+ CALL L73AE
+ LD A,030H
+ ADD A,L
+ LD (DE),A
+L7386: LD HL,(L107A)
+ LD DE,L0006
+ EX DE,HL
+ ADD HL,DE
+ LD (L107A),HL
+ EX DE,HL
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ POP HL
+ LD (HL),006H
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ POP HL
+ LD A,003H
+ LD (L84C7),A
+ JP HLFTCH
+
+L73AE: OR A
+ SBC HL,BC
+ JR C,L73B8 ; (+005H)
+ LD A,(DE)
+ INC A
+ LD (DE),A
+ JR L73AE ; (-00aH)
+
+L73B8: ADD HL,BC
+ INC DE
+ RET
+
+L73BB: CALL TESTX
+ DB QDPC
+ CALL L6E67
+ LD A,B
+ CP 006H
+ JP NZ,04AECH
+ PUSH HL
+ PUSH DE
+ LD HL,L0000
+ CALL L73FC
+ CP 018H
+ JP NC,04AECH
+ CP 00CH
+ LD A,000H
+ JR C,L73E4 ; (+009H)
+ PUSH DE
+ LD DE,L000C
+ OR A
+ SBC HL,DE
+ POP DE
+ INC A
+L73E4: PUSH AF
+ CALL L73FC
+ CP 03CH
+ JP NC,04AECH
+ CALL L73FC
+ CP 03CH
+ JP NC,04AECH
+ POP AF
+ EX DE,HL
+ RST 018H
+ DB 026H
+ POP DE
+ POP HL
+ RET
+
+L73FC: PUSH DE
+ LD D,H
+ LD E,L
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,DE
+ LD D,H
+ LD E,L
+ ADD HL,HL
+ ADD HL,DE
+ ADD HL,HL
+ ADD HL,HL
+ POP DE
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JP C,04AECH
+ CP 00AH
+ JP NC,04AECH
+ PUSH BC
+ LD C,A
+ ADD A,A
+ ADD A,A
+ ADD A,C
+ ADD A,A
+ LD C,A
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JP C,04AECH
+ CP 00AH
+ JP NC,04AECH
+ ADD A,C
+ LD C,A
+L742A: LD B,000H
+ ADD HL,BC
+ POP BC
+ RET
+
+L742F: LD DE,(VARED)
+ LD (TMPEND),DE
+ LD DE,(INTFAC)
+L743B: PUSH DE
+ CALL L748E
+L743F: LD A,(HL)
+ CP 028H
+ JP Z,L74F4
+ PUSH HL
+ CALL L77AF
+ JR NC,L7451 ; (+006H)
+ LD A,C
+ LD C,L
+ LD B,H
+ POP HL
+ POP DE
+ RET
+
+L7451: LD A,(DE)
+ ADD A,C
+ ADD A,002H
+ PUSH BC
+ EX DE,HL
+ LD HL,(L107A)
+ PUSH HL
+ OR A
+ SBC HL,DE
+ INC HL
+ LD C,L
+ LD B,H
+ POP HL
+ PUSH DE
+ EX DE,HL
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ EX DE,HL
+ CALL L74E1
+ LDDR
+ LD E,A
+ LD D,000H
+ RST 018H
+ DB 01AH
+ POP HL
+ POP BC
+ LD DE,L11A4
+ LD (HL),C
+ INC HL
+ SCF
+ SBC A,C
+ LD B,A
+L747D: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L747D ; (-006H)
+ PUSH HL
+ LD B,C
+ CALL ?CLRHL
+ LD (HL),A
+ LD A,C
+ POP BC
+ POP HL
+ POP DE
+ RET
+
+L748E: CALL HLFTCH
+ SUB 041H
+ CP 01AH
+ JP NC,L4AE6
+ LD DE,L11A4
+ LD B,000H
+L749D: INC DE
+ LD A,(HL)
+ CALL L5EC9
+ JR C,L74AF ; (+00bH)
+ LD (DE),A
+ INC B
+ LD A,B
+ CP 003H
+ JR C,L74AC ; (+001H)
+ DEC B
+L74AC: INC HL
+ JR L749D ; (-012H)
+
+L74AF: LD DE,L11A4
+ EX DE,HL
+ LD (HL),B
+ EX DE,HL
+ LD C,005H
+ CP 024H
+ RET NZ
+ LD C,003H
+ INC HL
+ RET
+
+L74BE: LD HL,0FFFBH
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ ADD HL,DE
+ LD A,B
+ JP L790B
+
+L74C9: LD B,0FFH
+L74CB: INC B
+ LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ RET Z
+ JR L74CB ; (-00aH)
+
+L74D5: LD A,B
+ OR A
+ RET Z
+ CALL LDHLDE
+ EX DE,HL
+ CALL L74E1
+ EX DE,HL
+ RET
+
+L74E1: PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ SBC HL,DE
+ POP HL
+ RET NC
+ JP L4B26
+
+L74ED: LD DE,(INTFAC)
+ PUSH DE
+ JR L74FC ; (+008H)
+
+L74F4: XOR A
+ LD (L76ED),A
+ INC HL
+ LD (L76EB),HL
+L74FC: LD B,000H
+ EXX
+ POP HL
+ PUSH HL
+ PUSH HL
+ LD HL,(L107A)
+ LD DE,L11A4
+ PUSH HL
+ LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ LD B,A
+ CALL L74D5
+ POP DE
+ LD (L107A),HL
+ LD HL,(L1076)
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX (SP),HL
+ PUSH HL
+ EXX
+L751F: POP DE
+ PUSH DE
+ PUSH BC
+ LD BC,(076EBH)
+ LD A,(L76ED)
+ PUSH BC
+ PUSH AF
+ LD BC,(08495H)
+ PUSH BC
+ CALL L6E4D
+ BIT 7,D
+ JP NZ,04AECH
+ EX AF,AF'
+ POP BC
+ LD (08495H),BC
+ POP AF
+ LD (L76ED),A
+ POP BC
+ LD (076EBH),BC
+ EX AF,AF'
+ INC HL
+ CP 029H
+ JR Z,L7565 ; (+018H)
+ CP 02CH
+ JP NZ,L4AE6
+ POP BC
+ INC B
+ LD A,B
+ CP 004H
+ JP NC,04AECH
+ EXX
+ POP HL
+ POP DE
+ EXX
+ PUSH DE
+ EXX
+ PUSH DE
+ PUSH HL
+ EXX
+ JR L751F ; (-046H)
+
+L7565: POP BC
+ EXX
+ POP HL
+ POP DE
+ EXX
+ INC B
+ PUSH DE
+ PUSH HL
+ EXX
+ LD HL,(L1076)
+ ADD HL,DE
+ LD B,(HL)
+ INC B
+ LD DE,L11A4
+ CALL LDDEHL
+ EXX
+ SET 7,C
+ CALL L77AF
+ RES 7,C
+ JR NC,L75DA ; (+056H)
+ LD A,B
+ CP (HL)
+ JP NZ,04AF8H
+ INC HL
+ EX DE,HL
+ POP HL
+ LD (L8495),HL
+ EXX
+ LD HL,L0000
+ EXX
+ EX DE,HL
+L7595: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX (SP),HL
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C1
+ EXX
+ PUSH HL
+ OR A
+ SBC HL,DE
+ JP NC,04AECH
+ EXX
+ POP DE
+ CALL L76BD
+ EXX
+ POP HL
+ DJNZ L7595 ; (-01cH)
+ PUSH HL
+ EXX
+ LD A,C
+ LD D,B
+ BIT 6,A
+ JR NZ,L75CD ; (+014H)
+ AND 00FH
+ LD E,A
+ PUSH AF
+ CALL L76C1
+ PUSH HL
+ EXX
+ POP BC
+ POP AF
+ POP HL
+ ADD HL,BC
+ LD C,L
+ LD B,H
+L75C8: LD HL,(L8495)
+ POP DE
+ RET
+
+L75CD: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD C,L
+ LD B,H
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ AND 00FH
+ JR L75C8 ; (-012H)
+
+L75DA: EXX
+ LD A,(L76ED)
+ OR A
+ JP Z,04AECH
+ POP HL
+ LD (L8495),HL
+ EXX
+ LD DE,(TMPEND)
+ LD L,B
+ LD H,000H
+ ADD HL,HL
+ ADD HL,DE
+ EX DE,HL
+ INC DE
+ CALL L74E1
+ LD (HL),B
+ INC HL
+ EXX
+ LD HL,00001H
+ EXX
+L75FC: POP DE
+ LD A,(L76ED)
+ OR A
+ JR NZ,L760F ; (+00cH)
+ PUSH HL
+ EX DE,HL
+ LD DE,0000AH
+ SCF
+ SBC HL,DE
+ JP NC,04AECH
+ POP HL
+L760F: INC DE
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C1
+ EXX
+ DJNZ L75FC ; (-021H)
+ DB 059H
+ LD D,000H
+ PUSH BC
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C1
+ PUSH HL
+ EXX
+ POP BC
+ PUSH BC
+ EX DE,HL
+ LD HL,(L107A)
+ LD L,(HL)
+ LD H,000H
+ ADD HL,HL
+ LD A,(L11A4)
+ ADD A,005H
+ ADD A,L
+ LD L,A
+ LD A,000H
+ ADC A,H
+ LD H,A
+ JR C,L7645 ; (+005H)
+ ADD HL,BC
+ JR C,L7645 ; (+002H)
+ PUSH HL
+ ADD HL,DE
+L7645: JP C,L4B26
+ EX DE,HL
+ CALL L74E1
+ PUSH HL
+ EXX
+ POP HL
+ LD BC,(STRST)
+ DEC BC
+ OR A
+ SBC HL,BC
+ PUSH HL
+ EXX
+ POP BC
+ LDDR
+ POP DE
+ RST 018H
+ DB 01AH
+ POP BC
+ PUSH DE
+ EXX
+ POP DE
+ LD H,B
+ LD L,C
+ POP BC
+ LD A,C
+ OR 080H
+ LD (HL),A
+ INC HL
+ DEC DE
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,L11A4
+ LD A,(DE)
+ INC A
+ LD B,A
+ CALL LDHLDE
+ LD DE,(TMPEND)
+ LD A,(DE)
+ LD (HL),A
+ INC HL
+ INC DE
+ ADD A,A
+ LD B,A
+ CALL LDHLDE
+ PUSH HL
+ EXX
+ POP HL
+L7689: XOR A
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L7689 ; (-008H)
+ LD (HL),A
+ EXX
+ POP DE
+ LD A,(L76ED)
+ OR A
+ JR Z,L769E ; (+004H)
+ LD HL,(L8495)
+ RET
+
+L769E: LD HL,(L76EB)
+ PUSH DE
+ JP L74FC
+
+L76A5: LD A,0FFH
+ LD (L76ED),A
+L76AA: CALL L748E
+ LD A,(HL)
+ CALL L5E79
+ CALL L74ED
+ CALL HLFTCH
+ CP 02CH
+ RET NZ
+ INC HL
+ JR L76AA ; (-013H)
+
+L76BD: ADD HL,DE
+ RET NC
+ JR L76E8 ; (+027H)
+
+L76C1: PUSH BC
+ EX DE,HL
+ LD C,L
+ LD A,H
+ LD HL,L0000
+ CALL L76D1
+ LD A,C
+ CALL L76D1
+ POP BC
+ RET
+
+L76D1: OR A
+ JR Z,L76E2 ; (+00eH)
+ LD B,008H
+L76D6: ADD HL,HL
+ JR C,L76E8 ; (+00fH)
+ RLCA
+ JR NC,L76DF ; (+003H)
+ ADD HL,DE
+ JR C,L76E8 ; (+009H)
+L76DF: DJNZ L76D6 ; (-00bH)
+ RET
+
+L76E2: LD A,H
+ LD H,L
+ LD L,000H
+ OR A
+ RET Z
+L76E8: JP 04AECH
+
+L76EB: NOP
+ NOP
+L76ED: NOP
+L76EE: SUB 041H
+ CP 01AH
+ JP NC,L4AE6
+ LD BC,(07921H)
+ LD A,B
+ OR C
+ JR NZ,L770F ; (+012H)
+ CALL L743B
+L7700: PUSH DE
+ PUSH HL
+ LD L,C
+ LD H,B
+ LD B,A
+ LD C,A
+ CALL LDDEHL
+ POP HL
+ LD A,C
+ POP DE
+ JP L7095
+
+L770F: PUSH DE
+ CALL L748E
+ PUSH HL
+ INC B
+ LD DE,L11A4
+ LD HL,(L107A)
+ CALL L74D5
+ LD B,000H
+ LD HL,(L7921)
+ CALL HLFTCH
+ CP QDPC
+ JR Z,L7759 ; (+02fH)
+ CP 028H
+ JR NZ,L7756 ; (+028H)
+L772E: INC HL
+ INC B
+ PUSH BC
+ CALL L748E
+ LD A,C
+ POP DE
+ CP E
+ LD C,E
+ JR NZ,L774B ; (+011H)
+ PUSH DE
+ LD C,B
+ INC C
+ PUSH HL
+ LD HL,(L107A)
+ LD DE,L11A4
+ CALL L794C
+ POP HL
+ POP BC
+ JR Z,L776F ; (+024H)
+L774B: CALL HLFTCH
+ CP 029H
+ JR Z,L7759 ; (+007H)
+ CP 02CH
+ JR Z,L772E ; (-028H)
+L7756: JP L4AE6
+
+L7759: LD HL,(L107A)
+ LD DE,L11A4
+ LD A,(HL)
+ LD (DE),A
+ LD B,A
+L7762: INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ DJNZ L7762 ; (-006H)
+ POP HL
+ POP DE
+ CALL L77AB
+ JR L7700 ; (-06fH)
+
+L776F: LD HL,(L7923)
+ CALL L5E76
+ DEC B
+ JR Z,L7790 ; (+018H)
+ DEC HL
+L7779: PUSH BC
+L777A: CALL L5198
+ CALL L414A
+ JP Z,L4AE6
+ CP 029H
+ JP Z,L4AE6
+ CP 02CH
+ JR NZ,L777A ; (-012H)
+ POP BC
+ DJNZ L7779 ; (-016H)
+ INC HL
+L7790: EX DE,HL
+ POP HL
+ EX (SP),HL
+ EX DE,HL
+ LD BC,(07921H)
+ PUSH BC
+ LD BC,L0000
+ LD (07921H),BC
+ CALL L6E94
+ POP HL
+ LD (L7921),HL
+ POP HL
+ JP HLFTCH
+
+L77AB: PUSH DE
+ JP L743F
+
+L77AF: LD HL,(L1074)
+L77B2: LD DE,L11A4
+ LD A,(HL)
+ OR A
+ RET Z
+ CP 040H
+ JR NC,L77E3 ; (+027H)
+ CP C
+ JR NZ,L77D8 ; (+019H)
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77D6 ; (+012H)
+ LD B,A
+L77C5: INC DE
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77D0 ; (+005H)
+ DJNZ L77C5 ; (-008H)
+ INC HL
+ SCF
+ RET
+
+L77D0: INC HL
+ DJNZ L77D0 ; (-003H)
+ LD A,C
+ JR L77DD ; (+007H)
+
+L77D6: LD A,C
+ DEC HL
+L77D8: AND 00FH
+ INC HL
+ ADD A,(HL)
+ INC HL
+L77DD: LD E,A
+ LD D,000H
+ ADD HL,DE
+ JR L77B2 ; (-031H)
+
+L77E3: CP C
+ JR Z,L77FA ; (+014H)
+ INC HL
+L77E7: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ ADD HL,DE
+ JR L77B2 ; (-03cH)
+
+L77EE: LD A,C
+ SUB B
+ CPL
+ LD C,A
+ LD B,0FFH
+ ADD HL,BC
+ POP BC
+L77F6: DEC HL
+ DEC HL
+ JR L77E7 ; (-013H)
+
+L77FA: LD A,(HL)
+ EXX
+ LD C,A
+ LD B,000H
+ EXX
+ INC HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ POP DE
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77F6 ; (-018H)
+ PUSH BC
+ LD B,A
+ LD C,A
+L7811: INC HL
+ INC DE
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77EE ; (-029H)
+ DJNZ L7811 ; (-008H)
+ INC HL
+ POP BC
+ SCF
+ RET
+
+L781D: CALL L748E
+ SET 6,C
+ PUSH HL
+ CALL L77AF
+ JP C,04AF8H
+ LD (HL),C
+ EX (SP),HL
+ PUSH HL
+ DEC HL
+L782D: CALL L5198
+ OR A
+ JR Z,L7837 ; (+004H)
+ CP 03AH
+ JR NZ,L782D ; (-00aH)
+L7837: POP DE
+ PUSH HL
+ INC HL
+ SBC HL,DE
+ LD A,(L11A4)
+ ADD A,004H
+ LD C,A
+ LD B,000H
+ LD A,L
+ ADD HL,BC
+ LD B,A
+ PUSH HL
+ EXX
+ POP BC
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,L0000
+ ADD HL,SP
+ LD DE,(TMPEND)
+ DEC H
+ OR A
+ SBC HL,DE
+ LD A,00CH
+ JP C,L4B28
+ POP BC
+ POP DE
+ POP HL
+ LD HL,(L107A)
+ PUSH HL
+ ADD HL,BC
+ EX (SP),HL
+ PUSH HL
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ POP HL
+ POP DE
+ LDDR
+ POP DE
+ RST 018H
+ DB 01AH
+ DEC DE
+ POP HL
+ EX (SP),HL
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,L11A4
+ LD A,(DE)
+ LD (HL),A
+ LD B,A
+L7887: INC DE
+ INC HL
+ LD A,(DE)
+ LD (HL),A
+ DJNZ L7887 ; (-006H)
+ INC HL
+ PUSH HL
+ EXX
+ POP HL
+ CALL LDHLDE
+ LD (HL),000H
+ POP HL
+ RET
+
+ PUSH DE
+ CALL L748E
+ POP IX
+ PUSH BC
+ SET 6,C
+ LD DE,(07923H)
+ LD (L7923),HL
+ PUSH DE
+ CALL L77AF
+ JP NC,04B04H
+ LD DE,(07921H)
+ LD (L7921),HL
+ PUSH DE
+ PUSH IX
+ DEC HL
+L78BA: CALL L5198
+ CALL L414A
+ JP Z,L4AE6
+ CP QDPC
+ JR NZ,L78BA ; (-00dH)
+ INC HL
+ POP DE
+ PUSH DE
+ CALL L6E94
+ POP DE
+ LD HL,(L7923)
+ POP BC
+ LD (07921H),BC
+ POP BC
+ LD (07923H),BC
+ EX DE,HL
+ POP BC
+ LD A,C
+ CALL L790B
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ CALL HLFTCH
+ CP 028H
+ RET NZ
+ PUSH DE
+ LD B,001H
+L78EF: PUSH BC
+ CALL L5198
+ POP BC
+ CALL L414D
+ JP Z,L4AE6
+ CP 028H
+ JR NZ,L78FF ; (+001H)
+ INC B
+L78FF: CP 029H
+ JR NZ,L78EF ; (-014H)
+ DJNZ L78EF ; (-016H)
+ INC HL
+ CALL HLFTCH
+ POP DE
+ RET
+
+L790B: CP 003H
+ JR NZ,L7918 ; (+009H)
+L790F: LD A,(L84C7)
+ CP 003H
+ RET Z
+ JP 04AEFH
+
+L7918: LD A,(L84C7)
+ CP 003H
+ RET NZ
+ JP 04AEFH
+
+L7921: NOP
+ NOP
+L7923: NOP
+ NOP
+ PUSH HL
+ CALL L60B5
+ LD A,H
+ OR A
+ JP NZ,04AECH
+ LD A,L
+ CP 008H
+ JP NC,04AECH
+ RST 018H
+ DB 012H
+ POP HL
+ JR C,L7947 ; (+00eH)
+ JR Z,L7947 ; (+00cH)
+ LD DE,0FFFFH
+L793E: CALL L5E97
+ LD A,005H
+ LD (L84C7),A
+ RET
+
+L7947: LD E,A
+ LD D,000H
+ JR L793E ; (-00eH)
+
+L794C: LD A,(DE)
+ CP (HL)
+ RET NZ
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD B,C
+L7953: LD A,(DE)
+ CP (HL)
+ JR NZ,L795C ; (+005H)
+ INC DE
+ INC HL
+ DJNZ L7953 ; (-008H)
+ XOR A
+L795C: POP HL
+ POP DE
+ POP BC
+ RET
+
+L7960: PUSH HL
+ LD B,005H
+ CALL ?CLRHL
+ POP HL
+ RET
+
+L7968: CALL L7918
+L796B: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ LD A,(HL)
+ XOR 080H
+ LD (HL),A
+ DEC HL
+ RET
+
+L7975: CALL L7918
+ LD C,A
+ LD A,080H
+ JP L7988
+
+L797E: LD A,(L84C7)
+ CP 003H
+ JP Z,L79D2
+ LD C,A
+ XOR A
+L7988: LD (L7D82),HL
+ PUSH DE
+ PUSH HL
+ LD (07D85H),SP
+ INC HL
+ INC DE
+ LD B,(HL)
+ XOR (HL)
+ EX DE,HL
+ XOR (HL)
+ DEC HL
+ DEC DE
+ EX DE,HL
+ RLCA
+ LD A,B
+ LD (L7D84),A
+ JP C,L7A93
+ XOR A
+ CP (HL)
+ JP Z,L79C7
+ LD A,(DE)
+ OR A
+ JR Z,L79AF ; (+004H)
+ SUB (HL)
+ JP L7AD6
+
+L79AF: LD SP,(07D85H)
+ POP HL
+ POP DE
+ EI
+ LD A,(HL)
+ OR A
+ JP Z,L7E7F
+ LD A,(L7D84)
+ AND 080H
+ INC HL
+ RES 7,(HL)
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ RET
+
+L79C7: LD B,000H
+ LD A,005H
+ LD C,A
+ EX DE,HL
+ LDIR
+ JP L79AF
+
+L79D2: LD B,(HL)
+ LD A,(DE)
+ ADD A,B
+ JP C,04AF2H
+ LD C,A
+ PUSH DE
+ PUSH HL
+ PUSH DE
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ EX DE,HL
+ LD HL,(L107A)
+ CALL L74D5
+ EX (SP),HL
+ LD B,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ EX DE,HL
+ POP HL
+ CALL L74D5
+ LD A,C
+ LD DE,(TMPEND)
+ LD BC,(STRST)
+ EX DE,HL
+ OR A
+ SBC HL,BC
+ EX DE,HL
+ LD (L107A),HL
+ POP HL
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ DEC HL
+ DEC HL
+ POP DE
+ RET
+
+L7A15: LD A,(L84C7)
+ CP 003H
+ JR NZ,L7A50 ; (+034H)
+ PUSH DE
+ PUSH HL
+ LD A,(DE)
+ OR (HL)
+ JR Z,L7A4D ; (+02bH)
+ LD A,(DE)
+ CP (HL)
+ JR C,L7A27 ; (+001H)
+ LD A,(HL)
+L7A27: OR A
+ JR Z,L7A47 ; (+01dH)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ EX DE,HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ ADD HL,BC
+ EX DE,HL
+ LD B,A
+ OR A
+ JR Z,L7A4D ; (+00eH)
+L7A3F: LD A,(DE)
+ CP (HL)
+ JR NZ,L7A4D ; (+00aH)
+ INC DE
+ INC HL
+ DJNZ L7A3F ; (-008H)
+L7A47: POP DE
+ POP HL
+ LD A,(DE)
+ CP (HL)
+ EX DE,HL
+ RET
+
+L7A4D: POP HL
+ POP DE
+ RET
+
+L7A50: INC DE
+ INC HL
+ LD A,(DE)
+ DEC DE
+ XOR (HL)
+ RLCA
+ JR NC,L7A5C ; (+004H)
+ LD A,(HL)
+ DEC HL
+ RLCA
+ RET
+
+L7A5C: LD A,(HL)
+ DEC HL
+ RLCA
+ JR NC,L7A67 ; (+006H)
+ CALL L7A67
+ RET Z
+ CCF
+ RET
+
+L7A67: PUSH DE
+ PUSH HL
+ EX DE,HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L7A88 ; (+01aH)
+ INC DE
+ INC HL
+ LD A,(HL)
+ OR 080H
+ LD B,A
+ LD A,(DE)
+ OR 080H
+ CP B
+ JR NZ,L7A88 ; (+00eH)
+ LD A,(L84C7)
+ LD B,A
+ DEC B
+ DEC B
+L7A80: INC DE
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L7A88 ; (+002H)
+ DJNZ L7A80 ; (-008H)
+L7A88: POP HL
+ POP DE
+ RET
+
+L7A8B: POP HL
+ PUSH HL
+ CALL L7960
+ JP L79AF
+
+L7A93: CALL L7A67
+ JR Z,L7A8B ; (-00dH)
+ JR NC,L7AA3 ; (+009H)
+ LD A,(L7D84)
+ XOR 080H
+ LD (L7D84),A
+ SCF
+L7AA3: EX AF,AF'
+ LD A,(HL)
+ OR A
+ JP Z,L79C7
+ LD A,(DE)
+ OR A
+ JP Z,L79AF
+ SUB (HL)
+ JR C,L7AB8 ; (+007H)
+ CP 020H
+ JP NC,L79C7
+ JR L7ABF ; (+007H)
+
+L7AB8: NEG
+ CP 020H
+ JP NC,L79AF
+L7ABF: EX AF,AF'
+ JR C,L7AC3 ; (+001H)
+ EX DE,HL
+L7AC3: EX AF,AF'
+ JP L7B5D
+
+L7AC7: LD SP,(07D85H)
+ EI
+ POP HL
+ POP DE
+ LD A,(07D8CH)
+ OR A
+ JP Z,04AE9H
+ RET
+
+L7AD6: JR NC,L7AE2 ; (+00aH)
+ NEG
+ CP 020H
+ JP NC,L79AF
+ EX DE,HL
+ JR L7AE7 ; (+005H)
+
+L7AE2: CP 020H
+ JP NC,L79C7
+L7AE7: CALL L7B1D
+ LD A,H
+ EXX
+ ADC A,H
+ EXX
+ LD H,A
+ LD A,L
+ EXX
+ ADC A,L
+ EXX
+ LD L,A
+ LD A,D
+ EXX
+ ADC A,D
+ EXX
+ LD D,A
+ LD A,E
+ EXX
+ ADC A,E
+ EXX
+ JR NC,L7B0A ; (+00bH)
+ RRA
+ RR D
+ RR L
+ RR H
+ INC C
+ JP Z,L7AC7
+L7B0A: LD E,A
+ LD A,C
+ EXX
+ LD BC,00005H
+ LD HL,(L7D82)
+ LD (HL),A
+ ADD HL,BC
+ DI
+ LD SP,HL
+ EXX
+ PUSH HL
+ PUSH DE
+ JP L79AF
+
+L7B1D: DI
+ LD (07D87H),SP
+ EX AF,AF'
+ INC HL
+ LD SP,HL
+ EXX
+ POP DE
+ SET 7,E
+ POP HL
+ OR A
+L7B2B: EX AF,AF'
+ CP 008H
+ JR C,L7B3C ; (+00cH)
+ SUB 008H
+ EX AF,AF'
+ RL H
+ LD H,L
+ LD L,D
+ LD D,E
+ LD E,000H
+ JR L7B2B ; (-011H)
+
+L7B3C: OR A
+ JR Z,L7B4D ; (+00eH)
+L7B3F: EX AF,AF'
+ OR A
+ RR E
+ RR D
+ RR L
+ RR H
+ EX AF,AF'
+ DEC A
+ JR NZ,L7B3F ; (-00eH)
+L7B4D: EXX
+ EX DE,HL
+ LD C,(HL)
+ INC HL
+ LD SP,HL
+ POP DE
+ SET 7,E
+ POP HL
+ EX AF,AF'
+ LD SP,(07D87H)
+ EI
+ RET
+
+L7B5D: CP 020H
+ JP NC,L79AF
+ CALL L7B1D
+ LD A,H
+ EXX
+ SBC A,H
+ EXX
+ LD H,A
+ LD A,L
+ EXX
+ SBC A,L
+ EXX
+ LD L,A
+ LD A,D
+ EXX
+ SBC A,D
+ EXX
+ LD D,A
+ LD A,E
+ EXX
+ SBC A,E
+ EXX
+L7B78: OR A
+ JR Z,L7B91 ; (+016H)
+L7B7B: BIT 7,A
+ JR NZ,L7B8D ; (+00eH)
+ RL H
+ RL L
+ RL D
+ RLA
+ DEC C
+ JP NZ,L7B7B
+ JP L7A8B
+
+L7B8D: LD E,A
+ JP L7B0A
+
+L7B91: LD A,C
+ SUB 008H
+ LD C,A
+ LD A,D
+ LD D,L
+ LD L,H
+ LD H,000H
+ JR Z,L7B9E ; (+002H)
+ JR NC,L7B78 ; (-026H)
+L7B9E: JP L7A8B
+
+L7BA1: LD C,A
+L7BA2: INC HL
+ INC DE
+ LD A,(DE)
+ XOR (HL)
+ LD (L7D84),A
+ DEC HL
+ DEC DE
+ RET
+
+L7BAC: CALL L7918
+ CALL L7BA1
+ PUSH DE
+ PUSH HL
+ LD (07D85H),SP
+ LD A,(HL)
+ OR A
+ JP Z,L7A8B
+ LD A,(DE)
+ OR A
+ JP Z,L7A8B
+ INC DE
+ PUSH DE
+ POP IX
+ ADD A,(HL)
+ LD E,A
+ LD A,000H
+ ADC A,A
+ LD D,A
+ LD (07D8AH),DE
+ INC HL
+ XOR A
+ LD (L7D89),A
+ LD D,(HL)
+ SET 7,D
+ INC HL
+ LD E,(HL)
+ INC HL
+ PUSH HL
+ LD H,A
+ LD L,A
+ EXX
+ POP HL
+ LD D,(HL)
+ INC HL
+ LD E,(HL)
+ LD B,A
+ LD C,A
+ LD H,A
+ LD L,A
+ EXX
+ LD A,(IX+000H)
+ OR 080H
+ LD C,004H
+L7BEF: LD B,008H
+ OR A
+ JP Z,L7C84
+L7BF5: RLCA
+ JR NC,L7C0A ; (+012H)
+ EX AF,AF'
+ EXX
+ LD A,C
+ ADD A,B
+ LD C,A
+ ADC HL,DE
+ EXX
+ ADC HL,DE
+ JR NC,L7C09 ; (+005H)
+ LD A,001H
+ LD (L7D89),A
+L7C09: EX AF,AF'
+L7C0A: SRL D
+ RR E
+ EXX
+ RR D
+ RR E
+ RR B
+ EXX
+ DJNZ L7BF5 ; (-023H)
+L7C18: INC IX
+ LD A,(IX+000H)
+ DEC C
+ JR NZ,L7BEF ; (-031H)
+ EXX
+ LD A,(L7D89)
+ OR A
+ JR Z,L7C3D ; (+016H)
+ LD DE,(07D8AH)
+ INC DE
+ LD (07D8AH),DE
+ EXX
+ SCF
+ RR H
+ RR L
+ EXX
+ RR H
+ RR L
+ RR C
+L7C3D: BIT 7,C
+ JR Z,L7C5B ; (+01aH)
+ LD DE,00001H
+ ADD HL,DE
+ EXX
+ LD DE,L0000
+ ADC HL,DE
+ EXX
+ JR NC,L7C5B ; (+00dH)
+ LD DE,(07D8AH)
+ INC DE
+ LD (07D8AH),DE
+ EXX
+ LD H,080H
+ EXX
+L7C5B: POP IX
+ PUSH IX
+ LD (IX+004H),L
+ LD (IX+003H),H
+ EXX
+ LD (IX+002H),L
+ LD (IX+001H),H
+ LD HL,(07D8AH)
+ OR A
+ LD DE,L0081
+ SBC HL,DE
+ LD A,H
+ ADD A,000H
+ JP M,L7C90
+ JP NZ,L7AC7
+ LD (IX+000H),L
+ JP L79AF
+
+L7C84: LD A,E
+ EXX
+ LD B,E
+ LD E,D
+ LD D,A
+ EXX
+ LD E,D
+ LD D,000H
+ JP L7C18
+
+L7C90: LD SP,(07D85H)
+ JP L7A8B
+
+L7C97: CALL L7918
+ CALL L7BA1
+ PUSH DE
+ PUSH HL
+ LD (07D85H),SP
+ LD A,(DE)
+ OR A
+ JP Z,04AE9H
+ EX AF,AF'
+ LD A,(HL)
+ OR A
+ JP Z,L7A8B
+ EXX
+ ADD A,081H
+ LD B,A
+ LD A,000H
+ ADC A,A
+ EX AF,AF'
+ LD C,A
+ LD A,B
+ SUB C
+ LD C,A
+ EX AF,AF'
+ LD B,A
+ EX AF,AF'
+ LD A,B
+ SBC A,000H
+ JP C,L7C90
+ JP NZ,L7AC7
+ LD A,C
+ PUSH AF
+ EXX
+ INC DE
+ INC HL
+ LD B,(HL)
+ SET 7,B
+ INC HL
+ LD C,(HL)
+ INC HL
+ PUSH HL
+ EX DE,HL
+ LD D,(HL)
+ SET 7,D
+ INC HL
+ LD E,(HL)
+ INC HL
+ PUSH HL
+ LD H,B
+ LD L,C
+ EXX
+ POP HL
+ LD D,(HL)
+ INC HL
+ LD E,(HL)
+ POP HL
+ LD A,(HL)
+ INC HL
+ LD L,(HL)
+ LD H,A
+ EXX
+ LD C,005H
+L7CE9: LD B,008H
+ XOR A
+L7CEC: BIT 7,H
+ JR NZ,L7D00 ; (+010H)
+ OR A
+L7CF1: RLA
+ EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ DJNZ L7CEC ; (-00dH)
+ PUSH AF
+ DEC C
+ JR NZ,L7CE9 ; (-014H)
+ JP L7D3A
+
+L7D00: OR A
+ EXX
+ SBC HL,DE
+ EXX
+ SBC HL,DE
+ CCF
+ JR C,L7CF1 ; (-019H)
+ EXX
+ ADD HL,DE
+ EXX
+ ADC HL,DE
+ OR A
+ RLA
+ EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ DJNZ L7D1F ; (+007H)
+ PUSH AF
+ LD B,008H
+ DEC C
+ JP Z,L7D3A
+L7D1F: EXX
+ OR A
+ SBC HL,DE
+ EXX
+ SBC HL,DE
+ SCF
+ RLA
+ DJNZ L7D30 ; (+006H)
+ PUSH AF
+ LD B,008H
+ DEC C
+ JR Z,L7D3A ; (+00aH)
+L7D30: EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ JR C,L7D1F ; (-018H)
+ JP L7CEC
+
+L7D3A: POP AF
+ LD H,A
+ EXX
+ POP AF
+ LD E,A
+ POP AF
+ LD D,A
+ POP AF
+ LD C,A
+ POP AF
+ LD B,A
+ POP AF
+L7D46: BIT 7,B
+ JR NZ,L7D5D ; (+013H)
+ EXX
+ SLA H
+ EXX
+ RL E
+ RL D
+ RL C
+ RL B
+ DEC A
+ JP NZ,L7D46
+ JP L7A8B
+
+L7D5D: EXX
+ RL H
+ EXX
+ JR NC,L7D74 ; (+011H)
+ LD HL,00001H
+ ADD HL,DE
+ EX DE,HL
+ LD HL,L0000
+ ADC HL,BC
+ LD B,H
+ LD C,L
+ JR NC,L7D74 ; (+003H)
+ LD B,080H
+ INC A
+L7D74: POP HL
+ PUSH HL
+ LD (HL),A
+ INC HL
+ LD (HL),B
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ JP L79AF
+
+L7D82: NOP
+ NOP
+L7D84: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L7D89: NOP
+ NOP
+ NOP
+ NOP
+L7D8D: INC HL
+ BIT 7,(HL)
+ DEC HL
+ RET
+
+L7D92: INC (HL)
+ RET NZ
+ JP 04AE9H
+
+L7D97: LD A,(HL)
+ OR A
+ RET Z
+ DEC (HL)
+ RET NZ
+ JP L7960
+
+L7D9F: PUSH HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ LD HL,(MEMMAX)
+ DEC HL
+ SBC HL,DE
+ JP C,04AF5H
+ POP HL
+ RET
+
+L7DB1: PUSH HL
+ LD (L846A),HL
+ CALL L7D9F
+ EX DE,HL
+ LD (L846C),HL
+ CALL L7D9F
+ EX DE,HL
+ LD (L846E),HL
+ CALL L7D9F
+ LD (08470H),DE
+ POP HL
+ RET
+
+L7DCC: CALL L7918
+ EX DE,HL
+ LD A,(HL)
+ OR A
+ JP Z,L7E2E
+ EX DE,HL
+ LD A,(HL)
+ OR A
+ JP Z,L7960
+ CALL L7D8D
+ JR Z,L7E08 ; (+028H)
+ CALL L796B
+ EX DE,HL
+ PUSH DE
+ PUSH HL
+ LD DE,L84D0
+ CALL L5E91
+ LD HL,L84D0
+ CALL L608B
+ LD A,(HL)
+ OR A
+ JP NZ,04AECH
+ POP HL
+ PUSH HL
+ CALL L60B5
+ BIT 0,L
+ POP DE
+ POP HL
+ JR Z,L7E08 ; (+006H)
+ CALL L7E08
+ JP L796B
+
+L7E08: EX DE,HL
+ LD A,(HL)
+ OR A
+ JR Z,L7E2E ; (+021H)
+ CALL L7D8D
+ JR Z,L7E34 ; (+022H)
+ CALL L796B
+ CALL L7E34
+ PUSH DE
+ PUSH HL
+ LD DE,L84D0
+ CALL L5E8E
+ LD HL,L84D0
+ POP DE
+ CALL L7C97
+ PUSH DE
+ CALL L5E91
+ POP HL
+ POP DE
+ RET
+
+L7E2E: PUSH DE
+ CALL L5E8E
+ POP HL
+ RET
+
+L7E34: PUSH DE
+ LD DE,L84D0
+ CALL L5E91
+ POP HL
+ CALL L8319
+ LD DE,L84D0
+ CALL L7BAC
+ JP L81F5
+
+L7E48: CALL L7918
+ PUSH DE
+ PUSH HL
+ CALL L60B5
+ LD A,L
+ CPL
+ LD E,A
+ LD A,H
+ CPL
+ LD D,A
+ JR L7E79 ; (+021H)
+
+L7E58: LD A,0A2H
+ LD BC,0B23EH
+ LD BC,0AA3EH
+ LD (L7E74),A
+ INC A
+ LD (L7E77),A
+ CALL L7918
+ PUSH DE
+ PUSH HL
+ CALL L60B5
+ EX DE,HL
+ CALL L60B5
+ LD A,H
+L7E74: AND D
+ LD D,A
+ LD A,L
+L7E77: AND E
+ LD E,A
+L7E79: POP HL
+ CALL L5E97
+ POP DE
+ RET
+
+L7E7F: INC HL
+ RES 7,(HL)
+ DEC HL
+ RET
+
+ CALL L7D8D
+ JP Z,L604D
+ CALL L7EA9
+ CALL L604D
+ LD DE,L84D0
+ CALL L7A15
+ RET Z
+L7E97: LD DE,L6110
+ JP L7975
+
+L7E9D: LD DE,L6110
+ JP L797E
+
+L7EA3: LD DE,L6110
+ JP L7A15
+
+L7EA9: PUSH HL
+ PUSH DE
+ LD DE,L84D0
+ CALL L5E91
+ POP DE
+ POP HL
+ RET
+
+L7EB4: CALL L604D
+ EX DE,HL
+ CALL L604D
+ EX DE,HL
+ CALL L7EA9
+ CALL L7C97
+ CALL L604D
+ CALL L7BAC
+ PUSH DE
+ LD DE,L84D0
+ CALL L7975
+ POP DE
+ JP L796B
+
+L7ED3: CALL L604D
+ EX DE,HL
+ CALL L604D
+ EX DE,HL
+ CALL L7C97
+ JP L604D
+
+ LD A,(HL)
+ OR A
+ RET Z
+ CALL L7D8D
+ JP NZ,04AECH
+ CALL L8319
+ CALL L7D97
+ JP L81F5
+
+L7EF3: PUSH HL
+ EX DE,HL
+ CALL L5E8E
+ POP HL
+ POP BC
+ RET
+
+L7EFB: LD A,(HL)
+ LD C,H
+L7EFD: ADD A,B
+ DEC HL
+ PUSH BC
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ PUSH AF
+ CALL L7F10
+ POP AF
+ POP BC
+ RLCA
+ RET NC
+ JP L796B
+
+L7F10: CALL L7EA3
+ JR C,L7F33 ; (+01eH)
+ CALL L7D9F
+ PUSH DE
+ PUSH HL
+ CALL L5E91
+ POP DE
+ PUSH DE
+ CALL L5E8E
+ POP HL
+ POP DE
+ CALL L7C97
+ CALL L7F33
+ LD DE,0818DH
+ CALL L7975
+ JP L7E7F
+
+L7F33: LD A,0FFH
+ LD (L80A9),A
+ LD DE,L7EFB
+ CALL L7A15
+ JR C,07F8FH ; (+04fH)
+ LD DE,L7EFD
+ CALL L7A15
+ PUSH AF
+ CALL L7D9F
+ POP AF
+ PUSH HL
+ PUSH DE
+ CALL L5E91
+ POP HL
+ JR C,L7F67 ; (+014H)
+ CALL L7E9D
+ EX (SP),HL
+ CALL L7975
+ POP DE
+ CALL L7C97
+ CALL 07F8FH
+ LD DE,08192H
+ JP L797E
+
+L7F67: LD DE,L7F8A
+ CALL L7BAC
+ CALL L7E9D
+ EX (SP),HL
+ LD DE,L7F8A
+ CALL L7975
+ POP DE
+ CALL L7C97
+ CALL 07F8FH
+ CALL L7D92
+ LD DE,08192H
+ CALL L797E
+ JP L7D97
+
+L7F8A: LD A,A
+ LD D,H
+ INC DE
+ CALL Z,0C5D0H
+ PUSH HL
+ CALL L7DB1
+ POP HL
+ PUSH HL
+ PUSH DE
+ CALL L5E91
+ POP HL
+ LD E,L
+ LD D,H
+ CALL L7BAC
+ LD DE,(0846EH)
+ POP HL
+ PUSH HL
+ CALL L5E91
+ LD A,(L84C7)
+ DEC A
+ CP 004H
+ LD B,A
+ LD HL,08130H
+ JP Z,L8036
+ LD B,00AH
+ JP L8036
+
+L7FBB: PUSH BC
+ LD A,(HL)
+ OR A
+ JP Z,L7EF3
+ LD DE,0818DH
+ CALL L7975
+ CALL L796B
+ POP BC
+L7FCB: PUSH BC
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ AND 080H
+ CPL
+ LD (L80A9),A
+ DEC HL
+ LD DE,L8183
+ PUSH HL
+ CALL L7A15
+ JR C,L7FE9 ; (+009H)
+ CALL L7C97
+ CALL L608B
+ CALL L7BAC
+L7FE9: LD DE,08188H
+ CALL L7A15
+ JR C,L7FFC ; (+00bH)
+ CALL L7975
+ LD A,(L80A9)
+ XOR 080H
+ LD (L80A9),A
+L7FFC: LD DE,0818DH
+ CALL L7A15
+ JR C,L800D ; (+009H)
+ LD DE,08188H
+ CALL L7975
+ CALL L7E7F
+L800D: CALL L7DB1
+ POP HL
+ PUSH DE
+ LD DE,08192H
+ CALL L7A15
+ JR NC,L807F ; (+065H)
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E91
+ POP HL
+ LD E,L
+ LD D,H
+ CALL L7BAC
+ LD DE,(0846EH)
+ POP HL
+ PUSH HL
+ CALL L5E91
+ LD A,(L84C7)
+ LD B,A
+ LD HL,L80E0
+L8036: PUSH BC
+ PUSH HL
+ LD HL,(L846E)
+ LD DE,(08470H)
+ CALL L7BAC
+ POP HL
+ PUSH HL
+ LD DE,(0846CH)
+ PUSH DE
+ CALL L5E91
+ POP HL
+ LD DE,(0846EH)
+ CALL L7BAC
+ EX DE,HL
+ LD HL,(L846A)
+ CALL L797E
+ POP HL
+ LD DE,00005H
+ ADD HL,DE
+ POP BC
+ DJNZ L8036 ; (-02dH)
+ POP HL
+ POP BC
+ LD A,(L80A9)
+ INC HL
+ XOR (HL)
+ CPL
+ LD (HL),A
+ DEC HL
+ LD A,(L84C7)
+ CP 008H
+ LD A,(HL)
+ JR Z,L807B ; (+006H)
+ CP 05CH
+L8077: RET NC
+ JP L7960
+
+L807B: CP 04DH
+ JR L8077 ; (-008H)
+
+L807F: LD DE,0818DH
+ CALL L7975
+ CALL L7E7F
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E91
+L808E: POP HL
+ LD E,L
+ LD D,H
+ CALL L7BAC
+ LD DE,(0846EH)
+ CALL L5E8E
+L809B: POP DE
+ PUSH DE
+ CALL L5E8E
+ LD A,(L84C7)
+ LD B,A
+ LD HL,L8108
+ JR L8036 ; (-073H)
+
+L80A9: NOP
+ PUSH BC
+ PUSH HL
+ CALL L7D9F
+ EX DE,HL
+ LD (L8472),HL
+ CALL L7D9F
+ LD (08474H),DE
+ POP HL
+ PUSH HL
+ CALL L5E91
+ LD HL,(L8472)
+ EX DE,HL
+ POP HL
+ PUSH HL
+ CALL L5E91
+ LD HL,(08474H)
+L80CB: CALL L7FCB
+ POP DE
+ PUSH DE
+ CALL L5E91
+ LD HL,(L8472)
+ CALL L7FBB
+ EX DE,HL
+ POP HL
+ CALL L7C97
+ POP BC
+ RET
+
+L80E0: LD A,(HL)
+L80E1: XOR D
+ XOR D
+ XOR D
+ XOR E
+ LD A,D
+ EX AF,AF'
+ ADC A,B
+ ADC A,B
+ ADC A,C
+ LD (HL),H
+ RET NC
+ DEC C
+ NOP
+ RET NC
+ LD L,(HL)
+ JR C,L80E1 ; (-011H)
+ DEC E
+ DEC HL
+ LD H,A
+ RST 010H
+L80F6: LD (L402B),A
+ LD H,B
+ JR NC,L808E ; (-06eH)
+ JR NC,L809B ; (-063H)
+ LD E,B
+ RST 010H
+ CCF
+ SBC A,A
+ LD A,(04A50H)
+ SUB (HL)
+ DEC SP
+ ADD A,D
+L8108: ADD A,B
+ ADD A,B
+ NOP
+ NOP
+ NOP
+ LD A,H
+ LD HL,(0AAAAH)
+ XOR E
+ LD (HL),A
+ OR (HL)
+ DEC BC
+ LD H,B
+ OR (HL)
+ LD (HL),C
+ LD D,B
+ DEC C
+ NOP
+ RET NC
+ LD L,E
+ SUB E
+ JP P,0BC7DH
+ LD H,H
+ RRCA
+ HALT
+ RST 000H
+L8125: ADD A,B
+ LD E,H
+ RET
+
+L8128: RES 4,L
+ LD B,(HL)
+ LD D,H
+ LD D,A
+ CCF
+ SBC A,A
+ LD A,(0AA7FH)
+ XOR D
+ XOR D
+ XOR E
+ LD A,(HL)
+ LD C,H
+ CALL Z,0CDCCH
+ LD A,(HL)
+ SUB D
+ LD C,C
+ INC H
+ SUB D
+ LD A,L
+ LD H,E
+ ADC A,(HL)
+ JR C,L8128 ; (-01cH)
+ LD A,L
+ CP D
+ LD L,08BH
+ AND E
+ LD A,L
+ DEC E
+ ADC A,C
+ RET C
+ SBC A,(HL)
+ LD A,L
+ ADC A,B
+ ADC A,B
+ ADC A,B
+ ADC A,C
+ LD A,H
+ LD (HL),B
+ RET P
+ RET P
+ POP AF
+ LD A,H
+ RST 010H
+ SUB H
+ DEC (HL)
+ PUSH HL
+ LD A,H
+ LD B,E
+ INC C
+ JR NC,L8125 ; (-03dH)
+ LD DE,L0000
+ LD A,(HL)
+ OR A
+ JR Z,L8171 ; (+008H)
+ CALL L7D8D
+ INC DE
+ JR Z,L8171 ; (+002H)
+ DEC DE
+ DEC DE
+L8171: CALL L5E97
+ RET
+
+L8175: LD DE,08197H
+ JR L817D ; (+003H)
+
+ LD DE,08188H
+L817D: PUSH BC
+ CALL L7BAC
+ POP BC
+ RET
+
+L8183: ADD A,E
+ LD C,C
+ RRCA
+ JP C,082A2H
+ LD C,C
+ RRCA
+ JP C,L81A2
+ LD C,C
+ RRCA
+ JP C,080A2H
+ LD C,C
+ RRCA
+ JP C,L7BA2
+ LD C,FDPC
+ DEC (HL)
+ INC DE
+ PUSH HL
+ CALL L60B5
+ LD A,000H
+L81A2: CP 040H
+ LD A,(HL)
+ CALL NZ,BREAKX
+ LD E,A
+ LD D,000H
+ POP HL
+ CALL L5E97
+ RET
+
+ LD A,(HL)
+ OR A
+ JR Z,L81B9 ; (+005H)
+ CALL L7D8D
+ JR Z,L81C4 ; (+00bH)
+L81B9: PUSH HL
+ LD HL,L4193
+ LD (L81F3),HL
+ POP HL
+ XOR A
+ LD R,A
+L81C4: PUSH BC
+ LD DE,(081F3H)
+ LD A,R
+ XOR D
+ RRC A
+ RRC A
+ RRC A
+ LD D,A
+ LD A,R
+ XOR E
+ RLC A
+ RLC A
+ LD E,D
+ LD D,A
+ LD (081F3H),DE
+ PUSH HL
+ INC HL
+ RES 7,D
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ INC HL
+ LD A,R
+ LD (HL),A
+ POP HL
+ LD (HL),081H
+ CALL L7E97
+ POP BC
+ RET
+
+L81F3: SUB E
+ LD B,C
+L81F5: PUSH BC
+ LD A,(HL)
+ OR A
+ JP Z,L7EF3
+ INC HL
+ LD A,(HL)
+ LD (L830B),A
+ RES 7,(HL)
+ DEC HL
+ LD DE,L8460
+ CALL L7BAC
+ PUSH HL
+ CALL L7D9F
+ PUSH DE
+ CALL L5E91
+ POP HL
+ CALL L604D
+ PUSH HL
+ CALL L60B5
+ XOR A
+ CP H
+ JP NZ,04AE9H
+ LD A,L
+ LD (L830A),A
+ POP DE
+ POP HL
+ PUSH HL
+ CALL L7975
+ PUSH DE
+ PUSH HL
+ CALL L5E8E
+ POP DE
+ POP HL
+ CALL L7D97
+ EX DE,HL
+ XOR A
+ LD B,008H
+L8236: PUSH BC
+ PUSH AF
+ CALL L7A15
+ JR C,L8244 ; (+007H)
+ CALL L7975
+ POP AF
+ SET 7,A
+ PUSH AF
+L8244: POP AF
+ RLC A
+ EX DE,HL
+ PUSH AF
+ CALL L7D97
+ POP AF
+ EX DE,HL
+ POP BC
+ DJNZ L8236 ; (-01bH)
+ LD (L830C),A
+ PUSH DE
+ LD DE,L8456
+ LD A,(L84C7)
+ BIT 3,A
+ JR NZ,L8262 ; (+003H)
+ LD DE,L845B
+L8262: CALL L7BAC
+ POP DE
+ PUSH DE
+ CALL L5E91
+ POP HL
+ LD A,(L84C7)
+ BIT 3,A
+ JP Z,L82FA
+ CALL L7D92
+ LD DE,L610B
+ CALL L797E
+ CALL L7D97
+ POP DE
+ PUSH DE
+ CALL L7BAC
+ LD DE,L610B
+ CALL L7D97
+ CALL L797E
+ CALL L7D92
+ POP DE
+ PUSH DE
+ CALL L7BAC
+ LD DE,L8451
+ CALL L7BAC
+ CALL L7D92
+ CALL L7E9D
+ CALL L7D97
+ POP DE
+ PUSH DE
+ CALL L7BAC
+ CALL L7E9D
+ POP DE
+ PUSH DE
+ CALL L7BAC
+L82B1: CALL L7E9D
+ EX (SP),HL
+ EX DE,HL
+ PUSH DE
+ CALL L5E8E
+ POP HL
+ LD DE,L8401
+ LD A,(L830C)
+ LD B,008H
+L82C3: RLC A
+ JR NC,L82CE ; (+007H)
+ PUSH AF
+ PUSH BC
+ CALL L7BAC
+ POP BC
+ POP AF
+L82CE: INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ DJNZ L82C3 ; (-012H)
+ LD A,(L830A)
+ ADD A,(HL)
+ JP C,04AE9H
+ LD (HL),A
+ POP DE
+ CALL L7BAC
+ POP BC
+ LD A,(L830B)
+ RLC A
+ RET NC
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ CALL L5E91
+ POP DE
+ PUSH DE
+ CALL L5E8E
+ POP HL
+ POP DE
+ CALL L7C97
+ POP BC
+ RET
+
+L82FA: POP DE
+ PUSH DE
+ CALL L7BAC
+ LD A,(HL)
+ OR A
+ CALL NZ,L7D97
+ CALL L797E
+ JP L82B1
+
+L830A: NOP
+L830B: NOP
+L830C: NOP
+ PUSH BC
+ CALL L8319
+ LD DE,L83F2
+ CALL L7BAC
+ POP BC
+ RET
+
+L8319: PUSH BC
+ CALL L7D8D
+ JP NZ,04AECH
+ LD A,(HL)
+ OR A
+ JP Z,04AECH
+ SUB 081H
+ LD (L83F1),A
+ LD (HL),081H
+ XOR A
+ LD B,008H
+ LD DE,L8401
+L8332: PUSH BC
+ PUSH AF
+ CALL L7A15
+ JR C,L8348 ; (+00fH)
+ PUSH HL
+ LD HL,00028H
+ ADD HL,DE
+ EX DE,HL
+ EX (SP),HL
+ CALL L7BAC
+ POP DE
+ POP AF
+ SET 7,A
+ PUSH AF
+L8348: POP AF
+ RLC A
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ POP BC
+ DJNZ L8332 ; (-021H)
+ DB 022H
+ LD L,D
+ ADD A,H
+ CALL L7D9F
+ EX DE,HL
+ LD E,A
+ LD D,000H
+ CALL L5E97
+ LD A,(HL)
+ OR A
+ JR Z,L8367 ; (+003H)
+ SUB 008H
+ LD (HL),A
+L8367: LD A,(L83F1)
+ CP 080H
+ JR C,L8370 ; (+002H)
+ NEG
+L8370: PUSH HL
+ CALL L7D9F
+ EX DE,HL
+ LD (L846C),HL
+ LD E,A
+ LD D,000H
+ CALL L5E97
+ LD A,(L83F1)
+ AND 080H
+ INC HL
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ EX DE,HL
+ POP HL
+ CALL L797E
+ LD A,(L84C7)
+ LD DE,08465H
+ CP 005H
+ JR Z,L8399 ; (+003H)
+ LD DE,L8456
+L8399: CALL L7BAC
+ PUSH HL
+ LD DE,(0846CH)
+ LD HL,(L846A)
+ PUSH HL
+ PUSH DE
+ CALL L5E91
+ POP HL
+ CALL L7E9D
+ EX (SP),HL
+ CALL L7975
+ POP DE
+ CALL L7C97
+ PUSH DE
+ CALL L5E91
+ POP HL
+ PUSH DE
+ LD E,L
+ LD D,H
+ CALL L7BAC
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E91
+ POP HL
+ LD DE,L83FC
+ CALL L797E
+ EX DE,HL
+ POP HL
+ CALL L7BAC
+ LD DE,L610B
+ CALL L7D92
+ CALL L797E
+ CALL L7D97
+ EX DE,HL
+ LD HL,(L846A)
+ CALL L7BAC
+ LD DE,L83F7
+ CALL L7BAC
+ POP DE
+ CALL L797E
+ POP BC
+ RET
+
+L83F1: NOP
+L83F2: LD A,A
+ LD E,(HL)
+ LD E,E
+ RET C
+ XOR C
+L83F7: LD A,A
+ LD C,H
+ CALL Z,0CDCCH
+L83FC: ADD A,C
+ LD D,L
+ LD D,L
+ LD D,L
+ LD D,(HL)
+L8401: ADD A,C
+ DEC (HL)
+ INC B
+ DI
+ INC (HL)
+ ADD A,C
+ JR L8440 ; (+037H)
+
+ RET P
+ LD D,D
+ ADD A,C
+ DEC BC
+L840D: SUB L
+ POP BC
+ CALL PO,00581H
+ XOR D
+ JP 08168H
+
+ LD (BC),A
+ CALL 09986H
+ ADD A,C
+ LD BC,0D164H
+ CALL P,L0081
+ OR C
+ IN D,(C)
+ ADD A,C
+ NOP
+ LD E,B
+ RST 010H
+ OUT (080H),A
+ DEC (HL)
+ INC B
+ DI
+ INC (HL)
+ ADD A,B
+ LD D,A
+ LD B,H
+ CALL M,L80CB
+ LD L,D
+ RET NZ
+ ADD A,0E8H
+ ADD A,B
+ LD (HL),L
+ DEC H
+ LD A,L
+ LD D,080H
+ LD A,D
+ ADD A,E
+L8440: OR D
+ CALL C,07D80H
+ LD A,00CH
+ DEC C
+ ADD A,B
+ LD A,(HL)
+ SBC A,(HL)
+ LD DE,0805DH
+ LD A,A
+ LD C,(HL)
+ BIT 3,D
+L8451: LD A,D
+ EX AF,AF'
+ ADC A,B
+ ADC A,B
+ ADC A,C
+L8456: ADD A,B
+ LD SP,L1772
+ RET M
+L845B: ADD A,B
+ LD SP,L1772
+ RET M
+L8460: ADD A,C
+ JR C,L840D ; (-056H)
+ DEC SP
+ LD HL,(03180H)
+ LD (HL),D
+ RLA
+ RET M
+L846A: DS 2, 000H
+L846C: DS 2, 000H
+L846E: DS 4, 000H
+L8472: DS 4, 000H
+L8476: DS 2, 000H
+L8478: DS 2, 000H
+L847A: DS 2, 000H
+L847C: DS 2, 000H
+L847E: DB 000H
+L847F: DB 000H
+L8480: DS 2, 000H
+L8482: DS 2, 000H
+L8484: DS 4, 000H
+L8488: DB 000H
+L8489: DS 2, 000H
+ DB 015H
+ DB 000H
+ DB EM_P1
+ DB 0FFH
+ DS 2, 000H
+L8491: DS 2, 000H
+L8493: DS 2, 000H
+L8495: DS 7, 000H
+L849C: DB 000H
+L849D: DS 3, 000H
+L84A0: DB 000H
+L84A1: DS 4, 000H
+L84A5: DB 000H
+L84A6: DS 8, 000H
+L84AE: DS 25, 000H
+L84C7: DB 008H ; Splash screen / banner text
+L84C8: DS 8, 000H
+L84D0: DS 8, 000H
+L84D8: DS 8, 000H
+L84E0: DB 016H
+ DB 00DH
+ DB 020H
+ DS 38, 0D7H
+ DS 2, 020H
+ DB 044H,005H,"ISK ",006H,042H,005H,"ASIC INTERPRETER ",006H,"MZ-2Z"
+ DS 2, 030H
+ DB 039H
+L852E: DS 2, 020H
+ DB "V1.0A ",00DH
+ DS 3, 020H
+ DB 043H,005H,"OPYRIGHT ",006H,"(C) 1984 ",005H,"BY ",006H,"SHARP ",005H,"CORP."
+ DS 5, 020H
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB 020H,00DH," 30406 ",005H,"BYTES FR"
+ DS 2, 045H
+ DS 2, 00DH
+ DS 93, 000H
+L85FE: DS 1698, 0FFH
+L8CA0: DS 864, 0FFH
diff --git a/dis/MZ-2Z009E/mz2z009e.ini b/dis/MZ-2Z009E/mz2z009e.ini
new file mode 100644
index 0000000..eb8a4ba
--- /dev/null
+++ b/dis/MZ-2Z009E/mz2z009e.ini
@@ -0,0 +1,836 @@
+----------------------------------------
+-- dZ80 configuration file for MZ-2Z009E
+-- Sharp MZ-800 Disk BASIC Interpreter
+----------------------------------------
+
+----------------------------------------
+-- Disassembly control
+----------------------------------------
+
+cpu="z80"
+inputfile="mz2z009e.bin"
+outputfile="mz2z009e.asm"
+filebaseaddr=0
+disstart=0
+disend=36863
+labelledoutput=1
+
+----------------------------------------
+-- Layout
+----------------------------------------
+
+labelreference=1
+addresscolumn=1
+opcodecolumn=1
+relativejumpcomment=1
+uppercase=1
+autoblanklines=1
+db="db"
+comment="; "
+radix=16
+numprefix="0"
+numsuffix="H"
+
+----------------------------------------
+-- References
+----------------------------------------
+
+referencefile="mz2z009e.ref"
+inportreference=1
+outportreference=1
+addressreference=1
+indirectaddressreference=1
+limitreferences=1
+
+----------------------------------------
+-- Data regions
+----------------------------------------
+
+-- Jump vector table (0000-004C): JP nn vectors
+-- These are code, dz80 handles JP fine
+
+-- System variables / work area (004D-00A5)
+d_SetDataRegion( hex("004D"), 2) -- SYSSTA (system status)
+d_SetDataRegion( hex("004F"), 2) -- ERRORP (error parameter)
+d_SetDataRegion( hex("0051"), 2)
+d_SetDataRegion( hex("0053"), 2)
+d_SetDataRegion( hex("0055"), 2)
+d_SetDataRegion( hex("0057"), 2)
+d_SetDataRegion( hex("0059"), 2)
+d_SetDataRegion( hex("005B"), 2)
+d_SetDataRegion( hex("005D"), 2)
+d_SetDataRegion( hex("005F"), 2)
+d_SetDataRegion( hex("0061"), 2)
+d_SetDataRegion( hex("0063"), 2)
+d_SetDataRegion( hex("0065"), 2)
+d_SetDataRegion( hex("0067"), 2)
+d_SetDataRegion( hex("0069"), 2)
+d_SetDataRegion( hex("006B"), 2)
+d_SetDataRegion( hex("006D"), 2)
+d_SetDataRegion( hex("006F"), 2)
+d_SetDataRegion( hex("0071"), 2)
+d_SetDataRegion( hex("0073"), 2)
+d_SetDataRegion( hex("0075"), 2)
+d_SetDataRegion( hex("0077"), 2)
+d_SetDataRegion( hex("0079"), 2)
+d_SetDataRegion( hex("007B"), 2)
+d_SetDataRegion( hex("007D"), 2)
+d_SetDataRegion( hex("007F"), 2)
+d_SetDataRegion( hex("0081"), 2)
+d_SetDataRegion( hex("0083"), 2)
+d_SetDataRegion( hex("0085"), 2)
+d_SetDataRegion( hex("0087"), 2)
+d_SetDataRegion( hex("0089"), 2)
+d_SetDataRegion( hex("008B"), 2)
+d_SetDataRegion( hex("008D"), 2)
+d_SetDataRegion( hex("008F"), 2)
+d_SetDataRegion( hex("0091"), 2)
+d_SetDataRegion( hex("0093"), 2)
+d_SetDataRegion( hex("0095"), 2)
+d_SetDataRegion( hex("0097"), 2)
+d_SetDataRegion( hex("0099"), 2)
+d_SetDataRegion( hex("009B"), 2)
+d_SetDataRegion( hex("009D"), 2)
+d_SetDataRegion( hex("009F"), 2)
+d_SetDataRegion( hex("00A1"), 2)
+d_SetDataRegion( hex("00A3"), 2)
+d_SetDataRegion( hex("00A5"), 1)
+
+-- Zero padding / DS work areas
+d_SetDataRegion( hex("00A6"), 52) -- Work variables (zeros)
+
+-- Undocumented DD prefix byte (DD 14 = INC IXH, but dz80 outputs INC D losing the DD byte)
+d_SetDataRegion( hex("01FE"), 1) -- DD prefix byte before INC D
+
+-- ALIGN 256 padding regions
+d_SetDataRegion( hex("0A8B"), 117) -- ALIGN 0B00
+d_SetDataRegion( hex("0D8A"), 374) -- ALIGN 0E00 + zero page
+d_SetDataRegion( hex("0FEF"), 17) -- ALIGN 1000
+d_SetDataRegion( hex("1098"), 104) -- ALIGN 1100
+d_SetDataRegion( hex("1100"), 288) -- Work area / ALIGN 1200
+d_SetDataRegion( hex("12F7"), 9) -- ALIGN 1300
+d_SetDataRegion( hex("17A5"), 91) -- ALIGN 1800
+
+-- Error message table (bit-7 terminated strings with 0x05 color attr)
+d_SetDataRegion( hex("1550"), 596) -- Error messages (1550-17A4)
+
+-- Directory/file type strings
+d_SetDataRegion( hex("1E1E"), 130) -- Dir strings + file type suffixes
+
+-- Large work/buffer area (BASIC line buffer, variable space)
+d_SetDataRegion( hex("1FC0"), 2368) -- Work RAM (1FC0-28FF)
+
+-- Device descriptors
+d_SetDataRegion( hex("2FF7"), 29) -- $CMT device descriptor
+d_SetDataRegion( hex("3359"), 29) -- $RS device descriptor
+d_SetDataRegion( hex("358D"), 29) -- $FD device descriptor
+d_SetDataRegion( hex("38A2"), 29) -- $QD device descriptor
+d_SetDataRegion( hex("0D5E"), 29) -- $USR device descriptor
+
+-- CMT status strings
+d_SetDataRegion( hex("32BC"), 155) -- CMT RECORD/PLAY/WRITING/etc strings
+
+-- ALIGN padding
+d_SetDataRegion( hex("3FDF"), 33) -- ALIGN 4000
+
+-- AUTO RUN string
+d_SetDataRegion( hex("4043"), 19) -- RUN "AUTO RUN" (data: embedded quotes break assembler)
+
+-- BASIC keyword tables
+d_SetDataRegion( hex("4167"), 421) -- Statement keyword text table (4167-430B)
+d_SetDataRegion( hex("4351"), 157) -- Function keyword text table (4351-43EE)
+d_SetWordRegion( hex("43F0"), 274) -- Keyword dispatch address table (43F0-4501)
+
+-- ALIGN padding
+d_SetDataRegion( hex("5530"), 208) -- ALIGN 5600
+
+-- Device config string
+d_SetStringRegion(hex("5E34"), 18) -- XCMT:TRS?:0,$8C,13
+
+-- Work area in code section
+d_SetDataRegion( hex("6DAD"), 45) -- DS work area in code
+
+-- Floating point constants and tables
+d_SetDataRegion( hex("846A"), 37) -- FP work area (846A-848E)
+d_SetDataRegion( hex("848F"), 56) -- FP data area
+
+-- Banner/splash screen (84C7-85A1)
+d_SetDataRegion( hex("84C7"), 218) -- Splash screen data (84C7-85A0)
+d_SetDataRegion( hex("85A1"), 93) -- Zero padding
+-- String overlays handled by post-processor (dz80 buffer too small for string regions)
+
+-- Unused ROM space (all 0xFF)
+d_SetDataRegion( hex("85FE"), 2562) -- Unused ROM (FF padding)
+
+-- Inline data bytes after RST 18H (SVC calls) and CALL TEST1/TESTX
+-- These are single data bytes that follow instructions with inline parameters
+d_SetDataRegion( hex("02CA"), 1)
+d_SetDataRegion( hex("02E5"), 1)
+d_SetDataRegion( hex("02ED"), 1)
+d_SetDataRegion( hex("0325"), 1)
+d_SetDataRegion( hex("033A"), 1)
+d_SetDataRegion( hex("0609"), 1)
+d_SetDataRegion( hex("060C"), 1)
+d_SetDataRegion( hex("0884"), 1)
+d_SetDataRegion( hex("089C"), 1)
+d_SetDataRegion( hex("092D"), 1)
+d_SetDataRegion( hex("0BAB"), 1)
+d_SetDataRegion( hex("0BB3"), 1)
+d_SetDataRegion( hex("0CBF"), 1)
+d_SetDataRegion( hex("0CCA"), 1)
+d_SetDataRegion( hex("0CDD"), 1)
+d_SetDataRegion( hex("0D7B"), 1)
+d_SetDataRegion( hex("0F3C"), 1)
+d_SetDataRegion( hex("0F4C"), 1)
+d_SetDataRegion( hex("1449"), 1)
+d_SetDataRegion( hex("14AE"), 1)
+d_SetDataRegion( hex("14B4"), 1)
+d_SetDataRegion( hex("14E7"), 1)
+d_SetDataRegion( hex("14E9"), 1)
+d_SetDataRegion( hex("14F7"), 1)
+d_SetDataRegion( hex("1528"), 1)
+d_SetDataRegion( hex("1530"), 1)
+d_SetDataRegion( hex("153C"), 1)
+d_SetDataRegion( hex("1934"), 1)
+d_SetDataRegion( hex("1938"), 1)
+d_SetDataRegion( hex("193A"), 1)
+d_SetDataRegion( hex("1947"), 1)
+d_SetDataRegion( hex("1951"), 1)
+d_SetDataRegion( hex("1964"), 1)
+d_SetDataRegion( hex("19F2"), 1)
+d_SetDataRegion( hex("1ABC"), 1)
+d_SetDataRegion( hex("1ACA"), 1)
+d_SetDataRegion( hex("1AF3"), 1)
+d_SetDataRegion( hex("1B18"), 1)
+d_SetDataRegion( hex("1BB4"), 1)
+d_SetDataRegion( hex("1BE6"), 1)
+d_SetDataRegion( hex("1BF2"), 1)
+d_SetDataRegion( hex("1D9F"), 1)
+d_SetDataRegion( hex("1E15"), 1)
+d_SetDataRegion( hex("1E17"), 1)
+d_SetDataRegion( hex("1E19"), 1)
+d_SetDataRegion( hex("1E1B"), 1)
+d_SetDataRegion( hex("1E77"), 1)
+d_SetDataRegion( hex("1E7A"), 1)
+d_SetDataRegion( hex("1E7D"), 1)
+d_SetDataRegion( hex("1E83"), 1)
+d_SetDataRegion( hex("1E87"), 1)
+d_SetDataRegion( hex("1EF5"), 1)
+d_SetDataRegion( hex("1F1A"), 1)
+d_SetDataRegion( hex("1F64"), 1)
+d_SetDataRegion( hex("2944"), 1)
+d_SetDataRegion( hex("2AA4"), 1)
+d_SetDataRegion( hex("2D13"), 1)
+d_SetDataRegion( hex("2D68"), 1)
+d_SetDataRegion( hex("2E66"), 1)
+d_SetDataRegion( hex("3017"), 1)
+d_SetDataRegion( hex("3111"), 1)
+d_SetDataRegion( hex("3178"), 1)
+d_SetDataRegion( hex("31AF"), 1)
+d_SetDataRegion( hex("31B3"), 1)
+d_SetDataRegion( hex("31B7"), 1)
+d_SetDataRegion( hex("31C4"), 1)
+d_SetDataRegion( hex("31C6"), 1)
+d_SetDataRegion( hex("3307"), 1)
+d_SetDataRegion( hex("3309"), 1)
+d_SetDataRegion( hex("330F"), 1)
+d_SetDataRegion( hex("3318"), 1)
+d_SetDataRegion( hex("3320"), 1)
+d_SetDataRegion( hex("3322"), 1)
+d_SetDataRegion( hex("3381"), 1)
+d_SetDataRegion( hex("3388"), 1)
+d_SetDataRegion( hex("338D"), 1)
+d_SetDataRegion( hex("3398"), 1)
+d_SetDataRegion( hex("339D"), 1)
+d_SetDataRegion( hex("339F"), 1)
+d_SetDataRegion( hex("3705"), 1)
+d_SetDataRegion( hex("38CB"), 1)
+d_SetDataRegion( hex("3BDE"), 1)
+d_SetDataRegion( hex("3CB6"), 1)
+d_SetDataRegion( hex("3DA2"), 1)
+d_SetDataRegion( hex("3DA6"), 1)
+d_SetDataRegion( hex("3DCA"), 1)
+d_SetDataRegion( hex("3DCC"), 1)
+d_SetDataRegion( hex("3E11"), 1)
+d_SetDataRegion( hex("3E23"), 1)
+d_SetDataRegion( hex("3E29"), 1)
+d_SetDataRegion( hex("3E37"), 1)
+d_SetDataRegion( hex("3E4A"), 1)
+d_SetDataRegion( hex("3E89"), 1)
+d_SetDataRegion( hex("3EEB"), 1)
+d_SetDataRegion( hex("3EF2"), 1)
+d_SetDataRegion( hex("3EFC"), 1)
+d_SetDataRegion( hex("3F01"), 1)
+d_SetDataRegion( hex("3F03"), 1)
+d_SetDataRegion( hex("3F09"), 1)
+d_SetDataRegion( hex("3F15"), 1)
+d_SetDataRegion( hex("3F2B"), 1)
+d_SetDataRegion( hex("3F39"), 1)
+d_SetDataRegion( hex("3F44"), 1)
+d_SetDataRegion( hex("3F46"), 1)
+d_SetDataRegion( hex("3F7B"), 1)
+d_SetDataRegion( hex("3FC2"), 1)
+d_SetDataRegion( hex("3FC4"), 1)
+d_SetDataRegion( hex("402B"), 1)
+d_SetDataRegion( hex("402D"), 1)
+d_SetDataRegion( hex("4055"), 1)
+d_SetDataRegion( hex("405D"), 1)
+d_SetDataRegion( hex("4062"), 1)
+d_SetDataRegion( hex("4064"), 1)
+d_SetDataRegion( hex("4085"), 1)
+d_SetDataRegion( hex("408A"), 1)
+d_SetDataRegion( hex("4495"), 1)
+d_SetDataRegion( hex("45B5"), 1)
+d_SetDataRegion( hex("464C"), 1)
+d_SetDataRegion( hex("4652"), 1)
+d_SetDataRegion( hex("4685"), 1)
+d_SetDataRegion( hex("46A8"), 1)
+d_SetDataRegion( hex("472E"), 1)
+d_SetDataRegion( hex("4732"), 1)
+d_SetDataRegion( hex("4738"), 1)
+d_SetDataRegion( hex("4740"), 1)
+d_SetDataRegion( hex("4747"), 1)
+d_SetDataRegion( hex("47D5"), 1)
+d_SetDataRegion( hex("4858"), 1)
+d_SetDataRegion( hex("488D"), 1)
+d_SetDataRegion( hex("48DE"), 1)
+d_SetDataRegion( hex("48E2"), 1)
+d_SetDataRegion( hex("48F4"), 1)
+d_SetDataRegion( hex("48FE"), 1)
+d_SetDataRegion( hex("492E"), 1)
+d_SetDataRegion( hex("4963"), 1)
+d_SetDataRegion( hex("4967"), 1)
+d_SetDataRegion( hex("4986"), 1)
+d_SetDataRegion( hex("498E"), 1)
+d_SetDataRegion( hex("4992"), 1)
+d_SetDataRegion( hex("49E6"), 1)
+d_SetDataRegion( hex("4A20"), 1)
+d_SetDataRegion( hex("4B55"), 1)
+d_SetDataRegion( hex("4B5A"), 1)
+d_SetDataRegion( hex("4B81"), 1)
+d_SetDataRegion( hex("4BC5"), 1)
+d_SetDataRegion( hex("4BE6"), 1)
+d_SetDataRegion( hex("4BE8"), 1)
+d_SetDataRegion( hex("4BED"), 1)
+d_SetDataRegion( hex("4C5F"), 1)
+d_SetDataRegion( hex("4C65"), 1)
+d_SetDataRegion( hex("4C69"), 1)
+d_SetDataRegion( hex("4C92"), 1)
+d_SetDataRegion( hex("4C9F"), 1)
+d_SetDataRegion( hex("4CC4"), 1)
+d_SetDataRegion( hex("4DBD"), 1)
+d_SetDataRegion( hex("4DCA"), 1)
+d_SetDataRegion( hex("4EA0"), 1)
+d_SetDataRegion( hex("4EB6"), 1)
+d_SetDataRegion( hex("4F33"), 1)
+d_SetDataRegion( hex("4F43"), 1)
+d_SetDataRegion( hex("4F7B"), 1)
+d_SetDataRegion( hex("4FF4"), 1)
+d_SetDataRegion( hex("5009"), 1)
+d_SetDataRegion( hex("503D"), 1)
+d_SetDataRegion( hex("5047"), 1)
+d_SetDataRegion( hex("504D"), 1)
+d_SetDataRegion( hex("5053"), 1)
+d_SetDataRegion( hex("50E3"), 1)
+d_SetDataRegion( hex("5132"), 1)
+d_SetDataRegion( hex("517E"), 1)
+d_SetDataRegion( hex("520B"), 1)
+d_SetDataRegion( hex("523E"), 1)
+d_SetDataRegion( hex("524C"), 1)
+d_SetDataRegion( hex("5252"), 1)
+d_SetDataRegion( hex("5254"), 1)
+d_SetDataRegion( hex("526C"), 1)
+d_SetDataRegion( hex("5294"), 1)
+d_SetDataRegion( hex("52C2"), 1)
+d_SetDataRegion( hex("52CE"), 1)
+d_SetDataRegion( hex("532C"), 1)
+d_SetDataRegion( hex("534A"), 1)
+d_SetDataRegion( hex("534C"), 1)
+d_SetDataRegion( hex("5359"), 1)
+d_SetDataRegion( hex("53A2"), 1)
+d_SetDataRegion( hex("53AA"), 1)
+d_SetDataRegion( hex("53C0"), 1)
+d_SetDataRegion( hex("53D3"), 1)
+d_SetDataRegion( hex("53DF"), 1)
+d_SetDataRegion( hex("53E1"), 1)
+d_SetDataRegion( hex("53FA"), 1)
+d_SetDataRegion( hex("53FD"), 1)
+d_SetDataRegion( hex("5406"), 1)
+d_SetDataRegion( hex("5416"), 1)
+d_SetDataRegion( hex("5420"), 1)
+d_SetDataRegion( hex("5430"), 1)
+d_SetDataRegion( hex("544F"), 1)
+d_SetDataRegion( hex("5455"), 1)
+d_SetDataRegion( hex("5459"), 1)
+d_SetDataRegion( hex("5460"), 1)
+d_SetDataRegion( hex("5467"), 1)
+d_SetDataRegion( hex("546B"), 1)
+d_SetDataRegion( hex("549F"), 1)
+d_SetDataRegion( hex("54B2"), 1)
+d_SetDataRegion( hex("54CA"), 1)
+d_SetDataRegion( hex("54DC"), 1)
+d_SetDataRegion( hex("552E"), 1)
+d_SetDataRegion( hex("5617"), 1)
+d_SetDataRegion( hex("562C"), 1)
+d_SetDataRegion( hex("5645"), 1)
+d_SetDataRegion( hex("5654"), 1)
+d_SetDataRegion( hex("56F4"), 1)
+d_SetDataRegion( hex("572F"), 1)
+d_SetDataRegion( hex("573D"), 1)
+d_SetDataRegion( hex("5744"), 1)
+d_SetDataRegion( hex("574F"), 1)
+d_SetDataRegion( hex("575F"), 1)
+d_SetDataRegion( hex("5787"), 1)
+d_SetDataRegion( hex("578F"), 1)
+d_SetDataRegion( hex("57C2"), 1)
+d_SetDataRegion( hex("57F6"), 1)
+d_SetDataRegion( hex("581C"), 1)
+d_SetDataRegion( hex("5857"), 1)
+d_SetDataRegion( hex("5885"), 1)
+d_SetDataRegion( hex("58B0"), 1)
+d_SetDataRegion( hex("58B7"), 1)
+d_SetDataRegion( hex("58BE"), 1)
+d_SetDataRegion( hex("58CE"), 1)
+d_SetDataRegion( hex("58DA"), 1)
+d_SetDataRegion( hex("58DC"), 1)
+d_SetDataRegion( hex("5909"), 1)
+d_SetDataRegion( hex("5922"), 1)
+d_SetDataRegion( hex("5926"), 1)
+d_SetDataRegion( hex("592B"), 1)
+d_SetDataRegion( hex("5937"), 1)
+d_SetDataRegion( hex("596D"), 1)
+d_SetDataRegion( hex("598C"), 1)
+d_SetDataRegion( hex("59C4"), 1)
+d_SetDataRegion( hex("59F3"), 1)
+d_SetDataRegion( hex("59F7"), 1)
+d_SetDataRegion( hex("5A1D"), 1)
+d_SetDataRegion( hex("5A56"), 1)
+d_SetDataRegion( hex("5A77"), 1)
+d_SetDataRegion( hex("5A9B"), 1)
+d_SetDataRegion( hex("5AB8"), 1)
+d_SetDataRegion( hex("5AF4"), 1)
+d_SetDataRegion( hex("5B1E"), 1)
+d_SetDataRegion( hex("5B24"), 1)
+d_SetDataRegion( hex("5B5D"), 1)
+d_SetDataRegion( hex("5B61"), 1)
+d_SetDataRegion( hex("5B65"), 1)
+d_SetDataRegion( hex("5BD5"), 1)
+d_SetDataRegion( hex("5BE0"), 1)
+d_SetDataRegion( hex("5C38"), 1)
+d_SetDataRegion( hex("5C47"), 1)
+d_SetDataRegion( hex("5C6D"), 1)
+d_SetDataRegion( hex("5C79"), 1)
+d_SetDataRegion( hex("5C83"), 1)
+d_SetDataRegion( hex("5C91"), 1)
+d_SetDataRegion( hex("5CB0"), 1)
+d_SetDataRegion( hex("5CB6"), 1)
+d_SetDataRegion( hex("5CD1"), 1)
+d_SetDataRegion( hex("5CDC"), 1)
+d_SetDataRegion( hex("5CDF"), 1)
+d_SetDataRegion( hex("5CE6"), 1)
+d_SetDataRegion( hex("5CF8"), 1)
+d_SetDataRegion( hex("5CFB"), 1)
+d_SetDataRegion( hex("5CFE"), 1)
+d_SetDataRegion( hex("5D04"), 1)
+d_SetDataRegion( hex("5D06"), 1)
+d_SetDataRegion( hex("5D0C"), 1)
+d_SetDataRegion( hex("5D14"), 1)
+d_SetDataRegion( hex("5D1D"), 1)
+d_SetDataRegion( hex("5D3C"), 1)
+d_SetDataRegion( hex("5D4F"), 1)
+d_SetDataRegion( hex("5D5A"), 1)
+d_SetDataRegion( hex("5D61"), 1)
+d_SetDataRegion( hex("5D6E"), 1)
+d_SetDataRegion( hex("5D84"), 1)
+d_SetDataRegion( hex("5DF6"), 1)
+d_SetDataRegion( hex("5DFA"), 1)
+d_SetDataRegion( hex("5E01"), 1)
+d_SetDataRegion( hex("5E54"), 1)
+d_SetDataRegion( hex("5E59"), 1)
+d_SetDataRegion( hex("5E6B"), 1)
+d_SetDataRegion( hex("5F06"), 1)
+d_SetDataRegion( hex("6188"), 1)
+d_SetDataRegion( hex("6551"), 1)
+d_SetDataRegion( hex("6809"), 1)
+d_SetDataRegion( hex("68B4"), 1)
+d_SetDataRegion( hex("68BF"), 1)
+d_SetDataRegion( hex("6A0C"), 1)
+d_SetDataRegion( hex("6A2E"), 1)
+d_SetDataRegion( hex("6A34"), 1)
+d_SetDataRegion( hex("6A3D"), 1)
+d_SetDataRegion( hex("6A43"), 1)
+d_SetDataRegion( hex("6A49"), 1)
+d_SetDataRegion( hex("6A56"), 1)
+d_SetDataRegion( hex("6A66"), 1)
+d_SetDataRegion( hex("6A68"), 1)
+d_SetDataRegion( hex("6A6A"), 1)
+d_SetDataRegion( hex("6A6F"), 1)
+d_SetDataRegion( hex("6A9B"), 1)
+d_SetDataRegion( hex("6AA3"), 1)
+d_SetDataRegion( hex("6AE5"), 1)
+d_SetDataRegion( hex("6AF6"), 1)
+d_SetDataRegion( hex("6B20"), 1)
+d_SetDataRegion( hex("6B50"), 1)
+d_SetDataRegion( hex("6B5A"), 1)
+d_SetDataRegion( hex("6B5F"), 1)
+d_SetDataRegion( hex("6B67"), 1)
+d_SetDataRegion( hex("6B83"), 1)
+d_SetDataRegion( hex("6B9E"), 1)
+d_SetDataRegion( hex("6BA5"), 1)
+d_SetDataRegion( hex("6BB0"), 1)
+d_SetDataRegion( hex("6BD1"), 1)
+d_SetDataRegion( hex("6BD4"), 1)
+d_SetDataRegion( hex("6C05"), 1)
+d_SetDataRegion( hex("6C0D"), 1)
+d_SetDataRegion( hex("6CF7"), 1)
+d_SetDataRegion( hex("6D54"), 1)
+d_SetDataRegion( hex("6DE6"), 1)
+d_SetDataRegion( hex("6DE9"), 1)
+d_SetDataRegion( hex("6DF9"), 1)
+d_SetDataRegion( hex("6E11"), 1)
+d_SetDataRegion( hex("6E13"), 1)
+d_SetDataRegion( hex("6E40"), 1)
+d_SetDataRegion( hex("6EF1"), 1)
+d_SetDataRegion( hex("6FF1"), 1)
+d_SetDataRegion( hex("701C"), 1)
+d_SetDataRegion( hex("7119"), 1)
+d_SetDataRegion( hex("713B"), 1)
+d_SetDataRegion( hex("71C0"), 1)
+d_SetDataRegion( hex("71F7"), 1)
+d_SetDataRegion( hex("723B"), 1)
+d_SetDataRegion( hex("724C"), 1)
+d_SetDataRegion( hex("72D7"), 1)
+d_SetDataRegion( hex("732D"), 1)
+d_SetDataRegion( hex("73BE"), 1)
+d_SetDataRegion( hex("73F8"), 1)
+d_SetDataRegion( hex("7472"), 1)
+d_SetDataRegion( hex("761D"), 1)
+d_SetDataRegion( hex("765E"), 1)
+d_SetDataRegion( hex("7878"), 1)
+d_SetDataRegion( hex("7935"), 1)
+d_SetDataRegion( hex("8353"), 1)
+
+
+----------------------------------------
+-- I/O Port Equates
+----------------------------------------
+
+d_SetByteEquate(hex("CC"), 0, "LSWF" ) -- Write font
+d_SetByteEquate(hex("CD"), 0, "LSRF" ) -- Read font
+d_SetByteEquate(hex("CE"), 0, "LSDMD" ) -- Display mode
+d_SetByteEquate(hex("CF"), 0, "LSSCR" ) -- Scroll
+d_SetByteEquate(hex("D0"), 0, "LSD0" ) -- 8255 Port A
+d_SetByteEquate(hex("D1"), 0, "LSD1" ) -- 8255 Port B
+d_SetByteEquate(hex("D2"), 0, "LSD2" ) -- 8255 Port C
+d_SetByteEquate(hex("D3"), 0, "LSD3" ) -- 8255 Control
+d_SetByteEquate(hex("E0"), 0, "LSE0" ) -- 8253 CH0
+d_SetByteEquate(hex("E1"), 0, "LSE1" ) -- 8253 CH1
+d_SetByteEquate(hex("E2"), 0, "LSE2" ) -- 8253 CH2
+d_SetByteEquate(hex("E3"), 0, "LSE3" ) -- 8253 Control
+d_SetByteEquate(hex("E4"), 0, "LSE4" ) -- Z-8530 SIO/A
+d_SetByteEquate(hex("E5"), 0, "LSE5" ) -- Z-8530 SIO/B
+d_SetByteEquate(hex("E6"), 0, "LSE6" ) -- Z-8530 data
+d_SetByteEquate(hex("EA"), 0, "EM_P0" ) -- EMM data port
+d_SetByteEquate(hex("EB"), 0, "EM_P1" ) -- EMM addr port
+d_SetByteEquate(hex("F0"), 0, "LSPAL" ) -- Palette write
+d_SetByteEquate(hex("F2"), 0, "QDPA" ) -- QD Port A
+d_SetByteEquate(hex("F3"), 0, "QDPB" ) -- QD Port B
+d_SetByteEquate(hex("F4"), 0, "QDPC" ) -- QD Port C
+d_SetByteEquate(hex("F5"), 0, "QDPD" ) -- QD Port D
+d_SetByteEquate(hex("F8"), 0, "FDPA" ) -- FD WD1773 status/cmd
+d_SetByteEquate(hex("F9"), 0, "FDPB" ) -- FD WD1773 track
+d_SetByteEquate(hex("FA"), 0, "FDPC" ) -- FD WD1773 sector
+d_SetByteEquate(hex("FB"), 0, "FDPD" ) -- FD WD1773 data
+d_SetByteEquate(hex("FC"), 0, "LSFC" ) -- Border/font color
+
+----------------------------------------
+-- Memory-mapped hardware / Work area addresses
+----------------------------------------
+
+-- ELMD file directory entry (1000H-103FH)
+d_SetWordEquate(hex("1000"), 0, "ELMD" )
+d_SetWordEquate(hex("1001"), 0, "ELMD1" )
+d_SetWordEquate(hex("1012"), 0, "ELMD18" )
+d_SetWordEquate(hex("1014"), 0, "ELMD20" )
+d_SetWordEquate(hex("1016"), 0, "ELMD22" )
+d_SetWordEquate(hex("1018"), 0, "ELMD24" )
+d_SetWordEquate(hex("101A"), 0, "ELMD26" )
+d_SetWordEquate(hex("101E"), 0, "ELMD30" )
+d_SetWordEquate(hex("1020"), 0, "ELMD32" )
+
+-- Z-area (logical unit work area, 1040H-1067H)
+d_SetWordEquate(hex("1040"), 0, "ZTOP" )
+d_SetWordEquate(hex("1042"), 0, "ZLOG" )
+d_SetWordEquate(hex("1043"), 0, "ZRWX" )
+d_SetWordEquate(hex("1044"), 0, "ZEQT" )
+d_SetWordEquate(hex("1046"), 0, "ZCH" )
+d_SetWordEquate(hex("1047"), 0, "ZEOF" )
+d_SetWordEquate(hex("1048"), 0, "ZWRK1" )
+d_SetWordEquate(hex("1049"), 0, "ZWRK2" )
+d_SetWordEquate(hex("104A"), 0, "ZNXT" )
+d_SetWordEquate(hex("104C"), 0, "ZDEVNM" )
+d_SetWordEquate(hex("1050"), 0, "ZFLAG1" )
+d_SetWordEquate(hex("1051"), 0, "ZFLAG2" )
+d_SetWordEquate(hex("1052"), 0, "ZDIRMX" )
+d_SetWordEquate(hex("1053"), 0, "ZINIT" )
+d_SetWordEquate(hex("1055"), 0, "ZRO" )
+d_SetWordEquate(hex("1057"), 0, "ZWO" )
+d_SetWordEquate(hex("1059"), 0, "ZCL" )
+d_SetWordEquate(hex("105B"), 0, "ZKL" )
+d_SetWordEquate(hex("105D"), 0, "ZINP" )
+d_SetWordEquate(hex("105F"), 0, "ZOUT" )
+d_SetWordEquate(hex("1061"), 0, "ZDELT" )
+d_SetWordEquate(hex("1063"), 0, "ZWDIR" )
+d_SetWordEquate(hex("1065"), 0, "ZFREE" )
+
+-- Default channel/device
+d_SetWordEquate(hex("1069"), 0, "DCHAN" )
+d_SetWordEquate(hex("106A"), 0, "DDEV" )
+d_SetWordEquate(hex("106C"), 0, ".$CRT" )
+d_SetWordEquate(hex("106E"), 0, ".$LPT" )
+
+-- Text/variable/string areas
+d_SetWordEquate(hex("1070"), 0, "TEXTST" )
+d_SetWordEquate(hex("1072"), 0, "TEXTED" )
+d_SetWordEquate(hex("1074"), 0, "VARST" )
+d_SetWordEquate(hex("1076"), 0, "STRST" )
+d_SetWordEquate(hex("1078"), 0, "VARED" )
+d_SetWordEquate(hex("107A"), 0, "TMPEND" )
+d_SetWordEquate(hex("107C"), 0, "INTFAC" )
+d_SetWordEquate(hex("107E"), 0, "MEMLMT" )
+d_SetWordEquate(hex("1080"), 0, "MEMMAX" )
+
+-- Cursor & graphics
+d_SetWordEquate(hex("1082"), 0, "CURXY" )
+d_SetWordEquate(hex("1084"), 0, "POSADR" )
+d_SetWordEquate(hex("1086"), 0, "BITADR" )
+d_SetWordEquate(hex("1088"), 0, "POINTX" )
+d_SetWordEquate(hex("108A"), 0, "POINTY" )
+d_SetWordEquate(hex("108C"), 0, "CURFLG" )
+d_SetWordEquate(hex("108D"), 0, "CURMAK" )
+d_SetWordEquate(hex("108E"), 0, "CMTMSG" )
+d_SetWordEquate(hex("108F"), 0, "INPFLG" )
+d_SetWordEquate(hex("1090"), 0, "DISPX" )
+d_SetWordEquate(hex("1091"), 0, "FILOUT" )
+d_SetWordEquate(hex("1092"), 0, "PSEL" )
+d_SetWordEquate(hex("1093"), 0, "PCRLF" )
+d_SetWordEquate(hex("1094"), 0, "LPT_TM" )
+d_SetWordEquate(hex("1095"), 0, "LPOSB" )
+d_SetWordEquate(hex("1096"), 0, "PSMAL" )
+d_SetWordEquate(hex("1097"), 0, "PNMODE" )
+d_SetWordEquate(hex("1098"), 0, "DMD" )
+d_SetWordEquate(hex("1099"), 0, "MEMOP" )
+d_SetWordEquate(hex("109A"), 0, "PWMODE" )
+d_SetWordEquate(hex("109B"), 0, "CMODE" )
+d_SetWordEquate(hex("109C"), 0, "CPLANE" )
+d_SetWordEquate(hex("109D"), 0, "MAXCF" )
+d_SetWordEquate(hex("109E"), 0, "PMASK" )
+d_SetWordEquate(hex("109F"), 0, "GMODE" )
+
+-- Keyboard/timer
+d_SetWordEquate(hex("1195"), 0, "TMCNT" )
+d_SetWordEquate(hex("1197"), 0, "SUMDT" )
+d_SetWordEquate(hex("1199"), 0, "CSMDT" )
+d_SetWordEquate(hex("119E"), 0, "TEMPW" )
+d_SetWordEquate(hex("11A3"), 0, "KEYBM1" )
+d_SetWordEquate(hex("11A4"), 0, "KEYBUF" )
+
+-- Function key buffer
+d_SetWordEquate(hex("12AA"), 0, "KEY262" )
+d_SetWordEquate(hex("12AC"), 0, "KEY264" )
+d_SetWordEquate(hex("12AE"), 0, "KEY266" )
+d_SetWordEquate(hex("12B2"), 0, "FUNBUF" )
+
+-- Input buffer
+d_SetWordEquate(hex("1352"), 0, "INBUFC" )
+d_SetWordEquate(hex("1353"), 0, "INBUFL" )
+d_SetWordEquate(hex("1354"), 0, "INBUF" )
+d_SetWordEquate(hex("1364"), 0, "LINLIM" )
+d_SetWordEquate(hex("1365"), 0, "KEYDAT" )
+d_SetWordEquate(hex("1366"), 0, "AMPM" )
+d_SetWordEquate(hex("1367"), 0, "SECD" )
+
+-- Graphics coordinates
+d_SetWordEquate(hex("1369"), 0, "XS" )
+d_SetWordEquate(hex("136A"), 0, "XE" )
+d_SetWordEquate(hex("136B"), 0, "CWIDTH" )
+d_SetWordEquate(hex("136D"), 0, "CSIZE" )
+d_SetWordEquate(hex("136F"), 0, "YS" )
+d_SetWordEquate(hex("1370"), 0, "YE" )
+d_SetWordEquate(hex("1371"), 0, "YW" )
+d_SetWordEquate(hex("1372"), 0, "SOF" )
+d_SetWordEquate(hex("1374"), 0, "SW" )
+d_SetWordEquate(hex("1375"), 0, "SSA" )
+d_SetWordEquate(hex("1376"), 0, "SEA" )
+d_SetWordEquate(hex("1377"), 0, "SSW" )
+
+-- CRT mode / palette
+d_SetWordEquate(hex("1379"), 0, "CRTMD1" )
+d_SetWordEquate(hex("137A"), 0, "CRTMD2" )
+d_SetWordEquate(hex("137B"), 0, "SELCOL" )
+d_SetWordEquate(hex("137C"), 0, "PAIWED" )
+d_SetWordEquate(hex("137E"), 0, "PALBK" )
+d_SetWordEquate(hex("137F"), 0, "PALAD" )
+d_SetWordEquate(hex("1381"), 0, "PALTBL" )
+d_SetWordEquate(hex("1385"), 0, "PAL2T" )
+d_SetWordEquate(hex("1389"), 0, "PAL4T" )
+d_SetWordEquate(hex("138D"), 0, "PAL16T" )
+d_SetWordEquate(hex("1391"), 0, "CURDT1" )
+d_SetWordEquate(hex("1399"), 0, "CURDT2" )
+d_SetWordEquate(hex("13A1"), 0, "CURDT3" )
+d_SetWordEquate(hex("13A9"), 0, "SCRNT0" )
+d_SetWordEquate(hex("13C3"), 0, "EMFLG" )
+d_SetWordEquate(hex("13C4"), 0, "EMPTR" )
+d_SetWordEquate(hex("13C6"), 0, "EMWP0" )
+d_SetWordEquate(hex("13C8"), 0, "EMWP1" )
+d_SetWordEquate(hex("13CE"), 0, "PBCN" )
+d_SetWordEquate(hex("13D9"), 0, "HERRF" )
+d_SetWordEquate(hex("13DA"), 0, "CTABLE" )
+
+-- Memory area base addresses
+d_SetWordEquate(hex("1000"), 0, "FONTBF" )
+d_SetWordEquate(hex("2000"), 0, "TEXTBF" )
+d_SetWordEquate(hex("8000"), 0, "BITBUF" )
+d_SetWordEquate(hex("10F0"), 0, "IBUFE" )
+d_SetWordEquate(hex("FDA0"), 0, "ERRTXT" )
+
+----------------------------------------
+-- Code entry point equates (MZ-5Z009 addresses, same in MZ-2Z009E)
+----------------------------------------
+
+-- These addresses are confirmed identical in MZ-2Z009E
+d_SetWordEquate(hex("0164"), 1, "TEST1" )
+d_SetWordEquate(hex("016E"), 1, "TESTX" )
+d_SetWordEquate(hex("0108"), 1, "SKPDE" )
+d_SetWordEquate(hex("015E"), 1, "HLFTCH" )
+d_SetWordEquate(hex("00EE"), 1, "POPRA" )
+d_SetWordEquate(hex("014A"), 1, "LDHLDE" )
+d_SetWordEquate(hex("012D"), 1, "LDDEMI" )
+d_SetWordEquate(hex("0245"), 1, "IOCALL" )
+d_SetWordEquate(hex("00E6"), 1, "BREAKX" )
+d_SetWordEquate(hex("00FB"), 1, "IOOUT" )
+d_SetWordEquate(hex("0640"), 1, "PUSHW" )
+
+-- Mon1 entry points (confirmed from jump table)
+d_SetWordEquate(hex("001E"), 1, "BRKCHK" )
+d_SetWordEquate(hex("0018"), 1, "SVC_ENTRY" )
+d_SetWordEquate(hex("0038"), 1, "RST38" )
+
+-- Mon1 routines (likely same or close addresses)
+d_SetWordEquate(hex("00A6"), 1, ".NOP" )
+d_SetWordEquate(hex("00A7"), 1, ".HL" )
+d_SetWordEquate(hex("00B2"), 1, ".RET" )
+d_SetWordEquate(hex("00BA"), 1, "PUSHRA" )
+d_SetWordEquate(hex("00C7"), 1, "PUSHR" )
+d_SetWordEquate(hex("00E5"), 1, "BREAKZ" )
+d_SetWordEquate(hex("00EB"), 1, "IOERR" )
+d_SetWordEquate(hex("00ED"), 1, "ERRORJ" )
+d_SetWordEquate(hex("00F0"), 1, "LSPAL_R" )
+d_SetWordEquate(hex("00FC"), 1, "LSFC_R" )
+d_SetWordEquate(hex("0104"), 1, "IOOUT_R" )
+d_SetWordEquate(hex("010D"), 1, "DEVASC" )
+d_SetWordEquate(hex("011B"), 1, "CHKACC" )
+d_SetWordEquate(hex("0132"), 1, "LDDEMD" )
+d_SetWordEquate(hex("0137"), 1, "?CLRHL" )
+d_SetWordEquate(hex("0138"), 1, "?SETHL" )
+d_SetWordEquate(hex("013D"), 1, "?CLRDE" )
+d_SetWordEquate(hex("013E"), 1, "?SETDE" )
+d_SetWordEquate(hex("0143"), 1, "LDDEHL" )
+d_SetWordEquate(hex("0151"), 1, "INDRCT" )
+d_SetWordEquate(hex("0158"), 1, "ADDHLA" )
+d_SetWordEquate(hex("015D"), 1, "INCHLF" )
+
+-- Mon2 routines
+d_SetWordEquate(hex("025E"), 1, "ASCHL" )
+d_SetWordEquate(hex("029E"), 1, "DEASC" )
+d_SetWordEquate(hex("02CE"), 1, "DEHEX" )
+d_SetWordEquate(hex("02E9"), 1, "CKHEX" )
+d_SetWordEquate(hex("02F8"), 1, "MHALT" )
+d_SetWordEquate(hex("0314"), 1, "SETDFL" )
+d_SetWordEquate(hex("031C"), 1, "ADDP0" )
+d_SetWordEquate(hex("0323"), 1, "ADDP1" )
+d_SetWordEquate(hex("032A"), 1, "ADDP2" )
+d_SetWordEquate(hex("0340"), 1, "ERRX" )
+d_SetWordEquate(hex("0397"), 1, "SETDNM" )
+d_SetWordEquate(hex("03BE"), 1, "DSMODE" )
+
+-- Mon3 routines
+d_SetWordEquate(hex("0441"), 1, "PALOFF" )
+d_SetWordEquate(hex("044F"), 1, "DPALBK" )
+d_SetWordEquate(hex("0476"), 1, "DPALST" )
+d_SetWordEquate(hex("048A"), 1, "DCOLOR" )
+d_SetWordEquate(hex("0493"), 1, "DGCOL" )
+d_SetWordEquate(hex("049C"), 1, "COLS" )
+d_SetWordEquate(hex("04AE"), 1, "DWIND" )
+d_SetWordEquate(hex("04EF"), 1, "DWIDTH" )
+d_SetWordEquate(hex("0531"), 1, "PATCH" )
+d_SetWordEquate(hex("05AD"), 1, "ACCDI" )
+d_SetWordEquate(hex("05CE"), 1, "BITMAP" )
+d_SetWordEquate(hex("05F9"), 1, "LBOUND" )
+d_SetWordEquate(hex("0615"), 1, "TBCALC" )
+d_SetWordEquate(hex("061D"), 1, "HCLSW" )
+d_SetWordEquate(hex("0652"), 1, "HCLS" )
+
+-- Mon-IOCS routines
+d_SetWordEquate(hex("092B"), 1, "HCURON" )
+d_SetWordEquate(hex("093B"), 1, "HCUROF" )
+d_SetWordEquate(hex("0945"), 1, "FLASH" )
+d_SetWordEquate(hex("094D"), 1, "CURMOV" )
+d_SetWordEquate(hex("0960"), 1, "PONTC" )
+d_SetWordEquate(hex("0963"), 1, "PONT" )
+d_SetWordEquate(hex("0977"), 1, "PONTCB" )
+d_SetWordEquate(hex("097A"), 1, "PONTB" )
+d_SetWordEquate(hex("0A58"), 1, "PRNTT" )
+d_SetWordEquate(hex("0A67"), 1, "BINPUT" )
+d_SetWordEquate(hex("0A84"), 1, "GETL" )
+d_SetWordEquate(hex("0B1A"), 1, "INKEY$" )
+d_SetWordEquate(hex("0B21"), 1, "INKEY1" )
+d_SetWordEquate(hex("0B8B"), 1, "INKEYF" )
+d_SetWordEquate(hex("0BA1"), 1, "INKEY0" )
+
+-- Device handlers
+d_SetWordEquate(hex("0D22"), 1, "BRKEY" )
+d_SetWordEquate(hex("0D5E"), 1, "$USR" )
+d_SetWordEquate(hex("0DF6"), 1, "$KB" )
+d_SetWordEquate(hex("0DDD"), 1, "EQTBL" )
+d_SetWordEquate(hex("0E61"), 1, "CRT1C" )
+d_SetWordEquate(hex("0EB3"), 1, "PLTOTX" )
+d_SetWordEquate(hex("0F7F"), 1, "$USR_5Z" )
+
+-- Device descriptors in MZ-2Z009E
+d_SetWordEquate(hex("2FF7"), 1, "$CMT" )
+d_SetWordEquate(hex("3359"), 1, "$RS" )
+d_SetWordEquate(hex("358D"), 1, "$FD" )
+d_SetWordEquate(hex("38A2"), 1, "$QD" )
+
+-- SVC dispatch table (at RST 18H handler)
+d_SetWordEquate(hex("022A"), 1, "SVC_DISP" )
+
+-- Known code entry at 5800H
+d_SetWordEquate(hex("5800"), 1, "$START" )
+
+-- SVC service number constants (removed - conflicts with data byte values)
+
+----------------------------------------
+-- Comments
+----------------------------------------
+
+d_SetComment( hex("0000"), "Cold start entry - JP to initialization" )
+d_SetComment( hex("0018"), "RST 18H - SVC (Supervisor Call) dispatcher" )
+d_SetComment( hex("0038"), "RST 38H - Interrupt handler" )
+d_SetComment( hex("004D"), "System status / work area" )
+d_SetComment( hex("0D5E"), "$USR device descriptor" )
+d_SetComment( hex("2FF7"), "$CMT - Cassette device descriptor" )
+d_SetComment( hex("3359"), "$RS - RS-232C device descriptor" )
+d_SetComment( hex("358D"), "$FD - Floppy Disk device descriptor" )
+d_SetComment( hex("38A2"), "$QD - Quick Disk device descriptor" )
+d_SetWordEquate(hex("4351"), 1, "FUNCWORDTBL" )
+d_SetComment( hex("4167"), "BASIC statement keyword text table" )
+d_SetComment( hex("4351"), "BASIC function keyword text table" )
+d_SetComment( hex("43F0"), "Keyword dispatch address table" )
+d_SetComment( hex("5800"), "$START - BASIC warm start / system entry" )
+d_SetComment( hex("84C7"), "Splash screen / banner text" )
+
+----------------------------------------
+-- End of configuration file
+----------------------------------------
diff --git a/dis/MZ-2Z009E/mz2z009e_dz80.asm b/dis/MZ-2Z009E/mz2z009e_dz80.asm
new file mode 100644
index 0000000..a586be8
--- /dev/null
+++ b/dis/MZ-2Z009E/mz2z009e_dz80.asm
@@ -0,0 +1,19416 @@
+; Disassembly of the file "mz2z009e.bin"
+;
+; CPU Type: Z80
+;
+; Created with dZ80 2.1
+;
+; on Tuesday, 17 of March 2026 at 05:57 PM
+;
+LSWF EQU 0CCH
+LSRF EQU 0CDH
+LSDMD EQU 0CEH
+LSSCR EQU 0CFH
+LSD0 EQU 0D0H
+LSD1 EQU 0D1H
+LSD2 EQU 0D2H
+LSD3 EQU 0D3H
+LSE0 EQU 0E0H
+LSE1 EQU 0E1H
+LSE2 EQU 0E2H
+LSE3 EQU 0E3H
+LSE4 EQU 0E4H
+LSE5 EQU 0E5H
+LSE6 EQU 0E6H
+EM_P0 EQU 0EAH
+EM_P1 EQU 0EBH
+LSPAL EQU 0F0H
+QDPA EQU 0F2H
+QDPB EQU 0F3H
+QDPC EQU 0F4H
+QDPD EQU 0F5H
+FDPA EQU 0F8H
+FDPB EQU 0F9H
+FDPC EQU 0FAH
+FDPD EQU 0FBH
+LSFC EQU 0FCH
+ELMD EQU 01000H
+ELMD1 EQU 01001H
+ELMD18 EQU 01012H
+ELMD20 EQU 01014H
+ELMD22 EQU 01016H
+ELMD24 EQU 01018H
+ELMD26 EQU 0101AH
+ELMD30 EQU 0101EH
+ELMD32 EQU 01020H
+ZTOP EQU 01040H
+ZLOG EQU 01042H
+ZRWX EQU 01043H
+ZEQT EQU 01044H
+ZCH EQU 01046H
+ZEOF EQU 01047H
+ZWRK1 EQU 01048H
+ZWRK2 EQU 01049H
+ZNXT EQU 0104AH
+ZDEVNM EQU 0104CH
+ZFLAG1 EQU 01050H
+ZFLAG2 EQU 01051H
+ZDIRMX EQU 01052H
+ZINIT EQU 01053H
+ZRO EQU 01055H
+ZWO EQU 01057H
+ZCL EQU 01059H
+ZKL EQU 0105BH
+ZINP EQU 0105DH
+ZOUT EQU 0105FH
+ZDELT EQU 01061H
+ZWDIR EQU 01063H
+ZFREE EQU 01065H
+DCHAN EQU 01069H
+DDEV EQU 0106AH
+.$CRT EQU 0106CH
+.$LPT EQU 0106EH
+TEXTST EQU 01070H
+TEXTED EQU 01072H
+VARST EQU 01074H
+STRST EQU 01076H
+VARED EQU 01078H
+TMPEND EQU 0107AH
+INTFAC EQU 0107CH
+MEMLMT EQU 0107EH
+MEMMAX EQU 01080H
+CURXY EQU 01082H
+POSADR EQU 01084H
+BITADR EQU 01086H
+POINTX EQU 01088H
+POINTY EQU 0108AH
+CURFLG EQU 0108CH
+CURMAK EQU 0108DH
+CMTMSG EQU 0108EH
+INPFLG EQU 0108FH
+DISPX EQU 01090H
+FILOUT EQU 01091H
+PSEL EQU 01092H
+PCRLF EQU 01093H
+LPT_TM EQU 01094H
+LPOSB EQU 01095H
+PSMAL EQU 01096H
+PNMODE EQU 01097H
+DMD EQU 01098H
+MEMOP EQU 01099H
+PWMODE EQU 0109AH
+CMODE EQU 0109BH
+CPLANE EQU 0109CH
+MAXCF EQU 0109DH
+PMASK EQU 0109EH
+GMODE EQU 0109FH
+TMCNT EQU 01195H
+SUMDT EQU 01197H
+CSMDT EQU 01199H
+TEMPW EQU 0119EH
+KEYBM1 EQU 011A3H
+KEYBUF EQU 011A4H
+KEY262 EQU 012AAH
+KEY264 EQU 012ACH
+KEY266 EQU 012AEH
+FUNBUF EQU 012B2H
+INBUFC EQU 01352H
+INBUFL EQU 01353H
+INBUF EQU 01354H
+LINLIM EQU 01364H
+KEYDAT EQU 01365H
+AMPM EQU 01366H
+SECD EQU 01367H
+XS EQU 01369H
+XE EQU 0136AH
+CWIDTH EQU 0136BH
+CSIZE EQU 0136DH
+YS EQU 0136FH
+YE EQU 01370H
+YW EQU 01371H
+SOF EQU 01372H
+SW EQU 01374H
+SSA EQU 01375H
+SEA EQU 01376H
+SSW EQU 01377H
+CRTMD1 EQU 01379H
+CRTMD2 EQU 0137AH
+SELCOL EQU 0137BH
+PAIWED EQU 0137CH
+PALBK EQU 0137EH
+PALAD EQU 0137FH
+PALTBL EQU 01381H
+PAL2T EQU 01385H
+PAL4T EQU 01389H
+PAL16T EQU 0138DH
+CURDT1 EQU 01391H
+CURDT2 EQU 01399H
+CURDT3 EQU 013A1H
+SCRNT0 EQU 013A9H
+EMFLG EQU 013C3H
+EMPTR EQU 013C4H
+EMWP0 EQU 013C6H
+EMWP1 EQU 013C8H
+PBCN EQU 013CEH
+HERRF EQU 013D9H
+CTABLE EQU 013DAH
+FONTBF EQU 01000H
+TEXTBF EQU 02000H
+BITBUF EQU 08000H
+IBUFE EQU 010F0H
+ERRTXT EQU 0FDA0H
+PRGSTART EQU 00000H
+;
+; RFS (ROM Filing System) hardware registers and constants
+PORT_DRAM EQU 0E1H ; OUT: map D000-FFFF to DRAM
+PORT_MMIO EQU 0E3H ; OUT: map D000-FFFF to VRAM/MMIO/ROM
+BNKCTRLRST EQU 0EFF8H ; RFS bank control reset register
+BNKCTRL EQU 0EFFFH ; Bank Control register (CS, CLK bits)
+HWSPIDATA EQU 0EFFBH ; Hardware SPI Data register (read/write)
+HWSPISTART EQU 0EFFCH ; Start SPI transfer register
+SDCS_ACT EQU 001H ; BNKCTRL: CS LOW (active), BBCLK enable
+SDCS_DEACT EQU 003H ; BNKCTRL: CS HIGH (inactive), BBCLK enable
+L8CA0 EQU 08CA0H ; Color attribute buffer address (was DS padding)
+
+ ORG PRGSTART
+
+L0000: JP L0CAF ; Cold start entry - JP to initialization
+
+L0003: JP L028C
+
+L0006: JP L05EC
+
+ JP L05E8
+
+L000C: JP L0BFD
+
+L000F: JP L05F1
+
+L0012: JP L0BFF
+
+L0015: JP L0BEE
+
+SVC_ENTRY: JP SVC_DISP ; RST 18H - SVC (Supervisor Call) dispatcher
+
+ JP L041C
+
+BRKCHK: JP L05C1
+
+ JP L30CB
+
+ JP L30D2
+
+L0027: JP L3114
+
+ JP L311B
+
+ JP L3153
+
+L0030: JP L14BC
+
+ JP L0955
+
+L0036: LD B,B
+ NOP
+RST38: JP BREAKZ ; RST 38H - Interrupt handler
+
+ JP L098F
+
+L003E: JP L0D3F
+
+L0041: JP L0D30
+
+ JP L0D05
+
+ JP L0D20
+
+ JP L028C
+
+L004D: DB 000H ; System status / work area
+L004E: DB 000H
+L004F: DB 0FFH
+L0050: DB 000H
+L0051: JP L0BEE ; Jump vector (dynamic)
+L0054: DS 2, 000H
+L0056: DB 000H
+L0057: DB 018H
+L0058: JP 0038AH ; Jump vector (dynamic)
+L005B: DB 000H
+ DB 027H
+L005D: DB 071H
+ DB 000H
+L005F: DB 000H
+L0060: DB 0EFH
+ DB 0C3H
+ DB 037H
+ DB 00AH
+L0064: DB 000H
+L0065: DB 000H
+L0066: DB 000H
+L0067: DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 0ADH
+ DB 007H
+ DB 0F1H
+ DB 008H
+L0071: DB 015H
+ DB 008H
+ DB 012H
+ DB 008H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+L0080: DB 000H
+L0081: DB 0ADH
+ DB 007H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 01EH
+ DB 008H
+ DB LSWF
+ DB 007H
+ DB LSPAL
+ DB 007H
+ DB LSD1
+ DB 007H
+ DB QDPD
+ DB 007H
+ DB 054H
+ DB 007H
+ DB 074H
+ DB 007H
+ DB 018H
+ DB 008H
+ DB 0BAH
+ DB 008H
+ DB 012H
+ DB 008H
+ DB LSE5
+ DB 000H
+ DB 0ADH
+ DB 007H
+ DB LSE5
+L00A0: DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+.NOP: DB 000H
+.HL: DS 11, 000H
+.RET: DS 8, 000H
+PUSHRA: DS 6, 000H
+L00C0: DS 7, 000H
+PUSHR: DS 18, 000H
+L00D9: DB 000H
+L00DA: DI
+ LD SP,L0000
+ IM 1
+ OUT (LSE1),A
+ JP L1800
+
+BREAKZ: RET
+
+BREAKX: DI
+ OUT (LSE3),A
+L00E9: LD A,(HL)
+ OUT (LSE1),A
+ EI
+ERRORJ: RET
+
+POPRA: DI
+ OUT (LSE3),A
+ LD (HL),A
+ OUT (LSE1),A
+ EI
+ RET
+
+ JP L026A
+
+L00F9: NOP
+L00FA: JP (HL)
+
+IOOUT: EX (SP),IX
+ PUSH HL
+ PUSH BC
+ PUSH DE
+L0100: PUSH AF
+ PUSH HL
+ LD HL,L0114
+ EX (SP),HL
+ JP (IX)
+
+SKPDE: EX (SP),IX
+ PUSH HL
+ PUSH BC
+ PUSH DE
+DEVASC: PUSH HL
+ LD HL,L0115
+ EX (SP),HL
+ JP (IX)
+
+L0114: POP AF
+L0115: POP DE
+ POP BC
+ POP HL
+ POP IX
+ RET
+
+CHKACC: EX (SP),HL
+ PUSH BC
+ LD B,(HL)
+L011E: INC HL
+ CP (HL)
+ JR Z,L0127 ; (+005H)
+ DJNZ L011E ; (-006H)
+ INC HL
+ JR L012A ; (+003H)
+
+L0127: INC HL
+ DJNZ L0127 ; (-003H)
+L012A: POP BC
+ EX (SP),HL
+ RET
+
+LDDEMI: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ RET
+
+LDDEMD: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ RET
+
+?CLRHL: XOR A
+?SETHL: LD (HL),A
+ INC HL
+ DJNZ ?SETHL ; (-004H)
+ RET
+
+?CLRDE: XOR A
+?SETDE: LD (DE),A
+ INC DE
+L0140: DJNZ ?SETDE ; (-004H)
+ RET
+
+LDDEHL: LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ DJNZ LDDEHL ; (-006H)
+ RET
+
+LDHLDE: LD A,(DE)
+ LD (HL),A
+ INC HL
+ INC DE
+ DJNZ LDHLDE ; (-006H)
+ RET
+
+INDRCT: PUSH AF
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ POP AF
+ RET
+
+ADDHLA: ADD A,L
+ LD L,A
+ RET NC
+ INC H
+ RET
+
+INCHLF: INC HL
+HLFTCH: LD A,(HL)
+ CP 020H
+ JR Z,INCHLF ; (-006H)
+ RET
+
+TEST1: CALL HLFTCH
+ EX (SP),HL
+L0168: CP (HL)
+ INC HL
+ EX (SP),HL
+ RET NZ
+ INC HL
+ RET
+
+TESTX: CALL HLFTCH
+ EX (SP),HL
+ CP (HL)
+ INC HL
+ EX (SP),HL
+ INC HL
+ RET Z
+ LD A,001H
+ JR L0182 ; (+007H)
+
+L017B: XOR A
+ LD HL,0803EH
+ LD HL,L80F6
+L0182: PUSH AF
+ CALL L0D20
+ POP AF
+ JP L0000
+
+; ---------------------------------------------------------------------------
+; SVC Dispatch Table — 80 entries (#00-#4F), each a 16-bit handler address.
+; RST 018H reads the SVC number (byte after RST), looks up handler[SVC*2].
+; ---------------------------------------------------------------------------
+L018A: DW 03D7CH ; SVC #00
+ DW 005ECH ; SVC #01
+ DW 005E8H ; SVC #02
+ DW 00BFFH ; SVC #03
+ DW 00C43H ; SVC #04
+ DW 00908H ; SVC #05
+ DW 00FA9H ; SVC #06
+ DW 00F3EH ; SVC #07
+ DW 00BC8H ; SVC #08
+ DW 00BCAH ; SVC #09
+ DW 00BD8H ; SVC #0A
+ DW 00BE6H ; SVC #0B
+ DW 0028CH ; SVC #0C
+ DW 0038AH ; SVC #0D
+ DW 005C1H ; SVC #0E
+ DW 014A0H ; SVC #0F
+ DW 00A87H ; SVC #10
+ DW 00A89H ; SVC #11
+ DW 00A37H ; SVC #12
+ DW 01446H ; SVC #13
+ DW 01476H ; SVC #14
+ DW 01491H ; SVC #15
+ DW 01406H ; SVC #16
+ DW 0025CH ; SVC #17
+ DW 00CE1H ; SVC #18
+ DW 00CE8H ; SVC #19
+ DW 00CEFH ; SVC #1A
+ DW 014E5H ; SVC #1B
+ DW 013A4H ; SVC #1C
+ DW 01372H ; SVC #1D
+ DW 0064BH ; SVC #1E
+ DW 000E5H ; SVC #1F
+ DW 00D3EH ; SVC #20
+ DW 00030H ; SVC #21
+ DW 000E5H ; SVC #22
+ DW 000E5H ; SVC #23
+ DW 000E5H ; SVC #24
+ DW 0098FH ; SVC #25
+ DW 00955H ; SVC #26
+ DW 000E5H ; SVC #27
+ DW 01BE8H ; SVC #28
+ DW 01EDBH ; SVC #29
+ DW 01F1DH ; SVC #2A
+L01E0: DW 01EF1H ; SVC #2B
+ DW 01A3DH ; SVC #2C
+ DW 01AB8H ; SVC #2D
+ DW 019E0H ; SVC #2E
+ DW 01B71H ; SVC #2F
+ DW 01CB4H ; SVC #30
+ DW 01CD8H ; SVC #31
+ DW 01CC9H ; SVC #32
+ DW 01AE1H ; SVC #33
+ DW 018D0H ; SVC #34
+ DW 018E4H ; SVC #35
+ DW 0194CH ; SVC #36
+ DW 0180FH ; SVC #37
+ DW 01BA7H ; SVC #38
+ DW 01D1BH ; SVC #39
+ DW 014DDH ; SVC #3A
+L0200: DW 000E5H ; SVC #3B
+ DW 01E58H ; SVC #3C
+ DW 02C67H ; SVC #3D
+ DW 02CB6H ; SVC #3E
+ DW 02C46H ; SVC #3F
+ DW 02900H ; SVC #40
+ DW 02A9DH ; SVC #41
+ DW 02925H ; SVC #42
+ DW 01FABH ; SVC #43
+ DW 02AFCH ; SVC #44
+ DW 00774H ; SVC #45
+ DW 000E5H ; SVC #46 (BREAKZ)
+ DW 000E5H ; SVC #47
+ DW 000E5H ; SVC #48
+ DW 000E5H ; SVC #49
+ DW 000E5H ; SVC #4A
+ DW 000E5H ; SVC #4B
+ DW 000E5H ; SVC #4C
+ DW 000E5H ; SVC #4D
+ DW 000E5H ; SVC #4E
+ DW 000E5H ; SVC #4F
+SVC_DISP: EX (SP),HL
+ PUSH AF
+ LD A,(HL)
+ INC HL
+ PUSH HL
+ LD HL,L018A
+ ADD A,A
+ ADD A,L
+ JR NC,L0237 ; (+001H)
+ INC H
+L0237: LD L,A
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ LD (00243H),HL
+ POP HL
+ POP AF
+ EX (SP),HL
+ JP L0000
+
+IOCALL: PUSH HL
+ PUSH DE
+ LD (00251H),IX
+ LD IX,00180H
+ OR A
+ CALL L0000
+ POP DE
+ POP HL
+ RET NC
+ OR A
+ SCF
+L0258: RET Z
+ JP 00180H
+
+ PUSH DE
+ LD B,000H
+L025F: LD A,(DE)
+ OR A
+ JR Z,L0268 ; (+005H)
+ INC DE
+ INC B
+ JR NZ,L025F ; (-008H)
+ DEC B
+L0268: POP DE
+ RET
+
+L026A: PUSH HL
+ LD HL,(L0054)
+ PUSH HL
+ PUSH DE
+ CALL PUSHW
+ POP DE
+ LD (HL),000H
+ POP HL
+ CALL L028C
+ JR C,L028A ; (+00eH)
+ LD A,(L005B)
+ SUB L
+ JR NC,L028A ; (+008H)
+ NEG
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ EX DE,HL
+ OR A
+L028A: POP HL
+ RET
+
+L028C: PUSH BC
+ PUSH HL
+ PUSH DE
+L028F: CALL L0391
+ CP 00DH
+ JP Z,L0311
+ CP 01BH
+ JR Z,L02E8 ; (+04dH)
+ PUSH AF
+ CP 020H
+DEASC: JR C,L02CD ; (+02dH)
+ JR L02C8 ; (+026H)
+
+L02A2: LD A,(L004D)
+ OR A
+ JR NZ,L02C8 ; (+020H)
+ LD A,(00B18H)
+ RRCA
+ JR C,L02C8 ; (+01aH)
+ LD A,(L004E)
+ OR A
+ JR NZ,L02C8 ; (+014H)
+ POP AF
+ LD HL,L06C1
+ CP 011H
+ JR Z,L02C3 ; (+007H)
+ LD HL,L06E7
+ CP 012H
+ JR NZ,L02C9 ; (+006H)
+L02C3: CALL L00FA
+ JR L028F ; (-039H)
+
+L02C8: POP AF
+L02C9: RST 018H
+ DB 003H
+ JR L028F ; (-03eH)
+
+L02CD: LD A,(L0060)
+ CP 0FFH
+ JR NZ,L02A2 ; (-032H)
+ POP AF
+ CP 017H
+ JR NC,L02C9 ; (-010H)
+ CP 011H
+ JR C,L02C9 ; (-014H)
+ LD HL,(00B18H)
+ BIT 6,L
+ JR Z,L02C9 ; (-01bH)
+ RST 018H
+ DB 004H
+ JR L028F ; (-059H)
+
+L02E8: SCF
+CKHEX: PUSH AF
+ LD A,00DH
+ RST 018H
+ DB 003H
+ POP AF
+ POP DE
+ POP HL
+ POP BC
+ RET
+
+L02F3: CALL PUSHW
+L02F6: LD A,(HL)
+ OR A
+MHALT: RET Z
+ DEC HL
+ DEC E
+ LD A,(L0056)
+ CP E
+ JR C,L02F6 ; (-00bH)
+ RET
+
+L0302: CALL PUSHW
+L0305: INC E
+ INC HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD A,(L0057)
+ CP E
+ JR NC,L0305 ; (-00bH)
+ RET
+
+L0311: LD HL,(L0054)
+SETDFL: CALL L02F3
+ LD D,E
+ CALL L0305
+ LD A,(L005B)
+ LD L,A
+ LD A,E
+ SUB D
+ LD E,A
+ LD H,D
+ADDP1: LD D,L
+ RST 018H
+ DB 01EH
+ LD A,(0005CH)
+ SUB D
+ADDP2: INC A
+ LD D,A
+ POP BC
+ PUSH BC
+ EXX
+ PUSH HL
+ LD HL,(L004F)
+ EXX
+L0334: PUSH DE
+ PUSH HL
+L0336: CALL BREAKX
+ RST 018H
+ DB 01CH
+ INC HL
+ LD (BC),A
+ INC BC
+L033E: EXX
+ DEC L
+ERRX: JR Z,L0354 ; (+012H)
+ EXX
+ DEC D
+ JR NZ,L0336 ; (-010H)
+ POP HL
+ PUSH BC
+ LD BC,00028H
+ ADD HL,BC
+ POP BC
+ POP DE
+ DEC E
+ JR NZ,L0334 ; (-01dH)
+ PUSH DE
+ PUSH HL
+ EXX
+L0354: EXX
+ POP HL
+ POP DE
+ EXX
+ POP HL
+ EXX
+ XOR A
+ LD (BC),A
+ LD L,C
+ LD H,B
+ POP DE
+ PUSH DE
+ PUSH HL
+ OR A
+ SBC HL,DE
+ LD B,L
+ POP HL
+ LD A,020H
+ LD D,A
+ JP Z,CKHEX
+ DEC HL
+L036D: LD A,(HL)
+ OR A
+ JR Z,L0376 ; (+005H)
+ CP D
+ JR NZ,L037D ; (+009H)
+ LD (HL),000H
+L0376: DEC HL
+ DJNZ L036D ; (-00cH)
+ OR A
+ JP CKHEX
+
+L037D: LD A,(HL)
+ OR A
+ JR NZ,L0383 ; (+002H)
+ LD (HL),020H
+L0383: DEC HL
+ DJNZ L037D ; (-009H)
+ OR A
+ JP CKHEX
+
+ INC A
+ JR Z,L0406 ; (+079H)
+ DEC A
+ JP Z,L041C
+L0391: CALL L0426
+ CALL SKPDE
+SETDNM: CALL L0648
+ CALL BREAKX
+ LD D,A
+ LD A,(L0060)
+ LD E,A
+ CALL POPRA
+ XOR A
+ DI
+ OUT (LSE3),A
+ LD (0E000H),A
+ CPL
+ LD (0E000H),A
+ OUT (LSE1),A
+ EI
+ LD C,000H
+ EX AF,AF'
+ PUSH AF
+ CALL L0459
+ LD A,000H
+L03BC: EX AF,AF'
+L03BD: LD B,010H
+L03BF: CALL L043C
+ CALL L0459
+ BIT 1,A
+ JR NZ,L03BD ; (-00cH)
+ DJNZ L03BF ; (-00cH)
+ BIT 0,A
+ JR Z,L03DB ; (+00cH)
+ BIT 2,A
+ JR NZ,L03EC ; (+019H)
+ EX AF,AF'
+ DEC A
+ JR NZ,L03BC ; (-01bH)
+ LD A,006H
+ JR L03EE ; (+013H)
+
+L03DB: PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,INKEY1
+ LD DE,L0B17
+ LD BC,0000AH
+L03E7: LDIR
+ POP BC
+ POP DE
+ POP HL
+L03EC: LD A,040H
+L03EE: LD (003BBH),A
+L03F1: CALL L043C
+ CALL L0494
+ OR A
+ JR Z,L03F1 ; (-009H)
+ LD (L005F),A
+ LD C,A
+ LD A,D
+ CALL POPRA
+ POP AF
+ EX AF,AF'
+ LD A,C
+ RET
+
+L0406: CALL L0426
+ PUSH HL
+ CALL L0494
+ LD HL,L005F
+ OR A
+ JR Z,L0419 ; (+006H)
+ CP (HL)
+ JR NZ,L0419 ; (+003H)
+ POP HL
+ XOR A
+ RET
+
+L0419: LD (HL),A
+ POP HL
+ RET
+
+L041C: CALL L0426
+ CALL L0494
+ LD (L005F),A
+ RET
+
+L0426: PUSH HL
+ LD HL,(L1360)
+ LD A,L
+ CP H
+ POP HL
+ RET Z
+ EX (SP),HL
+ INC A
+ LD (L1360),A
+ LD HL,L1361
+ CALL ADDHLA
+ LD A,(HL)
+ POP HL
+ RET
+
+L043C: DI
+ OUT (LSE3),A
+ LD A,(0E002H)
+ OUT (LSE1),A
+ EI
+ RLCA
+ RLCA
+ LD A,C
+ JR C,L0451 ; (+007H)
+ OR A
+ RET Z
+ LD C,000H
+ LD A,D
+DPALBK: JR L0456 ; (+005H)
+
+L0451: DEC A
+ RET Z
+ LD C,001H
+ LD A,E
+L0456: JP POPRA
+
+L0459: CALL SKPDE
+ LD DE,INKEY1
+ LD HL,L0B17
+ LD BC,L0A00
+ DI
+ OUT (LSE3),A
+L0468: LD A,B
+ ADD A,0EFH
+ LD (0E000H),A
+ CP FDPA
+ LD A,(0E001H)
+ JR NZ,L0477 ; (+002H)
+ OR 07FH
+L0477: CP 0FFH
+ JR Z,L047D ; (+002H)
+ SET 0,C
+L047D: EX DE,HL
+ CP (HL)
+ LD (HL),A
+ EX DE,HL
+ JR Z,L0485 ; (+002H)
+ SET 1,C
+L0485: CPL
+ AND (HL)
+ JR Z,L048B ; (+002H)
+ SET 2,C
+L048B: INC HL
+ INC DE
+ DJNZ L0468 ; (-027H)
+ LD A,C
+L0490: OUT (LSE1),A
+ EI
+DGCOL: RET
+
+L0494: CALL SKPDE
+ LD HL,L0B17
+ LD DE,INKEY1
+ PUSH HL
+ PUSH DE
+ LD BC,0000AH
+ LDIR
+ POP HL
+ POP DE
+ LD BC,L0AF9
+ DI
+ OUT (LSE3),A
+ LD A,C
+ LD (0E000H),A
+ NOP
+ LD A,(0E001H)
+ LD (DE),A
+L04B5: LD A,C
+ LD (0E000H),A
+ CP FDPA
+ LD A,(0E001H)
+ LD (DE),A
+ JR Z,L04E4 ; (+023H)
+ CPL
+ AND (HL)
+L04C3: LD (HL),A
+ INC DE
+ INC HL
+ DEC C
+ DJNZ L04B5 ; (-014H)
+ OUT (LSE1),A
+ EI
+ LD BC,L0A00
+L04CF: DEC HL
+ LD A,(HL)
+ OR A
+ JR NZ,L0507 ; (+033H)
+ INC C
+ DJNZ L04CF ; (-008H)
+ LD B,00AH
+L04D9: DEC DE
+ LD A,(DE)
+ CP 0FFH
+ JR NZ,L04E7 ; (+008H)
+L04DF: DJNZ L04D9 ; (-008H)
+L04E1: XOR A
+ JR L0490 ; (-054H)
+
+L04E4: XOR A
+ JR L04C3 ; (-024H)
+
+L04E7: LD A,B
+ CP 002H
+ JR NZ,L04F5 ; (+009H)
+L04EC: LD A,(DE)
+ AND 081H
+DWIDTH: JR NZ,L04DF ; (-012H)
+ LD A,01BH
+ JR L0490 ; (-065H)
+
+L04F5: CP 001H
+ JR Z,L04E1 ; (-018H)
+ CP 000H
+ JR NZ,L04DF ; (-01eH)
+ LD A,(DE)
+ AND 001H
+ JR NZ,L04DF ; (-023H)
+ LD A,(L005F)
+ JR L0490 ; (-077H)
+
+L0507: PUSH AF
+ LD A,B
+ LD (004FAH),A
+ LD A,(HL)
+ LD (004FFH),A
+ POP AF
+ DEC B
+ JR NZ,L054A ; (+036H)
+ CALL L05B7
+ LD A,(00B18H)
+ BIT 6,A
+ JR Z,L04E1 ; (-03dH)
+ BIT 0,A
+ LD A,B
+ JR NZ,L0525 ; (+002H)
+ ADD A,005H
+L0525: CP 00AH
+ JR NC,L04E1 ; (-048H)
+ LD L,A
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ LD BC,L12C0
+ ADD HL,BC
+ LD A,(HL)
+ OR A
+ JR Z,L04E1 ; (-057H)
+ LD DE,L1360
+ LD A,001H
+ LD (DE),A
+L053E: INC DE
+ LD BC,00010H
+ LDIR
+ LD A,(01362H)
+ JP L0490
+
+L054A: CALL L05B7
+ LD A,C
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,B
+ LD L,A
+ LD H,000H
+ LD A,(00B18H)
+ BIT 6,A
+ LD BC,L0B2B
+ JR Z,L058E ; (+02fH)
+ PUSH AF
+ LD A,(L0060)
+ CP 043H
+ JR NZ,L056B ; (+004H)
+ POP AF
+ XOR 001H
+ PUSH AF
+L056B: POP AF
+ BIT 0,A
+ JR NZ,L0573 ; (+003H)
+ LD BC,L0B3D
+L0573: LD A,(L0060)
+ CP 0FFH
+ JR NZ,L0587 ; (+00dH)
+ LD BC,L0B4F
+ LD A,(00B18H)
+ BIT 0,A
+ JR Z,L0587 ; (+003H)
+ LD BC,L0B61
+L0587: CALL L13E0
+ LD A,C
+ JP L0490
+
+L058E: CALL L13E0
+ LD A,C
+ CP 020H
+ JP C,L0490
+ LD HL,L0B73
+ LD B,005H
+L059C: CP (HL)
+ JR Z,L05B1 ; (+012H)
+ INC HL
+ DJNZ L059C ; (-006H)
+ CP 040H
+ JP C,L04E1
+ CP 05BH
+ JP NC,L04E1
+ SUB 040H
+ JP L0490
+
+L05B1: LD A,020H
+ SUB B
+ JP L0490
+
+L05B7: LD B,008H
+L05B9: RRCA
+ JR C,L05BF ; (+003H)
+ DJNZ L05B9 ; (-005H)
+ RET
+
+L05BF: DEC B
+ RET
+
+L05C1: LD A,0E8H
+ DI
+ OUT (LSE3),A
+ LD (0E000H),A
+ NOP
+ LD A,(0E001H)
+ OUT (LSE1),A
+ EI
+ AND 081H
+ RET Z
+ RLCA
+ RET C
+ JR L05C1 ; (-016H)
+
+L05D7: CALL SKPDE
+ LD HL,(L0054)
+ LD A,(L005B)
+ CP L
+ RET C
+ CALL PUSHW
+ LD A,(HL)
+ OR A
+ RET
+
+L05E8: CALL L05D7
+ RET Z
+L05EC: LD A,00DH
+ JP L0BFF
+
+L05F1: CALL L0BFD
+ LD A,(L0054)
+L05F7: SUB 00AH
+LBOUND: JR NC,L05F7 ; (-004H)
+ ADD A,00AH
+ RET Z
+ JR L05F1 ; (-00fH)
+
+L0600: CALL IOOUT
+ LD HL,(L0054)
+ PUSH HL
+ PUSH AF
+ RST 018H
+ DB 01EH
+ POP AF
+ RST 018H
+ DB 01DH
+ CALL POPRA
+ SET 3,H
+ LD DE,(0005DH)
+ LD A,E
+ OR D
+ CALL POPRA
+ POP HL
+ INC L
+HCLSW: LD A,(0005CH)
+ CP L
+ JP NC,L07EC
+L0624: LD A,(L005B)
+ LD L,A
+ INC H
+ PUSH HL
+ CALL PUSHW
+ LD (HL),001H
+ POP HL
+ LD A,(L0057)
+ CP H
+ JP NC,L07EC
+ LD H,A
+ PUSH HL
+ CALL L0730
+ POP HL
+ JP L07EC
+
+PUSHW: LD E,H
+ LD D,000H
+ LD HL,.HL
+ ADD HL,DE
+ RET
+
+L0648: LD HL,(L0054)
+ PUSH DE
+ PUSH AF
+ LD D,LSD0
+ LD E,L
+ LD A,H
+ ADD A,A
+HCLS: ADD A,A
+ ADD A,H
+ LD L,A
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,DE
+L065B: POP AF
+ POP DE
+ RET
+
+L065E: ADD A,A
+ LD HL,L0067
+ CALL ADDHLA
+ CALL INDRCT
+ JP (HL)
+
+L0669: LD B,D
+ LD C,E
+L066B: LD DE,00028H
+ EX DE,HL
+ ADD HL,DE
+ DEC B
+ JR Z,L067E ; (+00bH)
+ PUSH HL
+ PUSH BC
+ LD B,000H
+ CALL L069E
+ POP BC
+ POP HL
+ JR L066B ; (-013H)
+
+L067E: EX DE,HL
+ LD E,C
+L0680: LD A,(L005D)
+ LD D,A
+ LD A,(0005EH)
+ OR D
+ LD D,A
+L0689: DI
+ OUT (LSE3),A
+ LD (HL),000H
+ SET 3,H
+ LD (HL),D
+ RES 3,H
+ OUT (LSE1),A
+ EI
+ INC HL
+ DEC E
+ JR NZ,L0689 ; (-011H)
+ RET
+
+L069B: LD BC,00028H
+L069E: LD A,0B0H
+ JR L06A4 ; (+002H)
+
+L06A2: LD A,0B8H
+L06A4: LD (006BCH),A
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ RES 3,H
+ RES 3,D
+ CALL L06B8
+ POP BC
+ POP DE
+ POP HL
+ SET 3,H
+ SET 3,D
+L06B8: DI
+ OUT (LSE3),A
+ LDIR
+ OUT (LSE1),A
+ EI
+ RET
+
+L06C1: LD HL,0D000H
+ LD DE,0D7D0H
+ CALL L069B
+ LD HL,0D028H
+ LD DE,0D000H
+ LD B,032H
+L06D2: PUSH BC
+ CALL L069B
+ POP BC
+ DJNZ L06D2 ; (-007H)
+ LD HL,.HL
+ LD D,H
+ LD E,L
+ LD A,(HL)
+ INC HL
+ LD BC,00031H
+ LDIR
+ LD (DE),A
+ RET
+
+L06E7: LD HL,0D7CFH
+ LD DE,0D7F7H
+ LD B,032H
+L06EF: PUSH BC
+ LD BC,00028H
+ CALL L06A2
+ POP BC
+ DJNZ L06EF ; (-00aH)
+ LD HL,0D7D0H
+ LD DE,0D000H
+ CALL L069B
+ LD HL,L00D9
+ LD D,H
+ LD E,L
+ DEC HL
+ LD A,(DE)
+ LD BC,00031H
+ LDDR
+ LD (DE),A
+ RET
+
+L0710: LD HL,0D3E8H
+ XOR A
+ CALL POPRA
+ SET 3,H
+ LD A,(L005D)
+ CALL POPRA
+ LD DE,0D3E9H
+ LD BC,L0027
+ CALL L069E
+ CALL L06C1
+ XOR A
+ LD (L00C0),A
+ RET
+
+L0730: LD A,(L004E)
+ OR A
+ JR Z,L0710 ; (-026H)
+ CALL L075F
+ CALL L0669
+ LD A,(L0056)
+ LD H,A
+ CALL PUSHW
+ LD A,(L0057)
+ SUB E
+ LD B,A
+ LD (HL),000H
+ INC HL
+ LD D,H
+ LD E,L
+ INC DE
+ CALL NZ,LDHLDE
+ LD (HL),000H
+ RET
+
+L0754: LD A,(L005B)
+ LD L,A
+ LD A,(L0056)
+ LD H,A
+ JP L07EC
+
+L075F: LD HL,(L005B)
+ LD DE,(00056H)
+ LD A,D
+ SUB E
+ INC A
+ LD D,A
+ LD A,H
+ SUB L
+ INC A
+ LD E,A
+ CALL L0754
+ JP L0648
+
+ CALL SKPDE
+ LD A,(L004E)
+ OR A
+ JR NZ,L078B ; (+00eH)
+ LD A,031H
+ LD (L0057),A
+ CALL L078B
+ LD A,018H
+ LD (L0057),A
+ RET
+
+L078B: CALL L075F
+L078E: PUSH DE
+ PUSH HL
+ CALL L0680
+ POP HL
+ LD BC,00028H
+ ADD HL,BC
+ POP DE
+ DEC D
+ JR NZ,L078E ; (-00eH)
+ LD A,(L0056)
+ LD H,A
+ CALL PUSHW
+ LD A,(L0057)
+ SUB E
+ ADD A,002H
+ LD B,A
+ JP ?CLRHL
+
+ XOR A
+ LD (0091FH),A
+ LD HL,(L0054)
+ PUSH HL
+ INC H
+ CALL PUSHW
+ LD A,(L0057)
+ LD D,A
+L07BD: LD A,(HL)
+ OR A
+ JR Z,L07C7 ; (+006H)
+ INC HL
+ INC E
+ LD A,D
+ CP E
+ JR NC,L07BD ; (-00aH)
+L07C7: DEC E
+ POP HL
+ LD H,E
+ JR L07DB ; (+00fH)
+
+ LD HL,(L0054)
+ JR L07DF ; (+00eH)
+
+ LD HL,(L0054)
+ INC L
+ LD A,(0005CH)
+ CP L
+ JR NC,L07EC ; (+011H)
+L07DB: LD A,(L005B)
+ LD L,A
+L07DF: INC H
+ LD A,(L0057)
+ CP H
+ JR NC,L07EC ; (+006H)
+ LD H,A
+ PUSH HL
+ CALL L0730
+ POP HL
+L07EC: LD (L0054),HL
+ RET
+
+ LD HL,(L0054)
+ JR L0802 ; (+00dH)
+
+ LD HL,(L0054)
+ LD A,(L005B)
+ CP L
+ JR C,0080DH ; (+00fH)
+ LD A,(0005CH)
+ LD L,A
+L0802: LD A,(L0056)
+ CP H
+ JR C,0080FH ; (+007H)
+ LD A,(L0056)
+ LD H,A
+ LD A,02DH
+ LD A,025H
+ JR L07EC ; (-026H)
+
+ LD A,0EFH
+ LD HL,0433EH
+ LD HL,0FF3EH
+ LD (L0060),A
+ RET
+
+ LD HL,(L0054)
+ LD BC,(0005BH)
+ LD A,L
+ DEC L
+ INC C
+ CP C
+ JR NC,L0837 ; (+00cH)
+ PUSH HL
+ CALL PUSHW
+ LD A,(HL)
+ POP HL
+ INC L
+ OR A
+ JR Z,L0874 ; (+03fH)
+ LD L,B
+ DEC H
+L0837: LD DE,(00054H)
+ LD (L0054),HL
+L083E: EX DE,HL
+ LD A,(L005B)
+ CP L
+ JR C,L086D ; (+028H)
+L0845: PUSH HL
+ CALL PUSHW
+ LD A,(HL)
+ POP HL
+ OR A
+ JR Z,L085D ; (+00fH)
+ CALL L0882
+ PUSH HL
+ LD A,(0005CH)
+ LD L,A
+ DEC H
+ CALL L089A
+ POP HL
+ JR L0874 ; (+017H)
+
+L085D: LD A,(0005CH)
+ LD L,A
+ DEC H
+L0862: LD DE,(0005DH)
+ LD A,E
+ OR D
+ LD E,A
+ LD D,000H
+ JR L089A ; (+02dH)
+
+L086D: CALL L0882
+ DEC BC
+ CALL L0895
+L0874: INC L
+ LD A,(0005CH)
+ CP L
+ JR NC,L086D ; (-00eH)
+ LD A,(L005B)
+ LD L,A
+ INC H
+ JR L0845 ; (-03dH)
+
+L0882: PUSH HL
+ RST 018H
+ DB 01EH
+ SET 3,H
+ CALL BREAKX
+ LD E,A
+ RES 3,H
+ CALL BREAKX
+ LD D,A
+ LD B,H
+ LD C,L
+ POP HL
+ RET
+
+L0895: PUSH HL
+ LD H,B
+ LD L,C
+ JR L089D ; (+003H)
+
+L089A: PUSH HL
+ RST 018H
+ DB 01EH
+L089D: SET 3,H
+ LD A,E
+ CALL POPRA
+ RES 3,H
+ LD A,D
+ CALL POPRA
+ LD B,H
+ LD C,L
+ POP HL
+ RET
+
+L08AD: LD HL,(L0054)
+ CALL L0302
+ DEC E
+ LD H,E
+ LD A,(0005CH)
+ LD L,A
+ RET
+
+ CALL L08AD
+ CALL L0882
+ LD A,LSPAL
+ CP D
+ JR Z,L08C8 ; (+003H)
+ XOR A
+ CP D
+ RET NZ
+L08C8: LD BC,(0005BH)
+ EX DE,HL
+ LD HL,(L0054)
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ JR Z,L0862 ; (-074H)
+ LD A,C
+ CP L
+ JR NC,L08E4 ; (+00aH)
+ DEC L
+ CALL L0882
+ INC BC
+ CALL L0895
+ JR L08C8 ; (-01cH)
+
+L08E4: PUSH HL
+ LD L,B
+ DEC H
+ CALL L0882
+ EX (SP),HL
+ CALL L089A
+ POP HL
+ JR L08C8 ; (-029H)
+
+ LD HL,L0071
+ LD (L005D),HL
+L08F7: LD HL,L1800
+ LD (L0056),HL
+ LD HL,L2700
+ LD (L005B),HL
+ XOR A
+ LD (L004E),A
+ RET
+
+ CALL SKPDE
+L090B: LD A,(DE)
+ INC DE
+ OR A
+ RET Z
+ LD C,A
+ CP 005H
+ JR Z,L0933 ; (+01fH)
+ CP 006H
+ JR Z,L0932 ; (+01aH)
+ SUB 041H
+ CP 01AH
+ JR NC,HCURON ; (+00dH)
+ LD A,000H
+ OR A
+ JR Z,HCURON ; (+008H)
+ LD A,C
+ LD HL,L08F7
+ CALL ADDHLA
+ LD C,(HL)
+HCURON: LD A,C
+ RST 018H
+ DB 003H
+ CP 00DH
+ JR NZ,L090B ; (-027H)
+L0932: XOR A
+L0933: LD (0091FH),A
+ JR L090B ; (-02dH)
+
+ AND C
+ SBC A,D
+ SBC A,A
+HCUROF: SBC A,H
+ SUB D
+ XOR D
+ SUB A
+ SBC A,B
+ AND (HL)
+ XOR A
+ XOR C
+ CP B
+ OR E
+FLASH: OR B
+ OR A
+ SBC A,(HL)
+ AND B
+ SBC A,L
+ AND H
+ SUB (HL)
+ AND L
+CURMOV: XOR E
+ AND E
+ SBC A,E
+ CP L
+ AND D
+ NOP
+ NOP
+L0954: NOP
+L0955: PUSH DE
+ PUSH HL
+ LD (L0954),A
+ LD (00952H),DE
+ LD HL,0E007H
+ DI
+ OUT (LSE3),A
+ LD (HL),0B4H
+ LD (HL),074H
+ DEC HL
+ LD (HL),0C0H
+ LD (HL),0A8H
+ DEC HL
+ LD (HL),002H
+ LD (HL),000H
+L0972: LD HL,0E007H
+ LD (HL),080H
+PONTCB: DEC HL
+ LD E,(HL)
+ LD D,(HL)
+PONTB: LD HL,0A8C0H
+ OR A
+ SBC HL,DE
+ JR NZ,L0972 ; (-010H)
+ LD HL,0E005H
+ LD (HL),0F6H
+ LD (HL),079H
+ OUT (LSE1),A
+ EI
+ POP HL
+ POP DE
+ RET
+
+L098F: PUSH BC
+ PUSH HL
+ DI
+ OUT (LSE3),A
+ LD HL,0E007H
+ LD (HL),080H
+ LD (HL),040H
+ DEC HL
+ LD E,(HL)
+ LD D,(HL)
+ DEC HL
+ LD C,(HL)
+ LD B,(HL)
+ OUT (LSE1),A
+ EI
+ PUSH BC
+ LD A,D
+L09A6: OR E
+ JR NZ,L09AC ; (+003H)
+ LD DE,0A8C0H
+L09AC: LD HL,0A8C0H
+ LD A,(L0954)
+ OR A
+ SBC HL,DE
+ LD DE,L5460
+ CALL L09EB
+ OR A
+ LD DE,(00952H)
+ RR D
+ RR E
+ PUSH AF
+ ADD HL,DE
+ LD DE,L5460
+ CALL L09EB
+ LD C,A
+ ADD HL,HL
+ EX DE,HL
+ POP AF
+ LD A,C
+ POP BC
+ PUSH AF
+ OR A
+ LD HL,03CFBH
+ SBC HL,BC
+ JR C,L09DC ; (+001H)
+ INC DE
+L09DC: POP AF
+ JR NC,L09E0 ; (+001H)
+ INC DE
+L09E0: EX DE,HL
+ LD DE,0A8C0H
+ CALL L09EB
+ EX DE,HL
+ POP HL
+ POP BC
+ RET
+
+L09EB: OR A
+ SBC HL,DE
+ JR NC,L09F2 ; (+002H)
+ ADD HL,DE
+ RET
+
+L09F2: XOR 001H
+ RET
+
+L09F5: LD A,04EH
+ DEC L
+ RET Z
+ LD A,056H
+ DEC L
+ RET Z
+ LD A,05EH
+ DEC L
+L0A00: RET Z
+ LD A,066H
+ DEC L
+ RET
+
+L0A05: PUSH DE
+ LD (00A23H),A
+ LD DE,0FFFFH
+ LD HL,0E002H
+ DI
+ OUT (LSE3),A
+L0A12: BIT 7,(HL)
+ JR Z,L0A12 ; (-004H)
+L0A16: BIT 7,(HL)
+ JR NZ,L0A16 ; (-004H)
+ LD L,008H
+ LD A,011H
+L0A1E: DEC A
+ JR NZ,L0A1E ; (-003H)
+L0A21: INC DE
+ BIT 0,(HL)
+ JR Z,L0A21 ; (-005H)
+ OUT (LSE1),A
+ EI
+ LD A,D
+ OR A
+ LD A,E
+ JR Z,L0A30 ; (+002H)
+ LD A,0FFH
+L0A30: LD (L0066),A
+ POP DE
+ POP HL
+ SCF
+ RET
+
+ INC A
+ PUSH HL
+ LD L,A
+ CALL L09F5
+ JR Z,L0A05 ; (-03aH)
+ CALL L09F5
+ LD (00A75H),A
+ LD (00A55H),A
+ LD HL,0E002H
+ DI
+ OUT (LSE3),A
+L0A4E: BIT 7,(HL)
+ JR Z,L0A4E ; (-004H)
+ LD L,008H
+ BIT 0,(HL)
+ LD A,L
+ JR Z,L0A5A ; (+001H)
+ XOR A
+L0A5A: LD (00A7CH),A
+ OUT (LSE1),A
+ LD A,009H
+L0A61: PUSH AF
+ XOR A
+L0A63: DEC A
+ JR NZ,L0A63 ; (-003H)
+ POP AF
+BINPUT: DEC A
+ JR NZ,L0A61 ; (-009H)
+ OUT (LSE3),A
+ LD L,002H
+L0A6E: BIT 7,(HL)
+ JR Z,L0A6E ; (-004H)
+ LD L,008H
+ BIT 0,(HL)
+ LD A,L
+ JR Z,L0A7A ; (+001H)
+ XOR A
+L0A7A: LD L,A
+ LD A,000H
+ AND L
+ LD (L0065),A
+ OUT (LSE1),A
+ EI
+GETL: POP HL
+ OR A
+ RET
+
+ DI
+ RET
+
+ EI
+ RET
+
+ DS 110, 000H
+L0AF9: DS 7, 000H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L0B17: NOP
+ NOP
+ NOP
+INKEY$: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+INKEY1: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L0B2B: JP PE,0900BH
+ RLA
+ CALL M,00019H
+ DEC SP
+ LD A,(L180D)
+ DJNZ L0B4A ; (+012H)
+ LD DE,01413H
+ CCF
+ CPL
+L0B3D: LD HL,(0900CH)
+ RLA
+ EI
+ DEC B
+ NOP
+ DEC HL
+ LD HL,(0160DH)
+ DEC D
+ LD (DE),A
+L0B4A: LD DE,01413H
+ ADD A,05FH
+L0B4F: JP (HL)
+
+ INC C
+ SUB B
+ RLA
+ LD L,B
+ DEC B
+ NOP
+ ADD A,H
+ JP (HL)
+
+ DEC C
+ LD D,015H
+ LD (DE),A
+ LD DE,01413H
+ ADC A,A
+ ADC A,E
+L0B61: LD L,D
+ INC C
+ SUB B
+ RLA
+ LD L,H
+ ADD HL,DE
+ NOP
+ CP 089H
+ DEC C
+ LD D,015H
+ LD (DE),A
+ LD DE,01413H
+ ADC A,D
+ LD A,E
+L0B73: LD E,E
+ LD E,H
+ LD E,L
+ LD E,(HL)
+ CPL
+L0B78: SUB C
+ DEC BC
+ LD B,E
+ LD D,D
+ LD D,H
+ NOP
+ ADC A,D
+ NOP
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+INKEYF: XOR D
+ DEC BC
+ OR L
+ DEC BC
+ CALL NZ,0000BH
+ RRCA
+ LD C,E
+ LD B,D
+ NOP
+ NOP
+ ADD A,C
+ NOP
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+INKEY0: NOP
+ PUSH HL
+ NOP
+ XOR D
+ DEC BC
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ RST 018H
+ DB 00CH
+ LD A,080H
+ RET C
+ JP C,0017DH
+ RST 018H
+ DB 017H
+ RET
+
+ EX AF,AF'
+ LD HL,L0BFF
+L0BB9: LD A,(L1090)
+ OR A
+ JR Z,L0BC2 ; (+003H)
+ LD HL,L0C43
+L0BC2: EX AF,AF'
+ JP (HL)
+
+ LD A,(L0054)
+ RET
+
+ LD A,00DH
+L0BCA: PUSH AF
+ LD A,(L1091)
+L0BCE: OR A
+ JR NZ,L0BD4 ; (+003H)
+ POP AF
+ JR L0BFF ; (+02bH)
+
+L0BD4: POP AF
+ JP L0F3E
+
+ PUSH AF
+ LD A,(L1091)
+ OR A
+ JR NZ,L0BE2 ; (+003H)
+ POP AF
+ JR L0C43 ; (+061H)
+
+L0BE2: POP AF
+ JP L0F2E
+
+ CALL SKPDE
+ LD HL,L0BCA
+ JR L0BF4 ; (+006H)
+
+L0BEE: CALL SKPDE
+ LD HL,L0BFF
+L0BF4: LD A,(DE)
+ OR A
+ RET Z
+ CALL L00FA
+ INC DE
+ JR L0BF4 ; (-009H)
+
+L0BFD: LD A,020H
+L0BFF: CALL IOOUT
+L0C02: LD C,A
+ LD A,(L004D)
+ OR A
+ JR Z,L0C3A ; (+031H)
+ LD A,C
+ CP 020H
+ JR NC,L0C37 ; (+029H)
+ LD DE,(00054H)
+ LD HL,(L005B)
+ CP 014H
+ JR Z,L0C21 ; (+008H)
+ CP 012H
+ JR NZ,L0C26 ; (+009H)
+ LD HL,(L0056)
+ LD E,D
+L0C21: LD A,L
+ CP E
+ JP NC,L0D3F
+L0C26: LD A,C
+ LD HL,L0C8F
+ ADD A,L
+ LD L,A
+ JR NC,L0C2F ; (+001H)
+ INC H
+L0C2F: LD A,(HL)
+ INC A
+ JR Z,L0C3A ; (+007H)
+ DEC A
+ JP Z,L0D3F
+L0C37: CALL L0C60
+L0C3A: LD A,C
+ CP 020H
+ JP C,L065E
+ JP L0600
+
+L0C43: CALL IOOUT
+ LD C,A
+ CP 00DH
+ JR Z,L0C02 ; (-049H)
+ CALL L0600
+ LD A,(L004D)
+ OR A
+ RET Z
+ LD A,C
+ CP 011H
+ JR C,L0C8A ; (+032H)
+ CP 017H
+ JR C,L0C8C ; (+030H)
+ CP 020H
+ JR C,L0C8A ; (+02aH)
+L0C60: CP 060H
+ JR C,L0C8C ; (+028H)
+ CALL CHKACC
+ ADD HL,BC
+ ADD A,B
+ LD A,E
+ ADD A,08BH
+ RST 010H
+ RST 008H
+ CALL M,0FFFBH
+ JR Z,L0C8C ; (+019H)
+ CP 092H
+ JR C,L0C8A ; (+013H)
+ CALL CHKACC
+ ADD HL,BC
+ SBC A,C
+ SUB L
+ XOR H
+ AND A
+ OR H
+ OR C
+ OR (HL)
+ OR L
+ CP H
+ JR Z,L0C8A ; (+004H)
+ CP 0BFH
+ JR C,L0C8C ; (+002H)
+L0C8A: LD A,02EH
+L0C8C: JP L0FA9
+
+L0C8F: NOP
+ NOP
+ NOP
+ NOP
+ RST 038H
+ RST 038H
+ RST 038H
+ DEC E
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC C
+ NOP
+ NOP
+ NOP
+ LD A,(BC)
+ INC BC
+ JR NZ,00CB2H ; (+00eH)
+ NOP
+ NOP
+ RST 038H
+ NOP
+ RST 038H
+ RST 038H
+ DEC C
+ RST 038H
+ NOP
+ NOP
+ NOP
+L0CAF: DI
+ XOR A
+ LD (L004D),A
+ LD (L1091),A
+ LD SP,L0000
+ OUT (LSE1),A
+ LD A,004H
+ RST 018H
+ DB 003H
+L0CC0: LD HL,L1B18
+ XOR A
+ LD (L0CC0),A
+ LD D,A
+ LD E,A
+ RST 018H
+ DB 026H
+ LD DE,$CMT
+ LD A,B
+ DEC A
+ JR Z,L0CDB ; (+009H)
+ LD DE,$FD
+ DEC A
+ JR Z,L0CDB ; (+003H)
+ LD DE,$QD
+L0CDB: LD A,C
+ RST 018H
+ DB 03AH
+ JP L00DA
+
+ LD HL,(L1072)
+ ADD HL,DE
+ LD (L1072),HL
+ LD HL,(L1074)
+ ADD HL,DE
+ LD (L1074),HL
+ LD HL,(L1076)
+ ADD HL,DE
+ LD (L1076),HL
+ LD HL,(L1078)
+ ADD HL,DE
+ LD (L1078),HL
+ LD HL,(L107A)
+ ADD HL,DE
+ LD (L107A),HL
+ RET
+
+L0D05: LD HL,(00B15H)
+L0D08: LD A,H
+ OR L
+ JR Z,L0D20 ; (+014H)
+ PUSH DE
+ EX DE,HL
+ LD HL,0E004H
+ DI
+ OUT (LSE3),A
+ LD (HL),E
+ LD (HL),D
+ LD A,001H
+ LD (0E008H),A
+ OUT (LSE1),A
+ EI
+ POP DE
+ RET
+
+L0D20: LD A,036H
+BRKEY: DI
+ OUT (LSE3),A
+ LD (0E007H),A
+ XOR A
+ LD (0E008H),A
+ OUT (LSE1),A
+ EI
+ RET
+
+L0D30: PUSH AF
+ PUSH BC
+ AND 00FH
+ LD B,A
+ LD A,008H
+ SUB B
+ LD (L119E),A
+ POP BC
+ POP AF
+ RET
+
+L0D3E: XOR A
+L0D3F: PUSH HL
+ LD HL,L04EC
+ JR Z,L0D4E ; (+009H)
+ CP 001H
+L0D47: JR Z,L0D59 ; (+010H)
+ CALL L0D08
+ POP HL
+ RET
+
+L0D4E: CALL L0D08
+ LD HL,L2710
+L0D54: DEC HL
+ LD A,H
+ OR L
+ JR NZ,L0D54 ; (-005H)
+L0D59: CALL L0D20
+ POP HL
+ RET
+
+$USR: DS 2, 000H ; $USR device descriptor
+L0D60: DB "USR",000H,09FH
+ DS 2, 000H
+ DB LSE5
+ DB 000H
+ DB 077H
+ DB 00DH
+ DB 077H
+ DB 00DH
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 086H
+ DB 00DH
+ DB 086H
+ DB 00DH
+ DB LSE5
+ DB 000H
+ DB 021H
+ DB 001H
+ DB 010H
+ DB 0DFH
+ DB 013H
+ LD A,D
+ OR E
+ JP Z,01F9AH
+ LD (ZWRK1),DE
+ RET
+
+ LD HL,(ZWRK1)
+ JP (HL)
+
+ DS 83, 000H
+EQTBL: DS 25, 000H
+$KB: DS 10, 000H
+L0E00: DS 16, 000H
+L0E10: DS 46, 000H
+L0E3E: DS 35, 000H
+CRT1C: DS 82, 000H
+PLTOTX: DS 77, 000H
+ RST 030H
+ CPL
+ LD C,H
+ LD D,B
+ LD D,H
+ NOP
+ ADC A,D
+ NOP
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ NOP
+ NOP
+ DAA
+ RRCA
+ ADD HL,DE
+ RRCA
+ LD A,(L1095)
+ RET
+
+L0F1D: LD A,00DH
+ CALL L0FA9
+ XOR A
+ LD (L1095),A
+ RET
+
+ LD HL,L1090
+ BIT 0,(HL)
+ JR Z,L0F3E ; (+010H)
+L0F2E: CALL IOOUT
+ LD B,A
+ LD A,(L004D)
+ OR A
+ LD A,B
+ LD E,0FFH
+ JR Z,L0F4E ; (+013H)
+ RST 018H
+ DB 004H
+ RET
+
+L0F3E: CALL IOOUT
+ LD B,A
+ LD A,(L004D)
+ OR A
+ LD A,B
+ LD E,000H
+ JR Z,L0F4E ; (+003H)
+ RST 018H
+ DB 003H
+ RET
+
+L0F4E: LD A,(L1097)
+ CP 001H
+ LD A,044H
+ JP NZ,00180H
+ LD A,B
+ CP 00DH
+ JR Z,L0F1D ; (-040H)
+ LD HL,L1095
+ INC (HL)
+ SUB 005H
+ CP 002H
+ JR C,L0F7C ; (+015H)
+ LD A,B
+ CP 020H
+ JR NC,L0FB0 ; (+044H)
+ BIT 0,E
+ JR Z,L0F80 ; (+010H)
+ SUB 011H
+ CP 006H
+ JR C,L0FB1 ; (+03bH)
+ SUB QDPC
+ CP 002H
+ JR NC,L0FAE ; (+032H)
+L0F7C: LD A,02EH
+ JR L0FB0 ; (+030H)
+
+L0F80: LD HL,L1095
+ DEC (HL)
+ LD A,B
+ CP 015H
+ LD B,00FH
+ JR Z,L0FB1 ; (+026H)
+ CP 011H
+ LD B,009H
+ JR Z,L0FB1 ; (+020H)
+ CP 012H
+ LD B,00BH
+ JR Z,L0FB1 ; (+01aH)
+ CP 016H
+ JR NZ,L0FB0 ; (+015H)
+ LD A,00CH
+ CALL L0FB0
+ LD A,00AH
+ CALL L0FB0
+ LD A,003H
+ JR L0FB0 ; (+007H)
+
+L0FA9: CALL IOOUT
+ JR L0FB0 ; (+002H)
+
+L0FAE: LD A,020H
+L0FB0: LD B,A
+L0FB1: CALL L0FCA
+ LD A,B
+ DI
+ CALL L0FBB
+ EI
+ RET
+
+L0FBB: OUT (0FFH),A
+ LD A,080H
+ OUT (0FEH),A
+ LD A,001H
+ CALL L0FCB
+L0FC6: XOR A
+ OUT (0FEH),A
+ RET
+
+L0FCA: XOR A
+L0FCB: CALL SKPDE
+ LD C,A
+ LD B,00EH
+L0FD1: LD HL,0E678H
+L0FD4: IN A,(0FEH)
+ AND 00DH
+ CP C
+ RET Z
+ DEC HL
+ LD A,H
+ OR L
+ NOP
+ NOP
+ JR NZ,L0FD4 ; (-00dH)
+ DJNZ L0FD1 ; (-012H)
+ XOR A
+ LD (L004D),A
+ CALL L0FC6
+ LD A,041H
+ JP L0182
+
+ DS 17, 000H
+L1000: NOP
+L1001: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1012: NOP
+ NOP
+L1014: NOP
+ NOP
+ NOP
+ NOP
+L1018: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L103E: NOP
+ NOP
+L1040: LD (BC),A
+ NOP
+L1042: NOP
+L1043: NOP
+L1044: NOP
+ NOP
+L1046: NOP
+ NOP
+ NOP
+ NOP
+L104A: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1050: LD BC,L0000
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1069: NOP
+ NOP
+ NOP
+ LD A,B
+ DEC BC
+ NOP
+ RRCA
+L1070: NOP
+ NOP
+L1072: NOP
+ NOP
+L1074: NOP
+ NOP
+L1076: NOP
+ NOP
+L1078: NOP
+ NOP
+L107A: NOP
+ NOP
+L107C: NOP
+ NOP
+L107E: NOP
+ NOP
+ NOP
+ RST 038H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1090: NOP
+L1091: NOP
+ LD BC,L0E00
+L1095: NOP
+ NOP
+L1097: LD BC,L0000
+ DS 86, 000H
+L10F0: DS 78, 000H
+L113E: DS 84, 000H
+ DB 0EFH
+ DS 4, 000H
+L1197: DS 6, 000H
+ DB 001H
+L119E: DB 004H
+ DB 005H
+ DS 3, 000H
+L11A3: DB 000H
+L11A4: DS 124, 000H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L123E: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1277: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L12C0: RLCA
+ LD D,D
+ LD D,L
+ LD C,(HL)
+ JR NZ,012E6H ; (+020H)
+ JR NZ,L12D5 ; (+00dH)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC B
+ LD C,H
+ LD C,C
+ LD D,E
+ LD D,H
+L12D5: JR NZ,L12D7 ; (+000H)
+L12D7: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC B
+ LD B,C
+ LD D,L
+ LD D,H
+ LD C,A
+ JR NZ,L12E7 ; (+000H)
+L12E7: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD B,052H
+ LD B,L
+ LD C,(HL)
+ LD D,L
+ LD C,L
+ JR NZ,L12F8 ; (+000H)
+L12F8: DS 8, 000H
+ INC B
+ LD B,H
+ LD C,C
+ LD D,D
+ JR NZ,L1306 ; (+000H)
+L1306: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC B
+ LD B,E
+ LD C,B
+ LD D,D
+ INC H
+ JR Z,L1317 ; (+000H)
+L1317: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ EX AF,AF'
+ LD B,H
+ LD B,L
+ LD B,(HL)
+ JR NZ,L1371 ; (+04bH)
+ LD B,L
+ LD E,C
+ JR Z,L132A ; (+000H)
+L132A: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ INC B
+ LD B,E
+ LD C,A
+ LD C,(HL)
+ LD D,H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L133E: NOP
+ NOP
+ LD B,053H
+ LD B,C
+ LD D,(HL)
+ LD B,L
+ JR NZ,L1367 ; (+020H)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD B,04CH
+ LD C,A
+ LD B,C
+ LD B,H
+ JR NZ,L1377 ; (+020H)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1360: NOP
+L1361: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1367: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1371: NOP
+ CALL L13D8
+ JR Z,L1385 ; (+00eH)
+L1377: CP 010H
+ JR C,L139B ; (+020H)
+ CP 080H
+ JR Z,L13A1 ; (+022H)
+ CP 0C0H
+ JR Z,L13A1 ; (+01eH)
+ JR L1391 ; (+00cH)
+
+L1385: CP 003H
+ JR Z,L139B ; (+012H)
+ CP 005H
+ JR Z,L139E ; (+011H)
+ CP 006H
+ JR Z,L139E ; (+00dH)
+L1391: DI
+ OUT (LSE2),A
+ CALL L0BB9
+ OUT (LSE0),A
+ EI
+ RET
+
+L139B: LD A,LSPAL
+ RET
+
+L139E: ADD A,0C9H
+ RET
+
+L13A1: SUB 040H
+ RET
+
+L13A4: CP LSPAL
+ JR NC,L13CF ; (+027H)
+ CP 073H
+ JR Z,L139B ; (-011H)
+ CALL L13D8
+ JR Z,L13BB ; (+00aH)
+ CP 040H
+ JR Z,L13D5 ; (+020H)
+ CP 080H
+ JR Z,L13D5 ; (+01cH)
+ JR L13C3 ; (+008H)
+
+L13BB: CP LSDMD
+ JR Z,L13D2 ; (+013H)
+ CP LSSCR
+ JR Z,L13D2 ; (+00fH)
+L13C3: DI
+ OUT (LSE2),A
+ CALL L0BCE
+ OUT (LSE0),A
+ EI
+ CP LSPAL
+ RET NZ
+L13CF: LD A,020H
+ RET
+
+L13D2: SUB 0C9H
+ RET
+
+L13D5: ADD A,040H
+ RET
+
+L13D8: PUSH HL
+ LD HL,L0036
+ BIT 6,(HL)
+ POP HL
+ RET
+
+L13E0: PUSH AF
+ LD A,L
+ SUB 008H
+ JR C,L13EA ; (+004H)
+ SUB 030H
+ JR C,L13F1 ; (+007H)
+L13EA: ADD A,00AH
+ LD L,A
+ ADD HL,BC
+ LD C,(HL)
+ POP AF
+ RET
+
+L13F1: LD A,(BC)
+ PUSH AF
+ INC BC
+ LD A,(BC)
+ LD B,A
+ POP AF
+ LD C,A
+ ADD HL,BC
+ DI
+ OUT (LSE2),A
+ LD A,(HL)
+ OUT (LSE0),A
+ EI
+ CALL L13A4
+ LD C,A
+ POP AF
+ RET
+
+ PUSH HL
+ PUSH BC
+ PUSH DE
+ LD DE,L2710
+ CALL L142C
+ LD DE,003E8H
+ CALL L142C
+ LD DE,L0064
+ CALL L142C
+ LD DE,0000AH
+ CALL L142C
+ LD A,L
+ POP DE
+ OR 030H
+ LD (DE),A
+ INC DE
+ XOR A
+ LD (DE),A
+ POP BC
+ POP HL
+ RET
+
+L142C: LD A,0FFH
+L142E: INC A
+ OR A
+ SBC HL,DE
+ JR NC,L142E ; (-006H)
+ ADD HL,DE
+ OR A
+ JR NZ,L143B ; (+003H)
+ OR B
+ RET Z
+ XOR A
+L143B: LD B,001H
+ OR 030H
+ POP DE
+ EX (SP),HL
+ LD (HL),A
+ INC HL
+ EX (SP),HL
+ PUSH DE
+ RET
+
+ CALL TEST1
+ DB 024H
+ JR Z,L1476 ; (+02aH)
+ LD DE,L0000
+L144F: CALL HLFTCH
+ SUB 030H
+ CP 00AH
+ RET NC
+ INC HL
+ PUSH HL
+ LD H,D
+ LD L,E
+ ADD HL,HL
+ JR C,L1471 ; (+013H)
+ ADD HL,HL
+ JR C,L1471 ; (+010H)
+ ADD HL,DE
+ JR C,L1471 ; (+00dH)
+ ADD HL,HL
+ JR C,L1471 ; (+00aH)
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ JR C,L1471 ; (+004H)
+ EX DE,HL
+ POP HL
+ JR L144F ; (-022H)
+
+L1471: LD A,002H
+ JP L0182
+
+L1476: LD DE,L0000
+L1479: LD A,(HL)
+ CALL L1491
+ RET C
+ INC HL
+ EX DE,HL
+ ADD HL,HL
+ JR C,L1471 ; (-012H)
+ ADD HL,HL
+ JR C,L1471 ; (-015H)
+ ADD HL,HL
+ JR C,L1471 ; (-018H)
+ ADD HL,HL
+ JR C,L1471 ; (-01bH)
+ ADD A,L
+ LD L,A
+ EX DE,HL
+ JR L1479 ; (-018H)
+
+L1491: SUB 030H
+ CP 00AH
+ CCF
+ RET NC
+ SUB 011H
+ CP 006H
+ CCF
+ RET C
+ ADD A,00AH
+ RET
+
+ CALL L14AD
+ CP 020H
+ RET NZ
+L14A6: CALL L14AD
+ OR A
+ JR Z,L14A6 ; (-006H)
+ RET
+
+L14AD: RST 018H
+ DB 00EH
+ JR Z,L14B8 ; (+007H)
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ CP 01BH
+ RET NZ
+L14B8: JP 0017DH
+
+ RET
+
+L14BC: CALL SKPDE
+ LD HL,L11A4
+ LD B,000H
+ PUSH HL
+ CALL LDHLDE
+ POP DE
+ LD (014DAH),SP
+ LD SP,L10F0
+ DI
+ OUT (LSE4),A
+ RST 030H
+ OUT (LSE0),A
+ OUT (LSE1),A
+ EI
+ LD SP,L0000
+ RET
+
+ LD (DDEV),DE
+ LD (L1069),A
+ RET
+
+ LD C,A
+ RST 018H
+ DB 020H
+ RST 018H
+ DB 002H
+ BIT 7,C
+ JR Z,L14F8 ; (+00aH)
+ LD HL,L11A4
+ PUSH HL
+ CALL L1535
+ POP DE
+ RST 018H
+ DB 005H
+L14F8: LD A,C
+ AND 07FH
+ JR L14FF ; (+002H)
+
+L14FD: LD A,045H
+L14FF: LD DE,L1554
+L1502: DEC A
+ JR Z,L150F ; (+00aH)
+ EX AF,AF'
+L1506: LD A,(DE)
+ INC DE
+ OR A
+ JP P,L1506
+ EX AF,AF'
+ JR L1502 ; (-00dH)
+
+L150F: LD A,(DE)
+ CP 080H
+ JR Z,L14FD ; (-017H)
+L1514: LD A,(DE)
+ OR A
+ JP M,L151F
+ CALL L152A
+ INC DE
+ JR L1514 ; (-00bH)
+
+L151F: AND 07FH
+ CALL L152A
+ LD DE,L179E
+ RST 018H
+ DB 005H
+ RET
+
+L152A: PUSH DE
+ LD DE,L1533
+ LD (DE),A
+ RST 018H
+ DB 005H
+ POP DE
+ RET
+
+L1533: NOP
+ NOP
+L1535: LD DE,(ZEQT)
+ INC DE
+ INC DE
+ RST 018H
+ DB 017H
+ CALL LDHLDE
+ LD A,(L1046)
+ ADD A,031H
+ LD (HL),A
+ LD A,(01051H)
+ AND 00FH
+ JR Z,L154E ; (+001H)
+ INC HL
+L154E: LD (HL),03AH
+ DB 023H
+ DB 036H
+ DB 000H
+ DB 0C9H
+L1554: DB 053H,005H,"YNTA",0D8H,04FH,005H,"VER FLO",0D7H,049H,005H
+ DS 2, 04CH
+ DB "EGAL DAT",0C1H,054H,005H,"YPE MISMATC",0C8H,053H,005H,"TRING LENGT",0C8H,04DH,005H,"EMORY CAPACIT",0D9H,041H,005H
+ DS 2, 052H
+ DB "AY DEF",0AEH,04CH,005H,"INELENGT",0C8H,080H,"GOSUB ",005H,"NESTIN",0C7H,"FOR-NEX",0D4H,"DEF FN ",005H,"NESTIN",0C7H,"NEX",0D4H,"RETUR"
+ DB LSDMD
+ DB 055H,005H,"N DEF. FUNCTIO"
+ DB LSDMD
+ DB 055H,005H,"N DEF. LIN",0C5H,043H,005H,"AN'T ",006H,"CON",0D4H,04DH,005H,"EMORY PROTECTIO"
+ DB LSDMD
+ DB 049H,005H,"NSTRUCTIO"
+ DB LSDMD
+ DB 043H,005H,"AN'T ",006H,"RESUM",0C5H,"RESUM",0C5H
+ DS 2, 080H
+ DB "REA",0C4H,"SWAP ",005H,"LEVE"
+ DB LSWF
+ DS 2, 080H
+ DB 053H,005H,"YSTEM I",0C4H,046H,005H,"RAMIN",0C7H,04FH,005H,056H,045H
+ DS 2, 052H
+ DB 055H
+ DB LSDMD
+ DB 050H,005H,"ARIT",0D9H
+ DS 8, 080H
+ DB 046H,005H,"ILE NOT FOUN",0C4H,048H,005H,"ARDWAR",0C5H,041H,005H,"LREADY EXIS",0D4H,041H,005H,"LREADY OPE"
+ DB LSDMD
+ DB 04EH,005H,"OT OPE"
+ DB LSDMD
+ DB 080H,057H,005H,"RITE PROTEC",0D4H
+ DS 3, 080H
+ DB 04EH,005H,"OT READ",0D9H,054H,005H
+ DS 2, 04FH
+ DB " MANY FILE"
+ DB LSD3
+ DB 044H,005H,"ISK MISMATC",0C8H,04EH,005H,"O FILE SPAC",0C5H,055H,005H,"NFORMA",0D4H,054H,005H
+ DS 2, 04FH
+ DB " LONG FIL",0C5H
+ DS 2, 080H
+ DB 044H,005H,"EV. NAM",0C5H,043H,005H,"AN'T EXECUT",0C5H,049H,005H
+ DS 2, 04CH
+ DB "EGAL FILENAM",0C5H,049H,005H
+ DS 2, 04CH
+ DB "EGAL FILEMOD",0C5H,080H,04FH,005H,"UT OF FIL",0C5H,04CH,005H,"OGICAL NUMBE"
+ DB LSD2
+ DB "LPT:"
+L1772: DB 04EH,005H,"OT READ",0D9H
+ DS 2, 080H
+ DB 044H,005H,"EV. MOD",0C5H,055H,005H,"NPRINTABL",0C5H,043H,005H,"HECK SU"
+ DB LSRF
+L179E: DB 020H
+ DB 005H
+ DB 045H
+ DS 2, 052H
+ DB 04FH
+ LD D,D
+ DS 91, 000H
+L1800: JP L4000
+
+L1803: LD A,(L1042)
+ CP 088H
+ RET
+
+L1809: NOP
+ NOP
+L180B: NOP
+ NOP
+L180D: NOP
+ NOP
+ CALL L181A
+ CALL L1821
+L1815: XOR A
+ LD (L1FC0),A
+ RET
+
+L181A: LD A,(L1042)
+ LD (L1FC0),A
+ RET
+
+L1821: CALL SKPDE
+ LD A,(L1050)
+ BIT 7,A
+ LD HL,L1848
+L182C: JR Z,L183D ; (+00fH)
+ BIT 3,A
+ LD HL,L1835
+ JR NZ,L183D ; (+008H)
+L1835: LD IX,(ZOUT)
+ CALL IOCALL
+ RET
+
+L183D: LD A,B
+L183E: OR A
+ RET Z
+ LD A,(DE)
+ CALL L00FA
+ INC DE
+ DEC B
+ JR L183D ; (-00bH)
+
+L1848: CALL SKPDE
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+ LD HL,(L180B)
+ ADD HL,DE
+ LD (HL),A
+ INC DE
+ LD HL,(ZKL)
+ OR A
+ SBC HL,DE
+ CALL Z,L1871
+ LD (IY+040H),E
+ LD (IY+041H),D
+ INC (IY+014H)
+ RET NZ
+ INC (IY+015H)
+ RET NZ
+ JP 01F91H
+
+L1871: PUSH BC
+ LD B,002H
+L1874: CALL L1D15
+ LD IX,L1835
+ JR Z,L1881 ; (+004H)
+ LD IX,L2907
+L1881: LD A,B
+ CALL L18B6
+ CALL L1890
+ INC (IY+04EH)
+ LD DE,L0000
+ POP BC
+ RET
+
+L1890: JP (IX)
+
+L1892: LD A,01AH
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+L189A: LD HL,(L180B)
+ ADD HL,DE
+ LD (HL),A
+ INC DE
+ LD HL,(ZKL)
+ XOR A
+ SBC HL,DE
+ JR NZ,L189A ; (-00eH)
+ PUSH BC
+ LD HL,(L180B)
+ DEC HL
+ LD (HL),0FFH
+ DEC HL
+ LD (HL),0FFH
+ LD B,006H
+ JR L1874 ; (-042H)
+
+L18B6: LD BC,(ZKL)
+ INC BC
+ INC BC
+ LD HL,(L180B)
+ DEC HL
+ DEC HL
+ LD DE,(01809H)
+ RET
+
+L18C6: OR 0AFH
+ LD IX,(ZCL)
+ CALL IOCALL
+ RET
+
+ CALL L1803
+ RET NZ
+ PUSH DE
+ LD DE,L11A4
+ CALL L026A
+ LD (0193CH),DE
+ POP DE
+ RET NC
+ JP 0017DH
+
+ PUSH HL
+ PUSH DE
+ CALL L181A
+ LD HL,(L1040)
+ INC HL
+ BIT 7,(HL)
+ PUSH HL
+ LD B,000H
+ SCF
+ CALL Z,L1913
+ POP HL
+ CALL C,L1908
+ POP DE
+ PUSH AF
+ CALL L1815
+ LD L,B
+ LD H,000H
+ ADD HL,DE
+ LD (HL),000H
+ POP AF
+ POP HL
+ RET
+
+L1908: SET 7,(HL)
+ LD HL,01051H
+ BIT 4,(HL)
+ RET Z
+ JP 01FA0H
+
+L1913: CALL L1803
+ JR Z,L193B ; (+023H)
+ LD A,(L1050)
+ BIT 7,A
+ LD HL,L1989
+ JR Z,L1975 ; (+053H)
+ BIT 2,A
+ LD HL,L1929
+ JR NZ,L1975 ; (+04cH)
+L1929: LD IX,(ZINP)
+ CALL IOCALL
+ RET
+
+L1931: LD A,03FH
+ RST 018H
+ DB 003H
+ LD A,020H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 034H
+L193B: LD HL,L0000
+L193E: CALL HLFTCH
+ OR A
+ JR Z,L1931 ; (-013H)
+ LD C,000H
+ RST 018H
+ DB 036H
+ LD (0193CH),HL
+ RET
+
+ LD B,000H
+ CALL TEST1
+ DB 022H
+ JR NZ,L1967 ; (+013H)
+L1954: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ JR Z,L1961 ; (+005H)
+ LD (DE),A
+ INC DE
+ INC B
+ JR L1954 ; (-00dH)
+
+L1961: CALL TEST1
+ DB 02CH
+ OR A
+ RET
+
+L1967: LD A,(HL)
+ OR A
+ RET Z
+ CP C
+ RET Z
+ INC HL
+ CP 02CH
+ RET Z
+ LD (DE),A
+ INC DE
+ INC B
+ JR L1967 ; (-00eH)
+
+L1975: LD (0197BH),HL
+ LD B,000H
+L197A: CALL L0000
+ RET C
+ CP 00DH
+ RET Z
+ LD (DE),A
+ INC DE
+ INC B
+ JR NZ,L197A ; (-00cH)
+ JP 01F76H
+
+L1989: CALL SKPDE
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+ LD HL,(ZKL)
+ OR A
+ SBC HL,DE
+ CALL Z,L19B4
+ RET C
+ LD L,(IY+04EH)
+ LD H,(IY+04FH)
+ XOR A
+ SBC HL,DE
+ SCF
+ RET Z
+ LD HL,(L180B)
+ ADD HL,DE
+ LD A,(HL)
+ INC DE
+ LD (IY+040H),E
+ LD (IY+041H),D
+ RET
+
+L19B4: CALL L1D15
+ JP NZ,L2A4C
+ OR 0AFH
+ CALL L18B6
+ CALL L1929
+ RET C
+ LD A,(HL)
+ INC HL
+ AND (HL)
+ LD (HL),0FFH
+ INC A
+ LD DE,L0000
+ RET NZ
+ PUSH HL
+ LD HL,(L180D)
+ LD BC,(ZKL)
+L19D5: DEC HL
+ DEC BC
+ LD A,(HL)
+ OR A
+ JR Z,L19D5 ; (-006H)
+ POP HL
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ RET
+
+ CALL SKPDE
+ LD HL,L1A2D
+ CP 088H
+ JR Z,L19F4 ; (+00aH)
+ LD HL,L1A35
+ CP 089H
+ JR Z,L19F4 ; (+003H)
+ RST 018H
+ DB 029H
+ RET C
+L19F4: LD (L1040),HL
+ LD DE,L1042
+ LD BC,00008H
+ LDIR
+ LD (L1809),HL
+ PUSH HL
+ POP IY
+ LD DE,L1000
+ CALL L1C54
+ PUSH HL
+ LD HL,(L1044)
+ LD DE,L104A
+ LD BC,0001DH
+ LDIR
+ POP HL
+ LD BC,00010H
+ ADD HL,BC
+ LD (L180B),HL
+ LD BC,(ZKL)
+ ADD HL,BC
+ LD (L180D),HL
+ LD A,(L1043)
+ AND 00FH
+ RET
+
+L1A2D: ADC A,B
+ INC BC
+ LD A,B
+ DEC BC
+ NOP
+ NOP
+ NOP
+ NOP
+L1A35: ADC A,C
+ LD (BC),A
+ NOP
+ RRCA
+ NOP
+ NOP
+ NOP
+ NOP
+ LD HL,L11A4
+ PUSH HL
+ LD A,B
+ OR A
+ CALL NZ,LDHLDE
+ LD (HL),000H
+ LD HL,L0B78
+ JR L1A50 ; (+003H)
+
+L1A4D: LD HL,L0000
+L1A50: LD A,L
+ OR H
+ JR Z,L1A89 ; (+035H)
+ LD (01A84H),HL
+ CALL LDDEMI
+ LD (01A4EH),DE
+ LD DE,L11A4
+ EX DE,HL
+L1A62: LD A,(DE)
+ OR A
+ JR Z,L1A6D ; (+007H)
+ CP (HL)
+ JR NZ,L1A4D ; (-01cH)
+ INC HL
+ INC DE
+ JR L1A62 ; (-00bH)
+
+L1A6D: LD A,(HL)
+ INC HL
+ CP 03AH
+ LD C,000H
+ JR Z,L1A82 ; (+00dH)
+ SUB 031H
+ CP 009H
+ JR NC,L1A4D ; (-02eH)
+ LD C,A
+ LD A,(HL)
+ INC HL
+ CP 03AH
+ JR NZ,L1A4D ; (-035H)
+L1A82: EX (SP),HL
+ LD HL,L0000
+ LD A,C
+ JR L1A9B ; (+012H)
+
+L1A89: POP HL
+ PUSH HL
+L1A8B: LD A,(HL)
+ INC HL
+ CP 03AH
+ JP Z,01F94H
+ OR A
+ JR NZ,L1A8B ; (-00aH)
+ LD HL,(DDEV)
+ LD A,(L1069)
+L1A9B: LD (L1044),HL
+ PUSH HL
+ LD (L1046),A
+ LD DE,L104A
+ LD BC,0001DH
+ LDIR
+ LD B,A
+ LD A,(01051H)
+ AND 007H
+ CP B
+ JP C,01F94H
+ LD A,B
+ POP DE
+ POP HL
+ RET
+
+ CALL SKPDE
+ RST 018H
+ DB 02CH
+ EX DE,HL
+ LD HL,L1001
+ LD B,01FH
+ CALL ?CLRHL
+ LD HL,L1000
+ RST 018H
+ DB 017H
+ CALL L1EB4
+ LD HL,L1050
+ BIT 4,(HL)
+ RET Z
+ INC HL
+ BIT 7,(HL)
+ RET NZ
+ LD A,(L1001)
+ CP 00DH
+ JP Z,01F9AH
+ RET
+
+ CALL SKPDE
+ CALL L1AEF
+ LD B,000H
+ CALL L1B97
+ JP L2D08
+
+L1AEF: LD A,(L1042)
+ RST 018H
+ DB 029H
+ JP NC,01F7CH
+ CALL L1C5B
+ LD HL,L005D
+ LD A,(L1050)
+ LD DE,(ZKL)
+ INC DE
+ INC DE
+ BIT 7,A
+ JR NZ,L1B0B ; (+001H)
+ ADD HL,DE
+L1B0B: LD A,(L1043)
+ BIT 2,A
+ JR Z,L1B13 ; (+001H)
+ ADD HL,DE
+L1B13: EX DE,HL
+ LD A,(L1042)
+ RST 018H
+L1B18: DB 02AH
+ LD (L1FC0),A
+ LD (L1040),HL
+ EX DE,HL
+ LD HL,L1042
+ LD BC,00008H
+ LDIR
+ LD (01809H),DE
+ PUSH DE
+ POP IY
+ LD HL,L1000
+ CALL L1C54
+ LD HL,00010H
+ ADD HL,DE
+ LD (L180B),HL
+ LD DE,(ZKL)
+ ADD HL,DE
+ LD (L180D),HL
+ CALL L1D15
+ JP NZ,L2B7F
+ LD A,(L1043)
+ BIT 2,A
+ JP NZ,01F97H
+ BIT 1,A
+ LD IX,(ZWO)
+ JR NZ,L1B65 ; (+00bH)
+ LD A,(L1050)
+ BIT 7,A
+ JR Z,L1B6B ; (+00aH)
+ LD IX,(ZRO)
+L1B65: LD HL,L1000
+ JP IOCALL
+
+L1B6B: CALL L1C39
+ JP 019BBH
+
+ CALL SKPDE
+ LD IY,L0100
+ LD (L1042),IY
+ LD IY,L1000
+ CALL L1D15
+ LD HL,L2B7A
+ JR NZ,L1B8B ; (+003H)
+ LD HL,L1C39
+L1B8B: CALL L00FA
+ LD B,080H
+ CALL L1B97
+ LD A,(L1000)
+ RET
+
+L1B97: LD A,(L1000)
+ CP 005H
+ RET C
+ LD A,(L1012)
+ AND 080H
+ CP B
+ RET Z
+ JP 01F9DH
+
+L1BA7: CALL SKPDE
+ OR A
+ JR Z,L1BED ; (+040H)
+ CALL L1BB3
+ JP L2D08
+
+L1BB3: RST 018H
+ DB 02EH
+ RET C
+ CALL L181A
+ PUSH AF
+ CALL L1D15
+ JR NZ,L1BE1 ; (+022H)
+ BIT 7,A
+ LD A,B
+ JR Z,L1BD4 ; (+010H)
+ OR A
+ LD IX,(ZKL)
+ JR Z,L1BCF ; (+004H)
+ LD IX,(ZCL)
+L1BCF: CALL IOCALL
+ JR L1BE4 ; (+010H)
+
+L1BD4: OR A
+ JR Z,L1BE4 ; (+00dH)
+ LD A,(L1043)
+ BIT 1,A
+ CALL NZ,L1892
+ JR L1BE4 ; (+003H)
+
+L1BE1: CALL L2BEC
+L1BE4: POP AF
+ RST 018H
+ DB 02BH
+ RET
+
+ CALL SKPDE
+ LD B,000H
+L1BED: LD C,08EH
+L1BEF: LD A,C
+ PUSH BC
+ RST 018H
+ DB 029H
+ CALL NC,L1BB3
+ POP BC
+ DEC C
+ JR NZ,L1BEF ; (-00bH)
+ JP L1FAB
+
+L1BFD: CALL SKPDE
+ LD A,(L1050)
+ BIT 6,A
+ JP Z,01F97H
+ CALL 018C7H
+ LD A,(ZDIRMX)
+ LD B,A
+L1C0F: LD HL,L11A4
+ PUSH BC
+ LD IX,(ZRO)
+ CALL IOCALL
+ POP BC
+ SET 0,A
+ RET C
+ PUSH IY
+ POP DE
+ CALL L1E9D
+ LD A,(HL)
+ RET Z
+ DJNZ L1C0F ; (-019H)
+ XOR A
+ SCF
+ RET
+
+L1C2B: CALL L1C5B
+ CALL L1BFD
+ JP NC,01F79H
+ OR A
+ JP Z,01F85H
+ RET
+
+L1C39: CALL L1C5B
+ CALL L1BFD
+ JP C,01F73H
+ CALL SKPDE
+ LD HL,L11A4
+ PUSH IY
+ POP DE
+ PUSH HL
+ CALL L1C54
+ POP HL
+ LD DE,L1000
+ LD A,(HL)
+L1C54: LD BC,00040H
+ LDIR
+ OR A
+ RET
+
+L1C5B: LD IX,L1C9D
+L1C5F: LD (01C99H),IX
+ CALL SKPDE
+ LD A,(L1042)
+ LD C,A
+ LD HL,(L1072)
+ PUSH HL
+L1C6E: POP HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD B,A
+ INC HL
+ CALL LDDEMI
+ PUSH HL
+ ADD HL,DE
+ EX (SP),HL
+ CP 08FH
+ JR NC,L1C6E ; (-010H)
+ CP C
+ JR Z,L1C6E ; (-013H)
+ INC HL
+ LD A,(HL)
+ EX AF,AF'
+ INC HL
+ LD DE,L1044
+ PUSH BC
+ LD BC,00300H
+L1C8C: LD A,(DE)
+ SUB (HL)
+ OR C
+ LD C,A
+ INC DE
+ INC HL
+ DJNZ L1C8C ; (-008H)
+ POP BC
+ JR NZ,L1C6E ; (-029H)
+ LD A,B
+ CALL L0000
+ JR L1C6E ; (-02fH)
+
+L1C9D: LD A,(01051H)
+ BIT 6,A
+ JP NZ,01F7CH
+ BIT 5,A
+ RET Z
+ EX AF,AF'
+ LD B,A
+ LD A,(L1043)
+ AND B
+ BIT 1,A
+ RET Z
+ JP 01F7CH
+
+ CALL L1D15
+ JP NZ,RFS_SVC30_HOOK ; Was: JP NZ,L2AD2 — hook for $RFS LOAD
+ LD BC,(ELMD20)
+ PUSH BC
+ XOR A
+ LD IX,(ZINP)
+ CALL IOCALL
+ POP BC
+ RET
+
+ LD A,(01051H)
+ BIT 7,A
+ JP Z,01F97H
+ LD BC,(ELMD20)
+ JP L313A
+
+ LD A,(L1000)
+ CP 005H
+ JR C,L1CE4 ; (+005H)
+ LD A,080H
+ LD (L1012),A
+L1CE4: CALL L1D15
+ JP NZ,L2AE0
+ BIT 7,A
+ JP NZ,01F97H
+ PUSH DE
+ LD HL,L0200
+ LD (L1042),HL
+ CALL L1C5B
+ LD HL,L1000
+ PUSH HL
+ POP IY
+ LD IX,(ZWO)
+ CALL IOCALL
+ LD BC,(ELMD20)
+ POP HL
+ LD A,004H
+ LD IX,(ZOUT)
+ CALL IOCALL
+ RET
+
+L1D15: LD A,(L1050)
+ BIT 5,A
+ RET
+
+ CALL SKPDE
+ OR A
+ JR NZ,L1D6B ; (+04aH)
+ LD HL,L0100
+ LD (L1042),HL
+ CALL L1C5B
+ LD HL,L1050
+ BIT 7,(HL)
+ JP NZ,01F97H
+ BIT 5,(HL)
+ JP NZ,RFS_BIT5PATH
+ INC HL
+ BIT 7,(HL)
+ JP NZ,01F97H
+ LD HL,L2000
+ LD BC,00008H
+L1D43: CALL ?CLRHL
+ DEC C
+ JR NZ,L1D43 ; (-006H)
+ CALL 018C7H
+ LD A,(ZDIRMX)
+ LD B,A
+ LD HL,L2000
+L1D53: PUSH BC
+ LD IX,(ZRO)
+ CALL IOCALL
+ PUSH AF
+ LD BC,00020H
+ ADD HL,BC
+ LD (HL),000H
+ POP AF
+ POP BC
+ JR C,L1D68 ; (+002H)
+ DJNZ L1D53 ; (-015H)
+L1D68: JP L18C6
+
+L1D6B: LD (01E13H),A
+ XOR A
+ LD (L1090),A
+ LD HL,L11A4
+ PUSH HL
+ LD DE,L1E1D
+ LD B,00EH
+ CALL LDHLDE
+ CALL L1535
+ LD (HL),020H
+ INC HL
+ LD (HL),020H
+ INC HL
+ EX DE,HL
+ CALL L1D15
+ LD IX,(ZFREE)
+ JR Z,L1D95 ; (+004H)
+ LD IX,L2F4B
+L1D95: CALL IOCALL
+ JR C,L1DA8 ; (+00eH)
+ LD H,B
+ LD L,C
+ LD B,000H
+ RST 018H
+ DB 016H
+ LD HL,L1E2B
+ LD B,009H
+ CALL LDDEHL
+L1DA8: EX DE,HL
+ LD (HL),00DH
+ INC HL
+ LD (HL),000H
+ POP DE
+ CALL L1E12
+ LD B,040H
+ LD HL,L2000
+L1DB7: CALL L1DC3
+ LD DE,00020H
+ ADD HL,DE
+ DJNZ L1DB7 ; (-009H)
+ JP L2D08
+
+L1DC3: CALL SKPDE
+ LD A,(HL)
+ OR A
+ RET Z
+ RET M
+ LD DE,L11A4
+ PUSH DE
+ LD A,020H
+ LD B,026H
+ CALL ?SETDE
+ LD A,(HL)
+ CP 00CH
+ JR C,L1DDC ; (+002H)
+ LD A,00CH
+L1DDC: PUSH HL
+ POP IY
+ POP DE
+ PUSH DE
+ INC DE
+ LD HL,L1E31
+ LD BC,L0003
+L1DE8: ADD HL,BC
+ DEC A
+ JR NZ,L1DE8 ; (-004H)
+ LDIR
+ EX DE,HL
+ BIT 0,(IY+012H)
+ JR Z,L1DF7 ; (+002H)
+ LD (HL),02AH
+L1DF7: INC HL
+ INC HL
+ LD (HL),022H
+ INC HL
+L1DFC: LD A,(IY+001H)
+ CP 00DH
+ JR Z,L1E09 ; (+006H)
+ LD (HL),A
+ INC IY
+ INC HL
+ JR L1DFC ; (-00dH)
+
+L1E09: LD (HL),022H
+ INC HL
+ LD (HL),00DH
+ INC HL
+ LD (HL),000H
+ POP DE
+L1E12: LD A,000H
+ RST 018H
+ DB 02EH
+ RST 018H
+ DB 017H
+ RST 018H
+ DB 037H
+ RST 018H
+ DB 00FH
+ RET
+
+L1E1D: DEC C
+ DB "DIRECTORY OF "
+L1E2B: DB " KB FR"
+L1E31: DS 2, 045H
+ DB ".OBJBTXBSDBRDRB"
+ DS 2, 020H
+ DB "? LIB ?"
+ DS 2, 020H
+ DB "? SYSGR"
+ DS 2, 020H
+ DB 03FH
+ DB 020H
+ DB LSE5
+ DB 0AFH,032H,042H,010H,0DDH,021H,071H,01EH,0EDH,073H,072H,01EH
+ DB LSRF
+ DB 05FH
+ DB 01CH
+ DB LSE1
+ DB 0DDH
+ DB 02AH
+ DB 053H
+ DB 010H
+ DB LSRF
+ DB 045H
+ DB 002H
+ DB 0C9H
+ DB 031H
+ DS 2, 000H
+ DB 006H
+ DB 000H
+ DB 0DFH
+ DB 038H
+ DB 018H
+ DB 0DFH
+L1E7A: DB LSRF
+ DB 064H,001H,059H,0C8H,011H,08EH,01EH,0DFH,005H,03EH,001H,0DFH,00DH,0FEH,059H,0C8H,0C3H,07DH,001H,"OK ? [Y/N]",019H,000H
+L1E9A: DB 011H
+ DB 000H
+ DB 010H
+L1E9D: DB LSRF
+ DB 008H
+ DB 001H
+ INC HL
+ INC DE
+ LD A,(DE)
+ CP 00DH
+ RET Z
+ LD B,011H
+L1EA8: LD A,(DE)
+ CP (HL)
+ RET NZ
+ CP 00DH
+ RET Z
+ INC HL
+ INC DE
+ DJNZ L1EA8 ; (-00aH)
+ OR A
+ RET
+
+L1EB4: INC HL
+ LD C,010H
+L1EB7: LD A,B
+ OR A
+ JR Z,L1ECF ; (+014H)
+ LD A,(DE)
+ INC DE
+ DEC B
+ OR A
+ JR Z,L1ECF ; (+00eH)
+ CP 022H
+ JR Z,L1EB7 ; (-00eH)
+ CP 03AH
+ JP Z,01F9AH
+ LD (HL),A
+ INC HL
+ DEC C
+ JR NZ,L1EB7 ; (-018H)
+L1ECF: LD (HL),00DH
+ INC HL
+L1ED2: LD A,C
+ OR A
+ RET Z
+ LD (HL),020H
+ INC HL
+ DEC C
+ JR L1ED2 ; (-009H)
+
+ LD HL,(L1072)
+L1EDE: INC (HL)
+ DEC (HL)
+ SCF
+ RET Z
+ CP (HL)
+ INC HL
+ JR Z,L1EEE ; (+008H)
+ PUSH DE
+ CALL LDDEMI
+ ADD HL,DE
+ POP DE
+ JR L1EDE ; (-010H)
+
+L1EEE: INC HL
+ INC HL
+ RET
+
+L1EF1: CALL SKPDE
+ RST 018H
+ DB 029H
+ RET C
+ DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ DEC HL
+ LD D,H
+ LD E,L
+ INC BC
+ INC BC
+ INC BC
+ PUSH BC
+ ADD HL,BC
+ PUSH HL
+ LD B,H
+ LD C,L
+ LD HL,(L107A)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ LDIR
+ POP DE
+ LD HL,L0000
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ RST 018H
+ DB 019H
+ OR A
+ RET
+
+ PUSH AF
+ PUSH BC
+ PUSH DE
+ PUSH DE
+ INC DE
+ INC DE
+ INC DE
+ LD HL,(L107A)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ JP C,01F6DH
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ SBC HL,DE
+ JR C,01F6DH ; (+037H)
+ LD HL,(L107E)
+ DEC H
+ DEC H
+ SBC HL,DE
+ JR C,01F6DH ; (+02eH)
+ POP HL
+ PUSH HL
+ LD BC,(VARST)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ INC BC
+ LDDR
+ POP DE
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ PUSH HL
+ INC DE
+ PUSH DE
+L1F58: LD (HL),000H
+ INC HL
+ DEC DE
+ LD A,D
+ OR E
+ JR NZ,L1F58 ; (-008H)
+ POP DE
+ INC DE
+ INC DE
+ RST 018H
+ DB 019H
+ POP HL
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L1F6A: LD A,003H
+ LD HL,0063EH
+ LD HL,09C3EH
+ LD HL,0A83EH
+ LD HL,0A93EH
+ LD HL,0AA3EH
+ LD HL,0AB3EH
+ LD HL,0AE3EH
+ LD HL,0B23EH
+ LD HL,0B33EH
+ LD HL,0B43EH
+ LD HL,0B53EH
+ LD HL,0B63EH
+ LD HL,0B73EH
+ LD HL,L3A3E
+ LD HL,0BB3EH
+ LD HL,0BC3EH
+ LD HL,0BD3EH
+ LD HL,0BF3EH
+ LD HL,0403EH
+ LD HL,0C43EH
+ JP L0182
+
+L1FAB: LD A,(L1FC0)
+ OR A
+ LD B,000H
+ CALL NZ,L1BA7
+ CALL L368D
+ CALL L3C34
+ CALL L2D08
+ JP L0D20
+
+L1FC0: DS 64, 000H
+L2000: DS 38, 000H
+L2026: DS 263, 000H
+L212D: DS 211, 000H
+L2200: DS 294, 000H
+L2326: DS 986, 000H
+L2700: DS 16, 000H
+L2710: DS 240, 000H
+L2800: DS 256, 000H
+ LD (02905H),DE
+ RET
+
+L2905: NOP
+ NOP
+L2907: LD BC,L0000
+ LD DE,00001H
+ BIT 2,A
+ CALL Z,L2ED0
+ LD HL,(L180D)
+ LD A,(HL)
+ LD (HL),C
+ LD C,A
+ INC HL
+ LD A,(HL)
+ LD (HL),B
+ LD B,A
+ LD HL,(L180B)
+ LD DE,L0100
+ JP L2FCF
+
+ CALL SKPDE
+ CALL L181A
+ LD HL,L11A4
+ PUSH HL
+ LD A,B
+ OR A
+ CALL NZ,LDHLDE
+ LD B,020H
+ LD A,020H
+ CALL ?SETHL
+ LD A,(IY+012H)
+ OR A
+ JP NZ,01F7FH
+ CALL L29DF
+ JR NC,L2964 ; (+01dH)
+ LD (IY+014H),E
+ LD (IY+015H),D
+ LD (IY+046H),001H
+ JR Z,L2964 ; (+011H)
+ CALL L29C2
+ CALL L2A08
+ CALL L297C
+ LD (IY+040H),L
+ LD (IY+041H),H
+ JR L296A ; (+006H)
+
+L2964: CALL L297C
+ CALL L29AB
+L296A: POP HL
+ CALL L2E24
+ LD (IY+044H),001H
+L2972: LD HL,(L2905)
+ INC HL
+ LD (L2905),HL
+ JP L1815
+
+L297C: LD HL,(L2905)
+ DEC HL
+ PUSH HL
+ ADD HL,HL
+ LD E,H
+ LD D,000H
+ LD HL,(L180B)
+ ADD HL,DE
+ ADD HL,DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD A,L
+ PUSH AF
+ RRA
+ RRA
+ RRA
+ AND 00FH
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ POP AF
+ AND 007H
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ LD DE,(0180BH)
+ INC D
+ ADD A,E
+ LD E,A
+ RET NC
+ INC D
+ RET
+
+L29AB: LD A,(IY+040H)
+ CP L
+ JR NZ,L29B6 ; (+005H)
+ LD A,(IY+041H)
+ CP H
+ RET Z
+L29B6: CALL L29C2
+ LD (IY+040H),L
+ LD (IY+041H),H
+ XOR A
+ JR L29CC ; (+00aH)
+
+L29C2: XOR A
+ CP (IY+044H)
+ RET Z
+ LD (IY+044H),A
+ LD A,003H
+L29CC: CALL SKPDE
+ LD C,(IY+040H)
+ LD B,(IY+041H)
+ LD DE,L0100
+ LD HL,(L180B)
+ INC H
+ JP L2FD1
+
+L29DF: LD L,(IY+014H)
+ LD H,(IY+015H)
+ LD DE,(02905H)
+ LD A,H
+ OR L
+ JR NZ,L29F1 ; (+004H)
+ OR 0FFH
+ SCF
+ RET
+
+L29F1: CALL L2FC9
+ RET NC
+ CALL SKPDE
+ DEC HL
+ DEC DE
+ LD A,L
+ AND 080H
+ LD L,A
+ LD A,E
+ AND 080H
+ LD E,A
+ CALL L2FC9
+ RET C
+ SCF
+ RET
+
+L2A08: CALL SKPDE
+ LD HL,(L2905)
+ DEC HL
+ ADD HL,HL
+ LD B,H
+ INC B
+ LD HL,(L180B)
+L2A15: LD A,(HL)
+ INC HL
+ OR (HL)
+ CALL Z,L2A23
+ INC HL
+ DJNZ L2A15 ; (-009H)
+ LD (IY+046H),001H
+ RET
+
+L2A23: CALL SKPDE
+ PUSH HL
+ LD DE,00010H
+ CALL L2ED0
+ POP HL
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ LD HL,(L180B)
+ INC H
+ XOR A
+L2A36: LD (HL),020H
+ INC HL
+ DEC A
+ JR NZ,L2A36 ; (-006H)
+ DEC H
+ LD DE,L0100
+ LD A,010H
+L2A42: PUSH AF
+ CALL L2FCF
+ POP AF
+ INC BC
+ DEC A
+ JR NZ,L2A42 ; (-009H)
+ RET
+
+L2A4C: LD L,(IY+014H)
+ LD H,(IY+015H)
+ LD A,H
+ OR L
+ SCF
+ RET Z
+ LD DE,0FF02H
+ PUSH HL
+ ADD HL,DE
+ JR C,L2A60 ; (+003H)
+ LD HL,L0000
+L2A60: LD (IY+014H),L
+ LD (IY+015H),H
+ POP DE
+ LD HL,(L180B)
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ CALL L2A88
+ OR A
+ LD A,(L1043)
+ BIT 2,A
+ RET NZ
+ LD HL,(L180D)
+ LD A,(HL)
+ LD (IY+01EH),A
+ INC HL
+ LD A,(HL)
+ LD (IY+01FH),A
+ LD DE,L0000
+ RET
+
+L2A88: LD C,(IY+01EH)
+ LD B,(IY+01FH)
+ LD A,B
+ OR C
+ JP Z,01F76H
+ LD DE,L0100
+ LD HL,(L180B)
+ JP 02FD0H
+
+ RET
+
+ XOR A
+ LD (DE),A
+ PUSH HL
+ PUSH DE
+ PUSH DE
+ CALL L29DF
+ POP DE
+ JR C,L2AC7 ; (+01fH)
+ CALL L181A
+ PUSH DE
+ CALL L297C
+ CALL L29AB
+ EX DE,HL
+ POP DE
+ CALL L2E24
+ XOR A
+ LD (DE),A
+ CALL L2972
+ LD B,020H
+ XOR A
+ LD HL,(L1040)
+ INC HL
+ RES 7,(HL)
+ JR L2ACF ; (+008H)
+
+L2AC7: XOR A
+ LD B,A
+ LD HL,(L1040)
+ INC HL
+ SET 7,(HL)
+L2ACF: POP DE
+ POP HL
+ RET
+
+L2AD2: LD DE,(ELMD20)
+ LD BC,(ELMD30)
+ CALL 02FD0H
+ JP L2D08
+
+L2AE0: CALL L2AEA
+ LD IY,L1000
+ JP L2C07
+
+L2AEA: PUSH DE
+ CALL L2DD0
+ CALL L2ED0
+ LD (ELMD30),BC
+ LD D,E
+ LD E,000H
+ POP HL
+ JP L2FCF
+
+ OR A
+ JR NZ,L2B34 ; (+035H)
+ PUSH DE
+ CALL L2B6A
+ LD A,000H
+ CALL Z,L2B51
+ POP DE
+ CALL L2AEA
+ LD HL,L1000
+ OR 0FFH
+ CALL L2B51
+ CALL L2E2A
+ LD HL,L2000
+ LD (HL),081H
+ PUSH HL
+ POP IY
+ LD HL,(L1014)
+ LD (IY+014H),L
+ LD (IY+015H),H
+ LD HL,(ELMD30)
+ LD (IY+01EH),L
+ LD (IY+01FH),H
+ JP L2F37
+
+L2B34: PUSH HL
+ CALL L2B6A
+ JP NZ,01F88H
+ DEC (HL)
+ LD DE,L1000
+ CALL L2E24
+ CALL L2F37
+L2B45: XOR A
+ LD HL,L2000
+ CALL L2B51
+ CALL L2E2A
+ POP HL
+ RET
+
+L2B51: CALL SKPDE
+ PUSH AF
+ LD DE,00014H
+ ADD HL,DE
+ CALL LDDEMI
+ LD BC,00008H
+ ADD HL,BC
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ CALL L2DD8
+ POP AF
+ JP L2E77
+
+L2B6A: CALL L1D15
+ JP Z,01F97H
+ CALL L2E36
+ CALL 02F38H
+ LD A,(HL)
+ CP 081H
+ RET
+
+L2B7A: LD A,009H
+ LD (L1043),A
+L2B7F: CALL L2F6E
+ XOR B
+ DEC HL
+ LD A,(L1043)
+ BIT 0,A
+ JP NZ,01F73H
+ PUSH AF
+ LD DE,00001H
+ CALL L2ED0
+ LD (IY+01EH),C
+ LD (IY+01FH),B
+ LD (IY+046H),001H
+ POP AF
+ BIT 1,A
+ RET Z
+ LD HL,(L180D)
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ RET
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD A,(L1043)
+ BIT 1,A
+ JP NZ,01F79H
+ PUSH HL
+ CALL L2E24
+ LD B,020H
+ CALL ?CLRDE
+ POP HL
+ LD A,(HL)
+ PUSH IY
+ POP DE
+ CALL L2E24
+ LD HL,L1043
+ BIT 3,(HL)
+ RET NZ
+ BIT 0,(HL)
+ JP NZ,L2A4C
+ CALL L2E5E
+ CALL L2A88
+ LD D,H
+ LD E,L
+L2BDB: LD A,(HL)
+ INC HL
+ OR (HL)
+ INC HL
+ JR NZ,L2BDB ; (-006H)
+ DEC HL
+ DEC HL
+ SBC HL,DE
+ LD (IY+042H),L
+ LD (IY+043H),H
+ RET
+
+L2BEC: LD A,B
+ OR A
+ RET Z
+ LD A,(L1043)
+ BIT 0,A
+ RET NZ
+ BIT 2,A
+ JR NZ,L2C20 ; (+027H)
+ LD A,006H
+ CALL L2907
+ PUSH IY
+ POP HL
+ LD DE,L1000
+ CALL L2E24
+L2C07: CALL L2F6E
+ RLA
+ INC L
+ JP Z,01F85H
+L2C0F: LD A,001H
+ LD B,(IY+000H)
+ JP L2D6A
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ JP 01F79H
+
+L2C20: CALL L29C2
+ LD A,(IY+046H)
+ OR A
+ RET Z
+ CALL L2F6E
+ LD (0CA2CH),A
+ ADD A,L
+ RRA
+ JR L2C0F ; (-023H)
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD (IY+045H),001H
+ LD A,(HL)
+ CP (IY+000H)
+ JP NZ,01F9DH
+ JR L2C0F ; (-037H)
+
+ CALL SKPDE
+ LD (02C60H),A
+ CALL L2F6E
+ LD D,H
+ INC L
+ JP 01F73H
+
+ RET Z
+ RET M
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD BC,L0012
+ ADD HL,BC
+ LD (HL),0FFH
+L2C61: CALL L2F37
+ JP L2D08
+
+ CALL SKPDE
+ CALL L2F6E
+ LD (HL),D
+ INC L
+ JP 01F73H
+
+ RET Z
+ RET M
+ CALL L1E9A
+ RET NZ
+ POP AF
+ CALL L2CFB
+ PUSH HL
+ LD DE,L1000
+ CALL L2E24
+ XOR A
+ LD (L1042),A
+ LD IX,L2C9B
+ CALL L1C5F
+ XOR A
+ LD (L1000),A
+ POP HL
+L2C93: LD B,(HL)
+ LD IY,L1000
+ JP L2D6A
+
+L2C9B: INC HL
+ INC HL
+ INC HL
+ CALL L1E9A
+ JP Z,01F7CH
+L2CA4: RET
+
+L2CA5: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC C
+ CALL SKPDE
+ LD HL,L2CA4
+ CALL L1EB4
+ XOR A
+L2CC0: LD (02CE3H),A
+ CALL L2F6E
+ JP Z,L182C
+ JR L2C93 ; (-038H)
+
+ RET M
+ LD DE,L2CA4
+ CALL L1E9D
+ JP Z,01F79H
+ CALL L1E9A
+ RET NZ
+ LD (02CE9H),HL
+ LD A,001H
+ LD (02CE3H),A
+ RET
+
+ LD A,0FFH
+ OR A
+ JP Z,01F73H
+ LD HL,0FFFFH
+ CALL L2CFB
+ LD DE,L2CA5
+ INC HL
+ EX DE,HL
+ LD BC,00011H
+ LDIR
+ JP L2C61
+
+L2CFB: CALL SKPDE
+ LD DE,L0012
+ ADD HL,DE
+ LD A,(HL)
+ OR A
+ RET Z
+ JP 01F7FH
+
+L2D08: CALL IOOUT
+ XOR A
+ LD (L1FC0),A
+ LD A,LSE0
+L2D11: PUSH AF
+ RST 018H
+ DB 02BH
+ POP AF
+ INC A
+ JR NZ,L2D11 ; (-007H)
+ LD HL,(L1044)
+ LD DE,$FD
+ CALL L2FC9
+ RET NZ
+ LD A,(L1046)
+ EXX
+ LD H,A
+ LD D,000H
+ LD B,003H
+ EXX
+ XOR A
+ LD (L1042),A
+L2D30: EXX
+ LD A,B
+ LD (L1046),A
+ ADD A,090H
+ LD L,A
+ LD E,000H
+ EXX
+ LD IX,L2D5C
+ CALL L1C5F
+ EXX
+ BIT 7,E
+ LD A,L
+ EXX
+ CALL Z,L1EF1
+ EXX
+ DEC B
+ EXX
+ JP P,L2D30
+ EXX
+ LD A,H
+ LD (L1046),A
+ BIT 7,D
+ EXX
+ CALL Z,L368D
+ RET
+
+L2D5C: EXX
+ LD DE,0FFFFH
+ EXX
+ RET
+
+L2D62: LD A,(L1046)
+ ADD A,090H
+ RST 018H
+ DB 029H
+ RET
+
+L2D6A: LD (L2DCF),A
+ LD A,B
+ PUSH AF
+ EX DE,HL
+ LD HL,L1000
+ CALL L2E24
+ CALL L2E36
+ POP AF
+ CP 005H
+ JR C,L2D88 ; (+00aH)
+ LD A,(L1012)
+ RLA
+ LD A,003H
+ JR NC,L2D88 ; (+002H)
+ LD A,001H
+L2D88: LD HL,02D9CH
+ ADD A,A
+ CALL ADDHLA
+ CALL INDRCT
+ CALL L00FA
+ CALL L2F37
+ CALL L2E2A
+ JP L2D08
+
+ ADD A,02DH
+ ADD A,02DH
+ AND (HL)
+ DEC L
+ JP PO,L212D
+ JR NZ,02DB9H ; (+010H)
+L2DA9: DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ LD A,B
+ OR C
+ RET Z
+ LD DE,L0100
+ LD HL,L11A4
+ PUSH HL
+ PUSH DE
+ CALL 02FD0H
+ LD DE,00001H
+ CALL L2DC9
+ POP DE
+ POP HL
+ ADD HL,DE
+ JR L2DA9 ; (-01dH)
+
+ CALL L2DD0
+L2DC9: LD A,(L2DCF)
+ JP L2E77
+
+L2DCF: NOP
+L2DD0: LD DE,(ELMD20)
+ LD BC,(ELMD30)
+L2DD8: LD A,E
+ OR D
+ JR Z,L2DDD ; (+001H)
+ DEC DE
+L2DDD: INC D
+ LD E,D
+ LD D,000H
+ RET
+
+ LD DE,L0100
+ LD BC,(ELMD30)
+ LD A,(L2DCF)
+ OR A
+ LD HL,L11A4
+ JR Z,L2DF5 ; (+003H)
+ LD HL,(L180B)
+L2DF5: PUSH HL
+ PUSH AF
+ CALL L2FD1
+ POP AF
+ PUSH AF
+ JR Z,L2E02 ; (+004H)
+ LD A,(IY+045H)
+ OR A
+L2E02: LD DE,00001H
+ CALL Z,L2DC9
+ POP AF
+ POP HL
+ JR Z,L2E13 ; (+007H)
+ LD E,(IY+042H)
+ LD D,(IY+043H)
+ ADD HL,DE
+L2E13: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ LD A,B
+ OR C
+ RET Z
+ PUSH HL
+ LD DE,00010H
+ CALL L2DC9
+ POP HL
+ JR L2E13 ; (-011H)
+
+L2E24: LD BC,00020H
+ LDIR
+ RET
+
+L2E2A: LD HL,L2800
+ LD DE,L0100
+ LD BC,L000F
+ JP L2FCF
+
+L2E36: LD HL,L2800
+ CALL L2E67
+ PUSH HL
+ CALL L2D62
+ EX DE,HL
+ POP HL
+ RET C
+ PUSH HL
+ LD A,(DE)
+ CP (HL)
+ JP NZ,01F88H
+ LD BC,L0006
+ ADD HL,BC
+ EX DE,HL
+ ADD HL,BC
+ EX DE,HL
+ LD B,FDPC
+L2E52: LD A,(DE)
+ CPL
+ AND (HL)
+ JP NZ,01F88H
+ INC HL
+ INC DE
+ DJNZ L2E52 ; (-00aH)
+ POP HL
+ RET
+
+L2E5E: CALL L2D62
+ RET NC
+ LD DE,L0100
+ RST 018H
+ DB 02AH
+L2E67: LD BC,L000F
+ LD DE,L0100
+ XOR A
+ CALL L2FD4
+ LD A,(HL)
+ OR A
+ JP M,01F70H
+ RET
+
+L2E77: LD HL,L2800
+ CALL L2E84
+ OR A
+ RET NZ
+ CALL L2D62
+ RET C
+ XOR A
+L2E84: CALL IOOUT
+ OR A
+ PUSH HL
+ LD HL,0B600H
+ LD A,013H
+ JR NZ,L2E95 ; (+005H)
+ LD HL,0A62FH
+ LD A,01BH
+L2E95: LD (L2EB2),A
+ LD (L2EC8),HL
+ POP HL
+L2E9C: CALL L2EA4
+ INC BC
+ DEC E
+ JR NZ,L2E9C ; (-007H)
+ RET
+
+L2EA4: CALL SKPDE
+ INC HL
+ LD A,C
+ SUB (HL)
+ LD C,A
+ JR NC,L2EAE ; (+001H)
+ DEC B
+L2EAE: INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L2EB2: NOP
+ DEC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ LD A,C
+ LD E,003H
+L2EBD: SRL B
+ RR C
+ DEC E
+ JR NZ,L2EBD ; (-007H)
+ ADD HL,BC
+ CALL L2F2B
+L2EC8: NOP
+ NOP
+ CP (HL)
+ LD (HL),A
+ RET NZ
+ JP 01F88H
+
+L2ED0: PUSH DE
+ CALL L2E5E
+ POP DE
+ PUSH HL
+ CALL L2EDE
+ POP HL
+ LD A,001H
+ JR L2E84 ; (-05aH)
+
+L2EDE: LD A,E
+ EXX
+ LD E,A
+ LD D,A
+ LD B,001H
+ EXX
+ INC HL
+ LD E,(HL)
+ LD D,000H
+ INC HL
+ INC HL
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ DEC BC
+ LD (02EFCH),BC
+ INC HL
+ PUSH HL
+ EXX
+ POP HL
+ EXX
+ LD B,D
+ LD C,E
+L2EFB: LD HL,L0000
+ OR A
+ SBC HL,DE
+ JP C,01F8BH
+ EXX
+ LD A,B
+ AND (HL)
+ EXX
+ CALL L2F15
+ INC DE
+ EXX
+ RLC B
+ JR NC,L2F12 ; (+001H)
+ INC HL
+L2F12: EXX
+ JR L2EFB ; (-01aH)
+
+L2F15: JR NZ,L2F24 ; (+00dH)
+ EXX
+ DEC E
+ EXX
+ RET NZ
+ POP AF
+ EXX
+ LD A,D
+ EXX
+ LD E,A
+ LD D,000H
+ OR A
+ RET
+
+L2F24: EXX
+ LD E,D
+ EXX
+ LD B,D
+ LD C,E
+ INC BC
+ RET
+
+L2F2B: PUSH BC
+ AND 007H
+ INC A
+ LD B,A
+ XOR A
+ SCF
+L2F32: ADC A,A
+ DJNZ L2F32 ; (-003H)
+ POP BC
+ RET
+
+L2F37: OR 0AFH
+ LD HL,L2000
+ LD DE,00800H
+ LD BC,00010H
+ CALL L2FD1
+ LD A,(HL)
+ OR A
+ JP P,01F70H
+ RET
+
+L2F4B: PUSH HL
+ PUSH DE
+ CALL L2E36
+ INC HL
+ INC HL
+ CALL LDDEMI
+ CALL INDRCT
+ XOR A
+ SBC HL,DE
+ JP C,01F70H
+ SRL H
+ RR L
+ SRL H
+ RR L
+ LD B,H
+ LD C,L
+ POP DE
+ POP HL
+ OR A
+ JP L368D
+
+L2F6E: CALL L1D15
+ JP Z,01F97H
+ POP HL
+ CALL LDDEMI
+ LD (02FB1H),HL
+ LD (02F97H),DE
+ XOR A
+ LD (L2FC3),A
+ CALL 02F38H
+ LD (L2FC7),HL
+ LD A,040H
+ LD (L2FC6),A
+L2F8E: LD HL,(L2FC7)
+ LD A,(HL)
+ OR A
+ CALL Z,L2FB3
+ CALL 0FFFFH
+ LD HL,(L2FC7)
+ LD BC,00020H
+ ADD HL,BC
+ LD (L2FC7),HL
+ LD HL,L2FC6
+ DEC (HL)
+ JR NZ,L2F8E ; (-01bH)
+ LD A,(L2FC3)
+ LD HL,(L2FC4)
+ OR A
+ JP 0FFFFH
+
+L2FB3: PUSH AF
+ LD A,(L2FC3)
+ OR A
+ JR NZ,L2FC1 ; (+007H)
+ INC A
+ LD (L2FC3),A
+ LD (L2FC4),HL
+L2FC1: POP AF
+ RET
+
+L2FC3: NOP
+L2FC4: NOP
+ NOP
+L2FC6: NOP
+L2FC7: NOP
+ NOP
+L2FC9: PUSH HL
+ OR A
+ SBC HL,DE
+ POP HL
+ RET
+
+L2FCF: OR 0AFH
+L2FD1: CALL L2FE8
+L2FD4: CALL SKPDE
+ OR A
+ LD IX,(ZINP)
+ JR Z,L2FE2 ; (+004H)
+ LD IX,(ZOUT)
+L2FE2: LD A,(L1046)
+ JP IOCALL
+
+L2FE8: CALL IOOUT
+ LD A,(L35B5)
+ OR A
+ RET M
+ CALL L2D62
+ RET C
+ JP L2E36
+
+$CMT: DB "Y3CMT",000H,05FH ; $CMT - Cassette device descriptor
+L2FFE: DB 0C0H,000H,014H,"0d0",022H,030H
+ DB LSE5
+ DS 2, 000H
+ DB 001H,0AAH,"0]0",097H,01FH,097H,01FH,097H,01FH
+ CALL TEST1
+ DB 054H
+ LD HL,L2FFE
+ SET 4,(HL)
+ RET Z
+ RES 4,(HL)
+ OR A
+ RET
+
+ CALL SKPDE
+ LD DE,L10F0
+ LD A,(HL)
+ LD C,005H
+ CP 002H
+ JR Z,L303D ; (+00eH)
+ LD C,004H
+L3031: CP 003H
+ JR Z,L303D ; (+008H)
+ LD C,A
+L3036: SUB 004H
+ CP 002H
+ JP C,01F9DH
+L303D: LD A,C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD BC,00011H
+ LDIR
+ INC HL
+ INC HL
+ LD BC,L0006
+ LDIR
+ LD B,068H
+ CALL ?CLRDE
+ LD HL,L10F0
+ LD BC,L0080
+ CALL L30CB
+ JR L3060 ; (+003H)
+
+ CALL L30D2
+L3060: JP C,L017B
+ RET
+
+ LD A,037H
+ LD (L30AA),A
+ PUSH HL
+ LD HL,L10F0
+ LD BC,L0080
+ CALL L3114
+ JR C,L30C1 ; (+04cH)
+ LD DE,L3332
+ CALL L3301
+ POP DE
+ LD A,(HL)
+ LD C,002H
+ CP 005H
+ JR Z,L3091 ; (+00eH)
+ LD C,003H
+ CP 004H
+ JR Z,L3091 ; (+008H)
+ LD C,A
+ SUB 002H
+ CP 002H
+ JP C,01F9DH
+L3091: LD A,C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD BC,00011H
+ LDIR
+ XOR A
+ LD B,002H
+ CALL ?CLRDE
+ LD BC,L0006
+ LDIR
+ LD B,006H
+ JP ?CLRDE
+
+L30AA: XOR A
+ JR NC,L30BD ; (+010H)
+ LD A,0AFH
+ LD (L30AA),A
+ PUSH HL
+ LD HL,L1000
+ LD DE,L333F
+ CALL L3301
+ POP HL
+L30BD: CALL L311B
+ RET NC
+L30C1: CP 002H
+ JP NZ,L017B
+ LD A,0C6H
+ JP L0182
+
+L30CB: CALL L32D4
+ LD A,LSWF
+ JR L30D4 ; (+002H)
+
+L30D2: LD A,053H
+L30D4: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD E,A
+ LD D,0D7H
+ LD A,B
+ OR C
+ JR Z,L3107 ; (+024H)
+ CALL L32CB
+ CALL L3174
+ JR C,L3101 ; (+016H)
+ LD A,E
+ CP LSWF
+ JR NZ,L30F8 ; (+008H)
+ PUSH DE
+ LD DE,L3325
+ CALL L3301
+ POP DE
+L30F8: DI
+ OUT (LSE4),A
+ CALL 00780H
+ CALL NC,L31DD
+L3101: DI
+ OUT (LSE4),A
+ CALL 00700H
+L3107: POP DE
+ LD SP,L0000
+ OUT (LSE0),A
+ OUT (LSE1),A
+ PUSH AF
+ RST 018H
+ DB 011H
+ POP AF
+ RET
+
+L3114: CALL L32D4
+ LD A,LSWF
+ JR L311D ; (+002H)
+
+L311B: LD A,053H
+L311D: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD D,LSD2
+ LD E,A
+ LD A,B
+ OR C
+ JR Z,L3107 ; (-025H)
+ CALL L3174
+ DI
+ OUT (LSE4),A
+ CALL NC,L065B
+ CALL NC,L3220
+ JR L3101 ; (-039H)
+
+L313A: PUSH HL
+ LD DE,L334C
+ LD HL,L1000
+ CALL L3301
+ POP HL
+ CALL L3153
+ RET NC
+ CP 002H
+ JP NZ,L017B
+ LD A,083H
+ JP L0182
+
+L3153: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD D,LSD2
+ LD E,053H
+ LD A,B
+ OR C
+ JR Z,L3107 ; (-05cH)
+ CALL RFS_LOAD_HOOK ; Was: CALL L32CB / CALL L3174
+ NOP
+ NOP
+ NOP
+ DI
+ OUT (LSE4),A
+ CALL NC,L065B
+ CALL NC,L3274
+ JR L3101 ; (-073H)
+
+L3174: CALL SKPDE
+ RST 018H
+ DB 010H
+ LD HL,0E000H
+ LD A,FDPA
+ CALL POPRA
+ LD B,00AH
+L3183: LD HL,0E002H
+ CALL BREAKX
+ AND 010H
+ JR Z,L319A ; (+00dH)
+L318D: LD B,0FFH
+ OUT (LSE2),A
+L3191: CALL L09A6
+ DJNZ L3191 ; (-005H)
+ OUT (LSE0),A
+ XOR A
+ RET
+
+L319A: LD HL,0E003H
+ LD A,006H
+ CALL POPRA
+ INC A
+ CALL POPRA
+ DJNZ L3183 ; (-025H)
+ LD A,(L0050)
+ OR A
+ JR NZ,L31C7 ; (+019H)
+ RST 018H
+ DB 002H
+ LD A,07FH
+ RST 018H
+ DB 004H
+ LD A,020H
+ RST 018H
+ DB 003H
+ LD A,D
+ CP 0D7H
+ LD DE,L32BC
+ JR Z,L31C3 ; (+003H)
+ LD DE,L32C3
+L31C3: RST 018H
+ DB 005H
+ RST 018H
+ DB 002H
+L31C7: LD HL,0E002H
+ CALL BREAKX
+ AND 010H
+ JR NZ,L318D ; (-044H)
+ LD HL,0E001H
+ CALL BREAKX
+ AND 080H
+ JR NZ,L31C7 ; (-014H)
+ SCF
+ RET
+
+L31DD: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD D,002H
+ LD A,FDPA
+ LD (0E000H),A
+L31E7: OUT (LSE1),A
+ LD A,(HL)
+ OUT (LSE3),A
+ CALL L32C8
+ LD A,(0E001H)
+ AND 080H
+ SCF
+ JR Z,L321C ; (+025H)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L31E7 ; (-016H)
+ LD HL,(L1197)
+ LD A,H
+ CALL L32C8
+ LD A,L
+ CALL L32C8
+ CALL L0D60
+ XOR A
+ DEC D
+ JR Z,L321C ; (+00dH)
+ LD B,000H
+L3211: CALL L0D47
+ DJNZ L3211 ; (-005H)
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+ JR L31E7 ; (-035H)
+
+L321C: POP HL
+ POP BC
+ POP DE
+ RET
+
+L3220: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD H,002H
+L3225: LD BC,0E001H
+ LD DE,0E002H
+L322B: CALL 00601H
+ JR C,L3267 ; (+037H)
+ CALL 00A4AH
+ LD A,(DE)
+ AND 020H
+ JR Z,L322B ; (-00dH)
+ LD D,H
+ LD HL,L0000
+ LD (L1197),HL
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+L3243: CALL L0624
+ JR C,L3267 ; (+01fH)
+ OUT (LSE1),A
+ LD (HL),A
+ OUT (LSE3),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3243 ; (-010H)
+ LD HL,(L1197)
+ CALL L0624
+ JR C,L3267 ; (+00cH)
+ CP H
+ JR NZ,L326B ; (+00dH)
+ CALL L0624
+ JR C,L3267 ; (+004H)
+ CP L
+ JR NZ,L326B ; (+005H)
+L3266: XOR A
+L3267: POP HL
+ POP BC
+ POP DE
+ RET
+
+L326B: DEC D
+ LD H,D
+ JR NZ,L3225 ; (-04aH)
+L326F: LD A,002H
+ SCF
+ JR L3267 ; (-00dH)
+
+L3274: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD H,002H
+L3279: LD BC,0E001H
+ LD DE,0E002H
+L327F: CALL 00601H
+ JR C,L3267 ; (-01dH)
+ CALL 00A4AH
+ LD A,(DE)
+ AND 020H
+ JR Z,L327F ; (-00dH)
+ LD D,H
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+L3291: CALL L0624
+ JR C,L3267 ; (-02fH)
+ OUT (LSE1),A
+ CP (HL)
+ OUT (LSE3),A
+ JR NZ,L326F ; (-02eH)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3291 ; (-012H)
+ LD HL,(CSMDT)
+ CALL L0624
+ JR C,L3267 ; (-044H)
+ CP H
+ JR NZ,L326F ; (-03fH)
+ CALL L0624
+ JR C,L3267 ; (-04cH)
+ CP L
+ JR NZ,L326F ; (-047H)
+ DEC D
+ LD H,D
+ JR NZ,L3279 ; (-041H)
+ JR L3266 ; (-056H)
+
+L32BC: DB "RECORD."
+L32C3: DB "PLAY",000H
+L32C8: DB 0C3H
+ DB 06DH
+ DB 007H
+L32CB: DB QDPB
+ DB LSD3
+ DB LSE2
+ DB LSRF
+ DB 01AH
+ DB 007H
+ DB LSD3
+ DB LSE0
+ DB 0C9H
+L32D4: DB LSRF
+ DB 008H,001H,03EH,0C9H,032H,0D4H,"2!6",000H,0CBH,076H,0C8H,021H,067H,007H,022H,0C9H,"2!z",007H,022H
+ DB LSFC
+ DB 030H,021H,096H,009H,022H,092H,031H,021H,001H,00AH,022H,012H,032H,021H,01AH,00AH,022H,009H,032H,0C9H
+L3301: DB 03AH
+ DB 050H
+ DB 000H
+ DB 0B7H
+ DB 0C0H
+ DB 0DFH
+ DB 002H
+ DB 0DFH
+ DB 005H
+ DB LSE5
+ DB 023H,03EH,022H,0DFH,003H,016H,010H,07EH,0FEH,00DH,028H,006H,0DFH,003H,023H,015H,020H
+ DB QDPD
+ DB 03EH
+ DB 022H
+ DB 0DFH
+ DB 003H
+ DB 0DFH
+ DB 002H
+ DB LSE1
+ DB 0C9H
+L3325: DB 057H,005H,"RITING"
+ DS 3, 020H
+ DB 006H
+ DB 000H
+L3332: DB 046H,005H,"OUND"
+ DS 5, 020H
+ DB 006H
+ DB 000H
+L333F: DB 04CH,005H,"OADING"
+ DS 3, 020H
+ DB 006H
+ DB 000H
+L334C: DB 056H,005H,"ERIFYING "
+ LD B,000H
+$RS: DB 08DH,"5RS" ; $RS - RS-232C device descriptor
+ DS 2, 000H
+ DB 08FH,001H,000H,072H,033H,0A4H,033H,0A4H,033H,0B5H,033H,0B5H,033H,0C6H,033H,0DBH,033H
+ DB LSE5
+ DB 000H
+ DB 0D8H
+ DB 0FDH
+ DB LSE5
+ DB LSRF
+ CALL PE,0CD33H
+ ADD A,B
+ INC SP
+ CALL L3435
+ JR L33D8 ; (+058H)
+
+ RST 018H
+ DB 013H
+ LD (IY-003H),E
+ CALL TEST1
+ DB 02CH
+ JP NZ,L1F6A
+ RST 018H
+ DB 013H
+ LD (IY-002H),E
+ LD (IY-008H),00DH
+ CALL TEST1
+ DB 000H
+ RET Z
+ CALL TEST1
+ DB 02CH
+ RST 018H
+ DB 013H
+ LD (IY-008H),E
+ RET
+
+ PUSH IY
+ CALL L33EC
+ LD A,(IY-001H)
+ INC (IY-001H)
+ OR A
+ CALL Z,L3497
+ JR L33D8 ; (+023H)
+
+ PUSH IY
+ CALL L33EC
+ DEC (IY-001H)
+ LD A,(IY-001H)
+ OR A
+ CALL Z,L347F
+ JR L33D7 ; (+011H)
+
+ PUSH IY
+ CALL L33EC
+ CALL L34E6
+ JR C,L33D8 ; (+008H)
+ CP (IY-008H)
+ JR NZ,L33D7 ; (+002H)
+ LD A,00DH
+L33D7: OR A
+L33D8: POP IY
+ RET
+
+ PUSH IY
+ CALL L33EC
+ CP 00DH
+ JR NZ,L33E7 ; (+003H)
+ LD A,(IY-008H)
+L33E7: CALL L352B
+ JR L33D8 ; (-014H)
+
+L33EC: PUSH AF
+ PUSH DE
+ LD A,(L1046)
+ INC A
+ LD IY,033F7H
+ LD DE,L0015
+L33F9: ADD IY,DE
+ DEC A
+ JR NZ,L33F9 ; (-005H)
+ LD C,(IY+000H)
+ POP DE
+ POP AF
+ RET
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ OR C
+ OR B
+ NOP
+ DJNZ L3421 ; (+010H)
+ INC B
+ LD B,B
+ INC BC
+ RET NZ
+ DEC B
+ LD H,B
+ JR NC,L341C ; (+003H)
+ NOP
+ NOP
+ NOP
+L341C: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L3421: OR E
+ OR D
+ NOP
+ DJNZ 03436H ; (+010H)
+ INC B
+ LD B,B
+ INC BC
+ RET NZ
+ DEC B
+ LD H,B
+ JR NC,L3431 ; (+003H)
+L342E: CALL BRKCHK
+L3431: RET NZ
+ JP 0017DH
+
+L3435: LD A,018H
+ OUT (C),A
+ LD A,030H
+ OUT (C),A
+ LD A,(IY-002H)
+ AND 00CH
+ JR NZ,L3448 ; (+004H)
+ SET 2,(IY-002H)
+L3448: LD A,(IY-002H)
+ LD B,A
+ AND 00FH
+ OR 040H
+ LD (IY+006H),A
+ LD A,B
+ AND 080H
+ OR 040H
+ LD (IY+008H),A
+ RRA
+ AND 07FH
+ OR 00AH
+ LD (IY+00AH),A
+ LD A,B
+ OR 07FH
+ LD (IY+002H),A
+ CALL L348B
+L346C: IN A,(C)
+ RRCA
+ RET NC
+ DEC C
+ IN A,(C)
+ INC C
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ AND 070H
+ JR Z,L346C ; (-012H)
+ RET
+
+L347F: RES 0,(IY+008H)
+ RES 7,(IY+00AH)
+ LD (IY-001H),000H
+L348B: LD B,00AH
+ PUSH IY
+ POP HL
+ LD DE,L0003
+ ADD HL,DE
+ OTIR
+ RET
+
+L3497: LD A,030H
+ OUT (C),A
+ RET
+
+L349C: SET 0,(IY+008H)
+ LD A,013H
+ OUT (C),A
+ LD A,(IY+008H)
+ OUT (C),A
+ LD A,035H
+ OUT (C),A
+ LD A,(IY+00AH)
+ OR 088H
+ LD (IY+00AH),A
+ OUT (C),A
+ RET
+
+ LD A,003H
+ OUT (C),A
+ RES 0,(IY+008H)
+ LD A,(IY+008H)
+ OUT (C),A
+L34C5: RES 7,(IY+00AH)
+ JR L34DB ; (+010H)
+
+L34CB: SET 1,(IY+00AH)
+ JR L34DB ; (+00aH)
+
+L34D1: RES 1,(IY+00AH)
+ JR L34DB ; (+004H)
+
+ SET 7,(IY+00AH)
+L34DB: LD A,005H
+ OUT (C),A
+ LD A,(IY+00AH)
+ OUT (C),A
+ OR A
+ RET
+
+L34E6: CALL SKPDE
+ LD C,(IY+000H)
+L34EC: CALL L342E
+ CALL L3564
+ JR C,L34EC ; (-008H)
+ CALL L349C
+L34F7: CALL L342E
+ IN A,(C)
+ RRCA
+ JR NC,L34F7 ; (-008H)
+ DEC C
+ IN A,(C)
+ INC C
+ AND (IY+002H)
+ PUSH AF
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ AND 070H
+ JR NZ,L3516 ; (+005H)
+ CALL L34C5
+ POP AF
+ RET
+
+L3516: LD B,A
+ POP AF
+ PUSH BC
+ CALL L3435
+ POP BC
+ LD A,01DH
+ RLC B
+ RLC B
+ RET C
+ INC A
+ RLC B
+ RET C
+ INC A
+ SCF
+ RET
+
+L352B: CALL SKPDE
+ LD C,(IY+000H)
+ LD D,A
+ CALL L34CB
+L3535: CALL L342E
+ CALL L356B
+ CALL NC,L357C
+L353E: JR C,L3535 ; (-00bH)
+ IN A,(C)
+ BIT 2,A
+ JR Z,L3535 ; (-011H)
+ BIT 7,(IY-003H)
+ JR Z,L3555 ; (+009H)
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ RRCA
+ JR NC,L3535 ; (-020H)
+L3555: DEC C
+ OUT (C),D
+ INC C
+ BIT 6,(IY-003H)
+ JR Z,L3562 ; (+003H)
+ CALL L34D1
+L3562: OR A
+ RET
+
+L3564: OR A
+ BIT 0,(IY-003H)
+ JR L3570 ; (+005H)
+
+L356B: OR A
+ BIT 1,(IY-003H)
+L3570: RET Z
+ LD A,010H
+ OUT (C),A
+ IN A,(C)
+ AND 008H
+ RET NZ
+ SCF
+ RET
+
+L357C: OR A
+ BIT 2,(IY-003H)
+ RET Z
+ LD A,010H
+ OUT (C),A
+ IN A,(C)
+ AND 020H
+ RET NZ
+ SCF
+ RET
+
+$FD: DB 0A2H,"8FD" ; $FD - Floppy Disk device descriptor
+ DS 2, 000H
+ DB 03FH,003H,03FH,08DH,036H,00FH
+ DS 2, 000H
+ DB 001H,030H,000H,0FEH,000H,005H,037H,008H,037H,097H,01FH,097H,01FH,097H,01FH
+ NOP
+L35AB: NOP
+L35AC: NOP
+L35AD: NOP
+ NOP
+ NOP
+L35B0: NOP
+L35B1: NOP
+ NOP
+L35B3: NOP
+L35B4: NOP
+L35B5: NOP
+L35B6: NOP
+L35B7: NOP
+ NOP
+ NOP
+ NOP
+L35BB: NOP
+ NOP
+ NOP
+ NOP
+L35BF: NOP
+L35C0: PUSH BC
+ LD A,L
+ LD B,004H
+L35C4: SRL H
+ RR L
+ DJNZ L35C4 ; (-006H)
+ AND 00FH
+ INC A
+ LD H,A
+ POP BC
+ RET
+
+L35D0: LD A,H
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ DEC A
+ ADD A,L
+ LD L,A
+ RET
+
+L35DB: CALL SKPDE
+ LD HL,L35B5
+ BIT 7,(HL)
+ JR NZ,L35EB ; (+006H)
+ CALL L367C
+ CALL L3898
+L35EB: LD A,(L35AC)
+ BIT 2,A
+ SET 2,A
+ JR Z,L35F6 ; (+002H)
+ SET 5,A
+L35F6: SET 7,A
+ LD HL,L35B5
+ BIT 6,(HL)
+ JR Z,L3601 ; (+002H)
+ SET 6,A
+L3601: CALL L361C
+ LD (HL),A
+ LD HL,L35B7
+ CALL L3614
+ BIT 0,(HL)
+ CALL Z,L3695
+ RET C
+ SET 0,(HL)
+ RET
+
+L3614: LD A,(L35AC)
+ AND 003H
+ JP ADDHLA
+
+L361C: OUT (0DCH),A
+ PUSH AF
+ RLCA
+ RLCA
+ OUT (0DDH),A
+ RLCA
+ OUT (0DEH),A
+ POP AF
+ RET
+
+L3628: CALL SKPDE
+ LD D,000H
+ LD A,(L35B3)
+ SRL A
+ CPL
+ OUT (0DBH),A
+ LD B,A
+ LD A,(L35B5)
+ RES 6,A
+ BIT 5,A
+ JR Z,L3640 ; (+001H)
+ CCF
+L3640: JR C,L3644 ; (+002H)
+ SET 6,A
+L3644: CALL L361C
+ LD HL,L35B5
+ CP (HL)
+ LD (HL),A
+ JR Z,L364F ; (+001H)
+ INC D
+L364F: LD HL,L35BB
+ CALL L3614
+ LD A,(HL)
+ OUT (0D9H),A
+ CP B
+ JR Z,L3666 ; (+00bH)
+ INC D
+ CALL L3673
+ PUSH AF
+ IN A,(0D9H)
+ LD (HL),A
+ POP AF
+ RET C
+ RET NZ
+L3666: LD A,(L35B4)
+ CPL
+ OUT (0DAH),A
+ LD A,D
+ OR A
+ CALL NZ,L388D
+ XOR A
+ RET
+
+L3673: LD A,018H
+ CALL L36C2
+ RET C
+ AND 099H
+ RET
+
+L367C: LD HL,L35B5
+ SET 7,(HL)
+ LD A,(HL)
+ CALL L361C
+ LD HL,L35B7
+ LD B,004H
+ JP ?CLRHL
+
+L368D: XOR A
+ CALL L361C
+ LD (L35B5),A
+ RET
+
+L3695: CALL SKPDE
+ LD HL,L35BB
+ CALL L3614
+ LD (HL),0FFH
+ LD A,008H
+ CALL L36C2
+ RET C
+ AND 085H
+ XOR 004H
+ RET Z
+ JP L385A
+
+L36AE: PUSH AF
+ LD A,LSD0
+ CALL L36BB
+ JR C,L36B8 ; (+002H)
+ POP AF
+ RET
+
+L36B8: POP HL
+ POP HL
+ RET
+
+L36BB: CALL SKPDE
+ LD D,000H
+ JR L36DC ; (+01aH)
+
+L36C2: CALL SKPDE
+ LD B,A
+ LD A,(035AAH)
+ CPL
+ AND 003H
+ OR B
+ LD D,000H
+ JR L36D6 ; (+005H)
+
+L36D1: CALL SKPDE
+ LD D,001H
+L36D6: CALL L36AE
+ LD (L35B6),A
+L36DC: CPL
+ OUT (0D8H),A
+ CALL L3887
+ LD E,007H
+L36E4: LD HL,L2710
+L36E7: DEC HL
+ LD A,H
+ OR L
+ JP Z,L36F9
+ IN A,(0D8H)
+ CPL
+ LD B,A
+ AND 081H
+ CP D
+ JR NZ,L36E7 ; (-00fH)
+ LD A,B
+ OR A
+ RET
+
+L36F9: DEC E
+ JP Z,L385A
+ LD A,(L35B6)
+ CPL
+ OUT (0D8H),A
+ JR L36E4 ; (-021H)
+
+ DB 037H
+ JR L3709 ; (+001H)
+
+ OR A
+L3709: EX AF,AF'
+ PUSH AF
+ EX AF,AF'
+ LD (L35B1),HL
+ PUSH HL
+ LD HL,L35AB
+ RL (HL)
+ RRC (HL)
+ LD H,(HL)
+ LD L,A
+ AND 007H
+ LD (L35AC),A
+ CALL L35DB
+ JR NC,L3728 ; (+005H)
+ POP HL
+ EX AF,AF'
+ POP AF
+ EX AF,AF'
+ RET
+
+L3728: BIT 7,H
+ LD A,L
+ POP HL
+ PUSH HL
+ CALL Z,L37E7
+ LD (035AFH),DE
+ PUSH DE
+ OR A
+ PUSH AF
+ LD H,B
+ LD L,C
+ CALL P,L35C0
+ LD (L35AD),HL
+ LD A,009H
+ LD (L35BF),A
+ PUSH IY
+ CALL L375C
+ EX AF,AF'
+ POP IY
+ LD HL,(L35B3)
+ POP AF
+ CALL P,L35D0
+ LD B,H
+ LD C,L
+ POP DE
+ POP HL
+ POP AF
+ EX AF,AF'
+ JP L37E7
+
+L375C: LD E,000H
+ LD HL,(035AFH)
+ LD A,(L35B5)
+ BIT 5,A
+ JR Z,L376B ; (+003H)
+ ADD HL,HL
+ LD E,080H
+L376B: LD A,L
+ OR A
+ JR Z,L3770 ; (+001H)
+ INC H
+L3770: LD A,H
+ LD (L35B0),A
+L3774: CALL L37FA
+ CALL NC,L3628
+ RET C
+ JR NZ,L37E1 ; (+064H)
+ DI
+ LD A,(L35AB)
+ BIT 7,A
+ LD A,090H
+ LD IY,0A2EDH
+ JR NZ,L3791 ; (+006H)
+ LD A,0B4H
+ LD IY,0A3EDH
+L3791: LD (L37A8),IY
+ CALL L36D1
+ RET C
+L3799: LD B,E
+ PUSH DE
+ LD DE,0FE7CH
+L379E: IN A,(0D8H)
+ OR E
+ CP D
+ JR Z,L379E ; (-006H)
+ CP LSFC
+ JR NZ,L37AD ; (+005H)
+L37A8: NOP
+ NOP
+ JP NZ,L379E
+L37AD: POP DE
+ IN A,(0D8H)
+ RRA
+ JP C,L385A
+ LD A,(L35B4)
+ INC A
+ LD (L35B4),A
+ CP 011H
+ JR Z,L37C4 ; (+005H)
+ DEC D
+ JR NZ,L3799 ; (-029H)
+ JR L37C5 ; (+001H)
+
+L37C4: DEC D
+L37C5: CALL L36AE
+ EI
+ IN A,(0D8H)
+ CPL
+ OR A
+ JR NZ,L37E1 ; (+012H)
+ LD A,(L35AB)
+ OR A
+ CALL Z,L3830
+ JR C,L37E1 ; (+009H)
+ CALL L3818
+ LD A,D
+ OR A
+ JR NZ,L3774 ; (-06bH)
+ XOR A
+ RET
+
+L37E1: CALL L380B
+ RET C
+ JR L3774 ; (-073H)
+
+L37E7: CALL IOOUT
+ LD A,(L35B5)
+ BIT 5,A
+ RET Z
+L37F0: LD A,(HL)
+ CPL
+ LD (HL),A
+ INC HL
+ DEC DE
+ LD A,D
+ OR E
+ JR NZ,L37F0 ; (-009H)
+ RET
+
+L37FA: LD HL,(L35AD)
+ LD (L35B3),HL
+ LD HL,(L35B1)
+ LD A,(L35B0)
+ LD D,A
+ LD C,0DBH
+ OR A
+ RET
+
+L380B: CALL SKPDE
+ LD HL,L35BF
+ DEC (HL)
+ JP Z,L385A
+ JP L3695
+
+L3818: LD (L35B1),HL
+ LD A,D
+ LD (L35B0),A
+ LD HL,(L35B3)
+ LD A,H
+ CP 011H
+ RET NZ
+ LD H,001H
+ INC L
+ LD (L35AD),HL
+ LD (L35B3),HL
+ RET
+
+L3830: LD A,(035AEH)
+ CPL
+ OUT (0DAH),A
+ LD A,090H
+ CALL L36D1
+ RET C
+ LD A,(L35B4)
+ LD B,A
+L3840: IN A,(0D8H)
+ CPL
+ AND 081H
+ CP 001H
+ JR NZ,L3852 ; (+009H)
+ IN A,(0DAH)
+ CPL
+ CP B
+ JR NZ,L3840 ; (-00fH)
+ CALL L36AE
+L3852: IN A,(0D8H)
+ CPL
+ AND 099H
+ RET Z
+ SCF
+ RET
+
+L385A: LD A,(L35B6)
+ RLA
+ IN A,(0D8H)
+ CPL
+ JR NC,L3878 ; (+015H)
+ RLA
+ JR C,L387B ; (+015H)
+ RLA
+ JR NC,L3870 ; (+007H)
+ LD HL,L35AB
+ BIT 7,(HL)
+ JR Z,L387F ; (+00fH)
+L3870: AND 0C0H
+ JR NZ,L3883 ; (+00fH)
+L3874: LD A,029H
+ SCF
+ RET
+
+L3878: RLA
+ JR NC,L3874 ; (-007H)
+L387B: LD A,032H
+ SCF
+ RET
+
+L387F: LD A,02EH
+ SCF
+ RET
+
+L3883: LD A,036H
+ SCF
+ RET
+
+L3887: PUSH DE
+ LD DE,L000F
+ JR L3891 ; (+004H)
+
+L388D: PUSH DE
+ LD DE,L2026
+L3891: DEC DE
+ LD A,E
+ OR D
+ JR NZ,L3891 ; (-005H)
+ POP DE
+ RET
+
+L3898: PUSH BC
+ LD B,011H
+L389B: CALL L388D
+ DJNZ L389B ; (-005H)
+ POP BC
+ RET
+
+; $QD - Quick Disk device descriptor (29 bytes)
+$QD: DW $RFS ; Next device = $RFS (was $USR)
+ DB "QD",000H,000H ; Device name
+ DB 05FH ; flags1
+ DB 040H ; flags2
+ DB 020H ; dirmx (32 entries)
+ DW 038C4H ; ZINIT
+ DW 038FBH ; ZRO
+ DW 0392AH ; ZWO
+ DW 038DAH ; ZCL
+ DW 00400H ; ZKL
+ DW 03918H ; ZINP
+ DW 03939H ; ZOUT
+ DW 01F97H ; ZDELT
+ DW 01F97H ; ZWDIR
+ DW 038C1H ; ZFREE
+ NOP
+ NOP
+ XOR A
+ SCF
+ RET
+
+ RET C
+ CALL L1E7A
+ CALL TEST1
+ DB 000H
+ JP NZ,L1F6A
+ CALL L392F
+ RET C
+ LD HL,L3972
+ LD (HL),002H
+ JR L3928 ; (+04eH)
+
+ OR A
+ JR NZ,L38F4 ; (+017H)
+ XOR A
+ LD (L397E),A
+ LD HL,L3972
+ LD (HL),005H
+ CALL L3988
+ LD HL,00001H
+ LD (L3972),HL
+ LD HL,L3972
+ JR L3928 ; (+034H)
+
+L38F4: LD HL,L3972
+ LD (HL),006H
+ JR L3928 ; (+02dH)
+
+ LD (L3974),HL
+ LD HL,L0003
+ LD (L3972),HL
+ LD HL,00040H
+ LD (L3976),HL
+ LD HL,L3972
+ CALL L3988
+ RET NC
+ CP 028H
+ SCF
+ RET NZ
+ LD A,000H
+ RET
+
+ LD (L3974),HL
+ LD HL,00103H
+ LD (L3972),HL
+ LD (03976H),BC
+ LD HL,L3972
+L3928: JR L3988 ; (+05eH)
+
+ LD A,037H
+ LD (L393C),A
+L392F: LD A,001H
+ LD HL,L3973
+ LD (HL),A
+ DEC HL
+ LD (HL),A
+ JR L3988 ; (+04fH)
+
+ LD (L3971),A
+L393C: XOR A
+ JR NC,L395B ; (+01cH)
+ LD A,0AFH
+ LD (L393C),A
+ CALL L1C2B
+ LD (L3978),HL
+ LD HL,L1000
+ LD (L3974),HL
+ LD HL,00040H
+ LD (L3976),HL
+ LD A,(L3971)
+ JR L3963 ; (+008H)
+
+L395B: LD (L3978),HL
+ LD A,(L3971)
+ SET 0,A
+L3963: LD (L3973),A
+ LD (0397AH),BC
+ LD HL,L3972
+ LD (HL),004H
+ JR L3988 ; (+017H)
+
+L3971: NOP
+L3972: NOP
+L3973: NOP
+L3974: NOP
+ NOP
+L3976: NOP
+ NOP
+L3978: NOP
+ NOP
+ NOP
+ NOP
+L397C: NOP
+L397D: NOP
+L397E: NOP
+L397F: NOP
+L3980: NOP
+L3981: NOP
+L3982: NOP
+L3983: NOP
+L3984: NOP
+L3985: NOP
+ NOP
+ NOP
+L3988: LD A,002H
+ LD (L3984),A
+L398D: DI
+ CALL L39D5
+ EI
+ RET NC
+ PUSH AF
+ CP 028H
+ JR Z,L39D3 ; (+03bH)
+ CALL L3C34
+ LD A,(L3980)
+ OR A
+ JR Z,L39B8 ; (+017H)
+ XOR A
+ LD (L3980),A
+ LD A,(L3981)
+ PUSH HL
+ LD (03986H),SP
+ POP HL
+ DI
+ CALL L3BD3
+ EI
+ JR C,L39CD ; (+018H)
+ CALL L3C34
+L39B8: POP AF
+ PUSH AF
+ CP 029H
+ JR NZ,L39D3 ; (+015H)
+ LD HL,L3984
+ DEC (HL)
+ JR Z,L39CD ; (+009H)
+ POP AF
+ LD A,(L397F)
+ LD (L397E),A
+ JR L398D ; (-040H)
+
+L39CD: CALL L3B47
+ CALL L39EE
+L39D3: POP AF
+ RET
+
+L39D5: LD (03986H),SP
+ LD A,(L3972)
+ DEC A
+ JR Z,L39F5 ; (+016H)
+ DEC A
+ JR Z,L39FB ; (+019H)
+ DEC A
+ JR Z,L3A49 ; (+064H)
+ DEC A
+ JP Z,L3AB4
+ DEC A
+ JR Z,L39EE ; (+002H)
+ JR L3A3E ; (+050H)
+
+L39EE: PUSH AF
+ XOR A
+ LD (L397C),A
+ POP AF
+ RET
+
+L39F5: LD A,(L3973)
+ JP L3BA9
+
+L39FB: XOR A
+ CALL L3BD3
+ CALL L3CAA
+ LD BC,0FFFFH
+ LD A,0AAH
+L3A07: CPL
+ LD D,A
+ CALL L3D21
+ DEC BC
+ LD A,B
+ OR C
+ JR Z,L3A14 ; (+003H)
+ LD A,D
+ JR L3A07 ; (-00dH)
+
+L3A14: CALL L3CF7
+ CALL L3C34
+ CALL L3BEB
+ LD A,(L3982)
+ DEC A
+ JR NZ,L3A41 ; (+01eH)
+ CALL L3C49
+ LD BC,0FFFFH
+ LD E,055H
+L3A2B: CP E
+ JR NZ,L3A41 ; (+013H)
+ DEC BC
+ LD A,B
+ OR C
+ JR Z,L3A3B ; (+008H)
+ LD A,E
+ CPL
+ LD E,A
+ CALL L3D37
+ JR L3A2B ; (-010H)
+
+L3A3B: CALL L3D09
+L3A3E: JP L3C34
+
+L3A41: LD A,029H
+ SCF
+ RET
+
+L3A45: EI
+ JP 0017DH
+
+L3A49: LD A,(L3983)
+ OR A
+ CALL Z,L3BEB
+ CALL L3A7A
+ RET C
+ CALL BRKCHK
+ JP Z,L3A45
+ CALL L3D37
+ LD C,A
+ CALL L3D37
+ LD B,A
+ LD HL,(L3974)
+L3A65: CALL L3D37
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3A65 ; (-00aH)
+ CALL L3D09
+ LD A,(L3973)
+ BIT 0,A
+ JR NZ,L3A3E ; (-03bH)
+ RET
+
+L3A7A: LD HL,L3982
+ DEC (HL)
+ JR Z,L3AB0 ; (+030H)
+ CALL L3C49
+ LD C,A
+ LD A,(L397C)
+ LD HL,L397D
+ CP (HL)
+ JR NZ,L3AAD ; (+020H)
+ INC A
+ LD (L397C),A
+ LD (HL),A
+ LD A,(L3973)
+ XOR C
+ RRA
+ RET NC
+L3A98: CALL L3D37
+ LD C,A
+ CALL L3D37
+ LD B,A
+L3AA0: CALL L3D37
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3AA0 ; (-008H)
+ CALL L3D09
+ JR L3A7A ; (-033H)
+
+L3AAD: INC (HL)
+ JR L3A98 ; (-018H)
+
+L3AB0: LD A,028H
+ SCF
+ RET
+
+L3AB4: LD A,(L397E)
+ LD (L397F),A
+ LD A,(L3983)
+ OR A
+ JR NZ,L3AD7 ; (+017H)
+ CALL L3BEB
+ LD A,(L397E)
+ LD HL,L3982
+ ADD A,(HL)
+ LD (L3982),A
+ INC A
+ LD (L397C),A
+ CALL L3A7A
+ JP NC,L3B51
+L3AD7: LD A,(L3973)
+ LD B,A
+ AND 001H
+ JR NZ,L3AEE ; (+00fH)
+ LD DE,L3974
+ LD A,B
+ RES 2,A
+ CALL L3B5A
+ CALL BRKCHK
+ JP Z,L3A45
+L3AEE: LD DE,L3978
+ LD A,(L3973)
+ SET 0,A
+ CALL L3B5A
+ CALL L3C34
+ CALL BRKCHK
+ JP Z,L3A45
+ LD A,(L3973)
+ AND 004H
+ JR Z,L3B55 ; (+04cH)
+ LD A,(L3981)
+ LD HL,L397E
+ ADD A,(HL)
+ CALL L3BD3
+ LD A,001H
+ LD (L3980),A
+L3B18: LD A,(L3981)
+ LD HL,L397F
+ ADD A,(HL)
+ INC A
+ LD (L3982),A
+ INC A
+ LD (L397C),A
+ CALL L3A7A
+ JR NC,L3B51 ; (+025H)
+ LD A,(L3973)
+ AND 001H
+ JR NZ,L3B3A ; (+007H)
+ LD DE,L3974
+ CALL L3B88
+ RET C
+L3B3A: LD DE,L3978
+ CALL L3B88
+ RET C
+ LD A,(L3980)
+ OR A
+ JR Z,L3B4E ; (+007H)
+L3B47: XOR A
+ LD (L397E),A
+ LD (L3980),A
+L3B4E: JP L3C34
+
+L3B51: LD A,029H
+ SCF
+ RET
+
+L3B55: CALL L3BEB
+ JR L3B18 ; (-042H)
+
+L3B5A: PUSH AF
+ LD HL,L397E
+ INC (HL)
+ CALL L3CAA
+ POP AF
+ CALL L3D21
+ CALL L3B7E
+ LD A,C
+ CALL L3D21
+ LD A,B
+ CALL L3D21
+L3B71: LD A,(HL)
+ CALL L3D21
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3B71 ; (-00aH)
+ JP L3CF7
+
+L3B7E: EX DE,HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ EX DE,HL
+ RET
+
+L3B88: CALL L3C49
+ CALL L3B7E
+ CALL L3D37
+ CP C
+ JR NZ,L3B51 ; (-043H)
+ CALL L3D37
+ CP B
+ JR NZ,L3B51 ; (-049H)
+L3B9A: CALL L3D37
+ CP (HL)
+ JR NZ,L3B51 ; (-04fH)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3B9A ; (-00cH)
+ JP L3D09
+
+L3BA9: LD B,A
+ LD A,002H
+ OUT (0F7H),A
+ LD A,055H
+ OUT (0F7H),A
+ LD A,002H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ CP 055H
+ JP NZ,03D4DH
+ LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ LD C,A
+ AND 008H
+ JP Z,03D4DH
+ LD A,B
+ OR A
+ RET Z
+ LD A,C
+ AND 020H
+ RET NZ
+ JP 03D4AH
+
+L3BD3: PUSH AF
+ LD HL,03D73H
+ LD B,009H
+ CALL L3C0A
+ CALL L3CDF
+ CALL L3CC3
+ POP AF
+ CALL L3D21
+ CALL L3CF7
+ JR L3C00 ; (+015H)
+
+L3BEB: LD HL,L3D68
+ LD B,00BH
+ CALL L3C0A
+ CALL L3C5F
+ LD (L3981),A
+ INC A
+ LD (L3982),A
+ CALL L3D09
+L3C00: LD HL,L3985
+ SET 3,(HL)
+ XOR A
+ LD (L397D),A
+ RET
+
+L3C0A: LD C,0F6H
+ OTIR
+ LD A,005H
+ LD (L3983),A
+ OUT (0F7H),A
+ LD A,080H
+ OUT (0F7H),A
+L3C19: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03D4DH
+ LD A,010H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 008H
+ JR Z,L3C19 ; (-015H)
+ LD BC,L00E9
+ JP L3D5B
+
+L3C34: PUSH AF
+ LD A,005H
+ OUT (0F6H),A
+ LD A,060H
+ OUT (0F6H),A
+ LD A,005H
+ OUT (0F7H),A
+ XOR A
+ LD (L3983),A
+ OUT (0F7H),A
+ POP AF
+ RET
+
+L3C49: LD A,058H
+ LD B,00BH
+ LD HL,L3D68
+ CALL L3CE8
+ LD HL,L3985
+ BIT 3,(HL)
+ LD BC,L0003
+ JR Z,L3C62 ; (+005H)
+ RES 3,(HL)
+L3C5F: LD BC,L00A0
+L3C62: CALL L3D5B
+ LD A,005H
+ OUT (0F7H),A
+ LD A,082H
+ OUT (0F7H),A
+ LD A,003H
+ OUT (0F6H),A
+ LD A,LSD3
+ OUT (0F6H),A
+ LD BC,L2CC0
+L3C78: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 010H
+ JR Z,L3C8A ; (+008H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3C78 ; (-00fH)
+ JP 03D53H
+
+L3C8A: LD A,003H
+ OUT (0F6H),A
+ LD A,0C3H
+ OUT (0F6H),A
+L3C92: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 001H
+ JR Z,L3C92 ; (-00aH)
+ LD A,003H
+ OUT (0F6H),A
+ LD A,0C9H
+ OUT (0F6H),A
+ CALL L3D37
+ JP L3D37
+
+L3CAA: LD A,098H
+ LD B,009H
+ LD HL,03D73H
+ CALL L3CE8
+ CALL L3CDF
+ LD HL,L3985
+ BIT 3,(HL)
+ LD BC,0001DH
+ JR Z,L3CC6 ; (+005H)
+ RES 3,(HL)
+L3CC3: LD BC,L0140
+L3CC6: CALL L3D5B
+ LD A,005H
+ OUT (0F6H),A
+ LD A,0EFH
+ OUT (0F6H),A
+ LD BC,00001H
+ CALL L3D5B
+ LD A,0C0H
+ OUT (0F6H),A
+ LD A,0A5H
+ JR L3D21 ; (+042H)
+
+L3CDF: LD A,005H
+ OUT (0F6H),A
+ LD A,0FFH
+ OUT (0F6H),A
+ RET
+
+L3CE8: LD C,0F6H
+ OUT (C),A
+ LD A,005H
+ OUT (0F7H),A
+ LD A,080H
+ OUT (0F7H),A
+ OTIR
+ RET
+
+L3CF7: LD BC,00001H
+ CALL L3D5B
+ LD A,010H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 008H
+ RET NZ
+ JP 03D50H
+
+L3D09: LD B,003H
+L3D0B: CALL L3D37
+ DJNZ L3D0B ; (-005H)
+L3D10: IN A,(0F6H)
+ RRCA
+ JR NC,L3D10 ; (-005H)
+ LD A,001H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 040H
+ JR NZ,L3D47 ; (+028H)
+ OR A
+ RET
+
+L3D21: PUSH AF
+L3D22: IN A,(0F6H)
+ AND 004H
+ JR Z,L3D22 ; (-006H)
+ POP AF
+ OUT (QDPC),A
+L3D2B: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03D4DH
+ RET
+
+L3D37: CALL L3D2B
+ IN A,(0F6H)
+ RLCA
+ JR C,L3D47 ; (+008H)
+ RRCA
+ RRCA
+ JR NC,L3D37 ; (-00cH)
+ IN A,(QDPC)
+ OR A
+ RET
+
+L3D47: LD A,029H
+ LD HL,02E3EH
+ LD HL,0323EH
+ LD HL,L353E
+ LD HL,0363EH
+ LD SP,(03986H)
+ SCF
+ RET
+
+L3D5B: PUSH AF
+L3D5C: LD A,098H
+L3D5E: DEC A
+ JR NZ,L3D5E ; (-003H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3D5C ; (-00aH)
+ POP AF
+ RET
+
+L3D68: LD E,B
+ INC B
+ DJNZ L3D71 ; (+005H)
+ INC B
+ INC BC
+ RET NC
+ LD B,016H
+L3D71: RLCA
+ LD D,098H
+ INC B
+ DJNZ L3D7D ; (+006H)
+ LD D,007H
+ LD D,005H
+ LD L,L
+ PUSH HL
+L3D7D: LD DE,(00188H)
+ PUSH DE
+ LD DE,L3DC3
+ LD (00188H),DE
+ LD A,(L004F)
+ PUSH AF
+ LD A,064H
+ LD (L004F),A
+ LD (03E3AH),SP
+ XOR A
+ LD (L1091),A
+L3D9A: LD SP,L0000
+L3D9D: LD BC,L3D9D
+ PUSH BC
+ RST 018H
+ DB 002H
+ LD A,02AH
+ RST 018H
+ DB 003H
+L3DA7: CALL L3E46
+ JR NC,L3DA7 ; (-005H)
+ LD A,(DE)
+ CP 02AH
+ RET NZ
+ INC DE
+ LD A,(DE)
+ INC DE
+ EXX
+ LD HL,L3DD5
+ LD B,00AH
+L3DB9: CP (HL)
+ INC HL
+ JR Z,L3DCF ; (+012H)
+ INC HL
+ INC HL
+ DJNZ L3DB9 ; (-008H)
+ EXX
+ RET
+
+L3DC3: LD C,A
+ AND 07FH
+ JR Z,L3D9A ; (-02eH)
+ LD A,C
+ RST 018H
+ DB 01BH
+ RST 018H
+ DB 043H
+ JR L3D9A ; (-035H)
+
+L3DCF: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH DE
+ EXX
+ RET
+
+L3DD5: LD B,H
+ CP E
+ LD A,04DH
+ DEC L
+ CCF
+ LD D,B
+ DI
+ DEC A
+ LD B,A
+ OR (HL)
+ LD A,046H
+ LD D,C
+ CCF
+ LD D,D
+ ADD HL,SP
+ LD A,053H
+ CALL M,L4C3D
+ INC DE
+ LD A,056H
+ JR NC,03E2EH ; (+03eH)
+ LD D,H
+ AND C
+ CCF
+ LD A,(L1091)
+ XOR 001H
+ LD (L1091),A
+ RET
+
+ CALL L3F8A
+ RET C
+ EXX
+ CALL L3FB8
+ EXX
+ LD (ELMD20),BC
+ LD (ELMD22),DE
+ LD (L1018),HL
+ RST 018H
+ DB 031H
+ RET
+
+ CALL L3E67
+ PUSH HL
+ PUSH AF
+ CALL L3E25
+ POP AF
+ POP HL
+ JR NC,L3E22 ; (+003H)
+ LD HL,(ELMD22)
+L3E22: RST 018H
+ DB 030H
+ RET
+
+L3E25: CALL L3FB8
+ RST 018H
+ DB 02FH
+ CP 001H
+ RET Z
+ JP 01F9DH
+
+ CALL L3E25
+ LD HL,(ELMD22)
+ RST 018H
+ DB 032H
+ RET
+
+ LD SP,L0000
+ POP AF
+ LD (L004F),A
+ POP HL
+ LD (00188H),HL
+ POP HL
+ RET
+
+L3E46: LD DE,0FF00H
+ RST 018H
+ DB 00CH
+ JR C,L3E65 ; (+018H)
+ LD A,(DE)
+ CP 03AH
+ SCF
+ RET NZ
+ INC DE
+ CALL L3E67
+ RET C
+ LD A,(DE)
+ INC DE
+ XOR 03DH
+ RET NZ
+L3E5C: CALL L3E8C
+ CCF
+ RET NC
+ LD (HL),A
+ INC HL
+ JR L3E5C ; (-009H)
+
+L3E65: LD (DE),A
+ RET
+
+L3E67: PUSH HL
+ CALL L3E81
+ PUSH DE
+ CALL L3E93
+ JR C,L3E7C ; (+00bH)
+ LD H,A
+ CALL L3E93
+ JR C,L3E7C ; (+005H)
+ LD L,A
+ POP AF
+ POP AF
+ XOR A
+ RET
+
+L3E7C: POP DE
+ POP HL
+ SCF
+ RET
+
+L3E80: INC DE
+L3E81: LD A,(DE)
+ CP 020H
+ JR Z,L3E80 ; (-006H)
+ RET
+
+L3E87: LD A,(DE)
+ RST 018H
+ DB 015H
+ INC DE
+ RET
+
+L3E8C: CALL L3E81
+ CP 03BH
+ JR Z,L3EB1 ; (+01eH)
+L3E93: PUSH BC
+ PUSH DE
+ CALL L3E87
+ JR C,L3EAD ; (+013H)
+ LD C,A
+ CALL L3E87
+ JR C,L3EAD ; (+00dH)
+ LD B,A
+ LD A,C
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ ADD A,B
+ LD C,A
+ LD A,C
+ POP BC
+ POP BC
+ OR A
+ RET
+
+L3EAD: POP DE
+ POP BC
+ SCF
+ RET
+
+L3EB1: INC DE
+ LD A,(DE)
+ INC DE
+ OR A
+ RET
+
+ CALL L3E67
+ RET C
+ JP (HL)
+
+ CALL L3E67
+ JR C,L3ECB ; (+00bH)
+ PUSH HL
+ CALL L3E67
+ JR C,L3ECA ; (+004H)
+ POP DE
+ EX DE,HL
+ JR L3ED1 ; (+007H)
+
+L3ECA: POP HL
+L3ECB: EX DE,HL
+ LD HL,L0080
+ ADD HL,DE
+ EX DE,HL
+L3ED1: LD C,008H
+ CALL L3EDE
+ RET C
+ PUSH HL
+ SBC HL,DE
+ POP HL
+ RET NC
+ JR L3ED1 ; (-00dH)
+
+L3EDE: CALL L3F06
+ LD B,C
+ PUSH HL
+L3EE3: LD A,(HL)
+ CALL L3F17
+ INC HL
+ LD A,020H
+ RST 018H
+ DB 009H
+ DJNZ L3EE3 ; (-00bH)
+ POP HL
+ LD A,02FH
+ RST 018H
+ DB 009H
+ LD B,C
+L3EF4: LD A,(HL)
+ CP 020H
+ JR NC,L3EFB ; (+002H)
+ LD A,02EH
+L3EFB: RST 018H
+ DB 009H
+ INC HL
+ DJNZ L3EF4 ; (-00cH)
+ RST 018H
+ DB 008H
+ RST 018H
+ DB 00FH
+ OR A
+ RET
+
+L3F06: LD A,03AH
+ RST 018H
+ DB 009H
+ LD A,H
+ CALL L3F17
+ LD A,L
+ CALL L3F17
+ LD A,03DH
+ RST 018H
+ DB 009H
+ RET
+
+L3F17: PUSH AF
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ CALL L3F20
+ POP AF
+L3F20: AND 00FH
+ ADD A,030H
+ CP 03AH
+ JR C,L3F2A ; (+002H)
+ ADD A,007H
+L3F2A: RST 018H
+ DB 009H
+ RET
+
+ CALL L3E67
+ LD A,(L1091)
+ PUSH AF
+ XOR A
+ LD (L1091),A
+L3F38: RST 018H
+ DB 002H
+ CALL L3F06
+ LD A,(HL)
+ CALL L3F17
+ LD A,014H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 003H
+ CALL L3E46
+ JR NC,L3F38 ; (-014H)
+ POP AF
+ LD (L1091),A
+ RET
+
+ CALL L3E67
+ RET C
+ PUSH HL
+ CALL L3E67
+ POP BC
+ RET C
+ PUSH HL
+ PUSH BC
+ LD HL,0FF00H
+ CALL L3E5C
+ LD DE,0FF00H
+ OR A
+ SBC HL,DE
+ LD C,L
+ POP HL
+ PUSH HL
+ EXX
+ POP HL
+ POP DE
+ EXX
+ RET Z
+L3F71: CALL L3FCB
+ JR NZ,L3F7A ; (+004H)
+ CALL L3EDE
+ RET C
+L3F7A: RST 018H
+ DB 00EH
+ RET Z
+ EXX
+ INC HL
+ PUSH HL
+ SCF
+ SBC HL,DE
+ POP HL
+ RET NC
+ PUSH HL
+ EXX
+ POP HL
+ JR L3F71 ; (-019H)
+
+L3F8A: CALL L3E67
+ PUSH HL
+ CALL NC,L3E67
+ POP BC
+ RET C
+ SBC HL,BC
+ INC HL
+ PUSH HL
+ PUSH BC
+ CALL L3E67
+ PUSH HL
+ EXX
+ POP HL
+ POP DE
+ POP BC
+ RET
+
+ CALL L3F8A
+ RET C
+ EX DE,HL
+ PUSH HL
+ SBC HL,DE
+ POP HL
+ JR C,L3FAF ; (+003H)
+ LDIR
+ RET
+
+L3FAF: ADD HL,BC
+ DEC HL
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ EX DE,HL
+ LDDR
+ RET
+
+L3FB8: LD A,(DE)
+ OR A
+ JR Z,L3FC1 ; (+005H)
+ INC DE
+ CP 03AH
+ JR NZ,L3FB8 ; (-009H)
+L3FC1: RST 018H
+ DB 017H
+ RST 018H
+ DB 02DH
+ LD A,001H
+ LD (L1000),A
+ RET
+
+L3FCB: LD A,(DE)
+ CP (HL)
+ RET NZ
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD B,C
+L3FD2: LD A,(DE)
+ CP (HL)
+ JR NZ,L3FDB ; (+005H)
+ INC DE
+ INC HL
+ DJNZ L3FD2 ; (-008H)
+ XOR A
+L3FDB: POP HL
+ POP DE
+ POP BC
+ RET
+
+ DS 33, 000H
+L4000: LD HL,RFS_END ; Was L85FE; now points past RFS code
+ LD (L1070),HL
+ LD HL,L4052
+ LD (000E3H),HL
+ LD A,B
+ OR A
+ JR Z,L401B ; (+00bH)
+ LD HL,L4042
+ LD DE,L1361
+ LD BC,00010H
+ LDIR
+L401B: LD A,(L0036)
+ BIT 6,A
+ LD A,045H
+ JR Z,L4027 ; (+003H)
+ LD (L852E),A
+L4027: LD DE,L84E0
+ RST 018H
+L402B: DB 005H
+ JP MEMCLI_PATCH ; Was: RST 018H / DB 020H / EX DE,HL
+L402F: LD (HL),000H
+ INC HL
+ LD A,H
+ CP 0FFH
+ JR C,L402F ; (-008H)
+ CALL L4902
+ CALL L4914
+ CALL L5E1B
+ JR L4056 ; (+014H)
+
+L4042: RRCA
+ DB "RUN ",022H,"AUTO RUN",022H,00DH
+L4052: DB 03EH
+ DB 016H
+ DB 0DFH
+ DB 003H
+L4056: LD HL,L4B7B
+ LD (00188H),HL
+L405C: RST 018H
+ DB 002H
+ LD DE,L4B68
+ RST 018H
+ DB 005H
+ RST 018H
+ DB 001H
+L4065: LD A,(L4B6E)
+ OR A
+ JR NZ,L4077 ; (+00cH)
+ LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ LD (0848FH),SP
+L4077: LD HL,L0000
+ LD (L847C),HL
+ XOR A
+ LD (L0050),A
+ CALL L48B1
+ RST 018H
+ DB 043H
+ LD DE,L11A4
+ RST 018H
+ DB 00CH
+ JR NC,L4099 ; (+00cH)
+L408D: LD HL,L48B0
+ LD A,(HL)
+ OR A
+ LD (HL),000H
+ JR NZ,L405C ; (-03aH)
+ JR L4065 ; (-033H)
+
+L4098: INC DE
+L4099: LD A,(DE)
+ CP 020H
+ JR Z,L4098 ; (-006H)
+ OR A
+ JR Z,L4065 ; (-03cH)
+ CALL L5EC2
+ JP NC,L4746
+ LD HL,L84E0
+ PUSH HL
+ CALL L66ED
+ INC HL
+ LD (L8476),HL
+ CALL L4952
+ POP HL
+ JR L40BB ; (+003H)
+
+L40B8: CALL L5E46
+L40BB: LD (0848FH),SP
+L40BF: LD DE,L40B8
+ PUSH DE
+L40C3: LD (L8491),HL
+ CALL BRKCHK
+ JP Z,0017DH
+L40CC: LD A,(HL)
+ INC HL
+ CP 080H
+ JR NC,L4126 ; (+054H)
+ CP 027H
+ JP Z,L4F80
+ CP 020H
+ JR Z,L40CC ; (-00fH)
+ CP 03AH
+ JR Z,L40C3 ; (-01cH)
+ OR A
+ JR Z,L40ED ; (+00bH)
+ DEC HL
+ SUB 041H
+ CP 01AH
+ JP C,L4C8F
+ JP L4AE6
+
+L40ED: LD HL,(L8476)
+L40F0: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L410F ; (+018H)
+ LD (L0050),A
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ LD (L8476),HL
+ EX DE,HL
+ INC HL
+ CALL LDDEMI
+ LD (0847CH),DE
+ CALL L4971
+ POP DE
+ JR L40BB ; (-054H)
+
+L410F: POP HL
+ CALL L4152
+ JP Z,L405C
+ XOR A
+ LD (L4B6E),A
+ LD A,(L847F)
+ CP 002H
+ JP Z,04B13H
+ PUSH HL
+ JP L4850
+
+L4126: CP 0FFH
+ JP Z,L4CC1
+ LD DE,L44B4
+ CP 0FEH
+ JR NZ,L4136 ; (+004H)
+ LD A,(HL)
+ INC HL
+ JR L413E ; (+008H)
+
+L4136: CP LSE0
+ JP NC,L4AE6
+ LD DE,L43F4
+L413E: ADD A,A
+ PUSH HL
+ EX DE,HL
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ EX (SP),HL
+L414A: CALL HLFTCH
+L414D: OR A
+ RET Z
+ CP 03AH
+ RET
+
+L4152: PUSH HL
+ LD HL,(L847C)
+ LD A,L
+ OR H
+ POP HL
+ RET
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L4167: DB "GOT", "O" | 080H ; BASIC statement keyword text table
+ DB "GOSU", "B" | 080H
+ DB 080H
+ DB "RU", "N" | 080H
+ DB "RETUR", "N" | 080H
+ DB "RESTOR", "E" | 080H
+ DB "RESUM", "E" | 080H
+ DB "LIS", "T" | 080H
+ DB 080H
+ DB "DELET", "E" | 080H
+ DB 052H
+L4193: DB "ENU", "M" | 080H
+ DB "AUT", "O" | 080H
+ DB "EDI", "T" | 080H
+ DB "FO", "R" | 080H
+ DB "NEX", "T" | 080H
+ DB "PRIN", "T" | 080H
+ DB 080H
+ DB "INPU", "T" | 080H
+ DB 080H
+ DB "I", "F" | 080H
+ DB "DAT", "A" | 080H
+ DB "REA", "D" | 080H
+ DB "DI", "M" | 080H
+ DB "RE", "M" | 080H
+ DB "EN", "D" | 080H
+ DB "STO", "P" | 080H
+ DB "CON", "T" | 080H
+ DB "CL", "S" | 080H
+ DB 080H
+ DB "O", "N" | 080H
+ DB "LE", "T" | 080H
+ DB "NE", "W" | 080H
+ DB "POK", "E" | 080H
+ DB "OF", "F" | 080H
+ DB "MOD", "E" | 080H
+ DB "SKI", "P" | 080H
+ DB "PLO", "T" | 080H
+ DB "LIN", "E" | 080H
+ DB "RLIN", "E" | 080H
+ DB "MOV", "E" | 080H
+ DB "RMO", "V" | 080H
+ DB "TRO", "N" | 080H
+ DB "TROF", "F" | 080H
+ DB "INP", "@" | 080H
+ DB "DEFAUL", "T" | 080H
+ DB "GE", "T" | 080H
+ DB "PCOLO", "R" | 080H
+ DB "PHOM", "E" | 080H
+ DB "HSE", "T" | 080H
+ DB "GPRIN", "T" | 080H
+ DB "KE", "Y" | 080H
+ DB "AXI", "S" | 080H
+ DB "LOA", "D" | 080H
+ DB "SAV", "E" | 080H
+ DB "MERG", "E" | 080H
+ DB "CHAI", "N" | 080H
+ DB "CONSOL", "E" | 080H
+ DB "SEARC", "H" | 080H
+ DB "OUT", "@" | 080H
+ DB "CIRCL", "E" | 080H
+ DB "TES", "T" | 080H
+ DB "PAG", "E" | 080H
+ DB "WAI", "T" | 080H
+ DB "SWA", "P" | 080H
+ DB 080H
+ DB "ERRO", "R" | 080H
+ DB "ELS", "E" | 080H
+ DB "US", "R" | 080H
+ DB "BY", "E" | 080H
+ DB 080H
+ DB 080H
+ DB "DE", "F" | 080H
+ DB 080H
+ DB 080H
+ DB "LABE", "L" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "WOPE", "N" | 080H
+ DB "CLOS", "E" | 080H
+ DB "ROPE", "N" | 080H
+ DB "XOPE", "N" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "DI", "R" | 080H
+ DB 080H
+ DB 080H
+ DB "RENAM", "E" | 080H
+ DB "KIL", "L" | 080H
+ DB "LOC", "K" | 080H
+ DB "UNLOC", "K" | 080H
+ DB "INI", "T" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "T", "O" | 080H
+ DB "STE", "P" | 080H
+ DB "THE", "N" | 080H
+ DB "USIN", "G" | 080H
+ DB 080H
+ DB 080H
+ DB "TA", "B" | 080H
+ DB "SP", "C" | 080H
+ DB 080H
+ DB 080H
+ DB ".XO", "R" | 080H
+ DB ".O", "R" | 080H
+ DB ".AN", "D" | 080H
+ DB ".NO", "T" | 080H
+ DB ">", "<" | 080H
+ DB "<", ">" | 080H
+ DB "=", "<" | 080H
+ DB "<", "=" | 080H
+ DB "=", ">" | 080H
+ DB ">", "=" | 080H
+ DB "=" | 080H
+ DB ">" | 080H
+ DB "<" | 080H
+ DB "+" | 080H
+ DB "-" | 080H
+ DB 080H
+ DB 080H
+ DB "/" | 080H
+ DB "*" | 080H
+ DB "^" | 080H
+ DB 0FFH
+L42FE: DB 080H
+ DB "SE", "T" | 080H
+ DB "RESE", "T" | 080H
+ DB "COLO", "R" | 080H
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ LD B,D
+ LD B,L
+ LD B,L
+ RET NC
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ LD C,L
+ LD D,L
+ LD D,E
+ LD C,C
+ JP L4554
+
+ LD C,L
+ LD D,B
+ RST 008H
+ LD B,E
+ LD D,L
+ LD D,D
+ LD D,E
+ LD C,A
+ JP NC,L4556
+ LD D,D
+ LD C,C
+ LD B,(HL)
+ EXX
+ LD B,E
+ LD C,H
+ JP NC,0494CH
+ LD C,L
+ LD C,C
+ CALL NC,08080H
+ ADD A,B
+ ADD A,B
+ ADD A,B
+ ADD A,B
+FUNCWORDTBL:DB "BOO", "T" | 080H ; BASIC function keyword text table
+ DB 0FFH
+L4356: DB "IN", "T" | 080H
+ DB "AB", "S" | 080H
+ DB "SI", "N" | 080H
+ DB "CO", "S" | 080H
+ DB "TA", "N" | 080H
+ DB "L", "N" | 080H
+ DB "EX", "P" | 080H
+ DB "SQ", "R" | 080H
+ DB "RN", "D" | 080H
+ DB "PEE", "K" | 080H
+ DB "AT", "N" | 080H
+ DB "SG", "N" | 080H
+ DB "LO", "G" | 080H
+ DB "FRA", "C" | 080H
+ DB "PA", "I" | 080H
+ DB "RA", "D" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "JO", "Y" | 080H
+ DB 080H
+ DB "CHR", "$" | 080H
+ DB "STR", "$" | 080H
+ DB "HEX", "$" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "SPACE", "$" | 080H
+ DB 080H
+ DB 080H
+ DB "AS", "C" | 080H
+ DB "LE", "N" | 080H
+ DB "VA", "L" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "ER", "N" | 080H
+ DB "ER", "L" | 080H
+ DB "SIZ", "E" | 080H
+ DB "CSR", "H" | 080H
+ DB "CSR", "V" | 080H
+ DB 080H
+ DB 080H
+ DB "LEFT", "$" | 080H
+ DB "RIGHT", "$" | 080H
+ DB "MID", "$" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "TI", "$" | 080H
+ DB 080H
+ LD B,L
+ LD C,A
+ DW 046C6H ; Keyword dispatch address table
+ DW 0FFCEH
+L43F4: DW L513D
+ DW L50B8
+ DW L4AE6
+ DW L4802
+ DW L5087
+ DW L5828
+ DW L4C2E
+ DW 052B8H
+ DW L4AE6
+ DW L4999
+ DW L4A38
+ DW L4861
+ DW L48B9
+ DW L4D84
+ DW L4E1B
+ DW L561E
+ DW L4AE6
+ DW L575B
+ DW L4AE6
+ DW L5150
+ DW L4F80
+ DW L5754
+ DW L76A5
+ DW L4F80
+ DW L4850
+ DW L4BE0
+ DW L4C11
+ DW L552D
+ DW L4AE6
+ DW L50E0
+ DW L4C8F
+ DW L4922
+ DW L501A
+ DW L4AE6
+ DW L6A1C
+ DW L6A7F
+ DW L6E1A
+ DW L6ACC
+ DW 06ACFH
+ DW 06AD2H
+ DW 06AD5H
+ DW L4959
+ DW L496C
+ DW L4FA1
+ DW L58CA
+ DW L4FE5
+ DW L6B37
+ DW L6B69
+ DW L6B73
+ DW L6B7D
+ DW L539F
+ DW L6BE2
+ DW L5986
+ DW L5C86
+ DW L59EA
+ DW L59D5
+ DW L5256
+ DW L52B6
+ DW L4F8C
+ DW L6C22
+ DW L6DF0
+ DW L6DFB
+ DW L4F70
+ DW L5D63
+ DW L4AE6
+ DW L4B70
+ DW L5172
+ DW L4F26
+ DW L524E
+ DW L4AE6
+ DW L4AE6
+ DW L544C
+ DW L4AE6
+ DW L4AE6
+ DW L4F80
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW 058E2H
+ DW L5913
+ DW L58DF
+ DW 058E5H
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L5CE1
+ DW L4AE6
+ DW L4AE6
+ DW L5D08
+ DW 05914H
+ DW 05CD5H
+ DW L5CD3
+ DW L58D0
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+L44B4: DW L4AE6
+ DW L51E4
+ DW 051E5H
+ DW L549C
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L524B
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L4AE6
+ DW L54F3
+ DW L5515
+ DW L4FBD
+ DW L5C6F
+ DW L4928
+ LD B,E
+ LD D,B
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ OR B
+ LD D,D
+L4512: ADD A,H
+ LD A,(HL)
+ LD A,A
+ LD A,(HL)
+ BIT 7,A
+ CP E
+ LD A,A
+ XOR D
+ ADD A,B
+ ADD HL,DE
+ ADD A,E
+ PUSH AF
+ ADD A,C
+ POP HL
+ LD A,(HL)
+ OR B
+ ADD A,C
+ SBC A,H
+ ADD A,C
+ RST 038H
+ LD A,(HL)
+ LD H,D
+ ADD A,C
+ DEC C
+ ADD A,E
+ ADC A,E
+ LD H,B
+ LD A,D
+ ADD A,C
+ LD (HL),L
+ ADD A,C
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ DEC H
+ LD A,C
+ AND 04AH
+ AND 04AH
+L4554: JR NC,L45C8 ; (+072H)
+L4556: RST 028H
+ LD (HL),C
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ LD (DE),A
+ LD (HL),D
+ AND 04AH
+ AND 04AH
+ LD L,E
+ LD (HL),D
+ LD (HL),L
+ LD (HL),D
+ LD A,L
+ LD (HL),D
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ LD A,E
+ LD (HL),C
+ ADC A,C
+ LD (HL),C
+ LD E,H
+ LD (HL),C
+ LD (HL),C
+ LD (HL),C
+ HALT
+ LD (HL),C
+ AND 04AH
+ AND 04AH
+ ADC A,A
+ LD (HL),D
+ XOR H
+ LD (HL),D
+ RET
+
+ LD (HL),D
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ RRA
+ LD (HL),E
+ AND 04AH
+ LD A,072H
+ SBC A,B
+ LD A,B
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+ AND 04AH
+L45B2: CALL TEST1
+ DB 00CH
+ JR NZ,L45BE ; (+006H)
+ CALL LDDEMI
+ OR 0FFH
+ RET
+
+L45BE: INC HL
+ CP 00BH
+ JR NZ,L45E2 ; (+01fH)
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD A,E
+L45C8: OR D
+ RET Z
+ EX DE,HL
+ CALL L4611
+ JP C,04B07H
+ EX DE,HL
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00CH
+ INC HL
+ INC HL
+ INC HL
+ OR 0FFH
+ LD (L4745),A
+ RET
+
+L45E2: CP 022H
+ JP NZ,L4AE6
+ LD (04658H),HL
+ LD B,000H
+L45EC: LD A,(HL)
+ OR A
+ JR Z,L45F8 ; (+008H)
+ INC HL
+ CP 022H
+ JR Z,L45F8 ; (+003H)
+ INC B
+ JR L45EC ; (-00cH)
+
+L45F8: LD A,B
+ OR A
+ JP Z,L4AE6
+ LD (04656H),A
+ EX DE,HL
+ CALL L460B
+ JP C,04B07H
+ EX DE,HL
+ OR 0FFH
+ RET
+
+L460B: PUSH BC
+ LD BC,L4644
+ JR L4615 ; (+004H)
+
+L4611: PUSH BC
+ LD BC,L4638
+L4615: LD (0462BH),BC
+ PUSH DE
+ EX DE,HL
+ LD HL,(L1070)
+L461E: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ LD A,B
+ OR C
+ SCF
+ JR Z,L4635 ; (+00fH)
+ DEC HL
+ PUSH HL
+ ADD HL,BC
+ EX (SP),HL
+ CALL L0000
+ JR C,L4634 ; (+005H)
+ JR Z,L4634 ; (+003H)
+ POP HL
+ JR L461E ; (-016H)
+
+L4634: POP DE
+L4635: POP DE
+ POP BC
+ RET
+
+L4638: INC HL
+ INC HL
+ INC HL
+ LD A,D
+ CP (HL)
+ RET NZ
+ DEC HL
+ LD A,E
+ CP (HL)
+ DEC HL
+ DEC HL
+ RET
+
+L4644: PUSH HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ CALL TEST1
+ DB 0CAH
+ JR NZ,L4668 ; (+019H)
+ CALL TEST1
+ DB 022H
+ JR NZ,L4668 ; (+013H)
+ LD B,000H
+ LD DE,L0000
+L465A: LD A,(DE)
+ CP (HL)
+ JR NZ,L4668 ; (+00aH)
+ INC HL
+ INC DE
+ DJNZ L465A ; (-008H)
+ LD A,(HL)
+ CP 022H
+ JR Z,L4668 ; (+001H)
+ OR A
+L4668: SCF
+ CCF
+ POP HL
+ RET
+
+L466C: LD DE,L0000
+ LD BC,0FFFFH
+ CALL L46AE
+ RET Z
+ CP 02DH
+ JR Z,L4696 ; (+01cH)
+ CP 02EH
+ LD DE,(08478H)
+ JR Z,L4689 ; (+007H)
+ CALL TESTX
+ DB 00BH
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L4689: INC HL
+ CALL L46AE
+ JR Z,L4693 ; (+004H)
+ CP 02DH
+ JR Z,L4696 ; (+003H)
+L4693: LD C,E
+ LD B,D
+ RET
+
+L4696: INC HL
+ CALL L46AE
+ RET Z
+ CP 02EH
+ JR NZ,L46A5 ; (+006H)
+ LD BC,(08478H)
+ INC HL
+ RET
+
+L46A5: CALL TESTX
+ DB 00BH
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ RET
+
+L46AE: CALL L414A
+ RET Z
+ CP 02CH
+ RET
+
+L46B5: CALL SKPDE
+ LD A,0FFH
+ LD (L4745),A
+ LD HL,L470B
+ JR L46D4 ; (+012H)
+
+L46C2: CALL SKPDE
+ CALL L4839
+L46C8: LD A,(L4745)
+ OR A
+ RET Z
+ XOR A
+ LD (L4745),A
+ LD HL,L46F1
+L46D4: LD (046EFH),HL
+ LD HL,(L1070)
+ DEC HL
+L46DB: INC HL
+ LD A,(HL)
+ INC HL
+ OR (HL)
+ RET Z
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (0473AH),DE
+L46E8: CALL L5198
+ OR A
+ JR Z,L46DB ; (-013H)
+ JP L0000
+
+L46F1: CP 00CH
+ JR NZ,L46E8 ; (-00dH)
+ DEC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH HL
+ EX DE,HL
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00BH
+ INC HL
+ INC HL
+ JR L46E8 ; (-023H)
+
+L470B: CP 00BH
+ JR NZ,L46E8 ; (-027H)
+ DEC HL
+ PUSH HL
+ CALL INDRCT
+ LD E,L
+ LD D,H
+ LD A,L
+ OR H
+ JR Z,L4741 ; (+027H)
+ CALL L4611
+ JR C,L472A ; (+00bH)
+ EX DE,HL
+ POP HL
+ DEC HL
+ LD (HL),00CH
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ JR L46E8 ; (-042H)
+
+L472A: PUSH DE
+ LD A,010H
+ RST 018H
+ DB 01BH
+ LD A,020H
+ RST 018H
+ DB 003H
+ POP HL
+ CALL L5E64
+ RST 018H
+ DB 005H
+ LD HL,L0000
+ CALL L4B4E
+ RST 018H
+ DB 002H
+L4741: POP HL
+ INC HL
+ JR L46E8 ; (-05dH)
+
+L4745: NOP
+L4746: RST 018H
+ DB 028H
+ CALL L46C2
+ CALL L6A09
+ LD A,B
+ OR C
+ JP Z,L4065
+ LD (08478H),BC
+ LD A,(DE)
+ CP 020H
+ JR NZ,L475D ; (+001H)
+ INC DE
+L475D: PUSH AF
+ LD HL,L84E0
+ CALL L66ED
+ PUSH HL
+ LD HL,(L8478)
+ LD E,L
+ LD D,H
+ CALL L49B9
+ POP HL
+ POP AF
+ OR A
+ JR Z,L4784 ; (+012H)
+ LD DE,L84E0
+ OR A
+ SBC HL,DE
+ LD DE,00005H
+ ADD HL,DE
+ LD B,H
+ LD C,L
+ LD HL,L84E0
+ CALL L479C
+L4784: LD A,(L48B0)
+ OR A
+ JP Z,L4065
+ LD DE,(0847AH)
+ LD HL,(L8478)
+ ADD HL,DE
+ LD (L8478),HL
+ JP NC,L4065
+ JP L408D
+
+L479C: LD (047F9H),HL
+ PUSH BC
+ LD BC,(08478H)
+ LD HL,(L1070)
+ JR L47AD ; (+004H)
+
+L47A9: CALL LDDEMD
+ ADD HL,DE
+L47AD: CALL LDDEMD
+ LD A,D
+ OR E
+ JR Z,L47C1 ; (+00dH)
+ INC HL
+ INC HL
+ CALL LDDEMD
+ EX DE,HL
+ SBC HL,BC
+ DEC DE
+ DEC DE
+ EX DE,HL
+ JR C,L47A9 ; (-018H)
+L47C1: POP DE
+ PUSH HL
+ LD HL,(L1078)
+ LD (L107A),HL
+ LD B,H
+ LD C,L
+ ADD HL,DE
+ JP C,L4B26
+ EX DE,HL
+ CALL L74E1
+ EX DE,HL
+ RST 018H
+ DB 018H
+ POP HL
+ PUSH DE
+ PUSH BC
+ EX (SP),HL
+ POP BC
+ PUSH HL
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ LD DE,(VARED)
+ INC BC
+ LDDR
+ INC HL
+ POP BC
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ LD DE,(08478H)
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ EX DE,HL
+ LD HL,L84E0
+ DEC BC
+ DEC BC
+ DEC BC
+ DEC BC
+ LDIR
+ RET
+
+L4802: JR Z,L480D ; (+009H)
+ CALL L516C
+ JP Z,L513D
+ JP L5AED
+
+L480D: CALL L4928
+L4810: CALL L4824
+ LD DE,(TEXTST)
+ LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ PUSH HL
+ EX DE,HL
+ JP L40F0
+
+L4824: PUSH HL
+ PUSH DE
+ CALL L4839
+ XOR A
+ LD (L48B0),A
+ LD HL,0000AH
+ LD (L8478),HL
+ LD (L847A),HL
+ POP DE
+ POP HL
+ RET
+
+L4839: CALL L5825
+ LD HL,L0000
+ LD (L8480),HL
+ XOR A
+ LD (L4B6E),A
+ LD (L847F),A
+ LD (L847E),A
+ LD (L8493),A
+ RET
+
+L4850: LD A,(L8493)
+ OR A
+ JP NZ,L5DC9
+ RST 018H
+ DB 028H
+ XOR A
+ LD (L4B6E),A
+ POP BC
+ JP L405C
+
+L4861: LD DE,0000AH
+ LD BC,0000AH
+ JR Z,L4897 ; (+02eH)
+ CP 02CH
+ JR NZ,L4878 ; (+00bH)
+ INC HL
+ CALL L6E57
+ LD B,D
+ LD C,E
+ LD DE,0000AH
+ JR L4897 ; (+01fH)
+
+L4878: CP 02EH
+ LD DE,(08478H)
+ JR Z,L4889 ; (+009H)
+ CP 00BH
+ JP NZ,L4AE6
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L4889: INC HL
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4897 ; (+007H)
+ PUSH DE
+ CALL L6E57
+ LD C,E
+ LD B,D
+ POP DE
+L4897: CALL L5E46
+ LD A,C
+ OR B
+ JP Z,04AECH
+ LD (08478H),DE
+ LD (0847AH),BC
+ LD A,001H
+ LD (L48B0),A
+ POP AF
+ JP L4065
+
+L48B0: NOP
+L48B1: LD A,(L48B0)
+ OR A
+ RET Z
+ XOR A
+ JR L48BF ; (+006H)
+
+L48B9: CALL L48BF
+ JP L4065
+
+L48BF: LD DE,(08478H)
+ CALL NZ,L466C
+ PUSH DE
+ EX DE,HL
+ CALL L4611
+ POP DE
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ JR NC,L48D5 ; (+003H)
+ LD HL,L00F9
+L48D5: EX DE,HL
+ PUSH DE
+ LD (L8478),HL
+ CALL L5E64
+ RST 018H
+ DB 005H
+ LD A,020H
+ RST 018H
+ DB 003H
+ POP HL
+ LD DE,L11A4
+ PUSH DE
+ CALL L68D8
+ POP DE
+ LD B,000H
+L48EE: LD A,(DE)
+ OR A
+ JR Z,L48F8 ; (+006H)
+ INC B
+ RST 018H
+ DB 004H
+ INC DE
+ JR L48EE ; (-00aH)
+
+L48F8: LD A,B
+ OR A
+ RET Z
+ LD A,014H
+ RST 018H
+ DB 003H
+ DJNZ 048FCH ; (-005H)
+ RET
+
+L4902: PUSH DE
+ LD DE,0FFF0H
+ ADD HL,DE
+ POP DE
+ LD (L107E),HL
+ DEC H
+ LD (L107C),HL
+ XOR A
+ LD (L8493),A
+ RET
+
+L4914: LD HL,(L1070)
+ CALL L4952
+ LD (L1072),HL
+ CALL L4824
+ JR L4928 ; (+006H)
+
+L4922: CALL L4914
+ JP L4056
+
+L4928: PUSH HL
+ CALL L4939
+ POP HL
+ RST 018H
+ DB 028H
+ RET
+
+L4930: LD HL,(L1070)
+ CALL L4952
+ LD (L1072),HL
+L4939: LD HL,(L1072)
+ LD (HL),000H
+ INC HL
+ LD (L1074),HL
+ LD (HL),000H
+ INC HL
+ LD (L1076),HL
+ CALL L4952
+ LD (L1078),HL
+ LD (L107A),HL
+ RET
+
+L4952: LD (HL),000H
+ INC HL
+ LD (HL),000H
+ INC HL
+ RET
+
+L4959: CALL L414A
+ LD A,001H
+ JR Z,L496D ; (+00dH)
+ CALL TESTX
+ DB FDPD
+ CALL TESTX
+ DB 050H
+ LD A,002H
+ JR L496D ; (+001H)
+
+L496C: XOR A
+L496D: LD (04972H),A
+ RET
+
+L4971: LD A,000H
+ OR A
+ RET Z
+ DEC A
+ LD (L1091),A
+ JR Z,L4982 ; (+007H)
+ LD A,(L1097)
+ CP 002H
+ JR Z,L4994 ; (+012H)
+L4982: PUSH HL
+ LD A,05BH
+ RST 018H
+ DB 009H
+ LD HL,(L847C)
+ CALL L5E64
+ RST 018H
+ DB 00BH
+ LD A,05DH
+ RST 018H
+ DB 009H
+ POP HL
+L4994: XOR A
+ LD (L1091),A
+ RET
+
+L4999: CALL L46AE
+ JP Z,L4AE6
+ CALL L516C
+ JR Z,L49AD ; (+009H)
+ CP 02DH
+ JR Z,L49AD ; (+005H)
+ CP 02EH
+ JP NZ,L5D00
+L49AD: CALL L466C
+ EX DE,HL
+ LD E,C
+ LD D,B
+ CALL L49B9
+ JP L405C
+
+L49B9: PUSH AF
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ CALL L46C2
+ LD C,L
+ LD B,H
+ LD HL,(L1070)
+L49C5: CALL LDDEMI
+ LD A,E
+ OR D
+ JR NZ,L49D4 ; (+008H)
+L49CC: POP DE
+ POP HL
+ POP BC
+ POP AF
+ RET
+
+L49D1: POP DE
+ JR L49CC ; (-008H)
+
+L49D4: EX DE,HL
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ LD (049EEH),HL
+ SBC HL,BC
+ POP HL
+ JR C,L49C5 ; (-021H)
+ DB 01BH
+ DEC DE
+ DEC DE
+ POP BC
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD HL,L0000
+ SBC HL,BC
+ POP HL
+ JR Z,L4A13 ; (+01eH)
+ JR NC,L49D1 ; (-026H)
+L49F7: CALL LDDEMI
+ LD A,D
+ OR E
+ JR Z,L4A11 ; (+013H)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ DEC DE
+ DEC DE
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ SBC HL,BC
+ POP HL
+ JR C,L49F7 ; (-016H)
+ JR Z,L4A13 ; (+004H)
+ EX DE,HL
+ DEC HL
+L4A11: DEC HL
+ DEC HL
+L4A13: POP DE
+ PUSH DE
+ PUSH HL
+ OR A
+ EX DE,HL
+ SBC HL,DE
+ EX DE,HL
+ LD BC,(VARED)
+ RST 018H
+ DB 018H
+ POP DE
+ LD H,B
+ LD L,C
+ OR A
+ SBC HL,DE
+ LD B,H
+ LD C,L
+ EX DE,HL
+ POP DE
+ LDIR
+ JR L49CC ; (-063H)
+
+L4A2F: CALL L6E57
+ LD A,D
+ OR E
+ RET NZ
+ JP 04AECH
+
+L4A38: LD DE,0000AH
+ LD (04AB4H),DE
+ LD (04AC6H),DE
+ LD E,000H
+ LD (04AA3H),DE
+ JR Z,L4A7E ; (+033H)
+ CP 02CH
+ JR Z,L4A5F ; (+010H)
+ CALL L4A2F
+ LD (04AB4H),DE
+ CALL L414A
+ JR Z,L4A7E ; (+023H)
+ CALL L5E6E
+ DEC HL
+L4A5F: CALL INCHLF
+ CP 02CH
+ JR Z,L4A76 ; (+010H)
+ CALL L4A2F
+ LD (04AA3H),DE
+ CALL L414A
+ JR Z,L4A7E ; (+00cH)
+ CALL L5E6E
+ DEC HL
+L4A76: INC HL
+ CALL L4A2F
+ LD (04AC6H),DE
+L4A7E: PUSH HL
+ LD HL,(04AA3H)
+ EX DE,HL
+ LD HL,(04AB4H)
+ OR A
+ SBC HL,DE
+ JP C,04AECH
+ CALL L46B5
+ LD HL,(L1070)
+L4A92: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4AD0 ; (+037H)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ EX DE,HL
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ PUSH HL
+ LD HL,L0000
+ OR A
+ SBC HL,BC
+ POP HL
+ JR Z,L4AB0 ; (+005H)
+ JR C,L4AB0 ; (+003H)
+ EX DE,HL
+ JR L4A92 ; (-01eH)
+
+L4AB0: DEC HL
+ DEC HL
+ DEC HL
+ LD BC,L0000
+L4AB6: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4AD0 ; (+013H)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ EX DE,HL
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ LD HL,L0000
+ ADD HL,BC
+ JR C,L4AD2 ; (+007H)
+ LD C,L
+ LD B,H
+ EX DE,HL
+ JR L4AB6 ; (-01aH)
+
+L4AD0: POP HL
+ RET
+
+L4AD2: LD HL,0000AH
+ LD (04AC6H),HL
+ LD (04AB4H),HL
+ LD L,000H
+ LD (04AA3H),HL
+ CALL L4A7E
+ JP 04AECH
+
+L4AE6: LD A,001H
+ LD HL,0023EH
+ LD HL,L033E
+ LD HL,0043EH
+ LD HL,L053E
+ LD HL,0063EH
+ LD HL,0073EH
+ LD HL,L083E
+ LD HL,L0D3E
+ LD HL,L0E3E
+ LD HL,L0F3E
+ LD HL,L103E
+ LD HL,L113E
+ LD HL,L123E
+ LD HL,L133E
+ LD HL,0143EH
+ LD HL,0153EH
+ LD HL,L183E
+ LD HL,L193E
+ LD HL,L3A3E
+ LD HL,0403EH
+ JR L4B34 ; (+00eH)
+
+L4B26: LD A,006H
+L4B28: LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ LD (0848FH),SP
+L4B34: JR L4B4B ; (+015H)
+
+L4B36: LD HL,(.$LPT)
+ LD IX,(.$CRT)
+ LD (L1044),HL
+ LD A,0C4H
+ LD HL,0BB3EH
+ LD HL,0BC3EH
+ LD HL,0BD3EH
+L4B4B: JP L0182
+
+L4B4E: LD A,L
+ OR H
+ RET Z
+ LD DE,L4B5C
+ RST 018H
+ DB 005H
+ CALL L5E64
+ RST 018H
+ DB 005H
+ RET
+
+L4B5C: JR NZ,04BA7H ; (+049H)
+ LD C,(HL)
+ JR NZ,L4B61 ; (+000H)
+L4B61: LD B,D
+ DEC B
+ LD D,D
+ LD B,L
+ LD B,C
+ LD C,E
+ NOP
+L4B68: LD D,D
+ DEC B
+ LD B,L
+ LD B,C
+ LD B,H
+ LD E,C
+L4B6E: NOP
+ NOP
+L4B70: CALL L6E43
+ DEC A
+ CP 046H
+ JR C,L4B7A ; (+002H)
+ LD A,044H
+L4B7A: INC A
+L4B7B: LD SP,(0848FH)
+ PUSH AF
+ RST 018H
+ DB 043H
+ CALL L5C42
+ POP AF
+ OR A
+ JR Z,L4BDB ; (+052H)
+ CP 080H
+ JR Z,L4BD9 ; (+04cH)
+ LD C,A
+ LD HL,L0000
+ LD (L7921),HL
+ CALL L4152
+ LD A,C
+ JR Z,L4BC4 ; (+02aH)
+ LD HL,(L847C)
+ LD (L8480),HL
+ LD (L8478),HL
+ LD HL,(L8476)
+ LD (L8482),HL
+ LD HL,(L8491)
+ LD (L8484),HL
+ AND 07FH
+ LD (L847E),A
+ LD A,(L847F)
+ INC A
+ CP 002H
+ JR Z,L4BCF ; (+013H)
+ XOR A
+ LD (L4B6E),A
+ LD (L8493),A
+ LD A,C
+L4BC4: RST 018H
+ DB 01BH
+L4BC6: LD HL,(L847C)
+ CALL L4B4E
+ JP L405C
+
+L4BCF: LD (L847F),A
+ LD HL,(08486H)
+ PUSH HL
+ JP L40F0
+
+L4BD9: LD A,02EH
+L4BDB: LD HL,(L8491)
+ JR L4BE3 ; (+003H)
+
+L4BE0: LD A,02EH
+ POP DE
+L4BE3: PUSH AF
+ PUSH HL
+ RST 018H
+ DB 002H
+ RST 018H
+ DB 020H
+ LD DE,L4B61
+ RST 018H
+ DB 005H
+ POP HL
+ CALL L4152
+ JR Z,L4C0D ; (+019H)
+ LD (04C29H),HL
+ LD HL,(L8476)
+ LD (04C23H),HL
+ LD HL,(L847C)
+ LD (04C1DH),HL
+ LD (L8478),HL
+ POP AF
+ LD (L4B6E),A
+ JP L4BC6
+
+L4C0D: POP AF
+ JP L405C
+
+L4C11: POP DE
+ LD HL,L4B6E
+ LD A,(HL)
+ OR A
+ JP Z,04B0AH
+ LD (HL),000H
+ LD HL,L0000
+ LD (L847C),HL
+ LD HL,L0000
+ LD (L8476),HL
+ LD HL,L0000
+ JP L40BB
+
+L4C2E: LD A,(L847F)
+ CP 002H
+ JP C,04B16H
+ DEC A
+ LD (L847F),A
+ CALL L414A
+L4C3D: EX DE,HL
+ LD HL,(L8480)
+ LD (L847C),HL
+ LD HL,(L8482)
+ LD (L8476),HL
+ LD HL,(L8484)
+ JR NZ,L4C53 ; (+004H)
+ POP BC
+ JP L40BF
+
+L4C53: CP 08EH
+ JP Z,L4F80
+ EX DE,HL
+ JP L513D
+
+L4C5C: CALL TEST1
+ DB 080H
+ JR Z,L4C6A ; (+008H)
+ CALL TESTX
+ DB 082H
+ CALL TESTX
+ DB LSE0
+L4C6A: CALL L45B2
+ JR Z,L4C79 ; (+00aH)
+ LD (08486H),DE
+ LD A,001H
+L4C75: LD (L847F),A
+ RET
+
+L4C79: LD A,(L847F)
+ DEC A
+ JR Z,L4C75 ; (-00aH)
+ XOR A
+ LD (L847F),A
+ LD HL,(L8480)
+ LD (L847C),HL
+ LD A,(L847E)
+ JP L4B7B
+
+L4C8F: CALL TEST1
+ DB 0FFH
+ JP Z,L4CC1
+ CALL L742F
+ PUSH BC
+ PUSH BC
+ PUSH AF
+ CALL TESTX
+ DB QDPC
+ CALL L6E82
+ POP BC
+ LD A,(L84C7)
+ CP B
+ JP NZ,04AEFH
+ EX (SP),HL
+ EX DE,HL
+ CP 005H
+ JR Z,L4CB9 ; (+008H)
+ PUSH BC
+ CALL L4CCC
+ POP AF
+ POP HL
+ POP BC
+ RET
+
+L4CB9: LD C,A
+ LD B,000H
+ LDIR
+ POP HL
+ POP BC
+ RET
+
+L4CC1: CALL TESTX
+ DB 0C4H
+ JP L73BB
+
+L4CC8: PUSH DE
+ EX DE,HL
+ JR L4CD0 ; (+004H)
+
+L4CCC: PUSH DE
+ CALL L6E76
+L4CD0: LD HL,L11A4
+ LD (HL),A
+ LD B,A
+ LD C,A
+ INC HL
+ CALL LDHLDE
+ POP HL
+ LD A,(HL)
+ CP C
+ JR Z,L4D21 ; (+042H)
+ PUSH HL
+ OR A
+ CALL NZ,L4D31
+ POP HL
+ LD A,(L11A4)
+ OR A
+ JR Z,L4D1E ; (+033H)
+ PUSH HL
+ LD BC,(VARST)
+ SBC HL,BC
+ EX DE,HL
+ LD HL,(L1078)
+ DEC HL
+ DEC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD BC,(STRST)
+ OR A
+ POP DE
+ PUSH HL
+ SBC HL,BC
+ EX DE,HL
+ LD (HL),A
+ LD B,A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ POP HL
+ LD DE,L11A4
+ INC DE
+ CALL L74D5
+ CALL L4952
+ LD (L107A),HL
+ LD (L1078),HL
+ RET
+
+L4D1E: LD (HL),000H
+ RET
+
+L4D21: INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ LD DE,L11A4
+ LD B,C
+ INC DE
+ JP L74D5
+
+L4D31: LD C,(HL)
+ LD B,000H
+ INC BC
+ INC BC
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+L4D3E: DEC HL
+ DEC HL
+ LD E,L
+ LD D,H
+ ADD HL,BC
+ PUSH BC
+ PUSH DE
+ EX DE,HL
+ LD HL,(L1078)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ EX DE,HL
+ POP DE
+ PUSH DE
+ JR Z,L4D55 ; (+002H)
+ LDIR
+L4D55: POP DE
+ POP BC
+ LD HL,(L1078)
+ OR A
+ SBC HL,BC
+ LD (L1078),HL
+ EX DE,HL
+L4D61: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ RET Z
+ LD HL,(L1074)
+ ADD HL,DE
+ LD A,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ OR A
+ EX DE,HL
+ SBC HL,BC
+ EX DE,HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ PUSH BC
+ LD C,A
+ LD B,000H
+ LD HL,(L1076)
+ ADD HL,DE
+ ADD HL,BC
+ POP BC
+ JR L4D61 ; (-023H)
+
+L4D84: POP BC
+ LD (04E19H),BC
+ CALL L4C8F
+ LD IX,L0000
+ ADD IX,SP
+ LD (04DFBH),HL
+ CALL L4EF4
+ LD (04DF7H),BC
+L4D9C: LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JR NZ,L4DC4 ; (+01aH)
+ LD E,(IX+006H)
+ LD D,(IX+007H)
+ EX DE,HL
+ OR A
+ SBC HL,BC
+ JR Z,L4DBD ; (+007H)
+ LD DE,L0012
+ ADD IX,DE
+ JR L4D9C ; (-021H)
+
+L4DBD: DB 011H
+ LD (DE),A
+ NOP
+ ADD IX,DE
+ LD SP,IX
+L4DC4: LD HL,(04DFBH)
+ CALL TESTX
+ DB LSE0
+ CALL L6E82
+ PUSH AF
+ PUSH HL
+ EX DE,HL
+ LD DE,L4F00
+ CALL L5E91
+ POP HL
+ POP AF
+ CP LSE1
+ LD DE,L6110
+ JR NZ,L4DE4 ; (+004H)
+ INC HL
+ CALL L6E82
+L4DE4: LD (04DFBH),HL
+ LD HL,0FFF6H
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ CALL L5E91
+ LD HL,L4F00
+ CALL L5E91
+ LD HL,L0000
+ PUSH HL
+ LD HL,L0000
+ PUSH HL
+ LD HL,(L8476)
+ PUSH HL
+ LD HL,0FF12H
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(TMPEND)
+ SBC HL,DE
+ LD A,00BH
+ JP C,L4B28
+ LD HL,(04DFBH)
+ JP L0000
+
+L4E1B: LD A,005H
+ LD (L84C7),A
+ POP BC
+ LD (04E90H),BC
+L4E25: PUSH AF
+ POP BC
+ LD (04DFBH),HL
+ LD IX,L0000
+ ADD IX,SP
+ LD (04E7FH),IX
+ LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JP NZ,04AFEH
+ PUSH BC
+ POP AF
+ JR NZ,L4EA6 ; (+05fH)
+ LD E,(IX+004H)
+ LD D,(IX+005H)
+ EX DE,HL
+ LD (04E8DH),HL
+ LD E,(IX+006H)
+ LD D,(IX+007H)
+ LD HL,(L1074)
+ ADD HL,DE
+ LD BC,00008H
+ ADD IX,BC
+ PUSH IX
+ POP DE
+ CALL L797E
+ INC DE
+ LD A,(DE)
+ LD IX,(04E7FH)
+ LD DE,0000DH
+ ADD IX,DE
+ PUSH IX
+ POP DE
+ BIT 7,A
+ JR NZ,L4E79 ; (+001H)
+ EX DE,HL
+L4E79: CALL L7A15
+ JR C,L4E92 ; (+014H)
+ LD SP,L0000
+ LD HL,00002H
+ ADD HL,SP
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ LD (L8476),HL
+ LD HL,L0000
+L4E8F: JP L0000
+
+L4E92: LD DE,L0012
+ LD HL,(04E7FH)
+ ADD HL,DE
+ LD SP,HL
+ LD HL,(04DFBH)
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4E8F ; (-014H)
+ LD (04DFBH),HL
+L4EA6: LD IX,L0000
+ ADD IX,SP
+ LD (04E7FH),IX
+ LD HL,(04DFBH)
+ CALL TEST1
+ DB 02CH
+ JP Z,L4E25
+ CALL L742F
+ LD (04DFBH),HL
+ CALL L4EF4
+ LD IX,(04E7FH)
+L4EC7: LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JP NZ,04AFEH
+ LD L,(IX+006H)
+ LD H,(IX+007H)
+ OR A
+ SBC HL,BC
+ LD HL,(04DFBH)
+ JP Z,L4E25
+ LD DE,L0012
+ ADD IX,DE
+ LD (04E7FH),IX
+ LD SP,(04E7FH)
+ JR L4EC7 ; (-02dH)
+
+L4EF4: LD H,B
+ LD L,C
+ LD BC,(VARST)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ RET
+
+L4F00: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L4F09: CALL L5198
+ OR A
+ RET NZ
+ INC HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ INC HL
+ LD (04F08H),DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (04F06H),DE
+ POP DE
+ SCF
+ RET Z
+ JR L4F09 ; (-01dH)
+
+L4F26: CALL L5E79
+ CALL L6E57
+ LD (04F5FH),DE
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4F51 ; (+01bH)
+ CALL L6E82
+ CALL L790F
+ LD (04F54H),DE
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4F51 ; (+00bH)
+ CALL L742F
+ CALL L790F
+ LD (04F67H),BC
+ XOR A
+L4F51: PUSH HL
+ PUSH AF
+ LD HL,L0000
+ CALL L6E76
+ LD IX,L0182
+ XOR A
+ CALL L0000
+ POP AF
+ JR NZ,L4F6C ; (+008H)
+ LD A,B
+ EX DE,HL
+ LD DE,L0000
+ CALL L4CC8
+L4F6C: POP HL
+ JP L5E7D
+
+L4F70: CALL L6E57
+L4F73: LD A,D
+ OR E
+ RET Z
+ LD B,000H
+L4F78: DJNZ L4F78 ; (-002H)
+ RST 018H
+ DB 00EH
+ RET Z
+ DEC DE
+ JR L4F73 ; (-00dH)
+
+L4F80: DEC HL
+L4F81: CALL L5198
+ OR A
+ SCF
+ RET Z
+ CP 03AH
+ RET Z
+ JR L4F81 ; (-00bH)
+
+L4F8C: CALL L6E43
+ SUB LSE0
+ CP 007H
+ JP C,04AECH
+ CALL L5E6E
+ PUSH DE
+ CALL L6E43
+ POP BC
+ OUT (C),A
+ RET
+
+L4FA1: CALL L6E43
+ CALL L5E6E
+ PUSH DE
+ CALL L742F
+ CP 005H
+ JP NZ,04AEFH
+ EX (SP),HL
+ PUSH BC
+ EX (SP),HL
+ POP BC
+ IN E,(C)
+ LD D,000H
+ CALL L5E97
+ POP HL
+ RET
+
+L4FBD: CALL L4FC5
+ LD (00054H),DE
+ RET
+
+L4FC5: LD B,018H
+ LD C,027H
+ CALL L4FD0
+ JP C,04AECH
+ RET
+
+L4FD0: PUSH BC
+ CALL L6E43
+ PUSH AF
+ CALL L5E6E
+ CALL L6E43
+ LD D,E
+ POP AF
+ LD E,A
+ POP BC
+ LD A,C
+ CP E
+ RET C
+ LD A,B
+ CP D
+ RET
+
+L4FE5: CALL L742F
+ LD (L84C7),A
+ CP 005H
+ JR Z,L5004 ; (+015H)
+ PUSH HL
+ PUSH BC
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ OR A
+ JR Z,L4FFE ; (+006H)
+ LD HL,(L107A)
+ LD (HL),A
+ LD A,001H
+L4FFE: POP DE
+ CALL L4CC8
+ POP HL
+ RET
+
+L5004: PUSH HL
+ PUSH BC
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ SUB 030H
+ CP 00AH
+ JR C,L5011 ; (+001H)
+ XOR A
+L5011: LD E,A
+ LD D,000H
+ POP HL
+ CALL L5E97
+ POP HL
+ RET
+
+L501A: CP 040H
+ LD BC,POPRA
+ JR NZ,L5025 ; (+004H)
+ INC HL
+ LD BC,L5041
+L5025: LD (05036H),BC
+ CALL L6E57
+ CALL L5E71
+L502F: PUSH DE
+ CALL L6E43
+ POP DE
+ EX DE,HL
+ CALL POPRA
+ EX DE,HL
+ INC DE
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ JR L502F ; (-012H)
+
+L5041: LD (HL),A
+ RET
+
+ PUSH HL
+ CALL TEST1
+ DB 04DH
+ JR NZ,L505C ; (+012H)
+ CALL TEST1
+ DB 041H
+ JR NZ,L505C ; (+00cH)
+ CALL TEST1
+ DB 058H
+ JR NZ,L505C ; (+006H)
+ EX (SP),HL
+ LD HL,(MEMMAX)
+ JR L5078 ; (+01cH)
+
+L505C: POP HL
+ CALL L6E57
+ PUSH HL
+ LD HL,(MEMMAX)
+ OR A
+ SBC HL,DE
+ JP C,L4B26
+ LD HL,(L107A)
+ INC H
+ INC H
+ INC H
+ INC H
+ OR A
+ SBC HL,DE
+ JP NC,04AECH
+ EX DE,HL
+L5078: CALL L4902
+ POP HL
+ POP DE
+ LD SP,(INTFAC)
+ LD BC,0FFFFH
+ PUSH BC
+ PUSH DE
+ RET
+
+L5087: POP IX
+L5089: POP BC
+ PUSH BC
+ LD A,B
+ INC A
+ JP NZ,04B01H
+ LD A,C
+ CP 012H
+ JR Z,L50AF ; (+01aH)
+ CP 0FEH
+ JP NZ,04B01H
+ POP BC
+ CALL L414A
+ EX DE,HL
+ POP HL
+ LD (L847C),HL
+ POP HL
+ LD (L8476),HL
+ POP HL
+ PUSH IX
+ RET Z
+ EX DE,HL
+ JP L513D
+
+L50AF: EX DE,HL
+ LD HL,L0012
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ JR L5089 ; (-02fH)
+
+L50B8: PUSH HL
+ CALL L4F80
+ EX DE,HL
+ POP HL
+ POP BC
+ PUSH DE
+ EXX
+ LD HL,(L8476)
+ PUSH HL
+ LD HL,(L847C)
+ PUSH HL
+ LD HL,0FFFEH
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(TMPEND)
+ SBC HL,DE
+ LD A,00AH
+ JP C,L4B28
+ EXX
+ PUSH BC
+ JR L513D ; (+05dH)
+
+L50E0: CALL TEST1
+ DB 0C1H
+ JP Z,L4C5C
+ CALL L6E57
+ LD C,E
+ LD B,D
+ CP 087H
+ JP NC,L4AE6
+ CP 082H
+ JR NZ,L5105 ; (+010H)
+ CALL INCHLF
+ LD E,081H
+ CP LSE4
+ JR Z,L5104 ; (+006H)
+ CP LSE0
+ JP NZ,L4AE6
+ DEC E
+L5104: LD A,E
+L5105: PUSH HL
+ LD HL,L43F4
+ SUB 080H
+ ADD A,A
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ CALL INDRCT
+ EX (SP),HL
+ INC HL
+ LD A,B
+ OR A
+ JR NZ,L5139 ; (+020H)
+ LD A,C
+ OR A
+ JR Z,L5139 ; (+01cH)
+ LD B,A
+L511E: DEC B
+ RET Z
+ CALL HLFTCH
+ CALL L5169
+ JP NZ,L4AE6
+ CALL L519E
+ OR A
+ RET Z
+ INC HL
+ CALL TEST1
+ DB 02CH
+ JR Z,L511E ; (-017H)
+ POP DE
+ JP L5E46
+
+L5139: POP DE
+ JP L4F80
+
+L513D: CALL L45B2
+ EX DE,HL
+ JR NZ,L5146 ; (+003H)
+ LD HL,(L1070)
+L5146: LD (L8476),HL
+ XOR A
+ LD (L4B6E),A
+ JP L40F0
+
+L5150: CALL L6E82
+ EX AF,AF'
+ LD A,(DE)
+ OR A
+ JR Z,L5178 ; (+020H)
+ EX AF,AF'
+ CP LSE2
+ JR NZ,L5165 ; (+008H)
+L515D: CALL INCHLF
+ CALL L5169
+ JR Z,L513D ; (-028H)
+L5165: POP AF
+ JP L40BB
+
+L5169: CP 022H
+ RET Z
+L516C: CP 00BH
+ RET Z
+ CP 00CH
+ RET
+
+L5172: CALL L5181
+ JR NC,L5172 ; (-005H)
+ RET
+
+L5178: DEC HL
+ CALL L5181
+ JR NC,L515D ; (-021H)
+ DB 0C3H
+ IN B,(C)
+L5181: CALL L5198
+ OR A
+ SCF
+ RET Z
+ CP 0C2H
+ RET Z
+ CP 093H
+ JR NZ,L5181 ; (-00dH)
+ CALL L5181
+ RET C
+ JR L5181 ; (-013H)
+
+L5194: INC HL
+ LD A,(HL)
+ JR L519E ; (+006H)
+
+L5198: INC HL
+ LD A,(HL)
+ CP 094H
+ JR Z,L51BD ; (+01fH)
+L519E: OR A
+ RET Z
+ CP 022H
+ JR Z,L51DB ; (+037H)
+ CP 0FEH
+ JR NC,L51BB ; (+013H)
+ CP 097H
+ JR Z,L51BD ; (+011H)
+ CP 027H
+ JR Z,L51BD ; (+00dH)
+ CP 020H
+ RET NC
+ CP 00BH
+ RET C
+ CP 015H
+ JR NC,L51D2 ; (+018H)
+ INC HL
+L51BB: INC HL
+ RET
+
+L51BD: LD A,(HL)
+ OR A
+ RET Z
+ CP 03AH
+ RET Z
+ CP 022H
+ JR Z,L51CA ; (+003H)
+ INC HL
+ JR L51BD ; (-00dH)
+
+L51CA: CALL L51DB
+ OR A
+ RET Z
+ INC HL
+ JR L51BD ; (-015H)
+
+L51D2: AND 00FH
+ ADD A,L
+ LD L,A
+ LD A,020H
+ RET NC
+ INC H
+ RET
+
+L51DB: INC HL
+ LD A,(HL)
+ OR A
+ RET Z
+ CP 022H
+ RET Z
+ JR L51DB ; (-009H)
+
+L51E4: OR 0AFH
+ PUSH AF
+ LD B,031H
+ LD C,04FH
+ CALL L4FD0
+ PUSH AF
+ CALL L5235
+ POP AF
+ JR C,L5233 ; (+03eH)
+ LD A,C
+ LD (05221H),A
+ LD B,001H
+ SRL E
+ JR NC,L5201 ; (+002H)
+ SLA B
+L5201: SRL D
+ JR NC,L5209 ; (+004H)
+ SLA B
+ SLA B
+L5209: EX DE,HL
+ RST 018H
+ DB 01EH
+ CALL BREAKX
+ CP LSPAL
+ JR NC,L5215 ; (+002H)
+ LD A,LSPAL
+L5215: LD C,A
+ POP AF
+ JR Z,L522B ; (+012H)
+ SET 3,H
+ CALL BREAKX
+ AND 08FH
+ OR 000H
+ CALL POPRA
+ RES 3,H
+ LD A,C
+ OR B
+ JR L522E ; (+003H)
+
+L522B: LD A,B
+ CPL
+ AND C
+L522E: CALL POPRA
+ EX DE,HL
+ RET
+
+L5233: POP AF
+ RET
+
+L5235: LD A,(L005D)
+ AND 070H
+ LD C,A
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ PUSH DE
+ CALL L5522
+ POP DE
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ LD C,A
+ RET
+
+L524B: RST 018H
+ DB 020H
+ RET
+
+L524E: CALL L5E46
+ RST 018H
+ DB 028H
+ RST 018H
+ DB 000H
+ RET
+
+L5256: JR Z,L527B ; (+023H)
+ LD A,001H
+ LD (L004E),A
+ LD A,(L0056)
+ LD B,019H
+ CALL L528E
+ LD (00056H),BC
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ LD B,028H
+ LD A,(L005B)
+ CALL L528E
+ LD (0005BH),BC
+ RET
+
+L527B: XOR A
+ LD (L004E),A
+ LD BC,L1800
+ LD (00056H),BC
+ LD BC,L2700
+ LD (0005BH),BC
+ RET
+
+L528E: LD D,000H
+ LD E,A
+ CALL TEST1
+ DB 02CH
+ JR Z,L529F ; (+008H)
+ PUSH BC
+ CALL L6E43
+ POP BC
+ CALL L5E6E
+L529F: LD C,E
+ PUSH BC
+ CALL L6E43
+ POP BC
+ DEC A
+ JP M,04AECH
+ ADD A,C
+ CP B
+ JP NC,04AECH
+ LD B,A
+ RET
+
+ DI
+ OUT (LSE4),A
+ JP L0000
+
+L52B6: XOR A
+ LD BC,?SETDE
+ LD (L539E),A
+ PUSH AF
+ CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,04B22H
+ BIT 1,A
+ JP Z,04B22H
+ CALL TEST1
+ DB 02CH
+ POP AF
+ OR A
+ JR NZ,L52E8 ; (+015H)
+ CALL L6E67
+ LD A,B
+ LD (L5399),A
+ LD (0539AH),DE
+ CALL L5E46
+ JR L52E8 ; (+005H)
+
+L52E3: LD A,002H
+ LD (L539E),A
+L52E8: CALL L466C
+ LD (0530FH),DE
+ LD (0531DH),BC
+ LD A,0FFH
+ LD (L1090),A
+ CALL SKPDE
+ LD HL,(L1070)
+L52FE: CALL LDDEMI
+ LD A,D
+ OR E
+ RET Z
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ PUSH DE
+ CALL LDDEMI
+ PUSH HL
+ LD HL,L0000
+ OR A
+ SBC HL,DE
+ JR C,L531C ; (+006H)
+ JR Z,L531C ; (+004H)
+ POP HL
+ POP HL
+ JR L52FE ; (-01eH)
+
+L531C: LD HL,L0000
+ OR A
+ SBC HL,DE
+ JR NC,L5327 ; (+003H)
+ POP HL
+ POP HL
+ RET
+
+L5327: EX DE,HL
+ CALL L5E64
+ RST 018H
+ DB 017H
+ LD HL,L11A4
+ CALL LDHLDE
+ LD (HL),020H
+ INC HL
+ EX DE,HL
+ POP HL
+ CALL L68D8
+ LD A,(L539E)
+ OR A
+ JR NZ,L5346 ; (+005H)
+ CALL L535C
+ JR NC,L5350 ; (+00aH)
+L5346: LD DE,L11A4
+ RST 018H
+ DB 017H
+ RST 018H
+ DB 037H
+ CALL L5733
+L5350: POP HL
+ LD A,(L539E)
+ CP 002H
+ JR Z,L52FE ; (-05aH)
+ RST 018H
+ DB 00FH
+ JR L52FE ; (-05eH)
+
+L535C: EX DE,HL
+L535D: PUSH HL
+ CALL L5367
+ POP HL
+ RET C
+ RET Z
+ INC HL
+ JR L535D ; (-00aH)
+
+L5367: LD A,(L5399)
+ LD B,A
+ LD DE,(0539AH)
+L536F: LD A,(HL)
+ INC HL
+ OR A
+ RET Z
+ CP 005H
+ JR Z,L537B ; (+004H)
+ CP 006H
+ JR NZ,L537D ; (+002H)
+L537B: JR L536F ; (-00eH)
+
+L537D: PUSH HL
+ LD C,A
+L537F: LD A,(DE)
+ INC DE
+ CP 005H
+ JR Z,L5389 ; (+004H)
+ CP 006H
+ JR NZ,L5390 ; (+007H)
+L5389: DEC B
+ SCF
+ POP HL
+ RET Z
+ PUSH HL
+ JR L537F ; (-011H)
+
+L5390: SUB C
+ POP HL
+ OR A
+ RET NZ
+ DEC B
+ SCF
+ RET Z
+ JR L536F ; (-02aH)
+
+L5399: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L539E: NOP
+L539F: CALL TESTX
+ DB 087H
+ CALL L5E4D
+ PUSH HL
+ LD C,000H
+L53A9: RST 018H
+ DB 008H
+ LD A,C
+ ADD A,031H
+ LD D,A
+ LD E,020H
+ CP 03AH
+ JR NZ,L53B8 ; (+003H)
+ LD DE,L3031
+L53B8: LD (0543BH),DE
+ LD DE,L5433
+ RST 018H
+ DB 00BH
+ LD A,C
+ CALL L5492
+ LD B,(HL)
+ INC HL
+ PUSH BC
+ CALL L53D6
+ POP BC
+ INC C
+ LD A,C
+ CP 00AH
+ JR NZ,L53A9 ; (-029H)
+ RST 018H
+ DB 008H
+ POP HL
+ RET
+
+L53D6: LD A,B
+ OR A
+ LD C,000H
+ JR NZ,L53E3 ; (+007H)
+ LD A,022H
+ RST 018H
+ DB 00AH
+ RST 018H
+ DB 00AH
+ RET
+
+L53E3: LD A,(HL)
+ CP 020H
+ JR C,L5408 ; (+020H)
+ CP 022H
+ JR Z,L5408 ; (+01cH)
+ LD A,C
+ CP 001H
+ JR Z,L53FB ; (+00aH)
+ OR A
+ LD DE,L5440
+ JR NZ,L53F9 ; (+002H)
+ INC DE
+ INC DE
+L53F9: RST 018H
+ DB 00BH
+L53FB: LD A,(HL)
+ RST 018H
+ DB 00AH
+ INC HL
+ LD C,001H
+ DJNZ L53E3 ; (-020H)
+ LD A,022H
+L5405: RST 018H
+ DB 00AH
+ RET
+
+L5408: LD A,C
+ CP 0FFH
+ JR Z,L542D ; (+020H)
+ OR A
+ LD DE,05444H
+ JR NZ,L5415 ; (+002H)
+ INC DE
+ INC DE
+L5415: RST 018H
+ DB 00BH
+L5417: PUSH BC
+ PUSH HL
+ LD L,(HL)
+ LD H,000H
+ CALL L5E64
+ RST 018H
+ DB 00BH
+ POP HL
+ POP BC
+ INC HL
+ LD C,0FFH
+ DJNZ L53E3 ; (-045H)
+ LD A,029H
+ JP L5405
+
+L542D: LD A,02CH
+ RST 018H
+ DB 00AH
+ JR L5417 ; (-01cH)
+
+L5433: LD B,H
+ LD B,L
+ LD B,(HL)
+ JR NZ,L5483 ; (+04bH)
+ LD B,L
+ LD E,C
+ JR Z,L543C ; (+000H)
+L543C: NOP
+ ADD HL,HL
+ DEC A
+ NOP
+L5440: ADD HL,HL
+ DEC HL
+ LD (L2200),HL
+ DEC HL
+ LD B,E
+ LD C,B
+ LD D,D
+ INC H
+ JR Z,L544C ; (+000H)
+L544C: CALL TEST1
+ DB 0B2H
+ JR Z,L545D ; (+00bH)
+ CALL TESTX
+ DB 0FFH
+ CALL TESTX
+ DB 0C7H
+ JP L781D
+
+L545D: CALL TESTX
+L5460: DB 028H
+ CALL L6E43
+ CALL TESTX
+ DB 029H
+ CALL TESTX
+ DB QDPC
+ LD A,E
+ DEC A
+ CP 00AH
+ JP NC,04AECH
+ PUSH HL
+ CALL L5492
+ EX (SP),HL
+ CALL L6E67
+ EX (SP),HL
+ LD A,B
+ CP 010H
+ JR C,L5483 ; (+002H)
+ LD A,00FH
+L5483: LD (HL),A
+ OR A
+ JR Z,L548F ; (+008H)
+ LD B,A
+ INC HL
+L5489: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L5489 ; (-006H)
+L548F: POP HL
+ EI
+ RET
+
+L5492: ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ LD HL,L12C0
+ JP ADDHLA
+
+L549C: CALL TEST1
+ DB 02CH
+ JR NZ,L54AA ; (+008H)
+ CALL L5E6E
+ LD DE,L005D
+ JR L54B6 ; (+00cH)
+
+L54AA: CALL L4FC5
+ CALL L5E6E
+ EX DE,HL
+ RST 018H
+ DB 01EH
+ SET 3,H
+ EX DE,HL
+L54B6: EX DE,HL
+ CALL BREAKX
+ EX DE,HL
+ PUSH DE
+ CALL L54C6
+ POP DE
+ EX DE,HL
+ CALL POPRA
+ EX DE,HL
+ RET
+
+L54C6: LD C,A
+ CALL TEST1
+ DB 02CH
+ JR Z,L54DF ; (+012H)
+ CALL L5522
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ XOR C
+ AND 070H
+ XOR C
+ LD C,A
+ CALL TEST1
+ DB 02CH
+ JR NZ,L54F0 ; (+011H)
+L54DF: CALL L414A
+ JR Z,L54F0 ; (+00cH)
+ CP 05DH
+ JR Z,L54F0 ; (+008H)
+ CALL L5522
+ XOR C
+ AND 007H
+ XOR C
+ RET
+
+L54F0: LD A,C
+ RET
+
+L54F2: INC HL
+L54F3: CALL L6E67
+ LD A,B
+ OR A
+ JR Z,L5509 ; (+00fH)
+ PUSH HL
+ LD HL,L11A4
+ PUSH HL
+ CALL LDHLDE
+ LD (HL),00DH
+ POP DE
+ CALL L0030
+ POP HL
+L5509: CALL HLFTCH
+ CP 03BH
+ JR Z,L54F2 ; (-01eH)
+ CP 02CH
+ JR Z,L54F2 ; (-022H)
+ RET
+
+L5515: CALL L6E43
+ DEC A
+ CP 007H
+ JP NC,04AECH
+ INC A
+ JP L0041
+
+L5522: PUSH BC
+ CALL L6E43
+ POP BC
+ CP 008H
+ JP NC,04AECH
+ RET
+
+L552D: RST 018H
+ DB 045H
+ RET
+
+ DS 208, 000H
+L5600: LD A,(L1042)
+ CP 088H
+ RET
+
+L5606: CALL L6E82
+ LD A,(L84C7)
+ CP 003H
+ PUSH HL
+ EX DE,HL
+ JR Z,L5619 ; (+007H)
+ CALL L6026
+ POP HL
+ RST 018H
+ DB 017H
+ RET
+
+L5619: CALL L6E76
+ POP HL
+ RET
+
+L561E: LD A,(L005D)
+ LD (0574DH),A
+ XOR A
+ LD (L1090),A
+ CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 2,A
+ JP NZ,L5D16
+ BIT 1,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L5600
+ JR NZ,L5655 ; (+013H)
+ CALL TEST1
+ DB 05BH
+ JR NZ,L5655 ; (+00dH)
+ LD A,(0574DH)
+ CALL L54C6
+ LD (0574DH),A
+ CALL TESTX
+ DB 05DH
+L5655: CALL L414A
+ JP Z,L5733
+L565B: LD A,(HL)
+ CP LSE3
+ JR Z,L56DA ; (+07aH)
+ LD BC,L5674
+ PUSH BC
+ CP 03BH
+ RET Z
+ CP 02CH
+ RET Z
+ CP LSE6
+ JR Z,L56AA ; (+03cH)
+ CALL L5606
+ JP L573E
+
+L5674: CALL L414A
+ JP Z,L5733
+ CP 02CH
+ JR NZ,L569A ; (+01cH)
+ CALL L5600
+ JR C,L5697 ; (+014H)
+ LD IX,(ZDELT)
+ CALL IOCALL
+ LD B,A
+L568B: SUB 00AH
+ JR NC,L568B ; (-004H)
+ NEG
+ LD B,A
+ CALL L56CC
+ JR L569A ; (+003H)
+
+L5697: CALL L5733
+L569A: LD A,(HL)
+ CP 02CH
+ JR Z,L56A1 ; (+002H)
+ CP 03BH
+L56A1: JR NZ,L56A4 ; (+001H)
+ INC HL
+L56A4: CALL L414A
+ RET Z
+ JR L565B ; (-04fH)
+
+L56AA: CALL L5600
+ JP C,057B7H
+ CALL L5E75
+ CALL L6E43
+ CALL L5E7D
+ LD IX,(ZDELT)
+ CALL IOCALL
+ SUB E
+ RET NC
+ NEG
+ LD B,A
+ CALL L5600
+ LD A,013H
+ JR Z,L56CE ; (+002H)
+L56CC: LD A,020H
+L56CE: LD DE,L11A4
+ PUSH BC
+ PUSH DE
+ CALL ?SETDE
+ POP DE
+ POP BC
+ JR L573E ; (+064H)
+
+L56DA: INC HL
+ CALL L6E67
+ LD A,B
+ OR A
+ JP Z,04AECH
+ PUSH HL
+ LD HL,L11A4
+ PUSH HL
+ PUSH BC
+ CALL LDHLDE
+ POP BC
+ LD A,LSPAL
+ LD E,B
+ LD D,000H
+ INC DE
+ RST 018H
+ DB 02AH
+ LD (L6304),HL
+ LD (L6306),HL
+ POP DE
+ CALL LDHLDE
+ LD (HL),000H
+ POP HL
+L5702: CALL L414A
+ JR Z,L5729 ; (+022H)
+ INC HL
+ CP 02CH
+ JR Z,L5711 ; (+005H)
+ CP 03BH
+ JP NZ,L4AE6
+L5711: CALL L414A
+ JR Z,L572C ; (+016H)
+ CALL L6E8A
+ PUSH HL
+ LD BC,(TMPEND)
+ PUSH BC
+ CALL L6308
+ POP DE
+ CALL L573C
+ POP HL
+ JR L5702 ; (-027H)
+
+L5729: CALL L5733
+L572C: LD A,LSPAL
+ RST 018H
+ DB 02BH
+ RET
+
+L5731: DEC C
+ NOP
+L5733: LD A,(L005D)
+ LD (0574DH),A
+ LD DE,L5731
+L573C: RST 018H
+ DB 017H
+L573E: CALL L5600
+ JR Z,L5746 ; (+003H)
+ RST 018H
+ DB 037H
+ RET
+
+L5746: PUSH HL
+ PUSH BC
+ LD HL,L005D
+ LD C,(HL)
+ LD (HL),070H
+ RST 018H
+ DB 037H
+ LD (HL),C
+ POP BC
+ POP HL
+ RET
+
+L5754: LD A,08AH
+ LD (L1042),A
+ JR L5792 ; (+037H)
+
+L575B: CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 2,A
+ JP NZ,L5D27
+ BIT 0,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L5600
+ JR NZ,L5792 ; (+01dH)
+ CALL HLFTCH
+ CP 022H
+ LD DE,L57BC
+ LD B,002H
+ JR NZ,L5788 ; (+007H)
+ CALL L6E67
+ CALL TESTX
+ DB 03BH
+L5788: LD A,B
+ OR A
+ JR Z,L5792 ; (+006H)
+L578C: LD A,(DE)
+ INC DE
+ RST 018H
+ DB 003H
+ DJNZ L578C ; (-006H)
+L5792: LD (057EBH),SP
+ LD DE,(VARED)
+ LD (TMPEND),DE
+L579E: LD DE,(TMPEND)
+ CALL L74E1
+ CALL L742F
+ PUSH AF
+ PUSH BC
+ CALL L414A
+ JR Z,057BEH ; (+00fH)
+ CALL L5E71
+ JR L579E ; (-016H)
+
+L57B4: LD A,02CH
+ LD HL,0BB3EH
+ JP L0182
+
+L57BC: CCF
+ JR NZ,0576EH ; (-051H)
+ PUSH AF
+ PUSH HL
+ RST 018H
+ DB 034H
+ LD HL,(057EBH)
+ DEC HL
+L57C7: LD A,(HL)
+ OR A
+ JR Z,L57E9 ; (+01eH)
+ DEC HL
+ DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ DEC HL
+ PUSH HL
+ PUSH AF
+ PUSH BC
+ LD DE,(TMPEND)
+ CALL L57EE
+ LD H,000H
+ LD L,B
+ ADD HL,DE
+ LD (HL),000H
+ POP DE
+ POP AF
+ CALL L57F8
+ POP HL
+ JR L57C7 ; (-022H)
+
+L57E9: POP HL
+ LD SP,L0000
+ RET
+
+L57EE: LD A,(L1042)
+ CP 08AH
+ JR Z,L5839 ; (+044H)
+ RST 018H
+ DB 035H
+ RET
+
+L57F8: CP 003H
+ JR NZ,L5803 ; (+007H)
+ LD HL,(L107A)
+ LD A,B
+$START: JP L4CC8 ; $START - BASIC warm start / system entry
+
+L5803: PUSH DE
+ LD HL,(L107C)
+ LD DE,(TMPEND)
+ EX DE,HL
+ CALL HLFTCH
+ CP 045H
+ JP Z,04AECH
+ EX DE,HL
+ CALL L5EDA
+ EX DE,HL
+ CALL TEST1
+ DB 000H
+ JP NZ,04AECH
+ EX DE,HL
+ POP DE
+ JP L5E91
+
+L5825: XOR A
+ JR L587E ; (+056H)
+
+L5828: CALL L5825
+ CALL L414A
+ CALL NZ,L45B2
+ EX DE,HL
+ CALL NZ,L5869
+ EX DE,HL
+ JP L4F80
+
+L5839: PUSH HL
+ PUSH DE
+ CALL L5847
+ POP DE
+ POP HL
+ RET
+
+L5841: LD HL,(L1070)
+ CALL L5869
+L5847: LD A,(L8488)
+ CP 001H
+ JP Z,04B19H
+ JR C,L5841 ; (-010H)
+ LD HL,(L8489)
+ LD C,03AH
+ RST 018H
+ DB 036H
+ LD (L8489),HL
+ CALL L414A
+ SCF
+ CCF
+ RET NZ
+ DEC HL
+L5862: CALL L5194
+ OR A
+ JR NZ,L5874 ; (+00cH)
+ INC HL
+L5869: LD A,(HL)
+ INC HL
+ OR (HL)
+ LD A,001H
+ JR Z,L587E ; (+00eH)
+ INC HL
+ INC HL
+ JR L5862 ; (-012H)
+
+L5874: CP 094H
+ JR NZ,L5862 ; (-016H)
+ INC HL
+ LD (L8489),HL
+ LD A,002H
+L587E: LD (L8488),A
+ RET
+
+L5882: CALL TEST1
+ DB 023H
+ JR NZ,L58AD ; (+025H)
+ CALL HLFTCH
+ CP 020H
+ JP NC,L4AE6
+ PUSH DE
+ PUSH BC
+ LD DE,L84C8
+ PUSH DE
+ CALL L7052
+ EX (SP),HL
+ CALL L60B5
+ LD A,H
+ OR A
+ JP NZ,04B22H
+ OR L
+ JP Z,04B22H
+ JP M,04B22H
+ POP HL
+ POP BC
+ POP DE
+ RET
+
+L58AD: CALL TEST1
+ DB FDPD
+ LD A,088H
+ RET NZ
+ CALL TEST1
+ DB 050H
+ LD A,089H
+ RET Z
+ CALL TESTX
+ DB 054H
+ LD A,080H
+ RET
+
+L58C2: LD A,(L1042)
+ OR A
+ RET M
+ JP L5E6E
+
+L58CA: CALL L593A
+ RST 018H
+ DB 03AH
+ RET
+
+L58D0: CALL L414A
+ LD B,000H
+ CALL NZ,L6E67
+L58D8: PUSH HL
+ RST 018H
+ DB 02CH
+ RST 018H
+ DB 03CH
+ POP HL
+ RET
+
+L58DF: LD A,001H
+ LD BC,0023EH
+ LD BC,0043EH
+ PUSH AF
+ LD (L1043),A
+ CALL L5882
+ CP 088H
+ JR NZ,L58F4 ; (+002H)
+ LD A,080H
+L58F4: LD (L1042),A
+ CALL L58C2
+ CALL L592D
+ POP AF
+ CP 004H
+ JR Z,L5904 ; (+002H)
+L5902: LD A,003H
+L5904: LD (L1000),A
+ PUSH AF
+ RST 018H
+ DB 033H
+ LD A,(L1000)
+ POP BC
+ CP B
+ JP NZ,04B49H
+ RET
+
+L5913: OR 0AFH
+ LD B,A
+ CALL L414A
+ JR Z,L5929 ; (+00eH)
+L591B: CALL L5882
+ CP 088H
+ RET NC
+ RST 018H
+ DB 038H
+ CALL TEST1
+ DB 02CH
+ JR L591B ; (-00eH)
+
+L5929: XOR A
+ RST 018H
+ DB 038H
+ RET
+
+L592D: CALL L46AE
+ LD B,000H
+ CALL NZ,L6E67
+ PUSH HL
+ RST 018H
+ DB 02DH
+ POP HL
+ RET
+
+L593A: PUSH HL
+ CALL HLFTCH
+ LD DE,DEVNAMEBUF
+ LD B,001H
+ CALL L5975
+ CALL NC,L5975
+ JR C,L5962 ; (+017H)
+ CALL L5975
+ CALL L5EC2
+ CALL L597B
+ CALL L414A
+ JR NZ,L5962 ; (+009H)
+ LD A,03AH
+ LD (DE),A
+ POP AF
+ JP RFS_DIR_FIX ; Was: LD DE,L5982 / JR L596B (buffer now DEVNAMEBUF)
+ NOP
+ NOP
+
+L5962: POP HL
+ CALL L414A
+ LD B,000H
+ CALL NZ,RFS_DIR_STR ; Was: L6E67; handles RFS device name in strings
+L596B: PUSH HL
+ RST 018H
+ DB 02CH
+ INC (HL)
+ DEC (HL)
+ JP NZ,04B1FH
+ POP HL
+ RET
+
+L5975: CP 041H
+ RET C
+ CP 05BH
+ CCF
+L597B: RET C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ INC B
+ RET
+
+L5982: NOP
+ NOP
+ NOP
+ NOP
+L5986: CALL L592D
+ CALL TEST1
+ DB 02CH
+ JP Z,L5A47
+ PUSH HL
+ CALL L5BDC
+ DEC A
+ JR Z,L59A9 ; (+012H)
+ DEC A
+ JP NZ,04B49H
+ CALL L5C08
+ CALL L5BE5
+ CALL L5C0F
+ CALL L5C42
+ POP HL
+ RET
+
+L59A9: LD HL,(ELMD22)
+ PUSH HL
+ LD DE,(MEMLMT)
+ CALL L59CF
+ LD DE,(ELMD20)
+ LD BC,(MEMMAX)
+ CALL NC,L59CA
+ JP C,04B0DH
+ POP HL
+ RST 018H
+ DB 030H
+ CALL L5C42
+ POP HL
+ RET
+
+L59CA: ADD HL,DE
+ RET C
+ EX DE,HL
+ LD H,B
+ LD L,C
+L59CF: PUSH HL
+ OR A
+ SBC HL,DE
+ POP HL
+ RET
+
+L59D5: CALL L592D
+ CALL L5BDC
+ CP 002H
+ JP NZ,04B49H
+ LD A,(L8493)
+ OR A
+ JP Z,L5B0D
+ JP L5DB0
+
+L59EA: CALL L5C08
+ CALL L592D
+ CALL TEST1
+ DB 02CH
+ JR Z,05A4DH ; (+057H)
+ RST 018H
+ DB 02FH
+ CP 002H
+ JP NZ,04B49H
+ PUSH HL
+ LD HL,(L1078)
+ LD (L107A),HL
+ LD BC,003E8H
+ ADD HL,BC
+ JP C,L4B26
+ PUSH HL
+ LD BC,(ELMD20)
+ INC B
+ ADD HL,BC
+ JP C,L4B26
+ SBC HL,SP
+ JP NC,L4B26
+ POP HL
+ PUSH HL
+ RST 018H
+ DB 030H
+ POP HL
+ CALL L5A24
+ POP HL
+ RET
+
+L5A24: CALL LDDEMI
+ LD A,D
+ OR E
+ RET Z
+ PUSH DE
+ CALL LDDEMI
+ PUSH HL
+ LD H,D
+ LD L,E
+ LD (L8478),HL
+ CALL L49B9
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+ CALL L479C
+ POP HL
+ POP BC
+ ADD HL,BC
+ DEC HL
+ DEC HL
+ DEC HL
+ DEC HL
+ JR L5A24 ; (-023H)
+
+L5A47: CALL L5C08
+ LD A,001H
+ LD BC,L003E
+ LD BC,0023EH
+ PUSH AF
+ CALL TESTX
+ DB 041H
+ CALL L5E46
+ LD A,001H
+ LD (L1043),A
+ LD A,081H
+ LD (L1042),A
+ CALL L5902
+ POP AF
+ PUSH AF
+ PUSH HL
+ LD HL,L0000
+ LD DE,0FFFFH
+ OR A
+ CALL NZ,L49B9
+ LD A,081H
+ RST 018H
+ DB 02EH
+ LD HL,(L1078)
+ LD (L107A),HL
+ LD BC,003E8H
+ ADD HL,BC
+ JP C,04AF5H
+ PUSH HL
+ LD (L5AEB),HL
+L5A89: LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(05AEBH)
+ SBC HL,DE
+ JP C,04AF5H
+ LD DE,(TMPEND)
+ RST 018H
+ DB 035H
+ LD A,B
+ OR A
+ JR Z,L5AD6 ; (+036H)
+ CALL L6A09
+ LD A,B
+ OR C
+ JP Z,04AECH
+ LD HL,(L5AEB)
+ PUSH HL
+ INC HL
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ PUSH HL
+ LD H,D
+ LD L,E
+ CALL TEST1
+ DB 000H
+ JP Z,04AECH
+ POP HL
+ LD A,(DE)
+ CP 020H
+ JR NZ,L5AC3 ; (+001H)
+ INC DE
+L5AC3: CALL L66ED
+ LD (HL),000H
+ INC HL
+ LD (L5AEB),HL
+ POP DE
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ JR L5A89 ; (-04dH)
+
+L5AD6: LD HL,(L5AEB)
+ CALL L4952
+ CALL L4928
+ POP HL
+ CALL L5A24
+ POP HL
+ POP AF
+ CP 002H
+ RET NZ
+ JP L4810
+
+L5AEB: NOP
+ NOP
+L5AED: CALL L592D
+ PUSH HL
+ CALL TEST1
+ DB 02CH
+ JR NZ,L5AFF ; (+008H)
+ CALL HLFTCH
+ CP 041H
+ JP Z,05A50H
+L5AFF: CALL L5BDC
+ POP HL
+ DEC A
+ JR Z,L5B16 ; (+010H)
+ DEC A
+ JP NZ,04B49H
+ CALL L5BE5
+L5B0D: CALL L5C0F
+ CALL L5C42
+ JP L4810
+
+L5B16: LD D,0C9H
+ LD BC,0FF00H
+ CALL TEST1
+ DB 02CH
+ JR NZ,L5B2A ; (+009H)
+ CALL TESTX
+ DB 052H
+ LD D,000H
+ LD BC,0CF00H
+L5B2A: LD A,D
+ LD (L5B93),A
+ LD HL,(L1014)
+ LD DE,(ELMD22)
+ PUSH HL
+ CALL L59CA
+ POP DE
+ LD HL,(L1070)
+ LD BC,0FF00H
+ CALL NC,L59CA
+ JP C,L4B26
+ LD SP,L0000
+ CALL L4930
+ XOR A
+ LD (L5C07),A
+ LD HL,(L1018)
+ PUSH HL
+ LD DE,(ELMD20)
+ PUSH DE
+ LD HL,(L107A)
+ RST 018H
+ DB 030H
+ LD A,004H
+ RST 018H
+ DB 003H
+ LD A,016H
+ RST 018H
+ DB 003H
+ POP BC
+ PUSH BC
+ LD DE,(ELMD22)
+ CALL L59CF
+ LD A,0B0H
+ JR NC,L5B7B ; (+008H)
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ LD A,0B8H
+L5B7B: LD (05B92H),A
+ DI
+ PUSH HL
+ PUSH DE
+ LD BC,00016H
+ LD HL,L5B8E
+ LD DE,0FF80H
+ PUSH DE
+ LDIR
+ RET
+
+L5B8E: POP DE
+ POP HL
+ POP BC
+ LDIR
+L5B93: RET
+
+ POP BC
+ LD SP,0D000H
+ EX DE,HL
+ PUSH BC
+ PUSH HL
+ LD (HL),LSD3
+ INC HL
+ LD (HL),LSE4
+ INC HL
+ LD (HL),0C9H
+ RET
+
+L5BA4: LD HL,(L1078)
+ LD (L107A),HL
+ LD DE,(TEXTED)
+ LD (05C01H),DE
+ OR A
+ SBC HL,DE
+ LD (L5C03),HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD (L5C05),HL
+ LD DE,(VARED)
+ PUSH HL
+ OR A
+ SBC HL,DE
+ JP C,L4B26
+ EX (SP),HL
+ EX DE,HL
+ LD BC,(05C03H)
+ INC BC
+ LDDR
+ POP DE
+ RST 018H
+ DB 018H
+ LD A,001H
+ LD (L5C07),A
+ RET
+
+L5BDC: CALL L5BA4
+ RST 018H
+ DB 02FH
+ LD A,(L1000)
+ RET
+
+L5BE5: LD HL,(L1078)
+ XOR A
+ DEC HL
+ LD (HL),A
+ DEC HL
+ LD (HL),A
+ LD (L1076),HL
+ DEC HL
+ LD (HL),A
+ LD (L1074),HL
+ DEC HL
+ LD (HL),A
+ LD (L1072),HL
+ LD HL,00004H
+ LD (L5C03),HL
+ RET
+
+L5C01: NOP
+ NOP
+L5C03: NOP
+ NOP
+L5C05: NOP
+ NOP
+L5C07: NOP
+L5C08: CALL L4152
+ JP NZ,04B10H
+ RET
+
+L5C0F: LD BC,(ELMD20)
+ PUSH BC
+ LD HL,(L1072)
+ LD DE,(TEXTST)
+ OR A
+ SBC HL,DE
+ LD L,000H
+ SBC HL,BC
+ JP C,L4B26
+ LD HL,L0000
+ LD (L5C01),HL
+ CALL L4824
+ LD HL,L0000
+ LD (L847C),HL
+ LD HL,(L1070)
+ RST 018H
+ DB 030H
+ POP BC
+ LD HL,(L1070)
+ ADD HL,BC
+ LD (L5C01),HL
+ RET
+
+L5C42: LD A,081H
+ LD B,000H
+ RST 018H
+ DB 038H
+ LD HL,L5C07
+ LD A,(HL)
+ OR A
+ RET Z
+ LD (HL),000H
+ LD HL,(L5C01)
+ LD A,H
+ OR L
+ JR NZ,L5C5D ; (+006H)
+ LD HL,(L1070)
+ CALL L4952
+L5C5D: EX DE,HL
+ LD HL,(L1072)
+ LD BC,(05C03H)
+ LDIR
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ RST 018H
+ DB 018H
+ RET
+
+L5C6F: PUSH HL
+ CALL L46C8
+ POP HL
+ CALL L592D
+ PUSH HL
+ RST 018H
+ DB 02FH
+ CP 002H
+ JP NZ,04B49H
+ LD HL,(L1070)
+ RST 018H
+ DB 032H
+ POP HL
+ RET
+
+L5C86: PUSH HL
+ CALL L46C8
+ POP HL
+ CALL L592D
+ CALL TEST1
+ DB 02CH
+ JR Z,L5CB3 ; (+01fH)
+ PUSH HL
+ LD A,002H
+ LD (L1000),A
+ LD HL,(L1072)
+ LD DE,(TEXTST)
+ OR A
+ SBC HL,DE
+ LD (L1014),HL
+ LD A,(L1001)
+ CP 00DH
+ JP Z,04B46H
+ RST 018H
+ DB 031H
+ POP HL
+ RET
+
+L5CB3: CALL TESTX
+ DB 041H
+ PUSH HL
+ LD A,002H
+ LD (L1043),A
+ LD A,081H
+ LD (L1042),A
+ CALL L5902
+ POP HL
+ CALL L52E3
+ CALL L5733
+ LD B,001H
+ LD A,081H
+ RST 018H
+ DB 038H
+ RET
+
+L5CD3: XOR A
+ LD BC,?SETDE
+ PUSH AF
+ CALL L6E67
+ RST 018H
+ DB 02DH
+ POP AF
+ RST 018H
+ DB 03FH
+ RET
+
+L5CE1: CALL L5882
+ PUSH AF
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 1,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L593A
+ LD B,A
+ XOR A
+ RST 018H
+ DB 039H
+ LD A,B
+ RST 018H
+ DB 03AH
+ POP AF
+ RST 018H
+ DB 039H
+ RET
+
+L5D00: CALL L6E67
+ RST 018H
+ DB 02DH
+ RST 018H
+ DB 03DH
+ RET
+
+L5D08: CALL L6E67
+ RST 018H
+ DB 02DH
+ CALL L5E6E
+ CALL L6E67
+ RST 018H
+ DB 03EH
+ RET
+
+L5D16: CALL L5D4C
+L5D19: CALL L5606
+ RST 018H
+ DB 042H
+ CALL L414A
+ RET Z
+ CALL L5E71
+ JR L5D19 ; (-00eH)
+
+L5D27: CALL L5D4C
+ LD DE,(TMPEND)
+ CALL L74E1
+L5D31: CALL L742F
+ PUSH HL
+ PUSH AF
+ PUSH BC
+ LD DE,(TMPEND)
+ RST 018H
+ DB 041H
+ POP DE
+ POP AF
+ CALL L57F8
+ POP HL
+ CALL L414A
+ RET Z
+ CALL L5E71
+ JR L5D31 ; (-01bH)
+
+L5D4C: CALL TEST1
+ DB 028H
+ RET NZ
+ CALL L6E57
+ LD A,D
+ OR E
+ JP Z,04AECH
+ RST 018H
+ DB 040H
+ CALL L5E7D
+ CALL TEST1
+ DB 02CH
+ RET
+
+L5D63: LD A,(L8493)
+ OR A
+ JP NZ,04B1CH
+ PUSH HL
+ LD B,000H
+ RST 018H
+ DB 02CH
+ LD (05E18H),DE
+ LD (L5E1A),A
+ LD HL,(L1072)
+ LD DE,(TEXTST)
+ XOR A
+ SBC HL,DE
+ LD (L1014),HL
+ RST 018H
+ DB 044H
+ POP HL
+ CALL L592D
+ CALL L5E46
+ LD A,(L1050)
+ BIT 5,A
+ JP Z,057B7H
+ PUSH HL
+ LD HL,(0848DH)
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ LD HL,L8476
+ LD BC,(0848BH)
+ LDIR
+ CALL L5BDC
+ CP 002H
+ JP NZ,04B49H
+ LD (05DB1H),SP
+L5DB0: LD SP,L0000
+ CALL L5C0F
+ CALL L5C42
+ LD HL,0FFFDH
+ PUSH HL
+ PUSH HL
+ LD A,001H
+ LD (L8493),A
+ LD HL,(L1070)
+ JP L40F0
+
+L5DC9: XOR A
+ LD (L8493),A
+ POP IX
+L5DCF: POP BC
+ LD A,B
+ CP 0FFH
+ JP NZ,04B1CH
+ LD A,C
+ CP 0FDH
+ JR Z,L5DEE ; (+013H)
+ CP 0FEH
+ LD HL,00004H
+ JR Z,L5DEA ; (+008H)
+ CP 012H
+ LD HL,00010H
+ JP NZ,04B1CH
+L5DEA: ADD HL,SP
+ LD SP,HL
+ JR L5DCF ; (-01fH)
+
+L5DEE: LD DE,(05E18H)
+ LD A,(L5E1A)
+ RST 018H
+ DB 03AH
+ LD B,000H
+ RST 018H
+ DB 02CH
+ CALL L5BA4
+ OR 0FFH
+ RST 018H
+ DB 044H
+ CALL L5C0F
+ CALL L5C42
+ LD HL,L0000
+ ADD HL,SP
+ LD DE,L8476
+ LD BC,(0848BH)
+ LDIR
+ LD SP,HL
+ POP HL
+ RET
+
+ NOP
+ NOP
+L5E1A: NOP
+L5E1B: LD DE,L5E35
+ LD B,005H
+ CALL L58D8
+ LD A,031H
+ CALL L5E2A
+ LD A,032H
+L5E2A: LD (05E3CH),A
+ LD DE,05E3AH
+ LD B,00CH
+ JP L58D8
+
+L5E35: DB "CMT:TRS?:0,$8C,13"
+L5E46: CALL L414A
+ RET Z
+ JP L4AE6
+
+L5E4D: XOR A
+ LD (L1091),A
+ CALL TEST1
+ DB FDPD
+ RET NZ
+ CALL TESTX
+ DB 050H
+ CALL L6ABE
+ LD A,050H
+ LD (L1091),A
+ CP A
+ RET
+
+L5E64: LD DE,L8495
+ LD B,000H
+ PUSH DE
+ RST 018H
+ DB 016H
+ POP DE
+ RET
+
+L5E6E: CALL HLFTCH
+L5E71: CP 02CH
+ JR L5E82 ; (+00dH)
+
+L5E75: INC HL
+L5E76: CALL HLFTCH
+L5E79: CP 028H
+ JR L5E82 ; (+005H)
+
+L5E7D: CALL HLFTCH
+L5E80: CP 029H
+L5E82: INC HL
+ RET Z
+ JP L4AE6
+
+L5E87: LD A,(DE)
+ CP 020H
+ INC DE
+ JR Z,L5E87 ; (-006H)
+ RET
+
+L5E8E: LD HL,L6110
+L5E91: LD BC,00005H
+ LDIR
+ RET
+
+L5E97: CALL L7960
+ LD A,E
+ OR D
+ RET Z
+ BIT 7,D
+ LD A,07FH
+ JR Z,L5EAC ; (+009H)
+ LD A,D
+ CPL
+ LD D,A
+ LD A,E
+ CPL
+ LD E,A
+ INC DE
+ LD A,0FFH
+L5EAC: LD B,091H
+L5EAE: DEC B
+ BIT 7,D
+ JR NZ,L5EB9 ; (+006H)
+ RL E
+ RL D
+ JR L5EAE ; (-00bH)
+
+L5EB9: LD (HL),B
+ INC HL
+ AND D
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ DEC HL
+ DEC HL
+ RET
+
+L5EC2: CP 030H
+ RET C
+ CP 03AH
+ CCF
+ RET
+
+L5EC9: CP 05FH
+ RET Z
+ CP 030H
+ RET C
+ CP 05BH
+ CCF
+ RET C
+ CP 03AH
+ CCF
+ RET NC
+ CP 041H
+ RET
+
+L5EDA: CALL L7960
+ LD (L62FF),A
+ LD (L6300),A
+ LD (L6301),A
+ LD (05F81H),A
+ LD A,005H
+ LD (L84C7),A
+L5EEE: CALL L5E87
+ CP 02BH
+ JR Z,L5EEE ; (-007H)
+ CP 02DH
+ JR NZ,L5EFF ; (+006H)
+ CALL L5EEE
+ JP L796B
+
+L5EFF: CP 024H
+ JR NZ,L5F0F ; (+00cH)
+ PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 014H
+ EX (SP),HL
+ CALL L5E97
+ POP DE
+ LD A,005H
+ RET
+
+L5F0F: CP 030H
+ JR NZ,L5F19 ; (+006H)
+ LD A,(DE)
+ INC DE
+ JR L5F0F ; (-008H)
+
+L5F17: LD A,(DE)
+ INC DE
+L5F19: CP 020H
+ JR Z,L5F17 ; (-006H)
+ CP 02EH
+ JR Z,L5F3C ; (+01bH)
+ CALL L5EC2
+ JR C,L5F76 ; (+050H)
+ SUB 030H
+ CALL L60A8
+ CALL L6012
+ LD A,001H
+ LD (L6300),A
+ LD A,(L62FF)
+ INC A
+ LD (L62FF),A
+ JR L5F17 ; (-025H)
+
+L5F3C: LD A,001H
+ LD (05F81H),A
+ LD C,A
+L5F42: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L5F42 ; (-006H)
+ CALL L5EC2
+ JR C,L5F6E ; (+021H)
+ INC C
+ SUB 030H
+ JR Z,L5F59 ; (+007H)
+ PUSH AF
+ LD A,001H
+ LD (L6300),A
+ POP AF
+L5F59: PUSH AF
+ LD A,(L6300)
+ LD B,A
+ LD A,(L62FF)
+ ADD A,B
+ LD (L62FF),A
+ POP AF
+ CALL L60A8
+ CALL L6012
+ JR L5F42 ; (-02cH)
+
+L5F6E: DEC C
+ JR Z,L5F76 ; (+005H)
+ CALL L5FFC
+ JR L5F6E ; (-008H)
+
+L5F76: CP 045H
+ JR Z,L5F87 ; (+00dH)
+L5F7A: DEC DE
+ LD A,(L6301)
+ OR A
+ RET NZ
+ LD A,000H
+ OR A
+ RET NZ
+ LD A,005H
+ RET
+
+L5F87: LD A,(DE)
+ CP 02DH
+ JR Z,L5F95 ; (+009H)
+ CP 02BH
+ JR Z,L5F95 ; (+005H)
+ CALL L5EC2
+ JR C,L5F7A ; (-01bH)
+L5F95: LD A,001H
+ LD (05F81H),A
+ PUSH HL
+ LD HL,L7BAC
+ LD (05FF5H),HL
+ LD HL,L0000
+ LD A,(DE)
+ INC DE
+ CP 02BH
+ JR Z,L5FB6 ; (+00cH)
+ CP 02DH
+ JR NZ,L5FB8 ; (+00aH)
+ PUSH HL
+ LD HL,L7C97
+ LD (05FF5H),HL
+ POP HL
+L5FB6: LD A,(DE)
+ INC DE
+L5FB8: SUB 030H
+ JR C,L5FD8 ; (+01cH)
+ CP 00AH
+ JR NC,L5FD8 ; (+018H)
+ PUSH DE
+ CALL L600D
+ LD E,L
+ LD D,H
+ CALL L600D
+ CALL L600D
+ CALL L6009
+ LD E,A
+ LD D,000H
+ CALL L6009
+ POP DE
+ JR L5FB6 ; (-022H)
+
+L5FD8: LD A,H
+ OR A
+ JR NZ,L600F ; (+033H)
+ LD A,L
+ POP HL
+ PUSH DE
+ PUSH BC
+ PUSH HL
+ LD DE,L84C8
+ PUSH DE
+ CALL L5E8E
+ POP HL
+ LD B,A
+ INC B
+ JR L5FF0 ; (+003H)
+
+L5FED: CALL L60A8
+L5FF0: DJNZ L5FED ; (-005H)
+ EX DE,HL
+ POP HL
+ CALL L0000
+ POP BC
+ POP DE
+ JP L5F7A
+
+L5FFC: PUSH AF
+ PUSH BC
+ PUSH DE
+ LD DE,L610B
+ CALL L7C97
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L6009: ADD HL,DE
+ RET NC
+ JR L600F ; (+002H)
+
+L600D: ADD HL,HL
+ RET NC
+L600F: JP 04AE9H
+
+L6012: PUSH DE
+ PUSH HL
+ LD HL,L84C8
+ LD E,A
+ LD D,000H
+ CALL L5E97
+ EX DE,HL
+ POP HL
+ PUSH BC
+ CALL L797E
+ POP BC
+ POP DE
+ RET
+
+L6026: LD A,005H
+ LD (L84C7),A
+ LD A,(HL)
+ OR A
+ JR Z,L6033 ; (+004H)
+ INC HL
+ LD A,(HL)
+ DEC HL
+ RLCA
+L6033: LD A,020H
+ JR NC,L603C ; (+005H)
+ CALL L796B
+ LD A,02DH
+L603C: PUSH AF
+ CALL L61AB
+ CALL L6238
+ POP AF
+ DEC DE
+ LD (DE),A
+ RET
+
+L6047: PUSH BC
+ CALL L7A15
+ POP BC
+ RET
+
+L604D: CALL SKPDE
+ LD A,(HL)
+ CP 081H
+ JP C,L7960
+ LD A,(HL)
+ CP 0A0H
+ RET NC
+ INC HL
+ CALL L6084
+ PUSH HL
+ LD L,(HL)
+ LD B,000H
+L6062: SRL E
+ RR D
+ RR C
+ RR L
+ INC A
+ INC B
+ CP 0A0H
+ JR NZ,L6062 ; (-00eH)
+L6070: SLA L
+ RL C
+ RL D
+ RL E
+ DJNZ L6070 ; (-00aH)
+ LD A,L
+ POP HL
+ LD (HL),A
+ DEC HL
+ LD (HL),C
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ RET
+
+L6084: LD E,(HL)
+ INC HL
+L6086: LD D,(HL)
+ INC HL
+ LD C,(HL)
+ INC HL
+ RET
+
+L608B: LD A,(HL)
+ CP 081H
+ RET C
+ PUSH DE
+ PUSH HL
+ LD DE,L60A3
+ PUSH DE
+ CALL L5E91
+ POP HL
+ CALL L604D
+ EX DE,HL
+ POP HL
+ CALL L7975
+ POP DE
+ RET
+
+L60A3: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L60A8: PUSH AF
+ PUSH BC
+ PUSH DE
+ LD DE,L610B
+ CALL L7BAC
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L60B5: INC HL
+ BIT 7,(HL)
+ JR Z,L60C5 ; (+00bH)
+ CALL L60C5
+ LD A,H
+ CPL
+ LD H,A
+ LD A,L
+ CPL
+ LD L,A
+ INC HL
+ RET
+
+L60C5: DEC HL
+ LD A,(HL)
+ CP 091H
+ JP NC,04AE9H
+ CP 081H
+ JR C,L60E3 ; (+013H)
+ PUSH AF
+ INC HL
+ LD A,(HL)
+ INC HL
+ LD L,(HL)
+ LD H,A
+ POP AF
+ SET 7,H
+L60D9: CP 090H
+ RET Z
+ INC A
+ SRL H
+ RR L
+ JR L60D9 ; (-00aH)
+
+L60E3: CCF
+ LD HL,L0000
+ RET
+
+L60E8: SBC A,E
+ LD A,0BCH
+ JR NZ,L60ED ; (+000H)
+L60ED: SBC A,B
+ JR L6086 ; (-06aH)
+
+ ADD A,B
+ NOP
+ SUB H
+ LD (HL),H
+ INC H
+ NOP
+ NOP
+ SUB C
+ LD B,E
+ LD D,B
+ NOP
+ NOP
+ ADC A,(HL)
+ INC E
+ LD B,B
+ NOP
+ NOP
+ ADC A,D
+ LD A,D
+ NOP
+ NOP
+ NOP
+ ADD A,A
+ LD C,B
+ NOP
+ NOP
+ NOP
+L610B: ADD A,H
+ JR NZ,L610E ; (+000H)
+L610E: NOP
+ NOP
+L6110: ADD A,C
+ NOP
+ NOP
+ NOP
+ NOP
+ LD A,L
+ LD C,H
+ CALL Z,0CDCCH
+L611A: LD H,(HL)
+ DEC HL
+ CALL Z,L1277
+L611F: LD HL,(L6302)
+ LD B,000H
+L6124: LD DE,L610B
+ CALL L6047
+ JR C,L6132 ; (+006H)
+ CALL L5FFC
+ INC B
+ JR L6124 ; (-00eH)
+
+L6132: LD DE,L6110
+ CALL L6047
+ JR NC,L6140 ; (+006H)
+ CALL L60A8
+ DEC B
+ JR L6132 ; (-00eH)
+
+L6140: PUSH BC
+ CALL L61AB
+ CALL L6238
+ POP BC
+ PUSH DE
+ EX DE,HL
+L614A: LD A,(HL)
+ OR A
+ JR Z,L6151 ; (+003H)
+ INC HL
+ JR L614A ; (-007H)
+
+L6151: DEC HL
+ LD A,(HL)
+ INC HL
+ CP 030H
+ JR NZ,L615A ; (+002H)
+ INC B
+ DEC HL
+L615A: LD A,045H
+ LD (HL),A
+ INC HL
+ LD A,B
+ LD B,02BH
+ BIT 7,A
+ JR Z,L6169 ; (+004H)
+ NEG
+ LD B,02DH
+L6169: LD (HL),B
+ INC HL
+ LD (HL),030H
+L616D: SUB 00AH
+ JR C,L6174 ; (+003H)
+ INC (HL)
+ JR L616D ; (-007H)
+
+L6174: ADD A,03AH
+ INC HL
+ LD (HL),A
+ INC HL
+ LD (HL),000H
+ POP DE
+ RET
+
+L617D: PUSH HL
+ CALL L60B5
+ LD DE,L84A0
+ PUSH DE
+ LD B,001H
+ RST 018H
+ DB 016H
+ POP HL
+ LD A,030H
+ LD B,005H
+L618E: CP (HL)
+ JR NZ,L6196 ; (+005H)
+ INC HL
+ DJNZ L618E ; (-006H)
+ JR L619F ; (+009H)
+
+L6196: LD A,B
+ LD (L62FF),A
+ LD A,001H
+ LD (L6300),A
+L619F: LD A,02EH
+ LD (L84A5),A
+ POP HL
+ CALL L608B
+ JP L61FB
+
+L61AB: LD (L6302),HL
+ XOR A
+ LD (L62FF),A
+ LD (L6300),A
+ PUSH HL
+ LD HL,L849C
+ LD (HL),0FFH
+ LD B,021H
+ LD A,030H
+L61BF: INC HL
+ LD (HL),A
+ DJNZ L61BF ; (-004H)
+ LD A,02EH
+ LD (L84A5),A
+ POP HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD DE,L60E8
+ CALL L7A15
+ CCF
+ RET C
+ LD DE,L611A
+ CALL L7A15
+ RET C
+ LD DE,L84D0
+ PUSH DE
+ CALL L5E91
+ POP HL
+ LD A,(HL)
+ CP 081H
+ JR C,L61FB ; (+013H)
+ CP 090H
+ JP C,L617D
+ LD IX,L849D
+ LD DE,L60ED
+ CALL L62C2
+ CALL L62F6
+ RET NC
+L61FB: LD IX,L84A6
+L61FF: LD DE,L60E8
+ PUSH BC
+ PUSH IX
+ CALL L7BAC
+ POP IX
+ POP BC
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ CALL L62C2
+ CALL L62F6
+ JR C,L61FF ; (-019H)
+ RET
+
+L6219: LD A,005H
+ LD (L84C7),A
+ PUSH HL
+ LD DE,L84D8
+ PUSH DE
+ CALL L5E91
+ POP HL
+ CALL L61AB
+ CALL L6235
+ POP HL
+ RET
+
+L622F: LD DE,L84A5
+ LD (DE),A
+ DEC DE
+ RET
+
+L6235: JP C,L611F
+L6238: LD HL,(L6302)
+ LD A,(HL)
+ OR A
+ JR Z,L622F ; (-010H)
+ LD DE,L849D
+ DEC DE
+ EX DE,HL
+ LD DE,00001H
+L6247: INC HL
+ LD A,(HL)
+ CP 02EH
+ JR NZ,L6252 ; (+005H)
+ LD DE,L0000
+ JR L6247 ; (-00bH)
+
+L6252: CP 030H
+ JR Z,L6247 ; (-00fH)
+ ADD HL,DE
+ LD DE,00008H
+ ADD HL,DE
+ LD A,(HL)
+L625C: LD (HL),030H
+ CP 035H
+ JR C,L6271 ; (+00fH)
+L6262: DEC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L6262 ; (-006H)
+ INC A
+ JR Z,L62AB ; (+040H)
+ LD (HL),A
+ CP 03AH
+ JR Z,L625C ; (-014H)
+ INC HL
+L6271: LD DE,L84A5
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ JR C,L6280 ; (+005H)
+ LD HL,L84A5
+ JR L6297 ; (+017H)
+
+L6280: DEC HL
+ LD A,(HL)
+ CP 02EH
+ DEC HL
+ JR Z,L6296 ; (+00fH)
+ INC HL
+ CP 030H
+ JR Z,L6271 ; (-01bH)
+ PUSH HL
+ LD DE,L84AE
+ SBC HL,DE
+ POP HL
+ JP NC,L611F
+L6296: INC HL
+L6297: LD (HL),000H
+ LD DE,L849D
+L629C: LD A,(DE)
+ CP 030H
+ JR NZ,L62A4 ; (+003H)
+ INC DE
+ JR L629C ; (-008H)
+
+L62A4: OR A
+ RET NZ
+ DEC DE
+ LD A,030H
+ LD (DE),A
+ RET
+
+L62AB: LD HL,L8495
+ LD DE,L62BC
+ PUSH BC
+ LD BC,L0006
+ LDIR
+ POP BC
+ LD DE,L8495
+ RET
+
+L62BC: LD SP,L2B45
+ JR NC,L62F9 ; (+038H)
+ NOP
+L62C2: LD A,(DE)
+ CP 07DH
+ RET Z
+L62C6: CALL L7A15
+ JR C,L62DE ; (+013H)
+ INC (IX+000H)
+ PUSH IX
+ PUSH BC
+ CALL L7975
+ POP BC
+ POP IX
+ LD A,001H
+ LD (L6300),A
+ JR L62C6 ; (-018H)
+
+L62DE: INC IX
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ LD A,(L6300)
+ LD B,A
+ LD A,(L62FF)
+ ADD A,B
+ LD (L62FF),A
+ CALL L62F6
+ RET NC
+ JR L62C2 ; (-034H)
+
+L62F6: LD A,(HL)
+ OR A
+ RET Z
+L62F9: LD A,(L62FF)
+ CP 009H
+ RET
+
+L62FF: NOP
+L6300: NOP
+L6301: NOP
+L6302: NOP
+ NOP
+L6304: NOP
+ NOP
+L6306: NOP
+ NOP
+L6308: LD HL,(L6306)
+ PUSH DE
+L630C: LD A,(HL)
+ OR A
+ JP Z,04AECH
+ CALL L63AA
+ JR Z,L631B ; (+005H)
+ LD (BC),A
+ INC BC
+ INC HL
+ JR L630C ; (-00fH)
+
+L631B: EX AF,AF'
+ LD A,(L84C7)
+ CP 003H
+ JP NZ,L63D3
+ EX AF,AF'
+ CP 021H
+ JP Z,L6332
+ CP 026H
+ JP Z,L6359
+ JP 04AEFH
+
+L6332: EX (SP),HL
+ PUSH BC
+ CALL L6E76
+ OR A
+ LD A,020H
+ JR Z,L633D ; (+001H)
+ LD A,(DE)
+L633D: POP BC
+ LD (BC),A
+ INC BC
+L6340: POP HL
+ INC HL
+L6342: LD A,(HL)
+ OR A
+ JR Z,L6350 ; (+00aH)
+ CALL L63AA
+ JR Z,L6353 ; (+008H)
+ LD (BC),A
+ INC BC
+ INC HL
+ JR L6342 ; (-00eH)
+
+L6350: LD HL,(L6304)
+L6353: LD (L6306),HL
+ XOR A
+ LD (BC),A
+ RET
+
+L6359: LD D,002H
+L635B: INC HL
+ LD A,(HL)
+ CP 026H
+ JR Z,L6369 ; (+008H)
+ INC D
+ CP 020H
+ JR Z,L635B ; (-00bH)
+ JP 04AECH
+
+L6369: EX (SP),HL
+ LD A,(HL)
+ CP D
+ JR C,L6383 ; (+015H)
+ INC HL
+ CALL INDRCT
+ PUSH BC
+ LD BC,(STRST)
+ ADD HL,BC
+ POP BC
+L6379: LD A,(HL)
+ LD (BC),A
+ INC BC
+ INC HL
+ DEC D
+ JR NZ,L6379 ; (-007H)
+ JP L6340
+
+L6383: LD E,(HL)
+ INC HL
+ CALL INDRCT
+ LD A,E
+ OR A
+ JR Z,L63A0 ; (+014H)
+ PUSH BC
+ LD BC,(STRST)
+ ADD HL,BC
+ POP BC
+L6393: LD A,(HL)
+ LD (BC),A
+ INC BC
+ INC HL
+ DEC E
+ JR Z,L63A4 ; (+00aH)
+ DEC D
+ JR NZ,L6393 ; (-00aH)
+ JP L6340
+
+L63A0: LD A,020H
+ LD (BC),A
+ INC BC
+L63A4: DEC D
+ JR NZ,L63A0 ; (-007H)
+ JP L6340
+
+L63AA: CALL CHKACC
+ INC B
+ LD HL,L2326
+ DEC HL
+ RET Z
+ LD E,A
+ CP 02AH
+ JR Z,L63CD ; (+015H)
+ CALL L65AA
+ JR Z,L63CD ; (+010H)
+ CP 02EH
+ LD E,023H
+ JR Z,L63CD ; (+00aH)
+ CP 0C4H
+ RET NZ
+ INC HL
+ LD A,(HL)
+ OR A
+ JP Z,04AECH
+ RET
+
+L63CD: INC HL
+ LD A,(HL)
+ CP E
+ DEC HL
+ LD A,(HL)
+ RET
+
+L63D3: XOR A
+ LD (0651AH),A
+ LD (0656AH),A
+ LD (L6552),A
+ LD (06510H),A
+ LD (064CAH),A
+ LD (064F7H),A
+ LD (06515H),A
+ LD (064C3H),A
+ DEC A
+ LD (064C0H),A
+ EX AF,AF'
+ LD D,000H
+ CP 023H
+ JP Z,L642F
+ CP 02AH
+ JP Z,L6410
+ CALL L65AA
+ JP Z,L6421
+ CP 02EH
+ JP Z,L6431
+ CP 02BH
+ JP Z,L642A
+ JP 04AEFH
+
+L6410: LD A,001H
+ LD (0656AH),A
+ INC HL
+ INC D
+ INC HL
+ INC D
+ LD A,(HL)
+ CALL L65AA
+ JR NZ,L6431 ; (+012H)
+ JR L6423 ; (+002H)
+
+L6421: INC HL
+ INC D
+L6423: INC HL
+ INC D
+ LD (L6552),A
+ JR L6431 ; (+007H)
+
+L642A: LD A,001H
+ LD (0651AH),A
+L642F: INC HL
+ INC D
+L6431: EX DE,HL
+ DEC H
+L6433: INC H
+ LD A,(DE)
+ INC DE
+ CP 023H
+ JR Z,L6433 ; (-007H)
+ CP 02CH
+ JR NZ,L6445 ; (+007H)
+ LD A,001H
+ LD (064CAH),A
+ JR L6433 ; (-012H)
+
+L6445: CP 02EH
+ JR Z,L646C ; (+023H)
+ CP 02DH
+ JR NZ,L6455 ; (+008H)
+ LD A,001H
+ LD (06510H),A
+ INC DE
+ JR L6465 ; (+010H)
+
+L6455: CP 02BH
+ JR NZ,L6465 ; (+00cH)
+ LD A,(0651AH)
+ OR A
+ JR NZ,L6465 ; (+006H)
+ LD A,001H
+ LD (06515H),A
+ INC DE
+L6465: DEC DE
+ LD A,H
+ LD (064F7H),A
+ JR L649F ; (+033H)
+
+L646C: LD A,H
+ LD (064F7H),A
+ LD H,0FFH
+L6472: INC H
+ LD A,(DE)
+ INC DE
+ CP 023H
+ JR Z,L6472 ; (-007H)
+ CP 02DH
+ JR NZ,L6485 ; (+008H)
+ LD A,001H
+ LD (06510H),A
+ INC DE
+ JR L6495 ; (+010H)
+
+L6485: CP 02BH
+ JR NZ,L6495 ; (+00cH)
+ LD A,(0651AH)
+ OR A
+ JR NZ,L6495 ; (+006H)
+ LD A,001H
+ LD (06515H),A
+ INC DE
+L6495: DEC DE
+ LD A,H
+ LD (064C0H),A
+ JR L649F ; (+003H)
+
+L649C: POP DE
+ JR L64B1 ; (+012H)
+
+L649F: LD H,004H
+ PUSH DE
+L64A2: LD A,(DE)
+ INC DE
+ CP 05EH
+ JR NZ,L649C ; (-00cH)
+ DEC H
+ JR NZ,L64A2 ; (-009H)
+ POP AF
+ LD A,001H
+ LD (064C3H),A
+L64B1: POP HL
+ PUSH DE
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ LD (06547H),A
+ LD A,(064F7H)
+ LD D,A
+ LD A,000H
+ LD E,A
+ LD A,000H
+ PUSH BC
+ CALL L65BC
+ POP BC
+ LD A,000H
+ OR A
+ JR Z,L650F ; (+041H)
+ PUSH BC
+ PUSH DE
+ LD A,(064F7H)
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ LD DE,L8495
+ LD C,000H
+ DEC HL
+L64DD: LD B,003H
+L64DF: LD A,(HL)
+ CP 020H
+ JR Z,L64F6 ; (+012H)
+ INC C
+ LD (DE),A
+ INC DE
+ DEC HL
+ DJNZ L64DF ; (-00bH)
+ LD A,(HL)
+ CP 020H
+ JR Z,L64F6 ; (+007H)
+ LD A,02CH
+ LD (DE),A
+ INC DE
+ INC C
+ JR L64DD ; (-019H)
+
+L64F6: LD A,000H
+ CP C
+ JP C,04AE9H
+ LD B,C
+ LD L,A
+ LD H,000H
+ POP DE
+ PUSH DE
+ ADD HL,DE
+ LD DE,L8495
+ DEC HL
+L6507: LD A,(DE)
+ LD (HL),A
+ DEC HL
+ INC DE
+ DJNZ L6507 ; (-006H)
+ POP DE
+ POP BC
+L650F: LD A,000H
+ OR A
+ JR NZ,L6551 ; (+03dH)
+ LD A,000H
+ OR A
+ JR NZ,L6551 ; (+038H)
+ LD A,000H
+ OR A
+ JR NZ,L6546 ; (+028H)
+ LD A,(06547H)
+ RLCA
+ JR NC,L6551 ; (+02dH)
+ LD A,(DE)
+ CP 020H
+ LD H,02DH
+ JR Z,L6530 ; (+005H)
+ CP 030H
+ JP NZ,04AE9H
+L6530: PUSH DE
+L6531: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L6531 ; (-006H)
+ CP 030H
+ JR Z,L6531 ; (-00aH)
+ OR A
+ JR NZ,L653F ; (+001H)
+ DEC DE
+L653F: DEC DE
+ DEC DE
+ LD A,H
+ LD (DE),A
+ POP DE
+ JR L6551 ; (+00bH)
+
+L6546: LD A,000H
+ RLCA
+ LD H,02BH
+ JR NC,L6530 ; (-01dH)
+ LD H,02DH
+ JR L6530 ; (-021H)
+
+L6551: DB 03EH
+L6552: NOP
+ OR A
+ JR Z,L6569 ; (+013H)
+ LD A,(DE)
+ CP 020H
+ JR NZ,L6569 ; (+00eH)
+ PUSH DE
+L655C: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L655C ; (-006H)
+ DEC DE
+ DEC DE
+ LD A,(L6552)
+ LD (DE),A
+ POP DE
+L6569: LD A,000H
+ OR A
+ JR Z,L657B ; (+00dH)
+ PUSH DE
+L656F: LD A,(DE)
+ CP 020H
+ JR NZ,L657A ; (+006H)
+ LD A,02AH
+ LD (DE),A
+ INC DE
+ JR L656F ; (-00bH)
+
+L657A: POP DE
+L657B: LD A,(DE)
+ OR A
+ JR Z,L6584 ; (+005H)
+ LD (BC),A
+ INC BC
+ INC DE
+ JR L657B ; (-009H)
+
+L6584: LD A,(06515H)
+ OR A
+ JR Z,L6598 ; (+00eH)
+ LD A,(06547H)
+ RLCA
+ LD A,02BH
+L6590: JR NC,L6594 ; (+002H)
+ LD A,02DH
+L6594: LD (BC),A
+ INC BC
+ JR L65A6 ; (+00eH)
+
+L6598: LD A,(06510H)
+ OR A
+ JR Z,L65A6 ; (+008H)
+ LD A,(06547H)
+ RLCA
+ LD A,020H
+ JR L6590 ; (-016H)
+
+L65A6: POP HL
+ JP L6342
+
+L65AA: PUSH HL
+ LD HL,L0036
+ BIT 6,(HL)
+ POP HL
+ JR NZ,L65B6 ; (+003H)
+ CP 07DH
+ RET
+
+L65B6: CP FDPD
+ RET Z
+ CP 024H
+ RET
+
+L65BC: OR A
+ JP Z,L6647
+ PUSH DE
+ LD A,(HL)
+ OR A
+ JR Z,L6604 ; (+03fH)
+ PUSH HL
+ LD A,D
+ LD DE,L84D0
+ PUSH AF
+ CALL L5E8E
+ POP AF
+ OR A
+ JR Z,L65DD ; (+00bH)
+ LD B,A
+ LD HL,L84D0
+ JR L65DB ; (+003H)
+
+L65D8: CALL L60A8
+L65DB: DJNZ L65D8 ; (-005H)
+L65DD: POP HL
+ LD B,000H
+L65E0: LD DE,L84D0
+ CALL L6047
+ JR C,L65EE ; (+006H)
+ CALL L5FFC
+ INC B
+ JR L65E0 ; (-00eH)
+
+L65EE: PUSH HL
+ LD HL,L84D0
+ CALL L5FFC
+ POP HL
+L65F6: LD DE,L84D0
+ CALL L6047
+ JR NC,L6604 ; (+006H)
+ CALL L60A8
+ DEC B
+ JR L65F6 ; (-00eH)
+
+L6604: POP DE
+ PUSH BC
+ CALL L6661
+ POP BC
+ PUSH DE
+ LD A,(DE)
+ CP 02EH
+ JR NZ,L6622 ; (+012H)
+ LD DE,L84A5
+ DEC DE
+ LD A,(DE)
+ CP 031H
+ POP DE
+ PUSH DE
+ JR NZ,L663E ; (+023H)
+ EX DE,HL
+ INC HL
+ LD (HL),031H
+ DEC HL
+ JR L663C ; (+01aH)
+
+L6622: LD A,(DE)
+ CP 031H
+ JR NZ,L663E ; (+017H)
+ EX DE,HL
+ INC HL
+ LD A,(HL)
+ DEC HL
+ CP 02EH
+ LD A,030H
+ JR Z,L6633 ; (+002H)
+ LD A,020H
+L6633: LD (HL),A
+L6634: INC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L6634 ; (-006H)
+ LD (HL),031H
+L663C: EX DE,HL
+ INC B
+L663E: LD A,(DE)
+ INC DE
+ OR A
+ JR NZ,L663E ; (-005H)
+ DEC DE
+ JP L615A
+
+L6647: PUSH DE
+ CALL L6661
+ POP AF
+ OR A
+ RET NZ
+ PUSH HL
+ LD HL,L84A5
+ DEC HL
+ LD A,030H
+ CP (HL)
+L6656: JP NZ,04AE9H
+ DEC HL
+ LD A,020H
+ CP (HL)
+ JR NZ,L6656 ; (-009H)
+ POP HL
+ RET
+
+L6661: PUSH DE
+ CALL L61AB
+ JP C,04AE9H
+ POP HL
+ PUSH HL
+ LD H,000H
+ INC L
+ JR Z,L6670 ; (+001H)
+ DEC L
+L6670: LD DE,L84A6
+ ADD HL,DE
+ LD A,(HL)
+ LD (HL),000H
+ LD DE,L3036
+ CP 035H
+ JR C,L668D ; (+00fH)
+L667E: DEC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L667E ; (-006H)
+ INC A
+ JP Z,04AE9H
+ LD (HL),A
+ CP 03AH
+ JR Z,06678H ; (-015H)
+L668D: LD HL,L11A3
+ LD DE,L2000
+L6693: LD (HL),D
+ INC HL
+ DEC E
+ JR NZ,L6693 ; (-005H)
+ POP HL
+ PUSH HL
+ LD E,H
+ LD D,000H
+ LD HL,L11A4
+ ADD HL,DE
+ PUSH HL
+ LD HL,L849C
+ LD (HL),020H
+ INC HL
+ LD D,007H
+L66AA: LD A,(HL)
+ CP 030H
+ JR NZ,L66B5 ; (+006H)
+ LD (HL),020H
+ INC HL
+ DEC D
+ JR NZ,L66AA ; (-00bH)
+L66B5: POP HL
+ PUSH HL
+ LD B,E
+ LD A,B
+ OR A
+ JR Z,L66D3 ; (+017H)
+ LD DE,L84A5
+L66BF: DEC HL
+ DEC DE
+ LD A,(DE)
+ LD (HL),A
+ CP 020H
+ JR Z,L66D3 ; (+00cH)
+ DJNZ L66BF ; (-00aH)
+ DEC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L66D3 ; (+004H)
+ INC A
+ JP NZ,04AE9H
+L66D3: POP HL
+ POP DE
+ INC E
+ JR Z,L66E7 ; (+00fH)
+ LD B,E
+ LD DE,L84A6
+ LD (HL),02EH
+L66DE: INC HL
+ DEC B
+ JR Z,L66E7 ; (+005H)
+ LD A,(DE)
+ INC DE
+ LD (HL),A
+ JR L66DE ; (-009H)
+
+L66E7: LD (HL),000H
+ LD DE,L11A4
+ RET
+
+L66ED: PUSH DE
+ PUSH BC
+ LD C,000H
+ DEC DE
+L66F2: INC DE
+L66F3: CALL L6873
+ OR A
+ JR Z,L672A ; (+031H)
+ CP 0FFH
+ JR Z,L672E ; (+031H)
+ CP 060H
+ JP NC,L4AE6
+ CP 020H
+ JR C,L66F2 ; (-014H)
+ LD IX,L66F3
+ PUSH IX
+ CP 022H
+ JR Z,L6749 ; (+039H)
+ CP 027H
+ JR Z,L673C ; (+028H)
+ CP 03FH
+ JR Z,L6735 ; (+01dH)
+ CP 02EH
+ JP Z,L6896
+ CP 024H
+ JP Z,L68B0
+ CALL L5EC2
+ JR C,L6771 ; (+04aH)
+ JP L687D
+
+L672A: LD (HL),A
+ POP BC
+ POP DE
+ RET
+
+L672E: LD (HL),LSE4
+ CALL L6755
+ JR L66F3 ; (-042H)
+
+L6735: LD A,08FH
+ CALL L6754
+ JR L67AC ; (+070H)
+
+L673C: LD (HL),03AH
+ CALL L6755
+ LD (HL),027H
+ CALL L6756
+ JP L6813
+
+L6749: LD (HL),A
+ CALL L6755
+L674D: LD A,(DE)
+ OR A
+ RET Z
+ CP 022H
+ JR NZ,L6749 ; (-00bH)
+L6754: LD (HL),A
+L6755: INC DE
+L6756: INC HL
+L6757: INC C
+ RET NZ
+ JP 04AFBH
+
+L675C: POP BC
+ LD A,(DE)
+ CALL L5EC9
+ JR C,L6754 ; (-00fH)
+L6763: CALL L6754
+ LD A,(DE)
+ CP 024H
+ JR Z,L6754 ; (-017H)
+ CALL L5EC2
+ RET C
+ JR L6763 ; (-00eH)
+
+L6771: PUSH BC
+ LD BC,L4167
+ CALL L6822
+ JR NC,L67A8 ; (+02eH)
+ LD BC,L42FE
+ CALL L6822
+ LD C,0FEH
+ JR NC,L678E ; (+00aH)
+ LD BC,L4356
+ CALL L6822
+ LD C,0FFH
+ JR C,L675C ; (-032H)
+L678E: LD (HL),C
+ INC HL
+ LD (HL),A
+ POP BC
+ CALL L6757
+ CALL L6756
+ CP 0B4H
+ RET NZ
+ CALL L6873
+ CP 03DH
+ RET NZ
+ LD (HL),QDPC
+ CALL L6755
+ JR L67E8 ; (+040H)
+
+L67A8: POP BC
+ CALL L6756
+L67AC: CP 097H
+ JR Z,L6813 ; (+063H)
+ CP 094H
+ JR Z,L6813 ; (+05fH)
+ CP 0C2H
+ JR Z,L6809 ; (+051H)
+ CP LSE2
+ JR Z,L67E8 ; (+02cH)
+ CP LSE0
+ RET NC
+ PUSH AF
+ CALL L6873
+ CP 02FH
+ JR NZ,L67D4 ; (+00dH)
+ LD (HL),FDPD
+ CALL L6755
+ CALL L6A15
+ CALL L6754
+ JR L67E4 ; (+010H)
+
+L67D4: CP 023H
+ JR NZ,L67E4 ; (+00cH)
+ CALL L6754
+ CALL L6A15
+ CALL L5EC2
+ CALL NC,L687D
+L67E4: POP AF
+ CP 08DH
+ RET NC
+L67E8: CALL L6873
+ CP 022H
+ JR NZ,L67F4 ; (+005H)
+ CALL L6749
+ JR L67E8 ; (-00cH)
+
+L67F4: CP 02CH
+ RET C
+ CP 02FH
+ JR C,L6804 ; (+009H)
+ CALL L5EC2
+ RET C
+ CALL L68A7
+ JR L67E8 ; (-01cH)
+
+L6804: CALL L6754
+ JR L67E8 ; (-021H)
+
+L6809: DB 02BH
+ LD (HL),03AH
+ INC HL
+ LD (HL),A
+ CALL L6756
+ JR L67E8 ; (-02bH)
+
+L6813: LD A,(DE)
+ CALL L414D
+ RET Z
+ CALL L6754
+ CP 022H
+ CALL Z,L674D
+ JR L6813 ; (-00fH)
+
+L6822: PUSH HL
+ PUSH DE
+ LD H,B
+ LD L,C
+ LD B,07FH
+L6828: POP DE
+ PUSH DE
+ INC B
+ LD A,(HL)
+ CP 0FFH
+ JR NZ,L6834 ; (+004H)
+ POP DE
+ POP HL
+ SCF
+ RET
+
+L6834: CP 02EH
+ JR NZ,L6841 ; (+009H)
+ INC HL
+ DEC DE
+ LD A,(DE)
+ INC DE
+ CALL L5EC9
+ JR NC,L6860 ; (+01fH)
+L6841: LD A,(DE)
+ CP 020H
+ JR NZ,L6852 ; (+00cH)
+ LD A,(HL)
+ AND 07FH
+ SUB 041H
+ CP 01AH
+ JR C,L6860 ; (+011H)
+ CALL L6A14
+L6852: LD C,(HL)
+ INC HL
+ INC DE
+ CP 02EH
+ JR Z,L6868 ; (+00fH)
+ SUB C
+ JR Z,L6841 ; (-01bH)
+ CP 080H
+ JR Z,L686E ; (+00eH)
+L6860: DEC HL
+L6861: BIT 7,(HL)
+ INC HL
+ JR Z,L6861 ; (-005H)
+ JR L6828 ; (-040H)
+
+L6868: LD A,B
+ CP 0E8H
+ JR NC,L6860 ; (-00dH)
+ CCF
+L686E: POP HL
+ POP HL
+ LD (HL),B
+ LD A,B
+ RET
+
+L6873: LD A,(DE)
+ CP 020H
+ RET NZ
+ LD (HL),A
+ CALL L6755
+ JR L6873 ; (-00aH)
+
+L687D: EX AF,AF'
+ PUSH DE
+ CALL L6A14
+ POP DE
+ CALL L5EC2
+ JR NC,L6896 ; (+00eH)
+ CP 02EH
+ JR Z,L6896 ; (+00aH)
+ CP 045H
+ JR Z,L6896 ; (+006H)
+ EX AF,AF'
+ SUB 02FH
+ JP L6896
+
+L6896: PUSH BC
+ LD (HL),015H
+ INC HL
+ PUSH HL
+ CALL L5EDA
+ POP HL
+ LD BC,00005H
+ ADD HL,BC
+ LD A,006H
+ JR L68CA ; (+023H)
+
+L68A7: PUSH BC
+ CALL L6A09
+ LD (HL),00BH
+ INC HL
+ JR L68C4 ; (+014H)
+
+L68B0: LD (HL),A
+ INC DE
+ LD A,(DE)
+ RST 018H
+ DB 015H
+ JP C,L6756
+ PUSH BC
+ LD (HL),011H
+ INC HL
+ PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 014H
+ LD B,D
+ LD C,E
+ EX DE,HL
+ POP HL
+L68C4: LD A,003H
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+L68CA: POP BC
+ ADD A,C
+ JP C,04AFBH
+ LD C,A
+L68D0: DEC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L68D0 ; (-006H)
+ INC DE
+ RET
+
+L68D8: PUSH HL
+ PUSH DE
+ PUSH BC
+ EXX
+ LD B,000H
+ EXX
+ LD C,000H
+L68E1: LD A,(HL)
+ OR A
+ JR Z,L6915 ; (+030H)
+ LD BC,L68E1
+ PUSH BC
+ CP 027H
+ JR Z,L692F ; (+042H)
+ INC HL
+ LD BC,L4167
+ CP 020H
+ JR C,L6957 ; (+062H)
+ CP 022H
+ JR Z,L6940 ; (+047H)
+ CP 03AH
+ JR Z,L694D ; (+050H)
+ CP 097H
+ JR Z,L692B ; (+02aH)
+ CP 094H
+ JR Z,L692B ; (+026H)
+ CP LSE4
+ JR Z,L691A ; (+011H)
+ CP 0FEH
+ JR NC,L691F ; (+012H)
+ CP 080H
+ JP NC,L699B
+ JP L69B8
+
+L6915: LD (DE),A
+ POP BC
+ POP DE
+ POP HL
+ RET
+
+L691A: LD A,0FFH
+ JP L69B8
+
+L691F: LD BC,L4356
+ JR NZ,L6927 ; (+003H)
+ LD BC,L42FE
+L6927: LD A,(HL)
+ INC HL
+ JR L699B ; (+070H)
+
+L692B: CALL L699B
+ RET Z
+L692F: LD A,(HL)
+ CALL L414D
+ RET Z
+ CALL L69B8
+ LD A,(HL)
+ INC HL
+ CP 022H
+ CALL Z,L6943
+ JR L692F ; (-011H)
+
+L6940: CALL L69B8
+L6943: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ JR NZ,L6940 ; (-00bH)
+ JR L69B8 ; (+06bH)
+
+L694D: LD (DE),A
+ LD A,(HL)
+ CP 0C2H
+ RET Z
+ CP 027H
+ RET Z
+ JR L69BB ; (+064H)
+
+L6957: CP 015H
+ JR Z,L698B ; (+030H)
+ CP 00BH
+ JR NC,L6964 ; (+005H)
+ DEC A
+ OR 030H
+ JR L69B8 ; (+054H)
+
+L6964: PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ PUSH HL
+ CP 012H
+ JR Z,L697A ; (+00cH)
+ CP 00CH
+ JR C,L697A ; (+008H)
+ JR NZ,L69C7 ; (+053H)
+ EX DE,HL
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L697A: EX DE,HL
+ CALL L5E64
+ LD B,D
+ LD C,E
+ POP HL
+ POP DE
+L6982: LD A,(BC)
+ OR A
+ RET Z
+ CALL L69B8
+ INC BC
+ JR L6982 ; (-009H)
+
+L698B: PUSH HL
+ PUSH DE
+ CALL L6219
+ LD B,D
+ LD C,E
+ POP DE
+ POP HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ JR L6982 ; (-019H)
+
+L699B: CP 080H
+ JR Z,L69A9 ; (+00aH)
+ EX AF,AF'
+L69A0: LD A,(BC)
+ RLCA
+ INC BC
+ JR NC,L69A0 ; (-005H)
+ EX AF,AF'
+ DEC A
+ JR L699B ; (-00eH)
+
+L69A9: LD A,(BC)
+ BIT 7,A
+ JR NZ,L69B6 ; (+008H)
+ CP 02EH
+ CALL NZ,L69B8
+ INC BC
+ JR L69A9 ; (-00dH)
+
+L69B6: AND 07FH
+L69B8: LD (DE),A
+ OR A
+ RET Z
+L69BB: INC DE
+ EXX
+ INC B
+ EXX
+ RET NZ
+ XOR A
+ LD (DE),A
+ DEC DE
+ EXX
+ DEC B
+ EXX
+ RET
+
+L69C7: LD A,024H
+ EX AF,AF'
+ EX DE,HL
+ CALL L69D8
+ LD B,D
+ LD C,E
+ POP HL
+ POP DE
+ EX AF,AF'
+ CALL L69B8
+ JR L6982 ; (-056H)
+
+L69D8: LD DE,L84A1
+ PUSH DE
+ LD A,H
+ CALL L69F1
+ LD A,L
+ CALL L69F1
+ XOR A
+ LD (DE),A
+ POP DE
+ LD B,003H
+L69E9: LD A,(DE)
+ CP 030H
+ RET NZ
+ INC DE
+ DJNZ L69E9 ; (-007H)
+ RET
+
+L69F1: PUSH AF
+ RRCA
+ RRCA
+ RRCA
+ RRCA
+ AND 00FH
+ CALL L69FE
+ POP AF
+ AND 00FH
+L69FE: ADD A,030H
+ CP 03AH
+ JR C,L6A06 ; (+002H)
+ ADD A,007H
+L6A06: LD (DE),A
+ INC DE
+ RET
+
+L6A09: PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 013H
+ LD B,D
+ LD C,E
+ EX DE,HL
+ POP HL
+ JP L68D0
+
+L6A14: INC DE
+L6A15: LD A,(DE)
+ CP 020H
+ JR Z,L6A14 ; (-006H)
+ RET
+
+L6A1B: LD C,(HL)
+L6A1C: CALL L6A24
+ XOR A
+ LD (L1095),A
+ RET
+
+L6A24: LD A,(L004D)
+ OR A
+ JP NZ,L4B36
+ CALL TEST1
+ DB 047H
+ JR Z,L6A74 ; (+043H)
+ CALL TESTX
+ DB 054H
+ LD A,001H
+ LD (L1097),A
+ CALL TEST1
+ DB 04EH
+ JR Z,L6A4A ; (+00aH)
+ CALL TEST1
+ DB 04CH
+ JR Z,L6A4A ; (+004H)
+ CALL TESTX
+ DB 053H
+L6A4A: LD (L6A1B),A
+ CALL L5E46
+ CALL L6A6C
+L6A53: LD A,001H
+ RST 018H
+ DB 006H
+ LD A,(L6A1B)
+ CP 04EH
+ RET Z
+ CP 04CH
+ LD A,00BH
+ JR Z,L6A69 ; (+006H)
+ LD A,009H
+ RST 018H
+ DB 006H
+ RST 018H
+ DB 006H
+L6A69: RST 018H
+ DB 006H
+ RET
+
+L6A6C: LD A,00AH
+ RST 018H
+ DB 006H
+ LD A,003H
+ JR L6A69 ; (-00bH)
+
+L6A74: INC HL
+ CALL L5E46
+ LD A,002H
+ LD (L1097),A
+ JR L6A69 ; (-016H)
+
+L6A7F: CALL L6ABE
+ CALL L6E57
+ LD A,E
+ OR A
+ RET Z
+ CP 0ECH
+ JR NC,L6A91 ; (+005H)
+ CP 015H
+ JP NC,04AECH
+L6A91: CALL L5E46
+ BIT 7,E
+ JR NZ,L6AA0 ; (+008H)
+L6A98: LD A,00AH
+ RST 018H
+ DB 006H
+ DEC E
+ JR NZ,L6A98 ; (-007H)
+ RET
+
+L6AA0: LD A,003H
+ RST 018H
+ DB 006H
+ INC E
+ JR NZ,L6AA0 ; (-007H)
+ RET
+
+L6AA8: PUSH HL
+ LD HL,L03E7
+ JR L6AB2 ; (+004H)
+
+L6AAE: PUSH HL
+ LD HL,L01E0
+L6AB2: PUSH HL
+ ADD HL,DE
+ POP HL
+ JR C,L6ABC ; (+005H)
+ SBC HL,DE
+ JP C,04AECH
+L6ABC: POP HL
+ RET
+
+L6ABE: LD B,001H
+ JR L6AC4 ; (+002H)
+
+L6AC2: LD B,002H
+L6AC4: LD A,(L1097)
+ CP B
+ RET Z
+ JP L4B36
+
+L6ACC: LD C,044H
+ LD DE,04A0EH
+ LD DE,04D0EH
+ LD DE,0520EH
+ CALL L6AC2
+ LD A,C
+ LD (06B1EH),A
+ CP 04DH
+ JR NC,L6B04 ; (+022H)
+ CALL TEST1
+ DB 025H
+ JR NZ,L6B04 ; (+01cH)
+ CALL L6E43
+ LD A,E
+ DEC A
+ CP 010H
+ JP NC,04AECH
+ DEC DE
+ LD A,04CH
+ RST 018H
+ DB 006H
+ CALL L6DDA
+ CALL L6B60
+ CALL L414A
+ RET Z
+ CALL L5E71
+L6B04: CALL L6E57
+ CALL L5E71
+ CALL L6AAE
+ PUSH DE
+ CALL L6E57
+ CP 02CH
+ JR Z,L6B18 ; (+003H)
+ CALL L5E46
+L6B18: CALL L6AA8
+ POP BC
+ PUSH DE
+ LD A,000H
+ RST 018H
+ DB 006H
+ LD E,C
+ LD D,B
+ CALL L6DDA
+ CALL L6B64
+ POP DE
+ CALL L6DDA
+ CALL L6B60
+ CALL L414A
+ RET Z
+ INC HL
+ JR L6B04 ; (-033H)
+
+L6B37: CALL L6E43
+ LD A,E
+ CP 004H
+ JP NC,04AECH
+ CALL L5E46
+ LD A,(L1097)
+ CP 002H
+ JR Z,L6B57 ; (+00dH)
+ CALL L6A6C
+ LD A,002H
+ RST 018H
+ DB 006H
+ CALL L6B57
+ JP L6A53
+
+L6B57: LD A,043H
+ RST 018H
+ DB 006H
+ LD A,E
+ OR 030H
+ RST 018H
+ DB 006H
+L6B60: LD A,00DH
+ JR L6B66 ; (+002H)
+
+L6B64: LD A,02CH
+L6B66: RST 018H
+ DB 006H
+ RET
+
+L6B69: CALL L6AC2
+ CALL L5E46
+ LD A,048H
+ JR L6B66 ; (-00dH)
+
+L6B73: CALL L6AC2
+ CALL L5E46
+ LD A,049H
+ JR L6B66 ; (-017H)
+
+L6B7D: CALL L6AC2
+ CALL TEST1
+ DB 05BH
+ JR NZ,L6BBE ; (+038H)
+ CALL L6E43
+ CP 040H
+ JP NC,04AECH
+ PUSH DE
+ CALL L5E6E
+ CALL L6E43
+ CP 004H
+ JP NC,04AECH
+ PUSH DE
+ CALL TESTX
+ DB 05DH
+ POP BC
+ POP DE
+ PUSH BC
+ LD A,053H
+ RST 018H
+ DB 006H
+ CALL L6DDA
+ CALL L6B64
+ POP DE
+ LD A,051H
+ RST 018H
+ DB 006H
+ CALL L6DDA
+ CALL L6B60
+ CALL L414A
+ RET Z
+ CALL L5E71
+L6BBE: CALL L6E67
+ CALL L414A
+ JR Z,L6BCA ; (+004H)
+ CALL L5E71
+ DEC HL
+L6BCA: LD A,B
+ OR A
+ JR Z,L6BDB ; (+00dH)
+ LD A,050H
+ RST 018H
+ DB 006H
+L6BD2: LD A,(DE)
+ RST 018H
+ DB 006H
+ INC DE
+ DJNZ L6BD2 ; (-006H)
+ CALL L6B60
+L6BDB: CALL L414A
+ RET Z
+ INC HL
+ JR L6BBE ; (-024H)
+
+L6BE2: CALL L6AC2
+ CALL L6E43
+ CP 002H
+ JP NC,04AECH
+ PUSH AF
+ CALL L5E6E
+ CALL L6E57
+ PUSH DE
+ CALL L5E71
+ CALL L6E43
+ OR A
+ JP Z,04AECH
+ CALL L5E46
+ LD A,058H
+ RST 018H
+ DB 006H
+ POP BC
+ POP AF
+ PUSH DE
+ PUSH BC
+ OR 030H
+ RST 018H
+ DB 006H
+ CALL L6B64
+ POP DE
+ CALL L6AA8
+ CALL L6DDA
+ CALL L6B64
+ POP DE
+ CALL L6DDA
+ JP L6B60
+
+L6C22: CALL L6AC2
+ PUSH HL
+ LD DE,L0000
+ LD HL,L6DBC
+ CALL L5E97
+ LD DE,L0168
+ LD HL,L6DC1
+ CALL L5E97
+ LD HL,L610B
+ LD DE,L6DC6
+ CALL L5E91
+ POP HL
+ CALL L6E82
+ CALL L5E71
+ PUSH HL
+ LD HL,L6DAD
+ EX DE,HL
+ CALL L5E91
+ POP HL
+ CALL L6E82
+ CALL L5E71
+ PUSH HL
+ LD HL,L6DB2
+ EX DE,HL
+ CALL L5E91
+ POP HL
+ CALL L6E82
+ PUSH HL
+ PUSH AF
+ LD HL,L6DB7
+ EX DE,HL
+ CALL L5E91
+ LD A,(06DB8H)
+ RLCA
+ JP C,04AECH
+ POP AF
+ CP 02CH
+ JR NZ,L6CB2 ; (+03aH)
+ POP HL
+ INC HL
+ CALL L6E82
+ PUSH HL
+ PUSH AF
+ LD HL,L6DBC
+ EX DE,HL
+ CALL L5E91
+ POP AF
+ CP 02CH
+ JR NZ,L6CB2 ; (+027H)
+ POP HL
+ INC HL
+ CALL L6E82
+ PUSH HL
+ PUSH AF
+ LD HL,L6DC1
+ EX DE,HL
+ CALL L5E91
+ POP AF
+ CP 02CH
+ JR NZ,L6CB2 ; (+014H)
+ POP HL
+ INC HL
+ CALL L6E82
+ PUSH HL
+ LD HL,L6DC6
+ EX DE,HL
+ CALL L5E91
+ LD A,(06DC7H)
+ RLCA
+ JP C,04AECH
+L6CB2: POP HL
+ CALL L5E46
+ PUSH HL
+ LD HL,L6DC1
+ LD DE,L6DBC
+ LD A,(L6DC6)
+ OR A
+ CALL NZ,L7A15
+ JP C,04AECH
+ CALL L6D63
+ LD HL,L6DCB
+ LD (06D3BH),HL
+ LD HL,L6DD0
+ LD (06D46H),HL
+ CALL 06D37H
+ LD A,(L6DC6)
+ OR A
+ JR Z,L6D11 ; (+032H)
+L6CDF: LD HL,L6DBC
+ LD DE,L6DC6
+ CALL L797E
+ LD DE,L6DC1
+ CALL L7A15
+ JR NC,L6CFC ; (+00cH)
+ CALL L6D63
+ CALL L6D34
+ RST 018H
+ DB 00EH
+ JR NZ,L6CDF ; (-01bH)
+ POP HL
+ RET
+
+L6CFC: CALL L6D04
+ CALL L6D34
+ POP HL
+ RET
+
+L6D04: LD HL,L6DC1
+ LD DE,L6DBC
+ LD BC,00005H
+ LDIR
+ JR L6D63 ; (+052H)
+
+L6D11: LD HL,L6DAD
+ LD (06D3BH),HL
+ LD HL,L6DB2
+ LD (06D46H),HL
+ CALL L6D34
+ CALL L6D04
+ LD HL,L6DCB
+ LD (06D3BH),HL
+ LD HL,L6DD0
+ LD (06D46H),HL
+ CALL L6D34
+ POP HL
+ RET
+
+L6D34: LD A,044H
+ LD HL,L4D3E
+ PUSH AF
+ LD HL,L6DAD
+ CALL L60B5
+ PUSH HL
+ EX DE,HL
+ CALL L6AA8
+ LD HL,L6DB2
+ CALL L60B5
+ PUSH HL
+ EX DE,HL
+ CALL L6AA8
+ POP HL
+ POP DE
+ POP AF
+ RST 018H
+ DB 006H
+ PUSH HL
+ CALL L6DDA
+ CALL L6B64
+ POP DE
+ CALL L6DDA
+ JP L6B60
+
+L6D63: LD DE,(INTFAC)
+ LD HL,L6DBC
+ CALL L5E91
+ LD HL,(L107C)
+ CALL L8175
+ CALL L7FBB
+ LD DE,L6DB7
+ CALL L7BAC
+ LD DE,L6DAD
+ CALL L797E
+ LD DE,L6DCB
+ CALL L5E91
+ LD DE,(INTFAC)
+ LD HL,L6DBC
+ CALL L5E91
+ LD HL,(L107C)
+ CALL L8175
+ CALL L7FCB
+ LD DE,L6DB7
+ CALL L7BAC
+ LD DE,L6DB2
+ CALL L797E
+ LD DE,L6DD0
+ JP L5E91
+
+L6DAD: DS 5, 000H
+L6DB2: DS 5, 000H
+L6DB7: DS 5, 000H
+L6DBC: DS 5, 000H
+L6DC1: DS 5, 000H
+L6DC6: DS 5, 000H
+L6DCB: DS 5, 000H
+L6DD0: DS 10, 000H
+L6DDA: PUSH AF
+ PUSH HL
+ LD HL,(L107C)
+ CALL L5E97
+ CALL L6026
+ RST 018H
+ DB 017H
+L6DE7: LD A,(DE)
+ RST 018H
+ DB 006H
+ INC DE
+ DJNZ L6DE7 ; (-006H)
+ POP HL
+ POP AF
+ RET
+
+L6DF0: CALL L6ABE
+ CALL L5E46
+ LD A,004H
+ RST 018H
+ DB 006H
+ RET
+
+L6DFB: CALL L6ABE
+ CALL L6E57
+ LD A,E
+ OR A
+ JP Z,04AECH
+ CP 049H
+ JP NC,04AECH
+ CALL L5E46
+ LD A,009H
+ RST 018H
+ DB 006H
+ RST 018H
+ DB 006H
+ CALL L6DDA
+ JP L6B60
+
+L6E1A: CP 09DH
+ JR Z,L6E29 ; (+00bH)
+ CP 0A1H
+ JP NZ,L4AE6
+ XOR A
+L6E24: LD (L004D),A
+ INC HL
+ RET
+
+L6E29: CALL L6ABE
+ LD A,(L6A1B)
+ CP 04EH
+ JP NZ,L4B36
+ LD A,(L004D)
+ OR A
+ JR NZ,L6E24 ; (-016H)
+ CALL L527B
+ LD A,016H
+ RST 018H
+ DB 003H
+ JR L6E24 ; (-01fH)
+
+L6E43: CALL L6E57
+L6E46: LD A,D
+ OR A
+ JP NZ,04AECH
+ LD A,E
+ RET
+
+L6E4D: CALL L6E94
+ DEC DE
+ DEC DE
+ DEC DE
+ DEC DE
+ DEC DE
+ JR L6E5A ; (+003H)
+
+L6E57: CALL L6E82
+L6E5A: PUSH AF
+ PUSH HL
+ EX DE,HL
+ CALL L7918
+ CALL L60B5
+ EX DE,HL
+ POP HL
+ POP AF
+ RET
+
+L6E67: CALL L6E82
+ PUSH AF
+ CALL L790F
+ PUSH HL
+ EX DE,HL
+ CALL L6E76
+ POP HL
+ POP AF
+ RET
+
+L6E76: LD B,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ EX DE,HL
+ LD A,B
+ RET
+
+L6E82: LD DE,(VARED)
+ LD (TMPEND),DE
+L6E8A: LD DE,(INTFAC)
+ PUSH DE
+ CALL L6E94
+ POP DE
+ RET
+
+L6E94: PUSH DE
+ LD DE,(TMPEND)
+ CALL L74E1
+ POP DE
+ CALL L6EB8
+L6EA0: CP EM_P0
+ RET NZ
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ CALL L6EB8
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL 07E5EH
+ POP HL
+ POP AF
+ JR L6EA0 ; (-018H)
+
+L6EB8: CALL L6ED3
+L6EBB: CP EM_P1
+ RET NZ
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ CALL L6ED3
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL 07E5BH
+ POP HL
+ POP AF
+ JR L6EBB ; (-018H)
+
+L6ED3: CALL L6EEE
+L6ED6: CP 0ECH
+ RET NZ
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ CALL L6EEE
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7E58
+ POP HL
+ POP AF
+ JR L6ED6 ; (-018H)
+
+L6EEE: CALL TEST1
+ DB 0EDH
+ JR NZ,L6F03 ; (+00fH)
+ CALL L6F03
+ PUSH AF
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L7E48
+ POP HL
+ POP AF
+ RET
+
+L6F03: CALL L6F6D
+L6F06: CP 0EEH
+ RET C
+ PUSH AF
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ CALL L6F6D
+ POP BC
+ EX (SP),HL
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7A15
+ EX AF,AF'
+ POP AF
+ CP 0F6H
+ JR NZ,L6F40 ; (+01eH)
+ EX AF,AF'
+ JR C,L6F3B ; (+016H)
+L6F25: LD BC,L0000
+L6F28: LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ XOR A
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ LD A,005H
+ LD (L84C7),A
+ POP AF
+ POP HL
+ JR L6F06 ; (-035H)
+
+L6F3B: LD BC,08081H
+ JR L6F28 ; (-018H)
+
+L6F40: CP QDPD
+ JR NZ,L6F4B ; (+007H)
+ EX AF,AF'
+ JR Z,L6F25 ; (-022H)
+ JR C,L6F25 ; (-024H)
+ JR L6F3B ; (-010H)
+
+L6F4B: CP QDPC
+ JR NZ,L6F54 ; (+005H)
+ EX AF,AF'
+ JR Z,L6F3B ; (-017H)
+ JR L6F25 ; (-02fH)
+
+L6F54: CP QDPA
+ JR C,L6F5D ; (+005H)
+ EX AF,AF'
+ JR NC,L6F3B ; (-020H)
+ JR L6F25 ; (-038H)
+
+L6F5D: CP LSPAL
+ JR C,L6F68 ; (+007H)
+ EX AF,AF'
+ JR Z,L6F3B ; (-029H)
+ JR C,L6F3B ; (-02bH)
+ JR L6F25 ; (-043H)
+
+L6F68: EX AF,AF'
+ JR Z,L6F25 ; (-046H)
+ JR L6F3B ; (-032H)
+
+L6F6D: CALL L6F98
+L6F70: CP 0F7H
+ RET C
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ JR Z,L6F8A ; (+010H)
+ CALL L6F98
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7975
+L6F86: POP HL
+ POP AF
+ JR L6F70 ; (-01aH)
+
+L6F8A: CALL L6F98
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L797E
+ JR L6F86 ; (-012H)
+
+L6F98: CALL L6FC3
+L6F9B: CP FDPB
+ RET C
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ JR Z,L6FB5 ; (+010H)
+ CALL L6FC3
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7EB4
+L6FB1: POP HL
+ POP AF
+ JR L6F9B ; (-01aH)
+
+L6FB5: CALL L6FC3
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7ED3
+ JR L6FB1 ; (-012H)
+
+L6FC3: CALL L6FEE
+L6FC6: CP FDPD
+ RET C
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ JR Z,L6FE0 ; (+010H)
+ CALL L6FEE
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7BAC
+L6FDC: POP HL
+ POP AF
+ JR L6FC6 ; (-01aH)
+
+L6FE0: CALL L6FEE
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7C97
+ JR L6FDC ; (-012H)
+
+L6FEE: CALL TEST1
+ DB 0F7H
+ JR Z,L6FEE ; (-006H)
+ CP FDPA
+ JR NZ,L6FFE ; (+006H)
+ INC HL
+ CALL L6FFE
+ JR L7027 ; (+029H)
+
+L6FFE: CALL L7033
+L7001: CP 0FDH
+ RET NZ
+ LD A,(L84C7)
+ PUSH AF
+ INC HL
+ CALL L7019
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74BE
+ CALL L7DCC
+ POP HL
+ POP AF
+ JR L7001 ; (-018H)
+
+L7019: CALL TEST1
+ DB 0F7H
+ JR Z,L7019 ; (-006H)
+ CP FDPA
+ JR NZ,L7033 ; (+010H)
+ INC HL
+ CALL L7033
+L7027: PUSH AF
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L7968
+ POP HL
+ POP AF
+ RET
+
+L7033: CALL L414A
+ JP Z,L4AE6
+ CALL L703F
+ JP HLFTCH
+
+L703F: PUSH HL
+ LD HL,(L107E)
+ SCF
+ SBC HL,DE
+ JP C,04AF5H
+ POP HL
+ CP LSE4
+ JR Z,L705C ; (+00eH)
+ CP 020H
+ JR NC,L709C ; (+04aH)
+L7052: INC HL
+ CP 015H
+ JR C,L706B ; (+014H)
+ CALL L5E91
+ JR L7065 ; (+009H)
+
+L705C: INC HL
+ PUSH HL
+ LD HL,08188H
+ CALL L5E91
+ POP HL
+L7065: LD A,005H
+L7067: LD (L84C7),A
+ RET
+
+L706B: CP 00BH
+ JR NC,L7078 ; (+009H)
+ DEC A
+ JP M,L4AE6
+ LD B,000H
+ LD C,A
+ JR L7089 ; (+011H)
+
+L7078: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ CP 00CH
+ JR NZ,L7089 ; (+009H)
+ INC BC
+ INC BC
+ LD A,(BC)
+ INC BC
+ EX AF,AF'
+ LD A,(BC)
+ LD B,A
+ EX AF,AF'
+ LD C,A
+L7089: PUSH HL
+ PUSH DE
+ EX DE,HL
+ LD E,C
+ LD D,B
+ CALL L5E97
+ POP DE
+ POP HL
+ LD A,005H
+L7095: INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ JR L7067 ; (-035H)
+
+L709C: CP 022H
+ JR NZ,L70CF ; (+02fH)
+ INC HL
+ PUSH HL
+ CALL L74C9
+ EX (SP),HL
+ PUSH HL
+ LD HL,(L107A)
+ PUSH BC
+ LD BC,(STRST)
+ OR A
+ SBC HL,BC
+ POP BC
+ EX DE,HL
+ LD (HL),B
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ POP DE
+ PUSH HL
+ LD HL,(L107A)
+ CALL L74D5
+ LD (L107A),HL
+ POP DE
+ POP HL
+ LD A,003H
+ LD (L84C7),A
+ RET
+
+L70CF: CP 028H
+ JR NZ,L70DA ; (+007H)
+ INC HL
+ CALL L6E94
+ JP L5E80
+
+L70DA: OR A
+ JP P,L76EE
+ CP 0E7H
+ INC HL
+ JR NZ,L70E8 ; (+005H)
+ LD A,0A8H
+ PUSH AF
+ JR L711D ; (+035H)
+
+L70E8: CP 0FFH
+ JP NZ,L4AE6
+ LD A,(HL)
+ INC HL
+ CP 0A0H
+ JP Z,L71A0
+ CP 0C8H
+ JP NC,L4AE6
+ CP 0BAH
+ JR NC,L714D ; (+050H)
+ PUSH AF
+ CP 0B3H
+ JR NC,L713E ; (+03cH)
+ LD B,003H
+ CP 0AAH
+ JR Z,L711D ; (+015H)
+ CP 0ABH
+ JR NC,L711D ; (+011H)
+ LD B,005H
+ CP 088H
+ JR Z,L7138 ; (+026H)
+ CP 089H
+ JR NZ,L711D ; (+007H)
+ CALL TEST1
+ DB 040H
+ LD (081A1H),A
+L711D: CALL L5E76
+L7120: PUSH BC
+ CALL L6E94
+ CALL L5E80
+ POP AF
+ CALL L790B
+L712B: POP AF
+ PUSH DE
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L714D
+ POP HL
+ POP DE
+ RET
+
+L7138: CALL TEST1
+ DB 028H
+ JR Z,L7120 ; (-01eH)
+L713E: LD A,005H
+ LD (L84C7),A
+ PUSH HL
+ LD HL,L6110
+ CALL L5E91
+ POP HL
+ JR L712B ; (-022H)
+
+L714D: PUSH HL
+ ADD A,A
+ LD L,A
+ LD H,000H
+ LD BC,L4512
+ ADD HL,BC
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ EX (SP),HL
+ RET
+
+ EX DE,HL
+ LD HL,L0000
+ ADD HL,SP
+ LD BC,(TMPEND)
+ OR A
+ SBC HL,BC
+ OR A
+ LD BC,L0100
+ SBC HL,BC
+ EX DE,HL
+ JR L7181 ; (+010H)
+
+ LD A,(L0054)
+ JR L717E ; (+008H)
+
+ LD A,(00055H)
+ JR L717E ; (+003H)
+
+ LD A,(L847E)
+L717E: LD E,A
+ LD D,000H
+L7181: LD A,005H
+ LD (L84C7),A
+ JP L5E97
+
+ LD DE,(08480H)
+ CALL L5E97
+ INC HL
+ BIT 7,(HL)
+ DEC HL
+ RET Z
+ LD DE,L719B
+ JP L797E
+
+L719B: SUB C
+ NOP
+ NOP
+ NOP
+ NOP
+L71A0: CALL L5E76
+ LD BC,(TMPEND)
+ PUSH BC
+ XOR A
+ PUSH AF
+L71AA: PUSH BC
+ PUSH DE
+ CALL L6E4D
+ CALL L6E46
+ POP DE
+ POP BC
+ LD (BC),A
+ INC BC
+ LD (TMPEND),BC
+ POP AF
+ INC A
+ PUSH AF
+ CALL TEST1
+ DB 02CH
+ JR Z,L71AA ; (-019H)
+ CALL L5E80
+ PUSH BC
+ EXX
+ POP DE
+ POP AF
+ LD B,A
+ POP HL
+ CALL L74E1
+L71CF: LD (TMPEND),DE
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ PUSH HL
+ LD A,B
+ EXX
+ EX DE,HL
+ LD (HL),A
+ INC HL
+ POP BC
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ LD BC,L0003
+ ADD HL,BC
+L71E8: EX DE,HL
+ LD A,003H
+ LD (L84C7),A
+ RET
+
+ PUSH HL
+ CALL L60B5
+ CALL L69D8
+ RST 018H
+ DB 017H
+L71F8: LD A,B
+ OR A
+ JR Z,L720C ; (+010H)
+ LD HL,(L107A)
+ PUSH HL
+ PUSH BC
+ CALL L74D5
+ POP BC
+ EX DE,HL
+ POP HL
+ EXX
+ POP DE
+ EXX
+ JR L71CF ; (-03dH)
+
+L720C: POP HL
+ CALL L7960
+ JR L71E8 ; (-02aH)
+
+ PUSH HL
+ CALL L7223
+ LD B,A
+ LD C,A
+ OR A
+ LD A,020H
+ PUSH DE
+ CALL NZ,?SETDE
+ POP DE
+ LD B,C
+ JR L71F8 ; (-02bH)
+
+L7223: CALL L60B5
+ LD DE,L11A4
+ LD A,H
+ OR A
+ JP NZ,04AECH
+ LD A,L
+ RET
+
+ PUSH HL
+ CALL L6026
+ LD A,(DE)
+ CP 020H
+ JR NZ,L723A ; (+001H)
+ INC DE
+L723A: RST 018H
+ DB 017H
+ JR L71F8 ; (-046H)
+
+ CALL L5E76
+ CALL L5882
+ LD B,A
+ CALL L5E7D
+ LD A,B
+ PUSH HL
+ PUSH DE
+ RST 018H
+ DB 029H
+ LD DE,0FFFFH
+ JR C,L725A ; (+008H)
+ INC HL
+ BIT 7,(HL)
+ JR NZ,L725A ; (+003H)
+ LD DE,L0000
+L725A: POP HL
+ CALL L5E97
+ LD A,005H
+ LD (L84C7),A
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ POP HL
+ RET
+
+ PUSH HL
+ CALL L6E76
+ OR A
+ JR Z,L7273 ; (+001H)
+ LD A,(DE)
+L7273: JR L7279 ; (+004H)
+
+ PUSH HL
+ CALL L6E76
+L7279: POP HL
+ JP L717E
+
+ PUSH HL
+ CALL L6E76
+ LD HL,(L107A)
+ PUSH HL
+ CALL L74D5
+ LD (HL),000H
+ POP DE
+ POP HL
+ JP L5EDA
+
+ CALL L730B
+ CALL L5E80
+ CALL L7304
+ EX DE,HL
+ LD A,(HL)
+ CP C
+ JR NC,L729E ; (+001H)
+ LD C,A
+L729E: LD (HL),C
+ LD BC,00005H
+L72A2: LD A,003H
+ ADD HL,BC
+ EX DE,HL
+ LD (L84C7),A
+ JP HLFTCH
+
+ CALL L730B
+ CALL L5E80
+ CALL L7304
+ EX DE,HL
+ LD A,(HL)
+ SUB C
+ JR NC,L72BC ; (+002H)
+ XOR A
+ LD C,(HL)
+L72BC: LD (HL),C
+ INC HL
+ ADD A,(HL)
+ LD (HL),A
+ INC HL
+ JR NC,L72C4 ; (+001H)
+ INC (HL)
+L72C4: LD BC,L0003
+ JR L72A2 ; (-027H)
+
+ CALL L730B
+ CALL L7304
+ OR A
+ JP Z,04AECH
+ PUSH AF
+ CALL TEST1
+ DB 029H
+ LD A,0FFH
+ JR Z,L72F0 ; (+014H)
+ CALL L5E6E
+ PUSH DE
+ EX DE,HL
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ CALL L6E4D
+ CALL L5E80
+ CALL L6E46
+ POP DE
+L72F0: POP BC
+ LD C,A
+ EX DE,HL
+ LD A,(HL)
+ SUB B
+ JR C,L7300 ; (+009H)
+ INC A
+ CP C
+ JR NC,L72FC ; (+001H)
+ LD C,A
+L72FC: LD A,B
+ DEC A
+ JR L72BC ; (-044H)
+
+L7300: XOR A
+ LD C,A
+ JR L72BC ; (-048H)
+
+L7304: LD A,B
+ OR A
+ JP NZ,04AECH
+ LD A,C
+ RET
+
+L730B: CALL L5E76
+ PUSH DE
+ CALL L6E94
+ CALL L5E71
+ CALL L790F
+ CALL L6E4D
+ LD C,E
+ LD B,D
+ POP DE
+ RET
+
+ PUSH HL
+ PUSH DE
+ LD HL,(L107A)
+ PUSH HL
+ LD A,030H
+ LD B,006H
+ CALL ?SETHL
+ RST 018H
+ DB 025H
+ POP HL
+ OR A
+ JR Z,L7337 ; (+005H)
+ INC (HL)
+ INC HL
+ INC (HL)
+ INC (HL)
+ DEC HL
+L7337: EX DE,HL
+ LD BC,L8CA0
+ CALL L73AE
+ LD BC,L0E10
+ CALL L73AE
+ CP 03AH
+ JR C,L7352 ; (+00aH)
+ SUB 00AH
+ DEC DE
+ LD (DE),A
+ DEC DE
+ LD A,(DE)
+ INC A
+ LD (DE),A
+ INC DE
+ INC DE
+L7352: DEC DE
+ DEC DE
+ LD A,(DE)
+ INC DE
+ LD B,A
+ LD A,(DE)
+ INC DE
+ LD C,A
+ LD A,B
+ CP 032H
+ JR NZ,L7370 ; (+011H)
+ LD A,C
+ CP 034H
+ JR NZ,L7370 ; (+00cH)
+ LD HL,(L107A)
+ LD A,030H
+ LD B,006H
+ CALL ?SETHL
+ JR L7386 ; (+016H)
+
+L7370: LD BC,L0258
+ CALL L73AE
+ LD BC,0003CH
+ CALL L73AE
+ LD BC,0000AH
+ CALL L73AE
+ LD A,030H
+ ADD A,L
+ LD (DE),A
+L7386: LD HL,(L107A)
+ LD DE,L0006
+ EX DE,HL
+ ADD HL,DE
+ LD (L107A),HL
+ EX DE,HL
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ POP HL
+ LD (HL),006H
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ POP HL
+ LD A,003H
+ LD (L84C7),A
+ JP HLFTCH
+
+L73AE: OR A
+ SBC HL,BC
+ JR C,L73B8 ; (+005H)
+ LD A,(DE)
+ INC A
+ LD (DE),A
+ JR L73AE ; (-00aH)
+
+L73B8: ADD HL,BC
+ INC DE
+ RET
+
+L73BB: CALL TESTX
+ DB QDPC
+ CALL L6E67
+ LD A,B
+ CP 006H
+ JP NZ,04AECH
+ PUSH HL
+ PUSH DE
+ LD HL,L0000
+ CALL L73FC
+ CP 018H
+ JP NC,04AECH
+ CP 00CH
+ LD A,000H
+ JR C,L73E4 ; (+009H)
+ PUSH DE
+ LD DE,L000C
+ OR A
+ SBC HL,DE
+ POP DE
+ INC A
+L73E4: PUSH AF
+ CALL L73FC
+ CP 03CH
+ JP NC,04AECH
+ CALL L73FC
+ CP 03CH
+ JP NC,04AECH
+ POP AF
+ EX DE,HL
+ RST 018H
+ DB 026H
+ POP DE
+ POP HL
+ RET
+
+L73FC: PUSH DE
+ LD D,H
+ LD E,L
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,DE
+ LD D,H
+ LD E,L
+ ADD HL,HL
+ ADD HL,DE
+ ADD HL,HL
+ ADD HL,HL
+ POP DE
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JP C,04AECH
+ CP 00AH
+ JP NC,04AECH
+ PUSH BC
+ LD C,A
+ ADD A,A
+ ADD A,A
+ ADD A,C
+ ADD A,A
+ LD C,A
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JP C,04AECH
+ CP 00AH
+ JP NC,04AECH
+ ADD A,C
+ LD C,A
+L742A: LD B,000H
+ ADD HL,BC
+ POP BC
+ RET
+
+L742F: LD DE,(VARED)
+ LD (TMPEND),DE
+ LD DE,(INTFAC)
+L743B: PUSH DE
+ CALL L748E
+L743F: LD A,(HL)
+ CP 028H
+ JP Z,L74F4
+ PUSH HL
+ CALL L77AF
+ JR NC,L7451 ; (+006H)
+ LD A,C
+ LD C,L
+ LD B,H
+ POP HL
+ POP DE
+ RET
+
+L7451: LD A,(DE)
+ ADD A,C
+ ADD A,002H
+ PUSH BC
+ EX DE,HL
+ LD HL,(L107A)
+ PUSH HL
+ OR A
+ SBC HL,DE
+ INC HL
+ LD C,L
+ LD B,H
+ POP HL
+ PUSH DE
+ EX DE,HL
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ EX DE,HL
+ CALL L74E1
+ LDDR
+ LD E,A
+ LD D,000H
+ RST 018H
+ DB 01AH
+ POP HL
+ POP BC
+ LD DE,L11A4
+ LD (HL),C
+ INC HL
+ SCF
+ SBC A,C
+ LD B,A
+L747D: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L747D ; (-006H)
+ PUSH HL
+ LD B,C
+ CALL ?CLRHL
+ LD (HL),A
+ LD A,C
+ POP BC
+ POP HL
+ POP DE
+ RET
+
+L748E: CALL HLFTCH
+ SUB 041H
+ CP 01AH
+ JP NC,L4AE6
+ LD DE,L11A4
+ LD B,000H
+L749D: INC DE
+ LD A,(HL)
+ CALL L5EC9
+ JR C,L74AF ; (+00bH)
+ LD (DE),A
+ INC B
+ LD A,B
+ CP 003H
+ JR C,L74AC ; (+001H)
+ DEC B
+L74AC: INC HL
+ JR L749D ; (-012H)
+
+L74AF: LD DE,L11A4
+ EX DE,HL
+ LD (HL),B
+ EX DE,HL
+ LD C,005H
+ CP 024H
+ RET NZ
+ LD C,003H
+ INC HL
+ RET
+
+L74BE: LD HL,0FFFBH
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ ADD HL,DE
+ LD A,B
+ JP L790B
+
+L74C9: LD B,0FFH
+L74CB: INC B
+ LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ RET Z
+ JR L74CB ; (-00aH)
+
+L74D5: LD A,B
+ OR A
+ RET Z
+ CALL LDHLDE
+ EX DE,HL
+ CALL L74E1
+ EX DE,HL
+ RET
+
+L74E1: PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ SBC HL,DE
+ POP HL
+ RET NC
+ JP L4B26
+
+L74ED: LD DE,(INTFAC)
+ PUSH DE
+ JR L74FC ; (+008H)
+
+L74F4: XOR A
+ LD (L76ED),A
+ INC HL
+ LD (L76EB),HL
+L74FC: LD B,000H
+ EXX
+ POP HL
+ PUSH HL
+ PUSH HL
+ LD HL,(L107A)
+ LD DE,L11A4
+ PUSH HL
+ LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ LD B,A
+ CALL L74D5
+ POP DE
+ LD (L107A),HL
+ LD HL,(L1076)
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX (SP),HL
+ PUSH HL
+ EXX
+L751F: POP DE
+ PUSH DE
+ PUSH BC
+ LD BC,(076EBH)
+ LD A,(L76ED)
+ PUSH BC
+ PUSH AF
+ LD BC,(08495H)
+ PUSH BC
+ CALL L6E4D
+ BIT 7,D
+ JP NZ,04AECH
+ EX AF,AF'
+ POP BC
+ LD (08495H),BC
+ POP AF
+ LD (L76ED),A
+ POP BC
+ LD (076EBH),BC
+ EX AF,AF'
+ INC HL
+ CP 029H
+ JR Z,L7565 ; (+018H)
+ CP 02CH
+ JP NZ,L4AE6
+ POP BC
+ INC B
+ LD A,B
+ CP 004H
+ JP NC,04AECH
+ EXX
+ POP HL
+ POP DE
+ EXX
+ PUSH DE
+ EXX
+ PUSH DE
+ PUSH HL
+ EXX
+ JR L751F ; (-046H)
+
+L7565: POP BC
+ EXX
+ POP HL
+ POP DE
+ EXX
+ INC B
+ PUSH DE
+ PUSH HL
+ EXX
+ LD HL,(L1076)
+ ADD HL,DE
+ LD B,(HL)
+ INC B
+ LD DE,L11A4
+ CALL LDDEHL
+ EXX
+ SET 7,C
+ CALL L77AF
+ RES 7,C
+ JR NC,L75DA ; (+056H)
+ LD A,B
+ CP (HL)
+ JP NZ,04AF8H
+ INC HL
+ EX DE,HL
+ POP HL
+ LD (L8495),HL
+ EXX
+ LD HL,L0000
+ EXX
+ EX DE,HL
+L7595: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX (SP),HL
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C1
+ EXX
+ PUSH HL
+ OR A
+ SBC HL,DE
+ JP NC,04AECH
+ EXX
+ POP DE
+ CALL L76BD
+ EXX
+ POP HL
+ DJNZ L7595 ; (-01cH)
+ PUSH HL
+ EXX
+ LD A,C
+ LD D,B
+ BIT 6,A
+ JR NZ,L75CD ; (+014H)
+ AND 00FH
+ LD E,A
+ PUSH AF
+ CALL L76C1
+ PUSH HL
+ EXX
+ POP BC
+ POP AF
+ POP HL
+ ADD HL,BC
+ LD C,L
+ LD B,H
+L75C8: LD HL,(L8495)
+ POP DE
+ RET
+
+L75CD: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD C,L
+ LD B,H
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ AND 00FH
+ JR L75C8 ; (-012H)
+
+L75DA: EXX
+ LD A,(L76ED)
+ OR A
+ JP Z,04AECH
+ POP HL
+ LD (L8495),HL
+ EXX
+ LD DE,(TMPEND)
+ LD L,B
+ LD H,000H
+ ADD HL,HL
+ ADD HL,DE
+ EX DE,HL
+ INC DE
+ CALL L74E1
+ LD (HL),B
+ INC HL
+ EXX
+ LD HL,00001H
+ EXX
+L75FC: POP DE
+ LD A,(L76ED)
+ OR A
+ JR NZ,L760F ; (+00cH)
+ PUSH HL
+ EX DE,HL
+ LD DE,0000AH
+ SCF
+ SBC HL,DE
+ JP NC,04AECH
+ POP HL
+L760F: INC DE
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C1
+ EXX
+ DJNZ L75FC ; (-021H)
+ DB 059H
+ LD D,000H
+ PUSH BC
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C1
+ PUSH HL
+ EXX
+ POP BC
+ PUSH BC
+ EX DE,HL
+ LD HL,(L107A)
+ LD L,(HL)
+ LD H,000H
+ ADD HL,HL
+ LD A,(L11A4)
+ ADD A,005H
+ ADD A,L
+ LD L,A
+ LD A,000H
+ ADC A,H
+ LD H,A
+ JR C,L7645 ; (+005H)
+ ADD HL,BC
+ JR C,L7645 ; (+002H)
+ PUSH HL
+ ADD HL,DE
+L7645: JP C,L4B26
+ EX DE,HL
+ CALL L74E1
+ PUSH HL
+ EXX
+ POP HL
+ LD BC,(STRST)
+ DEC BC
+ OR A
+ SBC HL,BC
+ PUSH HL
+ EXX
+ POP BC
+ LDDR
+ POP DE
+ RST 018H
+ DB 01AH
+ POP BC
+ PUSH DE
+ EXX
+ POP DE
+ LD H,B
+ LD L,C
+ POP BC
+ LD A,C
+ OR 080H
+ LD (HL),A
+ INC HL
+ DEC DE
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,L11A4
+ LD A,(DE)
+ INC A
+ LD B,A
+ CALL LDHLDE
+ LD DE,(TMPEND)
+ LD A,(DE)
+ LD (HL),A
+ INC HL
+ INC DE
+ ADD A,A
+ LD B,A
+ CALL LDHLDE
+ PUSH HL
+ EXX
+ POP HL
+L7689: XOR A
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L7689 ; (-008H)
+ LD (HL),A
+ EXX
+ POP DE
+ LD A,(L76ED)
+ OR A
+ JR Z,L769E ; (+004H)
+ LD HL,(L8495)
+ RET
+
+L769E: LD HL,(L76EB)
+ PUSH DE
+ JP L74FC
+
+L76A5: LD A,0FFH
+ LD (L76ED),A
+L76AA: CALL L748E
+ LD A,(HL)
+ CALL L5E79
+ CALL L74ED
+ CALL HLFTCH
+ CP 02CH
+ RET NZ
+ INC HL
+ JR L76AA ; (-013H)
+
+L76BD: ADD HL,DE
+ RET NC
+ JR L76E8 ; (+027H)
+
+L76C1: PUSH BC
+ EX DE,HL
+ LD C,L
+ LD A,H
+ LD HL,L0000
+ CALL L76D1
+ LD A,C
+ CALL L76D1
+ POP BC
+ RET
+
+L76D1: OR A
+ JR Z,L76E2 ; (+00eH)
+ LD B,008H
+L76D6: ADD HL,HL
+ JR C,L76E8 ; (+00fH)
+ RLCA
+ JR NC,L76DF ; (+003H)
+ ADD HL,DE
+ JR C,L76E8 ; (+009H)
+L76DF: DJNZ L76D6 ; (-00bH)
+ RET
+
+L76E2: LD A,H
+ LD H,L
+ LD L,000H
+ OR A
+ RET Z
+L76E8: JP 04AECH
+
+L76EB: NOP
+ NOP
+L76ED: NOP
+L76EE: SUB 041H
+ CP 01AH
+ JP NC,L4AE6
+ LD BC,(07921H)
+ LD A,B
+ OR C
+ JR NZ,L770F ; (+012H)
+ CALL L743B
+L7700: PUSH DE
+ PUSH HL
+ LD L,C
+ LD H,B
+ LD B,A
+ LD C,A
+ CALL LDDEHL
+ POP HL
+ LD A,C
+ POP DE
+ JP L7095
+
+L770F: PUSH DE
+ CALL L748E
+ PUSH HL
+ INC B
+ LD DE,L11A4
+ LD HL,(L107A)
+ CALL L74D5
+ LD B,000H
+ LD HL,(L7921)
+ CALL HLFTCH
+ CP QDPC
+ JR Z,L7759 ; (+02fH)
+ CP 028H
+ JR NZ,L7756 ; (+028H)
+L772E: INC HL
+ INC B
+ PUSH BC
+ CALL L748E
+ LD A,C
+ POP DE
+ CP E
+ LD C,E
+ JR NZ,L774B ; (+011H)
+ PUSH DE
+ LD C,B
+ INC C
+ PUSH HL
+ LD HL,(L107A)
+ LD DE,L11A4
+ CALL L794C
+ POP HL
+ POP BC
+ JR Z,L776F ; (+024H)
+L774B: CALL HLFTCH
+ CP 029H
+ JR Z,L7759 ; (+007H)
+ CP 02CH
+ JR Z,L772E ; (-028H)
+L7756: JP L4AE6
+
+L7759: LD HL,(L107A)
+ LD DE,L11A4
+ LD A,(HL)
+ LD (DE),A
+ LD B,A
+L7762: INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ DJNZ L7762 ; (-006H)
+ POP HL
+ POP DE
+ CALL L77AB
+ JR L7700 ; (-06fH)
+
+L776F: LD HL,(L7923)
+ CALL L5E76
+ DEC B
+ JR Z,L7790 ; (+018H)
+ DEC HL
+L7779: PUSH BC
+L777A: CALL L5198
+ CALL L414A
+ JP Z,L4AE6
+ CP 029H
+ JP Z,L4AE6
+ CP 02CH
+ JR NZ,L777A ; (-012H)
+ POP BC
+ DJNZ L7779 ; (-016H)
+ INC HL
+L7790: EX DE,HL
+ POP HL
+ EX (SP),HL
+ EX DE,HL
+ LD BC,(07921H)
+ PUSH BC
+ LD BC,L0000
+ LD (07921H),BC
+ CALL L6E94
+ POP HL
+ LD (L7921),HL
+ POP HL
+ JP HLFTCH
+
+L77AB: PUSH DE
+ JP L743F
+
+L77AF: LD HL,(L1074)
+L77B2: LD DE,L11A4
+ LD A,(HL)
+ OR A
+ RET Z
+ CP 040H
+ JR NC,L77E3 ; (+027H)
+ CP C
+ JR NZ,L77D8 ; (+019H)
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77D6 ; (+012H)
+ LD B,A
+L77C5: INC DE
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77D0 ; (+005H)
+ DJNZ L77C5 ; (-008H)
+ INC HL
+ SCF
+ RET
+
+L77D0: INC HL
+ DJNZ L77D0 ; (-003H)
+ LD A,C
+ JR L77DD ; (+007H)
+
+L77D6: LD A,C
+ DEC HL
+L77D8: AND 00FH
+ INC HL
+ ADD A,(HL)
+ INC HL
+L77DD: LD E,A
+ LD D,000H
+ ADD HL,DE
+ JR L77B2 ; (-031H)
+
+L77E3: CP C
+ JR Z,L77FA ; (+014H)
+ INC HL
+L77E7: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ ADD HL,DE
+ JR L77B2 ; (-03cH)
+
+L77EE: LD A,C
+ SUB B
+ CPL
+ LD C,A
+ LD B,0FFH
+ ADD HL,BC
+ POP BC
+L77F6: DEC HL
+ DEC HL
+ JR L77E7 ; (-013H)
+
+L77FA: LD A,(HL)
+ EXX
+ LD C,A
+ LD B,000H
+ EXX
+ INC HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ POP DE
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77F6 ; (-018H)
+ PUSH BC
+ LD B,A
+ LD C,A
+L7811: INC HL
+ INC DE
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77EE ; (-029H)
+ DJNZ L7811 ; (-008H)
+ INC HL
+ POP BC
+ SCF
+ RET
+
+L781D: CALL L748E
+ SET 6,C
+ PUSH HL
+ CALL L77AF
+ JP C,04AF8H
+ LD (HL),C
+ EX (SP),HL
+ PUSH HL
+ DEC HL
+L782D: CALL L5198
+ OR A
+ JR Z,L7837 ; (+004H)
+ CP 03AH
+ JR NZ,L782D ; (-00aH)
+L7837: POP DE
+ PUSH HL
+ INC HL
+ SBC HL,DE
+ LD A,(L11A4)
+ ADD A,004H
+ LD C,A
+ LD B,000H
+ LD A,L
+ ADD HL,BC
+ LD B,A
+ PUSH HL
+ EXX
+ POP BC
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,L0000
+ ADD HL,SP
+ LD DE,(TMPEND)
+ DEC H
+ OR A
+ SBC HL,DE
+ LD A,00CH
+ JP C,L4B28
+ POP BC
+ POP DE
+ POP HL
+ LD HL,(L107A)
+ PUSH HL
+ ADD HL,BC
+ EX (SP),HL
+ PUSH HL
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ POP HL
+ POP DE
+ LDDR
+ POP DE
+ RST 018H
+ DB 01AH
+ DEC DE
+ POP HL
+ EX (SP),HL
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,L11A4
+ LD A,(DE)
+ LD (HL),A
+ LD B,A
+L7887: INC DE
+ INC HL
+ LD A,(DE)
+ LD (HL),A
+ DJNZ L7887 ; (-006H)
+ INC HL
+ PUSH HL
+ EXX
+ POP HL
+ CALL LDHLDE
+ LD (HL),000H
+ POP HL
+ RET
+
+ PUSH DE
+ CALL L748E
+ POP IX
+ PUSH BC
+ SET 6,C
+ LD DE,(07923H)
+ LD (L7923),HL
+ PUSH DE
+ CALL L77AF
+ JP NC,04B04H
+ LD DE,(07921H)
+ LD (L7921),HL
+ PUSH DE
+ PUSH IX
+ DEC HL
+L78BA: CALL L5198
+ CALL L414A
+ JP Z,L4AE6
+ CP QDPC
+ JR NZ,L78BA ; (-00dH)
+ INC HL
+ POP DE
+ PUSH DE
+ CALL L6E94
+ POP DE
+ LD HL,(L7923)
+ POP BC
+ LD (07921H),BC
+ POP BC
+ LD (07923H),BC
+ EX DE,HL
+ POP BC
+ LD A,C
+ CALL L790B
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ CALL HLFTCH
+ CP 028H
+ RET NZ
+ PUSH DE
+ LD B,001H
+L78EF: PUSH BC
+ CALL L5198
+ POP BC
+ CALL L414D
+ JP Z,L4AE6
+ CP 028H
+ JR NZ,L78FF ; (+001H)
+ INC B
+L78FF: CP 029H
+ JR NZ,L78EF ; (-014H)
+ DJNZ L78EF ; (-016H)
+ INC HL
+ CALL HLFTCH
+ POP DE
+ RET
+
+L790B: CP 003H
+ JR NZ,L7918 ; (+009H)
+L790F: LD A,(L84C7)
+ CP 003H
+ RET Z
+ JP 04AEFH
+
+L7918: LD A,(L84C7)
+ CP 003H
+ RET NZ
+ JP 04AEFH
+
+L7921: NOP
+ NOP
+L7923: NOP
+ NOP
+ PUSH HL
+ CALL L60B5
+ LD A,H
+ OR A
+ JP NZ,04AECH
+ LD A,L
+ CP 008H
+ JP NC,04AECH
+ RST 018H
+ DB 012H
+ POP HL
+ JR C,L7947 ; (+00eH)
+ JR Z,L7947 ; (+00cH)
+ LD DE,0FFFFH
+L793E: CALL L5E97
+ LD A,005H
+ LD (L84C7),A
+ RET
+
+L7947: LD E,A
+ LD D,000H
+ JR L793E ; (-00eH)
+
+L794C: LD A,(DE)
+ CP (HL)
+ RET NZ
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD B,C
+L7953: LD A,(DE)
+ CP (HL)
+ JR NZ,L795C ; (+005H)
+ INC DE
+ INC HL
+ DJNZ L7953 ; (-008H)
+ XOR A
+L795C: POP HL
+ POP DE
+ POP BC
+ RET
+
+L7960: PUSH HL
+ LD B,005H
+ CALL ?CLRHL
+ POP HL
+ RET
+
+L7968: CALL L7918
+L796B: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ LD A,(HL)
+ XOR 080H
+ LD (HL),A
+ DEC HL
+ RET
+
+L7975: CALL L7918
+ LD C,A
+ LD A,080H
+ JP L7988
+
+L797E: LD A,(L84C7)
+ CP 003H
+ JP Z,L79D2
+ LD C,A
+ XOR A
+L7988: LD (L7D82),HL
+ PUSH DE
+ PUSH HL
+ LD (07D85H),SP
+ INC HL
+ INC DE
+ LD B,(HL)
+ XOR (HL)
+ EX DE,HL
+ XOR (HL)
+ DEC HL
+ DEC DE
+ EX DE,HL
+ RLCA
+ LD A,B
+ LD (L7D84),A
+ JP C,L7A93
+ XOR A
+ CP (HL)
+ JP Z,L79C7
+ LD A,(DE)
+ OR A
+ JR Z,L79AF ; (+004H)
+ SUB (HL)
+ JP L7AD6
+
+L79AF: LD SP,(07D85H)
+ POP HL
+ POP DE
+ EI
+ LD A,(HL)
+ OR A
+ JP Z,L7E7F
+ LD A,(L7D84)
+ AND 080H
+ INC HL
+ RES 7,(HL)
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ RET
+
+L79C7: LD B,000H
+ LD A,005H
+ LD C,A
+ EX DE,HL
+ LDIR
+ JP L79AF
+
+L79D2: LD B,(HL)
+ LD A,(DE)
+ ADD A,B
+ JP C,04AF2H
+ LD C,A
+ PUSH DE
+ PUSH HL
+ PUSH DE
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ EX DE,HL
+ LD HL,(L107A)
+ CALL L74D5
+ EX (SP),HL
+ LD B,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ EX DE,HL
+ POP HL
+ CALL L74D5
+ LD A,C
+ LD DE,(TMPEND)
+ LD BC,(STRST)
+ EX DE,HL
+ OR A
+ SBC HL,BC
+ EX DE,HL
+ LD (L107A),HL
+ POP HL
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ DEC HL
+ DEC HL
+ POP DE
+ RET
+
+L7A15: LD A,(L84C7)
+ CP 003H
+ JR NZ,L7A50 ; (+034H)
+ PUSH DE
+ PUSH HL
+ LD A,(DE)
+ OR (HL)
+ JR Z,L7A4D ; (+02bH)
+ LD A,(DE)
+ CP (HL)
+ JR C,L7A27 ; (+001H)
+ LD A,(HL)
+L7A27: OR A
+ JR Z,L7A47 ; (+01dH)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ EX DE,HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ ADD HL,BC
+ EX DE,HL
+ LD B,A
+ OR A
+ JR Z,L7A4D ; (+00eH)
+L7A3F: LD A,(DE)
+ CP (HL)
+ JR NZ,L7A4D ; (+00aH)
+ INC DE
+ INC HL
+ DJNZ L7A3F ; (-008H)
+L7A47: POP DE
+ POP HL
+ LD A,(DE)
+ CP (HL)
+ EX DE,HL
+ RET
+
+L7A4D: POP HL
+ POP DE
+ RET
+
+L7A50: INC DE
+ INC HL
+ LD A,(DE)
+ DEC DE
+ XOR (HL)
+ RLCA
+ JR NC,L7A5C ; (+004H)
+ LD A,(HL)
+ DEC HL
+ RLCA
+ RET
+
+L7A5C: LD A,(HL)
+ DEC HL
+ RLCA
+ JR NC,L7A67 ; (+006H)
+ CALL L7A67
+ RET Z
+ CCF
+ RET
+
+L7A67: PUSH DE
+ PUSH HL
+ EX DE,HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L7A88 ; (+01aH)
+ INC DE
+ INC HL
+ LD A,(HL)
+ OR 080H
+ LD B,A
+ LD A,(DE)
+ OR 080H
+ CP B
+ JR NZ,L7A88 ; (+00eH)
+ LD A,(L84C7)
+ LD B,A
+ DEC B
+ DEC B
+L7A80: INC DE
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L7A88 ; (+002H)
+ DJNZ L7A80 ; (-008H)
+L7A88: POP HL
+ POP DE
+ RET
+
+L7A8B: POP HL
+ PUSH HL
+ CALL L7960
+ JP L79AF
+
+L7A93: CALL L7A67
+ JR Z,L7A8B ; (-00dH)
+ JR NC,L7AA3 ; (+009H)
+ LD A,(L7D84)
+ XOR 080H
+ LD (L7D84),A
+ SCF
+L7AA3: EX AF,AF'
+ LD A,(HL)
+ OR A
+ JP Z,L79C7
+ LD A,(DE)
+ OR A
+ JP Z,L79AF
+ SUB (HL)
+ JR C,L7AB8 ; (+007H)
+ CP 020H
+ JP NC,L79C7
+ JR L7ABF ; (+007H)
+
+L7AB8: NEG
+ CP 020H
+ JP NC,L79AF
+L7ABF: EX AF,AF'
+ JR C,L7AC3 ; (+001H)
+ EX DE,HL
+L7AC3: EX AF,AF'
+ JP L7B5D
+
+L7AC7: LD SP,(07D85H)
+ EI
+ POP HL
+ POP DE
+ LD A,(07D8CH)
+ OR A
+ JP Z,04AE9H
+ RET
+
+L7AD6: JR NC,L7AE2 ; (+00aH)
+ NEG
+ CP 020H
+ JP NC,L79AF
+ EX DE,HL
+ JR L7AE7 ; (+005H)
+
+L7AE2: CP 020H
+ JP NC,L79C7
+L7AE7: CALL L7B1D
+ LD A,H
+ EXX
+ ADC A,H
+ EXX
+ LD H,A
+ LD A,L
+ EXX
+ ADC A,L
+ EXX
+ LD L,A
+ LD A,D
+ EXX
+ ADC A,D
+ EXX
+ LD D,A
+ LD A,E
+ EXX
+ ADC A,E
+ EXX
+ JR NC,L7B0A ; (+00bH)
+ RRA
+ RR D
+ RR L
+ RR H
+ INC C
+ JP Z,L7AC7
+L7B0A: LD E,A
+ LD A,C
+ EXX
+ LD BC,00005H
+ LD HL,(L7D82)
+ LD (HL),A
+ ADD HL,BC
+ DI
+ LD SP,HL
+ EXX
+ PUSH HL
+ PUSH DE
+ JP L79AF
+
+L7B1D: DI
+ LD (07D87H),SP
+ EX AF,AF'
+ INC HL
+ LD SP,HL
+ EXX
+ POP DE
+ SET 7,E
+ POP HL
+ OR A
+L7B2B: EX AF,AF'
+ CP 008H
+ JR C,L7B3C ; (+00cH)
+ SUB 008H
+ EX AF,AF'
+ RL H
+ LD H,L
+ LD L,D
+ LD D,E
+ LD E,000H
+ JR L7B2B ; (-011H)
+
+L7B3C: OR A
+ JR Z,L7B4D ; (+00eH)
+L7B3F: EX AF,AF'
+ OR A
+ RR E
+ RR D
+ RR L
+ RR H
+ EX AF,AF'
+ DEC A
+ JR NZ,L7B3F ; (-00eH)
+L7B4D: EXX
+ EX DE,HL
+ LD C,(HL)
+ INC HL
+ LD SP,HL
+ POP DE
+ SET 7,E
+ POP HL
+ EX AF,AF'
+ LD SP,(07D87H)
+ EI
+ RET
+
+L7B5D: CP 020H
+ JP NC,L79AF
+ CALL L7B1D
+ LD A,H
+ EXX
+ SBC A,H
+ EXX
+ LD H,A
+ LD A,L
+ EXX
+ SBC A,L
+ EXX
+ LD L,A
+ LD A,D
+ EXX
+ SBC A,D
+ EXX
+ LD D,A
+ LD A,E
+ EXX
+ SBC A,E
+ EXX
+L7B78: OR A
+ JR Z,L7B91 ; (+016H)
+L7B7B: BIT 7,A
+ JR NZ,L7B8D ; (+00eH)
+ RL H
+ RL L
+ RL D
+ RLA
+ DEC C
+ JP NZ,L7B7B
+ JP L7A8B
+
+L7B8D: LD E,A
+ JP L7B0A
+
+L7B91: LD A,C
+ SUB 008H
+ LD C,A
+ LD A,D
+ LD D,L
+ LD L,H
+ LD H,000H
+ JR Z,L7B9E ; (+002H)
+ JR NC,L7B78 ; (-026H)
+L7B9E: JP L7A8B
+
+L7BA1: LD C,A
+L7BA2: INC HL
+ INC DE
+ LD A,(DE)
+ XOR (HL)
+ LD (L7D84),A
+ DEC HL
+ DEC DE
+ RET
+
+L7BAC: CALL L7918
+ CALL L7BA1
+ PUSH DE
+ PUSH HL
+ LD (07D85H),SP
+ LD A,(HL)
+ OR A
+ JP Z,L7A8B
+ LD A,(DE)
+ OR A
+ JP Z,L7A8B
+ INC DE
+ PUSH DE
+ POP IX
+ ADD A,(HL)
+ LD E,A
+ LD A,000H
+ ADC A,A
+ LD D,A
+ LD (07D8AH),DE
+ INC HL
+ XOR A
+ LD (L7D89),A
+ LD D,(HL)
+ SET 7,D
+ INC HL
+ LD E,(HL)
+ INC HL
+ PUSH HL
+ LD H,A
+ LD L,A
+ EXX
+ POP HL
+ LD D,(HL)
+ INC HL
+ LD E,(HL)
+ LD B,A
+ LD C,A
+ LD H,A
+ LD L,A
+ EXX
+ LD A,(IX+000H)
+ OR 080H
+ LD C,004H
+L7BEF: LD B,008H
+ OR A
+ JP Z,L7C84
+L7BF5: RLCA
+ JR NC,L7C0A ; (+012H)
+ EX AF,AF'
+ EXX
+ LD A,C
+ ADD A,B
+ LD C,A
+ ADC HL,DE
+ EXX
+ ADC HL,DE
+ JR NC,L7C09 ; (+005H)
+ LD A,001H
+ LD (L7D89),A
+L7C09: EX AF,AF'
+L7C0A: SRL D
+ RR E
+ EXX
+ RR D
+ RR E
+ RR B
+ EXX
+ DJNZ L7BF5 ; (-023H)
+L7C18: INC IX
+ LD A,(IX+000H)
+ DEC C
+ JR NZ,L7BEF ; (-031H)
+ EXX
+ LD A,(L7D89)
+ OR A
+ JR Z,L7C3D ; (+016H)
+ LD DE,(07D8AH)
+ INC DE
+ LD (07D8AH),DE
+ EXX
+ SCF
+ RR H
+ RR L
+ EXX
+ RR H
+ RR L
+ RR C
+L7C3D: BIT 7,C
+ JR Z,L7C5B ; (+01aH)
+ LD DE,00001H
+ ADD HL,DE
+ EXX
+ LD DE,L0000
+ ADC HL,DE
+ EXX
+ JR NC,L7C5B ; (+00dH)
+ LD DE,(07D8AH)
+ INC DE
+ LD (07D8AH),DE
+ EXX
+ LD H,080H
+ EXX
+L7C5B: POP IX
+ PUSH IX
+ LD (IX+004H),L
+ LD (IX+003H),H
+ EXX
+ LD (IX+002H),L
+ LD (IX+001H),H
+ LD HL,(07D8AH)
+ OR A
+ LD DE,L0081
+ SBC HL,DE
+ LD A,H
+ ADD A,000H
+ JP M,L7C90
+ JP NZ,L7AC7
+ LD (IX+000H),L
+ JP L79AF
+
+L7C84: LD A,E
+ EXX
+ LD B,E
+ LD E,D
+ LD D,A
+ EXX
+ LD E,D
+ LD D,000H
+ JP L7C18
+
+L7C90: LD SP,(07D85H)
+ JP L7A8B
+
+L7C97: CALL L7918
+ CALL L7BA1
+ PUSH DE
+ PUSH HL
+ LD (07D85H),SP
+ LD A,(DE)
+ OR A
+ JP Z,04AE9H
+ EX AF,AF'
+ LD A,(HL)
+ OR A
+ JP Z,L7A8B
+ EXX
+ ADD A,081H
+ LD B,A
+ LD A,000H
+ ADC A,A
+ EX AF,AF'
+ LD C,A
+ LD A,B
+ SUB C
+ LD C,A
+ EX AF,AF'
+ LD B,A
+ EX AF,AF'
+ LD A,B
+ SBC A,000H
+ JP C,L7C90
+ JP NZ,L7AC7
+ LD A,C
+ PUSH AF
+ EXX
+ INC DE
+ INC HL
+ LD B,(HL)
+ SET 7,B
+ INC HL
+ LD C,(HL)
+ INC HL
+ PUSH HL
+ EX DE,HL
+ LD D,(HL)
+ SET 7,D
+ INC HL
+ LD E,(HL)
+ INC HL
+ PUSH HL
+ LD H,B
+ LD L,C
+ EXX
+ POP HL
+ LD D,(HL)
+ INC HL
+ LD E,(HL)
+ POP HL
+ LD A,(HL)
+ INC HL
+ LD L,(HL)
+ LD H,A
+ EXX
+ LD C,005H
+L7CE9: LD B,008H
+ XOR A
+L7CEC: BIT 7,H
+ JR NZ,L7D00 ; (+010H)
+ OR A
+L7CF1: RLA
+ EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ DJNZ L7CEC ; (-00dH)
+ PUSH AF
+ DEC C
+ JR NZ,L7CE9 ; (-014H)
+ JP L7D3A
+
+L7D00: OR A
+ EXX
+ SBC HL,DE
+ EXX
+ SBC HL,DE
+ CCF
+ JR C,L7CF1 ; (-019H)
+ EXX
+ ADD HL,DE
+ EXX
+ ADC HL,DE
+ OR A
+ RLA
+ EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ DJNZ L7D1F ; (+007H)
+ PUSH AF
+ LD B,008H
+ DEC C
+ JP Z,L7D3A
+L7D1F: EXX
+ OR A
+ SBC HL,DE
+ EXX
+ SBC HL,DE
+ SCF
+ RLA
+ DJNZ L7D30 ; (+006H)
+ PUSH AF
+ LD B,008H
+ DEC C
+ JR Z,L7D3A ; (+00aH)
+L7D30: EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ JR C,L7D1F ; (-018H)
+ JP L7CEC
+
+L7D3A: POP AF
+ LD H,A
+ EXX
+ POP AF
+ LD E,A
+ POP AF
+ LD D,A
+ POP AF
+ LD C,A
+ POP AF
+ LD B,A
+ POP AF
+L7D46: BIT 7,B
+ JR NZ,L7D5D ; (+013H)
+ EXX
+ SLA H
+ EXX
+ RL E
+ RL D
+ RL C
+ RL B
+ DEC A
+ JP NZ,L7D46
+ JP L7A8B
+
+L7D5D: EXX
+ RL H
+ EXX
+ JR NC,L7D74 ; (+011H)
+ LD HL,00001H
+ ADD HL,DE
+ EX DE,HL
+ LD HL,L0000
+ ADC HL,BC
+ LD B,H
+ LD C,L
+ JR NC,L7D74 ; (+003H)
+ LD B,080H
+ INC A
+L7D74: POP HL
+ PUSH HL
+ LD (HL),A
+ INC HL
+ LD (HL),B
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ JP L79AF
+
+L7D82: NOP
+ NOP
+L7D84: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L7D89: NOP
+ NOP
+ NOP
+ NOP
+L7D8D: INC HL
+ BIT 7,(HL)
+ DEC HL
+ RET
+
+L7D92: INC (HL)
+ RET NZ
+ JP 04AE9H
+
+L7D97: LD A,(HL)
+ OR A
+ RET Z
+ DEC (HL)
+ RET NZ
+ JP L7960
+
+L7D9F: PUSH HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ LD HL,(MEMMAX)
+ DEC HL
+ SBC HL,DE
+ JP C,04AF5H
+ POP HL
+ RET
+
+L7DB1: PUSH HL
+ LD (L846A),HL
+ CALL L7D9F
+ EX DE,HL
+ LD (L846C),HL
+ CALL L7D9F
+ EX DE,HL
+ LD (L846E),HL
+ CALL L7D9F
+ LD (08470H),DE
+ POP HL
+ RET
+
+L7DCC: CALL L7918
+ EX DE,HL
+ LD A,(HL)
+ OR A
+ JP Z,L7E2E
+ EX DE,HL
+ LD A,(HL)
+ OR A
+ JP Z,L7960
+ CALL L7D8D
+ JR Z,L7E08 ; (+028H)
+ CALL L796B
+ EX DE,HL
+ PUSH DE
+ PUSH HL
+ LD DE,L84D0
+ CALL L5E91
+ LD HL,L84D0
+ CALL L608B
+ LD A,(HL)
+ OR A
+ JP NZ,04AECH
+ POP HL
+ PUSH HL
+ CALL L60B5
+ BIT 0,L
+ POP DE
+ POP HL
+ JR Z,L7E08 ; (+006H)
+ CALL L7E08
+ JP L796B
+
+L7E08: EX DE,HL
+ LD A,(HL)
+ OR A
+ JR Z,L7E2E ; (+021H)
+ CALL L7D8D
+ JR Z,L7E34 ; (+022H)
+ CALL L796B
+ CALL L7E34
+ PUSH DE
+ PUSH HL
+ LD DE,L84D0
+ CALL L5E8E
+ LD HL,L84D0
+ POP DE
+ CALL L7C97
+ PUSH DE
+ CALL L5E91
+ POP HL
+ POP DE
+ RET
+
+L7E2E: PUSH DE
+ CALL L5E8E
+ POP HL
+ RET
+
+L7E34: PUSH DE
+ LD DE,L84D0
+ CALL L5E91
+ POP HL
+ CALL L8319
+ LD DE,L84D0
+ CALL L7BAC
+ JP L81F5
+
+L7E48: CALL L7918
+ PUSH DE
+ PUSH HL
+ CALL L60B5
+ LD A,L
+ CPL
+ LD E,A
+ LD A,H
+ CPL
+ LD D,A
+ JR L7E79 ; (+021H)
+
+L7E58: LD A,0A2H
+ LD BC,0B23EH
+ LD BC,0AA3EH
+ LD (L7E74),A
+ INC A
+ LD (L7E77),A
+ CALL L7918
+ PUSH DE
+ PUSH HL
+ CALL L60B5
+ EX DE,HL
+ CALL L60B5
+ LD A,H
+L7E74: AND D
+ LD D,A
+ LD A,L
+L7E77: AND E
+ LD E,A
+L7E79: POP HL
+ CALL L5E97
+ POP DE
+ RET
+
+L7E7F: INC HL
+ RES 7,(HL)
+ DEC HL
+ RET
+
+ CALL L7D8D
+ JP Z,L604D
+ CALL L7EA9
+ CALL L604D
+ LD DE,L84D0
+ CALL L7A15
+ RET Z
+L7E97: LD DE,L6110
+ JP L7975
+
+L7E9D: LD DE,L6110
+ JP L797E
+
+L7EA3: LD DE,L6110
+ JP L7A15
+
+L7EA9: PUSH HL
+ PUSH DE
+ LD DE,L84D0
+ CALL L5E91
+ POP DE
+ POP HL
+ RET
+
+L7EB4: CALL L604D
+ EX DE,HL
+ CALL L604D
+ EX DE,HL
+ CALL L7EA9
+ CALL L7C97
+ CALL L604D
+ CALL L7BAC
+ PUSH DE
+ LD DE,L84D0
+ CALL L7975
+ POP DE
+ JP L796B
+
+L7ED3: CALL L604D
+ EX DE,HL
+ CALL L604D
+ EX DE,HL
+ CALL L7C97
+ JP L604D
+
+ LD A,(HL)
+ OR A
+ RET Z
+ CALL L7D8D
+ JP NZ,04AECH
+ CALL L8319
+ CALL L7D97
+ JP L81F5
+
+L7EF3: PUSH HL
+ EX DE,HL
+ CALL L5E8E
+ POP HL
+ POP BC
+ RET
+
+L7EFB: LD A,(HL)
+ LD C,H
+L7EFD: ADD A,B
+ DEC HL
+ PUSH BC
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ PUSH AF
+ CALL L7F10
+ POP AF
+ POP BC
+ RLCA
+ RET NC
+ JP L796B
+
+L7F10: CALL L7EA3
+ JR C,L7F33 ; (+01eH)
+ CALL L7D9F
+ PUSH DE
+ PUSH HL
+ CALL L5E91
+ POP DE
+ PUSH DE
+ CALL L5E8E
+ POP HL
+ POP DE
+ CALL L7C97
+ CALL L7F33
+ LD DE,0818DH
+ CALL L7975
+ JP L7E7F
+
+L7F33: LD A,0FFH
+ LD (L80A9),A
+ LD DE,L7EFB
+ CALL L7A15
+ JR C,07F8FH ; (+04fH)
+ LD DE,L7EFD
+ CALL L7A15
+ PUSH AF
+ CALL L7D9F
+ POP AF
+ PUSH HL
+ PUSH DE
+ CALL L5E91
+ POP HL
+ JR C,L7F67 ; (+014H)
+ CALL L7E9D
+ EX (SP),HL
+ CALL L7975
+ POP DE
+ CALL L7C97
+ CALL 07F8FH
+ LD DE,08192H
+ JP L797E
+
+L7F67: LD DE,L7F8A
+ CALL L7BAC
+ CALL L7E9D
+ EX (SP),HL
+ LD DE,L7F8A
+ CALL L7975
+ POP DE
+ CALL L7C97
+ CALL 07F8FH
+ CALL L7D92
+ LD DE,08192H
+ CALL L797E
+ JP L7D97
+
+L7F8A: LD A,A
+ LD D,H
+ INC DE
+ CALL Z,0C5D0H
+ PUSH HL
+ CALL L7DB1
+ POP HL
+ PUSH HL
+ PUSH DE
+ CALL L5E91
+ POP HL
+ LD E,L
+ LD D,H
+ CALL L7BAC
+ LD DE,(0846EH)
+ POP HL
+ PUSH HL
+ CALL L5E91
+ LD A,(L84C7)
+ DEC A
+ CP 004H
+ LD B,A
+ LD HL,08130H
+ JP Z,L8036
+ LD B,00AH
+ JP L8036
+
+L7FBB: PUSH BC
+ LD A,(HL)
+ OR A
+ JP Z,L7EF3
+ LD DE,0818DH
+ CALL L7975
+ CALL L796B
+ POP BC
+L7FCB: PUSH BC
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ AND 080H
+ CPL
+ LD (L80A9),A
+ DEC HL
+ LD DE,L8183
+ PUSH HL
+ CALL L7A15
+ JR C,L7FE9 ; (+009H)
+ CALL L7C97
+ CALL L608B
+ CALL L7BAC
+L7FE9: LD DE,08188H
+ CALL L7A15
+ JR C,L7FFC ; (+00bH)
+ CALL L7975
+ LD A,(L80A9)
+ XOR 080H
+ LD (L80A9),A
+L7FFC: LD DE,0818DH
+ CALL L7A15
+ JR C,L800D ; (+009H)
+ LD DE,08188H
+ CALL L7975
+ CALL L7E7F
+L800D: CALL L7DB1
+ POP HL
+ PUSH DE
+ LD DE,08192H
+ CALL L7A15
+ JR NC,L807F ; (+065H)
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E91
+ POP HL
+ LD E,L
+ LD D,H
+ CALL L7BAC
+ LD DE,(0846EH)
+ POP HL
+ PUSH HL
+ CALL L5E91
+ LD A,(L84C7)
+ LD B,A
+ LD HL,L80E0
+L8036: PUSH BC
+ PUSH HL
+ LD HL,(L846E)
+ LD DE,(08470H)
+ CALL L7BAC
+ POP HL
+ PUSH HL
+ LD DE,(0846CH)
+ PUSH DE
+ CALL L5E91
+ POP HL
+ LD DE,(0846EH)
+ CALL L7BAC
+ EX DE,HL
+ LD HL,(L846A)
+ CALL L797E
+ POP HL
+ LD DE,00005H
+ ADD HL,DE
+ POP BC
+ DJNZ L8036 ; (-02dH)
+ POP HL
+ POP BC
+ LD A,(L80A9)
+ INC HL
+ XOR (HL)
+ CPL
+ LD (HL),A
+ DEC HL
+ LD A,(L84C7)
+ CP 008H
+ LD A,(HL)
+ JR Z,L807B ; (+006H)
+ CP 05CH
+L8077: RET NC
+ JP L7960
+
+L807B: CP 04DH
+ JR L8077 ; (-008H)
+
+L807F: LD DE,0818DH
+ CALL L7975
+ CALL L7E7F
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E91
+L808E: POP HL
+ LD E,L
+ LD D,H
+ CALL L7BAC
+ LD DE,(0846EH)
+ CALL L5E8E
+L809B: POP DE
+ PUSH DE
+ CALL L5E8E
+ LD A,(L84C7)
+ LD B,A
+ LD HL,L8108
+ JR L8036 ; (-073H)
+
+L80A9: NOP
+ PUSH BC
+ PUSH HL
+ CALL L7D9F
+ EX DE,HL
+ LD (L8472),HL
+ CALL L7D9F
+ LD (08474H),DE
+ POP HL
+ PUSH HL
+ CALL L5E91
+ LD HL,(L8472)
+ EX DE,HL
+ POP HL
+ PUSH HL
+ CALL L5E91
+ LD HL,(08474H)
+L80CB: CALL L7FCB
+ POP DE
+ PUSH DE
+ CALL L5E91
+ LD HL,(L8472)
+ CALL L7FBB
+ EX DE,HL
+ POP HL
+ CALL L7C97
+ POP BC
+ RET
+
+L80E0: LD A,(HL)
+L80E1: XOR D
+ XOR D
+ XOR D
+ XOR E
+ LD A,D
+ EX AF,AF'
+ ADC A,B
+ ADC A,B
+ ADC A,C
+ LD (HL),H
+ RET NC
+ DEC C
+ NOP
+ RET NC
+ LD L,(HL)
+ JR C,L80E1 ; (-011H)
+ DEC E
+ DEC HL
+ LD H,A
+ RST 010H
+L80F6: LD (L402B),A
+ LD H,B
+ JR NC,L808E ; (-06eH)
+ JR NC,L809B ; (-063H)
+ LD E,B
+ RST 010H
+ CCF
+ SBC A,A
+ LD A,(04A50H)
+ SUB (HL)
+ DEC SP
+ ADD A,D
+L8108: ADD A,B
+ ADD A,B
+ NOP
+ NOP
+ NOP
+ LD A,H
+ LD HL,(0AAAAH)
+ XOR E
+ LD (HL),A
+ OR (HL)
+ DEC BC
+ LD H,B
+ OR (HL)
+ LD (HL),C
+ LD D,B
+ DEC C
+ NOP
+ RET NC
+ LD L,E
+ SUB E
+ JP P,0BC7DH
+ LD H,H
+ RRCA
+ HALT
+ RST 000H
+L8125: ADD A,B
+ LD E,H
+ RET
+
+L8128: RES 4,L
+ LD B,(HL)
+ LD D,H
+ LD D,A
+ CCF
+ SBC A,A
+ LD A,(0AA7FH)
+ XOR D
+ XOR D
+ XOR E
+ LD A,(HL)
+ LD C,H
+ CALL Z,0CDCCH
+ LD A,(HL)
+ SUB D
+ LD C,C
+ INC H
+ SUB D
+ LD A,L
+ LD H,E
+ ADC A,(HL)
+ JR C,L8128 ; (-01cH)
+ LD A,L
+ CP D
+ LD L,08BH
+ AND E
+ LD A,L
+ DEC E
+ ADC A,C
+ RET C
+ SBC A,(HL)
+ LD A,L
+ ADC A,B
+ ADC A,B
+ ADC A,B
+ ADC A,C
+ LD A,H
+ LD (HL),B
+ RET P
+ RET P
+ POP AF
+ LD A,H
+ RST 010H
+ SUB H
+ DEC (HL)
+ PUSH HL
+ LD A,H
+ LD B,E
+ INC C
+ JR NC,L8125 ; (-03dH)
+ LD DE,L0000
+ LD A,(HL)
+ OR A
+ JR Z,L8171 ; (+008H)
+ CALL L7D8D
+ INC DE
+ JR Z,L8171 ; (+002H)
+ DEC DE
+ DEC DE
+L8171: CALL L5E97
+ RET
+
+L8175: LD DE,08197H
+ JR L817D ; (+003H)
+
+ LD DE,08188H
+L817D: PUSH BC
+ CALL L7BAC
+ POP BC
+ RET
+
+L8183: ADD A,E
+ LD C,C
+ RRCA
+ JP C,082A2H
+ LD C,C
+ RRCA
+ JP C,L81A2
+ LD C,C
+ RRCA
+ JP C,080A2H
+ LD C,C
+ RRCA
+ JP C,L7BA2
+ LD C,FDPC
+ DEC (HL)
+ INC DE
+ PUSH HL
+ CALL L60B5
+ LD A,000H
+L81A2: CP 040H
+ LD A,(HL)
+ CALL NZ,BREAKX
+ LD E,A
+ LD D,000H
+ POP HL
+ CALL L5E97
+ RET
+
+ LD A,(HL)
+ OR A
+ JR Z,L81B9 ; (+005H)
+ CALL L7D8D
+ JR Z,L81C4 ; (+00bH)
+L81B9: PUSH HL
+ LD HL,L4193
+ LD (L81F3),HL
+ POP HL
+ XOR A
+ LD R,A
+L81C4: PUSH BC
+ LD DE,(081F3H)
+ LD A,R
+ XOR D
+ RRC A
+ RRC A
+ RRC A
+ LD D,A
+ LD A,R
+ XOR E
+ RLC A
+ RLC A
+ LD E,D
+ LD D,A
+ LD (081F3H),DE
+ PUSH HL
+ INC HL
+ RES 7,D
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ INC HL
+ LD A,R
+ LD (HL),A
+ POP HL
+ LD (HL),081H
+ CALL L7E97
+ POP BC
+ RET
+
+L81F3: SUB E
+ LD B,C
+L81F5: PUSH BC
+ LD A,(HL)
+ OR A
+ JP Z,L7EF3
+ INC HL
+ LD A,(HL)
+ LD (L830B),A
+ RES 7,(HL)
+ DEC HL
+ LD DE,L8460
+ CALL L7BAC
+ PUSH HL
+ CALL L7D9F
+ PUSH DE
+ CALL L5E91
+ POP HL
+ CALL L604D
+ PUSH HL
+ CALL L60B5
+ XOR A
+ CP H
+ JP NZ,04AE9H
+ LD A,L
+ LD (L830A),A
+ POP DE
+ POP HL
+ PUSH HL
+ CALL L7975
+ PUSH DE
+ PUSH HL
+ CALL L5E8E
+ POP DE
+ POP HL
+ CALL L7D97
+ EX DE,HL
+ XOR A
+ LD B,008H
+L8236: PUSH BC
+ PUSH AF
+ CALL L7A15
+ JR C,L8244 ; (+007H)
+ CALL L7975
+ POP AF
+ SET 7,A
+ PUSH AF
+L8244: POP AF
+ RLC A
+ EX DE,HL
+ PUSH AF
+ CALL L7D97
+ POP AF
+ EX DE,HL
+ POP BC
+ DJNZ L8236 ; (-01bH)
+ LD (L830C),A
+ PUSH DE
+ LD DE,L8456
+ LD A,(L84C7)
+ BIT 3,A
+ JR NZ,L8262 ; (+003H)
+ LD DE,L845B
+L8262: CALL L7BAC
+ POP DE
+ PUSH DE
+ CALL L5E91
+ POP HL
+ LD A,(L84C7)
+ BIT 3,A
+ JP Z,L82FA
+ CALL L7D92
+ LD DE,L610B
+ CALL L797E
+ CALL L7D97
+ POP DE
+ PUSH DE
+ CALL L7BAC
+ LD DE,L610B
+ CALL L7D97
+ CALL L797E
+ CALL L7D92
+ POP DE
+ PUSH DE
+ CALL L7BAC
+ LD DE,L8451
+ CALL L7BAC
+ CALL L7D92
+ CALL L7E9D
+ CALL L7D97
+ POP DE
+ PUSH DE
+ CALL L7BAC
+ CALL L7E9D
+ POP DE
+ PUSH DE
+ CALL L7BAC
+L82B1: CALL L7E9D
+ EX (SP),HL
+ EX DE,HL
+ PUSH DE
+ CALL L5E8E
+ POP HL
+ LD DE,L8401
+ LD A,(L830C)
+ LD B,008H
+L82C3: RLC A
+ JR NC,L82CE ; (+007H)
+ PUSH AF
+ PUSH BC
+ CALL L7BAC
+ POP BC
+ POP AF
+L82CE: INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ DJNZ L82C3 ; (-012H)
+ LD A,(L830A)
+ ADD A,(HL)
+ JP C,04AE9H
+ LD (HL),A
+ POP DE
+ CALL L7BAC
+ POP BC
+ LD A,(L830B)
+ RLC A
+ RET NC
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ CALL L5E91
+ POP DE
+ PUSH DE
+ CALL L5E8E
+ POP HL
+ POP DE
+ CALL L7C97
+ POP BC
+ RET
+
+L82FA: POP DE
+ PUSH DE
+ CALL L7BAC
+ LD A,(HL)
+ OR A
+ CALL NZ,L7D97
+ CALL L797E
+ JP L82B1
+
+L830A: NOP
+L830B: NOP
+L830C: NOP
+ PUSH BC
+ CALL L8319
+ LD DE,L83F2
+ CALL L7BAC
+ POP BC
+ RET
+
+L8319: PUSH BC
+ CALL L7D8D
+ JP NZ,04AECH
+ LD A,(HL)
+ OR A
+ JP Z,04AECH
+ SUB 081H
+ LD (L83F1),A
+ LD (HL),081H
+ XOR A
+ LD B,008H
+ LD DE,L8401
+L8332: PUSH BC
+ PUSH AF
+ CALL L7A15
+ JR C,L8348 ; (+00fH)
+ PUSH HL
+ LD HL,00028H
+ ADD HL,DE
+ EX DE,HL
+ EX (SP),HL
+ CALL L7BAC
+ POP DE
+ POP AF
+ SET 7,A
+ PUSH AF
+L8348: POP AF
+ RLC A
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ POP BC
+ DJNZ L8332 ; (-021H)
+ DB 022H
+ LD L,D
+ ADD A,H
+ CALL L7D9F
+ EX DE,HL
+ LD E,A
+ LD D,000H
+ CALL L5E97
+ LD A,(HL)
+ OR A
+ JR Z,L8367 ; (+003H)
+ SUB 008H
+ LD (HL),A
+L8367: LD A,(L83F1)
+ CP 080H
+ JR C,L8370 ; (+002H)
+ NEG
+L8370: PUSH HL
+ CALL L7D9F
+ EX DE,HL
+ LD (L846C),HL
+ LD E,A
+ LD D,000H
+ CALL L5E97
+ LD A,(L83F1)
+ AND 080H
+ INC HL
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ EX DE,HL
+ POP HL
+ CALL L797E
+ LD A,(L84C7)
+ LD DE,08465H
+ CP 005H
+ JR Z,L8399 ; (+003H)
+ LD DE,L8456
+L8399: CALL L7BAC
+ PUSH HL
+ LD DE,(0846CH)
+ LD HL,(L846A)
+ PUSH HL
+ PUSH DE
+ CALL L5E91
+ POP HL
+ CALL L7E9D
+ EX (SP),HL
+ CALL L7975
+ POP DE
+ CALL L7C97
+ PUSH DE
+ CALL L5E91
+ POP HL
+ PUSH DE
+ LD E,L
+ LD D,H
+ CALL L7BAC
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E91
+ POP HL
+ LD DE,L83FC
+ CALL L797E
+ EX DE,HL
+ POP HL
+ CALL L7BAC
+ LD DE,L610B
+ CALL L7D92
+ CALL L797E
+ CALL L7D97
+ EX DE,HL
+ LD HL,(L846A)
+ CALL L7BAC
+ LD DE,L83F7
+ CALL L7BAC
+ POP DE
+ CALL L797E
+ POP BC
+ RET
+
+L83F1: NOP
+L83F2: LD A,A
+ LD E,(HL)
+ LD E,E
+ RET C
+ XOR C
+L83F7: LD A,A
+ LD C,H
+ CALL Z,0CDCCH
+L83FC: ADD A,C
+ LD D,L
+ LD D,L
+ LD D,L
+ LD D,(HL)
+L8401: ADD A,C
+ DEC (HL)
+ INC B
+ DI
+ INC (HL)
+ ADD A,C
+ JR L8440 ; (+037H)
+
+ RET P
+ LD D,D
+ ADD A,C
+ DEC BC
+L840D: SUB L
+ POP BC
+ CALL PO,00581H
+ XOR D
+ JP 08168H
+
+ LD (BC),A
+ CALL 09986H
+ ADD A,C
+ LD BC,0D164H
+ CALL P,L0081
+ OR C
+ IN D,(C)
+ ADD A,C
+ NOP
+ LD E,B
+ RST 010H
+ OUT (080H),A
+ DEC (HL)
+ INC B
+ DI
+ INC (HL)
+ ADD A,B
+ LD D,A
+ LD B,H
+ CALL M,L80CB
+ LD L,D
+ RET NZ
+ ADD A,0E8H
+ ADD A,B
+ LD (HL),L
+ DEC H
+ LD A,L
+ LD D,080H
+ LD A,D
+ ADD A,E
+L8440: OR D
+ CALL C,07D80H
+ LD A,00CH
+ DEC C
+ ADD A,B
+ LD A,(HL)
+ SBC A,(HL)
+ LD DE,0805DH
+ LD A,A
+ LD C,(HL)
+ BIT 3,D
+L8451: LD A,D
+ EX AF,AF'
+ ADC A,B
+ ADC A,B
+ ADC A,C
+L8456: ADD A,B
+ LD SP,L1772
+ RET M
+L845B: ADD A,B
+ LD SP,L1772
+ RET M
+L8460: ADD A,C
+ JR C,L840D ; (-056H)
+ DEC SP
+ LD HL,(03180H)
+ LD (HL),D
+ RLA
+ RET M
+L846A: DS 2, 000H
+L846C: DS 2, 000H
+L846E: DS 4, 000H
+L8472: DS 4, 000H
+L8476: DS 2, 000H
+L8478: DS 2, 000H
+L847A: DS 2, 000H
+L847C: DS 2, 000H
+L847E: DB 000H
+L847F: DB 000H
+L8480: DS 2, 000H
+L8482: DS 2, 000H
+L8484: DS 4, 000H
+L8488: DB 000H
+L8489: DS 2, 000H
+ DB 015H
+ DB 000H
+ DB EM_P1
+ DB 0FFH
+ DS 2, 000H
+L8491: DS 2, 000H
+L8493: DS 2, 000H
+L8495: DS 7, 000H
+L849C: DB 000H
+L849D: DS 3, 000H
+L84A0: DB 000H
+L84A1: DS 4, 000H
+L84A5: DB 000H
+L84A6: DS 8, 000H
+L84AE: DS 25, 000H
+L84C7: DB 008H ; Splash screen / banner text
+L84C8: DS 8, 000H
+L84D0: DS 8, 000H
+L84D8: DS 8, 000H
+L84E0: DB 016H
+ DB 00DH
+ DB 020H
+ DS 38, 0D7H
+ DS 2, 020H
+ DB 044H,005H,"ISK ",006H,042H,005H,"ASIC INTERPRETER ",006H,"MZ-2Z"
+ DS 2, 030H
+ DB 039H
+L852E: DS 2, 020H
+ DB "V1.0L ",00DH
+ DS 3, 020H
+ DB 043H,005H,"OPYRIGHT ",006H,"(C) 1984 ",005H,"BY ",006H,"SHARP ",005H,"CORP."
+ DS 5, 020H
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB LSSCR
+ DB 020H,00DH," 28284 ",005H,"BYTES FR"
+ DS 2, 045H
+ DS 2, 00DH
+ DS 93, 000H
+; ===========================================================================
+; RFS (ROM Filing System) support for MZ-2Z009E Disk BASIC
+; Version 1.0B - March 2026
+; (c) 2026 Philip Smart
+;
+; Provides SD card file access via the RFS hardware interface.
+; Device name: RF (e.g. DIR RF1:, LOAD RF1:"filename", SAVE RF1:"filename")
+; ===========================================================================
+
+; ---------------------------------------------------------------------------
+; $RFS Device Descriptor (29 bytes + 22 bytes state area = 51 bytes)
+; Inserted into device chain: $QD → $RFS → $USR
+; ---------------------------------------------------------------------------
+$RFS: DW $USR ; Next device = $USR
+ DB "RFS",000H ; Device name "RFS"
+ DB 05FH ; flags1: bit5=1 block device, bit6=1
+ DB 007H ; flags2
+ DB 0FFH ; dirmx: 255 max directory entries
+ DW RFSINIT ; ZINIT handler
+ DW RFSRO ; ZRO handler (file search + header extract)
+ DW RFSWO ; ZWO handler (SAVE: compute SIZE)
+ DW RFSSTRT ; ZCL/ZSTRT handler (open/close)
+ DW 00000H ; ZKL (not used)
+ DW RFSINP_DIR ; ZINP handler (DIR fill + LOAD data)
+ DW RFSOUT ; ZOUT handler (triggers SD write)
+ DW 00000H ; ZDELT (not used)
+ DW RFSDIR ; ZWDIR handler (stub)
+ DW RFSFREE ; ZFREE handler
+; Device state area (22 bytes) - BASIC reads/writes state at descriptor+29.
+RFSSTATE: DS 22, 000H
+
+; ---------------------------------------------------------------------------
+; RFSFREE - Free space query (not supported, return carry)
+; ---------------------------------------------------------------------------
+RFSFREE: XOR A
+ SCF
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSINIT - Initialize RFS device
+; ---------------------------------------------------------------------------
+RFSINIT: XOR A
+ LD (SAVE_PENDING),A
+ LD (DIR_FILLED),A
+ LD (DIR_ENTRY_IDX),A
+ LD A,0FFH
+ LD (DIRSECBUF),A
+ LD A,(ZCH)
+ ADD A,003H
+ LD (SDDRIVENO),A
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSSTRT - Start/Open device (A=0=open, A!=0=close)
+; ---------------------------------------------------------------------------
+RFSSTRT: OR A
+ RET NZ
+ LD A,(ZCH)
+ ADD A,003H
+ LD (SDDRIVENO),A
+ XOR A
+ LD (DIR_ENTRY_IDX),A
+ LD (DIR_FILLED),A ; Reset so next DIR re-enumerates
+ LD A,0FFH
+ LD (DIRSECBUF),A
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSDIR - ZWDIR handler (stub, not called with bit5=1)
+; ---------------------------------------------------------------------------
+RFSDIR: XOR A
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSWO - Write Open (ZWO handler)
+; Calculates SIZE = TEXTED - TEXTST and stores in ELMD20.
+; Actual write is deferred to RFSOUT via SAVE_PENDING flag.
+; ---------------------------------------------------------------------------
+RFSWO: LD HL,(TEXTED)
+ LD DE,(TEXTST)
+ OR A
+ SBC HL,DE
+ LD (ELMD20),HL
+ XOR A
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSOUT - Write Data (ZOUT handler for SAVE)
+; First call triggers RFSDOWRITE; subsequent calls are no-ops.
+; ---------------------------------------------------------------------------
+RFSOUT: LD A,(SAVE_PENDING)
+ OR A
+ JR NZ,RFSOUT_NOP
+ INC A
+ LD (SAVE_PENDING),A
+ JP RFSDOWRITE
+RFSOUT_NOP: XOR A
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSDOWRITE - Actual SD card write
+; ---------------------------------------------------------------------------
+RFSDOWRITE: PUSH HL
+ PUSH DE
+ PUSH BC
+ LD A,(ELMD)
+ CP 002H
+ JR NZ,WO_NONBASIC
+ LD HL,(ELMD20)
+ LD (FILE_SIZE),HL
+ LD HL,(TEXTST)
+ LD (FILE_LOADADDR),HL
+ JR WO_GOTINFO
+WO_NONBASIC:
+ LD HL,(ELMD18)
+ LD (FILE_SIZE),HL
+ LD HL,(ELMD20)
+ LD (FILE_LOADADDR),HL
+WO_GOTINFO:
+ LD A,(ZCH)
+ ADD A,003H
+ LD (SDDRIVENO),A
+ CALL MMIO_ON
+ LD A,0FFH
+ LD (DIRSECBUF),A
+ ; Find free directory entry
+ LD E,000H
+ LD B,000H
+WO_SCAN: PUSH BC
+ PUSH DE
+ CALL GETSDDIRENT
+ POP DE
+ POP BC
+ OR A
+ JP NZ,WO_IOERR
+ LD A,(HL)
+ BIT 7,A
+ JR Z,WO_FOUND
+ INC E
+ DJNZ WO_SCAN
+ JP WO_IOERR
+WO_FOUND: LD A,E
+ LD (SAVE_DIRENT),A
+ ; Calculate start sector: E * 128 + 16
+ LD H,000H
+ LD L,E
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ LD DE,00010H
+ ADD HL,DE
+ LD D,000H
+ LD E,000H
+ CALL RFSGETSECTR
+ CALL SETLBAADDR
+ ; Write file data sector-by-sector
+WO_WLOOP: LD HL,(FILE_SIZE)
+ LD A,H
+ OR L
+ JR Z,WO_WDONE
+ OUT (PORT_DRAM),A
+ LD HL,(FILE_SIZE)
+ LD DE,00200H
+ OR A
+ SBC HL,DE
+ JR C,WO_PARTIAL
+ LD (FILE_SIZE),HL
+ LD BC,00200H
+ JR WO_COPY
+WO_PARTIAL: ADD HL,DE
+ LD B,H
+ LD C,L
+ PUSH BC
+ LD HL,0
+ LD (FILE_SIZE),HL
+ ; Zero-fill SECTORBUF for partial sector
+ LD HL,SECTORBUF
+ LD DE,SECTORBUF + 1
+ PUSH BC
+ LD BC,001FFH
+ LD (HL),000H
+ LDIR
+ POP BC
+ POP BC
+WO_COPY: LD HL,(FILE_LOADADDR)
+ LD DE,SECTORBUF
+ LDIR
+ LD (FILE_LOADADDR),HL
+ OUT (PORT_MMIO),A
+ CALL SD_WRITE
+ OR A
+ JP NZ,WO_IOERR
+ CALL INC_STARTSEC
+ JR WO_WLOOP
+ ; Write directory entry
+WO_WDONE: OUT (PORT_MMIO),A
+ LD A,0FFH
+ LD (DIRSECBUF),A
+ LD A,(SAVE_DIRENT)
+ LD E,A
+ PUSH DE
+ CALL GETSDDIRENT
+ POP DE
+ OR A
+ JP NZ,WO_IOERR
+ ; Fill directory entry
+ LD (HL),080H
+ INC HL
+ ; ATRB: remap type 02 -> 05
+ LD A,(ELMD)
+ CP 002H
+ JR NZ,WO_AT1
+ LD A,005H
+WO_AT1: LD (HL),A
+ INC HL
+ ; NAME: 17 bytes, CR -> null
+ PUSH DE
+ LD DE,ELMD1
+ LD B,17
+WO_NM: LD A,(DE)
+ CP 00DH
+ JR NZ,WO_NM1
+ XOR A
+WO_NM1: LD (HL),A
+ INC HL
+ INC DE
+ DJNZ WO_NM
+ POP DE
+ ; START_SECTOR: 4 bytes
+ PUSH HL
+ LD A,(SAVE_DIRENT)
+ LD H,000H
+ LD L,A
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ LD DE,00010H
+ ADD HL,DE
+ EX DE,HL
+ POP HL
+ LD (HL),000H
+ INC HL
+ LD (HL),000H
+ INC HL
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ INC HL
+ ; SIZE: 2 bytes LE
+ PUSH DE
+ LD A,(ELMD)
+ CP 002H
+ JR NZ,WO_SZ_NB
+ LD DE,(ELMD20)
+ JR WO_SZ_OK
+WO_SZ_NB: LD DE,(ELMD18)
+WO_SZ_OK: LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ ; DTADR: 2 bytes LE
+ LD A,(ELMD)
+ CP 002H
+ JR NZ,WO_DA_NB
+ LD DE,(TEXTST)
+ JR WO_DA_OK
+WO_DA_NB: LD DE,(ELMD20)
+WO_DA_OK: LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ ; EXADR: 2 bytes LE
+ LD DE,(ELMD22)
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ ; RESERVED: 3 bytes zero
+ LD (HL),000H
+ INC HL
+ LD (HL),000H
+ INC HL
+ LD (HL),000H
+ POP DE
+ ; Write directory sector back
+ LD A,(SAVE_DIRENT)
+ SRL A
+ SRL A
+ SRL A
+ SRL A
+ LD DE,0
+ LD H,0
+ LD L,A
+ CALL RFSGETSECTR
+ CALL SETLBAADDR
+ CALL SD_WRITE
+ OR A
+ JR NZ,WO_IOERR
+ CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ XOR A
+ RET
+WO_IOERR: CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ XOR A
+ SCF
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSRO - Read One directory entry (ZRO handler)
+; Each call returns one valid 32-byte MZF directory entry at (HL).
+; ---------------------------------------------------------------------------
+RFSRO: LD (DIR_BUFPTR),HL
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ LD A,(ZCH)
+ ADD A,003H
+ LD (SDDRIVENO),A
+ CALL MMIO_ON
+ LD HL,(DIR_BUFPTR)
+ LD B,32
+RFSRO_CLR: LD (HL),000H
+ INC HL
+ DJNZ RFSRO_CLR
+RFSRO_NEXT:
+ LD A,(DIR_ENTRY_IDX)
+ LD E,A
+ CALL GETSDDIRENT
+ OR A
+ JR NZ,RFSRO_END
+ LD A,(HL)
+ BIT 7,A
+ JR Z,RFSRO_SKIP
+ INC HL
+ LD A,(HL)
+ DEC HL
+ OR A
+ JR Z,RFSRO_SKIP
+ CP 0FFH
+ JR Z,RFSRO_SKIP
+ CALL CONVERT_ENTRY
+ LD A,(DIR_ENTRY_IDX)
+ INC A
+ LD (DIR_ENTRY_IDX),A
+ CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ LD HL,(DIR_BUFPTR)
+ LD A,(HL)
+ OR A
+ RET
+RFSRO_SKIP:
+ LD A,(DIR_ENTRY_IDX)
+ INC A
+ LD (DIR_ENTRY_IDX),A
+ JR Z,RFSRO_END
+ JR RFSRO_NEXT
+RFSRO_END:
+ CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ XOR A
+ SCF
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSINP_DIR - ZINP handler for $RFS device
+; Called via IOCALL from L2FD4 during DIR with A=(ZCH).
+; H >= 28H → identity read; DIR_FILLED=0 → DIR fill; DIR_FILLED=1 → data xfer
+; NOTE: LOAD path calls RFSINP_LD directly (via RFS_LOAD_HOOK), never here.
+; The old A=0 check was wrong: for RFS1 (ZCH=0), DIR accidentally triggered
+; the LOAD path, corrupting BASIC memory and breaking all subsequent LOADs.
+; ---------------------------------------------------------------------------
+RFSINP_DIR:
+ ; Debug: trace every ZINP call — show H register
+ PUSH AF
+ LD A,'Z'
+ OUT (050H),A
+ LD A,H
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ LD A,(ZCH)
+ CALL DBG_HEX
+ CALL DBG_CRLF
+ POP AF
+ ;
+ LD A,H
+ CP 028H
+ JP NC,RFSINP_DISKID
+ LD A,(DIR_FILLED)
+ OR A
+ JP NZ,RFSINP_LD
+ ; DIR mode: enumerate files into 0x2000 buffer
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,L2000
+ LD DE,L2000 + 1
+ LD BC,007FFH
+ LD (HL),000H
+ LDIR
+ LD A,(ZCH)
+ ADD A,003H
+ LD (SDDRIVENO),A
+ LD HL,L2000
+ LD (HL),080H
+ CALL MMIO_ON
+ LD A,0FFH
+ LD (DIRSECBUF),A
+ LD HL,L2000 + 020H
+ LD (DIR_BUFPTR),HL
+ LD E,000H
+ LD D,03FH
+ LD B,000H
+RDIR_LOOP: PUSH BC
+ PUSH DE
+ CALL GETSDDIRENT
+ POP DE
+ POP BC
+ OR A
+ JR NZ,RDIR_DONE
+ LD A,(HL)
+ BIT 7,A
+ JR Z,RDIR_NEXT
+ INC HL
+ LD A,(HL)
+ DEC HL
+ OR A
+ JR Z,RDIR_NEXT
+ CP 0FFH
+ JR Z,RDIR_NEXT
+ PUSH DE
+ PUSH BC
+ CALL CONVERT_ENTRY
+ POP BC
+ POP DE
+ DEC D
+ JR Z,RDIR_DONE
+RDIR_NEXT: INC E
+ DJNZ RDIR_LOOP
+RDIR_DONE: CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ LD A,001H
+ LD (DIR_FILLED),A
+ XOR A
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSINP_DISKID - Identity read: fill L2800-L28FF with zeros except byte 0
+; Byte 0 at L2800 is set to 080H (bit 7 = valid disk marker) so that
+; 02F38H's identity check (LD A,(HL) / OR A / JP P,error) passes.
+; ---------------------------------------------------------------------------
+RFSINP_DISKID:
+ ; Debug: identity read
+ PUSH AF
+ LD A,'I'
+ OUT (050H),A
+ LD A,'D'
+ OUT (050H),A
+ CALL DBG_CRLF
+ POP AF
+ ;
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,02800H
+ LD DE,02801H
+ LD BC,000FFH
+ LD (HL),080H ; Bit 7 set = valid disk marker for 02F38H
+ LDIR
+ POP BC
+ POP DE
+ POP HL
+ XOR A
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSINP_LD - LOAD data transfer from SD card
+; Finds file by name, reads sectors to load address.
+; ---------------------------------------------------------------------------
+RFSINP_LD:
+ ; Debug: LOAD data entry
+ PUSH AF
+ LD A,'L'
+ OUT (050H),A
+ LD A,'D'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ ; Show ELMD[0..7]
+ PUSH HL
+ PUSH BC
+ LD HL,ELMD
+ LD B,008H
+RLD_DMP1: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ RLD_DMP1
+ CALL DBG_CRLF
+ POP BC
+ POP HL
+ POP AF
+ ;
+ LD (RFS_LD_A0),A
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ LD A,(ZCH)
+ ADD A,003H
+ LD (SDDRIVENO),A
+ CALL MMIO_ON
+ LD A,0FFH
+ LD (DIRSECBUF),A
+ LD DE,ELMD1
+ CALL FINDSD
+ JR Z,RLD_FOUND
+ ; Debug: file not found
+ PUSH AF
+ OUT (PORT_DRAM),A
+ LD A,'L'
+ OUT (050H),A
+ LD A,'N'
+ OUT (050H),A
+ CALL DBG_CRLF
+ OUT (PORT_MMIO),A
+ POP AF
+ JP RLD_NFERR
+RLD_FOUND:
+ ; Debug: file found
+ PUSH AF
+ OUT (PORT_DRAM),A
+ LD A,'L'
+ OUT (050H),A
+ LD A,'F'
+ OUT (050H),A
+ CALL DBG_CRLF
+ OUT (PORT_MMIO),A
+ POP AF
+ ; HL = directory entry; skip to START_SECTOR
+ LD DE,19
+ ADD HL,DE
+ ; Copy 4-byte start sector
+ LD DE,FILE_STARTSEC
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ ; Read SIZE and DTADR from SD entry
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ LD (FILE_SIZE),HL
+ EX DE,HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ LD (FILE_LOADADDR),HL
+ ; For BASIC (type 2), override load addr with TEXTST
+ LD A,(ELMD)
+ CP 002H
+ JR NZ,RLD_NORLOC
+ LD HL,(TEXTST)
+ LD (FILE_LOADADDR),HL
+RLD_NORLOC:
+ ; Convert to absolute sector
+ LD A,(FILE_STARTSEC)
+ LD D,A
+ LD A,(FILE_STARTSEC+1)
+ LD E,A
+ LD A,(FILE_STARTSEC+2)
+ LD H,A
+ LD A,(FILE_STARTSEC+3)
+ LD L,A
+ CALL RFSGETSECTR
+ CALL SETLBAADDR
+ ; Read sectors
+RLD_LOOP: CALL SD_READ
+ OR A
+ JR NZ,RLD_ERR
+ OUT (PORT_DRAM),A
+ LD HL,(FILE_SIZE)
+ LD DE,00200H
+ OR A
+ SBC HL,DE
+ JR C,RLD_PARTIAL
+ LD (FILE_SIZE),HL
+ LD BC,00200H
+ JR RLD_COPY
+RLD_PARTIAL:ADD HL,DE
+ LD B,H
+ LD C,L
+ LD HL,0
+ LD (FILE_SIZE),HL
+RLD_COPY: LD HL,SECTORBUF
+ LD DE,(FILE_LOADADDR)
+ LDIR
+ LD (FILE_LOADADDR),DE
+ LD HL,(FILE_SIZE)
+ LD A,H
+ OR L
+ JR Z,RLD_DONE
+ CALL INC_STARTSEC
+ OUT (PORT_MMIO),A
+ JR RLD_LOOP
+RLD_DONE: OUT (PORT_MMIO),A
+ CALL MMIO_OFF
+ ; Conditionally write status bytes (SVC #33 path only)
+ LD A,(RFS_LD_A0)
+ OR A
+ JR Z,RLD_SKIP_STAT
+ LD HL,(L180B)
+ DEC HL
+ LD (HL),0FFH
+ DEC HL
+ LD (HL),0FFH
+RLD_SKIP_STAT:
+ ; Debug: LOAD complete OK
+ LD A,'L'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ LD A,'K'
+ OUT (050H),A
+ CALL DBG_CRLF
+ ;
+ POP BC
+ POP DE
+ POP HL
+ XOR A
+ RET
+RLD_ERR: ; Debug: LOAD error (SD read)
+ PUSH AF
+ OUT (PORT_DRAM),A
+ LD A,'L'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ LD A,'E'
+ OUT (050H),A
+ CALL DBG_CRLF
+ POP AF
+ OUT (PORT_MMIO),A
+ CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ XOR A
+ SCF
+ RET
+RLD_NFERR: CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ XOR A
+ SCF
+ RET
+
+; ===========================================================================
+; Low-level SD card access routines
+; ===========================================================================
+
+; ---------------------------------------------------------------------------
+; MMIO_ON - Enter MMIO mode for SPI access
+; ---------------------------------------------------------------------------
+MMIO_ON: POP HL
+ LD (SAVE_SP),SP
+ LD SP,TEMP_STACK_TOP
+ PUSH HL
+ DI
+ XOR A
+ OUT (PORT_MMIO),A
+ CALL TRAIN_UPCNTR
+ RET
+
+; ---------------------------------------------------------------------------
+; MMIO_OFF - Leave MMIO mode, restore DRAM and BASIC stack
+; ---------------------------------------------------------------------------
+MMIO_OFF: POP HL
+ XOR A
+ OUT (PORT_DRAM),A
+ EI
+ LD SP,(SAVE_SP)
+ JP (HL)
+
+; ---------------------------------------------------------------------------
+; TRAIN_UPCNTR - Train the RFS register latch (15 reads of EFF8H)
+; ---------------------------------------------------------------------------
+TRAIN_UPCNTR:
+ LD HL,BNKCTRLRST
+ LD B,15
+TRAIN_LP: LD A,(HL)
+ DJNZ TRAIN_LP
+ XOR A
+ RET
+
+; ---------------------------------------------------------------------------
+; SPI routines
+; ---------------------------------------------------------------------------
+SPIOUT: LD (HWSPIDATA),A
+ LD (HWSPISTART),A
+ RET
+
+SPIIN: LD (HWSPISTART),A
+ LD A,(HWSPIDATA)
+ RET
+
+SPI_CS_LO: LD A,SDCS_ACT
+ LD (BNKCTRL),A
+ RET
+
+SPI_CS_HI: LD A,SDCS_DEACT
+ LD (BNKCTRL),A
+ RET
+
+; ---------------------------------------------------------------------------
+; SD_READ - Read one 512-byte sector into SECTORBUF
+; ---------------------------------------------------------------------------
+SD_READ: CALL SPI_CS_LO
+ LD A,051H
+ CALL SPIOUT
+ LD A,(SDSTARTSEC)
+ CALL SPIOUT
+ LD A,(SDSTARTSEC+1)
+ CALL SPIOUT
+ LD A,(SDSTARTSEC+2)
+ CALL SPIOUT
+ LD A,(SDSTARTSEC+3)
+ CALL SPIOUT
+ LD A,0FFH
+ CALL SPIOUT
+ LD B,0FFH
+SDR_R1: CALL SPIIN
+ CP 0FFH
+ JR NZ,SDR_GOTR1
+ DJNZ SDR_R1
+ JR SDR_ERR
+SDR_GOTR1: OR A
+ JR NZ,SDR_ERR
+ LD B,0FFH
+SDR_TOK: CALL SPIIN
+ CP 0FEH
+ JR Z,SDR_DATA
+ CP 0FFH
+ JR NZ,SDR_ERR
+ DJNZ SDR_TOK
+ JR SDR_ERR
+SDR_DATA: LD HL,SECTORBUF
+ LD D,002H
+SDR_PG: LD B,000H
+SDR_BYTE: CALL SPIIN
+ LD (HL),A
+ INC HL
+ DJNZ SDR_BYTE
+ DEC D
+ JR NZ,SDR_PG
+ CALL SPIIN
+ CALL SPIIN
+ CALL SPI_CS_HI
+ XOR A
+ RET
+SDR_ERR: CALL SPI_CS_HI
+ LD A,001H
+ RET
+
+; ---------------------------------------------------------------------------
+; SD_WRITE - Write one 512-byte sector from SECTORBUF
+; ---------------------------------------------------------------------------
+SD_WRITE: CALL SPI_CS_LO
+ LD A,058H
+ CALL SPIOUT
+ LD A,(SDSTARTSEC)
+ CALL SPIOUT
+ LD A,(SDSTARTSEC+1)
+ CALL SPIOUT
+ LD A,(SDSTARTSEC+2)
+ CALL SPIOUT
+ LD A,(SDSTARTSEC+3)
+ CALL SPIOUT
+ LD A,0FFH
+ CALL SPIOUT
+ LD B,0FFH
+SDW_R1: CALL SPIIN
+ CP 0FFH
+ JR NZ,SDW_GOTR1
+ DJNZ SDW_R1
+ JR SDW_ERR
+SDW_GOTR1: OR A
+ JR NZ,SDW_ERR
+ LD A,0FEH
+ CALL SPIOUT
+ LD HL,SECTORBUF
+ LD D,002H
+SDW_PG: LD B,000H
+SDW_BYTE: LD A,(HL)
+ CALL SPIOUT
+ INC HL
+ DJNZ SDW_BYTE
+ DEC D
+ JR NZ,SDW_PG
+ LD A,0FFH
+ CALL SPIOUT
+ CALL SPIOUT
+ CALL SPIIN
+ AND 01FH
+ CP 005H
+ JR NZ,SDW_ERR
+ LD D,040H
+SDW_BSY1: LD B,000H
+SDW_BSY2: CALL SPIIN
+ CP 0FFH
+ JR Z,SDW_DONE
+ DJNZ SDW_BSY2
+ DEC D
+ JR NZ,SDW_BSY1
+ JR SDW_ERR
+SDW_DONE: CALL SPI_CS_HI
+ XOR A
+ RET
+SDW_ERR: CALL SPI_CS_HI
+ LD A,001H
+ RET
+
+; ===========================================================================
+; Directory and file access routines
+; ===========================================================================
+
+; ---------------------------------------------------------------------------
+; ADD3216 - Add 16-bit BC to 32-bit DEHL
+; ---------------------------------------------------------------------------
+ADD3216: ADD HL,BC
+ EX DE,HL
+ LD BC,0
+ ADC HL,BC
+ EX DE,HL
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSGETSECTR - Calculate absolute sector (adds drive offset)
+; Each drive image = 0x8010 sectors
+; ---------------------------------------------------------------------------
+RFSGETSECTR:
+ LD A,(SDDRIVENO)
+GETSEC_LP: OR A
+ RET Z
+ DEC A
+ LD BC,08010H
+ CALL ADD3216
+ JR GETSEC_LP
+
+; ---------------------------------------------------------------------------
+; SETLBAADDR - Store DEHL into SDSTARTSEC (big-endian)
+; ---------------------------------------------------------------------------
+SETLBAADDR: LD A,D
+ LD (SDSTARTSEC),A
+ LD A,E
+ LD (SDSTARTSEC+1),A
+ LD A,H
+ LD (SDSTARTSEC+2),A
+ LD A,L
+ LD (SDSTARTSEC+3),A
+ RET
+
+; ---------------------------------------------------------------------------
+; INC_STARTSEC - Increment SDSTARTSEC by 1 (32-bit big-endian)
+; ---------------------------------------------------------------------------
+INC_STARTSEC:
+ LD HL,SDSTARTSEC+3
+ INC (HL)
+ RET NZ
+ DEC HL
+ INC (HL)
+ RET NZ
+ DEC HL
+ INC (HL)
+ RET NZ
+ DEC HL
+ INC (HL)
+ RET
+
+; ---------------------------------------------------------------------------
+; GETSDDIRENT - Get SD directory entry with sector caching
+; Entry: E = entry number (0-255)
+; Exit: HL = pointer to 32-byte entry, A = 0 success / 1 error
+; ---------------------------------------------------------------------------
+GETSDDIRENT:
+ PUSH DE
+ LD A,E
+ SRL A
+ SRL A
+ SRL A
+ SRL A
+ LD C,A
+ LD A,(DIRSECBUF)
+ CP C
+ JR Z,GDIR_CACHED
+ LD A,C
+ LD (DIRSECBUF),A
+ LD DE,0
+ LD H,0
+ LD L,A
+ CALL RFSGETSECTR
+ CALL SETLBAADDR
+ CALL SD_READ
+ OR A
+ JR NZ,GDIR_ERR
+GDIR_CACHED:POP DE
+ PUSH DE
+ LD A,E
+ AND 00FH
+ LD HL,SECTORBUF
+ OR A
+ JR Z,GDIR_DONE
+ LD B,A
+ LD DE,00020H
+GDIR_ADD: ADD HL,DE
+ DJNZ GDIR_ADD
+GDIR_DONE: POP DE
+ XOR A
+ RET
+GDIR_ERR: POP DE
+ LD A,001H
+ RET
+
+; ---------------------------------------------------------------------------
+; FINDSD - Find file by name in SD directory
+; Entry: DE = filename (CR or null terminated)
+; Exit: Z = found (HL = entry), NZ = not found
+; ---------------------------------------------------------------------------
+FINDSD: LD (FINDSD_NAME),DE
+ LD E,000H
+ LD B,000H
+FSD_LOOP: PUSH BC
+ PUSH DE
+ CALL GETSDDIRENT
+ POP DE
+ POP BC
+ OR A
+ JR NZ,FSD_NF
+ LD A,(HL)
+ BIT 7,A
+ JR Z,FSD_NEXT
+ INC HL
+ LD A,(HL)
+ DEC HL
+ OR A
+ JR Z,FSD_NEXT
+ CP 0FFH
+ JR Z,FSD_NEXT
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ INC HL
+ INC HL
+ LD DE,(FINDSD_NAME)
+ LD B,17
+FSD_CMP: LD A,(DE)
+ CP 00DH
+ JR Z,FSD_MATCH
+ OR A
+ JR Z,FSD_MATCH
+ CP (HL)
+ JR NZ,FSD_NOMATCH
+ INC DE
+ INC HL
+ DJNZ FSD_CMP
+FSD_MATCH: POP BC
+ POP DE
+ POP HL
+ XOR A
+ RET
+FSD_NOMATCH:POP BC
+ POP DE
+ POP HL
+FSD_NEXT: INC E
+ DJNZ FSD_LOOP
+FSD_NF: LD A,001H
+ OR A
+ RET
+
+; ---------------------------------------------------------------------------
+; CONVERT_ENTRY - Convert SD entry to Disk BASIC DIR buffer format
+; Entry: HL = SD entry in SECTORBUF
+; Exit: DIR_BUFPTR advanced by 32
+; ---------------------------------------------------------------------------
+CONVERT_ENTRY:
+ INC HL
+ LD DE,(DIR_BUFPTR)
+ LD A,(HL)
+ CP 005H
+ JR NZ,CE_AT1
+ LD A,002H
+CE_AT1: LD (DE),A
+ INC HL
+ INC DE
+ LD B,17
+CE_NAME: LD A,(HL)
+ OR A
+ JR NZ,CE_NM1
+ LD A,00DH
+CE_NM1: LD (DE),A
+ INC HL
+ INC DE
+ DJNZ CE_NAME
+ ; Skip START_SECTOR[0..1], copy [2..3]
+ INC HL
+ INC HL
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ ; Copy SIZE(2) + DTADR(2) + EXADR(2) = 6 bytes
+ LD BC,6
+ LDIR
+ ; Advance DIR_BUFPTR by 32
+ LD HL,(DIR_BUFPTR)
+ LD DE,00020H
+ ADD HL,DE
+ LD (DIR_BUFPTR),HL
+ RET
+
+; ---------------------------------------------------------------------------
+; MEMCLI_PATCH - Trampoline for memory clear init
+; Original: RST 018H / DB 020H / EX DE,HL
+; ---------------------------------------------------------------------------
+MEMCLI_PATCH:
+ RST 018H
+ DB 020H ; SVC 020H: boot beep + EI
+ LD HL,RFS_END
+ JP L402F ; Continue with memory clear loop
+
+; ---------------------------------------------------------------------------
+; RFS_BIT5PATH - Block-device DIR handler for $RFS
+; Replaces the standard L2FD1 path (0x2F38) which doesn't work with
+; RFSINP_DIR because L2FD1 always calls ZINP with HL=L2800 (H>=28H),
+; which triggers RFSINP_DISKID instead of the DIR fill path.
+; For non-$RFS block devices ($FD/$QD), falls through to the original path.
+; ---------------------------------------------------------------------------
+RFS_BIT5PATH:
+ ; Debug: bit5 DIR path entry
+ PUSH AF
+ LD A,'B'
+ OUT (050H),A
+ LD A,'5'
+ OUT (050H),A
+ CALL DBG_CRLF
+ POP AF
+ ; Check if current device is $RFS
+ PUSH HL
+ LD HL,(ZINP)
+ LD DE,RFSINP_DIR
+ OR A
+ SBC HL,DE
+ POP HL
+ JP NZ,02F38H ; Not $RFS → original block-device path
+ ;
+ ; $RFS custom DIR handler:
+ ; 1. Set L2800[0]=0x80 (valid disk marker for caller's check)
+ LD A,080H
+ LD (02800H),A
+ ; 2. Fill DIR buffer at L2000 (H=0x20 triggers DIR fill)
+ LD HL,L2000
+ LD A,(ZCH)
+ OR 001H ; Ensure A is non-zero (avoids RFSINP_LD dispatch)
+ CALL RFSINP_DIR
+ ; 3. Clear DIR_FILLED so next DIR re-enumerates
+ XOR A
+ LD (DIR_FILLED),A
+ ; 4. Set HL=L2000 and check first byte (original returns HL=L2800
+ ; but we use L2000 where DIR data lives)
+ LD HL,L2000
+ LD A,(HL)
+ OR A
+ JP P,01F70H ; If bit7=0 → no entries (error)
+ RET
+
+; ---------------------------------------------------------------------------
+; RFS_SVC30_HOOK - Intercept SVC #30 block-device read for $RFS
+; SVC #30's block device path (L2AD2) calls 02FD0H → L2FE8 which sets
+; HL=L2800 (H>=28H). IOCALL → RFSINP_DIR then sees H>=28H and takes
+; the RFSINP_DISKID path (zeros L2800), never reaching RFSINP_LD.
+; Fix: if ZINP = RFSINP_DIR, call RFSINP_LD directly and RET to SVC.
+; For all other block devices ($FD/$QD), fall through to original L2AD2.
+; ---------------------------------------------------------------------------
+RFS_SVC30_HOOK:
+ ; Debug: SVC #30 entry — show ZINP value and RFSINP_DIR value
+ PUSH AF
+ PUSH HL
+ LD A,'3'
+ OUT (050H),A
+ LD A,'0'
+ OUT (050H),A
+ LD A,' '
+ OUT (050H),A
+ ; Show ZINP contents (the runtime handler address)
+ LD A,'Z'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ LD HL,(ZINP)
+ LD A,H
+ CALL DBG_HEX
+ LD A,L
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ ; Show compile-time RFSINP_DIR address
+ LD A,'R'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ LD HL,RFSINP_DIR
+ LD A,H
+ CALL DBG_HEX
+ LD A,L
+ CALL DBG_HEX
+ CALL DBG_CRLF
+ POP HL
+ POP AF
+ ;
+ PUSH HL
+ LD HL,(ZINP)
+ PUSH DE
+ LD DE,RFSINP_DIR
+ OR A
+ SBC HL,DE
+ POP DE
+ POP HL
+ JP NZ,L2AD2 ; Not $RFS → original block device path
+ ; Debug: $RFS detected in SVC #30
+ PUSH AF
+ LD A,'3'
+ OUT (050H),A
+ LD A,'R'
+ OUT (050H),A
+ CALL DBG_CRLF
+ POP AF
+ ; $RFS: call RFSINP_LD directly (A=0 for read)
+ XOR A
+ CALL RFSINP_LD
+ RET
+
+; ---------------------------------------------------------------------------
+; RFS_LOAD_HOOK - Trampoline for L3153 data transfer
+; Checks if current device is $RFS; if so, uses RFSINP_LD.
+; ---------------------------------------------------------------------------
+RFS_LOAD_HOOK:
+ ; Debug: L3153 trampoline entry
+ PUSH AF
+ LD A,'L'
+ OUT (050H),A
+ LD A,'H'
+ OUT (050H),A
+ CALL DBG_CRLF
+ POP AF
+ ;
+ LD HL,(ZINP)
+ PUSH DE
+ LD DE,RFSINP_DIR
+ OR A
+ SBC HL,DE
+ POP DE
+ JR Z,RFLH_RFS
+ ; Not $RFS — call original FD/QD transfer
+ CALL L32CB
+ JP L3174
+RFLH_RFS: CALL RFSINP_LD
+ JP L3101 ; Standard cleanup path (matches MZ-5Z008)
+
+; ---------------------------------------------------------------------------
+; RFS_DIR_FIX - Advance HL past ':' for DIR device-name parsing
+; ---------------------------------------------------------------------------
+RFS_DIR_FIX:
+ LD DE,DEVNAMEBUF
+ INC HL
+ JP L596B
+
+; ---------------------------------------------------------------------------
+; RFS_DIR_STR - Handle string expressions in DIR for device names
+; Called instead of L6E67 to properly parse "RF1:" strings
+; ---------------------------------------------------------------------------
+RFS_DIR_STR:
+ CALL L6E67 ; Evaluate string expr. B=strlen, DE=strptr
+ PUSH HL
+ EX DE,HL
+ LD DE,DEVNAMEBUF
+ LD A,B
+ OR A
+ JR Z,DSTR_DONE
+ LD C,A
+ LD B,000H
+DSTR_LP: LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ INC B
+ DEC C
+ CP 03AH
+ JR Z,DSTR_DONE
+ LD A,C
+ OR A
+ JR NZ,DSTR_LP
+DSTR_DONE: LD DE,DEVNAMEBUF
+ POP HL
+ RET
+
+; ===========================================================================
+; RFS Data Variables
+; ===========================================================================
+DEVNAMEBUF: DS 8, 000H ; Device name buffer for DIR/LOAD parsing
+ ; (replaces L5982 4-byte buffer which overflowed
+ ; for 3-letter device names like "RFS1:")
+SDSTARTSEC: DS 4, 000H ; Current sector address (big-endian)
+DIRSECBUF: DB 0FFH ; Cached directory sector number
+FILE_STARTSEC:
+ DS 4, 000H ; File start sector (big-endian)
+FILE_LOADADDR:
+ DW 00000H ; Current load/store address
+FILE_SIZE: DW 00000H ; Remaining bytes during transfer
+RFS_LD_A0: DB 000H ; Entry A for RFSINP_LD
+DIR_BUFPTR: DW 00000H ; Current DIR buffer write position
+; ---------------------------------------------------------------------------
+; DBG_HEX — Output A as 2 hex ASCII digits to port 050H.
+; Preserves BC, DE, HL.
+; ---------------------------------------------------------------------------
+DBG_HEX: PUSH AF
+ RRCA
+ RRCA
+ RRCA
+ RRCA
+ AND 00FH
+ CALL DBG_NIB
+ POP AF
+ AND 00FH
+DBG_NIB: CP 00AH
+ JR C,DBG_DIG
+ ADD A,037H ; 'A'..'F'
+ OUT (050H),A
+ RET
+DBG_DIG: ADD A,030H ; '0'..'9'
+ OUT (050H),A
+ RET
+;
+; ---------------------------------------------------------------------------
+; DBG_CRLF — Output CR+LF to port 050H. Preserves all registers.
+; ---------------------------------------------------------------------------
+DBG_CRLF: PUSH AF
+ LD A,00DH ; CR
+ OUT (050H),A
+ LD A,00AH ; LF
+ OUT (050H),A
+ POP AF
+ RET
+;
+; ---------------------------------------------------------------------------
+; Data area
+; ---------------------------------------------------------------------------
+FINDSD_NAME:DW 00000H ; Saved filename pointer for FINDSD
+SAVE_DIRENT:DB 000H ; Directory entry number for SAVE
+SAVE_PENDING:DB 000H ; 1 = SAVE done flag
+DIR_FILLED: DB 000H ; 1 = DIR buffer filled
+SAVE_SP: DW 00000H ; Saved BASIC stack pointer
+DIR_ENTRY_IDX: DB 000H ; Current directory entry index
+SDDRIVENO: DB 000H ; SD drive number
+SECTORBUF: DS 512, 000H ; SD card sector buffer (512 bytes)
+ DS 32, 000H ; Temp stack space (grows downward)
+TEMP_STACK_TOP: ; SP points here
+RFS_END EQU TEMP_STACK_TOP ; End of RFS code = new TEXTST
+;
+; Pad remaining space to maintain original binary size (0x9000 bytes)
+ DS 09000H - RFS_END, 0FFH
diff --git a/dis/MZ-2Z009E/postprocess_dz80.py b/dis/MZ-2Z009E/postprocess_dz80.py
new file mode 100755
index 0000000..3b59d79
--- /dev/null
+++ b/dis/MZ-2Z009E/postprocess_dz80.py
@@ -0,0 +1,443 @@
+#!/usr/bin/env python3
+#########################################################################################################
+##
+## Name: postprocess_dz80.py
+## Created: March 2026
+## Author(s): Philip Smart
+## Description: Post-processes dz80 disassembly output for GLASS Z80 assembler compatibility.
+## Adapted for MZ-2Z009E Disk BASIC.
+##
+## Fixes:
+## 1. Undefined Lxxxx label references -> numeric hex values
+## 2. Compacts consecutive same-value DB lines into DS count, value
+## 3. Fixes any string quoting issues
+## 4. Reformats BASIC keyword tables (one keyword per line)
+## 5. Converts runs of printable-ASCII DB bytes into DB "text" form
+##
+## Credits:
+## Copyright: (c) 2026 Philip Smart
+##
+## History: March 2026 - Initial script (based on MZ-5Z008 version).
+##
+#########################################################################################################
+## This source file is free software: you can redistribute it and#or modify
+## it under the terms of the GNU General Public License as published
+## by the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## This source file is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program. If not, see .
+#########################################################################################################
+
+import re
+import sys
+import os
+
+def collect_defined_labels(lines):
+ """Collect all labels defined in the assembly file."""
+ defined = set()
+ for line in lines:
+ m = re.match(r'^([\w\$\.\?][\w\$\.\?]*)\s*:', line)
+ if m:
+ defined.add(m.group(1))
+ m = re.match(r'^(\S+)\s+EQU\s+', line)
+ if m:
+ defined.add(m.group(1))
+ return defined
+
+def find_undefined_refs(lines, defined):
+ """Find all Lxxxx references that are not defined."""
+ undefined = set()
+ for line in lines:
+ for m in re.finditer(r'\bL([0-9A-Fa-f]{4})\b', line):
+ label = 'L' + m.group(1).upper()
+ if label not in defined:
+ undefined.add(label)
+ return undefined
+
+def replace_undefined_refs(line, undefined):
+ """Replace undefined Lxxxx references with numeric hex values."""
+ def replacer(m):
+ label = 'L' + m.group(1).upper()
+ if label in undefined:
+ addr = int(m.group(1), 16)
+ return f"0{addr:04X}H"
+ return m.group(0)
+ return re.sub(r'\bL([0-9A-Fa-f]{4})\b', replacer, line)
+
+def compact_db_sequences(lines):
+ """Compact consecutive DB lines with the same value into DS count, value."""
+ result = []
+ i = 0
+ db_pat = re.compile(r'^(\s+)DB\s+(0[0-9A-Fa-f]{2}H)\s*(;.*)?$')
+ labeled_db_pat = re.compile(r'^([\w\$\.\?][\w\$\.\?]*:\s+)DB\s+(0[0-9A-Fa-f]{2}H)\s*(;.*)?$')
+
+ def parse_db(line):
+ m = labeled_db_pat.match(line)
+ if m:
+ return (m.group(1), m.group(2).upper(), m.group(3), True)
+ m = db_pat.match(line)
+ if m:
+ return (m.group(1), m.group(2).upper(), m.group(3), False)
+ return None
+
+ while i < len(lines):
+ parsed = parse_db(lines[i])
+ if parsed is None:
+ result.append(lines[i])
+ i += 1
+ continue
+ prefix, value, comment, is_labeled = parsed
+ j = i + 1
+ while j < len(lines):
+ p2 = parse_db(lines[j])
+ if p2 and p2[1] == value and not p2[3]:
+ j += 1
+ else:
+ break
+ count = j - i
+ if count >= 2:
+ if comment:
+ result.append(f"{prefix}DS {count}, {value} {comment}\n")
+ else:
+ result.append(f"{prefix}DS {count}, {value}\n")
+ i = j
+ else:
+ result.append(lines[i])
+ i += 1
+ return result
+
+def fix_string_issues(lines):
+ """Fix DB lines with problematic string quoting."""
+ result = []
+ for line in lines:
+ if 'DB' in line and line.count('"') > 2:
+ m = re.match(r'^(\s+)DB\s+(.*)', line)
+ if m:
+ content = m.group(2).rstrip()
+ quote_count = sum(1 for ch in content if ch == '"')
+ if quote_count % 2 != 0:
+ result.append(line)
+ continue
+ result.append(line)
+ return result
+
+def stringify_db_runs(lines):
+ """Convert runs of consecutive printable-ASCII DB bytes into DB "text" form."""
+ result = []
+ db_pat = re.compile(r'^(\s+)DB\s+(0[0-9A-Fa-f]{2}H)\s*(;.*)?$')
+ labeled_db_pat = re.compile(
+ r'^([\w\$\.\?][\w\$\.\?]*:\s+)DB\s+(0[0-9A-Fa-f]{2}H)\s*(;.*)?$')
+
+ def parse_db(line):
+ m = labeled_db_pat.match(line)
+ if m:
+ val = int(m.group(2)[1:3], 16)
+ return (m.group(1), val, m.group(3), True)
+ m = db_pat.match(line)
+ if m:
+ val = int(m.group(2)[1:3], 16)
+ return (m.group(1), val, m.group(3), False)
+ return None
+
+ def is_printable(b):
+ return 0x20 <= b <= 0x7E and b != 0x22
+
+ def flush_group(prefix, values, comment):
+ parts = []
+ text_run = []
+ for b in values:
+ if is_printable(b):
+ text_run.append(chr(b))
+ else:
+ if len(text_run) >= 3:
+ parts.append('"' + ''.join(text_run) + '"')
+ else:
+ for ch_b in text_run:
+ parts.append(f"0{ord(ch_b):02X}H")
+ text_run = []
+ parts.append(f"0{b:02X}H")
+ if len(text_run) >= 3:
+ parts.append('"' + ''.join(text_run) + '"')
+ else:
+ for ch_b in text_run:
+ parts.append(f"0{ord(ch_b):02X}H")
+ line_str = f"{prefix}DB {','.join(parts)}"
+ if comment:
+ line_str += f" {comment}"
+ return line_str + "\n"
+
+ i = 0
+ while i < len(lines):
+ parsed = parse_db(lines[i])
+ if parsed is None:
+ result.append(lines[i])
+ i += 1
+ continue
+ prefix, byte_val, comment, is_labeled = parsed
+ group_prefix = prefix
+ group_comment = comment
+ values = [byte_val]
+ j = i + 1
+ while j < len(lines):
+ p2 = parse_db(lines[j])
+ if p2 is None:
+ break
+ if p2[3]:
+ break
+ values.append(p2[1])
+ j += 1
+ printable_count = sum(1 for b in values if is_printable(b))
+ if printable_count >= 3 and len(values) >= 3:
+ result.append(flush_group(group_prefix, values, group_comment))
+ i = j
+ else:
+ result.append(lines[i])
+ i += 1
+ return result
+
+def format_keyword_tables(lines):
+ """Reformat BASIC keyword tables so each keyword is on its own line."""
+ # MZ-2Z009E keyword tables
+ KW_TABLES = {
+ 'L4167': 421, # Statement keyword text table (dz80 label)
+ 'STMTWORDTBL': 421, # Statement keyword text table (equate label)
+ 'L4351': 157, # Function keyword text table (dz80 label)
+ 'FUNCWORDTBL': 157, # Function keyword text table (equate label)
+ }
+
+ equ_values = {}
+ equ_pat = re.compile(r'^(\S+)\s+EQU\s+(0[0-9A-Fa-f]+H)', re.IGNORECASE)
+ for line in lines:
+ m = equ_pat.match(line)
+ if m:
+ equ_values[m.group(1)] = int(m.group(2)[:-1], 16)
+
+ db_pat = re.compile(r'^(\s+)DB\s+(.*?)(\s*;.*)?$')
+ labeled_db_pat = re.compile(
+ r'^([\w\$\.\?][\w\$\.\?]*:\s*)DB\s+(.*?)(\s*;.*)?$')
+ ds_pat = re.compile(r'^(\s+)DS\s+(\d+),\s*(0[0-9A-Fa-f]{2}H)(\s*;.*)?$')
+ labeled_ds_pat = re.compile(
+ r'^([\w\$\.\?][\w\$\.\?]*:\s*)DS\s+(\d+),\s*(0[0-9A-Fa-f]{2}H)(\s*;.*)?$')
+
+ def parse_hex_val(s):
+ s = s.strip()
+ if s.upper().endswith('H') and s.startswith('0'):
+ return int(s[:-1], 16)
+ return None
+
+ def extract_bytes_from_db(data_str):
+ vals = []
+ parts = []
+ current = ''
+ in_str = False
+ for ch in data_str:
+ if ch == '"':
+ in_str = not in_str
+ current += ch
+ elif ch == ',' and not in_str:
+ parts.append(current.strip())
+ current = ''
+ else:
+ current += ch
+ if current.strip():
+ parts.append(current.strip())
+ for part in parts:
+ part = part.strip()
+ if part.startswith('"') and part.endswith('"'):
+ for ch in part[1:-1]:
+ vals.append(ord(ch))
+ elif '|' in part:
+ sub = [s.strip() for s in part.split('|')]
+ val = 0
+ for s in sub:
+ if s.startswith('"') and s.endswith('"'):
+ val |= ord(s[1])
+ else:
+ v = parse_hex_val(s)
+ if v is not None:
+ val |= v
+ vals.append(val)
+ else:
+ v = parse_hex_val(part)
+ if v is not None:
+ vals.append(v)
+ elif part in equ_values and equ_values[part] <= 0xFF:
+ vals.append(equ_values[part])
+ return vals
+
+ def format_keyword(byte_list):
+ if len(byte_list) == 1 and byte_list[0] == 0x80:
+ return "DB 080H"
+ if len(byte_list) == 1:
+ b = byte_list[0]
+ ch = b & 0x7F
+ if 0x20 <= ch <= 0x7E and ch != 0x22:
+ return f'DB "{chr(ch)}" | 080H'
+ else:
+ return f"DB 0{b:02X}H"
+ prefix_bytes = byte_list[:-1]
+ last_byte = byte_list[-1]
+ last_ch = last_byte & 0x7F
+ prefix_str = ''.join(chr(b) for b in prefix_bytes
+ if 0x20 <= b <= 0x7E and b != 0x22)
+ if len(prefix_str) == len(prefix_bytes) and prefix_str:
+ if 0x20 <= last_ch <= 0x7E and last_ch != 0x22:
+ return f'DB "{prefix_str}", "{chr(last_ch)}" | 080H'
+ else:
+ return f'DB "{prefix_str}", 0{last_byte:02X}H'
+ else:
+ parts = [f"0{b:02X}H" for b in prefix_bytes]
+ if 0x20 <= last_ch <= 0x7E and last_ch != 0x22:
+ parts.append(f'"{chr(last_ch)}" | 080H')
+ else:
+ parts.append(f"0{last_byte:02X}H")
+ return f"DB {','.join(parts)}"
+
+ label_pat = re.compile(r'^([\w\$\.\?][\w\$\.\?]*):\s')
+ result = []
+ i = 0
+ while i < len(lines):
+ table_label = None
+ table_size = 0
+ for label, size in KW_TABLES.items():
+ if lines[i].startswith(label + ':'):
+ table_label = label
+ table_size = size
+ break
+ if table_label is None:
+ result.append(lines[i])
+ i += 1
+ continue
+ raw_bytes = []
+ first_comment = None
+ label_at_offset = {0: table_label}
+ j = i
+ while j < len(lines) and len(raw_bytes) < table_size:
+ line = lines[j]
+ ml = labeled_db_pat.match(line)
+ mu = db_pat.match(line)
+ mlds = labeled_ds_pat.match(line)
+ muds = ds_pat.match(line)
+ if ml or mu:
+ m = ml or mu
+ if first_comment is None and m.group(m.lastindex):
+ first_comment = m.group(m.lastindex)
+ if first_comment:
+ first_comment = first_comment.strip()
+ if ml:
+ lm = label_pat.match(line)
+ if lm and lm.group(1) != table_label:
+ label_at_offset[len(raw_bytes)] = lm.group(1)
+ data_str = ml.group(2)
+ else:
+ data_str = mu.group(2)
+ raw_bytes.extend(extract_bytes_from_db(data_str))
+ j += 1
+ elif mlds or muds:
+ m = mlds or muds
+ if mlds:
+ lm = label_pat.match(line)
+ if lm and lm.group(1) != table_label:
+ label_at_offset[len(raw_bytes)] = lm.group(1)
+ count = int(mlds.group(2))
+ val = parse_hex_val(mlds.group(3))
+ else:
+ count = int(muds.group(2))
+ val = parse_hex_val(muds.group(3))
+ if val is not None:
+ raw_bytes.extend([val] * count)
+ j += 1
+ else:
+ break
+ if j == i:
+ result.append(lines[i])
+ i += 1
+ continue
+ keywords = []
+ kw = []
+ kw_start = 0
+ for idx, b in enumerate(raw_bytes[:table_size]):
+ kw.append(b)
+ if b & 0x80:
+ keywords.append((kw_start, kw))
+ kw = []
+ kw_start = idx + 1
+ if kw:
+ keywords.append((kw_start, kw))
+ indent = ' '
+ for ki, (kw_offset, kw_bytes) in enumerate(keywords):
+ comment = ''
+ if ki == 0 and first_comment:
+ comment = f" {first_comment}"
+ kw_labels = {}
+ for off in range(len(kw_bytes)):
+ abs_off = kw_offset + off
+ if abs_off in label_at_offset:
+ kw_labels[off] = label_at_offset[abs_off]
+ if not kw_labels:
+ result.append(f"{indent}{format_keyword(kw_bytes)}{comment}\n")
+ elif 0 in kw_labels and len(kw_labels) == 1:
+ lbl = kw_labels[0]
+ prefix = f"{lbl}:{indent[len(lbl)+1:]}"
+ result.append(f"{prefix}{format_keyword(kw_bytes)}{comment}\n")
+ else:
+ split_pts = sorted(set([0] + list(kw_labels.keys())
+ + [len(kw_bytes)]))
+ for si in range(len(split_pts) - 1):
+ seg_start = split_pts[si]
+ seg_end = split_pts[si + 1]
+ chunk = kw_bytes[seg_start:seg_end]
+ lbl = kw_labels.get(seg_start)
+ is_last_seg = (seg_end == len(kw_bytes))
+ if lbl:
+ prefix = f"{lbl}:{indent[len(lbl)+1:]}"
+ else:
+ prefix = indent
+ cmt = comment if si == 0 else ''
+ if is_last_seg and chunk and (chunk[-1] & 0x80):
+ result.append(
+ f"{prefix}{format_keyword(chunk)}{cmt}\n")
+ else:
+ parts = [f"0{b:02X}H" for b in chunk]
+ if parts:
+ result.append(
+ f"{prefix}DB {','.join(parts)}{cmt}\n")
+ i = j
+ return result
+
+def main():
+ if len(sys.argv) < 2:
+ print(f"Usage: {sys.argv[0]} [output.asm]")
+ print(" Post-processes dz80 output for GLASS Z80 assembler compatibility.")
+ sys.exit(1)
+
+ input_file = sys.argv[1]
+ output_file = sys.argv[2] if len(sys.argv) > 2 else input_file
+
+ with open(input_file, 'r') as f:
+ lines = f.readlines()
+
+ original_count = len(lines)
+ defined = collect_defined_labels(lines)
+ undefined = find_undefined_refs(lines, defined)
+ print(f" Defined labels: {len(defined)}")
+ print(f" Undefined Lxxxx references: {len(undefined)}")
+ lines = [replace_undefined_refs(line, undefined) for line in lines]
+ lines = fix_string_issues(lines)
+ lines = compact_db_sequences(lines)
+ lines = format_keyword_tables(lines)
+ lines = stringify_db_runs(lines)
+ print(f" Lines: {original_count} -> {len(lines)} (compacted {original_count - len(lines)} lines)")
+
+ with open(output_file, 'w') as f:
+ f.writelines(lines)
+ print(f" Output: {output_file}")
+
+if __name__ == '__main__':
+ main()
diff --git a/dis/MZ-5Z008/assemble_mz5z008.sh b/dis/MZ-5Z008/assemble_mz5z008.sh
new file mode 100755
index 0000000..09602d6
--- /dev/null
+++ b/dis/MZ-5Z008/assemble_mz5z008.sh
@@ -0,0 +1,154 @@
+#!/bin/bash
+#########################################################################################################
+##
+## Name: assemble_mz5z008.sh
+## Created: March 2026
+## Author(s): Philip Smart
+## Description: MZ-5Z008 Disk BASIC disassembly and re-assembly tool
+## This script performs a full round-trip:
+## 1. Disassembles mz5z008.bin using dz80
+## 2. Post-processes the output for GLASS assembler compatibility
+## (fixes undefined label references, compacts repeated DB into DS,
+## reformats keyword tables)
+## 3. Re-assembles with the GLASS Z80 assembler
+## 4. Verifies the re-assembled binary is identical to the original
+##
+## Credits:
+## Copyright: (c) 2026 Philip Smart
+##
+## History: March 2026 - Initial script (based on MZ-1Z-013B version).
+##
+#########################################################################################################
+## This source file is free software: you can redistribute it and#or modify
+## it under the terms of the GNU General Public License as published
+## by the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## This source file is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program. If not, see .
+#########################################################################################################
+
+DISDIR="$(cd "$(dirname "$0")" && pwd)"
+OUTDIR="${DISDIR}/tmp"
+
+# Tools
+DZ80="/srv/dvlp/Projects/RFS/tools/dz80"
+POSTPROCESS="${DISDIR}/postprocess_dz80.py"
+
+# Use glass.jar from the RFS project if available.
+GLASS_JAR=""
+for candidate in \
+ "${DISDIR}/glass.jar" \
+ "/srv/dvlp/Projects/RFS/tools/glass.jar" \
+ "$(which glass.jar 2>/dev/null)"; do
+ if [ -f "$candidate" ]; then
+ GLASS_JAR="$candidate"
+ break
+ fi
+done
+
+if [ -z "$GLASS_JAR" ]; then
+ echo "ERROR: glass.jar not found."
+ exit 1
+fi
+
+ORIGINAL_BIN="${DISDIR}/mz5z008.bin"
+DZ80_INI="${DISDIR}/dz80.ini"
+
+# Verify prerequisites exist
+if [ ! -f "${ORIGINAL_BIN}" ]; then
+ echo "ERROR: Original binary not found at ${ORIGINAL_BIN}"
+ echo " This is the raw MZ-5Z008 Disk BASIC binary (34303 bytes)."
+ exit 1
+fi
+
+if [ ! -f "${DZ80_INI}" ]; then
+ echo "ERROR: dz80 configuration not found at ${DZ80_INI}"
+ exit 1
+fi
+
+if [ ! -x "${DZ80}" ]; then
+ echo "ERROR: dz80 disassembler not found at ${DZ80}"
+ exit 1
+fi
+
+if [ ! -f "${POSTPROCESS}" ]; then
+ echo "ERROR: Post-processor not found at ${POSTPROCESS}"
+ exit 1
+fi
+
+mkdir -p "${OUTDIR}"
+
+echo "MZ-5Z008 Disk BASIC Disassembly & Re-assembly Tool"
+echo "==================================================="
+echo " Source binary: ${ORIGINAL_BIN}"
+echo " dz80 config: ${DZ80_INI}"
+echo " Glass: ${GLASS_JAR}"
+echo " Output dir: ${OUTDIR}"
+echo ""
+
+# ---- Step 1: Disassemble with dz80 ----
+echo "--- Step 1: Disassembling with dz80 ---"
+# dz80 uses dz80.ini from CWD, so we cd to the dis dir
+SAVEDCWD="$(pwd)"
+cd "${DISDIR}"
+${DZ80} -l mz5z008.bin mz5z008.asm
+DZ80_RC=$?
+cd "${SAVEDCWD}"
+
+if [ ${DZ80_RC} -ne 0 ]; then
+ echo "ERROR: dz80 disassembly failed (exit code ${DZ80_RC})."
+ exit 1
+fi
+echo " dz80 output: ${DISDIR}/mz5z008.asm"
+echo ""
+
+# ---- Step 2: Post-process for GLASS compatibility ----
+echo "--- Step 2: Post-processing for GLASS compatibility ---"
+# Post-process in-place so dis/mz5z008.asm is the final compacted version,
+# and also copy to tmp/ for assembly.
+python3 "${POSTPROCESS}" "${DISDIR}/mz5z008.asm"
+if [ $? -ne 0 ]; then
+ echo "ERROR: Post-processing failed."
+ exit 1
+fi
+cp "${DISDIR}/mz5z008.asm" "${OUTDIR}/mz5z008.asm"
+echo ""
+
+# ---- Step 3: Assemble with GLASS ----
+echo "--- Step 3: Assembling with GLASS Z80 assembler ---"
+java -jar "${GLASS_JAR}" "${OUTDIR}/mz5z008.asm" "${OUTDIR}/mz5z008.bin" "${OUTDIR}/mz5z008.sym"
+
+if [ $? -ne 0 ]; then
+ echo ""
+ echo "ERROR: Assembly failed. Fix errors above and retry."
+ exit 1
+fi
+echo " Binary: ${OUTDIR}/mz5z008.bin"
+echo " Symbols: ${OUTDIR}/mz5z008.sym"
+echo ""
+
+# ---- Step 4: Verify binary match ----
+echo "--- Step 4: Verifying binary match ---"
+if cmp -s "${ORIGINAL_BIN}" "${OUTDIR}/mz5z008.bin"; then
+ echo " PASS: Re-assembled binary is identical to original."
+else
+ ORIG_SIZE=$(wc -c < "${ORIGINAL_BIN}")
+ ASM_SIZE=$(wc -c < "${OUTDIR}/mz5z008.bin")
+ echo " FAIL: Re-assembled binary differs from original!"
+ echo " Original size: ${ORIG_SIZE} bytes"
+ echo " Assembled size: ${ASM_SIZE} bytes"
+ echo ""
+ echo " Run 'cmp -l ${ORIGINAL_BIN} ${OUTDIR}/mz5z008.bin' for details."
+ exit 1
+fi
+echo ""
+
+echo "==================================================="
+echo "Complete. Output files in ${OUTDIR}/"
+ls -la "${OUTDIR}"/mz5z008*
diff --git a/dis/MZ-5Z008/dz80.ini b/dis/MZ-5Z008/dz80.ini
new file mode 100644
index 0000000..fde0af2
--- /dev/null
+++ b/dis/MZ-5Z008/dz80.ini
@@ -0,0 +1,867 @@
+----------------------------------------
+-- dZ80 configuration file for MZ-5Z008
+-- Sharp MZ-700 Disk BASIC Interpreter
+----------------------------------------
+
+----------------------------------------
+-- Disassembly control
+----------------------------------------
+
+cpu="z80"
+inputfile="mz5z008.bin"
+outputfile="mz5z008_dz80.asm"
+filebaseaddr=0
+disstart=0
+disend=34302
+labelledoutput=1
+
+----------------------------------------
+-- Layout
+----------------------------------------
+
+labelreference=1
+addresscolumn=1
+opcodecolumn=1
+relativejumpcomment=1
+uppercase=1
+autoblanklines=1
+db="db"
+comment="; "
+radix=16
+numprefix="0"
+numsuffix="H"
+
+----------------------------------------
+-- References
+----------------------------------------
+
+referencefile="mz5z008.ref"
+inportreference=1
+outportreference=1
+addressreference=1
+indirectaddressreference=1
+limitreferences=1
+
+----------------------------------------
+-- Data regions
+----------------------------------------
+
+-- Jump vector table (0000-004C): JP nn vectors
+-- These are code, dz80 handles JP fine
+
+-- System variables / work area (004D-00A5)
+d_SetDataRegion( hex("004D"), 2) -- SYSSTA (system status)
+d_SetDataRegion( hex("004F"), 2) -- ERRORP (error parameter)
+d_SetDataRegion( hex("0051"), 2)
+d_SetDataRegion( hex("0053"), 2)
+d_SetDataRegion( hex("0055"), 2)
+d_SetDataRegion( hex("0057"), 2)
+d_SetDataRegion( hex("0059"), 2)
+d_SetDataRegion( hex("005B"), 2)
+d_SetDataRegion( hex("005D"), 2)
+d_SetDataRegion( hex("005F"), 2)
+d_SetDataRegion( hex("0061"), 2)
+d_SetDataRegion( hex("0063"), 2)
+d_SetDataRegion( hex("0065"), 2)
+d_SetDataRegion( hex("0067"), 2)
+d_SetDataRegion( hex("0069"), 2)
+d_SetDataRegion( hex("006B"), 2)
+d_SetDataRegion( hex("006D"), 2)
+d_SetDataRegion( hex("006F"), 2)
+d_SetDataRegion( hex("0071"), 2)
+d_SetDataRegion( hex("0073"), 2)
+d_SetDataRegion( hex("0075"), 2)
+d_SetDataRegion( hex("0077"), 2)
+d_SetDataRegion( hex("0079"), 2)
+d_SetDataRegion( hex("007B"), 2)
+d_SetDataRegion( hex("007D"), 2)
+d_SetDataRegion( hex("007F"), 2)
+d_SetDataRegion( hex("0081"), 2)
+d_SetDataRegion( hex("0083"), 2)
+d_SetDataRegion( hex("0085"), 2)
+d_SetDataRegion( hex("0087"), 2)
+d_SetDataRegion( hex("0089"), 2)
+d_SetDataRegion( hex("008B"), 2)
+d_SetDataRegion( hex("008D"), 2)
+d_SetDataRegion( hex("008F"), 2)
+d_SetDataRegion( hex("0091"), 2)
+d_SetDataRegion( hex("0093"), 2)
+d_SetDataRegion( hex("0095"), 2)
+d_SetDataRegion( hex("0097"), 2)
+d_SetDataRegion( hex("0099"), 2)
+d_SetDataRegion( hex("009B"), 2)
+d_SetDataRegion( hex("009D"), 2)
+d_SetDataRegion( hex("009F"), 2)
+d_SetDataRegion( hex("00A1"), 2)
+d_SetDataRegion( hex("00A3"), 2)
+d_SetDataRegion( hex("00A5"), 1)
+
+-- Zero padding / DS work areas
+d_SetDataRegion( hex("00A6"), 52) -- Work variables (zeros)
+
+-- ALIGN 256 padding regions
+d_SetDataRegion( hex("0A8B"), 160) -- Zero padding (0A8B-0B2A)
+d_SetDataRegion( hex("0DB5"), 331) -- Zero padding (0DB5-0EFF)
+d_SetDataRegion( hex("0FEF"), 81) -- Zero padding / ALIGN 1040 (0FEF-103F)
+d_SetDataRegion( hex("1098"), 250) -- Work area / zeros (1098-1191)
+d_SetDataRegion( hex("11A0"), 288) -- Work area / ALIGN 12C0 (11A0-12BF)
+d_SetDataRegion( hex("17A5"), 91) -- Zero padding / ALIGN 1800 (17A5-17FF)
+
+-- Error message table (bit-7 terminated strings with 0x05 color attr)
+d_SetDataRegion( hex("1554"), 593) -- Error messages (1554-17A4)
+
+-- Device descriptors (25 bytes each)
+d_SetDataRegion( hex("0B78"), 25) -- $CRT device descriptor
+d_SetDataRegion( hex("0B91"), 25) -- $KB device descriptor
+d_SetDataRegion( hex("0D5E"), 25) -- $USR device descriptor
+d_SetDataRegion( hex("0F00"), 25) -- $LPT device descriptor
+d_SetDataRegion( hex("2FF7"), 25) -- $CMT device descriptor
+d_SetDataRegion( hex("3359"), 25) -- $RS device descriptor
+d_SetDataRegion( hex("358D"), 25) -- $FD device descriptor
+d_SetDataRegion( hex("38A2"), 25) -- $QD device descriptor
+
+-- Zero padding near $FD descriptor
+d_SetDataRegion( hex("35AA"), 22) -- Zero padding (35AA-35BF)
+
+-- Zero padding near $QD descriptor
+d_SetDataRegion( hex("3952"), 22) -- Zero padding (3952-3967)
+
+-- CMT status strings
+d_SetDataRegion( hex("32BC"), 12) -- "RECORD.PLAY" + null (32BC-32C7)
+d_SetDataRegion( hex("3325"), 51) -- WRITING/FOUND/LOADING/VERIFYING strings (3325-3357)
+
+-- Directory/file type strings
+d_SetDataRegion( hex("1E1D"), 130) -- Dir strings + file type suffixes
+
+-- Large work/buffer area (BASIC line buffer, variable space)
+d_SetDataRegion( hex("1FC0"), 2368) -- Work RAM (1FC0-28FF)
+
+-- Small zero padding in code area
+d_SetDataRegion( hex("2CA5"), 16) -- Zero padding (2CA5-2CB4)
+
+-- AUTO RUN string
+d_SetDataRegion( hex("4037"), 19) -- RUN "AUTO RUN" CR (embedded quotes break assembler)
+
+-- BASIC keyword tables
+d_SetDataRegion( hex("415B"), 411) -- Statement keyword text table (415B-42F5)
+d_SetDataRegion( hex("42F6"), 88) -- Extended keyword text table (42F6-434D)
+d_SetDataRegion( hex("434E"), 158) -- Function keyword text table (434E-43EB)
+d_SetWordRegion( hex("43EC"), 446) -- Keyword dispatch address table (43EC-45A9)
+
+-- ALIGN 5600 padding
+d_SetDataRegion( hex("553A"), 198) -- Zero padding / ALIGN 5600 (553A-55FF)
+
+-- Device config string
+d_SetStringRegion(hex("5E37"), 18) -- XCMT:TRS?:0,$8C,13
+
+-- Work area in code section
+d_SetDataRegion( hex("6DB5"), 45) -- DS work area in code (6DB5-6DE1)
+
+-- Floating point constants and tables
+d_SetDataRegion( hex("8471"), 33) -- FP work area (8471-8491)
+d_SetDataRegion( hex("8492"), 60) -- FP data area (8492-84CD)
+
+-- Banner/splash screen
+d_SetDataRegion( hex("84CE"), 212) -- Splash screen data (84CE-85A1)
+d_SetDataRegion( hex("85A2"), 93) -- Zero padding (85A2-85FE)
+
+-- Undocumented DD prefix byte (DD 14 = INC IXH, dz80 drops the DD prefix)
+d_SetDataRegion( hex("01FE"), 1) -- DD prefix byte for undocumented DD 14 (INC IXH)
+
+-- Inline data bytes after RST 18H (SVC calls) and CALL TEST1/TESTX
+-- These are single data bytes that follow instructions with inline parameters
+-- RST 18H (DF xx): the xx byte is the SVC function number
+-- CALL 0164H (TEST1) and CALL 016EH (TESTX): inline test byte follows
+d_SetDataRegion( hex("02CA"), 1)
+d_SetDataRegion( hex("02E5"), 1)
+d_SetDataRegion( hex("02ED"), 1)
+d_SetDataRegion( hex("0325"), 1)
+d_SetDataRegion( hex("033A"), 1)
+d_SetDataRegion( hex("0609"), 1)
+d_SetDataRegion( hex("060C"), 1)
+d_SetDataRegion( hex("0884"), 1)
+d_SetDataRegion( hex("089C"), 1)
+d_SetDataRegion( hex("092D"), 1)
+d_SetDataRegion( hex("0BAB"), 1)
+d_SetDataRegion( hex("0BB3"), 1)
+d_SetDataRegion( hex("0CBF"), 1)
+d_SetDataRegion( hex("0CCA"), 1)
+d_SetDataRegion( hex("0CDD"), 1)
+d_SetDataRegion( hex("0D7B"), 1)
+d_SetDataRegion( hex("0F3C"), 1)
+d_SetDataRegion( hex("0F4C"), 1)
+d_SetDataRegion( hex("1449"), 1)
+d_SetDataRegion( hex("14AE"), 1)
+d_SetDataRegion( hex("14B4"), 1)
+d_SetDataRegion( hex("14E7"), 1)
+d_SetDataRegion( hex("14E9"), 1)
+d_SetDataRegion( hex("14F7"), 1)
+d_SetDataRegion( hex("1528"), 1)
+d_SetDataRegion( hex("1530"), 1)
+d_SetDataRegion( hex("153C"), 1)
+d_SetDataRegion( hex("1934"), 1)
+d_SetDataRegion( hex("1938"), 1)
+d_SetDataRegion( hex("193A"), 1)
+d_SetDataRegion( hex("1947"), 1)
+d_SetDataRegion( hex("1951"), 1)
+d_SetDataRegion( hex("1964"), 1)
+d_SetDataRegion( hex("19F2"), 1)
+d_SetDataRegion( hex("1ABC"), 1)
+d_SetDataRegion( hex("1ACA"), 1)
+d_SetDataRegion( hex("1AF3"), 1)
+d_SetDataRegion( hex("1B18"), 1)
+d_SetDataRegion( hex("1BB4"), 1)
+d_SetDataRegion( hex("1BE6"), 1)
+d_SetDataRegion( hex("1BF2"), 1)
+d_SetDataRegion( hex("1D9F"), 1)
+d_SetDataRegion( hex("1E15"), 1)
+d_SetDataRegion( hex("1E17"), 1)
+d_SetDataRegion( hex("1E19"), 1)
+d_SetDataRegion( hex("1E1B"), 1)
+d_SetDataRegion( hex("1E77"), 1)
+d_SetDataRegion( hex("1E7A"), 1)
+d_SetDataRegion( hex("1E7D"), 1)
+d_SetDataRegion( hex("1E83"), 1)
+d_SetDataRegion( hex("1E87"), 1)
+d_SetDataRegion( hex("1EF5"), 1)
+d_SetDataRegion( hex("1F1A"), 1)
+d_SetDataRegion( hex("1F64"), 1)
+d_SetDataRegion( hex("2944"), 1)
+d_SetDataRegion( hex("2AA4"), 1)
+d_SetDataRegion( hex("2D13"), 1)
+d_SetDataRegion( hex("2D68"), 1)
+d_SetDataRegion( hex("2E66"), 1)
+d_SetDataRegion( hex("3017"), 1)
+d_SetDataRegion( hex("3111"), 1)
+d_SetDataRegion( hex("3178"), 1)
+d_SetDataRegion( hex("31AF"), 1)
+d_SetDataRegion( hex("31B3"), 1)
+d_SetDataRegion( hex("31B7"), 1)
+d_SetDataRegion( hex("31C4"), 1)
+d_SetDataRegion( hex("31C6"), 1)
+d_SetDataRegion( hex("3307"), 1)
+d_SetDataRegion( hex("3309"), 1)
+d_SetDataRegion( hex("330F"), 1)
+d_SetDataRegion( hex("3318"), 1)
+d_SetDataRegion( hex("3320"), 1)
+d_SetDataRegion( hex("3322"), 1)
+d_SetDataRegion( hex("3381"), 1)
+d_SetDataRegion( hex("3388"), 1)
+d_SetDataRegion( hex("338D"), 1)
+d_SetDataRegion( hex("3398"), 1)
+d_SetDataRegion( hex("339D"), 1)
+d_SetDataRegion( hex("339F"), 1)
+d_SetDataRegion( hex("3705"), 1)
+d_SetDataRegion( hex("38C6"), 1)
+d_SetDataRegion( hex("38D5"), 1)
+d_SetDataRegion( hex("38DE"), 1)
+d_SetDataRegion( hex("3913"), 1)
+d_SetDataRegion( hex("391D"), 1)
+d_SetDataRegion( hex("392B"), 1)
+d_SetDataRegion( hex("3DC3"), 1)
+d_SetDataRegion( hex("3DC7"), 1)
+d_SetDataRegion( hex("3DEB"), 1)
+d_SetDataRegion( hex("3DED"), 1)
+d_SetDataRegion( hex("3E32"), 1)
+d_SetDataRegion( hex("3E44"), 1)
+d_SetDataRegion( hex("3E4A"), 1)
+d_SetDataRegion( hex("3E58"), 1)
+d_SetDataRegion( hex("3E6B"), 1)
+d_SetDataRegion( hex("3EAA"), 1)
+d_SetDataRegion( hex("3F0C"), 1)
+d_SetDataRegion( hex("3F13"), 1)
+d_SetDataRegion( hex("3F1D"), 1)
+d_SetDataRegion( hex("3F22"), 1)
+d_SetDataRegion( hex("3F24"), 1)
+d_SetDataRegion( hex("3F2A"), 1)
+d_SetDataRegion( hex("3F36"), 1)
+d_SetDataRegion( hex("3F4C"), 1)
+d_SetDataRegion( hex("3F5A"), 1)
+d_SetDataRegion( hex("3F65"), 1)
+d_SetDataRegion( hex("3F67"), 1)
+d_SetDataRegion( hex("3F9C"), 1)
+d_SetDataRegion( hex("3FE3"), 1)
+d_SetDataRegion( hex("3FE5"), 1)
+d_SetDataRegion( hex("401F"), 1)
+d_SetDataRegion( hex("4021"), 1)
+d_SetDataRegion( hex("4049"), 1)
+d_SetDataRegion( hex("4051"), 1)
+d_SetDataRegion( hex("4056"), 1)
+d_SetDataRegion( hex("4058"), 1)
+d_SetDataRegion( hex("4079"), 1)
+d_SetDataRegion( hex("407E"), 1)
+d_SetDataRegion( hex("45AD"), 1)
+d_SetDataRegion( hex("4644"), 1)
+d_SetDataRegion( hex("464A"), 1)
+d_SetDataRegion( hex("467D"), 1)
+d_SetDataRegion( hex("46A0"), 1)
+d_SetDataRegion( hex("4726"), 1)
+d_SetDataRegion( hex("472A"), 1)
+d_SetDataRegion( hex("4730"), 1)
+d_SetDataRegion( hex("4738"), 1)
+d_SetDataRegion( hex("473F"), 1)
+d_SetDataRegion( hex("47D2"), 1)
+d_SetDataRegion( hex("4855"), 1)
+d_SetDataRegion( hex("488D"), 1)
+d_SetDataRegion( hex("48DE"), 1)
+d_SetDataRegion( hex("48E2"), 1)
+d_SetDataRegion( hex("48F4"), 1)
+d_SetDataRegion( hex("48FE"), 1)
+d_SetDataRegion( hex("492E"), 1)
+d_SetDataRegion( hex("4963"), 1)
+d_SetDataRegion( hex("4967"), 1)
+d_SetDataRegion( hex("4986"), 1)
+d_SetDataRegion( hex("498E"), 1)
+d_SetDataRegion( hex("4992"), 1)
+d_SetDataRegion( hex("49E6"), 1)
+d_SetDataRegion( hex("4A20"), 1)
+d_SetDataRegion( hex("4B5F"), 1)
+d_SetDataRegion( hex("4B64"), 1)
+d_SetDataRegion( hex("4B8B"), 1)
+d_SetDataRegion( hex("4BCF"), 1)
+d_SetDataRegion( hex("4BF0"), 1)
+d_SetDataRegion( hex("4BF2"), 1)
+d_SetDataRegion( hex("4BF7"), 1)
+d_SetDataRegion( hex("4C69"), 1)
+d_SetDataRegion( hex("4C6F"), 1)
+d_SetDataRegion( hex("4C73"), 1)
+d_SetDataRegion( hex("4C9C"), 1)
+d_SetDataRegion( hex("4CA9"), 1)
+d_SetDataRegion( hex("4CCE"), 1)
+d_SetDataRegion( hex("4DC7"), 1)
+d_SetDataRegion( hex("4DD4"), 1)
+d_SetDataRegion( hex("4EAA"), 1)
+d_SetDataRegion( hex("4EC0"), 1)
+d_SetDataRegion( hex("4F3D"), 1)
+d_SetDataRegion( hex("4F4D"), 1)
+d_SetDataRegion( hex("4F85"), 1)
+d_SetDataRegion( hex("4FFE"), 1)
+d_SetDataRegion( hex("5013"), 1)
+d_SetDataRegion( hex("5047"), 1)
+d_SetDataRegion( hex("5051"), 1)
+d_SetDataRegion( hex("5057"), 1)
+d_SetDataRegion( hex("505D"), 1)
+d_SetDataRegion( hex("50ED"), 1)
+d_SetDataRegion( hex("513C"), 1)
+d_SetDataRegion( hex("5188"), 1)
+d_SetDataRegion( hex("5215"), 1)
+d_SetDataRegion( hex("5248"), 1)
+d_SetDataRegion( hex("5256"), 1)
+d_SetDataRegion( hex("525C"), 1)
+d_SetDataRegion( hex("525E"), 1)
+d_SetDataRegion( hex("5276"), 1)
+d_SetDataRegion( hex("529E"), 1)
+d_SetDataRegion( hex("52CC"), 1)
+d_SetDataRegion( hex("52D8"), 1)
+d_SetDataRegion( hex("5336"), 1)
+d_SetDataRegion( hex("5354"), 1)
+d_SetDataRegion( hex("5356"), 1)
+d_SetDataRegion( hex("5363"), 1)
+d_SetDataRegion( hex("53AC"), 1)
+d_SetDataRegion( hex("53B4"), 1)
+d_SetDataRegion( hex("53CA"), 1)
+d_SetDataRegion( hex("53DD"), 1)
+d_SetDataRegion( hex("53E9"), 1)
+d_SetDataRegion( hex("53EB"), 1)
+d_SetDataRegion( hex("5404"), 1)
+d_SetDataRegion( hex("5407"), 1)
+d_SetDataRegion( hex("5410"), 1)
+d_SetDataRegion( hex("5420"), 1)
+d_SetDataRegion( hex("542A"), 1)
+d_SetDataRegion( hex("543A"), 1)
+d_SetDataRegion( hex("5459"), 1)
+d_SetDataRegion( hex("545F"), 1)
+d_SetDataRegion( hex("5463"), 1)
+d_SetDataRegion( hex("546A"), 1)
+d_SetDataRegion( hex("5471"), 1)
+d_SetDataRegion( hex("5475"), 1)
+d_SetDataRegion( hex("54A9"), 1)
+d_SetDataRegion( hex("54BC"), 1)
+d_SetDataRegion( hex("54D4"), 1)
+d_SetDataRegion( hex("54E6"), 1)
+d_SetDataRegion( hex("5538"), 1)
+d_SetDataRegion( hex("5617"), 1)
+d_SetDataRegion( hex("562C"), 1)
+d_SetDataRegion( hex("5645"), 1)
+d_SetDataRegion( hex("5654"), 1)
+d_SetDataRegion( hex("56F4"), 1)
+d_SetDataRegion( hex("572F"), 1)
+d_SetDataRegion( hex("573D"), 1)
+d_SetDataRegion( hex("5744"), 1)
+d_SetDataRegion( hex("574F"), 1)
+d_SetDataRegion( hex("575F"), 1)
+d_SetDataRegion( hex("5787"), 1)
+d_SetDataRegion( hex("578F"), 1)
+d_SetDataRegion( hex("57C2"), 1)
+d_SetDataRegion( hex("57F6"), 1)
+d_SetDataRegion( hex("581C"), 1)
+d_SetDataRegion( hex("5857"), 1)
+d_SetDataRegion( hex("5885"), 1)
+d_SetDataRegion( hex("58B0"), 1)
+d_SetDataRegion( hex("58B7"), 1)
+d_SetDataRegion( hex("58BE"), 1)
+d_SetDataRegion( hex("58CE"), 1)
+d_SetDataRegion( hex("58DA"), 1)
+d_SetDataRegion( hex("58DC"), 1)
+d_SetDataRegion( hex("5909"), 1)
+d_SetDataRegion( hex("5922"), 1)
+d_SetDataRegion( hex("5926"), 1)
+d_SetDataRegion( hex("592B"), 1)
+d_SetDataRegion( hex("5937"), 1)
+d_SetDataRegion( hex("596D"), 1)
+d_SetDataRegion( hex("598C"), 1)
+d_SetDataRegion( hex("59C4"), 1)
+d_SetDataRegion( hex("59F3"), 1)
+d_SetDataRegion( hex("59F7"), 1)
+d_SetDataRegion( hex("5A1D"), 1)
+d_SetDataRegion( hex("5A56"), 1)
+d_SetDataRegion( hex("5A77"), 1)
+d_SetDataRegion( hex("5A9B"), 1)
+d_SetDataRegion( hex("5AB8"), 1)
+d_SetDataRegion( hex("5AF4"), 1)
+d_SetDataRegion( hex("5B1E"), 1)
+d_SetDataRegion( hex("5B24"), 1)
+d_SetDataRegion( hex("5B5D"), 1)
+d_SetDataRegion( hex("5B61"), 1)
+d_SetDataRegion( hex("5B65"), 1)
+d_SetDataRegion( hex("5BD5"), 1)
+d_SetDataRegion( hex("5BE0"), 1)
+d_SetDataRegion( hex("5C3A"), 1)
+d_SetDataRegion( hex("5C49"), 1)
+d_SetDataRegion( hex("5C6F"), 1)
+d_SetDataRegion( hex("5C7B"), 1)
+d_SetDataRegion( hex("5C85"), 1)
+d_SetDataRegion( hex("5C93"), 1)
+d_SetDataRegion( hex("5CB2"), 1)
+d_SetDataRegion( hex("5CB8"), 1)
+d_SetDataRegion( hex("5CD3"), 1)
+d_SetDataRegion( hex("5CDE"), 1)
+d_SetDataRegion( hex("5CE1"), 1)
+d_SetDataRegion( hex("5CE8"), 1)
+d_SetDataRegion( hex("5CFA"), 1)
+d_SetDataRegion( hex("5CFD"), 1)
+d_SetDataRegion( hex("5D00"), 1)
+d_SetDataRegion( hex("5D06"), 1)
+d_SetDataRegion( hex("5D08"), 1)
+d_SetDataRegion( hex("5D0E"), 1)
+d_SetDataRegion( hex("5D16"), 1)
+d_SetDataRegion( hex("5D1F"), 1)
+d_SetDataRegion( hex("5D3E"), 1)
+d_SetDataRegion( hex("5D51"), 1)
+d_SetDataRegion( hex("5D5C"), 1)
+d_SetDataRegion( hex("5D63"), 1)
+d_SetDataRegion( hex("5D70"), 1)
+d_SetDataRegion( hex("5D86"), 1)
+d_SetDataRegion( hex("5DF8"), 1)
+d_SetDataRegion( hex("5DFC"), 1)
+d_SetDataRegion( hex("5E03"), 1)
+d_SetDataRegion( hex("5E56"), 1)
+d_SetDataRegion( hex("5E5B"), 1)
+d_SetDataRegion( hex("5E6D"), 1)
+d_SetDataRegion( hex("5F08"), 1)
+d_SetDataRegion( hex("618A"), 1)
+d_SetDataRegion( hex("6223"), 1)
+d_SetDataRegion( hex("6553"), 1)
+d_SetDataRegion( hex("67AD"), 1)
+d_SetDataRegion( hex("6811"), 1)
+d_SetDataRegion( hex("68BC"), 1)
+d_SetDataRegion( hex("68C7"), 1)
+d_SetDataRegion( hex("6A14"), 1)
+d_SetDataRegion( hex("6A36"), 1)
+d_SetDataRegion( hex("6A3C"), 1)
+d_SetDataRegion( hex("6A45"), 1)
+d_SetDataRegion( hex("6A4B"), 1)
+d_SetDataRegion( hex("6A51"), 1)
+d_SetDataRegion( hex("6A5E"), 1)
+d_SetDataRegion( hex("6A6E"), 1)
+d_SetDataRegion( hex("6A70"), 1)
+d_SetDataRegion( hex("6A72"), 1)
+d_SetDataRegion( hex("6A77"), 1)
+d_SetDataRegion( hex("6AA3"), 1)
+d_SetDataRegion( hex("6AAB"), 1)
+d_SetDataRegion( hex("6AED"), 1)
+d_SetDataRegion( hex("6AFE"), 1)
+d_SetDataRegion( hex("6B28"), 1)
+d_SetDataRegion( hex("6B58"), 1)
+d_SetDataRegion( hex("6B62"), 1)
+d_SetDataRegion( hex("6B67"), 1)
+d_SetDataRegion( hex("6B6F"), 1)
+d_SetDataRegion( hex("6B8B"), 1)
+d_SetDataRegion( hex("6BA6"), 1)
+d_SetDataRegion( hex("6BAD"), 1)
+d_SetDataRegion( hex("6BB8"), 1)
+d_SetDataRegion( hex("6BD9"), 1)
+d_SetDataRegion( hex("6BDC"), 1)
+d_SetDataRegion( hex("6C0D"), 1)
+d_SetDataRegion( hex("6C15"), 1)
+d_SetDataRegion( hex("6CFF"), 1)
+d_SetDataRegion( hex("6D5C"), 1)
+d_SetDataRegion( hex("6DEE"), 1)
+d_SetDataRegion( hex("6DF1"), 1)
+d_SetDataRegion( hex("6E01"), 1)
+d_SetDataRegion( hex("6E19"), 1)
+d_SetDataRegion( hex("6E1B"), 1)
+d_SetDataRegion( hex("6E48"), 1)
+d_SetDataRegion( hex("6EF9"), 1)
+d_SetDataRegion( hex("6FF9"), 1)
+d_SetDataRegion( hex("7024"), 1)
+d_SetDataRegion( hex("7121"), 1)
+d_SetDataRegion( hex("7143"), 1)
+d_SetDataRegion( hex("71B9"), 1)
+d_SetDataRegion( hex("71FE"), 1)
+d_SetDataRegion( hex("7242"), 1)
+d_SetDataRegion( hex("7253"), 1)
+d_SetDataRegion( hex("72DE"), 1)
+d_SetDataRegion( hex("7334"), 1)
+d_SetDataRegion( hex("73C5"), 1)
+d_SetDataRegion( hex("73FF"), 1)
+d_SetDataRegion( hex("7479"), 1)
+d_SetDataRegion( hex("7624"), 1)
+d_SetDataRegion( hex("7665"), 1)
+d_SetDataRegion( hex("787F"), 1)
+d_SetDataRegion( hex("793C"), 1)
+d_SetDataRegion( hex("835A"), 1)
+
+
+----------------------------------------
+-- I/O Port Equates (MZ-700)
+----------------------------------------
+
+d_SetByteEquate(hex("D0"), 0, "LSD0" ) -- 8255 Port A (keyboard data)
+d_SetByteEquate(hex("D1"), 0, "LSD1" ) -- 8255 Port B (VBLANK, motor)
+d_SetByteEquate(hex("D2"), 0, "LSD2" ) -- 8255 Port C (key strobe, etc)
+d_SetByteEquate(hex("D3"), 0, "LSD3" ) -- 8255 Control
+d_SetByteEquate(hex("E0"), 0, "LSE0" ) -- Memory bank: lower -> DRAM
+d_SetByteEquate(hex("E1"), 0, "LSE1" ) -- Memory bank: upper -> DRAM
+d_SetByteEquate(hex("E2"), 0, "LSE2" ) -- Memory bank: lower -> Monitor ROM
+d_SetByteEquate(hex("E3"), 0, "LSE3" ) -- Memory bank: upper -> MMIO
+d_SetByteEquate(hex("E4"), 0, "LSE4" ) -- Memory bank: ROM + MMIO
+d_SetByteEquate(hex("E5"), 0, "LSE5" ) -- Memory bank: upper -> Inhibit
+d_SetByteEquate(hex("E6"), 0, "LSE6" ) -- Memory bank: upper -> Restore
+d_SetByteEquate(hex("F2"), 0, "QDPA" ) -- QD Port A
+d_SetByteEquate(hex("F3"), 0, "QDPB" ) -- QD Port B
+d_SetByteEquate(hex("F4"), 0, "QDPC" ) -- QD Port C
+d_SetByteEquate(hex("F5"), 0, "QDPD" ) -- QD Port D
+d_SetByteEquate(hex("F8"), 0, "FDPA" ) -- FD WD1773 status/cmd
+d_SetByteEquate(hex("F9"), 0, "FDPB" ) -- FD WD1773 track
+d_SetByteEquate(hex("FA"), 0, "FDPC" ) -- FD WD1773 sector
+d_SetByteEquate(hex("FB"), 0, "FDPD" ) -- FD WD1773 data
+d_SetByteEquate(hex("FC"), 0, "LSFC" ) -- Border/font color
+
+----------------------------------------
+-- Memory-mapped hardware / Work area addresses
+----------------------------------------
+
+-- ELMD file directory entry (1000H-103FH)
+d_SetWordEquate(hex("1000"), 0, "ELMD" )
+d_SetWordEquate(hex("1001"), 0, "ELMD1" )
+d_SetWordEquate(hex("1012"), 0, "ELMD18" )
+d_SetWordEquate(hex("1014"), 0, "ELMD20" )
+d_SetWordEquate(hex("1016"), 0, "ELMD22" )
+d_SetWordEquate(hex("1018"), 0, "ELMD24" )
+d_SetWordEquate(hex("101A"), 0, "ELMD26" )
+d_SetWordEquate(hex("101E"), 0, "ELMD30" )
+d_SetWordEquate(hex("1020"), 0, "ELMD32" )
+
+-- Z-area (logical unit work area, 1040H-1067H)
+d_SetWordEquate(hex("1040"), 0, "ZTOP" )
+d_SetWordEquate(hex("1042"), 0, "ZLOG" )
+d_SetWordEquate(hex("1043"), 0, "ZRWX" )
+d_SetWordEquate(hex("1044"), 0, "ZEQT" )
+d_SetWordEquate(hex("1046"), 0, "ZCH" )
+d_SetWordEquate(hex("1047"), 0, "ZEOF" )
+d_SetWordEquate(hex("1048"), 0, "ZWRK1" )
+d_SetWordEquate(hex("1049"), 0, "ZWRK2" )
+d_SetWordEquate(hex("104A"), 0, "ZNXT" )
+d_SetWordEquate(hex("104C"), 0, "ZDEVNM" )
+d_SetWordEquate(hex("1050"), 0, "ZFLAG1" )
+d_SetWordEquate(hex("1051"), 0, "ZFLAG2" )
+d_SetWordEquate(hex("1052"), 0, "ZDIRMX" )
+d_SetWordEquate(hex("1053"), 0, "ZINIT" )
+d_SetWordEquate(hex("1055"), 0, "ZRO" )
+d_SetWordEquate(hex("1057"), 0, "ZWO" )
+d_SetWordEquate(hex("1059"), 0, "ZCL" )
+d_SetWordEquate(hex("105B"), 0, "ZKL" )
+d_SetWordEquate(hex("105D"), 0, "ZINP" )
+d_SetWordEquate(hex("105F"), 0, "ZOUT" )
+d_SetWordEquate(hex("1061"), 0, "ZDELT" )
+d_SetWordEquate(hex("1063"), 0, "ZWDIR" )
+d_SetWordEquate(hex("1065"), 0, "ZFREE" )
+
+-- Default channel/device
+d_SetWordEquate(hex("1069"), 0, "DCHAN" )
+d_SetWordEquate(hex("106A"), 0, "DDEV" )
+d_SetWordEquate(hex("106C"), 0, ".$CRT" )
+d_SetWordEquate(hex("106E"), 0, ".$LPT" )
+
+-- Text/variable/string areas
+d_SetWordEquate(hex("1070"), 0, "TEXTST" )
+d_SetWordEquate(hex("1072"), 0, "TEXTED" )
+d_SetWordEquate(hex("1074"), 0, "VARST" )
+d_SetWordEquate(hex("1076"), 0, "STRST" )
+d_SetWordEquate(hex("1078"), 0, "VARED" )
+d_SetWordEquate(hex("107A"), 0, "TMPEND" )
+d_SetWordEquate(hex("107C"), 0, "INTFAC" )
+d_SetWordEquate(hex("107E"), 0, "MEMLMT" )
+d_SetWordEquate(hex("1080"), 0, "MEMMAX" )
+
+-- Cursor & graphics
+d_SetWordEquate(hex("1082"), 0, "CURXY" )
+d_SetWordEquate(hex("1084"), 0, "POSADR" )
+d_SetWordEquate(hex("1086"), 0, "BITADR" )
+d_SetWordEquate(hex("1088"), 0, "POINTX" )
+d_SetWordEquate(hex("108A"), 0, "POINTY" )
+d_SetWordEquate(hex("108C"), 0, "CURFLG" )
+d_SetWordEquate(hex("108D"), 0, "CURMAK" )
+d_SetWordEquate(hex("108E"), 0, "CMTMSG" )
+d_SetWordEquate(hex("108F"), 0, "INPFLG" )
+d_SetWordEquate(hex("1090"), 0, "DISPX" )
+d_SetWordEquate(hex("1091"), 0, "FILOUT" )
+d_SetWordEquate(hex("1092"), 0, "PSEL" )
+d_SetWordEquate(hex("1093"), 0, "PCRLF" )
+d_SetWordEquate(hex("1094"), 0, "LPT_TM" )
+d_SetWordEquate(hex("1095"), 0, "LPOSB" )
+d_SetWordEquate(hex("1096"), 0, "PSMAL" )
+d_SetWordEquate(hex("1097"), 0, "PNMODE" )
+d_SetWordEquate(hex("1098"), 0, "DMD" )
+d_SetWordEquate(hex("1099"), 0, "MEMOP" )
+d_SetWordEquate(hex("109A"), 0, "PWMODE" )
+d_SetWordEquate(hex("109B"), 0, "CMODE" )
+d_SetWordEquate(hex("109C"), 0, "CPLANE" )
+d_SetWordEquate(hex("109D"), 0, "MAXCF" )
+d_SetWordEquate(hex("109E"), 0, "PMASK" )
+d_SetWordEquate(hex("109F"), 0, "GMODE" )
+
+-- Keyboard/timer
+d_SetWordEquate(hex("1195"), 0, "TMCNT" )
+d_SetWordEquate(hex("1197"), 0, "SUMDT" )
+d_SetWordEquate(hex("1199"), 0, "CSMDT" )
+d_SetWordEquate(hex("119E"), 0, "TEMPW" )
+d_SetWordEquate(hex("11A3"), 0, "KEYBM1" )
+d_SetWordEquate(hex("11A4"), 0, "KEYBUF" )
+
+-- Function key buffer
+d_SetWordEquate(hex("12AA"), 0, "KEY262" )
+d_SetWordEquate(hex("12AC"), 0, "KEY264" )
+d_SetWordEquate(hex("12AE"), 0, "KEY266" )
+d_SetWordEquate(hex("12B2"), 0, "FUNBUF" )
+
+-- Input buffer
+d_SetWordEquate(hex("1352"), 0, "INBUFC" )
+d_SetWordEquate(hex("1353"), 0, "INBUFL" )
+d_SetWordEquate(hex("1354"), 0, "INBUF" )
+d_SetWordEquate(hex("1364"), 0, "LINLIM" )
+d_SetWordEquate(hex("1365"), 0, "KEYDAT" )
+d_SetWordEquate(hex("1366"), 0, "AMPM" )
+d_SetWordEquate(hex("1367"), 0, "SECD" )
+
+-- Graphics coordinates
+d_SetWordEquate(hex("1369"), 0, "XS" )
+d_SetWordEquate(hex("136A"), 0, "XE" )
+d_SetWordEquate(hex("136B"), 0, "CWIDTH" )
+d_SetWordEquate(hex("136D"), 0, "CSIZE" )
+d_SetWordEquate(hex("136F"), 0, "YS" )
+d_SetWordEquate(hex("1370"), 0, "YE" )
+d_SetWordEquate(hex("1371"), 0, "YW" )
+d_SetWordEquate(hex("1372"), 0, "SOF" )
+d_SetWordEquate(hex("1374"), 0, "SW" )
+d_SetWordEquate(hex("1375"), 0, "SSA" )
+d_SetWordEquate(hex("1376"), 0, "SEA" )
+d_SetWordEquate(hex("1377"), 0, "SSW" )
+
+-- CRT mode / palette
+d_SetWordEquate(hex("1379"), 0, "CRTMD1" )
+d_SetWordEquate(hex("137A"), 0, "CRTMD2" )
+d_SetWordEquate(hex("137B"), 0, "SELCOL" )
+d_SetWordEquate(hex("137C"), 0, "PAIWED" )
+d_SetWordEquate(hex("137E"), 0, "PALBK" )
+d_SetWordEquate(hex("137F"), 0, "PALAD" )
+d_SetWordEquate(hex("1381"), 0, "PALTBL" )
+d_SetWordEquate(hex("1385"), 0, "PAL2T" )
+d_SetWordEquate(hex("1389"), 0, "PAL4T" )
+d_SetWordEquate(hex("138D"), 0, "PAL16T" )
+d_SetWordEquate(hex("1391"), 0, "CURDT1" )
+d_SetWordEquate(hex("1399"), 0, "CURDT2" )
+d_SetWordEquate(hex("13A1"), 0, "CURDT3" )
+d_SetWordEquate(hex("13A9"), 0, "SCRNT0" )
+d_SetWordEquate(hex("13C3"), 0, "EMFLG" )
+d_SetWordEquate(hex("13C4"), 0, "EMPTR" )
+d_SetWordEquate(hex("13C6"), 0, "EMWP0" )
+d_SetWordEquate(hex("13C8"), 0, "EMWP1" )
+d_SetWordEquate(hex("13CE"), 0, "PBCN" )
+d_SetWordEquate(hex("13D9"), 0, "HERRF" )
+d_SetWordEquate(hex("13DA"), 0, "CTABLE" )
+
+-- Memory area base addresses
+d_SetWordEquate(hex("1000"), 0, "FONTBF" )
+d_SetWordEquate(hex("2000"), 0, "TEXTBF" )
+d_SetWordEquate(hex("8000"), 0, "BITBUF" )
+d_SetWordEquate(hex("10F0"), 0, "IBUFE" )
+d_SetWordEquate(hex("FDA0"), 0, "ERRTXT" )
+
+-- MZ-700 memory-mapped I/O region (D000H-DFFFH)
+d_SetWordEquate(hex("D000"), 0, "VRAM" )
+d_SetWordEquate(hex("D800"), 0, "ARAM" )
+d_SetWordEquate(hex("E000"), 0, "MMIO" )
+d_SetWordEquate(hex("E008"), 0, "TEMPO_" )
+d_SetWordEquate(hex("E010"), 0, "PPI_PA" )
+d_SetWordEquate(hex("E011"), 0, "PPI_PB" )
+d_SetWordEquate(hex("E012"), 0, "PPI_PC" )
+d_SetWordEquate(hex("E013"), 0, "PPI_CTL" )
+
+----------------------------------------
+-- Code entry point equates
+----------------------------------------
+
+-- These addresses are confirmed identical to MZ-2Z009E
+d_SetWordEquate(hex("0164"), 1, "TEST1" )
+d_SetWordEquate(hex("016E"), 1, "TESTX" )
+d_SetWordEquate(hex("0108"), 1, "SKPDE" )
+d_SetWordEquate(hex("015E"), 1, "HLFTCH" )
+d_SetWordEquate(hex("00EE"), 1, "POPRA" )
+d_SetWordEquate(hex("014A"), 1, "LDHLDE" )
+d_SetWordEquate(hex("012D"), 1, "LDDEMI" )
+d_SetWordEquate(hex("0245"), 1, "IOCALL" )
+d_SetWordEquate(hex("00E6"), 1, "BREAKX" )
+d_SetWordEquate(hex("00FB"), 1, "IOOUT" )
+d_SetWordEquate(hex("0640"), 1, "PUSHW" )
+
+-- Mon1 entry points (confirmed from jump table)
+d_SetWordEquate(hex("001E"), 1, "BRKCHK" )
+d_SetWordEquate(hex("0018"), 1, "SVC_ENTRY" )
+d_SetWordEquate(hex("0038"), 1, "RST38" )
+
+-- Mon1 routines
+d_SetWordEquate(hex("00A6"), 1, ".NOP" )
+d_SetWordEquate(hex("00A7"), 1, ".HL" )
+d_SetWordEquate(hex("00B2"), 1, ".RET" )
+d_SetWordEquate(hex("00BA"), 1, "PUSHRA" )
+d_SetWordEquate(hex("00C7"), 1, "PUSHR" )
+d_SetWordEquate(hex("00E5"), 1, "BREAKZ" )
+d_SetWordEquate(hex("00EB"), 1, "IOERR" )
+d_SetWordEquate(hex("00ED"), 1, "ERRORJ" )
+d_SetWordEquate(hex("00F0"), 1, "LSPAL_R" )
+d_SetWordEquate(hex("00FC"), 1, "LSFC_R" )
+d_SetWordEquate(hex("0104"), 1, "IOOUT_R" )
+d_SetWordEquate(hex("010D"), 1, "DEVASC" )
+d_SetWordEquate(hex("011B"), 1, "CHKACC" )
+d_SetWordEquate(hex("0132"), 1, "LDDEMD" )
+d_SetWordEquate(hex("0137"), 1, "?CLRHL" )
+d_SetWordEquate(hex("0138"), 1, "?SETHL" )
+d_SetWordEquate(hex("013D"), 1, "?CLRDE" )
+d_SetWordEquate(hex("013E"), 1, "?SETDE" )
+d_SetWordEquate(hex("0143"), 1, "LDDEHL" )
+d_SetWordEquate(hex("0151"), 1, "INDRCT" )
+d_SetWordEquate(hex("0158"), 1, "ADDHLA" )
+d_SetWordEquate(hex("015D"), 1, "INCHLF" )
+d_SetWordEquate(hex("0197"), 1, "FDDIR" )
+
+-- Mon2 routines
+d_SetWordEquate(hex("025E"), 1, "ASCHL" )
+d_SetWordEquate(hex("029E"), 1, "DEASC" )
+d_SetWordEquate(hex("02CE"), 1, "DEHEX" )
+d_SetWordEquate(hex("02E9"), 1, "CKHEX" )
+d_SetWordEquate(hex("02F8"), 1, "MHALT" )
+d_SetWordEquate(hex("0314"), 1, "SETDFL" )
+d_SetWordEquate(hex("031C"), 1, "ADDP0" )
+d_SetWordEquate(hex("0323"), 1, "ADDP1" )
+d_SetWordEquate(hex("032A"), 1, "ADDP2" )
+d_SetWordEquate(hex("0340"), 1, "ERRX" )
+d_SetWordEquate(hex("0397"), 1, "SETDNM" )
+d_SetWordEquate(hex("03BE"), 1, "DSMODE" )
+
+-- Mon3 routines
+d_SetWordEquate(hex("0441"), 1, "PALOFF" )
+d_SetWordEquate(hex("044F"), 1, "DPALBK" )
+d_SetWordEquate(hex("0476"), 1, "DPALST" )
+d_SetWordEquate(hex("048A"), 1, "DCOLOR" )
+d_SetWordEquate(hex("0493"), 1, "DGCOL" )
+d_SetWordEquate(hex("049C"), 1, "COLS" )
+d_SetWordEquate(hex("04AE"), 1, "DWIND" )
+d_SetWordEquate(hex("04EF"), 1, "DWIDTH" )
+d_SetWordEquate(hex("0531"), 1, "PATCH" )
+d_SetWordEquate(hex("05AD"), 1, "ACCDI" )
+d_SetWordEquate(hex("05CE"), 1, "BITMAP" )
+d_SetWordEquate(hex("05F9"), 1, "LBOUND" )
+d_SetWordEquate(hex("0615"), 1, "TBCALC" )
+d_SetWordEquate(hex("061D"), 1, "HCLSW" )
+d_SetWordEquate(hex("0652"), 1, "HCLS" )
+
+-- Mon-IOCS routines
+d_SetWordEquate(hex("092B"), 1, "HCURON" )
+d_SetWordEquate(hex("093B"), 1, "HCUROF" )
+d_SetWordEquate(hex("0945"), 1, "FLASH" )
+d_SetWordEquate(hex("094D"), 1, "CURMOV" )
+d_SetWordEquate(hex("0960"), 1, "PONTC" )
+d_SetWordEquate(hex("0963"), 1, "PONT" )
+d_SetWordEquate(hex("0977"), 1, "PONTCB" )
+d_SetWordEquate(hex("097A"), 1, "PONTB" )
+d_SetWordEquate(hex("0A58"), 1, "PRNTT" )
+d_SetWordEquate(hex("0A67"), 1, "BINPUT" )
+d_SetWordEquate(hex("0A84"), 1, "GETL" )
+d_SetWordEquate(hex("0B1A"), 1, "INKEY$" )
+d_SetWordEquate(hex("0B21"), 1, "INKEY1" )
+d_SetWordEquate(hex("0B8B"), 1, "INKEYF" )
+d_SetWordEquate(hex("0BA1"), 1, "INKEY0" )
+
+-- Device handlers
+d_SetWordEquate(hex("0D22"), 1, "BRKEY" )
+d_SetWordEquate(hex("0D5E"), 1, "$USR" )
+d_SetWordEquate(hex("0DF6"), 1, "$KB" )
+d_SetWordEquate(hex("0DDD"), 1, "EQTBL" )
+d_SetWordEquate(hex("0E61"), 1, "CRT1C" )
+d_SetWordEquate(hex("0EB3"), 1, "PLTOTX" )
+d_SetWordEquate(hex("0F7F"), 1, "$USR_5Z" )
+
+-- Device descriptors
+d_SetWordEquate(hex("0B78"), 1, "$CRT" )
+d_SetWordEquate(hex("0B91"), 1, "$KB_" )
+d_SetWordEquate(hex("0F00"), 1, "$LPT" )
+d_SetWordEquate(hex("2FF7"), 1, "$CMT" )
+d_SetWordEquate(hex("3359"), 1, "$RS" )
+d_SetWordEquate(hex("358D"), 1, "$FD" )
+d_SetWordEquate(hex("38A2"), 1, "$QD" )
+
+-- SVC dispatch table (at RST 18H handler)
+d_SetWordEquate(hex("022A"), 1, "SVC_DISP" )
+
+-- Keyword table labels (needed by post-processor)
+d_SetWordEquate(hex("415B"), 1, "STMTWORDTBL")
+d_SetWordEquate(hex("42F6"), 1, "EXTWORDTBL" )
+d_SetWordEquate(hex("434E"), 1, "FUNCWORDTBL")
+
+-- Known code entry at 5800H
+d_SetWordEquate(hex("5800"), 1, "$START" )
+
+----------------------------------------
+-- Comments
+----------------------------------------
+
+d_SetComment( hex("0000"), "Cold start entry - JP to initialization" )
+d_SetComment( hex("0018"), "RST 18H - SVC (Supervisor Call) dispatcher" )
+d_SetComment( hex("0038"), "RST 38H - Interrupt handler" )
+d_SetComment( hex("004D"), "System status / work area" )
+d_SetComment( hex("0B78"), "$CRT - CRT device descriptor" )
+d_SetComment( hex("0B91"), "$KB - Keyboard device descriptor" )
+d_SetComment( hex("0D5E"), "$USR - User device descriptor" )
+d_SetComment( hex("0F00"), "$LPT - Line printer device descriptor" )
+d_SetComment( hex("1554"), "Error message table (bit-7 terminated)" )
+d_SetComment( hex("1E1D"), "Directory/file type strings" )
+d_SetComment( hex("2FF7"), "$CMT - Cassette device descriptor" )
+d_SetComment( hex("32BC"), "CMT status strings (RECORD/PLAY)" )
+d_SetComment( hex("3325"), "CMT status strings (WRITING/FOUND/LOADING/VERIFYING)" )
+d_SetComment( hex("3359"), "$RS - RS-232C device descriptor" )
+d_SetComment( hex("358D"), "$FD - Floppy Disk device descriptor" )
+d_SetComment( hex("38A2"), "$QD - Quick Disk device descriptor" )
+d_SetComment( hex("4037"), "AUTO RUN string" )
+d_SetComment( hex("415B"), "BASIC statement keyword text table" )
+d_SetComment( hex("42F6"), "BASIC extended keyword text table" )
+d_SetComment( hex("434E"), "BASIC function keyword text table" )
+d_SetComment( hex("43EC"), "Keyword dispatch address table" )
+d_SetComment( hex("5800"), "$START - BASIC warm start / system entry" )
+d_SetComment( hex("5E37"), "XCMT device config string" )
+d_SetComment( hex("84CE"), "Splash screen / banner text" )
+
+----------------------------------------
+-- End of configuration file
+----------------------------------------
diff --git a/dis/MZ-5Z008/mz5z008.asm b/dis/MZ-5Z008/mz5z008.asm
new file mode 100644
index 0000000..2ca83d1
--- /dev/null
+++ b/dis/MZ-5Z008/mz5z008.asm
@@ -0,0 +1,17821 @@
+; Disassembly of the file "mz5z008.bin"
+;
+; CPU Type: Z80
+;
+; Created with dZ80 2.1
+;
+; on Friday, 20 of March 2026 at 02:41 PM
+;
+LSD0 EQU 0D0H
+LSD1 EQU 0D1H
+LSD2 EQU 0D2H
+LSD3 EQU 0D3H
+LSE0 EQU 0E0H
+LSE1 EQU 0E1H
+LSE2 EQU 0E2H
+LSE3 EQU 0E3H
+LSE4 EQU 0E4H
+LSE5 EQU 0E5H
+LSE6 EQU 0E6H
+QDPA EQU 0F2H
+QDPB EQU 0F3H
+QDPC EQU 0F4H
+QDPD EQU 0F5H
+FDPA EQU 0F8H
+FDPB EQU 0F9H
+FDPC EQU 0FAH
+FDPD EQU 0FBH
+LSFC EQU 0FCH
+ELMD EQU 01000H
+ELMD1 EQU 01001H
+ELMD18 EQU 01012H
+ELMD20 EQU 01014H
+ELMD22 EQU 01016H
+ELMD24 EQU 01018H
+ELMD26 EQU 0101AH
+ELMD30 EQU 0101EH
+ELMD32 EQU 01020H
+ZTOP EQU 01040H
+ZLOG EQU 01042H
+ZRWX EQU 01043H
+ZEQT EQU 01044H
+ZCH EQU 01046H
+ZEOF EQU 01047H
+ZWRK1 EQU 01048H
+ZWRK2 EQU 01049H
+ZNXT EQU 0104AH
+ZDEVNM EQU 0104CH
+ZFLAG1 EQU 01050H
+ZFLAG2 EQU 01051H
+ZDIRMX EQU 01052H
+ZINIT EQU 01053H
+ZRO EQU 01055H
+ZWO EQU 01057H
+ZCL EQU 01059H
+ZKL EQU 0105BH
+ZINP EQU 0105DH
+ZOUT EQU 0105FH
+ZDELT EQU 01061H
+ZWDIR EQU 01063H
+ZFREE EQU 01065H
+DCHAN EQU 01069H
+DDEV EQU 0106AH
+.$CRT EQU 0106CH
+.$LPT EQU 0106EH
+TEXTST EQU 01070H
+TEXTED EQU 01072H
+VARST EQU 01074H
+STRST EQU 01076H
+VARED EQU 01078H
+TMPEND EQU 0107AH
+INTFAC EQU 0107CH
+MEMLMT EQU 0107EH
+MEMMAX EQU 01080H
+CURXY EQU 01082H
+POSADR EQU 01084H
+BITADR EQU 01086H
+POINTX EQU 01088H
+POINTY EQU 0108AH
+CURFLG EQU 0108CH
+CURMAK EQU 0108DH
+CMTMSG EQU 0108EH
+INPFLG EQU 0108FH
+DISPX EQU 01090H
+FILOUT EQU 01091H
+PSEL EQU 01092H
+PCRLF EQU 01093H
+LPT_TM EQU 01094H
+LPOSB EQU 01095H
+PSMAL EQU 01096H
+PNMODE EQU 01097H
+DMD EQU 01098H
+MEMOP EQU 01099H
+PWMODE EQU 0109AH
+CMODE EQU 0109BH
+CPLANE EQU 0109CH
+MAXCF EQU 0109DH
+PMASK EQU 0109EH
+GMODE EQU 0109FH
+TMCNT EQU 01195H
+SUMDT EQU 01197H
+CSMDT EQU 01199H
+TEMPW EQU 0119EH
+KEYBM1 EQU 011A3H
+KEYBUF EQU 011A4H
+KEY262 EQU 012AAH
+KEY264 EQU 012ACH
+KEY266 EQU 012AEH
+FUNBUF EQU 012B2H
+INBUFC EQU 01352H
+INBUFL EQU 01353H
+INBUF EQU 01354H
+LINLIM EQU 01364H
+KEYDAT EQU 01365H
+AMPM EQU 01366H
+SECD EQU 01367H
+XS EQU 01369H
+XE EQU 0136AH
+CWIDTH EQU 0136BH
+CSIZE EQU 0136DH
+YS EQU 0136FH
+YE EQU 01370H
+YW EQU 01371H
+SOF EQU 01372H
+SW EQU 01374H
+SSA EQU 01375H
+SEA EQU 01376H
+SSW EQU 01377H
+CRTMD1 EQU 01379H
+CRTMD2 EQU 0137AH
+SELCOL EQU 0137BH
+PAIWED EQU 0137CH
+PALBK EQU 0137EH
+PALAD EQU 0137FH
+PALTBL EQU 01381H
+PAL2T EQU 01385H
+PAL4T EQU 01389H
+PAL16T EQU 0138DH
+CURDT1 EQU 01391H
+CURDT2 EQU 01399H
+CURDT3 EQU 013A1H
+SCRNT0 EQU 013A9H
+EMFLG EQU 013C3H
+EMPTR EQU 013C4H
+EMWP0 EQU 013C6H
+EMWP1 EQU 013C8H
+PBCN EQU 013CEH
+HERRF EQU 013D9H
+CTABLE EQU 013DAH
+FONTBF EQU 01000H
+TEXTBF EQU 02000H
+BITBUF EQU 08000H
+IBUFE EQU 010F0H
+ERRTXT EQU 0FDA0H
+VRAM EQU 0D000H
+ARAM EQU 0D800H
+MMIO EQU 0E000H
+TEMPO_ EQU 0E008H
+PPI_PA EQU 0E010H
+PPI_PB EQU 0E011H
+PPI_PC EQU 0E012H
+PPI_CTL EQU 0E013H
+PRGSTART EQU 00000H
+
+ ORG PRGSTART
+
+L0000: JP L0CAF ; Cold start entry - JP to initialization
+
+L0003: JP L028C
+
+L0006: JP L05EC
+
+ JP L05E8
+
+L000C: JP L0BFD
+
+L000F: JP L05F1
+
+L0012: JP L0BFF
+
+L0015: JP L0BEE
+
+SVC_ENTRY: JP SVC_DISP ; RST 18H - SVC (Supervisor Call) dispatcher
+
+ JP L041C
+
+BRKCHK: JP L05C1
+
+ JP L30CB
+
+ JP L30D2
+
+L0027: JP L3114
+
+ JP L311B
+
+ JP L3153
+
+L0030: JP L14BC
+
+ JP L0955
+
+L0036: LD B,B
+ NOP
+RST38: JP BREAKZ ; RST 38H - Interrupt handler
+
+ JP L098F
+
+L003E: JP L0D3F
+
+L0041: JP L0D30
+
+ JP L0D05
+
+ JP L0D20
+
+ JP L028C
+
+L004D: DB 000H ; System status / work area
+L004E: DB 000H
+L004F: DB 0FFH
+L0050: DB 000H
+ DB 0C3H
+ DB 0EEH
+ DB 00BH
+L0054: DS 2, 000H
+L0056: DB 000H
+L0057: DB 018H
+ DB 0C3H
+ DB 08AH
+ DB 003H
+L005B: DB 000H
+ DB 027H
+L005D: DB 071H
+ DB 000H
+L005F: DB 000H
+L0060: DB 0EFH
+ DB 0C3H
+ DB 037H
+ DB 00AH
+L0064: DB 000H
+L0065: DB 000H
+L0066: DB 000H
+L0067: DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 0ADH
+ DB 007H
+ DB 0F1H
+ DB 008H
+L0071: DB 015H
+ DB 008H
+ DB 012H
+ DB 008H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+L0080: DB 000H
+L0081: DB 0ADH
+ DB 007H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 01EH
+ DB 008H
+ DB 0CCH
+ DB 007H
+ DB 0F0H
+ DB 007H
+ DB LSD1
+ DB 007H
+ DB QDPD
+ DB 007H
+ DB 054H
+ DB 007H
+ DB 074H
+ DB 007H
+ DB 018H
+ DB 008H
+ DB 0BAH
+ DB 008H
+ DB 012H
+ DB 008H
+ DB LSE5
+ DB 000H
+ DB 0ADH
+ DB 007H
+ DB LSE5
+L00A0: DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+.NOP: DB 000H
+.HL: DS 11, 000H
+.RET: DS 8, 000H
+PUSHRA: DS 6, 000H
+L00C0: DS 7, 000H
+PUSHR: DS 18, 000H
+L00D9: DB 000H
+L00DA: DI
+ LD SP,L0000
+ IM 1
+ OUT (LSE1),A
+ JP L1800
+
+BREAKZ: RET
+
+BREAKX: DI
+ OUT (LSE3),A
+L00E9: LD A,(HL)
+ OUT (LSE1),A
+ EI
+ERRORJ: RET
+
+POPRA: DI
+ OUT (LSE3),A
+ LD (HL),A
+ OUT (LSE1),A
+ EI
+ RET
+
+ JP L026A
+
+L00F9: NOP
+L00FA: JP (HL)
+
+IOOUT: EX (SP),IX
+ PUSH HL
+ PUSH BC
+ PUSH DE
+L0100: PUSH AF
+L0101: PUSH HL
+ LD HL,L0114
+ EX (SP),HL
+ JP (IX)
+
+SKPDE: EX (SP),IX
+ PUSH HL
+ PUSH BC
+ PUSH DE
+DEVASC: PUSH HL
+ LD HL,L0115
+ EX (SP),HL
+ JP (IX)
+
+L0114: POP AF
+L0115: POP DE
+ POP BC
+ POP HL
+ POP IX
+ RET
+
+CHKACC: EX (SP),HL
+ PUSH BC
+ LD B,(HL)
+L011E: INC HL
+ CP (HL)
+ JR Z,L0127 ; (+005H)
+ DJNZ L011E ; (-006H)
+ INC HL
+ JR L012A ; (+003H)
+
+L0127: INC HL
+ DJNZ L0127 ; (-003H)
+L012A: POP BC
+ EX (SP),HL
+ RET
+
+LDDEMI: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ RET
+
+LDDEMD: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ RET
+
+?CLRHL: XOR A
+?SETHL: LD (HL),A
+ INC HL
+ DJNZ ?SETHL ; (-004H)
+ RET
+
+?CLRDE: XOR A
+?SETDE: LD (DE),A
+ INC DE
+L0140: DJNZ ?SETDE ; (-004H)
+ RET
+
+LDDEHL: LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ DJNZ LDDEHL ; (-006H)
+ RET
+
+LDHLDE: LD A,(DE)
+ LD (HL),A
+ INC HL
+ INC DE
+ DJNZ LDHLDE ; (-006H)
+ RET
+
+INDRCT: PUSH AF
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ POP AF
+ RET
+
+ADDHLA: ADD A,L
+ LD L,A
+ RET NC
+ INC H
+ RET
+
+INCHLF: INC HL
+HLFTCH: LD A,(HL)
+ CP 020H
+ JR Z,INCHLF ; (-006H)
+ RET
+
+TEST1: CALL HLFTCH
+ EX (SP),HL
+L0168: CP (HL)
+ INC HL
+ EX (SP),HL
+ RET NZ
+ INC HL
+ RET
+
+TESTX: CALL HLFTCH
+ EX (SP),HL
+ CP (HL)
+ INC HL
+ EX (SP),HL
+ INC HL
+ RET Z
+ LD A,001H
+ JR L0182 ; (+007H)
+
+L017B: XOR A
+ LD HL,L803E
+ LD HL,L80F6
+L0182: PUSH AF
+ CALL L0D20
+ POP AF
+ JP L0000
+
+L018A: SBC A,L
+ DEC A
+ CALL PE,0E805H
+ DEC B
+ RST 038H
+ DEC BC
+ LD B,E
+ INC C
+ EX AF,AF'
+ ADD HL,BC
+ XOR C
+FDDIR: RRCA
+ LD A,00FH
+ RET Z
+ DEC BC
+ JP Z,0D80BH
+ DEC BC
+ AND 00BH
+L01A2: ADC A,H
+ LD (BC),A
+ ADC A,D
+ INC BC
+ POP BC
+ DEC B
+ AND B
+ INC D
+ ADD A,A
+ LD A,(BC)
+ ADC A,C
+ LD A,(BC)
+ SCF
+ LD A,(BC)
+ LD B,(HL)
+ INC D
+ HALT
+ INC D
+ SUB C
+ INC D
+ LD B,014H
+ LD E,H
+ LD (BC),A
+ POP HL
+ INC C
+ RET PE
+ INC C
+ RST 028H
+ INC C
+ PUSH HL
+ INC D
+ AND H
+ INC DE
+ LD (HL),D
+ INC DE
+ LD C,E
+ LD B,LSE5
+ NOP
+ LD A,00DH
+ JR NC,L01CE ; (+000H)
+L01CE: PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ ADC A,A
+ ADD HL,BC
+ LD D,L
+ ADD HL,BC
+ SUB B
+L01D9: DEC C
+ RET PE
+ DEC DE
+ IN A,(01EH)
+ DEC E
+ RRA
+L01E0: POP AF
+ LD E,03DH
+ LD A,(DE)
+ CP B
+ LD A,(DE)
+ RET PO
+ ADD HL,DE
+ LD (HL),C
+ DEC DE
+ OR H
+ INC E
+ RET C
+ INC E
+ RET
+
+ INC E
+ POP HL
+ LD A,(DE)
+ RET NC
+ JR L01D9 ; (-01cH)
+
+ JR 00243H ; (+04cH)
+
+ ADD HL,DE
+ RRCA
+ JR L01A2 ; (-059H)
+
+ DEC DE
+ DEC DE
+ DEC E
+ DB 0DDH
+ INC D
+L0200: PUSH HL
+ NOP
+ LD E,B
+ LD E,067H
+ INC L
+ OR (HL)
+ INC L
+ LD B,(HL)
+ INC L
+ NOP
+ ADD HL,HL
+ SBC A,L
+ LD HL,(02925H)
+ XOR E
+ RRA
+ CALL M,L742A
+ RLCA
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+SVC_DISP: EX (SP),HL
+ PUSH AF
+ LD A,(HL)
+ INC HL
+ PUSH HL
+ LD HL,L018A
+ ADD A,A
+ ADD A,L
+ JR NC,L0237 ; (+001H)
+ INC H
+L0237: LD L,A
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ LD (00243H),HL
+ POP HL
+ POP AF
+ EX (SP),HL
+ JP L0000
+
+IOCALL: PUSH HL
+ PUSH DE
+ LD (00251H),IX
+ LD IX,00180H
+ OR A
+ CALL L0000
+ POP DE
+ POP HL
+ RET NC
+ OR A
+ SCF
+L0258: RET Z
+ JP 00180H
+
+ PUSH DE
+ LD B,000H
+L025F: LD A,(DE)
+ OR A
+ JR Z,L0268 ; (+005H)
+ INC DE
+ INC B
+ JR NZ,L025F ; (-008H)
+ DEC B
+L0268: POP DE
+ RET
+
+L026A: PUSH HL
+ LD HL,(L0054)
+ PUSH HL
+ PUSH DE
+ CALL PUSHW
+ POP DE
+ LD (HL),000H
+ POP HL
+ CALL L028C
+ JR C,L028A ; (+00eH)
+ LD A,(L005B)
+ SUB L
+ JR NC,L028A ; (+008H)
+ NEG
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ EX DE,HL
+ OR A
+L028A: POP HL
+ RET
+
+L028C: PUSH BC
+ PUSH HL
+ PUSH DE
+L028F: CALL L0391
+ CP 00DH
+ JP Z,L0311
+ CP 01BH
+ JR Z,L02E8 ; (+04dH)
+ PUSH AF
+ CP 020H
+DEASC: JR C,L02CD ; (+02dH)
+ JR L02C8 ; (+026H)
+
+L02A2: LD A,(L004D)
+ OR A
+ JR NZ,L02C8 ; (+020H)
+ LD A,(00B18H)
+ RRCA
+ JR C,L02C8 ; (+01aH)
+ LD A,(L004E)
+ OR A
+ JR NZ,L02C8 ; (+014H)
+ POP AF
+ LD HL,L06C1
+ CP 011H
+ JR Z,L02C3 ; (+007H)
+ LD HL,L06E7
+ CP 012H
+ JR NZ,L02C9 ; (+006H)
+L02C3: CALL L00FA
+ JR L028F ; (-039H)
+
+L02C8: POP AF
+L02C9: RST 018H
+ DB 003H
+ JR L028F ; (-03eH)
+
+L02CD: LD A,(L0060)
+ CP 0FFH
+ JR NZ,L02A2 ; (-032H)
+ POP AF
+ CP 017H
+ JR NC,L02C9 ; (-010H)
+ CP 011H
+ JR C,L02C9 ; (-014H)
+ LD HL,(00B18H)
+ BIT 6,L
+ JR Z,L02C9 ; (-01bH)
+ RST 018H
+ DB 004H
+ JR L028F ; (-059H)
+
+L02E8: SCF
+CKHEX: PUSH AF
+ LD A,00DH
+ RST 018H
+ DB 003H
+ POP AF
+ POP DE
+ POP HL
+ POP BC
+ RET
+
+L02F3: CALL PUSHW
+L02F6: LD A,(HL)
+ OR A
+MHALT: RET Z
+ DEC HL
+ DEC E
+ LD A,(L0056)
+ CP E
+ JR C,L02F6 ; (-00bH)
+ RET
+
+L0302: CALL PUSHW
+L0305: INC E
+ INC HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD A,(L0057)
+ CP E
+ JR NC,L0305 ; (-00bH)
+ RET
+
+L0311: LD HL,(L0054)
+SETDFL: CALL L02F3
+ LD D,E
+ CALL L0305
+ LD A,(L005B)
+ LD L,A
+ LD A,E
+ SUB D
+ LD E,A
+ LD H,D
+ADDP1: LD D,L
+ RST 018H
+ DB 01EH
+ LD A,(0005CH)
+ SUB D
+ADDP2: INC A
+ LD D,A
+ POP BC
+ PUSH BC
+ EXX
+ PUSH HL
+ LD HL,(L004F)
+ EXX
+L0334: PUSH DE
+ PUSH HL
+L0336: CALL BREAKX
+ RST 018H
+ DB 01CH
+ INC HL
+ LD (BC),A
+ INC BC
+L033E: EXX
+ DEC L
+ERRX: JR Z,L0354 ; (+012H)
+ EXX
+ DEC D
+ JR NZ,L0336 ; (-010H)
+ POP HL
+ PUSH BC
+ LD BC,00028H
+ ADD HL,BC
+ POP BC
+ POP DE
+ DEC E
+ JR NZ,L0334 ; (-01dH)
+ PUSH DE
+ PUSH HL
+ EXX
+L0354: EXX
+ POP HL
+ POP DE
+ EXX
+ POP HL
+ EXX
+ XOR A
+ LD (BC),A
+ LD L,C
+ LD H,B
+ POP DE
+ PUSH DE
+ PUSH HL
+ OR A
+ SBC HL,DE
+ LD B,L
+ POP HL
+ LD A,020H
+ LD D,A
+ JP Z,CKHEX
+ DEC HL
+L036D: LD A,(HL)
+ OR A
+ JR Z,L0376 ; (+005H)
+ CP D
+ JR NZ,L037D ; (+009H)
+ LD (HL),000H
+L0376: DEC HL
+ DJNZ L036D ; (-00cH)
+ OR A
+ JP CKHEX
+
+L037D: LD A,(HL)
+ OR A
+ JR NZ,L0383 ; (+002H)
+ LD (HL),020H
+L0383: DEC HL
+ DJNZ L037D ; (-009H)
+ OR A
+ JP CKHEX
+
+ INC A
+ JR Z,L0406 ; (+079H)
+ DEC A
+ JP Z,L041C
+L0391: CALL L0426
+ CALL SKPDE
+SETDNM: CALL L0648
+ CALL BREAKX
+ LD D,A
+ LD A,(L0060)
+ LD E,A
+ CALL POPRA
+ XOR A
+ DI
+ OUT (LSE3),A
+ LD (MMIO),A
+ CPL
+ LD (MMIO),A
+ OUT (LSE1),A
+ EI
+ LD C,000H
+ EX AF,AF'
+ PUSH AF
+ CALL L0459
+ LD A,000H
+L03BC: EX AF,AF'
+L03BD: LD B,010H
+L03BF: CALL L043C
+ CALL L0459
+ BIT 1,A
+ JR NZ,L03BD ; (-00cH)
+ DJNZ L03BF ; (-00cH)
+ BIT 0,A
+ JR Z,L03DB ; (+00cH)
+ BIT 2,A
+ JR NZ,L03EC ; (+019H)
+ EX AF,AF'
+ DEC A
+ JR NZ,L03BC ; (-01bH)
+ LD A,006H
+ JR L03EE ; (+013H)
+
+L03DB: PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,INKEY1
+ LD DE,L0B17
+ LD BC,0000AH
+L03E7: LDIR
+ POP BC
+ POP DE
+ POP HL
+L03EC: LD A,040H
+L03EE: LD (003BBH),A
+L03F1: CALL L043C
+ CALL L0494
+ OR A
+ JR Z,L03F1 ; (-009H)
+ LD (L005F),A
+ LD C,A
+ LD A,D
+ CALL POPRA
+ POP AF
+ EX AF,AF'
+ LD A,C
+ RET
+
+L0406: CALL L0426
+ PUSH HL
+ CALL L0494
+ LD HL,L005F
+ OR A
+ JR Z,L0419 ; (+006H)
+ CP (HL)
+ JR NZ,L0419 ; (+003H)
+ POP HL
+ XOR A
+ RET
+
+L0419: LD (HL),A
+ POP HL
+ RET
+
+L041C: CALL L0426
+ CALL L0494
+ LD (L005F),A
+ RET
+
+L0426: PUSH HL
+ LD HL,(L1360)
+ LD A,L
+ CP H
+ POP HL
+ RET Z
+ EX (SP),HL
+ INC A
+ LD (L1360),A
+ LD HL,L1361
+ CALL ADDHLA
+ LD A,(HL)
+ POP HL
+ RET
+
+L043C: DI
+ OUT (LSE3),A
+ LD A,(0E002H)
+ OUT (LSE1),A
+ EI
+ RLCA
+ RLCA
+ LD A,C
+ JR C,L0451 ; (+007H)
+ OR A
+ RET Z
+ LD C,000H
+ LD A,D
+DPALBK: JR L0456 ; (+005H)
+
+L0451: DEC A
+ RET Z
+ LD C,001H
+ LD A,E
+L0456: JP POPRA
+
+L0459: CALL SKPDE
+ LD DE,INKEY1
+ LD HL,L0B17
+ LD BC,L0A00
+ DI
+ OUT (LSE3),A
+L0468: LD A,B
+ ADD A,0EFH
+ LD (MMIO),A
+ CP FDPA
+ LD A,(0E001H)
+ JR NZ,L0477 ; (+002H)
+ OR 07FH
+L0477: CP 0FFH
+ JR Z,L047D ; (+002H)
+ SET 0,C
+L047D: EX DE,HL
+ CP (HL)
+ LD (HL),A
+ EX DE,HL
+ JR Z,L0485 ; (+002H)
+ SET 1,C
+L0485: CPL
+ AND (HL)
+ JR Z,L048B ; (+002H)
+ SET 2,C
+L048B: INC HL
+ INC DE
+ DJNZ L0468 ; (-027H)
+ LD A,C
+L0490: OUT (LSE1),A
+ EI
+DGCOL: RET
+
+L0494: CALL SKPDE
+ LD HL,L0B17
+ LD DE,INKEY1
+ PUSH HL
+ PUSH DE
+ LD BC,0000AH
+ LDIR
+ POP HL
+ POP DE
+ LD BC,L0AF9
+ DI
+ OUT (LSE3),A
+ LD A,C
+ LD (MMIO),A
+ NOP
+ LD A,(0E001H)
+ LD (DE),A
+L04B5: LD A,C
+ LD (MMIO),A
+ CP FDPA
+ LD A,(0E001H)
+ LD (DE),A
+ JR Z,L04E4 ; (+023H)
+ CPL
+ AND (HL)
+L04C3: LD (HL),A
+ INC DE
+ INC HL
+ DEC C
+ DJNZ L04B5 ; (-014H)
+ OUT (LSE1),A
+ EI
+ LD BC,L0A00
+L04CF: DEC HL
+ LD A,(HL)
+ OR A
+ JR NZ,L0507 ; (+033H)
+ INC C
+ DJNZ L04CF ; (-008H)
+ LD B,00AH
+L04D9: DEC DE
+ LD A,(DE)
+ CP 0FFH
+ JR NZ,L04E7 ; (+008H)
+L04DF: DJNZ L04D9 ; (-008H)
+L04E1: XOR A
+ JR L0490 ; (-054H)
+
+L04E4: XOR A
+ JR L04C3 ; (-024H)
+
+L04E7: LD A,B
+ CP 002H
+ JR NZ,L04F5 ; (+009H)
+L04EC: LD A,(DE)
+ AND 081H
+DWIDTH: JR NZ,L04DF ; (-012H)
+ LD A,01BH
+ JR L0490 ; (-065H)
+
+L04F5: CP 001H
+ JR Z,L04E1 ; (-018H)
+ CP 000H
+ JR NZ,L04DF ; (-01eH)
+ LD A,(DE)
+ AND 001H
+ JR NZ,L04DF ; (-023H)
+ LD A,(L005F)
+ JR L0490 ; (-077H)
+
+L0507: PUSH AF
+ LD A,B
+ LD (004FAH),A
+ LD A,(HL)
+ LD (004FFH),A
+ POP AF
+ DEC B
+ JR NZ,L054A ; (+036H)
+ CALL L05B7
+ LD A,(00B18H)
+ BIT 6,A
+ JR Z,L04E1 ; (-03dH)
+ BIT 0,A
+ LD A,B
+ JR NZ,L0525 ; (+002H)
+ ADD A,005H
+L0525: CP 00AH
+ JR NC,L04E1 ; (-048H)
+ LD L,A
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ LD BC,L12C0
+ ADD HL,BC
+ LD A,(HL)
+ OR A
+ JR Z,L04E1 ; (-057H)
+ LD DE,L1360
+ LD A,001H
+ LD (DE),A
+L053E: INC DE
+ LD BC,00010H
+ LDIR
+ LD A,(01362H)
+ JP L0490
+
+L054A: CALL L05B7
+ LD A,C
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,B
+ LD L,A
+ LD H,000H
+ LD A,(00B18H)
+ BIT 6,A
+ LD BC,L0B2B
+ JR Z,L058E ; (+02fH)
+ PUSH AF
+ LD A,(L0060)
+ CP 043H
+ JR NZ,L056B ; (+004H)
+ POP AF
+ XOR 001H
+ PUSH AF
+L056B: POP AF
+ BIT 0,A
+ JR NZ,L0573 ; (+003H)
+ LD BC,L0B3D
+L0573: LD A,(L0060)
+ CP 0FFH
+ JR NZ,L0587 ; (+00dH)
+ LD BC,L0B4F
+ LD A,(00B18H)
+ BIT 0,A
+ JR Z,L0587 ; (+003H)
+ LD BC,L0B61
+L0587: CALL L13E0
+ LD A,C
+ JP L0490
+
+L058E: CALL L13E0
+ LD A,C
+ CP 020H
+ JP C,L0490
+ LD HL,L0B73
+ LD B,005H
+L059C: CP (HL)
+ JR Z,L05B1 ; (+012H)
+ INC HL
+ DJNZ L059C ; (-006H)
+ CP 040H
+ JP C,L04E1
+ CP 05BH
+ JP NC,L04E1
+ SUB 040H
+ JP L0490
+
+L05B1: LD A,020H
+ SUB B
+ JP L0490
+
+L05B7: LD B,008H
+L05B9: RRCA
+ JR C,L05BF ; (+003H)
+ DJNZ L05B9 ; (-005H)
+ RET
+
+L05BF: DEC B
+ RET
+
+L05C1: LD A,0E8H
+ DI
+ OUT (LSE3),A
+ LD (MMIO),A
+ NOP
+ LD A,(0E001H)
+ OUT (LSE1),A
+ EI
+ AND 081H
+ RET Z
+ RLCA
+ RET C
+ JR L05C1 ; (-016H)
+
+L05D7: CALL SKPDE
+ LD HL,(L0054)
+ LD A,(L005B)
+ CP L
+ RET C
+ CALL PUSHW
+ LD A,(HL)
+ OR A
+ RET
+
+L05E8: CALL L05D7
+ RET Z
+L05EC: LD A,00DH
+ JP L0BFF
+
+L05F1: CALL L0BFD
+ LD A,(L0054)
+L05F7: SUB 00AH
+LBOUND: JR NC,L05F7 ; (-004H)
+ ADD A,00AH
+ RET Z
+ JR L05F1 ; (-00fH)
+
+L0600: CALL IOOUT
+ LD HL,(L0054)
+ PUSH HL
+ PUSH AF
+ RST 018H
+ DB 01EH
+ POP AF
+ RST 018H
+ DB 01DH
+ CALL POPRA
+ SET 3,H
+ LD DE,(0005DH)
+ LD A,E
+ OR D
+ CALL POPRA
+ POP HL
+ INC L
+HCLSW: LD A,(0005CH)
+ CP L
+ JP NC,L07EC
+L0624: LD A,(L005B)
+ LD L,A
+ INC H
+ PUSH HL
+ CALL PUSHW
+ LD (HL),001H
+ POP HL
+ LD A,(L0057)
+ CP H
+ JP NC,L07EC
+ LD H,A
+ PUSH HL
+ CALL L0730
+ POP HL
+ JP L07EC
+
+PUSHW: LD E,H
+ LD D,000H
+ LD HL,.HL
+ ADD HL,DE
+ RET
+
+L0648: LD HL,(L0054)
+ PUSH DE
+ PUSH AF
+ LD D,LSD0
+ LD E,L
+ LD A,H
+ ADD A,A
+HCLS: ADD A,A
+ ADD A,H
+ LD L,A
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,DE
+L065B: POP AF
+ POP DE
+ RET
+
+L065E: ADD A,A
+ LD HL,L0067
+ CALL ADDHLA
+ CALL INDRCT
+ JP (HL)
+
+L0669: LD B,D
+ LD C,E
+L066B: LD DE,00028H
+ EX DE,HL
+ ADD HL,DE
+ DEC B
+ JR Z,L067E ; (+00bH)
+ PUSH HL
+ PUSH BC
+ LD B,000H
+ CALL L069E
+ POP BC
+ POP HL
+ JR L066B ; (-013H)
+
+L067E: EX DE,HL
+ LD E,C
+L0680: LD A,(L005D)
+ LD D,A
+ LD A,(0005EH)
+ OR D
+ LD D,A
+L0689: DI
+ OUT (LSE3),A
+ LD (HL),000H
+ SET 3,H
+ LD (HL),D
+ RES 3,H
+ OUT (LSE1),A
+ EI
+ INC HL
+ DEC E
+ JR NZ,L0689 ; (-011H)
+ RET
+
+L069B: LD BC,00028H
+L069E: LD A,0B0H
+ JR L06A4 ; (+002H)
+
+L06A2: LD A,0B8H
+L06A4: LD (006BCH),A
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ RES 3,H
+ RES 3,D
+ CALL L06B8
+ POP BC
+ POP DE
+ POP HL
+ SET 3,H
+ SET 3,D
+L06B8: DI
+ OUT (LSE3),A
+ LDIR
+ OUT (LSE1),A
+ EI
+ RET
+
+L06C1: LD HL,VRAM
+ LD DE,0D7D0H
+ CALL L069B
+ LD HL,0D028H
+ LD DE,VRAM
+ LD B,032H
+L06D2: PUSH BC
+ CALL L069B
+ POP BC
+ DJNZ L06D2 ; (-007H)
+ LD HL,.HL
+ LD D,H
+ LD E,L
+ LD A,(HL)
+ INC HL
+ LD BC,00031H
+ LDIR
+ LD (DE),A
+ RET
+
+L06E7: LD HL,0D7CFH
+ LD DE,0D7F7H
+ LD B,032H
+L06EF: PUSH BC
+ LD BC,00028H
+ CALL L06A2
+ POP BC
+ DJNZ L06EF ; (-00aH)
+ LD HL,0D7D0H
+ LD DE,VRAM
+ CALL L069B
+ LD HL,L00D9
+ LD D,H
+ LD E,L
+ DEC HL
+ LD A,(DE)
+ LD BC,00031H
+ LDDR
+ LD (DE),A
+ RET
+
+L0710: LD HL,0D3E8H
+ XOR A
+ CALL POPRA
+ SET 3,H
+ LD A,(L005D)
+ CALL POPRA
+ LD DE,0D3E9H
+ LD BC,L0027
+ CALL L069E
+ CALL L06C1
+ XOR A
+ LD (L00C0),A
+ RET
+
+L0730: LD A,(L004E)
+ OR A
+ JR Z,L0710 ; (-026H)
+ CALL L075F
+ CALL L0669
+ LD A,(L0056)
+ LD H,A
+ CALL PUSHW
+ LD A,(L0057)
+ SUB E
+ LD B,A
+ LD (HL),000H
+ INC HL
+ LD D,H
+ LD E,L
+ INC DE
+ CALL NZ,LDHLDE
+ LD (HL),000H
+ RET
+
+L0754: LD A,(L005B)
+ LD L,A
+ LD A,(L0056)
+ LD H,A
+ JP L07EC
+
+L075F: LD HL,(L005B)
+ LD DE,(00056H)
+ LD A,D
+L0767: SUB E
+ INC A
+ LD D,A
+ LD A,H
+ SUB L
+ INC A
+L076D: LD E,A
+ CALL L0754
+ JP L0648
+
+ CALL SKPDE
+ LD A,(L004E)
+L077A: OR A
+ JR NZ,L078B ; (+00eH)
+ LD A,031H
+ LD (L0057),A
+ CALL L078B
+ LD A,018H
+ LD (L0057),A
+ RET
+
+L078B: CALL L075F
+L078E: PUSH DE
+ PUSH HL
+ CALL L0680
+ POP HL
+ LD BC,00028H
+ ADD HL,BC
+ POP DE
+ DEC D
+ JR NZ,L078E ; (-00eH)
+ LD A,(L0056)
+ LD H,A
+ CALL PUSHW
+ LD A,(L0057)
+ SUB E
+ ADD A,002H
+ LD B,A
+ JP ?CLRHL
+
+ XOR A
+ LD (0091FH),A
+ LD HL,(L0054)
+ PUSH HL
+ INC H
+ CALL PUSHW
+ LD A,(L0057)
+ LD D,A
+L07BD: LD A,(HL)
+ OR A
+ JR Z,L07C7 ; (+006H)
+ INC HL
+ INC E
+ LD A,D
+ CP E
+ JR NC,L07BD ; (-00aH)
+L07C7: DEC E
+ POP HL
+ LD H,E
+ JR L07DB ; (+00fH)
+
+ LD HL,(L0054)
+ JR L07DF ; (+00eH)
+
+ LD HL,(L0054)
+ INC L
+ LD A,(0005CH)
+ CP L
+ JR NC,L07EC ; (+011H)
+L07DB: LD A,(L005B)
+ LD L,A
+L07DF: INC H
+ LD A,(L0057)
+ CP H
+ JR NC,L07EC ; (+006H)
+ LD H,A
+ PUSH HL
+ CALL L0730
+ POP HL
+L07EC: LD (L0054),HL
+ RET
+
+ LD HL,(L0054)
+ JR L0802 ; (+00dH)
+
+ LD HL,(L0054)
+ LD A,(L005B)
+ CP L
+ JR C,0080DH ; (+00fH)
+ LD A,(0005CH)
+ LD L,A
+L0802: LD A,(L0056)
+ CP H
+ JR C,0080FH ; (+007H)
+ LD A,(L0056)
+ LD H,A
+ LD A,02DH
+ LD A,025H
+ JR L07EC ; (-026H)
+
+ LD A,0EFH
+ LD HL,L433E
+ LD HL,0FF3EH
+ LD (L0060),A
+ RET
+
+ LD HL,(L0054)
+ LD BC,(0005BH)
+ LD A,L
+ DEC L
+ INC C
+ CP C
+ JR NC,L0837 ; (+00cH)
+ PUSH HL
+ CALL PUSHW
+ LD A,(HL)
+ POP HL
+ INC L
+ OR A
+ JR Z,L0874 ; (+03fH)
+ LD L,B
+ DEC H
+L0837: LD DE,(00054H)
+ LD (L0054),HL
+L083E: EX DE,HL
+ LD A,(L005B)
+ CP L
+ JR C,L086D ; (+028H)
+L0845: PUSH HL
+ CALL PUSHW
+ LD A,(HL)
+ POP HL
+ OR A
+ JR Z,L085D ; (+00fH)
+ CALL L0882
+ PUSH HL
+ LD A,(0005CH)
+ LD L,A
+ DEC H
+ CALL L089A
+ POP HL
+ JR L0874 ; (+017H)
+
+L085D: LD A,(0005CH)
+ LD L,A
+ DEC H
+L0862: LD DE,(0005DH)
+ LD A,E
+ OR D
+ LD E,A
+ LD D,000H
+ JR L089A ; (+02dH)
+
+L086D: CALL L0882
+ DEC BC
+ CALL L0895
+L0874: INC L
+ LD A,(0005CH)
+ CP L
+ JR NC,L086D ; (-00eH)
+ LD A,(L005B)
+ LD L,A
+ INC H
+ JR L0845 ; (-03dH)
+
+L0882: PUSH HL
+ RST 018H
+ DB 01EH
+ SET 3,H
+ CALL BREAKX
+ LD E,A
+ RES 3,H
+ CALL BREAKX
+ LD D,A
+ LD B,H
+ LD C,L
+ POP HL
+ RET
+
+L0895: PUSH HL
+ LD H,B
+ LD L,C
+ JR L089D ; (+003H)
+
+L089A: PUSH HL
+ RST 018H
+ DB 01EH
+L089D: SET 3,H
+ LD A,E
+ CALL POPRA
+ RES 3,H
+ LD A,D
+ CALL POPRA
+ LD B,H
+ LD C,L
+ POP HL
+ RET
+
+L08AD: LD HL,(L0054)
+ CALL L0302
+ DEC E
+ LD H,E
+ LD A,(0005CH)
+ LD L,A
+ RET
+
+ CALL L08AD
+ CALL L0882
+ LD A,0F0H
+ CP D
+ JR Z,L08C8 ; (+003H)
+ XOR A
+ CP D
+ RET NZ
+L08C8: LD BC,(0005BH)
+ EX DE,HL
+ LD HL,(L0054)
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ JR Z,L0862 ; (-074H)
+ LD A,C
+ CP L
+ JR NC,L08E4 ; (+00aH)
+ DEC L
+ CALL L0882
+ INC BC
+ CALL L0895
+ JR L08C8 ; (-01cH)
+
+L08E4: PUSH HL
+ LD L,B
+ DEC H
+ CALL L0882
+ EX (SP),HL
+ CALL L089A
+ POP HL
+ JR L08C8 ; (-029H)
+
+ LD HL,L0071
+ LD (L005D),HL
+L08F7: LD HL,L1800
+ LD (L0056),HL
+ LD HL,L2700
+ LD (L005B),HL
+ XOR A
+ LD (L004E),A
+ RET
+
+ CALL SKPDE
+L090B: LD A,(DE)
+ INC DE
+ OR A
+ RET Z
+ LD C,A
+ CP 005H
+ JR Z,L0933 ; (+01fH)
+ CP 006H
+ JR Z,L0932 ; (+01aH)
+ SUB 041H
+ CP 01AH
+ JR NC,HCURON ; (+00dH)
+ LD A,000H
+ OR A
+ JR Z,HCURON ; (+008H)
+ LD A,C
+ LD HL,L08F7
+ CALL ADDHLA
+ LD C,(HL)
+HCURON: LD A,C
+ RST 018H
+ DB 003H
+ CP 00DH
+ JR NZ,L090B ; (-027H)
+L0932: XOR A
+L0933: LD (0091FH),A
+ JR L090B ; (-02dH)
+
+ AND C
+ SBC A,D
+ SBC A,A
+HCUROF: SBC A,H
+ SUB D
+ XOR D
+ SUB A
+ SBC A,B
+ AND (HL)
+ XOR A
+ XOR C
+ CP B
+ OR E
+FLASH: OR B
+ OR A
+ SBC A,(HL)
+ AND B
+ SBC A,L
+ AND H
+ SUB (HL)
+ AND L
+CURMOV: XOR E
+ AND E
+ SBC A,E
+ CP L
+ AND D
+ NOP
+ NOP
+L0954: NOP
+L0955: PUSH DE
+ PUSH HL
+ LD (L0954),A
+ LD (00952H),DE
+ LD HL,0E007H
+ DI
+ OUT (LSE3),A
+ LD (HL),0B4H
+ LD (HL),074H
+ DEC HL
+ LD (HL),0C0H
+ LD (HL),0A8H
+ DEC HL
+ LD (HL),002H
+ LD (HL),000H
+L0972: LD HL,0E007H
+ LD (HL),080H
+PONTCB: DEC HL
+ LD E,(HL)
+ LD D,(HL)
+PONTB: LD HL,0A8C0H
+ OR A
+ SBC HL,DE
+ JR NZ,L0972 ; (-010H)
+ LD HL,0E005H
+ LD (HL),0F6H
+ LD (HL),079H
+ OUT (LSE1),A
+ EI
+ POP HL
+ POP DE
+ RET
+
+L098F: PUSH BC
+ PUSH HL
+ DI
+ OUT (LSE3),A
+ LD HL,0E007H
+ LD (HL),080H
+ LD (HL),040H
+ DEC HL
+ LD E,(HL)
+ LD D,(HL)
+ DEC HL
+ LD C,(HL)
+ LD B,(HL)
+ OUT (LSE1),A
+ EI
+ PUSH BC
+ LD A,D
+L09A6: OR E
+ JR NZ,L09AC ; (+003H)
+ LD DE,0A8C0H
+L09AC: LD HL,0A8C0H
+ LD A,(L0954)
+ OR A
+ SBC HL,DE
+ LD DE,L5460
+ CALL L09EB
+ OR A
+ LD DE,(00952H)
+ RR D
+ RR E
+ PUSH AF
+ ADD HL,DE
+ LD DE,L5460
+ CALL L09EB
+ LD C,A
+ ADD HL,HL
+ EX DE,HL
+ POP AF
+ LD A,C
+ POP BC
+ PUSH AF
+ OR A
+ LD HL,L3CFB
+ SBC HL,BC
+ JR C,L09DC ; (+001H)
+ INC DE
+L09DC: POP AF
+ JR NC,L09E0 ; (+001H)
+ INC DE
+L09E0: EX DE,HL
+ LD DE,0A8C0H
+ CALL L09EB
+ EX DE,HL
+ POP HL
+ POP BC
+ RET
+
+L09EB: OR A
+ SBC HL,DE
+ JR NC,L09F2 ; (+002H)
+ ADD HL,DE
+ RET
+
+L09F2: XOR 001H
+ RET
+
+L09F5: LD A,04EH
+ DEC L
+ RET Z
+ LD A,056H
+ DEC L
+ RET Z
+ LD A,05EH
+ DEC L
+L0A00: RET Z
+L0A01: LD A,066H
+ DEC L
+ RET
+
+L0A05: PUSH DE
+ LD (00A23H),A
+ LD DE,0FFFFH
+ LD HL,0E002H
+ DI
+ OUT (LSE3),A
+L0A12: BIT 7,(HL)
+ JR Z,L0A12 ; (-004H)
+L0A16: BIT 7,(HL)
+ JR NZ,L0A16 ; (-004H)
+L0A1A: LD L,008H
+ LD A,011H
+L0A1E: DEC A
+ JR NZ,L0A1E ; (-003H)
+L0A21: INC DE
+ BIT 0,(HL)
+ JR Z,L0A21 ; (-005H)
+ OUT (LSE1),A
+ EI
+ LD A,D
+ OR A
+ LD A,E
+ JR Z,L0A30 ; (+002H)
+ LD A,0FFH
+L0A30: LD (L0066),A
+ POP DE
+ POP HL
+ SCF
+ RET
+
+ INC A
+ PUSH HL
+ LD L,A
+ CALL L09F5
+ JR Z,L0A05 ; (-03aH)
+ CALL L09F5
+ LD (00A75H),A
+ LD (00A55H),A
+ LD HL,0E002H
+ DI
+ OUT (LSE3),A
+L0A4E: BIT 7,(HL)
+ JR Z,L0A4E ; (-004H)
+ LD L,008H
+ BIT 0,(HL)
+ LD A,L
+ JR Z,L0A5A ; (+001H)
+ XOR A
+L0A5A: LD (00A7CH),A
+ OUT (LSE1),A
+ LD A,009H
+L0A61: PUSH AF
+ XOR A
+L0A63: DEC A
+ JR NZ,L0A63 ; (-003H)
+ POP AF
+BINPUT: DEC A
+ JR NZ,L0A61 ; (-009H)
+ OUT (LSE3),A
+ LD L,002H
+L0A6E: BIT 7,(HL)
+ JR Z,L0A6E ; (-004H)
+ LD L,008H
+ BIT 0,(HL)
+ LD A,L
+ JR Z,L0A7A ; (+001H)
+ XOR A
+L0A7A: LD L,A
+ LD A,000H
+ AND L
+ LD (L0065),A
+ OUT (LSE1),A
+ EI
+GETL: POP HL
+ OR A
+ RET
+
+ DI
+ RET
+
+ EI
+ RET
+
+ DS 110, 000H
+L0AF9: DS 30, 000H
+L0B17: DS 3, 000H
+INKEY$: DS 7, 000H
+INKEY1: DS 10, 000H
+L0B2B: JP PE,0900BH
+ RLA
+ CALL M,00019H
+ DEC SP
+ LD A,(L180D)
+ DJNZ L0B4A ; (+012H)
+ LD DE,01413H
+ CCF
+ CPL
+L0B3D: LD HL,(0900CH)
+ RLA
+ EI
+ DEC B
+ NOP
+ DEC HL
+ LD HL,(0160DH)
+ DEC D
+ LD (DE),A
+L0B4A: LD DE,01413H
+ ADD A,05FH
+L0B4F: JP (HL)
+
+ INC C
+ SUB B
+ RLA
+ LD L,B
+ DEC B
+ NOP
+ ADD A,H
+ JP (HL)
+
+ DEC C
+ LD D,015H
+ LD (DE),A
+ LD DE,01413H
+ ADC A,A
+ ADC A,E
+L0B61: LD L,D
+ INC C
+ SUB B
+ RLA
+ LD L,H
+ ADD HL,DE
+ NOP
+ CP 089H
+ DEC C
+ LD D,015H
+ LD (DE),A
+ LD DE,01413H
+ ADC A,D
+ LD A,E
+L0B73: LD E,E
+ LD E,H
+ LD E,L
+ LD E,(HL)
+ CPL
+$CRT: DB 091H,00BH,"CRT",000H,08AH ; $CRT - CRT device descriptor
+ DS 2, 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+INKEYF: DB 0AAH
+ DB 00BH
+ DB 0B5H
+ DB 00BH
+ DB 0C4H
+ DB 00BH
+$KB_: DB 000H ; $KB - Keyboard device descriptor
+ DB 00FH
+ DB 04BH
+ DB 042H
+ DS 2, 000H
+ DB 081H
+ DS 2, 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+INKEY0: DB 000H
+ DB LSE5
+ DB 000H
+ DB 0AAH
+ DB 00BH
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ RST 018H
+ DB 00CH
+ LD A,080H
+ RET C
+ JP C,0017DH
+ RST 018H
+ DB 017H
+ RET
+
+ EX AF,AF'
+ LD HL,L0BFF
+L0BB9: LD A,(L1090)
+ OR A
+ JR Z,L0BC2 ; (+003H)
+ LD HL,L0C43
+L0BC2: EX AF,AF'
+ JP (HL)
+
+ LD A,(L0054)
+ RET
+
+ LD A,00DH
+L0BCA: PUSH AF
+ LD A,(L1091)
+L0BCE: OR A
+ JR NZ,L0BD4 ; (+003H)
+ POP AF
+ JR L0BFF ; (+02bH)
+
+L0BD4: POP AF
+ JP L0F3E
+
+ PUSH AF
+ LD A,(L1091)
+ OR A
+ JR NZ,L0BE2 ; (+003H)
+ POP AF
+ JR L0C43 ; (+061H)
+
+L0BE2: POP AF
+ JP L0F2E
+
+ CALL SKPDE
+ LD HL,L0BCA
+ JR L0BF4 ; (+006H)
+
+L0BEE: CALL SKPDE
+ LD HL,L0BFF
+L0BF4: LD A,(DE)
+ OR A
+ RET Z
+ CALL L00FA
+ INC DE
+ JR L0BF4 ; (-009H)
+
+L0BFD: LD A,020H
+L0BFF: CALL IOOUT
+L0C02: LD C,A
+ LD A,(L004D)
+ OR A
+ JR Z,L0C3A ; (+031H)
+ LD A,C
+ CP 020H
+ JR NC,L0C37 ; (+029H)
+ LD DE,(00054H)
+ LD HL,(L005B)
+ CP 014H
+ JR Z,L0C21 ; (+008H)
+ CP 012H
+ JR NZ,L0C26 ; (+009H)
+ LD HL,(L0056)
+ LD E,D
+L0C21: LD A,L
+ CP E
+ JP NC,L0D3F
+L0C26: LD A,C
+ LD HL,L0C8F
+ ADD A,L
+ LD L,A
+ JR NC,L0C2F ; (+001H)
+ INC H
+L0C2F: LD A,(HL)
+ INC A
+ JR Z,L0C3A ; (+007H)
+ DEC A
+ JP Z,L0D3F
+L0C37: CALL L0C60
+L0C3A: LD A,C
+ CP 020H
+ JP C,L065E
+ JP L0600
+
+L0C43: CALL IOOUT
+ LD C,A
+ CP 00DH
+ JR Z,L0C02 ; (-049H)
+ CALL L0600
+ LD A,(L004D)
+ OR A
+ RET Z
+ LD A,C
+ CP 011H
+ JR C,L0C8A ; (+032H)
+ CP 017H
+ JR C,L0C8C ; (+030H)
+ CP 020H
+ JR C,L0C8A ; (+02aH)
+L0C60: CP 060H
+ JR C,L0C8C ; (+028H)
+ CALL CHKACC
+ ADD HL,BC
+ ADD A,B
+ LD A,E
+ ADD A,08BH
+ RST 010H
+ RST 008H
+ CALL M,0FFFBH
+ JR Z,L0C8C ; (+019H)
+ CP 092H
+ JR C,L0C8A ; (+013H)
+ CALL CHKACC
+ ADD HL,BC
+ SBC A,C
+ SUB L
+ XOR H
+ AND A
+ OR H
+ OR C
+ OR (HL)
+ OR L
+ CP H
+ JR Z,L0C8A ; (+004H)
+ CP 0BFH
+ JR C,L0C8C ; (+002H)
+L0C8A: LD A,02EH
+L0C8C: JP L0FA9
+
+L0C8F: NOP
+ NOP
+ NOP
+ NOP
+ RST 038H
+ RST 038H
+ RST 038H
+ DEC E
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC C
+ NOP
+ NOP
+ NOP
+ LD A,(BC)
+ INC BC
+ JR NZ,00CB2H ; (+00eH)
+ NOP
+ NOP
+ RST 038H
+ NOP
+ RST 038H
+ RST 038H
+ DEC C
+ RST 038H
+ NOP
+ NOP
+ NOP
+L0CAF: DI
+ XOR A
+ LD (L004D),A
+ LD (L1091),A
+ LD SP,L0000
+ OUT (LSE1),A
+ LD A,004H
+ RST 018H
+ DB 003H
+L0CC0: LD HL,L1B18
+ XOR A
+ LD (L0CC0),A
+ LD D,A
+ LD E,A
+ RST 018H
+ DB 026H
+ LD DE,$CMT
+ LD A,B
+ DEC A
+ JR Z,L0CDB ; (+009H)
+ LD DE,$FD
+ DEC A
+ JR Z,L0CDB ; (+003H)
+ LD DE,$QD
+L0CDB: LD A,C
+ RST 018H
+ DB 03AH
+ JP L00DA
+
+ LD HL,(L1072)
+ ADD HL,DE
+ LD (L1072),HL
+ LD HL,(L1074)
+ ADD HL,DE
+ LD (L1074),HL
+ LD HL,(L1076)
+ ADD HL,DE
+ LD (L1076),HL
+ LD HL,(L1078)
+ ADD HL,DE
+ LD (L1078),HL
+ LD HL,(L107A)
+ ADD HL,DE
+ LD (L107A),HL
+ RET
+
+L0D05: LD HL,(00B15H)
+L0D08: LD A,H
+ OR L
+ JR Z,L0D20 ; (+014H)
+ PUSH DE
+ EX DE,HL
+ LD HL,0E004H
+ DI
+ OUT (LSE3),A
+ LD (HL),E
+ LD (HL),D
+ LD A,001H
+ LD (TEMPO_),A
+ OUT (LSE1),A
+ EI
+ POP DE
+ RET
+
+L0D20: LD A,036H
+BRKEY: DI
+ OUT (LSE3),A
+ LD (0E007H),A
+ XOR A
+ LD (TEMPO_),A
+ OUT (LSE1),A
+ EI
+ RET
+
+L0D30: PUSH AF
+ PUSH BC
+ AND 00FH
+ LD B,A
+ LD A,008H
+ SUB B
+ LD (0119EH),A
+ POP BC
+ POP AF
+ RET
+
+L0D3E: XOR A
+L0D3F: PUSH HL
+ LD HL,L04EC
+ JR Z,L0D4E ; (+009H)
+ CP 001H
+L0D47: JR Z,L0D59 ; (+010H)
+ CALL L0D08
+ POP HL
+ RET
+
+L0D4E: CALL L0D08
+ LD HL,L2710
+L0D54: DEC HL
+ LD A,H
+ OR L
+ JR NZ,L0D54 ; (-005H)
+L0D59: CALL L0D20
+ POP HL
+ RET
+
+$USR: DS 2, 000H ; $USR - User device descriptor
+L0D60: DB "USR",000H,09FH
+ DS 2, 000H
+ DB LSE5
+ DB 000H
+ DB 077H
+ DB 00DH
+ DB 077H
+ DB 00DH
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 086H
+ DB 00DH
+ DB 086H
+ DB 00DH
+ DB LSE5
+ DB 000H
+ LD HL,L1001
+ RST 018H
+ DB 013H
+ LD A,D
+ OR E
+ JP Z,01F9AH
+ LD (ZWRK1),DE
+ RET
+
+ LD HL,(ZWRK1)
+ JP (HL)
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD A,(L1050)
+ BIT 7,A
+ JP NZ,01F97H
+ JP L1989
+
+L0D9B: LD B,(IY+000H)
+ CALL L1C39
+ LD A,(L1000)
+ CP B
+ JP NZ,01F9DH
+ RET
+
+L0DA9: LD A,(L004D)
+ OR A
+ LD A,(L1095)
+ RET Z
+ LD A,(L0054)
+ RET
+
+ DS 40, 000H
+EQTBL: DS 25, 000H
+$KB: DS 10, 000H
+L0E00: DS 16, 000H
+L0E10: DS 46, 000H
+L0E3E: DS 35, 000H
+CRT1C: DS 82, 000H
+PLTOTX: DS 77, 000H
+$LPT: DB 0F7H,"/LPT",000H,08AH ; $LPT - Line printer device descriptor
+ DS 2, 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DS 3, 000H
+ DB 027H
+ DB 00FH
+ DB 019H
+ DB 00FH
+ JP L0DA9
+
+ RET
+
+L0F1D: LD A,00DH
+ CALL L0FA9
+ XOR A
+ LD (L1095),A
+ RET
+
+ LD HL,L1090
+ BIT 0,(HL)
+ JR Z,L0F3E ; (+010H)
+L0F2E: CALL IOOUT
+ LD B,A
+ LD A,(L004D)
+ OR A
+ LD A,B
+ LD E,0FFH
+ JR Z,L0F4E ; (+013H)
+ RST 018H
+ DB 004H
+ RET
+
+L0F3E: CALL IOOUT
+ LD B,A
+ LD A,(L004D)
+ OR A
+ LD A,B
+ LD E,000H
+ JR Z,L0F4E ; (+003H)
+ RST 018H
+ DB 003H
+ RET
+
+L0F4E: LD A,(L1097)
+ CP 001H
+ LD A,044H
+ JP NZ,00180H
+ LD A,B
+ CP 00DH
+ JR Z,L0F1D ; (-040H)
+ LD HL,L1095
+ INC (HL)
+ SUB 005H
+ CP 002H
+ JR C,L0F7C ; (+015H)
+ LD A,B
+ CP 020H
+ JR NC,L0FB0 ; (+044H)
+ BIT 0,E
+ JR Z,L0F80 ; (+010H)
+ SUB 011H
+ CP 006H
+ JR C,L0FB1 ; (+03bH)
+ SUB QDPC
+ CP 002H
+ JR NC,L0FAE ; (+032H)
+L0F7C: LD A,02EH
+ JR L0FB0 ; (+030H)
+
+L0F80: LD HL,L1095
+ DEC (HL)
+ LD A,B
+ CP 015H
+ LD B,00FH
+ JR Z,L0FB1 ; (+026H)
+ CP 011H
+ LD B,009H
+ JR Z,L0FB1 ; (+020H)
+ CP 012H
+ LD B,00BH
+ JR Z,L0FB1 ; (+01aH)
+ CP 016H
+ JR NZ,L0FB0 ; (+015H)
+ LD A,00CH
+ CALL L0FB0
+ LD A,00AH
+ CALL L0FB0
+ LD A,003H
+ JR L0FB0 ; (+007H)
+
+L0FA9: CALL IOOUT
+ JR L0FB0 ; (+002H)
+
+L0FAE: LD A,020H
+L0FB0: LD B,A
+L0FB1: CALL L0FCA
+ LD A,B
+ DI
+ CALL L0FBB
+ EI
+ RET
+
+L0FBB: OUT (0FFH),A
+ LD A,080H
+ OUT (0FEH),A
+ LD A,001H
+ CALL L0FCB
+L0FC6: XOR A
+ OUT (0FEH),A
+ RET
+
+L0FCA: XOR A
+L0FCB: CALL SKPDE
+ LD C,A
+ LD B,00EH
+L0FD1: LD HL,0E678H
+L0FD4: IN A,(0FEH)
+ AND 00DH
+ CP C
+ RET Z
+ DEC HL
+ LD A,H
+ OR L
+ NOP
+ NOP
+ JR NZ,L0FD4 ; (-00dH)
+ DJNZ L0FD1 ; (-012H)
+ XOR A
+ LD (L004D),A
+ CALL L0FC6
+ LD A,041H
+ JP L0182
+
+ DS 17, 000H
+L1000: DB 000H
+L1001: DS 17, 000H
+L1012: DS 2, 000H
+L1014: DS 4, 000H
+L1018: DS 38, 000H
+L103E: DS 2, 000H
+L1040: LD (BC),A
+ NOP
+L1042: NOP
+L1043: NOP
+L1044: NOP
+ NOP
+L1046: NOP
+ NOP
+ NOP
+ NOP
+L104A: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1050: LD BC,L0000
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1069: NOP
+ NOP
+ NOP
+ LD A,B
+ DEC BC
+ NOP
+ RRCA
+L1070: NOP
+ NOP
+L1072: NOP
+ NOP
+L1074: NOP
+ NOP
+L1076: NOP
+ NOP
+L1078: NOP
+ NOP
+L107A: NOP
+ NOP
+L107C: NOP
+ NOP
+L107E: NOP
+ NOP
+ NOP
+ RST 038H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1090: NOP
+L1091: NOP
+ LD BC,L0E00
+L1095: NOP
+ NOP
+L1097: LD BC,L0000
+ DS 86, 000H
+L10F0: DS 78, 000H
+L113E: DS 84, 000H
+ RST 028H
+ NOP
+ NOP
+ NOP
+ NOP
+L1197: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD BC,00504H
+ DS 3, 000H
+L11A3: DB 000H
+L11A4: DS 154, 000H
+L123E: DS 57, 000H
+L1277: DS 73, 000H
+L12C0: RLCA
+ LD D,D
+ LD D,L
+ LD C,(HL)
+ JR NZ,012E6H ; (+020H)
+ JR NZ,L12D5 ; (+00dH)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC B
+ LD C,H
+ LD C,C
+ LD D,E
+ LD D,H
+L12D5: JR NZ,L12D7 ; (+000H)
+L12D7: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC B
+ LD B,C
+ LD D,L
+ LD D,H
+ LD C,A
+ JR NZ,L12E7 ; (+000H)
+L12E7: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD B,052H
+ LD B,L
+ LD C,(HL)
+ LD D,L
+ LD C,L
+ JR NZ,L12F8 ; (+000H)
+L12F8: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ INC B
+ LD B,H
+ LD C,C
+ LD D,D
+ JR NZ,L1306 ; (+000H)
+L1306: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ DEC B
+ LD B,E
+ LD C,B
+ LD D,D
+ INC H
+ JR Z,L1317 ; (+000H)
+L1317: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ EX AF,AF'
+ LD B,H
+ LD B,L
+L1323: LD B,(HL)
+ JR NZ,L1371 ; (+04bH)
+ LD B,L
+ LD E,C
+ JR Z,L132A ; (+000H)
+L132A: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ INC B
+ LD B,E
+ LD C,A
+ LD C,(HL)
+ LD D,H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L133E: NOP
+ NOP
+ LD B,053H
+ LD B,C
+ LD D,(HL)
+ LD B,L
+ JR NZ,L1367 ; (+020H)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD B,04CH
+ LD C,A
+ LD B,C
+ LD B,H
+ JR NZ,L1377 ; (+020H)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1360: NOP
+L1361: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1367: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L1371: NOP
+ CALL L13D8
+ JR Z,L1385 ; (+00eH)
+L1377: CP 010H
+ JR C,L139B ; (+020H)
+ CP 080H
+ JR Z,L13A1 ; (+022H)
+ CP 0C0H
+ JR Z,L13A1 ; (+01eH)
+ JR L1391 ; (+00cH)
+
+L1385: CP 003H
+ JR Z,L139B ; (+012H)
+ CP 005H
+ JR Z,L139E ; (+011H)
+ CP 006H
+ JR Z,L139E ; (+00dH)
+L1391: DI
+ OUT (LSE2),A
+ CALL L0BB9
+ OUT (LSE0),A
+ EI
+ RET
+
+L139B: LD A,0F0H
+ RET
+
+L139E: ADD A,0C9H
+ RET
+
+L13A1: SUB 040H
+ RET
+
+L13A4: CP 0F0H
+ JR NC,L13CF ; (+027H)
+ CP 073H
+ JR Z,L139B ; (-011H)
+ CALL L13D8
+ JR Z,L13BB ; (+00aH)
+ CP 040H
+ JR Z,L13D5 ; (+020H)
+ CP 080H
+ JR Z,L13D5 ; (+01cH)
+ JR L13C3 ; (+008H)
+
+L13BB: CP 0CEH
+ JR Z,L13D2 ; (+013H)
+ CP 0CFH
+ JR Z,L13D2 ; (+00fH)
+L13C3: DI
+ OUT (LSE2),A
+ CALL L0BCE
+ OUT (LSE0),A
+ EI
+ CP 0F0H
+ RET NZ
+L13CF: LD A,020H
+ RET
+
+L13D2: SUB 0C9H
+ RET
+
+L13D5: ADD A,040H
+ RET
+
+L13D8: PUSH HL
+ LD HL,L0036
+ BIT 6,(HL)
+ POP HL
+ RET
+
+L13E0: PUSH AF
+ LD A,L
+ SUB 008H
+ JR C,L13EA ; (+004H)
+ SUB 030H
+ JR C,L13F1 ; (+007H)
+L13EA: ADD A,00AH
+ LD L,A
+ ADD HL,BC
+ LD C,(HL)
+ POP AF
+ RET
+
+L13F1: LD A,(BC)
+ PUSH AF
+ INC BC
+ LD A,(BC)
+ LD B,A
+ POP AF
+ LD C,A
+ ADD HL,BC
+ DI
+ OUT (LSE2),A
+ LD A,(HL)
+ OUT (LSE0),A
+ EI
+ CALL L13A4
+ LD C,A
+ POP AF
+ RET
+
+ PUSH HL
+ PUSH BC
+ PUSH DE
+ LD DE,L2710
+ CALL L142C
+ LD DE,003E8H
+ CALL L142C
+ LD DE,L0064
+ CALL L142C
+ LD DE,0000AH
+ CALL L142C
+ LD A,L
+ POP DE
+ OR 030H
+ LD (DE),A
+ INC DE
+ XOR A
+ LD (DE),A
+ POP BC
+ POP HL
+ RET
+
+L142C: LD A,0FFH
+L142E: INC A
+ OR A
+ SBC HL,DE
+ JR NC,L142E ; (-006H)
+ ADD HL,DE
+ OR A
+ JR NZ,L143B ; (+003H)
+ OR B
+ RET Z
+ XOR A
+L143B: LD B,001H
+ OR 030H
+ POP DE
+ EX (SP),HL
+ LD (HL),A
+ INC HL
+ EX (SP),HL
+ PUSH DE
+ RET
+
+ CALL TEST1
+ DB 024H
+ JR Z,L1476 ; (+02aH)
+ LD DE,L0000
+L144F: CALL HLFTCH
+ SUB 030H
+ CP 00AH
+ RET NC
+ INC HL
+ PUSH HL
+ LD H,D
+ LD L,E
+ ADD HL,HL
+ JR C,L1471 ; (+013H)
+ ADD HL,HL
+ JR C,L1471 ; (+010H)
+ ADD HL,DE
+ JR C,L1471 ; (+00dH)
+ ADD HL,HL
+ JR C,L1471 ; (+00aH)
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ JR C,L1471 ; (+004H)
+ EX DE,HL
+ POP HL
+ JR L144F ; (-022H)
+
+L1471: LD A,002H
+ JP L0182
+
+L1476: LD DE,L0000
+L1479: LD A,(HL)
+ CALL L1491
+ RET C
+ INC HL
+ EX DE,HL
+ ADD HL,HL
+ JR C,L1471 ; (-012H)
+ ADD HL,HL
+ JR C,L1471 ; (-015H)
+ ADD HL,HL
+ JR C,L1471 ; (-018H)
+ ADD HL,HL
+ JR C,L1471 ; (-01bH)
+ ADD A,L
+ LD L,A
+ EX DE,HL
+ JR L1479 ; (-018H)
+
+L1491: SUB 030H
+ CP 00AH
+ CCF
+ RET NC
+ SUB 011H
+ CP 006H
+ CCF
+ RET C
+ ADD A,00AH
+ RET
+
+ CALL L14AD
+ CP 020H
+ RET NZ
+L14A6: CALL L14AD
+ OR A
+ JR Z,L14A6 ; (-006H)
+ RET
+
+L14AD: RST 018H
+ DB 00EH
+ JR Z,L14B8 ; (+007H)
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ CP 01BH
+ RET NZ
+L14B8: JP 0017DH
+
+ RET
+
+L14BC: CALL SKPDE
+ LD HL,L11A4
+ LD B,000H
+ PUSH HL
+ CALL LDHLDE
+ POP DE
+ LD (014DAH),SP
+ LD SP,L10F0
+ DI
+ OUT (LSE4),A
+ RST 030H
+ OUT (LSE0),A
+ OUT (LSE1),A
+ EI
+ LD SP,L0000
+ RET
+
+ LD (DDEV),DE
+ LD (L1069),A
+ RET
+
+ LD C,A
+ RST 018H
+ DB 020H
+ RST 018H
+ DB 002H
+ BIT 7,C
+ JR Z,L14F8 ; (+00aH)
+ LD HL,L11A4
+ PUSH HL
+ CALL L1535
+ POP DE
+ RST 018H
+ DB 005H
+L14F8: LD A,C
+ AND 07FH
+ JR L14FF ; (+002H)
+
+L14FD: LD A,045H
+L14FF: LD DE,L1554
+L1502: DEC A
+ JR Z,L150F ; (+00aH)
+ EX AF,AF'
+L1506: LD A,(DE)
+ INC DE
+ OR A
+ JP P,L1506
+ EX AF,AF'
+ JR L1502 ; (-00dH)
+
+L150F: LD A,(DE)
+ CP 080H
+ JR Z,L14FD ; (-017H)
+L1514: LD A,(DE)
+ OR A
+ JP M,L151F
+ CALL L152A
+ INC DE
+ JR L1514 ; (-00bH)
+
+L151F: AND 07FH
+ CALL L152A
+ LD DE,L179E
+ RST 018H
+ DB 005H
+ RET
+
+L152A: PUSH DE
+ LD DE,L1533
+ LD (DE),A
+ RST 018H
+ DB 005H
+ POP DE
+ RET
+
+L1533: NOP
+ NOP
+L1535: LD DE,(ZEQT)
+ INC DE
+ INC DE
+ RST 018H
+ DB 017H
+ CALL LDHLDE
+ LD A,(L1046)
+ ADD A,031H
+ LD (HL),A
+ LD A,(01051H)
+ AND 00FH
+ JR Z,L154E ; (+001H)
+ INC HL
+L154E: LD (HL),03AH
+ INC HL
+ LD (HL),000H
+ RET
+
+L1554: DB 053H,005H,"YNTA",0D8H,04FH,005H,"VER FLO",0D7H,049H,005H ; Error message table (bit-7 terminated)
+ DS 2, 04CH
+ DB "EGAL DAT",0C1H,054H,005H,"YPE MISMATC",0C8H,053H,005H,"TRING LENGT",0C8H,04DH,005H,"EMORY CAPACIT",0D9H,041H,005H
+ DS 2, 052H
+ DB "AY DEF",0AEH,04CH,005H,"INELENGT",0C8H,080H,"GOSUB ",005H,"NESTIN",0C7H,"FOR-NEX",0D4H,"DEF FN ",005H,"NESTIN",0C7H,"NEX",0D4H,"RETUR",0CEH,055H,005H,"N DEF. FUNCTIO",0CEH,055H,005H,"N DEF. LIN",0C5H,043H,005H,"AN'T ",006H,"CON",0D4H,04DH,005H,"EMORY PROTECTIO",0CEH,049H,005H,"NSTRUCTIO",0CEH,043H,005H,"AN'T ",006H,"RESUM",0C5H,"RESUM",0C5H
+ DS 2, 080H
+ DB "REA",0C4H,"SWAP ",005H,"LEVE",0CCH
+ DS 2, 080H
+ DB 053H,005H,"YSTEM I",0C4H,046H,005H,"RAMIN",0C7H,04FH,005H,056H,045H
+ DS 2, 052H
+ DB 055H,0CEH,050H,005H,"ARIT",0D9H
+ DS 8, 080H
+ DB 046H,005H,"ILE NOT FOUN",0C4H,048H,005H,"ARDWAR",0C5H,041H,005H,"LREADY EXIS",0D4H,041H,005H,"LREADY OPE",0CEH,04EH,005H,"OT OPE",0CEH,080H,057H,005H,"RITE PROTEC",0D4H
+ DS 3, 080H
+ DB 04EH,005H,"OT READ",0D9H,054H,005H
+ DS 2, 04FH
+ DB " MANY FILE"
+ DB LSD3
+ DB 044H,005H,"ISK MISMATC",0C8H,04EH,005H,"O FILE SPAC",0C5H,055H,005H,"NFORMA",0D4H,054H,005H
+ DS 2, 04FH
+ DB " LONG FIL",0C5H
+ DS 2, 080H
+ DB 044H,005H,"EV. NAM",0C5H,043H,005H,"AN'T EXECUT",0C5H,049H,005H
+ DS 2, 04CH
+ DB "EGAL FILENAM",0C5H,049H,005H
+ DS 2, 04CH
+ DB "EGAL FILEMOD",0C5H,080H,04FH,005H,"UT OF FIL",0C5H,04CH,005H,"OGICAL NUMBE"
+ DB LSD2
+ DB "LPT:"
+L1772: DB 04EH,005H,"OT READ",0D9H
+ DS 2, 080H
+ DB 044H,005H,"EV. MOD",0C5H,055H,005H,"NPRINTABL",0C5H,043H,005H,"HECK SU",0CDH
+L179E: DB 020H
+ DB 005H
+ DB 045H
+ DS 2, 052H
+ DB 04FH
+ DB 052H
+ DS 91, 000H
+L1800: JP L4000
+
+L1803: LD A,(L1042)
+ CP 088H
+ RET
+
+L1809: NOP
+ NOP
+L180B: NOP
+ NOP
+L180D: NOP
+ NOP
+ CALL L181A
+ CALL L1821
+L1815: XOR A
+ LD (L1FC0),A
+ RET
+
+L181A: LD A,(L1042)
+ LD (L1FC0),A
+ RET
+
+L1821: CALL SKPDE
+ LD A,(L1050)
+ BIT 7,A
+ LD HL,L1848
+L182C: JR Z,L183D ; (+00fH)
+ BIT 3,A
+ LD HL,L1835
+ JR NZ,L183D ; (+008H)
+L1835: LD IX,(ZOUT)
+ CALL IOCALL
+ RET
+
+L183D: LD A,B
+L183E: OR A
+ RET Z
+ LD A,(DE)
+ CALL L00FA
+ INC DE
+ DEC B
+ JR L183D ; (-00bH)
+
+L1848: CALL SKPDE
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+ LD HL,(L180B)
+ ADD HL,DE
+ LD (HL),A
+ INC DE
+ LD HL,(ZKL)
+ OR A
+ SBC HL,DE
+ CALL Z,L1871
+ LD (IY+040H),E
+ LD (IY+041H),D
+ INC (IY+014H)
+ RET NZ
+ INC (IY+015H)
+ RET NZ
+ JP 01F91H
+
+L1871: PUSH BC
+ LD B,002H
+L1874: CALL L1D15
+ LD IX,L1835
+ JR Z,L1881 ; (+004H)
+ LD IX,L2907
+L1881: LD A,B
+ CALL L18B6
+ CALL L1890
+ INC (IY+04EH)
+ LD DE,L0000
+ POP BC
+ RET
+
+L1890: JP (IX)
+
+L1892: LD A,01AH
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+L189A: LD HL,(L180B)
+ ADD HL,DE
+ LD (HL),A
+ INC DE
+ LD HL,(ZKL)
+ XOR A
+ SBC HL,DE
+ JR NZ,L189A ; (-00eH)
+ PUSH BC
+ LD HL,(L180B)
+ DEC HL
+ LD (HL),0FFH
+ DEC HL
+ LD (HL),0FFH
+ LD B,006H
+ JR L1874 ; (-042H)
+
+L18B6: LD BC,(ZKL)
+ INC BC
+ INC BC
+ LD HL,(L180B)
+ DEC HL
+ DEC HL
+ LD DE,(01809H)
+ RET
+
+L18C6: OR 0AFH
+ LD IX,(ZCL)
+ CALL IOCALL
+ RET
+
+ CALL L1803
+ RET NZ
+ PUSH DE
+ LD DE,L11A4
+ CALL L026A
+ LD (0193CH),DE
+ POP DE
+ RET NC
+ JP 0017DH
+
+ PUSH HL
+ PUSH DE
+ CALL L181A
+ LD HL,(L1040)
+ INC HL
+ BIT 7,(HL)
+ PUSH HL
+ LD B,000H
+ SCF
+ CALL Z,L1913
+ POP HL
+ CALL C,L1908
+ POP DE
+ PUSH AF
+ CALL L1815
+ LD L,B
+ LD H,000H
+ ADD HL,DE
+ LD (HL),000H
+ POP AF
+ POP HL
+ RET
+
+L1908: SET 7,(HL)
+ LD HL,01051H
+ BIT 4,(HL)
+ RET Z
+ JP 01FA0H
+
+L1913: CALL L1803
+ JR Z,L193B ; (+023H)
+ LD A,(L1050)
+ BIT 7,A
+ LD HL,L1989
+ JR Z,L1975 ; (+053H)
+ BIT 2,A
+ LD HL,L1929
+ JR NZ,L1975 ; (+04cH)
+L1929: LD IX,(ZINP)
+ CALL IOCALL
+ RET
+
+L1931: LD A,03FH
+ RST 018H
+ DB 003H
+ LD A,020H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 034H
+L193B: LD HL,L0000
+L193E: CALL HLFTCH
+ OR A
+ JR Z,L1931 ; (-013H)
+ LD C,000H
+ RST 018H
+ DB 036H
+ LD (0193CH),HL
+ RET
+
+ LD B,000H
+ CALL TEST1
+ DB 022H
+ JR NZ,L1967 ; (+013H)
+L1954: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ JR Z,L1961 ; (+005H)
+ LD (DE),A
+ INC DE
+ INC B
+ JR L1954 ; (-00dH)
+
+L1961: CALL TEST1
+ DB 02CH
+ OR A
+ RET
+
+L1967: LD A,(HL)
+ OR A
+ RET Z
+ CP C
+ RET Z
+ INC HL
+ CP 02CH
+ RET Z
+ LD (DE),A
+ INC DE
+ INC B
+ JR L1967 ; (-00eH)
+
+L1975: LD (0197BH),HL
+ LD B,000H
+L197A: CALL L0000
+ RET C
+ CP 00DH
+ RET Z
+ LD (DE),A
+ INC DE
+ INC B
+ JR NZ,L197A ; (-00cH)
+ JP 01F76H
+
+L1989: CALL SKPDE
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+ LD HL,(ZKL)
+ OR A
+ SBC HL,DE
+ CALL Z,L19B4
+ RET C
+ LD L,(IY+04EH)
+ LD H,(IY+04FH)
+ XOR A
+ SBC HL,DE
+ SCF
+ RET Z
+ LD HL,(L180B)
+ ADD HL,DE
+ LD A,(HL)
+ INC DE
+ LD (IY+040H),E
+ LD (IY+041H),D
+ RET
+
+L19B4: CALL L1D15
+ JP NZ,L2A4C
+ OR 0AFH
+ CALL L18B6
+ CALL L1929
+ RET C
+ LD A,(HL)
+ INC HL
+ AND (HL)
+ LD (HL),0FFH
+ INC A
+ LD DE,L0000
+ RET NZ
+ PUSH HL
+ LD HL,(L180D)
+ LD BC,(ZKL)
+L19D5: DEC HL
+ DEC BC
+ LD A,(HL)
+ OR A
+ JR Z,L19D5 ; (-006H)
+ POP HL
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ RET
+
+ CALL SKPDE
+ LD HL,L1A2D
+ CP 088H
+ JR Z,L19F4 ; (+00aH)
+ LD HL,L1A35
+ CP 089H
+ JR Z,L19F4 ; (+003H)
+ RST 018H
+ DB 029H
+ RET C
+L19F4: LD (L1040),HL
+ LD DE,L1042
+ LD BC,00008H
+ LDIR
+ LD (L1809),HL
+ PUSH HL
+ POP IY
+ LD DE,L1000
+ CALL L1C54
+ PUSH HL
+ LD HL,(L1044)
+ LD DE,L104A
+ LD BC,0001DH
+ LDIR
+ POP HL
+ LD BC,00010H
+ ADD HL,BC
+ LD (L180B),HL
+ LD BC,(ZKL)
+ ADD HL,BC
+ LD (L180D),HL
+ LD A,(L1043)
+ AND 00FH
+ RET
+
+L1A2D: ADC A,B
+ INC BC
+ LD A,B
+ DEC BC
+ NOP
+ NOP
+ NOP
+ NOP
+L1A35: ADC A,C
+ LD (BC),A
+ NOP
+ RRCA
+ NOP
+ NOP
+ NOP
+ NOP
+ LD HL,L11A4
+ PUSH HL
+ LD A,B
+ OR A
+ CALL NZ,LDHLDE
+ LD (HL),000H
+ LD HL,$CRT
+ JR L1A50 ; (+003H)
+
+L1A4D: LD HL,L0000
+L1A50: LD A,L
+ OR H
+ JR Z,L1A89 ; (+035H)
+ LD (01A84H),HL
+ CALL LDDEMI
+ LD (01A4EH),DE
+ LD DE,L11A4
+ EX DE,HL
+L1A62: LD A,(DE)
+ OR A
+ JR Z,L1A6D ; (+007H)
+ CP (HL)
+ JR NZ,L1A4D ; (-01cH)
+ INC HL
+ INC DE
+ JR L1A62 ; (-00bH)
+
+L1A6D: LD A,(HL)
+ INC HL
+ CP 03AH
+ LD C,000H
+ JR Z,L1A82 ; (+00dH)
+ SUB 031H
+ CP 009H
+ JR NC,L1A4D ; (-02eH)
+ LD C,A
+ LD A,(HL)
+ INC HL
+ CP 03AH
+ JR NZ,L1A4D ; (-035H)
+L1A82: EX (SP),HL
+ LD HL,L0000
+ LD A,C
+ JR L1A9B ; (+012H)
+
+L1A89: POP HL
+ PUSH HL
+L1A8B: LD A,(HL)
+ INC HL
+ CP 03AH
+ JP Z,01F94H
+ OR A
+ JR NZ,L1A8B ; (-00aH)
+ LD HL,(DDEV)
+ LD A,(L1069)
+L1A9B: LD (L1044),HL
+ PUSH HL
+ LD (L1046),A
+ LD DE,L104A
+ LD BC,0001DH
+ LDIR
+ LD B,A
+ LD A,(01051H)
+ AND 007H
+ CP B
+ JP C,01F94H
+ LD A,B
+ POP DE
+ POP HL
+ RET
+
+ CALL SKPDE
+ RST 018H
+ DB 02CH
+ EX DE,HL
+ LD HL,L1001
+ LD B,01FH
+ CALL ?CLRHL
+ LD HL,L1000
+ RST 018H
+ DB 017H
+ CALL L1EB4
+ LD HL,L1050
+ BIT 4,(HL)
+ RET Z
+ INC HL
+ BIT 7,(HL)
+ RET NZ
+ LD A,(L1001)
+ CP 00DH
+ JP Z,01F9AH
+ RET
+
+ CALL SKPDE
+ CALL L1AEF
+ LD B,000H
+ CALL L1B97
+ JP L2D08
+
+L1AEF: LD A,(L1042)
+ RST 018H
+ DB 029H
+ JP NC,01F7CH
+ CALL L1C5B
+ LD HL,L005D
+ LD A,(L1050)
+ LD DE,(ZKL)
+ INC DE
+ INC DE
+ BIT 7,A
+ JR NZ,L1B0B ; (+001H)
+ ADD HL,DE
+L1B0B: LD A,(L1043)
+ BIT 2,A
+ JR Z,L1B13 ; (+001H)
+ ADD HL,DE
+L1B13: EX DE,HL
+ LD A,(L1042)
+ RST 018H
+L1B18: DB 02AH
+ LD (L1FC0),A
+ LD (L1040),HL
+ EX DE,HL
+ LD HL,L1042
+ LD BC,00008H
+ LDIR
+ LD (01809H),DE
+ PUSH DE
+ POP IY
+ LD HL,L1000
+ CALL L1C54
+ LD HL,00010H
+ ADD HL,DE
+ LD (L180B),HL
+ LD DE,(ZKL)
+ ADD HL,DE
+ LD (L180D),HL
+ CALL L1D15
+ JP NZ,L2B7F
+ LD A,(L1043)
+ BIT 2,A
+ JP NZ,01F97H
+ BIT 1,A
+ LD IX,(ZWO)
+ JR NZ,L1B65 ; (+00bH)
+ LD A,(L1050)
+ BIT 7,A
+ JR Z,L1B6B ; (+00aH)
+ LD IX,(ZRO)
+L1B65: LD HL,L1000
+ JP IOCALL
+
+L1B6B: CALL L0D9B
+ JP 019BBH
+
+ CALL SKPDE
+ LD IY,L0100
+ LD (L1042),IY
+ LD IY,L1000
+ CALL L1D15
+ LD HL,L2B7A
+ JR NZ,L1B8B ; (+003H)
+ LD HL,L1C39
+L1B8B: CALL L00FA
+ LD B,080H
+ CALL L1B97
+ LD A,(L1000)
+ RET
+
+L1B97: LD A,(L1000)
+ CP 005H
+ RET C
+ LD A,(L1012)
+ AND 080H
+ CP B
+ RET Z
+ JP 01F9DH
+
+L1BA7: CALL SKPDE
+ OR A
+ JR Z,L1BED ; (+040H)
+ CALL L1BB3
+ JP L2D08
+
+L1BB3: RST 018H
+ DB 02EH
+ RET C
+ CALL L181A
+ PUSH AF
+ CALL L1D15
+ JR NZ,L1BE1 ; (+022H)
+ BIT 7,A
+ LD A,B
+ JR Z,L1BD4 ; (+010H)
+ OR A
+ LD IX,(ZKL)
+ JR Z,L1BCF ; (+004H)
+ LD IX,(ZCL)
+L1BCF: CALL IOCALL
+ JR L1BE4 ; (+010H)
+
+L1BD4: OR A
+ JR Z,L1BE4 ; (+00dH)
+ LD A,(L1043)
+ BIT 1,A
+ CALL NZ,L1892
+ JR L1BE4 ; (+003H)
+
+L1BE1: CALL L2BEC
+L1BE4: POP AF
+ RST 018H
+ DB 02BH
+ RET
+
+ CALL SKPDE
+ LD B,000H
+L1BED: LD C,08EH
+L1BEF: LD A,C
+ PUSH BC
+ RST 018H
+ DB 029H
+ CALL NC,L1BB3
+ POP BC
+ DEC C
+ JR NZ,L1BEF ; (-00bH)
+ JP L1FAB
+
+L1BFD: CALL SKPDE
+ LD A,(L1050)
+ BIT 6,A
+ JP Z,01F97H
+ CALL 018C7H
+ LD A,(ZDIRMX)
+ LD B,A
+L1C0F: LD HL,L11A4
+ PUSH BC
+ LD IX,(ZRO)
+ CALL IOCALL
+ POP BC
+ SET 0,A
+ RET C
+ PUSH IY
+ POP DE
+ CALL L1E9D
+ LD A,(HL)
+ RET Z
+ DJNZ L1C0F ; (-019H)
+ XOR A
+ SCF
+ RET
+
+L1C2B: CALL L1C5B
+ CALL L1BFD
+ JP NC,01F79H
+ OR A
+ JP Z,01F85H
+ RET
+
+L1C39: CALL L1C5B
+ CALL L1BFD
+ JP C,01F73H
+ CALL SKPDE
+ LD HL,L11A4
+ PUSH IY
+ POP DE
+ PUSH HL
+ CALL L1C54
+ POP HL
+ LD DE,L1000
+ LD A,(HL)
+L1C54: LD BC,00040H
+ LDIR
+ OR A
+ RET
+
+L1C5B: LD IX,L1C9D
+L1C5F: LD (01C99H),IX
+ CALL SKPDE
+ LD A,(L1042)
+ LD C,A
+ LD HL,(L1072)
+ PUSH HL
+L1C6E: POP HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD B,A
+ INC HL
+ CALL LDDEMI
+ PUSH HL
+ ADD HL,DE
+ EX (SP),HL
+ CP 08FH
+ JR NC,L1C6E ; (-010H)
+ CP C
+ JR Z,L1C6E ; (-013H)
+ INC HL
+ LD A,(HL)
+ EX AF,AF'
+ INC HL
+ LD DE,L1044
+ PUSH BC
+ LD BC,00300H
+L1C8C: LD A,(DE)
+ SUB (HL)
+ OR C
+ LD C,A
+ INC DE
+ INC HL
+ DJNZ L1C8C ; (-008H)
+ POP BC
+ JR NZ,L1C6E ; (-029H)
+ LD A,B
+ CALL L0000
+ JR L1C6E ; (-02fH)
+
+L1C9D: LD A,(01051H)
+ BIT 6,A
+ JP NZ,01F7CH
+ BIT 5,A
+ RET Z
+ EX AF,AF'
+ LD B,A
+ LD A,(L1043)
+ AND B
+ BIT 1,A
+ RET Z
+ JP 01F7CH
+
+ CALL L1D15
+ JP NZ,L2AD2
+ LD BC,(ELMD20)
+ PUSH BC
+ XOR A
+ LD IX,(ZINP)
+ CALL IOCALL
+ POP BC
+ RET
+
+ LD A,(01051H)
+ BIT 7,A
+ JP Z,01F97H
+ LD BC,(ELMD20)
+ JP L313A
+
+ LD A,(L1000)
+ CP 005H
+ JR C,L1CE4 ; (+005H)
+ LD A,080H
+ LD (L1012),A
+L1CE4: CALL L1D15
+ JP NZ,L2AE0
+ BIT 7,A
+ JP NZ,01F97H
+ PUSH DE
+ LD HL,L0200
+ LD (L1042),HL
+ CALL L1C5B
+ LD HL,L1000
+ PUSH HL
+ POP IY
+ LD IX,(ZWO)
+ CALL IOCALL
+ LD BC,(ELMD20)
+ POP HL
+ LD A,004H
+ LD IX,(ZOUT)
+ CALL IOCALL
+ RET
+
+L1D15: LD A,(L1050)
+ BIT 5,A
+ RET
+
+ CALL SKPDE
+ OR A
+ JR NZ,L1D6B ; (+04aH)
+ LD HL,L0100
+ LD (L1042),HL
+ CALL L1C5B
+ LD HL,L1050
+ BIT 7,(HL)
+ JP NZ,01F97H
+ BIT 5,(HL)
+ JP NZ,02F38H
+ INC HL
+ BIT 7,(HL)
+ JP NZ,01F97H
+ LD HL,L2000
+ LD BC,00008H
+L1D43: CALL ?CLRHL
+ DEC C
+ JR NZ,L1D43 ; (-006H)
+ CALL 018C7H
+ LD A,(ZDIRMX)
+ LD B,A
+ LD HL,L2000
+L1D53: PUSH BC
+ LD IX,(ZRO)
+ CALL IOCALL
+ PUSH AF
+ LD BC,00020H
+ ADD HL,BC
+ LD (HL),000H
+ POP AF
+ POP BC
+ JR C,L1D68 ; (+002H)
+ DJNZ L1D53 ; (-015H)
+L1D68: JP L18C6
+
+L1D6B: LD (01E13H),A
+ XOR A
+ LD (L1090),A
+ LD HL,L11A4
+ PUSH HL
+ LD DE,L1E1D
+ LD B,00EH
+ CALL LDHLDE
+ CALL L1535
+ LD (HL),020H
+ INC HL
+ LD (HL),020H
+ INC HL
+ EX DE,HL
+ CALL L1D15
+ LD IX,(ZFREE)
+ JR Z,L1D95 ; (+004H)
+ LD IX,L2F4B
+L1D95: CALL IOCALL
+ JR C,L1DA8 ; (+00eH)
+ LD H,B
+ LD L,C
+ LD B,000H
+ RST 018H
+ DB 016H
+ LD HL,L1E2B
+ LD B,009H
+ CALL LDDEHL
+L1DA8: EX DE,HL
+ LD (HL),00DH
+ INC HL
+ LD (HL),000H
+ POP DE
+ CALL L1E12
+ LD B,040H
+ LD HL,L2000
+L1DB7: CALL L1DC3
+ LD DE,00020H
+ ADD HL,DE
+ DJNZ L1DB7 ; (-009H)
+ JP L2D08
+
+L1DC3: CALL SKPDE
+ LD A,(HL)
+ OR A
+ RET Z
+ RET M
+ LD DE,L11A4
+ PUSH DE
+ LD A,020H
+ LD B,026H
+ CALL ?SETDE
+ LD A,(HL)
+ CP 00CH
+ JR C,L1DDC ; (+002H)
+ LD A,00CH
+L1DDC: PUSH HL
+ POP IY
+ POP DE
+ PUSH DE
+ INC DE
+ LD HL,L1E31
+ LD BC,L0003
+L1DE8: ADD HL,BC
+ DEC A
+ JR NZ,L1DE8 ; (-004H)
+ LDIR
+ EX DE,HL
+ BIT 0,(IY+012H)
+ JR Z,L1DF7 ; (+002H)
+ LD (HL),02AH
+L1DF7: INC HL
+ INC HL
+ LD (HL),022H
+ INC HL
+L1DFC: LD A,(IY+001H)
+ CP 00DH
+ JR Z,L1E09 ; (+006H)
+ LD (HL),A
+ INC IY
+ INC HL
+ JR L1DFC ; (-00dH)
+
+L1E09: LD (HL),022H
+ INC HL
+ LD (HL),00DH
+ INC HL
+ LD (HL),000H
+ POP DE
+L1E12: LD A,000H
+ RST 018H
+ DB 02EH
+ RST 018H
+ DB 017H
+ RST 018H
+ DB 037H
+ RST 018H
+ DB 00FH
+ RET
+
+L1E1D: DB 00DH,"DIRECTORY OF " ; Directory/file type strings
+L1E2B: DB " KB FR"
+L1E31: DS 2, 045H
+ DB ".OBJBTXBSDBRDRB"
+ DS 2, 020H
+ DB "? LIB ?"
+ DS 2, 020H
+ DB "? SYSGR"
+ DS 2, 020H
+ DB 03FH
+ DB 020H
+ DB LSE5
+ DB 0AFH,032H,042H,010H,0DDH,021H,071H,01EH,0EDH,073H,072H,01EH,0CDH,05FH,01CH
+ DB LSE1
+ DB 0DDH,02AH,053H,010H,0CDH,045H,002H,0C9H,031H
+ DS 2, 000H
+ DB 006H
+ DB 000H
+ DB 0DFH
+ DB 038H
+ DB 018H
+ DB 0DFH
+L1E7A: DB 0CDH,064H,001H,059H,0C8H,011H,08EH,01EH,0DFH,005H,03EH,001H,0DFH,00DH,0FEH,059H,0C8H,0C3H,07DH,001H,"OK ? [Y/N]",019H,000H
+L1E9A: DB 011H
+ DB 000H
+ DB 010H
+L1E9D: DB 0CDH
+ DB 008H
+ LD BC,L1323
+ LD A,(DE)
+ CP 00DH
+ RET Z
+ LD B,011H
+L1EA8: LD A,(DE)
+ CP (HL)
+ RET NZ
+ CP 00DH
+ RET Z
+ INC HL
+ INC DE
+ DJNZ L1EA8 ; (-00aH)
+ OR A
+ RET
+
+L1EB4: INC HL
+ LD C,010H
+L1EB7: LD A,B
+ OR A
+ JR Z,L1ECF ; (+014H)
+ LD A,(DE)
+ INC DE
+ DEC B
+ OR A
+ JR Z,L1ECF ; (+00eH)
+ CP 022H
+ JR Z,L1EB7 ; (-00eH)
+ CP 03AH
+ JP Z,01F9AH
+ LD (HL),A
+ INC HL
+ DEC C
+ JR NZ,L1EB7 ; (-018H)
+L1ECF: LD (HL),00DH
+ INC HL
+L1ED2: LD A,C
+ OR A
+ RET Z
+ LD (HL),020H
+ INC HL
+ DEC C
+ JR L1ED2 ; (-009H)
+
+ LD HL,(L1072)
+L1EDE: INC (HL)
+ DEC (HL)
+ SCF
+ RET Z
+ CP (HL)
+ INC HL
+ JR Z,L1EEE ; (+008H)
+ PUSH DE
+ CALL LDDEMI
+ ADD HL,DE
+ POP DE
+ JR L1EDE ; (-010H)
+
+L1EEE: INC HL
+ INC HL
+ RET
+
+L1EF1: CALL SKPDE
+ RST 018H
+ DB 029H
+ RET C
+ DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ DEC HL
+ LD D,H
+ LD E,L
+ INC BC
+ INC BC
+ INC BC
+ PUSH BC
+ ADD HL,BC
+ PUSH HL
+ LD B,H
+ LD C,L
+ LD HL,(L107A)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ LDIR
+ POP DE
+ LD HL,L0000
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ RST 018H
+ DB 019H
+ OR A
+ RET
+
+ PUSH AF
+ PUSH BC
+ PUSH DE
+ PUSH DE
+ INC DE
+ INC DE
+ INC DE
+ LD HL,(L107A)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ JP C,01F6DH
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ SBC HL,DE
+ JR C,01F6DH ; (+037H)
+ LD HL,(L107E)
+ DEC H
+ DEC H
+ SBC HL,DE
+ JR C,01F6DH ; (+02eH)
+ POP HL
+ PUSH HL
+ LD BC,(VARST)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ INC BC
+ LDDR
+ POP DE
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ PUSH HL
+ INC DE
+ PUSH DE
+L1F58: LD (HL),000H
+ INC HL
+ DEC DE
+ LD A,D
+ OR E
+ JR NZ,L1F58 ; (-008H)
+ POP DE
+ INC DE
+ INC DE
+ RST 018H
+ DB 019H
+ POP HL
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L1F6A: LD A,003H
+ LD HL,0063EH
+ LD HL,09C3EH
+ LD HL,0A83EH
+ LD HL,0A93EH
+ LD HL,0AA3EH
+ LD HL,0AB3EH
+ LD HL,0AE3EH
+ LD HL,0B23EH
+ LD HL,0B33EH
+ LD HL,0B43EH
+ LD HL,0B53EH
+ LD HL,0B63EH
+ LD HL,0B73EH
+ LD HL,L3A3E
+ LD HL,0BB3EH
+ LD HL,0BC3EH
+ LD HL,0BD3EH
+ LD HL,0BF3EH
+ LD HL,L403E
+ LD HL,0C43EH
+ JP L0182
+
+L1FAB: LD A,(L1FC0)
+ OR A
+ LD B,000H
+ CALL NZ,L1BA7
+ CALL L368D
+ CALL L38FA
+ CALL L2D08
+ JP L0D20
+
+L1FC0: DS 64, 000H
+L2000: DS 38, 000H
+L2026: DS 263, 000H
+L212D: DS 211, 000H
+L2200: DS 294, 000H
+L2326: DS 986, 000H
+L2700: DS 16, 000H
+L2710: DS 240, 000H
+L2800: DS 256, 000H
+ LD (02905H),DE
+ RET
+
+L2905: NOP
+ NOP
+L2907: LD BC,L0000
+ LD DE,00001H
+ BIT 2,A
+ CALL Z,L2ED0
+ LD HL,(L180D)
+ LD A,(HL)
+ LD (HL),C
+ LD C,A
+ INC HL
+ LD A,(HL)
+ LD (HL),B
+ LD B,A
+ LD HL,(L180B)
+ LD DE,L0100
+ JP L2FCF
+
+ CALL SKPDE
+ CALL L181A
+ LD HL,L11A4
+ PUSH HL
+ LD A,B
+ OR A
+ CALL NZ,LDHLDE
+ LD B,020H
+ LD A,020H
+ CALL ?SETHL
+ LD A,(IY+012H)
+ OR A
+ JP NZ,01F7FH
+ CALL L29DF
+ JR NC,L2964 ; (+01dH)
+ LD (IY+014H),E
+ LD (IY+015H),D
+ LD (IY+046H),001H
+ JR Z,L2964 ; (+011H)
+ CALL L29C2
+ CALL L2A08
+ CALL L297C
+ LD (IY+040H),L
+ LD (IY+041H),H
+ JR L296A ; (+006H)
+
+L2964: CALL L297C
+ CALL L29AB
+L296A: POP HL
+ CALL L2E24
+ LD (IY+044H),001H
+L2972: LD HL,(L2905)
+ INC HL
+ LD (L2905),HL
+ JP L1815
+
+L297C: LD HL,(L2905)
+ DEC HL
+ PUSH HL
+ ADD HL,HL
+ LD E,H
+ LD D,000H
+ LD HL,(L180B)
+ ADD HL,DE
+ ADD HL,DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD A,L
+ PUSH AF
+ RRA
+ RRA
+ RRA
+ AND 00FH
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ POP AF
+ AND 007H
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ LD DE,(0180BH)
+ INC D
+ ADD A,E
+ LD E,A
+ RET NC
+ INC D
+ RET
+
+L29AB: LD A,(IY+040H)
+ CP L
+ JR NZ,L29B6 ; (+005H)
+ LD A,(IY+041H)
+ CP H
+ RET Z
+L29B6: CALL L29C2
+ LD (IY+040H),L
+ LD (IY+041H),H
+ XOR A
+ JR L29CC ; (+00aH)
+
+L29C2: XOR A
+ CP (IY+044H)
+ RET Z
+ LD (IY+044H),A
+ LD A,003H
+L29CC: CALL SKPDE
+ LD C,(IY+040H)
+ LD B,(IY+041H)
+ LD DE,L0100
+ LD HL,(L180B)
+ INC H
+ JP L2FD1
+
+L29DF: LD L,(IY+014H)
+ LD H,(IY+015H)
+ LD DE,(02905H)
+ LD A,H
+ OR L
+ JR NZ,L29F1 ; (+004H)
+ OR 0FFH
+ SCF
+ RET
+
+L29F1: CALL L2FC9
+ RET NC
+ CALL SKPDE
+ DEC HL
+ DEC DE
+ LD A,L
+ AND 080H
+ LD L,A
+ LD A,E
+ AND 080H
+ LD E,A
+ CALL L2FC9
+ RET C
+ SCF
+ RET
+
+L2A08: CALL SKPDE
+ LD HL,(L2905)
+ DEC HL
+ ADD HL,HL
+ LD B,H
+ INC B
+ LD HL,(L180B)
+L2A15: LD A,(HL)
+ INC HL
+ OR (HL)
+ CALL Z,L2A23
+ INC HL
+ DJNZ L2A15 ; (-009H)
+ LD (IY+046H),001H
+ RET
+
+L2A23: CALL SKPDE
+ PUSH HL
+ LD DE,00010H
+ CALL L2ED0
+ POP HL
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ LD HL,(L180B)
+ INC H
+ XOR A
+L2A36: LD (HL),020H
+ INC HL
+ DEC A
+ JR NZ,L2A36 ; (-006H)
+ DEC H
+ LD DE,L0100
+ LD A,010H
+L2A42: PUSH AF
+ CALL L2FCF
+ POP AF
+ INC BC
+ DEC A
+ JR NZ,L2A42 ; (-009H)
+ RET
+
+L2A4C: LD L,(IY+014H)
+ LD H,(IY+015H)
+ LD A,H
+ OR L
+ SCF
+ RET Z
+ LD DE,0FF02H
+ PUSH HL
+ ADD HL,DE
+ JR C,L2A60 ; (+003H)
+ LD HL,L0000
+L2A60: LD (IY+014H),L
+ LD (IY+015H),H
+ POP DE
+ LD HL,(L180B)
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ CALL L2A88
+ OR A
+ LD A,(L1043)
+ BIT 2,A
+ RET NZ
+ LD HL,(L180D)
+ LD A,(HL)
+ LD (IY+01EH),A
+ INC HL
+ LD A,(HL)
+ LD (IY+01FH),A
+ LD DE,L0000
+ RET
+
+L2A88: LD C,(IY+01EH)
+ LD B,(IY+01FH)
+ LD A,B
+ OR C
+ JP Z,01F76H
+ LD DE,L0100
+ LD HL,(L180B)
+ JP 02FD0H
+
+ RET
+
+ XOR A
+ LD (DE),A
+ PUSH HL
+ PUSH DE
+ PUSH DE
+ CALL L29DF
+ POP DE
+ JR C,L2AC7 ; (+01fH)
+ CALL L181A
+ PUSH DE
+ CALL L297C
+ CALL L29AB
+ EX DE,HL
+ POP DE
+ CALL L2E24
+ XOR A
+ LD (DE),A
+ CALL L2972
+ LD B,020H
+ XOR A
+ LD HL,(L1040)
+ INC HL
+ RES 7,(HL)
+ JR L2ACF ; (+008H)
+
+L2AC7: XOR A
+ LD B,A
+ LD HL,(L1040)
+ INC HL
+ SET 7,(HL)
+L2ACF: POP DE
+ POP HL
+ RET
+
+L2AD2: LD DE,(ELMD20)
+ LD BC,(ELMD30)
+ CALL 02FD0H
+ JP L2D08
+
+L2AE0: CALL L2AEA
+ LD IY,L1000
+ JP L2C07
+
+L2AEA: PUSH DE
+ CALL L2DD0
+ CALL L2ED0
+ LD (ELMD30),BC
+ LD D,E
+ LD E,000H
+ POP HL
+ JP L2FCF
+
+ OR A
+ JR NZ,L2B34 ; (+035H)
+ PUSH DE
+ CALL L2B6A
+ LD A,000H
+ CALL Z,L2B51
+ POP DE
+ CALL L2AEA
+ LD HL,L1000
+ OR 0FFH
+ CALL L2B51
+ CALL L2E2A
+ LD HL,L2000
+ LD (HL),081H
+ PUSH HL
+ POP IY
+ LD HL,(L1014)
+ LD (IY+014H),L
+ LD (IY+015H),H
+ LD HL,(ELMD30)
+ LD (IY+01EH),L
+ LD (IY+01FH),H
+ JP L2F37
+
+L2B34: PUSH HL
+ CALL L2B6A
+ JP NZ,01F88H
+ DEC (HL)
+ LD DE,L1000
+ CALL L2E24
+ CALL L2F37
+L2B45: XOR A
+ LD HL,L2000
+ CALL L2B51
+ CALL L2E2A
+ POP HL
+ RET
+
+L2B51: CALL SKPDE
+ PUSH AF
+ LD DE,00014H
+ ADD HL,DE
+ CALL LDDEMI
+ LD BC,00008H
+ ADD HL,BC
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ CALL L2DD8
+ POP AF
+ JP L2E77
+
+L2B6A: CALL L1D15
+ JP Z,01F97H
+ CALL L2E36
+ CALL 02F38H
+ LD A,(HL)
+ CP 081H
+ RET
+
+L2B7A: LD A,009H
+ LD (L1043),A
+L2B7F: CALL L2F6E
+ XOR B
+ DEC HL
+ LD A,(L1043)
+ BIT 0,A
+ JP NZ,01F73H
+ PUSH AF
+ LD DE,00001H
+ CALL L2ED0
+ LD (IY+01EH),C
+ LD (IY+01FH),B
+ LD (IY+046H),001H
+ POP AF
+ BIT 1,A
+ RET Z
+ LD HL,(L180D)
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ RET
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD A,(L1043)
+ BIT 1,A
+ JP NZ,01F79H
+ PUSH HL
+ CALL L2E24
+ LD B,020H
+ CALL ?CLRDE
+ POP HL
+ LD A,(HL)
+ PUSH IY
+ POP DE
+ CALL L2E24
+ LD HL,L1043
+ BIT 3,(HL)
+ RET NZ
+ BIT 0,(HL)
+ JP NZ,L2A4C
+ CALL L2E5E
+ CALL L2A88
+ LD D,H
+ LD E,L
+L2BDB: LD A,(HL)
+ INC HL
+ OR (HL)
+ INC HL
+ JR NZ,L2BDB ; (-006H)
+ DEC HL
+ DEC HL
+ SBC HL,DE
+ LD (IY+042H),L
+ LD (IY+043H),H
+ RET
+
+L2BEC: LD A,B
+ OR A
+ RET Z
+ LD A,(L1043)
+ BIT 0,A
+ RET NZ
+ BIT 2,A
+ JR NZ,L2C20 ; (+027H)
+ LD A,006H
+ CALL L2907
+ PUSH IY
+ POP HL
+ LD DE,L1000
+ CALL L2E24
+L2C07: CALL L2F6E
+ RLA
+ INC L
+ JP Z,01F85H
+L2C0F: LD A,001H
+ LD B,(IY+000H)
+ JP L2D6A
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ JP 01F79H
+
+L2C20: CALL L29C2
+ LD A,(IY+046H)
+ OR A
+ RET Z
+ CALL L2F6E
+ LD (0CA2CH),A
+ ADD A,L
+ RRA
+ JR L2C0F ; (-023H)
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD (IY+045H),001H
+ LD A,(HL)
+ CP (IY+000H)
+ JP NZ,01F9DH
+ JR L2C0F ; (-037H)
+
+ CALL SKPDE
+ LD (02C60H),A
+ CALL L2F6E
+ LD D,H
+ INC L
+ JP 01F73H
+
+ RET Z
+ RET M
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD BC,L0012
+ ADD HL,BC
+ LD (HL),0FFH
+L2C61: CALL L2F37
+ JP L2D08
+
+ CALL SKPDE
+ CALL L2F6E
+ LD (HL),D
+ INC L
+ JP 01F73H
+
+ RET Z
+ RET M
+ CALL L1E9A
+ RET NZ
+ POP AF
+ CALL L2CFB
+ PUSH HL
+ LD DE,L1000
+ CALL L2E24
+ XOR A
+ LD (L1042),A
+ LD IX,L2C9B
+ CALL L1C5F
+ XOR A
+ LD (L1000),A
+ POP HL
+L2C93: LD B,(HL)
+ LD IY,L1000
+ JP L2D6A
+
+L2C9B: INC HL
+ INC HL
+ INC HL
+ CALL L1E9A
+ JP Z,01F7CH
+L2CA4: RET
+
+L2CA5: DS 16, 000H
+ DEC C
+ CALL SKPDE
+ LD HL,L2CA4
+ CALL L1EB4
+ XOR A
+L2CC0: LD (02CE3H),A
+ CALL L2F6E
+ JP Z,L182C
+ JR L2C93 ; (-038H)
+
+ RET M
+ LD DE,L2CA4
+ CALL L1E9D
+ JP Z,01F79H
+ CALL L1E9A
+ RET NZ
+ LD (02CE9H),HL
+ LD A,001H
+ LD (02CE3H),A
+ RET
+
+ LD A,0FFH
+ OR A
+ JP Z,01F73H
+ LD HL,0FFFFH
+ CALL L2CFB
+ LD DE,L2CA5
+ INC HL
+ EX DE,HL
+ LD BC,00011H
+ LDIR
+ JP L2C61
+
+L2CFB: CALL SKPDE
+ LD DE,L0012
+ ADD HL,DE
+ LD A,(HL)
+ OR A
+ RET Z
+ JP 01F7FH
+
+L2D08: CALL IOOUT
+ XOR A
+ LD (L1FC0),A
+ LD A,LSE0
+L2D11: PUSH AF
+ RST 018H
+ DB 02BH
+ POP AF
+ INC A
+ JR NZ,L2D11 ; (-007H)
+ LD HL,(L1044)
+ LD DE,$FD
+ CALL L2FC9
+ RET NZ
+ LD A,(L1046)
+ EXX
+ LD H,A
+ LD D,000H
+ LD B,003H
+ EXX
+ XOR A
+ LD (L1042),A
+L2D30: EXX
+ LD A,B
+ LD (L1046),A
+ ADD A,090H
+ LD L,A
+ LD E,000H
+ EXX
+ LD IX,L2D5C
+ CALL L1C5F
+ EXX
+ BIT 7,E
+ LD A,L
+ EXX
+ CALL Z,L1EF1
+ EXX
+ DEC B
+ EXX
+ JP P,L2D30
+ EXX
+ LD A,H
+ LD (L1046),A
+ BIT 7,D
+ EXX
+ CALL Z,L368D
+ RET
+
+L2D5C: EXX
+ LD DE,0FFFFH
+ EXX
+ RET
+
+L2D62: LD A,(L1046)
+ ADD A,090H
+ RST 018H
+ DB 029H
+ RET
+
+L2D6A: LD (L2DCF),A
+ LD A,B
+ PUSH AF
+ EX DE,HL
+ LD HL,L1000
+ CALL L2E24
+ CALL L2E36
+ POP AF
+ CP 005H
+ JR C,L2D88 ; (+00aH)
+ LD A,(L1012)
+ RLA
+ LD A,003H
+ JR NC,L2D88 ; (+002H)
+ LD A,001H
+L2D88: LD HL,02D9CH
+ ADD A,A
+ CALL ADDHLA
+ CALL INDRCT
+ CALL L00FA
+ CALL L2F37
+ CALL L2E2A
+ JP L2D08
+
+ ADD A,02DH
+ ADD A,02DH
+ AND (HL)
+ DEC L
+ JP PO,L212D
+ JR NZ,02DB9H ; (+010H)
+L2DA9: DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ LD A,B
+ OR C
+ RET Z
+ LD DE,L0100
+ LD HL,L11A4
+ PUSH HL
+ PUSH DE
+ CALL 02FD0H
+ LD DE,00001H
+ CALL L2DC9
+ POP DE
+ POP HL
+ ADD HL,DE
+ JR L2DA9 ; (-01dH)
+
+ CALL L2DD0
+L2DC9: LD A,(L2DCF)
+ JP L2E77
+
+L2DCF: NOP
+L2DD0: LD DE,(ELMD20)
+ LD BC,(ELMD30)
+L2DD8: LD A,E
+ OR D
+ JR Z,L2DDD ; (+001H)
+ DEC DE
+L2DDD: INC D
+ LD E,D
+ LD D,000H
+ RET
+
+ LD DE,L0100
+ LD BC,(ELMD30)
+ LD A,(L2DCF)
+ OR A
+ LD HL,L11A4
+ JR Z,L2DF5 ; (+003H)
+ LD HL,(L180B)
+L2DF5: PUSH HL
+ PUSH AF
+ CALL L2FD1
+ POP AF
+ PUSH AF
+ JR Z,L2E02 ; (+004H)
+ LD A,(IY+045H)
+ OR A
+L2E02: LD DE,00001H
+ CALL Z,L2DC9
+ POP AF
+ POP HL
+ JR Z,L2E13 ; (+007H)
+ LD E,(IY+042H)
+ LD D,(IY+043H)
+ ADD HL,DE
+L2E13: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ LD A,B
+ OR C
+ RET Z
+ PUSH HL
+ LD DE,00010H
+ CALL L2DC9
+ POP HL
+ JR L2E13 ; (-011H)
+
+L2E24: LD BC,00020H
+ LDIR
+ RET
+
+L2E2A: LD HL,L2800
+ LD DE,L0100
+ LD BC,L000F
+ JP L2FCF
+
+L2E36: LD HL,L2800
+ CALL L2E67
+ PUSH HL
+ CALL L2D62
+ EX DE,HL
+ POP HL
+ RET C
+ PUSH HL
+ LD A,(DE)
+ CP (HL)
+ JP NZ,01F88H
+ LD BC,L0006
+ ADD HL,BC
+ EX DE,HL
+ ADD HL,BC
+ EX DE,HL
+ LD B,FDPC
+L2E52: LD A,(DE)
+ CPL
+ AND (HL)
+ JP NZ,01F88H
+ INC HL
+ INC DE
+ DJNZ L2E52 ; (-00aH)
+ POP HL
+ RET
+
+L2E5E: CALL L2D62
+ RET NC
+ LD DE,L0100
+ RST 018H
+ DB 02AH
+L2E67: LD BC,L000F
+ LD DE,L0100
+ XOR A
+ CALL L2FD4
+ LD A,(HL)
+ OR A
+ JP M,01F70H
+ RET
+
+L2E77: LD HL,L2800
+ CALL L2E84
+ OR A
+ RET NZ
+ CALL L2D62
+ RET C
+ XOR A
+L2E84: CALL IOOUT
+ OR A
+ PUSH HL
+ LD HL,0B600H
+ LD A,013H
+ JR NZ,L2E95 ; (+005H)
+ LD HL,0A62FH
+ LD A,01BH
+L2E95: LD (L2EB2),A
+ LD (L2EC8),HL
+ POP HL
+L2E9C: CALL L2EA4
+ INC BC
+ DEC E
+ JR NZ,L2E9C ; (-007H)
+ RET
+
+L2EA4: CALL SKPDE
+ INC HL
+ LD A,C
+ SUB (HL)
+ LD C,A
+ JR NC,L2EAE ; (+001H)
+ DEC B
+L2EAE: INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L2EB2: NOP
+ DEC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ LD A,C
+ LD E,003H
+L2EBD: SRL B
+ RR C
+ DEC E
+ JR NZ,L2EBD ; (-007H)
+ ADD HL,BC
+ CALL L2F2B
+L2EC8: NOP
+ NOP
+ CP (HL)
+ LD (HL),A
+ RET NZ
+ JP 01F88H
+
+L2ED0: PUSH DE
+ CALL L2E5E
+ POP DE
+ PUSH HL
+ CALL L2EDE
+ POP HL
+ LD A,001H
+ JR L2E84 ; (-05aH)
+
+L2EDE: LD A,E
+ EXX
+ LD E,A
+ LD D,A
+ LD B,001H
+ EXX
+ INC HL
+ LD E,(HL)
+ LD D,000H
+ INC HL
+ INC HL
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ DEC BC
+ LD (02EFCH),BC
+ INC HL
+ PUSH HL
+ EXX
+ POP HL
+ EXX
+ LD B,D
+ LD C,E
+L2EFB: LD HL,L0000
+ OR A
+ SBC HL,DE
+ JP C,01F8BH
+ EXX
+ LD A,B
+ AND (HL)
+ EXX
+ CALL L2F15
+ INC DE
+ EXX
+ RLC B
+ JR NC,L2F12 ; (+001H)
+ INC HL
+L2F12: EXX
+ JR L2EFB ; (-01aH)
+
+L2F15: JR NZ,L2F24 ; (+00dH)
+ EXX
+ DEC E
+ EXX
+ RET NZ
+ POP AF
+ EXX
+ LD A,D
+ EXX
+ LD E,A
+ LD D,000H
+ OR A
+ RET
+
+L2F24: EXX
+ LD E,D
+ EXX
+ LD B,D
+ LD C,E
+ INC BC
+ RET
+
+L2F2B: PUSH BC
+ AND 007H
+ INC A
+ LD B,A
+ XOR A
+ SCF
+L2F32: ADC A,A
+ DJNZ L2F32 ; (-003H)
+ POP BC
+ RET
+
+L2F37: OR 0AFH
+ LD HL,L2000
+ LD DE,00800H
+ LD BC,00010H
+ CALL L2FD1
+ LD A,(HL)
+ OR A
+ JP P,01F70H
+ RET
+
+L2F4B: PUSH HL
+ PUSH DE
+ CALL L2E36
+ INC HL
+ INC HL
+ CALL LDDEMI
+ CALL INDRCT
+ XOR A
+ SBC HL,DE
+ JP C,01F70H
+ SRL H
+ RR L
+ SRL H
+ RR L
+ LD B,H
+ LD C,L
+ POP DE
+ POP HL
+ OR A
+ JP L368D
+
+L2F6E: CALL L1D15
+ JP Z,01F97H
+ POP HL
+ CALL LDDEMI
+ LD (02FB1H),HL
+ LD (02F97H),DE
+ XOR A
+ LD (L2FC3),A
+ CALL 02F38H
+ LD (L2FC7),HL
+ LD A,040H
+ LD (L2FC6),A
+L2F8E: LD HL,(L2FC7)
+ LD A,(HL)
+ OR A
+ CALL Z,L2FB3
+ CALL 0FFFFH
+ LD HL,(L2FC7)
+ LD BC,00020H
+ ADD HL,BC
+ LD (L2FC7),HL
+ LD HL,L2FC6
+ DEC (HL)
+ JR NZ,L2F8E ; (-01bH)
+ LD A,(L2FC3)
+ LD HL,(L2FC4)
+ OR A
+ JP 0FFFFH
+
+L2FB3: PUSH AF
+ LD A,(L2FC3)
+ OR A
+ JR NZ,L2FC1 ; (+007H)
+ INC A
+ LD (L2FC3),A
+ LD (L2FC4),HL
+L2FC1: POP AF
+ RET
+
+L2FC3: NOP
+L2FC4: NOP
+ NOP
+L2FC6: NOP
+L2FC7: NOP
+ NOP
+L2FC9: PUSH HL
+ OR A
+ SBC HL,DE
+ POP HL
+ RET
+
+L2FCF: OR 0AFH
+L2FD1: CALL L2FE8
+L2FD4: CALL SKPDE
+ OR A
+ LD IX,(ZINP)
+ JR Z,L2FE2 ; (+004H)
+ LD IX,(ZOUT)
+L2FE2: LD A,(L1046)
+ JP IOCALL
+
+L2FE8: CALL IOOUT
+ LD A,(L35B5)
+ OR A
+ RET M
+ CALL L2D62
+ RET C
+ JP L2E36
+
+$CMT: DB "Y3CMT",000H,05FH ; $CMT - Cassette device descriptor
+L2FFE: DB 0C0H,000H,014H,"0d0",022H,030H
+ DB LSE5
+ DS 2, 000H
+ DB 001H,0AAH,"0]0",097H,01FH
+ SUB A
+ RRA
+ SUB A
+ RRA
+ CALL TEST1
+ DB 054H
+ LD HL,L2FFE
+ SET 4,(HL)
+ RET Z
+ RES 4,(HL)
+ OR A
+ RET
+
+ CALL SKPDE
+ LD DE,L10F0
+ LD A,(HL)
+ LD C,005H
+ CP 002H
+ JR Z,L303D ; (+00eH)
+ LD C,004H
+L3031: CP 003H
+ JR Z,L303D ; (+008H)
+ LD C,A
+L3036: SUB 004H
+ CP 002H
+ JP C,01F9DH
+L303D: LD A,C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD BC,00011H
+ LDIR
+ INC HL
+ INC HL
+ LD BC,L0006
+ LDIR
+ LD B,068H
+ CALL ?CLRDE
+ LD HL,L10F0
+ LD BC,L0080
+ CALL L30CB
+ JR L3060 ; (+003H)
+
+ CALL L30D2
+L3060: JP C,L017B
+ RET
+
+ LD A,037H
+ LD (L30AA),A
+ PUSH HL
+ LD HL,L10F0
+ LD BC,L0080
+ CALL L3114
+ JR C,L30C1 ; (+04cH)
+ LD DE,L3332
+ CALL L3301
+ POP DE
+ LD A,(HL)
+ LD C,002H
+ CP 005H
+ JR Z,L3091 ; (+00eH)
+ LD C,003H
+ CP 004H
+ JR Z,L3091 ; (+008H)
+ LD C,A
+ SUB 002H
+ CP 002H
+ JP C,01F9DH
+L3091: LD A,C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD BC,00011H
+ LDIR
+ XOR A
+ LD B,002H
+ CALL ?CLRDE
+ LD BC,L0006
+ LDIR
+ LD B,006H
+ JP ?CLRDE
+
+L30AA: XOR A
+ JR NC,L30BD ; (+010H)
+ LD A,0AFH
+ LD (L30AA),A
+ PUSH HL
+ LD HL,L1000
+ LD DE,L333F
+ CALL L3301
+ POP HL
+L30BD: CALL L311B
+ RET NC
+L30C1: CP 002H
+ JP NZ,L017B
+ LD A,0C6H
+ JP L0182
+
+L30CB: CALL L32D4
+ LD A,0CCH
+ JR L30D4 ; (+002H)
+
+L30D2: LD A,053H
+L30D4: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD E,A
+ LD D,0D7H
+ LD A,B
+ OR C
+ JR Z,L3107 ; (+024H)
+ CALL L32CB
+ CALL L3174
+ JR C,L3101 ; (+016H)
+ LD A,E
+ CP 0CCH
+ JR NZ,L30F8 ; (+008H)
+ PUSH DE
+ LD DE,L3325
+ CALL L3301
+ POP DE
+L30F8: DI
+ OUT (LSE4),A
+ CALL 00780H
+ CALL NC,L31DD
+L3101: DI
+ OUT (LSE4),A
+ CALL 00700H
+L3107: POP DE
+ LD SP,L0000
+ OUT (LSE0),A
+ OUT (LSE1),A
+ PUSH AF
+ RST 018H
+ DB 011H
+ POP AF
+ RET
+
+L3114: CALL L32D4
+ LD A,0CCH
+ JR L311D ; (+002H)
+
+L311B: LD A,053H
+L311D: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD D,LSD2
+ LD E,A
+ LD A,B
+ OR C
+ JR Z,L3107 ; (-025H)
+ CALL L3174
+ DI
+ OUT (LSE4),A
+ CALL NC,L065B
+ CALL NC,L3220
+ JR L3101 ; (-039H)
+
+L313A: PUSH HL
+ LD DE,L334C
+ LD HL,L1000
+ CALL L3301
+ POP HL
+ CALL L3153
+ RET NC
+ CP 002H
+ JP NZ,L017B
+ LD A,083H
+ JP L0182
+
+L3153: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD D,LSD2
+ LD E,053H
+ LD A,B
+ OR C
+ JR Z,L3107 ; (-05cH)
+ CALL L32CB
+ CALL L3174
+ DI
+ OUT (LSE4),A
+ CALL NC,L065B
+ CALL NC,L3274
+ JR L3101 ; (-073H)
+
+L3174: CALL SKPDE
+ RST 018H
+ DB 010H
+ LD HL,MMIO
+ LD A,FDPA
+ CALL POPRA
+ LD B,00AH
+L3183: LD HL,0E002H
+ CALL BREAKX
+ AND 010H
+ JR Z,L319A ; (+00dH)
+L318D: LD B,0FFH
+ OUT (LSE2),A
+L3191: CALL L09A6
+ DJNZ L3191 ; (-005H)
+ OUT (LSE0),A
+ XOR A
+ RET
+
+L319A: LD HL,0E003H
+ LD A,006H
+ CALL POPRA
+ INC A
+ CALL POPRA
+ DJNZ L3183 ; (-025H)
+ LD A,(L0050)
+ OR A
+ JR NZ,L31C7 ; (+019H)
+ RST 018H
+ DB 002H
+ LD A,07FH
+ RST 018H
+ DB 004H
+ LD A,020H
+ RST 018H
+ DB 003H
+ LD A,D
+ CP 0D7H
+ LD DE,L32BC
+ JR Z,L31C3 ; (+003H)
+ LD DE,L32C3
+L31C3: RST 018H
+ DB 005H
+ RST 018H
+ DB 002H
+L31C7: LD HL,0E002H
+ CALL BREAKX
+ AND 010H
+ JR NZ,L318D ; (-044H)
+ LD HL,0E001H
+ CALL BREAKX
+ AND 080H
+ JR NZ,L31C7 ; (-014H)
+ SCF
+ RET
+
+L31DD: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD D,002H
+ LD A,FDPA
+ LD (MMIO),A
+L31E7: OUT (LSE1),A
+ LD A,(HL)
+ OUT (LSE3),A
+ CALL L32C8
+ LD A,(0E001H)
+ AND 080H
+ SCF
+ JR Z,L321C ; (+025H)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L31E7 ; (-016H)
+ LD HL,(L1197)
+ LD A,H
+ CALL L32C8
+ LD A,L
+ CALL L32C8
+ CALL L0D60
+ XOR A
+ DEC D
+ JR Z,L321C ; (+00dH)
+ LD B,000H
+L3211: CALL L0D47
+ DJNZ L3211 ; (-005H)
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+ JR L31E7 ; (-035H)
+
+L321C: POP HL
+ POP BC
+ POP DE
+ RET
+
+L3220: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD H,002H
+L3225: LD BC,0E001H
+ LD DE,0E002H
+L322B: CALL 00601H
+ JR C,L3267 ; (+037H)
+ CALL 00A4AH
+ LD A,(DE)
+ AND 020H
+ JR Z,L322B ; (-00dH)
+ LD D,H
+ LD HL,L0000
+ LD (L1197),HL
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+L3243: CALL L0624
+ JR C,L3267 ; (+01fH)
+ OUT (LSE1),A
+ LD (HL),A
+ OUT (LSE3),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3243 ; (-010H)
+ LD HL,(L1197)
+ CALL L0624
+ JR C,L3267 ; (+00cH)
+ CP H
+ JR NZ,L326B ; (+00dH)
+ CALL L0624
+ JR C,L3267 ; (+004H)
+ CP L
+ JR NZ,L326B ; (+005H)
+L3266: XOR A
+L3267: POP HL
+ POP BC
+ POP DE
+ RET
+
+L326B: DEC D
+ LD H,D
+ JR NZ,L3225 ; (-04aH)
+L326F: LD A,002H
+ SCF
+ JR L3267 ; (-00dH)
+
+L3274: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD H,002H
+L3279: LD BC,0E001H
+ LD DE,0E002H
+L327F: CALL 00601H
+ JR C,L3267 ; (-01dH)
+ CALL 00A4AH
+ LD A,(DE)
+ AND 020H
+ JR Z,L327F ; (-00dH)
+ LD D,H
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+L3291: CALL L0624
+ JR C,L3267 ; (-02fH)
+ OUT (LSE1),A
+ CP (HL)
+ OUT (LSE3),A
+ JR NZ,L326F ; (-02eH)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3291 ; (-012H)
+ LD HL,(CSMDT)
+ CALL L0624
+ JR C,L3267 ; (-044H)
+ CP H
+ JR NZ,L326F ; (-03fH)
+ CALL L0624
+ JR C,L3267 ; (-04cH)
+ CP L
+ JR NZ,L326F ; (-047H)
+ DEC D
+ LD H,D
+ JR NZ,L3279 ; (-041H)
+ JR L3266 ; (-056H)
+
+L32BC: DB "RECORD." ; CMT status strings (RECORD/PLAY)
+L32C3: DB "PLAY",000H
+L32C8: JP L076D
+
+L32CB: DI
+ OUT (LSE2),A
+ CALL 0071AH
+ OUT (LSE0),A
+ RET
+
+L32D4: CALL SKPDE
+ LD A,0C9H
+ LD (L32D4),A
+ LD HL,L0036
+ BIT 6,(HL)
+ RET Z
+ LD HL,L0767
+ LD (032C9H),HL
+ LD HL,L077A
+ LD (030FCH),HL
+ LD HL,00996H
+ LD (03192H),HL
+ LD HL,L0A01
+ LD (03212H),HL
+ LD HL,L0A1A
+ LD (03209H),HL
+ RET
+
+L3301: LD A,(L0050)
+ OR A
+ RET NZ
+ RST 018H
+ DB 002H
+ RST 018H
+ DB 005H
+ PUSH HL
+ INC HL
+ LD A,022H
+ RST 018H
+ DB 003H
+ LD D,010H
+L3312: LD A,(HL)
+ CP 00DH
+ JR Z,L331D ; (+006H)
+ RST 018H
+ DB 003H
+ INC HL
+ DEC D
+ JR NZ,L3312 ; (-00bH)
+L331D: LD A,022H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 002H
+ POP HL
+ RET
+
+L3325: DB 057H,005H,"RITING" ; CMT status strings (WRITING/FOUND/LOADING/VERIFYING)
+ DS 3, 020H
+ DB 006H
+ DB 000H
+L3332: DB 046H,005H,"OUND"
+ DS 5, 020H
+ DB 006H
+ DB 000H
+L333F: DB 04CH,005H,"OADING"
+ DS 3, 020H
+ DB 006H
+ DB 000H
+L334C: DB 056H,005H,"ERIFYING ",006H
+ NOP
+$RS: DB 08DH,"5RS" ; $RS - RS-232C device descriptor
+ DS 2, 000H
+ DB 08FH,001H,000H,072H,033H,0A4H,033H,0A4H,033H,0B5H,033H,0B5H,033H,0C6H,033H,0DBH,033H
+ DB LSE5
+ DB 000H
+ RET C
+ PUSH IY
+ CALL L33EC
+ CALL L3380
+ CALL L3435
+ JR L33D8 ; (+058H)
+
+L3380: RST 018H
+ DB 013H
+ LD (IY-003H),E
+ CALL TEST1
+ DB 02CH
+ JP NZ,L1F6A
+ RST 018H
+ DB 013H
+ LD (IY-002H),E
+ LD (IY-008H),00DH
+ CALL TEST1
+ DB 000H
+ RET Z
+ CALL TEST1
+ DB 02CH
+ RST 018H
+ DB 013H
+ LD (IY-008H),E
+ RET
+
+ PUSH IY
+ CALL L33EC
+ LD A,(IY-001H)
+ INC (IY-001H)
+ OR A
+ CALL Z,L3497
+ JR L33D8 ; (+023H)
+
+ PUSH IY
+ CALL L33EC
+ DEC (IY-001H)
+ LD A,(IY-001H)
+ OR A
+ CALL Z,L347F
+ JR L33D7 ; (+011H)
+
+ PUSH IY
+ CALL L33EC
+ CALL L34E6
+ JR C,L33D8 ; (+008H)
+ CP (IY-008H)
+ JR NZ,L33D7 ; (+002H)
+ LD A,00DH
+L33D7: OR A
+L33D8: POP IY
+ RET
+
+ PUSH IY
+ CALL L33EC
+ CP 00DH
+ JR NZ,L33E7 ; (+003H)
+ LD A,(IY-008H)
+L33E7: CALL L352B
+ JR L33D8 ; (-014H)
+
+L33EC: PUSH AF
+ PUSH DE
+ LD A,(L1046)
+ INC A
+ LD IY,033F7H
+ LD DE,L0015
+L33F9: ADD IY,DE
+ DEC A
+ JR NZ,L33F9 ; (-005H)
+ LD C,(IY+000H)
+ POP DE
+ POP AF
+ RET
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ OR C
+ OR B
+ NOP
+ DJNZ L3421 ; (+010H)
+ INC B
+ LD B,B
+ INC BC
+ RET NZ
+ DEC B
+ LD H,B
+ JR NC,L341C ; (+003H)
+ NOP
+ NOP
+ NOP
+L341C: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L3421: OR E
+ OR D
+ NOP
+ DJNZ 03436H ; (+010H)
+ INC B
+ LD B,B
+ INC BC
+ RET NZ
+ DEC B
+ LD H,B
+ JR NC,L3431 ; (+003H)
+L342E: CALL BRKCHK
+L3431: RET NZ
+ JP 0017DH
+
+L3435: LD A,018H
+ OUT (C),A
+ LD A,030H
+ OUT (C),A
+ LD A,(IY-002H)
+ AND 00CH
+ JR NZ,L3448 ; (+004H)
+ SET 2,(IY-002H)
+L3448: LD A,(IY-002H)
+ LD B,A
+ AND 00FH
+ OR 040H
+ LD (IY+006H),A
+ LD A,B
+ AND 080H
+ OR 040H
+ LD (IY+008H),A
+ RRA
+ AND 07FH
+ OR 00AH
+ LD (IY+00AH),A
+ LD A,B
+ OR 07FH
+ LD (IY+002H),A
+ CALL L348B
+L346C: IN A,(C)
+ RRCA
+ RET NC
+ DEC C
+ IN A,(C)
+ INC C
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ AND 070H
+ JR Z,L346C ; (-012H)
+ RET
+
+L347F: RES 0,(IY+008H)
+ RES 7,(IY+00AH)
+ LD (IY-001H),000H
+L348B: LD B,00AH
+ PUSH IY
+ POP HL
+ LD DE,L0003
+ ADD HL,DE
+ OTIR
+ RET
+
+L3497: LD A,030H
+ OUT (C),A
+ RET
+
+L349C: SET 0,(IY+008H)
+ LD A,013H
+ OUT (C),A
+ LD A,(IY+008H)
+ OUT (C),A
+ LD A,035H
+ OUT (C),A
+ LD A,(IY+00AH)
+ OR 088H
+ LD (IY+00AH),A
+ OUT (C),A
+ RET
+
+ LD A,003H
+ OUT (C),A
+ RES 0,(IY+008H)
+ LD A,(IY+008H)
+ OUT (C),A
+L34C5: RES 7,(IY+00AH)
+ JR L34DB ; (+010H)
+
+L34CB: SET 1,(IY+00AH)
+ JR L34DB ; (+00aH)
+
+L34D1: RES 1,(IY+00AH)
+ JR L34DB ; (+004H)
+
+ SET 7,(IY+00AH)
+L34DB: LD A,005H
+ OUT (C),A
+ LD A,(IY+00AH)
+ OUT (C),A
+ OR A
+ RET
+
+L34E6: CALL SKPDE
+ LD C,(IY+000H)
+L34EC: CALL L342E
+ CALL L3564
+ JR C,L34EC ; (-008H)
+ CALL L349C
+L34F7: CALL L342E
+ IN A,(C)
+ RRCA
+ JR NC,L34F7 ; (-008H)
+ DEC C
+ IN A,(C)
+ INC C
+ AND (IY+002H)
+ PUSH AF
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ AND 070H
+ JR NZ,L3516 ; (+005H)
+ CALL L34C5
+ POP AF
+ RET
+
+L3516: LD B,A
+ POP AF
+ PUSH BC
+ CALL L3435
+ POP BC
+ LD A,01DH
+ RLC B
+ RLC B
+ RET C
+ INC A
+ RLC B
+ RET C
+ INC A
+ SCF
+ RET
+
+L352B: CALL SKPDE
+ LD C,(IY+000H)
+ LD D,A
+ CALL L34CB
+L3535: CALL L342E
+ CALL L356B
+ CALL NC,L357C
+L353E: JR C,L3535 ; (-00bH)
+ IN A,(C)
+ BIT 2,A
+ JR Z,L3535 ; (-011H)
+ BIT 7,(IY-003H)
+ JR Z,L3555 ; (+009H)
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ RRCA
+ JR NC,L3535 ; (-020H)
+L3555: DEC C
+ OUT (C),D
+ INC C
+ BIT 6,(IY-003H)
+ JR Z,L3562 ; (+003H)
+ CALL L34D1
+L3562: OR A
+ RET
+
+L3564: OR A
+ BIT 0,(IY-003H)
+ JR L3570 ; (+005H)
+
+L356B: OR A
+ BIT 1,(IY-003H)
+L3570: RET Z
+ LD A,010H
+ OUT (C),A
+ IN A,(C)
+ AND 008H
+ RET NZ
+ SCF
+ RET
+
+L357C: OR A
+ BIT 2,(IY-003H)
+ RET Z
+ LD A,010H
+ OUT (C),A
+ IN A,(C)
+ AND 020H
+ RET NZ
+ SCF
+ RET
+
+$FD: DB 0A2H,"8FD" ; $FD - Floppy Disk device descriptor
+ DS 2, 000H
+ DB 03FH,003H,03FH,08DH,036H,00FH
+ DS 2, 000H
+ DB 001H,030H,000H,0FEH,000H,005H,037H,008H,037H,097H,01FH
+ SUB A
+ RRA
+ SUB A
+ RRA
+ DB 000H
+L35AB: DB 000H
+L35AC: DB 000H
+L35AD: DS 3, 000H
+L35B0: DB 000H
+L35B1: DS 2, 000H
+L35B3: DB 000H
+L35B4: DB 000H
+L35B5: DB 000H
+L35B6: DB 000H
+L35B7: DS 4, 000H
+L35BB: DS 4, 000H
+L35BF: DB 000H
+L35C0: PUSH BC
+ LD A,L
+ LD B,004H
+L35C4: SRL H
+ RR L
+ DJNZ L35C4 ; (-006H)
+ AND 00FH
+ INC A
+ LD H,A
+ POP BC
+ RET
+
+L35D0: LD A,H
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ DEC A
+ ADD A,L
+ LD L,A
+ RET
+
+L35DB: CALL SKPDE
+ LD HL,L35B5
+ BIT 7,(HL)
+ JR NZ,L35EB ; (+006H)
+ CALL L367C
+ CALL L3898
+L35EB: LD A,(L35AC)
+ BIT 2,A
+ SET 2,A
+ JR Z,L35F6 ; (+002H)
+ SET 5,A
+L35F6: SET 7,A
+ LD HL,L35B5
+ BIT 6,(HL)
+ JR Z,L3601 ; (+002H)
+ SET 6,A
+L3601: CALL L361C
+ LD (HL),A
+ LD HL,L35B7
+ CALL L3614
+ BIT 0,(HL)
+ CALL Z,L3695
+ RET C
+ SET 0,(HL)
+ RET
+
+L3614: LD A,(L35AC)
+ AND 003H
+ JP ADDHLA
+
+L361C: OUT (0DCH),A
+ PUSH AF
+ RLCA
+ RLCA
+ OUT (0DDH),A
+ RLCA
+ OUT (0DEH),A
+ POP AF
+ RET
+
+L3628: CALL SKPDE
+ LD D,000H
+ LD A,(L35B3)
+ SRL A
+ CPL
+ OUT (0DBH),A
+ LD B,A
+ LD A,(L35B5)
+ RES 6,A
+ BIT 5,A
+ JR Z,L3640 ; (+001H)
+ CCF
+L3640: JR C,L3644 ; (+002H)
+ SET 6,A
+L3644: CALL L361C
+ LD HL,L35B5
+ CP (HL)
+ LD (HL),A
+ JR Z,L364F ; (+001H)
+ INC D
+L364F: LD HL,L35BB
+ CALL L3614
+ LD A,(HL)
+ OUT (0D9H),A
+ CP B
+ JR Z,L3666 ; (+00bH)
+ INC D
+ CALL L3673
+ PUSH AF
+ IN A,(0D9H)
+ LD (HL),A
+ POP AF
+ RET C
+ RET NZ
+L3666: LD A,(L35B4)
+ CPL
+ OUT (0DAH),A
+ LD A,D
+ OR A
+ CALL NZ,L388D
+ XOR A
+ RET
+
+L3673: LD A,018H
+ CALL L36C2
+ RET C
+ AND 099H
+ RET
+
+L367C: LD HL,L35B5
+ SET 7,(HL)
+ LD A,(HL)
+ CALL L361C
+ LD HL,L35B7
+ LD B,004H
+ JP ?CLRHL
+
+L368D: XOR A
+ CALL L361C
+ LD (L35B5),A
+ RET
+
+L3695: CALL SKPDE
+ LD HL,L35BB
+ CALL L3614
+ LD (HL),0FFH
+ LD A,008H
+ CALL L36C2
+ RET C
+ AND 085H
+ XOR 004H
+ RET Z
+ JP L385A
+
+L36AE: PUSH AF
+ LD A,LSD0
+ CALL L36BB
+ JR C,L36B8 ; (+002H)
+ POP AF
+ RET
+
+L36B8: POP HL
+ POP HL
+ RET
+
+L36BB: CALL SKPDE
+ LD D,000H
+ JR L36DC ; (+01aH)
+
+L36C2: CALL SKPDE
+ LD B,A
+ LD A,(035AAH)
+ CPL
+ AND 003H
+ OR B
+ LD D,000H
+ JR L36D6 ; (+005H)
+
+L36D1: CALL SKPDE
+ LD D,001H
+L36D6: CALL L36AE
+ LD (L35B6),A
+L36DC: CPL
+ OUT (0D8H),A
+ CALL L3887
+ LD E,007H
+L36E4: LD HL,L2710
+L36E7: DEC HL
+ LD A,H
+ OR L
+ JP Z,L36F9
+ IN A,(0D8H)
+ CPL
+ LD B,A
+ AND 081H
+ CP D
+ JR NZ,L36E7 ; (-00fH)
+ LD A,B
+ OR A
+ RET
+
+L36F9: DEC E
+ JP Z,L385A
+ LD A,(L35B6)
+ CPL
+ OUT (0D8H),A
+ JR L36E4 ; (-021H)
+
+ DB 037H
+ JR L3709 ; (+001H)
+
+ OR A
+L3709: EX AF,AF'
+ PUSH AF
+ EX AF,AF'
+ LD (L35B1),HL
+ PUSH HL
+ LD HL,L35AB
+ RL (HL)
+ RRC (HL)
+ LD H,(HL)
+ LD L,A
+ AND 007H
+ LD (L35AC),A
+ CALL L35DB
+ JR NC,L3728 ; (+005H)
+ POP HL
+ EX AF,AF'
+ POP AF
+ EX AF,AF'
+ RET
+
+L3728: BIT 7,H
+ LD A,L
+ POP HL
+ PUSH HL
+ CALL Z,L37E7
+ LD (035AFH),DE
+ PUSH DE
+ OR A
+ PUSH AF
+ LD H,B
+ LD L,C
+ CALL P,L35C0
+ LD (L35AD),HL
+ LD A,009H
+ LD (L35BF),A
+ PUSH IY
+ CALL L375C
+ EX AF,AF'
+ POP IY
+ LD HL,(L35B3)
+ POP AF
+ CALL P,L35D0
+ LD B,H
+ LD C,L
+ POP DE
+ POP HL
+ POP AF
+ EX AF,AF'
+ JP L37E7
+
+L375C: LD E,000H
+ LD HL,(035AFH)
+ LD A,(L35B5)
+ BIT 5,A
+ JR Z,L376B ; (+003H)
+ ADD HL,HL
+ LD E,080H
+L376B: LD A,L
+ OR A
+ JR Z,L3770 ; (+001H)
+ INC H
+L3770: LD A,H
+ LD (L35B0),A
+L3774: CALL L37FA
+ CALL NC,L3628
+ RET C
+ JR NZ,L37E1 ; (+064H)
+ DI
+ LD A,(L35AB)
+ BIT 7,A
+ LD A,090H
+ LD IY,0A2EDH
+ JR NZ,L3791 ; (+006H)
+ LD A,0B4H
+ LD IY,0A3EDH
+L3791: LD (L37A8),IY
+ CALL L36D1
+ RET C
+L3799: LD B,E
+ PUSH DE
+ LD DE,0FE7CH
+L379E: IN A,(0D8H)
+ OR E
+ CP D
+ JR Z,L379E ; (-006H)
+ CP LSFC
+ JR NZ,L37AD ; (+005H)
+L37A8: NOP
+ NOP
+ JP NZ,L379E
+L37AD: POP DE
+ IN A,(0D8H)
+ RRA
+ JP C,L385A
+ LD A,(L35B4)
+ INC A
+ LD (L35B4),A
+ CP 011H
+ JR Z,L37C4 ; (+005H)
+ DEC D
+ JR NZ,L3799 ; (-029H)
+ JR L37C5 ; (+001H)
+
+L37C4: DEC D
+L37C5: CALL L36AE
+ EI
+ IN A,(0D8H)
+ CPL
+ OR A
+ JR NZ,L37E1 ; (+012H)
+ LD A,(L35AB)
+ OR A
+ CALL Z,L3830
+ JR C,L37E1 ; (+009H)
+ CALL L3818
+ LD A,D
+ OR A
+ JR NZ,L3774 ; (-06bH)
+ XOR A
+ RET
+
+L37E1: CALL L380B
+ RET C
+ JR L3774 ; (-073H)
+
+L37E7: CALL IOOUT
+ LD A,(L35B5)
+ BIT 5,A
+ RET Z
+L37F0: LD A,(HL)
+ CPL
+ LD (HL),A
+ INC HL
+ DEC DE
+ LD A,D
+ OR E
+ JR NZ,L37F0 ; (-009H)
+ RET
+
+L37FA: LD HL,(L35AD)
+ LD (L35B3),HL
+ LD HL,(L35B1)
+ LD A,(L35B0)
+ LD D,A
+ LD C,0DBH
+ OR A
+ RET
+
+L380B: CALL SKPDE
+ LD HL,L35BF
+ DEC (HL)
+ JP Z,L385A
+ JP L3695
+
+L3818: LD (L35B1),HL
+ LD A,D
+ LD (L35B0),A
+ LD HL,(L35B3)
+ LD A,H
+ CP 011H
+ RET NZ
+ LD H,001H
+ INC L
+ LD (L35AD),HL
+ LD (L35B3),HL
+ RET
+
+L3830: LD A,(035AEH)
+ CPL
+ OUT (0DAH),A
+ LD A,090H
+ CALL L36D1
+ RET C
+ LD A,(L35B4)
+ LD B,A
+L3840: IN A,(0D8H)
+ CPL
+ AND 081H
+ CP 001H
+ JR NZ,L3852 ; (+009H)
+ IN A,(0DAH)
+ CPL
+ CP B
+ JR NZ,L3840 ; (-00fH)
+ CALL L36AE
+L3852: IN A,(0D8H)
+ CPL
+ AND 099H
+ RET Z
+ SCF
+ RET
+
+L385A: LD A,(L35B6)
+ RLA
+ IN A,(0D8H)
+ CPL
+ JR NC,L3878 ; (+015H)
+ RLA
+ JR C,L387B ; (+015H)
+ RLA
+ JR NC,L3870 ; (+007H)
+ LD HL,L35AB
+ BIT 7,(HL)
+ JR Z,L387F ; (+00fH)
+L3870: AND 0C0H
+ JR NZ,L3883 ; (+00fH)
+L3874: LD A,029H
+ SCF
+ RET
+
+L3878: RLA
+ JR NC,L3874 ; (-007H)
+L387B: LD A,032H
+ SCF
+ RET
+
+L387F: LD A,02EH
+ SCF
+ RET
+
+L3883: LD A,036H
+ SCF
+ RET
+
+L3887: PUSH DE
+ LD DE,L000F
+ JR L3891 ; (+004H)
+
+L388D: PUSH DE
+ LD DE,L2026
+L3891: DEC DE
+ LD A,E
+ OR D
+ JR NZ,L3891 ; (-005H)
+ POP DE
+ RET
+
+L3898: PUSH BC
+ LD B,011H
+L389B: CALL L388D
+ DJNZ L389B ; (-005H)
+ POP BC
+ RET
+
+$QD: DB 05EH,00DH,051H,044H ; $QD - Quick Disk device descriptor
+ DS 2, 000H
+ DB "_@ ",0C2H,038H,001H,039H,01FH,039H,0DAH,038H,000H,004H,012H,"9)9"
+ DS 2, 000H
+ NOP
+ NOP
+ CP A
+ JR C,0386FH ; (-051H)
+ SCF
+ RET
+
+ RET C
+ CALL TEST1
+ DB 059H
+ JR Z,L38D0 ; (+007H)
+ OR A
+ JP NZ,L1F6A
+ CALL L1E7A
+L38D0: CALL L3924
+ RET C
+ RST 018H
+ DB 010H
+ LD C,002H
+ JR L3919 ; (+03fH)
+
+ OR A
+ JR NZ,L38FA ; (+01dH)
+ RST 018H
+ DB 010H
+ XOR A
+ LD (L395E),A
+ LD C,005H
+ CALL L38EB
+ LD BC,00001H
+L38EB: LD (L3954),HL
+ LD (03956H),DE
+ LD HL,L3953
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ JR L3968 ; (+06eH)
+
+L38FA: CALL SKPDE
+ LD C,006H
+ JR L3919 ; (+018H)
+
+ LD BC,L0003
+ LD DE,00040H
+ CALL L38EB
+ RET NC
+ CP 028H
+ SCF
+ RET NZ
+ LD A,000H
+ RET
+
+ RST 018H
+ DB 010H
+ LD D,B
+ LD E,C
+ LD BC,00103H
+L3919: CALL L38EB
+ RST 018H
+ DB 011H
+ RET
+
+ LD A,037H
+ LD (L392C),A
+L3924: LD BC,L0101
+ JR L38EB ; (-03eH)
+
+ PUSH AF
+ RST 018H
+ DB 010H
+L392C: XOR A
+ JR NC,L3943 ; (+014H)
+ LD A,0AFH
+ LD (L392C),A
+ CALL L1C2B
+ LD (L3958),HL
+ LD HL,L1000
+ LD DE,00040H
+ POP AF
+ JR L3949 ; (+006H)
+
+L3943: LD (L3958),HL
+ POP AF
+ SET 0,A
+L3949: LD (0395AH),BC
+ LD B,A
+ LD C,004H
+ JR L3919 ; (-039H)
+
+ DB 000H
+L3953: DB 000H
+L3954: DS 4, 000H
+L3958: DS 4, 000H
+L395C: DB 000H
+L395D: DB 000H
+L395E: DB 000H
+L395F: DB 000H
+L3960: DB 000H
+L3961: DB 000H
+L3962: DB 000H
+L3963: DB 000H
+L3964: DB 000H
+L3965: DS 3, 000H
+L3968: LD A,005H
+ LD (L3964),A
+L396D: DI
+ CALL L39BC
+ EI
+ RET NC
+ PUSH AF
+ CP 028H
+ JR Z,L39BA ; (+042H)
+ CALL L3C37
+ LD A,(03952H)
+ CP 004H
+ JR NZ,L399F ; (+01dH)
+ LD A,(L3960)
+ OR A
+ JR Z,L399F ; (+017H)
+ XOR A
+ LD (L3960),A
+ LD A,(L3961)
+ PUSH HL
+ LD (03966H),SP
+ POP HL
+ DI
+ CALL L3BB7
+ EI
+ JR C,L39B4 ; (+018H)
+ CALL L3C37
+L399F: POP AF
+ PUSH AF
+ CP 029H
+ JR NZ,L39B4 ; (+00fH)
+ LD HL,L3964
+ DEC (HL)
+ JR Z,L39B4 ; (+009H)
+ POP AF
+ LD A,(L395F)
+ LD (L395E),A
+ JR L396D ; (-047H)
+
+L39B4: CALL L3B29
+ CALL L39D5
+L39BA: POP AF
+ RET
+
+L39BC: LD (03966H),SP
+ LD A,(03952H)
+ DEC A
+ JR Z,L39DC ; (+016H)
+ DEC A
+ JR Z,L39E2 ; (+019H)
+ DEC A
+ JR Z,L3A2C ; (+060H)
+ DEC A
+ JP Z,L3A9C
+ DEC A
+ JR Z,L39D5 ; (+002H)
+ JR L3A25 ; (+050H)
+
+L39D5: PUSH AF
+ XOR A
+ LD (L395C),A
+ POP AF
+ RET
+
+L39DC: LD A,(L3953)
+ JP L3B8B
+
+L39E2: XOR A
+ CALL L3BB7
+ CALL L3CB5
+ LD BC,0EFFFH
+ LD A,0AAH
+L39EE: CPL
+ LD D,A
+ CALL L3D2C
+ DEC BC
+ LD A,B
+ OR C
+ JR Z,L39FB ; (+003H)
+ LD A,D
+ JR L39EE ; (-00dH)
+
+L39FB: CALL L3D02
+ CALL L3C37
+ CALL L3BEA
+ LD A,(L3962)
+ DEC A
+ JR NZ,L3A28 ; (+01eH)
+ CALL L3C4C
+ LD BC,0EFFFH
+ LD E,055H
+L3A12: CP E
+ JR NZ,L3A28 ; (+013H)
+ DEC BC
+ LD A,B
+ OR C
+ JR Z,L3A22 ; (+008H)
+ LD A,E
+ CPL
+ LD E,A
+ CALL L3D42
+ JR L3A12 ; (-010H)
+
+L3A22: CALL L3D14
+L3A25: JP L3C37
+
+L3A28: LD A,029H
+ SCF
+ RET
+
+L3A2C: LD A,(L3963)
+ OR A
+ CALL Z,L3BEA
+ CALL L3A62
+ RET C
+ CALL L3D87
+ CALL L3D42
+ LD C,A
+L3A3E: CALL L3D42
+ LD B,A
+ LD HL,(03956H)
+ SBC HL,BC
+ JP C,L3B33
+ LD HL,(L3954)
+L3A4D: CALL L3D42
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3A4D ; (-00aH)
+ CALL L3D14
+ LD A,(L3953)
+ BIT 0,A
+ JR NZ,L3A25 ; (-03cH)
+ RET
+
+L3A62: LD HL,L3962
+ DEC (HL)
+ JR Z,L3A98 ; (+030H)
+ CALL L3C4C
+ LD C,A
+ LD A,(L395C)
+ LD HL,L395D
+ CP (HL)
+ JR NZ,L3A95 ; (+020H)
+ INC A
+ LD (L395C),A
+ LD (HL),A
+ LD A,(L3953)
+ XOR C
+ RRA
+ RET NC
+L3A80: CALL L3D42
+ LD C,A
+ CALL L3D42
+ LD B,A
+L3A88: CALL L3D42
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3A88 ; (-008H)
+ CALL L3D14
+ JR L3A62 ; (-033H)
+
+L3A95: INC (HL)
+ JR L3A80 ; (-018H)
+
+L3A98: LD A,028H
+ SCF
+ RET
+
+L3A9C: LD A,(L395E)
+ LD (L395F),A
+ LD A,(L3963)
+ OR A
+ JR NZ,L3ABF ; (+017H)
+ CALL L3BEA
+ LD A,(L395E)
+ LD HL,L3962
+ ADD A,(HL)
+ LD (L3962),A
+ INC A
+ LD (L395C),A
+ CALL L3A62
+ JP NC,L3B33
+L3ABF: LD A,(L3953)
+ LD B,A
+ AND 001H
+ JR NZ,L3AD3 ; (+00cH)
+ LD DE,L3954
+ LD A,B
+ RES 2,A
+ CALL L3B3C
+ CALL L3D87
+L3AD3: LD DE,L3958
+ LD A,(L3953)
+ SET 0,A
+ CALL L3B3C
+ CALL L3C37
+ CALL L3D87
+ LD A,(L3953)
+ AND 004H
+ JR Z,L3B37 ; (+04cH)
+ LD A,(L3961)
+ LD HL,L395E
+ ADD A,(HL)
+ CALL L3BB7
+ LD A,001H
+ LD (L3960),A
+L3AFA: LD A,(L3961)
+ LD HL,L395F
+ ADD A,(HL)
+ INC A
+ LD (L3962),A
+ INC A
+ LD (L395C),A
+ CALL L3A62
+ JR NC,L3B33 ; (+025H)
+ LD A,(L3953)
+ AND 001H
+ JR NZ,L3B1C ; (+007H)
+ LD DE,L3954
+ CALL L3B6A
+ RET C
+L3B1C: LD DE,L3958
+ CALL L3B6A
+ RET C
+ LD A,(L3960)
+ OR A
+ JR Z,L3B30 ; (+007H)
+L3B29: XOR A
+ LD (L395E),A
+ LD (L3960),A
+L3B30: JP L3C37
+
+L3B33: LD A,029H
+ SCF
+ RET
+
+L3B37: CALL L3BEA
+ JR L3AFA ; (-042H)
+
+L3B3C: PUSH AF
+ LD HL,L395E
+ INC (HL)
+ CALL L3CB5
+ POP AF
+ CALL L3D2C
+ CALL L3B60
+ LD A,C
+ CALL L3D2C
+ LD A,B
+ CALL L3D2C
+L3B53: LD A,(HL)
+ CALL L3D2C
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3B53 ; (-00aH)
+ JP L3D02
+
+L3B60: EX DE,HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ EX DE,HL
+ RET
+
+L3B6A: CALL L3C4C
+ CALL L3B60
+ CALL L3D42
+ CP C
+ JR NZ,L3B33 ; (-043H)
+ CALL L3D42
+ CP B
+ JR NZ,L3B33 ; (-049H)
+L3B7C: CALL L3D42
+ CP (HL)
+ JR NZ,L3B33 ; (-04fH)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3B7C ; (-00cH)
+ JP L3D14
+
+L3B8B: LD B,A
+ LD A,002H
+ OUT (0F7H),A
+ LD A,081H
+ OUT (0F7H),A
+ LD A,002H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 0F0H
+ CP 080H
+ JP NZ,03D58H
+ LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ LD C,A
+ AND 008H
+ JP Z,03D58H
+ LD A,B
+ OR A
+ RET Z
+ LD A,C
+ AND 020H
+ RET NZ
+ JP 03D55H
+
+L3BB7: PUSH AF
+ LD HL,03D7EH
+ LD B,009H
+ CALL L3C27
+L3BC0: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03D58H
+ LD A,010H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 008H
+ JR Z,L3BC0 ; (-015H)
+ LD BC,L00E9
+ CALL L3D66
+ CALL L3CEA
+ CALL L3CCE
+ POP AF
+ CALL L3D2C
+ CALL L3D02
+ JR L3C1D ; (+033H)
+
+L3BEA: LD HL,L3D73
+ LD B,00BH
+ CALL L3C27
+L3BF2: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03D58H
+ CALL L3D87
+ LD A,010H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 008H
+ JR Z,L3BF2 ; (-018H)
+ LD BC,L00E9
+ CALL L3D66
+ CALL L3C62
+ LD (L3961),A
+ INC A
+ LD (L3962),A
+ CALL L3D14
+L3C1D: LD HL,L3965
+ SET 3,(HL)
+ XOR A
+ LD (L395D),A
+ RET
+
+L3C27: LD C,0F6H
+ OTIR
+ LD A,005H
+ LD (L3963),A
+ OUT (0F7H),A
+ LD A,080H
+ OUT (0F7H),A
+ RET
+
+L3C37: PUSH AF
+ LD A,005H
+ OUT (0F6H),A
+ LD A,060H
+ OUT (0F6H),A
+ LD A,005H
+ OUT (0F7H),A
+ XOR A
+ LD (L3963),A
+ OUT (0F7H),A
+ POP AF
+ RET
+
+L3C4C: LD A,058H
+ LD B,00BH
+ LD HL,L3D73
+ CALL L3CF3
+ LD HL,L3965
+ BIT 3,(HL)
+ LD BC,L0003
+ JR Z,L3C65 ; (+005H)
+ RES 3,(HL)
+L3C62: LD BC,L00A0
+L3C65: CALL L3D66
+ LD A,005H
+ OUT (0F7H),A
+ LD A,082H
+ OUT (0F7H),A
+ LD A,003H
+ OUT (0F6H),A
+ LD A,LSD3
+ OUT (0F6H),A
+ LD BC,L2CC0
+L3C7B: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 010H
+ JR Z,L3C8D ; (+008H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3C7B ; (-00fH)
+ JP 03D5EH
+
+L3C8D: LD A,003H
+ OUT (0F6H),A
+ LD A,0C3H
+ OUT (0F6H),A
+ LD B,09FH
+L3C97: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 001H
+ JR NZ,L3CA7 ; (+006H)
+ DEC B
+ JR NZ,L3C97 ; (-00dH)
+ JP 03D5EH
+
+L3CA7: LD A,003H
+ OUT (0F6H),A
+ LD A,0C9H
+ OUT (0F6H),A
+ CALL L3D42
+ JP L3D42
+
+L3CB5: LD A,098H
+ LD B,009H
+ LD HL,03D7EH
+ CALL L3CF3
+ CALL L3CEA
+ LD HL,L3965
+ BIT 3,(HL)
+ LD BC,0001DH
+ JR Z,L3CD1 ; (+005H)
+ RES 3,(HL)
+L3CCE: LD BC,L0140
+L3CD1: CALL L3D66
+ LD A,005H
+ OUT (0F6H),A
+ LD A,0EFH
+ OUT (0F6H),A
+ LD BC,00001H
+ CALL L3D66
+ LD A,0C0H
+ OUT (0F6H),A
+ LD A,0A5H
+ JR L3D2C ; (+042H)
+
+L3CEA: LD A,005H
+ OUT (0F6H),A
+ LD A,0FFH
+ OUT (0F6H),A
+ RET
+
+L3CF3: LD C,0F6H
+ OUT (C),A
+ LD A,005H
+ OUT (0F7H),A
+L3CFB: LD A,080H
+ OUT (0F7H),A
+ OTIR
+ RET
+
+L3D02: LD BC,00001H
+ CALL L3D66
+ LD A,010H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 008H
+ RET NZ
+ JP 03D5BH
+
+L3D14: LD B,003H
+L3D16: CALL L3D42
+ DJNZ L3D16 ; (-005H)
+L3D1B: IN A,(0F6H)
+ RRCA
+ JR NC,L3D1B ; (-005H)
+ LD A,001H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 040H
+ JR NZ,L3D52 ; (+028H)
+ OR A
+ RET
+
+L3D2C: PUSH AF
+L3D2D: IN A,(0F6H)
+ AND 004H
+ JR Z,L3D2D ; (-006H)
+ POP AF
+ OUT (QDPC),A
+L3D36: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03D58H
+ RET
+
+L3D42: CALL L3D36
+ IN A,(0F6H)
+ RLCA
+ JR C,L3D52 ; (+008H)
+ RRCA
+ RRCA
+ JR NC,L3D42 ; (-00cH)
+ IN A,(QDPC)
+ OR A
+ RET
+
+L3D52: LD A,029H
+ LD HL,02E3EH
+ LD HL,0323EH
+ LD HL,L353E
+ LD HL,0363EH
+ LD SP,(03966H)
+ SCF
+ RET
+
+L3D66: PUSH AF
+L3D67: LD A,096H
+L3D69: DEC A
+ JR NZ,L3D69 ; (-003H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3D67 ; (-00aH)
+ POP AF
+ RET
+
+L3D73: LD E,B
+ INC B
+ DJNZ L3D7C ; (+005H)
+ INC B
+ INC BC
+ RET NC
+ LD B,016H
+L3D7C: RLCA
+ LD D,098H
+ INC B
+ DJNZ 03D88H ; (+006H)
+ LD D,007H
+ LD D,005H
+ LD L,L
+L3D87: LD A,0E8H
+ OUT (LSE3),A
+ LD (MMIO),A
+ NOP
+ LD A,(0E001H)
+ OUT (LSE1),A
+ AND 081H
+ RET NZ
+ CALL L3B29
+ JP L017B
+
+ PUSH HL
+ LD DE,(00188H)
+ PUSH DE
+ LD DE,L3DE4
+ LD (00188H),DE
+ LD A,(L004F)
+ PUSH AF
+ LD A,064H
+ LD (L004F),A
+ LD (03E5BH),SP
+ XOR A
+ LD (L1091),A
+L3DBB: LD SP,L0000
+L3DBE: LD BC,L3DBE
+ PUSH BC
+ RST 018H
+ DB 002H
+ LD A,02AH
+ RST 018H
+ DB 003H
+L3DC8: CALL L3E67
+ JR NC,L3DC8 ; (-005H)
+ LD A,(DE)
+ CP 02AH
+ RET NZ
+ INC DE
+ LD A,(DE)
+ INC DE
+ EXX
+ LD HL,L3DF6
+ LD B,00AH
+L3DDA: CP (HL)
+ INC HL
+ JR Z,L3DF0 ; (+012H)
+ INC HL
+ INC HL
+ DJNZ L3DDA ; (-008H)
+ EXX
+ RET
+
+L3DE4: LD C,A
+ AND 07FH
+ JR Z,L3DBB ; (-02eH)
+ LD A,C
+ RST 018H
+ DB 01BH
+ RST 018H
+ DB 043H
+ JR L3DBB ; (-035H)
+
+L3DF0: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH DE
+ EXX
+ RET
+
+L3DF6: LD B,H
+ CALL C,L4D3E
+ LD C,(HL)
+ CCF
+ LD D,B
+ INC D
+ LD A,047H
+ RST 010H
+ LD A,046H
+ LD (HL),D
+ CCF
+ LD D,D
+L3E06: LD E,D
+ LD A,053H
+ DEC E
+ LD A,04CH
+ INC (HL)
+ LD A,056H
+ LD D,C
+ LD A,054H
+ JP NZ,03A3FH
+ SUB C
+ DJNZ L3E06 ; (-012H)
+ LD BC,09132H
+ DJNZ 03DE6H ; (-037H)
+ CALL L3FAB
+ RET C
+ EXX
+ CALL L3FD9
+ EXX
+ LD (ELMD20),BC
+ LD (ELMD22),DE
+ LD (L1018),HL
+ RST 018H
+ DB 031H
+ RET
+
+ CALL L3E88
+ PUSH HL
+ PUSH AF
+ CALL L3E46
+ POP AF
+ POP HL
+ JR NC,L3E43 ; (+003H)
+ LD HL,(ELMD22)
+L3E43: RST 018H
+ DB 030H
+ RET
+
+L3E46: CALL L3FD9
+ RST 018H
+ DB 02FH
+ CP 001H
+ RET Z
+ JP 01F9DH
+
+ CALL L3E46
+ LD HL,(ELMD22)
+ RST 018H
+ DB 032H
+ RET
+
+ LD SP,L0000
+ POP AF
+ LD (L004F),A
+ POP HL
+ LD (00188H),HL
+ POP HL
+ RET
+
+L3E67: LD DE,0FF00H
+ RST 018H
+ DB 00CH
+ JR C,L3E86 ; (+018H)
+ LD A,(DE)
+ CP 03AH
+ SCF
+ RET NZ
+ INC DE
+ CALL L3E88
+ RET C
+ LD A,(DE)
+ INC DE
+ XOR 03DH
+ RET NZ
+L3E7D: CALL L3EAD
+ CCF
+ RET NC
+ LD (HL),A
+ INC HL
+ JR L3E7D ; (-009H)
+
+L3E86: LD (DE),A
+ RET
+
+L3E88: PUSH HL
+ CALL L3EA2
+ PUSH DE
+ CALL L3EB4
+ JR C,L3E9D ; (+00bH)
+ LD H,A
+ CALL L3EB4
+ JR C,L3E9D ; (+005H)
+ LD L,A
+ POP AF
+ POP AF
+ XOR A
+ RET
+
+L3E9D: POP DE
+ POP HL
+ SCF
+ RET
+
+L3EA1: INC DE
+L3EA2: LD A,(DE)
+ CP 020H
+ JR Z,L3EA1 ; (-006H)
+ RET
+
+L3EA8: LD A,(DE)
+ RST 018H
+ DB 015H
+ INC DE
+ RET
+
+L3EAD: CALL L3EA2
+ CP 03BH
+ JR Z,L3ED2 ; (+01eH)
+L3EB4: PUSH BC
+ PUSH DE
+ CALL L3EA8
+ JR C,L3ECE ; (+013H)
+ LD C,A
+ CALL L3EA8
+ JR C,L3ECE ; (+00dH)
+ LD B,A
+ LD A,C
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ ADD A,B
+ LD C,A
+ LD A,C
+ POP BC
+ POP BC
+ OR A
+ RET
+
+L3ECE: POP DE
+ POP BC
+ SCF
+ RET
+
+L3ED2: INC DE
+ LD A,(DE)
+ INC DE
+ OR A
+ RET
+
+ CALL L3E88
+ RET C
+ JP (HL)
+
+ CALL L3E88
+ JR C,L3EEC ; (+00bH)
+ PUSH HL
+ CALL L3E88
+ JR C,L3EEB ; (+004H)
+ POP DE
+ EX DE,HL
+ JR L3EF2 ; (+007H)
+
+L3EEB: POP HL
+L3EEC: EX DE,HL
+ LD HL,L0080
+ ADD HL,DE
+ EX DE,HL
+L3EF2: LD C,008H
+ CALL L3EFF
+ RET C
+ PUSH HL
+ SBC HL,DE
+ POP HL
+ RET NC
+ JR L3EF2 ; (-00dH)
+
+L3EFF: CALL L3F27
+ LD B,C
+ PUSH HL
+L3F04: LD A,(HL)
+ CALL L3F38
+ INC HL
+ LD A,020H
+ RST 018H
+ DB 009H
+ DJNZ L3F04 ; (-00bH)
+ POP HL
+ LD A,02FH
+ RST 018H
+ DB 009H
+ LD B,C
+L3F15: LD A,(HL)
+ CP 020H
+ JR NC,L3F1C ; (+002H)
+ LD A,02EH
+L3F1C: RST 018H
+ DB 009H
+ INC HL
+ DJNZ L3F15 ; (-00cH)
+ RST 018H
+ DB 008H
+ RST 018H
+ DB 00FH
+ OR A
+ RET
+
+L3F27: LD A,03AH
+ RST 018H
+ DB 009H
+ LD A,H
+ CALL L3F38
+ LD A,L
+ CALL L3F38
+ LD A,03DH
+ RST 018H
+ DB 009H
+ RET
+
+L3F38: PUSH AF
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ CALL L3F41
+ POP AF
+L3F41: AND 00FH
+ ADD A,030H
+ CP 03AH
+ JR C,L3F4B ; (+002H)
+ ADD A,007H
+L3F4B: RST 018H
+ DB 009H
+ RET
+
+ CALL L3E88
+ LD A,(L1091)
+ PUSH AF
+ XOR A
+ LD (L1091),A
+L3F59: RST 018H
+ DB 002H
+ CALL L3F27
+ LD A,(HL)
+ CALL L3F38
+ LD A,014H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 003H
+ CALL L3E67
+ JR NC,L3F59 ; (-014H)
+ POP AF
+ LD (L1091),A
+ RET
+
+ CALL L3E88
+ RET C
+ PUSH HL
+ CALL L3E88
+ POP BC
+ RET C
+ PUSH HL
+ PUSH BC
+ LD HL,0FF00H
+ CALL L3E7D
+ LD DE,0FF00H
+ OR A
+ SBC HL,DE
+ LD C,L
+ POP HL
+ PUSH HL
+ EXX
+ POP HL
+ POP DE
+ EXX
+ RET Z
+L3F92: CALL L3FEC
+ JR NZ,L3F9B ; (+004H)
+ CALL L3EFF
+ RET C
+L3F9B: RST 018H
+ DB 00EH
+ RET Z
+ EXX
+ INC HL
+ PUSH HL
+ SCF
+ SBC HL,DE
+ POP HL
+ RET NC
+ PUSH HL
+ EXX
+ POP HL
+ JR L3F92 ; (-019H)
+
+L3FAB: CALL L3E88
+ PUSH HL
+ CALL NC,L3E88
+ POP BC
+ RET C
+ SBC HL,BC
+ INC HL
+ PUSH HL
+ PUSH BC
+ CALL L3E88
+ PUSH HL
+ EXX
+ POP HL
+ POP DE
+ POP BC
+ RET
+
+ CALL L3FAB
+ RET C
+ EX DE,HL
+ PUSH HL
+ SBC HL,DE
+ POP HL
+ JR C,L3FD0 ; (+003H)
+ LDIR
+ RET
+
+L3FD0: ADD HL,BC
+ DEC HL
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ EX DE,HL
+ LDDR
+ RET
+
+L3FD9: LD A,(DE)
+ OR A
+ JR Z,L3FE2 ; (+005H)
+ INC DE
+ CP 03AH
+ JR NZ,L3FD9 ; (-009H)
+L3FE2: RST 018H
+ DB 017H
+ RST 018H
+ DB 02DH
+ LD A,001H
+ LD (L1000),A
+ RET
+
+L3FEC: LD A,(DE)
+ CP (HL)
+ RET NZ
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD B,C
+L3FF3: LD A,(DE)
+ CP (HL)
+ JR NZ,L3FFC ; (+005H)
+ INC DE
+ INC HL
+ DJNZ L3FF3 ; (-008H)
+ XOR A
+L3FFC: POP HL
+ POP DE
+ POP BC
+ RET
+
+L4000: LD HL,085FFH
+ LD (L1070),HL
+ LD HL,L4046
+ LD (000E3H),HL
+ LD A,B
+ OR A
+ JR Z,L401B ; (+00bH)
+ LD HL,L4036
+ LD DE,L1361
+ LD BC,00010H
+ LDIR
+L401B: LD DE,L84E7
+ RST 018H
+ DB 005H
+ RST 018H
+ DB 020H
+ EX DE,HL
+L4023: LD (HL),000H
+ INC HL
+ LD A,H
+ CP 0FFH
+ JR C,L4023 ; (-008H)
+L402B: CALL L4902
+ CALL L4914
+ CALL L5E1D
+ JR L404A ; (+014H)
+
+L4036: RRCA
+ DB "RUN ",022H,041H,055H ; AUTO RUN string
+L403E: DB "TO RUN",022H,00DH
+L4046: DB 03EH
+ DB 016H
+ DB 0DFH
+ DB 003H
+L404A: LD HL,L4B85
+ LD (00188H),HL
+L4050: RST 018H
+ DB 002H
+ LD DE,L4B72
+ RST 018H
+ DB 005H
+ RST 018H
+ DB 001H
+L4059: LD A,(L4B78)
+ OR A
+ JR NZ,L406B ; (+00cH)
+ LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ LD (08496H),SP
+L406B: LD HL,L0000
+ LD (L8483),HL
+ XOR A
+ LD (L0050),A
+ CALL L48B1
+ RST 018H
+ DB 043H
+ LD DE,L11A4
+ RST 018H
+ DB 00CH
+ JR NC,L408D ; (+00cH)
+L4081: LD HL,L48B0
+ LD A,(HL)
+ OR A
+ LD (HL),000H
+ JR NZ,L4050 ; (-03aH)
+ JR L4059 ; (-033H)
+
+L408C: INC DE
+L408D: LD A,(DE)
+ CP 020H
+ JR Z,L408C ; (-006H)
+ OR A
+ JR Z,L4059 ; (-03cH)
+ CALL L5EC4
+ JP NC,L473E
+ LD HL,L84E7
+ PUSH HL
+ CALL L66EF
+ INC HL
+ LD (L847D),HL
+ CALL L4952
+ POP HL
+ JR L40AF ; (+003H)
+
+L40AC: CALL 05E48H
+L40AF: LD (08496H),SP
+L40B3: LD DE,L40AC
+ PUSH DE
+L40B7: LD (L8498),HL
+ CALL BRKCHK
+ JP Z,0017DH
+L40C0: LD A,(HL)
+ INC HL
+ CP 080H
+ JR NC,L411A ; (+054H)
+ CP 027H
+ JP Z,L4F8A
+ CP 020H
+ JR Z,L40C0 ; (-00fH)
+ CP 03AH
+ JR Z,L40B7 ; (-01cH)
+ OR A
+ JR Z,L40E1 ; (+00bH)
+ DEC HL
+ SUB 041H
+ CP 01AH
+ JP C,L4C99
+ JP L4AEC
+
+L40E1: LD HL,(L847D)
+L40E4: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4103 ; (+018H)
+ LD (L0050),A
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ LD (L847D),HL
+ EX DE,HL
+ INC HL
+ CALL LDDEMI
+ LD (08483H),DE
+ CALL L4971
+ POP DE
+ JR L40AF ; (-054H)
+
+L4103: POP HL
+ CALL L4146
+ JP Z,L4050
+ XOR A
+ LD (L4B78),A
+ LD A,(L8486)
+ CP 002H
+ JP Z,04B19H
+ PUSH HL
+ JP L484D
+
+L411A: CP 0FFH
+ JP Z,L4CCB
+ LD DE,L44AC
+ CP 0FEH
+ JR NZ,L412A ; (+004H)
+ LD A,(HL)
+ INC HL
+ JR L4132 ; (+008H)
+
+L412A: CP LSE0
+ JP NC,L4AEC
+ LD DE,L43EC
+L4132: ADD A,A
+ PUSH HL
+ EX DE,HL
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ EX (SP),HL
+L413E: CALL HLFTCH
+L4141: OR A
+ RET Z
+ CP 03AH
+ RET
+
+L4146: PUSH HL
+ LD HL,(L8483)
+ LD A,L
+ OR H
+ POP HL
+ RET
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+STMTWORDTBL:DB "GOT", "O" | 080H ; BASIC statement keyword text table
+ DB "GOSU", "B" | 080H
+ DB 080H
+ DB "RU", "N" | 080H
+ DB "RETUR", "N" | 080H
+ DB "RESTOR", "E" | 080H
+ DB "RESUM", "E" | 080H
+ DB "LIS", "T" | 080H
+ DB 080H
+ DB "DELET", "E" | 080H
+ DB "RENU", "M" | 080H
+ DB "AUT", "O" | 080H
+ DB "EDI", "T" | 080H
+L4193: DB "FO", "R" | 080H
+ DB "NEX", "T" | 080H
+ DB "PRIN", "T" | 080H
+ DB 080H
+ DB "INPU", "T" | 080H
+ DB 080H
+ DB "I", "F" | 080H
+ DB "DAT", "A" | 080H
+ DB "REA", "D" | 080H
+ DB "DI", "M" | 080H
+ DB "RE", "M" | 080H
+ DB "EN", "D" | 080H
+ DB "STO", "P" | 080H
+ DB "CON", "T" | 080H
+ DB "CL", "S" | 080H
+ DB 080H
+ DB "O", "N" | 080H
+ DB "LE", "T" | 080H
+ DB "NE", "W" | 080H
+ DB "POK", "E" | 080H
+ DB "OF", "F" | 080H
+ DB "MOD", "E" | 080H
+ DB "SKI", "P" | 080H
+ DB "PLO", "T" | 080H
+ DB "LIN", "E" | 080H
+ DB "RLIN", "E" | 080H
+ DB "MOV", "E" | 080H
+ DB "RMOV", "E" | 080H
+ DB "TRO", "N" | 080H
+ DB "TROF", "F" | 080H
+ DB "INP", "@" | 080H
+ DB "DEFAUL", "T" | 080H
+ DB "GE", "T" | 080H
+ DB "PCOLO", "R" | 080H
+ DB "PHOM", "E" | 080H
+ DB "HSE", "T" | 080H
+ DB "GPRIN", "T" | 080H
+ DB "KE", "Y" | 080H
+ DB "AXI", "S" | 080H
+ DB "LOA", "D" | 080H
+ DB "SAV", "E" | 080H
+ DB "MERG", "E" | 080H
+ DB "CHAI", "N" | 080H
+ DB "CONSOL", "E" | 080H
+ DB "SEARC", "H" | 080H
+ DB "OUT", "@" | 080H
+ DB "CIRCL", "E" | 080H
+ DB "TES", "T" | 080H
+ DB "PAG", "E" | 080H
+ DB "WAI", "T" | 080H
+ DB "SWA", "P" | 080H
+ DB 080H
+ DB "ERRO", "R" | 080H
+ DB "ELS", "E" | 080H
+ DB "US", "R" | 080H
+ DB "BY", "E" | 080H
+ DB 080H
+ DB 080H
+ DB "DE", "F" | 080H
+ DB 080H
+ DB 080H
+ DB "LABE", "L" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "WOPE", "N" | 080H
+ DB "CLOS", "E" | 080H
+ DB "ROPE", "N" | 080H
+ DB "XOPE", "N" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "DI", "R" | 080H
+ DB 080H
+ DB 080H
+ DB "RENAM", "E" | 080H
+ DB "KIL", "L" | 080H
+ DB "LOC", "K" | 080H
+ DB "UNLOC", "K" | 080H
+ DB "INI", "T" | 080H
+ DB 080H
+ DB 080H
+ DB "RMO", "V" | 080H
+ DB "T", "O" | 080H
+ DB "STE", "P" | 080H
+ DB "THE", "N" | 080H
+ DB "USIN", "G" | 080H
+ DB 080H
+ DB 080H
+ DB "TA", "B" | 080H
+ DB "SP", "C" | 080H
+ DB 080H
+ DB 080H
+ DB ".XO", "R" | 080H
+ DB ".O", "R" | 080H
+ DB ".AN", "D" | 080H
+ DB ".NO", "T" | 080H
+ DB ">", "<" | 080H
+ DB "<", ">" | 080H
+ DB "=", "<" | 080H
+ DB "<", "=" | 080H
+ DB "=", ">" | 080H
+ DB ">", "=" | 080H
+ DB "=" | 080H
+ DB ">" | 080H
+ DB "<" | 080H
+ DB "+" | 080H
+ DB "-" | 080H
+ DB 080H
+ DB 080H
+ DB "/" | 080H
+ DB "*" | 080H
+ DB "^" | 080H
+ DB 0FFH
+EXTWORDTBL: DB 080H ; BASIC extended keyword text table
+ DB "SE", "T" | 080H
+ DB "RESE", "T" | 080H
+ DB "COLO", "R" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "BEE", "P" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "MUSI", "C" | 080H
+ DB "TEMP", "O" | 080H
+ DB "CURSO", "R" | 080H
+ DB "VERIF", "Y" | 080H
+ DB "CL", "R" | 080H
+L433E: DB "LIMI", "T" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "BOO", "T" | 080H
+ DB 0FFH
+FUNCWORDTBL:DB "IN", "T" | 080H ; BASIC function keyword text table
+ DB "AB", "S" | 080H
+ DB "SI", "N" | 080H
+ DB "CO", "S" | 080H
+ DB "TA", "N" | 080H
+ DB "L", "N" | 080H
+ DB "EX", "P" | 080H
+ DB "SQ", "R" | 080H
+ DB "RN", "D" | 080H
+ DB "PEE", "K" | 080H
+ DB "AT", "N" | 080H
+ DB "SG", "N" | 080H
+ DB "LO", "G" | 080H
+ DB "FRA", "C" | 080H
+ DB "PA", "I" | 080H
+ DB "RA", "D" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "JO", "Y" | 080H
+ DB 080H
+ DB "CHR", "$" | 080H
+ DB "STR", "$" | 080H
+ DB "HEX", "$" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "SPACE", "$" | 080H
+ DB 080H
+ DB 080H
+ DB "AS", "C" | 080H
+ DB "LE", "N" | 080H
+ DB "VA", "L" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "ER", "N" | 080H
+ DB "ER", "L" | 080H
+ DB "SIZ", "E" | 080H
+ DB "CSR", "H" | 080H
+ DB "CSR", "V" | 080H
+ DB 080H
+ DB 080H
+ DB "LEFT", "$" | 080H
+ DB "RIGHT", "$" | 080H
+ DB "MID", "$" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "TI", "$" | 080H
+ DB 080H
+ DB "EO", "F" | 080H
+ DB "F", "N" | 080H
+ DB 0FFH
+L43EC: DW L5147 ; Keyword dispatch address table
+ DW L50C2
+ DW L4AEC
+ DW L47FF
+ DW L5091
+ DW L5828
+ DW L4C38
+ DW 052C2H
+ DW L4AEC
+ DW L4999
+ DW L4A38
+ DW L485E
+ DW L48B9
+ DW L4D8E
+ DW L4E25
+ DW L561E
+ DW L4AEC
+ DW L575B
+ DW L4AEC
+ DW L515A
+ DW L4F8A
+ DW L5754
+ DW L76AC
+ DW L4F8A
+ DW L484D
+ DW L4BEA
+ DW L4C1B
+ DW L5537
+ DW L4AEC
+ DW L50EA
+ DW L4C99
+ DW L4922
+ DW L5024
+ DW L4AEC
+ DW L6A24
+ DW L6A87
+ DW L6E22
+ DW L6AD4
+ DW 06AD7H
+ DW 06ADAH
+ DW 06ADDH
+ DW L4959
+ DW L496C
+ DW L4FAB
+ DW L58CA
+ DW L4FEF
+ DW L6B3F
+ DW L6B71
+ DW L6B7B
+ DW L6B85
+ DW L53A9
+ DW L6BEA
+ DW L5986
+ DW L5C88
+ DW L59EA
+ DW L59D5
+ DW L5260
+ DW L52C0
+ DW L4F96
+ DW L6C2A
+ DW L6DF8
+ DW L6E03
+ DW L4F7A
+ DW L5D65
+ DW L4AEC
+ DW L4B7A
+ DW L517C
+ DW L4F30
+ DW L5258
+ DW L4AEC
+ DW L4AEC
+ DW L5456
+ DW L4AEC
+ DW L4AEC
+ DW L4F8A
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW 058E2H
+ DW L5913
+ DW L58DF
+ DW 058E5H
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L5CE3
+ DW L4AEC
+ DW L4AEC
+ DW L5D0A
+ DW 05914H
+ DW 05CD7H
+ DW L5CD5
+ DW L58D0
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+L44AC: DW L4AEC
+ DW L51EE
+ DW 051EFH
+ DW L54A6
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L5255
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L54FD
+ DW L551F
+ DW L4FC7
+ DW L5C71
+ DW L4928
+ DW L504D
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L52BA
+L450A: DW L7E8B
+ DW L7E86
+ DW L7FD2
+ DW L7FC2
+ DW L80B1
+ DW L8320
+ DW L81FC
+ DW L7EE8
+ DW L81B7
+ DW L81A3
+ DW L7F06
+ DW L8169
+ DW L8314
+ DW L608D
+ DW L8181
+ DW L817C
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L792C
+ DW L4AEC
+ DW L4AEC
+ DW L7237
+ DW L71F6
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L7219
+ DW L4AEC
+ DW L4AEC
+ DW L7272
+ DW L727C
+ DW L7284
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L7180
+ DW L718E
+ DW L7164
+ DW L7176
+ DW L717B
+ DW L4AEC
+ DW L4AEC
+ DW L7296
+ DW L72B3
+ DW L72D0
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L7326
+ DW L4AEC
+ DW L7245
+ DW L789F
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+L45AA: CALL TEST1
+ DB 00CH
+ JR NZ,L45B6 ; (+006H)
+ CALL LDDEMI
+ OR 0FFH
+ RET
+
+L45B6: INC HL
+ CP 00BH
+ JR NZ,L45DA ; (+01fH)
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD A,E
+ OR D
+ RET Z
+ EX DE,HL
+ CALL L4609
+ JP C,04B0DH
+ EX DE,HL
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00CH
+ INC HL
+ INC HL
+ INC HL
+ OR 0FFH
+ LD (L473D),A
+ RET
+
+L45DA: CP 022H
+ JP NZ,L4AEC
+ LD (04650H),HL
+ LD B,000H
+L45E4: LD A,(HL)
+ OR A
+ JR Z,L45F0 ; (+008H)
+ INC HL
+ CP 022H
+ JR Z,L45F0 ; (+003H)
+ INC B
+ JR L45E4 ; (-00cH)
+
+L45F0: LD A,B
+ OR A
+ JP Z,L4AEC
+ LD (0464EH),A
+ EX DE,HL
+ CALL L4603
+ JP C,04B0DH
+ EX DE,HL
+ OR 0FFH
+ RET
+
+L4603: PUSH BC
+ LD BC,L463C
+ JR L460D ; (+004H)
+
+L4609: PUSH BC
+ LD BC,L4630
+L460D: LD (04623H),BC
+ PUSH DE
+ EX DE,HL
+ LD HL,(L1070)
+L4616: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ LD A,B
+ OR C
+ SCF
+ JR Z,L462D ; (+00fH)
+ DEC HL
+ PUSH HL
+ ADD HL,BC
+ EX (SP),HL
+ CALL L0000
+ JR C,L462C ; (+005H)
+ JR Z,L462C ; (+003H)
+ POP HL
+ JR L4616 ; (-016H)
+
+L462C: POP DE
+L462D: POP DE
+ POP BC
+ RET
+
+L4630: INC HL
+ INC HL
+ INC HL
+ LD A,D
+ CP (HL)
+ RET NZ
+ DEC HL
+ LD A,E
+ CP (HL)
+ DEC HL
+ DEC HL
+ RET
+
+L463C: PUSH HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ CALL TEST1
+ DB 0CAH
+ JR NZ,L4660 ; (+019H)
+ CALL TEST1
+ DB 022H
+ JR NZ,L4660 ; (+013H)
+ LD B,000H
+ LD DE,L0000
+L4652: LD A,(DE)
+ CP (HL)
+ JR NZ,L4660 ; (+00aH)
+ INC HL
+ INC DE
+ DJNZ L4652 ; (-008H)
+ LD A,(HL)
+ CP 022H
+ JR Z,L4660 ; (+001H)
+ OR A
+L4660: SCF
+ CCF
+ POP HL
+ RET
+
+L4664: LD DE,L0000
+ LD BC,0FFFFH
+ CALL L46A6
+ RET Z
+ CP 02DH
+ JR Z,L468E ; (+01cH)
+ CP 02EH
+ LD DE,(0847FH)
+ JR Z,L4681 ; (+007H)
+ CALL TESTX
+ DB 00BH
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L4681: INC HL
+ CALL L46A6
+ JR Z,L468B ; (+004H)
+ CP 02DH
+ JR Z,L468E ; (+003H)
+L468B: LD C,E
+ LD B,D
+ RET
+
+L468E: INC HL
+ CALL L46A6
+ RET Z
+ CP 02EH
+ JR NZ,L469D ; (+006H)
+ LD BC,(0847FH)
+ INC HL
+ RET
+
+L469D: CALL TESTX
+ DB 00BH
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ RET
+
+L46A6: CALL L413E
+ RET Z
+ CP 02CH
+ RET
+
+L46AD: CALL SKPDE
+ LD A,0FFH
+ LD (L473D),A
+ LD HL,L4703
+ JR L46CC ; (+012H)
+
+L46BA: CALL SKPDE
+ CALL L4836
+L46C0: LD A,(L473D)
+ OR A
+ RET Z
+ XOR A
+ LD (L473D),A
+ LD HL,L46E9
+L46CC: LD (046E7H),HL
+ LD HL,(L1070)
+ DEC HL
+L46D3: INC HL
+ LD A,(HL)
+ INC HL
+ OR (HL)
+ RET Z
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (04732H),DE
+L46E0: CALL L51A2
+ OR A
+ JR Z,L46D3 ; (-013H)
+ JP L0000
+
+L46E9: CP 00CH
+ JR NZ,L46E0 ; (-00dH)
+ DEC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH HL
+ EX DE,HL
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00BH
+ INC HL
+ INC HL
+ JR L46E0 ; (-023H)
+
+L4703: CP 00BH
+ JR NZ,L46E0 ; (-027H)
+ DEC HL
+ PUSH HL
+ CALL INDRCT
+ LD E,L
+ LD D,H
+ LD A,L
+ OR H
+ JR Z,L4739 ; (+027H)
+ CALL L4609
+ JR C,L4722 ; (+00bH)
+ EX DE,HL
+ POP HL
+ DEC HL
+ LD (HL),00CH
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ JR L46E0 ; (-042H)
+
+L4722: PUSH DE
+ LD A,010H
+ RST 018H
+ DB 01BH
+ LD A,020H
+ RST 018H
+ DB 003H
+ POP HL
+ CALL L5E66
+ RST 018H
+ DB 005H
+ LD HL,L0000
+ CALL L4B58
+ RST 018H
+ DB 002H
+L4739: POP HL
+ INC HL
+ JR L46E0 ; (-05dH)
+
+L473D: NOP
+L473E: RST 018H
+ DB 028H
+ CALL L46BA
+ CALL L6A11
+ LD A,B
+ OR C
+ JP Z,L4059
+ LD (0847FH),BC
+ LD A,(DE)
+ CP 020H
+ JR NZ,L4755 ; (+001H)
+ INC DE
+L4755: PUSH AF
+ LD HL,L84E7
+ CALL L66EF
+ PUSH HL
+ LD HL,(L847F)
+ LD E,L
+ LD D,H
+ CALL L49B9
+ POP HL
+ POP AF
+ OR A
+ JR Z,L477C ; (+012H)
+ LD DE,L84E7
+ OR A
+ SBC HL,DE
+ LD DE,00005H
+ ADD HL,DE
+ LD B,H
+ LD C,L
+ LD HL,L84E7
+ CALL L4794
+L477C: LD A,(L48B0)
+ OR A
+ JP Z,L4059
+ LD DE,(08481H)
+ LD HL,(L847F)
+ ADD HL,DE
+ LD (L847F),HL
+ JP NC,L4059
+ JP L4081
+
+L4794: LD (047F6H),HL
+ PUSH BC
+ LD BC,(0847FH)
+ LD HL,(L1070)
+ JR L47A5 ; (+004H)
+
+L47A1: CALL LDDEMD
+ ADD HL,DE
+L47A5: CALL LDDEMD
+ LD A,D
+ OR E
+ JR Z,L47B9 ; (+00dH)
+ INC HL
+ INC HL
+ CALL LDDEMD
+ EX DE,HL
+ SBC HL,BC
+ DEC DE
+ DEC DE
+ EX DE,HL
+ JR C,L47A1 ; (-018H)
+L47B9: POP DE
+ PUSH HL
+ PUSH DE
+ LD HL,00028H
+ ADD HL,DE
+ LD BC,(VARED)
+ LD (TMPEND),BC
+ ADD HL,BC
+ JP C,L4B2C
+ EX DE,HL
+ CALL L74E8
+ POP DE
+ RST 018H
+ DB 018H
+ POP HL
+ PUSH DE
+ PUSH BC
+ EX (SP),HL
+ POP BC
+ PUSH HL
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ LD DE,(VARED)
+ INC BC
+ LDDR
+ INC HL
+ POP BC
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ LD DE,(0847FH)
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ EX DE,HL
+ LD HL,L84E7
+ DEC BC
+ DEC BC
+ DEC BC
+ DEC BC
+ LDIR
+ RET
+
+L47FF: JR Z,L480A ; (+009H)
+ CALL L5176
+ JP Z,L5147
+ JP L5AED
+
+L480A: CALL L4928
+L480D: CALL L4821
+ LD DE,(TEXTST)
+ LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ PUSH HL
+ EX DE,HL
+ JP L40E4
+
+L4821: PUSH HL
+ PUSH DE
+ CALL L4836
+ XOR A
+ LD (L48B0),A
+ LD HL,0000AH
+ LD (L847F),HL
+ LD (L8481),HL
+ POP DE
+ POP HL
+ RET
+
+L4836: CALL L5825
+ LD HL,L0000
+ LD (L8487),HL
+ XOR A
+ LD (L4B78),A
+ LD (L8486),A
+ LD (L8485),A
+ LD (L849A),A
+ RET
+
+L484D: LD A,(L849A)
+ OR A
+ JP NZ,L5DCB
+ RST 018H
+ DB 028H
+ XOR A
+ LD (L4B78),A
+ POP BC
+ JP L4050
+
+L485E: CALL L5C08
+ LD DE,0000AH
+ LD BC,0000AH
+ JR Z,L4897 ; (+02eH)
+ CP 02CH
+ JR NZ,L4878 ; (+00bH)
+ INC HL
+ CALL L6E5F
+ LD B,D
+ LD C,E
+ LD DE,0000AH
+ JR L4897 ; (+01fH)
+
+L4878: CP 02EH
+ LD DE,(0847FH)
+ JR Z,L4889 ; (+009H)
+ CP 00BH
+ JP NZ,L4AEC
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L4889: INC HL
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4897 ; (+007H)
+ PUSH DE
+ CALL L6E5F
+ LD C,E
+ LD B,D
+ POP DE
+L4897: CALL 05E48H
+ LD A,C
+ OR B
+ JP Z,04AF2H
+ LD (0847FH),DE
+ LD (08481H),BC
+ LD A,001H
+ LD (L48B0),A
+ POP AF
+ JP L4059
+
+L48B0: NOP
+L48B1: LD A,(L48B0)
+ OR A
+ RET Z
+ XOR A
+ JR L48BF ; (+006H)
+
+L48B9: CALL L48BF
+ JP L4059
+
+L48BF: LD DE,(0847FH)
+ CALL NZ,L4664
+ PUSH DE
+ EX DE,HL
+ CALL L4609
+ POP DE
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ JR NC,L48D5 ; (+003H)
+ LD HL,L00F9
+L48D5: EX DE,HL
+ PUSH DE
+ LD (L847F),HL
+ CALL L5E66
+ RST 018H
+ DB 005H
+ LD A,020H
+ RST 018H
+ DB 003H
+ POP HL
+ LD DE,L11A4
+ PUSH DE
+ CALL L68E0
+ POP DE
+ LD B,000H
+L48EE: LD A,(DE)
+ OR A
+ JR Z,L48F8 ; (+006H)
+ INC B
+ RST 018H
+ DB 004H
+ INC DE
+ JR L48EE ; (-00aH)
+
+L48F8: LD A,B
+ OR A
+ RET Z
+ LD A,014H
+ RST 018H
+ DB 003H
+ DJNZ 048FCH ; (-005H)
+ RET
+
+L4902: PUSH DE
+ LD DE,0FFF0H
+ ADD HL,DE
+ POP DE
+ LD (L107E),HL
+ DEC H
+ LD (L107C),HL
+ XOR A
+ LD (L849A),A
+ RET
+
+L4914: LD HL,(L1070)
+ CALL L4952
+ LD (L1072),HL
+ CALL L4821
+ JR L4928 ; (+006H)
+
+L4922: CALL L4914
+ JP L404A
+
+L4928: PUSH HL
+ CALL L4939
+ POP HL
+ RST 018H
+ DB 028H
+ RET
+
+L4930: LD HL,(L1070)
+ CALL L4952
+ LD (L1072),HL
+L4939: LD HL,(L1072)
+ LD (HL),000H
+ INC HL
+ LD (L1074),HL
+ LD (HL),000H
+ INC HL
+ LD (L1076),HL
+ CALL L4952
+ LD (L1078),HL
+ LD (L107A),HL
+ RET
+
+L4952: LD (HL),000H
+ INC HL
+ LD (HL),000H
+ INC HL
+ RET
+
+L4959: CALL L413E
+ LD A,001H
+ JR Z,L496D ; (+00dH)
+ CALL TESTX
+ DB FDPD
+ CALL TESTX
+ DB 050H
+ LD A,002H
+ JR L496D ; (+001H)
+
+L496C: XOR A
+L496D: LD (04972H),A
+ RET
+
+L4971: LD A,000H
+ OR A
+ RET Z
+ DEC A
+ LD (L1091),A
+ JR Z,L4982 ; (+007H)
+ LD A,(L1097)
+ CP 002H
+ JR Z,L4994 ; (+012H)
+L4982: PUSH HL
+ LD A,05BH
+ RST 018H
+ DB 009H
+ LD HL,(L8483)
+ CALL L5E66
+ RST 018H
+ DB 00BH
+ LD A,05DH
+ RST 018H
+ DB 009H
+ POP HL
+L4994: XOR A
+ LD (L1091),A
+ RET
+
+L4999: CALL L46A6
+ JP Z,L4AEC
+ CALL L5176
+ JR Z,L49AD ; (+009H)
+ CP 02DH
+ JR Z,L49AD ; (+005H)
+ CP 02EH
+ JP NZ,L5D02
+L49AD: CALL L4664
+ EX DE,HL
+ LD E,C
+ LD D,B
+ CALL L49B9
+ JP L4050
+
+L49B9: PUSH AF
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ CALL L46BA
+ LD C,L
+ LD B,H
+ LD HL,(L1070)
+L49C5: CALL LDDEMI
+ LD A,E
+ OR D
+ JR NZ,L49D4 ; (+008H)
+L49CC: POP DE
+ POP HL
+ POP BC
+ POP AF
+ RET
+
+L49D1: POP DE
+ JR L49CC ; (-008H)
+
+L49D4: EX DE,HL
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ LD (049EEH),HL
+ SBC HL,BC
+ POP HL
+ JR C,L49C5 ; (-021H)
+ DB 01BH
+ DEC DE
+ DEC DE
+ POP BC
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD HL,L0000
+ SBC HL,BC
+ POP HL
+ JR Z,L4A13 ; (+01eH)
+ JR NC,L49D1 ; (-026H)
+L49F7: CALL LDDEMI
+ LD A,D
+ OR E
+ JR Z,L4A11 ; (+013H)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ DEC DE
+ DEC DE
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ SBC HL,BC
+ POP HL
+ JR C,L49F7 ; (-016H)
+ JR Z,L4A13 ; (+004H)
+ EX DE,HL
+ DEC HL
+L4A11: DEC HL
+ DEC HL
+L4A13: POP DE
+ PUSH DE
+ PUSH HL
+ OR A
+ EX DE,HL
+ SBC HL,DE
+ EX DE,HL
+ LD BC,(VARED)
+ RST 018H
+ DB 018H
+ POP DE
+ LD H,B
+ LD L,C
+ OR A
+ SBC HL,DE
+ LD B,H
+ LD C,L
+ EX DE,HL
+ POP DE
+ LDIR
+ JR L49CC ; (-063H)
+
+L4A2F: CALL L6E5F
+ LD A,D
+ OR E
+ RET NZ
+ JP 04AF2H
+
+L4A38: CALL L5C08
+ LD DE,0000AH
+ LD (04AB7H),DE
+ LD (04AC9H),DE
+ LD E,000H
+ LD (04AA6H),DE
+ JR Z,L4A81 ; (+033H)
+ CP 02CH
+ JR Z,L4A62 ; (+010H)
+ CALL L4A2F
+ LD (04AB7H),DE
+ CALL L413E
+ JR Z,L4A81 ; (+023H)
+ CALL L5E70
+ DEC HL
+L4A62: CALL INCHLF
+ CP 02CH
+ JR Z,L4A79 ; (+010H)
+ CALL L4A2F
+ LD (04AA6H),DE
+ CALL L413E
+ JR Z,L4A81 ; (+00cH)
+ CALL L5E70
+ DEC HL
+L4A79: INC HL
+ CALL L4A2F
+ LD (04AC9H),DE
+L4A81: PUSH HL
+ LD HL,(04AA6H)
+ EX DE,HL
+ LD HL,(04AB7H)
+ OR A
+ SBC HL,DE
+ JP C,04AF2H
+ CALL L46AD
+ LD HL,(L1070)
+L4A95: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4AD3 ; (+037H)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ EX DE,HL
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ PUSH HL
+ LD HL,L0000
+ OR A
+ SBC HL,BC
+ POP HL
+ JR Z,L4AB3 ; (+005H)
+ JR C,L4AB3 ; (+003H)
+ EX DE,HL
+ JR L4A95 ; (-01eH)
+
+L4AB3: DEC HL
+ DEC HL
+ DEC HL
+ LD BC,L0000
+L4AB9: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4AD3 ; (+013H)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ EX DE,HL
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ LD HL,L0000
+ ADD HL,BC
+ JR C,L4AD8 ; (+00aH)
+ LD C,L
+ LD B,H
+ EX DE,HL
+ JR L4AB9 ; (-01aH)
+
+L4AD3: CALL L46C0
+ POP HL
+ RET
+
+L4AD8: LD HL,0000AH
+ LD (04AC9H),HL
+ LD (04AB7H),HL
+ LD L,000H
+ LD (04AA6H),HL
+ CALL L4A81
+ JP 04AF2H
+
+L4AEC: LD A,001H
+ LD HL,0023EH
+ LD HL,L033E
+ LD HL,0043EH
+ LD HL,L053E
+ LD HL,0063EH
+ LD HL,0073EH
+ LD HL,L083E
+ LD HL,L0D3E
+ LD HL,L0E3E
+ LD HL,L0F3E
+ LD HL,L103E
+ LD HL,L113E
+ LD HL,L123E
+ LD HL,L133E
+ LD HL,0143EH
+ LD HL,0153EH
+ LD HL,L183E
+ LD HL,L193E
+ LD HL,L3A3E
+ LD HL,L403E
+ JR L4B3A ; (+00eH)
+
+L4B2C: LD A,006H
+L4B2E: LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ LD (08496H),SP
+L4B3A: JR L4B55 ; (+019H)
+
+L4B3C: LD HL,(.$LPT)
+ LD IX,(.$CRT)
+ LD (L1044),HL
+ XOR A
+ LD (01051H),A
+ LD A,0C4H
+ LD HL,0BB3EH
+ LD HL,0BC3EH
+ LD HL,0BD3EH
+L4B55: JP L0182
+
+L4B58: LD A,L
+ OR H
+ RET Z
+ LD DE,L4B66
+ RST 018H
+ DB 005H
+ CALL L5E66
+ RST 018H
+ DB 005H
+ RET
+
+L4B66: JR NZ,04BB1H ; (+049H)
+ LD C,(HL)
+ JR NZ,L4B6B ; (+000H)
+L4B6B: LD B,D
+ DEC B
+ LD D,D
+ LD B,L
+ LD B,C
+ LD C,E
+ NOP
+L4B72: LD D,D
+ DEC B
+ LD B,L
+ LD B,C
+ LD B,H
+ LD E,C
+L4B78: NOP
+ NOP
+L4B7A: CALL L6E4B
+ DEC A
+ CP 046H
+ JR C,L4B84 ; (+002H)
+ LD A,044H
+L4B84: INC A
+L4B85: LD SP,(08496H)
+ PUSH AF
+ RST 018H
+ DB 043H
+ CALL L5C44
+ POP AF
+ OR A
+ JR Z,L4BE5 ; (+052H)
+ CP 080H
+ JR Z,L4BE3 ; (+04cH)
+ LD C,A
+ LD HL,L0000
+ LD (L7928),HL
+ CALL L4146
+ LD A,C
+ JR Z,L4BCE ; (+02aH)
+ LD HL,(L8483)
+ LD (L8487),HL
+ LD (L847F),HL
+ LD HL,(L847D)
+ LD (L8489),HL
+ LD HL,(L8498)
+ LD (L848B),HL
+ AND 07FH
+ LD (L8485),A
+ LD A,(L8486)
+ INC A
+ CP 002H
+ JR Z,L4BD9 ; (+013H)
+ XOR A
+ LD (L4B78),A
+ LD (L849A),A
+ LD A,C
+L4BCE: RST 018H
+ DB 01BH
+L4BD0: LD HL,(L8483)
+ CALL L4B58
+ JP L4050
+
+L4BD9: LD (L8486),A
+ LD HL,(0848DH)
+ PUSH HL
+ JP L40E4
+
+L4BE3: LD A,02EH
+L4BE5: LD HL,(L8498)
+ JR L4BED ; (+003H)
+
+L4BEA: LD A,02EH
+ POP DE
+L4BED: PUSH AF
+ PUSH HL
+ RST 018H
+ DB 002H
+ RST 018H
+ DB 020H
+ LD DE,L4B6B
+ RST 018H
+ DB 005H
+ POP HL
+ CALL L4146
+ JR Z,L4C17 ; (+019H)
+ LD (04C33H),HL
+ LD HL,(L847D)
+ LD (04C2DH),HL
+ LD HL,(L8483)
+ LD (04C27H),HL
+ LD (L847F),HL
+ POP AF
+ LD (L4B78),A
+ JP L4BD0
+
+L4C17: POP AF
+ JP L4050
+
+L4C1B: POP DE
+ LD HL,L4B78
+ LD A,(HL)
+ OR A
+ JP Z,04B10H
+ LD (HL),000H
+ LD HL,L0000
+ LD (L8483),HL
+ LD HL,L0000
+ LD (L847D),HL
+ LD HL,L0000
+ JP L40AF
+
+L4C38: LD A,(L8486)
+ CP 002H
+ JP C,04B1CH
+ DEC A
+ LD (L8486),A
+ CALL L413E
+ EX DE,HL
+ LD HL,(L8487)
+ LD (L8483),HL
+ LD HL,(L8489)
+ LD (L847D),HL
+ LD HL,(L848B)
+ JR NZ,L4C5D ; (+004H)
+ POP BC
+ JP L40B3
+
+L4C5D: CP 08EH
+ JP Z,L4F8A
+ EX DE,HL
+ JP L5147
+
+L4C66: CALL TEST1
+ DB 080H
+ JR Z,L4C74 ; (+008H)
+ CALL TESTX
+ DB 082H
+ CALL TESTX
+ DB LSE0
+L4C74: CALL L45AA
+ JR Z,L4C83 ; (+00aH)
+ LD (0848DH),DE
+ LD A,001H
+L4C7F: LD (L8486),A
+ RET
+
+L4C83: LD A,(L8486)
+ DEC A
+ JR Z,L4C7F ; (-00aH)
+ XOR A
+ LD (L8486),A
+ LD HL,(L8487)
+ LD (L8483),HL
+ LD A,(L8485)
+ JP L4B85
+
+L4C99: CALL TEST1
+ DB 0FFH
+ JP Z,L4CCB
+ CALL L7436
+ PUSH BC
+ PUSH BC
+ PUSH AF
+ CALL TESTX
+ DB QDPC
+ CALL L6E8A
+ POP BC
+ LD A,(L84CE)
+ CP B
+ JP NZ,04AF5H
+ EX (SP),HL
+ EX DE,HL
+ CP 005H
+ JR Z,L4CC3 ; (+008H)
+ PUSH BC
+ CALL L4CD6
+ POP AF
+ POP HL
+ POP BC
+ RET
+
+L4CC3: LD C,A
+ LD B,000H
+ LDIR
+ POP HL
+ POP BC
+ RET
+
+L4CCB: CALL TESTX
+ DB 0C4H
+ JP L73C2
+
+L4CD2: PUSH DE
+ EX DE,HL
+ JR L4CDA ; (+004H)
+
+L4CD6: PUSH DE
+ CALL L6E7E
+L4CDA: LD HL,L11A3
+ LD (HL),A
+ LD B,A
+ LD C,A
+ INC HL
+ CALL LDHLDE
+ POP HL
+ LD A,(HL)
+ CP C
+ JR Z,L4D2B ; (+042H)
+ PUSH HL
+ OR A
+ CALL NZ,L4D3B
+ POP HL
+ LD A,(L11A3)
+ OR A
+ JR Z,L4D28 ; (+033H)
+ PUSH HL
+ LD BC,(VARST)
+ SBC HL,BC
+ EX DE,HL
+ LD HL,(L1078)
+ DEC HL
+ DEC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD BC,(STRST)
+ OR A
+ POP DE
+ PUSH HL
+ SBC HL,BC
+ EX DE,HL
+ LD (HL),A
+ LD B,A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ POP HL
+ LD DE,L11A3
+ INC DE
+ CALL L74DC
+ CALL L4952
+ LD (L107A),HL
+ LD (L1078),HL
+ RET
+
+L4D28: LD (HL),000H
+ RET
+
+L4D2B: INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ LD DE,L11A3
+ LD B,C
+ INC DE
+ JP L74DC
+
+L4D3B: LD C,(HL)
+ LD B,000H
+L4D3E: INC BC
+ INC BC
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ LD E,L
+ LD D,H
+ ADD HL,BC
+ PUSH BC
+ PUSH DE
+ EX DE,HL
+ LD HL,(L1078)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ EX DE,HL
+ POP DE
+ PUSH DE
+ JR Z,L4D5F ; (+002H)
+ LDIR
+L4D5F: POP DE
+ POP BC
+ LD HL,(L1078)
+ OR A
+ SBC HL,BC
+ LD (L1078),HL
+ EX DE,HL
+L4D6B: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ RET Z
+ LD HL,(L1074)
+ ADD HL,DE
+ LD A,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ OR A
+ EX DE,HL
+ SBC HL,BC
+ EX DE,HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ PUSH BC
+ LD C,A
+ LD B,000H
+ LD HL,(L1076)
+ ADD HL,DE
+ ADD HL,BC
+ POP BC
+ JR L4D6B ; (-023H)
+
+L4D8E: POP BC
+ LD (04E23H),BC
+ CALL L4C99
+ LD IX,L0000
+ ADD IX,SP
+ LD (04E05H),HL
+ CALL L4EFE
+ LD (04E01H),BC
+L4DA6: LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JR NZ,L4DCE ; (+01aH)
+ LD E,(IX+006H)
+ LD D,(IX+007H)
+ EX DE,HL
+ OR A
+ SBC HL,BC
+ JR Z,L4DC7 ; (+007H)
+ LD DE,L0012
+ ADD IX,DE
+ JR L4DA6 ; (-021H)
+
+L4DC7: DB 011H
+ LD (DE),A
+ NOP
+ ADD IX,DE
+ LD SP,IX
+L4DCE: LD HL,(04E05H)
+ CALL TESTX
+ DB LSE0
+ CALL L6E8A
+ PUSH AF
+ PUSH HL
+ EX DE,HL
+ LD DE,L4F0A
+ CALL L5E93
+ POP HL
+ POP AF
+ CP LSE1
+ LD DE,L6112
+ JR NZ,L4DEE ; (+004H)
+ INC HL
+ CALL L6E8A
+L4DEE: LD (04E05H),HL
+ LD HL,0FFF6H
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ CALL L5E93
+ LD HL,L4F0A
+ CALL L5E93
+ LD HL,L0000
+ PUSH HL
+ LD HL,L0000
+ PUSH HL
+ LD HL,(L847D)
+ PUSH HL
+ LD HL,0FF12H
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(TMPEND)
+ SBC HL,DE
+ LD A,00BH
+ JP C,L4B2E
+ LD HL,(04E05H)
+ JP L0000
+
+L4E25: LD A,005H
+ LD (L84CE),A
+ POP BC
+ LD (04E9AH),BC
+L4E2F: PUSH AF
+ POP BC
+ LD (04E05H),HL
+ LD IX,L0000
+ ADD IX,SP
+ LD (04E89H),IX
+ LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JP NZ,04B04H
+ PUSH BC
+ POP AF
+ JR NZ,L4EB0 ; (+05fH)
+ LD E,(IX+004H)
+ LD D,(IX+005H)
+ EX DE,HL
+ LD (04E97H),HL
+ LD E,(IX+006H)
+ LD D,(IX+007H)
+ LD HL,(L1074)
+ ADD HL,DE
+ LD BC,00008H
+ ADD IX,BC
+ PUSH IX
+ POP DE
+ CALL L7985
+ INC DE
+ LD A,(DE)
+ LD IX,(04E89H)
+ LD DE,0000DH
+ ADD IX,DE
+ PUSH IX
+ POP DE
+ BIT 7,A
+ JR NZ,L4E83 ; (+001H)
+ EX DE,HL
+L4E83: CALL L7A1C
+ JR C,L4E9C ; (+014H)
+ LD SP,L0000
+ LD HL,00002H
+ ADD HL,SP
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ LD (L847D),HL
+ LD HL,L0000
+L4E99: JP L0000
+
+L4E9C: LD DE,L0012
+ LD HL,(04E89H)
+ ADD HL,DE
+ LD SP,HL
+ LD HL,(04E05H)
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4E99 ; (-014H)
+ LD (04E05H),HL
+L4EB0: LD IX,L0000
+ ADD IX,SP
+ LD (04E89H),IX
+ LD HL,(04E05H)
+ CALL TEST1
+ DB 02CH
+ JP Z,L4E2F
+ CALL L7436
+ LD (04E05H),HL
+ CALL L4EFE
+ LD IX,(04E89H)
+L4ED1: LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JP NZ,04B04H
+ LD L,(IX+006H)
+ LD H,(IX+007H)
+ OR A
+ SBC HL,BC
+ LD HL,(04E05H)
+ JP Z,L4E2F
+ LD DE,L0012
+ ADD IX,DE
+ LD (04E89H),IX
+ LD SP,(04E89H)
+ JR L4ED1 ; (-02dH)
+
+L4EFE: LD H,B
+ LD L,C
+ LD BC,(VARST)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ RET
+
+L4F0A: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L4F13: CALL L51A2
+ OR A
+ RET NZ
+ INC HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ INC HL
+ LD (04F12H),DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (04F10H),DE
+ POP DE
+ SCF
+ RET Z
+ JR L4F13 ; (-01dH)
+
+L4F30: CALL L5E7B
+ CALL L6E5F
+ LD (04F69H),DE
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4F5B ; (+01bH)
+ CALL L6E8A
+ CALL L7916
+ LD (04F5EH),DE
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4F5B ; (+00bH)
+ CALL L7436
+ CALL L7916
+ LD (04F71H),BC
+ XOR A
+L4F5B: PUSH HL
+ PUSH AF
+ LD HL,L0000
+ CALL L6E7E
+ LD IX,L0182
+ XOR A
+ CALL L0000
+ POP AF
+ JR NZ,L4F76 ; (+008H)
+ LD A,B
+ EX DE,HL
+ LD DE,L0000
+ CALL L4CD2
+L4F76: POP HL
+ JP L5E7F
+
+L4F7A: CALL L6E5F
+L4F7D: LD A,D
+ OR E
+ RET Z
+ LD B,000H
+L4F82: DJNZ L4F82 ; (-002H)
+ RST 018H
+ DB 00EH
+ RET Z
+ DEC DE
+ JR L4F7D ; (-00dH)
+
+L4F8A: DEC HL
+L4F8B: CALL L51A2
+ OR A
+ SCF
+ RET Z
+ CP 03AH
+ RET Z
+ JR L4F8B ; (-00bH)
+
+L4F96: CALL L6E4B
+ SUB LSE0
+ CP 007H
+ JP C,04AF2H
+ CALL L5E70
+ PUSH DE
+ CALL L6E4B
+ POP BC
+ OUT (C),A
+ RET
+
+L4FAB: CALL L6E4B
+ CALL L5E70
+ PUSH DE
+ CALL L7436
+ CP 005H
+ JP NZ,04AF5H
+ EX (SP),HL
+ PUSH BC
+ EX (SP),HL
+ POP BC
+ IN E,(C)
+ LD D,000H
+ CALL L5E99
+ POP HL
+ RET
+
+L4FC7: CALL L4FCF
+ LD (00054H),DE
+ RET
+
+L4FCF: LD B,018H
+ LD C,027H
+ CALL L4FDA
+ JP C,04AF2H
+ RET
+
+L4FDA: PUSH BC
+ CALL L6E4B
+ PUSH AF
+ CALL L5E70
+ CALL L6E4B
+ LD D,E
+ POP AF
+ LD E,A
+ POP BC
+ LD A,C
+ CP E
+ RET C
+ LD A,B
+ CP D
+ RET
+
+L4FEF: CALL L7436
+ LD (L84CE),A
+ CP 005H
+ JR Z,L500E ; (+015H)
+ PUSH HL
+ PUSH BC
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ OR A
+ JR Z,L5008 ; (+006H)
+ LD HL,(L107A)
+ LD (HL),A
+ LD A,001H
+L5008: POP DE
+ CALL L4CD2
+ POP HL
+ RET
+
+L500E: PUSH HL
+ PUSH BC
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ SUB 030H
+ CP 00AH
+ JR C,L501B ; (+001H)
+ XOR A
+L501B: LD E,A
+ LD D,000H
+ POP HL
+ CALL L5E99
+ POP HL
+ RET
+
+L5024: CP 040H
+ LD BC,POPRA
+ JR NZ,L502F ; (+004H)
+ INC HL
+ LD BC,L504B
+L502F: LD (05040H),BC
+ CALL L6E5F
+ CALL L5E73
+L5039: PUSH DE
+ CALL L6E4B
+ POP DE
+ EX DE,HL
+ CALL POPRA
+ EX DE,HL
+ INC DE
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ JR L5039 ; (-012H)
+
+L504B: LD (HL),A
+ RET
+
+L504D: PUSH HL
+ CALL TEST1
+ DB 04DH
+ JR NZ,L5066 ; (+012H)
+ CALL TEST1
+ DB 041H
+ JR NZ,L5066 ; (+00cH)
+ CALL TEST1
+ DB 058H
+ JR NZ,L5066 ; (+006H)
+ EX (SP),HL
+ LD HL,(MEMMAX)
+ JR L5082 ; (+01cH)
+
+L5066: POP HL
+ CALL L6E5F
+ PUSH HL
+ LD HL,(MEMMAX)
+ OR A
+ SBC HL,DE
+ JP C,L4B2C
+ LD HL,(L107A)
+ INC H
+ INC H
+ INC H
+ INC H
+ OR A
+ SBC HL,DE
+ JP NC,04AF2H
+ EX DE,HL
+L5082: CALL L4902
+ POP HL
+ POP DE
+ LD SP,(INTFAC)
+ LD BC,0FFFFH
+ PUSH BC
+ PUSH DE
+ RET
+
+L5091: POP IX
+L5093: POP BC
+ PUSH BC
+ LD A,B
+ INC A
+ JP NZ,04B07H
+ LD A,C
+ CP 012H
+ JR Z,L50B9 ; (+01aH)
+ CP 0FEH
+ JP NZ,04B07H
+ POP BC
+ CALL L413E
+ EX DE,HL
+ POP HL
+ LD (L8483),HL
+ POP HL
+ LD (L847D),HL
+ POP HL
+ PUSH IX
+ RET Z
+ EX DE,HL
+ JP L5147
+
+L50B9: EX DE,HL
+ LD HL,L0012
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ JR L5093 ; (-02fH)
+
+L50C2: PUSH HL
+ CALL L4F8A
+ EX DE,HL
+ POP HL
+ POP BC
+ PUSH DE
+ EXX
+ LD HL,(L847D)
+ PUSH HL
+ LD HL,(L8483)
+ PUSH HL
+ LD HL,0FFFEH
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(TMPEND)
+ SBC HL,DE
+ LD A,00AH
+ JP C,L4B2E
+ EXX
+ PUSH BC
+ JR L5147 ; (+05dH)
+
+L50EA: CALL TEST1
+ DB 0C1H
+ JP Z,L4C66
+ CALL L6E5F
+ LD C,E
+ LD B,D
+ CP 087H
+ JP NC,L4AEC
+ CP 082H
+ JR NZ,L510F ; (+010H)
+ CALL INCHLF
+ LD E,081H
+ CP LSE4
+ JR Z,L510E ; (+006H)
+ CP LSE0
+ JP NZ,L4AEC
+ DEC E
+L510E: LD A,E
+L510F: PUSH HL
+ LD HL,L43EC
+ SUB 080H
+ ADD A,A
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ CALL INDRCT
+ EX (SP),HL
+ INC HL
+ LD A,B
+ OR A
+ JR NZ,L5143 ; (+020H)
+ LD A,C
+ OR A
+ JR Z,L5143 ; (+01cH)
+ LD B,A
+L5128: DEC B
+ RET Z
+ CALL HLFTCH
+ CALL L5173
+ JP NZ,L4AEC
+ CALL L51A8
+ OR A
+ RET Z
+ INC HL
+ CALL TEST1
+ DB 02CH
+ JR Z,L5128 ; (-017H)
+ POP DE
+ JP 05E48H
+
+L5143: POP DE
+ JP L4F8A
+
+L5147: CALL L45AA
+ EX DE,HL
+ JR NZ,L5150 ; (+003H)
+ LD HL,(L1070)
+L5150: LD (L847D),HL
+ XOR A
+ LD (L4B78),A
+ JP L40E4
+
+L515A: CALL L6E8A
+ EX AF,AF'
+ LD A,(DE)
+ OR A
+ JR Z,L5182 ; (+020H)
+ EX AF,AF'
+ CP LSE2
+ JR NZ,L516F ; (+008H)
+L5167: CALL INCHLF
+ CALL L5173
+ JR Z,L5147 ; (-028H)
+L516F: POP AF
+ JP L40AF
+
+L5173: CP 022H
+ RET Z
+L5176: CP 00BH
+ RET Z
+ CP 00CH
+ RET
+
+L517C: CALL L518B
+ JR NC,L517C ; (-005H)
+ RET
+
+L5182: DEC HL
+ CALL L518B
+ JR NC,L5167 ; (-021H)
+ DB 0C3H
+ POP HL
+ LD B,B
+L518B: CALL L51A2
+ OR A
+ SCF
+ RET Z
+ CP 0C2H
+ RET Z
+ CP 093H
+ JR NZ,L518B ; (-00dH)
+ CALL L518B
+ RET C
+ JR L518B ; (-013H)
+
+L519E: INC HL
+ LD A,(HL)
+ JR L51A8 ; (+006H)
+
+L51A2: INC HL
+ LD A,(HL)
+ CP 094H
+ JR Z,L51C7 ; (+01fH)
+L51A8: OR A
+ RET Z
+ CP 022H
+ JR Z,L51E5 ; (+037H)
+ CP 0FEH
+ JR NC,L51C5 ; (+013H)
+ CP 097H
+ JR Z,L51C7 ; (+011H)
+ CP 027H
+ JR Z,L51C7 ; (+00dH)
+ CP 020H
+ RET NC
+ CP 00BH
+ RET C
+ CP 015H
+ JR NC,L51DC ; (+018H)
+ INC HL
+L51C5: INC HL
+ RET
+
+L51C7: LD A,(HL)
+ OR A
+ RET Z
+ CP 03AH
+ RET Z
+ CP 022H
+ JR Z,L51D4 ; (+003H)
+ INC HL
+ JR L51C7 ; (-00dH)
+
+L51D4: CALL L51E5
+ OR A
+ RET Z
+ INC HL
+ JR L51C7 ; (-015H)
+
+L51DC: AND 00FH
+ ADD A,L
+ LD L,A
+ LD A,020H
+ RET NC
+ INC H
+ RET
+
+L51E5: INC HL
+ LD A,(HL)
+ OR A
+ RET Z
+ CP 022H
+ RET Z
+ JR L51E5 ; (-009H)
+
+L51EE: OR 0AFH
+ PUSH AF
+ LD B,031H
+ LD C,04FH
+ CALL L4FDA
+ PUSH AF
+ CALL L523F
+ POP AF
+ JR C,L523D ; (+03eH)
+ LD A,C
+ LD (0522BH),A
+ LD B,001H
+ SRL E
+ JR NC,L520B ; (+002H)
+ SLA B
+L520B: SRL D
+ JR NC,L5213 ; (+004H)
+ SLA B
+ SLA B
+L5213: EX DE,HL
+ RST 018H
+ DB 01EH
+ CALL BREAKX
+ CP 0F0H
+ JR NC,L521F ; (+002H)
+ LD A,0F0H
+L521F: LD C,A
+ POP AF
+ JR Z,L5235 ; (+012H)
+ SET 3,H
+ CALL BREAKX
+ AND 08FH
+ OR 000H
+ CALL POPRA
+ RES 3,H
+ LD A,C
+ OR B
+ JR L5238 ; (+003H)
+
+L5235: LD A,B
+ CPL
+ AND C
+L5238: CALL POPRA
+ EX DE,HL
+ RET
+
+L523D: POP AF
+ RET
+
+L523F: LD A,(L005D)
+ AND 070H
+ LD C,A
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ PUSH DE
+ CALL L552C
+ POP DE
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ LD C,A
+ RET
+
+L5255: RST 018H
+ DB 020H
+ RET
+
+L5258: CALL 05E48H
+ RST 018H
+ DB 028H
+ RST 018H
+ DB 000H
+ RET
+
+L5260: JR Z,L5285 ; (+023H)
+ LD A,001H
+ LD (L004E),A
+ LD A,(L0056)
+ LD B,019H
+ CALL L5298
+ LD (00056H),BC
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ LD B,028H
+ LD A,(L005B)
+ CALL L5298
+ LD (0005BH),BC
+ RET
+
+L5285: XOR A
+ LD (L004E),A
+ LD BC,L1800
+ LD (00056H),BC
+ LD BC,L2700
+ LD (0005BH),BC
+ RET
+
+L5298: LD D,000H
+ LD E,A
+ CALL TEST1
+ DB 02CH
+ JR Z,L52A9 ; (+008H)
+ PUSH BC
+ CALL L6E4B
+ POP BC
+ CALL L5E70
+L52A9: LD C,E
+ PUSH BC
+ CALL L6E4B
+ POP BC
+ DEC A
+ JP M,04AF2H
+ ADD A,C
+ CP B
+ JP NC,04AF2H
+ LD B,A
+ RET
+
+L52BA: DI
+ OUT (LSE4),A
+ JP L0000
+
+L52C0: XOR A
+ LD BC,?SETDE
+ LD (L53A8),A
+ PUSH AF
+ CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,04B28H
+ BIT 1,A
+ JP Z,04B28H
+ CALL TEST1
+ DB 02CH
+ POP AF
+ OR A
+ JR NZ,L52F2 ; (+015H)
+ CALL L6E6F
+ LD A,B
+ LD (L53A3),A
+ LD (053A4H),DE
+ CALL 05E48H
+ JR L52F2 ; (+005H)
+
+L52ED: LD A,002H
+ LD (L53A8),A
+L52F2: CALL L4664
+ LD (05319H),DE
+ LD (05327H),BC
+ LD A,0FFH
+ LD (L1090),A
+ CALL SKPDE
+ LD HL,(L1070)
+L5308: CALL LDDEMI
+ LD A,D
+ OR E
+ RET Z
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ PUSH DE
+ CALL LDDEMI
+ PUSH HL
+ LD HL,L0000
+ OR A
+ SBC HL,DE
+ JR C,L5326 ; (+006H)
+ JR Z,L5326 ; (+004H)
+ POP HL
+ POP HL
+ JR L5308 ; (-01eH)
+
+L5326: LD HL,L0000
+ OR A
+ SBC HL,DE
+ JR NC,L5331 ; (+003H)
+ POP HL
+ POP HL
+ RET
+
+L5331: EX DE,HL
+ CALL L5E66
+ RST 018H
+ DB 017H
+ LD HL,L11A4
+ CALL LDHLDE
+ LD (HL),020H
+ INC HL
+ EX DE,HL
+ POP HL
+ CALL L68E0
+ LD A,(L53A8)
+ OR A
+ JR NZ,L5350 ; (+005H)
+ CALL L5366
+ JR NC,L535A ; (+00aH)
+L5350: LD DE,L11A4
+ RST 018H
+ DB 017H
+ RST 018H
+ DB 037H
+ CALL L5733
+L535A: POP HL
+ LD A,(L53A8)
+ CP 002H
+ JR Z,L5308 ; (-05aH)
+ RST 018H
+ DB 00FH
+ JR L5308 ; (-05eH)
+
+L5366: EX DE,HL
+L5367: PUSH HL
+ CALL L5371
+ POP HL
+ RET C
+ RET Z
+ INC HL
+ JR L5367 ; (-00aH)
+
+L5371: LD A,(L53A3)
+ LD B,A
+ LD DE,(053A4H)
+L5379: LD A,(HL)
+ INC HL
+ OR A
+ RET Z
+ CP 005H
+ JR Z,L5385 ; (+004H)
+ CP 006H
+ JR NZ,L5387 ; (+002H)
+L5385: JR L5379 ; (-00eH)
+
+L5387: PUSH HL
+ LD C,A
+L5389: LD A,(DE)
+ INC DE
+ CP 005H
+ JR Z,L5393 ; (+004H)
+ CP 006H
+ JR NZ,L539A ; (+007H)
+L5393: DEC B
+ SCF
+ POP HL
+ RET Z
+ PUSH HL
+ JR L5389 ; (-011H)
+
+L539A: SUB C
+ POP HL
+ OR A
+ RET NZ
+ DEC B
+ SCF
+ RET Z
+ JR L5379 ; (-02aH)
+
+L53A3: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L53A8: NOP
+L53A9: CALL TESTX
+ DB 087H
+ CALL L5E4F
+ PUSH HL
+ LD C,000H
+L53B3: RST 018H
+ DB 008H
+ LD A,C
+ ADD A,031H
+ LD D,A
+ LD E,020H
+ CP 03AH
+ JR NZ,L53C2 ; (+003H)
+ LD DE,L3031
+L53C2: LD (05445H),DE
+ LD DE,L543D
+ RST 018H
+ DB 00BH
+ LD A,C
+ CALL L549C
+ LD B,(HL)
+ INC HL
+ PUSH BC
+ CALL L53E0
+ POP BC
+ INC C
+ LD A,C
+ CP 00AH
+ JR NZ,L53B3 ; (-029H)
+ RST 018H
+ DB 008H
+ POP HL
+ RET
+
+L53E0: LD A,B
+ OR A
+ LD C,000H
+ JR NZ,L53ED ; (+007H)
+ LD A,022H
+ RST 018H
+ DB 00AH
+ RST 018H
+ DB 00AH
+ RET
+
+L53ED: LD A,(HL)
+ CP 020H
+ JR C,L5412 ; (+020H)
+ CP 022H
+ JR Z,L5412 ; (+01cH)
+ LD A,C
+ CP 001H
+ JR Z,L5405 ; (+00aH)
+ OR A
+ LD DE,L544A
+ JR NZ,L5403 ; (+002H)
+ INC DE
+ INC DE
+L5403: RST 018H
+ DB 00BH
+L5405: LD A,(HL)
+ RST 018H
+ DB 00AH
+ INC HL
+ LD C,001H
+ DJNZ L53ED ; (-020H)
+ LD A,022H
+L540F: RST 018H
+ DB 00AH
+ RET
+
+L5412: LD A,C
+ CP 0FFH
+ JR Z,L5437 ; (+020H)
+ OR A
+ LD DE,0544EH
+ JR NZ,L541F ; (+002H)
+ INC DE
+ INC DE
+L541F: RST 018H
+ DB 00BH
+L5421: PUSH BC
+ PUSH HL
+ LD L,(HL)
+ LD H,000H
+ CALL L5E66
+ RST 018H
+ DB 00BH
+ POP HL
+ POP BC
+ INC HL
+ LD C,0FFH
+ DJNZ L53ED ; (-045H)
+ LD A,029H
+ JP L540F
+
+L5437: LD A,02CH
+ RST 018H
+ DB 00AH
+ JR L5421 ; (-01cH)
+
+L543D: LD B,H
+ LD B,L
+ LD B,(HL)
+ JR NZ,L548D ; (+04bH)
+ LD B,L
+ LD E,C
+ JR Z,L5446 ; (+000H)
+L5446: NOP
+ ADD HL,HL
+ DEC A
+ NOP
+L544A: ADD HL,HL
+ DEC HL
+ LD (L2200),HL
+ DEC HL
+ LD B,E
+ LD C,B
+ LD D,D
+ INC H
+ JR Z,L5456 ; (+000H)
+L5456: CALL TEST1
+ DB 0B2H
+ JR Z,L5467 ; (+00bH)
+ CALL TESTX
+ DB 0FFH
+L5460: CALL TESTX
+ DB 0C7H
+ JP L7824
+
+L5467: CALL TESTX
+ DB 028H
+ CALL L6E4B
+ CALL TESTX
+ DB 029H
+ CALL TESTX
+ DB QDPC
+ LD A,E
+ DEC A
+ CP 00AH
+ JP NC,04AF2H
+ PUSH HL
+ CALL L549C
+ EX (SP),HL
+ CALL L6E6F
+ EX (SP),HL
+ LD A,B
+ CP 010H
+ JR C,L548D ; (+002H)
+ LD A,00FH
+L548D: LD (HL),A
+ OR A
+ JR Z,L5499 ; (+008H)
+ LD B,A
+ INC HL
+L5493: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L5493 ; (-006H)
+L5499: POP HL
+ EI
+ RET
+
+L549C: ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ LD HL,L12C0
+ JP ADDHLA
+
+L54A6: CALL TEST1
+ DB 02CH
+ JR NZ,L54B4 ; (+008H)
+ CALL L5E70
+ LD DE,L005D
+ JR L54C0 ; (+00cH)
+
+L54B4: CALL L4FCF
+ CALL L5E70
+ EX DE,HL
+ RST 018H
+ DB 01EH
+ SET 3,H
+ EX DE,HL
+L54C0: EX DE,HL
+ CALL BREAKX
+ EX DE,HL
+ PUSH DE
+ CALL L54D0
+ POP DE
+ EX DE,HL
+ CALL POPRA
+ EX DE,HL
+ RET
+
+L54D0: LD C,A
+ CALL TEST1
+ DB 02CH
+ JR Z,L54E9 ; (+012H)
+ CALL L552C
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ XOR C
+ AND 070H
+ XOR C
+ LD C,A
+ CALL TEST1
+ DB 02CH
+ JR NZ,L54FA ; (+011H)
+L54E9: CALL L413E
+ JR Z,L54FA ; (+00cH)
+ CP 05DH
+ JR Z,L54FA ; (+008H)
+ CALL L552C
+ XOR C
+ AND 007H
+ XOR C
+ RET
+
+L54FA: LD A,C
+ RET
+
+L54FC: INC HL
+L54FD: CALL L6E6F
+ LD A,B
+ OR A
+ JR Z,L5513 ; (+00fH)
+ PUSH HL
+ LD HL,L11A4
+ PUSH HL
+ CALL LDHLDE
+ LD (HL),00DH
+ POP DE
+ CALL L0030
+ POP HL
+L5513: CALL HLFTCH
+ CP 03BH
+ JR Z,L54FC ; (-01eH)
+ CP 02CH
+ JR Z,L54FC ; (-022H)
+ RET
+
+L551F: CALL L6E4B
+ DEC A
+ CP 007H
+ JP NC,04AF2H
+ INC A
+ JP L0041
+
+L552C: PUSH BC
+ CALL L6E4B
+ POP BC
+ CP 008H
+ JP NC,04AF2H
+ RET
+
+L5537: RST 018H
+ DB 045H
+ RET
+
+ DS 198, 000H
+L5600: LD A,(L1042)
+ CP 088H
+ RET
+
+L5606: CALL L6E8A
+ LD A,(L84CE)
+ CP 003H
+ PUSH HL
+ EX DE,HL
+ JR Z,L5619 ; (+007H)
+ CALL L6028
+ POP HL
+ RST 018H
+ DB 017H
+ RET
+
+L5619: CALL L6E7E
+ POP HL
+ RET
+
+L561E: LD A,(L005D)
+ LD (0574DH),A
+ XOR A
+ LD (L1090),A
+ CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 2,A
+ JP NZ,L5D18
+ BIT 1,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L5600
+ JR NZ,L5655 ; (+013H)
+ CALL TEST1
+ DB 05BH
+ JR NZ,L5655 ; (+00dH)
+ LD A,(0574DH)
+ CALL L54D0
+ LD (0574DH),A
+ CALL TESTX
+ DB 05DH
+L5655: CALL L413E
+ JP Z,L5733
+L565B: LD A,(HL)
+ CP LSE3
+ JR Z,L56DA ; (+07aH)
+ LD BC,L5674
+ PUSH BC
+ CP 03BH
+ RET Z
+ CP 02CH
+ RET Z
+ CP LSE6
+ JR Z,L56AA ; (+03cH)
+ CALL L5606
+ JP L573E
+
+L5674: CALL L413E
+ JP Z,L5733
+ CP 02CH
+ JR NZ,L569A ; (+01cH)
+ CALL L5600
+ JR C,L5697 ; (+014H)
+ LD IX,(ZDELT)
+ CALL IOCALL
+ LD B,A
+L568B: SUB 00AH
+ JR NC,L568B ; (-004H)
+ NEG
+ LD B,A
+ CALL L56CC
+ JR L569A ; (+003H)
+
+L5697: CALL L5733
+L569A: LD A,(HL)
+ CP 02CH
+ JR Z,L56A1 ; (+002H)
+ CP 03BH
+L56A1: JR NZ,L56A4 ; (+001H)
+ INC HL
+L56A4: CALL L413E
+ RET Z
+ JR L565B ; (-04fH)
+
+L56AA: CALL L5600
+ JP C,057B7H
+ CALL L5E77
+ CALL L6E4B
+ CALL L5E7F
+ LD IX,(ZDELT)
+ CALL IOCALL
+ SUB E
+ RET NC
+ NEG
+ LD B,A
+ CALL L5600
+ LD A,013H
+ JR Z,L56CE ; (+002H)
+L56CC: LD A,020H
+L56CE: LD DE,L11A4
+ PUSH BC
+ PUSH DE
+ CALL ?SETDE
+ POP DE
+ POP BC
+ JR L573E ; (+064H)
+
+L56DA: INC HL
+ CALL L6E6F
+ LD A,B
+ OR A
+ JP Z,04AF2H
+ PUSH HL
+ LD HL,L11A4
+ PUSH HL
+ PUSH BC
+ CALL LDHLDE
+ POP BC
+ LD A,0F0H
+ LD E,B
+ LD D,000H
+ INC DE
+ RST 018H
+ DB 02AH
+ LD (L6306),HL
+ LD (L6308),HL
+ POP DE
+ CALL LDHLDE
+ LD (HL),000H
+ POP HL
+L5702: CALL L413E
+ JR Z,L5729 ; (+022H)
+ INC HL
+ CP 02CH
+ JR Z,L5711 ; (+005H)
+ CP 03BH
+ JP NZ,L4AEC
+L5711: CALL L413E
+ JR Z,L572C ; (+016H)
+ CALL L6E92
+ PUSH HL
+ LD BC,(TMPEND)
+ PUSH BC
+ CALL L630A
+ POP DE
+ CALL L573C
+ POP HL
+ JR L5702 ; (-027H)
+
+L5729: CALL L5733
+L572C: LD A,0F0H
+ RST 018H
+ DB 02BH
+ RET
+
+L5731: DEC C
+ NOP
+L5733: LD A,(L005D)
+ LD (0574DH),A
+ LD DE,L5731
+L573C: RST 018H
+ DB 017H
+L573E: CALL L5600
+ JR Z,L5746 ; (+003H)
+ RST 018H
+ DB 037H
+ RET
+
+L5746: PUSH HL
+ PUSH BC
+ LD HL,L005D
+ LD C,(HL)
+ LD (HL),070H
+ RST 018H
+ DB 037H
+ LD (HL),C
+ POP BC
+ POP HL
+ RET
+
+L5754: LD A,08AH
+ LD (L1042),A
+ JR L5792 ; (+037H)
+
+L575B: CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 2,A
+ JP NZ,L5D29
+ BIT 0,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L5600
+ JR NZ,L5792 ; (+01dH)
+ CALL HLFTCH
+ CP 022H
+ LD DE,L57BC
+ LD B,002H
+ JR NZ,L5788 ; (+007H)
+ CALL L6E6F
+ CALL TESTX
+ DB 03BH
+L5788: LD A,B
+ OR A
+ JR Z,L5792 ; (+006H)
+L578C: LD A,(DE)
+ INC DE
+ RST 018H
+ DB 003H
+ DJNZ L578C ; (-006H)
+L5792: LD (057EBH),SP
+ LD DE,(VARED)
+ LD (TMPEND),DE
+L579E: LD DE,(TMPEND)
+ CALL L74E8
+ CALL L7436
+ PUSH AF
+ PUSH BC
+ CALL L413E
+ JR Z,057BEH ; (+00fH)
+ CALL L5E73
+ JR L579E ; (-016H)
+
+L57B4: LD A,02CH
+ LD HL,0BB3EH
+ JP L0182
+
+L57BC: CCF
+ JR NZ,0576EH ; (-051H)
+ PUSH AF
+ PUSH HL
+ RST 018H
+ DB 034H
+ LD HL,(057EBH)
+ DEC HL
+L57C7: LD A,(HL)
+ OR A
+ JR Z,L57E9 ; (+01eH)
+ DEC HL
+ DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ DEC HL
+ PUSH HL
+ PUSH AF
+ PUSH BC
+ LD DE,(TMPEND)
+ CALL L57EE
+ LD H,000H
+ LD L,B
+ ADD HL,DE
+ LD (HL),000H
+ POP DE
+ POP AF
+ CALL L57F8
+ POP HL
+ JR L57C7 ; (-022H)
+
+L57E9: POP HL
+ LD SP,L0000
+ RET
+
+L57EE: LD A,(L1042)
+ CP 08AH
+ JR Z,L5839 ; (+044H)
+ RST 018H
+ DB 035H
+ RET
+
+L57F8: CP 003H
+ JR NZ,L5803 ; (+007H)
+ LD HL,(L107A)
+ LD A,B
+$START: JP L4CD2 ; $START - BASIC warm start / system entry
+
+L5803: PUSH DE
+ LD HL,(L107C)
+ LD DE,(TMPEND)
+ EX DE,HL
+ CALL HLFTCH
+ CP 045H
+ JP Z,04AF2H
+ EX DE,HL
+ CALL L5EDC
+ EX DE,HL
+ CALL TEST1
+ DB 000H
+ JP NZ,04AF2H
+ EX DE,HL
+ POP DE
+ JP L5E93
+
+L5825: XOR A
+ JR L587E ; (+056H)
+
+L5828: CALL L5825
+ CALL L413E
+ CALL NZ,L45AA
+ EX DE,HL
+ CALL NZ,L5869
+ EX DE,HL
+ JP L4F8A
+
+L5839: PUSH HL
+ PUSH DE
+ CALL L5847
+ POP DE
+ POP HL
+ RET
+
+L5841: LD HL,(L1070)
+ CALL L5869
+L5847: LD A,(L848F)
+ CP 001H
+ JP Z,04B1FH
+ JR C,L5841 ; (-010H)
+ LD HL,(L8490)
+ LD C,03AH
+ RST 018H
+ DB 036H
+ LD (L8490),HL
+ CALL L413E
+ SCF
+ CCF
+ RET NZ
+ DEC HL
+L5862: CALL L519E
+ OR A
+ JR NZ,L5874 ; (+00cH)
+ INC HL
+L5869: LD A,(HL)
+ INC HL
+ OR (HL)
+ LD A,001H
+ JR Z,L587E ; (+00eH)
+ INC HL
+ INC HL
+ JR L5862 ; (-012H)
+
+L5874: CP 094H
+ JR NZ,L5862 ; (-016H)
+ INC HL
+ LD (L8490),HL
+ LD A,002H
+L587E: LD (L848F),A
+ RET
+
+L5882: CALL TEST1
+ DB 023H
+ JR NZ,L58AD ; (+025H)
+ CALL HLFTCH
+ CP 020H
+ JP NC,L4AEC
+ PUSH DE
+ PUSH BC
+ LD DE,L84CF
+ PUSH DE
+ CALL L705A
+ EX (SP),HL
+ CALL L60B7
+ LD A,H
+ OR A
+ JP NZ,04B28H
+ OR L
+ JP Z,04B28H
+ JP M,04B28H
+ POP HL
+ POP BC
+ POP DE
+ RET
+
+L58AD: CALL TEST1
+ DB FDPD
+ LD A,088H
+ RET NZ
+ CALL TEST1
+ DB 050H
+ LD A,089H
+ RET Z
+ CALL TESTX
+ DB 054H
+ LD A,080H
+ RET
+
+L58C2: LD A,(L1042)
+ OR A
+ RET M
+ JP L5E70
+
+L58CA: CALL L593A
+ RST 018H
+ DB 03AH
+ RET
+
+L58D0: CALL L413E
+ LD B,000H
+ CALL NZ,L6E6F
+L58D8: PUSH HL
+ RST 018H
+ DB 02CH
+ RST 018H
+ DB 03CH
+ POP HL
+ RET
+
+L58DF: LD A,001H
+ LD BC,0023EH
+ LD BC,0043EH
+ PUSH AF
+ LD (L1043),A
+ CALL L5882
+ CP 088H
+ JR NZ,L58F4 ; (+002H)
+ LD A,080H
+L58F4: LD (L1042),A
+ CALL L58C2
+ CALL L592D
+ POP AF
+ CP 004H
+ JR Z,L5904 ; (+002H)
+L5902: LD A,003H
+L5904: LD (L1000),A
+ PUSH AF
+ RST 018H
+ DB 033H
+ LD A,(L1000)
+ POP BC
+ CP B
+ JP NZ,04B53H
+ RET
+
+L5913: OR 0AFH
+ LD B,A
+ CALL L413E
+ JR Z,L5929 ; (+00eH)
+L591B: CALL L5882
+ CP 088H
+ RET NC
+ RST 018H
+ DB 038H
+ CALL TEST1
+ DB 02CH
+ JR L591B ; (-00eH)
+
+L5929: XOR A
+ RST 018H
+ DB 038H
+ RET
+
+L592D: CALL L46A6
+ LD B,000H
+ CALL NZ,L6E6F
+ PUSH HL
+ RST 018H
+ DB 02DH
+ POP HL
+ RET
+
+L593A: PUSH HL
+ CALL HLFTCH
+ LD DE,L5982
+ LD B,001H
+ CALL L5975
+ CALL NC,L5975
+ JR C,L5962 ; (+017H)
+ CALL L5975
+ CALL L5EC4
+ CALL L597B
+ CALL L413E
+ JR NZ,L5962 ; (+009H)
+ LD A,03AH
+ LD (DE),A
+ POP AF
+ LD DE,L5982
+ JR L596B ; (+009H)
+
+L5962: POP HL
+ CALL L413E
+ LD B,000H
+ CALL NZ,L6E6F
+L596B: PUSH HL
+ RST 018H
+ DB 02CH
+ INC (HL)
+ DEC (HL)
+ JP NZ,04B25H
+ POP HL
+ RET
+
+L5975: CP 041H
+ RET C
+ CP 05BH
+ CCF
+L597B: RET C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ INC B
+ RET
+
+L5982: NOP
+ NOP
+ NOP
+ NOP
+L5986: CALL L592D
+ CALL TEST1
+ DB 02CH
+ JP Z,L5A47
+ PUSH HL
+ CALL L5BDC
+ DEC A
+ JR Z,L59A9 ; (+012H)
+ DEC A
+ JP NZ,04B53H
+ CALL L5C08
+ CALL L5BE5
+ CALL L5C11
+ CALL L5C44
+ POP HL
+ RET
+
+L59A9: LD HL,(ELMD22)
+ PUSH HL
+ LD DE,(MEMLMT)
+ CALL L59CF
+ LD DE,(ELMD20)
+ LD BC,(MEMMAX)
+ CALL NC,L59CA
+ JP C,04B13H
+ POP HL
+ RST 018H
+ DB 030H
+ CALL L5C44
+ POP HL
+ RET
+
+L59CA: ADD HL,DE
+ RET C
+ EX DE,HL
+ LD H,B
+ LD L,C
+L59CF: PUSH HL
+ OR A
+ SBC HL,DE
+ POP HL
+ RET
+
+L59D5: CALL L592D
+ CALL L5BDC
+ CP 002H
+ JP NZ,04B53H
+ LD A,(L849A)
+ OR A
+ JP Z,L5B0D
+ JP L5DB2
+
+L59EA: CALL L5C08
+ CALL L592D
+ CALL TEST1
+ DB 02CH
+ JR Z,05A4DH ; (+057H)
+ RST 018H
+ DB 02FH
+ CP 002H
+ JP NZ,04B53H
+ PUSH HL
+ LD HL,(L1078)
+ LD (L107A),HL
+ LD BC,003E8H
+ ADD HL,BC
+ JP C,L4B2C
+ PUSH HL
+ LD BC,(ELMD20)
+ INC B
+ ADD HL,BC
+ JP C,L4B2C
+ SBC HL,SP
+ JP NC,L4B2C
+ POP HL
+ PUSH HL
+ RST 018H
+ DB 030H
+ POP HL
+ CALL L5A24
+ POP HL
+ RET
+
+L5A24: CALL LDDEMI
+ LD A,D
+ OR E
+ RET Z
+ PUSH DE
+ CALL LDDEMI
+ PUSH HL
+ LD H,D
+ LD L,E
+ LD (L847F),HL
+ CALL L49B9
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+ CALL L4794
+ POP HL
+ POP BC
+ ADD HL,BC
+ DEC HL
+ DEC HL
+ DEC HL
+ DEC HL
+ JR L5A24 ; (-023H)
+
+L5A47: CALL L5C08
+ LD A,001H
+ LD BC,L003E
+ LD BC,0023EH
+ PUSH AF
+ CALL TESTX
+ DB 041H
+ CALL 05E48H
+ LD A,001H
+ LD (L1043),A
+ LD A,081H
+ LD (L1042),A
+ CALL L5902
+ POP AF
+ PUSH AF
+ PUSH HL
+ LD HL,L0000
+ LD DE,0FFFFH
+ OR A
+ CALL NZ,L49B9
+ LD A,081H
+ RST 018H
+ DB 02EH
+ LD HL,(L1078)
+ LD (L107A),HL
+ LD BC,003E8H
+ ADD HL,BC
+ JP C,04AFBH
+ PUSH HL
+ LD (L5AEB),HL
+L5A89: LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(05AEBH)
+ SBC HL,DE
+ JP C,04AFBH
+ LD DE,(TMPEND)
+ RST 018H
+ DB 035H
+ LD A,B
+ OR A
+ JR Z,L5AD6 ; (+036H)
+ CALL L6A11
+ LD A,B
+ OR C
+ JP Z,04AF2H
+ LD HL,(L5AEB)
+ PUSH HL
+ INC HL
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ PUSH HL
+ LD H,D
+ LD L,E
+ CALL TEST1
+ DB 000H
+ JP Z,04AF2H
+ POP HL
+ LD A,(DE)
+ CP 020H
+ JR NZ,L5AC3 ; (+001H)
+ INC DE
+L5AC3: CALL L66EF
+ LD (HL),000H
+ INC HL
+ LD (L5AEB),HL
+ POP DE
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ JR L5A89 ; (-04dH)
+
+L5AD6: LD HL,(L5AEB)
+ CALL L4952
+ CALL L4928
+ POP HL
+ CALL L5A24
+ POP HL
+ POP AF
+ CP 002H
+ RET NZ
+ JP L480D
+
+L5AEB: NOP
+ NOP
+L5AED: CALL L592D
+ PUSH HL
+ CALL TEST1
+ DB 02CH
+ JR NZ,L5AFF ; (+008H)
+ CALL HLFTCH
+ CP 041H
+ JP Z,05A50H
+L5AFF: CALL L5BDC
+ POP HL
+ DEC A
+ JR Z,L5B16 ; (+010H)
+ DEC A
+ JP NZ,04B53H
+ CALL L5BE5
+L5B0D: CALL L5C11
+ CALL L5C44
+ JP L480D
+
+L5B16: LD D,0C9H
+ LD BC,0FF00H
+ CALL TEST1
+ DB 02CH
+ JR NZ,L5B2A ; (+009H)
+ CALL TESTX
+ DB 052H
+ LD D,000H
+ LD BC,0CF00H
+L5B2A: LD A,D
+ LD (L5B93),A
+ LD HL,(L1014)
+ LD DE,(ELMD22)
+ PUSH HL
+ CALL L59CA
+ POP DE
+ LD HL,(L1070)
+ LD BC,0FF00H
+ CALL NC,L59CA
+ JP C,L4B2C
+ LD SP,L0000
+ CALL L4930
+ XOR A
+ LD (L5C07),A
+ LD HL,(L1018)
+ PUSH HL
+ LD DE,(ELMD20)
+ PUSH DE
+ LD HL,(L107A)
+ RST 018H
+ DB 030H
+ LD A,004H
+ RST 018H
+ DB 003H
+ LD A,016H
+ RST 018H
+ DB 003H
+ POP BC
+ PUSH BC
+ LD DE,(ELMD22)
+ CALL L59CF
+ LD A,0B0H
+ JR NC,L5B7B ; (+008H)
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ LD A,0B8H
+L5B7B: LD (05B92H),A
+ DI
+ PUSH HL
+ PUSH DE
+ LD BC,00016H
+ LD HL,L5B8E
+ LD DE,0FF80H
+ PUSH DE
+ LDIR
+ RET
+
+L5B8E: POP DE
+ POP HL
+ POP BC
+ LDIR
+L5B93: RET
+
+ POP BC
+ LD SP,VRAM
+ EX DE,HL
+ PUSH BC
+ PUSH HL
+ LD (HL),LSD3
+ INC HL
+ LD (HL),LSE4
+ INC HL
+ LD (HL),0C9H
+ RET
+
+L5BA4: LD HL,(L1078)
+ LD (L107A),HL
+ LD DE,(TEXTED)
+ LD (05C01H),DE
+ OR A
+ SBC HL,DE
+ LD (L5C03),HL
+ LD HL,0FF00H
+ ADD HL,SP
+ LD (L5C05),HL
+ LD DE,(VARED)
+ PUSH HL
+ OR A
+ SBC HL,DE
+ JP C,L4B2C
+ EX (SP),HL
+ EX DE,HL
+ LD BC,(05C03H)
+ INC BC
+ LDDR
+ POP DE
+ RST 018H
+ DB 018H
+ LD A,001H
+ LD (L5C07),A
+ RET
+
+L5BDC: CALL L5BA4
+ RST 018H
+ DB 02FH
+ LD A,(L1000)
+ RET
+
+L5BE5: LD HL,(L1078)
+ XOR A
+ DEC HL
+ LD (HL),A
+ DEC HL
+ LD (HL),A
+ LD (L1076),HL
+ DEC HL
+ LD (HL),A
+ LD (L1074),HL
+ DEC HL
+ LD (HL),A
+ LD (L1072),HL
+ LD HL,00004H
+ LD (L5C03),HL
+ RET
+
+L5C01: NOP
+ NOP
+L5C03: NOP
+ NOP
+L5C05: NOP
+ NOP
+L5C07: NOP
+L5C08: PUSH AF
+ CALL L4146
+ JP NZ,04B16H
+ POP AF
+ RET
+
+L5C11: LD BC,(ELMD20)
+ PUSH BC
+ LD HL,(L1072)
+ LD DE,(TEXTST)
+ OR A
+ SBC HL,DE
+ LD L,000H
+ SBC HL,BC
+ JP C,L4B2C
+ LD HL,L0000
+ LD (L5C01),HL
+ CALL L4821
+ LD HL,L0000
+ LD (L8483),HL
+ LD HL,(L1070)
+ RST 018H
+ DB 030H
+ POP BC
+ LD HL,(L1070)
+ ADD HL,BC
+ LD (L5C01),HL
+ RET
+
+L5C44: LD A,081H
+ LD B,000H
+ RST 018H
+ DB 038H
+ LD HL,L5C07
+ LD A,(HL)
+ OR A
+ RET Z
+ LD (HL),000H
+ LD HL,(L5C01)
+ LD A,H
+ OR L
+ JR NZ,L5C5F ; (+006H)
+ LD HL,(L1070)
+ CALL L4952
+L5C5F: EX DE,HL
+ LD HL,(L1072)
+ LD BC,(05C03H)
+ LDIR
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ RST 018H
+ DB 018H
+ RET
+
+L5C71: PUSH HL
+ CALL L46C0
+ POP HL
+ CALL L592D
+ PUSH HL
+ RST 018H
+ DB 02FH
+ CP 002H
+ JP NZ,04B53H
+ LD HL,(L1070)
+ RST 018H
+ DB 032H
+ POP HL
+ RET
+
+L5C88: PUSH HL
+ CALL L46C0
+ POP HL
+ CALL L592D
+ CALL TEST1
+ DB 02CH
+ JR Z,L5CB5 ; (+01fH)
+ PUSH HL
+ LD A,002H
+ LD (L1000),A
+ LD HL,(L1072)
+ LD DE,(TEXTST)
+ OR A
+ SBC HL,DE
+ LD (L1014),HL
+ LD A,(L1001)
+ CP 00DH
+ JP Z,04B50H
+ RST 018H
+ DB 031H
+ POP HL
+ RET
+
+L5CB5: CALL TESTX
+ DB 041H
+ PUSH HL
+ LD A,002H
+ LD (L1043),A
+ LD A,081H
+ LD (L1042),A
+ CALL L5902
+ POP HL
+ CALL L52ED
+ CALL L5733
+ LD B,001H
+ LD A,081H
+ RST 018H
+ DB 038H
+ RET
+
+L5CD5: XOR A
+ LD BC,?SETDE
+ PUSH AF
+ CALL L6E6F
+ RST 018H
+ DB 02DH
+ POP AF
+ RST 018H
+ DB 03FH
+ RET
+
+L5CE3: CALL L5882
+ PUSH AF
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 1,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L593A
+ LD B,A
+ XOR A
+ RST 018H
+ DB 039H
+ LD A,B
+ RST 018H
+ DB 03AH
+ POP AF
+ RST 018H
+ DB 039H
+ RET
+
+L5D02: CALL L6E6F
+ RST 018H
+ DB 02DH
+ RST 018H
+ DB 03DH
+ RET
+
+L5D0A: CALL L6E6F
+ RST 018H
+ DB 02DH
+ CALL L5E70
+ CALL L6E6F
+ RST 018H
+ DB 03EH
+ RET
+
+L5D18: CALL L5D4E
+L5D1B: CALL L5606
+ RST 018H
+ DB 042H
+ CALL L413E
+ RET Z
+ CALL L5E73
+ JR L5D1B ; (-00eH)
+
+L5D29: CALL L5D4E
+ LD DE,(TMPEND)
+ CALL L74E8
+L5D33: CALL L7436
+ PUSH HL
+ PUSH AF
+ PUSH BC
+ LD DE,(TMPEND)
+ RST 018H
+ DB 041H
+ POP DE
+ POP AF
+ CALL L57F8
+ POP HL
+ CALL L413E
+ RET Z
+ CALL L5E73
+ JR L5D33 ; (-01bH)
+
+L5D4E: CALL TEST1
+ DB 028H
+ RET NZ
+ CALL L6E5F
+ LD A,D
+ OR E
+ JP Z,04AF2H
+ RST 018H
+ DB 040H
+ CALL L5E7F
+ CALL TEST1
+ DB 02CH
+ RET
+
+L5D65: LD A,(L849A)
+ OR A
+ JP NZ,04B22H
+ PUSH HL
+ LD B,000H
+ RST 018H
+ DB 02CH
+ LD (05E1AH),DE
+ LD (L5E1C),A
+ LD HL,(L1072)
+ LD DE,(TEXTST)
+ XOR A
+ SBC HL,DE
+ LD (L1014),HL
+ RST 018H
+ DB 044H
+ POP HL
+ CALL L592D
+ CALL 05E48H
+ LD A,(L1050)
+ BIT 5,A
+ JP Z,057B7H
+ PUSH HL
+ LD HL,(08494H)
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ LD HL,L847D
+ LD BC,(08492H)
+ LDIR
+ CALL L5BDC
+ CP 002H
+ JP NZ,04B53H
+ LD (05DB3H),SP
+L5DB2: LD SP,L0000
+ CALL L5C11
+ CALL L5C44
+ LD HL,0FFFDH
+ PUSH HL
+ PUSH HL
+ LD A,001H
+ LD (L849A),A
+ LD HL,(L1070)
+ JP L40E4
+
+L5DCB: XOR A
+ LD (L849A),A
+ POP IX
+L5DD1: POP BC
+ LD A,B
+ CP 0FFH
+ JP NZ,04B22H
+ LD A,C
+ CP 0FDH
+ JR Z,L5DF0 ; (+013H)
+ CP 0FEH
+ LD HL,00004H
+ JR Z,L5DEC ; (+008H)
+ CP 012H
+ LD HL,00010H
+ JP NZ,04B22H
+L5DEC: ADD HL,SP
+ LD SP,HL
+ JR L5DD1 ; (-01fH)
+
+L5DF0: LD DE,(05E1AH)
+ LD A,(L5E1C)
+ RST 018H
+ DB 03AH
+ LD B,000H
+ RST 018H
+ DB 02CH
+ CALL L5BA4
+ OR 0FFH
+ RST 018H
+ DB 044H
+ CALL L5C11
+ CALL L5C44
+ LD HL,L0000
+ ADD HL,SP
+ LD DE,L847D
+ LD BC,(08492H)
+ LDIR
+ LD SP,HL
+ POP HL
+ RET
+
+ NOP
+ NOP
+L5E1C: NOP
+L5E1D: LD DE,L5E37
+ LD B,005H
+ CALL L58D8
+ LD A,031H
+ CALL L5E2C
+ LD A,032H
+L5E2C: LD (05E3EH),A
+ LD DE,05E3CH
+ LD B,00CH
+ JP L58D8
+
+L5E37: DB "CMT:TRS?:0,$8C,13",0CDH; XCMT device config string
+ LD A,041H
+ RET Z
+ JP L4AEC
+
+L5E4F: XOR A
+ LD (L1091),A
+ CALL TEST1
+ DB FDPD
+ RET NZ
+ CALL TESTX
+ DB 050H
+ CALL L6AC6
+ LD A,050H
+ LD (L1091),A
+ CP A
+ RET
+
+L5E66: LD DE,L849C
+ LD B,000H
+ PUSH DE
+ RST 018H
+ DB 016H
+ POP DE
+ RET
+
+L5E70: CALL HLFTCH
+L5E73: CP 02CH
+ JR L5E84 ; (+00dH)
+
+L5E77: INC HL
+L5E78: CALL HLFTCH
+L5E7B: CP 028H
+ JR L5E84 ; (+005H)
+
+L5E7F: CALL HLFTCH
+L5E82: CP 029H
+L5E84: INC HL
+ RET Z
+ JP L4AEC
+
+L5E89: LD A,(DE)
+ CP 020H
+ INC DE
+ JR Z,L5E89 ; (-006H)
+ RET
+
+L5E90: LD HL,L6112
+L5E93: LD BC,00005H
+ LDIR
+ RET
+
+L5E99: CALL L7967
+ LD A,E
+ OR D
+ RET Z
+ BIT 7,D
+ LD A,07FH
+ JR Z,L5EAE ; (+009H)
+ LD A,D
+ CPL
+ LD D,A
+ LD A,E
+ CPL
+ LD E,A
+ INC DE
+ LD A,0FFH
+L5EAE: LD B,091H
+L5EB0: DEC B
+ BIT 7,D
+ JR NZ,L5EBB ; (+006H)
+ RL E
+ RL D
+ JR L5EB0 ; (-00bH)
+
+L5EBB: LD (HL),B
+ INC HL
+ AND D
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ DEC HL
+ DEC HL
+ RET
+
+L5EC4: CP 030H
+ RET C
+ CP 03AH
+ CCF
+ RET
+
+L5ECB: CP 05FH
+ RET Z
+ CP 030H
+ RET C
+ CP 05BH
+ CCF
+ RET C
+ CP 03AH
+ CCF
+ RET NC
+ CP 041H
+ RET
+
+L5EDC: CALL L7967
+ LD (L6301),A
+ LD (L6302),A
+ LD (L6303),A
+ LD (05F83H),A
+ LD A,005H
+ LD (L84CE),A
+L5EF0: CALL L5E89
+ CP 02BH
+ JR Z,L5EF0 ; (-007H)
+ CP 02DH
+ JR NZ,L5F01 ; (+006H)
+ CALL L5EF0
+ JP L7972
+
+L5F01: CP 024H
+ JR NZ,L5F11 ; (+00cH)
+ PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 014H
+ EX (SP),HL
+ CALL L5E99
+ POP DE
+ LD A,005H
+ RET
+
+L5F11: CP 030H
+ JR NZ,L5F1B ; (+006H)
+ LD A,(DE)
+ INC DE
+ JR L5F11 ; (-008H)
+
+L5F19: LD A,(DE)
+ INC DE
+L5F1B: CP 020H
+ JR Z,L5F19 ; (-006H)
+ CP 02EH
+ JR Z,L5F3E ; (+01bH)
+ CALL L5EC4
+ JR C,L5F78 ; (+050H)
+ SUB 030H
+ CALL L60AA
+ CALL L6014
+ LD A,001H
+ LD (L6302),A
+ LD A,(L6301)
+ INC A
+ LD (L6301),A
+ JR L5F19 ; (-025H)
+
+L5F3E: LD A,001H
+ LD (05F83H),A
+ LD C,A
+L5F44: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L5F44 ; (-006H)
+ CALL L5EC4
+ JR C,L5F70 ; (+021H)
+ INC C
+ SUB 030H
+ JR Z,L5F5B ; (+007H)
+ PUSH AF
+ LD A,001H
+ LD (L6302),A
+ POP AF
+L5F5B: PUSH AF
+ LD A,(L6302)
+ LD B,A
+ LD A,(L6301)
+ ADD A,B
+ LD (L6301),A
+ POP AF
+ CALL L60AA
+ CALL L6014
+ JR L5F44 ; (-02cH)
+
+L5F70: DEC C
+ JR Z,L5F78 ; (+005H)
+ CALL L5FFE
+ JR L5F70 ; (-008H)
+
+L5F78: CP 045H
+ JR Z,L5F89 ; (+00dH)
+L5F7C: DEC DE
+ LD A,(L6303)
+ OR A
+ RET NZ
+ LD A,000H
+ OR A
+ RET NZ
+ LD A,005H
+ RET
+
+L5F89: LD A,(DE)
+ CP 02DH
+ JR Z,L5F97 ; (+009H)
+ CP 02BH
+ JR Z,L5F97 ; (+005H)
+ CALL L5EC4
+ JR C,L5F7C ; (-01bH)
+L5F97: LD A,001H
+ LD (05F83H),A
+ PUSH HL
+ LD HL,L7BB3
+ LD (05FF7H),HL
+ LD HL,L0000
+ LD A,(DE)
+ INC DE
+ CP 02BH
+ JR Z,L5FB8 ; (+00cH)
+ CP 02DH
+ JR NZ,L5FBA ; (+00aH)
+ PUSH HL
+ LD HL,L7C9E
+ LD (05FF7H),HL
+ POP HL
+L5FB8: LD A,(DE)
+ INC DE
+L5FBA: SUB 030H
+ JR C,L5FDA ; (+01cH)
+ CP 00AH
+ JR NC,L5FDA ; (+018H)
+ PUSH DE
+ CALL L600F
+ LD E,L
+ LD D,H
+ CALL L600F
+ CALL L600F
+ CALL L600B
+ LD E,A
+ LD D,000H
+ CALL L600B
+ POP DE
+ JR L5FB8 ; (-022H)
+
+L5FDA: LD A,H
+ OR A
+ JR NZ,L6011 ; (+033H)
+ LD A,L
+ POP HL
+ PUSH DE
+ PUSH BC
+ PUSH HL
+ LD DE,L84CF
+ PUSH DE
+ CALL L5E90
+ POP HL
+ LD B,A
+ INC B
+ JR L5FF2 ; (+003H)
+
+L5FEF: CALL L60AA
+L5FF2: DJNZ L5FEF ; (-005H)
+ EX DE,HL
+ POP HL
+ CALL L0000
+ POP BC
+ POP DE
+ JP L5F7C
+
+L5FFE: PUSH AF
+ PUSH BC
+ PUSH DE
+ LD DE,L610D
+ CALL L7C9E
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L600B: ADD HL,DE
+ RET NC
+ JR L6011 ; (+002H)
+
+L600F: ADD HL,HL
+ RET NC
+L6011: JP 04AEFH
+
+L6014: PUSH DE
+ PUSH HL
+ LD HL,L84CF
+ LD E,A
+ LD D,000H
+ CALL L5E99
+ EX DE,HL
+ POP HL
+ PUSH BC
+ CALL L7985
+ POP BC
+ POP DE
+ RET
+
+L6028: LD A,005H
+ LD (L84CE),A
+ LD A,(HL)
+ OR A
+ JR Z,L6035 ; (+004H)
+ INC HL
+ LD A,(HL)
+ DEC HL
+ RLCA
+L6035: LD A,020H
+ JR NC,L603E ; (+005H)
+ CALL L7972
+ LD A,02DH
+L603E: PUSH AF
+ CALL L61AD
+ CALL L623A
+ POP AF
+ DEC DE
+ LD (DE),A
+ RET
+
+L6049: PUSH BC
+ CALL L7A1C
+ POP BC
+ RET
+
+L604F: CALL SKPDE
+ LD A,(HL)
+ CP 081H
+ JP C,L7967
+ LD A,(HL)
+ CP 0A0H
+ RET NC
+ INC HL
+ CALL L6086
+ PUSH HL
+ LD L,(HL)
+ LD B,000H
+L6064: SRL E
+ RR D
+ RR C
+ RR L
+ INC A
+ INC B
+ CP 0A0H
+ JR NZ,L6064 ; (-00eH)
+L6072: SLA L
+ RL C
+ RL D
+ RL E
+ DJNZ L6072 ; (-00aH)
+ LD A,L
+ POP HL
+ LD (HL),A
+ DEC HL
+ LD (HL),C
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ RET
+
+L6086: LD E,(HL)
+ INC HL
+L6088: LD D,(HL)
+ INC HL
+ LD C,(HL)
+ INC HL
+ RET
+
+L608D: LD A,(HL)
+ CP 081H
+ RET C
+ PUSH DE
+ PUSH HL
+ LD DE,L60A5
+ PUSH DE
+ CALL L5E93
+ POP HL
+ CALL L604F
+ EX DE,HL
+ POP HL
+ CALL L797C
+ POP DE
+ RET
+
+L60A5: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L60AA: PUSH AF
+ PUSH BC
+ PUSH DE
+ LD DE,L610D
+ CALL L7BB3
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L60B7: INC HL
+ BIT 7,(HL)
+ JR Z,L60C7 ; (+00bH)
+ CALL L60C7
+ LD A,H
+ CPL
+ LD H,A
+ LD A,L
+ CPL
+ LD L,A
+ INC HL
+ RET
+
+L60C7: DEC HL
+ LD A,(HL)
+ CP 091H
+ JP NC,04AEFH
+ CP 081H
+ JR C,L60E5 ; (+013H)
+ PUSH AF
+ INC HL
+ LD A,(HL)
+ INC HL
+ LD L,(HL)
+ LD H,A
+ POP AF
+ SET 7,H
+L60DB: CP 090H
+ RET Z
+ INC A
+ SRL H
+ RR L
+ JR L60DB ; (-00aH)
+
+L60E5: CCF
+ LD HL,L0000
+ RET
+
+L60EA: SBC A,E
+ LD A,0BCH
+ JR NZ,L60EF ; (+000H)
+L60EF: SBC A,B
+ JR L6088 ; (-06aH)
+
+ ADD A,B
+ NOP
+ SUB H
+ LD (HL),H
+ INC H
+ NOP
+ NOP
+ SUB C
+ LD B,E
+ LD D,B
+ NOP
+ NOP
+ ADC A,(HL)
+ INC E
+ LD B,B
+ NOP
+ NOP
+ ADC A,D
+ LD A,D
+ NOP
+ NOP
+ NOP
+ ADD A,A
+ LD C,B
+ NOP
+ NOP
+ NOP
+L610D: ADD A,H
+ JR NZ,L6110 ; (+000H)
+L6110: NOP
+ NOP
+L6112: ADD A,C
+ NOP
+ NOP
+ NOP
+ NOP
+ LD A,L
+ LD C,H
+ CALL Z,0CDCCH
+L611C: LD H,(HL)
+ DEC HL
+ CALL Z,L1277
+L6121: LD HL,(L6304)
+ LD B,000H
+L6126: LD DE,L610D
+ CALL L6049
+ JR C,L6134 ; (+006H)
+ CALL L5FFE
+ INC B
+ JR L6126 ; (-00eH)
+
+L6134: LD DE,L6112
+ CALL L6049
+ JR NC,L6142 ; (+006H)
+ CALL L60AA
+ DEC B
+ JR L6134 ; (-00eH)
+
+L6142: PUSH BC
+ CALL L61AD
+ CALL L623A
+ POP BC
+ PUSH DE
+ EX DE,HL
+L614C: LD A,(HL)
+ OR A
+ JR Z,L6153 ; (+003H)
+ INC HL
+ JR L614C ; (-007H)
+
+L6153: DEC HL
+ LD A,(HL)
+ INC HL
+ CP 030H
+ JR NZ,L615C ; (+002H)
+ INC B
+ DEC HL
+L615C: LD A,045H
+ LD (HL),A
+ INC HL
+ LD A,B
+ LD B,02BH
+ BIT 7,A
+ JR Z,L616B ; (+004H)
+ NEG
+ LD B,02DH
+L616B: LD (HL),B
+ INC HL
+ LD (HL),030H
+L616F: SUB 00AH
+ JR C,L6176 ; (+003H)
+ INC (HL)
+ JR L616F ; (-007H)
+
+L6176: ADD A,03AH
+ INC HL
+ LD (HL),A
+ INC HL
+ LD (HL),000H
+ POP DE
+ RET
+
+L617F: PUSH HL
+ CALL L60B7
+ LD DE,L84A7
+ PUSH DE
+ LD B,001H
+ RST 018H
+ DB 016H
+ POP HL
+ LD A,030H
+ LD B,005H
+L6190: CP (HL)
+ JR NZ,L6198 ; (+005H)
+ INC HL
+ DJNZ L6190 ; (-006H)
+ JR L61A1 ; (+009H)
+
+L6198: LD A,B
+ LD (L6301),A
+ LD A,001H
+ LD (L6302),A
+L61A1: LD A,02EH
+ LD (L84AC),A
+ POP HL
+ CALL L608D
+ JP L61FD
+
+L61AD: LD (L6304),HL
+ XOR A
+ LD (L6301),A
+ LD (L6302),A
+ PUSH HL
+ LD HL,L84A3
+ LD (HL),0FFH
+ LD B,021H
+ LD A,030H
+L61C1: INC HL
+ LD (HL),A
+ DJNZ L61C1 ; (-004H)
+ LD A,02EH
+ LD (L84AC),A
+ POP HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD DE,L60EA
+ CALL L7A1C
+ CCF
+ RET C
+ LD DE,L611C
+ CALL L7A1C
+ RET C
+ LD DE,L84D7
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD A,(HL)
+ CP 081H
+ JR C,L61FD ; (+013H)
+ CP 090H
+ JP C,L617F
+ LD IX,L84A4
+ LD DE,L60EF
+ CALL L62C4
+ CALL L62F8
+ RET NC
+L61FD: LD IX,L84AD
+L6201: LD DE,L60EA
+ PUSH BC
+ PUSH IX
+ CALL L7BB3
+ POP IX
+ POP BC
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ CALL L62C4
+ CALL L62F8
+ JR C,L6201 ; (-019H)
+ RET
+
+L621B: LD A,005H
+ LD (L84CE),A
+ PUSH HL
+ LD DE,L84DF
+ PUSH DE
+ CALL L5E93
+ POP HL
+ CALL L61AD
+ CALL L6237
+ POP HL
+ RET
+
+L6231: LD DE,L84AC
+ LD (DE),A
+ DEC DE
+ RET
+
+L6237: JP C,L6121
+L623A: LD HL,(L6304)
+ LD A,(HL)
+ OR A
+ JR Z,L6231 ; (-010H)
+ LD DE,L84A4
+ DEC DE
+ EX DE,HL
+ LD DE,00001H
+L6249: INC HL
+ LD A,(HL)
+ CP 02EH
+ JR NZ,L6254 ; (+005H)
+ LD DE,L0000
+ JR L6249 ; (-00bH)
+
+L6254: CP 030H
+ JR Z,L6249 ; (-00fH)
+ ADD HL,DE
+ LD DE,00008H
+ ADD HL,DE
+ LD A,(HL)
+L625E: LD (HL),030H
+ CP 035H
+ JR C,L6273 ; (+00fH)
+L6264: DEC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L6264 ; (-006H)
+ INC A
+ JR Z,L62AD ; (+040H)
+ LD (HL),A
+ CP 03AH
+ JR Z,L625E ; (-014H)
+ INC HL
+L6273: LD DE,L84AC
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ JR C,L6282 ; (+005H)
+ LD HL,L84AC
+ JR L6299 ; (+017H)
+
+L6282: DEC HL
+ LD A,(HL)
+ CP 02EH
+ DEC HL
+ JR Z,L6298 ; (+00fH)
+ INC HL
+ CP 030H
+ JR Z,L6273 ; (-01bH)
+ PUSH HL
+ LD DE,L84B5
+ SBC HL,DE
+ POP HL
+ JP NC,L6121
+L6298: INC HL
+L6299: LD (HL),000H
+ LD DE,L84A4
+L629E: LD A,(DE)
+ CP 030H
+ JR NZ,L62A6 ; (+003H)
+ INC DE
+ JR L629E ; (-008H)
+
+L62A6: OR A
+ RET NZ
+ DEC DE
+ LD A,030H
+ LD (DE),A
+ RET
+
+L62AD: LD HL,L849C
+ LD DE,L62BE
+ PUSH BC
+ LD BC,L0006
+ LDIR
+ POP BC
+ LD DE,L849C
+ RET
+
+L62BE: LD SP,L2B45
+ JR NC,L62FB ; (+038H)
+ NOP
+L62C4: LD A,(DE)
+ CP 07DH
+ RET Z
+L62C8: CALL L7A1C
+ JR C,L62E0 ; (+013H)
+ INC (IX+000H)
+ PUSH IX
+ PUSH BC
+ CALL L797C
+ POP BC
+ POP IX
+ LD A,001H
+ LD (L6302),A
+ JR L62C8 ; (-018H)
+
+L62E0: INC IX
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ LD A,(L6302)
+ LD B,A
+ LD A,(L6301)
+ ADD A,B
+ LD (L6301),A
+ CALL L62F8
+ RET NC
+ JR L62C4 ; (-034H)
+
+L62F8: LD A,(HL)
+ OR A
+ RET Z
+L62FB: LD A,(L6301)
+ CP 009H
+ RET
+
+L6301: NOP
+L6302: NOP
+L6303: NOP
+L6304: NOP
+ NOP
+L6306: NOP
+ NOP
+L6308: NOP
+ NOP
+L630A: LD HL,(L6308)
+ PUSH DE
+L630E: LD A,(HL)
+ OR A
+ JP Z,04AF2H
+ CALL L63AC
+ JR Z,L631D ; (+005H)
+ LD (BC),A
+ INC BC
+ INC HL
+ JR L630E ; (-00fH)
+
+L631D: EX AF,AF'
+ LD A,(L84CE)
+ CP 003H
+ JP NZ,L63D5
+ EX AF,AF'
+ CP 021H
+ JP Z,L6334
+ CP 026H
+ JP Z,L635B
+ JP 04AF5H
+
+L6334: EX (SP),HL
+ PUSH BC
+ CALL L6E7E
+ OR A
+ LD A,020H
+ JR Z,L633F ; (+001H)
+ LD A,(DE)
+L633F: POP BC
+ LD (BC),A
+ INC BC
+L6342: POP HL
+ INC HL
+L6344: LD A,(HL)
+ OR A
+ JR Z,L6352 ; (+00aH)
+ CALL L63AC
+ JR Z,L6355 ; (+008H)
+ LD (BC),A
+ INC BC
+ INC HL
+ JR L6344 ; (-00eH)
+
+L6352: LD HL,(L6306)
+L6355: LD (L6308),HL
+ XOR A
+ LD (BC),A
+ RET
+
+L635B: LD D,002H
+L635D: INC HL
+ LD A,(HL)
+ CP 026H
+ JR Z,L636B ; (+008H)
+ INC D
+ CP 020H
+ JR Z,L635D ; (-00bH)
+ JP 04AF2H
+
+L636B: EX (SP),HL
+ LD A,(HL)
+ CP D
+ JR C,L6385 ; (+015H)
+ INC HL
+ CALL INDRCT
+ PUSH BC
+ LD BC,(STRST)
+ ADD HL,BC
+ POP BC
+L637B: LD A,(HL)
+ LD (BC),A
+ INC BC
+ INC HL
+ DEC D
+ JR NZ,L637B ; (-007H)
+ JP L6342
+
+L6385: LD E,(HL)
+ INC HL
+ CALL INDRCT
+ LD A,E
+ OR A
+ JR Z,L63A2 ; (+014H)
+ PUSH BC
+ LD BC,(STRST)
+ ADD HL,BC
+ POP BC
+L6395: LD A,(HL)
+ LD (BC),A
+ INC BC
+ INC HL
+ DEC E
+ JR Z,L63A6 ; (+00aH)
+ DEC D
+ JR NZ,L6395 ; (-00aH)
+ JP L6342
+
+L63A2: LD A,020H
+ LD (BC),A
+ INC BC
+L63A6: DEC D
+ JR NZ,L63A2 ; (-007H)
+ JP L6342
+
+L63AC: CALL CHKACC
+ INC B
+ LD HL,L2326
+ DEC HL
+ RET Z
+ LD E,A
+ CP 02AH
+ JR Z,L63CF ; (+015H)
+ CALL L65AC
+ JR Z,L63CF ; (+010H)
+ CP 02EH
+ LD E,023H
+ JR Z,L63CF ; (+00aH)
+ CP 0C4H
+ RET NZ
+ INC HL
+ LD A,(HL)
+ OR A
+ JP Z,04AF2H
+ RET
+
+L63CF: INC HL
+ LD A,(HL)
+ CP E
+ DEC HL
+ LD A,(HL)
+ RET
+
+L63D5: XOR A
+ LD (0651CH),A
+ LD (0656CH),A
+ LD (L6554),A
+ LD (06512H),A
+ LD (064CCH),A
+ LD (064F9H),A
+ LD (06517H),A
+ LD (064C5H),A
+ DEC A
+ LD (064C2H),A
+ EX AF,AF'
+ LD D,000H
+ CP 023H
+ JP Z,L6431
+ CP 02AH
+ JP Z,L6412
+ CALL L65AC
+ JP Z,L6423
+ CP 02EH
+ JP Z,L6433
+ CP 02BH
+ JP Z,L642C
+ JP 04AF5H
+
+L6412: LD A,001H
+ LD (0656CH),A
+ INC HL
+ INC D
+ INC HL
+ INC D
+ LD A,(HL)
+ CALL L65AC
+ JR NZ,L6433 ; (+012H)
+ JR L6425 ; (+002H)
+
+L6423: INC HL
+ INC D
+L6425: INC HL
+ INC D
+ LD (L6554),A
+ JR L6433 ; (+007H)
+
+L642C: LD A,001H
+ LD (0651CH),A
+L6431: INC HL
+ INC D
+L6433: EX DE,HL
+ DEC H
+L6435: INC H
+ LD A,(DE)
+ INC DE
+ CP 023H
+ JR Z,L6435 ; (-007H)
+ CP 02CH
+ JR NZ,L6447 ; (+007H)
+ LD A,001H
+ LD (064CCH),A
+ JR L6435 ; (-012H)
+
+L6447: CP 02EH
+ JR Z,L646E ; (+023H)
+ CP 02DH
+ JR NZ,L6457 ; (+008H)
+ LD A,001H
+ LD (06512H),A
+ INC DE
+ JR L6467 ; (+010H)
+
+L6457: CP 02BH
+ JR NZ,L6467 ; (+00cH)
+ LD A,(0651CH)
+ OR A
+ JR NZ,L6467 ; (+006H)
+ LD A,001H
+ LD (06517H),A
+ INC DE
+L6467: DEC DE
+ LD A,H
+ LD (064F9H),A
+ JR L64A1 ; (+033H)
+
+L646E: LD A,H
+ LD (064F9H),A
+ LD H,0FFH
+L6474: INC H
+ LD A,(DE)
+ INC DE
+ CP 023H
+ JR Z,L6474 ; (-007H)
+ CP 02DH
+ JR NZ,L6487 ; (+008H)
+ LD A,001H
+ LD (06512H),A
+ INC DE
+ JR L6497 ; (+010H)
+
+L6487: CP 02BH
+ JR NZ,L6497 ; (+00cH)
+ LD A,(0651CH)
+ OR A
+ JR NZ,L6497 ; (+006H)
+ LD A,001H
+ LD (06517H),A
+ INC DE
+L6497: DEC DE
+ LD A,H
+ LD (064C2H),A
+ JR L64A1 ; (+003H)
+
+L649E: POP DE
+ JR L64B3 ; (+012H)
+
+L64A1: LD H,004H
+ PUSH DE
+L64A4: LD A,(DE)
+ INC DE
+ CP 05EH
+ JR NZ,L649E ; (-00cH)
+ DEC H
+ JR NZ,L64A4 ; (-009H)
+ POP AF
+ LD A,001H
+ LD (064C5H),A
+L64B3: POP HL
+ PUSH DE
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ LD (06549H),A
+ LD A,(064F9H)
+ LD D,A
+ LD A,000H
+ LD E,A
+ LD A,000H
+ PUSH BC
+ CALL L65BE
+ POP BC
+ LD A,000H
+ OR A
+ JR Z,L6511 ; (+041H)
+ PUSH BC
+ PUSH DE
+ LD A,(064F9H)
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ LD DE,L849C
+ LD C,000H
+ DEC HL
+L64DF: LD B,003H
+L64E1: LD A,(HL)
+ CP 020H
+ JR Z,L64F8 ; (+012H)
+ INC C
+ LD (DE),A
+ INC DE
+ DEC HL
+ DJNZ L64E1 ; (-00bH)
+ LD A,(HL)
+ CP 020H
+ JR Z,L64F8 ; (+007H)
+ LD A,02CH
+ LD (DE),A
+ INC DE
+ INC C
+ JR L64DF ; (-019H)
+
+L64F8: LD A,000H
+ CP C
+ JP C,04AEFH
+ LD B,C
+ LD L,A
+ LD H,000H
+ POP DE
+ PUSH DE
+ ADD HL,DE
+ LD DE,L849C
+ DEC HL
+L6509: LD A,(DE)
+ LD (HL),A
+ DEC HL
+ INC DE
+ DJNZ L6509 ; (-006H)
+ POP DE
+ POP BC
+L6511: LD A,000H
+ OR A
+ JR NZ,L6553 ; (+03dH)
+ LD A,000H
+ OR A
+ JR NZ,L6553 ; (+038H)
+ LD A,000H
+ OR A
+ JR NZ,L6548 ; (+028H)
+ LD A,(06549H)
+ RLCA
+ JR NC,L6553 ; (+02dH)
+ LD A,(DE)
+ CP 020H
+ LD H,02DH
+ JR Z,L6532 ; (+005H)
+ CP 030H
+ JP NZ,04AEFH
+L6532: PUSH DE
+L6533: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L6533 ; (-006H)
+ CP 030H
+ JR Z,L6533 ; (-00aH)
+ OR A
+ JR NZ,L6541 ; (+001H)
+ DEC DE
+L6541: DEC DE
+ DEC DE
+ LD A,H
+ LD (DE),A
+ POP DE
+ JR L6553 ; (+00bH)
+
+L6548: LD A,000H
+ RLCA
+ LD H,02BH
+ JR NC,L6532 ; (-01dH)
+ LD H,02DH
+ JR L6532 ; (-021H)
+
+L6553: DB 03EH
+L6554: NOP
+ OR A
+ JR Z,L656B ; (+013H)
+ LD A,(DE)
+ CP 020H
+ JR NZ,L656B ; (+00eH)
+ PUSH DE
+L655E: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L655E ; (-006H)
+ DEC DE
+ DEC DE
+ LD A,(L6554)
+ LD (DE),A
+ POP DE
+L656B: LD A,000H
+ OR A
+ JR Z,L657D ; (+00dH)
+ PUSH DE
+L6571: LD A,(DE)
+ CP 020H
+ JR NZ,L657C ; (+006H)
+ LD A,02AH
+ LD (DE),A
+ INC DE
+ JR L6571 ; (-00bH)
+
+L657C: POP DE
+L657D: LD A,(DE)
+ OR A
+ JR Z,L6586 ; (+005H)
+ LD (BC),A
+ INC BC
+ INC DE
+ JR L657D ; (-009H)
+
+L6586: LD A,(06517H)
+ OR A
+ JR Z,L659A ; (+00eH)
+ LD A,(06549H)
+ RLCA
+ LD A,02BH
+L6592: JR NC,L6596 ; (+002H)
+ LD A,02DH
+L6596: LD (BC),A
+ INC BC
+ JR L65A8 ; (+00eH)
+
+L659A: LD A,(06512H)
+ OR A
+ JR Z,L65A8 ; (+008H)
+ LD A,(06549H)
+ RLCA
+ LD A,020H
+ JR L6592 ; (-016H)
+
+L65A8: POP HL
+ JP L6344
+
+L65AC: PUSH HL
+ LD HL,L0036
+ BIT 6,(HL)
+ POP HL
+ JR NZ,L65B8 ; (+003H)
+ CP 07DH
+ RET
+
+L65B8: CP FDPD
+ RET Z
+ CP 024H
+ RET
+
+L65BE: OR A
+ JP Z,L6649
+ PUSH DE
+ LD A,(HL)
+ OR A
+ JR Z,L6606 ; (+03fH)
+ PUSH HL
+ LD A,D
+ LD DE,L84D7
+ PUSH AF
+ CALL L5E90
+ POP AF
+ OR A
+ JR Z,L65DF ; (+00bH)
+ LD B,A
+ LD HL,L84D7
+ JR L65DD ; (+003H)
+
+L65DA: CALL L60AA
+L65DD: DJNZ L65DA ; (-005H)
+L65DF: POP HL
+ LD B,000H
+L65E2: LD DE,L84D7
+ CALL L6049
+ JR C,L65F0 ; (+006H)
+ CALL L5FFE
+ INC B
+ JR L65E2 ; (-00eH)
+
+L65F0: PUSH HL
+ LD HL,L84D7
+ CALL L5FFE
+ POP HL
+L65F8: LD DE,L84D7
+ CALL L6049
+ JR NC,L6606 ; (+006H)
+ CALL L60AA
+ DEC B
+ JR L65F8 ; (-00eH)
+
+L6606: POP DE
+ PUSH BC
+ CALL L6663
+ POP BC
+ PUSH DE
+ LD A,(DE)
+ CP 02EH
+ JR NZ,L6624 ; (+012H)
+ LD DE,L84AC
+ DEC DE
+ LD A,(DE)
+ CP 031H
+ POP DE
+ PUSH DE
+ JR NZ,L6640 ; (+023H)
+ EX DE,HL
+ INC HL
+ LD (HL),031H
+ DEC HL
+ JR L663E ; (+01aH)
+
+L6624: LD A,(DE)
+ CP 031H
+ JR NZ,L6640 ; (+017H)
+ EX DE,HL
+ INC HL
+ LD A,(HL)
+ DEC HL
+ CP 02EH
+ LD A,030H
+ JR Z,L6635 ; (+002H)
+ LD A,020H
+L6635: LD (HL),A
+L6636: INC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L6636 ; (-006H)
+ LD (HL),031H
+L663E: EX DE,HL
+ INC B
+L6640: LD A,(DE)
+ INC DE
+ OR A
+ JR NZ,L6640 ; (-005H)
+ DEC DE
+ JP L615C
+
+L6649: PUSH DE
+ CALL L6663
+ POP AF
+ OR A
+ RET NZ
+ PUSH HL
+ LD HL,L84AC
+ DEC HL
+ LD A,030H
+ CP (HL)
+L6658: JP NZ,04AEFH
+ DEC HL
+ LD A,020H
+ CP (HL)
+ JR NZ,L6658 ; (-009H)
+ POP HL
+ RET
+
+L6663: PUSH DE
+ CALL L61AD
+ JP C,04AEFH
+ POP HL
+ PUSH HL
+ LD H,000H
+ INC L
+ JR Z,L6672 ; (+001H)
+ DEC L
+L6672: LD DE,L84AD
+ ADD HL,DE
+ LD A,(HL)
+ LD (HL),000H
+ LD DE,L3036
+ CP 035H
+ JR C,L668F ; (+00fH)
+L6680: DEC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L6680 ; (-006H)
+ INC A
+ JP Z,04AEFH
+ LD (HL),A
+ CP 03AH
+ JR Z,0667AH ; (-015H)
+L668F: LD HL,L11A3
+ LD DE,L2000
+L6695: LD (HL),D
+ INC HL
+ DEC E
+ JR NZ,L6695 ; (-005H)
+ POP HL
+ PUSH HL
+ LD E,H
+ LD D,000H
+ LD HL,L11A4
+ ADD HL,DE
+ PUSH HL
+ LD HL,L84A3
+ LD (HL),020H
+ INC HL
+ LD D,007H
+L66AC: LD A,(HL)
+ CP 030H
+ JR NZ,L66B7 ; (+006H)
+ LD (HL),020H
+ INC HL
+ DEC D
+ JR NZ,L66AC ; (-00bH)
+L66B7: POP HL
+ PUSH HL
+ LD B,E
+ LD A,B
+ OR A
+ JR Z,L66D5 ; (+017H)
+ LD DE,L84AC
+L66C1: DEC HL
+ DEC DE
+ LD A,(DE)
+ LD (HL),A
+ CP 020H
+ JR Z,L66D5 ; (+00cH)
+ DJNZ L66C1 ; (-00aH)
+ DEC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L66D5 ; (+004H)
+ INC A
+ JP NZ,04AEFH
+L66D5: POP HL
+ POP DE
+ INC E
+ JR Z,L66E9 ; (+00fH)
+ LD B,E
+ LD DE,L84AD
+ LD (HL),02EH
+L66E0: INC HL
+ DEC B
+ JR Z,L66E9 ; (+005H)
+ LD A,(DE)
+ INC DE
+ LD (HL),A
+ JR L66E0 ; (-009H)
+
+L66E9: LD (HL),000H
+ LD DE,L11A4
+ RET
+
+L66EF: PUSH DE
+ PUSH BC
+ LD C,000H
+ DEC DE
+L66F4: INC DE
+L66F5: CALL L687B
+ OR A
+ JR Z,L672C ; (+031H)
+ CP 0FFH
+ JR Z,L6730 ; (+031H)
+ CP 060H
+ JP NC,L4AEC
+ CP 020H
+ JR C,L66F4 ; (-014H)
+ LD IX,L66F5
+ PUSH IX
+ CP 022H
+ JR Z,L674B ; (+039H)
+ CP 027H
+ JR Z,L673E ; (+028H)
+ CP 03FH
+ JR Z,L6737 ; (+01dH)
+ CP 02EH
+ JP Z,L689E
+ CP 024H
+ JP Z,L68B8
+ CALL L5EC4
+ JR C,L6773 ; (+04aH)
+ JP L6885
+
+L672C: LD (HL),A
+ POP BC
+ POP DE
+ RET
+
+L6730: LD (HL),LSE4
+ CALL L6757
+ JR L66F5 ; (-042H)
+
+L6737: LD A,08FH
+ CALL L6756
+ JR L67B4 ; (+076H)
+
+L673E: LD (HL),03AH
+ CALL L6757
+ LD (HL),027H
+ CALL L6758
+ JP L681B
+
+L674B: LD (HL),A
+ CALL L6757
+L674F: LD A,(DE)
+ OR A
+ RET Z
+ CP 022H
+ JR NZ,L674B ; (-00bH)
+L6756: LD (HL),A
+L6757: INC DE
+L6758: INC HL
+L6759: INC C
+ RET NZ
+ JP 04B01H
+
+L675E: POP BC
+ LD A,(DE)
+ CALL L5ECB
+ JR C,L6756 ; (-00fH)
+L6765: CALL L6756
+ LD A,(DE)
+ CP 024H
+ JR Z,L6756 ; (-017H)
+ CALL L5EC4
+ RET C
+ JR L6765 ; (-00eH)
+
+L6773: PUSH BC
+ LD BC,STMTWORDTBL
+ CALL L682A
+ JR NC,L67AA ; (+02eH)
+ LD BC,EXTWORDTBL
+ CALL L682A
+ LD C,0FEH
+ JR NC,L6790 ; (+00aH)
+ LD BC,FUNCWORDTBL
+ CALL L682A
+ LD C,0FFH
+ JR C,L675E ; (-032H)
+L6790: LD (HL),C
+ INC HL
+ LD (HL),A
+ POP BC
+ CALL L6759
+ CALL L6758
+ CP 0B4H
+ RET NZ
+ CALL L687B
+ CP 03DH
+ RET NZ
+ LD (HL),QDPC
+ CALL L6757
+ JR L67F0 ; (+046H)
+
+L67AA: POP BC
+ CP 0DFH
+ DB 020H
+ LD (BC),A
+ LD (HL),0A8H
+ CALL L6758
+L67B4: CP 097H
+ JR Z,L681B ; (+063H)
+ CP 094H
+ JR Z,L681B ; (+05fH)
+ CP 0C2H
+ JR Z,L6811 ; (+051H)
+ CP LSE2
+ JR Z,L67F0 ; (+02cH)
+ CP LSE0
+ RET NC
+ PUSH AF
+ CALL L687B
+ CP 02FH
+ JR NZ,L67DC ; (+00dH)
+ LD (HL),FDPD
+ CALL L6757
+ CALL L6A1D
+ CALL L6756
+ JR L67EC ; (+010H)
+
+L67DC: CP 023H
+ JR NZ,L67EC ; (+00cH)
+ CALL L6756
+ CALL L6A1D
+ CALL L5EC4
+ CALL NC,L6885
+L67EC: POP AF
+ CP 08DH
+ RET NC
+L67F0: CALL L687B
+ CP 022H
+ JR NZ,L67FC ; (+005H)
+ CALL L674B
+ JR L67F0 ; (-00cH)
+
+L67FC: CP 02CH
+ RET C
+ CP 02FH
+ JR C,L680C ; (+009H)
+ CALL L5EC4
+ RET C
+ CALL L68AF
+ JR L67F0 ; (-01cH)
+
+L680C: CALL L6756
+ JR L67F0 ; (-021H)
+
+L6811: DB 02BH
+ LD (HL),03AH
+ INC HL
+ LD (HL),A
+ CALL L6758
+ JR L67F0 ; (-02bH)
+
+L681B: LD A,(DE)
+ CALL L4141
+ RET Z
+ CALL L6756
+ CP 022H
+ CALL Z,L674F
+ JR L681B ; (-00fH)
+
+L682A: PUSH HL
+ PUSH DE
+ LD H,B
+ LD L,C
+ LD B,07FH
+L6830: POP DE
+ PUSH DE
+ INC B
+ LD A,(HL)
+ CP 0FFH
+ JR NZ,L683C ; (+004H)
+ POP DE
+ POP HL
+ SCF
+ RET
+
+L683C: CP 02EH
+ JR NZ,L6849 ; (+009H)
+ INC HL
+ DEC DE
+ LD A,(DE)
+ INC DE
+ CALL L5ECB
+ JR NC,L6868 ; (+01fH)
+L6849: LD A,(DE)
+ CP 020H
+ JR NZ,L685A ; (+00cH)
+ LD A,(HL)
+ AND 07FH
+ SUB 041H
+ CP 01AH
+ JR C,L6868 ; (+011H)
+ CALL L6A1C
+L685A: LD C,(HL)
+ INC HL
+ INC DE
+ CP 02EH
+ JR Z,L6870 ; (+00fH)
+ SUB C
+ JR Z,L6849 ; (-01bH)
+ CP 080H
+ JR Z,L6876 ; (+00eH)
+L6868: DEC HL
+L6869: BIT 7,(HL)
+ INC HL
+ JR Z,L6869 ; (-005H)
+ JR L6830 ; (-040H)
+
+L6870: LD A,B
+ CP 0E8H
+ JR NC,L6868 ; (-00dH)
+ CCF
+L6876: POP HL
+ POP HL
+ LD (HL),B
+ LD A,B
+ RET
+
+L687B: LD A,(DE)
+ CP 020H
+ RET NZ
+ LD (HL),A
+ CALL L6757
+ JR L687B ; (-00aH)
+
+L6885: EX AF,AF'
+ PUSH DE
+ CALL L6A1C
+ POP DE
+ CALL L5EC4
+ JR NC,L689E ; (+00eH)
+ CP 02EH
+ JR Z,L689E ; (+00aH)
+ CP 045H
+ JR Z,L689E ; (+006H)
+ EX AF,AF'
+ SUB 02FH
+ JP L689E
+
+L689E: PUSH BC
+ LD (HL),015H
+ INC HL
+ PUSH HL
+ CALL L5EDC
+ POP HL
+ LD BC,00005H
+ ADD HL,BC
+ LD A,006H
+ JR L68D2 ; (+023H)
+
+L68AF: PUSH BC
+ CALL L6A11
+ LD (HL),00BH
+ INC HL
+ JR L68CC ; (+014H)
+
+L68B8: LD (HL),A
+ INC DE
+ LD A,(DE)
+ RST 018H
+ DB 015H
+ JP C,L6758
+ PUSH BC
+ LD (HL),011H
+ INC HL
+ PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 014H
+ LD B,D
+ LD C,E
+ EX DE,HL
+ POP HL
+L68CC: LD A,003H
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+L68D2: POP BC
+ ADD A,C
+ JP C,04B01H
+ LD C,A
+L68D8: DEC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L68D8 ; (-006H)
+ INC DE
+ RET
+
+L68E0: PUSH HL
+ PUSH DE
+ PUSH BC
+ EXX
+ LD B,000H
+ EXX
+ LD C,000H
+L68E9: LD A,(HL)
+ OR A
+ JR Z,L691D ; (+030H)
+ LD BC,L68E9
+ PUSH BC
+ CP 027H
+ JR Z,L6937 ; (+042H)
+ INC HL
+ LD BC,STMTWORDTBL
+ CP 020H
+ JR C,L695F ; (+062H)
+ CP 022H
+ JR Z,L6948 ; (+047H)
+ CP 03AH
+ JR Z,L6955 ; (+050H)
+ CP 097H
+ JR Z,L6933 ; (+02aH)
+ CP 094H
+ JR Z,L6933 ; (+026H)
+ CP LSE4
+ JR Z,L6922 ; (+011H)
+ CP 0FEH
+ JR NC,L6927 ; (+012H)
+ CP 080H
+ JP NC,L69A3
+ JP L69C0
+
+L691D: LD (DE),A
+ POP BC
+ POP DE
+ POP HL
+ RET
+
+L6922: LD A,0FFH
+ JP L69C0
+
+L6927: LD BC,FUNCWORDTBL
+ JR NZ,L692F ; (+003H)
+ LD BC,EXTWORDTBL
+L692F: LD A,(HL)
+ INC HL
+ JR L69A3 ; (+070H)
+
+L6933: CALL L69A3
+ RET Z
+L6937: LD A,(HL)
+ CALL L4141
+ RET Z
+ CALL L69C0
+ LD A,(HL)
+ INC HL
+ CP 022H
+ CALL Z,L694B
+ JR L6937 ; (-011H)
+
+L6948: CALL L69C0
+L694B: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ JR NZ,L6948 ; (-00bH)
+ JR L69C0 ; (+06bH)
+
+L6955: LD (DE),A
+ LD A,(HL)
+ CP 0C2H
+ RET Z
+ CP 027H
+ RET Z
+ JR L69C3 ; (+064H)
+
+L695F: CP 015H
+ JR Z,L6993 ; (+030H)
+ CP 00BH
+ JR NC,L696C ; (+005H)
+ DEC A
+ OR 030H
+ JR L69C0 ; (+054H)
+
+L696C: PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ PUSH HL
+ CP 012H
+ JR Z,L6982 ; (+00cH)
+ CP 00CH
+ JR C,L6982 ; (+008H)
+ JR NZ,L69CF ; (+053H)
+ EX DE,HL
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L6982: EX DE,HL
+ CALL L5E66
+ LD B,D
+ LD C,E
+ POP HL
+ POP DE
+L698A: LD A,(BC)
+ OR A
+ RET Z
+ CALL L69C0
+ INC BC
+ JR L698A ; (-009H)
+
+L6993: PUSH HL
+ PUSH DE
+ CALL L621B
+ LD B,D
+ LD C,E
+ POP DE
+ POP HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ JR L698A ; (-019H)
+
+L69A3: CP 080H
+ JR Z,L69B1 ; (+00aH)
+ EX AF,AF'
+L69A8: LD A,(BC)
+ RLCA
+ INC BC
+ JR NC,L69A8 ; (-005H)
+ EX AF,AF'
+ DEC A
+ JR L69A3 ; (-00eH)
+
+L69B1: LD A,(BC)
+ BIT 7,A
+ JR NZ,L69BE ; (+008H)
+ CP 02EH
+ CALL NZ,L69C0
+ INC BC
+ JR L69B1 ; (-00dH)
+
+L69BE: AND 07FH
+L69C0: LD (DE),A
+ OR A
+ RET Z
+L69C3: INC DE
+ EXX
+ INC B
+ EXX
+ RET NZ
+ XOR A
+ LD (DE),A
+ DEC DE
+ EXX
+ DEC B
+ EXX
+ RET
+
+L69CF: LD A,024H
+ EX AF,AF'
+ EX DE,HL
+ CALL L69E0
+ LD B,D
+ LD C,E
+ POP HL
+ POP DE
+ EX AF,AF'
+ CALL L69C0
+ JR L698A ; (-056H)
+
+L69E0: LD DE,L84A8
+ PUSH DE
+ LD A,H
+ CALL L69F9
+ LD A,L
+ CALL L69F9
+ XOR A
+ LD (DE),A
+ POP DE
+ LD B,003H
+L69F1: LD A,(DE)
+ CP 030H
+ RET NZ
+ INC DE
+ DJNZ L69F1 ; (-007H)
+ RET
+
+L69F9: PUSH AF
+ RRCA
+ RRCA
+ RRCA
+ RRCA
+ AND 00FH
+ CALL L6A06
+ POP AF
+ AND 00FH
+L6A06: ADD A,030H
+ CP 03AH
+ JR C,L6A0E ; (+002H)
+ ADD A,007H
+L6A0E: LD (DE),A
+ INC DE
+ RET
+
+L6A11: PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 013H
+ LD B,D
+ LD C,E
+ EX DE,HL
+ POP HL
+ JP L68D8
+
+L6A1C: INC DE
+L6A1D: LD A,(DE)
+ CP 020H
+ JR Z,L6A1C ; (-006H)
+ RET
+
+L6A23: LD C,(HL)
+L6A24: CALL L6A2C
+ XOR A
+ LD (L1095),A
+ RET
+
+L6A2C: LD A,(L004D)
+ OR A
+ JP NZ,L4B3C
+ CALL TEST1
+ DB 047H
+ JR Z,L6A7C ; (+043H)
+ CALL TESTX
+ DB 054H
+ LD A,001H
+ LD (L1097),A
+ CALL TEST1
+ DB 04EH
+ JR Z,L6A52 ; (+00aH)
+ CALL TEST1
+ DB 04CH
+ JR Z,L6A52 ; (+004H)
+ CALL TESTX
+ DB 053H
+L6A52: LD (L6A23),A
+ CALL 05E48H
+ CALL L6A74
+L6A5B: LD A,001H
+ RST 018H
+ DB 006H
+ LD A,(L6A23)
+ CP 04EH
+ RET Z
+ CP 04CH
+ LD A,00BH
+ JR Z,L6A71 ; (+006H)
+ LD A,009H
+ RST 018H
+ DB 006H
+ RST 018H
+ DB 006H
+L6A71: RST 018H
+ DB 006H
+ RET
+
+L6A74: LD A,00AH
+ RST 018H
+ DB 006H
+ LD A,003H
+ JR L6A71 ; (-00bH)
+
+L6A7C: INC HL
+ CALL 05E48H
+ LD A,002H
+ LD (L1097),A
+ JR L6A71 ; (-016H)
+
+L6A87: CALL L6AC6
+ CALL L6E5F
+ LD A,E
+ OR A
+ RET Z
+ CP 0ECH
+ JR NC,L6A99 ; (+005H)
+ CP 015H
+ JP NC,04AF2H
+L6A99: CALL 05E48H
+ BIT 7,E
+ JR NZ,L6AA8 ; (+008H)
+L6AA0: LD A,00AH
+ RST 018H
+ DB 006H
+ DEC E
+ JR NZ,L6AA0 ; (-007H)
+ RET
+
+L6AA8: LD A,003H
+ RST 018H
+ DB 006H
+ INC E
+ JR NZ,L6AA8 ; (-007H)
+ RET
+
+L6AB0: PUSH HL
+ LD HL,L03E7
+ JR L6ABA ; (+004H)
+
+L6AB6: PUSH HL
+ LD HL,L01E0
+L6ABA: PUSH HL
+ ADD HL,DE
+ POP HL
+ JR C,L6AC4 ; (+005H)
+ SBC HL,DE
+ JP C,04AF2H
+L6AC4: POP HL
+ RET
+
+L6AC6: LD B,001H
+ JR L6ACC ; (+002H)
+
+L6ACA: LD B,002H
+L6ACC: LD A,(L1097)
+ CP B
+ RET Z
+ JP L4B3C
+
+L6AD4: LD C,044H
+ LD DE,04A0EH
+ LD DE,04D0EH
+ LD DE,0520EH
+ CALL L6ACA
+ LD A,C
+ LD (06B26H),A
+ CP 04DH
+ JR NC,L6B0C ; (+022H)
+ CALL TEST1
+ DB 025H
+ JR NZ,L6B0C ; (+01cH)
+ CALL L6E4B
+ LD A,E
+ DEC A
+ CP 010H
+ JP NC,04AF2H
+ DEC DE
+ LD A,04CH
+ RST 018H
+ DB 006H
+ CALL L6DE2
+ CALL L6B68
+ CALL L413E
+ RET Z
+ CALL L5E73
+L6B0C: CALL L6E5F
+ CALL L5E73
+ CALL L6AB6
+ PUSH DE
+ CALL L6E5F
+ CP 02CH
+ JR Z,L6B20 ; (+003H)
+ CALL 05E48H
+L6B20: CALL L6AB0
+ POP BC
+ PUSH DE
+ LD A,000H
+ RST 018H
+ DB 006H
+ LD E,C
+ LD D,B
+ CALL L6DE2
+ CALL L6B6C
+ POP DE
+ CALL L6DE2
+ CALL L6B68
+ CALL L413E
+ RET Z
+ INC HL
+ JR L6B0C ; (-033H)
+
+L6B3F: CALL L6E4B
+ LD A,E
+ CP 004H
+ JP NC,04AF2H
+ CALL 05E48H
+ LD A,(L1097)
+ CP 002H
+ JR Z,L6B5F ; (+00dH)
+ CALL L6A74
+ LD A,002H
+ RST 018H
+ DB 006H
+ CALL L6B5F
+ JP L6A5B
+
+L6B5F: LD A,043H
+ RST 018H
+ DB 006H
+ LD A,E
+ OR 030H
+ RST 018H
+ DB 006H
+L6B68: LD A,00DH
+ JR L6B6E ; (+002H)
+
+L6B6C: LD A,02CH
+L6B6E: RST 018H
+ DB 006H
+ RET
+
+L6B71: CALL L6ACA
+ CALL 05E48H
+ LD A,048H
+ JR L6B6E ; (-00dH)
+
+L6B7B: CALL L6ACA
+ CALL 05E48H
+ LD A,049H
+ JR L6B6E ; (-017H)
+
+L6B85: CALL L6ACA
+ CALL TEST1
+ DB 05BH
+ JR NZ,L6BC6 ; (+038H)
+ CALL L6E4B
+ CP 040H
+ JP NC,04AF2H
+ PUSH DE
+ CALL L5E70
+ CALL L6E4B
+ CP 004H
+ JP NC,04AF2H
+ PUSH DE
+ CALL TESTX
+ DB 05DH
+ POP BC
+ POP DE
+ PUSH BC
+ LD A,053H
+ RST 018H
+ DB 006H
+ CALL L6DE2
+ CALL L6B6C
+ POP DE
+ LD A,051H
+ RST 018H
+ DB 006H
+ CALL L6DE2
+ CALL L6B68
+ CALL L413E
+ RET Z
+ CALL L5E73
+L6BC6: CALL L6E6F
+ CALL L413E
+ JR Z,L6BD2 ; (+004H)
+ CALL L5E73
+ DEC HL
+L6BD2: LD A,B
+ OR A
+ JR Z,L6BE3 ; (+00dH)
+ LD A,050H
+ RST 018H
+ DB 006H
+L6BDA: LD A,(DE)
+ RST 018H
+ DB 006H
+ INC DE
+ DJNZ L6BDA ; (-006H)
+ CALL L6B68
+L6BE3: CALL L413E
+ RET Z
+ INC HL
+ JR L6BC6 ; (-024H)
+
+L6BEA: CALL L6ACA
+ CALL L6E4B
+ CP 002H
+ JP NC,04AF2H
+ PUSH AF
+ CALL L5E70
+ CALL L6E5F
+ PUSH DE
+ CALL L5E73
+ CALL L6E4B
+ OR A
+ JP Z,04AF2H
+ CALL 05E48H
+ LD A,058H
+ RST 018H
+ DB 006H
+ POP BC
+ POP AF
+ PUSH DE
+ PUSH BC
+ OR 030H
+ RST 018H
+ DB 006H
+ CALL L6B6C
+ POP DE
+ CALL L6AB0
+ CALL L6DE2
+ CALL L6B6C
+ POP DE
+ CALL L6DE2
+ JP L6B68
+
+L6C2A: CALL L6ACA
+ PUSH HL
+ LD DE,L0000
+ LD HL,L6DC4
+ CALL L5E99
+ LD DE,L0168
+ LD HL,L6DC9
+ CALL L5E99
+ LD HL,L610D
+ LD DE,L6DCE
+ CALL L5E93
+ POP HL
+ CALL L6E8A
+ CALL L5E73
+ PUSH HL
+ LD HL,L6DB5
+ EX DE,HL
+ CALL L5E93
+ POP HL
+ CALL L6E8A
+ CALL L5E73
+ PUSH HL
+ LD HL,L6DBA
+ EX DE,HL
+ CALL L5E93
+ POP HL
+ CALL L6E8A
+ PUSH HL
+ PUSH AF
+ LD HL,L6DBF
+ EX DE,HL
+ CALL L5E93
+ LD A,(06DC0H)
+ RLCA
+ JP C,04AF2H
+ POP AF
+ CP 02CH
+ JR NZ,L6CBA ; (+03aH)
+ POP HL
+ INC HL
+ CALL L6E8A
+ PUSH HL
+ PUSH AF
+ LD HL,L6DC4
+ EX DE,HL
+ CALL L5E93
+ POP AF
+ CP 02CH
+ JR NZ,L6CBA ; (+027H)
+ POP HL
+ INC HL
+ CALL L6E8A
+ PUSH HL
+ PUSH AF
+ LD HL,L6DC9
+ EX DE,HL
+ CALL L5E93
+ POP AF
+ CP 02CH
+ JR NZ,L6CBA ; (+014H)
+ POP HL
+ INC HL
+ CALL L6E8A
+ PUSH HL
+ LD HL,L6DCE
+ EX DE,HL
+ CALL L5E93
+ LD A,(06DCFH)
+ RLCA
+ JP C,04AF2H
+L6CBA: POP HL
+ CALL 05E48H
+ PUSH HL
+ LD HL,L6DC9
+ LD DE,L6DC4
+ LD A,(L6DCE)
+ OR A
+ CALL NZ,L7A1C
+ JP C,04AF2H
+ CALL L6D6B
+ LD HL,L6DD3
+ LD (06D43H),HL
+ LD HL,L6DD8
+ LD (06D4EH),HL
+ CALL 06D3FH
+ LD A,(L6DCE)
+ OR A
+ JR Z,L6D19 ; (+032H)
+L6CE7: LD HL,L6DC4
+ LD DE,L6DCE
+ CALL L7985
+ LD DE,L6DC9
+ CALL L7A1C
+ JR NC,L6D04 ; (+00cH)
+ CALL L6D6B
+ CALL L6D3C
+ RST 018H
+ DB 00EH
+ JR NZ,L6CE7 ; (-01bH)
+ POP HL
+ RET
+
+L6D04: CALL L6D0C
+ CALL L6D3C
+ POP HL
+ RET
+
+L6D0C: LD HL,L6DC9
+ LD DE,L6DC4
+ LD BC,00005H
+ LDIR
+ JR L6D6B ; (+052H)
+
+L6D19: LD HL,L6DB5
+ LD (06D43H),HL
+ LD HL,L6DBA
+ LD (06D4EH),HL
+ CALL L6D3C
+ CALL L6D0C
+ LD HL,L6DD3
+ LD (06D43H),HL
+ LD HL,L6DD8
+ LD (06D4EH),HL
+ CALL L6D3C
+ POP HL
+ RET
+
+L6D3C: LD A,044H
+ LD HL,L4D3E
+ PUSH AF
+ LD HL,L6DB5
+ CALL L60B7
+ PUSH HL
+ EX DE,HL
+ CALL L6AB0
+ LD HL,L6DBA
+ CALL L60B7
+ PUSH HL
+ EX DE,HL
+ CALL L6AB0
+ POP HL
+ POP DE
+ POP AF
+ RST 018H
+ DB 006H
+ PUSH HL
+ CALL L6DE2
+ CALL L6B6C
+ POP DE
+ CALL L6DE2
+ JP L6B68
+
+L6D6B: LD DE,(INTFAC)
+ LD HL,L6DC4
+ CALL L5E93
+ LD HL,(L107C)
+ CALL L817C
+ CALL L7FC2
+ LD DE,L6DBF
+ CALL L7BB3
+ LD DE,L6DB5
+ CALL L7985
+ LD DE,L6DD3
+ CALL L5E93
+ LD DE,(INTFAC)
+ LD HL,L6DC4
+ CALL L5E93
+ LD HL,(L107C)
+ CALL L817C
+ CALL L7FD2
+ LD DE,L6DBF
+ CALL L7BB3
+ LD DE,L6DBA
+ CALL L7985
+ LD DE,L6DD8
+ JP L5E93
+
+L6DB5: DS 5, 000H
+L6DBA: DS 5, 000H
+L6DBF: DS 5, 000H
+L6DC4: DS 5, 000H
+L6DC9: DS 5, 000H
+L6DCE: DS 5, 000H
+L6DD3: DS 5, 000H
+L6DD8: DS 10, 000H
+L6DE2: PUSH AF
+ PUSH HL
+ LD HL,(L107C)
+ CALL L5E99
+ CALL L6028
+ RST 018H
+ DB 017H
+L6DEF: LD A,(DE)
+ RST 018H
+ DB 006H
+ INC DE
+ DJNZ L6DEF ; (-006H)
+ POP HL
+ POP AF
+ RET
+
+L6DF8: CALL L6AC6
+ CALL 05E48H
+ LD A,004H
+ RST 018H
+ DB 006H
+ RET
+
+L6E03: CALL L6AC6
+ CALL L6E5F
+ LD A,E
+ OR A
+ JP Z,04AF2H
+ CP 049H
+ JP NC,04AF2H
+ CALL 05E48H
+ LD A,009H
+ RST 018H
+ DB 006H
+ RST 018H
+ DB 006H
+ CALL L6DE2
+ JP L6B68
+
+L6E22: CP 09DH
+ JR Z,L6E31 ; (+00bH)
+ CP 0A1H
+ JP NZ,L4AEC
+ XOR A
+L6E2C: LD (L004D),A
+ INC HL
+ RET
+
+L6E31: CALL L6AC6
+ LD A,(L6A23)
+ CP 04EH
+ JP NZ,L4B3C
+ LD A,(L004D)
+ OR A
+ JR NZ,L6E2C ; (-016H)
+ CALL L5285
+ LD A,016H
+ RST 018H
+ DB 003H
+ JR L6E2C ; (-01fH)
+
+L6E4B: CALL L6E5F
+L6E4E: LD A,D
+ OR A
+ JP NZ,04AF2H
+ LD A,E
+ RET
+
+L6E55: CALL L6E9C
+ DEC DE
+ DEC DE
+ DEC DE
+ DEC DE
+ DEC DE
+ JR L6E62 ; (+003H)
+
+L6E5F: CALL L6E8A
+L6E62: PUSH AF
+ PUSH HL
+ EX DE,HL
+ CALL L791F
+ CALL L60B7
+ EX DE,HL
+ POP HL
+ POP AF
+ RET
+
+L6E6F: CALL L6E8A
+ PUSH AF
+ CALL L7916
+ PUSH HL
+ EX DE,HL
+ CALL L6E7E
+ POP HL
+ POP AF
+ RET
+
+L6E7E: LD B,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ EX DE,HL
+ LD A,B
+ RET
+
+L6E8A: LD DE,(VARED)
+ LD (TMPEND),DE
+L6E92: LD DE,(INTFAC)
+ PUSH DE
+ CALL L6E9C
+ POP DE
+ RET
+
+L6E9C: PUSH DE
+ LD DE,(TMPEND)
+ CALL L74E8
+ POP DE
+ CALL L6EC0
+L6EA8: CP 0EAH
+ RET NZ
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L6EC0
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL 07E65H
+ POP HL
+ POP AF
+ JR L6EA8 ; (-018H)
+
+L6EC0: CALL L6EDB
+L6EC3: CP 0EBH
+ RET NZ
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L6EDB
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL 07E62H
+ POP HL
+ POP AF
+ JR L6EC3 ; (-018H)
+
+L6EDB: CALL L6EF6
+L6EDE: CP 0ECH
+ RET NZ
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L6EF6
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7E5F
+ POP HL
+ POP AF
+ JR L6EDE ; (-018H)
+
+L6EF6: CALL TEST1
+ DB 0EDH
+ JR NZ,L6F0B ; (+00fH)
+ CALL L6F0B
+ PUSH AF
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L7E4F
+ POP HL
+ POP AF
+ RET
+
+L6F0B: CALL L6F75
+L6F0E: CP 0EEH
+ RET C
+ PUSH AF
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L6F75
+ POP BC
+ EX (SP),HL
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7A1C
+ EX AF,AF'
+ POP AF
+ CP 0F6H
+ JR NZ,L6F48 ; (+01eH)
+ EX AF,AF'
+ JR C,L6F43 ; (+016H)
+L6F2D: LD BC,L0000
+L6F30: LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ XOR A
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ LD A,005H
+ LD (L84CE),A
+ POP AF
+ POP HL
+ JR L6F0E ; (-035H)
+
+L6F43: LD BC,08081H
+ JR L6F30 ; (-018H)
+
+L6F48: CP QDPD
+ JR NZ,L6F53 ; (+007H)
+ EX AF,AF'
+ JR Z,L6F2D ; (-022H)
+ JR C,L6F2D ; (-024H)
+ JR L6F43 ; (-010H)
+
+L6F53: CP QDPC
+ JR NZ,L6F5C ; (+005H)
+ EX AF,AF'
+ JR Z,L6F43 ; (-017H)
+ JR L6F2D ; (-02fH)
+
+L6F5C: CP QDPA
+ JR C,L6F65 ; (+005H)
+ EX AF,AF'
+ JR NC,L6F43 ; (-020H)
+ JR L6F2D ; (-038H)
+
+L6F65: CP 0F0H
+ JR C,L6F70 ; (+007H)
+ EX AF,AF'
+ JR Z,L6F43 ; (-029H)
+ JR C,L6F43 ; (-02bH)
+ JR L6F2D ; (-043H)
+
+L6F70: EX AF,AF'
+ JR Z,L6F2D ; (-046H)
+ JR L6F43 ; (-032H)
+
+L6F75: CALL L6FA0
+L6F78: CP 0F7H
+ RET C
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ JR Z,L6F92 ; (+010H)
+ CALL L6FA0
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L797C
+L6F8E: POP HL
+ POP AF
+ JR L6F78 ; (-01aH)
+
+L6F92: CALL L6FA0
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7985
+ JR L6F8E ; (-012H)
+
+L6FA0: CALL L6FCB
+L6FA3: CP FDPB
+ RET C
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ JR Z,L6FBD ; (+010H)
+ CALL L6FCB
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7EBB
+L6FB9: POP HL
+ POP AF
+ JR L6FA3 ; (-01aH)
+
+L6FBD: CALL L6FCB
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7EDA
+ JR L6FB9 ; (-012H)
+
+L6FCB: CALL L6FF6
+L6FCE: CP FDPD
+ RET C
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ JR Z,L6FE8 ; (+010H)
+ CALL L6FF6
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7BB3
+L6FE4: POP HL
+ POP AF
+ JR L6FCE ; (-01aH)
+
+L6FE8: CALL L6FF6
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7C9E
+ JR L6FE4 ; (-012H)
+
+L6FF6: CALL TEST1
+ DB 0F7H
+ JR Z,L6FF6 ; (-006H)
+ CP FDPA
+ JR NZ,L7006 ; (+006H)
+ INC HL
+ CALL L7006
+ JR L702F ; (+029H)
+
+L7006: CALL L703B
+L7009: CP 0FDH
+ RET NZ
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L7021
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7DD3
+ POP HL
+ POP AF
+ JR L7009 ; (-018H)
+
+L7021: CALL TEST1
+ DB 0F7H
+ JR Z,L7021 ; (-006H)
+ CP FDPA
+ JR NZ,L703B ; (+010H)
+ INC HL
+ CALL L703B
+L702F: PUSH AF
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L796F
+ POP HL
+ POP AF
+ RET
+
+L703B: CALL L413E
+ JP Z,L4AEC
+ CALL L7047
+ JP HLFTCH
+
+L7047: PUSH HL
+ LD HL,(L107E)
+ SCF
+ SBC HL,DE
+ JP C,04AFBH
+ POP HL
+ CP LSE4
+ JR Z,L7064 ; (+00eH)
+ CP 020H
+ JR NC,L70A4 ; (+04aH)
+L705A: INC HL
+ CP 015H
+ JR C,L7073 ; (+014H)
+ CALL L5E93
+ JR L706D ; (+009H)
+
+L7064: INC HL
+ PUSH HL
+ LD HL,0818FH
+ CALL L5E93
+ POP HL
+L706D: LD A,005H
+L706F: LD (L84CE),A
+ RET
+
+L7073: CP 00BH
+ JR NC,L7080 ; (+009H)
+ DEC A
+ JP M,L4AEC
+ LD B,000H
+ LD C,A
+ JR L7091 ; (+011H)
+
+L7080: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ CP 00CH
+ JR NZ,L7091 ; (+009H)
+ INC BC
+ INC BC
+ LD A,(BC)
+ INC BC
+ EX AF,AF'
+ LD A,(BC)
+ LD B,A
+ EX AF,AF'
+ LD C,A
+L7091: PUSH HL
+ PUSH DE
+ EX DE,HL
+ LD E,C
+ LD D,B
+ CALL L5E99
+ POP DE
+ POP HL
+ LD A,005H
+L709D: INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ JR L706F ; (-035H)
+
+L70A4: CP 022H
+ JR NZ,L70D7 ; (+02fH)
+ INC HL
+ PUSH HL
+ CALL L74D0
+ EX (SP),HL
+ PUSH HL
+ LD HL,(L107A)
+ PUSH BC
+ LD BC,(STRST)
+ OR A
+ SBC HL,BC
+ POP BC
+ EX DE,HL
+ LD (HL),B
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ POP DE
+ PUSH HL
+ LD HL,(L107A)
+ CALL L74DC
+ LD (L107A),HL
+ POP DE
+ POP HL
+ LD A,003H
+ LD (L84CE),A
+ RET
+
+L70D7: CP 028H
+ JR NZ,L70E2 ; (+007H)
+ INC HL
+ CALL L6E9C
+ JP L5E82
+
+L70E2: OR A
+ JP P,L76F5
+ CP 0E7H
+ INC HL
+ JR NZ,L70F0 ; (+005H)
+ LD A,0A8H
+ PUSH AF
+ JR L7125 ; (+035H)
+
+L70F0: CP 0FFH
+ JP NZ,L4AEC
+ LD A,(HL)
+ INC HL
+ CP 0A0H
+ JP Z,L71A5
+ CP 0C8H
+ JP NC,L4AEC
+ CP 0BAH
+ JR NC,L7155 ; (+050H)
+ PUSH AF
+ CP 0B3H
+ JR NC,L7146 ; (+03cH)
+ LD B,003H
+ CP 0AAH
+ JR Z,L7125 ; (+015H)
+ CP 0ABH
+ JR NC,L7125 ; (+011H)
+ LD B,005H
+ CP 088H
+ JR Z,L7140 ; (+026H)
+ CP 089H
+ JR NZ,L7125 ; (+007H)
+ CALL TEST1
+ DB 040H
+ LD (081A8H),A
+L7125: CALL L5E78
+L7128: PUSH BC
+ CALL L6E9C
+ CALL L5E82
+ POP AF
+ CALL L7912
+L7133: POP AF
+ PUSH DE
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L7155
+ POP HL
+ POP DE
+ RET
+
+L7140: CALL TEST1
+ DB 028H
+ JR Z,L7128 ; (-01eH)
+L7146: LD A,005H
+ LD (L84CE),A
+ PUSH HL
+ LD HL,L6112
+ CALL L5E93
+ POP HL
+ JR L7133 ; (-022H)
+
+L7155: PUSH HL
+ ADD A,A
+ LD L,A
+ LD H,000H
+ LD BC,L450A
+ ADD HL,BC
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ EX (SP),HL
+ RET
+
+L7164: EX DE,HL
+ LD HL,0FDF1H
+ ADD HL,SP
+ LD BC,(TMPEND)
+ OR A
+ SBC HL,BC
+ EX DE,HL
+ JR NC,L7186 ; (+013H)
+ XOR A
+ JR L7183 ; (+00dH)
+
+L7176: LD A,(L0054)
+ JR L7183 ; (+008H)
+
+L717B: LD A,(00055H)
+ JR L7183 ; (+003H)
+
+L7180: LD A,(L8485)
+L7183: LD E,A
+ LD D,000H
+L7186: LD A,005H
+ LD (L84CE),A
+ JP L5E99
+
+L718E: LD DE,(08487H)
+ CALL L5E99
+ INC HL
+ BIT 7,(HL)
+ DEC HL
+ RET Z
+ LD DE,L71A0
+ JP L7985
+
+L71A0: SUB C
+ NOP
+ NOP
+ NOP
+ NOP
+L71A5: CALL L5E78
+ LD B,000H
+L71AA: PUSH BC
+ PUSH DE
+ CALL L6E55
+ CALL L6E4E
+ POP DE
+ POP BC
+ PUSH AF
+ INC B
+ CALL TEST1
+ DB 02CH
+ JR Z,L71AA ; (-012H)
+ CALL L5E82
+ LD A,B
+ EXX
+ LD B,A
+ LD HL,(L107A)
+ CALL ADDHLA
+ LD D,H
+ LD E,L
+ CALL L74E8
+L71CD: DEC HL
+ POP AF
+ LD (HL),A
+ DJNZ L71CD ; (-005H)
+ EXX
+ LD A,B
+ EXX
+ LD B,A
+L71D6: LD (TMPEND),DE
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ PUSH HL
+ LD A,B
+ EXX
+ EX DE,HL
+ LD (HL),A
+ INC HL
+ POP BC
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ LD BC,L0003
+ ADD HL,BC
+L71EF: EX DE,HL
+ LD A,003H
+ LD (L84CE),A
+ RET
+
+L71F6: PUSH HL
+ CALL L60B7
+ CALL L69E0
+ RST 018H
+ DB 017H
+L71FF: LD A,B
+ OR A
+ JR Z,L7213 ; (+010H)
+ LD HL,(L107A)
+ PUSH HL
+ PUSH BC
+ CALL L74DC
+ POP BC
+ EX DE,HL
+ POP HL
+ EXX
+ POP DE
+ EXX
+ JR L71D6 ; (-03dH)
+
+L7213: POP HL
+ CALL L7967
+ JR L71EF ; (-02aH)
+
+L7219: PUSH HL
+ CALL L722A
+ LD B,A
+ LD C,A
+ OR A
+ LD A,020H
+ PUSH DE
+ CALL NZ,?SETDE
+ POP DE
+ LD B,C
+ JR L71FF ; (-02bH)
+
+L722A: CALL L60B7
+ LD DE,L11A4
+ LD A,H
+ OR A
+ JP NZ,04AF2H
+ LD A,L
+ RET
+
+L7237: PUSH HL
+ CALL L6028
+ LD A,(DE)
+ CP 020H
+ JR NZ,L7241 ; (+001H)
+ INC DE
+L7241: RST 018H
+ DB 017H
+ JR L71FF ; (-046H)
+
+L7245: CALL L5E78
+ CALL L5882
+ LD B,A
+ CALL L5E7F
+ LD A,B
+ PUSH HL
+ PUSH DE
+ RST 018H
+ DB 029H
+ LD DE,0FFFFH
+ JR C,L7261 ; (+008H)
+ INC HL
+ BIT 7,(HL)
+ JR NZ,L7261 ; (+003H)
+ LD DE,L0000
+L7261: POP HL
+ CALL L5E99
+ LD A,005H
+ LD (L84CE),A
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ POP HL
+ RET
+
+L7272: PUSH HL
+ CALL L6E7E
+ OR A
+ JR Z,L727A ; (+001H)
+ LD A,(DE)
+L727A: JR L7280 ; (+004H)
+
+L727C: PUSH HL
+ CALL L6E7E
+L7280: POP HL
+ JP L7183
+
+L7284: PUSH HL
+ CALL L6E7E
+ LD HL,(L107A)
+ PUSH HL
+ CALL L74DC
+ LD (HL),000H
+ POP DE
+ POP HL
+ JP L5EDC
+
+L7296: CALL L7312
+ CALL L5E82
+ CALL L730B
+ EX DE,HL
+ LD A,(HL)
+ CP C
+ JR NC,L72A5 ; (+001H)
+ LD C,A
+L72A5: LD (HL),C
+ LD BC,00005H
+L72A9: LD A,003H
+ ADD HL,BC
+ EX DE,HL
+ LD (L84CE),A
+ JP HLFTCH
+
+L72B3: CALL L7312
+ CALL L5E82
+ CALL L730B
+ EX DE,HL
+ LD A,(HL)
+ SUB C
+ JR NC,L72C3 ; (+002H)
+ XOR A
+ LD C,(HL)
+L72C3: LD (HL),C
+ INC HL
+ ADD A,(HL)
+ LD (HL),A
+ INC HL
+ JR NC,L72CB ; (+001H)
+ INC (HL)
+L72CB: LD BC,L0003
+ JR L72A9 ; (-027H)
+
+L72D0: CALL L7312
+ CALL L730B
+ OR A
+ JP Z,04AF2H
+ PUSH AF
+ CALL TEST1
+ DB 029H
+ LD A,0FFH
+ JR Z,L72F7 ; (+014H)
+ CALL L5E70
+ PUSH DE
+ EX DE,HL
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ CALL L6E55
+ CALL L5E82
+ CALL L6E4E
+ POP DE
+L72F7: POP BC
+ LD C,A
+ EX DE,HL
+ LD A,(HL)
+ SUB B
+ JR C,L7307 ; (+009H)
+ INC A
+ CP C
+ JR NC,L7303 ; (+001H)
+ LD C,A
+L7303: LD A,B
+ DEC A
+ JR L72C3 ; (-044H)
+
+L7307: XOR A
+ LD C,A
+ JR L72C3 ; (-048H)
+
+L730B: LD A,B
+ OR A
+ JP NZ,04AF2H
+ LD A,C
+ RET
+
+L7312: CALL L5E78
+ PUSH DE
+ CALL L6E9C
+ CALL L5E73
+ CALL L7916
+ CALL L6E55
+ LD C,E
+ LD B,D
+ POP DE
+ RET
+
+L7326: PUSH HL
+ PUSH DE
+ LD HL,(L107A)
+ PUSH HL
+ LD A,030H
+ LD B,006H
+ CALL ?SETHL
+ RST 018H
+ DB 025H
+ POP HL
+ OR A
+ JR Z,L733E ; (+005H)
+ INC (HL)
+ INC HL
+ INC (HL)
+ INC (HL)
+ DEC HL
+L733E: EX DE,HL
+ LD BC,08CA0H
+ CALL L73B5
+ LD BC,L0E10
+ CALL L73B5
+ CP 03AH
+ JR C,L7359 ; (+00aH)
+ SUB 00AH
+ DEC DE
+ LD (DE),A
+ DEC DE
+ LD A,(DE)
+ INC A
+ LD (DE),A
+ INC DE
+ INC DE
+L7359: DEC DE
+ DEC DE
+ LD A,(DE)
+ INC DE
+ LD B,A
+ LD A,(DE)
+ INC DE
+ LD C,A
+ LD A,B
+ CP 032H
+ JR NZ,L7377 ; (+011H)
+ LD A,C
+ CP 034H
+ JR NZ,L7377 ; (+00cH)
+ LD HL,(L107A)
+ LD A,030H
+ LD B,006H
+ CALL ?SETHL
+ JR L738D ; (+016H)
+
+L7377: LD BC,L0258
+ CALL L73B5
+ LD BC,0003CH
+ CALL L73B5
+ LD BC,0000AH
+ CALL L73B5
+ LD A,030H
+ ADD A,L
+ LD (DE),A
+L738D: LD HL,(L107A)
+ LD DE,L0006
+ EX DE,HL
+ ADD HL,DE
+ LD (L107A),HL
+ EX DE,HL
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ POP HL
+ LD (HL),006H
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ POP HL
+ LD A,003H
+ LD (L84CE),A
+ JP HLFTCH
+
+L73B5: OR A
+ SBC HL,BC
+ JR C,L73BF ; (+005H)
+ LD A,(DE)
+ INC A
+ LD (DE),A
+ JR L73B5 ; (-00aH)
+
+L73BF: ADD HL,BC
+ INC DE
+ RET
+
+L73C2: CALL TESTX
+ DB QDPC
+ CALL L6E6F
+ LD A,B
+ CP 006H
+ JP NZ,04AF2H
+ PUSH HL
+ PUSH DE
+ LD HL,L0000
+ CALL L7403
+ CP 018H
+ JP NC,04AF2H
+ CP 00CH
+ LD A,000H
+ JR C,L73EB ; (+009H)
+ PUSH DE
+ LD DE,L000C
+ OR A
+ SBC HL,DE
+ POP DE
+ INC A
+L73EB: PUSH AF
+ CALL L7403
+ CP 03CH
+ JP NC,04AF2H
+ CALL L7403
+ CP 03CH
+ JP NC,04AF2H
+ POP AF
+ EX DE,HL
+ RST 018H
+ DB 026H
+ POP DE
+ POP HL
+ RET
+
+L7403: PUSH DE
+ LD D,H
+ LD E,L
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,DE
+ LD D,H
+ LD E,L
+ ADD HL,HL
+ ADD HL,DE
+ ADD HL,HL
+ ADD HL,HL
+ POP DE
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JP C,04AF2H
+ CP 00AH
+ JP NC,04AF2H
+ PUSH BC
+ LD C,A
+ ADD A,A
+ ADD A,A
+ ADD A,C
+ ADD A,A
+ LD C,A
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JP C,04AF2H
+L742A: CP 00AH
+ JP NC,04AF2H
+ ADD A,C
+ LD C,A
+ LD B,000H
+ ADD HL,BC
+ POP BC
+ RET
+
+L7436: LD DE,(VARED)
+ LD (TMPEND),DE
+ LD DE,(INTFAC)
+L7442: PUSH DE
+ CALL L7495
+L7446: LD A,(HL)
+ CP 028H
+ JP Z,L74FB
+ PUSH HL
+ CALL L77B6
+ JR NC,L7458 ; (+006H)
+ LD A,C
+ LD C,L
+ LD B,H
+ POP HL
+ POP DE
+ RET
+
+L7458: LD A,(DE)
+ ADD A,C
+ ADD A,002H
+ PUSH BC
+ EX DE,HL
+ LD HL,(L107A)
+ PUSH HL
+ OR A
+ SBC HL,DE
+ INC HL
+ LD C,L
+ LD B,H
+ POP HL
+ PUSH DE
+ EX DE,HL
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ EX DE,HL
+ CALL L74E8
+ LDDR
+ LD E,A
+ LD D,000H
+ RST 018H
+ DB 01AH
+ POP HL
+ POP BC
+ LD DE,L11A4
+ LD (HL),C
+ INC HL
+ SCF
+ SBC A,C
+ LD B,A
+L7484: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L7484 ; (-006H)
+ PUSH HL
+ LD B,C
+ CALL ?CLRHL
+ LD (HL),A
+ LD A,C
+ POP BC
+ POP HL
+ POP DE
+ RET
+
+L7495: CALL HLFTCH
+ SUB 041H
+ CP 01AH
+ JP NC,L4AEC
+ LD DE,L11A4
+ LD B,000H
+L74A4: INC DE
+ LD A,(HL)
+ CALL L5ECB
+ JR C,L74B6 ; (+00bH)
+ LD (DE),A
+ INC B
+ LD A,B
+ CP 003H
+ JR C,L74B3 ; (+001H)
+ DEC B
+L74B3: INC HL
+ JR L74A4 ; (-012H)
+
+L74B6: LD DE,L11A4
+ EX DE,HL
+ LD (HL),B
+ EX DE,HL
+ LD C,005H
+ CP 024H
+ RET NZ
+ LD C,003H
+ INC HL
+ RET
+
+L74C5: LD HL,0FFFBH
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ ADD HL,DE
+ LD A,B
+ JP L7912
+
+L74D0: LD B,0FFH
+L74D2: INC B
+ LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ RET Z
+ JR L74D2 ; (-00aH)
+
+L74DC: LD A,B
+ OR A
+ RET Z
+ CALL LDHLDE
+ EX DE,HL
+ CALL L74E8
+ EX DE,HL
+ RET
+
+L74E8: PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ SBC HL,DE
+ POP HL
+ RET NC
+ JP L4B2C
+
+L74F4: LD DE,(INTFAC)
+ PUSH DE
+ JR L7503 ; (+008H)
+
+L74FB: XOR A
+ LD (L76F4),A
+ INC HL
+ LD (L76F2),HL
+L7503: LD B,000H
+ EXX
+ POP HL
+ PUSH HL
+ PUSH HL
+ LD HL,(L107A)
+ LD DE,L11A4
+ PUSH HL
+ LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ LD B,A
+ CALL L74DC
+ POP DE
+ LD (L107A),HL
+ LD HL,(L1076)
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX (SP),HL
+ PUSH HL
+ EXX
+L7526: POP DE
+ PUSH DE
+ PUSH BC
+ LD BC,(076F2H)
+ LD A,(L76F4)
+ PUSH BC
+ PUSH AF
+ LD BC,(0849CH)
+ PUSH BC
+ CALL L6E55
+ BIT 7,D
+ JP NZ,04AF2H
+ EX AF,AF'
+ POP BC
+ LD (0849CH),BC
+ POP AF
+ LD (L76F4),A
+ POP BC
+ LD (076F2H),BC
+ EX AF,AF'
+ INC HL
+ CP 029H
+ JR Z,L756C ; (+018H)
+ CP 02CH
+ JP NZ,L4AEC
+ POP BC
+ INC B
+ LD A,B
+ CP 004H
+ JP NC,04AF2H
+ EXX
+ POP HL
+ POP DE
+ EXX
+ PUSH DE
+ EXX
+ PUSH DE
+ PUSH HL
+ EXX
+ JR L7526 ; (-046H)
+
+L756C: POP BC
+ EXX
+ POP HL
+ POP DE
+ EXX
+ INC B
+ PUSH DE
+ PUSH HL
+ EXX
+ LD HL,(L1076)
+ ADD HL,DE
+ LD B,(HL)
+ INC B
+ LD DE,L11A4
+ CALL LDDEHL
+ EXX
+ SET 7,C
+ CALL L77B6
+ RES 7,C
+ JR NC,L75E1 ; (+056H)
+ LD A,B
+ CP (HL)
+ JP NZ,04AFEH
+ INC HL
+ EX DE,HL
+ POP HL
+ LD (L849C),HL
+ EXX
+ LD HL,L0000
+ EXX
+ EX DE,HL
+L759C: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX (SP),HL
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C8
+ EXX
+ PUSH HL
+ OR A
+ SBC HL,DE
+ JP NC,04AF2H
+ EXX
+ POP DE
+ CALL L76C4
+ EXX
+ POP HL
+ DJNZ L759C ; (-01cH)
+ PUSH HL
+ EXX
+ LD A,C
+ LD D,B
+ BIT 6,A
+ JR NZ,L75D4 ; (+014H)
+ AND 00FH
+ LD E,A
+ PUSH AF
+ CALL L76C8
+ PUSH HL
+ EXX
+ POP BC
+ POP AF
+ POP HL
+ ADD HL,BC
+ LD C,L
+ LD B,H
+L75CF: LD HL,(L849C)
+ POP DE
+ RET
+
+L75D4: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD C,L
+ LD B,H
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ AND 00FH
+ JR L75CF ; (-012H)
+
+L75E1: EXX
+ LD A,(L76F4)
+ OR A
+ JP Z,04AF2H
+ POP HL
+ LD (L849C),HL
+ EXX
+ LD DE,(TMPEND)
+ LD L,B
+ LD H,000H
+ ADD HL,HL
+ ADD HL,DE
+ EX DE,HL
+ INC DE
+ CALL L74E8
+ LD (HL),B
+ INC HL
+ EXX
+ LD HL,00001H
+ EXX
+L7603: POP DE
+ LD A,(L76F4)
+ OR A
+ JR NZ,L7616 ; (+00cH)
+ PUSH HL
+ EX DE,HL
+ LD DE,0000AH
+ SCF
+ SBC HL,DE
+ JP NC,04AF2H
+ POP HL
+L7616: INC DE
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C8
+ EXX
+ DJNZ L7603 ; (-021H)
+ DB 059H
+ LD D,000H
+ PUSH BC
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C8
+ PUSH HL
+ EXX
+ POP BC
+ PUSH BC
+ EX DE,HL
+ LD HL,(L107A)
+ LD L,(HL)
+ LD H,000H
+ ADD HL,HL
+ LD A,(L11A4)
+ ADD A,005H
+ ADD A,L
+ LD L,A
+ LD A,000H
+ ADC A,H
+ LD H,A
+ JR C,L764C ; (+005H)
+ ADD HL,BC
+ JR C,L764C ; (+002H)
+ PUSH HL
+ ADD HL,DE
+L764C: JP C,L4B2C
+ EX DE,HL
+ CALL L74E8
+ PUSH HL
+ EXX
+ POP HL
+ LD BC,(STRST)
+ DEC BC
+ OR A
+ SBC HL,BC
+ PUSH HL
+ EXX
+ POP BC
+ LDDR
+ POP DE
+ RST 018H
+ DB 01AH
+ POP BC
+ PUSH DE
+ EXX
+ POP DE
+ LD H,B
+ LD L,C
+ POP BC
+ LD A,C
+ OR 080H
+ LD (HL),A
+ INC HL
+ DEC DE
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,L11A4
+ LD A,(DE)
+ INC A
+ LD B,A
+ CALL LDHLDE
+ LD DE,(TMPEND)
+ LD A,(DE)
+ LD (HL),A
+ INC HL
+ INC DE
+ ADD A,A
+ LD B,A
+ CALL LDHLDE
+ PUSH HL
+ EXX
+ POP HL
+L7690: XOR A
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L7690 ; (-008H)
+ LD (HL),A
+ EXX
+ POP DE
+ LD A,(L76F4)
+ OR A
+ JR Z,L76A5 ; (+004H)
+ LD HL,(L849C)
+ RET
+
+L76A5: LD HL,(L76F2)
+ PUSH DE
+ JP L7503
+
+L76AC: LD A,0FFH
+ LD (L76F4),A
+L76B1: CALL L7495
+ LD A,(HL)
+ CALL L5E7B
+ CALL L74F4
+ CALL HLFTCH
+ CP 02CH
+ RET NZ
+ INC HL
+ JR L76B1 ; (-013H)
+
+L76C4: ADD HL,DE
+ RET NC
+ JR L76EF ; (+027H)
+
+L76C8: PUSH BC
+ EX DE,HL
+ LD C,L
+ LD A,H
+ LD HL,L0000
+ CALL L76D8
+ LD A,C
+ CALL L76D8
+ POP BC
+ RET
+
+L76D8: OR A
+ JR Z,L76E9 ; (+00eH)
+ LD B,008H
+L76DD: ADD HL,HL
+ JR C,L76EF ; (+00fH)
+ RLCA
+ JR NC,L76E6 ; (+003H)
+ ADD HL,DE
+ JR C,L76EF ; (+009H)
+L76E6: DJNZ L76DD ; (-00bH)
+ RET
+
+L76E9: LD A,H
+ LD H,L
+ LD L,000H
+ OR A
+ RET Z
+L76EF: JP 04AFBH
+
+L76F2: NOP
+ NOP
+L76F4: NOP
+L76F5: SUB 041H
+ CP 01AH
+ JP NC,L4AEC
+ LD BC,(07928H)
+ LD A,B
+ OR C
+ JR NZ,L7716 ; (+012H)
+ CALL L7442
+L7707: PUSH DE
+ PUSH HL
+ LD L,C
+ LD H,B
+ LD B,A
+ LD C,A
+ CALL LDDEHL
+ POP HL
+ LD A,C
+ POP DE
+ JP L709D
+
+L7716: PUSH DE
+ CALL L7495
+ PUSH HL
+ INC B
+ LD DE,L11A4
+ LD HL,(L107A)
+ CALL L74DC
+ LD B,000H
+ LD HL,(L7928)
+ CALL HLFTCH
+ CP QDPC
+ JR Z,L7760 ; (+02fH)
+ CP 028H
+ JR NZ,L775D ; (+028H)
+L7735: INC HL
+ INC B
+ PUSH BC
+ CALL L7495
+ LD A,C
+ POP DE
+ CP E
+ LD C,E
+ JR NZ,L7752 ; (+011H)
+ PUSH DE
+ LD C,B
+ INC C
+ PUSH HL
+ LD HL,(L107A)
+ LD DE,L11A4
+ CALL L7953
+ POP HL
+ POP BC
+ JR Z,L7776 ; (+024H)
+L7752: CALL HLFTCH
+ CP 029H
+ JR Z,L7760 ; (+007H)
+ CP 02CH
+ JR Z,L7735 ; (-028H)
+L775D: JP L4AEC
+
+L7760: LD HL,(L107A)
+ LD DE,L11A4
+ LD A,(HL)
+ LD (DE),A
+ LD B,A
+L7769: INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ DJNZ L7769 ; (-006H)
+ POP HL
+ POP DE
+ CALL L77B2
+ JR L7707 ; (-06fH)
+
+L7776: LD HL,(L792A)
+ CALL L5E78
+ DEC B
+ JR Z,L7797 ; (+018H)
+ DEC HL
+L7780: PUSH BC
+L7781: CALL L51A2
+ CALL L413E
+ JP Z,L4AEC
+ CP 029H
+ JP Z,L4AEC
+ CP 02CH
+ JR NZ,L7781 ; (-012H)
+ POP BC
+ DJNZ L7780 ; (-016H)
+ INC HL
+L7797: EX DE,HL
+ POP HL
+ EX (SP),HL
+ EX DE,HL
+ LD BC,(07928H)
+ PUSH BC
+ LD BC,L0000
+ LD (07928H),BC
+ CALL L6E9C
+ POP HL
+ LD (L7928),HL
+ POP HL
+ JP HLFTCH
+
+L77B2: PUSH DE
+ JP L7446
+
+L77B6: LD HL,(L1074)
+L77B9: LD DE,L11A4
+ LD A,(HL)
+ OR A
+ RET Z
+ CP 040H
+ JR NC,L77EA ; (+027H)
+ CP C
+ JR NZ,L77DF ; (+019H)
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77DD ; (+012H)
+ LD B,A
+L77CC: INC DE
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77D7 ; (+005H)
+ DJNZ L77CC ; (-008H)
+ INC HL
+ SCF
+ RET
+
+L77D7: INC HL
+ DJNZ L77D7 ; (-003H)
+ LD A,C
+ JR L77E4 ; (+007H)
+
+L77DD: LD A,C
+ DEC HL
+L77DF: AND 00FH
+ INC HL
+ ADD A,(HL)
+ INC HL
+L77E4: LD E,A
+ LD D,000H
+ ADD HL,DE
+ JR L77B9 ; (-031H)
+
+L77EA: CP C
+ JR Z,L7801 ; (+014H)
+ INC HL
+L77EE: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ ADD HL,DE
+ JR L77B9 ; (-03cH)
+
+L77F5: LD A,C
+ SUB B
+ CPL
+ LD C,A
+ LD B,0FFH
+ ADD HL,BC
+ POP BC
+L77FD: DEC HL
+ DEC HL
+ JR L77EE ; (-013H)
+
+L7801: LD A,(HL)
+ EXX
+ LD C,A
+ LD B,000H
+ EXX
+ INC HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ POP DE
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77FD ; (-018H)
+ PUSH BC
+ LD B,A
+ LD C,A
+L7818: INC HL
+ INC DE
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77F5 ; (-029H)
+ DJNZ L7818 ; (-008H)
+ INC HL
+ POP BC
+ SCF
+ RET
+
+L7824: CALL L7495
+ SET 6,C
+ PUSH HL
+ CALL L77B6
+ JP C,04AFEH
+ LD (HL),C
+ EX (SP),HL
+ PUSH HL
+ DEC HL
+L7834: CALL L51A2
+ OR A
+ JR Z,L783E ; (+004H)
+ CP 03AH
+ JR NZ,L7834 ; (-00aH)
+L783E: POP DE
+ PUSH HL
+ INC HL
+ SBC HL,DE
+ LD A,(L11A4)
+ ADD A,004H
+ LD C,A
+ LD B,000H
+ LD A,L
+ ADD HL,BC
+ LD B,A
+ PUSH HL
+ EXX
+ POP BC
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,L0000
+ ADD HL,SP
+ LD DE,(TMPEND)
+ DEC H
+ OR A
+ SBC HL,DE
+ LD A,00CH
+ JP C,L4B2E
+ POP BC
+ POP DE
+ POP HL
+ LD HL,(L107A)
+ PUSH HL
+ ADD HL,BC
+ EX (SP),HL
+ PUSH HL
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ POP HL
+ POP DE
+ LDDR
+ POP DE
+ RST 018H
+ DB 01AH
+ DEC DE
+ POP HL
+ EX (SP),HL
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,L11A4
+ LD A,(DE)
+ LD (HL),A
+ LD B,A
+L788E: INC DE
+ INC HL
+ LD A,(DE)
+ LD (HL),A
+ DJNZ L788E ; (-006H)
+ INC HL
+ PUSH HL
+ EXX
+ POP HL
+ CALL LDHLDE
+ LD (HL),000H
+ POP HL
+ RET
+
+L789F: PUSH DE
+ CALL L7495
+ POP IX
+ PUSH BC
+ SET 6,C
+ LD DE,(0792AH)
+ LD (L792A),HL
+ PUSH DE
+ CALL L77B6
+ JP NC,04B0AH
+ LD DE,(07928H)
+ LD (L7928),HL
+ PUSH DE
+ PUSH IX
+ DEC HL
+L78C1: CALL L51A2
+ CALL L413E
+ JP Z,L4AEC
+ CP QDPC
+ JR NZ,L78C1 ; (-00dH)
+ INC HL
+ POP DE
+ PUSH DE
+ CALL L6E9C
+ POP DE
+ LD HL,(L792A)
+ POP BC
+ LD (07928H),BC
+ POP BC
+ LD (0792AH),BC
+ EX DE,HL
+ POP BC
+ LD A,C
+ CALL L7912
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ CALL HLFTCH
+ CP 028H
+ RET NZ
+ PUSH DE
+ LD B,001H
+L78F6: PUSH BC
+ CALL L51A2
+ POP BC
+ CALL L4141
+ JP Z,L4AEC
+ CP 028H
+ JR NZ,L7906 ; (+001H)
+ INC B
+L7906: CP 029H
+ JR NZ,L78F6 ; (-014H)
+ DJNZ L78F6 ; (-016H)
+ INC HL
+ CALL HLFTCH
+ POP DE
+ RET
+
+L7912: CP 003H
+ JR NZ,L791F ; (+009H)
+L7916: LD A,(L84CE)
+ CP 003H
+ RET Z
+ JP 04AF5H
+
+L791F: LD A,(L84CE)
+ CP 003H
+ RET NZ
+ JP 04AF5H
+
+L7928: NOP
+ NOP
+L792A: NOP
+ NOP
+L792C: PUSH HL
+ CALL L60B7
+ LD A,H
+ OR A
+ JP NZ,04AF2H
+ LD A,L
+ CP 008H
+ JP NC,04AF2H
+ RST 018H
+ DB 012H
+ POP HL
+ JR C,L794E ; (+00eH)
+ JR Z,L794E ; (+00cH)
+ LD DE,0FFFFH
+L7945: CALL L5E99
+ LD A,005H
+ LD (L84CE),A
+ RET
+
+L794E: LD E,A
+ LD D,000H
+ JR L7945 ; (-00eH)
+
+L7953: LD A,(DE)
+ CP (HL)
+ RET NZ
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD B,C
+L795A: LD A,(DE)
+ CP (HL)
+ JR NZ,L7963 ; (+005H)
+ INC DE
+ INC HL
+ DJNZ L795A ; (-008H)
+ XOR A
+L7963: POP HL
+ POP DE
+ POP BC
+ RET
+
+L7967: PUSH HL
+ LD B,005H
+ CALL ?CLRHL
+ POP HL
+ RET
+
+L796F: CALL L791F
+L7972: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ LD A,(HL)
+ XOR 080H
+ LD (HL),A
+ DEC HL
+ RET
+
+L797C: CALL L791F
+ LD C,A
+ LD A,080H
+ JP L798F
+
+L7985: LD A,(L84CE)
+ CP 003H
+ JP Z,L79D9
+ LD C,A
+ XOR A
+L798F: LD (L7D89),HL
+ PUSH DE
+ PUSH HL
+ LD (07D8CH),SP
+ INC HL
+ INC DE
+ LD B,(HL)
+ XOR (HL)
+ EX DE,HL
+ XOR (HL)
+ DEC HL
+ DEC DE
+ EX DE,HL
+ RLCA
+ LD A,B
+ LD (L7D8B),A
+ JP C,L7A9A
+ XOR A
+ CP (HL)
+ JP Z,L79CE
+ LD A,(DE)
+ OR A
+ JR Z,L79B6 ; (+004H)
+ SUB (HL)
+ JP L7ADD
+
+L79B6: LD SP,(07D8CH)
+ POP HL
+ POP DE
+ EI
+ LD A,(HL)
+ OR A
+ JP Z,L7E86
+ LD A,(L7D8B)
+ AND 080H
+ INC HL
+ RES 7,(HL)
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ RET
+
+L79CE: LD B,000H
+ LD A,005H
+ LD C,A
+ EX DE,HL
+ LDIR
+ JP L79B6
+
+L79D9: LD B,(HL)
+ LD A,(DE)
+ ADD A,B
+ JP C,04AF8H
+ LD C,A
+ PUSH DE
+ PUSH HL
+ PUSH DE
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ EX DE,HL
+ LD HL,(L107A)
+ CALL L74DC
+ EX (SP),HL
+ LD B,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ ADD HL,DE
+ EX DE,HL
+ POP HL
+ CALL L74DC
+ LD A,C
+ LD DE,(TMPEND)
+ LD BC,(STRST)
+ EX DE,HL
+ OR A
+ SBC HL,BC
+ EX DE,HL
+ LD (L107A),HL
+ POP HL
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ DEC HL
+ DEC HL
+ POP DE
+ RET
+
+L7A1C: LD A,(L84CE)
+ CP 003H
+ JR NZ,L7A57 ; (+034H)
+ PUSH DE
+ PUSH HL
+ LD A,(DE)
+ OR (HL)
+ JR Z,L7A54 ; (+02bH)
+ LD A,(DE)
+ CP (HL)
+ JR C,L7A2E ; (+001H)
+ LD A,(HL)
+L7A2E: OR A
+ JR Z,L7A4E ; (+01dH)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ EX DE,HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(L1076)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ ADD HL,BC
+ EX DE,HL
+ LD B,A
+ OR A
+ JR Z,L7A54 ; (+00eH)
+L7A46: LD A,(DE)
+ CP (HL)
+ JR NZ,L7A54 ; (+00aH)
+ INC DE
+ INC HL
+ DJNZ L7A46 ; (-008H)
+L7A4E: POP DE
+ POP HL
+ LD A,(DE)
+ CP (HL)
+ EX DE,HL
+ RET
+
+L7A54: POP HL
+ POP DE
+ RET
+
+L7A57: INC DE
+ INC HL
+ LD A,(DE)
+ DEC DE
+ XOR (HL)
+ RLCA
+ JR NC,L7A63 ; (+004H)
+ LD A,(HL)
+ DEC HL
+ RLCA
+ RET
+
+L7A63: LD A,(HL)
+ DEC HL
+ RLCA
+ JR NC,L7A6E ; (+006H)
+ CALL L7A6E
+ RET Z
+ CCF
+ RET
+
+L7A6E: PUSH DE
+ PUSH HL
+ EX DE,HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L7A8F ; (+01aH)
+ INC DE
+ INC HL
+ LD A,(HL)
+ OR 080H
+ LD B,A
+ LD A,(DE)
+ OR 080H
+ CP B
+ JR NZ,L7A8F ; (+00eH)
+ LD A,(L84CE)
+ LD B,A
+ DEC B
+ DEC B
+L7A87: INC DE
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L7A8F ; (+002H)
+ DJNZ L7A87 ; (-008H)
+L7A8F: POP HL
+ POP DE
+ RET
+
+L7A92: POP HL
+ PUSH HL
+ CALL L7967
+ JP L79B6
+
+L7A9A: CALL L7A6E
+ JR Z,L7A92 ; (-00dH)
+ JR NC,L7AAA ; (+009H)
+ LD A,(L7D8B)
+ XOR 080H
+ LD (L7D8B),A
+ SCF
+L7AAA: EX AF,AF'
+ LD A,(HL)
+ OR A
+ JP Z,L79CE
+ LD A,(DE)
+ OR A
+ JP Z,L79B6
+ SUB (HL)
+ JR C,L7ABF ; (+007H)
+ CP 020H
+ JP NC,L79CE
+ JR L7AC6 ; (+007H)
+
+L7ABF: NEG
+ CP 020H
+ JP NC,L79B6
+L7AC6: EX AF,AF'
+ JR C,L7ACA ; (+001H)
+ EX DE,HL
+L7ACA: EX AF,AF'
+ JP L7B64
+
+L7ACE: LD SP,(07D8CH)
+ EI
+ POP HL
+ POP DE
+ LD A,(07D93H)
+ OR A
+ JP Z,04AEFH
+ RET
+
+L7ADD: JR NC,L7AE9 ; (+00aH)
+ NEG
+ CP 020H
+ JP NC,L79B6
+ EX DE,HL
+ JR L7AEE ; (+005H)
+
+L7AE9: CP 020H
+ JP NC,L79CE
+L7AEE: CALL L7B24
+ LD A,H
+ EXX
+ ADC A,H
+ EXX
+ LD H,A
+ LD A,L
+ EXX
+ ADC A,L
+ EXX
+ LD L,A
+ LD A,D
+ EXX
+ ADC A,D
+ EXX
+ LD D,A
+ LD A,E
+ EXX
+ ADC A,E
+ EXX
+ JR NC,L7B11 ; (+00bH)
+ RRA
+ RR D
+ RR L
+ RR H
+ INC C
+ JP Z,L7ACE
+L7B11: LD E,A
+ LD A,C
+ EXX
+ LD BC,00005H
+ LD HL,(L7D89)
+ LD (HL),A
+ ADD HL,BC
+ DI
+ LD SP,HL
+ EXX
+ PUSH HL
+ PUSH DE
+ JP L79B6
+
+L7B24: DI
+ LD (07D8EH),SP
+ EX AF,AF'
+ INC HL
+ LD SP,HL
+ EXX
+ POP DE
+ SET 7,E
+ POP HL
+ OR A
+L7B32: EX AF,AF'
+ CP 008H
+ JR C,L7B43 ; (+00cH)
+ SUB 008H
+ EX AF,AF'
+ RL H
+ LD H,L
+ LD L,D
+ LD D,E
+ LD E,000H
+ JR L7B32 ; (-011H)
+
+L7B43: OR A
+ JR Z,L7B54 ; (+00eH)
+L7B46: EX AF,AF'
+ OR A
+ RR E
+ RR D
+ RR L
+ RR H
+ EX AF,AF'
+ DEC A
+ JR NZ,L7B46 ; (-00eH)
+L7B54: EXX
+ EX DE,HL
+ LD C,(HL)
+ INC HL
+ LD SP,HL
+ POP DE
+ SET 7,E
+ POP HL
+ EX AF,AF'
+ LD SP,(07D8EH)
+ EI
+ RET
+
+L7B64: CP 020H
+ JP NC,L79B6
+ CALL L7B24
+ LD A,H
+ EXX
+ SBC A,H
+ EXX
+ LD H,A
+ LD A,L
+ EXX
+ SBC A,L
+ EXX
+ LD L,A
+ LD A,D
+ EXX
+ SBC A,D
+ EXX
+ LD D,A
+ LD A,E
+ EXX
+ SBC A,E
+ EXX
+L7B7F: OR A
+ JR Z,L7B98 ; (+016H)
+L7B82: BIT 7,A
+ JR NZ,L7B94 ; (+00eH)
+ RL H
+ RL L
+ RL D
+ RLA
+ DEC C
+ JP NZ,L7B82
+ JP L7A92
+
+L7B94: LD E,A
+ JP L7B11
+
+L7B98: LD A,C
+ SUB 008H
+ LD C,A
+ LD A,D
+ LD D,L
+ LD L,H
+ LD H,000H
+ JR Z,L7BA5 ; (+002H)
+ JR NC,L7B7F ; (-026H)
+L7BA5: JP L7A92
+
+L7BA8: LD C,A
+ INC HL
+ INC DE
+ LD A,(DE)
+ XOR (HL)
+ LD (L7D8B),A
+ DEC HL
+ DEC DE
+ RET
+
+L7BB3: CALL L791F
+ CALL L7BA8
+ PUSH DE
+ PUSH HL
+ LD (07D8CH),SP
+ LD A,(HL)
+ OR A
+ JP Z,L7A92
+ LD A,(DE)
+ OR A
+ JP Z,L7A92
+ INC DE
+ PUSH DE
+ POP IX
+ ADD A,(HL)
+ LD E,A
+ LD A,000H
+ ADC A,A
+ LD D,A
+ LD (07D91H),DE
+ INC HL
+ XOR A
+ LD (L7D90),A
+ LD D,(HL)
+ SET 7,D
+ INC HL
+ LD E,(HL)
+ INC HL
+ PUSH HL
+ LD H,A
+ LD L,A
+ EXX
+ POP HL
+ LD D,(HL)
+ INC HL
+ LD E,(HL)
+ LD B,A
+ LD C,A
+ LD H,A
+ LD L,A
+ EXX
+ LD A,(IX+000H)
+ OR 080H
+ LD C,004H
+L7BF6: LD B,008H
+ OR A
+ JP Z,L7C8B
+L7BFC: RLCA
+ JR NC,L7C11 ; (+012H)
+ EX AF,AF'
+ EXX
+ LD A,C
+ ADD A,B
+ LD C,A
+ ADC HL,DE
+ EXX
+ ADC HL,DE
+ JR NC,L7C10 ; (+005H)
+ LD A,001H
+ LD (L7D90),A
+L7C10: EX AF,AF'
+L7C11: SRL D
+ RR E
+ EXX
+ RR D
+ RR E
+ RR B
+ EXX
+ DJNZ L7BFC ; (-023H)
+L7C1F: INC IX
+ LD A,(IX+000H)
+ DEC C
+ JR NZ,L7BF6 ; (-031H)
+ EXX
+ LD A,(L7D90)
+ OR A
+ JR Z,L7C44 ; (+016H)
+ LD DE,(07D91H)
+ INC DE
+ LD (07D91H),DE
+ EXX
+ SCF
+ RR H
+ RR L
+ EXX
+ RR H
+ RR L
+ RR C
+L7C44: BIT 7,C
+ JR Z,L7C62 ; (+01aH)
+ LD DE,00001H
+ ADD HL,DE
+ EXX
+ LD DE,L0000
+ ADC HL,DE
+ EXX
+ JR NC,L7C62 ; (+00dH)
+ LD DE,(07D91H)
+ INC DE
+ LD (07D91H),DE
+ EXX
+ LD H,080H
+ EXX
+L7C62: POP IX
+ PUSH IX
+ LD (IX+004H),L
+ LD (IX+003H),H
+ EXX
+ LD (IX+002H),L
+ LD (IX+001H),H
+ LD HL,(07D91H)
+ OR A
+ LD DE,L0081
+ SBC HL,DE
+ LD A,H
+ ADD A,000H
+ JP M,L7C97
+ JP NZ,L7ACE
+ LD (IX+000H),L
+ JP L79B6
+
+L7C8B: LD A,E
+ EXX
+ LD B,E
+ LD E,D
+ LD D,A
+ EXX
+ LD E,D
+ LD D,000H
+ JP L7C1F
+
+L7C97: LD SP,(07D8CH)
+ JP L7A92
+
+L7C9E: CALL L791F
+ CALL L7BA8
+ PUSH DE
+ PUSH HL
+ LD (07D8CH),SP
+ LD A,(DE)
+ OR A
+ JP Z,04AEFH
+ EX AF,AF'
+ LD A,(HL)
+ OR A
+ JP Z,L7A92
+ EXX
+ ADD A,081H
+ LD B,A
+ LD A,000H
+ ADC A,A
+ EX AF,AF'
+ LD C,A
+ LD A,B
+ SUB C
+ LD C,A
+ EX AF,AF'
+ LD B,A
+ EX AF,AF'
+ LD A,B
+ SBC A,000H
+ JP C,L7C97
+ JP NZ,L7ACE
+ LD A,C
+ PUSH AF
+ EXX
+ INC DE
+ INC HL
+ LD B,(HL)
+ SET 7,B
+ INC HL
+ LD C,(HL)
+ INC HL
+ PUSH HL
+ EX DE,HL
+ LD D,(HL)
+ SET 7,D
+ INC HL
+ LD E,(HL)
+ INC HL
+ PUSH HL
+ LD H,B
+ LD L,C
+ EXX
+ POP HL
+ LD D,(HL)
+ INC HL
+ LD E,(HL)
+ POP HL
+ LD A,(HL)
+ INC HL
+ LD L,(HL)
+ LD H,A
+ EXX
+ LD C,005H
+L7CF0: LD B,008H
+ XOR A
+L7CF3: BIT 7,H
+ JR NZ,L7D07 ; (+010H)
+ OR A
+L7CF8: RLA
+ EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ DJNZ L7CF3 ; (-00dH)
+ PUSH AF
+ DEC C
+ JR NZ,L7CF0 ; (-014H)
+ JP L7D41
+
+L7D07: OR A
+ EXX
+ SBC HL,DE
+ EXX
+ SBC HL,DE
+ CCF
+ JR C,L7CF8 ; (-019H)
+ EXX
+ ADD HL,DE
+ EXX
+ ADC HL,DE
+ OR A
+ RLA
+ EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ DJNZ L7D26 ; (+007H)
+ PUSH AF
+ LD B,008H
+ DEC C
+ JP Z,L7D41
+L7D26: EXX
+ OR A
+ SBC HL,DE
+ EXX
+ SBC HL,DE
+ SCF
+ RLA
+ DJNZ L7D37 ; (+006H)
+ PUSH AF
+ LD B,008H
+ DEC C
+ JR Z,L7D41 ; (+00aH)
+L7D37: EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ JR C,L7D26 ; (-018H)
+ JP L7CF3
+
+L7D41: POP AF
+ LD H,A
+ EXX
+ POP AF
+ LD E,A
+ POP AF
+ LD D,A
+ POP AF
+ LD C,A
+ POP AF
+ LD B,A
+ POP AF
+L7D4D: BIT 7,B
+ JR NZ,L7D64 ; (+013H)
+ EXX
+ SLA H
+ EXX
+ RL E
+ RL D
+ RL C
+ RL B
+ DEC A
+ JP NZ,L7D4D
+ JP L7A92
+
+L7D64: EXX
+ RL H
+ EXX
+ JR NC,L7D7B ; (+011H)
+ LD HL,00001H
+ ADD HL,DE
+ EX DE,HL
+ LD HL,L0000
+ ADC HL,BC
+ LD B,H
+ LD C,L
+ JR NC,L7D7B ; (+003H)
+ LD B,080H
+ INC A
+L7D7B: POP HL
+ PUSH HL
+ LD (HL),A
+ INC HL
+ LD (HL),B
+L7D80: INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ JP L79B6
+
+L7D89: NOP
+ NOP
+L7D8B: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L7D90: NOP
+ NOP
+ NOP
+ NOP
+L7D94: INC HL
+ BIT 7,(HL)
+ DEC HL
+ RET
+
+L7D99: INC (HL)
+ RET NZ
+ JP 04AEFH
+
+L7D9E: LD A,(HL)
+ OR A
+ RET Z
+ DEC (HL)
+ RET NZ
+ JP L7967
+
+L7DA6: PUSH HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ LD HL,(MEMMAX)
+ DEC HL
+ SBC HL,DE
+ JP C,04AFBH
+ POP HL
+ RET
+
+L7DB8: PUSH HL
+ LD (L8471),HL
+ CALL L7DA6
+ EX DE,HL
+ LD (L8473),HL
+ CALL L7DA6
+ EX DE,HL
+ LD (L8475),HL
+ CALL L7DA6
+ LD (08477H),DE
+ POP HL
+ RET
+
+L7DD3: CALL L791F
+ EX DE,HL
+ LD A,(HL)
+ OR A
+ JP Z,L7E35
+ EX DE,HL
+ LD A,(HL)
+ OR A
+ JP Z,L7967
+ CALL L7D94
+ JR Z,L7E0F ; (+028H)
+ CALL L7972
+ EX DE,HL
+ PUSH DE
+ PUSH HL
+ LD DE,L84D7
+ CALL L5E93
+ LD HL,L84D7
+ CALL L608D
+ LD A,(HL)
+ OR A
+ JP NZ,04AF2H
+ POP HL
+ PUSH HL
+ CALL L60B7
+ BIT 0,L
+ POP DE
+ POP HL
+ JR Z,L7E0F ; (+006H)
+ CALL L7E0F
+ JP L7972
+
+L7E0F: EX DE,HL
+ LD A,(HL)
+ OR A
+ JR Z,L7E35 ; (+021H)
+ CALL L7D94
+ JR Z,L7E3B ; (+022H)
+ CALL L7972
+ CALL L7E3B
+ PUSH DE
+ PUSH HL
+ LD DE,L84D7
+ CALL L5E90
+ LD HL,L84D7
+ POP DE
+ CALL L7C9E
+ PUSH DE
+ CALL L5E93
+ POP HL
+ POP DE
+ RET
+
+L7E35: PUSH DE
+ CALL L5E90
+ POP HL
+ RET
+
+L7E3B: PUSH DE
+ LD DE,L84D7
+ CALL L5E93
+ POP HL
+ CALL L8320
+ LD DE,L84D7
+ CALL L7BB3
+ JP L81FC
+
+L7E4F: CALL L791F
+ PUSH DE
+ PUSH HL
+ CALL L60B7
+ LD A,L
+ CPL
+ LD E,A
+ LD A,H
+ CPL
+ LD D,A
+ JR L7E80 ; (+021H)
+
+L7E5F: LD A,0A2H
+ LD BC,0B23EH
+ LD BC,0AA3EH
+ LD (L7E7B),A
+ INC A
+ LD (L7E7E),A
+ CALL L791F
+ PUSH DE
+ PUSH HL
+ CALL L60B7
+ EX DE,HL
+ CALL L60B7
+ LD A,H
+L7E7B: AND D
+ LD D,A
+ LD A,L
+L7E7E: AND E
+ LD E,A
+L7E80: POP HL
+ CALL L5E99
+ POP DE
+ RET
+
+L7E86: INC HL
+ RES 7,(HL)
+ DEC HL
+ RET
+
+L7E8B: CALL L7D94
+ JP Z,L604F
+ CALL L7EB0
+ CALL L604F
+ LD DE,L84D7
+ CALL L7A1C
+ RET Z
+L7E9E: LD DE,L6112
+ JP L797C
+
+L7EA4: LD DE,L6112
+ JP L7985
+
+L7EAA: LD DE,L6112
+ JP L7A1C
+
+L7EB0: PUSH HL
+ PUSH DE
+ LD DE,L84D7
+ CALL L5E93
+ POP DE
+ POP HL
+ RET
+
+L7EBB: CALL L604F
+ EX DE,HL
+ CALL L604F
+ EX DE,HL
+ CALL L7EB0
+ CALL L7C9E
+ CALL L604F
+ CALL L7BB3
+ PUSH DE
+ LD DE,L84D7
+ CALL L797C
+ POP DE
+ JP L7972
+
+L7EDA: CALL L604F
+ EX DE,HL
+ CALL L604F
+ EX DE,HL
+ CALL L7C9E
+ JP L604F
+
+L7EE8: LD A,(HL)
+ OR A
+ RET Z
+ CALL L7D94
+ JP NZ,04AF2H
+ CALL L8320
+ CALL L7D9E
+ JP L81FC
+
+L7EFA: PUSH HL
+ EX DE,HL
+ CALL L5E90
+ POP HL
+ POP BC
+ RET
+
+L7F02: LD A,(HL)
+ LD C,H
+L7F04: ADD A,B
+ DEC HL
+L7F06: PUSH BC
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ PUSH AF
+ CALL L7F17
+ POP AF
+ POP BC
+ RLCA
+ RET NC
+ JP L7972
+
+L7F17: CALL L7EAA
+ JR C,L7F3A ; (+01eH)
+ CALL L7DA6
+ PUSH DE
+ PUSH HL
+ CALL L5E93
+ POP DE
+ PUSH DE
+ CALL L5E90
+ POP HL
+ POP DE
+ CALL L7C9E
+ CALL L7F3A
+ LD DE,08194H
+ CALL L797C
+ JP L7E86
+
+L7F3A: LD A,0FFH
+ LD (L80B0),A
+ LD DE,L7F02
+ CALL L7A1C
+ JR C,07F96H ; (+04fH)
+ LD DE,L7F04
+ CALL L7A1C
+ PUSH AF
+ CALL L7DA6
+ POP AF
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ JR C,L7F6E ; (+014H)
+ CALL L7EA4
+ EX (SP),HL
+ CALL L797C
+ POP DE
+ CALL L7C9E
+ CALL 07F96H
+ LD DE,08199H
+ JP L7985
+
+L7F6E: LD DE,L7F91
+ CALL L7BB3
+ CALL L7EA4
+ EX (SP),HL
+ LD DE,L7F91
+ CALL L797C
+ POP DE
+ CALL L7C9E
+ CALL 07F96H
+ CALL L7D99
+ LD DE,08199H
+ CALL L7985
+ JP L7D9E
+
+L7F91: LD A,A
+ LD D,H
+ INC DE
+ CALL Z,0C5D0H
+ PUSH HL
+ CALL L7DB8
+ POP HL
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD E,L
+ LD D,H
+ CALL L7BB3
+ LD DE,(08475H)
+ POP HL
+ PUSH HL
+ CALL L5E93
+ LD A,(L84CE)
+ DEC A
+ CP 004H
+ LD B,A
+ LD HL,08137H
+ JP Z,L803D
+ LD B,00AH
+ JP L803D
+
+L7FC2: PUSH BC
+ LD A,(HL)
+ OR A
+ JP Z,L7EFA
+ LD DE,08194H
+ CALL L797C
+ CALL L7972
+ POP BC
+L7FD2: PUSH BC
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ AND 080H
+ CPL
+ LD (L80B0),A
+ DEC HL
+ LD DE,L818A
+ PUSH HL
+ CALL L7A1C
+ JR C,L7FF0 ; (+009H)
+ CALL L7C9E
+ CALL L608D
+ CALL L7BB3
+L7FF0: LD DE,0818FH
+ CALL L7A1C
+ JR C,L8003 ; (+00bH)
+ CALL L797C
+ LD A,(L80B0)
+ XOR 080H
+ LD (L80B0),A
+L8003: LD DE,08194H
+ CALL L7A1C
+ JR C,L8014 ; (+009H)
+ LD DE,0818FH
+ CALL L797C
+ CALL L7E86
+L8014: CALL L7DB8
+ POP HL
+ PUSH DE
+ LD DE,08199H
+ CALL L7A1C
+ JR NC,L8086 ; (+065H)
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD E,L
+ LD D,H
+ CALL L7BB3
+ LD DE,(08475H)
+ POP HL
+ PUSH HL
+ CALL L5E93
+ LD A,(L84CE)
+ LD B,A
+ LD HL,L80E7
+L803D: PUSH BC
+L803E: PUSH HL
+ LD HL,(L8475)
+ LD DE,(08477H)
+ CALL L7BB3
+ POP HL
+ PUSH HL
+ LD DE,(08473H)
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD DE,(08475H)
+ CALL L7BB3
+ EX DE,HL
+ LD HL,(L8471)
+ CALL L7985
+ POP HL
+ LD DE,00005H
+ ADD HL,DE
+ POP BC
+ DJNZ L803D ; (-02dH)
+ POP HL
+ POP BC
+ LD A,(L80B0)
+ INC HL
+ XOR (HL)
+ CPL
+ LD (HL),A
+ DEC HL
+ LD A,(L84CE)
+ CP 008H
+ LD A,(HL)
+ JR Z,L8082 ; (+006H)
+ CP 05CH
+L807E: RET NC
+ JP L7967
+
+L8082: CP 04DH
+ JR L807E ; (-008H)
+
+L8086: LD DE,08194H
+ CALL L797C
+ CALL L7E86
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+L8095: POP HL
+ LD E,L
+ LD D,H
+ CALL L7BB3
+ LD DE,(08475H)
+ CALL L5E90
+L80A2: POP DE
+ PUSH DE
+ CALL L5E90
+ LD A,(L84CE)
+ LD B,A
+ LD HL,L810F
+ JR L803D ; (-073H)
+
+L80B0: NOP
+L80B1: PUSH BC
+ PUSH HL
+ CALL L7DA6
+ EX DE,HL
+ LD (L8479),HL
+ CALL L7DA6
+ LD (0847BH),DE
+ POP HL
+ PUSH HL
+ CALL L5E93
+ LD HL,(L8479)
+ EX DE,HL
+ POP HL
+L80CB: PUSH HL
+ CALL L5E93
+ LD HL,(0847BH)
+ CALL L7FD2
+ POP DE
+ PUSH DE
+ CALL L5E93
+ LD HL,(L8479)
+ CALL L7FC2
+ EX DE,HL
+ POP HL
+ CALL L7C9E
+ POP BC
+ RET
+
+L80E7: LD A,(HL)
+L80E8: XOR D
+ XOR D
+ XOR D
+ XOR E
+ LD A,D
+ EX AF,AF'
+ ADC A,B
+ ADC A,B
+ ADC A,C
+ LD (HL),H
+ RET NC
+ DEC C
+ NOP
+ RET NC
+L80F6: LD L,(HL)
+ JR C,L80E8 ; (-011H)
+ DEC E
+ DEC HL
+ LD H,A
+ RST 010H
+ LD (L402B),A
+ LD H,B
+ JR NC,L8095 ; (-06eH)
+ JR NC,L80A2 ; (-063H)
+ LD E,B
+ RST 010H
+ CCF
+ SBC A,A
+ LD A,(04A50H)
+ SUB (HL)
+ DEC SP
+ ADD A,D
+L810F: ADD A,B
+ ADD A,B
+ NOP
+ NOP
+ NOP
+ LD A,H
+ LD HL,(0AAAAH)
+ XOR E
+ LD (HL),A
+ OR (HL)
+ DEC BC
+ LD H,B
+ OR (HL)
+ LD (HL),C
+ LD D,B
+ DEC C
+ NOP
+ RET NC
+ LD L,E
+ SUB E
+ JP P,0BC7DH
+ LD H,H
+ RRCA
+ HALT
+ RST 000H
+L812C: ADD A,B
+ LD E,H
+ RET
+
+L812F: RES 4,L
+ LD B,(HL)
+ LD D,H
+ LD D,A
+ CCF
+ SBC A,A
+ LD A,(0AA7FH)
+ XOR D
+ XOR D
+ XOR E
+ LD A,(HL)
+ LD C,H
+ CALL Z,0CDCCH
+ LD A,(HL)
+ SUB D
+ LD C,C
+ INC H
+ SUB D
+ LD A,L
+ LD H,E
+ ADC A,(HL)
+ JR C,L812F ; (-01cH)
+ LD A,L
+ CP D
+ LD L,08BH
+ AND E
+ LD A,L
+ DEC E
+ ADC A,C
+ RET C
+ SBC A,(HL)
+ LD A,L
+ ADC A,B
+ ADC A,B
+ ADC A,B
+ ADC A,C
+ LD A,H
+ LD (HL),B
+ RET P
+ RET P
+ POP AF
+ LD A,H
+ RST 010H
+ SUB H
+ DEC (HL)
+ PUSH HL
+ LD A,H
+ LD B,E
+ INC C
+ JR NC,L812C ; (-03dH)
+L8169: LD DE,L0000
+ LD A,(HL)
+ OR A
+ JR Z,L8178 ; (+008H)
+ CALL L7D94
+ INC DE
+ JR Z,L8178 ; (+002H)
+ DEC DE
+ DEC DE
+L8178: CALL L5E99
+ RET
+
+L817C: LD DE,0819EH
+ JR L8184 ; (+003H)
+
+L8181: LD DE,0818FH
+L8184: PUSH BC
+ CALL L7BB3
+ POP BC
+ RET
+
+L818A: ADD A,E
+ LD C,C
+ RRCA
+ JP C,L82A2
+ LD C,C
+ RRCA
+ JP C,L81A2
+ LD C,C
+ RRCA
+ JP C,L80A2
+ LD C,C
+ RRCA
+ JP C,07BA2H
+ LD C,FDPC
+ DEC (HL)
+L81A2: INC DE
+L81A3: PUSH HL
+ CALL L60B7
+ LD A,000H
+ CP 040H
+ LD A,(HL)
+ CALL NZ,BREAKX
+ LD E,A
+ LD D,000H
+ POP HL
+ CALL L5E99
+ RET
+
+L81B7: LD A,(HL)
+ OR A
+ JR Z,L81C0 ; (+005H)
+ CALL L7D94
+ JR Z,L81CB ; (+00bH)
+L81C0: PUSH HL
+ LD HL,L4193
+ LD (L81FA),HL
+ POP HL
+ XOR A
+ LD R,A
+L81CB: PUSH BC
+ LD DE,(081FAH)
+ LD A,R
+ XOR D
+ RRC A
+ RRC A
+ RRC A
+ LD D,A
+ LD A,R
+ XOR E
+ RLC A
+ RLC A
+ LD E,D
+ LD D,A
+ LD (081FAH),DE
+ PUSH HL
+ INC HL
+ RES 7,D
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ INC HL
+ LD A,R
+ LD (HL),A
+ POP HL
+ LD (HL),081H
+ CALL L7E9E
+ POP BC
+ RET
+
+L81FA: SUB E
+ LD B,C
+L81FC: PUSH BC
+ LD A,(HL)
+ OR A
+ JP Z,L7EFA
+ INC HL
+ LD A,(HL)
+ LD (L8312),A
+ RES 7,(HL)
+ DEC HL
+ LD DE,L8467
+ CALL L7BB3
+ PUSH HL
+ CALL L7DA6
+ PUSH DE
+ CALL L5E93
+ POP HL
+ CALL L604F
+ PUSH HL
+ CALL L60B7
+ XOR A
+ CP H
+ JP NZ,04AEFH
+ LD A,L
+ LD (L8311),A
+ POP DE
+ POP HL
+ PUSH HL
+ CALL L797C
+ PUSH DE
+ PUSH HL
+ CALL L5E90
+ POP DE
+ POP HL
+ CALL L7D9E
+ EX DE,HL
+ XOR A
+ LD B,008H
+L823D: PUSH BC
+ PUSH AF
+ CALL L7A1C
+ JR C,L824B ; (+007H)
+ CALL L797C
+ POP AF
+ SET 7,A
+ PUSH AF
+L824B: POP AF
+ RLC A
+ EX DE,HL
+ PUSH AF
+ CALL L7D9E
+ POP AF
+ EX DE,HL
+ POP BC
+ DJNZ L823D ; (-01bH)
+ LD (L8313),A
+ PUSH DE
+ LD DE,L845D
+ LD A,(L84CE)
+ BIT 3,A
+ JR NZ,L8269 ; (+003H)
+ LD DE,L8462
+L8269: CALL L7BB3
+ POP DE
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD A,(L84CE)
+ BIT 3,A
+ JP Z,L8301
+ CALL L7D99
+ LD DE,L610D
+ CALL L7985
+ CALL L7D9E
+ POP DE
+ PUSH DE
+ CALL L7BB3
+ LD DE,L610D
+ CALL L7D9E
+ CALL L7985
+ CALL L7D99
+ POP DE
+ PUSH DE
+ CALL L7BB3
+ LD DE,L8458
+ CALL L7BB3
+L82A2: CALL L7D99
+ CALL L7EA4
+ CALL L7D9E
+ POP DE
+ PUSH DE
+ CALL L7BB3
+ CALL L7EA4
+ POP DE
+ PUSH DE
+ CALL L7BB3
+L82B8: CALL L7EA4
+ EX (SP),HL
+ EX DE,HL
+ PUSH DE
+ CALL L5E90
+ POP HL
+ LD DE,L8408
+ LD A,(L8313)
+ LD B,008H
+L82CA: RLC A
+ JR NC,L82D5 ; (+007H)
+ PUSH AF
+ PUSH BC
+ CALL L7BB3
+ POP BC
+ POP AF
+L82D5: INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ DJNZ L82CA ; (-012H)
+ LD A,(L8311)
+ ADD A,(HL)
+ JP C,04AEFH
+ LD (HL),A
+ POP DE
+ CALL L7BB3
+ POP BC
+ LD A,(L8312)
+ RLC A
+ RET NC
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ CALL L5E93
+ POP DE
+ PUSH DE
+ CALL L5E90
+ POP HL
+ POP DE
+ CALL L7C9E
+ POP BC
+ RET
+
+L8301: POP DE
+ PUSH DE
+ CALL L7BB3
+ LD A,(HL)
+ OR A
+ CALL NZ,L7D9E
+ CALL L7985
+ JP L82B8
+
+L8311: NOP
+L8312: NOP
+L8313: NOP
+L8314: PUSH BC
+ CALL L8320
+ LD DE,L83F9
+ CALL L7BB3
+ POP BC
+ RET
+
+L8320: PUSH BC
+ CALL L7D94
+ JP NZ,04AF2H
+ LD A,(HL)
+ OR A
+ JP Z,04AF2H
+ SUB 081H
+ LD (L83F8),A
+ LD (HL),081H
+ XOR A
+ LD B,008H
+ LD DE,L8408
+L8339: PUSH BC
+ PUSH AF
+ CALL L7A1C
+ JR C,L834F ; (+00fH)
+ PUSH HL
+ LD HL,00028H
+ ADD HL,DE
+ EX DE,HL
+ EX (SP),HL
+ CALL L7BB3
+ POP DE
+ POP AF
+ SET 7,A
+ PUSH AF
+L834F: POP AF
+ RLC A
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ POP BC
+ DJNZ L8339 ; (-021H)
+ DB 022H
+ LD (HL),C
+ ADD A,H
+ CALL L7DA6
+ EX DE,HL
+ LD E,A
+ LD D,000H
+ CALL L5E99
+ LD A,(HL)
+ OR A
+ JR Z,L836E ; (+003H)
+ SUB 008H
+ LD (HL),A
+L836E: LD A,(L83F8)
+ CP 080H
+ JR C,L8377 ; (+002H)
+ NEG
+L8377: PUSH HL
+ CALL L7DA6
+ EX DE,HL
+ LD (L8473),HL
+ LD E,A
+ LD D,000H
+ CALL L5E99
+ LD A,(L83F8)
+ AND 080H
+ INC HL
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ EX DE,HL
+ POP HL
+ CALL L7985
+ LD A,(L84CE)
+ LD DE,0846CH
+ CP 005H
+ JR Z,L83A0 ; (+003H)
+ LD DE,L845D
+L83A0: CALL L7BB3
+ PUSH HL
+ LD DE,(08473H)
+ LD HL,(L8471)
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ CALL L7EA4
+ EX (SP),HL
+ CALL L797C
+ POP DE
+ CALL L7C9E
+ PUSH DE
+ CALL L5E93
+ POP HL
+ PUSH DE
+ LD E,L
+ LD D,H
+ CALL L7BB3
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD DE,L8403
+ CALL L7985
+ EX DE,HL
+ POP HL
+ CALL L7BB3
+ LD DE,L610D
+ CALL L7D99
+ CALL L7985
+ CALL L7D9E
+ EX DE,HL
+ LD HL,(L8471)
+ CALL L7BB3
+ LD DE,L83FE
+ CALL L7BB3
+ POP DE
+ CALL L7985
+ POP BC
+ RET
+
+L83F8: NOP
+L83F9: LD A,A
+ LD E,(HL)
+ LD E,E
+ RET C
+ XOR C
+L83FE: LD A,A
+ LD C,H
+ CALL Z,0CDCCH
+L8403: ADD A,C
+ LD D,L
+ LD D,L
+ LD D,L
+ LD D,(HL)
+L8408: ADD A,C
+ DEC (HL)
+ INC B
+ DI
+ INC (HL)
+ ADD A,C
+ JR L8447 ; (+037H)
+
+ RET P
+ LD D,D
+ ADD A,C
+ DEC BC
+L8414: SUB L
+ POP BC
+ CALL PO,00581H
+ XOR D
+ JP 08168H
+
+ LD (BC),A
+ CALL 09986H
+ ADD A,C
+ LD BC,0D164H
+ CALL P,L0081
+ OR C
+ IN D,(C)
+ ADD A,C
+ NOP
+ LD E,B
+ RST 010H
+ OUT (080H),A
+ DEC (HL)
+ INC B
+ DI
+ INC (HL)
+ ADD A,B
+ LD D,A
+ LD B,H
+ CALL M,L80CB
+ LD L,D
+ RET NZ
+ ADD A,0E8H
+ ADD A,B
+ LD (HL),L
+ DEC H
+ LD A,L
+ LD D,080H
+ LD A,D
+ ADD A,E
+L8447: OR D
+ CALL C,L7D80
+ LD A,00CH
+ DEC C
+ ADD A,B
+ LD A,(HL)
+ SBC A,(HL)
+ LD DE,0805DH
+ LD A,A
+ LD C,(HL)
+ BIT 3,D
+L8458: LD A,D
+ EX AF,AF'
+ ADC A,B
+ ADC A,B
+ ADC A,C
+L845D: ADD A,B
+ LD SP,L1772
+ RET M
+L8462: ADD A,B
+ LD SP,L1772
+ RET M
+L8467: ADD A,C
+ JR C,L8414 ; (-056H)
+ DEC SP
+ LD HL,(03180H)
+ LD (HL),D
+ RLA
+ RET M
+L8471: DS 2, 000H
+L8473: DS 2, 000H
+L8475: DS 4, 000H
+L8479: DS 4, 000H
+L847D: DS 2, 000H
+L847F: DS 2, 000H
+L8481: DS 2, 000H
+L8483: DS 2, 000H
+L8485: DB 000H
+L8486: DB 000H
+L8487: DS 2, 000H
+L8489: DS 2, 000H
+L848B: DS 4, 000H
+L848F: DB 000H
+L8490: DS 2, 000H
+ DB 015H
+ DB 000H
+ DB 0EBH
+ DB 0FFH
+ DS 2, 000H
+L8498: DS 2, 000H
+L849A: DS 2, 000H
+L849C: DS 7, 000H
+L84A3: DB 000H
+L84A4: DS 3, 000H
+L84A7: DB 000H
+L84A8: DS 4, 000H
+L84AC: DB 000H
+L84AD: DS 8, 000H
+L84B5: DS 25, 000H
+L84CE: DB 008H ; Splash screen / banner text
+L84CF: DS 8, 000H
+L84D7: DS 8, 000H
+L84DF: DS 8, 000H
+L84E7: DB 016H
+ DB 00DH
+ DB 020H
+ DS 38, 0D7H
+ DS 4, 020H
+ DB "BASIC ",005H,"INTERPRETER"
+ DS 2, 020H
+ DB 006H,"MZ-5Z"
+ DS 2, 030H
+ DB "8 V1.0A ",00DH
+ DS 3, 020H
+ DB 043H,005H,"OPYRIGHT ",006H,"(C) 1984 ",005H,"BY ",006H,"SHARP CORP."
+ DS 5, 020H
+ DS 38, 0CFH
+ DB 020H,00DH,020H,005H,"30134 BYTES FR"
+ DS 2, 045H
+ DS 2, 00DH
+ DS 93, 000H
diff --git a/dis/MZ-5Z008/mz5z008_dz80.asm b/dis/MZ-5Z008/mz5z008_dz80.asm
new file mode 100644
index 0000000..0dec91b
--- /dev/null
+++ b/dis/MZ-5Z008/mz5z008_dz80.asm
@@ -0,0 +1,20186 @@
+; Disassembly of the file "mz5z008.bin"
+;
+; CPU Type: Z80
+;
+; Created with dZ80 2.1
+;
+; on Monday, 16 of March 2026 at 07:23 PM
+;
+LSD0 EQU 0D0H
+LSD1 EQU 0D1H
+LSD2 EQU 0D2H
+LSD3 EQU 0D3H
+LSE0 EQU 0E0H
+LSE1 EQU 0E1H
+LSE2 EQU 0E2H
+LSE3 EQU 0E3H
+LSE4 EQU 0E4H
+LSE5 EQU 0E5H
+LSE6 EQU 0E6H
+QDPA EQU 0F2H
+QDPB EQU 0F3H
+QDPC EQU 0F4H
+QDPD EQU 0F5H
+FDPA EQU 0F8H
+FDPB EQU 0F9H
+FDPC EQU 0FAH
+FDPD EQU 0FBH
+LSFC EQU 0FCH
+TMCNT EQU 01195H
+CSMDT EQU 01199H
+TEMPW EQU 0119EH
+KEY262 EQU 012AAH
+KEY264 EQU 012ACH
+KEY266 EQU 012AEH
+FUNBUF EQU 012B2H
+INBUFC EQU 01352H
+INBUFL EQU 01353H
+INBUF EQU 01354H
+LINLIM EQU 01364H
+KEYDAT EQU 01365H
+AMPM EQU 01366H
+SECD EQU 01367H
+XS EQU 01369H
+XE EQU 0136AH
+CWIDTH EQU 0136BH
+CSIZE EQU 0136DH
+YS EQU 0136FH
+YE EQU 01370H
+YW EQU 01371H
+SOF EQU 01372H
+SW EQU 01374H
+SSA EQU 01375H
+SEA EQU 01376H
+SSW EQU 01377H
+CRTMD1 EQU 01379H
+CRTMD2 EQU 0137AH
+SELCOL EQU 0137BH
+PAIWED EQU 0137CH
+PALBK EQU 0137EH
+PALAD EQU 0137FH
+PALTBL EQU 01381H
+PAL2T EQU 01385H
+PAL4T EQU 01389H
+PAL16T EQU 0138DH
+CURDT1 EQU 01391H
+CURDT2 EQU 01399H
+CURDT3 EQU 013A1H
+SCRNT0 EQU 013A9H
+EMFLG EQU 013C3H
+EMPTR EQU 013C4H
+EMWP0 EQU 013C6H
+EMWP1 EQU 013C8H
+PBCN EQU 013CEH
+HERRF EQU 013D9H
+CTABLE EQU 013DAH
+FONTBF EQU 01000H
+TEXTBF EQU 02000H
+BITBUF EQU 08000H
+IBUFE EQU 010F0H
+ERRTXT EQU 0FDA0H
+VRAM EQU 0D000H
+ARAM EQU 0D800H
+MMIO EQU 0E000H
+TEMPO_ EQU 0E008H
+PPI_PA EQU 0E010H
+PPI_PB EQU 0E011H
+PPI_PC EQU 0E012H
+PPI_CTL EQU 0E013H
+PRGSTART EQU 00000H
+
+; RFS (ROM Filing System) constants for picoZ80
+PORT_LODRAM EQU 0E0H ; OUT: map 0000-0FFF to DRAM
+PORT_DRAM EQU 0E1H ; OUT: map D000-FFFF to DRAM
+PORT_LOROM EQU 0E2H ; OUT: map 0000-0FFF to Monitor ROM
+PORT_MMIO EQU 0E3H ; OUT: map D000-FFFF to VRAM/MMIO/ROM
+BNKCTRLRST EQU 0EFF8H ; RFS bank control reset register
+BNKCTRL EQU 0EFFFH ; Bank Control register (CS, CLK bits)
+HWSPIDATA EQU 0EFFBH ; Hardware SPI Data register (read/write)
+HWSPISTART EQU 0EFFCH ; Start SPI transfer register
+; SECTORBUF relocated to RFS data area — was EQU 0CE00H (overlapped BASIC stack)
+SDCS_ACT EQU 001H ; BNKCTRL: CS LOW (active), BBCLK enable
+SDCS_DEACT EQU 003H ; BNKCTRL: CS HIGH (inactive), BBCLK enable
+HDRLEN EQU 00040H ; File header length (64 bytes)
+
+ ORG PRGSTART
+
+L0000: JP L0CAF ; Cold start entry - JP to initialization
+
+L0003: JP L028C
+
+L0006: JP L05EC
+
+ JP L05E8
+
+L000C: JP L0BFD
+
+L000F: JP L05F1
+
+L0012: JP L0BFF
+
+L0015: JP L0BEE
+
+SVC_ENTRY: JP SVC_DISP ; RST 18H - SVC (Supervisor Call) dispatcher
+
+ JP L041C
+
+BRKCHK: JP L05C1
+
+ JP L30CB
+
+ JP L30D2
+
+L0027: JP L3114
+
+ JP L311B
+
+ JP L3153
+
+L0030: JP L14BC
+
+ JP L0955
+
+L0036: LD B,B
+ NOP
+RST38: JP BREAKZ ; RST 38H - Interrupt handler
+
+ JP L098F
+
+L003E: JP L0D3F
+
+L0041: JP L0D30
+
+ JP L0D05
+
+ JP L0D20
+
+ JP L028C
+
+L004D: DB 000H ; System status / work area
+L004E: DB 000H
+L004F: DB 0FFH
+L0050: DB 000H
+ DB 0C3H
+ DB 0EEH
+ DB 00BH
+L0054: DS 2, 000H
+L0056: DB 000H
+L0057: DB 018H
+ DB 0C3H
+ DB 08AH
+ DB 003H
+L005B: DB 000H
+ DB 027H
+L005D: DB 071H
+ DB 000H
+L005F: DB 000H
+L0060: DB 0EFH
+ DB 0C3H
+ DB 037H
+ DB 00AH
+L0064: DB 000H
+L0065: DB 000H
+L0066: DB 000H
+L0067: DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 0ADH
+ DB 007H
+ DB 0F1H
+ DB 008H
+L0071: DB 015H
+ DB 008H
+ DB 012H
+ DB 008H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+L0080: DB 000H
+L0081: DB 0ADH
+ DB 007H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB 01EH
+ DB 008H
+ DB 0CCH
+ DB 007H
+ DB 0F0H
+ DB 007H
+ DB LSD1
+ DB 007H
+ DB QDPD
+ DB 007H
+ DB 054H
+ DB 007H
+ DB 074H
+ DB 007H
+ DB 018H
+ DB 008H
+ DB 0BAH
+ DB 008H
+ DB 012H
+ DB 008H
+ DB LSE5
+ DB 000H
+ DB 0ADH
+ DB 007H
+ DB LSE5
+L00A0: DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+.NOP: DB 000H
+.HL: DS 11, 000H
+.RET: DS 8, 000H
+PUSHRA: DS 6, 000H
+L00C0: DS 7, 000H
+PUSHR: DS 18, 000H
+L00D9: DB 000H
+L00DA: DI
+ LD SP,L0000
+ IM 1
+ OUT (LSE1),A
+ JP L1800
+
+BREAKZ: RET
+
+BREAKX: DI
+ OUT (LSE3),A
+L00E9: LD A,(HL)
+ OUT (LSE1),A
+ EI
+ERRORJ: RET
+
+POPRA: DI
+ OUT (LSE3),A
+ LD (HL),A
+ OUT (LSE1),A
+ EI
+ RET
+
+ JP L026A
+
+L00F9: NOP
+L00FA: JP (HL)
+
+IOOUT: EX (SP),IX
+ PUSH HL
+ PUSH BC
+ PUSH DE
+L0100: PUSH AF
+L0101: PUSH HL
+ LD HL,L0114
+ EX (SP),HL
+ JP (IX)
+
+SKPDE: EX (SP),IX
+ PUSH HL
+ PUSH BC
+ PUSH DE
+DEVASC: PUSH HL
+ LD HL,L0115
+ EX (SP),HL
+ JP (IX)
+
+L0114: POP AF
+L0115: POP DE
+ POP BC
+ POP HL
+ POP IX
+ RET
+
+CHKACC: EX (SP),HL
+ PUSH BC
+ LD B,(HL)
+L011E: INC HL
+ CP (HL)
+ JR Z,L0127 ; (+005H)
+ DJNZ L011E ; (-006H)
+ INC HL
+ JR L012A ; (+003H)
+
+L0127: INC HL
+ DJNZ L0127 ; (-003H)
+L012A: POP BC
+ EX (SP),HL
+ RET
+
+LDDEMI: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ RET
+
+LDDEMD: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ RET
+
+?CLRHL: XOR A
+?SETHL: LD (HL),A
+ INC HL
+ DJNZ ?SETHL ; (-004H)
+ RET
+
+?CLRDE: XOR A
+?SETDE: LD (DE),A
+ INC DE
+L0140: DJNZ ?SETDE ; (-004H)
+ RET
+
+LDDEHL: LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ DJNZ LDDEHL ; (-006H)
+ RET
+
+LDHLDE: LD A,(DE)
+ LD (HL),A
+ INC HL
+ INC DE
+ DJNZ LDHLDE ; (-006H)
+ RET
+
+INDRCT: PUSH AF
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ POP AF
+ RET
+
+ADDHLA: ADD A,L
+ LD L,A
+ RET NC
+ INC H
+ RET
+
+INCHLF: INC HL
+HLFTCH: LD A,(HL)
+ CP 020H
+ JR Z,INCHLF ; (-006H)
+ RET
+
+TEST1: CALL HLFTCH
+ EX (SP),HL
+L0168: CP (HL)
+ INC HL
+ EX (SP),HL
+ RET NZ
+ INC HL
+ RET
+
+TESTX: CALL HLFTCH
+ EX (SP),HL
+ CP (HL)
+ INC HL
+ EX (SP),HL
+ INC HL
+ RET Z
+ LD A,001H
+ JR L0182 ; (+007H)
+
+L017B: XOR A
+ LD HL,L803E
+ LD HL,L80F6
+L0182: PUSH AF
+ CALL L0D20
+ POP AF
+ JP L0000
+
+; ---------------------------------------------------------------------------
+; SVC Dispatch Table (L018A - ~0x0201)
+;
+; This is a lookup table of 2-byte handler addresses indexed by SVC number.
+; SVC_DISP uses: handler = word[L018A + SVC*2].
+; NOTE: The bytes in this table also serve as executable code — several
+; labels within the table (L01A2, L01CE, L01D9, L01E0) are jump targets
+; from nearby code. This dual-purpose layout prevents conversion to DW.
+;
+; Key entries:
+; SVC #00=3D9D #02=05E8 #05=0908 #20=0D3E #29=1EDB #2A=1F1D
+; SVC #2E=19E0 #33=1AE1 #39=1D1B #3A=14DD
+; ---------------------------------------------------------------------------
+L018A: SBC A,L
+ DEC A
+ CALL PE,0E805H
+ DEC B
+ RST 038H
+ DEC BC
+ LD B,E
+ INC C
+ EX AF,AF'
+ ADD HL,BC
+ XOR C
+ RRCA
+ LD A,00FH
+ RET Z
+ DEC BC
+ JP Z,0D80BH
+ DEC BC
+ AND 00BH
+L01A2: ADC A,H
+ LD (BC),A
+ ADC A,D
+ INC BC
+ POP BC
+ DEC B
+ AND B
+ INC D
+ ADD A,A
+ LD A,(BC)
+ ADC A,C
+ LD A,(BC)
+ SCF
+ LD A,(BC)
+ LD B,(HL)
+ INC D
+ HALT
+ INC D
+ SUB C
+ INC D
+ LD B,014H
+ LD E,H
+ LD (BC),A
+ POP HL
+ INC C
+ RET PE
+ INC C
+ RST 028H
+ INC C
+ PUSH HL
+ INC D
+ AND H
+ INC DE
+ LD (HL),D
+ INC DE
+ LD C,E
+ LD B,LSE5
+ NOP
+ LD A,00DH
+ JR NC,L01CE ; (+000H)
+L01CE: PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ ADC A,A
+ ADD HL,BC
+ LD D,L
+ ADD HL,BC
+ SUB B
+L01D9: DEC C
+ RET PE
+ DEC DE
+ IN A,(01EH)
+ DEC E
+ RRA
+L01E0: POP AF
+ LD E,03DH
+ LD A,(DE)
+ CP B
+ LD A,(DE)
+ RET PO
+ ADD HL,DE
+ LD (HL),C
+ DEC DE
+ OR H
+ INC E
+ RET C
+ INC E
+ RET
+
+ INC E
+ POP HL
+ LD A,(DE)
+ RET NC
+ JR L01D9 ; (-01cH)
+
+ JR 00243H ; (+04cH)
+
+ ADD HL,DE
+ RRCA
+ JR L01A2 ; (-059H)
+
+ DEC DE
+ DEC DE
+ DEC E
+ DB 0DDH
+ INC D
+L0200: PUSH HL
+ NOP
+ LD E,B
+ LD E,067H
+ INC L
+ OR (HL)
+ INC L
+ LD B,(HL)
+ INC L
+ NOP
+ ADD HL,HL
+ SBC A,L
+ LD HL,(02925H)
+ XOR E
+ RRA
+ CALL M,L742A
+ RLCA
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+ PUSH HL
+ NOP
+SVC_DISP: EX (SP),HL
+ PUSH AF
+ LD A,(HL)
+ INC HL
+ PUSH HL
+ LD HL,L018A
+ ADD A,A
+ ADD A,L
+ JR NC,L0237 ; (+001H)
+ INC H
+L0237: LD L,A
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ LD (00243H),HL
+ POP HL
+ POP AF
+ EX (SP),HL
+ JP L0000
+
+IOCALL: PUSH HL
+ PUSH DE
+ LD (00251H),IX
+ LD IX,00180H
+ OR A
+ CALL L0000
+ POP DE
+ POP HL
+ RET NC
+ OR A
+ SCF
+L0258: RET Z
+ JP 00180H
+
+ PUSH DE
+ LD B,000H
+L025F: LD A,(DE)
+ OR A
+ JR Z,L0268 ; (+005H)
+ INC DE
+ INC B
+ JR NZ,L025F ; (-008H)
+ DEC B
+L0268: POP DE
+ RET
+
+L026A: PUSH HL
+ LD HL,(L0054)
+ PUSH HL
+ PUSH DE
+ CALL PUSHW
+ POP DE
+ LD (HL),000H
+ POP HL
+ CALL L028C
+ JR C,L028A ; (+00eH)
+ LD A,(L005B)
+ SUB L
+ JR NC,L028A ; (+008H)
+ NEG
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ EX DE,HL
+ OR A
+L028A: POP HL
+ RET
+
+L028C: PUSH BC
+ PUSH HL
+ PUSH DE
+L028F: CALL L0391
+ CP 00DH
+ JP Z,L0311
+ CP 01BH
+ JR Z,L02E8 ; (+04dH)
+ PUSH AF
+ CP 020H
+DEASC: JR C,L02CD ; (+02dH)
+ JR L02C8 ; (+026H)
+
+L02A2: LD A,(L004D)
+ OR A
+ JR NZ,L02C8 ; (+020H)
+ LD A,(00B18H)
+ RRCA
+ JR C,L02C8 ; (+01aH)
+ LD A,(L004E)
+ OR A
+ JR NZ,L02C8 ; (+014H)
+ POP AF
+ LD HL,L06C1
+ CP 011H
+ JR Z,L02C3 ; (+007H)
+ LD HL,L06E7
+ CP 012H
+ JR NZ,L02C9 ; (+006H)
+L02C3: CALL L00FA
+ JR L028F ; (-039H)
+
+L02C8: POP AF
+L02C9: RST 018H
+ DB 003H
+ JR L028F ; (-03eH)
+
+L02CD: LD A,(L0060)
+ CP 0FFH
+ JR NZ,L02A2 ; (-032H)
+ POP AF
+ CP 017H
+ JR NC,L02C9 ; (-010H)
+ CP 011H
+ JR C,L02C9 ; (-014H)
+ LD HL,(00B18H)
+ BIT 6,L
+ JR Z,L02C9 ; (-01bH)
+ RST 018H
+ DB 004H
+ JR L028F ; (-059H)
+
+L02E8: SCF
+CKHEX: PUSH AF
+ LD A,00DH
+ RST 018H
+ DB 003H
+ POP AF
+ POP DE
+ POP HL
+ POP BC
+ RET
+
+L02F3: CALL PUSHW
+L02F6: LD A,(HL)
+ OR A
+MHALT: RET Z
+ DEC HL
+ DEC E
+ LD A,(L0056)
+ CP E
+ JR C,L02F6 ; (-00bH)
+ RET
+
+L0302: CALL PUSHW
+L0305: INC E
+ INC HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD A,(L0057)
+ CP E
+ JR NC,L0305 ; (-00bH)
+ RET
+
+L0311: LD HL,(L0054)
+SETDFL: CALL L02F3
+ LD D,E
+ CALL L0305
+ LD A,(L005B)
+ LD L,A
+ LD A,E
+ SUB D
+ LD E,A
+ LD H,D
+ADDP1: LD D,L
+ RST 018H
+ DB 01EH
+ LD A,(0005CH)
+ SUB D
+ADDP2: INC A
+ LD D,A
+ POP BC
+ PUSH BC
+ EXX
+ PUSH HL
+ LD HL,(L004F)
+ EXX
+L0334: PUSH DE
+ PUSH HL
+L0336: CALL BREAKX
+ RST 018H
+ DB 01CH
+ INC HL
+ LD (BC),A
+ INC BC
+L033E: EXX
+ DEC L
+ERRX: JR Z,L0354 ; (+012H)
+ EXX
+ DEC D
+ JR NZ,L0336 ; (-010H)
+ POP HL
+ PUSH BC
+ LD BC,00028H
+ ADD HL,BC
+ POP BC
+ POP DE
+ DEC E
+ JR NZ,L0334 ; (-01dH)
+ PUSH DE
+ PUSH HL
+ EXX
+L0354: EXX
+ POP HL
+ POP DE
+ EXX
+ POP HL
+ EXX
+ XOR A
+ LD (BC),A
+ LD L,C
+ LD H,B
+ POP DE
+ PUSH DE
+ PUSH HL
+ OR A
+ SBC HL,DE
+ LD B,L
+ POP HL
+ LD A,020H
+ LD D,A
+ JP Z,CKHEX
+ DEC HL
+L036D: LD A,(HL)
+ OR A
+ JR Z,L0376 ; (+005H)
+ CP D
+ JR NZ,L037D ; (+009H)
+ LD (HL),000H
+L0376: DEC HL
+ DJNZ L036D ; (-00cH)
+ OR A
+ JP CKHEX
+
+L037D: LD A,(HL)
+ OR A
+ JR NZ,L0383 ; (+002H)
+ LD (HL),020H
+L0383: DEC HL
+ DJNZ L037D ; (-009H)
+ OR A
+ JP CKHEX
+
+ INC A
+ JR Z,L0406 ; (+079H)
+ DEC A
+ JP Z,L041C
+L0391: CALL L0426
+ CALL SKPDE
+SETDNM: CALL L0648
+ CALL BREAKX
+ LD D,A
+ LD A,(L0060)
+ LD E,A
+ CALL POPRA
+ XOR A
+ DI
+ OUT (LSE3),A
+ LD (MMIO),A
+ CPL
+ LD (MMIO),A
+ OUT (LSE1),A
+ EI
+ LD C,000H
+ EX AF,AF'
+ PUSH AF
+ CALL L0459
+ LD A,000H
+L03BC: EX AF,AF'
+L03BD: LD B,010H
+L03BF: CALL L043C
+ CALL L0459
+ BIT 1,A
+ JR NZ,L03BD ; (-00cH)
+ DJNZ L03BF ; (-00cH)
+ BIT 0,A
+ JR Z,L03DB ; (+00cH)
+ BIT 2,A
+ JR NZ,L03EC ; (+019H)
+ EX AF,AF'
+ DEC A
+ JR NZ,L03BC ; (-01bH)
+ LD A,006H
+ JR L03EE ; (+013H)
+
+L03DB: PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,INKEY1
+ LD DE,L0B17
+ LD BC,0000AH
+L03E7: LDIR
+ POP BC
+ POP DE
+ POP HL
+L03EC: LD A,040H
+L03EE: LD (003BBH),A
+L03F1: CALL L043C
+ CALL L0494
+ OR A
+ JR Z,L03F1 ; (-009H)
+ LD (L005F),A
+ LD C,A
+ LD A,D
+ CALL POPRA
+ POP AF
+ EX AF,AF'
+ LD A,C
+ RET
+
+L0406: CALL L0426
+ PUSH HL
+ CALL L0494
+ LD HL,L005F
+ OR A
+ JR Z,L0419 ; (+006H)
+ CP (HL)
+ JR NZ,L0419 ; (+003H)
+ POP HL
+ XOR A
+ RET
+
+L0419: LD (HL),A
+ POP HL
+ RET
+
+L041C: CALL L0426
+ CALL L0494
+ LD (L005F),A
+ RET
+
+L0426: PUSH HL
+ LD HL,(L1360)
+ LD A,L
+ CP H
+ POP HL
+ RET Z
+ EX (SP),HL
+ INC A
+ LD (L1360),A
+ LD HL,L1361
+ CALL ADDHLA
+ LD A,(HL)
+ POP HL
+ RET
+
+L043C: DI
+ OUT (LSE3),A
+ LD A,(0E002H)
+ OUT (LSE1),A
+ EI
+ RLCA
+ RLCA
+ LD A,C
+ JR C,L0451 ; (+007H)
+ OR A
+ RET Z
+ LD C,000H
+ LD A,D
+DPALBK: JR L0456 ; (+005H)
+
+L0451: DEC A
+ RET Z
+ LD C,001H
+ LD A,E
+L0456: JP POPRA
+
+L0459: CALL SKPDE
+ LD DE,INKEY1
+ LD HL,L0B17
+ LD BC,L0A00
+ DI
+ OUT (LSE3),A
+L0468: LD A,B
+ ADD A,0EFH
+ LD (MMIO),A
+ CP FDPA
+ LD A,(0E001H)
+ JR NZ,L0477 ; (+002H)
+ OR 07FH
+L0477: CP 0FFH
+ JR Z,L047D ; (+002H)
+ SET 0,C
+L047D: EX DE,HL
+ CP (HL)
+ LD (HL),A
+ EX DE,HL
+ JR Z,L0485 ; (+002H)
+ SET 1,C
+L0485: CPL
+ AND (HL)
+ JR Z,L048B ; (+002H)
+ SET 2,C
+L048B: INC HL
+ INC DE
+ DJNZ L0468 ; (-027H)
+ LD A,C
+L0490: OUT (LSE1),A
+ EI
+DGCOL: RET
+
+L0494: CALL SKPDE
+ LD HL,L0B17
+ LD DE,INKEY1
+ PUSH HL
+ PUSH DE
+ LD BC,0000AH
+ LDIR
+ POP HL
+ POP DE
+ LD BC,L0AF9
+ DI
+ OUT (LSE3),A
+ LD A,C
+ LD (MMIO),A
+ NOP
+ LD A,(0E001H)
+ LD (DE),A
+L04B5: LD A,C
+ LD (MMIO),A
+ CP FDPA
+ LD A,(0E001H)
+ LD (DE),A
+ JR Z,L04E4 ; (+023H)
+ CPL
+ AND (HL)
+L04C3: LD (HL),A
+ INC DE
+ INC HL
+ DEC C
+ DJNZ L04B5 ; (-014H)
+ OUT (LSE1),A
+ EI
+ LD BC,L0A00
+L04CF: DEC HL
+ LD A,(HL)
+ OR A
+ JR NZ,L0507 ; (+033H)
+ INC C
+ DJNZ L04CF ; (-008H)
+ LD B,00AH
+L04D9: DEC DE
+ LD A,(DE)
+ CP 0FFH
+ JR NZ,L04E7 ; (+008H)
+L04DF: DJNZ L04D9 ; (-008H)
+L04E1: XOR A
+ JR L0490 ; (-054H)
+
+L04E4: XOR A
+ JR L04C3 ; (-024H)
+
+L04E7: LD A,B
+ CP 002H
+ JR NZ,L04F5 ; (+009H)
+L04EC: LD A,(DE)
+ AND 081H
+DWIDTH: JR NZ,L04DF ; (-012H)
+ LD A,01BH
+ JR L0490 ; (-065H)
+
+L04F5: CP 001H
+ JR Z,L04E1 ; (-018H)
+ CP 000H
+ JR NZ,L04DF ; (-01eH)
+ LD A,(DE)
+ AND 001H
+ JR NZ,L04DF ; (-023H)
+ LD A,(L005F)
+ JR L0490 ; (-077H)
+
+L0507: PUSH AF
+ LD A,B
+ LD (004FAH),A
+ LD A,(HL)
+ LD (004FFH),A
+ POP AF
+ DEC B
+ JR NZ,L054A ; (+036H)
+ CALL L05B7
+ LD A,(00B18H)
+ BIT 6,A
+ JR Z,L04E1 ; (-03dH)
+ BIT 0,A
+ LD A,B
+ JR NZ,L0525 ; (+002H)
+ ADD A,005H
+L0525: CP 00AH
+ JR NC,L04E1 ; (-048H)
+ LD L,A
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ LD BC,L12C0
+ ADD HL,BC
+ LD A,(HL)
+ OR A
+ JR Z,L04E1 ; (-057H)
+ LD DE,L1360
+ LD A,001H
+ LD (DE),A
+L053E: INC DE
+ LD BC,00010H
+ LDIR
+ LD A,(01362H)
+ JP L0490
+
+L054A: CALL L05B7
+ LD A,C
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,B
+ LD L,A
+ LD H,000H
+ LD A,(00B18H)
+ BIT 6,A
+ LD BC,L0B2B
+ JR Z,L058E ; (+02fH)
+ PUSH AF
+ LD A,(L0060)
+ CP 043H
+ JR NZ,L056B ; (+004H)
+ POP AF
+ XOR 001H
+ PUSH AF
+L056B: POP AF
+ BIT 0,A
+ JR NZ,L0573 ; (+003H)
+ LD BC,L0B3D
+L0573: LD A,(L0060)
+ CP 0FFH
+ JR NZ,L0587 ; (+00dH)
+ LD BC,L0B4F
+ LD A,(00B18H)
+ BIT 0,A
+ JR Z,L0587 ; (+003H)
+ LD BC,L0B61
+L0587: CALL L13E0
+ LD A,C
+ JP L0490
+
+L058E: CALL L13E0
+ LD A,C
+ CP 020H
+ JP C,L0490
+ LD HL,L0B73
+ LD B,005H
+L059C: CP (HL)
+ JR Z,L05B1 ; (+012H)
+ INC HL
+ DJNZ L059C ; (-006H)
+ CP 040H
+ JP C,L04E1
+ CP 05BH
+ JP NC,L04E1
+ SUB 040H
+ JP L0490
+
+L05B1: LD A,020H
+ SUB B
+ JP L0490
+
+L05B7: LD B,008H
+L05B9: RRCA
+ JR C,L05BF ; (+003H)
+ DJNZ L05B9 ; (-005H)
+ RET
+
+L05BF: DEC B
+ RET
+
+L05C1: LD A,0E8H
+ DI
+ OUT (LSE3),A
+ LD (MMIO),A
+ NOP
+ LD A,(0E001H)
+ OUT (LSE1),A
+ EI
+ AND 081H
+ RET Z
+ RLCA
+ RET C
+ JR L05C1 ; (-016H)
+
+L05D7: CALL SKPDE
+ LD HL,(L0054)
+ LD A,(L005B)
+ CP L
+ RET C
+ CALL PUSHW
+ LD A,(HL)
+ OR A
+ RET
+
+L05E8: CALL L05D7
+ RET Z
+L05EC: LD A,00DH
+ JP L0BFF
+
+L05F1: CALL L0BFD
+ LD A,(L0054)
+L05F7: SUB 00AH
+LBOUND: JR NC,L05F7 ; (-004H)
+ ADD A,00AH
+ RET Z
+ JR L05F1 ; (-00fH)
+
+L0600: CALL IOOUT
+ LD HL,(L0054)
+ PUSH HL
+ PUSH AF
+ RST 018H
+ DB 01EH
+ POP AF
+ RST 018H
+ DB 01DH
+ CALL POPRA
+ SET 3,H
+ LD DE,(0005DH)
+ LD A,E
+ OR D
+ CALL POPRA
+ POP HL
+ INC L
+HCLSW: LD A,(0005CH)
+ CP L
+ JP NC,L07EC
+L0624: LD A,(L005B)
+ LD L,A
+ INC H
+ PUSH HL
+ CALL PUSHW
+ LD (HL),001H
+ POP HL
+ LD A,(L0057)
+ CP H
+ JP NC,L07EC
+ LD H,A
+ PUSH HL
+ CALL L0730
+ POP HL
+ JP L07EC
+
+PUSHW: LD E,H
+ LD D,000H
+ LD HL,.HL
+ ADD HL,DE
+ RET
+
+L0648: LD HL,(L0054)
+ PUSH DE
+ PUSH AF
+ LD D,LSD0
+ LD E,L
+ LD A,H
+ ADD A,A
+HCLS: ADD A,A
+ ADD A,H
+ LD L,A
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,DE
+L065B: POP AF
+ POP DE
+ RET
+
+L065E: ADD A,A
+ LD HL,L0067
+ CALL ADDHLA
+ CALL INDRCT
+ JP (HL)
+
+L0669: LD B,D
+ LD C,E
+L066B: LD DE,00028H
+ EX DE,HL
+ ADD HL,DE
+ DEC B
+ JR Z,L067E ; (+00bH)
+ PUSH HL
+ PUSH BC
+ LD B,000H
+ CALL L069E
+ POP BC
+ POP HL
+ JR L066B ; (-013H)
+
+L067E: EX DE,HL
+ LD E,C
+L0680: LD A,(L005D)
+ LD D,A
+ LD A,(0005EH)
+ OR D
+ LD D,A
+L0689: DI
+ OUT (LSE3),A
+ LD (HL),000H
+ SET 3,H
+ LD (HL),D
+ RES 3,H
+ OUT (LSE1),A
+ EI
+ INC HL
+ DEC E
+ JR NZ,L0689 ; (-011H)
+ RET
+
+L069B: LD BC,00028H
+L069E: LD A,0B0H
+ JR L06A4 ; (+002H)
+
+L06A2: LD A,0B8H
+L06A4: LD (006BCH),A
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ RES 3,H
+ RES 3,D
+ CALL L06B8
+ POP BC
+ POP DE
+ POP HL
+ SET 3,H
+ SET 3,D
+L06B8: DI
+ OUT (LSE3),A
+ LDIR
+ OUT (LSE1),A
+ EI
+ RET
+
+L06C1: LD HL,VRAM
+ LD DE,0D7D0H
+ CALL L069B
+ LD HL,0D028H
+ LD DE,VRAM
+ LD B,032H
+L06D2: PUSH BC
+ CALL L069B
+ POP BC
+ DJNZ L06D2 ; (-007H)
+ LD HL,.HL
+ LD D,H
+ LD E,L
+ LD A,(HL)
+ INC HL
+ LD BC,00031H
+ LDIR
+ LD (DE),A
+ RET
+
+L06E7: LD HL,0D7CFH
+ LD DE,0D7F7H
+ LD B,032H
+L06EF: PUSH BC
+ LD BC,00028H
+ CALL L06A2
+ POP BC
+ DJNZ L06EF ; (-00aH)
+ LD HL,0D7D0H
+ LD DE,VRAM
+ CALL L069B
+ LD HL,L00D9
+ LD D,H
+ LD E,L
+ DEC HL
+ LD A,(DE)
+ LD BC,00031H
+ LDDR
+ LD (DE),A
+ RET
+
+L0710: LD HL,0D3E8H
+ XOR A
+ CALL POPRA
+ SET 3,H
+ LD A,(L005D)
+ CALL POPRA
+ LD DE,0D3E9H
+ LD BC,L0027
+ CALL L069E
+ CALL L06C1
+ XOR A
+ LD (L00C0),A
+ RET
+
+L0730: LD A,(L004E)
+ OR A
+ JR Z,L0710 ; (-026H)
+ CALL L075F
+ CALL L0669
+ LD A,(L0056)
+ LD H,A
+ CALL PUSHW
+ LD A,(L0057)
+ SUB E
+ LD B,A
+ LD (HL),000H
+ INC HL
+ LD D,H
+ LD E,L
+ INC DE
+ CALL NZ,LDHLDE
+ LD (HL),000H
+ RET
+
+L0754: LD A,(L005B)
+ LD L,A
+ LD A,(L0056)
+ LD H,A
+ JP L07EC
+
+L075F: LD HL,(L005B)
+ LD DE,(00056H)
+ LD A,D
+L0767: SUB E
+ INC A
+ LD D,A
+ LD A,H
+ SUB L
+ INC A
+L076D: LD E,A
+ CALL L0754
+ JP L0648
+
+ CALL SKPDE
+ LD A,(L004E)
+L077A: OR A
+ JR NZ,L078B ; (+00eH)
+ LD A,031H
+ LD (L0057),A
+ CALL L078B
+ LD A,018H
+ LD (L0057),A
+ RET
+
+L078B: CALL L075F
+L078E: PUSH DE
+ PUSH HL
+ CALL L0680
+ POP HL
+ LD BC,00028H
+ ADD HL,BC
+ POP DE
+ DEC D
+ JR NZ,L078E ; (-00eH)
+ LD A,(L0056)
+ LD H,A
+ CALL PUSHW
+ LD A,(L0057)
+ SUB E
+ ADD A,002H
+ LD B,A
+ JP ?CLRHL
+
+ XOR A
+ LD (0091FH),A
+ LD HL,(L0054)
+ PUSH HL
+ INC H
+ CALL PUSHW
+ LD A,(L0057)
+ LD D,A
+L07BD: LD A,(HL)
+ OR A
+ JR Z,L07C7 ; (+006H)
+ INC HL
+ INC E
+ LD A,D
+ CP E
+ JR NC,L07BD ; (-00aH)
+L07C7: DEC E
+ POP HL
+ LD H,E
+ JR L07DB ; (+00fH)
+
+ LD HL,(L0054)
+ JR L07DF ; (+00eH)
+
+ LD HL,(L0054)
+ INC L
+ LD A,(0005CH)
+ CP L
+ JR NC,L07EC ; (+011H)
+L07DB: LD A,(L005B)
+ LD L,A
+L07DF: INC H
+ LD A,(L0057)
+ CP H
+ JR NC,L07EC ; (+006H)
+ LD H,A
+ PUSH HL
+ CALL L0730
+ POP HL
+L07EC: LD (L0054),HL
+ RET
+
+ LD HL,(L0054)
+ JR L0802 ; (+00dH)
+
+ LD HL,(L0054)
+ LD A,(L005B)
+ CP L
+ JR C,0080DH ; (+00fH)
+ LD A,(0005CH)
+ LD L,A
+L0802: LD A,(L0056)
+ CP H
+ JR C,0080FH ; (+007H)
+ LD A,(L0056)
+ LD H,A
+ LD A,02DH
+ LD A,025H
+ JR L07EC ; (-026H)
+
+ LD A,0EFH
+ LD HL,L433E
+ LD HL,0FF3EH
+ LD (L0060),A
+ RET
+
+ LD HL,(L0054)
+ LD BC,(0005BH)
+ LD A,L
+ DEC L
+ INC C
+ CP C
+ JR NC,L0837 ; (+00cH)
+ PUSH HL
+ CALL PUSHW
+ LD A,(HL)
+ POP HL
+ INC L
+ OR A
+ JR Z,L0874 ; (+03fH)
+ LD L,B
+ DEC H
+L0837: LD DE,(00054H)
+ LD (L0054),HL
+L083E: EX DE,HL
+ LD A,(L005B)
+ CP L
+ JR C,L086D ; (+028H)
+L0845: PUSH HL
+ CALL PUSHW
+ LD A,(HL)
+ POP HL
+ OR A
+ JR Z,L085D ; (+00fH)
+ CALL L0882
+ PUSH HL
+ LD A,(0005CH)
+ LD L,A
+ DEC H
+ CALL L089A
+ POP HL
+ JR L0874 ; (+017H)
+
+L085D: LD A,(0005CH)
+ LD L,A
+ DEC H
+L0862: LD DE,(0005DH)
+ LD A,E
+ OR D
+ LD E,A
+ LD D,000H
+ JR L089A ; (+02dH)
+
+L086D: CALL L0882
+ DEC BC
+ CALL L0895
+L0874: INC L
+ LD A,(0005CH)
+ CP L
+ JR NC,L086D ; (-00eH)
+ LD A,(L005B)
+ LD L,A
+ INC H
+ JR L0845 ; (-03dH)
+
+L0882: PUSH HL
+ RST 018H
+ DB 01EH
+ SET 3,H
+ CALL BREAKX
+ LD E,A
+ RES 3,H
+ CALL BREAKX
+ LD D,A
+ LD B,H
+ LD C,L
+ POP HL
+ RET
+
+L0895: PUSH HL
+ LD H,B
+ LD L,C
+ JR L089D ; (+003H)
+
+L089A: PUSH HL
+ RST 018H
+ DB 01EH
+L089D: SET 3,H
+ LD A,E
+ CALL POPRA
+ RES 3,H
+ LD A,D
+ CALL POPRA
+ LD B,H
+ LD C,L
+ POP HL
+ RET
+
+L08AD: LD HL,(L0054)
+ CALL L0302
+ DEC E
+ LD H,E
+ LD A,(0005CH)
+ LD L,A
+ RET
+
+ CALL L08AD
+ CALL L0882
+ LD A,0F0H
+ CP D
+ JR Z,L08C8 ; (+003H)
+ XOR A
+ CP D
+ RET NZ
+L08C8: LD BC,(0005BH)
+ EX DE,HL
+ LD HL,(L0054)
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ JR Z,L0862 ; (-074H)
+ LD A,C
+ CP L
+ JR NC,L08E4 ; (+00aH)
+ DEC L
+ CALL L0882
+ INC BC
+ CALL L0895
+ JR L08C8 ; (-01cH)
+
+L08E4: PUSH HL
+ LD L,B
+ DEC H
+ CALL L0882
+ EX (SP),HL
+ CALL L089A
+ POP HL
+ JR L08C8 ; (-029H)
+
+ LD HL,L0071
+ LD (L005D),HL
+L08F7: LD HL,L1800
+ LD (L0056),HL
+ LD HL,L2700
+ LD (L005B),HL
+ XOR A
+ LD (L004E),A
+ RET
+
+ CALL SKPDE
+L090B: LD A,(DE)
+ INC DE
+ OR A
+ RET Z
+ LD C,A
+ CP 005H
+ JR Z,L0933 ; (+01fH)
+ CP 006H
+ JR Z,L0932 ; (+01aH)
+ SUB 041H
+ CP 01AH
+ JR NC,HCURON ; (+00dH)
+ LD A,000H
+ OR A
+ JR Z,HCURON ; (+008H)
+ LD A,C
+ LD HL,L08F7
+ CALL ADDHLA
+ LD C,(HL)
+HCURON: LD A,C
+ RST 018H
+ DB 003H
+ CP 00DH
+ JR NZ,L090B ; (-027H)
+L0932: XOR A
+L0933: LD (0091FH),A
+ JR L090B ; (-02dH)
+
+ AND C
+ SBC A,D
+ SBC A,A
+HCUROF: SBC A,H
+ SUB D
+ XOR D
+ SUB A
+ SBC A,B
+ AND (HL)
+ XOR A
+ XOR C
+ CP B
+ OR E
+FLASH: OR B
+ OR A
+ SBC A,(HL)
+ AND B
+ SBC A,L
+ AND H
+ SUB (HL)
+ AND L
+CURMOV: XOR E
+ AND E
+ SBC A,E
+ CP L
+ AND D
+ NOP
+ NOP
+L0954: NOP
+L0955: PUSH DE
+ PUSH HL
+ LD (L0954),A
+ LD (00952H),DE
+ LD HL,0E007H
+ DI
+ OUT (LSE3),A
+ LD (HL),0B4H
+ LD (HL),074H
+ DEC HL
+ LD (HL),0C0H
+ LD (HL),0A8H
+ DEC HL
+ LD (HL),002H
+ LD (HL),000H
+L0972: LD HL,0E007H
+ LD (HL),080H
+PONTCB: DEC HL
+ LD E,(HL)
+ LD D,(HL)
+PONTB: LD HL,0A8C0H
+ OR A
+ SBC HL,DE
+ JR NZ,L0972 ; (-010H)
+ LD HL,0E005H
+ LD (HL),0F6H
+ LD (HL),079H
+ OUT (LSE1),A
+ EI
+ POP HL
+ POP DE
+ RET
+
+L098F: PUSH BC
+ PUSH HL
+ DI
+ OUT (LSE3),A
+ LD HL,0E007H
+ LD (HL),080H
+ LD (HL),040H
+ DEC HL
+ LD E,(HL)
+ LD D,(HL)
+ DEC HL
+ LD C,(HL)
+ LD B,(HL)
+ OUT (LSE1),A
+ EI
+ PUSH BC
+ LD A,D
+L09A6: OR E
+ JR NZ,L09AC ; (+003H)
+ LD DE,0A8C0H
+L09AC: LD HL,0A8C0H
+ LD A,(L0954)
+ OR A
+ SBC HL,DE
+ LD DE,L5460
+ CALL L09EB
+ OR A
+ LD DE,(00952H)
+ RR D
+ RR E
+ PUSH AF
+ ADD HL,DE
+ LD DE,L5460
+ CALL L09EB
+ LD C,A
+ ADD HL,HL
+ EX DE,HL
+ POP AF
+ LD A,C
+ POP BC
+ PUSH AF
+ OR A
+ LD HL,L3CFB
+ SBC HL,BC
+ JR C,L09DC ; (+001H)
+ INC DE
+L09DC: POP AF
+ JR NC,L09E0 ; (+001H)
+ INC DE
+L09E0: EX DE,HL
+ LD DE,0A8C0H
+ CALL L09EB
+ EX DE,HL
+ POP HL
+ POP BC
+ RET
+
+L09EB: OR A
+ SBC HL,DE
+ JR NC,L09F2 ; (+002H)
+ ADD HL,DE
+ RET
+
+L09F2: XOR 001H
+ RET
+
+L09F5: LD A,04EH
+ DEC L
+ RET Z
+ LD A,056H
+ DEC L
+ RET Z
+ LD A,05EH
+ DEC L
+L0A00: RET Z
+L0A01: LD A,066H
+ DEC L
+ RET
+
+L0A05: PUSH DE
+ LD (00A23H),A
+ LD DE,0FFFFH
+ LD HL,0E002H
+ DI
+ OUT (LSE3),A
+L0A12: BIT 7,(HL)
+ JR Z,L0A12 ; (-004H)
+L0A16: BIT 7,(HL)
+ JR NZ,L0A16 ; (-004H)
+L0A1A: LD L,008H
+ LD A,011H
+L0A1E: DEC A
+ JR NZ,L0A1E ; (-003H)
+L0A21: INC DE
+ BIT 0,(HL)
+ JR Z,L0A21 ; (-005H)
+ OUT (LSE1),A
+ EI
+ LD A,D
+ OR A
+ LD A,E
+ JR Z,L0A30 ; (+002H)
+ LD A,0FFH
+L0A30: LD (L0066),A
+ POP DE
+ POP HL
+ SCF
+ RET
+
+ INC A
+ PUSH HL
+ LD L,A
+ CALL L09F5
+ JR Z,L0A05 ; (-03aH)
+ CALL L09F5
+ LD (00A75H),A
+ LD (00A55H),A
+ LD HL,0E002H
+ DI
+ OUT (LSE3),A
+L0A4E: BIT 7,(HL)
+ JR Z,L0A4E ; (-004H)
+ LD L,008H
+ BIT 0,(HL)
+ LD A,L
+ JR Z,L0A5A ; (+001H)
+ XOR A
+L0A5A: LD (00A7CH),A
+ OUT (LSE1),A
+ LD A,009H
+L0A61: PUSH AF
+ XOR A
+L0A63: DEC A
+ JR NZ,L0A63 ; (-003H)
+ POP AF
+BINPUT: DEC A
+ JR NZ,L0A61 ; (-009H)
+ OUT (LSE3),A
+ LD L,002H
+L0A6E: BIT 7,(HL)
+ JR Z,L0A6E ; (-004H)
+ LD L,008H
+ BIT 0,(HL)
+ LD A,L
+ JR Z,L0A7A ; (+001H)
+ XOR A
+L0A7A: LD L,A
+ LD A,000H
+ AND L
+ LD (L0065),A
+ OUT (LSE1),A
+ EI
+GETL: POP HL
+ OR A
+ RET
+
+ DI
+ RET
+
+ EI
+ RET
+
+ DS 110, 000H
+L0AF9: DS 30, 000H
+L0B17: DS 3, 000H
+INKEY$: DS 7, 000H
+INKEY1: DS 10, 000H
+L0B2B: JP PE,0900BH
+ RLA
+ CALL M,00019H
+ DEC SP
+ LD A,(L180D)
+ DJNZ L0B4A ; (+012H)
+ LD DE,01413H
+ CCF
+ CPL
+L0B3D: LD HL,(0900CH)
+ RLA
+ EI
+ DEC B
+ NOP
+ DEC HL
+ LD HL,(0160DH)
+ DEC D
+ LD (DE),A
+L0B4A: LD DE,01413H
+ ADD A,05FH
+L0B4F: JP (HL)
+
+ INC C
+ SUB B
+ RLA
+ LD L,B
+ DEC B
+ NOP
+ ADD A,H
+ JP (HL)
+
+ DEC C
+ LD D,015H
+ LD (DE),A
+ LD DE,01413H
+ ADC A,A
+ ADC A,E
+L0B61: LD L,D
+ INC C
+ SUB B
+ RLA
+ LD L,H
+ ADD HL,DE
+ NOP
+ CP 089H
+ DEC C
+ LD D,015H
+ LD (DE),A
+ LD DE,01413H
+ ADC A,D
+ LD A,E
+L0B73: LD E,E
+ LD E,H
+ LD E,L
+ LD E,(HL)
+ CPL
+$CRT: DB 091H,00BH,"CRT",000H,08AH ; $CRT - CRT device descriptor
+ DS 2, 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+INKEYF: DB 0AAH
+ DB 00BH
+ DB 0B5H
+ DB 00BH
+ DB 0C4H
+ DB 00BH
+$KB_: DB 000H ; $KB - Keyboard device descriptor
+ DB 00FH
+ DB 04BH
+ DB 042H
+ DS 2, 000H
+ DB 081H
+ DS 2, 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+INKEY0: DB 000H
+ DB LSE5
+ DB 000H
+ DB 0AAH
+ DB 00BH
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ RST 018H
+ DB 00CH
+ LD A,080H
+ RET C
+ JP C,0017DH
+ RST 018H
+ DB 017H
+ RET
+
+ EX AF,AF'
+ LD HL,L0BFF
+L0BB9: LD A,(DISPX)
+ OR A
+ JR Z,L0BC2 ; (+003H)
+ LD HL,L0C43
+L0BC2: EX AF,AF'
+ JP (HL)
+
+ LD A,(L0054)
+ RET
+
+ LD A,00DH
+L0BCA: PUSH AF
+ LD A,(FILOUT)
+L0BCE: OR A
+ JR NZ,L0BD4 ; (+003H)
+ POP AF
+ JR L0BFF ; (+02bH)
+
+L0BD4: POP AF
+ JP L0F3E
+
+ PUSH AF
+ LD A,(FILOUT)
+ OR A
+ JR NZ,L0BE2 ; (+003H)
+ POP AF
+ JR L0C43 ; (+061H)
+
+L0BE2: POP AF
+ JP L0F2E
+
+ CALL SKPDE
+ LD HL,L0BCA
+ JR L0BF4 ; (+006H)
+
+L0BEE: CALL SKPDE
+ LD HL,L0BFF
+L0BF4: LD A,(DE)
+ OR A
+ RET Z
+ CALL L00FA
+ INC DE
+ JR L0BF4 ; (-009H)
+
+L0BFD: LD A,020H
+L0BFF: CALL IOOUT
+L0C02: LD C,A
+ LD A,(L004D)
+ OR A
+ JR Z,L0C3A ; (+031H)
+ LD A,C
+ CP 020H
+ JR NC,L0C37 ; (+029H)
+ LD DE,(00054H)
+ LD HL,(L005B)
+ CP 014H
+ JR Z,L0C21 ; (+008H)
+ CP 012H
+ JR NZ,L0C26 ; (+009H)
+ LD HL,(L0056)
+ LD E,D
+L0C21: LD A,L
+ CP E
+ JP NC,L0D3F
+L0C26: LD A,C
+ LD HL,L0C8F
+ ADD A,L
+ LD L,A
+ JR NC,L0C2F ; (+001H)
+ INC H
+L0C2F: LD A,(HL)
+ INC A
+ JR Z,L0C3A ; (+007H)
+ DEC A
+ JP Z,L0D3F
+L0C37: CALL L0C60
+L0C3A: LD A,C
+ CP 020H
+ JP C,L065E
+ JP L0600
+
+L0C43: CALL IOOUT
+ LD C,A
+ CP 00DH
+ JR Z,L0C02 ; (-049H)
+ CALL L0600
+ LD A,(L004D)
+ OR A
+ RET Z
+ LD A,C
+ CP 011H
+ JR C,L0C8A ; (+032H)
+ CP 017H
+ JR C,L0C8C ; (+030H)
+ CP 020H
+ JR C,L0C8A ; (+02aH)
+L0C60: CP 060H
+ JR C,L0C8C ; (+028H)
+ CALL CHKACC
+ ADD HL,BC
+ ADD A,B
+ LD A,E
+ ADD A,08BH
+ RST 010H
+ RST 008H
+ CALL M,0FFFBH
+ JR Z,L0C8C ; (+019H)
+ CP 092H
+ JR C,L0C8A ; (+013H)
+ CALL CHKACC
+ ADD HL,BC
+ SBC A,C
+ SUB L
+ XOR H
+ AND A
+ OR H
+ OR C
+ OR (HL)
+ OR L
+ CP H
+ JR Z,L0C8A ; (+004H)
+ CP 0BFH
+ JR C,L0C8C ; (+002H)
+L0C8A: LD A,02EH
+L0C8C: JP L0FA9
+
+; ---------------------------------------------------------------------------
+; Control character translation table (indexed by char code 0x00-0x1F)
+; Used by L0C26: HL = L0C8F + C, A = (HL).
+; 0x00 → handle via L0D3F, 0xFF → skip, other → translate via L0C60
+; ---------------------------------------------------------------------------
+L0C8F: DB 000H,000H,000H,000H ; 00-03: NUL,SOH,STX,ETX → L0D3F
+ DB 0FFH,0FFH,0FFH,01DH ; 04-07: EOT,ENQ,ACK → skip; BEL → 0x1D
+ DB 000H,000H,000H,000H ; 08-0B: BS,HT,LF,VT → L0D3F
+ DB 000H,00DH,000H,000H ; 0C-0F: FF → L0D3F; CR → 0x0D; SO,SI → L0D3F
+ DB 000H,00AH,003H,020H ; 10-13: DLE → L0D3F; DC1 → 0x0A; DC2 → 0x03; DC3 → 0x20
+ DB 00EH,000H,000H,0FFH ; 14-17: DC4 → 0x0E; NAK,SYN → L0D3F; ETB → skip
+ DB 000H,0FFH,0FFH,00DH ; 18-1B: CAN → L0D3F; EM,SUB → skip; ESC → 0x0D
+ DB 0FFH,000H,000H,000H ; 1C-1F: FS → skip; GS,RS,US → L0D3F
+L0CAF: DI
+ XOR A
+ LD (L004D),A
+ LD (FILOUT),A
+ LD SP,L0000
+ OUT (LSE1),A
+ LD A,004H
+ RST 018H
+ DB 003H
+L0CC0: LD HL,L1B18
+ XOR A
+ LD (L0CC0),A
+ LD D,A
+ LD E,A
+ RST 018H
+ DB 026H
+ LD DE,$CMT
+ LD A,B
+ DEC A
+ JR Z,L0CDB ; (+009H)
+ LD DE,$FD
+ DEC A
+ JR Z,L0CDB ; (+003H)
+ LD DE,$QD
+L0CDB: LD A,C
+ RST 018H
+ DB 03AH
+ JP L00DA
+
+ LD HL,(TEXTED)
+ ADD HL,DE
+ LD (TEXTED),HL
+ LD HL,(VARST)
+ ADD HL,DE
+ LD (VARST),HL
+ LD HL,(STRST)
+ ADD HL,DE
+ LD (STRST),HL
+ LD HL,(VARED)
+ ADD HL,DE
+ LD (VARED),HL
+ LD HL,(TMPEND)
+ ADD HL,DE
+ LD (TMPEND),HL
+ RET
+
+L0D05: LD HL,(00B15H)
+L0D08: LD A,H
+ OR L
+ JR Z,L0D20 ; (+014H)
+ PUSH DE
+ EX DE,HL
+ LD HL,0E004H
+ DI
+ OUT (LSE3),A
+ LD (HL),E
+ LD (HL),D
+ LD A,001H
+ LD (TEMPO_),A
+ OUT (LSE1),A
+ EI
+ POP DE
+ RET
+
+L0D20: LD A,036H
+BRKEY: DI
+ OUT (LSE3),A
+ LD (0E007H),A
+ XOR A
+ LD (TEMPO_),A
+ OUT (LSE1),A
+ EI
+ RET
+
+L0D30: PUSH AF
+ PUSH BC
+ AND 00FH
+ LD B,A
+ LD A,008H
+ SUB B
+ LD (0119EH),A
+ POP BC
+ POP AF
+ RET
+
+L0D3E: XOR A
+L0D3F: PUSH HL
+ LD HL,L04EC
+ JR Z,L0D4E ; (+009H)
+ CP 001H
+L0D47: JR Z,L0D59 ; (+010H)
+ CALL L0D08
+ POP HL
+ RET
+
+L0D4E: CALL L0D08
+ LD HL,L2710
+L0D54: DEC HL
+ LD A,H
+ OR L
+ JR NZ,L0D54 ; (-005H)
+L0D59: CALL L0D20
+ POP HL
+ RET
+
+; ---------------------------------------------------------------------------
+; $USR Device Descriptor (User-defined device)
+;
+; Handlers pointing to 0x00E5 (monitor ROM) are stubs (no-op/error).
+; ZRO and ZWO share the same handler (USR_RO).
+; ZINP and ZOUT share the same handler (USR_IO).
+; ZWDIR and ZFREE are not emitted explicitly — USR_RO code at 0x0D77
+; overlaps these 2 DW fields (the first 4 bytes of USR_RO: 21 01 10 DF
+; encode ZWDIR=0x0121, ZFREE=0xDF10). Neither is called (flags1 bit7=1).
+; ---------------------------------------------------------------------------
+$USR: DW 00000H ; Next device = NULL (end of chain)
+L0D60: DB "USR",000H ; Device name
+ DB 09FH ; flags1: bit7=1 (no dir/free), bit4-0=0x1F
+ DB 000H ; flags2
+ DB 000H ; dirmx: 0
+ DW 000E5H ; ZINIT (monitor ROM stub)
+ DW USR_RO ; ZRO handler (read/write open)
+ DW USR_RO ; ZWO handler (same as ZRO)
+ DW 000E5H ; ZCL (monitor ROM stub)
+ DW 000E5H ; ZKL (monitor ROM stub)
+ DW USR_IO ; ZINP handler (user I/O dispatch)
+ DW USR_IO ; ZOUT handler (same as ZINP)
+ DW 000E5H ; ZDELT (monitor ROM stub)
+; ZWDIR/ZFREE implicit — next 4 bytes are USR_RO code, read as DW pointers
+;
+; ---------------------------------------------------------------------------
+; USR_RO - User device open (ZRO/ZWO handler)
+;
+; Calls SVC #13H to find the USR device entry point, stores it in ZWRK1.
+; ---------------------------------------------------------------------------
+USR_RO: LD HL,ELMD1
+ RST 018H
+ DB 013H
+ LD A,D
+ OR E
+ JP Z,01F9AH
+ LD (ZWRK1),DE
+ RET
+;
+; ---------------------------------------------------------------------------
+; USR_IO - User device I/O (ZINP/ZOUT handler)
+;
+; Dispatches to the user-supplied routine address stored in ZWRK1.
+; ---------------------------------------------------------------------------
+USR_IO: LD HL,(ZWRK1)
+ JP (HL)
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD A,(ZFLAG1)
+ BIT 7,A
+ JP NZ,01F97H
+ JP L1989
+
+L0D9B: LD B,(IY+000H)
+ CALL L1C39
+ LD A,(ELMD)
+ CP B
+ JP NZ,01F9DH
+ RET
+
+L0DA9: LD A,(L004D)
+ OR A
+ LD A,(LPOSB)
+ RET Z
+ LD A,(L0054)
+ RET
+
+ DS 40, 000H
+EQTBL: DS 25, 000H
+$KB: DS 10, 000H
+L0E00: DS 16, 000H
+L0E10: DS 46, 000H
+L0E3E: DS 35, 000H
+CRT1C: DS 82, 000H
+PLTOTX: DS 77, 000H
+$LPT: DB 0F7H,"/LPT",000H,08AH ; $LPT - Line printer device descriptor
+ DS 2, 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DB 000H
+ DB LSE5
+ DS 3, 000H
+ DB 027H
+ DB 00FH
+ DB 019H
+ DB 00FH
+ JP L0DA9
+
+ RET
+
+L0F1D: LD A,00DH
+ CALL L0FA9
+ XOR A
+ LD (LPOSB),A
+ RET
+
+ LD HL,DISPX
+ BIT 0,(HL)
+ JR Z,L0F3E ; (+010H)
+L0F2E: CALL IOOUT
+ LD B,A
+ LD A,(L004D)
+ OR A
+ LD A,B
+ LD E,0FFH
+ JR Z,L0F4E ; (+013H)
+ RST 018H
+ DB 004H
+ RET
+
+L0F3E: CALL IOOUT
+ LD B,A
+ LD A,(L004D)
+ OR A
+ LD A,B
+ LD E,000H
+ JR Z,L0F4E ; (+003H)
+ RST 018H
+ DB 003H
+ RET
+
+L0F4E: LD A,(PNMODE)
+ CP 001H
+ LD A,044H
+ JP NZ,00180H
+ LD A,B
+ CP 00DH
+ JR Z,L0F1D ; (-040H)
+ LD HL,LPOSB
+ INC (HL)
+ SUB 005H
+ CP 002H
+ JR C,L0F7C ; (+015H)
+ LD A,B
+ CP 020H
+ JR NC,L0FB0 ; (+044H)
+ BIT 0,E
+ JR Z,L0F80 ; (+010H)
+ SUB 011H
+ CP 006H
+ JR C,L0FB1 ; (+03bH)
+ SUB QDPC
+ CP 002H
+ JR NC,L0FAE ; (+032H)
+L0F7C: LD A,02EH
+ JR L0FB0 ; (+030H)
+
+L0F80: LD HL,LPOSB
+ DEC (HL)
+ LD A,B
+ CP 015H
+ LD B,00FH
+ JR Z,L0FB1 ; (+026H)
+ CP 011H
+ LD B,009H
+ JR Z,L0FB1 ; (+020H)
+ CP 012H
+ LD B,00BH
+ JR Z,L0FB1 ; (+01aH)
+ CP 016H
+ JR NZ,L0FB0 ; (+015H)
+ LD A,00CH
+ CALL L0FB0
+ LD A,00AH
+ CALL L0FB0
+ LD A,003H
+ JR L0FB0 ; (+007H)
+
+L0FA9: CALL IOOUT
+ JR L0FB0 ; (+002H)
+
+L0FAE: LD A,020H
+L0FB0: LD B,A
+L0FB1: CALL L0FCA
+ LD A,B
+ DI
+ CALL L0FBB
+ EI
+ RET
+
+L0FBB: OUT (0FFH),A
+ LD A,080H
+ OUT (0FEH),A
+ LD A,001H
+ CALL L0FCB
+L0FC6: XOR A
+ OUT (0FEH),A
+ RET
+
+L0FCA: XOR A
+L0FCB: CALL SKPDE
+ LD C,A
+ LD B,00EH
+L0FD1: LD HL,0E678H
+L0FD4: IN A,(0FEH)
+ AND 00DH
+ CP C
+ RET Z
+ DEC HL
+ LD A,H
+ OR L
+ NOP
+ NOP
+ JR NZ,L0FD4 ; (-00dH)
+ DJNZ L0FD1 ; (-012H)
+ XOR A
+ LD (L004D),A
+ CALL L0FC6
+ LD A,041H
+ JP L0182
+
+ DS 17, 000H
+; ===========================================================================
+; BASIC System Workspace (0x1000-0x109F)
+; ===========================================================================
+;
+; --- ELMD: File header / element data (0x1000-0x103F) ---
+ELMD: DB 000H ; File type (0=obj, 1=BTX, 2=BASIC, 3=data, 5=MZF)
+ELMD1: DS 17, 000H ; Filename (17 bytes, null-padded)
+ELMD18: DW 00000H ; File size (bytes)
+ELMD20: DW 00000H ; Load address / BASIC program size
+ELMD22: DW 00000H ; Execution address
+ELMD24: DW 00000H ; Reserved
+ELMD26: DW 00000H ; Reserved
+ DS 2, 000H
+ELMD30: DW 00000H ; Reserved
+ELMD32: DW 00000H ; Reserved
+ DS 6, 000H
+SDDRIVENO: DB 000H ; SD drive number (numeric 0-9)
+CMTFILENO: DB 000H ; Sequential file counter
+ DS 20, 000H
+L103E: DS 2, 000H
+;
+; --- Device workspace (0x1040-0x106F) ---
+ZTOP: DW 00002H ; Top of device chain pointer
+ZLOG: DB 000H ; Logical unit number
+ZRWX: DB 000H ; Read/write mode
+ZEQT: DW 00000H ; Equipment/device type
+ZCH: DB 000H ; Channel number
+ZEOF: DB 000H ; End of file flag
+ZWRK1: DW 00000H ; Work area 1 (16-bit)
+ZNXT: DW 00000H ; Next byte pointer
+ZDEVNM: DS 4, 000H ; Active device name (4 bytes)
+ZFLAG1: DB 001H ; Active device flags1
+ZFLAG2: DB 000H ; Active device flags2
+ZDIRMX: DB 000H ; Active device max dir entries
+ZINIT: DW 00000H ; Active ZINIT function pointer
+ZRO: DW 00000H ; Active ZRO function pointer
+ZWO: DW 00000H ; Active ZWO function pointer
+ZCL: DW 00000H ; Active ZCL function pointer
+ZKL: DW 00000H ; Active ZKL function pointer
+ZINP: DW 00000H ; Active ZINP function pointer
+ZOUT: DW 00000H ; Active ZOUT function pointer
+ZDELT: DW 00000H ; Active ZDELT function pointer
+ZWDIR: DW 00000H ; Active ZWDIR function pointer
+ZFREE: DW 00000H ; Active ZFREE function pointer
+ DS 2, 000H
+DCHAN: DB 000H ; Default channel
+DDEV: DW 00000H ; Default device descriptor pointer
+_CRT: DW 00B78H ; CRT device descriptor pointer
+_LPT: DW 00F00H ; LPT device descriptor pointer
+;
+; --- BASIC memory pointers (0x1070-0x109F) ---
+TEXTST: DW 00000H ; Start of BASIC text
+TEXTED: DW 00000H ; End of BASIC text
+VARST: DW 00000H ; Start of variables
+STRST: DW 00000H ; Start of string space
+VARED: DW 00000H ; End of variables
+TMPEND: DW 00000H ; End of temporary area
+INTFAC: DW 00000H ; Integer accumulator
+MEMLMT: DW 00000H ; Memory limit
+MEMMAX: DW 0FF00H ; Maximum memory
+CURXY: DW 00000H ; Cursor X,Y position
+POSADR: DW 00000H ; Cursor VRAM address
+BITADR: DW 00000H ; Bit address
+POINTX: DW 00000H ; Graphics point X
+POINTY: DW 00000H ; Graphics point Y
+CURFLG: DB 000H ; Cursor flag
+CURMAK: DB 000H ; Cursor make flag
+CMTMSG: DB 000H ; CMT message flag
+INPFLG: DB 000H ; Input flag
+DISPX: DB 000H ; Display X position
+FILOUT: DB 000H ; File output flag
+PSEL: DB 001H ; Printer select
+PCRLF: DB 000H ; Printer CR/LF mode
+LPT_TM: DB 00EH ; LPT timeout
+LPOSB: DB 000H ; LPT position
+PSMAL: DB 000H ; Printer small flag
+PNMODE: DB 001H ; Printer mode
+DMD: DB 000H ; Display mode
+MEMOP: DB 000H ; Memory operation flag
+PWMODE: DB 000H ; Power mode
+CMODE: DB 000H ; Color mode
+CPLANE: DB 000H ; Color plane
+MAXCF: DB 000H ; Max color flag
+PMASK: DB 000H ; Plane mask
+GMODE: DB 000H ; Graphics mode
+ DS 80, 000H ; 0x10A0-0x10EF (padding to L10F0)
+L10F0: DS 78, 000H
+L113E: DS 84, 000H
+ RST 028H
+ NOP
+ NOP
+ NOP
+ NOP
+SUMDT: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD BC,00504H
+ DS 3, 000H
+KEYBM1: DB 000H
+KEYBUF: DS 154, 000H
+L123E: DS 57, 000H
+L1277: DS 73, 000H
+; ---------------------------------------------------------------------------
+; Function key definition table (F1-F10 defaults, stored in RAM)
+; Each entry: 1 byte length + string + zero-padded to 16 bytes total.
+; Loaded at startup, modifiable via DEF KEY statement.
+; ---------------------------------------------------------------------------
+L12C0: DB 007H,"RUN",020H,020H,020H,00DH ; F1: RUN
+ DS 8, 000H
+ DB 005H,"LIST",020H ; F2: LIST
+ DS 10, 000H
+ DB 005H,"AUTO",020H ; F3: AUTO
+ DS 10, 000H
+ DB 006H,"RENUM",020H ; F4: RENUM
+ DS 9, 000H
+ DB 004H,"DIR",020H ; F5: DIR
+ DS 11, 000H
+ DB 005H,"CHR$(" ; F6: CHR$(
+ DS 10, 000H
+ DB 008H,"DEF KEY(" ; F7: DEF KEY(
+ DS 7, 000H
+ DB 004H,"CONT" ; F8: CONT
+ DS 9, 000H
+L133E: DS 2, 000H ; (last 2 bytes of F8 entry, used as workspace)
+ DB 006H,"SAVE",020H,020H ; F9: SAVE
+ DS 9, 000H
+ DB 006H,"LOAD",020H,020H ; F10: LOAD
+ DS 9, 000H
+L1360: DB 000H ; F11: (empty/unused)
+L1361: DS 15, 000H ; (F11 padding, used as workspace)
+ DB 000H ; End marker
+L1371: DB 000H ; End marker
+ CALL L13D8
+ JR Z,L1385 ; (+00eH)
+L1377: CP 010H
+ JR C,L139B ; (+020H)
+ CP 080H
+ JR Z,L13A1 ; (+022H)
+ CP 0C0H
+ JR Z,L13A1 ; (+01eH)
+ JR L1391 ; (+00cH)
+
+L1385: CP 003H
+ JR Z,L139B ; (+012H)
+ CP 005H
+ JR Z,L139E ; (+011H)
+ CP 006H
+ JR Z,L139E ; (+00dH)
+L1391: DI
+ OUT (LSE2),A
+ CALL L0BB9
+ OUT (LSE0),A
+ EI
+ RET
+
+L139B: LD A,0F0H
+ RET
+
+L139E: ADD A,0C9H
+ RET
+
+L13A1: SUB 040H
+ RET
+
+L13A4: CP 0F0H
+ JR NC,L13CF ; (+027H)
+ CP 073H
+ JR Z,L139B ; (-011H)
+ CALL L13D8
+ JR Z,L13BB ; (+00aH)
+ CP 040H
+ JR Z,L13D5 ; (+020H)
+ CP 080H
+ JR Z,L13D5 ; (+01cH)
+ JR L13C3 ; (+008H)
+
+L13BB: CP 0CEH
+ JR Z,L13D2 ; (+013H)
+ CP 0CFH
+ JR Z,L13D2 ; (+00fH)
+L13C3: DI
+ OUT (LSE2),A
+ CALL L0BCE
+ OUT (LSE0),A
+ EI
+ CP 0F0H
+ RET NZ
+L13CF: LD A,020H
+ RET
+
+L13D2: SUB 0C9H
+ RET
+
+L13D5: ADD A,040H
+ RET
+
+L13D8: PUSH HL
+ LD HL,L0036
+ BIT 6,(HL)
+ POP HL
+ RET
+
+L13E0: PUSH AF
+ LD A,L
+ SUB 008H
+ JR C,L13EA ; (+004H)
+ SUB 030H
+ JR C,L13F1 ; (+007H)
+L13EA: ADD A,00AH
+ LD L,A
+ ADD HL,BC
+ LD C,(HL)
+ POP AF
+ RET
+
+L13F1: LD A,(BC)
+ PUSH AF
+ INC BC
+ LD A,(BC)
+ LD B,A
+ POP AF
+ LD C,A
+ ADD HL,BC
+ DI
+ OUT (LSE2),A
+ LD A,(HL)
+ OUT (LSE0),A
+ EI
+ CALL L13A4
+ LD C,A
+ POP AF
+ RET
+
+ PUSH HL
+ PUSH BC
+ PUSH DE
+ LD DE,L2710
+ CALL L142C
+ LD DE,003E8H
+ CALL L142C
+ LD DE,L0064
+ CALL L142C
+ LD DE,0000AH
+ CALL L142C
+ LD A,L
+ POP DE
+ OR 030H
+ LD (DE),A
+ INC DE
+ XOR A
+ LD (DE),A
+ POP BC
+ POP HL
+ RET
+
+L142C: LD A,0FFH
+L142E: INC A
+ OR A
+ SBC HL,DE
+ JR NC,L142E ; (-006H)
+ ADD HL,DE
+ OR A
+ JR NZ,L143B ; (+003H)
+ OR B
+ RET Z
+ XOR A
+L143B: LD B,001H
+ OR 030H
+ POP DE
+ EX (SP),HL
+ LD (HL),A
+ INC HL
+ EX (SP),HL
+ PUSH DE
+ RET
+
+ CALL TEST1
+ DB 024H
+ JR Z,L1476 ; (+02aH)
+ LD DE,L0000
+L144F: CALL HLFTCH
+ SUB 030H
+ CP 00AH
+ RET NC
+ INC HL
+ PUSH HL
+ LD H,D
+ LD L,E
+ ADD HL,HL
+ JR C,L1471 ; (+013H)
+ ADD HL,HL
+ JR C,L1471 ; (+010H)
+ ADD HL,DE
+ JR C,L1471 ; (+00dH)
+ ADD HL,HL
+ JR C,L1471 ; (+00aH)
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ JR C,L1471 ; (+004H)
+ EX DE,HL
+ POP HL
+ JR L144F ; (-022H)
+
+L1471: LD A,002H
+ JP L0182
+
+L1476: LD DE,L0000
+L1479: LD A,(HL)
+ CALL L1491
+ RET C
+ INC HL
+ EX DE,HL
+ ADD HL,HL
+ JR C,L1471 ; (-012H)
+ ADD HL,HL
+ JR C,L1471 ; (-015H)
+ ADD HL,HL
+ JR C,L1471 ; (-018H)
+ ADD HL,HL
+ JR C,L1471 ; (-01bH)
+ ADD A,L
+ LD L,A
+ EX DE,HL
+ JR L1479 ; (-018H)
+
+L1491: SUB 030H
+ CP 00AH
+ CCF
+ RET NC
+ SUB 011H
+ CP 006H
+ CCF
+ RET C
+ ADD A,00AH
+ RET
+
+ CALL L14AD
+ CP 020H
+ RET NZ
+L14A6: CALL L14AD
+ OR A
+ JR Z,L14A6 ; (-006H)
+ RET
+
+L14AD: RST 018H
+ DB 00EH
+ JR Z,L14B8 ; (+007H)
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ CP 01BH
+ RET NZ
+L14B8: JP 0017DH
+
+ RET
+
+L14BC: CALL SKPDE
+ LD HL,KEYBUF
+ LD B,000H
+ PUSH HL
+ CALL LDHLDE
+ POP DE
+ LD (014DAH),SP
+ LD SP,L10F0
+ DI
+ OUT (LSE4),A
+ RST 030H
+ OUT (LSE0),A
+ OUT (LSE1),A
+ EI
+ LD SP,L0000
+ RET
+
+ LD (DDEV),DE
+ LD (DCHAN),A
+ RET
+
+ LD C,A
+ RST 018H
+ DB 020H
+ RST 018H
+ DB 002H
+ BIT 7,C
+ JR Z,L14F8 ; (+00aH)
+ LD HL,KEYBUF
+ PUSH HL
+ CALL L1535
+ POP DE
+ RST 018H
+ DB 005H
+L14F8: LD A,C
+ AND 07FH
+ JR L14FF ; (+002H)
+
+L14FD: LD A,045H
+L14FF: LD DE,L1554
+L1502: DEC A
+ JR Z,L150F ; (+00aH)
+ EX AF,AF'
+L1506: LD A,(DE)
+ INC DE
+ OR A
+ JP P,L1506
+ EX AF,AF'
+ JR L1502 ; (-00dH)
+
+L150F: LD A,(DE)
+ CP 080H
+ JR Z,L14FD ; (-017H)
+L1514: LD A,(DE)
+ OR A
+ JP M,L151F
+ CALL L152A
+ INC DE
+ JR L1514 ; (-00bH)
+
+L151F: AND 07FH
+ CALL L152A
+ LD DE,L179E
+ RST 018H
+ DB 005H
+ RET
+
+L152A: PUSH DE
+ LD DE,L1533
+ LD (DE),A
+ RST 018H
+ DB 005H
+ POP DE
+ RET
+
+L1533: NOP
+ NOP
+L1535: LD DE,(ZEQT)
+ INC DE
+ INC DE
+ RST 018H
+ DB 017H
+ CALL LDHLDE
+ LD A,(ZCH)
+ ADD A,031H
+ LD (HL),A
+ LD A,(01051H)
+ AND 00FH
+ JR Z,L154E ; (+001H)
+ INC HL
+L154E: LD (HL),03AH
+ INC HL
+ LD (HL),000H
+ RET
+
+L1554: DB 053H,005H,"YNTA",0D8H,04FH,005H,"VER FLO",0D7H,049H,005H ; Error message table (bit-7 terminated)
+ DS 2, 04CH
+ DB "EGAL DAT",0C1H,054H,005H,"YPE MISMATC",0C8H,053H,005H,"TRING LENGT",0C8H,04DH,005H,"EMORY CAPACIT",0D9H,041H,005H
+ DS 2, 052H
+ DB "AY DEF",0AEH,04CH,005H,"INELENGT",0C8H,080H,"GOSUB ",005H,"NESTIN",0C7H,"FOR-NEX",0D4H,"DEF FN ",005H,"NESTIN",0C7H,"NEX",0D4H,"RETUR",0CEH,055H,005H,"N DEF. FUNCTIO",0CEH,055H,005H,"N DEF. LIN",0C5H,043H,005H,"AN'T ",006H,"CON",0D4H,04DH,005H,"EMORY PROTECTIO",0CEH,049H,005H,"NSTRUCTIO",0CEH,043H,005H,"AN'T ",006H,"RESUM",0C5H,"RESUM",0C5H
+ DS 2, 080H
+ DB "REA",0C4H,"SWAP ",005H,"LEVE",0CCH
+ DS 2, 080H
+ DB 053H,005H,"YSTEM I",0C4H,046H,005H,"RAMIN",0C7H,04FH,005H,056H,045H
+ DS 2, 052H
+ DB 055H,0CEH,050H,005H,"ARIT",0D9H
+ DS 8, 080H
+ DB 046H,005H,"ILE NOT FOUN",0C4H,048H,005H,"ARDWAR",0C5H,041H,005H,"LREADY EXIS",0D4H,041H,005H,"LREADY OPE",0CEH,04EH,005H,"OT OPE",0CEH,080H,057H,005H,"RITE PROTEC",0D4H
+ DS 3, 080H
+ DB 04EH,005H,"OT READ",0D9H,054H,005H
+ DS 2, 04FH
+ DB " MANY FILE"
+ DB LSD3
+ DB 044H,005H,"ISK MISMATC",0C8H,04EH,005H,"O FILE SPAC",0C5H,055H,005H,"NFORMA",0D4H,054H,005H
+ DS 2, 04FH
+ DB " LONG FIL",0C5H
+ DS 2, 080H
+ DB 044H,005H,"EV. NAM",0C5H,043H,005H,"AN'T EXECUT",0C5H,049H,005H
+ DS 2, 04CH
+ DB "EGAL FILENAM",0C5H,049H,005H
+ DS 2, 04CH
+ DB "EGAL FILEMOD",0C5H,080H,04FH,005H,"UT OF FIL",0C5H,04CH,005H,"OGICAL NUMBE"
+ DB LSD2
+ DB "LPT:"
+L1772: DB 04EH,005H,"OT READ",0D9H
+ DS 2, 080H
+ DB 044H,005H,"EV. MOD",0C5H,055H,005H,"NPRINTABL",0C5H,043H,005H,"HECK SU",0CDH
+L179E: DB 020H
+ DB 005H
+ DB 045H
+ DS 2, 052H
+ DB 04FH
+ DB 052H
+ DS 91, 000H
+L1800: JP L4000
+
+L1803: LD A,(ZLOG)
+ CP 088H
+ RET
+
+L1809: NOP
+ NOP
+L180B: NOP
+ NOP
+L180D: NOP
+ NOP
+ CALL L181A
+ CALL L1821
+L1815: XOR A
+ LD (L1FC0),A
+ RET
+
+L181A: LD A,(ZLOG)
+ LD (L1FC0),A
+ RET
+
+L1821: CALL SKPDE
+ LD A,(ZFLAG1)
+ BIT 7,A
+ LD HL,L1848
+L182C: JR Z,L183D ; (+00fH)
+ BIT 3,A
+ LD HL,L1835
+ JR NZ,L183D ; (+008H)
+L1835: LD IX,(ZOUT)
+ CALL IOCALL
+ RET
+
+L183D: LD A,B
+L183E: OR A
+ RET Z
+ LD A,(DE)
+ CALL L00FA
+ INC DE
+ DEC B
+ JR L183D ; (-00bH)
+
+L1848: CALL SKPDE
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+ LD HL,(L180B)
+ ADD HL,DE
+ LD (HL),A
+ INC DE
+ LD HL,(ZKL)
+ OR A
+ SBC HL,DE
+ CALL Z,L1871
+ LD (IY+040H),E
+ LD (IY+041H),D
+ INC (IY+014H)
+ RET NZ
+ INC (IY+015H)
+ RET NZ
+ JP 01F91H
+
+L1871: PUSH BC
+ LD B,002H
+L1874: CALL L1D15
+ LD IX,L1835
+ JR Z,L1881 ; (+004H)
+ LD IX,L2907
+L1881: LD A,B
+ CALL L18B6
+ CALL L1890
+ INC (IY+04EH)
+ LD DE,L0000
+ POP BC
+ RET
+
+L1890: JP (IX)
+
+L1892: LD A,01AH
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+L189A: LD HL,(L180B)
+ ADD HL,DE
+ LD (HL),A
+ INC DE
+ LD HL,(ZKL)
+ XOR A
+ SBC HL,DE
+ JR NZ,L189A ; (-00eH)
+ PUSH BC
+ LD HL,(L180B)
+ DEC HL
+ LD (HL),0FFH
+ DEC HL
+ LD (HL),0FFH
+ LD B,006H
+ JR L1874 ; (-042H)
+
+L18B6: LD BC,(ZKL)
+ INC BC
+ INC BC
+ LD HL,(L180B)
+ DEC HL
+ DEC HL
+ LD DE,(01809H)
+ RET
+
+L18C6: OR 0AFH
+ LD IX,(ZCL)
+ CALL IOCALL
+ RET
+
+ CALL L1803
+ RET NZ
+ PUSH DE
+ LD DE,KEYBUF
+ CALL L026A
+ LD (0193CH),DE
+ POP DE
+ RET NC
+ JP 0017DH
+
+ PUSH HL
+ PUSH DE
+ CALL L181A
+ LD HL,(ZTOP)
+ INC HL
+ BIT 7,(HL)
+ PUSH HL
+ LD B,000H
+ SCF
+ CALL Z,L1913
+ POP HL
+ CALL C,L1908
+ POP DE
+ PUSH AF
+ CALL L1815
+ LD L,B
+ LD H,000H
+ ADD HL,DE
+ LD (HL),000H
+ POP AF
+ POP HL
+ RET
+
+L1908: SET 7,(HL)
+ LD HL,01051H
+ BIT 4,(HL)
+ RET Z
+ JP 01FA0H
+
+L1913: CALL L1803
+ JR Z,L193B ; (+023H)
+ LD A,(ZFLAG1)
+ BIT 7,A
+ LD HL,L1989
+ JR Z,L1975 ; (+053H)
+ BIT 2,A
+ LD HL,L1929
+ JR NZ,L1975 ; (+04cH)
+L1929: LD IX,(ZINP)
+ CALL IOCALL
+ RET
+
+L1931: LD A,03FH
+ RST 018H
+ DB 003H
+ LD A,020H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 034H
+L193B: LD HL,L0000
+L193E: CALL HLFTCH
+ OR A
+ JR Z,L1931 ; (-013H)
+ LD C,000H
+ RST 018H
+ DB 036H
+ LD (0193CH),HL
+ RET
+
+ LD B,000H
+ CALL TEST1
+ DB 022H
+ JR NZ,L1967 ; (+013H)
+L1954: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ JR Z,L1961 ; (+005H)
+ LD (DE),A
+ INC DE
+ INC B
+ JR L1954 ; (-00dH)
+
+L1961: CALL TEST1
+ DB 02CH
+ OR A
+ RET
+
+L1967: LD A,(HL)
+ OR A
+ RET Z
+ CP C
+ RET Z
+ INC HL
+ CP 02CH
+ RET Z
+ LD (DE),A
+ INC DE
+ INC B
+ JR L1967 ; (-00eH)
+
+L1975: LD (0197BH),HL
+ LD B,000H
+L197A: CALL L0000
+ RET C
+ CP 00DH
+ RET Z
+ LD (DE),A
+ INC DE
+ INC B
+ JR NZ,L197A ; (-00cH)
+ JP 01F76H
+
+L1989: CALL SKPDE
+ LD E,(IY+040H)
+ LD D,(IY+041H)
+ LD HL,(ZKL)
+ OR A
+ SBC HL,DE
+ CALL Z,L19B4
+ RET C
+ LD L,(IY+04EH)
+ LD H,(IY+04FH)
+ XOR A
+ SBC HL,DE
+ SCF
+ RET Z
+ LD HL,(L180B)
+ ADD HL,DE
+ LD A,(HL)
+ INC DE
+ LD (IY+040H),E
+ LD (IY+041H),D
+ RET
+
+L19B4: CALL L1D15
+ JP NZ,L2A4C
+ OR 0AFH
+ CALL L18B6
+ CALL L1929
+ RET C
+ LD A,(HL)
+ INC HL
+ AND (HL)
+ LD (HL),0FFH
+ INC A
+ LD DE,L0000
+ RET NZ
+ PUSH HL
+ LD HL,(L180D)
+ LD BC,(ZKL)
+L19D5: DEC HL
+ DEC BC
+ LD A,(HL)
+ OR A
+ JR Z,L19D5 ; (-006H)
+ POP HL
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ RET
+
+ CALL SKPDE
+ LD HL,L1A2D
+ CP 088H
+ JR Z,L19F4 ; (+00aH)
+ LD HL,L1A35
+ CP 089H
+ JR Z,L19F4 ; (+003H)
+ RST 018H
+ DB 029H
+ RET C
+L19F4: LD (ZTOP),HL
+ LD DE,ZLOG
+ LD BC,00008H
+ LDIR
+ LD (L1809),HL
+ PUSH HL
+ POP IY
+ LD DE,ELMD
+ CALL L1C54
+ PUSH HL
+ LD HL,(ZEQT)
+ LD DE,ZNXT
+ LD BC,0001DH
+ LDIR
+ POP HL
+ LD BC,00010H
+ ADD HL,BC
+ LD (L180B),HL
+ LD BC,(ZKL)
+ ADD HL,BC
+ LD (L180D),HL
+ LD A,(ZRWX)
+ AND 00FH
+ RET
+
+L1A2D: ADC A,B
+ INC BC
+ LD A,B
+ DEC BC
+ NOP
+ NOP
+ NOP
+ NOP
+L1A35: ADC A,C
+ LD (BC),A
+ NOP
+ RRCA
+ NOP
+ NOP
+ NOP
+ NOP
+ LD HL,KEYBUF
+ PUSH HL
+ LD A,B
+ OR A
+ CALL NZ,LDHLDE
+ LD (HL),000H
+ LD HL,$CRT
+ JR L1A50 ; (+003H)
+
+L1A4D: LD HL,L0000
+L1A50: LD A,L
+ OR H
+ JR Z,L1A89 ; (+035H)
+ LD (01A84H),HL
+ CALL LDDEMI
+ LD (01A4EH),DE
+ LD DE,KEYBUF
+ EX DE,HL
+L1A62: LD A,(DE)
+ OR A
+ JR Z,L1A6D ; (+007H)
+ CP (HL)
+ JR NZ,L1A4D ; (-01cH)
+ INC HL
+ INC DE
+ JR L1A62 ; (-00bH)
+
+L1A6D: LD A,(HL)
+ INC HL
+ CP 03AH
+ LD C,000H
+ JR Z,L1A82 ; (+00dH)
+ SUB 031H
+ CP 009H
+ JR NC,L1A4D ; (-02eH)
+ LD C,A
+ LD A,(HL)
+ INC HL
+ CP 03AH
+ JR NZ,L1A4D ; (-035H)
+L1A82: EX (SP),HL
+ LD HL,L0000
+ LD A,C
+ JR L1A9B ; (+012H)
+
+L1A89: POP HL
+ PUSH HL
+L1A8B: LD A,(HL)
+ INC HL
+ CP 03AH
+ JP Z,01F94H
+ OR A
+ JR NZ,L1A8B ; (-00aH)
+ LD HL,(DDEV)
+ LD A,(DCHAN)
+L1A9B: LD (ZEQT),HL
+ PUSH HL
+ LD (ZCH),A
+ LD DE,ZNXT
+ LD BC,0001DH
+ LDIR
+ LD B,A
+ LD A,(01051H)
+ AND 007H
+ CP B
+ JP C,01F94H
+ LD A,B
+ POP DE
+ POP HL
+ RET
+
+ CALL SKPDE
+ RST 018H
+ DB 02CH
+ EX DE,HL
+ LD HL,ELMD1
+ LD B,01FH
+ CALL ?CLRHL
+ LD HL,ELMD
+ RST 018H
+ DB 017H
+ CALL L1EB4
+ LD HL,ZFLAG1
+ BIT 4,(HL)
+ RET Z
+ INC HL
+ BIT 7,(HL)
+ RET NZ
+ LD A,(ELMD1)
+ CP 00DH
+ JP Z,01F9AH
+ RET
+
+ CALL SKPDE
+ CALL L1AEF
+ LD B,000H
+ CALL L1B97
+ JP L2D08
+
+L1AEF: LD A,(ZLOG)
+ RST 018H
+ DB 029H
+ JP NC,01F7CH
+ CALL L1C5B
+ LD HL,L005D
+ LD A,(ZFLAG1)
+ LD DE,(ZKL)
+ INC DE
+ INC DE
+ BIT 7,A
+ JR NZ,L1B0B ; (+001H)
+ ADD HL,DE
+L1B0B: LD A,(ZRWX)
+ BIT 2,A
+ JR Z,L1B13 ; (+001H)
+ ADD HL,DE
+L1B13: EX DE,HL
+ LD A,(ZLOG)
+ RST 018H
+L1B18: DB 02AH
+ LD (L1FC0),A
+ LD (ZTOP),HL
+ EX DE,HL
+ LD HL,ZLOG
+ LD BC,00008H
+ LDIR
+ LD (01809H),DE
+ PUSH DE
+ POP IY
+ LD HL,ELMD
+ CALL L1C54
+ LD HL,00010H
+ ADD HL,DE
+ LD (L180B),HL
+ LD DE,(ZKL)
+ ADD HL,DE
+ LD (L180D),HL
+ CALL L1D15
+ JP NZ,L2B7F
+ LD A,(ZRWX)
+ BIT 2,A
+ JP NZ,01F97H
+ BIT 1,A
+ LD IX,(ZWO)
+ JR NZ,L1B65 ; (+00bH)
+ LD A,(ZFLAG1)
+ BIT 7,A
+ JR Z,L1B6B ; (+00aH)
+ LD IX,(ZRO)
+L1B65: LD HL,ELMD
+ JP IOCALL
+
+L1B6B: CALL L0D9B
+ JP 019BBH
+
+ CALL SKPDE
+ LD IY,L0100
+ LD (ZLOG),IY
+ LD IY,ELMD
+ CALL L1D15
+ LD HL,L2B7A
+ JR NZ,L1B8B ; (+003H)
+ LD HL,L1C39
+L1B8B: CALL L00FA
+ LD B,080H
+ CALL L1B97
+ LD A,(ELMD)
+ RET
+
+L1B97: LD A,(ELMD)
+ CP 005H
+ RET C
+ LD A,(ELMD18)
+ AND 080H
+ CP B
+ RET Z
+ JP 01F9DH
+
+L1BA7: CALL SKPDE
+ OR A
+ JR Z,L1BED ; (+040H)
+ CALL L1BB3
+ JP L2D08
+
+L1BB3: RST 018H
+ DB 02EH
+ RET C
+ CALL L181A
+ PUSH AF
+ CALL L1D15
+ JR NZ,L1BE1 ; (+022H)
+ BIT 7,A
+ LD A,B
+ JR Z,L1BD4 ; (+010H)
+ OR A
+ LD IX,(ZKL)
+ JR Z,L1BCF ; (+004H)
+ LD IX,(ZCL)
+L1BCF: CALL IOCALL
+ JR L1BE4 ; (+010H)
+
+L1BD4: OR A
+ JR Z,L1BE4 ; (+00dH)
+ LD A,(ZRWX)
+ BIT 1,A
+ CALL NZ,L1892
+ JR L1BE4 ; (+003H)
+
+L1BE1: CALL L2BEC
+L1BE4: POP AF
+ RST 018H
+ DB 02BH
+ RET
+
+ CALL SKPDE
+ LD B,000H
+L1BED: LD C,08EH
+L1BEF: LD A,C
+ PUSH BC
+ RST 018H
+ DB 029H
+ CALL NC,L1BB3
+ POP BC
+ DEC C
+ JR NZ,L1BEF ; (-00bH)
+ JP L1FAB
+
+L1BFD: CALL SKPDE
+ LD A,(ZFLAG1)
+ BIT 6,A
+ JP Z,01F97H
+ CALL 018C7H
+ LD A,(ZDIRMX)
+ LD B,A
+L1C0F: LD HL,KEYBUF
+ PUSH BC
+ LD IX,(ZRO)
+ CALL IOCALL
+ POP BC
+ SET 0,A
+ RET C
+ PUSH IY
+ POP DE
+ CALL L1E9D
+ LD A,(HL)
+ RET Z
+ DJNZ L1C0F ; (-019H)
+ XOR A
+ SCF
+ RET
+
+L1C2B: CALL L1C5B
+ CALL L1BFD
+ JP NC,01F79H
+ OR A
+ JP Z,01F85H
+ RET
+
+L1C39: CALL L1C5B
+ CALL L1BFD
+ JP C,01F73H
+ CALL SKPDE
+ LD HL,KEYBUF
+ PUSH IY
+ POP DE
+ PUSH HL
+ CALL L1C54
+ POP HL
+ LD DE,ELMD
+ LD A,(HL)
+L1C54: LD BC,00040H
+ LDIR
+ OR A
+ RET
+
+L1C5B: LD IX,L1C9D
+L1C5F: LD (01C99H),IX
+ CALL SKPDE
+ LD A,(ZLOG)
+ LD C,A
+ LD HL,(TEXTED)
+ PUSH HL
+L1C6E: POP HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD B,A
+ INC HL
+ CALL LDDEMI
+ PUSH HL
+ ADD HL,DE
+ EX (SP),HL
+ CP 08FH
+ JR NC,L1C6E ; (-010H)
+ CP C
+ JR Z,L1C6E ; (-013H)
+ INC HL
+ LD A,(HL)
+ EX AF,AF'
+ INC HL
+ LD DE,ZEQT
+ PUSH BC
+ LD BC,00300H
+L1C8C: LD A,(DE)
+ SUB (HL)
+ OR C
+ LD C,A
+ INC DE
+ INC HL
+ DJNZ L1C8C ; (-008H)
+ POP BC
+ JR NZ,L1C6E ; (-029H)
+ LD A,B
+ CALL L0000
+ JR L1C6E ; (-02fH)
+
+L1C9D: LD A,(01051H)
+ BIT 6,A
+ JP NZ,01F7CH
+ BIT 5,A
+ RET Z
+ EX AF,AF'
+ LD B,A
+ LD A,(ZRWX)
+ AND B
+ BIT 1,A
+ RET Z
+ JP 01F7CH
+
+ CALL L1D15
+ JP NZ,L2AD2
+ LD BC,(ELMD20)
+ PUSH BC
+ XOR A
+ LD IX,(ZINP)
+ CALL IOCALL
+ POP BC
+ RET
+
+ LD A,(01051H)
+ BIT 7,A
+ JP Z,01F97H
+ LD BC,(ELMD20)
+ JP L313A
+
+ LD A,(ELMD)
+ CP 005H
+ JR C,L1CE4 ; (+005H)
+ LD A,080H
+ LD (ELMD18),A
+L1CE4: CALL L1D15
+ JP NZ,L2AE0
+ BIT 7,A
+ JP NZ,01F97H
+ PUSH DE
+ LD HL,L0200
+ LD (ZLOG),HL
+ CALL L1C5B
+ LD HL,ELMD
+ PUSH HL
+ POP IY
+ LD IX,(ZWO)
+ CALL IOCALL
+ LD BC,(ELMD20)
+ POP HL
+ LD A,004H
+ LD IX,(ZOUT)
+ CALL IOCALL
+ RET
+
+L1D15: LD A,(ZFLAG1)
+ BIT 5,A
+ RET
+
+ CALL SKPDE
+ OR A
+ JR NZ,L1D6B ; (+04aH)
+ LD HL,L0100
+ LD (ZLOG),HL
+ CALL DBG_L1C5B_WRAP
+ CALL DBG_FLAGS_TEST
+ ;
+ ; V1.1Z: Restore original ZFLAG1/ZFLAG2 bit tests.
+ ; DBG_FLAGS_TEST returns HL=ZFLAG1 for non-$RFS devices
+ ; (and already handles the ZFLAG1 bit7 error check).
+ ; Original code: BIT 7,ZFLAG1 / BIT 5,ZFLAG1 / INC HL /
+ ; BIT 7,ZFLAG2. bit5 of ZFLAG1 (not ZFLAG2!) flags block
+ ; devices ($FD, $QD) for the ZINP-based DIR path at 02F38H.
+ ;
+ BIT 5,(HL) ; ZFLAG1 bit5 = block device
+ JP NZ,02F38H ; Block device DIR path (ZINP-based)
+ INC HL ; HL = ZFLAG2
+ BIT 7,(HL) ; ZFLAG2 bit7 = error
+ JP NZ,01F97H
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ LD HL,L2000
+ LD BC,00008H
+L1D43: CALL ?CLRHL
+ DEC C
+ JR NZ,L1D43 ; (-006H)
+ CALL 018C7H
+ LD A,(ZDIRMX)
+ LD B,A
+ LD HL,L2000
+L1D53: PUSH BC
+ LD IX,(ZRO)
+ CALL IOCALL
+ PUSH AF
+ LD BC,00020H
+ ADD HL,BC
+ LD (HL),000H
+ POP AF
+ POP BC
+ JR C,L1D68 ; (+002H)
+ DJNZ L1D53 ; (-015H)
+L1D68: JP L18C6
+
+L1D6B: LD (01E13H),A
+ XOR A
+ LD (DISPX),A
+ LD HL,KEYBUF
+ PUSH HL
+ LD DE,L1E1D
+ LD B,00EH
+ CALL LDHLDE
+ CALL L1535
+ LD (HL),020H
+ INC HL
+ LD (HL),020H
+ INC HL
+ EX DE,HL
+ CALL L1D15
+ LD IX,(ZFREE)
+ JR Z,L1D95 ; (+004H)
+ LD IX,L2F4B
+L1D95: CALL IOCALL
+ JR C,L1DA8 ; (+00eH)
+ LD H,B
+ LD L,C
+ LD B,000H
+ RST 018H
+ DB 016H
+ LD HL,L1E2B
+ LD B,009H
+ CALL LDDEHL
+L1DA8: EX DE,HL
+ LD (HL),00DH
+ INC HL
+ LD (HL),000H
+ POP DE
+ CALL L1E12
+ LD B,040H
+ LD HL,L2000
+L1DB7: CALL L1DC3
+ LD DE,00020H
+ ADD HL,DE
+ DJNZ L1DB7 ; (-009H)
+ JP L2D08
+
+L1DC3: CALL SKPDE
+ LD A,(HL)
+ OR A
+ RET Z
+ RET M
+ LD DE,KEYBUF
+ PUSH DE
+ LD A,020H
+ LD B,026H
+ CALL ?SETDE
+ LD A,(HL)
+ CP 00CH
+ JR C,L1DDC ; (+002H)
+ LD A,00CH
+L1DDC: PUSH HL
+ POP IY
+ POP DE
+ PUSH DE
+ INC DE
+ LD HL,L1E31
+ LD BC,L0003
+L1DE8: ADD HL,BC
+ DEC A
+ JR NZ,L1DE8 ; (-004H)
+ LDIR
+ EX DE,HL
+ BIT 0,(IY+012H)
+ JR Z,L1DF7 ; (+002H)
+ LD (HL),02AH
+L1DF7: INC HL
+ INC HL
+ LD (HL),022H
+ INC HL
+L1DFC: LD A,(IY+001H)
+ CP 00DH
+ JR Z,L1E09 ; (+006H)
+ LD (HL),A
+ INC IY
+ INC HL
+ JR L1DFC ; (-00dH)
+
+L1E09: LD (HL),022H
+ INC HL
+ LD (HL),00DH
+ INC HL
+ LD (HL),000H
+ POP DE
+L1E12: LD A,000H
+ RST 018H
+ DB 02EH
+ RST 018H
+ DB 017H
+ RST 018H
+ DB 037H
+ RST 018H
+ DB 00FH
+ RET
+
+L1E1D: DB 00DH,"DIRECTORY OF " ; Directory/file type strings
+L1E2B: DB " KB FR"
+L1E31: DS 2, 045H
+ DB ".OBJBTXBSDBRDRB"
+ DS 2, 020H
+ DB "? LIB ?"
+ DS 2, 020H
+ DB "? SYSGR"
+ DS 2, 020H
+ DB 03FH
+ DB 020H
+; ---------------------------------------------------------------------------
+; Subroutine at 0x1E58: Opens device I/O channel (saves/restores SP and IX)
+; ---------------------------------------------------------------------------
+ PUSH HL ; E5
+L1E59: XOR A ; AF
+ LD (01042H),A ; 32 42 10 — clear I/O flag
+ LD IX,01E71H ; DD 21 71 1E — IX = workspace
+ LD (01E72H),SP ; ED 73 72 1E — save stack pointer
+ CALL L1C5F ; CD 5F 1C — open channel
+ POP HL ; E1
+ LD IX,(01053H) ; DD 2A 53 10 — restore IX
+ CALL IOCALL ; CD 45 02
+ RET ; C9
+; Workspace area (0x1E71-0x1E73, used by above subroutine)
+ DB 031H ; 0x1E71 data (IX-based structure)
+ DS 2, 000H ; 0x1E72-73 SP save area
+; ---------------------------------------------------------------------------
+; Subroutine at 0x1E74: Confirm prompt — SVC #38 + "OK ? [Y/N]"
+; ---------------------------------------------------------------------------
+ LD B,000H ; 06 00
+ RST 018H ; DF
+ DB 038H ; SVC #38
+ JR L1E59 ; 18 DF — loop back to XOR A at 0x1E59
+; ---------------------------------------------------------------------------
+; Subroutine at 0x1E7A: Ask "OK ? [Y/N]" and return Z if 'Y'
+; ---------------------------------------------------------------------------
+L1E7A: CALL 00164H ; CD 64 01
+ DB 059H ; inline param 'Y' for CALL 0164H
+ RET Z ; C8 — return if match
+ LD DE,01E8EH ; 11 8E 1E — DE → "OK ? [Y/N]" string
+ RST 018H ; DF
+ DB 005H ; SVC #5 — display string
+ LD A,001H ; 3E 01
+ RST 018H ; DF
+ DB 00DH ; SVC #0D — read key
+ CP 059H ; FE 59 — compare with 'Y'
+ RET Z ; C8 — return Z if 'Y'
+ JP 0017DH ; C3 7D 01 — jump to error/cancel handler
+ DB "OK ? [Y/N]",019H,000H ; Inline string at 0x1E8E
+; ---------------------------------------------------------------------------
+; L1E9D: Filename comparison — compares entry name (HL) with search name (DE).
+; Skips ATRB byte in both, compares up to 17 chars, CR terminates/matches.
+; ---------------------------------------------------------------------------
+L1E9A: LD DE,01000H
+L1E9D: CALL SKPDE ; Skip DE past device name
+ INC HL ; Skip ATRB byte in directory entry
+ INC DE ; Skip ATRB byte in search name
+ LD A,(DE)
+ CP 00DH
+ RET Z
+ LD B,011H
+L1EA8: LD A,(DE)
+ CP (HL)
+ RET NZ
+ CP 00DH
+ RET Z
+ INC HL
+ INC DE
+ DJNZ L1EA8 ; (-00aH)
+ OR A
+ RET
+
+L1EB4: INC HL
+ LD C,010H
+L1EB7: LD A,B
+ OR A
+ JR Z,L1ECF ; (+014H)
+ LD A,(DE)
+ INC DE
+ DEC B
+ OR A
+ JR Z,L1ECF ; (+00eH)
+ CP 022H
+ JR Z,L1EB7 ; (-00eH)
+ CP 03AH
+ JP Z,01F9AH
+ LD (HL),A
+ INC HL
+ DEC C
+ JR NZ,L1EB7 ; (-018H)
+L1ECF: LD (HL),00DH
+ INC HL
+L1ED2: LD A,C
+ OR A
+ RET Z
+ LD (HL),020H
+ INC HL
+ DEC C
+ JR L1ED2 ; (-009H)
+
+ LD HL,(TEXTED)
+L1EDE: INC (HL)
+ DEC (HL)
+ SCF
+ RET Z
+ CP (HL)
+ INC HL
+ JR Z,L1EEE ; (+008H)
+ PUSH DE
+ CALL LDDEMI
+ ADD HL,DE
+ POP DE
+ JR L1EDE ; (-010H)
+
+L1EEE: INC HL
+ INC HL
+ RET
+
+L1EF1: CALL SKPDE
+ RST 018H
+ DB 029H
+ RET C
+ DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ DEC HL
+ LD D,H
+ LD E,L
+ INC BC
+ INC BC
+ INC BC
+ PUSH BC
+ ADD HL,BC
+ PUSH HL
+ LD B,H
+ LD C,L
+ LD HL,(TMPEND)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ LDIR
+ POP DE
+ LD HL,L0000
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ RST 018H
+ DB 019H
+ OR A
+ RET
+
+ PUSH AF
+ PUSH BC
+ PUSH DE
+ PUSH DE
+ INC DE
+ INC DE
+ INC DE
+ LD HL,(TMPEND)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ JP C,01F6DH
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ SBC HL,DE
+ JR C,01F6DH ; (+037H)
+ LD HL,(MEMLMT)
+ DEC H
+ DEC H
+ SBC HL,DE
+ JR C,01F6DH ; (+02eH)
+ POP HL
+ PUSH HL
+ LD BC,(VARST)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ INC BC
+ LDDR
+ POP DE
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ PUSH HL
+ INC DE
+ PUSH DE
+L1F58: LD (HL),000H
+ INC HL
+ DEC DE
+ LD A,D
+ OR E
+ JR NZ,L1F58 ; (-008H)
+ POP DE
+ INC DE
+ INC DE
+ RST 018H
+ DB 019H
+ POP HL
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L1F6A: LD A,003H
+ LD HL,0063EH
+ LD HL,09C3EH
+ LD HL,0A83EH
+ LD HL,0A93EH
+ LD HL,0AA3EH
+ LD HL,0AB3EH
+ LD HL,0AE3EH
+ LD HL,0B23EH
+ LD HL,0B33EH
+ LD HL,0B43EH
+ LD HL,0B53EH
+ LD HL,0B63EH
+ LD HL,0B73EH
+ LD HL,L3A3E
+ LD HL,0BB3EH
+ LD HL,0BC3EH
+ LD HL,0BD3EH
+ LD HL,0BF3EH
+ LD HL,L403E
+ LD HL,0C43EH
+ JP L0182
+
+L1FAB: LD A,(L1FC0)
+ OR A
+ LD B,000H
+ CALL NZ,L1BA7
+ CALL L368D
+ CALL L38FA
+ CALL L2D08
+ JP L0D20
+
+L1FC0: DS 64, 000H
+L2000: DS 38, 000H
+L2026: DS 263, 000H
+L212D: DS 211, 000H
+L2200: DS 294, 000H
+L2326: DS 986, 000H
+L2700: DS 16, 000H
+L2710: DS 240, 000H
+L2800: DS 256, 000H
+ LD (02905H),DE
+ RET
+
+L2905: NOP
+ NOP
+L2907: LD BC,L0000
+ LD DE,00001H
+ BIT 2,A
+ CALL Z,L2ED0
+ LD HL,(L180D)
+ LD A,(HL)
+ LD (HL),C
+ LD C,A
+ INC HL
+ LD A,(HL)
+ LD (HL),B
+ LD B,A
+ LD HL,(L180B)
+ LD DE,L0100
+ JP L2FCF
+
+ CALL SKPDE
+ CALL L181A
+ LD HL,KEYBUF
+ PUSH HL
+ LD A,B
+ OR A
+ CALL NZ,LDHLDE
+ LD B,020H
+ LD A,020H
+ CALL ?SETHL
+ LD A,(IY+012H)
+ OR A
+ JP NZ,01F7FH
+ CALL L29DF
+ JR NC,L2964 ; (+01dH)
+ LD (IY+014H),E
+ LD (IY+015H),D
+ LD (IY+046H),001H
+ JR Z,L2964 ; (+011H)
+ CALL L29C2
+ CALL L2A08
+ CALL L297C
+ LD (IY+040H),L
+ LD (IY+041H),H
+ JR L296A ; (+006H)
+
+L2964: CALL L297C
+ CALL L29AB
+L296A: POP HL
+ CALL L2E24
+ LD (IY+044H),001H
+L2972: LD HL,(L2905)
+ INC HL
+ LD (L2905),HL
+ JP L1815
+
+L297C: LD HL,(L2905)
+ DEC HL
+ PUSH HL
+ ADD HL,HL
+ LD E,H
+ LD D,000H
+ LD HL,(L180B)
+ ADD HL,DE
+ ADD HL,DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD A,L
+ PUSH AF
+ RRA
+ RRA
+ RRA
+ AND 00FH
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ POP AF
+ AND 007H
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ LD DE,(0180BH)
+ INC D
+ ADD A,E
+ LD E,A
+ RET NC
+ INC D
+ RET
+
+L29AB: LD A,(IY+040H)
+ CP L
+ JR NZ,L29B6 ; (+005H)
+ LD A,(IY+041H)
+ CP H
+ RET Z
+L29B6: CALL L29C2
+ LD (IY+040H),L
+ LD (IY+041H),H
+ XOR A
+ JR L29CC ; (+00aH)
+
+L29C2: XOR A
+ CP (IY+044H)
+ RET Z
+ LD (IY+044H),A
+ LD A,003H
+L29CC: CALL SKPDE
+ LD C,(IY+040H)
+ LD B,(IY+041H)
+ LD DE,L0100
+ LD HL,(L180B)
+ INC H
+ JP L2FD1
+
+L29DF: LD L,(IY+014H)
+ LD H,(IY+015H)
+ LD DE,(02905H)
+ LD A,H
+ OR L
+ JR NZ,L29F1 ; (+004H)
+ OR 0FFH
+ SCF
+ RET
+
+L29F1: CALL L2FC9
+ RET NC
+ CALL SKPDE
+ DEC HL
+ DEC DE
+ LD A,L
+ AND 080H
+ LD L,A
+ LD A,E
+ AND 080H
+ LD E,A
+ CALL L2FC9
+ RET C
+ SCF
+ RET
+
+L2A08: CALL SKPDE
+ LD HL,(L2905)
+ DEC HL
+ ADD HL,HL
+ LD B,H
+ INC B
+ LD HL,(L180B)
+L2A15: LD A,(HL)
+ INC HL
+ OR (HL)
+ CALL Z,L2A23
+ INC HL
+ DJNZ L2A15 ; (-009H)
+ LD (IY+046H),001H
+ RET
+
+L2A23: CALL SKPDE
+ PUSH HL
+ LD DE,00010H
+ CALL L2ED0
+ POP HL
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ LD HL,(L180B)
+ INC H
+ XOR A
+L2A36: LD (HL),020H
+ INC HL
+ DEC A
+ JR NZ,L2A36 ; (-006H)
+ DEC H
+ LD DE,L0100
+ LD A,010H
+L2A42: PUSH AF
+ CALL L2FCF
+ POP AF
+ INC BC
+ DEC A
+ JR NZ,L2A42 ; (-009H)
+ RET
+
+L2A4C: LD L,(IY+014H)
+ LD H,(IY+015H)
+ LD A,H
+ OR L
+ SCF
+ RET Z
+ LD DE,0FF02H
+ PUSH HL
+ ADD HL,DE
+ JR C,L2A60 ; (+003H)
+ LD HL,L0000
+L2A60: LD (IY+014H),L
+ LD (IY+015H),H
+ POP DE
+ LD HL,(L180B)
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ CALL L2A88
+ OR A
+ LD A,(ZRWX)
+ BIT 2,A
+ RET NZ
+ LD HL,(L180D)
+ LD A,(HL)
+ LD (IY+01EH),A
+ INC HL
+ LD A,(HL)
+ LD (IY+01FH),A
+ LD DE,L0000
+ RET
+
+L2A88: LD C,(IY+01EH)
+ LD B,(IY+01FH)
+ LD A,B
+ OR C
+ JP Z,01F76H
+ LD DE,L0100
+ LD HL,(L180B)
+ JP 02FD0H
+
+ RET
+
+ XOR A
+ LD (DE),A
+ PUSH HL
+ PUSH DE
+ PUSH DE
+ CALL L29DF
+ POP DE
+ JR C,L2AC7 ; (+01fH)
+ CALL L181A
+ PUSH DE
+ CALL L297C
+ CALL L29AB
+ EX DE,HL
+ POP DE
+ CALL L2E24
+ XOR A
+ LD (DE),A
+ CALL L2972
+ LD B,020H
+ XOR A
+ LD HL,(ZTOP)
+ INC HL
+ RES 7,(HL)
+ JR L2ACF ; (+008H)
+
+L2AC7: XOR A
+ LD B,A
+ LD HL,(ZTOP)
+ INC HL
+ SET 7,(HL)
+L2ACF: POP DE
+ POP HL
+ RET
+
+L2AD2: LD DE,(ELMD20)
+ LD BC,(ELMD30)
+ CALL 02FD0H
+ JP L2D08
+
+L2AE0: CALL L2AEA
+ LD IY,ELMD
+ JP L2C07
+
+L2AEA: PUSH DE
+ CALL L2DD0
+ CALL L2ED0
+ LD (ELMD30),BC
+ LD D,E
+ LD E,000H
+ POP HL
+ JP L2FCF
+
+ OR A
+ JR NZ,L2B34 ; (+035H)
+ PUSH DE
+ CALL L2B6A
+ LD A,000H
+ CALL Z,L2B51
+ POP DE
+ CALL L2AEA
+ LD HL,ELMD
+ OR 0FFH
+ CALL L2B51
+ CALL L2E2A
+ LD HL,L2000
+ LD (HL),081H
+ PUSH HL
+ POP IY
+ LD HL,(ELMD20)
+ LD (IY+014H),L
+ LD (IY+015H),H
+ LD HL,(ELMD30)
+ LD (IY+01EH),L
+ LD (IY+01FH),H
+ JP L2F37
+
+L2B34: PUSH HL
+ CALL L2B6A
+ JP NZ,01F88H
+ DEC (HL)
+ LD DE,ELMD
+ CALL L2E24
+ CALL L2F37
+L2B45: XOR A
+ LD HL,L2000
+ CALL L2B51
+ CALL L2E2A
+ POP HL
+ RET
+
+L2B51: CALL SKPDE
+ PUSH AF
+ LD DE,00014H
+ ADD HL,DE
+ CALL LDDEMI
+ LD BC,00008H
+ ADD HL,BC
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ CALL L2DD8
+ POP AF
+ JP L2E77
+
+L2B6A: CALL L1D15
+ JP Z,01F97H
+ CALL L2E36
+ CALL 02F38H
+ LD A,(HL)
+ CP 081H
+ RET
+
+L2B7A: LD A,009H
+ LD (ZRWX),A
+L2B7F: CALL L2F6E
+ XOR B
+ DEC HL
+ LD A,(ZRWX)
+ BIT 0,A
+ JP NZ,01F73H
+ PUSH AF
+ LD DE,00001H
+ CALL L2ED0
+ LD (IY+01EH),C
+ LD (IY+01FH),B
+ LD (IY+046H),001H
+ POP AF
+ BIT 1,A
+ RET Z
+ LD HL,(L180D)
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ RET
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD A,(ZRWX)
+ BIT 1,A
+ JP NZ,01F79H
+ PUSH HL
+ CALL L2E24
+ LD B,020H
+ CALL ?CLRDE
+ POP HL
+ LD A,(HL)
+ PUSH IY
+ POP DE
+ CALL L2E24
+ LD HL,ZRWX
+ BIT 3,(HL)
+ RET NZ
+ BIT 0,(HL)
+ JP NZ,L2A4C
+ CALL L2E5E
+ CALL L2A88
+ LD D,H
+ LD E,L
+L2BDB: LD A,(HL)
+ INC HL
+ OR (HL)
+ INC HL
+ JR NZ,L2BDB ; (-006H)
+ DEC HL
+ DEC HL
+ SBC HL,DE
+ LD (IY+042H),L
+ LD (IY+043H),H
+ RET
+
+L2BEC: LD A,B
+ OR A
+ RET Z
+ LD A,(ZRWX)
+ BIT 0,A
+ RET NZ
+ BIT 2,A
+ JR NZ,L2C20 ; (+027H)
+ LD A,006H
+ CALL L2907
+ PUSH IY
+ POP HL
+ LD DE,ELMD
+ CALL L2E24
+L2C07: CALL L2F6E
+ RLA
+ INC L
+ JP Z,01F85H
+L2C0F: LD A,001H
+ LD B,(IY+000H)
+ JP L2D6A
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ JP 01F79H
+
+L2C20: CALL L29C2
+ LD A,(IY+046H)
+ OR A
+ RET Z
+ CALL L2F6E
+ LD (0CA2CH),A
+ ADD A,L
+ RRA
+ JR L2C0F ; (-023H)
+
+ RET M
+ RET Z
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD (IY+045H),001H
+ LD A,(HL)
+ CP (IY+000H)
+ JP NZ,01F9DH
+ JR L2C0F ; (-037H)
+
+ CALL SKPDE
+ LD (02C60H),A
+ CALL L2F6E
+ LD D,H
+ INC L
+ JP 01F73H
+
+ RET Z
+ RET M
+ CALL L1E9A
+ RET NZ
+ POP AF
+ LD BC,L0012
+ ADD HL,BC
+ LD (HL),0FFH
+L2C61: CALL L2F37
+ JP L2D08
+
+ CALL SKPDE
+ CALL L2F6E
+ LD (HL),D
+ INC L
+ JP 01F73H
+
+ RET Z
+ RET M
+ CALL L1E9A
+ RET NZ
+ POP AF
+ CALL L2CFB
+ PUSH HL
+ LD DE,ELMD
+ CALL L2E24
+ XOR A
+ LD (ZLOG),A
+ LD IX,L2C9B
+ CALL L1C5F
+ XOR A
+ LD (ELMD),A
+ POP HL
+L2C93: LD B,(HL)
+ LD IY,ELMD
+ JP L2D6A
+
+L2C9B: INC HL
+ INC HL
+ INC HL
+ CALL L1E9A
+ JP Z,01F7CH
+L2CA4: RET
+
+L2CA5: DS 16, 000H
+ DEC C
+ CALL SKPDE
+ LD HL,L2CA4
+ CALL L1EB4
+ XOR A
+L2CC0: LD (02CE3H),A
+ CALL L2F6E
+ JP Z,L182C
+ JR L2C93 ; (-038H)
+
+ RET M
+ LD DE,L2CA4
+ CALL L1E9D
+ JP Z,01F79H
+ CALL L1E9A
+ RET NZ
+ LD (02CE9H),HL
+ LD A,001H
+ LD (02CE3H),A
+ RET
+
+ LD A,0FFH
+ OR A
+ JP Z,01F73H
+ LD HL,0FFFFH
+ CALL L2CFB
+ LD DE,L2CA5
+ INC HL
+ EX DE,HL
+ LD BC,00011H
+ LDIR
+ JP L2C61
+
+L2CFB: CALL SKPDE
+ LD DE,L0012
+ ADD HL,DE
+ LD A,(HL)
+ OR A
+ RET Z
+ JP 01F7FH
+
+L2D08: CALL IOOUT
+ XOR A
+ LD (L1FC0),A
+ LD A,LSE0
+L2D11: PUSH AF
+ RST 018H
+ DB 02BH
+ POP AF
+ INC A
+ JR NZ,L2D11 ; (-007H)
+ LD HL,(ZEQT)
+ LD DE,$FD
+ CALL L2FC9
+ RET NZ
+ LD A,(ZCH)
+ EXX
+ LD H,A
+ LD D,000H
+ LD B,003H
+ EXX
+ XOR A
+ LD (ZLOG),A
+L2D30: EXX
+ LD A,B
+ LD (ZCH),A
+ ADD A,090H
+ LD L,A
+ LD E,000H
+ EXX
+ LD IX,L2D5C
+ CALL L1C5F
+ EXX
+ BIT 7,E
+ LD A,L
+ EXX
+ CALL Z,L1EF1
+ EXX
+ DEC B
+ EXX
+ JP P,L2D30
+ EXX
+ LD A,H
+ LD (ZCH),A
+ BIT 7,D
+ EXX
+ CALL Z,L368D
+ RET
+
+L2D5C: EXX
+ LD DE,0FFFFH
+ EXX
+ RET
+
+L2D62: LD A,(ZCH)
+ ADD A,090H
+ RST 018H
+ DB 029H
+ RET
+
+L2D6A: LD (L2DCF),A
+ LD A,B
+ PUSH AF
+ EX DE,HL
+ LD HL,ELMD
+ CALL L2E24
+ CALL L2E36
+ POP AF
+ CP 005H
+ JR C,L2D88 ; (+00aH)
+ LD A,(ELMD18)
+ RLA
+ LD A,003H
+ JR NC,L2D88 ; (+002H)
+ LD A,001H
+L2D88: LD HL,02D9CH
+ ADD A,A
+ CALL ADDHLA
+ CALL INDRCT
+ CALL L00FA
+ CALL L2F37
+ CALL L2E2A
+ JP L2D08
+
+ ADD A,02DH
+ ADD A,02DH
+ AND (HL)
+ DEC L
+ JP PO,L212D
+ JR NZ,02DB9H ; (+010H)
+L2DA9: DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ LD A,B
+ OR C
+ RET Z
+ LD DE,L0100
+ LD HL,KEYBUF
+ PUSH HL
+ PUSH DE
+ CALL 02FD0H
+ LD DE,00001H
+ CALL L2DC9
+ POP DE
+ POP HL
+ ADD HL,DE
+ JR L2DA9 ; (-01dH)
+
+ CALL L2DD0
+L2DC9: LD A,(L2DCF)
+ JP L2E77
+
+L2DCF: NOP
+L2DD0: LD DE,(ELMD20)
+ LD BC,(ELMD30)
+L2DD8: LD A,E
+ OR D
+ JR Z,L2DDD ; (+001H)
+ DEC DE
+L2DDD: INC D
+ LD E,D
+ LD D,000H
+ RET
+
+ LD DE,L0100
+ LD BC,(ELMD30)
+ LD A,(L2DCF)
+ OR A
+ LD HL,KEYBUF
+ JR Z,L2DF5 ; (+003H)
+ LD HL,(L180B)
+L2DF5: PUSH HL
+ PUSH AF
+ CALL L2FD1
+ POP AF
+ PUSH AF
+ JR Z,L2E02 ; (+004H)
+ LD A,(IY+045H)
+ OR A
+L2E02: LD DE,00001H
+ CALL Z,L2DC9
+ POP AF
+ POP HL
+ JR Z,L2E13 ; (+007H)
+ LD E,(IY+042H)
+ LD D,(IY+043H)
+ ADD HL,DE
+L2E13: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ LD A,B
+ OR C
+ RET Z
+ PUSH HL
+ LD DE,00010H
+ CALL L2DC9
+ POP HL
+ JR L2E13 ; (-011H)
+
+L2E24: LD BC,00020H
+ LDIR
+ RET
+
+L2E2A: LD HL,L2800
+ LD DE,L0100
+ LD BC,L000F
+ JP L2FCF
+
+L2E36: LD HL,L2800
+ CALL L2E67
+ PUSH HL
+ CALL L2D62
+ EX DE,HL
+ POP HL
+ RET C
+ PUSH HL
+ LD A,(DE)
+ CP (HL)
+ JP NZ,01F88H
+ LD BC,L0006
+ ADD HL,BC
+ EX DE,HL
+ ADD HL,BC
+ EX DE,HL
+ LD B,FDPC
+L2E52: LD A,(DE)
+ CPL
+ AND (HL)
+ JP NZ,01F88H
+ INC HL
+ INC DE
+ DJNZ L2E52 ; (-00aH)
+ POP HL
+ RET
+
+L2E5E: CALL L2D62
+ RET NC
+ LD DE,L0100
+ RST 018H
+ DB 02AH
+L2E67: LD BC,L000F
+ LD DE,L0100
+ XOR A
+ CALL L2FD4
+ LD A,(HL)
+ OR A
+ JP M,01F70H
+ RET
+
+L2E77: LD HL,L2800
+ CALL L2E84
+ OR A
+ RET NZ
+ CALL L2D62
+ RET C
+ XOR A
+L2E84: CALL IOOUT
+ OR A
+ PUSH HL
+ LD HL,0B600H
+ LD A,013H
+ JR NZ,L2E95 ; (+005H)
+ LD HL,0A62FH
+ LD A,01BH
+L2E95: LD (L2EB2),A
+ LD (L2EC8),HL
+ POP HL
+L2E9C: CALL L2EA4
+ INC BC
+ DEC E
+ JR NZ,L2E9C ; (-007H)
+ RET
+
+L2EA4: CALL SKPDE
+ INC HL
+ LD A,C
+ SUB (HL)
+ LD C,A
+ JR NC,L2EAE ; (+001H)
+ DEC B
+L2EAE: INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L2EB2: NOP
+ DEC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ LD A,C
+ LD E,003H
+L2EBD: SRL B
+ RR C
+ DEC E
+ JR NZ,L2EBD ; (-007H)
+ ADD HL,BC
+ CALL L2F2B
+L2EC8: NOP
+ NOP
+ CP (HL)
+ LD (HL),A
+ RET NZ
+ JP 01F88H
+
+L2ED0: PUSH DE
+ CALL L2E5E
+ POP DE
+ PUSH HL
+ CALL L2EDE
+ POP HL
+ LD A,001H
+ JR L2E84 ; (-05aH)
+
+L2EDE: LD A,E
+ EXX
+ LD E,A
+ LD D,A
+ LD B,001H
+ EXX
+ INC HL
+ LD E,(HL)
+ LD D,000H
+ INC HL
+ INC HL
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ DEC BC
+ LD (02EFCH),BC
+ INC HL
+ PUSH HL
+ EXX
+ POP HL
+ EXX
+ LD B,D
+ LD C,E
+L2EFB: LD HL,L0000
+ OR A
+ SBC HL,DE
+ JP C,01F8BH
+ EXX
+ LD A,B
+ AND (HL)
+ EXX
+ CALL L2F15
+ INC DE
+ EXX
+ RLC B
+ JR NC,L2F12 ; (+001H)
+ INC HL
+L2F12: EXX
+ JR L2EFB ; (-01aH)
+
+L2F15: JR NZ,L2F24 ; (+00dH)
+ EXX
+ DEC E
+ EXX
+ RET NZ
+ POP AF
+ EXX
+ LD A,D
+ EXX
+ LD E,A
+ LD D,000H
+ OR A
+ RET
+
+L2F24: EXX
+ LD E,D
+ EXX
+ LD B,D
+ LD C,E
+ INC BC
+ RET
+
+L2F2B: PUSH BC
+ AND 007H
+ INC A
+ LD B,A
+ XOR A
+ SCF
+L2F32: ADC A,A
+ DJNZ L2F32 ; (-003H)
+ POP BC
+ RET
+
+L2F37: OR 0AFH
+ LD HL,L2000
+ LD DE,00800H
+ LD BC,00010H
+ CALL L2FD1
+ LD A,(HL)
+ OR A
+ JP P,01F70H
+ RET
+
+L2F4B: PUSH HL
+ PUSH DE
+ CALL L2E36
+ INC HL
+ INC HL
+ CALL LDDEMI
+ CALL INDRCT
+ XOR A
+ SBC HL,DE
+ JP C,01F70H
+ SRL H
+ RR L
+ SRL H
+ RR L
+ LD B,H
+ LD C,L
+ POP DE
+ POP HL
+ OR A
+ JP L368D
+
+L2F6E: CALL L1D15
+ JP Z,01F97H
+ POP HL
+ CALL LDDEMI
+ LD (02FB1H),HL
+ LD (02F97H),DE
+ XOR A
+ LD (L2FC3),A
+ CALL 02F38H
+ LD (L2FC7),HL
+ LD A,040H
+ LD (L2FC6),A
+L2F8E: LD HL,(L2FC7)
+ LD A,(HL)
+ OR A
+ CALL Z,L2FB3
+ CALL 0FFFFH
+ LD HL,(L2FC7)
+ LD BC,00020H
+ ADD HL,BC
+ LD (L2FC7),HL
+ LD HL,L2FC6
+ DEC (HL)
+ JR NZ,L2F8E ; (-01bH)
+ LD A,(L2FC3)
+ LD HL,(L2FC4)
+ OR A
+ JP 0FFFFH
+
+L2FB3: PUSH AF
+ LD A,(L2FC3)
+ OR A
+ JR NZ,L2FC1 ; (+007H)
+ INC A
+ LD (L2FC3),A
+ LD (L2FC4),HL
+L2FC1: POP AF
+ RET
+
+L2FC3: NOP
+L2FC4: NOP
+ NOP
+L2FC6: NOP
+L2FC7: NOP
+ NOP
+L2FC9: PUSH HL
+ OR A
+ SBC HL,DE
+ POP HL
+ RET
+
+L2FCF: OR 0AFH
+L2FD1: CALL L2FE8
+L2FD4: CALL SKPDE
+ OR A
+ LD IX,(ZINP)
+ JR Z,L2FE2 ; (+004H)
+ LD IX,(ZOUT)
+L2FE2: LD A,(ZCH)
+ JP IOCALL
+
+L2FE8: CALL IOOUT
+ LD A,(L35B5)
+ OR A
+ RET M
+ CALL L2D62
+ RET C
+ JP L2E36
+
+; ---------------------------------------------------------------------------
+; $CMT - Cassette Tape device descriptor (same format as $RFS, $FD, etc.)
+; ---------------------------------------------------------------------------
+$CMT: DW 03359H ; Next device = $RS
+ DB "CMT",000H ; Device name
+ DB 05FH ; flags1: bit5=0, bit6=1
+L2FFE: DB 0C0H ; flags2 (bit 4 toggled by CMT handler)
+ DB 000H ; dirmx = 0
+ DW 03014H ; ZINIT
+ DW 03064H ; ZRO
+ DW 03022H ; ZWO
+ DW 000E5H ; ZCL (= NOP stub)
+ DW 00100H ; ZKL
+ DW 030AAH ; ZINP
+ DW 0305DH ; ZOUT
+ DW 01F97H ; ZDELT (= error handler)
+ DW 01F97H ; ZWDIR (= error handler)
+ DW 01F97H ; ZFREE (= error handler)
+ CALL TEST1
+ DB 054H
+ LD HL,L2FFE
+ SET 4,(HL)
+ RET Z
+ RES 4,(HL)
+ OR A
+ RET
+
+ CALL SKPDE
+ LD DE,L10F0
+ LD A,(HL)
+ LD C,005H
+ CP 002H
+ JR Z,L303D ; (+00eH)
+ LD C,004H
+L3031: CP 003H
+ JR Z,L303D ; (+008H)
+ LD C,A
+L3036: SUB 004H
+ CP 002H
+ JP C,01F9DH
+L303D: LD A,C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD BC,00011H
+ LDIR
+ INC HL
+ INC HL
+ LD BC,L0006
+ LDIR
+ LD B,068H
+ CALL ?CLRDE
+ LD HL,L10F0
+ LD BC,L0080
+ CALL L30CB
+ JR L3060 ; (+003H)
+
+ CALL L30D2
+L3060: JP C,L017B
+ RET
+
+ LD A,037H
+ LD (L30AA),A
+ PUSH HL
+ LD HL,L10F0
+ LD BC,L0080
+ CALL L3114
+ JR C,L30C1 ; (+04cH)
+ LD DE,L3332
+ CALL L3301
+ POP DE
+ LD A,(HL)
+ LD C,002H
+ CP 005H
+ JR Z,L3091 ; (+00eH)
+ LD C,003H
+ CP 004H
+ JR Z,L3091 ; (+008H)
+ LD C,A
+ SUB 002H
+ CP 002H
+ JP C,01F9DH
+L3091: LD A,C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD BC,00011H
+ LDIR
+ XOR A
+ LD B,002H
+ CALL ?CLRDE
+ LD BC,L0006
+ LDIR
+ LD B,006H
+ JP ?CLRDE
+
+L30AA: XOR A
+ JR NC,L30BD ; (+010H)
+ LD A,0AFH
+ LD (L30AA),A
+ PUSH HL
+ LD HL,ELMD
+ LD DE,L333F
+ CALL L3301
+ POP HL
+L30BD: CALL L311B
+ RET NC
+L30C1: CP 002H
+ JP NZ,L017B
+ LD A,0C6H
+ JP L0182
+
+L30CB: CALL L32D4
+ LD A,0CCH
+ JR L30D4 ; (+002H)
+
+L30D2: LD A,053H
+L30D4: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD E,A
+ LD D,0D7H
+ LD A,B
+ OR C
+ JR Z,L3107 ; (+024H)
+ CALL L32CB
+ CALL L3174
+ JR C,L3101 ; (+016H)
+ LD A,E
+ CP 0CCH
+ JR NZ,L30F8 ; (+008H)
+ PUSH DE
+ LD DE,L3325
+ CALL L3301
+ POP DE
+L30F8: DI
+ OUT (LSE4),A
+ CALL 00780H
+ CALL NC,L31DD
+L3101: DI
+ OUT (LSE4),A
+ CALL 00700H
+L3107: POP DE
+ LD SP,L0000
+ OUT (LSE0),A
+ OUT (LSE1),A
+ PUSH AF
+ RST 018H
+ DB 011H
+ POP AF
+ RET
+
+L3114: CALL L32D4
+ LD A,0CCH
+ JR L311D ; (+002H)
+
+L311B: LD A,053H
+L311D: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD D,LSD2
+ LD E,A
+ LD A,B
+ OR C
+ JR Z,L3107 ; (-025H)
+ CALL L3174
+ DI
+ OUT (LSE4),A
+ CALL NC,L065B
+ CALL NC,L3220
+ JR L3101 ; (-039H)
+
+L313A: PUSH HL
+ LD DE,L334C
+ LD HL,ELMD
+ CALL L3301
+ POP HL
+ CALL L3153
+ RET NC
+ CP 002H
+ JP NZ,L017B
+ LD A,083H
+ JP L0182
+
+L3153: LD (03109H),SP
+ LD SP,L10F0
+ PUSH DE
+ LD D,LSD2
+ LD E,053H
+ LD A,B
+ OR C
+ JR Z,L3107 ; (-05cH)
+ CALL RFS_LOAD_HOOK
+ NOP
+ NOP
+ NOP
+ DI
+ OUT (LSE4),A
+ CALL NC,L065B
+ CALL NC,L3274
+ JR L3101 ; (-073H)
+
+L3174: CALL SKPDE
+ RST 018H
+ DB 010H
+ LD HL,MMIO
+ LD A,FDPA
+ CALL POPRA
+ LD B,00AH
+L3183: LD HL,0E002H
+ CALL BREAKX
+ AND 010H
+ JR Z,L319A ; (+00dH)
+L318D: LD B,0FFH
+ OUT (LSE2),A
+L3191: CALL L09A6
+ DJNZ L3191 ; (-005H)
+ OUT (LSE0),A
+ XOR A
+ RET
+
+L319A: LD HL,0E003H
+ LD A,006H
+ CALL POPRA
+ INC A
+ CALL POPRA
+ DJNZ L3183 ; (-025H)
+ LD A,(L0050)
+ OR A
+ JR NZ,L31C7 ; (+019H)
+ RST 018H
+ DB 002H
+ LD A,07FH
+ RST 018H
+ DB 004H
+ LD A,020H
+ RST 018H
+ DB 003H
+ LD A,D
+ CP 0D7H
+ LD DE,L32BC
+ JR Z,L31C3 ; (+003H)
+ LD DE,L32C3
+L31C3: RST 018H
+ DB 005H
+ RST 018H
+ DB 002H
+L31C7: LD HL,0E002H
+ CALL BREAKX
+ AND 010H
+ JR NZ,L318D ; (-044H)
+ LD HL,0E001H
+ CALL BREAKX
+ AND 080H
+ JR NZ,L31C7 ; (-014H)
+ SCF
+ RET
+
+L31DD: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD D,002H
+ LD A,FDPA
+ LD (MMIO),A
+L31E7: OUT (LSE1),A
+ LD A,(HL)
+ OUT (LSE3),A
+ CALL L32C8
+ LD A,(0E001H)
+ AND 080H
+ SCF
+ JR Z,L321C ; (+025H)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L31E7 ; (-016H)
+ LD HL,(SUMDT)
+ LD A,H
+ CALL L32C8
+ LD A,L
+ CALL L32C8
+ CALL L0D60
+ XOR A
+ DEC D
+ JR Z,L321C ; (+00dH)
+ LD B,000H
+L3211: CALL L0D47
+ DJNZ L3211 ; (-005H)
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+ JR L31E7 ; (-035H)
+
+L321C: POP HL
+ POP BC
+ POP DE
+ RET
+
+L3220: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD H,002H
+L3225: LD BC,0E001H
+ LD DE,0E002H
+L322B: CALL 00601H
+ JR C,L3267 ; (+037H)
+ CALL 00A4AH
+ LD A,(DE)
+ AND 020H
+ JR Z,L322B ; (-00dH)
+ LD D,H
+ LD HL,L0000
+ LD (SUMDT),HL
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+L3243: CALL L0624
+ JR C,L3267 ; (+01fH)
+ OUT (LSE1),A
+ LD (HL),A
+ OUT (LSE3),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3243 ; (-010H)
+ LD HL,(SUMDT)
+ CALL L0624
+ JR C,L3267 ; (+00cH)
+ CP H
+ JR NZ,L326B ; (+00dH)
+ CALL L0624
+ JR C,L3267 ; (+004H)
+ CP L
+ JR NZ,L326B ; (+005H)
+L3266: XOR A
+L3267: POP HL
+ POP BC
+ POP DE
+ RET
+
+L326B: DEC D
+ LD H,D
+ JR NZ,L3225 ; (-04aH)
+L326F: LD A,002H
+ SCF
+ JR L3267 ; (-00dH)
+
+L3274: PUSH DE
+ PUSH BC
+ PUSH HL
+ LD H,002H
+L3279: LD BC,0E001H
+ LD DE,0E002H
+L327F: CALL 00601H
+ JR C,L3267 ; (-01dH)
+ CALL 00A4AH
+ LD A,(DE)
+ AND 020H
+ JR Z,L327F ; (-00dH)
+ LD D,H
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+L3291: CALL L0624
+ JR C,L3267 ; (-02fH)
+ OUT (LSE1),A
+ CP (HL)
+ OUT (LSE3),A
+ JR NZ,L326F ; (-02eH)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3291 ; (-012H)
+ LD HL,(CSMDT)
+ CALL L0624
+ JR C,L3267 ; (-044H)
+ CP H
+ JR NZ,L326F ; (-03fH)
+ CALL L0624
+ JR C,L3267 ; (-04cH)
+ CP L
+ JR NZ,L326F ; (-047H)
+ DEC D
+ LD H,D
+ JR NZ,L3279 ; (-041H)
+ JR L3266 ; (-056H)
+
+L32BC: DB "RECORD." ; CMT status strings (RECORD/PLAY)
+L32C3: DB "PLAY",000H
+L32C8: JP L076D
+
+L32CB: DI
+ OUT (LSE2),A
+ CALL 0071AH
+ OUT (LSE0),A
+ RET
+
+L32D4: CALL SKPDE
+ LD A,0C9H
+ LD (L32D4),A
+ LD HL,L0036
+ BIT 6,(HL)
+ RET Z
+ LD HL,L0767
+ LD (032C9H),HL
+ LD HL,L077A
+ LD (030FCH),HL
+ LD HL,00996H
+ LD (03192H),HL
+ LD HL,L0A01
+ LD (03212H),HL
+ LD HL,L0A1A
+ LD (03209H),HL
+ RET
+
+L3301: LD A,(L0050)
+ OR A
+ RET NZ
+ RST 018H
+ DB 002H
+ RST 018H
+ DB 005H
+ PUSH HL
+ INC HL
+ LD A,022H
+ RST 018H
+ DB 003H
+ LD D,010H
+L3312: LD A,(HL)
+ CP 00DH
+ JR Z,L331D ; (+006H)
+ RST 018H
+ DB 003H
+ INC HL
+ DEC D
+ JR NZ,L3312 ; (-00bH)
+L331D: LD A,022H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 002H
+ POP HL
+ RET
+
+L3325: DB 057H,005H,"RITING" ; CMT status strings (WRITING/FOUND/LOADING/VERIFYING)
+ DS 3, 020H
+ DB 006H
+ DB 000H
+L3332: DB 046H,005H,"OUND"
+ DS 5, 020H
+ DB 006H
+ DB 000H
+L333F: DB 04CH,005H,"OADING"
+ DS 3, 020H
+ DB 006H
+ DB 000H
+L334C: DB 056H,005H,"ERIFYING ",006H
+ NOP
+; ---------------------------------------------------------------------------
+; $RS - RS-232C device descriptor
+; flags1 bit7=1: ZWDIR/ZFREE not used, overlap with RS_INIT code below.
+; ---------------------------------------------------------------------------
+$RS: DW $FD ; Next device = $FD (0x358D)
+ DB "RS",000H,000H ; Device name
+ DB 08FH ; flags1: bit7=1 (no dir/free)
+ DB 001H ; flags2
+ DB 000H ; dirmx = 0
+ DW 03372H ; ZINIT
+ DW 033A4H ; ZRO
+ DW 033A4H ; ZWO (same handler as ZRO)
+ DW 033B5H ; ZCL
+ DW 033B5H ; ZKL (same handler as ZCL)
+ DW 033C6H ; ZINP
+ DW 033DBH ; ZOUT
+ DW 000E5H ; ZDELT (= monitor ROM stub)
+; ZWDIR/ZFREE implicit — next 4 bytes are ZINIT code, read as DW pointers
+; (flags1 bit 7=1 → ZWDIR/ZFREE never called)
+RS_INIT: RET C
+ PUSH IY
+ CALL L33EC
+ CALL L3380
+ CALL L3435
+ JR L33D8 ; (+058H)
+
+L3380: RST 018H
+ DB 013H
+ LD (IY-003H),E
+ CALL TEST1
+ DB 02CH
+ JP NZ,L1F6A
+ RST 018H
+ DB 013H
+ LD (IY-002H),E
+ LD (IY-008H),00DH
+ CALL TEST1
+ DB 000H
+ RET Z
+ CALL TEST1
+ DB 02CH
+ RST 018H
+ DB 013H
+ LD (IY-008H),E
+ RET
+
+ PUSH IY
+ CALL L33EC
+ LD A,(IY-001H)
+ INC (IY-001H)
+ OR A
+ CALL Z,L3497
+ JR L33D8 ; (+023H)
+
+ PUSH IY
+ CALL L33EC
+ DEC (IY-001H)
+ LD A,(IY-001H)
+ OR A
+ CALL Z,L347F
+ JR L33D7 ; (+011H)
+
+ PUSH IY
+ CALL L33EC
+ CALL L34E6
+ JR C,L33D8 ; (+008H)
+ CP (IY-008H)
+ JR NZ,L33D7 ; (+002H)
+ LD A,00DH
+L33D7: OR A
+L33D8: POP IY
+ RET
+
+ PUSH IY
+ CALL L33EC
+ CP 00DH
+ JR NZ,L33E7 ; (+003H)
+ LD A,(IY-008H)
+L33E7: CALL L352B
+ JR L33D8 ; (-014H)
+
+L33EC: PUSH AF
+ PUSH DE
+ LD A,(ZCH)
+ INC A
+ LD IY,033F7H
+ LD DE,L0015
+L33F9: ADD IY,DE
+ DEC A
+ JR NZ,L33F9 ; (-005H)
+ LD C,(IY+000H)
+ POP DE
+ POP AF
+ RET
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ OR C
+ OR B
+ NOP
+ DJNZ L3421 ; (+010H)
+ INC B
+ LD B,B
+ INC BC
+ RET NZ
+ DEC B
+ LD H,B
+ JR NC,L341C ; (+003H)
+ NOP
+ NOP
+ NOP
+L341C: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L3421: OR E
+ OR D
+ NOP
+ DJNZ 03436H ; (+010H)
+ INC B
+ LD B,B
+ INC BC
+ RET NZ
+ DEC B
+ LD H,B
+ JR NC,L3431 ; (+003H)
+L342E: CALL BRKCHK
+L3431: RET NZ
+ JP 0017DH
+
+L3435: LD A,018H
+ OUT (C),A
+ LD A,030H
+ OUT (C),A
+ LD A,(IY-002H)
+ AND 00CH
+ JR NZ,L3448 ; (+004H)
+ SET 2,(IY-002H)
+L3448: LD A,(IY-002H)
+ LD B,A
+ AND 00FH
+ OR 040H
+ LD (IY+006H),A
+ LD A,B
+ AND 080H
+ OR 040H
+ LD (IY+008H),A
+ RRA
+ AND 07FH
+ OR 00AH
+ LD (IY+00AH),A
+ LD A,B
+ OR 07FH
+ LD (IY+002H),A
+ CALL L348B
+L346C: IN A,(C)
+ RRCA
+ RET NC
+ DEC C
+ IN A,(C)
+ INC C
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ AND 070H
+ JR Z,L346C ; (-012H)
+ RET
+
+L347F: RES 0,(IY+008H)
+ RES 7,(IY+00AH)
+ LD (IY-001H),000H
+L348B: LD B,00AH
+ PUSH IY
+ POP HL
+ LD DE,L0003
+ ADD HL,DE
+ OTIR
+ RET
+
+L3497: LD A,030H
+ OUT (C),A
+ RET
+
+L349C: SET 0,(IY+008H)
+ LD A,013H
+ OUT (C),A
+ LD A,(IY+008H)
+ OUT (C),A
+ LD A,035H
+ OUT (C),A
+ LD A,(IY+00AH)
+ OR 088H
+ LD (IY+00AH),A
+ OUT (C),A
+ RET
+
+ LD A,003H
+ OUT (C),A
+ RES 0,(IY+008H)
+ LD A,(IY+008H)
+ OUT (C),A
+L34C5: RES 7,(IY+00AH)
+ JR L34DB ; (+010H)
+
+L34CB: SET 1,(IY+00AH)
+ JR L34DB ; (+00aH)
+
+L34D1: RES 1,(IY+00AH)
+ JR L34DB ; (+004H)
+
+ SET 7,(IY+00AH)
+L34DB: LD A,005H
+ OUT (C),A
+ LD A,(IY+00AH)
+ OUT (C),A
+ OR A
+ RET
+
+L34E6: CALL SKPDE
+ LD C,(IY+000H)
+L34EC: CALL L342E
+ CALL L3564
+ JR C,L34EC ; (-008H)
+ CALL L349C
+L34F7: CALL L342E
+ IN A,(C)
+ RRCA
+ JR NC,L34F7 ; (-008H)
+ DEC C
+ IN A,(C)
+ INC C
+ AND (IY+002H)
+ PUSH AF
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ AND 070H
+ JR NZ,L3516 ; (+005H)
+ CALL L34C5
+ POP AF
+ RET
+
+L3516: LD B,A
+ POP AF
+ PUSH BC
+ CALL L3435
+ POP BC
+ LD A,01DH
+ RLC B
+ RLC B
+ RET C
+ INC A
+ RLC B
+ RET C
+ INC A
+ SCF
+ RET
+
+L352B: CALL SKPDE
+ LD C,(IY+000H)
+ LD D,A
+ CALL L34CB
+L3535: CALL L342E
+ CALL L356B
+ CALL NC,L357C
+L353E: JR C,L3535 ; (-00bH)
+ IN A,(C)
+ BIT 2,A
+ JR Z,L3535 ; (-011H)
+ BIT 7,(IY-003H)
+ JR Z,L3555 ; (+009H)
+ LD A,001H
+ OUT (C),A
+ IN A,(C)
+ RRCA
+ JR NC,L3535 ; (-020H)
+L3555: DEC C
+ OUT (C),D
+ INC C
+ BIT 6,(IY-003H)
+ JR Z,L3562 ; (+003H)
+ CALL L34D1
+L3562: OR A
+ RET
+
+L3564: OR A
+ BIT 0,(IY-003H)
+ JR L3570 ; (+005H)
+
+L356B: OR A
+ BIT 1,(IY-003H)
+L3570: RET Z
+ LD A,010H
+ OUT (C),A
+ IN A,(C)
+ AND 008H
+ RET NZ
+ SCF
+ RET
+
+L357C: OR A
+ BIT 2,(IY-003H)
+ RET Z
+ LD A,010H
+ OUT (C),A
+ IN A,(C)
+ AND 020H
+ RET NZ
+ SCF
+ RET
+
+; $FD descriptor (original, restored)
+$FD: DW $QD ; Next device = $QD
+ DB "FD",000H,000H ; Device name
+ DB 03FH ; ZFLAG1 (original, bit5=1 = ZINP-based DIR)
+ DB 003H ; ZFLAG2 (original)
+ DB 03FH ; ZDIRMX (original)
+ DW 0368DH ; func[0] ZINIT
+ DW 0000FH ; func[1] ZRO (original)
+ DW 00100H ; func[2] ZWO
+ DW 00030H ; func[3] ZCL
+ DW 000FEH ; func[4] ZKL
+ DW 03705H ; func[5] ZINP (original restored)
+ DW 03708H ; func[6] ZOUT
+ DW 01F97H ; func[7] ZDELT
+ DW 01F97H ; func[8] ZWDIR
+ DW 01F97H ; func[9] ZFREE
+ DB 000H
+L35AB: DB 000H
+L35AC: DB 000H
+L35AD: DS 3, 000H
+L35B0: DB 000H
+L35B1: DS 2, 000H
+L35B3: DB 000H
+L35B4: DB 000H
+L35B5: DB 000H
+L35B6: DB 000H
+L35B7: DS 4, 000H
+L35BB: DS 4, 000H
+L35BF: DB 000H
+L35C0: PUSH BC
+ LD A,L
+ LD B,004H
+L35C4: SRL H
+ RR L
+ DJNZ L35C4 ; (-006H)
+ AND 00FH
+ INC A
+ LD H,A
+ POP BC
+ RET
+
+L35D0: LD A,H
+ LD H,000H
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,HL
+ DEC A
+ ADD A,L
+ LD L,A
+ RET
+
+L35DB: CALL SKPDE
+ LD HL,L35B5
+ BIT 7,(HL)
+ JR NZ,L35EB ; (+006H)
+ CALL L367C
+ CALL L3898
+L35EB: LD A,(L35AC)
+ BIT 2,A
+ SET 2,A
+ JR Z,L35F6 ; (+002H)
+ SET 5,A
+L35F6: SET 7,A
+ LD HL,L35B5
+ BIT 6,(HL)
+ JR Z,L3601 ; (+002H)
+ SET 6,A
+L3601: CALL L361C
+ LD (HL),A
+ LD HL,L35B7
+ CALL L3614
+ BIT 0,(HL)
+ CALL Z,L3695
+ RET C
+ SET 0,(HL)
+ RET
+
+L3614: LD A,(L35AC)
+ AND 003H
+ JP ADDHLA
+
+L361C: OUT (0DCH),A
+ PUSH AF
+ RLCA
+ RLCA
+ OUT (0DDH),A
+ RLCA
+ OUT (0DEH),A
+ POP AF
+ RET
+
+L3628: CALL SKPDE
+ LD D,000H
+ LD A,(L35B3)
+ SRL A
+ CPL
+ OUT (0DBH),A
+ LD B,A
+ LD A,(L35B5)
+ RES 6,A
+ BIT 5,A
+ JR Z,L3640 ; (+001H)
+ CCF
+L3640: JR C,L3644 ; (+002H)
+ SET 6,A
+L3644: CALL L361C
+ LD HL,L35B5
+ CP (HL)
+ LD (HL),A
+ JR Z,L364F ; (+001H)
+ INC D
+L364F: LD HL,L35BB
+ CALL L3614
+ LD A,(HL)
+ OUT (0D9H),A
+ CP B
+ JR Z,L3666 ; (+00bH)
+ INC D
+ CALL L3673
+ PUSH AF
+ IN A,(0D9H)
+ LD (HL),A
+ POP AF
+ RET C
+ RET NZ
+L3666: LD A,(L35B4)
+ CPL
+ OUT (0DAH),A
+ LD A,D
+ OR A
+ CALL NZ,L388D
+ XOR A
+ RET
+
+L3673: LD A,018H
+ CALL L36C2
+ RET C
+ AND 099H
+ RET
+
+L367C: LD HL,L35B5
+ SET 7,(HL)
+ LD A,(HL)
+ CALL L361C
+ LD HL,L35B7
+ LD B,004H
+ JP ?CLRHL
+
+L368D: XOR A
+ CALL L361C
+ LD (L35B5),A
+ RET
+
+L3695: CALL SKPDE
+ LD HL,L35BB
+ CALL L3614
+ LD (HL),0FFH
+ LD A,008H
+ CALL L36C2
+ RET C
+ AND 085H
+ XOR 004H
+ RET Z
+ JP L385A
+
+L36AE: PUSH AF
+ LD A,LSD0
+ CALL L36BB
+ JR C,L36B8 ; (+002H)
+ POP AF
+ RET
+
+L36B8: POP HL
+ POP HL
+ RET
+
+L36BB: CALL SKPDE
+ LD D,000H
+ JR L36DC ; (+01aH)
+
+L36C2: CALL SKPDE
+ LD B,A
+ LD A,(035AAH)
+ CPL
+ AND 003H
+ OR B
+ LD D,000H
+ JR L36D6 ; (+005H)
+
+L36D1: CALL SKPDE
+ LD D,001H
+L36D6: CALL L36AE
+ LD (L35B6),A
+L36DC: CPL
+ OUT (0D8H),A
+ CALL L3887
+ LD E,007H
+L36E4: LD HL,L2710
+L36E7: DEC HL
+ LD A,H
+ OR L
+ JP Z,L36F9
+ IN A,(0D8H)
+ CPL
+ LD B,A
+ AND 081H
+ CP D
+ JR NZ,L36E7 ; (-00fH)
+ LD A,B
+ OR A
+ RET
+
+L36F9: DEC E
+ JP Z,L385A
+ LD A,(L35B6)
+ CPL
+ OUT (0D8H),A
+ JR L36E4 ; (-021H)
+
+ DB 037H
+ JR L3709 ; (+001H)
+
+ OR A
+L3709: EX AF,AF'
+ PUSH AF
+ EX AF,AF'
+ LD (L35B1),HL
+ PUSH HL
+ LD HL,L35AB
+ RL (HL)
+ RRC (HL)
+ LD H,(HL)
+ LD L,A
+ AND 007H
+ LD (L35AC),A
+ CALL L35DB
+ JR NC,L3728 ; (+005H)
+ POP HL
+ EX AF,AF'
+ POP AF
+ EX AF,AF'
+ RET
+
+L3728: BIT 7,H
+ LD A,L
+ POP HL
+ PUSH HL
+ CALL Z,L37E7
+ LD (035AFH),DE
+ PUSH DE
+ OR A
+ PUSH AF
+ LD H,B
+ LD L,C
+ CALL P,L35C0
+ LD (L35AD),HL
+ LD A,009H
+ LD (L35BF),A
+ PUSH IY
+ CALL L375C
+ EX AF,AF'
+ POP IY
+ LD HL,(L35B3)
+ POP AF
+ CALL P,L35D0
+ LD B,H
+ LD C,L
+ POP DE
+ POP HL
+ POP AF
+ EX AF,AF'
+ JP L37E7
+
+L375C: LD E,000H
+ LD HL,(035AFH)
+ LD A,(L35B5)
+ BIT 5,A
+ JR Z,L376B ; (+003H)
+ ADD HL,HL
+ LD E,080H
+L376B: LD A,L
+ OR A
+ JR Z,L3770 ; (+001H)
+ INC H
+L3770: LD A,H
+ LD (L35B0),A
+L3774: CALL L37FA
+ CALL NC,L3628
+ RET C
+ JR NZ,L37E1 ; (+064H)
+ DI
+ LD A,(L35AB)
+ BIT 7,A
+ LD A,090H
+ LD IY,0A2EDH
+ JR NZ,L3791 ; (+006H)
+ LD A,0B4H
+ LD IY,0A3EDH
+L3791: LD (L37A8),IY
+ CALL L36D1
+ RET C
+L3799: LD B,E
+ PUSH DE
+ LD DE,0FE7CH
+L379E: IN A,(0D8H)
+ OR E
+ CP D
+ JR Z,L379E ; (-006H)
+ CP LSFC
+ JR NZ,L37AD ; (+005H)
+L37A8: NOP
+ NOP
+ JP NZ,L379E
+L37AD: POP DE
+ IN A,(0D8H)
+ RRA
+ JP C,L385A
+ LD A,(L35B4)
+ INC A
+ LD (L35B4),A
+ CP 011H
+ JR Z,L37C4 ; (+005H)
+ DEC D
+ JR NZ,L3799 ; (-029H)
+ JR L37C5 ; (+001H)
+
+L37C4: DEC D
+L37C5: CALL L36AE
+ EI
+ IN A,(0D8H)
+ CPL
+ OR A
+ JR NZ,L37E1 ; (+012H)
+ LD A,(L35AB)
+ OR A
+ CALL Z,L3830
+ JR C,L37E1 ; (+009H)
+ CALL L3818
+ LD A,D
+ OR A
+ JR NZ,L3774 ; (-06bH)
+ XOR A
+ RET
+
+L37E1: CALL L380B
+ RET C
+ JR L3774 ; (-073H)
+
+L37E7: CALL IOOUT
+ LD A,(L35B5)
+ BIT 5,A
+ RET Z
+L37F0: LD A,(HL)
+ CPL
+ LD (HL),A
+ INC HL
+ DEC DE
+ LD A,D
+ OR E
+ JR NZ,L37F0 ; (-009H)
+ RET
+
+L37FA: LD HL,(L35AD)
+ LD (L35B3),HL
+ LD HL,(L35B1)
+ LD A,(L35B0)
+ LD D,A
+ LD C,0DBH
+ OR A
+ RET
+
+L380B: CALL SKPDE
+ LD HL,L35BF
+ DEC (HL)
+ JP Z,L385A
+ JP L3695
+
+L3818: LD (L35B1),HL
+ LD A,D
+ LD (L35B0),A
+ LD HL,(L35B3)
+ LD A,H
+ CP 011H
+ RET NZ
+ LD H,001H
+ INC L
+ LD (L35AD),HL
+ LD (L35B3),HL
+ RET
+
+L3830: LD A,(035AEH)
+ CPL
+ OUT (0DAH),A
+ LD A,090H
+ CALL L36D1
+ RET C
+ LD A,(L35B4)
+ LD B,A
+L3840: IN A,(0D8H)
+ CPL
+ AND 081H
+ CP 001H
+ JR NZ,L3852 ; (+009H)
+ IN A,(0DAH)
+ CPL
+ CP B
+ JR NZ,L3840 ; (-00fH)
+ CALL L36AE
+L3852: IN A,(0D8H)
+ CPL
+ AND 099H
+ RET Z
+ SCF
+ RET
+
+L385A: LD A,(L35B6)
+ RLA
+ IN A,(0D8H)
+ CPL
+ JR NC,L3878 ; (+015H)
+ RLA
+ JR C,L387B ; (+015H)
+ RLA
+ JR NC,L3870 ; (+007H)
+ LD HL,L35AB
+ BIT 7,(HL)
+ JR Z,L387F ; (+00fH)
+L3870: AND 0C0H
+ JR NZ,L3883 ; (+00fH)
+L3874: LD A,029H
+ SCF
+ RET
+
+L3878: RLA
+ JR NC,L3874 ; (-007H)
+L387B: LD A,032H
+ SCF
+ RET
+
+L387F: LD A,02EH
+ SCF
+ RET
+
+L3883: LD A,036H
+ SCF
+ RET
+
+L3887: PUSH DE
+ LD DE,L000F
+ JR L3891 ; (+004H)
+
+L388D: PUSH DE
+ LD DE,L2026
+L3891: DEC DE
+ LD A,E
+ OR D
+ JR NZ,L3891 ; (-005H)
+ POP DE
+ RET
+
+L3898: PUSH BC
+ LD B,011H
+L389B: CALL L388D
+ DJNZ L389B ; (-005H)
+ POP BC
+ RET
+
+; ---------------------------------------------------------------------------
+; $QD Device Descriptor (Quick Disk)
+; ---------------------------------------------------------------------------
+$QD: DW $RFS ; Next device = $RFS (was $USR at 0D5EH)
+ DB "QD",000H,000H ; Device name
+ DB 05FH ; flags1: bit5=1 ZINP-based DIR, bit6=1 ZRO enum
+ DB 040H ; flags2
+ DB 020H ; dirmx: 32 (max directory entries)
+ DW QDINIT ; ZINIT handler
+ DW QDRO ; ZRO handler
+ DW QDWO ; ZWO handler
+ DW QDCL ; ZCL handler
+ DW 00400H ; ZKL (constant)
+ DW QDINP ; ZINP handler
+ DW QDOUT ; ZOUT handler
+ DW 00000H ; ZDELT (not supported)
+ DW 00000H ; ZWDIR (not supported)
+ DW QDFREE ; ZFREE handler
+;
+; ---------------------------------------------------------------------------
+; QDFREE - Free space query (returns carry = not supported)
+; ---------------------------------------------------------------------------
+QDFREE: XOR A
+ SCF
+ RET
+;
+; ---------------------------------------------------------------------------
+; QDINIT - Quick Disk initialization
+; ---------------------------------------------------------------------------
+QDINIT: RET C
+ CALL TEST1
+ DB 059H ; Test for 'Y'
+ JR Z,L38D0 ; (+007H)
+ OR A
+ JP NZ,L1F6A
+ CALL L1E7A
+L38D0: CALL L3924
+ RET C
+ RST 018H
+ DB 010H
+ LD C,002H
+ JR L3919 ; (+03fH)
+;
+; ---------------------------------------------------------------------------
+; QDCL - Quick Disk close
+; ---------------------------------------------------------------------------
+QDCL: OR A
+ JR NZ,L38FA ; (+01dH)
+ RST 018H
+ DB 010H
+ XOR A
+ LD (L395E),A
+ LD C,005H
+ CALL L38EB
+ LD BC,00001H
+L38EB: LD (L3954),HL
+ LD (03956H),DE
+ LD HL,L3953
+ LD (HL),B
+ DEC HL
+ LD (HL),C
+ JR L3968 ; (+06eH)
+
+L38FA: CALL SKPDE
+ LD C,006H
+ JR L3919 ; (+018H)
+;
+; ---------------------------------------------------------------------------
+; QDRO - Quick Disk read open (ZRO handler)
+; ---------------------------------------------------------------------------
+QDRO: LD BC,L0003
+ LD DE,00040H
+ CALL L38EB
+ RET NC
+ CP 028H
+ SCF
+ RET NZ
+ LD A,000H
+ RET
+;
+; ---------------------------------------------------------------------------
+; QDINP - Quick Disk input (ZINP handler)
+; ---------------------------------------------------------------------------
+QDINP: RST 018H
+ DB 010H
+ LD D,B
+ LD E,C
+ LD BC,00103H
+L3919: CALL L38EB
+ RST 018H
+ DB 011H
+ RET
+;
+; ---------------------------------------------------------------------------
+; QDWO - Quick Disk write open (ZWO handler)
+; ---------------------------------------------------------------------------
+QDWO: LD A,037H
+ LD (L392C),A
+L3924: LD BC,L0101
+ JR L38EB ; (-03eH)
+;
+; ---------------------------------------------------------------------------
+; QDOUT - Quick Disk output (ZOUT handler)
+; ---------------------------------------------------------------------------
+QDOUT: PUSH AF
+ RST 018H
+ DB 010H
+L392C: XOR A
+ JR NC,L3943 ; (+014H)
+ LD A,0AFH
+ LD (L392C),A
+ CALL L1C2B
+ LD (L3958),HL
+ LD HL,ELMD
+ LD DE,00040H
+ POP AF
+ JR L3949 ; (+006H)
+
+L3943: LD (L3958),HL
+ POP AF
+ SET 0,A
+L3949: LD (0395AH),BC
+ LD B,A
+ LD C,004H
+ JR L3919 ; (-039H)
+
+ DB 000H
+L3953: DB 000H
+L3954: DS 4, 000H
+L3958: DS 4, 000H
+L395C: DB 000H
+L395D: DB 000H
+L395E: DB 000H
+L395F: DB 000H
+L3960: DB 000H
+L3961: DB 000H
+L3962: DB 000H
+L3963: DB 000H
+L3964: DB 000H
+L3965: DS 3, 000H
+L3968: LD A,005H
+ LD (L3964),A
+L396D: DI
+ CALL L39BC
+ EI
+ RET NC
+ PUSH AF
+ CP 028H
+ JR Z,L39BA ; (+042H)
+ CALL L3C37
+ LD A,(03952H)
+ CP 004H
+ JR NZ,L399F ; (+01dH)
+ LD A,(L3960)
+ OR A
+ JR Z,L399F ; (+017H)
+ XOR A
+ LD (L3960),A
+ LD A,(L3961)
+ PUSH HL
+ LD (03966H),SP
+ POP HL
+ DI
+ CALL L3BB7
+ EI
+ JR C,L39B4 ; (+018H)
+ CALL L3C37
+L399F: POP AF
+ PUSH AF
+ CP 029H
+ JR NZ,L39B4 ; (+00fH)
+ LD HL,L3964
+ DEC (HL)
+ JR Z,L39B4 ; (+009H)
+ POP AF
+ LD A,(L395F)
+ LD (L395E),A
+ JR L396D ; (-047H)
+
+L39B4: CALL L3B29
+ CALL L39D5
+L39BA: POP AF
+ RET
+
+L39BC: LD (03966H),SP
+ LD A,(03952H)
+ DEC A
+ JR Z,L39DC ; (+016H)
+ DEC A
+ JR Z,L39E2 ; (+019H)
+ DEC A
+ JR Z,L3A2C ; (+060H)
+ DEC A
+ JP Z,L3A9C
+ DEC A
+ JR Z,L39D5 ; (+002H)
+ JR L3A25 ; (+050H)
+
+L39D5: PUSH AF
+ XOR A
+ LD (L395C),A
+ POP AF
+ RET
+
+L39DC: LD A,(L3953)
+ JP L3B8B
+
+L39E2: XOR A
+ CALL L3BB7
+ CALL L3CB5
+ LD BC,0EFFFH
+ LD A,0AAH
+L39EE: CPL
+ LD D,A
+ CALL L3D2C
+ DEC BC
+ LD A,B
+ OR C
+ JR Z,L39FB ; (+003H)
+ LD A,D
+ JR L39EE ; (-00dH)
+
+L39FB: CALL L3D02
+ CALL L3C37
+ CALL L3BEA
+ LD A,(L3962)
+ DEC A
+ JR NZ,L3A28 ; (+01eH)
+ CALL L3C4C
+ LD BC,0EFFFH
+ LD E,055H
+L3A12: CP E
+ JR NZ,L3A28 ; (+013H)
+ DEC BC
+ LD A,B
+ OR C
+ JR Z,L3A22 ; (+008H)
+ LD A,E
+ CPL
+ LD E,A
+ CALL L3D42
+ JR L3A12 ; (-010H)
+
+L3A22: CALL L3D14
+L3A25: JP L3C37
+
+L3A28: LD A,029H
+ SCF
+ RET
+
+L3A2C: LD A,(L3963)
+ OR A
+ CALL Z,L3BEA
+ CALL L3A62
+ RET C
+ CALL L3D87
+ CALL L3D42
+ LD C,A
+L3A3E: CALL L3D42
+ LD B,A
+ LD HL,(03956H)
+ SBC HL,BC
+ JP C,L3B33
+ LD HL,(L3954)
+L3A4D: CALL L3D42
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3A4D ; (-00aH)
+ CALL L3D14
+ LD A,(L3953)
+ BIT 0,A
+ JR NZ,L3A25 ; (-03cH)
+ RET
+
+L3A62: LD HL,L3962
+ DEC (HL)
+ JR Z,L3A98 ; (+030H)
+ CALL L3C4C
+ LD C,A
+ LD A,(L395C)
+ LD HL,L395D
+ CP (HL)
+ JR NZ,L3A95 ; (+020H)
+ INC A
+ LD (L395C),A
+ LD (HL),A
+ LD A,(L3953)
+ XOR C
+ RRA
+ RET NC
+L3A80: CALL L3D42
+ LD C,A
+ CALL L3D42
+ LD B,A
+L3A88: CALL L3D42
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3A88 ; (-008H)
+ CALL L3D14
+ JR L3A62 ; (-033H)
+
+L3A95: INC (HL)
+ JR L3A80 ; (-018H)
+
+L3A98: LD A,028H
+ SCF
+ RET
+
+L3A9C: LD A,(L395E)
+ LD (L395F),A
+ LD A,(L3963)
+ OR A
+ JR NZ,L3ABF ; (+017H)
+ CALL L3BEA
+ LD A,(L395E)
+ LD HL,L3962
+ ADD A,(HL)
+ LD (L3962),A
+ INC A
+ LD (L395C),A
+ CALL L3A62
+ JP NC,L3B33
+L3ABF: LD A,(L3953)
+ LD B,A
+ AND 001H
+ JR NZ,L3AD3 ; (+00cH)
+ LD DE,L3954
+ LD A,B
+ RES 2,A
+ CALL L3B3C
+ CALL L3D87
+L3AD3: LD DE,L3958
+ LD A,(L3953)
+ SET 0,A
+ CALL L3B3C
+ CALL L3C37
+ CALL L3D87
+ LD A,(L3953)
+ AND 004H
+ JR Z,L3B37 ; (+04cH)
+ LD A,(L3961)
+ LD HL,L395E
+ ADD A,(HL)
+ CALL L3BB7
+ LD A,001H
+ LD (L3960),A
+L3AFA: LD A,(L3961)
+ LD HL,L395F
+ ADD A,(HL)
+ INC A
+ LD (L3962),A
+ INC A
+ LD (L395C),A
+ CALL L3A62
+ JR NC,L3B33 ; (+025H)
+ LD A,(L3953)
+ AND 001H
+ JR NZ,L3B1C ; (+007H)
+ LD DE,L3954
+ CALL L3B6A
+ RET C
+L3B1C: LD DE,L3958
+ CALL L3B6A
+ RET C
+ LD A,(L3960)
+ OR A
+ JR Z,L3B30 ; (+007H)
+L3B29: XOR A
+ LD (L395E),A
+ LD (L3960),A
+L3B30: JP L3C37
+
+L3B33: LD A,029H
+ SCF
+ RET
+
+L3B37: CALL L3BEA
+ JR L3AFA ; (-042H)
+
+L3B3C: PUSH AF
+ LD HL,L395E
+ INC (HL)
+ CALL L3CB5
+ POP AF
+ CALL L3D2C
+ CALL L3B60
+ LD A,C
+ CALL L3D2C
+ LD A,B
+ CALL L3D2C
+L3B53: LD A,(HL)
+ CALL L3D2C
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3B53 ; (-00aH)
+ JP L3D02
+
+L3B60: EX DE,HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ EX DE,HL
+ RET
+
+L3B6A: CALL L3C4C
+ CALL L3B60
+ CALL L3D42
+ CP C
+ JR NZ,L3B33 ; (-043H)
+ CALL L3D42
+ CP B
+ JR NZ,L3B33 ; (-049H)
+L3B7C: CALL L3D42
+ CP (HL)
+ JR NZ,L3B33 ; (-04fH)
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3B7C ; (-00cH)
+ JP L3D14
+
+L3B8B: LD B,A
+ LD A,002H
+ OUT (0F7H),A
+ LD A,081H
+ OUT (0F7H),A
+ LD A,002H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 0F0H
+ CP 080H
+ JP NZ,03D58H
+ LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ LD C,A
+ AND 008H
+ JP Z,03D58H
+ LD A,B
+ OR A
+ RET Z
+ LD A,C
+ AND 020H
+ RET NZ
+ JP 03D55H
+
+L3BB7: PUSH AF
+ LD HL,03D7EH
+ LD B,009H
+ CALL L3C27
+L3BC0: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03D58H
+ LD A,010H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 008H
+ JR Z,L3BC0 ; (-015H)
+ LD BC,L00E9
+ CALL L3D66
+ CALL L3CEA
+ CALL L3CCE
+ POP AF
+ CALL L3D2C
+ CALL L3D02
+ JR L3C1D ; (+033H)
+
+L3BEA: LD HL,L3D73
+ LD B,00BH
+ CALL L3C27
+L3BF2: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03D58H
+ CALL L3D87
+ LD A,010H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 008H
+ JR Z,L3BF2 ; (-018H)
+ LD BC,L00E9
+ CALL L3D66
+ CALL L3C62
+ LD (L3961),A
+ INC A
+ LD (L3962),A
+ CALL L3D14
+L3C1D: LD HL,L3965
+ SET 3,(HL)
+ XOR A
+ LD (L395D),A
+ RET
+
+L3C27: LD C,0F6H
+ OTIR
+ LD A,005H
+ LD (L3963),A
+ OUT (0F7H),A
+ LD A,080H
+ OUT (0F7H),A
+ RET
+
+L3C37: PUSH AF
+ LD A,005H
+ OUT (0F6H),A
+ LD A,060H
+ OUT (0F6H),A
+ LD A,005H
+ OUT (0F7H),A
+ XOR A
+ LD (L3963),A
+ OUT (0F7H),A
+ POP AF
+ RET
+
+L3C4C: LD A,058H
+ LD B,00BH
+ LD HL,L3D73
+ CALL L3CF3
+ LD HL,L3965
+ BIT 3,(HL)
+ LD BC,L0003
+ JR Z,L3C65 ; (+005H)
+ RES 3,(HL)
+L3C62: LD BC,L00A0
+L3C65: CALL L3D66
+ LD A,005H
+ OUT (0F7H),A
+ LD A,082H
+ OUT (0F7H),A
+ LD A,003H
+ OUT (0F6H),A
+ LD A,LSD3
+ OUT (0F6H),A
+ LD BC,L2CC0
+L3C7B: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 010H
+ JR Z,L3C8D ; (+008H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3C7B ; (-00fH)
+ JP 03D5EH
+
+L3C8D: LD A,003H
+ OUT (0F6H),A
+ LD A,0C3H
+ OUT (0F6H),A
+ LD B,09FH
+L3C97: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 001H
+ JR NZ,L3CA7 ; (+006H)
+ DEC B
+ JR NZ,L3C97 ; (-00dH)
+ JP 03D5EH
+
+L3CA7: LD A,003H
+ OUT (0F6H),A
+ LD A,0C9H
+ OUT (0F6H),A
+ CALL L3D42
+ JP L3D42
+
+L3CB5: LD A,098H
+ LD B,009H
+ LD HL,03D7EH
+ CALL L3CF3
+ CALL L3CEA
+ LD HL,L3965
+ BIT 3,(HL)
+ LD BC,0001DH
+ JR Z,L3CD1 ; (+005H)
+ RES 3,(HL)
+L3CCE: LD BC,L0140
+L3CD1: CALL L3D66
+ LD A,005H
+ OUT (0F6H),A
+ LD A,0EFH
+ OUT (0F6H),A
+ LD BC,00001H
+ CALL L3D66
+ LD A,0C0H
+ OUT (0F6H),A
+ LD A,0A5H
+ JR L3D2C ; (+042H)
+
+L3CEA: LD A,005H
+ OUT (0F6H),A
+ LD A,0FFH
+ OUT (0F6H),A
+ RET
+
+L3CF3: LD C,0F6H
+ OUT (C),A
+ LD A,005H
+ OUT (0F7H),A
+L3CFB: LD A,080H
+ OUT (0F7H),A
+ OTIR
+ RET
+
+L3D02: LD BC,00001H
+ CALL L3D66
+ LD A,010H
+ OUT (0F7H),A
+ IN A,(0F7H)
+ AND 008H
+ RET NZ
+ JP 03D5BH
+
+L3D14: LD B,003H
+L3D16: CALL L3D42
+ DJNZ L3D16 ; (-005H)
+L3D1B: IN A,(0F6H)
+ RRCA
+ JR NC,L3D1B ; (-005H)
+ LD A,001H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 040H
+ JR NZ,L3D52 ; (+028H)
+ OR A
+ RET
+
+L3D2C: PUSH AF
+L3D2D: IN A,(0F6H)
+ AND 004H
+ JR Z,L3D2D ; (-006H)
+ POP AF
+ OUT (QDPC),A
+L3D36: LD A,010H
+ OUT (0F6H),A
+ IN A,(0F6H)
+ AND 008H
+ JP Z,03D58H
+ RET
+
+L3D42: CALL L3D36
+ IN A,(0F6H)
+ RLCA
+ JR C,L3D52 ; (+008H)
+ RRCA
+ RRCA
+ JR NC,L3D42 ; (-00cH)
+ IN A,(QDPC)
+ OR A
+ RET
+
+L3D52: LD A,029H
+ LD HL,02E3EH
+ LD HL,0323EH
+ LD HL,L353E
+ LD HL,0363EH
+ LD SP,(03966H)
+ SCF
+ RET
+
+L3D66: PUSH AF
+L3D67: LD A,096H
+L3D69: DEC A
+ JR NZ,L3D69 ; (-003H)
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L3D67 ; (-00aH)
+ POP AF
+ RET
+
+L3D73: LD E,B
+ INC B
+ DJNZ L3D7C ; (+005H)
+ INC B
+ INC BC
+ RET NC
+ LD B,016H
+L3D7C: RLCA
+ LD D,098H
+ INC B
+ DJNZ 03D88H ; (+006H)
+ LD D,007H
+ LD D,005H
+ LD L,L
+L3D87: LD A,0E8H
+ OUT (LSE3),A
+ LD (MMIO),A
+ NOP
+ LD A,(0E001H)
+ OUT (LSE1),A
+ AND 081H
+ RET NZ
+ CALL L3B29
+ JP L017B
+
+ PUSH HL
+ LD DE,(00188H)
+ PUSH DE
+ LD DE,L3DE4
+ LD (00188H),DE
+ LD A,(L004F)
+ PUSH AF
+ LD A,064H
+ LD (L004F),A
+ LD (03E5BH),SP
+ XOR A
+ LD (FILOUT),A
+L3DBB: LD SP,L0000
+L3DBE: LD BC,L3DBE
+ PUSH BC
+ RST 018H
+ DB 002H
+ LD A,02AH
+ RST 018H
+ DB 003H
+L3DC8: CALL L3E67
+ JR NC,L3DC8 ; (-005H)
+ LD A,(DE)
+ CP 02AH
+ RET NZ
+ INC DE
+ LD A,(DE)
+ INC DE
+ EXX
+ LD HL,L3DF6
+ LD B,00AH
+L3DDA: CP (HL)
+ INC HL
+ JR Z,L3DF0 ; (+012H)
+ INC HL
+ INC HL
+ DJNZ L3DDA ; (-008H)
+ EXX
+ RET
+
+L3DE4: LD C,A
+ AND 07FH
+ JR Z,L3DBB ; (-02eH)
+ LD A,C
+ RST 018H
+ DB 01BH
+ RST 018H
+ DB 043H
+ JR L3DBB ; (-035H)
+
+L3DF0: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH DE
+ EXX
+ RET
+
+L3DF6: LD B,H
+ CALL C,L4D3E
+ LD C,(HL)
+ CCF
+ LD D,B
+ INC D
+ LD A,047H
+ RST 010H
+ LD A,046H
+ LD (HL),D
+ CCF
+ LD D,D
+L3E06: LD E,D
+ LD A,053H
+ DEC E
+ LD A,04CH
+ INC (HL)
+ LD A,056H
+ LD D,C
+ LD A,054H
+ JP NZ,03A3FH
+ SUB C
+ DJNZ L3E06 ; (-012H)
+ LD BC,09132H
+ DJNZ 03DE6H ; (-037H)
+ CALL L3FAB
+ RET C
+ EXX
+ CALL L3FD9
+ EXX
+ LD (ELMD20),BC
+ LD (ELMD22),DE
+ LD (ELMD24),HL
+ RST 018H
+ DB 031H
+ RET
+
+ CALL L3E88
+ PUSH HL
+ PUSH AF
+ CALL L3E46
+ POP AF
+ POP HL
+ JR NC,L3E43 ; (+003H)
+ LD HL,(ELMD22)
+L3E43: RST 018H
+ DB 030H
+ RET
+
+L3E46: CALL L3FD9
+ RST 018H
+ DB 02FH
+ CP 001H
+ RET Z
+ JP 01F9DH
+
+ CALL L3E46
+ LD HL,(ELMD22)
+ RST 018H
+ DB 032H
+ RET
+
+ LD SP,L0000
+ POP AF
+ LD (L004F),A
+ POP HL
+ LD (00188H),HL
+ POP HL
+ RET
+
+L3E67: LD DE,0FF00H
+ RST 018H
+ DB 00CH
+ JR C,L3E86 ; (+018H)
+ LD A,(DE)
+ CP 03AH
+ SCF
+ RET NZ
+ INC DE
+ CALL L3E88
+ RET C
+ LD A,(DE)
+ INC DE
+ XOR 03DH
+ RET NZ
+L3E7D: CALL L3EAD
+ CCF
+ RET NC
+ LD (HL),A
+ INC HL
+ JR L3E7D ; (-009H)
+
+L3E86: LD (DE),A
+ RET
+
+L3E88: PUSH HL
+ CALL L3EA2
+ PUSH DE
+ CALL L3EB4
+ JR C,L3E9D ; (+00bH)
+ LD H,A
+ CALL L3EB4
+ JR C,L3E9D ; (+005H)
+ LD L,A
+ POP AF
+ POP AF
+ XOR A
+ RET
+
+L3E9D: POP DE
+ POP HL
+ SCF
+ RET
+
+L3EA1: INC DE
+L3EA2: LD A,(DE)
+ CP 020H
+ JR Z,L3EA1 ; (-006H)
+ RET
+
+L3EA8: LD A,(DE)
+ RST 018H
+ DB 015H
+ INC DE
+ RET
+
+L3EAD: CALL L3EA2
+ CP 03BH
+ JR Z,L3ED2 ; (+01eH)
+L3EB4: PUSH BC
+ PUSH DE
+ CALL L3EA8
+ JR C,L3ECE ; (+013H)
+ LD C,A
+ CALL L3EA8
+ JR C,L3ECE ; (+00dH)
+ LD B,A
+ LD A,C
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ ADD A,B
+ LD C,A
+ LD A,C
+ POP BC
+ POP BC
+ OR A
+ RET
+
+L3ECE: POP DE
+ POP BC
+ SCF
+ RET
+
+L3ED2: INC DE
+ LD A,(DE)
+ INC DE
+ OR A
+ RET
+
+ CALL L3E88
+ RET C
+ JP (HL)
+
+ CALL L3E88
+ JR C,L3EEC ; (+00bH)
+ PUSH HL
+ CALL L3E88
+ JR C,L3EEB ; (+004H)
+ POP DE
+ EX DE,HL
+ JR L3EF2 ; (+007H)
+
+L3EEB: POP HL
+L3EEC: EX DE,HL
+ LD HL,L0080
+ ADD HL,DE
+ EX DE,HL
+L3EF2: LD C,008H
+ CALL L3EFF
+ RET C
+ PUSH HL
+ SBC HL,DE
+ POP HL
+ RET NC
+ JR L3EF2 ; (-00dH)
+
+L3EFF: CALL L3F27
+ LD B,C
+ PUSH HL
+L3F04: LD A,(HL)
+ CALL L3F38
+ INC HL
+ LD A,020H
+ RST 018H
+ DB 009H
+ DJNZ L3F04 ; (-00bH)
+ POP HL
+ LD A,02FH
+ RST 018H
+ DB 009H
+ LD B,C
+L3F15: LD A,(HL)
+ CP 020H
+ JR NC,L3F1C ; (+002H)
+ LD A,02EH
+L3F1C: RST 018H
+ DB 009H
+ INC HL
+ DJNZ L3F15 ; (-00cH)
+ RST 018H
+ DB 008H
+ RST 018H
+ DB 00FH
+ OR A
+ RET
+
+L3F27: LD A,03AH
+ RST 018H
+ DB 009H
+ LD A,H
+ CALL L3F38
+ LD A,L
+ CALL L3F38
+ LD A,03DH
+ RST 018H
+ DB 009H
+ RET
+
+L3F38: PUSH AF
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ CALL L3F41
+ POP AF
+L3F41: AND 00FH
+ ADD A,030H
+ CP 03AH
+ JR C,L3F4B ; (+002H)
+ ADD A,007H
+L3F4B: RST 018H
+ DB 009H
+ RET
+
+ CALL L3E88
+ LD A,(FILOUT)
+ PUSH AF
+ XOR A
+ LD (FILOUT),A
+L3F59: RST 018H
+ DB 002H
+ CALL L3F27
+ LD A,(HL)
+ CALL L3F38
+ LD A,014H
+ RST 018H
+ DB 003H
+ RST 018H
+ DB 003H
+ CALL L3E67
+ JR NC,L3F59 ; (-014H)
+ POP AF
+ LD (FILOUT),A
+ RET
+
+ CALL L3E88
+ RET C
+ PUSH HL
+ CALL L3E88
+ POP BC
+ RET C
+ PUSH HL
+ PUSH BC
+ LD HL,0FF00H
+ CALL L3E7D
+ LD DE,0FF00H
+ OR A
+ SBC HL,DE
+ LD C,L
+ POP HL
+ PUSH HL
+ EXX
+ POP HL
+ POP DE
+ EXX
+ RET Z
+L3F92: CALL L3FEC
+ JR NZ,L3F9B ; (+004H)
+ CALL L3EFF
+ RET C
+L3F9B: RST 018H
+ DB 00EH
+ RET Z
+ EXX
+ INC HL
+ PUSH HL
+ SCF
+ SBC HL,DE
+ POP HL
+ RET NC
+ PUSH HL
+ EXX
+ POP HL
+ JR L3F92 ; (-019H)
+
+L3FAB: CALL L3E88
+ PUSH HL
+ CALL NC,L3E88
+ POP BC
+ RET C
+ SBC HL,BC
+ INC HL
+ PUSH HL
+ PUSH BC
+ CALL L3E88
+ PUSH HL
+ EXX
+ POP HL
+ POP DE
+ POP BC
+ RET
+
+ CALL L3FAB
+ RET C
+ EX DE,HL
+ PUSH HL
+ SBC HL,DE
+ POP HL
+ JR C,L3FD0 ; (+003H)
+ LDIR
+ RET
+
+L3FD0: ADD HL,BC
+ DEC HL
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ EX DE,HL
+ LDDR
+ RET
+
+L3FD9: LD A,(DE)
+ OR A
+ JR Z,L3FE2 ; (+005H)
+ INC DE
+ CP 03AH
+ JR NZ,L3FD9 ; (-009H)
+L3FE2: RST 018H
+ DB 017H
+ RST 018H
+ DB 02DH
+ LD A,001H
+ LD (ELMD),A
+ RET
+
+L3FEC: LD A,(DE)
+ CP (HL)
+ RET NZ
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD B,C
+L3FF3: LD A,(DE)
+ CP (HL)
+ JR NZ,L3FFC ; (+005H)
+ INC DE
+ INC HL
+ DJNZ L3FF3 ; (-008H)
+ XOR A
+L3FFC: POP HL
+ POP DE
+ POP BC
+ RET
+
+L4000: LD HL,RFS_END ; TEXTST: moved past RFS module (was 085FFH)
+ LD (TEXTST),HL
+ LD HL,L4046
+ LD (000E3H),HL
+ LD A,B
+ OR A
+ JR Z,L401B ; (+00bH)
+ LD HL,L4036
+ LD DE,L1361
+ LD BC,00010H
+ LDIR
+L401B: LD DE,L84E7
+ RST 018H
+ DB 005H
+ JP MEMCLI_PATCH ; MEMCLI: call SVC 020H then set HL=RFS_END (was SVC 020H + EX DE,HL)
+L4023: LD (HL),000H
+ INC HL
+ LD A,H
+ CP 0FFH
+ JR C,L4023 ; (-008H)
+L402B: CALL L4902
+ CALL L4914
+ CALL L5E1D
+ JR L404A ; (+014H)
+
+; ---------------------------------------------------------------------------
+; Auto-run command string (16 bytes, copied into F-key slot at startup)
+; L403E overlaps: referenced as "TO RUN"\r (suffix of "AUTO RUN"\r)
+; ---------------------------------------------------------------------------
+L4036: DB 00FH,"RUN ",022H ; Length (15) + 'RUN "'
+L403E: DB "AUTO RUN",022H,00DH ; 'AUTO RUN"\r' (also read as 'TO RUN"\r' via L403E+2)
+; ---------------------------------------------------------------------------
+; Hook snippet installed at 0x00E3 — executed in-place as Z80 code
+; ---------------------------------------------------------------------------
+L4046: LD A,016H ; 3E 16
+ RST 018H ; DF
+ DB 003H ; SVC #3
+L404A: LD HL,L4B85
+ LD (00188H),HL
+L4050: RST 018H
+ DB 002H
+ LD DE,L4B72
+ RST 018H
+ DB 005H
+ RST 018H
+ DB 001H
+L4059: LD A,(L4B78)
+ OR A
+ JR NZ,L406B ; (+00cH)
+ LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ LD (08496H),SP
+L406B: LD HL,L0000
+ LD (L8483),HL
+ XOR A
+ LD (L0050),A
+ CALL L48B1
+ RST 018H
+ DB 043H
+ LD DE,KEYBUF
+ RST 018H
+ DB 00CH
+ JR NC,L408D ; (+00cH)
+L4081: LD HL,L48B0
+ LD A,(HL)
+ OR A
+ LD (HL),000H
+ JR NZ,L4050 ; (-03aH)
+ JR L4059 ; (-033H)
+
+L408C: INC DE
+L408D: LD A,(DE)
+ CP 020H
+ JR Z,L408C ; (-006H)
+ OR A
+ JR Z,L4059 ; (-03cH)
+ CALL L5EC4
+ JP NC,L473E
+ LD HL,L84E7
+ PUSH HL
+ CALL L66EF
+ INC HL
+ LD (L847D),HL
+ CALL L4952
+ POP HL
+ JR L40AF ; (+003H)
+
+L40AC: CALL 05E48H
+L40AF: LD (08496H),SP
+L40B3: LD DE,L40AC
+ PUSH DE
+L40B7: LD (L8498),HL
+ CALL BRKCHK
+ JP Z,0017DH
+L40C0: LD A,(HL)
+ INC HL
+ CP 080H
+ JR NC,L411A ; (+054H)
+ CP 027H
+ JP Z,L4F8A
+ CP 020H
+ JR Z,L40C0 ; (-00fH)
+ CP 03AH
+ JR Z,L40B7 ; (-01cH)
+ OR A
+ JR Z,L40E1 ; (+00bH)
+ DEC HL
+ SUB 041H
+ CP 01AH
+ JP C,L4C99
+ JP L4AEC
+
+L40E1: LD HL,(L847D)
+L40E4: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4103 ; (+018H)
+ LD (L0050),A
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ LD (L847D),HL
+ EX DE,HL
+ INC HL
+ CALL LDDEMI
+ LD (08483H),DE
+ CALL L4971
+ POP DE
+ JR L40AF ; (-054H)
+
+L4103: POP HL
+ CALL L4146
+ JP Z,L4050
+ XOR A
+ LD (L4B78),A
+ LD A,(L8486)
+ CP 002H
+ JP Z,04B19H
+ PUSH HL
+ JP L484D
+
+L411A: CP 0FFH
+ JP Z,L4CCB
+ LD DE,L44AC
+ CP 0FEH
+ JR NZ,L412A ; (+004H)
+ LD A,(HL)
+ INC HL
+ JR L4132 ; (+008H)
+
+L412A: CP LSE0
+ JP NC,L4AEC
+ LD DE,L43EC
+L4132: ADD A,A
+ PUSH HL
+ EX DE,HL
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ EX (SP),HL
+L413E: CALL HLFTCH
+L4141: OR A
+ RET Z
+ CP 03AH
+ RET
+
+L4146: PUSH HL
+ LD HL,(L8483)
+ LD A,L
+ OR H
+ POP HL
+ RET
+
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+STMTWORDTBL:DB "GOT", "O" | 080H ; BASIC statement keyword text table
+ DB "GOSU", "B" | 080H
+ DB 080H
+ DB "RU", "N" | 080H
+ DB "RETUR", "N" | 080H
+ DB "RESTOR", "E" | 080H
+ DB "RESUM", "E" | 080H
+ DB "LIS", "T" | 080H
+ DB 080H
+ DB "DELET", "E" | 080H
+ DB "RENU", "M" | 080H
+ DB "AUT", "O" | 080H
+ DB "EDI", "T" | 080H
+L4193: DB "FO", "R" | 080H
+ DB "NEX", "T" | 080H
+ DB "PRIN", "T" | 080H
+ DB 080H
+ DB "INPU", "T" | 080H
+ DB 080H
+ DB "I", "F" | 080H
+ DB "DAT", "A" | 080H
+ DB "REA", "D" | 080H
+ DB "DI", "M" | 080H
+ DB "RE", "M" | 080H
+ DB "EN", "D" | 080H
+ DB "STO", "P" | 080H
+ DB "CON", "T" | 080H
+ DB "CL", "S" | 080H
+ DB 080H
+ DB "O", "N" | 080H
+ DB "LE", "T" | 080H
+ DB "NE", "W" | 080H
+ DB "POK", "E" | 080H
+ DB "OF", "F" | 080H
+ DB "MOD", "E" | 080H
+ DB "SKI", "P" | 080H
+ DB "PLO", "T" | 080H
+ DB "LIN", "E" | 080H
+ DB "RLIN", "E" | 080H
+ DB "MOV", "E" | 080H
+ DB "RMOV", "E" | 080H
+ DB "TRO", "N" | 080H
+ DB "TROF", "F" | 080H
+ DB "INP", "@" | 080H
+ DB "DEFAUL", "T" | 080H
+ DB "GE", "T" | 080H
+ DB "PCOLO", "R" | 080H
+ DB "PHOM", "E" | 080H
+ DB "HSE", "T" | 080H
+ DB "GPRIN", "T" | 080H
+ DB "KE", "Y" | 080H
+ DB "AXI", "S" | 080H
+ DB "LOA", "D" | 080H
+ DB "SAV", "E" | 080H
+ DB "MERG", "E" | 080H
+ DB "CHAI", "N" | 080H
+ DB "CONSOL", "E" | 080H
+ DB "SEARC", "H" | 080H
+ DB "OUT", "@" | 080H
+ DB "CIRCL", "E" | 080H
+ DB "TES", "T" | 080H
+ DB "PAG", "E" | 080H
+ DB "WAI", "T" | 080H
+ DB "SWA", "P" | 080H
+ DB 080H
+ DB "ERRO", "R" | 080H
+ DB "ELS", "E" | 080H
+ DB "US", "R" | 080H
+ DB "BY", "E" | 080H
+ DB 080H
+ DB 080H
+ DB "DE", "F" | 080H
+ DB 080H
+ DB 080H
+ DB "LABE", "L" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "WOPE", "N" | 080H
+ DB "CLOS", "E" | 080H
+ DB "ROPE", "N" | 080H
+ DB "XOPE", "N" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "DI", "R" | 080H
+ DB 080H
+ DB 080H
+ DB "RENAM", "E" | 080H
+ DB "KIL", "L" | 080H
+ DB "LOC", "K" | 080H
+ DB "UNLOC", "K" | 080H
+ DB "INI", "T" | 080H
+ DB 080H
+ DB 080H
+ DB "RMO", "V" | 080H
+ DB "T", "O" | 080H
+ DB "STE", "P" | 080H
+ DB "THE", "N" | 080H
+ DB "USIN", "G" | 080H
+ DB 080H
+ DB 080H
+ DB "TA", "B" | 080H
+ DB "SP", "C" | 080H
+ DB 080H
+ DB 080H
+ DB ".XO", "R" | 080H
+ DB ".O", "R" | 080H
+ DB ".AN", "D" | 080H
+ DB ".NO", "T" | 080H
+ DB ">", "<" | 080H
+ DB "<", ">" | 080H
+ DB "=", "<" | 080H
+ DB "<", "=" | 080H
+ DB "=", ">" | 080H
+ DB ">", "=" | 080H
+ DB "=" | 080H
+ DB ">" | 080H
+ DB "<" | 080H
+ DB "+" | 080H
+ DB "-" | 080H
+ DB 080H
+ DB 080H
+ DB "/" | 080H
+ DB "*" | 080H
+ DB "^" | 080H
+ DB 0FFH
+EXTWORDTBL: DB 080H ; BASIC extended keyword text table
+ DB "SE", "T" | 080H
+ DB "RESE", "T" | 080H
+ DB "COLO", "R" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "BEE", "P" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "MUSI", "C" | 080H
+ DB "TEMP", "O" | 080H
+ DB "CURSO", "R" | 080H
+ DB "VERIF", "Y" | 080H
+ DB "CL", "R" | 080H
+L433E: DB "LIMI", "T" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "BOO", "T" | 080H
+ DB 0FFH
+FUNCWORDTBL:DB "IN", "T" | 080H ; BASIC function keyword text table
+ DB "AB", "S" | 080H
+ DB "SI", "N" | 080H
+ DB "CO", "S" | 080H
+ DB "TA", "N" | 080H
+ DB "L", "N" | 080H
+ DB "EX", "P" | 080H
+ DB "SQ", "R" | 080H
+ DB "RN", "D" | 080H
+ DB "PEE", "K" | 080H
+ DB "AT", "N" | 080H
+ DB "SG", "N" | 080H
+ DB "LO", "G" | 080H
+ DB "FRA", "C" | 080H
+ DB "PA", "I" | 080H
+ DB "RA", "D" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "JO", "Y" | 080H
+ DB 080H
+ DB "CHR", "$" | 080H
+ DB "STR", "$" | 080H
+ DB "HEX", "$" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "SPACE", "$" | 080H
+ DB 080H
+ DB 080H
+ DB "AS", "C" | 080H
+ DB "LE", "N" | 080H
+ DB "VA", "L" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "ER", "N" | 080H
+ DB "ER", "L" | 080H
+ DB "SIZ", "E" | 080H
+ DB "CSR", "H" | 080H
+ DB "CSR", "V" | 080H
+ DB 080H
+ DB 080H
+ DB "LEFT", "$" | 080H
+ DB "RIGHT", "$" | 080H
+ DB "MID", "$" | 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB 080H
+ DB "TI", "$" | 080H
+ DB 080H
+ DB "EO", "F" | 080H
+ DB "F", "N" | 080H
+ DB 0FFH
+L43EC: DW L5147 ; Keyword dispatch address table
+ DW L50C2
+ DW L4AEC
+ DW L47FF
+ DW L5091
+ DW L5828
+ DW L4C38
+ DW 052C2H
+ DW L4AEC
+ DW L4999
+ DW L4A38
+ DW L485E
+ DW L48B9
+ DW L4D8E
+ DW L4E25
+ DW L561E
+ DW L4AEC
+ DW L575B
+ DW L4AEC
+ DW L515A
+ DW L4F8A
+ DW L5754
+ DW L76AC
+ DW L4F8A
+ DW L484D
+ DW L4BEA
+ DW L4C1B
+ DW L5537
+ DW L4AEC
+ DW L50EA
+ DW L4C99
+ DW L4922
+ DW L5024
+ DW L4AEC
+ DW L6A24
+ DW L6A87
+ DW L6E22
+ DW L6AD4
+ DW 06AD7H
+ DW 06ADAH
+ DW 06ADDH
+ DW L4959
+ DW L496C
+ DW L4FAB
+ DW L58CA
+ DW L4FEF
+ DW L6B3F
+ DW L6B71
+ DW L6B7B
+ DW L6B85
+ DW L53A9
+ DW L6BEA
+ DW L5986
+ DW L5C88
+ DW L59EA
+ DW L59D5
+ DW L5260
+ DW L52C0
+ DW L4F96
+ DW L6C2A
+ DW L6DF8
+ DW L6E03
+ DW L4F7A
+ DW L5D65
+ DW L4AEC
+ DW L4B7A
+ DW L517C
+ DW L4F30
+ DW L5258
+ DW L4AEC
+ DW L4AEC
+ DW L5456
+ DW L4AEC
+ DW L4AEC
+ DW L4F8A
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW 058E2H
+ DW L5913
+ DW L58DF
+ DW 058E5H
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L5CE3
+ DW L4AEC
+ DW L4AEC
+ DW L5D0A
+ DW 05914H
+ DW 05CD7H
+ DW L5CD5
+ DW L58D0
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+L44AC: DW L4AEC
+ DW L51EE
+ DW 051EFH
+ DW L54A6
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L5255
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L54FD
+ DW L551F
+ DW L4FC7
+ DW L5C71
+ DW L4928
+ DW L504D
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L52BA
+L450A: DW L7E8B
+ DW L7E86
+ DW L7FD2
+ DW L7FC2
+ DW L80B1
+ DW L8320
+ DW L81FC
+ DW L7EE8
+ DW L81B7
+ DW L81A3
+ DW L7F06
+ DW L8169
+ DW L8314
+ DW L608D
+ DW L8181
+ DW L817C
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L792C
+ DW L4AEC
+ DW L4AEC
+ DW L7237
+ DW L71F6
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L7219
+ DW L4AEC
+ DW L4AEC
+ DW L7272
+ DW L727C
+ DW L7284
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L7180
+ DW L718E
+ DW L7164
+ DW L7176
+ DW L717B
+ DW L4AEC
+ DW L4AEC
+ DW L7296
+ DW L72B3
+ DW L72D0
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L7326
+ DW L4AEC
+ DW L7245
+ DW L789F
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+ DW L4AEC
+L45AA: CALL TEST1
+ DB 00CH
+ JR NZ,L45B6 ; (+006H)
+ CALL LDDEMI
+ OR 0FFH
+ RET
+
+L45B6: INC HL
+ CP 00BH
+ JR NZ,L45DA ; (+01fH)
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ LD A,E
+ OR D
+ RET Z
+ EX DE,HL
+ CALL L4609
+ JP C,04B0DH
+ EX DE,HL
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00CH
+ INC HL
+ INC HL
+ INC HL
+ OR 0FFH
+ LD (L473D),A
+ RET
+
+L45DA: CP 022H
+ JP NZ,L4AEC
+ LD (04650H),HL
+ LD B,000H
+L45E4: LD A,(HL)
+ OR A
+ JR Z,L45F0 ; (+008H)
+ INC HL
+ CP 022H
+ JR Z,L45F0 ; (+003H)
+ INC B
+ JR L45E4 ; (-00cH)
+
+L45F0: LD A,B
+ OR A
+ JP Z,L4AEC
+ LD (0464EH),A
+ EX DE,HL
+ CALL L4603
+ JP C,04B0DH
+ EX DE,HL
+ OR 0FFH
+ RET
+
+L4603: PUSH BC
+ LD BC,L463C
+ JR L460D ; (+004H)
+
+L4609: PUSH BC
+ LD BC,L4630
+L460D: LD (04623H),BC
+ PUSH DE
+ EX DE,HL
+ LD HL,(TEXTST)
+L4616: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ LD A,B
+ OR C
+ SCF
+ JR Z,L462D ; (+00fH)
+ DEC HL
+ PUSH HL
+ ADD HL,BC
+ EX (SP),HL
+ CALL L0000
+ JR C,L462C ; (+005H)
+ JR Z,L462C ; (+003H)
+ POP HL
+ JR L4616 ; (-016H)
+
+L462C: POP DE
+L462D: POP DE
+ POP BC
+ RET
+
+L4630: INC HL
+ INC HL
+ INC HL
+ LD A,D
+ CP (HL)
+ RET NZ
+ DEC HL
+ LD A,E
+ CP (HL)
+ DEC HL
+ DEC HL
+ RET
+
+L463C: PUSH HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ CALL TEST1
+ DB 0CAH
+ JR NZ,L4660 ; (+019H)
+ CALL TEST1
+ DB 022H
+ JR NZ,L4660 ; (+013H)
+ LD B,000H
+ LD DE,L0000
+L4652: LD A,(DE)
+ CP (HL)
+ JR NZ,L4660 ; (+00aH)
+ INC HL
+ INC DE
+ DJNZ L4652 ; (-008H)
+ LD A,(HL)
+ CP 022H
+ JR Z,L4660 ; (+001H)
+ OR A
+L4660: SCF
+ CCF
+ POP HL
+ RET
+
+L4664: LD DE,L0000
+ LD BC,0FFFFH
+ CALL L46A6
+ RET Z
+ CP 02DH
+ JR Z,L468E ; (+01cH)
+ CP 02EH
+ LD DE,(0847FH)
+ JR Z,L4681 ; (+007H)
+ CALL TESTX
+ DB 00BH
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L4681: INC HL
+ CALL L46A6
+ JR Z,L468B ; (+004H)
+ CP 02DH
+ JR Z,L468E ; (+003H)
+L468B: LD C,E
+ LD B,D
+ RET
+
+L468E: INC HL
+ CALL L46A6
+ RET Z
+ CP 02EH
+ JR NZ,L469D ; (+006H)
+ LD BC,(0847FH)
+ INC HL
+ RET
+
+L469D: CALL TESTX
+ DB 00BH
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ RET
+
+L46A6: CALL L413E
+ RET Z
+ CP 02CH
+ RET
+
+L46AD: CALL SKPDE
+ LD A,0FFH
+ LD (L473D),A
+ LD HL,L4703
+ JR L46CC ; (+012H)
+
+L46BA: CALL SKPDE
+ CALL L4836
+L46C0: LD A,(L473D)
+ OR A
+ RET Z
+ XOR A
+ LD (L473D),A
+ LD HL,L46E9
+L46CC: LD (046E7H),HL
+ LD HL,(TEXTST)
+ DEC HL
+L46D3: INC HL
+ LD A,(HL)
+ INC HL
+ OR (HL)
+ RET Z
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (04732H),DE
+L46E0: CALL L51A2
+ OR A
+ JR Z,L46D3 ; (-013H)
+ JP L0000
+
+L46E9: CP 00CH
+ JR NZ,L46E0 ; (-00dH)
+ DEC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ PUSH HL
+ EX DE,HL
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ DEC HL
+ LD (HL),00BH
+ INC HL
+ INC HL
+ JR L46E0 ; (-023H)
+
+L4703: CP 00BH
+ JR NZ,L46E0 ; (-027H)
+ DEC HL
+ PUSH HL
+ CALL INDRCT
+ LD E,L
+ LD D,H
+ LD A,L
+ OR H
+ JR Z,L4739 ; (+027H)
+ CALL L4609
+ JR C,L4722 ; (+00bH)
+ EX DE,HL
+ POP HL
+ DEC HL
+ LD (HL),00CH
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ JR L46E0 ; (-042H)
+
+L4722: PUSH DE
+ LD A,010H
+ RST 018H
+ DB 01BH
+ LD A,020H
+ RST 018H
+ DB 003H
+ POP HL
+ CALL L5E66
+ RST 018H
+ DB 005H
+ LD HL,L0000
+ CALL L4B58
+ RST 018H
+ DB 002H
+L4739: POP HL
+ INC HL
+ JR L46E0 ; (-05dH)
+
+L473D: NOP
+L473E: RST 018H
+ DB 028H
+ CALL L46BA
+ CALL L6A11
+ LD A,B
+ OR C
+ JP Z,L4059
+ LD (0847FH),BC
+ LD A,(DE)
+ CP 020H
+ JR NZ,L4755 ; (+001H)
+ INC DE
+L4755: PUSH AF
+ LD HL,L84E7
+ CALL L66EF
+ PUSH HL
+ LD HL,(L847F)
+ LD E,L
+ LD D,H
+ CALL L49B9
+ POP HL
+ POP AF
+ OR A
+ JR Z,L477C ; (+012H)
+ LD DE,L84E7
+ OR A
+ SBC HL,DE
+ LD DE,00005H
+ ADD HL,DE
+ LD B,H
+ LD C,L
+ LD HL,L84E7
+ CALL L4794
+L477C: LD A,(L48B0)
+ OR A
+ JP Z,L4059
+ LD DE,(08481H)
+ LD HL,(L847F)
+ ADD HL,DE
+ LD (L847F),HL
+ JP NC,L4059
+ JP L4081
+
+L4794: LD (047F6H),HL
+ PUSH BC
+ LD BC,(0847FH)
+ LD HL,(TEXTST)
+ JR L47A5 ; (+004H)
+
+L47A1: CALL LDDEMD
+ ADD HL,DE
+L47A5: CALL LDDEMD
+ LD A,D
+ OR E
+ JR Z,L47B9 ; (+00dH)
+ INC HL
+ INC HL
+ CALL LDDEMD
+ EX DE,HL
+ SBC HL,BC
+ DEC DE
+ DEC DE
+ EX DE,HL
+ JR C,L47A1 ; (-018H)
+L47B9: POP DE
+ PUSH HL
+ PUSH DE
+ LD HL,00028H
+ ADD HL,DE
+ LD BC,(VARED)
+ LD (TMPEND),BC
+ ADD HL,BC
+ JP C,L4B2C
+ EX DE,HL
+ CALL L74E8
+ POP DE
+ RST 018H
+ DB 018H
+ POP HL
+ PUSH DE
+ PUSH BC
+ EX (SP),HL
+ POP BC
+ PUSH HL
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ POP HL
+ LD DE,(VARED)
+ INC BC
+ LDDR
+ INC HL
+ POP BC
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ LD DE,(0847FH)
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ EX DE,HL
+ LD HL,L84E7
+ DEC BC
+ DEC BC
+ DEC BC
+ DEC BC
+ LDIR
+ RET
+
+L47FF: JR Z,L480A ; (+009H)
+ CALL L5176
+ JP Z,L5147
+ JP L5AED
+
+L480A: CALL L4928
+L480D: CALL L4821
+ LD DE,(TEXTST)
+ LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ PUSH HL
+ EX DE,HL
+ JP L40E4
+
+L4821: PUSH HL
+ PUSH DE
+ CALL L4836
+ XOR A
+ LD (L48B0),A
+ LD HL,0000AH
+ LD (L847F),HL
+ LD (L8481),HL
+ POP DE
+ POP HL
+ RET
+
+L4836: CALL L5825
+ LD HL,L0000
+ LD (L8487),HL
+ XOR A
+ LD (L4B78),A
+ LD (L8486),A
+ LD (L8485),A
+ LD (L849A),A
+ RET
+
+L484D: LD A,(L849A)
+ OR A
+ JP NZ,L5DCB
+ RST 018H
+ DB 028H
+ XOR A
+ LD (L4B78),A
+ POP BC
+ JP L4050
+
+L485E: CALL L5C08
+ LD DE,0000AH
+ LD BC,0000AH
+ JR Z,L4897 ; (+02eH)
+ CP 02CH
+ JR NZ,L4878 ; (+00bH)
+ INC HL
+ CALL L6E5F
+ LD B,D
+ LD C,E
+ LD DE,0000AH
+ JR L4897 ; (+01fH)
+
+L4878: CP 02EH
+ LD DE,(0847FH)
+ JR Z,L4889 ; (+009H)
+ CP 00BH
+ JP NZ,L4AEC
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L4889: INC HL
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4897 ; (+007H)
+ PUSH DE
+ CALL L6E5F
+ LD C,E
+ LD B,D
+ POP DE
+L4897: CALL 05E48H
+ LD A,C
+ OR B
+ JP Z,04AF2H
+ LD (0847FH),DE
+ LD (08481H),BC
+ LD A,001H
+ LD (L48B0),A
+ POP AF
+ JP L4059
+
+L48B0: NOP
+L48B1: LD A,(L48B0)
+ OR A
+ RET Z
+ XOR A
+ JR L48BF ; (+006H)
+
+L48B9: CALL L48BF
+ JP L4059
+
+L48BF: LD DE,(0847FH)
+ CALL NZ,L4664
+ PUSH DE
+ EX DE,HL
+ CALL L4609
+ POP DE
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ JR NC,L48D5 ; (+003H)
+ LD HL,L00F9
+L48D5: EX DE,HL
+ PUSH DE
+ LD (L847F),HL
+ CALL L5E66
+ RST 018H
+ DB 005H
+ LD A,020H
+ RST 018H
+ DB 003H
+ POP HL
+ LD DE,KEYBUF
+ PUSH DE
+ CALL L68E0
+ POP DE
+ LD B,000H
+L48EE: LD A,(DE)
+ OR A
+ JR Z,L48F8 ; (+006H)
+ INC B
+ RST 018H
+ DB 004H
+ INC DE
+ JR L48EE ; (-00aH)
+
+L48F8: LD A,B
+ OR A
+ RET Z
+ LD A,014H
+ RST 018H
+ DB 003H
+ DJNZ 048FCH ; (-005H)
+ RET
+
+L4902: PUSH DE
+ LD DE,0FFF0H
+ ADD HL,DE
+ POP DE
+ LD (MEMLMT),HL
+ DEC H
+ LD (INTFAC),HL
+ XOR A
+ LD (L849A),A
+ RET
+
+L4914: LD HL,(TEXTST)
+ CALL L4952
+ LD (TEXTED),HL
+ CALL L4821
+ JR L4928 ; (+006H)
+
+L4922: CALL L4914
+ JP L404A
+
+L4928: PUSH HL
+ CALL L4939
+ POP HL
+ RST 018H
+ DB 028H
+ RET
+
+L4930: LD HL,(TEXTST)
+ CALL L4952
+ LD (TEXTED),HL
+L4939: LD HL,(TEXTED)
+ LD (HL),000H
+ INC HL
+ LD (VARST),HL
+ LD (HL),000H
+ INC HL
+ LD (STRST),HL
+ CALL L4952
+ LD (VARED),HL
+ LD (TMPEND),HL
+ RET
+
+L4952: LD (HL),000H
+ INC HL
+ LD (HL),000H
+ INC HL
+ RET
+
+L4959: CALL L413E
+ LD A,001H
+ JR Z,L496D ; (+00dH)
+ CALL TESTX
+ DB FDPD
+ CALL TESTX
+ DB 050H
+ LD A,002H
+ JR L496D ; (+001H)
+
+L496C: XOR A
+L496D: LD (04972H),A
+ RET
+
+L4971: LD A,000H
+ OR A
+ RET Z
+ DEC A
+ LD (FILOUT),A
+ JR Z,L4982 ; (+007H)
+ LD A,(PNMODE)
+ CP 002H
+ JR Z,L4994 ; (+012H)
+L4982: PUSH HL
+ LD A,05BH
+ RST 018H
+ DB 009H
+ LD HL,(L8483)
+ CALL L5E66
+ RST 018H
+ DB 00BH
+ LD A,05DH
+ RST 018H
+ DB 009H
+ POP HL
+L4994: XOR A
+ LD (FILOUT),A
+ RET
+
+L4999: CALL L46A6
+ JP Z,L4AEC
+ CALL L5176
+ JR Z,L49AD ; (+009H)
+ CP 02DH
+ JR Z,L49AD ; (+005H)
+ CP 02EH
+ JP NZ,L5D02
+L49AD: CALL L4664
+ EX DE,HL
+ LD E,C
+ LD D,B
+ CALL L49B9
+ JP L4050
+
+L49B9: PUSH AF
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ CALL L46BA
+ LD C,L
+ LD B,H
+ LD HL,(TEXTST)
+L49C5: CALL LDDEMI
+ LD A,E
+ OR D
+ JR NZ,L49D4 ; (+008H)
+L49CC: POP DE
+ POP HL
+ POP BC
+ POP AF
+ RET
+
+L49D1: POP DE
+ JR L49CC ; (-008H)
+
+L49D4: EX DE,HL
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ LD (049EEH),HL
+ SBC HL,BC
+ POP HL
+ JR C,L49C5 ; (-021H)
+ DB 01BH
+ DEC DE
+ DEC DE
+ POP BC
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD HL,L0000
+ SBC HL,BC
+ POP HL
+ JR Z,L4A13 ; (+01eH)
+ JR NC,L49D1 ; (-026H)
+L49F7: CALL LDDEMI
+ LD A,D
+ OR E
+ JR Z,L4A11 ; (+013H)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ DEC DE
+ DEC DE
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ EX DE,HL
+ SBC HL,BC
+ POP HL
+ JR C,L49F7 ; (-016H)
+ JR Z,L4A13 ; (+004H)
+ EX DE,HL
+ DEC HL
+L4A11: DEC HL
+ DEC HL
+L4A13: POP DE
+ PUSH DE
+ PUSH HL
+ OR A
+ EX DE,HL
+ SBC HL,DE
+ EX DE,HL
+ LD BC,(VARED)
+ RST 018H
+ DB 018H
+ POP DE
+ LD H,B
+ LD L,C
+ OR A
+ SBC HL,DE
+ LD B,H
+ LD C,L
+ EX DE,HL
+ POP DE
+ LDIR
+ JR L49CC ; (-063H)
+
+L4A2F: CALL L6E5F
+ LD A,D
+ OR E
+ RET NZ
+ JP 04AF2H
+
+L4A38: CALL L5C08
+ LD DE,0000AH
+ LD (04AB7H),DE
+ LD (04AC9H),DE
+ LD E,000H
+ LD (04AA6H),DE
+ JR Z,L4A81 ; (+033H)
+ CP 02CH
+ JR Z,L4A62 ; (+010H)
+ CALL L4A2F
+ LD (04AB7H),DE
+ CALL L413E
+ JR Z,L4A81 ; (+023H)
+ CALL L5E70
+ DEC HL
+L4A62: CALL INCHLF
+ CP 02CH
+ JR Z,L4A79 ; (+010H)
+ CALL L4A2F
+ LD (04AA6H),DE
+ CALL L413E
+ JR Z,L4A81 ; (+00cH)
+ CALL L5E70
+ DEC HL
+L4A79: INC HL
+ CALL L4A2F
+ LD (04AC9H),DE
+L4A81: PUSH HL
+ LD HL,(04AA6H)
+ EX DE,HL
+ LD HL,(04AB7H)
+ OR A
+ SBC HL,DE
+ JP C,04AF2H
+ CALL L46AD
+ LD HL,(TEXTST)
+L4A95: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4AD3 ; (+037H)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ EX DE,HL
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ PUSH HL
+ LD HL,L0000
+ OR A
+ SBC HL,BC
+ POP HL
+ JR Z,L4AB3 ; (+005H)
+ JR C,L4AB3 ; (+003H)
+ EX DE,HL
+ JR L4A95 ; (-01eH)
+
+L4AB3: DEC HL
+ DEC HL
+ DEC HL
+ LD BC,L0000
+L4AB9: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ JR Z,L4AD3 ; (+013H)
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ EX DE,HL
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ LD HL,L0000
+ ADD HL,BC
+ JR C,L4AD8 ; (+00aH)
+ LD C,L
+ LD B,H
+ EX DE,HL
+ JR L4AB9 ; (-01aH)
+
+L4AD3: CALL L46C0
+ POP HL
+ RET
+
+L4AD8: LD HL,0000AH
+ LD (04AC9H),HL
+ LD (04AB7H),HL
+ LD L,000H
+ LD (04AA6H),HL
+ CALL L4A81
+ JP 04AF2H
+
+L4AEC: LD A,001H
+ LD HL,0023EH
+ LD HL,L033E
+ LD HL,0043EH
+ LD HL,L053E
+ LD HL,0063EH
+ LD HL,0073EH
+ LD HL,L083E
+ LD HL,L0D3E
+ LD HL,L0E3E
+ LD HL,L0F3E
+ LD HL,L103E
+ LD HL,L113E
+ LD HL,L123E
+ LD HL,L133E
+ LD HL,0143EH
+ LD HL,0153EH
+ LD HL,L183E
+ LD HL,L193E
+ LD HL,L3A3E
+ LD HL,L403E
+ JR L4B3A ; (+00eH)
+
+L4B2C: LD A,006H
+L4B2E: LD SP,(INTFAC)
+ LD HL,0FFFFH
+ PUSH HL
+ LD (08496H),SP
+L4B3A: JR L4B55 ; (+019H)
+
+L4B3C: LD HL,(_LPT)
+ LD IX,(_CRT)
+ LD (ZEQT),HL
+ XOR A
+ LD (01051H),A
+ LD A,0C4H
+ LD HL,0BB3EH
+ LD HL,0BC3EH
+ LD HL,0BD3EH
+L4B55: JP L0182
+
+L4B58: LD A,L
+ OR H
+ RET Z
+ LD DE,L4B66
+ RST 018H
+ DB 005H
+ CALL L5E66
+ RST 018H
+ DB 005H
+ RET
+
+L4B66: JR NZ,04BB1H ; (+049H)
+ LD C,(HL)
+ JR NZ,L4B6B ; (+000H)
+L4B6B: LD B,D
+ DEC B
+ LD D,D
+ LD B,L
+ LD B,C
+ LD C,E
+ NOP
+L4B72: LD D,D
+ DEC B
+ LD B,L
+ LD B,C
+ LD B,H
+ LD E,C
+L4B78: NOP
+ NOP
+L4B7A: CALL L6E4B
+ DEC A
+ CP 046H
+ JR C,L4B84 ; (+002H)
+ LD A,044H
+L4B84: INC A
+L4B85: LD SP,(08496H)
+ PUSH AF
+ RST 018H
+ DB 043H
+ CALL L5C44
+ POP AF
+ OR A
+ JR Z,L4BE5 ; (+052H)
+ CP 080H
+ JR Z,L4BE3 ; (+04cH)
+ LD C,A
+ LD HL,L0000
+ LD (L7928),HL
+ CALL L4146
+ LD A,C
+ JR Z,L4BCE ; (+02aH)
+ LD HL,(L8483)
+ LD (L8487),HL
+ LD (L847F),HL
+ LD HL,(L847D)
+ LD (L8489),HL
+ LD HL,(L8498)
+ LD (L848B),HL
+ AND 07FH
+ LD (L8485),A
+ LD A,(L8486)
+ INC A
+ CP 002H
+ JR Z,L4BD9 ; (+013H)
+ XOR A
+ LD (L4B78),A
+ LD (L849A),A
+ LD A,C
+L4BCE: RST 018H
+ DB 01BH
+L4BD0: LD HL,(L8483)
+ CALL L4B58
+ JP L4050
+
+L4BD9: LD (L8486),A
+ LD HL,(0848DH)
+ PUSH HL
+ JP L40E4
+
+L4BE3: LD A,02EH
+L4BE5: LD HL,(L8498)
+ JR L4BED ; (+003H)
+
+L4BEA: LD A,02EH
+ POP DE
+L4BED: PUSH AF
+ PUSH HL
+ RST 018H
+ DB 002H
+ RST 018H
+ DB 020H
+ LD DE,L4B6B
+ RST 018H
+ DB 005H
+ POP HL
+ CALL L4146
+ JR Z,L4C17 ; (+019H)
+ LD (04C33H),HL
+ LD HL,(L847D)
+ LD (04C2DH),HL
+ LD HL,(L8483)
+ LD (04C27H),HL
+ LD (L847F),HL
+ POP AF
+ LD (L4B78),A
+ JP L4BD0
+
+L4C17: POP AF
+ JP L4050
+
+L4C1B: POP DE
+ LD HL,L4B78
+ LD A,(HL)
+ OR A
+ JP Z,04B10H
+ LD (HL),000H
+ LD HL,L0000
+ LD (L8483),HL
+ LD HL,L0000
+ LD (L847D),HL
+ LD HL,L0000
+ JP L40AF
+
+L4C38: LD A,(L8486)
+ CP 002H
+ JP C,04B1CH
+ DEC A
+ LD (L8486),A
+ CALL L413E
+ EX DE,HL
+ LD HL,(L8487)
+ LD (L8483),HL
+ LD HL,(L8489)
+ LD (L847D),HL
+ LD HL,(L848B)
+ JR NZ,L4C5D ; (+004H)
+ POP BC
+ JP L40B3
+
+L4C5D: CP 08EH
+ JP Z,L4F8A
+ EX DE,HL
+ JP L5147
+
+L4C66: CALL TEST1
+ DB 080H
+ JR Z,L4C74 ; (+008H)
+ CALL TESTX
+ DB 082H
+ CALL TESTX
+ DB LSE0
+L4C74: CALL L45AA
+ JR Z,L4C83 ; (+00aH)
+ LD (0848DH),DE
+ LD A,001H
+L4C7F: LD (L8486),A
+ RET
+
+L4C83: LD A,(L8486)
+ DEC A
+ JR Z,L4C7F ; (-00aH)
+ XOR A
+ LD (L8486),A
+ LD HL,(L8487)
+ LD (L8483),HL
+ LD A,(L8485)
+ JP L4B85
+
+L4C99: CALL TEST1
+ DB 0FFH
+ JP Z,L4CCB
+ CALL L7436
+ PUSH BC
+ PUSH BC
+ PUSH AF
+ CALL TESTX
+ DB QDPC
+ CALL L6E8A
+ POP BC
+ LD A,(L84CE)
+ CP B
+ JP NZ,04AF5H
+ EX (SP),HL
+ EX DE,HL
+ CP 005H
+ JR Z,L4CC3 ; (+008H)
+ PUSH BC
+ CALL L4CD6
+ POP AF
+ POP HL
+ POP BC
+ RET
+
+L4CC3: LD C,A
+ LD B,000H
+ LDIR
+ POP HL
+ POP BC
+ RET
+
+L4CCB: CALL TESTX
+ DB 0C4H
+ JP L73C2
+
+L4CD2: PUSH DE
+ EX DE,HL
+ JR L4CDA ; (+004H)
+
+L4CD6: PUSH DE
+ CALL L6E7E
+L4CDA: LD HL,KEYBM1
+ LD (HL),A
+ LD B,A
+ LD C,A
+ INC HL
+ CALL LDHLDE
+ POP HL
+ LD A,(HL)
+ CP C
+ JR Z,L4D2B ; (+042H)
+ PUSH HL
+ OR A
+ CALL NZ,L4D3B
+ POP HL
+ LD A,(KEYBM1)
+ OR A
+ JR Z,L4D28 ; (+033H)
+ PUSH HL
+ LD BC,(VARST)
+ SBC HL,BC
+ EX DE,HL
+ LD HL,(VARED)
+ DEC HL
+ DEC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD BC,(STRST)
+ OR A
+ POP DE
+ PUSH HL
+ SBC HL,BC
+ EX DE,HL
+ LD (HL),A
+ LD B,A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ POP HL
+ LD DE,KEYBM1
+ INC DE
+ CALL L74DC
+ CALL L4952
+ LD (TMPEND),HL
+ LD (VARED),HL
+ RET
+
+L4D28: LD (HL),000H
+ RET
+
+L4D2B: INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(STRST)
+ ADD HL,DE
+ LD DE,KEYBM1
+ LD B,C
+ INC DE
+ JP L74DC
+
+L4D3B: LD C,(HL)
+ LD B,000H
+L4D3E: INC BC
+ INC BC
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(STRST)
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ LD E,L
+ LD D,H
+ ADD HL,BC
+ PUSH BC
+ PUSH DE
+ EX DE,HL
+ LD HL,(VARED)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ EX DE,HL
+ POP DE
+ PUSH DE
+ JR Z,L4D5F ; (+002H)
+ LDIR
+L4D5F: POP DE
+ POP BC
+ LD HL,(VARED)
+ OR A
+ SBC HL,BC
+ LD (VARED),HL
+ EX DE,HL
+L4D6B: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ RET Z
+ LD HL,(VARST)
+ ADD HL,DE
+ LD A,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ OR A
+ EX DE,HL
+ SBC HL,BC
+ EX DE,HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ PUSH BC
+ LD C,A
+ LD B,000H
+ LD HL,(STRST)
+ ADD HL,DE
+ ADD HL,BC
+ POP BC
+ JR L4D6B ; (-023H)
+
+L4D8E: POP BC
+ LD (04E23H),BC
+ CALL L4C99
+ LD IX,L0000
+ ADD IX,SP
+ LD (04E05H),HL
+ CALL L4EFE
+ LD (04E01H),BC
+L4DA6: LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JR NZ,L4DCE ; (+01aH)
+ LD E,(IX+006H)
+ LD D,(IX+007H)
+ EX DE,HL
+ OR A
+ SBC HL,BC
+ JR Z,L4DC7 ; (+007H)
+ LD DE,L0012
+ ADD IX,DE
+ JR L4DA6 ; (-021H)
+
+L4DC7: LD DE,00012H
+
+ ADD IX,DE
+ LD SP,IX
+L4DCE: LD HL,(04E05H)
+ CALL TESTX
+ DB LSE0
+ CALL L6E8A
+ PUSH AF
+ PUSH HL
+ EX DE,HL
+ LD DE,L4F0A
+ CALL L5E93
+ POP HL
+ POP AF
+ CP LSE1
+ LD DE,L6112
+ JR NZ,L4DEE ; (+004H)
+ INC HL
+ CALL L6E8A
+L4DEE: LD (04E05H),HL
+ LD HL,0FFF6H
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ CALL L5E93
+ LD HL,L4F0A
+ CALL L5E93
+ LD HL,L0000
+ PUSH HL
+ LD HL,L0000
+ PUSH HL
+ LD HL,(L847D)
+ PUSH HL
+ LD HL,0FF12H
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(TMPEND)
+ SBC HL,DE
+ LD A,00BH
+ JP C,L4B2E
+ LD HL,(04E05H)
+ JP L0000
+
+L4E25: LD A,005H
+ LD (L84CE),A
+ POP BC
+ LD (04E9AH),BC
+L4E2F: PUSH AF
+ POP BC
+ LD (04E05H),HL
+ LD IX,L0000
+ ADD IX,SP
+ LD (04E89H),IX
+ LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JP NZ,04B04H
+ PUSH BC
+ POP AF
+ JR NZ,L4EB0 ; (+05fH)
+ LD E,(IX+004H)
+ LD D,(IX+005H)
+ EX DE,HL
+ LD (04E97H),HL
+ LD E,(IX+006H)
+ LD D,(IX+007H)
+ LD HL,(VARST)
+ ADD HL,DE
+ LD BC,00008H
+ ADD IX,BC
+ PUSH IX
+ POP DE
+ CALL L7985
+ INC DE
+ LD A,(DE)
+ LD IX,(04E89H)
+ LD DE,0000DH
+ ADD IX,DE
+ PUSH IX
+ POP DE
+ BIT 7,A
+ JR NZ,L4E83 ; (+001H)
+ EX DE,HL
+L4E83: CALL L7A1C
+ JR C,L4E9C ; (+014H)
+ LD SP,L0000
+ LD HL,00002H
+ ADD HL,SP
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ LD (L847D),HL
+ LD HL,L0000
+L4E99: JP L0000
+
+L4E9C: LD DE,L0012
+ LD HL,(04E89H)
+ ADD HL,DE
+ LD SP,HL
+ LD HL,(04E05H)
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4E99 ; (-014H)
+ LD (04E05H),HL
+L4EB0: LD IX,L0000
+ ADD IX,SP
+ LD (04E89H),IX
+ LD HL,(04E05H)
+ CALL TEST1
+ DB 02CH
+ JP Z,L4E2F
+ CALL L7436
+ LD (04E05H),HL
+ CALL L4EFE
+ LD IX,(04E89H)
+L4ED1: LD E,(IX+000H)
+ LD D,(IX+001H)
+ LD HL,0FF12H
+ OR A
+ SBC HL,DE
+ JP NZ,04B04H
+ LD L,(IX+006H)
+ LD H,(IX+007H)
+ OR A
+ SBC HL,BC
+ LD HL,(04E05H)
+ JP Z,L4E2F
+ LD DE,L0012
+ ADD IX,DE
+ LD (04E89H),IX
+ LD SP,(04E89H)
+ JR L4ED1 ; (-02dH)
+
+L4EFE: LD H,B
+ LD L,C
+ LD BC,(VARST)
+ OR A
+ SBC HL,BC
+ LD B,H
+ LD C,L
+ RET
+
+L4F0A: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L4F13: CALL L51A2
+ OR A
+ RET NZ
+ INC HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD A,D
+ OR E
+ INC HL
+ LD (04F12H),DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD (04F10H),DE
+ POP DE
+ SCF
+ RET Z
+ JR L4F13 ; (-01dH)
+
+L4F30: CALL L5E7B
+ CALL L6E5F
+ LD (04F69H),DE
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4F5B ; (+01bH)
+ CALL L6E8A
+ CALL L7916
+ LD (04F5EH),DE
+ CALL TEST1
+ DB 02CH
+ JR NZ,L4F5B ; (+00bH)
+ CALL L7436
+ CALL L7916
+ LD (04F71H),BC
+ XOR A
+L4F5B: PUSH HL
+ PUSH AF
+ LD HL,L0000
+ CALL L6E7E
+ LD IX,L0182
+ XOR A
+ CALL L0000
+ POP AF
+ JR NZ,L4F76 ; (+008H)
+ LD A,B
+ EX DE,HL
+ LD DE,L0000
+ CALL L4CD2
+L4F76: POP HL
+ JP L5E7F
+
+L4F7A: CALL L6E5F
+L4F7D: LD A,D
+ OR E
+ RET Z
+ LD B,000H
+L4F82: DJNZ L4F82 ; (-002H)
+ RST 018H
+ DB 00EH
+ RET Z
+ DEC DE
+ JR L4F7D ; (-00dH)
+
+L4F8A: DEC HL
+L4F8B: CALL L51A2
+ OR A
+ SCF
+ RET Z
+ CP 03AH
+ RET Z
+ JR L4F8B ; (-00bH)
+
+L4F96: CALL L6E4B
+ SUB LSE0
+ CP 007H
+ JP C,04AF2H
+ CALL L5E70
+ PUSH DE
+ CALL L6E4B
+ POP BC
+ OUT (C),A
+ RET
+
+L4FAB: CALL L6E4B
+ CALL L5E70
+ PUSH DE
+ CALL L7436
+ CP 005H
+ JP NZ,04AF5H
+ EX (SP),HL
+ PUSH BC
+ EX (SP),HL
+ POP BC
+ IN E,(C)
+ LD D,000H
+ CALL L5E99
+ POP HL
+ RET
+
+L4FC7: CALL L4FCF
+ LD (00054H),DE
+ RET
+
+L4FCF: LD B,018H
+ LD C,027H
+ CALL L4FDA
+ JP C,04AF2H
+ RET
+
+L4FDA: PUSH BC
+ CALL L6E4B
+ PUSH AF
+ CALL L5E70
+ CALL L6E4B
+ LD D,E
+ POP AF
+ LD E,A
+ POP BC
+ LD A,C
+ CP E
+ RET C
+ LD A,B
+ CP D
+ RET
+
+L4FEF: CALL L7436
+ LD (L84CE),A
+ CP 005H
+ JR Z,L500E ; (+015H)
+ PUSH HL
+ PUSH BC
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ OR A
+ JR Z,L5008 ; (+006H)
+ LD HL,(TMPEND)
+ LD (HL),A
+ LD A,001H
+L5008: POP DE
+ CALL L4CD2
+ POP HL
+ RET
+
+L500E: PUSH HL
+ PUSH BC
+ LD A,0FFH
+ RST 018H
+ DB 00DH
+ SUB 030H
+ CP 00AH
+ JR C,L501B ; (+001H)
+ XOR A
+L501B: LD E,A
+ LD D,000H
+ POP HL
+ CALL L5E99
+ POP HL
+ RET
+
+L5024: CP 040H
+ LD BC,POPRA
+ JR NZ,L502F ; (+004H)
+ INC HL
+ LD BC,L504B
+L502F: LD (05040H),BC
+ CALL L6E5F
+ CALL L5E73
+L5039: PUSH DE
+ CALL L6E4B
+ POP DE
+ EX DE,HL
+ CALL POPRA
+ EX DE,HL
+ INC DE
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ JR L5039 ; (-012H)
+
+L504B: LD (HL),A
+ RET
+
+L504D: PUSH HL
+ CALL TEST1
+ DB 04DH
+ JR NZ,L5066 ; (+012H)
+ CALL TEST1
+ DB 041H
+ JR NZ,L5066 ; (+00cH)
+ CALL TEST1
+ DB 058H
+ JR NZ,L5066 ; (+006H)
+ EX (SP),HL
+ LD HL,(MEMMAX)
+ JR L5082 ; (+01cH)
+
+L5066: POP HL
+ CALL L6E5F
+ PUSH HL
+ LD HL,(MEMMAX)
+ OR A
+ SBC HL,DE
+ JP C,L4B2C
+ LD HL,(TMPEND)
+ INC H
+ INC H
+ INC H
+ INC H
+ OR A
+ SBC HL,DE
+ JP NC,04AF2H
+ EX DE,HL
+L5082: CALL L4902
+ POP HL
+ POP DE
+ LD SP,(INTFAC)
+ LD BC,0FFFFH
+ PUSH BC
+ PUSH DE
+ RET
+
+L5091: POP IX
+L5093: POP BC
+ PUSH BC
+ LD A,B
+ INC A
+ JP NZ,04B07H
+ LD A,C
+ CP 012H
+ JR Z,L50B9 ; (+01aH)
+ CP 0FEH
+ JP NZ,04B07H
+ POP BC
+ CALL L413E
+ EX DE,HL
+ POP HL
+ LD (L8483),HL
+ POP HL
+ LD (L847D),HL
+ POP HL
+ PUSH IX
+ RET Z
+ EX DE,HL
+ JP L5147
+
+L50B9: EX DE,HL
+ LD HL,L0012
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ JR L5093 ; (-02fH)
+
+L50C2: PUSH HL
+ CALL L4F8A
+ EX DE,HL
+ POP HL
+ POP BC
+ PUSH DE
+ EXX
+ LD HL,(L847D)
+ PUSH HL
+ LD HL,(L8483)
+ PUSH HL
+ LD HL,0FFFEH
+ PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(TMPEND)
+ SBC HL,DE
+ LD A,00AH
+ JP C,L4B2E
+ EXX
+ PUSH BC
+ JR L5147 ; (+05dH)
+
+L50EA: CALL TEST1
+ DB 0C1H
+ JP Z,L4C66
+ CALL L6E5F
+ LD C,E
+ LD B,D
+ CP 087H
+ JP NC,L4AEC
+ CP 082H
+ JR NZ,L510F ; (+010H)
+ CALL INCHLF
+ LD E,081H
+ CP LSE4
+ JR Z,L510E ; (+006H)
+ CP LSE0
+ JP NZ,L4AEC
+ DEC E
+L510E: LD A,E
+L510F: PUSH HL
+ LD HL,L43EC
+ SUB 080H
+ ADD A,A
+ LD E,A
+ LD D,000H
+ ADD HL,DE
+ CALL INDRCT
+ EX (SP),HL
+ INC HL
+ LD A,B
+ OR A
+ JR NZ,L5143 ; (+020H)
+ LD A,C
+ OR A
+ JR Z,L5143 ; (+01cH)
+ LD B,A
+L5128: DEC B
+ RET Z
+ CALL HLFTCH
+ CALL L5173
+ JP NZ,L4AEC
+ CALL L51A8
+ OR A
+ RET Z
+ INC HL
+ CALL TEST1
+ DB 02CH
+ JR Z,L5128 ; (-017H)
+ POP DE
+ JP 05E48H
+
+L5143: POP DE
+ JP L4F8A
+
+L5147: CALL L45AA
+ EX DE,HL
+ JR NZ,L5150 ; (+003H)
+ LD HL,(TEXTST)
+L5150: LD (L847D),HL
+ XOR A
+ LD (L4B78),A
+ JP L40E4
+
+L515A: CALL L6E8A
+ EX AF,AF'
+ LD A,(DE)
+ OR A
+ JR Z,L5182 ; (+020H)
+ EX AF,AF'
+ CP LSE2
+ JR NZ,L516F ; (+008H)
+L5167: CALL INCHLF
+ CALL L5173
+ JR Z,L5147 ; (-028H)
+L516F: POP AF
+ JP L40AF
+
+L5173: CP 022H
+ RET Z
+L5176: CP 00BH
+ RET Z
+ CP 00CH
+ RET
+
+L517C: CALL L518B
+ JR NC,L517C ; (-005H)
+ RET
+
+L5182: DEC HL
+ CALL L518B
+ JR NC,L5167 ; (-021H)
+ DB 0C3H
+ POP HL
+ LD B,B
+L518B: CALL L51A2
+ OR A
+ SCF
+ RET Z
+ CP 0C2H
+ RET Z
+ CP 093H
+ JR NZ,L518B ; (-00dH)
+ CALL L518B
+ RET C
+ JR L518B ; (-013H)
+
+L519E: INC HL
+ LD A,(HL)
+ JR L51A8 ; (+006H)
+
+L51A2: INC HL
+ LD A,(HL)
+ CP 094H
+ JR Z,L51C7 ; (+01fH)
+L51A8: OR A
+ RET Z
+ CP 022H
+ JR Z,L51E5 ; (+037H)
+ CP 0FEH
+ JR NC,L51C5 ; (+013H)
+ CP 097H
+ JR Z,L51C7 ; (+011H)
+ CP 027H
+ JR Z,L51C7 ; (+00dH)
+ CP 020H
+ RET NC
+ CP 00BH
+ RET C
+ CP 015H
+ JR NC,L51DC ; (+018H)
+ INC HL
+L51C5: INC HL
+ RET
+
+L51C7: LD A,(HL)
+ OR A
+ RET Z
+ CP 03AH
+ RET Z
+ CP 022H
+ JR Z,L51D4 ; (+003H)
+ INC HL
+ JR L51C7 ; (-00dH)
+
+L51D4: CALL L51E5
+ OR A
+ RET Z
+ INC HL
+ JR L51C7 ; (-015H)
+
+L51DC: AND 00FH
+ ADD A,L
+ LD L,A
+ LD A,020H
+ RET NC
+ INC H
+ RET
+
+L51E5: INC HL
+ LD A,(HL)
+ OR A
+ RET Z
+ CP 022H
+ RET Z
+ JR L51E5 ; (-009H)
+
+L51EE: OR 0AFH
+ PUSH AF
+ LD B,031H
+ LD C,04FH
+ CALL L4FDA
+ PUSH AF
+ CALL L523F
+ POP AF
+ JR C,L523D ; (+03eH)
+ LD A,C
+ LD (0522BH),A
+ LD B,001H
+ SRL E
+ JR NC,L520B ; (+002H)
+ SLA B
+L520B: SRL D
+ JR NC,L5213 ; (+004H)
+ SLA B
+ SLA B
+L5213: EX DE,HL
+ RST 018H
+ DB 01EH
+ CALL BREAKX
+ CP 0F0H
+ JR NC,L521F ; (+002H)
+ LD A,0F0H
+L521F: LD C,A
+ POP AF
+ JR Z,L5235 ; (+012H)
+ SET 3,H
+ CALL BREAKX
+ AND 08FH
+ OR 000H
+ CALL POPRA
+ RES 3,H
+ LD A,C
+ OR B
+ JR L5238 ; (+003H)
+
+L5235: LD A,B
+ CPL
+ AND C
+L5238: CALL POPRA
+ EX DE,HL
+ RET
+
+L523D: POP AF
+ RET
+
+L523F: LD A,(L005D)
+ AND 070H
+ LD C,A
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ PUSH DE
+ CALL L552C
+ POP DE
+ RLCA
+ RLCA
+ RLCA
+ RLCA
+ LD C,A
+ RET
+
+L5255: RST 018H
+ DB 020H
+ RET
+
+L5258: CALL 05E48H
+ RST 018H
+ DB 028H
+ RST 018H
+ DB 000H
+ RET
+
+L5260: JR Z,L5285 ; (+023H)
+ LD A,001H
+ LD (L004E),A
+ LD A,(L0056)
+ LD B,019H
+ CALL L5298
+ LD (00056H),BC
+ CALL TEST1
+ DB 02CH
+ RET NZ
+ LD B,028H
+ LD A,(L005B)
+ CALL L5298
+ LD (0005BH),BC
+ RET
+
+L5285: XOR A
+ LD (L004E),A
+ LD BC,L1800
+ LD (00056H),BC
+ LD BC,L2700
+ LD (0005BH),BC
+ RET
+
+L5298: LD D,000H
+ LD E,A
+ CALL TEST1
+ DB 02CH
+ JR Z,L52A9 ; (+008H)
+ PUSH BC
+ CALL L6E4B
+ POP BC
+ CALL L5E70
+L52A9: LD C,E
+ PUSH BC
+ CALL L6E4B
+ POP BC
+ DEC A
+ JP M,04AF2H
+ ADD A,C
+ CP B
+ JP NC,04AF2H
+ LD B,A
+ RET
+
+L52BA: DI
+ OUT (LSE4),A
+ JP L0000
+
+L52C0: XOR A
+ LD BC,?SETDE
+ LD (L53A8),A
+ PUSH AF
+ CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,04B28H
+ BIT 1,A
+ JP Z,04B28H
+ CALL TEST1
+ DB 02CH
+ POP AF
+ OR A
+ JR NZ,L52F2 ; (+015H)
+ CALL L6E6F
+ LD A,B
+ LD (L53A3),A
+ LD (053A4H),DE
+ CALL 05E48H
+ JR L52F2 ; (+005H)
+
+L52ED: LD A,002H
+ LD (L53A8),A
+L52F2: CALL L4664
+ LD (05319H),DE
+ LD (05327H),BC
+ LD A,0FFH
+ LD (DISPX),A
+ CALL SKPDE
+ LD HL,(TEXTST)
+L5308: CALL LDDEMI
+ LD A,D
+ OR E
+ RET Z
+ EX DE,HL
+ ADD HL,DE
+ DEC HL
+ DEC HL
+ EX DE,HL
+ PUSH DE
+ CALL LDDEMI
+ PUSH HL
+ LD HL,L0000
+ OR A
+ SBC HL,DE
+ JR C,L5326 ; (+006H)
+ JR Z,L5326 ; (+004H)
+ POP HL
+ POP HL
+ JR L5308 ; (-01eH)
+
+L5326: LD HL,L0000
+ OR A
+ SBC HL,DE
+ JR NC,L5331 ; (+003H)
+ POP HL
+ POP HL
+ RET
+
+L5331: EX DE,HL
+ CALL L5E66
+ RST 018H
+ DB 017H
+ LD HL,KEYBUF
+ CALL LDHLDE
+ LD (HL),020H
+ INC HL
+ EX DE,HL
+ POP HL
+ CALL L68E0
+ LD A,(L53A8)
+ OR A
+ JR NZ,L5350 ; (+005H)
+ CALL L5366
+ JR NC,L535A ; (+00aH)
+L5350: LD DE,KEYBUF
+ RST 018H
+ DB 017H
+ RST 018H
+ DB 037H
+ CALL L5733
+L535A: POP HL
+ LD A,(L53A8)
+ CP 002H
+ JR Z,L5308 ; (-05aH)
+ RST 018H
+ DB 00FH
+ JR L5308 ; (-05eH)
+
+L5366: EX DE,HL
+L5367: PUSH HL
+ CALL L5371
+ POP HL
+ RET C
+ RET Z
+ INC HL
+ JR L5367 ; (-00aH)
+
+L5371: LD A,(L53A3)
+ LD B,A
+ LD DE,(053A4H)
+L5379: LD A,(HL)
+ INC HL
+ OR A
+ RET Z
+ CP 005H
+ JR Z,L5385 ; (+004H)
+ CP 006H
+ JR NZ,L5387 ; (+002H)
+L5385: JR L5379 ; (-00eH)
+
+L5387: PUSH HL
+ LD C,A
+L5389: LD A,(DE)
+ INC DE
+ CP 005H
+ JR Z,L5393 ; (+004H)
+ CP 006H
+ JR NZ,L539A ; (+007H)
+L5393: DEC B
+ SCF
+ POP HL
+ RET Z
+ PUSH HL
+ JR L5389 ; (-011H)
+
+L539A: SUB C
+ POP HL
+ OR A
+ RET NZ
+ DEC B
+ SCF
+ RET Z
+ JR L5379 ; (-02aH)
+
+L53A3: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L53A8: NOP
+L53A9: CALL TESTX
+ DB 087H
+ CALL L5E4F
+ PUSH HL
+ LD C,000H
+L53B3: RST 018H
+ DB 008H
+ LD A,C
+ ADD A,031H
+ LD D,A
+ LD E,020H
+ CP 03AH
+ JR NZ,L53C2 ; (+003H)
+ LD DE,L3031
+L53C2: LD (05445H),DE
+ LD DE,L543D
+ RST 018H
+ DB 00BH
+ LD A,C
+ CALL L549C
+ LD B,(HL)
+ INC HL
+ PUSH BC
+ CALL L53E0
+ POP BC
+ INC C
+ LD A,C
+ CP 00AH
+ JR NZ,L53B3 ; (-029H)
+ RST 018H
+ DB 008H
+ POP HL
+ RET
+
+L53E0: LD A,B
+ OR A
+ LD C,000H
+ JR NZ,L53ED ; (+007H)
+ LD A,022H
+ RST 018H
+ DB 00AH
+ RST 018H
+ DB 00AH
+ RET
+
+L53ED: LD A,(HL)
+ CP 020H
+ JR C,L5412 ; (+020H)
+ CP 022H
+ JR Z,L5412 ; (+01cH)
+ LD A,C
+ CP 001H
+ JR Z,L5405 ; (+00aH)
+ OR A
+ LD DE,L544A
+ JR NZ,L5403 ; (+002H)
+ INC DE
+ INC DE
+L5403: RST 018H
+ DB 00BH
+L5405: LD A,(HL)
+ RST 018H
+ DB 00AH
+ INC HL
+ LD C,001H
+ DJNZ L53ED ; (-020H)
+ LD A,022H
+L540F: RST 018H
+ DB 00AH
+ RET
+
+L5412: LD A,C
+ CP 0FFH
+ JR Z,L5437 ; (+020H)
+ OR A
+ LD DE,0544EH
+ JR NZ,L541F ; (+002H)
+ INC DE
+ INC DE
+L541F: RST 018H
+ DB 00BH
+L5421: PUSH BC
+ PUSH HL
+ LD L,(HL)
+ LD H,000H
+ CALL L5E66
+ RST 018H
+ DB 00BH
+ POP HL
+ POP BC
+ INC HL
+ LD C,0FFH
+ DJNZ L53ED ; (-045H)
+ LD A,029H
+ JP L540F
+
+L5437: LD A,02CH
+ RST 018H
+ DB 00AH
+ JR L5421 ; (-01cH)
+
+L543D: LD B,H
+ LD B,L
+ LD B,(HL)
+ JR NZ,L548D ; (+04bH)
+ LD B,L
+ LD E,C
+ JR Z,L5446 ; (+000H)
+L5446: NOP
+ ADD HL,HL
+ DEC A
+ NOP
+L544A: ADD HL,HL
+ DEC HL
+ LD (L2200),HL
+ DEC HL
+ LD B,E
+ LD C,B
+ LD D,D
+ INC H
+ JR Z,L5456 ; (+000H)
+L5456: CALL TEST1
+ DB 0B2H
+ JR Z,L5467 ; (+00bH)
+ CALL TESTX
+ DB 0FFH
+L5460: CALL TESTX
+ DB 0C7H
+ JP L7824
+
+L5467: CALL TESTX
+ DB 028H
+ CALL L6E4B
+ CALL TESTX
+ DB 029H
+ CALL TESTX
+ DB QDPC
+ LD A,E
+ DEC A
+ CP 00AH
+ JP NC,04AF2H
+ PUSH HL
+ CALL L549C
+ EX (SP),HL
+ CALL L6E6F
+ EX (SP),HL
+ LD A,B
+ CP 010H
+ JR C,L548D ; (+002H)
+ LD A,00FH
+L548D: LD (HL),A
+ OR A
+ JR Z,L5499 ; (+008H)
+ LD B,A
+ INC HL
+L5493: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L5493 ; (-006H)
+L5499: POP HL
+ EI
+ RET
+
+L549C: ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ LD HL,L12C0
+ JP ADDHLA
+
+L54A6: CALL TEST1
+ DB 02CH
+ JR NZ,L54B4 ; (+008H)
+ CALL L5E70
+ LD DE,L005D
+ JR L54C0 ; (+00cH)
+
+L54B4: CALL L4FCF
+ CALL L5E70
+ EX DE,HL
+ RST 018H
+ DB 01EH
+ SET 3,H
+ EX DE,HL
+L54C0: EX DE,HL
+ CALL BREAKX
+ EX DE,HL
+ PUSH DE
+ CALL L54D0
+ POP DE
+ EX DE,HL
+ CALL POPRA
+ EX DE,HL
+ RET
+
+L54D0: LD C,A
+ CALL TEST1
+ DB 02CH
+ JR Z,L54E9 ; (+012H)
+ CALL L552C
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ ADD A,A
+ XOR C
+ AND 070H
+ XOR C
+ LD C,A
+ CALL TEST1
+ DB 02CH
+ JR NZ,L54FA ; (+011H)
+L54E9: CALL L413E
+ JR Z,L54FA ; (+00cH)
+ CP 05DH
+ JR Z,L54FA ; (+008H)
+ CALL L552C
+ XOR C
+ AND 007H
+ XOR C
+ RET
+
+L54FA: LD A,C
+ RET
+
+L54FC: INC HL
+L54FD: CALL L6E6F
+ LD A,B
+ OR A
+ JR Z,L5513 ; (+00fH)
+ PUSH HL
+ LD HL,KEYBUF
+ PUSH HL
+ CALL LDHLDE
+ LD (HL),00DH
+ POP DE
+ CALL L0030
+ POP HL
+L5513: CALL HLFTCH
+ CP 03BH
+ JR Z,L54FC ; (-01eH)
+ CP 02CH
+ JR Z,L54FC ; (-022H)
+ RET
+
+L551F: CALL L6E4B
+ DEC A
+ CP 007H
+ JP NC,04AF2H
+ INC A
+ JP L0041
+
+L552C: PUSH BC
+ CALL L6E4B
+ POP BC
+ CP 008H
+ JP NC,04AF2H
+ RET
+
+L5537: RST 018H
+ DB 045H
+ RET
+
+ DS 198, 000H
+L5600: LD A,(ZLOG)
+ CP 088H
+ RET
+
+L5606: CALL L6E8A
+ LD A,(L84CE)
+ CP 003H
+ PUSH HL
+ EX DE,HL
+ JR Z,L5619 ; (+007H)
+ CALL L6028
+ POP HL
+ RST 018H
+ DB 017H
+ RET
+
+L5619: CALL L6E7E
+ POP HL
+ RET
+
+L561E: LD A,(L005D)
+ LD (0574DH),A
+ XOR A
+ LD (DISPX),A
+ CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 2,A
+ JP NZ,L5D18
+ BIT 1,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L5600
+ JR NZ,L5655 ; (+013H)
+ CALL TEST1
+ DB 05BH
+ JR NZ,L5655 ; (+00dH)
+ LD A,(0574DH)
+ CALL L54D0
+ LD (0574DH),A
+ CALL TESTX
+ DB 05DH
+L5655: CALL L413E
+ JP Z,L5733
+L565B: LD A,(HL)
+ CP LSE3
+ JR Z,L56DA ; (+07aH)
+ LD BC,L5674
+ PUSH BC
+ CP 03BH
+ RET Z
+ CP 02CH
+ RET Z
+ CP LSE6
+ JR Z,L56AA ; (+03cH)
+ CALL L5606
+ JP L573E
+
+L5674: CALL L413E
+ JP Z,L5733
+ CP 02CH
+ JR NZ,L569A ; (+01cH)
+ CALL L5600
+ JR C,L5697 ; (+014H)
+ LD IX,(ZDELT)
+ CALL IOCALL
+ LD B,A
+L568B: SUB 00AH
+ JR NC,L568B ; (-004H)
+ NEG
+ LD B,A
+ CALL L56CC
+ JR L569A ; (+003H)
+
+L5697: CALL L5733
+L569A: LD A,(HL)
+ CP 02CH
+ JR Z,L56A1 ; (+002H)
+ CP 03BH
+L56A1: JR NZ,L56A4 ; (+001H)
+ INC HL
+L56A4: CALL L413E
+ RET Z
+ JR L565B ; (-04fH)
+
+L56AA: CALL L5600
+ JP C,057B7H
+ CALL L5E77
+ CALL L6E4B
+ CALL L5E7F
+ LD IX,(ZDELT)
+ CALL IOCALL
+ SUB E
+ RET NC
+ NEG
+ LD B,A
+ CALL L5600
+ LD A,013H
+ JR Z,L56CE ; (+002H)
+L56CC: LD A,020H
+L56CE: LD DE,KEYBUF
+ PUSH BC
+ PUSH DE
+ CALL ?SETDE
+ POP DE
+ POP BC
+ JR L573E ; (+064H)
+
+L56DA: INC HL
+ CALL L6E6F
+ LD A,B
+ OR A
+ JP Z,04AF2H
+ PUSH HL
+ LD HL,KEYBUF
+ PUSH HL
+ PUSH BC
+ CALL LDHLDE
+ POP BC
+ LD A,0F0H
+ LD E,B
+ LD D,000H
+ INC DE
+ RST 018H
+ DB 02AH
+ LD (L6306),HL
+ LD (L6308),HL
+ POP DE
+ CALL LDHLDE
+ LD (HL),000H
+ POP HL
+L5702: CALL L413E
+ JR Z,L5729 ; (+022H)
+ INC HL
+ CP 02CH
+ JR Z,L5711 ; (+005H)
+ CP 03BH
+ JP NZ,L4AEC
+L5711: CALL L413E
+ JR Z,L572C ; (+016H)
+ CALL L6E92
+ PUSH HL
+ LD BC,(TMPEND)
+ PUSH BC
+ CALL L630A
+ POP DE
+ CALL L573C
+ POP HL
+ JR L5702 ; (-027H)
+
+L5729: CALL L5733
+L572C: LD A,0F0H
+ RST 018H
+ DB 02BH
+ RET
+
+L5731: DEC C
+ NOP
+L5733: LD A,(L005D)
+ LD (0574DH),A
+ LD DE,L5731
+L573C: RST 018H
+ DB 017H
+L573E: CALL L5600
+ JR Z,L5746 ; (+003H)
+ RST 018H
+ DB 037H
+ RET
+
+L5746: PUSH HL
+ PUSH BC
+ LD HL,L005D
+ LD C,(HL)
+ LD (HL),070H
+ RST 018H
+ DB 037H
+ LD (HL),C
+ POP BC
+ POP HL
+ RET
+
+L5754: LD A,08AH
+ LD (ZLOG),A
+ JR L5792 ; (+037H)
+
+L575B: CALL L5882
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 2,A
+ JP NZ,L5D29
+ BIT 0,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L5600
+ JR NZ,L5792 ; (+01dH)
+ CALL HLFTCH
+ CP 022H
+ LD DE,L57BC
+ LD B,002H
+ JR NZ,L5788 ; (+007H)
+ CALL L6E6F
+ CALL TESTX
+ DB 03BH
+L5788: LD A,B
+ OR A
+ JR Z,L5792 ; (+006H)
+L578C: LD A,(DE)
+ INC DE
+ RST 018H
+ DB 003H
+ DJNZ L578C ; (-006H)
+L5792: LD (057EBH),SP
+ LD DE,(VARED)
+ LD (TMPEND),DE
+L579E: LD DE,(TMPEND)
+ CALL L74E8
+ CALL L7436
+ PUSH AF
+ PUSH BC
+ CALL L413E
+ JR Z,057BEH ; (+00fH)
+ CALL L5E73
+ JR L579E ; (-016H)
+
+L57B4: LD A,02CH
+ LD HL,0BB3EH
+ JP L0182
+
+L57BC: CCF
+ JR NZ,0576EH ; (-051H)
+ PUSH AF
+ PUSH HL
+ RST 018H
+ DB 034H
+ LD HL,(057EBH)
+ DEC HL
+L57C7: LD A,(HL)
+ OR A
+ JR Z,L57E9 ; (+01eH)
+ DEC HL
+ DEC HL
+ LD B,(HL)
+ DEC HL
+ LD C,(HL)
+ DEC HL
+ PUSH HL
+ PUSH AF
+ PUSH BC
+ LD DE,(TMPEND)
+ CALL L57EE
+ LD H,000H
+ LD L,B
+ ADD HL,DE
+ LD (HL),000H
+ POP DE
+ POP AF
+ CALL L57F8
+ POP HL
+ JR L57C7 ; (-022H)
+
+L57E9: POP HL
+ LD SP,L0000
+ RET
+
+L57EE: LD A,(ZLOG)
+ CP 08AH
+ JR Z,L5839 ; (+044H)
+ RST 018H
+ DB 035H
+ RET
+
+L57F8: CP 003H
+ JR NZ,L5803 ; (+007H)
+ LD HL,(TMPEND)
+ LD A,B
+$START: JP L4CD2 ; $START - BASIC warm start / system entry
+
+L5803: PUSH DE
+ LD HL,(INTFAC)
+ LD DE,(TMPEND)
+ EX DE,HL
+ CALL HLFTCH
+ CP 045H
+ JP Z,04AF2H
+ EX DE,HL
+ CALL L5EDC
+ EX DE,HL
+ CALL TEST1
+ DB 000H
+ JP NZ,04AF2H
+ EX DE,HL
+ POP DE
+ JP L5E93
+
+L5825: XOR A
+ JR L587E ; (+056H)
+
+L5828: CALL L5825
+ CALL L413E
+ CALL NZ,L45AA
+ EX DE,HL
+ CALL NZ,L5869
+ EX DE,HL
+ JP L4F8A
+
+L5839: PUSH HL
+ PUSH DE
+ CALL L5847
+ POP DE
+ POP HL
+ RET
+
+L5841: LD HL,(TEXTST)
+ CALL L5869
+L5847: LD A,(L848F)
+ CP 001H
+ JP Z,04B1FH
+ JR C,L5841 ; (-010H)
+ LD HL,(L8490)
+ LD C,03AH
+ RST 018H
+ DB 036H
+ LD (L8490),HL
+ CALL L413E
+ SCF
+ CCF
+ RET NZ
+ DEC HL
+L5862: CALL L519E
+ OR A
+ JR NZ,L5874 ; (+00cH)
+ INC HL
+L5869: LD A,(HL)
+ INC HL
+ OR (HL)
+ LD A,001H
+ JR Z,L587E ; (+00eH)
+ INC HL
+ INC HL
+ JR L5862 ; (-012H)
+
+L5874: CP 094H
+ JR NZ,L5862 ; (-016H)
+ INC HL
+ LD (L8490),HL
+ LD A,002H
+L587E: LD (L848F),A
+ RET
+
+L5882: CALL TEST1
+ DB 023H
+ JR NZ,L58AD ; (+025H)
+ CALL HLFTCH
+ CP 020H
+ JP NC,L4AEC
+ PUSH DE
+ PUSH BC
+ LD DE,L84CF
+ PUSH DE
+ CALL L705A
+ EX (SP),HL
+ CALL L60B7
+ LD A,H
+ OR A
+ JP NZ,04B28H
+ OR L
+ JP Z,04B28H
+ JP M,04B28H
+ POP HL
+ POP BC
+ POP DE
+ RET
+
+L58AD: CALL TEST1
+ DB FDPD
+ LD A,088H
+ RET NZ
+ CALL TEST1
+ DB 050H
+ LD A,089H
+ RET Z
+ CALL TESTX
+ DB 054H
+ LD A,080H
+ RET
+
+L58C2: LD A,(ZLOG)
+ OR A
+ RET M
+ JP L5E70
+
+L58CA: JP DBG_DIRCMD1 ; Debug hook: DIR handler 1 (via L593A)
+ NOP
+ NOP
+ NOP
+
+L58D0: JP DBG_DIRCMD2 ; Debug hook: DIR handler 2 (via L6E6F)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L58D8: PUSH HL
+ RST 018H
+ DB 02CH
+ RST 018H
+ DB 03CH
+ POP HL
+ RET
+
+L58DF: LD A,001H
+ LD BC,0023EH
+ LD BC,0043EH
+ PUSH AF
+ LD (ZRWX),A
+ CALL L5882
+ CP 088H
+ JR NZ,L58F4 ; (+002H)
+ LD A,080H
+L58F4: LD (ZLOG),A
+ CALL L58C2
+ CALL L592D
+ POP AF
+ CP 004H
+ JR Z,L5904 ; (+002H)
+L5902: LD A,003H
+L5904: LD (ELMD),A
+ PUSH AF
+ RST 018H
+ DB 033H
+ LD A,(ELMD)
+ POP BC
+ CP B
+ JP NZ,04B53H
+ RET
+
+L5913: OR 0AFH
+ LD B,A
+ CALL L413E
+ JR Z,L5929 ; (+00eH)
+L591B: CALL L5882
+ CP 088H
+ RET NC
+ RST 018H
+ DB 038H
+ CALL TEST1
+ DB 02CH
+ JR L591B ; (-00eH)
+
+L5929: XOR A
+ RST 018H
+ DB 038H
+ RET
+
+L592D: CALL L46A6
+ LD B,000H
+ CALL NZ,L6E6F
+ PUSH HL
+ RST 018H
+ DB 02DH
+ POP HL
+ RET
+
+L593A: PUSH HL
+ CALL HLFTCH
+ LD DE,L5982
+ LD B,001H
+ CALL L5975
+ CALL NC,L5975
+ JR C,L5962 ; (+017H)
+ CALL L5975
+ CALL L5EC4
+ CALL L597B
+ CALL L413E
+ JR NZ,L5962 ; (+009H)
+ LD A,03AH
+ LD (DE),A
+ POP AF
+ JP RFS_DIR_FIX
+ NOP
+ NOP
+
+L5962: POP HL
+ CALL L413E
+ LD B,000H
+ CALL NZ,L6E6F
+L596B: JP DBG_DIR ; Debug hook: trace SVC #2C for DIR
+ NOP ; (was: PUSH HL / RST 018H / DB 02CH / INC(HL) / DEC(HL) / JP NZ / POP HL / RET)
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+ NOP
+
+L5975: CP 041H
+ RET C
+ CP 05BH
+ CCF
+L597B: RET C
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ INC B
+ RET
+
+L5982: NOP
+ NOP
+ NOP
+ NOP
+L5986: CALL L592D
+ CALL TEST1
+ DB 02CH
+ JP Z,L5A47
+ PUSH HL
+ CALL L5BDC
+ DEC A
+ JR Z,L59A9 ; (+012H)
+ DEC A
+ JP NZ,04B53H
+ CALL L5C08
+ CALL L5BE5
+ CALL L5C11
+ CALL L5C44
+ POP HL
+ RET
+
+L59A9: LD HL,(ELMD22)
+ PUSH HL
+ LD DE,(MEMLMT)
+ CALL L59CF
+ LD DE,(ELMD20)
+ LD BC,(MEMMAX)
+ CALL NC,L59CA
+ JP C,04B13H
+ POP HL
+ RST 018H
+ DB 030H
+ CALL L5C44
+ POP HL
+ RET
+
+L59CA: ADD HL,DE
+ RET C
+ EX DE,HL
+ LD H,B
+ LD L,C
+L59CF: PUSH HL
+ OR A
+ SBC HL,DE
+ POP HL
+ RET
+
+L59D5: CALL L592D
+ CALL L5BDC
+ CP 002H
+ JP NZ,04B53H
+ LD A,(L849A)
+ OR A
+ JP Z,L5B0D
+ JP L5DB2
+
+L59EA: CALL L5C08
+ CALL L592D
+ CALL TEST1
+ DB 02CH
+ JR Z,05A4DH ; (+057H)
+ RST 018H
+ DB 02FH
+ CP 002H
+ JP NZ,04B53H
+ PUSH HL
+ LD HL,(VARED)
+ LD (TMPEND),HL
+ LD BC,003E8H
+ ADD HL,BC
+ JP C,L4B2C
+ PUSH HL
+ LD BC,(ELMD20)
+ INC B
+ ADD HL,BC
+ JP C,L4B2C
+ SBC HL,SP
+ JP NC,L4B2C
+ POP HL
+ PUSH HL
+ RST 018H
+ DB 030H
+ POP HL
+ CALL L5A24
+ POP HL
+ RET
+
+L5A24: CALL LDDEMI
+ LD A,D
+ OR E
+ RET Z
+ PUSH DE
+ CALL LDDEMI
+ PUSH HL
+ LD H,D
+ LD L,E
+ LD (L847F),HL
+ CALL L49B9
+ POP HL
+ POP BC
+ PUSH BC
+ PUSH HL
+ CALL L4794
+ POP HL
+ POP BC
+ ADD HL,BC
+ DEC HL
+ DEC HL
+ DEC HL
+ DEC HL
+ JR L5A24 ; (-023H)
+
+L5A47: CALL L5C08
+ LD A,001H
+ LD BC,L003E
+ LD BC,0023EH
+ PUSH AF
+ CALL TESTX
+ DB 041H
+ CALL 05E48H
+ LD A,001H
+ LD (ZRWX),A
+ LD A,081H
+ LD (ZLOG),A
+ CALL L5902
+ POP AF
+ PUSH AF
+ PUSH HL
+ LD HL,L0000
+ LD DE,0FFFFH
+ OR A
+ CALL NZ,L49B9
+ LD A,081H
+ RST 018H
+ DB 02EH
+ LD HL,(VARED)
+ LD (TMPEND),HL
+ LD BC,003E8H
+ ADD HL,BC
+ JP C,04AFBH
+ PUSH HL
+ LD (L5AEB),HL
+L5A89: LD HL,0FE00H
+ ADD HL,SP
+ LD DE,(05AEBH)
+ SBC HL,DE
+ JP C,04AFBH
+ LD DE,(TMPEND)
+ RST 018H
+ DB 035H
+ LD A,B
+ OR A
+ JR Z,L5AD6 ; (+036H)
+ CALL L6A11
+ LD A,B
+ OR C
+ JP Z,04AF2H
+ LD HL,(L5AEB)
+ PUSH HL
+ INC HL
+ INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ PUSH HL
+ LD H,D
+ LD L,E
+ CALL TEST1
+ DB 000H
+ JP Z,04AF2H
+ POP HL
+ LD A,(DE)
+ CP 020H
+ JR NZ,L5AC3 ; (+001H)
+ INC DE
+L5AC3: CALL L66EF
+ LD (HL),000H
+ INC HL
+ LD (L5AEB),HL
+ POP DE
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ JR L5A89 ; (-04dH)
+
+L5AD6: LD HL,(L5AEB)
+ CALL L4952
+ CALL L4928
+ POP HL
+ CALL L5A24
+ POP HL
+ POP AF
+ CP 002H
+ RET NZ
+ JP L480D
+
+L5AEB: NOP
+ NOP
+L5AED: CALL L592D
+ PUSH HL
+ CALL TEST1
+ DB 02CH
+ JR NZ,L5AFF ; (+008H)
+ CALL HLFTCH
+ CP 041H
+ JP Z,05A50H
+L5AFF: CALL L5BDC
+ POP HL
+ DEC A
+ JR Z,L5B16 ; (+010H)
+ DEC A
+ JP NZ,04B53H
+ CALL L5BE5
+L5B0D: CALL L5C11
+ CALL L5C44
+ JP L480D
+
+L5B16: LD D,0C9H
+ LD BC,0FF00H
+ CALL TEST1
+ DB 02CH
+ JR NZ,L5B2A ; (+009H)
+ CALL TESTX
+ DB 052H
+ LD D,000H
+ LD BC,0CF00H
+L5B2A: LD A,D
+ LD (L5B93),A
+ LD HL,(ELMD20)
+ LD DE,(ELMD22)
+ PUSH HL
+ CALL L59CA
+ POP DE
+ LD HL,(TEXTST)
+ LD BC,0FF00H
+ CALL NC,L59CA
+ JP C,L4B2C
+ LD SP,L0000
+ CALL L4930
+ XOR A
+ LD (L5C07),A
+ LD HL,(ELMD24)
+ PUSH HL
+ LD DE,(ELMD20)
+ PUSH DE
+ LD HL,(TMPEND)
+ RST 018H
+ DB 030H
+ LD A,004H
+ RST 018H
+ DB 003H
+ LD A,016H
+ RST 018H
+ DB 003H
+ POP BC
+ PUSH BC
+ LD DE,(ELMD22)
+ CALL L59CF
+ LD A,0B0H
+ JR NC,L5B7B ; (+008H)
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ EX DE,HL
+ ADD HL,BC
+ DEC HL
+ LD A,0B8H
+L5B7B: LD (05B92H),A
+ DI
+ PUSH HL
+ PUSH DE
+ LD BC,00016H
+ LD HL,L5B8E
+ LD DE,0FF80H
+ PUSH DE
+ LDIR
+ RET
+
+L5B8E: POP DE
+ POP HL
+ POP BC
+ LDIR
+L5B93: RET
+
+ POP BC
+ LD SP,VRAM
+ EX DE,HL
+ PUSH BC
+ PUSH HL
+ LD (HL),LSD3
+ INC HL
+ LD (HL),LSE4
+ INC HL
+ LD (HL),0C9H
+ RET
+
+L5BA4: LD HL,(VARED)
+ LD (TMPEND),HL
+ LD DE,(TEXTED)
+ LD (05C01H),DE
+ OR A
+ SBC HL,DE
+ LD (L5C03),HL
+ LD HL,0FF00H
+ ADD HL,SP
+ LD (L5C05),HL
+ LD DE,(VARED)
+ PUSH HL
+ OR A
+ SBC HL,DE
+ JP C,L4B2C
+ EX (SP),HL
+ EX DE,HL
+ LD BC,(05C03H)
+ INC BC
+ LDDR
+ POP DE
+ RST 018H
+ DB 018H
+ LD A,001H
+ LD (L5C07),A
+ RET
+
+L5BDC: CALL L5BA4
+ RST 018H
+ DB 02FH
+ LD A,(ELMD)
+ RET
+
+L5BE5: LD HL,(VARED)
+ XOR A
+ DEC HL
+ LD (HL),A
+ DEC HL
+ LD (HL),A
+ LD (STRST),HL
+ DEC HL
+ LD (HL),A
+ LD (VARST),HL
+ DEC HL
+ LD (HL),A
+ LD (TEXTED),HL
+ LD HL,00004H
+ LD (L5C03),HL
+ RET
+
+L5C01: NOP
+ NOP
+L5C03: NOP
+ NOP
+L5C05: NOP
+ NOP
+L5C07: NOP
+L5C08: PUSH AF
+ CALL L4146
+ JP NZ,04B16H
+ POP AF
+ RET
+
+L5C11: LD BC,(ELMD20)
+ PUSH BC
+ LD HL,(TEXTED)
+ LD DE,(TEXTST)
+ OR A
+ SBC HL,DE
+ LD L,000H
+ SBC HL,BC
+ JP C,L4B2C
+ LD HL,L0000
+ LD (L5C01),HL
+ CALL L4821
+ LD HL,L0000
+ LD (L8483),HL
+ LD HL,(TEXTST)
+ RST 018H
+ DB 030H
+ POP BC
+ LD HL,(TEXTST)
+ ADD HL,BC
+ LD (L5C01),HL
+ RET
+
+L5C44: LD A,081H
+ LD B,000H
+ RST 018H
+ DB 038H
+ LD HL,L5C07
+ LD A,(HL)
+ OR A
+ RET Z
+ LD (HL),000H
+ LD HL,(L5C01)
+ LD A,H
+ OR L
+ JR NZ,L5C5F ; (+006H)
+ LD HL,(TEXTST)
+ CALL L4952
+L5C5F: EX DE,HL
+ LD HL,(TEXTED)
+ LD BC,(05C03H)
+ LDIR
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ RST 018H
+ DB 018H
+ RET
+
+L5C71: PUSH HL
+ CALL L46C0
+ POP HL
+ CALL L592D
+ PUSH HL
+ RST 018H
+ DB 02FH
+ CP 002H
+ JP NZ,04B53H
+ LD HL,(TEXTST)
+ RST 018H
+ DB 032H
+ POP HL
+ RET
+
+L5C88: PUSH HL
+ CALL L46C0
+ POP HL
+ CALL L592D
+ CALL TEST1
+ DB 02CH
+ JR Z,L5CB5 ; (+01fH)
+ PUSH HL
+ LD A,002H
+ LD (ELMD),A
+ LD HL,(TEXTED)
+ LD DE,(TEXTST)
+ OR A
+ SBC HL,DE
+ LD (ELMD20),HL
+ LD A,(ELMD1)
+ CP 00DH
+ JP Z,04B50H
+ RST 018H
+ DB 031H
+ POP HL
+ RET
+
+L5CB5: CALL TESTX
+ DB 041H
+ PUSH HL
+ LD A,002H
+ LD (ZRWX),A
+ LD A,081H
+ LD (ZLOG),A
+ CALL L5902
+ POP HL
+ CALL L52ED
+ CALL L5733
+ LD B,001H
+ LD A,081H
+ RST 018H
+ DB 038H
+ RET
+
+L5CD5: XOR A
+ LD BC,?SETDE
+ PUSH AF
+ CALL L6E6F
+ RST 018H
+ DB 02DH
+ POP AF
+ RST 018H
+ DB 03FH
+ RET
+
+L5CE3: JP DBG_DIR3 ; Debug hook: trace full DIR handler
+ PUSH AF
+ RST 018H
+ DB 02EH
+ JP C,L57B4
+ BIT 1,A
+ JP Z,057B7H
+ CALL L58C2
+ CALL L593A
+ LD B,A
+ XOR A
+ RST 018H
+ DB 039H
+ LD A,B
+ RST 018H
+ DB 03AH
+ POP AF
+ RST 018H
+ DB 039H
+ RET
+
+L5D02: CALL L6E6F
+ RST 018H
+ DB 02DH
+ RST 018H
+ DB 03DH
+ RET
+
+L5D0A: CALL L6E6F
+ RST 018H
+ DB 02DH
+ CALL L5E70
+ CALL L6E6F
+ RST 018H
+ DB 03EH
+ RET
+
+L5D18: CALL L5D4E
+L5D1B: CALL L5606
+ RST 018H
+ DB 042H
+ CALL L413E
+ RET Z
+ CALL L5E73
+ JR L5D1B ; (-00eH)
+
+L5D29: CALL L5D4E
+ LD DE,(TMPEND)
+ CALL L74E8
+L5D33: CALL L7436
+ PUSH HL
+ PUSH AF
+ PUSH BC
+ LD DE,(TMPEND)
+ RST 018H
+ DB 041H
+ POP DE
+ POP AF
+ CALL L57F8
+ POP HL
+ CALL L413E
+ RET Z
+ CALL L5E73
+ JR L5D33 ; (-01bH)
+
+L5D4E: CALL TEST1
+ DB 028H
+ RET NZ
+ CALL L6E5F
+ LD A,D
+ OR E
+ JP Z,04AF2H
+ RST 018H
+ DB 040H
+ CALL L5E7F
+ CALL TEST1
+ DB 02CH
+ RET
+
+L5D65: LD A,(L849A)
+ OR A
+ JP NZ,04B22H
+ PUSH HL
+ LD B,000H
+ RST 018H
+ DB 02CH
+ LD (05E1AH),DE
+ LD (L5E1C),A
+ LD HL,(TEXTED)
+ LD DE,(TEXTST)
+ XOR A
+ SBC HL,DE
+ LD (ELMD20),HL
+ RST 018H
+ DB 044H
+ POP HL
+ CALL L592D
+ CALL 05E48H
+ LD A,(ZFLAG1)
+ BIT 5,A
+ JP Z,057B7H
+ PUSH HL
+ LD HL,(08494H)
+ ADD HL,SP
+ LD SP,HL
+ EX DE,HL
+ LD HL,L847D
+ LD BC,(08492H)
+ LDIR
+ CALL L5BDC
+ CP 002H
+ JP NZ,04B53H
+ LD (05DB3H),SP
+L5DB2: LD SP,L0000
+ CALL L5C11
+ CALL L5C44
+ LD HL,0FFFDH
+ PUSH HL
+ PUSH HL
+ LD A,001H
+ LD (L849A),A
+ LD HL,(TEXTST)
+ JP L40E4
+
+L5DCB: XOR A
+ LD (L849A),A
+ POP IX
+L5DD1: POP BC
+ LD A,B
+ CP 0FFH
+ JP NZ,04B22H
+ LD A,C
+ CP 0FDH
+ JR Z,L5DF0 ; (+013H)
+ CP 0FEH
+ LD HL,00004H
+ JR Z,L5DEC ; (+008H)
+ CP 012H
+ LD HL,00010H
+ JP NZ,04B22H
+L5DEC: ADD HL,SP
+ LD SP,HL
+ JR L5DD1 ; (-01fH)
+
+L5DF0: LD DE,(05E1AH)
+ LD A,(L5E1C)
+ RST 018H
+ DB 03AH
+ LD B,000H
+ RST 018H
+ DB 02CH
+ CALL L5BA4
+ OR 0FFH
+ RST 018H
+ DB 044H
+ CALL L5C11
+ CALL L5C44
+ LD HL,L0000
+ ADD HL,SP
+ LD DE,L847D
+ LD BC,(08492H)
+ LDIR
+ LD SP,HL
+ POP HL
+ RET
+
+ NOP
+ NOP
+L5E1C: NOP
+L5E1D: LD DE,L5E37
+ LD B,005H
+ CALL L58D8
+ LD A,031H
+ CALL L5E2C
+ LD A,032H
+L5E2C: LD (05E3EH),A
+ LD DE,05E3CH
+ LD B,00CH
+ JP L58D8
+
+L5E37: DB "CMT:TRS?:0,$8C,13",0CDH; XCMT device config string
+ LD A,041H
+ RET Z
+ JP L4AEC
+
+L5E4F: XOR A
+ LD (FILOUT),A
+ CALL TEST1
+ DB FDPD
+ RET NZ
+ CALL TESTX
+ DB 050H
+ CALL L6AC6
+ LD A,050H
+ LD (FILOUT),A
+ CP A
+ RET
+
+L5E66: LD DE,L849C
+ LD B,000H
+ PUSH DE
+ RST 018H
+ DB 016H
+ POP DE
+ RET
+
+L5E70: CALL HLFTCH
+L5E73: CP 02CH
+ JR L5E84 ; (+00dH)
+
+L5E77: INC HL
+L5E78: CALL HLFTCH
+L5E7B: CP 028H
+ JR L5E84 ; (+005H)
+
+L5E7F: CALL HLFTCH
+L5E82: CP 029H
+L5E84: INC HL
+ RET Z
+ JP L4AEC
+
+L5E89: LD A,(DE)
+ CP 020H
+ INC DE
+ JR Z,L5E89 ; (-006H)
+ RET
+
+L5E90: LD HL,L6112
+L5E93: LD BC,00005H
+ LDIR
+ RET
+
+L5E99: CALL L7967
+ LD A,E
+ OR D
+ RET Z
+ BIT 7,D
+ LD A,07FH
+ JR Z,L5EAE ; (+009H)
+ LD A,D
+ CPL
+ LD D,A
+ LD A,E
+ CPL
+ LD E,A
+ INC DE
+ LD A,0FFH
+L5EAE: LD B,091H
+L5EB0: DEC B
+ BIT 7,D
+ JR NZ,L5EBB ; (+006H)
+ RL E
+ RL D
+ JR L5EB0 ; (-00bH)
+
+L5EBB: LD (HL),B
+ INC HL
+ AND D
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ DEC HL
+ DEC HL
+ RET
+
+L5EC4: CP 030H
+ RET C
+ CP 03AH
+ CCF
+ RET
+
+L5ECB: CP 05FH
+ RET Z
+ CP 030H
+ RET C
+ CP 05BH
+ CCF
+ RET C
+ CP 03AH
+ CCF
+ RET NC
+ CP 041H
+ RET
+
+L5EDC: CALL L7967
+ LD (L6301),A
+ LD (L6302),A
+ LD (L6303),A
+ LD (05F83H),A
+ LD A,005H
+ LD (L84CE),A
+L5EF0: CALL L5E89
+ CP 02BH
+ JR Z,L5EF0 ; (-007H)
+ CP 02DH
+ JR NZ,L5F01 ; (+006H)
+ CALL L5EF0
+ JP L7972
+
+L5F01: CP 024H
+ JR NZ,L5F11 ; (+00cH)
+ PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 014H
+ EX (SP),HL
+ CALL L5E99
+ POP DE
+ LD A,005H
+ RET
+
+L5F11: CP 030H
+ JR NZ,L5F1B ; (+006H)
+ LD A,(DE)
+ INC DE
+ JR L5F11 ; (-008H)
+
+L5F19: LD A,(DE)
+ INC DE
+L5F1B: CP 020H
+ JR Z,L5F19 ; (-006H)
+ CP 02EH
+ JR Z,L5F3E ; (+01bH)
+ CALL L5EC4
+ JR C,L5F78 ; (+050H)
+ SUB 030H
+ CALL L60AA
+ CALL L6014
+ LD A,001H
+ LD (L6302),A
+ LD A,(L6301)
+ INC A
+ LD (L6301),A
+ JR L5F19 ; (-025H)
+
+L5F3E: LD A,001H
+ LD (05F83H),A
+ LD C,A
+L5F44: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L5F44 ; (-006H)
+ CALL L5EC4
+ JR C,L5F70 ; (+021H)
+ INC C
+ SUB 030H
+ JR Z,L5F5B ; (+007H)
+ PUSH AF
+ LD A,001H
+ LD (L6302),A
+ POP AF
+L5F5B: PUSH AF
+ LD A,(L6302)
+ LD B,A
+ LD A,(L6301)
+ ADD A,B
+ LD (L6301),A
+ POP AF
+ CALL L60AA
+ CALL L6014
+ JR L5F44 ; (-02cH)
+
+L5F70: DEC C
+ JR Z,L5F78 ; (+005H)
+ CALL L5FFE
+ JR L5F70 ; (-008H)
+
+L5F78: CP 045H
+ JR Z,L5F89 ; (+00dH)
+L5F7C: DEC DE
+ LD A,(L6303)
+ OR A
+ RET NZ
+ LD A,000H
+ OR A
+ RET NZ
+ LD A,005H
+ RET
+
+L5F89: LD A,(DE)
+ CP 02DH
+ JR Z,L5F97 ; (+009H)
+ CP 02BH
+ JR Z,L5F97 ; (+005H)
+ CALL L5EC4
+ JR C,L5F7C ; (-01bH)
+L5F97: LD A,001H
+ LD (05F83H),A
+ PUSH HL
+ LD HL,L7BB3
+ LD (05FF7H),HL
+ LD HL,L0000
+ LD A,(DE)
+ INC DE
+ CP 02BH
+ JR Z,L5FB8 ; (+00cH)
+ CP 02DH
+ JR NZ,L5FBA ; (+00aH)
+ PUSH HL
+ LD HL,L7C9E
+ LD (05FF7H),HL
+ POP HL
+L5FB8: LD A,(DE)
+ INC DE
+L5FBA: SUB 030H
+ JR C,L5FDA ; (+01cH)
+ CP 00AH
+ JR NC,L5FDA ; (+018H)
+ PUSH DE
+ CALL L600F
+ LD E,L
+ LD D,H
+ CALL L600F
+ CALL L600F
+ CALL L600B
+ LD E,A
+ LD D,000H
+ CALL L600B
+ POP DE
+ JR L5FB8 ; (-022H)
+
+L5FDA: LD A,H
+ OR A
+ JR NZ,L6011 ; (+033H)
+ LD A,L
+ POP HL
+ PUSH DE
+ PUSH BC
+ PUSH HL
+ LD DE,L84CF
+ PUSH DE
+ CALL L5E90
+ POP HL
+ LD B,A
+ INC B
+ JR L5FF2 ; (+003H)
+
+L5FEF: CALL L60AA
+L5FF2: DJNZ L5FEF ; (-005H)
+ EX DE,HL
+ POP HL
+ CALL L0000
+ POP BC
+ POP DE
+ JP L5F7C
+
+L5FFE: PUSH AF
+ PUSH BC
+ PUSH DE
+ LD DE,L610D
+ CALL L7C9E
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L600B: ADD HL,DE
+ RET NC
+ JR L6011 ; (+002H)
+
+L600F: ADD HL,HL
+ RET NC
+L6011: JP 04AEFH
+
+L6014: PUSH DE
+ PUSH HL
+ LD HL,L84CF
+ LD E,A
+ LD D,000H
+ CALL L5E99
+ EX DE,HL
+ POP HL
+ PUSH BC
+ CALL L7985
+ POP BC
+ POP DE
+ RET
+
+L6028: LD A,005H
+ LD (L84CE),A
+ LD A,(HL)
+ OR A
+ JR Z,L6035 ; (+004H)
+ INC HL
+ LD A,(HL)
+ DEC HL
+ RLCA
+L6035: LD A,020H
+ JR NC,L603E ; (+005H)
+ CALL L7972
+ LD A,02DH
+L603E: PUSH AF
+ CALL L61AD
+ CALL L623A
+ POP AF
+ DEC DE
+ LD (DE),A
+ RET
+
+L6049: PUSH BC
+ CALL L7A1C
+ POP BC
+ RET
+
+L604F: CALL SKPDE
+ LD A,(HL)
+ CP 081H
+ JP C,L7967
+ LD A,(HL)
+ CP 0A0H
+ RET NC
+ INC HL
+ CALL L6086
+ PUSH HL
+ LD L,(HL)
+ LD B,000H
+L6064: SRL E
+ RR D
+ RR C
+ RR L
+ INC A
+ INC B
+ CP 0A0H
+ JR NZ,L6064 ; (-00eH)
+L6072: SLA L
+ RL C
+ RL D
+ RL E
+ DJNZ L6072 ; (-00aH)
+ LD A,L
+ POP HL
+ LD (HL),A
+ DEC HL
+ LD (HL),C
+ DEC HL
+ LD (HL),D
+ DEC HL
+ LD (HL),E
+ RET
+
+L6086: LD E,(HL)
+ INC HL
+L6088: LD D,(HL)
+ INC HL
+ LD C,(HL)
+ INC HL
+ RET
+
+L608D: LD A,(HL)
+ CP 081H
+ RET C
+ PUSH DE
+ PUSH HL
+ LD DE,L60A5
+ PUSH DE
+ CALL L5E93
+ POP HL
+ CALL L604F
+ EX DE,HL
+ POP HL
+ CALL L797C
+ POP DE
+ RET
+
+L60A5: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L60AA: PUSH AF
+ PUSH BC
+ PUSH DE
+ LD DE,L610D
+ CALL L7BB3
+ POP DE
+ POP BC
+ POP AF
+ RET
+
+L60B7: INC HL
+ BIT 7,(HL)
+ JR Z,L60C7 ; (+00bH)
+ CALL L60C7
+ LD A,H
+ CPL
+ LD H,A
+ LD A,L
+ CPL
+ LD L,A
+ INC HL
+ RET
+
+L60C7: DEC HL
+ LD A,(HL)
+ CP 091H
+ JP NC,04AEFH
+ CP 081H
+ JR C,L60E5 ; (+013H)
+ PUSH AF
+ INC HL
+ LD A,(HL)
+ INC HL
+ LD L,(HL)
+ LD H,A
+ POP AF
+ SET 7,H
+L60DB: CP 090H
+ RET Z
+ INC A
+ SRL H
+ RR L
+ JR L60DB ; (-00aH)
+
+L60E5: CCF
+ LD HL,L0000
+ RET
+
+L60EA: SBC A,E
+ LD A,0BCH
+ JR NZ,L60EF ; (+000H)
+L60EF: SBC A,B
+ JR L6088 ; (-06aH)
+
+ ADD A,B
+ NOP
+ SUB H
+ LD (HL),H
+ INC H
+ NOP
+ NOP
+ SUB C
+ LD B,E
+ LD D,B
+ NOP
+ NOP
+ ADC A,(HL)
+ INC E
+ LD B,B
+ NOP
+ NOP
+ ADC A,D
+ LD A,D
+ NOP
+ NOP
+ NOP
+ ADD A,A
+ LD C,B
+ NOP
+ NOP
+ NOP
+L610D: ADD A,H
+ JR NZ,L6110 ; (+000H)
+L6110: NOP
+ NOP
+L6112: ADD A,C
+ NOP
+ NOP
+ NOP
+ NOP
+ LD A,L
+ LD C,H
+ CALL Z,0CDCCH
+L611C: LD H,(HL)
+ DEC HL
+ CALL Z,L1277
+L6121: LD HL,(L6304)
+ LD B,000H
+L6126: LD DE,L610D
+ CALL L6049
+ JR C,L6134 ; (+006H)
+ CALL L5FFE
+ INC B
+ JR L6126 ; (-00eH)
+
+L6134: LD DE,L6112
+ CALL L6049
+ JR NC,L6142 ; (+006H)
+ CALL L60AA
+ DEC B
+ JR L6134 ; (-00eH)
+
+L6142: PUSH BC
+ CALL L61AD
+ CALL L623A
+ POP BC
+ PUSH DE
+ EX DE,HL
+L614C: LD A,(HL)
+ OR A
+ JR Z,L6153 ; (+003H)
+ INC HL
+ JR L614C ; (-007H)
+
+L6153: DEC HL
+ LD A,(HL)
+ INC HL
+ CP 030H
+ JR NZ,L615C ; (+002H)
+ INC B
+ DEC HL
+L615C: LD A,045H
+ LD (HL),A
+ INC HL
+ LD A,B
+ LD B,02BH
+ BIT 7,A
+ JR Z,L616B ; (+004H)
+ NEG
+ LD B,02DH
+L616B: LD (HL),B
+ INC HL
+ LD (HL),030H
+L616F: SUB 00AH
+ JR C,L6176 ; (+003H)
+ INC (HL)
+ JR L616F ; (-007H)
+
+L6176: ADD A,03AH
+ INC HL
+ LD (HL),A
+ INC HL
+ LD (HL),000H
+ POP DE
+ RET
+
+L617F: PUSH HL
+ CALL L60B7
+ LD DE,L84A7
+ PUSH DE
+ LD B,001H
+ RST 018H
+ DB 016H
+ POP HL
+ LD A,030H
+ LD B,005H
+L6190: CP (HL)
+ JR NZ,L6198 ; (+005H)
+ INC HL
+ DJNZ L6190 ; (-006H)
+ JR L61A1 ; (+009H)
+
+L6198: LD A,B
+ LD (L6301),A
+ LD A,001H
+ LD (L6302),A
+L61A1: LD A,02EH
+ LD (L84AC),A
+ POP HL
+ CALL L608D
+ JP L61FD
+
+L61AD: LD (L6304),HL
+ XOR A
+ LD (L6301),A
+ LD (L6302),A
+ PUSH HL
+ LD HL,L84A3
+ LD (HL),0FFH
+ LD B,021H
+ LD A,030H
+L61C1: INC HL
+ LD (HL),A
+ DJNZ L61C1 ; (-004H)
+ LD A,02EH
+ LD (L84AC),A
+ POP HL
+ LD A,(HL)
+ OR A
+ RET Z
+ LD DE,L60EA
+ CALL L7A1C
+ CCF
+ RET C
+ LD DE,L611C
+ CALL L7A1C
+ RET C
+ LD DE,L84D7
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD A,(HL)
+ CP 081H
+ JR C,L61FD ; (+013H)
+ CP 090H
+ JP C,L617F
+ LD IX,L84A4
+ LD DE,L60EF
+ CALL L62C4
+ CALL L62F8
+ RET NC
+L61FD: LD IX,L84AD
+L6201: LD DE,L60EA
+ PUSH BC
+ PUSH IX
+ CALL L7BB3
+ POP IX
+ POP BC
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ CALL L62C4
+ CALL L62F8
+ JR C,L6201 ; (-019H)
+ RET
+
+L621B: LD A,005H
+ LD (L84CE),A
+ PUSH HL
+ LD DE,L84DF
+ PUSH DE
+ CALL L5E93
+ POP HL
+ CALL L61AD
+ CALL L6237
+ POP HL
+ RET
+
+L6231: LD DE,L84AC
+ LD (DE),A
+ DEC DE
+ RET
+
+L6237: JP C,L6121
+L623A: LD HL,(L6304)
+ LD A,(HL)
+ OR A
+ JR Z,L6231 ; (-010H)
+ LD DE,L84A4
+ DEC DE
+ EX DE,HL
+ LD DE,00001H
+L6249: INC HL
+ LD A,(HL)
+ CP 02EH
+ JR NZ,L6254 ; (+005H)
+ LD DE,L0000
+ JR L6249 ; (-00bH)
+
+L6254: CP 030H
+ JR Z,L6249 ; (-00fH)
+ ADD HL,DE
+ LD DE,00008H
+ ADD HL,DE
+ LD A,(HL)
+L625E: LD (HL),030H
+ CP 035H
+ JR C,L6273 ; (+00fH)
+L6264: DEC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L6264 ; (-006H)
+ INC A
+ JR Z,L62AD ; (+040H)
+ LD (HL),A
+ CP 03AH
+ JR Z,L625E ; (-014H)
+ INC HL
+L6273: LD DE,L84AC
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ JR C,L6282 ; (+005H)
+ LD HL,L84AC
+ JR L6299 ; (+017H)
+
+L6282: DEC HL
+ LD A,(HL)
+ CP 02EH
+ DEC HL
+ JR Z,L6298 ; (+00fH)
+ INC HL
+ CP 030H
+ JR Z,L6273 ; (-01bH)
+ PUSH HL
+ LD DE,L84B5
+ SBC HL,DE
+ POP HL
+ JP NC,L6121
+L6298: INC HL
+L6299: LD (HL),000H
+ LD DE,L84A4
+L629E: LD A,(DE)
+ CP 030H
+ JR NZ,L62A6 ; (+003H)
+ INC DE
+ JR L629E ; (-008H)
+
+L62A6: OR A
+ RET NZ
+ DEC DE
+ LD A,030H
+ LD (DE),A
+ RET
+
+L62AD: LD HL,L849C
+ LD DE,L62BE
+ PUSH BC
+ LD BC,L0006
+ LDIR
+ POP BC
+ LD DE,L849C
+ RET
+
+L62BE: LD SP,L2B45
+ JR NC,L62FB ; (+038H)
+ NOP
+L62C4: LD A,(DE)
+ CP 07DH
+ RET Z
+L62C8: CALL L7A1C
+ JR C,L62E0 ; (+013H)
+ INC (IX+000H)
+ PUSH IX
+ PUSH BC
+ CALL L797C
+ POP BC
+ POP IX
+ LD A,001H
+ LD (L6302),A
+ JR L62C8 ; (-018H)
+
+L62E0: INC IX
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ LD A,(L6302)
+ LD B,A
+ LD A,(L6301)
+ ADD A,B
+ LD (L6301),A
+ CALL L62F8
+ RET NC
+ JR L62C4 ; (-034H)
+
+L62F8: LD A,(HL)
+ OR A
+ RET Z
+L62FB: LD A,(L6301)
+ CP 009H
+ RET
+
+L6301: NOP
+L6302: NOP
+L6303: NOP
+L6304: NOP
+ NOP
+L6306: NOP
+ NOP
+L6308: NOP
+ NOP
+L630A: LD HL,(L6308)
+ PUSH DE
+L630E: LD A,(HL)
+ OR A
+ JP Z,04AF2H
+ CALL L63AC
+ JR Z,L631D ; (+005H)
+ LD (BC),A
+ INC BC
+ INC HL
+ JR L630E ; (-00fH)
+
+L631D: EX AF,AF'
+ LD A,(L84CE)
+ CP 003H
+ JP NZ,L63D5
+ EX AF,AF'
+ CP 021H
+ JP Z,L6334
+ CP 026H
+ JP Z,L635B
+ JP 04AF5H
+
+L6334: EX (SP),HL
+ PUSH BC
+ CALL L6E7E
+ OR A
+ LD A,020H
+ JR Z,L633F ; (+001H)
+ LD A,(DE)
+L633F: POP BC
+ LD (BC),A
+ INC BC
+L6342: POP HL
+ INC HL
+L6344: LD A,(HL)
+ OR A
+ JR Z,L6352 ; (+00aH)
+ CALL L63AC
+ JR Z,L6355 ; (+008H)
+ LD (BC),A
+ INC BC
+ INC HL
+ JR L6344 ; (-00eH)
+
+L6352: LD HL,(L6306)
+L6355: LD (L6308),HL
+ XOR A
+ LD (BC),A
+ RET
+
+L635B: LD D,002H
+L635D: INC HL
+ LD A,(HL)
+ CP 026H
+ JR Z,L636B ; (+008H)
+ INC D
+ CP 020H
+ JR Z,L635D ; (-00bH)
+ JP 04AF2H
+
+L636B: EX (SP),HL
+ LD A,(HL)
+ CP D
+ JR C,L6385 ; (+015H)
+ INC HL
+ CALL INDRCT
+ PUSH BC
+ LD BC,(STRST)
+ ADD HL,BC
+ POP BC
+L637B: LD A,(HL)
+ LD (BC),A
+ INC BC
+ INC HL
+ DEC D
+ JR NZ,L637B ; (-007H)
+ JP L6342
+
+L6385: LD E,(HL)
+ INC HL
+ CALL INDRCT
+ LD A,E
+ OR A
+ JR Z,L63A2 ; (+014H)
+ PUSH BC
+ LD BC,(STRST)
+ ADD HL,BC
+ POP BC
+L6395: LD A,(HL)
+ LD (BC),A
+ INC BC
+ INC HL
+ DEC E
+ JR Z,L63A6 ; (+00aH)
+ DEC D
+ JR NZ,L6395 ; (-00aH)
+ JP L6342
+
+L63A2: LD A,020H
+ LD (BC),A
+ INC BC
+L63A6: DEC D
+ JR NZ,L63A2 ; (-007H)
+ JP L6342
+
+L63AC: CALL CHKACC
+ INC B
+ LD HL,L2326
+ DEC HL
+ RET Z
+ LD E,A
+ CP 02AH
+ JR Z,L63CF ; (+015H)
+ CALL L65AC
+ JR Z,L63CF ; (+010H)
+ CP 02EH
+ LD E,023H
+ JR Z,L63CF ; (+00aH)
+ CP 0C4H
+ RET NZ
+ INC HL
+ LD A,(HL)
+ OR A
+ JP Z,04AF2H
+ RET
+
+L63CF: INC HL
+ LD A,(HL)
+ CP E
+ DEC HL
+ LD A,(HL)
+ RET
+
+L63D5: XOR A
+ LD (0651CH),A
+ LD (0656CH),A
+ LD (L6554),A
+ LD (06512H),A
+ LD (064CCH),A
+ LD (064F9H),A
+ LD (06517H),A
+ LD (064C5H),A
+ DEC A
+ LD (064C2H),A
+ EX AF,AF'
+ LD D,000H
+ CP 023H
+ JP Z,L6431
+ CP 02AH
+ JP Z,L6412
+ CALL L65AC
+ JP Z,L6423
+ CP 02EH
+ JP Z,L6433
+ CP 02BH
+ JP Z,L642C
+ JP 04AF5H
+
+L6412: LD A,001H
+ LD (0656CH),A
+ INC HL
+ INC D
+ INC HL
+ INC D
+ LD A,(HL)
+ CALL L65AC
+ JR NZ,L6433 ; (+012H)
+ JR L6425 ; (+002H)
+
+L6423: INC HL
+ INC D
+L6425: INC HL
+ INC D
+ LD (L6554),A
+ JR L6433 ; (+007H)
+
+L642C: LD A,001H
+ LD (0651CH),A
+L6431: INC HL
+ INC D
+L6433: EX DE,HL
+ DEC H
+L6435: INC H
+ LD A,(DE)
+ INC DE
+ CP 023H
+ JR Z,L6435 ; (-007H)
+ CP 02CH
+ JR NZ,L6447 ; (+007H)
+ LD A,001H
+ LD (064CCH),A
+ JR L6435 ; (-012H)
+
+L6447: CP 02EH
+ JR Z,L646E ; (+023H)
+ CP 02DH
+ JR NZ,L6457 ; (+008H)
+ LD A,001H
+ LD (06512H),A
+ INC DE
+ JR L6467 ; (+010H)
+
+L6457: CP 02BH
+ JR NZ,L6467 ; (+00cH)
+ LD A,(0651CH)
+ OR A
+ JR NZ,L6467 ; (+006H)
+ LD A,001H
+ LD (06517H),A
+ INC DE
+L6467: DEC DE
+ LD A,H
+ LD (064F9H),A
+ JR L64A1 ; (+033H)
+
+L646E: LD A,H
+ LD (064F9H),A
+ LD H,0FFH
+L6474: INC H
+ LD A,(DE)
+ INC DE
+ CP 023H
+ JR Z,L6474 ; (-007H)
+ CP 02DH
+ JR NZ,L6487 ; (+008H)
+ LD A,001H
+ LD (06512H),A
+ INC DE
+ JR L6497 ; (+010H)
+
+L6487: CP 02BH
+ JR NZ,L6497 ; (+00cH)
+ LD A,(0651CH)
+ OR A
+ JR NZ,L6497 ; (+006H)
+ LD A,001H
+ LD (06517H),A
+ INC DE
+L6497: DEC DE
+ LD A,H
+ LD (064C2H),A
+ JR L64A1 ; (+003H)
+
+L649E: POP DE
+ JR L64B3 ; (+012H)
+
+L64A1: LD H,004H
+ PUSH DE
+L64A4: LD A,(DE)
+ INC DE
+ CP 05EH
+ JR NZ,L649E ; (-00cH)
+ DEC H
+ JR NZ,L64A4 ; (-009H)
+ POP AF
+ LD A,001H
+ LD (064C5H),A
+L64B3: POP HL
+ PUSH DE
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ LD (06549H),A
+ LD A,(064F9H)
+ LD D,A
+ LD A,000H
+ LD E,A
+ LD A,000H
+ PUSH BC
+ CALL L65BE
+ POP BC
+ LD A,000H
+ OR A
+ JR Z,L6511 ; (+041H)
+ PUSH BC
+ PUSH DE
+ LD A,(064F9H)
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ LD DE,L849C
+ LD C,000H
+ DEC HL
+L64DF: LD B,003H
+L64E1: LD A,(HL)
+ CP 020H
+ JR Z,L64F8 ; (+012H)
+ INC C
+ LD (DE),A
+ INC DE
+ DEC HL
+ DJNZ L64E1 ; (-00bH)
+ LD A,(HL)
+ CP 020H
+ JR Z,L64F8 ; (+007H)
+ LD A,02CH
+ LD (DE),A
+ INC DE
+ INC C
+ JR L64DF ; (-019H)
+
+L64F8: LD A,000H
+ CP C
+ JP C,04AEFH
+ LD B,C
+ LD L,A
+ LD H,000H
+ POP DE
+ PUSH DE
+ ADD HL,DE
+ LD DE,L849C
+ DEC HL
+L6509: LD A,(DE)
+ LD (HL),A
+ DEC HL
+ INC DE
+ DJNZ L6509 ; (-006H)
+ POP DE
+ POP BC
+L6511: LD A,000H
+ OR A
+ JR NZ,L6553 ; (+03dH)
+ LD A,000H
+ OR A
+ JR NZ,L6553 ; (+038H)
+ LD A,000H
+ OR A
+ JR NZ,L6548 ; (+028H)
+ LD A,(06549H)
+ RLCA
+ JR NC,L6553 ; (+02dH)
+ LD A,(DE)
+ CP 020H
+ LD H,02DH
+ JR Z,L6532 ; (+005H)
+ CP 030H
+ JP NZ,04AEFH
+L6532: PUSH DE
+L6533: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L6533 ; (-006H)
+ CP 030H
+ JR Z,L6533 ; (-00aH)
+ OR A
+ JR NZ,L6541 ; (+001H)
+ DEC DE
+L6541: DEC DE
+ DEC DE
+ LD A,H
+ LD (DE),A
+ POP DE
+ JR L6553 ; (+00bH)
+
+L6548: LD A,000H
+ RLCA
+ LD H,02BH
+ JR NC,L6532 ; (-01dH)
+ LD H,02DH
+ JR L6532 ; (-021H)
+
+L6553: DB 03EH ; LD A,nn opcode (self-modifying: operand at L6554)
+L6554: DB 000H ; Operand byte — patched by LD (L6554),A
+ OR A
+ JR Z,L656B ; (+013H)
+ LD A,(DE)
+ CP 020H
+ JR NZ,L656B ; (+00eH)
+ PUSH DE
+L655E: LD A,(DE)
+ INC DE
+ CP 020H
+ JR Z,L655E ; (-006H)
+ DEC DE
+ DEC DE
+ LD A,(L6554)
+ LD (DE),A
+ POP DE
+L656B: LD A,000H
+ OR A
+ JR Z,L657D ; (+00dH)
+ PUSH DE
+L6571: LD A,(DE)
+ CP 020H
+ JR NZ,L657C ; (+006H)
+ LD A,02AH
+ LD (DE),A
+ INC DE
+ JR L6571 ; (-00bH)
+
+L657C: POP DE
+L657D: LD A,(DE)
+ OR A
+ JR Z,L6586 ; (+005H)
+ LD (BC),A
+ INC BC
+ INC DE
+ JR L657D ; (-009H)
+
+L6586: LD A,(06517H)
+ OR A
+ JR Z,L659A ; (+00eH)
+ LD A,(06549H)
+ RLCA
+ LD A,02BH
+L6592: JR NC,L6596 ; (+002H)
+ LD A,02DH
+L6596: LD (BC),A
+ INC BC
+ JR L65A8 ; (+00eH)
+
+L659A: LD A,(06512H)
+ OR A
+ JR Z,L65A8 ; (+008H)
+ LD A,(06549H)
+ RLCA
+ LD A,020H
+ JR L6592 ; (-016H)
+
+L65A8: POP HL
+ JP L6344
+
+L65AC: PUSH HL
+ LD HL,L0036
+ BIT 6,(HL)
+ POP HL
+ JR NZ,L65B8 ; (+003H)
+ CP 07DH
+ RET
+
+L65B8: CP FDPD
+ RET Z
+ CP 024H
+ RET
+
+L65BE: OR A
+ JP Z,L6649
+ PUSH DE
+ LD A,(HL)
+ OR A
+ JR Z,L6606 ; (+03fH)
+ PUSH HL
+ LD A,D
+ LD DE,L84D7
+ PUSH AF
+ CALL L5E90
+ POP AF
+ OR A
+ JR Z,L65DF ; (+00bH)
+ LD B,A
+ LD HL,L84D7
+ JR L65DD ; (+003H)
+
+L65DA: CALL L60AA
+L65DD: DJNZ L65DA ; (-005H)
+L65DF: POP HL
+ LD B,000H
+L65E2: LD DE,L84D7
+ CALL L6049
+ JR C,L65F0 ; (+006H)
+ CALL L5FFE
+ INC B
+ JR L65E2 ; (-00eH)
+
+L65F0: PUSH HL
+ LD HL,L84D7
+ CALL L5FFE
+ POP HL
+L65F8: LD DE,L84D7
+ CALL L6049
+ JR NC,L6606 ; (+006H)
+ CALL L60AA
+ DEC B
+ JR L65F8 ; (-00eH)
+
+L6606: POP DE
+ PUSH BC
+ CALL L6663
+ POP BC
+ PUSH DE
+ LD A,(DE)
+ CP 02EH
+ JR NZ,L6624 ; (+012H)
+ LD DE,L84AC
+ DEC DE
+ LD A,(DE)
+ CP 031H
+ POP DE
+ PUSH DE
+ JR NZ,L6640 ; (+023H)
+ EX DE,HL
+ INC HL
+ LD (HL),031H
+ DEC HL
+ JR L663E ; (+01aH)
+
+L6624: LD A,(DE)
+ CP 031H
+ JR NZ,L6640 ; (+017H)
+ EX DE,HL
+ INC HL
+ LD A,(HL)
+ DEC HL
+ CP 02EH
+ LD A,030H
+ JR Z,L6635 ; (+002H)
+ LD A,020H
+L6635: LD (HL),A
+L6636: INC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L6636 ; (-006H)
+ LD (HL),031H
+L663E: EX DE,HL
+ INC B
+L6640: LD A,(DE)
+ INC DE
+ OR A
+ JR NZ,L6640 ; (-005H)
+ DEC DE
+ JP L615C
+
+L6649: PUSH DE
+ CALL L6663
+ POP AF
+ OR A
+ RET NZ
+ PUSH HL
+ LD HL,L84AC
+ DEC HL
+ LD A,030H
+ CP (HL)
+L6658: JP NZ,04AEFH
+ DEC HL
+ LD A,020H
+ CP (HL)
+ JR NZ,L6658 ; (-009H)
+ POP HL
+ RET
+
+L6663: PUSH DE
+ CALL L61AD
+ JP C,04AEFH
+ POP HL
+ PUSH HL
+ LD H,000H
+ INC L
+ JR Z,L6672 ; (+001H)
+ DEC L
+L6672: LD DE,L84AD
+ ADD HL,DE
+ LD A,(HL)
+ LD (HL),000H
+ LD DE,L3036
+ CP 035H
+ JR C,L668F ; (+00fH)
+L6680: DEC HL
+ LD A,(HL)
+ CP 02EH
+ JR Z,L6680 ; (-006H)
+ INC A
+ JP Z,04AEFH
+ LD (HL),A
+ CP 03AH
+ JR Z,0667AH ; (-015H)
+L668F: LD HL,KEYBM1
+ LD DE,L2000
+L6695: LD (HL),D
+ INC HL
+ DEC E
+ JR NZ,L6695 ; (-005H)
+ POP HL
+ PUSH HL
+ LD E,H
+ LD D,000H
+ LD HL,KEYBUF
+ ADD HL,DE
+ PUSH HL
+ LD HL,L84A3
+ LD (HL),020H
+ INC HL
+ LD D,007H
+L66AC: LD A,(HL)
+ CP 030H
+ JR NZ,L66B7 ; (+006H)
+ LD (HL),020H
+ INC HL
+ DEC D
+ JR NZ,L66AC ; (-00bH)
+L66B7: POP HL
+ PUSH HL
+ LD B,E
+ LD A,B
+ OR A
+ JR Z,L66D5 ; (+017H)
+ LD DE,L84AC
+L66C1: DEC HL
+ DEC DE
+ LD A,(DE)
+ LD (HL),A
+ CP 020H
+ JR Z,L66D5 ; (+00cH)
+ DJNZ L66C1 ; (-00aH)
+ DEC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L66D5 ; (+004H)
+ INC A
+ JP NZ,04AEFH
+L66D5: POP HL
+ POP DE
+ INC E
+ JR Z,L66E9 ; (+00fH)
+ LD B,E
+ LD DE,L84AD
+ LD (HL),02EH
+L66E0: INC HL
+ DEC B
+ JR Z,L66E9 ; (+005H)
+ LD A,(DE)
+ INC DE
+ LD (HL),A
+ JR L66E0 ; (-009H)
+
+L66E9: LD (HL),000H
+ LD DE,KEYBUF
+ RET
+
+L66EF: PUSH DE
+ PUSH BC
+ LD C,000H
+ DEC DE
+L66F4: INC DE
+L66F5: CALL L687B
+ OR A
+ JR Z,L672C ; (+031H)
+ CP 0FFH
+ JR Z,L6730 ; (+031H)
+ CP 060H
+ JP NC,L4AEC
+ CP 020H
+ JR C,L66F4 ; (-014H)
+ LD IX,L66F5
+ PUSH IX
+ CP 022H
+ JR Z,L674B ; (+039H)
+ CP 027H
+ JR Z,L673E ; (+028H)
+ CP 03FH
+ JR Z,L6737 ; (+01dH)
+ CP 02EH
+ JP Z,L689E
+ CP 024H
+ JP Z,L68B8
+ CALL L5EC4
+ JR C,L6773 ; (+04aH)
+ JP L6885
+
+L672C: LD (HL),A
+ POP BC
+ POP DE
+ RET
+
+L6730: LD (HL),LSE4
+ CALL L6757
+ JR L66F5 ; (-042H)
+
+L6737: LD A,08FH
+ CALL L6756
+ JR L67B4 ; (+076H)
+
+L673E: LD (HL),03AH
+ CALL L6757
+ LD (HL),027H
+ CALL L6758
+ JP L681B
+
+L674B: LD (HL),A
+ CALL L6757
+L674F: LD A,(DE)
+ OR A
+ RET Z
+ CP 022H
+ JR NZ,L674B ; (-00bH)
+L6756: LD (HL),A
+L6757: INC DE
+L6758: INC HL
+L6759: INC C
+ RET NZ
+ JP 04B01H
+
+L675E: POP BC
+ LD A,(DE)
+ CALL L5ECB
+ JR C,L6756 ; (-00fH)
+L6765: CALL L6756
+ LD A,(DE)
+ CP 024H
+ JR Z,L6756 ; (-017H)
+ CALL L5EC4
+ RET C
+ JR L6765 ; (-00eH)
+
+L6773: PUSH BC
+ LD BC,STMTWORDTBL
+ CALL L682A
+ JR NC,L67AA ; (+02eH)
+ LD BC,EXTWORDTBL
+ CALL L682A
+ LD C,0FEH
+ JR NC,L6790 ; (+00aH)
+ LD BC,FUNCWORDTBL
+ CALL L682A
+ LD C,0FFH
+ JR C,L675E ; (-032H)
+L6790: LD (HL),C
+ INC HL
+ LD (HL),A
+ POP BC
+ CALL L6759
+ CALL L6758
+ CP 0B4H
+ RET NZ
+ CALL L687B
+ CP 03DH
+ RET NZ
+ LD (HL),QDPC
+ CALL L6757
+ JR L67F0 ; (+046H)
+
+L67AA: POP BC
+ CP 0DFH
+ DB 020H
+ LD (BC),A
+ LD (HL),0A8H
+ CALL L6758
+L67B4: CP 097H
+ JR Z,L681B ; (+063H)
+ CP 094H
+ JR Z,L681B ; (+05fH)
+ CP 0C2H
+ JR Z,L6811 ; (+051H)
+ CP LSE2
+ JR Z,L67F0 ; (+02cH)
+ CP LSE0
+ RET NC
+ PUSH AF
+ CALL L687B
+ CP 02FH
+ JR NZ,L67DC ; (+00dH)
+ LD (HL),FDPD
+ CALL L6757
+ CALL L6A1D
+ CALL L6756
+ JR L67EC ; (+010H)
+
+L67DC: CP 023H
+ JR NZ,L67EC ; (+00cH)
+ CALL L6756
+ CALL L6A1D
+ CALL L5EC4
+ CALL NC,L6885
+L67EC: POP AF
+ CP 08DH
+ RET NC
+L67F0: CALL L687B
+ CP 022H
+ JR NZ,L67FC ; (+005H)
+ CALL L674B
+ JR L67F0 ; (-00cH)
+
+L67FC: CP 02CH
+ RET C
+ CP 02FH
+ JR C,L680C ; (+009H)
+ CALL L5EC4
+ RET C
+ CALL L68AF
+ JR L67F0 ; (-01cH)
+
+L680C: CALL L6756
+ JR L67F0 ; (-021H)
+
+L6811: DEC HL
+ LD (HL),03AH ; Store ':' at previous position
+ INC HL
+ LD (HL),A
+ CALL L6758
+ JR L67F0 ; (-02bH)
+
+L681B: LD A,(DE)
+ CALL L4141
+ RET Z
+ CALL L6756
+ CP 022H
+ CALL Z,L674F
+ JR L681B ; (-00fH)
+
+L682A: PUSH HL
+ PUSH DE
+ LD H,B
+ LD L,C
+ LD B,07FH
+L6830: POP DE
+ PUSH DE
+ INC B
+ LD A,(HL)
+ CP 0FFH
+ JR NZ,L683C ; (+004H)
+ POP DE
+ POP HL
+ SCF
+ RET
+
+L683C: CP 02EH
+ JR NZ,L6849 ; (+009H)
+ INC HL
+ DEC DE
+ LD A,(DE)
+ INC DE
+ CALL L5ECB
+ JR NC,L6868 ; (+01fH)
+L6849: LD A,(DE)
+ CP 020H
+ JR NZ,L685A ; (+00cH)
+ LD A,(HL)
+ AND 07FH
+ SUB 041H
+ CP 01AH
+ JR C,L6868 ; (+011H)
+ CALL L6A1C
+L685A: LD C,(HL)
+ INC HL
+ INC DE
+ CP 02EH
+ JR Z,L6870 ; (+00fH)
+ SUB C
+ JR Z,L6849 ; (-01bH)
+ CP 080H
+ JR Z,L6876 ; (+00eH)
+L6868: DEC HL
+L6869: BIT 7,(HL)
+ INC HL
+ JR Z,L6869 ; (-005H)
+ JR L6830 ; (-040H)
+
+L6870: LD A,B
+ CP 0E8H
+ JR NC,L6868 ; (-00dH)
+ CCF
+L6876: POP HL
+ POP HL
+ LD (HL),B
+ LD A,B
+ RET
+
+L687B: LD A,(DE)
+ CP 020H
+ RET NZ
+ LD (HL),A
+ CALL L6757
+ JR L687B ; (-00aH)
+
+L6885: EX AF,AF'
+ PUSH DE
+ CALL L6A1C
+ POP DE
+ CALL L5EC4
+ JR NC,L689E ; (+00eH)
+ CP 02EH
+ JR Z,L689E ; (+00aH)
+ CP 045H
+ JR Z,L689E ; (+006H)
+ EX AF,AF'
+ SUB 02FH
+ JP L689E
+
+L689E: PUSH BC
+ LD (HL),015H
+ INC HL
+ PUSH HL
+ CALL L5EDC
+ POP HL
+ LD BC,00005H
+ ADD HL,BC
+ LD A,006H
+ JR L68D2 ; (+023H)
+
+L68AF: PUSH BC
+ CALL L6A11
+ LD (HL),00BH
+ INC HL
+ JR L68CC ; (+014H)
+
+L68B8: LD (HL),A
+ INC DE
+ LD A,(DE)
+ RST 018H
+ DB 015H
+ JP C,L6758
+ PUSH BC
+ LD (HL),011H
+ INC HL
+ PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 014H
+ LD B,D
+ LD C,E
+ EX DE,HL
+ POP HL
+L68CC: LD A,003H
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+L68D2: POP BC
+ ADD A,C
+ JP C,04B01H
+ LD C,A
+L68D8: DEC DE
+ LD A,(DE)
+ CP 020H
+ JR Z,L68D8 ; (-006H)
+ INC DE
+ RET
+
+L68E0: PUSH HL
+ PUSH DE
+ PUSH BC
+ EXX
+ LD B,000H
+ EXX
+ LD C,000H
+L68E9: LD A,(HL)
+ OR A
+ JR Z,L691D ; (+030H)
+ LD BC,L68E9
+ PUSH BC
+ CP 027H
+ JR Z,L6937 ; (+042H)
+ INC HL
+ LD BC,STMTWORDTBL
+ CP 020H
+ JR C,L695F ; (+062H)
+ CP 022H
+ JR Z,L6948 ; (+047H)
+ CP 03AH
+ JR Z,L6955 ; (+050H)
+ CP 097H
+ JR Z,L6933 ; (+02aH)
+ CP 094H
+ JR Z,L6933 ; (+026H)
+ CP LSE4
+ JR Z,L6922 ; (+011H)
+ CP 0FEH
+ JR NC,L6927 ; (+012H)
+ CP 080H
+ JP NC,L69A3
+ JP L69C0
+
+L691D: LD (DE),A
+ POP BC
+ POP DE
+ POP HL
+ RET
+
+L6922: LD A,0FFH
+ JP L69C0
+
+L6927: LD BC,FUNCWORDTBL
+ JR NZ,L692F ; (+003H)
+ LD BC,EXTWORDTBL
+L692F: LD A,(HL)
+ INC HL
+ JR L69A3 ; (+070H)
+
+L6933: CALL L69A3
+ RET Z
+L6937: LD A,(HL)
+ CALL L4141
+ RET Z
+ CALL L69C0
+ LD A,(HL)
+ INC HL
+ CP 022H
+ CALL Z,L694B
+ JR L6937 ; (-011H)
+
+L6948: CALL L69C0
+L694B: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ JR NZ,L6948 ; (-00bH)
+ JR L69C0 ; (+06bH)
+
+L6955: LD (DE),A
+ LD A,(HL)
+ CP 0C2H
+ RET Z
+ CP 027H
+ RET Z
+ JR L69C3 ; (+064H)
+
+L695F: CP 015H
+ JR Z,L6993 ; (+030H)
+ CP 00BH
+ JR NC,L696C ; (+005H)
+ DEC A
+ OR 030H
+ JR L69C0 ; (+054H)
+
+L696C: PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ PUSH HL
+ CP 012H
+ JR Z,L6982 ; (+00cH)
+ CP 00CH
+ JR C,L6982 ; (+008H)
+ JR NZ,L69CF ; (+053H)
+ EX DE,HL
+ INC HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+L6982: EX DE,HL
+ CALL L5E66
+ LD B,D
+ LD C,E
+ POP HL
+ POP DE
+L698A: LD A,(BC)
+ OR A
+ RET Z
+ CALL L69C0
+ INC BC
+ JR L698A ; (-009H)
+
+L6993: PUSH HL
+ PUSH DE
+ CALL L621B
+ LD B,D
+ LD C,E
+ POP DE
+ POP HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ JR L698A ; (-019H)
+
+L69A3: CP 080H
+ JR Z,L69B1 ; (+00aH)
+ EX AF,AF'
+L69A8: LD A,(BC)
+ RLCA
+ INC BC
+ JR NC,L69A8 ; (-005H)
+ EX AF,AF'
+ DEC A
+ JR L69A3 ; (-00eH)
+
+L69B1: LD A,(BC)
+ BIT 7,A
+ JR NZ,L69BE ; (+008H)
+ CP 02EH
+ CALL NZ,L69C0
+ INC BC
+ JR L69B1 ; (-00dH)
+
+L69BE: AND 07FH
+L69C0: LD (DE),A
+ OR A
+ RET Z
+L69C3: INC DE
+ EXX
+ INC B
+ EXX
+ RET NZ
+ XOR A
+ LD (DE),A
+ DEC DE
+ EXX
+ DEC B
+ EXX
+ RET
+
+L69CF: LD A,024H
+ EX AF,AF'
+ EX DE,HL
+ CALL L69E0
+ LD B,D
+ LD C,E
+ POP HL
+ POP DE
+ EX AF,AF'
+ CALL L69C0
+ JR L698A ; (-056H)
+
+L69E0: LD DE,L84A8
+ PUSH DE
+ LD A,H
+ CALL L69F9
+ LD A,L
+ CALL L69F9
+ XOR A
+ LD (DE),A
+ POP DE
+ LD B,003H
+L69F1: LD A,(DE)
+ CP 030H
+ RET NZ
+ INC DE
+ DJNZ L69F1 ; (-007H)
+ RET
+
+L69F9: PUSH AF
+ RRCA
+ RRCA
+ RRCA
+ RRCA
+ AND 00FH
+ CALL L6A06
+ POP AF
+ AND 00FH
+L6A06: ADD A,030H
+ CP 03AH
+ JR C,L6A0E ; (+002H)
+ ADD A,007H
+L6A0E: LD (DE),A
+ INC DE
+ RET
+
+L6A11: PUSH HL
+ EX DE,HL
+ RST 018H
+ DB 013H
+ LD B,D
+ LD C,E
+ EX DE,HL
+ POP HL
+ JP L68D8
+
+L6A1C: INC DE
+L6A1D: LD A,(DE)
+ CP 020H
+ JR Z,L6A1C ; (-006H)
+ RET
+
+L6A23: LD C,(HL)
+L6A24: CALL L6A2C
+ XOR A
+ LD (LPOSB),A
+ RET
+
+L6A2C: LD A,(L004D)
+ OR A
+ JP NZ,L4B3C
+ CALL TEST1
+ DB 047H
+ JR Z,L6A7C ; (+043H)
+ CALL TESTX
+ DB 054H
+ LD A,001H
+ LD (PNMODE),A
+ CALL TEST1
+ DB 04EH
+ JR Z,L6A52 ; (+00aH)
+ CALL TEST1
+ DB 04CH
+ JR Z,L6A52 ; (+004H)
+ CALL TESTX
+ DB 053H
+L6A52: LD (L6A23),A
+ CALL 05E48H
+ CALL L6A74
+L6A5B: LD A,001H
+ RST 018H
+ DB 006H
+ LD A,(L6A23)
+ CP 04EH
+ RET Z
+ CP 04CH
+ LD A,00BH
+ JR Z,L6A71 ; (+006H)
+ LD A,009H
+ RST 018H
+ DB 006H
+ RST 018H
+ DB 006H
+L6A71: RST 018H
+ DB 006H
+ RET
+
+L6A74: LD A,00AH
+ RST 018H
+ DB 006H
+ LD A,003H
+ JR L6A71 ; (-00bH)
+
+L6A7C: INC HL
+ CALL 05E48H
+ LD A,002H
+ LD (PNMODE),A
+ JR L6A71 ; (-016H)
+
+L6A87: CALL L6AC6
+ CALL L6E5F
+ LD A,E
+ OR A
+ RET Z
+ CP 0ECH
+ JR NC,L6A99 ; (+005H)
+ CP 015H
+ JP NC,04AF2H
+L6A99: CALL 05E48H
+ BIT 7,E
+ JR NZ,L6AA8 ; (+008H)
+L6AA0: LD A,00AH
+ RST 018H
+ DB 006H
+ DEC E
+ JR NZ,L6AA0 ; (-007H)
+ RET
+
+L6AA8: LD A,003H
+ RST 018H
+ DB 006H
+ INC E
+ JR NZ,L6AA8 ; (-007H)
+ RET
+
+L6AB0: PUSH HL
+ LD HL,L03E7
+ JR L6ABA ; (+004H)
+
+L6AB6: PUSH HL
+ LD HL,L01E0
+L6ABA: PUSH HL
+ ADD HL,DE
+ POP HL
+ JR C,L6AC4 ; (+005H)
+ SBC HL,DE
+ JP C,04AF2H
+L6AC4: POP HL
+ RET
+
+L6AC6: LD B,001H
+ JR L6ACC ; (+002H)
+
+L6ACA: LD B,002H
+L6ACC: LD A,(PNMODE)
+ CP B
+ RET Z
+ JP L4B3C
+
+L6AD4: LD C,044H
+ LD DE,04A0EH
+ LD DE,04D0EH
+ LD DE,0520EH
+ CALL L6ACA
+ LD A,C
+ LD (06B26H),A
+ CP 04DH
+ JR NC,L6B0C ; (+022H)
+ CALL TEST1
+ DB 025H
+ JR NZ,L6B0C ; (+01cH)
+ CALL L6E4B
+ LD A,E
+ DEC A
+ CP 010H
+ JP NC,04AF2H
+ DEC DE
+ LD A,04CH
+ RST 018H
+ DB 006H
+ CALL L6DE2
+ CALL L6B68
+ CALL L413E
+ RET Z
+ CALL L5E73
+L6B0C: CALL L6E5F
+ CALL L5E73
+ CALL L6AB6
+ PUSH DE
+ CALL L6E5F
+ CP 02CH
+ JR Z,L6B20 ; (+003H)
+ CALL 05E48H
+L6B20: CALL L6AB0
+ POP BC
+ PUSH DE
+ LD A,000H
+ RST 018H
+ DB 006H
+ LD E,C
+ LD D,B
+ CALL L6DE2
+ CALL L6B6C
+ POP DE
+ CALL L6DE2
+ CALL L6B68
+ CALL L413E
+ RET Z
+ INC HL
+ JR L6B0C ; (-033H)
+
+L6B3F: CALL L6E4B
+ LD A,E
+ CP 004H
+ JP NC,04AF2H
+ CALL 05E48H
+ LD A,(PNMODE)
+ CP 002H
+ JR Z,L6B5F ; (+00dH)
+ CALL L6A74
+ LD A,002H
+ RST 018H
+ DB 006H
+ CALL L6B5F
+ JP L6A5B
+
+L6B5F: LD A,043H
+ RST 018H
+ DB 006H
+ LD A,E
+ OR 030H
+ RST 018H
+ DB 006H
+L6B68: LD A,00DH
+ JR L6B6E ; (+002H)
+
+L6B6C: LD A,02CH
+L6B6E: RST 018H
+ DB 006H
+ RET
+
+L6B71: CALL L6ACA
+ CALL 05E48H
+ LD A,048H
+ JR L6B6E ; (-00dH)
+
+L6B7B: CALL L6ACA
+ CALL 05E48H
+ LD A,049H
+ JR L6B6E ; (-017H)
+
+L6B85: CALL L6ACA
+ CALL TEST1
+ DB 05BH
+ JR NZ,L6BC6 ; (+038H)
+ CALL L6E4B
+ CP 040H
+ JP NC,04AF2H
+ PUSH DE
+ CALL L5E70
+ CALL L6E4B
+ CP 004H
+ JP NC,04AF2H
+ PUSH DE
+ CALL TESTX
+ DB 05DH
+ POP BC
+ POP DE
+ PUSH BC
+ LD A,053H
+ RST 018H
+ DB 006H
+ CALL L6DE2
+ CALL L6B6C
+ POP DE
+ LD A,051H
+ RST 018H
+ DB 006H
+ CALL L6DE2
+ CALL L6B68
+ CALL L413E
+ RET Z
+ CALL L5E73
+L6BC6: CALL L6E6F
+ CALL L413E
+ JR Z,L6BD2 ; (+004H)
+ CALL L5E73
+ DEC HL
+L6BD2: LD A,B
+ OR A
+ JR Z,L6BE3 ; (+00dH)
+ LD A,050H
+ RST 018H
+ DB 006H
+L6BDA: LD A,(DE)
+ RST 018H
+ DB 006H
+ INC DE
+ DJNZ L6BDA ; (-006H)
+ CALL L6B68
+L6BE3: CALL L413E
+ RET Z
+ INC HL
+ JR L6BC6 ; (-024H)
+
+L6BEA: CALL L6ACA
+ CALL L6E4B
+ CP 002H
+ JP NC,04AF2H
+ PUSH AF
+ CALL L5E70
+ CALL L6E5F
+ PUSH DE
+ CALL L5E73
+ CALL L6E4B
+ OR A
+ JP Z,04AF2H
+ CALL 05E48H
+ LD A,058H
+ RST 018H
+ DB 006H
+ POP BC
+ POP AF
+ PUSH DE
+ PUSH BC
+ OR 030H
+ RST 018H
+ DB 006H
+ CALL L6B6C
+ POP DE
+ CALL L6AB0
+ CALL L6DE2
+ CALL L6B6C
+ POP DE
+ CALL L6DE2
+ JP L6B68
+
+L6C2A: CALL L6ACA
+ PUSH HL
+ LD DE,L0000
+ LD HL,L6DC4
+ CALL L5E99
+ LD DE,L0168
+ LD HL,L6DC9
+ CALL L5E99
+ LD HL,L610D
+ LD DE,L6DCE
+ CALL L5E93
+ POP HL
+ CALL L6E8A
+ CALL L5E73
+ PUSH HL
+ LD HL,L6DB5
+ EX DE,HL
+ CALL L5E93
+ POP HL
+ CALL L6E8A
+ CALL L5E73
+ PUSH HL
+ LD HL,L6DBA
+ EX DE,HL
+ CALL L5E93
+ POP HL
+ CALL L6E8A
+ PUSH HL
+ PUSH AF
+ LD HL,L6DBF
+ EX DE,HL
+ CALL L5E93
+ LD A,(06DC0H)
+ RLCA
+ JP C,04AF2H
+ POP AF
+ CP 02CH
+ JR NZ,L6CBA ; (+03aH)
+ POP HL
+ INC HL
+ CALL L6E8A
+ PUSH HL
+ PUSH AF
+ LD HL,L6DC4
+ EX DE,HL
+ CALL L5E93
+ POP AF
+ CP 02CH
+ JR NZ,L6CBA ; (+027H)
+ POP HL
+ INC HL
+ CALL L6E8A
+ PUSH HL
+ PUSH AF
+ LD HL,L6DC9
+ EX DE,HL
+ CALL L5E93
+ POP AF
+ CP 02CH
+ JR NZ,L6CBA ; (+014H)
+ POP HL
+ INC HL
+ CALL L6E8A
+ PUSH HL
+ LD HL,L6DCE
+ EX DE,HL
+ CALL L5E93
+ LD A,(06DCFH)
+ RLCA
+ JP C,04AF2H
+L6CBA: POP HL
+ CALL 05E48H
+ PUSH HL
+ LD HL,L6DC9
+ LD DE,L6DC4
+ LD A,(L6DCE)
+ OR A
+ CALL NZ,L7A1C
+ JP C,04AF2H
+ CALL L6D6B
+ LD HL,L6DD3
+ LD (06D43H),HL
+ LD HL,L6DD8
+ LD (06D4EH),HL
+ CALL 06D3FH
+ LD A,(L6DCE)
+ OR A
+ JR Z,L6D19 ; (+032H)
+L6CE7: LD HL,L6DC4
+ LD DE,L6DCE
+ CALL L7985
+ LD DE,L6DC9
+ CALL L7A1C
+ JR NC,L6D04 ; (+00cH)
+ CALL L6D6B
+ CALL L6D3C
+ RST 018H
+ DB 00EH
+ JR NZ,L6CE7 ; (-01bH)
+ POP HL
+ RET
+
+L6D04: CALL L6D0C
+ CALL L6D3C
+ POP HL
+ RET
+
+L6D0C: LD HL,L6DC9
+ LD DE,L6DC4
+ LD BC,00005H
+ LDIR
+ JR L6D6B ; (+052H)
+
+L6D19: LD HL,L6DB5
+ LD (06D43H),HL
+ LD HL,L6DBA
+ LD (06D4EH),HL
+ CALL L6D3C
+ CALL L6D0C
+ LD HL,L6DD3
+ LD (06D43H),HL
+ LD HL,L6DD8
+ LD (06D4EH),HL
+ CALL L6D3C
+ POP HL
+ RET
+
+L6D3C: LD A,044H
+ LD HL,L4D3E
+ PUSH AF
+ LD HL,L6DB5
+ CALL L60B7
+ PUSH HL
+ EX DE,HL
+ CALL L6AB0
+ LD HL,L6DBA
+ CALL L60B7
+ PUSH HL
+ EX DE,HL
+ CALL L6AB0
+ POP HL
+ POP DE
+ POP AF
+ RST 018H
+ DB 006H
+ PUSH HL
+ CALL L6DE2
+ CALL L6B6C
+ POP DE
+ CALL L6DE2
+ JP L6B68
+
+L6D6B: LD DE,(INTFAC)
+ LD HL,L6DC4
+ CALL L5E93
+ LD HL,(INTFAC)
+ CALL L817C
+ CALL L7FC2
+ LD DE,L6DBF
+ CALL L7BB3
+ LD DE,L6DB5
+ CALL L7985
+ LD DE,L6DD3
+ CALL L5E93
+ LD DE,(INTFAC)
+ LD HL,L6DC4
+ CALL L5E93
+ LD HL,(INTFAC)
+ CALL L817C
+ CALL L7FD2
+ LD DE,L6DBF
+ CALL L7BB3
+ LD DE,L6DBA
+ CALL L7985
+ LD DE,L6DD8
+ JP L5E93
+
+L6DB5: DS 5, 000H
+L6DBA: DS 5, 000H
+L6DBF: DS 5, 000H
+L6DC4: DS 5, 000H
+L6DC9: DS 5, 000H
+L6DCE: DS 5, 000H
+L6DD3: DS 5, 000H
+L6DD8: DS 10, 000H
+L6DE2: PUSH AF
+ PUSH HL
+ LD HL,(INTFAC)
+ CALL L5E99
+ CALL L6028
+ RST 018H
+ DB 017H
+L6DEF: LD A,(DE)
+ RST 018H
+ DB 006H
+ INC DE
+ DJNZ L6DEF ; (-006H)
+ POP HL
+ POP AF
+ RET
+
+L6DF8: CALL L6AC6
+ CALL 05E48H
+ LD A,004H
+ RST 018H
+ DB 006H
+ RET
+
+L6E03: CALL L6AC6
+ CALL L6E5F
+ LD A,E
+ OR A
+ JP Z,04AF2H
+ CP 049H
+ JP NC,04AF2H
+ CALL 05E48H
+ LD A,009H
+ RST 018H
+ DB 006H
+ RST 018H
+ DB 006H
+ CALL L6DE2
+ JP L6B68
+
+L6E22: CP 09DH
+ JR Z,L6E31 ; (+00bH)
+ CP 0A1H
+ JP NZ,L4AEC
+ XOR A
+L6E2C: LD (L004D),A
+ INC HL
+ RET
+
+L6E31: CALL L6AC6
+ LD A,(L6A23)
+ CP 04EH
+ JP NZ,L4B3C
+ LD A,(L004D)
+ OR A
+ JR NZ,L6E2C ; (-016H)
+ CALL L5285
+ LD A,016H
+ RST 018H
+ DB 003H
+ JR L6E2C ; (-01fH)
+
+L6E4B: CALL L6E5F
+L6E4E: LD A,D
+ OR A
+ JP NZ,04AF2H
+ LD A,E
+ RET
+
+L6E55: CALL L6E9C
+ DEC DE
+ DEC DE
+ DEC DE
+ DEC DE
+ DEC DE
+ JR L6E62 ; (+003H)
+
+L6E5F: CALL L6E8A
+L6E62: PUSH AF
+ PUSH HL
+ EX DE,HL
+ CALL L791F
+ CALL L60B7
+ EX DE,HL
+ POP HL
+ POP AF
+ RET
+
+L6E6F: CALL L6E8A
+ PUSH AF
+ CALL L7916
+ PUSH HL
+ EX DE,HL
+ CALL L6E7E
+ POP HL
+ POP AF
+ RET
+
+L6E7E: LD B,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(STRST)
+ ADD HL,DE
+ EX DE,HL
+ LD A,B
+ RET
+
+L6E8A: LD DE,(VARED)
+ LD (TMPEND),DE
+L6E92: LD DE,(INTFAC)
+ PUSH DE
+ CALL L6E9C
+ POP DE
+ RET
+
+L6E9C: PUSH DE
+ LD DE,(TMPEND)
+ CALL L74E8
+ POP DE
+ CALL L6EC0
+L6EA8: CP 0EAH
+ RET NZ
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L6EC0
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL 07E65H
+ POP HL
+ POP AF
+ JR L6EA8 ; (-018H)
+
+L6EC0: CALL L6EDB
+L6EC3: CP 0EBH
+ RET NZ
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L6EDB
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL 07E62H
+ POP HL
+ POP AF
+ JR L6EC3 ; (-018H)
+
+L6EDB: CALL L6EF6
+L6EDE: CP 0ECH
+ RET NZ
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L6EF6
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7E5F
+ POP HL
+ POP AF
+ JR L6EDE ; (-018H)
+
+L6EF6: CALL TEST1
+ DB 0EDH
+ JR NZ,L6F0B ; (+00fH)
+ CALL L6F0B
+ PUSH AF
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L7E4F
+ POP HL
+ POP AF
+ RET
+
+L6F0B: CALL L6F75
+L6F0E: CP 0EEH
+ RET C
+ PUSH AF
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L6F75
+ POP BC
+ EX (SP),HL
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7A1C
+ EX AF,AF'
+ POP AF
+ CP 0F6H
+ JR NZ,L6F48 ; (+01eH)
+ EX AF,AF'
+ JR C,L6F43 ; (+016H)
+L6F2D: LD BC,L0000
+L6F30: LD (HL),C
+ INC HL
+ LD (HL),B
+ INC HL
+ XOR A
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ INC HL
+ LD (HL),A
+ LD A,005H
+ LD (L84CE),A
+ POP AF
+ POP HL
+ JR L6F0E ; (-035H)
+
+L6F43: LD BC,08081H
+ JR L6F30 ; (-018H)
+
+L6F48: CP QDPD
+ JR NZ,L6F53 ; (+007H)
+ EX AF,AF'
+ JR Z,L6F2D ; (-022H)
+ JR C,L6F2D ; (-024H)
+ JR L6F43 ; (-010H)
+
+L6F53: CP QDPC
+ JR NZ,L6F5C ; (+005H)
+ EX AF,AF'
+ JR Z,L6F43 ; (-017H)
+ JR L6F2D ; (-02fH)
+
+L6F5C: CP QDPA
+ JR C,L6F65 ; (+005H)
+ EX AF,AF'
+ JR NC,L6F43 ; (-020H)
+ JR L6F2D ; (-038H)
+
+L6F65: CP 0F0H
+ JR C,L6F70 ; (+007H)
+ EX AF,AF'
+ JR Z,L6F43 ; (-029H)
+ JR C,L6F43 ; (-02bH)
+ JR L6F2D ; (-043H)
+
+L6F70: EX AF,AF'
+ JR Z,L6F2D ; (-046H)
+ JR L6F43 ; (-032H)
+
+L6F75: CALL L6FA0
+L6F78: CP 0F7H
+ RET C
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ JR Z,L6F92 ; (+010H)
+ CALL L6FA0
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L797C
+L6F8E: POP HL
+ POP AF
+ JR L6F78 ; (-01aH)
+
+L6F92: CALL L6FA0
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7985
+ JR L6F8E ; (-012H)
+
+L6FA0: CALL L6FCB
+L6FA3: CP FDPB
+ RET C
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ JR Z,L6FBD ; (+010H)
+ CALL L6FCB
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7EBB
+L6FB9: POP HL
+ POP AF
+ JR L6FA3 ; (-01aH)
+
+L6FBD: CALL L6FCB
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7EDA
+ JR L6FB9 ; (-012H)
+
+L6FCB: CALL L6FF6
+L6FCE: CP FDPD
+ RET C
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ JR Z,L6FE8 ; (+010H)
+ CALL L6FF6
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7BB3
+L6FE4: POP HL
+ POP AF
+ JR L6FCE ; (-01aH)
+
+L6FE8: CALL L6FF6
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7C9E
+ JR L6FE4 ; (-012H)
+
+L6FF6: CALL TEST1
+ DB 0F7H
+ JR Z,L6FF6 ; (-006H)
+ CP FDPA
+ JR NZ,L7006 ; (+006H)
+ INC HL
+ CALL L7006
+ JR L702F ; (+029H)
+
+L7006: CALL L703B
+L7009: CP 0FDH
+ RET NZ
+ LD A,(L84CE)
+ PUSH AF
+ INC HL
+ CALL L7021
+ POP BC
+ PUSH AF
+ PUSH HL
+ CALL L74C5
+ CALL L7DD3
+ POP HL
+ POP AF
+ JR L7009 ; (-018H)
+
+L7021: CALL TEST1
+ DB 0F7H
+ JR Z,L7021 ; (-006H)
+ CP FDPA
+ JR NZ,L703B ; (+010H)
+ INC HL
+ CALL L703B
+L702F: PUSH AF
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L796F
+ POP HL
+ POP AF
+ RET
+
+L703B: CALL L413E
+ JP Z,L4AEC
+ CALL L7047
+ JP HLFTCH
+
+L7047: PUSH HL
+ LD HL,(MEMLMT)
+ SCF
+ SBC HL,DE
+ JP C,04AFBH
+ POP HL
+ CP LSE4
+ JR Z,L7064 ; (+00eH)
+ CP 020H
+ JR NC,L70A4 ; (+04aH)
+L705A: INC HL
+ CP 015H
+ JR C,L7073 ; (+014H)
+ CALL L5E93
+ JR L706D ; (+009H)
+
+L7064: INC HL
+ PUSH HL
+ LD HL,0818FH
+ CALL L5E93
+ POP HL
+L706D: LD A,005H
+L706F: LD (L84CE),A
+ RET
+
+L7073: CP 00BH
+ JR NC,L7080 ; (+009H)
+ DEC A
+ JP M,L4AEC
+ LD B,000H
+ LD C,A
+ JR L7091 ; (+011H)
+
+L7080: LD C,(HL)
+ INC HL
+ LD B,(HL)
+ INC HL
+ CP 00CH
+ JR NZ,L7091 ; (+009H)
+ INC BC
+ INC BC
+ LD A,(BC)
+ INC BC
+ EX AF,AF'
+ LD A,(BC)
+ LD B,A
+ EX AF,AF'
+ LD C,A
+L7091: PUSH HL
+ PUSH DE
+ EX DE,HL
+ LD E,C
+ LD D,B
+ CALL L5E99
+ POP DE
+ POP HL
+ LD A,005H
+L709D: INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ JR L706F ; (-035H)
+
+L70A4: CP 022H
+ JR NZ,L70D7 ; (+02fH)
+ INC HL
+ PUSH HL
+ CALL L74D0
+ EX (SP),HL
+ PUSH HL
+ LD HL,(TMPEND)
+ PUSH BC
+ LD BC,(STRST)
+ OR A
+ SBC HL,BC
+ POP BC
+ EX DE,HL
+ LD (HL),B
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ POP DE
+ PUSH HL
+ LD HL,(TMPEND)
+ CALL L74DC
+ LD (TMPEND),HL
+ POP DE
+ POP HL
+ LD A,003H
+ LD (L84CE),A
+ RET
+
+L70D7: CP 028H
+ JR NZ,L70E2 ; (+007H)
+ INC HL
+ CALL L6E9C
+ JP L5E82
+
+L70E2: OR A
+ JP P,L76F5
+ CP 0E7H
+ INC HL
+ JR NZ,L70F0 ; (+005H)
+ LD A,0A8H
+ PUSH AF
+ JR L7125 ; (+035H)
+
+L70F0: CP 0FFH
+ JP NZ,L4AEC
+ LD A,(HL)
+ INC HL
+ CP 0A0H
+ JP Z,L71A5
+ CP 0C8H
+ JP NC,L4AEC
+ CP 0BAH
+ JR NC,L7155 ; (+050H)
+ PUSH AF
+ CP 0B3H
+ JR NC,L7146 ; (+03cH)
+ LD B,003H
+ CP 0AAH
+ JR Z,L7125 ; (+015H)
+ CP 0ABH
+ JR NC,L7125 ; (+011H)
+ LD B,005H
+ CP 088H
+ JR Z,L7140 ; (+026H)
+ CP 089H
+ JR NZ,L7125 ; (+007H)
+ CALL TEST1
+ DB 040H
+ LD (081A8H),A
+L7125: CALL L5E78
+L7128: PUSH BC
+ CALL L6E9C
+ CALL L5E82
+ POP AF
+ CALL L7912
+L7133: POP AF
+ PUSH DE
+ PUSH HL
+ LD HL,0FFFBH
+ ADD HL,DE
+ CALL L7155
+ POP HL
+ POP DE
+ RET
+
+L7140: CALL TEST1
+ DB 028H
+ JR Z,L7128 ; (-01eH)
+L7146: LD A,005H
+ LD (L84CE),A
+ PUSH HL
+ LD HL,L6112
+ CALL L5E93
+ POP HL
+ JR L7133 ; (-022H)
+
+L7155: PUSH HL
+ ADD A,A
+ LD L,A
+ LD H,000H
+ LD BC,L450A
+ ADD HL,BC
+ LD A,(HL)
+ INC HL
+ LD H,(HL)
+ LD L,A
+ EX (SP),HL
+ RET
+
+L7164: EX DE,HL
+ LD HL,0FDF1H
+ ADD HL,SP
+ LD BC,(TMPEND)
+ OR A
+ SBC HL,BC
+ EX DE,HL
+ JR NC,L7186 ; (+013H)
+ XOR A
+ JR L7183 ; (+00dH)
+
+L7176: LD A,(L0054)
+ JR L7183 ; (+008H)
+
+L717B: LD A,(00055H)
+ JR L7183 ; (+003H)
+
+L7180: LD A,(L8485)
+L7183: LD E,A
+ LD D,000H
+L7186: LD A,005H
+ LD (L84CE),A
+ JP L5E99
+
+L718E: LD DE,(08487H)
+ CALL L5E99
+ INC HL
+ BIT 7,(HL)
+ DEC HL
+ RET Z
+ LD DE,L71A0
+ JP L7985
+
+L71A0: SUB C
+ NOP
+ NOP
+ NOP
+ NOP
+L71A5: CALL L5E78
+ LD B,000H
+L71AA: PUSH BC
+ PUSH DE
+ CALL L6E55
+ CALL L6E4E
+ POP DE
+ POP BC
+ PUSH AF
+ INC B
+ CALL TEST1
+ DB 02CH
+ JR Z,L71AA ; (-012H)
+ CALL L5E82
+ LD A,B
+ EXX
+ LD B,A
+ LD HL,(TMPEND)
+ CALL ADDHLA
+ LD D,H
+ LD E,L
+ CALL L74E8
+L71CD: DEC HL
+ POP AF
+ LD (HL),A
+ DJNZ L71CD ; (-005H)
+ EXX
+ LD A,B
+ EXX
+ LD B,A
+L71D6: LD (TMPEND),DE
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ PUSH HL
+ LD A,B
+ EXX
+ EX DE,HL
+ LD (HL),A
+ INC HL
+ POP BC
+ LD (HL),C
+ INC HL
+ LD (HL),B
+ LD BC,L0003
+ ADD HL,BC
+L71EF: EX DE,HL
+ LD A,003H
+ LD (L84CE),A
+ RET
+
+L71F6: PUSH HL
+ CALL L60B7
+ CALL L69E0
+ RST 018H
+ DB 017H
+L71FF: LD A,B
+ OR A
+ JR Z,L7213 ; (+010H)
+ LD HL,(TMPEND)
+ PUSH HL
+ PUSH BC
+ CALL L74DC
+ POP BC
+ EX DE,HL
+ POP HL
+ EXX
+ POP DE
+ EXX
+ JR L71D6 ; (-03dH)
+
+L7213: POP HL
+ CALL L7967
+ JR L71EF ; (-02aH)
+
+L7219: PUSH HL
+ CALL L722A
+ LD B,A
+ LD C,A
+ OR A
+ LD A,020H
+ PUSH DE
+ CALL NZ,?SETDE
+ POP DE
+ LD B,C
+ JR L71FF ; (-02bH)
+
+L722A: CALL L60B7
+ LD DE,KEYBUF
+ LD A,H
+ OR A
+ JP NZ,04AF2H
+ LD A,L
+ RET
+
+L7237: PUSH HL
+ CALL L6028
+ LD A,(DE)
+ CP 020H
+ JR NZ,L7241 ; (+001H)
+ INC DE
+L7241: RST 018H
+ DB 017H
+ JR L71FF ; (-046H)
+
+L7245: CALL L5E78
+ CALL L5882
+ LD B,A
+ CALL L5E7F
+ LD A,B
+ PUSH HL
+ PUSH DE
+ RST 018H
+ DB 029H
+ LD DE,0FFFFH
+ JR C,L7261 ; (+008H)
+ INC HL
+ BIT 7,(HL)
+ JR NZ,L7261 ; (+003H)
+ LD DE,L0000
+L7261: POP HL
+ CALL L5E99
+ LD A,005H
+ LD (L84CE),A
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ POP HL
+ RET
+
+L7272: PUSH HL
+ CALL L6E7E
+ OR A
+ JR Z,L727A ; (+001H)
+ LD A,(DE)
+L727A: JR L7280 ; (+004H)
+
+L727C: PUSH HL
+ CALL L6E7E
+L7280: POP HL
+ JP L7183
+
+L7284: PUSH HL
+ CALL L6E7E
+ LD HL,(TMPEND)
+ PUSH HL
+ CALL L74DC
+ LD (HL),000H
+ POP DE
+ POP HL
+ JP L5EDC
+
+L7296: CALL L7312
+ CALL L5E82
+ CALL L730B
+ EX DE,HL
+ LD A,(HL)
+ CP C
+ JR NC,L72A5 ; (+001H)
+ LD C,A
+L72A5: LD (HL),C
+ LD BC,00005H
+L72A9: LD A,003H
+ ADD HL,BC
+ EX DE,HL
+ LD (L84CE),A
+ JP HLFTCH
+
+L72B3: CALL L7312
+ CALL L5E82
+ CALL L730B
+ EX DE,HL
+ LD A,(HL)
+ SUB C
+ JR NC,L72C3 ; (+002H)
+ XOR A
+ LD C,(HL)
+L72C3: LD (HL),C
+ INC HL
+ ADD A,(HL)
+ LD (HL),A
+ INC HL
+ JR NC,L72CB ; (+001H)
+ INC (HL)
+L72CB: LD BC,L0003
+ JR L72A9 ; (-027H)
+
+L72D0: CALL L7312
+ CALL L730B
+ OR A
+ JP Z,04AF2H
+ PUSH AF
+ CALL TEST1
+ DB 029H
+ LD A,0FFH
+ JR Z,L72F7 ; (+014H)
+ CALL L5E70
+ PUSH DE
+ EX DE,HL
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ CALL L6E55
+ CALL L5E82
+ CALL L6E4E
+ POP DE
+L72F7: POP BC
+ LD C,A
+ EX DE,HL
+ LD A,(HL)
+ SUB B
+ JR C,L7307 ; (+009H)
+ INC A
+ CP C
+ JR NC,L7303 ; (+001H)
+ LD C,A
+L7303: LD A,B
+ DEC A
+ JR L72C3 ; (-044H)
+
+L7307: XOR A
+ LD C,A
+ JR L72C3 ; (-048H)
+
+L730B: LD A,B
+ OR A
+ JP NZ,04AF2H
+ LD A,C
+ RET
+
+L7312: CALL L5E78
+ PUSH DE
+ CALL L6E9C
+ CALL L5E73
+ CALL L7916
+ CALL L6E55
+ LD C,E
+ LD B,D
+ POP DE
+ RET
+
+L7326: PUSH HL
+ PUSH DE
+ LD HL,(TMPEND)
+ PUSH HL
+ LD A,030H
+ LD B,006H
+ CALL ?SETHL
+ RST 018H
+ DB 025H
+ POP HL
+ OR A
+ JR Z,L733E ; (+005H)
+ INC (HL)
+ INC HL
+ INC (HL)
+ INC (HL)
+ DEC HL
+L733E: EX DE,HL
+ LD BC,08CA0H
+ CALL L73B5
+ LD BC,L0E10
+ CALL L73B5
+ CP 03AH
+ JR C,L7359 ; (+00aH)
+ SUB 00AH
+ DEC DE
+ LD (DE),A
+ DEC DE
+ LD A,(DE)
+ INC A
+ LD (DE),A
+ INC DE
+ INC DE
+L7359: DEC DE
+ DEC DE
+ LD A,(DE)
+ INC DE
+ LD B,A
+ LD A,(DE)
+ INC DE
+ LD C,A
+ LD A,B
+ CP 032H
+ JR NZ,L7377 ; (+011H)
+ LD A,C
+ CP 034H
+ JR NZ,L7377 ; (+00cH)
+ LD HL,(TMPEND)
+ LD A,030H
+ LD B,006H
+ CALL ?SETHL
+ JR L738D ; (+016H)
+
+L7377: LD BC,L0258
+ CALL L73B5
+ LD BC,0003CH
+ CALL L73B5
+ LD BC,0000AH
+ CALL L73B5
+ LD A,030H
+ ADD A,L
+ LD (DE),A
+L738D: LD HL,(TMPEND)
+ LD DE,L0006
+ EX DE,HL
+ ADD HL,DE
+ LD (TMPEND),HL
+ EX DE,HL
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ EX DE,HL
+ POP HL
+ LD (HL),006H
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ POP HL
+ LD A,003H
+ LD (L84CE),A
+ JP HLFTCH
+
+L73B5: OR A
+ SBC HL,BC
+ JR C,L73BF ; (+005H)
+ LD A,(DE)
+ INC A
+ LD (DE),A
+ JR L73B5 ; (-00aH)
+
+L73BF: ADD HL,BC
+ INC DE
+ RET
+
+L73C2: CALL TESTX
+ DB QDPC
+ CALL L6E6F
+ LD A,B
+ CP 006H
+ JP NZ,04AF2H
+ PUSH HL
+ PUSH DE
+ LD HL,L0000
+ CALL L7403
+ CP 018H
+ JP NC,04AF2H
+ CP 00CH
+ LD A,000H
+ JR C,L73EB ; (+009H)
+ PUSH DE
+ LD DE,L000C
+ OR A
+ SBC HL,DE
+ POP DE
+ INC A
+L73EB: PUSH AF
+ CALL L7403
+ CP 03CH
+ JP NC,04AF2H
+ CALL L7403
+ CP 03CH
+ JP NC,04AF2H
+ POP AF
+ EX DE,HL
+ RST 018H
+ DB 026H
+ POP DE
+ POP HL
+ RET
+
+L7403: PUSH DE
+ LD D,H
+ LD E,L
+ ADD HL,HL
+ ADD HL,HL
+ ADD HL,DE
+ LD D,H
+ LD E,L
+ ADD HL,HL
+ ADD HL,DE
+ ADD HL,HL
+ ADD HL,HL
+ POP DE
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JP C,04AF2H
+ CP 00AH
+ JP NC,04AF2H
+ PUSH BC
+ LD C,A
+ ADD A,A
+ ADD A,A
+ ADD A,C
+ ADD A,A
+ LD C,A
+ LD A,(DE)
+ INC DE
+ SUB 030H
+ JP C,04AF2H
+L742A: CP 00AH
+ JP NC,04AF2H
+ ADD A,C
+ LD C,A
+ LD B,000H
+ ADD HL,BC
+ POP BC
+ RET
+
+L7436: LD DE,(VARED)
+ LD (TMPEND),DE
+ LD DE,(INTFAC)
+L7442: PUSH DE
+ CALL L7495
+L7446: LD A,(HL)
+ CP 028H
+ JP Z,L74FB
+ PUSH HL
+ CALL L77B6
+ JR NC,L7458 ; (+006H)
+ LD A,C
+ LD C,L
+ LD B,H
+ POP HL
+ POP DE
+ RET
+
+L7458: LD A,(DE)
+ ADD A,C
+ ADD A,002H
+ PUSH BC
+ EX DE,HL
+ LD HL,(TMPEND)
+ PUSH HL
+ OR A
+ SBC HL,DE
+ INC HL
+ LD C,L
+ LD B,H
+ POP HL
+ PUSH DE
+ EX DE,HL
+ LD L,A
+ LD H,000H
+ ADD HL,DE
+ EX DE,HL
+ CALL L74E8
+ LDDR
+ LD E,A
+ LD D,000H
+ RST 018H
+ DB 01AH
+ POP HL
+ POP BC
+ LD DE,KEYBUF
+ LD (HL),C
+ INC HL
+ SCF
+ SBC A,C
+ LD B,A
+L7484: LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ DJNZ L7484 ; (-006H)
+ PUSH HL
+ LD B,C
+ CALL ?CLRHL
+ LD (HL),A
+ LD A,C
+ POP BC
+ POP HL
+ POP DE
+ RET
+
+L7495: CALL HLFTCH
+ SUB 041H
+ CP 01AH
+ JP NC,L4AEC
+ LD DE,KEYBUF
+ LD B,000H
+L74A4: INC DE
+ LD A,(HL)
+ CALL L5ECB
+ JR C,L74B6 ; (+00bH)
+ LD (DE),A
+ INC B
+ LD A,B
+ CP 003H
+ JR C,L74B3 ; (+001H)
+ DEC B
+L74B3: INC HL
+ JR L74A4 ; (-012H)
+
+L74B6: LD DE,KEYBUF
+ EX DE,HL
+ LD (HL),B
+ EX DE,HL
+ LD C,005H
+ CP 024H
+ RET NZ
+ LD C,003H
+ INC HL
+ RET
+
+L74C5: LD HL,0FFFBH
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ ADD HL,DE
+ LD A,B
+ JP L7912
+
+L74D0: LD B,0FFH
+L74D2: INC B
+ LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ CP 022H
+ RET Z
+ JR L74D2 ; (-00aH)
+
+L74DC: LD A,B
+ OR A
+ RET Z
+ CALL LDHLDE
+ EX DE,HL
+ CALL L74E8
+ EX DE,HL
+ RET
+
+L74E8: PUSH HL
+ LD HL,0FE00H
+ ADD HL,SP
+ SBC HL,DE
+ POP HL
+ RET NC
+ JP L4B2C
+
+L74F4: LD DE,(INTFAC)
+ PUSH DE
+ JR L7503 ; (+008H)
+
+L74FB: XOR A
+ LD (L76F4),A
+ INC HL
+ LD (L76F2),HL
+L7503: LD B,000H
+ EXX
+ POP HL
+ PUSH HL
+ PUSH HL
+ LD HL,(TMPEND)
+ LD DE,KEYBUF
+ PUSH HL
+ LD A,(DE)
+ LD (HL),A
+ INC DE
+ INC HL
+ LD B,A
+ CALL L74DC
+ POP DE
+ LD (TMPEND),HL
+ LD HL,(STRST)
+ EX DE,HL
+ OR A
+ SBC HL,DE
+ EX (SP),HL
+ PUSH HL
+ EXX
+L7526: POP DE
+ PUSH DE
+ PUSH BC
+ LD BC,(076F2H)
+ LD A,(L76F4)
+ PUSH BC
+ PUSH AF
+ LD BC,(0849CH)
+ PUSH BC
+ CALL L6E55
+ BIT 7,D
+ JP NZ,04AF2H
+ EX AF,AF'
+ POP BC
+ LD (0849CH),BC
+ POP AF
+ LD (L76F4),A
+ POP BC
+ LD (076F2H),BC
+ EX AF,AF'
+ INC HL
+ CP 029H
+ JR Z,L756C ; (+018H)
+ CP 02CH
+ JP NZ,L4AEC
+ POP BC
+ INC B
+ LD A,B
+ CP 004H
+ JP NC,04AF2H
+ EXX
+ POP HL
+ POP DE
+ EXX
+ PUSH DE
+ EXX
+ PUSH DE
+ PUSH HL
+ EXX
+ JR L7526 ; (-046H)
+
+L756C: POP BC
+ EXX
+ POP HL
+ POP DE
+ EXX
+ INC B
+ PUSH DE
+ PUSH HL
+ EXX
+ LD HL,(STRST)
+ ADD HL,DE
+ LD B,(HL)
+ INC B
+ LD DE,KEYBUF
+ CALL LDDEHL
+ EXX
+ SET 7,C
+ CALL L77B6
+ RES 7,C
+ JR NC,L75E1 ; (+056H)
+ LD A,B
+ CP (HL)
+ JP NZ,04AFEH
+ INC HL
+ EX DE,HL
+ POP HL
+ LD (L849C),HL
+ EXX
+ LD HL,L0000
+ EXX
+ EX DE,HL
+L759C: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX (SP),HL
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C8
+ EXX
+ PUSH HL
+ OR A
+ SBC HL,DE
+ JP NC,04AF2H
+ EXX
+ POP DE
+ CALL L76C4
+ EXX
+ POP HL
+ DJNZ L759C ; (-01cH)
+ PUSH HL
+ EXX
+ LD A,C
+ LD D,B
+ BIT 6,A
+ JR NZ,L75D4 ; (+014H)
+ AND 00FH
+ LD E,A
+ PUSH AF
+ CALL L76C8
+ PUSH HL
+ EXX
+ POP BC
+ POP AF
+ POP HL
+ ADD HL,BC
+ LD C,L
+ LD B,H
+L75CF: LD HL,(L849C)
+ POP DE
+ RET
+
+L75D4: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ POP HL
+ LD C,L
+ LD B,H
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ AND 00FH
+ JR L75CF ; (-012H)
+
+L75E1: EXX
+ LD A,(L76F4)
+ OR A
+ JP Z,04AF2H
+ POP HL
+ LD (L849C),HL
+ EXX
+ LD DE,(TMPEND)
+ LD L,B
+ LD H,000H
+ ADD HL,HL
+ ADD HL,DE
+ EX DE,HL
+ INC DE
+ CALL L74E8
+ LD (HL),B
+ INC HL
+ EXX
+ LD HL,00001H
+ EXX
+L7603: POP DE
+ LD A,(L76F4)
+ OR A
+ JR NZ,L7616 ; (+00cH)
+ PUSH HL
+ EX DE,HL
+ LD DE,0000AH
+ SCF
+ SBC HL,DE
+ JP NC,04AF2H
+ POP HL
+L7616: INC DE
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C8
+ EXX
+ DJNZ L7603 ; (-021H)
+ DB 059H
+ LD D,000H
+ PUSH BC
+ PUSH DE
+ EXX
+ POP DE
+ CALL L76C8
+ PUSH HL
+ EXX
+ POP BC
+ PUSH BC
+ EX DE,HL
+ LD HL,(TMPEND)
+ LD L,(HL)
+ LD H,000H
+ ADD HL,HL
+ LD A,(KEYBUF)
+ ADD A,005H
+ ADD A,L
+ LD L,A
+ LD A,000H
+ ADC A,H
+ LD H,A
+ JR C,L764C ; (+005H)
+ ADD HL,BC
+ JR C,L764C ; (+002H)
+ PUSH HL
+ ADD HL,DE
+L764C: JP C,L4B2C
+ EX DE,HL
+ CALL L74E8
+ PUSH HL
+ EXX
+ POP HL
+ LD BC,(STRST)
+ DEC BC
+ OR A
+ SBC HL,BC
+ PUSH HL
+ EXX
+ POP BC
+ LDDR
+ POP DE
+ RST 018H
+ DB 01AH
+ POP BC
+ PUSH DE
+ EXX
+ POP DE
+ LD H,B
+ LD L,C
+ POP BC
+ LD A,C
+ OR 080H
+ LD (HL),A
+ INC HL
+ DEC DE
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,KEYBUF
+ LD A,(DE)
+ INC A
+ LD B,A
+ CALL LDHLDE
+ LD DE,(TMPEND)
+ LD A,(DE)
+ LD (HL),A
+ INC HL
+ INC DE
+ ADD A,A
+ LD B,A
+ CALL LDHLDE
+ PUSH HL
+ EXX
+ POP HL
+L7690: XOR A
+ LD (HL),A
+ INC HL
+ DEC BC
+ LD A,B
+ OR C
+ JR NZ,L7690 ; (-008H)
+ LD (HL),A
+ EXX
+ POP DE
+ LD A,(L76F4)
+ OR A
+ JR Z,L76A5 ; (+004H)
+ LD HL,(L849C)
+ RET
+
+L76A5: LD HL,(L76F2)
+ PUSH DE
+ JP L7503
+
+L76AC: LD A,0FFH
+ LD (L76F4),A
+L76B1: CALL L7495
+ LD A,(HL)
+ CALL L5E7B
+ CALL L74F4
+ CALL HLFTCH
+ CP 02CH
+ RET NZ
+ INC HL
+ JR L76B1 ; (-013H)
+
+L76C4: ADD HL,DE
+ RET NC
+ JR L76EF ; (+027H)
+
+L76C8: PUSH BC
+ EX DE,HL
+ LD C,L
+ LD A,H
+ LD HL,L0000
+ CALL L76D8
+ LD A,C
+ CALL L76D8
+ POP BC
+ RET
+
+L76D8: OR A
+ JR Z,L76E9 ; (+00eH)
+ LD B,008H
+L76DD: ADD HL,HL
+ JR C,L76EF ; (+00fH)
+ RLCA
+ JR NC,L76E6 ; (+003H)
+ ADD HL,DE
+ JR C,L76EF ; (+009H)
+L76E6: DJNZ L76DD ; (-00bH)
+ RET
+
+L76E9: LD A,H
+ LD H,L
+ LD L,000H
+ OR A
+ RET Z
+L76EF: JP 04AFBH
+
+L76F2: NOP
+ NOP
+L76F4: NOP
+L76F5: SUB 041H
+ CP 01AH
+ JP NC,L4AEC
+ LD BC,(07928H)
+ LD A,B
+ OR C
+ JR NZ,L7716 ; (+012H)
+ CALL L7442
+L7707: PUSH DE
+ PUSH HL
+ LD L,C
+ LD H,B
+ LD B,A
+ LD C,A
+ CALL LDDEHL
+ POP HL
+ LD A,C
+ POP DE
+ JP L709D
+
+L7716: PUSH DE
+ CALL L7495
+ PUSH HL
+ INC B
+ LD DE,KEYBUF
+ LD HL,(TMPEND)
+ CALL L74DC
+ LD B,000H
+ LD HL,(L7928)
+ CALL HLFTCH
+ CP QDPC
+ JR Z,L7760 ; (+02fH)
+ CP 028H
+ JR NZ,L775D ; (+028H)
+L7735: INC HL
+ INC B
+ PUSH BC
+ CALL L7495
+ LD A,C
+ POP DE
+ CP E
+ LD C,E
+ JR NZ,L7752 ; (+011H)
+ PUSH DE
+ LD C,B
+ INC C
+ PUSH HL
+ LD HL,(TMPEND)
+ LD DE,KEYBUF
+ CALL L7953
+ POP HL
+ POP BC
+ JR Z,L7776 ; (+024H)
+L7752: CALL HLFTCH
+ CP 029H
+ JR Z,L7760 ; (+007H)
+ CP 02CH
+ JR Z,L7735 ; (-028H)
+L775D: JP L4AEC
+
+L7760: LD HL,(TMPEND)
+ LD DE,KEYBUF
+ LD A,(HL)
+ LD (DE),A
+ LD B,A
+L7769: INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ DJNZ L7769 ; (-006H)
+ POP HL
+ POP DE
+ CALL L77B2
+ JR L7707 ; (-06fH)
+
+L7776: LD HL,(L792A)
+ CALL L5E78
+ DEC B
+ JR Z,L7797 ; (+018H)
+ DEC HL
+L7780: PUSH BC
+L7781: CALL L51A2
+ CALL L413E
+ JP Z,L4AEC
+ CP 029H
+ JP Z,L4AEC
+ CP 02CH
+ JR NZ,L7781 ; (-012H)
+ POP BC
+ DJNZ L7780 ; (-016H)
+ INC HL
+L7797: EX DE,HL
+ POP HL
+ EX (SP),HL
+ EX DE,HL
+ LD BC,(07928H)
+ PUSH BC
+ LD BC,L0000
+ LD (07928H),BC
+ CALL L6E9C
+ POP HL
+ LD (L7928),HL
+ POP HL
+ JP HLFTCH
+
+L77B2: PUSH DE
+ JP L7446
+
+L77B6: LD HL,(VARST)
+L77B9: LD DE,KEYBUF
+ LD A,(HL)
+ OR A
+ RET Z
+ CP 040H
+ JR NC,L77EA ; (+027H)
+ CP C
+ JR NZ,L77DF ; (+019H)
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77DD ; (+012H)
+ LD B,A
+L77CC: INC DE
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77D7 ; (+005H)
+ DJNZ L77CC ; (-008H)
+ INC HL
+ SCF
+ RET
+
+L77D7: INC HL
+ DJNZ L77D7 ; (-003H)
+ LD A,C
+ JR L77E4 ; (+007H)
+
+L77DD: LD A,C
+ DEC HL
+L77DF: AND 00FH
+ INC HL
+ ADD A,(HL)
+ INC HL
+L77E4: LD E,A
+ LD D,000H
+ ADD HL,DE
+ JR L77B9 ; (-031H)
+
+L77EA: CP C
+ JR Z,L7801 ; (+014H)
+ INC HL
+L77EE: LD E,(HL)
+ INC HL
+ LD D,(HL)
+ DEC HL
+ ADD HL,DE
+ JR L77B9 ; (-03cH)
+
+L77F5: LD A,C
+ SUB B
+ CPL
+ LD C,A
+ LD B,0FFH
+ ADD HL,BC
+ POP BC
+L77FD: DEC HL
+ DEC HL
+ JR L77EE ; (-013H)
+
+L7801: LD A,(HL)
+ EXX
+ LD C,A
+ LD B,000H
+ EXX
+ INC HL
+ PUSH DE
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ INC HL
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ POP DE
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77FD ; (-018H)
+ PUSH BC
+ LD B,A
+ LD C,A
+L7818: INC HL
+ INC DE
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L77F5 ; (-029H)
+ DJNZ L7818 ; (-008H)
+ INC HL
+ POP BC
+ SCF
+ RET
+
+L7824: CALL L7495
+ SET 6,C
+ PUSH HL
+ CALL L77B6
+ JP C,04AFEH
+ LD (HL),C
+ EX (SP),HL
+ PUSH HL
+ DEC HL
+L7834: CALL L51A2
+ OR A
+ JR Z,L783E ; (+004H)
+ CP 03AH
+ JR NZ,L7834 ; (-00aH)
+L783E: POP DE
+ PUSH HL
+ INC HL
+ SBC HL,DE
+ LD A,(KEYBUF)
+ ADD A,004H
+ LD C,A
+ LD B,000H
+ LD A,L
+ ADD HL,BC
+ LD B,A
+ PUSH HL
+ EXX
+ POP BC
+ PUSH BC
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,L0000
+ ADD HL,SP
+ LD DE,(TMPEND)
+ DEC H
+ OR A
+ SBC HL,DE
+ LD A,00CH
+ JP C,L4B2E
+ POP BC
+ POP DE
+ POP HL
+ LD HL,(TMPEND)
+ PUSH HL
+ ADD HL,BC
+ EX (SP),HL
+ PUSH HL
+ LD DE,(STRST)
+ OR A
+ SBC HL,DE
+ LD C,L
+ LD B,H
+ POP HL
+ POP DE
+ LDDR
+ POP DE
+ RST 018H
+ DB 01AH
+ DEC DE
+ POP HL
+ EX (SP),HL
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ LD DE,KEYBUF
+ LD A,(DE)
+ LD (HL),A
+ LD B,A
+L788E: INC DE
+ INC HL
+ LD A,(DE)
+ LD (HL),A
+ DJNZ L788E ; (-006H)
+ INC HL
+ PUSH HL
+ EXX
+ POP HL
+ CALL LDHLDE
+ LD (HL),000H
+ POP HL
+ RET
+
+L789F: PUSH DE
+ CALL L7495
+ POP IX
+ PUSH BC
+ SET 6,C
+ LD DE,(0792AH)
+ LD (L792A),HL
+ PUSH DE
+ CALL L77B6
+ JP NC,04B0AH
+ LD DE,(07928H)
+ LD (L7928),HL
+ PUSH DE
+ PUSH IX
+ DEC HL
+L78C1: CALL L51A2
+ CALL L413E
+ JP Z,L4AEC
+ CP QDPC
+ JR NZ,L78C1 ; (-00dH)
+ INC HL
+ POP DE
+ PUSH DE
+ CALL L6E9C
+ POP DE
+ LD HL,(L792A)
+ POP BC
+ LD (07928H),BC
+ POP BC
+ LD (0792AH),BC
+ EX DE,HL
+ POP BC
+ LD A,C
+ CALL L7912
+ LD BC,00005H
+ ADD HL,BC
+ EX DE,HL
+ CALL HLFTCH
+ CP 028H
+ RET NZ
+ PUSH DE
+ LD B,001H
+L78F6: PUSH BC
+ CALL L51A2
+ POP BC
+ CALL L4141
+ JP Z,L4AEC
+ CP 028H
+ JR NZ,L7906 ; (+001H)
+ INC B
+L7906: CP 029H
+ JR NZ,L78F6 ; (-014H)
+ DJNZ L78F6 ; (-016H)
+ INC HL
+ CALL HLFTCH
+ POP DE
+ RET
+
+L7912: CP 003H
+ JR NZ,L791F ; (+009H)
+L7916: LD A,(L84CE)
+ CP 003H
+ RET Z
+ JP 04AF5H
+
+L791F: LD A,(L84CE)
+ CP 003H
+ RET NZ
+ JP 04AF5H
+
+L7928: NOP
+ NOP
+L792A: NOP
+ NOP
+L792C: PUSH HL
+ CALL L60B7
+ LD A,H
+ OR A
+ JP NZ,04AF2H
+ LD A,L
+ CP 008H
+ JP NC,04AF2H
+ RST 018H
+ DB 012H
+ POP HL
+ JR C,L794E ; (+00eH)
+ JR Z,L794E ; (+00cH)
+ LD DE,0FFFFH
+L7945: CALL L5E99
+ LD A,005H
+ LD (L84CE),A
+ RET
+
+L794E: LD E,A
+ LD D,000H
+ JR L7945 ; (-00eH)
+
+L7953: LD A,(DE)
+ CP (HL)
+ RET NZ
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ LD B,C
+L795A: LD A,(DE)
+ CP (HL)
+ JR NZ,L7963 ; (+005H)
+ INC DE
+ INC HL
+ DJNZ L795A ; (-008H)
+ XOR A
+L7963: POP HL
+ POP DE
+ POP BC
+ RET
+
+L7967: PUSH HL
+ LD B,005H
+ CALL ?CLRHL
+ POP HL
+ RET
+
+L796F: CALL L791F
+L7972: LD A,(HL)
+ OR A
+ RET Z
+ INC HL
+ LD A,(HL)
+ XOR 080H
+ LD (HL),A
+ DEC HL
+ RET
+
+L797C: CALL L791F
+ LD C,A
+ LD A,080H
+ JP L798F
+
+L7985: LD A,(L84CE)
+ CP 003H
+ JP Z,L79D9
+ LD C,A
+ XOR A
+L798F: LD (L7D89),HL
+ PUSH DE
+ PUSH HL
+ LD (07D8CH),SP
+ INC HL
+ INC DE
+ LD B,(HL)
+ XOR (HL)
+ EX DE,HL
+ XOR (HL)
+ DEC HL
+ DEC DE
+ EX DE,HL
+ RLCA
+ LD A,B
+ LD (L7D8B),A
+ JP C,L7A9A
+ XOR A
+ CP (HL)
+ JP Z,L79CE
+ LD A,(DE)
+ OR A
+ JR Z,L79B6 ; (+004H)
+ SUB (HL)
+ JP L7ADD
+
+L79B6: LD SP,(07D8CH)
+ POP HL
+ POP DE
+ EI
+ LD A,(HL)
+ OR A
+ JP Z,L7E86
+ LD A,(L7D8B)
+ AND 080H
+ INC HL
+ RES 7,(HL)
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ RET
+
+L79CE: LD B,000H
+ LD A,005H
+ LD C,A
+ EX DE,HL
+ LDIR
+ JP L79B6
+
+L79D9: LD B,(HL)
+ LD A,(DE)
+ ADD A,B
+ JP C,04AF8H
+ LD C,A
+ PUSH DE
+ PUSH HL
+ PUSH DE
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(STRST)
+ ADD HL,DE
+ EX DE,HL
+ LD HL,(TMPEND)
+ CALL L74DC
+ EX (SP),HL
+ LD B,(HL)
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(STRST)
+ ADD HL,DE
+ EX DE,HL
+ POP HL
+ CALL L74DC
+ LD A,C
+ LD DE,(TMPEND)
+ LD BC,(STRST)
+ EX DE,HL
+ OR A
+ SBC HL,BC
+ EX DE,HL
+ LD (TMPEND),HL
+ POP HL
+ LD (HL),A
+ INC HL
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ DEC HL
+ DEC HL
+ POP DE
+ RET
+
+L7A1C: LD A,(L84CE)
+ CP 003H
+ JR NZ,L7A57 ; (+034H)
+ PUSH DE
+ PUSH HL
+ LD A,(DE)
+ OR (HL)
+ JR Z,L7A54 ; (+02bH)
+ LD A,(DE)
+ CP (HL)
+ JR C,L7A2E ; (+001H)
+ LD A,(HL)
+L7A2E: OR A
+ JR Z,L7A4E ; (+01dH)
+ INC HL
+ LD C,(HL)
+ INC HL
+ LD B,(HL)
+ EX DE,HL
+ INC HL
+ LD E,(HL)
+ INC HL
+ LD D,(HL)
+ LD HL,(STRST)
+ EX DE,HL
+ ADD HL,DE
+ EX DE,HL
+ ADD HL,BC
+ EX DE,HL
+ LD B,A
+ OR A
+ JR Z,L7A54 ; (+00eH)
+L7A46: LD A,(DE)
+ CP (HL)
+ JR NZ,L7A54 ; (+00aH)
+ INC DE
+ INC HL
+ DJNZ L7A46 ; (-008H)
+L7A4E: POP DE
+ POP HL
+ LD A,(DE)
+ CP (HL)
+ EX DE,HL
+ RET
+
+L7A54: POP HL
+ POP DE
+ RET
+
+L7A57: INC DE
+ INC HL
+ LD A,(DE)
+ DEC DE
+ XOR (HL)
+ RLCA
+ JR NC,L7A63 ; (+004H)
+ LD A,(HL)
+ DEC HL
+ RLCA
+ RET
+
+L7A63: LD A,(HL)
+ DEC HL
+ RLCA
+ JR NC,L7A6E ; (+006H)
+ CALL L7A6E
+ RET Z
+ CCF
+ RET
+
+L7A6E: PUSH DE
+ PUSH HL
+ EX DE,HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L7A8F ; (+01aH)
+ INC DE
+ INC HL
+ LD A,(HL)
+ OR 080H
+ LD B,A
+ LD A,(DE)
+ OR 080H
+ CP B
+ JR NZ,L7A8F ; (+00eH)
+ LD A,(L84CE)
+ LD B,A
+ DEC B
+ DEC B
+L7A87: INC DE
+ INC HL
+ LD A,(DE)
+ CP (HL)
+ JR NZ,L7A8F ; (+002H)
+ DJNZ L7A87 ; (-008H)
+L7A8F: POP HL
+ POP DE
+ RET
+
+L7A92: POP HL
+ PUSH HL
+ CALL L7967
+ JP L79B6
+
+L7A9A: CALL L7A6E
+ JR Z,L7A92 ; (-00dH)
+ JR NC,L7AAA ; (+009H)
+ LD A,(L7D8B)
+ XOR 080H
+ LD (L7D8B),A
+ SCF
+L7AAA: EX AF,AF'
+ LD A,(HL)
+ OR A
+ JP Z,L79CE
+ LD A,(DE)
+ OR A
+ JP Z,L79B6
+ SUB (HL)
+ JR C,L7ABF ; (+007H)
+ CP 020H
+ JP NC,L79CE
+ JR L7AC6 ; (+007H)
+
+L7ABF: NEG
+ CP 020H
+ JP NC,L79B6
+L7AC6: EX AF,AF'
+ JR C,L7ACA ; (+001H)
+ EX DE,HL
+L7ACA: EX AF,AF'
+ JP L7B64
+
+L7ACE: LD SP,(07D8CH)
+ EI
+ POP HL
+ POP DE
+ LD A,(07D93H)
+ OR A
+ JP Z,04AEFH
+ RET
+
+L7ADD: JR NC,L7AE9 ; (+00aH)
+ NEG
+ CP 020H
+ JP NC,L79B6
+ EX DE,HL
+ JR L7AEE ; (+005H)
+
+L7AE9: CP 020H
+ JP NC,L79CE
+L7AEE: CALL L7B24
+ LD A,H
+ EXX
+ ADC A,H
+ EXX
+ LD H,A
+ LD A,L
+ EXX
+ ADC A,L
+ EXX
+ LD L,A
+ LD A,D
+ EXX
+ ADC A,D
+ EXX
+ LD D,A
+ LD A,E
+ EXX
+ ADC A,E
+ EXX
+ JR NC,L7B11 ; (+00bH)
+ RRA
+ RR D
+ RR L
+ RR H
+ INC C
+ JP Z,L7ACE
+L7B11: LD E,A
+ LD A,C
+ EXX
+ LD BC,00005H
+ LD HL,(L7D89)
+ LD (HL),A
+ ADD HL,BC
+ DI
+ LD SP,HL
+ EXX
+ PUSH HL
+ PUSH DE
+ JP L79B6
+
+L7B24: DI
+ LD (07D8EH),SP
+ EX AF,AF'
+ INC HL
+ LD SP,HL
+ EXX
+ POP DE
+ SET 7,E
+ POP HL
+ OR A
+L7B32: EX AF,AF'
+ CP 008H
+ JR C,L7B43 ; (+00cH)
+ SUB 008H
+ EX AF,AF'
+ RL H
+ LD H,L
+ LD L,D
+ LD D,E
+ LD E,000H
+ JR L7B32 ; (-011H)
+
+L7B43: OR A
+ JR Z,L7B54 ; (+00eH)
+L7B46: EX AF,AF'
+ OR A
+ RR E
+ RR D
+ RR L
+ RR H
+ EX AF,AF'
+ DEC A
+ JR NZ,L7B46 ; (-00eH)
+L7B54: EXX
+ EX DE,HL
+ LD C,(HL)
+ INC HL
+ LD SP,HL
+ POP DE
+ SET 7,E
+ POP HL
+ EX AF,AF'
+ LD SP,(07D8EH)
+ EI
+ RET
+
+L7B64: CP 020H
+ JP NC,L79B6
+ CALL L7B24
+ LD A,H
+ EXX
+ SBC A,H
+ EXX
+ LD H,A
+ LD A,L
+ EXX
+ SBC A,L
+ EXX
+ LD L,A
+ LD A,D
+ EXX
+ SBC A,D
+ EXX
+ LD D,A
+ LD A,E
+ EXX
+ SBC A,E
+ EXX
+L7B7F: OR A
+ JR Z,L7B98 ; (+016H)
+L7B82: BIT 7,A
+ JR NZ,L7B94 ; (+00eH)
+ RL H
+ RL L
+ RL D
+ RLA
+ DEC C
+ JP NZ,L7B82
+ JP L7A92
+
+L7B94: LD E,A
+ JP L7B11
+
+L7B98: LD A,C
+ SUB 008H
+ LD C,A
+ LD A,D
+ LD D,L
+ LD L,H
+ LD H,000H
+ JR Z,L7BA5 ; (+002H)
+ JR NC,L7B7F ; (-026H)
+L7BA5: JP L7A92
+
+L7BA8: LD C,A
+ INC HL
+ INC DE
+ LD A,(DE)
+ XOR (HL)
+ LD (L7D8B),A
+ DEC HL
+ DEC DE
+ RET
+
+L7BB3: CALL L791F
+ CALL L7BA8
+ PUSH DE
+ PUSH HL
+ LD (07D8CH),SP
+ LD A,(HL)
+ OR A
+ JP Z,L7A92
+ LD A,(DE)
+ OR A
+ JP Z,L7A92
+ INC DE
+ PUSH DE
+ POP IX
+ ADD A,(HL)
+ LD E,A
+ LD A,000H
+ ADC A,A
+ LD D,A
+ LD (07D91H),DE
+ INC HL
+ XOR A
+ LD (L7D90),A
+ LD D,(HL)
+ SET 7,D
+ INC HL
+ LD E,(HL)
+ INC HL
+ PUSH HL
+ LD H,A
+ LD L,A
+ EXX
+ POP HL
+ LD D,(HL)
+ INC HL
+ LD E,(HL)
+ LD B,A
+ LD C,A
+ LD H,A
+ LD L,A
+ EXX
+ LD A,(IX+000H)
+ OR 080H
+ LD C,004H
+L7BF6: LD B,008H
+ OR A
+ JP Z,L7C8B
+L7BFC: RLCA
+ JR NC,L7C11 ; (+012H)
+ EX AF,AF'
+ EXX
+ LD A,C
+ ADD A,B
+ LD C,A
+ ADC HL,DE
+ EXX
+ ADC HL,DE
+ JR NC,L7C10 ; (+005H)
+ LD A,001H
+ LD (L7D90),A
+L7C10: EX AF,AF'
+L7C11: SRL D
+ RR E
+ EXX
+ RR D
+ RR E
+ RR B
+ EXX
+ DJNZ L7BFC ; (-023H)
+L7C1F: INC IX
+ LD A,(IX+000H)
+ DEC C
+ JR NZ,L7BF6 ; (-031H)
+ EXX
+ LD A,(L7D90)
+ OR A
+ JR Z,L7C44 ; (+016H)
+ LD DE,(07D91H)
+ INC DE
+ LD (07D91H),DE
+ EXX
+ SCF
+ RR H
+ RR L
+ EXX
+ RR H
+ RR L
+ RR C
+L7C44: BIT 7,C
+ JR Z,L7C62 ; (+01aH)
+ LD DE,00001H
+ ADD HL,DE
+ EXX
+ LD DE,L0000
+ ADC HL,DE
+ EXX
+ JR NC,L7C62 ; (+00dH)
+ LD DE,(07D91H)
+ INC DE
+ LD (07D91H),DE
+ EXX
+ LD H,080H
+ EXX
+L7C62: POP IX
+ PUSH IX
+ LD (IX+004H),L
+ LD (IX+003H),H
+ EXX
+ LD (IX+002H),L
+ LD (IX+001H),H
+ LD HL,(07D91H)
+ OR A
+ LD DE,L0081
+ SBC HL,DE
+ LD A,H
+ ADD A,000H
+ JP M,L7C97
+ JP NZ,L7ACE
+ LD (IX+000H),L
+ JP L79B6
+
+L7C8B: LD A,E
+ EXX
+ LD B,E
+ LD E,D
+ LD D,A
+ EXX
+ LD E,D
+ LD D,000H
+ JP L7C1F
+
+L7C97: LD SP,(07D8CH)
+ JP L7A92
+
+L7C9E: CALL L791F
+ CALL L7BA8
+ PUSH DE
+ PUSH HL
+ LD (07D8CH),SP
+ LD A,(DE)
+ OR A
+ JP Z,04AEFH
+ EX AF,AF'
+ LD A,(HL)
+ OR A
+ JP Z,L7A92
+ EXX
+ ADD A,081H
+ LD B,A
+ LD A,000H
+ ADC A,A
+ EX AF,AF'
+ LD C,A
+ LD A,B
+ SUB C
+ LD C,A
+ EX AF,AF'
+ LD B,A
+ EX AF,AF'
+ LD A,B
+ SBC A,000H
+ JP C,L7C97
+ JP NZ,L7ACE
+ LD A,C
+ PUSH AF
+ EXX
+ INC DE
+ INC HL
+ LD B,(HL)
+ SET 7,B
+ INC HL
+ LD C,(HL)
+ INC HL
+ PUSH HL
+ EX DE,HL
+ LD D,(HL)
+ SET 7,D
+ INC HL
+ LD E,(HL)
+ INC HL
+ PUSH HL
+ LD H,B
+ LD L,C
+ EXX
+ POP HL
+ LD D,(HL)
+ INC HL
+ LD E,(HL)
+ POP HL
+ LD A,(HL)
+ INC HL
+ LD L,(HL)
+ LD H,A
+ EXX
+ LD C,005H
+L7CF0: LD B,008H
+ XOR A
+L7CF3: BIT 7,H
+ JR NZ,L7D07 ; (+010H)
+ OR A
+L7CF8: RLA
+ EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ DJNZ L7CF3 ; (-00dH)
+ PUSH AF
+ DEC C
+ JR NZ,L7CF0 ; (-014H)
+ JP L7D41
+
+L7D07: OR A
+ EXX
+ SBC HL,DE
+ EXX
+ SBC HL,DE
+ CCF
+ JR C,L7CF8 ; (-019H)
+ EXX
+ ADD HL,DE
+ EXX
+ ADC HL,DE
+ OR A
+ RLA
+ EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ DJNZ L7D26 ; (+007H)
+ PUSH AF
+ LD B,008H
+ DEC C
+ JP Z,L7D41
+L7D26: EXX
+ OR A
+ SBC HL,DE
+ EXX
+ SBC HL,DE
+ SCF
+ RLA
+ DJNZ L7D37 ; (+006H)
+ PUSH AF
+ LD B,008H
+ DEC C
+ JR Z,L7D41 ; (+00aH)
+L7D37: EXX
+ ADD HL,HL
+ EXX
+ ADC HL,HL
+ JR C,L7D26 ; (-018H)
+ JP L7CF3
+
+L7D41: POP AF
+ LD H,A
+ EXX
+ POP AF
+ LD E,A
+ POP AF
+ LD D,A
+ POP AF
+ LD C,A
+ POP AF
+ LD B,A
+ POP AF
+L7D4D: BIT 7,B
+ JR NZ,L7D64 ; (+013H)
+ EXX
+ SLA H
+ EXX
+ RL E
+ RL D
+ RL C
+ RL B
+ DEC A
+ JP NZ,L7D4D
+ JP L7A92
+
+L7D64: EXX
+ RL H
+ EXX
+ JR NC,L7D7B ; (+011H)
+ LD HL,00001H
+ ADD HL,DE
+ EX DE,HL
+ LD HL,L0000
+ ADC HL,BC
+ LD B,H
+ LD C,L
+ JR NC,L7D7B ; (+003H)
+ LD B,080H
+ INC A
+L7D7B: POP HL
+ PUSH HL
+ LD (HL),A
+ INC HL
+ LD (HL),B
+L7D80: INC HL
+ LD (HL),C
+ INC HL
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ JP L79B6
+
+L7D89: NOP
+ NOP
+L7D8B: NOP
+ NOP
+ NOP
+ NOP
+ NOP
+L7D90: NOP
+ NOP
+ NOP
+ NOP
+L7D94: INC HL
+ BIT 7,(HL)
+ DEC HL
+ RET
+
+L7D99: INC (HL)
+ RET NZ
+ JP 04AEFH
+
+L7D9E: LD A,(HL)
+ OR A
+ RET Z
+ DEC (HL)
+ RET NZ
+ JP L7967
+
+L7DA6: PUSH HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ INC HL
+ EX DE,HL
+ LD HL,(MEMMAX)
+ DEC HL
+ SBC HL,DE
+ JP C,04AFBH
+ POP HL
+ RET
+
+L7DB8: PUSH HL
+ LD (L8471),HL
+ CALL L7DA6
+ EX DE,HL
+ LD (L8473),HL
+ CALL L7DA6
+ EX DE,HL
+ LD (L8475),HL
+ CALL L7DA6
+ LD (08477H),DE
+ POP HL
+ RET
+
+L7DD3: CALL L791F
+ EX DE,HL
+ LD A,(HL)
+ OR A
+ JP Z,L7E35
+ EX DE,HL
+ LD A,(HL)
+ OR A
+ JP Z,L7967
+ CALL L7D94
+ JR Z,L7E0F ; (+028H)
+ CALL L7972
+ EX DE,HL
+ PUSH DE
+ PUSH HL
+ LD DE,L84D7
+ CALL L5E93
+ LD HL,L84D7
+ CALL L608D
+ LD A,(HL)
+ OR A
+ JP NZ,04AF2H
+ POP HL
+ PUSH HL
+ CALL L60B7
+ BIT 0,L
+ POP DE
+ POP HL
+ JR Z,L7E0F ; (+006H)
+ CALL L7E0F
+ JP L7972
+
+L7E0F: EX DE,HL
+ LD A,(HL)
+ OR A
+ JR Z,L7E35 ; (+021H)
+ CALL L7D94
+ JR Z,L7E3B ; (+022H)
+ CALL L7972
+ CALL L7E3B
+ PUSH DE
+ PUSH HL
+ LD DE,L84D7
+ CALL L5E90
+ LD HL,L84D7
+ POP DE
+ CALL L7C9E
+ PUSH DE
+ CALL L5E93
+ POP HL
+ POP DE
+ RET
+
+L7E35: PUSH DE
+ CALL L5E90
+ POP HL
+ RET
+
+L7E3B: PUSH DE
+ LD DE,L84D7
+ CALL L5E93
+ POP HL
+ CALL L8320
+ LD DE,L84D7
+ CALL L7BB3
+ JP L81FC
+
+L7E4F: CALL L791F
+ PUSH DE
+ PUSH HL
+ CALL L60B7
+ LD A,L
+ CPL
+ LD E,A
+ LD A,H
+ CPL
+ LD D,A
+ JR L7E80 ; (+021H)
+
+L7E5F: LD A,0A2H
+ LD BC,0B23EH
+ LD BC,0AA3EH
+ LD (L7E7B),A
+ INC A
+ LD (L7E7E),A
+ CALL L791F
+ PUSH DE
+ PUSH HL
+ CALL L60B7
+ EX DE,HL
+ CALL L60B7
+ LD A,H
+L7E7B: AND D
+ LD D,A
+ LD A,L
+L7E7E: AND E
+ LD E,A
+L7E80: POP HL
+ CALL L5E99
+ POP DE
+ RET
+
+L7E86: INC HL
+ RES 7,(HL)
+ DEC HL
+ RET
+
+L7E8B: CALL L7D94
+ JP Z,L604F
+ CALL L7EB0
+ CALL L604F
+ LD DE,L84D7
+ CALL L7A1C
+ RET Z
+L7E9E: LD DE,L6112
+ JP L797C
+
+L7EA4: LD DE,L6112
+ JP L7985
+
+L7EAA: LD DE,L6112
+ JP L7A1C
+
+L7EB0: PUSH HL
+ PUSH DE
+ LD DE,L84D7
+ CALL L5E93
+ POP DE
+ POP HL
+ RET
+
+L7EBB: CALL L604F
+ EX DE,HL
+ CALL L604F
+ EX DE,HL
+ CALL L7EB0
+ CALL L7C9E
+ CALL L604F
+ CALL L7BB3
+ PUSH DE
+ LD DE,L84D7
+ CALL L797C
+ POP DE
+ JP L7972
+
+L7EDA: CALL L604F
+ EX DE,HL
+ CALL L604F
+ EX DE,HL
+ CALL L7C9E
+ JP L604F
+
+L7EE8: LD A,(HL)
+ OR A
+ RET Z
+ CALL L7D94
+ JP NZ,04AF2H
+ CALL L8320
+ CALL L7D9E
+ JP L81FC
+
+L7EFA: PUSH HL
+ EX DE,HL
+ CALL L5E90
+ POP HL
+ POP BC
+ RET
+
+L7F02: LD A,(HL)
+ LD C,H
+L7F04: ADD A,B
+ DEC HL
+L7F06: PUSH BC
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ DEC HL
+ PUSH AF
+ CALL L7F17
+ POP AF
+ POP BC
+ RLCA
+ RET NC
+ JP L7972
+
+L7F17: CALL L7EAA
+ JR C,L7F3A ; (+01eH)
+ CALL L7DA6
+ PUSH DE
+ PUSH HL
+ CALL L5E93
+ POP DE
+ PUSH DE
+ CALL L5E90
+ POP HL
+ POP DE
+ CALL L7C9E
+ CALL L7F3A
+ LD DE,08194H
+ CALL L797C
+ JP L7E86
+
+L7F3A: LD A,0FFH
+ LD (L80B0),A
+ LD DE,L7F02
+ CALL L7A1C
+ JR C,07F96H ; (+04fH)
+ LD DE,L7F04
+ CALL L7A1C
+ PUSH AF
+ CALL L7DA6
+ POP AF
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ JR C,L7F6E ; (+014H)
+ CALL L7EA4
+ EX (SP),HL
+ CALL L797C
+ POP DE
+ CALL L7C9E
+ CALL 07F96H
+ LD DE,08199H
+ JP L7985
+
+L7F6E: LD DE,L7F91
+ CALL L7BB3
+ CALL L7EA4
+ EX (SP),HL
+ LD DE,L7F91
+ CALL L797C
+ POP DE
+ CALL L7C9E
+ CALL 07F96H
+ CALL L7D99
+ LD DE,08199H
+ CALL L7985
+ JP L7D9E
+
+L7F91: LD A,A
+ LD D,H
+ INC DE
+ CALL Z,0C5D0H
+ PUSH HL
+ CALL L7DB8
+ POP HL
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD E,L
+ LD D,H
+ CALL L7BB3
+ LD DE,(08475H)
+ POP HL
+ PUSH HL
+ CALL L5E93
+ LD A,(L84CE)
+ DEC A
+ CP 004H
+ LD B,A
+ LD HL,08137H
+ JP Z,L803D
+ LD B,00AH
+ JP L803D
+
+L7FC2: PUSH BC
+ LD A,(HL)
+ OR A
+ JP Z,L7EFA
+ LD DE,08194H
+ CALL L797C
+ CALL L7972
+ POP BC
+L7FD2: PUSH BC
+ INC HL
+ LD A,(HL)
+ RES 7,(HL)
+ AND 080H
+ CPL
+ LD (L80B0),A
+ DEC HL
+ LD DE,L818A
+ PUSH HL
+ CALL L7A1C
+ JR C,L7FF0 ; (+009H)
+ CALL L7C9E
+ CALL L608D
+ CALL L7BB3
+L7FF0: LD DE,0818FH
+ CALL L7A1C
+ JR C,L8003 ; (+00bH)
+ CALL L797C
+ LD A,(L80B0)
+ XOR 080H
+ LD (L80B0),A
+L8003: LD DE,08194H
+ CALL L7A1C
+ JR C,L8014 ; (+009H)
+ LD DE,0818FH
+ CALL L797C
+ CALL L7E86
+L8014: CALL L7DB8
+ POP HL
+ PUSH DE
+ LD DE,08199H
+ CALL L7A1C
+ JR NC,L8086 ; (+065H)
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD E,L
+ LD D,H
+ CALL L7BB3
+ LD DE,(08475H)
+ POP HL
+ PUSH HL
+ CALL L5E93
+ LD A,(L84CE)
+ LD B,A
+ LD HL,L80E7
+L803D: PUSH BC
+L803E: PUSH HL
+ LD HL,(L8475)
+ LD DE,(08477H)
+ CALL L7BB3
+ POP HL
+ PUSH HL
+ LD DE,(08473H)
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD DE,(08475H)
+ CALL L7BB3
+ EX DE,HL
+ LD HL,(L8471)
+ CALL L7985
+ POP HL
+ LD DE,00005H
+ ADD HL,DE
+ POP BC
+ DJNZ L803D ; (-02dH)
+ POP HL
+ POP BC
+ LD A,(L80B0)
+ INC HL
+ XOR (HL)
+ CPL
+ LD (HL),A
+ DEC HL
+ LD A,(L84CE)
+ CP 008H
+ LD A,(HL)
+ JR Z,L8082 ; (+006H)
+ CP 05CH
+L807E: RET NC
+ JP L7967
+
+L8082: CP 04DH
+ JR L807E ; (-008H)
+
+L8086: LD DE,08194H
+ CALL L797C
+ CALL L7E86
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+L8095: POP HL
+ LD E,L
+ LD D,H
+ CALL L7BB3
+ LD DE,(08475H)
+ CALL L5E90
+L80A2: POP DE
+ PUSH DE
+ CALL L5E90
+ LD A,(L84CE)
+ LD B,A
+ LD HL,L810F
+ JR L803D ; (-073H)
+
+L80B0: NOP
+L80B1: PUSH BC
+ PUSH HL
+ CALL L7DA6
+ EX DE,HL
+ LD (L8479),HL
+ CALL L7DA6
+ LD (0847BH),DE
+ POP HL
+ PUSH HL
+ CALL L5E93
+ LD HL,(L8479)
+ EX DE,HL
+ POP HL
+L80CB: PUSH HL
+ CALL L5E93
+ LD HL,(0847BH)
+ CALL L7FD2
+ POP DE
+ PUSH DE
+ CALL L5E93
+ LD HL,(L8479)
+ CALL L7FC2
+ EX DE,HL
+ POP HL
+ CALL L7C9E
+ POP BC
+ RET
+
+L80E7: LD A,(HL)
+L80E8: XOR D
+ XOR D
+ XOR D
+ XOR E
+ LD A,D
+ EX AF,AF'
+ ADC A,B
+ ADC A,B
+ ADC A,C
+ LD (HL),H
+ RET NC
+ DEC C
+ NOP
+ RET NC
+L80F6: LD L,(HL)
+ JR C,L80E8 ; (-011H)
+ DEC E
+ DEC HL
+ LD H,A
+ RST 010H
+ LD (L402B),A
+ LD H,B
+ JR NC,L8095 ; (-06eH)
+ JR NC,L80A2 ; (-063H)
+ LD E,B
+ RST 010H
+ CCF
+ SBC A,A
+ LD A,(04A50H)
+ SUB (HL)
+ DEC SP
+ ADD A,D
+L810F: ADD A,B
+ ADD A,B
+ NOP
+ NOP
+ NOP
+ LD A,H
+ LD HL,(0AAAAH)
+ XOR E
+ LD (HL),A
+ OR (HL)
+ DEC BC
+ LD H,B
+ OR (HL)
+ LD (HL),C
+ LD D,B
+ DEC C
+ NOP
+ RET NC
+ LD L,E
+ SUB E
+ JP P,0BC7DH
+ LD H,H
+ RRCA
+ HALT
+ RST 000H
+L812C: ADD A,B
+ LD E,H
+ RET
+
+L812F: RES 4,L
+ LD B,(HL)
+ LD D,H
+ LD D,A
+ CCF
+ SBC A,A
+ LD A,(0AA7FH)
+ XOR D
+ XOR D
+ XOR E
+ LD A,(HL)
+ LD C,H
+ CALL Z,0CDCCH
+ LD A,(HL)
+ SUB D
+ LD C,C
+ INC H
+ SUB D
+ LD A,L
+ LD H,E
+ ADC A,(HL)
+ JR C,L812F ; (-01cH)
+ LD A,L
+ CP D
+ LD L,08BH
+ AND E
+ LD A,L
+ DEC E
+ ADC A,C
+ RET C
+ SBC A,(HL)
+ LD A,L
+ ADC A,B
+ ADC A,B
+ ADC A,B
+ ADC A,C
+ LD A,H
+ LD (HL),B
+ RET P
+ RET P
+ POP AF
+ LD A,H
+ RST 010H
+ SUB H
+ DEC (HL)
+ PUSH HL
+ LD A,H
+ LD B,E
+ INC C
+ JR NC,L812C ; (-03dH)
+L8169: LD DE,L0000
+ LD A,(HL)
+ OR A
+ JR Z,L8178 ; (+008H)
+ CALL L7D94
+ INC DE
+ JR Z,L8178 ; (+002H)
+ DEC DE
+ DEC DE
+L8178: CALL L5E99
+ RET
+
+L817C: LD DE,0819EH
+ JR L8184 ; (+003H)
+
+L8181: LD DE,0818FH
+L8184: PUSH BC
+ CALL L7BB3
+ POP BC
+ RET
+
+L818A: ADD A,E
+ LD C,C
+ RRCA
+ JP C,L82A2
+ LD C,C
+ RRCA
+ JP C,L81A2
+ LD C,C
+ RRCA
+ JP C,L80A2
+ LD C,C
+ RRCA
+ JP C,07BA2H
+ LD C,FDPC
+ DEC (HL)
+L81A2: INC DE
+L81A3: PUSH HL
+ CALL L60B7
+ LD A,000H
+ CP 040H
+ LD A,(HL)
+ CALL NZ,BREAKX
+ LD E,A
+ LD D,000H
+ POP HL
+ CALL L5E99
+ RET
+
+L81B7: LD A,(HL)
+ OR A
+ JR Z,L81C0 ; (+005H)
+ CALL L7D94
+ JR Z,L81CB ; (+00bH)
+L81C0: PUSH HL
+ LD HL,L4193
+ LD (L81FA),HL
+ POP HL
+ XOR A
+ LD R,A
+L81CB: PUSH BC
+ LD DE,(081FAH)
+ LD A,R
+ XOR D
+ RRC A
+ RRC A
+ RRC A
+ LD D,A
+ LD A,R
+ XOR E
+ RLC A
+ RLC A
+ LD E,D
+ LD D,A
+ LD (081FAH),DE
+ PUSH HL
+ INC HL
+ RES 7,D
+ LD (HL),D
+ INC HL
+ LD (HL),E
+ INC HL
+ LD A,R
+ LD (HL),A
+ POP HL
+ LD (HL),081H
+ CALL L7E9E
+ POP BC
+ RET
+
+L81FA: SUB E
+ LD B,C
+L81FC: PUSH BC
+ LD A,(HL)
+ OR A
+ JP Z,L7EFA
+ INC HL
+ LD A,(HL)
+ LD (L8312),A
+ RES 7,(HL)
+ DEC HL
+ LD DE,L8467
+ CALL L7BB3
+ PUSH HL
+ CALL L7DA6
+ PUSH DE
+ CALL L5E93
+ POP HL
+ CALL L604F
+ PUSH HL
+ CALL L60B7
+ XOR A
+ CP H
+ JP NZ,04AEFH
+ LD A,L
+ LD (L8311),A
+ POP DE
+ POP HL
+ PUSH HL
+ CALL L797C
+ PUSH DE
+ PUSH HL
+ CALL L5E90
+ POP DE
+ POP HL
+ CALL L7D9E
+ EX DE,HL
+ XOR A
+ LD B,008H
+L823D: PUSH BC
+ PUSH AF
+ CALL L7A1C
+ JR C,L824B ; (+007H)
+ CALL L797C
+ POP AF
+ SET 7,A
+ PUSH AF
+L824B: POP AF
+ RLC A
+ EX DE,HL
+ PUSH AF
+ CALL L7D9E
+ POP AF
+ EX DE,HL
+ POP BC
+ DJNZ L823D ; (-01bH)
+ LD (L8313),A
+ PUSH DE
+ LD DE,L845D
+ LD A,(L84CE)
+ BIT 3,A
+ JR NZ,L8269 ; (+003H)
+ LD DE,L8462
+L8269: CALL L7BB3
+ POP DE
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD A,(L84CE)
+ BIT 3,A
+ JP Z,L8301
+ CALL L7D99
+ LD DE,L610D
+ CALL L7985
+ CALL L7D9E
+ POP DE
+ PUSH DE
+ CALL L7BB3
+ LD DE,L610D
+ CALL L7D9E
+ CALL L7985
+ CALL L7D99
+ POP DE
+ PUSH DE
+ CALL L7BB3
+ LD DE,L8458
+ CALL L7BB3
+L82A2: CALL L7D99
+ CALL L7EA4
+ CALL L7D9E
+ POP DE
+ PUSH DE
+ CALL L7BB3
+ CALL L7EA4
+ POP DE
+ PUSH DE
+ CALL L7BB3
+L82B8: CALL L7EA4
+ EX (SP),HL
+ EX DE,HL
+ PUSH DE
+ CALL L5E90
+ POP HL
+ LD DE,L8408
+ LD A,(L8313)
+ LD B,008H
+L82CA: RLC A
+ JR NC,L82D5 ; (+007H)
+ PUSH AF
+ PUSH BC
+ CALL L7BB3
+ POP BC
+ POP AF
+L82D5: INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ DJNZ L82CA ; (-012H)
+ LD A,(L8311)
+ ADD A,(HL)
+ JP C,04AEFH
+ LD (HL),A
+ POP DE
+ CALL L7BB3
+ POP BC
+ LD A,(L8312)
+ RLC A
+ RET NC
+ PUSH BC
+ PUSH DE
+ PUSH HL
+ CALL L5E93
+ POP DE
+ PUSH DE
+ CALL L5E90
+ POP HL
+ POP DE
+ CALL L7C9E
+ POP BC
+ RET
+
+L8301: POP DE
+ PUSH DE
+ CALL L7BB3
+ LD A,(HL)
+ OR A
+ CALL NZ,L7D9E
+ CALL L7985
+ JP L82B8
+
+L8311: NOP
+L8312: NOP
+L8313: NOP
+L8314: PUSH BC
+ CALL L8320
+ LD DE,L83F9
+ CALL L7BB3
+ POP BC
+ RET
+
+L8320: PUSH BC
+ CALL L7D94
+ JP NZ,04AF2H
+ LD A,(HL)
+ OR A
+ JP Z,04AF2H
+ SUB 081H
+ LD (L83F8),A
+ LD (HL),081H
+ XOR A
+ LD B,008H
+ LD DE,L8408
+L8339: PUSH BC
+ PUSH AF
+ CALL L7A1C
+ JR C,L834F ; (+00fH)
+ PUSH HL
+ LD HL,00028H
+ ADD HL,DE
+ EX DE,HL
+ EX (SP),HL
+ CALL L7BB3
+ POP DE
+ POP AF
+ SET 7,A
+ PUSH AF
+L834F: POP AF
+ RLC A
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ INC DE
+ POP BC
+ DJNZ L8339 ; (-021H)
+ DB 022H
+ LD (HL),C
+ ADD A,H
+ CALL L7DA6
+ EX DE,HL
+ LD E,A
+ LD D,000H
+ CALL L5E99
+ LD A,(HL)
+ OR A
+ JR Z,L836E ; (+003H)
+ SUB 008H
+ LD (HL),A
+L836E: LD A,(L83F8)
+ CP 080H
+ JR C,L8377 ; (+002H)
+ NEG
+L8377: PUSH HL
+ CALL L7DA6
+ EX DE,HL
+ LD (L8473),HL
+ LD E,A
+ LD D,000H
+ CALL L5E99
+ LD A,(L83F8)
+ AND 080H
+ INC HL
+ OR (HL)
+ LD (HL),A
+ DEC HL
+ EX DE,HL
+ POP HL
+ CALL L7985
+ LD A,(L84CE)
+ LD DE,0846CH
+ CP 005H
+ JR Z,L83A0 ; (+003H)
+ LD DE,L845D
+L83A0: CALL L7BB3
+ PUSH HL
+ LD DE,(08473H)
+ LD HL,(L8471)
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ CALL L7EA4
+ EX (SP),HL
+ CALL L797C
+ POP DE
+ CALL L7C9E
+ PUSH DE
+ CALL L5E93
+ POP HL
+ PUSH DE
+ LD E,L
+ LD D,H
+ CALL L7BB3
+ POP DE
+ PUSH HL
+ PUSH DE
+ CALL L5E93
+ POP HL
+ LD DE,L8403
+ CALL L7985
+ EX DE,HL
+ POP HL
+ CALL L7BB3
+ LD DE,L610D
+ CALL L7D99
+ CALL L7985
+ CALL L7D9E
+ EX DE,HL
+ LD HL,(L8471)
+ CALL L7BB3
+ LD DE,L83FE
+ CALL L7BB3
+ POP DE
+ CALL L7985
+ POP BC
+ RET
+
+L83F8: NOP
+L83F9: LD A,A
+ LD E,(HL)
+ LD E,E
+ RET C
+ XOR C
+L83FE: LD A,A
+ LD C,H
+ CALL Z,0CDCCH
+L8403: ADD A,C
+ LD D,L
+ LD D,L
+ LD D,L
+ LD D,(HL)
+L8408: ADD A,C
+ DEC (HL)
+ INC B
+ DI
+ INC (HL)
+ ADD A,C
+ JR L8447 ; (+037H)
+
+ RET P
+ LD D,D
+ ADD A,C
+ DEC BC
+L8414: SUB L
+ POP BC
+ CALL PO,00581H
+ XOR D
+ JP 08168H
+
+ LD (BC),A
+ CALL 09986H
+ ADD A,C
+ LD BC,0D164H
+ CALL P,L0081
+ OR C
+ IN D,(C)
+ ADD A,C
+ NOP
+ LD E,B
+ RST 010H
+ OUT (080H),A
+ DEC (HL)
+ INC B
+ DI
+ INC (HL)
+ ADD A,B
+ LD D,A
+ LD B,H
+ CALL M,L80CB
+ LD L,D
+ RET NZ
+ ADD A,0E8H
+ ADD A,B
+ LD (HL),L
+ DEC H
+ LD A,L
+ LD D,080H
+ LD A,D
+ ADD A,E
+L8447: OR D
+ CALL C,L7D80
+ LD A,00CH
+ DEC C
+ ADD A,B
+ LD A,(HL)
+ SBC A,(HL)
+ LD DE,0805DH
+ LD A,A
+ LD C,(HL)
+ BIT 3,D
+L8458: LD A,D
+ EX AF,AF'
+ ADC A,B
+ ADC A,B
+ ADC A,C
+L845D: ADD A,B
+ LD SP,L1772
+ RET M
+L8462: ADD A,B
+ LD SP,L1772
+ RET M
+L8467: ADD A,C
+ JR C,L8414 ; (-056H)
+ DEC SP
+ LD HL,(03180H)
+ LD (HL),D
+ RLA
+ RET M
+L8471: DS 2, 000H
+L8473: DS 2, 000H
+L8475: DS 4, 000H
+L8479: DS 4, 000H
+L847D: DS 2, 000H
+L847F: DS 2, 000H
+L8481: DS 2, 000H
+L8483: DS 2, 000H
+L8485: DB 000H
+L8486: DB 000H
+L8487: DS 2, 000H
+L8489: DS 2, 000H
+L848B: DS 4, 000H
+L848F: DB 000H
+L8490: DS 2, 000H
+ DB 015H
+ DB 000H
+ DB 0EBH
+ DB 0FFH
+ DS 2, 000H
+L8498: DS 2, 000H
+L849A: DS 2, 000H
+L849C: DS 7, 000H
+L84A3: DB 000H
+L84A4: DS 3, 000H
+L84A7: DB 000H
+L84A8: DS 4, 000H
+L84AC: DB 000H
+L84AD: DS 8, 000H
+L84B5: DS 25, 000H
+L84CE: DB 008H ; Splash screen / banner text
+L84CF: DS 8, 000H
+L84D7: DS 8, 000H
+L84DF: DS 8, 000H
+L84E7: DB 016H
+ DB 00DH
+ DB 020H
+ DS 38, 0D7H
+ DS 4, 020H
+ DB "BASIC ",005H,"INTERPRETER"
+ DS 2, 020H
+ DB 006H,"MZ-5Z"
+ DS 2, 030H
+ DB "8 V1.1Z ",00DH
+ DS 3, 020H
+ DB 043H,005H,"OPYRIGHT ",006H,"(C) 1984 ",005H,"BY ",006H,"SHARP CORP."
+ DS 5, 020H
+ DS 38, 0CFH
+ DB 020H,00DH,020H,005H,"30134 BYTES FR"
+ DS 2, 045H
+ DS 2, 00DH
+ DS 93, 000H
+
+; =============================================================================
+; $RFS - ROM Filing System device module (Direct SD Card Access)
+;
+; V1.0Z: Bypasses the RFS ROM entirely. All SD card access is done via
+; direct SPI through the picoZ80 hardware SPI emulation at EFFBh/EFFCh.
+;
+; Only OUT(E3H) is needed to map MMIO for SPI port access, and OUT(E1H)
+; to return to DRAM. No ROM banking, no BNKSELUSER, no lower memory
+; switching required.
+;
+; SPI protocol:
+; SPIOUT: LD (HWSPIDATA),A ; LD (HWSPISTART),A (send byte)
+; SPIIN: LD (HWSPISTART),A ; LD A,(HWSPIDATA) (receive byte)
+;
+; SD card sector read (CMD17):
+; CS LOW -> CMD17(0x51) + 4-byte sector + 0xFF -> poll R1(0x00) ->
+; poll data token(0xFE) -> read 512 bytes -> 2 CRC -> CS HIGH
+;
+; SD image layout: each drive = 0x8010 sectors (directory + file blocks).
+; Drive 0 at sector 0, drive 1 at 0x8010, drive 2 at 0x10020, etc.
+; RFS1: = SD drive 3, RFS7: = SD drive 9 (SDDRIVENO = ZCH + 3, offset +3 skips boot drives 0-2).
+;
+; Directory: 16 entries per sector, 32 bytes each:
+; [0] FLAG1 (bit7=active), [1] ATRB, [2..18] NAME (17, null-term),
+; [19..22] START_SECTOR (4 bytes, big-endian),
+; [23..24] SIZE (2 bytes, LE), [25..26] DTADR (2 bytes, LE),
+; [27..28] EXADR (2 bytes, LE), [29..31] reserved.
+;
+; Device chain: $QD -> $RFS -> $USR -> NULL
+; =============================================================================
+
+; ---------------------------------------------------------------------------
+; $RFS Device Descriptor (29 bytes header + 22 bytes state = 51 bytes)
+; ---------------------------------------------------------------------------
+$RFS: DW $USR ; Next device = $USR
+ DB "RFS",000H ; Device name
+ DB 05FH ; flags1: bit5=1 ZINP-based DIR, bit6=1 ZRO enum capable
+ DB 007H ; flags2: max channel 7 (bit7 must be 0, SVC #39 errors if set)
+ DB 0FFH ; dirmx: 255 (max directory entries)
+ DW RFSINIT ; ZINIT handler
+ DW RFSRO ; ZRO handler (LOAD: find file, extract header)
+ DW RFSWO ; ZWO handler (SAVE: sets ELMD20 SIZE)
+ DW RFSSTRT ; ZCL/ZSTRT handler
+ DW 00000H ; ZKL (not used)
+ DW RFSINP_DIR ; ZINP handler (DIR buffer fill + LOAD data)
+ DW RFSOUT ; ZOUT handler (triggers RFSWO on first call during SAVE)
+ DW 00000H ; ZDELT (not used)
+ DW RFSDIR ; ZWDIR handler (stub)
+ DW RFSFREE ; ZFREE handler
+; Device state area (22 bytes) - BASIC reads/writes state at descriptor+29..+50.
+; Without this, BASIC reads into code bytes causing "Disk mismatch" errors.
+RFSST00: DB 000H ; +29: state byte 0
+RFSST01: DB 000H ; +30: state byte 1
+RFSST02: DB 000H ; +31: state byte 2
+RFSST03: DS 3, 000H ; +32..+34: state bytes 3-5
+RFSST06: DB 000H ; +35: state byte 6
+RFSST07: DS 2, 000H ; +36..+37: state bytes 7-8
+RFSST09: DB 000H ; +38: state byte 9
+RFSST10: DB 000H ; +39: state byte 10
+RFSST11: DB 000H ; +40: state byte 11
+RFSST12: DB 000H ; +41: state byte 12
+RFSST13: DS 4, 000H ; +42..+45: state bytes 13-16
+RFSST17: DS 4, 000H ; +46..+49: state bytes 17-20
+RFSST21: DB 000H ; +50: state byte 21
+
+; ---------------------------------------------------------------------------
+; RFSFREE - Free space query (not supported, return carry)
+; ---------------------------------------------------------------------------
+RFSFREE: XOR A
+ SCF
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSINIT - Initialize RFS device
+; ---------------------------------------------------------------------------
+RFSINIT: XOR A
+ LD (SAVE_PENDING),A ; Clear at start of any operation
+ LD (DIR_FILLED),A ; Clear so next ZINP does DIR fill
+ LD (DIR_ENTRY_IDX),A ; Reset directory entry enumerator
+ LD A,0FFH
+ LD (DIRSECBUF),A ; Invalidate sector cache
+ LD A,(ZCH)
+ ADD A,003H ; RFS1:=drive 3, skipping boot drives 0-2
+ LD (SDDRIVENO),A
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSSTRT - Start/Open device (A=0 means open, A!=0 means close)
+; ---------------------------------------------------------------------------
+RFSSTRT: OR A
+ RET NZ ; Close = just return
+ LD A,(ZCH)
+ ADD A,003H ; RFS1:=drive 3, skipping boot drives 0-2
+ LD (SDDRIVENO),A
+ ;
+ ; V1.1Y: Reset RFSRO state so file search starts from entry 0.
+ ; Without this, LOAD after DIR/SAVE fails: RFSRO resumes from
+ ; the post-DIR DIR_ENTRY_IDX position and misses files at earlier
+ ; directory indices ("File not found" for files that exist).
+ XOR A
+ LD (DIR_ENTRY_IDX),A
+ LD A,0FFH
+ LD (DIRSECBUF),A ; Invalidate sector cache (stale after SAVE)
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSDIR - ZWDIR handler (stub, not called with bit5=1 in flags1)
+; ---------------------------------------------------------------------------
+RFSDIR: XOR A
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSWO - Write Open (ZWO handler)
+;
+; BASIC calls ZWO from BOTH the OPEN handler and L1CE4 SAVE path, THEN
+; calls ZOUT. If we do the actual write here, the file gets created
+; multiple times and the premature directory entry triggers "Already exist"
+; during BASIC's own duplicate check.
+;
+; RFSWO calculates SIZE = TEXTED - TEXTST and stores it in ELMD20.
+; This is essential because the SAVE path for bit-5 devices never populates
+; ELMD20, leaving RFSDOWRITE to read SIZE=0. The actual SD write is still
+; deferred to RFSOUT (ZOUT) via the SAVE_PENDING one-shot flag.
+; ---------------------------------------------------------------------------
+RFSWO: LD HL,(TEXTED) ; End of BASIC text area
+ LD DE,(TEXTST) ; Start of BASIC text area
+ OR A
+ SBC HL,DE ; HL = program size in bytes
+ LD (ELMD20),HL ; Store SIZE for RFSDOWRITE
+ XOR A ; A=0, NC = success
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSDOWRITE - Actual SD card write (called from RFSOUT only)
+;
+; Performs the complete save operation:
+; 1. Finds a free directory entry
+; 2. Calculates the file's start sector from entry number
+; 3. Writes file data sector-by-sector (toggling DRAM/MMIO)
+; 4. Re-reads directory sector, fills entry, writes it back
+;
+; Entry: ELMD filled with file header (ATRB, NAME, SIZE, DTADR, EXADR)
+; For type 2 (BASIC): ELMD20=SIZE, source data at TEXTST
+; For type 1 (machine code): ELMD20=DTADR, ELMD18=SIZE
+; Exit: NC = success, C = error
+; ---------------------------------------------------------------------------
+RFSDOWRITE: PUSH HL
+ PUSH DE
+ PUSH BC
+ ;
+ ; Get file info from ELMD — field mapping depends on file type.
+ ; BASIC SAVE (type 2) stores SIZE in ELMD20 and source is TEXTST.
+ ; Machine code SAVE (type 1) uses ELMD18=SIZE, ELMD20=DTADR.
+ LD A,(ELMD)
+ CP 002H
+ JR NZ,WO_NONBASIC
+ ;
+ ; Type 2 (BASIC): SIZE in ELMD20, source at TEXTST
+ LD HL,(ELMD20) ; SIZE (program length)
+ LD (FILE_SIZE),HL
+ LD HL,(TEXTST) ; Source = start of BASIC text
+ LD (FILE_LOADADDR),HL
+ JR WO_GOTINFO
+ ;
+WO_NONBASIC:
+ ; Non-BASIC: SIZE in ELMD18, source at ELMD20
+ LD HL,(ELMD18) ; SIZE
+ LD (FILE_SIZE),HL
+ LD HL,(ELMD20) ; DTADR (source address for data)
+ LD (FILE_LOADADDR),HL
+WO_GOTINFO:
+ ;
+ ; Set up drive number
+ LD A,(ZCH)
+ ADD A,003H ; RFS1:=drive 3
+ LD (SDDRIVENO),A
+ ;
+ ; Enter MMIO mode
+ CALL MMIO_ON
+ ;
+ ; Reset directory cache
+ LD A,0FFH
+ LD (DIRSECBUF),A
+ ;
+ ; --- Find free directory entry ---
+ LD E,000H
+ LD B,000H ; 256 entries (DJNZ wraps)
+WO_SCAN: PUSH BC
+ PUSH DE
+ CALL GETSDDIRENT
+ POP DE
+ POP BC
+ OR A
+ JP NZ,WO_IOERR ; SD read error
+ LD A,(HL)
+ BIT 7,A
+ JR Z,WO_FOUND ; Bit 7 clear = free slot
+ INC E
+ DJNZ WO_SCAN
+ JP WO_IOERR ; Directory full
+ ;
+WO_FOUND: ; E = free entry number
+ LD A,E
+ LD (SAVE_DIRENT),A
+ ;
+ ; --- Calculate start sector: E * 128 + 16 ---
+ ; E * 128 = E << 7, result fits 16 bits (max 255*128=32640)
+ LD H,000H
+ LD L,E ; HL = entry number
+ ADD HL,HL ; *2
+ ADD HL,HL ; *4
+ ADD HL,HL ; *8
+ ADD HL,HL ; *16
+ ADD HL,HL ; *32
+ ADD HL,HL ; *64
+ ADD HL,HL ; *128
+ LD DE,00010H ; +16 (directory sectors)
+ ADD HL,DE
+ LD D,000H
+ LD E,000H ; DEHL = relative sector
+ CALL RFSGETSECTR ; DEHL = absolute sector
+ CALL SETLBAADDR ; Store in SDSTARTSEC
+ ;
+ ; --- Write file data sector-by-sector ---
+WO_WLOOP: LD HL,(FILE_SIZE)
+ LD A,H
+ OR L
+ JR Z,WO_WDONE ; No data left
+ ;
+ ; Map DRAM to read source data
+ OUT (PORT_DRAM),A
+ ;
+ ; Calculate bytes to copy: min(FILE_SIZE, 512)
+ LD HL,(FILE_SIZE)
+ LD DE,00200H ; 512
+ OR A
+ SBC HL,DE
+ JR C,WO_PARTIAL
+ ;
+ ; Full sector: remaining = HL
+ LD (FILE_SIZE),HL
+ LD BC,00200H
+ JR WO_COPY
+ ;
+WO_PARTIAL: ; Less than 512 bytes left
+ ADD HL,DE ; Restore HL = FILE_SIZE
+ LD B,H
+ LD C,L ; BC = bytes to copy
+ PUSH BC ; Save actual byte count
+ LD HL,0
+ LD (FILE_SIZE),HL
+ ;
+ ; Zero-fill SECTORBUF first for partial sector
+ LD HL,SECTORBUF
+ LD DE,SECTORBUF + 1
+ PUSH BC
+ LD BC,001FFH ; 511 bytes
+ LD (HL),000H
+ LDIR
+ POP BC
+ POP BC ; Restore actual byte count
+ ;
+WO_COPY: LD HL,(FILE_LOADADDR)
+ LD DE,SECTORBUF
+ LDIR ; Copy source data to SECTORBUF
+ LD (FILE_LOADADDR),HL ; Update source address
+ ;
+ ; Map MMIO for SPI write
+ OUT (PORT_MMIO),A
+ ;
+ ; Write SECTORBUF to current sector
+ CALL SD_WRITE
+ OR A
+ JP NZ,WO_IOERR
+ ;
+ ; Increment sector for next write
+ CALL INC_STARTSEC
+ JR WO_WLOOP
+ ;
+ ; --- Write directory entry ---
+WO_WDONE: ; Ensure MMIO is active
+ OUT (PORT_MMIO),A
+ ;
+ ; Re-read the directory sector containing our entry
+ LD A,0FFH
+ LD (DIRSECBUF),A ; Force re-read
+ LD A,(SAVE_DIRENT)
+ LD E,A
+ PUSH DE
+ CALL GETSDDIRENT ; HL = entry in SECTORBUF
+ POP DE
+ OR A
+ JP NZ,WO_IOERR
+ ;
+ ; HL = 32-byte entry in SECTORBUF. Fill it.
+ ; FLAG1 = 0x80 (active)
+ LD (HL),080H
+ INC HL
+ ;
+ ; ATRB: remap type 02 -> 05 for SD storage
+ LD A,(ELMD) ; Disk BASIC type
+ CP 002H
+ JR NZ,WO_AT1
+ LD A,005H ; BTX -> MZ-700 BASIC tape type
+WO_AT1: LD (HL),A
+ INC HL
+ ;
+ ; NAME: 17 bytes from ELMD1, CR -> null
+ PUSH DE
+ LD DE,ELMD1
+ LD B,17
+WO_NM: LD A,(DE)
+ CP 00DH ; CR?
+ JR NZ,WO_NM1
+ XOR A ; CR -> null for SD
+WO_NM1: LD (HL),A
+ INC HL
+ INC DE
+ DJNZ WO_NM
+ POP DE
+ ;
+ ; START_SECTOR: 4 bytes (calculate from entry number)
+ PUSH HL ; Save directory entry pointer
+ LD A,(SAVE_DIRENT)
+ LD H,000H
+ LD L,A
+ ADD HL,HL ; *2
+ ADD HL,HL ; *4
+ ADD HL,HL ; *8
+ ADD HL,HL ; *16
+ ADD HL,HL ; *32
+ ADD HL,HL ; *64
+ ADD HL,HL ; *128
+ LD DE,00010H ; +16
+ ADD HL,DE ; HL = relative start sector (16-bit)
+ ; Store as big-endian 32-bit (D=0, E=0, H, L)
+ EX DE,HL ; DE = sector
+ POP HL ; HL = entry pointer
+ LD (HL),000H ; Byte 0 (MSB) = 0
+ INC HL
+ LD (HL),000H ; Byte 1 = 0
+ INC HL
+ LD (HL),D ; Byte 2
+ INC HL
+ LD (HL),E ; Byte 3 (LSB)
+ INC HL
+ ;
+ ; SIZE: 2 bytes LE — read original from ELMD (FILE_SIZE is 0 after write loop).
+ PUSH DE
+ LD A,(ELMD)
+ CP 002H
+ JR NZ,WO_SZ_NB
+ LD DE,(ELMD20) ; BASIC: SIZE in ELMD20
+ JR WO_SZ_OK
+WO_SZ_NB: LD DE,(ELMD18) ; Non-BASIC: SIZE in ELMD18
+WO_SZ_OK: LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ ;
+ ; DTADR: 2 bytes LE — read original from ELMD/TEXTST.
+ LD A,(ELMD)
+ CP 002H
+ JR NZ,WO_DA_NB
+ LD DE,(TEXTST) ; BASIC: load address is TEXTST
+ JR WO_DA_OK
+WO_DA_NB: LD DE,(ELMD20) ; Non-BASIC: DTADR in ELMD20
+WO_DA_OK: LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ ;
+ ; EXADR: 2 bytes LE from ELMD22
+ LD DE,(ELMD22)
+ LD (HL),E
+ INC HL
+ LD (HL),D
+ INC HL
+ ;
+ ; RESERVED: 3 bytes zero
+ LD (HL),000H
+ INC HL
+ LD (HL),000H
+ INC HL
+ LD (HL),000H
+ POP DE
+ ;
+ ; Write the directory sector back to SD
+ ; Calculate directory sector address
+ LD A,(SAVE_DIRENT)
+ SRL A
+ SRL A
+ SRL A
+ SRL A ; A = dir sector number (0-15)
+ LD DE,0
+ LD H,0
+ LD L,A
+ CALL RFSGETSECTR ; DEHL = absolute dir sector
+ CALL SETLBAADDR
+ CALL SD_WRITE
+ OR A
+ JR NZ,WO_IOERR
+ ;
+ ; Success
+ CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ XOR A ; NC = success
+ RET
+ ;
+WO_IOERR: CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ XOR A
+ SCF ; C = error
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSOUT - Write Data (ZOUT handler for SAVE)
+;
+; BASIC's SAVE path calls ZOUT after ZWO. Since RFSWO is now a no-op,
+; RFSOUT is the single entry point for the actual write. On the first
+; call (SAVE_PENDING=0, cleared by RFSINIT), we call RFSDOWRITE to do
+; the full SD card write in one shot (reading directly from DTADR in
+; memory). Sets SAVE_PENDING=1 after, so subsequent calls are no-ops.
+; ---------------------------------------------------------------------------
+RFSOUT: LD A,(SAVE_PENDING)
+ OR A
+ JR NZ,RFSOUT_NOP ; Already written (1 = done), return success
+ INC A ; A = 1
+ LD (SAVE_PENDING),A ; Mark as done (one-shot)
+ JP RFSDOWRITE ; Do the full SD write and return
+RFSOUT_NOP: XOR A ; A=0, NC = success
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSRO - Read One directory entry (ZRO handler).
+;
+; V1.1V: Rewritten as directory entry enumerator.
+;
+; ZRO is called by BASIC for two purposes:
+; 1. L1C0F file search loop (HL=KEYBUF) — enumerate entries, compare names
+; 2. L1D53 DIR buffer fill loop (HL=L2000+offset) — fill 32-byte entries
+;
+; Each call returns one valid 32-byte MZF directory entry at the buffer
+; pointed to by HL (the caller's HL passed through IOCALL). The internal
+; DIR_ENTRY_IDX counter advances across calls; RFSINIT resets it to 0.
+;
+; Entry: HL = target buffer (32 bytes, set by caller before IOCALL)
+; Exit: NC = valid entry written to (HL), A = entry type (ATRB byte)
+; CF = no more entries (A=0)
+; ---------------------------------------------------------------------------
+RFSRO:
+ ; Save target buffer address for CONVERT_ENTRY
+ LD (DIR_BUFPTR),HL
+ ;
+ ; Save registers on BASIC stack (before MMIO_ON switches stacks)
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ ;
+ ; Set up drive number
+ LD A,(ZCH)
+ ADD A,003H ; RFS1:=drive 3
+ LD (SDDRIVENO),A
+ ;
+ ; Enter MMIO mode (switches to temp stack, enables SPI)
+ CALL MMIO_ON
+ ;
+ ; Clear 32 bytes at target buffer (below D000H, accessible in MMIO)
+ LD HL,(DIR_BUFPTR)
+ LD B,32
+RFSRO_CLR: LD (HL),000H
+ INC HL
+ DJNZ RFSRO_CLR
+ ;
+RFSRO_NEXT:
+ ; Get current entry index
+ LD A,(DIR_ENTRY_IDX)
+ LD E,A
+ ;
+ ; Read directory entry from SD card
+ CALL GETSDDIRENT ; HL=entry in SECTORBUF, A=status
+ OR A
+ JR NZ,RFSRO_END ; SD read error → done
+ ;
+ ; Check if entry is active (FLAG1 bit 7 set)
+ LD A,(HL)
+ BIT 7,A
+ JR Z,RFSRO_SKIP ; Inactive, skip
+ ;
+ ; Check ATRB at offset 1 — reject 0x00 (empty) and 0xFF (uninit)
+ INC HL
+ LD A,(HL)
+ DEC HL ; HL back to entry start
+ OR A
+ JR Z,RFSRO_SKIP ; ATRB=0, skip
+ CP 0FFH
+ JR Z,RFSRO_SKIP ; ATRB=0xFF, skip
+ ;
+ ; Valid entry: convert SD format to MZF format at DIR_BUFPTR
+ ; (DIR_BUFPTR was set at RFSRO entry from caller's HL)
+ ; HL = SD entry in SECTORBUF
+ CALL CONVERT_ENTRY
+ ;
+ ; Advance entry index for next call
+ LD A,(DIR_ENTRY_IDX)
+ INC A
+ LD (DIR_ENTRY_IDX),A
+ ;
+ ; Debug: show entry delivered
+ PUSH AF
+ OUT (PORT_DRAM),A ; Switch to DRAM for debug I/O
+ LD A,'R'
+ OUT (050H),A
+ LD A,'O'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD A,(DIR_ENTRY_IDX)
+ DEC A ; Show the index we just returned
+ CALL DBG_HEX
+ CALL DBG_CRLF
+ OUT (PORT_MMIO),A ; Back to MMIO
+ POP AF
+ ;
+ ; Success: exit MMIO, restore regs, return NC
+ CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ ;
+ ; Return ATRB value in A, NC = success
+ LD HL,(DIR_BUFPTR)
+ LD A,(HL) ; A = ATRB byte (first byte of MZF entry)
+ OR A ; Clear carry
+ RET
+ ;
+RFSRO_SKIP:
+ ; Advance to next entry
+ LD A,(DIR_ENTRY_IDX)
+ INC A
+ LD (DIR_ENTRY_IDX),A
+ JR Z,RFSRO_END ; Wrapped 255->0: all 256 scanned
+ JR RFSRO_NEXT
+ ;
+RFSRO_END:
+ ; No more entries (or SD error)
+ CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ XOR A ; A=0
+ SCF ; CF = no more entries
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSINP_DIR - ZINP handler for $RFS device
+;
+; For bit-5 devices, BASIC calls ZINP for three purposes:
+; 1. Disk identity read (H >= 28H) — returns zeros at 2800-28FF
+; 2. DIR buffer fill (DIR_FILLED=0, H < 28H) — fills 2000-27FF
+; 3. LOAD data transfer (DIR_FILLED=1, H < 28H) — reads from SD card
+;
+; IMPORTANT: H >= 28H MUST be checked first, before DIR_FILLED.
+; BASIC's data transfer path (L2AD2 → L2FD1 → L2FE8 → L2E36 → L2E67)
+; does an identity read (H=28H) AFTER the DIR buffer fill has set
+; DIR_FILLED=1. If DIR_FILLED were checked first, this identity read
+; would incorrectly dispatch to RFSINP_LD.
+;
+; Returns: carry clear, A=0 (success)
+; ---------------------------------------------------------------------------
+RFSINP_DIR:
+ ; Debug: trace every ZINP call
+ PUSH AF
+ LD A,'Z'
+ OUT (050H),A
+ LD A,H
+ CALL DBG_HEX
+ CALL DBG_CRLF
+ POP AF
+ ;
+ ; LOAD data path: BASIC's LOAD for bit5=0 devices calls ZINP once
+ ; via JP 019BBH (XOR A; CALL L18B6; CALL L1929). Entry A=0 signals
+ ; "load file data now" — skip DIR fill and identity checks entirely.
+ ; The byte-at-a-time refill path (L19B4) enters with A=0xFF (OR 0AFH).
+ OR A
+ JP Z,RFSINP_LD ; A=0 → LOAD path: read file to DTADR
+ ;
+ ; Identity reads (H >= 28H) MUST go to RFSINP_DISKID regardless of
+ ; DIR_FILLED, because BASIC does identity validation (L2E36 → L2E67 →
+ ; L2FD4 → IOCALL) AFTER the DIR buffer fill has set DIR_FILLED=1.
+ ; If DIR_FILLED were checked first, the identity read would dispatch
+ ; to RFSINP_LD instead of RFSINP_DISKID → identity validation fails.
+ LD A,H
+ CP 028H
+ JP NC,RFSINP_DISKID ; H >= 28H → identity (always)
+ ;
+ ; H < 28H: DIR buffer fill or data transfer
+ LD A,(DIR_FILLED)
+ OR A
+ JP NZ,RFSINP_LD ; DIR already filled → data transfer
+ ;
+ ; --- DIR mode: enumerate files into 0x2000 buffer ---
+ ;
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ ;
+ ; Clear DIR buffer 0x2000-0x27FF (2048 bytes = 64 entries x 32)
+ LD HL,L2000
+ LD DE,L2000 + 1
+ LD BC,007FFH
+ LD (HL),000H
+ LDIR
+ ;
+ ; Set up SD drive from channel number
+ LD A,(ZCH)
+ ADD A,003H ; RFS1:=drive 3, skipping boot drives 0-2
+ LD (SDDRIVENO),A
+ ;
+ ; Entry 0 at 0x2000: skip marker (0x80)
+ LD HL,L2000
+ LD (HL),080H
+ ;
+ ; Enter MMIO mode
+ CALL MMIO_ON
+ ;
+ ; Reset directory sector cache
+ LD A,0FFH
+ LD (DIRSECBUF),A
+ ;
+ ; Scan SD directory, fill MZF entries starting at 0x2020
+ LD HL,L2000 + 020H
+ LD (DIR_BUFPTR),HL ; Current buffer write position
+ LD E,000H ; E = SD directory entry index (0-255)
+ LD D,03FH ; D = remaining buffer entries (max 63)
+ LD B,000H ; B = 256 entries to scan (DJNZ wraps)
+ ;
+RDIR_LOOP: PUSH BC
+ PUSH DE
+ CALL GETSDDIRENT ; HL = entry in SECTORBUF, A = status
+ POP DE
+ POP BC
+ OR A
+ JR NZ,RDIR_DONE ; SD read error, stop
+ ;
+ ; Debug: dump first 4 entries (E=0..3) FLAG1+ATRB
+ LD A,E
+ CP 004H
+ JR NC,RDIR_NDBG ; Only dump entries 0-3
+ PUSH HL
+ PUSH AF
+ LD A,'['
+ OUT (050H),A
+ LD A,E
+ CALL DBG_HEX ; Entry number
+ LD A,']'
+ OUT (050H),A
+ POP AF
+ POP HL
+ PUSH HL
+ PUSH BC
+ ; Dump 8 bytes from entry
+ LD B,008H
+RDIR_DBLP: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ RDIR_DBLP
+ CALL DBG_CRLF
+ POP BC
+ POP HL
+ ;
+RDIR_NDBG:
+ ; Check if entry is active (FLAG1 bit 7) AND has valid ATRB.
+ ; Uninitialized SD entries (0xFF fill) have bit 7 set but ATRB=0xFF,
+ ; so we reject ATRB=0x00 (empty) and ATRB=0xFF (uninitialized).
+ ; All other values (0x01-0xFE) are accepted, including non-standard
+ ; file types like 0x7E found on some partitions.
+ LD A,(HL)
+ BIT 7,A
+ JR Z,RDIR_NEXT ; Inactive (FLAG1 bit7=0), skip
+ INC HL
+ LD A,(HL) ; A = ATRB (offset 1)
+ DEC HL ; HL back to entry start
+ OR A
+ JR Z,RDIR_NEXT ; ATRB=0 → invalid, skip
+ CP 0FFH
+ JR Z,RDIR_NEXT ; ATRB=0xFF → uninitialized, skip
+ ;
+ ; Convert SD entry at HL to MZF format in DIR buffer
+ PUSH DE
+ PUSH BC
+ CALL CONVERT_ENTRY ; HL=SD entry, writes to (DIR_BUFPTR)
+ POP BC
+ POP DE
+ DEC D ; One fewer buffer slot
+ JR Z,RDIR_DONE ; Buffer full
+ ;
+RDIR_NEXT: INC E ; Next SD directory entry
+ DJNZ RDIR_LOOP
+ ;
+RDIR_DONE: CALL MMIO_OFF
+ ; Debug: show how many entries found (D started at 63, remaining = D)
+ PUSH AF
+ LD A,'F'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ LD A,03FH ; 63 max
+ SUB D ; A = entries found
+ CALL DBG_HEX
+ CALL DBG_CRLF
+ POP AF
+ ;
+ POP BC
+ POP DE
+ POP HL
+ LD A,001H
+ LD (DIR_FILLED),A ; Mark DIR buffer as filled
+ XOR A ; A=0, carry clear = success
+ RET
+ ;
+ ; --- Disk identity mode: zero L2800-L28FF ---
+ ; L2E36 validates: (L2800) exact + L2806-L28FF bitmask against
+ ; stored reference. L2E77/L2E84 modifies L2801-L2805 and writes
+ ; computed values at L2806+. By presenting all-zeros consistently,
+ ; L2E84 computes the same result each time → reference matches.
+ ;
+RFSINP_DISKID:
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ LD HL,02800H
+ LD DE,02801H
+ LD BC,000FFH ; 255 bytes: L2800-L28FF
+ LD (HL),000H
+ LDIR
+ POP BC
+ POP DE
+ POP HL
+ XOR A ; A=0, carry clear = success
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSINP_LD - LOAD data transfer (ZINP with ZLOG != 0)
+;
+; Reads file data sector-by-sector from SD card into the load address.
+; For bit-5 devices, BASIC's LOAD path does NOT call ZRO and does not
+; set ZLOG. RFSINP_DIR dispatches here when DIR_FILLED=1 (DIR buffer
+; already populated). We find the file in the SD directory via FINDSD,
+; extract SIZE, DTADR, and start sector directly from the SD entry.
+; ---------------------------------------------------------------------------
+RFSINP_LD: ; Debug: trace RFSINP_LD entry
+ PUSH AF
+ LD A,'I'
+ OUT (050H),A
+ LD A,'L'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ ; Dump ELMD1 first 8 chars
+ PUSH HL
+ PUSH BC
+ LD HL,ELMD1
+ LD B,008H
+ILD_DMP: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ ILD_DMP
+ CALL DBG_CRLF
+ POP BC
+ POP HL
+ POP AF
+ ;
+ ; V1.1Y: Save entry A value (0=SVC #30 LOAD, nonzero=SVC #33 refill).
+ ; RLD_DONE needs this to skip status byte writes when L180B still points
+ ; at SVC #2C self-modifying code (0x1A85, set by prior DIR's SVC #2E).
+ LD (RFS_LD_A0),A
+ ;
+ PUSH HL
+ PUSH DE
+ PUSH BC
+ ;
+ ; Set up drive number
+ LD A,(ZCH)
+ ADD A,003H ; RFS1:=drive 3, skipping boot drives 0-2
+ LD (SDDRIVENO),A
+ ;
+ ; Enter MMIO mode
+ CALL MMIO_ON
+ ;
+ ; Reset directory sector cache
+ LD A,0FFH
+ LD (DIRSECBUF),A
+ ;
+ ; Find file by name in SD directory to get start sector
+ LD DE,ELMD1
+ CALL FINDSD
+ JP NZ,RLD_NFERR ; File not found
+ ;
+ ; HL = directory entry in SECTORBUF
+ ; Skip FLAG1(1) + ATRB(1) + NAME(17) = 19 bytes to START_SECTOR
+ LD DE,19
+ ADD HL,DE
+ ;
+ ; Copy 4-byte start sector to FILE_STARTSEC (big-endian)
+ LD DE,FILE_STARTSEC
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ ;
+ ; HL now at offset 22 (last byte of START_SECTOR).
+ ; Read SIZE(2) and DTADR(2) from the SD directory entry
+ ; (offset 23..26) instead of ELMD, which may not be populated
+ ; for bit-5 device LOAD paths.
+ INC HL ; HL = offset 23 = SIZE low
+ LD E,(HL)
+ INC HL ; HL = offset 24 = SIZE high
+ LD D,(HL)
+ EX DE,HL ; HL = SIZE
+ LD (FILE_SIZE),HL
+ EX DE,HL ; HL = offset 24 again
+ INC HL ; HL = offset 25 = DTADR low
+ LD E,(HL)
+ INC HL ; HL = offset 26 = DTADR high
+ LD D,(HL)
+ EX DE,HL ; HL = DTADR
+ LD (FILE_LOADADDR),HL
+ ;
+ ; For BASIC programs (ELMD type 2/BTX), override FILE_LOADADDR
+ ; with TEXTST. The file's DTADR reflects whatever system it was
+ ; saved on and may point inside Disk BASIC code. BASIC's own
+ ; SVC 038H rechain (called in the LOAD command handler at L5C44)
+ ; rebuilds all next-line pointers from scratch, so the data just
+ ; needs to land at the current TEXTST.
+ LD A,(ELMD) ; File attribute byte
+ CP 002H ; Type 2 = BTX (BASIC text)?
+ JR NZ,RLD_NORLOC ; No → use DTADR as-is
+ LD HL,(TEXTST) ; Current text area start
+ LD (FILE_LOADADDR),HL
+RLD_NORLOC:
+ ;
+ ; Convert FILE_STARTSEC to absolute sector (add drive offset)
+ LD A,(FILE_STARTSEC)
+ LD D,A
+ LD A,(FILE_STARTSEC+1)
+ LD E,A
+ LD A,(FILE_STARTSEC+2)
+ LD H,A
+ LD A,(FILE_STARTSEC+3)
+ LD L,A
+ CALL RFSGETSECTR ; DEHL += drive_offset
+ ;
+ ; Store absolute sector in SDSTARTSEC for SD_READ
+ LD A,D
+ LD (SDSTARTSEC),A
+ LD A,E
+ LD (SDSTARTSEC+1),A
+ LD A,H
+ LD (SDSTARTSEC+2),A
+ LD A,L
+ LD (SDSTARTSEC+3),A
+ ;
+ ; Debug: dump FILE_STARTSEC, absolute sector, SIZE, DTADR
+ ; Switch to DRAM for debug output (port 050H may need DRAM)
+ PUSH AF
+ OUT (PORT_DRAM),A
+ LD A,'I'
+ OUT (050H),A
+ LD A,'S'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ ; FILE_STARTSEC (4 bytes)
+ LD A,(FILE_STARTSEC)
+ CALL DBG_HEX
+ LD A,(FILE_STARTSEC+1)
+ CALL DBG_HEX
+ LD A,(FILE_STARTSEC+2)
+ CALL DBG_HEX
+ LD A,(FILE_STARTSEC+3)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ ; Absolute sector (SDSTARTSEC, 4 bytes)
+ LD A,'A'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD A,(SDSTARTSEC)
+ CALL DBG_HEX
+ LD A,(SDSTARTSEC+1)
+ CALL DBG_HEX
+ LD A,(SDSTARTSEC+2)
+ CALL DBG_HEX
+ LD A,(SDSTARTSEC+3)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ ; SIZE
+ LD A,'Z'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD A,(FILE_SIZE+1) ; High byte
+ CALL DBG_HEX
+ LD A,(FILE_SIZE) ; Low byte
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ ; DTADR
+ LD A,'D'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD A,(FILE_LOADADDR+1) ; High byte
+ CALL DBG_HEX
+ LD A,(FILE_LOADADDR) ; Low byte
+ CALL DBG_HEX
+ CALL DBG_CRLF
+ ; Switch back to MMIO
+ OUT (PORT_MMIO),A
+ POP AF
+ ;
+RLD_LOOP: ; Read one sector into SECTORBUF
+ CALL SD_READ
+ OR A
+ JR NZ,RLD_ERR
+ ;
+ ; Map DRAM to copy data (target may be >= D000H)
+ OUT (PORT_DRAM),A
+ ;
+ ; Calculate bytes to copy: min(FILE_SIZE, 512)
+ LD HL,(FILE_SIZE)
+ LD DE,00200H ; 512
+ OR A
+ SBC HL,DE ; HL = FILE_SIZE - 512
+ JR C,RLD_PARTIAL ; FILE_SIZE < 512
+ ;
+ ; Full sector: remaining = HL, copy 512 bytes
+ LD (FILE_SIZE),HL
+ LD BC,00200H
+ JR RLD_COPY
+ ;
+RLD_PARTIAL:; Partial sector: remaining = 0, copy FILE_SIZE bytes
+ ADD HL,DE ; Restore HL = FILE_SIZE
+ LD B,H
+ LD C,L ; BC = bytes to copy
+ LD HL,0
+ LD (FILE_SIZE),HL ; Done after this
+ ;
+RLD_COPY: LD HL,SECTORBUF
+ LD DE,(FILE_LOADADDR)
+ LDIR ; Copy sector data to target
+ LD (FILE_LOADADDR),DE ; Update target address
+ ;
+ ; Check if all data transferred
+ LD HL,(FILE_SIZE)
+ LD A,H
+ OR L
+ JR Z,RLD_DONE ; All done
+ ;
+ ; Increment SDSTARTSEC for next sector
+ CALL INC_STARTSEC
+ ;
+ ; Map MMIO for next sector read
+ OUT (PORT_MMIO),A
+ JR RLD_LOOP
+ ;
+RLD_DONE: ; Map MMIO so MMIO_OFF can work (it expects temp stack)
+ OUT (PORT_MMIO),A
+ CALL MMIO_OFF
+ ;
+ ; V1.1Y: Only write status bytes when entered via SVC #33 refill path
+ ; (A≠0 at entry). The SVC #30 LOAD path (A=0) leaves L180B pointing at
+ ; 0x1A85 (set by prior DIR's SVC #2E), which is inside SVC #2C's
+ ; self-modifying LD HL,nnnn instruction (opcode 0x21 at 0x1A83).
+ ; Writing 0xFF there corrupts the opcode to RST 38H, breaking all
+ ; subsequent device-open calls ("Dev. name error" after LOAD).
+ ; SVC #30 callers don't read the status bytes, so skipping is safe.
+ LD A,(RFS_LD_A0)
+ OR A
+ JR Z,RLD_SKIP_STAT
+ ;
+ ; SVC #33 refill path: write status bytes at (L180B)-2 to 0xFF,0xFF
+ ; = "last block, all done". L1AEF already set L180B to a safe buffer.
+ LD HL,(L180B)
+ DEC HL
+ LD (HL),0FFH ; (L180B)-1 = 0xFF
+ DEC HL
+ LD (HL),0FFH ; (L180B)-2 = 0xFF
+ ;
+RLD_SKIP_STAT:
+ POP BC
+ POP DE
+ POP HL
+ XOR A ; NC = success
+ RET
+ ;
+RLD_ERR: CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ XOR A
+ SCF ; Carry = error
+ RET
+ ;
+RLD_NFERR: CALL MMIO_OFF
+ POP BC
+ POP DE
+ POP HL
+ XOR A
+ SCF ; Carry = file not found
+ RET
+
+; ===========================================================================
+; Low-level SD card access routines
+; ===========================================================================
+
+; ---------------------------------------------------------------------------
+; MMIO_ON - Enter MMIO mode for SPI access
+;
+; Saves BASIC stack pointer, switches to temp stack, disables interrupts,
+; maps MMIO (D000-FFFF), and trains the upCntr latch.
+; After return, caller is on temp stack and can access EFF8-EFFF.
+; ---------------------------------------------------------------------------
+MMIO_ON: POP HL ; Get return address (from BASIC stack)
+ LD (SAVE_SP),SP ; Save BASIC SP
+ LD SP,TEMP_STACK_TOP ; Switch to temp stack
+ PUSH HL ; Push return address on temp stack
+ DI
+ XOR A
+ OUT (PORT_MMIO),A ; Map D000-FFFF to MMIO
+ CALL TRAIN_UPCNTR ; Train latch (15 reads of EFF8H)
+ RET ; Return to caller (via temp stack)
+
+; ---------------------------------------------------------------------------
+; MMIO_OFF - Leave MMIO mode, restore DRAM and BASIC stack
+;
+; Maps D000-FFFF back to DRAM, enables interrupts, restores BASIC stack.
+; ---------------------------------------------------------------------------
+MMIO_OFF: POP HL ; Get return address (from temp stack)
+ XOR A
+ OUT (PORT_DRAM),A ; Map D000-FFFF to DRAM
+ EI
+ LD SP,(SAVE_SP) ; Restore BASIC stack
+ JP (HL) ; Return to caller (on BASIC stack)
+
+; ---------------------------------------------------------------------------
+; TRAIN_UPCNTR - Train the RFS register latch (upCntr) to 15
+;
+; Reads BNKCTRLRST 15 times to enable control register writes.
+; Entry: MMIO must be mapped (OUT E3H done)
+; Exit: A = 0, HL and B modified
+; ---------------------------------------------------------------------------
+TRAIN_UPCNTR:
+ LD HL,BNKCTRLRST ; EFF8H
+ LD B,15
+TRAIN_LP: LD A,(HL) ; Each read increments upCntr
+ DJNZ TRAIN_LP
+ XOR A
+ RET
+
+; ---------------------------------------------------------------------------
+; SPIOUT - Send one byte via hardware SPI
+; Entry: A = byte to send
+; Exit: A unchanged
+; ---------------------------------------------------------------------------
+SPIOUT: LD (HWSPIDATA),A ; Write data to SPI register
+ LD (HWSPISTART),A ; Start SPI transfer (clocks 8 bits)
+ RET
+
+; ---------------------------------------------------------------------------
+; SPIIN - Receive one byte via hardware SPI
+; Entry: (none)
+; Exit: A = received byte
+; ---------------------------------------------------------------------------
+SPIIN: LD (HWSPISTART),A ; Clock 8 bits (sends whatever was in A)
+ LD A,(HWSPIDATA) ; Read received byte
+ RET
+
+; ---------------------------------------------------------------------------
+; SPI_CS_LO - Activate SD card chip select (CS LOW)
+; ---------------------------------------------------------------------------
+SPI_CS_LO: LD A,SDCS_ACT ; CS LOW, clock enable
+ LD (BNKCTRL),A
+ RET
+
+; ---------------------------------------------------------------------------
+; SPI_CS_HI - Deactivate SD card chip select (CS HIGH)
+; ---------------------------------------------------------------------------
+SPI_CS_HI: LD A,SDCS_DEACT ; CS HIGH, clock enable
+ LD (BNKCTRL),A
+ RET
+
+; ---------------------------------------------------------------------------
+; SD_READ - Read one 512-byte sector from SD card into SECTORBUF
+;
+; Entry: SDSTARTSEC = 32-bit sector address (big-endian, 4 bytes)
+; MMIO must be mapped, upCntr trained
+; Exit: A = 0 success, A = 1 error
+; SECTORBUF contains 512 bytes of sector data
+; Modified: A, B, D, HL
+; ---------------------------------------------------------------------------
+SD_READ: CALL SPI_CS_LO ; CS LOW (activate card)
+ ;
+ ; Send CMD17 (Read Single Block): 0x51 + 4-byte sector + 0xFF
+ LD A,051H ; CMD17
+ CALL SPIOUT
+ LD A,(SDSTARTSEC) ; Sector byte 0 (MSB)
+ CALL SPIOUT
+ LD A,(SDSTARTSEC+1) ; Sector byte 1
+ CALL SPIOUT
+ LD A,(SDSTARTSEC+2) ; Sector byte 2
+ CALL SPIOUT
+ LD A,(SDSTARTSEC+3) ; Sector byte 3 (LSB)
+ CALL SPIOUT
+ LD A,0FFH ; CRC (dummy, ignored by emulation)
+ CALL SPIOUT
+ ;
+ ; Poll for R1 response (should be 0x00, not 0xFF)
+ LD B,0FFH ; Max 255 retries
+SDR_R1: CALL SPIIN
+ CP 0FFH
+ JR NZ,SDR_GOTR1 ; Got non-0xFF response
+ DJNZ SDR_R1
+ JR SDR_ERR ; Timeout
+ ;
+SDR_GOTR1: OR A ; R1 should be 0x00 (no error)
+ JR NZ,SDR_ERR
+ ;
+ ; Poll for data token (0xFE)
+ LD B,0FFH
+SDR_TOK: CALL SPIIN
+ CP 0FEH ; Data token?
+ JR Z,SDR_DATA ; Yes, start reading data
+ CP 0FFH ; Still busy?
+ JR NZ,SDR_ERR ; Error token
+ DJNZ SDR_TOK
+ JR SDR_ERR ; Timeout
+ ;
+ ; Read 512 bytes into SECTORBUF (2 pages of 256 bytes)
+SDR_DATA: LD HL,SECTORBUF
+ LD D,002H ; 2 pages
+SDR_PG: LD B,000H ; 256 bytes per page (B=0 wraps DJNZ)
+SDR_BYTE: CALL SPIIN
+ LD (HL),A
+ INC HL
+ DJNZ SDR_BYTE
+ DEC D
+ JR NZ,SDR_PG
+ ;
+ ; Skip 2 CRC bytes
+ CALL SPIIN
+ CALL SPIIN
+ ;
+ CALL SPI_CS_HI ; CS HIGH (deactivate)
+ XOR A ; A = 0, success
+ RET
+ ;
+SDR_ERR: CALL SPI_CS_HI ; CS HIGH on error too
+ LD A,001H ; A = 1, error
+ RET
+
+; ---------------------------------------------------------------------------
+; SD_WRITE - Write one 512-byte sector from SECTORBUF to SD card
+;
+; Entry: SDSTARTSEC = 32-bit sector address (big-endian, 4 bytes)
+; SECTORBUF contains 512 bytes to write
+; MMIO must be mapped, upCntr trained
+; Exit: A = 0 success, A = 1 error
+; Modified: A, B, D, HL
+; ---------------------------------------------------------------------------
+SD_WRITE: CALL SPI_CS_LO ; CS LOW (activate card)
+ ;
+ ; Send CMD24 (Write Single Block): 0x58 + 4-byte sector + 0xFF
+ LD A,058H ; CMD24
+ CALL SPIOUT
+ LD A,(SDSTARTSEC)
+ CALL SPIOUT
+ LD A,(SDSTARTSEC+1)
+ CALL SPIOUT
+ LD A,(SDSTARTSEC+2)
+ CALL SPIOUT
+ LD A,(SDSTARTSEC+3)
+ CALL SPIOUT
+ LD A,0FFH ; Dummy CRC
+ CALL SPIOUT
+ ;
+ ; Poll for R1 response (should be 0x00)
+ LD B,0FFH
+SDW_R1: CALL SPIIN
+ CP 0FFH
+ JR NZ,SDW_GOTR1
+ DJNZ SDW_R1
+ JR SDW_ERR ; Timeout
+ ;
+SDW_GOTR1: OR A
+ JR NZ,SDW_ERR ; R1 error
+ ;
+ ; Send data token 0xFE
+ LD A,0FEH
+ CALL SPIOUT
+ ;
+ ; Send 512 bytes from SECTORBUF (2 pages of 256)
+ LD HL,SECTORBUF
+ LD D,002H
+SDW_PG: LD B,000H ; 256 bytes per page
+SDW_BYTE: LD A,(HL)
+ CALL SPIOUT
+ INC HL
+ DJNZ SDW_BYTE
+ DEC D
+ JR NZ,SDW_PG
+ ;
+ ; Send 2 dummy CRC bytes
+ LD A,0FFH
+ CALL SPIOUT
+ CALL SPIOUT
+ ;
+ ; Read data response token: xxx00101 = accepted (0x05)
+ CALL SPIIN
+ AND 01FH
+ CP 005H
+ JR NZ,SDW_ERR
+ ;
+ ; Wait for busy (card holds MISO low while writing)
+ LD D,040H ; Outer loop: 64
+SDW_BSY1: LD B,000H ; Inner loop: 256 -> 64*256=16384 polls
+SDW_BSY2: CALL SPIIN
+ CP 0FFH ; 0xFF = not busy
+ JR Z,SDW_DONE
+ DJNZ SDW_BSY2
+ DEC D
+ JR NZ,SDW_BSY1
+ JR SDW_ERR ; Timeout
+ ;
+SDW_DONE: CALL SPI_CS_HI
+ XOR A ; A = 0, success
+ RET
+ ;
+SDW_ERR: CALL SPI_CS_HI
+ LD A,001H ; A = 1, error
+ RET
+
+; ===========================================================================
+; Directory and file access routines
+; ===========================================================================
+
+; ---------------------------------------------------------------------------
+; ADD3216 - Add 16-bit BC to 32-bit DEHL
+;
+; Entry: DEHL = 32-bit number, BC = 16-bit addend
+; Exit: DEHL = DEHL + BC
+; Modified: BC (set to 0)
+; ---------------------------------------------------------------------------
+ADD3216: ADD HL,BC
+ EX DE,HL
+ LD BC,0
+ ADC HL,BC ; Add carry to upper 16 bits
+ EX DE,HL
+ RET
+
+; ---------------------------------------------------------------------------
+; RFSGETSECTR - Calculate absolute SD sector from drive-relative sector
+;
+; Adds (SDDRIVENO * 0x8010) to DEHL.
+; Each drive image occupies 0x8010 sectors in the SD card image.
+;
+; Entry: DEHL = relative sector (32-bit)
+; SDDRIVENO = drive number (0 = first drive, 1 = second, etc.)
+; Exit: DEHL = absolute sector
+; Modified: A, BC
+; ---------------------------------------------------------------------------
+RFSGETSECTR:
+ LD A,(SDDRIVENO)
+GETSEC_LP: OR A
+ RET Z ; Drive 0 = no offset
+ DEC A
+ LD BC,08010H ; Sectors per drive image
+ CALL ADD3216
+ JR GETSEC_LP
+
+; ---------------------------------------------------------------------------
+; SETLBAADDR - Store DEHL into SDSTARTSEC (big-endian)
+;
+; Entry: DEHL = 32-bit sector (D=MSB, L=LSB)
+; Exit: SDSTARTSEC updated
+; Modified: A
+; ---------------------------------------------------------------------------
+SETLBAADDR: LD A,D
+ LD (SDSTARTSEC),A
+ LD A,E
+ LD (SDSTARTSEC+1),A
+ LD A,H
+ LD (SDSTARTSEC+2),A
+ LD A,L
+ LD (SDSTARTSEC+3),A
+ RET
+
+; ---------------------------------------------------------------------------
+; INC_STARTSEC - Increment SDSTARTSEC by 1 (32-bit big-endian)
+; Modified: HL
+; ---------------------------------------------------------------------------
+INC_STARTSEC:
+ LD HL,SDSTARTSEC+3 ; LSB
+ INC (HL)
+ RET NZ
+ DEC HL ; Byte 2
+ INC (HL)
+ RET NZ
+ DEC HL ; Byte 1
+ INC (HL)
+ RET NZ
+ DEC HL ; MSB
+ INC (HL)
+ RET
+
+; ---------------------------------------------------------------------------
+; GETSDDIRENT - Get SD directory entry with sector caching
+;
+; Reads the directory sector containing entry E if not cached, then
+; returns a pointer to the entry within SECTORBUF.
+;
+; Entry: E = directory entry number (0-255)
+; MMIO mapped, upCntr trained
+; Exit: HL = pointer to 32-byte entry in SECTORBUF
+; A = 0 success, A = 1 error
+; Modified: A, BC, DE, HL
+; ---------------------------------------------------------------------------
+GETSDDIRENT:
+ PUSH DE
+ ;
+ ; Calculate which sector this entry is in (E / 16)
+ LD A,E
+ SRL A
+ SRL A
+ SRL A
+ SRL A ; A = sector number within directory
+ ;
+ ; Check if this sector is already cached
+ LD C,A
+ LD A,(DIRSECBUF)
+ CP C
+ JR Z,GDIR_CACHED ; Same sector, use cached data
+ ;
+ ; Need to read a new sector
+ LD A,C
+ LD (DIRSECBUF),A ; Update cache tag
+ ;
+ ; Calculate absolute sector: drive_offset + dir_sector
+ LD DE,0
+ LD H,0
+ LD L,A ; DEHL = directory sector (relative)
+ CALL RFSGETSECTR ; DEHL = absolute sector
+ CALL SETLBAADDR ; Store in SDSTARTSEC
+ CALL SD_READ ; Read sector into SECTORBUF
+ OR A
+ JR NZ,GDIR_ERR
+ ;
+GDIR_CACHED:; Calculate offset within sector: (E & 0x0F) * 32
+ POP DE
+ PUSH DE
+ LD A,E
+ AND 00FH ; Entry within sector (0-15)
+ LD HL,SECTORBUF
+ OR A
+ JR Z,GDIR_DONE ; First entry, no offset needed
+ ;
+ ; Add A * 32 to HL
+ LD B,A
+ LD DE,00020H ; 32 bytes per entry
+GDIR_ADD: ADD HL,DE
+ DJNZ GDIR_ADD
+ ;
+GDIR_DONE: POP DE
+ XOR A ; A = 0, success
+ RET
+ ;
+GDIR_ERR: POP DE
+ LD A,001H ; A = 1, error
+ RET
+
+; ---------------------------------------------------------------------------
+; FINDSD - Find file by name in SD card directory
+;
+; Searches all 256 directory entries for an active entry whose filename
+; matches the string at DE (prefix match: input terminated by CR or null).
+;
+; Entry: DE = filename string (CR or null terminated)
+; MMIO mapped, upCntr trained, DIRSECBUF set to 0xFF
+; Exit: Z flag set = found, HL = directory entry in SECTORBUF
+; NZ flag = not found
+; Modified: A, BC, DE, HL
+; ---------------------------------------------------------------------------
+FINDSD: LD (FINDSD_NAME),DE ; Save search name pointer
+ LD E,000H ; E = directory entry index
+ LD B,000H ; B = 256 entries (DJNZ wraps from 0)
+ ;
+FSD_LOOP: PUSH BC
+ PUSH DE
+ CALL GETSDDIRENT ; HL = entry, A = status
+ POP DE
+ POP BC
+ OR A
+ JR NZ,FSD_NF ; Read error = not found
+ ;
+ ; Check if entry is active (FLAG1 bit 7) AND has valid ATRB.
+ ; Accept all non-zero, non-0xFF ATRB (01-FE).
+ LD A,(HL)
+ BIT 7,A
+ JR Z,FSD_NEXT ; Inactive, skip
+ INC HL
+ LD A,(HL) ; A = ATRB (offset 1)
+ DEC HL ; HL back to entry start
+ OR A
+ JR Z,FSD_NEXT ; ATRB=0 → invalid, skip
+ CP 0FFH
+ JR Z,FSD_NEXT ; ATRB=0xFF → uninitialized, skip
+ ;
+ ; Compare filename: dir entry name at HL+2 vs search name
+ PUSH HL ; Save entry start
+ PUSH DE
+ PUSH BC
+ INC HL
+ INC HL ; HL = directory entry name (offset 2)
+ LD DE,(FINDSD_NAME) ; DE = search name
+ LD B,17 ; Max filename length
+ ;
+FSD_CMP: LD A,(DE)
+ CP 00DH ; CR terminator?
+ JR Z,FSD_MATCH ; Input ended = prefix match
+ OR A ; Null terminator?
+ JR Z,FSD_MATCH
+ CP (HL) ; Compare characters
+ JR NZ,FSD_NOMATCH
+ INC DE
+ INC HL
+ DJNZ FSD_CMP
+ ; All 17 characters matched
+ ;
+FSD_MATCH: POP BC
+ POP DE
+ POP HL ; HL = entry start
+ XOR A ; Z flag = found
+ RET
+ ;
+FSD_NOMATCH:POP BC
+ POP DE
+ POP HL
+ ;
+FSD_NEXT: INC E ; Next directory entry
+ DJNZ FSD_LOOP
+ ;
+FSD_NF: LD A,001H
+ OR A ; NZ flag = not found
+ RET
+
+; ---------------------------------------------------------------------------
+; EXTRACT_HDR - Extract file header from SD directory entry
+;
+; Converts SD directory entry fields to MZF format in ELMD, and saves
+; the file's absolute start sector in FILE_STARTSEC for data transfer.
+;
+; Entry: HL = directory entry in SECTORBUF (MMIO mapped)
+; SDDRIVENO set for current drive
+; Exit: ELMD filled with MZF header (ATRB, NAME, SIZE, DTADR, EXADR)
+; FILE_STARTSEC set to absolute start sector
+; Modified: A, BC, DE, HL
+; ---------------------------------------------------------------------------
+EXTRACT_HDR:
+ INC HL ; Skip FLAG1, HL = ATRB (offset 1)
+ ;
+ ; Copy ATRB to ELMD[0], remapping CMT type 05 -> Disk BASIC type 02
+ LD DE,ELMD
+ LD A,(HL)
+ CP 005H ; CMT type 05 = MZ-700 BASIC text
+ JR NZ,EH_AT1
+ LD A,002H ; Disk BASIC type 02 = BTX
+EH_AT1: LD (DE),A
+ INC HL ; HL = NAME (offset 2)
+ INC DE ; DE = ELMD+1
+ ;
+ ; Copy 17-byte filename, converting null to CR
+ LD B,17
+EH_NAME: LD A,(HL)
+ OR A
+ JR NZ,EH_NM1
+ LD A,00DH ; Null -> CR for BASIC
+EH_NM1: LD (DE),A
+ INC HL
+ INC DE
+ DJNZ EH_NAME
+ ;
+ ; HL at offset 19: START_SECTOR (4 bytes, big-endian)
+ ; DE at ELMD+18
+ PUSH DE ; Save ELMD position
+ ;
+ ; Copy 4-byte start sector to FILE_STARTSEC
+ LD DE,FILE_STARTSEC
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ INC HL ; HL at offset 23: SIZE
+ ;
+ ; Copy SIZE(2) + DTADR(2) + EXADR(2) = 6 bytes to ELMD
+ POP DE ; DE = ELMD+18
+ LD BC,6
+ LDIR
+ ;
+ ; Convert FILE_STARTSEC to absolute sector (add drive offset)
+ LD A,(FILE_STARTSEC)
+ LD D,A
+ LD A,(FILE_STARTSEC+1)
+ LD E,A
+ LD A,(FILE_STARTSEC+2)
+ LD H,A
+ LD A,(FILE_STARTSEC+3)
+ LD L,A
+ CALL RFSGETSECTR ; DEHL += drive_offset
+ ;
+ ; Store absolute sector back to FILE_STARTSEC
+ LD A,D
+ LD (FILE_STARTSEC),A
+ LD A,E
+ LD (FILE_STARTSEC+1),A
+ LD A,H
+ LD (FILE_STARTSEC+2),A
+ LD A,L
+ LD (FILE_STARTSEC+3),A
+ RET
+
+; ---------------------------------------------------------------------------
+; CONVERT_ENTRY - Convert SD directory entry to Disk BASIC DIR buffer format
+;
+; Writes a 32-byte directory entry to the DIR buffer at (DIR_BUFPTR)
+; and advances DIR_BUFPTR by 32. Format matches standard MZ Disk BASIC
+; floppy directory layout so LOAD/SAVE work correctly.
+;
+; SD entry format: FLAG1(1), ATRB(1), NAME(17), SECTOR(4), SIZE(2), DTADR(2), EXADR(2), RESV(3)
+; Disk BASIC format: ATRB(1), NAME(17), STARTSEC(2), SIZE(2), DTADR(2), EXADR(2), pad(6)
+;
+; Entry: HL = SD directory entry in SECTORBUF
+; Exit: DIR_BUFPTR advanced by 32
+; Modified: A, BC, DE, HL
+; ---------------------------------------------------------------------------
+CONVERT_ENTRY:
+ INC HL ; Skip FLAG1
+ ;
+ ; Copy ATRB to buffer, remapping CMT type 05 -> Disk BASIC type 02
+ LD DE,(DIR_BUFPTR)
+ LD A,(HL)
+ CP 005H ; CMT type 05 = MZ-700 BASIC text
+ JR NZ,CE_AT1
+ LD A,002H ; Disk BASIC type 02 = BTX
+CE_AT1: LD (DE),A
+ INC HL ; HL = NAME (offset 2)
+ INC DE
+ ;
+ ; Copy 17-byte filename, null -> CR
+ LD B,17
+CE_NAME: LD A,(HL)
+ OR A
+ JR NZ,CE_NM1
+ LD A,00DH
+CE_NM1: LD (DE),A
+ INC HL
+ INC DE
+ DJNZ CE_NAME
+ ;
+ ; HL now at SD offset 19 = START_SECTOR (4 bytes, big-endian)
+ ; Write 2-byte start sector placeholder at DIR offset 18-19
+ ; then SIZE(2)+DTADR(2)+EXADR(2) at DIR offsets 20-25.
+ ; BASIC reads SIZE from DIR offset 20 (IY+14H), DTADR from 22,
+ ; EXADR from 24. The 2-byte slot at 18 must exist for alignment.
+ INC HL ; Skip START_SECTOR[0]
+ INC HL ; Skip START_SECTOR[1]
+ LD A,(HL)
+ LD (DE),A ; DIR[18] = START_SECTOR[2]
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A ; DIR[19] = START_SECTOR[3]
+ INC HL
+ INC DE
+ ;
+ ; Copy SIZE(2) + DTADR(2) + EXADR(2) = 6 bytes to DIR offset 20-25
+ LD BC,6
+ LDIR
+ ;
+ ; Remaining 8 bytes already zeroed by buffer clear
+ ; Advance DIR_BUFPTR by 32
+ LD HL,(DIR_BUFPTR)
+ LD DE,00020H
+ ADD HL,DE
+ LD (DIR_BUFPTR),HL
+ RET
+
+; ---------------------------------------------------------------------------
+; MEMCLI_PATCH - Trampoline from L4020 (MEMCLI).
+; Original code was: RST 018H / DB 020H / EX DE,HL
+; SVC 020H programs the boot beep timer and (critically) enables interrupts.
+; We must still call it, then load HL with RFS_END for the memory clear.
+; ---------------------------------------------------------------------------
+MEMCLI_PATCH:
+ RST 018H
+ DB 020H ; SVC 020H: boot beep + EI
+ LD HL,RFS_END
+ JP L4023 ; Continue with memory clear loop
+
+; ---------------------------------------------------------------------------
+; RFS_LOAD_HOOK - Trampoline for L3153 data transfer
+;
+; Replaces CALL L32CB + CALL L3174 in L3153. Checks if the current device
+; is $RFS (by comparing the ZINP handler pointer). For $RFS, performs SD
+; card data transfer via RFSINP_LD instead of the FD/QD hardware path.
+; For all other devices, calls the original L32CB + L3174 sequence.
+;
+; ---------------------------------------------------------------------------
+; RFS_DIR_FIX — Trampoline for DIR device-name parsing.
+; L593A's success path jumps here instead of directly to L596B.
+; We advance HL past the ':' so the INC/DEC zero-test at L596B sees
+; end-of-text (0x00) rather than ':' (0x3A).
+; ---------------------------------------------------------------------------
+RFS_DIR_FIX:
+ LD DE,L5982
+ INC HL ; Advance HL past ':'.
+ JP L596B
+;
+; ---------------------------------------------------------------------------
+; RFS_DIR_STR — Hook for L5962 string expression path.
+; Called instead of L6E6F when L593A's letter parsing fails (e.g., DIR "RFS1:").
+; Evaluates the string expression, then copies the device name (up to ':')
+; into L5982 and sets B = length for SVC #2CH.
+; Entry: HL = text pointer (at '"'), B = 0
+; Exit: HL advanced past expression, B = name length, DE = L5982
+; ---------------------------------------------------------------------------
+RFS_DIR_STR:
+ CALL L6E6F ; Evaluate string expr. B=strlen, DE=strptr
+ PUSH HL ; Save text pointer (past closing quote)
+ EX DE,HL ; HL = string data pointer
+ LD DE,L5982 ; DE = name buffer
+ LD A,B ; A = string length
+ OR A
+ JR Z,DSTR_DONE ; Empty string → B stays 0
+ LD C,A ; C = remaining chars
+ LD B,000H ; B = bytes copied
+DSTR_LP: LD A,(HL) ; Get char from string
+ LD (DE),A ; Copy to name buffer
+ INC HL
+ INC DE
+ INC B ; Count
+ DEC C
+ CP 03AH ; ':' ?
+ JR Z,DSTR_DONE ; Stop after ':'
+ LD A,C
+ OR A
+ JR NZ,DSTR_LP ; Loop if more chars
+DSTR_DONE: LD DE,L5982 ; DE = start of name buffer (for SVC #2CH)
+ POP HL ; Restore text pointer
+ RET
+;
+; Entry: BC = SIZE (file size to load), stack = L10F0 stack
+; Exit: A=0 NC on success; carry on error. Registers preserved.
+; ---------------------------------------------------------------------------
+RFS_LOAD_HOOK:
+ ; Debug: trace L3153 hook entry
+ PUSH AF
+ LD A,'L'
+ OUT (050H),A
+ LD A,'H'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ ; Show BC (SIZE)
+ LD A,B
+ CALL DBG_HEX
+ LD A,C
+ CALL DBG_HEX
+ CALL DBG_CRLF
+ POP AF
+ ;
+ LD HL,(ZINP) ; Current device ZINP handler
+ PUSH DE
+ LD DE,RFSINP_DIR ; $RFS handler address
+ OR A
+ SBC HL,DE
+ POP DE
+ JR Z,RFLH_RFS
+ ;
+ ; Not $RFS — call original FD/QD transfer
+ CALL L32CB
+ JP L3174
+ ;
+RFLH_RFS: ; $RFS device: transfer file data from SD card.
+ ; Debug: show ELMD contents before RFSINP_LD
+ PUSH AF
+ PUSH HL
+ PUSH BC
+ LD A,'L'
+ OUT (050H),A
+ LD A,'D'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ ; Dump ELMD[0..7] (ATRB + first 7 chars of name)
+ LD HL,ELMD
+ LD B,008H
+RFLH_DMP1: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ RFLH_DMP1
+ CALL DBG_CRLF
+ ; Dump ELMD18-ELMD23 (SIZE+DTADR+EXADR)
+ LD A,'E'
+ OUT (050H),A
+ LD A,'M'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD HL,ELMD18
+ LD B,006H
+RFLH_DMP2: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ RFLH_DMP2
+ CALL DBG_CRLF
+ POP BC
+ POP HL
+ POP AF
+ ;
+ CALL RFSINP_LD
+ ; Debug: show return status
+ PUSH AF
+ LD A,'L'
+ OUT (050H),A
+ LD A,'R'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ JR C,RFLH_ERR
+ LD A,'K'
+ OUT (050H),A
+ JR RFLH_DONE
+RFLH_ERR: LD A,'E'
+ OUT (050H),A
+RFLH_DONE: CALL DBG_CRLF
+ POP AF
+ JP L3101
+
+; ===========================================================================
+; DBG_DIRCMD1 — Debug wrapper for L58CA (DIR handler 1: device-name path).
+; Outputs "1E\n" on port 050H as version/path marker, then original logic.
+; ===========================================================================
+DBG_DIRCMD1:
+ LD A,'1' ; DIR path 1 marker
+ OUT (050H),A
+ LD A,'M' ; Version letter M
+ OUT (050H),A
+ CALL DBG_CRLF
+ CALL L593A ; Original: parse device name
+ RST 018H
+ DB 03AH ; SVC #3A: list directory
+ RET
+
+; ===========================================================================
+; DBG_DIRCMD2 — Debug wrapper for L58D0 (DIR handler 2: string-expr path).
+; Outputs "2E\n" on port 050H as version/path marker, then original logic.
+; ===========================================================================
+DBG_DIRCMD2:
+ LD A,'2' ; DIR path 2 marker
+ OUT (050H),A
+ LD A,'M' ; Version letter M
+ OUT (050H),A
+ CALL DBG_CRLF
+ CALL L413E ; Original: check current char
+ LD B,000H
+ CALL NZ,L6E6F ; Evaluate string expression
+ JP L58D8 ; Continue at PUSH HL / SVC #2C / SVC #3C
+
+; ===========================================================================
+; DBG_DIR — Debug wrapper replacing L596B for DIR SVC #2C.
+; Outputs trace info on port 050H, then performs the original SVC call and
+; error check. Format:
+; D:BB NAMESTR... (before SVC: B=count, name from DE)
+; K:xx xx xx xx xx xx (after SVC: KEYBUF[0..5])
+; =HHHH:VV (after SVC: HL pointer and (HL) value)
+; ===========================================================================
+DBG_DIR:
+ PUSH AF
+ ; --- Before SVC: output "D:" + B (hex) + space + name string ---
+ LD A,'D'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD A,B
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ ; Output the name (B chars from DE)
+ PUSH BC
+ PUSH DE
+ LD A,B
+ OR A
+ JR Z,DBG_NN
+DBG_NLP: LD A,(DE)
+ OUT (050H),A
+ INC DE
+ DJNZ DBG_NLP
+DBG_NN: POP DE
+ POP BC
+ CALL DBG_CRLF
+ POP AF
+ ; --- Call SVC #2C (original L596B logic) ---
+ PUSH HL
+ RST 018H
+ DB 02CH
+ ; --- After SVC: dump KEYBUF[0..7] ---
+ PUSH AF
+ PUSH BC
+ PUSH DE
+ PUSH HL ; save SVC result HL
+ LD A,'K'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD HL,KEYBUF
+ LD B,008H
+DBG_KLP: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ DBG_KLP
+ CALL DBG_CRLF
+ POP HL ; restore SVC result HL
+ ; --- Output "=" + HL (4 hex) + ":" + (HL) (2 hex) ---
+ LD A,'='
+ OUT (050H),A
+ LD A,H
+ CALL DBG_HEX
+ LD A,L
+ CALL DBG_HEX
+ LD A,':'
+ OUT (050H),A
+ LD A,(HL)
+ CALL DBG_HEX
+ CALL DBG_CRLF
+ POP DE
+ POP BC
+ POP AF
+ ; --- Original error check ---
+ INC (HL)
+ DEC (HL)
+ JP NZ,04B25H
+ POP HL
+ RET
+;
+; ---------------------------------------------------------------------------
+; DBG_HEX — Output A as 2 hex ASCII digits to port 050H.
+; Preserves BC, DE, HL.
+; ---------------------------------------------------------------------------
+DBG_HEX: PUSH AF
+ RRCA
+ RRCA
+ RRCA
+ RRCA
+ AND 00FH
+ CALL DBG_NIB
+ POP AF
+ AND 00FH
+DBG_NIB: CP 00AH
+ JR C,DBG_DIG
+ ADD A,037H ; 'A'..'F'
+ OUT (050H),A
+ RET
+DBG_DIG: ADD A,030H ; '0'..'9'
+ OUT (050H),A
+ RET
+;
+; ---------------------------------------------------------------------------
+; DBG_CRLF — Output CR+LF to port 050H. Preserves all registers.
+; ---------------------------------------------------------------------------
+DBG_CRLF: PUSH AF
+ LD A,00DH ; CR
+ OUT (050H),A
+ LD A,00AH ; LF
+ OUT (050H),A
+ POP AF
+ RET
+
+; ===========================================================================
+; DBG_DIR3 — Debug wrapper for L5CE3 (the real DIR command handler).
+; Replicates the full DIR flow with debug markers around each SVC call.
+; Output format on port 050H:
+; D3:E (entry marker + version)
+; 82:AA (L5882 result in A, hex)
+; 2E:AA C=x B1=x (SVC #2E result: A, carry flag, bit1 of A)
+; C2: (L58C2 done)
+; 3A:AA (L593A result: channel in A)
+; 39a: (SVC #39 with A=0 done)
+; 3Ac:AA (SVC #3A with A=channel done)
+; 39b:AA (SVC #39 with A=orig done)
+; D3:X (exit marker)
+; ===========================================================================
+DBG_DIR3:
+ ; --- Entry marker ---
+ LD A,'D'
+ OUT (050H),A
+ LD A,'3'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD A,'M' ; Version M
+ OUT (050H),A
+ CALL DBG_CRLF
+ ; --- Call L5882 (original first instruction) ---
+ CALL L5882
+ ; --- Debug: show L5882 result ---
+ PUSH AF
+ PUSH AF
+ LD A,'8'
+ OUT (050H),A
+ LD A,'2'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ POP AF
+ PUSH AF
+ CALL DBG_HEX ; show A from L5882
+ CALL DBG_CRLF
+ POP AF
+ ; --- PUSH AF (as original) ---
+ ; AF is already on stack from our PUSH above
+ ; --- SVC #2E ---
+ RST 018H
+ DB 02EH
+ ; --- Debug: show SVC #2E result ---
+ PUSH AF ; save flags from SVC #2E
+ PUSH AF
+ LD A,'2'
+ OUT (050H),A
+ LD A,'E'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ POP AF
+ PUSH AF
+ CALL DBG_HEX ; show A from SVC #2E
+ LD A,' '
+ OUT (050H),A
+ LD A,'C'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ POP AF
+ JR C,DBG_D3_CY1
+ LD A,'0'
+ JR DBG_D3_CY1D
+DBG_D3_CY1:
+ LD A,'1'
+DBG_D3_CY1D:
+ OUT (050H),A
+ CALL DBG_CRLF
+ POP AF ; restore flags from SVC #2E
+ ; --- JP C,L57B4 (error 0x2C on carry) ---
+ JP C,L57B4
+ ; --- BIT 1,A / JP Z,057B7H ---
+ PUSH AF
+ LD A,'B'
+ OUT (050H),A
+ LD A,'1'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ POP AF
+ BIT 1,A
+ PUSH AF
+ JR Z,DBG_D3_B0
+ LD A,'1'
+ JR DBG_D3_B1D
+DBG_D3_B0:
+ LD A,'0'
+DBG_D3_B1D:
+ OUT (050H),A
+ CALL DBG_CRLF
+ POP AF
+ JP Z,057B7H ; error 0xBB if bit1=0
+ ; --- CALL L58C2 (check ZLOG) ---
+ CALL L58C2
+ LD A,'C'
+ OUT (050H),A
+ LD A,'2'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD A,'K' ; OK
+ OUT (050H),A
+ CALL DBG_CRLF
+ ; --- CALL L593A (parse device name) ---
+ CALL L593A
+ ; --- Debug: show L593A result (channel in A) ---
+ PUSH AF
+ LD A,'3'
+ OUT (050H),A
+ LD A,'A'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ POP AF
+ PUSH AF
+ CALL DBG_HEX ; show channel
+ CALL DBG_CRLF
+ POP AF
+ ; --- LD B,A / XOR A / SVC #39 (A=0) ---
+ LD B,A
+ ;
+ ; Debug V1.1J: dump ZINP pointer and ZFLAG1 before SVC #39
+ PUSH BC
+ LD A,'I' ; "IP=" marker for ZINP
+ OUT (050H),A
+ LD A,'P'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ LD A,(ZINP+1) ; High byte of ZINP pointer
+ CALL DBG_HEX
+ LD A,(ZINP) ; Low byte of ZINP pointer
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ LD A,'F' ; "F1=" marker for ZFLAG1
+ OUT (050H),A
+ LD A,'1'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ LD A,(ZFLAG1)
+ CALL DBG_HEX
+ CALL DBG_CRLF
+ POP BC
+ ;
+ ; Debug V1.1K: dump first 4 bytes at RFSINP_DIR (runtime) and 0x2000
+ PUSH HL
+ PUSH BC
+ LD A,'R'
+ OUT (050H),A
+ LD A,'@'
+ OUT (050H),A
+ LD HL,RFSINP_DIR ; Point to RFSINP_DIR code in memory
+ LD B,004H
+DBG_RDMP: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ DBG_RDMP
+ CALL DBG_CRLF
+ ; Also dump first 4 bytes of DIR buffer at 0x2000
+ LD A,'B'
+ OUT (050H),A
+ LD A,'@'
+ OUT (050H),A
+ LD HL,L2000
+ LD B,004H
+DBG_BDMP: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ DBG_BDMP
+ CALL DBG_CRLF
+ POP BC
+ POP HL
+ ;
+ ; (V1.1L debug hook removed in V1.1Y — was calling RFSINP_DIR for
+ ; ALL devices, causing 20s delay + empty DIR for non-RFS devices)
+ ;
+ XOR A
+ LD A,'S'
+ OUT (050H),A
+ LD A,'9'
+ OUT (050H),A
+ LD A,'a'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ CALL DBG_CRLF
+ XOR A ; A=0 again (debug output clobbered it)
+ RST 018H
+ DB 039H
+ ; --- Debug: after SVC #39 --- dump 0x2000 again
+ PUSH AF
+ PUSH HL
+ PUSH BC
+ LD A,'B'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ LD HL,L2000
+ LD B,004H
+DBG_BDMP2: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ DBG_BDMP2
+ CALL DBG_CRLF
+ POP BC
+ POP HL
+ POP AF
+ ; --- original after-SVC debug ---
+ PUSH AF
+ LD A,'S'
+ OUT (050H),A
+ LD A,'9'
+ OUT (050H),A
+ LD A,'a'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ POP AF
+ PUSH AF
+ CALL DBG_HEX ; show A result
+ LD A,' '
+ OUT (050H),A
+ LD A,'C'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ POP AF
+ JR C,DBG_D3_CY2
+ LD A,'0'
+ JR DBG_D3_CY2D
+DBG_D3_CY2:
+ LD A,'1'
+DBG_D3_CY2D:
+ OUT (050H),A
+ CALL DBG_CRLF
+ ; --- LD A,B / SVC #3A (A=channel) ---
+ LD A,B
+ PUSH AF
+ LD A,'S'
+ OUT (050H),A
+ LD A,'A'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ POP AF
+ PUSH AF
+ CALL DBG_HEX ; show channel being sent
+ CALL DBG_CRLF
+ POP AF
+ RST 018H
+ DB 03AH
+ ; --- Debug: after SVC #3A ---
+ PUSH AF
+ LD A,'S'
+ OUT (050H),A
+ LD A,'A'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ POP AF
+ PUSH AF
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ LD A,'C'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ POP AF
+ JR C,DBG_D3_CY3
+ LD A,'0'
+ JR DBG_D3_CY3D
+DBG_D3_CY3:
+ LD A,'1'
+DBG_D3_CY3D:
+ OUT (050H),A
+ CALL DBG_CRLF
+ ; --- POP AF / SVC #39 (A=original from L5882) ---
+ POP AF
+ PUSH AF
+ PUSH AF
+ LD A,'S'
+ OUT (050H),A
+ LD A,'9'
+ OUT (050H),A
+ LD A,'b'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ POP AF
+ PUSH AF
+ CALL DBG_HEX ; show original A being sent
+ CALL DBG_CRLF
+ POP AF
+ RST 018H
+ DB 039H
+ ; --- Debug: after final SVC #39 ---
+ PUSH AF
+ LD A,'S'
+ OUT (050H),A
+ LD A,'9'
+ OUT (050H),A
+ LD A,'b'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ POP AF
+ PUSH AF
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ LD A,'C'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ POP AF
+ JR C,DBG_D3_CY4
+ LD A,'0'
+ JR DBG_D3_CY4D
+DBG_D3_CY4:
+ LD A,'1'
+DBG_D3_CY4D:
+ OUT (050H),A
+ CALL DBG_CRLF
+ ; --- Exit marker ---
+ LD A,'D'
+ OUT (050H),A
+ LD A,'3'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ LD A,'X'
+ OUT (050H),A
+ CALL DBG_CRLF
+ ; --- Clean up and return ---
+ POP AF ; balance the PUSH AF from after L5882
+ RET
+
+; ===========================================================================
+; Data area
+; ===========================================================================
+SDSTARTSEC: DS 4, 000H ; Current sector address for SD_READ (big-endian)
+DIRSECBUF: DB 0FFH ; Cached directory sector number (0xFF = none)
+FILE_STARTSEC:
+ DS 4, 000H ; Saved file start sector (absolute, big-endian)
+FILE_LOADADDR:
+ DW 00000H ; Current load address during LOAD transfer
+; ===========================================================================
+; DBG_L1C5B_WRAP — Wrapper around CALL L1C5B to dump ZFLAG1 before and after.
+; This reveals whether L1C5B modifies ZFLAG1 (specifically bit 5).
+; Output format: "F1:xx>xx\r\n" where xx=before, xx=after
+; ===========================================================================
+DBG_L1C5B_WRAP:
+ PUSH AF
+ PUSH HL
+ ; --- Print "F1:" ---
+ LD A,'F'
+ OUT (050H),A
+ LD A,'1'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ ; --- Dump ZFLAG1 before ---
+ LD A,(ZFLAG1)
+ CALL DBG_HEX
+ POP HL
+ POP AF
+ ; --- Call the real L1C5B ---
+ CALL L1C5B
+ ; --- Save return flags ---
+ PUSH AF
+ PUSH HL
+ ; --- Print ">" ---
+ LD A,'>'
+ OUT (050H),A
+ ; --- Dump ZFLAG1 after ---
+ LD A,(ZFLAG1)
+ CALL DBG_HEX
+ CALL DBG_CRLF
+ POP HL
+ POP AF
+ RET
+
+; ===========================================================================
+; DBG_FLAGS_TEST — Replaces the LD HL,ZFLAG1 / BIT 7 / BIT 5 sequence.
+; V1.1Q: Workaround for suspected Z80 emulator bug where AND immediate
+; does not correctly set the Z flag (0x5F AND 0x20 = 0x20 yet Z is set).
+; Instead of testing ZFLAG1 bit 5, check device name for "$RFS" and force
+; the ZINP path directly. This is safe because this code point is only
+; reached when A=0 (DIR enumeration) in SVC #39.
+; ===========================================================================
+DBG_FLAGS_TEST:
+ LD HL,ZFLAG1
+ ; --- Check bit 7 first (error condition, applies to all devices) ---
+ LD A,(HL)
+ AND 080H
+ JR Z,DBG_FT_NO7
+ POP DE ; discard CALL return address
+ JP 01F97H
+DBG_FT_NO7:
+ ; --- Check if this is the $RFS device by name ---
+ LD A,(ZDEVNM) ; first char of device name
+ CP 'R'
+ JR NZ,DBG_FT_NORFS
+ LD A,(ZDEVNM+1) ; second char
+ CP 'F'
+ JR NZ,DBG_FT_NORFS
+ ; --- This IS $RFS — force ZINP/DIR path ---
+ PUSH AF
+ LD A,'R'
+ OUT (050H),A
+ LD A,'!'
+ OUT (050H),A
+ CALL DBG_CRLF
+ POP AF
+ POP DE ; discard CALL return address
+ JP DBG_BIT5PATH
+DBG_FT_NORFS:
+ ; --- Not $RFS: fall through to ZRO path ---
+ ; HL = ZFLAG1 (correct for INC HL that follows the NOPs)
+ RET
+
+; ===========================================================================
+; DBG_BIT5PATH — Replacement for the SVC #39 bit-5 path at 0x2F38.
+; Instead of calling through L2FD1 → IOCALL, this calls RFSINP_DIR directly
+; to bypass the broken IOCALL dispatch. Also traces the path.
+; Original bit-5 path: XOR A / LD HL,L2000 / LD DE,800 / LD BC,10 / CALL L2FD1
+; L2FD1 does TWO ZINP calls:
+; 1st: L2FE8 → disk identity (H=0x28)
+; 2nd: L2FD4 → DIR fill (H=0x20)
+; We replicate both calls directly to RFSINP_DIR.
+; ===========================================================================
+DBG_BIT5PATH:
+ ; --- Marker ---
+ LD A,'B'
+ OUT (050H),A
+ LD A,'5'
+ OUT (050H),A
+ LD A,':'
+ OUT (050H),A
+ CALL DBG_CRLF
+ ;
+ ; --- 1st ZINP call: disk identity (H=0x28) ---
+ LD HL,02800H ; H=0x28 → DISKID path
+ LD A,(ZCH) ; Channel number
+ CALL RFSINP_DIR
+ ;
+ ; --- 2nd ZINP call: DIR fill (H=0x20) ---
+ LD HL,L2000 ; H=0x20 → DIR fill
+ LD A,(ZCH)
+ CALL RFSINP_DIR
+ ;
+ ; --- After both calls, check DIR buffer ---
+ PUSH HL
+ PUSH BC
+ LD A,'D'
+ OUT (050H),A
+ LD A,'R'
+ OUT (050H),A
+ LD A,'='
+ OUT (050H),A
+ LD HL,L2000
+ LD B,008H
+DBG_B5DMP: LD A,(HL)
+ CALL DBG_HEX
+ LD A,' '
+ OUT (050H),A
+ INC HL
+ DJNZ DBG_B5DMP
+ CALL DBG_CRLF
+ POP BC
+ POP HL
+ ;
+ ; --- Replicate original return logic ---
+ ; Original: LD A,(HL) / OR A / JP P,01F70H / RET
+ ; After L2FD1 returns, HL=0x2000 (restored by wrappers).
+ ; We set HL=0x2000 explicitly since we bypassed the wrappers.
+ LD HL,L2000
+ LD A,(HL)
+ OR A
+ JP P,01F70H
+ ;
+ ; Clear DIR_FILLED for next DIR call
+ XOR A
+ LD (DIR_FILLED),A
+ ;
+ ; Return — will go through SKPDE cleanup from SVC #39 handler
+ RET
+
+FILE_SIZE: DW 00000H ; Remaining bytes during LOAD transfer
+RFS_LD_A0: DB 000H ; V1.1Y: Entry A for RFSINP_LD (0=SVC #30, else SVC #33)
+DIR_BUFPTR: DW 00000H ; Current write position in DIR buffer
+FINDSD_NAME:DW 00000H ; Saved filename pointer for FINDSD
+SAVE_DIRENT:DB 000H ; Saved directory entry number for SAVE
+SAVE_PENDING:DB 000H ; 1 = SAVE in progress, trigger RFSWO on first RFSOUT call
+DIR_FILLED: DB 000H ; 1 = DIR buffer filled, next ZINP call is data transfer
+SAVE_SP: DW 00000H ; Saved BASIC stack pointer
+DIR_ENTRY_IDX: DB 000H ; Current SD directory entry index for RFSRO (0-255)
+SECTORBUF: DS 512, 000H ; SD card sector buffer (was EQU 0CE00H, moved here
+ ; to avoid overlap with BASIC stack at ~0xCFFF)
+ DS 128, 000H ; Temp stack (64 levels)
+TEMP_STACK_TOP: ; SP points here (grows downward)
+RFS_END EQU TEMP_STACK_TOP ; End of RFS code = new TEXTST
diff --git a/dis/MZ-5Z008/patch_rfs_mz5z008.py b/dis/MZ-5Z008/patch_rfs_mz5z008.py
new file mode 100644
index 0000000..b7df718
--- /dev/null
+++ b/dis/MZ-5Z008/patch_rfs_mz5z008.py
@@ -0,0 +1,652 @@
+#!/usr/bin/env python3
+"""
+patch_rfs_mz5z008.py - Patch MZ-5Z008 binary to add RFS (ROM Filing System) device support.
+
+Adds a $RFS device to the device chain, enabling:
+ DIR "RFS:" - List SD card directory (drive 0)
+ DIR "RFS2:" - List SD card directory (drive 1)
+ LOAD "RFS:" - Load from SD card
+ SAVE "RFS:" - Save to SD card
+
+The RFS device code is appended at 85FFH (end of binary).
+The $QD device's link pointer is patched to chain: $QD -> $RFS -> $USR.
+TEXTST and MEMCLI are moved past the RFS code.
+
+No DIR hook is needed — MZ-5Z008 uses SVC .DIR which calls FDIR in the monitor.
+FDIR calls ZRO in a loop to enumerate files for SEQ devices.
+
+Requires the picoZ80 RFS ROM at E800H (virtual hardware in the Z80 emulator).
+
+Usage:
+ python3 patch_rfs_mz5z008.py [input_binary] [output_binary]
+
+ input_binary: Original MZ-5Z008 binary (default: mz5z008.bin)
+ output_binary: Patched binary with RFS support (default: mz5z008_rfs.bin)
+"""
+
+import struct
+import sys
+import os
+
+# --- Constants ---
+BINARY_SIZE = 34303 # Expected MZ-5Z008 binary size (0x85FF bytes)
+RFS_BASE = 0x85FF # Append RFS code at end of binary
+QD_LINK = 0x38A2 # $QD device descriptor (link pointer at +0)
+USR_ADDR = 0x0D5E # $USR device descriptor address
+TEXTST_INIT = 0x4000 # "LD HL,85FFH" in BASIC init
+MEMCLI_INIT = 0x4020 # "RST 18H / DB 20H / EX DE,HL" in MEMCLI start
+VERSION_OFFSET = 0x8536 # Version letter in "V1.0A" string (ASCII)
+VERSION_LETTER = ord('B') # Change to 'B' for patched builds
+
+# MZ-5Z008 addresses
+ELMD = 0x1000
+ELMD1 = 0x1001
+IBUFE = 0x10F0
+ZCH = 0x1046
+SDDRIVENO = 0x1028
+CMTFILENO = 0x1029
+BREAKZ = 0x00E5
+HDRLEN = 24
+
+# RFS ROM API addresses
+UROMADDR = 0xE800
+RFSJMPTABLE = UROMADDR + 0xB0
+RFSF_RDINF = RFSJMPTABLE + 0x06 # E8B6
+RFSF_RDDATA = RFSJMPTABLE + 0x09 # E8B9
+RFSF_WRINF = RFSJMPTABLE + 0x0C # E8BC
+RFSF_WRDATA = RFSJMPTABLE + 0x0F # E8BF
+
+
+def le16(val):
+ """Encode 16-bit value as little-endian bytes."""
+ return bytes([val & 0xFF, (val >> 8) & 0xFF])
+
+
+def build_rfs_code():
+ """
+ Build the RFS device module as a byte array.
+ Returns (code_bytes, symbol_table) where symbol_table maps label names to addresses.
+
+ Memory banking: MZ-5Z008 BASIC runs with upper area (D000-FFFF) as DRAM
+ (via OUT E1H). The RFS ROM at E800H is hidden. Each ROM call must:
+ 1. Save SP (BASIC stack is likely in D000-FFFF range)
+ 2. Switch SP to temp stack in safe area (1000-CFFF)
+ 3. DI (prevent interrupts while banked)
+ 4. XOR A — clear A for bank select
+ 5. OUT (E3H),A — switch upper area to MMIO (exposes RFS ROM)
+ 6. CALL TRAIN_UPCNTR — read BNKCTRLRST 15 times to train the register
+ latch (emulation doesn't auto-train from instruction fetches like
+ real hardware does; upCntr must reach 15 before register writes work)
+ 7. LD (BNKSELUSER),A — select User ROM bank 0 (entry points at E8B0H+)
+ 8. CALL ROM function
+ 9. Save flags (carry = error indicator)
+ 10. OUT (E1H),A — switch upper area back to DRAM
+ 11. EI
+ 12. Restore flags and SP
+ """
+ code = bytearray()
+ symbols = {}
+ base = RFS_BASE
+
+ def addr():
+ return base + len(code)
+
+ def emit(*args):
+ for b in args:
+ if isinstance(b, (bytes, bytearray)):
+ code.extend(b)
+ elif isinstance(b, int):
+ code.append(b & 0xFF)
+ else:
+ raise ValueError(f"Unknown type: {type(b)}")
+
+ def emit16(val):
+ emit(le16(val))
+
+ # Port constants for memory banking
+ PORT_DRAM_UPPER = 0xE1 # OUT (E1H),A = upper area -> DRAM
+ PORT_MMIO_UPPER = 0xE3 # OUT (E3H),A = upper area -> Memory Mapped I/O
+ BNKSELUSER = 0xEFFE # Memory-mapped register: select User ROM bank (LD (0EFFEh),A)
+ BNKCTRLRST = 0xEFF8 # Bank control reset register (safe to read for upCntr training)
+
+ # =====================================================================
+ # $RFS Device Descriptor (29 bytes)
+ # =====================================================================
+ symbols['$RFS'] = addr()
+
+ # Reserve 29 bytes, fill after we know handler addresses
+ desc_offset = len(code)
+ code.extend(b'\x00' * 29)
+
+ # =====================================================================
+ # RFSFREE - Free space query (not supported, return carry)
+ # =====================================================================
+ symbols['RFSFREE'] = addr()
+ emit(0xAF) # XOR A
+ emit(0x37) # SCF
+ emit(0xC9) # RET
+
+ # =====================================================================
+ # RFSINIT - Initialize RFS device
+ # =====================================================================
+ symbols['RFSINIT'] = addr()
+ emit(0x3A, *le16(ZCH)) # LD A,(ZCH)
+ emit(0xC6, 0x30) # ADD A,30H ; '0'
+ emit(0x32, *le16(SDDRIVENO)) # LD (SDDRIVENO),A
+ emit(0xAF) # XOR A
+ emit(0x32, *le16(CMTFILENO)) # LD (CMTFILENO),A
+ # Clear first-call flag
+ rfsinit_first_patch = len(code)
+ emit(0x32, 0x00, 0x00) # LD (RFS_FIRST),A [patched below]
+ emit(0xC9) # RET
+
+ # =====================================================================
+ # RFSSTRT - Start/Open device (ZCL/ZSTRT with A=0 means start)
+ # =====================================================================
+ symbols['RFSSTRT'] = addr()
+ emit(0xB7) # OR A
+ emit(0xC0) # RET NZ ; A!=0 = close, just return
+ emit(0x3A, *le16(ZCH)) # LD A,(ZCH)
+ emit(0xC6, 0x30) # ADD A,30H
+ emit(0x32, *le16(SDDRIVENO)) # LD (SDDRIVENO),A
+ emit(0xAF) # XOR A
+ emit(0x32, *le16(CMTFILENO)) # LD (CMTFILENO),A
+ emit(0xC9) # RET
+
+ # =====================================================================
+ # CALL_ROM - Helper to call RFS ROM with memory banking
+ #
+ # The RFS ROM is at E800H, hidden behind DRAM when BASIC runs.
+ # This helper banks in MMIO, calls the ROM, banks back to DRAM.
+ # BASIC's stack is likely in D000-FFFF, so we use a temp stack
+ # in the safe 1000-CFFF region.
+ #
+ # Entry: Call address embedded as CALL instruction (4 wrappers below)
+ # DE, other regs set up for the ROM function
+ # Exit: Carry flag preserved from ROM call
+ # All other regs preserved
+ # =====================================================================
+ # We implement 4 specific wrappers instead of a generic helper,
+ # to avoid needing indirect call machinery.
+
+ # --- CALL_RDINF wrapper ---
+ symbols['CALL_RDINF'] = addr()
+ call_rdinf_save_sp = len(code)
+ emit(0xED, 0x73, 0x00, 0x00) # LD (SAVE_SP),SP [patched below]
+ call_rdinf_set_sp = len(code)
+ emit(0x31, 0x00, 0x00) # LD SP,TEMP_STACK_TOP [patched below]
+ emit(0xF3) # DI
+ emit(0xAF) # XOR A ; A = 0
+ emit(0xD3, PORT_MMIO_UPPER) # OUT (E3H),A ; upper -> MMIO
+ call_rdinf_train = len(code)
+ emit(0xCD, 0x00, 0x00) # CALL TRAIN_UPCNTR ; train register latch [patched below]
+ emit(0x32, *le16(BNKSELUSER)) # LD (BNKSELUSER),A ; select User ROM bank 0
+ emit(0xCD, *le16(RFSF_RDINF)) # CALL RFSF_RDINF
+ emit(0xF5) # PUSH AF ; save flags (on temp stack)
+ emit(0xD3, PORT_DRAM_UPPER) # OUT (E1H),A ; upper -> DRAM
+ emit(0xFB) # EI
+ emit(0xF1) # POP AF ; restore flags
+ call_rdinf_rest_sp = len(code)
+ emit(0xED, 0x7B, 0x00, 0x00) # LD SP,(SAVE_SP) [patched below]
+ emit(0xC9) # RET
+
+ # --- CALL_RDDATA wrapper ---
+ symbols['CALL_RDDATA'] = addr()
+ call_rddata_save_sp = len(code)
+ emit(0xED, 0x73, 0x00, 0x00) # LD (SAVE_SP),SP
+ call_rddata_set_sp = len(code)
+ emit(0x31, 0x00, 0x00) # LD SP,TEMP_STACK_TOP
+ emit(0xF3) # DI
+ emit(0xAF) # XOR A ; A = 0
+ emit(0xD3, PORT_MMIO_UPPER) # OUT (E3H),A
+ call_rddata_train = len(code)
+ emit(0xCD, 0x00, 0x00) # CALL TRAIN_UPCNTR [patched below]
+ emit(0x32, *le16(BNKSELUSER)) # LD (BNKSELUSER),A ; select User ROM bank 0
+ emit(0xCD, *le16(RFSF_RDDATA))# CALL RFSF_RDDATA
+ emit(0xF5) # PUSH AF
+ emit(0xD3, PORT_DRAM_UPPER) # OUT (E1H),A
+ emit(0xFB) # EI
+ emit(0xF1) # POP AF
+ call_rddata_rest_sp = len(code)
+ emit(0xED, 0x7B, 0x00, 0x00) # LD SP,(SAVE_SP)
+ emit(0xC9) # RET
+
+ # --- CALL_WRINF wrapper ---
+ symbols['CALL_WRINF'] = addr()
+ call_wrinf_save_sp = len(code)
+ emit(0xED, 0x73, 0x00, 0x00) # LD (SAVE_SP),SP
+ call_wrinf_set_sp = len(code)
+ emit(0x31, 0x00, 0x00) # LD SP,TEMP_STACK_TOP
+ emit(0xF3) # DI
+ emit(0xAF) # XOR A ; A = 0
+ emit(0xD3, PORT_MMIO_UPPER) # OUT (E3H),A
+ call_wrinf_train = len(code)
+ emit(0xCD, 0x00, 0x00) # CALL TRAIN_UPCNTR [patched below]
+ emit(0x32, *le16(BNKSELUSER)) # LD (BNKSELUSER),A ; select User ROM bank 0
+ emit(0xCD, *le16(RFSF_WRINF)) # CALL RFSF_WRINF
+ emit(0xF5) # PUSH AF
+ emit(0xD3, PORT_DRAM_UPPER) # OUT (E1H),A
+ emit(0xFB) # EI
+ emit(0xF1) # POP AF
+ call_wrinf_rest_sp = len(code)
+ emit(0xED, 0x7B, 0x00, 0x00) # LD SP,(SAVE_SP)
+ emit(0xC9) # RET
+
+ # --- CALL_WRDATA wrapper ---
+ symbols['CALL_WRDATA'] = addr()
+ call_wrdata_save_sp = len(code)
+ emit(0xED, 0x73, 0x00, 0x00) # LD (SAVE_SP),SP
+ call_wrdata_set_sp = len(code)
+ emit(0x31, 0x00, 0x00) # LD SP,TEMP_STACK_TOP
+ emit(0xF3) # DI
+ emit(0xAF) # XOR A ; A = 0
+ emit(0xD3, PORT_MMIO_UPPER) # OUT (E3H),A
+ call_wrdata_train = len(code)
+ emit(0xCD, 0x00, 0x00) # CALL TRAIN_UPCNTR [patched below]
+ emit(0x32, *le16(BNKSELUSER)) # LD (BNKSELUSER),A ; select User ROM bank 0
+ emit(0xCD, *le16(RFSF_WRDATA))# CALL RFSF_WRDATA
+ emit(0xF5) # PUSH AF
+ emit(0xD3, PORT_DRAM_UPPER) # OUT (E1H),A
+ emit(0xFB) # EI
+ emit(0xF1) # POP AF
+ call_wrdata_rest_sp = len(code)
+ emit(0xED, 0x7B, 0x00, 0x00) # LD SP,(SAVE_SP)
+ emit(0xC9) # RET
+
+ # =====================================================================
+ # RFSRO - Read Open (read next file header from SD for DIR enumeration)
+ #
+ # Called by FDIR in a loop. Each call reads the next file header.
+ # On first call after RFSINIT, resets the file counter.
+ # Returns: NC = success (caller's buffer filled), CY = no more files
+ #
+ # The sequential directory scanner (L1BFD) passes HL = 11A4H (KEYBUF)
+ # and expects ZRO to write the directory entry there. After ZRO
+ # returns, L1C39 copies 11A4H → ELMD (1000H). We must NOT write to
+ # ELMD here — that would clobber the search filename at 1001H.
+ # =====================================================================
+ KEYBUF = 0x11A4
+
+ symbols['RFSRO'] = addr()
+ emit(0xE5) # PUSH HL
+ emit(0xD5) # PUSH DE
+ emit(0xC5) # PUSH BC
+ # Check first-call flag
+ rfsro_first_load = len(code)
+ emit(0x3A, 0x00, 0x00) # LD A,(RFS_FIRST) [patched below]
+ emit(0xB7) # OR A
+ rfsro_jrnz = len(code)
+ emit(0x20, 0x00) # JR NZ,RFSRO1 [patched below]
+ # First call: setup drive, reset file counter
+ emit(0x3A, *le16(ZCH)) # LD A,(ZCH)
+ emit(0xC6, 0x30) # ADD A,30H
+ emit(0x32, *le16(SDDRIVENO)) # LD (SDDRIVENO),A
+ emit(0xAF) # XOR A
+ emit(0x32, *le16(CMTFILENO)) # LD (CMTFILENO),A
+ emit(0x3C) # INC A ; A = 1
+ rfsro_first_store = len(code)
+ emit(0x32, 0x00, 0x00) # LD (RFS_FIRST),A [patched below]
+
+ symbols['RFSRO1'] = addr()
+ # Patch the JR NZ offset
+ code[rfsro_jrnz + 1] = (addr() - (base + rfsro_jrnz + 2)) & 0xFF
+
+ # Call RFS ROM (with banking) to get next file
+ rfscr_load = len(code)
+ emit(0x11, 0x00, 0x00) # LD DE,RFSCR [patched below]
+ emit(0xCD, *le16(0x0000)) # CALL CALL_RDINF [patched below]
+ rfsro_call_rdinf = len(code) - 2 # offset of address in CALL
+ rfsro_jrc = len(code)
+ emit(0x38, 0x00) # JR C,RFSROERR [patched below]
+ # Copy IBUFE -> KEYBUF (L1BFD's read buffer at 11A4H)
+ emit(0x21, *le16(IBUFE)) # LD HL,IBUFE
+ emit(0x11, *le16(KEYBUF)) # LD DE,11A4H ; scanner's buffer
+ emit(0x01, *le16(HDRLEN)) # LD BC,HDRLEN
+ emit(0xED, 0xB0) # LDIR
+ emit(0xC1) # POP BC
+ emit(0xD1) # POP DE
+ emit(0xE1) # POP HL
+ emit(0xAF) # XOR A ; NC = success
+ emit(0xC9) # RET
+
+ symbols['RFSROERR'] = addr()
+ code[rfsro_jrc + 1] = (addr() - (base + rfsro_jrc + 2)) & 0xFF
+ emit(0xC1) # POP BC
+ emit(0xD1) # POP DE
+ emit(0xE1) # POP HL
+ emit(0x37) # SCF ; CY = no more files
+ emit(0xC9) # RET
+
+ # =====================================================================
+ # RFSWO - Write Open (write file header to SD)
+ # =====================================================================
+ symbols['RFSWO'] = addr()
+ emit(0xE5) # PUSH HL
+ emit(0xD5) # PUSH DE
+ emit(0xC5) # PUSH BC
+ # Copy ELMD -> IBUFE
+ emit(0x21, *le16(ELMD)) # LD HL,ELMD
+ emit(0x11, *le16(IBUFE)) # LD DE,IBUFE
+ emit(0x01, *le16(HDRLEN)) # LD BC,HDRLEN
+ emit(0xED, 0xB0) # LDIR
+ # Set drive number
+ emit(0x3A, *le16(ZCH)) # LD A,(ZCH)
+ emit(0xC6, 0x30) # ADD A,30H
+ emit(0x32, *le16(SDDRIVENO)) # LD (SDDRIVENO),A
+ # Call RFS ROM (with banking)
+ emit(0x11, *le16(IBUFE + 1)) # LD DE,IBUFE+1 (NAME field)
+ emit(0xCD, *le16(0x0000)) # CALL CALL_WRINF [patched below]
+ rfswo_call_wrinf = len(code) - 2
+ emit(0xC1) # POP BC
+ emit(0xD1) # POP DE
+ emit(0xE1) # POP HL
+ emit(0xC9) # RET
+
+ # =====================================================================
+ # RFSINP - Input (read file data from SD)
+ # =====================================================================
+ symbols['RFSINP'] = addr()
+ emit(0xE5) # PUSH HL
+ emit(0xD5) # PUSH DE
+ emit(0xC5) # PUSH BC
+ # Copy ELMD -> IBUFE (ROM needs DTADR/SIZE)
+ emit(0x21, *le16(ELMD)) # LD HL,ELMD
+ emit(0x11, *le16(IBUFE)) # LD DE,IBUFE
+ emit(0x01, *le16(HDRLEN)) # LD BC,HDRLEN
+ emit(0xED, 0xB0) # LDIR
+ emit(0xCD, *le16(0x0000)) # CALL CALL_RDDATA [patched below]
+ rfsinp_call_rddata = len(code) - 2
+ emit(0xC1) # POP BC
+ emit(0xD1) # POP DE
+ emit(0xE1) # POP HL
+ emit(0xC9) # RET
+
+ # =====================================================================
+ # RFSOUT - Output (write file data to SD)
+ # =====================================================================
+ symbols['RFSOUT'] = addr()
+ emit(0xE5) # PUSH HL
+ emit(0xD5) # PUSH DE
+ emit(0xC5) # PUSH BC
+ # Copy ELMD -> IBUFE
+ emit(0x21, *le16(ELMD)) # LD HL,ELMD
+ emit(0x11, *le16(IBUFE)) # LD DE,IBUFE
+ emit(0x01, *le16(HDRLEN)) # LD BC,HDRLEN
+ emit(0xED, 0xB0) # LDIR
+ emit(0xCD, *le16(0x0000)) # CALL CALL_WRDATA [patched below]
+ rfsout_call_wrdata = len(code) - 2
+ emit(0xC1) # POP BC
+ emit(0xD1) # POP DE
+ emit(0xE1) # POP HL
+ emit(0xC9) # RET
+
+ # =====================================================================
+ # TRAIN_UPCNTR - Train the RFS register latch (upCntr) to 15
+ #
+ # On real hardware, any bus cycle to E800-EFFF increments the upCntr
+ # latch via the hardware address decoder. After 15 accesses the
+ # control registers (EFF8-EFFF) become writable.
+ #
+ # In picoZ80 emulation, only explicit reads/writes to the register
+ # addresses (EFF8-EFFF) increment upCntr. Normal opcode fetches
+ # from E800+ do NOT train the counter. This subroutine explicitly
+ # reads BNKCTRLRST 15 times to force-train the latch.
+ #
+ # Entry: MMIO must be mapped (OUT E3H done)
+ # Exit: A = 0 (ready for LD (BNKSELUSER),A)
+ # HL, B modified (scratch at this point in wrappers)
+ # =====================================================================
+ symbols['TRAIN_UPCNTR'] = addr()
+ emit(0x21, *le16(BNKCTRLRST)) # LD HL,EFF8H ; BNKCTRLRST address
+ emit(0x06, 15) # LD B,15 ; 15 reads to train
+ train_loop = len(code)
+ emit(0x7E) # LD A,(HL) ; read triggers handler, upCntr++
+ emit(0x10) # DJNZ
+ emit((train_loop - len(code) - 1) & 0xFF) # displacement from PC after DJNZ
+ emit(0xAF) # XOR A ; A = 0 for bank select
+ emit(0xC9) # RET
+
+ # =====================================================================
+ # Data area
+ # =====================================================================
+ symbols['RFSCR'] = addr()
+ emit(0x0D) # DB 0DH ; CR = empty filename (next file)
+
+ symbols['RFS_FIRST'] = addr()
+ emit(0x00) # DB 00H ; First-call flag for ZRO
+
+ symbols['SAVE_SP'] = addr()
+ emit(0x00, 0x00) # DW 0000H ; Saved SP during ROM calls
+
+ # Temp stack: 32 bytes (16 levels) for ROM calls while upper area is MMIO
+ symbols['TEMP_STACK_BASE'] = addr()
+ code.extend(b'\x00' * 32)
+ symbols['TEMP_STACK_TOP'] = addr() # SP points here (grows downward)
+
+ # =====================================================================
+ # Patch all forward references
+ # =====================================================================
+ rfs_first_addr = symbols['RFS_FIRST']
+ save_sp_addr = symbols['SAVE_SP']
+ temp_stack_top = symbols['TEMP_STACK_TOP']
+
+ # RFSINIT: LD (RFS_FIRST),A
+ struct.pack_into(' LD HL,new_textst
+
+ Returns the patched binary.
+ """
+ if len(binary_data) != BINARY_SIZE:
+ raise ValueError(
+ f"Binary must be exactly {BINARY_SIZE} bytes, got {len(binary_data)}"
+ )
+
+ data = bytearray(binary_data)
+ new_textst = RFS_BASE + len(rfs_code)
+
+ # Verify $QD link pointer is currently 0D5EH ($USR)
+ qd_link = struct.unpack_from(' $RFS
+ struct.pack_into(' {RFS_BASE:04X}H")
+
+ # Patch 3: Update TEXTST init: LD HL,85FFH -> LD HL,new_textst
+ data[TEXTST_INIT + 1] = new_textst & 0xFF
+ data[TEXTST_INIT + 2] = (new_textst >> 8) & 0xFF
+ print(f" Patched TEXTST init at {TEXTST_INIT:04X}H: 85FFH -> {new_textst:04X}H")
+
+ # Patch 4: Update MEMCLI start: RST 18H/DB 20H/EX DE,HL -> LD HL,new_textst
+ # RST 18H (DF) + DB 20H + EX DE,HL (EB) = 3 bytes -> LD HL,nn (21 lo hi) = 3 bytes
+ data[MEMCLI_INIT] = 0x21
+ data[MEMCLI_INIT + 1] = new_textst & 0xFF
+ data[MEMCLI_INIT + 2] = (new_textst >> 8) & 0xFF
+ print(f" Patched MEMCLI start at {MEMCLI_INIT:04X}H: DF 20 EB -> 21 {new_textst & 0xFF:02X} {(new_textst >> 8) & 0xFF:02X}")
+
+ # Patch 5: Bump version letter in "V1.0A" string
+ old_ver = chr(data[VERSION_OFFSET])
+ data[VERSION_OFFSET] = VERSION_LETTER
+ print(f" Patched version at {VERSION_OFFSET:04X}H: '{old_ver}' -> '{chr(VERSION_LETTER)}'")
+
+ print(f" Device chain: $QD -> $RFS ({RFS_BASE:04X}H) -> $USR ({USR_ADDR:04X}H) -> NULL")
+ print(f" BASIC program text area: {new_textst:04X}H-FEFFH "
+ f"({0xFEFF - new_textst} bytes, was {0xFEFF - 0x85FF} bytes, "
+ f"reduced by {len(rfs_code)} bytes)")
+
+ return bytes(data)
+
+
+def main():
+ input_bin = sys.argv[1] if len(sys.argv) > 1 else 'mz5z008.bin'
+ output_bin = sys.argv[2] if len(sys.argv) > 2 else None
+
+ if output_bin is None:
+ stem = os.path.splitext(input_bin)[0]
+ output_bin = stem + '_rfs.bin'
+
+ # Build RFS code
+ rfs_code, symbols = build_rfs_code()
+ new_textst = RFS_BASE + len(rfs_code)
+ print(f"RFS device module: {len(rfs_code)} bytes at {RFS_BASE:04X}H-{RFS_BASE + len(rfs_code) - 1:04X}H")
+ print(f" New TEXTST: {new_textst:04X}H (was 85FFH, {len(rfs_code)} bytes less for BASIC programs)")
+ print()
+
+ # Print symbol table
+ print("Symbol table:")
+ for name, addr in sorted(symbols.items(), key=lambda x: x[1]):
+ print(f" {name:12s} = {addr:04X}H")
+ print()
+
+ # Read original binary
+ with open(input_bin, 'rb') as f:
+ binary_data = f.read()
+
+ if len(binary_data) != BINARY_SIZE:
+ print(f"ERROR: Binary must be exactly {BINARY_SIZE} bytes, got {len(binary_data)}")
+ sys.exit(1)
+
+ # Apply patches
+ print("Patching binary:")
+ patched = patch_binary(binary_data, rfs_code, symbols)
+
+ # Write output
+ with open(output_bin, 'wb') as f:
+ f.write(patched)
+ print(f"\nWrote {len(patched)} bytes to {output_bin}")
+
+ # Verify the patch
+ print("\nVerification:")
+ # Check $QD link
+ qd_link = struct.unpack_from(' link={link:04X}H")
+ if link == RFS_BASE:
+ rfs_off = RFS_BASE
+ rfs_link = struct.unpack_from(' link={rfs_link:04X}H")
+ if rfs_link == USR_ADDR:
+ usr_link = struct.unpack_from(' link={usr_link:04X}H (NULL=end)")
+
+ return output_bin
+
+
+if __name__ == '__main__':
+ result = main()
diff --git a/dis/MZ-5Z008/patch_rfs_mz5z009.py b/dis/MZ-5Z008/patch_rfs_mz5z009.py
new file mode 100644
index 0000000..8474297
--- /dev/null
+++ b/dis/MZ-5Z008/patch_rfs_mz5z009.py
@@ -0,0 +1,445 @@
+#!/usr/bin/env python3
+"""
+patch_rfs_mz5z009.py - Patch MZ-5Z009 binary to add RFS (ROM Filing System) device support.
+
+Adds a $RFS device to the device chain, enabling:
+ DIR "RFS:" - List SD card directory (drive 0)
+ DIR "RFS2:" - List SD card directory (drive 1)
+ LOAD "RFS:" - Load from SD card
+ SAVE "RFS:" - Save to SD card
+
+The RFS device code is appended at NEWAD0 (A471H), the current end of the binary.
+The $QD device's link pointer is patched to chain: $QD → $RFS → $USR.
+TEXTST and MEMCLI are moved past the RFS code.
+
+Unlike MZ-2Z009E, no DIR hook is needed — MZ-5Z009 uses the standard SVC .DIR
+mechanism which calls FDIR in the monitor. FDIR calls ZRO in a loop to enumerate
+files for SEQ devices, so the RFS device's ZRO handler is called automatically.
+
+Requires the picoZ80 RFS ROM at E800H (virtual hardware in the Z80 emulator).
+
+Usage:
+ python3 patch_rfs_mz5z009.py [input_binary] [output_binary]
+
+ input_binary: Original MZ-5Z009 binary (default: mz5z009.bin)
+ output_binary: Patched binary with RFS support (default: mz5z009_rfs.bin)
+"""
+
+import struct
+import sys
+import os
+
+# --- Constants ---
+BINARY_SIZE = 42097 # Expected MZ-5Z009 binary size (0xA471 bytes)
+RFS_BASE = 0xA471 # Append RFS code at end of binary (= NEWAD0)
+QD_LINK = 0x2FD0 # $QD device descriptor link pointer
+USR_ADDR = 0x0F7F # $USR device descriptor address
+TEXTST_INIT = 0x5805 # "LD HL,A471H" in BASIC init
+MEMCLI_INIT = 0x5837 # "LD HL,A471H" for MEMCLI clearing
+
+# MZ-5Z009 addresses
+ELMD = 0x1000
+ELMD1 = 0x1001
+IBUFE = 0x10F0
+ZCH = 0x1046
+SDDRIVENO = 0x1028
+CMTFILENO = 0x1029
+BREAKZ = 0x00E8
+HDRLEN = 24
+
+# RFS ROM API addresses
+UROMADDR = 0xE800
+RFSJMPTABLE = UROMADDR + 0xB0
+RFSF_RDINF = RFSJMPTABLE + 0x06 # E8B6
+RFSF_RDDATA = RFSJMPTABLE + 0x09 # E8B9
+RFSF_WRINF = RFSJMPTABLE + 0x0C # E8BC
+RFSF_WRDATA = RFSJMPTABLE + 0x0F # E8BF
+
+
+def le16(val):
+ """Encode 16-bit value as little-endian bytes."""
+ return bytes([val & 0xFF, (val >> 8) & 0xFF])
+
+
+def build_rfs_code():
+ """
+ Build the RFS device module as a byte array.
+ Returns (code_bytes, symbol_table) where symbol_table maps label names to addresses.
+ """
+ code = bytearray()
+ symbols = {}
+ base = RFS_BASE
+
+ def addr():
+ return base + len(code)
+
+ def emit(*args):
+ for b in args:
+ if isinstance(b, (bytes, bytearray)):
+ code.extend(b)
+ elif isinstance(b, int):
+ code.append(b & 0xFF)
+ else:
+ raise ValueError(f"Unknown type: {type(b)}")
+
+ def emit16(val):
+ emit(le16(val))
+
+ # =====================================================================
+ # $RFS Device Descriptor (29 bytes)
+ # =====================================================================
+ symbols['$RFS'] = addr()
+
+ # Reserve 29 bytes, fill after we know handler addresses
+ desc_offset = len(code)
+ code.extend(b'\x00' * 29)
+
+ # =====================================================================
+ # RFSFREE - Free space query (not supported, return carry)
+ # =====================================================================
+ symbols['RFSFREE'] = addr()
+ emit(0xAF) # XOR A
+ emit(0x37) # SCF
+ emit(0xC9) # RET
+
+ # =====================================================================
+ # RFSINIT - Initialize RFS device
+ # =====================================================================
+ symbols['RFSINIT'] = addr()
+ emit(0x3A, *le16(ZCH)) # LD A,(ZCH)
+ emit(0xC6, 0x30) # ADD A,30H ; '0'
+ emit(0x32, *le16(SDDRIVENO)) # LD (SDDRIVENO),A
+ emit(0xAF) # XOR A
+ emit(0x32, *le16(CMTFILENO)) # LD (CMTFILENO),A
+ # Clear first-call flag
+ rfsinit_first_patch = len(code)
+ emit(0x32, 0x00, 0x00) # LD (RFS_FIRST),A [patched below]
+ emit(0xC9) # RET
+
+ # =====================================================================
+ # RFSSTRT - Start/Open device (ZCL/ZSTRT with A=0 means start)
+ # =====================================================================
+ symbols['RFSSTRT'] = addr()
+ emit(0xB7) # OR A
+ emit(0xC0) # RET NZ ; A!=0 = close, just return
+ emit(0x3A, *le16(ZCH)) # LD A,(ZCH)
+ emit(0xC6, 0x30) # ADD A,30H
+ emit(0x32, *le16(SDDRIVENO)) # LD (SDDRIVENO),A
+ emit(0xAF) # XOR A
+ emit(0x32, *le16(CMTFILENO)) # LD (CMTFILENO),A
+ emit(0xC9) # RET
+
+ # =====================================================================
+ # RFSRO - Read Open (read next file header from SD for DIR enumeration)
+ #
+ # Called by FDIR in a loop. Each call reads the next file header.
+ # On first call after RFSINIT, resets the file counter.
+ # Returns: NC = success (ELMD filled), CY = no more files
+ # =====================================================================
+ symbols['RFSRO'] = addr()
+ emit(0xE5) # PUSH HL
+ emit(0xD5) # PUSH DE
+ emit(0xC5) # PUSH BC
+ # Check first-call flag
+ rfsro_first_load = len(code)
+ emit(0x3A, 0x00, 0x00) # LD A,(RFS_FIRST) [patched below]
+ emit(0xB7) # OR A
+ rfsro_jrnz = len(code)
+ emit(0x20, 0x00) # JR NZ,RFSRO1 [patched below]
+ # First call: setup drive, reset file counter
+ emit(0x3A, *le16(ZCH)) # LD A,(ZCH)
+ emit(0xC6, 0x30) # ADD A,30H
+ emit(0x32, *le16(SDDRIVENO)) # LD (SDDRIVENO),A
+ emit(0xAF) # XOR A
+ emit(0x32, *le16(CMTFILENO)) # LD (CMTFILENO),A
+ emit(0x3C) # INC A ; A = 1
+ rfsro_first_store = len(code)
+ emit(0x32, 0x00, 0x00) # LD (RFS_FIRST),A [patched below]
+
+ symbols['RFSRO1'] = addr()
+ # Patch the JR NZ offset
+ code[rfsro_jrnz + 1] = (addr() - (base + rfsro_jrnz + 2)) & 0xFF
+
+ # Call RFS ROM with empty filename (CR byte) to get next file
+ rfscr_load = len(code)
+ emit(0x11, 0x00, 0x00) # LD DE,RFSCR [patched below]
+ emit(0xCD, *le16(RFSF_RDINF)) # CALL RFSF_RDINF
+ rfsro_jrc = len(code)
+ emit(0x38, 0x00) # JR C,RFSROERR [patched below]
+ # Copy IBUFE -> ELMD (header data)
+ emit(0x21, *le16(IBUFE)) # LD HL,IBUFE
+ emit(0x11, *le16(ELMD)) # LD DE,ELMD
+ emit(0x01, *le16(HDRLEN)) # LD BC,HDRLEN
+ emit(0xED, 0xB0) # LDIR
+ emit(0xC1) # POP BC
+ emit(0xD1) # POP DE
+ emit(0xE1) # POP HL
+ emit(0xAF) # XOR A ; NC = success
+ emit(0xC9) # RET
+
+ symbols['RFSROERR'] = addr()
+ code[rfsro_jrc + 1] = (addr() - (base + rfsro_jrc + 2)) & 0xFF
+ emit(0xC1) # POP BC
+ emit(0xD1) # POP DE
+ emit(0xE1) # POP HL
+ emit(0x37) # SCF ; CY = no more files
+ emit(0xC9) # RET
+
+ # =====================================================================
+ # RFSWO - Write Open (write file header to SD)
+ # =====================================================================
+ symbols['RFSWO'] = addr()
+ emit(0xE5) # PUSH HL
+ emit(0xD5) # PUSH DE
+ emit(0xC5) # PUSH BC
+ # Copy ELMD -> IBUFE
+ emit(0x21, *le16(ELMD)) # LD HL,ELMD
+ emit(0x11, *le16(IBUFE)) # LD DE,IBUFE
+ emit(0x01, *le16(HDRLEN)) # LD BC,HDRLEN
+ emit(0xED, 0xB0) # LDIR
+ # Set drive number
+ emit(0x3A, *le16(ZCH)) # LD A,(ZCH)
+ emit(0xC6, 0x30) # ADD A,30H
+ emit(0x32, *le16(SDDRIVENO)) # LD (SDDRIVENO),A
+ # Call RFS ROM
+ emit(0x11, *le16(IBUFE + 1)) # LD DE,IBUFE+1 (NAME field)
+ emit(0xCD, *le16(RFSF_WRINF)) # CALL RFSF_WRINF
+ emit(0xC1) # POP BC
+ emit(0xD1) # POP DE
+ emit(0xE1) # POP HL
+ emit(0xC9) # RET
+
+ # =====================================================================
+ # RFSINP - Input (read file data from SD)
+ # =====================================================================
+ symbols['RFSINP'] = addr()
+ emit(0xE5) # PUSH HL
+ emit(0xD5) # PUSH DE
+ emit(0xC5) # PUSH BC
+ # Copy ELMD -> IBUFE (ROM needs DTADR/SIZE)
+ emit(0x21, *le16(ELMD)) # LD HL,ELMD
+ emit(0x11, *le16(IBUFE)) # LD DE,IBUFE
+ emit(0x01, *le16(HDRLEN)) # LD BC,HDRLEN
+ emit(0xED, 0xB0) # LDIR
+ emit(0xCD, *le16(RFSF_RDDATA)) # CALL RFSF_RDDATA
+ emit(0xC1) # POP BC
+ emit(0xD1) # POP DE
+ emit(0xE1) # POP HL
+ emit(0xC9) # RET
+
+ # =====================================================================
+ # RFSOUT - Output (write file data to SD)
+ # =====================================================================
+ symbols['RFSOUT'] = addr()
+ emit(0xE5) # PUSH HL
+ emit(0xD5) # PUSH DE
+ emit(0xC5) # PUSH BC
+ # Copy ELMD -> IBUFE
+ emit(0x21, *le16(ELMD)) # LD HL,ELMD
+ emit(0x11, *le16(IBUFE)) # LD DE,IBUFE
+ emit(0x01, *le16(HDRLEN)) # LD BC,HDRLEN
+ emit(0xED, 0xB0) # LDIR
+ emit(0xCD, *le16(RFSF_WRDATA)) # CALL RFSF_WRDATA
+ emit(0xC1) # POP BC
+ emit(0xD1) # POP DE
+ emit(0xE1) # POP HL
+ emit(0xC9) # RET
+
+ # =====================================================================
+ # Data area
+ # =====================================================================
+ symbols['RFSCR'] = addr()
+ emit(0x0D) # DB 0DH ; CR = empty filename (next file)
+
+ symbols['RFS_FIRST'] = addr()
+ emit(0x00) # DB 00H ; First-call flag for ZRO
+
+ # =====================================================================
+ # Patch all forward references
+ # =====================================================================
+ rfs_first_addr = symbols['RFS_FIRST']
+
+ # RFSINIT: LD (RFS_FIRST),A
+ struct.pack_into(' $RFS
+ struct.pack_into(' {RFS_BASE:04X}H")
+
+ # Patch 3: Update TEXTST init
+ data[TEXTST_INIT + 1] = new_textst & 0xFF
+ data[TEXTST_INIT + 2] = (new_textst >> 8) & 0xFF
+ print(f" Patched TEXTST init at {TEXTST_INIT:04X}H: A471H -> {new_textst:04X}H")
+
+ # Patch 4: Update MEMCLI start
+ data[MEMCLI_INIT + 1] = new_textst & 0xFF
+ data[MEMCLI_INIT + 2] = (new_textst >> 8) & 0xFF
+ print(f" Patched MEMCLI start at {MEMCLI_INIT:04X}H: A471H -> {new_textst:04X}H")
+
+ print(f" Device chain: $QD -> $RFS ({RFS_BASE:04X}H) -> $USR ({USR_ADDR:04X}H) -> NULL")
+ print(f" BASIC program text area: {new_textst:04X}H-FEFFH "
+ f"({0xFEFF - new_textst} bytes, was {0xFEFF - 0xA471} bytes, "
+ f"reduced by {len(rfs_code)} bytes)")
+
+ return bytes(data)
+
+
+def main():
+ input_bin = sys.argv[1] if len(sys.argv) > 1 else 'mz5z009.bin'
+ output_bin = sys.argv[2] if len(sys.argv) > 2 else None
+
+ if output_bin is None:
+ stem = os.path.splitext(input_bin)[0]
+ output_bin = stem + '_rfs.bin'
+
+ # Build RFS code
+ rfs_code, symbols = build_rfs_code()
+ new_textst = RFS_BASE + len(rfs_code)
+ print(f"RFS device module: {len(rfs_code)} bytes at {RFS_BASE:04X}H-{RFS_BASE + len(rfs_code) - 1:04X}H")
+ print(f" New TEXTST: {new_textst:04X}H (was A471H, {len(rfs_code)} bytes less for BASIC programs)")
+ print()
+
+ # Print symbol table
+ print("Symbol table:")
+ for name, addr in sorted(symbols.items(), key=lambda x: x[1]):
+ print(f" {name:12s} = {addr:04X}H")
+ print()
+
+ # Read original binary
+ with open(input_bin, 'rb') as f:
+ binary_data = f.read()
+
+ if len(binary_data) != BINARY_SIZE:
+ print(f"ERROR: Binary must be exactly {BINARY_SIZE} bytes, got {len(binary_data)}")
+ sys.exit(1)
+
+ # Apply patches
+ print("Patching binary:")
+ patched = patch_binary(binary_data, rfs_code, symbols)
+
+ # Write output
+ with open(output_bin, 'wb') as f:
+ f.write(patched)
+ print(f"\nWrote {len(patched)} bytes to {output_bin}")
+
+ # Verify the patch
+ print("\nVerification:")
+ # Check $QD link
+ qd_link = struct.unpack_from(' link={link:04X}H")
+ # Follow to $RFS
+ if link == RFS_BASE:
+ rfs_off = RFS_BASE
+ rfs_link = struct.unpack_from(' link={rfs_link:04X}H")
+ # Follow to $USR
+ if rfs_link == USR_ADDR:
+ usr_link = struct.unpack_from(' link={usr_link:04X}H (NULL=end)")
+
+ return output_bin
+
+
+if __name__ == '__main__':
+ result = main()
diff --git a/dis/MZ-5Z008/postprocess_dz80.py b/dis/MZ-5Z008/postprocess_dz80.py
new file mode 100644
index 0000000..343f6a5
--- /dev/null
+++ b/dis/MZ-5Z008/postprocess_dz80.py
@@ -0,0 +1,564 @@
+#!/usr/bin/env python3
+#########################################################################################################
+##
+## Name: postprocess_dz80.py
+## Created: March 2026
+## Author(s): Philip Smart
+## Description: Post-processes dz80 disassembly output for GLASS Z80 assembler compatibility.
+## Adapted for MZ-5Z008 Disk BASIC.
+##
+## Fixes:
+## 1. Undefined Lxxxx label references -> numeric hex values
+## 2. Compacts consecutive same-value DB lines into DS count, value
+## 3. Fixes any string quoting issues
+## 4. Reformats BASIC keyword tables (one keyword per line)
+## 5. Converts runs of printable-ASCII DB bytes into DB "text" form
+##
+## Credits:
+## Copyright: (c) 2026 Philip Smart
+##
+## History: March 2026 - Initial script (based on MZ-1Z-013B version).
+##
+#########################################################################################################
+## This source file is free software: you can redistribute it and#or modify
+## it under the terms of the GNU General Public License as published
+## by the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## This source file is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program. If not, see .
+#########################################################################################################
+
+import re
+import sys
+import os
+
+def collect_defined_labels(lines):
+ """Collect all labels defined in the assembly file."""
+ defined = set()
+ for line in lines:
+ # Label definitions (LABEL: instruction)
+ m = re.match(r'^([\w\$\.\?][\w\$\.\?]*)\s*:', line)
+ if m:
+ defined.add(m.group(1))
+ # EQU definitions (LABEL EQU value)
+ m = re.match(r'^(\S+)\s+EQU\s+', line)
+ if m:
+ defined.add(m.group(1))
+ return defined
+
+def find_undefined_refs(lines, defined):
+ """Find all Lxxxx references that are not defined."""
+ undefined = set()
+ for line in lines:
+ for m in re.finditer(r'\bL([0-9A-Fa-f]{4})\b', line):
+ label = 'L' + m.group(1).upper()
+ if label not in defined:
+ undefined.add(label)
+ return undefined
+
+def replace_undefined_refs(line, undefined):
+ """Replace undefined Lxxxx references with numeric hex values."""
+ def replacer(m):
+ label = 'L' + m.group(1).upper()
+ if label in undefined:
+ addr = int(m.group(1), 16)
+ return f"0{addr:04X}H"
+ return m.group(0)
+ return re.sub(r'\bL([0-9A-Fa-f]{4})\b', replacer, line)
+
+def compact_db_sequences(lines):
+ """Compact consecutive DB lines with the same value into DS count, value.
+
+ Handles both labeled and unlabeled DB lines. A labeled DB starts a new
+ DS group (preserving the label); subsequent unlabeled DBs of the same
+ value are folded into that group. Consecutive labeled DBs with the same
+ value each get their own DS line (since labels must be preserved).
+ Minimum run length for compaction is 2.
+ """
+ result = []
+ i = 0
+ # Regex to match unlabeled DB line with a single hex byte value
+ db_pat = re.compile(r'^(\s+)DB\s+(0[0-9A-Fa-f]{2}H)\s*(;.*)?$')
+ # Regex to match labeled DB line
+ labeled_db_pat = re.compile(r'^([\w\$\.\?][\w\$\.\?]*:\s+)DB\s+(0[0-9A-Fa-f]{2}H)\s*(;.*)?$')
+
+ def parse_db(line):
+ """Return (prefix, value, comment, is_labeled) or None."""
+ m = labeled_db_pat.match(line)
+ if m:
+ return (m.group(1), m.group(2).upper(), m.group(3), True)
+ m = db_pat.match(line)
+ if m:
+ return (m.group(1), m.group(2).upper(), m.group(3), False)
+ return None
+
+ while i < len(lines):
+ parsed = parse_db(lines[i])
+ if parsed is None:
+ result.append(lines[i])
+ i += 1
+ continue
+
+ prefix, value, comment, is_labeled = parsed
+
+ # Scan ahead: count consecutive unlabeled DB lines with the same value
+ j = i + 1
+ while j < len(lines):
+ p2 = parse_db(lines[j])
+ if p2 and p2[1] == value and not p2[3]:
+ j += 1
+ else:
+ break
+
+ count = j - i # total lines in this run (first + unlabeled continuations)
+
+ if count >= 2:
+ # Compact to DS count, value
+ if comment:
+ result.append(f"{prefix}DS {count}, {value} {comment}\n")
+ else:
+ result.append(f"{prefix}DS {count}, {value}\n")
+ i = j
+ else:
+ result.append(lines[i])
+ i += 1
+
+ return result
+
+def fix_string_issues(lines):
+ """Fix DB lines with problematic string quoting."""
+ result = []
+ for line in lines:
+ # Check for DB lines with multiple quoted strings that might have issues
+ if 'DB' in line and line.count('"') > 2:
+ # Check if there are unbalanced or nested quotes
+ m = re.match(r'^(\s+)DB\s+(.*)', line)
+ if m:
+ indent = m.group(1)
+ content = m.group(2).rstrip()
+ # Try to detect nested quote issues
+ in_string = False
+ quote_count = 0
+ for ch in content:
+ if ch == '"':
+ quote_count += 1
+ if quote_count % 2 != 0:
+ # Odd number of quotes = broken string, convert all to hex
+ result.append(line) # Keep as-is, should be caught by assembler
+ continue
+ result.append(line)
+ return result
+
+def stringify_db_runs(lines):
+ """Convert runs of consecutive printable-ASCII DB bytes into DB "text" form.
+
+ Scans for sequences of unlabeled DB lines where each byte is printable ASCII
+ (0x20-0x7E). Runs of 3+ printable bytes are merged into a single DB "text"
+ line. Non-printable bytes between runs are kept as hex. Labeled DB lines
+ start a new output line (preserving the label).
+ """
+ result = []
+ # Pattern for unlabeled single-byte DB
+ db_pat = re.compile(r'^(\s+)DB\s+(0[0-9A-Fa-f]{2}H)\s*(;.*)?$')
+ # Pattern for labeled single-byte DB
+ labeled_db_pat = re.compile(
+ r'^([\w\$\.\?][\w\$\.\?]*:\s+)DB\s+(0[0-9A-Fa-f]{2}H)\s*(;.*)?$')
+
+ def parse_db(line):
+ """Return (prefix, byte_val, comment, is_labeled) or None."""
+ m = labeled_db_pat.match(line)
+ if m:
+ val = int(m.group(2)[1:3], 16) # strip leading 0 and trailing H
+ return (m.group(1), val, m.group(3), True)
+ m = db_pat.match(line)
+ if m:
+ val = int(m.group(2)[1:3], 16)
+ return (m.group(1), val, m.group(3), False)
+ return None
+
+ def is_printable(b):
+ # Printable ASCII excluding double-quote (breaks string literals)
+ return 0x20 <= b <= 0x7E and b != 0x22
+
+ def flush_group(prefix, values, comment):
+ """Convert a list of byte values into a DB line mixing "text" and hex."""
+ parts = []
+ text_run = []
+ for b in values:
+ if is_printable(b):
+ text_run.append(chr(b))
+ else:
+ if len(text_run) >= 3:
+ parts.append('"' + ''.join(text_run) + '"')
+ else:
+ for ch_b in text_run:
+ parts.append(f"0{ord(ch_b):02X}H")
+ text_run = []
+ parts.append(f"0{b:02X}H")
+ if len(text_run) >= 3:
+ parts.append('"' + ''.join(text_run) + '"')
+ else:
+ for ch_b in text_run:
+ parts.append(f"0{ord(ch_b):02X}H")
+
+ line_str = f"{prefix}DB {','.join(parts)}"
+ if comment:
+ line_str += f" {comment}"
+ return line_str + "\n"
+
+ i = 0
+ while i < len(lines):
+ parsed = parse_db(lines[i])
+ if parsed is None:
+ result.append(lines[i])
+ i += 1
+ continue
+
+ prefix, byte_val, comment, is_labeled = parsed
+
+ # Collect a run of DB bytes (stop at labeled lines or non-DB lines)
+ group_prefix = prefix
+ group_comment = comment
+ values = [byte_val]
+ j = i + 1
+ while j < len(lines):
+ p2 = parse_db(lines[j])
+ if p2 is None:
+ break
+ if p2[3]: # labeled line - stop this group
+ break
+ values.append(p2[1])
+ j += 1
+
+ # Only stringify if there are 3+ printable ASCII bytes in the group
+ printable_count = sum(1 for b in values if is_printable(b))
+ if printable_count >= 3 and len(values) >= 3:
+ result.append(flush_group(group_prefix, values, group_comment))
+ i = j
+ else:
+ result.append(lines[i])
+ i += 1
+
+ return result
+
+def format_keyword_tables(lines):
+ """Reformat BASIC keyword tables so each keyword is on its own line.
+
+ Keywords are bit-7 terminated: the last character of each keyword has
+ bit 7 set. 0x80 alone represents an empty/unused slot.
+
+ Output format:
+ DB "GOT", "O" | 080H ; keyword with multiple chars
+ DB "A" | 080H ; single-char keyword
+ DB 080H ; empty slot
+ """
+ # Keyword table markers: label -> number of data bytes in table
+ # MZ-5Z008 keyword tables
+ KW_TABLES = {
+ 'L415B': 411, # Statement keyword text table (dz80 label)
+ 'STMTWORDTBL': 411, # Statement keyword text table (equate label)
+ 'L42F6': 88, # Extended keyword text table (dz80 label)
+ 'EXTWORDTBL': 88, # Extended keyword text table (equate label)
+ 'L434E': 158, # Function keyword text table (dz80 label)
+ 'FUNCWORDTBL': 158, # Function keyword text table (equate label)
+ }
+
+ # Build EQU symbol table for resolving symbol names in DB values
+ equ_values = {}
+ equ_pat = re.compile(r'^(\S+)\s+EQU\s+(0[0-9A-Fa-f]+H)', re.IGNORECASE)
+ for line in lines:
+ m = equ_pat.match(line)
+ if m:
+ equ_values[m.group(1)] = int(m.group(2)[:-1], 16)
+
+ # Regex patterns for DB lines (allow zero or more whitespace after label colon)
+ db_pat = re.compile(r'^(\s+)DB\s+(.*?)(\s*;.*)?$')
+ labeled_db_pat = re.compile(
+ r'^([\w\$\.\?][\w\$\.\?]*:\s*)DB\s+(.*?)(\s*;.*)?$')
+ ds_pat = re.compile(r'^(\s+)DS\s+(\d+),\s*(0[0-9A-Fa-f]{2}H)(\s*;.*)?$')
+ labeled_ds_pat = re.compile(
+ r'^([\w\$\.\?][\w\$\.\?]*:\s*)DS\s+(\d+),\s*(0[0-9A-Fa-f]{2}H)(\s*;.*)?$')
+
+ def parse_hex_val(s):
+ """Parse '0xxH' to int."""
+ s = s.strip()
+ if s.upper().endswith('H') and s.startswith('0'):
+ return int(s[:-1], 16)
+ return None
+
+ def extract_bytes_from_db(data_str):
+ """Extract byte values from a DB operand string (handles hex, strings, DS)."""
+ vals = []
+ # Split on commas but respect quoted strings
+ parts = []
+ current = ''
+ in_str = False
+ for ch in data_str:
+ if ch == '"':
+ in_str = not in_str
+ current += ch
+ elif ch == ',' and not in_str:
+ parts.append(current.strip())
+ current = ''
+ else:
+ current += ch
+ if current.strip():
+ parts.append(current.strip())
+
+ for part in parts:
+ part = part.strip()
+ if part.startswith('"') and part.endswith('"'):
+ for ch in part[1:-1]:
+ vals.append(ord(ch))
+ elif '|' in part:
+ # expression like "X" | 080H
+ sub = [s.strip() for s in part.split('|')]
+ val = 0
+ for s in sub:
+ if s.startswith('"') and s.endswith('"'):
+ val |= ord(s[1])
+ else:
+ v = parse_hex_val(s)
+ if v is not None:
+ val |= v
+ vals.append(val)
+ else:
+ v = parse_hex_val(part)
+ if v is not None:
+ vals.append(v)
+ elif part in equ_values and equ_values[part] <= 0xFF:
+ vals.append(equ_values[part])
+ # else: unknown symbol, skip
+ return vals
+
+ def format_keyword(byte_list):
+ """Format one keyword's bytes as a DB line."""
+ if len(byte_list) == 1 and byte_list[0] == 0x80:
+ return "DB 080H"
+ if len(byte_list) == 1:
+ b = byte_list[0]
+ ch = b & 0x7F
+ if 0x20 <= ch <= 0x7E and ch != 0x22:
+ return f'DB "{chr(ch)}" | 080H'
+ else:
+ return f"DB 0{b:02X}H"
+
+ # Multiple bytes: all but last are plain ASCII, last has bit 7
+ prefix_bytes = byte_list[:-1]
+ last_byte = byte_list[-1]
+ last_ch = last_byte & 0x7F
+
+ prefix_str = ''.join(chr(b) for b in prefix_bytes
+ if 0x20 <= b <= 0x7E and b != 0x22)
+
+ if len(prefix_str) == len(prefix_bytes) and prefix_str:
+ # All prefix bytes are printable
+ if 0x20 <= last_ch <= 0x7E and last_ch != 0x22:
+ return f'DB "{prefix_str}", "{chr(last_ch)}" | 080H'
+ else:
+ return f'DB "{prefix_str}", 0{last_byte:02X}H'
+ else:
+ # Some non-printable in prefix, fall back to hex
+ parts = [f"0{b:02X}H" for b in prefix_bytes]
+ if 0x20 <= last_ch <= 0x7E and last_ch != 0x22:
+ parts.append(f'"{chr(last_ch)}" | 080H')
+ else:
+ parts.append(f"0{last_byte:02X}H")
+ return f"DB {','.join(parts)}"
+
+ # Regex to extract label from a line
+ label_pat = re.compile(r'^([\w\$\.\?][\w\$\.\?]*):\s')
+
+ result = []
+ i = 0
+ while i < len(lines):
+ # Check if this line starts a keyword table
+ table_label = None
+ table_size = 0
+ for label, size in KW_TABLES.items():
+ if lines[i].startswith(label + ':'):
+ table_label = label
+ table_size = size
+ break
+
+ if table_label is None:
+ result.append(lines[i])
+ i += 1
+ continue
+
+ # Found a keyword table. Collect all data bytes and track labels.
+ raw_bytes = []
+ first_comment = None
+ # Map: byte offset within table -> label name
+ label_at_offset = {0: table_label}
+ j = i
+ while j < len(lines) and len(raw_bytes) < table_size:
+ line = lines[j]
+ ml = labeled_db_pat.match(line)
+ mu = db_pat.match(line)
+ mlds = labeled_ds_pat.match(line)
+ muds = ds_pat.match(line)
+
+ if ml or mu:
+ m = ml or mu
+ if first_comment is None and m.group(m.lastindex):
+ first_comment = m.group(m.lastindex)
+ if first_comment:
+ first_comment = first_comment.strip()
+ # Track label at current byte offset
+ if ml:
+ lm = label_pat.match(line)
+ if lm and lm.group(1) != table_label:
+ label_at_offset[len(raw_bytes)] = lm.group(1)
+ data_str = ml.group(2)
+ else:
+ data_str = mu.group(2)
+ raw_bytes.extend(extract_bytes_from_db(data_str))
+ j += 1
+ elif mlds or muds:
+ m = mlds or muds
+ if mlds:
+ lm = label_pat.match(line)
+ if lm and lm.group(1) != table_label:
+ label_at_offset[len(raw_bytes)] = lm.group(1)
+ count = int(mlds.group(2))
+ val = parse_hex_val(mlds.group(3))
+ else:
+ count = int(muds.group(2))
+ val = parse_hex_val(muds.group(3))
+ if val is not None:
+ raw_bytes.extend([val] * count)
+ j += 1
+ else:
+ break
+
+ # Safety: ensure we advance past the starting line
+ if j == i:
+ result.append(lines[i])
+ i += 1
+ continue
+
+ # Parse keywords from raw bytes, tracking byte offsets
+ keywords = [] # list of (byte_offset, [bytes])
+ kw = []
+ kw_start = 0
+ for idx, b in enumerate(raw_bytes[:table_size]):
+ kw.append(b)
+ if b & 0x80:
+ keywords.append((kw_start, kw))
+ kw = []
+ kw_start = idx + 1
+ if kw:
+ keywords.append((kw_start, kw))
+
+ # Output reformatted keyword table with labels preserved.
+ # Labels may fall at keyword boundaries OR mid-keyword.
+ indent = ' '
+ for ki, (kw_offset, kw_bytes) in enumerate(keywords):
+ comment = ''
+ if ki == 0 and first_comment:
+ comment = f" {first_comment}"
+
+ # Check for any labels within this keyword's byte range
+ kw_labels = {} # relative_offset -> label_name
+ for off in range(len(kw_bytes)):
+ abs_off = kw_offset + off
+ if abs_off in label_at_offset:
+ kw_labels[off] = label_at_offset[abs_off]
+
+ if not kw_labels:
+ # No labels in this keyword
+ result.append(f"{indent}{format_keyword(kw_bytes)}{comment}\n")
+ elif 0 in kw_labels and len(kw_labels) == 1:
+ # Label at keyword start only
+ lbl = kw_labels[0]
+ prefix = f"{lbl}:{indent[len(lbl)+1:]}"
+ result.append(f"{prefix}{format_keyword(kw_bytes)}{comment}\n")
+ else:
+ # Labels mid-keyword: split output at each label position.
+ # Build split points: 0, label_pos1, label_pos2, ..., end
+ split_pts = sorted(set([0] + list(kw_labels.keys())
+ + [len(kw_bytes)]))
+ for si in range(len(split_pts) - 1):
+ seg_start = split_pts[si]
+ seg_end = split_pts[si + 1]
+ chunk = kw_bytes[seg_start:seg_end]
+ lbl = kw_labels.get(seg_start)
+ is_last_seg = (seg_end == len(kw_bytes))
+
+ if lbl:
+ prefix = f"{lbl}:{indent[len(lbl)+1:]}"
+ else:
+ prefix = indent
+
+ cmt = comment if si == 0 else ''
+
+ if is_last_seg and chunk and (chunk[-1] & 0x80):
+ result.append(
+ f"{prefix}{format_keyword(chunk)}{cmt}\n")
+ else:
+ parts = []
+ for b in chunk:
+ if 0x20 <= b <= 0x7E and b != 0x22:
+ parts.append(f"0{b:02X}H")
+ else:
+ parts.append(f"0{b:02X}H")
+ if parts:
+ result.append(
+ f"{prefix}DB {','.join(parts)}{cmt}\n")
+
+ i = j
+
+ return result
+
+def main():
+ if len(sys.argv) < 2:
+ print(f"Usage: {sys.argv[0]} [output.asm]")
+ print(" Post-processes dz80 output for GLASS Z80 assembler compatibility.")
+ sys.exit(1)
+
+ input_file = sys.argv[1]
+ output_file = sys.argv[2] if len(sys.argv) > 2 else input_file
+
+ with open(input_file, 'r') as f:
+ lines = f.readlines()
+
+ original_count = len(lines)
+
+ # Step 1: Collect defined labels and find undefined references
+ defined = collect_defined_labels(lines)
+ undefined = find_undefined_refs(lines, defined)
+ print(f" Defined labels: {len(defined)}")
+ print(f" Undefined Lxxxx references: {len(undefined)}")
+
+ # Step 2: Replace undefined Lxxxx references with numeric values
+ lines = [replace_undefined_refs(line, undefined) for line in lines]
+
+ # Step 3: Fix string quoting issues
+ lines = fix_string_issues(lines)
+
+ # Step 4: Compact consecutive same-value DB lines into DS
+ lines = compact_db_sequences(lines)
+
+ # Step 5: Reformat keyword tables (one keyword per line, bit-7 terminator shown)
+ # Must run BEFORE stringify so labels inside tables are preserved.
+ lines = format_keyword_tables(lines)
+
+ # Step 6: Convert runs of printable-ASCII DB bytes into DB "text" form
+ lines = stringify_db_runs(lines)
+
+ print(f" Lines: {original_count} -> {len(lines)} (compacted {original_count - len(lines)} lines)")
+
+ with open(output_file, 'w') as f:
+ f.writelines(lines)
+
+ print(f" Output: {output_file}")
+
+if __name__ == '__main__':
+ main()
diff --git a/dis/SA-5510/dz80.ini b/dis/SA-5510/dz80.ini
new file mode 120000
index 0000000..4617f95
--- /dev/null
+++ b/dis/SA-5510/dz80.ini
@@ -0,0 +1 @@
+SA-5510.ini
\ No newline at end of file
diff --git a/dis/XPATCH/dz80.ini b/dis/XPATCH/dz80.ini
new file mode 120000
index 0000000..4193260
--- /dev/null
+++ b/dis/XPATCH/dz80.ini
@@ -0,0 +1 @@
+XPATCH.ini
\ No newline at end of file
diff --git a/roms/SHARP_MZ80A_RFS_IMAGE_0.img b/roms/SHARP_MZ80A_RFS_IMAGE_0.img
index 49751e8..975db77 100644
Binary files a/roms/SHARP_MZ80A_RFS_IMAGE_0.img and b/roms/SHARP_MZ80A_RFS_IMAGE_0.img differ
diff --git a/roms/SHARP_MZ80A_RFS_IMAGE_2.img b/roms/SHARP_MZ80A_RFS_IMAGE_2.img
index 86cf66d..d50e3e2 100644
Binary files a/roms/SHARP_MZ80A_RFS_IMAGE_2.img and b/roms/SHARP_MZ80A_RFS_IMAGE_2.img differ
diff --git a/roms/cbios.rom b/roms/cbios.rom
index 515efe1..4ac5109 100644
Binary files a/roms/cbios.rom and b/roms/cbios.rom differ
diff --git a/roms/cbios_bank1.rom b/roms/cbios_bank1.rom
index bbc4ecf..9319c08 100644
Binary files a/roms/cbios_bank1.rom and b/roms/cbios_bank1.rom differ
diff --git a/roms/cbios_bank2.rom b/roms/cbios_bank2.rom
index 4736cc7..edd018a 100644
Binary files a/roms/cbios_bank2.rom and b/roms/cbios_bank2.rom differ
diff --git a/roms/cbios_bank3.rom b/roms/cbios_bank3.rom
index 826b852..e406d79 100644
Binary files a/roms/cbios_bank3.rom and b/roms/cbios_bank3.rom differ
diff --git a/roms/cbios_bank4.rom b/roms/cbios_bank4.rom
index 33340d8..3e96dcd 100644
Binary files a/roms/cbios_bank4.rom and b/roms/cbios_bank4.rom differ
diff --git a/roms/rfs.rom b/roms/rfs.rom
index 2e1c393..dd85b31 100644
Binary files a/roms/rfs.rom and b/roms/rfs.rom differ
diff --git a/roms/rfs_mrom.rom b/roms/rfs_mrom.rom
index 6e99f4d..994dd70 100644
Binary files a/roms/rfs_mrom.rom and b/roms/rfs_mrom.rom differ
diff --git a/tools/assemble_cpm.sh b/tools/assemble_cpm.sh
index b5adce9..7be2d5d 100755
--- a/tools/assemble_cpm.sh
+++ b/tools/assemble_cpm.sh
@@ -8,7 +8,7 @@
## This script builds a CPM version compatible with the MZ-80A RFS system.
##
## Credits:
-## Copyright: (c) 2020-23 Philip Smart
+## Copyright: (c) 2020-26 Philip Smart
##
## History: January 2020 - Initial script written.
## February 2023 - Updated as RFS extracted into seperate repository.
diff --git a/tools/assemble_mz2z009e.sh b/tools/assemble_mz2z009e.sh
new file mode 100755
index 0000000..aea4e4a
--- /dev/null
+++ b/tools/assemble_mz2z009e.sh
@@ -0,0 +1,117 @@
+#!/bin/bash
+#########################################################################################################
+##
+## Name: assemble_mz2z009e.sh
+## Created: March 2026
+## Author(s): Philip Smart
+## Description: MZ-2Z009E BASIC build tool
+## Builds the MZ-2Z009E BASIC floppy disk image in two variants:
+## 1. Original: Unmodified MZ-2Z009E binary → .dsk
+## 2. RFS: Patched with RFS device support → .dsk
+##
+## The RFS version adds an "RFS" device to the BASIC device chain,
+## enabling SD card access through the picoZ80 RFS ROM at E800H:
+## DIR "RFS:" - List SD card directory (drive 0)
+## DIR "RFS2:" - List SD card directory (drive 1)
+## LOAD "RFS:" - Load program from SD card
+## SAVE "RFS:" - Save program to SD card
+##
+## Credits:
+## Copyright: (c) 2026 Philip Smart
+##
+## History: March 2026 - Initial script.
+##
+#########################################################################################################
+## This source file is free software: you can redistribute it and#or modify
+## it under the terms of the GNU General Public License as published
+## by the Free Software Foundation, either version 3 of the License, or
+## (at your option) any later version.
+##
+## This source file is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program. If not, see .
+#########################################################################################################
+
+ROOTDIR="$(cd "$(dirname "$0")/.." && pwd)"
+TOOLDIR=${ROOTDIR}/tools
+DISDIR=${ROOTDIR}/dis
+OUTDIR=${ROOTDIR}/tmp
+
+ORIGINAL_BIN="${DISDIR}/mz2z009e.bin"
+TEMPLATE_DSK="/dvlp/Projects/pico/projects/tzpuPico/MZ-2Z009.dsk"
+
+# Verify original binary exists
+if [ ! -f "${ORIGINAL_BIN}" ]; then
+ echo "ERROR: Original binary not found at ${ORIGINAL_BIN}"
+ echo " This is the raw MZ-2Z009E BASIC binary (36864 bytes)."
+ exit 1
+fi
+
+mkdir -p "${OUTDIR}"
+
+echo "MZ-2Z009E BASIC Build Tool"
+echo "=========================="
+echo " Source binary: ${ORIGINAL_BIN}"
+echo " Output dir: ${OUTDIR}"
+echo ""
+
+# ---- Build 1: Original version ----
+echo "--- Building original version ---"
+cp "${ORIGINAL_BIN}" "${OUTDIR}/mz2z009e.bin"
+python3 "${DISDIR}/build_dsk.py" "${OUTDIR}/mz2z009e.bin" "${OUTDIR}/mz2z009e.dsk" "${TEMPLATE_DSK}"
+
+if [ $? -eq 0 ]; then
+ echo ""
+ echo "Original build successful."
+ ls -la "${OUTDIR}/mz2z009e.dsk"
+else
+ echo ""
+ echo "ERROR: Original .dsk build failed."
+ exit 1
+fi
+
+echo ""
+
+# ---- Build 2: RFS version ----
+echo "--- Building RFS version ---"
+python3 "${DISDIR}/patch_rfs.py" "${ORIGINAL_BIN}" "${OUTDIR}/mz2z009e_rfs.bin"
+
+if [ $? -ne 0 ]; then
+ echo ""
+ echo "ERROR: RFS patching failed."
+ exit 1
+fi
+
+python3 "${DISDIR}/build_dsk.py" "${OUTDIR}/mz2z009e_rfs.bin" "${OUTDIR}/mz2z009e_rfs.dsk" "${TEMPLATE_DSK}"
+
+if [ $? -eq 0 ]; then
+ echo ""
+ echo "RFS build successful."
+ ls -la "${OUTDIR}/mz2z009e_rfs.dsk"
+else
+ echo ""
+ echo "ERROR: RFS .dsk build failed."
+ exit 1
+fi
+
+echo ""
+echo "=============================="
+echo "Build complete. Output files:"
+echo " ${OUTDIR}/mz2z009e.dsk (original)"
+echo " ${OUTDIR}/mz2z009e_rfs.dsk (with RFS device)"
+echo ""
+echo "RFS device usage in MZ-2Z009E BASIC:"
+echo " DIR \"RFS:\" - List SD card directory (default drive)"
+echo " DIR \"RFS2:\" - List SD card drive 1"
+echo " LOAD \"RFS:\" - Load from SD card"
+echo " SAVE \"RFS:\" - Save to SD card"
+echo ""
+echo "Note: RFS device numbers use MZ-800 BASIC convention:"
+echo " RFS: = drive 0 (default)"
+echo " RFS1: = drive 0"
+echo " RFS2: = drive 1"
+echo " ... through RFS8: = drive 7"
diff --git a/tools/assemble_rfs.sh b/tools/assemble_rfs.sh
index d05ff56..da8e0c5 100755
--- a/tools/assemble_rfs.sh
+++ b/tools/assemble_rfs.sh
@@ -33,7 +33,7 @@ ROOTDIR=`pwd | sed 's/\/tools//g'`
TOOLDIR=${ROOTDIR}/tools
JARDIR=${ROOTDIR}/tools
ASM=glass.jar
-BUILDROMLIST="rfs rfs_mrom"
+BUILDROMLIST="rfs rfs_mrom rfs_mrom_bank6 rfs_mrom_bank7 rfs_mrom_bank9"
BUILDMZFLIST=""
ASMDIR=${ROOTDIR}/asm
ASMTMPDIR=${ROOTDIR}/tmp
@@ -63,5 +63,9 @@ do
echo "Copy ${ASMTMPDIR}/${f}.obj to ${MZFDIR}/${f}.mzf"
cp ${ASMTMPDIR}/${f}.obj ${MZFDIR}/${f}.mzf
fi
+ else
+ # Error, exit so it can be fixed.
+ echo "ERROR: Assembly failed, please fix issue and restart build."
+ exit 1
fi
done
diff --git a/tools/assemble_roms.sh b/tools/assemble_roms.sh
index 8b06831..14f473c 100755
--- a/tools/assemble_roms.sh
+++ b/tools/assemble_roms.sh
@@ -38,8 +38,9 @@ ASM=glass.jar
# NB Kuma version of SA1510 monitor rom is enabled within the monitor_sa1510.asm or monitor_80c_sa1510.asm file.
#BUILDROMLIST="MZ80AFI rfs rfs_mrom IPL monitor_SA1510 monitor_80c_SA1510 monitor_mz-1r12 quickdisk_mz-1e05 quickdisk_mz-1e14 monitor_1Z-013A monitor_80c_1Z-013A"
BUILDROMLIST="monitor_sa1510_hiload monitor_80c_sa1510_hiload monitor_80c_sa1510 mz80afi monitor_sa1510 monitor_80c_sa1510 monitor_1z-013a monitor_80c_1z-013a ipl"
+
#BUILDMZFLIST="hi-ramcheck sharpmz-test"
-BUILDMZFLIST="sa-5510_rfs msbasic_mz80a msbasic_rfs40 msbasic_rfs80 sharpmz-test"
+BUILDMZFLIST="sa-5510_rfs msbasic_mz80a msbasic_rfs40 msbasic_rfs80 sharpmz-test 1z-013b mz5z009 mz2z009e mz5z008 mz5z008_rfs"
ASMDIR=${ROOTDIR}/asm
ASMTMPDIR=${ROOTDIR}/tmp
INCDIR=${ROOTDIR}/asm/include
diff --git a/tools/make_roms.sh b/tools/make_roms.sh
index 29d135a..7e2978c 100755
--- a/tools/make_roms.sh
+++ b/tools/make_roms.sh
@@ -19,6 +19,8 @@
## over SD card and SD cards are larger.
## February 2023 - Updated as RFS extracted into seperate repository.
## June 2023 - Updated to make the Kuma version of the monitor.
+## November 2023 - Updated to build seperate SFD700 Version of ROM.
+## February 2026 - Updated to make picoZ80 Version of ROMDISK ROMs.
##
#########################################################################################################
## This source file is free software: you can redistribute it and#or modify
@@ -42,18 +44,22 @@ ROM_LIST_FILE=/tmp/ROMLIST
SECTORSIZE=256
#CPMDISKMODE=SPLIT
MZFTOOL=${ROOTDIR}/tools/mzftool.pl
-MONITOR_ROM=/tmp/mrom.rom
-USER_ROM_I=/tmp/user.rom
-USER_ROM_II=/tmp/user2.rom
-USER_ROM_III=/tmp/user3.rom
+MONITOR_ROM_ROMDISK=/tmp/mrom_romdisk.rom
+USER_ROM_I_ROMDISK=/tmp/user_romdisk.rom
+USER_ROM_II_ROMDISK=/tmp/user2_romdisk.rom
+USER_ROM_III_ROMDISK=/tmp/user3_romdisk.rom
SFD700_ROM=/tmp/sfd700.rom
+MONITOR_ROM_PICOZ80=/tmp/mrom_picoz80.rom
+USER_ROM_I_PICOZ80=/tmp/user_picoz80.rom
+USER_ROM_II_PICOZ80=/tmp/user2_picoz80.rom
+USER_ROM_III_PICOZ80=/tmp/user3_picoz80.rom
function addMZFToROMImageList
{
local INCLUDE_RFS=$1
local INCLUDE_SFD700=$2
- local INCLUDE_RSV1=$3
- local INCLUDE_RSV2=$4
+ local INCLUDE_PICOZ80=$3
+ local INCLUDE_RSV1=$4
local MZFFILE=$5
if [[ ${INCLUDE_RFS} -eq 1 ]]; then
@@ -62,20 +68,24 @@ function addMZFToROMImageList
if [[ ${INCLUDE_SFD700} -eq 1 ]]; then
ROM_INCLUDE_SFD700+="${MZFFILE}:"
fi
+ if [[ ${INCLUDE_PICOZ80} -eq 1 ]]; then
+ ROM_INCLUDE_PICOZ80+="${MZFFILE}:"
+ fi
if [[ ${INCLUDE_RSV1} -eq 1 ]]; then
ROM_INCLUDE_RSV1+="${MZFFILE}:"
fi
- if [[ ${INCLUDE_RSV2} -eq 1 ]]; then
- ROM_INCLUDE_RSV2+="${MZFFILE}:"
- fi
}
# Monitor/User ROM 1/2/3, SFD700 = empty.
-> ${MONITOR_ROM}
-> ${USER_ROM_I}
-> ${USER_ROM_II}
-> ${USER_ROM_III}
+> ${MONITOR_ROM_ROMDISK}
+> ${USER_ROM_I_ROMDISK}
+> ${USER_ROM_II_ROMDISK}
+> ${USER_ROM_III_ROMDISK}
> ${SFD700_ROM}
+> ${MONITOR_ROM_PICOZ80}
+> ${USER_ROM_I_PICOZ80}
+> ${USER_ROM_II_PICOZ80}
+> ${USER_ROM_III_PICOZ80}
# Create a file with a list of programs placed into the ROM. This list can then be used by the SD
# card script to ensure no duplication occurs when building the SD RFS program directory.
@@ -85,17 +95,54 @@ rm -f ${ROM_LIST_FILE}
echo "cat ${ROM_PATH}/monitor_sa1510.rom ${ROM_PATH}/monitor_80c_sa1510.rom ${ROM_PATH}/cbios.rom ${ROM_PATH}/rfs_mrom.rom ${ROM_PATH}/monitor_1z-013a.rom ${ROM_PATH}/monitor_80c_1z-013a.rom ${ROM_PATH}/ipl.rom ${ROM_PATH}/blank_mrom.rom > /tmp/mrom.rom"
#cat ${ROM_PATH}/monitor_1Z-013A.rom ${ROM_PATH}/monitor_1Z-013A.rom \
#cat ${ROM_PATH}/monitor_1Z-009B.rom ${ROM_PATH}/monitor_1Z-009B.rom \
-cat ${ROM_PATH}/monitor_sa1510.rom ${ROM_PATH}/monitor_80c_sa1510.rom \
- ${ROM_PATH}/cbios.rom ${ROM_PATH}/rfs_mrom.rom \
- ${ROM_PATH}/monitor_1z-013a.rom ${ROM_PATH}/monitor_80c_1z-013a.rom \
- ${ROM_PATH}/ipl.rom ${ROM_PATH}/blank_mrom.rom \
- >> ${MONITOR_ROM}
+#
+# ROMDISK
+cat ${ROM_PATH}/monitor_sa1510.rom \
+ ${ROM_PATH}/monitor_80c_sa1510.rom \
+ ${ROM_PATH}/cbios.rom \
+ ${ROM_PATH}/rfs_mrom.rom \
+ ${ROM_PATH}/monitor_1z-013a.rom \
+ ${ROM_PATH}/monitor_80c_1z-013a.rom \
+ ${ROM_PATH}/rfs_mrom_bank6.rom \
+ ${ROM_PATH}/rfs_mrom_bank7.rom \
+ ${ROM_PATH}/ipl.rom \
+ ${ROM_PATH}/rfs_mrom_bank9.rom \
+ ${ROM_PATH}/blank_mrom.rom \
+ ${ROM_PATH}/blank_mrom.rom \
+ ${ROM_PATH}/blank_mrom.rom \
+ ${ROM_PATH}/blank_mrom.rom \
+ ${ROM_PATH}/blank_mrom.rom \
+ ${ROM_PATH}/blank_mrom.rom \
+ >> ${MONITOR_ROM_ROMDISK}
+
+# picoZ80
+echo "cat ${ROM_PATH}/monitor_1z-013a.rom ${ROM_PATH}/monitor_80c_1z-013a.rom ${ROM_PATH}/cbios.rom ${ROM_PATH}/rfs_mrom.rom ${ROM_PATH}/monitor_sa1510.rom ${ROM_PATH}/monitor_80c_sa1510.rom ${ROM_PATH}/rfs_mrom_bank6.rom ${ROM_PATH}/rfs_mrom_bank7.rom ${ROM_PATH}/ipl.rom ${ROM_PATH}/rfs_mrom_bank9.rom > ${MONITOR_ROM_PICOZ80}"
+cat ${ROM_PATH}/monitor_1z-013a.rom \
+ ${ROM_PATH}/monitor_80c_1z-013a.rom \
+ ${ROM_PATH}/cbios.rom \
+ ${ROM_PATH}/rfs_mrom.rom \
+ ${ROM_PATH}/monitor_sa1510.rom \
+ ${ROM_PATH}/monitor_80c_sa1510.rom \
+ ${ROM_PATH}/rfs_mrom_bank6.rom \
+ ${ROM_PATH}/rfs_mrom_bank7.rom \
+ ${ROM_PATH}/ipl.rom \
+ ${ROM_PATH}/rfs_mrom_bank9.rom \
+ ${ROM_PATH}/blank_mrom.rom \
+ ${ROM_PATH}/blank_mrom.rom \
+ ${ROM_PATH}/blank_mrom.rom \
+ ${ROM_PATH}/blank_mrom.rom \
+ ${ROM_PATH}/blank_mrom.rom \
+ ${ROM_PATH}/blank_mrom.rom \
+ >> ${MONITOR_ROM_PICOZ80}
# Place the RFS rom into the User ROM at the beginning as it contains all the banked pages.
-echo "cat ${ROM_PATH}/rfs.rom ${ROM_PATH}/cbios_bank1.rom ${ROM_PATH}/cbios_bank2.rom ${ROM_PATH}/cbios_bank3.rom ${ROM_PATH}/cbios_bank4.rom > ${USER_ROM_I}"
-cat ${ROM_PATH}/rfs.rom ${ROM_PATH}/cbios_bank1.rom ${ROM_PATH}/cbios_bank2.rom \
- ${ROM_PATH}/cbios_bank3.rom ${ROM_PATH}/cbios_bank4.rom \
- >> ${USER_ROM_I}
+echo "cat ${ROM_PATH}/rfs.rom ${ROM_PATH}/cbios_bank1.rom ${ROM_PATH}/cbios_bank2.rom ${ROM_PATH}/cbios_bank3.rom ${ROM_PATH}/cbios_bank4.rom > ${USER_ROM_I_ROMDISK}"
+cat ${ROM_PATH}/rfs.rom \
+ ${ROM_PATH}/cbios_bank1.rom \
+ ${ROM_PATH}/cbios_bank2.rom \
+ ${ROM_PATH}/cbios_bank3.rom \
+ ${ROM_PATH}/cbios_bank4.rom \
+ >> ${USER_ROM_I_ROMDISK}
# The SFD700 ROM is built as follows:
# 0x00000 : 0x00FFF - MZ80A Floppy ROM MZ80AFI.rom (duplicated ROM at 0x00400)
@@ -106,8 +153,19 @@ cat ${ROM_PATH}/mz80afi_sfd700.rom ${ROM_PATH}/mz80afi_sfd700.rom ${ROM_PATH}/mz
>> ${SFD700_ROM}
# For CPM, to be safe, we manually copy the required files rather than use the list below. The CP/M boot image must be in User ROM 1.
-echo "cat ${MZB_PATH}/Common/cpm22.${SECTORSIZE}.bin >> ${USER_ROM_I}"
-cat ${MZB_PATH}/Common/cpm22.${SECTORSIZE}.bin >> ${USER_ROM_I}
+echo "cat ${MZB_PATH}/Common/cpm22.${SECTORSIZE}.bin >> ${USER_ROM_I_ROMDISK}"
+cat ${MZB_PATH}/Common/cpm22.${SECTORSIZE}.bin >> ${USER_ROM_I_ROMDISK}
+
+# picoZ80 USER ROM I is a copy of the ROMDISK at the moment, no special processing needed.
+echo "cat ${ROM_PATH}/rfs.rom ${ROM_PATH}/cbios_bank1.rom ${ROM_PATH}/cbios_bank2.rom ${ROM_PATH}/cbios_bank3.rom ${ROM_PATH}/cbios_bank4.rom > ${USER_ROM_I_PICOZ80}"
+cat ${ROM_PATH}/rfs.rom \
+ ${ROM_PATH}/cbios_bank1.rom \
+ ${ROM_PATH}/cbios_bank2.rom \
+ ${ROM_PATH}/cbios_bank3.rom \
+ ${ROM_PATH}/cbios_bank4.rom \
+ >> ${USER_ROM_I_PICOZ80}
+echo "cat ${MZB_PATH}/Common/cpm22.${SECTORSIZE}.bin >> ${USER_ROM_I_PICOZ80}"
+cat ${MZB_PATH}/Common/cpm22.${SECTORSIZE}.bin >> ${USER_ROM_I_PICOZ80}
# According to flag set above, either put the CPM Disks in the first ROM, or place one in each ROM allowing for better write spread and larger disks.
#
@@ -116,21 +174,21 @@ cat ${MZB_PATH}/Common/cpm22.${SECTORSIZE}.bin >> ${USER_ROM_I}
# for f in 1 2
# do
# if [ -f ${MZB_PATH}/Common/CPM_RFS_${f}.${SECTORSIZE}.bin ]; then
-# echo "cat ${MZB_PATH}/Common/CPM_RFS_${f}.${SECTORSIZE}.bin >> ${USER_ROM_I}"
-# cat ${MZB_PATH}/Common/CPM_RFS_${f}.${SECTORSIZE}.bin >> ${USER_ROM_I}
+# echo "cat ${MZB_PATH}/Common/CPM_RFS_${f}.${SECTORSIZE}.bin >> ${USER_ROM_I_ROMDISK}"
+# cat ${MZB_PATH}/Common/CPM_RFS_${f}.${SECTORSIZE}.bin >> ${USER_ROM_I_ROMDISK}
# basename "${f}" .${SECTORSIZE}.bin >> ${ROM_LIST_FILE}
# fi
# done
#else
# if [ -f ${MZB_PATH}/Common/CPM_RFS_1.${SECTORSIZE}.bin ]; then
-# echo "cat ${MZB_PATH}/Common/CPM_RFS_1.${SECTORSIZE}.bin >> ${USER_ROM_I}"
-# cat ${MZB_PATH}/Common/CPM_RFS_1.${SECTORSIZE}.bin >> ${USER_ROM_I}
+# echo "cat ${MZB_PATH}/Common/CPM_RFS_1.${SECTORSIZE}.bin >> ${USER_ROM_I_ROMDISK}"
+# cat ${MZB_PATH}/Common/CPM_RFS_1.${SECTORSIZE}.bin >> ${USER_ROM_I_ROMDISK}
# basename "${f}" .${SECTORSIZE}.bin >> ${ROM_LIST_FILE}
# fi
#
# if [ -f ${MZB_PATH}/Common/CPM_RFS_2.${SECTORSIZE}.bin ]; then
-# echo "cat ${MZB_PATH}/Common/CPM_RFS_2.${SECTORSIZE}.bin >> ${USER_ROM_II}"
-# cat ${MZB_PATH}/Common/CPM_RFS_2.${SECTORSIZE}.bin >> ${USER_ROM_II}
+# echo "cat ${MZB_PATH}/Common/CPM_RFS_2.${SECTORSIZE}.bin >> ${USER_ROM_II_ROMDISK}"
+# cat ${MZB_PATH}/Common/CPM_RFS_2.${SECTORSIZE}.bin >> ${USER_ROM_II_ROMDISK}
# basename "${f}" .${SECTORSIZE}.bin >> ${ROM_LIST_FILE}
# fi
#fi
@@ -149,48 +207,58 @@ cat ${MZB_PATH}/Common/cpm22.${SECTORSIZE}.bin >> ${USER_ROM_I}
#
ROM_INCLUDE=""
ROM_INCLUDE_SFD700=""
+ROM_INCLUDE_PICOZ80=""
ROM_INCLUDE_RSV1=""
-ROM_INCLUDE_RSV2=""
#
-# Common
+# Common Programs between MZ Series Machines.
#
-addMZFToROMImageList 1 1 0 0 "${MZB_PATH}/Common/sa-5510_rfs.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 1 0 0 "${MZB_PATH}/Common/basic_sa5510.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 1 0 0 "${MZB_PATH}/Common/basic_sa6510.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 1 0 0 "${MZB_PATH}/Common/msbasic_mz80a.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 1 0 0 "${MZB_PATH}/Common/msbasic_rfs40.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/msbasic_rfs80.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 1 0 0 "${MZB_PATH}/Common/sa-5510_compiler.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/bas_mod_v374.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/xpatch_5510_v2.2.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/basic_sp5025.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/basic_sp5030.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/basic_sp-5035mc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/solo_basic.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/basic_om-500.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/basic_om-1000.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/basic_om-1001.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/hu-basic_v1.3_k.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/hucompilmc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/compiler_a2.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/express_compiler.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/k_a_converter.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 1 0 0 "${MZB_PATH}/Common/hisoft_pascal4.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/z80assembler2mc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/editor-assembler_sp2202mc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/zen.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/8048_cpu_disas.mc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/6502betrmc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/6502demo2mc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/6502demomc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/fortransosz80.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/mz700_forth1.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/kniforth.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/tinylispmc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/apollo_word_1.9mmc_.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/hucalc_80a_m.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/Common/send-1.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 1 0 0 "${MZB_PATH}/Common/apollo_chess_v2a.${SECTORSIZE}.bin"
+# |----------- Include in ROMDISK Build
+# | |--------- Include in SFD700 Build
+# | | |------- Include in PICOZ80 Build
+# | | | |----- Reserved
+# | | | | |-- Name and path of the sectored version of the MZF file.
+addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/sa-5510_rfs.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/1z-013b.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/mz2z009e.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/mz5z008.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/mz5z009.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/msbasic_mz80a.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/msbasic_rfs40.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/msbasic_rfs80.${SECTORSIZE}.bin"
+#
+addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/basic_sa5510.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/basic_sa6510.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/sa-5510_compiler.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/bas_mod_v374.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/xpatch_5510_v2.2.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/basic_sp5025.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/basic_sp5030.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/basic_sp-5035mc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/solo_basic.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/basic_om-500.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/basic_om-1000.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/basic_om-1001.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/hu-basic_v1.3_k.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/hucompilmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/compiler_a2.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/express_compiler.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/k_a_converter.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/hisoft_pascal4.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/z80assembler2mc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/editor-assembler_sp2202mc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/zen.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/8048_cpu_disas.mc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/6502betrmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/6502demo2mc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/6502demomc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/fortransosz80.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/mz700_forth1.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/kniforth.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/tinylispmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/apollo_word_1.9mmc_.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/hucalc_80a_m.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/send-1.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/apollo_chess_v2a.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/Common/5z009-1b.mzf"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/Common/basic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/Common/cpm22.${SECTORSIZE}.bin"
@@ -201,98 +269,98 @@ addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/Common/testtz.${SECTORSIZE}.bin"
# MZ-80A
#
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80A/sa-6510.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/3-d_maze.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/80a_pencil.a2_c2.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/80a_pencil.a2_s.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/3-d_maze.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/80a_pencil.a2_c2.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/80a_pencil.a2_s.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80A/a-basic_sa-5510.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/adventuregame.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/air_lander.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/alien_attack.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/alien_attack_machinecode.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/alien_eagle.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/alligator.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/adventuregame.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/air_lander.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/alien_attack.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/alien_attack_machinecode.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/alien_eagle.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/alligator.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80A/apollo_chess_v2a.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80A/basic80a.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80A/basic_sa-5510.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80A/basic.sa-5510.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/blocking.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/bouncing_ball.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/breakout.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/breakout_mc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/brickstop.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/blocking.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/bouncing_ball.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/breakout.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/breakout_mc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/brickstop.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80A/bytesaver_sa5510.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/cells_and_serps.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/colony.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/cosmiad-a.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/cosmiad-k.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/cursedchamber.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/dcs_mz80a_append.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/dcs_mz80a_renum.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/defender(2).${SECTORSIZE}.bin"
-addMZFToROMImageList 1 1 0 0 "${MZB_PATH}/MZ-80A/defender.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/defender_bizzarri.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/diamond.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/digger.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/dog_and_flea.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/dog_star_2.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/duck_shoot.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/epidemic.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/escape.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/escape_force.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/flying_mission.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/forest_of_doom.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/fruit_machine.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/galaxy_invaders.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/greedy_gremlins.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/hangman2.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/horse_race2.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/cells_and_serps.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/colony.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/cosmiad-a.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/cosmiad-k.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/cursedchamber.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/dcs_mz80a_append.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/dcs_mz80a_renum.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/defender(2).${SECTORSIZE}.bin"
+addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/MZ-80A/defender.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/defender_bizzarri.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/diamond.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/digger.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/dog_and_flea.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/dog_star_2.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/duck_shoot.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/epidemic.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/escape.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/escape_force.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/flying_mission.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/forest_of_doom.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/fruit_machine.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/galaxy_invaders.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/greedy_gremlins.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/hangman2.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/horse_race2.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80A/hucalc_80a_c2.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80A/hucalc_80a_m.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80A/hucalc_80a_s.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/land_escape.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/laser_defence.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/le_mans.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/ludo.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/lunarlander.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/mad_max_2.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/man-hunt.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/m_c_breakout_2.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/m_c_race_chase.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/minotaur.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/missile_attack.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/munchers_2.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/MZ-80A_galactic.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/navvy.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/new_invaders.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/noughts_crosses.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/numbercrunch.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/obstacles.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/pinball.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/puckman.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/qbert.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/quest.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/race_chase.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/ribbit_v2.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80A/sa-5510_compiler.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80A/sa-5510_kn.comm.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/sargon_2.71.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/scramble_a.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/land_escape.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/laser_defence.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/le_mans.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/ludo.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/lunarlander.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/mad_max_2.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/man-hunt.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/m_c_breakout_2.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/m_c_race_chase.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/minotaur.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/missile_attack.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/munchers_2.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/MZ-80A_galactic.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/navvy.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/new_invaders.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/noughts_crosses.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/numbercrunch.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/obstacles.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/pinball.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/puckman.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/qbert.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/quest.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/race_chase.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/ribbit_v2.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/sa-5510_compiler.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/sa-5510_kn.comm.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/sargon_2.71.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/scramble_a.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80A/send-1.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/serendipity.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/ski_run.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/space_combat.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/space_fighter.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 1 0 0 "${MZB_PATH}/MZ-80A/space_invaders.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/spooks.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/starship_mk2.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/star_wars.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/super_tilt.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/the_lily_pond.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/the_meanies.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/tunnel_run.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/ufo.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/wiggly_worm.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80A/witches.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/serendipity.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/ski_run.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/space_combat.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/space_fighter.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/MZ-80A/space_invaders.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/spooks.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/starship_mk2.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/star_wars.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/super_tilt.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/the_lily_pond.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/the_meanies.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/tunnel_run.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/ufo.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/wiggly_worm.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80A/witches.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80A/xpatch_5510_v2.2.${SECTORSIZE}.bin"
#
# MZ-80K
@@ -305,19 +373,19 @@ addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/6502demomc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/8048_cpu_disas.mc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/a-basic_sa-5510.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/abenteuebasic.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/advance-guardmc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/advance_guard_wics_1983.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/aimemc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/alienmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/advance-guardmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/advance_guard_wics_1983.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/aimemc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/alienmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/andromedamc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/apollo_word_1.9mmc_.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/ascii_gamebasic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/atcf_datamc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/attackerscramblemc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/barcode_reader_1basic.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/barcode_reader_2basic.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/barcode_reader_3basic.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/barcode_reader_4basic.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/attackerscramblemc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/barcode_reader_1basic.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/barcode_reader_2basic.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/barcode_reader_3basic.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/barcode_reader_4basic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/base_ballbasic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/baseballbasic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/basic_sp-5035mc.${SECTORSIZE}.bin"
@@ -334,11 +402,11 @@ addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/bugfire_wics.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/cannon_ball_hudson_soft_1983.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/car-racemc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/clever_cribber.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/code_hu_convertmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/code_hu_convertmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/cosmic_cruiser1mc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/cosmic_cruiser2mc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/cosmic_cruiser3pr1mc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/cowboy_duelmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/cowboy_duelmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/crazy-climber_pt1mc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/crazy-climber_pt2mc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/crystallmc.${SECTORSIZE}.bin"
@@ -349,8 +417,8 @@ addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/defend_the_citybasic.${SECTORSI
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/don_chackbasic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/donkey_derby.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/editor-assembler_sp2202mc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/elektronic_musicmc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/empire_climbermc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/elektronic_musicmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/empire_climbermc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/empire_climber_wics.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/executivebasic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/f-1_racemc.${SECTORSIZE}.bin"
@@ -358,7 +426,7 @@ addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/fdcontromc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/filecardmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/form_map-listmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/formmc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/forth_simulatorbasic.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/forth_simulatorbasic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/fortressmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/galacticabasic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/galaxianbasic.${SECTORSIZE}.bin"
@@ -379,13 +447,13 @@ addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/laser_commandmc.${SECTORSIZE}.b
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/loaderckmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/lunar_lander.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/lunar_landingmc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/machine_language_sp2001mc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/machin_lang.monmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/machine_language_sp2001mc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/machin_lang.monmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/mannenbasic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/master_mindbasic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/mazemanmc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/micropedemc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/minotaur's_cavemc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/micropedemc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/minotaur's_cavemc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/miz-mazebasic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/mogurabasic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/monaco-gpmc.${SECTORSIZE}.bin"
@@ -393,19 +461,19 @@ addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/monitormc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/monitorrmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/munchiesmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/nautic_crisisbasic.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/neptunmc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/notutoribasic.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/neptunmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/notutoribasic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/nsc-rallymc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/one_key_organmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/othellomc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/otori_attackmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/pacmanmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/pascal_sp-6610mc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/phoenixmc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/printmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/phoenixmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/printmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/puckmanmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/racemc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/ralleymc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/ralleymc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/ranger_specialpacmanmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/sargonchessmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/scashbasic.${SECTORSIZE}.bin"
@@ -416,7 +484,7 @@ addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/shooting-ufobasic.${SECTORSIZE}
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/shougibasic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/space_defendermc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/space_drivescramblemc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/space_fighter_sharp_corporation_1979.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/space_fighter_sharp_corporation_1979.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/space_invader1mc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/space_invader.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/space_invader2intro-jpnmc.${SECTORSIZE}.bin"
@@ -433,40 +501,40 @@ addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/space_ruiner_wics_1982.${SECTOR
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/spider_maze.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/startrekbasic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/star_trek_jpnbasic.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/star_trek_sharp_corporation.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/star_warsmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/star_trek_sharp_corporation.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/star_warsmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/star-warsmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/stoneworldbasic.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/sub-monitor_48kmc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/superdefendermc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/super-monitormc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/supertargmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/sub-monitor_48kmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/superdefendermc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/super-monitormc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/supertargmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/superwurmmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/survivemc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/tankwarmc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/tapecopymc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/ten-pin_bowling.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/tapecopymc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/ten-pin_bowling.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/test_match.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/the_munchies_c_smith.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/time_bombbasic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/tinylispmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/tomahawk_hiroshi_masuko.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/tomahawkmc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/toweringmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/tomahawkmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/toweringmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/trapmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/turtlegdemo1mc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/turtlegdemo2mc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/turtle-grafikmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/tycoonbasic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/ubootjagmc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/ufo_cavesmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/ufo_cavesmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/ufo_huntermc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/undameshibasic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/videoflippermc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/view-findermc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/view_finder_wics_1983.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/vikingmc.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-80K/voicemc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/vikingmc.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-80K/voicemc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/war_of_conbasic.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/westernmc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/western_wics_1983.${SECTORSIZE}.bin"
@@ -481,38 +549,38 @@ addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-80K/zeroidmc.${SECTORSIZE}.bin"
#
# MZ-700
#
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-700/1z-013b.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/2z009e.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-700/1z-013b.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/2z009e.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/3-d_car_race.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/3-d_graphikpaket.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/3dmuehle.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/3d-way_out.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/6502_betriebssys.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/6502_betriebssys.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/700_poker.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/ace_racer.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/advancedchess.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/advancedchess.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/airbus_a_310.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/aliens.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/amityville.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/antares.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/anthill_raider.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/apollo.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/apollo.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/apollo2_8-200785.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/apprentissage_nombres.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/asteroid_belt.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/astro-blaster.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/asteroid_belt.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/astro-blaster.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/attack-a-tank.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/auto_run.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/backgammon.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/bas700tutorial.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/basezero.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 1 0 0 "${MZB_PATH}/MZ-700/basic_1z-013b.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/basic_700-vers.4.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/basic_mz-5z008_2.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/basic_mz-5z008.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 1 1 0 "${MZB_PATH}/MZ-700/basic_1z-013b.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/basic_700-vers.4.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/basic_mz-5z008_2.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/basic_mz-5z008.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/battle_game.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/bio-700.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/blastoff.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/blastoff.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/bloktekeningen.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/bomberman_mz700.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/boulder_dash.${SECTORSIZE}.bin"
@@ -524,9 +592,9 @@ addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/catacombes.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/caterpillar.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/centro-anl.disk.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/centro-anleitung.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/circus_star.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/circus_star.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/club_golf.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/c-master.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/c-master.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/codewoord.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/commando_plain.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/competitie.${SECTORSIZE}.bin"
@@ -550,12 +618,12 @@ addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/demo_sin-berg.${SECTORSIZE}.bin
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/descente_aux_enfers.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/destructeurs.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/domination.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/donkey_gorilla.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/donkey_gorilla.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/exploding_atoms.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/express_bas_700.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/f1200.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/fantastic_grove.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/fdcopy.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/fdcopy.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/fd_editor_mz700.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/fighter_command.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/fire!!!.${SECTORSIZE}.bin"
@@ -585,20 +653,20 @@ addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/jungle-jinks.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/kalender.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/kamertje.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/kasboek.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/k-basic_v.5.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/k-basic_v.5.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/kentucky_derby.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/kniforth.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/knight's_castle.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/kniforth.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/knight's_castle.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/knights_ufo.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/kp_dbasic.800b.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/k.s.m._pt._1.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/k.s.m._pt._2.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/k.s.m._pt._3.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-700/kuma_interpr..${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-700/kuma_interpr..${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/kup80z354.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/kup80z355.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/lady-bug.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/land_escape.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/land_escape.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/le_mans.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/lightning_patrol.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/lijnenspel.${SECTORSIZE}.bin"
@@ -627,14 +695,14 @@ addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/mucmac700.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/munroe_manor.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/music.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/musique_suisse.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/mz-1p01.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/mz-2z009.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/mz-1p01.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/mz-2z009.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/mz700bas.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/MZ-700_demo.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/mz700_forth1.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/MZ-700_forth.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/MZ-700_klavier.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/MZ-700_plot.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/mz700_forth1.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/MZ-700_forth.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/MZ-700_klavier.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/MZ-700_plot.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/nakamoto.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/nakamoto_mz700.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/nibbler_part1.${SECTORSIZE}.bin"
@@ -648,42 +716,42 @@ addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/pac-man.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/painful_man.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/panique.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/para_shoot.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 1 0 0 "${MZB_PATH}/MZ-700/pascal_sp-4015.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/pascal_sp-4015_c.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 1 1 0 "${MZB_PATH}/MZ-700/pascal_sp-4015.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/pascal_sp-4015_c.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/patrol_alpha.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/pcgaid.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/pcgaid_europe.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/pcg_basic.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/pcg_basic_mz700.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/pcg_basic.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/pcg_basic_mz700.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/pendu.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/printerfiguren1.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/puissance_4.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/puzzle.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/qd_bas_5z008_mz700.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/qdcopy.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/qd-pascal_c.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/qd_bas_5z008_mz700.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/qdcopy.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/qd-pascal_c.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/quixi.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/realfort.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/realfort.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/rebond.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/rescue_plane.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/reverse.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/rollsroyce1906.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/round_shoot.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/safe-cracker.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/s-basic-cent-2.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/s-basic-comp-cnt.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 1 0 0 "${MZB_PATH}/MZ-700/s-basic-compiler.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/s-basic-compiler-original.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/s-basic-cent-2.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/s-basic-comp-cnt.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 1 1 0 "${MZB_PATH}/MZ-700/s-basic-compiler.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 0 1 0 "${MZB_PATH}/MZ-700/s-basic-compiler-original.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/s-basicode_2.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/schach2_mz700.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/schach700.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 1 0 0 "${MZB_PATH}/MZ-700/send-1.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 1 1 0 "${MZB_PATH}/MZ-700/send-1.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/send-1_mz700.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/sh7ced1.3g.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/shogun.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/sky_chaos.${SECTORSIZE}.bin"
addMZFToROMImageList 0 1 0 0 "${MZB_PATH}/MZ-700/s-master.${SECTORSIZE}.bin"
-addMZFToROMImageList 0 1 0 0 "${MZB_PATH}/MZ-700/snake-and-snake.${SECTORSIZE}.bin"
+addMZFToROMImageList 0 1 1 0 "${MZB_PATH}/MZ-700/snake-and-snake.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/snake_snake_exp1.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/soudard.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/south_pacific.${SECTORSIZE}.bin"
@@ -736,7 +804,7 @@ addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/xanagrams.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/xbc.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/xbc_f_1_02.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/MZ-700/yams.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 0 0 "${MZB_PATH}/MZ-700/z80_desassembleur.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/MZ-700/z80_desassembleur.${SECTORSIZE}.bin"
addMZFToROMImageList 0 1 0 0 "${MZB_PATH}/MZ-700/zen.${SECTORSIZE}.bin"
# Set the pointer which indicates the next ROM to be filled with applications.
@@ -755,11 +823,11 @@ do
# Fill the User ROM as these get listed first.
if (( ${GENROM} == 0 )); then
- cat ${USER_ROM_I} "${f}" > /tmp/tmp.size
+ cat ${USER_ROM_I_ROMDISK} "${f}" > /tmp/tmp.size
FILESIZE=$(stat -c%s "/tmp/tmp.size")
if (( ${FILESIZE} < 524288 )); then
- echo "Adding $f to User I Rom"
- cat "${f}" >> ${USER_ROM_I}
+ echo "Adding $f to ROMDISK User I Rom"
+ cat "${f}" >> ${USER_ROM_I_ROMDISK}
basename "${f}" .${SECTORSIZE}.bin >> ${ROM_LIST_FILE}
else
GENROM=1
@@ -767,11 +835,11 @@ do
fi
if (( ${GENROM} == 1 )); then
- cat ${MONITOR_ROM} "${f}" > /tmp/tmp.size
+ cat ${MONITOR_ROM_ROMDISK} "${f}" > /tmp/tmp.size
FILESIZE=$(stat -c%s "/tmp/tmp.size")
if (( ${FILESIZE} < 524288 )); then
- echo "Adding $f to Monitor Rom"
- cat "${f}" >> ${MONITOR_ROM}
+ echo "Adding $f to ROMDISK Monitor Rom"
+ cat "${f}" >> ${MONITOR_ROM_ROMDISK}
basename "${f}" .${SECTORSIZE}.bin >> ${ROM_LIST_FILE}
else
GENROM=2
@@ -780,11 +848,11 @@ do
# User ROM II and III are optional.
if (( ${GENROM} == 2 )); then
- cat ${USER_ROM_II} "${f}" > /tmp/tmp.size
+ cat ${USER_ROM_II_ROMDISK} "${f}" > /tmp/tmp.size
FILESIZE=$(stat -c%s "/tmp/tmp.size")
if (( ${FILESIZE} < 524288 )); then
- echo "Adding $f to User II Rom"
- cat "${f}" >> ${USER_ROM_II}
+ echo "Adding $f to ROMDISK User II Rom"
+ cat "${f}" >> ${USER_ROM_II_ROMDISK}
basename "${f}" .${SECTORSIZE}.bin >> ${ROM_LIST_FILE}
else
GENROM=3
@@ -792,11 +860,11 @@ do
fi
if (( ${GENROM} == 3 )); then
- cat ${USER_ROM_III} "${f}" > /tmp/tmp.size
+ cat ${USER_ROM_III_ROMDISK} "${f}" > /tmp/tmp.size
FILESIZE=$(stat -c%s "/tmp/tmp.size")
if (( ${FILESIZE} < 524288 )); then
- echo "Adding $f to User III Rom"
- cat "${f}" >> ${USER_ROM_III}
+ echo "Adding $f to ROMDISK User III Rom"
+ cat "${f}" >> ${USER_ROM_III_ROMDISK}
basename "${f}" .${SECTORSIZE}.bin >> ${ROM_LIST_FILE}
else
GENROM=4
@@ -844,34 +912,130 @@ do
fi
done
-echo "----------------------------------------------------------------------------------------------"
-echo "-- ROM Images --"
-echo "-- --"
-if [ -f ${USER_ROM_I} ]; then
- mv ${USER_ROM_I} ${ROM_PATH}/USER_ROM_${SECTORSIZE}.bin
- FILESIZE=$(stat -c%s "${ROM_PATH}USER_ROM_${SECTORSIZE}.bin")
- echo "-- USER ROM I SIZE (${ROM_PATH}USER_ROM_${SECTORSIZE}.bin) = ${FILESIZE} Bytes --"
+# Set the pointer which indicates the next ROM to be filled with applications.
+GENROM=0
+
+# Add files into the picoZ80 ROMDISK Rom set, incrementing to next ROM when previous is full.
+IFS=":"; for f in ${ROM_INCLUDE_PICOZ80}
+do
+ if [ -f ${f} ]; then
+
+ # Identify type of file.
+ ${MZFTOOL} --command=IDENT --mzffile=${f} >/dev/null
+ FILETYPE=$?
+
+ if [ ${FILETYPE} == 1 ]; then
+
+ # Fill the User ROM as these get listed first.
+ if (( ${GENROM} == 0 )); then
+ cat ${USER_ROM_I_PICOZ80} "${f}" > /tmp/tmp.size
+ FILESIZE=$(stat -c%s "/tmp/tmp.size")
+ if (( ${FILESIZE} < 524288 )); then
+ echo "Adding $f to picoZ80 User I Rom"
+ cat "${f}" >> ${USER_ROM_I_PICOZ80}
+ basename "${f}" .${SECTORSIZE}.bin >> ${ROM_LIST_FILE}
+ else
+ GENROM=1
+ fi
+ fi
+
+ if (( ${GENROM} == 1 )); then
+ cat ${MONITOR_ROM_PICOZ80} "${f}" > /tmp/tmp.size
+ FILESIZE=$(stat -c%s "/tmp/tmp.size")
+ if (( ${FILESIZE} < 524288 )); then
+ echo "Adding $f to picoZ80 Monitor Rom"
+ cat "${f}" >> ${MONITOR_ROM_PICOZ80}
+ basename "${f}" .${SECTORSIZE}.bin >> ${ROM_LIST_FILE}
+ else
+ GENROM=2
+ fi
+ fi
+
+ # User ROM II and III are optional.
+ if (( ${GENROM} == 2 )); then
+ cat ${USER_ROM_II_PICOZ80} "${f}" > /tmp/tmp.size
+ FILESIZE=$(stat -c%s "/tmp/tmp.size")
+ if (( ${FILESIZE} < 524288 )); then
+ echo "Adding $f to picoZ80 User II Rom"
+ cat "${f}" >> ${USER_ROM_II_PICOZ80}
+ basename "${f}" .${SECTORSIZE}.bin >> ${ROM_LIST_FILE}
+ else
+ GENROM=3
+ fi
+ fi
+
+ if (( ${GENROM} == 3 )); then
+ cat ${USER_ROM_III_PICOZ80} "${f}" > /tmp/tmp.size
+ FILESIZE=$(stat -c%s "/tmp/tmp.size")
+ if (( ${FILESIZE} < 524288 )); then
+ echo "Adding $f to picoZ80 User III Rom"
+ cat "${f}" >> ${USER_ROM_III_PICOZ80}
+ basename "${f}" .${SECTORSIZE}.bin >> ${ROM_LIST_FILE}
+ else
+ GENROM=4
+ fi
+ fi
+
+ if (( ${GENROM} == 4 )); then
+ echo "Limit reached ROMS full, skipping from ${f}..."
+ break
+ fi
+ else
+ echo "File:${f},Type:${FILETYPE} is not machine code, skipping.."
+ fi
+ else
+ echo "ALERT! File:${f} not found."
+ fi
+done
+
+echo "--------------------------------------------------------------------------------------------------------"
+echo "-- ROM Images --"
+echo "-- --"
+if [ -f ${USER_ROM_I_ROMDISK} ]; then
+ mv ${USER_ROM_I_ROMDISK} ${ROM_PATH}/USER_ROM_ROMDISK_${SECTORSIZE}.bin
+ FILESIZE=$(stat -c%s "${ROM_PATH}USER_ROM_ROMDISK_${SECTORSIZE}.bin")
+ echo "-- ROMDISK USER ROM I SIZE (${ROM_PATH}USER_ROM_ROMDISK_${SECTORSIZE}.bin) = ${FILESIZE} Bytes --"
fi
-if [ -f ${USER_ROM_II} ]; then
- mv ${USER_ROM_II} ${ROM_PATH}/USER_ROM_II_${SECTORSIZE}.bin
- FILESIZE=$(stat -c%s "${ROM_PATH}USER_ROM_II_${SECTORSIZE}.bin")
- echo "-- USER ROM II SIZE (${ROM_PATH}USER_ROM_II_${SECTORSIZE}.bin) = ${FILESIZE} Bytes --"
+if [ -f ${USER_ROM_II_ROMDISK} ]; then
+ mv ${USER_ROM_II_ROMDISK} ${ROM_PATH}/USER_ROM_II_ROMDISK_${SECTORSIZE}.bin
+ FILESIZE=$(stat -c%s "${ROM_PATH}USER_ROM_II_ROMDISK_${SECTORSIZE}.bin")
+ echo "-- ROMDISK USER ROM II SIZE (${ROM_PATH}USER_ROM_II_ROMDISK_${SECTORSIZE}.bin) = ${FILESIZE} Bytes --"
fi
-if [ -f ${USER_ROM_III} ]; then
- mv ${USER_ROM_III} ${ROM_PATH}/USER_ROM_III_${SECTORSIZE}.bin
- FILESIZE=$(stat -c%s "${ROM_PATH}USER_ROM_III_${SECTORSIZE}.bin")
- echo "-- USER ROM III SIZE (${ROM_PATH}USER_ROM_III_${SECTORSIZE}.bin) = ${FILESIZE} Bytes --"
+if [ -f ${USER_ROM_III_ROMDISK} ]; then
+ mv ${USER_ROM_III_ROMDISK} ${ROM_PATH}/USER_ROM_III_ROMDISK_${SECTORSIZE}.bin
+ FILESIZE=$(stat -c%s "${ROM_PATH}USER_ROM_III_ROMDISK_${SECTORSIZE}.bin")
+ echo "-- ROMDISK USER ROM III SIZE (${ROM_PATH}USER_ROM_III_ROMDISK_${SECTORSIZE}.bin) = ${FILESIZE} Bytes --"
fi
-if [ -f ${MONITOR_ROM} ]; then
- mv ${MONITOR_ROM} ${ROM_PATH}/MROM_${SECTORSIZE}.bin
- FILESIZE=$(stat -c%s "${ROM_PATH}/MROM_${SECTORSIZE}.bin")
- echo "-- MROM SIZE (${ROM_PATH}/MROM_${SECTORSIZE}.bin) = ${FILESIZE} Bytes --"
+if [ -f ${MONITOR_ROM_ROMDISK} ]; then
+ mv ${MONITOR_ROM_ROMDISK} ${ROM_PATH}/MROM_ROMDISK_${SECTORSIZE}.bin
+ FILESIZE=$(stat -c%s "${ROM_PATH}/MROM_ROMDISK_${SECTORSIZE}.bin")
+ echo "-- ROMDISK MROM SIZE (${ROM_PATH}/MROM_ROMDISK_${SECTORSIZE}.bin) = ${FILESIZE} Bytes --"
fi
if [ -f ${SFD700_ROM} ]; then
mv ${SFD700_ROM} ${ROM_PATH}/SFD700_${SECTORSIZE}.bin
FILESIZE=$(stat -c%s "${ROM_PATH}/SFD700_${SECTORSIZE}.bin")
- echo "-- SFD700 SIZE (${ROM_PATH}/SFD700_${SECTORSIZE}.bin) = ${FILESIZE} Bytes --"
+ echo "-- SFD700 SIZE (${ROM_PATH}/SFD700_${SECTORSIZE}.bin) = ${FILESIZE} Bytes --"
fi
-echo "----------------------------------------------------------------------------------------------"
+if [ -f ${USER_ROM_I_PICOZ80} ]; then
+ mv ${USER_ROM_I_PICOZ80} ${ROM_PATH}/USER_ROM_PICOZ80_${SECTORSIZE}.bin
+ FILESIZE=$(stat -c%s "${ROM_PATH}USER_ROM_PICOZ80_${SECTORSIZE}.bin")
+ echo "-- PICOZ80 USER ROM I SIZE (${ROM_PATH}USER_ROM_PICOZ80_${SECTORSIZE}.bin) = ${FILESIZE} Bytes --"
+fi
+if [ -f ${USER_ROM_II_PICOZ80} ]; then
+ mv ${USER_ROM_II_PICOZ80} ${ROM_PATH}/USER_ROM_II_PICOZ80_${SECTORSIZE}.bin
+ FILESIZE=$(stat -c%s "${ROM_PATH}USER_ROM_II_PICOZ80_${SECTORSIZE}.bin")
+ echo "-- PICOZ80 USER ROM II SIZE (${ROM_PATH}USER_ROM_II_PICOZ80_${SECTORSIZE}.bin) = ${FILESIZE} Bytes --"
+fi
+if [ -f ${USER_ROM_III_PICOZ80} ]; then
+ mv ${USER_ROM_III_PICOZ80} ${ROM_PATH}/USER_ROM_III_PICOZ80_${SECTORSIZE}.bin
+ FILESIZE=$(stat -c%s "${ROM_PATH}USER_ROM_III_PICOZ80_${SECTORSIZE}.bin")
+ echo "-- PICOZ80 USER ROM III SIZE (${ROM_PATH}USER_ROM_III_PICOZ80_${SECTORSIZE}.bin) = ${FILESIZE} Bytes --"
+fi
+if [ -f ${MONITOR_ROM_PICOZ80} ]; then
+ mv ${MONITOR_ROM_PICOZ80} ${ROM_PATH}/MROM_PICOZ80_${SECTORSIZE}.bin
+ FILESIZE=$(stat -c%s "${ROM_PATH}/MROM_PICOZ80_${SECTORSIZE}.bin")
+ echo "-- PICOZ80 MROM SIZE (${ROM_PATH}/MROM_PICOZ80_${SECTORSIZE}.bin) = ${FILESIZE} Bytes --"
+fi
+echo "--------------------------------------------------------------------------------------------------------"
echo ""
exit 0