TITD/game_loader_dasm.a80

6455 lines
182 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; z80dasm 1.2.0
; command line: z80dasm -a -l -u -t -g 0x8000 -o /Users/tolik/Documents/SP_Projects/ASM/GIT/TITD/Build/game_loader_dasm.a80 /Users/tolik/Documents/SP_Projects/ASM/GIT/TITD/Build/bin/game_loader.bin
;---------[All shared includes]---------
INCLUDE 'Shared_Includes/constants/SP2000.inc' ; ª®­áâ ­âë
INCLUDE 'Shared_Includes/constants/BIOS_EQU.inc'
INCLUDE 'Shared_Includes/constants/dss_equ.inc'
INCLUDE 'Shared_Includes/macroses/macros.z80'
;---------------------------------------
Loader_length EQU 0
code_addr EQU #8000
;program_start EQU code_addr
program_start EQU NEW_CODE_START
stack_point EQU #C000
.size EQU 128
;---------------------------------------
NEW_BUFFERS: ; For Zero page
.Palette: EQU #C000
.Palette.Size EQU 1024*8
.TXT_Screen EQU .Palette + .Palette.Size
.TXT_Screen.Size EQU 80*32*2
.TMP EQU #D000
DSS_MIN_VERS:
.vers EQU 1
.modf EQU 70
.build EQU 998
GAME_NEED_MEM_PAGES EQU #C6
PAGES_BUFFER EQU #BE00
.size EQU #100
;---------------------------------------
EXE_ORG #8000
JP l8205h ;8000 c3 05 82 . . .
JP l812ah ;8003 c3 2a 81 . * .
JP l8130h ;8006 c3 30 81 . 0 .
JP l8137h ;8009 c3 37 81 . 7 .
JP l8144h ;800c c3 44 81 . D .
JP l8150h ;800f c3 50 81 . P .
JP l816ch ;8012 c3 6c 81 . l .
DB #f4, 00, 00, 00, #f4, #00, #00, #80
l801dh: DB #20, #00, #00, #00 ;801d 20 00 .
l8021h: DB #24, #00, #00, #0f, #24, #00, #00, #0f ;8021
DB #24, #00, #00, #0f, #24, #00, #00, #0f
DB #24, #00, #00, #0f, #24, #00, #00, #0f
DB #24, #00, #00, #0f, #24, #00, #00, #0f
DB #24, #00, #00, #0f, #24, #00, #00, #0f
DB #24, #00, #00, #0f, #24, #00, #00, #0f
DB #24, #00, #00, #0f, #24, #00, #00, #0f
DB #24, #00, #00, #0f, #24, #00, #00, #0f
DB #24, #00, #00, #0f, #24, #00, #00, #0f
DB #24, #00, #00, #0f, #24, #00, #00, #0f
DB #24, #00, #00, #0f, #24, #00, #00, #0f
DB #24, #00, #00, #0f, #24, #00, #00, #0f
DB #24, #00, #00, #0f, #24, #00, #00, #0f
DB #24, #00, #00, #0f, #24, #00, #00, #0f
DB #24, #00, #00, #0f, #24, #00, #00, #0f
DB #24, #00, #00, #0f, #24, #00, #00, #0f
;
DB #e4, #00, #00, #00, #e4, #00, #00, #00
DB #e4, #00, #00, #00, #e4, #00, #00, #00
DB #e4, #00, #00, #00, #e4, #00, #00, #00
DB #e4, #00, #00, #00, #e4, #00, #00, #00
DB #e4, #00, #00, #00, #e4, #00, #00, #00
DB #e4, #00, #00, #00, #e4, #00, #00, #00
DB #e4, #00, #00, #00, #e4, #00, #00, #00
DB #e4, #00, #00, #00, #e4, #00, #00, #00
DB #e4, #00, #00, #00, #e4, #00, #00, #00
DB #e4, #00, #00, #00, #e4, #00, #00, #00
DB #e4, #00, #00, #00, #e4, #00, #00, #00
DB #e4, #00, #00, #00, #e4, #00, #00, #00
DB #e4, #00, #00, #00, #e4, #00, #00, #00
DB #e4, #00, #00, #00, #e4, #00, #00, #00
DB #e4, #00, #00, #00, #e4, #00, #00, #00
DB #e4, #00, #00, #00, #e4, #00, #00, #00
JP l9691h ;8121 c3 91 96 . . .
JP l9686h ;8124 c3 86 96 . . .
JP l96a2h ;8127 c3 a2 96 . . .
l812ah:
CALL FAST_RAM_FN.OFF_EI ;812a cd 77 a2 . w .
JP l86b8h ;812d c3 b8 86 . . .
l8130h:
CALL FAST_RAM_FN.OFF_EI ;8130 cd 77 a2 . w .
EI ;8133 fb .
JP l8995h ;8134 c3 95 89 . . .
l8137h:
CALL FAST_RAM_FN.OFF_EI ;8137 cd 77 a2 . w .
EI ;813a fb .
LD SP,0c000h ;813b 31 00 c0 1 . .
CALL sub_8c46h ;813e cd 46 8c . F .
JP l8dd7h ;8141 c3 d7 8d . . .
l8144h:
CALL FAST_RAM_FN.OFF_DI ;8144 cd 7c a2 . | .
LD A,001h ;8147 3e 01 > .
LD (sub_875eh.patch),A ;8149 32 5f 87 2 _ .
EI ;814c fb .
JP l86b8h ;814d c3 b8 86 . . .
l8150h:
PUSH AF ;8150 f5 .
CALL FAST_RAM_FN.OFF_DI ;8151 cd 7c a2 . | .
POP AF ;8154 f1 .
LD (0927eh),A ;8155 32 7e 92 2 ~ .
PUSH AF ;8158 f5 .
CALL FAST_RAM_FN.ON_DI ;8159 cd 73 a2 . s .
POP AF ;815c f1 .
RET ;815d c9 .
l815eh:
DI ;815e f3 .
PUSH AF ;815f f5 .
CALL FAST_RAM_FN.OFF_DI ;8160 cd 7c a2 . | .
CALL sub_8173h ;8163 cd 73 81 . s .
CALL FAST_RAM_FN.ON_DI ;8166 cd 73 a2 . s .
POP AF ;8169 f1 .
EI ;816a fb .
RET ;816b c9 .
l816ch:
RET ;816c c9 .
l816dh:
DI ;816d f3 .
CALL sub_8173h ;816e cd 73 81 . s .
EI ;8171 fb .
RET ;8172 c9 .
sub_8173h:
PUSH AF ;8173 f5 .
PUSH BC ;8174 c5 .
PUSH DE ;8175 d5 .
PUSH HL ;8176 e5 .
PUSH IX ;8177 dd e5 . .
IN A,(0feh) ;8179 db fe . .
BIT 5,A ;817b cb 6f . o
LD A,000h ;817d 3e 00 > .
JR Z,l8183h ;817f 28 02 ( .
LD A,001h ;8181 3e 01 > .
l8183h: LD (la280h),A ;8183 32 80 a2 2 . .
.set_byte+1: LD A,000h ;8186 3e 00 > .
OR A ;8188 b7 .
JR Z,l81dch ;8189 28 51 ( Q
IN A,(PORT_Y) ;818b db 89 . .
PUSH AF ;818d f5 .
LD A,0c1h ;818e 3e c1 > .
OUT (PORT_Y),A ;8190 d3 89 . .
IN A,(SLOT1) ;8192 db a2 . .
PUSH AF ;8194 f5 .
IN A,(SLOT3) ;8195 db e2 . .
PUSH AF ;8197 f5 .
CALL FAST_RAM_FN.ON_DI ;8198 cd 73 a2 . s .
CALL 00175h ;819b cd 75 01 . u .
JR NZ,l81d0h ;819e 20 30 0
.set_byte2+1: LD A,000h ;81a0 3e 00 > .
CPL ;81a2 2f /
LD (l8183h.set_byte2),A ;81a3 32 a1 81 2 . .
OR A ;81a6 b7 .
CALL Z,00172h ;81a7 cc 72 01 . r .
CALL NZ,0016fh ;81aa c4 6f 01 . o .
JR NZ,l81d0h ;81ad 20 21 !
EX AF,AF' ;81af 08 .
PUSH AF ;81b0 f5 .
EXX ;81b1 d9 .
PUSH HL ;81b2 e5 .
PUSH BC ;81b3 c5 .
PUSH DE ;81b4 d5 .
PUSH IY ;81b5 fd e5 . .
LD A,(l8183h.set_byte) ;81b7 3a 87 81 : . .
DEC A ;81ba 3d =
JR Z,l81c2h ;81bb 28 05 ( .
CALL 00184h ;81bd cd 84 01 . . .
JR l81c8h ;81c0 18 06 . .
l81c2h:
CALL 00160h ;81c2 cd 60 01 . ` .
CALL 00163h ;81c5 cd 63 01 . c .
l81c8h:
POP IY ;81c8 fd e1 . .
POP DE ;81ca d1 .
POP BC ;81cb c1 .
POP HL ;81cc e1 .
EXX ;81cd d9 .
POP AF ;81ce f1 .
EX AF,AF' ;81cf 08 .
l81d0h:
CALL FAST_RAM_FN.OFF_DI ;81d0 cd 7c a2 . | .
POP AF ;81d3 f1 .
OUT (SLOT3),A ;81d4 d3 e2 . .
POP AF ;81d6 f1 .
OUT (SLOT1),A ;81d7 d3 a2 . .
POP AF ;81d9 f1 .
OUT (PORT_Y),A ;81da d3 89 . .
l81dch:
IN A,(SLOT3) ;81dc db e2 . .
LD (081f7h),A ;81de 32 f7 81 2 . .
LD A,(0be7bh) ;81e1 3a 7b be : { .
OUT (SLOT3),A ;81e4 d3 e2 . .
IN A,(PORT_Y) ;81e6 db 89 . .
LD (081fbh),A ;81e8 32 fb 81 2 . .
LD A,0c1h ;81eb 3e c1 > .
OUT (PORT_Y),A ;81ed d3 89 . .
CALL 0c003h ;81ef cd 03 c0 . . .
LD A,(0c006h) ;81f2 3a 06 c0 : . .
OR A ;81f5 b7 .
LD A,000h ;81f6 3e 00 > .
OUT (SLOT3),A ;81f8 d3 e2 . .
LD A,000h ;81fa 3e 00 > .
OUT (PORT_Y),A ;81fc d3 89 . .
POP IX ;81fe dd e1 . .
POP HL ;8200 e1 .
POP DE ;8201 d1 .
POP BC ;8202 c1 .
POP AF ;8203 f1 .
RET ;8204 c9 .
; [ ] FIX 19/10/2024 - ¯à®æ¥¤ãà  ­¥ ¢ë§ë¢ ¥âáï
l8205h: LD A,GAME_NEED_MEM_PAGES ;8205 3e c6 > .
CALL GET_MEM_AND_PAGES ;8207 cd b7 a1 . . .
CALL GENERATE_PALETTE ;820a cd 26 93 . & .
DI ;820d f3 .
LD A,SYS_PORT.CNF_3 ;820e 3e 1c > .
OUT (SYS_PORT.RAM),A ;8210 d3 3c . <
LD A,Z84.REG.Misc_Ctrl ;8212 3e 03 > .
OUT (Z84.SYS.Control),A ;8214 d3 ee . .
LD A,%0000'0011 ; CS1/CS0 enabled
OUT (Z84.SYS.Data),A ;8218 d3 ef . .
IN A,(SLOT1) ;821a db a2 . .
LD (.mem_pg),A ;821c 32 30 82 2 0 .
CALL GET_RESOURCE_TITD.ACX ;821f cd e8 82 . . .
LD DE,RESET_HANDLER_BEGIN ;8222 11 4f 83 . O .
CALL SETUP_RESET_HANDLER ;8225 cd 1d 83 . . .
IN A,(FastRAM.ON) ;8228 db fb . .
CALL INSTALL_TITD.ACX ;822a cd 54 82 . T .
IN A,(FastRAM.OFF) ;822d db 7b . {
.mem_pg+1: LD A,5 ;822f 3e 05 > .
OUT (SLOT1),A ;8231 d3 a2 . .
;
HARD_RESET: LD A,ACEX.Config_PG.Sp2000_AcexSetUpNow
LD BC,BIOS.RST_CONF.CUSTOM
RST ToBIOS
;
DI
CALL PREPARE_TO_EXIT_NEW
;
.loop_exit: LD BC,Dss.Exit
RST ToDSS
DI
JR .loop_exit
;
BLOCK #8252-$,0
;IN A,(SLOT1) ;8234 db a2 . .
;PUSH AF ;8236 f5 .
;LD A,DCP_PAGE ;8237 3e 40 > @
;OUT (SLOT1),A ;8239 d3 a2 . .
;LD A,ACEX.RESET ;823b 3e 2e > .
;LD (#4400),A ;823d 32 00 44 2 . D
;LD (#4600),A ;8240 32 00 46 2 . F
;POP AF ;8243 f1 .
;OUT (SLOT1),A ;8244 d3 a2 . .
.loop: ;LD BC,#0100 ;8246 01 00 01 . . .
;OUT (C),C ;8249 ed 49 . I
;LD BC,0 ;824b 01 00 00 . . .
;OUT (C),C ;824e ed 49 . I
;JR .loop ;8250 18 f4 . .
DI ;8252 f3 .
HALT ;8253 76 v
;
; NEW_CONF_SETUP:
; ; HL = TITD_ACX.NAME
; LD (OPEN_PAK_FILE.name),HL
; CALL OPEN_PAK_FILE ; patched
; ;
; XOR A
; LD HL,(PAK_FILE_FM.Size_HL)
; LD DE,(PAK_FILE_FM.Size_IX)
; ;
; .loop: EX AF,AF'
; LD A,H
; OR L
; OR D
; OR E
; JR Z,.exit2Loop
; EX AF,AF'
; ;
; PUSH HL
; PUSH DE
; PUSH AF
; ;
; CALL SET_PAGE_SLOT3
; LD A,(PAK_FILE_FM)
; LD HL,#C000
; LD DE,#4000
; LD C,Dss.Read
; RST ToDSS
; JP C,ERROR_EXIT
; ;
; POP AF
; POP DE
; POP HL
; INC A
; CP GAME_NEED_MEM_PAGES
; JP NC,ERROR_EXIT
; ;
; CCF
; LD BC,#4000
; EX DE,HL
; SBC HL,BC
; EX DE,HL
; JR Z,.loop
; LD B,C
; SBC HL,BC
; JR NC,.loop
; .exitLoop: ; ¢ë室, ¥á«¨ à §¬¥à ª®­äë ­¥ ªà â¥­ à §¬¥àã áâà ­¨æë
; EX DE,HL
; .loop2: LD (HL),#FF
; INC HL
; BIT 7,H
; JR NZ,.loop2
; .exit2Loop: ; ¢ë室, ¥á«¨ à §¬¥à ª®­äë ªà â¥­ à §¬¥àã áâà ­¨æë
; LD HL,PAK_FILE_NAME
; LD (OPEN_PAK_FILE.name),HL
; ;
; LD HL,PAGES_BUFFER
; PUSH HL
; LD A,(CURRENT_PAGE.SLOT3)
; INC A
; LD L,A
; LD A,(HL)
; LD C,BIOS.FreeMem
; RST ToBIOS
; ;JP C,SetUp_RESET_EXIT
; ; ¯à¥¤¯®« £ ¥¬, çâ® ­¥â ®è¨¡ª¨ ¨ A=0
; POP HL
; LD A,(HL)
; LD B,A
; LD A,ACEX.Config_PG.Sp2000
; LD C,BIOS.RST_CONF.CUSTOM
; RST ToBIOS
; ;
; DI
; LD A,SYS_PORT.CNF_0
; OUT (SYS_PORT.RAM),A
; ;
; LD A,(PAGES_BUFFER)
; LD C,BIOS.FreeMem
; RST ToBIOS
; ;
; ; restore HOLD port
; LD D,CMOS_CELL.ScreenPosition
; LD C,BIOS.CMOS_RD
; RST ToBIOS
; JR C,.run_game
; ;
; LD B,A
; LD A,ACEX.HOLD
; LD C,BIOS.SET_PORTS
; RST ToBIOS
; .run_game: JP l8423h.cont
; TITD_ACX:
; .TYPE: DZ '.ACX'
; .NAME: BLOCK 9,0
;
INSTALL_TITD.ACX:
DI ;8254 f3 .
LD BC,#1FFD ;8255 01 fd 1f . . .
XOR A ;8258 af .
OUT (C),A ;8259 ed 79 . y
LD A,SYS_PORT.CNF_0 ;825b 3e 04 > .
OUT (SYS_PORT.ROM),A ;825d d3 7c . |
LD A,0 ;825f 3e 00 > .
OUT (FastRAM.SLOT0),A ;8261 d3 5c . \
LD A,#1C ;8263 3e 1c > . ;!HARDCODE
OUT (SLOT1),A ;8265 d3 a2 . .
LD HL,#4100 ;8267 21 00 41 ! . A
LD DE,#1000 ;826a 11 00 10 . . .
LD BC,#3000 ;826d 01 00 30 . . 0
LDIR ;8270 ed b0 . .
LD A,1 ;8272 3e 01 > .
OUT (FastRAM.SLOT0),A ;8274 d3 5c . \
LD DE,0 ;8276 11 00 00 . . .
LD BC,#0F00 ;8279 01 00 0f . . .
LDIR ;827c ed b0 . .
IN A,(SLOT1) ;827e db a2 . .
INC A ;8280 3c <
OUT (SLOT1),A ;8281 d3 a2 . .
LD HL,#4000 ;8283 21 00 40 ! . @
LD BC,#3100 ;8286 01 00 31 . . 1
LDIR ;8289 ed b0 . .
LD A,2 ;828b 3e 02 > .
OUT (FastRAM.SLOT0),A ;828d d3 5c . \
LD DE,0 ;828f 11 00 00 . . .
LD BC,#0F00 ;8292 01 00 0f . . .
LDIR ;8295 ed b0 . .
IN A,(SLOT1) ;8297 db a2 . .
INC A ;8299 3c <
OUT (SLOT1),A ;829a d3 a2 . .
LD HL,#4000 ;829c 21 00 40 ! . @
LD BC,#3100 ;829f 01 00 31 . . 1
LDIR ;82a2 ed b0 . .
LD A,3 ;82a4 3e 03 > .
OUT (FastRAM.SLOT0),A ;82a6 d3 5c . \
LD DE,0 ;82a8 11 00 00 . . .
LD BC,#0F00 ;82ab 01 00 0f . . .
LDIR ;82ae ed b0 . .
IN A,(SLOT1) ;82b0 db a2 . .
INC A ;82b2 3c <
OUT (SLOT1),A ;82b3 d3 a2 . .
LD HL,#4000 ;82b5 21 00 40 ! . @
LD BC,#3100 ;82b8 01 00 31 . . 1
LDIR ;82bb ed b0 . .
LD HL,.reload_str ;82bd 21 d8 82 ! . .
LD DE,#3EF0 ;82c0 11 f0 3e . . >
LD BC,.reload_str.size ;82c3 01 10 00 . . .
LDIR ;82c6 ed b0 . .
LD A,#FF ;82c8 3e ff > .
LD (ACEX.LOADER.Reload_Flag_Address - #C000),A ;82ca 32 e0 3e 2 . >
LD A,(.IM_FLAG) ;82cd 3a d7 82 : . .
CP 'M' ;82d0 fe 4d . M ;!FIXIT error
RET NZ ;82d2 c0 .
LD (ACEX.LOADER.Reload_Flag_Address - #C000),A ;82d3 32 e0 3e 2 . >
RET ;82d6 c9 .
.IM_FLAG: DB 0 ;82d7 00 .
.reload_str: DB ACEX.RELOAD_STRING ;82d8
.reload_str.size: EQU $-.reload_str
; BLOCK #82e8-$,0
GET_RESOURCE_TITD.ACX:
;!HARDCODE
LD A,#1C ;82e8 3e 1c > .
LD (PAGES_BUFFER),A ;82ea 32 00 be 2 . .
INC A ;82ed 3c <
LD (PAGES_BUFFER + 1),A ;82ee 32 01 be 2 . .
INC A ;82f1 3c <
LD (PAGES_BUFFER + 2),A ;82f2 32 02 be 2 . .
INC A ;82f5 3c <
LD (PAGES_BUFFER + 3),A ;82f6 32 03 be 2 . .
;
CALL OPEN_PAK_FILE ;82f9 cd 4f a9 . O .
LD B,0 ;82fc 06 00 . .
LD C,4 ;82fe 0e 04 . .
LD HL,#2569 ;8300 21 69 25 ! i %
LD A,1 ;8303 3e 01 > .
CALL UNPACK_RESOURCE ;8305 cd 8e a9 . . .
CALL FREE_MEM_ ;8308 cd ce a1 . . .
DI ;830b f3 .
RET ;830c c9 .
; UNUSED?
GAME_CONF_NAME: DB 'GAME_00.ACX' ;830d
DB 0 ;8318
DB 0 ;8319
DB 0 ;831a
DB 0 ;831b
DB 0 ;831c
SETUP_RESET_HANDLER:
; [ ] FIX zx pages 20/10/2024
DI ;831d f3 .
LD A,(RESET_HANDLER_BEGIN.mem_pg)
OUT (SLOT3),A
RET
NOP
;IN A,(SLOT3) ;831e db e2 . .
;LD (RESET_HANDLER_BEGIN.mem_pg),A ;8320 32 5d 83 2 ] .
;LD A,Spec_Page ;8323 3e 41 > A
OUT (SLOT3),A ;8325 d3 e2 . .
LD (Spec_Page.RET_addr),DE ;8327 ed 53 f4 ff . S . .
LD A,'Z' ;832b 3e 5a > Z
LD (Spec_Page.flag_Z),A ;832d 32 fe ff 2 . .
LD A,'X' ;8330 3e 58 > X
LD (Spec_Page.flag_X),A ;8332 32 ff ff 2 . .
IN A,(SLOT0) ;8335 db 82 . .
LD (Spec_Page.page_0),A ;8337 32 f0 ff 2 . .
IN A,(SLOT1) ;833a db a2 . .
LD (Spec_Page.page_1),A ;833c 32 f1 ff 2 . .
IN A,(SLOT2) ;833f db c2 . .
LD (Spec_Page.page_2),A ;8341 32 f2 ff 2 . .
IN A,(SLOT3) ;8344 db e2 . .
LD (Spec_Page.page_3),A ;8346 32 f3 ff 2 . .
LD A,(RESET_HANDLER_BEGIN.mem_pg) ;8349 3a 5d 83 : ] .
OUT (SLOT3),A ;834c d3 e2 . .
RET ;834e c9 .
;
BLOCK #834F-$,0 ; shortblock-ok
RESET_HANDLER_BEGIN:
DI ;834f f3 .
LD SP,#bff0 ;8350 31 f0 bf 1 . .
LD A,004h ;8353 3e 04 > .
OUT (SYS_PORT.RAM),A ;8355 d3 3c . <
LD A,(Spec_Page.page_0) ;8357 3a f0 ff : . .
OUT (SLOT0),A ;835a d3 82 . .
.mem_pg+1: LD A,Spec_Page ;835c 3e 41 > A
OUT (SLOT3),A ;835e d3 e2 . .
JP l8415h ;8360 c3 15 84 . . .
SetUp_RESET_EXIT:
LD DE,RESET_HANDLER_EXIT ;8363 11 df 83 . . .
CALL SETUP_RESET_HANDLER ;8366 cd 1d 83 . . .
JP HARD_RESET ;8369 c3 33 82 . 3 .
CALL FAST_RAM_FN.OFF_DI ;836c cd 7c a2 . | .
CALL GENERATE_PALETTE ;836f cd 26 93 . & .
LD C,BIOS.RST_CONF.SP97_2 ;8372 0e f1 . .
RST ToBIOS ;8374 cf .
RET ;8375 c9 .
GOTO_ERROR_EXIT:
LD SP,#C000 ;8376 31 00 c0 1 . .
LD BC,Dss.Exit ;8379 01 41 00 . A .
RST ToDSS ;837c d7 .
JR SetUp_RESET_EXIT ;837d 18 e4 . .
sub_837fh: LD HL,STRING_SPECIAL_no_mem;837f 21 a4 83 ! . .
LD C,Dss.PChars ;8382 0e 5c . \
RST ToDSS ;8384 d7 .
RET ;8385 c9 .
RESTORE_IM1_DSS:
DI ;8386 f3 .
LD A,#C3 ;8387 3e 00 > .
LD (#38),A ;8389 32 38 00 2 8 .
LD HL,#003B ;838c 21 00 00 ! . .
LD (#39),HL ;838f 32 39 00 2 9 .
RET ;8392 c9 .
l8393h: CALL sub_837fh ;8393 cd 7f 83 . . .
JR GOTO_ERROR_EXIT ;8396 18 de . .
l8398h: JP SetUp_RESET_EXIT ;8398 c3 63 83 . c .
l839bh: CALL FAST_RAM_FN.OFF_DI ;839b cd 7c a2 . | .
JP SetUp_RESET_EXIT ;839e c3 63 83 . c .
l83a1h:
.patch+1: JP l8393h ;83a1 c3 93 83 . . .
STRING_SPECIAL_no_mem: ;83a4
DZ "\r\n[Thunder In The Deep Special Message] : Out Of Memory!\r\n"
RESET_HANDLER_EXIT:
DI ;83df f3 .
LD SP,#bff0 ;83e0 31 f0 bf 1 . .
LD A,SYS_PORT.CNF_0 ;83e3 3e 04 > .
OUT (SYS_PORT.RAM),A ;83e5 d3 3c . <
LD A,(Spec_Page.page_0) ;83e7 3a f0 ff : . .
OUT (SLOT0),A ;83ea d3 82 . .
LD A,(RESET_HANDLER_BEGIN.mem_pg) ;83ec 3a 5d 83 : ] .
OUT (SLOT3),A ;83ef d3 e2 . .
LD C,Dss.Exit ;83f1 0e 41 . A
LD B,0 ;83f3 06 00 . .
RST ToDSS ;83f5 d7 .
RET ;83f6 c9 .
sub_83f7h:
IN A,(PORT_Y) ;83f7 db 89 . .
l83f9h:
PUSH AF ;83f9 f5 .
XOR A ;83fa af .
l83fbh:
OUT (PORT_Y),A ;83fb d3 89 . .
LD HL,0c303h ;83fd 21 03 c3 ! . .
l8400h:
DI ;8400 f3 .
LD D,D ;8401 52 R
LD A,000h ;8402 3e 00 > .
LD E,E ;8404 5b [
LD (HL),A ;8405 77 w
LD B,B ;8406 40 @
l8407h:
EI ;8407 fb .
INC L ;8408 2c ,
INC L ;8409 2c ,
INC L ;840a 2c ,
INC L ;840b 2c ,
LD A,L ;840c 7d }
CP 0b3h ;840d fe b3 . .
l840fh:
JR NZ,l8400h ;840f 20 ef .
l8411h:
POP AF ;8411 f1 .
OUT (PORT_Y),A ;8412 d3 89 . .
RET ;8414 c9 .
l8415h: ; !TODO setup port HOLD
DI ;8415 f3 .
IN A,(SLOT3) ;8416 db e2 . .
PUSH AF ;8418 f5 .
LD A,DCP_PAGE ;8419 3e 40 > @
OUT (SLOT3),A ;841b d3 e2 . .
LD A,(#c400) ;841d 3a 00 c4 : . .
PUSH AF ;8420 f5 .
LD A,ACEX.HOLD ;8421 3e cb > .
l8423h:
LD (#c400),A ;8423 32 00 c4 2 . .
LD A,#95 ;8426 3e 95 > .
LD BC,00000h ;8428 01 00 00 . . .
OUT (C),A ;842b ed 79 . y
POP AF ;842d f1 .
LD (#c400),A ;842e 32 00 c4 2 . .
POP AF ;8431 f1 .
OUT (SLOT3),A ;8432 d3 e2 . .
.cont: LD A,#c1 ;8434 3e c1 > .
OUT (PORT_Y),A ;8436 d3 89 . .
LD SP,#c000 ;8438 31 00 c0 1 . .
XOR A ;843b af .
OUT (0feh),A ;843c d3 fe . .
LD A,(00038h) ;843e 3a 38 00 : 8 .
LD (08388h),A ;8441 32 88 83 2 . .
LD HL,(00039h) ;8444 2a 39 00 * 9 .
LD (0838dh),HL ;8447 22 8d 83 " . .
EI ;844a fb .
LD HL,l8398h ;844b 21 98 83 ! . .
LD (l83a1h.patch),HL ;844e 22 a2 83 " . .
LD A,GAME_NEED_MEM_PAGES ;8451 3e c6 > .
CALL GET_MEM_AND_PAGES ;8453 cd b7 a1 . . .
IN A,(SLOT0) ;8456 db 82 . .
LD (la281h),A ;8458 32 81 a2 2 . .
CALL sub_90d8h ;845b cd d8 90 . . .
CALL sub_9465h ;845e cd 65 94 . e .
CALL sub_ab8ch ;8461 cd 8c ab . . .
CALL sub_a884h ;8464 cd 84 a8 . . .
LD A,0c1h ;8467 3e c1 > .
OUT (PORT_Y),A ;8469 d3 89 . .
CALL FAST_RAM_FN.OFF_DI ;846b cd 7c a2 . | .
CALL sub_8c9dh ;846e cd 9d 8c . . .
DI ;8471 f3 .
LD A,(0be7bh) ;8472 3a 7b be : { .
OUT (SLOT3),A ;8475 d3 e2 . .
XOR A ;8477 af .
CALL 0c000h ;8478 cd 00 c0 . . .
LD A,001h ;847b 3e 01 > .
CALL 0c000h ;847d cd 00 c0 . . .
LD A,0c3h ;8480 3e c3 > .
LD (00038h),A ;8482 32 38 00 2 8 .
LD HL,l816dh ;8485 21 6d 81 ! m .
LD (00039h),HL ;8488 22 39 00 " 9 .
XOR A ;848b af .
LD (l8183h.set_byte),A ;848c 32 87 81 2 . .
LD (l8183h.set_byte2),A ;848f 32 a1 81 2 . .
EI ;8492 fb .
CALL FAST_RAM_FN.ON_DI ;8493 cd 73 a2 . s .
LD HL,PAGES_BUFFER ;8496 21 00 be ! . .
LD DE,03e00h ;8499 11 00 3e . . >
LD BC,00100h ;849c 01 00 01 . . .
LDIR ;849f ed b0 . .
CALL 0015ah ;84a1 cd 5a 01 . Z .
CALL 00151h ;84a4 cd 51 01 . Q .
LD A,01bh ;84a7 3e 1b > .
LD HL,00000h ;84a9 21 00 00 ! . .
DI ;84ac f3 .
CALL 0014eh ;84ad cd 4e 01 . N .
CALL FAST_RAM_FN.OFF_DI ;84b0 cd 7c a2 . | .
CALL sub_9104h ;84b3 cd 04 91 . . .
CALL sub_916dh ;84b6 cd 6d 91 . m .
CALL FAST_RAM_FN.ON_DI ;84b9 cd 73 a2 . s .
LD DE,03500h ;84bc 11 00 35 . . 5
EXX ;84bf d9 .
LD DE,0ae00h ;84c0 11 00 ae . . .
LD HL,00000h ;84c3 21 00 00 ! . .
LD BC,00025h ;84c6 01 25 00 . % .
LD IXL,064h ;84c9 dd 2e 64 . . d
l84cch:
LD A,L ;84cc 7d }
LD (DE),A ;84cd 12 .
INC DE ;84ce 13 .
EXX ;84cf d9 .
LD (DE),A ;84d0 12 .
INC DE ;84d1 13 .
EXX ;84d2 d9 .
LD A,H ;84d3 7c |
LD (DE),A ;84d4 12 .
INC DE ;84d5 13 .
EXX ;84d6 d9 .
LD (DE),A ;84d7 12 .
INC DE ;84d8 13 .
EXX ;84d9 d9 .
ADD HL,BC ;84da 09 .
DEC IXL ;84db dd 2d . -
JR NZ,l84cch ;84dd 20 ed .
LD HL,03c05h ;84df 21 05 3c ! . <
LD DE,0000dh ;84e2 11 0d 00 . . .
LD B,008h ;84e5 06 08 . .
XOR A ;84e7 af .
l84e8h:
LD (HL),A ;84e8 77 w
ADD HL,DE ;84e9 19 .
ADD A,010h ;84ea c6 10 . .
DJNZ l84e8h ;84ec 10 fa . .
LD A,00bh ;84ee 3e 0b > .
LD (03f1dh),A ;84f0 32 1d 3f 2 . ?
LD A,070h ;84f3 3e 70 > p
LD (03f1eh),A ;84f5 32 1e 3f 2 . ?
LD A,0c3h ;84f8 3e c3 > .
LD (00038h),A ;84fa 32 38 00 2 8 .
LD HL,l815eh ;84fd 21 5e 81 ! ^ .
LD (00039h),HL ;8500 22 39 00 " 9 .
CALL FAST_RAM_FN.OFF_EI ;8503 cd 77 a2 . w .
LD HL,lad00h ;8506 21 00 ad ! . .
LD A,L ;8509 7d }
l850ah:
LD (HL),A ;850a 77 w
INC L ;850b 2c ,
JR NZ,l850ah ;850c 20 fc .
CALL sub_8c35h ;850e cd 35 8c . 5 .
CALL GENERATE_PALETTE ;8511 cd 26 93 . & .
EI ;8514 fb .
HALT ;8515 76 v
l8516h:
XOR A ;8516 af .
LD (l8183h.set_byte),A ;8517 32 87 81 2 . .
LD (l8183h.set_byte2),A ;851a 32 a1 81 2 . .
CALL sub_8e46h ;851d cd 46 8e . F .
XOR A ;8520 af .
LD (l8544h.set_byte),A ;8521 32 77 85 2 w .
LD A,1 ;8524 3e 01 > .
LD (l85d0h.set_byte),A ;8526 32 57 86 2 W .
l8529h:
XOR A ;8529 af .
LD (l962bh),A ;852a 32 2b 96 2 + .
LD (l962ch),A ;852d 32 2c 96 2 , .
LD (l962dh),A ;8530 32 2d 96 2 - .
LD (l962eh),A ;8533 32 2e 96 2 . .
LD (l962fh),A ;8536 32 2f 96 2 / .
LD (l9630h),A ;8539 32 30 96 2 0 .
LD (l9631h),A ;853c 32 31 96 2 1 .
LD A,4 ;853f 3e 04 > .
LD (l85d0h.set_byte2),A ;8541 32 4f 86 2 O .
l8544h: XOR A ;8544 af .
LD (l8183h.set_byte),A ;8545 32 87 81 2 . .
LD (l8183h.set_byte2),A ;8548 32 a1 81 2 . .
CALL FAST_RAM_FN.OFF_EI ;854b cd 77 a2 . w .
LD A,(PAGES_BUFFER) ;854e 3a 00 be : . .
OUT (SLOT3),A ;8551 d3 e2 . .
CALL 0c13ah ;8553 cd 3a c1 . : .
CALL FAST_RAM_FN.ON_DI ;8556 cd 73 a2 . s .
CALL 0015ah ;8559 cd 5a 01 . Z .
CALL 00151h ;855c cd 51 01 . Q .
CALL FAST_RAM_FN.OFF_DI ;855f cd 7c a2 . | .
LD A,(l8544h.set_byte) ;8562 3a 77 85 : w .
LD HL,l9181h ;8565 21 81 91 ! . .
LD C,A ;8568 4f O
LD B,0 ;8569 06 00 . .
ADD HL,BC ;856b 09 .
LD A,(HL) ;856c 7e ~
LD (laa89h),A ;856d 32 89 aa 2 . .
CALL sub_a718h ;8570 cd 18 a7 . . .
CALL FAST_RAM_FN.OFF_EI ;8573 cd 77 a2 . w .
.set_byte+1: LD A,0 ;8576 3e 00 > .
DI ;8578 f3 .
CALL sub_97fah ;8579 cd fa 97 . . .
CALL sub_9ae4h ;857c cd e4 9a . . .
CALL sub_9c5bh ;857f cd 5b 9c . [ .
CALL sub_a0cch ;8582 cd cc a0 . . .
CALL FAST_RAM_FN.ON_DI ;8585 cd 73 a2 . s .
LD A,(03f06h) ;8588 3a 06 3f : . ?
LD (l85d0h.set_byte3),A ;858b 32 d8 85 2 . .
LD A,(03f07h) ;858e 3a 07 3f : . ?
LD (l85d0h.set_byte4),A ;8591 32 dd 85 2 . .
CALL FAST_RAM_FN.OFF_DI ;8594 cd 7c a2 . | .
DI ;8597 f3 .
XOR A ;8598 af .
LD (l8183h.set_byte),A ;8599 32 87 81 2 . .
LD (l8183h.set_byte2),A ;859c 32 a1 81 2 . .
LD A,0c1h ;859f 3e c1 > .
OUT (PORT_Y),A ;85a1 d3 89 . .
LD SP,#C000 ;85a3 31 00 c0 1 . .
CALL GENERATE_PALETTE ;85a6 cd 26 93 . & .
EI ;85a9 fb .
HALT ;85aa 76 v
JR l85cch ;85ab 18 1f . .
l85adh:
DI ;85ad f3 .
XOR A ;85ae af .
LD (l8183h.set_byte),A ;85af 32 87 81 2 . .
LD (l8183h.set_byte2),A ;85b2 32 a1 81 2 . .
LD A,0c1h ;85b5 3e c1 > .
OUT (PORT_Y),A ;85b7 d3 89 . .
LD SP,0c000h ;85b9 31 00 c0 1 . .
CALL GENERATE_PALETTE ;85bc cd 26 93 . & .
EI ;85bf fb .
HALT ;85c0 76 v
LD A,(l85d0h.set_byte2) ;85c1 3a 4f 86 : O .
OR A ;85c4 b7 .
JP Z,l8dd7h ;85c5 ca d7 8d . . .
DEC A ;85c8 3d =
LD (l85d0h.set_byte2),A ;85c9 32 4f 86 2 O .
l85cch:
LD HL,lad00h ;85cc 21 00 ad ! . .
LD A,L ;85cf 7d }
l85d0h: LD (HL),A ;85d0 77 w
INC L ;85d1 2c ,
JR NZ,l85d0h ;85d2 20 fc .
CALL FAST_RAM_FN.ON_DI ;85d4 cd 73 a2 . s .
.set_byte3+1: LD A,0 ;85d7 3e 00 > .
LD (03f06h),A ;85d9 32 06 3f 2 . ?
.set_byte4+1: LD A,0 ;85dc 3e 00 > .
LD (03f07h),A ;85de 32 07 3f 2 . ?
CALL FAST_RAM_FN.OFF_DI ;85e1 cd 7c a2 . | .
CALL sub_8bdbh ;85e4 cd db 8b . . .
CALL sub_94a2h ;85e7 cd a2 94 . . .
CALL sub_934dh ;85ea cd 4d 93 . M .
CALL sub_94bfh ;85ed cd bf 94 . . .
CALL sub_9542h ;85f0 cd 42 95 . B .
CALL sub_95b0h ;85f3 cd b0 95 . . .
CALL sub_95bah ;85f6 cd ba 95 . . .
CALL sub_9705h ;85f9 cd 05 97 . . .
CALL FAST_RAM_FN.ON_DI ;85fc cd 73 a2 . s .
XOR A ;85ff af .
LD (03f35h),A ;8600 32 35 3f 2 5 ?
LD (03f04h),A ;8603 32 04 3f 2 . ?
LD (03f10h),A ;8606 32 10 3f 2 . ?
LD (03f08h),A ;8609 32 08 3f 2 . ?
LD (03880h),A ;860c 32 80 38 2 . 8
LD (03980h),A ;860f 32 80 39 2 . 9
LD (03f09h),A ;8612 32 09 3f 2 . ?
LD (03f15h),A ;8615 32 15 3f 2 . ?
LD (03f01h),A ;8618 32 01 3f 2 . ?
LD (03f16h),A ;861b 32 16 3f 2 . ?
LD (03f3eh),A ;861e 32 3e 3f 2 > ?
LD A,(03f3bh) ;8621 3a 3b 3f : ; ?
LD (03f3ah),A ;8624 32 3a 3f 2 : ?
CALL FAST_RAM_FN.OFF_EI ;8627 cd 77 a2 . w .
XOR A ;862a af .
LD (sub_875eh.patch),A ;862b 32 5f 87 2 _ .
CALL FAST_RAM_FN.ON_DI ;862e cd 73 a2 . s .
LD HL,(03f2dh) ;8631 2a 2d 3f * - ?
LD (sub_96bbh+1),HL ;8634 22 bc 96 " . .
LD (l96c7h+1),HL ;8637 22 c8 96 " . .
LD A,(03f2ch) ;863a 3a 2c 3f : , ?
LD (l96c7h.set_byte),A ;863d 32 d4 96 2 . .
LD HL,l9657h ;8640 21 57 96 ! W .
CALL sub_96ebh ;8643 cd eb 96 . . .
.set_byte5+1: LD A,0 ;8646 3e 00 > .
LD HL,l963dh ;8648 21 3d 96 ! = .
CALL sub_96ebh ;864b cd eb 96 . . .
.set_byte2+1: LD A,0 ;864e 3e 00 > .
LD HL,l964ah ;8650 21 4a 96 ! J .
CALL sub_96ebh ;8653 cd eb 96 . . .
.set_byte+1: LD A,0 ;8656 3e 00 > .
LD HL,l9664h ;8658 21 64 96 ! d .
CALL sub_96ebh ;865b cd eb 96 . . .
DI ;865e f3 .
CALL FAST_RAM_FN.ON_DI ;865f cd 73 a2 . s .
CALL 00166h ;8662 cd 66 01 . f .
CALL 00163h ;8665 cd 63 01 . c .
CALL 00169h ;8668 cd 69 01 . i .
CALL FAST_RAM_FN.OFF_EI ;866b cd 77 a2 . w .
LD A,07ch ;866e 3e 7c > |
LD HL,0c000h ;8670 21 00 c0 ! . .
LD IY,00a80h ;8673 fd 21 80 0a . ! . .
l8677h:
CALL sub_91bbh ;8677 cd bb 91 . . .
LD C,A ;867a 4f O
INC IYL ;867b fd 2c . ,
LD A,0f6h ;867d 3e f6 > .
CP IYL ;867f fd bd . .
LD A,C ;8681 79 y
JR NZ,l8677h ;8682 20 f3 .
CALL sub_875eh ;8684 cd 5e 87 . ^ .
CALL sub_95dfh ;8687 cd df 95 . . .
CALL FAST_RAM_FN.ON_DI ;868a cd 73 a2 . s .
LD A,001h ;868d 3e 01 > .
LD (03f08h),A ;868f 32 08 3f 2 . ?
LD (03f04h),A ;8692 32 04 3f 2 . ?
CALL FAST_RAM_FN.OFF_EI ;8695 cd 77 a2 . w .
CALL sub_875eh ;8698 cd 5e 87 . ^ .
CALL sub_95dfh ;869b cd df 95 . . .
LD HL,0c000h ;869e 21 00 c0 ! . .
CALL sub_8c75h ;86a1 cd 75 8c . u .
CALL sub_8922h ;86a4 cd 22 89 . " .
DI ;86a7 f3 .
CALL FAST_RAM_FN.ON_DI ;86a8 cd 73 a2 . s .
CALL 00166h ;86ab cd 66 01 . f .
CALL 00163h ;86ae cd 63 01 . c .
CALL FAST_RAM_FN.OFF_EI ;86b1 cd 77 a2 . w .
l86b4h:
LD A,0c1h ;86b4 3e c1 > .
OUT (PORT_Y),A ;86b6 d3 89 . .
l86b8h:
LD SP,0c000h ;86b8 31 00 c0 1 . .
CALL FAST_RAM_FN.ON_DI ;86bb cd 73 a2 . s .
LD A,(03f15h) ;86be 3a 15 3f : . ?
CP 004h ;86c1 fe 04 . .
JR Z,l86dah ;86c3 28 15 ( .
CP 006h ;86c5 fe 06 . .
JR Z,l870ch ;86c7 28 43 ( C
CP 005h ;86c9 fe 05 . .
JR Z,l8717h ;86cb 28 4a ( J
CP 007h ;86cd fe 07 . .
JP Z,l8735h ;86cf ca 35 87 . 5 .
CALL FAST_RAM_FN.OFF_EI ;86d2 cd 77 a2 . w .
l86d5h:
CALL sub_875eh ;86d5 cd 5e 87 . ^ .
l86d8h:
JR l86b4h ;86d8 18 da . .
l86dah:
XOR A ;86da af .
LD (03f16h),A ;86db 32 16 3f 2 . ?
LD A,(03f06h) ;86de 3a 06 3f : . ?
LD C,A ;86e1 4f O
LD IX,03c01h ;86e2 dd 21 01 3c . ! . <
LD A,(ix+009h) ;86e6 dd 7e 09 . ~ .
BIT 0,A ;86e9 cb 47 . G
JR Z,l8703h ;86eb 28 16 ( .
LD A,(ix+00bh) ;86ed dd 7e 0b . ~ .
SUB C ;86f0 91 .
CP 006h ;86f1 fe 06 . .
JR Z,l8703h ;86f3 28 0e ( .
CALL sub_9725h ;86f5 cd 25 97 . % .
JR Z,l8703h ;86f8 28 09 ( .
l86fah:
XOR A ;86fa af .
LD (03f15h),A ;86fb 32 15 3f 2 . ?
CALL FAST_RAM_FN.OFF_DI ;86fe cd 7c a2 . | .
JR l86d8h ;8701 18 d5 . .
l8703h:
XOR A ;8703 af .
LD (03f15h),A ;8704 32 15 3f 2 . ?
CALL FAST_RAM_FN.OFF_DI ;8707 cd 7c a2 . | .
JR l86d5h ;870a 18 c9 . .
l870ch:
XOR A ;870c af .
LD (03f16h),A ;870d 32 16 3f 2 . ?
CALL sub_9774h ;8710 cd 74 97 . t .
JR Z,l8703h ;8713 28 ee ( .
JR l86fah ;8715 18 e3 . .
l8717h:
XOR A ;8717 af .
LD (03f16h),A ;8718 32 16 3f 2 . ?
LD A,(03f07h) ;871b 3a 07 3f : . ?
LD C,A ;871e 4f O
LD IX,03c01h ;871f dd 21 01 3c . ! . <
LD A,(ix+009h) ;8723 dd 7e 09 . ~ .
BIT 2,A ;8726 cb 57 . W
JR Z,l8703h ;8728 28 d9 ( .
LD A,(ix+00ah) ;872a dd 7e 0a . ~ .
SUB C ;872d 91 .
CALL sub_9790h ;872e cd 90 97 . . .
JR Z,l8703h ;8731 28 d0 ( .
JR l86fah ;8733 18 c5 . .
l8735h:
XOR A ;8735 af .
LD (03f16h),A ;8736 32 16 3f 2 . ?
LD A,(03f07h) ;8739 3a 07 3f : . ?
LD C,A ;873c 4f O
LD IX,03c01h ;873d dd 21 01 3c . ! . <
LD A,(ix+009h) ;8741 dd 7e 09 . ~ .
BIT 3,A ;8744 cb 5f . _
JR Z,l8703h ;8746 28 bb ( .
LD A,(ix+00ah) ;8748 dd 7e 0a . ~ .
SUB C ;874b 91 .
CP 005h ;874c fe 05 . .
JR Z,l8703h ;874e 28 b3 ( .
CALL sub_97deh ;8750 cd de 97 . . .
JR Z,l8703h ;8753 28 ae ( .
JP l86fah ;8755 c3 fa 86 . . .
JP SetUp_RESET_EXIT ;8758 c3 63 83 . c .
l875bh:
JP l875bh ;875b c3 5b 87 . [ .
sub_875eh:
.patch+1: LD A,000h ;875e 3e 00 > .
OR A ;8760 b7 .
JR NZ,l8797h ;8761 20 34 4
CALL FAST_RAM_FN.ON_EI ;8763 cd 6e a2 . n .
CALL 00103h ;8766 cd 03 01 . . .
CALL 00106h ;8769 cd 06 01 . . .
CALL FAST_RAM_FN.OFF_EI ;876c cd 77 a2 . w .
CALL sub_9712h ;876f cd 12 97 . . .
CALL FAST_RAM_FN.ON_EI ;8772 cd 6e a2 . n .
CALL 00109h ;8775 cd 09 01 . . .
CALL 0010ch ;8778 cd 0c 01 . . .
CALL FAST_RAM_FN.OFF_EI ;877b cd 77 a2 . w .
CALL FAST_RAM_FN.ON_EI ;877e cd 6e a2 . n .
CALL 0010fh ;8781 cd 0f 01 . . .
DI ;8784 f3 .
CALL 00163h ;8785 cd 63 01 . c .
CALL 0016fh ;8788 cd 6f 01 . o .
l878bh:
CALL 00175h ;878b cd 75 01 . u .
JR NZ,l878bh ;878e 20 fb .
EI ;8790 fb .
CALL 00112h ;8791 cd 12 01 . . .
CALL FAST_RAM_FN.OFF_EI ;8794 cd 77 a2 . w .
l8797h:
XOR A ;8797 af .
LD (sub_875eh.patch),A ;8798 32 5f 87 2 _ .
CALL sub_8b22h ;879b cd 22 8b . " .
CALL FAST_RAM_FN.ON_EI ;879e cd 6e a2 . n .
CALL 00115h ;87a1 cd 15 01 . . .
CALL 00118h ;87a4 cd 18 01 . . .
CALL 0011bh ;87a7 cd 1b 01 . . .
CALL sub_93f1h ;87aa cd f1 93 . . .
CALL 0011eh ;87ad cd 1e 01 . . .
CALL 0010ch ;87b0 cd 0c 01 . . .
CALL 00121h ;87b3 cd 21 01 . ! .
CALL 00124h ;87b6 cd 24 01 . $ .
CALL 00127h ;87b9 cd 27 01 . ' .
LD A,(03f04h) ;87bc 3a 04 3f : . ?
OR A ;87bf b7 .
JR Z,l87cbh ;87c0 28 09 ( .
LD A,(03f10h) ;87c2 3a 10 3f : . ?
OR A ;87c5 b7 .
JR NZ,l87cbh ;87c6 20 03 .
CALL 0010fh ;87c8 cd 0f 01 . . .
l87cbh:
CALL 0012ah ;87cb cd 2a 01 . * .
CALL 0012dh ;87ce cd 2d 01 . - .
CALL 00130h ;87d1 cd 30 01 . 0 .
CALL 00133h ;87d4 cd 33 01 . 3 .
CALL 00136h ;87d7 cd 36 01 . 6 .
DI ;87da f3 .
CALL 00172h ;87db cd 72 01 . r .
l87deh:
CALL 00175h ;87de cd 75 01 . u .
JR NZ,l87deh ;87e1 20 fb .
CALL FAST_RAM_FN.OFF_EI ;87e3 cd 77 a2 . w .
CALL sub_a4c7h ;87e6 cd c7 a4 . . .
DI ;87e9 f3 .
CALL sub_8ca5h ;87ea cd a5 8c . . .
CALL FAST_RAM_FN.ON_DI ;87ed cd 73 a2 . s .
CALL 00139h ;87f0 cd 39 01 . 9 .
CALL FAST_RAM_FN.OFF_EI ;87f3 cd 77 a2 . w .
CALL sub_96bbh ;87f6 cd bb 96 . . .
CALL sub_9607h ;87f9 cd 07 96 . . .
XOR A ;87fc af .
LD (la280h),A ;87fd 32 80 a2 2 . .
EI ;8800 fb .
l8801h:
LD A,(la280h) ;8801 3a 80 a2 : . .
OR A ;8804 b7 .
JR Z,l8801h ;8805 28 fa ( .
LD A,(l96c7h.set_byte) ;8807 3a d4 96 : . .
OR A ;880a b7 .
JP Z,l8995h ;880b ca 95 89 . . .
CALL FAST_RAM_FN.ON_EI ;880e cd 6e a2 . n .
LD A,(03f00h) ;8811 3a 00 3f : . ?
CP 007h ;8814 fe 07 . .
PUSH AF ;8816 f5 .
CALL FAST_RAM_FN.OFF_EI ;8817 cd 77 a2 . w .
POP AF ;881a f1 .
JR NZ,l883eh ;881b 20 21 !
LD A,(l85d0h.set_byte5) ;881d 3a 47 86 : G .
OR A ;8820 b7 .
JR NZ,l883eh ;8821 20 1b .
CALL FAST_RAM_FN.ON_EI ;8823 cd 6e a2 . n .
LD A,(03f3ah) ;8826 3a 3a 3f : : ?
CP 0ffh ;8829 fe ff . .
PUSH AF ;882b f5 .
CALL FAST_RAM_FN.OFF_EI ;882c cd 77 a2 . w .
POP AF ;882f f1 .
JP Z,l8d2dh ;8830 ca 2d 8d . - .
OR A ;8833 b7 .
JR NZ,l883eh ;8834 20 08 .
CALL FAST_RAM_FN.ON_EI ;8836 cd 6e a2 . n .
LD A,001h ;8839 3e 01 > .
LD (03f3ah),A ;883b 32 3a 3f 2 : ?
l883eh:
CALL FAST_RAM_FN.ON_EI ;883e cd 6e a2 . n .
CALL 0013fh ;8841 cd 3f 01 . ? .
CALL 00142h ;8844 cd 42 01 . B .
DI ;8847 f3 .
CALL 00160h ;8848 cd 60 01 . ` .
LD A,(03f3ah) ;884b 3a 3a 3f : : ?
CP 002h ;884e fe 02 . .
JP Z,l8a0ch ;8850 ca 0c 8a . . .
CP 004h ;8853 fe 04 . .
JP Z,l8a90h ;8855 ca 90 8a . . .
LD A,(03f04h) ;8858 3a 04 3f : . ?
OR A ;885b b7 .
JP Z,l8c32h ;885c ca 32 8c . 2 .
LD A,(03f10h) ;885f 3a 10 3f : . ?
OR A ;8862 b7 .
JP Z,l8c32h ;8863 ca 32 8c . 2 .
LD HL,(03f11h) ;8866 2a 11 3f * . ?
LD A,H ;8869 7c |
OR L ;886a b5 .
JR Z,l8876h ;886b 28 09 ( .
DEC HL ;886d 2b +
LD (03f11h),HL ;886e 22 11 3f " . ?
LD A,H ;8871 7c |
OR L ;8872 b5 .
JP NZ,l8c32h ;8873 c2 32 8c . 2 .
l8876h:
EI ;8876 fb .
CALL FAST_RAM_FN.ON_DI ;8877 cd 73 a2 . s .
CALL 0016ch ;887a cd 6c 01 . l .
LD A,(03f35h) ;887d 3a 35 3f : 5 ?
OR A ;8880 b7 .
JR Z,l88b9h ;8881 28 36 ( 6
CP 001h ;8883 fe 01 . .
JR Z,l88a2h ;8885 28 1b ( .
CP 002h ;8887 fe 02 . .
JR NZ,l88b9h ;8889 20 2e .
CALL 00169h ;888b cd 69 01 . i .
LD A,07fh ;888e 3e 7f > .
LD HL,0d5beh ;8890 21 be d5 ! . .
LD DE,000e2h ;8893 11 e2 00 . . .
CALL 00181h ;8896 cd 81 01 . . .
XOR A ;8899 af .
LD (l8183h.set_byte2),A ;889a 32 a1 81 2 . .
LD A,002h ;889d 3e 02 > .
LD (l8183h.set_byte),A ;889f 32 87 81 2 . .
l88a2h:
CALL 00169h ;88a2 cd 69 01 . i .
LD A,081h ;88a5 3e 81 > .
LD HL,0c78ah ;88a7 21 8a c7 ! . .
LD DE,00168h ;88aa 11 68 01 . h .
CALL 00181h ;88ad cd 81 01 . . .
XOR A ;88b0 af .
LD (l8183h.set_byte2),A ;88b1 32 a1 81 2 . .
LD A,002h ;88b4 3e 02 > .
LD (l8183h.set_byte),A ;88b6 32 87 81 2 . .
l88b9h:
CALL FAST_RAM_FN.OFF_EI ;88b9 cd 77 a2 . w .
l88bch:
LD SP,0c000h ;88bc 31 00 c0 1 . .
CALL FAST_RAM_FN.OFF_EI ;88bf cd 77 a2 . w .
CALL sub_9712h ;88c2 cd 12 97 . . .
CALL FAST_RAM_FN.ON_DI ;88c5 cd 73 a2 . s .
CALL 0011bh ;88c8 cd 1b 01 . . .
EI ;88cb fb .
CALL sub_93f1h ;88cc cd f1 93 . . .
CALL 00124h ;88cf cd 24 01 . $ .
CALL 0012ah ;88d2 cd 2a 01 . * .
CALL 00130h ;88d5 cd 30 01 . 0 .
CALL 00133h ;88d8 cd 33 01 . 3 .
CALL 00136h ;88db cd 36 01 . 6 .
CALL FAST_RAM_FN.OFF_EI ;88de cd 77 a2 . w .
CALL sub_a4c7h ;88e1 cd c7 a4 . . .
CALL sub_8ca5h ;88e4 cd a5 8c . . .
CALL FAST_RAM_FN.ON_DI ;88e7 cd 73 a2 . s .
CALL 00139h ;88ea cd 39 01 . 9 .
CALL FAST_RAM_FN.OFF_EI ;88ed cd 77 a2 . w .
CALL sub_9607h ;88f0 cd 07 96 . . .
EI ;88f3 fb .
HALT ;88f4 76 v
CALL FAST_RAM_FN.ON_DI ;88f5 cd 73 a2 . s .
CALL 0013fh ;88f8 cd 3f 01 . ? .
CALL 00142h ;88fb cd 42 01 . B .
LD HL,(03f13h) ;88fe 2a 13 3f * . ?
DEC HL ;8901 2b +
LD (03f13h),HL ;8902 22 13 3f " . ?
CALL FAST_RAM_FN.OFF_EI ;8905 cd 77 a2 . w .
LD A,H ;8908 7c |
OR L ;8909 b5 .
JR NZ,l88bch ;890a 20 b0 .
CALL FAST_RAM_FN.ON_DI ;890c cd 73 a2 . s .
CALL 0016ch ;890f cd 6c 01 . l .
XOR A ;8912 af .
LD (l8183h.set_byte2),A ;8913 32 a1 81 2 . .
LD (l8183h.set_byte),A ;8916 32 87 81 2 . .
CALL FAST_RAM_FN.OFF_EI ;8919 cd 77 a2 . w .
CALL sub_8c46h ;891c cd 46 8c . F .
JP l85adh ;891f c3 ad 85 . . .
sub_8922h:
CALL FAST_RAM_FN.ON_DI ;8922 cd 73 a2 . s .
CALL 0016ch ;8925 cd 6c 01 . l .
LD A,001h ;8928 3e 01 > .
LD (03f08h),A ;892a 32 08 3f 2 . ?
LD (03f04h),A ;892d 32 04 3f 2 . ?
LD HL,08b97h ;8930 21 97 8b ! . .
CALL 0014bh ;8933 cd 4b 01 . K .
LD A,02dh ;8936 3e 2d > -
l8938h:
PUSH AF ;8938 f5 .
CALL 00103h ;8939 cd 03 01 . . .
CALL 00106h ;893c cd 06 01 . . .
CALL FAST_RAM_FN.OFF_EI ;893f cd 77 a2 . w .
CALL sub_9712h ;8942 cd 12 97 . . .
CALL FAST_RAM_FN.ON_DI ;8945 cd 73 a2 . s .
CALL 00115h ;8948 cd 15 01 . . .
CALL 00118h ;894b cd 18 01 . . .
CALL 0011bh ;894e cd 1b 01 . . .
CALL sub_93f1h ;8951 cd f1 93 . . .
CALL 0012ah ;8954 cd 2a 01 . * .
CALL 00130h ;8957 cd 30 01 . 0 .
CALL 00133h ;895a cd 33 01 . 3 .
CALL 00136h ;895d cd 36 01 . 6 .
CALL FAST_RAM_FN.OFF_EI ;8960 cd 77 a2 . w .
CALL sub_a4c7h ;8963 cd c7 a4 . . .
CALL sub_8ca5h ;8966 cd a5 8c . . .
CALL FAST_RAM_FN.ON_DI ;8969 cd 73 a2 . s .
CALL 00139h ;896c cd 39 01 . 9 .
CALL FAST_RAM_FN.OFF_EI ;896f cd 77 a2 . w .
CALL sub_9607h ;8972 cd 07 96 . . .
EI ;8975 fb .
HALT ;8976 76 v
CALL FAST_RAM_FN.ON_DI ;8977 cd 73 a2 . s .
CALL 0013fh ;897a cd 3f 01 . ? .
CALL 00142h ;897d cd 42 01 . B .
POP AF ;8980 f1 .
DEC A ;8981 3d =
JR NZ,l8938h ;8982 20 b4 .
CALL 00145h ;8984 cd 45 01 . E .
XOR A ;8987 af .
LD (03f08h),A ;8988 32 08 3f 2 . ?
LD (03f04h),A ;898b 32 04 3f 2 . ?
CALL 0016ch ;898e cd 6c 01 . l .
CALL FAST_RAM_FN.OFF_EI ;8991 cd 77 a2 . w .
RET ;8994 c9 .
l8995h:
LD SP,0c000h ;8995 31 00 c0 1 . .
CALL FAST_RAM_FN.ON_DI ;8998 cd 73 a2 . s .
CALL 0016ch ;899b cd 6c 01 . l .
EI ;899e fb .
LD A,001h ;899f 3e 01 > .
LD (03f08h),A ;89a1 32 08 3f 2 . ?
LD (03c00h),A ;89a4 32 00 3c 2 . <
CALL 00148h ;89a7 cd 48 01 . H .
CALL 00145h ;89aa cd 45 01 . E .
LD HL,l8b7dh ;89ad 21 7d 8b ! } .
CALL 0014bh ;89b0 cd 4b 01 . K .
CALL FAST_RAM_FN.OFF_EI ;89b3 cd 77 a2 . w .
LD A,07bh ;89b6 3e 7b > {
l89b8h:
PUSH AF ;89b8 f5 .
CALL FAST_RAM_FN.OFF_EI ;89b9 cd 77 a2 . w .
CALL sub_9712h ;89bc cd 12 97 . . .
CALL FAST_RAM_FN.ON_EI ;89bf cd 6e a2 . n .
CALL 0011bh ;89c2 cd 1b 01 . . .
CALL sub_93f1h ;89c5 cd f1 93 . . .
CALL 00130h ;89c8 cd 30 01 . 0 .
CALL 00133h ;89cb cd 33 01 . 3 .
CALL 00136h ;89ce cd 36 01 . 6 .
CALL sub_a4c7h ;89d1 cd c7 a4 . . .
CALL sub_8ca5h ;89d4 cd a5 8c . . .
CALL FAST_RAM_FN.ON_EI ;89d7 cd 6e a2 . n .
CALL 00139h ;89da cd 39 01 . 9 .
CALL FAST_RAM_FN.OFF_EI ;89dd cd 77 a2 . w .
CALL sub_9607h ;89e0 cd 07 96 . . .
EI ;89e3 fb .
HALT ;89e4 76 v
HALT ;89e5 76 v
CALL FAST_RAM_FN.ON_DI ;89e6 cd 73 a2 . s .
CALL 0013fh ;89e9 cd 3f 01 . ? .
CALL 00142h ;89ec cd 42 01 . B .
CALL FAST_RAM_FN.OFF_EI ;89ef cd 77 a2 . w .
POP AF ;89f2 f1 .
DEC A ;89f3 3d =
JR NZ,l89b8h ;89f4 20 c2 .
CALL FAST_RAM_FN.ON_DI ;89f6 cd 73 a2 . s .
XOR A ;89f9 af .
LD (l8183h.set_byte2),A ;89fa 32 a1 81 2 . .
LD (l8183h.set_byte),A ;89fd 32 87 81 2 . .
CALL 0016ch ;8a00 cd 6c 01 . l .
CALL FAST_RAM_FN.OFF_EI ;8a03 cd 77 a2 . w .
CALL sub_8c46h ;8a06 cd 46 8c . F .
JP l85adh ;8a09 c3 ad 85 . . .
l8a0ch:
CALL FAST_RAM_FN.ON_DI ;8a0c cd 73 a2 . s .
LD A,003h ;8a0f 3e 03 > .
LD (03f3ah),A ;8a11 32 3a 3f 2 : ?
CALL 0016ch ;8a14 cd 6c 01 . l .
CALL 00166h ;8a17 cd 66 01 . f .
LD A,001h ;8a1a 3e 01 > .
LD (03f08h),A ;8a1c 32 08 3f 2 . ?
LD (03f04h),A ;8a1f 32 04 3f 2 . ?
CALL 00145h ;8a22 cd 45 01 . E .
LD HL,08ba9h ;8a25 21 a9 8b ! . .
CALL 0014bh ;8a28 cd 4b 01 . K .
LD A,037h ;8a2b 3e 37 > 7
l8a2dh:
PUSH AF ;8a2d f5 .
CALL 00103h ;8a2e cd 03 01 . . .
CALL 00106h ;8a31 cd 06 01 . . .
CALL FAST_RAM_FN.OFF_EI ;8a34 cd 77 a2 . w .
CALL sub_9712h ;8a37 cd 12 97 . . .
CALL FAST_RAM_FN.ON_DI ;8a3a cd 73 a2 . s .
CALL 00115h ;8a3d cd 15 01 . . .
CALL 00118h ;8a40 cd 18 01 . . .
CALL 0011bh ;8a43 cd 1b 01 . . .
CALL sub_93f1h ;8a46 cd f1 93 . . .
CALL 0012ah ;8a49 cd 2a 01 . * .
CALL 00130h ;8a4c cd 30 01 . 0 .
CALL 00133h ;8a4f cd 33 01 . 3 .
CALL 00136h ;8a52 cd 36 01 . 6 .
CALL FAST_RAM_FN.OFF_EI ;8a55 cd 77 a2 . w .
CALL sub_a4c7h ;8a58 cd c7 a4 . . .
CALL sub_8ca5h ;8a5b cd a5 8c . . .
CALL FAST_RAM_FN.ON_DI ;8a5e cd 73 a2 . s .
CALL 00139h ;8a61 cd 39 01 . 9 .
CALL FAST_RAM_FN.OFF_EI ;8a64 cd 77 a2 . w .
CALL sub_9607h ;8a67 cd 07 96 . . .
EI ;8a6a fb .
HALT ;8a6b 76 v
HALT ;8a6c 76 v
CALL FAST_RAM_FN.ON_DI ;8a6d cd 73 a2 . s .
CALL 0013fh ;8a70 cd 3f 01 . ? .
CALL 00142h ;8a73 cd 42 01 . B .
POP AF ;8a76 f1 .
DEC A ;8a77 3d =
JR NZ,l8a2dh ;8a78 20 b3 .
CALL 00145h ;8a7a cd 45 01 . E .
XOR A ;8a7d af .
LD (03f08h),A ;8a7e 32 08 3f 2 . ?
LD (03f04h),A ;8a81 32 04 3f 2 . ?
CALL 0016ch ;8a84 cd 6c 01 . l .
CALL 00166h ;8a87 cd 66 01 . f .
CALL FAST_RAM_FN.OFF_EI ;8a8a cd 77 a2 . w .
JP l86b8h ;8a8d c3 b8 86 . . .
l8a90h:
LD SP,0c000h ;8a90 31 00 c0 1 . .
CALL FAST_RAM_FN.ON_DI ;8a93 cd 73 a2 . s .
LD HL,(03f3ch) ;8a96 2a 3c 3f * < ?
LD A,(03e08h) ;8a99 3a 08 3e : . >
OUT (SLOT3),A ;8a9c d3 e2 . .
XOR A ;8a9e af .
LD (HL),A ;8a9f 77 w
INC L ;8aa0 2c ,
LD (HL),A ;8aa1 77 w
INC L ;8aa2 2c ,
LD (HL),A ;8aa3 77 w
DEC H ;8aa4 25 %
LD (HL),A ;8aa5 77 w
DEC L ;8aa6 2d -
LD (HL),A ;8aa7 77 w
DEC L ;8aa8 2d -
LD (HL),A ;8aa9 77 w
CALL 0016ch ;8aaa cd 6c 01 . l .
CALL 00166h ;8aad cd 66 01 . f .
EI ;8ab0 fb .
LD A,001h ;8ab1 3e 01 > .
LD (03f08h),A ;8ab3 32 08 3f 2 . ?
LD (03c00h),A ;8ab6 32 00 3c 2 . <
CALL 00148h ;8ab9 cd 48 01 . H .
CALL 00145h ;8abc cd 45 01 . E .
LD HL,08bb7h ;8abf 21 b7 8b ! . .
CALL 0014bh ;8ac2 cd 4b 01 . K .
CALL FAST_RAM_FN.OFF_EI ;8ac5 cd 77 a2 . w .
LD A,039h ;8ac8 3e 39 > 9
l8acah:
PUSH AF ;8aca f5 .
CALL FAST_RAM_FN.OFF_EI ;8acb cd 77 a2 . w .
CALL sub_9712h ;8ace cd 12 97 . . .
CALL FAST_RAM_FN.ON_EI ;8ad1 cd 6e a2 . n .
CALL 0011bh ;8ad4 cd 1b 01 . . .
CALL sub_93f1h ;8ad7 cd f1 93 . . .
CALL 00130h ;8ada cd 30 01 . 0 .
CALL 00133h ;8add cd 33 01 . 3 .
CALL 00136h ;8ae0 cd 36 01 . 6 .
CALL sub_a4c7h ;8ae3 cd c7 a4 . . .
CALL sub_8ca5h ;8ae6 cd a5 8c . . .
CALL FAST_RAM_FN.ON_EI ;8ae9 cd 6e a2 . n .
CALL 00139h ;8aec cd 39 01 . 9 .
CALL FAST_RAM_FN.OFF_EI ;8aef cd 77 a2 . w .
CALL sub_9607h ;8af2 cd 07 96 . . .
EI ;8af5 fb .
HALT ;8af6 76 v
HALT ;8af7 76 v
HALT ;8af8 76 v
HALT ;8af9 76 v
HALT ;8afa 76 v
HALT ;8afb 76 v
CALL FAST_RAM_FN.ON_DI ;8afc cd 73 a2 . s .
CALL 0013fh ;8aff cd 3f 01 . ? .
CALL 00142h ;8b02 cd 42 01 . B .
CALL FAST_RAM_FN.OFF_EI ;8b05 cd 77 a2 . w .
POP AF ;8b08 f1 .
DEC A ;8b09 3d =
JR NZ,l8acah ;8b0a 20 be .
CALL FAST_RAM_FN.ON_DI ;8b0c cd 73 a2 . s .
XOR A ;8b0f af .
LD (l8183h.set_byte2),A ;8b10 32 a1 81 2 . .
LD (l8183h.set_byte),A ;8b13 32 87 81 2 . .
CALL 0016ch ;8b16 cd 6c 01 . l .
CALL 00166h ;8b19 cd 66 01 . f .
CALL FAST_RAM_FN.OFF_EI ;8b1c cd 77 a2 . w .
JP l8d2dh ;8b1f c3 2d 8d . - .
sub_8b22h:
CALL FAST_RAM_FN.ON_EI ;8b22 cd 6e a2 . n .
LD A,(03f00h) ;8b25 3a 00 3f : . ?
OR A ;8b28 b7 .
JR NZ,l8b70h ;8b29 20 45 E
LD A,(03e08h) ;8b2b 3a 08 3e : . >
OUT (SLOT3),A ;8b2e d3 e2 . .
LD A,(03f3eh) ;8b30 3a 3e 3f : > ?
OR A ;8b33 b7 .
JR Z,l8b70h ;8b34 28 3a ( :
CP 001h ;8b36 fe 01 . .
JR Z,l8b70h ;8b38 28 36 ( 6
CP 002h ;8b3a fe 02 . .
JR NZ,l8b4eh ;8b3c 20 10 .
LD HL,(03f3fh) ;8b3e 2a 3f 3f * ? ?
INC L ;8b41 2c ,
LD (HL),001h ;8b42 36 01 6 .
INC L ;8b44 2c ,
LD (HL),000h ;8b45 36 00 6 .
LD A,003h ;8b47 3e 03 > .
LD (03f3eh),A ;8b49 32 3e 3f 2 > ?
JR l8b70h ;8b4c 18 22 . "
l8b4eh:
LD HL,(03f3fh) ;8b4e 2a 3f 3f * ? ?
XOR A ;8b51 af .
LD (HL),A ;8b52 77 w
INC L ;8b53 2c ,
LD (HL),A ;8b54 77 w
INC L ;8b55 2c ,
LD (HL),A ;8b56 77 w
INC L ;8b57 2c ,
LD (HL),A ;8b58 77 w
LD (03f3eh),A ;8b59 32 3e 3f 2 > ?
LD A,(l96c7h.set_byte) ;8b5c 3a d4 96 : . .
ADD A,028h ;8b5f c6 28 . (
CP 063h ;8b61 fe 63 . c
JR C,l8b67h ;8b63 38 02 8 .
LD A,063h ;8b65 3e 63 > c
l8b67h:
LD (l96c7h.set_byte),A ;8b67 32 d4 96 2 . .
LD HL,l9657h ;8b6a 21 57 96 ! W .
CALL sub_96ebh ;8b6d cd eb 96 . . .
l8b70h:
JP FAST_RAM_FN.OFF_EI ;8b70 c3 77 a2 . w .
CALL FAST_RAM_FN.OFF_DI ;8b73 cd 7c a2 . | .
EI ;8b76 fb .
CALL sub_8c46h ;8b77 cd 46 8c . F .
JP SetUp_RESET_EXIT ;8b7a c3 63 83 . c .
l8b7dh:
LD B,000h ;8b7d 06 00 . .
INC C ;8b7f 0c .
NOP ;8b80 00 .
NOP ;8b81 00 .
NOP ;8b82 00 .
DEC C ;8b83 0d .
NOP ;8b84 00 .
LD BC,00e00h ;8b85 01 00 0e . . .
NOP ;8b88 00 .
NOP ;8b89 00 .
RST 38h ;8b8a ff .
RRCA ;8b8b 0f .
NOP ;8b8c 00 .
RST 38h ;8b8d ff .
RST 38h ;8b8e ff .
LD DE,0ff00h ;8b8f 11 00 ff . . .
NOP ;8b92 00 .
DJNZ l8b95h ;8b93 10 00 . .
l8b95h:
NOP ;8b95 00 .
LD BC,00004h ;8b96 01 04 00 . . .
EX AF,AF' ;8b99 08 .
NOP ;8b9a 00 .
NOP ;8b9b 00 .
NOP ;8b9c 00 .
ADD HL,BC ;8b9d 09 .
NOP ;8b9e 00 .
LD BC,00a00h ;8b9f 01 00 0a . . .
NOP ;8ba2 00 .
NOP ;8ba3 00 .
RST 38h ;8ba4 ff .
DEC BC ;8ba5 0b .
NOP ;8ba6 00 .
NOP ;8ba7 00 .
LD BC,00003h ;8ba8 01 03 00 . . .
LD D,000h ;8bab 16 00 . .
NOP ;8bad 00 .
NOP ;8bae 00 .
RLA ;8baf 17 .
NOP ;8bb0 00 .
NOP ;8bb1 00 .
RST 38h ;8bb2 ff .
JR l8bb5h ;8bb3 18 00 . .
l8bb5h:
NOP ;8bb5 00 .
LD BC,00006h ;8bb6 01 06 00 . . .
ADD HL,DE ;8bb9 19 .
NOP ;8bba 00 .
RST 38h ;8bbb ff .
RST 38h ;8bbc ff .
LD A,(DE) ;8bbd 1a .
NOP ;8bbe 00 .
RST 38h ;8bbf ff .
NOP ;8bc0 00 .
DEC DE ;8bc1 1b .
NOP ;8bc2 00 .
RST 38h ;8bc3 ff .
LD BC,0001ch ;8bc4 01 1c 00 . . .
NOP ;8bc7 00 .
RST 38h ;8bc8 ff .
DEC E ;8bc9 1d .
NOP ;8bca 00 .
NOP ;8bcb 00 .
NOP ;8bcc 00 .
LD E,000h ;8bcd 1e 00 . .
NOP ;8bcf 00 .
LD BC,00002h ;8bd0 01 02 00 . . .
LD BC,00000h ;8bd3 01 00 00 . . .
LD BC,00001h ;8bd6 01 01 00 . . .
NOP ;8bd9 00 .
RST 38h ;8bda ff .
sub_8bdbh:
DI ;8bdb f3 .
LD A,(0be0ah) ;8bdc 3a 0a be : . .
OUT (SLOT3),A ;8bdf d3 e2 . .
LD HL,0c000h ;8be1 21 00 c0 ! . .
LD DE,l801dh ;8be4 11 1d 80 . . .
LD D,D ;8be7 52 R
LD A,004h ;8be8 3e 04 > .
LD B,B ;8bea 40 @
LD C,A ;8beb 4f O
l8bech:
LD L,L ;8bec 6d m
LD A,(DE) ;8bed 1a .
LD (HL),A ;8bee 77 w
LD B,B ;8bef 40 @
LD A,C ;8bf0 79 y
ADD A,L ;8bf1 85 .
LD L,A ;8bf2 6f o
JR NZ,l8bech ;8bf3 20 f7 .
INC H ;8bf5 24 $
JR NZ,l8bech ;8bf6 20 f4 .
LD A,(0be10h) ;8bf8 3a 10 be : . .
OUT (SLOT3),A ;8bfb d3 e2 . .
LD HL,0c000h ;8bfd 21 00 c0 ! . .
LD D,D ;8c00 52 R
LD A,000h ;8c01 3e 00 > .
LD B,B ;8c03 40 @
l8c04h:
LD C,C ;8c04 49 I
LD (HL),A ;8c05 77 w
LD B,B ;8c06 40 @
INC H ;8c07 24 $
JR NZ,l8c04h ;8c08 20 fa .
CALL FAST_RAM_FN.ON_DI ;8c0a cd 73 a2 . s .
CALL 0013ch ;8c0d cd 3c 01 . < .
CALL FAST_RAM_FN.OFF_EI ;8c10 cd 77 a2 . w .
CALL sub_92c0h ;8c13 cd c0 92 . . .
CALL FAST_RAM_FN.ON_DI ;8c16 cd 73 a2 . s .
CALL 0013fh ;8c19 cd 3f 01 . ? .
CALL 00142h ;8c1c cd 42 01 . B .
CALL FAST_RAM_FN.OFF_EI ;8c1f cd 77 a2 . w .
CALL sub_92c0h ;8c22 cd c0 92 . . .
CALL FAST_RAM_FN.ON_DI ;8c25 cd 73 a2 . s .
CALL 0013fh ;8c28 cd 3f 01 . ? .
CALL 00142h ;8c2b cd 42 01 . B .
CALL FAST_RAM_FN.OFF_DI ;8c2e cd 7c a2 . | .
RET ;8c31 c9 .
l8c32h:
JP FAST_RAM_FN.OFF_EI ;8c32 c3 77 a2 . w .
sub_8c35h:
LD A,0c1h ;8c35 3e c1 > .
OUT (PORT_Y),A ;8c37 d3 89 . .
LD A,(PAGES_BUFFER) ;8c39 3a 00 be : . .
OUT (SLOT3),A ;8c3c d3 e2 . .
EI ;8c3e fb .
CALL 0c009h ;8c3f cd 09 c0 . . .
CALL 0c00ch ;8c42 cd 0c c0 . . .
RET ;8c45 c9 .
sub_8c46h:
LD A,0c1h ;8c46 3e c1 > .
OUT (PORT_Y),A ;8c48 d3 89 . .
LD A,(PAGES_BUFFER) ;8c4a 3a 00 be : . .
OUT (SLOT3),A ;8c4d d3 e2 . .
EI ;8c4f fb .
CALL 0c009h ;8c50 cd 09 c0 . . .
CALL 0c012h ;8c53 cd 12 c0 . . .
RET ;8c56 c9 .
sub_8c57h:
DI ;8c57 f3 .
LD A,0c1h ;8c58 3e c1 > .
OUT (PORT_Y),A ;8c5a d3 89 . .
LD A,(0be01h) ;8c5c 3a 01 be : . .
OUT (SLOT3),A ;8c5f d3 e2 . .
LD IX,0e000h ;8c61 dd 21 00 e0 . ! . .
CALL sub_a240h ;8c65 cd 40 a2 . @ .
LD A,(PAGES_BUFFER) ;8c68 3a 00 be : . .
OUT (SLOT3),A ;8c6b d3 e2 . .
CALL 0c009h ;8c6d cd 09 c0 . . .
EI ;8c70 fb .
CALL 0c006h ;8c71 cd 06 c0 . . .
RET ;8c74 c9 .
sub_8c75h:
DI ;8c75 f3 .
LD A,0c1h ;8c76 3e c1 > .
OUT (PORT_Y),A ;8c78 d3 89 . .
LD A,(0be01h) ;8c7a 3a 01 be : . .
OUT (SLOT3),A ;8c7d d3 e2 . .
LD IX,0e000h ;8c7f dd 21 00 e0 . ! . .
CALL sub_a240h ;8c83 cd 40 a2 . @ .
LD HL,0c900h ;8c86 21 00 c9 ! . .
LD IX,0e400h ;8c89 dd 21 00 e4 . ! . .
CALL sub_a240h ;8c8d cd 40 a2 . @ .
LD A,(PAGES_BUFFER) ;8c90 3a 00 be : . .
OUT (SLOT3),A ;8c93 d3 e2 . .
CALL 0c009h ;8c95 cd 09 c0 . . .
EI ;8c98 fb .
CALL 0c00fh ;8c99 cd 0f c0 . . .
RET ;8c9c c9 .
sub_8c9dh:
LD A,(PAGES_BUFFER) ;8c9d 3a 00 be : . .
OUT (SLOT3),A ;8ca0 d3 e2 . .
JP 0c015h ;8ca2 c3 15 c0 . . .
sub_8ca5h:
CALL FAST_RAM_FN.ON_DI ;8ca5 cd 73 a2 . s .
CALL 00100h ;8ca8 cd 00 01 . . .
JP FAST_RAM_FN.OFF_EI ;8cab c3 77 a2 . w .
sub_8caeh:
LD L,073h ;8cae 2e 73 . s
JR l8cb4h ;8cb0 18 02 . .
sub_8cb2h:
LD L,06eh ;8cb2 2e 6e . n
l8cb4h:
DI ;8cb4 f3 .
LD A,050h ;8cb5 3e 50 > P
OUT (SLOT3),A ;8cb7 d3 e2 . .
LD H,high PAGES_BUFFER ;8cb9 26 be & .
LD A,(HL) ;8cbb 7e ~
INC L ;8cbc 2c ,
OUT (SLOT1),A ;8cbd d3 a2 . .
EXX ;8cbf d9 .
LD HL,04000h ;8cc0 21 00 40 ! . @
EXX ;8cc3 d9 .
LD C,000h ;8cc4 0e 00 . .
l8cc6h:
LD A,C ;8cc6 79 y
OUT (PORT_Y),A ;8cc7 d3 89 . .
EXX ;8cc9 d9 .
LD BC,00140h ;8cca 01 40 01 . @ .
LD DE,0c000h ;8ccd 11 00 c0 . . .
l8cd0h:
LDI ;8cd0 ed a0 . .
BIT 7,H ;8cd2 cb 7c . |
JR Z,l8cdfh ;8cd4 28 09 ( .
LD HL,04000h ;8cd6 21 00 40 ! . @
EXX ;8cd9 d9 .
LD A,(HL) ;8cda 7e ~
INC L ;8cdb 2c ,
OUT (SLOT1),A ;8cdc d3 a2 . .
EXX ;8cde d9 .
l8cdfh:
LD A,B ;8cdf 78 x
OR C ;8ce0 b1 .
JR NZ,l8cd0h ;8ce1 20 ed .
EXX ;8ce3 d9 .
INC C ;8ce4 0c .
JR NZ,l8cc6h ;8ce5 20 df .
LD A,0c1h ;8ce7 3e c1 > .
OUT (PORT_Y),A ;8ce9 d3 89 . .
LD A,(0be09h) ;8ceb 3a 09 be : . .
OUT (SLOT1),A ;8cee d3 a2 . .
sub_8cf0h:
DI ;8cf0 f3 .
LD A,050h ;8cf1 3e 50 > P
OUT (SLOT3),A ;8cf3 d3 e2 . .
LD DE,06000h ;8cf5 11 00 60 . . `
LD IYH,028h ;8cf8 fd 26 28 . & (
LD C,080h ;8cfb 0e 80 . .
l8cfdh:
INC C ;8cfd 0c .
LD A,C ;8cfe 79 y
OUT (PORT_Y),A ;8cff d3 89 . .
LD IYL,020h ;8d01 fd 2e 20 . .
LD B,000h ;8d04 06 00 . .
LD HL,0c300h ;8d06 21 00 c3 ! . .
l8d09h:
LD (HL),D ;8d09 72 r
INC HL ;8d0a 23 #
LD (HL),E ;8d0b 73 s
INC HL ;8d0c 23 #
LD (HL),B ;8d0d 70 p
INC HL ;8d0e 23 #
LD (HL),000h ;8d0f 36 00 6 .
INC HL ;8d11 23 #
LD A,B ;8d12 78 x
ADD A,008h ;8d13 c6 08 . .
LD B,A ;8d15 47 G
DEC IYL ;8d16 fd 2d . -
JR NZ,l8d09h ;8d18 20 ef .
INC DE ;8d1a 13 .
INC DE ;8d1b 13 .
INC DE ;8d1c 13 .
INC DE ;8d1d 13 .
INC DE ;8d1e 13 .
INC DE ;8d1f 13 .
INC DE ;8d20 13 .
INC DE ;8d21 13 .
INC C ;8d22 0c .
DEC IYH ;8d23 fd 25 . %
JR NZ,l8cfdh ;8d25 20 d6 .
LD A,0c1h ;8d27 3e c1 > .
OUT (PORT_Y),A ;8d29 d3 89 . .
EI ;8d2b fb .
RET ;8d2c c9 .
l8d2dh:
LD SP,0c000h ;8d2d 31 00 c0 1 . .
CALL FAST_RAM_FN.ON_DI ;8d30 cd 73 a2 . s .
CALL 0016ch ;8d33 cd 6c 01 . l .
CALL FAST_RAM_FN.OFF_EI ;8d36 cd 77 a2 . w .
CALL sub_8c46h ;8d39 cd 46 8c . F .
CALL GENERATE_PALETTE ;8d3c cd 26 93 . & .
LD A,(l85d0h.set_byte) ;8d3f 3a 57 86 : W .
INC A ;8d42 3c <
LD (l85d0h.set_byte),A ;8d43 32 57 86 2 W .
LD A,(l8544h.set_byte) ;8d46 3a 77 85 : w .
INC A ;8d49 3c <
LD (l8544h.set_byte),A ;8d4a 32 77 85 2 w .
CP 005h ;8d4d fe 05 . .
JR Z,l8d79h ;8d4f 28 28 ( (
CP 00ah ;8d51 fe 0a . .
JR Z,l8d79h ;8d53 28 24 ( $
CP 00fh ;8d55 fe 0f . .
JR Z,l8d79h ;8d57 28 20 (
CP 014h ;8d59 fe 14 . .
JR Z,l8d79h ;8d5b 28 1c ( .
CP 019h ;8d5d fe 19 . .
JR Z,l8d79h ;8d5f 28 18 ( .
CP 01eh ;8d61 fe 1e . .
JR Z,l8d79h ;8d63 28 14 ( .
CP 023h ;8d65 fe 23 . #
JR Z,l8d79h ;8d67 28 10 ( .
CP 028h ;8d69 fe 28 . (
JR Z,l8d79h ;8d6b 28 0c ( .
CP 02dh ;8d6d fe 2d . -
JR Z,l8d79h ;8d6f 28 08 ( .
CP 032h ;8d71 fe 32 . 2
JR Z,l8d79h ;8d73 28 04 ( .
CP 037h ;8d75 fe 37 . 7
JR NZ,l8da0h ;8d77 20 27 '
l8d79h:
PUSH AF ;8d79 f5 .
CALL sub_8bdbh ;8d7a cd db 8b . . .
CALL sub_8cf0h ;8d7d cd f0 8c . . .
CALL sub_9071h ;8d80 cd 71 90 . q .
LD A,(PAGES_BUFFER) ;8d83 3a 00 be : . .
OUT (SLOT3),A ;8d86 d3 e2 . .
POP AF ;8d88 f1 .
CALL 0c146h ;8d89 cd 46 c1 . F .
LD HL,0cc00h ;8d8c 21 00 cc ! . .
CALL sub_8c57h ;8d8f cd 57 8c . W .
l8d92h:
EI ;8d92 fb .
HALT ;8d93 76 v
LD A,(lad01h.tst_addr) ;8d94 3a 39 ad : 9 .
OR A ;8d97 b7 .
JR Z,l8d92h ;8d98 28 f8 ( .
CALL sub_8c35h ;8d9a cd 35 8c . 5 .
JP l8544h ;8d9d c3 44 85 . D .
l8da0h:
CP 03ah ;8da0 fe 3a . :
JP NZ,l8544h ;8da2 c2 44 85 . D .
CALL sub_a824h ;8da5 cd 24 a8 . $ .
DI ;8da8 f3 .
CALL sub_90d8h ;8da9 cd d8 90 . . .
DI ;8dac f3 .
CALL sub_8bdbh ;8dad cd db 8b . . .
DI ;8db0 f3 .
CALL sub_8cf0h ;8db1 cd f0 8c . . .
DI ;8db4 f3 .
CALL sub_8cb2h ;8db5 cd b2 8c . . .
EI ;8db8 fb .
LD A,(PAGES_BUFFER) ;8db9 3a 00 be : . .
OUT (SLOT1),A ;8dbc d3 a2 . .
LD HL,(04149h) ;8dbe 2a 49 41 * I A
LD A,080h ;8dc1 3e 80 > .
ADD A,H ;8dc3 84 .
LD H,A ;8dc4 67 g
EI ;8dc5 fb .
CALL sub_8c57h ;8dc6 cd 57 8c . W .
CALL sub_ab25h ;8dc9 cd 25 ab . % .
l8dcch:
EI ;8dcc fb .
HALT ;8dcd 76 v
LD A,(lad01h.tst_addr) ;8dce 3a 39 ad : 9 .
OR A ;8dd1 b7 .
JR Z,l8dcch ;8dd2 28 f8 ( .
CALL sub_8c35h ;8dd4 cd 35 8c . 5 .
l8dd7h:
CALL GENERATE_PALETTE ;8dd7 cd 26 93 . & .
CALL sub_8bdbh ;8dda cd db 8b . . .
CALL sub_8cf0h ;8ddd cd f0 8c . . .
CALL sub_9071h ;8de0 cd 71 90 . q .
LD A,(PAGES_BUFFER) ;8de3 3a 00 be : . .
OUT (SLOT3),A ;8de6 d3 e2 . .
CALL 0c024h ;8de8 cd 24 c0 . $ .
LD HL,0cc00h ;8deb 21 00 cc ! . .
CALL sub_8c57h ;8dee cd 57 8c . W .
LD HL,00400h ;8df1 21 00 04 ! . .
l8df4h:
EI ;8df4 fb .
HALT ;8df5 76 v
PUSH HL ;8df6 e5 .
POP HL ;8df7 e1 .
LD A,(lad01h.tst_addr) ;8df8 3a 39 ad : 9 .
OR A ;8dfb b7 .
JR NZ,l8e03h ;8dfc 20 05 .
DEC HL ;8dfe 2b +
LD A,H ;8dff 7c |
OR L ;8e00 b5 .
JR NZ,l8df4h ;8e01 20 f1 .
l8e03h:
CALL sub_8c35h ;8e03 cd 35 8c . 5 .
LD A,(PAGES_BUFFER) ;8e06 3a 00 be : . .
OUT (SLOT3),A ;8e09 d3 e2 . .
LD HL,l962bh ;8e0b 21 2b 96 ! + .
CALL 0c11ch ;8e0e cd 1c c1 . . .
JP Z,l8516h ;8e11 ca 16 85 . . .
PUSH HL ;8e14 e5 .
PUSH DE ;8e15 d5 .
PUSH IY ;8e16 fd e5 . .
CALL sub_9071h ;8e18 cd 71 90 . q .
LD A,(PAGES_BUFFER) ;8e1b 3a 00 be : . .
OUT (SLOT3),A ;8e1e d3 e2 . .
CALL 0c11fh ;8e20 cd 1f c1 . . .
LD HL,0cc00h ;8e23 21 00 cc ! . .
CALL sub_8c57h ;8e26 cd 57 8c . W .
LD A,(PAGES_BUFFER) ;8e29 3a 00 be : . .
OUT (SLOT3),A ;8e2c d3 e2 . .
POP IY ;8e2e fd e1 . .
POP DE ;8e30 d1 .
POP HL ;8e31 e1 .
CALL 0c122h ;8e32 cd 22 c1 . " .
PUSH AF ;8e35 f5 .
CALL NZ,sub_a90dh ;8e36 c4 0d a9 . . .
CALL sub_8c35h ;8e39 cd 35 8c . 5 .
POP AF ;8e3c f1 .
JP Z,l8516h ;8e3d ca 16 85 . . .
CALL sub_90a6h ;8e40 cd a6 90 . . .
JP l8516h ;8e43 c3 16 85 . . .
sub_8e46h:
CALL GENERATE_PALETTE ;8e46 cd 26 93 . & .
CALL sub_90d8h ;8e49 cd d8 90 . . .
CALL sub_8bdbh ;8e4c cd db 8b . . .
CALL sub_8cf0h ;8e4f cd f0 8c . . .
l8e52h:
.set_addr+1: JP l8ed5h ;8e52 c3 d5 8e . . .
l8e55h:
CALL sub_8caeh ;8e55 cd ae 8c . . .
LD HL,0c300h ;8e58 21 00 c3 ! . .
CALL sub_8c57h ;8e5b cd 57 8c . W .
CALL FAST_RAM_FN.OFF_EI ;8e5e cd 77 a2 . w .
LD A,(PAGES_BUFFER) ;8e61 3a 00 be : . .
OUT (SLOT3),A ;8e64 d3 e2 . .
CALL 0c135h ;8e66 cd 35 c1 . 5 .
CP 0ffh ;8e69 fe ff . .
JR Z,l8e91h ;8e6b 28 24 ( $
OR A ;8e6d b7 .
JR Z,l8ecch ;8e6e 28 5c ( \
CP 005h ;8e70 fe 05 . .
JP Z,l8f6ch ;8e72 ca 6c 8f . l .
CP 006h ;8e75 fe 06 . .
JP Z,l8f36h ;8e77 ca 36 8f . 6 .
CP 004h ;8e7a fe 04 . .
JP Z,l8f0ah ;8e7c ca 0a 8f . . .
CP 00ch ;8e7f fe 0c . .
JP Z,l8fd5h ;8e81 ca d5 8f . . .
CP 009h ;8e84 fe 09 . .
JP Z,l8f04h ;8e86 ca 04 8f . . .
CP 029h ;8e89 fe 29 . )
JP Z,l8ecch ;8e8b ca cc 8e . . .
JP l9010h ;8e8e c3 10 90 . . .
l8e91h:
LD HL,00800h ;8e91 21 00 08 ! . .
l8e94h:
EI ;8e94 fb .
HALT ;8e95 76 v
PUSH HL ;8e96 e5 .
POP HL ;8e97 e1 .
LD A,(lad01h.tst_byte) ;8e98 3a 3b ad : ; .
OR A ;8e9b b7 .
JP NZ,l8f6ch ;8e9c c2 6c 8f . l .
LD A,(lad3ch) ;8e9f 3a 3c ad : < .
OR A ;8ea2 b7 .
JP NZ,l8f36h ;8ea3 c2 36 8f . 6 .
LD A,(lad3ch+1) ;8ea6 3a 3d ad : = .
OR A ;8ea9 b7 .
JR NZ,l8f0ah ;8eaa 20 5e ^
LD A,(lad3eh) ;8eac 3a 3e ad : > .
OR A ;8eaf b7 .
JP NZ,l8fd5h ;8eb0 c2 d5 8f . . .
LD A,(lad3eh.tst_byte_) ;8eb3 3a 3f ad : ? .
OR A ;8eb6 b7 .
JP NZ,l9010h ;8eb7 c2 10 90 . . .
LD A,(lad3eh.tst_byte) ;8eba 3a 44 ad : D .
OR A ;8ebd b7 .
JR NZ,l8f04h ;8ebe 20 44 D
LD A,(lad01h.tst_addr) ;8ec0 3a 39 ad : 9 .
OR A ;8ec3 b7 .
JP NZ,l8ecch ;8ec4 c2 cc 8e . . .
DEC HL ;8ec7 2b +
LD A,H ;8ec8 7c |
OR L ;8ec9 b5 .
JR NZ,l8e94h ;8eca 20 c8 .
l8ecch:
CALL sub_8c35h ;8ecc cd 35 8c . 5 .
CALL sub_90a6h ;8ecf cd a6 90 . . .
JP NZ,l8e52h ;8ed2 c2 52 8e . R .
l8ed5h: LD HL,l8e55h ;8ed5 21 55 8e ! U .
LD (l8e52h.set_addr),HL ;8ed8 22 53 8e " S .
CALL sub_8cb2h ;8edb cd b2 8c . . .
LD HL,#d200 ;8ede 21 00 d2 ! . .
CALL sub_8c57h ;8ee1 cd 57 8c . W .
.set_word+1: LD HL,#0100 ;8ee4 21 00 01 ! . .
l8ee7h:
EI ;8ee7 fb .
HALT ;8ee8 76 v
PUSH HL ;8ee9 e5 .
LD HL,#0800 ;8eea 21 00 08 ! . .
LD (l8ed5h.set_word),HL ;8eed 22 e5 8e " . .
POP HL ;8ef0 e1 .
LD A,(lad01h.tst_addr) ;8ef1 3a 39 ad : 9 .
OR A ;8ef4 b7 .
JR NZ,l8efch ;8ef5 20 05 .
DEC HL ;8ef7 2b +
LD A,H ;8ef8 7c |
OR L ;8ef9 b5 .
JR NZ,l8ee7h ;8efa 20 eb .
l8efch:
PUSH AF ;8efc f5 .
CALL sub_8c35h ;8efd cd 35 8c . 5 .
POP AF ;8f00 f1 .
JP l8e52h ;8f01 c3 52 8e . R .
l8f04h:
CALL sub_8c35h ;8f04 cd 35 8c . 5 .
JP l839bh ;8f07 c3 9b 83 . . .
l8f0ah:
CALL sub_8c35h ;8f0a cd 35 8c . 5 .
CALL sub_9071h ;8f0d cd 71 90 . q .
LD A,(PAGES_BUFFER) ;8f10 3a 00 be : . .
OUT (SLOT3),A ;8f13 d3 e2 . .
CALL 0c021h ;8f15 cd 21 c0 . ! .
LD HL,0cc00h ;8f18 21 00 cc ! . .
CALL sub_8c57h ;8f1b cd 57 8c . W .
LD A,(PAGES_BUFFER) ;8f1e 3a 00 be : . .
OUT (SLOT3),A ;8f21 d3 e2 . .
LD E,078h ;8f23 1e 78 . x
LD HL,l909dh ;8f25 21 9d 90 ! . .
LD C,008h ;8f28 0e 08 . .
CALL 0c030h ;8f2a cd 30 c0 . 0 .
JP NZ,l9041h ;8f2d c2 41 90 . A .
CALL sub_8c35h ;8f30 cd 35 8c . 5 .
JP l8e52h ;8f33 c3 52 8e . R .
l8f36h:
CALL sub_8c35h ;8f36 cd 35 8c . 5 .
CALL sub_9071h ;8f39 cd 71 90 . q .
LD A,(PAGES_BUFFER) ;8f3c 3a 00 be : . .
OUT (SLOT3),A ;8f3f d3 e2 . .
CALL 0c01eh ;8f41 cd 1e c0 . . .
LD HL,0cc00h ;8f44 21 00 cc ! . .
CALL sub_8c57h ;8f47 cd 57 8c . W .
LD HL,l9097h ;8f4a 21 97 90 ! . .
LD A,(PAGES_BUFFER) ;8f4d 3a 00 be : . .
OUT (SLOT3),A ;8f50 d3 e2 . .
CALL 0c02dh ;8f52 cd 2d c0 . - .
PUSH AF ;8f55 f5 .
CALL sub_8c35h ;8f56 cd 35 8c . 5 .
POP AF ;8f59 f1 .
JP Z,l8e52h ;8f5a ca 52 8e . R .
CALL FAST_RAM_FN.ON_DI ;8f5d cd 73 a2 . s .
LD HL,l9097h ;8f60 21 97 90 ! . .
CALL 00187h ;8f63 cd 87 01 . . .
CALL FAST_RAM_FN.OFF_EI ;8f66 cd 77 a2 . w .
JP l8e52h ;8f69 c3 52 8e . R .
l8f6ch:
LD A,000h ;8f6c 3e 00 > .
OR A ;8f6e b7 .
JR NZ,l8fd1h ;8f6f 20 60 `
EI ;8f71 fb .
CALL sub_8c35h ;8f72 cd 35 8c . 5 .
CALL sub_aa8ah ;8f75 cd 8a aa . . .
EI ;8f78 fb .
CALL sub_8cb2h ;8f79 cd b2 8c . . .
LD A,(PAGES_BUFFER) ;8f7c 3a 00 be : . .
OUT (SLOT1),A ;8f7f d3 a2 . .
LD HL,(0414bh) ;8f81 2a 4b 41 * K A
LD A,080h ;8f84 3e 80 > .
ADD A,H ;8f86 84 .
LD H,A ;8f87 67 g
CALL sub_8c57h ;8f88 cd 57 8c . W .
LD HL,00400h ;8f8b 21 00 04 ! . .
l8f8eh:
EI ;8f8e fb .
HALT ;8f8f 76 v
DEC HL ;8f90 2b +
LD A,H ;8f91 7c |
OR L ;8f92 b5 .
JR Z,l8f9bh ;8f93 28 06 ( .
LD A,(lad01h.tst_addr) ;8f95 3a 39 ad : 9 .
OR A ;8f98 b7 .
JR Z,l8f8eh ;8f99 28 f3 ( .
l8f9bh:
CALL sub_8c35h ;8f9b cd 35 8c . 5 .
CALL sub_aaadh ;8f9e cd ad aa . . .
EI ;8fa1 fb .
CALL sub_8cb2h ;8fa2 cd b2 8c . . .
LD A,(PAGES_BUFFER) ;8fa5 3a 00 be : . .
OUT (SLOT1),A ;8fa8 d3 a2 . .
LD HL,(0414dh) ;8faa 2a 4d 41 * M A
LD A,080h ;8fad 3e 80 > .
ADD A,H ;8faf 84 .
LD H,A ;8fb0 67 g
CALL sub_8c57h ;8fb1 cd 57 8c . W .
LD HL,00400h ;8fb4 21 00 04 ! . .
l8fb7h:
EI ;8fb7 fb .
HALT ;8fb8 76 v
DEC HL ;8fb9 2b +
LD A,H ;8fba 7c |
OR L ;8fbb b5 .
JR Z,l8fc4h ;8fbc 28 06 ( .
LD A,(lad01h.tst_addr) ;8fbe 3a 39 ad : 9 .
OR A ;8fc1 b7 .
JR Z,l8fb7h ;8fc2 28 f3 ( .
l8fc4h:
CALL sub_8c35h ;8fc4 cd 35 8c . 5 .
CALL sub_ab25h ;8fc7 cd 25 ab . % .
EI ;8fca fb .
LD A,001h ;8fcb 3e 01 > .
LD (l8f6ch+1),A ;8fcd 32 6d 8f 2 m .
RET ;8fd0 c9 .
l8fd1h:
CALL sub_8c35h ;8fd1 cd 35 8c . 5 .
RET ;8fd4 c9 .
l8fd5h:
EI ;8fd5 fb .
CALL sub_8c35h ;8fd6 cd 35 8c . 5 .
CALL sub_aaf3h ;8fd9 cd f3 aa . . .
EI ;8fdc fb .
CALL sub_8cb2h ;8fdd cd b2 8c . . .
LD A,(PAGES_BUFFER) ;8fe0 3a 00 be : . .
OUT (SLOT3),A ;8fe3 d3 e2 . .
CALL 0c13ah ;8fe5 cd 3a c1 . : .
CALL 0c13dh ;8fe8 cd 3d c1 . = .
CALL 0c140h ;8feb cd 40 c1 . @ .
LD A,(PAGES_BUFFER) ;8fee 3a 00 be : . .
OUT (SLOT1),A ;8ff1 d3 a2 . .
LD HL,(0412eh) ;8ff3 2a 2e 41 * . A
LD A,080h ;8ff6 3e 80 > .
ADD A,H ;8ff8 84 .
LD H,A ;8ff9 67 g
CALL sub_8c57h ;8ffa cd 57 8c . W .
LD A,(PAGES_BUFFER) ;8ffd 3a 00 be : . .
OUT (SLOT3),A ;9000 d3 e2 . .
CALL 0c143h ;9002 cd 43 c1 . C .
EI ;9005 fb .
CALL sub_8c35h ;9006 cd 35 8c . 5 .
CALL sub_ab25h ;9009 cd 25 ab . % .
EI ;900c fb .
JP l8e52h ;900d c3 52 8e . R .
l9010h:
EI ;9010 fb .
CALL sub_8c35h ;9011 cd 35 8c . 5 .
CALL sub_aad0h ;9014 cd d0 aa . . .
EI ;9017 fb .
CALL sub_8cb2h ;9018 cd b2 8c . . .
LD A,(PAGES_BUFFER) ;901b 3a 00 be : . .
OUT (SLOT1),A ;901e d3 a2 . .
LD HL,(#4138) ;9020 2a 38 41 * 8 A
LD A,080h ;9023 3e 80 > .
ADD A,H ;9025 84 .
LD H,A ;9026 67 g
CALL sub_8c57h ;9027 cd 57 8c . W .
l902ah:
LD A,(lad01h) ;902a 3a 01 ad : . .
OR A ;902d b7 .
JR NZ,l9036h ;902e 20 06 .
LD A,(lad01h.tst_addr) ;9030 3a 39 ad : 9 .
OR A ;9033 b7 .
JR Z,l902ah ;9034 28 f4 ( .
l9036h:
EI ;9036 fb .
CALL sub_8c35h ;9037 cd 35 8c . 5 .
CALL sub_ab25h ;903a cd 25 ab . % .
EI ;903d fb .
JP l8e52h ;903e c3 52 8e . R .
l9041h:
LD HL,(0c133h) ;9041 2a 33 c1 * 3 .
LD C,03ah ;9044 0e 3a . :
l9046h:
LD DE,l909dh ;9046 11 9d 90 . . .
LD B,008h ;9049 06 08 . .
PUSH HL ;904b e5 .
l904ch:
LD A,(DE) ;904c 1a .
CP (HL) ;904d be .
JR NZ,l9066h ;904e 20 16 .
INC DE ;9050 13 .
INC HL ;9051 23 #
DEC B ;9052 05 .
JR NZ,l904ch ;9053 20 f7 .
LD A,(HL) ;9055 7e ~
LD (l85d0h.set_byte),A ;9056 32 57 86 2 W .
DEC A ;9059 3d =
LD (l8544h.set_byte),A ;905a 32 77 85 2 w .
LD SP,0c000h ;905d 31 00 c0 1 . .
CALL sub_8c35h ;9060 cd 35 8c . 5 .
JP l8529h ;9063 c3 29 85 . ) .
l9066h:
POP HL ;9066 e1 .
LD DE,00009h ;9067 11 09 00 . . .
ADD HL,DE ;906a 19 .
DEC C ;906b 0d .
JR NZ,l9046h ;906c 20 d8 .
JP l8f6ch ;906e c3 6c 8f . l .
sub_9071h:
DI ;9071 f3 .
LD A,050h ;9072 3e 50 > P
OUT (SLOT3),A ;9074 d3 e2 . .
LD D,D ;9076 52 R
LD A,000h ;9077 3e 00 > .
LD B,B ;9079 40 @
LD C,000h ;907a 0e 00 . .
l907ch:
LD A,C ;907c 79 y
OUT (PORT_Y),A ;907d d3 89 . .
LD HL,0c000h ;907f 21 00 c0 ! . .
XOR A ;9082 af .
LD C,C ;9083 49 I
LD (HL),A ;9084 77 w
LD B,B ;9085 40 @
INC H ;9086 24 $
LD C,C ;9087 49 I
LD (HL),A ;9088 77 w
LD B,B ;9089 40 @
INC H ;908a 24 $
LD C,C ;908b 49 I
LD (HL),A ;908c 77 w
LD B,B ;908d 40 @
INC C ;908e 0c .
JR NZ,l907ch ;908f 20 eb .
LD A,0c1h ;9091 3e c1 > .
OUT (PORT_Y),A ;9093 d3 89 . .
EI ;9095 fb .
RET ;9096 c9 .
l9097h: NOP ;9097 00 .
NOP ;9098 00 .
NOP ;9099 00 .
NOP ;909a 00 .
NOP ;909b 00 .
NOP ;909c 00 .
l909dh: NOP ;909d 00 .
NOP ;909e 00 .
NOP ;909f 00 .
NOP ;90a0 00 .
NOP ;90a1 00 .
NOP ;90a2 00 .
NOP ;90a3 00 .
NOP ;90a4 00 .
NOP ;90a5 00 .
sub_90a6h:
CALL GENERATE_PALETTE ;90a6 cd 26 93 . & .
CALL sub_8bdbh ;90a9 cd db 8b . . .
CALL sub_8cf0h ;90ac cd f0 8c . . .
CALL sub_9071h ;90af cd 71 90 . q .
LD A,(PAGES_BUFFER) ;90b2 3a 00 be : . .
OUT (SLOT3),A ;90b5 d3 e2 . .
CALL 0c119h ;90b7 cd 19 c1 . . .
LD HL,0cc00h ;90ba 21 00 cc ! . .
CALL sub_8c57h ;90bd cd 57 8c . W .
LD HL,00800h ;90c0 21 00 08 ! . .
l90c3h:
EI ;90c3 fb .
HALT ;90c4 76 v
PUSH HL ;90c5 e5 .
POP HL ;90c6 e1 .
LD A,(lad01h.tst_addr) ;90c7 3a 39 ad : 9 .
OR A ;90ca b7 .
JR NZ,l90d2h ;90cb 20 05 .
DEC HL ;90cd 2b +
LD A,H ;90ce 7c |
OR L ;90cf b5 .
JR NZ,l90c3h ;90d0 20 f1 .
l90d2h:
PUSH AF ;90d2 f5 .
CALL sub_8c35h ;90d3 cd 35 8c . 5 .
POP AF ;90d6 f1 .
RET ;90d7 c9 .
sub_90d8h:
DI ;90d8 f3 .
LD A,050h ;90d9 3e 50 > P
OUT (SLOT3),A ;90db d3 e2 . .
CALL sub_83f7h ;90dd cd f7 83 . . .
DI ;90e0 f3 .
LD A,050h ;90e1 3e 50 > P
OUT (SLOT3),A ;90e3 d3 e2 . .
LD A,053h ;90e5 3e 53 > S
OUT (PORT_Y),A ;90e7 d3 89 . .
LD HL,0c37ch ;90e9 21 7c c3 ! | .
LD (HL),0fch ;90ec 36 fc 6 .
LD A,0d3h ;90ee 3e d3 > .
OUT (PORT_Y),A ;90f0 d3 89 . .
LD (HL),0fch ;90f2 36 fc 6 .
LD A,0dbh ;90f4 3e db > .
OUT (PORT_Y),A ;90f6 d3 89 . .
LD (HL),0fdh ;90f8 36 fd 6 .
LD A,05bh ;90fa 3e 5b > [
OUT (PORT_Y),A ;90fc d3 89 . .
LD (HL),0fdh ;90fe 36 fd 6 .
CALL sub_941dh ;9100 cd 1d 94 . . .
RET ;9103 c9 .
sub_9104h:
LD A,(0be06h) ;9104 3a 06 be : . .
OUT (SLOT3),A ;9107 d3 e2 . .
LD A,019h ;9109 3e 19 > .
LD HL,00000h ;910b 21 00 00 ! . .
LD DE,0c000h ;910e 11 00 c0 . . .
EXX ;9111 d9 .
LD BC,00008h ;9112 01 08 00 . . .
LD HL,l9d66h ;9115 21 66 9d ! f .
CALL sub_9132h ;9118 cd 32 91 . 2 .
EXX ;911b d9 .
LD A,012h ;911c 3e 12 > .
LD HL,00000h ;911e 21 00 00 ! . .
EXX ;9121 d9 .
LD HL,l9eddh ;9122 21 dd 9e ! . .
CALL sub_9132h ;9125 cd 32 91 . 2 .
EXX ;9128 d9 .
LD A,00eh ;9129 3e 0e > .
LD HL,00000h ;912b 21 00 00 ! . .
EXX ;912e d9 .
LD HL,l9febh ;912f 21 eb 9f ! . .
sub_9132h:
EX AF,AF' ;9132 08 .
LD A,(HL) ;9133 7e ~
INC HL ;9134 23 #
EXX ;9135 d9 .
LD C,A ;9136 4f O
EXX ;9137 d9 .
LD A,(HL) ;9138 7e ~
INC HL ;9139 23 #
EXX ;913a d9 .
LD B,A ;913b 47 G
EXX ;913c d9 .
INC HL ;913d 23 #
EXX ;913e d9 .
LD A,L ;913f 7d }
EXX ;9140 d9 .
LD (HL),A ;9141 77 w
INC HL ;9142 23 #
EXX ;9143 d9 .
LD A,H ;9144 7c |
EXX ;9145 d9 .
LD (HL),A ;9146 77 w
INC HL ;9147 23 #
INC HL ;9148 23 #
EXX ;9149 d9 .
LD A,E ;914a 7b {
EXX ;914b d9 .
LD (HL),A ;914c 77 w
INC HL ;914d 23 #
EXX ;914e d9 .
LD A,D ;914f 7a z
SUB 0c0h ;9150 d6 c0 . .
EXX ;9152 d9 .
LD (HL),A ;9153 77 w
ADD HL,BC ;9154 09 .
EXX ;9155 d9 .
LD A,B ;9156 78 x
LD B,000h ;9157 06 00 . .
l9159h:
ADD HL,BC ;9159 09 .
DEC A ;915a 3d =
JR NZ,l9159h ;915b 20 fc .
l915dh:
LD A,(DE) ;915d 1a .
INC DE ;915e 13 .
CP 0ffh ;915f fe ff . .
JR Z,l9167h ;9161 28 04 ( .
INC DE ;9163 13 .
INC DE ;9164 13 .
JR l915dh ;9165 18 f6 . .
l9167h:
EXX ;9167 d9 .
EX AF,AF' ;9168 08 .
DEC A ;9169 3d =
JR NZ,sub_9132h ;916a 20 c6 .
RET ;916c c9 .
sub_916dh:
LD A,(0be0eh) ;916d 3a 0e be : . .
OUT (SLOT3),A ;9170 d3 e2 . .
DI ;9172 f3 .
LD HL,0c000h ;9173 21 00 c0 ! . .
LD D,D ;9176 52 R
LD A,000h ;9177 3e 00 > .
LD B,B ;9179 40 @
l917ah:
LD C,C ;917a 49 I
LD (HL),A ;917b 77 w
LD B,B ;917c 40 @
INC H ;917d 24 $
JR NZ,l917ah ;917e 20 fa .
RET ;9180 c9 .
l9181h: ;9181
DB 00,00,00,00,00,00,00,00
DB 00,00,00,00,00,00,00,00
DB 00,00,00,00,00,00,00,00
DB 00,01,01,01,01,01,01,01
DB 01,01,01,01,01,01,01,01
DB 01,01,01,01,01,01,01,01
DB 01,01,02,00,00,00,00,00
DB 00,00
sub_91bbh:
LD (09343h),A ;91bb 32 43 93 2 C .
CALL SET_PAGE_SLOT3_af ;91be cd ec a1 . . .
LD B,IYL ;91c1 fd 45 . E
LD A,01fh ;91c3 3e 1f > .
AND B ;91c5 a0 .
RLCA ;91c6 07 .
RLCA ;91c7 07 .
RLCA ;91c8 07 .
LD (l91eeh+1),A ;91c9 32 ef 91 2 . .
LD A,0e0h ;91cc 3e e0 > .
AND B ;91ce a0 .
RRCA ;91cf 0f .
RRCA ;91d0 0f .
LD B,A ;91d1 47 G
LD C,IYH ;91d2 fd 4c . L
LD A,003h ;91d4 3e 03 > .
AND C ;91d6 a1 .
RRCA ;91d7 0f .
RRCA ;91d8 0f .
OR B ;91d9 b0 .
LD E,A ;91da 5f _
LD A,00ch ;91db 3e 0c > .
AND C ;91dd a1 .
RRCA ;91de 0f .
RRCA ;91df 0f .
OR 040h ;91e0 f6 40 . @
LD D,A ;91e2 57 W
EX DE,HL ;91e3 eb .
LD (091f7h),HL ;91e4 22 f7 91 " . .
EX DE,HL ;91e7 eb .
LD A,050h ;91e8 3e 50 > P
OUT (SLOT1),A ;91ea d3 a2 . .
LD C,008h ;91ec 0e 08 . .
l91eeh:
LD A,000h ;91ee 3e 00 > .
OUT (PORT_Y),A ;91f0 d3 89 . .
INC A ;91f2 3c <
LD (l91eeh+1),A ;91f3 32 ef 91 2 . .
LD DE,00000h ;91f6 11 00 00 . . .
LD B,008h ;91f9 06 08 . .
l91fbh:
LD A,(HL) ;91fb 7e ~
CALL sub_933bh ;91fc cd 3b 93 . ; .
LD (DE),A ;91ff 12 .
INC DE ;9200 13 .
DEC B ;9201 05 .
JR NZ,l91fbh ;9202 20 f7 .
DEC C ;9204 0d .
JR NZ,l91eeh ;9205 20 e7 .
LD A,0c1h ;9207 3e c1 > .
OUT (PORT_Y),A ;9209 d3 89 . .
LD A,(09343h) ;920b 3a 43 93 : C .
RET ;920e c9 .
sub_920fh:
LD (09343h),A ;920f 32 43 93 2 C .
EX DE,HL ;9212 eb .
LD HL,0b200h ;9213 21 00 b2 ! . .
LD A,IYH ;9216 fd 7c . |
ADD A,H ;9218 84 .
LD H,A ;9219 67 g
LD C,IYL ;921a fd 4d . M
LD B,000h ;921c 06 00 . .
ADD HL,BC ;921e 09 .
EX DE,HL ;921f eb .
LD A,(HL) ;9220 7e ~
LD (DE),A ;9221 12 .
CALL sub_933bh ;9222 cd 3b 93 . ; .
LD A,(09343h) ;9225 3a 43 93 : C .
RET ;9228 c9 .
sub_9229h:
LD (09265h),A ;9229 32 65 92 2 e .
LD B,IYL ;922c fd 45 . E
LD A,01fh ;922e 3e 1f > .
AND B ;9230 a0 .
RLCA ;9231 07 .
RLCA ;9232 07 .
RLCA ;9233 07 .
LD (l9259h+1),A ;9234 32 5a 92 2 Z .
LD A,0e0h ;9237 3e e0 > .
AND B ;9239 a0 .
RRCA ;923a 0f .
RRCA ;923b 0f .
LD B,A ;923c 47 G
LD C,IYH ;923d fd 4c . L
LD A,003h ;923f 3e 03 > .
AND C ;9241 a1 .
RRCA ;9242 0f .
RRCA ;9243 0f .
OR B ;9244 b0 .
LD E,A ;9245 5f _
LD A,00ch ;9246 3e 0c > .
AND C ;9248 a1 .
RRCA ;9249 0f .
RRCA ;924a 0f .
OR 040h ;924b f6 40 . @
LD D,A ;924d 57 W
EX DE,HL ;924e eb .
LD (09262h),HL ;924f 22 62 92 " b .
EX DE,HL ;9252 eb .
LD A,050h ;9253 3e 50 > P
OUT (SLOT1),A ;9255 d3 a2 . .
LD C,008h ;9257 0e 08 . .
l9259h:
LD A,000h ;9259 3e 00 > .
OUT (PORT_Y),A ;925b d3 89 . .
INC A ;925d 3c <
LD (l9259h+1),A ;925e 32 5a 92 2 Z .
LD DE,00000h ;9261 11 00 00 . . .
LD A,000h ;9264 3e 00 > .
LD B,008h ;9266 06 08 . .
l9268h:
LD (DE),A ;9268 12 .
INC DE ;9269 13 .
DEC B ;926a 05 .
JR NZ,l9268h ;926b 20 fb .
DEC C ;926d 0d .
JR NZ,l9259h ;926e 20 e9 .
LD A,0c1h ;9270 3e c1 > .
OUT (PORT_Y),A ;9272 d3 89 . .
LD A,(09265h) ;9274 3a 65 92 : e .
RET ;9277 c9 .
sub_9278h:
LD E,A ;9278 5f _
PUSH BC ;9279 c5 .
LD A,B ;927a 78 x
ADD A,B ;927b 80 .
INC A ;927c 3c <
ADD A,000h ;927d c6 00 . .
LD B,A ;927f 47 G
LD A,050h ;9280 3e 50 > P
OUT (SLOT1),A ;9282 d3 a2 . .
RRC E ;9284 cb 0b . .
RRC E ;9286 cb 0b . .
LD A,B ;9288 78 x
OUT (PORT_Y),A ;9289 d3 89 . .
LD B,000h ;928b 06 00 . .
LD HL,04300h ;928d 21 00 43 ! . C
ADD HL,BC ;9290 09 .
ADD HL,BC ;9291 09 .
ADD HL,BC ;9292 09 .
ADD HL,BC ;9293 09 .
LD A,IYH ;9294 fd 7c . |
AND 00ch ;9296 e6 0c . .
RRCA ;9298 0f .
RRCA ;9299 0f .
OR 020h ;929a f6 20 .
OR E ;929c b3 .
LD (HL),A ;929d 77 w
INC HL ;929e 23 #
LD A,IYH ;929f fd 7c . |
AND 003h ;92a1 e6 03 . .
RRCA ;92a3 0f .
RRCA ;92a4 0f .
LD B,A ;92a5 47 G
LD A,IYL ;92a6 fd 7d . }
AND 0e0h ;92a8 e6 e0 . .
RRCA ;92aa 0f .
RRCA ;92ab 0f .
OR B ;92ac b0 .
LD (HL),A ;92ad 77 w
INC HL ;92ae 23 #
LD A,IYL ;92af fd 7d . }
AND 01fh ;92b1 e6 1f . .
RLCA ;92b3 07 .
RLCA ;92b4 07 .
RLCA ;92b5 07 .
LD (HL),A ;92b6 77 w
INC HL ;92b7 23 #
LD (HL),000h ;92b8 36 00 6 .
POP BC ;92ba c1 .
LD A,0c1h ;92bb 3e c1 > .
OUT (PORT_Y),A ;92bd d3 89 . .
RET ;92bf c9 .
sub_92c0h:
JR l92ech ;92c0 18 2a . *
CALL sub_a208h ;92c2 cd 08 a2 . . .
LD HL,0c300h ;92c5 21 00 c3 ! . .
LD DE,02000h ;92c8 11 00 20 . .
XOR A ;92cb af .
OUT (PORT_Y),A ;92cc d3 89 . .
LD B,020h ;92ce 06 20 .
DI ;92d0 f3 .
LD D,D ;92d1 52 R
LD A,000h ;92d2 3e 00 > .
l92d4h:
LD E,E ;92d4 5b [
LD (HL),D ;92d5 72 r
LD B,B ;92d6 40 @
INC L ;92d7 2c ,
LD E,E ;92d8 5b [
LD (HL),E ;92d9 73 s
LD B,B ;92da 40 @
INC L ;92db 2c ,
LD E,E ;92dc 5b [
LD (HL),E ;92dd 73 s
LD B,B ;92de 40 @
INC L ;92df 2c ,
LD E,E ;92e0 5b [
LD (HL),E ;92e1 73 s
LD B,B ;92e2 40 @
INC L ;92e3 2c ,
DJNZ l92d4h ;92e4 10 ee . .
LD A,0c1h ;92e6 3e c1 > .
OUT (PORT_Y),A ;92e8 d3 89 . .
EI ;92ea fb .
RET ;92eb c9 .
l92ech:
LD IY,00000h ;92ec fd 21 00 00 . ! . .
JR l92fah ;92f0 18 08 . .
sub_92f2h:
LD IY,00000h ;92f2 fd 21 00 00 . ! . .
XOR A ;92f6 af .
CALL sub_9229h ;92f7 cd 29 92 . ) .
l92fah:
LD BC,00000h ;92fa 01 00 00 . . .
l92fdh:
XOR A ;92fd af .
CALL sub_9278h ;92fe cd 78 92 . x .
INC B ;9301 04 .
LD A,028h ;9302 3e 28 > (
CP B ;9304 b8 .
JR NZ,l92fdh ;9305 20 f6 .
LD B,000h ;9307 06 00 . .
INC C ;9309 0c .
LD A,020h ;930a 3e 20 >
CP C ;930c b9 .
JR NZ,l92fdh ;930d 20 ee .
RET ;930f c9 .
SET_PALETTE: LD DE,#0100 ;9310 11 00 01 . . .
.loop: PUSH AF ;9313 f5 .
PUSH DE ;9314 d5 .
LD HL,.colors ;9315 21 22 93 ! " .
LD BC,#FF*256 + BIOS.PIC_SET_PAL ;9318 01 a4 ff . . .
RST ToBIOS ;931b cf .
POP DE ;931c d1 .
POP AF ;931d f1 .
INC E ;931e 1c .
JR NZ,.loop ;931f 20 f2 .
RET ;9321 c9 .
.colors: DB 0,0,0,0 ;9322 00 .
GENERATE_PALETTE:
XOR A ;9326 af .
.loop: CALL SET_PALETTE ;9327 cd 10 93 . . .
INC A ;932a 3c <
CP 8 ;932b fe 08 . .
JR NZ,.loop ;932d 20 f8 .
EI ;932f fb .
HALT ;9330 76 v
RET ;9331 c9 .
CALL GENERATE_PALETTE ;9332 cd 26 93 . & .
DI ;9335 f3 .
CALL sub_92f2h ;9336 cd f2 92 . . .
EI ;9339 fb .
RET ;933a c9 .
sub_933bh:
INC L ;933b 2c ,
RET NZ ;933c c0 .
INC H ;933d 24 $
RET NZ ;933e c0 .
LD H,0c0h ;933f 26 c0 & .
PUSH AF ;9341 f5 .
LD A,000h ;9342 3e 00 > .
INC A ;9344 3c <
LD (09343h),A ;9345 32 43 93 2 C .
CALL SET_PAGE_SLOT3_af ;9348 cd ec a1 . . .
POP AF ;934b f1 .
RET ;934c c9 .
sub_934dh:
CALL FAST_RAM_FN.ON_DI ;934d cd 73 a2 . s .
LD A,(0be05h) ;9350 3a 05 be : . .
OUT (SLOT1),A ;9353 d3 a2 . .
LD A,(03f1ah) ;9355 3a 1a 3f : . ?
LD C,A ;9358 4f O
LD A,(03f1bh) ;9359 3a 1b 3f : . ?
LD B,A ;935c 47 G
LD HL,(03f17h) ;935d 2a 17 3f * . ?
LD A,0c0h ;9360 3e c0 > .
ADD A,H ;9362 84 .
LD H,A ;9363 67 g
LD IYH,040h ;9364 fd 26 40 . & @
LD IX,0c000h ;9367 dd 21 00 c0 . ! . .
LD DE,04040h ;936b 11 40 40 . @ @
l936eh:
PUSH DE ;936e d5 .
PUSH BC ;936f c5 .
l9370h:
LD A,(03f19h) ;9370 3a 19 3f : . ?
CALL SET_PAGE_SLOT3_af ;9373 cd ec a1 . . .
LD A,(HL) ;9376 7e ~
INC HL ;9377 23 #
CP 0e0h ;9378 fe e0 . .
EXX ;937a d9 .
JR NC,l93ech ;937b 30 6f 0 o
LD IYL,A ;937d fd 6f . o
LD C,(iy+000h) ;937f fd 4e 00 . N .
INC IYH ;9382 fd 24 . $
LD B,(iy+000h) ;9384 fd 46 00 . F .
DEC IYH ;9387 fd 25 . %
l9389h:
LD A,(0be08h) ;9389 3a 08 be : . .
OUT (SLOT3),A ;938c d3 e2 . .
LD (ix+000h),C ;938e dd 71 00 . q .
INC IX ;9391 dd 23 . #
LD (ix+000h),B ;9393 dd 70 00 . p .
INC IX ;9396 dd 23 . #
XOR A ;9398 af .
LD (ix+000h),A ;9399 dd 77 00 . w .
INC IX ;939c dd 23 . #
LD (ix+000h),A ;939e dd 77 00 . w .
INC IX ;93a1 dd 23 . #
EXX ;93a3 d9 .
DEC D ;93a4 15 .
DEC B ;93a5 05 .
JR NZ,l9370h ;93a6 20 c8 .
OR D ;93a8 b2 .
JR Z,l93c3h ;93a9 28 18 ( .
XOR A ;93ab af .
l93ach:
LD (ix+000h),A ;93ac dd 77 00 . w .
INC IX ;93af dd 23 . #
LD (ix+000h),A ;93b1 dd 77 00 . w .
INC IX ;93b4 dd 23 . #
LD (ix+000h),A ;93b6 dd 77 00 . w .
INC IX ;93b9 dd 23 . #
LD (ix+000h),A ;93bb dd 77 00 . w .
INC IX ;93be dd 23 . #
DEC D ;93c0 15 .
JR NZ,l93ach ;93c1 20 e9 .
l93c3h:
POP BC ;93c3 c1 .
POP DE ;93c4 d1 .
DEC E ;93c5 1d .
DEC C ;93c6 0d .
JR NZ,l936eh ;93c7 20 a5 .
OR E ;93c9 b3 .
JR Z,l93e9h ;93ca 28 1d ( .
l93cch:
PUSH DE ;93cc d5 .
l93cdh:
XOR A ;93cd af .
LD (ix+000h),A ;93ce dd 77 00 . w .
INC IX ;93d1 dd 23 . #
LD (ix+000h),A ;93d3 dd 77 00 . w .
INC IX ;93d6 dd 23 . #
LD (ix+000h),A ;93d8 dd 77 00 . w .
INC IX ;93db dd 23 . #
LD (ix+000h),A ;93dd dd 77 00 . w .
INC IX ;93e0 dd 23 . #
DEC D ;93e2 15 .
JR NZ,l93cdh ;93e3 20 e8 .
POP DE ;93e5 d1 .
DEC E ;93e6 1d .
JR NZ,l93cch ;93e7 20 e3 .
l93e9h:
JP FAST_RAM_FN.OFF_EI ;93e9 c3 77 a2 . w .
l93ech:
LD C,A ;93ec 4f O
LD B,000h ;93ed 06 00 . .
JR l9389h ;93ef 18 98 . .
sub_93f1h:
LD A,(03f1ch) ;93f1 3a 1c 3f : . ?
OR A ;93f4 b7 .
LD DE,00b00h ;93f5 11 00 0b . . .
JR Z,l93fdh ;93f8 28 03 ( .
LD DE,00b80h ;93fa 11 80 0b . . .
l93fdh:
LD HL,03c04h ;93fd 21 04 3c ! . <
LD IXL,008h ;9400 dd 2e 08 . . .
LD BC,0000ch ;9403 01 0c 00 . . .
l9406h:
LD (HL),D ;9406 72 r
INC HL ;9407 23 #
LD A,(HL) ;9408 7e ~
RES 7,A ;9409 cb bf . .
OR E ;940b b3 .
LD (HL),A ;940c 77 w
ADD HL,BC ;940d 09 .
DEC IXL ;940e dd 2d . -
JR NZ,l9406h ;9410 20 f4 .
LD (HL),D ;9412 72 r
LD A,(03f1eh) ;9413 3a 1e 3f : . ?
RES 7,A ;9416 cb bf . .
OR E ;9418 b3 .
LD (03f1eh),A ;9419 32 1e 3f 2 . ?
RET ;941c c9 .
sub_941dh:
DI ;941d f3 .
LD A,050h ;941e 3e 50 > P
OUT (SLOT1),A ;9420 d3 a2 . .
LD A,059h ;9422 3e 59 > Y
CALL sub_9450h ;9424 cd 50 94 . P .
LD A,0d9h ;9427 3e d9 > .
CALL sub_9450h ;9429 cd 50 94 . P .
CALL sub_9435h ;942c cd 35 94 . 5 .
LD A,0c1h ;942f 3e c1 > .
OUT (PORT_Y),A ;9431 d3 89 . .
EI ;9433 fb .
RET ;9434 c9 .
sub_9435h:
LD HL,l8021h ;9435 21 21 80 ! ! .
LD DE,04300h ;9438 11 00 43 . . C
LD D,D ;943b 52 R
LD A,080h ;943c 3e 80 > .
LD B,B ;943e 40 @
LD A,04fh ;943f 3e 4f > O
OUT (PORT_Y),A ;9441 d3 89 . .
LD L,L ;9443 6d m
LD A,(HL) ;9444 7e ~
LD (DE),A ;9445 12 .
LD B,B ;9446 40 @
LD A,0cfh ;9447 3e cf > .
OUT (PORT_Y),A ;9449 d3 89 . .
LD L,L ;944b 6d m
LD A,(HL) ;944c 7e ~
LD (DE),A ;944d 12 .
LD B,B ;944e 40 @
RET ;944f c9 .
sub_9450h:
OUT (PORT_Y),A ;9450 d3 89 . .
LD HL,04300h ;9452 21 00 43 ! . C
l9455h:
LD A,(HL) ;9455 7e ~
OR 004h ;9456 f6 04 . .
LD (HL),A ;9458 77 w
INC L ;9459 2c ,
INC L ;945a 2c ,
INC L ;945b 2c ,
XOR A ;945c af .
LD (HL),A ;945d 77 w
INC L ;945e 2c ,
LD A,L ;945f 7d }
CP 0a0h ;9460 fe a0 . .
JR NZ,l9455h ;9462 20 f1 .
RET ;9464 c9 .
sub_9465h:
LD IY,00000h ;9465 fd 21 00 00 . ! . .
LD A,(0be02h) ;9469 3a 02 be : . .
OUT (SLOT1),A ;946c d3 a2 . .
LD HL,04000h ;946e 21 00 40 ! . @
LD DE,00c00h ;9471 11 00 0c . . .
l9474h:
LD A,IYH ;9474 fd 7c . |
AND 00ch ;9476 e6 0c . .
RRCA ;9478 0f .
RRCA ;9479 0f .
OR 060h ;947a f6 60 . `
LD (HL),A ;947c 77 w
INC HL ;947d 23 #
LD A,IYH ;947e fd 7c . |
AND 003h ;9480 e6 03 . .
RRCA ;9482 0f .
RRCA ;9483 0f .
LD B,A ;9484 47 G
LD A,IYL ;9485 fd 7d . }
AND 0e0h ;9487 e6 e0 . .
RRCA ;9489 0f .
RRCA ;948a 0f .
OR B ;948b b0 .
LD (HL),A ;948c 77 w
INC HL ;948d 23 #
LD A,IYL ;948e fd 7d . }
AND 01fh ;9490 e6 1f . .
RLCA ;9492 07 .
RLCA ;9493 07 .
RLCA ;9494 07 .
LD (HL),A ;9495 77 w
INC HL ;9496 23 #
LD (HL),000h ;9497 36 00 6 .
INC HL ;9499 23 #
INC IY ;949a fd 23 . #
DEC DE ;949c 1b .
LD A,D ;949d 7a z
OR E ;949e b3 .
JR NZ,l9474h ;949f 20 d3 .
RET ;94a1 c9 .
sub_94a2h:
CALL FAST_RAM_FN.ON_DI ;94a2 cd 73 a2 . s .
LD HL,03c0bh ;94a5 21 0b 3c ! . <
LD DE,0000dh ;94a8 11 0d 00 . . .
LD C,0ffh ;94ab 0e ff . .
LD (HL),C ;94ad 71 q
ADD HL,DE ;94ae 19 .
LD (HL),C ;94af 71 q
ADD HL,DE ;94b0 19 .
LD (HL),C ;94b1 71 q
ADD HL,DE ;94b2 19 .
LD (HL),C ;94b3 71 q
ADD HL,DE ;94b4 19 .
LD (HL),C ;94b5 71 q
ADD HL,DE ;94b6 19 .
LD (HL),C ;94b7 71 q
ADD HL,DE ;94b8 19 .
LD (HL),C ;94b9 71 q
ADD HL,DE ;94ba 19 .
LD (HL),C ;94bb 71 q
JP FAST_RAM_FN.OFF_EI ;94bc c3 77 a2 . w .
sub_94bfh:
LD A,(0be08h) ;94bf 3a 08 be : . .
OUT (SLOT3),A ;94c2 d3 e2 . .
CALL FAST_RAM_FN.ON_DI ;94c4 cd 73 a2 . s .
LD HL,0c000h ;94c7 21 00 c0 ! . .
LD IX,03c01h ;94ca dd 21 01 3c . ! . <
LD E,000h ;94ce 1e 00 . .
LD IY,00000h ;94d0 fd 21 00 00 . ! . .
LD BC,00004h ;94d4 01 04 00 . . .
l94d7h:
LD A,(HL) ;94d7 7e ~
CP 0e0h ;94d8 fe e0 . .
JR C,l9518h ;94da 38 3c 8 <
EXX ;94dc d9 .
LD HL,l9533h ;94dd 21 33 95 ! 3 .
SUB 0e0h ;94e0 d6 e0 . .
LD C,A ;94e2 4f O
LD B,000h ;94e3 06 00 . .
ADD HL,BC ;94e5 09 .
ADD HL,BC ;94e6 09 .
ADD HL,BC ;94e7 09 .
LD A,(HL) ;94e8 7e ~
INC HL ;94e9 23 #
LD (ix+00ch),A ;94ea dd 77 0c . w .
LD A,(HL) ;94ed 7e ~
INC HL ;94ee 23 #
LD (ix+007h),A ;94ef dd 77 07 . w .
LD A,(HL) ;94f2 7e ~
LD (ix+008h),A ;94f3 dd 77 08 . w .
LD A,IYL ;94f6 fd 7d . }
LD (ix+00ah),A ;94f8 dd 77 0a . w .
LD A,IYH ;94fb fd 7c . |
LD (ix+00bh),A ;94fd dd 77 0b . w .
LD (ix+009h),000h ;9500 dd 36 09 00 . 6 . .
LD (ix+000h),000h ;9504 dd 36 00 00 . 6 . .
LD (ix+001h),000h ;9508 dd 36 01 00 . 6 . .
LD DE,0000dh ;950c 11 0d 00 . . .
ADD IX,DE ;950f dd 19 . .
EXX ;9511 d9 .
XOR A ;9512 af .
LD (HL),A ;9513 77 w
INC HL ;9514 23 #
LD (HL),A ;9515 77 w
DEC HL ;9516 2b +
INC E ;9517 1c .
l9518h:
ADD HL,BC ;9518 09 .
INC IYH ;9519 fd 24 . $
LD A,IYH ;951b fd 7c . |
CP 040h ;951d fe 40 . @
JR NZ,l94d7h ;951f 20 b6 .
LD IYH,000h ;9521 fd 26 00 . & .
INC IYL ;9524 fd 2c . ,
LD A,IYL ;9526 fd 7d . }
CP 03fh ;9528 fe 3f . ?
JR NZ,l94d7h ;952a 20 ab .
LD A,E ;952c 7b {
LD (03c00h),A ;952d 32 00 3c 2 . <
JP FAST_RAM_FN.OFF_EI ;9530 c3 77 a2 . w .
l9533h:
NOP ;9533 00 .
NOP ;9534 00 .
NOP ;9535 00 .
LD BC,00000h ;9536 01 00 00 . . .
LD (BC),A ;9539 02 .
NOP ;953a 00 .
NOP ;953b 00 .
LD A,(BC) ;953c 0a .
NOP ;953d 00 .
NOP ;953e 00 .
INC BC ;953f 03 .
NOP ;9540 00 .
NOP ;9541 00 .
sub_9542h:
XOR A ;9542 af .
LD (l85d0h.set_byte5),A ;9543 32 47 86 2 G .
LD A,0c1h ;9546 3e c1 > .
OUT (PORT_Y),A ;9548 d3 89 . .
LD A,(0be08h) ;954a 3a 08 be : . .
OUT (SLOT3),A ;954d d3 e2 . .
LD A,(0be0fh) ;954f 3a 0f be : . .
OUT (SLOT1),A ;9552 d3 a2 . .
LD HL,0c000h ;9554 21 00 c0 ! . .
LD IX,04002h ;9557 dd 21 02 40 . ! . @
LD DE,00000h ;955b 11 00 00 . . .
EXX ;955e d9 .
LD B,000h ;955f 06 00 . .
EXX ;9561 d9 .
l9562h:
LD A,(HL) ;9562 7e ~
CP 006h ;9563 fe 06 . .
JR NZ,l9570h ;9565 20 09 .
LD A,(l85d0h.set_byte5) ;9567 3a 47 86 : G .
INC A ;956a 3c <
LD (l85d0h.set_byte5),A ;956b 32 47 86 2 G .
LD A,006h ;956e 3e 06 > .
l9570h:
EXX ;9570 d9 .
LD C,A ;9571 4f O
LD HL,l9595h ;9572 21 95 95 ! . .
ADD HL,BC ;9575 09 .
LD A,(HL) ;9576 7e ~
OR A ;9577 b7 .
EXX ;9578 d9 .
JR Z,l9588h ;9579 28 0d ( .
LD A,L ;957b 7d }
LD (ix+000h),A ;957c dd 77 00 . w .
INC IX ;957f dd 23 . #
LD A,H ;9581 7c |
LD (ix+000h),A ;9582 dd 77 00 . w .
INC IX ;9585 dd 23 . #
INC DE ;9587 13 .
l9588h:
INC HL ;9588 23 #
INC HL ;9589 23 #
INC HL ;958a 23 #
INC HL ;958b 23 #
LD A,H ;958c 7c |
OR L ;958d b5 .
JR NZ,l9562h ;958e 20 d2 .
LD (04000h),DE ;9590 ed 53 00 40 . S . @
RET ;9594 c9 .
l9595h:
NOP ;9595 00 .
NOP ;9596 00 .
NOP ;9597 00 .
NOP ;9598 00 .
INC B ;9599 04 .
NOP ;959a 00 .
LD B,000h ;959b 06 00 . .
NOP ;959d 00 .
NOP ;959e 00 .
NOP ;959f 00 .
NOP ;95a0 00 .
NOP ;95a1 00 .
NOP ;95a2 00 .
NOP ;95a3 00 .
NOP ;95a4 00 .
NOP ;95a5 00 .
NOP ;95a6 00 .
NOP ;95a7 00 .
NOP ;95a8 00 .
NOP ;95a9 00 .
NOP ;95aa 00 .
NOP ;95ab 00 .
NOP ;95ac 00 .
NOP ;95ad 00 .
NOP ;95ae 00 .
LD A,(DE) ;95af 1a .
sub_95b0h:
LD A,(0be11h) ;95b0 3a 11 be : . .
OUT (SLOT1),A ;95b3 d3 a2 . .
XOR A ;95b5 af .
LD (04000h),A ;95b6 32 00 40 2 . @
RET ;95b9 c9 .
sub_95bah:
CALL FAST_RAM_FN.ON_DI ;95ba cd 73 a2 . s .
XOR A ;95bd af .
LD (03f1fh),A ;95be 32 1f 3f 2 . ?
LD (03f20h),A ;95c1 32 20 3f 2 ?
LD (03f21h),A ;95c4 32 21 3f 2 ! ?
LD (03f22h),A ;95c7 32 22 3f 2 " ?
LD (03f23h),A ;95ca 32 23 3f 2 # ?
LD (03f24h),A ;95cd 32 24 3f 2 $ ?
LD (03f25h),A ;95d0 32 25 3f 2 % ?
LD (03f26h),A ;95d3 32 26 3f 2 & ?
LD (03f27h),A ;95d6 32 27 3f 2 ' ?
LD (03f28h),A ;95d9 32 28 3f 2 ( ?
JP FAST_RAM_FN.OFF_EI ;95dc c3 77 a2 . w .
sub_95dfh:
LD IY,00a80h ;95df fd 21 80 0a . ! . .
LD BC,0001eh ;95e3 01 1e 00 . . .
CALL sub_95f3h ;95e6 cd f3 95 . . .
LD BC,0001fh ;95e9 01 1f 00 . . .
CALL sub_95f3h ;95ec cd f3 95 . . .
CALL sub_9607h ;95ef cd 07 96 . . .
RET ;95f2 c9 .
sub_95f3h:
PUSH IY ;95f3 fd e5 . .
PUSH BC ;95f5 c5 .
LD A,002h ;95f6 3e 02 > .
CALL sub_9278h ;95f8 cd 78 92 . x .
POP BC ;95fb c1 .
POP IY ;95fc fd e1 . .
INC IY ;95fe fd 23 . #
INC B ;9600 04 .
LD A,027h ;9601 3e 27 > '
CP B ;9603 b8 .
JR NZ,sub_95f3h ;9604 20 ed .
RET ;9606 c9 .
sub_9607h:
CALL sub_9617h ;9607 cd 17 96 . . .
CALL sub_9632h ;960a cd 32 96 . 2 .
CALL sub_9640h ;960d cd 40 96 . @ .
CALL sub_964dh ;9610 cd 4d 96 . M .
CALL sub_965ah ;9613 cd 5a 96 . Z .
RET ;9616 c9 .
sub_9617h:
LD HL,l962bh ;9617 21 2b 96 ! + .
LD A,007h ;961a 3e 07 > .
LD B,01fh ;961c 06 1f . .
l961eh:
PUSH AF ;961e f5 .
LD C,(HL) ;961f 4e N
INC HL ;9620 23 #
PUSH HL ;9621 e5 .
CALL sub_9667h ;9622 cd 67 96 . g .
POP HL ;9625 e1 .
POP AF ;9626 f1 .
DEC A ;9627 3d =
JR NZ,l961eh ;9628 20 f4 .
RET ;962a c9 .
l962bh: DB 0 ;962b 00 .
l962ch: DB 0 ;962c 00 .
l962dh: DB 0 ;962d 00 .
l962eh: DB 0 ;962e 00 .
l962fh: DB 0 ;962f 00 .
l9630h: DB 0 ;9630 00 .
l9631h: DB 0 ;9631 00 .
sub_9632h:
LD HL,l963eh ;9632 21 3e 96 ! > .
LD A,002h ;9635 3e 02 > .
LD B,019h ;9637 06 19 . .
JP l961eh ;9639 c3 1e 96 . . .
NOP ;963c 00 .
l963dh:
NOP ;963d 00 .
l963eh:
NOP ;963e 00 .
l963fh:
NOP ;963f 00 .
sub_9640h:
LD HL,l964ch ;9640 21 4c 96 ! L .
LD A,001h ;9643 3e 01 > .
LD B,004h ;9645 06 04 . .
JP l961eh ;9647 c3 1e 96 . . .
l964ah:
NOP ;964a 00 .
NOP ;964b 00 .
l964ch:
NOP ;964c 00 .
sub_964dh:
LD HL,l9658h ;964d 21 58 96 ! X .
LD A,002h ;9650 3e 02 > .
LD B,013h ;9652 06 13 . .
JP l961eh ;9654 c3 1e 96 . . .
l9657h:
NOP ;9657 00 .
l9658h:
NOP ;9658 00 .
l9659h:
NOP ;9659 00 .
sub_965ah:
LD HL,l9665h ;965a 21 65 96 ! e .
LD A,002h ;965d 3e 02 > .
LD B,00ch ;965f 06 0c . .
JP l961eh ;9661 c3 1e 96 . . .
l9664h:
NOP ;9664 00 .
l9665h:
NOP ;9665 00 .
NOP ;9666 00 .
sub_9667h:
PUSH BC ;9667 c5 .
LD A,C ;9668 79 y
ADD A,0ceh ;9669 c6 ce . .
LD IYL,A ;966b fd 6f . o
LD IYH,00ah ;966d fd 26 0a . & .
LD C,01eh ;9670 0e 1e . .
LD A,002h ;9672 3e 02 > .
CALL sub_9278h ;9674 cd 78 92 . x .
INC C ;9677 0c .
LD A,IYL ;9678 fd 7d . }
ADD A,00ah ;967a c6 0a . .
LD IYL,A ;967c fd 6f . o
LD A,002h ;967e 3e 02 > .
CALL sub_9278h ;9680 cd 78 92 . x .
POP BC ;9683 c1 .
INC B ;9684 04 .
RET ;9685 c9 .
l9686h:
PUSH BC ;9686 c5 .
LD C,009h ;9687 0e 09 . .
l9689h:
CALL l9691h ;9689 cd 91 96 . . .
DEC C ;968c 0d .
JR NZ,l9689h ;968d 20 fa .
POP BC ;968f c1 .
RET ;9690 c9 .
l9691h:
PUSH HL ;9691 e5 .
LD HL,l9631h ;9692 21 31 96 ! 1 .
l9695h:
LD A,(HL) ;9695 7e ~
CP 009h ;9696 fe 09 . .
JR Z,l969dh ;9698 28 03 ( .
INC (HL) ;969a 34 4
POP HL ;969b e1 .
RET ;969c c9 .
l969dh:
LD (HL),000h ;969d 36 00 6 .
DEC HL ;969f 2b +
JR l9695h ;96a0 18 f3 . .
l96a2h:
LD A,(l85d0h.set_byte5) ;96a2 3a 47 86 : G .
OR A ;96a5 b7 .
RET Z ;96a6 c8 .
DEC A ;96a7 3d =
LD (l85d0h.set_byte5),A ;96a8 32 47 86 2 G .
PUSH HL ;96ab e5 .
LD HL,l963fh ;96ac 21 3f 96 ! ? .
l96afh:
LD A,(HL) ;96af 7e ~
OR A ;96b0 b7 .
JR Z,l96b6h ;96b1 28 03 ( .
DEC (HL) ;96b3 35 5
POP HL ;96b4 e1 .
RET ;96b5 c9 .
l96b6h:
LD (HL),009h ;96b6 36 09 6 .
DEC HL ;96b8 2b +
JR l96afh ;96b9 18 f4 . .
sub_96bbh:
LD HL,00000h ;96bb 21 00 00 ! . .
DEC HL ;96be 2b +
LD A,H ;96bf 7c |
OR L ;96c0 b5 .
JR Z,l96c7h ;96c1 28 04 ( .
LD (sub_96bbh+1),HL ;96c3 22 bc 96 " . .
RET ;96c6 c9 .
l96c7h:
LD HL,00000h ;96c7 21 00 00 ! . .
LD (sub_96bbh+1),HL ;96ca 22 bc 96 " . .
LD HL,l9659h ;96cd 21 59 96 ! Y .
CALL sub_96dch ;96d0 cd dc 96 . . .
.set_byte+1: LD A,000h ;96d3 3e 00 > .
OR A ;96d5 b7 .
RET Z ;96d6 c8 .
DEC A ;96d7 3d =
LD (l96c7h.set_byte),A ;96d8 32 d4 96 2 . .
RET ;96db c9 .
sub_96dch:
LD A,(HL) ;96dc 7e ~
OR A ;96dd b7 .
JR Z,l96e2h ;96de 28 02 ( .
DEC (HL) ;96e0 35 5
RET ;96e1 c9 .
l96e2h:
DEC HL ;96e2 2b +
LD A,(HL) ;96e3 7e ~
OR A ;96e4 b7 .
RET Z ;96e5 c8 .
DEC (HL) ;96e6 35 5
INC HL ;96e7 23 #
LD (HL),009h ;96e8 36 09 6 .
RET ;96ea c9 .
sub_96ebh:
LD (HL),000h ;96eb 36 00 6 .
l96edh:
CP 064h ;96ed fe 64 . d
JR C,l96f6h ;96ef 38 05 8 .
INC (HL) ;96f1 34 4
SUB 064h ;96f2 d6 64 . d
JR l96edh ;96f4 18 f7 . .
l96f6h:
INC HL ;96f6 23 #
LD (HL),000h ;96f7 36 00 6 .
l96f9h:
CP 00ah ;96f9 fe 0a . .
JR C,l9702h ;96fb 38 05 8 .
INC (HL) ;96fd 34 4
SUB 00ah ;96fe d6 0a . .
JR l96f9h ;9700 18 f7 . .
l9702h:
INC HL ;9702 23 #
LD (HL),A ;9703 77 w
RET ;9704 c9 .
sub_9705h:
CALL FAST_RAM_FN.ON_DI ;9705 cd 73 a2 . s .
XOR A ;9708 af .
LD (sub_9712h+1),A ;9709 32 13 97 2 . .
LD (03f00h),A ;970c 32 00 3f 2 . ?
JP FAST_RAM_FN.OFF_EI ;970f c3 77 a2 . w .
sub_9712h:
LD A,000h ;9712 3e 00 > .
INC A ;9714 3c <
AND 007h ;9715 e6 07 . .
LD (sub_9712h+1),A ;9717 32 13 97 2 . .
EX AF,AF' ;971a 08 .
CALL FAST_RAM_FN.ON_DI ;971b cd 73 a2 . s .
EX AF,AF' ;971e 08 .
LD (03f00h),A ;971f 32 00 3f 2 . ?
JP FAST_RAM_FN.OFF_EI ;9722 c3 77 a2 . w .
sub_9725h:
LD A,(03f06h) ;9725 3a 06 3f : . ?
OR A ;9728 b7 .
RET Z ;9729 c8 .
DEC A ;972a 3d =
LD (03f06h),A ;972b 32 06 3f 2 . ?
LD HL,l9756h ;972e 21 56 97 ! V .
LD C,008h ;9731 0e 08 . .
l9733h:
PUSH BC ;9733 c5 .
LD A,(HL) ;9734 7e ~
LD (03f27h),A ;9735 32 27 3f 2 ' ?
INC HL ;9738 23 #
LD A,(HL) ;9739 7e ~
LD (03f16h),A ;973a 32 16 3f 2 . ?
INC HL ;973d 23 #
PUSH HL ;973e e5 .
CALL FAST_RAM_FN.OFF_EI ;973f cd 77 a2 . w .
CALL sub_875eh ;9742 cd 5e 87 . ^ .
CALL FAST_RAM_FN.ON_DI ;9745 cd 73 a2 . s .
POP HL ;9748 e1 .
POP BC ;9749 c1 .
DEC C ;974a 0d .
JR NZ,l9733h ;974b 20 e6 .
XOR A ;974d af .
LD (03f27h),A ;974e 32 27 3f 2 ' ?
LD (03f16h),A ;9751 32 16 3f 2 . ?
INC A ;9754 3c <
RET ;9755 c9 .
l9756h:
LD (BC),A ;9756 02 .
DEC B ;9757 05 .
LD (BC),A ;9758 02 .
LD (BC),A ;9759 02 .
LD BC,00107h ;975a 01 07 01 . . .
INC B ;975d 04 .
LD BC,00001h ;975e 01 01 00 . . .
LD B,000h ;9761 06 00 . .
INC BC ;9763 03 .
NOP ;9764 00 .
NOP ;9765 00 .
l9766h:
NOP ;9766 00 .
INC BC ;9767 03 .
NOP ;9768 00 .
LD B,001h ;9769 06 01 . .
LD BC,00401h ;976b 01 01 04 . . .
LD BC,00207h ;976e 01 07 02 . . .
LD (BC),A ;9771 02 .
LD (BC),A ;9772 02 .
DEC B ;9773 05 .
sub_9774h:
LD A,(03f1bh) ;9774 3a 1b 3f : . ?
SUB 00dh ;9777 d6 0d . .
LD C,A ;9779 4f O
LD A,(03f06h) ;977a 3a 06 3f : . ?
CP C ;977d b9 .
RET Z ;977e c8 .
LD HL,l9766h ;977f 21 66 97 ! f .
LD C,007h ;9782 0e 07 . .
CALL l9733h ;9784 cd 33 97 . 3 .
LD A,(03f06h) ;9787 3a 06 3f : . ?
INC A ;978a 3c <
LD (03f06h),A ;978b 32 06 3f 2 . ?
XOR A ;978e af .
RET ;978f c9 .
sub_9790h:
LD A,(03f07h) ;9790 3a 07 3f : . ?
OR A ;9793 b7 .
RET Z ;9794 c8 .
DEC A ;9795 3d =
LD (03f07h),A ;9796 32 07 3f 2 . ?
LD HL,l97c0h ;9799 21 c0 97 ! . .
LD C,007h ;979c 0e 07 . .
l979eh:
PUSH BC ;979e c5 .
LD A,(HL) ;979f 7e ~
LD (03f28h),A ;97a0 32 28 3f 2 ( ?
INC HL ;97a3 23 #
LD A,(HL) ;97a4 7e ~
LD (03f16h),A ;97a5 32 16 3f 2 . ?
INC HL ;97a8 23 #
PUSH HL ;97a9 e5 .
CALL FAST_RAM_FN.OFF_EI ;97aa cd 77 a2 . w .
CALL sub_875eh ;97ad cd 5e 87 . ^ .
CALL FAST_RAM_FN.ON_DI ;97b0 cd 73 a2 . s .
POP HL ;97b3 e1 .
POP BC ;97b4 c1 .
DEC C ;97b5 0d .
JR NZ,l979eh ;97b6 20 e6 .
XOR A ;97b8 af .
LD (03f28h),A ;97b9 32 28 3f 2 ( ?
LD (03f16h),A ;97bc 32 16 3f 2 . ?
RET ;97bf c9 .
l97c0h:
LD (BC),A ;97c0 02 .
LD D,B ;97c1 50 P
LD (BC),A ;97c2 02 .
JR NZ,l97c6h ;97c3 20 01 .
LD (HL),B ;97c5 70 p
l97c6h:
LD BC,00140h ;97c6 01 40 01 . @ .
DJNZ l97cbh ;97c9 10 00 . .
l97cbh:
LD H,B ;97cb 60 `
NOP ;97cc 00 .
JR NC,l97cfh ;97cd 30 00 0 .
l97cfh:
NOP ;97cf 00 .
l97d0h:
NOP ;97d0 00 .
JR NC,l97d3h ;97d1 30 00 0 .
l97d3h:
LD H,B ;97d3 60 `
LD BC,00110h ;97d4 01 10 01 . . .
LD B,B ;97d7 40 @
LD BC,00270h ;97d8 01 70 02 . p .
JR NZ,$+4 ;97db 20 02 .
LD D,B ;97dd 50 P
sub_97deh:
LD A,(03f1ah) ;97de 3a 1a 3f : . ?
SUB 00ah ;97e1 d6 0a . .
LD C,A ;97e3 4f O
LD A,(03f07h) ;97e4 3a 07 3f : . ?
CP C ;97e7 b9 .
RET Z ;97e8 c8 .
LD HL,l97d0h ;97e9 21 d0 97 ! . .
LD C,007h ;97ec 0e 07 . .
CALL l979eh ;97ee cd 9e 97 . . .
LD A,(03f07h) ;97f1 3a 07 3f : . ?
INC A ;97f4 3c <
LD (03f07h),A ;97f5 32 07 3f 2 . ?
XOR A ;97f8 af .
RET ;97f9 c9 .
sub_97fah:
LD E,A ;97fa 5f _
LD D,000h ;97fb 16 00 . .
LD IY,l9cf2h ;97fd fd 21 f2 9c . ! . .
ADD IY,DE ;9801 fd 19 . .
ADD IY,DE ;9803 fd 19 . .
LD C,(iy+000h) ;9805 fd 4e 00 . N .
LD B,(iy+001h) ;9808 fd 46 01 . F .
LD IXL,C ;980b dd 69 . i
LD IXH,B ;980d dd 60 . `
CALL FAST_RAM_FN.ON_DI ;980f cd 73 a2 . s .
LD A,(ix+000h) ;9812 dd 7e 00 . ~ .
LD (03f1ah),A ;9815 32 1a 3f 2 . ?
LD A,(ix+001h) ;9818 dd 7e 01 . ~ .
LD (03f1bh),A ;981b 32 1b 3f 2 . ?
LD A,(ix+002h) ;981e dd 7e 02 . ~ .
LD (03f19h),A ;9821 32 19 3f 2 . ?
LD L,(ix+003h) ;9824 dd 6e 03 . n .
LD H,(ix+004h) ;9827 dd 66 04 . f .
LD (03f17h),HL ;982a 22 17 3f " . ?
LD A,(ix+005h) ;982d dd 7e 05 . ~ .
LD (03f29h),A ;9830 32 29 3f 2 ) ?
LD L,(ix+006h) ;9833 dd 6e 06 . n .
LD H,(ix+007h) ;9836 dd 66 07 . f .
LD (03f2ah),HL ;9839 22 2a 3f " * ?
LD A,(ix+008h) ;983c dd 7e 08 . ~ .
LD (03f07h),A ;983f 32 07 3f 2 . ?
LD A,(ix+009h) ;9842 dd 7e 09 . ~ .
LD (03f06h),A ;9845 32 06 3f 2 . ?
LD A,(ix+00ah) ;9848 dd 7e 0a . ~ .
LD (03f2ch),A ;984b 32 2c 3f 2 , ?
LD L,(ix+00bh) ;984e dd 6e 0b . n .
LD H,(ix+00ch) ;9851 dd 66 0c . f .
LD (03f2dh),HL ;9854 22 2d 3f " - ?
LD A,(ix+00dh) ;9857 dd 7e 0d . ~ .
LD (03f3bh),A ;985a 32 3b 3f 2 ; ?
LD A,(03f19h) ;985d 3a 19 3f : . ?
CALL SET_PAGE_SLOT1 ;9860 cd e2 a1 . . .
LD A,(03f1ah) ;9863 3a 1a 3f : . ?
LD C,A ;9866 4f O
LD A,(03f1bh) ;9867 3a 1b 3f : . ?
LD B,A ;986a 47 G
LD HL,(03f17h) ;986b 2a 17 3f * . ?
LD A,H ;986e 7c |
ADD A,040h ;986f c6 40 . @
LD H,A ;9871 67 g
LD A,(0be05h) ;9872 3a 05 be : . .
OUT (SLOT1),A ;9875 d3 a2 . .
LD A,0c1h ;9877 3e c1 > .
OUT (PORT_Y),A ;9879 d3 89 . .
LD H,042h ;987b 26 42 & B
LD L,000h ;987d 2e 00 . .
XOR A ;987f af .
LD C,002h ;9880 0e 02 . .
l9882h:
LD (HL),A ;9882 77 w
INC L ;9883 2c ,
JR NZ,l9882h ;9884 20 fc .
INC H ;9886 24 $
DEC C ;9887 0d .
JR NZ,l9882h ;9888 20 f8 .
LD A,(03f29h) ;988a 3a 29 3f : ) ?
LD (098cfh),A ;988d 32 cf 98 2 . .
LD IX,(03f2ah) ;9890 dd 2a 2a 3f . * * ?
EXX ;9894 d9 .
LD BC,04400h ;9895 01 00 44 . . D
EXX ;9898 d9 .
LD DE,00000h ;9899 11 00 00 . . .
LD C,000h ;989c 0e 00 . .
l989eh:
LD A,0c0h ;989e 3e c0 > .
ADD A,IXH ;98a0 dd 84 . .
LD IXH,A ;98a2 dd 67 . g
l98a4h:
LD A,(098cfh) ;98a4 3a cf 98 : . .
CALL SET_PAGE_SLOT3_af ;98a7 cd ec a1 . . .
LD A,(ix+000h) ;98aa dd 7e 00 . ~ .
INC IX ;98ad dd 23 . #
CP 0fdh ;98af fe fd . .
JR C,l98edh ;98b1 38 3a 8 :
JR NZ,l98c7h ;98b3 20 12 .
l98b5h:
LD A,(ix+000h) ;98b5 dd 7e 00 . ~ .
LD C,(ix+001h) ;98b8 dd 4e 01 . N .
LD B,(ix+002h) ;98bb dd 46 02 . F .
LD A,0c0h ;98be 3e c0 > .
ADD A,B ;98c0 80 .
LD B,A ;98c1 47 G
PUSH BC ;98c2 c5 .
POP IX ;98c3 dd e1 . .
JR l989eh ;98c5 18 d7 . .
l98c7h:
CP 0feh ;98c7 fe fe . .
JR NZ,l98d3h ;98c9 20 08 .
INC C ;98cb 0c .
PUSH IX ;98cc dd e5 . .
LD A,000h ;98ce 3e 00 > .
PUSH AF ;98d0 f5 .
JR l98b5h ;98d1 18 e2 . .
l98d3h:
DEC C ;98d3 0d .
LD A,C ;98d4 79 y
CP 0ffh ;98d5 fe ff . .
JR NZ,l98e2h ;98d7 20 09 .
EXX ;98d9 d9 .
LD L,C ;98da 69 i
LD H,B ;98db 60 `
LD (03f36h),HL ;98dc 22 36 3f " 6 ?
JP FAST_RAM_FN.OFF_EI ;98df c3 77 a2 . w .
l98e2h:
POP AF ;98e2 f1 .
POP IX ;98e3 dd e1 . .
INC IX ;98e5 dd 23 . #
INC IX ;98e7 dd 23 . #
INC IX ;98e9 dd 23 . #
JR l989eh ;98eb 18 b1 . .
l98edh:
LD H,040h ;98ed 26 40 & @
LD L,A ;98ef 6f o
LD A,(ix+000h) ;98f0 dd 7e 00 . ~ .
LD (HL),A ;98f3 77 w
LD IYH,042h ;98f4 fd 26 42 . & B
LD IYL,A ;98f7 fd 6f . o
INC H ;98f9 24 $
LD A,(ix+001h) ;98fa dd 7e 01 . ~ .
LD (HL),A ;98fd 77 w
EXX ;98fe d9 .
LD A,(iy+000h) ;98ff fd 7e 00 . ~ .
INC IYH ;9902 fd 24 . $
OR (iy+000h) ;9904 fd b6 00 . . .
JR Z,l9913h ;9907 28 0a ( .
LD D,(iy+000h) ;9909 fd 56 00 . V .
DEC IYH ;990c fd 25 . %
LD E,(iy+000h) ;990e fd 5e 00 . ^ .
JR l993ah ;9911 18 27 . '
l9913h:
LD (iy+000h),B ;9913 fd 70 00 . p .
DEC IYH ;9916 fd 25 . %
LD (iy+000h),C ;9918 fd 71 00 . q .
PUSH BC ;991b c5 .
LD A,(0be04h) ;991c 3a 04 be : . .
OUT (SLOT1),A ;991f d3 a2 . .
LD H,040h ;9921 26 40 & @
LD A,(ix+000h) ;9923 dd 7e 00 . ~ .
LD L,A ;9926 6f o
LD A,(HL) ;9927 7e ~
INC H ;9928 24 $
LD H,(HL) ;9929 66 f
LD L,A ;992a 6f o
LD E,(HL) ;992b 5e ^
LD A,(0be05h) ;992c 3a 05 be : . .
OUT (SLOT1),A ;992f d3 a2 . .
LD H,B ;9931 60 `
LD L,C ;9932 69 i
LD D,000h ;9933 16 00 . .
ADD HL,DE ;9935 19 .
ADD HL,DE ;9936 19 .
LD B,H ;9937 44 D
LD C,L ;9938 4d M
POP DE ;9939 d1 .
l993ah:
EX DE,HL ;993a eb .
LD E,(ix+001h) ;993b dd 5e 01 . ^ .
LD D,000h ;993e 16 00 . .
ADD HL,DE ;9940 19 .
ADD HL,DE ;9941 19 .
LD (HL),C ;9942 71 q
INC HL ;9943 23 #
LD (HL),B ;9944 70 p
LD D,(ix+000h) ;9945 dd 56 00 . V .
LD E,(ix+001h) ;9948 dd 5e 01 . ^ .
INC IX ;994b dd 23 . #
INC IX ;994d dd 23 . #
LD A,(0be04h) ;994f 3a 04 be : . .
OUT (SLOT1),A ;9952 d3 a2 . .
LD IYH,040h ;9954 fd 26 40 . & @
LD IYL,D ;9957 fd 6a . j
LD A,(iy+000h) ;9959 fd 7e 00 . ~ .
LD L,A ;995c 6f o
INC IYH ;995d fd 24 . $
LD A,(iy+000h) ;995f fd 7e 00 . ~ .
LD H,A ;9962 67 g
LD D,000h ;9963 16 00 . .
INC HL ;9965 23 #
ADD HL,DE ;9966 19 .
ADD HL,DE ;9967 19 .
LD E,(HL) ;9968 5e ^
INC HL ;9969 23 #
LD D,(HL) ;996a 56 V
LD A,(DE) ;996b 1a .
INC DE ;996c 13 .
LD L,C ;996d 69 i
LD H,B ;996e 60 `
LD IYL,C ;996f fd 69 . i
LD IYH,B ;9971 fd 60 . `
LD C,A ;9973 4f O
LD B,000h ;9974 06 00 . .
ADD HL,BC ;9976 09 .
ADD HL,BC ;9977 09 .
LD C,L ;9978 4d M
LD B,H ;9979 44 D
EX DE,HL ;997a eb .
l997bh:
PUSH AF ;997b f5 .
LD E,(HL) ;997c 5e ^
INC HL ;997d 23 #
LD D,(HL) ;997e 56 V
INC HL ;997f 23 #
PUSH HL ;9980 e5 .
EX DE,HL ;9981 eb .
LD A,(HL) ;9982 7e ~
INC HL ;9983 23 #
PUSH AF ;9984 f5 .
LD A,(HL) ;9985 7e ~
LD (09a2ah),A ;9986 32 2a 9a 2 * .
INC HL ;9989 23 #
LD E,(HL) ;998a 5e ^
INC HL ;998b 23 #
LD D,(HL) ;998c 56 V
INC HL ;998d 23 #
CALL SET_PAGE_SLOT3_af ;998e cd ec a1 . . .
LD A,0c0h ;9991 3e c0 > .
ADD A,D ;9993 82 .
LD D,A ;9994 57 W
LD A,(0be05h) ;9995 3a 05 be : . .
OUT (SLOT1),A ;9998 d3 a2 . .
LD (iy+000h),C ;999a fd 71 00 . q .
INC IY ;999d fd 23 . #
LD (iy+000h),B ;999f fd 70 00 . p .
INC IY ;99a2 fd 23 . #
EX DE,HL ;99a4 eb .
POP AF ;99a5 f1 .
PUSH IY ;99a6 fd e5 . .
PUSH AF ;99a8 f5 .
EXX ;99a9 d9 .
PUSH DE ;99aa d5 .
EXX ;99ab d9 .
POP IY ;99ac fd e1 . .
l99aeh:
LD A,(HL) ;99ae 7e ~
INC L ;99af 2c ,
JR NZ,l99b6h ;99b0 20 04 .
INC H ;99b2 24 $
CALL Z,sub_9a26h ;99b3 cc 26 9a . & .
l99b6h:
CP 0fdh ;99b6 fe fd . .
JR NC,l99c7h ;99b8 30 0d 0 .
CP 0fbh ;99ba fe fb . .
JR NC,l99c3h ;99bc 30 05 0 .
CALL sub_9a34h ;99be cd 34 9a . 4 .
JR l99aeh ;99c1 18 eb . .
l99c3h:
LD (BC),A ;99c3 02 .
INC BC ;99c4 03 .
JR l99aeh ;99c5 18 e7 . .
l99c7h:
LD (BC),A ;99c7 02 .
INC BC ;99c8 03 .
JR NZ,l99d5h ;99c9 20 0a .
LD A,(HL) ;99cb 7e ~
INC L ;99cc 2c ,
JR NZ,l99d3h ;99cd 20 04 .
INC H ;99cf 24 $
CALL Z,sub_9a26h ;99d0 cc 26 9a . & .
l99d3h:
LD (BC),A ;99d3 02 .
INC BC ;99d4 03 .
l99d5h:
EX DE,HL ;99d5 eb .
LD A,(0be04h) ;99d6 3a 04 be : . .
OUT (SLOT1),A ;99d9 d3 a2 . .
LD A,(HL) ;99db 7e ~
LD (09a2ah),A ;99dc 32 2a 9a 2 * .
INC HL ;99df 23 #
LD E,(HL) ;99e0 5e ^
INC HL ;99e1 23 #
LD D,(HL) ;99e2 56 V
INC HL ;99e3 23 #
CALL SET_PAGE_SLOT3_af ;99e4 cd ec a1 . . .
LD A,0c0h ;99e7 3e c0 > .
ADD A,D ;99e9 82 .
LD D,A ;99ea 57 W
EX DE,HL ;99eb eb .
POP AF ;99ec f1 .
PUSH AF ;99ed f5 .
CALL sub_9a58h ;99ee cd 58 9a . X .
EX DE,HL ;99f1 eb .
LD A,(0be04h) ;99f2 3a 04 be : . .
OUT (SLOT1),A ;99f5 d3 a2 . .
LD A,(HL) ;99f7 7e ~
LD (09a2ah),A ;99f8 32 2a 9a 2 * .
INC HL ;99fb 23 #
LD E,(HL) ;99fc 5e ^
INC HL ;99fd 23 #
LD D,(HL) ;99fe 56 V
INC HL ;99ff 23 #
CALL SET_PAGE_SLOT3_af ;9a00 cd ec a1 . . .
LD A,0c0h ;9a03 3e c0 > .
ADD A,D ;9a05 82 .
LD D,A ;9a06 57 W
EX DE,HL ;9a07 eb .
POP AF ;9a08 f1 .
CALL sub_9aa3h ;9a09 cd a3 9a . . .
POP IY ;9a0c fd e1 . .
LD A,(0be04h) ;9a0e 3a 04 be : . .
OUT (SLOT1),A ;9a11 d3 a2 . .
POP HL ;9a13 e1 .
POP AF ;9a14 f1 .
DEC A ;9a15 3d =
JP NZ,l997bh ;9a16 c2 7b 99 . { .
EXX ;9a19 d9 .
LD A,(0be05h) ;9a1a 3a 05 be : . .
OUT (SLOT1),A ;9a1d d3 a2 . .
JP l98a4h ;9a1f c3 a4 98 . . .
INC L ;9a22 2c ,
RET NZ ;9a23 c0 .
INC H ;9a24 24 $
RET NZ ;9a25 c0 .
sub_9a26h:
LD H,0c0h ;9a26 26 c0 & .
PUSH AF ;9a28 f5 .
LD A,000h ;9a29 3e 00 > .
INC A ;9a2b 3c <
LD (09a2ah),A ;9a2c 32 2a 9a 2 * .
CALL SET_PAGE_SLOT3_af ;9a2f cd ec a1 . . .
POP AF ;9a32 f1 .
RET ;9a33 c9 .
sub_9a34h:
PUSH IY ;9a34 fd e5 . .
PUSH DE ;9a36 d5 .
LD E,A ;9a37 5f _
LD D,000h ;9a38 16 00 . .
ADD IY,DE ;9a3a fd 19 . .
ADD IY,DE ;9a3c fd 19 . .
ADD IY,DE ;9a3e fd 19 . .
ADD IY,DE ;9a40 fd 19 . .
ADD IY,DE ;9a42 fd 19 . .
ADD IY,DE ;9a44 fd 19 . .
ADD IY,DE ;9a46 fd 19 . .
ADD IY,DE ;9a48 fd 19 . .
ADD IY,DE ;9a4a fd 19 . .
LD A,IYH ;9a4c fd 7c . |
LD (BC),A ;9a4e 02 .
INC BC ;9a4f 03 .
LD A,IYL ;9a50 fd 7d . }
LD (BC),A ;9a52 02 .
INC BC ;9a53 03 .
POP DE ;9a54 d1 .
POP IY ;9a55 fd e1 . .
RET ;9a57 c9 .
sub_9a58h:
PUSH AF ;9a58 f5 .
IN A,(SLOT1) ;9a59 db a2 . .
LD (09a8eh),A ;9a5b 32 8e 9a 2 . .
POP AF ;9a5e f1 .
PUSH DE ;9a5f d5 .
PUSH BC ;9a60 c5 .
PUSH IX ;9a61 dd e5 . .
PUSH IY ;9a63 fd e5 . .
EXX ;9a65 d9 .
PUSH BC ;9a66 c5 .
PUSH DE ;9a67 d5 .
PUSH HL ;9a68 e5 .
PUSH DE ;9a69 d5 .
EXX ;9a6a d9 .
POP IY ;9a6b fd e1 . .
l9a6dh:
PUSH AF ;9a6d f5 .
LD A,009h ;9a6e 3e 09 > .
l9a70h:
PUSH AF ;9a70 f5 .
LD A,(CURRENT_PAGE.SLOT3) ;9a71 3a b5 a1 : . .
PUSH HL ;9a74 e5 .
PUSH IY ;9a75 fd e5 . .
CALL sub_920fh ;9a77 cd 0f 92 . . .
POP IY ;9a7a fd e1 . .
LD (09a87h),HL ;9a7c 22 87 9a " . .
POP HL ;9a7f e1 .
INC IY ;9a80 fd 23 . #
POP AF ;9a82 f1 .
DEC A ;9a83 3d =
JR NZ,l9a70h ;9a84 20 ea .
LD HL,00000h ;9a86 21 00 00 ! . .
POP AF ;9a89 f1 .
DEC A ;9a8a 3d =
JR NZ,l9a6dh ;9a8b 20 e0 .
LD A,000h ;9a8d 3e 00 > .
OUT (SLOT1),A ;9a8f d3 a2 . .
LD A,(CURRENT_PAGE.SLOT3) ;9a91 3a b5 a1 : . .
CALL SET_PAGE_SLOT3_af ;9a94 cd ec a1 . . .
EXX ;9a97 d9 .
POP HL ;9a98 e1 .
POP DE ;9a99 d1 .
POP BC ;9a9a c1 .
EXX ;9a9b d9 .
POP IY ;9a9c fd e1 . .
POP IX ;9a9e dd e1 . .
POP BC ;9aa0 c1 .
POP DE ;9aa1 d1 .
RET ;9aa2 c9 .
sub_9aa3h:
PUSH AF ;9aa3 f5 .
IN A,(SLOT1) ;9aa4 db a2 . .
LD (09ad3h),A ;9aa6 32 d3 9a 2 . .
POP AF ;9aa9 f1 .
PUSH DE ;9aaa d5 .
PUSH BC ;9aab c5 .
PUSH IX ;9aac dd e5 . .
PUSH IY ;9aae fd e5 . .
EXX ;9ab0 d9 .
PUSH BC ;9ab1 c5 .
PUSH HL ;9ab2 e5 .
PUSH DE ;9ab3 d5 .
EXX ;9ab4 d9 .
POP IY ;9ab5 fd e1 . .
l9ab7h:
PUSH AF ;9ab7 f5 .
LD A,009h ;9ab8 3e 09 > .
l9abah:
PUSH AF ;9aba f5 .
LD A,(CURRENT_PAGE.SLOT3) ;9abb 3a b5 a1 : . .
PUSH IY ;9abe fd e5 . .
CALL sub_91bbh ;9ac0 cd bb 91 . . .
POP IY ;9ac3 fd e1 . .
LD (CURRENT_PAGE.SLOT3),A ;9ac5 32 b5 a1 2 . .
INC IY ;9ac8 fd 23 . #
POP AF ;9aca f1 .
DEC A ;9acb 3d =
JR NZ,l9abah ;9acc 20 ec .
POP AF ;9ace f1 .
DEC A ;9acf 3d =
JR NZ,l9ab7h ;9ad0 20 e5 .
LD A,000h ;9ad2 3e 00 > .
OUT (SLOT1),A ;9ad4 d3 a2 . .
PUSH IY ;9ad6 fd e5 . .
EXX ;9ad8 d9 .
POP DE ;9ad9 d1 .
POP HL ;9ada e1 .
POP BC ;9adb c1 .
EXX ;9adc d9 .
POP IY ;9add fd e1 . .
POP IX ;9adf dd e1 . .
POP BC ;9ae1 c1 .
POP DE ;9ae2 d1 .
RET ;9ae3 c9 .
sub_9ae4h:
LD A,(0be0bh) ;9ae4 3a 0b be : . .
OUT (SLOT1),A ;9ae7 d3 a2 . .
LD H,040h ;9ae9 26 40 & @
LD L,000h ;9aeb 2e 00 . .
LD C,002h ;9aed 0e 02 . .
l9aefh:
LD (HL),000h ;9aef 36 00 6 .
INC L ;9af1 2c ,
JR NZ,l9aefh ;9af2 20 fb .
INC H ;9af4 24 $
DEC C ;9af5 0d .
JR NZ,l9aefh ;9af6 20 f7 .
LD H,040h ;9af8 26 40 & @
LD L,000h ;9afa 2e 00 . .
LD D,040h ;9afc 16 40 . @
LD E,000h ;9afe 1e 00 . .
LD IX,04200h ;9b00 dd 21 00 42 . ! . B
l9b04h:
LD A,(0be04h) ;9b04 3a 04 be : . .
OUT (SLOT1),A ;9b07 d3 a2 . .
LD C,(HL) ;9b09 4e N
INC H ;9b0a 24 $
LD B,(HL) ;9b0b 46 F
DEC H ;9b0c 25 %
LD A,B ;9b0d 78 x
OR C ;9b0e b1 .
JR NZ,l9b2ch ;9b0f 20 1b .
LD A,(0be0bh) ;9b11 3a 0b be : . .
OUT (SLOT1),A ;9b14 d3 a2 . .
XOR A ;9b16 af .
LD (DE),A ;9b17 12 .
INC D ;9b18 14 .
LD (DE),A ;9b19 12 .
DEC D ;9b1a 15 .
l9b1bh:
INC E ;9b1b 1c .
INC L ;9b1c 2c ,
JR NZ,l9b04h ;9b1d 20 e5 .
PUSH IX ;9b1f dd e5 . .
POP HL ;9b21 e1 .
CALL FAST_RAM_FN.ON_DI ;9b22 cd 73 a2 . s .
LD (03f38h),HL ;9b25 22 38 3f " 8 ?
CALL FAST_RAM_FN.OFF_EI ;9b28 cd 77 a2 . w .
RET ;9b2b c9 .
l9b2ch:
LD A,(BC) ;9b2c 0a .
INC BC ;9b2d 03 .
PUSH BC ;9b2e c5 .
LD C,A ;9b2f 4f O
EX AF,AF' ;9b30 08 .
LD B,000h ;9b31 06 00 . .
PUSH IX ;9b33 dd e5 . .
ADD IX,BC ;9b35 dd 09 . .
ADD IX,BC ;9b37 dd 09 . .
POP IY ;9b39 fd e1 . .
LD A,(0be0bh) ;9b3b 3a 0b be : . .
OUT (SLOT1),A ;9b3e d3 a2 . .
LD A,IYL ;9b40 fd 7d . }
LD (DE),A ;9b42 12 .
INC D ;9b43 14 .
LD A,IYH ;9b44 fd 7c . |
LD (DE),A ;9b46 12 .
DEC D ;9b47 15 .
EX AF,AF' ;9b48 08 .
EXX ;9b49 d9 .
POP HL ;9b4a e1 .
l9b4bh:
EX AF,AF' ;9b4b 08 .
LD A,(0be04h) ;9b4c 3a 04 be : . .
OUT (SLOT1),A ;9b4f d3 a2 . .
LD E,(HL) ;9b51 5e ^
INC HL ;9b52 23 #
LD D,(HL) ;9b53 56 V
INC HL ;9b54 23 #
LD A,(DE) ;9b55 1a .
PUSH AF ;9b56 f5 .
LD A,(0be0bh) ;9b57 3a 0b be : . .
OUT (SLOT1),A ;9b5a d3 a2 . .
LD A,IXL ;9b5c dd 7d . }
LD (iy+000h),A ;9b5e fd 77 00 . w .
INC IY ;9b61 fd 23 . #
LD A,IXH ;9b63 dd 7c . |
LD (iy+000h),A ;9b65 fd 77 00 . w .
INC IY ;9b68 fd 23 . #
POP AF ;9b6a f1 .
LD (ix+000h),A ;9b6b dd 77 00 . w .
INC IX ;9b6e dd 23 . #
l9b70h:
LD (ix+000h),000h ;9b70 dd 36 00 00 . 6 . .
INC IX ;9b74 dd 23 . #
LD (ix+000h),000h ;9b76 dd 36 00 00 . 6 . .
INC IX ;9b7a dd 23 . #
LD (ix+000h),000h ;9b7c dd 36 00 00 . 6 . .
INC IX ;9b80 dd 23 . #
LD (ix+000h),000h ;9b82 dd 36 00 00 . 6 . .
INC IX ;9b86 dd 23 . #
LD (ix+000h),000h ;9b88 dd 36 00 00 . 6 . .
INC IX ;9b8c dd 23 . #
LD (ix+000h),000h ;9b8e dd 36 00 00 . 6 . .
INC IX ;9b92 dd 23 . #
LD (ix+000h),000h ;9b94 dd 36 00 00 . 6 . .
INC IX ;9b98 dd 23 . #
LD (ix+000h),000h ;9b9a dd 36 00 00 . 6 . .
INC IX ;9b9e dd 23 . #
LD (ix+000h),000h ;9ba0 dd 36 00 00 . 6 . .
INC IX ;9ba4 dd 23 . #
LD (ix+000h),000h ;9ba6 dd 36 00 00 . 6 . .
INC IX ;9baa dd 23 . #
LD (ix+000h),000h ;9bac dd 36 00 00 . 6 . .
INC IX ;9bb0 dd 23 . #
LD (ix+000h),000h ;9bb2 dd 36 00 00 . 6 . .
INC IX ;9bb6 dd 23 . #
LD (ix+000h),000h ;9bb8 dd 36 00 00 . 6 . .
INC IX ;9bbc dd 23 . #
LD (ix+000h),000h ;9bbe dd 36 00 00 . 6 . .
INC IX ;9bc2 dd 23 . #
LD (ix+000h),000h ;9bc4 dd 36 00 00 . 6 . .
INC IX ;9bc8 dd 23 . #
LD (ix+000h),000h ;9bca dd 36 00 00 . 6 . .
INC IX ;9bce dd 23 . #
LD (ix+000h),000h ;9bd0 dd 36 00 00 . 6 . .
INC IX ;9bd4 dd 23 . #
LD (ix+000h),000h ;9bd6 dd 36 00 00 . 6 . .
INC IX ;9bda dd 23 . #
LD (ix+000h),000h ;9bdc dd 36 00 00 . 6 . .
INC IX ;9be0 dd 23 . #
LD (ix+000h),000h ;9be2 dd 36 00 00 . 6 . .
INC IX ;9be6 dd 23 . #
LD (ix+000h),000h ;9be8 dd 36 00 00 . 6 . .
INC IX ;9bec dd 23 . #
LD (ix+000h),000h ;9bee dd 36 00 00 . 6 . .
INC IX ;9bf2 dd 23 . #
LD (ix+000h),000h ;9bf4 dd 36 00 00 . 6 . .
INC IX ;9bf8 dd 23 . #
LD (ix+000h),000h ;9bfa dd 36 00 00 . 6 . .
INC IX ;9bfe dd 23 . #
LD (ix+000h),000h ;9c00 dd 36 00 00 . 6 . .
INC IX ;9c04 dd 23 . #
LD (ix+000h),000h ;9c06 dd 36 00 00 . 6 . .
INC IX ;9c0a dd 23 . #
LD (ix+000h),000h ;9c0c dd 36 00 00 . 6 . .
INC IX ;9c10 dd 23 . #
LD (ix+000h),000h ;9c12 dd 36 00 00 . 6 . .
INC IX ;9c16 dd 23 . #
LD (ix+000h),000h ;9c18 dd 36 00 00 . 6 . .
INC IX ;9c1c dd 23 . #
LD (ix+000h),000h ;9c1e dd 36 00 00 . 6 . .
INC IX ;9c22 dd 23 . #
LD (ix+000h),000h ;9c24 dd 36 00 00 . 6 . .
INC IX ;9c28 dd 23 . #
LD (ix+000h),000h ;9c2a dd 36 00 00 . 6 . .
INC IX ;9c2e dd 23 . #
LD (ix+000h),000h ;9c30 dd 36 00 00 . 6 . .
INC IX ;9c34 dd 23 . #
LD (ix+000h),000h ;9c36 dd 36 00 00 . 6 . .
INC IX ;9c3a dd 23 . #
LD (ix+000h),000h ;9c3c dd 36 00 00 . 6 . .
INC IX ;9c40 dd 23 . #
LD (ix+000h),000h ;9c42 dd 36 00 00 . 6 . .
INC IX ;9c46 dd 23 . #
LD (ix+000h),000h ;9c48 dd 36 00 00 . 6 . .
INC IX ;9c4c dd 23 . #
DEC A ;9c4e 3d =
JP NZ,l9b70h ;9c4f c2 70 9b . p .
EX AF,AF' ;9c52 08 .
DEC A ;9c53 3d =
JP NZ,l9b4bh ;9c54 c2 4b 9b . K .
EXX ;9c57 d9 .
JP l9b1bh ;9c58 c3 1b 9b . . .
sub_9c5bh:
LD A,0c1h ;9c5b 3e c1 > .
OUT (PORT_Y),A ;9c5d d3 89 . .
LD IX,07000h ;9c5f dd 21 00 70 . ! . p
PUSH IX ;9c63 dd e5 . .
EXX ;9c65 d9 .
LD BC,00000h ;9c66 01 00 00 . . .
EXX ;9c69 d9 .
INC IX ;9c6a dd 23 . #
INC IX ;9c6c dd 23 . #
LD D,042h ;9c6e 16 42 . B
LD E,000h ;9c70 1e 00 . .
LD H,040h ;9c72 26 40 & @
LD L,E ;9c74 6b k
l9c75h:
LD A,(0be05h) ;9c75 3a 05 be : . .
OUT (SLOT1),A ;9c78 d3 a2 . .
EX DE,HL ;9c7a eb .
LD C,(HL) ;9c7b 4e N
INC H ;9c7c 24 $
LD B,(HL) ;9c7d 46 F
DEC H ;9c7e 25 %
LD A,(0be0bh) ;9c7f 3a 0b be : . .
OUT (SLOT1),A ;9c82 d3 a2 . .
EX DE,HL ;9c84 eb .
LD A,B ;9c85 78 x
OR C ;9c86 b1 .
JR NZ,l9c9ch ;9c87 20 13 .
l9c89h:
INC L ;9c89 2c ,
INC E ;9c8a 1c .
JR NZ,l9c75h ;9c8b 20 e8 .
EXX ;9c8d d9 .
POP IX ;9c8e dd e1 . .
LD A,(0be0bh) ;9c90 3a 0b be : . .
OUT (SLOT1),A ;9c93 d3 a2 . .
LD (ix+000h),C ;9c95 dd 71 00 . q .
LD (ix+001h),B ;9c98 dd 70 01 . p .
RET ;9c9b c9 .
l9c9ch:
LD A,(0be05h) ;9c9c 3a 05 be : . .
OUT (SLOT1),A ;9c9f d3 a2 . .
LD A,L ;9ca1 7d }
EXX ;9ca2 d9 .
LD H,042h ;9ca3 26 42 & B
LD L,A ;9ca5 6f o
LD E,(HL) ;9ca6 5e ^
INC H ;9ca7 24 $
LD D,(HL) ;9ca8 56 V
LD A,D ;9ca9 7a z
OR E ;9caa b3 .
EXX ;9cab d9 .
JR Z,l9c89h ;9cac 28 db ( .
l9caeh:
EXX ;9cae d9 .
LD A,(0be04h) ;9caf 3a 04 be : . .
OUT (SLOT1),A ;9cb2 d3 a2 . .
LD H,040h ;9cb4 26 40 & @
LD A,(HL) ;9cb6 7e ~
INC H ;9cb7 24 $
LD H,(HL) ;9cb8 66 f
LD L,A ;9cb9 6f o
LD L,(HL) ;9cba 6e n
EX DE,HL ;9cbb eb .
XOR A ;9cbc af .
LD (09cd8h),A ;9cbd 32 d8 9c 2 . .
LD A,(0be05h) ;9cc0 3a 05 be : . .
OUT (SLOT1),A ;9cc3 d3 a2 . .
l9cc5h:
LD D,(HL) ;9cc5 56 V
INC HL ;9cc6 23 #
LD A,(HL) ;9cc7 7e ~
INC HL ;9cc8 23 #
OR D ;9cc9 b2 .
JR Z,l9ce5h ;9cca 28 19 ( .
LD A,(0be0bh) ;9ccc 3a 0b be : . .
OUT (SLOT1),A ;9ccf d3 a2 . .
INC BC ;9cd1 03 .
EXX ;9cd2 d9 .
LD (ix+000h),E ;9cd3 dd 73 00 . s .
EXX ;9cd6 d9 .
LD A,000h ;9cd7 3e 00 > .
INC IX ;9cd9 dd 23 . #
LD (ix+000h),A ;9cdb dd 77 00 . w .
INC IX ;9cde dd 23 . #
LD A,(0be05h) ;9ce0 3a 05 be : . .
OUT (SLOT1),A ;9ce3 d3 a2 . .
l9ce5h:
LD A,(09cd8h) ;9ce5 3a d8 9c : . .
INC A ;9ce8 3c <
LD (09cd8h),A ;9ce9 32 d8 9c 2 . .
DEC E ;9cec 1d .
JR NZ,l9cc5h ;9ced 20 d6 .
EXX ;9cef d9 .
JR l9c89h ;9cf0 18 97 . .
l9cf2h: DB #66, #9d, #75, #9d, #84, #9d, #93, #9d
DB #a2, #9d, #b1, #9d, #c0, #9d, #cf, #9d
DB #de, #9d, #ed, #9d, #fc, #9d, #0b, #9e
DB #1a, #9e, #29, #9e, #38, #9e, #47, #9e
DB #56, #9e, #65, #9e, #74, #9e, #83, #9e
DB #92, #9e, #a1, #9e, #b0, #9e, #bf, #9e
DB #ce, #9e, #dd, #9e, #ec, #9e, #fb, #9e
DB #0a, #9f, #19, #9f, #28, #9f, #37, #9f
DB #46, #9f, #55, #9f, #64, #9f, #73, #9f
DB #82, #9f, #91, #9f, #a0, #9f, #af, #9f
DB #be, #9f, #cd, #9f, #dc, #9f, #eb, #9f
DB #fa, #9f, #09, #a0, #18, #a0, #27, #a0
DB #36, #a0, #45, #a0, #bd, #a0, #54, #a0
DB #63, #a0, #72, #a0, #81, #a0, #90, #a0
DB #9f, #a0, #ae, #a0
l9d66h: ;9d66
DB #10,#11,#07,#00,#00,#06,#00,#00,#00,#00,#2d,#32,#00,#00,#ff
DB #0a,#2f,#07,#00,#00,#06,#00,#00,#00,#00,#50,#32,#00,#00,#ff
DB #2e,#13,#07,#00,#00,#06,#00,#00,#00,#00,#63,#40,#00,#00,#ff
DB #25,#0d,#07,#00,#00,#06,#00,#00,#00,#00,#32,#28,#00,#00,#ff
DB #25,#16,#07,#00,#00,#06,#00,#00,#00,#00,#59,#28,#00,#00,#ff
DB #3a,#0d,#07,#00,#00,#06,#00,#00,#00,#00,#63,#64,#00,#00,#ff
DB #0a,#37,#07,#00,#00,#06,#00,#00,#00,#00,#63,#28,#00,#00,#ff
DB #1f,#16,#07,#00,#00,#06,#00,#00,#00,#00,#63,#3c,#00,#00,#ff
DB #28,#10,#07,#00,#00,#06,#00,#00,#00,#00,#63,#3c,#00,#00,#ff
DB #28,#0d,#07,#00,#00,#06,#00,#00,#00,#00,#45,#c8,#00,#00,#ff
DB #22,#0d,#07,#00,#00,#06,#00,#00,#00,#00,#3c,#32,#00,#00,#ff
DB #22,#22,#07,#00,#00,#06,#00,#00,#00,#00,#59,#46,#00,#00,#ff
DB #19,#19,#07,#00,#00,#06,#00,#00,#00,#00,#63,#14,#00,#00,#ff
DB #10,#19,#07,#00,#00,#06,#00,#00,#00,#00,#46,#14,#00,#00,#ff
DB #31,#0d,#07,#00,#00,#06,#00,#00,#00,#00,#4f,#1e,#00,#00,#ff
DB #31,#0d,#07,#00,#00,#06,#00,#00,#00,#00,#63,#3c,#00,#00,#ff
DB #31,#0d,#07,#00,#00,#06,#00,#00,#00,#00,#46,#3c,#00,#00,#ff
DB #31,#0d,#07,#00,#00,#06,#00,#00,#00,#00,#45,#3c,#00,#00,#ff
DB #31,#0d,#07,#00,#00,#06,#00,#00,#00,#00,#63,#3c,#00,#00,#ff
DB #22,#22,#07,#00,#00,#06,#00,#00,#00,#00,#59,#46,#00,#00,#ff
DB #31,#0d,#07,#00,#00,#06,#00,#00,#00,#00,#63,#1e,#00,#00,#ff
DB #31,#0d,#07,#00,#00,#06,#00,#00,#00,#00,#63,#64,#00,#00,#ff
DB #31,#0d,#07,#00,#00,#06,#00,#00,#00,#00,#63,#64,#00,#00,#ff
DB #31,#0d,#07,#00,#00,#06,#00,#00,#00,#00,#63,#28,#00,#00,#ff
DB #31,#0d,#07,#00,#00,#06,#00,#00,#00,#00,#63,#3c,#00,#00,#ff
l9eddh: ;9edd
DB #31,#0d,#78,#00,#00,#06,#00,#00,#00,#00,#63,#64,#00,#00,#ff
DB #16,#19,#78,#00,#00,#06,#00,#00,#00,#00,#63,#0d,#00,#00,#ff
DB #16,#19,#78,#00,#00,#06,#00,#00,#00,#00,#63,#64,#00,#00,#ff
DB #16,#19,#78,#00,#00,#06,#00,#00,#00,#00,#63,#1e,#00,#00,#ff
DB #28,#19,#78,#00,#00,#06,#00,#00,#00,#00,#63,#64,#00,#00,#ff
DB #28,#19,#78,#00,#00,#06,#00,#00,#00,#00,#63,#64,#00,#00,#ff
DB #28,#19,#78,#00,#00,#06,#00,#00,#00,#00,#63,#32,#00,#00,#ff
DB #28,#19,#78,#00,#00,#06,#00,#00,#00,#00,#63,#14,#00,#00,#ff
DB #28,#19,#78,#00,#00,#06,#00,#00,#00,#00,#3b,#32,#00,#00,#ff
DB #28,#19,#78,#00,#00,#06,#00,#00,#00,#00,#63,#32,#00,#00,#ff
DB #28,#19,#78,#00,#00,#06,#00,#00,#00,#00,#63,#1e,#00,#00,#ff
DB #28,#19,#78,#00,#00,#06,#00,#00,#00,#00,#59,#32,#00,#00,#ff
DB #28,#19,#78,#00,#00,#06,#00,#00,#00,#00,#59,#32,#00,#00,#ff
DB #28,#19,#78,#00,#00,#06,#00,#00,#00,#00,#63,#32,#00,#00,#ff
DB #28,#19,#78,#00,#00,#06,#00,#00,#00,#00,#63,#3c,#00,#00,#ff
DB #28,#19,#78,#00,#00,#06,#00,#00,#00,#00,#63,#3c,#00,#00,#ff
DB #28,#19,#78,#00,#00,#06,#00,#00,#00,#00,#41,#3c,#00,#00,#ff
DB #28,#19,#78,#00,#00,#06,#00,#00,#00,#00,#4f,#32,#00,#00,#ff
l9febh: ;9feb
DB #28,#19,#79,#00,#00,#06,#00,#00,#00,#00,#63,#46,#00,#00,#ff
DB #28,#19,#79,#00,#00,#06,#00,#00,#00,#00,#63,#46,#00,#00,#ff
DB #28,#19,#79,#00,#00,#06,#00,#00,#00,#00,#63,#46,#00,#00,#ff
DB #28,#19,#79,#00,#00,#06,#00,#00,#00,#00,#63,#46,#00,#00,#ff
DB #28,#19,#79,#00,#00,#06,#00,#00,#00,#00,#63,#5a,#00,#00,#ff
DB #28,#19,#79,#00,#00,#06,#00,#00,#00,#00,#4f,#5a,#00,#00,#ff
DB #28,#19,#79,#00,#00,#06,#00,#00,#00,#00,#4f,#5a,#00,#00,#ff
DB #19,#19,#79,#00,#00,#06,#00,#00,#00,#00,#63,#0a,#00,#00,#ff
DB #25,#19,#79,#00,#00,#06,#00,#00,#00,#00,#63,#10,#00,#00,#ff
DB #22,#19,#79,#00,#00,#06,#00,#00,#00,#00,#63,#10,#00,#00,#ff
DB #1c,#19,#79,#00,#00,#06,#00,#00,#00,#00,#63,#10,#00,#00,#ff
DB #22,#19,#79,#00,#00,#06,#00,#00,#00,#00,#63,#10,#00,#00,#ff
DB #1f,#19,#79,#00,#00,#06,#00,#00,#00,#00,#63,#10,#00,#00,#ff
DB #2e,#16,#79,#00,#00,#06,#00,#00,#00,#00,#37,#32,#00,#00,#ff
DB #2e,#18,#79,#c1,#31,#06,#47,#2e,#00,#00,#63,#28,#00,#00,#ff
sub_a0cch:
LD A,(0be03h) ;a0cc 3a 03 be : . .
OUT (SLOT3),A ;a0cf d3 e2 . .
LD HL,0c008h ;a0d1 21 08 c0 ! . .
LD (0a15bh),HL ;a0d4 22 5b a1 " [ .
LD HL,00000h ;a0d7 21 00 00 ! . .
LD (0c000h),HL ;a0da 22 00 c0 " . .
LD A,0c1h ;a0dd 3e c1 > .
OUT (PORT_Y),A ;a0df d3 89 . .
LD A,(0be0bh) ;a0e1 3a 0b be : . .
OUT (SLOT1),A ;a0e4 d3 a2 . .
LD IX,07000h ;a0e6 dd 21 00 70 . ! . p
LD C,(ix+000h) ;a0ea dd 4e 00 . N .
INC IX ;a0ed dd 23 . #
LD B,(ix+000h) ;a0ef dd 46 00 . F .
INC IX ;a0f2 dd 23 . #
LD A,B ;a0f4 78 x
OR C ;a0f5 b1 .
RET Z ;a0f6 c8 .
la0f7h:
LD D,040h ;a0f7 16 40 . @
LD E,(ix+000h) ;a0f9 dd 5e 00 . ^ .
EXX ;a0fc d9 .
LD A,(ix+000h) ;a0fd dd 7e 00 . ~ .
LD L,A ;a100 6f o
CP 01ah ;a101 fe 1a . .
JR Z,la10fh ;a103 28 0a ( .
CP 004h ;a105 fe 04 . .
JR Z,la10fh ;a107 28 06 ( .
CP 006h ;a109 fe 06 . .
LD A,000h ;a10b 3e 00 > .
JR NZ,la110h ;a10d 20 01 .
la10fh:
INC A ;a10f 3c <
la110h:
LD (la179h+1),A ;a110 32 7a a1 2 z .
EXX ;a113 d9 .
INC IX ;a114 dd 23 . #
EX DE,HL ;a116 eb .
LD E,(HL) ;a117 5e ^
INC H ;a118 24 $
LD D,(HL) ;a119 56 V
EX DE,HL ;a11a eb .
LD E,(ix+000h) ;a11b dd 5e 00 . ^ .
EXX ;a11e d9 .
LD C,(ix+000h) ;a11f dd 4e 00 . N .
EXX ;a122 d9 .
INC IX ;a123 dd 23 . #
LD D,000h ;a125 16 00 . .
ADD HL,DE ;a127 19 .
ADD HL,DE ;a128 19 .
LD A,(HL) ;a129 7e ~
INC HL ;a12a 23 #
LD H,(HL) ;a12b 66 f
LD L,A ;a12c 6f o
LD E,(HL) ;a12d 5e ^
INC HL ;a12e 23 #
XOR A ;a12f af .
LD (0a180h),A ;a130 32 80 a1 2 . .
EXX ;a133 d9 .
LD A,(0be05h) ;a134 3a 05 be : . .
OUT (SLOT1),A ;a137 d3 a2 . .
LD H,042h ;a139 26 42 & B
LD A,(HL) ;a13b 7e ~
INC H ;a13c 24 $
LD H,(HL) ;a13d 66 f
LD L,A ;a13e 6f o
LD B,000h ;a13f 06 00 . .
ADD HL,BC ;a141 09 .
ADD HL,BC ;a142 09 .
LD A,(HL) ;a143 7e ~
INC HL ;a144 23 #
LD H,(HL) ;a145 66 f
LD L,A ;a146 6f o
LD DE,00000h ;a147 11 00 00 . . .
LD (0a19eh),HL ;a14a 22 9e a1 " . .
la14dh:
ADD HL,DE ;a14d 19 .
ADD HL,DE ;a14e 19 .
LD A,(HL) ;a14f 7e ~
INC HL ;a150 23 #
LD H,(HL) ;a151 66 f
LD L,A ;a152 6f o
LD A,(0be0bh) ;a153 3a 0b be : . .
OUT (SLOT1),A ;a156 d3 a2 . .
PUSH DE ;a158 d5 .
EX DE,HL ;a159 eb .
LD HL,00000h ;a15a 21 00 00 ! . .
LD (HL),E ;a15d 73 s
INC HL ;a15e 23 #
LD (HL),D ;a15f 72 r
INC HL ;a160 23 #
LD (0a16ah),HL ;a161 22 6a a1 " j .
EX DE,HL ;a164 eb .
POP DE ;a165 d1 .
EXX ;a166 d9 .
PUSH DE ;a167 d5 .
EX DE,HL ;a168 eb .
LD HL,00000h ;a169 21 00 00 ! . .
LD (HL),E ;a16c 73 s
INC HL ;a16d 23 #
LD (HL),D ;a16e 72 r
INC HL ;a16f 23 #
LD A,(0a180h) ;a170 3a 80 a1 : . .
OR A ;a173 b7 .
JR NZ,la179h ;a174 20 03 .
LD (HL),A ;a176 77 w
JR la17bh ;a177 18 02 . .
la179h:
LD (HL),000h ;a179 36 00 6 .
la17bh:
INC HL ;a17b 23 #
INC HL ;a17c 23 #
INC HL ;a17d 23 #
INC HL ;a17e 23 #
LD A,000h ;a17f 3e 00 > .
INC A ;a181 3c <
LD (0a180h),A ;a182 32 80 a1 2 . .
LD (0a15bh),HL ;a185 22 5b a1 " [ .
LD HL,(0c000h) ;a188 2a 00 c0 * . .
INC HL ;a18b 23 #
LD (0c000h),HL ;a18c 22 00 c0 " . .
EX DE,HL ;a18f eb .
POP DE ;a190 d1 .
PUSH BC ;a191 c5 .
LD BC,00025h ;a192 01 25 00 . % .
ADD HL,BC ;a195 09 .
POP BC ;a196 c1 .
EXX ;a197 d9 .
LD A,(0be05h) ;a198 3a 05 be : . .
OUT (SLOT1),A ;a19b d3 a2 . .
LD HL,00000h ;a19d 21 00 00 ! . .
INC DE ;a1a0 13 .
EXX ;a1a1 d9 .
DEC E ;a1a2 1d .
EXX ;a1a3 d9 .
JP NZ,la14dh ;a1a4 c2 4d a1 . M .
EXX ;a1a7 d9 .
LD A,(0be0bh) ;a1a8 3a 0b be : . .
OUT (SLOT1),A ;a1ab d3 a2 . .
DEC BC ;a1ad 0b .
LD A,B ;a1ae 78 x
OR C ;a1af b1 .
JP NZ,la0f7h ;a1b0 c2 f7 a0 . . .
RET ;a1b3 c9 .
CURRENT_MEM_USED:
DB GAME_NEED_MEM_PAGES ;a1b4 00 .
CURRENT_PAGE:
.SLOT3: DB 0 ;a1b5 00 .
.SLOT1: DB 0 ;a1b6 00 .
GET_MEM_AND_PAGES:
LD (CURRENT_MEM_USED),A ;a1b7 32 b4 a1 2 . .
LD C,Dss.GetMem ;a1ba 0e c2 . .
LD B,A ;a1bc 47 G
RST ToDSS ;a1bd cf .
JP C,l83a1h ;a1be da a1 83 . . .
;
LD (CURRENT_MEM_BLOCK_ID),A ;a1c1 32 af a2 2 . .
LD C,BIOS.GetMemBlkPages ;a1c4 0e c5 . .
LD HL,PAGES_BUFFER ;a1c6 21 00 be ! . .
RST ToBIOS ;a1c9 cf .
JP C,l83a1h ;a1ca da a1 83 . . .
RET ;a1cd c9 .
FREE_MEM_: LD C,Dss.FreeMem ;a1ce 0e c3 . .
LD A,(CURRENT_MEM_BLOCK_ID) ;a1d0 3a af a2 : . .
RST ToDSS ;a1d3 cf .
JP C,SetUp_RESET_EXIT ;a1d4 da 63 83 . c .
RET ;a1d7 c9 .
SET_PAGE_SLOT3: LD (CURRENT_PAGE.SLOT3),A ;a1d8 32 b5 a1 2 . .
LD L,A ;a1db 6f o
LD H,high PAGES_BUFFER ;a1dc 26 be & .
LD A,(HL) ;a1de 7e ~
OUT (SLOT3),A ;a1df d3 e2 . .
RET ;a1e1 c9 .
SET_PAGE_SLOT1: LD (CURRENT_PAGE.SLOT1),A ;a1e2 32 b6 a1 2 . .
LD L,A ;a1e5 6f o
LD H,high PAGES_BUFFER ;a1e6 26 be & .
LD A,(HL) ;a1e8 7e ~
OUT (SLOT1),A ;a1e9 d3 a2 . .
RET ;a1eb c9 .
SET_PAGE_SLOT3_af:
PUSH AF ;a1ec f5 .
PUSH HL ;a1ed e5 .
LD (CURRENT_PAGE.SLOT3),A ;a1ee 32 b5 a1 2 . .
LD L,A ;a1f1 6f o
LD H,high PAGES_BUFFER ;a1f2 26 be & .
LD A,(HL) ;a1f4 7e ~
OUT (SLOT3),A ;a1f5 d3 e2 . .
POP HL ;a1f7 e1 .
POP AF ;a1f8 f1 .
RET ;a1f9 c9 .
SET_PAGE_SLOT1_af:
PUSH AF ;a1fa f5 .
PUSH HL ;a1fb e5 .
LD (CURRENT_PAGE.SLOT1),A ;a1fc 32 b6 a1 2 . .
LD L,A ;a1ff 6f o
LD H,high PAGES_BUFFER ;a200 26 be & .
LD A,(HL) ;a202 7e ~
OUT (SLOT1),A ;a203 d3 a2 . .
POP HL ;a205 e1 .
POP AF ;a206 f1 .
RET ;a207 c9 .
sub_a208h:
LD A,050h ;a208 3e 50 > P
OUT (SLOT3),A ;a20a d3 e2 . .
RET ;a20c c9 .
LD A,050h ;a20d 3e 50 > P
OUT (SLOT1),A ;a20f d3 a2 . .
RET ;a211 c9 .
LD E,(HL) ;a212 5e ^
INC HL ;a213 23 #
LD D,(HL) ;a214 56 V
INC HL ;a215 23 #
la216h:
XOR A ;a216 af .
INC A ;a217 3c <
LD BC,256*#FF + BIOS.PIC_SET_PAL ;a218 01 a4 ff . . .
RST ToBIOS ;a21b cf .
RET ;a21c c9 .
LD DE,00100h ;a21d 11 00 01 . . .
la220h:
LD BC,256*#FF + BIOS.PIC_SET_PAL ;a220 01 a4 ff . . .
LD HL,PALETTE_1 ;a223 21 83 a2 ! . .
XOR A ;a226 af .
PUSH DE ;a227 d5 .
RST ToBIOS ;a228 cf .
POP DE ;a229 d1 .
INC E ;a22a 1c .
JR NZ,la220h ;a22b 20 f3 .
RET ;a22d c9 .
LD A,0c1h ;a22e 3e c1 > .
OUT (PORT_Y),A ;a230 d3 89 . .
RET ;a232 c9 .
LD IX,0e000h ;a233 dd 21 00 e0 . ! . .
PUSH IX ;a237 dd e5 . .
CALL sub_a240h ;a239 cd 40 a2 . @ .
POP HL ;a23c e1 .
JP la261h ;a23d c3 61 a2 . a .
sub_a240h:
LD B,000h ;a240 06 00 . .
LD C,B ;a242 48 H
la243h:
LD A,(HL) ;a243 7e ~
LD (ix+002h),A ;a244 dd 77 02 . w .
INC HL ;a247 23 #
LD A,(HL) ;a248 7e ~
LD (ix+001h),A ;a249 dd 77 01 . w .
INC HL ;a24c 23 #
LD A,(HL) ;a24d 7e ~
LD (ix+000h),A ;a24e dd 77 00 . w .
INC HL ;a251 23 #
LD (ix+003h),B ;a252 dd 70 03 . p .
INC IX ;a255 dd 23 . #
INC IX ;a257 dd 23 . #
INC IX ;a259 dd 23 . #
INC IX ;a25b dd 23 . #
DEC C ;a25d 0d .
JR NZ,la243h ;a25e 20 e3 .
RET ;a260 c9 .
la261h:
LD E,000h ;a261 1e 00 . .
LD D,000h ;a263 16 00 . .
JP la216h ;a265 c3 16 a2 . . .
LD BC,03135h ;a268 01 35 31 . 5 1
RST ToDSS ;a26b d7 .
RET ;a26c c9 .
RET ;a26d c9 .
FAST_RAM_FN:
.ON_EI: DI ;a26e f3 .
IN A,(FastRAM.ON) ;a26f db fb . .
EI ;a271 fb .
RET ;a272 c9 .
;
.ON_DI: DI ;a273 f3 .
IN A,(FastRAM.ON) ;a274 db fb . .
RET ;a276 c9 .
;
.OFF_EI: DI ;a277 f3 .
IN A,(FastRAM.OFF) ;a278 db 7b . {
EI ;a27a fb .
RET ;a27b c9 .
;
.OFF_DI: DI ;a27c f3 .
IN A,(FastRAM.OFF) ;a27d db 7b . {
RET ;a27f c9 .
la280h: NOP ;a280 00 .
la281h: NOP ;a281 00 .
NOP ;a282 00 .
PALETTE_1: DB #00, #00, #00, #00
DB #82, #00, #a2, #00
DB #c2, #00, #e2, #00
DB #89, #00, #20, #39
DB #37, #00, #4b, #04
DB #00, #4d, #06, #00
DB #48, #05, #00, #50
DB #07, #1b, #01, #3a
DB #34, #05, #0a, #36
DB #07, #0b, #38, #09
DB #0c, #32, #03, #0d
CURRENT_MEM_BLOCK_ID:
DB 0 ;a2af 00 .
sub_a2b0h:
LD HL,00000h ;a2b0 21 00 00 ! . .
LD IY,00000h ;a2b3 fd 21 00 00 . ! . .
PUSH IY ;a2b7 fd e5 . .
PUSH IY ;a2b9 fd e5 . .
CALL sub_a3a1h ;a2bb cd a1 a3 . . .
LD A,0c1h ;a2be 3e c1 > .
OUT (PORT_Y),A ;a2c0 d3 89 . .
POP IY ;a2c2 fd e1 . .
LD HL,00000h ;a2c4 21 00 00 ! . .
LD A,000h ;a2c7 3e 00 > .
LD DE,00000h ;a2c9 11 00 00 . . .
CALL sub_a457h ;a2cc cd 57 a4 . W .
LD IY,00000h ;a2cf fd 21 00 00 . ! . .
LD A,000h ;a2d3 3e 00 > .
LD IXH,A ;a2d5 dd 67 . g
LD HL,0c000h ;a2d7 21 00 c0 ! . .
LD BC,00008h ;a2da 01 08 00 . . .
LD A,(0be02h) ;a2dd 3a 02 be : . .
LD (0a2e7h),A ;a2e0 32 e7 a2 2 . .
PUSH IY ;a2e3 fd e5 . .
la2e5h:
EXX ;a2e5 d9 .
LD A,000h ;a2e6 3e 00 > .
OUT (SLOT1),A ;a2e8 d3 a2 . .
LD A,IYH ;a2ea fd 7c . |
LD H,A ;a2ec 67 g
LD A,IYL ;a2ed fd 7d . }
LD L,A ;a2ef 6f o
ADD HL,HL ;a2f0 29 )
ADD HL,HL ;a2f1 29 )
SET 6,H ;a2f2 cb f4 . .
LD A,(HL) ;a2f4 7e ~
AND 03fh ;a2f5 e6 3f . ?
OR 040h ;a2f7 f6 40 . @
LD D,A ;a2f9 57 W
INC L ;a2fa 2c ,
LD E,(HL) ;a2fb 5e ^
INC L ;a2fc 2c ,
LD A,(HL) ;a2fd 7e ~
LD IXL,A ;a2fe dd 6f . o
PUSH DE ;a300 d5 .
EXX ;a301 d9 .
POP DE ;a302 d1 .
LD A,050h ;a303 3e 50 > P
OUT (SLOT1),A ;a305 d3 a2 . .
DI ;a307 f3 .
LD D,D ;a308 52 R
LD A,008h ;a309 3e 08 > .
LD B,B ;a30b 40 @
LD A,IXL ;a30c dd 7d . }
OUT (PORT_Y),A ;a30e d3 89 . .
LD L,L ;a310 6d m
LD A,(HL) ;a311 7e ~
LD (DE),A ;a312 12 .
LD B,B ;a313 40 @
ADD HL,BC ;a314 09 .
INC IXL ;a315 dd 2c . ,
LD A,IXL ;a317 dd 7d . }
OUT (PORT_Y),A ;a319 d3 89 . .
LD L,L ;a31b 6d m
LD A,(HL) ;a31c 7e ~
LD (DE),A ;a31d 12 .
LD B,B ;a31e 40 @
ADD HL,BC ;a31f 09 .
INC IXL ;a320 dd 2c . ,
LD A,IXL ;a322 dd 7d . }
OUT (PORT_Y),A ;a324 d3 89 . .
LD L,L ;a326 6d m
LD A,(HL) ;a327 7e ~
LD (DE),A ;a328 12 .
LD B,B ;a329 40 @
ADD HL,BC ;a32a 09 .
INC IXL ;a32b dd 2c . ,
LD A,IXL ;a32d dd 7d . }
OUT (PORT_Y),A ;a32f d3 89 . .
LD L,L ;a331 6d m
LD A,(HL) ;a332 7e ~
LD (DE),A ;a333 12 .
LD B,B ;a334 40 @
ADD HL,BC ;a335 09 .
INC IXL ;a336 dd 2c . ,
LD A,IXL ;a338 dd 7d . }
OUT (PORT_Y),A ;a33a d3 89 . .
LD L,L ;a33c 6d m
LD A,(HL) ;a33d 7e ~
LD (DE),A ;a33e 12 .
LD B,B ;a33f 40 @
ADD HL,BC ;a340 09 .
INC IXL ;a341 dd 2c . ,
LD A,IXL ;a343 dd 7d . }
OUT (PORT_Y),A ;a345 d3 89 . .
LD L,L ;a347 6d m
LD A,(HL) ;a348 7e ~
LD (DE),A ;a349 12 .
LD B,B ;a34a 40 @
ADD HL,BC ;a34b 09 .
INC IXL ;a34c dd 2c . ,
LD A,IXL ;a34e dd 7d . }
OUT (PORT_Y),A ;a350 d3 89 . .
LD L,L ;a352 6d m
LD A,(HL) ;a353 7e ~
LD (DE),A ;a354 12 .
LD B,B ;a355 40 @
ADD HL,BC ;a356 09 .
INC IXL ;a357 dd 2c . ,
LD A,IXL ;a359 dd 7d . }
OUT (PORT_Y),A ;a35b d3 89 . .
LD L,L ;a35d 6d m
LD A,(HL) ;a35e 7e ~
LD (DE),A ;a35f 12 .
LD B,B ;a360 40 @
EI ;a361 fb .
ADD HL,BC ;a362 09 .
INC IY ;a363 fd 23 . #
DEC IXH ;a365 dd 25 . %
JP NZ,la2e5h ;a367 c2 e5 a2 . . .
LD A,0c1h ;a36a 3e c1 > .
OUT (PORT_Y),A ;a36c d3 89 . .
POP HL ;a36e e1 .
POP BC ;a36f c1 .
LD A,(0be0ah) ;a370 3a 0a be : . .
OUT (SLOT3),A ;a373 d3 e2 . .
LD A,(0be02h) ;a375 3a 02 be : . .
OUT (SLOT1),A ;a378 d3 a2 . .
ADD HL,HL ;a37a 29 )
ADD HL,HL ;a37b 29 )
SET 6,H ;a37c cb f4 . .
LD DE,00000h ;a37e 11 00 00 . . .
LD IXL,B ;a381 dd 68 . h
LD B,000h ;a383 06 00 . .
LD A,C ;a385 79 y
RLCA ;a386 07 .
RLCA ;a387 07 .
LD C,A ;a388 4f O
LD (0a38fh),A ;a389 32 8f a3 2 . .
DI ;a38c f3 .
LD D,D ;a38d 52 R
LD A,000h ;a38e 3e 00 > .
LD B,B ;a390 40 @
LD IXH,E ;a391 dd 63 . c
la393h:
LD L,L ;a393 6d m
LD A,(HL) ;a394 7e ~
LD (DE),A ;a395 12 .
LD B,B ;a396 40 @
ADD HL,BC ;a397 09 .
LD E,IXH ;a398 dd 5c . \
INC D ;a39a 14 .
DEC IXL ;a39b dd 2d . -
JR NZ,la393h ;a39d 20 f4 .
EI ;a39f fb .
RET ;a3a0 c9 .
sub_a3a1h:
LD A,050h ;a3a1 3e 50 > P
OUT (SLOT1),A ;a3a3 d3 a2 . .
LD BC,00008h ;a3a5 01 08 00 . . .
EX DE,HL ;a3a8 eb .
LD HL,0c000h ;a3a9 21 00 c0 ! . .
LD A,IYL ;a3ac fd 7d . }
la3aeh:
EX AF,AF' ;a3ae 08 .
PUSH DE ;a3af d5 .
la3b0h:
LD A,(0be0ah) ;a3b0 3a 0a be : . .
OUT (SLOT3),A ;a3b3 d3 e2 . .
LD A,(DE) ;a3b5 1a .
AND 003h ;a3b6 e6 03 . .
INC E ;a3b8 1c .
OR 040h ;a3b9 f6 40 . @
LD IXH,A ;a3bb dd 67 . g
LD A,(DE) ;a3bd 1a .
INC E ;a3be 1c .
LD IXL,A ;a3bf dd 6f . o
LD A,(DE) ;a3c1 1a .
INC E ;a3c2 1c .
INC E ;a3c3 1c .
PUSH DE ;a3c4 d5 .
LD E,IXL ;a3c5 dd 5d . ]
LD D,IXH ;a3c7 dd 54 . T
LD IXL,A ;a3c9 dd 6f . o
LD A,(0be09h) ;a3cb 3a 09 be : . .
OUT (SLOT3),A ;a3ce d3 e2 . .
DI ;a3d0 f3 .
LD D,D ;a3d1 52 R
LD A,008h ;a3d2 3e 08 > .
LD B,B ;a3d4 40 @
LD A,IXL ;a3d5 dd 7d . }
OUT (PORT_Y),A ;a3d7 d3 89 . .
LD L,L ;a3d9 6d m
LD A,(DE) ;a3da 1a .
LD (HL),A ;a3db 77 w
LD B,B ;a3dc 40 @
ADD HL,BC ;a3dd 09 .
INC IXL ;a3de dd 2c . ,
LD A,IXL ;a3e0 dd 7d . }
OUT (PORT_Y),A ;a3e2 d3 89 . .
LD L,L ;a3e4 6d m
LD A,(DE) ;a3e5 1a .
LD (HL),A ;a3e6 77 w
LD B,B ;a3e7 40 @
ADD HL,BC ;a3e8 09 .
INC IXL ;a3e9 dd 2c . ,
LD A,IXL ;a3eb dd 7d . }
OUT (PORT_Y),A ;a3ed d3 89 . .
LD L,L ;a3ef 6d m
LD A,(DE) ;a3f0 1a .
LD (HL),A ;a3f1 77 w
LD B,B ;a3f2 40 @
ADD HL,BC ;a3f3 09 .
INC IXL ;a3f4 dd 2c . ,
LD A,IXL ;a3f6 dd 7d . }
OUT (PORT_Y),A ;a3f8 d3 89 . .
LD L,L ;a3fa 6d m
LD A,(DE) ;a3fb 1a .
LD (HL),A ;a3fc 77 w
LD B,B ;a3fd 40 @
ADD HL,BC ;a3fe 09 .
INC IXL ;a3ff dd 2c . ,
LD A,IXL ;a401 dd 7d . }
OUT (PORT_Y),A ;a403 d3 89 . .
LD L,L ;a405 6d m
LD A,(DE) ;a406 1a .
LD (HL),A ;a407 77 w
LD B,B ;a408 40 @
ADD HL,BC ;a409 09 .
INC IXL ;a40a dd 2c . ,
LD A,IXL ;a40c dd 7d . }
OUT (PORT_Y),A ;a40e d3 89 . .
LD L,L ;a410 6d m
LD A,(DE) ;a411 1a .
LD (HL),A ;a412 77 w
LD B,B ;a413 40 @
ADD HL,BC ;a414 09 .
INC IXL ;a415 dd 2c . ,
LD A,IXL ;a417 dd 7d . }
OUT (PORT_Y),A ;a419 d3 89 . .
LD L,L ;a41b 6d m
LD A,(DE) ;a41c 1a .
LD (HL),A ;a41d 77 w
LD B,B ;a41e 40 @
ADD HL,BC ;a41f 09 .
INC IXL ;a420 dd 2c . ,
LD A,IXL ;a422 dd 7d . }
OUT (PORT_Y),A ;a424 d3 89 . .
LD L,L ;a426 6d m
LD A,(DE) ;a427 1a .
LD (HL),A ;a428 77 w
LD B,B ;a429 40 @
EI ;a42a fb .
ADD HL,BC ;a42b 09 .
POP DE ;a42c d1 .
DEC IYL ;a42d fd 2d . -
JP NZ,la3b0h ;a42f c2 b0 a3 . . .
POP DE ;a432 d1 .
INC D ;a433 14 .
EX AF,AF' ;a434 08 .
LD IYL,A ;a435 fd 6f . o
DEC IYH ;a437 fd 25 . %
JP NZ,la3aeh ;a439 c2 ae a3 . . .
LD A,0c1h ;a43c 3e c1 > .
OUT (PORT_Y),A ;a43e d3 89 . .
RET ;a440 c9 .
sub_a441h:
PUSH AF ;a441 f5 .
PUSH BC ;a442 c5 .
LD HL,0c000h ;a443 21 00 c0 ! . .
LD A,(03f30h) ;a446 3a 30 3f : 0 ?
ADD A,H ;a449 84 .
LD H,A ;a44a 67 g
LD A,(03f2fh) ;a44b 3a 2f 3f : / ?
ADD A,A ;a44e 87 .
LD C,A ;a44f 4f O
LD B,000h ;a450 06 00 . .
ADD HL,BC ;a452 09 .
ADD HL,BC ;a453 09 .
POP BC ;a454 c1 .
POP AF ;a455 f1 .
RET ;a456 c9 .
sub_a457h:
CALL SET_PAGE_SLOT1_af ;a457 cd fa a1 . . .
LD BC,0ffd8h ;a45a 01 d8 ff . . .
XOR A ;a45d af .
OR E ;a45e b3 .
JR Z,la465h ;a45f 28 04 ( .
la461h:
ADD HL,BC ;a461 09 .
DEC E ;a462 1d .
JR NZ,la461h ;a463 20 fc .
la465h:
LD B,000h ;a465 06 00 . .
LD C,D ;a467 4a J
XOR A ;a468 af .
SBC HL,BC ;a469 ed 42 . B
LD A,(0be09h) ;a46b 3a 09 be : . .
OUT (SLOT3),A ;a46e d3 e2 . .
LD DE,0c000h ;a470 11 00 c0 . . .
LD B,E ;a473 43 C
la474h:
LD A,IYL ;a474 fd 7d . }
LD IXL,A ;a476 dd 6f . o
PUSH HL ;a478 e5 .
la479h:
LD A,008h ;a479 3e 08 > .
la47bh:
EX AF,AF' ;a47b 08 .
LD A,(HL) ;a47c 7e ~
OR A ;a47d b7 .
JR Z,la481h ;a47e 28 01 ( .
LD (DE),A ;a480 12 .
la481h:
INC HL ;a481 23 #
INC E ;a482 1c .
LD A,(HL) ;a483 7e ~
OR A ;a484 b7 .
JR Z,la488h ;a485 28 01 ( .
LD (DE),A ;a487 12 .
la488h:
INC HL ;a488 23 #
INC E ;a489 1c .
LD A,(HL) ;a48a 7e ~
OR A ;a48b b7 .
JR Z,la48fh ;a48c 28 01 ( .
LD (DE),A ;a48e 12 .
la48fh:
INC HL ;a48f 23 #
INC E ;a490 1c .
LD A,(HL) ;a491 7e ~
OR A ;a492 b7 .
JR Z,la496h ;a493 28 01 ( .
LD (DE),A ;a495 12 .
la496h:
INC HL ;a496 23 #
INC E ;a497 1c .
LD A,(HL) ;a498 7e ~
OR A ;a499 b7 .
JR Z,la49dh ;a49a 28 01 ( .
LD (DE),A ;a49c 12 .
la49dh:
INC HL ;a49d 23 #
INC E ;a49e 1c .
LD A,(HL) ;a49f 7e ~
OR A ;a4a0 b7 .
JR Z,la4a4h ;a4a1 28 01 ( .
LD (DE),A ;a4a3 12 .
la4a4h:
INC HL ;a4a4 23 #
INC E ;a4a5 1c .
LD A,(HL) ;a4a6 7e ~
OR A ;a4a7 b7 .
JR Z,la4abh ;a4a8 28 01 ( .
LD (DE),A ;a4aa 12 .
la4abh:
INC HL ;a4ab 23 #
INC E ;a4ac 1c .
LD A,(HL) ;a4ad 7e ~
OR A ;a4ae b7 .
JR Z,la4b2h ;a4af 28 01 ( .
LD (DE),A ;a4b1 12 .
la4b2h:
INC DE ;a4b2 13 .
LD C,021h ;a4b3 0e 21 . !
ADD HL,BC ;a4b5 09 .
EX AF,AF' ;a4b6 08 .
DEC A ;a4b7 3d =
JR NZ,la47bh ;a4b8 20 c1 .
DEC IXL ;a4ba dd 2d . -
JR NZ,la479h ;a4bc 20 bb .
POP HL ;a4be e1 .
LD C,008h ;a4bf 0e 08 . .
ADD HL,BC ;a4c1 09 .
DEC IYH ;a4c2 fd 25 . %
JR NZ,la474h ;a4c4 20 ae .
RET ;a4c6 c9 .
sub_a4c7h:
CALL FAST_RAM_FN.ON_EI ;a4c7 cd 6e a2 . n .
LD IX,03c01h ;a4ca dd 21 01 3c . ! . <
LD A,(03f08h) ;a4ce 3a 08 3f : . ?
OR A ;a4d1 b7 .
JR Z,la4dch ;a4d2 28 08 ( .
LD IX,03c0eh ;a4d4 dd 21 0e 3c . ! . <
LD A,007h ;a4d8 3e 07 > .
JR la4deh ;a4da 18 02 . .
la4dch:
LD A,008h ;a4dc 3e 08 > .
la4deh:
PUSH AF ;a4de f5 .
LD A,(ix+00ah) ;a4df dd 7e 0a . ~ .
INC A ;a4e2 3c <
JP Z,la5bah ;a4e3 ca ba a5 . . .
LD A,(ix+002h) ;a4e6 dd 7e 02 . ~ .
CP 0f0h ;a4e9 fe f0 . .
JP C,la5bah ;a4eb da ba a5 . . .
SUB 0f0h ;a4ee d6 f0 . .
LD HL,04000h ;a4f0 21 00 40 ! . @
OR A ;a4f3 b7 .
JR Z,la4fdh ;a4f4 28 07 ( .
LD BC,00640h ;a4f6 01 40 06 . @ .
la4f9h:
ADD HL,BC ;a4f9 09 .
DEC A ;a4fa 3d =
JR NZ,la4f9h ;a4fb 20 fc .
la4fdh:
LD A,00eh ;a4fd 3e 0e > .
EX DE,HL ;a4ff eb .
JR la502h ;a500 18 00 . .
la502h:
LD (0a2c8h),A ;a502 32 c8 a2 2 . .
EX DE,HL ;a505 eb .
LD DE,00148h ;a506 11 48 01 . H .
ADD HL,DE ;a509 19 .
LD (0a2c5h),HL ;a50a 22 c5 a2 " . .
LD A,(03f07h) ;a50d 3a 07 3f : . ?
LD C,A ;a510 4f O
LD A,(03f06h) ;a511 3a 06 3f : . ?
LD B,A ;a514 47 G
EXX ;a515 d9 .
LD A,(ix+005h) ;a516 dd 7e 05 . ~ .
LD IYL,A ;a519 fd 6f . o
LD E,A ;a51b 5f _
AND 003h ;a51c e6 03 . .
SRL E ;a51e cb 3b . ;
SRL E ;a520 cb 3b . ;
SRL E ;a522 cb 3b . ;
LD (0a58bh),A ;a524 32 8b a5 2 . .
LD A,(ix+006h) ;a527 dd 7e 06 . ~ .
LD IYH,A ;a52a fd 67 . g
LD D,A ;a52c 57 W
AND 003h ;a52d e6 03 . .
SRL D ;a52f cb 3a . :
SRL D ;a531 cb 3a . :
SRL D ;a533 cb 3a . :
LD (0a58ch),A ;a535 32 8c a5 2 . .
LD BC,00303h ;a538 01 03 03 . . .
LD A,IYL ;a53b fd 7d . }
OR A ;a53d b7 .
JR Z,la541h ;a53e 28 01 ( .
INC C ;a540 0c .
la541h:
LD A,IYH ;a541 fd 7c . |
OR A ;a543 b7 .
JR Z,la547h ;a544 28 01 ( .
INC B ;a546 04 .
la547h:
EXX ;a547 d9 .
LD E,(ix+00ah) ;a548 dd 5e 0a . ^ .
LD A,E ;a54b 7b {
CP C ;a54c b9 .
JP C,la5c7h ;a54d da c7 a5 . . .
SUB C ;a550 91 .
LD E,A ;a551 5f _
CP 00bh ;a552 fe 0b . .
JP NC,la5bah ;a554 d2 ba a5 . . .
la557h:
LD D,(ix+00bh) ;a557 dd 56 0b . V .
LD A,D ;a55a 7a z
CP B ;a55b b8 .
JP C,la5f1h ;a55c da f1 a5 . . .
SUB B ;a55f 90 .
LD D,A ;a560 57 W
CP 00fh ;a561 fe 0f . .
JR NC,la5bah ;a563 30 55 0 U
la565h:
LD A,E ;a565 7b {
ADD A,E ;a566 83 .
ADD A,E ;a567 83 .
LD (03f2fh),A ;a568 32 2f 3f 2 / ?
LD (ix+000h),A ;a56b dd 77 00 . w .
LD A,D ;a56e 7a z
LD E,A ;a56f 5f _
ADD A,E ;a570 83 .
ADD A,E ;a571 83 .
LD (ix+001h),A ;a572 dd 77 01 . w .
LD (03f30h),A ;a575 32 30 3f 2 0 ?
CALL sub_a441h ;a578 cd 41 a4 . A .
EXX ;a57b d9 .
PUSH BC ;a57c c5 .
PUSH DE ;a57d d5 .
EXX ;a57e d9 .
POP DE ;a57f d1 .
LD A,D ;a580 7a z
ADD A,H ;a581 84 .
LD H,A ;a582 67 g
RL E ;a583 cb 13 . .
LD D,000h ;a585 16 00 . .
ADD HL,DE ;a587 19 .
ADD HL,DE ;a588 19 .
LD IY,00000h ;a589 fd 21 00 00 . ! . .
LD (0a2cah),IY ;a58d fd 22 ca a2 . " . .
POP IY ;a591 fd e1 . .
LD (sub_a2b0h+1),HL ;a593 22 b1 a2 " . .
LD (0a37fh),HL ;a596 22 7f a3 " . .
LD (0a2b5h),IY ;a599 fd 22 b5 a2 . " . .
LD A,(ix+003h) ;a59d dd 7e 03 . ~ .
LD (0a2d2h),A ;a5a0 32 d2 a2 2 . .
LD A,(ix+004h) ;a5a3 dd 7e 04 . ~ .
LD (0a2d1h),A ;a5a6 32 d1 a2 2 . .
XOR A ;a5a9 af .
la5aah:
ADD A,IYL ;a5aa fd 85 . .
DEC IYH ;a5ac fd 25 . %
JR NZ,la5aah ;a5ae 20 fa .
LD (0a2d4h),A ;a5b0 32 d4 a2 2 . .
PUSH IX ;a5b3 dd e5 . .
CALL sub_a2b0h ;a5b5 cd b0 a2 . . .
POP IX ;a5b8 dd e1 . .
la5bah:
LD DE,0000dh ;a5ba 11 0d 00 . . .
ADD IX,DE ;a5bd dd 19 . .
POP AF ;a5bf f1 .
DEC A ;a5c0 3d =
JP NZ,la4deh ;a5c1 c2 de a4 . . .
JP FAST_RAM_FN.OFF_EI ;a5c4 c3 77 a2 . w .
la5c7h:
LD A,IYL ;a5c7 fd 7d . }
OR A ;a5c9 b7 .
JR Z,la5bah ;a5ca 28 ee ( .
INC E ;a5cc 1c .
EXX ;a5cd d9 .
DEC C ;a5ce 0d .
DEC C ;a5cf 0d .
DEC C ;a5d0 0d .
LD E,000h ;a5d1 1e 00 . .
EXX ;a5d3 d9 .
PUSH HL ;a5d4 e5 .
LD HL,(0a2c5h) ;a5d5 2a c5 a2 * . .
LD A,L ;a5d8 7d }
ADD A,0c0h ;a5d9 c6 c0 . .
LD L,A ;a5db 6f o
LD A,H ;a5dc 7c |
ADC A,003h ;a5dd ce 03 . .
LD H,A ;a5df 67 g
LD (0a2c5h),HL ;a5e0 22 c5 a2 " . .
POP HL ;a5e3 e1 .
LD A,E ;a5e4 7b {
CP C ;a5e5 b9 .
JR C,la5bah ;a5e6 38 d2 8 .
SUB C ;a5e8 91 .
LD E,A ;a5e9 5f _
CP 00bh ;a5ea fe 0b . .
JR NC,la5bah ;a5ec 30 cc 0 .
JP la557h ;a5ee c3 57 a5 . W .
la5f1h:
LD A,IYH ;a5f1 fd 7c . |
OR A ;a5f3 b7 .
JR Z,la5bah ;a5f4 28 c4 ( .
INC D ;a5f6 14 .
EXX ;a5f7 d9 .
DEC B ;a5f8 05 .
DEC B ;a5f9 05 .
DEC B ;a5fa 05 .
LD D,000h ;a5fb 16 00 . .
EXX ;a5fd d9 .
PUSH HL ;a5fe e5 .
LD HL,(0a2c5h) ;a5ff 2a c5 a2 * . .
LD A,L ;a602 7d }
ADD A,018h ;a603 c6 18 . .
LD L,A ;a605 6f o
ADC A,H ;a606 8c .
SUB L ;a607 95 .
LD H,A ;a608 67 g
LD (0a2c5h),HL ;a609 22 c5 a2 " . .
POP HL ;a60c e1 .
LD A,D ;a60d 7a z
CP B ;a60e b8 .
JR C,la5bah ;a60f 38 a9 8 .
SUB B ;a611 90 .
LD D,A ;a612 57 W
CP 00fh ;a613 fe 0f . .
JR NC,la5bah ;a615 30 a3 0 .
JP la565h ;a617 c3 65 a5 . e .
RET ;a61a c9 .
DEPACKER: DI ;a61b f3 .
LD IX,#fff4 ;a61c dd 21 f4 ff . ! . .
ADD IX,SP ;a620 dd 39 . 9
PUSH DE ;a622 d5 .
LD SP,HL ;a623 f9 .
POP BC ;a624 c1 .
EX DE,HL ;a625 eb .
POP BC ;a626 c1 .
DEC BC ;a627 0b .
ADD HL,BC ;a628 09 .
EX DE,HL ;a629 eb .
POP BC ;a62a c1 .
DEC BC ;a62b 0b .
ADD HL,BC ;a62c 09 .
SBC HL,DE ;a62d ed 52 . R
ADD HL,DE ;a62f 19 .
JR C,.la634h ;a630 38 02 8 .
LD D,H ;a632 54 T
LD E,L ;a633 5d ]
.la634h: LDDR ;a634 ed b8 . .
EX DE,HL ;a636 eb .
LD D,(ix+00bh) ;a637 dd 56 0b . V .
LD E,(ix+00ah) ;a63a dd 5e 0a . ^ .
LD SP,HL ;a63d f9 .
POP HL ;a63e e1 .
POP HL ;a63f e1 .
POP HL ;a640 e1 .
LD B,006h ;a641 06 06 . .
.loop1: DEC SP ;a643 3b ;
POP AF ;a644 f1 .
LD (ix+006h),A ;a645 dd 77 06 . w .
INC IX ;a648 dd 23 . #
DJNZ .loop1 ;a64a 10 f7 . .
EXX ;a64c d9 .
LD D,#bf ;a64d 16 bf . .
LD BC,#1010 ;a64f 01 10 10 . . .
POP HL ;a652 e1 .
.la653h: DEC SP ;a653 3b ;
POP AF ;a654 f1 .
EXX ;a655 d9 .
.loop2: LD (DE),A ;a656 12 .
INC DE ;a657 13 .
.loop3: EXX ;a658 d9 .
.loop4: ADD HL,HL ;a659 29 )
DJNZ .la65eh ;a65a 10 02 . .
POP HL ;a65c e1 .
LD B,C ;a65d 41 A
.la65eh: JR C,.la653h ;a65e 38 f3 8 .
LD E,1 ;a660 1e 01 . .
.loop5: LD A,#80 ;a662 3e 80 > .
.loop6: ADD HL,HL ;a664 29 )
DJNZ .la669h ;a665 10 02 . .
POP HL ;a667 e1 .
LD B,C ;a668 41 A
.la669h: RLA ;a669 17 .
JR C,.loop6 ;a66a 38 f8 8 .
CP 3 ;a66c fe 03 . .
JR C,.la675h ;a66e 38 05 8 .
ADD A,E ;a670 83 .
LD E,A ;a671 5f _
XOR C ;a672 a9 .
JR NZ,.loop5 ;a673 20 ed .
.la675h: ADD A,E ;a675 83 .
CP 4 ;a676 fe 04 . .
JR Z,.la6d4h ;a678 28 5a ( Z
ADC A,#FF ;a67a ce ff . .
CP 2 ;a67c fe 02 . .
EXX ;a67e d9 .
.la67fh: LD C,A ;a67f 4f O
.la680h: EXX ;a680 d9 .
LD A,#BF ;a681 3e bf > .
JR C,.la699h ;a683 38 14 8 .
.la685h: ADD HL,HL ;a685 29 )
DJNZ .la68ah ;a686 10 02 . .
POP HL ;a688 e1 .
LD B,C ;a689 41 A
.la68ah: RLA ;a68a 17 .
JR C,.la685h ;a68b 38 f8 8 .
JR Z,.la694h ;a68d 28 05 ( .
INC A ;a68f 3c <
ADD A,D ;a690 82 .
JR NC,.la69bh ;a691 30 08 0 .
SUB D ;a693 92 .
.la694h: INC A ;a694 3c <
JR NZ,.la6a3h ;a695 20 0c .
LD A,#EF ;a697 3e ef > .
.la699h: RRCA ;a699 0f .
CP A ;a69a bf .
.la69bh: ADD HL,HL ;a69b 29 )
DJNZ .la6a0h ;a69c 10 02 . .
POP HL ;a69e e1 .
LD B,C ;a69f 41 A
.la6a0h: RLA ;a6a0 17 .
JR C,.la69bh ;a6a1 38 f8 8 .
.la6a3h: EXX ;a6a3 d9 .
LD H,#FF ;a6a4 26 ff & .
JR Z,.la6aeh ;a6a6 28 06 ( .
LD H,A ;a6a8 67 g
DEC SP ;a6a9 3b ;
INC A ;a6aa 3c <
JR Z,.la6b9h ;a6ab 28 0c ( .
POP AF ;a6ad f1 .
.la6aeh: LD L,A ;a6ae 6f o
ADD HL,DE ;a6af 19 .
LDIR ;a6b0 ed b0 . .
.la6b2h: JR .loop3 ;a6b2 18 a4 . .
.la6b4h: EXX ;a6b4 d9 .
RRC D ;a6b5 cb 0a . .
JR .loop4 ;a6b7 18 a0 . .
.la6b9h: POP AF ;a6b9 f1 .
CP #E0 ;a6ba fe e0 . .
JR C,.la6aeh ;a6bc 38 f0 8 .
RLCA ;a6be 07 .
XOR C ;a6bf a9 .
INC A ;a6c0 3c <
JR Z,.la6b4h ;a6c1 28 f1 ( .
SUB #10 ;a6c3 d6 10 . .
.la6c5h: LD L,A ;a6c5 6f o
LD C,A ;a6c6 4f O
LD H,#FF ;a6c7 26 ff & .
ADD HL,DE ;a6c9 19 .
LDI ;a6ca ed a0 . .
DEC SP ;a6cc 3b ;
POP AF ;a6cd f1 .
LD (DE),A ;a6ce 12 .
INC HL ;a6cf 23 #
INC DE ;a6d0 13 .
LD A,(HL) ;a6d1 7e ~
JR .loop2 ;a6d2 18 82 . .
.la6d4h: LD A,#80 ;a6d4 3e 80 > .
.la6d6h: ADD HL,HL ;a6d6 29 )
DJNZ .la6dbh ;a6d7 10 02 . .
POP HL ;a6d9 e1 .
LD B,C ;a6da 41 A
.la6dbh: ADC A,A ;a6db 8f .
JR NZ,.la6f7h ;a6dc 20 19 .
JR C,.la6d6h ;a6de 38 f6 8 .
LD A,0fch ;a6e0 3e fc > .
JR .la6fah ;a6e2 18 16 . .
.la6e4h: DEC SP ;a6e4 3b ;
POP BC ;a6e5 c1 .
LD C,B ;a6e6 48 H
LD B,A ;a6e7 47 G
CCF ;a6e8 3f ?
JR .la680h ;a6e9 18 95 . .
.la6ebh: CP 00fh ;a6eb fe 0f . .
JR C,.la6e4h ;a6ed 38 f5 8 .
JR NZ,.la67fh ;a6ef 20 8e .
ADD A,0f4h ;a6f1 c6 f4 . .
LD SP,IX ;a6f3 dd f9 . .
JR .la70bh ;a6f5 18 14 . .
.la6f7h: SBC A,A ;a6f7 9f .
LD A,#EF ;a6f8 3e ef > .
.la6fah: ADD HL,HL ;a6fa 29 )
DJNZ .la6ffh ;a6fb 10 02 . .
POP HL ;a6fd e1 .
LD B,C ;a6fe 41 A
.la6ffh: RLA ;a6ff 17 .
JR C,.la6fah ;a700 38 f8 8 .
EXX ;a702 d9 .
JR NZ,.la6c5h ;a703 20 c0 .
BIT 7,A ;a705 cb 7f . .
JR Z,.la6ebh ;a707 28 e2 ( .
SUB #EA ;a709 d6 ea . .
.la70bh: EX DE,HL ;a70b eb .
.la70ch: POP DE ;a70c d1 .
LD (HL),E ;a70d 73 s
INC HL ;a70e 23 #
LD (HL),D ;a70f 72 r
INC HL ;a710 23 #
DEC A ;a711 3d =
JR NZ,.la70ch ;a712 20 f8 .
EX DE,HL ;a714 eb .
JR NC,.la6b2h ;a715 30 9b 0 .
RET ;a717 c9 .
sub_a718h: LD A,(laa88h) ;a718 3a 88 aa : . .
LD C,A ;a71b 4f O
LD A,(laa89h) ;a71c 3a 89 aa : . .
CP C ;a71f b9 .
RET Z ;a720 c8 .
PUSH AF ;a721 f5 .
CALL OPEN_PAK_FILE ;a722 cd 4f a9 . O .
POP AF ;a725 f1 .
OR A ;a726 b7 .
JR NZ,la784h ;a727 20 5b [
LD HL,(la859h) ;a729 2a 59 a8 * Y .
LD A,H ;a72c 7c |
LD IXH,A ;a72d dd 67 . g
LD A,L ;a72f 7d }
LD IXL,A ;a730 dd 6f . o
LD HL,(la857h) ;a732 2a 57 a8 * W .
LD A,(PAK_FILE_FM) ;a735 3a 80 aa : . .
LD B,000h ;a738 06 00 . .
LD C,Dss.Move_FP ;a73a 0e 15 . .
RST ToDSS ;a73c d7 .
LD B,01bh ;a73d 06 1b . .
LD C,010h ;a73f 0e 10 . .
LD HL,00328h ;a741 21 28 03 ! ( .
LD A,003h ;a744 3e 03 > .
CALL UNPACK_RESOURCE ;a746 cd 8e a9 . . .
LD B,012h ;a749 06 12 . .
LD C,009h ;a74b 0e 09 . .
LD HL,01e8fh ;a74d 21 8f 1e ! . .
LD A,001h ;a750 3e 01 > .
CALL UNPACK_RESOURCE ;a752 cd 8e a9 . . .
la755h: CALL sub_a97bh ;a755 cd 7b a9 . { .
CALL FAST_RAM_FN.ON_DI ;a758 cd 73 a2 . s .
CALL 0015ah ;a75b cd 5a 01 . Z .
CALL 00151h ;a75e cd 51 01 . Q .
CALL FAST_RAM_FN.OFF_DI ;a761 cd 7c a2 . | .
LD A,(laa88h) ;a764 3a 88 aa : . .
CP 002h ;a767 fe 02 . .
JR NZ,la77dh ;a769 20 12 .
CALL FAST_RAM_FN.ON_DI ;a76b cd 73 a2 . s .
LD A,01bh ;a76e 3e 1b > .
LD HL,00000h ;a770 21 00 00 ! . .
DI ;a773 f3 .
CALL 0014eh ;a774 cd 4e 01 . N .
CALL FAST_RAM_FN.OFF_DI ;a777 cd 7c a2 . | .
CALL sub_916dh ;a77a cd 6d 91 . m .
la77dh: LD A,(laa89h) ;a77d 3a 89 aa : . .
LD (laa88h),A ;a780 32 88 aa 2 . .
RET ;a783 c9 .
la784h: CP 002h ;a784 fe 02 . .
JR Z,la7b6h ;a786 28 2e ( .
LD HL,(la855h) ;a788 2a 55 a8 * U .
LD A,H ;a78b 7c |
LD IXH,A ;a78c dd 67 . g
LD A,L ;a78e 7d }
LD IXL,A ;a78f dd 6f . o
LD HL,(la853h) ;a791 2a 53 a8 * S .
LD A,(PAK_FILE_FM) ;a794 3a 80 aa : . .
LD B,000h ;a797 06 00 . .
LD C,Dss.Move_FP ;a799 0e 15 . .
RST ToDSS ;a79b d7 .
LD B,01bh ;a79c 06 1b . .
LD C,010h ;a79e 0e 10 . .
LD HL,03669h ;a7a0 21 69 36 ! i 6
LD A,002h ;a7a3 3e 02 > .
CALL UNPACK_RESOURCE ;a7a5 cd 8e a9 . . .
LD B,012h ;a7a8 06 12 . .
LD C,009h ;a7aa 0e 09 . .
LD HL,01065h ;a7ac 21 65 10 ! e .
LD A,001h ;a7af 3e 01 > .
CALL UNPACK_RESOURCE ;a7b1 cd 8e a9 . . .
JR la755h ;a7b4 18 9f . .
la7b6h: LD A,(laa88h) ;a7b6 3a 88 aa : . .
CP 001h ;a7b9 fe 01 . .
JR NZ,la7efh ;a7bb 20 32 2
LD HL,(la859h) ;a7bd 2a 59 a8 * Y .
LD A,H ;a7c0 7c |
LD IXH,A ;a7c1 dd 67 . g
LD A,L ;a7c3 7d }
LD IXL,A ;a7c4 dd 6f . o
LD HL,(la857h) ;a7c6 2a 57 a8 * W .
LD A,(PAK_FILE_FM) ;a7c9 3a 80 aa : . .
LD B,000h ;a7cc 06 00 . .
LD C,Dss.Move_FP ;a7ce 0e 15 . .
RST ToDSS ;a7d0 d7 .
LD B,01bh ;a7d1 06 1b . .
LD C,010h ;a7d3 0e 10 . .
LD HL,00328h ;a7d5 21 28 03 ! ( .
LD A,003h ;a7d8 3e 03 > .
CALL UNPACK_RESOURCE ;a7da cd 8e a9 . . .
LD B,012h ;a7dd 06 12 . .
LD C,009h ;a7df 0e 09 . .
LD HL,01e8fh ;a7e1 21 8f 1e ! . .
LD A,001h ;a7e4 3e 01 > .
CALL UNPACK_RESOURCE ;a7e6 cd 8e a9 . . .
CALL sub_a97bh ;a7e9 cd 7b a9 . { .
CALL OPEN_PAK_FILE ;a7ec cd 4f a9 . O .
la7efh: LD HL,(la85dh) ;a7ef 2a 5d a8 * ] .
LD A,H ;a7f2 7c |
LD IXH,A ;a7f3 dd 67 . g
LD A,L ;a7f5 7d }
LD IXL,A ;a7f6 dd 6f . o
LD HL,(la85bh) ;a7f8 2a 5b a8 * [ .
LD A,(PAK_FILE_FM) ;a7fb 3a 80 aa : . .
LD B,000h ;a7fe 06 00 . .
LD C,Dss.Move_FP ;a800 0e 15 . .
RST ToDSS ;a802 d7 .
LD B,01bh ;a803 06 1b . .
LD C,00fh ;a805 0e 0f . .
LD HL,03596h ;a807 21 96 35 ! . 5
LD A,003h ;a80a 3e 03 > .
CALL UNPACK_RESOURCE ;a80c cd 8e a9 . . .
CALL FAST_RAM_FN.ON_DI ;a80f cd 73 a2 . s .
LD A,01bh ;a812 3e 1b > .
LD HL,00000h ;a814 21 00 00 ! . .
DI ;a817 f3 .
CALL 0014eh ;a818 cd 4e 01 . N .
CALL FAST_RAM_FN.OFF_DI ;a81b cd 7c a2 . | .
CALL sub_916dh ;a81e cd 6d 91 . m .
JP la755h ;a821 c3 55 a7 . U .
sub_a824h: LD A,0c1h ;a824 3e c1 > .
OUT (PORT_Y),A ;a826 d3 89 . .
CALL OPEN_PAK_FILE ;a828 cd 4f a9 . O .
LD HL,(la851h) ;a82b 2a 51 a8 * Q .
LD A,H ;a82e 7c |
LD IXH,A ;a82f dd 67 . g
LD A,L ;a831 7d }
LD IXL,A ;a832 dd 6f . o
LD HL,(la84fh) ;a834 2a 4f a8 * O .
LD B,000h ;a837 06 00 . .
LD C,Dss.Move_FP ;a839 0e 15 . .
LD A,(PAK_FILE_FM) ;a83b 3a 80 aa : . .
RST ToDSS ;a83e d7 .
LD B,06eh ;a83f 06 6e . n
LD C,005h ;a841 0e 05 . .
LD HL,01be8h ;a843 21 e8 1b ! . .
LD A,003h ;a846 3e 03 > .
CALL UNPACK_RESOURCE ;a848 cd 8e a9 . . .
CALL sub_a97bh ;a84b cd 7b a9 . { .
RET ;a84e c9 .
la84fh: NOP ;a84f 00 .
NOP ;a850 00 .
la851h: NOP ;a851 00 .
NOP ;a852 00 .
la853h: NOP ;a853 00 .
NOP ;a854 00 .
la855h: NOP ;a855 00 .
NOP ;a856 00 .
la857h: NOP ;a857 00 .
NOP ;a858 00 .
la859h: NOP ;a859 00 .
NOP ;a85a 00 .
la85bh: NOP ;a85b 00 .
NOP ;a85c 00 .
la85dh: NOP ;a85d 00 .
NOP ;a85e 00 .
la85fh: NOP ;a85f 00 .
NOP ;a860 00 .
la861h: NOP ;a861 00 .
NOP ;a862 00 .
la863h: NOP ;a863 00 .
NOP ;a864 00 .
la865h: NOP ;a865 00 .
NOP ;a866 00 .
la867h: NOP ;a867 00 .
NOP ;a868 00 .
la869h: NOP ;a869 00 .
NOP ;a86a 00 .
la86bh: NOP ;a86b 00 .
NOP ;a86c 00 .
la86dh: NOP ;a86d 00 .
NOP ;a86e 00 .
la86fh: NOP ;a86f 00 .
NOP ;a870 00 .
la871h: NOP ;a871 00 .
NOP ;a872 00 .
RET ;a873 c9 .
sub_a874h: LD A,(PAK_FILE_FM) ;a874 3a 80 aa : . .
LD HL,00000h ;a877 21 00 00 ! . .
LD IX,00000h ;a87a dd 21 00 00 . ! . .
LD B,001h ;a87e 06 01 . .
LD C,Dss.Move_FP ;a880 0e 15 . .
RST ToDSS ;a882 d7 .
RET ;a883 c9 .
sub_a884h:
LD HL,FILE_HIGHSCORE_STR ;a884 21 00 a9 ! . .
LD C,Dss.Open ;a887 0e 11 . .
LD A,Dss.Open.R ;a889 3e 01 > .
RST ToDSS ;a88b d7 .
JP C,la8f5h ;a88c da f5 a8 . . .
LD (PAK_FILE_FM),A ;a88f 32 80 aa 2 . .
CALL CHECK_ZERO_FILE_SIZE ;a892 cd 6b aa . k .
JP Z,ERROR_EXIT ;a895 ca 85 aa . . .
LD (PAK_FILE_FM.Size_HL),HL ;a898 22 81 aa " . .
LD (PAK_FILE_FM.Size_IX),IX ;a89b dd 22 83 aa . " . .
LD BC,Dss.Move_FP.FrStart ;a89f 01 15 00 . . .
LD H,B ;a8a2 60 `
LD L,B ;a8a3 68 h
LD IX,00000h ;a8a4 dd 21 00 00 . ! . .
LD A,(PAK_FILE_FM) ;a8a8 3a 80 aa : . .
RST ToDSS ;a8ab d7 .
JP C,ERROR_EXIT ;a8ac da 85 aa . . .
LD A,009h ;a8af 3e 09 > .
CALL SET_PAGE_SLOT1_af ;a8b1 cd fa a1 . . .
LD A,(PAK_FILE_FM) ;a8b4 3a 80 aa : . .
LD DE,04000h ;a8b7 11 00 40 . . @
LD HL,04000h ;a8ba 21 00 40 ! . @
LD C,Dss.Read ;a8bd 0e 13 . .
RST ToDSS ;a8bf d7 .
JP C,ERROR_EXIT ;a8c0 da 85 aa . . .
CP 0ffh ;a8c3 fe ff . .
JP NZ,ERROR_EXIT ;a8c5 c2 85 aa . . .
LD C,Dss.Close ;a8c8 0e 12 . .
LD A,(PAK_FILE_FM) ;a8ca 3a 80 aa : . .
RST ToDSS ;a8cd d7 .
JP C,ERROR_EXIT ;a8ce da 85 aa . . .
LD A,(0be09h) ;a8d1 3a 09 be : . .
OUT (SLOT1),A ;a8d4 d3 a2 . .
LD A,(PAGES_BUFFER) ;a8d6 3a 00 be : . .
OUT (SLOT3),A ;a8d9 d3 e2 . .
LD HL,04000h ;a8db 21 00 40 ! . @
LD DE,0c033h ;a8de 11 33 c0 . 3 .
LD C,0e6h ;a8e1 0e e6 . .
LD B,000h ;a8e3 06 00 . .
la8e5h:
LD A,(HL) ;a8e5 7e ~
SUB 00fh ;a8e6 d6 0f . .
ADD A,L ;a8e8 85 .
SUB E ;a8e9 93 .
ADD A,C ;a8ea 81 .
LD (DE),A ;a8eb 12 .
ADD A,B ;a8ec 80 .
LD B,A ;a8ed 47 G
INC L ;a8ee 2c ,
INC DE ;a8ef 13 .
DEC C ;a8f0 0d .
JR NZ,la8e5h ;a8f1 20 f2 .
CP (HL) ;a8f3 be .
RET Z ;a8f4 c8 .
la8f5h:
LD A,(PAGES_BUFFER) ;a8f5 3a 00 be : . .
OUT (SLOT3),A ;a8f8 d3 e2 . .
CALL 0c125h ;a8fa cd 25 c1 . % .
JP sub_a90dh ;a8fd c3 0d a9 . . .
FILE_HIGHSCORE_STR:
DZ 'HiScore.dat' ;a900
FILE_HIGHSCORE_FM:
DB 0 ;a90c 00 .
sub_a90dh:
LD A,(0be09h) ;a90d 3a 09 be : . .
OUT (SLOT1),A ;a910 d3 a2 . .
LD A,(PAGES_BUFFER) ;a912 3a 00 be : . .
OUT (SLOT3),A ;a915 d3 e2 . .
LD HL,04000h ;a917 21 00 40 ! . @
LD DE,0c033h ;a91a 11 33 c0 . 3 .
LD C,0e6h ;a91d 0e e6 . .
LD B,000h ;a91f 06 00 . .
la921h:
LD A,(DE) ;a921 1a .
ADD A,B ;a922 80 .
LD B,A ;a923 47 G
LD A,(DE) ;a924 1a .
ADD A,00fh ;a925 c6 0f . .
SUB L ;a927 95 .
ADD A,E ;a928 83 .
SUB C ;a929 91 .
LD (HL),A ;a92a 77 w
INC L ;a92b 2c ,
INC DE ;a92c 13 .
DEC C ;a92d 0d .
JR NZ,la921h ;a92e 20 f1 .
LD (HL),B ;a930 70 p
LD HL,FILE_HIGHSCORE_STR ;a931 21 00 a9 ! . .
LD C,Dss.Create ;a934 0e 0a . .
LD A,000h ;a936 3e 00 > .
RST ToDSS ;a938 d7 .
LD (FILE_HIGHSCORE_FM),A ;a939 32 0c a9 2 . .
LD HL,04000h ;a93c 21 00 40 ! . @
LD DE,000e7h ;a93f 11 e7 00 . . .
LD C,014h ;a942 0e 14 . .
LD A,(FILE_HIGHSCORE_FM) ;a944 3a 0c a9 : . .
RST ToDSS ;a947 d7 .
LD C,012h ;a948 0e 12 . .
LD A,(FILE_HIGHSCORE_FM) ;a94a 3a 0c a9 : . .
RST ToDSS ;a94d d7 .
RET ;a94e c9 .
OPEN_PAK_FILE: LD C,Dss.Open ;a94f 0e 11 . .
LD HL,PAK_FILE_NAME ;a951 21 85 a9 ! . .
LD A,Dss.Open.R ;a954 3e 01 > .
RST ToDSS ;a956 d7 .
JP C,ERROR_EXIT ;a957 da 85 aa . . .
;
LD (PAK_FILE_FM),A ;a95a 32 80 aa 2 . .
CALL CHECK_ZERO_FILE_SIZE ;a95d cd 6b aa . k .
JP Z,ERROR_EXIT ;a960 ca 85 aa . . .
.nxt: LD (PAK_FILE_FM.Size_HL),HL ;a963 22 81 aa " . .
LD (PAK_FILE_FM.Size_IX),IX ;a966 dd 22 83 aa . " . .
;
LD BC,Dss.Move_FP.FrStart ;a96a 01 15 00 . . .
LD H,B ;a96d 60 `
LD L,B ;a96e 68 h
LD IX,00000h ;a96f dd 21 00 00 . ! . .
LD A,(PAK_FILE_FM) ;a973 3a 80 aa : . .
RST ToDSS ;a976 d7 .
JP C,ERROR_EXIT ;a977 da 85 aa . . .
RET ;a97a c9 .
sub_a97bh:
LD C,012h ;a97b 0e 12 . .
LD A,(PAK_FILE_FM) ;a97d 3a 80 aa : . .
RST ToDSS ;a980 d7 .
JP C,ERROR_EXIT ;a981 da 85 aa . . .
RET ;a984 c9 .
PAK_FILE_NAME: DZ "TITD.pak" ;a985
; § £à㧪  ¨ à á¯¨å¨¢ ­¨¥ ¤ ­­ëå
; A - ª®«¨ç¥á⢮ ¯®«­ëå áâà ­¨æ
; HL - ª®«-¢® ¡ ©â®¢ ¤«ï ¤®§ £à㧪¨ ¢ ¯®á«¥¤­îî áâà ­¨æã
; B -
; C - ª®«-¢® ªã᪮¢ (áâà ­¨æ) à áᯠª®¢ ­®£® à¥áãàá  (®¤¨­ HR - ®¤­  áâà ­¨æ )
UNPACK_RESOURCE:
LD E,#4d ;a98e 1e 4d . M
OR A ;a990 b7 .
JR Z,.finalLoad ;a991 28 1f ( .
.loopLoad: PUSH AF ;a993 f5 .
PUSH DE ;a994 d5 .
PUSH BC ;a995 c5 .
PUSH HL ;a996 e5 .
LD A,E ;a997 7b {
CALL SET_PAGE_SLOT1_af ;a998 cd fa a1 . . .
LD A,(PAK_FILE_FM) ;a99b 3a 80 aa : . .
LD DE,#4000 ;a99e 11 00 40 . . @
LD HL,#4000 ;a9a1 21 00 40 ! . @
LD C,Dss.Read ;a9a4 0e 13 . .
RST ToDSS ;a9a6 d7 .
JP C,ERROR_EXIT ;a9a7 da 85 aa . . .
POP HL ;a9aa e1 .
POP BC ;a9ab c1 .
POP DE ;a9ac d1 .
INC E ;a9ad 1c .
POP AF ;a9ae f1 .
DEC A ;a9af 3d =
JR NZ,.loopLoad ;a9b0 20 e1 .
;
.finalLoad: LD A,H ;a9b2 7c |
OR L ;a9b3 b5 .
JR Z,.Depack ;a9b4 28 13 ( .
PUSH BC ;a9b6 c5 .
LD A,E ;a9b7 7b {
CALL SET_PAGE_SLOT1_af ;a9b8 cd fa a1 . . .
EX DE,HL ;a9bb eb .
LD A,(PAK_FILE_FM) ;a9bc 3a 80 aa : . .
LD HL,#4000 ;a9bf 21 00 40 ! . @
LD C,Dss.Read ;a9c2 0e 13 . .
RST ToDSS ;a9c4 d7 .
JP C,ERROR_EXIT ;a9c5 da 85 aa . . .
POP BC ;a9c8 c1 .
;
.Depack: DI ;a9c9 f3 .
LD E,#4d ;a9ca 1e 4d . M
EXX ;a9cc d9 .
LD HL,#c000 ;a9cd 21 00 c0 ! . .
EXX ;a9d0 d9 .
.loop: LD A,E ;a9d1 7b {
CALL SET_PAGE_SLOT3_af ;a9d2 cd ec a1 . . .
LD A,9 ;a9d5 3e 09 > .
CALL SET_PAGE_SLOT1_af ;a9d7 cd fa a1 . . .
EXX ;a9da d9 .
LD DE,#4000 ;a9db 11 00 40 . . @
LD C,(HL) ;a9de 4e N
CALL GET_NEXT_HR_HEADER_BYTE ;a9df cd 0c aa . . .
LD B,(HL) ;a9e2 46 F
CALL GET_NEXT_HR_HEADER_BYTE ;a9e3 cd 0c aa . . .
.small_loop: LD A,(HL) ;a9e6 7e ~
LD (DE),A ;a9e7 12 .
CALL GET_NEXT_HR_HEADER_BYTE ;a9e8 cd 0c aa . . .
INC DE ;a9eb 13 .
DEC BC ;a9ec 0b .
LD A,B ;a9ed 78 x
OR C ;a9ee b1 .
JR NZ,.small_loop ;a9ef 20 f5 .
PUSH HL ;a9f1 e5 .
EXX ;a9f2 d9 .
PUSH BC ;a9f3 c5 .
PUSH DE ;a9f4 d5 .
LD A,B ;a9f5 78 x
CALL SET_PAGE_SLOT3_af ;a9f6 cd ec a1 . . .
LD HL,#4000 ;a9f9 21 00 40 ! . @
LD DE,#c000 ;a9fc 11 00 c0 . . .
CALL DEPACKER ;a9ff cd 1b a6 . . .
POP DE ;aa02 d1 .
POP BC ;aa03 c1 .
EXX ;aa04 d9 .
POP HL ;aa05 e1 .
EXX ;aa06 d9 .
INC B ;aa07 04 .
DEC C ;aa08 0d .
JR NZ,.loop ;aa09 20 c6 .
RET ;aa0b c9 .
;
GET_NEXT_HR_HEADER_BYTE:
INC L ;aa0c 2c ,
RET NZ ;aa0d c0 .
INC H ;aa0e 24 $
RET NZ ;aa0f c0 .
LD H,#C0 ;aa10 26 c0 & .
EXX ;aa12 d9 .
INC E ;aa13 1c .
LD A,E ;aa14 7b {
CALL SET_PAGE_SLOT3_af ;aa15 cd ec a1 . . .
EXX ;aa18 d9 .
RET ;aa19 c9 .
; ; ;
LD (laa45h+1),A ;aa1a 32 46 aa 2 F .
LD C,Dss.Open ;aa1d 0e 11 . .
LD A,Dss.Open.R ;aa1f 3e 01 > .
RST ToDSS ;aa21 d7 .
JP C,ERROR_EXIT ;aa22 da 85 aa . . .
LD (PAK_FILE_FM),A ;aa25 32 80 aa 2 . .
CALL CHECK_ZERO_FILE_SIZE ;aa28 cd 6b aa . k .
JP Z,ERROR_EXIT ;aa2b ca 85 aa . . .
LD (PAK_FILE_FM.Size_HL),HL ;aa2e 22 81 aa " . .
LD (PAK_FILE_FM.Size_IX),IX ;aa31 dd 22 83 aa . " . .
LD BC,Dss.Move_FP.FrStart ;aa35 01 15 00 . . .
LD H,B ;aa38 60 `
LD L,B ;aa39 68 h
LD IX,00000h ;aa3a dd 21 00 00 . ! . .
LD A,(PAK_FILE_FM) ;aa3e 3a 80 aa : . .
RST ToDSS ;aa41 d7 .
JP C,ERROR_EXIT ;aa42 da 85 aa . . .
laa45h:
LD A,000h ;aa45 3e 00 > .
CALL SET_PAGE_SLOT1_af ;aa47 cd fa a1 . . .
LD HL,laa45h+1 ;aa4a 21 46 aa ! F .
INC (HL) ;aa4d 34 4
LD A,(PAK_FILE_FM) ;aa4e 3a 80 aa : . .
LD DE,04000h ;aa51 11 00 40 . . @
LD HL,04000h ;aa54 21 00 40 ! . @
LD C,013h ;aa57 0e 13 . .
RST ToDSS ;aa59 d7 .
JP C,ERROR_EXIT ;aa5a da 85 aa . . .
CP 0ffh ;aa5d fe ff . .
JR NZ,laa45h ;aa5f 20 e4 .
LD C,012h ;aa61 0e 12 . .
LD A,(PAK_FILE_FM) ;aa63 3a 80 aa : . .
RST ToDSS ;aa66 d7 .
JP C,ERROR_EXIT ;aa67 da 85 aa . . .
RET ;aa6a c9 .
CHECK_ZERO_FILE_SIZE:
LD BC,Dss.Move_FP.FrEnd ;aa6b 01 15 02 . . .
LD HL,00000h ;aa6e 21 00 00 ! . .
LD IX,00000h ;aa71 dd 21 00 00 . ! . .
RST ToDSS ;aa75 d7 .
JP C,ERROR_EXIT ;aa76 da 85 aa . . .
LD A,H ;aa79 7c |
OR L ;aa7a b5 .
OR IXH ;aa7b dd b4 . .
OR IXL ;aa7d dd b5 . .
RET ;aa7f c9 .
PAK_FILE_FM: DB 0 ;aa80 00 .
.Size_HL: DW 0000 ;aa81 00 .
.Size_IX: DW 0000 ;aa83 00 .
ERROR_EXIT: JP SetUp_RESET_EXIT ;aa85 c3 63 83 . c .
laa88h:
NOP ;aa88 00 .
laa89h:
NOP ;aa89 00 .
sub_aa8ah:
CALL OPEN_PAK_FILE ;aa8a cd 4f a9 . O .
LD HL,(la86dh) ;aa8d 2a 6d a8 * m .
LD A,H ;aa90 7c |
LD IXH,A ;aa91 dd 67 . g
LD A,L ;aa93 7d }
LD IXL,A ;aa94 dd 6f . o
LD HL,(la86bh) ;aa96 2a 6b a8 * k .
LD A,(PAK_FILE_FM) ;aa99 3a 80 aa : . .
LD B,000h ;aa9c 06 00 . .
LD C,Dss.Move_FP ;aa9e 0e 15 . .
RST ToDSS ;aaa0 d7 .
LD B,06eh ;aaa1 06 6e . n
LD C,005h ;aaa3 0e 05 . .
LD HL,00b25h ;aaa5 21 25 0b ! % .
LD A,004h ;aaa8 3e 04 > .
JP lab13h ;aaaa c3 13 ab . . .
sub_aaadh:
CALL OPEN_PAK_FILE ;aaad cd 4f a9 . O .
LD HL,(la871h) ;aab0 2a 71 a8 * q .
LD A,H ;aab3 7c |
LD IXH,A ;aab4 dd 67 . g
LD A,L ;aab6 7d }
LD IXL,A ;aab7 dd 6f . o
LD HL,(la86fh) ;aab9 2a 6f a8 * o .
LD A,(PAK_FILE_FM) ;aabc 3a 80 aa : . .
LD B,000h ;aabf 06 00 . .
LD C,Dss.Move_FP ;aac1 0e 15 . .
RST ToDSS ;aac3 d7 .
LD B,06eh ;aac4 06 6e . n
LD C,005h ;aac6 0e 05 . .
LD HL,005b2h ;aac8 21 b2 05 ! . .
LD A,000h ;aacb 3e 00 > .
JP lab13h ;aacd c3 13 ab . . .
sub_aad0h:
CALL OPEN_PAK_FILE ;aad0 cd 4f a9 . O .
LD HL,(la869h) ;aad3 2a 69 a8 * i .
LD A,H ;aad6 7c |
LD IXH,A ;aad7 dd 67 . g
LD A,L ;aad9 7d }
LD IXL,A ;aada dd 6f . o
LD HL,(la867h) ;aadc 2a 67 a8 * g .
LD A,(PAK_FILE_FM) ;aadf 3a 80 aa : . .
LD B,000h ;aae2 06 00 . .
LD C,Dss.Move_FP ;aae4 0e 15 . .
RST ToDSS ;aae6 d7 .
LD B,06eh ;aae7 06 6e . n
LD C,005h ;aae9 0e 05 . .
LD HL,032e1h ;aaeb 21 e1 32 ! . 2
LD A,003h ;aaee 3e 03 > .
JP lab13h ;aaf0 c3 13 ab . . .
sub_aaf3h:
CALL OPEN_PAK_FILE ;aaf3 cd 4f a9 . O .
LD HL,(la861h) ;aaf6 2a 61 a8 * a .
LD A,H ;aaf9 7c |
LD IXH,A ;aafa dd 67 . g
LD A,L ;aafc 7d }
LD IXL,A ;aafd dd 6f . o
LD HL,(la85fh) ;aaff 2a 5f a8 * _ .
LD A,(PAK_FILE_FM) ;ab02 3a 80 aa : . .
LD B,000h ;ab05 06 00 . .
LD C,Dss.Move_FP ;ab07 0e 15 . .
RST ToDSS ;ab09 d7 .
LD B,06eh ;ab0a 06 6e . n
LD C,005h ;ab0c 0e 05 . .
LD HL,026d4h ;ab0e 21 d4 26 ! . &
LD A,003h ;ab11 3e 03 > .
lab13h:
CALL UNPACK_RESOURCE ;ab13 cd 8e a9 . . .
CALL sub_a97bh ;ab16 cd 7b a9 . { .
CALL FAST_RAM_FN.ON_DI ;ab19 cd 73 a2 . s .
CALL 0015ah ;ab1c cd 5a 01 . Z .
CALL 00151h ;ab1f cd 51 01 . Q .
JP FAST_RAM_FN.OFF_DI ;ab22 c3 7c a2 . | .
sub_ab25h:
CALL OPEN_PAK_FILE ;ab25 cd 4f a9 . O .
LD HL,(la865h) ;ab28 2a 65 a8 * e .
LD A,H ;ab2b 7c |
LD IXH,A ;ab2c dd 67 . g
LD A,L ;ab2e 7d }
LD IXL,A ;ab2f dd 6f . o
LD HL,(la863h) ;ab31 2a 63 a8 * c .
LD A,(PAK_FILE_FM) ;ab34 3a 80 aa : . .
LD B,000h ;ab37 06 00 . .
LD C,Dss.Move_FP ;ab39 0e 15 . .
RST ToDSS ;ab3b d7 .
LD B,06eh ;ab3c 06 6e . n
LD C,005h ;ab3e 0e 05 . .
LD HL,01761h ;ab40 21 61 17 ! a .
LD A,003h ;ab43 3e 03 > .
CALL UNPACK_RESOURCE ;ab45 cd 8e a9 . . .
CALL sub_a97bh ;ab48 cd 7b a9 . { .
CALL FAST_RAM_FN.ON_DI ;ab4b cd 73 a2 . s .
CALL 0015ah ;ab4e cd 5a 01 . Z .
CALL 00151h ;ab51 cd 51 01 . Q .
JP FAST_RAM_FN.OFF_DI ;ab54 c3 7c a2 . | .
sub_ab57h:
OR A ;ab57 b7 .
JR Z,lab77h ;ab58 28 1d ( .
lab5ah:
PUSH AF ;ab5a f5 .
PUSH BC ;ab5b c5 .
PUSH HL ;ab5c e5 .
LD A,B ;ab5d 78 x
CALL SET_PAGE_SLOT1_af ;ab5e cd fa a1 . . .
LD A,(PAK_FILE_FM) ;ab61 3a 80 aa : . .
LD DE,04000h ;ab64 11 00 40 . . @
LD HL,04000h ;ab67 21 00 40 ! . @
LD C,013h ;ab6a 0e 13 . .
RST ToDSS ;ab6c d7 .
JP C,ERROR_EXIT ;ab6d da 85 aa . . .
POP HL ;ab70 e1 .
POP BC ;ab71 c1 .
INC B ;ab72 04 .
POP AF ;ab73 f1 .
DEC A ;ab74 3d =
JR NZ,lab5ah ;ab75 20 e3 .
lab77h:
LD A,H ;ab77 7c |
OR L ;ab78 b5 .
RET Z ;ab79 c8 .
LD A,B ;ab7a 78 x
CALL SET_PAGE_SLOT1_af ;ab7b cd fa a1 . . .
EX DE,HL ;ab7e eb .
LD A,(PAK_FILE_FM) ;ab7f 3a 80 aa : . .
LD HL,04000h ;ab82 21 00 40 ! . @
LD C,013h ;ab85 0e 13 . .
RST ToDSS ;ab87 d7 .
JP C,ERROR_EXIT ;ab88 da 85 aa . . .
RET ;ab8b c9 .
sub_ab8ch:
CALL GENERATE_PALETTE ;ab8c cd 26 93 . & .
LD A,0c1h ;ab8f 3e c1 > .
OUT (PORT_Y),A ;ab91 d3 89 . .
LD B,000h ;ab93 06 00 . .
LD C,001h ;ab95 0e 01 . .
LD HL,01a8bh ;ab97 21 8b 1a ! . .
XOR A ;ab9a af .
CALL UNPACK_RESOURCE ;ab9b cd 8e a9 . . .
LD B,001h ;ab9e 06 01 . .
LD HL,01b00h ;aba0 21 00 1b ! . .
XOR A ;aba3 af .
CALL sub_ab57h ;aba4 cd 57 ab . W .
LD B,07ch ;aba7 06 7c . |
LD C,001h ;aba9 0e 01 . .
LD HL,02a67h ;abab 21 67 2a ! g *
XOR A ;abae af .
CALL sub_ab57h ;abaf cd 57 ab . W .
LD A,(0be7ch) ;abb2 3a 7c be : | .
OUT (SLOT3),A ;abb5 d3 e2 . .
CALL FAST_RAM_FN.ON_DI ;abb7 cd 73 a2 . s .
LD DE,00100h ;abba 11 00 01 . . .
LD HL,0c000h ;abbd 21 00 c0 ! . .
labc0h:
LD A,(HL) ;abc0 7e ~
LD (DE),A ;abc1 12 .
INC HL ;abc2 23 #
INC DE ;abc3 13 .
LD A,040h ;abc4 3e 40 > @
CP D ;abc6 ba .
JR NZ,labc0h ;abc7 20 f7 .
CALL FAST_RAM_FN.OFF_EI ;abc9 cd 77 a2 . w .
LD B,06eh ;abcc 06 6e . n
LD C,005h ;abce 0e 05 . .
LD HL,0354fh ;abd0 21 4f 35 ! O 5
XOR A ;abd3 af .
CALL UNPACK_RESOURCE ;abd4 cd 8e a9 . . .
CALL sub_8bdbh ;abd7 cd db 8b . . .
CALL sub_8cb2h ;abda cd b2 8c . . .
LD HL,0d500h ;abdd 21 00 d5 ! . .
CALL sub_8c57h ;abe0 cd 57 8c . W .
LD B,06eh ;abe3 06 6e . n
LD C,005h ;abe5 0e 05 . .
LD HL,00f76h ;abe7 21 76 0f ! v .
LD A,001h ;abea 3e 01 > .
CALL UNPACK_RESOURCE ;abec cd 8e a9 . . .
CALL sub_8c35h ;abef cd 35 8c . 5 .
CALL sub_8bdbh ;abf2 cd db 8b . . .
CALL sub_8cb2h ;abf5 cd b2 8c . . .
LD HL,0d800h ;abf8 21 00 d8 ! . .
CALL sub_8c57h ;abfb cd 57 8c . W .
LD B,06eh ;abfe 06 6e . n
LD C,005h ;ac00 0e 05 . .
LD HL,0219fh ;ac02 21 9f 21 ! . !
LD A,003h ;ac05 3e 03 > .
CALL UNPACK_RESOURCE ;ac07 cd 8e a9 . . .
CALL sub_8c35h ;ac0a cd 35 8c . 5 .
CALL sub_8bdbh ;ac0d cd db 8b . . .
CALL sub_8cb2h ;ac10 cd b2 8c . . .
LD HL,0cf00h ;ac13 21 00 cf ! . .
CALL sub_8c57h ;ac16 cd 57 8c . W .
LD B,006h ;ac19 06 06 . .
LD C,001h ;ac1b 0e 01 . .
LD HL,02fd7h ;ac1d 21 d7 2f ! . /
XOR A ;ac20 af .
CALL sub_ab57h ;ac21 cd 57 ab . W .
LD B,007h ;ac24 06 07 . .
LD C,001h ;ac26 0e 01 . .
LD HL,03f4eh ;ac28 21 4e 3f ! N ?
XOR A ;ac2b af .
CALL sub_ab57h ;ac2c cd 57 ab . W .
LD B,06eh ;ac2f 06 6e . n
LD C,006h ;ac31 0e 06 . .
LD HL,02243h ;ac33 21 43 22 ! C "
LD A,001h ;ac36 3e 01 > .
CALL UNPACK_RESOURCE ;ac38 cd 8e a9 . . .
LD B,074h ;ac3b 06 74 . t
LD C,006h ;ac3d 0e 06 . .
LD HL,01584h ;ac3f 21 84 15 ! . .
XOR A ;ac42 af .
CALL UNPACK_RESOURCE ;ac43 cd 8e a9 . . .
CALL FAST_RAM_FN.ON_DI ;ac46 cd 73 a2 . s .
LD HL,PAGES_BUFFER ;ac49 21 00 be ! . .
LD DE,03e00h ;ac4c 11 00 3e . . >
LD BC,00100h ;ac4f 01 00 01 . . .
LDIR ;ac52 ed b0 . .
LD IXH,0a8h ;ac54 dd 26 a8 . & .
CALL 00157h ;ac57 cd 57 01 . W .
LD IXH,0a8h ;ac5a dd 26 a8 . & .
CALL 00154h ;ac5d cd 54 01 . T .
CALL FAST_RAM_FN.OFF_DI ;ac60 cd 7c a2 . | .
LD B,00ch ;ac63 06 0c . .
LD C,001h ;ac65 0e 01 . .
LD HL,029fch ;ac67 21 fc 29 ! . )
XOR A ;ac6a af .
CALL sub_ab57h ;ac6b cd 57 ab . W .
LD B,00dh ;ac6e 06 0d . .
LD C,001h ;ac70 0e 01 . .
LD HL,0348fh ;ac72 21 8f 34 ! . 4
XOR A ;ac75 af .
CALL sub_ab57h ;ac76 cd 57 ab . W .
LD A,(0be0dh) ;ac79 3a 0d be : . .
OUT (SLOT3),A ;ac7c d3 e2 . .
LD IYL,01fh ;ac7e fd 2e 1f . . .
LD IX,0c000h ;ac81 dd 21 00 c0 . ! . .
lac85h:
LD A,(ix+000h) ;ac85 dd 7e 00 . ~ .
INC IX ;ac88 dd 23 . #
LD L,A ;ac8a 6f o
LD A,(ix+000h) ;ac8b dd 7e 00 . ~ .
INC IX ;ac8e dd 23 . #
LD H,A ;ac90 67 g
LD C,(HL) ;ac91 4e N
INC HL ;ac92 23 #
LD B,(HL) ;ac93 46 F
INC HL ;ac94 23 #
LD E,(HL) ;ac95 5e ^
INC HL ;ac96 23 #
LD D,(HL) ;ac97 56 V
DEC HL ;ac98 2b +
DEC HL ;ac99 2b +
DEC HL ;ac9a 2b +
lac9bh:
LD (HL),C ;ac9b 71 q
INC HL ;ac9c 23 #
LD (HL),B ;ac9d 70 p
INC HL ;ac9e 23 #
INC BC ;ac9f 03 .
DEC DE ;aca0 1b .
LD A,D ;aca1 7a z
OR E ;aca2 b3 .
JR NZ,lac9bh ;aca3 20 f6 .
DEC IYL ;aca5 fd 2d . -
JR NZ,lac85h ;aca7 20 dc .
LD B,07bh ;aca9 06 7b . {
LD C,001h ;acab 0e 01 . .
LD HL,002b3h ;acad 21 b3 02 ! . .
XOR A ;acb0 af .
CALL UNPACK_RESOURCE ;acb1 cd 8e a9 . . .
LD B,07ch ;acb4 06 7c . |
LD C,001h ;acb6 0e 01 . .
LD HL,00762h ;acb8 21 62 07 ! b .
XOR A ;acbb af .
CALL UNPACK_RESOURCE ;acbc cd 8e a9 . . .
CALL sub_a874h ;acbf cd 74 a8 . t .
LD (la85fh),HL ;acc2 22 5f a8 " _ .
LD A,IXH ;acc5 dd 7c . |
LD H,A ;acc7 67 g
LD A,IXL ;acc8 dd 7d . }
LD L,A ;acca 6f o
LD (la861h),HL ;accb 22 61 a8 " a .
LD B,06eh ;acce 06 6e . n
LD C,005h ;acd0 0e 05 . .
LD HL,026d4h ;acd2 21 d4 26 ! . &
LD A,003h ;acd5 3e 03 > .
CALL UNPACK_RESOURCE ;acd7 cd 8e a9 . . .
CALL sub_a874h ;acda cd 74 a8 . t .
LD (la867h),HL ;acdd 22 67 a8 " g .
LD A,IXH ;ace0 dd 7c . |
LD H,A ;ace2 67 g
LD A,IXL ;ace3 dd 7d . }
LD L,A ;ace5 6f o
LD (la869h),HL ;ace6 22 69 a8 " i .
LD B,06eh ;ace9 06 6e . n
LD C,005h ;aceb 0e 05 . .
LD HL,032e1h ;aced 21 e1 32 ! . 2
LD A,003h ;acf0 3e 03 > .
CALL UNPACK_RESOURCE ;acf2 cd 8e a9 . . .
CALL sub_a874h ;acf5 cd 74 a8 . t .
LD (la86bh),HL ;acf8 22 6b a8 " k .
LD A,IXH ;acfb dd 7c . |
LD H,A ;acfd 67 g
LD A,IXL ;acfe dd 7d . }
lad00h:
LD L,A ;ad00 6f o
lad01h:
LD (la86dh),HL ;ad01 22 6d a8 " m .
LD B,06eh ;ad04 06 6e . n
LD C,005h ;ad06 0e 05 . .
LD HL,00b25h ;ad08 21 25 0b ! % .
LD A,004h ;ad0b 3e 04 > .
CALL UNPACK_RESOURCE ;ad0d cd 8e a9 . . .
CALL sub_a874h ;ad10 cd 74 a8 . t .
LD (la86fh),HL ;ad13 22 6f a8 " o .
LD A,IXH ;ad16 dd 7c . |
LD H,A ;ad18 67 g
LD A,IXL ;ad19 dd 7d . }
LD L,A ;ad1b 6f o
LD (la871h),HL ;ad1c 22 71 a8 " q .
LD B,06eh ;ad1f 06 6e . n
LD C,005h ;ad21 0e 05 . .
LD HL,005b2h ;ad23 21 b2 05 ! . .
LD A,000h ;ad26 3e 00 > .
CALL UNPACK_RESOURCE ;ad28 cd 8e a9 . . .
CALL sub_a874h ;ad2b cd 74 a8 . t .
LD (la863h),HL ;ad2e 22 63 a8 " c .
LD A,IXH ;ad31 dd 7c . |
LD H,A ;ad33 67 g
LD A,IXL ;ad34 dd 7d . }
LD L,A ;ad36 6f o
.tst_addr+2: LD (la865h),HL ;ad37 22 65 a8 " e .
.tst_byte+1: LD B,#6E ;ad3a 06 6e . n
lad3ch:
LD C,005h ;ad3c 0e 05 . .
lad3eh:
.tst_byte_+1: LD HL,#1761 ;ad3e 21 61 17 ! a .
LD A,003h ;ad41 3e 03 > .
.tst_byte+1: CALL UNPACK_RESOURCE ;ad43 cd 8e a9 . . .
LD B,073h ;ad46 06 73 . s
LD C,005h ;ad48 0e 05 . .
LD HL,005e1h ;ad4a 21 e1 05 ! . .
LD A,004h ;ad4d 3e 04 > .
CALL UNPACK_RESOURCE ;ad4f cd 8e a9 . . .
LD B,078h ;ad52 06 78 . x
LD C,001h ;ad54 0e 01 . .
LD HL,03f9fh ;ad56 21 9f 3f ! . ?
XOR A ;ad59 af .
CALL sub_ab57h ;ad5a cd 57 ab . W .
LD B,079h ;ad5d 06 79 . y
LD C,001h ;ad5f 0e 01 . .
LD HL,03611h ;ad61 21 11 36 ! . 6
XOR A ;ad64 af .
CALL sub_ab57h ;ad65 cd 57 ab . W .
LD B,07dh ;ad68 06 7d . }
LD C,002h ;ad6a 0e 02 . .
LD HL,01233h ;ad6c 21 33 12 ! 3 .
XOR A ;ad6f af .
CALL UNPACK_RESOURCE ;ad70 cd 8e a9 . . .
CALL sub_a874h ;ad73 cd 74 a8 . t .
LD (la85bh),HL ;ad76 22 5b a8 " [ .
LD A,IXH ;ad79 dd 7c . |
LD H,A ;ad7b 67 g
LD A,IXL ;ad7c dd 7d . }
LD L,A ;ad7e 6f o
LD (la85dh),HL ;ad7f 22 5d a8 " ] .
LD B,01bh ;ad82 06 1b . .
LD C,00fh ;ad84 0e 0f . .
LD HL,03596h ;ad86 21 96 35 ! . 5
LD A,003h ;ad89 3e 03 > .
CALL UNPACK_RESOURCE ;ad8b cd 8e a9 . . .
CALL sub_a874h ;ad8e cd 74 a8 . t .
LD (la853h),HL ;ad91 22 53 a8 " S .
LD A,IXH ;ad94 dd 7c . |
LD H,A ;ad96 67 g
LD A,IXL ;ad97 dd 7d . }
LD L,A ;ad99 6f o
LD (la855h),HL ;ad9a 22 55 a8 " U .
LD B,01bh ;ad9d 06 1b . .
LD C,010h ;ad9f 0e 10 . .
LD HL,03669h ;ada1 21 69 36 ! i 6
LD A,002h ;ada4 3e 02 > .
CALL UNPACK_RESOURCE ;ada6 cd 8e a9 . . .
LD B,012h ;ada9 06 12 . .
LD C,009h ;adab 0e 09 . .
LD HL,01065h ;adad 21 65 10 ! e .
LD A,001h ;adb0 3e 01 > .
CALL UNPACK_RESOURCE ;adb2 cd 8e a9 . . .
CALL sub_a874h ;adb5 cd 74 a8 . t .
LD (la857h),HL ;adb8 22 57 a8 " W .
LD A,IXH ;adbb dd 7c . |
LD H,A ;adbd 67 g
LD A,IXL ;adbe dd 7d . }
LD L,A ;adc0 6f o
LD (la859h),HL ;adc1 22 59 a8 " Y .
LD B,01bh ;adc4 06 1b . .
LD C,010h ;adc6 0e 10 . .
LD HL,00328h ;adc8 21 28 03 ! ( .
LD A,003h ;adcb 3e 03 > .
CALL UNPACK_RESOURCE ;adcd cd 8e a9 . . .
LD B,012h ;add0 06 12 . .
LD C,009h ;add2 0e 09 . .
LD HL,01e8fh ;add4 21 8f 1e ! . .
LD A,001h ;add7 3e 01 > .
CALL UNPACK_RESOURCE ;add9 cd 8e a9 . . .
LD B,07fh ;addc 06 7f . .
LD C,001h ;adde 0e 01 . .
LD HL,0317fh ;ade0 21 7f 31 ! . 1
XOR A ;ade3 af .
CALL UNPACK_RESOURCE ;ade4 cd 8e a9 . . .
LD B,080h ;ade7 06 80 . .
LD C,001h ;ade9 0e 01 . .
LD HL,0226eh ;adeb 21 6e 22 ! n "
XOR A ;adee af .
CALL UNPACK_RESOURCE ;adef cd 8e a9 . . .
LD B,081h ;adf2 06 81 . .
LD C,001h ;adf4 0e 01 . .
LD HL,0333bh ;adf6 21 3b 33 ! ; 3
XOR A ;adf9 af .
CALL UNPACK_RESOURCE ;adfa cd 8e a9 . . .
LD B,082h ;adfd 06 82 . .
LD C,040h ;adff 0e 40 . @
LD HL,02e30h ;ae01 21 30 2e ! 0 .
LD A,002h ;ae04 3e 02 > .
CALL UNPACK_RESOURCE ;ae06 cd 8e a9 . . .
CALL sub_a874h ;ae09 cd 74 a8 . t .
LD (la84fh),HL ;ae0c 22 4f a8 " O .
LD A,IXH ;ae0f dd 7c . |
LD H,A ;ae11 67 g
LD A,IXL ;ae12 dd 7d . }
LD L,A ;ae14 6f o
LD (la851h),HL ;ae15 22 51 a8 " Q .
CALL sub_a97bh ;ae18 cd 7b a9 . { .
RET ;ae1b c9 .
;
DZ 'Cash.dat' ;ae1c
; [ ] FIX 19/10/2024
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; NEW CODE
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;***********************************************************************
NEW_ERROR_EXIT:
.OLD_DSS: LD HL,LOADER_STRINGS.OldDSS
.print: LD C,Dss.PChars
RST ToDSS
JP GOTO_ERROR_EXIT
;
.NO_ACX: LD HL,STRING_SPECIAL_no_acx
JR .print
;***********************************************************************
NEW_CODE_START: DI
LD HL,LOADER_STRINGS.Info
LD C,Dss.PChars
RST ToDSS
;
LD C,Dss.Version
RST ToDSS
SCF
LD HL,256*DSS_MIN_VERS.vers + DSS_MIN_VERS.modf
SBC HL,DE
JR C,.goodVers
LD HL,DSS_MIN_VERS.build - 1
SBC HL,BC
JR NC,NEW_ERROR_EXIT.OLD_DSS
;
.goodVers: LD A,GAME_NEED_MEM_PAGES
CALL GET_MEM_AND_PAGES
CALL GET_BITSTREAM
JR C,NEW_ERROR_EXIT.NO_ACX
;
CALL FULL_SAVE_TXT_SCREEN
CALL GENERATE_PALETTE
IN A,(SLOT1)
LD (l8205h.mem_pg),A
;
;LD HL,PAK_FILE_NAME
;LD (OPEN_PAK_FILE.name),HL
CALL OPEN_PAK_FILE
; ª®áâë«ì ­  ¯à®¯ã᪠ª®­äë ¢ PAK ä ©«¥
LD A,(PAK_FILE_FM)
LD HL,0
LD IX,#6569
LD BC,Dss.Move_FP.FrStart
RST ToDSS
;
LD HL,PAGES_BUFFER
PUSH HL
LD A,(CURRENT_PAGE.SLOT3)
INC A
LD L,A
LD A,(HL)
LD C,BIOS.FreeMem
RST ToBIOS
JP C,SetUp_RESET_EXIT
;
POP HL
LD A,(HL)
LD B,A
LD A,ACEX.Config_PG.Sp2000_AcexSetUpNow
LD C,BIOS.RST_CONF.CUSTOM
RST ToBIOS
;
DI
LD A,SYS_PORT.CNF_0
OUT (SYS_PORT.RAM),A
; ­  ¢á直© á«ãç ©
IN A,(SLOT3)
LD (RESET_HANDLER_BEGIN.mem_pg),A
;
LD DE,CAD_RESET_HANDLER
LD A,ACEX.Config_PG.Sp2000_SoftRestartSet
LD BC,BIOS.RST_CONF.CUSTOM
RST ToBIOS
;
LD A,(PAGES_BUFFER)
LD C,Dss.FreeMem
RST ToDSS
; restore HOLD port
LD D,CMOS_CELL.ScreenPosition
LD C,BIOS.CMOS_RD
RST ToBIOS
JP C,l8423h.cont
;
LD B,A
LD A,ACEX.HOLD
LD C,BIOS.SET_PORTS
RST ToBIOS
;
JP l8423h.cont
TITD_ACX:
.TYPE: DZ '.ACX'
.NAME: BLOCK 9,0
;
;
CAD_RESET_HANDLER:
; LD A,(Spec_Page.page_3) ; PAGE3
; OUT (SLOT3),A
; LD A,SYS_PORT.CNF_0
; OUT (SYS_PORT.ROM),A
LD BC,BIOS.REINIT.HARD_RESET
JP ToBIOS_18
;
;
GET_BITSTREAM: LD HL,TITD_ACX.NAME
LD BC,BIOS.FN_CRIPT.AcexAndBitstream
RST ToBIOS
;
LD HL,TITD_ACX.NAME
LD BC,5
PUSH BC
XOR A
CPIR
SCF
RET PO
;
DEC HL
;LD (HL)," "
EX DE,HL
LD HL,TITD_ACX.TYPE
POP BC
LDIR
; HL = TITD_ACX.NAME
LD C,Dss.Open
LD A,Dss.Open.R
RST ToDSS
RET C
;
LD (PAK_FILE_FM),A
CALL CHECK_ZERO_FILE_SIZE
SCF
RET Z
CALL OPEN_PAK_FILE.nxt
XOR A
LD HL,(PAK_FILE_FM.Size_HL)
LD DE,(PAK_FILE_FM.Size_IX)
;
.loop: EX AF,AF'
LD A,H
OR L
OR D
OR E
JR Z,.exit2Loop
EX AF,AF'
;
PUSH HL
PUSH DE
PUSH AF
;
CALL SET_PAGE_SLOT3
LD A,(PAK_FILE_FM)
LD HL,#C000
LD DE,#4000
LD C,Dss.Read
RST ToDSS
RET C
;
POP AF
POP DE
POP HL
INC A
CP GAME_NEED_MEM_PAGES
CCF
RET C
;
SCF
LD BC,#4000
EX DE,HL
SBC HL,BC
EX DE,HL
JR Z,.loop
LD B,C
SBC HL,BC
JR NC,.loop
.exitLoop: ; ¢ë室, ¥á«¨ à §¬¥à ª®­äë ­¥ ªà â¥­ à §¬¥àã áâà ­¨æë
EX DE,HL
.loop2: LD (HL),#FF
INC HL
BIT 7,H
JR NZ,.loop2
.exit2Loop: ; ¢ë室, ¥á«¨ à §¬¥à ª®­äë ªà â¥­ à §¬¥àã áâà ­¨æë
LD C,Dss.Close
LD A,(PAK_FILE_FM)
JP ToDSS
;
STRING_SPECIAL_no_acx: ;83a4
DZ "\r\n[Thunder In The Deep Special Message] : Error with ACX file for your chip!\r\n"
;
PREPARE_TO_EXIT_NEW: CALL RESTORE_IM1_DSS
JR FULL_RESTORE_SCREEN
;***********************************************************************
SAVE_PAL: IN A,(SLOT0)
EX AF,AF'
XOR A ; ZERO_PAGE
OUT (SLOT0),A
;
OUT (PORT_Y),A
LD A,#50
OUT (SLOT3),A
;
LD DE,NEW_BUFFERS.Palette - #C000
.loop: LD HL,#C3E0
LD BC,#20
LDIR
IN A,(PORT_Y)
INC A
OUT (PORT_Y),A
JR NZ,.loop
;
EX AF,AF'
OUT (SLOT0),A
RET
;***********************************************************************
RESTORE_PAL: IN A,(SLOT0)
EX AF,AF'
XOR A ; ZERO_PAGE
OUT (SLOT0),A
;
LD A,#50
OUT (SLOT3),A
XOR A
OUT (PORT_Y),A
;
LD HL,NEW_BUFFERS.Palette - #C000
.loop: LD DE,#C3E0
LD BC,#20
LDIR
IN A,(PORT_Y)
INC A
OUT (PORT_Y),A
JR NZ,.loop
;
EX AF,AF'
OUT (SLOT0),A
RET
;***********************************************************************
SAVE_TXT_SCREEN:
LD C,Dss.Cursor
RST ToDSS
LD (FULL_RESTORE_SCREEN.cursor),DE
;
LD C,Dss.WinCopy
;;;;;;;;;
TXT_Screen_Copy_Restore:
LD A,(FULL_RESTORE_SCREEN.current_vmode)
SUB 2
LD DE,0
LD HL,#2050
JR NZ,.next
LD L,#28
.next: ;
LD B,ZERO_PAGE ; áâà ­¨æ  ¡ãä¥à 
LD IX,NEW_BUFFERS.TXT_Screen
JP ToDSS
;***********************************************************************
FULL_SAVE_TXT_SCREEN:
LD C,Dss.GetVMod
RST ToDSS
JR C,.no_vmode
CP #80
LD (FULL_RESTORE_SCREEN.current_vmode),A
LD A,B
LD (FULL_RESTORE_SCREEN.current_screen),A
CALL C,SAVE_TXT_SCREEN
;
.no_vmode: JR SAVE_PAL
;***********************************************************************
FULL_RESTORE_SCREEN: LD A,4
LD C,BIOS.FN_SYNC
RST ToBIOS
;
LD A,%1000'0000
LD C,BIOS.FN_SYNC
RST ToBIOS
;
LD A,(.current_screen)
LD E,A
LD BC,BIOS.LP_OPEN_S.TXT_80x32_Default
RST ToBIOS
;
CALL RESTORE_PAL
;
LD BC,Dss.Lib_Sub.RestoreFont
RST ToDSS
;
; LD A,(.current_screen)
; XOR 1
; LD B,A
; LD A,Dss.SetVMod.grf640x256
; LD C,Dss.SetVMod
; RST ToDSS
;
.current_vmode+1: LD A,Dss.SetVMod.txt80x32
.current_screen+2: LD BC,Dss.SetVMod.Screen_0
RST ToDSS
;
LD A,(.current_vmode)
CP Dss.SetVMod.txt80x32 + 1
RET NC
;
.cursor+1: LD DE,0
LD C,Dss.Locate
RST ToDSS
LD C,Dss.WinRest
JR TXT_Screen_Copy_Restore
;***********************************************************************
LOADER_STRINGS:
.Info: DB "\r\nThunder in the Deep v1.10 fixed. Copyright (C) 2003 Deviants.\r\n"
DZ "Bug fixes by Tolik_Trek@Sprinter_Team in 2024.\r\n\r\n"
.OldDSS: DZ "To run this version of TITD you need DSS v1.70.998 or higher."
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ASSERT (stack_point - stack_point.size - 1)>$, TOO MANY CODE!!!
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;