diff --git a/ASM/Critical Mass (1985)(Durell Software)()().asm b/ASM/Critical Mass (1985)(Durell Software)()().asm new file mode 100644 index 00000000..8c43053f --- /dev/null +++ b/ASM/Critical Mass (1985)(Durell Software)()().asm @@ -0,0 +1,827 @@ +; Music of Critical Mass (1985)(Durell Software)()() +; Ripped by Megachur the 14/02/2009 +; $VER 1.5 + +IFDEF FILENAME_WRITE + write "CRITICAM.BIN" +ENDIF + +MUSIC_DATE_RIP_DAY equ 14 +MUSIC_DATE_RIP_MONTH equ 02 +MUSIC_DATE_RIP_YEAR equ 2009 +music_adr equ #b800 + + read "music_header.asm" + + jr nz,lb808 + ld (lb82c),a + jp #0475 +; +.real_play_music +.lb808 +; + ld a,(lb82c) + or a + push ix + call z,lb891 +.lb812 equ $ + 1 + ld a,#00 + inc a + cp #05 + jr nz,lb819 + xor a +.lb819 + ld (lb812),a + call z,lbb9d + push af + call lbc79 + pop af + call z,lb891 + pop ix + defs 2,0 ; modified by Megachur jp #0475 + ret +.lb82c + db #00 +.lb82d + db #32,#2f,#3d,#c3,#59,#2b,#af,#32 + db #2f,#3d,#c3,#59,#2b,#af,#32,#2d +.lb841 equ $ + 4 + db #3d,#c3,#59,#2b,#cd,#55,#0b,#c2 +.lb84c equ $ + 7 +.lb84b equ $ + 6 + db #47,#2b,#0c,#0d,#ca,#47,#2b,#f5 +.lb84e equ $ + 1 +.lb84d + db #cd,#0e,#0c,#c4,#24,#0c,#c2,#3a + db #2b,#7e,#f6,#40,#77,#f1,#fe,#2c + db #c0,#cd,#55,#0b,#c2,#c1,#04,#c3 + db #2c,#2b,#3e,#01,#32,#2d,#3d,#c9 + db #3e,#ff,#32,#2e,#3d,#c3,#59,#2b + db #af,#32,#2e,#3d,#c3,#40,#0b,#3e + db #01,#32,#2e,#3d,#c3,#59,#2b,#af + db #c3,#7d,#2b,#3e,#ff,#c3,#7d,#2b + db #3a,#8d,#40,#2f +; +.init_music +.lb891 +; + inc a + ld (lb82c),a + ld hl,lbdab + ld de,lbdcc + ld bc,lbdeb + ld (lb8e8),hl + ld (lb8ef),de + ld (lb8f6),bc + xor a + ld (lb8c9),a + ld de,lb84b + ld hl,lb8e4 + call lb8ca + ld de,lb84c + ld hl,lb8eb + call lb8ca + ld de,lb84d + ld hl,lb8f2 + call lb8ca + ret +.lb8c9 + nop +.lb8ca + ld b,#07 + push de + pop ix +.lb8cf + ld a,(hl) + inc hl + ld (de),a + inc de + inc de + inc de + djnz lb8cf + ld (ix+#15),#01 + ld (ix+#1e),#01 + ld (ix+#21),#00 + ret +.lb8e4 + db #36,#00 + dw lb82d +.lb8eb equ $ + 3 +.lb8e8 + db #00,#00,#00,#2d,#02 + dw #b837 +.lb8f2 equ $ + 3 +.lb8ef + db #00,#00,#00,#1b,#04 + dw lb841 +.lb8f6 + db #00,#00,#00 +.lb8f9 + ld l,(ix+#09) + ld h,(ix+#0c) +.lb8ff + ld a,(hl) + or a + jp m,lb90b + ld (ix+#12),a + inc hl + jp lba5f +.lb90b + and #7f + jr nz,lb936 + bit 1,(ix+#0f) + jr nz,lb92b + set 1,(ix+#0f) + ld (ix+#09),l + ld (ix+#0c),h + ld a,(lb8c9) + inc a + ld (lb8c9),a + cp #03 + pop bc + ret z + push bc +.lb92b + ld (ix+#1b),#01 + ld (ix+#12),#01 + jp lbbd8 +.lb936 + dec a + jr nz,lb941 + inc hl + ld a,(hl) + ld (ix+#15),a + inc hl + jr lb8ff +.lb941 + dec a + jr nz,lb94f + inc hl + ld a,(hl) + inc hl + add (ix+#15) + ld (ix+#15),a + jr lb8ff +.lb94f + dec a + jr nz,lb95a + inc hl + ld a,(hl) + inc hl + ld (ix+#18),a + jr lb8ff +.lb95a + dec a + jr nz,lb969 + inc hl + ld a,(hl) + inc hl + add (ix+#18) + ld (ix+#18),a + jp lb8ff +.lb969 + dec a + jr nz,lb974 + inc hl + ld a,(hl) + inc hl + ld h,(hl) + ld l,a + jp lb8ff +.lb974 + dec a + jr nz,lb992 + inc hl + ld e,(hl) + inc hl + ld d,(hl) + inc hl + push de + ex de,hl + ld l,(ix+#03) + ld h,(ix+#06) + ld (hl),e + inc hl + ld (hl),d + inc hl + ld (ix+#03),l + ld (ix+#06),h + pop hl + jp lb8ff +.lb992 + dec a + jr nz,lb9a9 + ld l,(ix+#03) + ld h,(ix+#06) + dec hl + ld d,(hl) + dec hl + ld e,(hl) + ld (ix+#03),l + ld (ix+#06),h + ex de,hl + jp lb8ff +.lb9a9 + dec a + jp nz,lba2e + ld a,(ix+#0f) + and #0f + ld d,a + inc hl + ld a,(hl) + inc hl + or a + jp m,lba15 + set 4,d +.lb9bc + cp #10 + jr nc,lb9d6 + ld (ix+#0f),d +.lb9c3 + call lb9c9 + jp lb8ff +.lb9c9 + ld e,a + ld a,(ix+#00) + srl a + add #08 + ld d,a + ld a,e + jp lbbef +.lb9d6 + cp #18 + set 6,d + jr nc,lba0a + and #07 + push hl + ld hl,lba02 + add l + ld l,a + jr nc,lb9e7 + inc h +.lb9e7 + ld a,(hl) + ld (ix+#2a),a + set 7,d + ld (ix+#0f),d + pop hl + ld e,(hl) + inc hl + ld d,(hl) + inc hl + push hl + ex de,hl + ld d,#0b + call lbc1e + pop hl + ld a,#10 + jp lb9c3 +.lba02 + nop + inc b + ex af,af' + ld a,(bc) + inc c + dec c + ld c,#0b +.lba0a + ld (ix+#0f),d + and #07 + ld (ix+#2a),a + jp lb8ff +.lba15 + push af + push de + ld a,(hl) + ld d,#06 + call lbbef + inc hl + pop de + pop af + set 5,d + bit 6,a + jr z,lba28 + set 4,d +.lba28 + and #3f + cp #10 + jr lb9bc +.lba2e + dec a + jr nz,lba49 + inc hl + ld e,(hl) + inc hl + ld d,(hl) + inc hl + ld b,(hl) + ld a,(ix+#1e) + or a + jr nz,lba3e + ld a,b +.lba3e + dec a + ld (ix+#1e),a + inc hl + jr z,lba46 + ex de,hl +.lba46 + jp lb8ff +.lba49 + inc hl + ld a,(hl) + inc hl + cp #ff + jr z,lba59 + ld (ix+#36),a + set 3,(ix+#0f) + jr lba46 +.lba59 + res 3,(ix+#0f) + jr lba46 +.lba5f + ld a,(hl) + inc hl + ld (ix+#09),l + ld (ix+#0c),h + res 2,(ix+#0f) + ld c,a + rra + rra + rra + rra + rra + and #07 + ld e,a + ld d,#00 + ld hl,lbda7 + add hl,de + ld e,(hl) + ld b,(ix+#18) + xor a +.lba7f + add e + djnz lba7f + ld (ix+#1b),a + ld a,c + and #1f + jr nz,lba91 + set 2,(ix+#0f) + jp lbbd8 +.lba91 + add (ix+#15) + ld (ix+#33),a + bit 3,(ix+#0f) + jr z,lbac0 + push af + ld a,(ix+#36) + add a + ld hl,lbe39 + add l + ld l,a + jr nc,lbaaa + inc h +.lbaaa + ld e,(hl) + inc hl + ld d,(hl) + ld a,(de) + inc de + ld (ix+#39),e + ld (ix+#3c),d + ld (ix+#3f),a + ld (ix+#42),a + ld (ix+#27),#00 + pop af +.lbac0 + call lbb20 + bit 5,(ix+#0f) + jr z,lbad8 + ld a,(ix-#03) + or #07 + ld e,a + ld d,#07 + call lbc01 + and e + call lbbef +.lbad8 + bit 4,(ix+#0f) + jr z,lbaed + ld a,(ix-#03) + or #38 + ld e,a + ld d,#07 + call lbc01 + and e + call lbbef +.lbaed + bit 6,(ix+#0f) + jp z,lbbd8 + bit 7,(ix+#0f) + jr z,lbb05 + ld a,(ix+#2a) + ld d,#0d + call lbbef + jp lbbd8 +.lbb05 + ld a,(ix+#2a) + add a + ld hl,lbe0a + add l + ld l,a + jr nc,lbb11 + inc h +.lbb11 + ld e,(hl) + inc hl + ld d,(hl) + ex de,hl + ld a,(hl) + ld (ix+#30),a + inc hl + call lbc49 + jp lbbd8 +.lbb20 + push af + ld a,#40 + bit 3,(ix+#0f) + jr z,lbb38 + ld l,(ix+#39) + ld h,(ix+#3c) + call lbc59 + ld (ix+#39),l + ld (ix+#3c),h +.lbb38 + ld e,a + rra + rra + rra + and #0f + ld c,a + pop af + add a + add c + sub #08 + ld d,a + push de + ld b,#ff + ld c,#18 +.lbb4a + inc b + sub c + jr nc,lbb4a + add c + add a + ld e,a + ld d,#00 + ld hl,lbcac + add hl,de + ld a,b + ld (lbb88),a + ld e,(hl) + inc hl + ld d,(hl) + inc hl + ld c,(hl) + inc hl + ld b,(hl) + pop hl + ex de,hl + push hl + or a + sbc hl,bc + ex de,hl + ld a,l + ld b,h + ld hl,#0000 + and #07 + jr z,lbb82 +.lbb72 + add hl,de + dec a + jr nz,lbb72 + srl h + rr l + srl h + rr l + srl h + rr l +.lbb82 + pop de + ex de,hl + or a + sbc hl,de +.lbb88 equ $ + 1 + ld a,#00 + ld b,a + or a + jr z,lbb96 +.lbb8d + srl h + rr l + djnz lbb8d + jr nc,lbb96 + inc hl +.lbb96 + ld d,(ix+#00) + call lbc1e + ret +.lbb9d + ld ix,lb84e + ld b,#03 +.lbba3 + push bc + ld a,(ix+#0f) + and #c0 + cp #40 + jr nz,lbbb3 + dec (ix+#2d) + call z,lbc40 +.lbbb3 + dec (ix+#1b) + jp nz,lbbd8 + ld a,(ix-#03) + or #c0 + cpl + ld d,#07 + ld e,a + call lbc01 + or e + call lbbef + dec (ix+#12) + ld l,(ix+#09) + ld h,(ix+#0c) + jp nz,lba5f + jp lb8f9 +.lbbd8 + pop bc + inc ix + djnz lbba3 + ld a,#01 + or a + ret +.lbbe1 + ld b,#f4 + out (c),d + ld b,#f6 + ld a,#c0 + out (c),a + xor a + out (c),a + ret +.lbbef + ld c,a + call lbbe1 + ld b,#f4 + out (c),c + ld b,#f6 + ld a,#80 + out (c),a + xor a + out (c),a + ret +.lbc01 + call lbbe1 + ld a,#92 + inc b + out (c),a + dec b + ld a,#40 + out (c),a + ld b,#f4 + in c,(c) + ld b,#f6 + xor a + out (c),a + inc b + ld a,#82 + out (c),a + ld a,c + ret +.lbc1e + call lbbe1 + ld b,#f4 + out (c),l + ld b,#f6 + ld a,#80 + out (c),a + xor a + out (c),a + inc d + call lbbe1 + ld b,#f4 + out (c),h + ld b,#f6 + ld a,#80 + out (c),a + xor a + out (c),a + ret +.lbc40 + ld l,(ix+#21) + ld h,(ix+#24) + ld a,(ix+#30) +.lbc49 + ld (ix+#2d),a + call lbc59 + ld (ix+#21),l + ld (ix+#24),h + call lb9c9 + ret +.lbc59 + ld a,(hl) + inc hl + or a + ret p + rra + ld e,(hl) + inc hl + ld d,(hl) + jr c,lbc66 + ex de,hl + jr lbc59 +.lbc66 + inc hl + ld b,(hl) + ld a,(ix+#27) + or a + jr nz,lbc6f + ld a,b +.lbc6f + dec a + ld (ix+#27),a + inc hl + jr z,lbc59 + ex de,hl + jr lbc59 +.lbc79 + ld ix,lb84e + ld b,#03 +.lbc7f + push bc + bit 3,(ix+#0f) + jr z,lbc99 + dec (ix+#3f) + jr nz,lbc99 + ld a,(ix+#42) + ld (ix+#3f),a + ld a,(ix+#33) + call lbb20 + jr lbc99 +.lbc99 + pop bc + inc ix + djnz lbc7f + ld bc,#0050 + call lbca5 + ret +.lbca5 + inc b +.lbca6 + dec c + jr nz,lbca6 +.lbca9 + djnz lbca6 + ret +.lbcac + ld hl,#621a + add hl,de + xor d + jr lbca9 + rla + ld b,a + rla + sbc l + ld d,#f9 + dec d + ld e,b + dec d + cp l + inc d + ld h,#14 + sub e + inc de + inc b + inc de + ld a,d + ld (de),a + di + ld de,#1170 + pop af + djnz lbd43 +.lbccd + djnz lbccd + rrca + adc c + rrca + jr lbce3 + xor d + ld c,#3f + ld c,#d7 + dec c + ld (hl),d + dec c + ld de,#3e0d + ld bc,#0d32 + cp l +.lbce3 + call lbb9d + ret z + call lbc79 + ld a,(lbd0d) + or a + jr z,lbcf9 + scf + jr c,lbce3 + xor a + ld (lbd0d),a + jr lbce3 +.lbcf9 + or a + jr nc,lbce3 + ret + db #00,#00,#00,#00,#00,#1f,#0f,#07 + db #03,#03,#01,#01,#00,#00,#00,#80 +.lbd0d + db #01,#09,#33,#32,#30,#12,#2e,#0e + db #2b,#2e,#30,#87,#08,#33,#32,#30 + db #12,#38,#18,#37,#75,#87,#09,#38 + db #37,#35,#13,#36,#16,#35,#33,#31 + db #87,#09,#34,#33,#31,#0f,#33,#13 + db #30,#2e,#2d,#87,#08,#33,#32,#30 +.lbd43 equ $ + 6 + db #0e,#31,#11,#30,#6e,#87,#09,#29 + db #29,#29,#09,#2b,#0b,#27,#2b,#2c + db #87,#09,#29,#29,#29,#09,#30,#10 + db #2e,#2e,#2d,#87,#09,#2e,#2e,#2e + db #0e,#2c,#0c,#2c,#2c,#2c,#87,#08 + db #2a,#2a,#2a,#0a,#2a,#0a,#2a,#64 + db #87,#08,#29,#29,#27,#07,#28,#08 + db #27,#66,#87,#08,#44,#04,#48,#49 + db #0a,#0a,#2b,#2b,#87,#06,#44,#04 + db #48,#6e,#0e,#6b,#87,#08,#49,#09 + db #2d,#2d,#47,#07,#2b,#2b,#87,#07 + db #45,#05,#29,#29,#46,#06,#6b,#87 + db #08,#4e,#0e,#2d,#0d,#2c,#0c,#2b +.lbdab equ $ + 6 +.lbda7 equ $ + 2 + db #64,#87,#01,#02,#03,#04,#81,#3a + db #83,#09,#88,#1a,#8a,#00 + db #86,#0e,#bd,#86,#19,#bd,#86,#0e + db #bd,#86,#19,#bd,#86,#23,#bd,#86 + db #2e,#bd,#86,#0e,#bd,#86,#39,#bd +.lbdcc equ $ + 1 + db #80,#81,#3a,#83,#09,#88,#19,#86 + db #43,#bd,#86,#4e,#bd,#86,#43,#bd + db #86,#4e,#bd,#86,#59,#bd,#86,#64 + db #bd,#86,#43,#bd,#86,#6e,#bd,#80 +.lbdeb + db #81,#20,#83,#09,#88,#18,#86,#78 + db #bd,#86,#82,#bd,#86,#78,#bd,#86 + db #82,#bd,#86,#8a,#bd,#86,#94,#bd +.lbe0a equ $ + 7 + db #86,#78,#bd,#86,#9d,#bd,#80,#10 + db #be,#1e,#be,#2d,#be,#01,#0a,#0f + db #0d,#0c,#0b,#0a,#0a,#0a,#0a,#09 + db #80,#1a,#be,#01,#05,#09,#0b,#0c + db #0d,#0d,#0c,#0b,#09,#05,#00,#80 + db #29,#be,#02,#09,#0b,#0c,#0d,#0c +.lbe39 equ $ + 6 + db #0c,#0c,#0b,#80,#35,#be,#4d,#be + db #94,#be,#9d,#be,#a1,#be,#ad,#be + db #b1,#be,#b5,#be,#ca,#be,#df,#be + db #e3,#be,#05,#40,#81,#4e,#be,#02 + db #40,#40,#40,#40,#40,#41,#41,#41 + db #41,#41,#40,#40,#40,#40,#40,#3f + db #3f,#3f,#3f,#3f,#81,#53,#be,#01 + db #40,#40,#41,#41,#42,#44,#42,#41 + db #41,#40,#40,#3f,#3f,#3e,#3c,#3e + db #3f,#3f,#81,#6b,#be,#02,#40,#42 + db #44,#46,#49,#46,#44,#42,#40,#3e + db #3c,#3a,#37,#3a,#3c,#3e,#80,#81 + db #be,#06,#40,#81,#95,#be,#0c,#80 + db #53,#be,#02,#80,#53,#be,#03,#00 + db #08,#10,#18,#20,#28,#30,#38,#80 + db #53,#be,#02,#80,#a6,#be,#09,#80 + db #4e,#be,#01,#30,#31,#32,#33,#34 + db #35,#36,#37,#38,#39,#3a,#3b,#3c + db #3d,#3e,#3f,#40,#80,#c6,#be,#02 + db #50,#4f,#4e,#4d,#4c,#4b,#4a,#49 + db #48,#47,#46,#45,#44,#43,#42,#41 + db #40,#80,#db,#be,#03,#80,#cb,#be + db #05,#80,#cb,#be,#00 +; +.play_music ; added by Megachur +; + call real_play_music + call real_play_music + call real_play_music + call real_play_music + call real_play_music + jp real_play_music +; +.music_info + db "Critical Mass (1985)(Durell Software)()",0 + db "",0 + + read "music_end.asm" diff --git a/ASM/Critter Soap's First Demo (19xx)(HJT)()(ST-Module).asm b/ASM/Critter Soap's First Demo (19xx)(HJT)()(ST-Module).asm new file mode 100644 index 00000000..e7696953 --- /dev/null +++ b/ASM/Critter Soap's First Demo (19xx)(HJT)()(ST-Module).asm @@ -0,0 +1,784 @@ +; Music of Critter Soap's First Demo (19xx)(HJT)()(ST-Module) +; Ripped by Megachur the 05/01/2020 +; $VER 1.5 + +IFDEF FILENAME_WRITE + write "CRITESFD.BIN" +ENDIF + +MUSIC_DATE_RIP_DAY equ 05 +MUSIC_DATE_RIP_MONTH equ 01 +MUSIC_DATE_RIP_YEAR equ 2020 +music_adr equ #2003 + + read "music_header.asm" + + jp l200e + jp l2096 + jp l207a + db #66,#04 +; +.init_music +.l200e +; + ld b,#03 + ld ix,l23dd + ld iy,l2309 + ld de,#001c +.l201b + push bc + ld (ix+#06),#01 + ld (ix+#09),d + ld (ix+#1b),d + ld (ix+#05),#10 + ld l,(iy+#00) + ld h,(iy+#01) + ld a,(hl) + ld (ix+#08),a + inc hl + ld c,(hl) + inc hl + ld b,(hl) + inc hl + ld (ix+#0c),l + ld (ix+#0d),h + ld (ix+#00),c + ld (ix+#01),b + add ix,de + inc iy + inc iy + pop bc + djnz l201b + ld a,#06 + ld (l20be),a + ld a,d + ld (l20d2),a + inc a + ld (l20b9),a + ld a,#38 + ld (l20c3),a + ld a,#ff + ld (l2305),a + ld (l2306),a + ld (l2307),a + ld (l2308),a + ld a,#0c + ld c,d + call l22e7 + ld a,#0d + ld c,d + jp l22e7 +; +.stop_music +.l207a +; + ld a,#07 + ld c,#3f + call l22e7 + ld a,#08 + ld c,#00 + call l22e7 + ld a,#09 + ld c,#00 + call l22e7 + ld a,#0a + ld c,#00 + jp l22e7 +; +.play_music +.l2096 +; + ld hl,l20b9 + dec (hl) + ld ix,l23dd + ld bc,l23eb + call l214c + ld ix,l23f9 + ld bc,l2407 + call l214c + ld ix,l2415 + ld bc,l2423 + call l214c +.l20b9 equ $ + 1 + ld a,#01 + or a + jr nz,l20c2 +.l20be equ $ + 1 + ld a,#06 + ld (l20b9),a +.l20c3 equ $ + 1 +.l20c2 + ld a,#38 + ld hl,l2306 + cp (hl) + jr z,l20d1 + ld (hl),a + ld c,a + ld a,#07 + call l22e7 +.l20d2 equ $ + 1 +.l20d1 + ld a,#00 + ld hl,l2305 + cp (hl) + jr z,l20e0 + ld (hl),a + ld c,a + ld a,#06 + call l22e7 +.l20e1 equ $ + 1 +.l20e0 + ld a,#00 + ld hl,l2307 + cp (hl) + jr z,l20ef + ld (hl),a + ld c,a + ld a,#0b + call l22e7 +.l20f0 equ $ + 1 +.l20ef + ld a,#00 + ld hl,l2308 + cp (hl) + ret z + ld (hl),a + ld c,a + ld a,#0d + jp l22e7 +.l20fd + inc hl + ld b,(hl) + ld (ix+#06),b + inc hl + ld (ix+#00),l + ld (ix+#01),h + jp l21fd +.l210c + inc hl + ld a,(hl) + ld (ix+#06),a + inc hl + ld (ix+#00),l + ld (ix+#01),h + xor a + ld (ix+#17),a + ld (ix+#15),a + ld c,a + ld a,(ix+#04) + jp l22e7 +.l2126 + ld (ix+#0a),#00 + ld l,(ix+#0c) + ld h,(ix+#0d) + ld a,(hl) + cp #80 + jr nz,l213b + inc hl + ld e,(hl) + inc hl + ld d,(hl) + ex de,hl + ld a,(hl) +.l213b + inc hl + ld e,(hl) + inc hl + ld d,(hl) + inc hl + ld (ix+#0c),l + ld (ix+#0d),h + ld (ix+#08),a + ex de,hl + jr l215f +.l214c + ld a,(l20b9) + or a + jp nz,l21fd + dec (ix+#06) + jp nz,l21fd + ld l,(ix+#00) + ld h,(ix+#01) +.l215f + ld a,(hl) + or a + jr z,l20fd + cp #fe + jr z,l210c + cp #ff + jr z,l2126 + ld d,#00 + and #7f + sub #0a + add (ix+#08) + ld (ix+#07),a + add a + ld e,a + push hl + ld hl,l230f + add hl,de + ld a,(hl) + ld (ix+#18),a + inc hl + ld a,(hl) + ld (ix+#19),a + pop hl + ld a,#01 + bit 7,(hl) + jr nz,l219b + inc hl + ld a,(hl) + bit 7,a + jr z,l219b + and #7f + ld (ix+#06),a + jr l21ee +.l219b + ld (ix+#06),a + inc hl + push hl + ld a,(hl) + push af + and #0f + cp (ix+#05) + jr z,l21af + ld (ix+#05),a + ld (ix+#0a),d +.l21af + add a + add a + add a + ld e,a + ld hl,l2445 + add hl,de + ld d,b + ld e,c + ldi + ldi + ldi + ldi + ldi + ldi + ldi + ldi + pop af + pop hl + and #f0 + jr z,l21ee + cp #f0 + jp z,l22a3 + cp #d0 + jp z,l22bf + cp #b0 + jp z,l22c7 + cp #80 + jp nc,l22cf + cp #10 + jr nz,l21ee + xor a + ld (ix+#1b),a + ld (ix+#09),a +.l21ee + inc hl + ld (ix+#00),l + ld (ix+#01),h + ld (ix+#16),#00 + ld (ix+#17),#20 +.l21fd + ld a,(ix+#17) + or a + jr nz,l2211 + ld a,(ix+#15) + or a + ret z + ld (ix+#17),a + ld a,(ix+#14) + ld (ix+#16),a +.l2211 + ld d,#00 + ld e,(ix+#16) + inc (ix+#16) + dec (ix+#17) + ld a,(ix+#1b) + or a + jr z,l223c + ld h,a + ld l,(ix+#1a) + add hl,de + ld a,(hl) + ld b,(ix+#07) + add b + add a + ld b,d + ld c,a + ld hl,l230f + add hl,bc + ld a,(hl) + ld (ix+#18),a + inc hl + ld a,(hl) + ld (ix+#19),a +.l223c + ld h,(ix+#0f) + ld l,(ix+#0e) + add hl,de + add hl,de + ld c,(hl) + inc hl + ld b,(hl) + ld l,(ix+#18) + ld h,(ix+#19) + add hl,bc + ld c,l + ld a,(ix+#02) + call l22e7 + ld c,h + ld a,(ix+#03) + call l22e7 + ld h,(ix+#11) + ld l,(ix+#10) + add hl,de + ld a,(hl) + bit 7,a + jr nz,l227a + and #0f + sub (ix+#0a) + jr nc,l2270 + xor a +.l2270 + or (ix+#09) + ld c,a + ld a,(ix+#04) + call l22e7 +.l227a + ld l,(ix+#12) + ld h,(ix+#13) + add hl,de + ld a,(hl) + bit 7,a + ret nz + and #1f + ld b,(ix+#0b) + ld c,a + or a + ld a,b + jr z,l2297 + ld b,a + ld a,c + ld (l20d2),a + ld a,b + sub #40 +.l2297 + ld (l229e),a + ld a,(l20c3) +.l229e equ $ + 1 + bit 0,a + ld (l20c3),a + ret +.l22a3 + inc hl + ld a,(hl) + push hl + add a + ld b,#00 + ld c,a + ld hl,l24c5 + add hl,bc + ld e,(hl) + inc hl + ld d,(hl) + ld (ix+#1a),e + ld (ix+#1b),d + ld (ix+#09),#00 + pop hl + jp l21ee +.l22bf + inc hl + ld a,(hl) + ld (l20be),a + jp l21ee +.l22c7 + inc hl + ld a,(hl) + ld (ix+#0a),a + jp l21ee +.l22cf + ld (ix+#09),#10 + ld (ix+#1b),#00 + ld a,(hl) + rrca + rrca + rrca + rrca + ld (l20f0),a + inc hl + ld a,(hl) + ld (l20e1),a + jp l21ee +.l22e7 + ld b,#f4 + out (c),a + ld b,#f6 + in a,(c) + or #c0 + out (c),a + and #3f + out (c),a + ld b,#f4 + out (c),c + ld b,#f6 + ld c,a + or #80 + out (c),a + out (c),c + ret +.l2308 equ $ + 3 +.l2307 equ $ + 2 +.l2306 equ $ + 1 +.l2305 + db #ff,#ff,#ff,#ff +.l2309 + dw l2685,l26b2,l26df +.l230f + dw #0eee,#0e18,#0d4d,#0c8e + dw #0bda,#0b2f,#0a8f,#09f7 + dw #0968,#08e1,#0861,#07e9 + dw #0777,#070c,#06a7,#0647 + dw #05ed,#0598,#0547,#04fc + dw #04b4,#0470,#0431,#03f4 + dw #03bc,#0386,#0353,#0324 + dw #02f6,#02cc,#02a4,#027e + dw #025a,#0238,#0218,#01fa + dw #01de,#01c3,#01aa,#0192 + dw #017b,#0166,#0152,#013f + dw #012d,#011c,#010c,#00fd + dw #00ef,#00e1,#00d5,#00c9 + dw #00be,#00b3,#00a9,#009f + dw #0096,#008e,#0086,#007f + dw #0077,#0071,#006a,#0064 + dw #005f,#0059,#0054,#0050 + dw #004b,#0047,#0043,#003f + dw #003c,#0038,#0035,#0032 + dw #002f,#002d,#002a,#0028 + dw #0026,#0024,#0022,#0020 + dw #001e,#001c,#001b,#0019 + dw #0018,#0016,#0015,#0014 + dw #0013,#0012,#0011,#0010 + dw #000f + db #00,#00,#00,#00,#00,#00,#00,#00 +.l23dd equ $ + 4 + db #00,#00,#00,#00,#0c,#27,#00,#01 + db #08,#10,#01,#00,#00,#00,#00,#df +.l23eb equ $ + 2 + db #88,#26,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l23f9 + db #4f,#29,#02,#03,#09,#10,#01,#00 +.l2407 equ $ + 6 + db #00,#00,#00,#e7,#b5,#26,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l2415 equ $ + 4 + db #00,#00,#00,#00,#36,#2a,#04,#05 + db #0a,#10,#01,#00,#00,#00,#00,#ef +.l2423 equ $ + 2 + db #e2,#26,#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,#00,#53,#54,#2d,#4d,#6f,#64 +.l2445 equ $ + 4 + db #75,#6c,#65,#2e,#e5,#24,#25,#25 + db #45,#25,#0c,#00,#65,#25,#a5,#25 + db #c5,#25,#00,#00,#e5,#25,#25,#26 + db #45,#26,#00,#00,#65,#25,#65,#26 + db #45,#26,#00,#00,#02,#20,#ef,#1e + db #e8,#9c,#23,#4e,#dd,#1e,#a9,#1f + db #77,#1d,#50,#30,#e7,#5a,#2e,#25 + db #df,#0b,#b0,#18,#cb,#1d,#7f,#4f + db #e7,#f4,#4d,#4f,#e5,#1e,#8e,#37 + db #54,#1d,#f0,#30,#e8,#f4,#df,#1e + db #df,#1e,#00,#00,#df,#1e,#df,#1e + db #df,#1e,#00,#00,#df,#1e,#df,#1e + db #df,#1e,#00,#00,#df,#1e,#df,#1e + db #df,#1e,#00,#00,#df,#1e,#df,#1e + db #df,#1e,#00,#00,#df,#1e,#df,#1e + db #df,#1e,#00,#00,#df,#1e,#df,#1e +.l24c5 equ $ + 4 + db #df,#1e,#00,#00,#df,#1e,#df,#1e + db #df,#1e,#df,#1e,#df,#1e,#df,#1e + db #df,#1e,#df,#1e,#df,#1e,#df,#1e + db #df,#1e,#df,#1e,#df,#1e,#df,#1e + db #df,#1e,#df,#1e,#00,#00,#32,#00 + db #64,#00,#91,#00,#be,#00,#eb,#00 + db #22,#01,#4a,#01,#7c,#01,#a9,#01 + db #d6,#01,#08,#02,#3a,#02,#6c,#02 + 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,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#0f,#0f,#0f,#0f + db #0f,#0e,#0e,#0d,#0c,#0a,#06,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#0c,#00,#00,#00 + 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,#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,#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,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#0f,#0d,#0b,#00 + 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,#00,#00,#00,#07,#0b,#0f,#00 + 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,#00,#00,#00,#00,#00,#ff,#ff + db #fe,#ff,#ff,#ff,#00,#00,#01,#00 + db #02,#00,#01,#00,#00,#00,#ff,#ff + db #fe,#ff,#ff,#ff,#00,#00,#01,#00 + db #02,#00,#01,#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,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#0f,#0f,#0f,#0f + db #0d,#0d,#0b,#0a,#00,#00,#00,#00 + 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,#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,#00,#00,#00,#0f,#0e,#0d,#0d + db #0d,#0c,#0c,#0c,#0c,#0b,#0b,#0b + db #0b,#0a,#0a,#0a,#09,#09,#09,#08 + db #08,#07,#07,#06,#05,#04,#03,#02 +.l2685 equ $ + 4 + db #01,#00,#00,#00,#00,#0c,#27,#00 + db #cd,#27,#00,#8e,#28,#00,#cd,#27 + db #00,#cd,#27,#00,#cd,#27,#00,#cd + db #27,#00,#cd,#27,#00,#cd,#27,#00 + db #cd,#27,#00,#cd,#27,#00,#cd,#27 + db #00,#cd,#27,#00,#cd,#27,#80,#88 +.l26b2 equ $ + 1 + db #26,#00,#4f,#29,#00,#72,#29,#00 + db #8e,#29,#00,#c2,#29,#00,#f4,#29 + db #00,#f4,#29,#00,#f4,#29,#00,#f4 + db #29,#00,#f4,#29,#00,#f4,#29,#00 + db #f4,#29,#00,#f4,#29,#00,#f4,#29 +.l26df equ $ + 6 + db #00,#c2,#29,#80,#b5,#26,#00,#36 + db #2a,#00,#f7,#2a,#00,#b8,#2b,#00 + db #f7,#2a,#00,#f7,#2a,#00,#f7,#2a + db #00,#79,#2c,#00,#79,#2c,#00,#a2 + db #2c,#00,#a2,#2c,#00,#d3,#2c,#00 + db #d3,#2c,#00,#f7,#2a,#00,#f7,#2a + db #80,#e2,#26,#ae,#b0,#04,#d2,#b1 + db #04,#d2,#b1,#04,#d2,#b1,#04,#ae + db #b0,#04,#d2,#b1,#04,#d2,#b1,#04 + db #ae,#b0,#04,#ae,#b0,#04,#d2,#b1 + db #04,#d2,#b1,#04,#d2,#b1,#04,#ae + db #b0,#04,#d2,#b1,#04,#d2,#b1,#04 + db #d2,#b1,#04,#ae,#b0,#04,#d2,#b1 + db #04,#d2,#b1,#04,#d2,#b1,#04,#ae + db #b0,#04,#d2,#b1,#04,#d2,#b1,#04 + db #ae,#b0,#04,#ae,#b0,#04,#d2,#b1 + db #04,#d2,#b1,#04,#d2,#b1,#04,#ae + db #b0,#04,#d2,#b1,#04,#d2,#b1,#04 + db #d2,#b1,#04,#ae,#b0,#04,#d2,#b1 + db #04,#d2,#b1,#04,#d2,#b1,#04,#ae + db #b0,#04,#d2,#b1,#04,#d2,#b1,#04 + db #ae,#b0,#04,#ae,#b0,#04,#d2,#b1 + db #04,#d2,#b1,#04,#d2,#b1,#04,#ae + db #b0,#04,#d2,#b1,#04,#d2,#b1,#04 + db #d2,#b1,#04,#ae,#b0,#04,#ae,#b0 + db #04,#d2,#b1,#04,#ae,#b0,#04,#ae + db #b0,#04,#d2,#b1,#04,#ae,#b0,#04 + db #ae,#b0,#04,#ae,#b0,#04,#ae,#b0 + db #04,#ae,#b0,#04,#d2,#b1,#04,#ae + db #b0,#04,#ae,#b0,#04,#ae,#b0,#04 + db #ae,#b0,#04,#ff,#ae,#b0,#04,#d2 + db #b1,#04,#d2,#b1,#04,#d2,#b1,#04 + db #ae,#b0,#04,#d2,#b1,#04,#d2,#b1 + db #04,#ae,#b0,#04,#ae,#b0,#04,#d2 + db #b1,#04,#d2,#b1,#04,#d2,#b1,#04 + db #ae,#b0,#04,#d2,#b1,#04,#d2,#b1 + db #04,#d2,#b1,#04,#ae,#b0,#04,#d2 + db #b1,#04,#d2,#b1,#04,#d2,#b1,#04 + db #ae,#b0,#04,#d2,#b1,#04,#d2,#b1 + db #04,#ae,#b0,#04,#ae,#b0,#04,#d2 + db #b1,#04,#d2,#b1,#04,#d2,#b1,#04 + db #ae,#b0,#04,#d2,#b1,#04,#d2,#b1 + db #04,#d2,#b1,#04,#ae,#b0,#04,#d2 + db #b1,#04,#d2,#b1,#04,#d2,#b1,#04 + db #ae,#b0,#04,#d2,#b1,#04,#d2,#b1 + db #04,#ae,#b0,#04,#ae,#b0,#04,#d2 + db #b1,#04,#d2,#b1,#04,#d2,#b1,#04 + db #ae,#b0,#04,#d2,#b1,#04,#d2,#b1 + db #04,#d2,#b1,#04,#ae,#b0,#04,#d2 + db #b1,#04,#d2,#b1,#04,#d2,#b1,#04 + db #ae,#b0,#04,#d2,#b1,#04,#d2,#b1 + db #04,#ae,#b0,#04,#ae,#b0,#04,#d2 + db #b1,#04,#d2,#b1,#04,#d2,#b1,#04 + db #ae,#b0,#04,#d2,#b1,#04,#d2,#b1 + db #04,#d2,#b1,#04,#ff,#ae,#b0,#04 + db #d2,#b1,#04,#d2,#b1,#04,#d2,#b1 + db #04,#ae,#b0,#04,#d2,#b1,#04,#d2 + db #b1,#04,#ae,#b0,#04,#ae,#b0,#04 + db #d2,#b1,#04,#d2,#b1,#04,#d2,#b1 + db #04,#ae,#b0,#04,#d2,#b1,#04,#d2 + db #b1,#04,#d2,#b1,#04,#ae,#b0,#04 + db #d2,#b1,#04,#d2,#b1,#04,#d2,#b1 + db #04,#ae,#b0,#04,#d2,#b1,#04,#d2 + db #b1,#04,#ae,#b0,#04,#ae,#b0,#04 + db #d2,#b1,#04,#d2,#b1,#04,#d2,#b1 + db #04,#ae,#b0,#04,#d2,#b1,#04,#d2 + db #b1,#04,#d2,#b1,#04,#ae,#b0,#04 + db #d2,#b1,#04,#d2,#b1,#04,#d2,#b1 + db #04,#ae,#b0,#04,#d2,#b1,#04,#d2 + db #b1,#04,#ae,#b0,#04,#ae,#b0,#04 + db #d2,#b1,#04,#d2,#b1,#04,#d2,#b1 + db #04,#ae,#b0,#04,#d2,#b1,#04,#d2 + db #b1,#04,#d2,#b1,#04,#ae,#b0,#04 + db #d2,#b1,#04,#d2,#b1,#04,#d2,#b1 + db #04,#ae,#b0,#04,#d2,#b1,#04,#d2 + db #b1,#04,#ae,#b0,#04,#ae,#b0,#04 + db #d2,#b1,#04,#d2,#b1,#04,#d2,#b1 + db #04,#ae,#b0,#04,#d2,#b1,#04,#d2 + db #b1,#04,#d2,#b1,#04,#ff,#fe,#30 + db #ae,#00,#ae,#00,#d2,#01,#ae,#00 + db #ae,#00,#d2,#01,#ae,#00,#ae,#00 + db #d2,#01,#ae,#00,#ae,#00,#d2,#01 + db #ae,#00,#ae,#00,#ae,#00,#ae,#00 + db #ff,#22,#02,#02,#22,#82,#22,#82 + db #22,#82,#22,#84,#22,#92,#22,#82 + db #26,#82,#26,#82,#26,#82,#26,#82 + db #26,#84,#26,#94,#ff,#22,#02,#02 + db #22,#82,#22,#82,#22,#82,#22,#84 + db #22,#84,#22,#82,#22,#82,#22,#82 + db #22,#82,#22,#84,#22,#82,#22,#82 + db #26,#82,#26,#82,#26,#82,#26,#82 + db #26,#84,#26,#84,#26,#82,#26,#82 + db #26,#82,#26,#82,#26,#84,#26,#84 + db #ff,#22,#02,#02,#22,#82,#22,#82 + db #22,#82,#22,#82,#22,#82,#22,#82 + db #22,#82,#22,#82,#22,#82,#22,#82 + db #22,#82,#22,#82,#22,#82,#22,#82 + db #22,#82,#26,#82,#26,#82,#26,#82 + db #26,#82,#26,#82,#26,#82,#26,#82 + db #26,#92,#ff,#22,#02,#02,#22,#82 + db #22,#82,#22,#82,#22,#82,#22,#82 + db #22,#82,#22,#82,#22,#82,#22,#82 + db #22,#82,#22,#82,#22,#82,#22,#82 + db #22,#82,#22,#82,#26,#82,#26,#82 + db #26,#82,#26,#82,#26,#82,#26,#82 + db #26,#82,#26,#82,#26,#82,#26,#82 + db #26,#82,#26,#82,#26,#82,#26,#82 + db #26,#82,#26,#82,#ff,#ae,#b0,#04 + db #d2,#b1,#04,#d2,#b1,#04,#d2,#b1 + db #04,#ae,#b0,#04,#d2,#b1,#04,#d2 + db #b1,#04,#ae,#b0,#04,#ae,#b0,#04 + db #d2,#b1,#04,#d2,#b1,#04,#d2,#b1 + db #04,#ae,#b0,#04,#d2,#b1,#04,#d2 + db #b1,#04,#d2,#b1,#04,#ae,#b0,#04 + db #d2,#b1,#04,#d2,#b1,#04,#d2,#b1 + db #04,#ae,#b0,#04,#d2,#b1,#04,#d2 + db #b1,#04,#ae,#b0,#04,#ae,#b0,#04 + db #d2,#b1,#04,#d2,#b1,#04,#d2,#b1 + db #04,#ae,#b0,#04,#d2,#b1,#04,#d2 + db #b1,#04,#d2,#b1,#04,#ae,#b0,#04 + db #d2,#b1,#04,#d2,#b1,#04,#d2,#b1 + db #04,#ae,#b0,#04,#d2,#b1,#04,#d2 + db #b1,#04,#ae,#b0,#04,#ae,#b0,#04 + db #d2,#b1,#04,#d2,#b1,#04,#d2,#b1 + db #04,#ae,#b0,#04,#d2,#b1,#04,#d2 + db #b1,#04,#d2,#b1,#04,#ae,#b0,#04 + db #ae,#b0,#04,#d2,#b1,#04,#ae,#b0 + db #04,#ae,#b0,#04,#d2,#b1,#04,#ae + db #b0,#04,#ae,#b0,#04,#ae,#b0,#04 + db #ae,#b0,#04,#ae,#b0,#04,#d2,#b1 + db #04,#ae,#b0,#04,#ae,#b0,#04,#ae + db #b0,#04,#ae,#b0,#04,#ff,#ae,#b0 + db #04,#d2,#b1,#04,#d2,#b1,#04,#d2 + db #b1,#04,#ae,#b0,#04,#d2,#b1,#04 + db #d2,#b1,#04,#ae,#b0,#04,#ae,#b0 + db #04,#d2,#b1,#04,#d2,#b1,#04,#d2 + db #b1,#04,#ae,#b0,#04,#d2,#b1,#04 + db #d2,#b1,#04,#d2,#b1,#04,#ae,#b0 + db #04,#d2,#b1,#04,#d2,#b1,#04,#d2 + db #b1,#04,#ae,#b0,#04,#d2,#b1,#04 + db #d2,#b1,#04,#ae,#b0,#04,#ae,#b0 + db #04,#d2,#b1,#04,#d2,#b1,#04,#d2 + db #b1,#04,#ae,#b0,#04,#d2,#b1,#04 + db #d2,#b1,#04,#d2,#b1,#04,#ae,#b0 + db #04,#d2,#b1,#04,#d2,#b1,#04,#d2 + db #b1,#04,#ae,#b0,#04,#d2,#b1,#04 + db #d2,#b1,#04,#ae,#b0,#04,#ae,#b0 + db #04,#d2,#b1,#04,#d2,#b1,#04,#d2 + db #b1,#04,#ae,#b0,#04,#d2,#b1,#04 + db #d2,#b1,#04,#d2,#b1,#04,#ae,#b0 + db #04,#d2,#b1,#04,#d2,#b1,#04,#d2 + db #b1,#04,#ae,#b0,#04,#d2,#b1,#04 + db #d2,#b1,#04,#ae,#b0,#04,#ae,#b0 + db #04,#d2,#b1,#04,#d2,#b1,#04,#d2 + db #b1,#04,#ae,#b0,#04,#d2,#b1,#04 + db #d2,#b1,#04,#d2,#b1,#04,#ff,#ae + db #b0,#04,#d2,#b1,#04,#d2,#b1,#04 + db #d2,#b1,#04,#ae,#b0,#04,#d2,#b1 + db #04,#d2,#b1,#04,#ae,#b0,#04,#ae + db #b0,#04,#d2,#b1,#04,#d2,#b1,#04 + db #d2,#b1,#04,#ae,#b0,#04,#d2,#b1 + db #04,#d2,#b1,#04,#d2,#b1,#04,#ae + db #b0,#04,#d2,#b1,#04,#d2,#b1,#04 + db #d2,#b1,#04,#ae,#b0,#04,#d2,#b1 + db #04,#d2,#b1,#04,#ae,#b0,#04,#ae + db #b0,#04,#d2,#b1,#04,#d2,#b1,#04 + db #d2,#b1,#04,#ae,#b0,#04,#d2,#b1 + db #04,#d2,#b1,#04,#d2,#b1,#04,#ae + db #b0,#04,#d2,#b1,#04,#d2,#b1,#04 + db #d2,#b1,#04,#ae,#b0,#04,#d2,#b1 + db #04,#d2,#b1,#04,#ae,#b0,#04,#ae + db #b0,#04,#d2,#b1,#04,#d2,#b1,#04 + db #d2,#b1,#04,#ae,#b0,#04,#d2,#b1 + db #04,#d2,#b1,#04,#d2,#b1,#04,#ae + db #b0,#04,#d2,#b1,#04,#d2,#b1,#04 + db #d2,#b1,#04,#ae,#b0,#04,#d2,#b1 + db #04,#d2,#b1,#04,#ae,#b0,#04,#ae + db #b0,#04,#d2,#b1,#04,#d2,#b1,#04 + db #d2,#b1,#04,#ae,#b0,#04,#d2,#b1 + db #04,#d2,#b1,#04,#d2,#b1,#04,#ff + db #d2,#03,#d4,#03,#d2,#03,#d4,#03 + db #d4,#03,#56,#83,#d2,#03,#d4,#03 + db #d2,#03,#d4,#03,#d4,#03,#56,#93 + db #d7,#03,#d6,#03,#d4,#03,#56,#85 + db #d7,#03,#d6,#03,#d4,#03,#56,#95 + db #ff,#d7,#03,#d6,#03,#d7,#03,#d6 + db #03,#d4,#03,#52,#83,#d7,#03,#d6 + db #03,#d7,#03,#d6,#03,#d4,#03,#52 + db #93,#d2,#03,#d4,#03,#d2,#03,#d4 + db #03,#d6,#03,#57,#83,#d2,#03,#d4 + db #03,#d2,#03,#d4,#03,#d6,#03,#57 + db #93,#ff,#d2,#03,#d4,#03,#d2,#03 + db #d4,#03,#d4,#03,#56,#83,#d2,#03 + db #d4,#03,#d2,#03,#d4,#03,#d4,#03 + db #56,#83,#d2,#03,#d4,#03,#d2,#03 + db #54,#85,#d2,#03,#d4,#03,#d2,#03 + db #54,#85,#d7,#03,#d6,#03,#d4,#03 + db #d6,#03,#d7,#03,#56,#83,#d7,#03 + db #d6,#03,#d4,#03,#d6,#03,#d7,#03 + db #56,#83,#d7,#03,#d6,#03,#d7,#03 + db #d6,#03,#d4,#03,#52,#83,#d7,#03 + db #d6,#03,#d7,#03,#d6,#03,#d4,#03 + db #52,#83,#ff +; +.music_info + db "Critter Soap's First Demo (19xx)(HJT)()",0 + db "ST-Module",0 + + read "music_end.asm" diff --git a/ASM/Croco Magneto (19xx)(Croco News)()(Music Pro).asm b/ASM/Croco Magneto (19xx)(Croco News)()(Music Pro).asm new file mode 100644 index 00000000..8f2a4ebd --- /dev/null +++ b/ASM/Croco Magneto (19xx)(Croco News)()(Music Pro).asm @@ -0,0 +1,1289 @@ +; Music of Croco Magneto (19xx)(Croco News)()(Music Pro) +; Ripped by Megachur the 19/03/2009 +; $VER 1.5 + +IFDEF FILENAME_WRITE + write "CROCOMAG.BIN" +ENDIF + +MUSIC_DATE_RIP_DAY equ 19 +MUSIC_DATE_RIP_MONTH equ 03 +MUSIC_DATE_RIP_YEAR equ 2009 +music_adr equ #8900 + + read "music_header.asm" + + jp l90ed ; init music interrupt + jp l90df ; stop music interrupt +; +.init_music +.l8906 +; + xor a + ld (l8e43),a + ld a,#ff + ld (l8e4a),a + ld a,(l9200) + ld (l9138),a + ld hl,l8e52 + ld (hl),#00 + ld de,l8e53 + ld bc,#0128 + ldir + ld bc,l9201 + ld a,(l9202) + ld (l8f7b),a + ld hl,(l9203) + add hl,bc + ld (l8f7c),hl + ld hl,(l9205) + add hl,bc + ld (l8f7e),hl + ld hl,(l9207) + add hl,bc + ld (l8f80),hl + ld hl,(l9209) + add hl,bc + ld (l8e57),hl + ld hl,(l920b) + add hl,bc + ld (l8e92),hl + ld hl,(l920d) + add hl,bc + ld (l8ecd),hl + ld a,#0f + ld (l8f83),a + ld hl,l8e4c + ld de,l8e52 + ld bc,#0005 + ldir + ld hl,l8e4c + ld de,l8e8d + ld bc,#0005 + ldir + ld hl,l8e4c + ld de,l8ec8 + ld bc,#0005 + ldir + ld c,#38 + ld a,#07 + call l905e + ld a,#ff + ld (l8e43),a + ret +.l8988 + ei +; +.play_music +; + ld a,(l8e43) + or a + ret z + xor a + ld (l8e43),a + ld a,#08 + ld (l8e45),a + cpl + ld (l8e46),a + ld a,(l8f83) + ld e,a + ld b,#03 + ld hl,l8ee7 +.l89a4 + ld a,(hl) + ld c,a + ld a,(l8e4b) + or b + sub #03 + ld a,#00 + jr c,l89b5 + ld a,c + cp e + jr c,l89b5 + ld a,e +.l89b5 + ld c,a + ld a,b + add #07 + push de + call l905e + ld de,#003b + and a + sbc hl,de + pop de + djnz l89a4 + ld hl,l8f7b + dec (hl) + ld ix,l8e52 + xor a +.l89cf + ld (l8f82),a + ld a,(ix+#07) + or a + jp nz,l8c87 +.l89d9 + ld (ix+#00),#00 + ld a,(ix+#08) + ld (ix+#07),a +.l89e3 + ld l,(ix+#03) + ld h,(ix+#04) + ld a,(hl) + cp #ff + jr nz,l8a50 + ld l,(ix+#01) + ld h,(ix+#02) +.l89f4 + ld a,(hl) + cp #ff + jr nz,l8a2f + ld l,(ix+#05) + ld h,(ix+#06) + ld (ix+#01),l + ld (ix+#02),h + ld a,(l8e4a) + or a + jr nz,l89f4 + push hl + push bc + push de + ld a,(l8f82) + ld c,a + ld b,#00 + ld hl,l8e47 + add hl,bc + push hl + ld e,(hl) + add a + ld c,a + ld hl,l9209 + add hl,bc + ld c,(hl) + inc hl + ld b,(hl) + push bc + pop hl + ld (hl),e + pop hl + xor a + ld (hl),a + pop de + pop bc + pop hl + jp l89f4 +.l8a2f + inc hl + ld (ix+#01),l + ld (ix+#02),h + add a + ld hl,(l8f7c) + ld c,a + ld b,#00 + add hl,bc + ld c,(hl) + inc hl + ld b,(hl) + push bc + pop hl + ld bc,l9201 + add hl,bc + ld (ix+#03),l + ld (ix+#04),h + jp l89e3 +.l8a50 + bit 7,a + jr nz,l8aba + ld hl,l8f8a + or a + jr z,l8a5d + add (ix+#20) +.l8a5d + add a + ld c,a + ld b,#00 + add hl,bc + ld e,(hl) + ld (ix+#36),e + ld (ix+#38),e + inc hl + ld e,(hl) + ld (ix+#37),e + ld (ix+#39),e + ld (ix+#0a),#00 + ld (ix+#21),#00 + ld (ix+#1f),#00 + push ix + pop hl + ld bc,#000b + add hl,bc + ex de,hl + ld a,(l8f82) + inc a + ld hl,l8eef + ld bc,#0014 +.l8a8f + add hl,bc + dec a + jr nz,l8a8f + ldir + push ix + pop hl + ld bc,#0022 + add hl,bc + ex de,hl + ld a,(l8f82) + inc a + ld hl,l8f2b + ld bc,#0014 +.l8aa7 + add hl,bc + dec a + jr nz,l8aa7 + ldir + ld a,(ix+#3a) + ld (ix+#09),a + ld (ix+#00),#ff + jp l8c73 +.l8aba + bit 6,a + jr nz,l8b11 + bit 5,a + jp z,l8afe + push af + xor a + ld (l8f84),a + pop af +.l8ac9 + and #1f + ld b,a + jr z,l8ae3 + ld a,(l8e44) + push hl + ld hl,l8e46 + and (hl) + ld (l8e44),a + pop hl + ld c,a + ld a,#07 + call l905e + jp l8af5 +.l8ae3 + ld a,(l8e44) + push hl + ld hl,l8e45 + or (hl) + ld (l8e44),a + pop hl + ld c,a + ld a,#07 + call l905e +.l8af5 + ld c,b + ld a,#06 + call l905e + jp l8c73 +.l8afe + and #1f + ld hl,l9052 + ld c,a + ld b,#00 + add hl,bc + ld a,(hl) + ld (ix+#07),a + ld (ix+#08),a + jp l8c73 +.l8b11 + bit 5,a + jr nz,l8b7e + and #1f + add a + add a + add a + ld hl,(l8f7e) + ld c,a + ld b,#00 + add hl,bc + ex de,hl + push ix + pop hl + ld bc,#000b + add hl,bc + ld (ix+#0a),b +.l8b2c + ld a,(de) + bit 7,a + jr nz,l8b3e + ld (hl),#00 + inc hl + ld (hl),a + inc hl + inc hl + inc hl + inc de + ld a,(de) + ld (hl),a + jp l8b56 +.l8b3e + ld (hl),#ff + and #7f + inc hl + ld (hl),a + inc hl + ld (hl),a + inc de + ld a,(de) + ld b,#ff + bit 7,a + jr nz,l8b50 + ld b,#01 +.l8b50 + and #7f + inc hl + ld (hl),a + inc hl + ld (hl),b +.l8b56 + inc de + inc hl + inc (ix+#0a) + ld a,#04 + cp (ix+#0a) + jr nz,l8b2c + ld (ix+#0a),#00 + ld bc,#0014 + or a + sbc hl,bc + ex de,hl + ld hl,l8eef + ld a,(l8f82) + inc a +.l8b74 + add hl,bc + dec a + jr nz,l8b74 + ex de,hl + ldir + jp l8c73 +.l8b7e + inc hl + ld (ix+#03),l + ld (ix+#04),h + push hl + ld hl,l8b95 + and #1f + add a + ld c,a + ld b,#00 + add hl,bc + ld a,(hl) + inc hl + ld h,(hl) + ld l,a + jp (hl) +.l8b95 + sbc l + adc e + push af + adc e + pop af + adc e + and l + adc e + pop hl + ld a,(hl) + ld (ix+#20),a + jp l8c73 + pop hl + ld a,(hl) + ld (l8f84),a + and #3f + ld (l8f86),a + inc hl + ld (ix+#03),l + ld (ix+#04),h + ld a,(hl) + and #3f + ld (l8f87),a + ld a,(l8f84) + and #c0 + rlca + rlca + rlca + rlca + ld (l8f84),a + ld a,(hl) + rlca + rlca + and #03 + ld hl,l8f84 + or (hl) + ld (l8f84),a + ld (l8f85),a + ld a,(l8f86) + ld (l8f89),a + ld hl,l8f87 + ld b,#ff + cp (hl) + jr nc,l8be7 + ld b,#01 +.l8be7 + ld a,b + ld (l8f88),a + ld a,(l8f89) + jp l8ac9 + ld a,#02 + jr l8bf7 + ld a,#01 +.l8bf7 + ld (ix+#09),a + pop hl + ld a,(hl) + or a + jr z,l8c68 + add a + add a + add a + ld hl,(l8f80) + ld c,a + ld b,#00 + add hl,bc + ex de,hl + push ix + pop hl + ld bc,#0022 + add hl,bc + ld (ix+#21),#00 +.l8c15 + ld a,(de) + bit 7,a + jr nz,l8c29 + ld (hl),#00 + inc hl + ld (hl),a + inc hl + inc hl + inc hl + inc de + ld a,(de) + neg + ld (hl),a + jp l8c41 +.l8c29 + ld (hl),#ff + and #7f + inc hl + ld (hl),a + inc hl + ld (hl),a + inc de + ld a,(de) + ld b,#01 + bit 7,a + jr nz,l8c3b + ld b,#ff +.l8c3b + and #7f + inc hl + ld (hl),a + inc hl + ld (hl),b +.l8c41 + inc de + inc hl + inc (ix+#21) + ld a,#04 + cp (ix+#21) + jr nz,l8c15 + ld (ix+#21),#00 + ld bc,#0014 + or a + sbc hl,bc + ex de,hl + ld hl,l8f2b + ld a,(l8f82) + inc a +.l8c5f + add hl,bc + dec a + jr nz,l8c5f + ex de,hl + ldir + jr l8c6d +.l8c68 + ld a,#00 + ld (ix+#09),a +.l8c6d + ld a,(ix+#09) + ld (ix+#3a),a +.l8c73 + ld l,(ix+#03) + ld h,(ix+#04) + inc hl + ld (ix+#03),l + ld (ix+#04),h + ld a,(ix+#00) + or a + jp z,l89d9 +.l8c87 + ld a,(l8f7b) + or a + jr nz,l8c90 + dec (ix+#07) +.l8c90 + ld a,(ix+#0a) + cp #04 + jp z,l8cda + push ix + pop hl + ld b,a + add a + add a + add b + add #0b + ld c,a + ld b,#00 + add hl,bc + ld a,(hl) + inc hl + or a + jr nz,l8cbd + dec (hl) + jr nz,l8cb0 + inc (ix+#0a) +.l8cb0 + inc hl + inc hl + inc hl + ld a,(ix+#1f) + add (hl) + ld (ix+#1f),a + jp l8cda +.l8cbd + dec (hl) + jr nz,l8cd2 + inc hl + ld a,(hl) + dec hl + ld (hl),a + inc hl + inc hl + inc hl + ld a,(ix+#1f) + add (hl) + ld (ix+#1f),a + dec hl + jp l8cd4 +.l8cd2 + inc hl + inc hl +.l8cd4 + dec (hl) + jr nz,l8cda + inc (ix+#0a) +.l8cda + ld a,(ix+#09) + or a + jp z,l8d77 + push ix + pop hl + ld a,(ix+#21) + ld b,a + add a + add a + add b + add #22 + ld c,a + ld b,#00 + add hl,bc + ld a,(hl) + inc hl + or a + jr nz,l8d18 + dec (hl) + jr nz,l8cfc + inc (ix+#21) +.l8cfc + inc hl + inc hl + inc hl + ld c,(hl) + ld b,#ff + bit 7,c + jr nz,l8d08 + ld b,#00 +.l8d08 + ld l,(ix+#36) + ld h,(ix+#37) + add hl,bc + ld (ix+#36),l + ld (ix+#37),h + jp l8d46 +.l8d18 + dec (hl) + jr nz,l8d3e + inc hl + ld a,(hl) + dec hl + ld (hl),a + inc hl + inc hl + inc hl + push hl + ld c,(hl) + ld b,#ff + bit 7,c + jr nz,l8d2c + ld b,#00 +.l8d2c + ld l,(ix+#36) + ld h,(ix+#37) + add hl,bc + ld (ix+#36),l + ld (ix+#37),h + pop hl + dec hl + jp l8d40 +.l8d3e + inc hl + inc hl +.l8d40 + dec (hl) + jr nz,l8d46 + inc (ix+#21) +.l8d46 + ld a,(ix+#21) + cp #04 + jr nz,l8d77 + ld a,(ix+#09) + cp #02 + jr nz,l8d5b + ld a,#00 + ld (ix+#09),a + jr l8d77 +.l8d5b + ld (ix+#21),#01 + push ix + pop hl + ld bc,#0022 + add hl,bc + ex de,hl + ld a,(l8f82) + inc a + ld hl,l8f2b + ld bc,#0014 +.l8d71 + add hl,bc + dec a + jr nz,l8d71 + ldir +.l8d77 + ld c,(ix+#36) + ld a,(l8f82) + add a + call l905e + ld c,(ix+#37) + inc a + call l905e + ld bc,#003b + add ix,bc + ld a,(l8e45) + rlc a + ld (l8e45),a + cpl + ld (l8e46),a + ld a,(l8f82) + inc a + cp #03 + jp nz,l89cf + ld a,(l8f84) + or a + jr z,l8dd9 + dec a + ld (l8f84),a + or a + jr nz,l8dd9 + ld a,(l8f85) + ld (l8f84),a + ld a,(l8f89) + ld hl,l8f88 + add (hl) + ld (l8f89),a + ld c,a + ld hl,l8f86 + cp (hl) + jr z,l8dcc + ld hl,l8f87 + cp (hl) + jr nz,l8dd4 +.l8dcc + ld a,(l8f88) + xor #fe + ld (l8f88),a +.l8dd4 + ld a,#06 + call l905e +.l8dd9 + ld a,(l8f7b) + or a + jr nz,l8de5 + ld a,(l9202) + ld (l8f7b),a +.l8de5 + ld a,#ff + ld (l8e43),a + ret + push hl + push de + push bc + push af + xor a + ld (l8e43),a + ld a,e + ld (l8e47),a + ld a,b + ld (l8e48),a + ld a,c + ld (l8e49),a + ld hl,l8e4c + ld de,l8e52 + ldi + ldi + ldi + ldi + ldi + ld hl,l8e4c + ld de,l8e8d + ldi + ldi + ldi + ldi + ldi + ld hl,l8e4c + ld de,l8ec8 + ldi + ldi + ldi + ldi + ldi + xor a + ld (l8e59),a + ld (l8e94),a + ld (l8ecf),a + ld a,#ff + ld (l8e43),a + pop af + pop bc + pop de + pop hl + ret +.l8e4a equ $ + 7 +.l8e49 equ $ + 6 +.l8e48 equ $ + 5 +.l8e47 equ $ + 4 +.l8e46 equ $ + 3 +.l8e45 equ $ + 2 +.l8e44 equ $ + 1 +.l8e43 + db #ff,#38,#00,#00,#00,#00,#00,#ff +.l8e4c equ $ + 1 +.l8e4b + db #ff,#00 + dw l8e51,l8e51 +.l8e57 equ $ + 6 +.l8e53 equ $ + 2 +.l8e52 equ $ + 1 +.l8e51 + db #ff,#00,#00,#00,#00,#00,#00,#00 +.l8e59 + 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,#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 +.l8e8d equ $ + 4 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l8e94 equ $ + 3 +.l8e92 equ $ + 1 + 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,#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 +.l8ec8 equ $ + 7 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l8ecf equ $ + 6 +.l8ecd equ $ + 4 + 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 +.l8ee7 equ $ + 6 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l8eef equ $ + 6 + 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,#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,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l8f2b equ $ + 2 + 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,#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,#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,#00,#00,#00,#00,#00,#00,#00 +.l8f80 equ $ + 7 +.l8f7e equ $ + 5 +.l8f7c equ $ + 3 +.l8f7b equ $ + 2 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l8f88 equ $ + 7 +.l8f87 equ $ + 6 +.l8f86 equ $ + 5 +.l8f85 equ $ + 4 +.l8f84 equ $ + 3 +.l8f83 equ $ + 2 +.l8f82 equ $ + 1 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l8f8a equ $ + 1 +.l8f89 + db #00,#00,#00 + dw #0c9c,#0be7,#0b3c,#0a9b + dw #0a02,#0973,#08eb,#086b + dw #07f2,#0780,#0714,#06ae + dw #064e,#05f4,#059e,#054d + dw #0501,#0469,#0475,#0435 + dw #03f9,#03c0,#038a,#0357 + dw #0327,#02fa,#02cf,#02a7 + dw #0281,#025d,#023b,#021b + dw #01fc,#01e0,#01c5,#01ac + dw #0194,#017d,#0168,#0153 + dw #0140,#012e,#011d,#010d + dw #00fe,#00f0,#00e2,#00d6 + dw #00ca,#00be,#00b4,#00aa + dw #00a0,#0097,#008f,#0087 + dw #007f,#0078,#0071,#006b + dw #0065,#005f,#005a,#0055 + dw #0050,#004c,#0047,#0043 + dw #0040,#003c,#0039,#0035 + dw #0032,#0030,#002d,#002a + dw #0028,#0026,#0024,#0022 + dw #0020,#001e,#001c,#001b + dw #0019,#0018,#0016,#0015 + dw #0014,#0013,#0012,#0011 + dw #0010,#000f,#000e,#000d + dw #000c,#000b,#000a +.l9052 + db #02,#03,#04,#06,#08,#0c,#10,#18 + db #20,#30,#40,#60 +.l905e + push af + push bc + ld b,#f4 + out (c),a + ld b,#f6 + in a,(c) + or #c0 + out (c),a + and #3f + out (c),a + ld b,#f4 + out (c),c + ld b,#f6 + ld c,a + or #80 + out (c),a + out (c),c + pop bc + pop af + ret +.l9080 + nop + ld c,b + inc b + ld b,d + inc b + ld b,l + jr nz,l90cd + add b + ld b,b + ld (bc),a + ld b,c + ld bc,#0440 + ld b,b + ld bc,#8121 + sub b + ld bc,#f40e + out (c),c + ld b,#f6 + in a,(c) + and #30 + ld c,a + or #c0 + out (c),a + out (c),c + inc b + ld a,#92 + out (c),a + push bc + ld de,#0800 +.l90af + ld a,(hl) + inc hl + ld b,#f6 + out (c),a + ld b,#f4 + in a,(c) + cpl + and (hl) + jr z,l90be + scf +.l90be + rl e + inc hl + dec d + jr nz,l90af + ld b,#f6 + ld a,#49 + out (c),a + ld b,#f4 +.l90cd equ $ + 1 + in a,(c) + cpl + and #1f + or e + ld e,a + ld (l9080),a + pop bc + ld a,#82 + out (c),a + dec b + out (c),c + ret +.l90df + di + ld a,#00 + ld (l8f83),a + call l911e + call #bca7 + ei + ret +.l90ed + call l8906 + call l90f4 + ret +.l90f4 + di + ld hl,(#0039) + ld de,l911b + ldi + ldi + ldi + dec hl + dec hl + dec hl + ld (hl),#c3 + inc hl + ld de,l912c + ld (hl),e + inc hl + ld (hl),d + inc hl + inc hl + ld (l9154),hl + ld bc,#0033 + add hl,bc + ld (l9151),hl + ei + ret +.l911b + db #00,#00,#00 +.l911e + ld de,(#0039) + ld hl,l911b + ldi + ldi + ldi + ret +.l912c + push af + push bc + push de + push hl + push ix + push iy + ld a,(l9156) +.l9138 equ $ + 1 + cp #06 + jr nz,l9142 + call l8988 + xor a + ld (l9156),a +.l9142 + inc a + ld (l9156),a + pop iy + pop ix + pop hl + pop de + pop bc + pop af + di + ex af,af' +.l9151 equ $ + 1 + jp c,#0000 +.l9154 equ $ + 1 + jp #0000 +.l9156 + db #00,#30,#09,#09,#20,#20,#3b,#20 + db #44,#32,#20,#3a,#20,#64,#75,#72 + db #65,#65,#20,#32,#20,#65,#6e,#76 + db #65,#6c,#6f,#70,#70,#65,#0d,#09 + db #64,#65,#66,#62,#20,#30,#09,#09 + db #20,#20,#64,#6f,#77,#6e,#0d,#0a + db #33,#20,#20,#4e,#09,#22,#39,#22 + db #09,#09,#7c,#0d,#0a,#34,#20,#20 + db #4e,#09,#22,#36,#22,#09,#09,#7c + db #20,#4e,#75,#6d,#65,#72,#69,#63 + db #0d,#0a,#35,#20,#20,#4e,#09,#22 + db #33,#22,#09,#09,#7c,#20,#20,#20 + db #4b,#65,#79,#70,#61,#64,#0d,#0a + db #37,#20,#20,#4e,#09,#22,#2e,#22 + db #09,#09,#7c,#0d,#0a,#38,#20,#20 + db #4e,#09,#22,#5e,#41,#22,#09,#09 + db #43,#43,#50,#20,#63,#75,#72,#73 + db #6f,#72,#20,#6c,#65,#66,#74,#0d + db #0a,#38,#20,#20,#20,#53,#09,#22 + db #5e,#53,#22,#09,#09,#45,#38,#30 + db #20,#77,#6f,#72,#64,#20,#6c,#65 +.l9205 equ $ + 7 +.l9203 equ $ + 5 +.l9202 equ $ + 4 +.l9201 equ $ + 3 +.l9200 equ $ + 2 + db #66,#74,#06,#10,#02,#2f,#00,#79 +.l920d equ $ + 7 +.l920b equ $ + 5 +.l9209 equ $ + 3 +.l9207 equ $ + 1 + db #04,#79,#05,#0e,#00,#19,#00,#24 + db #00,#00,#01,#02,#01,#02,#02,#03 + db #03,#03,#03,#ff,#04,#04,#05,#04 + db #06,#05,#07,#07,#07,#07,#ff,#08 + db #0f,#09,#0a,#0b,#0c,#08,#0f,#0d + db #0e,#ff,#51,#00,#d7,#00,#9b,#01 + db #5f,#02,#b9,#02,#ec,#02,#14,#03 + db #3c,#03,#64,#03,#6e,#03,#82,#03 + db #a0,#03,#be,#03,#dc,#03,#24,#04 + db #6c,#04,#f1,#98,#e0,#00,#a2,#d0 + db #e2,#00,#80,#00,#a1,#ce,#00,#00 + db #00,#a2,#d0,#00,#a1,#ce,#00,#00 + db #00,#a2,#d0,#00,#a1,#ce,#00,#00 + db #00,#a2,#d0,#00,#a1,#ce,#00,#00 + db #00,#a2,#d0,#00,#a1,#ce,#00,#00 + db #00,#a2,#d0,#00,#a1,#ce,#00,#00 + db #00,#a2,#d0,#00,#a1,#ce,#00,#00 + db #00,#a2,#d0,#00,#a1,#ce,#00,#00 + db #00,#a2,#d0,#00,#a1,#ce,#00,#00 + db #00,#a2,#d0,#00,#a1,#ce,#00,#00 + db #00,#a2,#d0,#00,#a1,#ce,#00,#00 + db #00,#a2,#d0,#00,#a1,#ce,#00,#00 + db #00,#a2,#d0,#00,#a1,#ce,#00,#00 + db #00,#a2,#d0,#00,#a1,#ce,#00,#00 + db #00,#a2,#d0,#00,#a1,#ce,#00,#00 + db #00,#a2,#d0,#00,#a1,#ce,#00,#00 + db #00,#ff,#e0,#00,#a5,#d4,#e1,#02 + db #80,#32,#a1,#ce,#e2,#00,#00,#00 + db #00,#a5,#d2,#e1,#02,#32,#a1,#ce + db #e2,#00,#00,#00,#00,#a5,#d4,#e1 + db #02,#32,#a1,#ce,#e2,#00,#00,#00 + db #00,#a5,#d2,#e1,#02,#32,#a1,#ce + db #e2,#00,#00,#00,#00,#a5,#d4,#e1 + db #02,#32,#a1,#ce,#e2,#00,#00,#00 + db #00,#a5,#d2,#e1,#02,#32,#a1,#ce + db #e2,#00,#00,#00,#00,#a5,#d4,#e1 + db #02,#32,#a1,#ce,#e2,#00,#00,#00 + db #00,#a5,#d2,#e1,#02,#32,#a1,#ce + db #e2,#00,#00,#00,#00,#a5,#d4,#e1 + db #02,#32,#a1,#ce,#e2,#00,#00,#00 + db #00,#a5,#d2,#e1,#02,#32,#a1,#ce + db #e2,#00,#00,#00,#00,#a5,#d4,#e1 + db #02,#32,#a1,#ce,#e2,#00,#00,#00 + db #00,#a5,#d2,#e1,#02,#32,#a1,#ce + db #e2,#00,#00,#00,#00,#a5,#d4,#e1 + db #02,#32,#a1,#ce,#e2,#00,#00,#00 + db #00,#a5,#d2,#e1,#02,#32,#a1,#ce + db #e2,#00,#00,#00,#00,#a5,#d4,#e1 + db #02,#32,#a1,#ce,#e2,#00,#00,#00 + db #00,#a5,#d2,#e1,#02,#32,#a1,#ce + db #e2,#00,#00,#00,#00,#ff,#e0,#00 + db #a5,#d2,#e1,#02,#80,#32,#a1,#cf + db #e2,#00,#00,#00,#00,#a5,#d2,#e1 + db #02,#32,#a1,#cf,#e2,#00,#00,#00 + db #00,#a5,#d2,#e1,#02,#32,#a1,#cf + db #e2,#00,#00,#00,#00,#a5,#d2,#e1 + db #02,#32,#a1,#cf,#e2,#00,#00,#00 + db #00,#a5,#d2,#e1,#02,#32,#a1,#cf + db #e2,#00,#00,#00,#00,#a5,#d2,#e1 + db #02,#32,#a1,#cf,#e2,#00,#00,#00 + db #00,#a5,#d2,#e1,#02,#32,#a1,#cf + db #e2,#00,#00,#00,#00,#a5,#d2,#e1 + db #02,#32,#a1,#cf,#e2,#00,#00,#00 + db #00,#a5,#d2,#e1,#02,#32,#a1,#cf + db #e2,#00,#00,#00,#00,#a5,#d2,#e1 + db #02,#32,#a1,#cf,#e2,#00,#00,#00 + db #00,#a5,#d2,#e1,#02,#32,#a1,#cf + db #e2,#00,#00,#00,#00,#a5,#d2,#e1 + db #02,#32,#a1,#cf,#e2,#00,#00,#00 + db #00,#a5,#d2,#e1,#02,#32,#a1,#cf + db #e2,#00,#00,#00,#00,#a5,#d2,#e1 + db #02,#32,#a1,#cf,#e2,#00,#00,#00 + db #00,#a5,#d2,#e1,#02,#32,#a1,#cf + db #e2,#00,#00,#00,#00,#a5,#d2,#e1 + db #02,#32,#a1,#cf,#e2,#00,#00,#00 + db #00,#ff,#e0,#00,#a2,#d0,#e2,#00 + db #84,#00,#a5,#d1,#e1,#02,#32,#a2 + db #d0,#e2,#00,#00,#a5,#d1,#e1,#02 + db #32,#a2,#d0,#e2,#00,#00,#a5,#d1 + db #e1,#02,#82,#32,#32,#a2,#d0,#e2 + db #00,#84,#00,#a5,#d1,#e1,#02,#32 + db #a2,#d0,#e2,#00,#00,#a5,#d1,#e1 + db #02,#32,#a2,#d0,#e2,#00,#00,#a5 + db #d1,#e1,#02,#32,#a2,#d0,#e2,#00 + db #00,#a5,#d1,#e1,#02,#82,#32,#32 + db #a2,#d0,#e2,#00,#84,#00,#a5,#d1 + db #e1,#02,#32,#ff,#e0,#00,#a0,#c1 + db #e1,#0a,#82,#18,#18,#24,#18,#18 + db #22,#18,#18,#20,#18,#18,#1f,#1d + db #1b,#1d,#1f,#18,#18,#24,#18,#18 + db #22,#18,#18,#20,#18,#18,#1f,#c3 + db #e2,#05,#80,#2b,#37,#c2,#43,#4f + db #c3,#43,#37,#c2,#2b,#37,#ff,#e0 + db #05,#a0,#c1,#e1,#0a,#82,#18,#18 + db #24,#18,#18,#22,#18,#18,#20,#18 + db #18,#1f,#1d,#1b,#1d,#1f,#18,#18 + db #24,#18,#18,#22,#18,#18,#20,#18 + db #18,#1f,#18,#18,#1f,#1f,#ff,#e0 + db #07,#a0,#c1,#e1,#0a,#82,#18,#18 + db #24,#18,#18,#22,#18,#18,#20,#18 + db #18,#1f,#1d,#1b,#1d,#1f,#18,#18 + db #24,#18,#18,#22,#18,#18,#20,#18 + db #18,#1f,#18,#18,#1f,#1f,#ff,#e0 + db #00,#a0,#c1,#e1,#0a,#82,#18,#18 + db #24,#18,#18,#18,#24,#18,#18,#18 + db #24,#18,#18,#18,#24,#18,#18,#18 + db #24,#18,#18,#18,#24,#18,#18,#18 + db #24,#18,#18,#18,#24,#18,#ff,#e0 + db #00,#a0,#d6,#e1,#0a,#8a,#0c,#0c + db #ff,#e0,#00,#a0,#c7,#e1,#04,#88 + db #3c,#86,#3e,#3f,#41,#84,#3f,#3e + db #3c,#3a,#86,#37,#ff,#e0,#00,#a0 + db #d1,#e1,#08,#84,#3c,#37,#34,#30 + db #d6,#e1,#0a,#88,#54,#d1,#e1,#08 + db #84,#3c,#37,#34,#30,#c9,#e1,#07 + db #88,#30,#ff,#e0,#00,#a0,#c2,#e2 + db #05,#82,#48,#4a,#4b,#4d,#4b,#4a + db #4b,#4a,#54,#56,#57,#59,#57,#56 + db #57,#56,#d7,#e1,#03,#88,#48,#4f + db #ff,#e0,#fe,#a0,#c2,#e2,#05,#82 + db #48,#4a,#4b,#4d,#4b,#4a,#4b,#4a + db #54,#56,#57,#59,#57,#56,#57,#56 + db #d7,#e1,#03,#88,#3e,#45,#ff,#e0 + db #00,#a0,#c9,#e2,#05,#80,#0c,#0f + db #11,#12,#13,#16,#18,#1b,#1d,#1e + db #1f,#22,#24,#27,#29,#2a,#2b,#2e + db #30,#33,#35,#36,#37,#3a,#3c,#3f + db #41,#42,#43,#46,#48,#4b,#4d,#4e + db #4f,#52,#54,#57,#59,#5a,#5b,#5e + db #60,#5e,#5b,#5a,#59,#57,#54,#52 + db #4f,#4e,#4d,#4b,#48,#46,#43,#42 + db #41,#3f,#3c,#3a,#37,#3a,#ff,#e0 + db #00,#a0,#c9,#e2,#05,#80,#41,#3f + db #3c,#3a,#37,#3a,#3c,#3a,#37,#36 + db #35,#33,#35,#33,#30,#2e,#2b,#2e + db #30,#33,#30,#2e,#30,#2e,#2b,#29 + db #2b,#2e,#2b,#2a,#29,#27,#29,#27 + db #24,#22,#1f,#22,#24,#27,#24,#22 + db #24,#22,#1f,#1d,#1e,#1f,#1e,#1d + db #1b,#1d,#1b,#18,#16,#13,#12,#11 + db #10,#12,#10,#0c,#0a,#0c,#ff,#e0 + db #00,#a0,#d6,#e1,#0a,#8a,#0c,#c9 + db #e1,#07,#54,#ff,#0f,#00,#0f,#00 + db #0f,#00,#0f,#00,#01,#0f,#0a,#ff + db #84,#94,#01,#00,#01,#0d,#0d,#ff + db #01,#00,#01,#00,#01,#0b,#0b,#ff + db #01,#00,#01,#00,#01,#09,#09,#ff + db #01,#00,#01,#00,#01,#07,#07,#ff + db #01,#00,#01,#00,#86,#5a,#27,#00 + db #85,#8d,#86,#c2,#01,#0c,#83,#8b + db #15,#00,#85,#a8,#01,#0c,#01,#00 + db #03,#00,#18,#00,#01,#0a,#01,#00 + db #03,#00,#01,#00,#01,#0e,#01,#00 + db #03,#00,#87,#e2,#01,#0e,#01,#00 + db #82,#9c,#62,#00,#01,#0f,#07,#00 + db #84,#bc,#01,#00,#01,#0f,#04,#ff + db #08,#00,#88,#d3,#01,#0a,#01,#00 + db #01,#f6,#01,#00,#01,#0c,#01,#00 + db #01,#f4,#01,#00,#01,#0e,#01,#00 + db #01,#f2,#01,#00,#01,#0c,#0c,#ff + db #01,#00,#01,#00,#01,#0d,#0d,#ff + db #01,#00,#01,#00,#01,#0b,#0b,#ff + db #01,#00,#01,#00,#01,#09,#09,#ff + db #01,#00,#01,#00,#01,#0e,#01,#00 + db #01,#f2,#01,#00,#01,#0c,#91,#e3 + db #a1,#63,#a1,#63,#82,#14,#0c,#00 + db #01,#00,#82,#94,#01,#0d,#04,#ff + db #08,#00,#8a,#d3,#01,#0b,#04,#ff + db #08,#00,#8c,#d3,#01,#09,#04,#ff + db #08,#00,#95,#d3,#01,#07,#04,#ff + db #08,#00,#9e,#da,#01,#0d,#03,#00 + db #08,#ff,#05,#00,#01,#0e,#86,#92 + db #89,#89,#82,#92,#01,#0f,#02,#00 + db #0c,#ff,#0c,#01,#01,#0d,#0c,#ff + db #0d,#01,#0e,#ff,#01,#00,#01,#00 + db #01,#00,#01,#00,#01,#00,#84,#08 + db #82,#88,#84,#08,#01,#00,#01,#3c + db #03,#ec,#01,#ef,#86,#86,#01,#f1 + db #01,#2b,#01,#e5,#88,#08,#82,#04 + db #04,#fe,#03,#02,#04,#00,#82,#04 + db #04,#ff,#82,#04,#85,#0a,#03,#fd + db #85,#0a,#01,#05,#01,#00,#01,#63 + db #03,#e2,#01,#d1,#01,#04,#01,#38 + db #03,#ec,#01,#f1,#08,#00,#01,#01 + db #01,#fe,#01,#01,#82,#04,#04,#02 + db #04,#fc,#04,#02,#01,#00,#01,#00 + db #01,#01,#01,#ff,#01,#00,#01,#63 + db #02,#d8,#01,#d1,#06,#00,#01,#ff + db #01,#00,#01,#01,#08,#00,#01,#01 + db #01,#fe,#01,#01,#08,#00,#01,#01 + db #01,#01,#01,#01,#01,#00,#01,#00 + db #01,#01,#01,#ff,#01,#00,#01,#63 + db #02,#d8,#01,#d1,#06,#00,#01,#ff + db #01,#00,#01,#01,#08,#00,#01,#01 + db #01,#fe,#01,#01,#08,#00,#01,#01 + db #01,#01,#01,#01,#01,#00,#01,#00 + db #01,#01,#01,#ff,#01,#00,#01,#63 + db #02,#d8,#01,#d1,#06,#00,#01,#ff + db #01,#00,#01,#01,#08,#00,#01,#01 + db #01,#fe,#01,#01,#08,#00,#01,#01 + db #01,#01,#01,#01,#01,#00,#01,#00 + db #01,#01,#01,#ff,#01,#00,#01,#63 + db #02,#d8,#01,#d1,#06,#00,#01,#ff + db #01,#00,#01,#01,#08,#00,#01,#01 + db #01,#fe,#01,#01,#08,#00,#01,#01 + db #01,#01,#01,#01,#01,#00,#01,#00 + db #01,#01,#01,#ff +; +.music_info + db "Croco Magneto (19xx)(Croco News)()",0 + db "Music Pro",0 + + read "music_end.asm" diff --git a/ASM/Crossfire The Desert Arabian Night Fever (1997)(Beng)(Kangaroo)(ST-Module).asm b/ASM/Crossfire The Desert Arabian Night Fever (1997)(Beng)(Kangaroo)(ST-Module).asm new file mode 100644 index 00000000..2310d7c6 --- /dev/null +++ b/ASM/Crossfire The Desert Arabian Night Fever (1997)(Beng)(Kangaroo)(ST-Module).asm @@ -0,0 +1,735 @@ +; Music of Crossfire The Desert Arabian Night Fever (1997)(Beng)(Kangaroo)(ST-Module) +; Ripped by Megachur the 14/03/2015 +; $VER 1.5 + +IFDEF FILENAME_WRITE + write "CROTDANF.BIN" +ENDIF + +MUSIC_DATE_RIP_DAY equ 14 +MUSIC_DATE_RIP_MONTH equ 03 +MUSIC_DATE_RIP_YEAR equ 2015 +music_adr equ #4000 + + read "music_header.asm" + + jr l4004 + jr l4013 +.l4004 + call l402f + ld hl,l4452 + ld de,l401c + ld bc,#81ff + jp #bcd7 +.l4013 + ld hl,l4452 + call #bcdd + jp l409b +.l401c + push ix + call l40b7 + pop ix + ret + jp l402f + jp l40b7 + jp l409b + db #66,#04 +; +.init_music +.l402f +; + ld b,#03 + ld ix,l43fe + ld iy,l432a + ld de,#001c +.l403c + push bc + ld (ix+#06),#01 + ld (ix+#09),d + ld (ix+#1b),d + ld (ix+#05),#10 + ld l,(iy+#00) + ld h,(iy+#01) + ld a,(hl) + ld (ix+#08),a + inc hl + ld c,(hl) + inc hl + ld b,(hl) + inc hl + ld (ix+#0c),l + ld (ix+#0d),h + ld (ix+#00),c + ld (ix+#01),b + add ix,de + inc iy + inc iy + pop bc + djnz l403c + ld a,#06 + ld (l40df),a + ld a,d + ld (l40f3),a + inc a + ld (l40da),a + ld a,#38 + ld (l40e4),a + ld a,#ff + ld (l4326),a + ld (l4327),a + ld (l4328),a + ld (l4329),a + ld a,#0c + ld c,d + call l4308 + ld a,#0d + ld c,d + jp l4308 +; +.stop_music +.l409b +; + ld a,#07 + ld c,#3f + call l4308 + ld a,#08 + ld c,#00 + call l4308 + ld a,#09 + ld c,#00 + call l4308 + ld a,#0a + ld c,#00 + jp l4308 +; +.play_music +.l40b7 +; + ld hl,l40da + dec (hl) + ld ix,l43fe + ld bc,l440c + call l416d + ld ix,l441a + ld bc,l4428 + call l416d + ld ix,l4436 + ld bc,l4444 + call l416d +.l40da equ $ + 1 + ld a,#00 + or a + jr nz,l40e3 +.l40df equ $ + 1 + ld a,#00 + ld (l40da),a +.l40e4 equ $ + 1 +.l40e3 + ld a,#00 + ld hl,l4327 + cp (hl) + jr z,l40f2 + ld (hl),a + ld c,a + ld a,#07 + call l4308 +.l40f3 equ $ + 1 +.l40f2 + ld a,#00 + ld hl,l4326 + cp (hl) + jr z,l4101 + ld (hl),a + ld c,a + ld a,#06 + call l4308 +.l4102 equ $ + 1 +.l4101 + ld a,#00 + ld hl,l4328 + cp (hl) + jr z,l4110 + ld (hl),a + ld c,a + ld a,#0b + call l4308 +.l4111 equ $ + 1 +.l4110 + ld a,#00 + ld hl,l4329 + cp (hl) + ret z + ld (hl),a + ld c,a + ld a,#0d + jp l4308 +.l411e + inc hl + ld b,(hl) + ld (ix+#06),b + inc hl + ld (ix+#00),l + ld (ix+#01),h + jp l421e +.l412d + inc hl + ld a,(hl) + ld (ix+#06),a + inc hl + ld (ix+#00),l + ld (ix+#01),h + xor a + ld (ix+#17),a + ld (ix+#15),a + ld c,a + ld a,(ix+#04) + jp l4308 +.l4147 + ld (ix+#0a),#00 + ld l,(ix+#0c) + ld h,(ix+#0d) + ld a,(hl) + cp #80 + jr nz,l415c + inc hl + ld e,(hl) + inc hl + ld d,(hl) + ex de,hl + ld a,(hl) +.l415c + inc hl + ld e,(hl) + inc hl + ld d,(hl) + inc hl + ld (ix+#0c),l + ld (ix+#0d),h + ld (ix+#08),a + ex de,hl + jr l4180 +.l416d + ld a,(l40da) + or a + jp nz,l421e + dec (ix+#06) + jp nz,l421e + ld l,(ix+#00) + ld h,(ix+#01) +.l4180 + ld a,(hl) + or a + jr z,l411e + cp #fe + jr z,l412d + cp #ff + jr z,l4147 + ld d,#00 + and #7f + sub #0a + add (ix+#08) + ld (ix+#07),a + add a + ld e,a + push hl + ld hl,l4330 + add hl,de + ld a,(hl) + ld (ix+#18),a + inc hl + ld a,(hl) + ld (ix+#19),a + pop hl + ld a,#01 + bit 7,(hl) + jr nz,l41bc + inc hl + ld a,(hl) + bit 7,a + jr z,l41bc + and #7f + ld (ix+#06),a + jr l420f +.l41bc + ld (ix+#06),a + inc hl + push hl + ld a,(hl) + push af + and #0f + cp (ix+#05) + jr z,l41d0 + ld (ix+#05),a + ld (ix+#0a),d +.l41d0 + add a + add a + add a + ld e,a + ld hl,l4466 + add hl,de + ld d,b + ld e,c + ldi + ldi + ldi + ldi + ldi + ldi + ldi + ldi + pop af + pop hl + and #f0 + jr z,l420f + cp #f0 + jp z,l42c4 + cp #d0 + jp z,l42e0 + cp #b0 + jp z,l42e8 + cp #80 + jp nc,l42f0 + cp #10 + jr nz,l420f + xor a + ld (ix+#1b),a + ld (ix+#09),a +.l420f + inc hl + ld (ix+#00),l + ld (ix+#01),h + ld (ix+#16),#00 + ld (ix+#17),#20 +.l421e + ld a,(ix+#17) + or a + jr nz,l4232 + ld a,(ix+#15) + or a + ret z + ld (ix+#17),a + ld a,(ix+#14) + ld (ix+#16),a +.l4232 + ld d,#00 + ld e,(ix+#16) + inc (ix+#16) + dec (ix+#17) + ld a,(ix+#1b) + or a + jr z,l425d + ld h,a + ld l,(ix+#1a) + add hl,de + ld a,(hl) + ld b,(ix+#07) + add b + add a + ld b,d + ld c,a + ld hl,l4330 + add hl,bc + ld a,(hl) + ld (ix+#18),a + inc hl + ld a,(hl) + ld (ix+#19),a +.l425d + ld h,(ix+#0f) + ld l,(ix+#0e) + add hl,de + add hl,de + ld c,(hl) + inc hl + ld b,(hl) + ld l,(ix+#18) + ld h,(ix+#19) + add hl,bc + ld c,l + ld a,(ix+#02) + call l4308 + ld c,h + ld a,(ix+#03) + call l4308 + ld h,(ix+#11) + ld l,(ix+#10) + add hl,de + ld a,(hl) + bit 7,a + jr nz,l429b + and #0f + sub (ix+#0a) + jr nc,l4291 + xor a +.l4291 + or (ix+#09) + ld c,a + ld a,(ix+#04) + call l4308 +.l429b + ld l,(ix+#12) + ld h,(ix+#13) + add hl,de + ld a,(hl) + bit 7,a + ret nz + and #1f + ld b,(ix+#0b) + ld c,a + or a + ld a,b + jr z,l42b8 + ld b,a + ld a,c + ld (l40f3),a + ld a,b + sub #40 +.l42b8 + ld (l42bf),a + ld a,(l40e4) +.l42bf equ $ + 1 + bit 0,a + ld (l40e4),a + ret +.l42c4 + inc hl + ld a,(hl) + push hl + add a + ld b,#00 + ld c,a + ld hl,l44e6 + add hl,bc + ld e,(hl) + inc hl + ld d,(hl) + ld (ix+#1a),e + ld (ix+#1b),d + ld (ix+#09),#00 + pop hl + jp l420f +.l42e0 + inc hl + ld a,(hl) + ld (l40df),a + jp l420f +.l42e8 + inc hl + ld a,(hl) + ld (ix+#0a),a + jp l420f +.l42f0 + ld (ix+#09),#10 + ld (ix+#1b),#00 + ld a,(hl) + rrca + rrca + rrca + rrca + ld (l4111),a + inc hl + ld a,(hl) + ld (l4102),a + jp l420f +.l4308 + ld b,#f4 + out (c),a + ld b,#f6 + in a,(c) + or #c0 + out (c),a + and #3f + out (c),a + ld b,#f4 + out (c),c + ld b,#f6 + ld c,a + or #80 + out (c),a + out (c),c + ret +.l4329 equ $ + 3 +.l4328 equ $ + 2 +.l4327 equ $ + 1 +.l4326 + db #ff,#ff,#ff,#ff +.l432a + dw l46c6,l46e1,l46fc +.l4330 + dw #0eee,#0e18,#0d4d,#0c8e + dw #0bda,#0b2f,#0a8f,#09f7 + dw #0968,#08e1,#0861,#07e9 + dw #0777,#070c,#06a7,#0647 + dw #05ed,#0598,#0547,#04fc + dw #04b4,#0470,#0431,#03f4 + dw #03bc,#0386,#0353,#0324 + dw #02f6,#02cc,#02a4,#027e + dw #025a,#0238,#0218,#01fa + dw #01de,#01c3,#01aa,#0192 + dw #017b,#0166,#0152,#013f + dw #012d,#011c,#010c,#00fd + dw #00ef,#00e1,#00d5,#00c9 + dw #00be,#00b3,#00a9,#009f + dw #0096,#008e,#0086,#007f + dw #0077,#0071,#006a,#0064 + dw #005f,#0059,#0054,#0050 + dw #004b,#0047,#0043,#003f + dw #003c,#0038,#0035,#0032 + dw #002f,#002d,#002a,#0028 + dw #0026,#0024,#0022,#0020 + dw #001e,#001c,#001b,#0019 + dw #0018,#0016,#0015,#0014 + dw #0013,#0012,#0011,#0010 + dw #000f + db #00,#00,#00,#00,#00,#00,#00,#00 +.l43fe equ $ + 4 + db #00,#00,#00,#00,#00,#00,#00,#01 + db #08,#00,#00,#00,#00,#00,#00,#df +.l440c equ $ + 2 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l441a + db #00,#00,#02,#03,#09,#00,#00,#00 +.l4428 equ $ + 6 + db #00,#00,#00,#e7,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l4436 equ $ + 4 + db #00,#00,#00,#00,#00,#00,#04,#05 + db #0a,#00,#00,#00,#00,#00,#00,#ef +.l4444 equ $ + 2 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l4452 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00 + db #53,#54,#2d,#4d,#6f,#64,#75,#6c + db #65,#2e +.l4466 + db #06,#45,#46,#45,#66,#45,#00,#00 + db #06,#45,#86,#45,#66,#45,#00,#00 + db #a6,#45,#e6,#45,#06,#46,#00,#00 + db #ff,#3e,#21,#d1,#70,#9d,#23,#56 + db #23,#40,#10,#3f,#09,#bd,#23,#4e + db #06,#45,#26,#46,#66,#45,#0b,#15 + db #08,#7b,#4f,#45,#00,#2c,#b0,#18 + db #ec,#3d,#a0,#6f,#08,#15,#4d,#4f + db #06,#3f,#af,#57,#75,#3d,#f0,#30 + db #09,#15,#00,#3f,#00,#3f,#00,#00 + db #00,#3f,#00,#3f,#00,#3f,#00,#00 + db #00,#3f,#00,#3f,#00,#3f,#00,#00 + db #00,#3f,#00,#3f,#00,#3f,#00,#00 + db #00,#3f,#00,#3f,#00,#3f,#00,#00 + db #00,#3f,#00,#3f,#00,#3f,#00,#00 + db #00,#3f,#00,#3f,#00,#3f,#00,#00 +.l44e6 + db #46,#46,#66,#46,#86,#46,#a6,#46 + db #00,#3f,#00,#3f,#00,#3f,#00,#3f + db #00,#3f,#00,#3f,#00,#3f,#00,#3f + db #00,#3f,#00,#3f,#00,#3f,#00,#3f + 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,#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,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #0f,#0e,#0d,#0c,#0b,#0b,#80,#80 + db #80,#80,#80,#80,#80,#80,#80,#80 + db #80,#80,#80,#80,#80,#80,#80,#80 + db #80,#80,#09,#07,#05,#03,#02,#00 + 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,#00,#00,#00,#00,#00,#00,#00 + db #0e,#0d,#0d,#0c,#0c,#0b,#0b,#0a + db #0a,#0a,#0a,#0a,#09,#09,#09,#09 + db #09,#08,#08,#08,#08,#08,#07,#07 + db #07,#07,#07,#06,#05,#03,#02,#01 + db #00,#00,#30,#00,#60,#00,#90,#00 + db #c0,#00,#f0,#00,#20,#01,#50,#01 + db #80,#01,#b0,#01,#e0,#01,#10,#02 + db #40,#02,#70,#02,#a0,#02,#d0,#02 + db #00,#03,#20,#03,#40,#03,#60,#03 + db #70,#03,#80,#03,#90,#03,#a0,#03 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #0e,#0e,#0d,#0d,#0c,#0c,#0c,#0b + db #0b,#0b,#0a,#0a,#0a,#09,#09,#09 + db #08,#08,#08,#07,#07,#06,#06,#05 + db #05,#04,#04,#03,#03,#02,#01,#00 + db #05,#00,#00,#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,#01,#01,#01,#01,#01,#00 + db #06,#06,#06,#07,#07,#07,#08,#08 + db #08,#09,#09,#09,#09,#09,#09,#09 + db #09,#09,#09,#09,#09,#09,#09,#09 + db #09,#09,#09,#09,#09,#09,#09,#09 + db #00,#fb,#f7,#00,#fb,#f7,#00,#fb + db #f7,#00,#fb,#f7,#00,#fb,#f7,#00 + db #fb,#f7,#00,#fb,#f7,#00,#fb,#f7 + db #00,#fb,#f7,#00,#fb,#f7,#00,#fb + db #00,#fb,#f8,#00,#fb,#f8,#00,#fb + db #f8,#00,#fb,#f8,#00,#fb,#f8,#00 + db #fb,#f8,#00,#fb,#f8,#00,#fb,#f8 + db #00,#fb,#f8,#00,#fb,#f8,#00,#fb + db #00,#fd,#f9,#00,#fd,#f9,#00,#fd + db #f9,#00,#fd,#f9,#00,#fd,#f9,#00 + db #fd,#f9,#00,#fd,#f9,#00,#fd,#f9 + db #00,#fd,#f9,#00,#fd,#f9,#00,#fd + db #00,#05,#08,#00,#05,#08,#00,#05 + db #08,#00,#05,#08,#00,#05,#08,#00 + db #05,#08,#00,#05,#08,#00,#05,#08 + db #00,#05,#08,#00,#05,#08,#00,#05 +.l46c6 + db #00,#17,#47,#00,#17,#47,#00,#69 + db #47,#00,#69,#47,#00,#bb,#47,#00 + db #bb,#47,#00,#69,#47,#00,#69,#47 +.l46e1 equ $ + 3 + db #80,#c6,#46,#00,#0d,#48,#00,#89 + db #48,#00,#fe,#48,#00,#59,#49,#00 + db #a6,#49,#00,#39,#4a,#00,#fe,#48 +.l46fc equ $ + 6 + db #00,#59,#49,#80,#e1,#46,#00,#c8 + db #4a,#00,#d9,#4a,#00,#ea,#4a,#00 + db #fb,#4a,#00,#0c,#4b,#00,#1b,#4b + db #00,#ea,#4a,#00,#fb,#4a,#80,#fc + db #46,#27,#02,#00,#27,#82,#2e,#02 + db #02,#22,#02,#00,#27,#82,#27,#82 + db #2e,#02,#02,#23,#02,#00,#27,#82 + db #27,#82,#2e,#02,#02,#22,#02,#00 + db #27,#82,#29,#82,#2e,#02,#02,#27 + db #02,#00,#27,#82,#27,#82,#2e,#02 + db #02,#22,#02,#00,#27,#82,#27,#82 + db #2e,#02,#02,#23,#02,#00,#27,#82 + db #27,#82,#2e,#02,#02,#22,#02,#00 + db #27,#82,#29,#82,#2e,#02,#02,#27 + db #02,#00,#ff,#23,#02,#00,#23,#82 + db #2e,#02,#02,#1e,#02,#00,#23,#82 + db #23,#82,#2e,#02,#02,#1e,#02,#00 + db #23,#82,#23,#82,#2e,#02,#02,#1e + db #02,#00,#23,#82,#23,#82,#2e,#02 + db #02,#20,#02,#00,#25,#82,#25,#82 + db #2e,#02,#02,#20,#02,#00,#25,#82 + db #25,#82,#2e,#02,#02,#20,#02,#00 + db #25,#82,#25,#82,#2e,#02,#02,#20 + db #02,#00,#25,#82,#25,#82,#2e,#02 + db #02,#25,#02,#00,#ff,#27,#02,#00 + db #27,#82,#2e,#02,#02,#22,#02,#00 + db #27,#82,#27,#82,#2e,#02,#02,#22 + db #02,#00,#27,#82,#27,#82,#2e,#02 + db #02,#22,#02,#00,#27,#82,#27,#82 + db #2e,#02,#02,#22,#02,#00,#25,#82 + db #25,#82,#2e,#02,#02,#20,#02,#00 + db #25,#82,#25,#82,#2e,#02,#02,#20 + db #02,#00,#26,#82,#26,#82,#2e,#02 + db #02,#22,#02,#00,#26,#82,#26,#82 + db #2e,#02,#02,#22,#02,#00,#ff,#3f + db #02,#b1,#00,#ba,#b1,#05,#3f,#03 + db #b1,#03,#3f,#02,#b1,#00,#c2,#b1 + db #00,#3f,#02,#b1,#03,#c2,#b1,#03 + db #45,#02,#b1,#00,#c2,#b1,#05,#c5 + db #b1,#03,#46,#02,#b1,#00,#c5,#b1 + db #05,#46,#03,#b1,#03,#42,#03,#b1 + db #00,#42,#03,#b1,#03,#45,#02,#b1 + db #00,#c6,#b1,#00,#c5,#b1,#03,#c2 + db #b1,#00,#c6,#b1,#03,#c5,#b1,#05 + db #c2,#b1,#03,#42,#02,#b1,#00,#c2 + db #b1,#05,#c2,#b1,#03,#41,#02,#b1 + db #00,#c2,#b1,#05,#c1,#b1,#03,#3d + db #02,#b1,#00,#bf,#b1,#00,#3d,#02 + db #b1,#03,#bf,#b1,#03,#3d,#02,#b1 + db #05,#3f,#88,#3a,#03,#b1,#00,#ba + db #b1,#03,#ff,#3f,#02,#b1,#00,#ba + db #b1,#05,#3f,#03,#b1,#03,#3f,#02 + db #b1,#00,#c2,#b1,#00,#3f,#02,#b1 + db #03,#c2,#b1,#03,#45,#02,#b1,#00 + db #c2,#b1,#05,#c5,#b1,#03,#46,#02 + db #b1,#00,#c5,#b1,#05,#46,#03,#b1 + db #03,#42,#03,#b1,#00,#42,#03,#b1 + db #03,#45,#02,#b1,#00,#c6,#b1,#00 + db #c5,#b1,#03,#c2,#b1,#00,#c6,#b1 + db #03,#c5,#b1,#05,#c2,#b1,#03,#42 + db #02,#b1,#00,#c2,#b1,#05,#c2,#b1 + db #03,#41,#02,#b1,#00,#c2,#b1,#05 + db #c1,#b1,#03,#3d,#02,#b1,#00,#bf + db #b1,#00,#3d,#02,#b1,#03,#bf,#b1 + db #03,#3d,#02,#b1,#05,#3f,#8c,#ff + db #3f,#03,#b1,#00,#3f,#03,#b1,#03 + db #3f,#86,#3f,#02,#b1,#00,#bd,#b1 + db #00,#bf,#b1,#03,#bf,#b1,#00,#bd + db #b1,#03,#bf,#b1,#05,#bf,#b1,#03 + db #3d,#02,#b1,#05,#42,#03,#b1,#00 + db #42,#03,#b1,#03,#43,#03,#b1,#00 + db #c3,#b1,#03,#44,#02,#b1,#00,#c3 + db #b1,#05,#44,#03,#b1,#03,#44,#0a + db #b1,#05,#49,#03,#b1,#00,#49,#03 + db #b1,#03,#49,#02,#b1,#05,#4a,#03 + db #b1,#00,#4a,#03,#b1,#03,#4a,#02 + db #b1,#05,#ff,#3f,#03,#b1,#00,#3f + db #03,#b1,#03,#3f,#06,#b1,#05,#3f + db #02,#b1,#00,#bd,#b1,#00,#bf,#b1 + db #03,#bf,#b1,#00,#bd,#b1,#03,#bf + db #b1,#05,#bf,#b1,#03,#3d,#02,#b1 + db #05,#42,#03,#b1,#00,#42,#03,#b1 + db #03,#46,#03,#b1,#00,#c6,#b1,#03 + db #44,#02,#b1,#00,#c6,#b1,#05,#44 + db #03,#b1,#03,#44,#03,#b1,#05,#44 + db #03,#b1,#06,#44,#14,#b1,#08,#ff + db #46,#02,#b1,#00,#c4,#b1,#00,#c6 + db #b1,#03,#c2,#b1,#00,#c4,#b1,#03 + db #c6,#b1,#00,#c2,#b1,#03,#c4,#b1 + db #05,#c6,#b1,#03,#42,#02,#b1,#05 + db #49,#02,#b1,#00,#cb,#b1,#00,#49 + db #02,#b1,#03,#cb,#b1,#03,#49,#02 + db #b1,#05,#4b,#03,#b1,#00,#cb,#b1 + db #03,#4b,#02,#b1,#00,#cb,#b1,#05 + db #cb,#b1,#03,#4b,#02,#b1,#00,#cb + db #b1,#05,#cb,#b1,#03,#49,#02,#b1 + db #00,#cb,#b1,#05,#49,#03,#b1,#03 + db #46,#03,#b1,#00,#46,#03,#b1,#03 + db #42,#02,#b1,#00,#c4,#b1,#00,#42 + db #02,#b1,#03,#c4,#b1,#03,#42,#02 + db #b1,#05,#44,#02,#b1,#00,#c2,#b1 + db #00,#c4,#b1,#03,#c1,#b1,#00,#c2 + db #b1,#03,#c2,#b1,#00,#c1,#b1,#03 + db #bf,#b1,#00,#42,#02,#b1,#03,#bf + db #b1,#03,#ff,#46,#02,#b1,#00,#c4 + db #b1,#00,#c6,#b1,#03,#c2,#b1,#00 + db #c4,#b1,#03,#c6,#b1,#00,#c2,#b1 + db #03,#c4,#b1,#05,#c6,#b1,#00,#42 + db #02,#b1,#05,#49,#02,#b1,#00,#cb + db #b1,#00,#49,#02,#b1,#03,#cb,#b1 + db #03,#49,#02,#b1,#05,#4b,#02,#b1 + db #00,#4b,#02,#b1,#03,#cb,#b1,#00 + db #4b,#02,#b1,#05,#cb,#b1,#03,#4b + db #02,#b1,#00,#cb,#b1,#05,#cb,#b1 + db #03,#49,#02,#b1,#00,#cb,#b1,#05 + db #49,#03,#b1,#03,#46,#03,#b1,#00 + db #46,#03,#b1,#03,#42,#02,#b1,#00 + db #c1,#b1,#00,#42,#02,#b1,#03,#c1 + db #b1,#03,#42,#02,#b1,#05,#41,#03 + db #b1,#00,#c1,#b1,#03,#3f,#02,#b1 + db #00,#c1,#b1,#05,#bf,#b1,#03,#3e + db #02,#b1,#00,#bf,#b1,#05,#be,#b1 + db #03,#ff,#4b,#10,#f5,#00,#46,#10 + db #f5,#03,#4b,#18,#f5,#00,#46,#08 + db #f5,#01,#ff,#4b,#10,#f5,#00,#46 + db #10,#f5,#03,#4b,#18,#f5,#00,#46 + db #08,#f5,#01,#ff,#4b,#10,#f5,#00 + db #46,#10,#f5,#03,#50,#18,#f5,#02 + db #55,#08,#f5,#01,#ff,#4b,#10,#f5 + db #00,#46,#10,#f5,#03,#50,#18,#f5 + db #02,#55,#08,#f5,#01,#ff,#57,#10 + db #f5,#00,#53,#10,#f5,#01,#50,#10 + db #f5,#02,#4d,#90,#ff,#57,#10,#f5 + db #00,#53,#10,#f5,#01,#50,#10,#f5 + db #02,#4d,#90,#ff +; +.music_info + db "Crossfire The Desert Arabian Night Fever (1997)(Beng)(Kangaroo)",0 + db "ST-Module",0 + + read "music_end.asm" diff --git a/ASM/Crystal Kingdown Dizzy (1992)(Codemasters)()().asm b/ASM/Crystal Kingdown Dizzy (1992)(Codemasters)()().asm new file mode 100644 index 00000000..ba39f945 --- /dev/null +++ b/ASM/Crystal Kingdown Dizzy (1992)(Codemasters)()().asm @@ -0,0 +1,923 @@ +; Music of Crystal Kingdown Dizzy (1992)(Codemasters)()() +; Ripped by Megachur the 04/07/2008 +; $VER 1.5 + +IFDEF FILENAME_WRITE + write "CRYSTAKD.BIN" +ENDIF + +MUSIC_DATE_RIP_DAY equ 04 +MUSIC_DATE_RIP_MONTH equ 07 +MUSIC_DATE_RIP_YEAR equ 2008 +music_adr equ #b1a7 +FIRST_THEME equ 0 +LAST_THEME equ 3 + + read "music_header.asm" + +; +.stop_music +; + xor a + ld (lb666),a + jp lbfd5 +; +.init_music +; + ex af,af' + xor a + ld (lb666),a + ex af,af' + ld c,a + add a + add c + add a + ld c,a + ld b,#00 + ld hl,lb668 + add hl,bc + ld ix,lb1fb + ld c,#1f + ld a,#03 +.lb1c7 + ld e,(hl) + inc hl + ld d,(hl) + inc hl + push hl + ld (ix+#10),#01 + ld (ix+#00),b + ld (ix+#1d),b + ld (ix+#03),e + ld (ix+#04),d + ex de,hl + ld e,(hl) + inc hl + ld d,(hl) + ld (ix+#05),#02 + ld (ix+#06),b + pop hl + ld (ix+#01),e + ld (ix+#02),d + add ix,bc + dec a + jr nz,lb1c7 + inc a + ld (lb300),a + ld (lb666),a + ret +.lb1ff equ $ + 4 +.lb1fe equ $ + 3 +.lb1fb + 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,#00,#00,#00,#00,#00,#09 +.lb21e equ $ + 4 +.lb21d equ $ + 3 +.lb21a + 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,#00,#00,#00,#00,#00,#12 +.lb23d equ $ + 4 +.lb23c equ $ + 3 +.lb239 + 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,#00,#00,#00,#00,#00,#24 +; sound fx ? + ld c,a + add a + add c + add a + ld c,a + ld b,#00 + ld hl,lb668 + add hl,bc + ld a,(hl) + ld (lb1fe),a + inc hl + ld a,(hl) + ld (lb1ff),a + inc hl + ld a,(hl) + ld (lb21d),a + inc hl + ld a,(hl) + ld (lb21e),a + inc hl + ld a,(hl) + ld (lb23c),a + inc hl + ld a,(hl) + ld (lb23d),a + ret +; +.play_music +.lb281 +; + ld a,(lb666) + and a + ret z +.lb287 equ $ + 1 + ld a,#00 + ld (lb2d4),a + ld hl,lb300 + dec (hl) + jr nz,lb2ac + ld b,(hl) + ld ix,lb1fb + call lb3c6 + ld ix,lb21a + call lb3c6 + ld ix,lb239 + call lb3c6 + ld hl,lb300 +.lb2ab equ $ + 1 + ld (hl),#01 +.lb2ac + ld ix,lb1fb + call lb468 + ld (lb579),hl + ld (lb581),a + ld ix,lb21a + call lb468 + ld (lb57b),hl + ld (lb582),a + ld ix,lb239 + call lb468 + ld (lb57d),hl + ld (lb583),a +.lb2d4 equ $ + 1 + ld a,#00 + ld (lb57f),a + ld hl,lb586 + ld d,#0d +.lb2dd + ld e,(hl) + ld b,#f4 + out (c),d + ld bc,#f610 + out (c),c + ld a,#d0 + out (c),a + out (c),c + ld b,#f4 + out (c),e + ld b,#f6 + add a + or #10 + out (c),a + out (c),c + dec hl + dec d + jp p,lb2dd + ret +.lb300 + db #00,#bc,#a4,#a8,#ad,#6b,#9a,#95 + db #10,#84,#7c,#4a,#39,#58,#a9,#01 + xor a + ld (lb666),a + pop hl + jp lbfd5 + ld c,(ix+#05) + ld b,(ix+#06) + ld l,(ix+#03) + ld h,(ix+#04) + add hl,bc + inc bc + inc bc + ld a,(hl) + inc hl + ld d,(hl) + ld e,a + or d + jr nz,lb33a + ld l,(ix+#03) + ld h,(ix+#04) + ld bc,#0002 + ld e,(hl) + inc hl + ld d,(hl) +.lb33a + ld (ix+#05),c + ld (ix+#06),b + ld b,#00 + jp lb3d4 + ld a,(ix+#1e) + ld c,a + and #07 + ld hl,lb55e + xor (hl) + and c + xor (hl) + ld (hl),a + jp lb3d4 + ld a,(ix+#1e) + ld c,a + and #38 + ld hl,lb55e + xor (hl) + and c + xor (hl) + ld (hl),a + jp lb3d4 + ld hl,lb55e + ld a,(ix+#1e) + cpl + and (hl) + ld (hl),a + jr lb3d4 + ld a,(de) + inc de + ld (ix+#07),b + ld (ix+#08),b + ld (ix+#0d),a + set 2,(ix+#00) + ld a,(de) + ld (ix+#0e),a + inc de + jr lb3d4 + ld a,(de) + inc de + ld (lb287),a + jr lb3d4 + ld a,(de) + ld (ix+#1b),a + inc de + ld a,(de) + ld (ix+#1a),a + inc de + ld (ix+#1c),a + jr lb3d4 + set 7,(ix+#00) + set 3,(ix+#00) + jr lb3d4 + ld (ix+#1d),b + jr lb3d4 + ld (ix+#1d),#40 + jr lb3d4 + ld (ix+#1d),#c0 + jr lb3d4 + set 1,(ix+#00) + jr lb3d4 + ld (ix+#13),b + res 5,(ix+#00) + jr lb3f7 +.lb3c6 + dec (ix+#10) + jr nz,lb404 + ld (ix+#00),b + ld e,(ix+#01) + ld d,(ix+#02) +.lb3d4 + ld a,(de) + inc de + and a + jp m,lb415 + ld (ix+#12),a + ld a,(ix+#19) + ld (ix+#13),a + set 5,(ix+#00) + set 6,(ix+#00) + ld a,(ix+#14) + ld (ix+#16),a + ld a,(ix+#17) + ld (ix+#18),a +.lb3f7 + ld a,(ix+#11) + ld (ix+#10),a + ld (ix+#02),d + ld (ix+#01),e + ret +.lb404 + ld a,(ix+#00) + bit 3,a + ret z + rla + jr nc,lb411 + inc (ix+#12) + ret +.lb411 + dec (ix+#12) + ret +.lb415 + cp #b8 + jr c,lb460 + add #20 + jr c,lb445 + add #10 + jr c,lb44b + add #10 + jr nc,lb43e + ld c,a + ld hl,lb62f + add hl,bc + ld c,(hl) + add hl,bc + ld (ix+#0b),l + ld (ix+#09),l + ld (ix+#0c),h + ld (ix+#0a),h + set 4,(ix+#00) + jr lb3d4 +.lb43e + add #09 + ld (lb2ab),a + jr lb3d4 +.lb445 + inc a + ld (ix+#11),a + jr lb3d4 +.lb44b + ld (ix+#19),a + ld a,(de) + inc de + ld (ix+#14),a + ld a,(de) + inc de + ld (ix+#15),a + ld a,(de) + inc de + ld (ix+#17),a + jp lb3d4 +.lb460 + ld hl,lb281 + ld c,a + add hl,bc + ld c,(hl) + add hl,bc + jp (hl) +.lb468 + ld c,(ix+#00) + bit 5,c + jr z,lb4b3 + ld a,(ix+#16) + sub #10 + jr nc,lb49b + bit 6,c + jr z,lb4a0 + add (ix+#13) + jr nc,lb480 + sbc a +.lb480 + add #10 + ld (ix+#13),a + ld a,(ix+#18) + sub #10 + jr nc,lb496 + res 6,c + ld a,(ix+#15) + ld (ix+#16),a + jr lb4b3 +.lb496 + ld (ix+#18),a + jr lb4b3 +.lb49b + ld (ix+#16),a + jr lb4b3 +.lb4a0 + cpl + sub #0f + add (ix+#13) + jr c,lb4a9 + sub a +.lb4a9 + ld (ix+#13),a + dec (ix+#18) + jr nz,lb4b3 + res 5,c +.lb4b3 + ld a,(ix+#12) + bit 4,c + jr z,lb4d5 + ld b,a + ld l,(ix+#0b) + ld h,(ix+#0c) + ld a,(hl) + cp #54 + jr c,lb4cd + ld l,(ix+#09) + ld h,(ix+#0a) + ld a,(hl) +.lb4cd + inc hl + ld (ix+#0b),l + ld (ix+#0c),h + add b +.lb4d5 + ld hl,lb587 + ld d,#00 + add a + ld e,a + add hl,de + ld e,(hl) + inc hl + ld d,(hl) + ld l,(ix+#1d) + bit 6,l + jr z,lb52f + ld h,a + ld b,(ix+#1a) + sla b + bit 7,l + ld a,(ix+#1c) + jr z,lb4f8 + bit 0,c + jr nz,lb516 +.lb4f8 + bit 5,l + jr nz,lb508 + sub (ix+#1b) + jr nc,lb513 + set 5,(ix+#1d) + sub a + jr lb513 +.lb508 + add (ix+#1b) + cp b + jr c,lb513 + res 5,(ix+#1d) + ld a,b +.lb513 + ld (ix+#1c),a +.lb516 + ex de,hl + srl b + sub b + ld e,a + ld a,d + ld d,#00 + jr nc,lb521 + dec d +.lb521 + add #a0 + jr c,lb52d +.lb525 + sla e + rl d + add #18 + jr nc,lb525 +.lb52d + add hl,de + ex de,hl +.lb52f + ld a,c + xor #01 + ld (ix+#00),a + bit 2,c + jr z,lb55a + ld b,(ix+#0e) + djnz lb557 + ld c,(ix+#0d) + bit 7,c + jr z,lb546 + dec b +.lb546 + ld l,(ix+#07) + ld h,(ix+#08) + add hl,bc + ld (ix+#07),l + ld (ix+#08),h + add hl,de + ex de,hl + jr lb55a +.lb557 + ld (ix+#0e),b +.lb55a + cpl + and #03 +.lb55e equ $ + 1 + ld a,#38 + jr nz,lb56b + ld a,(lb287) + xor #08 + ld (lb2d4),a + ld a,#07 +.lb56b + ld hl,lb580 + xor (hl) + and (ix+#1e) + xor (hl) + ld (hl),a + ex de,hl + ld a,(ix+#13) + ret +.lb580 equ $ + 7 +.lb57f equ $ + 6 +.lb57d equ $ + 4 +.lb57b equ $ + 2 +.lb579 + db #00,#00,#00,#00,#00,#00,#00,#38 +.lb586 equ $ + 5 +.lb583 equ $ + 2 +.lb582 equ $ + 1 +.lb581 + db #0f,#0f,#0d,#00,#00,#00 +.lb587 + dw #077c,#0708,#06b0,#0640 + dw #05ec,#0594,#0544,#04f8 + dw #04b0,#0470,#042c,#03f0 + dw #03be,#0384,#0358,#0320 + dw #02f6,#02ca,#02a2,#027c + dw #0258,#0238,#0216,#01f8 + dw #01df,#01c2,#01ac,#0190 + dw #017b,#0165,#0151,#013e + dw #012c,#011c,#010b,#00fc + dw #00ef,#00e1,#00d6,#00c8 + dw #00bd,#00b2,#00a8,#009f + dw #0096,#008e,#0085,#007e + dw #0077,#0070,#006b,#0064 + dw #005e,#0059,#0054,#004f + dw #004b,#0047,#0042,#003f + dw #003b,#0038,#0035,#0032 + dw #002f,#002c,#002a,#0027 + dw #0025,#0023,#0021,#001f + dw #001d,#001c,#001a,#0019 + dw #0017,#0016,#0015,#0013 + dw #0012,#0011,#0010,#000f +.lb62f + db #09,#0d,#0f,#14,#17,#1b,#1d,#21 + db #23,#00,#03,#07,#87,#00,#04,#07 + db #87,#00,#03,#07,#0c,#87,#00,#04 + db #07,#0c,#87,#07,#0c,#0f,#87,#07 + db #0c,#10,#87,#03,#07,#0c,#87,#04 + db #07,#0c,#87,#00,#00,#0c,#0c,#00 +.music_end equ $ + 7 +.lb666 equ $ + 7 + db #00,#0c,#0c,#87,#0c,#18,#87,#00 + db #00 +.lb668 + dw lb680,lb69a,lb6b4 + dw lb6ca,lb6ea,lb70a,lb722 + dw lb726,lb72a,lb72e,lb732 + dw lb736 +.lb680 + dw lb73a,lb835,lb835,lb835 + dw lb835,lb835,lb835,lb835 + dw lb835,lb835,lb835,lb835 +.lb69a equ $ + 2 + dw #0000,lb7f1,lba38,lba38 + dw lba38,lba38,lba38,lba38 + dw lba38,lba38,lba38,lba38 +.lb6b4 equ $ + 4 + dw lba38,#0000,lb80b,lbf8d + dw lba56,lbaa3,lba56,lbaa3 + dw lbaf3,lbb85,lbbd2,lbc22 +.lb6ca equ $ + 2 + dw #0000,lbcb4,lbd19,lbd19 + dw lbd19,lbd19,lbd19,lbd19 + dw lbd19,lbdda,lbdda,lbdda + dw lbdda,lbd19,lbd19,lbd19 +.lb6ea equ $ + 2 + dw #0000,lbcdd,lbdda,lbdda + dw lbdda,lbdda,lbdda,lbdda + dw lbdda,lbfc2,lbfc2,lbfc2 + dw lbfc2,lbdda,lbdda,lbdda +.lb70a equ $ + 2 + dw #0000,lbcfb,lbf9f,lbf9f + dw lbd77,lbcb4,lbcb4,lbf9f + dw lbf9f,lbcb4,lbcb4,lbd77 +.lb726 equ $ + 6 +.lb722 equ $ + 2 + dw #0000,lbebb,#0000,lbef4 +.lb72e equ $ + 6 +.lb72a equ $ + 2 + dw #0000,lbed5,#0000,lbf22 +.lb736 equ $ + 6 +.lb732 equ $ + 2 + dw #0000,lbf43,#0000,lbf6d + dw #0000 +.lb73a + db #ba,#8a,#88,#01,#01,#de,#00,#12 + db #13,#e3,#1d,#8b,#88,#01,#02,#81 + db #df,#00,#01,#10,#84,#50,#01,#8c + db #28,#8a,#88,#01,#01,#de,#00,#12 + db #12,#e3,#1c,#8b,#88,#01,#02,#81 + db #df,#00,#01,#10,#84,#50,#01,#8c + db #28,#8a,#88,#01,#01,#de,#00,#12 + db #12,#e3,#1a,#8b,#88,#01,#02,#81 + db #df,#00,#01,#10,#84,#50,#01,#8c + db #28,#8a,#88,#01,#01,#de,#00,#12 + db #12,#e3,#18,#8b,#88,#01,#02,#81 + db #df,#00,#01,#10,#84,#50,#01,#8c + db #28,#8a,#88,#01,#01,#de,#00,#12 + db #12,#e3,#1a,#8b,#88,#01,#02,#81 + db #df,#00,#01,#10,#84,#50,#01,#8c + db #28,#8a,#88,#01,#01,#de,#00,#12 + db #12,#e3,#1c,#8b,#88,#01,#02,#81 + db #df,#00,#01,#10,#84,#50,#01,#8c + db #28,#8a,#88,#01,#01,#de,#00,#12 + db #12,#e3,#1d,#8b,#88,#01,#02,#81 + db #df,#00,#01,#10,#84,#50,#01,#8c + db #28,#8a,#88,#01,#01,#de,#00,#12 +.lb7f1 equ $ + 7 + db #12,#ff,#84,#fb,#0c,#11,#87,#ba + db #8a,#88,#01,#01,#dd,#00,#52,#23 + db #ef,#c3,#29,#c0,#26,#c0,#26,#e7 + db #c3,#29,#ff,#84,#fd,#0c,#c3,#1d +.lb80b equ $ + 1 + db #87,#ba,#8a,#88,#01,#02,#82,#dd + db #00,#22,#13,#e5,#35,#e1,#35,#e5 + db #34,#e1,#34,#e5,#32,#e1,#32,#e5 + db #30,#e1,#30,#e5,#32,#e1,#32,#e5 + db #34,#e1,#34,#e7,#35,#ff,#84,#fc +.lb835 equ $ + 3 + db #0c,#29,#87,#ba,#8a,#88,#01,#01 + db #dd,#00,#32,#13,#e5,#0c,#8b,#88 + db #01,#02,#81,#df,#00,#01,#10,#e2 + db #84,#50,#01,#8c,#28,#8a,#88,#01 + db #01,#dd,#00,#32,#13,#e5,#0c,#e2 + db #18,#8b,#88,#01,#02,#81,#df,#00 + db #01,#10,#e2,#84,#50,#01,#8c,#28 + db #8a,#88,#01,#01,#dd,#00,#32,#13 + db #e2,#0c,#ba,#8a,#88,#01,#01,#dd + db #00,#32,#13,#e5,#0c,#8b,#88,#01 + db #02,#81,#df,#00,#01,#10,#e2,#84 + db #50,#01,#8c,#28,#8a,#88,#01,#01 + db #dd,#00,#32,#13,#e5,#0c,#e2,#18 + db #8b,#88,#01,#02,#81,#df,#00,#01 + db #10,#e2,#84,#50,#01,#8c,#28,#8a + db #88,#01,#01,#dd,#00,#32,#13,#e2 + db #0c,#ba,#8a,#88,#01,#01,#dd,#00 + db #32,#13,#e5,#08,#8b,#88,#01,#02 + db #81,#df,#00,#01,#10,#e2,#84,#50 + db #01,#8c,#28,#8a,#88,#01,#01,#dd + db #00,#32,#13,#e5,#08,#e2,#14,#8b + db #88,#01,#02,#81,#df,#00,#01,#10 + db #e2,#84,#50,#01,#8c,#28,#8a,#88 + db #01,#01,#dd,#00,#32,#13,#e2,#08 + db #ba,#8a,#88,#01,#01,#dd,#00,#32 + db #13,#e5,#08,#8b,#88,#01,#02,#81 + db #df,#00,#01,#10,#e2,#84,#50,#01 + db #8c,#28,#8a,#88,#01,#01,#dd,#00 + db #32,#13,#e5,#08,#e2,#14,#8b,#88 + db #01,#02,#81,#df,#00,#01,#10,#e2 + db #84,#50,#01,#8c,#28,#8b,#88,#01 + db #02,#81,#df,#00,#01,#10,#e2,#84 + db #50,#01,#8c,#28,#ba,#8a,#88,#01 + db #01,#dd,#00,#32,#13,#e5,#0a,#8b + db #88,#01,#02,#81,#df,#00,#01,#10 + db #e2,#84,#50,#01,#8c,#28,#8a,#88 + db #01,#01,#dd,#00,#32,#13,#e5,#0a + db #e2,#16,#8b,#88,#01,#02,#81,#df + db #00,#01,#10,#e2,#84,#50,#01,#8c + db #28,#8a,#88,#01,#01,#dd,#00,#32 + db #13,#e2,#0a,#ba,#8a,#88,#01,#01 + db #dd,#00,#32,#13,#e5,#0a,#8b,#88 + db #01,#02,#81,#df,#00,#01,#10,#e2 + db #84,#50,#01,#8c,#28,#8a,#88,#01 + db #01,#dd,#00,#32,#13,#e5,#0a,#e2 + db #16,#8b,#88,#01,#02,#81,#df,#00 + db #01,#10,#e2,#84,#50,#01,#8c,#28 + db #8a,#88,#01,#01,#dd,#00,#32,#13 + db #e2,#0a,#ba,#8a,#88,#01,#01,#dd + db #00,#32,#13,#e5,#07,#8b,#88,#01 + db #02,#81,#df,#00,#01,#10,#e2,#84 + db #50,#01,#8c,#28,#8a,#88,#01,#01 + db #dd,#00,#32,#13,#e5,#07,#e2,#13 + db #8b,#88,#01,#02,#81,#df,#00,#01 + db #10,#e2,#84,#50,#01,#8c,#28,#8a + db #88,#01,#01,#dd,#00,#32,#13,#e2 + db #07,#ba,#8a,#88,#01,#01,#dd,#00 + db #32,#13,#e5,#0b,#8b,#88,#01,#02 + db #81,#df,#00,#01,#10,#e2,#84,#50 + db #01,#8c,#28,#8a,#88,#01,#01,#dd + db #00,#32,#13,#e5,#0b,#e2,#17,#8b + db #88,#01,#02,#81,#df,#00,#01,#10 + db #e2,#84,#50,#01,#8c,#28,#8b,#88 + db #01,#02,#81,#df,#00,#01,#10,#e2 +.lba38 equ $ + 6 + db #84,#50,#01,#8c,#28,#87,#ba,#8a + db #88,#01,#01,#dc,#00,#01,#03,#f7 + db #c3,#24,#c3,#24,#f7,#c3,#20,#c3 + db #20,#f7,#c3,#22,#c3,#22,#f7,#c3 +.lba56 equ $ + 4 + db #1f,#c2,#23,#87,#ba,#8a,#88,#01 + db #02,#82,#dd,#00,#21,#13,#e2,#24 + db #e5,#28,#e2,#2b,#e5,#2d,#e2,#30 + db #e5,#2b,#e2,#2d,#e5,#28,#e2,#2b + db #24,#e5,#26,#f1,#27,#e2,#2c,#ee + db #27,#e2,#24,#27,#e5,#2c,#e2,#2e + db #ee,#29,#e2,#27,#e8,#29,#e5,#2c + db #e2,#2e,#e5,#2c,#e2,#2e,#e2,#2f + db #ee,#2f,#e2,#2f,#30,#32,#eb,#32 + db #e2,#36,#84,#07,#05,#e5,#c0,#34 +.lbaa3 equ $ + 1 + db #87,#ba,#8a,#88,#01,#02,#82,#dd + db #10,#11,#33,#e2,#24,#28,#e8,#2b + db #e2,#24,#28,#e8,#2b,#e2,#24,#e5 + db #28,#e2,#24,#28,#2b,#e2,#27,#2b + db #e8,#2c,#e2,#27,#2b,#e8,#2c,#e2 + db #27,#e5,#2b,#e2,#27,#2b,#2c,#e2 + db #26,#2e,#eb,#2e,#e2,#29,#e8,#26 + db #e2,#22,#e5,#1d,#e2,#1a,#e5,#16 + db #e2,#1a,#ee,#1f,#e2,#21,#1f,#23 + db #ee,#26,#e5,#84,#05,#03,#c0,#28 +.lbaf3 equ $ + 1 + db #87,#ba,#8a,#88,#01,#01,#81,#dd + db #00,#21,#30,#f7,#c8,#2b,#eb,#c8 + db #30,#e5,#c8,#2f,#c8,#28,#f1,#c8 + db #2c,#e2,#c8,#2b,#e8,#c8,#27,#e2 + db #c8,#26,#e8,#c8,#24,#e2,#c8,#22 + db #c8,#21,#c8,#22,#f4,#c8,#29,#e5 + db #c8,#26,#e2,#c8,#24,#e5,#c8,#26 + db #e2,#c8,#24,#c8,#26,#c8,#29,#eb + db #c8,#26,#e5,#c8,#2b,#e5,#c8,#2f + db #eb,#c8,#2f,#e5,#c8,#30,#c8,#2f + db #8a,#88,#01,#02,#82,#dd,#00,#51 + db #33,#f1,#c8,#2f,#e2,#c8,#2d,#f1 + db #c8,#2d,#e2,#c8,#2b,#e5,#c8,#28 + db #f7,#c8,#27,#eb,#c8,#2c,#eb,#c8 + db #2e,#f7,#c8,#29,#e5,#c8,#26,#e2 + db #c8,#29,#e8,#c8,#22,#e5,#c8,#21 + db #e8,#c8,#1f,#e8,#c8,#21,#e5,#c8 + db #23,#e8,#c8,#23,#e8,#c8,#26,#e5 +.lbb85 equ $ + 3 + db #c8,#28,#87,#ba,#8a,#88,#01,#02 + db #82,#dd,#00,#21,#13,#e2,#30,#e5 + db #34,#e2,#37,#e5,#39,#e2,#3c,#e5 + db #37,#e2,#39,#e5,#34,#e2,#37,#30 + db #e5,#32,#f1,#33,#e2,#38,#ee,#33 + db #e2,#30,#33,#e5,#38,#e2,#3a,#ee + db #35,#e2,#33,#e8,#35,#e5,#38,#e2 + db #3a,#e5,#38,#e2,#3a,#e2,#3b,#ee + db #3b,#e2,#3b,#3c,#3e,#eb,#3e,#e2 + db #42,#84,#07,#05,#e5,#c0,#40,#87 +.lbbd2 + db #ba,#8a,#88,#01,#02,#82,#dd,#10 + db #11,#33,#e2,#30,#34,#e8,#37,#e2 + db #30,#34,#e8,#37,#e2,#30,#e5,#34 + db #e2,#30,#34,#37,#e2,#33,#37,#e8 + db #38,#e2,#33,#37,#e8,#38,#e2,#33 + db #e5,#37,#e2,#33,#37,#38,#e2,#32 + db #3a,#eb,#3a,#e2,#35,#e8,#32,#e2 + db #2e,#e5,#29,#e2,#26,#e5,#22,#e2 + db #26,#ee,#2b,#e2,#2d,#2b,#2f,#ee + db #32,#e5,#84,#05,#03,#c0,#34,#87 +.lbc22 + db #ba,#8a,#88,#01,#02,#82,#dd,#00 + db #21,#30,#f7,#c8,#37,#eb,#c8,#3c + db #e5,#c8,#3b,#c8,#34,#f1,#c8,#38 + db #e2,#c8,#37,#e8,#c8,#33,#e2,#c8 + db #32,#e8,#c8,#30,#e2,#c8,#2e,#c8 + db #2d,#c8,#2e,#f4,#c8,#35,#e5,#c8 + db #32,#e2,#c8,#30,#e5,#c8,#32,#e2 + db #c8,#30,#c8,#32,#c8,#35,#eb,#c8 + db #32,#e5,#c8,#37,#e5,#c8,#3b,#eb + db #c8,#3b,#e5,#c8,#3c,#c8,#3b,#8a + db #88,#01,#02,#82,#dd,#00,#51,#33 + db #f1,#c8,#3b,#e2,#c8,#39,#f1,#c8 + db #39,#e2,#c8,#37,#e5,#c8,#34,#f7 + db #c8,#33,#eb,#c8,#38,#eb,#c8,#3a + db #f7,#c8,#35,#e5,#c8,#32,#e2,#c8 + db #35,#e8,#c8,#2e,#e5,#c8,#2d,#e8 + db #c8,#2b,#e8,#c8,#2d,#e5,#c8,#2f + db #e8,#c8,#2f,#e8,#c8,#32,#e5,#c8 +.lbcb4 equ $ + 2 + db #34,#87,#ba,#8a,#88,#01,#02,#82 + db #dd,#10,#11,#33,#e7,#c8,#39,#c8 + db #37,#c8,#35,#c8,#34,#c8,#30,#e7 + db #c8,#2f,#c8,#2d,#c8,#2b,#ef,#c8 + db #26,#ef,#c8,#2b,#ff,#c8,#84,#00 +.lbcdd equ $ + 3 + db #0f,#2d,#87,#ba,#8a,#88,#01,#02 + db #82,#dd,#10,#11,#33,#e7,#21,#1f + db #1d,#1c,#18,#e7,#17,#15,#13,#ef + db #0e,#ef,#13,#ff,#84,#ff,#0f,#15 +.lbcfb equ $ + 1 + db #87,#ba,#8a,#88,#01,#02,#82,#dd + db #10,#11,#33,#e7,#39,#37,#35,#34 + db #30,#e7,#2f,#2d,#2b,#ef,#26,#ef +.lbd19 equ $ + 7 + db #2b,#84,#ff,#0f,#ff,#2d,#87,#ba + db #8a,#88,#01,#01,#dd,#00,#32,#10 + db #e3,#15,#e1,#15,#e3,#15,#e3,#15 + db #e1,#15,#e3,#15,#15,#e3,#15,#15 + db #e3,#18,#e1,#18,#e3,#18,#e3,#18 + db #e1,#18,#e3,#18,#18,#e3,#18,#0c + db #e3,#13,#e1,#13,#e3,#13,#e3,#13 + db #e1,#13,#e3,#13,#13,#e3,#13,#13 + db #e3,#1a,#e1,#1a,#e3,#1a,#e3,#1a + db #e1,#1a,#e3,#1a,#1a,#e3,#18,#17 + db #87,#ba,#8a,#88,#01,#01,#dc,#00 + db #01,#03,#ff,#c2,#2d,#c3,#30,#ff +.lbd77 equ $ + 5 + db #c3,#2b,#c2,#32,#87,#ba,#8a,#88 + db #01,#02,#82,#dd,#00,#52,#12,#e3 + db #2d,#2b,#e7,#28,#eb,#28,#e3,#26 + db #e3,#28,#e7,#2b,#e3,#29,#e7,#28 + db #e3,#26,#24,#eb,#1f,#23,#e7,#26 + db #e3,#29,#28,#eb,#26,#e3,#29,#28 + db #26,#28,#24,#eb,#21,#e3,#21,#24 + db #28,#f7,#2b,#e7,#28,#f7,#26,#e7 + db #2b,#e3,#29,#28,#26,#29,#28,#26 + db #29,#28,#e3,#28,#24,#21,#28,#24 + db #21,#28,#24,#2b,#28,#24,#2b,#28 + db #24,#2b,#28,#e3,#2f,#2b,#26,#2f + db #2b,#26,#2f,#e3,#2b,#ff,#80,#87 +.lbdda + db #ba,#8a,#88,#01,#01,#dc,#00,#01 + db #03,#e7,#c2,#2d,#8b,#88,#01,#02 + db #81,#df,#00,#01,#10,#e3,#84,#50 + db #01,#8c,#1e,#8a,#88,#01,#01,#dc + db #00,#01,#03,#eb,#c2,#2d,#8b,#88 + db #01,#02,#81,#df,#00,#01,#10,#e7 + db #84,#50,#01,#8c,#1e,#ba,#8a,#88 + db #01,#01,#dc,#00,#01,#03,#e7,#c3 + db #30,#8b,#88,#01,#02,#81,#df,#00 + db #01,#10,#e3,#84,#50,#01,#8c,#1e + db #8a,#88,#01,#01,#dc,#00,#01,#03 + db #eb,#c3,#30,#8b,#88,#01,#02,#81 + db #df,#00,#01,#10,#e7,#84,#50,#01 + db #8c,#1e,#ba,#8a,#88,#01,#01,#dc + db #00,#01,#03,#e7,#c3,#2b,#8b,#88 + db #01,#02,#81,#df,#00,#01,#10,#e3 + db #84,#50,#01,#8c,#1e,#8a,#88,#01 + db #01,#dc,#00,#01,#03,#eb,#c3,#2b + db #8b,#88,#01,#02,#81,#df,#00,#01 + db #10,#e7,#84,#50,#01,#8c,#1e,#ba + db #8a,#88,#01,#01,#dc,#00,#01,#03 + db #e7,#c2,#32,#8b,#88,#01,#02,#81 + db #df,#00,#01,#10,#e3,#84,#50,#01 + db #8c,#1e,#8a,#88,#01,#01,#dc,#00 + db #01,#03,#eb,#c2,#32,#8b,#88,#01 + db #02,#81,#df,#00,#01,#10,#e3,#84 + db #50,#01,#8c,#1e,#e1,#84,#50,#01 + db #8c,#1e,#e1,#84,#50,#01,#8c,#1e +.lbebb equ $ + 1 + db #87,#ba,#8a,#88,#01,#02,#82,#dd + db #00,#52,#12,#e1,#18,#e3,#1c,#e1 + db #1f,#e5,#1d,#1c,#e3,#1a,#e1,#1c +.lbed5 equ $ + 3 + db #ff,#18,#87,#ba,#8a,#88,#01,#02 + db #82,#dd,#00,#02,#12,#e1,#34,#e3 + db #30,#e1,#37,#e5,#39,#37,#e3,#35 + db #e1,#34,#e3,#35,#e1,#34,#ed,#30 +.lbef4 equ $ + 2 + db #8e,#87,#8b,#88,#01,#02,#81,#df + db #00,#01,#10,#e7,#84,#50,#01,#8c + db #1e,#e5,#84,#50,#01,#8c,#1e,#e5 + db #84,#50,#01,#8c,#1e,#e5,#84,#50 + db #01,#8c,#1e,#e5,#84,#50,#01,#8c + db #1e,#ff,#84,#50,#01,#8c,#1e,#87 +.lbf22 + db #ba,#8a,#88,#01,#02,#82,#dd,#00 + db #02,#12,#e3,#18,#1c,#e5,#1d,#e1 + db #21,#e5,#1f,#e1,#1c,#e7,#1a,#e1 + db #18,#e5,#18,#e1,#18,#e5,#18,#8e +.lbf43 equ $ + 1 + db #87,#ba,#8a,#88,#01,#02,#82,#dd + db #00,#02,#12,#e1,#c8,#30,#c8,#34 + db #e3,#c8,#37,#e5,#c8,#39,#e1,#c8 + db #39,#e5,#c8,#37,#e1,#c8,#34,#e7 + db #c8,#32,#e5,#c8,#30,#e1,#c8,#30 + db #e5,#f0,#87 +.lbf6d + db #ba,#8a,#88,#01,#02,#82,#dd,#00 + db #02,#12,#e1,#18,#1c,#e3,#1f,#e5 + db #21,#e1,#21,#e5,#1f,#e1,#1c,#e7 + db #1a,#e5,#18,#e1,#18,#e5,#18,#87 +.lbf8d + db #8a,#df,#00,#f1,#01,#ff,#80,#ff + db #80,#ff,#80,#ff,#80,#ff,#80,#ff +.lbf9f equ $ + 2 + db #80,#87,#ba,#8a,#88,#01,#02,#82 + db #dc,#00,#01,#03,#ff,#84,#01,#01 + db #c8,#45,#ff,#84,#01,#01,#c8,#48 + db #ff,#84,#01,#01,#c8,#43,#ff,#84 +.lbfc2 equ $ + 5 + db #01,#01,#c8,#4a,#87,#ba,#8a,#88 + db #01,#02,#82,#dc,#00,#f1,#01,#ff + db #80,#ff,#80,#ff,#80,#ff,#80,#87 +.lbfd5 + ld de,#d000 +.lbfd8 + call lbfe2 + dec e + jp p,lbfd8 + ld de,#073f +.lbfe2 + ld b,#f4 + out (c),d + ld bc,#f610 + out (c),c + ld a,#d0 + out (c),a + out (c),c + ld b,#f4 + out (c),e + ld b,#f6 + add a + or #10 + out (c),a + out (c),c + ret +; +.music_info + db "Crystal Kingdown Dizzy (1992)(Codemasters)()",0 + db "",0 + + read "music_end.asm" diff --git a/ASM/Cyberball - Footballer in the 21st Century (1990)(Domark)(Ben Daglish)().asm b/ASM/Cyberball - Footballer in the 21st Century (1990)(Domark)(Ben Daglish)().asm new file mode 100644 index 00000000..5c135c89 --- /dev/null +++ b/ASM/Cyberball - Footballer in the 21st Century (1990)(Domark)(Ben Daglish)().asm @@ -0,0 +1,1205 @@ +; Music of Cyberball - Footballer in the 21st Century (1990)(Domark)(Ben Daglish)() +; Ripped by Megachur the 18/11/2006 +; $VER 1.5 + +IFDEF FILENAME_WRITE + write "CYBFIT2C.BIN" +ENDIF + +MUSIC_DATE_RIP_DAY equ 18 +MUSIC_DATE_RIP_MONTH equ 11 +MUSIC_DATE_RIP_YEAR equ 2006 +music_adr equ #73df +FIRST_THEME equ 0 +LAST_THEME equ 6 + + read "music_header.asm" + + jp l746d ; init + jp l74f5 ; play +.l73e5 +.music_end + db #00 + jp l73f0 ; init sound effect +; +.stop_music +; + xor a + ld (l73e5),a + jp l77ca +.l73f0 + ld l,a + ld e,a + ld h,#00 + ld d,h + add hl,hl + add hl,de + add hl,hl + add hl,hl + add hl,de + ld iy,l81cb + ex de,hl + add iy,de + ld l,(iy+#0a) + ld h,(iy+#0b) + ld c,(iy+#0c) + ld ix,l7710 + call l7746 + set 7,(ix+#11) + ret +.l741d equ $ + 7 +.l7417 equ $ + 1 +.l7416 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l7425 equ $ + 7 +.l7423 equ $ + 5 +.l7422 equ $ + 4 +.l7421 equ $ + 3 +.l7420 equ $ + 2 +.l741f equ $ + 1 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l742c equ $ + 6 +.l742b equ $ + 5 + db #00,#00,#00,#00,#00,#08,#00,#00 +.l7435 equ $ + 7 +.l7434 equ $ + 6 +.l7432 equ $ + 4 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l743a equ $ + 4 +.l7438 equ $ + 2 +.l7437 equ $ + 1 +.l7436 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l7441 equ $ + 3 +.l7440 equ $ + 2 + db #00,#00,#10,#00,#00,#00,#00,#00 +.l744d equ $ + 7 +.l744c equ $ + 6 +.l744b equ $ + 5 +.l744a equ $ + 4 +.l7449 equ $ + 3 +.l7447 equ $ + 1 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l7455 equ $ + 7 +.l744f equ $ + 1 + 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,#00,#00,#00,#00,#00,#00 +; +.init_music +.l746d +; + push af + call l77ca + pop af + ld l,a + add a + add l + add a + ld hl,l7f34 + add l + ld l,a + jr nc,l747e + inc h +.l747e + ld e,(hl) + inc hl + ld d,(hl) + inc hl + ld (l7417),de + ld e,(hl) + inc hl + ld d,(hl) + inc hl + ld (l742c),de + ld e,(hl) + inc hl + ld d,(hl) + inc hl + ld (l7441),de + xor a + ld (l7420),a + ld (l7435),a + ld (l744a),a + ld (l7425),a + ld (l743a),a + ld (l744f),a + cpl + ld (l7421),a + ld (l7436),a + ld (l744b),a + ld a,#01 + ld (l741f),a + ld (l7434),a + ld (l7449),a + ld (l7422),a + ld (l7437),a + ld (l744c),a + ld hl,l7455 + ld bc,#030a +.l74cd + xor a +.l74ce + ld (hl),a + inc hl + add c + ld (hl),a + inc hl + add c + cp #50 + jr nz,l74ce + djnz l74cd + ld hl,l80cd + ld (l741d),hl + ld (l7432),hl + ld (l7447),hl + ld a,#ff + ld (l7423),a + ld (l7438),a + ld (l744d),a + ld (l73e5),a + ret +; +.play_music +.l74f5 +; + call l7802 + ld a,(l73e5) + and a + ret z + ld a,(l7423) + or a + jr z,l750d + ld a,(l7438) + or a + jr z,l750d + ld a,(l744d) + or a +.l750d + ld (l73e5),a + jr nz,l7520 + ld a,(l770f) + and #3f + cp #3f + ret z + ld a,#01 + ld (l73e5),a + ret +.l7520 + ld iy,l7416 + ld ix,l7710 + call l753e + ld iy,l742b + ld ix,l7722 + call l753e + ld iy,l7440 + ld ix,l7734 +.l753e + call l767f + ld a,(iy+#0b) + and a + jr z,l75c3 +.l7547 + dec (iy+#09) + jr z,l755e + ld a,(iy+#03) + ld (iy+#05),a + ld a,(iy+#04) + ld (iy+#06),a + ld (iy+#0b),#00 + jr l75c3 +.l755e + ld (iy+#09),#01 + ld l,(iy+#01) + ld h,(iy+#02) +.l7568 + ld a,(hl) + cp #80 + jr c,l75a3 + cp #fe + jr nz,l757a + inc hl + ld a,(hl) + ld (iy+#0a),a + inc hl + jp l7568 +.l757a + cp #ff + jr nz,l7583 + xor a + ld (iy+#0d),a + ret +.l7583 + cp #c0 + jr nc,l7590 + and #1f + ld (iy+#09),a + inc hl + jp l7568 +.l7590 + and #07 + add (iy+#00) + ld de,l7455 + add e + ld e,a + jr nc,l759d + inc d +.l759d + inc hl + ldi + jp l7568 +.l75a3 + ld (iy+#0b),#00 + inc hl + ld (iy+#01),l + ld (iy+#02),h + ld c,a + ld b,#00 + ld hl,l7ede + add hl,bc + ld e,(hl) + ld hl,l7f09 + add hl,bc + ld d,(hl) + ld (iy+#03),e + ld (iy+#04),d + jr l75c9 +.l75c3 + ld e,(iy+#05) + ld d,(iy+#06) +.l75c9 + dec (iy+#0c) + jr z,l75db + ld a,(de) + cp #80 + call nc,l7645 + ld (iy+#05),e + ld (iy+#06),d + ret +.l75db + ld a,(de) + cp #80 + jr c,l75ec + call l7645 + ld a,(iy+#0b) + and a + jr z,l75db + jp l7547 +.l75ec + cp #7f + jr z,l7638 + cp #7e + jr nz,l75fd + inc de + ld a,(de) + ld l,a + inc de + ld a,(de) + ld h,a + jp l7611 +.l75fd + add (iy+#0a) + add #0c + ld (iy+#0e),a + ld hl,l79cb + add a + ld c,a + ld b,#00 + add hl,bc + ld a,(hl) + inc hl + ld h,(hl) + ld l,a +.l7611 + ld a,(iy+#0f) + or #c0 + ld (iy+#14),a + inc de + ld a,(de) + inc de + ld (iy+#0c),a + ld c,a + ld (iy+#05),e + ld (iy+#06),d + ld e,(iy+#07) + ld a,(iy+#08) + ld hy,a + ld ly,e + bit 7,(ix+#11) + ret nz + jp l7746 +.l7638 + inc de + ld a,(de) + inc de + ld (iy+#0c),a + ld (iy+#05),e + ld (iy+#06),d + ret +.l7645 + ld a,(de) + cp #88 + jr nc,l7663 + and #07 + add (iy+#00) + ld c,a + ld b,#00 + ld hl,l7455 + add hl,bc + ld c,(hl) + ld hl,l80cd + add hl,bc + ld (iy+#07),l + ld (iy+#08),h + inc de + ret +.l7663 + cp #ff + jr nz,l766c + ld (iy+#0b),#ff + ret +.l766c + cp #c0 + jr nc,l7677 + and #0f + ld (iy+#0f),a + inc de + ret +.l7677 + inc de + cp #c2 + ret z + inc de + inc de + inc de + ret +.l767f + bit 7,(ix+#11) + ret nz + ld a,(iy+#14) + bit 7,a + ret z + and #3f + jr nz,l7693 + res 7,(iy+#14) + ret +.l7693 + ld d,#07 + bit 6,(iy+#14) + jr nz,l76c7 + dec (iy+#12) + ret nz + dec (iy+#13) + jp z,l76c7 + ld l,(iy+#10) + ld h,(iy+#11) + inc l + ld (iy+#10),l + jp nz,l76b6 + inc h + ld (iy+#11),h +.l76b6 + ld a,(hl) + and d + ld (iy+#12),a + ld a,(hl) + rrca + rrca + rrca + and #1f + add (iy+#0e) + jp l76fc +.l76c7 + ld hl,l7a83 + ld a,(iy+#14) + add a + add a + add a + ld e,a + add hl,de + bit 7,(hl) + jr nz,l76e1 + bit 6,(iy+#14) + jr nz,l76e1 + ld (iy+#13),#01 + ret +.l76e1 + res 6,(iy+#14) + ld a,(hl) + rrca + rrca + rrca + and d + ld (iy+#12),a + ld a,(hl) + and d + inc a + ld (iy+#13),a + ld (iy+#10),l + ld (iy+#11),h + ld a,(iy+#0e) +.l76fc + add a + ld hl,l79cb + add l + ld l,a + jr nc,l7705 + inc h +.l7705 + ld a,(hl) + ld (ix+#03),a + inc hl + ld a,(hl) + ld (ix+#04),a + ret +.l770f + db #bf +.l7715 equ $ + 5 +.l7714 equ $ + 4 +.l7713 equ $ + 3 +.l7710 + db #fe,#f7,#09,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l7727 equ $ + 7 +.l7726 equ $ + 6 +.l7725 equ $ + 5 +.l7722 equ $ + 2 +.l7721 equ $ + 1 + db #00,#00,#fd,#ef,#12,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l7737 equ $ + 7 +.l7734 equ $ + 4 +.l7733 equ $ + 3 + db #00,#00,#00,#00,#fb,#df,#24,#00 +.l7739 equ $ + 1 +.l7738 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l7745 equ $ + 5 + db #00,#00,#00,#00,#00,#00 +.l7746 + ld a,ly + ld (ix+#0f),a + ld a,hy + ld (ix+#10),a + ld (ix+#03),l + ld (ix+#04),h + ld (ix+#06),c + ld a,(iy+#05) + ld (ix+#07),a + ld a,(iy+#06) + and #7f + srl a + jr nz,l776a + ld a,#01 +.l776a + ld (ix+#08),a + ld a,(iy+#07) + ld (ix+#0b),a + ld a,(iy+#08) + ld (ix+#0c),a + xor a + ld (ix+#09),a + ld (ix+#0a),a + ld a,(l770f) + or (ix+#02) + ld c,(iy+#09) + ld (ix+#11),c + bit 0,c + jr z,l7793 + and (ix+#00) +.l7793 + bit 1,c + jr z,l779a + and (ix+#01) +.l779a + ld (l770f),a + bit 2,c + jr nz,l77ab + ld hl,l78f8 + ld (ix+#0d),l + ld (ix+#0e),h + ret +.l77ab + ld hl,#ffbf + ld c,#fd + ld a,(iy+#00) + ld e,#0d + call l79b0 + ld a,(iy+#04) + ld e,#0b + call l79b0 + inc e + xor a + call l79b0 + ld (ix+#05),#ff + ret +.l77ca + ld c,#fd + ld hl,#ffbf + ld e,#07 + ld a,(l770f) + or #3f + ld (l770f),a + call l79b0 + xor a + inc e + call l79b0 + inc e + call l79b0 + inc e + call l79b0 + ld a,#01 + inc e + call l79b0 + inc e + xor a + call l79b0 + inc e + call l79b0 + ld (l7721),a + ld (l7733),a + ld (l7745),a + ret +.l7802 + ld a,(l770f) + and #3f + cp #3f + ret z + ld ix,l7710 + call l78c6 + ld ix,l7722 + call l78c6 + ld ix,l7734 + call l78c6 + ld ix,l7710 + ld hl,#ffbf + ld c,#fd + ld e,#07 + ld a,(l770f) + call l79b0 + ld e,#00 + ld a,(l7713) + add (ix+#09) + bit 1,(ix+#11) + jp z,l7840 + ld d,a +.l7840 + call l79b0 + inc e + ld a,(l7714) + adc (ix+#0a) + call l79b0 + inc e + ld a,(l7725) + add (ix+#1b) + bit 1,(ix+#23) + jp z,l785c + ld d,a +.l785c + call l79b0 + inc e + ld a,(l7726) + adc (ix+#1c) + call l79b0 + inc e + ld a,(l7737) + add (ix+#2d) + bit 1,(ix+#35) + jp z,l7878 + ld d,a +.l7878 + call l79b0 + inc e + ld a,(l7738) + adc (ix+#2e) + call l79b0 + inc e + ld a,d + rrca + rrca + rrca + call l79b0 + ld e,#08 + ld a,(l78c5) + ld d,a + ld a,(l7715) + cp d + jr c,l789a + ld a,d +.l789a + srl a + srl a + srl a + call l79b0 + inc e + ld a,(l7727) + cp d + jr c,l78ab + ld a,d +.l78ab + srl a + srl a + srl a + call l79b0 + inc e + ld a,(l7739) + cp d + jr c,l78bc + ld a,d +.l78bc + srl a + srl a + srl a + jp l79b0 +.l78c5 + ld a,a +.l78c6 + ld a,(l770f) + and (ix+#02) + cp (ix+#02) + ret z + ld a,(ix+#0f) + ld ly,a + ld a,(ix+#10) + ld hy,a + ld a,(ix+#06) + and a + jr z,l78e7 + cp #ff + jr z,l78e7 + dec (ix+#06) +.l78e7 + call l796e + bit 2,(iy+#09) + jp nz,l7967 + ld l,(ix+#0d) + ld h,(ix+#0e) + jp (hl) +.l78f8 + ld a,(ix+#05) + add (iy+#00) + cp (iy+#04) + jr nc,l7907 + ld (ix+#05),a + ret +.l7907 + ld a,(iy+#04) + ld (ix+#05),a + ld hl,l7917 + ld (ix+#0d),l + ld (ix+#0e),h + ret +.l7917 + ld a,(ix+#05) + add (iy+#01) + jp m,l7929 + cp (iy+#02) + jr c,l7929 + ld (ix+#05),a + ret +.l7929 + ld a,(iy+#02) + ld (ix+#05),a + ld hl,l7939 + ld (ix+#0d),l + ld (ix+#0e),h + ret +.l7939 + ld a,(ix+#06) + and a + ret nz + ld hl,l7948 + ld (ix+#0d),l + ld (ix+#0e),h + ret +.l7948 + ld a,(ix+#05) + add (iy+#03) + jp m,l7955 + ld (ix+#05),a + ret +.l7955 + ld (ix+#05),#00 + ld a,(l770f) + or (ix+#02) + ld (l770f),a + res 7,(ix+#11) + ret +.l7967 + ld a,(ix+#06) + and a + ret nz + jr l7955 +.l796e + ld a,(ix+#07) + and a + jr z,l797b + cp #ff + ret z + dec (ix+#07) + ret nz +.l797b + ld l,(ix+#09) + ld h,(ix+#0a) + ld c,(ix+#0b) + ld b,(ix+#0c) + add hl,bc + ld (ix+#09),l + ld (ix+#0a),h + dec (ix+#08) + ret nz + ld a,(iy+#06) + and a + ret z + jp p,l799f + ld (ix+#07),#ff + ret +.l799f + ld (ix+#08),a + ld a,c + cpl + ld c,a + ld a,b + cpl + ld b,a + inc bc + ld (ix+#0b),c + ld (ix+#0c),b + ret +.l79b0 + ld d,#c0 + ld c,#00 + ld l,#80 + ld b,#f4 + out (c),e + ld b,#f6 + out (c),d + out (c),c + ld b,#f4 + out (c),a + ld b,#f6 + out (c),l + out (c),c + ret +.l79cb + dw #0777,#070c,#06a7,#0647 + dw #05ed,#0598,#0547,#04fc + dw #04d4,#0470,#0431,#03f4 + dw #03dc,#0386,#0353,#0324 + dw #02f6,#02cc,#02a4,#027e + dw #025a,#0238,#0218,#01fa + dw #01de,#01c3,#01aa,#0192 + dw #017b,#0166,#0152,#013f + dw #012d,#011c,#010c,#00fd + dw #00ef,#00e1,#00d5,#00c9 + dw #00be,#00b3,#00a9,#009f + dw #0096,#008e,#0086,#007f + dw #0077,#0071,#006a,#0064 + dw #005f,#0059,#0054,#0050 + dw #004b,#0047,#0043,#003f + dw #003c,#0038,#0035,#0032 + dw #002f,#002d,#002a,#0028 + dw #0026,#0024,#0022,#0020 + dw #0018 +.l7a5e equ $ + 1 + db #00,#85,#0e,#0e,#0e,#07,#15,#15 + db #15,#07,#13,#07,#15,#07,#17,#07 + db #15,#07,#13,#07,#0e,#0e,#0e,#07 + db #15,#15,#15,#07,#13,#07,#15,#07 + db #17,#07,#15,#07,#13,#07 +.l7a83 + db #15,#0e,#15,#07,#15,#07,#15,#07 + db #15,#07,#15,#0e,#15,#07,#15,#07 +.l7a9a equ $ + 7 + db #15,#07,#15,#07,#07,#46,#ff,#85 + db #7f,#2a,#1a,#07,#18,#07,#1a,#07 + db #1c,#07,#1a,#07,#18,#07,#1a,#2a + db #1a,#07,#18,#07,#1a,#07,#1c,#07 + db #1a,#07,#18,#07,#1a,#0e,#1a,#07 + db #1a,#07,#1a,#07,#1a,#07,#1a,#0e + db #1a,#07,#1a,#07,#1a,#07,#1a,#07 +.l7ace equ $ + 3 + db #17,#46,#ff,#85,#7f,#54,#1a,#15 + db #15,#15,#0e,#2a,#0e,#0e,#0c,#0e + db #09,#0e,#0c,#0e,#09,#0e,#07,#0e +.l7ae6 equ $ + 3 + db #13,#46,#ff,#85,#15,#05,#1a,#05 + db #1c,#05,#1a,#05,#15,#0a,#15,#05 + db #15,#05,#17,#05,#1c,#05,#12,#05 + db #1c,#05,#17,#14,#18,#05,#11,#05 + db #18,#05,#13,#05,#18,#14,#1a,#05 + db #1a,#05,#15,#05,#1a,#05,#0e,#14 +.l7b16 equ $ + 3 + db #15,#32,#ff,#85,#09,#1e,#09,#0a + db #0b,#14,#0b,#14,#0c,#1e,#08,#05 + db #09,#05,#0a,#05,#0b,#05,#0c,#05 + db #0d,#05,#0e,#05,#0f,#05,#10,#05 +.l7b38 equ $ + 5 + db #11,#05,#12,#32,#ff,#85,#15,#0a + db #1a,#05,#1a,#0a,#1a,#05,#1a,#0a + db #17,#0a,#1c,#05,#1c,#0a,#1c,#05 + db #1c,#0a,#18,#0a,#1d,#05,#1d,#0a + db #1d,#05,#1d,#05,#1a,#0a,#1a,#05 + db #1a,#0a,#1a,#05,#1a,#0a,#0e,#32 +.l7b64 equ $ + 1 + db #ff,#85,#15,#05,#15,#05,#15,#05 + db #1c,#1e,#10,#0f,#15,#05,#15,#05 +.l7b78 equ $ + 5 + db #15,#05,#1c,#32,#ff,#85,#10,#05 + db #10,#05,#10,#05,#15,#0f,#10,#05 + db #10,#05,#10,#05,#15,#0f,#10,#05 +.l7b92 equ $ + 7 + db #10,#05,#10,#05,#15,#32,#ff,#85 + db #7f,#0f,#09,#1e,#10,#1e,#09,#32 +.l7b9c equ $ + 1 + db #ff,#85,#09,#05,#09,#05,#09,#05 + db #10,#1e,#10,#0f,#19,#05,#19,#05 +.l7bb0 equ $ + 5 + db #19,#05,#15,#32,#ff,#85,#7f,#1e + db #0e,#05,#0e,#05,#0e,#05,#14,#0f + db #1c,#05,#1c,#05,#1c,#05,#25,#32 +.l7bc4 equ $ + 1 + db #ff,#85,#7f,#0f,#09,#1e,#10,#1e +.l7bce equ $ + 3 + db #09,#32,#ff,#85,#18,#0f,#15,#05 + db #15,#0a,#15,#0a,#11,#0a,#0c,#0a +.l7be2 equ $ + 7 + db #0c,#0a,#0c,#0a,#11,#32,#ff,#85 + db #1d,#0f,#18,#05,#18,#0a,#18,#0a + db #15,#0a,#11,#0a,#11,#0a,#11,#0a +.l7bf6 equ $ + 3 + db #18,#32,#ff,#85,#11,#14,#10,#14 +.l7c02 equ $ + 7 + db #0e,#14,#0c,#14,#11,#32,#ff,#85 + db #12,#0e,#12,#07,#1a,#3f,#0e,#54 + db #0f,#54,#0c,#46,#0c,#07,#0c,#07 + db #0c,#07,#0e,#46,#0e,#07,#0e,#07 + db #0e,#07,#0f,#15,#18,#15,#0f,#15 + db #11,#15,#17,#23,#17,#07,#17,#07 +.l7c2e equ $ + 3 + db #17,#23,#ff,#85,#0e,#0e,#0e,#07 + db #15,#1c,#13,#07,#15,#07,#17,#07 + db #15,#07,#13,#07,#16,#31,#13,#07 + db #15,#07,#16,#07,#15,#07,#13,#07 + db #18,#07,#16,#07,#14,#07,#0f,#1c + db #0e,#07,#0f,#07,#0e,#07,#0c,#07 + db #08,#07,#07,#5b,#09,#5b,#0a,#15 + db #0c,#15,#0a,#15,#09,#15,#07,#23 +.l7c72 equ $ + 7 + db #13,#07,#13,#07,#13,#23,#ff,#85 + db #0e,#15,#0d,#15,#0b,#15,#09,#15 + db #07,#54,#08,#54,#0c,#5b,#1a,#5b + db #1b,#15,#09,#15,#16,#15,#0c,#15 + db #13,#23,#07,#07,#07,#07,#07,#23 +.l7c94 equ $ + 1 + db #ff,#80,#13,#06,#13,#06,#11,#06 + db #13,#0c,#11,#0c,#13,#0c,#11,#06 + db #13,#06,#11,#06,#16,#06,#16,#06 + db #18,#06,#11,#06,#13,#06,#13,#06 + db #11,#06,#13,#0c,#11,#0c,#13,#0c + db #13,#06,#1a,#06,#13,#06,#19,#06 +.l7cca equ $ + 7 + db #13,#06,#16,#06,#11,#06,#ff,#80 +.l7cce equ $ + 3 + db #13,#c0,#ff,#84,#12,#06,#87,#12 + db #06,#1e,#06,#12,#06,#81,#1e,#06 + db #87,#1e,#06,#12,#06,#84,#12,#06 + db #87,#12,#06,#1e,#06,#84,#12,#06 + db #87,#1e,#06,#81,#1e,#06,#87,#1e +.l7cf9 equ $ + 6 + db #06,#12,#06,#1e,#06,#ff,#80,#11 + db #06,#13,#06,#13,#06,#11,#06,#18 + db #06,#1a,#06,#13,#0c,#18,#0c,#13 + db #06,#16,#0c,#13,#06,#11,#0c,#13 + db #0c,#13,#0c,#18,#06,#1a,#06,#13 + db #0c,#18,#06,#16,#06,#13,#0c,#16 + db #0c,#13,#06,#11,#06,#11,#0c,#11 + db #0c,#16,#06,#18,#06,#11,#0c,#16 + db #0c,#15,#06,#16,#0c,#15,#06,#13 + db #06,#11,#06,#0f,#0c,#0f,#0c,#15 + db #06,#16,#06,#0f,#0c,#18,#0c,#13 + db #06,#16,#0c,#13,#06,#11,#06,#0e +.l7d55 equ $ + 2 + db #06,#ff,#80,#90,#7f,#0c,#23,#06 + db #23,#06,#28,#06,#23,#06,#28,#06 + db #2a,#12,#23,#06,#23,#06,#28,#06 + db #2a,#06,#21,#0c,#23,#0c,#91,#23 + db #0c,#23,#06,#21,#06,#1e,#06,#23 + db #2a,#90,#23,#06,#22,#06,#21,#0c + db #21,#0c,#26,#06,#25,#0c,#28,#0c + db #26,#06,#25,#06,#21,#06,#25,#06 + db #26,#06,#25,#06,#21,#06,#1f,#60 +.l7d9c equ $ + 1 + db #ff,#80,#0f,#0c,#1b,#0c,#1b,#0c + db #0f,#06,#0f,#06,#1b,#0c,#0f,#06 + db #1b,#0c,#0f,#06,#1a,#06,#1b,#06 + db #0e,#0c,#1a,#0c,#1a,#0c,#0e,#06 + db #0e,#06,#1a,#0c,#0e,#06,#1a,#0c + db #0e,#06,#18,#06,#1a,#06,#13,#0c + db #1f,#0c,#1f,#0c,#13,#06,#13,#06 + db #1f,#0c,#13,#06,#1f,#0c,#13,#06 + db #1d,#06,#1f,#06,#13,#0c,#1f,#0c + db #11,#0c,#1d,#0c,#0f,#0c,#1b,#0c +.l7df0 equ $ + 5 + db #0e,#0c,#1a,#0c,#ff,#85,#7f,#24 + db #17,#0c,#19,#18,#1a,#18,#19,#0c + db #17,#18,#16,#24,#12,#18,#80,#91 + db #17,#06,#1a,#06,#17,#06,#15,#06 + db #1c,#06,#17,#06,#1c,#06,#1e,#36 + db #17,#06,#1a,#06,#17,#06,#15,#06 + db #1c,#06,#17,#06,#1c,#06,#1e,#06 + db #90,#23,#06,#21,#06,#1e,#06,#1c + db #06,#21,#06,#1e,#06,#1c,#06,#1a +.l7e35 equ $ + 2 + db #06,#ff,#80,#1f,#0c,#23,#0c,#23 + db #0c,#25,#0c,#26,#06,#25,#06,#23 + db #0c,#25,#06,#23,#06,#21,#0c,#23 + db #06,#21,#06,#1e,#0c,#21,#06,#1e + db #06,#1c,#0c,#1e,#06,#1c,#06,#1a + db #0c,#1c,#06,#1a,#06,#17,#06,#15 +.l7e67 equ $ + 4 + db #06,#17,#c0,#ff,#82,#12,#a0,#ff +.l7e6f equ $ + 4 +.l7e6b + db #83,#1e,#23,#ff,#80,#15,#03,#17 +.l7e75 equ $ + 2 + db #03,#ff,#80,#0d,#03,#0f,#03,#ff +.l7e81 equ $ + 6 +.l7e7b + db #91,#80,#25,#07,#90,#ff,#84,#1e +.l7e89 equ $ + 6 +.l7e85 equ $ + 2 + db #05,#ff,#80,#06,#05,#ff,#83,#12 + db #03,#13,#03,#14,#03,#15,#03,#16 + db #03,#17,#03,#18,#03,#19,#03,#1a + db #03,#1b,#03,#1c,#03,#1d,#03,#1e +.l7ea9 equ $ + 6 +.l7ea5 equ $ + 2 + db #03,#ff,#86,#2a,#03,#ff,#86,#35 +.l7eb1 equ $ + 6 + db #03,#35,#03,#35,#03,#ff,#86,#06 + db #03,#06,#03,#06,#03,#06,#03,#06 +.l7ec1 equ $ + 6 +.l7ebd equ $ + 2 + db #03,#ff,#85,#06,#46,#ff,#86,#0d + db #02,#0b,#02,#0a,#02,#08,#02,#ff +.l7ecf equ $ + 4 +.l7ecb + db #80,#12,#e0,#ff,#85,#06,#e0,#ff +.l7eda equ $ + 7 +.l7ed3 + db #84,#06,#07,#87,#1e,#15,#ff,#84 + db #06,#1c,#ff +.l7ede + db l7a5e,l7a9a,l7ace,l7ae6 + db l7b16,l7b38,l7b64,l7b78 + db l7b92,l7b9c,l7bb0,l7bc4 + db l7bce,l7be2,l7bf6,l7c02 + db l7c2e,l7c72,l7c94,l7cca + db l7cce,l7cf9,l7d55,l7d9c + db l7df0,l7e35,l7e67,l7e6b + db l7e6f,l7e7b,l7e75,l7e81 + db l7e85,l7e89,l7ea5,l7ea9 + db l7eb1,l7ebd,l7ec1,l7ecb + db l7ecf,l7ed3,l7eda +; db #5e,#9a,#ce,#e6,#16,#38,#64,#78 +; db #92,#9c,#b0,#c4,#ce,#e2,#f6,#02 +; db #2e,#72,#94,#ca,#ce,#f9,#55,#9c +; db #f0,#35,#67,#6b,#6f,#7b,#75,#81 +; db #85,#89,#a5,#a9,#b1,#bd,#c1,#cb +; db #cf,#d3,#da +.l7f09 + db l7a5e/&100,l7a9a/&100,l7ace/&100,l7ae6/&100 + db l7b16/&100,l7b38/&100,l7b64/&100,l7b78/&100 + db l7b92/&100,l7b9c/&100,l7bb0/&100,l7bc4/&100 + db l7bce/&100,l7be2/&100,l7bf6/&100,l7c02/&100 + db l7c2e/&100,l7c72/&100,l7c94/&100,l7cca/&100 + db l7cce/&100,l7cf9/&100,l7d55/&100,l7d9c/&100 + db l7df0/&100,l7e35/&100,l7e67/&100,l7e6b/&100 + db l7e6f/&100,l7e7b/&100,l7e75/&100,l7e81/&100 + db l7e85/&100,l7e89/&100,l7ea5/&100,l7ea9/&100 + db l7eb1/&100,l7ebd/&100,l7ec1/&100,l7ecb/&100 + db l7ecf/&100,l7ed3/&100,l7eda/&100 +; db #7a,#7a,#7a,#7a,#7b,#7b,#7b,#7b +; db #7b,#7b,#7b,#7b,#7b,#7b,#7b,#7c +; db #7c,#7c,#7c,#7c,#7c,#7c,#7d,#7d +; db #7d,#7e,#7e,#7e,#7e,#7e,#7e,#7e +; db #7e,#7e,#7e,#7e,#7e,#7e,#7e,#7e +; db #7e,#7e,#7e +.l7f34 + dw l7fb2,l7fb6,l7fba + dw l7fbe,l7fc2,l7fc6 + dw l7fca,l7fce,l7fd2 + dw l7fd6,l7fda,l7fde + dw l7fe2,l7fe6,l7fea + dw l7fee,l7ff2,l7ff6 + dw l7ffa,l8009,l8012 + dw l802b,l802f,l8033 + dw l8037,l803b,l803c + dw l803d,l8041,l8045 + dw l8046,l804a,l804b + dw l804c,l8050,l8054 + dw l8055,l8062,l8063 + dw l8064,l8068,l8069 + dw l806a,l806f,l8074 + dw l8075,l807a,l807e + dw l8082,l8092,l8093 + dw l8094,l809a,l80a0 + dw l80a1,l80a5,l80a9 + dw l80ad,l80b2,l80b8 + dw l80be,l80c3,s00 ; db &94,&01 +.l7fb6 equ $ + 4 +.l7fb2 + db #fe,#05,#00,#ff,#fe,#05 +.l7fbe equ $ + 6 +.l7fba equ $ + 2 + db #01,#ff,#fe,#05,#02,#ff,#fe,#05 +.l7fc6 equ $ + 6 +.l7fc2 equ $ + 2 + db #03,#ff,#fe,#05,#04,#ff,#fe,#05 +.l7fce equ $ + 6 +.l7fca equ $ + 2 + db #05,#ff,#fe,#05,#06,#ff,#fe,#05 +.l7fd6 equ $ + 6 +.l7fd2 equ $ + 2 + db #07,#ff,#fe,#05,#08,#ff,#fe,#05 +.l7fde equ $ + 6 +.l7fda equ $ + 2 + db #09,#ff,#fe,#05,#0a,#ff,#fe,#05 +.l7fe6 equ $ + 6 +.l7fe2 equ $ + 2 + db #0b,#ff,#fe,#05,#0c,#ff,#fe,#05 +.l7fee equ $ + 6 +.l7fea equ $ + 2 + db #0d,#ff,#fe,#05,#0e,#ff,#fe,#05 +.l7ff6 equ $ + 6 +.l7ff2 equ $ + 2 + db #0f,#ff,#fe,#05,#10,#ff,#fe,#05 +.l7ffa equ $ + 2 + db #11,#ff,#fe,#f7,#82,#13,#82,#12 + db #82,#15,#82,#17,#84,#15,#82,#17 +.l8009 equ $ + 1 + db #ff,#fe,#05,#90,#14,#90,#14,#90 +.l8012 equ $ + 2 + db #14,#ff,#fe,#03,#84,#13,#fe,#ff + db #82,#16,#fe,#0b,#18,#19,#fe,#ff + db #82,#16,#fe,#03,#84,#12,#fe,#0b +.l802f equ $ + 7 +.l802b equ $ + 3 + db #18,#19,#ff,#fe,#00,#1a,#ff,#fe +.l8037 equ $ + 7 +.l8033 equ $ + 3 + db #03,#1a,#ff,#fe,#05,#1a,#ff,#fe +.l803d equ $ + 5 +.l803c equ $ + 4 +.l803b equ $ + 3 + db #00,#1b,#ff,#ff,#ff,#fe,#00,#1c +.l8046 equ $ + 6 +.l8045 equ $ + 5 +.l8041 equ $ + 1 + db #ff,#fe,#00,#1e,#ff,#ff,#fe,#00 +.l804c equ $ + 4 +.l804b equ $ + 3 +.l804a equ $ + 2 + db #1d,#ff,#ff,#ff,#fe,#00,#1f,#ff +.l8055 equ $ + 5 +.l8054 equ $ + 4 +.l8050 + db #fe,#00,#20,#ff,#ff,#fe,#f6,#21 + db #fe,#02,#21,#fe,#0e,#21,#fe,#2e +.l8064 equ $ + 4 +.l8063 equ $ + 3 +.l8062 equ $ + 2 + db #21,#ff,#ff,#ff,#fe,#00,#22,#ff +.l806f equ $ + 7 +.l806a equ $ + 2 +.l8069 equ $ + 1 +.l8068 + db #ff,#ff,#fe,#00,#84,#23,#ff,#fe +.l8075 equ $ + 5 +.l8074 equ $ + 4 + db #01,#84,#23,#ff,#ff,#fe,#00,#87 +.l807e equ $ + 6 +.l807a equ $ + 2 + db #24,#ff,#fe,#01,#25,#ff,#fe,#02 +.l8082 equ $ + 2 + db #25,#ff,#fe,#0a,#26,#fe,#0c,#26 + db #fe,#0e,#26,#fe,#10,#26,#fe,#12 +.l8094 equ $ + 4 +.l8093 equ $ + 3 +.l8092 equ $ + 2 + db #26,#ff,#ff,#ff,#fe,#00,#c0,#50 +.l809a equ $ + 2 + db #27,#ff,#fe,#05,#c0,#50,#27,#ff +.l80a5 equ $ + 5 +.l80a1 equ $ + 1 +.l80a0 + db #ff,#fe,#00,#1b,#ff,#fe,#14,#20 +.l80ad equ $ + 5 +.l80a9 equ $ + 1 + db #ff,#fe,#18,#20,#ff,#fe,#00,#8a +.l80b2 equ $ + 2 + db #24,#ff,#fe,#0c,#c0,#50,#27,#ff +.l80be equ $ + 6 +.l80b8 + db #fe,#05,#c0,#50,#27,#ff,#fe,#00 +.l80c3 equ $ + 3 + db #83,#29,#ff,#fe,#03,#83,#2a,#ff +.s00 + db #fe,#05,#83,#2a,#ff +.l80cd + db #7f,#fc,#00,#ff,#7f,#00,#01,#01 + db #00,#01,#7f,#f6,#00,#ff,#7f,#00 + db #01,#02,#01,#03,#7f,#ff,#00,#fc + db #7f,#00,#03,#05,#01,#03,#7f,#fe + db #00,#fe,#7f,#00,#04,#04,#02,#03 + db #7f,#f8,#00,#ff,#7f,#00,#00,#00 + db #01,#01,#46,#fe,#69,#ff,#7f,#00 + db #01,#02,#00,#01,#7f,#f6,#00,#ff + db #7f,#00,#00,#00,#00,#01,#7f,#ec + db #00,#ff,#6e,#00,#01,#02,#03,#03 + db #03,#00,#00,#ff,#64,#00,#02,#02 + db #03,#03,#0a,#ff,#63,#ff,#7f,#00 + db #03,#01,#03,#03,#7f,#fa,#50,#ff + db #7f,#00,#03,#01,#00,#01,#7f,#fa + db #50,#ff,#7f,#00,#03,#01,#00,#01 + db #7f,#fa,#50,#ff,#7f,#00,#03,#01 + db #00,#01,#7f,#fa,#50,#ff,#7f,#00 + db #03,#01,#00,#01,#7f,#fa,#50,#ff + db #7f,#00,#03,#01,#00,#01,#7f,#fa + db #50,#ff,#7f,#00,#03,#01,#00,#01 + db #7f,#fa,#50,#ff,#7f,#00,#03,#01 + db #00,#01,#7f,#fa,#50,#ff,#7f,#00 + db #03,#01,#00,#01,#7f,#fa,#50,#ff + db #7f,#00,#03,#01,#00,#01,#89,#61 + db #00,#00,#00,#00,#00,#00,#89,#21 + db #00,#00,#00,#00,#00,#00,#91,#1a + db #00,#00,#00,#00,#00,#00,#91,#22 + db #00,#00,#00,#00,#00,#00,#89,#21 + db #00,#00,#00,#00,#00,#00,#89,#19 + db #00,#00,#00,#00,#00,#00,#89,#29 + db #00,#00,#00,#00,#00,#00,#89,#49 + db #00,#00,#00,#00,#00,#00 +.l81cb + db #0e,#fe,#01,#ff,#7f,#00,#04,#11 + db #00,#01,#53,#00,#28,#7f,#fc,#01 + db #ff,#7f,#00,#00,#1b,#00,#03,#07 + db #00,#14,#7f,#f5,#01,#ff,#7f,#00 + db #00,#5c,#00,#03,#96,#01,#0a,#7f + db #fe,#01,#ff,#7f,#05,#04,#02,#00 + db #01,#68,#00,#28,#00,#00,#00,#00 + db #00 + +; play &74f5 +; +; #1fc5 +: +; ld a,#06 ; a=theme number +; call #746d ; init +; +.music_info + db "Cyberball - Footballer in the 21st Century (1990)(Domark)(Ben Daglish)",0 + db "",0 + + read "music_end.asm" diff --git a/ASM/Cyberbig (1990)(Animagic)(Pablo Toledo)().asm b/ASM/Cyberbig (1990)(Animagic)(Pablo Toledo)().asm new file mode 100644 index 00000000..427bff26 --- /dev/null +++ b/ASM/Cyberbig (1990)(Animagic)(Pablo Toledo)().asm @@ -0,0 +1,947 @@ +; Music of Cyberbig (1990)(Animagic)(Pablo Toledo)() +; Ripped by Megachur the 12/02/2007 +; $VER 1.5 + +IFDEF FILENAME_WRITE + write "CYBERBIG.BIN" +ENDIF + +MUSIC_DATE_RIP_DAY equ 12 +MUSIC_DATE_RIP_MONTH equ 02 +MUSIC_DATE_RIP_YEAR equ 2007 +music_adr equ #aae6 + + read "music_header.asm" + +; +.init_music +; + di + xor a + ld de,lb3bd + call lab13 + ld de,lb4bc + inc a + call lab13 + ld de,lb5bf + inc a + call lab13 + ei + ret +; +.stop_music +; + di + xor a + ld de,#0000 + call lab13 + inc a + call lab13 + inc a + call lab13 + call lab32 + ei + ret +.lab13 + push af + push de + ld de,#002e + call laeb1 + ld de,lb009 + add hl,de + push hl + xor a + ld b,#2e +.lab23 + ld (hl),a + inc hl + djnz lab23 + pop hl + pop de + ld (hl),e + inc hl + ld (hl),d + inc hl + ld (hl),e + inc hl + ld (hl),d + pop af + ret +; +.play_music +.lab32 +; + push af + ld b,#03 + xor a + ld ix,lb009 + ld de,laffe + ld hl,lb006 +.lab40 + push af + push hl + push de + push bc + ld (laffc),a + ld a,(ix+#04) + or (ix+#05) + jp nz,labab + xor a + call lae52 + ld c,(ix+#02) + ld b,(ix+#03) + ld a,b + or c + jp z,lac64 +.lab5f + ld a,(bc) + cp #80 + jp c,lab6e + sub #80 + ld hl,lafe0 + call laee0 + jp (hl) +.lab6e + push af + call laea6 + pop af + add (hl) + ld hl,laf20 + call laee0 + ld (ix+#0a),l + ld (ix+#0b),h + inc bc +.lab81 + ld a,(ix+#08) + call lae52 + call lace0 + ld (ix+#2a),#00 + call lacf8 + ld (ix+#2b),#00 + ld (ix+#2c),#00 +.lab99 + ld (ix+#02),c + ld (ix+#03),b + ld l,(ix+#06) + ld h,(ix+#07) + ld (ix+#04),l + ld (ix+#05),h +.labab + ld l,(ix+#04) + ld h,(ix+#05) + dec hl + ld (ix+#04),l + ld (ix+#05),h + push ix + pop iy + ld d,#02 + ld c,#00 +.labc0 + ld a,(iy+#0c) + or a + jr z,labcd + dec a + ld (iy+#0c),a + inc c + jr labee +.labcd + ld a,(iy+#0e) + or a + jr z,labe9 + dec a + ld (iy+#0e),a + ld a,(ix+#2a) + add (iy+#1b) + ld (ix+#2a),a + ld a,(iy+#20) + ld (iy+#0c),a + inc c + jr labee +.labe9 + inc iy + dec d + jr nz,labc0 +.labee + ld a,c + or a + jr nz,labf9 + bit 0,(ix+#2d) + call nz,lace0 +.labf9 + push ix + pop iy + ld d,#03 + ld c,#00 +.lac01 + ld a,(iy+#10) + or a + jr z,lac0e + dec a + ld (iy+#10),a + inc c + jr lac59 +.lac0e + ld a,(iy+#13) + or a + jr z,lac54 + dec a + ld (iy+#13),a + ld a,(iy+#1d) + or a + jp p,lac38 + ld a,(iy+#1d) + cpl + inc a + ld e,a + ld a,(ix+#2b) + sub e + ld (ix+#2b),a + ld a,(ix+#2c) + sbc #00 + and #0f + ld (ix+#2c),a + jr lac4b +.lac38 + ld a,(ix+#2b) + add (iy+#1d) + ld (ix+#2b),a + ld a,(ix+#2c) + adc #00 + and #0f + ld (ix+#2c),a +.lac4b + ld a,(iy+#22) + ld (iy+#10),a + inc c + jr lac59 +.lac54 + inc iy + dec d + jr nz,lac01 +.lac59 + ld a,c + or a + jr nz,lac64 + bit 1,(ix+#2d) + call nz,lacf8 +.lac64 + pop bc + pop de + pop hl + ld a,(ix+#09) + add (ix+#2a) + and #0f + ld (hl),a + ld a,(ix+#0a) + add (ix+#2b) + ld (de),a + inc de + ld a,(ix+#0b) + adc (ix+#2c) + ld (de),a + inc de + push de + ld de,#002e + add ix,de + pop de + pop af + inc a + inc hl + dec b + jp nz,lab40 + ld iy,lb093 + ld d,#02 + ld c,#00 +.lac96 + ld a,(iy+#00) + or a + jr z,laca3 + dec a + ld (iy+#00),a + inc c + jr lacc4 +.laca3 + ld a,(iy+#02) + or a + jr z,lacbf + dec a + ld (iy+#02),a + ld a,(lb09f) + add (iy+#06) + ld (lb09f),a + ld a,(iy+#08) + ld (iy+#00),a + inc c + jr lacc4 +.lacbf + inc iy + dec d + jr nz,lac96 +.lacc4 + ld a,c + or a + jr nz,lacd0 + ld a,(lb09d) + bit 2,a + call nz,lad10 +.lacd0 + ld a,(lb09e) + ld e,a + ld a,(lb09f) + add e + ld (lb004),a + call laeed + pop af + ret +.lace0 + push ix + ld d,#02 +.lace4 + ld a,(ix+#20) + ld (ix+#0c),a + ld a,(ix+#16) + ld (ix+#0e),a + inc ix + dec d + jr nz,lace4 + pop ix + ret +.lacf8 + ld d,#03 + push ix +.lacfc + ld a,(ix+#22) + ld (ix+#10),a + ld a,(ix+#18) + ld (ix+#13),a + inc ix + dec d + jr nz,lacfc + pop ix + ret +.lad10 + ld d,#02 + push iy + ld iy,lb093 +.lad18 + ld a,(iy+#08) + ld (iy+#00),a + ld a,(iy+#04) + ld (iy+#02),a + inc iy + dec d + jr nz,lad18 + pop iy + ret +.lad2c + inc bc + ld a,(bc) + ld (ix+#09),a + inc bc + jp lab5f +.lad35 + inc bc + ld a,(bc) + ld de,(laffd) + ld d,#00 + call laeb1 + ld (ix+#06),l + ld (ix+#07),h + inc bc + jp lab5f +.lad4a + inc bc + ld a,(bc) + and #09 + ld (ix+#08),a + inc bc + jp lab5f +.lad55 + push ix + pop hl + xor a + ld b,#2e +.lad5b + ld (hl),a + inc hl + djnz lad5b + ld a,(laffc) + ld hl,lb0a0 + xor (hl) + jp nz,lac64 + ld hl,lb093 + ld de,lb094 + ld bc,#000a + ld (hl),a + ldir + inc de + ld (de),a + jp lac64 +.lad7a + inc bc + ld a,(bc) + push bc + ld de,#0010 + call laeb1 + ld bc,#0bb8 + push hl + pop de + call laec6 + ld a,c + ld (laffd),a + pop bc + inc bc + jp lab5f +.lad94 + inc bc + ld a,(bc) + push af + and #1f + ld (lb09e),a + call lad10 + pop af + inc bc + or a + jp m,lab5f + jp lab81 +.lada8 + inc bc + jp lab99 +.ladac + ld c,(ix+#00) + ld b,(ix+#01) + ld (ix+#02),c + ld (ix+#03),b + jp lab5f +.ladbb + inc bc + ld a,(bc) + ld e,a + or (ix+#2d) + ld (ix+#2d),a + ld a,(lb09d) + or e + ld (lb09d),a + inc bc + jp lab5f +.ladcf + inc bc + res 0,(ix+#2d) + res 1,(ix+#2d) + ld a,(bc) + ld de,#000f + call laeb1 + ld de,lb0aa + add hl,de + push ix + ld d,#0f +.lade7 + ld a,(hl) + ld (ix+#16),a + inc hl + inc ix + dec d + jp nz,lade7 + pop ix + inc bc + ld (ix+#0c),#00 + ld (ix+#0d),#00 + ld (ix+#10),#00 + ld (ix+#11),#00 + ld (ix+#12),#00 + ld (ix+#2a),#00 + ld (ix+#2b),#00 + ld (ix+#2c),#00 + jp lab5f +.lae18 + inc bc + ld a,(lb09d) + res 2,a + ld (lb09d),a + ld a,(bc) + ld de,#0006 + call laeb1 + ld de,lb19a + add hl,de + ld iy,lb093 + call m,#00b6 + nop + ld (iy+#01),#00 + ld d,#06 +.lae3a + ld a,(hl) + ld (iy+#04),a + inc hl + inc iy + dec d + jr nz,lae3a + xor a + ld (lb09f),a + inc bc + ld a,(laffc) + ld (lb0a0),a + jp lab5f +.lae52 + push de + cpl + ld e,a + ld d,#09 + ld a,(laffc) +.lae5a + dec a + jp m,lae65 + scf + rl e + sla d + jr lae5a +.lae65 + ld a,(lb005) + or d + and e + ld (lb005),a + pop de + ret +.lae6f + ld a,(laffc) + inc bc + add a + ld l,a + ld h,#00 + ld a,(bc) + inc bc + ld de,lb0a1 + add hl,de + ld (hl),c + inc hl + ld (hl),b + ld hl,lb1a6 + call laee0 + ld b,h + ld c,l + jp lab5f +.lae8b + ld a,(laffc) + add a + ld l,a + ld h,#00 + ld de,lb0a1 + add hl,de + ld c,(hl) + inc hl + ld b,(hl) + jp lab5f +.lae9c + inc bc + call laea6 + ld a,(bc) + inc bc + ld (hl),a + jp lab5f +.laea6 + ld a,(laffc) + ld l,a + ld h,#00 + ld de,lb0a7 + add hl,de + ret +.laeb1 + ld hl,#0000 + and a + ret z + push bc + ld b,#08 +.laeb9 + srl a + jr nc,laebe + add hl,de +.laebe + sla e + rl d + djnz laeb9 + pop bc + ret +.laec6 + push af + ld hl,#0000 + ld a,b + ld b,#10 +.laecd + rl c + rla + adc hl,hl + sbc hl,de + jr nc,laed7 + add hl,de +.laed7 + ccf + djnz laecd + rl c + rla + ld b,a + pop af + ret +.laee0 + push af + add a + add l + ld l,a + jr nc,laee7 + inc h +.laee7 + ld a,(hl) + inc hl + ld h,(hl) + ld l,a + pop af + ret +.laeed + ld b,#f7 + ld c,#82 + out (c),c + ld hl,laffe + ld a,#00 + ld d,#0b +.laefa + push af + ld c,(hl) + ld b,#f4 + out (c),a + ld b,#f6 + in a,(c) + or #c0 + out (c),a + and #3f + out (c),a + ld b,#f4 + out (c),c + ld b,#f6 + ld c,a + or #80 + out (c),a + out (c),c + pop af + inc a + inc hl + dec d + jr nz,laefa + ret +.laf20 + dw #0eee,#0e18,#0d4d,#0c8e + dw #0bda,#0b2f,#0a8f,#09f7 + dw #0968,#08e1,#0861,#07e9 + dw #0777,#070c,#06a7,#0647 + dw #05ed,#0598,#0547,#04fc + dw #04b4,#0470,#0431,#03f4 + dw #03bc,#0386,#0353,#0324 + dw #02f6,#02cc,#02a4,#027e + dw #025a,#0238,#0218,#01fa + dw #01de,#01c3,#01aa,#0192 + dw #017b,#0166,#0152,#013f + dw #012d,#011c,#010c,#00fd + dw #00ef,#00e1,#00d5,#00c9 + dw #00be,#00b3,#00a9,#009f + dw #0096,#008e,#0086,#007f + dw #0077,#0071,#006a,#0064 + dw #005f,#0059,#0054,#0050 + dw #004b,#0047,#0043,#003f + dw #003c,#0038,#0035,#0032 + dw #002f,#002d,#002a,#0028 + dw #0026,#0024,#0022,#0020 + dw #001e,#001c,#001b,#0019 + dw #0018,#0016,#0015,#0014 + dw #0013,#0012,#0011,#0010 +.lafe0 + dw lad2c,lad4a,ladac,lad35 + dw lada8,lad7a,ladcf,lad94 + dw lae18,ladbb,lad55,lae6f + dw lae8b,lae9c +.laffe equ $ + 2 +.laffd equ $ + 1 +.laffc + db #00,#00,#00,#00,#00,#00,#00,#00 +.lb009 equ $ + 5 +.lb006 equ $ + 2 +.lb005 equ $ + 1 +.lb004 + 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,#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,#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,#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,#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,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 +.lb093 equ $ + 7 + db #00,#00,#00,#00,#00,#00,#00,#00 +.lb094 + db #00,#00,#00,#00,#00,#00,#00,#00 +.lb0a1 equ $ + 5 +.lb0a0 equ $ + 4 +.lb09f equ $ + 3 +.lb09e equ $ + 2 +.lb09d equ $ + 1 + db #00,#00,#00,#00,#00,#00,#00,#00 +.lb0aa equ $ + 6 +.lb0a7 equ $ + 3 + db #00,#00,#00,#00,#00,#00,#0e,#00 + db #00,#00,#00,#ff,#00,#00,#00,#00 + db #07,#00,#00,#00,#00,#0a,#00,#00 + db #00,#00,#ff,#00,#00,#00,#00,#01 + db #00,#00,#00,#00,#0c,#00,#1e,#00 + db #00,#ff,#00,#1e,#00,#00,#01,#00 + db #01,#00,#00,#01,#01,#00,#00,#00 + db #04,#fc,#00,#00,#00,#01,#01,#00 + db #00,#00,#01,#01,#01,#02,#00,#01 + db #fe,#02,#ff,#00,#01,#03,#01,#01 + db #00,#01,#01,#14,#01,#00,#00,#f6 + db #00,#00,#00,#01,#01,#00,#00,#00 + db #0f,#00,#01,#01,#00,#ff,#00,#01 + db #ff,#00,#02,#00,#01,#01,#00,#01 + db #01,#01,#01,#00,#01,#fd,#01,#ff + db #00,#01,#01,#01,#01,#00,#01,#01 + db #04,#04,#00,#01,#fe,#e2,#1e,#00 + db #04,#04,#01,#01,#00,#01,#01,#00 + db #00,#00,#fe,#02,#00,#00,#00,#01 + db #01,#00,#00,#00,#08,#08,#50,#00 + db #00,#01,#ff,#ff,#00,#00,#06,#0f + db #08,#00,#00,#02,#08,#00,#00,#00 + db #00,#ff,#00,#00,#00,#01,#01,#00 + db #00,#00,#07,#0f,#00,#00,#00,#01 + db #ff,#00,#00,#00,#01,#02,#00,#00 + db #00,#01,#0a,#00,#00,#00,#0a,#ff + db #00,#00,#00,#00,#02,#00,#00,#00 + db #01,#01,#01,#01,#00,#05,#fc,#02 + db #fc,#00,#01,#01,#01,#01,#00,#04 + db #0e,#01,#01,#00,#01,#ff,#02,#fe +.lb19a equ $ + 6 + db #00,#08,#1e,#01,#01,#00,#0a,#0f + db #02,#00,#14,#00,#1e,#00,#f7,#00 + db #01,#00 +.lb1a6 + dw lb1f2,lb1f6,lb20a,lb21e + dw lb22e,lb23e,lb24e,lb284 + dw lb299,lb2a6,lb2b3,lb2c0 + dw lb2d3,lb2e0,lb2f4,lb2f8 + dw lb302,lb30a,lb30e,lb31f + dw lb327,lb32e,lb339,lb345 + dw lb356,lb35e,lb36f,lb37a + dw lb382,lb389,lb390,lb398 + dw lb39f,lb3a6,lb3ad,lb3b1 + dw lb3b5,lb3b9 +.lb1f6 equ $ + 4 +.lb1f2 + db #83,#20,#84,#8c,#83,#06,#1c,#83 + db #04,#1c,#21,#1c,#83,#02,#24,#24 + db #83,#04,#23,#21,#83,#02,#15,#8c +.lb20a + db #83,#06,#1d,#83,#04,#1d,#21,#1d + db #83,#02,#24,#24,#83,#04,#23,#21 +.lb21e equ $ + 4 + db #83,#02,#1d,#8c,#83,#04,#1c,#1c + db #21,#1c,#83,#02,#24,#24,#83,#04 +.lb22e equ $ + 4 + db #23,#21,#15,#8c,#83,#04,#1d,#1d + db #21,#1d,#83,#02,#24,#24,#83,#04 +.lb23e equ $ + 4 + db #23,#21,#1d,#8c,#83,#04,#1f,#1f + db #23,#1d,#83,#02,#26,#26,#83,#04 +.lb24e equ $ + 4 + db #24,#2f,#29,#8c,#86,#02,#89,#00 + db #81,#01,#80,#0c,#83,#04,#24,#86 + db #05,#81,#09,#80,#0a,#88,#01,#83 + db #02,#18,#18,#83,#04,#18,#24,#0c + db #86,#0b,#81,#08,#80,#0a,#88,#00 + db #83,#08,#0c,#86,#0e,#89,#00,#81 + db #01,#80,#0c,#83,#01,#39,#3a,#3b +.lb284 equ $ + 2 + db #3c,#8c,#83,#02,#24,#24,#24,#24 + db #83,#04,#24,#24,#83,#02,#24,#24 +.lb299 equ $ + 7 + db #24,#24,#83,#04,#24,#24,#8c,#83 + db #04,#45,#45,#40,#83,#0c,#45,#83 +.lb2a6 equ $ + 4 + db #04,#40,#45,#8c,#83,#04,#47,#83 + db #10,#48,#83,#04,#30,#83,#08,#30 +.lb2b3 equ $ + 1 + db #8c,#83,#04,#45,#83,#0c,#43,#83 +.lb2c0 equ $ + 6 + db #04,#26,#2b,#2f,#32,#8c,#83,#02 + db #24,#2b,#30,#37,#2b,#30,#37,#3c + db #48,#43,#3c,#37,#43,#3c,#37,#30 +.lb2d3 equ $ + 1 + db #8c,#83,#08,#0c,#83,#0c,#13,#83 +.lb2e0 equ $ + 6 + db #04,#13,#83,#08,#18,#8c,#83,#04 + db #0c,#83,#06,#0c,#83,#02,#0c,#83 + db #04,#0c,#83,#08,#0c,#83,#04,#18 +.lb2f8 equ $ + 6 +.lb2f4 equ $ + 2 + db #0c,#8c,#83,#20,#24,#8c,#83,#0c + db #2d,#83,#04,#2f,#83,#10,#30,#8c +.lb302 + db #83,#10,#30,#83,#08,#32,#34,#8c +.lb30e equ $ + 4 +.lb30a + db #83,#20,#24,#8c,#83,#04,#37,#83 + db #08,#35,#83,#04,#2d,#83,#08,#34 +.lb31f equ $ + 5 + db #83,#04,#30,#30,#8c,#83,#10,#2b +.lb327 equ $ + 5 + db #83,#08,#2d,#2f,#8c,#83,#08,#32 +.lb32e equ $ + 4 + db #30,#2f,#2b,#8c,#83,#0c,#2d,#83 +.lb339 equ $ + 7 + db #04,#28,#83,#08,#2d,#30,#8c,#83 + db #08,#2f,#83,#04,#23,#28,#2c,#2f +.lb345 equ $ + 3 + db #34,#2f,#8c,#83,#04,#39,#39,#3b + db #3c,#83,#02,#3f,#83,#06,#40,#83 +.lb356 equ $ + 4 + db #04,#3e,#3c,#8c,#83,#10,#39,#83 +.lb35e equ $ + 4 + db #08,#39,#3b,#8c,#83,#04,#3c,#3b + db #83,#08,#39,#83,#04,#37,#83,#08 +.lb36f equ $ + 5 + db #39,#83,#04,#3b,#8c,#83,#04,#3c + db #3b,#39,#3b,#3c,#3b,#39,#3b,#8c +.lb37a + db #83,#10,#39,#83,#08,#3b,#3c,#8c +.lb389 equ $ + 7 +.lb382 + db #83,#18,#3b,#83,#08,#39,#8c,#83 +.lb390 equ $ + 6 + db #08,#37,#34,#37,#3b,#8c,#83,#10 +.lb398 equ $ + 6 + db #39,#83,#08,#35,#37,#8c,#83,#08 +.lb39f equ $ + 5 + db #35,#2d,#30,#35,#8c,#83,#08,#32 +.lb3a6 equ $ + 4 + db #2b,#37,#32,#8c,#83,#18,#34,#83 +.lb3b1 equ $ + 7 +.lb3ad equ $ + 3 + db #08,#3b,#8c,#83,#20,#3c,#8c,#83 +.lb3b9 equ $ + 7 +.lb3b5 equ $ + 3 + db #80,#24,#8c,#83,#40,#24,#8c,#83 + db #60,#3c,#8c +.lb3bd + db #85 + db #32,#8d,#00,#86,#0f,#89,#02,#81 + db #01,#80,#0a,#8d,#01,#8b,#01,#8b + db #01,#8b,#02,#8b,#02,#8b,#01,#8b + db #01,#8b,#02,#8b,#02,#8b,#03,#8b + db #03,#8b,#04,#8b,#04,#86,#0f,#89 + db #02,#81,#01,#80,#0b,#8b,#03,#8b + db #03,#8b,#04,#8b,#04,#8b,#03,#8b + db #03,#8b,#04,#8b,#04,#8b,#05,#8b + db #05,#8b,#03,#8d,#00,#8b,#04,#86 + db #00,#89,#00,#81,#01,#80,#0b,#8d + db #0a,#8b,#06,#8b,#06,#8d,#06,#8b + db #06,#8d,#08,#8b,#06,#8d,#0a,#8b + db #06,#8b,#06,#8d,#06,#8b,#06,#8d + db #08,#8b,#06,#86,#06,#89,#00,#81 + db #01,#80,#0c,#8d,#0a,#8b,#07,#8b + db #07,#8d,#06,#8b,#07,#8d,#08,#8b + db #07,#8d,#16,#8b,#07,#8b,#07,#8d + db #12,#8b,#07,#8d,#14,#8b,#07,#86 + db #07,#89,#01,#81,#01,#80,#0b,#8d + db #0a,#8b,#07,#8b,#07,#8b,#07,#8b + db #07,#86,#04,#89,#03,#81,#01,#80 + db #0d,#8d,#01,#8b,#08,#8b,#09,#8b + db #08,#8b,#0a,#86,#07,#89,#03,#81 + db #01,#80,#0c,#8d,#06,#8b,#0b,#8d + db #08,#8b,#0b,#8d,#05,#8b,#0b,#8d + db #0a,#8b,#0b,#8d,#06,#8b,#0b,#8d + db #08,#8b,#0b,#8d,#05,#8b,#0b,#8d + db #0a,#8b,#0b,#8d,#06,#8b,#0b,#8d + db #08,#8b,#0b,#8d,#05,#8b,#0b,#8d + db #0a,#8b,#0b,#8d,#06,#8b,#0b,#8d + db #08,#8b,#0b,#8d,#0d,#8b,#0b,#8b + db #0b,#8b,#0b,#8b,#0b,#82 +.lb4bc + db #85 + db #32,#8d,#00,#86,#00,#89,#00,#81 + db #01,#80,#0c,#8d,#01,#8b,#03,#8b + db #03,#8b,#04,#8b,#04,#8b,#03,#8b + db #03,#8b,#04,#8b,#04,#8d,#0a,#8b + db #0c,#8b,#0c,#8d,#06,#8b,#0c,#8b + db #0c,#86,#00,#89,#00,#81,#01,#80 + db #0d,#8d,#0a,#8b,#0c,#8b,#0c,#8d + db #06,#8b,#0c,#8b,#0c,#8d,#0a,#8b + db #0c,#8b,#0c,#8d,#06,#8b,#0c,#8b + db #0c,#8d,#08,#8b,#0c,#8b,#0c,#8d + db #0a,#8b,#0c,#8d,#05,#8b,#0c,#86 + db #00,#89,#00,#81,#01,#80,#0d,#8d + db #0a,#8b,#0d,#8b,#0d,#8d,#06,#8b + db #0d,#8d,#08,#8b,#0d,#8d,#0a,#8b + db #0d,#8b,#0d,#8d,#06,#8b,#0d,#8d + db #08,#8b,#0d,#8d,#0a,#8b,#0d,#8b + db #0d,#8d,#06,#8b,#0d,#8d,#08,#8b + db #0d,#8d,#0a,#8b,#0d,#8b,#0d,#8d + db #06,#8b,#0d,#8d,#08,#8b,#0d,#8d + db #0a,#8b,#0d,#8b,#0d,#8d,#06,#8b + db #0d,#8d,#08,#8b,#0d,#8d,#0a,#8b + db #0d,#8b,#0d,#8d,#06,#8b,#0d,#8d + db #08,#8b,#0d,#8d,#06,#8b,#0d,#8d + db #08,#8b,#0d,#8d,#05,#8b,#0d,#8d + db #0a,#8b,#0d,#8d,#06,#8b,#0d,#8d + db #08,#8b,#0d,#8d,#05,#8b,#0d,#8d + db #0a,#8b,#0d,#8d,#06,#8b,#0d,#8d + db #08,#8b,#0d,#8d,#05,#8b,#0d,#8d + db #0a,#8b,#0d,#8d,#06,#8b,#0d,#8d + db #08,#8b,#0d,#8d,#0d,#8b,#0d,#86 + db #06,#89,#00,#81,#01,#80,#0f,#8d + db #08,#8b,#0b,#8d,#05,#8b,#0b,#8b + db #0e,#82 +.lb5bf + db #85 + db #32,#8d,#00,#86,#0f,#89,#03,#81 + db #01,#80,#0b,#8d,#16,#8b,#23,#8d + db #0a,#8b,#23,#86,#00,#89,#00,#81 + db #01,#80,#0c,#8d,#01,#8b,#01,#8b + db #01,#8b,#02,#8b,#02,#8d,#01,#86 + db #0f,#89,#03,#81,#01,#80,#0b,#8b + db #0f,#8b,#10,#8d,#0f,#8b,#24,#8d + db #01,#8b,#0f,#8b,#10,#8b,#12,#8d + db #0d,#8b,#11,#8d,#01,#8b,#13,#8b + db #14,#8b,#15,#8b,#16,#8d,#0a,#8b + db #24,#86,#09,#89,#01,#81,#01,#80 + db #0e,#8d,#0a,#8b,#24,#86,#07,#89 + db #01,#81,#01,#80,#0e,#8d,#0a,#8b + db #07,#8b,#07,#8d,#06,#8b,#07,#8d + db #08,#8b,#07,#86,#04,#89,#03,#81 + db #01,#80,#0e,#8d,#01,#8b,#17,#8b + db #17,#8b,#17,#8b,#17,#8b,#08,#8b + db #09,#8b,#08,#8b,#0a,#86,#0f,#89 + db #02,#81,#01,#80,#0b,#8d,#01,#8b + db #18,#8b,#19,#8b,#1a,#8b,#19,#86 + db #00,#89,#00,#81,#01,#80,#0e,#8d + db #f5,#8b,#18,#8b,#19,#8b,#1a,#8b + db #19,#86,#09,#89,#01,#81,#01,#80 + db #0d,#8d,#01,#8b,#1b,#8b,#1c,#8b + db #1d,#8b,#1e,#8b,#1f,#8b,#20,#8b + db #21,#8b,#22,#8b,#1b,#8b,#20,#8b + db #1d,#8b,#22,#8b,#1b,#8b,#25,#86 + db #04,#89,#01,#81,#01,#80,#0e,#8d + db #08,#8b,#0b,#8b,#0e,#82,#85,#64 + db #8d,#00,#86,#08,#89,#03,#81,#01 + db #80,#0c,#8b,#23,#8a,#85,#64,#8d + db #03,#86,#08,#89,#03,#81,#01,#80 + db #0c,#8b,#23,#8a,#85,#64,#8d,#08 + db #86,#08,#89,#03,#81,#01,#80,#0c + db #8b,#23,#8a +; +.music_info + db "Cyberbig (1990)(Animagic)(Pablo Toledo)",0 + db "",0 + + read "music_end.asm" diff --git a/ASM/Cybernoid (1988)(Hewson)(Dave Rogers)().asm b/ASM/Cybernoid (1988)(Hewson)(Dave Rogers)().asm new file mode 100644 index 00000000..8809047d --- /dev/null +++ b/ASM/Cybernoid (1988)(Hewson)(Dave Rogers)().asm @@ -0,0 +1,872 @@ +; Music of Cybernoid (1988)(Hewson)(Dave Rogers)() +; Ripped by Megachur the 18/11/2006 +; $VER 1.5 + +IFDEF FILENAME_WRITE + write "CYBERNOI.BIN" +ENDIF + +MUSIC_DATE_RIP_DAY equ 18 +MUSIC_DATE_RIP_MONTH equ 11 +MUSIC_DATE_RIP_YEAR equ 2006 +music_adr equ #6926 +FIRST_THEME equ 0 +LAST_THEME equ 1 + + read "music_header.asm" + +; CYBERNSD.ASM CYBERNOID sound driver JDRogers. + + +SOUNDCOD EQU music_begin ;28000 ;machine code load address. +;SOUNDATA EQU soundcod+854 ;datablock load address. + + NOLIST + +ENVSINDEX EQU soundata+200 +TUNESINDEX EQU ENVSINDEX+80 + +envcounts EQU 0 ;offsets within channel stores: +entcounts EQU 2 +envptr EQU 4 +entptr EQU 6 +env0 EQU 8 +ent0 EQU 10 +envadr EQU 12 +entadr EQU 14 + +chanactive EQU 16 ;1 +maincount EQU 17 ;1 +dataptr EQU 18 ;2 +conptr EQU 20 ;2 +ptrrefr EQU 22 ;2 +pitchshift EQU 24 ;1 +noiseflag EQU 25 ;1 +noisedis EQU 26 ;1 +ch_enable EQU 27 ;1 +advolreg EQU 28 ;2 +stophang EQU 30 ;1 +CURRENTDUR EQU 31 ;1 +INTERVAL EQU 32 ;1 +CURRENTNOTE EQU 33 ;1 +CHORDTOGGLE EQU 34 ;1 + +; ORG SOUNDCOD +; WRITE "CYBERNSD.BIN" +start DEFL $ + +;------------------------------------------------------------------------------ +; +.init_music +; + or a + jr z,BASIC_DEMO + ld e,40 + jr BASIC_DEMO+2 + +JUMPBLOCK JP PLAY ;used for convenience in Basic Demos + JP SILENCE +; +.real_init_music +BASIC_DEMO LD E,1 +; + LD A,1 +;------------------------------------------------- +; "E" MUST HOLD NUMBER OF TUNEBLOC TO START, "A"=channel 1,2,3. (4=CHANALT) +; CHANALT DYNAMICALLY ALLOCATES TO CHANS 2/3 ALTERNATELY + +STARTACHAN LD C,A ; a/c=chan num e=tuneblock num + CALL FINDBLOC ; 1. PUT BLOCK ADDRESS IN HL, GIVEN E + LD A,(HL) ; 2. LOOK FOR START CHANNEL MARKER + CP 9 + JP NC,NOCHANMARKER + LD C,A + INC HL +NOCHANMARKER LD A,C +CH1TO3 LD IX,STORE1 ; 4. FIND IX FOR NEW CHAN + DEC A + JP Z ,IXfound + LD IX,STORE2 + DEC A + JP Z,IXfound + LD IX,STORE3 +IXfound LD A,(HL) ; 5. LOOK FOR SPECIAL PRIORITY,ELSE DEFAULT 10 + CP 244 + LD A,10 + JP NZ, TRYSTART + INC HL + LD A,(HL) + INC HL +TRYSTART CP (IX+CHANACTIVE) ; 6. TEST AGAINST CURRENT PRIORITY + RET C +DOSTART LD (IX+CHANACTIVE),A ; 7. START CHANNEL + LD (IX+DATAPTR),L ;set pointers for this channel + LD (IX+DATAPTR+1),H + LD (IX+CONPTR),L + LD (IX+CONPTR+1),H + LD (IX+PTRREFR),L + LD (IX+PTRREFR+1),H + LD (IX+MAINCOUNT),1 + XOR A + LD (IX+PITCHSHIFT),A + LD (IX+INTERVAL),A + RET +;------------------------------------- +; +.stop_music +SILENCE XOR A +; + LD (STORE1+CHANACTIVE),A ;channel-active-flags 0 + LD (STORE2+CHANACTIVE),A + LD (STORE3+CHANACTIVE),A + LD (BUFF+8),A ;volume registers 0 + LD (BUFF+9),A + LD (BUFF+10),A + LD A,1+2+4+8+16+32 ;all gates shut + LD (BUFF+7),A ;follow through to allregist +;---------------------- +ALLREGIST XOR A + LD HL,BUFF+13 ;registers buffer + LD DE,#F40D ;D=Psg data port, E=loop counter +nextreg LD B,D + OUT (C),E ;output register No + LD BC,#F6*256+%11000000 + OUT (C),C ;tell PSG to latch reg No + OUT (C),A ;PSG to inactive + LD B,D + LD C,(HL) ;C=register data + DEC HL + OUT (C),C ;output register data + LD BC,#F6*256+%10000000 + OUT (C),C ;tell PSG to read reg data + OUT (C),A ;PSG to inactive + DEC E + JP P,nextreg + RET +;-------------------------subroutines +FINDBLOC LD A,E + ADD A,A + ADD A,TUNESINDEX AND #00FF + LD L,A + ADC A,TUNESINDEX AND #FF00 /256 + SUB L + LD H,A ;HL now points to 2byte value in table + LD E,(HL) + INC HL + LD D,(HL) ;DE=value(offset FROM START OF SOUNDATA) + LD HL,soundata + ADD HL,DE ;HL=address of new tunebloc + RET + +FINDENV LD A,E + ADD A,A + ADD A,ENVSINDEX AND #00FF + LD E,A + ADC A,ENVSINDEX AND #FF00 / 256 + SUB E + LD D,A +;FINDENV MAY BE CALLED UP TO 9 TIMES FOR A 3CHAN FX. +;8 BIT ADD IS 1 T STATE LONGER, BUT SINCE HL NOT CORRUPT, +;ALLOWS JP DECI, NOT JP READDECIDE, SAVING 38. + LD A,(DE) + ADD A,SOUNDATA AND #00FF + LD C,A + + INC DE + LD A,(DE) + ADC A,SOUNDATA AND #FF00 / 256 + LD B,A + + RET + +;-------------------MAIN CALL--------EVERY 1/50 SECOND----------------------- + +; +.play_music +PLAY CALL ALLREGIST ;throw all buffer into sound chip registers +; + + LD IX,STORE1 ;---do channel 1 (IX points to chan1 store) + LD HL,(BUFF) + CALL TESTCHAN + LD HL,(PITCHTEMP) + LD (BUFF),HL + + LD HL, (BUFF+2) + LD IX,STORE2 ;---do channel 2 + CALL TESTCHAN + LD HL,(PITCHTEMP) + LD (BUFF+2),HL + + LD HL,(BUFF+4) + LD IX,STORE3 ;---do channel 3 + CALL TESTCHAN + LD HL,(PITCHTEMP) + LD (BUFF+4),HL + + JP DOENSE ;do noise envelope + ; RET -------------->>>>>>> out + +;FOR EACH OF THE 3 CHANNELS: + +TESTCHAN LD (PITCHTEMP),HL + LD A,(IX+CHANACTIVE) ;CHAN ACTIVE? + OR A + RET Z ;do nothing if channel not active + DEC (IX+maincount) ;duration countdown, new note when 0 + JP NZ,DOENV_ENT + LD (IX+STOPHANG),20 + +READDECIDE LD H,(IX+dataptr+1) ;get data ptr address + LD L,(IX+dataptr) +DECI LD A,(HL) ;A=peek(ptr) + INC HL + LD E,(HL) ;E=peek(ptr+1) + INC HL ;inc and store ptr for next time +CONTPTR LD (IX+DATAPTR+1),H + LD (IX+DATAPTR),L + DEC (IX+STOPHANG) + RET Z ;gets out of possible endless loops after 20 passes +;----------------------- +;THE FOLLOWING ROUTINES RESPOND TO DATA AND JUMP BACK TO READDECIDE OR DECI, +;EVENTUALLY EXITING VIA "DOPAUSE","NEWNOTE","PLAYRAND" OR "KILLCHAN" ROUTINES + +SUBSELECT CP 0 ;A=VALUE + JP Z,DOPAUSE ;pitch 0 = pause + CP 9 + JP C,STARTLOOP ;<9 = CHAN to start, FOLLOWED BY BLOC num + CP 101 + JP C,NEWNOTE ;LESS THAN 100=normal note + CP 228 + JP Z,NOISE ;add noise to a note + CP 227 + JP Z,PLAYRAND ;PLAY FROM RANDNOTE STORE(+PITCHSHIFT) + CP 225 + JP Z,KILLCHAN ;shut chan after e.g.short sound effects + CP 233 + JP Z,NEWENT ;set new tone-envelope for current channel + CP 232 + JP Z,NEWENV ;set new volume-env for current chan + CP 234 + JP Z,NEWENSE ;set new noise-envelope + CP 226 + JP Z,NEWRANDNOTE ;226/ander. RANDnote = rnd*255 AND ANDER + CP 229 + JP Z,GONEWBLOCK ;play a given tunebloc,then return to 1st + CP 230 + JP Z,NEWKEY ;change musical key for current chan + CP 240 + JP Z,SETINTERVAL + CP 255 + JP Z,RETCONBLOC ;end-of-tunebloc marker + + JR DECI ;SAFETY NET + +STARTLOOP PUSH IX ;A=CHAN E=TUNEBLOC + CALL STARTACHAN + POP IX + JP READDECIDE + +NOISE LD A,E + LD (BUFF+6),A ;noisepitch + LD (IX+noiseflag),1 + JP DECI + +NEWKEY LD (IX+pitchshift),E + JP DECI + +NEWENT CALL FINDENV ;returns with envelope address in BC + LD (IX+ENTADR),C + LD (IX+ENTADR+1),B + JP DECI + +NEWENV CALL FINDENV + LD (IX+ENVADR),C + LD (IX+ENVADR+1),B + JP DECI + +NEWENSE CALL FINDENV + LD (ENSSTORE+12),BC + JP DECI + +GONEWBLOCK LD (IX+conptr+1),H + LD (IX+conptr),L ;leaving bloc so store ptr + CALL FINDBLOC + JP DECI + +RETCONBLOC LD H,(IX+conptr+1) ;(ptr re-enters original "conductor" bloc) + LD L,(IX+conptr) + LD A,(HL) + INC A ;TEST FOR 255,end-of-conductor-bloc marker + JP NZ,DECI + LD H,(IX+ptrrefr+1) ;refresh + LD L,(IX+ptrrefr) +notend JP DECI + +KILLCHAN LD (IX+CHANACTIVE),0 +killvol LD H,(IX+ADVOLREG+1) + LD L,(IX+ADVOLREG) ;HL=address of vol register,current chan + LD (HL),0 + RET + +SETINTERVAL LD (IX+INTERVAL),E + JP DECI + +NEWRANDNOTE LD HL,10418 ;RANDSEED,SELF MOD LATER + LD C,L + LD B,H + ADD HL,HL + ADD HL,HL + ADD HL,BC + ADD HL,HL + ADD HL,HL + ADD HL,HL + ADD HL,BC + LD (NEWRANDNOTE+1),HL + LD A,H ;A=0 TO 255 + AND E ;E = ANDER = range limiter + INC A ;A=1 to (0 gives pause!) + LD (PLAYRAND+1),A + JP READDECIDE + +PLAYRAND LD A,42 ;SELF MODIFIED VALUE + +NEWNOTE ADD A,(IX+pitchshift) ;A=notenum +DOPAUSE LD (IX+maincount),E ;E=duration + LD (IX+CURRENTNOTE),A ;for chorder + + CALL FINDSETPITCH + + LD H, (IX+ADVOLREG+1) + LD L, (IX+ADVOLREG) + LD (HL),0 + + PUSH IX ;RESTART ENV/ent + POP DE ;DE=start of chan store + LD HL,8 + ADD HL,DE ;HL=start of chan store+8 + LDI + LDI + LDI + LDI + LDI + LDI + LDI + LDI + + DEC (IX+noiseflag) ;test noiseflag + LD (IX+NOISEFLAG),0 ;RESET EVERY TIME! + LD L,(IX+NOISEDIS) ;DEFAULT DISABLE + JR NZ,GATING + +NOISEon LD HL,(ENSSTORE+envadr) ;restart noise envelope + LD (ENSSTORE+envptr),HL + LD HL,00 + LD (ENSSTORE),HL ;L=0,no noisedisable + +GATING LD A,(BUFF+7) + AND (IX+ch_enable) ;chan ENable (pitch AND noise on) + OR L ;noise DISable + AND 32+16+8+4+2+1 ;SAFETY, top 2 bits must remain off + LD (BUFF+7),A ;FINAL RESULT IN A! +;------------------------------------ + ;IX points to volume-env workspace for current chan +DOENV_ENT CALL ENGENERAL ;returns with "volume change+128" in C + LD H,(IX+advolreg+1) + LD L,(IX+advolreg) + LD A,(HL) + ADD A,C + SUB 128 + LD (HL),A + +ISITAPAUSE LD HL,(PITCHTEMP) + LD A,H + OR L + RET Z +ISITACHORD LD A,(IX+interval) + OR A + JP NZ,DOCHORD +DOENT INC IX ;make IX work on tone-envelope workspace,2 bytes along + INC IX + CALL ENGENERAL ;returns with "pitch change+128" in C + LD HL,(PITCHTEMP) + LD B,0 + ADD HL,BC + LD C,128 ;deduct 128, allows negative changes + SBC HL,BC + LD (PITCHTEMP),HL + RET + +DOCHORD DEC (IX+CHORDTOGGLE) + LD A,(IX+CURRENTNOTE) + JR Z,FINDSETPITCH + ADD (IX+INTERVAL) + LD (IX+CHORDTOGGLE),1 + +pitchtab equ soundata +FINDSETPITCH ADD A,A ;get new pitch from pitchtable + ADD A,PITCHTAB AND #00FF + LD L,A + ADC A,PITCHTAB AND #FF00 /256 + SUB L + LD H,A ;HL=ADR OF PITCH IN TABLE + + LD DE,PITCHTEMP ;DE=DESTINATION + LDI ;PEEK(HL) > PEEK(DE) + LDI + RET + +DOENSE LD IX,ENSSTORE ;IX now = noise envelope workspace + CALL ENGENERAL ;returns with "noise shift+128" in C + LD HL, BUFF+6 + LD A,(HL) ;get current noise value + ADD A,C + SUB 128 ;add shift, minus 128 + LD (HL),A ;replace + CP 17 + RET C +noiseoff INC HL ;HL=buff+7 + LD A,(HL) + OR 32+16+8 + LD (HL),A + RET + +;------------------------ +ENGENERAL PUSH IX ;(subroutine to do envelope and return value) + POP HL ;points to counts + LD D,(IX+ENVPTR+1) ;points to envelope + LD E,(IX+ENVPTR) + INC (HL) ;inc count + LD A,(DE) + SUB (HL) ;compare to envelope + LD C,128 ;DEFAULT (C= 128 = 0 ) + RET NZ ;count not reached + LD (HL),A ;A=0, resets count + INC DE ;move along envelope + LD A,(DE) + LD C,A ;C HOLDS INCREMENT + INC DE ;point at repeats number + INC HL + INC (HL) ;point at repeats count + LD A,(DE) + SUB (HL) ;compare + RET NZ ;count not reached + LD (HL),A ;A=0, resets count; + INC DE ;move to next section of envelope + LD A,(DE) + INC A ;test for A=255 (end of envelope marker) + JP NZ,nextsect + LD D,(IX+envadr+1) ;refresh ptr to start of envelope + LD E,(IX+envadr) +nextsect LD (IX+envptr+1),D + LD (IX+envptr),E + RET +;-------------------------------------------------------- + +BUFF DW 00 ;a pitch ;holds replica of sound chip registers + DW 00 ;b pitch + DW 00 ;c pitch + DB 0 ;noise pitch + DB 32+16+8 ;gates + DB 0 ;a vol + DB 0 ;b vol + DB 0 ;c vol + DW 100 ;hard env len + DB 10 ;hard env type + +PITCHTEMP DW 00 + +ensstore DW 00 ;ENSCOUNTS ;noise envelope workspace + DW 10 ;dummy spacer to give same format as chan stores + DW 00 ;ENSPTR + DW 04 + DW 00 ;ENS0 + DW 18 + DW 00 ;ENSADR +;---------------------------------- +;channel stores + +STORE1 DW 00 ;env counts + DW 00 ;ENT COUNTS + DW 00 ;ENV PTR + DW 00 ;ENT PTR + + DW 00 ;ENV ZEROERS + DW 00 ;ENT ZEROERS + DW 00 ;ENV ADDR + DW 00 ;ENT ADDR + + DB 0 ;CHAN ACTIVE + DB 0 ;MAIN COUNT + DW 00 ;MAIN PTR + DW 00 ;CON PTR + DW 00 ;PTR REFRESH + DB 0 ;PITCHSHIFT + DB 0 ;NOISE FLAG + DB 8 ;NOISE DIS + DB 32+16+4+2 ;chan ENable + DW BUFF+8 ;AD OF VOL REG + DB 0 + DB 0 ;CURRENTDUR (FOR COMPRESSOR) + DB 0 + DB 0 + DB 0 + +STORE2 DW 00 + DW 00 + DW 00 + DW 00 + + DW 00 + DW 00 + DW 00 + DW 00 + + DB 0 + DB 0 + DW 00 + DW 00 + DW 00 + DB 0 + DB 0 + DB 16 ;NOISE DIS + DB 32+8+4+1 ;chan ENable + DW BUFF+9 ;AD OF VOL REg + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + +STORE3 DW 00 + DW 00 + DW 00 + DW 00 + + DW 00 + DW 00 + DW 00 + DW 00 + + DB 0 + DB 0 + DW 00 + DW 00 + DW 00 + DB 0 + DB 0 + DB 32 ;NOISE DIS + DB 16+8+2+1 ;CHAN ENABLE + DW BUFF+10 ;AD OF VOL REG + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + + DB 42 ;SPARE +;------------------------------------------------ +SOUNDATA + db #00,#00 + dw #150c,#13dd,#12c0,#11b2 + dw #10b4,#0fc4,#0ee2,#0e0c + dw #0d42,#0c84,#0bd0,#0b26 + dw #0a86,#09ef,#0960,#08d9 + dw #085a,#07e2,#0771,#0706 + dw #06a1,#0642,#05e8,#0593 + dw #0543,#04f7,#04b0,#046d + dw #042d,#03f1,#03b8,#0383 + dw #0350,#0321,#02f4,#02ca + dw #02a1,#027c,#0258,#0236 + dw #0217,#01f9,#01dc,#01c1 + dw #01a8,#0190,#017a,#0165 + dw #0151,#013e,#012c,#011b + dw #010b,#00fc,#00ee,#00e1 + dw #00d4,#00c8,#00bd,#00b2 + dw #00a8,#009f,#0096,#008e + dw #0086,#007e,#0077,#0070 + dw #006a,#0064,#005e,#0059 + dw #0054,#004f,#004b,#0047 + dw #0043,#003f,#003c,#0038 + dw #0035,#0032,#002f,#002d + dw #002a,#0028,#0025,#0023 + dw #0021,#0020,#001e,#001c + dw #001b,#0019,#0018,#0016 + dw #0015,#0014,#0000 + dw #017c,#0180,#018a,#0194 + dw #0195,#019c,#01a9,#01b6 + dw #01c3,#01cd,#01ce,#01cf + dw #01d9,#01e3,#01ed,#01f7 + dw #0201,#020b,#0212,#0228 + dw #022c,#0230,#023a,#0247 + dw #0248,#0258,#025f,#0266 + dw #0267,#026b,#0278,#027f + dw #0280,#0281,#0282,#028c + dw #02a5,#02be,#02ce,#0000 + db #da,#02,#e0,#02,#9c,#03,#a5,#03 + db #b0,#03,#e5,#03,#6e,#04,#f1,#04 + db #18,#05,#3f,#05,#6c,#05,#77,#05 + db #7c,#05,#97,#05,#1a,#06,#1d,#06 + db #32,#06,#c3,#06,#e0,#06,#f9,#06 + db #14,#07,#87,#07,#8c,#07,#96,#07 + db #a4,#07,#ae,#07,#b8,#07,#c8,#07 + db #d8,#07,#e2,#07,#f0,#07,#fe,#07 + db #08,#08,#18,#08,#2a,#08,#38,#08 + db #3b,#08,#48,#08,#5b,#08,#94,#08 + db #a7,#08,#c5,#08,#e2,#08,#4a,#1a + db #58,#1a,#62,#1a,#ae,#1a,#ca,#1a + db #e5,#1a,#00,#00 + db #c8,#80,#c8,#ff,#01,#81,#0d,#09 + db #7f,#09,#c8,#80,#c8,#ff,#01,#8d + db #01,#01,#7f,#04,#01,#77,#01,#ff + db #ff,#01,#87,#01,#c8,#80,#c8,#ff + db #01,#8c,#01,#0a,#7f,#08,#14,#7f + db #04,#c8,#80,#c8,#ff,#01,#8d,#01 + db #02,#7f,#07,#0c,#7f,#06,#c8,#80 + db #c8,#ff,#01,#8d,#01,#01,#7f,#0b + db #09,#7f,#02,#c8,#80,#c8,#ff,#01 + db #88,#01,#01,#82,#01,#c8,#80,#c8 + db #ff,#ff,#ff,#01,#77,#01,#01,#83 + db #03,#c8,#80,#c8,#ff,#02,#81,#02 + db #02,#7f,#03,#02,#81,#01,#ff,#01 + db #81,#02,#01,#7f,#04,#01,#81,#02 + db #ff,#01,#89,#01,#01,#79,#01,#c8 + db #80,#c8,#ff,#01,#82,#02,#01,#7e + db #04,#01,#82,#02,#ff,#01,#87,#03 + db #01,#79,#06,#01,#87,#03,#ff,#01 + db #88,#0a,#01,#96,#c8,#ff,#01,#93 + db #01,#01,#6d,#01,#01,#7f,#02,#01 + db #81,#04,#01,#7f,#04,#01,#81,#02 + db #c8,#80,#c8,#ff,#02,#81,#c8,#ff + db #02,#7f,#c8,#ff,#01,#80,#01,#01 + db #b4,#01,#c8,#80,#c8,#ff,#01,#80 + db #01,#01,#8b,#01,#01,#b4,#01,#c8 + db #80,#c8,#ff,#ff,#01,#85,#03,#01 + db #71,#01,#01,#80,#01,#01,#8f,#01 + db #01,#7b,#03,#ff,#01,#85,#03,#01 + db #71,#01,#ff,#01,#96,#01,#02,#79 + db #02,#ff,#ff,#01,#a1,#c8,#ff,#01 + db #85,#03,#09,#7d,#04,#0e,#7f,#03 + db #c8,#80,#c8,#ff,#01,#84,#01,#01 + db #7f,#01,#ff,#ff,#ff,#ff,#02,#8d + db #01,#02,#67,#01,#c8,#80,#c8,#ff + db #01,#8f,#01,#08,#80,#01,#02,#7f + db #01,#04,#7f,#01,#07,#7f,#02,#0c + db #7f,#04,#16,#7f,#07,#c8,#80,#c8 + db #ff,#01,#79,#01,#01,#8b,#01,#01 + db #6f,#01,#01,#9b,#01,#01,#5b,#01 + db #01,#af,#01,#01,#47,#01,#01,#c3 + db #01,#ff,#01,#8f,#01,#01,#7a,#01 + db #01,#86,#01,#01,#7f,#09,#08,#7f + db #06,#ff,#01,#99,#03,#01,#79,#07 + db #0a,#7e,#c8,#ff,#01,#9b,#e1,#ff + db #ff,#ff,#ff,#af,#01,#e8,#00,#00 + db #30,#e5,#04,#02,#02,#e5,#04,#02 + db #03,#e5,#04,#02,#08,#00,#54,#02 + db #04,#e5,#05,#02,#04,#e5,#06,#02 + db #04,#e5,#05,#02,#04,#e5,#06,#02 + db #00,#e4,#06,#00,#06,#e4,#06,#00 + db #06,#e5,#0d,#e5,#10,#e5,#0d,#e5 + db #10,#e5,#08,#e5,#08,#e5,#08,#e5 + db #0c,#02,#04,#e5,#05,#02,#04,#e5 + db #06,#02,#04,#e5,#05,#02,#04,#e5 + db #06,#02,#00,#f0,#00,#e4,#06,#3a + db #06,#e4,#06,#39,#06,#e5,#0d,#e5 + db #10,#e5,#0d,#e5,#10,#02,#25,#e5 + db #26,#e4,#06,#00,#06,#e4,#06,#00 + db #06,#e5,#09,#e5,#07,#e5,#09,#e5 + db #08,#e6,#13,#02,#13,#e5,#14,#e4 + db #01,#00,#0c,#02,#13,#e5,#14,#e4 + db #01,#00,#0c,#e6,#15,#02,#15,#e5 + db #14,#e4,#01,#00,#0c,#02,#15,#e5 + db #14,#02,#0f,#e5,#05,#02,#0f,#e5 + db #05,#02,#0f,#e5,#05,#02,#0f,#e5 + db #05,#e4,#06,#00,#06,#e4,#06,#00 + db #06,#e5,#0d,#e5,#0d,#e5,#10,#02 + db #25,#e5,#26,#e5,#07,#e5,#0b,#ff + db #e8,#00,#00,#60,#e5,#07,#e5,#07 + db #ff,#e5,#09,#e8,#00,#00,#30,#e5 + db #07,#e5,#07,#ff,#e6,#07,#e8,#02 + db #e9,#0d,#f0,#00,#1f,#0c,#1f,#0c + db #22,#0c,#24,#0c,#26,#0c,#f0,#0f + db #26,#0c,#f0,#0e,#26,#0c,#26,#0c + db #f0,#10,#22,#0c,#f0,#00,#22,#0c + db #16,#0c,#22,#0c,#16,#0c,#f0,#10 + db #24,#0c,#f0,#00,#18,#0c,#24,#0c + db #ff,#e6,#07,#e8,#06,#f0,#18,#03 + db #27,#ea,#16,#e4,#01,#30,#06,#e4 + db #01,#31,#06,#e4,#01,#32,#06,#e4 + db #01,#30,#06,#e4,#01,#32,#06,#e4 + db #01,#35,#06,#ea,#00,#e4,#06,#3a + db #0c,#ea,#16,#e4,#01,#3c,#06,#e4 + db #01,#39,#06,#e4,#01,#00,#06,#e4 + db #01,#00,#06,#e4,#01,#00,#06,#e4 + db #01,#00,#06,#ea,#00,#e4,#06,#00 + db #0c,#ea,#16,#e4,#01,#00,#06,#e4 + db #01,#00,#06,#e4,#01,#00,#06,#e4 + db #01,#00,#06,#e4,#01,#2e,#06,#e4 + db #01,#00,#06,#ea,#00,#e4,#06,#30 + db #0c,#ea,#16,#e4,#01,#32,#06,#e4 + db #01,#30,#06,#e4,#01,#00,#06,#e4 + db #01,#00,#06,#e4,#01,#00,#06,#e4 + db #01,#00,#06,#ea,#00,#e4,#06,#00 + db #0c,#ff,#03,#27,#ea,#16,#e4,#01 + db #30,#06,#e4,#01,#31,#06,#e4,#01 + db #32,#06,#e4,#01,#30,#06,#e4,#01 + db #32,#06,#e4,#01,#35,#06,#ea,#00 + db #e4,#06,#3a,#0c,#ea,#16,#e4,#01 + db #3c,#06,#e4,#01,#39,#06,#e4,#01 + db #00,#06,#e4,#01,#00,#06,#e4,#01 + db #00,#06,#e4,#01,#00,#06,#ea,#00 + db #e4,#06,#39,#0c,#ea,#16,#e4,#01 + db #35,#06,#e4,#01,#00,#06,#e4,#01 + db #00,#06,#e4,#01,#00,#06,#e4,#01 + db #00,#06,#e4,#01,#00,#06,#ea,#00 + db #e4,#06,#37,#0c,#ea,#16,#e4,#01 + db #34,#06,#e4,#01,#00,#06,#e4,#01 + db #00,#06,#e4,#01,#00,#06,#e4,#01 + db #00,#06,#e4,#01,#00,#06,#ea,#00 + db #e4,#06,#00,#0c,#ff,#e8,#07,#ea + db #15,#03,#00,#e4,#01,#00,#06,#e4 + db #01,#00,#06,#e4,#01,#00,#06,#e4 + db #01,#00,#06,#ea,#00,#e4,#06,#00 + db #0c,#ea,#15,#e4,#01,#00,#06,#e4 + db #01,#00,#06,#ff,#e8,#07,#ea,#16 + db #03,#00,#e4,#01,#00,#06,#e4,#01 + db #00,#06,#e4,#01,#00,#06,#e4,#01 + db #00,#06,#ea,#00,#e4,#06,#00,#0c + db #ea,#16,#e4,#01,#00,#06,#e4,#01 + db #00,#06,#ff,#e6,#13,#e8,#07,#ea + db #00,#e9,#00,#03,#00,#ea,#16,#e4 + db #01,#43,#06,#e4,#01,#41,#06,#e4 + db #0e,#3c,#06,#e4,#01,#3e,#06,#ea + db #00,#e4,#06,#00,#0c,#ea,#16,#e4 + db #06,#00,#06,#e4,#06,#00,#06,#ff + db #e6,#13,#e8,#04,#e9,#10,#00,#0c + db #48,#a8,#e1,#00,#f0,#00,#f0,#ff + db #e8,#07,#ea,#16,#e4,#01,#00,#06 + db #e4,#01,#00,#06,#e4,#01,#00,#06 + db #e4,#01,#00,#06,#ea,#00,#e4,#06 + db #00,#0c,#ff,#e6,#07,#e8,#06,#e9 + db #0f,#f0,#18,#1f,#06,#f0,#00,#1f + db #06,#f0,#18,#1f,#06,#f0,#00,#1f + db #06,#ea,#14,#e4,#06,#00,#06,#1f + db #06,#f0,#18,#1f,#06,#f0,#00,#1f + db #06,#f0,#1b,#1e,#06,#f0,#00,#1e + db #06,#f0,#1b,#1e,#06,#f0,#00,#1e + db #06,#e4,#06,#00,#06,#1e,#06,#f0 + db #1b,#1e,#06,#f0,#00,#1e,#06,#f0 + db #1b,#1f,#06,#f0,#00,#1f,#06,#f0 + db #1b,#1f,#06,#f0,#00,#1f,#06,#ea + db #14,#e4,#06,#00,#06,#1f,#06,#f0 + db #1b,#1f,#06,#f0,#00,#1f,#06,#f0 + db #1d,#21,#06,#f0,#00,#21,#06,#f0 + db #1d,#21,#06,#f0,#00,#21,#06,#e4 + db #06,#21,#06,#21,#06,#f0,#1b,#21 + db #06,#f0,#00,#21,#06,#ff,#00,#06 + db #ff,#e4,#06,#00,#06,#e4,#06,#00 + db #06,#e5,#0d,#e8,#04,#3c,#30,#48 + db #90,#3c,#30,#48,#90,#ff,#02,#11 + db #f0,#18,#22,#06,#f0,#00,#22,#06 + db #f0,#18,#22,#06,#f0,#00,#22,#06 + db #ea,#01,#e4,#06,#00,#06,#22,#06 + db #f0,#18,#22,#06,#f0,#00,#22,#06 + db #f0,#28,#1d,#06,#f0,#00,#1d,#06 + db #f0,#28,#1d,#06,#f0,#00,#1d,#06 + db #e4,#06,#00,#06,#1d,#06,#f0,#29 + db #e4,#06,#1d,#06,#f0,#00,#1d,#06 + db #02,#12,#ea,#01,#f0,#21,#e4,#01 + db #24,#06,#f0,#00,#e4,#01,#24,#06 + db #f0,#1f,#e4,#01,#24,#06,#f0,#00 + db #e4,#01,#24,#06,#f0,#1f,#e4,#06 + db #24,#06,#f0,#00,#24,#06,#24,#06 + db #24,#06,#f0,#1f,#e4,#0e,#24,#06 + db #e4,#0a,#24,#06,#e4,#07,#24,#06 + db #e4,#04,#24,#06,#f0,#00,#e4,#01 + db #24,#06,#e4,#04,#24,#06,#e4,#0a + db #29,#06,#e4,#0e,#2b,#06,#ff,#e6 + db #1f,#e8,#08,#e9,#0c,#00,#0c,#22 + db #0c,#24,#0c,#26,#0c,#2d,#06,#00 + db #06,#2d,#06,#00,#06,#2d,#0c,#2e + db #0c,#00,#30,#e1,#e6,#1f,#e8,#08 + db #e9,#0c,#2d,#0c,#2b,#06,#00,#06 + db #2b,#06,#00,#06,#2b,#24,#e9,#11 + db #37,#24,#00,#60,#e1,#e8,#02,#e9 + db #0d,#24,#18,#27,#18,#2b,#18,#2e + db #18,#27,#24,#28,#0c,#29,#18,#2d + db #0c,#2e,#06,#30,#06,#00,#60,#e1 + db #e8,#05,#f0,#00,#e9,#0c,#03,#27 + db #ea,#16,#e4,#01,#30,#06,#2e,#06 + db #e4,#01,#2c,#06,#29,#06,#ea,#00 + db #e4,#06,#27,#06,#24,#06,#e4,#01 + db #22,#06,#24,#06,#ea,#16,#e4,#01 + db #27,#06,#00,#06,#e4,#01,#24,#06 + db #00,#06,#ea,#00,#e4,#06,#2b,#06 + db #00,#06,#e4,#01,#27,#06,#27,#06 + db #ea,#16,#e4,#01,#00,#06,#00,#06 + db #e4,#01,#00,#06,#00,#06,#ea,#00 + db #e4,#06,#29,#06,#00,#06,#e4,#01 + db #26,#06,#26,#06,#ea,#16,#e4,#01 + db #00,#06,#00,#06,#e4,#01,#00,#06 + db #00,#06,#ea,#00,#e4,#06,#00,#06 + db #00,#06,#ff,#e6,#02,#e5,#13,#ff + db #02,#f4,#0f,#e8,#19,#e9,#18,#5d + db #48,#e1,#02,#f4,#0f,#e8,#01,#f0 + db #3c,#ea,#05,#e4,#02,#24,#48,#e1 + db #02,#f4,#0f,#e8,#1d,#e9,#1e,#4f + db #4d,#e1,#03,#f4,#0f,#e8,#06,#e9 + db #19,#53,#0f,#e1,#03,#f4,#0f,#e8 + db #07,#e9,#01,#ea,#01,#e4,#07,#5e + db #10,#ea,#16,#e1,#03,#f4,#0f,#e8 + db #05,#e9,#1c,#ea,#27,#e4,#03,#4f + db #14,#ea,#16,#e1,#02,#f4,#0f,#e8 + db #15,#e9,#10,#43,#14,#e1,#03,#f4 + db #0f,#e2,#0f,#e8,#25,#e9,#26,#e6 + db #3e,#e3,#19,#e1,#02,#f4,#0f,#e8 + db #23,#e9,#24,#ea,#00,#e4,#0e,#56 + db #63,#e1,#03,#f4,#0f,#e8,#12,#e9 + db #24,#61,#20,#e1,#02,#f4,#0f,#e8 + db #1d,#e9,#1a,#ea,#0b,#e4,#0c,#39 + db #40,#e9,#0c,#e1,#03,#f4,#0f,#e8 + db #06,#e9,#22,#ea,#00,#e4,#0e,#5e + db #02,#5e,#10,#ea,#16,#e1,#01,#f4 + db #0f,#02,#24,#00,#12,#03,#24,#00 + db #12,#e5,#24,#e1,#00,#03,#e1,#f4 + db #0f,#e8,#02,#e9,#1a,#ea,#15,#e4 + db #07,#5e,#5a,#e1,#e6,#07,#e8,#02 + db #e9,#0f,#20,#48,#22,#18,#23,#48 + db #e8,#05,#25,#78,#e5,#0a,#e1,#e6 + db #07,#e8,#07,#f0,#0c,#37,#06,#37 + db #06,#35,#0c,#ea,#16,#e4,#04,#33 + db #0c,#30,#18,#32,#0c,#e4,#04,#33 + db #0c,#e4,#04,#35,#0c,#36,#06,#36 + db #06,#35,#0c,#e4,#04,#33,#0c,#2f + db #18,#31,#0c,#ea,#14,#e4,#06,#33 + db #0c,#e8,#05,#35,#60,#f0,#00,#ff + db #e6,#37,#e8,#0e,#e9,#00,#e2,#1f + db #e3,#06,#13,#06,#e3,#06,#1f,#06 + db #e3,#06,#ff,#01,#f4,#0f,#e8,#08 + db #e9,#0f,#e2,#0e,#ea,#13,#02,#2a + db #03,#29,#e6,#1e,#e3,#18,#e4,#01 + db #00,#18,#e3,#18,#e4,#01,#00,#18 + db #ff,#f4,#0f,#e8,#08,#e9,#0c,#e6 + db #31,#e3,#06,#e6,#36,#e3,#06,#e6 + db #38,#e3,#06,#e6,#3a,#e3,#06,#e6 + db #38,#e3,#2a,#00,#0c,#ff,#f4,#0f + db #e8,#08,#e9,#0c,#e6,#1e,#e3,#18 + db #e3,#18,#e3,#18,#e3,#18,#ff,#e6 + db #34,#e3,#06,#e6,#00,#00,#fc,#08 + db #99,#99,#00 + +FINISH DEFL $ +; LIST +; CLOSE +;START DEFL START +;FINISH DEFL FINISH +LENGTH DEFL FINISH-START +; +.music_info + db "Cybernoid (1988)(Hewson)(Dave Rogers)",0 + db "CYBERNSD.ASM - CYBERNOID sound driver - JDRogers.",0 + + read "music_end.asm" diff --git a/ASM/Cybernoid 2 (1988)(Hewson)(Dave Rogers)().asm b/ASM/Cybernoid 2 (1988)(Hewson)(Dave Rogers)().asm new file mode 100644 index 00000000..8c558a7b --- /dev/null +++ b/ASM/Cybernoid 2 (1988)(Hewson)(Dave Rogers)().asm @@ -0,0 +1,985 @@ +; Music of Cybernoid 2 (1988)(Hewson)(Dave Rogers)() +; Ripped by Megachur the 18/11/2006 +; $VER 1.5 + +IFDEF FILENAME_WRITE + write "CYBERNO2.BIN" +ENDIF + +MUSIC_DATE_RIP_DAY equ 18 +MUSIC_DATE_RIP_MONTH equ 11 +MUSIC_DATE_RIP_YEAR equ 2006 +music_adr equ #b18e + + read "music_header.asm" + +;CYBER2SD.ASM CYBERNOID 2 sound driver J.Dave Rogers 1988 + +;************************************* +SPECVERSION EQU 0 ;1 FOR SPECTRUM,0 FOR AMSTRAD +SOUNDCOD EQU music_begin ;28000 ;machine code address. +;SOUNDATA EQU soundcod+881 ;datablock address. +;************************************* + + NOLIST + +ENVSINDEX EQU soundata+200 +TUNESINDEX EQU ENVSINDEX+80 + +envcounts EQU 0 +entcounts EQU 2 +envptr EQU 4 +entptr EQU 6 +env0 EQU 8 +ent0 EQU 10 +envadr EQU 12 +entadr EQU 14 + +chanactive EQU 16 ;1 +maincount EQU 17 ;1 +dataptr EQU 18 ;2 +conptr EQU 20 ;2 +ptrrefr EQU 22 ;2 +pitchshift EQU 24 ;1 +noiseflag EQU 25 ;1 +noisedis EQU 26 ;1 +ch_enable EQU 27 ;1 +advolreg EQU 28 ;2 +stophang EQU 30 ;1 +CURRENTDUR EQU 31 ;1 +INTERVAL EQU 32 ;1 +CURRENTNOTE EQU 33 ;1 +CHORDTOGGLE EQU 34 ;1 + +; ORG SOUNDCOD +; WRITE "CYBER2SD.BIN" +start DEFL $ + +;----------------------------------------------- +JUMPBLOCK JP PLAY ;used for convenience in Basic Demos + JP SILENCE +; +.init_music +; +BASIC_DEMO LD E,1 + LD A,1 + +;------------------------------------------------- +STARTACHAN LD C,A ; a/c=chan num e=tuneblock num + CALL FINDBLOC ; 1. PUT BLOCK ADDRESS IN HL, GIVEN E + LD A,(HL) ; 2. LOOK FOR START CHANNEL MARKER + CP 9 + JR NC,nochanmarker + LD C,A + INC HL + LD A,(HL) ; 5. LOOK FOR SPECIAL PRIORITY,ELSE DEFAULT 10 +NOCHANMARKER CP 244 + LD B,10 + JR NZ, CH1TO3 + INC HL + LD B,(HL) + INC HL ;C NOW CHAN B NOW PRIORITY + +CH1TO3 LD IX,STORE1 ; 4. FIND IX FOR NEW CHAN + DEC C + JR Z ,IXfound + LD IX,STORE2 + DEC C + JR Z,IXfound + LD IX,STORE3 + DEC C + JR Z,IXFOUND +CHANALT LD A,(STORE1+CHANACTIVE) ;CH4= 1 / 2 + OR A + LD IX,STORE1 + JR Z,IXFOUND ;CH1 FREE + LD IX,STORE2 ;USE CH2 +IXFOUND +TRYSTART LD A,B + CP (IX+CHANACTIVE) ; 6. TEST AGAINST CURRENT PRIORITY + RET C +DOSTART XOR A + LD (IX+CHANACTIVE),A ; 7. off while set up! + LD (IX+DATAPTR),L ;set pointers for this channel + LD (IX+DATAPTR+1),H + LD (IX+CONPTR),L + LD (IX+CONPTR+1),H + LD (IX+PTRREFR),L + LD (IX+PTRREFR+1),H + + LD (IX+MAINCOUNT),1 + LD (IX+PITCHSHIFT),A + LD (IX+INTERVAL),A + LD (IX+CHANACTIVE),B ;activate + RET + +;------------------------------------- +; +.stop_music +; +SILENCE XOR A + LD (STORE1+CHANACTIVE),A + LD (STORE2+CHANACTIVE),A + LD (STORE3+CHANACTIVE),A + LD (BUFF+8),A ;volume registers 0 + LD (BUFF+9),A + LD (BUFF+10),A + LD A,1+2+4+8+16+32 ;all gates shut + LD (BUFF+7),A + JP ALLREGIST ;RETS FROM THERE + +;-------------------------subroutines +FINDBLOC LD A,E + ADD A,A + ADD A,TUNESINDEX AND #00FF + LD L,A + ADC A,TUNESINDEX AND #FF00 /256 + SUB L + LD H,A ;HL now points to 2byte value in table + LD E,(HL) + INC HL + LD D,(HL) ;DE=value(offset FROM START OF SOUNDATA) + LD HL,soundata + ADD HL,DE ;HL=address of new tunebloc + RET + +FINDENV LD A,E + ADD A,A + ADD A,ENVSINDEX AND #00FF + LD E,A + ADC A,ENVSINDEX AND #FF00 / 256 + SUB E + LD D,A + + LD A,(DE) + ADD A,SOUNDATA AND #00FF + LD C,A + + INC DE + LD A,(DE) + ADC A,SOUNDATA AND #FF00 / 256 + LD B,A + + RET + +;-------------------MAIN CALL--------EVERY 1/50 SECOND----------------------- +; +.play_music +; +PLAY LD IX,STORE1 ;---do channel 1 (IX points to chan1 store) + LD HL,(BUFF) + CALL TESTCHAN + LD HL,(PITCHTEMP) + LD (BUFF),HL + + LD HL, (BUFF+2) + LD IX,STORE2 ;---do channel 2 + CALL TESTCHAN + LD HL,(PITCHTEMP) + LD (BUFF+2),HL + + LD HL,(BUFF+4) + LD IX,STORE3 ;---do channel 3 + CALL TESTCHAN + LD HL,(PITCHTEMP) + LD (BUFF+4),HL + + CALL DOENSE ;do noise envelope +;******************** +IF SPECVERSION + +ALLREGIST XOR A + LD HL,BUFF+13 + LD E,13 +NEXTREG LD BC,65533 + OUT (C),E + LD BC,49149 + LD A,(HL) + DEC HL + OUT (C),A + DEC E + JP P,NEXTREG +ELSE + +ALLREGIST XOR A + LD HL,BUFF+13 ;registers buffer + LD DE,#F40D ;D=Psg data port, E=loop counter +nextreg LD B,D + OUT (C),E + LD BC,#F6*256+%11000000 + OUT (C),C + OUT (C),A + LD B,D + LD C,(HL) + DEC HL + OUT (C),C + LD BC,#F6*256+%10000000 + OUT (C),C + OUT (C),A + DEC E + JP P,nextreg +ENDIF +;************************** + RET ;-------------->>>>>>> out + +;FOR EACH OF THE 3 CHANNELS: + +TESTCHAN LD (PITCHTEMP),HL + LD A,(IX+CHANACTIVE) ;CHAN ACTIVE? + OR A + RET Z ;do nothing if channel not active + DEC (IX+maincount) ;duration countdown, new note when 0 + JP NZ,DOENV_ENT + LD A,20 + LD (DECI+1),A + + LD H,(IX+dataptr+1) ;get data ptr address + LD L,(IX+DATAPTR) + +DECI LD A,0-0 + DEC A + LD (DECI+1),A ;SELF-MOD + RET Z + + LD A,(HL) ;A=peek(ptr) + INC HL + LD E,(HL) ;E=peek(ptr+1) + INC HL ;inc and store ptr for next time + +;----------------------- +SUBSELECT CP 0 ;A=VALUE + JP Z,DOPAUSE ;pitch 0 = pause + CP 9 + JR C,STARTLOOP ;<9 = CHAN to start, FOLLOWED BY BLOC num + CP 101 + JP C,NEWNOTE ;LESS THAN 100=normal note + CP 127 + JR C,NOISE ;102 TO 127 NOISE K TO X + CP 223 + JP C, COMPNOTE ;128 TO 223 COMPRESSED NOTES + CP 227 + JP Z,PLAYRAND ;PLAY FROM RANDNOTE STORE(+PITCHSHIFT) + CP 225 + JP Z,KILLCHAN ;shut chan after e.g.short sound effects + CP 233 + JR Z,NEWENT ;set new tone-envelope for current channel + CP 232 + JR Z,NEWENV ;set new volume-env for current chan + CP 234 + JR Z,NEWENSE ;set new noise-envelope + CP 226 + JP Z,NEWRANDNOTE ;226/ander. RANDnote = rnd*255 AND ANDER + CP 229 + JR Z,GONEWBLOCK ;play a given tunebloc,then return to 1st + CP 230 + JP Z,NEWKEY ;change musical key for current chan + CP 240 + JR Z,SETINTERVAL + CP 255 + JR Z,RETCONBLOC ;end-of-tunebloc marker + + JR DECI ;SAFETY NET + +KILLCHAN LD (IX+CHANACTIVE),0 +killvol LD H,(IX+ADVOLREG+1) + LD L,(IX+ADVOLREG) ;HL=address of vol register,current chan + LD (HL),0 + RET + + +STARTLOOP PUSH HL + PUSH IX ;A=CHAN E=TUNEBLOC + CALL STARTACHAN + POP IX + POP HL + JR DECI + +NOISE SUB 102 + LD (BUFF+6),A ;noisepitch + LD (IX+noiseflag),1 + DEC HL + JP DECI + +NEWKEY LD (IX+pitchshift),E + JP DECI + +NEWENT CALL FINDENV ;returns with envelope address in BC + LD (IX+ENTADR),C + LD (IX+ENTADR+1),B + JP DECI + +NEWENV CALL FINDENV + LD (IX+ENVADR),C + LD (IX+ENVADR+1),B + JP DECI + +NEWENSE CALL FINDENV + LD (ENSSTORE+12),BC + JP DECI + +GONEWBLOCK LD (IX+conptr+1),H + LD (IX+conptr),L ;leaving bloc so store ptr + CALL FINDBLOC + JP DECI + +RETCONBLOC LD H,(IX+conptr+1) ;(ptr re-enters original "conductor" bloc) + LD L,(IX+conptr) + LD A,(HL) + INC A ;TEST FOR 255,end-of-conductor-bloc marker + JR NZ,NOTEND + LD H,(IX+ptrrefr+1) ;refresh + LD L,(IX+ptrrefr) +notend JP DECI + +SETINTERVAL LD (IX+INTERVAL),E + JP DECI + +NEWRANDNOTE PUSH HL + LD HL,10418 ;RANDSEED,SELF MOD LATER + LD C,L + LD B,H + ADD HL,HL + ADD HL,HL + ADD HL,BC + ADD HL,HL + ADD HL,HL + ADD HL,HL + ADD HL,BC + LD (NEWRANDNOTE+2),HL + LD A,H ;A=0 TO 255 + AND E ;E = ANDER = range limiter + INC A ;A=1 to (0 gives pause!) + LD (PLAYRAND+1),A + POP HL + JP DECI + +COMPNOTE AND 127 + DEC HL + LD E,(IX+CURRENTDUR) + JP NEWNOTE + +PLAYRAND LD A,42 ;SELF MODIFIED VALUE + +NEWNOTE ADD A,(IX+pitchshift) ;A=notenum + +;********** +IF SPECVERSION + SUB 12 +ENDIF +;********** + +DOPAUSE LD (IX+maincount),E ;E=duration + LD (IX+CURRENTNOTE),A ;for chorder + LD (IX+CURRENTDUR),E ;FOR COMPRESSOR + + LD (IX+DATAPTR+1),H + LD (IX+DATAPTR),L + + CALL FINDSETPITCH + + LD H, (IX+ADVOLREG+1) + LD L, (IX+ADVOLREG) + LD (HL),0 + + PUSH IX ;RESTART ENV/ent + POP DE ;DE=start of chan store + LD HL,8 + ADD HL,DE ;HL=start of chan store+8 + LDI + LDI + LDI + LDI + LDI + LDI + LDI + LDI + + DEC (IX+noiseflag) ;test noiseflag + LD (IX+NOISEFLAG),0 ;RESET EVERY TIME! + LD L,(IX+NOISEDIS) ;DEFAULT DISABLE + JR NZ,GATING + +NOISEon LD HL,(ENSSTORE+envadr) ;restart noise envelope + LD (ENSSTORE+envptr),HL + LD HL,00 + LD (ENSSTORE),HL ;L=0,no noisedisable + +GATING LD A,(BUFF+7) + AND (IX+ch_enable) ;chan ENable (pitch AND noise on) + OR L ;noise DISable + AND 32+16+8+4+2+1 ;SAFETY, top 2 bits must remain off + LD (BUFF+7),A ;FINAL RESULT IN A! +;------------------------------------ + ;IX points to volume-env workspace for current chan +DOENV_ENT CALL ENGENERAL ;returns with "volume change+128" in C + LD H,(IX+advolreg+1) + LD L,(IX+advolreg) + LD A,(HL) + ADD A,C + SUB 128 + LD (HL),A + +ISITAPAUSE LD HL,(PITCHTEMP) + LD A,H + OR L + RET Z +ISITACHORD LD A,(IX+interval) + OR A + JR NZ,DOCHORD +DOENT INC IX ;make IX work on tone-envelope workspace,2 bytes along + INC IX + CALL ENGENERAL ;returns with "pitch change+128" in C + LD HL,(PITCHTEMP) + LD B,0 +;******************* +IF SPECVERSION + ADD HL,BC + ADD HL,BC + LD C,128 + SBC HL,BC + SBC HL,BC +ELSE + ADD HL,BC + LD C,128 ;deduct 128, allows negative changes + SBC HL,BC +ENDIF +;*******************: + LD (PITCHTEMP),HL + RET + +DOCHORD DEC (IX+CHORDTOGGLE) + LD A,(IX+CURRENTNOTE) + JR Z,FINDSETPITCH + ADD (IX+INTERVAL) + LD (IX+CHORDTOGGLE),1 + +pitchtab equ soundata +FINDSETPITCH ADD A,A ;get new pitch from pitchtable + ADD A,PITCHTAB AND #00FF + LD L,A + ADC A,PITCHTAB AND #FF00 /256 + SUB L + LD H,A ;HL=ADR OF PITCH IN TABLE + + LD DE,PITCHTEMP ;DE=DESTINATION + LDI ;PEEK(HL) > PEEK(DE) + LDI + RET + +DOENSE LD IX,ENSSTORE ;IX now = noise envelope workspace + CALL ENGENERAL ;returns with "noise shift+128" in C + LD HL, BUFF+6 + LD A,(HL) ;get current noise value + ADD A,C + SUB 128 ;add shift, minus 128 + LD (HL),A ;replace + CP 17 + RET C +noiseoff INC HL ;HL=buff+7 + LD A,(HL) + OR 32+16+8 + LD (HL),A + RET + +;------------------------ +ENGENERAL PUSH IX ;(subroutine to do envelope and return value) + POP HL ;points to counts + LD D,(IX+ENVPTR+1) ;points to envelope + LD E,(IX+ENVPTR) + INC (HL) ;inc count + LD A,(DE) + SUB (HL) ;compare to envelope + LD C,128 ;DEFAULT (C= 128 = 0 ) + RET NZ ;count not reached + LD (HL),A ;A=0, resets count + INC DE ;move along envelope + LD A,(DE) + LD C,A ;C HOLDS INCREMENT + INC DE ;point at repeats number + INC HL + INC (HL) ;point at repeats count + LD A,(DE) + SUB (HL) ;compare + RET NZ ;count not reached + LD (HL),A ;A=0, resets count; + INC DE ;move to next section of envelope + LD A,(DE) + INC A ;test for A=255 (end of envelope marker) + JR NZ,nextsect + LD D,(IX+envadr+1) ;refresh ptr to start of envelope + LD E,(IX+envadr) +nextsect LD (IX+envptr+1),D + LD (IX+envptr),E + RET +;-------------------------------------------------------- + +BUFF DW 00 ;a pitch ;holds replica of sound chip registers + DW 00 ;b pitch + DW 00 ;c pitch + DB 0 ;noise pitch + DB 32+16+8 ;gates + DB 0 ;a vol + DB 0 ;b vol + DB 0 ;c vol + DW 100 ;hard env len + DB 10 ;hard env type + +PITCHTEMP DW 00 + +ensstore DW 00 ;ENSCOUNTS ;noise envelope workspace + DW 10 ;dummy spacer to give same format as chan stores + DW 00 ;ENSPTR + DW 04 + DW 00 ;ENS0 + DW 18 + DW 00 ;ENSADR +;---------------------------------- +;channel stores + +STORE1 DW 00 ;env counts + DW 00 ;ENT COUNTS + DW 00 ;ENV PTR + DW 00 ;ENT PTR + + DW 00 ;ENV ZEROERS + DW 00 ;ENT ZEROERS + DW 00 ;ENV ADDR + DW 00 ;ENT ADDR + + DB 0 ;CHAN ACTIVE + DB 0 ;MAIN COUNT + DW 00 ;MAIN PTR + DW 00 ;CON PTR + DW 00 ;PTR REFRESH + DB 0 ;PITCHSHIFT + DB 0 ;NOISE FLAG + DB 8 ;NOISE DIS + DB 32+16+4+2 ;chan ENable + DW BUFF+8 ;AD OF VOL REG + DB 0 + DB 0 ;CURRENTDUR (FOR COMPRESSOR) + DB 0 + DB 0 + DB 0 + +STORE2 DW 00 + DW 00 + DW 00 + DW 00 + + DW 00 + DW 00 + DW 00 + DW 00 + + DB 0 + DB 0 + DW 00 + DW 00 + DW 00 + DB 0 + DB 0 + DB 16 ;NOISE DIS + DB 32+8+4+1 ;chan ENable + DW BUFF+9 ;AD OF VOL REg + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + +STORE3 DW 00 + DW 00 + DW 00 + DW 00 + + DW 00 + DW 00 + DW 00 + DW 00 + + DB 0 + DB 0 + DW 00 + DW 00 + DW 00 + DB 0 + DB 0 + DB 32 ;NOISE DIS + DB 16+8+2+1 ;CHAN ENABLE + DW BUFF+10 ;AD OF VOL REG + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + + DB 42 ;SPARE +;------------------------------------------------ +SOUNDATA + db #00,#00,#9f,#17,#4c,#16,#0c,#15 + db #dd,#13,#c0,#12,#b2,#11,#b4,#10 + db #c4,#0f,#e2,#0e,#0c,#0e,#42,#0d + db #84,#0c,#d0,#0b,#26,#0b,#86,#0a + db #ef,#09,#60,#09,#d9,#08,#5a,#08 + db #e2,#07,#71,#07,#06,#07,#a1,#06 + db #42,#06,#e8,#05,#93,#05,#43,#05 + db #f7,#04,#b0,#04,#6d,#04,#2d,#04 + db #f1,#03,#b8,#03,#83,#03,#50,#03 + db #21,#03,#f4,#02,#ca,#02,#a1,#02 + db #7c,#02,#58,#02,#36,#02,#17,#02 + db #f9,#01,#dc,#01,#c1,#01,#a8,#01 + db #90,#01,#7a,#01,#65,#01,#51,#01 + db #3e,#01,#2c,#01,#1b,#01,#0b,#01 + db #fc,#00,#ee,#00,#e1,#00,#d4,#00 + db #c8,#00,#bd,#00,#b2,#00,#a8,#00 + db #9f,#00,#96,#00,#8e,#00,#86,#00 + db #7e,#00,#77,#00,#70,#00,#6a,#00 + db #64,#00,#5e,#00,#59,#00,#54,#00 + db #4f,#00,#4b,#00,#47,#00,#43,#00 + db #3f,#00,#3c,#00,#38,#00,#35,#00 + db #32,#00,#2f,#00,#2d,#00,#2a,#00 + db #28,#00,#25,#00,#23,#00,#21,#00 + db #20,#00,#1e,#00,#1c,#00,#1b,#00 + db #19,#00,#18,#00,#16,#00,#00,#00 + db #8c,#01,#90,#01,#9a,#01,#a4,#01 + db #b4,#01,#be,#01,#cb,#01,#d8,#01 + db #e5,#01,#f5,#01,#ff,#01,#09,#02 + db #13,#02,#1d,#02,#1e,#02,#1f,#02 + db #20,#02,#2a,#02,#2b,#02,#41,#02 + db #42,#02,#46,#02,#50,#02,#5d,#02 + db #6a,#02,#7a,#02,#81,#02,#88,#02 + db #95,#02,#99,#02,#a6,#02,#ad,#02 + db #ba,#02,#c1,#02,#c2,#02,#cc,#02 + db #e5,#02,#fe,#02,#0e,#03,#00,#00 + db #1a,#03,#37,#04,#df,#04,#e2,#04 + db #ef,#04,#3d,#05,#4f,#05,#5f,#05 + db #a1,#05,#e3,#05,#ee,#05,#0f,#06 + db #24,#06,#29,#06,#3f,#06,#5e,#06 + db #5f,#06,#83,#06,#84,#06,#85,#06 + db #86,#06,#87,#06,#1f,#03,#2b,#03 + db #3a,#03,#46,#03,#52,#03,#61,#03 + db #70,#03,#7c,#03,#8c,#03,#9b,#03 + db #a7,#03,#b8,#03,#c9,#03,#d7,#03 + db #e2,#03,#e3,#03,#f2,#03,#00,#04 + db #01,#04,#13,#04,#1e,#04,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#88,#06,#91,#06,#9e,#06 + db #a9,#06,#ba,#06,#c7,#06,#d0,#06 + db #db,#06,#e4,#06,#c8,#80,#c8,#ff + db #01,#81,#0d,#09,#7f,#09,#c8,#80 + db #c8,#ff,#01,#8d,#01,#01,#7f,#04 + db #01,#77,#01,#ff,#01,#8a,#01,#01 + db #81,#02,#02,#7f,#07,#0c,#7f,#06 + db #c8,#80,#c8,#ff,#01,#81,#0a,#09 + db #7f,#06,#c8,#80,#c8,#ff,#01,#8c + db #01,#0a,#7f,#08,#14,#7f,#04,#c8 + db #80,#c8,#ff,#01,#8d,#01,#02,#7f + db #07,#0c,#7f,#06,#c8,#80,#c8,#ff + db #01,#8d,#01,#01,#7f,#0b,#09,#7f + db #02,#c8,#80,#c8,#ff,#01,#8b,#01 + db #08,#7f,#01,#02,#7f,#01,#07,#7f + db #03,#16,#7f,#07,#ff,#01,#83,#03 + db #11,#7f,#05,#c8,#80,#c8,#ff,#01 + db #89,#01,#01,#7d,#03,#c8,#80,#c8 + db #ff,#01,#77,#01,#01,#83,#03,#c8 + db #80,#c8,#ff,#01,#81,#02,#02,#7f + db #03,#03,#81,#01,#ff,#ff,#ff,#ff + db #01,#87,#03,#01,#79,#06,#01,#87 + db #03,#ff,#ff,#01,#93,#01,#01,#6d + db #01,#01,#7f,#02,#01,#81,#04,#01 + db #7f,#04,#01,#81,#02,#c8,#80,#c8 + db #ff,#ff,#02,#7f,#c8,#ff,#01,#80 + db #01,#01,#b4,#01,#c8,#80,#c8,#ff + db #01,#80,#01,#01,#7e,#01,#02,#e3 + db #01,#c8,#80,#c8,#ff,#01,#8a,#01 + db #01,#7e,#01,#02,#7f,#03,#c8,#80 + db #c8,#ff,#01,#85,#03,#01,#71,#01 + db #01,#80,#01,#01,#8f,#01,#01,#7b + db #03,#ff,#01,#85,#03,#01,#71,#01 + db #ff,#01,#96,#01,#02,#79,#02,#ff + db #01,#86,#01,#01,#85,#01,#01,#7f + db #03,#c8,#80,#c8,#ff,#01,#a1,#c8 + db #ff,#01,#85,#03,#09,#7d,#04,#0e + db #7f,#03,#c8,#80,#c8,#ff,#01,#84 + db #01,#01,#7f,#01,#ff,#01,#8b,#01 + db #01,#7e,#01,#02,#7f,#03,#c8,#80 + db #c8,#ff,#01,#83,#05,#01,#71,#01 + db #ff,#ff,#02,#8d,#01,#02,#67,#01 + db #c8,#80,#c8,#ff,#01,#8f,#01,#08 + db #80,#01,#02,#7f,#01,#04,#7f,#01 + db #07,#7f,#02,#0c,#7f,#04,#16,#7f + db #07,#c8,#80,#c8,#ff,#01,#79,#01 + db #01,#8b,#01,#01,#6f,#01,#01,#9b + db #01,#01,#5b,#01,#01,#af,#01,#01 + db #47,#01,#01,#c3,#01,#ff,#01,#8f + db #01,#01,#7a,#01,#01,#86,#01,#01 + db #7f,#09,#08,#7f,#06,#ff,#01,#99 + db #03,#01,#79,#07,#0a,#7e,#c8,#ff + db #00,#00,#f4,#63,#e1,#ff,#ff,#04 + db #f4,#0f,#e8,#19,#e9,#18,#5d,#48 + db #ea,#16,#e1,#04,#f4,#0f,#e8,#01 + db #f0,#3c,#ea,#05,#67,#24,#4f,#ea + db #16,#e1,#04,#f4,#0f,#e8,#1d,#e9 + db #1e,#4f,#4d,#ea,#16,#e1,#03,#f4 + db #0f,#e8,#06,#e9,#19,#53,#0f,#ea + db #16,#e1,#03,#f4,#0f,#e8,#07,#e9 + db #01,#ea,#01,#6c,#5e,#10,#ea,#16 + db #e1,#03,#f4,#0f,#e8,#05,#e9,#1c + db #ea,#27,#68,#4f,#14,#ea,#16,#e1 + db #03,#f4,#0f,#e8,#15,#e9,#10,#43 + db #14,#ea,#16,#e1,#03,#f4,#0f,#e2 + db #0f,#e8,#25,#e9,#26,#e6,#3e,#e3 + db #19,#ea,#16,#e1,#04,#f4,#0f,#e8 + db #23,#e9,#24,#ea,#00,#73,#56,#63 + db #ea,#16,#e1,#03,#f4,#0f,#e8,#12 + db #e9,#24,#61,#12,#ea,#16,#e1,#03 + db #f4,#0f,#e8,#1d,#e9,#1a,#ea,#0b + db #71,#39,#40,#e9,#0c,#ea,#16,#e1 + db #03,#f4,#0f,#e8,#06,#e9,#22,#ea + db #00,#73,#5e,#02,#5e,#10,#ea,#16 + db #e1,#01,#f4,#0f,#02,#23,#00,#0c + db #03,#23,#00,#12,#e5,#23,#e1,#f4 + db #0f,#e8,#01,#e9,#1a,#5b,#12,#4f + db #69,#e1,#e1,#04,#f4,#0f,#e8,#01 + db #e9,#20,#ea,#14,#70,#49,#2a,#ea + db #16,#e1,#04,#f4,#0f,#e8,#02,#e9 + db #1c,#58,#16,#d8,#d8,#ea,#16,#e1 + db #e1,#01,#f4,#0f,#02,#29,#03,#2a + db #e8,#00,#00,#32,#e5,#2a,#00,#6e + db #e5,#2a,#ff,#e6,#30,#e8,#1e,#e9 + db #00,#e2,#3f,#e3,#03,#ff,#e9,#14 + db #e6,#30,#e8,#04,#ea,#01,#e3,#1e + db #ea,#00,#e8,#08,#73,#e3,#46,#e8 + db #04,#ea,#01,#66,#e3,#3c,#ff,#01 + db #f4,#0f,#03,#00,#02,#03,#e6,#00 + db #f0,#00,#e9,#0c,#e8,#03,#e5,#05 + db #e5,#05,#e5,#05,#e5,#05,#03,#03 + db #02,#31,#e5,#04,#e5,#05,#03,#03 + db #02,#33,#e5,#04,#e5,#06,#02,#0d + db #03,#09,#e5,#07,#02,#0e,#e5,#08 + db #02,#34,#03,#03,#e5,#04,#e6,#0a + db #e5,#05,#03,#0c,#02,#35,#e6,#05 + db #e5,#04,#e5,#05,#02,#37,#e5,#06 + db #e5,#04,#03,#09,#02,#0d,#e6,#00 + db #e5,#07,#02,#0e,#e5,#08,#03,#03 + db #02,#38,#e5,#04,#02,#32,#e5,#05 + db #02,#34,#03,#03,#e5,#04,#02,#39 + db #e5,#05,#e5,#05,#e5,#05,#02,#34 + db #e5,#05,#02,#39,#e5,#05,#e5,#05 + db #e5,#05,#02,#34,#e5,#05,#03,#00 + db #e6,#09,#f0,#13,#e8,#1f,#02,#00 + db #e5,#05,#e5,#05,#e5,#06,#e5,#06 + db #e5,#05,#e5,#05,#e5,#06,#e5,#06 + db #e6,#0e,#02,#36,#e5,#05,#e5,#05 + db #e5,#05,#02,#00,#e5,#02,#ff,#00 + db #38,#ff,#e6,#1f,#e8,#17,#f0,#0c + db #e5,#04,#e5,#05,#ff,#0c,#e5,#ea + db #16,#e9,#12,#66,#21,#07,#a1,#66 + db #ad,#a1,#6b,#ab,#66,#9f,#66,#9f + db #66,#ab,#66,#9d,#9d,#66,#a9,#9d + db #6b,#b5,#66,#9d,#66,#9c,#66,#a9 + db #66,#9d,#9d,#66,#a9,#9d,#6b,#a8 + db #66,#9c,#66,#9c,#66,#a8,#66,#9a + db #66,#9a,#66,#a6,#66,#9a,#6b,#b2 + db #66,#9a,#66,#98,#66,#a6,#66,#9f + db #9f,#66,#ab,#9f,#6b,#b7,#66,#9f + db #66,#9f,#66,#ab,#ff,#66,#15,#07 + db #66,#a1,#66,#ab,#66,#ad,#6b,#ad + db #66,#a1,#66,#9f,#66,#a1,#ff,#66 + db #1e,#07,#aa,#66,#9e,#a8,#6b,#b6 + db #66,#aa,#66,#a8,#66,#aa,#ff,#66 + db #1f,#07,#66,#9f,#66,#ab,#66,#ab + db #6a,#af,#66,#af,#66,#a3,#66,#af + db #66,#a4,#66,#a4,#66,#9c,#66,#9f + db #6a,#b0,#66,#a4,#66,#9c,#66,#9f + db #66,#a4,#66,#98,#66,#9c,#66,#9f + db #6a,#b0,#66,#a4,#66,#9c,#66,#9f + db #66,#a3,#66,#a3,#66,#a8,#66,#aa + db #6a,#af,#66,#a3,#66,#a8,#66,#aa + db #ff,#66,#23,#07,#66,#a3,#66,#a7 + db #66,#af,#6a,#ad,#66,#ad,#66,#a1 + db #66,#ad,#66,#9c,#66,#9c,#66,#a8 + db #66,#a8,#6a,#b4,#66,#a8,#66,#9c + db #66,#a8,#66,#9a,#66,#9a,#66,#a6 + db #66,#9a,#6a,#b2,#66,#9a,#66,#a6 + db #66,#9a,#66,#a5,#66,#a5,#66,#b1 + db #66,#a5,#6a,#a3,#66,#a3,#66,#af + db #66,#a3,#ff,#e6,#1f,#e8,#17,#e9 + db #00,#e5,#07,#e5,#08,#ff,#00,#07 + db #a1,#9c,#a4,#a6,#a8,#a6,#a4,#a3 + db #21,#23,#15,#07,#97,#15,#0e,#1f + db #07,#a1,#1f,#0e,#1d,#07,#9f,#1d + db #2a,#1c,#07,#9b,#1c,#1c,#ff,#00 + db #0e,#48,#07,#ca,#c8,#c5,#c0,#c7 + db #45,#54,#43,#1c,#41,#2a,#40,#07 + db #bf,#40,#1c,#ff,#e8,#17,#e5,#04 + db #ff,#e6,#18,#e8,#1b,#f0,#0c,#00 + db #0e,#23,#07,#a4,#a6,#a3,#a4,#a6 + db #28,#54,#28,#1c,#28,#38,#ff,#e6 + db #18,#e8,#1b,#f0,#0c,#27,#0e,#27 + db #07,#a8,#aa,#a7,#a8,#aa,#2c,#2a + db #1c,#07,#9e,#20,#0e,#28,#07,#aa + db #2c,#0e,#af,#2d,#38,#ff,#ff,#21 + db #0e,#a4,#a3,#a6,#24,#07,#a6,#a8 + db #a9,#a8,#a6,#a4,#a3,#21,#0e,#95 + db #a3,#1f,#07,#21,#23,#1a,#07,#9d + db #9c,#95,#9a,#9d,#9c,#95,#9f,#9d + db #9c,#95,#ff,#ff,#ff,#ff,#ff,#ff + db #e8,#09,#e9,#0c,#e5,#0b,#e5,#32 + db #e1,#e6,#24,#e8,#09,#e9,#0a,#23 + db #0e,#e9,#0c,#21,#46,#e1,#e6,#24 + db #e8,#09,#e9,#0c,#e5,#0a,#e5,#32 + db #e1,#e6,#24,#e8,#1b,#f0,#18,#e5 + db #0a,#23,#2a,#00,#0e,#1d,#07,#9c + db #9a,#e1,#e6,#1d,#e8,#1f,#f0,#0c + db #e5,#10,#e5,#05,#e5,#05,#ff,#e6 + db #1d,#e8,#1f,#f0,#0c,#e5,#05,#ff + db #e6,#1d,#e8,#09,#f0,#0c,#e5,#10 + db #1a,#38,#e1,#e8,#1b,#f0,#18,#e5 + db #0b,#e5,#32,#e1,#e8,#1f,#f0,#18 + db #00,#0e,#3c,#07,#bb,#bc,#00,#07 + db #b9,#00,#07,#ff,#00,#00,#97,#cf + db #a5,#97,#cf,#a2,#97,#cf,#3c,#99 + db #cf,#00,#00,#35,#20,#00,#00,#00 + db #00,#00,#15,#30,#2a,#00,#00,#00 + db #15,#15,#95,#64,#88,#00,#00,#40 + db #6a,#6e,#3a,#6a,#2a,#00,#00,#00 + db #00,#00,#00,#35,#20,#00,#00,#00 + db #00,#00,#00,#15,#9d,#00,#00,#00 + db #00,#35,#20,#6a,#98,#2a,#00,#00 + db #10,#6a,#3a,#35,#3a,#00,#00,#00 + db #20,#15,#10,#3a,#20,#00,#00,#10 + db #00,#00,#35,#cc,#3a,#00,#00,#44 + db #20,#10,#6a,#95,#30,#20,#00,#15 + db #c8,#9d,#cc,#3a,#64,#88,#00,#10 + db #3f,#3a,#3f,#30,#6a,#2a,#00,#00 + db #30,#64,#30,#64,#35,#20,#00,#00 + db #00,#60,#9d,#60,#98,#00,#00,#00 + db #00,#10,#30,#15,#88,#00,#00,#00 + db #00,#00,#00,#10,#3a,#00,#00,#00 + db #00,#00,#00,#3a,#35,#00,#00,#00 + db #00,#2a,#6a,#3a,#cc,#00,#00,#00 + db #95,#95,#9d,#35,#95,#00,#00,#00 + db #00,#00,#00,#10,#3a,#00,#00,#15 + db #9d,#3a,#c8,#10,#3f,#00,#30,#10 + db #6e,#30,#35,#cc,#30,#6a,#3a,#00 + db #00,#2a,#35,#30,#6a,#3a,#15,#9d + db #20,#c0,#3a,#6e,#9d,#35,#3a,#35 + db #64,#10,#c8,#00,#9d,#10,#3a,#15 + db #30,#44,#98,#15,#95,#10,#3a,#30 + db #64,#35,#c8,#10,#30,#00,#00,#2a + db #00,#6a,#2a,#35,#9d,#00,#00,#8a + db #00,#80,#00,#45,#00,#40,#00,#00 + db #8a,#00,#80,#00,#45,#00,#40,#00 + db #40,#00,#45,#00,#80,#00,#8a,#40 + db #00,#45,#00,#00,#00,#00,#00,#00 + db #00,#a8,#00,#54,#a8,#54,#02,#54 + db #02,#01,#02,#02,#00,#0a,#00,#8a + db #00,#80,#54,#54,#a8,#54,#02,#54 + db #02,#01,#02,#a8,#01,#00,#05,#00 + db #00,#00,#00,#00,#00,#00,#00,#40 + db #cc,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#80,#00,#c4,#00,#9d + db #2a,#3f,#00,#2a,#00,#00,#00,#00 + db #00,#00,#c0,#40,#33,#40,#33,#40 + db #22,#40,#22,#40,#22,#40,#22,#00 + db #00,#73,#00,#73,#a0,#73,#a0,#51 + db #a0,#f1,#a0,#f1,#a0,#f1,#a0,#40 + db #22,#40,#22,#40,#22,#40,#72,#40 + db #33,#40,#33,#00,#73,#00,#00,#f1 + db #a0,#f1,#a0,#f1,#a0,#f1,#a0,#f3 + db #a0,#f2,#a0,#f0,#00,#00,#00,#40 + db #c4,#00,#00,#00,#80,#00,#80,#00 + db #80,#00,#80,#00,#40,#00,#40,#cc + db #3f,#00,#00,#00,#2a,#00,#2a,#00 + db #2a,#00,#2a,#15,#00,#15,#00,#00 + db #40,#00,#80,#00,#80,#00,#c0,#00 + db #c0,#00,#00,#40,#c4,#00,#00,#15 + db #00,#00,#2a,#88,#2a,#cc,#2a,#cc + db #2a,#00,#00,#cc,#3f,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #02,#54,#0a,#81,#0a,#a9,#0a,#00 + db #a2,#11,#a0,#d1,#a0,#73,#a0,#73 + db #a0,#73,#a0,#73,#a0,#73,#a0,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #80,#40,#8a,#c5,#8a,#00,#00,#00 + db #2a,#44,#20,#95,#20,#9d,#20,#9d + db #20,#9d,#20,#30,#20,#00,#00,#a9 + db #0a,#a9,#0a,#a9,#0a,#a9,#0a,#a9 + db #0a,#a9,#0a,#0f,#0a,#00,#00,#73 + db #a0,#73,#a0,#73,#a0,#73,#a0,#73 + db #a0,#73,#a0,#f0,#a0,#00,#00,#00 + db #80,#40,#02,#54,#02,#d4,#02,#d4 + db #02,#d4,#02,#81,#02,#00,#00,#00 + db #00,#c0,#c0,#00,#00,#fc,#fc,#03 + db #03,#0f,#0f,#00,#00,#00,#00,#40 + db #00,#40,#a8,#40,#a8,#54,#03,#54 + db #03,#54,#07,#54,#0f,#00,#00,#00 + db #00,#d4,#a8,#d4,#02,#d4,#02,#56 + db #02,#54,#02,#01,#02,#00,#02,#00 + db #00,#00,#00,#c0,#c0,#00,#00,#fc + db #fc,#03,#03,#0f,#0f,#00,#00,#00 + db #00,#54,#03,#54,#07,#54,#07,#54 + db #07,#01,#0a,#01,#0a,#05,#00,#5e + db #07,#5e,#07,#5e,#07,#5e,#07,#5e + db #07,#5e,#07,#5e,#07,#5e,#07,#5e + db #07,#5e,#07,#5e,#07,#5e,#07,#5e + db #07,#5e,#07,#5e,#07,#5e,#07,#00 + db #00,#54,#02,#54,#02,#54,#02,#54 + db #02,#54,#02,#54,#02,#54,#02,#54 + db #02,#54,#02,#54,#02,#54,#02,#54 + db #02,#54,#02,#54,#02,#00,#00,#5e + db #07,#5e,#07,#5e,#07,#5e,#07,#5e + db #07,#5e,#07,#5e,#07,#5e,#07,#00 + db #00,#56,#fc,#00,#00,#03,#fc,#03 + db #03,#0f,#0f,#00,#00,#00,#00,#00 + db #00,#00,#00,#56,#fc,#00,#00,#03 + db #fc,#03,#03,#0f,#0f,#00,#00,#8a + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#f0,#f0,#da,#f0,#f0,#f0,#f0 + db #f0,#f0,#f0,#da,#f0,#da,#f0,#f0 + db #f0,#e5,#f0,#33,#27,#49,#82,#41 + db #41,#41,#86,#82,#33,#f0,#f0,#da + db #11,#c0,#a2,#cf,#e5,#e5,#f0,#f0 + db #da,#da,#da,#da,#da,#da,#cf,#e5 + db #e5,#f0,#f0,#f2,#f0,#f0,#f0,#f0 + db #f0,#f0,#8a,#82,#83,#56,#a9,#03 + db #56,#c0,#a9,#a9,#ac,#09,#56,#4d + db #8a,#f0,#f0,#e5,#e5,#e5,#f0,#f0 + db #f0,#f0,#f0,#f0,#c0,#da,#f0,#f0 + db #f0,#f0,#f0,#f0,#f0,#e5,#f0,#da + db #f0,#b1,#b1,#0f,#4b,#82,#00,#00 + db #00,#00,#4a,#0c,#c3,#00,#33,#72 + db #da,#33,#51,#c0,#a2,#da,#f0,#f0 + db #f0,#f2,#e5,#f0,#f3,#f1,#f0,#f1 + db #f1,#f1,#f3,#f2,#da,#f1,#f1,#e5 + db #f0,#e5,#e5,#f0,#da,#f3,#f3,#f2 + db #f0,#f0,#f1,#f3,#f3,#f1,#f0,#da + db #da,#cf,#f2,#cf,#da,#e5,#da,#f0 + db #cf,#50,#da,#e5,#cf,#cf,#e5,#45 + db #8a,#da,#f0,#f0,#33,#63,#00,#41 + db #87,#08,#86,#86,#86,#08,#86,#0f + db #49,#49,#49,#0c,#08,#82,#c3,#41 + db #41,#11,#33,#22,#e0,#c0,#a2,#da + db #e5,#40,#40,#40,#40,#40,#00,#40 + db #40,#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,#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 #de,#00 + +FINISH DEFL $ +; LIST +; CLOSE +;START DEFL START +;FINISH DEFL FINISH +LENGTH DEFL FINISH-START +; +.music_info + db "Cybernoid 2 (1988)(Hewson)(Dave Rogers)",0 + db "CYBER2SD.ASM - CYBERNOID 2 sound driver - J.Dave Rogers 1988",0 + + read "music_end.asm" diff --git a/ASM/Cybernoid II The Revenge (2016)(Epyteor)(SuTeKH)(StarkOs).asm b/ASM/Cybernoid II The Revenge (2016)(Epyteor)(SuTeKH)(StarkOs).asm new file mode 100644 index 00000000..3f7313ec --- /dev/null +++ b/ASM/Cybernoid II The Revenge (2016)(Epyteor)(SuTeKH)(StarkOs).asm @@ -0,0 +1,2099 @@ +; Music of Cybernoid II The Revenge (2016)(Epyteor)(SuTeKH)(StarkOs) +; Ripped by Megachur the 05/08/2017 +; $VER 1.5 + +IFDEF FILENAME_WRITE + write "CYBERITR.BIN" +ENDIF + +MUSIC_DATE_RIP_DAY equ 05 +MUSIC_DATE_RIP_MONTH equ 08 +MUSIC_DATE_RIP_YEAR equ 2017 +music_adr equ #77d0 + + read "music_header.asm" + + jp l8042 + jp l77dd + jp l8026 +.l77dc equ $ + 3 +.l77db equ $ + 2 + db #d0,#77,#00,#00 +; +.play_music +.l77dd +; + xor a + ld (l77db),a + ld (l800d),a +.l77e5 equ $ + 1 + ld a,#00 +.l77e7 equ $ + 1 + cp #00 + jr z,l77f1 + inc a + ld (l77e5),a + jp l7a80 +.l77f1 + xor a + ld (l77e5),a +.l77f5 + or a + jp nc,l78d7 + ld (l78ff),a + ld (l796a),a + ld (l79d5),a + ld a,#b7 + ld (l77f5),a +.l7808 equ $ + 1 + ld a,#00 + sub #01 + jr nc,l783e +.l780e equ $ + 1 + ld hl,#0000 + ld a,(hl) + inc hl + srl a + jr c,l783b + ld b,a + and #1f + bit 4,a + jr z,l781f + or #e0 +.l781f + ld (l790c),a + rl b + rl b + jr nc,l782d + ld a,(hl) + ld (l7977),a + inc hl +.l782d + rl b + jr nc,l7836 + ld a,(hl) + ld (l79e2),a + inc hl +.l7836 + ld (l780e),hl + jr l7841 +.l783b + ld (l780e),hl +.l783e + ld (l7808),a +.l7842 equ $ + 1 +.l7841 + ld a,#00 + sub #01 + jr c,l784e + ld (l7842),a +.l784b equ $ + 1 + ld a,#00 + jr l7869 +.l784f equ $ + 1 +.l784e + ld hl,#0000 + ld a,(hl) + inc hl + srl a + jr c,l785c + ld (l784f),hl + jr l7869 +.l785c + ld (l784b),a + ld b,a + ld a,(hl) + inc hl + ld (l784f),hl + ld (l7842),a + ld a,b +.l7869 + ld (l7a40),a +.l786d equ $ + 1 + ld hl,#0000 + ld de,l7905 + ldi + ldi + ld de,l7970 + ldi + ldi + ld de,l79db + ldi + ldi + ld (l786d),hl +.l7888 equ $ + 1 + ld a,#00 + or a + jr nz,l789a +.l788d equ $ + 1 + ld a,#00 + sub #01 + jr c,l78a8 + ld (l788d),a +.l7896 equ $ + 1 + ld hl,#0000 + jr l78e0 +.l789b equ $ + 1 +.l789a + ld a,#00 + sub #01 + jr c,l78a8 + ld (l789b),a + ld hl,(l78a9) + jr l78cd +.l78a9 equ $ + 1 +.l78a8 + ld hl,#0000 + ld a,(hl) + inc hl + srl a + jr c,l78c5 + ld (l788d),a + xor a + ld (l7888),a + ld e,(hl) + inc hl + ld d,(hl) + inc hl + ld (l78a9),hl + ex de,hl + ld (l7896),hl + jr l78e0 +.l78c5 + ld (l789b),a + ld a,#01 + ld (l7888),a +.l78cd + ld e,(hl) + inc hl + ld d,(hl) + inc hl + ld (l78a9),hl + ex de,hl + jr l78e0 +.l78d8 equ $ + 1 +.l78d7 + ld a,#00 + sub #01 + jr nc,l78fb +.l78de equ $ + 1 + ld hl,#0000 +.l78e0 + ld a,(hl) + inc hl + srl a + jr c,l78f8 + srl a + jr c,l78ef + ld (l77e7),a + jr l78f7 +.l78ef + ld (l77db),a +.l78f3 equ $ + 1 + ld a,#01 + ld (l77dc),a +.l78f7 + xor a +.l78f8 + ld (l78de),hl +.l78fb + ld (l78d8),a +.l78ff equ $ + 1 + ld a,#00 + sub #01 + jr nc,l7966 +.l7905 equ $ + 1 + ld hl,#0000 +.l7908 equ $ + 1 + ld bc,#0100 +.l790c equ $ + 2 +.l790b equ $ + 1 + ld de,#0000 +.l790f equ $ + 2 + ld lx,#00 + call l7b7f + ld a,lx + ld (l790f),a + ld (l7a8a),hl + exx + ld (l7905),hl + ld a,c + ld (l7908),a + ld (l7a84),a + xor a + or hy + jr nz,l7964 + ld (l7aa7),a + ld d,a + ld a,e + ld (l790b),a + ld l,d + ld h,l + ld (l7a87),hl +.l7939 equ $ + 1 + ld hl,#0000 + ex de,hl + add hl,hl + add hl,de + ld a,(hl) + inc hl + ld h,(hl) + ld l,a + ld de,l7ab8 + ldi + ldi + ld de,l7ab0 + ldi + ldi + ld de,l7aa9 + ldi + ld de,l7aba + ldi + ld a,(hl) + inc hl + ld (l7a99),hl + ld hl,l800d + or (hl) + ld (hl),a +.l7964 + ld a,ly +.l7966 + ld (l78ff),a +.l796a equ $ + 1 + ld a,#00 + sub #01 + jr nc,l79d1 +.l7970 equ $ + 1 + ld hl,#0000 +.l7973 equ $ + 1 + ld bc,#0200 +.l7977 equ $ + 2 +.l7976 equ $ + 1 + ld de,#0000 +.l797a equ $ + 2 + ld lx,#00 + call l7b7f + ld a,lx + ld (l797a),a + ld (l7adc),hl + exx + ld (l7970),hl + ld a,c + ld (l7973),a + ld (l7ad6),a + xor a + or hy + jr nz,l79cf + ld (l7af9),a + ld d,a + ld a,e + ld (l7976),a + ld l,d + ld h,l + ld (l7ad9),hl +.l79a4 equ $ + 1 + ld hl,#0000 + ex de,hl + add hl,hl + add hl,de + ld a,(hl) + inc hl + ld h,(hl) + ld l,a + ld de,l7b0a + ldi + ldi + ld de,l7b02 + ldi + ldi + ld de,l7afb + ldi + ld de,l7b0c + ldi + ld a,(hl) + inc hl + ld (l7aeb),hl + ld hl,l800d + or (hl) + ld (hl),a +.l79cf + ld a,ly +.l79d1 + ld (l796a),a +.l79d5 equ $ + 1 + ld a,#00 + sub #01 + jr nc,l7a3c +.l79db equ $ + 1 + ld hl,#0000 +.l79de equ $ + 1 + ld bc,#0300 +.l79e2 equ $ + 2 +.l79e1 equ $ + 1 + ld de,#0000 +.l79e5 equ $ + 2 + ld lx,#00 + call l7b7f + ld a,lx + ld (l79e5),a + ld (l7b2e),hl + exx + ld (l79db),hl + ld a,c + ld (l79de),a + ld (l7b28),a + xor a + or hy + jr nz,l7a3a + ld (l7b4b),a + ld d,a + ld a,e + ld (l79e1),a + ld l,d + ld h,l + ld (l7b2b),hl +.l7a0f equ $ + 1 + ld hl,#0000 + ex de,hl + add hl,hl + add hl,de + ld a,(hl) + inc hl + ld h,(hl) + ld l,a + ld de,l7b5c + ldi + ldi + ld de,l7b54 + ldi + ldi + ld de,l7b4d + ldi + ld de,l7b5e + ldi + ld a,(hl) + inc hl + ld (l7b3d),hl + ld hl,l800d + or (hl) + ld (hl),a +.l7a3a + ld a,ly +.l7a3c + ld (l79d5),a +.l7a40 equ $ + 1 + ld a,#00 + sub #01 + jr c,l7a4a + ld (l7a40),a + jr l7a80 +.l7a4a + ld a,#37 + ld (l77f5),a + ld hl,(l786d) +.l7a53 equ $ + 1 + ld de,#0000 + xor a + sbc hl,de + jr nz,l7a80 + ld (l7808),a + ld (l7842),a + ld (l78d8),a +.l7a64 equ $ + 1 + ld hl,#0000 + ld (l780e),hl +.l7a6a equ $ + 1 + ld hl,#0000 + ld (l784f),hl +.l7a70 equ $ + 1 + ld hl,#0000 + ld (l786d),hl +.l7a76 equ $ + 1 + ld hl,#0000 + ld (l78a9),hl +.l7a7c equ $ + 1 + ld a,#00 + ld (l7888),a +.l7a80 + ld hl,l800d +.l7a84 equ $ + 1 + ld d,#00 + exx +.l7a87 equ $ + 1 + ld hl,#0000 +.l7a8a equ $ + 1 + ld de,#0000 + add hl,de + ld (l7a87),hl + ld (l7cba),hl + ld a,(l790f) + ld lx,a +.l7a99 equ $ + 1 + ld hl,#0000 + ld iy,l7ea8 + ld a,(l7aa7) + call l7c14 + ex de,hl +.l7aa7 equ $ + 1 + ld a,#00 +.l7aa9 equ $ + 1 + cp #00 + jr z,l7aaf + inc a + jr l7acc +.l7ab0 equ $ + 1 +.l7aaf + ld hl,#0000 + xor a + sbc hl,de + jr nz,l7ac8 +.l7ab8 equ $ + 1 + ld de,#0000 +.l7aba + or a + jr c,l7ac8 +.l7abe equ $ + 1 + ld hl,#0000 + ld (l7ab0),hl + dec a + ld (l7aa9),a + inc a +.l7ac8 + ld (l7a99),de +.l7acc + ld (l7aa7),a + ld a,hx + ld (l7b7b),a + exx +.l7ad6 equ $ + 1 + ld d,#00 + exx +.l7ad9 equ $ + 1 + ld hl,#0000 +.l7adc equ $ + 1 + ld de,#0000 + add hl,de + ld (l7ad9),hl + ld (l7cba),hl + ld a,(l797a) + ld lx,a +.l7aeb equ $ + 1 + ld hl,#0000 + ld iy,l7ef9 + ld a,(l7af9) + call l7c14 + ex de,hl +.l7af9 equ $ + 1 + ld a,#00 +.l7afb equ $ + 1 + cp #00 + jr z,l7b01 + inc a + jr l7b1e +.l7b02 equ $ + 1 +.l7b01 + ld hl,#0000 + xor a + sbc hl,de + jr nz,l7b1a +.l7b0a equ $ + 1 + ld de,#0000 +.l7b0c + or a + jr c,l7b1a +.l7b10 equ $ + 1 + ld hl,#0000 + ld (l7b02),hl + dec a + ld (l7afb),a + inc a +.l7b1a + ld (l7aeb),de +.l7b1e + ld (l7af9),a + ld a,hx + ld (l7b78),a + exx +.l7b28 equ $ + 1 + ld d,#00 + exx +.l7b2b equ $ + 1 + ld hl,#0000 +.l7b2e equ $ + 1 + ld de,#0000 + add hl,de + ld (l7b2b),hl + ld (l7cba),hl + ld a,(l79e5) + ld lx,a +.l7b3d equ $ + 1 + ld hl,#0000 + ld iy,l7f4a + ld a,(l7b4b) + call l7c14 + ex de,hl +.l7b4b equ $ + 1 + ld a,#00 +.l7b4d equ $ + 1 + cp #00 + jr z,l7b53 + inc a + jr l7b70 +.l7b54 equ $ + 1 +.l7b53 + ld hl,#0000 + xor a + sbc hl,de + jr nz,l7b6c +.l7b5c equ $ + 1 + ld de,#0000 +.l7b5e + or a + jr c,l7b6c +.l7b62 equ $ + 1 + ld hl,#0000 + ld (l7b54),hl + dec a + ld (l7b4d),a + inc a +.l7b6c + ld (l7b3d),de +.l7b70 + ld (l7b4b),a + ld a,hx + sla a +.l7b78 equ $ + 1 + or #00 + rla +.l7b7b equ $ + 1 + or #00 + jp l7e9d +.l7b7f + ld a,(hl) + inc hl + srl a + jr c,l7bb8 + cp #60 + jr nc,l7bc0 + ld hy,#00 + add d + ld lx,a + ld b,(hl) + inc hl + ld a,b + rra + jr nc,l7b98 + and #0f + ld c,a +.l7b98 + rl b + jr nc,l7b9e + ld e,(hl) + inc hl +.l7b9e + rl b + jr nc,l7bb0 +.l7ba2 + ld a,(hl) + inc hl + exx + ld l,a + ld h,#00 + rla + jr nc,l7bac + dec h +.l7bac + ld ly,#00 + ret +.l7bb0 + exx + ld hl,#0000 + ld ly,#00 + ret +.l7bb8 + ld hy,#00 + add d + ld lx,a + jr l7bb0 +.l7bc0 + ld hy,#01 + sub #60 + jr z,l7be1 + dec a + jr z,l7bf8 + dec a + jr z,l7bea + dec a + jr z,l7ba2 + dec a + jr z,l7bf4 + dec a + jr z,l7c09 + dec a + jr z,l7c00 + dec a + exx + ld ly,a + ld hl,#0000 + ret +.l7be1 + ld a,(hl) + inc hl + exx + ld ly,a + ld hl,#0000 + ret +.l7bea + ld c,(hl) + inc hl + exx + ld ly,#00 + ld hl,#0000 + ret +.l7bf4 + ld c,(hl) + inc hl + jr l7ba2 +.l7bf8 + ld ly,#ff + exx + ld hl,#0000 + ret +.l7c00 + ld a,(hl) + inc hl + ld (l77db),a + ld a,b + ld (l77dc),a +.l7c09 + ld iy,#0000 + ld e,#00 + exx + ld hl,#0000 + ret +.l7c14 + ld e,(hl) + inc hl + bit 7,e + jp nz,l7cca + bit 4,e + jr z,l7c7c + ld a,(hl) + bit 6,a + jr z,l7c49 + ld d,#08 + inc hl + and #1f + jr z,l7c30 + ld (l7f9b),a + res 3,d +.l7c30 + ld a,e + and #0f + exx + sub d + exx + jr nc,l7c39 + xor a +.l7c39 + ld (iy+#36),a + ld hx,d + ld a,(hl) + ld (iy+#00),a + inc hl + ld a,(hl) + ld (iy+#1b),a + inc hl + ret +.l7c49 + ld (l7f9b),a + inc hl + ld d,#01 + bit 5,a + jr z,l7c65 + res 0,d + ld a,e + and #0f + exx + sub d + exx + jr nc,l7c5e + xor a +.l7c5e + ld (iy+#36),a + ld hx,d + jr l7c8f +.l7c65 + ld a,e + and #0f + exx + sub d + exx + jr nc,l7c6e + xor a +.l7c6e + ld (iy+#36),a +.l7c71 + ld hx,d + ret +.l7c74 + ld (iy+#36),#00 + ld d,#09 + jr l7c71 +.l7c7c + ld d,#08 + ld a,e + and #0f + jr z,l7c74 + exx + sub d + exx + jr nc,l7c89 + xor a +.l7c89 + ld (iy+#36),a + ld hx,#08 +.l7c8f + bit 5,e + jr z,l7c97 + ld a,(hl) + inc hl + jr l7c98 +.l7c97 + xor a +.l7c98 + bit 6,e + jr z,l7ca2 + ld e,(hl) + inc hl + ld d,(hl) + inc hl + jr l7ca5 +.l7ca2 + ld de,#0000 +.l7ca5 + add lx + cp #60 + jr c,l7cad + ld a,#5f +.l7cad + push hl + add a + ld l,a + ld h,#00 + ld bc,l7ddd + add hl,bc + ld c,(hl) + inc hl + ld b,(hl) +.l7cba equ $ + 1 + ld hl,#0000 + sra h + rr l + add hl,bc + add hl,de + ld (iy+#00),l + ld (iy+#1b),h + pop hl + ret +.l7cca + or a + jr nz,l7cd4 + ld a,e + exx + and #40 + or (hl) + ld (hl),a + exx +.l7cd4 + ld a,e + or #08 + and #09 + ld d,a + ld (iy+#36),#10 + ld b,(hl) + inc hl + ld a,b + and #03 + add a + add #08 + ld (l8006),a + bit 3,e + jr z,l7cf6 + ld a,(hl) + inc hl + ld (l7f9b),a + res 3,d + jr l7cf6 +.l7cf6 + ld hx,d + xor a + bit 7,b + jr z,l7d08 + bit 6,b + jr z,l7d03 + ld a,(hl) + inc hl +.l7d03 + ld (l7db7),a + ld a,#01 +.l7d08 + ld (l7d50),a + ld a,b + rra + and #0e + ld (l7d61),a + bit 4,e + jp nz,l7dc2 + bit 1,e + jr z,l7d1f + ld a,(hl) + inc hl + jr l7d20 +.l7d1f + xor a +.l7d20 + ex af,af' + ld a,e + ex af,af' + bit 2,e + jr z,l7d2d + ld e,(hl) + inc hl + ld d,(hl) + inc hl + jr l7d30 +.l7d2d + ld de,#0000 +.l7d30 + add lx + cp #60 + jr c,l7d38 + ld a,#5f +.l7d38 + push hl + add a + ld l,a + ld h,#00 + ld bc,l7ddd + add hl,bc + ld c,(hl) + inc hl + ld b,(hl) + ld hl,(l7cba) + sra h + rr l + add hl,bc + add hl,de + ld c,l + ld b,h +.l7d50 equ $ + 1 + ld a,#00 + or a + jr nz,l7d60 + ex af,af' + bit 5,a + jr nz,l7dcb +.l7d59 + ld a,c + ld (iy+#00),c + ld (iy+#1b),b +.l7d61 equ $ + 1 +.l7d60 + ld e,#00 + ld a,e + srl a + add e + ld (l7d6b),a + ld a,c +.l7d6b equ $ + 1 + jr l7d6c +.l7d6c + srl b + rra + srl b + rra + srl b + rra + srl b + rra + srl b + rra + srl b + rra + srl b + rra + ld c,a + jr nc,l7d85 + inc bc +.l7d85 + ld a,c + ld (l7fd0),a + ld a,b + ld (l7feb),a + ld a,(l7d50) + or a + jr z,l7dc0 + ld a,(l7d61) + ld e,a + srl a + add e + ld (l7d9f),a + ld a,b +.l7d9f equ $ + 1 + jr l7da0 +.l7da0 + sla c + rla + sla c + rla + sla c + rla + sla c + rla + sla c + rla + sla c + rla + sla c + rla + ld b,a +.l7db7 equ $ + 1 + ld hl,#0000 + add hl,bc + ld (iy+#00),l + ld (iy+#1b),h +.l7dc0 + pop hl + ret +.l7dc2 + ld c,(hl) + inc hl + ld b,(hl) + inc hl + push hl + bit 5,e + jr z,l7d59 +.l7dcb + pop hl + ld (iy+#00),c + ld (iy+#1b),b + ld a,(hl) + ld (l7fd0),a + inc hl + ld a,(hl) + ld (l7feb),a + inc hl + ret +.l7ddd + dw #0eee,#0e18,#0d4d,#0c8e + dw #0bda,#0b2f,#0a8f,#09f7 + dw #0968,#08e1,#0861,#07e9 + dw #0777,#070c,#06a7,#0647 + dw #05ed,#0598,#0547,#04fc + dw #04b4,#0470,#0431,#03f4 + dw #03bc,#0386,#0353,#0324 + dw #02f6,#02cc,#02a4,#027e + dw #025a,#0238,#0218,#01fa + dw #01de,#01c3,#01aa,#0192 + dw #017b,#0166,#0152,#013f + dw #012d,#011c,#010c,#00fd + dw #00ef,#00e1,#00d5,#00c9 + dw #00be,#00b3,#00a9,#009f + dw #0096,#008e,#0086,#007f + dw #0077,#0071,#006a,#0064 + dw #005f,#0059,#0054,#0050 + dw #004b,#0047,#0043,#003f + dw #003c,#0038,#0035,#0032 + dw #002f,#002d,#002a,#0028 + dw #0026,#0024,#0022,#0020 + dw #001e,#001c,#001b,#0019 + dw #0018,#0016,#0015,#0014 + dw #0013,#0012,#0011,#0010 +.l7e9d + ld h,a + ld b,#f4 + exx + ld bc,#f6c0 + ld e,#80 + exx +.l7ea8 equ $ + 1 + ld a,#00 +.l7eaa equ $ + 1 + cp #00 + jr z,l7ec2 + ld d,#00 + out (c),d + exx + out (c),c + db #ed,#71 ; out (c),0 + exx + out (c),a + exx + out (c),e + db #ed,#71 ; out (c),0 + ld (l7eaa),a + exx +.l7ec3 equ $ + 1 +.l7ec2 + ld a,#00 +.l7ec5 equ $ + 1 + cp #00 + jr z,l7edd + ld d,#01 + out (c),d + exx + out (c),c + db #ed,#71 ; out (c),0 + exx + out (c),a + exx + out (c),e + db #ed,#71 ; out (c),0 + ld (l7ec5),a + exx +.l7ede equ $ + 1 +.l7edd + ld a,#00 +.l7ee0 equ $ + 1 + cp #00 + jr z,l7ef8 + ld d,#08 + out (c),d + exx + out (c),c + db #ed,#71 ; out (c),0 + exx + out (c),a + exx + out (c),e + db #ed,#71 ; out (c),0 + ld (l7ee0),a + exx +.l7ef9 equ $ + 1 +.l7ef8 + ld a,#00 +.l7efb equ $ + 1 + cp #00 + jr z,l7f13 + ld d,#02 + out (c),d + exx + out (c),c + db #ed,#71 ; out (c),0 + exx + out (c),a + exx + out (c),e + db #ed,#71 ; out (c),0 + ld (l7efb),a + exx +.l7f14 equ $ + 1 +.l7f13 + ld a,#00 +.l7f16 equ $ + 1 + cp #00 + jr z,l7f2e + ld d,#03 + out (c),d + exx + out (c),c + db #ed,#71 ; out (c),0 + exx + out (c),a + exx + out (c),e + db #ed,#71 ; out (c),0 + ld (l7f16),a + exx +.l7f2f equ $ + 1 +.l7f2e + ld a,#00 +.l7f31 equ $ + 1 + cp #00 + jr z,l7f49 + ld d,#09 + out (c),d + exx + out (c),c + db #ed,#71 ; out (c),0 + exx + out (c),a + exx + out (c),e + db #ed,#71 ; out (c),0 + ld (l7f31),a + exx +.l7f4a equ $ + 1 +.l7f49 + ld a,#00 +.l7f4c equ $ + 1 + cp #00 + jr z,l7f64 + ld d,#04 + out (c),d + exx + out (c),c + db #ed,#71 ; out (c),0 + exx + out (c),a + exx + out (c),e + db #ed,#71 ; out (c),0 + ld (l7f4c),a + exx +.l7f65 equ $ + 1 +.l7f64 + ld a,#00 +.l7f67 equ $ + 1 + cp #00 + jr z,l7f7f + ld d,#05 + out (c),d + exx + out (c),c + db #ed,#71 ; out (c),0 + exx + out (c),a + exx + out (c),e + db #ed,#71 ; out (c),0 + ld (l7f67),a + exx +.l7f80 equ $ + 1 +.l7f7f + ld a,#00 +.l7f82 equ $ + 1 + cp #00 + jr z,l7f9a + ld d,#0a + out (c),d + exx + out (c),c + db #ed,#71 ; out (c),0 + exx + out (c),a + exx + out (c),e + db #ed,#71 ; out (c),0 + ld (l7f82),a + exx +.l7f9b equ $ + 1 +.l7f9a + ld a,#00 +.l7f9d equ $ + 1 + cp #00 + jr z,l7fb5 + ld d,#06 + out (c),d + exx + out (c),c + db #ed,#71 ; out (c),0 + exx + out (c),a + exx + out (c),e + db #ed,#71 ; out (c),0 + ld (l7f9d),a + exx +.l7fb5 + ld a,h +.l7fb7 equ $ + 1 + cp #c0 + jr z,l7fcf + ld d,#07 + out (c),d + exx + out (c),c + db #ed,#71 ; out (c),0 + exx + out (c),a + exx + out (c),e + db #ed,#71 ; out (c),0 + ld (l7fb7),a + exx +.l7fd0 equ $ + 1 +.l7fcf + ld a,#00 +.l7fd2 equ $ + 1 + cp #00 + jr z,l7fea + ld d,#0b + out (c),d + exx + out (c),c + db #ed,#71 ; out (c),0 + exx + out (c),a + exx + out (c),e + db #ed,#71 ; out (c),0 + ld (l7fd2),a + exx +.l7feb equ $ + 1 +.l7fea + ld a,#00 +.l7fed equ $ + 1 + cp #00 + jr z,l8005 + ld d,#0c + out (c),d + exx + out (c),c + db #ed,#71 ; out (c),0 + exx + out (c),a + exx + out (c),e + db #ed,#71 ; out (c),0 + ld (l7fed),a + exx +.l8006 equ $ + 1 +.l8005 + ld a,#00 +.l8008 equ $ + 1 + cp #ff + jr nz,l8011 + ld h,a +.l800d equ $ + 1 + ld a,#00 + or a + ret z + ld a,h +.l8011 + ld d,#0d + out (c),d + exx + out (c),c + db #ed,#71 ; out (c),0 + exx + out (c),a + exx + out (c),e + db #ed,#71 ; out (c),0 + ld (l8008),a + ret +; +.stop_music +.l8026 +; + xor a + ld (l7ede),a + ld (l7f2f),a + ld (l7f80),a + dec a + ld (l7ee0),a + ld (l7f31),a + ld (l7f82),a + ld (l7fb7),a + ld a,#3f + jp l7e9d +; +.real_init_music +.l8042 +; + ld hl,#0006 + add hl,de + ld a,(hl) + ld (l78f3),a + ld de,#0003 + add hl,de + ld de,l784f + ldi + ldi + ld de,l786d + ldi + ldi + ld de,l78a9 + ldi + ldi + ld de,l7939 + ldi + ldi + ld de,l7a64 + ldi + ldi + ld de,l7a6a + ldi + ldi + ld de,l7a70 + ldi + ldi + ld de,l7a76 + ldi + ldi + ld a,(hl) + inc hl + ld (l77e7),a + ld (l77e5),a + ld (l780e),hl + ld hl,(l78a9) + ld (l7a53),hl + ld a,(hl) + and #01 + ld (l7888),a + ld hl,(l7a76) + ld a,(hl) + and #01 + ld (l7a7c),a + ld hl,(l7939) + ld (l79a4),hl + ld (l7a0f),hl + ld e,(hl) + inc hl + ld d,(hl) + inc hl + ex de,hl + ld bc,#0007 + add hl,bc + ld (l7a99),hl + ld (l7aeb),hl + ld (l7b3d),hl + ld (l7ab8),hl + ld (l7b0a),hl + ld (l7b5c),hl + ex de,hl + ld e,(hl) + inc hl + ld d,(hl) + ld (l7abe),de + ld (l7b10),de + ld (l7b62),de + ld (l7ab0),de + ld (l7b02),de + ld (l7b54),de + ld a,#37 + ld (l77f5),a + ld hl,l80fe +.l80ee + ld a,(hl) + or a + ret z + ld b,a + inc hl + ld a,(hl) + inc hl +.l80f5 + ld e,(hl) + inc hl + ld d,(hl) + inc hl + ld (de),a + djnz l80f5 + jr l80ee +.l80fe + jr l8100 +.l8100 + dw l7ea8,l7ec3,l7ef9,l7f14 + dw l7f4a,l7f65,l7f9b,l7ede + dw l7f2f,l7f80,l7fd0,l7feb + dw l8006,l7808,l7842,l788d + dw l789b,l78d8,l7aa7,l7af9 + dw l7b4b,l7908,l7973,l79de + dw #ff11,l7eaa,l7ec5,l7efb + dw l7f16,l7f4c,l7f67,l7f9d + dw l7fb7,l7ee0,l7f31,l7f82 + dw l7fd2,l7fed,l8008,l7aa9 + dw l7afb,l7b4d,#b703,l7aba + dw l7b0c,l7b5e + 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,#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,#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,#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,#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,#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,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00 +.l8200 ; music data + db #53,#4b,#31,#30 + db #00,#82,#01,#32,#00,#23,#82,#25 + db #82,#39,#83,#48,#83,#1a,#82,#23 + db #82,#25,#82,#39,#83,#05,#c0,#00 + db #00,#15,#18,#00,#18,#00,#3b,#7f + db #2d,#cc,#84,#dc,#84,#f0,#84,#cc + db #84,#23,#85,#f0,#84,#39,#85,#49 + db #85,#6d,#85,#39,#85,#a0,#85,#e9 + db #85,#26,#86,#68,#86,#7a,#86,#26 + db #86,#23,#85,#0a,#87,#9a,#87,#49 + db #85,#dc,#87,#9a,#87,#a0,#85,#dc + db #87,#26,#86,#6c,#88,#0a,#87,#26 + db #86,#ca,#88,#0a,#87,#26,#86,#6c + db #88,#0a,#87,#26,#86,#ca,#88,#0a + db #87,#9a,#87,#2a,#89,#dc,#87,#98 + db #89,#da,#89,#40,#8a,#9a,#87,#2a + db #89,#dc,#87,#98,#89,#da,#89,#40 + db #8a,#26,#86,#68,#86,#7a,#86,#26 + db #86,#23,#85,#0a,#87,#9a,#87,#49 + db #85,#dc,#87,#9a,#87,#a0,#85,#dc + db #87,#d0,#8a,#12,#8b,#59,#8b,#d0 + db #8a,#bb,#8b,#59,#8b,#d0,#8a,#12 + db #8b,#59,#8b,#d0,#8a,#04,#8c,#59 + db #8b,#26,#86,#55,#8c,#05,#8d,#8d + db #8d,#cf,#8d,#7f,#8e,#26,#86,#55 + db #8c,#05,#8d,#8d,#8d,#cf,#8d,#7f + db #8e,#07,#8f,#24,#8f,#28,#8f,#48 + db #8f,#8a,#8f,#d9,#8f,#61,#90,#a3 + db #90,#f9,#90,#48,#8f,#81,#91,#d9 + db #8f,#ce,#91,#10,#92,#6b,#92,#26 + db #86,#55,#8c,#05,#8d,#8d,#8d,#cf + db #8d,#7f,#8e,#07,#8f,#24,#8f,#28 + db #8f,#48,#8f,#8a,#8f,#d9,#8f,#61 + db #90,#a3,#90,#f9,#90,#48,#8f,#81 + db #91,#d9,#8f,#ce,#91,#10,#92,#6b + db #92,#26,#86,#55,#8c,#05,#8d,#8d + db #8d,#cf,#8d,#7f,#8e,#26,#86,#f3 + db #92,#31,#93,#ce,#91,#b9,#93,#f6 + db #93,#7e,#94,#c7,#94,#10,#95,#a0 + db #95,#f0,#95,#3f,#96,#36,#cd,#96 + db #01,#cf,#96,#0a,#cd,#96,#01,#cf + db #96,#12,#cd,#96,#6e,#83,#78,#83 + db #80,#83,#93,#83,#a6,#83,#b3,#83 + db #bd,#83,#d0,#83,#df,#83,#f4,#83 + db #ff,#83,#14,#84,#2d,#84,#39,#84 + db #4c,#84,#5f,#84,#69,#84,#82,#84 + db #ad,#84,#75,#83,#78,#83,#ff,#37 + db #00,#00,#00,#00,#7f,#83,#80,#83 + db #00,#37,#00,#0f,#8f,#83,#93,#83 + db #00,#37,#00,#0f,#2f,#03,#0e,#0e + db #2d,#03,#0d,#0c,#2c,#03,#0c,#a2 + db #83,#a6,#83,#00,#37,#00,#0f,#2f + db #04,#0e,#0e,#2d,#04,#0d,#0c,#2c + db #04,#0c,#b1,#83,#b3,#83,#00,#37 + db #00,#1a,#05,#19,#03,#81,#16,#bb + db #83,#bd,#83,#00,#37,#00,#00,#81 + db #16,#cc,#83,#d0,#83,#00,#37,#00 + db #0f,#2f,#05,#0e,#0e,#2d,#05,#0d + db #0c,#2c,#05,#0c,#75,#83,#df,#83 + db #0c,#b7,#00,#0f,#0d,#0b,#0a,#08 + db #06,#04,#02,#f2,#83,#f4,#83,#00 + db #37,#00,#1f,#67,#d5,#00,#1e,#65 + db #52,#01,#1d,#63,#aa,#01,#81,#16 + db #fb,#83,#ff,#83,#00,#37,#00,#0b + db #0b,#2b,#0c,#12,#84,#14,#84,#00 + db #37,#00,#1f,#65,#c3,#01,#1e,#60 + db #fa,#01,#1d,#60,#a4,#02,#81,#16 + db #1b,#84,#2d,#84,#00,#37,#00,#4f + db #ff,#ff,#4f,#ff,#ff,#4f,#ff,#ff + db #4f,#01,#00,#4f,#01,#00,#4f,#01 + db #00,#34,#84,#39,#84,#00,#37,#00 + db #0d,#2d,#05,#2d,#08,#75,#83,#4c + db #84,#00,#b7,#00,#1f,#65,#c3,#01 + db #1e,#60,#fa,#01,#1d,#60,#a4,#02 + db #75,#83,#5f,#84,#00,#b7,#00,#1f + db #67,#d5,#00,#1e,#65,#52,#01,#1d + db #63,#aa,#01,#66,#84,#69,#84,#00 + db #37,#00,#4f,#ff,#ff,#70,#84,#82 + db #84,#00,#37,#00,#4f,#01,#00,#4f + db #01,#00,#4f,#01,#00,#4f,#ff,#ff + db #4f,#ff,#ff,#4f,#ff,#ff,#9b,#84 + db #ad,#84,#00,#37,#00,#4f,#ff,#ff + db #4e,#ff,#ff,#4e,#ff,#ff,#4d,#ff + db #ff,#4d,#ff,#ff,#4c,#ff,#ff,#4b + db #01,#00,#4b,#01,#00,#4b,#01,#00 + db #4b,#ff,#ff,#4b,#ff,#ff,#4b,#ff + db #ff,#ba,#84,#cc,#84,#00,#37,#00 + db #0f,#0e,#0e,#0d,#0d,#0c,#4b,#ff + db #ff,#4b,#ff,#ff,#4b,#ff,#ff,#4b + db #01,#00,#4b,#01,#00,#4b,#01,#00 + db #2c,#c5,#01,#f4,#c6,#f8,#31,#c0 + db #1c,#28,#40,#f4,#c6,#f4,#2d,#c2 + db #78,#81,#02,#ea,#70,#80,#03,#e2 + db #78,#80,#02,#d2,#79,#d2,#74,#80 + db #03,#ce,#75,#c2,#5c,#c1,#04,#fd + db #c6,#fe,#60,#80,#05,#ce,#60,#80 + db #04,#d2,#61,#d2,#61,#d2,#61,#d2 + db #61,#d2,#61,#d2,#61,#d2,#58,#40 + db #fd,#c6,#fe,#5c,#80,#05,#ce,#5c + db #80,#04,#d2,#5d,#d2,#5d,#d2,#5d + db #d2,#5d,#d2,#5d,#d2,#5d,#c2,#78 + db #81,#02,#ea,#70,#80,#03,#e2,#78 + db #80,#02,#d2,#7e,#80,#03,#d2,#7c + db #80,#02,#ce,#7d,#c2,#26,#c5,#01 + db #fa,#c6,#f9,#29,#c0,#1c,#28,#40 + db #f4,#c6,#f4,#2d,#c2,#60,#81,#02 + db #d6,#66,#80,#06,#d6,#70,#80,#03 + db #d6,#78,#80,#02,#d6,#7e,#80,#06 + db #d2,#88,#80,#03,#d2,#82,#80,#06 + db #d2,#7c,#80,#02,#ce,#74,#80,#03 + db #c2,#56,#c0,#04,#ff,#c6,#ff,#58 + db #80,#05,#ce,#58,#80,#04,#d2,#59 + db #d2,#59,#d2,#59,#d2,#59,#d2,#59 + db #d2,#59,#d2,#58,#40,#fd,#c6,#fe + db #5c,#80,#05,#ce,#5c,#80,#04,#d2 + db #5d,#d2,#5d,#d2,#5d,#d2,#5d,#d2 + db #5d,#d2,#5d,#c2,#70,#81,#03,#d6 + db #78,#80,#02,#d6,#74,#80,#03,#d2 + db #78,#80,#02,#ce,#74,#80,#03,#d2 + db #71,#d6,#6a,#80,#06,#d2,#6a,#80 + db #02,#ce,#65,#ce,#61,#ce,#65,#de + db #72,#c0,#07,#0f,#c6,#0f,#c6,#0f + db #c6,#0f,#70,#40,#0f,#c6,#0f,#c6 + db #0f,#c6,#0f,#6e,#40,#0f,#c6,#0f + db #c6,#0f,#c6,#0f,#6c,#40,#0f,#c6 + db #0f,#c6,#0f,#c6,#0f,#56,#c0,#04 + db #ff,#c6,#ff,#58,#80,#05,#ce,#58 + db #80,#04,#d2,#59,#d2,#59,#d2,#59 + db #d2,#59,#d2,#59,#d2,#59,#d2,#58 + db #40,#fd,#c6,#fe,#5c,#80,#05,#ce + db #5c,#80,#04,#d2,#5d,#d2,#5d,#d2 + db #5c,#80,#08,#ce,#5d,#ce,#5d,#ce + db #5d,#ce,#5d,#5d,#ce,#5d,#ce,#5d + db #5d,#5d,#60,#81,#09,#67,#6f,#61 + db #67,#6f,#61,#67,#6f,#61,#67,#6f + db #61,#67,#6f,#61,#67,#6f,#61,#67 + db #6f,#61,#67,#6f,#61,#67,#6f,#61 + db #67,#6f,#61,#67,#5d,#65,#6b,#5d + db #65,#6b,#5d,#65,#6b,#5d,#65,#6b + db #5d,#65,#6b,#5d,#65,#6b,#5d,#65 + db #6b,#5d,#65,#6b,#5d,#65,#6b,#5d + db #65,#6b,#5d,#65,#78,#81,#02,#ea + db #70,#80,#03,#ea,#78,#80,#02,#d2 + db #74,#80,#03,#ce,#75,#c2,#60,#81 + db #0a,#ce,#60,#80,#04,#61,#60,#80 + db #08,#56,#80,#05,#5c,#80,#04,#61 + db #60,#80,#0a,#ce,#60,#80,#04,#61 + db #60,#80,#08,#56,#80,#05,#56,#80 + db #04,#5d,#60,#80,#0a,#ce,#60,#80 + db #04,#61,#60,#80,#08,#56,#80,#05 + db #5c,#80,#04,#61,#60,#80,#0a,#ce + db #60,#80,#04,#61,#60,#80,#08,#56 + db #80,#05,#56,#80,#04,#59,#5c,#80 + db #0a,#ce,#5c,#80,#04,#5d,#5c,#80 + db #08,#52,#80,#05,#58,#80,#04,#5d + db #5c,#80,#0a,#ce,#5c,#80,#04,#5d + db #5c,#80,#08,#52,#80,#05,#52,#80 + db #04,#59,#5c,#80,#0a,#ce,#5c,#80 + db #04,#5d,#5c,#80,#08,#52,#80,#05 + db #58,#80,#04,#5d,#5c,#80,#0a,#ce + db #5c,#80,#04,#5d,#5c,#80,#08,#52 + db #80,#05,#52,#80,#04,#59,#60,#81 + db #0a,#ce,#60,#80,#04,#61,#60,#80 + db #08,#56,#80,#05,#56,#80,#04,#5d + db #60,#80,#0a,#ce,#60,#80,#04,#61 + db #60,#80,#08,#56,#80,#05,#56,#80 + db #04,#5d,#60,#80,#0a,#ce,#60,#80 + db #04,#61,#60,#80,#08,#56,#80,#05 + db #56,#80,#04,#5d,#60,#80,#0a,#ce + db #60,#80,#04,#61,#60,#80,#08,#56 + db #80,#05,#56,#80,#04,#5d,#5c,#80 + db #0a,#ce,#5c,#80,#04,#5d,#5c,#80 + db #08,#52,#80,#05,#52,#80,#04,#59 + db #5c,#80,#0a,#ce,#5c,#80,#04,#5d + db #5c,#80,#08,#52,#80,#05,#52,#80 + db #04,#59,#5c,#80,#0a,#ce,#5c,#80 + db #04,#5d,#5c,#80,#08,#52,#80,#05 + db #52,#80,#04,#59,#5c,#80,#0a,#ce + db #5c,#80,#04,#5d,#5c,#80,#08,#52 + db #80,#05,#52,#80,#04,#59,#58,#81 + db #09,#61,#67,#59,#61,#67,#59,#61 + db #67,#59,#61,#67,#59,#61,#67,#59 + db #61,#67,#59,#61,#67,#59,#61,#67 + db #59,#61,#67,#59,#61,#67,#59,#61 + db #5d,#65,#6b,#5d,#65,#6b,#5d,#65 + db #6b,#5d,#65,#6b,#5d,#65,#6b,#5d + db #65,#6b,#5d,#65,#6b,#5d,#65,#6b + db #5d,#65,#6b,#5d,#65,#6b,#5d,#65 + db #58,#81,#0a,#ce,#58,#80,#04,#59 + db #58,#80,#08,#4e,#80,#05,#4e,#80 + db #04,#55,#58,#80,#0a,#ce,#58,#80 + db #04,#59,#58,#80,#08,#4e,#80,#05 + db #4e,#80,#04,#55,#58,#80,#0a,#ce + db #58,#80,#04,#59,#58,#80,#08,#4e + db #80,#05,#4e,#80,#04,#55,#58,#80 + db #0a,#ce,#58,#80,#04,#59,#58,#80 + db #08,#4e,#80,#05,#4e,#80,#04,#55 + db #5c,#80,#0a,#ce,#5c,#80,#04,#5d + db #5c,#80,#08,#52,#80,#05,#52,#80 + db #04,#59,#5c,#80,#0a,#ce,#5c,#80 + db #04,#5d,#5c,#80,#08,#52,#80,#05 + db #52,#80,#04,#59,#5c,#80,#0a,#ce + db #5c,#80,#04,#5d,#5c,#80,#08,#52 + db #80,#05,#52,#80,#04,#59,#5c,#80 + db #0a,#ce,#5c,#80,#04,#5d,#5c,#80 + db #08,#52,#80,#05,#52,#80,#04,#59 + db #60,#81,#01,#c4,#01,#ce,#60,#80 + db #0b,#d8,#60,#81,#01,#60,#83,#0b + db #64,#81,#01,#64,#83,#0b,#64,#c1 + db #01,#fc,#66,#03,#66,#80,#0b,#ce + db #64,#81,#01,#64,#83,#0b,#60,#81 + db #01,#60,#83,#0b,#56,#81,#01,#56 + db #83,#0b,#d0,#60,#81,#01,#60,#83 + db #0b,#d0,#60,#81,#01,#60,#83,#0b + db #d0,#5c,#81,#01,#5c,#83,#0b,#d0 + db #5c,#81,#01,#c4,#01,#ce,#5c,#80 + db #0b,#d8,#c4,#02,#d2,#c4,#03,#d2 + db #c4,#04,#d2,#c4,#05,#c2,#60,#81 + db #01,#c4,#01,#ce,#60,#80,#0b,#d8 + db #60,#81,#01,#60,#83,#0b,#64,#81 + db #01,#64,#83,#0b,#64,#c1,#01,#fc + db #66,#03,#66,#80,#0b,#ce,#64,#81 + db #01,#64,#83,#0b,#60,#81,#01,#60 + db #83,#0b,#56,#81,#01,#56,#83,#0b + db #6e,#81,#01,#6e,#83,#0b,#78,#81 + db #01,#78,#83,#0b,#d0,#78,#81,#01 + db #78,#83,#0b,#d0,#74,#81,#01,#74 + db #83,#0b,#d0,#74,#81,#01,#74,#83 + db #0b,#dc,#c4,#02,#d2,#c4,#03,#d2 + db #c4,#04,#d2,#c4,#05,#c2,#78,#81 + db #01,#78,#83,#0b,#74,#81,#01,#74 + db #83,#0b,#70,#81,#01,#70,#83,#0b + db #66,#81,#01,#66,#83,#0b,#d4,#78 + db #81,#01,#78,#83,#0b,#74,#81,#01 + db #74,#83,#0b,#70,#81,#01,#70,#83 + db #0b,#66,#81,#01,#66,#83,#0b,#d4 + db #78,#81,#01,#78,#83,#0b,#7c,#81 + db #01,#7c,#83,#0b,#7e,#81,#01,#7e + db #83,#0b,#82,#81,#01,#82,#83,#0b + db #7e,#81,#01,#7e,#83,#0b,#d4,#7c + db #81,#01,#7c,#83,#0b,#d4,#74,#81 + db #01,#74,#83,#0b,#6a,#81,#01,#6a + db #83,#0b,#d8,#c4,#02,#d2,#c4,#03 + db #d2,#c4,#04,#c2,#70,#81,#09,#79 + db #7f,#71,#79,#7f,#71,#79,#7f,#71 + db #79,#7f,#71,#79,#7f,#71,#79,#7f + db #71,#79,#7f,#71,#79,#7f,#71,#79 + db #7f,#71,#79,#7f,#71,#79,#6f,#7d + db #87,#6f,#7d,#87,#6f,#7d,#87,#6f + db #7d,#87,#6f,#7d,#87,#6f,#7d,#87 + db #6f,#7d,#87,#6f,#7d,#87,#6f,#7d + db #87,#6f,#7d,#87,#6f,#7d,#66,#81 + db #01,#c4,#01,#66,#80,#0b,#ce,#64 + db #81,#01,#64,#83,#0b,#60,#81,#01 + db #c4,#01,#60,#80,#0b,#d2,#66,#81 + db #01,#c4,#01,#66,#80,#0b,#ce,#70 + db #81,#01,#c4,#01,#70,#80,#0b,#ce + db #78,#81,#01,#c4,#01,#78,#80,#0b + db #ce,#7c,#81,#01,#7c,#83,#0b,#7e + db #01,#d0,#7f,#7c,#81,#01,#7c,#83 + db #0b,#ec,#76,#c1,#07,#0f,#c6,#0f + db #c6,#0f,#c6,#0f,#c6,#0f,#c6,#0f + db #c6,#0f,#c6,#0f,#c6,#0f,#c6,#0f + db #c6,#0f,#c6,#0f,#c6,#0f,#c6,#0f + db #c6,#0f,#c6,#0f,#58,#81,#0a,#ce + db #58,#80,#04,#59,#58,#80,#08,#4e + db #80,#05,#4e,#80,#04,#55,#58,#80 + db #0a,#ce,#58,#80,#04,#59,#58,#80 + db #08,#4e,#80,#05,#4e,#80,#04,#55 + db #58,#80,#0a,#ce,#58,#80,#04,#59 + db #58,#80,#08,#4e,#80,#05,#4e,#80 + db #04,#55,#58,#80,#0a,#ce,#58,#80 + db #04,#59,#58,#80,#08,#4e,#80,#05 + db #4e,#80,#04,#55,#56,#80,#0a,#ce + db #56,#80,#04,#57,#56,#80,#08,#4c + db #80,#05,#4c,#80,#04,#53,#56,#80 + db #0a,#ce,#56,#80,#04,#5d,#5c,#80 + db #08,#52,#80,#05,#52,#80,#04,#53 + db #56,#80,#0a,#ce,#56,#80,#04,#57 + db #56,#80,#08,#4c,#80,#05,#4c,#80 + db #04,#53,#56,#80,#0a,#ce,#56,#80 + db #04,#57,#56,#80,#08,#4c,#80,#05 + db #4c,#80,#04,#53,#86,#89,#0b,#79 + db #6f,#87,#79,#6f,#87,#79,#6f,#87 + db #79,#6f,#87,#79,#6f,#87,#83,#79 + db #6f,#83,#79,#6f,#83,#79,#6f,#83 + db #79,#6f,#83,#79,#6f,#83,#7f,#79 + db #6f,#7f,#79,#6f,#7f,#79,#6f,#7f + db #79,#6f,#7f,#79,#6f,#7f,#83,#79 + db #6f,#83,#79,#6f,#83,#79,#6f,#83 + db #79,#6f,#83,#79,#6f,#79,#60,#81 + db #01,#c4,#01,#e8,#66,#01,#c4,#01 + db #ce,#64,#01,#c4,#01,#ce,#60,#01 + db #c4,#01,#66,#01,#c4,#01,#ce,#64 + db #01,#c4,#01,#ce,#60,#01,#c4,#01 + db #56,#01,#c4,#01,#e8,#c6,#ff,#c6 + db #02,#c6,#fe,#c6,#02,#c6,#fe,#c6 + db #02,#c6,#fe,#c6,#02,#c6,#fe,#c6 + db #02,#c6,#fe,#c6,#02,#c6,#fe,#c6 + db #02,#c6,#fe,#c6,#02,#60,#81,#04 + db #ce,#60,#80,#05,#ce,#61,#ce,#60 + db #80,#04,#ce,#61,#ce,#60,#80,#05 + db #ce,#61,#ce,#60,#80,#04,#ce,#61 + db #ce,#60,#80,#05,#ce,#61,#ce,#60 + db #80,#04,#ce,#61,#ce,#60,#80,#05 + db #ce,#61,#ce,#60,#80,#04,#ce,#61 + db #ce,#60,#80,#05,#ce,#61,#ce,#60 + db #80,#04,#ce,#61,#ce,#60,#80,#05 + db #ce,#61,#ce,#60,#80,#04,#ce,#61 + db #ce,#60,#80,#05,#ce,#61,#ce,#60 + db #80,#04,#ce,#61,#ce,#60,#80,#05 + db #ce,#61,#ce,#60,#80,#04,#c2,#60 + db #81,#01,#c4,#01,#e8,#66,#01,#c4 + db #01,#ce,#64,#01,#c4,#01,#ce,#60 + db #01,#c4,#01,#6a,#01,#c4,#01,#ce + db #6e,#01,#c4,#01,#ce,#70,#01,#c4 + db #01,#6e,#01,#c4,#01,#e8,#76,#c1 + db #07,#0f,#c6,#0f,#c6,#0f,#c6,#0f + db #c6,#0f,#c6,#0f,#c6,#0f,#c6,#0f + db #c6,#0f,#c6,#0f,#c6,#0f,#c6,#0f + db #c6,#0f,#c6,#0f,#c6,#0f,#c6,#0f + db #60,#81,#01,#c4,#01,#e8,#66,#01 + db #c4,#01,#ce,#64,#01,#c4,#01,#ce + db #60,#01,#c4,#01,#6e,#01,#c4,#01 + db #ce,#74,#01,#c4,#01,#ce,#78,#01 + db #c4,#01,#78,#01,#c4,#01,#e8,#76 + db #c1,#07,#0f,#c6,#0f,#c6,#0f,#c6 + db #0f,#c6,#0f,#c6,#0f,#c6,#0f,#c6 + db #0f,#c8,#02,#0f,#c8,#04,#0f,#c8 + db #06,#0f,#c8,#08,#0f,#c8,#0a,#0f + db #c8,#0c,#0f,#c8,#0e,#0f,#c8,#0f + db #0f,#ca,#ce,#7e,#81,#01,#7e,#83 + db #0b,#78,#81,#01,#78,#83,#0b,#6e + db #81,#01,#6e,#83,#0b,#7c,#81,#01 + db #7c,#83,#0b,#78,#81,#01,#78,#83 + db #0b,#6e,#81,#01,#6e,#83,#0b,#7e + db #81,#01,#7e,#83,#0b,#ca,#ce,#7e + db #81,#01,#7e,#83,#0b,#78,#81,#01 + db #78,#83,#0b,#6e,#81,#01,#6e,#83 + db #0b,#7c,#81,#01,#7c,#83,#0b,#78 + db #81,#01,#78,#83,#0b,#6e,#81,#01 + db #6e,#83,#0b,#7e,#81,#01,#7e,#83 + db #0b,#ca,#ce,#7c,#81,#01,#7c,#83 + db #0b,#74,#81,#01,#74,#83,#0b,#6a + db #81,#01,#6a,#83,#0b,#7c,#81,#01 + db #7c,#83,#0b,#74,#81,#01,#74,#83 + db #0b,#6a,#81,#01,#6a,#83,#0b,#7c + db #81,#01,#7c,#83,#0b,#ca,#ce,#74 + db #81,#01,#74,#83,#0b,#78,#81,#01 + db #78,#83,#0b,#7c,#81,#01,#7c,#83 + db #0b,#7e,#81,#01,#7e,#83,#0b,#7c + db #81,#01,#7c,#83,#0b,#74,#81,#01 + db #74,#83,#0b,#6a,#81,#01,#6a,#83 + db #0b,#60,#81,#0a,#ce,#60,#80,#04 + db #61,#60,#80,#08,#60,#80,#05,#60 + db #80,#04,#61,#60,#80,#0a,#ce,#60 + db #80,#04,#61,#60,#80,#08,#ce,#60 + db #80,#04,#61,#60,#80,#0a,#ce,#60 + db #80,#04,#61,#60,#80,#08,#60,#80 + db #05,#60,#80,#04,#61,#60,#80,#0a + db #ce,#60,#80,#04,#61,#60,#80,#08 + db #ce,#60,#80,#04,#61,#74,#80,#0a + db #ce,#74,#80,#04,#75,#74,#80,#08 + db #74,#80,#05,#74,#80,#04,#75,#74 + db #80,#0a,#ce,#74,#80,#04,#75,#74 + db #80,#08,#ce,#74,#80,#04,#75,#74 + db #80,#0a,#ce,#74,#80,#04,#75,#74 + db #80,#08,#74,#80,#05,#74,#80,#04 + db #75,#74,#80,#0a,#ce,#74,#80,#04 + db #75,#74,#80,#08,#ce,#74,#80,#04 + db #75,#60,#81,#09,#6b,#71,#61,#6b + db #71,#61,#6b,#71,#61,#6b,#71,#61 + db #6b,#71,#61,#6b,#71,#61,#6b,#71 + db #61,#6b,#71,#61,#6b,#71,#61,#6b + db #71,#61,#6b,#61,#67,#6f,#61,#67 + db #6f,#61,#67,#6f,#61,#67,#6f,#61 + db #67,#6f,#61,#67,#6f,#61,#67,#6f + db #61,#67,#6f,#61,#67,#6f,#61,#67 + db #6f,#61,#67,#ca,#ce,#78,#81,#01 + db #78,#83,#0b,#70,#81,#01,#70,#83 + db #0b,#6a,#81,#01,#6a,#83,#0b,#7c + db #81,#01,#7c,#83,#0b,#70,#81,#01 + db #70,#83,#0b,#6a,#81,#01,#6a,#83 + db #0b,#78,#81,#01,#78,#83,#0b,#ca + db #ce,#78,#81,#01,#78,#83,#0b,#70 + db #81,#01,#70,#83,#0b,#6a,#81,#01 + db #6a,#83,#0b,#7c,#81,#01,#7c,#83 + db #0b,#70,#81,#01,#70,#83,#0b,#6a + db #81,#01,#6a,#83,#0b,#7e,#81,#01 + db #7e,#83,#0b,#ca,#ce,#7e,#81,#01 + db #7e,#83,#0b,#78,#81,#01,#78,#83 + db #0b,#6e,#81,#01,#6e,#83,#0b,#7c + db #81,#01,#7c,#83,#0b,#78,#81,#01 + db #78,#83,#0b,#6e,#81,#01,#6e,#83 + db #0b,#7e,#81,#01,#7e,#83,#0b,#ca + db #ce,#86,#81,#01,#86,#83,#0b,#7e + db #81,#01,#7e,#83,#0b,#78,#81,#01 + db #78,#83,#0b,#6e,#81,#01,#6e,#83 + db #0b,#66,#81,#01,#66,#83,#0b,#60 + db #81,#01,#60,#83,#0b,#66,#81,#01 + db #66,#83,#0b,#6a,#81,#0a,#ce,#6a + db #80,#04,#6b,#6a,#80,#08,#6a,#80 + db #05,#6a,#80,#04,#6b,#6a,#80,#0a + db #ce,#6a,#80,#04,#6b,#6a,#80,#08 + db #ce,#6a,#80,#04,#6b,#6a,#80,#0a + db #ce,#6a,#80,#04,#6b,#6a,#80,#08 + db #6a,#80,#05,#6a,#80,#04,#6b,#6a + db #80,#0a,#ce,#6a,#80,#04,#6b,#6a + db #80,#08,#ce,#6a,#80,#04,#6b,#60 + db #80,#0a,#ce,#60,#80,#04,#61,#60 + db #80,#08,#60,#80,#05,#60,#80,#04 + db #61,#60,#80,#0a,#ce,#60,#80,#04 + db #61,#60,#80,#08,#ce,#60,#80,#04 + db #61,#60,#80,#0a,#ce,#60,#80,#04 + db #61,#60,#80,#08,#60,#80,#05,#60 + db #80,#04,#61,#60,#80,#0a,#ce,#60 + db #80,#04,#61,#60,#80,#08,#ce,#60 + db #80,#04,#61,#56,#81,#0c,#c0,#1e + db #c4,#01,#d2,#c4,#02,#d2,#c4,#03 + db #d2,#c4,#04,#d2,#c4,#05,#d2,#c4 + db #06,#d2,#c4,#07,#d2,#c4,#08,#c2 + db #60,#81,#05,#c2,#48,#81,#0d,#da + db #49,#da,#49,#da,#49,#da,#48,#80 + db #0e,#d2,#49,#d2,#49,#d2,#49,#d2 + db #49,#ce,#49,#d2,#49,#d2,#49,#ce + db #49,#ce,#49,#c2,#60,#81,#09,#67 + db #6f,#61,#67,#6f,#61,#67,#6f,#61 + db #67,#6f,#61,#67,#6f,#61,#67,#6f + db #61,#67,#6f,#61,#67,#6f,#61,#67 + db #6f,#61,#67,#6f,#61,#67,#71,#6f + db #67,#71,#6f,#67,#71,#6f,#67,#71 + db #6f,#67,#71,#6f,#67,#71,#6f,#67 + db #71,#6f,#67,#71,#6f,#67,#71,#6f + db #67,#71,#6f,#67,#71,#6f,#60,#81 + db #01,#60,#83,#0b,#d8,#6e,#81,#01 + db #c4,#01,#6e,#80,#0b,#de,#c4,#02 + db #ce,#c4,#03,#ce,#6e,#81,#01,#6e + db #83,#0b,#6a,#81,#01,#6a,#83,#0b + db #66,#81,#01,#c4,#01,#66,#80,#0b + db #ce,#64,#81,#01,#c4,#01,#64,#80 + db #0b,#ce,#66,#81,#01,#66,#83,#0b + db #60,#81,#01,#c4,#01,#60,#80,#0b + db #ea,#c4,#02,#ce,#c4,#03,#ce,#c4 + db #04,#ce,#c4,#05,#c2,#60,#81,#0a + db #ce,#60,#80,#04,#61,#60,#80,#08 + db #60,#80,#05,#60,#80,#04,#61,#60 + db #80,#0a,#ce,#60,#80,#04,#61,#60 + db #80,#08,#ce,#60,#80,#04,#61,#60 + db #80,#0a,#ce,#60,#80,#04,#61,#60 + db #80,#08,#60,#80,#05,#60,#80,#04 + db #61,#60,#80,#0a,#ce,#60,#80,#04 + db #61,#60,#80,#08,#ce,#60,#80,#04 + db #61,#70,#80,#0a,#ce,#70,#80,#04 + db #71,#70,#80,#08,#70,#80,#05,#70 + db #80,#04,#71,#70,#80,#0a,#ce,#70 + db #80,#04,#71,#70,#80,#08,#ce,#70 + db #80,#04,#71,#70,#80,#0a,#ce,#70 + db #80,#04,#71,#70,#80,#08,#70,#80 + db #05,#70,#80,#04,#71,#70,#80,#0a + db #ce,#70,#80,#04,#71,#70,#80,#08 + db #ce,#70,#80,#04,#71,#5c,#81,#09 + db #65,#6b,#5d,#65,#6b,#5d,#65,#6b + db #5d,#65,#6b,#5d,#65,#6b,#5d,#65 + db #6b,#5d,#65,#6b,#5d,#65,#6b,#5d + db #65,#6b,#5d,#65,#6b,#5d,#65,#61 + db #67,#6f,#61,#67,#6f,#61,#67,#6f + db #61,#67,#6f,#61,#67,#6f,#61,#67 + db #6f,#61,#67,#6f,#61,#67,#6f,#61 + db #67,#6f,#61,#67,#6f,#61,#67,#5c + db #81,#01,#c4,#01,#5c,#80,#0b,#d2 + db #6a,#81,#01,#c4,#01,#6a,#80,#0b + db #d2,#66,#81,#01,#c4,#01,#66,#80 + db #0b,#ce,#6a,#81,#01,#6a,#83,#0b + db #6e,#81,#01,#6e,#83,#0b,#d0,#70 + db #81,#01,#70,#83,#0b,#d0,#74,#81 + db #01,#74,#83,#0b,#6e,#81,#01,#6e + db #83,#0b,#70,#81,#01,#70,#83,#0b + db #6e,#81,#01,#c4,#01,#6e,#80,#0b + db #e6,#c4,#01,#d2,#c4,#02,#d2,#c4 + db #03,#d2,#c4,#04,#c2,#74,#81,#0a + db #ce,#74,#80,#04,#75,#74,#80,#08 + db #74,#80,#05,#74,#80,#04,#75,#74 + db #80,#0a,#ce,#74,#80,#04,#75,#74 + db #80,#08,#ce,#74,#80,#04,#75,#74 + db #80,#0a,#ce,#74,#80,#04,#75,#74 + db #80,#08,#74,#80,#05,#74,#80,#04 + db #75,#74,#80,#0a,#ce,#74,#80,#04 + db #75,#74,#80,#08,#ce,#74,#80,#04 + db #75,#78,#80,#0a,#ce,#78,#80,#04 + db #79,#78,#80,#08,#78,#80,#05,#78 + db #80,#04,#79,#78,#80,#0a,#ce,#78 + db #80,#04,#79,#78,#80,#08,#ce,#78 + db #80,#04,#79,#78,#80,#0a,#ce,#78 + db #80,#04,#79,#78,#80,#08,#78,#80 + db #05,#78,#80,#04,#79,#78,#80,#0a + db #ce,#78,#80,#04,#79,#78,#80,#08 + db #ce,#78,#80,#04,#79,#60,#81,#01 + db #c4,#01,#60,#80,#0b,#d6,#6e,#81 + db #01,#c4,#01,#6e,#80,#0b,#e6,#66 + db #81,#01,#66,#83,#0b,#64,#81,#01 + db #64,#83,#0b,#5c,#81,#01,#5c,#83 + db #0b,#d0,#60,#81,#01,#60,#83,#0b + db #d0,#4e,#81,#01,#4e,#83,#0b,#58 + db #81,#01,#c4,#01,#58,#80,#0b,#ee + db #60,#81,#01,#60,#83,#0b,#6a,#81 + db #01,#6a,#83,#0b,#6e,#81,#01,#6e + db #83,#0b,#52,#81,#09,#59,#61,#53 + db #59,#61,#53,#59,#61,#53,#59,#61 + db #53,#59,#61,#53,#59,#61,#53,#59 + db #61,#53,#59,#61,#53,#59,#61,#53 + db #59,#61,#53,#59,#61,#67,#6f,#61 + db #67,#6f,#61,#67,#6f,#61,#67,#6f + db #61,#67,#6f,#61,#67,#6f,#61,#67 + db #6f,#61,#67,#6f,#61,#67,#6f,#61 + db #67,#6f,#61,#67,#70,#81,#01,#c4 + db #01,#70,#80,#0b,#ce,#6e,#81,#01 + db #6e,#83,#0b,#70,#81,#01,#c4,#01 + db #70,#80,#0b,#d2,#60,#81,#01,#c4 + db #01,#60,#80,#0b,#ce,#70,#81,#01 + db #70,#03,#6e,#01,#6e,#03,#6a,#01 + db #6a,#03,#d0,#5c,#01,#5c,#03,#64 + db #01,#64,#03,#66,#01,#66,#03,#60 + db #01,#c4,#01,#60,#80,#0b,#ea,#c4 + db #02,#ce,#c4,#03,#ce,#c4,#04,#ce + db #c4,#05,#ce,#c4,#06,#ce,#c4,#07 + db #ce,#c4,#08,#ce,#c4,#09,#c2,#6a + db #81,#0a,#ce,#6a,#80,#04,#6b,#6a + db #80,#08,#6a,#80,#05,#6a,#80,#04 + db #6b,#6a,#80,#0a,#ce,#6a,#80,#04 + db #6b,#6a,#80,#08,#ce,#6a,#80,#04 + db #6b,#6a,#80,#0a,#ce,#6a,#80,#04 + db #6b,#6a,#80,#08,#6a,#80,#05,#6a + db #80,#04,#6b,#6a,#80,#0a,#ce,#6a + db #80,#04,#6b,#6a,#80,#08,#ce,#6a + db #80,#04,#6b,#60,#80,#0a,#ce,#60 + db #80,#04,#61,#60,#80,#08,#60,#80 + db #05,#60,#80,#04,#61,#60,#80,#0a + db #ce,#60,#80,#04,#61,#60,#80,#08 + db #ce,#60,#80,#04,#61,#60,#80,#0a + db #ce,#60,#80,#04,#61,#60,#80,#08 + db #60,#80,#05,#60,#80,#04,#61,#60 + db #80,#0a,#ce,#60,#80,#04,#61,#60 + db #80,#08,#ce,#60,#80,#04,#61,#78 + db #81,#01,#c4,#01,#ce,#78,#80,#0b + db #e0,#c4,#02,#d2,#c4,#03,#d2,#c4 + db #04,#ce,#7c,#81,#01,#c4,#01,#7c + db #80,#0b,#ce,#7e,#81,#01,#c4,#01 + db #7e,#80,#0b,#ce,#7c,#81,#01,#c4 + db #01,#ce,#7c,#80,#0b,#dc,#c4,#02 + db #d2,#c4,#03,#d2,#c4,#04,#d2,#c4 + db #05,#d2,#c4,#06,#c2,#60,#81,#0a + db #ce,#60,#80,#04,#61,#78,#80,#08 + db #78,#80,#05,#60,#80,#04,#61,#60 + db #80,#0a,#ce,#60,#80,#04,#61,#78 + db #80,#08,#ce,#60,#80,#04,#61,#60 + db #80,#0a,#ce,#60,#80,#04,#61,#78 + db #80,#08,#78,#80,#05,#60,#80,#04 + db #61,#60,#80,#0a,#ce,#60,#80,#04 + db #61,#78,#80,#08,#ce,#60,#80,#04 + db #61,#5c,#80,#0a,#ce,#5c,#80,#04 + db #5d,#74,#80,#08,#74,#80,#05,#5c + db #80,#04,#5d,#5c,#80,#0a,#ce,#5c + db #80,#04,#5d,#74,#80,#08,#ce,#5c + db #80,#04,#5d,#5c,#80,#0a,#ce,#5c + db #80,#04,#5d,#74,#80,#08,#74,#80 + db #05,#5c,#80,#04,#5d,#5c,#80,#0a + db #ce,#5c,#80,#04,#5d,#74,#80,#08 + db #ce,#5c,#80,#04,#5d,#78,#81,#01 + db #c4,#01,#ce,#78,#80,#0b,#e0,#c4 + db #02,#d2,#c4,#03,#d2,#c4,#04,#ce + db #7c,#81,#01,#c4,#01,#7c,#80,#0b + db #ce,#7e,#81,#01,#c4,#01,#7e,#80 + db #0b,#ce,#78,#81,#01,#6f,#61,#c4 + db #01,#ce,#60,#80,#0b,#e0,#c4,#02 + db #d2,#c4,#03,#d2,#c4,#04,#d2,#c4 + db #05,#c2,#6a,#81,#0a,#ce,#6a,#80 + db #04,#6b,#82,#80,#08,#82,#80,#05 + db #6a,#80,#04,#6b,#6a,#80,#0a,#ce + db #6a,#80,#04,#6b,#82,#80,#08,#ce + db #6a,#80,#04,#6b,#6a,#80,#0a,#ce + db #6a,#80,#04,#6b,#82,#80,#08,#82 + db #80,#05,#6a,#80,#04,#6b,#6a,#80 + db #0a,#ce,#6a,#80,#04,#6b,#82,#80 + db #08,#ce,#6a,#80,#04,#6b,#60,#80 + db #0a,#ce,#60,#80,#04,#61,#78,#80 + db #08,#78,#80,#05,#60,#80,#04,#61 + db #60,#80,#0a,#ce,#60,#80,#04,#61 + db #78,#80,#08,#ce,#60,#80,#04,#61 + db #60,#80,#0a,#ce,#60,#80,#04,#61 + db #78,#80,#08,#78,#80,#05,#60,#80 + db #04,#61,#60,#80,#0a,#ce,#60,#80 + db #04,#61,#78,#80,#08,#ce,#60,#80 + db #04,#61,#ca,#74,#81,#0f,#c4,#01 + db #d0,#74,#80,#10,#d6,#6e,#81,#11 + db #ce,#75,#ce,#6f,#ce,#75,#ce,#79 + db #d2,#7c,#c1,#0f,#fe,#7e,#03,#ce + db #7e,#80,#10,#d0,#6a,#80,#11,#6d + db #6f,#ce,#75,#ce,#6f,#ce,#6b,#ce + db #67,#ce,#5d,#ce,#61,#ce,#67,#ce + db #6b,#ce,#6d,#6f,#75,#6f,#71,#73 + db #75,#79,#ce,#75,#d0,#c6,#10,#c6 + db #10,#c6,#10,#74,#81,#01,#c4,#01 + db #d0,#74,#80,#0b,#d6,#6e,#81,#12 + db #ce,#75,#ce,#6f,#ce,#75,#ce,#79 + db #d2,#7c,#c1,#01,#fe,#7e,#03,#ce + db #7e,#80,#0b,#d0,#6a,#80,#12,#6d + db #6f,#ce,#75,#ce,#6f,#ce,#6b,#ce + db #67,#ce,#5d,#ce,#61,#ce,#67,#ce + db #6b,#ce,#6d,#6f,#75,#6f,#71,#73 + db #75,#79,#ce,#75,#d0,#c6,#10,#c6 + db #10,#c6,#10,#c2,#60,#81,#0a,#ce + db #78,#80,#04,#61,#60,#80,#08,#60 + db #80,#05,#60,#80,#04,#59,#5a,#80 + db #0a,#ce,#5a,#80,#04,#5b,#5a,#80 + db #08,#5c,#80,#05,#5c,#80,#04,#5f + db #60,#80,#0a,#ce,#78,#80,#04,#61 + db #60,#80,#08,#60,#80,#05,#60,#80 + db #04,#59,#5a,#80,#0a,#ce,#5a,#80 + db #04,#5b,#5a,#80,#08,#5c,#80,#05 + db #5c,#80,#04,#5f,#60,#80,#0a,#ce + db #78,#80,#04,#61,#60,#80,#08,#60 + db #80,#05,#60,#80,#04,#59,#5a,#80 + db #0a,#ce,#5a,#80,#04,#5b,#5a,#80 + db #08,#5c,#80,#05,#5c,#80,#04,#5f + db #60,#80,#0a,#ce,#78,#80,#04,#61 + db #60,#80,#08,#60,#80,#05,#60,#80 + db #04,#59,#5a,#80,#0a,#ce,#5a,#80 + db #04,#5b,#5a,#80,#08,#5c,#80,#05 + db #5c,#80,#04,#5f,#ce,#78,#81,#0f + db #c4,#01,#74,#01,#c4,#01,#78,#01 + db #c4,#01,#74,#01,#7f,#c4,#01,#7e + db #01,#7d,#c4,#01,#74,#01,#79,#c4 + db #01,#ce,#78,#01,#75,#6f,#67,#61 + db #57,#5d,#5f,#61,#67,#c4,#01,#ce + db #60,#01,#c4,#01,#d0,#66,#01,#c4 + db #01,#6a,#01,#c4,#01,#6c,#01,#6f + db #75,#6f,#75,#75,#6f,#75,#77,#79 + db #76,#40,#fe,#c4,#01,#76,#41,#fe + db #79,#c4,#01,#c2,#78,#81,#01,#c4 + db #01,#74,#01,#c4,#01,#78,#01,#c4 + db #01,#74,#01,#7f,#c4,#01,#7e,#01 + db #7d,#c4,#01,#74,#01,#79,#c4,#01 + db #ce,#78,#01,#75,#6f,#67,#61,#57 + db #5d,#5f,#61,#67,#c4,#01,#ce,#60 + db #01,#c4,#01,#d0,#66,#01,#c4,#01 + db #6a,#01,#c4,#01,#6c,#01,#6f,#75 + db #6f,#75,#75,#6f,#75,#77,#79,#76 + db #40,#fe,#c4,#01,#76,#41,#fe,#79 + db #c4,#01,#c2,#60,#81,#0a,#ce,#78 + db #80,#04,#61,#60,#80,#08,#60,#80 + db #05,#60,#80,#04,#59,#5a,#80,#0a + db #ce,#5a,#80,#04,#5b,#5a,#80,#08 + db #5c,#80,#05,#5c,#80,#04,#5f,#60 + db #80,#0a,#ce,#78,#80,#04,#61,#60 + db #80,#08,#60,#80,#05,#60,#80,#04 + db #59,#5a,#80,#0a,#ce,#5a,#80,#04 + db #5b,#5a,#80,#08,#5c,#80,#05,#5c + db #80,#08,#5f,#60,#80,#0a,#ce,#78 + db #80,#04,#61,#60,#80,#08,#60,#80 + db #05,#60,#80,#04,#59,#5a,#80,#0a + db #ce,#5a,#80,#04,#5b,#5a,#80,#08 + db #5c,#80,#05,#5c,#80,#04,#5f,#60 + db #80,#0a,#ce,#78,#80,#04,#61,#60 + db #80,#08,#60,#80,#05,#60,#80,#04 + db #59,#5a,#80,#0a,#ce,#5a,#80,#08 + db #5b,#5b,#5c,#80,#05,#5c,#80,#08 + db #5f,#14,#ff,#08,#ff +; +.init_music ; #9752 - added by Megachur +; + ld de,l8200 + jp real_init_music +; +.music_info + db "Cybernoid II The Revenge (2016)(Epyteor)(SuTeKH)",0 + db "StarkOs",0 + + read "music_end.asm" diff --git a/ASM/Cyborgdemo (19xx)(Public Domain)()(ST-128 Module).asm b/ASM/Cyborgdemo (19xx)(Public Domain)()(ST-128 Module).asm new file mode 100644 index 00000000..bb872c62 --- /dev/null +++ b/ASM/Cyborgdemo (19xx)(Public Domain)()(ST-128 Module).asm @@ -0,0 +1,1058 @@ +; Music of Cyborgdemo (19xx)(Public Domain)()(ST-128 Module) +; Ripped by Megachur the 30/08/2017 +; $VER 1.5 + +IFDEF FILENAME_WRITE + write "CYBORGDE.BIN" +ENDIF + +MUSIC_DATE_RIP_DAY equ 30 +MUSIC_DATE_RIP_MONTH equ 08 +MUSIC_DATE_RIP_YEAR equ 2017 +music_adr equ #8001 + + read "music_header.asm" + + jp l800a + jp l809e + jp l8082 +; +.init_music +.l800a +; + xor a + ld hl,l85b5 + call l807b + ld hl,l85e3 + call l807b + ld hl,l8611 + call l807b + ld ix,l85b1 + ld iy,l863b + ld de,#002e + ld b,#03 +.l802a + push bc + inc (ix+#1f) + ld l,(iy+#00) + ld h,(iy+#01) + ld a,(hl) + ld (ix+#24),a + inc hl + ld c,(hl) + inc hl + ld b,(hl) + inc hl + ld (ix+#22),l + ld (ix+#23),h + ld (ix+#20),c + ld (ix+#21),b + ld (ix+#25),#ff + add ix,de + inc iy + inc iy + pop bc + djnz l802a + ld hl,l84ca + ld (hl),#06 + inc hl + ld (hl),#40 + inc hl + ld (hl),#01 + inc hl + ld (hl),d + inc hl + ld (hl),#38 + ld hl,#ffff + ld (l84c6),hl + ld (l84c8),hl + ld a,#0c + ld c,d + call l84a6 + ld a,#0d + ld c,d + jp l84a6 +.l807b + ld b,#2a +.l807d + ld (hl),a + inc hl + djnz l807d + ret +; +.stop_music +.l8082 +; + ld a,#07 + ld c,#3f + call l84a6 + ld a,#08 + ld c,#00 + call l84a6 + ld a,#09 + ld c,#00 + call l84a6 + ld a,#0a + ld c,#00 + jp l84a6 +; +.play_music +.l809e +; + ld hl,l84cc + dec (hl) + ld ix,l85b1 + ld bc,l85bf + call l8140 + ld ix,l85df + ld bc,l85ed + call l8140 + ld ix,l860d + ld bc,l861b + call l8140 + ld hl,l84c5 + ld de,l84cc + ld b,#06 + call l811d + ld b,#07 + call l811d + ld b,#0b + call l811d + ld b,#0d + call l811d + ld de,l84cc + ld a,(de) + or a + ret nz + inc hl + ldi + dec (hl) + ret nz + ld (hl),#40 + ld hl,l85d0 + call l80f6 + ld hl,l85fe + call l80f6 + ld hl,l862c +.l80f6 + ld (hl),#01 + inc hl + ld b,h + ld c,l + inc hl + inc hl + ld e,(hl) + inc hl + ld d,(hl) + ld a,(de) + cp #80 + jr nz,l810b + ex de,hl + inc hl + ld e,(hl) + inc hl + ld d,(hl) + ld a,(de) +.l810b + inc de + ex de,hl + ld d,b + ld e,c + ldi + ldi + ex de,hl + ld (hl),e + inc hl + ld (hl),d + inc hl + ld (hl),a + inc hl + ld (hl),#ff + ret +.l811d + inc hl + inc de + ld a,(de) + cp (hl) + ret z + ld (hl),a + ld c,a + ld a,b + jp l84a6 +.l8128 + ld a,(hl) + ld (ix+#1f),a + inc hl + ld (ix+#20),l + ld (ix+#21),h + ld (ix+#17),d + ld (ix+#15),d + ld c,d + ld a,(ix+#00) + jp l84a6 +.l8140 + ld a,(l84cc) + or a + jp nz,l81f8 + ld (ix+#08),a + ld (ix+#0a),a + dec (ix+#1f) + jp nz,l81f8 + ld d,a + ld l,(ix+#20) + ld h,(ix+#21) + ld a,(hl) + inc hl + cp #fe + jr z,l8128 + or a + jp z,l81ed + ld r,a + and #7f + cp #10 + jr c,l81c8 + ld e,(hl) + inc hl + push hl + push bc + sub #10 + add #00 + add (ix+#24) + ld (ix+#07),a + ld b,d + call l8340 + ld (ix+#16),b + ld (ix+#17),#20 + inc b + ld (ix+#2c),b + ld (ix+#2d),b + dec b + ld a,e + pop de + ld i,a + and #f0 + cp (ix+#25) + jr z,l81a1 + ld (ix+#25),a + ld (ix+#1e),b + ld (ix+#29),b +.l81a1 + rrca + ld c,a + ld hl,l8641 + add hl,bc + ldi + ldi + ldi + ldi + ldi + ldi + bit 6,(hl) + ldi + ldi + ld b,#00 + jr z,l81c0 + ld (ix+#1e),b +.l81c0 + ld a,i + pop hl + ld d,b + and #0f + jr z,l81e1 +.l81c8 + ld b,d + ex de,hl + and #0f + dec a + add a + ld c,a + ld hl,l84d1 + add hl,bc + ld a,(hl) + inc hl + ld h,(hl) + ld l,a + push hl + ex de,hl + ld d,b + ret + add b + add e + add h + add l + add (hl) + add h +.l81e1 + ld a,d + or a + jr nz,l81ef + ld a,r + bit 7,a + ld a,#01 + jr nz,l81ef +.l81ed + ld a,(hl) + inc hl +.l81ef + ld (ix+#1f),a + ld (ix+#20),l + ld (ix+#21),h +.l81f8 + ld a,(ix+#17) + or a + jr nz,l820e + ld a,(ix+#15) + or a + ret z + ld (ix+#17),a + ld a,(ix+#14) + and #1f + ld (ix+#16),a +.l820e + ld d,#00 + ld e,(ix+#16) + dec (ix+#2c) + jr nz,l8224 + ld a,(ix+#2d) + ld (ix+#2c),a + inc (ix+#16) + dec (ix+#17) +.l8224 + ld a,(ix+#0d) + or a + jr z,l8232 + ld h,a + ld l,(ix+#0c) + add hl,de + ld a,(hl) + jr l8250 +.l8232 + ld a,(ix+#1a) + or a + jp z,l8257 + ld c,a + cp #03 + jr nz,l823f + xor a +.l823f + inc a + ld (ix+#1a),a + dec c + ld a,c + jr z,l8250 + ld a,(ix+#18) + dec c + jr z,l8250 + ld a,(ix+#19) +.l8250 + add (ix+#07) + ld b,d + call l8340 +.l8257 + ld l,(ix+#04) + ld h,(ix+#05) + push hl + ld a,(ix+#08) + or a + jr z,l827f + dec (ix+#1b) + jr nz,l827f + ld a,(ix+#08) + ld (ix+#1b),a + ld c,(ix+#1c) + ld b,(ix+#1d) + add hl,bc + ld (ix+#04),l + ld (ix+#05),h + ex (sp),hl + jr l82b7 +.l827f + ld a,(ix+#29) + or a + jr z,l82b7 + ld b,a + ld a,(ix+#27) + dec (ix+#26) + jr nz,l82ae + ld c,a + ld a,(ix+#28) + ld (ix+#26),a + ld a,c + add b + ld (ix+#27),a + cp (ix+#2a) + jr nz,l82a5 + ld (ix+#29),#ff + jr l82ae +.l82a5 + cp (ix+#2b) + jr nz,l82ae + ld (ix+#29),#01 +.l82ae + ld b,d + or a + jp p,l82b4 + dec b +.l82b4 + ld c,a + jr l82c2 +.l82b7 + ld h,(ix+#0f) + ld l,(ix+#0e) + add hl,de + add hl,de + ld c,(hl) + inc hl + ld b,(hl) +.l82c2 + pop hl + bit 7,(ix+#14) + jr z,l82cb + ld h,d + ld l,d +.l82cb + add hl,bc + ld c,l + ld a,(ix+#01) + call l84a6 + ld c,h + ld a,(ix+#02) + call l84a6 + ld h,(ix+#11) + ld l,(ix+#10) + add hl,de + ld a,(hl) + bit 7,a + jr nz,l831e + sub #00 ; reglage son - à l'origine #07 + ld b,a + ld a,(ix+#0a) + or a + jr z,l830d + dec (ix+#09) + jr nz,l830d + ld c,a + ld a,(ix+#0b) + ld (ix+#09),a + ld a,(ix+#1e) + add c + jp p,l8305 + xor a + jr l830a +.l8305 + cp #10 + jr nz,l830a + dec a +.l830a + ld (ix+#1e),a +.l830d + ld a,b + sub (ix+#1e) + jr nc,l8314 + xor a +.l8314 + or (ix+#06) + ld c,a + ld a,(ix+#00) + call l84a6 +.l831e + ld l,(ix+#12) + ld h,(ix+#13) + add hl,de + ld c,(hl) + bit 7,c + ret nz + ld b,(ix+#03) + ld hl,(l84cd) + ld a,h + or b + ld h,a + ld a,c + and #1f + jr z,l833c + ld l,a + ld a,b + cpl + and h + ld h,a +.l833c + ld (l84cd),hl + ret +.l8340 + ld hl,l84ef + cp #61 + jr nc,l834a + add a + ld c,a + add hl,bc +.l834a + ld a,(hl) + ld (ix+#04),a + inc hl + ld a,(hl) + ld (ix+#05),a + ret +.l8354 + ld (ix+#0d),d + ld (ix+#06),d + ld (ix+#1a),d + call l8479 + ld (ix+#1e),a + jp l81e1 +.l8366 + dec b +.l8367 + ld a,(hl) + inc hl + ld c,a + and #0f + bit 7,b + jr z,l8372 + neg +.l8372 + ld (ix+#1c),a + ld (ix+#1d),b + ld a,c + rrca + rrca + rrca + rrca + and #0f + ld (ix+#08),a + ld (ix+#1b),a + jp l81e1 +.l8388 + dec b + jr l838c +.l838b + inc b +.l838c + call l8479 + ld (ix+#0b),a + ld (ix+#09),a + ld (ix+#0a),b + jp l81e1 +.l839b + ld a,(hl) + inc hl + ld c,a + and #0f + ld (ix+#1e),a + ld a,c + and #f0 + rrca + rrca + rrca + jp l845e +.l83ac + ld a,(hl) + inc hl + or a + jr z,l83ce + ld c,a + rrca + rrca + rrca + rrca + and #0f + ld (ix+#28),a + ld (ix+#26),a + ld a,c + and #07 + ld (ix+#2a),a + neg + ld (ix+#2b),a + ld (ix+#27),a + ld a,#01 +.l83ce + ld (ix+#29),a + jp l81e1 +.l83d4 + dec hl + ld a,(hl) + and #0f + ld (l84d0),a + inc hl + ld a,(hl) + inc hl + ld (l84cf),a + ld (ix+#0d),d + ld (ix+#1a),d + ld (ix+#06),#10 + jp l81e1 +.l83ee + ld a,(hl) + or a + jr z,l83ff + call l847b + ld (ix+#2c),a + ld (ix+#2d),a + inc hl + jp l81e1 +.l83ff + ld hl,#0101 + ld (l84cb),hl + jp l81e1 +.l8408 + call l8479 + ld (ix+#1e),a + jp l81e1 +.l8411 + ld a,(hl) + inc hl + push hl + ld e,a + rrca + rrca + rrca + rrca + call l848a + ld (ix+#0e),c + ld (ix+#0f),d + ld a,e + ld d,#04 + call l848a + ld (ix+#12),c + ld (ix+#13),d + pop hl + ld d,b + jp l81e1 +.l8433 + ld a,(hl) + inc hl + ld (l84ca),a + jp l81e1 +.l843b + ld a,(hl) + inc hl + ld c,a + rrca + rrca + rrca + rrca + and #0f + ld (ix+#18),a + ld a,c + and #0f + ld (ix+#19),a + ld (ix+#06),d + ld (ix+#0d),d + ld (ix+#1a),#01 + jp l81e1 +.l845a + call l8479 + add a +.l845e + ld b,#00 + ld c,a + push hl + ld hl,l86c1 + add hl,bc + ld a,(hl) + ld (ix+#0c),a + inc hl + ld a,(hl) + ld (ix+#0d),a + pop hl + ld (ix+#06),b + ld (ix+#1a),b + jp l81e1 +.l8479 + ld a,(hl) + inc hl +.l847b + cp #10 + ret c + ld c,a + and #f0 + rrca + rrca + rrca + rrca + ld d,a + ld a,c + and #0f + ret +.l848a + and #0f + add a + add a + add a + add d + ld c,a + ld hl,l8641 + add hl,bc + ld c,(hl) + inc hl + ld d,(hl) + ret + ld d,e + ld d,h + dec l + ld sp,#3832 + jr nz,l84ee + ld l,a + ld h,h + ld (hl),l + ld l,h + ld h,l +.l84a6 + di + ld b,#f4 + out (c),a + ld b,#f6 + in a,(c) + or #c0 + out (c),a + and #3f + out (c),a + ld b,#f4 + out (c),c + ld b,#f6 + ld c,a + or #80 + out (c),a + out (c),c + ei +.l84c5 + ret +.l84cd equ $ + 7 +.l84cc equ $ + 6 +.l84cb equ $ + 5 +.l84ca equ $ + 4 +.l84c8 equ $ + 2 +.l84c6 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l84d0 equ $ + 2 +.l84cf equ $ + 1 + db #38,#00,#00 +.l84d1 + dw l8354,l8367,l8366,l838b + dw l8388,l839b,l83ac,l83d4 + dw l83ee,l83d4,l8408,l8411 +.l84ee equ $ + 5 + dw l8433,l843b,l845a +.l84ef + dw #0000,#0e18,#0d4d,#0c8e + dw #0bda,#0b2f,#0a8f,#09f7 + dw #0968,#08e1,#0861,#07e9 + dw #0777,#070c,#06a7,#0647 + dw #05ed,#0598,#0547,#04fc + dw #04b4,#0470,#0431,#03f4 + dw #03bc,#0386,#0353,#0324 + dw #02f6,#02cc,#02a4,#027e + dw #025a,#0238,#0218,#01fa + dw #01de,#01c3,#01aa,#0192 + dw #017b,#0166,#0152,#013f + dw #012d,#011c,#010c,#00fd + dw #00ef,#00e1,#00d5,#00c9 + dw #00be,#00b3,#00a9,#009f + dw #0096,#008e,#0086,#007f + dw #0077,#0071,#006a,#0064 + dw #005f,#0059,#0054,#0050 + dw #004b,#0047,#0043,#003f + dw #003c,#0038,#0035,#0032 + dw #002f,#002d,#002a,#0028 + dw #0026,#0024,#0022,#0020 + dw #001e,#001c,#001b,#0019 + dw #0018,#0016,#0015,#0014 + dw #0013,#0012,#0011,#0010 +.l85b1 equ $ + 2 + dw #000f,#0008 +.l85b5 equ $ + 2 + db #01,#08,#00,#00,#00,#00,#00,#00 +.l85bf equ $ + 4 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l85d0 equ $ + 5 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l85df equ $ + 4 + db #00,#00,#00,#00,#09,#02,#03,#10 +.l85e3 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l85ed equ $ + 2 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l85fe equ $ + 3 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l8611 equ $ + 6 +.l860d equ $ + 2 + db #00,#00,#0a,#04,#05,#20,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l861b + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l862c equ $ + 1 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 +.l8641 equ $ + 6 +.l863b + db #21,#89,#54,#89,#87,#89,#d2,#3f + db #d2,#3f,#d2,#3f,#ff,#ff,#d2,#3f + db #d2,#3f,#d2,#3f,#ff,#ff,#e1,#86 + db #21,#87,#41,#87,#00,#00,#61,#87 + db #a1,#87,#c1,#87,#00,#00,#e1,#87 + db #21,#88,#41,#88,#08,#18,#61,#88 + db #a1,#88,#41,#88,#00,#00,#61,#88 + db #c1,#88,#41,#88,#00,#00,#d2,#3f + db #d2,#3f,#d2,#3f,#ff,#ff,#61,#88 + db #c1,#88,#e1,#88,#00,#00,#d2,#3f + db #d2,#3f,#d2,#3f,#ff,#ff,#d2,#3f + db #d2,#3f,#d2,#3f,#ff,#ff,#d2,#3f + db #d2,#3f,#d2,#3f,#ff,#ff,#d2,#3f + db #d2,#3f,#d2,#3f,#ff,#ff,#d2,#3f + db #d2,#3f,#d2,#3f,#ff,#ff,#d2,#3f + db #d2,#3f,#d2,#3f,#ff,#ff,#d2,#3f +.l86c1 equ $ + 6 + db #d2,#3f,#d2,#3f,#ff,#ff,#d2,#3f + db #d2,#3f,#d2,#3f,#d2,#3f,#01,#89 + db #d2,#3f,#d2,#3f,#d2,#3f,#d2,#3f + db #d3,#3f,#d3,#3f,#d3,#3f,#d3,#3f + db #d3,#3f,#d3,#3f,#d3,#3f,#38,#00 + db #60,#00,#b0,#00,#18,#01,#48,#01 + db #80,#01,#c8,#01,#10,#02,#58,#02 + db #b0,#02,#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,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#0f,#0f + db #0e,#0d,#0c,#0b,#09,#07,#06,#03 + db #01,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#06,#00 + db #00,#01,#01,#01,#01,#01,#01,#01 + db #01,#01,#01,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#80,#00 + db #00,#01,#80,#01,#00,#02,#80,#02 + db #00,#03,#00,#04,#00,#00,#00,#00 + 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,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#0f,#0f + db #0e,#0e,#0d,#0c,#00,#00,#00,#00 + 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,#06,#00 + 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,#00,#00,#00,#00,#00,#01,#00 + db #00,#00,#00,#00,#00,#00,#ff,#ff + db #00,#00,#00,#00,#00,#00,#01,#00 + db #00,#00,#00,#00,#00,#00,#ff,#ff + db #00,#00,#00,#00,#00,#00,#01,#00 + db #00,#00,#00,#00,#00,#00,#ff,#ff + db #00,#00,#00,#00,#00,#00,#01,#00 + db #00,#00,#00,#00,#00,#00,#ff,#ff + db #00,#00,#00,#00,#00,#00,#0a,#0a + db #0b,#0b,#0c,#0c,#0b,#0b,#0c,#0c + db #0d,#0d,#0c,#0c,#0b,#0b,#0c,#0c + db #0d,#0d,#0c,#0c,#0b,#0b,#0c,#0c + db #0d,#0d,#0c,#0c,#0b,#0b,#00,#00 + 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,#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,#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,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#0f,#0e + db #0d,#0d,#0d,#0c,#0c,#0c,#0c,#0b + db #0b,#0b,#0b,#0a,#0a,#0a,#09,#09 + db #09,#08,#08,#07,#07,#06,#05,#04 + db #03,#02,#01,#00,#00,#00,#0b,#0b + db #0b,#0a,#0a,#0a,#09,#09,#09,#08 + db #08,#07,#07,#06,#06,#05,#04,#03 + db #01,#00,#00,#00,#00,#00,#00,#00 + db #00,#00,#00,#00,#00,#00,#02,#01 + 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,#00,#00,#00,#00,#00,#00,#0c + db #18,#00,#0c,#18,#00,#0c,#18,#00 + db #0c,#18,#00,#0c,#18,#00,#0c,#18 + db #00,#0c,#18,#00,#0c,#18,#00,#0c + db #18,#00,#0c,#18,#00,#0c,#00,#ba + db #89,#00,#ba,#89,#00,#ba,#89,#00 + db #ba,#89,#00,#ba,#89,#00,#3b,#8a + db #00,#bc,#8a,#00,#3b,#8a,#00,#bc + db #8a,#00,#ba,#89,#00,#ba,#89,#00 + db #ba,#89,#00,#ba,#89,#00,#ba,#89 + db #00,#ba,#89,#00,#ba,#89,#80,#21 + db #89,#00,#3d,#8b,#00,#3d,#8b,#00 + db #40,#8b,#00,#80,#8b,#00,#80,#8b + db #00,#b4,#8b,#00,#e5,#8b,#00,#b4 + db #8b,#00,#e5,#8b,#00,#16,#8c,#00 + db #16,#8c,#00,#3d,#8b,#00,#56,#8c + db #00,#9d,#8c,#00,#56,#8c,#00,#9d + db #8c,#80,#54,#89,#00,#d0,#8c,#00 + db #d0,#8c,#00,#d0,#8c,#00,#d0,#8c + db #00,#d0,#8c,#00,#52,#8d,#00,#d4 + db #8d,#00,#52,#8d,#00,#d4,#8d,#00 + db #d0,#8c,#00,#d0,#8c,#00,#d0,#8c + db #00,#d0,#8c,#00,#d0,#8c,#00,#d0 + db #8c,#00,#d0,#8c,#80,#87,#89,#49 + db #6f,#24,#31,#51,#10,#b1,#50,#49 + db #6f,#24,#31,#51,#10,#b1,#50,#49 + db #6f,#24,#31,#51,#10,#b1,#50,#49 + db #6f,#24,#31,#51,#10,#b1,#50,#45 + db #6f,#24,#2d,#51,#10,#ad,#50,#45 + db #6f,#24,#2d,#51,#10,#ad,#50,#45 + db #6f,#24,#2d,#51,#10,#ad,#50,#45 + db #6f,#24,#2d,#51,#10,#ad,#50,#47 + db #6f,#24,#2f,#51,#10,#af,#50,#47 + db #6f,#24,#2f,#51,#10,#af,#50,#47 + db #6f,#24,#2f,#51,#10,#af,#50,#47 + db #6f,#24,#2f,#51,#10,#af,#50,#44 + db #6f,#24,#2c,#51,#10,#ac,#50,#44 + db #6f,#24,#2c,#51,#10,#ac,#50,#44 + db #6f,#24,#2c,#51,#10,#ac,#50,#44 + db #6f,#24,#2c,#51,#10,#ac,#50,#ff + db #49,#6f,#24,#31,#51,#10,#b1,#50 + db #49,#6f,#24,#31,#51,#10,#b1,#50 + db #49,#6f,#24,#31,#51,#10,#b1,#50 + db #49,#6f,#24,#31,#51,#10,#b1,#50 + db #4e,#6f,#24,#36,#51,#10,#b6,#50 + db #4e,#6f,#24,#36,#51,#10,#b6,#50 + db #4e,#6f,#24,#36,#51,#10,#b6,#50 + db #4e,#6f,#24,#36,#51,#10,#b6,#50 + db #47,#6f,#24,#2f,#51,#10,#af,#50 + db #47,#6f,#24,#2f,#51,#10,#af,#50 + db #47,#6f,#24,#2f,#51,#10,#af,#50 + db #47,#6f,#24,#2f,#51,#10,#af,#50 + db #4c,#6f,#24,#34,#51,#10,#b4,#50 + db #4c,#6f,#24,#34,#51,#10,#b4,#50 + db #4c,#6f,#24,#34,#51,#10,#b4,#50 + db #4c,#6f,#24,#34,#51,#10,#b4,#50 + db #ff,#45,#6f,#24,#2d,#51,#10,#ad + db #50,#45,#6f,#24,#2d,#51,#10,#ad + db #50,#45,#6f,#24,#2d,#51,#10,#ad + db #50,#45,#6f,#24,#2d,#51,#10,#ad + db #50,#4b,#6f,#24,#33,#51,#10,#b3 + db #50,#4b,#6f,#24,#33,#51,#10,#b3 + db #50,#4b,#6f,#24,#33,#51,#10,#b3 + db #50,#4b,#6f,#24,#33,#51,#10,#b3 + db #50,#44,#6f,#24,#2c,#51,#10,#ac + db #50,#44,#6f,#24,#2c,#51,#10,#ac + db #50,#44,#6f,#24,#2c,#51,#10,#ac + db #50,#44,#6f,#24,#2c,#51,#10,#ac + db #50,#49,#6f,#24,#31,#51,#10,#b1 + db #50,#49,#6f,#24,#31,#51,#10,#b1 + db #50,#49,#6f,#24,#31,#51,#10,#b1 + db #50,#49,#6f,#24,#31,#51,#10,#b1 + db #50,#ff,#fe,#40,#ff,#55,#41,#60 + db #55,#40,#04,#55,#40,#02,#57,#40 + db #02,#58,#40,#02,#51,#40,#06,#51 + db #40,#04,#51,#40,#02,#55,#40,#02 + db #53,#40,#02,#4e,#40,#06,#4e,#40 + db #04,#4e,#40,#02,#50,#40,#02,#51 + db #40,#02,#53,#40,#04,#51,#40,#04 + db #53,#40,#02,#51,#40,#02,#50,#40 + db #02,#4e,#40,#02,#ff,#55,#40,#06 + db #55,#40,#04,#58,#40,#02,#57,#40 + db #02,#53,#40,#02,#51,#40,#06,#51 + db #40,#04,#51,#40,#02,#53,#40,#02 + db #55,#40,#02,#4e,#40,#06,#4e,#40 + db #04,#4e,#40,#04,#50,#40,#02,#51 + db #40,#06,#50,#40,#06,#51,#40,#04 + db #ff,#49,#40,#0e,#47,#40,#02,#45 + db #40,#04,#44,#40,#02,#42,#40,#04 + db #44,#40,#02,#45,#40,#02,#47,#40 + db #02,#47,#40,#0e,#45,#40,#02,#44 + db #40,#04,#42,#40,#02,#40,#40,#04 + db #42,#40,#02,#44,#40,#02,#45,#40 + db #02,#ff,#45,#40,#0e,#44,#40,#02 + db #42,#40,#04,#40,#40,#02,#3f,#40 + db #04,#40,#40,#02,#42,#40,#02,#44 + db #40,#02,#44,#40,#0e,#42,#40,#02 + db #40,#40,#04,#3f,#40,#02,#3d,#40 + db #04,#3f,#40,#02,#40,#40,#02,#42 + db #40,#02,#ff,#58,#40,#02,#57,#40 + db #04,#55,#40,#04,#57,#40,#02,#58 + db #40,#02,#5a,#40,#02,#5a,#40,#02 + db #58,#40,#04,#57,#40,#04,#58,#40 + db #02,#5a,#40,#04,#5a,#40,#02,#58 + db #40,#04,#57,#40,#04,#58,#40,#02 + db #5a,#40,#04,#5c,#40,#02,#5a,#40 + db #04,#58,#40,#04,#57,#40,#02,#55 + db #40,#04,#ff,#49,#50,#02,#49,#50 + db #02,#49,#50,#03,#49,#50,#02,#49 + db #50,#02,#c9,#50,#4b,#50,#02,#4c + db #50,#02,#4e,#50,#04,#4c,#50,#04 + db #4b,#50,#04,#49,#50,#04,#47,#50 + db #02,#47,#50,#02,#47,#50,#03,#47 + db #50,#02,#47,#50,#02,#c7,#50,#49 + db #50,#02,#4b,#50,#02,#4c,#50,#04 + db #4b,#50,#04,#49,#50,#04,#4b,#50 + db #04,#ff,#49,#50,#02,#49,#50,#02 + db #49,#50,#03,#49,#50,#02,#c9,#50 + db #4c,#40,#02,#4b,#40,#02,#47,#40 + db #02,#45,#40,#10,#4c,#40,#04,#4b + db #40,#02,#49,#40,#0a,#4e,#40,#04 + db #4c,#40,#02,#4b,#40,#04,#4c,#40 + db #02,#4b,#40,#04,#ff,#34,#31,#20 + db #50,#8f,#14,#cc,#60,#49,#21,#20 + db #50,#8f,#14,#cc,#60,#34,#31,#20 + db #50,#8f,#14,#cc,#60,#49,#21,#20 + db #50,#8f,#14,#cc,#60,#34,#31,#20 + db #4c,#8f,#14,#c9,#60,#49,#21,#20 + db #4c,#8f,#14,#c9,#60,#34,#31,#20 + db #4c,#8f,#14,#c9,#60,#49,#21,#20 + db #4c,#8f,#14,#c9,#60,#34,#31,#20 + db #4e,#8f,#14,#cb,#60,#49,#21,#20 + db #4e,#8f,#14,#cb,#60,#34,#31,#20 + db #4e,#8f,#14,#cb,#60,#49,#21,#20 + db #4e,#8f,#14,#cb,#60,#34,#31,#20 + db #4b,#8f,#14,#c7,#60,#49,#21,#20 + db #4b,#8f,#14,#c7,#60,#34,#31,#20 + db #4b,#8f,#14,#c7,#60,#49,#21,#20 + db #4b,#8f,#14,#49,#21,#10,#ff,#34 + db #31,#20,#50,#6f,#14,#cc,#60,#49 + db #21,#20,#50,#6f,#14,#cc,#60,#34 + db #31,#20,#50,#6f,#14,#cc,#60,#49 + db #21,#20,#50,#6f,#14,#cc,#60,#34 + db #31,#20,#55,#6f,#14,#d1,#60,#49 + db #21,#20,#55,#6f,#14,#d1,#60,#34 + db #31,#20,#55,#6f,#14,#d1,#60,#49 + db #21,#20,#55,#6f,#14,#d1,#60,#34 + db #31,#20,#4e,#6f,#14,#cb,#60,#49 + db #21,#20,#4e,#6f,#14,#cb,#60,#34 + db #31,#20,#4e,#6f,#14,#cb,#60,#49 + db #21,#20,#4e,#6f,#14,#cb,#60,#34 + db #31,#20,#53,#6f,#14,#d0,#60,#49 + db #21,#20,#53,#6f,#14,#d0,#60,#34 + db #31,#20,#53,#6f,#14,#d0,#60,#49 + db #21,#20,#53,#6f,#14,#49,#21,#10 + db #ff,#34,#31,#20,#4c,#6f,#14,#c9 + db #60,#49,#21,#20,#4c,#6f,#14,#c9 + db #60,#34,#31,#20,#4c,#6f,#14,#c9 + db #60,#49,#21,#20,#4c,#6f,#14,#c9 + db #60,#34,#31,#20,#51,#6f,#14,#ce + db #60,#49,#21,#20,#51,#6f,#14,#ce + db #60,#34,#31,#20,#51,#6f,#14,#ce + db #60,#49,#21,#20,#51,#6f,#14,#ce + db #60,#34,#31,#20,#4b,#8f,#14,#c7 + db #60,#49,#21,#20,#4b,#8f,#14,#c7 + db #60,#34,#31,#20,#4b,#8f,#14,#c7 + db #60,#49,#21,#20,#4b,#8f,#14,#49 + db #21,#10,#34,#31,#20,#50,#8f,#14 + db #cc,#60,#49,#21,#20,#50,#8f,#14 + db #cc,#60,#34,#31,#20,#50,#8f,#14 + db #cc,#60,#49,#21,#20,#50,#8f,#14 + db #49,#21,#10,#ff +; +.music_info + db "Cyborgdemo (19xx)(Public Domain)()",0 + db "ST-128 Module",0 + + read "music_end.asm"