; 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 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 NC,NEW_ERROR_EXIT.OLD_DSS LD HL,DSS_MIN_VERS.build SBC HL,BC JR NC,NEW_ERROR_EXIT.OLD_DSS ; 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!!! ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;