; COMPILABLE DISASSEMBLY OF SMURF RESCUE BY CAPTAIN COZMOS (17 July 2022) ; 1ST OF A KIND, STILL NEEDS CLEANUP. ; CREDIT GOES WHERE CREDIT IS DUE. THIS IS A PAINFUL, TIME CONSUMING EXPERIENCE. BOOT_UP: EQU $0000 AMERICA: EQU $0069 POWER_UP: EQU $006E DECLSN: EQU $0190 DECMSN: EQU $019B MSNTOLSN: EQU $01A6 ADD816: EQU $01B1 SET_UP_WRITE: EQU $0623 PUTSEMI: EQU $06FF PX_TO_PTRN_POS: EQU $07E8 GET_BKGRND: EQU $0898 PUT_FRAME: EQU $080B CALC_OFFSET: EQU $08C0 PUT0SPRITE: EQU $08DF PUT1SPRITE: EQU $0955 PUT_MOBILE: EQU $0A87 PUTCOMPLEX: EQU $0EA2 CONT_READ: EQU $113D CONTROLLER_INIT: EQU $1105 JOY_DBNCE: EQU $12B9 FIRE_DBNCE: EQU $1289 ARM_DBNCE: EQU $12E9 KBD_DBNCE: EQU $1250 DISPLAY_LOGO: EQU $1319 PLAY_SONGS: EQU $1F61 ACTIVATEP: EQU $1F64 REFLECT_VERTICAL: EQU $1F6A REFLECT_HORZONTAL: EQU $1F6D ROTATE_90: EQU $1F70 ENLARGE: EQU $1F73 CONTROLLER_SCAN: EQU $1F76 DECODER: EQU $1F79 GAME_OPT: EQU $1F7C LOAD_ASCII: EQU $1F7F FILL_VRAM: EQU $1F82 MODE_1: EQU $1F85 UPDATE_SPINNER: EQU $1F88 INIT_TABLEP: EQU $1F8B PUT_VRAMP: EQU $1F91 INIT_SPR_ORDERP: EQU $1F94 INIT_TIMERP: EQU $1F9A REQUEST_SIGNALP: EQU $1FA0 TEST_SIGNALP: EQU $1FA3 WRITE_REGISTERP: EQU $1FA6 INIT_WRITERP: EQU $1FAF SOUND_INITP: EQU $1FB2 PLAY_ITP: EQU $1FB5 INIT_TABLE: EQU $1FB8 GET_VRAM: EQU $1FBB PUT_VRAM: EQU $1FBE INIT_SPR_NM_TBL: EQU $1FC1 WR_SPR_NM_TBL: EQU $1FC4 INIT_TIMER: EQU $1FC7 FREE_SIGNAL: EQU $1FCA REQUEST_SIGNAL: EQU $1FCD TEST_SIGNAL: EQU $1FD0 TIME_MGR: EQU $1FD3 TURN_OFF_SOUND: EQU $1FD6 WRITE_REGISTER: EQU $1FD9 READ_REGISTER: EQU $1FDC WRITE_VRAM: EQU $1FDF READ_VRAM: EQU $1FE2 INIT_WRITER: EQU $1FE5 WRITER: EQU $1FE8 POLLER: EQU $1FEB SOUND_INIT: EQU $1FEE PLAY_IT: EQU $1FF1 SOUND_MAN: EQU $1FF4 ACTIVATE: EQU $1FF7 PUTOBJ: EQU $1FFA RAND_GEN: EQU $1FFD VRAM_PATTERN: EQU $0000 VRAM_NAME: EQU $1800 VRAM_SPRATTR: EQU $1B00 VRAM_COLOR: EQU $2000 VRAM_SPRGEN: EQU $3800 FNAME "Smurf Rescue.rom" CPU Z80 ORG 8000H DB 0AAH,055H ; COLECO CARTRIDGE PRESENT FOR LOGO DW 0 DW 0 DW 702BH DW 712DH DW START RET NOP NOP RET NOP NOP RET NOP NOP RET NOP NOP RET NOP NOP RET NOP NOP RETI NOP RETN NOP DB 1DH," PEYO 1982" DB "/SMURF",1EH,1FH," RESCUE/1982" START: CALL SUB_8AC3 LOC_8046: CALL SUB_8642 LOC_8049: CALL SUB_8571 LD HL, 73C7H LD (HL), 0 CALL SUB_8105 LD HL, SOUND_DATA LD ($7139), HL CALL SOUND_INITP LD (HL), C ADD A, B ADD HL, SP LD (HL), C CALL SUB_86A1 JP Z, LOC_8049 CALL SUB_AACE CALL SUB_AD1B JP LOC_8046 DATA_SET_00: DB 0C9H, 009 SUB_8072: LD BC, DATA_SET_01 LD DE, 713BH CALL SUB_BF58 LD A, ($713B) CALL SUB_BF1F LD D, H LD E, L ADD HL, HL ADD HL, HL ADD HL, DE ADD HL, HL LD DE, 71FAH ADD HL, DE LD ($713C), HL LD DE, 0 LD (HL), E INC HL LD (HL), D LD HL, ($713C) INC HL INC HL LD (HL), 0FH LD HL, ($713C) INC HL INC HL INC HL LD (HL), 5 LD HL, ($713C) INC HL INC HL INC HL INC HL LD (HL), 7 LD HL, ($713C) LD DE, 5 ADD HL, DE LD (HL), 1 LD HL, ($713C) LD DE, 6 ADD HL, DE LD (HL), 1 LD HL, ($713C) LD DE, 7 ADD HL, DE LD (HL), 1 LD HL, ($713C) LD DE, 9 ADD HL, DE LD (HL), 1 RET DATA_SET_01: DB 001,000,001,000 SUB_80D5: LD HL, 71EFH LD ($713E), HL INC HL LD A, (HL) CP 1 JP NZ, LOC_80EB LD HL, ($713E) INC HL LD (HL), 0 JP LOC_80F1 LOC_80EB: LD HL, ($713E) INC HL LD (HL), 1 LOC_80F1: LD A, ($71F0) CALL SUB_BF1F LD D, H LD E, L ADD HL, HL ADD HL, HL ADD HL, DE ADD HL, HL LD DE, 71FAH ADD HL, DE LD ($718D), HL RET SUB_8105: CALL SUB_8072 OR D ADD A, D LD A, ($71EF) CP 2 JP NZ, LOC_8117 CALL SUB_8072 OR E ADD A, D LOC_8117: LD HL, 71F0H LD (HL), 1 CALL SUB_80D5 LOC_811F: LD HL, ($718D) LD ($7140), HL CALL SUB_AACE LD HL, 7150H LD ($7142), HL LD HL, 7188H LD ($7144), HL CALL INIT_TIMERP LD B, D LD (HL), C LD B, H LD (HL), C LD A, (AMERICA) CALL SUB_BF1F LD ($7142), HL CALL REQUEST_SIGNALP OR E ADD A, D LD B, D LD (HL), C LD ($714F), A CALL REQUEST_SIGNALP OR E ADD A, D OR H ADD A, D LD ($714E), A LD HL, ($7140) LD DE, 6 ADD HL, DE LD (HL), 1 LD HL, ($7140) INC HL INC HL LD (HL), 0FH LD HL, ($7140) INC HL INC HL INC HL INC HL LD A, (HL) LD ($71F9), A LD HL, ($7140) LD DE, 7 ADD HL, DE LD A, (HL) LD ($71F2), A LD HL, ($7140) LD DE, 5 ADD HL, DE LD A, (HL) LD ($71F3), A LD HL, ($7140) LD DE, 6 ADD HL, DE LD A, (HL) LD ($71F8), A CALL SUB_BE39 CALL SUB_A288 LD A, ($71F3) CP 7 JP NZ, LOC_81A8 CALL SUB_ACD8 JP LOC_81AB LOC_81A8: CALL SUB_AD1B LOC_81AB: CALL SUB_8AED CALL SUB_A288 CALL SUB_BE78 LD HL, 718FH LD (HL), 14H CALL SUB_A68A CALL SUB_A00C CALL SUB_BB2E CALL SUB_82BB LD HL, SOUND_DATA LD ($7142), HL CALL SOUND_INITP OR (HL) ADD A, D LD B, D LD (HL), C LD A, ($718C) CP 3 JP NZ, LOC_8259 CALL PLAY_ITP OR A ADD A, D CALL PLAY_ITP CP B ADD A, D LD HL, ($7140) LD DE, 9 ADD HL, DE LD (HL), 1 LD HL, ($7140) LD DE, 5 ADD HL, DE LD (HL), 1 LD HL, ($7140) INC HL INC HL INC HL INC HL LD A, (HL) OR 7 LD HL, ($7140) INC HL INC HL INC HL INC HL LD (HL), A LD HL, ($7140) LD E, (HL) INC HL LD D, (HL) LD HL, 64H ; 'D' ADD HL, DE EX DE, HL LD HL, ($7140) LD (HL), E INC HL LD (HL), D CALL SUB_A288 LD HL, ($7140) LD DE, 7 ADD HL, DE LD A, (HL) CP 4 JP Z, LOC_823B LD HL, ($7140) LD DE, 7 ADD HL, DE LD A, (HL) ADD A, 1 LD HL, ($7140) LD DE, 7 ADD HL, DE LD (HL), A LOC_823B: CALL REQUEST_SIGNALP OR D ADD A, D CP C ADD A, D LD ($714D), A LOC_8245: CALL SOUND_MAN CALL PLAY_SONGS CALL SUB_9F8C CALL TIME_MGR CALL TEST_SIGNALP LD C, L LD (HL), C JP Z, LOC_8245 LOC_8259: LD A, ($718C) CP 2 JP NZ, LOC_811F LD HL, ($718D) LD ($7140), HL INC HL INC HL INC HL LD A, (HL) SUB 1 LD HL, ($7140) INC HL INC HL INC HL LD (HL), A LD HL, ($7140) INC HL INC HL INC HL INC HL LD A, (HL) OR 6 LD HL, ($7140) INC HL INC HL INC HL INC HL LD (HL), A LD HL, 71EFH LD ($7140), HL LD A, (HL) CP 2 JP NZ, LOC_8295 CALL SUB_80D5 LOC_8295: LD HL, ($718D) INC HL INC HL INC HL LD A, (HL) CP 0 JP NZ, LOC_811F LD HL, 71FCH LD (HL), 0 LD HL, 7206H LD (HL), 0 CALL SUB_A38F CALL SUB_A38F RET DB 0 DB 1 DB 96H DB 0 DB 9 DB 4 DB 5 DB 0F4H DB 1 SUB_82BB: LD HL, 718CH LD (HL), 0 LD HL, ($718D) LD ($7146), HL LOC_82C6: LD A, ($718F) LD L, A LD A, 0 CALL SUB_BF3F JP Z, LOC_82EB LD A, 1 CALL SUB_BF3F JP Z, LOC_82E8 LD A, L LD B, A XOR 1 AND B LD ($718F), A CALL SUB_BB2E CALL SUB_ACD8 LOC_82E8: JP LOC_8520 LOC_82EB: LD A, ($718F) LD L, A LD A, 4 CALL SUB_BF3F JP Z, LOC_8377 LD HL, ($7299) LD DE, 0F7H CALL SUB_BEE1 JP Z, LOC_8320 LD A, ($718F) LD L, A LD A, 2 CALL SUB_BF3F JP NZ, LOC_8315 LD A, L OR 4 LD ($718F), A LOC_8315: LD A, ($718F) OR 8 LD ($718F), A JP LOC_8377 LOC_8320: LD HL, ($7146) LD DE, 5 ADD HL, DE LD A, (HL) CP 1 JP NZ, LOC_8332 XOR A INC A JP LOC_8333 LOC_8332: XOR A LOC_8333: LD HL, ($7299) LD DE, 10H LD B, A CALL SUB_BEC1 AND B LD HL, ($7146) LD DE, 6 ADD HL, DE LD B, A LD A, (HL) CP 1 JP NZ, LOC_8351 XOR A INC A JP LOC_8352 LOC_8351: XOR A LOC_8352: AND B JP Z, LOC_835C LD HL, 10H LD ($7299), HL LOC_835C: LD HL, ($7299) LD DE, 4 CALL SUB_BEC1 JP Z, LOC_8377 LD A, ($718F) OR 8 LD B, A XOR 4 AND B LD ($718F), A CALL SUB_AD1B LOC_8377: LD A, ($718F) LD L, A LD A, 3 CALL SUB_BF3F JP Z, LOC_8520 CALL SUB_BC25 LD HL, ($7146) INC HL INC HL INC HL INC HL LD A, (HL) AND 10H LD HL, ($7146) INC HL INC HL INC HL INC HL LD (HL), A LD A, ($718F) LD L, A LD A, 2 CALL SUB_BF3F JP Z, LOC_8481 LD HL, ($7146) LD DE, 6 ADD HL, DE LD A, (HL) ADD A, 1 LD HL, ($7146) LD DE, 6 ADD HL, DE LD (HL), A LD HL, ($7146) LD DE, 6 ADD HL, DE LD A, ($71F7) LD B, A LD A, (HL) LD L, B CALL SUB_BF01 JP Z, LOC_8440 LD HL, ($7146) LD DE, 6 ADD HL, DE LD (HL), 1 LD HL, ($7146) LD DE, 5 ADD HL, DE LD A, (HL) ADD A, 1 LD HL, ($7146) LD DE, 5 ADD HL, DE LD (HL), A LD HL, ($7146) INC HL INC HL INC HL INC HL LD A, (HL) OR 2 LD HL, ($7146) INC HL INC HL INC HL INC HL LD (HL), A LD HL, ($7146) LD DE, 9 ADD HL, DE EX DE, HL LD HL, ($7146) LD BC, 5 ADD HL, BC LD A, (DE) LD B, A LD A, (HL) LD L, B CALL SUB_BF01 JP Z, LOC_8440 LD HL, ($7146) INC HL INC HL LD A, (HL) CALL SUB_BF1F EX DE, HL LD HL, ($7146) LD C, (HL) INC HL LD B, (HL) EX DE, HL ADD HL, BC EX DE, HL LD HL, ($7146) LD (HL), E INC HL LD (HL), D LD HL, ($7146) INC HL INC HL LD (HL), 0FH LD HL, ($7146) LD DE, 5 ADD HL, DE EX DE, HL LD HL, ($7146) LD BC, 9 ADD HL, BC LD A, (DE) LD (HL), A LOC_8440: LD HL, ($7146) LD DE, 5 ADD HL, DE LD A, (HL) CP 7 JP NZ, LOC_8452 XOR A INC A JP LOC_8453 LOC_8452: XOR A LOC_8453: LD HL, ($7146) LD DE, 6 ADD HL, DE LD B, A LD A, ($71F7) CP (HL) JP NZ, LOC_8467 XOR A INC A JP LOC_8468 LOC_8467: XOR A LOC_8468: OR B JP Z, LOC_847E LD HL, ($7146) INC HL INC HL INC HL INC HL LD A, (HL) OR 8 LD HL, ($7146) INC HL INC HL INC HL INC HL LD (HL), A LOC_847E: JP LOC_84CF LOC_8481: LD HL, ($7146) LD DE, 6 ADD HL, DE LD A, (HL) SUB 1 LD HL, ($7146) LD DE, 6 ADD HL, DE LD (HL), A LD HL, ($7146) LD DE, 6 ADD HL, DE LD A, (HL) CP 0 JP NZ, LOC_84CF LD HL, ($7146) LD DE, 5 ADD HL, DE LD A, (HL) SUB 1 LD HL, ($7146) LD DE, 5 ADD HL, DE LD (HL), A LD HL, ($7146) LD DE, 6 ADD HL, DE LD A, ($71F7) LD (HL), A LD HL, ($7146) INC HL INC HL INC HL INC HL LD A, (HL) OR 0AH LD HL, ($7146) INC HL INC HL INC HL INC HL LD (HL), A LOC_84CF: LD HL, ($7146) INC HL INC HL INC HL INC HL LD A, (HL) LD ($71F9), A LD HL, ($7146) LD DE, 7 ADD HL, DE LD A, (HL) LD ($71F2), A LD HL, ($7146) LD DE, 5 ADD HL, DE LD A, (HL) LD ($71F3), A LD HL, ($7146) LD DE, 6 ADD HL, DE LD A, (HL) LD ($71F8), A CALL SUB_8AED LD HL, ($7146) INC HL INC HL INC HL INC HL LD A, 1 LD L, (HL) CALL SUB_BF3F JP Z, LOC_8511 CALL SUB_BE78 LOC_8511: CALL SUB_9829 LD A, ($718F) OR 1 LD B, A XOR 0AH AND B LD ($718F), A LOC_8520: CALL SUB_BBF5 CALL SUB_BBE2 CALL SUB_9917 CALL SOUND_MAN CALL PLAY_SONGS CALL SUB_A38F CALL SUB_9F8C CALL TIME_MGR CALL SUB_982E CALL TEST_SIGNALP LD C, (HL) LD (HL), C JP Z, LOC_8565 LD HL, ($7146) INC HL INC HL LD A, (HL) SUB 1 LD HL, ($7146) INC HL INC HL LD (HL), A CALL SUB_A38F CALL SUB_A38F LD HL, ($7146) INC HL INC HL LD A, (HL) CP 0 JP NZ, LOC_8565 CALL SUB_AA61 LOC_8565: LD A, ($718C) CP 0 JP Z, LOC_82C6 CALL SUB_BC25 RET SUB_8571: LD HL, SOUND_DATA LD ($7148), HL CALL SOUND_INITP ADD A, IYL LD C, B LD (HL), C CALL WRITE_REGISTERP CP 85H RST 38H ADD A, L CALL WRITE_REGISTERP NOP ADD A, (HL) CP 85H CALL INIT_TABLEP CP 85H LD BC, 0CD86H ADC A, E RRA INC BC ADD A, (HL) INC B ADD A, (HL) CALL INIT_TABLEP RST 38H ADD A, L LD B, 86H CALL INIT_TABLEP EX AF, AF' ADD A, (HL) ADD HL, BC ADD A, (HL) CALL INIT_TABLEP DEC BC ADD A, (HL) INC C ADD A, (HL) CALL WRITE_REGISTERP INC BC ADD A, (HL) LD C, 86H LD HL, 73C6H LD (HL), 0 LD HL, 73C7H LD (HL), 0 LD HL, 7150H LD ($7148), HL LD HL, 7188H LD ($714A), HL CALL INIT_TIMERP LD C, B LD (HL), C LD C, D LD (HL), C LD A, (AMERICA) CALL SUB_BF1F LD ($7148), HL CALL REQUEST_SIGNALP INC BC ADD A, (HL) LD C, B LD (HL), C LD ($714F), A LD A, ($71F1) CP 1 JP NZ, LOC_85F6 LD HL, 71F7H LD (HL), 2 JP LOCRET_85FC LOC_85F6: LD A, ($71F1) LD ($71F7), A LOCRET_85FC: RET DB 9 DB 0 DB 2 DB 7 DB 0 DB 1EH DB 1 DB 0 DB 38H ; 8 DB 0 DB 18H DB 3 DB 0 DB 20H DB 4 DB 0 DB 0 DB 0C2H UNK_860F: DB 0 DB 0 DB 0 DB 0 DB 1 DB 1 DB 2 DB 2 DB 2 DB 2 DB 3 DB 3 DB 3 DB 3 DB 3 DB 3 UNK_861F: DB 0 DB 0 DB 2 DB 0 DB 0 DB 1 DB 0FFH UNK_8626: DB 0 DB 10H DB 28H ; ( DB 49H ; I DB 0 DB 11H DB 29H ; ) DB 49H ; I DB 0 DB 12H DB 29H ; ) DB 49H ; I DB 0 DB 13H DB 29H ; ) DB 59H ; Y DB 0 DB 25H ; % DB 29H ; ) DB 69H ; I DB 0 DB 27H ; ' DB 39H ; 9 DB 69H ; I DB 0 DB 0 DB 0 DB 0 SUB_8642: CALL MODE_1 CALL LOAD_ASCII CALL GAME_OPT OR A LD ($7191), A LD HL, 0 LD ($7192), HL LOC_8655: CALL SUB_8686 CALL RAND_GEN CALL POLLER LD A, ($7133) CP 0FH JR NZ, LOC_866C LD A, ($7138) CP 0FH JR Z, LOC_8655 LOC_866C: DEC A BIT 3, A JR NZ, LOC_8655 LD HL, 71EFH BIT 2, A JR NZ, LOC_867C LD (HL), 1 JR LOC_867E LOC_867C: LD (HL), 2 LOC_867E: AND 3 INC A LD HL, 71F1H LD (HL), A RET SUB_8686: LD A, ($7191) DEC A LD ($7191), A RET NZ SUB_868E: LD HL, ($7192) LD BC, 1 SBC HL, BC LD ($7192), HL RET NZ LD C, 82H LD B, 1 JP WRITE_REGISTER SUB_86A1: LD HL, 5AH ; 'Z' LD A, 1 CALL REQUEST_SIGNAL LD ($7190), A LD A, ($71F3) CP 7 JR NZ, LOC_86B6 CALL SUB_ACD8 LOC_86B6: LD HL, 8CA0H LD ($7192), HL LOC_86BC: CALL SUB_868E CALL SUB_9F8C CALL TIME_MGR CALL SUB_8715 CALL POLLER LD A, ($7133) CALL SUB_872C JR NZ, LOC_8706 LD A, ($7138) CALL SUB_872C JR NZ, LOC_8706 LD BC, 71EFH LD A, (BC) DEC A JR Z, LOC_8704 LD A, ($7190) PUSH BC CALL TEST_SIGNAL POP BC JR Z, LOC_8704 INC BC LD A, (BC) OR A JR Z, LOC_86F8 LD HL, 71FAH XOR A LD (BC), A JR LOC_86FE LOC_86F8: LD HL, 7204H LD A, 1 LD (BC), A LOC_86FE: LD ($718D), HL CALL SUB_A288 LOC_8704: JR LOC_86BC LOC_8706: PUSH AF LD A, ($71F3) CP 7 JR NZ, LOC_8711 CALL SUB_AD1B LOC_8711: POP AF CP 0 RET SUB_8715: LD IX, 8008H LD H, (IX+1) LD L, (IX+0) INC HL INC HL LD D, H LD E, L INC DE LD BC, 0AH LD (HL), 0 LDIR RET SUB_872C: SUB 0AH JP M, LOC_8736 CP 2 JP M, LOC_8738 LOC_8736: LD A, 0FFH LOC_8738: CP 0FFH RET SOUND_DATA: ; POINTER TO THE SOUND DATA. FIRST ENTRY? MUSIC ENTRIES ARE PARTS OF THE SOUNDTRACK DB 123,135,148,113,176,135,158,113,061,136 DB 168,113,180,136,148,113,015,137,168,113 DB 115,138,188,113,078,137,228,113,255,137 DB 218,113,044,138,228,113,109,138,178,113 DB 121,138,188,113,140,138,198,113,146,138 DB 208,113,159,138,148,113,165,138,158,113 DB 180,138,168,113 MUSIC_02: DB 056,056,194,071,064,064,024,056,194,085 DB 064,064,024,056,192,080,064,032,192,095 DB 064,032,194,085,064,064,024,056,194,095 DB 064,064,024,056,194,113,064,064,024,056 DB 192,107,064,032,192,127,080,032,192,095 DB 080,016,024 MUSIC_03: DB 048,128,029,065,014,034,128,029,065,014 DB 034,130,214,064,024,021,056,128,214,064 DB 006,034,128,214,064,014,034,128,190,064 DB 014,034,128,170,064,016,128,214,064,016 DB 128,170,064,016,128,160,064,016,130,143 DB 064,024,021,056,128,143,064,006,034,128 DB 143,064,014,034,128,160,064,016,128,170 DB 064,032,128,190,064,016,128,214,064,016 DB 130,190,064,024,021,056,128,190,064,006 DB 034,128,190,064,014,034,128,214,064,016 DB 128,190,064,016,128,170,064,016,128,190 DB 064,016,128,214,064,016,130,190,064,024 DB 021,056,128,190,064,006,034,128,190,064 DB 014,034,128,226,080,016,128,029,081,016 DB 024 MUSIC_04: DB 056,056,064,172,065,016,064,029,081,016 DB 064,170,080,016,064,029,081,016,064,172 DB 065,016,064,029,081,016,064,214,080,016 DB 064,029,081,016,064,197,065,016,064,029 DB 081,016,064,160,080,016,064,029,081,016 DB 064,172,065,016,064,029,081,016,064,170 DB 080,016,064,029,081,016,064,197,065,016 DB 064,029,081,016,064,160,080,016,064,029 DB 081,016,064,059,066,016,064,064,081,016 DB 064,226,080,016,064,064,081,016,064,252 DB 065,016,064,064,081,016,064,160,080,016 DB 064,064,081,016,064,197,097,016,024 MUSIC_05: DB 130,170,048,020,020,054,130,170,048,020 DB 020,054,130,127,048,030,020,072,130,127 DB 048,010,020,036,130,127,048,020,020,054 DB 130,113,048,020,020,054,130,101,048,020 DB 020,054,130,127,048,020,020,054,130,101 DB 048,020,020,054,130,095,048,020,020,054 DB 130,085,048,033,020,072,130,085,048,012 DB 020,036,130,085,048,026,020,054,130,095 DB 048,028,020,054,130,101,064,064,025,063 DB 016 MUSIC_06: DB 062,042,194,252,065,020,020,054,194,083 DB 081,020,020,054,194,202,080,020,020,054 DB 194,083,081,020,020,054,194,252,065,080 DB 025,070,194,027,066,022,020,054,194,083 DB 081,024,020,054,194,190,080,026,020,054 DB 194,083,081,028,020,054,194,252,081,064 DB 024,063,016 MUSIC_07: DB 064,085,048,016,064,080,032,016,064,064 DB 048,016,064,071,032,016,064,080,032,008 DB 064,085,048,008,064,095,048,016,064,143 DB 048,016,064,107,032,016,064,095,048,016 DB 064,085,032,016,064,080,048,008,064,085 DB 048,008,064,095,032,016,064,085,048,016 DB 064,080,032,016,064,071,048,008,064,080 DB 048,008,064,085,032,016,064,071,032,008 DB 104,064,071,032,008,104,064,071,032,008 DB 104,064,071,032,032,064,080,032,008,064 DB 085,032,008,064,095,032,008,064,107,064 DB 008,064,113,048,016,064,107,064,016,064 DB 095,064,016,064,085,064,008,064,095,064 DB 008,064,107,048,016,064,095,064,016,064 DB 085,064,016,064,080,064,008,064,085,064 DB 008,064,095,048,016,064,080,064,008,040 DB 064,080,064,008,040,064,080,064,008,040 DB 066,080,048,032,024,068,016 MUSIC_08: DB 128,180,080,048,128,170,096,032,128,180 DB 096,032,128,226,096,096,128,214,080,032 DB 128,202,096,032,128,135,096,032,128,143 DB 080,032,128,151,096,128,128,135,096,032 DB 128,120,096,016,024 MUSIC_09: DB 192,226,144,032,192,240,112,032,192,254 DB 096,032,192,013,097,032,192,151,096,032 DB 192,170,096,032,192,180,096,032,192,240 DB 096,032,192,046,097,032,192,170,096,032 DB 192,254,096,032,192,240,096,032,192,046 DB 097,032,192,240,096,032,192,170,096,032 DB 192,190,096,032,024 MUSIC_10: DB 002,003,035,031,063,016,192,172,033,001,043,024 MUSIC_11: DB 193,025,000,020,017,255,193,015,000,009,017,255,193,013,000,009,017,255,016 MUSIC_12: DB 002,055,016,079,017,024 MUSIC_13: DB 193,001,240,030,017,003,193,093,240,030,017,253,024 MUSIC_14: DB 002,002,004,038,017,016 MUSIC_15: DB 066,027,002,004,038,017,126,126,065,087,002,015,017,228,080 MUSIC_16: DB 130,250,002,004,038,017,190,190,129,087,001,015,017,238,144 SUB_8AC3: LD HL, 712DH LD (HL), 90H INC HL LD (HL), 90H INC HL LD DE, 7130H LD BC, 0AH LD (HL), 0 LDIR LD A, 0FH LD ($7133), A LD ($7138), A RET UNK_8ADF: DW DATA_FOUND_00 DW DATA_FOUND_01 DW DATA_FOUND_02 DW DATA_FOUND_03 DW DATA_FOUND_00 DW DATA_FOUND_04 DW DATA_FOUND_05 SUB_8AED: LD HL, 7250H LD (HL), 0 LD A, 0 LD ($7259), A LD HL, 71F9H BIT 0, (HL) JR Z, LOC_8B14 LD C, 82H LD B, 1 CALL WRITE_REGISTER LD A, ($71F4) AND 2 ADD A, 3 LD ($724E), A LD HL, 71F9H SET 1, (HL) LOC_8B14: LD HL, 71F9H BIT 1, (HL) JR Z, LOC_8B4A CALL SUB_8E7D LD A, ($71F3) CP 7 JR NZ, LOC_8B32 LD A, 6 LD ($71F3), A CALL SUB_8E7D LD A, 7 LD ($71F3), A LOC_8B32: LD HL, UNK_8ADF LD A, ($71F3) DEC A SLA A LD C, A LD B, 0 ADD HL, BC CALL SUB_8DB2 LD ($7257), HL LD A, 0B0H LD ($724F), A LOC_8B4A: LD A, ($724F) LD C, A LD A, ($718F) BIT 2, A LD HL, 71F3H LD A, (HL) JR NZ, LOC_8B5D LD C, 0B0H JR LOC_8B69 LOC_8B5D: CP 2 JR NZ, LOC_8B63 LD C, 0A8H LOC_8B63: CP 4 JR NZ, LOC_8B69 LD C, 0B0H LOC_8B69: CP 3 JR NZ, LOC_8B6F LD C, 80H LOC_8B6F: CP 1 JR NZ, LOC_8B7E LD D, A LD A, ($71F8) CP 1 LD A, D JR NZ, LOC_8B7E LD C, 0A8H LOC_8B7E: LD A, C LD ($724F), A LD HL, ($7257) CALL SUB_8DB2 CALL SUB_AAEC LD A, ($71F3) CP 6 JP Z, LOC_8CBE CP 7 JP Z, LOC_8DD6 LD B, 5 CP 3 JR Z, LOC_8BAC CP 2 JR Z, LOC_8BAA CP 4 JR Z, LOC_8BA8 JR NZ, LOC_8BBB LOC_8BA8: INC B INC B LOC_8BAA: INC B INC B LOC_8BAC: LD A, ($71F1) CP 1 JR Z, LOC_8BBB LD A, B ADD A, A ADD A, A LD C, A LD B, 0 JR LOC_8BBE LOC_8BBB: LD BC, 0 LOC_8BBE: LD HL, ($7257) LD DE, 4 ADD HL, DE ADD HL, BC LD ($7251), HL LD A, ($71F3) DEC A JR NZ, LOC_8BE3 LD A, ($71F8) DEC A JR NZ, LOC_8BE3 LD A, 5 LD ($7259), A LD DE, 720EH LD HL, UNK_8E0F CALL SUB_8DE2 LOC_8BE3: LD HL, ($7251) INC HL INC HL CALL SUB_8DB2 CALL SUB_8CC6 LOC_8BEE: LD A, ($7259) CP 20H ; ' ' JP NC, LOC_8CBE CALL RAND_GEN LD HL, ($7251) LOC_8BFC: LD C, A LD A, (HL) CP 0FFH LD A, C JR NZ, LOC_8C06 INC HL JR LOC_8C13 LOC_8C06: CP (HL) INC HL JR Z, LOC_8C18 JR C, LOC_8C13 CP (HL) JR Z, LOC_8C18 JR NC, LOC_8C13 JR LOC_8C18 LOC_8C13: INC HL INC HL INC HL JR LOC_8BFC LOC_8C18: INC HL LD ($7255), HL CALL SUB_8DB2 LD ($7253), HL LD HL, ($7253) PUSH HL POP IX LD A, (IX+1) BIT 7, A LD IX, ($7257) JR Z, LOC_8C40 LD HL, 724FH ADD A, (HL) JR NC, LOC_8C4D CP (IX+3) JR NC, LOC_8C67 JR LOC_8C4D LOC_8C40: LD HL, 724FH ADD A, (HL) JR C, LOC_8C5A CP (IX+2) JR NC, LOC_8C5A JR LOC_8C67 LOC_8C4D: CALL SUB_8E16 LOC_8C50: LD A, (HL) BIT 5, A JR NZ, LOC_8C67 CALL SUB_8DB7 JR LOC_8C50 LOC_8C5A: CALL SUB_8E16 LOC_8C5D: LD A, (HL) BIT 6, A JR NZ, LOC_8C67 CALL SUB_8DB7 JR LOC_8C5D LOC_8C67: LD A, ($7250) INC A LD HL, 724EH CP (HL) JR Z, LOC_8C78 LD A, ($7259) CP 18H JR C, LOC_8CB5 LOC_8C78: LD HL, 71F9H BIT 3, (HL) JR Z, LOC_8C89 LD C, 0AH CALL SUB_8E1F LD ($7253), HL JR LOC_8C96 LOC_8C89: LD HL, ($7253) LD A, (HL) BIT 7, A JR NZ, LOC_8C96 CALL SUB_8DB7 JR LOC_8C89 LOC_8C96: LD A, ($7259) CP 20H ; ' ' JR NC, LOC_8CA7 LD C, 0EH CALL SUB_8E1F CALL SUB_8CC6 JR LOC_8C96 LOC_8CA7: LD IX, ($7253) LD A, (IX+2) LD B, A LD A, 20H ; ' ' SUB B LD ($7259), A LOC_8CB5: LD HL, ($7253) CALL SUB_8CC6 JP LOC_8BEE LOC_8CBE: LD C, 0C2H LD B, 1 CALL WRITE_REGISTER RET SUB_8CC6: LD ($725B), HL PUSH HL POP IX LD L, (IX+5) LD H, (IX+6) LD ($725D), HL INC HL INC HL CALL SUB_8DB2 LD (HL), 0 INC HL LD A, ($7259) ADD A, A ADD A, A ADD A, A LD ($7260), A CALL SUB_8E27 LD A, ($724F) LD B, (IX+4) SUB B LD ($725F), A CALL SUB_8E2D LD HL, ($725D) PUSH HL OR A CALL ACTIVATE POP IX CALL SUB_8E39 LD A, 0 LD ($725A), A LOC_8D08: LD IX, ($725B) LD C, (IX+2) LD A, ($725A) CP C JR Z, LOC_8D4F LD A, ($7259) CP 20H ; ' ' JR NC, LOC_8D4F ADD A, A LD E, A LD D, 0 LD HL, 720EH ADD HL, DE LD IX, ($725B) LD A, ($725A) ADD A, A LD E, A LD D, 0 ADD IX, DE LD A, (IX+8) LD (HL), A INC IX INC HL LD A, (IX+8) PUSH HL LD HL, 724FH ADD A, (HL) POP HL LD (HL), A LD ($724F), A LD HL, 725AH INC (HL) LD HL, 7259H INC (HL) JR LOC_8D08 LOC_8D4F: LD A, ($725F) LD IX, ($725B) LD B, (IX+3) PUSH AF LD A, B ADD A, A ADD A, A ADD A, A LD B, A POP AF ADD A, B JR C, LOC_8DA5 CP 0C0H JR NC, LOC_8DA5 LD ($725F), A LD HL, 702BH LD IX, ($725B) LD A, (IX+2) LD (HL), A INC HL LD (HL), 1 LD B, A LD A, (IX+7) LOC_8D7C: INC HL LD (HL), A DJNZ LOC_8D7C LOC_8D80: LD HL, 72C3H LD (HL), 0 INC HL LD A, ($7260) CALL SUB_8E27 LD A, ($725F) CALL SUB_8E2D LD IX, UNK_AADF CALL SUB_8E39 LD A, ($725F) ADD A, 8 LD ($725F), A CP 0C0H JR C, LOC_8D80 LOC_8DA5: LD HL, ($725B) LD A, (HL) AND 80H JR Z, LOCRET_8DB1 LD HL, 7250H INC (HL) LOCRET_8DB1: RET SUB_8DB2: LD E, (HL) INC HL LD D, (HL) EX DE, HL RET SUB_8DB7: LD HL, ($7255) SUB_8DBA: LD BC, 4 ADD HL, BC LD ($7255), HL CALL SUB_8DB2 LD ($7253), HL RET SUB_8DC8: LD HL, 720EH LD B, 20H ; ' ' LOC_8DCD: LD (HL), 0 INC HL LD (HL), 0B0H INC HL DJNZ LOC_8DCD RET LOC_8DD6: LD DE, 720EH LD HL, UNK_8DF6 CALL SUB_8DE2 JP LOC_8CBE SUB_8DE2: LD B, (HL) DEC B JR Z, LOCRET_8DF5 INC HL LOC_8DE7: LD A, (HL) LD (DE), A INC DE INC HL LD A, (HL) LD (DE), A INC DE DEC HL DJNZ LOC_8DE7 INC HL INC HL JR SUB_8DE2 LOCRET_8DF5: RET UNK_8DF6: DB 14H DB 0 DB 0ADH DB 2 DB 1 DB 90H DB 2 DB 1 DB 88H DB 2 DB 40H ; @ DB 88H DB 2 DB 0 DB 88H DB 2 DB 0 DB 90H DB 2 DB 1 DB 0B0H DB 8 DB 6 DB 60H ; ` DB 1 UNK_8E0F: DB 3 DB 0EH DB 0A8H DB 4 DB 0 DB 0A8H DB 1 SUB_8E16: LD HL, ($7251) DEC HL DEC HL CALL SUB_8DBA RET SUB_8E1F: LD HL, ($7257) LD B, 0 ADD HL, BC JR SUB_8DB2 SUB_8E27: LD (HL), A INC HL LD (HL), 0 INC HL RET SUB_8E2D: CALL SUB_8E27 LD A, ($71F9) BIT 2, A CALL Z, SUB_98E2 RET SUB_8E39: CALL PUTOBJ LD A, ($71F9) BIT 2, A CALL Z, SUB_98F8 RET ; PATTERNS ON ROM, GIVEN A POINTER TO ADDRESSES OF PHYSICAL DATA IN ROM ; ROM ADDRESSES IN ORDER 8F88,9105,916A,9196,9312,94F8,9561,95A9,91C0,92E8,9307,930C,9312,94F8 ; ROM ADDRESSES IN ORDER 9561,95A9,8F88,9105,916A,9196,95E7,978B,97EE,980E,95E7,978B,97EE,980E BACKGROUND_MAP: DW PATTERN_SET_00, PATTERN_SET_01, PATTERN_SET_02, PATTERN_SET_03, PATTERN_SET_04, PATTERN_SET_05 DW PATTERN_SET_06, PATTERN_SET_07, PATTERN_SET_08, PATTERN_SET_09, PATTERN_SET_10, PATTERN_SET_11 DW PATTERN_SET_04, PATTERN_SET_05, PATTERN_SET_06, PATTERN_SET_07, PATTERN_SET_00, PATTERN_SET_01 DW PATTERN_SET_02, PATTERN_SET_03, PATTERN_SET_12, PATTERN_SET_13, PATTERN_SET_14, PATTERN_SET_15 DW PATTERN_SET_12, PATTERN_SET_13, PATTERN_SET_14, PATTERN_SET_15 SUB_8E7D: LD HL, 71F3H LD A, (HL) DEC A ADD A, A ADD A, A ADD A, A LD C, A LD B, 0 LD HL, BACKGROUND_MAP ADD HL, BC LD C, 8 LD DE, 7261H LDIR LD D, 0 CALL SUB_8EC2 LD D, 8 CALL SUB_8EC2 LD D, 10H CALL SUB_8EC2 LD D, 0 CALL SUB_8ED5 LD D, 8 CALL SUB_8ED5 LD D, 10H JR SUB_8ED5 SUB_8EB0: PUSH HL LD A, ($71F3) BIT 0, A JR Z, LOC_8EBA LOC_8EB8: POP HL RET LOC_8EBA: LD HL, 400H ADD HL, DE PUSH HL POP DE JR LOC_8EB8 SUB_8EC2: LD E, 0 CALL SUB_8EB0 LD HL, 2000H ADD HL, DE LD IY, ($7261) LD IX, ($7263) JR LOC_8EE6 SUB_8ED5: LD E, 0 CALL SUB_8EB0 LD HL, 0 ADD HL, DE LD IY, ($7265) LD IX, ($7267) LOC_8EE6: XOR A CALL SUB_8EEB RET SUB_8EEB: LD ($7269), IX LD ($726B), IY LD ($726D), HL LD ($726F), A LOC_8EF9: LD IX, ($7269) LD A, (IX+0) CP 0 JR Z, LOCRET_8F7C LD A, (IX+0) AND 80H JR Z, LOC_8F31 LD A, (IX+0) AND 7FH LD E, A LD D, 0 LD IY, ($726B) LD A, (IY+0) LD HL, ($726D) LD C, A LD A, ($726F) INC A LD A, C JR Z, LOC_8F7D CALL FILL_VRAM LOC_8F28: LD HL, ($726B) INC HL LD ($726B), HL JR LOC_8F5E LOC_8F31: LD A, (IX+0) AND 7FH LD C, A LD B, 0 LD HL, ($726B) LD DE, ($726D) LD A, ($726F) INC A JR Z, LOC_8F84 CALL WRITE_VRAM LOC_8F49: LD HL, ($726B) LD IX, ($7269) LD A, (IX+0) AND 7FH ADD A, L LD L, A LD A, 0 ADC A, H LD H, A LD ($726B), HL LOC_8F5E: LD IX, ($7269) LD HL, ($726D) LD A, (IX+0) AND 7FH ADD A, L LD L, A LD A, 0 ADC A, H LD H, A LD ($726D), HL INC IX LD ($7269), IX JP LOC_8EF9 LOCRET_8F7C: RET LOC_8F7D: LD B, E LOC_8F7E: LD (HL), A INC HL DJNZ LOC_8F7E JR LOC_8F28 LOC_8F84: LDIR JR LOC_8F49 ; BACKGROUND PATTERNS CALLED BY TABLE PATTERN_SET_00: DB 000,131,003,002,002,000,000,128,128,199,199,135,007,015,031,063,127,248,240,240,225,225,255,255,252,252,248,047,047,015 DB 135,199,199,195,195,225,224,248,252,254,255,225,240,241,243,227,000,048,124,255,127,255,031,127,111,079,029,008,243,225 DB 225,247,255,239,199,207,254,255,248,254,246,242,072,016,000,128,000,001,195,129,048,197,255,255,247,243,049,033,000,000 DB 127,127,051,003,006,004,000,000,255,247,231,071,011,254,252,248,240,224,192,255,031,127,111,079,029,008,252,255,248,254 DB 246,242,184,140,015,007,001,000,255,127,031,007,003,001,255,255,127,063,031,015,031,031,063,063,000,000,001,001,007,015 DB 063,255,127,031,003,000,255,000,255,248,224,000,000,255,255,247,255,159,249,255,128,192,192,224,240,240,248,252,248,240 DB 224,224,192,192,128,000,254,252,248,240,224,128,000,000,015,031,063,063,255,063,031,015,255,127,127,063,063,255,127,127 DB 063,063,031,015,007,015,031,063,127,127,255,015,255,000,001,003,003,001,001,000,000,064,224,224,226,231,247,255,239,000 DB 016,056,231,247,255,239,184,248,120,056,231,231,103,007,003,056,056,184,248,120,056,000,082,202,106,173,056,082,202,106 DB 173,000,084,215,149,189,255,212,149,189,255,000,001,087,148,189,255,000,086,213,188,255,000,086,213,149,000,086,213,101 DB 189,000,086,213,149,189,255,000,000,086,213,149,189,255,173,037,149,082,255,173,037,150,089,000,255,253,175,037,150,082 DB 000,000,255,173,037,150,082,000,173,037,150,082,000,255,173,037,150,082,000,255,173,037,150,082,000,255,251,241,228,241 DB 251,140,082,140,000,049,074,010,050,066,066,121,000,121,010,018,050,010,074,049,000 PATTERN_SET_01: DB 136,016,132,008,132,013,134,008,133,048,132,009,131,154,017,133,131,008,132,001,132,011,141,004,132,132,132,010,138,006 DB 131,131,131,131,014,132,005,132,131,132,004,132,005,131,132,131,132,131,002,134,142,136,016,134,002,133,006,133,003,132 DB 006,131,132,004,132,004,136,004,132,003,133,134,004,134,134,003,135,133,003,132,004,131,011,142,004,131,018,131,004,132 DB 143,004,133,134,004,142,131,006,133,018,000 PATTERN_SET_02: DB 136,120,051,051,120,040,040,120,051,120,115,050,114,130,114,034,051,119,056,055 DB 120,040,136,138,168,170,162,161,172,204,204,138,200,034,056,242,241,049,241,049 DB 018,019,054,253 PATTERN_SET_03: DB 136,152,002,134,002,142,131,133,136,152,136,136,152,136,136,136,136,136,152,144 DB 136,152,136,136,152,136,152,002,158,144,136,136,144,160,136,132,132,224,216,136 DB 152,000 PATTERN_SET_08: DB 255,016,048,048,016,024,056,060,030,030,024,120,060,028,028,060,056,124,126,014,060,060,030,062,060,062,127,015,062,062 DB 060,062,031,126,124,252,252,254,127,063,254,254,255,127,063,031,015,015,063,063,255,028,060,120,120,024,030,060,056,120 DB 124,060,124,254,240,124,124,060,124,248,126,062,063,063,127,254,252,127,127,255,254,252,248,240,240,252,252,255,016,048 DB 048,016,024,056,060,030,030,024,120,060,028,028,060,056,124,126,014,060,060,030,062,060,062,127,015,062,062,060,062,031 DB 126,124,252,252,254,127,063,254,254,255,003,007,007,001,001,027,031,031,255,016,024,024,016,048,060,124,248,126,062,063 DB 063,127,254,252,127,127,255,254,252,248,240,240,252,252,255,192,224,224,128,128,216,248,240,140,082,140,000,049,074,010 DB 050,066,066,121,000,121,010,018,050,010,074,049,000,024,008,012,012,008,056,060,030,024,120,120,060,028,060,060,112,126 DB 062,028,060,056,124,124,240,254,124,060,124,120,127,063,063,062,126,248,124,060,255,127,127,252,254,127,255,252,252,240 DB 240,248,252,254,255,012,008,024,024,008,028,060,120,024,030,030,060,056,060,060,014,126,124,056,060,028,062,062,015,127 DB 062,060,062,030,255,254,254,207,127,254,255,063,063,015,015,031,063,127,015,031,019,001,001,007,007,003 PATTERN_SET_09: DB 136,132,035,132,012,137,023,132,013,132,035,132,013,136,132,011,132,022,133,022,132,037,131,008,136,004,132,029,131,016,000 PATTERN_SET_10: DB 170,218,029,244,026 PATTERN_SET_11: DB 136,232,232,152,248,000 PATTERN_SET_04: DB 240,015,016,016,056,056,124,124,254,255,000,001,003,007,012,028,252,240,252,252,248,255,135,195,225,240,248,252,254,056 DB 056,060,062,030,028,060,125,016,024,028,028,030,031,143,143,255,063,031,007,015,031,063,000,128,192,224,240,248,252,254 DB 031,015,003,031,063,127,255,063,031,251,251,241,255,127,031,015,007,000,002,010,042,022,018,021,013,069,051,091,087,091 DB 043,167,175,223,191,127,127,000,064,080,084,218,212,229,245,251,253,254,254,104,072,168,176,162,204,218,234,255,252,224 DB 000,252,248,240,192,000,255,255,252,224,000,255,255,063,007,000,255,063,007,000,063,063,015,007,000,252,252,248,240,224 DB 192,128,000,251,138,144,208,209,229,246,246,223,081,001,003,131,167,111,111,037,173,203,215,255,000,000,001,011,031,063 DB 006,127,011,055,015,191,255,003,031,015,015,007,015,031,063,127,255,255,063,015,003,003,007,015,031,063,127,255,082,218 DB 106,173,255,208,236,240,253,255,000,000,128,192,224,252,096,254,192,248,240,240,224,240,248,252,254,240,255,252,240,192 DB 192,224,240,248,248,252,254,255,007,192,224,240,240,224,192,000,255,127,255,255,135,135,223,255,224,003,007,015,015,007 DB 003,000,255,254,255,255,225,225,251,255,000,082,218,106,173,255,239,199,147,199,239,255,251,241,228,241,251,000,082,218 DB 106,173,000,140,082,140,000,049,074,010,050,066,066,121,000,121,010,018,050,010,074,049,000,080,218,106,170,253,255,000 DB 080,218,106,170,253,255,000,080,218,106,170,253,255,255,000,080,218,106,170,253,000,096,016,009,004,004,098,018,000,008 DB 144,081,082,084,001,065,034,018,009,197,055,031,088,089,209,210,210,246,254,254,000,000,013,031,031,007,119,063,000,124 DB 254,254,255,000,000,062,063,127,255,000,192,224,208,184,031,015,007,007,003,001,000,000,255,255,062,052,000,249,240,000 DB 255,253,126,063,254,248,000,000,252,252,224,000,015,031,063,031,007,001,000,032,112,248,252,248,176,000,007,031,063,063 DB 000,000,064,241,251,063,223,255,000,000,224,240,240,224,248,252,015,031,062,063,024,000,255,127,063,031,031,014,000,000 DB 254,254,252,248,032,000 PATTERN_SET_05: DB 136,136,008,131,006,132,019,131,133,002,131,003,136,001,131,014,134,005,131,002 DB 132,134,004,133,019,133,019,141,007,132,004,132,004,132,133,007,132,007,137,020 DB 132,012,132,004,133,131,009,131,004,132,004,132,004,132,012,133,131,009,131,005 DB 131,008,131,131,005,133,008,131,131,005,133,131,004,138,005,133,005,131,006,133 DB 017,134,005,134,135,005,132,008,131,013,131,033,132,005,131,132,031,134,013,134 DB 025,131,013,131,000 PATTERN_SET_06: DB 023,028,023,026,023,026,060,119,124,058,060,163,172,060,058,172,058,060,163,172 DB 058,172,058,202,058,202,058,060,056,197,017,017,241,060,247,254,254,255,247,254 DB 254,255,247,231,255,255,254,231,255,254,231,247,231,231,119,247,231,247,119,231 DB 247,254,247,231,231,119,254,231,247,231,231,119 PATTERN_SET_07: DB 136,136,152,136,192,144,176,136,192,152,134,002,136,001,143,144,150,003,143,145 DB 135,145,135,144,144,144,134,002,152,208,138,002,132,131,002,131,137,135,002,131 DB 131,001,131,132,003,133,133,131,136,132,001,136,001,141,002,131,132,132,131,002 DB 131,000 PATTERN_SET_12: DB 255,000,063,127,000,252,254,000,255,000,000,159,159,063,127,255,000,255,255,254,254,252,253,253,248,247,207,175,111,247 DB 251,247,255,127,191,223,175,247,239,223,127,063,000,254,252,000,255,254,254,252,252,000,207,159,159,063,063,127,127,000 DB 255,254,254,255,191,191,119,103,175,223,207,127,254,063,127,063,007,007,063,127,255,224,232,252,254,255,224,248,031,063 DB 031,231,031,013,127,127,031,000,032,255,127,035,007,000,000,224,240,048,248,252,254,007,003,000,003,000,016,216,240,252 DB 244,008,189,102,066,066,129,066,102,189,128,064,032,016,008,004,002,001,001,002,004,008,016,032,064,128,129,130,068,072 DB 080,160,204,243,137,137,073,073,042,042,028,008,129,065,034,018,010,005,051,207,207,051,005,010,018,034,065,129,008,028 DB 042,042,073,073,137,137,243,204,160,080,072,068,130,129,000,255,060,004,002,001,000,255,000,128,064,032,120,255,000,255 DB 000,255,030,016,032,064,128,001,002,004,030,255,000,032,120,255,000,255,000,255,030,002,001,128,064,240,255,000,001,002 DB 015,255,000,255,112,064,128,000,255,060,032,064,128,000,000,255,060,008,004,002,001,001,003,015,031,127,255,000,001,003 DB 007,003,015,031,031,025,008,024,025,031,015,006,006,003,002,002,005,005,007,003,001,255,096,096,112,240,248,248,191,031 DB 027,012,014,255,219,219,109,109,255,248,255,254,254,253,197,249,253,253,127,063,029,028,028,063,255,252,240,105,025,027 DB 063,127,255,252,224,000,000,255,248,135,127,127,255,031,255,063,158,188,128,000,128,192,224,224,240,240,112,240,248,240 DB 224,224,192,192,128,000,143,119,143,255,223,159,223,143,255,140,082,140,000,121,010,018,050,010,074,049,000,127,063,031 DB 015,007,003,001,000,255,128,192,224,240,248,252,254,255,000,001,003,007,015,031,063,127,255,254,252,248,240,224,192,128 PATTERN_SET_13: DB 136,002,134,002,134,001,142,006,131,024,134,002,134,002,131,016,134,007,136,136 DB 012,132,003,132,002,131,015,131,004,131,131,002,131,003,136,004,137,067,131,005 DB 131,001,132,005,135,001,133,011,131,003,135,001,137,008,132,004,136,004,131,018 DB 131,134,001,131,132,005,131,003,131,008,131,001,139,016,132,001,132,021,131,009 DB 138,005,132,132,008,132,132,005,135,001,133,004,132,003,133,018,136,024,000 PATTERN_SET_14: DB 030,030,241,161,241,175,175,164,065,074,065,065,241,065,241,241,065,241,021,241,245,245,241,245,241,245,241,245,241,159,031,129 PATTERN_SET_15: DB 255,137,133,131,136,002,135,143,132,002,135,003,134,218,240,168,003,133,159,001,156,132,184,144,144,168,000 SUB_9829: XOR A LD ($7270), A RET SUB_982E: LD A, ($718F) BIT 0, A RET Z LD A, 3 LD ($7271), A LOC_9839: LD A, ($718F) BIT 2, A JR Z, LOC_989A JR LOC_9861 LOC_9842: LD A, ($7271) INC A CP 18H LD ($7271), A JR NZ, LOC_9839 LD A, ($7270) ADD A, 4 CP 20H ; ' ' LD ($7270), A RET NZ CALL SUB_ACD8 LD HL, 718FH SET 1, (HL) RET LOC_9861: CALL SUB_98C0 INC DE INC DE INC DE INC DE CALL GET_VRAM CALL SUB_98D4 LD A, ($7270) LD E, A LD D, 0 ADD HL, DE EX DE, HL LD HL, 7049H LOC_9879: LD IY, 4 LD A, 2 CALL SUB_98E2 CALL GET_VRAM CALL SUB_98F8 LD A, ($7271) SLA A SLA A SLA A LD ($72C6), A XOR A LD ($72C6+1), A JR LOC_9903 LOC_989A: CALL SUB_98C0 INC HL INC HL INC HL INC HL DEC IY DEC IY DEC IY DEC IY CALL GET_VRAM CALL SUB_98D4 LD A, ($7270) SUB 1CH NEG LD E, A LD D, 0 ADD HL, DE EX DE, HL LD HL, 702DH JR LOC_9879 SUB_98C0: CALL SUB_98D4 EX DE, HL LD IY, 20H ; ' ' LD HL, 120H LD ($702B), HL LD HL, 702DH LD A, 2 RET SUB_98D4: LD A, ($7271) LD BC, 20H ; ' ' LD HL, 0 LOC_98DD: ADD HL, BC DEC A JR NZ, LOC_98DD RET SUB_98E2: PUSH HL PUSH IY LD A, 2 LD HL, 1B00H CALL INIT_TABLE LD B, 2 LD C, 6 CALL WRITE_REGISTER POP IY POP HL RET SUB_98F8: PUSH HL LD A, 2 LD HL, 1800H CALL INIT_TABLE POP HL RET LOC_9903: XOR A LD ($72C3), A LD HL, 0 LD ($72C4), HL LD IX, UNK_AADF CALL PUTOBJ JP LOC_9842 SUB_9917: CALL SUB_AA19 CP 1 JR NZ, LOC_9921 JP SUB_AA61 LOC_9921: CALL SUB_9FEF CP 2 JR NZ, LOC_992E LD A, 3 LD ($718C), A RET LOC_992E: LD IY, 7288H PUSH IY CALL SUB_9D79 CALL SUB_994C POP IY BIT 6, (IY+0) RET Z RES 6, (IY+0) LD IX, SOME_OBJECT_DATA_04 JP PUTOBJ SUB_994C: CALL SUB_9F9C LD A, ($7286) CP 1 JR NZ, LOC_9959 JP LOC_9D22 LOC_9959: BIT 7, (IY+0) JR NZ, LOC_9982 CALL SUB_9F79 LD A, ($7283) BIT 0, A JR Z, LOC_9974 LD A, ($7272) CP 0CH JP C, LOC_9DD7 JP LOC_9F42 LOC_9974: LD B, A AND 0AH JR Z, LOC_997C JP LOC_9E8A LOC_997C: BIT 2, B RET Z JP LOC_9EF4 LOC_9982: CALL SUB_9F79 BIT 1, (IY+8) JP Z, LOC_9A55 LD A, ($718F) BIT 0, A JR Z, LOC_99DF LD HL, 7284H INC (HL) LD A, ($7285) OR A JR NZ, LOC_99B0 LD (HL), A LD A, 1 LD ($7285), A SET 6, (IY+0) LD (IX+1), 7FH LD (IX+3), 0C1H RET LOC_99B0: LD A, ($7284) CP 7 RET NZ CALL SUB_9D1C LD A, 1 LD ($7273), A LD ($7275), A BIT 2, (IY+7) JR Z, LOC_99CB LD A, 6 JR LOC_99CD LOC_99CB: LD A, 0F5H LOC_99CD: LD (IX+1), A CALL SUB_A210 LD (IX+3), A XOR A LD ($7284), A SET 6, (IY+0) RET LOC_99DF: XOR A LD ($7285), A BIT 1, (IY+8) JR Z, LOC_9A55 CALL SUB_9F2B LD A, C CP 1 JR NZ, LOC_9A34 LD A, ($7273) OR A JR NZ, LOC_9A23 LD A, 2 LD ($7273), A LD A, (IY+0CH) ADD A, (IX+1) LD (IX+1), A SET 6, (IY+0) CALL SUB_A20A LD (IX+3), A LD A, (IX+1) CALL SUB_A218 AND 1 JR Z, LOC_9A23 RES 6, (IY+0) LD A, 1 LD ($7286), A RET LOC_9A23: LD A, ($7275) OR A RET NZ LD A, 3 LD ($7275), A SET 6, (IY+0) JP LOC_9E5E LOC_9A34: LD A, ($7283) OR A JR NZ, LOC_9A45 LD ($7272), A LD A, 0FFH LD ($71BC), A JP SUB_9E3B LOC_9A45: BIT 0, A JP NZ, LOC_9DD7 BIT 2, A JP NZ, LOC_9EF4 AND 0AH JP NZ, LOC_9E8A RET LOC_9A55: BIT 3, (IY+8) JP Z, LOC_9AEB BIT 4, (IY+0) JR NZ, LOC_9A6C LD A, ($7283) OR A JR NZ, LOC_9A6C SET 4, (IY+0) LOC_9A6C: LD A, ($7280) CP 11H JR NZ, LOC_9A83 SET 5, (IY+0) LD A, 3CH ; '<' LD ($7276), A XOR A LD ($7280), A JP LOC_9D61 LOC_9A83: BIT 5, (IY+0) JR Z, LOC_9AB8 LD HL, 7276H DEC (HL) BIT 4, (IY+0FH) JR Z, LOC_9A96 JP LOC_9D84 LOC_9A96: LD A, ($7276) OR A JP Z, SUB_9E3B BIT 4, (IY+0) RET Z LD A, ($7283) LD B, A OR A RET Z BIT 0, B JP Z, LOC_9E75 LD A, ($7276) CP 30H ; '0' JP NC, LOC_9D84 JP LOC_9DD7 LOC_9AB8: LD A, ($7273) OR A RET NZ LD HL, ($7279) CALL SUB_9E51 LD (IY+0DH), A ADD A, (IX+3) LD (IX+3), A LD A, 3 LD ($7273), A SET 6, (IY+0) LD A, ($7272) CP 24H ; '$' RET C BIT 4, (IY+0) RET Z LD A, ($7283) AND 1 RET Z SET 4, (IY+0FH) RET LOC_9AEB: LD A, (IY+8) AND 38H ; '8' JP Z, LOC_9CF9 BIT 4, (IY+0) JR NZ, LOC_9B05 LD A, ($7283) OR A JR NZ, LOC_9B1A SET 4, (IY+0) JR LOC_9B1A LOC_9B05: LD A, ($727B) OR A JR NZ, LOC_9B1A LD A, ($7283) OR A JR Z, LOC_9B1A LD ($727B), A LD A, ($7272) LD ($727C), A LOC_9B1A: LD A, ($718F) BIT 0, A JR NZ, LOC_9B27 XOR A LD ($7285), A JR LOC_9BA4 LOC_9B27: LD HL, 7284H INC (HL) LD A, ($7285) BIT 0, A JR NZ, LOC_9B4C XOR A LD ($7284), A LD HL, 7285H SET 0, (HL) LD (IX+1), 7FH LD (IX+3), 0C1H SET 6, (IY+0) XOR A LD (IY+0FH), A RET LOC_9B4C: LD A, ($7284) CP 5 JR NZ, LOC_9B9E LD A, 1 LD ($7273), A CALL SUB_9D1C BIT 2, (IY+7) JR Z, LOC_9B69 LD (IX+1), 8 LD A, 1CH JR LOC_9B6F LOC_9B69: LD (IX+1), 0D6H LD A, 0D6H LOC_9B6F: CALL SUB_A210 CP 40H ; '@' JR C, LOC_9B7E SUB 30H ; '0' CP 20H ; ' ' JR C, LOC_9B7E JR LOC_9B80 LOC_9B7E: LD A, 20H ; ' ' LOC_9B80: LD (IX+3), A LD HL, 7285H SET 1, (HL) SET 6, (IY+0) BIT 4, (IY+8) JR Z, LOC_9B98 LD A, 8 LD ($7280), A RET LOC_9B98: LD A, 0EH LD ($7280), A RET LOC_9B9E: LD A, ($7285) BIT 1, A RET Z LOC_9BA4: BIT 5, (IY+0) JP NZ, LOC_9CA7 LD A, ($727B) OR A JR Z, LOC_9BDB LD A, ($727C) LD B, A LD A, ($7272) SUB B CP 3 JR NC, LOC_9BD0 LD A, ($727B) AND 1 JR Z, LOC_9BDB BIT 2, (IY+0FH) JR NZ, LOC_9BDB SET 3, (IY+0FH) JR LOC_9BDB LOC_9BD0: LD A, ($7283) AND 1 JR Z, LOC_9BDB SET 2, (IY+0FH) LOC_9BDB: LD A, ($7273) OR A RET NZ LD A, ($7277) LD ($7273), A LD A, ($7280) BIT 4, (IY+8) JR Z, LOC_9BF7 CP 11H JR NZ, LOC_9BF7 LD (IY+0CH), 0 LOC_9BF7: LD B, A LD A, ($7278) CP B JR NC, LOC_9C03 LD A, B DEC A LD ($7280), A LOC_9C03: LD HL, ($7279) CALL SUB_9E51 LD ($727D), A ADD A, (IX+3) LD C, A CP 0C0H JR NC, LOC_9C37 CALL SUB_A20A CP C JR C, LOC_9C37 JR Z, LOC_9C37 LD A, ($727D) LD (IY+0DH), A CALL SUB_9EE1 SET 6, (IY+0) CALL SUB_A218 AND 0C0H RET Z PUSH IX CALL SUB_A59C POP IX RET LOC_9C37: LD (IY+9), 1 LD (IX+3), A LD A, (IY+0CH) ADD A, (IX+1) LD (IX+1), A CALL SUB_A218 LD B, A AND 1 JR NZ, LOC_9C61 LD A, B AND 0C0H JR Z, LOC_9C6A CP 0C0H JR Z, LOC_9C6A PUSH IX CALL SUB_A59C POP IX JR LOC_9C6A LOC_9C61: LD A, 1 LD ($7286), A XOR A LD ($7280), A LOC_9C6A: BIT 2, (IY+7) JR Z, LOC_9C7E LD A, (IX+1) CP 0F7H JR C, LOC_9C8F JR NZ, LOC_9C8A DEC (IX+1) JR LOC_9C8F LOC_9C7E: LD A, (IX+1) CP 5 JR NC, LOC_9C8F JR Z, LOC_9C8A INC (IX+1) LOC_9C8A: LD (IY+0), 0C0H RET LOC_9C8F: LD (IY+0), 0E0H XOR A LD (IY+0CH), 0 LD (IY+0DH), 0 LD ($7272), A LD A, 4BH ; 'K' LD ($7276), A JP LOC_9D61 LOC_9CA7: BIT 4, (IY+0) JR Z, LOC_9CDC LD HL, 7276H DEC (HL) LD A, ($7272) CP 0CH JR NC, LOC_9CC6 LD A, ($7283) LD B, A AND 1 JP NZ, LOC_9D84 LD A, B OR A JP NZ, LOC_9E75 LOC_9CC6: LD A, ($7276) OR A JP Z, SUB_9E3B LD A, ($7283) LD B, A AND 1 JP NZ, LOC_9DD7 LD A, B OR A JP NZ, LOC_9E75 RET LOC_9CDC: LD A, ($7283) OR A JR Z, LOC_9CE9 AND 1 JR NZ, LOC_9CE9 JP LOC_9E75 LOC_9CE9: LD A, 0BH LD ($7272), A LD A, 1 LD ($7276), A LD (IY+0FH), 0 RET DB 0C9H LOC_9CF9: LD A, (IY+8) LD B, A AND 40H ; '@' RET Z LD A, ($7283) AND 1 JP NZ, LOC_9F42 LD A, ($7283) AND 4 RET NZ LD (IY+0), 0 LD A, (IX+3) ADD A, 0F0H LD (IX+3), A JR LOC_9D61 SUB_9D1C: LD HL, 718FH SET 4, (HL) RET LOC_9D22: XOR A LD ($7286), A JP SUB_AA61 DB 0CDH DB 52H ; R DB 0A2H DB 3AH ; : DB 99H DB 72H ; R DB 0C6H DB 0D8H DB 32H ; 2 DB 99H DB 72H ; R DB 0CDH DB 10H DB 0A2H DB 0C6H DB 10H DB 32H ; 2 DB 9BH DB 72H ; R DB 3EH ; > DB 0EH DB 32H ; 2 DB 98H DB 72H ; R DB 0DDH DB 21H ; ! DB 85H DB 0A0H DB 0CDH DB 0FAH DB 1FH DB 0CDH DB 2FH ; / DB 0A2H DB 3EH ; > DB 7FH ;  DB 32H ; 2 DB 99H DB 72H ; R DB 3EH ; > DB 0C1H DB 32H ; 2 DB 9BH DB 72H ; R DB 0DDH DB 21H ; ! DB 85H DB 0A0H DB 3EH ; > DB 2 DB 32H ; 2 DB 8CH DB 71H ; Q DB 0C3H DB 0FAH DB 1FH LOC_9D61: SET 6, (IY+0) BIT 2, (IY+7) JR Z, LOC_9D72 LD (IY+6), 0 JP LOC_9E5E LOC_9D72: LD (IY+6), 7 JP LOC_9E5E SUB_9D79: LD HL, 7272H INC (HL) INC HL DEC (HL) INC HL DEC (HL) INC HL DEC (HL) RET LOC_9D84: CALL SUB_9E28 LD (IY+0), 0C0H LD (IY+8), 20H ; ' ' XOR A LD (IY+0FH), A LD ($727B), A LD ($7272), A LD ($7280), A LD A, 1FH LD ($7278), A LD A, 2 LD ($7277), A LD ($7273), A LD HL, UNK_9FCE LD ($7279), HL CALL SUB_9E51 LD (IY+0DH), A ADD A, (IX+3) LD (IX+3), A BIT 1, (IY+7) JR Z, LOC_9DCC LD (IY+0CH), 0FEH LD (IY+6), 0BH JP LOC_9E5E LOC_9DCC: LD (IY+0CH), 2 LD (IY+6), 0AH JP LOC_9E5E LOC_9DD7: CALL SUB_9E28 LD (IY+0), 0C0H LD (IY+8), 10H XOR A LD (IY+0FH), A LD ($727B), A LD ($7272), A LD ($7280), A LD A, 11H LD ($7278), A LD A, 2 LD ($7277), A LD ($7273), A LD HL, 9FBCH LD ($7279), HL CALL SUB_9E51 LD (IY+0DH), A ADD A, (IX+3) LD (IX+3), A BIT 1, (IY+7) JR Z, LOC_9E1E LD (IY+0CH), 0FEH LD (IY+6), 0BH JR LOC_9E5E LOC_9E1E: LD (IY+0CH), 2 LD (IY+6), 0AH JR LOC_9E5E SUB_9E28: PUSH IX PUSH IY LD B, 0AH CALL PLAY_IT LD B, 0BH CALL PLAY_IT POP IY POP IX RET SUB_9E3B: XOR A LD (IY+0), A LD (IY+0CH), A LD (IY+0DH), A LD (IY+8), A LD A, (IY+9) AND 7 LD (IY+9), A RET SUB_9E51: LD A, ($7280) LD C, A INC A LD ($7280), A LD B, 0 ADD HL, BC LD A, (HL) RET LOC_9E5E: LD C, (IY+6) LD B, 0 LD L, (IY+4) LD H, (IY+5) ADD HL, BC ADD HL, BC LD A, (HL) LD (IX+0), A INC HL LD A, (HL) LD (IY+6), A RET LOC_9E75: LD A, ($7283) SRL A JP Z, LOC_9F42 SRL A JR Z, LOC_9E8A SRL A JR Z, LOC_9EF4 SRL A JR Z, LOC_9E8A RET LOC_9E8A: PUSH IX PUSH IY LD B, 6 CALL PLAY_IT POP IY POP IX LD (IY+0), 80H LD (IY+8), 2 XOR A LD (IY+0FH), A LD A, 1 LD ($7273), A LD A, 3 LD ($7275), A LD A, ($7283) BIT 3, A JR Z, LOC_9EC2 LD (IY+7), 2 LD (IY+0CH), 0FEH LD (IY+6), 7 JR LOC_9E5E LOC_9EC2: LD (IY+7), 4 LD (IY+0CH), 2 LD (IY+6), 0 JR LOC_9E5E DB 0C9H DB 3AH ; : DB 82H DB 72H ; R DB 4FH ; O DB 3CH ; < DB 32H ; 2 DB 82H DB 72H ; R DB 6 DB 0 DB 9 DB 7EH ; ~ DB 32H ; 2 DB 73H ; S DB 72H ; R DB 0C9H SUB_9EE1: LD A, (IY+0CH) ADD A, (IX+1) LD (IX+1), A LD A, (IY+0DH) ADD A, (IX+3) LD (IX+3), A RET LOC_9EF4: LD A, ($71F3) CP 7 JR NZ, LOC_9F06 LD A, ($7299) CALL SUB_A218 AND 0FH CP 6 RET Z LOC_9F06: LD A, (IX+3) ADD A, 10H LD (IX+3), A LD A, 5AH ; 'Z' LD ($7274), A LD (IY+8), 40H ; '@' LD (IY+0), 0C0H BIT 2, (IY+7) JR Z, LOC_9F26 LD (IX+0), 0CH RET LOC_9F26: LD (IX+0), 0DH RET SUB_9F2B: LD A, ($7283) LD C, 0 BIT 1, (IY+7) JR Z, LOC_9F3C BIT 3, A RET Z LD C, 1 RET LOC_9F3C: BIT 1, A RET Z LD C, 1 RET LOC_9F42: CALL SUB_9E28 XOR A LD (IY+0FH), A LD ($7272), A LD ($7280), A LD (IY+0CH), A LD (IY+0), 0C0H LD (IY+8), 8 LD A, 3 LD ($7273), A LD HL, UNK_9FAB LD ($7279), HL BIT 2, (IY+7) JR Z, LOC_9F72 LD (IY+6), 0AH JP LOC_9E5E LOC_9F72: LD (IY+6), 0BH JP LOC_9E5E SUB_9F79: LD HL, 0 LD A, ($71F0) OR A JR Z, LOC_9F84 LD H, 1 LOC_9F84: CALL DECODER LD A, L LD ($7283), A RET SUB_9F8C: CALL READ_REGISTER LOC_9F8F: CALL READ_REGISTER LD ($7281), A BIT 7, A JR NZ, LOCRET_9F9B JR LOC_9F8F LOCRET_9F9B: RET SUB_9F9C: LD L, (IY+1) LD H, (IY+2) INC HL INC HL LD E, (HL) INC HL LD D, (HL) PUSH DE POP IX RET UNK_9FAB: DB 0F9H DB 0FAH DB 0FBH DB 0FCH DB 0FCH DB 0FDH DB 0FEH DB 0FFH DB 0 DB 1 DB 2 DB 3 DB 4 DB 4 DB 5 DB 6 DB 7 DB 0F5H DB 0F9H DB 0FBH DB 0FDH DB 0FDH DB 0FEH DB 0FEH DB 0FFH DB 0 DB 1 DB 2 DB 3 DB 3 DB 3 DB 6 DB 0AH DB 0AH DB 0AH UNK_9FCE: DB 0FBH DB 0FBH DB 0FBH DB 0FBH DB 0FCH DB 0FCH DB 0FCH DB 0FDH DB 0FDH DB 0FDH DB 0FEH DB 0FEH DB 0FFH DB 0FFH DB 1 DB 1 DB 2 DB 2 DB 3 DB 3 DB 3 DB 4 DB 4 DB 4 DB 5 DB 5 DB 5 DB 5 DB 6 DB 6 DB 6 DB 6 DB 6 SUB_9FEF: LD B, 0 LD A, ($71F3) CP 7 JR Z, LOC_9FFA JR LOC_A00A LOC_9FFA: LD A, ($7299) CP 0D8H JR C, LOC_A00A LD A, ($7299) CP 0F0H JR NC, LOC_A00A LD B, 2 LOC_A00A: LD A, B RET SUB_A00C: LD HL, 7288H LD DE, 7289H LD BC, 14H LD (HL), 0 LDIR LD IY, 7288H LD IX, 7298H LD HL, SOME_OBJECT_DATA_04 LD (IY+1), L LD (IY+2), H LD HL, TABLE_CONTROL_DATA_04 LD (IY+4), L LD (IY+5), H LD (IY+7), 4 LD L, (IY+1) LD H, (IY+2) OR A CALL ACTIVATE LD A, 10H LOC_A043: LD (IX+1), A CALL SUB_A210 LD (IX+3), A CALL SUB_A218 AND 1 JR Z, LOC_A05A LD A, 8 ADD A, (IX+1) JR LOC_A043 LOC_A05A: INC (IX+1) CALL SUB_A68A LD IX, SOME_OBJECT_DATA_04 JP PUTOBJ TABLE_CONTROL_DATA_04: DB 000,001,001,002,002,003,003,004 DB 004,000,005,006,006,007,007,008 DB 008,009,009,005,010,010,011,011 DB 012,012,013,013,014,014 SOME_OBJECT_DATA_04: DB 145, 160, 152, 114, 066, 161, 112, 161 DB 158, 161, 204, 161, 068, 206, 160, 010 DB 161, 210, 160, 018, 161, 214, 160, 010 DB 161, 218, 160, 026, 161, 222, 160, 026 DB 161, 226, 160, 010, 161, 230, 160, 018 DB 161, 234, 160, 010, 161, 238, 160, 026 DB 161, 242, 160, 026, 161, 246, 160, 034 DB 161, 250, 160, 034, 161, 254, 160, 042 DB 161, 002, 161, 050, 161, 006, 161, 058 DB 161, 000, 000, 000, 000, 001, 001, 001 DB 001, 002, 002, 002, 002, 003, 003, 003 DB 003, 004, 004, 004, 004, 005, 005, 005 DB 005, 006, 006, 006, 006, 007, 007, 007 DB 007, 008, 008, 008, 008, 009, 009, 009 DB 009, 010, 010, 010, 010, 011, 011, 011 DB 011, 012, 012, 012, 012, 013, 013, 013 DB 013, 014, 014, 014, 014, 000, 000, 000 DB 008, 000, 016, 000, 008, 000, 000, 000 DB 009, 000, 016, 000, 009, 000, 000, 000 DB 007, 000, 016, 000, 007, 000, 000, 000 DB 008, 000, 016, 000, 008, 000, 000, 016 DB 000, 000, 000, 016, 000, 016, 000, 000 DB 000, 016, 000, 000, 000, 000, 000, 008 DB 000, 016, 000, 008, 000, 071, 161, 157 DB 114, 000, 003, 000, 025, 167, 156, 078 DB 161, 015, 000, 015, 016, 015, 000, 015 DB 040, 015, 040, 015, 096, 015, 112, 015 DB 096, 015, 136, 015, 136, 015, 064, 015 DB 160, 015, 080, 015, 176, 015, 112, 015 DB 112, 015, 128, 117, 161, 163, 114, 001 DB 003, 000, 025, 167, 156, 124, 161, 004 DB 004, 004, 020, 004, 032, 004, 044, 004 DB 056, 004, 100, 004, 116, 004, 128, 004 DB 140, 004, 152, 004, 068, 004, 164, 015 DB 084, 015, 180, 004, 116, 004, 116, 004 DB 132, 163, 161, 169, 114, 002, 003, 000 DB 025, 167, 156, 170, 161, 015, 008, 015 DB 024, 015, 036, 015, 048, 015, 060, 015 DB 104, 015, 120, 015, 132, 015, 144, 015 DB 156, 015, 072, 015, 168, 004, 088, 004 DB 184, 015, 120, 004, 120, 004, 136, 209 DB 161, 175, 114, 015, 003, 000, 025, 167 DB 156, 216, 161, 001, 012, 001, 028, 001 DB 012, 001, 052, 001, 052, 001, 108, 001 DB 124, 001, 108, 001, 148, 001, 148, 001 DB 076, 001, 172, 004, 092, 004, 188, 004 DB 124, 004, 124, 004, 140, 221, 033, 133 DB 160, 175, 050, 153, 114, 062, 193, 050 DB 155, 114, 195, 250, 031 SUB_A20A: LD A, ($7299) CALL SUB_A23D SUB_A210: CALL SUB_A223 INC HL LD A, (HL) SUB 20H ; ' ' RET SUB_A218: LD A, ($7299) CALL SUB_A23D CALL SUB_A223 LD A, (HL) RET SUB_A223: RRCA RRCA AND 3EH ; '>' LD E, A LD D, 0 LD HL, 720EH ADD HL, DE RET DB 1EH DB 2 DB 21H ; ! DB 0FFH DB 0FFH DB 2BH ; + DB 7DH ; } DB 0B4H DB 20H DB 0FBH DB 1DH DB 20H DB 0F5H DB 0C9H SUB_A23D: PUSH AF LD A, ($728F) BIT 1, A JR NZ, LOC_A24B POP AF ADD A, 0BH JR C, LOC_A24F RET LOC_A24B: POP AF ADD A, 4 RET LOC_A24F: LD A, 0FFH RET SUB_A252: LD DE, 0 LD HL, 60H ; '`' CALL SUB_A27B LD HL, 80H LD DE, 60H ; '`' CALL SUB_A27B LD HL, 70H ; 'P' LD ($72BB), HL LD DE, 80H CALL SUB_A27B LD B, 4 LD HL, UNK_A284 LD ($72BD), HL JP LOC_A6B2 SUB_A27B: LD A, 1 LD BC, 10H CALL ROTATE_90 RET UNK_A284: DB 001,003,000,002 SUB_A288: LD HL, ($6C) LD DE, 0E0H LD IY, 0AH LD A, 3 CALL PUT_VRAM LD HL, ($8006) LD A, 90H LD B, 10H LOC_A29E: LD (HL), A INC HL DJNZ LOC_A29E LD B, 5 LD DE, 0E0H LOC_A2A7: PUSH BC PUSH DE LD HL, ($8006) LD IY, 2 LD A, 4 CALL PUT_VRAM POP DE POP BC INC DE INC DE DJNZ LOC_A2A7 LD HL, UNK_A5F6 LD DE, 0EAH LD B, 8 LOC_A2C3: PUSH BC LD C, (HL) LD B, 0 PUSH HL LD HL, ($6A) ADD HL, BC LD IY, 1 LD A, 3 PUSH DE CALL PUT_VRAM POP DE POP HL INC HL INC DE POP BC DJNZ LOC_A2C3 LD B, 9 LD DE, 0EAH LOC_A2E2: PUSH BC LD HL, ($8006) LD A, 4 LD IY, 1 PUSH DE CALL PUT_VRAM POP DE INC DE POP BC DJNZ LOC_A2E2 CALL SUB_A539 CALL SUB_A55F CALL SUB_A4D8 CALL SUB_A57C CALL SUB_A515 LD HL, UNK_A5FE LD DE, 72C4H LD BC, 4 LDIR LD HL, UNK_A602 LD DE, 702BH LD BC, 8 LDIR LD IX, UNK_AADF CALL PUTOBJ XOR A LD ($72B7), A LD HL, UNK_A612 LD DE, 72C4H LD BC, 4 LDIR LD HL, UNK_A60A LD DE, 702BH LD BC, 8 LDIR LD IX, UNK_AADF CALL PUTOBJ LD HL, UNK_A616 LD DE, 72C4H LD BC, 4 LDIR LD B, 0E1H LD A, ($71F0) OR A JR Z, LOC_A356 INC B LOC_A356: LD HL, 702BH LD (HL), 1 INC HL LD (HL), 1 INC HL LD (HL), B LD IX, UNK_AADF CALL PUTOBJ LD DE, $E800 CALL SUB_A3F0 LD HL, 702BH LD (HL), 2 INC HL LD (HL), 1 INC HL LD (HL), 0E0H INC HL LD (HL), 0E0H LD IX, UNK_AADF CALL PUTOBJ LD IX, ($718D) LD A, (IX+0) OR (IX+1) JP NZ, LOC_A400 SUB_A38F: LD IX, ($718D) LD B, (IX+3) LD A, ($72B8) CP B JP NZ, SUB_A515 LD L, (IX+0) LD H, (IX+1) LD DE, ($72B5) LD A, L CP E JR NZ, LOC_A400 LD A, H CP D JR NZ, LOC_A400 LD IX, ($718D) LD B, (IX+2) LD A, ($72B7) CP B JR NZ, LOC_A3BD RET LOC_A3BD: LD A, (IX+2) LD C, A LD ($72B7), A LD A, 0FFH LD B, 10H LD HL, 702BH LD (HL), 10H INC HL LD (HL), 1 INC HL LOC_A3D1: LD (HL), A INC HL DJNZ LOC_A3D1 XOR A CP C JR Z, LOC_A3E3 LD B, C LD HL, 702DH LD A, 0F8H LOC_A3DF: LD (HL), A INC HL DJNZ LOC_A3DF LOC_A3E3: LD DE, 8010H CALL SUB_A3F0 LD IX, UNK_AADF JP PUTOBJ SUB_A3F0: LD HL, 72C3H LD (HL), 0 INC HL LD (HL), D INC HL LD (HL), 0 INC HL LD (HL), E INC HL LD (HL), 0 RET LOC_A400: LD IX, ($718D) LD H, (IX+1) LD L, (IX+0) LD ($72B5), HL CALL SUB_A441 LD HL, 702BH LD (HL), 5 INC HL LD (HL), 1 LD HL, 72C4H LD (HL), 0C0H INC HL INC HL LD (HL), 0 CALL SUB_A42B LD IX, UNK_AADF JP PUTOBJ SUB_A42B: LD A, 0E0H LD HL, 702DH LD B, 4 LOC_A432: CPI RET NZ PUSH HL POP IX DEC IX LD (IX+0), 0FFH DJNZ LOC_A432 RET SUB_A441: PUSH HL POP DE LD IX, 702DH LD (IX+0), 0E0H LD (IX+1), 0E0H LD (IX+2), 0E0H LD (IX+3), 0E0H LD (IX+4), 0E0H LD A, 0A7H CP H RET C JR NZ, LOC_A465 LD A, 0FH CP L RET C LOC_A465: LD BC, 2710H OR A SBC HL, BC JR NC, LOC_A48F PUSH DE POP HL LD BC, 3E8H OR A SBC HL, BC JR NC, LOC_A4A0 PUSH DE POP HL LD BC, 64H ; 'D' OR A SBC HL, BC JR NC, LOC_A4B1 PUSH DE POP HL LD BC, 0AH OR A SBC HL, BC JR NC, LOC_A4C2 PUSH DE POP HL JR LOC_A4D0 LOC_A48F: PUSH DE POP HL JR LOC_A498 LOC_A493: PUSH HL POP DE INC (IX+0) LOC_A498: OR A SBC HL, BC JR NC, LOC_A493 LD BC, 3E8H LOC_A4A0: PUSH DE POP HL JR LOC_A4A9 LOC_A4A4: PUSH HL POP DE INC (IX+1) LOC_A4A9: OR A SBC HL, BC JR NC, LOC_A4A4 LD BC, 64H ; 'D' LOC_A4B1: PUSH DE POP HL JR LOC_A4BA LOC_A4B5: PUSH HL POP DE INC (IX+2) LOC_A4BA: OR A SBC HL, BC JR NC, LOC_A4B5 LD BC, 0AH LOC_A4C2: PUSH DE POP HL JR LOC_A4CB LOC_A4C6: PUSH HL POP DE INC (IX+3) LOC_A4CB: OR A SBC HL, BC JR NC, LOC_A4C6 LOC_A4D0: LD A, E ADD A, (IX+4) LD (IX+4), A RET SUB_A4D8: LD HL, 72C3H LD (HL), 0 LD HL, 702BH LD (HL), 20H ; ' ' INC HL LD (HL), 1 INC HL LD B, 20H ; ' ' LD A, 0FFH LOC_A4EA: LD (HL), A INC HL DJNZ LOC_A4EA LD DE, 0 CALL SUB_A3F0 LD IX, UNK_AADF PUSH IX CALL PUTOBJ POP IX LD DE, 8 CALL SUB_A3F0 PUSH IX CALL PUTOBJ POP IX LD DE, 10H CALL SUB_A3F0 JP PUTOBJ SUB_A515: LD DE, 3008H CALL SUB_A3F0 LD HL, 702BH LD (HL), 1 INC HL LD (HL), 1 INC HL LD IX, ($718D) LD B, 0E0H LD A, (IX+3) LD ($72B8), A ADD A, B LD (HL), A LD IX, UNK_AADF JP PUTOBJ SUB_A539: LD HL, ($8006) XOR A LD B, 8 LOC_A53F: LD (HL), A INC HL DJNZ LOC_A53F LD HL, ($8006) LD DE, 0FFH LD A, 3 LD IY, 1 PUSH HL PUSH DE PUSH IY CALL PUT_VRAM POP IY POP DE POP HL LD A, 4 JP PUT_VRAM SUB_A55F: LD HL, UNK_A61A LD DE, 0F2H LD A, 3 PUSH DE LD IY, 0BH PUSH IY CALL PUT_VRAM POP IY POP DE LD HL, UNK_A652 LD A, 4 JP PUT_VRAM SUB_A57C: LD DE, 800H CALL SUB_A3F0 LD HL, 702BH LD (HL), 7 INC HL LD (HL), 3 INC HL LD E, L LD D, H LD HL, UNK_A5E1 LD BC, 15H LDIR LD IX, UNK_AADF JP PUTOBJ SUB_A59C: LD B, A LD A, ($728F) BIT 1, A JR NZ, LOC_A5C7 LD A, B LD IX, ($718D) AND 0C0H CP 0C0H RET Z BIT 7, A JR NZ, LOC_A5B7 LD DE, 3 JR LOC_A5BA LOC_A5B7: LD DE, 2 LOC_A5BA: LD H, (IX+1) LD L, (IX+0) ADD HL, DE LD (IX+1), H LD (IX+0), L LOC_A5C7: LD A, ($7299) CALL SUB_A23D SRL A SRL A SRL A SLA A LD E, A LD D, 0 LD HL, 720EH ADD HL, DE LD A, (HL) OR 0C0H LD (HL), A RET UNK_A5E1: DB 0FFH DB 0FFH DB 0F2H DB 0F3H DB 0FFH DB 0FFH DB 0FFH DB 0FFH DB 0FFH DB 0F4H DB 0F5H DB 0FFH DB 0FFH DB 0FFH DB 0FFH DB 0FFH DB 0F6H DB 0F7H DB 0FFH DB 0FFH DB 0FFH UNK_A5F6: DB 20H DB 68H ; H DB 88H DB 30H ; 0 DB 0C0H DB 78H ; X DB 58H ; X DB 0 UNK_A5FE: DB 48H ; H DB 0 DB 10H DB 0 UNK_A602: DB 6 DB 1 DB 0EAH DB 0EBH DB 0EAH DB 0ECH DB 0EDH DB 0EEH UNK_A60A: DB 6 DB 1 DB 0EFH DB 0F0H DB 0F1H DB 0EEH DB 0EAH DB 0ECH UNK_A612: DB 70H ; P DB 0 DB 0 DB 0 UNK_A616: DB 0A8H DB 0 DB 0 DB 0 UNK_A61A: ; GRAPHICS DATA DB 0 DB 0 DB 0 DB 0 DB 3 DB 0FH DB 3FH ; ? DB 7FH ;  DB 0 DB 0 DB 0 DB 0 DB 0C0H DB 0F0H DB 0FCH DB 0FEH DB 7FH ;  DB 7FH ;  DB 0FFH DB 0FFH DB 0FFH DB 0FEH DB 0F8H DB 7FH ;  DB 0FEH DB 0BCH DB 80H DB 80H DB 0F0H DB 0F0H DB 0D0H DB 0B6H DB 0FDH DB 8CH DB 0DCH DB 77H ; W DB 0 DB 0 DB 0 DB 0 DB 0FFH DB 0FEH DB 78H ; X DB 0F0H DB 0 DB 0 DB 0 DB 0 DB 3 DB 1 DB 0 DB 0 DB 1 DB 3 DB 0FFH DB 0FFH UNK_A652: ; GRAPHICS DATA DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 0F4H DB 0F4H DB 41H ; A DB 0F1H DB 0F1H DB 0F1H DB 0F1H DB 41H ; A DB 0F1H DB 0F1H DB 41H ; A DB 41H ; A DB 41H ; A DB 41H ; A DB 41H ; A DB 41H ; A DB 41H ; A DB 41H ; A DB 41H ; A DB 41H ; A DB 41H ; A DB 41H ; A DB 41H ; A DB 41H ; A DB 41H ; A DB 41H ; A DB 41H ; A DB 18H DB 18H DB 18H DB 18H DB 18H DB 18H DB 18H DB 18H SUB_A68A: LD A, 1 LD DE, 0 LD IY, 60H LD HL, SMURF_HEAD CALL PUT_VRAM LD A, 1 LD DE, 0 LD HL, 60H LD ($72BB), HL LD BC, 60H CALL REFLECT_VERTICAL LD HL, UNK_A709 LD ($72BD), HL LD B, 18H LOC_A6B2: PUSH BC LD HL, ($8006) LD ($72B9), HL LD IX, ($72BD) LD A, 1 LD IY, 4 LD DE, ($72BB) PUSH IX CALL GET_VRAM POP IX LD B, 4 LOC_A6D0: PUSH BC LD L, (IX+0) LD H, 0 LD DE, ($72BB) ADD HL, DE EX DE, HL LD HL, ($72B9) LD IY, 1 LD A, 1 PUSH IX CALL PUT_VRAM POP IX LD BC, 8 LD HL, ($72B9) ADD HL, BC LD ($72B9), HL INC IX POP BC DJNZ LOC_A6D0 LD HL, ($72BB) LD BC, 4 ADD HL, BC LD ($72BB), HL POP BC DJNZ LOC_A6B2 RET UNK_A709: DB 2 DB 3 DB 0 DB 1 DB 0 DB 1CH DB 80H DB 0 DB 0BFH DB 72H ; R DB 0 DB 38H ; 8 DB 0 DB 8 DB 19H DB 0A7H SMURF_HEAD: DB 000, 003, 015, 063, 127, 127, 255, 255 DB 254, 252, 136, 000, 000, 000, 000, 000 DB 000, 240, 252, 254, 254, 220, 192, 224 DB 000, 048, 096, 064, 000, 000, 000, 000 DB 001, 003, 119, 221, 204, 108, 063, 003 DB 063, 127, 227, 243, 225, 032, 000, 000 DB 240, 198, 143, 159, 254, 120, 244, 135 DB 207, 231, 254, 252, 224, 224, 000, 000 DB 000, 000, 000, 004, 014, 015, 015, 007 DB 007, 207, 254, 252, 240, 112, 120, 060 DB 000, 000, 000, 000, 000, 000, 224, 224 DB 243, 119, 119, 127, 062, 062, 060, 056 DB 000, 000, 000, 034, 051, 019, 000, 000 DB 000, 000, 000, 000, 000, 000, 000, 000 DB 000, 000, 016, 032, 000, 128, 000, 000 DB 000, 000, 000, 000, 000, 000, 000, 000 DB 000, 000, 000, 003, 015, 063, 127, 127 DB 255, 255, 254, 252, 136, 000, 000, 000 DB 000, 000, 000, 240, 252, 254, 254, 220 DB 192, 224, 000, 048, 096, 064, 000, 000 DB 000, 001, 003, 119, 221, 204, 108, 063 DB 003, 015, 063, 123, 227, 241, 224, 032 DB 000, 240, 198, 143, 159, 254, 120, 240 DB 128, 192, 228, 231, 254, 254, 224, 000 DB 000, 000, 000, 000, 000, 004, 014, 015 DB 015, 199, 231, 255, 254, 224, 240, 112 DB 000, 000, 000, 000, 000, 000, 000, 000 DB 224, 224, 240, 112, 112, 126, 255, 255 DB 000, 000, 000, 000, 034, 051, 019, 000 DB 000, 000, 000, 000, 000, 000, 000, 000 DB 000, 000, 000, 016, 032, 000, 128, 000 DB 000, 000, 000, 000, 000, 000, 000, 000 DB 001, 003, 119, 221, 204, 108, 063, 003 DB 015, 031, 059, 115, 121, 060, 056, 008 DB 240, 198, 143, 159, 254, 120, 240, 128 DB 192, 192, 224, 232, 238, 252, 028, 000 DB 000, 000, 000, 004, 006, 003, 007, 055 DB 127, 255, 231, 224, 224, 193, 003, 003 DB 000, 000, 000, 000, 000, 000, 224, 240 DB 240, 112, 112, 112, 224, 248, 252, 252 DB 003, 015, 063, 127, 127, 255, 255, 254 DB 252, 136, 000, 000, 000, 000, 000, 000 DB 240, 252, 254, 254, 220, 192, 224, 000 DB 048, 096, 064, 000, 000, 000, 000, 000 DB 001, 003, 119, 221, 204, 108, 063, 003 DB 003, 007, 015, 031, 031, 031, 015, 007 DB 240, 198, 143, 159, 254, 120, 240, 128 DB 192, 192, 224, 224, 224, 248, 208, 144 DB 000, 000, 000, 000, 000, 000, 008, 063 DB 063, 063, 059, 059, 051, 007, 015, 015 DB 000, 000, 000, 000, 000, 032, 096, 224 DB 240, 240, 224, 128, 128, 224, 240, 240 DB 000, 000, 000, 034, 051, 019, 000, 000 DB 000, 000, 000, 000, 000, 000, 000, 000 DB 000, 000, 016, 032, 000, 128, 000, 000 DB 000, 000, 000, 000, 000, 000, 000, 000 DB 001, 003, 119, 221, 204, 108, 063, 003 DB 003, 007, 015, 031, 027, 001, 000, 000 DB 240, 198, 143, 015, 254, 120, 240, 128 DB 192, 192, 224, 232, 239, 254, 254, 000 DB 000, 000, 000, 004, 014, 015, 015, 007 DB 007, 007, 015, 030, 060, 062, 031, 015 DB 000, 000, 000, 000, 000, 000, 252, 254 DB 254, 028, 120, 254, 255, 031, 128, 128 DB 000, 003, 015, 063, 127, 127, 255, 255 DB 254, 252, 136, 000, 000, 000, 000, 000 DB 000, 240, 252, 254, 254, 220, 192, 224 DB 000, 048, 096, 064, 000, 000, 000, 000 DB 001, 003, 119, 221, 204, 108, 063, 003 DB 127, 255, 207, 223, 255, 254, 224, 032 DB 240, 198, 143, 159, 254, 120, 244, 135 DB 135, 143, 198, 238, 124, 056, 000, 000 DB 000, 000, 000, 000, 000, 001, 031, 031 DB 063, 001, 007, 031, 031, 015, 007, 001 DB 000, 000, 000, 000, 000, 000, 128, 224 DB 240, 240, 224, 192, 128, 192, 224, 224 DB 000, 000, 000, 034, 051, 019, 000, 000 DB 000, 000, 000, 000, 000, 000, 000, 000 DB 000, 000, 016, 032, 000, 128, 000, 000 DB 000, 000, 000, 000, 000, 000, 000, 000 DB 000, 000, 000, 032, 112, 112, 124, 126 DB 126, 062, 031, 015, 013, 030, 063, 063 DB 001, 007, 015, 031, 031, 063, 063, 031 DB 031, 030, 156, 224, 128, 192, 192, 224 DB 252, 255, 255, 255, 239, 224, 252, 192 DB 156, 024, 016, 000, 000, 000, 000, 000 DB 000, 000, 128, 128, 000, 000, 000, 000 DB 000, 000, 000, 000, 000, 000, 000, 000 DB 024, 028, 024, 220, 142, 015, 003, 001 DB 001, 001, 000, 000, 000, 000, 000, 000 DB 000, 000, 000, 000, 128, 192, 192, 224 DB 224, 225, 099, 031, 063, 035, 055, 028 DB 000, 000, 000, 000, 000, 000, 000, 060 DB 096, 225, 231, 127, 063, 030, 252, 000 DB 000, 000, 000, 000, 000, 000, 000, 000 DB 000, 128, 192, 192, 128, 000, 000, 000 SUB_AA19: LD IY, 7298H LD IX, 72CBH BIT 3, (IX+6) JR NZ, LOC_AA29 XOR A RET LOC_AA29: LD A, (IY+1) CP (IX+1) JR NC, LOC_AA3A ADD A, 0CH CP (IX+1) JR NC, LOC_AA44 JR LOC_AA5C LOC_AA3A: LD A, (IY+1) ADD A, 0FCH CP (IX+1) JR NC, LOC_AA5C LOC_AA44: LD A, (IY+3) CP (IX+3) JR NC, LOC_AA55 ADD A, 10H CP (IX+3) JR NC, LOC_AA5E JR LOC_AA5C LOC_AA55: ADD A, 0F0H CP (IX+3) JR C, LOC_AA5E LOC_AA5C: XOR A RET LOC_AA5E: LD A, 1 RET SUB_AA61: LD B, 9 LD HL, SOUND_DATA CALL SOUND_INIT LD B, 0EH CALL PLAY_IT LD B, 0FH CALL PLAY_IT LD B, 10H CALL PLAY_IT LD IY, 7288H CALL SUB_9E3B CALL SUB_A252 LD A, 0EH LD ($7298), A LD A, ($7299) LD B, A BIT 7, A JR Z, LOC_AA96 ADD A, 0F0H LD ($7299), A JR LOC_AAA3 LOC_AA96: CP 22H ; '"' JR C, LOC_AA9E ADD A, 0F0H JR LOC_AAA0 LOC_AA9E: LD A, 22H ; '"' LOC_AAA0: LD ($7299), A LOC_AAA3: LD A, B CALL SUB_A210 ADD A, 10H LD ($729B), A LD IX, SOME_OBJECT_DATA_04 CALL PUTOBJ LD A, 2 LD ($718C), A LD B, 3CH ; '<' LOC_AABA: PUSH BC CALL PLAY_SONGS CALL SOUND_MAN LD BC, 1 LD HL, 76CH LOC_AAC7: SBC HL, BC JR NZ, LOC_AAC7 POP BC DJNZ LOC_AABA SUB_AACE: LD A, 7FH LD ($7299), A LD A, 0C1H LD ($729B), A LD IX, SOME_OBJECT_DATA_04 JP PUTOBJ UNK_AADF: ; GRAPHICS DATA DB 0E5H DB 0AAH DB 0C3H DB 72H ; R DB 1 DB 80H DB 0E0H DB 0 DB 0 DB 0 DB 0 DB 2BH ; + DB 70H ; P SUB_AAEC: LD A, (HL) LD ($72C9), A PUSH HL LD HL, UNK_AADF OR A CALL ACTIVATE LD HL, 72C3H LD (HL), 0 POP HL INC HL PUSH HL LOC_AB00: LD HL, 72C9H DEC (HL) JP M, LOC_AB21 POP HL LD DE, 72C4H LD BC, 4 LDIR PUSH HL CALL SUB_8DB2 CALL SUB_AB2C CALL SUB_AC24 POP HL INC HL INC HL PUSH HL JP LOC_AB00 LOC_AB21: POP HL CALL SUB_AB30 CALL SUB_ABB6 CALL SUB_AC43 RET SUB_AB2C: LD DE, 702BH JP (HL) SUB_AB30: LD A, ($71F3) CP 4 RET NZ LD HL, 71F9H BIT 3, (HL) JR NZ, LOC_AB57 LD A, ($71F7) INC A SRL A LD B, A LD A, ($71F8) CP B JR NC, LOC_AB50 XOR A CALL SUB_AB9B JR LOC_AB5C LOC_AB50: LD A, 1 CALL SUB_AB9B JR LOC_AB5C LOC_AB57: LD A, 2 CALL SUB_AB9B LOC_AB5C: LD IX, UNK_AB88 LD IY, UNK_AB67 JP LOC_AC5A UNK_AB67: DB 007,007,150,134,130,150,135,150,138,137,139,150,131,136,150,140,142 DB 132,150,141,133,143,133,143,128,150,140,137,132,129,137,128,158 UNK_AB88: DB 002,131,002,131,021,133,002,133,001,135,000 UNK_AB93: db 000,040,096,040,176,040,000,048 SUB_AB9B: LD HL, 72C3H LD (HL), 0 LD HL, UNK_AB93 ADD A, A ADD A, L LD L, A LD C, (HL) LD B, 0 LD ($72C4), BC INC HL LD C, (HL) LD B, 0 LD ($72C6), BC RET SUB_ABB6: LD A, ($71F3) CP 6 RET NZ CALL SUB_8DC8 CALL RAND_GEN CALL SUB_AC1B PUSH AF LD A, R CALL SUB_AC19 LD B, A POP AF ADD A, B ADD A, 4 LD ($72CA), A LD HL, 72C3H LD (HL), 0 ADD A, A ADD A, A ADD A, A LD C, A LD B, 0 LD ($72C4), BC LD C, 20H ; ' ' LD B, 0 LD ($72C6), BC LD DE, 702BH LD HL, UNK_ABF9 LD BC, 20H ; ' ' LDIR CALL SUB_AC24 RET UNK_ABF9:DB 5 DB 6 DB 9CH DB 80H DB 0A2H DB 80H DB 9DH DB 80H DB 0A3H DB 99H DB 0A1H DB 80H DB 9DH DB 9DH DB 9AH DB 9CH DB 9CH DB 9CH DB 9CH DB 9BH DB 9DH DB 9DH DB 80H DB 9EH DB 99H DB 0A0H DB 80H DB 9DH DB 80H DB 9FH DB 80H DB 9CH SUB_AC19: SRL A SUB_AC1B: SRL A SRL A SRL A SRL A RET SUB_AC24: LD A, ($71F9) BIT 2, A CALL Z, SUB_98E2 LD HL, UNK_AADF OR A CALL ACTIVATE LD IX, UNK_AADF CALL PUTOBJ LD A, ($71F9) BIT 2, A CALL Z, SUB_98F8 RET SUB_AC43: LD A, ($71F3) DEC A RET NZ LD A, ($71F8) DEC A RET NZ LD A, 3 CALL SUB_AB9B LD IX, UNK_ACBE LD IY, UNK_AC64 LOC_AC5A: LD HL, 702BH LD A, 0FFH CALL SUB_8EEB JR SUB_AC24 UNK_AC64: DB 8 DB 12H DB 14H DB 12H DB 0AH DB 1BH DB 14H DB 12H DB 0AH DB 12H DB 11H DB 1BH DB 2FH ; / DB 12H DB 12H DB 0AH DB 12H DB 0BH DB 11H DB 1BH DB 1BH DB 14H DB 12H DB 12H DB 0AH DB 0BH DB 0CH DB 1BH DB 1BH DB 2FH ; / DB 12H DB 0CH DB 13H DB 1BH DB 14H DB 12H DB 0CH DB 13H DB 13H DB 1BH DB 14H DB 13H DB 1BH DB 16H DB 17H DB 13H DB 1BH DB 18H DB 1BH DB 19H DB 1EH DB 1DH DB 1CH DB 1BH DB 1AH DB 2EH ; . DB 1FH DB 20H DB 28H ; ( DB 2CH ; , DB 27H ; ' DB 21H ; ! DB 2EH ; . DB 2EH ; . DB 20H DB 20H DB 29H ; ) DB 2DH ; - DB 26H ; & DB 22H ; " DB 2EH ; . DB 2EH ; . DB 20H DB 1FH DB 2AH ; * DB 2DH ; - DB 25H ; % DB 23H ; # DB 2EH ; . DB 2EH ; . DB 20H DB 20H DB 2BH ; + DB 2DH ; - DB 24H ; $ DB 43H ; C DB 2EH ; . DB 44H ; D DB 2EH ; . DB 12H UNK_ACBE: DB 3 DB 86H DB 3 DB 83H DB 16H DB 83H DB 2 DB 83H DB 5 DB 84H DB 1 DB 83H DB 85H DB 3 DB 87H DB 1 DB 87H DB 2 DB 83H DB 21H ; ! DB 8AH DB 1 DB 87H DB 1 DB 88H DB 0 SUB_ACD8: LD A, ($71F3) CP 7 JR NZ, SUB_AD1B PUSH HL PUSH IX LD HL, byte_BA4E SCF CALL ACTIVATE LD DE, 72CBH CALL SUB_AD27 LD (IX+0), 2 LD (IX+1), 0E8H LD (IX+3), 48H ; 'H' LD HL, byte_BAC0 SCF CALL ACTIVATE LD DE, 72FAH CALL SUB_AD27 LD (IX+0), 0 LD (IX+1), 0E8H LD (IX+3), 58H ; 'X' CALL SUB_AD35 POP IX POP HL RET SUB_AD1B: LD A, 0C1H LD ($72CE), A LD ($72FD), A CALL SUB_AD35 RET SUB_AD27: PUSH DE POP IX LD H, D LD L, E INC DE LD BC, 4 XOR A LD (DE), A LDIR RET SUB_AD35: LD IX, BYTE_BA4E CALL PUTOBJ LD IX, BYTE_BAC0 CALL PUTOBJ RET ;*************************************************************************************** DATA_FOUND_00: DB 056,175,176,152,255,000,016,174,255,000,104,173,000,100,152,173,101,140,030,174,141,180,054,174,181,210,078,174,211,255 DB 096,174,255,000,104,173,129,000,005,004,016,162,173,018,001,000,001,000,128,000,000,000,000,000,001,000,001,003,008,197 DB 173,018,000,000,001,000,001,004,008,215,173,018,000,000,001,000,001,004,008,234,173,018,000,000,001,000,001,004,008,253 DB 173,018,000,000,168,173,195,114,001,128,224,000,000,000,000,175,173,005,004,048,049,056,056,056,050,051,057,057,057,052 DB 053,067,067,067,054,055,081,080,068,203,173,195,114,001,128,224,000,000,000,000,210,173,001,003,057,067,068,221,173,195 DB 114,001,128,224,000,000,000,000,228,173,001,004,057,067,068,079,240,173,195,114,001,128,224,000,000,000,000,247,173,001 DB 004,057,067,068,079,003,174,195,114,001,128,224,000,000,000,000,010,174,001,004,057,067,068,078,001,000,003,004,008,022 DB 175,018,000,000,000,000,000,000,065,248,008,004,016,114,174,018,000,000,000,255,000,255,000,255,000,255,000,255,000,255 DB 000,254,033,008,008,004,008,161,174,018,000,000,000,002,000,001,000,001,000,001,000,001,000,001,000,001,065,248,005,004 DB 016,208,174,018,000,000,000,254,000,254,000,254,000,254,033,008,005,004,008,243,174,018,000,002,000,002,000,002,000,002 DB 000,000,120,174,195,114,001,128,224,000,000,000,000,127,174,008,004,056,059,061,063,064,065,066,057,057,058,060,062,067 DB 067,067,067,067,067,067,067,073,074,076,068,068,069,070,071,072,075,077,078,167,174,195,114,001,128,224,000,000,000,000 DB 174,174,008,004,057,066,065,064,063,061,059,056,067,067,067,067,062,060,058,057,068,076,074,073,067,067,067,067,078,077 DB 075,072,071,070,069,068,214,174,195,114,001,128,224,000,000,000,000,221,174,005,004,056,061,064,066,057,057,060,067,067 DB 067,067,067,073,076,068,068,070,072,077,078,249,174,195,114,001,128,224,000,000,000,000,000,175,005,004,057,066,064,061 DB 056,067,067,067,060,057,068,076,073,067,067,078,077,072,070,068,028,175,195,114,001,128,224,000,000,000,000,035,175,003 DB 004,057,057,057,067,067,067,068,068,068,078,078,078,035,005,119,194,049,175,201,003,000,000,024,000,075,175,000,000,088 DB 000,252,175,000,000,152,000,181,176,221,033,208,175,253,033,091,175,062,255,033,043,112,195,235,142,032,008,018,010,011 DB 017,009,018,010,009,010,018,010,011,017,010,018,011,009,010,018,010,018,010,011,011,017,009,010,018,010,010,011,017,009 DB 018,010,011,011,017,009,018,011,017,017,010,018,010,018,011,011,017,009,018,010,018,011,017,017,009,010,018,010,018,011 DB 017,010,018,011,017,009,018,010,011,012,017,012,017,017,009,010,018,010,011,017,009,018,011,018,018,005,012,006,005,005 DB 012,019,012,005,001,009,018,010,018,010,018,011,012,005,012,005,012,007,008,005,004,002,002,137,004,137,003,144,004,138 DB 003,140,008,135,005,141,003,131,001,136,004,139,004,132,001,134,007,137,003,135,001,135,001,131,001,138,003,131,005,132 DB 002,132,001,135,030,000,221,033,146,176,253,033,007,176,195,083,175,032,008,018,010,012,005,004,002,019,019,006,001,002 DB 019,019,006,000,009,018,018,005,004,002,012,019,006,005,001,002,006,005,001,003,019,008,007,019,001,003,019,000,019,000 DB 002,008,005,001,003,019,006,000,019,019,006,001,001,019,019,006,001,000,001,019,000,019,016,013,019,019,006,001,001,002 DB 019,000,019,000,000,019,006,000,000,016,014,015,016,000,014,015,016,017,017,014,015,016,000,000,014,015,015,016,014,013 DB 016,015,016,000,000,019,014,015,016,000,000,017,013,017,000,000,017,000,000,014,017,000,000,017,013,013,017,000,000,017 DB 013,013,017,013,013,017,039,132,001,132,006,132,013,132,001,131,008,132,001,131,002,131,035,132,001,136,002,137,003,131 DB 002,141,002,137,002,132,002,152,002,161,000,221,033,196,176,253,033,192,176,195,083,175,032,004,017,017,002,255,001,000 DATA_FOUND_01: DB 201,178,184,128,000,040,060,177,255,000,138,177,041,100,042,177,101,175,060,177,255,000,004,177,176,205,100,177,206,255 DB 118,177,000,040,060,177,255,000,138,177,041,080,042,177,081,120,060,177,121,176,082,177,177,210,100,177,211,255,118,177 DB 193,232,006,004,024,154,177,182,000,000,000,000,001,240,000,000,128,000,000,000,161,232,005,004,008,193,177,182,000,000 DB 001,016,001,000,128,000,000,000,001,000,005,005,008,228,177,182,000,000,000,000,000,000,000,000,000,000,001,000,007,005 DB 008,012,178,182,000,000,000,000,000,000,000,000,000,000,000,000,000,000,193,216,005,006,040,062,178,182,001,240,001,240 DB 000,000,064,000,000,000,193,232,005,005,024,107,178,182,000,000,001,248,000,248,128,000,000,000,161,008,006,002,008,147 DB 178,182,000,000,000,000,000,002,000,003,000,003,000,000,161,016,004,003,016,174,178,182,001,246,001,010,128,000,000,000 DB 160,177,195,114,001,128,224,000,000,000,000,167,177,006,004,158,158,158,181,181,181,158,158,162,163,187,186,181,181,175 DB 176,182,182,182,182,177,182,183,184,199,177,195,114,001,128,224,000,000,000,000,206,177,005,004,181,158,158,158,158,169 DB 170,158,158,158,179,178,181,181,181,182,180,187,186,182,234,177,195,114,001,128,224,000,000,000,000,241,177,005,005,181 DB 181,181,181,181,182,183,161,182,182,159,160,184,182,183,182,161,159,160,182,182,182,161,183,182,018,178,195,114,001,128 DB 224,000,000,000,000,025,178,007,005,181,181,181,181,181,181,181,160,182,161,182,182,182,182,159,160,182,160,182,182,182 DB 182,161,160,183,182,182,182,182,182,182,182,182,182,182,068,178,195,114,001,128,224,000,000,000,000,075,178,005,006,158 DB 181,181,181,181,158,164,166,188,186,158,165,167,161,182,164,166,159,160,182,165,167,160,161,182,168,182,183,182,182,113 DB 178,195,114,001,128,224,000,000,000,000,120,178,005,005,158,158,144,181,181,158,144,146,187,186,181,145,182,183,182,182 DB 182,182,182,182,182,182,184,183,182,153,178,195,114,001,128,224,000,000,000,000,160,178,006,002,181,181,189,191,158,158 DB 182,182,190,192,193,194,180,178,195,114,001,128,224,000,000,000,000,187,178,004,003,195,196,158,158,197,198,181,181,183 DB 184,187,186,021,000,000,000,000,072,179,000,000,016,000,087,179,000,000,032,000,087,179,000,000,048,000,087,179,000,000 DB 064,000,087,179,000,000,080,000,087,179,000,000,088,000,096,179,000,000,096,000,087,179,000,000,112,000,087,179,000,000 DB 128,000,087,179,000,000,144,000,087,179,000,000,160,000,087,179,000,000,176,000,087,179,008,000,072,000,111,179,080,000 DB 056,000,138,179,184,000,072,000,201,179,048,000,032,000,224,179,160,000,048,000,224,179,096,000,048,000,243,179,048,000 DB 048,000,243,179,128,000,032,000,000,180,033,043,112,054,032,035,054,002,006,064,062,150,195,049,175,033,043,112,054,032 DB 035,054,002,201,033,043,112,054,032,035,054,002,006,064,062,158,195,049,175,001,018,000,033,120,179,237,176,201,008,002 DB 150,150,151,153,154,155,150,150,151,152,158,158,158,158,156,155,001,054,000,033,147,179,237,176,201,013,004,150,150,150 DB 150,150,151,153,154,155,150,150,150,150,150,150,150,150,157,158,158,158,158,156,155,150,150,150,150,150,157,158,158,158 DB 158,158,158,158,156,155,150,151,152,158,158,158,158,158,158,158,158,158,158,001,014,000,033,210,179,237,176,201,006,002 DB 151,153,154,155,150,150,158,158,158,158,156,155,001,010,000,033,233,179,237,176,201,004,002,199,200,201,202,203,204,205 DB 206,001,004,000,033,252,179,237,176,201,002,001,207,208,001,008,000,033,009,180,237,176,201,003,002,209,210,211,212,213 DB 214 DATA_FOUND_02: DB 024,181,168,072,255,000,101,180,255,000,085,180,000,100,101,180,101,155,085,180,156,255,101,180,255,000,101,180,000,050 DB 061,180,255,000,101,180,051,100,085,180,101,255,061,180,161,040,008,007,008,121,180,021,000,000,000,000,000,000,001,000 DB 001,024,001,000,064,000,000,000,161,024,004,007,008,192,180,021,000,000,001,016,129,000,000,000,097,000,006,005,000,235 DB 180,021,000,000,000,000,000,000,000,000,000,000,000,000,127,180,195,114,001,128,224,000,000,000,000,134,180,008,007,000 DB 000,000,001,000,000,000,000,023,025,004,002,001,000,000,000,018,020,013,004,002,000,000,000,020,014,005,007,005,000,000 DB 000,025,018,008,014,006,007,029,027,021,025,022,015,022,020,021,021,021,026,016,018,017,018,021,021,198,180,195,114,001 DB 128,224,000,000,000,000,205,180,004,007,000,001,000,000,003,002,000,000,013,005,000,000,026,012,028,027,018,020,021,019 DB 025,023,021,021,021,024,021,021,241,180,195,114,001,128,224,000,000,000,000,248,180,006,005,023,025,019,018,019,018,018 DB 020,021,019,021,019,025,023,021,021,021,021,021,024,021,021,021,021,021,021,021,021,021,021,014,000,000,000,000,109,181 DB 000,000,016,000,124,181,000,000,032,000,124,181,000,000,048,000,124,181,000,000,064,000,124,181,000,000,080,000,124,181 DB 000,000,096,000,124,181,000,000,112,000,124,181,000,000,128,000,124,181,000,000,144,000,124,181,000,000,160,000,124,181 DB 000,000,176,000,124,181,064,000,024,000,133,181,192,000,024,000,208,181,033,043,112,054,032,035,054,002,006,064,062,000 DB 195,049,175,033,043,112,054,032,035,054,002,201,001,066,000,033,142,181,237,176,201,008,008,040,042,000,033,043,035,043 DB 036,039,040,000,031,036,035,039,031,038,040,000,032,035,034,038,030,000,039,000,030,034,032,000,000,000,038,000,000,033 DB 032,000,000,000,000,000,000,032,031,000,000,000,000,000,000,031,000,000,000,000,000,000,000,030,000,000,000,001,066,000 DB 033,217,181,237,176,201,008,008,040,042,000,033,043,037,037,037,039,041,000,032,036,035,042,044,038,041,000,033,035,034 DB 035,044,000,039,000,030,034,034,033,044,000,038,000,000,033,032,033,000,000,000,000,000,033,031,032,000,000,000,000,000 DB 031,000,032,000,000,000,000,000,030,000,000,000 DATA_FOUND_03: DB 201,178,176,128,000,031,060,177,255,000,024,177,032,064,042,177,065,120,060,177 DB 255,000,004,177,255,000,004,177,121,196,100,177,197,229,118,177,230,255,004,177 DB 000,031,060,177,255,000,024,177,032,064,042,177,065,100,060,177,101,121,082,177 DB 121,163,138,177,164,196,100,177,197,229,118,177,230,255,004,177 DATA_FOUND_04: DB 107,182,176,080,041,224,255,008,000,098,183,016,000,008,000,098,183,064,000,008,000,098,183,080,000,024,000,133,183,112 DB 000,008,000,098,183,160,000,008,000,098,183,208,000,008,000,098,183,000,000,040,000,098,183,024,000,040,000,148,183,048 DB 000,040,000,098,183,096,000,040,000,098,183,144,000,040,000,098,183,160,000,040,000,148,183,192,000,040,000,098,183,200 DB 000,056,000,133,183,240,000,040,000,098,183,232,255,072,000,098,183,024,000,072,000,098,183,072,000,072,000,098,183,088 DB 000,072,000,148,183,080,000,088,000,133,183,120,000,072,000,098,183,168,000,072,000,098,183,216,000,072,000,098,183,000 DB 000,104,000,098,183,016,000,120,000,133,183,048,000,104,000,098,183,096,000,104,000,098,183,144,000,104,000,098,183,160 DB 000,104,000,148,183,192,000,104,000,098,183,240,000,104,000,098,183,224,255,136,000,098,183,016,000,136,000,098,183,032 DB 000,152,000,133,183,064,000,136,000,098,183,112,000,136,000,098,183,160,000,136,000,098,183,208,000,136,000,098,183,000 DB 000,168,000,024,184,128,000,168,000,083,184,001,026,000,033,107,183,237,176,201,006,004,129,131,131,131,131,130,143,128 DB 128,128,128,144,143,128,128,128,128,144,137,132,132,132,132,138,001,006,000,033,142,183,237,176,201,002,002,141,142,139 DB 140,001,006,000,033,157,183,237,176,201,002,002,134,133,135,136,001,072,000,033,172,183,237,176,201,007,010,204,200,199 DB 199,199,199,204,204,204,205,128,130,129,131,204,203,204,205,144,143,206,204,128,203,204,205,206,204,204,132,132,203,204 DB 204,207,204,130,129,206,204,204,205,204,144,206,204,207,203,204,204,206,204,207,128,128,203,204,204,207,132,132,132,132 DB 204,204,204,204,204,204,204,001,027,000,033,253,183,237,176,201,005,005,179,178,202,201,195,180,184,188,192,196,181,185 DB 189,193,197,182,186,190,194,198,183,187,191,171,171,001,050,000,033,033,184,237,176,201,016,003,170,168,171,171,171,170 DB 168,171,171,171,171,171,168,171,170,171,174,165,176,165,165,174,165,165,176,165,165,174,165,165,176,165,167,169,167,167 DB 167,167,167,169,167,167,175,167,167,169,167,167,001,050,000,033,092,184,237,176,201,016,003,171,171,170,177,171,171,171 DB 171,170,177,171,171,170,171,177,171,165,164,165,165,173,165,165,164,165,165,173,165,165,164,165,173,167,167,166,167,167 DB 172,167,167,166,167,167,172,167,167,166,167,001,010,000,033,151,184,237,176,201,002,004,145,146,148,147,149,150,151,152 DATA_FOUND_05: DB 165,184,176,080,043,000,000,168,000,024,184,128,000,168,000,083,184,224,255,008,000,098,183,016,000,008,000,098,183,064 DB 000,008,000,098,183,080,000,024,000,133,183,112,000,008,000,098,183,160,000,008,000,098,183,208,000,008,000,098,183,000 DB 000,040,000,098,183,024,000,040,000,148,183,048,000,040,000,098,183,096,000,040,000,098,183,144,000,040,000,098,183,160 DB 000,040,000,148,183,192,000,040,000,098,183,200,000,056,000,133,183,240,000,040,000,098,183,232,255,072,000,098,183,024 DB 000,072,000,098,183,072,000,072,000,098,183,088,000,072,000,148,183,080,000,088,000,133,183,120,000,072,000,098,183,168 DB 000,072,000,098,183,216,000,072,000,098,183,000,000,104,000,098,183,016,000,120,000,133,183,048,000,104,000,098,183,096 DB 000,104,000,098,183,144,000,104,000,098,183,192,000,104,000,098,183,160,000,104,000,148,183,224,255,136,000,098,183,016 DB 000,136,000,098,183,032,000,152,000,133,183,064,000,136,000,098,183,112,000,136,000,098,183,160,000,136,000,098,183,208 DB 000,136,000,098,183,152,000,136,000,244,183,232,000,064,000,142,184,200,000,096,000,163,183,203,114,203,114,203,114 BYTE_B9AE: DB 179,185,203,114,006,003,228,190,185,008,186,185,001,000,001,004,000,128,128,128 DB 226,099,113,051,031,003,000,000,000,000,000,000,000,001,001,001,071,198,078,204 DB 248,224,192,000,000,000,000,000,000,000,000,000,002,003,001,003,031,051,096,096 DB 224,128,128,128,000,000,000,000,064,192,064,192,248,236,198,006,007,001,001,001 BYTE_B9FE: DB 003,186,203,114,009,003,248,014,186,008,010,186,001,000,001,004,000,000,000,128 DB 192,248,254,126,063,003,031,060,004,000,000,000,000,000,001,001,003,031,127,254 DB 252,248,254,015,002,000,000,000,000,000,000,000,000,000,014,062,127,227,223,188 DB 132,000,000,000,000,000,000,000,000,000,000,096,240,252,255,126,060,028,012,004 BYTE_BA4E: DB 083,186,203,114,021,003,240,096,186,012,090,186,010,000,010,004,015,008,068,072 DB 080,090,070,127,003,063,063,111,127,095,111,055,011,004,034,018,010,090,098,254 DB 128,252,252,246,250,254,246,236,208,032,008,020,040,069,067,127,003,063,079,159 DB 191,175,039,035,032,016,016,040,020,162,194,254,192,252,242,249,253,245,228,196 DB 004,008,000,000,027,009,000,000,000,000,001,001,001,000,000,000,001,003,000,000 DB 000,000,000,000,000,000,000,000,128,200,012,012,252,254 BYTE_BAC0: DB 197,186,250,114,022,003,200,206,186,004,204,186,015,000,000,000,000,000,000,000 DB 003,003,000,000,000,000,000,000,000,000,254,204,000,000,000,140,252,244,000,000 DB 000,000,000,000,000,000 BYTE_BAEE: DB 136,131,129,000,003,005,009,005,009,005,015,255 BYTE_BAFA: DB 015,153,132,000,015,135,015,008,136,255 BYTE_BB04: DB 017,001,035,006,008,016,001,040,005,007,015,002,045,005,006,014,002,050,004,006,013,003,055,004,005,012,003,060,004,005 BYTE_BB22: DB 032,056,080,104,128,152,176,200,224,248,255,255 ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ SUB_BB2E: XOR A LD ($72D1), A CALL SUB_BE39 LD A, (IX+6) OR A JP Z, LOC_BC44 LD C, A AND 0FH LD HL, BYTE_BB22 JR Z, LOC_BB48 LD B, A LOC_BB45: INC HL DJNZ LOC_BB45 LOC_BB48: LD B, (HL) LD A, R SUB B JP NC, LOC_BC44 SRL C SRL C SRL C SRL C LD B, C LD DE, 5 LD HL, BYTE_BB04 DEC B JR Z, LOC_BB64 LOC_BB61: ADD HL, DE DJNZ LOC_BB61 LOC_BB64: LD DE, 7309H LD BC, 5 LDIR LD A, 8 LD ($72D1), A LD A, ($71F6) CP 1 LD HL, BYTE_BAEE LD DE, UNK_BC77 JR C, LOC_BB8D JR Z, LOC_BB85 LD HL, BYTE_BAFA JR LOC_BB8D LOC_BB85: LD HL, 730CH DEC (HL) DEC (HL) LD DE, UNK_BD45 LOC_BB8D: LD ($7310), HL LD ($7312), DE LD A, 1 LD ($7314), A CALL SUB_BD87 PUSH IX POP HL SCF CALL ACTIVATE LD HL, 1 LD A, ($71F6) DEC A JR Z, LOC_BBAE LD L, 1EH LOC_BBAE: XOR A CALL REQUEST_SIGNAL LD ($7315), A CALL SUB_BDF4 LD L, (IX+0CH) CALL SUB_BBD6 LD (IX+4), A LD L, (IX+0DH) CALL SUB_BBD6 LD (IX+5), A LD (IX+6), 0 LD D, 0C3H LD E, D LD B, D LD C, D JP SUB_BD6A SUB_BBD6: LD A, 1 LD H, 0 PUSH IX CALL REQUEST_SIGNAL POP IX RET SUB_BBE2: CALL SUB_BDF4 LD A, (IX+5) CALL TEST_SIGNAL RET Z CALL SUB_BDF4 CALL SUB_BDE6 JP LOC_BD81 SUB_BBF5: LD A, ($7314) OR A JR Z, LOC_BC18 LD A, ($7315) CALL TEST_SIGNAL RET Z XOR A LD ($7314), A LD B, 0CH CALL PLAY_IT LD B, 0DH CALL PLAY_IT CALL SUB_BDFD LD B, D LD C, E JP SUB_BD6A LOC_BC18: CALL SUB_BDF4 LD A, (IX+4) CALL TEST_SIGNAL RET Z JP LOC_BC5E SUB_BC25: CALL SUB_BDF4 LD A, (IX+6) OR A RET NZ JR LOC_BC30 LOC_BC2F: POP HL LOC_BC30: CALL SUB_BDF4 LD A, (IX+5) CALL FREE_SIGNAL LD A, (IX+4) CALL FREE_SIGNAL LD A, 1 LD (IX+6), A LOC_BC44: CALL SUB_BDF4 LD (IY+3), 0C3H LD (IY+1), 0C3H XOR A LD ($72D1), A LD A, 0FFH LD ($71C6), A LD ($71D0), A JP LOC_BD81 LOC_BC5E: CALL SUB_BDFD LD A, H OR L CALL Z, SUB_BC69 JP LOC_BD9D SUB_BC69: LD A, D OR A JP Z, LOC_BC2F CP 0FFH JP Z, LOC_BC2F LD HL, ($7312) JP (HL) UNK_BC77: DB 237,095,230,063,198,016,095,022 DB 255,175,050,022,115,033,178,188 DB 034,018,115,042,016,115,034,014 DB 115,221,033,009,115,237,095,230 DB 063,198,096,221,110,002,103,006 DB 001,205,039,190,071,197,213,205 DB 016,162,209,221,150,000,193,079 DB 195,106,189,042,014,115,126,254 DB 255,202,216,188,126,203,127,040 DB 005,203,191,131,024,002,123,150 DB 079,035,034,014,115,098,046,010 DB 006,000,205,039,190,071,195,106 DB 189,221,033,152,114,221,102,001 DB 106,058,022,115,183,040,004,221 DB 110,001,098,071,205,039,190,210 DB 013,189,221,070,001,221,078,003 DB 033,029,189,034,018,115,205,003 DB 189,195,106,189,237,095,254,035 DB 208,062,008,129,079,201,033,010 DB 115,053,040,010,253,033,022,115 DB 205,230,189,195,132,188,237,095 DB 230,063,079,123,145,254,144,056 DB 002,062,030,079,058,022,115,183 DB 006,000,040,002,006,255,205,106 DB 189,033,132,188,034,018,115,253 DB 033,022,115,195,230,189 UNK_BD45: DB 033,095,189,034,018,115,058,202 DB 114,203,039,203,039,203,039,198 DB 016,087,030,060,066,014,156,195 DB 106,189,058,153,114,186,006,255 DB 048,003,006,000,075 SUB_BD6A: CALL SUB_BDF4 LD (IX+2), B LD (IY+1), D LD (IY+2), 0 LD (IX+3), C LD (IY+3), E LD (IY+4), 0 LOC_BD81: CALL SUB_BD87 JP PUTOBJ SUB_BD87: LD A, ($71F6) LD IX, BYTE_B9FE OR A JR Z, LOCRET_BD9C LD IX, BYTE_BA4E DEC A JR Z, LOCRET_BD9C LD IX, BYTE_B9AE LOCRET_BD9C: RET LOC_BD9D: CALL SUB_BDFD PUSH BC LD A, H CP 1 JR Z, LOC_BDAD JR C, LOC_BDB0 LD A, B SUB D LD B, A JR LOC_BDB0 LOC_BDAD: LD A, D SUB B LD B, A LOC_BDB0: LD A, L CP 1 JR Z, LOC_BDBA LD A, C SUB E LD C, A JR LOC_BDBD LOC_BDBA: LD A, E SUB C LD C, A LOC_BDBD: LD A, 5 CP B JR C, LOC_BDC5 CP C JR NC, LOC_BDCB LOC_BDC5: SRL B SRL C JR LOC_BDBD LOC_BDCB: DEC H JR Z, LOC_BDD3 LD A, D ADD A, B LD D, A JR LOC_BDD6 LOC_BDD3: LD A, D SUB B LD D, A LOC_BDD6: DEC L JR Z, LOC_BDDE LD A, E ADD A, C LD E, A JR LOC_BDE1 LOC_BDDE: LD A, E SUB C LD E, A LOC_BDE1: POP BC CALL SUB_BD6A RET SUB_BDE6: LD A, (IY+0) OR A LD (IY+0), 1 RET Z LD (IY+0), 0 RET SUB_BDF4: LD IY, 72CBH LD IX, 7300H RET SUB_BDFD: CALL SUB_BDF4 LD B, (IX+2) LD D, (IY+1) LD A, B CP D LD H, 0 JR Z, LOC_BE12 LD H, 2 JR NC, LOC_BE12 LD H, 1 LOC_BE12: LD C, (IX+3) LD E, (IY+3) LD A, C CP E LD L, 0 JP Z, LOCRET_BE26 LD L, 2 JP NC, LOCRET_BE26 LD L, 1 LOCRET_BE26: RET DB 0CBH DB 20H DB 3AH ; : DB 16H DB 73H ; S DB 0B0H DB 28H ; ( DB 7 DB 0FEH DB 3 DB 28H ; ( DB 3 DB 7CH ; | DB 85H DB 0C9H DB 7CH ; | DB 95H DB 0C9H SUB_BE39: LD IX, 71EFH LD HL, UNK_860F LD DE, 4 LD A, (IX+2) CALL SUB_BE73 LD E, (IX+3) DEC E ADD HL, DE LD B, (HL) LD (IX+5), B LD E, (IX+4) DEC E LD HL, UNK_861F ADD HL, DE LD A, (HL) LD (IX+7), A LD A, (IX+4) LD DE, 4 LD HL, UNK_8626 CALL SUB_BE73 LD E, (IX+5) ADD HL, DE LD A, (HL) LD (IX+6), A RET SUB_BE73: DEC A RET Z ADD HL, DE JR SUB_BE73 SUB_BE78: LD B, 9 LD HL, SOUND_DATA CALL SOUND_INIT LD A, ($71F3) CP 1 JR Z, SUB_BEB2 CP 5 JR Z, SUB_BEB2 CP 2 JR Z, LOC_BEA0 CP 4 JR Z, LOC_BEA0 CP 3 JR Z, LOC_BEA8 CP 6 JR Z, LOC_BEA8 CP 7 JR Z, LOC_BEA8 RET LOC_BEA0: CALL SUB_BEB2 LD B, 7 JP PLAY_IT LOC_BEA8: LD B, 8 CALL PLAY_IT LD B, 9 JP PLAY_IT SUB_BEB2: LD B, 1 CALL PLAY_IT LD B, 2 CALL PLAY_IT LD B, 3 JP PLAY_IT SUB_BEC1: XOR A ADD A, D JP M, LOC_BED9 XOR A ADD A, H JP M, LOC_BF1A LOC_BECB: CP D JP C, LOC_BF1A JP NZ, LOC_BF1D LD A, L CP E JP C, LOC_BF1A XOR A RET LOC_BED9: XOR A ADD A, H JP P, LOC_BF1D JP LOC_BECB SUB_BEE1: XOR A ADD A, H JP M, LOC_BEF9 XOR A ADD A, D JP M, LOC_BF1A LOC_BEEB: CP H JP C, LOC_BF1A JP NZ, LOC_BF1D LD A, E CP L JP C, LOC_BF1A XOR A RET LOC_BEF9: XOR A ADD A, D JP P, LOC_BF1D JP LOC_BEEB SUB_BF01: CP L JP Z, LOC_BF1D JP C, LOC_BF0D XOR L JP P, LOC_BF1A XOR A LOC_BF0D: XOR L JP M, LOC_BF1A XOR A RET DB 189,202,026,191,195,005,191 LOC_BF1A: XOR A INC A RET LOC_BF1D: XOR A RET SUB_BF1F: LD L, A OR A JP P, LOC_BF27 LD H, 0FFH RET LOC_BF27: LD H, 0 RET SUB_BF2A: PUSH DE PUSH HL LD HL, DATA_SET_99 LD E, A LD D, 0 ADD HL, DE LD A, (HL) POP HL POP DE RET DATA_SET_99: DB 001,002,004,008,016,032,064,128 SUB_BF3F: CALL SUB_BF2A AND L JP Z, LOC_BF49 XOR A INC A RET LOC_BF49: XOR A RET ;************************************************************************************ DB 175,178,194,073,191,123,254,008,218,063,191,175,201 SUB_BF58: POP HL EX (SP), HL PUSH HL LD A, (BC) LD L, A INC BC LD A, (BC) INC BC LD H, A EX (SP), HL PUSH DE LOC_BF63: LD E, (HL) INC HL LD D, (HL) INC HL PUSH HL LD A, E OR D JP NZ, LOC_BF77 POP HL LD E, (HL) INC HL LD D, (HL) INC HL PUSH HL EX DE, HL LD E, (HL) INC HL LD D, (HL) LOC_BF77: INC BC LD A, (BC) RLCA JP NC, LOC_BF9A INC BC POP HL EX (SP), HL LD (HL), E INC HL LD (HL), D INC HL LOC_BF84: POP DE EX (SP), HL DEC HL XOR A CP H JP NZ, LOC_BF90 CP L JP Z, LOC_BF96 LOC_BF90: EX (SP), HL PUSH HL EX DE, HL JP LOC_BF63 LOC_BF96: POP HL EX DE, HL EX (SP), HL JP (HL) LOC_BF9A: POP HL EX (SP), HL PUSH HL RRCA LD H, A DEC BC LD A, (BC) LD L, A EX (SP), HL INC BC INC BC LOC_BFA5: LD A, (DE) LD (HL), A INC HL INC DE EX (SP), HL DEC HL XOR A CP L JP NZ, LOC_BFB4 CP H JP Z, LOC_BFB8 LOC_BFB4: EX (SP), HL JP LOC_BFA5 LOC_BFB8: POP HL JP LOC_BF84 zz: ds 68, $ff ;PADDING TO 16K