diff --git a/snes/Chunsoft/Fushigi no Dungeon - Fuurai no Shiren ($05b0).bin b/snes/Chunsoft/Later Takenori Yamamori/Fushigi no Dungeon - Fuurai no Shiren ($05b0).bin similarity index 100% rename from snes/Chunsoft/Fushigi no Dungeon - Fuurai no Shiren ($05b0).bin rename to snes/Chunsoft/Later Takenori Yamamori/Fushigi no Dungeon - Fuurai no Shiren ($05b0).bin diff --git a/snes/Chunsoft/Fushigi no Dungeon - Fuurai no Shiren.s b/snes/Chunsoft/Later Takenori Yamamori/Fushigi no Dungeon - Fuurai no Shiren.s similarity index 99% rename from snes/Chunsoft/Fushigi no Dungeon - Fuurai no Shiren.s rename to snes/Chunsoft/Later Takenori Yamamori/Fushigi no Dungeon - Fuurai no Shiren.s index 92b7f3fa..d15d79aa 100644 --- a/snes/Chunsoft/Fushigi no Dungeon - Fuurai no Shiren.s +++ b/snes/Chunsoft/Later Takenori Yamamori/Fushigi no Dungeon - Fuurai no Shiren.s @@ -980,4 +980,4 @@ SPC_0c94: .db $44,$44,$44,$44,$C3,$CC,$CC,$CC .db $CC,$CC,$CC,$CC,$CC,$C2,$77,$66 .db $55,$44,$33,$22,$11,$00,$C3,$FF - .db $EE,$DD,$CC,$BB,$AA,$99,$00 \ No newline at end of file + .db $EE,$DD,$CC,$BB,$AA,$99,$00 diff --git a/snes/Climax (Images Software)/Theme Park ($0300).bin b/snes/Climax (Images Software)/Theme Park ($0300).bin new file mode 100644 index 00000000..fcd7906a Binary files /dev/null and b/snes/Climax (Images Software)/Theme Park ($0300).bin differ diff --git a/snes/Climax (Images Software)/Theme Park.s b/snes/Climax (Images Software)/Theme Park.s new file mode 100644 index 00000000..9a8d89e8 --- /dev/null +++ b/snes/Climax (Images Software)/Theme Park.s @@ -0,0 +1,1557 @@ +0300: 20 clrp ; clear sound ram +0301: 8f 6c f2 mov $f2,#$6c ; dsp envelope +0304: 8f 38 f3 mov $f3,#$38 +0307: 8f 4d f2 mov $f2,#$4d ; disable echo +030a: 8f 00 f3 mov $f3,#$00 +030d: 8f 6d f2 mov $f2,#$6d ; echo buffer +0310: 8f 60 f3 mov $f3,#$60 +0313: 8f 7d f2 mov $f2,#$7d ; echo delay +0316: 8f 00 f3 mov $f3,#$00 +0319: 8f 00 f4 mov $f4,#$00 ; port 0 +031c: 8f e7 f5 mov $f5,#$e7 ; port 1 +031f: cd 70 mov x,#$70 +0321: e8 00 mov a,#$00 +0323: d4 00 mov $00+x,a +0325: 1d dec x +0326: c8 ff cmp x,#$ff +0328: d0 f9 bne $0323 +032a: cd 07 mov x,#$07 +032c: e8 00 mov a,#$00 +032e: d4 65 mov $65+x,a +0330: 1d dec x +0331: 10 fb bpl $032e +0333: cd 7f mov x,#$7f +0335: e8 00 mov a,#$00 +0337: d5 bb 0f mov $0fbb+x,a +033a: 1d dec x +033b: 10 fa bpl $0337 +033d: 8f 00 29 mov $29,#$00 +0340: 8f 3b 2b mov $2b,#$3b +0343: 8f 10 2c mov $2c,#$10 +0346: 8f 00 6d mov $6d,#$00 +0349: 8f 00 34 mov $34,#$00 +034c: 8f ff 23 mov $23,#$ff +034f: 3f fd 07 call $07fd +0352: 8f 7c f2 mov $f2,#$7c +0355: 8f 00 f3 mov $f3,#$00 +0358: e8 46 mov a,#$46 +035a: c4 f7 mov $f7,a +035c: e8 55 mov a,#$55 +035e: c4 f5 mov $f5,a +0360: e8 43 mov a,#$43 +0362: c4 f6 mov $f6,a +0364: e4 f4 mov a,$f4 +0366: 68 4b cmp a,#$4b +0368: d0 ee bne $0358 +036a: c4 27 mov $27,a +036c: c4 f7 mov $f7,a +036e: 8d fa mov y,#$fa +0370: cd ff mov x,#$ff +0372: 1d dec x +0373: c8 00 cmp x,#$00 +0375: d0 fb bne $0372 +0377: dc dec y +0378: ad 00 cmp y,#$00 +037a: d0 f4 bne $0370 + +037c: 3f d5 0d call $0dd5 +037f: 60 clrc +0380: 1c asl a +0381: 5d mov x,a +0382: 1f 54 04 jmp ($0454+x) + +0385: 3f 11 06 call $0611 +0388: 2f f2 bra $037c + +038a: 3f d5 0d call $0dd5 +038d: 2d push a +038e: 3f d5 0d call $0dd5 +0391: 2d push a +0392: e4 6d mov a,$6d +0394: d0 03 bne $0399 +0396: 3f 8a 07 call $078a +0399: ae pop a +039a: 68 00 cmp a,#$00 +039c: f0 1a beq $03b8 +039e: c4 34 mov $34,a +03a0: 8f 3f 36 mov $36,#$3f +03a3: 8f 02 35 mov $35,#$02 +03a6: 8f 00 32 mov $32,#$00 +03a9: 8f 00 31 mov $31,#$00 +03ac: 8f 0c f2 mov $f2,#$0c +03af: 8f 00 f3 mov $f3,#$00 +03b2: 8f 1c f2 mov $f2,#$1c +03b5: 8f 00 f3 mov $f3,#$00 +03b8: ae pop a +03b9: c4 05 mov $05,a +03bb: 8f 01 17 mov $17,#$01 +03be: 2f bc bra $037c + +03c0: 3f 63 08 call $0863 +03c3: 2f b7 bra $037c + +03c5: 8f 7c f2 mov $f2,#$7c +03c8: e4 f3 mov a,$f3 +03ca: c4 f7 mov $f7,a +03cc: 3f 7e 04 call $047e +03cf: 3f 0a 07 call $070a +03d2: e4 17 mov a,$17 +03d4: f0 11 beq $03e7 +03d6: 3f 70 08 call $0870 +03d9: e4 33 mov a,$33 +03db: f0 03 beq $03e0 +03dd: 3f 75 05 call $0575 +03e0: e4 34 mov a,$34 +03e2: f0 03 beq $03e7 +03e4: 3f 59 05 call $0559 +03e7: 2f 93 bra $037c + +03e9: 3f 93 06 call $0693 +03ec: 2f 8e bra $037c + +03ee: 3f 3f 06 call $063f +03f1: 2f 89 bra $037c + +03f3: 3f d3 06 call $06d3 +03f6: 2f 84 bra $037c + +03f8: e4 6d mov a,$6d +03fa: d0 09 bne $0405 + +03fc: 8f 00 29 mov $29,#$00 +03ff: 8f 3b 2b mov $2b,#$3b +0402: 8f 10 2c mov $2c,#$10 +0405: 2f b9 bra $03c0 + +0407: 3f d5 0d call $0dd5 +040a: 2d push a +040b: 5d mov x,a +040c: e8 00 mov a,#$00 +040e: d4 65 mov $65+x,a +0410: ae pop a +0411: 48 ff eor a,#$ff +0413: 60 clrc +0414: 88 08 adc a,#$08 +0416: 3f 33 0d call $0d33 +0419: 5f 7c 03 jmp $037c + +041c: 3f 62 07 call $0762 +041f: 5f 7c 03 jmp $037c + +0422: 3f 6d 07 call $076d +0425: 5f 7c 03 jmp $037c + +0428: 3f d5 0d call $0dd5 +042b: c4 33 mov $33,a +042d: 5f 7c 03 jmp $037c + +0430: 3f 9e 05 call $059e +0433: 5f 7c 03 jmp $037c + +0436: 3f d5 0d call $0dd5 +0439: c4 15 mov $15,a +043b: 3f d5 0d call $0dd5 +043e: c4 16 mov $16,a +0440: 3f 8a 07 call $078a +0443: 5f 7c 03 jmp $037c + +0446: 3f b6 05 call $05b6 +0449: 5f 7c 03 jmp $037c + +044c: 3f d5 0d call $0dd5 +044f: c4 23 mov $23,a +0451: 5f 7c 03 jmp $037c + +0454: dw $037c +0456: dw $0385 +0458: dw $038a +045a: dw $03c0 +045c: dw $03c5 +045e: dw $03e9 +0460: dw $03f3 +0462: dw $03f8 +0464: dw $0407 +0466: dw $041c +0468: dw $0422 +046a: dw $0428 +046c: dw $0430 +046e: dw $0436 +0470: dw $0446 +0472: dw $0496 +0474: dw $044c +0476: dw $04b6 +0478: dw $053a +047a: dw $04d6 +047c: dw $03ee + +047e: cd 07 mov x,#$07 +0480: 8d 08 mov y,#$08 +0482: 3c rol a +0483: 90 0c bcc $0491 +0485: 2d push a +0486: f4 65 mov a,$65+x +0488: 68 00 cmp a,#$00 +048a: f0 04 beq $0490 +048c: e8 00 mov a,#$00 +048e: d4 65 mov $65+x,a +0490: ae pop a +0491: 1d dec x +0492: dc dec y +0493: d0 ed bne $0482 +0495: 6f ret + +0496: 3f d5 0d call $0dd5 +0499: 2d push a +049a: 48 ff eor a,#$ff +049c: 60 clrc +049d: 88 08 adc a,#$08 +049f: 5d mov x,a +04a0: e8 01 mov a,#$01 +04a2: d4 5b mov $5b+x,a +04a4: ae pop a +04a5: 1c asl a +04a6: 1c asl a +04a7: 5d mov x,a +04a8: 8d 04 mov y,#$04 +04aa: 3f d5 0d call $0dd5 +04ad: d4 3b mov $3b+x,a +04af: 3d inc x +04b0: dc dec y +04b1: d0 f7 bne $04aa +04b3: 5f 7c 03 jmp $037c + +04b6: 3f d5 0d call $0dd5 +04b9: c4 12 mov $12,a +04bb: 3f d5 0d call $0dd5 +04be: c4 13 mov $13,a +04c0: 04 12 or a,$12 +04c2: f0 0d beq $04d1 +04c4: 60 clrc +04c5: e4 12 mov a,$12 +04c7: 88 3b adc a,#$3b +04c9: c4 6e mov $6e,a +04cb: e4 13 mov a,$13 +04cd: 88 10 adc a,#$10 +04cf: c4 6f mov $6f,a +04d1: c4 6d mov $6d,a +04d3: 5f 7c 03 jmp $037c + +04d6: 3f d5 0d call $0dd5 +04d9: c4 25 mov $25,a +04db: 3f d5 0d call $0dd5 +04de: c4 26 mov $26,a +04e0: 60 clrc +04e1: e4 6e mov a,$6e +04e3: c4 12 mov $12,a +04e5: c4 10 mov $10,a +04e7: 84 25 adc a,$25 +04e9: c4 2b mov $2b,a +04eb: e4 6f mov a,$6f +04ed: c4 13 mov $13,a +04ef: c4 11 mov $11,a +04f1: 84 26 adc a,$26 +04f3: c4 2c mov $2c,a +04f5: 3f e4 0d call $0de4 +04f8: 8d 00 mov y,#$00 +04fa: f7 10 mov a,($10)+y +04fc: 5d mov x,a +04fd: c4 29 mov $29,a +04ff: c4 2a mov $2a,a +0501: 60 clrc +0502: e4 10 mov a,$10 +0504: 88 01 adc a,#$01 +0506: c4 10 mov $10,a +0508: e4 11 mov a,$11 +050a: 88 00 adc a,#$00 +050c: c4 11 mov $11,a +050e: 8d 00 mov y,#$00 +0510: 8f 00 12 mov $12,#$00 +0513: 8f 02 13 mov $13,#$02 +0516: 60 clrc +0517: f7 10 mov a,($10)+y +0519: 84 10 adc a,$10 +051b: d7 12 mov ($12)+y,a +051d: fc inc y +051e: f7 10 mov a,($10)+y +0520: 84 11 adc a,$11 +0522: d7 12 mov ($12)+y,a +0524: fc inc y +0525: 60 clrc +0526: f7 10 mov a,($10)+y +0528: 84 10 adc a,$10 +052a: d7 12 mov ($12)+y,a +052c: fc inc y +052d: f7 10 mov a,($10)+y +052f: 84 11 adc a,$11 +0531: d7 12 mov ($12)+y,a +0533: fc inc y +0534: 1d dec x +0535: d0 df bne $0516 +0537: 5f 7c 03 jmp $037c + +053a: 3f d5 0d call $0dd5 +053d: c4 25 mov $25,a +053f: 3f d5 0d call $0dd5 +0542: c4 26 mov $26,a +0544: e8 3b mov a,#$3b +0546: c4 12 mov $12,a +0548: c4 15 mov $15,a +054a: e8 10 mov a,#$10 +054c: c4 13 mov $13,a +054e: c4 16 mov $16,a +0550: 3f e4 0d call $0de4 +0553: 3f 8a 07 call $078a +0556: 5f 7c 03 jmp $037c + +0559: ab 31 inc $31 +055b: ab 31 inc $31 +055d: ab 32 inc $32 +055f: ab 32 inc $32 +0561: 8b 36 dec $36 +0563: 10 03 bpl $0568 +0565: 8f 00 34 mov $34,#$00 +0568: e4 31 mov a,$31 +056a: 8f 0c f2 mov $f2,#$0c +056d: c4 f3 mov $f3,a +056f: 8f 1c f2 mov $f2,#$1c +0572: c4 f3 mov $f3,a +0574: 6f ret + +0575: e4 31 mov a,$31 +0577: f0 09 beq $0582 +0579: 80 setc +057a: a4 33 sbc a,$33 +057c: b0 02 bcs $0580 +057e: e8 00 mov a,#$00 +0580: c4 31 mov $31,a +0582: e4 32 mov a,$32 +0584: f0 09 beq $058f +0586: 80 setc +0587: a4 33 sbc a,$33 +0589: b0 02 bcs $058d +058b: e8 00 mov a,#$00 +058d: c4 32 mov $32,a +058f: e4 31 mov a,$31 +0591: 8f 0c f2 mov $f2,#$0c +0594: c4 f3 mov $f3,a +0596: e4 32 mov a,$32 +0598: 8f 1c f2 mov $f2,#$1c +059b: c4 f3 mov $f3,a +059d: 6f ret + +059e: 3f d5 0d call $0dd5 +05a1: c4 12 mov $12,a +05a3: 3f d5 0d call $0dd5 +05a6: c4 13 mov $13,a +05a8: 3f d5 0d call $0dd5 +05ab: c4 25 mov $25,a +05ad: 3f d5 0d call $0dd5 +05b0: c4 26 mov $26,a +05b2: 3f e4 0d call $0de4 +05b5: 6f ret + +05b6: 3f d5 0d call $0dd5 +05b9: c4 37 mov $37,a +05bb: 3f d5 0d call $0dd5 +05be: c4 38 mov $38,a +05c0: 3f d5 0d call $0dd5 +05c3: c4 25 mov $25,a +05c5: 3f d5 0d call $0dd5 +05c8: c4 26 mov $26,a +05ca: 3f d5 0d call $0dd5 +05cd: c4 39 mov $39,a +05cf: 3f d5 0d call $0dd5 +05d2: c4 3a mov $3a,a +05d4: 8d 00 mov y,#$00 +05d6: 3f d5 0d call $0dd5 +05d9: 68 01 cmp a,#$01 +05db: f0 19 beq $05f6 +05dd: f7 37 mov a,($37)+y +05df: d7 39 mov ($39)+y,a +05e1: fc inc y +05e2: d0 04 bne $05e8 +05e4: ab 38 inc $38 +05e6: ab 3a inc $3a +05e8: 80 setc +05e9: b8 01 25 sbc $25,#$01 +05ec: b8 00 26 sbc $26,#$00 +05ef: e4 25 mov a,$25 +05f1: 04 26 or a,$26 +05f3: d0 e8 bne $05dd +05f5: 6f ret + +05f6: f7 37 mov a,($37)+y +05f8: d7 39 mov ($39)+y,a +05fa: dc dec y +05fb: ad ff cmp y,#$ff +05fd: d0 04 bne $0603 +05ff: 8b 38 dec $38 +0601: 8b 3a dec $3a +0603: 80 setc +0604: b8 01 25 sbc $25,#$01 +0607: b8 00 26 sbc $26,#$00 +060a: e4 25 mov a,$25 +060c: 04 26 or a,$26 +060e: d0 e6 bne $05f6 +0610: 6f ret + +0611: 3f d5 0d call $0dd5 +0614: c4 25 mov $25,a +0616: 3f d5 0d call $0dd5 +0619: c4 26 mov $26,a +061b: 60 clrc +061c: e8 3b mov a,#$3b +061e: 84 25 adc a,$25 +0620: c4 2b mov $2b,a +0622: c4 2d mov $2d,a +0624: e8 10 mov a,#$10 +0626: 84 26 adc a,$26 +0628: c4 2c mov $2c,a +062a: c4 2e mov $2e,a +062c: 8f 3b 12 mov $12,#$3b +062f: 8f 10 13 mov $13,#$10 +0632: 3f e4 0d call $0de4 +0635: 8f 3b 15 mov $15,#$3b +0638: 8f 10 16 mov $16,#$10 +063b: 3f 8a 07 call $078a +063e: 6f ret + +063f: 3f d5 0d call $0dd5 +0642: 2d push a +0643: 60 clrc +0644: 84 29 adc a,$29 +0646: c4 2a mov $2a,a +0648: ae pop a +0649: 1c asl a +064a: 5d mov x,a +064b: 3f d5 0d call $0dd5 +064e: c4 25 mov $25,a +0650: 3f d5 0d call $0dd5 +0653: c4 26 mov $26,a +0655: e4 29 mov a,$29 +0657: 1c asl a +0658: 1c asl a +0659: c4 12 mov $12,a +065b: 8f 02 13 mov $13,#$02 +065e: 8d 00 mov y,#$00 +0660: 3f d5 0d call $0dd5 +0663: c4 2f mov $2f,a +0665: 3f d5 0d call $0dd5 +0668: c4 30 mov $30,a +066a: 60 clrc +066b: e4 2f mov a,$2f +066d: 84 2b adc a,$2b +066f: d7 12 mov ($12)+y,a +0671: fc inc y +0672: e4 30 mov a,$30 +0674: 84 2c adc a,$2c +0676: d7 12 mov ($12)+y,a +0678: fc inc y +0679: 1d dec x +067a: d0 e4 bne $0660 +067c: 60 clrc +067d: e4 2b mov a,$2b +067f: 84 25 adc a,$25 +0681: c4 2d mov $2d,a +0683: e4 2c mov a,$2c +0685: 84 26 adc a,$26 +0687: c4 2e mov $2e,a +0689: fa 2b 12 mov ($12),($2b) +068c: fa 2c 13 mov ($13),($2c) +068f: 3f e4 0d call $0de4 +0692: 6f ret + +0693: 3f d5 0d call $0dd5 +0696: 1c asl a +0697: 5d mov x,a +0698: 3f d5 0d call $0dd5 +069b: c4 25 mov $25,a +069d: 3f d5 0d call $0dd5 +06a0: c4 26 mov $26,a +06a2: e4 2a mov a,$2a +06a4: 1c asl a +06a5: 1c asl a +06a6: c4 12 mov $12,a +06a8: 8f 02 13 mov $13,#$02 +06ab: 8d 00 mov y,#$00 +06ad: 3f d5 0d call $0dd5 +06b0: c4 2f mov $2f,a +06b2: 3f d5 0d call $0dd5 +06b5: c4 30 mov $30,a +06b7: 60 clrc +06b8: e4 2f mov a,$2f +06ba: 84 2d adc a,$2d +06bc: d7 12 mov ($12)+y,a +06be: fc inc y +06bf: e4 30 mov a,$30 +06c1: 84 2e adc a,$2e +06c3: d7 12 mov ($12)+y,a +06c5: fc inc y +06c6: 1d dec x +06c7: d0 e4 bne $06ad +06c9: fa 2d 12 mov ($12),($2d) +06cc: fa 2e 13 mov ($13),($2e) +06cf: 3f e4 0d call $0de4 +06d2: 6f ret + +06d3: 3f d5 0d call $0dd5 +06d6: 9f xcn a +06d7: fd mov y,a +06d8: 3f d5 0d call $0dd5 +06db: 76 bb 0f cmp a,$0fbb+y +06de: 30 1a bmi $06fa +06e0: d6 bb 0f mov $0fbb+y,a +06e3: fc inc y +06e4: cd 04 mov x,#$04 +06e6: 3f d5 0d call $0dd5 +06e9: d6 bb 0f mov $0fbb+y,a +06ec: fc inc y +06ed: 1d dec x +06ee: d0 f6 bne $06e6 +06f0: 3f d5 0d call $0dd5 +06f3: 60 clrc +06f4: 84 29 adc a,$29 +06f6: d6 bb 0f mov $0fbb+y,a +06f9: 6f ret + +06fa: 3f d5 0d call $0dd5 +06fd: 3f d5 0d call $0dd5 +0700: 3f d5 0d call $0dd5 +0703: 3f d5 0d call $0dd5 +0706: 3f d5 0d call $0dd5 +0709: 6f ret + +070a: 8f 80 20 mov $20,#$80 +070d: 8d 70 mov y,#$70 +070f: f6 bb 0f mov a,$0fbb+y +0712: 68 00 cmp a,#$00 +0714: f0 3c beq $0752 +0716: 6d push y +0717: 2d push a +0718: dd mov a,y +0719: 9f xcn a +071a: 5d mov x,a +071b: ae pop a +071c: 74 65 cmp a,$65+x +071e: 30 3f bmi $075f +0720: d4 65 mov $65+x,a +0722: e8 00 mov a,#$00 +0724: d6 bb 0f mov $0fbb+y,a +0727: 8f 5c f2 mov $f2,#$5c +072a: fa 20 f3 mov ($f3),($20) +072d: cd 05 mov x,#$05 +072f: f6 bc 0f mov a,$0fbc+y +0732: cb f2 mov $f2,y +0734: c4 f3 mov $f3,a +0736: fc inc y +0737: 1d dec x +0738: d0 f5 bne $072f +073a: cb f2 mov $f2,y +073c: 8f ff f3 mov $f3,#$ff +073f: fc inc y +0740: cb f2 mov $f2,y +0742: 8f e0 f3 mov $f3,#$e0 +0745: 8f 4c f2 mov $f2,#$4c +0748: fa 20 f3 mov ($f3),($20) +074b: 8f 5c f2 mov $f2,#$5c +074e: 8f 00 f3 mov $f3,#$00 +0751: ee pop y +0752: 60 clrc +0753: 6b 20 ror $20 +0755: dd mov a,y +0756: 9f xcn a +0757: 9c dec a +0758: 30 04 bmi $075e +075a: 9f xcn a +075b: fd mov y,a +075c: 2f b1 bra $070f +075e: 6f ret + +075f: ee pop y +0760: 2f f0 bra $0752 +0762: 3f d5 0d call $0dd5 +0765: 60 clrc +0766: 1c asl a +0767: 1c asl a +0768: 1c asl a +0769: 1c asl a +076a: 5d mov x,a +076b: 2f 0d bra $077a +076d: 3f d5 0d call $0dd5 +0770: 60 clrc +0771: 1c asl a +0772: 1c asl a +0773: 1c asl a +0774: 1c asl a +0775: 5d mov x,a +0776: 3d inc x +0777: 3d inc x +0778: 2f 00 bra $077a +077a: 3f d5 0d call $0dd5 +077d: d8 f2 mov $f2,x +077f: c4 f3 mov $f3,a +0781: 3d inc x +0782: 3f d5 0d call $0dd5 +0785: d8 f2 mov $f2,x +0787: c4 f3 mov $f3,a +0789: 6f ret + +078a: 8d 13 mov y,#$13 +078c: cd 0b mov x,#$0b +078e: f7 15 mov a,($15)+y +0790: d4 06 mov $06+x,a +0792: 1d dec x +0793: dc dec y +0794: 10 f8 bpl $078e +0796: ba 15 movw ya,$15 +0798: 7a 06 addw ya,$06 +079a: da 06 movw $06,ya +079c: ba 15 movw ya,$15 +079e: 7a 08 addw ya,$08 +07a0: da 08 movw $08,ya +07a2: ba 15 movw ya,$15 +07a4: 7a 0a addw ya,$0a +07a6: da 0a movw $0a,ya +07a8: ba 15 movw ya,$15 +07aa: 7a 0c addw ya,$0c +07ac: da 0c movw $0c,ya +07ae: ba 15 movw ya,$15 +07b0: 7a 0e addw ya,$0e +07b2: da 0e movw $0e,ya +07b4: ba 15 movw ya,$15 +07b6: 7a 10 addw ya,$10 +07b8: da 10 movw $10,ya +07ba: e4 6d mov a,$6d +07bc: d0 3f bne $07fd +07be: 8d 00 mov y,#$00 +07c0: f7 10 mov a,($10)+y +07c2: 5d mov x,a +07c3: c4 29 mov $29,a +07c5: c4 2a mov $2a,a +07c7: 60 clrc +07c8: e4 10 mov a,$10 +07ca: 88 01 adc a,#$01 +07cc: c4 10 mov $10,a +07ce: e4 11 mov a,$11 +07d0: 88 00 adc a,#$00 +07d2: c4 11 mov $11,a +07d4: 8d 00 mov y,#$00 +07d6: 8f 00 12 mov $12,#$00 +07d9: 8f 02 13 mov $13,#$02 +07dc: 60 clrc +07dd: f7 10 mov a,($10)+y +07df: 84 10 adc a,$10 +07e1: d7 12 mov ($12)+y,a +07e3: fc inc y +07e4: f7 10 mov a,($10)+y +07e6: 84 11 adc a,$11 +07e8: d7 12 mov ($12)+y,a +07ea: fc inc y +07eb: 60 clrc +07ec: f7 10 mov a,($10)+y +07ee: 84 10 adc a,$10 +07f0: d7 12 mov ($12)+y,a +07f2: fc inc y +07f3: f7 10 mov a,($10)+y +07f5: 84 11 adc a,$11 +07f7: d7 12 mov ($12)+y,a +07f9: fc inc y +07fa: 1d dec x +07fb: d0 df bne $07dc +07fd: 8f 00 05 mov $05,#$00 +0800: 8f 00 1c mov $1c,#$00 +0803: 8f 06 01 mov $01,#$06 +0806: 8f 00 00 mov $00,#$00 +0809: 8f 00 02 mov $02,#$00 +080c: 8f 00 17 mov $17,#$00 +080f: 8f 18 24 mov $24,#$18 +0812: 8f 7f 31 mov $31,#$7f +0815: 8f 7f 32 mov $32,#$7f +0818: 8f 00 33 mov $33,#$00 +081b: 8f d6 12 mov $12,#$d6 +081e: 8f 0e 13 mov $13,#$0e +0821: 3f 42 08 call $0842 +0824: e8 00 mov a,#$00 +0826: cd 07 mov x,#$07 +0828: d4 5b mov $5b+x,a +082a: 1d dec x +082b: 10 fb bpl $0828 +082d: 6f ret + +082e: 8f 00 12 mov $12,#$00 +0831: 8f 60 13 mov $13,#$60 +0834: e8 00 mov a,#$00 +0836: 8d 00 mov y,#$00 +0838: d7 12 mov ($12)+y,a +083a: fc inc y +083b: d0 fb bne $0838 +083d: ab 13 inc $13 +083f: d0 f7 bne $0838 +0841: 6f ret + +0842: 6d push y +0843: 8d 00 mov y,#$00 +0845: f7 12 mov a,($12)+y +0847: 68 ff cmp a,#$ff +0849: f0 16 beq $0861 +084b: c4 f2 mov $f2,a +084d: 60 clrc +084e: 98 01 12 adc $12,#$01 +0851: 98 00 13 adc $13,#$00 +0854: f7 12 mov a,($12)+y +0856: c4 f3 mov $f3,a +0858: 60 clrc +0859: 98 01 12 adc $12,#$01 +085c: 98 00 13 adc $13,#$00 +085f: 2f e4 bra $0845 +0861: ee pop y +0862: 6f ret + +0863: 8f d6 12 mov $12,#$d6 +0866: 8f 0e 13 mov $13,#$0e +0869: 3f 42 08 call $0842 +086c: 8f 00 17 mov $17,#$00 +086f: 6f ret + +0870: 8b 00 dec $00 +0872: 30 02 bmi $0876 +0874: d0 03 bne $0879 +0876: 3f 71 0a call $0a71 +0879: 3f 7d 08 call $087d +087c: 6f ret + +087d: 8f 33 1e mov $1e,#$33 +0880: 8f 0f 1f mov $1f,#$0f +0883: 8f 00 14 mov $14,#$00 +0886: cd 05 mov x,#$05 +0888: 4d push x +0889: 8d 04 mov y,#$04 +088b: f7 1e mov a,($1e)+y +088d: 1c asl a +088e: 5d mov x,a +088f: 1f 51 0a jmp ($0a51+x) + +0892: fc inc y ; effect 01 - portamento up +0893: f7 1e mov a,($1e)+y +0895: 1c asl a +0896: 8d 00 mov y,#$00 +0898: 60 clrc +0899: 97 1e adc a,($1e)+y +089b: d7 1e mov ($1e)+y,a +089d: fc inc y +089e: f7 1e mov a,($1e)+y +08a0: 88 00 adc a,#$00 +08a2: d7 1e mov ($1e)+y,a +08a4: 8f 01 22 mov $22,#$01 +08a7: 5f 10 0a jmp $0a10 + +08aa: fc inc y ; effect 02 - portamento down +08ab: f7 1e mov a,($1e)+y +08ad: 1c asl a +08ae: c4 20 mov $20,a +08b0: 8d 00 mov y,#$00 +08b2: 80 setc +08b3: f7 1e mov a,($1e)+y +08b5: a4 20 sbc a,$20 +08b7: d7 1e mov ($1e)+y,a +08b9: fc inc y +08ba: f7 1e mov a,($1e)+y +08bc: a8 00 sbc a,#$00 +08be: d7 1e mov ($1e)+y,a +08c0: 8f 01 22 mov $22,#$01 +08c3: 5f 10 0a jmp $0a10 + +08c6: 8d 0f mov y,#$0f ; effect 03 - portamento to note +08c8: f7 1e mov a,($1e)+y +08ca: c4 20 mov $20,a +08cc: fc inc y +08cd: f7 1e mov a,($1e)+y +08cf: c4 21 mov $21,a +08d1: 8d 0c mov y,#$0c +08d3: f7 1e mov a,($1e)+y +08d5: f0 07 beq $08de +08d7: 68 02 cmp a,#$02 +08d9: d0 2b bne $0906 +08db: 5f 10 0a jmp $0a10 + +08de: 8d 00 mov y,#$00 +08e0: 60 clrc +08e1: f7 1e mov a,($1e)+y +08e3: 84 20 adc a,$20 +08e5: d7 1e mov ($1e)+y,a +08e7: c4 20 mov $20,a +08e9: fc inc y +08ea: f7 1e mov a,($1e)+y +08ec: 84 21 adc a,$21 +08ee: d7 1e mov ($1e)+y,a +08f0: c4 21 mov $21,a +08f2: 8d 0d mov y,#$0d +08f4: 80 setc +08f5: e4 20 mov a,$20 +08f7: b7 1e sbc a,($1e)+y +08f9: fc inc y +08fa: e4 21 mov a,$21 +08fc: b7 1e sbc a,($1e)+y +08fe: 10 28 bpl $0928 +0900: 8f 01 22 mov $22,#$01 +0903: 5f 10 0a jmp $0a10 + +0906: 8d 00 mov y,#$00 +0908: 80 setc +0909: f7 1e mov a,($1e)+y +090b: a4 20 sbc a,$20 +090d: d7 1e mov ($1e)+y,a +090f: c4 20 mov $20,a +0911: fc inc y +0912: f7 1e mov a,($1e)+y +0914: a4 21 sbc a,$21 +0916: d7 1e mov ($1e)+y,a +0918: c4 21 mov $21,a +091a: 8d 0d mov y,#$0d +091c: 80 setc +091d: e4 20 mov a,$20 +091f: b7 1e sbc a,($1e)+y +0921: fc inc y +0922: e4 21 mov a,$21 +0924: b7 1e sbc a,($1e)+y +0926: 10 d8 bpl $0900 +0928: 8d 0d mov y,#$0d +092a: f7 1e mov a,($1e)+y +092c: 8d 00 mov y,#$00 +092e: d7 1e mov ($1e)+y,a +0930: 8d 0e mov y,#$0e +0932: f7 1e mov a,($1e)+y +0934: 8d 01 mov y,#$01 +0936: d7 1e mov ($1e)+y,a +0938: 8d 0c mov y,#$0c +093a: e8 02 mov a,#$02 +093c: d7 1e mov ($1e)+y,a +093e: 8f 01 22 mov $22,#$01 +0941: 5f 10 0a jmp $0a10 + +0944: 8d 07 mov y,#$07 ; effect 04 - vibrato +0946: f7 1e mov a,($1e)+y +0948: 10 17 bpl $0961 +094a: 48 ff eor a,#$ff +094c: bc inc a +094d: c4 20 mov $20,a +094f: 8d 00 mov y,#$00 +0951: 80 setc +0952: f7 1e mov a,($1e)+y +0954: a4 20 sbc a,$20 +0956: d7 1e mov ($1e)+y,a +0958: fc inc y +0959: f7 1e mov a,($1e)+y +095b: a8 00 sbc a,#$00 +095d: d7 1e mov ($1e)+y,a +095f: 2f 0e bra $096f +0961: 8d 00 mov y,#$00 +0963: 60 clrc +0964: 97 1e adc a,($1e)+y +0966: d7 1e mov ($1e)+y,a +0968: fc inc y +0969: f7 1e mov a,($1e)+y +096b: 88 00 adc a,#$00 +096d: d7 1e mov ($1e)+y,a +096f: 8f 01 22 mov $22,#$01 +0972: 8d 06 mov y,#$06 +0974: f7 1e mov a,($1e)+y +0976: 9c dec a +0977: d7 1e mov ($1e)+y,a +0979: d0 14 bne $098f +097b: 8d 07 mov y,#$07 +097d: f7 1e mov a,($1e)+y +097f: 48 ff eor a,#$ff +0981: bc inc a +0982: d7 1e mov ($1e)+y,a +0984: 8d 05 mov y,#$05 +0986: f7 1e mov a,($1e)+y +0988: 9f xcn a +0989: 28 0f and a,#$0f +098b: 8d 06 mov y,#$06 +098d: d7 1e mov ($1e)+y,a +098f: 2f 7f bra $0a10 + +0991: fc inc y ; effect 06 - vibrato with volume slide +0992: f7 1e mov a,($1e)+y +0994: fd mov y,a +0995: 28 f0 and a,#$f0 +0997: d0 10 bne $09a9 +0999: dd mov a,y +099a: c4 20 mov $20,a +099c: 8d 02 mov y,#$02 +099e: f7 1e mov a,($1e)+y +09a0: 80 setc +09a1: a4 20 sbc a,$20 +09a3: 10 11 bpl $09b6 +09a5: e8 00 mov a,#$00 +09a7: 2f 0d bra $09b6 +09a9: 5c lsr a +09aa: 5c lsr a +09ab: 5c lsr a +09ac: 5c lsr a +09ad: 8d 02 mov y,#$02 +09af: 60 clrc +09b0: 97 1e adc a,($1e)+y +09b2: 10 02 bpl $09b6 +09b4: e8 7f mov a,#$7f +09b6: d7 1e mov ($1e)+y,a +09b8: 8f 02 22 mov $22,#$02 +09bb: 2f 53 bra $0a10 + +09bd: fc inc y ; effect 08 - panning +09be: f7 1e mov a,($1e)+y +09c0: 10 22 bpl $09e4 +09c2: 48 ff eor a,#$ff +09c4: bc inc a +09c5: c4 20 mov $20,a +09c7: 8d 08 mov y,#$08 +09c9: f7 1e mov a,($1e)+y +09cb: 60 clrc +09cc: 84 20 adc a,$20 +09ce: 30 2b bmi $09fb +09d0: 2d push a +09d1: fc inc y +09d2: f7 1e mov a,($1e)+y +09d4: 80 setc +09d5: a4 20 sbc a,$20 +09d7: 10 21 bpl $09fa +09d9: d7 1e mov ($1e)+y,a +09db: dc dec y +09dc: ae pop a +09dd: d7 1e mov ($1e)+y,a +09df: 8f 02 22 mov $22,#$02 +09e2: 2f 2c bra $0a10 +09e4: c4 20 mov $20,a +09e6: 8d 08 mov y,#$08 +09e8: f7 1e mov a,($1e)+y +09ea: 80 setc +09eb: a4 20 sbc a,$20 +09ed: 10 0c bpl $09fb +09ef: 2d push a +09f0: fc inc y +09f1: f7 1e mov a,($1e)+y +09f3: 60 clrc +09f4: 84 20 adc a,$20 +09f6: 30 02 bmi $09fa +09f8: 2f df bra $09d9 +09fa: ae pop a +09fb: 2f 13 bra $0a10 + +09fd: fc inc y ; effect 0c - set volume +09fe: f7 1e mov a,($1e)+y +0a00: 8d 02 mov y,#$02 +0a02: d7 1e mov ($1e)+y,a +0a04: e8 00 mov a,#$00 +0a06: 8d 04 mov y,#$04 +0a08: d7 1e mov ($1e)+y,a +0a0a: fc inc y +0a0b: d7 1e mov ($1e)+y,a +0a0d: 8f 02 22 mov $22,#$02 +0a10: 6b 22 ror $22 +0a12: 90 14 bcc $0a28 +0a14: 8d 00 mov y,#$00 +0a16: f8 14 mov x,$14 +0a18: 3d inc x +0a19: 3d inc x +0a1a: f7 1e mov a,($1e)+y +0a1c: d8 f2 mov $f2,x +0a1e: c4 f3 mov $f3,a +0a20: 3d inc x +0a21: fc inc y +0a22: f7 1e mov a,($1e)+y +0a24: d8 f2 mov $f2,x +0a26: c4 f3 mov $f3,a +0a28: 6b 22 ror $22 +0a2a: 90 11 bcc $0a3d +0a2c: 8d 08 mov y,#$08 +0a2e: f7 1e mov a,($1e)+y +0a30: 5d mov x,a +0a31: fc inc y +0a32: f7 1e mov a,($1e)+y +0a34: 2d push a +0a35: 8d 02 mov y,#$02 +0a37: f7 1e mov a,($1e)+y +0a39: ee pop y +0a3a: 3f 11 0d call $0d11 + +0a3d: e8 11 mov a,#$11 ; effect 0f - set speed +0a3f: 8d 00 mov y,#$00 +0a41: 7a 1e addw ya,$1e +0a43: da 1e movw $1e,ya +0a45: 60 clrc +0a46: 98 10 14 adc $14,#$10 +0a49: ce pop x +0a4a: 1d dec x +0a4b: 30 03 bmi $0a50 +0a4d: 5f 88 08 jmp $0888 +0a50: 6f ret + +; effect table (00-0f) - secondary +; (effects are based on ProTracker format) +0a51: dw $0a3d ; 00 - (same as 0f) +0a53: dw $0892 ; 01 - portamento up +0a55: dw $08aa ; 02 - portamento down +0a57: dw $08c6 ; 03 - portamento to note +0a59: dw $0944 ; 04 - vibrato +0a5b: dw $0a3d ; 05 - (same as 0f) +0a5d: dw $0991 ; 06 - vibrato with volume slide +0a5f: dw $0a3d ; 07 - (same as 0f) +0a61: dw $09bd ; 08 - set panning +0a63: dw $0a3d ; 09 - (same as 0f) +0a65: dw $0991 ; 0a - volume slide +0a67: dw $0a3d ; 0b - (same as 0f - see primary table) +0a69: dw $09fd ; 0c - set volume +0a6b: dw $0a3d ; 0d - (same as 0f) +0a6d: dw $0a3d ; 0e - (same as 0f - see primary table) +0a6f: dw $0a3d ; 0f - set speed + +0a71: e4 23 mov a,$23 +0a73: c4 28 mov $28,a +0a75: 8b 02 dec $02 +0a77: 10 25 bpl $0a9e +0a79: 8f 00 1c mov $1c,#$00 +0a7c: eb 05 mov y,$05 +0a7e: f7 06 mov a,($06)+y +0a80: 68 ff cmp a,#$ff +0a82: d0 04 bne $0a88 +0a84: 8d 00 mov y,#$00 +0a86: f7 06 mov a,($06)+y +0a88: fc inc y +0a89: cb 05 mov $05,y +0a8b: 1c asl a +0a8c: fd mov y,a +0a8d: 60 clrc +0a8e: f7 08 mov a,($08)+y +0a90: 84 08 adc a,$08 +0a92: c4 03 mov $03,a +0a94: fc inc y +0a95: f7 08 mov a,($08)+y +0a97: 84 09 adc a,$09 +0a99: c4 04 mov $04,a +0a9b: 8f 3f 02 mov $02,#$3f +0a9e: fa 01 00 mov ($00),($01) +0aa1: 8f 33 1e mov $1e,#$33 +0aa4: 8f 0f 1f mov $1f,#$0f +0aa7: 8f 00 14 mov $14,#$00 +0aaa: 8f 3b 63 mov $63,#$3b +0aad: 8f 00 64 mov $64,#$00 +0ab0: cd 08 mov x,#$08 +0ab2: 4d push x +0ab3: e4 1c mov a,$1c ; check skip ahead value +0ab5: f0 10 beq $0ac7 ; if not 0, then decrease +0ab7: 8b 1c dec $1c ; otherwise, then proceed and decrement it +0ab9: 8f 00 18 mov $18,#$00 +0abc: 8f 00 19 mov $19,#$00 +0abf: 8f 00 1a mov $1a,#$00 +0ac2: 8f 00 1b mov $1b,#$00 +0ac5: 2f 29 bra $0af0 +0ac7: 8d 00 mov y,#$00 +0ac9: f7 03 mov a,($03)+y +0acb: 68 ff cmp a,#$ff ; check for end of row +0acd: d0 0e bne $0add +0acf: fc inc y +0ad0: f7 03 mov a,($03)+y ; if so, then get skip ahead value +0ad2: c4 1c mov $1c,a +0ad4: 60 clrc +0ad5: 98 02 03 adc $03,#$02 +0ad8: 98 00 04 adc $04,#$00 +0adb: 2f da bra $0ab7 +0add: 8d 03 mov y,#$03 ; otherwise, load the remaining 3 bytes +0adf: cd 03 mov x,#$03 +0ae1: f7 03 mov a,($03)+y +0ae3: d4 18 mov $18+x,a +0ae5: dc dec y +0ae6: 1d dec x +0ae7: 10 f8 bpl $0ae1 +0ae9: 60 clrc +0aea: 98 04 03 adc $03,#$04 ; advance the current pointer +0aed: 98 00 04 adc $04,#$00 +0af0: 60 clrc +0af1: 0b 28 asl $28 ; number of channels to go? +0af3: 90 68 bcc $0b5d +0af5: ce pop x +0af6: 4d push x +0af7: 1d dec x +0af8: f4 5b mov a,$5b+x +0afa: f0 10 beq $0b0c +0afc: e8 00 mov a,#$00 +0afe: d4 5b mov $5b+x,a +0b00: 8d 03 mov y,#$03 +0b02: cd 03 mov x,#$03 +0b04: f7 63 mov a,($63)+y +0b06: d4 18 mov $18+x,a +0b08: dc dec y +0b09: 1d dec x +0b0a: 10 f8 bpl $0b04 +0b0c: e4 19 mov a,$19 +0b0e: d0 08 bne $0b18 +0b10: e4 18 mov a,$18 +0b12: f0 1e beq $0b32 +0b14: 8d 0a mov y,#$0a +0b16: f7 1e mov a,($1e)+y +0b18: fd mov y,a +0b19: e4 1a mov a,$1a +0b1b: 68 03 cmp a,#$03 +0b1d: f0 0a beq $0b29 +0b1f: e4 18 mov a,$18 +0b21: f0 06 beq $0b29 +0b23: ae pop a +0b24: 2d push a +0b25: 9c dec a +0b26: 3f 33 0d call $0d33 +0b29: dd mov a,y +0b2a: 8d 0a mov y,#$0a +0b2c: d7 1e mov ($1e)+y,a +0b2e: 9c dec a +0b2f: 3f 50 0c call $0c50 +0b32: e4 18 mov a,$18 +0b34: f0 19 beq $0b4f +0b36: 60 clrc +0b37: 84 24 adc a,$24 +0b39: 9c dec a +0b3a: 3f d8 0c call $0cd8 +0b3d: e4 1a mov a,$1a +0b3f: 68 03 cmp a,#$03 +0b41: f0 0c beq $0b4f +0b43: ae pop a +0b44: 2d push a +0b45: 9c dec a +0b46: 3f 25 0d call $0d25 +0b49: 8f 5c f2 mov $f2,#$5c ; disable key off +0b4c: 8f 00 f3 mov $f3,#$00 +0b4f: 8d 04 mov y,#$04 +0b51: e4 1a mov a,$1a +0b53: d7 1e mov ($1e)+y,a +0b55: fc inc y +0b56: e4 1b mov a,$1b +0b58: d7 1e mov ($1e)+y,a +0b5a: 3f 77 0b call $0b77 +0b5d: ce pop x +0b5e: 60 clrc +0b5f: 98 11 1e adc $1e,#$11 +0b62: 98 00 1f adc $1f,#$00 +0b65: 60 clrc +0b66: 98 04 63 adc $63,#$04 +0b69: 98 00 64 adc $64,#$00 +0b6c: 60 clrc +0b6d: 98 10 14 adc $14,#$10 +0b70: 1d dec x +0b71: f0 03 beq $0b76 +0b73: 5f b2 0a jmp $0ab2 +0b76: 6f ret + +0b77: e4 1a mov a,$1a +0b79: 1c asl a +0b7a: 5d mov x,a +0b7b: 1f 30 0c jmp ($0c30+x) + +; effect 03 +0b7e: 8d 0f mov y,#$0f +0b80: e4 1b mov a,$1b +0b82: 60 clrc +0b83: 1c asl a +0b84: d7 1e mov ($1e)+y,a +0b86: e8 00 mov a,#$00 +0b88: 3c rol a +0b89: fc inc y +0b8a: d7 1e mov ($1e)+y,a +0b8c: e4 18 mov a,$18 +0b8e: d0 03 bne $0b93 +0b90: 5f 2f 0c jmp $0c2f + +0b93: 8d 0d mov y,#$0d +0b95: f7 1e mov a,($1e)+y +0b97: c4 20 mov $20,a +0b99: fc inc y +0b9a: f7 1e mov a,($1e)+y +0b9c: c4 21 mov $21,a +0b9e: 8d 00 mov y,#$00 +0ba0: 80 setc +0ba1: e4 20 mov a,$20 +0ba3: b7 1e sbc a,($1e)+y +0ba5: fc inc y +0ba6: e4 21 mov a,$21 +0ba8: b7 1e sbc a,($1e)+y +0baa: 30 09 bmi $0bb5 +0bac: 8d 0c mov y,#$0c +0bae: e8 00 mov a,#$00 +0bb0: d7 1e mov ($1e)+y,a +0bb2: 5f 2f 0c jmp $0c2f + +0bb5: 8d 0c mov y,#$0c +0bb7: e8 01 mov a,#$01 +0bb9: d7 1e mov ($1e)+y,a +0bbb: 5f 2f 0c jmp $0c2f + +; effect 04 - set vibrato +0bbe: e4 1b mov a,$1b +0bc0: 28 0f and a,#$0f +0bc2: 8d 07 mov y,#$07 +0bc4: d7 1e mov ($1e)+y,a +0bc6: e4 1b mov a,$1b +0bc8: 9f xcn a +0bc9: 28 0f and a,#$0f +0bcb: 5c lsr a +0bcc: dc dec y +0bcd: d7 1e mov ($1e)+y,a +0bcf: 5f 2f 0c jmp $0c2f + +; effect 09 +0bd2: e4 1b mov a,$1b +0bd4: cd 00 mov x,#$00 +0bd6: 3f 41 0d call $0d41 +0bd9: 2f 54 bra $0c2f + +; effect 0d - pattern break +0bdb: 8f 00 02 mov $02,#$00 +0bde: 2f 4f bra $0c2f + +; effect 0b - jump to song position +0be0: e4 1b mov a,$1b +0be2: c4 05 mov $05,a +0be4: 2f f5 bra $0bdb + +; effect 0e +0be6: e4 1b mov a,$1b +0be8: 28 f0 and a,#$f0 +0bea: d0 43 bne $0c2f +0bec: e4 1b mov a,$1b +0bee: 1c asl a +0bef: c4 20 mov $20,a +0bf1: 1c asl a +0bf2: 60 clrc +0bf3: 84 20 adc a,$20 +0bf5: fd mov y,a +0bf6: f7 0e mov a,($0e)+y +0bf8: 8f 7d f2 mov $f2,#$7d +0bfb: c4 f3 mov $f3,a +0bfd: fc inc y +0bfe: f7 0e mov a,($0e)+y +0c00: 8f 0d f2 mov $f2,#$0d +0c03: c4 f3 mov $f3,a +0c05: fc inc y +0c06: f7 0e mov a,($0e)+y +0c08: 8f 4d f2 mov $f2,#$4d +0c0b: c4 f3 mov $f3,a +0c0d: fc inc y +0c0e: f7 0e mov a,($0e)+y +0c10: 8f 2c f2 mov $f2,#$2c +0c13: c4 f3 mov $f3,a +0c15: fc inc y +0c16: f7 0e mov a,($0e)+y +0c18: 8f 3c f2 mov $f2,#$3c +0c1b: c4 f3 mov $f3,a +0c1d: fc inc y +0c1e: f7 0e mov a,($0e)+y +0c20: cd 01 mov x,#$01 +0c22: 3f 41 0d call $0d41 +0c25: 2f 08 bra $0c2f + +; effect 0f - set speed +0c27: e4 1b mov a,$1b ; set the current amount of ticks (tempo) +0c29: c4 01 mov $01,a ; current tempo +0c2b: c4 00 mov $00,a ; number of ticks left +0c2d: 2f 00 bra $0c2f + +; effect 00 - nop +0c2f: 6f ret + +; effect table (00-0f) - primary +; (effects are based on ProTracker format) +0c30: dw $0c2f ; 00 - nop +0c32: dw $0c2f ; 01 - nop (see secondary table) +0c34: dw $0c2f ; 02 - nop (see secondary table) +0c36: dw $0b7e ; 03 - portamento to note +0c38: dw $0bbe ; 04 - set vibrato +0c3a: dw $0c2f ; 05 - nop +0c3c: dw $0c2f ; 06 - nop (see secondary table) +0c3e: dw $0c2f ; 07 - nop +0c40: dw $0c2f ; 08 - nop (see secondary table) +0c42: dw $0bd2 ; 09 +0c44: dw $0c2f ; 0a - nop (see secondary table) +0c46: dw $0be0 ; 0b - jump to song position +0c48: dw $0c2f ; 0c - nop (see secondary table) +0c4a: dw $0bdb ; 0d - pattern break +0c4c: dw $0be6 ; 0e +0x4e: dw $0c27 ; 0f - set speed + +0c50: c4 12 mov $12,a +0c52: e8 00 mov a,#$00 +0c54: c4 13 mov $13,a +0c56: 0b 12 asl $12 +0c58: ba 12 movw ya,$12 +0c5a: 0b 12 asl $12 +0c5c: 7a 12 addw ya,$12 +0c5e: 7a 0a addw ya,$0a +0c60: da 12 movw $12,ya +0c62: 8d 00 mov y,#$00 +0c64: f7 12 mov a,($12)+y +0c66: 5d mov x,a +0c67: fc inc y +0c68: f7 12 mov a,($12)+y +0c6a: 2d push a +0c6b: e4 1a mov a,$1a +0c6d: 68 0c cmp a,#$0c +0c6f: d0 0e bne $0c7f +0c71: e4 1b mov a,$1b +0c73: 8d 0b mov y,#$0b +0c75: d7 1e mov ($1e)+y,a +0c77: 8f 00 1a mov $1a,#$00 +0c7a: 8f 00 1b mov $1b,#$00 +0c7d: 2f 12 bra $0c91 +0c7f: e4 19 mov a,$19 +0c81: d0 06 bne $0c89 +0c83: 8d 0b mov y,#$0b +0c85: f7 1e mov a,($1e)+y +0c87: 2f 08 bra $0c91 +0c89: 8d 05 mov y,#$05 +0c8b: f7 12 mov a,($12)+y +0c8d: 8d 0b mov y,#$0b +0c8f: d7 1e mov ($1e)+y,a +0c91: ee pop y +0c92: 2d push a +0c93: 4d push x +0c94: 6d push y +0c95: 3f 11 0d call $0d11 +0c98: e4 18 mov a,$18 +0c9a: f0 2d beq $0cc9 +0c9c: 8d 02 mov y,#$02 +0c9e: e4 14 mov a,$14 +0ca0: 08 05 or a,#$05 +0ca2: 5d mov x,a +0ca3: f7 12 mov a,($12)+y +0ca5: d8 f2 mov $f2,x +0ca7: c4 f3 mov $f3,a +0ca9: fc inc y +0caa: 3d inc x +0cab: 28 80 and a,#$80 +0cad: d0 0b bne $0cba +0caf: 3d inc x +0cb0: f7 12 mov a,($12)+y +0cb2: d8 f2 mov $f2,x +0cb4: c4 f3 mov $f3,a +0cb6: fc inc y +0cb7: 1d dec x +0cb8: 2f 07 bra $0cc1 +0cba: f7 12 mov a,($12)+y +0cbc: d8 f2 mov $f2,x +0cbe: c4 f3 mov $f3,a +0cc0: fc inc y +0cc1: 1d dec x +0cc2: 1d dec x +0cc3: f7 12 mov a,($12)+y +0cc5: d8 f2 mov $f2,x +0cc7: c4 f3 mov $f3,a +0cc9: 8d 08 mov y,#$08 +0ccb: ae pop a +0ccc: d7 1e mov ($1e)+y,a +0cce: fc inc y +0ccf: ae pop a +0cd0: d7 1e mov ($1e)+y,a +0cd2: 8d 02 mov y,#$02 +0cd4: ae pop a +0cd5: d7 1e mov ($1e)+y,a +0cd7: 6f ret + +0cd8: 1c asl a ; get note frequency +0cd9: fd mov y,a +0cda: e4 1a mov a,$1a +0cdc: 68 03 cmp a,#$03 +0cde: d0 11 bne $0cf1 +0ce0: 6d push y +0ce1: ce pop x +0ce2: 8d 0d mov y,#$0d +0ce4: f5 16 0e mov a,$0e16+x +0ce7: d7 1e mov ($1e)+y,a +0ce9: 3d inc x +0cea: fc inc y +0ceb: f5 16 0e mov a,$0e16+x +0cee: d7 1e mov ($1e)+y,a +0cf0: 6f ret + +0cf1: f8 14 mov x,$14 +0cf3: 3d inc x +0cf4: 3d inc x +0cf5: f6 16 0e mov a,$0e16+y +0cf8: 2d push a +0cf9: d8 f2 mov $f2,x +0cfb: c4 f3 mov $f3,a +0cfd: 3d inc x +0cfe: fc inc y +0cff: f6 16 0e mov a,$0e16+y +0d02: 2d push a +0d03: d8 f2 mov $f2,x +0d05: c4 f3 mov $f3,a +0d07: 8d 01 mov y,#$01 +0d09: ae pop a +0d0a: d7 1e mov ($1e)+y,a +0d0c: dc dec y +0d0d: ae pop a +0d0e: d7 1e mov ($1e)+y,a +0d10: 6f ret + +0d11: 2d push a +0d12: 4d push x +0d13: cf mul ya +0d14: f8 14 mov x,$14 +0d16: 3d inc x +0d17: d8 f2 mov $f2,x +0d19: cb f3 mov $f3,y +0d1b: ee pop y +0d1c: ae pop a +0d1d: cf mul ya +0d1e: f8 14 mov x,$14 +0d20: d8 f2 mov $f2,x +0d22: cb f3 mov $f3,y +0d24: 6f ret + +0d25: 4d push x ; set key on +0d26: 2d push a +0d27: 5d mov x,a +0d28: f5 0e 0e mov a,$0e0e+x +0d2b: 8f 4c f2 mov $f2,#$4c +0d2e: c4 f3 mov $f3,a +0d30: ae pop a +0d31: ce pop x +0d32: 6f ret + +0d33: 4d push x ; set key off +0d34: 2d push a +0d35: 5d mov x,a +0d36: f5 0e 0e mov a,$0e0e+x +0d39: 8f 5c f2 mov $f2,#$5c +0d3c: c4 f3 mov $f3,a +0d3e: ae pop a +0d3f: ce pop x +0d40: 6f ret + +0d41: 1c asl a +0d42: 1c asl a +0d43: 1c asl a +0d44: fd mov y,a +0d45: c8 00 cmp x,#$00 +0d47: d0 08 bne $0d51 +0d49: 8f fe 12 mov $12,#$fe +0d4c: 8f 0d 13 mov $13,#$0d +0d4f: 2f 06 bra $0d57 +0d51: 8f 06 12 mov $12,#$06 +0d54: 8f 0e 13 mov $13,#$0e +0d57: 2d push a +0d58: 28 0f and a,#$0f +0d5a: fd mov y,a +0d5b: f7 12 mov a,($12)+y +0d5d: 5d mov x,a +0d5e: ae pop a +0d5f: f7 0c mov a,($0c)+y +0d61: d8 f2 mov $f2,x +0d63: c4 f3 mov $f3,a +0d65: fc inc y +0d66: 2d push a +0d67: 28 0f and a,#$0f +0d69: fd mov y,a +0d6a: f7 12 mov a,($12)+y +0d6c: 5d mov x,a +0d6d: ae pop a +0d6e: f7 0c mov a,($0c)+y +0d70: d8 f2 mov $f2,x +0d72: c4 f3 mov $f3,a +0d74: fc inc y +0d75: 2d push a +0d76: 28 0f and a,#$0f +0d78: fd mov y,a +0d79: f7 12 mov a,($12)+y +0d7b: 5d mov x,a +0d7c: ae pop a +0d7d: f7 0c mov a,($0c)+y +0d7f: d8 f2 mov $f2,x +0d81: c4 f3 mov $f3,a +0d83: fc inc y +0d84: 2d push a +0d85: 28 0f and a,#$0f +0d87: fd mov y,a +0d88: f7 12 mov a,($12)+y +0d8a: 5d mov x,a +0d8b: ae pop a +0d8c: f7 0c mov a,($0c)+y +0d8e: d8 f2 mov $f2,x +0d90: c4 f3 mov $f3,a +0d92: fc inc y +0d93: 2d push a +0d94: 28 0f and a,#$0f +0d96: fd mov y,a +0d97: f7 12 mov a,($12)+y +0d99: 5d mov x,a +0d9a: ae pop a +0d9b: f7 0c mov a,($0c)+y +0d9d: d8 f2 mov $f2,x +0d9f: c4 f3 mov $f3,a +0da1: fc inc y +0da2: 2d push a +0da3: 28 0f and a,#$0f +0da5: fd mov y,a +0da6: f7 12 mov a,($12)+y +0da8: 5d mov x,a +0da9: ae pop a +0daa: f7 0c mov a,($0c)+y +0dac: d8 f2 mov $f2,x +0dae: c4 f3 mov $f3,a +0db0: fc inc y +0db1: 2d push a +0db2: 28 0f and a,#$0f +0db4: fd mov y,a +0db5: f7 12 mov a,($12)+y +0db7: 5d mov x,a +0db8: ae pop a +0db9: f7 0c mov a,($0c)+y +0dbb: d8 f2 mov $f2,x +0dbd: c4 f3 mov $f3,a +0dbf: fc inc y +0dc0: 2d push a +0dc1: 28 0f and a,#$0f +0dc3: fd mov y,a +0dc4: f7 12 mov a,($12)+y +0dc6: 5d mov x,a +0dc7: ae pop a +0dc8: f7 0c mov a,($0c)+y +0dca: d8 f2 mov $f2,x +0dcc: c4 f3 mov $f3,a +0dce: fc inc y +0dcf: 6f ret + +0dd0: e4 f4 mov a,$f4 +0dd2: 64 27 cmp a,$27 +0dd4: 6f ret + +0dd5: ec fd 00 mov y,$00fd +0dd8: f0 fb beq $0dd5 +0dda: 00 nop +0ddb: fa f4 27 mov ($27),($f4) +0dde: e4 f6 mov a,$f6 +0de0: fa 27 f5 mov ($f5),($27) +0de3: 6f ret + +0de4: 8d 00 mov y,#$00 +0de6: 3f d5 0d call $0dd5 +0de9: d7 12 mov ($12)+y,a +0deb: fc inc y +0dec: d0 02 bne $0df0 +0dee: ab 13 inc $13 +0df0: 80 setc +0df1: b8 01 25 sbc $25,#$01 +0df4: b8 00 26 sbc $26,#$00 +0df7: e4 26 mov a,$26 +0df9: 04 25 or a,$25 +0dfb: d0 e9 bne $0de6 +0dfd: 6f ret + +0dfe: db $0f,$1f,$2f,$3f,$4f,$5f,$6f,$7f,$c0,$c1,$c2,$c3,$c4,$c5,$c6,$c7 + +; channel/voice parameters for DSP +0e0e: db $80,$40,$20,$10,$08,$04,$02,$01 + +; note frequency table +0e16: dw $3f,$00,$43,$00,$47,$00,$4b,$00,$50,$00,$55,$00,$5a,$00,$5f,$00,$65,$00,$6b,$00,$72,$00,$78,$00,$7f,$00,$87,$00,$8f,$00,$98,$00,$a1,$00,$aa,$00,$b4,$00,$bf,$00,$ca,$00,$d7,$00,$e4,$00,$f1,$00,$ff,$00,$0f,$01,$1f,$01,$30,$01,$42,$01,$55,$01,$69,$01,$7f,$01,$96,$01,$ae,$01,$c8,$01,$e3,$01,$ff,$01,$1e,$02,$3e,$02,$60,$02,$85,$02,$ab,$02,$d3,$02,$fe,$02,$2c,$03,$5c,$03,$90,$03,$c6,$03,$00,$04,$3c,$04,$7d,$04,$c1,$04,$0a,$05,$56,$05,$a8,$05,$fe,$05,$59,$06,$b9,$06,$20,$07,$8c,$07,$00,$08,$79,$08,$fa,$08,$83,$09,$14,$0a,$ad,$0a,$50,$0b,$fc,$0b,$b2,$0c,$74,$0d,$41,$0e,$1a,$0f,$00,$10,$f3,$10,$f5,$11,$06,$13,$28,$14,$5b,$15,$a0,$16,$f9,$17,$65,$19,$e8,$1a,$82,$1c,$34,$1e,$00,$20,$e7,$21,$eb,$23,$0e,$26,$51,$28,$b7,$2a,$41,$2d,$f2,$2f,$cc,$32,$d1,$35,$04,$39,$68,$3c + + +0ed6:,$00,$00,$01,$00,$10,$00,$11,$00,$20,$00,$21,$00,$30,$00,$31,$00,$40,$00,$41,$00,$50,$00,$51,$00,$60,$00,$61,$00,$70,$00,$71,$00,$4c,$00,$5c,$ff,$6c,$38,$0d,$00,$2d,$00,$3d,$00,$4d,$00,$5d,$02,$6d,$60,$7d,$00,$0f,$7f,$1f,$00,$2f,$00,$3f,$00,$4f,$00,$5f,$00,$6f,$00,$7f,$00,$c0,$7f,$c1,$00,$c2,$00,$c3,$00,$c4,$00,$c5,$00,$c6,$00,$c7,$00,$0c,$7f,$1c,$7f,$2c,$00,$3c,$00,$ff diff --git a/snes/KAZe/Dark Law - Meaning of Death ($0800).bin b/snes/KAZe/Dark Law - Meaning of Death ($0800).bin new file mode 100644 index 00000000..32c6cf27 Binary files /dev/null and b/snes/KAZe/Dark Law - Meaning of Death ($0800).bin differ diff --git a/snes/KAZe/Dark Law - Meaning of Death.s b/snes/KAZe/Dark Law - Meaning of Death.s new file mode 100644 index 00000000..860dbd41 --- /dev/null +++ b/snes/KAZe/Dark Law - Meaning of Death.s @@ -0,0 +1,2921 @@ +0800: 20 clrp +0801: cd cf mov x,#$cf +0803: bd mov sp,x +0804: 3f d6 0b call $0bd6 +0807: e8 01 mov a,#$01 +0809: c4 30 mov $30,a +080b: c5 f4 00 mov $00f4,a +080e: e8 02 mov a,#$02 +0810: c4 32 mov $32,a +0812: c5 f5 00 mov $00f5,a +0815: e8 03 mov a,#$03 +0817: c4 34 mov $34,a +0819: c5 f6 00 mov $00f6,a +081c: e8 00 mov a,#$00 +081e: 9c dec a +081f: d0 fd bne $081e +0821: e5 f7 00 mov a,$00f7 +0824: ec fd 00 mov y,$00fd +0827: f0 fb beq $0824 +0829: 3f 0d 0d call $0d0d +082c: 3f 42 08 call $0842 +082f: e5 0e 00 mov a,$000e +0832: 28 02 and a,#$02 +0834: d0 06 bne $083c +0836: 3f 15 0e call $0e15 +0839: 3f 4c 1b call $1b4c +083c: 3f 3b 0d call $0d3b +083f: 5f 21 08 jmp $0821 + +0842: e4 2f mov a,$2f +0844: 3f 48 08 call $0848 +0847: 6f ret + +0848: 28 0f and a,#$0f +084a: f0 13 beq $085f +084c: 68 01 cmp a,#$01 +084e: f0 0f beq $085f +0850: 68 02 cmp a,#$02 +0852: f0 0b beq $085f +0854: 1c asl a +0855: 5d mov x,a +0856: e8 ff mov a,#$ff +0858: c4 30 mov $30,a +085a: 1f 68 08 jmp ($0868+x) + +085d: e4 2f mov a,$2f +085f: 1c asl a +0860: 5d mov x,a +0861: e8 00 mov a,#$00 +0863: c4 30 mov $30,a +0865: 1f 68 08 jmp ($0868+x) + +0868: 86 adc a,(x) +0869: 08 87 or a,#$87 +086b: 08 98 or a,#$98 +086d: 0a a7 0b or1 c,$0ba7,0 +0870: 34 0b and a,$0b+x +0872: 3c rol a +0873: 0b 48 asl $48 +0875: 0b 58 asl $58 +0877: 0b 87 asl $87 +0879: 0b ab asl $ab +087b: 0b c0 asl $c0 +087d: 0b c7 asl $c7 +087f: 0b 68 asl $68 +0881: 0b ce asl $ce +0883: 0b 86 asl $86 +0885: 08 6f or a,#$6f +0887: 3f 3d 1a call $1a3d +088a: 3f 4c 1b call $1b4c +088d: e5 f5 00 mov a,$00f5 +0890: 65 f5 00 cmp a,$00f5 +0893: d0 f8 bne $088d +0895: c4 0d mov $0d,a +0897: e5 f7 00 mov a,$00f7 +089a: 65 f7 00 cmp a,$00f7 +089d: d0 f8 bne $0897 +089f: bc inc a +08a0: c5 f7 00 mov $00f7,a +08a3: bc inc a +08a4: c4 02 mov $02,a +08a6: e8 02 mov a,#$02 +08a8: c5 f4 00 mov $00f4,a +08ab: e8 03 mov a,#$03 +08ad: c5 f5 00 mov $00f5,a +08b0: e8 04 mov a,#$04 +08b2: c5 f6 00 mov $00f6,a +08b5: e8 00 mov a,#$00 +08b7: 9c dec a +08b8: d0 fd bne $08b7 +08ba: e8 00 mov a,#$00 +08bc: c4 74 mov $74,a +08be: c5 f6 00 mov $00f6,a +08c1: e4 02 mov a,$02 +08c3: 9c dec a +08c4: c5 f4 00 mov $00f4,a +08c7: e8 a1 mov a,#$a1 +08c9: c5 f5 00 mov $00f5,a +08cc: 3f 69 09 call $0969 +08cf: c4 0b mov $0b,a +08d1: e8 a2 mov a,#$a2 +08d3: c5 f5 00 mov $00f5,a +08d6: 3f 69 09 call $0969 +08d9: c4 09 mov $09,a +08db: e4 0b mov a,$0b +08dd: d0 0c bne $08eb +08df: e4 09 mov a,$09 +08e1: c4 10 mov $10,a +08e3: 8d 5d mov y,#$5d +08e5: cc f2 00 mov $00f2,y +08e8: c5 f3 00 mov $00f3,a +08eb: e8 a3 mov a,#$a3 +08ed: c5 f5 00 mov $00f5,a +08f0: 3f 69 09 call $0969 +08f3: c4 0c mov $0c,a +08f5: e8 a4 mov a,#$a4 +08f7: c5 f5 00 mov $00f5,a +08fa: 3f e9 09 call $09e9 +08fd: e8 a5 mov a,#$a5 +08ff: c5 f5 00 mov $00f5,a +0902: 3f 96 09 call $0996 +0905: e8 a6 mov a,#$a6 +0907: c5 f5 00 mov $00f5,a +090a: 3f 69 09 call $0969 +090d: c4 01 mov $01,a +090f: e8 a7 mov a,#$a7 +0911: c5 f5 00 mov $00f5,a +0914: 3f 69 09 call $0969 +0917: c4 00 mov $00,a +0919: e8 a8 mov a,#$a8 +091b: c5 f5 00 mov $00f5,a +091e: 3f 0a 0b call $0b0a +0921: e8 a9 mov a,#$a9 +0923: c5 f5 00 mov $00f5,a +0926: 3f bc 09 call $09bc +0929: e8 aa mov a,#$aa +092b: c5 f5 00 mov $00f5,a +092e: 3f 69 09 call $0969 +0931: c4 01 mov $01,a +0933: e8 ab mov a,#$ab +0935: c5 f5 00 mov $00f5,a +0938: 3f 69 09 call $0969 +093b: c4 00 mov $00,a +093d: e8 ac mov a,#$ac +093f: c5 f5 00 mov $00f5,a +0942: 3f 0a 0b call $0b0a +0945: e8 ad mov a,#$ad +0947: c5 f5 00 mov $00f5,a +094a: e4 74 mov a,$74 +094c: d0 15 bne $0963 +094e: e8 01 mov a,#$01 +0950: c5 f4 00 mov $00f4,a +0953: e8 02 mov a,#$02 +0955: c5 f5 00 mov $00f5,a +0958: e8 03 mov a,#$03 +095a: c5 f6 00 mov $00f6,a +095d: e8 00 mov a,#$00 +095f: 9c dec a +0960: d0 fd bne $095f +0962: 6f ret + +0963: e8 ff mov a,#$ff +0965: c5 f6 00 mov $00f6,a +0968: 6f ret + +0969: e4 02 mov a,$02 +096b: 9c dec a +096c: c5 f4 00 mov $00f4,a +096f: e5 f4 00 mov a,$00f4 +0972: e5 f4 00 mov a,$00f4 +0975: 64 02 cmp a,$02 +0977: d0 f6 bne $096f +0979: e5 f6 00 mov a,$00f6 +097c: e5 f6 00 mov a,$00f6 +097f: 64 02 cmp a,$02 +0981: d0 ec bne $096f +0983: e5 f5 00 mov a,$00f5 +0986: 65 f5 00 cmp a,$00f5 +0989: d0 f8 bne $0983 +098b: 2d push a +098c: e4 02 mov a,$02 +098e: c5 f4 00 mov $00f4,a +0991: ab 02 inc $02 +0993: ae pop a +0994: 6f ret + +0995: 6f ret + +0996: e4 0f mov a,$0f +0998: 60 clrc +0999: 88 78 adc a,#$78 +099b: c4 03 mov $03,a +099d: e4 10 mov a,$10 +099f: 88 00 adc a,#$00 +09a1: c4 04 mov $04,a +09a3: e4 0d mov a,$0d +09a5: bc inc a +09a6: c4 08 mov $08,a +09a8: 8b 08 dec $08 +09aa: f0 0f beq $09bb +09ac: e4 03 mov a,$03 +09ae: 60 clrc +09af: 88 18 adc a,#$18 +09b1: c4 03 mov $03,a +09b3: e4 04 mov a,$04 +09b5: 88 00 adc a,#$00 +09b7: c4 04 mov $04,a +09b9: 2f ed bra $09a8 +09bb: 6f ret + +09bc: e4 0b mov a,$0b +09be: f0 1b beq $09db +09c0: e4 0d mov a,$0d +09c2: 1c asl a +09c3: 1c asl a +09c4: 60 clrc +09c5: 84 0f adc a,$0f +09c7: c4 09 mov $09,a +09c9: e4 10 mov a,$10 +09cb: 88 00 adc a,#$00 +09cd: c4 0a mov $0a,a +09cf: 8d 00 mov y,#$00 +09d1: f7 09 mov a,($09)+y +09d3: c4 03 mov $03,a +09d5: fc inc y +09d6: f7 09 mov a,($09)+y +09d8: c4 04 mov $04,a +09da: 6f ret + +09db: e4 0f mov a,$0f +09dd: 60 clrc +09de: 88 48 adc a,#$48 +09e0: c4 03 mov $03,a +09e2: e4 10 mov a,$10 +09e4: 88 03 adc a,#$03 +09e6: c4 04 mov $04,a +09e8: 6f ret + +09e9: e4 74 mov a,$74 +09eb: f0 03 beq $09f0 +09ed: 5f 97 0a jmp $0a97 + +09f0: 3f bc 09 call $09bc +09f3: e4 03 mov a,$03 +09f5: c4 05 mov $05,a +09f7: e4 04 mov a,$04 +09f9: c4 06 mov $06,a +09fb: e4 0c mov a,$0c +09fd: c4 00 mov $00,a +09ff: e4 0d mov a,$0d +0a01: 1c asl a +0a02: 1c asl a +0a03: 60 clrc +0a04: 84 0f adc a,$0f +0a06: fd mov y,a +0a07: e4 10 mov a,$10 +0a09: 88 00 adc a,#$00 +0a0b: c4 04 mov $04,a +0a0d: e8 00 mov a,#$00 +0a0f: c4 03 mov $03,a +0a11: 3f 69 09 call $0969 +0a14: c4 07 mov $07,a +0a16: 3f 69 09 call $0969 +0a19: 2d push a +0a1a: e4 74 mov a,$74 +0a1c: d0 78 bne $0a96 +0a1e: ae pop a +0a1f: 60 clrc +0a20: 84 05 adc a,$05 +0a22: d7 03 mov ($03)+y,a +0a24: c4 09 mov $09,a +0a26: e4 07 mov a,$07 +0a28: 84 06 adc a,$06 +0a2a: fc inc y +0a2b: d7 03 mov ($03)+y,a +0a2d: c4 0a mov $0a,a +0a2f: fc inc y +0a30: 3f 69 09 call $0969 +0a33: c4 07 mov $07,a +0a35: 3f 69 09 call $0969 +0a38: 2d push a +0a39: e4 74 mov a,$74 +0a3b: d0 59 bne $0a96 +0a3d: ae pop a +0a3e: 60 clrc +0a3f: 84 09 adc a,$09 +0a41: d7 03 mov ($03)+y,a +0a43: e4 07 mov a,$07 +0a45: 84 0a adc a,$0a +0a47: fc inc y +0a48: d7 03 mov ($03)+y,a +0a4a: fc inc y +0a4b: d0 02 bne $0a4f +0a4d: ab 04 inc $04 +0a4f: 8b 00 dec $00 +0a51: d0 be bne $0a11 +0a53: 3f 69 09 call $0969 +0a56: c4 0a mov $0a,a +0a58: 3f 69 09 call $0969 +0a5b: 2d push a +0a5c: e4 74 mov a,$74 +0a5e: d0 36 bne $0a96 +0a60: ae pop a +0a61: 60 clrc +0a62: 84 05 adc a,$05 +0a64: c4 09 mov $09,a +0a66: e4 0a mov a,$0a +0a68: 84 06 adc a,$06 +0a6a: c4 0a mov $0a,a +0a6c: e8 1e mov a,#$1e +0a6e: 80 setc +0a6f: a4 0d sbc a,$0d +0a71: 80 setc +0a72: a4 0c sbc a,$0c +0a74: bc inc a +0a75: c4 00 mov $00,a +0a77: 8b 00 dec $00 +0a79: f0 1a beq $0a95 +0a7b: e4 09 mov a,$09 +0a7d: d7 03 mov ($03)+y,a +0a7f: fc inc y +0a80: e4 0a mov a,$0a +0a82: d7 03 mov ($03)+y,a +0a84: fc inc y +0a85: e4 09 mov a,$09 +0a87: d7 03 mov ($03)+y,a +0a89: fc inc y +0a8a: e4 0a mov a,$0a +0a8c: d7 03 mov ($03)+y,a +0a8e: fc inc y +0a8f: d0 e6 bne $0a77 +0a91: ab 04 inc $04 +0a93: 2f e2 bra $0a77 +0a95: 6f ret + +0a96: ae pop a +0a97: 6f ret + +0a98: 3f 3d 1a call $1a3d +0a9b: 3f 4c 1b call $1b4c +0a9e: e5 f5 00 mov a,$00f5 +0aa1: 65 f5 00 cmp a,$00f5 +0aa4: d0 f8 bne $0a9e +0aa6: c4 00 mov $00,a +0aa8: e5 f6 00 mov a,$00f6 +0aab: 65 f6 00 cmp a,$00f6 +0aae: d0 f8 bne $0aa8 +0ab0: c4 01 mov $01,a +0ab2: e5 f7 00 mov a,$00f7 +0ab5: 65 f7 00 cmp a,$00f7 +0ab8: d0 f8 bne $0ab2 +0aba: bc inc a +0abb: c5 f7 00 mov $00f7,a +0abe: bc inc a +0abf: c4 02 mov $02,a +0ac1: e8 02 mov a,#$02 +0ac3: c5 f4 00 mov $00f4,a +0ac6: e8 03 mov a,#$03 +0ac8: c5 f5 00 mov $00f5,a +0acb: e8 04 mov a,#$04 +0acd: c5 f6 00 mov $00f6,a +0ad0: e8 00 mov a,#$00 +0ad2: 9c dec a +0ad3: d0 fd bne $0ad2 +0ad5: e8 00 mov a,#$00 +0ad7: c4 74 mov $74,a +0ad9: c5 f6 00 mov $00f6,a +0adc: e8 00 mov a,#$00 +0ade: c4 03 mov $03,a +0ae0: e8 20 mov a,#$20 +0ae2: c4 04 mov $04,a +0ae4: e4 02 mov a,$02 +0ae6: 9c dec a +0ae7: c5 f4 00 mov $00f4,a +0aea: 3f 0a 0b call $0b0a +0aed: e4 74 mov a,$74 +0aef: d0 15 bne $0b06 +0af1: e8 01 mov a,#$01 +0af3: c5 f4 00 mov $00f4,a +0af6: e8 02 mov a,#$02 +0af8: c5 f5 00 mov $00f5,a +0afb: e8 03 mov a,#$03 +0afd: c5 f6 00 mov $00f6,a +0b00: e8 00 mov a,#$00 +0b02: 9c dec a +0b03: d0 fd bne $0b02 +0b05: 6f ret + +0b06: c5 f6 00 mov $00f6,a +0b09: 6f ret + +0b0a: e4 74 mov a,$74 +0b0c: f0 01 beq $0b0f +0b0e: 6f ret + +0b0f: eb 03 mov y,$03 +0b11: e8 00 mov a,#$00 +0b13: c4 03 mov $03,a +0b15: 3f 69 09 call $0969 +0b18: d7 03 mov ($03)+y,a +0b1a: e4 74 mov a,$74 +0b1c: d0 15 bne $0b33 +0b1e: fc inc y +0b1f: d0 02 bne $0b23 +0b21: ab 04 inc $04 +0b23: e4 00 mov a,$00 +0b25: d0 02 bne $0b29 +0b27: 8b 01 dec $01 +0b29: 8b 00 dec $00 +0b2b: e4 00 mov a,$00 +0b2d: d0 e6 bne $0b15 +0b2f: e4 01 mov a,$01 +0b31: d0 e2 bne $0b15 +0b33: 6f ret + +0b34: e4 31 mov a,$31 +0b36: c4 00 mov $00,a +0b38: 3f 4b 0d call $0d4b +0b3b: 6f ret + +0b3c: e4 31 mov a,$31 +0b3e: c4 00 mov $00,a +0b40: e4 33 mov a,$33 +0b42: c4 07 mov $07,a +0b44: 3f 66 14 call $1466 +0b47: 6f ret + +0b48: e8 02 mov a,#$02 +0b4a: c4 00 mov $00,a +0b4c: e4 31 mov a,$31 +0b4e: c4 06 mov $06,a +0b50: e8 01 mov a,#$01 +0b52: c4 07 mov $07,a +0b54: 3f f7 14 call $14f7 +0b57: 6f ret + +0b58: e8 02 mov a,#$02 +0b5a: c4 00 mov $00,a +0b5c: e4 31 mov a,$31 +0b5e: c4 06 mov $06,a +0b60: e8 01 mov a,#$01 +0b62: c4 07 mov $07,a +0b64: 3f c2 14 call $14c2 +0b67: 6f ret + +0b68: e4 31 mov a,$31 +0b6a: c4 00 mov $00,a +0b6c: e4 33 mov a,$33 +0b6e: c4 01 mov $01,a +0b70: 4b 01 lsr $01 +0b72: 6b 00 ror $00 +0b74: 4b 01 lsr $01 +0b76: 6b 00 ror $00 +0b78: 4b 01 lsr $01 +0b7a: 6b 00 ror $00 +0b7c: e4 00 mov a,$00 +0b7e: c5 9c 02 mov $029c,a +0b81: e4 01 mov a,$01 +0b83: c5 a4 02 mov $02a4,a +0b86: 6f ret + +0b87: e4 31 mov a,$31 +0b89: 28 07 and a,#$07 +0b8b: c4 07 mov $07,a +0b8d: e4 31 mov a,$31 +0b8f: c4 00 mov $00,a +0b91: e4 33 mov a,$33 +0b93: c4 01 mov $01,a +0b95: 4b 01 lsr $01 +0b97: 6b 00 ror $00 +0b99: 4b 01 lsr $01 +0b9b: 6b 00 ror $00 +0b9d: 4b 01 lsr $01 +0b9f: 6b 00 ror $00 +0ba1: e8 00 mov a,#$00 +0ba3: 3f 2c 15 call $152c +0ba6: 6f ret + +0ba7: 3f 3d 1a call $1a3d +0baa: 6f ret + +0bab: e4 31 mov a,$31 +0bad: 48 ff eor a,#$ff +0baf: bc inc a +0bb0: c5 65 02 mov $0265,a +0bb3: e5 60 02 mov a,$0260 +0bb6: c5 66 02 mov $0266,a +0bb9: e5 62 02 mov a,$0262 +0bbc: c5 68 02 mov $0268,a +0bbf: 6f ret + +0bc0: e4 0e mov a,$0e +0bc2: 08 01 or a,#$01 +0bc4: c4 0e mov $0e,a +0bc6: 6f ret + +0bc7: e4 0e mov a,$0e +0bc9: 28 fe and a,#$fe +0bcb: c4 0e mov $0e,a +0bcd: 6f ret + +0bce: e4 31 mov a,$31 +0bd0: c4 00 mov $00,a +0bd2: 3f 68 15 call $1568 +0bd5: 6f ret + +0bd6: e8 00 mov a,#$00 +0bd8: 5d mov x,a +0bd9: af mov (x)+,a +0bda: c8 e0 cmp x,#$e0 +0bdc: d0 fb bne $0bd9 +0bde: e8 30 mov a,#$30 +0be0: c5 f1 00 mov $00f1,a +0be3: 8d 0c mov y,#$0c +0be5: cc f2 00 mov $00f2,y +0be8: e8 7f mov a,#$7f +0bea: c5 f3 00 mov $00f3,a +0bed: 8d 1c mov y,#$1c +0bef: cc f2 00 mov $00f2,y +0bf2: e8 7f mov a,#$7f +0bf4: c5 f3 00 mov $00f3,a +0bf7: 8d 2c mov y,#$2c +0bf9: cc f2 00 mov $00f2,y +0bfc: e8 00 mov a,#$00 +0bfe: c5 f3 00 mov $00f3,a +0c01: 8d 3c mov y,#$3c +0c03: cc f2 00 mov $00f2,y +0c06: e8 00 mov a,#$00 +0c08: c5 f3 00 mov $00f3,a +0c0b: 8d 2d mov y,#$2d +0c0d: cc f2 00 mov $00f2,y +0c10: e8 00 mov a,#$00 +0c12: c5 f3 00 mov $00f3,a +0c15: 8d 3d mov y,#$3d +0c17: cc f2 00 mov $00f2,y +0c1a: e8 00 mov a,#$00 +0c1c: c5 f3 00 mov $00f3,a +0c1f: 8d 5c mov y,#$5c +0c21: cc f2 00 mov $00f2,y +0c24: e8 ff mov a,#$ff +0c26: c5 f3 00 mov $00f3,a +0c29: e8 00 mov a,#$00 +0c2b: c4 0f mov $0f,a +0c2d: e8 60 mov a,#$60 +0c2f: c4 10 mov $10,a +0c31: 8d 5d mov y,#$5d +0c33: cc f2 00 mov $00f2,y +0c36: c5 f3 00 mov $00f3,a +0c39: 8d 6d mov y,#$6d +0c3b: cc f2 00 mov $00f2,y +0c3e: e8 c0 mov a,#$c0 +0c40: c5 f3 00 mov $00f3,a +0c43: e8 20 mov a,#$20 +0c45: c4 17 mov $17,a +0c47: 8d 6c mov y,#$6c +0c49: cc f2 00 mov $00f2,y +0c4c: c5 f3 00 mov $00f3,a +0c4f: e8 01 mov a,#$01 +0c51: c4 0e mov $0e,a +0c53: e8 00 mov a,#$00 +0c55: c4 00 mov $00,a +0c57: 5d mov x,a +0c58: e4 00 mov a,$00 +0c5a: 8d 20 mov y,#$20 +0c5c: cf mul ya +0c5d: 60 clrc +0c5e: 88 15 adc a,#$15 +0c60: d4 49 mov $49+x,a +0c62: dd mov a,y +0c63: 88 04 adc a,#$04 +0c65: d4 4a mov $4a+x,a +0c67: 3d inc x +0c68: 3d inc x +0c69: ab 00 inc $00 +0c6b: e4 00 mov a,$00 +0c6d: 68 08 cmp a,#$08 +0c6f: d0 e7 bne $0c58 +0c71: cd 00 mov x,#$00 +0c73: e8 00 mov a,#$00 +0c75: d4 63 mov $63+x,a +0c77: d4 6b mov $6b+x,a +0c79: d5 75 03 mov $0375+x,a +0c7c: e8 ff mov a,#$ff +0c7e: d5 58 02 mov $0258+x,a +0c81: e8 80 mov a,#$80 +0c83: d5 50 02 mov $0250+x,a +0c86: e8 00 mov a,#$00 +0c88: d5 6d 02 mov $026d+x,a +0c8b: 3d inc x +0c8c: c8 08 cmp x,#$08 +0c8e: d0 e3 bne $0c73 +0c90: cd 00 mov x,#$00 +0c92: e8 00 mov a,#$00 +0c94: d5 a5 02 mov $02a5+x,a +0c97: d5 e5 02 mov $02e5+x,a +0c9a: d5 25 03 mov $0325+x,a +0c9d: 3d inc x +0c9e: c8 08 cmp x,#$08 +0ca0: d0 f0 bne $0c92 +0ca2: e8 80 mov a,#$80 +0ca4: c5 60 02 mov $0260,a +0ca7: c5 6b 02 mov $026b,a +0caa: c4 00 mov $00,a +0cac: 3f 75 18 call $1875 +0caf: e8 00 mov a,#$00 +0cb1: c5 61 02 mov $0261,a +0cb4: e8 ff mov a,#$ff +0cb6: c5 62 02 mov $0262,a +0cb9: c5 6c 02 mov $026c,a +0cbc: e8 7f mov a,#$7f +0cbe: c4 13 mov $13,a +0cc0: c4 14 mov $14,a +0cc2: e8 00 mov a,#$00 +0cc4: c4 1c mov $1c,a +0cc6: c4 1d mov $1d,a +0cc8: e8 00 mov a,#$00 +0cca: c5 65 02 mov $0265,a +0ccd: e8 0f mov a,#$0f +0ccf: c4 11 mov $11,a +0cd1: e8 00 mov a,#$00 +0cd3: c4 12 mov $12,a +0cd5: 3f d9 0c call $0cd9 +0cd8: 6f ret + +0cd9: e8 00 mov a,#$00 +0cdb: c4 00 mov $00,a +0cdd: e8 02 mov a,#$02 +0cdf: c4 01 mov $01,a +0ce1: cd 00 mov x,#$00 +0ce3: 8d 00 mov y,#$00 +0ce5: f5 05 0d mov a,$0d05+x +0ce8: d7 00 mov ($00)+y,a +0cea: fc inc y +0ceb: ad 08 cmp y,#$08 +0ced: d0 f6 bne $0ce5 +0cef: 3d inc x +0cf0: e4 00 mov a,$00 +0cf2: 60 clrc +0cf3: 88 08 adc a,#$08 +0cf5: c4 00 mov $00,a +0cf7: e4 01 mov a,$01 +0cf9: 88 00 adc a,#$00 +0cfb: c4 01 mov $01,a +0cfd: c8 08 cmp x,#$08 +0cff: d0 e2 bne $0ce3 +0d01: 3f f2 1b call $1bf2 +0d04: 6f ret + +0d05: db $7f,$7f,$00,$04,$00,$00,$00,$7f + +0d0d: e5 f4 00 mov a,$00f4 +0d10: 65 f4 00 cmp a,$00f4 +0d13: d0 f8 bne $0d0d +0d15: c4 2f mov $2f,a +0d17: e5 f5 00 mov a,$00f5 +0d1a: 65 f5 00 cmp a,$00f5 +0d1d: d0 f8 bne $0d17 +0d1f: c4 31 mov $31,a +0d21: e5 f6 00 mov a,$00f6 +0d24: 65 f6 00 cmp a,$00f6 +0d27: d0 f8 bne $0d21 +0d29: c4 33 mov $33,a +0d2b: e5 f7 00 mov a,$00f7 +0d2e: 65 f7 00 cmp a,$00f7 +0d31: d0 f8 bne $0d2b +0d33: c4 35 mov $35,a +0d35: e4 35 mov a,$35 +0d37: c5 f7 00 mov $00f7,a +0d3a: 6f ret + +0d3b: e4 30 mov a,$30 +0d3d: c5 f4 00 mov $00f4,a +0d40: e4 32 mov a,$32 +0d42: c5 f5 00 mov $00f5,a +0d45: e4 34 mov a,$34 +0d47: c5 f6 00 mov $00f6,a +0d4a: 6f ret + +0d4b: e5 00 20 mov a,$2000 +0d4e: 60 clrc +0d4f: 88 00 adc a,#$00 +0d51: c4 01 mov $01,a +0d53: e5 01 20 mov a,$2001 +0d56: 88 20 adc a,#$20 +0d58: c4 02 mov $02,a +0d5a: e4 00 mov a,$00 +0d5c: 1c asl a +0d5d: fd mov y,a +0d5e: f7 01 mov a,($01)+y +0d60: 60 clrc +0d61: 88 00 adc a,#$00 +0d63: c4 00 mov $00,a +0d65: c4 03 mov $03,a +0d67: fc inc y +0d68: f7 01 mov a,($01)+y +0d6a: 88 20 adc a,#$20 +0d6c: c4 01 mov $01,a +0d6e: c4 04 mov $04,a +0d70: e8 00 mov a,#$00 +0d72: c4 07 mov $07,a +0d74: 8d 00 mov y,#$00 +0d76: f7 00 mov a,($00)+y +0d78: c4 05 mov $05,a +0d7a: fc inc y +0d7b: f7 00 mov a,($00)+y +0d7d: c4 06 mov $06,a +0d7f: e4 01 mov a,$01 +0d81: 2d push a +0d82: e4 00 mov a,$00 +0d84: 2d push a +0d85: e4 03 mov a,$03 +0d87: 2d push a +0d88: e4 04 mov a,$04 +0d8a: 2d push a +0d8b: 3f a8 0d call $0da8 +0d8e: ae pop a +0d8f: c4 04 mov $04,a +0d91: ae pop a +0d92: c4 03 mov $03,a +0d94: ae pop a +0d95: 60 clrc +0d96: 88 02 adc a,#$02 +0d98: c4 00 mov $00,a +0d9a: ae pop a +0d9b: 88 00 adc a,#$00 +0d9d: c4 01 mov $01,a +0d9f: ab 07 inc $07 +0da1: e4 07 mov a,$07 +0da3: 68 08 cmp a,#$08 +0da5: d0 cd bne $0d74 +0da7: 6f ret + +; play song +0da8: e4 05 mov a,$05 +0daa: 68 00 cmp a,#$00 +0dac: d0 06 bne $0db4 +0dae: e4 06 mov a,$06 +0db0: 68 00 cmp a,#$00 +0db2: f0 60 beq $0e14 +0db4: f8 07 mov x,$07 +0db6: e4 05 mov a,$05 +0db8: 60 clrc +0db9: 88 00 adc a,#$00 ; base address pointer lo +0dbb: c4 05 mov $05,a +0dbd: e4 03 mov a,$03 +0dbf: d5 0d 04 mov $040d+x,a ; set track pointer lo to 0x040d +0dc2: e4 06 mov a,$06 +0dc4: 88 20 adc a,#$20 ; base address pointer hi +0dc6: c4 06 mov $06,a +0dc8: e4 04 mov a,$04 +0dca: d5 05 04 mov $0405+x,a ; set track pointer hi to 0x0405 +0dcd: f8 07 mov x,$07 +0dcf: e8 00 mov a,#$00 +0dd1: d5 40 02 mov $0240+x,a +0dd4: d4 63 mov $63+x,a +0dd6: d4 6b mov $6b+x,a +0dd8: e8 ff mov a,#$ff +0dda: d5 58 02 mov $0258+x,a +0ddd: e8 80 mov a,#$80 +0ddf: d5 50 02 mov $0250+x,a +0de2: e8 00 mov a,#$00 +0de4: c5 65 02 mov $0265,a +0de7: e8 00 mov a,#$00 +0de9: e8 08 mov a,#$08 +0deb: d5 6d 02 mov $026d+x,a +0dee: e8 00 mov a,#$00 +0df0: d5 f5 03 mov $03f5+x,a +0df3: e8 00 mov a,#$00 +0df5: d5 fd 03 mov $03fd+x,a +0df8: f8 07 mov x,$07 +0dfa: e8 00 mov a,#$00 +0dfc: d4 59 mov $59+x,a +0dfe: e4 07 mov a,$07 +0e00: 1c asl a +0e01: 5d mov x,a +0e02: e4 05 mov a,$05 +0e04: d4 39 mov $39+x,a +0e06: e4 06 mov a,$06 +0e08: d4 3a mov $3a+x,a +0e0a: e4 07 mov a,$07 +0e0c: 1c asl a +0e0d: 1c asl a +0e0e: 1c asl a +0e0f: c4 06 mov $06,a +0e11: 3f 5d 0e call $0e5d +0e14: 6f ret + +0e15: e8 00 mov a,#$00 +0e17: 2d push a +0e18: c4 07 mov $07,a +0e1a: 1c asl a +0e1b: 1c asl a +0e1c: 1c asl a +0e1d: c4 06 mov $06,a +0e1f: 3f 3b 0e call $0e3b +0e22: ae pop a +0e23: bc inc a +0e24: 68 08 cmp a,#$08 +0e26: d0 ef bne $0e17 +0e28: 3f a2 17 call $17a2 +0e2b: 6f ret + +0e2c: 6f ret + +0e2d: f5 6d 02 mov a,$026d+x +0e30: 28 18 and a,#$18 +0e32: d0 06 bne $0e3a +0e34: 3f 01 12 call $1201 +0e37: 3f f3 13 call $13f3 +0e3a: 6f ret + +0e3b: f8 07 mov x,$07 +0e3d: f4 63 mov a,$63+x +0e3f: d0 06 bne $0e47 +0e41: f4 6b mov a,$6b+x +0e43: d0 02 bne $0e47 +0e45: 2f e5 bra $0e2c +0e47: f4 63 mov a,$63+x +0e49: 80 setc +0e4a: b5 48 02 sbc a,$0248+x +0e4d: d4 63 mov $63+x,a +0e4f: f4 6b mov a,$6b+x +0e51: a8 00 sbc a,#$00 +0e53: d4 6b mov $6b+x,a +0e55: 30 06 bmi $0e5d +0e57: d0 d4 bne $0e2d +0e59: f4 63 mov a,$63+x +0e5b: d0 d0 bne $0e2d +0e5d: e4 07 mov a,$07 +0e5f: 1c asl a +0e60: 5d mov x,a +0e61: f4 39 mov a,$39+x +0e63: c4 37 mov $37,a +0e65: f4 3a mov a,$3a+x +0e67: c4 38 mov $38,a +0e69: 8d 00 mov y,#$00 +0e6b: f7 37 mov a,($37)+y +0e6d: 68 c1 cmp a,#$c1 +0e6f: f0 0d beq $0e7e +0e71: 68 ff cmp a,#$ff +0e73: f0 09 beq $0e7e +0e75: 68 c1 cmp a,#$c1 ; dispatch vcmd +0e77: 90 0d bcc $0e86 +0e79: 3f 7e 0e call $0e7e +0e7c: 2f eb bra $0e69 +0e7e: 80 setc +0e7f: a8 c1 sbc a,#$c1 +0e81: 1c asl a +0e82: 5d mov x,a +0e83: 1f aa 0f jmp ($0faa+x) + +0e86: 2d push a +0e87: f8 07 mov x,$07 +0e89: f5 6d 02 mov a,$026d+x +0e8c: 28 f7 and a,#$f7 +0e8e: d5 6d 02 mov $026d+x,a +0e91: ae pop a +0e92: c4 00 mov $00,a +0e94: 8d 01 mov y,#$01 +0e96: f7 37 mov a,($37)+y +0e98: c4 01 mov $01,a +0e9a: f8 07 mov x,$07 +0e9c: f5 40 02 mov a,$0240+x +0e9f: 60 clrc +0ea0: 84 00 adc a,$00 +0ea2: 8d 00 mov y,#$00 +0ea4: cd 0c mov x,#$0c +0ea6: 9e div ya,x +0ea7: c4 00 mov $00,a +0ea9: dd mov a,y +0eaa: 1c asl a +0eab: c4 02 mov $02,a +0ead: e4 01 mov a,$01 +0eaf: 9f xcn a +0eb0: 5c lsr a +0eb1: 28 07 and a,#$07 +0eb3: 60 clrc +0eb4: 84 06 adc a,$06 +0eb6: fd mov y,a +0eb7: f6 a5 02 mov a,$02a5+y +0eba: 8d 18 mov y,#$18 +0ebc: cf mul ya +0ebd: c4 03 mov $03,a +0ebf: cb 04 mov $04,y +0ec1: e4 03 mov a,$03 +0ec3: 60 clrc +0ec4: 88 78 adc a,#$78 +0ec6: c4 03 mov $03,a +0ec8: e4 04 mov a,$04 +0eca: 84 10 adc a,$10 +0ecc: c4 04 mov $04,a +0ece: e4 03 mov a,$03 +0ed0: 60 clrc +0ed1: 84 02 adc a,$02 +0ed3: c4 03 mov $03,a +0ed5: e4 04 mov a,$04 +0ed7: 88 00 adc a,#$00 +0ed9: c4 04 mov $04,a +0edb: 8d 00 mov y,#$00 +0edd: f7 03 mov a,($03)+y +0edf: c4 2a mov $2a,a +0ee1: fc inc y +0ee2: f7 03 mov a,($03)+y +0ee4: c4 29 mov $29,a +0ee6: e4 00 mov a,$00 +0ee8: 68 04 cmp a,#$04 +0eea: b0 0f bcs $0efb +0eec: 80 setc +0eed: a8 04 sbc a,#$04 +0eef: 48 ff eor a,#$ff +0ef1: bc inc a +0ef2: 4b 2a lsr $2a +0ef4: 6b 29 ror $29 +0ef6: 9c dec a +0ef7: d0 f9 bne $0ef2 +0ef9: 2f 08 bra $0f03 +0efb: 80 setc +0efc: a8 03 sbc a,#$03 +0efe: c4 27 mov $27,a +0f00: 3f 05 1b call $1b05 +0f03: f8 07 mov x,$07 +0f05: f5 6d 02 mov a,$026d+x +0f08: 28 04 and a,#$04 +0f0a: d0 0a bne $0f16 +0f0c: e4 29 mov a,$29 +0f0e: d5 75 02 mov $0275+x,a +0f11: e4 2a mov a,$2a +0f13: d5 7d 02 mov $027d+x,a +0f16: f5 6d 02 mov a,$026d+x +0f19: 28 fb and a,#$fb +0f1b: d5 6d 02 mov $026d+x,a +0f1e: e4 01 mov a,$01 +0f20: c4 00 mov $00,a +0f22: 28 1f and a,#$1f +0f24: bc inc a +0f25: 1c asl a +0f26: 1c asl a +0f27: c4 29 mov $29,a +0f29: e8 00 mov a,#$00 +0f2b: c4 2a mov $2a,a +0f2d: e8 20 mov a,#$20 +0f2f: c4 27 mov $27,a +0f31: 3f 05 1b call $1b05 +0f34: f4 63 mov a,$63+x +0f36: 60 clrc +0f37: 84 29 adc a,$29 +0f39: d4 63 mov $63+x,a +0f3b: f4 6b mov a,$6b+x +0f3d: 84 2a adc a,$2a +0f3f: d4 6b mov $6b+x,a +0f41: e4 00 mov a,$00 +0f43: 9f xcn a +0f44: 5c lsr a +0f45: 28 07 and a,#$07 +0f47: 60 clrc +0f48: 84 06 adc a,$06 +0f4a: fd mov y,a +0f4b: f6 a5 02 mov a,$02a5+y +0f4e: d5 20 02 mov $0220+x,a +0f51: f8 07 mov x,$07 +0f53: f5 6d 02 mov a,$026d+x +0f56: 28 02 and a,#$02 +0f58: d0 12 bne $0f6c +0f5a: f6 e5 02 mov a,$02e5+y +0f5d: 6d push y +0f5e: c4 00 mov $00,a +0f60: 3f f6 10 call $10f6 +0f63: ee pop y +0f64: f6 25 03 mov a,$0325+y +0f67: c4 00 mov $00,a +0f69: 3f 3a 12 call $123a +0f6c: f8 07 mov x,$07 +0f6e: f5 6d 02 mov a,$026d+x +0f71: 28 fd and a,#$fd +0f73: d5 6d 02 mov $026d+x,a +0f76: f8 07 mov x,$07 +0f78: f5 6d 02 mov a,$026d+x +0f7b: 28 01 and a,#$01 +0f7d: d0 0f bne $0f8e +0f7f: f5 f5 03 mov a,$03f5+x +0f82: d5 fd 03 mov $03fd+x,a +0f85: e4 07 mov a,$07 +0f87: 3f fb 1a call $1afb +0f8a: 04 18 or a,$18 +0f8c: c4 18 mov $18,a +0f8e: f8 07 mov x,$07 +0f90: f5 6d 02 mov a,$026d+x +0f93: 28 fe and a,#$fe +0f95: d5 6d 02 mov $026d+x,a +0f98: e8 02 mov a,#$02 +0f9a: 3f 9d 1a call $1a9d +0f9d: e4 07 mov a,$07 +0f9f: 1c asl a +0fa0: 5d mov x,a +0fa1: e4 37 mov a,$37 +0fa3: d4 39 mov $39+x,a +0fa5: e4 38 mov a,$38 +0fa7: d4 3a mov $3a+x,a +0fa9: 6f ret + +; vcmd dispatch table +0faa: dw $1029 ; c1 - rest +0fac: dw $15e4 ; c2 - echo delay +0fae: dw $15d8 ; c3 - echo feedback +0fb0: dw $15f8 ; c4 - echo FIR - 1 +0fb2: dw $1604 ; c5 - echo FIR - 2 +0fb4: dw $1610 ; c6 - echo FIR - 3 +0fb6: dw $161c ; c7 - echo FIR - 4 +0fb8: dw $1628 ; c8 - echo FIR - 5 +0fba: dw $1634 ; c9 - echo FIR - 6 +0fbc: dw $1640 ; ca - echo FIR - 7 +0fbe: dw $164c ; cb - echo FIR - 8 +0fc0: dw $1658 ; cc - ASDR mode +0fc2: dw $1668 ; cd - gain env mode +0fc4: dw $1a2d ; ce - tie state +0fc6: dw $1678 ; cf - noise on +0fc8: dw $1687 ; d0 - noise off +0fca: dw $170b ; d1 - set instrument - 0 +0fcc: dw $170f ; d2 - set instrument - 1 +0fce: dw $1713 ; d3 - set instrument - 2 +0fd0: dw $1717 ; d4 - set instrument - 3 +0fd2: dw $171b ; d5 - set instrument - 4 +0fd4: dw $171f ; d6 - set instrument - 5 +0fd6: dw $1723 ; d7 - set instrument - 6 +0fd8: dw $1727 ; d8 - set instrument - 7 +0fda: dw $1749 ; d9 - write to instrument table - 0 +0fdc: dw $174d ; da - write to instrument table - 1 +0fde: dw $1751 ; db - write to instrument table - 2 +0fe0: dw $1755 ; dc - write to instrument table - 3 +0fe2: dw $1759 ; dd - write to instrument table - 4 +0fe4: dw $175d ; de - write to instrument table - 5 +0fe6: dw $1761 ; df - write to instrument table - 6 +0fe8: dw $1765 ; e0 - write to instrument table - 7 +0fea: dw $18d8 ; e1 - echo volume/pan +0fec: dw $1938 ; e2 - echo volume +0fee: dw $1698 ; e3 - echo on +0ff0: dw $16b1 ; e4 - echo off +0ff2: dw $16ce ; e5 - write to instrument table (2) - 0 +0ff4: dw $16d2 ; e6 - write to instrument table (2) - 1 +0ff6: dw $16d6 ; e7 - write to instrument table (2) - 2 +0ff8: dw $16da ; e8 - write to instrument table (2) - 3 +0ffa: dw $16de ; e9 - write to instrument table (2) - 4 +0ffc: dw $16e2 ; ea - write to instrument table (2) - 5 +0ffe: dw $16e6 ; eb - write to instrument table (2) - 6 +1000: dw $16ea ; ec - write to instrument table (2) - 7 +1002: dw $1863 ; ed - master volume/pan +1004: dw $18c1 ; ee - master volume +1006: dw $194f ; ef - pan +1008: dw $19d0 ; f0 - volume +100a: dw $1a8d ; f1 - note on delay +100c: dw $1028 ; f2 - nop +100e: dw $1028 ; f3 - nop +1010: dw $1028 ; f4 - nop +1012: dw $1065 ; f5 - song loop +1014: dw $1082 ; f6 - go to song loop +1016: dw $1a6b ; f7 - slur on +1018: dw $1a7d ; f8 - slur off +101a: dw $19e9 ; f9 - transpose +101c: dw $19f9 ; fa - tempo +101e: dw $1789 ; fb - master volume fade +1020: dw $10b8 ; fc - goto macro +1022: dw $109f ; fd - jump +1024: dw $10df ; fe - return from macro +1026: dw $10ed ; ff - end of channel + +; vcmd f2/f3/f4 - nop +1028: 6f ret + +; vcmd c1 - rest +1029: e4 07 mov a,$07 +102b: 3f fb 1a call $1afb +102e: 04 19 or a,$19 +1030: c4 19 mov $19,a +1032: f8 07 mov x,$07 +1034: 8d 01 mov y,#$01 +1036: f7 37 mov a,($37)+y +1038: bc inc a +1039: 1c asl a +103a: 1c asl a +103b: c4 29 mov $29,a +103d: e8 00 mov a,#$00 +103f: c4 2a mov $2a,a +1041: e8 20 mov a,#$20 +1043: c4 27 mov $27,a +1045: 3f 05 1b call $1b05 +1048: f4 63 mov a,$63+x +104a: 60 clrc +104b: 84 29 adc a,$29 +104d: d4 63 mov $63+x,a +104f: f4 6b mov a,$6b+x +1051: 84 2a adc a,$2a +1053: d4 6b mov $6b+x,a +1055: f5 6d 02 mov a,$026d+x +1058: 08 08 or a,#$08 +105a: d5 6d 02 mov $026d+x,a +105d: e8 02 mov a,#$02 +105f: 3f 9d 1a call $1a9d +1062: 5f 9d 0f jmp $0f9d + +; vcmd f5 - song loop +1065: 8d 01 mov y,#$01 +1067: f7 37 mov a,($37)+y +1069: c4 02 mov $02,a +106b: e4 37 mov a,$37 +106d: 60 clrc +106e: 88 02 adc a,#$02 +1070: c4 37 mov $37,a +1072: c4 00 mov $00,a +1074: e4 38 mov a,$38 +1076: 88 00 adc a,#$00 +1078: c4 38 mov $38,a +107a: c4 01 mov $01,a +107c: e8 03 mov a,#$03 +107e: 3f ad 1a call $1aad +1081: 6f ret + +; vcmd f6 - go to song loop +1082: e8 03 mov a,#$03 +1084: 3f d8 1a call $1ad8 +1087: 8b 02 dec $02 +1089: f0 0e beq $1099 +108b: e4 00 mov a,$00 +108d: c4 37 mov $37,a +108f: e4 01 mov a,$01 +1091: c4 38 mov $38,a +1093: e8 03 mov a,#$03 +1095: 3f ad 1a call $1aad +1098: 6f ret + +1099: e8 01 mov a,#$01 +109b: 3f 9d 1a call $1a9d +109e: 6f ret + +; vcmd fd - jump +109f: 8d 01 mov y,#$01 +10a1: f7 37 mov a,($37)+y +10a3: c4 00 mov $00,a +10a5: fc inc y +10a6: f7 37 mov a,($37)+y +10a8: c4 01 mov $01,a +10aa: e4 37 mov a,$37 +10ac: 60 clrc +10ad: 84 00 adc a,$00 +10af: c4 37 mov $37,a +10b1: e4 38 mov a,$38 +10b3: 84 01 adc a,$01 +10b5: c4 38 mov $38,a +10b7: 6f ret + +; vcmd fc - call macro +10b8: 8d 02 mov y,#$02 +10ba: f7 37 mov a,($37)+y +10bc: 2d push a +10bd: dc dec y +10be: f7 37 mov a,($37)+y +10c0: 2d push a +10c1: e4 37 mov a,$37 +10c3: 60 clrc +10c4: 88 03 adc a,#$03 +10c6: c4 00 mov $00,a +10c8: e4 38 mov a,$38 +10ca: 88 00 adc a,#$00 +10cc: c4 01 mov $01,a +10ce: e8 02 mov a,#$02 +10d0: 3f ad 1a call $1aad +10d3: ae pop a +10d4: 60 clrc +10d5: 84 37 adc a,$37 +10d7: c4 37 mov $37,a +10d9: ae pop a +10da: 84 38 adc a,$38 +10dc: c4 38 mov $38,a +10de: 6f ret + +; vcmd fe - return from macro +10df: e8 02 mov a,#$02 +10e1: 3f d8 1a call $1ad8 +10e4: e4 00 mov a,$00 +10e6: c4 37 mov $37,a +10e8: e4 01 mov a,$01 +10ea: c4 38 mov $38,a +10ec: 6f ret + +; vcmd ff - end of channel +10ed: 3f 56 1a call $1a56 +10f0: 3f ba 16 call $16ba +10f3: 5f 9d 0f jmp $0f9d + +10f6: f8 07 mov x,$07 +10f8: f5 28 02 mov a,$0228+x +10fb: 28 80 and a,#$80 +10fd: f0 3c beq $113b +10ff: e4 00 mov a,$00 +1101: 1c asl a +1102: fd mov y,a +1103: e4 07 mov a,$07 +1105: 1c asl a +1106: 5d mov x,a +1107: e5 06 20 mov a,$2006 +110a: 60 clrc +110b: 88 00 adc a,#$00 +110d: c4 01 mov $01,a +110f: e5 07 20 mov a,$2007 +1112: 88 20 adc a,#$20 +1114: c4 02 mov $02,a +1116: f7 01 mov a,($01)+y +1118: 60 clrc +1119: 88 00 adc a,#$00 +111b: c4 03 mov $03,a +111d: fc inc y +111e: f7 01 mov a,($01)+y +1120: 88 20 adc a,#$20 +1122: c4 04 mov $04,a +1124: f8 07 mov x,$07 +1126: 8d 00 mov y,#$00 +1128: f7 03 mov a,($03)+y +112a: 08 80 or a,#$80 +112c: d5 28 02 mov $0228+x,a +112f: fc inc y +1130: f7 03 mov a,($03)+y +1132: d5 30 02 mov $0230+x,a +1135: e8 50 mov a,#$50 +1137: d5 38 02 mov $0238+x,a +113a: 6f ret + +113b: e4 00 mov a,$00 +113d: 1c asl a +113e: fd mov y,a +113f: e4 07 mov a,$07 +1141: 1c asl a +1142: 5d mov x,a +1143: e5 02 20 mov a,$2002 +1146: 60 clrc +1147: 88 00 adc a,#$00 +1149: c4 01 mov $01,a +114b: e5 03 20 mov a,$2003 +114e: 88 20 adc a,#$20 +1150: c4 02 mov $02,a +1152: f7 01 mov a,($01)+y +1154: 60 clrc +1155: 88 00 adc a,#$00 +1157: d5 65 03 mov $0365+x,a +115a: fc inc y +115b: f7 01 mov a,($01)+y +115d: 88 20 adc a,#$20 +115f: d5 66 03 mov $0366+x,a +1162: 3f 66 11 call $1166 +1165: 6f ret + +1166: e4 07 mov a,$07 +1168: 1c asl a +1169: 5d mov x,a +116a: f5 65 03 mov a,$0365+x +116d: c4 00 mov $00,a +116f: f5 66 03 mov a,$0366+x +1172: c4 01 mov $01,a +1174: e8 00 mov a,#$00 +1176: d5 7d 03 mov $037d+x,a +1179: 8d 00 mov y,#$00 +117b: f7 00 mov a,($00)+y +117d: c4 04 mov $04,a +117f: 5c lsr a +1180: d5 7e 03 mov $037e+x,a +1183: f8 07 mov x,$07 +1185: d5 38 02 mov $0238+x,a +1188: c4 02 mov $02,a +118a: fc inc y +118b: f7 00 mov a,($00)+y +118d: f0 68 beq $11f7 +118f: d5 75 03 mov $0375+x,a +1192: c4 03 mov $03,a +1194: e4 07 mov a,$07 +1196: 1c asl a +1197: 5d mov x,a +1198: e4 00 mov a,$00 +119a: 60 clrc +119b: 88 02 adc a,#$02 +119d: d5 65 03 mov $0365+x,a +11a0: c4 00 mov $00,a +11a2: e4 01 mov a,$01 +11a4: 88 00 adc a,#$00 +11a6: d5 66 03 mov $0366+x,a +11a9: c4 01 mov $01,a +11ab: 8d 00 mov y,#$00 +11ad: f7 00 mov a,($00)+y +11af: 64 04 cmp a,$04 +11b1: f0 3c beq $11ef +11b3: 5c lsr a +11b4: 80 setc +11b5: a4 02 sbc a,$02 +11b7: 0d push psw +11b8: 10 03 bpl $11bd +11ba: 48 ff eor a,#$ff +11bc: bc inc a +11bd: c4 02 mov $02,a +11bf: c4 2e mov $2e,a +11c1: e8 00 mov a,#$00 +11c3: c4 2d mov $2d,a +11c5: e4 03 mov a,$03 +11c7: c4 2b mov $2b,a +11c9: 3f 37 1b call $1b37 +11cc: 8e pop psw +11cd: 10 11 bpl $11e0 +11cf: e4 2d mov a,$2d +11d1: 48 ff eor a,#$ff +11d3: 60 clrc +11d4: 88 01 adc a,#$01 +11d6: c4 2d mov $2d,a +11d8: e4 2e mov a,$2e +11da: 48 ff eor a,#$ff +11dc: 88 00 adc a,#$00 +11de: c4 2e mov $2e,a +11e0: e4 07 mov a,$07 +11e2: 1c asl a +11e3: 5d mov x,a +11e4: e4 2d mov a,$2d +11e6: d5 8d 03 mov $038d+x,a +11e9: e4 2e mov a,$2e +11eb: d5 8e 03 mov $038e+x,a +11ee: 6f ret + +11ef: f8 07 mov x,$07 +11f1: e8 00 mov a,#$00 +11f3: d5 75 03 mov $0375+x,a +11f6: 6f ret + +11f7: e4 07 mov a,$07 +11f9: 3f fb 1a call $1afb +11fc: 04 19 or a,$19 +11fe: c4 19 mov $19,a +1200: 6f ret + +1201: f8 07 mov x,$07 +1203: f5 28 02 mov a,$0228+x +1206: 28 80 and a,#$80 +1208: f0 01 beq $120b +120a: 6f ret + +120b: f5 75 03 mov a,$0375+x +120e: f0 29 beq $1239 +1210: f5 75 03 mov a,$0375+x +1213: 9c dec a +1214: d5 75 03 mov $0375+x,a +1217: f0 1d beq $1236 +1219: 7d mov a,x +121a: 1c asl a +121b: 5d mov x,a +121c: f5 7d 03 mov a,$037d+x +121f: 60 clrc +1220: 95 8d 03 adc a,$038d+x +1223: d5 7d 03 mov $037d+x,a +1226: f5 7e 03 mov a,$037e+x +1229: 95 8e 03 adc a,$038e+x +122c: d5 7e 03 mov $037e+x,a +122f: f8 07 mov x,$07 +1231: d5 38 02 mov $0238+x,a +1234: 2f 03 bra $1239 +1236: 3f 66 11 call $1166 +1239: 6f ret + +123a: f8 07 mov x,$07 +123c: f5 6d 02 mov a,$026d+x +123f: 28 10 and a,#$10 +1241: f0 15 beq $1258 +1243: f5 75 02 mov a,$0275+x +1246: d5 85 02 mov $0285+x,a +1249: f5 7d 02 mov a,$027d+x +124c: d5 8d 02 mov $028d+x,a +124f: e8 00 mov a,#$00 +1251: d5 95 02 mov $0295+x,a +1254: d5 9d 02 mov $029d+x,a +1257: 6f ret + +1258: e4 05 mov a,$05 +125a: 2d push a +125b: e4 06 mov a,$06 +125d: 2d push a +125e: e4 07 mov a,$07 +1260: 2d push a +1261: f5 75 02 mov a,$0275+x +1264: d5 85 02 mov $0285+x,a +1267: d5 dd 03 mov $03dd+x,a +126a: f5 7d 02 mov a,$027d+x +126d: d5 8d 02 mov $028d+x,a +1270: d5 e5 03 mov $03e5+x,a +1273: e8 00 mov a,#$00 +1275: d5 95 02 mov $0295+x,a +1278: d5 9d 02 mov $029d+x,a +127b: d5 ed 03 mov $03ed+x,a +127e: e4 00 mov a,$00 +1280: 1c asl a +1281: fd mov y,a +1282: f8 07 mov x,$07 +1284: e4 00 mov a,$00 +1286: d5 b5 03 mov $03b5+x,a +1289: e5 08 20 mov a,$2008 +128c: 60 clrc +128d: 88 00 adc a,#$00 +128f: c4 01 mov $01,a +1291: e5 09 20 mov a,$2009 +1294: 88 20 adc a,#$20 +1296: c4 02 mov $02,a +1298: f7 01 mov a,($01)+y +129a: 60 clrc +129b: 88 00 adc a,#$00 +129d: d5 9d 03 mov $039d+x,a +12a0: fc inc y +12a1: f7 01 mov a,($01)+y +12a3: 88 20 adc a,#$20 +12a5: d5 a5 03 mov $03a5+x,a +12a8: e8 00 mov a,#$00 +12aa: d5 bd 03 mov $03bd+x,a +12ad: f5 9d 03 mov a,$039d+x +12b0: c4 01 mov $01,a +12b2: f5 a5 03 mov a,$03a5+x +12b5: c4 02 mov $02,a +12b7: 8d 00 mov y,#$00 +12b9: f7 01 mov a,($01)+y +12bb: d5 ad 03 mov $03ad+x,a +12be: f0 0e beq $12ce +12c0: 68 ff cmp a,#$ff +12c2: f0 0d beq $12d1 +12c4: fc inc y +12c5: f7 01 mov a,($01)+y +12c7: 10 0b bpl $12d4 +12c9: 3f 65 13 call $1365 +12cc: 2f 09 bra $12d7 +12ce: 5f 87 13 jmp $1387 + +12d1: 5f b7 13 jmp $13b7 + +12d4: 3f 44 13 call $1344 +12d7: e4 05 mov a,$05 +12d9: 75 e5 03 cmp a,$03e5+x +12dc: f0 04 beq $12e2 +12de: 90 1b bcc $12fb +12e0: 2f 07 bra $12e9 +12e2: e4 06 mov a,$06 +12e4: 75 dd 03 cmp a,$03dd+x +12e7: 90 12 bcc $12fb +12e9: e4 06 mov a,$06 +12eb: 80 setc +12ec: b5 dd 03 sbc a,$03dd+x +12ef: c4 2d mov $2d,a +12f1: e4 05 mov a,$05 +12f3: 80 setc +12f4: b5 e5 03 sbc a,$03e5+x +12f7: c4 2e mov $2e,a +12f9: 2f 14 bra $130f +12fb: e8 01 mov a,#$01 +12fd: d5 bd 03 mov $03bd+x,a +1300: f5 dd 03 mov a,$03dd+x +1303: 80 setc +1304: a4 06 sbc a,$06 +1306: c4 2d mov $2d,a +1308: f5 e5 03 mov a,$03e5+x +130b: a4 05 sbc a,$05 +130d: c4 2e mov $2e,a +130f: f5 ad 03 mov a,$03ad+x +1312: c4 2b mov $2b,a +1314: 4d push x +1315: 3f 37 1b call $1b37 +1318: ce pop x +1319: e4 2e mov a,$2e +131b: d5 cd 03 mov $03cd+x,a +131e: e4 2d mov a,$2d +1320: d5 c5 03 mov $03c5+x,a +1323: e4 2c mov a,$2c +1325: c4 2e mov $2e,a +1327: e8 00 mov a,#$00 +1329: c4 2d mov $2d,a +132b: f5 ad 03 mov a,$03ad+x +132e: c4 2b mov $2b,a +1330: 4d push x +1331: 3f 37 1b call $1b37 +1334: ce pop x +1335: e4 2d mov a,$2d +1337: d5 d5 03 mov $03d5+x,a +133a: ae pop a +133b: c4 07 mov $07,a +133d: ae pop a +133e: c4 06 mov $06,a +1340: ae pop a +1341: c4 05 mov $05,a +1343: 6f ret + +1344: c4 27 mov $27,a +1346: f5 75 02 mov a,$0275+x +1349: 1c asl a +134a: c4 29 mov $29,a +134c: f5 7d 02 mov a,$027d+x +134f: 3c rol a +1350: c4 2a mov $2a,a +1352: 3f 1b 1b call $1b1b +1355: e4 06 mov a,$06 +1357: 60 clrc +1358: 95 75 02 adc a,$0275+x +135b: c4 06 mov $06,a +135d: e4 05 mov a,$05 +135f: 95 7d 02 adc a,$027d+x +1362: c4 05 mov $05,a +1364: 6f ret + +1365: 48 ff eor a,#$ff +1367: bc inc a +1368: c4 27 mov $27,a +136a: f5 75 02 mov a,$0275+x +136d: c4 29 mov $29,a +136f: f5 7d 02 mov a,$027d+x +1372: c4 2a mov $2a,a +1374: 3f 1b 1b call $1b1b +1377: f5 75 02 mov a,$0275+x +137a: 80 setc +137b: a4 06 sbc a,$06 +137d: c4 06 mov $06,a +137f: f5 7d 02 mov a,$027d+x +1382: a4 05 sbc a,$05 +1384: c4 05 mov $05,a +1386: 6f ret + +1387: fc inc y +1388: f7 01 mov a,($01)+y +138a: 10 05 bpl $1391 +138c: 3f 65 13 call $1365 +138f: 2f 03 bra $1394 +1391: 3f 44 13 call $1344 +1394: e4 05 mov a,$05 +1396: d5 e5 03 mov $03e5+x,a +1399: e4 06 mov a,$06 +139b: d5 dd 03 mov $03dd+x,a +139e: e8 00 mov a,#$00 +13a0: d5 ed 03 mov $03ed+x,a +13a3: f5 9d 03 mov a,$039d+x +13a6: 60 clrc +13a7: 88 02 adc a,#$02 +13a9: d5 9d 03 mov $039d+x,a +13ac: f5 a5 03 mov a,$03a5+x +13af: 88 00 adc a,#$00 +13b1: d5 a5 03 mov $03a5+x,a +13b4: 5f a8 12 jmp $12a8 +13b7: fc inc y +13b8: f7 01 mov a,($01)+y +13ba: 1c asl a +13bb: 2d push a +13bc: f5 b5 03 mov a,$03b5+x +13bf: 1c asl a +13c0: fd mov y,a +13c1: e5 08 20 mov a,$2008 +13c4: 60 clrc +13c5: 88 00 adc a,#$00 +13c7: c4 01 mov $01,a +13c9: e5 09 20 mov a,$2009 +13cc: 88 20 adc a,#$20 +13ce: c4 02 mov $02,a +13d0: f7 01 mov a,($01)+y +13d2: 60 clrc +13d3: 88 00 adc a,#$00 +13d5: d5 9d 03 mov $039d+x,a +13d8: fc inc y +13d9: f7 01 mov a,($01)+y +13db: 88 20 adc a,#$20 +13dd: d5 a5 03 mov $03a5+x,a +13e0: ae pop a +13e1: 60 clrc +13e2: 95 9d 03 adc a,$039d+x +13e5: d5 9d 03 mov $039d+x,a +13e8: f5 a5 03 mov a,$03a5+x +13eb: 88 00 adc a,#$00 +13ed: d5 a5 03 mov $03a5+x,a +13f0: 5f a8 12 jmp $12a8 + +13f3: f8 07 mov x,$07 +13f5: f5 ad 03 mov a,$03ad+x +13f8: 9c dec a +13f9: d5 ad 03 mov $03ad+x,a +13fc: f0 4b beq $1449 +13fe: f5 bd 03 mov a,$03bd+x +1401: d0 23 bne $1426 +1403: f5 ed 03 mov a,$03ed+x +1406: 60 clrc +1407: 95 d5 03 adc a,$03d5+x +140a: d5 ed 03 mov $03ed+x,a +140d: f5 dd 03 mov a,$03dd+x +1410: 95 c5 03 adc a,$03c5+x +1413: d5 dd 03 mov $03dd+x,a +1416: d5 85 02 mov $0285+x,a +1419: f5 e5 03 mov a,$03e5+x +141c: 95 cd 03 adc a,$03cd+x +141f: d5 e5 03 mov $03e5+x,a +1422: d5 8d 02 mov $028d+x,a +1425: 6f ret + +1426: f5 ed 03 mov a,$03ed+x +1429: 80 setc +142a: b5 d5 03 sbc a,$03d5+x +142d: d5 ed 03 mov $03ed+x,a +1430: f5 dd 03 mov a,$03dd+x +1433: b5 c5 03 sbc a,$03c5+x +1436: d5 dd 03 mov $03dd+x,a +1439: d5 85 02 mov $0285+x,a +143c: f5 e5 03 mov a,$03e5+x +143f: b5 cd 03 sbc a,$03cd+x +1442: d5 e5 03 mov $03e5+x,a +1445: d5 8d 02 mov $028d+x,a +1448: 6f ret + +1449: f5 9d 03 mov a,$039d+x +144c: 60 clrc +144d: 88 02 adc a,#$02 +144f: d5 9d 03 mov $039d+x,a +1452: f5 a5 03 mov a,$03a5+x +1455: 88 00 adc a,#$00 +1457: d5 a5 03 mov $03a5+x,a +145a: e4 05 mov a,$05 +145c: 2d push a +145d: e4 06 mov a,$06 +145f: 2d push a +1460: e4 07 mov a,$07 +1462: 2d push a +1463: 5f a8 12 jmp $12a8 + +1466: f8 07 mov x,$07 +1468: e4 00 mov a,$00 +146a: d5 20 02 mov $0220+x,a +146d: 8d 18 mov y,#$18 +146f: cf mul ya +1470: c4 03 mov $03,a +1472: cb 04 mov $04,y +1474: e4 03 mov a,$03 +1476: 60 clrc +1477: 88 78 adc a,#$78 +1479: c4 03 mov $03,a +147b: e4 04 mov a,$04 +147d: 84 10 adc a,$10 +147f: c4 04 mov $04,a +1481: 8d 00 mov y,#$00 +1483: f7 03 mov a,($03)+y +1485: d5 18 02 mov $0218+x,a +1488: d5 8d 02 mov $028d+x,a +148b: fc inc y +148c: f7 03 mov a,($03)+y +148e: d5 10 02 mov $0210+x,a +1491: d5 85 02 mov $0285+x,a +1494: e8 7f mov a,#$7f +1496: d5 38 02 mov $0238+x,a +1499: e8 00 mov a,#$00 +149b: d5 28 02 mov $0228+x,a +149e: e8 00 mov a,#$00 +14a0: d5 30 02 mov $0230+x,a +14a3: d5 95 02 mov $0295+x,a +14a6: d5 9d 02 mov $029d+x,a +14a9: e8 7f mov a,#$7f +14ab: c5 00 02 mov $0200,a +14ae: c5 08 02 mov $0208,a +14b1: c4 13 mov $13,a +14b3: c4 14 mov $14,a +14b5: e8 20 mov a,#$20 +14b7: c4 17 mov $17,a +14b9: 7d mov a,x +14ba: 3f fb 1a call $1afb +14bd: 04 18 or a,$18 +14bf: c4 18 mov $18,a +14c1: 6f ret + +14c2: e4 06 mov a,$06 +14c4: 8d 18 mov y,#$18 +14c6: cf mul ya +14c7: c4 03 mov $03,a +14c9: cb 04 mov $04,y +14cb: e4 03 mov a,$03 +14cd: 60 clrc +14ce: 88 78 adc a,#$78 +14d0: c4 03 mov $03,a +14d2: e4 04 mov a,$04 +14d4: 84 10 adc a,$10 +14d6: c4 04 mov $04,a +14d8: f8 07 mov x,$07 +14da: 8d 01 mov y,#$01 +14dc: f7 03 mov a,($03)+y +14de: 80 setc +14df: a4 00 sbc a,$00 +14e1: d7 03 mov ($03)+y,a +14e3: d5 10 02 mov $0210+x,a +14e6: d5 85 02 mov $0285+x,a +14e9: dc dec y +14ea: f7 03 mov a,($03)+y +14ec: a8 00 sbc a,#$00 +14ee: d7 03 mov ($03)+y,a +14f0: d5 18 02 mov $0218+x,a +14f3: d5 8d 02 mov $028d+x,a +14f6: 6f ret + +14f7: e4 06 mov a,$06 +14f9: 8d 18 mov y,#$18 +14fb: cf mul ya +14fc: c4 03 mov $03,a +14fe: cb 04 mov $04,y +1500: e4 03 mov a,$03 +1502: 60 clrc +1503: 88 78 adc a,#$78 +1505: c4 03 mov $03,a +1507: e4 04 mov a,$04 +1509: 84 10 adc a,$10 +150b: c4 04 mov $04,a +150d: f8 07 mov x,$07 +150f: 8d 01 mov y,#$01 +1511: f7 03 mov a,($03)+y +1513: 60 clrc +1514: 84 00 adc a,$00 +1516: d7 03 mov ($03)+y,a +1518: d5 10 02 mov $0210+x,a +151b: d5 85 02 mov $0285+x,a +151e: dc dec y +151f: f7 03 mov a,($03)+y +1521: 88 00 adc a,#$00 +1523: d7 03 mov ($03)+y,a +1525: d5 18 02 mov $0218+x,a +1528: d5 8d 02 mov $028d+x,a +152b: 6f ret + +152c: e8 05 mov a,#$05 +152e: c4 02 mov $02,a +1530: 4b 07 lsr $07 +1532: 90 2b bcc $155f +1534: f8 02 mov x,$02 +1536: f5 20 02 mov a,$0220+x +1539: 8d 18 mov y,#$18 +153b: cf mul ya +153c: c4 03 mov $03,a +153e: cb 04 mov $04,y +1540: e4 03 mov a,$03 +1542: 60 clrc +1543: 88 78 adc a,#$78 +1545: c4 03 mov $03,a +1547: e4 04 mov a,$04 +1549: 84 10 adc a,$10 +154b: c4 04 mov $04,a +154d: 8d 01 mov y,#$01 +154f: f7 03 mov a,($03)+y +1551: 60 clrc +1552: 84 00 adc a,$00 +1554: d5 75 02 mov $0275+x,a +1557: dc dec y +1558: f7 03 mov a,($03)+y +155a: 84 01 adc a,$01 +155c: d5 7d 02 mov $027d+x,a +155f: ab 02 inc $02 +1561: e4 02 mov a,$02 +1563: 68 07 cmp a,#$07 +1565: d0 c9 bne $1530 +1567: 6f ret + +1568: e5 00 20 mov a,$2000 +156b: 60 clrc +156c: 88 00 adc a,#$00 +156e: c4 01 mov $01,a +1570: e5 01 20 mov a,$2001 +1573: 88 20 adc a,#$20 +1575: c4 02 mov $02,a +1577: e4 00 mov a,$00 +1579: 1c asl a +157a: fd mov y,a +157b: f7 01 mov a,($01)+y +157d: 60 clrc +157e: 88 00 adc a,#$00 +1580: c4 00 mov $00,a +1582: c4 03 mov $03,a +1584: fc inc y +1585: f7 01 mov a,($01)+y +1587: 88 20 adc a,#$20 +1589: c4 01 mov $01,a +158b: c4 04 mov $04,a +158d: e8 00 mov a,#$00 +158f: c4 07 mov $07,a +1591: 8d 00 mov y,#$00 +1593: f7 00 mov a,($00)+y +1595: c4 05 mov $05,a +1597: fc inc y +1598: f7 00 mov a,($00)+y +159a: c4 06 mov $06,a +159c: e4 01 mov a,$01 +159e: 2d push a +159f: e4 00 mov a,$00 +15a1: 2d push a +15a2: e4 03 mov a,$03 +15a4: 2d push a +15a5: e4 04 mov a,$04 +15a7: 2d push a +15a8: 3f c5 15 call $15c5 +15ab: ae pop a +15ac: c4 04 mov $04,a +15ae: ae pop a +15af: c4 03 mov $03,a +15b1: ae pop a +15b2: 60 clrc +15b3: 88 02 adc a,#$02 +15b5: c4 00 mov $00,a +15b7: ae pop a +15b8: 88 00 adc a,#$00 +15ba: c4 01 mov $01,a +15bc: ab 07 inc $07 +15be: e4 07 mov a,$07 +15c0: 68 08 cmp a,#$08 +15c2: d0 cd bne $1591 +15c4: 6f ret + +15c5: e4 05 mov a,$05 +15c7: 68 00 cmp a,#$00 +15c9: d0 06 bne $15d1 +15cb: e4 06 mov a,$06 +15cd: 68 00 cmp a,#$00 +15cf: f0 06 beq $15d7 +15d1: 3f 56 1a call $1a56 +15d4: 3f ba 16 call $16ba +15d7: 6f ret + +; vcmd c3 - echo feedback +15d8: 8d 01 mov y,#$01 +15da: f7 37 mov a,($37)+y +15dc: c4 1b mov $1b,a +15de: e8 02 mov a,#$02 +15e0: 3f 9d 1a call $1a9d +15e3: 6f ret + +; vcmd c2 - echo delay +15e4: 8d 01 mov y,#$01 +15e6: f7 37 mov a,($37)+y +15e8: c4 1e mov $1e,a +15ea: e8 0f mov a,#$0f +15ec: c4 11 mov $11,a +15ee: e4 1e mov a,$1e +15f0: c4 12 mov $12,a +15f2: e8 02 mov a,#$02 +15f4: 3f 9d 1a call $1a9d +15f7: 6f ret + +; vcmd c4 - echo FIR - 1 +15f8: 8d 01 mov y,#$01 +15fa: f7 37 mov a,($37)+y +15fc: c4 1f mov $1f,a +15fe: e8 02 mov a,#$02 +1600: 3f 9d 1a call $1a9d +1603: 6f ret + +; vcmd c5 - echo FIR - 2 +1604: 8d 01 mov y,#$01 +1606: f7 37 mov a,($37)+y +1608: c4 20 mov $20,a +160a: e8 02 mov a,#$02 +160c: 3f 9d 1a call $1a9d +160f: 6f ret + +; vcmd c6 - echo FIR - 3 +1610: 8d 01 mov y,#$01 +1612: f7 37 mov a,($37)+y +1614: c4 21 mov $21,a +1616: e8 02 mov a,#$02 +1618: 3f 9d 1a call $1a9d +161b: 6f ret + +; vcmd c7 - echo FIR - 4 +161c: 8d 01 mov y,#$01 +161e: f7 37 mov a,($37)+y +1620: c4 22 mov $22,a +1622: e8 02 mov a,#$02 +1624: 3f 9d 1a call $1a9d +1627: 6f ret + +; vcmd c8 - echo FIR - 5 +1628: 8d 01 mov y,#$01 +162a: f7 37 mov a,($37)+y +162c: c4 23 mov $23,a +162e: e8 02 mov a,#$02 +1630: 3f 9d 1a call $1a9d +1633: 6f ret + +; vcmd c9 - echo FIR - 6 +1634: 8d 01 mov y,#$01 +1636: f7 37 mov a,($37)+y +1638: c4 1f mov $1f,a +163a: e8 02 mov a,#$02 +163c: 3f 9d 1a call $1a9d +163f: 6f ret + +; vcmd ca - echo FIR - 7 +1640: 8d 01 mov y,#$01 +1642: f7 37 mov a,($37)+y +1644: c4 1f mov $1f,a +1646: e8 02 mov a,#$02 +1648: 3f 9d 1a call $1a9d +164b: 6f ret + +; vcmd cb - echo FIR - 8 +164c: 8d 01 mov y,#$01 +164e: f7 37 mov a,($37)+y +1650: c4 1f mov $1f,a +1652: e8 02 mov a,#$02 +1654: 3f 9d 1a call $1a9d +1657: 6f ret + +; vcmd cc - ASDR mode +1658: f8 07 mov x,$07 +165a: f5 28 02 mov a,$0228+x +165d: 08 80 or a,#$80 +165f: d5 28 02 mov $0228+x,a +1662: e8 01 mov a,#$01 +1664: 3f 9d 1a call $1a9d +1667: 6f ret + +; vcmd cd - gain env mode +1668: f8 07 mov x,$07 +166a: f5 28 02 mov a,$0228+x +166d: 28 7f and a,#$7f +166f: d5 28 02 mov $0228+x,a +1672: e8 01 mov a,#$01 +1674: 3f 9d 1a call $1a9d +1677: 6f ret + +; vcmd cf - noise on +1678: e4 07 mov a,$07 +167a: 3f fb 1a call $1afb +167d: 04 1c or a,$1c +167f: c4 1c mov $1c,a +1681: e8 01 mov a,#$01 +1683: 3f 9d 1a call $1a9d +1686: 6f ret + +; vcmd d0 - noise off +1687: e4 07 mov a,$07 +1689: 3f fb 1a call $1afb +168c: 48 ff eor a,#$ff +168e: 24 1c and a,$1c +1690: c4 1c mov $1c,a +1692: e8 01 mov a,#$01 +1694: 3f 9d 1a call $1a9d +1697: 6f ret + +; vcmd e3 - echo on +1698: e4 07 mov a,$07 +169a: 3f fb 1a call $1afb +169d: 04 1d or a,$1d +169f: c4 1d mov $1d,a +16a1: e4 11 mov a,$11 +16a3: d0 06 bne $16ab +16a5: e4 17 mov a,$17 +16a7: 28 df and a,#$df +16a9: c4 17 mov $17,a +16ab: e8 01 mov a,#$01 +16ad: 3f 9d 1a call $1a9d +16b0: 6f ret + +; vcmd e4 - echo off +16b1: 3f ba 16 call $16ba +16b4: e8 01 mov a,#$01 +16b6: 3f 9d 1a call $1a9d +16b9: 6f ret + +16ba: e4 07 mov a,$07 +16bc: 3f fb 1a call $1afb +16bf: 48 ff eor a,#$ff +16c1: 24 1d and a,$1d +16c3: c4 1d mov $1d,a +16c5: d0 06 bne $16cd +16c7: e8 00 mov a,#$00 +16c9: c4 15 mov $15,a +16cb: c4 16 mov $16,a +16cd: 6f ret + +; vcmd e5 - write to instrument table (2) - 0 +16ce: e8 00 mov a,#$00 +16d0: 2f 1c bra $16ee +; vcmd e6 - write to instrument table (2) - 1 +16d2: e8 01 mov a,#$01 +16d4: 2f 18 bra $16ee +; vcmd e7 - write to instrument table (2) - 2 +16d6: e8 02 mov a,#$02 +16d8: 2f 14 bra $16ee +; vcmd e8 - write to instrument table (2) - 3 +16da: e8 03 mov a,#$03 +16dc: 2f 10 bra $16ee +; vcmd e9 - write to instrument table (2) - 4 +16de: e8 04 mov a,#$04 +16e0: 2f 0c bra $16ee +; vcmd ea - write to instrument table (2) - 5 +16e2: e8 05 mov a,#$05 +16e4: 2f 08 bra $16ee +; vcmd eb - write to instrument table (2) - 6 +16e6: e8 06 mov a,#$06 +16e8: 2f 04 bra $16ee +; vcmd ec - write to instrument table (2) - 7 +16ea: e8 07 mov a,#$07 +16ec: 2f 00 bra $16ee +16ee: 60 clrc +16ef: 84 06 adc a,$06 +16f1: 5d mov x,a +16f2: 8d 01 mov y,#$01 +16f4: f7 37 mov a,($37)+y +16f6: d5 a5 02 mov $02a5+x,a +16f9: fc inc y +16fa: f7 37 mov a,($37)+y +16fc: d5 e5 02 mov $02e5+x,a +16ff: fc inc y +1700: f7 37 mov a,($37)+y +1702: d5 25 03 mov $0325+x,a +1705: e8 04 mov a,#$04 +1707: 3f 9d 1a call $1a9d +170a: 6f ret + +; vcmd d1 - set instrument - 0 +170b: e8 00 mov a,#$00 +170d: 2f 1c bra $172b +; vcmd d2 - set instrument - 1 +170f: e8 01 mov a,#$01 +1711: 2f 18 bra $172b +; vcmd d3 - set instrument - 2 +1713: e8 02 mov a,#$02 +1715: 2f 14 bra $172b +; vcmd d4 - set instrument - 3 +1717: e8 03 mov a,#$03 +1719: 2f 10 bra $172b +; vcmd d5 - set instrument - 4 +171b: e8 04 mov a,#$04 +171d: 2f 0c bra $172b +; vcmd d6 - set instrument - 5 +171f: e8 05 mov a,#$05 +1721: 2f 08 bra $172b +; vcmd d7 - set instrument - 6 +1723: e8 06 mov a,#$06 +1725: 2f 04 bra $172b +; vcmd d8 - set instrument - 7 +1727: e8 07 mov a,#$07 +1729: 2f 00 bra $172b +172b: 60 clrc +172c: 84 06 adc a,$06 +172e: 5d mov x,a +172f: f5 a5 02 mov a,$02a5+x +1732: c4 00 mov $00,a +1734: f5 e5 02 mov a,$02e5+x +1737: c4 01 mov $01,a +1739: f5 25 03 mov a,$0325+x +173c: c4 02 mov $02,a +173e: e8 03 mov a,#$03 +1740: 3f ad 1a call $1aad +1743: e8 01 mov a,#$01 +1745: 3f 9d 1a call $1a9d +1748: 6f ret + +; vcmd d9 - write to instrument table - 0 +1749: e8 00 mov a,#$00 +174b: 2f 1c bra $1769 +; vcmd da - write to instrument table - 1 +174d: e8 01 mov a,#$01 +174f: 2f 18 bra $1769 +; vcmd db - write to instrument table - 2 +1751: e8 02 mov a,#$02 +1753: 2f 14 bra $1769 +; vcmd dc - write to instrument table - 3 +1755: e8 03 mov a,#$03 +1757: 2f 10 bra $1769 +; vcmd dd - write to instrument table - 4 +1759: e8 04 mov a,#$04 +175b: 2f 0c bra $1769 +; vcmd de - write to instrument table - 5 +175d: e8 05 mov a,#$05 +175f: 2f 08 bra $1769 +; vcmd df - write to instrument table - 6 +1761: e8 06 mov a,#$06 +1763: 2f 04 bra $1769 +; vcmd e0 - write to instrument table - 7 +1765: e8 07 mov a,#$07 +1767: 2f 00 bra $1769 +1769: 60 clrc +176a: 84 06 adc a,$06 +176c: 5d mov x,a +176d: 4d push x +176e: e8 03 mov a,#$03 +1770: 3f d8 1a call $1ad8 +1773: ce pop x +1774: e4 00 mov a,$00 +1776: d5 a5 02 mov $02a5+x,a +1779: e4 01 mov a,$01 +177b: d5 e5 02 mov $02e5+x,a +177e: e4 02 mov a,$02 +1780: d5 25 03 mov $0325+x,a +1783: e8 01 mov a,#$01 +1785: 3f 9d 1a call $1a9d +1788: 6f ret + +; vcmd fb - master volume fade +1789: 8d 01 mov y,#$01 +178b: f7 37 mov a,($37)+y +178d: c5 65 02 mov $0265,a +1790: e5 60 02 mov a,$0260 +1793: c5 66 02 mov $0266,a +1796: e5 62 02 mov a,$0262 +1799: c5 68 02 mov $0268,a +179c: e8 02 mov a,#$02 +179e: 3f 9d 1a call $1a9d +17a1: 6f ret + +17a2: e5 65 02 mov a,$0265 +17a5: f0 6f beq $1816 +17a7: 1c asl a +17a8: 1c asl a +17a9: 1c asl a +17aa: c4 00 mov $00,a +17ac: e5 65 02 mov a,$0265 +17af: 9f xcn a +17b0: 5c lsr a +17b1: 28 03 and a,#$03 +17b3: c4 01 mov $01,a +17b5: e5 65 02 mov a,$0265 +17b8: 30 24 bmi $17de +17ba: e5 67 02 mov a,$0267 +17bd: 60 clrc +17be: 84 00 adc a,$00 +17c0: c5 67 02 mov $0267,a +17c3: e5 68 02 mov a,$0268 +17c6: 84 01 adc a,$01 +17c8: b0 05 bcs $17cf +17ca: c5 68 02 mov $0268,a +17cd: 2f 34 bra $1803 +17cf: e8 ff mov a,#$ff +17d1: c5 68 02 mov $0268,a +17d4: e8 00 mov a,#$00 +17d6: c5 67 02 mov $0267,a +17d9: c5 65 02 mov $0265,a +17dc: 2f 25 bra $1803 +17de: e5 68 02 mov a,$0268 +17e1: 80 setc +17e2: a4 01 sbc a,$01 +17e4: f0 0f beq $17f5 +17e6: 90 0d bcc $17f5 +17e8: c5 68 02 mov $0268,a +17eb: e5 67 02 mov a,$0267 +17ee: a4 00 sbc a,$00 +17f0: c5 67 02 mov $0267,a +17f3: 2f 0e bra $1803 +17f5: e8 00 mov a,#$00 +17f7: c5 68 02 mov $0268,a +17fa: c5 67 02 mov $0267,a +17fd: c5 65 02 mov $0265,a +1800: 3f 3d 1a call $1a3d +1803: e5 66 02 mov a,$0266 +1806: c4 00 mov $00,a +1808: 3f 21 18 call $1821 +180b: e5 69 02 mov a,$0269 +180e: c4 13 mov $13,a +1810: e5 6a 02 mov a,$026a +1813: c4 14 mov $14,a +1815: 6f ret + +1816: e5 63 02 mov a,$0263 +1819: c4 13 mov $13,a +181b: e5 64 02 mov a,$0264 +181e: c4 14 mov $14,a +1820: 6f ret + +1821: e4 00 mov a,$00 +1823: 68 80 cmp a,#$80 +1825: f0 31 beq $1858 +1827: b0 15 bcs $183e +1829: e5 68 02 mov a,$0268 +182c: 5c lsr a +182d: c5 6a 02 mov $026a,a +1830: c4 01 mov $01,a +1832: 3f b1 19 call $19b1 +1835: e4 2a mov a,$2a +1837: f8 07 mov x,$07 +1839: c5 69 02 mov $0269,a +183c: 2f 24 bra $1862 +183e: 48 ff eor a,#$ff +1840: bc inc a +1841: c4 00 mov $00,a +1843: e5 68 02 mov a,$0268 +1846: 5c lsr a +1847: c5 69 02 mov $0269,a +184a: c4 01 mov $01,a +184c: 3f b1 19 call $19b1 +184f: e4 2a mov a,$2a +1851: f8 07 mov x,$07 +1853: c5 6a 02 mov $026a,a +1856: 2f 0a bra $1862 +1858: e5 68 02 mov a,$0268 +185b: 5c lsr a +185c: c5 69 02 mov $0269,a +185f: c5 6a 02 mov $026a,a +1862: 6f ret + +; vcmd ed - master volume/pan +1863: 8d 01 mov y,#$01 +1865: f7 37 mov a,($37)+y +1867: c5 60 02 mov $0260,a +186a: c4 00 mov $00,a +186c: 3f 75 18 call $1875 +186f: e8 02 mov a,#$02 +1871: 3f 9d 1a call $1a9d +1874: 6f ret + +1875: e4 0e mov a,$0e +1877: 28 01 and a,#$01 +1879: d0 04 bne $187f +187b: e8 80 mov a,#$80 +187d: c4 00 mov $00,a +187f: e4 00 mov a,$00 +1881: 68 80 cmp a,#$80 +1883: f0 31 beq $18b6 +1885: b0 15 bcs $189c +1887: e5 62 02 mov a,$0262 +188a: 5c lsr a +188b: c5 64 02 mov $0264,a +188e: c4 01 mov $01,a +1890: 3f b1 19 call $19b1 +1893: e4 2a mov a,$2a +1895: f8 07 mov x,$07 +1897: c5 63 02 mov $0263,a +189a: 2f 24 bra $18c0 +189c: 48 ff eor a,#$ff +189e: bc inc a +189f: c4 00 mov $00,a +18a1: e5 62 02 mov a,$0262 +18a4: 5c lsr a +18a5: c5 63 02 mov $0263,a +18a8: c4 01 mov $01,a +18aa: 3f b1 19 call $19b1 +18ad: e4 2a mov a,$2a +18af: f8 07 mov x,$07 +18b1: c5 64 02 mov $0264,a +18b4: 2f 0a bra $18c0 +18b6: e5 62 02 mov a,$0262 +18b9: 5c lsr a +18ba: c5 63 02 mov $0263,a +18bd: c5 64 02 mov $0264,a +18c0: 6f ret + +; vcmd ee - master volume +18c1: 8d 01 mov y,#$01 +18c3: f7 37 mov a,($37)+y +18c5: f8 07 mov x,$07 +18c7: c5 62 02 mov $0262,a +18ca: e8 02 mov a,#$02 +18cc: 3f 9d 1a call $1a9d +18cf: e5 60 02 mov a,$0260 +18d2: c4 00 mov $00,a +18d4: 3f 75 18 call $1875 +18d7: 6f ret + +; vcmd e1 - echo volume/pan +18d8: 8d 01 mov y,#$01 +18da: f7 37 mov a,($37)+y +18dc: c5 6b 02 mov $026b,a +18df: c4 00 mov $00,a +18e1: 3f ea 18 call $18ea +18e4: e8 02 mov a,#$02 +18e6: 3f 9d 1a call $1a9d +18e9: 6f ret + +18ea: e4 11 mov a,$11 +18ec: d0 49 bne $1937 +18ee: e4 12 mov a,$12 +18f0: d0 45 bne $1937 +18f2: e4 0e mov a,$0e +18f4: 28 01 and a,#$01 +18f6: d0 04 bne $18fc +18f8: e8 80 mov a,#$80 +18fa: c4 00 mov $00,a +18fc: e4 00 mov a,$00 +18fe: 68 80 cmp a,#$80 +1900: f0 2d beq $192f +1902: b0 13 bcs $1917 +1904: e5 6c 02 mov a,$026c +1907: 5c lsr a +1908: c4 16 mov $16,a +190a: c4 01 mov $01,a +190c: 3f b1 19 call $19b1 +190f: e4 2a mov a,$2a +1911: f8 07 mov x,$07 +1913: c4 15 mov $15,a +1915: 2f 20 bra $1937 +1917: 48 ff eor a,#$ff +1919: bc inc a +191a: c4 00 mov $00,a +191c: e5 6c 02 mov a,$026c +191f: 5c lsr a +1920: c4 15 mov $15,a +1922: c4 01 mov $01,a +1924: 3f b1 19 call $19b1 +1927: e4 2a mov a,$2a +1929: f8 07 mov x,$07 +192b: c4 16 mov $16,a +192d: 2f 08 bra $1937 +192f: e5 6c 02 mov a,$026c +1932: 5c lsr a +1933: c4 15 mov $15,a +1935: c4 16 mov $16,a +1937: 6f ret + +; vcmd e2 - echo volume +1938: 8d 01 mov y,#$01 +193a: f7 37 mov a,($37)+y +193c: f8 07 mov x,$07 +193e: c5 6c 02 mov $026c,a +1941: e8 02 mov a,#$02 +1943: 3f 9d 1a call $1a9d +1946: e5 6b 02 mov a,$026b +1949: c4 00 mov $00,a +194b: 3f ea 18 call $18ea +194e: 6f ret + +; vcmd ef - pan +194f: 8d 01 mov y,#$01 +1951: f7 37 mov a,($37)+y +1953: f8 07 mov x,$07 +1955: d5 50 02 mov $0250+x,a +1958: c4 00 mov $00,a +195a: 3f 63 19 call $1963 +195d: e8 02 mov a,#$02 +195f: 3f 9d 1a call $1a9d +1962: 6f ret + +1963: e4 0e mov a,$0e +1965: 28 01 and a,#$01 +1967: d0 04 bne $196d +1969: e8 80 mov a,#$80 +196b: c4 00 mov $00,a +196d: e4 00 mov a,$00 +196f: 68 80 cmp a,#$80 +1971: f0 33 beq $19a6 +1973: b0 17 bcs $198c +1975: f8 07 mov x,$07 +1977: f5 58 02 mov a,$0258+x +197a: 5c lsr a +197b: d5 08 02 mov $0208+x,a +197e: c4 01 mov $01,a +1980: 3f b1 19 call $19b1 +1983: e4 2a mov a,$2a +1985: f8 07 mov x,$07 +1987: d5 00 02 mov $0200+x,a +198a: 2f 24 bra $19b0 +198c: 48 ff eor a,#$ff +198e: bc inc a +198f: c4 00 mov $00,a +1991: f5 58 02 mov a,$0258+x +1994: 5c lsr a +1995: d5 00 02 mov $0200+x,a +1998: c4 01 mov $01,a +199a: 3f b1 19 call $19b1 +199d: e4 2a mov a,$2a +199f: f8 07 mov x,$07 +19a1: d5 08 02 mov $0208+x,a +19a4: 2f 0a bra $19b0 +19a6: f5 58 02 mov a,$0258+x +19a9: 5c lsr a +19aa: d5 00 02 mov $0200+x,a +19ad: d5 08 02 mov $0208+x,a +19b0: 6f ret + +19b1: e4 01 mov a,$01 +19b3: c4 2e mov $2e,a +19b5: e8 00 mov a,#$00 +19b7: c4 2d mov $2d,a +19b9: e8 80 mov a,#$80 +19bb: c4 2b mov $2b,a +19bd: 3f 37 1b call $1b37 +19c0: e4 2d mov a,$2d +19c2: c4 29 mov $29,a +19c4: e4 2e mov a,$2e +19c6: c4 2a mov $2a,a +19c8: e4 00 mov a,$00 +19ca: c4 27 mov $27,a +19cc: 3f 05 1b call $1b05 +19cf: 6f ret + +; vcmd f0 - volume +19d0: 8d 01 mov y,#$01 +19d2: f7 37 mov a,($37)+y +19d4: f8 07 mov x,$07 +19d6: d5 58 02 mov $0258+x,a +19d9: e8 02 mov a,#$02 +19db: 3f 9d 1a call $1a9d +19de: f8 07 mov x,$07 +19e0: f5 50 02 mov a,$0250+x +19e3: c4 00 mov $00,a +19e5: 3f 63 19 call $1963 +19e8: 6f ret + +; vcmd f9 - transpose +19e9: e4 07 mov a,$07 +19eb: 5d mov x,a +19ec: 8d 01 mov y,#$01 +19ee: f7 37 mov a,($37)+y +19f0: d5 40 02 mov $0240+x,a +19f3: e8 02 mov a,#$02 +19f5: 3f 9d 1a call $1a9d +19f8: 6f ret + +; vcmd fa - tempo +19f9: 8d 01 mov y,#$01 +19fb: f7 37 mov a,($37)+y +19fd: c4 00 mov $00,a +19ff: f8 07 mov x,$07 +1a01: f5 0d 04 mov a,$040d+x +1a04: c4 01 mov $01,a +1a06: f5 05 04 mov a,$0405+x +1a09: c4 02 mov $02,a +1a0b: cd 00 mov x,#$00 +1a0d: 8d 00 mov y,#$00 +1a0f: f7 01 mov a,($01)+y +1a11: c4 03 mov $03,a +1a13: fc inc y +1a14: f7 01 mov a,($01)+y +1a16: d0 04 bne $1a1c +1a18: e4 03 mov a,$03 +1a1a: f0 05 beq $1a21 +1a1c: e4 00 mov a,$00 +1a1e: d5 48 02 mov $0248+x,a +1a21: fc inc y +1a22: 3d inc x +1a23: c8 08 cmp x,#$08 +1a25: d0 e8 bne $1a0f +1a27: e8 02 mov a,#$02 +1a29: 3f 9d 1a call $1a9d +1a2c: 6f ret + +; vcmd ce - tie state +1a2d: f8 07 mov x,$07 +1a2f: f5 6d 02 mov a,$026d+x +1a32: 08 07 or a,#$07 +1a34: d5 6d 02 mov $026d+x,a +1a37: e8 01 mov a,#$01 +1a39: 3f 9d 1a call $1a9d +1a3c: 6f ret + +1a3d: e8 00 mov a,#$00 +1a3f: c4 07 mov $07,a +1a41: 3f 56 1a call $1a56 +1a44: 3f ba 16 call $16ba +1a47: ab 07 inc $07 +1a49: e4 07 mov a,$07 +1a4b: 68 08 cmp a,#$08 +1a4d: d0 f2 bne $1a41 +1a4f: e8 00 mov a,#$00 +1a51: c4 1e mov $1e,a +1a53: c4 1b mov $1b,a +1a55: 6f ret + +1a56: f8 07 mov x,$07 +1a58: e8 00 mov a,#$00 +1a5a: d4 63 mov $63+x,a +1a5c: d4 6b mov $6b+x,a +1a5e: d5 38 02 mov $0238+x,a +1a61: e4 07 mov a,$07 +1a63: 3f fb 1a call $1afb +1a66: 04 19 or a,$19 +1a68: c4 19 mov $19,a +1a6a: 6f ret + +; vcmd f7 - slur on +1a6b: f8 07 mov x,$07 +1a6d: e8 10 mov a,#$10 +1a6f: 48 ff eor a,#$ff +1a71: 35 6d 02 and a,$026d+x +1a74: d5 6d 02 mov $026d+x,a +1a77: e8 01 mov a,#$01 +1a79: 3f 9d 1a call $1a9d +1a7c: 6f ret + +; vcmd f8 - slur off +1a7d: f8 07 mov x,$07 +1a7f: f5 6d 02 mov a,$026d+x +1a82: 08 10 or a,#$10 +1a84: d5 6d 02 mov $026d+x,a +1a87: e8 01 mov a,#$01 +1a89: 3f 9d 1a call $1a9d +1a8c: 6f ret + +; vcmd f1 - note on delay +1a8d: e4 07 mov a,$07 +1a8f: 5d mov x,a +1a90: 8d 01 mov y,#$01 +1a92: f7 37 mov a,($37)+y +1a94: d5 f5 03 mov $03f5+x,a +1a97: e8 02 mov a,#$02 +1a99: 3f 9d 1a call $1a9d +1a9c: 6f ret + +1a9d: c4 00 mov $00,a +1a9f: e4 37 mov a,$37 +1aa1: 60 clrc +1aa2: 84 00 adc a,$00 +1aa4: c4 37 mov $37,a +1aa6: e4 38 mov a,$38 +1aa8: 88 00 adc a,#$00 +1aaa: c4 38 mov $38,a +1aac: 6f ret + +1aad: 2d push a +1aae: e4 07 mov a,$07 +1ab0: 1c asl a +1ab1: 5d mov x,a +1ab2: f4 49 mov a,$49+x +1ab4: c4 61 mov $61,a +1ab6: f4 4a mov a,$4a+x +1ab8: c4 62 mov $62,a +1aba: f8 07 mov x,$07 +1abc: fb 59 mov y,$59+x +1abe: cd 00 mov x,#$00 +1ac0: e4 00 mov a,$00 +1ac2: d7 61 mov ($61)+y,a +1ac4: ae pop a +1ac5: c4 00 mov $00,a +1ac7: 3d inc x +1ac8: fc inc y +1ac9: 3e 00 cmp x,$00 +1acb: f0 06 beq $1ad3 +1acd: f4 00 mov a,$00+x +1acf: d7 61 mov ($61)+y,a +1ad1: 2f f4 bra $1ac7 +1ad3: f8 07 mov x,$07 +1ad5: db 59 mov $59+x,y +1ad7: 6f ret + +1ad8: 2d push a +1ad9: e4 07 mov a,$07 +1adb: 1c asl a +1adc: 5d mov x,a +1add: f4 49 mov a,$49+x +1adf: c4 61 mov $61,a +1ae1: f4 4a mov a,$4a+x +1ae3: c4 62 mov $62,a +1ae5: f8 07 mov x,$07 +1ae7: fb 59 mov y,$59+x +1ae9: dc dec y +1aea: ce pop x +1aeb: f7 61 mov a,($61)+y +1aed: d4 ff mov $ff+x,a +1aef: 1d dec x +1af0: dc dec y +1af1: c8 00 cmp x,#$00 +1af3: d0 f6 bne $1aeb +1af5: fc inc y +1af6: f8 07 mov x,$07 +1af8: db 59 mov $59+x,y +1afa: 6f ret + +1afb: bc inc a +1afc: 5d mov x,a +1afd: e8 00 mov a,#$00 +1aff: 80 setc +1b00: 3c rol a +1b01: 1d dec x +1b02: d0 fc bne $1b00 +1b04: 6f ret + +1b05: e4 27 mov a,$27 +1b07: eb 29 mov y,$29 +1b09: cf mul ya +1b0a: c4 29 mov $29,a +1b0c: e4 27 mov a,$27 +1b0e: 6d push y +1b0f: eb 2a mov y,$2a +1b11: cf mul ya +1b12: ee pop y +1b13: cb 2a mov $2a,y +1b15: 60 clrc +1b16: 84 2a adc a,$2a +1b18: c4 2a mov $2a,a +1b1a: 6f ret + +1b1b: e4 27 mov a,$27 +1b1d: eb 29 mov y,$29 +1b1f: cf mul ya +1b20: c4 07 mov $07,a +1b22: cb 06 mov $06,y +1b24: e4 27 mov a,$27 +1b26: eb 2a mov y,$2a +1b28: cf mul ya +1b29: cb 05 mov $05,y +1b2b: 60 clrc +1b2c: 84 06 adc a,$06 +1b2e: c4 06 mov $06,a +1b30: e4 05 mov a,$05 +1b32: 88 00 adc a,#$00 +1b34: c4 05 mov $05,a +1b36: 6f ret + +1b37: eb 2e mov y,$2e +1b39: e4 2d mov a,$2d +1b3b: f8 2b mov x,$2b +1b3d: 9e div ya,x +1b3e: c4 2d mov $2d,a +1b40: cb 2c mov $2c,y +1b42: 8d 00 mov y,#$00 +1b44: e4 2e mov a,$2e +1b46: f8 2b mov x,$2b +1b48: 9e div ya,x +1b49: c4 2e mov $2e,a +1b4b: 6f ret + +1b4c: e4 19 mov a,$19 +1b4e: 04 18 or a,$18 +1b50: 8d 5c mov y,#$5c +1b52: cc f2 00 mov $00f2,y +1b55: c5 f3 00 mov $00f3,a +1b58: 3f bf 1d call $1dbf +1b5b: 3f 7d 1b call $1b7d +1b5e: 3f a2 1b call $1ba2 +1b61: 3f 27 1c call $1c27 +1b64: 3f 35 1c call $1c35 +1b67: 3f 43 1c call $1c43 +1b6a: 3f 51 1c call $1c51 +1b6d: 3f 5f 1c call $1c5f +1b70: 3f 6d 1c call $1c6d +1b73: 3f 91 1c call $1c91 +1b76: 3f 0b 1c call $1c0b +1b79: 3f 19 1c call $1c19 +1b7c: 6f ret + +1b7d: e4 11 mov a,$11 +1b7f: f0 10 beq $1b91 +1b81: 8b 11 dec $11 +1b83: d0 1c bne $1ba1 +1b85: e4 1d mov a,$1d +1b87: f0 18 beq $1ba1 +1b89: e4 17 mov a,$17 +1b8b: 28 df and a,#$df +1b8d: c4 17 mov $17,a +1b8f: 2f 10 bra $1ba1 +1b91: e4 12 mov a,$12 +1b93: f0 0c beq $1ba1 +1b95: 8b 12 dec $12 +1b97: d0 08 bne $1ba1 +1b99: e5 6b 02 mov a,$026b +1b9c: c4 00 mov $00,a +1b9e: 3f ea 18 call $18ea +1ba1: 6f ret + +1ba2: cd 00 mov x,#$00 +1ba4: f5 95 02 mov a,$0295+x +1ba7: c4 00 mov $00,a +1ba9: f5 9d 02 mov a,$029d+x +1bac: c4 01 mov $01,a +1bae: f5 85 02 mov a,$0285+x +1bb1: 60 clrc +1bb2: 84 00 adc a,$00 +1bb4: d5 10 02 mov $0210+x,a +1bb7: f5 8d 02 mov a,$028d+x +1bba: 84 01 adc a,$01 +1bbc: d5 18 02 mov $0218+x,a +1bbf: 3d inc x +1bc0: c8 08 cmp x,#$08 +1bc2: d0 e0 bne $1ba4 +1bc4: 6f ret + +1bc5: e4 18 mov a,$18 +1bc7: c4 00 mov $00,a +1bc9: cd 00 mov x,#$00 +1bcb: 8d 00 mov y,#$00 +1bcd: e4 00 mov a,$00 +1bcf: 5c lsr a +1bd0: c4 00 mov $00,a +1bd2: 90 13 bcc $1be7 +1bd4: 7d mov a,x +1bd5: c5 f2 00 mov $00f2,a +1bd8: e8 00 mov a,#$00 +1bda: c5 f3 00 mov $00f3,a +1bdd: 7d mov a,x +1bde: bc inc a +1bdf: c5 f2 00 mov $00f2,a +1be2: e8 00 mov a,#$00 +1be4: c5 f3 00 mov $00f3,a +1be7: 7d mov a,x +1be8: 60 clrc +1be9: 88 10 adc a,#$10 +1beb: 5d mov x,a +1bec: fc inc y +1bed: ad 08 cmp y,#$08 +1bef: d0 dc bne $1bcd +1bf1: 6f ret + +1bf2: 3f 27 1c call $1c27 +1bf5: 3f 35 1c call $1c35 +1bf8: 3f 43 1c call $1c43 +1bfb: 3f 51 1c call $1c51 +1bfe: 3f 5f 1c call $1c5f +1c01: 3f 6d 1c call $1c6d +1c04: 3f 0b 1c call $1c0b +1c07: 3f 19 1c call $1c19 +1c0a: 6f ret + +1c0b: e8 00 mov a,#$00 +1c0d: c4 00 mov $00,a +1c0f: e8 02 mov a,#$02 +1c11: c4 01 mov $01,a +1c13: cd 00 mov x,#$00 +1c15: 3f 7b 1c call $1c7b +1c18: 6f ret + +1c19: e8 08 mov a,#$08 +1c1b: c4 00 mov $00,a +1c1d: e8 02 mov a,#$02 +1c1f: c4 01 mov $01,a +1c21: cd 01 mov x,#$01 +1c23: 3f 7b 1c call $1c7b +1c26: 6f ret + +1c27: e8 10 mov a,#$10 +1c29: c4 00 mov $00,a +1c2b: e8 02 mov a,#$02 +1c2d: c4 01 mov $01,a +1c2f: cd 02 mov x,#$02 +1c31: 3f 7b 1c call $1c7b +1c34: 6f ret + +1c35: e8 18 mov a,#$18 +1c37: c4 00 mov $00,a +1c39: e8 02 mov a,#$02 +1c3b: c4 01 mov $01,a +1c3d: cd 03 mov x,#$03 +1c3f: 3f 7b 1c call $1c7b +1c42: 6f ret + +1c43: e8 20 mov a,#$20 +1c45: c4 00 mov $00,a +1c47: e8 02 mov a,#$02 +1c49: c4 01 mov $01,a +1c4b: cd 04 mov x,#$04 +1c4d: 3f 7b 1c call $1c7b +1c50: 6f ret + +1c51: e8 28 mov a,#$28 +1c53: c4 00 mov $00,a +1c55: e8 02 mov a,#$02 +1c57: c4 01 mov $01,a +1c59: cd 05 mov x,#$05 +1c5b: 3f 7b 1c call $1c7b +1c5e: 6f ret + +1c5f: e8 30 mov a,#$30 +1c61: c4 00 mov $00,a +1c63: e8 02 mov a,#$02 +1c65: c4 01 mov $01,a +1c67: cd 06 mov x,#$06 +1c69: 3f 7b 1c call $1c7b +1c6c: 6f ret + +1c6d: e8 38 mov a,#$38 +1c6f: c4 00 mov $00,a +1c71: e8 02 mov a,#$02 +1c73: c4 01 mov $01,a +1c75: cd 07 mov x,#$07 +1c77: 3f 7b 1c call $1c7b +1c7a: 6f ret + +1c7b: 8d 00 mov y,#$00 +1c7d: 7d mov a,x +1c7e: c5 f2 00 mov $00f2,a +1c81: f7 00 mov a,($00)+y +1c83: c5 f3 00 mov $00f3,a +1c86: 7d mov a,x +1c87: 60 clrc +1c88: 88 10 adc a,#$10 +1c8a: 5d mov x,a +1c8b: fc inc y +1c8c: ad 08 cmp y,#$08 +1c8e: d0 ed bne $1c7d +1c90: 6f ret + +1c91: e4 13 mov a,$13 +1c93: 8d 0c mov y,#$0c +1c95: cc f2 00 mov $00f2,y +1c98: c5 f3 00 mov $00f3,a +1c9b: e4 14 mov a,$14 +1c9d: 8d 1c mov y,#$1c +1c9f: cc f2 00 mov $00f2,y +1ca2: c5 f3 00 mov $00f3,a +1ca5: e4 11 mov a,$11 +1ca7: d0 24 bne $1ccd +1ca9: e4 12 mov a,$12 +1cab: d0 20 bne $1ccd +1cad: e4 15 mov a,$15 +1caf: 8d 2c mov y,#$2c +1cb1: cc f2 00 mov $00f2,y +1cb4: c5 f3 00 mov $00f3,a +1cb7: e4 16 mov a,$16 +1cb9: 8d 3c mov y,#$3c +1cbb: cc f2 00 mov $00f2,y +1cbe: c5 f3 00 mov $00f3,a +1cc1: e4 1b mov a,$1b +1cc3: 8d 0d mov y,#$0d +1cc5: cc f2 00 mov $00f2,y +1cc8: c5 f3 00 mov $00f3,a +1ccb: 2f 1c bra $1ce9 +1ccd: e8 00 mov a,#$00 +1ccf: 8d 2c mov y,#$2c +1cd1: cc f2 00 mov $00f2,y +1cd4: c5 f3 00 mov $00f3,a +1cd7: 8d 3c mov y,#$3c +1cd9: cc f2 00 mov $00f2,y +1cdc: c5 f3 00 mov $00f3,a +1cdf: e8 00 mov a,#$00 +1ce1: 8d 0d mov y,#$0d +1ce3: cc f2 00 mov $00f2,y +1ce6: c5 f3 00 mov $00f3,a +1ce9: e4 11 mov a,$11 +1ceb: f0 0e beq $1cfb +1ced: e4 17 mov a,$17 +1cef: 08 20 or a,#$20 +1cf1: 8d 6c mov y,#$6c +1cf3: cc f2 00 mov $00f2,y +1cf6: c5 f3 00 mov $00f3,a +1cf9: 2f 0a bra $1d05 +1cfb: e4 17 mov a,$17 +1cfd: 8d 6c mov y,#$6c +1cff: cc f2 00 mov $00f2,y +1d02: c5 f3 00 mov $00f3,a +1d05: e4 1c mov a,$1c +1d07: 8d 3d mov y,#$3d +1d09: cc f2 00 mov $00f2,y +1d0c: c5 f3 00 mov $00f3,a +1d0f: e4 11 mov a,$11 +1d11: d0 10 bne $1d23 +1d13: e4 12 mov a,$12 +1d15: d0 0c bne $1d23 +1d17: e4 1d mov a,$1d +1d19: 8d 4d mov y,#$4d +1d1b: cc f2 00 mov $00f2,y +1d1e: c5 f3 00 mov $00f3,a +1d21: 2f 0a bra $1d2d +1d23: e8 00 mov a,#$00 +1d25: 8d 4d mov y,#$4d +1d27: cc f2 00 mov $00f2,y +1d2a: c5 f3 00 mov $00f3,a +1d2d: e4 1e mov a,$1e +1d2f: 8d 7d mov y,#$7d +1d31: cc f2 00 mov $00f2,y +1d34: c5 f3 00 mov $00f3,a +1d37: e4 1f mov a,$1f +1d39: 8d 0f mov y,#$0f +1d3b: cc f2 00 mov $00f2,y +1d3e: c5 f3 00 mov $00f3,a +1d41: e4 20 mov a,$20 +1d43: 8d 1f mov y,#$1f +1d45: cc f2 00 mov $00f2,y +1d48: c5 f3 00 mov $00f3,a +1d4b: e4 21 mov a,$21 +1d4d: 8d 2f mov y,#$2f +1d4f: cc f2 00 mov $00f2,y +1d52: c5 f3 00 mov $00f3,a +1d55: e4 22 mov a,$22 +1d57: 8d 3f mov y,#$3f +1d59: cc f2 00 mov $00f2,y +1d5c: c5 f3 00 mov $00f3,a +1d5f: e4 23 mov a,$23 +1d61: 8d 4f mov y,#$4f +1d63: cc f2 00 mov $00f2,y +1d66: c5 f3 00 mov $00f3,a +1d69: e4 24 mov a,$24 +1d6b: 8d 5f mov y,#$5f +1d6d: cc f2 00 mov $00f2,y +1d70: c5 f3 00 mov $00f3,a +1d73: e4 25 mov a,$25 +1d75: 8d 6f mov y,#$6f +1d77: cc f2 00 mov $00f2,y +1d7a: c5 f3 00 mov $00f3,a +1d7d: e4 26 mov a,$26 +1d7f: 8d 7f mov y,#$7f +1d81: cc f2 00 mov $00f2,y +1d84: c5 f3 00 mov $00f3,a +1d87: e4 1a mov a,$1a +1d89: f0 14 beq $1d9f +1d8b: e8 00 mov a,#$00 +1d8d: 8d 5c mov y,#$5c +1d8f: cc f2 00 mov $00f2,y +1d92: c5 f3 00 mov $00f3,a +1d95: e4 1a mov a,$1a +1d97: 8d 4c mov y,#$4c +1d99: cc f2 00 mov $00f2,y +1d9c: c5 f3 00 mov $00f3,a +1d9f: e4 1a mov a,$1a +1da1: 48 ff eor a,#$ff +1da3: 24 18 and a,$18 +1da5: c4 18 mov $18,a +1da7: e8 00 mov a,#$00 +1da9: c4 19 mov $19,a +1dab: 6f ret + +1dac: e4 19 mov a,$19 +1dae: 04 18 or a,$18 +1db0: f0 08 beq $1dba +1db2: 8d 5c mov y,#$5c +1db4: cc f2 00 mov $00f2,y +1db7: c5 f3 00 mov $00f3,a +1dba: e8 00 mov a,#$00 +1dbc: c4 19 mov $19,a +1dbe: 6f ret + +1dbf: e8 00 mov a,#$00 +1dc1: c4 1a mov $1a,a +1dc3: e8 01 mov a,#$01 +1dc5: c4 00 mov $00,a +1dc7: cd 00 mov x,#$00 +1dc9: f5 fd 03 mov a,$03fd+x +1dcc: d0 0e bne $1ddc +1dce: e4 18 mov a,$18 +1dd0: 24 00 and a,$00 +1dd2: f0 0f beq $1de3 +1dd4: e4 1a mov a,$1a +1dd6: 04 00 or a,$00 +1dd8: c4 1a mov $1a,a +1dda: 2f 07 bra $1de3 +1ddc: f5 fd 03 mov a,$03fd+x +1ddf: 9c dec a +1de0: d5 fd 03 mov $03fd+x,a +1de3: 0b 00 asl $00 +1de5: 3d inc x +1de6: c8 08 cmp x,#$08 +1de8: d0 df bne $1dc9 +1dea: 6f ret + + diff --git a/snes/Krisalis/Mickey Mania - The Timeless Adventures of Mickey Mouse ($0200).bin b/snes/Krisalis/Mickey Mania - The Timeless Adventures of Mickey Mouse ($0200).bin new file mode 100644 index 00000000..e7d73e37 Binary files /dev/null and b/snes/Krisalis/Mickey Mania - The Timeless Adventures of Mickey Mouse ($0200).bin differ diff --git a/snes/Krisalis/Mickey Mania - The Timeless Adventures of Mickey Mouse.s b/snes/Krisalis/Mickey Mania - The Timeless Adventures of Mickey Mouse.s new file mode 100644 index 00000000..499c6ada --- /dev/null +++ b/snes/Krisalis/Mickey Mania - The Timeless Adventures of Mickey Mouse.s @@ -0,0 +1,1659 @@ +0200: c0 di +0201: cd ff mov x,#$ff +0203: bd mov sp,x +0204: e8 00 mov a,#$00 +0206: 2d push a +0207: 8e pop psw +0208: 20 clrp +0209: 8f 37 f1 mov $f1,#$37 +020c: cd 00 mov x,#$00 +020e: f5 b0 05 mov a,$05b0+x +0211: c4 f2 mov $f2,a +0213: f5 b1 05 mov a,$05b1+x +0216: c4 f3 mov $f3,a +0218: 3d inc x +0219: 3d inc x +021a: c8 14 cmp x,#$14 +021c: d0 f0 bne $020e +021e: cd 00 mov x,#$00 +0220: af mov (x)+,a +0221: c8 f0 cmp x,#$f0 +0223: d0 fb bne $0220 +0225: 8f 00 08 mov $08,#$00 +0228: 8f 11 09 mov $09,#$11 +022b: e8 00 mov a,#$00 +022d: fd mov y,a +022e: d7 08 mov ($08)+y,a +0230: cd 05 mov x,#$05 +0232: 1d dec x +0233: d0 fd bne $0232 +0235: 3a 08 incw $08 +0237: 78 ff 09 cmp $09,#$ff +023a: d0 f2 bne $022e +023c: c4 f7 mov $f7,a +023e: c4 f4 mov $f4,a +0240: cd ff mov x,#$ff +0242: bd mov sp,x +0243: 8f 04 1e mov $1e,#$04 +0246: e8 01 mov a,#$01 +0248: c4 1d mov $1d,a +024a: c4 3c mov $3c,a +024c: 3f ee 05 call $05ee +024f: 8f 3f 48 mov $48,#$3f +0252: 3f df 10 call $10df +0255: cd ff mov x,#$ff +0257: bd mov sp,x +0258: 3f 70 02 call $0270 +025b: 3f b9 02 call $02b9 +025e: e4 3c mov a,$3c +0260: d0 f3 bne $0255 +0262: e4 fd mov a,$fd +0264: f0 ef beq $0255 +0266: 2d push a +0267: 3f 7c 0e call $0e7c +026a: ae pop a +026b: 9c dec a +026c: d0 f8 bne $0266 +026e: 2f e5 bra $0255 +0270: e4 f6 mov a,$f6 +0272: c4 49 mov $49,a +0274: 78 00 3a cmp $3a,#$00 +0277: f0 02 beq $027b +0279: e8 00 mov a,#$00 +027b: 68 80 cmp a,#$80 +027d: b0 1b bcs $029a +027f: 8f 0c f2 mov $f2,#$0c +0282: c4 f3 mov $f3,a +0284: 8f 1c f2 mov $f2,#$1c +0287: c4 f3 mov $f3,a +0289: 80 setc +028a: a8 22 sbc a,#$22 +028c: b0 02 bcs $0290 +028e: e8 00 mov a,#$00 +0290: 8f 2c f2 mov $f2,#$2c +0293: c4 f3 mov $f3,a +0295: 8f 3c f2 mov $f2,#$3c +0298: c4 f3 mov $f3,a +029a: e4 3b mov a,$3b +029c: 04 32 or a,$32 +029e: 04 33 or a,$33 +02a0: 04 34 or a,$34 +02a2: 04 35 or a,$35 +02a4: 04 3a or a,$3a +02a6: 08 20 or a,#$20 +02a8: 04 46 or a,$46 +02aa: c4 f4 mov $f4,a +02ac: 3f 98 05 call $0598 +02af: 1c asl a +02b0: 5d mov x,a +02b1: 1f b4 02 jmp ($02b4+x) + +02b4: dw $02b8 +02b6: dw $0345 + +02b8: ret + +02b9: e4 f4 mov a,$f4 +02bb: 28 80 and a,$80 +02bd: 64 3b cmp a,$3b +02bf: f0 42 beq $0303 +02c1: e4 3b mov a,$3b +02c3: 48 80 eor a,#$80 +02c5: c4 3b mov $3b,a +02c7: f8 f4 mov x,$f4 +02c9: eb f5 mov y,$f5 +02cb: 04 32 or a,$32 +02cd: 04 33 or a,$33 +02cf: 04 34 or a,$34 +02d1: 04 35 or a,$35 +02d3: 04 3a or a,$3a +02d5: 08 20 or a,#$20 +02d7: 04 46 or a,$46 +02d9: c4 f4 mov $f4,a +02db: 7d mov a,x +02dc: 28 7f and a,#$7f +02de: 1c asl a +02df: 30 23 bmi $0304 +02e1: 68 1a cmp a,#$1a +02e3: b0 1e bcs $0303 +02e5: 5d mov x,a +02e6: 1f e9 02 jmp ($02e9+x) + +02e9: dw $0303 +02eb: dw $0b15 +02ed: dw $0a7c +02ef: dw $0ac7 +02f1: dw $030a +02f3: dw $030e +02f5: dw $0312 +02f7: dw $0318 +02f9: dw $0323 +02fb: dw $0307 +02fd: dw $0a11 +02ff: dw $0f17 +0301: dw $0338 + +0303: 6f ret + +0304: 5f c5 0e jmp $0ec5 +0307: cb 3f mov $3f,y +0309: 6f ret + +030a: 8f 10 3a mov $3a,#$10 +030d: 6f ret + +030e: 8f 00 3a mov $3a,#$00 +0311: 6f ret + +0312: 8f 00 32 mov $32,#$00 +0315: 5f 9e 03 jmp $039e + +0318: 78 00 35 cmp $35,#$00 +031b: d0 11 bne $032e +031d: 8f 00 33 mov $33,#$00 +0320: 5f c2 03 jmp $03c2 + +0323: 78 00 35 cmp $35,#$00 +0326: d0 06 bne $032e +0328: 8f 00 34 mov $34,#$00 +032b: 5f c6 03 jmp $03c6 + +032e: 3f 1d 03 call $031d +0331: 3f 28 03 call $0328 +0334: 8f 00 35 mov $35,#$00 +0337: 6f ret + +0338: 8f 01 47 mov $47,#$01 +033b: 3f 7f 10 call $107f +033e: e4 30 mov a,$30 +0340: 28 7f and a,#$7f +0342: c4 f6 mov $f6,a +0344: 6f ret + +0345: 8d 00 mov y,#$00 +0347: dd mov a,y +0348: c4 32 mov $32,a +034a: c4 33 mov $33,a +034c: c4 34 mov $34,a +034e: d6 84 12 mov $1284+y,a +0351: d6 84 13 mov $1384+y,a +0354: d6 84 15 mov $1584+y,a +0357: fc inc y +0358: d0 f4 bne $034e +035a: 3f 98 03 call $0398 +035d: 3f 67 04 call $0467 +0360: 8f 10 04 mov $04,#$10 +0363: 8f 00 05 mov $05,#$00 +0366: 8d 00 mov y,#$00 +0368: e8 02 mov a,#$02 +036a: 3f 65 05 call $0565 +036d: e4 10 mov a,$10 +036f: 3f d7 03 call $03d7 +0372: e4 11 mov a,$11 +0374: 3f e8 03 call $03e8 +0377: e4 10 mov a,$10 +0379: 30 03 bmi $037e +037b: 3f 76 04 call $0476 +037e: e4 11 mov a,$11 +0380: 30 03 bmi $0385 +0382: 3f 6e 04 call $046e +0385: 3f 9a 04 call $049a +0388: e8 00 mov a,#$00 +038a: c4 3c mov $3c,a +038c: c4 3b mov $3b,a +038e: c4 f4 mov $f4,a +0390: 78 00 f4 cmp $f4,#$00 +0393: d0 fb bne $0390 +0395: e4 fd mov a,$fd +0397: 6f ret + +0398: 8f 08 0c mov $0c,#$08 +039b: 5f a1 03 jmp $03a1 + +039e: 8f 06 0c mov $0c,#$06 +03a1: cd 00 mov x,#$00 +03a3: e8 00 mov a,#$00 +03a5: d4 7a mov $7a+x,a +03a7: d4 82 mov $82+x,a +03a9: d5 57 06 mov $0657+x,a +03ac: d4 52 mov $52+x,a +03ae: d4 4a mov $4a+x,a +03b0: 3d inc x +03b1: 3e 0c cmp x,$0c +03b3: d0 f0 bne $03a5 +03b5: cd 00 mov x,#$00 +03b7: 4d push x +03b8: 3f c8 07 call $07c8 +03bb: ce pop x +03bc: 3d inc x +03bd: c8 08 cmp x,#$08 +03bf: d0 f6 bne $03b7 +03c1: 6f ret + +03c2: cd 06 mov x,#$06 +03c4: 2f 02 bra $03c8 +03c6: cd 07 mov x,#$07 +03c8: e8 00 mov a,#$00 +03ca: d4 7a mov $7a+x,a +03cc: d4 82 mov $82+x,a +03ce: d5 57 06 mov $0657+x,a +03d1: 6d push y +03d2: 3f c8 07 call $07c8 +03d5: ee pop y +03d6: 6f ret + +03d7: fa 16 12 mov ($12),($16) +03da: fa 17 13 mov ($13),($17) +03dd: 68 ff cmp a,#$ff +03df: f0 06 beq $03e7 +03e1: 3f 46 04 call $0446 +03e4: 3f 01 04 call $0401 +03e7: 6f ret + +03e8: fa 16 14 mov ($14),($16) +03eb: fa 17 15 mov ($15),($17) +03ee: 68 ff cmp a,#$ff +03f0: f0 06 beq $03f8 +03f2: 3f 46 04 call $0446 +03f5: 3f f9 03 call $03f9 +03f8: 6f ret + +03f9: fa 14 08 mov ($08),($14) +03fc: fa 15 09 mov ($09),($15) +03ff: 2f 06 bra $0407 +0401: fa 12 08 mov ($08),($12) +0404: fa 13 09 mov ($09),($13) +0407: 8d 51 mov y,#$51 +0409: 3f 36 04 call $0436 +040c: 8d 4d mov y,#$4d +040e: f7 08 mov a,($08)+y +0410: f0 23 beq $0435 +0412: 5d mov x,a +0413: 8d 51 mov y,#$51 +0415: f7 08 mov a,($08)+y +0417: c4 0a mov $0a,a +0419: fc inc y +041a: f7 08 mov a,($08)+y +041c: c4 0b mov $0b,a +041e: 8d 00 mov y,#$00 +0420: f7 0a mov a,($0a)+y +0422: 60 clrc +0423: 84 08 adc a,$08 +0425: d7 0a mov ($0a)+y,a +0427: fc inc y +0428: f7 0a mov a,($0a)+y +042a: 84 09 adc a,$09 +042c: d7 0a mov ($0a)+y,a +042e: 3a 0a incw $0a +0430: 3a 0a incw $0a +0432: 1d dec x +0433: d0 e9 bne $041e +0435: 6f ret + +0436: f7 08 mov a,($08)+y +0438: 60 clrc +0439: 84 08 adc a,$08 +043b: d7 08 mov ($08)+y,a +043d: fc inc y +043e: f7 08 mov a,($08)+y +0440: 84 09 adc a,$09 +0442: d7 08 mov ($08)+y,a +0444: dc dec y +0445: 6f ret + +0446: 8f 0c 04 mov $04,#$0c +0449: 8f 00 05 mov $05,#$00 +044c: e8 02 mov a,#$02 +044e: 8d 00 mov y,#$00 +0450: 3f 65 05 call $0565 +0453: fa 16 04 mov ($04),($16) +0456: fa 17 05 mov ($05),($17) +0459: e4 0c mov a,$0c +045b: eb 0d mov y,$0d +045d: 3f 65 05 call $0565 +0460: fa 04 16 mov ($16),($04) +0463: fa 05 17 mov ($17),($05) +0466: 6f ret + +0467: 8f ec 16 mov $16,#$ec +046a: 8f 17 17 mov $17,#$17 +046d: 6f ret + +046e: 8f 84 02 mov $02,#$84 +0471: 8f 12 03 mov $03,#$12 +0474: 2f 06 bra $047c +0476: 8f 84 02 mov $02,#$84 +0479: 8f 14 03 mov $03,#$14 +047c: e8 1f mov a,#$1f +047e: 2d push a +047f: e4 02 mov a,$02 +0481: c4 04 mov $04,a +0483: e4 03 mov a,$03 +0485: c4 05 mov $05,a +0487: e8 10 mov a,#$10 +0489: 8d 00 mov y,#$00 +048b: 3f 65 05 call $0565 +048e: 60 clrc +048f: 98 10 02 adc $02,#$10 +0492: 98 00 03 adc $03,#$00 +0495: ae pop a +0496: 9c dec a +0497: d0 e5 bne $047e +0499: 6f ret + +049a: 8f 84 0a mov $0a,#$84 +049d: 8f 12 0b mov $0b,#$12 +04a0: 8f 04 08 mov $08,#$04 +04a3: 8f 12 09 mov $09,#$12 +04a6: 8d 7f mov y,#$7f +04a8: e8 00 mov a,#$00 +04aa: d7 08 mov ($08)+y,a +04ac: dc dec y +04ad: 10 fb bpl $04aa +04af: e8 3f mov a,#$3f +04b1: cd 00 mov x,#$00 +04b3: 2d push a +04b4: 8d 02 mov y,#$02 +04b6: f7 0a mov a,($0a)+y +04b8: 28 7f and a,#$7f +04ba: fd mov y,a +04bb: f7 08 mov a,($08)+y +04bd: d0 1a bne $04d9 +04bf: 7d mov a,x +04c0: 6d push y +04c1: 8d 0d mov y,#$0d +04c3: d7 0a mov ($0a)+y,a +04c5: 8d 02 mov y,#$02 +04c7: f7 0a mov a,($0a)+y +04c9: ee pop y +04ca: 2d push a +04cb: 7d mov a,x +04cc: 08 80 or a,#$80 +04ce: d7 08 mov ($08)+y,a +04d0: ae pop a +04d1: 4d push x +04d2: 3f fe 04 call $04fe +04d5: ce pop x +04d6: 3d inc x +04d7: 2f 06 bra $04df +04d9: 28 7f and a,#$7f +04db: 8d 0d mov y,#$0d +04dd: d7 0a mov ($0a)+y,a +04df: 60 clrc +04e0: 98 10 0a adc $0a,#$10 +04e3: 98 00 0b adc $0b,#$00 +04e6: ae pop a +04e7: 9c dec a +04e8: d0 c9 bne $04b3 +04ea: e8 ff mov a,#$ff +04ec: c4 f4 mov $f4,a +04ee: 3f f1 04 call $04f1 +04f1: e4 0f mov a,$0f +04f3: 64 f7 cmp a,$f7 +04f5: f0 fc beq $04f3 +04f7: ab 0f inc $0f +04f9: e4 0f mov a,$0f +04fb: c4 f7 mov $f7,a +04fd: 6f ret + +04fe: c4 f4 mov $f4,a +0500: 7d mov a,x +0501: 1c asl a +0502: 1c asl a +0503: fd mov y,a +0504: e4 16 mov a,$16 +0506: d6 00 11 mov $1100+y,a +0509: e4 17 mov a,$17 +050b: d6 01 11 mov $1101+y,a +050e: e4 0f mov a,$0f +0510: 64 f7 cmp a,$f7 +0512: f0 fc beq $0510 +0514: ab 0f inc $0f +0516: e4 0f mov a,$0f +0518: c4 f7 mov $f7,a +051a: e4 0f mov a,$0f +051c: 64 f7 cmp a,$f7 +051e: f0 fc beq $051c +0520: e4 f5 mov a,$f5 +0522: c4 06 mov $06,a +0524: e4 f6 mov a,$f6 +0526: c4 07 mov $07,a +0528: ab 0f inc $0f +052a: e4 0f mov a,$0f +052c: c4 f7 mov $f7,a +052e: e4 06 mov a,$06 +0530: 04 07 or a,$07 +0532: f0 30 beq $0564 +0534: 1a 06 decw $06 +0536: 1a 06 decw $06 +0538: e4 0f mov a,$0f +053a: 64 f7 cmp a,$f7 +053c: f0 fc beq $053a +053e: e4 f5 mov a,$f5 +0540: 60 clrc +0541: 84 16 adc a,$16 +0543: d6 02 11 mov $1102+y,a +0546: e4 f6 mov a,$f6 +0548: 84 17 adc a,$17 +054a: d6 03 11 mov $1103+y,a +054d: ab 0f inc $0f +054f: e4 0f mov a,$0f +0551: c4 f7 mov $f7,a +0553: fa 16 04 mov ($04),($16) +0556: fa 17 05 mov ($05),($17) +0559: ba 16 movw ya,$16 +055b: 7a 06 addw ya,$06 +055d: da 16 movw $16,ya +055f: ba 06 movw ya,$06 +0561: 3f 65 05 call $0565 +0564: 6f ret + +0565: 2d push a ; copy data to SPC700 +0566: 28 01 and a,#$01 +0568: ae pop a +0569: f0 09 beq $0574 +056b: 60 clrc +056c: 88 01 adc a,#$01 +056e: 2d push a +056f: dd mov a,y +0570: 88 00 adc a,#$00 +0572: fd mov y,a +0573: ae pop a +0574: da 06 movw $06,ya +0576: 4b 07 lsr $07 +0578: 6b 06 ror $06 +057a: cd 00 mov x,#$00 +057c: e4 0f mov a,$0f +057e: 64 f7 cmp a,$f7 +0580: f0 fc beq $057e +0582: e4 f5 mov a,$f5 +0584: c7 04 mov ($04+x),a +0586: 3a 04 incw $04 +0588: e4 f6 mov a,$f6 +058a: c7 04 mov ($04+x),a +058c: 3a 04 incw $04 +058e: ab 0f inc $0f +0590: fa 0f f7 mov ($f7),($0f) +0593: 1a 06 decw $06 +0595: d0 e5 bne $057c +0597: 6f ret + +0598: e4 0f mov a,$0f +059a: 64 f7 cmp a,$f7 +059c: f0 0f beq $05ad +059e: 4d push x +059f: f8 f5 mov x,$f5 +05a1: f0 07 beq $05aa +05a3: eb f6 mov y,$f6 +05a5: ab 0f inc $0f +05a7: bc inc a +05a8: c4 f7 mov $f7,a +05aa: 7d mov a,x +05ab: ce pop x +05ac: 6f ret + +05ad: e8 00 mov a,#$00 +05af: 6f ret + +05b0: db $6c,$73,$6d,$df,$7d,$04,$0d,$00,$5c,$ff,$4d,$00,$0c,$00,$1c,$00,$2c,$00,$3c,$00,$5d,$11,$2d,$00,$3d,$00,$0f,$7f,$1f,$00,$2f,$00,$3f,$00,$4f,$00,$5f,$00,$6f,$00,$7f,$00,$5c,$00,$0c,$7f,$1c,$7f,$0c,$7f,$1c,$7f,$2c,$5a,$3c,$5a,$4d,$00,$0d,$28,$6c,$13,$cd,$00,$f5,$c4,$05,$c4,$f2,$f5,$c5,$05,$c4,$f3,$3d,$3d,$c8,$2a,$d0,$f0,$8f,$07,$f1,$8f,$00,$f1,$e4,$fd,$8f,$28,$fa,$8f,$01,$f1,$6f + +060f: db $3a,$31,$12,$00,$00,$00,$69,$69 + +0617: db $27,$30,$17,$00,$00,$00,$64,$64,$01,$09,$02,$02,$02,$02,$02,$02,$8b,$dd,$9f,$ff,$ff,$ff,$8f,$8f,$a0,$ef,$17,$1f,$1f,$1f,$df,$df + +0637: db $60,$00,$00,$00,$00,$00,$00,$00,$03,$00,$00,$00,$00,$00,$00,$00,$08,$00,$00,$00,$00,$00,$00,$00 + +064f: db $40,$00,$00,$00,$00,$00,$00,$00,$02,$00,$00,$00,$00,$00,$00,$00,$02,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$08,$01,$01,$01,$01,$01,$01 + +067f: 8f 00 09 mov $09,#$00 +0682: 1c asl a ; restore original value +0683: 1c asl a +0684: 1c asl a +0685: c4 08 mov $08,a +0687: 0b 08 asl $08 +0689: 2b 09 rol $09 +068b: 60 clrc +068c: 98 84 08 adc $08,#$84 ; copy instrument/DSP data to work space +068f: 98 12 09 adc $09,#$12 +0692: c8 06 cmp x,#$06 +0694: 90 07 bcc $069d +0696: 60 clrc +0697: 98 00 08 adc $08,#$00 +069a: 98 02 09 adc $09,#$02 + +06ae: f7 08 mov a,($08)+y +06b0: d7 0a mov ($0a)+y,a +06b2: 3a 08 incw $08 +06b4: 98 08 0a adc $0a,#$08 +06b7: 98 00 0b adc $0b,#$00 +06ba: 6e 0d f1 dbnz $0d,$06ae +06bd: f5 4f 06 mov a,$064f+x +06c0: d4 d2 mov $d2+x,a +06c2: f5 37 06 mov a,$0637+x +06c5: d4 8a mov $8a+x,a +06c7: e8 00 mov a,#$00 +06c9: d4 92 mov $92+x,a +06cb: d4 9a mov $9a+x,a +06cd: d4 4a mov $4a+x,a +06cf: d4 52 mov $52+x,a +06d1: f4 ca mov a,$ca+x +06d3: f0 03 beq $06d8 +06d5: 3f 08 07 call $0708 +06d8: 78 00 3f cmp $3f,#$00 +06db: f0 20 beq $06fd +06dd: f5 0f 06 mov a,$060f+x +06e0: 10 05 bpl $06e7 +06e2: 48 ff eor a,#$ff +06e4: 60 clrc +06e5: 88 01 adc a,#$01 +06e7: c4 0d mov $0d,a +06e9: f5 17 06 mov a,$0617+x +06ec: 10 05 bpl $06f3 +06ee: 48 ff eor a,#$ff +06f0: 60 clrc +06f1: 88 01 adc a,#$01 +06f3: 60 clrc +06f4: 84 0d adc a,$0d +06f6: 5c lsr a +06f7: d5 0f 06 mov $060f+x,a +06fa: d5 17 06 mov $0617+x,a +06fd: f5 0f 06 mov a,$060f+x +0700: d4 7a mov $7a+x,a +0702: f5 17 06 mov a,$0617+x +0705: d4 82 mov $82+x,a +0707: 6f ret + +0708: 78 00 3f cmp $3f,#$00 +070b: f0 01 beq $070e +070d: 6f ret + +070e: 2d push a +070f: f5 0f 06 mov a,$060f+x +0712: 10 05 bpl $0719 +0714: 48 ff eor a,#$ff +0716: 60 clrc +0717: 88 01 adc a,#$01 +0719: c4 0c mov $0c,a +071b: f5 17 06 mov a,$0617+x +071e: 10 05 bpl $0725 +0720: 48 ff eor a,#$ff +0722: 60 clrc +0723: 88 01 adc a,#$01 +0725: 60 clrc +0726: 84 0c adc a,$0c +0728: 5c lsr a +0729: c4 0c mov $0c,a +072b: ae pop a +072c: 6d push y +072d: 2d push a +072e: eb 0c mov y,$0c +0730: cf mul ya +0731: cb 0d mov $0d,y +0733: 1c asl a +0734: 2b 0d rol $0d +0736: e4 0d mov a,$0d +0738: d5 0f 06 mov $060f+x,a +073b: ae pop a +073c: c4 0d mov $0d,a +073e: e8 80 mov a,#$80 +0740: 80 setc +0741: a4 0d sbc a,$0d +0743: eb 0c mov y,$0c +0745: cf mul ya +0746: cb 0d mov $0d,y +0748: 1c asl a +0749: 2b 0d rol $0d +074b: e4 0d mov a,$0d +074d: d5 17 06 mov $0617+x,a +0750: ee pop y +0751: 6f ret + +0752: d4 c2 mov $c2+x,a ; play note +0754: 5c lsr a +0755: 5c lsr a +0756: fd mov y,a +0757: f6 b9 0c mov a,$0cb9+y +075a: d4 da mov $da+x,a +075c: f4 c2 mov a,$c2+x +075e: 9c dec a +075f: 1c asl a +0760: fd mov y,a +0761: f6 d4 0d mov a,$0dd4+y +0764: d4 5a mov $5a+x,a +0766: f6 d5 0d mov a,$0dd5+y +0769: d4 62 mov $62+x,a +076b: f5 0f 06 mov a,$060f+x +076e: d4 7a mov $7a+x,a +0770: f5 17 06 mov a,$0617+x +0773: d4 82 mov $82+x,a +0775: f5 4f 06 mov a,$064f+x +0778: d4 d2 mov $d2+x,a +077a: f5 37 06 mov a,$0637+x +077d: d4 8a mov $8a+x,a +077f: e8 00 mov a,#$00 +0781: d4 92 mov $92+x,a +0783: d4 9a mov $9a+x,a +0785: d4 4a mov $4a+x,a +0787: d4 52 mov $52+x,a +0789: e8 ff mov a,#$ff +078b: d4 a2 mov $a2+x,a +078d: c8 06 cmp x,#$06 +078f: 90 16 bcc $07a7 +0791: f5 67 06 mov a,$0667+x +0794: 28 02 and a,#$02 +0796: f0 0f beq $07a7 +0798: 8f 6c f2 mov $f2,#$6c +079b: f4 c2 mov a,$c2+x +079d: 9c dec a +079e: 28 1f and a,#$1f +07a0: c4 f3 mov $f3,a +07a2: 1c asl a +07a3: 1c asl a +07a4: 1c asl a +07a5: c4 42 mov $42,a +07a7: 6f ret + +07a8: f4 aa mov a,$aa+x +07aa: 30 0e bmi $07ba +07ac: 60 clrc +07ad: 84 42 adc a,$42 +07af: c4 42 mov $42,a +07b1: 8f 6c f2 mov $f2,#$6c +07b4: 5c lsr a +07b5: 5c lsr a +07b6: 5c lsr a +07b7: c4 f3 mov $f3,a +07b9: 6f ret + +07ba: 48 ff eor a,#$ff +07bc: 60 clrc +07bd: 88 01 adc a,#$01 +07bf: c4 0a mov $0a,a +07c1: e4 42 mov a,$42 +07c3: 80 setc +07c4: a4 0a sbc a,$0a +07c6: 2f e7 bra $07af +07c8: f4 d2 mov a,$d2+x +07ca: f0 05 beq $07d1 +07cc: 9c dec a +07cd: d4 d2 mov $d2+x,a +07cf: 2f 37 bra $0808 +07d1: f5 57 06 mov a,$0657+x +07d4: f0 32 beq $0808 +07d6: f5 5f 06 mov a,$065f+x +07d9: 60 clrc +07da: 94 92 adc a,$92+x +07dc: d4 92 mov $92+x,a +07de: 2d push a +07df: f5 57 06 mov a,$0657+x +07e2: 28 07 and a,#$07 +07e4: 48 ff eor a,#$ff +07e6: bc inc a +07e7: 28 07 and a,#$07 +07e9: fd mov y,a +07ea: ae pop a +07eb: f0 0c beq $07f9 +07ed: 2d push a +07ee: 28 80 and a,#$80 +07f0: c4 0c mov $0c,a +07f2: ae pop a +07f3: 5c lsr a +07f4: 04 0c or a,$0c +07f6: dc dec y +07f7: d0 fa bne $07f3 +07f9: 3f 3b 09 call $093b +07fc: 4d push x +07fd: 2d push a +07fe: 7d mov a,x +07ff: 60 clrc +0800: 88 08 adc a,#$08 +0802: 5d mov x,a +0803: ae pop a +0804: 3f 3b 09 call $093b +0807: ce pop x +0808: f4 4a mov a,$4a+x +080a: c4 0a mov $0a,a +080c: f4 52 mov a,$52+x +080e: c4 0b mov $0b,a +0810: 04 0a or a,$0a +0812: f0 22 beq $0836 +0814: f5 67 06 mov a,$0667+x +0817: 28 02 and a,#$02 +0819: f0 03 beq $081e +081b: 3f a8 07 call $07a8 +081e: f4 62 mov a,$62+x +0820: 5c lsr a +0821: 5c lsr a +0822: 5c lsr a +0823: f0 07 beq $082c +0825: 0b 0a asl $0a +0827: 2b 0b rol $0b +0829: 9c dec a +082a: d0 f9 bne $0825 +082c: fb 62 mov y,$62+x +082e: f4 5a mov a,$5a+x +0830: 7a 0a addw ya,$0a +0832: d4 5a mov $5a+x,a +0834: db 62 mov $62+x,y +0836: f4 5a mov a,$5a+x +0838: d4 6a mov $6a+x,a +083a: f4 62 mov a,$62+x +083c: d4 72 mov $72+x,a +083e: f5 3f 06 mov a,$063f+x +0841: f0 49 beq $088c +0843: f4 8a mov a,$8a+x +0845: f0 05 beq $084c +0847: 9c dec a +0848: d4 8a mov $8a+x,a +084a: 2f 40 bra $088c +084c: f5 47 06 mov a,$0647+x +084f: 60 clrc +0850: 94 9a adc a,$9a+x +0852: d4 9a mov $9a+x,a +0854: fd mov y,a +0855: f6 d4 0c mov a,$0cd4+y +0858: 0d push psw +0859: 10 03 bpl $085e +085b: 48 ff eor a,#$ff +085d: bc inc a +085e: fd mov y,a +085f: f5 3f 06 mov a,$063f+x +0862: cf mul ya +0863: da 0c movw $0c,ya +0865: 4b 0d lsr $0d +0867: 6b 0c ror $0c +0869: f4 da mov a,$da+x +086b: f0 07 beq $0874 +086d: 4b 0d lsr $0d +086f: 6b 0c ror $0c +0871: 9c dec a +0872: d0 f9 bne $086d +0874: 8e pop psw +0875: 10 08 bpl $087f +0877: 58 ff 0c eor $0c,#$ff +087a: 58 ff 0d eor $0d,#$ff +087d: 3a 0c incw $0c +087f: e4 0c mov a,$0c +0881: 60 clrc +0882: 94 6a adc a,$6a+x +0884: d4 6a mov $6a+x,a +0886: e4 0d mov a,$0d +0888: 94 72 adc a,$72+x +088a: d4 72 mov $72+x,a +088c: 78 00 47 cmp $47,#$00 +088f: f0 0c beq $089d +0891: c8 04 cmp x,#$04 +0893: d0 08 bne $089d +0895: 38 ef 41 and $41,#$ef +0898: e8 00 mov a,#$00 +089a: d4 a2 mov $a2+x,a +089c: 6f ret + +089d: f5 2b 09 mov a,$092b+x +08a0: c4 0d mov $0d,a +08a2: 48 ff eor a,#$ff +08a4: c4 43 mov $43,a +08a6: f5 33 09 mov a,$0933+x +08a9: fd mov y,a +08aa: dd mov a,y +08ab: 08 00 or a,#$00 +08ad: c4 f2 mov $f2,a +08af: f4 7a mov a,$7a+x +08b1: c4 f3 mov $f3,a +08b3: dd mov a,y +08b4: 08 01 or a,#$01 +08b6: c4 f2 mov $f2,a +08b8: f4 82 mov a,$82+x +08ba: c4 f3 mov $f3,a +08bc: dd mov a,y +08bd: 08 02 or a,#$02 +08bf: c4 f2 mov $f2,a +08c1: f4 6a mov a,$6a+x +08c3: c4 f3 mov $f3,a +08c5: dd mov a,y +08c6: 08 03 or a,#$03 +08c8: c4 f2 mov $f2,a +08ca: f4 72 mov a,$72+x +08cc: c4 f3 mov $f3,a +08ce: dd mov a,y +08cf: 08 05 or a,#$05 +08d1: c4 f2 mov $f2,a +08d3: f5 27 06 mov a,$0627+x +08d6: c4 f3 mov $f3,a +08d8: dd mov a,y +08d9: 08 06 or a,#$06 +08db: c4 f2 mov $f2,a +08dd: f5 2f 06 mov a,$062f+x +08e0: c4 f3 mov $f3,a +08e2: dd mov a,y +08e3: 08 07 or a,#$07 +08e5: c4 f2 mov $f2,a +08e7: f5 6f 06 mov a,$066f+x +08ea: c4 f3 mov $f3,a +08ec: dd mov a,y +08ed: 08 04 or a,#$04 +08ef: c4 f2 mov $f2,a +08f1: f5 77 06 mov a,$0677+x +08f4: c4 f3 mov $f3,a +08f6: f5 67 06 mov a,$0667+x +08f9: 29 43 40 and ($40),($43) +08fc: 29 43 41 and ($41),($43) +08ff: 28 02 and a,#$02 +0901: f0 03 beq $0906 +0903: 09 0d 40 or ($40),($0d) +0906: f5 67 06 mov a,$0667+x +0909: 28 01 and a,#$01 +090b: f0 03 beq $0910 +090d: 09 0d 41 or ($41),($0d) +0910: 8f 3d f2 mov $f2,#$3d +0913: fa 40 f3 mov ($f3),($40) +0916: 8f 4d f2 mov $f2,#$4d +0919: fa 41 f3 mov ($f3),($41) +091c: f4 a2 mov a,$a2+x +091e: f0 0a beq $092a +0920: 8f 4c f2 mov $f2,#$4c +0923: fa 0d f3 mov ($f3),($0d) +0926: e8 00 mov a,#$00 +0928: d4 a2 mov $a2+x,a +092a: 6f ret + +092b: db $01,$02,$04,$08,$10,$20,$40,$80,$00,$10,$20,$30,$40,$50,$60,$70 + +093b: 2d push a +093c: 60 clrc +093d: 08 00 or a,#$00 +093f: 30 09 bmi $094a +0941: 95 0f 06 adc a,$060f+x +0944: 10 02 bpl $0948 +0946: e8 7f mov a,#$7f +0948: 2f 11 bra $095b +094a: 60 clrc +094b: 48 ff eor a,#$ff +094d: 88 01 adc a,#$01 +094f: c4 0c mov $0c,a +0951: f5 0f 06 mov a,$060f+x +0954: 80 setc +0955: a4 0c sbc a,$0c +0957: 10 02 bpl $095b +0959: e8 00 mov a,#$00 +095b: d4 7a mov $7a+x,a +095d: ae pop a +095e: 6f ret + +095f: 78 00 47 cmp $47,#$00 ; get next pattern byte +0962: f0 1a beq $097e +0964: 3f 7f 10 call $107f +0967: e4 f4 mov a,$f4 +0969: 28 80 and a,#$80 +096b: 64 3b cmp a,$3b +096d: f0 0f beq $097e +096f: e4 f4 mov a,$f4 +0971: 28 7f and a,#$7f +0973: 68 0b cmp a,#$0b +0975: d0 07 bne $097e +0977: 4d push x +0978: 6d push y +0979: 3f b9 02 call $02b9 +097c: ee pop y +097d: ce pop x +097e: f6 23 00 mov a,$0023+y +0981: c4 08 mov $08,a +0983: f6 24 00 mov a,$0024+y +0986: c4 09 mov $09,a +0988: 68 ff cmp a,#$ff ; check for "empty rows" flag +098a: d0 05 bne $0991 +098c: e4 08 mov a,$08 +098e: d4 ba mov $ba+x,a +0990: 6f ret + +0991: 5c lsr a ; get the "final" command value - divide by 2... +0992: 28 7f and a,#$7f ; ...and mask out bit 1 +0994: 68 6d cmp a,#$6d ; is it 6d? +0996: b0 57 bcs $09ef ; if not, then... +0998: f6 23 00 mov a,$0023+y +099b: 16 24 00 or a,$0024+y +099e: d0 01 bne $09a1 ; is it a note? +09a0: 6f ret + +09a1: 4b 09 lsr $09 +09a3: 6b 08 ror $08 +09a5: e4 08 mov a,$08 +09a7: 5c lsr a +09a8: 5c lsr a +09a9: 5c lsr a +09aa: 28 1f and a,#$1f +09ac: f0 06 beq $09b4 +09ae: 9c dec a ; set instrument/sample +09af: 6d push y +09b0: 3f 7f 06 call $067f +09b3: ee pop y +09b4: f6 24 00 mov a,$0024+y +09b7: 5c lsr a +09b8: f0 07 beq $09c1 +09ba: 6d push y +09bb: 4d push x +09bc: 3f 52 07 call $0752 +09bf: ce pop x +09c0: ee pop y +09c1: f6 23 00 mov a,$0023+y +09c4: 28 0f and a,#$0f +09c6: f0 26 beq $09ee +09c8: c4 09 mov $09,a +09ca: 28 07 and a,#$07 +09cc: 2d push a +09cd: e4 09 mov a,$09 +09cf: 28 08 and a,#$08 +09d1: ae pop a +09d2: f0 03 beq $09d7 +09d4: 48 ff eor a,#$ff +09d6: bc inc a +09d7: d4 aa mov $aa+x,a +09d9: 1c asl a +09da: c4 08 mov $08,a +09dc: 8f 00 09 mov $09,#$00 +09df: 28 80 and a,#$80 +09e1: f0 03 beq $09e6 +09e3: 8f ff 09 mov $09,#$ff +09e6: e4 08 mov a,$08 +09e8: d4 4a mov $4a+x,a +09ea: e4 09 mov a,$09 +09ec: d4 52 mov $52+x,a +09ee: 6f ret + +09ef: 68 7d cmp a,#$7d ; vcmd ff (7d) - empty rows +09f1: d0 4f bne $0a42 ; if 7d, then... +09f3: e4 08 mov a,$08 ; check for these values +09f5: c8 06 cmp x,#$06 +09f7: f0 0e beq $0a07 +09f9: c8 07 cmp x,#$07 +09fb: f0 0f beq $0a0c +09fd: c4 3e mov $3e,a ; otherwise, check for other commands +09ff: 3f 1c 0a call $0a1c +0a02: c4 1e mov $1e,a +0a04: c4 1d mov $1d,a +0a06: 6f ret + +0a07: c4 20 mov $20,a +0a09: c4 1f mov $1f,a +0a0b: 6f ret + +0a0c: c4 22 mov $22,a +0a0e: c4 21 mov $21,a +0a10: 6f ret + +0a11: cb 3d mov $3d,y +0a13: fa 3e 08 mov ($08),($3e) +0a16: 3f 1c 0a call $0a1c +0a19: c4 1e mov $1e,a +0a1b: 6f ret + +0a1c: e4 3d mov a,$3d +0a1e: 30 0b bmi $0a2b +0a20: 60 clrc +0a21: 84 08 adc a,$08 +0a23: b0 02 bcs $0a27 +0a25: d0 14 bne $0a3b +0a27: e8 ff mov a,#$ff +0a29: 2f 10 bra $0a3b +0a2b: 48 ff eor a,#$ff +0a2d: 60 clrc +0a2e: 88 01 adc a,#$01 +0a30: c4 09 mov $09,a +0a32: e4 08 mov a,$08 +0a34: 80 setc +0a35: a4 09 sbc a,$09 +0a37: b0 02 bcs $0a3b +0a39: e8 01 mov a,#$01 +0a3b: 68 04 cmp a,#$04 +0a3d: b0 02 bcs $0a41 +0a3f: e8 04 mov a,#$04 +0a41: 6f ret + +0a42: c8 07 cmp x,#$07 +0a44: d0 06 bne $0a4c +0a46: 78 00 35 cmp $35,#$00 +0a49: f0 01 beq $0a4c +0a4b: 1d dec x +0a4c: 68 7e cmp a,#$7e ; vcmd fc (7e) - jump to position +0a4e: f0 0f beq $0a5f +0a50: 68 7f cmp a,#$7f ; vcmd fe (7f) - pattern break +0a52: f0 01 beq $0a55 +0a54: 6f ret + +0a55: c8 06 cmp x,#$06 +0a57: f0 19 beq $0a72 +0a59: c8 07 cmp x,#$07 +0a5b: f0 1b beq $0a78 +0a5d: 2f 0d bra $0a6c +0a5f: e4 08 mov a,$08 +0a61: 9c dec a +0a62: c8 06 cmp x,#$06 +0a64: f0 0a beq $0a70 +0a66: c8 07 cmp x,#$07 +0a68: f0 0c beq $0a76 +0a6a: c4 2f mov $2f,a +0a6c: 8f 3f 30 mov $30,#$3f +0a6f: 6f ret + +0a70: c4 36 mov $36,a +0a72: 8f 3f 37 mov $37,#$3f +0a75: 6f ret + +0a76: c4 38 mov $38,a +0a78: 8f 3f 39 mov $39,#$3f +0a7b: 6f ret + +0a7c: 78 00 35 cmp $35,#$00 +0a7f: f0 06 beq $0a87 +0a81: 3f c6 03 call $03c6 +0a84: 8f 00 34 mov $34,#$00 +0a87: 8f 00 35 mov $35,#$00 +0a8a: 3f c2 03 call $03c2 +0a8d: cd 06 mov x,#$06 +0a8f: 3f 05 0b call $0b05 +0a92: dd mov a,y +0a93: c4 36 mov $36,a +0a95: e8 00 mov a,#$00 +0a97: c4 b8 mov $b8,a +0a99: c4 c0 mov $c0,a +0a9b: 8f 00 37 mov $37,#$00 +0a9e: 8f 02 33 mov $33,#$02 +0aa1: cb 0c mov $0c,y +0aa3: 3f 3a 0b call $0b3a +0aa6: 8d 01 mov y,#$01 +0aa8: f7 0c mov a,($0c)+y +0aaa: f0 14 beq $0ac0 +0aac: 8f 08 35 mov $35,#$08 +0aaf: e8 00 mov a,#$00 +0ab1: c4 b9 mov $b9,a +0ab3: c4 c1 mov $c1,a +0ab5: 3f c6 03 call $03c6 +0ab8: cd 07 mov x,#$07 +0aba: 3f 05 0b call $0b05 +0abd: 8f 00 34 mov $34,#$00 +0ac0: 8f 01 1f mov $1f,#$01 +0ac3: 8f 02 20 mov $20,#$02 +0ac6: 6f ret + +0ac7: 78 00 35 cmp $35,#$00 +0aca: f0 06 beq $0ad2 +0acc: 3f c2 03 call $03c2 +0acf: 8f 00 33 mov $33,#$00 +0ad2: 3f c6 03 call $03c6 +0ad5: e8 00 mov a,#$00 +0ad7: c4 b9 mov $b9,a +0ad9: c4 c1 mov $c1,a +0adb: cb 0c mov $0c,y +0add: 3f 3a 0b call $0b3a +0ae0: 6d push y +0ae1: 8d 01 mov y,#$01 +0ae3: f7 0c mov a,($0c)+y +0ae5: ee pop y +0ae6: f0 05 beq $0aed +0ae8: 8f 08 35 mov $35,#$08 +0aeb: 2f 9d bra $0a8a +0aed: 8f 00 35 mov $35,#$00 +0af0: dd mov a,y +0af1: c4 38 mov $38,a +0af3: 8f 00 39 mov $39,#$00 +0af6: 8f 04 34 mov $34,#$04 +0af9: 8f 01 21 mov $21,#$01 +0afc: 8f 02 22 mov $22,#$02 +0aff: cd 07 mov x,#$07 +0b01: 3f 05 0b call $0b05 +0b04: 6f ret + +0b05: e4 f6 mov a,$f6 +0b07: 68 81 cmp a,#$81 +0b09: 90 05 bcc $0b10 +0b0b: 28 7f and a,#$7f +0b0d: d4 ca mov $ca+x,a +0b0f: 6f ret + +0b10: e8 00 mov a,#$00 +0b12: d4 ca mov $ca+x,a +0b14: 6f ret + +0b15: cb 2f mov $2f,y +0b17: 3f 9e 03 call $039e +0b1a: 8f 00 30 mov $30,#$00 +0b1d: 8f 01 32 mov $32,#$01 +0b20: 3f 2d 0b call $0b2d +0b23: 8f 01 32 mov $32,#$01 +0b26: 8f 02 1d mov $1d,#$02 +0b29: 8f 0a 1e mov $1e,#$0a +0b2c: 6f ret + +0b2d: cd 00 mov x,#$00 +0b2f: 7d mov a,x +0b30: d4 b2 mov $b2+x,a +0b32: d4 ba mov $ba+x,a +0b34: 3d inc x +0b35: c8 06 cmp x,#$06 +0b37: d0 f7 bne $0b30 +0b39: 6f ret + +0b3a: fa 12 08 mov ($08),($12) +0b3d: fa 13 09 mov ($09),($13) +0b40: 60 clrc +0b41: 98 53 08 adc $08,#$53 +0b44: 98 00 09 adc $09,#$00 +0b47: 8f 00 0d mov $0d,#$00 +0b4a: 0b 0c asl $0c +0b4c: 2b 0d rol $0d +0b4e: 60 clrc +0b4f: 89 08 0c adc ($0c),($08) +0b52: 89 09 0d adc ($0d),($09) +0b55: 6f ret + +0b56: 78 00 34 cmp $34,#$00 +0b59: f0 fa beq $0b55 +0b5b: fa 38 0c mov ($0c),($38) +0b5e: fa 39 31 mov ($31),($39) +0b61: cd 07 mov x,#$07 +0b63: 2f 0d bra $0b72 +0b65: 78 00 33 cmp $33,#$00 +0b68: f0 71 beq $0bdb +0b6a: fa 36 0c mov ($0c),($36) +0b6d: fa 37 31 mov ($31),($37) +0b70: cd 06 mov x,#$06 +0b72: 3f 3a 0b call $0b3a +0b75: c8 06 cmp x,#$06 +0b77: d0 1d bne $0b96 +0b79: 78 00 35 cmp $35,#$00 +0b7c: f0 18 beq $0b96 +0b7e: e4 0c mov a,$0c +0b80: 2d push a +0b81: e4 0d mov a,$0d +0b83: 2d push a +0b84: 3f 4a 0c call $0c4a +0b87: ae pop a +0b88: c4 0d mov $0d,a +0b8a: ae pop a +0b8b: c4 0c mov $0c,a +0b8d: 3a 0c incw $0c +0b8f: 3d inc x +0b90: 3f 4a 0c call $0c4a +0b93: 1d dec x +0b94: 2f 03 bra $0b99 +0b96: 3f 4a 0c call $0c4a +0b99: c8 06 cmp x,#$06 +0b9b: f0 27 beq $0bc4 +0b9d: ab 39 inc $39 +0b9f: 78 40 39 cmp $39,#$40 +0ba2: d0 37 bne $0bdb +0ba4: 8f 00 39 mov $39,#$00 +0ba7: ab 38 inc $38 +0ba9: d0 03 bne $0bae +0bab: 8f 00 34 mov $34,#$00 +0bae: 3f b2 0b call $0bb2 +0bb1: 6f ret + +0bb2: e8 00 mov a,#$00 +0bb4: d4 ba mov $ba+x,a +0bb6: d4 b2 mov $b2+x,a +0bb8: c8 06 cmp x,#$06 +0bba: d0 1f bne $0bdb +0bbc: 78 00 35 cmp $35,#$00 +0bbf: f0 1a beq $0bdb +0bc1: 3d inc x +0bc2: 2f f0 bra $0bb4 +0bc4: ab 37 inc $37 +0bc6: 78 40 37 cmp $37,#$40 +0bc9: d0 10 bne $0bdb +0bcb: 8f 00 37 mov $37,#$00 +0bce: ab 36 inc $36 +0bd0: d0 06 bne $0bd8 +0bd2: 8f 00 33 mov $33,#$00 +0bd5: 8f 00 35 mov $35,#$00 +0bd8: 3f b2 0b call $0bb2 +0bdb: 6f ret + +0bdc: 78 00 32 cmp $32,#$00 +0bdf: d0 01 bne $0be2 +0be1: 6f ret + +0be2: fa 30 31 mov ($31),($30) +0be5: fa 14 08 mov ($08),($14) +0be8: fa 15 09 mov ($09),($15) +0beb: 60 clrc +0bec: 98 53 08 adc $08,#$53 +0bef: 98 00 09 adc $09,#$00 +0bf2: fa 2f 0c mov ($0c),($2f) +0bf5: 8f 00 0d mov $0d,#$00 +0bf8: 0b 0c asl $0c +0bfa: 2b 0d rol $0d +0bfc: fa 0c 0a mov ($0a),($0c) +0bff: fa 0d 0b mov ($0b),($0d) +0c02: 0b 0c asl $0c +0c04: 2b 0d rol $0d +0c06: 60 clrc +0c07: e4 0c mov a,$0c +0c09: 84 0a adc a,$0a +0c0b: c4 0c mov $0c,a +0c0d: e4 0d mov a,$0d +0c0f: 84 0b adc a,$0b +0c11: c4 0d mov $0d,a +0c13: 60 clrc +0c14: 89 08 0c adc ($0c),($08) +0c17: 89 09 0d adc ($0d),($09) +0c1a: cd 00 mov x,#$00 +0c1c: e4 0c mov a,$0c +0c1e: 2d push a +0c1f: e4 0d mov a,$0d +0c21: 2d push a +0c22: 3f 4a 0c call $0c4a +0c25: ae pop a +0c26: c4 0d mov $0d,a +0c28: ae pop a +0c29: c4 0c mov $0c,a +0c2b: 3a 0c incw $0c +0c2d: 3d inc x +0c2e: c8 06 cmp x,#$06 +0c30: d0 ea bne $0c1c +0c32: ab 30 inc $30 +0c34: 78 40 30 cmp $30,#$40 +0c37: d0 10 bne $0c49 +0c39: 8f 00 30 mov $30,#$00 +0c3c: ab 2f inc $2f +0c3e: d0 06 bne $0c46 +0c40: 8f 00 32 mov $32,#$00 +0c43: 3f 9e 03 call $039e +0c46: 3f 2d 0b call $0b2d +0c49: 6f ret + +0c4a: f4 ba mov a,$ba+x ; load music and sound effects data +0c4c: d0 60 bne $0cae +0c4e: 8d 00 mov y,#$00 +0c50: f7 0c mov a,($0c)+y +0c52: c4 0a mov $0a,a +0c54: 8f 00 0b mov $0b,#$00 +0c57: 0b 0a asl $0a +0c59: 2b 0b rol $0b +0c5b: fa 12 08 mov ($08),($12) ; sound effects pointer +0c5e: fa 13 09 mov ($09),($13) +0c61: c8 06 cmp x,#$06 +0c63: f0 0a beq $0c6f +0c65: c8 07 cmp x,#$07 +0c67: f0 06 beq $0c6f +0c69: fa 14 08 mov ($08),($14) ; music pointer +0c6c: fa 15 09 mov ($09),($15) +0c6f: 60 clrc +0c70: 98 51 08 adc $08,#$51 ; get start of channel patterns +0c73: 98 00 09 adc $09,#$00 +0c76: f7 08 mov a,($08)+y +0c78: 60 clrc +0c79: 84 0a adc a,$0a ; store current channel pattern pointer +0c7b: c4 0a mov $0a,a +0c7d: fc inc y +0c7e: f7 08 mov a,($08)+y +0c80: 84 0b adc a,$0b +0c82: c4 0b mov $0b,a +0c84: dc dec y +0c85: f7 0a mov a,($0a)+y +0c87: c4 08 mov $08,a +0c89: fc inc y +0c8a: f7 0a mov a,($0a)+y +0c8c: c4 09 mov $09,a +0c8e: f4 b2 mov a,$b2+x +0c90: c4 0a mov $0a,a +0c92: e4 31 mov a,$31 +0c94: 80 setc +0c95: a4 0a sbc a,$0a +0c97: 1c asl a +0c98: 60 clrc +0c99: 84 08 adc a,$08 ; get current pattern bytes +0c9b: c4 08 mov $08,a +0c9d: 98 00 09 adc $09,#$00 +0ca0: 8d 01 mov y,#$01 +0ca2: f7 08 mov a,($08)+y +0ca4: c4 24 mov $24,a +0ca6: dc dec y +0ca7: f7 08 mov a,($08)+y +0ca9: c4 23 mov $23,a +0cab: 5f 5f 09 jmp $095f + +0cae: f4 ba mov a,$ba+x +0cb0: 9c dec a +0cb1: d4 ba mov $ba+x,a +0cb3: f4 b2 mov a,$b2+x +0cb5: bc inc a +0cb6: d4 b2 mov $b2+x,a +0cb8: 6f ret + +0cb9: db $07,$07,$07,$06,$06,$06,$05,$05,$05,$04,$04,$04,$03,$03,$03,$02,$02,$02,$01,$01,$01,$00,$00,$00,$00,$00,$00,$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0a,$0b,$0c,$0d,$0e,$0f,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$1a,$1b,$1c,$1d,$1e,$1f,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$2f,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$3f,$3f,$3e,$3d,$3c,$3b,$3a,$39,$38,$37,$36,$35,$34,$33,$32,$31,$30,$2f,$2e,$2d,$2c,$2b,$2a,$29,$28,$27,$26,$25,$24,$23,$22,$21,$20,$1f,$1e,$1d,$1c,$1b,$1a,$19,$18,$17,$16,$15,$14,$13,$12,$11,$10,$0f,$0e,$0d,$0c,$0b,$0a,$09,$08,$07,$06,$05,$04,$03,$02,$01,$00,$00,$ff,$fe,$fd,$fc,$fb,$fa,$f9,$f8,$f7,$f6,$f5,$f4,$f3,$f2,$f1,$f0,$ef,$ee,$ed,$ec,$eb,$ea,$e9,$e8,$e7,$e6,$e5,$e4,$e3,$e2,$e1,$e0,$df,$de,$dd,$dc,$db,$da,$d9,$d8,$d7,$d6,$d5,$d4,$d3,$d2,$d1,$d0,$cf,$ce,$cd,$cc,$cb,$ca,$c9,$c8,$c7,$c6,$c5,$c4,$c3,$c2,$c1,$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$ca,$cb,$cc,$cd,$ce,$cf,$d0,$d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$da,$db,$dc,$dd,$de,$df,$e0,$e1,$e2,$e3,$e4,$e5,$e6,$e7,$e8,$e9,$ea,$eb,$ec,$ed,$ee,$ef,$f0,$f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8,$f9,$fa,$fb,$fc,$fd,$fe,$ff,$00 + +0dd4: db $84,$00,$8c,$00,$95,$00,$9d,$00,$a6,$00,$b1,$00,$bb,$00,$c6,$00,$d1,$00,$de,$00,$eb,$00,$fa,$00,$08,$01,$18,$01,$2a,$01,$3a,$01,$4d,$01,$62,$01,$77,$01,$8c,$01,$a3,$01,$bd,$01,$d7,$01,$f5,$01,$10,$02,$30,$02,$54,$02,$75,$02,$9a,$02,$c4,$02,$ee,$02,$18,$03,$47,$03,$7b,$03,$af,$03,$ea,$03,$20,$04,$60,$04,$a8,$04,$ea,$04,$34,$05,$88,$05,$dc,$05,$30,$06,$8e,$06,$f7,$06,$5f,$07,$d4,$07,$40,$08,$c0,$08,$50,$09,$d4,$09,$68,$0a,$10,$0b,$b8,$0b,$60,$0c,$1c,$0d,$ef,$0d,$bf,$0e,$a8,$0f,$80,$10,$80,$11,$a0,$12,$a8,$13,$d0,$14,$20,$16,$70,$17,$c0,$18,$38,$1a,$de,$1b,$7e,$1d,$50,$1f,$00,$21,$00,$23,$40,$25,$50,$27,$a0,$29,$40,$2c,$e0,$2e,$80,$31,$70,$34,$bc,$37,$fc,$3a,$a0,$3e + +0e7c: 78 00 3a cmp $3a,#$00 +0e7f: f0 01 beq $0e82 +0e81: 6f ret + +0e82: cd 00 mov x,#$00 +0e84: 4d push x +0e85: e4 47 mov a,$47 +0e87: f0 03 beq $0e8c +0e89: 3f 7f 10 call $107f +0e8c: 3f c8 07 call $07c8 +0e8f: 3f b9 02 call $02b9 +0e92: ce pop x +0e93: 3d inc x +0e94: c8 08 cmp x,#$08 +0e96: d0 ec bne $0e84 +0e98: 8b 1d dec $1d +0e9a: d0 14 bne $0eb0 +0e9c: fa 1e 1d mov ($1d),($1e) +0e9f: fa 2f f5 mov ($f5),($2f) +0ea2: e4 30 mov a,$30 +0ea4: 78 00 47 cmp $47,#$00 +0ea7: f0 02 beq $0eab +0ea9: 08 80 or a,#$80 +0eab: c4 f6 mov $f6,a +0ead: 3f dc 0b call $0bdc +0eb0: 8b 1f dec $1f +0eb2: d0 06 bne $0eba +0eb4: fa 20 1f mov ($1f),($20) +0eb7: 3f 65 0b call $0b65 +0eba: 8b 21 dec $21 +0ebc: d0 06 bne $0ec4 +0ebe: fa 22 21 mov ($21),($22) +0ec1: 3f 56 0b call $0b56 +0ec4: 6f ret + +0ec5: 5c lsr a +0ec6: 28 3f and a,#$3f +0ec8: c4 45 mov $45,a +0eca: cb 44 mov $44,y +0ecc: cd 00 mov x,#$00 +0ece: e8 00 mov a,#$00 +0ed0: 78 3f 48 cmp $48,#$3f +0ed3: f0 14 beq $0ee9 +0ed5: e8 00 mov a,#$00 +0ed7: d6 84 16 mov $1684+y,a +0eda: d6 85 16 mov $1685+y,a +0edd: d6 86 16 mov $1686+y,a +0ee0: fc inc y +0ee1: fc inc y +0ee2: fc inc y +0ee3: ad b4 cmp y,#$b4 +0ee5: d0 f0 bne $0ed7 +0ee7: 2f 12 bra $0efb +0ee9: e8 00 mov a,#$00 +0eeb: d6 38 17 mov $1738+y,a +0eee: d6 39 17 mov $1739+y,a +0ef1: d6 3a 17 mov $173a+y,a +0ef4: fc inc y +0ef5: fc inc y +0ef6: fc inc y +0ef7: ad b4 cmp y,#$b4 +0ef9: d0 f0 bne $0eeb +0efb: e8 03 mov a,#$03 +0efd: c4 47 mov $47,a +0eff: c5 2f 17 mov $172f,a +0f02: c5 e3 17 mov $17e3,a +0f05: e8 00 mov a,#$00 +0f07: c5 8d 16 mov $168d,a +0f0a: c5 41 17 mov $1741,a +0f0d: 8f 44 f2 mov $f2,#$44 +0f10: fa 48 f3 mov ($f3),($48) +0f13: 8f 40 46 mov $46,#$40 +0f16: 6f ret + +0f17: 8f 01 f4 mov $f4,#$01 +0f1a: 8f 01 f5 mov $f5,#$01 +0f1d: fa 49 f6 mov ($f6),($49) +0f20: 8f 84 04 mov $04,#$84 +0f23: 8f 16 05 mov $05,#$16 +0f26: e8 b1 mov a,#$b1 +0f28: c5 54 0f mov $0f54,a +0f2b: e8 0f mov a,#$0f +0f2d: c5 55 0f mov $0f55,a +0f30: 78 3f 48 cmp $48,#$3f +0f33: d0 10 bne $0f45 +0f35: e8 fe mov a,#$fe +0f37: c5 54 0f mov $0f54,a +0f3a: e8 0f mov a,#$0f +0f3c: c5 55 0f mov $0f55,a +0f3f: 8f 38 04 mov $04,#$38 +0f42: 8f 17 05 mov $05,#$17 +0f45: 8d 00 mov y,#$00 +0f47: cd 11 mov x,#$11 +0f49: 69 0f f7 cmp ($f7),($0f) +0f4c: f0 fb beq $0f49 +0f4e: ab 0f inc $0f +0f50: fa 0f f7 mov ($f7),($0f) +0f53: 3f b1 0f call $0fb1 +0f56: f0 4b beq $0fa3 +0f58: 1d dec x +0f59: d0 f8 bne $0f53 +0f5b: dd mov a,y +0f5c: 80 setc +0f5d: a8 09 sbc a,#$09 +0f5f: fd mov y,a +0f60: f7 04 mov a,($04)+y +0f62: 08 03 or a,#$03 +0f64: d7 04 mov ($04)+y,a +0f66: 8f 00 46 mov $46,#$00 +0f69: 78 03 47 cmp $47,#$03 +0f6c: d0 11 bne $0f7f +0f6e: 8b 47 dec $47 +0f70: 3f a8 10 call $10a8 +0f73: 8f 4c f2 mov $f2,#$4c +0f76: 8f 10 f3 mov $f3,#$10 +0f79: 8f 44 f2 mov $f2,#$44 +0f7c: fa 48 f3 mov ($f3),($48) +0f7f: e4 3b mov a,$3b +0f81: 04 32 or a,$32 +0f83: 04 33 or a,$33 +0f85: 04 34 or a,$34 +0f87: 04 35 or a,$35 +0f89: 04 3a or a,$3a +0f8b: 08 20 or a,#$20 +0f8d: c4 f4 mov $f4,a +0f8f: fa 2f f5 mov ($f5),($2f) +0f92: e4 30 mov a,$30 +0f94: 08 80 or a,#$80 +0f96: c4 f6 mov $f6,a +0f98: 69 f7 0f cmp ($0f),($f7) +0f9b: f0 fb beq $0f98 +0f9d: ab 0f inc $0f +0f9f: fa 0f f7 mov ($f7),($0f) +0fa2: 6f ret + +0fa3: 8f 01 47 mov $47,#$01 +0fa6: 1d dec x +0fa7: f0 b2 beq $0f5b +0fa9: 3f 4b 10 call $104b +0fac: 1d dec x +0fad: d0 fa bne $0fa9 +0faf: 2f aa bra $0f5b +0fb1: 8f 00 f4 mov $f4,#$00 +0fb4: 8f 00 f5 mov $f5,#$00 +0fb7: 69 f7 0f cmp ($0f),($f7) +0fba: f0 fb beq $0fb7 +0fbc: ab 0f inc $0f +0fbe: e4 f4 mov a,$f4 +0fc0: 28 fc and a,#$fc +0fc2: d6 84 16 mov $1684+y,a +0fc5: e4 f5 mov a,$f5 +0fc7: d6 85 16 mov $1685+y,a +0fca: fa 0f f7 mov ($f7),($0f) +0fcd: e4 f6 mov a,$f6 +0fcf: d6 86 16 mov $1686+y,a +0fd2: e4 f4 mov a,$f4 +0fd4: d6 87 16 mov $1687+y,a +0fd7: e4 f5 mov a,$f5 +0fd9: d6 88 16 mov $1688+y,a +0fdc: 8f 01 f4 mov $f4,#$01 +0fdf: e4 f6 mov a,$f6 +0fe1: d6 89 16 mov $1689+y,a +0fe4: e4 f4 mov a,$f4 +0fe6: d6 8a 16 mov $168a+y,a +0fe9: e4 f5 mov a,$f5 +0feb: d6 8b 16 mov $168b+y,a +0fee: 8f 01 f5 mov $f5,#$01 +0ff1: e4 f6 mov a,$f6 +0ff3: d6 8c 16 mov $168c+y,a +0ff6: dd mov a,y +0ff7: 60 clrc +0ff8: 88 09 adc a,#$09 +0ffa: fd mov y,a +0ffb: 1a 44 decw $44 +0ffd: 6f ret + +0ffe: 8f 00 f4 mov $f4,#$00 +1001: 8f 00 f5 mov $f5,#$00 +1004: 69 f7 0f cmp ($0f),($f7) +1007: f0 fb beq $1004 +1009: ab 0f inc $0f +100b: e4 f4 mov a,$f4 +100d: 28 fc and a,#$fc +100f: d6 38 17 mov $1738+y,a +1012: e4 f5 mov a,$f5 +1014: d6 39 17 mov $1739+y,a +1017: fa 0f f7 mov ($f7),($0f) +101a: e4 f6 mov a,$f6 +101c: d6 3a 17 mov $173a+y,a +101f: e4 f4 mov a,$f4 +1021: d6 3b 17 mov $173b+y,a +1024: e4 f5 mov a,$f5 +1026: d6 3c 17 mov $173c+y,a +1029: 8f 01 f4 mov $f4,#$01 +102c: e4 f6 mov a,$f6 +102e: d6 3d 17 mov $173d+y,a +1031: e4 f4 mov a,$f4 +1033: d6 3e 17 mov $173e+y,a +1036: e4 f5 mov a,$f5 +1038: d6 3f 17 mov $173f+y,a +103b: 8f 01 f5 mov $f5,#$01 +103e: e4 f6 mov a,$f6 +1040: d6 40 17 mov $1740+y,a +1043: dd mov a,y +1044: 60 clrc +1045: 88 09 adc a,#$09 +1047: fd mov y,a +1048: 1a 44 decw $44 +104a: 6f ret + +104b: 8f 00 f4 mov $f4,#$00 +104e: 8f 00 f5 mov $f5,#$00 +1051: 69 f7 0f cmp ($0f),($f7) +1054: f0 fb beq $1051 +1056: e8 00 mov a,#$00 +1058: d7 04 mov ($04)+y,a +105a: fc inc y +105b: d7 04 mov ($04)+y,a +105d: fc inc y +105e: d7 04 mov ($04)+y,a +1060: fc inc y +1061: ab 0f inc $0f +1063: fa 0f f7 mov ($f7),($0f) +1066: d7 04 mov ($04)+y,a +1068: fc inc y +1069: d7 04 mov ($04)+y,a +106b: fc inc y +106c: d7 04 mov ($04)+y,a +106e: fc inc y +106f: 8f 01 f4 mov $f4,#$01 +1072: d7 04 mov ($04)+y,a +1074: fc inc y +1075: d7 04 mov ($04)+y,a +1077: fc inc y +1078: d7 04 mov ($04)+y,a +107a: fc inc y +107b: 8f 01 f5 mov $f5,#$01 +107e: 6f ret + +107f: 78 01 47 cmp $47,#$01 +1082: f0 18 beq $109c +1084: 8f 7c f2 mov $f2,#$7c +1087: e4 f3 mov a,$f3 +1089: 28 10 and a,#$10 +108b: f0 0e beq $109b +108d: c4 f3 mov $f3,a +108f: 8f 44 f2 mov $f2,#$44 +1092: 58 7f 48 eor $48,#$7f +1095: fa 48 f3 mov ($f3),($48) +1098: 8f 40 46 mov $46,#$40 +109b: 6f ret + +109c: 8f 00 47 mov $47,#$00 +109f: e8 01 mov a,#$01 +10a1: c5 8d 16 mov $168d,a +10a4: c5 41 17 mov $1741,a +10a7: 6f ret + +10a8: 8f 40 f2 mov $f2,#$40 +10ab: 8f 3f f3 mov $f3,#$3f +10ae: 8f 41 f2 mov $f2,#$41 +10b1: 8f 3f f3 mov $f3,#$3f +10b4: 8f 45 f2 mov $f2,#$45 +10b7: 8f 00 f3 mov $f3,#$00 +10ba: 8f 47 f2 mov $f2,#$47 +10bd: 8f 7f f3 mov $f3,#$7f +10c0: 8f 42 f2 mov $f2,#$42 +10c3: 8f 30 f3 mov $f3,#$30 +10c6: 8f 43 f2 mov $f2,#$43 +10c9: 8f 05 f3 mov $f3,#$05 +10cc: 8f 4d f2 mov $f2,#$4d +10cf: 38 ef 41 and $41,#$ef +10d2: e4 f3 mov a,$f3 +10d4: 28 ef and a,#$ef +10d6: c4 f3 mov $f3,a +10d8: 8f 4c f2 mov $f2,#$4c +10db: 8f 10 f3 mov $f3,#$10 +10de: 6f ret + +10df: e8 84 mov a,#$84 +10e1: c5 fc 11 mov $11fc,a +10e4: c5 02 12 mov $1202,a +10e7: e8 16 mov a,#$16 +10e9: c5 fd 11 mov $11fd,a +10ec: c5 03 12 mov $1203,a +10ef: e8 38 mov a,#$38 +10f1: c5 00 12 mov $1200,a +10f4: c5 fe 11 mov $11fe,a +10f7: e8 17 mov a,#$17 +10f9: c5 01 12 mov $1201,a +10fc: c5 ff 11 mov $11ff,a +10ff: 6f ret + +; sample pointer table +1100: dw $2056 +1102: dw $21d9 +1104: dw $26c5 +1106: dw $28d8 +1108: dw $298c +110a: dw $298c +110c: dw $2d19 +110e: dw $2d19 +1110: dw $31cf +1112: dw $31cf +1114: dw $363d +1116: dw $3742 +1118: dw $3a12 +111a: dw $3d57 +111c: dw $4078 +111e: dw $4078 +1120: dw $488e +1122: dw $4a7d +1124: dw $4c09 +1126: dw $4fb1 +1128: dw $5509 +112a: dw $5509 +112c: dw $599b +112e: dw $5bc9 +1130: dw $6616 +1132: dw $68c2 +1134: dw $68c2 +1136: dw $6b2f +1138: dw $6b2f +113a: dw $7195 +113c: dw $7195 +113e: dw $772c +1140: dw $772c +1142: dw $7da4 +1144: dw $7da4 +1146: dw $8329 + +1148: dw $8329 diff --git a/snes/Martin Walker/Rise of the Robots ($0600).bin b/snes/Martin Walker/Rise of the Robots ($0600).bin new file mode 100644 index 00000000..2cd9287e Binary files /dev/null and b/snes/Martin Walker/Rise of the Robots ($0600).bin differ diff --git a/snes/Martin Walker/Rise of the Robots.s b/snes/Martin Walker/Rise of the Robots.s new file mode 100644 index 00000000..6250c4bd --- /dev/null +++ b/snes/Martin Walker/Rise of the Robots.s @@ -0,0 +1,1586 @@ +0600: 20 clrp ; clear ram variables +0601: cd ff mov x,#$ff +0603: bd mov sp,x +0604: e8 00 mov a,#$00 ; EVOL(L) +0606: 8d 2c mov y,#$2c +0608: 3f f1 10 call $10f1 +060b: 8d 3c mov y,#$3c ; EVOL(R) +060d: 3f f1 10 call $10f1 +0610: 8d 0c mov y,#$0c ; MVOL(L) +0612: 3f f1 10 call $10f1 +0615: 8d 1c mov y,#$1c ; MVOL(R) +0617: 3f f1 10 call $10f1 +061a: 8d 2d mov y,#$2d ; PMON +061c: 3f f1 10 call $10f1 +061f: e8 04 mov a,#$04 ; source directory +0621: 8d 5d mov y,#$5d +0623: 3f f1 10 call $10f1 +0626: cd 07 mov x,#$07 ; GAIN +0628: 8d 00 mov y,#$00 +062a: 7d mov a,x +062b: 9f xcn a +062c: c5 f2 00 mov $00f2,a +062f: cc f3 00 mov $00f3,y +0632: bc inc a +0633: c5 f2 00 mov $00f2,a +0636: cc f3 00 mov $00f3,y +0639: 1d dec x +063a: 10 ee bpl $062a +063c: cd 00 mov x,#$00 +063e: 7d mov a,x +063f: af mov (x)+,a +0640: c8 f0 cmp x,#$f0 +0642: d0 fb bne $063f +0644: 5d mov x,a +0645: d5 00 01 mov $0100+x,a +0648: d5 00 02 mov $0200+x,a +064b: d5 00 03 mov $0300+x,a +064e: 3d inc x +064f: d0 f4 bne $0645 +0651: 3f f8 10 call $10f8 +0654: 3f 57 11 call $1157 +0657: 3f 0f 08 call $080f +065a: e8 90 mov a,#$90 +065c: c5 f1 00 mov $00f1,a +065f: e8 20 mov a,#$20 +0661: c5 fa 00 mov $00fa,a +0664: e8 81 mov a,#$81 +0666: c5 f1 00 mov $00f1,a +0669: 8f 00 f4 mov $f4,#$00 +066c: e4 f6 mov a,$f6 +066e: f0 fc beq $066c +0670: e8 ff mov a,#$ff +0672: c4 01 mov $01,a +0674: c4 f4 mov $f4,a +0676: e4 2e mov a,$2e +0678: 8d 5c mov y,#$5c +067a: 3f f1 10 call $10f1 +067d: e8 00 mov a,#$00 +067f: c4 2e mov $2e,a +0681: e3 1c 28 bbs7 $1c,$06ac +0684: e4 2f mov a,$2f +0686: 8d 6c mov y,#$6c +0688: 3f f1 10 call $10f1 +068b: 69 1d 1c cmp ($1c),($1d) +068e: d0 1c bne $06ac +0690: e4 31 mov a,$31 +0692: 8d 4d mov y,#$4d +0694: 3f f1 10 call $10f1 +0697: e4 33 mov a,$33 +0699: 8d 0d mov y,#$0d +069b: 3f f1 10 call $10f1 +069e: e4 42 mov a,$42 +06a0: 8d 2c mov y,#$2c +06a2: 3f f1 10 call $10f1 +06a5: e4 44 mov a,$44 +06a7: 8d 3c mov y,#$3c +06a9: 3f f1 10 call $10f1 +06ac: e4 30 mov a,$30 +06ae: 8d 3d mov y,#$3d +06b0: 3f f1 10 call $10f1 +06b3: e8 00 mov a,#$00 +06b5: 8d 5c mov y,#$5c +06b7: 3f f1 10 call $10f1 +06ba: e4 2d mov a,$2d +06bc: 8d 4c mov y,#$4c +06be: 3f f1 10 call $10f1 +06c1: e8 00 mov a,#$00 +06c3: c4 2d mov $2d,a +06c5: 3f 9f 11 call $119f +06c8: ec fd 00 mov y,$00fd +06cb: f0 f8 beq $06c5 +06cd: dd mov a,y +06ce: 60 clrc +06cf: 84 19 adc a,$19 +06d1: 68 04 cmp a,#$04 +06d3: 90 09 bcc $06de +06d5: 69 1d 1c cmp ($1c),($1d) +06d8: f0 02 beq $06dc +06da: ab 1c inc $1c +06dc: e8 00 mov a,#$00 +06de: c4 19 mov $19,a +06e0: e8 80 mov a,#$80 +06e2: cf mul ya +06e3: ad 00 cmp y,#$00 +06e5: f0 05 beq $06ec +06e7: e8 00 mov a,#$00 +06e9: 80 setc +06ea: 2f 03 bra $06ef +06ec: 60 clrc +06ed: 84 22 adc a,$22 +06ef: c4 22 mov $22,a +06f1: b0 15 bcs $0708 +06f3: cd 00 mov x,#$00 +06f5: 8f 01 1a mov $1a,#$01 +06f8: f4 50 mov a,$50+x +06fa: f0 03 beq $06ff +06fc: 3f 57 0d call $0d57 +06ff: 3d inc x +0700: 3d inc x +0701: 0b 1a asl $1a +0703: d0 f3 bne $06f8 +0705: 5f 76 06 jmp $0676 +0708: 3f 9d 08 call $089d +070b: 3f 11 07 call $0711 +070e: 5f 76 06 jmp $0676 +0711: e4 4d mov a,$4d +0713: 30 06 bmi $071b +0715: 3f 26 07 call $0726 +0718: 8f ff 4d mov $4d,#$ff +071b: e4 00 mov a,$00 +071d: 30 06 bmi $0725 +071f: 3f 26 07 call $0726 +0722: 8f ff 00 mov $00,#$ff +0725: 6f ret +0726: c4 21 mov $21,a +0728: 8d 09 mov y,#$09 +072a: cf mul ya +072b: da 25 movw $25,ya +072d: 60 clrc +072e: 89 0e 25 adc ($25),($0e) +0731: 89 0f 26 adc ($26),($0f) +0734: 8d 00 mov y,#$00 +0736: f7 25 mov a,($25)+y +0738: c4 17 mov $17,a +073a: 28 7f and a,#$7f +073c: c4 15 mov $15,a +073e: cd 0e mov x,#$0e +0740: 8f 80 1a mov $1a,#$80 +0743: 7d mov a,x +0744: 5c lsr a +0745: fd mov y,a +0746: fc inc y +0747: f7 25 mov a,($25)+y +0749: 68 ff cmp a,#$ff +074b: f0 59 beq $07a6 +074d: c4 18 mov $18,a +074f: f5 11 03 mov a,$0311+x +0752: 64 15 cmp a,$15 +0754: 90 50 bcc $07a6 +0756: 8f 00 36 mov $36,#$00 +0759: 8f 00 3e mov $3e,#$00 +075c: 8f 00 34 mov $34,#$00 +075f: 8f ff 35 mov $35,#$ff +0762: 3f bf 07 call $07bf +0765: e4 15 mov a,$15 +0767: d5 11 03 mov $0311+x,a +076a: e4 02 mov a,$02 +076c: d5 a0 03 mov $03a0+x,a +076f: e8 ff mov a,#$ff +0771: d4 50 mov $50+x,a +0773: c8 00 cmp x,#$00 +0775: d0 03 bne $077a +0777: fa 21 4c mov ($4c),($21) +077a: e4 17 mov a,$17 +077c: 10 0c bpl $078a +077e: d5 70 03 mov $0370+x,a +0781: e4 18 mov a,$18 +0783: d4 91 mov $91+x,a +0785: 3f 6d 0a call $0a6d +0788: 2f 1c bra $07a6 +078a: e4 18 mov a,$18 +078c: 1c asl a +078d: fd mov y,a +078e: 60 clrc +078f: e4 0c mov a,$0c +0791: 97 0a adc a,($0a)+y +0793: d4 60 mov $60+x,a +0795: d4 70 mov $70+x,a +0797: fc inc y +0798: e4 0d mov a,$0d +079a: 97 0a adc a,($0a)+y +079c: d4 61 mov $61+x,a +079e: d4 71 mov $71+x,a +07a0: 3f de 09 call $09de +07a3: 3f 6d 0a call $0a6d +07a6: 4b 1a lsr $1a +07a8: 1d dec x +07a9: 1d dec x +07aa: 10 97 bpl $0743 +07ac: e8 7f mov a,#$7f +07ae: 8d 0c mov y,#$0c +07b0: cc f2 00 mov $00f2,y +07b3: c5 f3 00 mov $00f3,a +07b6: 8d 1c mov y,#$1c +07b8: cc f2 00 mov $00f2,y +07bb: c5 f3 00 mov $00f3,a +07be: 6f ret +07bf: e8 ff mov a,#$ff +07c1: d5 21 02 mov $0221+x,a +07c4: d5 91 03 mov $0391+x,a +07c7: d5 11 03 mov $0311+x,a +07ca: d5 00 02 mov $0200+x,a +07cd: d5 01 02 mov $0201+x,a +07d0: 8d 0c mov y,#$0c +07d2: 3f 39 0f call $0f39 +07d5: e8 00 mov a,#$00 +07d7: d5 60 02 mov $0260+x,a +07da: d5 11 02 mov $0211+x,a +07dd: d5 a1 02 mov $02a1+x,a +07e0: d5 61 02 mov $0261+x,a +07e3: d5 51 03 mov $0351+x,a +07e6: d5 90 03 mov $0390+x,a +07e9: d5 b0 02 mov $02b0+x,a +07ec: d4 51 mov $51+x,a +07ee: d4 c0 mov $c0+x,a +07f0: d4 a1 mov $a1+x,a +07f2: d4 c1 mov $c1+x,a +07f4: d5 00 03 mov $0300+x,a +07f7: d4 e0 mov $e0+x,a +07f9: d4 e1 mov $e1+x,a +07fb: d4 b0 mov $b0+x,a +07fd: d4 b1 mov $b1+x,a +07ff: d5 70 03 mov $0370+x,a +0802: e4 1a mov a,$1a +0804: 4e 2d 00 tclr1 $002d +0807: 0e 2e 00 tset1 $002e +080a: e8 01 mov a,#$01 +080c: d4 a0 mov $a0+x,a +080e: 6f ret +080f: cd 0e mov x,#$0e +0811: e8 00 mov a,#$00 +0813: d4 50 mov $50+x,a +0815: d5 11 02 mov $0211+x,a +0818: e8 ff mov a,#$ff +081a: d5 11 03 mov $0311+x,a +081d: 1d dec x +081e: 1d dec x +081f: 10 f0 bpl $0811 +0821: e8 00 mov a,#$00 +0823: fd mov y,a +0824: da 41 movw $41,ya +0826: da 43 movw $43,ya +0828: da 38 movw $38,ya +082a: e8 01 mov a,#$01 +082c: 3f 50 08 call $0850 +082f: a2 2f set5 $2f +0831: 8f ff 00 mov $00,#$ff +0834: 8f ff 4d mov $4d,#$ff +0837: 8f ff 2e mov $2e,#$ff +083a: 8f 00 36 mov $36,#$00 +083d: 8f 00 3e mov $3e,#$00 +0840: 8f 00 03 mov $03,#$00 +0843: 8f 00 49 mov $49,#$00 +0846: 8f 80 4a mov $4a,#$80 +0849: 8f ff 4c mov $4c,#$ff +084c: 8f 00 2d mov $2d,#$00 +084f: 6f ret +0850: 68 00 cmp a,#$00 +0852: d0 02 bne $0856 +0854: e8 01 mov a,#$01 +0856: c4 1d mov $1d,a +0858: 8d 7d mov y,#$7d +085a: cc f2 00 mov $00f2,y +085d: e5 f3 00 mov a,$00f3 +0860: 28 0f and a,#$0f +0862: 48 ff eor a,#$ff +0864: f3 1c 03 bbc7 $1c,$086a +0867: 60 clrc +0868: 84 1c adc a,$1c +086a: c4 1c mov $1c,a +086c: e8 00 mov a,#$00 +086e: 8d 4d mov y,#$4d +0870: 3f f1 10 call $10f1 +0873: 8d 0d mov y,#$0d +0875: 3f f1 10 call $10f1 +0878: 8d 2c mov y,#$2c +087a: 3f f1 10 call $10f1 +087d: 8d 3c mov y,#$3c +087f: 3f f1 10 call $10f1 +0882: e4 2f mov a,$2f +0884: 08 20 or a,#$20 +0886: 8d 6c mov y,#$6c +0888: 3f f1 10 call $10f1 +088b: e4 1d mov a,$1d +088d: 8d 7d mov y,#$7d +088f: 3f f1 10 call $10f1 +0892: 1c asl a +0893: 1c asl a +0894: 1c asl a +0895: 48 ff eor a,#$ff +0897: 8d 6d mov y,#$6d +0899: 3f f1 10 call $10f1 +089c: 6f ret +089d: cd 00 mov x,#$00 +089f: 8f 00 1e mov $1e,#$00 +08a2: 8f 01 1a mov $1a,#$01 +08a5: d8 1b mov $1b,x +08a7: f4 50 mov a,$50+x +08a9: d0 03 bne $08ae +08ab: 5f 4b 09 jmp $094b +08ae: e4 4a mov a,$4a +08b0: f0 0c beq $08be +08b2: 8f 01 46 mov $46,#$01 +08b5: 8f 00 47 mov $47,#$00 +08b8: 8f 00 48 mov $48,#$00 +08bb: 8f 00 4a mov $4a,#$00 +08be: f5 51 03 mov a,$0351+x +08c1: f0 1d beq $08e0 +08c3: f5 60 03 mov a,$0360+x +08c6: bc inc a +08c7: d5 60 03 mov $0360+x,a +08ca: 8d 7c mov y,#$7c +08cc: cc f2 00 mov $00f2,y +08cf: e5 f3 00 mov a,$00f3 +08d2: 24 1a and a,$1a +08d4: f0 72 beq $0948 +08d6: e8 01 mov a,#$01 +08d8: d4 a0 mov $a0+x,a +08da: 9c dec a +08db: d5 51 03 mov $0351+x,a +08de: 2f 68 bra $0948 +08e0: 60 clrc +08e1: f5 01 02 mov a,$0201+x +08e4: 95 00 02 adc a,$0200+x +08e7: d5 01 02 mov $0201+x,a +08ea: 90 5c bcc $0948 +08ec: f5 60 03 mov a,$0360+x +08ef: bc inc a +08f0: d5 60 03 mov $0360+x,a +08f3: 9b a0 dec $a0+x +08f5: d0 51 bne $0948 +08f7: 3f 03 10 call $1003 +08fa: 3f 4a 0e call $0e4a ; get next byte +08fd: 68 ff cmp a,#$ff ; check for end of sequence flag +08ff: d0 11 bne $0912 +0901: f5 70 03 mov a,$0370+x +0904: f0 03 beq $0909 +0906: 5f 28 0a jmp $0a28 +0909: 3f da 09 call $09da +090c: f4 50 mov a,$50+x +090e: d0 ea bne $08fa +0910: 2f 39 bra $094b +0912: 10 09 bpl $091d +0914: 68 9e cmp a,#$9e +0916: b0 05 bcs $091d +0918: 3f 3e 0e call $0e3e ; get note/vcmd +091b: 2f dd bra $08fa +091d: 3f a4 0a call $0aa4 +0920: 3f 4a 0e call $0e4a +0923: 68 ff cmp a,#$ff +0925: d0 05 bne $092c +0927: d5 51 03 mov $0351+x,a +092a: 2f 15 bra $0941 +092c: 1c asl a +092d: d4 a0 mov $a0+x,a +092f: f5 71 03 mov a,$0371+x +0932: f0 0d beq $0941 +0934: 3f 5f 0c call $0c5f +0937: e4 29 mov a,$29 +0939: 35 71 03 and a,$0371+x +093c: 60 clrc +093d: 94 a0 adc a,$a0+x +093f: d4 a0 mov $a0+x,a +0941: e8 00 mov a,#$00 +0943: d5 60 03 mov $0360+x,a +0946: 2f 03 bra $094b +0948: 3f bf 0c call $0cbf +094b: 3d inc x +094c: 3d inc x +094d: 0b 1a asl $1a +094f: f0 03 beq $0954 +0951: 5f a5 08 jmp $08a5 +0954: e4 3e mov a,$3e +0956: f0 15 beq $096d +0958: ba 3a movw ya,$3a +095a: 7a 41 addw ya,$41 +095c: da 41 movw $41,ya +095e: ba 3c movw ya,$3c +0960: 7a 43 addw ya,$43 +0962: 6e 3e 06 dbnz $3e,$096b +0965: ba 3e movw ya,$3e +0967: da 41 movw $41,ya +0969: eb 40 mov y,$40 +096b: da 43 movw $43,ya +096d: e4 36 mov a,$36 +096f: f0 0f beq $0980 +0971: ba 38 movw ya,$38 +0973: 7a 34 addw ya,$34 +0975: 8b 36 dec $36 +0977: d0 02 bne $097b +0979: ba 36 movw ya,$36 +097b: da 34 movw $34,ya +097d: 8f ff 1e mov $1e,#$ff +0980: cd 00 mov x,#$00 +0982: 8f 00 49 mov $49,#$00 +0985: 8f 01 1a mov $1a,#$01 +0988: f4 50 mov a,$50+x +098a: f0 06 beq $0992 +098c: 09 1a 49 or ($49),($1a) +098f: 3f b1 0b call $0bb1 +0992: 3d inc x +0993: 3d inc x +0994: 0b 1a asl $1a +0996: d0 f0 bne $0988 +0998: ba 38 movw ya,$38 +099a: f0 07 beq $09a3 +099c: e4 35 mov a,$35 +099e: d0 03 bne $09a3 +09a0: 3f 0f 08 call $080f +09a3: e4 49 mov a,$49 +09a5: d0 05 bne $09ac +09a7: 8f 80 4a mov $4a,#$80 +09aa: 2f 0f bra $09bb +09ac: 60 clrc +09ad: e4 48 mov a,$48 +09af: 84 45 adc a,$45 +09b1: c4 48 mov $48,a +09b3: 90 06 bcc $09bb +09b5: ab 46 inc $46 +09b7: d0 02 bne $09bb +09b9: ab 47 inc $47 +09bb: 78 00 4b cmp $4b,#$00 +09be: d0 09 bne $09c9 +09c0: e4 49 mov a,$49 +09c2: c4 f5 mov $f5,a +09c4: e4 4c mov a,$4c +09c6: c4 f6 mov $f6,a +09c8: 6f ret +09c9: e4 46 mov a,$46 +09cb: fa 47 26 mov ($26),($47) +09ce: 4b 26 lsr $26 +09d0: 7c ror a +09d1: c4 f5 mov $f5,a +09d3: e4 26 mov a,$26 +09d5: 04 4a or a,$4a +09d7: c4 f6 mov $f6,a +09d9: 6f ret + +09da: 9b 90 dec $90+x ; get current pattern vcmd +09dc: d0 46 bne $0a24 +09de: 3f 64 0a call $0a64 ; copy bytes to ram +09e1: d4 90 mov $90+x,a +09e3: 68 ff cmp a,#$ff ; check for vcmd +09e5: f0 49 beq $0a30 +09e7: 68 fe cmp a,#$fe +09e9: f0 3d beq $0a28 +09eb: 68 fd cmp a,#$fd +09ed: f0 51 beq $0a40 +09ef: 68 fc cmp a,#$fc +09f1: f0 6b beq $0a5e +09f3: 28 40 and a,#$40 +09f5: f0 28 beq $0a1f +09f7: f4 51 mov a,$51+x +09f9: d0 12 bne $0a0d +09fb: f4 90 mov a,$90+x +09fd: 28 3f and a,#$3f +09ff: d4 51 mov $51+x,a +0a01: f4 70 mov a,$70+x +0a03: d5 50 02 mov $0250+x,a +0a06: f4 71 mov a,$71+x +0a08: d5 51 02 mov $0251+x,a +0a0b: 2f d1 bra $09de +0a0d: 9b 51 dec $51+x +0a0f: d0 02 bne $0a13 +0a11: 2f cb bra $09de +0a13: f5 50 02 mov a,$0250+x +0a16: d4 70 mov $70+x,a +0a18: f5 51 02 mov a,$0251+x +0a1b: d4 71 mov $71+x,a +0a1d: 2f bf bra $09de + +0a1f: 3f 64 0a call $0a64 ; pattern vcmd 40-7f - repeat sequence +0a22: d4 91 mov $91+x,a +0a24: 3f 6d 0a call $0a6d +0a27: 6f ret + +0a28: 3f bf 07 call $07bf ; pattern vcmd fe - end of channel +0a2b: e8 00 mov a,#$00 +0a2d: d4 50 mov $50+x,a +0a2f: 6f ret + +0a30: 3f 64 0a call $0a64 ; pattern vcmd ff - go to loop +0a33: 60 clrc +0a34: 94 60 adc a,$60+x +0a36: d4 70 mov $70+x,a +0a38: f4 61 mov a,$61+x +0a3a: 88 00 adc a,#$00 +0a3c: d4 71 mov $71+x,a +0a3e: 2f 9e bra $09de + +0a40: 3f 64 0a call $0a64 ; pattern vcmd $fd +0a43: 1c asl a +0a44: fd mov y,a +0a45: 60 clrc +0a46: e4 0c mov a,$0c +0a48: 97 0a adc a,($0a)+y +0a4a: d4 60 mov $60+x,a +0a4c: d4 70 mov $70+x,a +0a4e: fc inc y +0a4f: e4 0d mov a,$0d +0a51: 97 0a adc a,($0a)+y +0a53: d4 61 mov $61+x,a +0a55: d4 71 mov $71+x,a +0a57: 3f de 09 call $09de +0a5a: 3f 6d 0a call $0a6d +0a5d: 6f ret + +0a5e: 3f 64 0a call $0a64 ; pattern vcmd $fc - play another song +0a61: c4 4d mov $4d,a +0a63: 6f ret + +0a64: e7 70 mov a,($70+x) ; copy pattern vcmd to ram +0a66: bb 70 inc $70+x +0a68: d0 02 bne $0a6c +0a6a: bb 71 inc $71+x +0a6c: 6f ret + +0a6d: f4 91 mov a,$91+x +0a6f: 8d 02 mov y,#$02 +0a71: cf mul ya +0a72: da 27 movw $27,ya +0a74: 60 clrc +0a75: 89 06 27 adc ($27),($06) +0a78: 89 07 28 adc ($28),($07) +0a7b: 8d 00 mov y,#$00 +0a7d: f7 27 mov a,($27)+y +0a7f: 2d push a +0a80: fc inc y +0a81: f7 27 mov a,($27)+y +0a83: fd mov y,a +0a84: ae pop a +0a85: da 27 movw $27,ya +0a87: 60 clrc +0a88: 89 08 27 adc ($27),($08) +0a8b: 89 09 28 adc ($28),($09) +0a8e: e4 27 mov a,$27 +0a90: d4 80 mov $80+x,a +0a92: e4 28 mov a,$28 +0a94: d4 81 mov $81+x,a +0a96: e8 ff mov a,#$ff +0a98: d5 61 03 mov $0361+x,a +0a9b: e8 00 mov a,#$00 +0a9d: d5 80 03 mov $0380+x,a +0aa0: d5 71 03 mov $0371+x,a +0aa3: 6f ret +0aa4: f5 80 03 mov a,$0380+x +0aa7: f0 08 beq $0ab1 +0aa9: 3f 5f 0c call $0c5f +0aac: e4 29 mov a,$29 +0aae: 35 80 03 and a,$0380+x +0ab1: c4 2b mov $2b,a +0ab3: f5 b0 03 mov a,$03b0+x +0ab6: c4 16 mov $16,a +0ab8: dd mov a,y +0ab9: e3 16 08 bbs7 $16,$0ac4 +0abc: 60 clrc +0abd: 95 60 02 adc a,$0260+x +0ac0: 60 clrc +0ac1: 95 61 02 adc a,$0261+x +0ac4: 60 clrc +0ac5: 95 70 02 adc a,$0270+x +0ac8: 60 clrc +0ac9: 84 2b adc a,$2b +0acb: d5 81 02 mov $0281+x,a +0ace: 60 clrc +0acf: f5 a1 02 mov a,$02a1+x +0ad2: 95 71 02 adc a,$0271+x +0ad5: d5 80 02 mov $0280+x,a +0ad8: f5 50 03 mov a,$0350+x +0adb: f0 11 beq $0aee +0add: 3f 5f 0c call $0c5f +0ae0: e4 29 mov a,$29 +0ae2: 68 19 cmp a,#$19 +0ae4: 90 05 bcc $0aeb +0ae6: 80 setc +0ae7: a8 18 sbc a,#$18 +0ae9: 2f f7 bra $0ae2 +0aeb: 3f 3f 0f call $0f3f +0aee: f5 e1 02 mov a,$02e1+x +0af1: 5c lsr a +0af2: e8 00 mov a,#$00 +0af4: 7c ror a +0af5: d5 d0 02 mov $02d0+x,a +0af8: e8 00 mov a,#$00 +0afa: d4 c0 mov $c0+x,a +0afc: d4 a1 mov $a1+x,a +0afe: d5 00 03 mov $0300+x,a +0b01: d4 e0 mov $e0+x,a +0b03: f5 90 03 mov a,$0390+x +0b06: f0 07 beq $0b0f +0b08: 30 11 bmi $0b1b +0b0a: e8 ff mov a,#$ff +0b0c: d5 90 03 mov $0390+x,a +0b0f: e4 4e mov a,$4e +0b11: 24 1a and a,$1a +0b13: d0 06 bne $0b1b +0b15: 09 1a 1e or ($1e),($1a) +0b18: 09 1a 2d or ($2d),($1a) +0b1b: f5 b0 02 mov a,$02b0+x +0b1e: d4 d0 mov $d0+x,a +0b20: f0 23 beq $0b45 +0b22: f5 b1 02 mov a,$02b1+x +0b25: d4 d1 mov $d1+x,a +0b27: f5 c1 02 mov a,$02c1+x +0b2a: 60 clrc +0b2b: 95 81 02 adc a,$0281+x +0b2e: 28 7f and a,#$7f +0b30: d5 a0 02 mov $02a0+x,a +0b33: 80 setc +0b34: b5 81 02 sbc a,$0281+x +0b37: fb d0 mov y,$d0+x +0b39: 6d push y +0b3a: ce pop x +0b3b: 3f 7e 0c call $0c7e +0b3e: d5 90 02 mov $0290+x,a +0b41: dd mov a,y +0b42: d5 91 02 mov $0291+x,a +0b45: 3f 6d 0c call $0c6d +0b48: 4d push x +0b49: e4 24 mov a,$24 +0b4b: 1c asl a +0b4c: 8d 00 mov y,#$00 +0b4e: cd 18 mov x,#$18 +0b50: 9e div ya,x +0b51: 5d mov x,a +0b52: f6 98 0b mov a,$0b98+y +0b55: c4 26 mov $26,a +0b57: f6 97 0b mov a,$0b97+y +0b5a: c4 25 mov $25,a +0b5c: f6 9a 0b mov a,$0b9a+y +0b5f: 2d push a +0b60: f6 99 0b mov a,$0b99+y +0b63: ee pop y +0b64: 9a 25 subw ya,$25 +0b66: eb 23 mov y,$23 +0b68: cf mul ya +0b69: dd mov a,y +0b6a: 8d 00 mov y,#$00 +0b6c: 7a 25 addw ya,$25 +0b6e: cb 26 mov $26,y +0b70: 1c asl a +0b71: 2b 26 rol $26 +0b73: 1c asl a +0b74: 2b 26 rol $26 +0b76: c4 25 mov $25,a +0b78: 2f 04 bra $0b7e +0b7a: 4b 26 lsr $26 +0b7c: 7c ror a +0b7d: 3d inc x +0b7e: c8 08 cmp x,#$08 +0b80: d0 f8 bne $0b7a +0b82: c4 25 mov $25,a +0b84: ce pop x +0b85: 7d mov a,x +0b86: 9f xcn a +0b87: 5c lsr a +0b88: 08 02 or a,#$02 +0b8a: fd mov y,a +0b8b: e4 25 mov a,$25 +0b8d: 3f f1 10 call $10f1 +0b90: fc inc y +0b91: e4 26 mov a,$26 +0b93: 3f f1 10 call $10f1 +0b96: 6f ret +0b97: 5f 08 de jmp $de08 +0b9a: 08 65 or a,#$65 +0b9c: 09 f4 09 or ($09),($f4) +0b9f: 8c 0a 2c dec $2c0a +0ba2: 0b d6 asl $d6 +0ba4: 0b 8b asl $8b +0ba6: 0c 4a 0d asl $0d4a +0ba9: 14 0e or a,$0e+x +0bab: ea 0e cd not1 $0d0e,6 +0bae: 0f brk +0baf: be das a +0bb0: 10 f4 bpl $0ba6 +0bb2: b0 f0 bcs $0ba4 +0bb4: 09 e8 20 or ($20),($e8) +0bb7: 8d 02 mov y,#$02 +0bb9: 9b b0 dec $b0+x +0bbb: 3f 9b 0c call $0c9b +0bbe: fb e1 mov y,$e1+x +0bc0: f0 23 beq $0be5 +0bc2: f5 10 03 mov a,$0310+x +0bc5: de e0 1b cbne $e0+x,$0be3 +0bc8: 09 1a 1e or ($1e),($1a) +0bcb: f5 00 03 mov a,$0300+x +0bce: 10 07 bpl $0bd7 +0bd0: fc inc y +0bd1: d0 04 bne $0bd7 +0bd3: e8 80 mov a,#$80 +0bd5: 2f 04 bra $0bdb +0bd7: 60 clrc +0bd8: 95 01 03 adc a,$0301+x +0bdb: d5 00 03 mov $0300+x,a +0bde: 3f dd 0d call $0ddd +0be1: 2f 07 bra $0bea +0be3: bb e0 inc $e0+x +0be5: e8 ff mov a,#$ff +0be7: 3f e8 0d call $0de8 +0bea: f4 b1 mov a,$b1+x +0bec: f0 09 beq $0bf7 +0bee: e8 20 mov a,#$20 +0bf0: 8d 03 mov y,#$03 +0bf2: 9b b1 dec $b1+x +0bf4: 3f 9b 0c call $0c9b +0bf7: e4 1a mov a,$1a +0bf9: 24 1e and a,$1e +0bfb: f0 47 beq $0c44 +0bfd: f5 21 03 mov a,$0321+x +0c00: fd mov y,a +0c01: f5 20 03 mov a,$0320+x +0c04: da 23 movw $23,ya +0c06: 7d mov a,x +0c07: 9f xcn a +0c08: 5c lsr a +0c09: bc inc a +0c0a: c4 16 mov $16,a +0c0c: eb 24 mov y,$24 +0c0e: f6 46 0c mov a,$0c46+y +0c11: 80 setc +0c12: b6 45 0c sbc a,$0c45+y +0c15: eb 23 mov y,$23 +0c17: cf mul ya +0c18: dd mov a,y +0c19: eb 24 mov y,$24 +0c1b: 60 clrc +0c1c: 96 45 0c adc a,$0c45+y +0c1f: fd mov y,a +0c20: f5 41 02 mov a,$0241+x +0c23: cf mul ya +0c24: f5 41 03 mov a,$0341+x +0c27: 1c asl a +0c28: 13 16 01 bbc0 $16,$0c2c +0c2b: 1c asl a +0c2c: dd mov a,y +0c2d: 90 03 bcc $0c32 +0c2f: 48 ff eor a,#$ff +0c31: bc inc a +0c32: eb 16 mov y,$16 +0c34: 3f f1 10 call $10f1 +0c37: 8d 18 mov y,#$18 +0c39: e8 00 mov a,#$00 +0c3b: 9a 23 subw ya,$23 +0c3d: da 23 movw $23,ya +0c3f: 8b 16 dec $16 +0c41: 73 16 c8 bbc3 $16,$0c0c +0c44: 6f ret + +0c45: db $00,$06,$0c,$10,$15,$1b,$21,$26,$2c,$30,$35,$3b,$41,$45,$4b,$50,$56,$5c,$61,$65,$6b,$70,$75,$7b,$7f,$7f + +0c5f: e4 29 mov a,$29 +0c61: 44 2a eor a,$2a +0c63: 5c lsr a +0c64: 5c lsr a +0c65: ed notc +0c66: 6b 29 ror $29 +0c68: 6b 2a ror $2a +0c6a: 8b 29 dec $29 +0c6c: 6f ret +0c6d: f5 81 02 mov a,$0281+x +0c70: 68 6c cmp a,#$6c +0c72: 90 02 bcc $0c76 +0c74: e8 6b mov a,#$6b +0c76: c4 24 mov $24,a +0c78: f5 80 02 mov a,$0280+x +0c7b: c4 23 mov $23,a +0c7d: 6f ret +0c7e: ed notc +0c7f: 6b 16 ror $16 +0c81: 10 03 bpl $0c86 +0c83: 48 ff eor a,#$ff +0c85: bc inc a +0c86: 8d 00 mov y,#$00 +0c88: 9e div ya,x +0c89: 2d push a +0c8a: e8 00 mov a,#$00 +0c8c: 9e div ya,x +0c8d: ee pop y +0c8e: f8 1b mov x,$1b +0c90: f3 16 07 bbc7 $16,$0c9a +0c93: da 25 movw $25,ya +0c95: e8 00 mov a,#$00 +0c97: fd mov y,a +0c98: 9a 25 subw ya,$25 +0c9a: 6f ret +0c9b: 09 1a 1e or ($1e),($1a) +0c9e: da 25 movw $25,ya +0ca0: da 27 movw $27,ya +0ca2: 4d push x +0ca3: ee pop y +0ca4: 60 clrc +0ca5: d0 0a bne $0cb1 +0ca7: 98 1f 27 adc $27,#$1f +0caa: e8 00 mov a,#$00 +0cac: d7 25 mov ($25)+y,a +0cae: fc inc y +0caf: 2f 09 bra $0cba +0cb1: 98 10 27 adc $27,#$10 +0cb4: 3f b8 0c call $0cb8 +0cb7: fc inc y +0cb8: f7 25 mov a,($25)+y +0cba: 97 27 adc a,($27)+y +0cbc: d7 25 mov ($25)+y,a +0cbe: 6f ret +0cbf: f5 51 03 mov a,$0351+x +0cc2: d0 18 bne $0cdc +0cc4: f5 90 03 mov a,$0390+x +0cc7: d0 13 bne $0cdc +0cc9: f5 60 03 mov a,$0360+x +0ccc: 75 61 03 cmp a,$0361+x +0ccf: f0 06 beq $0cd7 +0cd1: e8 01 mov a,#$01 +0cd3: 74 a0 cmp a,$a0+x +0cd5: d0 05 bne $0cdc +0cd7: e4 1a mov a,$1a +0cd9: 0e 2e 00 tset1 $002e +0cdc: f2 17 clr7 $17 +0cde: f4 d0 mov a,$d0+x +0ce0: f0 21 beq $0d03 +0ce2: f4 d1 mov a,$d1+x +0ce4: f0 04 beq $0cea +0ce6: 9b d1 dec $d1+x +0ce8: 2f 19 bra $0d03 +0cea: e2 17 set7 $17 +0cec: e8 80 mov a,#$80 +0cee: 8d 02 mov y,#$02 +0cf0: 9b d0 dec $d0+x +0cf2: 3f 9e 0c call $0c9e +0cf5: f4 d0 mov a,$d0+x +0cf7: d0 0a bne $0d03 +0cf9: 60 clrc +0cfa: f5 a1 02 mov a,$02a1+x +0cfd: 95 71 02 adc a,$0271+x +0d00: d5 80 02 mov $0280+x,a +0d03: 3f 6d 0c call $0c6d +0d06: f4 c1 mov a,$c1+x +0d08: f0 49 beq $0d53 +0d0a: f5 e0 02 mov a,$02e0+x +0d0d: de c0 41 cbne $c0+x,$0d51 +0d10: f4 a1 mov a,$a1+x +0d12: 75 e1 02 cmp a,$02e1+x +0d15: d0 05 bne $0d1c +0d17: f5 f1 02 mov a,$02f1+x +0d1a: 2f 0b bra $0d27 +0d1c: bb a1 inc $a1+x +0d1e: fd mov y,a +0d1f: f0 02 beq $0d23 +0d21: f4 c1 mov a,$c1+x +0d23: 60 clrc +0d24: 95 f0 02 adc a,$02f0+x +0d27: d4 c1 mov $c1+x,a +0d29: f5 d0 02 mov a,$02d0+x +0d2c: 60 clrc +0d2d: 95 d1 02 adc a,$02d1+x +0d30: d5 d0 02 mov $02d0+x,a +0d33: c4 16 mov $16,a +0d35: 1c asl a +0d36: 1c asl a +0d37: 90 02 bcc $0d3b +0d39: 48 ff eor a,#$ff +0d3b: fd mov y,a +0d3c: f4 c1 mov a,$c1+x +0d3e: 68 f1 cmp a,#$f1 +0d40: 90 05 bcc $0d47 +0d42: 28 0f and a,#$0f +0d44: cf mul ya +0d45: 2f 04 bra $0d4b +0d47: cf mul ya +0d48: dd mov a,y +0d49: 8d 00 mov y,#$00 +0d4b: 3f c8 0d call $0dc8 +0d4e: 5f 48 0b jmp $0b48 +0d51: bb c0 inc $c0+x +0d53: e3 17 f8 bbs7 $17,$0d4e +0d56: 6f ret +0d57: f2 17 clr7 $17 +0d59: f4 e1 mov a,$e1+x +0d5b: f0 09 beq $0d66 +0d5d: f5 10 03 mov a,$0310+x +0d60: de e0 03 cbne $e0+x,$0d66 +0d63: 3f d0 0d call $0dd0 +0d66: f5 21 03 mov a,$0321+x +0d69: fd mov y,a +0d6a: f5 20 03 mov a,$0320+x +0d6d: da 23 movw $23,ya +0d6f: f4 b1 mov a,$b1+x +0d71: f0 0a beq $0d7d +0d73: f5 31 03 mov a,$0331+x +0d76: fd mov y,a +0d77: f5 30 03 mov a,$0330+x +0d7a: 3f b2 0d call $0db2 +0d7d: f3 17 03 bbc7 $17,$0d83 +0d80: 3f 06 0c call $0c06 +0d83: f2 17 clr7 $17 +0d85: 3f 6d 0c call $0c6d +0d88: f4 d0 mov a,$d0+x +0d8a: f0 0e beq $0d9a +0d8c: f4 d1 mov a,$d1+x +0d8e: d0 0a bne $0d9a +0d90: f5 91 02 mov a,$0291+x +0d93: fd mov y,a +0d94: f5 90 02 mov a,$0290+x +0d97: 3f b2 0d call $0db2 +0d9a: f4 c1 mov a,$c1+x +0d9c: f0 b5 beq $0d53 +0d9e: f5 e0 02 mov a,$02e0+x +0da1: de c0 af cbne $c0+x,$0d53 +0da4: eb 22 mov y,$22 +0da6: f5 d1 02 mov a,$02d1+x +0da9: cf mul ya +0daa: dd mov a,y +0dab: 60 clrc +0dac: 95 d0 02 adc a,$02d0+x +0daf: 5f 33 0d jmp $0d33 +0db2: e2 17 set7 $17 +0db4: cb 16 mov $16,y +0db6: 3f 90 0c call $0c90 +0db9: 6d push y +0dba: eb 22 mov y,$22 +0dbc: cf mul ya +0dbd: cb 25 mov $25,y +0dbf: 8f 00 26 mov $26,#$00 +0dc2: eb 22 mov y,$22 +0dc4: ae pop a +0dc5: cf mul ya +0dc6: 7a 25 addw ya,$25 +0dc8: 3f 90 0c call $0c90 +0dcb: 7a 23 addw ya,$23 +0dcd: da 23 movw $23,ya +0dcf: 6f ret +0dd0: e2 17 set7 $17 +0dd2: eb 22 mov y,$22 +0dd4: f5 01 03 mov a,$0301+x +0dd7: cf mul ya +0dd8: dd mov a,y +0dd9: 60 clrc +0dda: 95 00 03 adc a,$0300+x +0ddd: 1c asl a +0dde: 90 02 bcc $0de2 +0de0: 48 ff eor a,#$ff +0de2: fb e1 mov y,$e1+x +0de4: cf mul ya +0de5: dd mov a,y +0de6: 48 ff eor a,#$ff +0de8: eb 35 mov y,$35 +0dea: cf mul ya +0deb: f5 10 02 mov a,$0210+x +0dee: cf mul ya +0def: f5 21 02 mov a,$0221+x +0df2: cf mul ya +0df3: f5 91 03 mov a,$0391+x +0df6: cf mul ya +0df7: f5 a0 03 mov a,$03a0+x +0dfa: cf mul ya +0dfb: dd mov a,y +0dfc: cf mul ya +0dfd: dd mov a,y +0dfe: d5 41 02 mov $0241+x,a +0e01: 6f ret + +; vcmd table (80-9d) +0e02: dw $0e5d ; 80 - set instrument/sample +0e04: dw $0ef1 ; 81 - rest +0e06: dw $0efe ; 82 - set tempo +0e08: dw $0f02 ; 83 - set tempo (multiple channels) +0e0a: dw $0f25 ; 84 - set channel gain +0e0c: dw $0f34 ; 85 - set release +0e0e: dw $0f39 ; 86 - set attack +0e10: dw $0f53 ; 87 - set panpot? +0e12: dw $0f6f ; 88 - set pan +0e14: dw $0f73 ; 89 - set detune +0e16: dw $0f77 ; 8a - set channel transpose +0e18: dw $0f7b ; 8b - set channel transpose (multiple channels) +0e1a: dw $0f9e ; 8c - set channel volume (absolute) +0e1c: dw $0fa9 ; 8d - (2 bytes) +0e1e: dw $0fb8 ; 8e - clear 8d value +0e20: dw $0fbd ; 8f - (2 bytes) +0e22: dw $0fd4 ; 90 +0e24: dw $0fe4 ; 91 - clear 90 value +0e28: dw $0ff1 ; 92 - pitch bend (multiple channels) +0e2a: dw $1002 ; 93 - pitch bend (removed - useless) +0e2c: dw $1003 ; 94 - disable pitch bend +0e2e: dw $1009 ; 95 - set echo volume +0e30: dw $103b ; 96 - set echo delay +0e32: dw $104e ; 97 - disable echo +0e34: dw $1058 ; 98 - (2 bytes) +0e36: dw $1079 ; 99 - (2 bytes) +0e38: dw $1087 ; 9a - (multiple channels) +0e3a: dw $10c6 ; 9b - set vibrato +0e3c: dw $10ca ; 9c - set delay +0e3c: dw $10ce ; 9d - set channel volume (multiple channels) + +0e3e: 1c asl a ; dispatch vcmd (80-9d) +0e3f: fd mov y,a +0e40: fc inc y +0e41: f6 02 0e mov a,$0e02+y +0e44: 2d push a +0e45: dc dec y +0e46: f6 02 0e mov a,$0e02+y +0e49: 2d push a + +0e4a: e7 80 mov a,($80+x) ; update/increment sequence pointer +0e4c: bb 80 inc $80+x +0e4e: d0 02 bne $0e52 +0e50: bb 81 inc $81+x +0e52: fd mov y,a +0e53: 6f ret + +0e54: e7 80 mov a,($80+x) +0e56: bb 80 inc $80+x +0e58: d0 02 bne $0e5c +0e5a: bb 81 inc $81+x +0e5c: 6f ret + +0e5d: 75 11 02 cmp a,$0211+x ; vcmd 80 - set instrument/sample +0e60: d0 01 bne $0e63 +0e62: 6f ret +0e63: d5 11 02 mov $0211+x,a +0e66: 8d 10 mov y,#$10 +0e68: cf mul ya +0e69: da 2b movw $2b,ya +0e6b: 60 clrc +0e6c: 89 04 2b adc ($2b),($04) +0e6f: 89 05 2c adc ($2c),($05) +0e72: e4 1a mov a,$1a +0e74: 4e 30 00 tclr1 $0030 +0e77: 8d 00 mov y,#$00 +0e79: f7 2b mov a,($2b)+y +0e7b: 08 80 or a,#$80 +0e7d: c4 12 mov $12,a +0e7f: fc inc y +0e80: f7 2b mov a,($2b)+y +0e82: c4 13 mov $13,a +0e84: fc inc y +0e85: f7 2b mov a,($2b)+y +0e87: d5 10 02 mov $0210+x,a +0e8a: fc inc y +0e8b: f7 2b mov a,($2b)+y +0e8d: 68 80 cmp a,#$80 +0e8f: 90 0d bcc $0e9e +0e91: 28 1f and a,#$1f +0e93: 38 20 2f and $2f,#$20 +0e96: 0e 2f 00 tset1 $002f +0e99: 09 1a 30 or ($30),($1a) +0e9c: e8 00 mov a,#$00 +0e9e: c4 14 mov $14,a +0ea0: fc inc y +0ea1: f7 2b mov a,($2b)+y +0ea3: d5 70 02 mov $0270+x,a +0ea6: fc inc y +0ea7: f7 2b mov a,($2b)+y +0ea9: d5 71 02 mov $0271+x,a +0eac: 8d 0c mov y,#$0c +0eae: f7 2b mov a,($2b)+y +0eb0: d5 b0 03 mov $03b0+x,a +0eb3: fc inc y +0eb4: f7 2b mov a,($2b)+y +0eb6: d5 d1 02 mov $02d1+x,a +0eb9: fc inc y +0eba: f7 2b mov a,($2b)+y +0ebc: d4 c1 mov $c1+x,a +0ebe: d5 f1 02 mov $02f1+x,a +0ec1: fc inc y +0ec2: f7 2b mov a,($2b)+y +0ec4: d5 e0 02 mov $02e0+x,a +0ec7: e8 00 mov a,#$00 +0ec9: d5 e1 02 mov $02e1+x,a +0ecc: d5 90 03 mov $0390+x,a +0ecf: 7d mov a,x +0ed0: 9f xcn a +0ed1: 5c lsr a +0ed2: 08 04 or a,#$04 +0ed4: fd mov y,a +0ed5: e4 14 mov a,$14 +0ed7: cb f2 mov $f2,y +0ed9: c4 f3 mov $f3,a +0edb: fc inc y +0edc: e4 12 mov a,$12 +0ede: cb f2 mov $f2,y +0ee0: c4 f3 mov $f3,a +0ee2: fc inc y +0ee3: e4 13 mov a,$13 +0ee5: cb f2 mov $f2,y +0ee7: c4 f3 mov $f3,a +0ee9: fc inc y +0eea: e8 00 mov a,#$00 +0eec: cb f2 mov $f2,y +0eee: c4 f3 mov $f3,a +0ef0: 6f ret + +0ef1: 1c asl a ; vcmd 81 - rest +0ef2: d4 a0 mov $a0+x,a +0ef4: e4 1a mov a,$1a +0ef6: 0e 2e 00 tset1 $002e +0ef9: ae pop a +0efa: ae pop a +0efb: 5f 41 09 jmp $0941 + +0efe: d5 00 02 mov $0200+x,a ; vcmd 82 - set tempo +0f01: 6f ret + +0f02: c4 1f mov $1f,a ; vcmd 83 - set tempo (multiple channels) +0f04: 3f 4a 0e call $0e4a +0f07: c4 45 mov $45,a +0f09: 4d push x +0f0a: cd 00 mov x,#$00 +0f0c: 8f 01 20 mov $20,#$01 +0f0f: e4 1f mov a,$1f +0f11: 24 20 and a,$20 +0f13: f0 05 beq $0f1a +0f15: e4 45 mov a,$45 +0f17: d5 00 02 mov $0200+x,a +0f1a: 3d inc x +0f1b: 3d inc x +0f1c: 0b 20 asl $20 +0f1e: d0 ef bne $0f0f +0f20: ce pop x +0f21: 3f 4a 0e call $0e4a +0f24: 6f ret + +0f25: 28 01 and a,#$01 ; vcmd 84 - set channel gain +0f27: f0 07 beq $0f30 +0f29: f5 90 03 mov a,$0390+x +0f2c: 30 05 bmi $0f33 +0f2e: e8 01 mov a,#$01 +0f30: d5 90 03 mov $0390+x,a +0f33: 6f ret + +0f34: 1c asl a ; vcmd 85 - set release +0f35: d5 61 03 mov $0361+x,a +0f38: 6f ret + +0f39: e8 00 mov a,#$00 ; vcmd 86 - set attack +0f3b: d5 50 03 mov $0350+x,a +0f3e: dd mov a,y +0f3f: d5 41 03 mov $0341+x,a +0f42: 28 1f and a,#$1f +0f44: 68 19 cmp a,#$19 +0f46: 90 02 bcc 33 $0f4a +0f48: e8 18 mov a,#$18 +0f4a: d5 21 03 mov $0321+x,a +0f4d: e8 00 mov a,#$00 +0f4f: d5 20 03 mov $0320+x,a +0f52: 6f ret + +0f53: d4 b1 mov $b1+x,a ; vcmd 87 - set panpot? +0f55: 2d push a +0f56: 3f 4a 0e call $0e4a +0f59: d5 40 03 mov $0340+x,a +0f5c: 80 setc333 +0f5d: b5 21 03 sbc a,$0321+x +0f60: ce pop x +0f61: 3f 7e 0c call $0c7e +0f64: d5 30 03 mov $0330+x,a +0f67: dd mov a,y +0f68: d5 31 03 mov $0331+x,a +0f6b: 3f 4a 0e call $0e4a +0f6e: 6f ret + +0f6f: d5 50 03 mov $0350+x,a ; vcmd 88 - set pan +0f72: 6f ret + +0f73: d5 a1 02 mov $02a1+x,a ; vcmd 89 - set detune +0f76: 6f ret + +0f77: d5 61 02 mov $0261+x,a ; vcmd 8a - set channel transpose +0f7a: 6f ret + +0f7b: c4 1f mov $1f,a ; vcmd 8b - set channel transpose (multiple channels) +0f7d: 3f 4a 0e call $0e4a +0f80: c4 03 mov $03,a +0f82: 4d push x +0f83: cd 00 mov x,#$00 +0f85: 8f 01 20 mov $20,#$01 +0f88: e4 1f mov a,$1f +0f8a: 24 20 and a,$20 +0f8c: f0 05 beq $0f93 +0f8e: e4 03 mov a,$03 +0f90: d5 60 02 mov $0260+x,a +0f93: 3d inc x +0f94: 3d inc x +0f95: 0b 20 asl $20 +0f97: d0 ef bne $0f88 +0f99: ce pop x +0f9a: 3f 4a 0e call $0e4a +0f9d: 6f ret + +0f9e: d5 21 02 mov $0221+x,a ; vcmd 8c - set channel volume (absolute) +0fa1: e8 00 mov a,#$00 +0fa3: d5 20 02 mov $0220+x,a +0fa6: d4 b0 mov $b0+x,a +0fa8: 6f ret + +0fa9: d5 01 03 mov $0301+x,a ; vcmd 8d - (2 bytes) +0fac: 3f 4a 0e call $0e4a +0faf: d4 e1 mov $e1+x,a +0fb1: 3f 4a 0e call $0e4a +0fb4: d5 10 03 mov $0310+x,a +0fb7: 6f ret + +0fb8: e8 00 mov a,#$00 ; vcmd 8e - clear 8d value +0fba: d4 e1 mov $e1+x,a +0fbc: 6f ret + +0fbd: d5 d1 02 mov $02d1+x,a ; vcmd 8f - (2 bytes) +0fc0: 3f 4a 0e call $0e4a +0fc3: d4 c1 mov $c1+x,a +0fc5: d5 f1 02 mov $02f1+x,a +0fc8: 3f 4a 0e call $0e4a +0fcb: d5 e0 02 mov $02e0+x,a +0fce: e8 00 mov a,#$00 +0fd0: d5 e1 02 mov $02e1+x,a +0fd3: 6f ret + +0fd4: d5 e1 02 mov $02e1+x,a ; vcmd 90 +0fd7: 2d push a +0fd8: 8d 00 mov y,#$00 +0fda: f4 c1 mov a,$c1+x +0fdc: ce pop x +0fdd: 9e div ya,x +0fde: f8 1b mov x,$1b +0fe0: d5 f0 02 mov $02f0+x,a +0fe3: 6f ret + +0fe4: e8 00 mov a,#$00 ; vcmd 91 - clear 90 value +0fe6: d4 c1 mov $c1+x,a +0fe8: d5 f1 02 mov $02f1+x,a +0feb: e8 00 mov a,#$00 +0fed: d5 e1 02 mov $02e1+x,a +0ff0: 6f ret + +0ff1: dd mov a,y ; vcmd 92 - pitch bend (multiple channels) +0ff2: d5 b0 02 mov $02b0+x,a +0ff5: 3f 4a 0e call $0e4a +0ff8: d5 c1 02 mov $02c1+x,a +0ffb: 3f 4a 0e call $0e4a +0ffe: d5 b1 02 mov $02b1+x,a +1001: 6f ret + +1002: 6f ret ; vcmd 93 - nop + +1003: e8 00 mov a,#$00 ; vcmd 94 - disable pitch bend +1005: d5 b0 02 mov $02b0+x,a +1008: 6f ret + +1009: 3f 50 08 call $0850 ; vcmd 95 - set echo volume +100c: 3f 4a 0e call $0e4a +100f: 8d 08 mov y,#$08 +1011: cf mul ya +1012: 5d mov x,a +1013: 8d 0f mov y,#$0f +1015: f5 2b 10 mov a,$102b+x +1018: 3f f1 10 call $10f1 +101b: 3d inc x +101c: dd mov a,y +101d: 60 clrc +101e: 88 10 adc a,#$10 +1020: fd mov y,a +1021: 10 f2 bpl $1015 +1023: f8 1b mov x,$1b +1025: 3f 4a 0e call $0e4a +1028: c4 33 mov $33,a +102a: 6f ret + +102b: db $7f,$00,$00,$00,$00,$00,$00,$00,$ff,$08,$17,$24,$24,$17,$08,$ff + +103b: c4 31 mov $31,a ; vcmd 96 - set echo delay +103d: 3f 4a 0e call $0e4a +1040: e8 00 mov a,#$00 +1042: da 41 movw $41,ya +1044: 3f 4a 0e call $0e4a +1047: e8 00 mov a,#$00 +1049: da 43 movw $43,ya +104b: b2 2f clr5 $2f +104d: 6f ret + +104e: e8 00 mov a,#$00 ; vcmd 97 - disable echo +1050: fd mov y,a +1051: da 41 movw $41,ya +1053: da 43 movw $43,ya +1055: a2 2f set5 $2f +1057: 6f ret + +1058: c4 3e mov $3e,a ; vcmd 98 - (2 bytes) +105a: 3f 4a 0e call $0e4a +105d: c4 3f mov $3f,a +105f: 80 setc +1060: a4 42 sbc a,$42 +1062: f8 3e mov x,$3e +1064: 3f 7e 0c call $0c7e +1067: da 3a movw $3a,ya +1069: 3f 4a 0e call $0e4a +106c: c4 40 mov $40,a +106e: 80 setc +106f: a4 44 sbc a,$44 +1071: f8 3e mov x,$3e +1073: 3f 7e 0c call $0c7e +1076: da 3c movw $3c,ya +1078: 6f ret + +1079: c4 21 mov $21,a ; vcmd 99 - (2 bytes) +107b: 3f 4a 0e call $0e4a +107e: c4 15 mov $15,a +1080: 3f 4a 0e call $0e4a +1083: 3f aa 10 call $10aa +1086: 6f ret + +1087: c4 1f mov $1f,a ; vcmd 9a - (multiple channels) +1089: 3f 4a 0e call $0e4a +108c: c4 21 mov $21,a +108e: 3f 4a 0e call $0e4a +1091: c4 15 mov $15,a +1093: 4d push x +1094: cd 00 mov x,#$00 +1096: 8f 01 20 mov $20,#$01 +1099: e4 1f mov a,$1f +109b: 24 20 and a,$20 +109d: f0 03 beq $10a2 +109f: 3f aa 10 call $10aa +10a2: 3d inc x +10a3: 3d inc x +10a4: 0b 20 asl $20 +10a6: d0 f1 bne $1099 +10a8: ce pop x +10a9: 6f ret + +10aa: 4d push x +10ab: e4 21 mov a,$21 +10ad: d4 b0 mov $b0+x,a +10af: 2d push a +10b0: e4 15 mov a,$15 +10b2: d5 40 02 mov $0240+x,a +10b5: 80 setc +10b6: b5 21 02 sbc a,$0221+x +10b9: ce pop x +10ba: 3f 7e 0c call $0c7e +10bd: ce pop x +10be: d5 30 02 mov $0230+x,a +10c1: dd mov a,y +10c2: d5 31 02 mov $0231+x,a +10c5: 6f ret + +10c6: d5 80 03 mov $0380+x,a ; vcmd 9b - set vibrato +10c9: 6f ret + +10ca: d5 71 03 mov $0371+x,a ; vcmd 9c - set delay +10cd: 6f ret + +10ce: c4 1f mov $1f,a ; vcmd 9d - set channel volume (multiple channels) +10d0: 3f 4a 0e call $0e4a ; update pointer +10d3: c4 21 mov $21,a +10d5: 4d push x +10d6: cd 00 mov x,#$00 +10d8: 8f 01 20 mov $20,#$01 +10db: e4 1f mov a,$1f +10dd: 24 20 and a,$20 +10df: f0 05 beq $10e6 +10e1: e4 21 mov a,$21 +10e3: d5 91 03 mov $0391+x,a +10e6: 3d inc x +10e7: 3d inc x +10e8: 0b 20 asl $20 +10ea: d0 ef bne $10db +10ec: ce pop x +10ed: 3f 4a 0e call $0e4a +10f0: 6f ret + +10f1: cc f2 00 mov $00f2,y ; set dsp register address +10f4: c5 f3 00 mov $00f3,a ; set dsp register data +10f7: 6f ret + +10f8: 8f 00 10 mov $10,#$00 +10fb: e5 0c 13 mov a,$130c +10fe: ec 0d 13 mov y,$130d +1101: da 25 movw $25,ya +1103: 3f 11 11 call $1111 +1106: 8f 40 10 mov $10,#$40 +1109: e5 0e 13 mov a,$130e +110c: ec 0f 13 mov y,$130f +110f: da 25 movw $25,ya +1111: 8f 3f 11 mov $11,#$3f +1114: e4 11 mov a,$11 +1116: 1c asl a +1117: fd mov y,a +1118: f7 25 mov a,($25)+y +111a: c4 27 mov $27,a +111c: fc inc y +111d: f7 25 mov a,($25)+y +111f: c4 28 mov $28,a +1121: e4 11 mov a,$11 +1123: 60 clrc +1124: 84 10 adc a,$10 +1126: 8d 04 mov y,#$04 +1128: cf mul ya +1129: da 2b movw $2b,ya +112b: 60 clrc +112c: 98 04 2c adc $2c,#$04 +112f: e4 27 mov a,$27 +1131: 60 clrc +1132: 88 02 adc a,#$02 +1134: 8d 00 mov y,#$00 +1136: d7 2b mov ($2b)+y,a +1138: fc inc y +1139: e4 28 mov a,$28 +113b: 88 00 adc a,#$00 +113d: d7 2b mov ($2b)+y,a +113f: dc dec y +1140: f7 27 mov a,($27)+y +1142: 60 clrc +1143: 97 2b adc a,($2b)+y +1145: 8d 02 mov y,#$02 +1147: d7 2b mov ($2b)+y,a +1149: dc dec y +114a: f7 27 mov a,($27)+y +114c: 97 2b adc a,($2b)+y +114e: 8d 03 mov y,#$03 +1150: d7 2b mov ($2b)+y,a +1152: 8b 11 dec $11 +1154: 10 be bpl $1114 +1156: 6f ret +1157: 8f 00 25 mov $25,#$00 +115a: 8f 13 26 mov $26,#$13 +115d: 60 clrc +115e: e4 25 mov a,$25 +1160: 88 10 adc a,#$10 +1162: c4 27 mov $27,a +1164: e4 26 mov a,$26 +1166: 88 00 adc a,#$00 +1168: c4 28 mov $28,a +116a: ba 27 movw ya,$27 +116c: da 04 movw $04,ya +116e: 8d 00 mov y,#$00 +1170: 3f 92 11 call $1192 +1173: da 06 movw $06,ya +1175: 8d 02 mov y,#$02 +1177: 3f 92 11 call $1192 +117a: da 08 movw $08,ya +117c: 8d 04 mov y,#$04 +117e: 3f 92 11 call $1192 +1181: da 0a movw $0a,ya +1183: 8d 06 mov y,#$06 +1185: 3f 92 11 call $1192 +1188: da 0c movw $0c,ya +118a: 8d 08 mov y,#$08 +118c: 3f 92 11 call $1192 +118f: da 0e movw $0e,ya +1191: 6f ret + +1192: f7 25 mov a,($25)+y +1194: 2d push a +1195: fc inc y +1196: f7 25 mov a,($25)+y +1198: fd mov y,a +1199: ae pop a +119a: 7a 27 addw ya,$27 +119c: da 27 movw $27,ya +119e: 6f ret +119f: e4 f7 mov a,$f7 +11a1: 64 01 cmp a,$01 +11a3: d0 01 bne $11a6 +11a5: 6f ret + + +11a6: c4 01 mov $01,a +11a8: e4 f4 mov a,$f4 +11aa: 68 60 cmp a,#$60 +11ac: 90 21 bcc $11cf +11ae: 68 80 cmp a,#$80 +11b0: f0 24 beq $11d6 +11b2: 68 81 cmp a,#$81 +11b4: f0 25 beq $11db +11b6: 68 82 cmp a,#$82 +11b8: f0 33 beq $11ed +11ba: 68 83 cmp a,#$83 +11bc: f0 3e beq $11fc +11be: 68 84 cmp a,#$84 +11c0: f0 3f beq $1201 +11c2: 68 85 cmp a,#$85 +11c4: f0 5f beq $1225 +11c6: 68 86 cmp a,#$86 +11c8: f0 56 beq $1220 + +11ca: e4 01 mov a,$01 +11cc: c4 f4 mov $f4,a +11ce: 6f ret + +11cf: c4 00 mov $00,a +11d1: fa f5 02 mov ($02),($f5) +11d4: 2f f4 bra $11ca + +11d6: 3f 0f 08 call $080f +11d9: 2f ef bra $11ca + +11db: 8f 60 36 mov $36,#$60 +11de: 8f 00 37 mov $37,#$00 +11e1: 80 setc +11e2: a4 35 sbc a,$35 +11e4: f8 36 mov x,$36 +11e6: 3f 7e 0c call $0c7e +11e9: da 38 movw $38,ya +11eb: 2f dd bra $11ca + +11ed: e8 01 mov a,#$01 +11ef: 3f 50 08 call $0850 +11f2: e8 ff mov a,#$ff +11f4: 8d 6c mov y,#$6c +11f6: 3f f1 10 call $10f1 +11f9: 5f c0 ff jmp $ffc0 + +11fc: fa f5 4b mov ($4b),($f5) +11ff: 2f c9 bra $11ca + +1201: fa f5 25 mov ($25),($f5) +1204: fa f6 26 mov ($26),($f6) +1207: e4 01 mov a,$01 +1209: c4 f4 mov $f4,a +120b: ab 01 inc $01 +120d: e4 01 mov a,$01 +120f: 8d 10 mov y,#$10 +1211: 64 f7 cmp a,$f7 +1213: f0 03 beq $1218 +1215: dc dec y +1216: d0 f9 bne $1211 +1218: e4 f5 mov a,$f5 +121a: 8d 00 mov y,#$00 +121c: d7 25 mov ($25)+y,a +121e: 2f aa bra $11ca + +1220: fa f5 4e mov ($4e),($f5) +1223: 2f a5 bra $11ca + +1225: cd 00 mov x,#$00 +1227: f5 60 03 mov a,$0360+x +122a: 3f 75 12 call $1275 +122d: f4 91 mov a,$91+x +122f: 3f 75 12 call $1275 +1232: f5 11 02 mov a,$0211+x +1235: 3f 75 12 call $1275 +1238: f5 81 02 mov a,$0281+x +123b: 3f 75 12 call $1275 +123e: f5 61 03 mov a,$0361+x +1241: 3f 75 12 call $1275 +1244: f5 21 02 mov a,$0221+x +1247: 3f 75 12 call $1275 +124a: f5 41 03 mov a,$0341+x +124d: 3f 75 12 call $1275 +1250: 3d inc x +1251: 3d inc x +1252: c8 10 cmp x,#$10 +1254: 90 d1 bcc $1227 +1256: e4 45 mov a,$45 +1258: 3f 75 12 call $1275 +125b: e4 46 mov a,$46 +125d: fa 47 26 mov ($26),($47) +1260: 4b 26 lsr $26 +1262: 7c ror a +1263: 3f 75 12 call $1275 +1266: e4 26 mov a,$26 +1268: 04 4a or a,$4a +126a: 3f 75 12 call $1275 +126d: e4 03 mov a,$03 +126f: 3f 75 12 call $1275 +1272: 5f ca 11 jmp $11ca +1275: c4 f5 mov $f5,a +1277: e4 01 mov a,$01 +1279: c4 f4 mov $f4,a +127b: ab 01 inc $01 +127d: e4 01 mov a,$01 +127f: 8d 10 mov y,#$10 +1281: 64 f7 cmp a,$f7 +1283: f0 03 beq $1288 +1285: dc dec y +1286: d0 f9 bne $1281 +1288: 6f ret + diff --git a/snes/Martin Walker/Super James Pond (NTSC) ($0500).bin b/snes/Martin Walker/Super James Pond (NTSC) ($0500).bin new file mode 100644 index 00000000..f39e938b Binary files /dev/null and b/snes/Martin Walker/Super James Pond (NTSC) ($0500).bin differ diff --git a/snes/Martin Walker/Super James Pond (NTSC).s b/snes/Martin Walker/Super James Pond (NTSC).s new file mode 100644 index 00000000..aa7cc2a0 --- /dev/null +++ b/snes/Martin Walker/Super James Pond (NTSC).s @@ -0,0 +1,1232 @@ +0500: 20 clrp ; clear ram variables +0501: cd ff mov x,#$ff +0503: bd mov sp,x +0504: 3d inc x +0505: 7d mov a,x +0506: af mov (x)+,a +0507: c8 f0 cmp x,#$f0 +0509: d0 fb bne $0506 +050b: 5d mov x,a +050c: d5 00 01 mov $0100+x,a +050f: d5 00 02 mov $0200+x,a +0512: d5 00 03 mov $0300+x,a +0515: 3d inc x +0516: d0 f4 bne $050c +0518: e8 60 mov a,#$60 +051a: 8d 0c mov y,#$0c +051c: 3f ad 09 call $09ad +051f: 8d 1c mov y,#$1c +0521: 3f ad 09 call $09ad +0524: e8 04 mov a,#$04 +0526: 8d 5d mov y,#$5d +0528: 3f ad 09 call $09ad +052b: 3f 37 06 call $0637 +052e: 3f 84 06 call $0684 +0531: 3f ce 06 call $06ce +0534: e8 90 mov a,#$90 +0536: c5 f1 00 mov $00f1,a +0539: e8 10 mov a,#$10 +053b: c5 fa 00 mov $00fa,a +053e: e8 81 mov a,#$81 +0540: c5 f1 00 mov $00f1,a +0543: e8 00 mov a,#$00 +0545: c4 f4 mov $f4,a +0547: e8 ff mov a,#$ff +0549: c4 f4 mov $f4,a +054b: 8d 0a mov y,#$0a +054d: ad 05 cmp y,#$05 +054f: f0 07 beq $0558 +0551: b0 08 bcs $055b +0553: 69 4f 4e cmp ($4e),($4f) +0556: d0 11 bne $0569 +0558: e3 4e 0e bbs7 $4e,$0569 +055b: f6 b5 05 mov a,$05b5+y +055e: c5 f2 00 mov $00f2,a +0561: f6 bf 05 mov a,$05bf+y +0564: 5d mov x,a +0565: e6 mov a,(x) +0566: c5 f3 00 mov $00f3,a +0569: fe e2 dbnz y,$054d +056b: cb 46 mov $46,y +056d: cb 47 mov $47,y +056f: 3f ca 05 call $05ca +0572: ec fd 00 mov y,$00fd +0575: f0 f8 beq $056f +0577: 6d push y +0578: e8 20 mov a,#$20 +057a: cf mul ya +057b: 60 clrc +057c: 84 22 adc a,$22 +057e: c4 22 mov $22,a +0580: 90 07 bcc $0589 +0582: 69 4f 4e cmp ($4e),($4f) +0585: f0 02 beq $0589 +0587: ab 4e inc $4e +0589: ee pop y +058a: e8 40 mov a,#$40 +058c: cf mul ya +058d: 60 clrc +058e: 84 52 adc a,$52 +0590: c4 52 mov $52,a +0592: 90 0b bcc $059f +0594: 3f f9 06 call $06f9 +0597: 3f a0 07 call $07a0 +059a: 3f ca 05 call $05ca +059d: 2f ac bra $054b +059f: f0 fc beq $059d +05a1: cd 00 mov x,#$00 +05a3: 8f 01 48 mov $48,#$01 +05a6: f4 70 mov a,$70+x +05a8: f0 03 beq $05ad +05aa: 3f dc 0d call $0ddc +05ad: 3d inc x +05ae: 3d inc x +05af: 0b 48 asl $48 +05b1: d0 f3 bne $05a6 +05b3: 5f 4b 05 jmp $054b +05b6: 2c 3c 0d rol $0d3c +05b9: 4d push x +05ba: 6c 4c 5c ror $5c4c +05bd: 3d inc x +05be: 2d push a +05bf: 5c lsr a +05c0: 62 64 set3 $64 +05c2: 50 4c bvc $0610 +05c4: 4a 46 02 and1 c,$0246,0 +05c7: 4b 4d lsr $4d +05c9: 47 e4 eor a,($e4+x) +05cb: f7 64 mov a,($64)+y +05cd: 01 tcall 0 +05ce: d0 01 bne $05d1 +05d0: 6f ret +05d1: c4 01 mov $01,a +05d3: e4 f4 mov a,$f4 +05d5: 68 60 cmp a,#$60 +05d7: 90 12 bcc $05eb +05d9: 68 80 cmp a,#$80 +05db: f0 18 beq $05f5 +05dd: 68 81 cmp a,#$81 +05df: f0 19 beq $05fa +05e1: 68 82 cmp a,#$82 +05e3: f0 29 beq $060e +05e5: 6f ret +05e6: e8 ff mov a,#$ff +05e8: c4 f4 mov $f4,a +05ea: 6f ret +05eb: c4 00 mov $00,a +05ed: 8d ff mov y,#$ff +05ef: e8 00 mov a,#$00 +05f1: da 59 movw $59,ya +05f3: 2f f1 bra $05e6 +05f5: 3f ce 06 call $06ce +05f8: 2f ec bra $05e6 +05fa: e8 60 mov a,#$60 +05fc: c4 5b mov $5b,a +05fe: e8 00 mov a,#$00 +0600: c4 5c mov $5c,a +0602: 80 setc +0603: a4 5a sbc a,$5a +0605: f8 5b mov x,$5b +0607: 3f 1f 0d call $0d1f +060a: da 5d movw $5d,ya +060c: 2f d8 bra $05e6 +060e: e8 ff mov a,#$ff +0610: 8d 6c mov y,#$6c +0612: 3f ad 09 call $09ad +0615: e8 01 mov a,#$01 +0617: 3f ca 0c call $0cca +061a: a2 4a set5 $4a +061c: 8f 96 1c mov $1c,#$96 +061f: 8f 00 1b mov $1b,#$00 +0622: 8d 00 mov y,#$00 +0624: e8 00 mov a,#$00 +0626: d7 1b mov ($1b)+y,a +0628: ab 1b inc $1b +062a: d0 fa bne $0626 +062c: ab 1c inc $1c +062e: e4 1c mov a,$1c +0630: 68 f0 cmp a,#$f0 +0632: d0 f0 bne $0624 +0634: 5f c0 ff jmp $ffc0 +0637: e8 00 mov a,#$00 +0639: c4 10 mov $10,a +063b: 8f 00 1b mov $1b,#$00 +063e: 8f 7a 1c mov $1c,#$7a +0641: 2f 00 bra $0643 +0643: e8 1f mov a,#$1f +0645: c4 11 mov $11,a +0647: e4 11 mov a,$11 +0649: 1c asl a +064a: fd mov y,a +064b: f7 1b mov a,($1b)+y +064d: c4 1d mov $1d,a +064f: fc inc y +0650: f7 1b mov a,($1b)+y +0652: c4 1e mov $1e,a +0654: e4 11 mov a,$11 +0656: 60 clrc +0657: 84 10 adc a,$10 +0659: 1c asl a +065a: 1c asl a +065b: 5d mov x,a +065c: e4 1d mov a,$1d +065e: 60 clrc +065f: 88 04 adc a,#$04 +0661: d5 00 04 mov $0400+x,a +0664: e4 1e mov a,$1e +0666: 88 00 adc a,#$00 +0668: d5 01 04 mov $0401+x,a +066b: 8d 00 mov y,#$00 +066d: f7 1d mov a,($1d)+y +066f: 60 clrc +0670: 95 00 04 adc a,$0400+x +0673: d5 02 04 mov $0402+x,a +0676: fc inc y +0677: f7 1d mov a,($1d)+y +0679: 95 01 04 adc a,$0401+x +067c: d5 03 04 mov $0403+x,a +067f: 8b 11 dec $11 +0681: 10 c4 bpl $0647 +0683: 6f ret +0684: e8 00 mov a,#$00 +0686: c4 1b mov $1b,a +0688: e8 10 mov a,#$10 +068a: c4 1c mov $1c,a +068c: 60 clrc +068d: e4 1b mov a,$1b +068f: 88 0c adc a,#$0c +0691: c4 1d mov $1d,a +0693: e4 1c mov a,$1c +0695: 88 00 adc a,#$00 +0697: c4 1e mov $1e,a +0699: ba 1d movw ya,$1d +069b: da 04 movw $04,ya +069d: 8d 00 mov y,#$00 +069f: 3f c1 06 call $06c1 +06a2: da 06 movw $06,ya +06a4: 8d 02 mov y,#$02 +06a6: 3f c1 06 call $06c1 +06a9: da 08 movw $08,ya +06ab: 8d 04 mov y,#$04 +06ad: 3f c1 06 call $06c1 +06b0: da 0a movw $0a,ya +06b2: 8d 06 mov y,#$06 +06b4: 3f c1 06 call $06c1 +06b7: da 0c movw $0c,ya +06b9: 8d 08 mov y,#$08 +06bb: 3f c1 06 call $06c1 +06be: da 0e movw $0e,ya +06c0: 6f ret +06c1: f7 1b mov a,($1b)+y +06c3: 2d push a +06c4: fc inc y +06c5: f7 1b mov a,($1b)+y +06c7: fd mov y,a +06c8: ae pop a +06c9: 7a 1d addw ya,$1d +06cb: da 1d movw $1d,ya +06cd: 6f ret +06ce: e8 ff mov a,#$ff +06d0: c4 00 mov $00,a +06d2: c4 47 mov $47,a +06d4: cd 0e mov x,#$0e +06d6: e8 00 mov a,#$00 +06d8: d4 70 mov $70+x,a +06da: e8 ff mov a,#$ff +06dc: d5 41 03 mov $0341+x,a +06df: 1d dec x +06e0: 1d dec x +06e1: 10 f3 bpl $06d6 +06e3: e8 00 mov a,#$00 +06e5: c4 5b mov $5b,a +06e7: c4 69 mov $69,a +06e9: e8 01 mov a,#$01 +06eb: 3f ca 0c call $0cca +06ee: a2 4a set5 $4a +06f0: e8 00 mov a,#$00 +06f2: 8d 00 mov y,#$00 +06f4: da 61 movw $61,ya +06f6: da 63 movw $63,ya +06f8: 6f ret +06f9: e4 00 mov a,$00 +06fb: 10 01 bpl $06fe +06fd: 6f ret +06fe: 8d 09 mov y,#$09 +0700: cf mul ya +0701: da 1b movw $1b,ya +0703: 60 clrc +0704: 89 0e 1b adc ($1b),($0e) +0707: 89 0f 1c adc ($1c),($0f) +070a: e8 ff mov a,#$ff +070c: c4 00 mov $00,a +070e: 8d 00 mov y,#$00 +0710: f7 1b mov a,($1b)+y +0712: c4 15 mov $15,a +0714: e8 00 mov a,#$00 +0716: c4 5b mov $5b,a +0718: c4 69 mov $69,a +071a: cd 0e mov x,#$0e +071c: 8f 80 48 mov $48,#$80 +071f: 7d mov a,x +0720: 5c lsr a +0721: fd mov y,a +0722: fc inc y +0723: f7 1b mov a,($1b)+y +0725: 68 ff cmp a,#$ff +0727: f0 2c beq $0755 +0729: c4 25 mov $25,a +072b: f5 41 03 mov a,$0341+x +072e: 64 15 cmp a,$15 +0730: 90 23 bcc $0755 +0732: e4 25 mov a,$25 +0734: 1c asl a +0735: fd mov y,a +0736: 60 clrc +0737: e4 0c mov a,$0c +0739: 97 0a adc a,($0a)+y +073b: d4 80 mov $80+x,a +073d: d4 26 mov $26+x,a +073f: fc inc y +0740: e4 0d mov a,$0d +0742: 97 0a adc a,($0a)+y +0744: d4 81 mov $81+x,a +0746: d4 27 mov $27+x,a +0748: 3f 5c 07 call $075c +074b: e8 ff mov a,#$ff +074d: d4 70 mov $70+x,a +074f: 3f 41 08 call $0841 +0752: 3f a4 08 call $08a4 +0755: 4b 48 lsr $48 +0757: 1d dec x +0758: 1d dec x +0759: 10 c4 bpl $071f +075b: 6f ret +075c: e8 ff mov a,#$ff +075e: d5 51 02 mov $0251+x,a +0761: d5 41 03 mov $0341+x,a +0764: d5 00 02 mov $0200+x,a +0767: d5 01 02 mov $0201+x,a +076a: e8 0a mov a,#$0a +076c: 3f 50 0b call $0b50 +076f: e8 00 mov a,#$00 +0771: d5 11 02 mov $0211+x,a +0774: d5 d1 02 mov $02d1+x,a +0777: d5 31 02 mov $0231+x,a +077a: d5 40 02 mov $0240+x,a +077d: d5 e0 02 mov $02e0+x,a +0780: d4 71 mov $71+x,a +0782: d4 d0 mov $d0+x,a +0784: d4 a1 mov $a1+x,a +0786: d4 d1 mov $d1+x,a +0788: d5 30 03 mov $0330+x,a +078b: d4 e0 mov $e0+x,a +078d: d4 e1 mov $e1+x,a +078f: d4 b0 mov $b0+x,a +0791: d4 b1 mov $b1+x,a +0793: 3f d3 0a call $0ad3 +0796: e4 48 mov a,$48 +0798: 0e 47 00 tset1 $0047 +079b: e8 01 mov a,#$01 +079d: d4 90 mov $90+x,a +079f: 6f ret +07a0: cd 00 mov x,#$00 +07a2: d8 5f mov $5f,x +07a4: 8f 01 48 mov $48,#$01 +07a7: d8 49 mov $49,x +07a9: f4 70 mov a,$70+x +07ab: d0 03 bne $07b0 +07ad: 5f ee 07 jmp $07ee +07b0: 60 clrc +07b1: f5 01 02 mov a,$0201+x +07b4: 95 00 02 adc a,$0200+x +07b7: d5 01 02 mov $0201+x,a +07ba: b0 03 bcs $07bf +07bc: 5f eb 07 jmp $07eb +07bf: 7d mov a,x +07c0: 9b 90 dec $90+x +07c2: f0 03 beq $07c7 +07c4: 5f eb 07 jmp $07eb +07c7: 3f c0 0a call $0ac0 +07ca: 68 ff cmp a,#$ff +07cc: d0 0a bne $07d8 +07ce: 3f 3d 08 call $083d +07d1: f4 70 mov a,$70+x +07d3: d0 f2 bne $07c7 +07d5: 5f ee 07 jmp $07ee +07d8: 10 06 bpl $07e0 +07da: 3f b4 0a call $0ab4 +07dd: 5f c7 07 jmp $07c7 +07e0: 3f cf 08 call $08cf +07e3: 3f c0 0a call $0ac0 +07e6: 1c asl a +07e7: d4 90 mov $90+x,a +07e9: 2f 03 bra $07ee +07eb: 3f 5f 0d call $0d5f +07ee: 3d inc x +07ef: 3d inc x +07f0: 0b 48 asl $48 +07f2: f0 03 beq $07f7 +07f4: 5f a7 07 jmp $07a7 +07f7: e4 69 mov a,$69 +07f9: f0 15 beq $0810 +07fb: ba 65 movw ya,$65 +07fd: 7a 61 addw ya,$61 +07ff: da 61 movw $61,ya +0801: ba 67 movw ya,$67 +0803: 7a 63 addw ya,$63 +0805: 6e 69 06 dbnz $69,$080e +0808: ba 69 movw ya,$69 +080a: da 61 movw $61,ya +080c: eb 6b mov y,$6b +080e: da 63 movw $63,ya +0810: e4 5b mov a,$5b +0812: f0 0f beq $0823 +0814: ba 5d movw ya,$5d +0816: 7a 59 addw ya,$59 +0818: 8b 5b dec $5b +081a: d0 02 bne $081e +081c: ba 5b movw ya,$5b +081e: da 59 movw $59,ya +0820: 8f ff 5f mov $5f,#$ff +0823: cd 00 mov x,#$00 +0825: 8f 01 48 mov $48,#$01 +0828: f4 70 mov a,$70+x +082a: f0 03 beq $082f +082c: 3f ce 09 call $09ce +082f: 3d inc x +0830: 3d inc x +0831: 0b 48 asl $48 +0833: d0 f3 bne $0828 +0835: e4 5a mov a,$5a +0837: d0 03 bne $083c +0839: 3f ce 06 call $06ce +083c: 6f ret + +083d: 9b 91 dec $91+x ; get current pattern vcmd +083f: d0 3e bne $087f +0841: 3f 9b 08 call $089b ; copy bytes to ram +0844: d4 91 mov $91+x,a +0846: 68 ff cmp a,#$ff ; check for vcmd +0848: f0 41 beq $088b +084a: 68 fe cmp a,#$fe +084c: f0 35 beq $0883 +084e: 28 40 and a,#$40 +0850: f0 28 beq $087a +0852: f4 71 mov a,$71+x +0854: d0 12 bne $0868 +0856: f4 91 mov a,$91+x +0858: 28 3f and a,#$3f +085a: d4 71 mov $71+x,a +085c: f4 26 mov a,$26+x +085e: d5 20 02 mov $0220+x,a +0861: f4 27 mov a,$27+x +0863: d5 21 02 mov $0221+x,a +0866: 2f d9 bra $0841 +0868: 9b 71 dec $71+x +086a: d0 02 bne $086e +086c: 2f d3 bra $0841 +086e: f5 20 02 mov a,$0220+x +0871: d4 26 mov $26+x,a +0873: f5 21 02 mov a,$0221+x +0876: d4 27 mov $27+x,a +0878: 2f c7 bra $0841 + +087a: 3f 9b 08 call $089b ; pattern vcmd 40-7f - repeat sequence +087d: d4 a0 mov $a0+x,a +087f: 3f a4 08 call $08a4 +0882: 6f ret + +0883: 3f 5c 07 call $075c ; pattern vcmd fe - end of channel +0886: e8 00 mov a,#$00 +0888: d4 70 mov $70+x,a +088a: 6f ret + +088b: 3f 9b 08 call $089b ; pattern vcmd ff - go to loop +088e: 60 clrc +088f: 94 80 adc a,$80+x +0891: d4 26 mov $26+x,a +0893: f4 81 mov a,$81+x +0895: 88 00 adc a,#$00 +0897: d4 27 mov $27+x,a +0899: 2f a6 bra $0841 + +089b: e7 26 mov a,($26+x) ; copy pattern vcmd to ram +089d: bb 26 inc $26+x +089f: d0 02 bne $08a3 +08a1: bb 27 inc $27+x +08a3: 6f ret + +08a4: f4 a0 mov a,$a0+x +08a6: 8d 02 mov y,#$02 +08a8: cf mul ya +08a9: da 1d movw $1d,ya +08ab: 60 clrc +08ac: 89 06 1d adc ($1d),($06) +08af: 89 07 1e adc ($1e),($07) +08b2: 8d 00 mov y,#$00 +08b4: f7 1d mov a,($1d)+y +08b6: 2d push a +08b7: fc inc y +08b8: f7 1d mov a,($1d)+y +08ba: fd mov y,a +08bb: ae pop a +08bc: da 1d movw $1d,ya +08be: 60 clrc +08bf: 89 08 1d adc ($1d),($08) +08c2: 89 09 1e adc ($1e),($09) +08c5: e4 1d mov a,$1d +08c7: d4 36 mov $36+x,a +08c9: e4 1e mov a,$1e +08cb: d4 37 mov $37+x,a +08cd: 6f ret +08ce: 6f ret +08cf: f5 40 02 mov a,$0240+x +08d2: f0 11 beq $08e5 +08d4: e4 1f mov a,$1f +08d6: 68 14 cmp a,#$14 +08d8: 90 05 bcc $08df +08da: 80 setc +08db: a8 14 sbc a,#$14 +08dd: 2f f7 bra $08d6 +08df: 3f 50 0b call $0b50 +08e2: 3f 76 0a call $0a76 +08e5: dd mov a,y +08e6: 60 clrc +08e7: 95 30 02 adc a,$0230+x +08ea: 60 clrc +08eb: 95 31 02 adc a,$0231+x +08ee: 60 clrc +08ef: 95 41 02 adc a,$0241+x +08f2: d5 b1 02 mov $02b1+x,a +08f5: f5 d1 02 mov a,$02d1+x +08f8: d5 b0 02 mov $02b0+x,a +08fb: f5 11 03 mov a,$0311+x +08fe: 5c lsr a +08ff: e8 00 mov a,#$00 +0901: 7c ror a +0902: d5 00 03 mov $0300+x,a +0905: e8 00 mov a,#$00 +0907: d4 d0 mov $d0+x,a +0909: d4 a1 mov $a1+x,a +090b: d5 30 03 mov $0330+x,a +090e: d4 e0 mov $e0+x,a +0910: 09 48 5f or ($5f),($48) +0913: 09 48 46 or ($46),($48) +0916: f5 e0 02 mov a,$02e0+x +0919: d4 c0 mov $c0+x,a +091b: f0 32 beq $094f +091d: f5 e1 02 mov a,$02e1+x +0920: d4 c1 mov $c1+x,a +0922: f5 f0 02 mov a,$02f0+x +0925: d0 0a bne $0931 +0927: f5 b1 02 mov a,$02b1+x +092a: 80 setc +092b: b5 f1 02 sbc a,$02f1+x +092e: d5 b1 02 mov $02b1+x,a +0931: f5 f1 02 mov a,$02f1+x +0934: 60 clrc +0935: 95 b1 02 adc a,$02b1+x +0938: 28 7f and a,#$7f +093a: d5 d0 02 mov $02d0+x,a +093d: 80 setc +093e: b5 b1 02 sbc a,$02b1+x +0941: fb c0 mov y,$c0+x +0943: 6d push y +0944: ce pop x +0945: 3f 1f 0d call $0d1f +0948: d5 c0 02 mov $02c0+x,a +094b: dd mov a,y +094c: d5 c1 02 mov $02c1+x,a +094f: 3f 0e 0d call $0d0e +0952: 4d push x +0953: e4 18 mov a,$18 +0955: 1c asl a +0956: 8d 00 mov y,#$00 +0958: cd 18 mov x,#$18 +095a: 9e div ya,x +095b: 5d mov x,a +095c: f6 b5 09 mov a,$09b5+y +095f: c4 1c mov $1c,a +0961: f6 b4 09 mov a,$09b4+y +0964: c4 1b mov $1b,a +0966: f6 b7 09 mov a,$09b7+y +0969: 2d push a +096a: f6 b6 09 mov a,$09b6+y +096d: ee pop y +096e: 9a 1b subw ya,$1b +0970: eb 17 mov y,$17 +0972: cf mul ya +0973: dd mov a,y +0974: 8d 00 mov y,#$00 +0976: 7a 1b addw ya,$1b +0978: cb 1c mov $1c,y +097a: 1c asl a +097b: 2b 1c rol $1c +097d: c4 1b mov $1b,a +097f: 2f 04 bra $0985 +0981: 4b 1c lsr $1c +0983: 7c ror a +0984: 3d inc x +0985: c8 09 cmp x,#$09 +0987: d0 f8 bne $0981 +0989: c4 1b mov $1b,a +098b: ce pop x +098c: e8 04 mov a,#$04 +098e: eb 1b mov y,$1b +0990: cf mul ya +0991: da 1d movw $1d,ya +0993: e8 04 mov a,#$04 +0995: eb 1c mov y,$1c +0997: cf mul ya +0998: fd mov y,a +0999: e8 00 mov a,#$00 +099b: 7a 1d addw ya,$1d +099d: da 1d movw $1d,ya +099f: 7d mov a,x +09a0: 9f xcn a +09a1: 5c lsr a +09a2: 08 02 or a,#$02 +09a4: fd mov y,a +09a5: e4 1d mov a,$1d +09a7: 3f ad 09 call $09ad +09aa: fc inc y +09ab: e4 1e mov a,$1e +09ad: cc f2 00 mov $00f2,y +09b0: c5 f3 00 mov $00f3,a +09b3: 6f ret + +0db4: dw $085f +0db6: dw $08de +0db8: dw $0965 +0dba: dw $09f4 +0dbc: dw $0a8c +0dbe: dw $0b2c +0dc0: dw $0bd6 +0dc2: dw $0c8b +0dc4: dw $0d4a +0dc6: dw $0e14 +0dc8: dw $0eea +0dca: dw $0fcd +0dcc: dw $10be + +09ce: f4 b0 mov a,$b0+x +09d0: f0 09 beq $09db +09d2: e8 50 mov a,#$50 +09d4: 8d 02 mov y,#$02 +09d6: 9b b0 dec $b0+x +09d8: 3f 3b 0d call $0d3b +09db: fb e1 mov y,$e1+x +09dd: f0 23 beq $0a02 +09df: f5 40 03 mov a,$0340+x +09e2: de e0 1b cbne $e0+x,$0a00 +09e5: 09 48 5f or ($5f),($48) +09e8: f5 30 03 mov a,$0330+x +09eb: 10 07 bpl $09f4 +09ed: fc inc y +09ee: d0 04 bne $09f4 +09f0: e8 80 mov a,#$80 +09f2: 2f 04 bra $09f8 +09f4: 60 clrc +09f5: 95 31 03 adc a,$0331+x +09f8: d5 30 03 mov $0330+x,a +09fb: 3f 62 0e call $0e62 +09fe: 2f 07 bra $0a07 +0a00: bb e0 inc $e0+x +0a02: e8 ff mov a,#$ff +0a04: 3f 6d 0e call $0e6d +0a07: f4 b1 mov a,$b1+x +0a09: f0 09 beq $0a14 +0a0b: e8 80 mov a,#$80 +0a0d: 8d 02 mov y,#$02 +0a0f: 9b b1 dec $b1+x +0a11: 3f 3b 0d call $0d3b +0a14: e4 48 mov a,$48 +0a16: 24 5f and a,$5f +0a18: f0 46 beq $0a60 +0a1a: f5 81 02 mov a,$0281+x +0a1d: fd mov y,a +0a1e: f5 80 02 mov a,$0280+x +0a21: da 17 movw $17,ya +0a23: 7d mov a,x +0a24: 9f xcn a +0a25: 5c lsr a +0a26: c4 19 mov $19,a +0a28: eb 18 mov y,$18 +0a2a: f6 62 0a mov a,$0a62+y +0a2d: 80 setc +0a2e: b6 61 0a sbc a,$0a61+y +0a31: eb 17 mov y,$17 +0a33: cf mul ya +0a34: dd mov a,y +0a35: eb 18 mov y,$18 +0a37: 60 clrc +0a38: 96 61 0a adc a,$0a61+y +0a3b: fd mov y,a +0a3c: f5 71 02 mov a,$0271+x +0a3f: cf mul ya +0a40: f5 a1 02 mov a,$02a1+x +0a43: 1c asl a +0a44: 13 19 01 bbc0 $19,$0a48 +0a47: 1c asl a +0a48: dd mov a,y +0a49: 90 03 bcc $0a4e +0a4b: 48 ff eor a,#$ff +0a4d: bc inc a +0a4e: eb 19 mov y,$19 +0a50: 3f ad 09 call $09ad +0a53: 8d 14 mov y,#$14 +0a55: e8 00 mov a,#$00 +0a57: 9a 17 subw ya,$17 +0a59: da 17 movw $17,ya +0a5b: ab 19 inc $19 +0a5d: 33 19 c8 bbc1 $19,$0a28 +0a60: 6f ret + +0a61: db $00,$01,$03,$07,$0d,$15,$1e,$29,$34,$42,$51,$5e,$67,$6e,$73,$77,$7a,$7c,$7d,$7e,$7f + +0a76: e4 1f mov a,$1f +0a78: 44 20 eor a,$20 +0a7a: 5c lsr a +0a7b: 5c lsr a +0a7c: ed notc +0a7d: 6b 1f ror $1f +0a7f: 6b 20 ror $20 +0a81: 6f ret + +; vcmd table (80-98) +0a82: dw $0ad3 ; 80 - set instrument/sample +0a84: dw $0b50 ; 81 - set gain (all channels) +0a86: dw $0b62 ; 82 - set tempo +0a88: dw $0b7e ; 83 - (2 bytes) +0a8a: dw $0b95 ; 84 +0a8c: dw $0b5e ; 85 +0a8e: dw $0bb0 ; 86 - set global volume +0a90: dw $0bc5 ; 87 - set channel volume (multiple channels) +0a92: dw $0be8 ; 88 - set tempo +0a94: dw $0bec ; 89 - set tempo (multiple channels) +0a96: dw $0c0f ; 8a - set channel transpose +0a98: dw $0c14 ; 8b - set transpose (multiple channels) +0a9a: dw $0c23 ; 8c - disable transpose +0a9c: dw $0c44 ; 8d - set channel volume (absolute) +0a9e: dw $0c4d ; 8e - (2 bytes) +0aa0: dw $0c13 ; 8f - nop +0aa2: dw $0ba0 ; 90 - set vibrato (all channels?) +0aa4: dw $0c26 ; 91 - pitch bend (multiple channels) +0aa6: dw $0c2a ; 92 +0aa8: dw $0c40 ; 93 - disable pitch bend +0aaa: dw $0c69 ; 94 - set detune +0aac: dw $0c6d ; 95 - set echo delay +0aae: dw $0c80 ; 96 - disable echo +0ab0: dw $0c87 ; 97 - set echo volume +0ab2: dw $0ca9 ; 98 - (2 bytes) + +0ab4: 1c asl a ; dispatch vcmd (80-9d) +0ab5: fd mov y,a +0ab6: fc inc y +0ab7: f6 82 0a mov a,$0a82+y +0aba: 2d push a +0abb: dc dec y +0abc: f6 82 0a mov a,$0a82+y +0abf: 2d push a + +0ac0: e7 36 mov a,($36+x) ; update/increment sequence pointer +0ac2: bb 36 inc $36+x +0ac4: d0 02 bne $0ac8 +0ac6: bb 37 inc $37+x +0ac8: fd mov y,a +0ac9: 6f ret + +0aca: e7 36 mov a,($36+x) +0acc: bb 36 inc $36+x +0ace: d0 02 bne $0ad2 +0ad0: bb 37 inc $37+x +0ad2: 6f ret + +0ad3: d5 11 02 mov $0211+x,a ; vcmd 80 - set instrument/sample +0ad6: 8d 10 mov y,#$10 +0ad8: cf mul ya +0ad9: da 23 movw $23,ya +0adb: 60 clrc +0adc: 89 04 23 adc ($23),($04) +0adf: 89 05 24 adc ($24),($05) +0ae2: e4 48 mov a,$48 +0ae4: 4e 4b 00 tclr1 $004b +0ae7: 8d 00 mov y,#$00 +0ae9: f7 23 mov a,($23)+y +0aeb: c4 12 mov $12,a +0aed: fc inc y +0aee: f7 23 mov a,($23)+y +0af0: c4 13 mov $13,a +0af2: fc inc y +0af3: f7 23 mov a,($23)+y +0af5: d5 10 02 mov $0210+x,a +0af8: fc inc y +0af9: f7 23 mov a,($23)+y +0afb: 68 40 cmp a,#$40 +0afd: 90 0d bcc $0b0c +0aff: 28 1f and a,#$1f +0b01: 38 20 4a and $4a,#$20 +0b04: 0e 4a 00 tset1 $004a +0b07: 09 48 4b or ($4b),($48) +0b0a: e8 00 mov a,#$00 +0b0c: c4 14 mov $14,a +0b0e: fc inc y +0b0f: f7 23 mov a,($23)+y +0b11: d5 41 02 mov $0241+x,a +0b14: 8d 0d mov y,#$0d +0b16: f7 23 mov a,($23)+y +0b18: d5 01 03 mov $0301+x,a +0b1b: fc inc y +0b1c: f7 23 mov a,($23)+y +0b1e: d4 d1 mov $d1+x,a +0b20: d5 21 03 mov $0321+x,a +0b23: fc inc y +0b24: f7 23 mov a,($23)+y +0b26: d5 10 03 mov $0310+x,a +0b29: e8 00 mov a,#$00 +0b2b: d5 11 03 mov $0311+x,a +0b2e: 7d mov a,x +0b2f: 9f xcn a +0b30: 5c lsr a +0b31: 08 04 or a,#$04 +0b33: fd mov y,a +0b34: e4 14 mov a,$14 +0b36: cb f2 mov $f2,y +0b38: c4 f3 mov $f3,a +0b3a: fc inc y +0b3b: e4 12 mov a,$12 +0b3d: cb f2 mov $f2,y +0b3f: c4 f3 mov $f3,a +0b41: fc inc y +0b42: e4 13 mov a,$13 +0b44: cb f2 mov $f2,y +0b46: c4 f3 mov $f3,a +0b48: fc inc y +0b49: e8 00 mov a,#$00 +0b4b: cb f2 mov $f2,y +0b4d: c4 f3 mov $f3,a +0b4f: 6f ret + +0b50: d5 a1 02 mov $02a1+x,a ; vcmd 81 - set gain (all channels) +0b53: 28 1f and a,#$1f +0b55: d5 81 02 mov $0281+x,a +0b58: e8 00 mov a,#$00 +0b5a: d5 80 02 mov $0280+x,a +0b5d: 6f ret + +0b5e: d5 40 02 mov $0240+x,a ; vcmd 85 +0b61: 6f ret + +0b62: 3f c0 0a call $0ac0 ; vcmd 82 - set gain (multiple channels) +0b65: d4 b1 mov $b1+x,a +0b67: 2d push a +0b68: 3f c0 0a call $0ac0 +0b6b: d5 a0 02 mov $02a0+x,a +0b6e: 80 setc +0b6f: b5 81 02 sbc a,$0281+x +0b72: ce pop x +0b73: 3f 1f 0d call $0d1f +0b76: d5 90 02 mov $0290+x,a +0b79: dd mov a,y +0b7a: d5 91 02 mov $0291+x,a +0b7d: 6f ret + +0b7e: d5 10 03 mov $0310+x,a ; vcmd 83 - set vibrato (all channels) +0b81: 3f c0 0a call $0ac0 +0b84: d5 01 03 mov $0301+x,a +0b87: 3f c0 0a call $0ac0 +0b8a: d4 d1 mov $d1+x,a +0b8c: d5 21 03 mov $0321+x,a +0b8f: e8 00 mov a,#$00 +0b91: d5 11 03 mov $0311+x,a +0b94: 6f ret + +0b95: d4 d1 mov $d1+x,a ; vcmd 84 - set vibrato +0b97: d5 21 03 mov $0321+x,a +0b9a: e8 00 mov a,#$00 +0b9c: d5 11 03 mov $0311+x,a +0b9f: 6f ret + +0ba0: d5 11 03 mov $0311+x,a ; vcmd 90 - set vibrato (all channels?) +0ba3: 2d push a +0ba4: 8d 00 mov y,#$00 +0ba6: f4 d1 mov a,$d1+x +0ba8: ce pop x +0ba9: 9e div ya,x +0baa: f8 49 mov x,$49 +0bac: d5 20 03 mov $0320+x,a +0baf: 6f ret + +0bb0: 3f c0 0a call $0ac0 ; vcmd 86 - set global volume +0bb3: c4 5b mov $5b,a +0bb5: 3f c0 0a call $0ac0 +0bb8: c4 5c mov $5c,a +0bba: 80 setc +0bbb: a4 5a sbc a,$5a +0bbd: f8 5b mov x,$5b +0bbf: 3f 1f 0d call $0d1f +0bc2: da 5d movw $5d,ya +0bc4: 6f ret + +0bc5: 3f c0 0a call $0ac0 ; vcmd 87 - set channel volume (multiple channels) +0bc8: c4 6c mov $6c,a +0bca: 3f c0 0a call $0ac0 ; update pointer +0bcd: c4 6e mov $6e,a +0bcf: 4d push x +0bd0: cd 00 mov x,#$00 +0bd2: 8f 01 6d mov $6d,#$01 +0bd5: e4 6c mov a,$6c +0bd7: 24 6d and a,$6d +0bd9: f0 05 beq $0be0 +0bdb: e4 6e mov a,$6e +0bdd: d5 00 02 mov $0200+x,a +0be0: 3d inc x +0be1: 3d inc x +0be2: 0b 6d asl $6d +0be4: d0 ef bne $0bd5 +0be6: ce pop x +0be7: 6f ret + +0be8: d5 00 02 mov $0200+x,a ; vcmd 88 - set tempo +0beb: 6f ret + +0bec: 3f c0 0a call $0ac0 ; vcmd 89 - set tempo (multiple channels) +0bef: c4 6c mov $6c,a +0bf1: 3f c0 0a call $0ac0 +0bf4: c4 6e mov $6e,a +0bf6: 4d push x +0bf7: cd 00 mov x,#$00 +0bf9: 8f 01 6d mov $6d,#$01 +0bfc: e4 6c mov a,$6c +0bfe: 24 6d and a,$6d +0c00: f0 05 beq $0c07 +0c02: e4 6e mov a,$6e +0c04: d5 30 02 mov $0230+x,a +0c07: 3d inc x +0c08: 3d inc x +0c09: 0b 6d asl $6d +0c0b: d0 ef bne $0bfc +0c0d: ce pop x +0c0e: 6f ret + +0c0f: d5 31 02 mov $0231+x,a ; vcmd 8a - set channel transpose +0c12: 6f ret + +0c13: 6f ret ; vcmd 8f - nop + +0c14: d5 40 03 mov $0340+x,a ; vcmd 8b - set transpose (multiple channels) +0c17: 3f c0 0a call $0ac0 +0c1a: d5 31 03 mov $0331+x,a +0c1d: 3f c0 0a call $0ac0 +0c20: d4 e1 mov $e1+x,a +0c22: 6f ret + +0c23: d4 e1 mov $e1+x,a ; vcmd 8c - disable transpose +0c25: 6f ret + +0c26: e8 01 mov a,#$01 ; vcmd 91 - pitch bend (multiple channels) +0c28: 2f 02 bra $0c2c + +0c2a: e8 00 mov a,#$00 ; vcmd 92 +0c2c: d5 f0 02 mov $02f0+x,a +0c2f: dd mov a,y +0c30: d5 e1 02 mov $02e1+x,a +0c33: 3f c0 0a call $0ac0 +0c36: d5 e0 02 mov $02e0+x,a +0c39: 3f c0 0a call $0ac0 +0c3c: d5 f1 02 mov $02f1+x,a +0c3f: 6f ret + +0c40: d5 e0 02 mov $02e0+x,a ; vcmd 93 - disable pitch bend +0c43: 6f ret + +0c44: d5 51 02 mov $0251+x,a ; vcmd 8d - set channel volume (absolute) +0c47: e8 00 mov a,#$00 +0c49: d5 50 02 mov $0250+x,a +0c4c: 6f ret + +0c4d: 3f c0 0a call $0ac0 ; vcmd 8e (2 bytes) +0c50: d4 b0 mov $b0+x,a +0c52: 2d push a +0c53: 3f c0 0a call $0ac0 +0c56: d5 70 02 mov $0270+x,a +0c59: 80 setc +0c5a: b5 51 02 sbc a,$0251+x +0c5d: ce pop x +0c5e: 3f 1f 0d call $0d1f +0c61: d5 60 02 mov $0260+x,a +0c64: dd mov a,y +0c65: d5 61 02 mov $0261+x,a +0c68: 6f ret + +0c69: d5 d1 02 mov $02d1+x,a ; vcmd 94 - set detune +0c6c: 6f ret + +0c6d: c4 4c mov $4c,a ; vcmd 95 - set echo delay +0c6f: 3f c0 0a call $0ac0 +0c72: e8 00 mov a,#$00 +0c74: da 61 movw $61,ya +0c76: 3f c0 0a call $0ac0 +0c79: e8 00 mov a,#$00 +0c7b: da 63 movw $63,ya +0c7d: b2 4a clr5 $4a +0c7f: 6f ret + +0c80: da 61 movw $61,ya ; vcmd 96 - disable echo +0c82: da 63 movw $63,ya +0c84: a2 4a set5 $4a +0c86: 6f ret + +0c87: 3f ca 0c call $0cca ; vcmd 97 - set echo volume +0c8a: 3f c0 0a call $0ac0 +0c8d: c4 50 mov $50,a +0c8f: 3f c0 0a call $0ac0 +0c92: 8d 08 mov y,#$08 +0c94: cf mul ya +0c95: 5d mov x,a +0c96: 8d 0f mov y,#$0f +0c98: f5 7f 0e mov a,$0e7f+x +0c9b: 3f ad 09 call $09ad +0c9e: 3d inc x +0c9f: dd mov a,y +0ca0: 60 clrc +0ca1: 88 10 adc a,#$10 +0ca3: fd mov y,a +0ca4: 10 f2 bpl $0c98 +0ca6: f8 49 mov x,$49 +0ca8: 6f ret + +0ca9: c4 69 mov $69,a ; vcmd 98 - (2 bytes) +0cab: 3f c0 0a call $0ac0 +0cae: c4 6a mov $6a,a +0cb0: 80 setc +0cb1: a4 62 sbc a,$62 +0cb3: f8 69 mov x,$69 +0cb5: 3f 1f 0d call $0d1f +0cb8: da 65 movw $65,ya +0cba: 3f c0 0a call $0ac0 +0cbd: c4 6b mov $6b,a +0cbf: 80 setc +0cc0: a4 64 sbc a,$64 +0cc2: f8 69 mov x,$69 +0cc4: 3f 1f 0d call $0d1f +0cc7: da 67 movw $67,ya +0cc9: 6f ret +0cca: c4 4f mov $4f,a +0ccc: 8d 7d mov y,#$7d +0cce: cc f2 00 mov $00f2,y +0cd1: e5 f3 00 mov a,$00f3 +0cd4: 64 4f cmp a,$4f +0cd6: 28 0f and a,#$0f +0cd8: 48 ff eor a,#$ff +0cda: f3 4e 03 bbc7 $4e,$0ce0 +0cdd: 60 clrc +0cde: 84 4e adc a,$4e +0ce0: c4 4e mov $4e,a +0ce2: 8d 04 mov y,#$04 +0ce4: f6 b5 05 mov a,$05b5+y +0ce7: c5 f2 00 mov $00f2,a +0cea: e8 00 mov a,#$00 +0cec: c5 f3 00 mov $00f3,a +0cef: fe f3 dbnz y,$0ce4 +0cf1: e4 4a mov a,$4a +0cf3: 08 20 or a,#$20 +0cf5: 8d 6c mov y,#$6c +0cf7: 3f ad 09 call $09ad +0cfa: e4 4f mov a,$4f +0cfc: 8d 7d mov y,#$7d +0cfe: 3f ad 09 call $09ad +0d01: 1c asl a +0d02: 1c asl a +0d03: 1c asl a +0d04: 48 ff eor a,#$ff +0d06: 80 setc +0d07: 88 ff adc a,#$ff +0d09: 8d 6d mov y,#$6d +0d0b: 5f ad 09 jmp $09ad +0d0e: f5 b1 02 mov a,$02b1+x +0d11: 68 6c cmp a,#$6c +0d13: 90 02 bcc $0d17 +0d15: e8 6b mov a,#$6b +0d17: c4 18 mov $18,a +0d19: f5 b0 02 mov a,$02b0+x +0d1c: c4 17 mov $17,a +0d1e: 6f ret +0d1f: ed notc +0d20: 6b 19 ror $19 +0d22: 10 03 bpl $0d27 +0d24: 48 ff eor a,#$ff +0d26: bc inc a +0d27: 8d 00 mov y,#$00 +0d29: 9e div ya,x +0d2a: 2d push a +0d2b: e8 00 mov a,#$00 +0d2d: 9e div ya,x +0d2e: ee pop y +0d2f: f8 49 mov x,$49 +0d31: f3 19 06 bbc7 $19,$0d3a +0d34: da 1b movw $1b,ya +0d36: ba 02 movw ya,$02 +0d38: 9a 1b subw ya,$1b +0d3a: 6f ret +0d3b: 09 48 5f or ($5f),($48) +0d3e: da 1b movw $1b,ya +0d40: da 1d movw $1d,ya +0d42: 4d push x +0d43: ee pop y +0d44: 60 clrc +0d45: d0 0a bne $0d51 +0d47: 98 1f 1d adc $1d,#$1f +0d4a: e8 00 mov a,#$00 +0d4c: d7 1b mov ($1b)+y,a +0d4e: fc inc y +0d4f: 2f 09 bra $0d5a +0d51: 98 10 1d adc $1d,#$10 +0d54: 3f 58 0d call $0d58 +0d57: fc inc y +0d58: f7 1b mov a,($1b)+y +0d5a: 97 1d adc a,($1d)+y +0d5c: d7 1b mov ($1b)+y,a +0d5e: 6f ret +0d5f: e8 01 mov a,#$01 +0d61: 74 90 cmp a,$90+x +0d63: d0 0a bne $0d6f +0d65: e4 48 mov a,$48 +0d67: 0e 47 00 tset1 $0047 +0d6a: 8d 5c mov y,#$5c +0d6c: 3f ad 09 call $09ad +0d6f: f2 1a clr7 $1a +0d71: f4 c0 mov a,$c0+x +0d73: f0 13 beq $0d88 +0d75: f4 c1 mov a,$c1+x +0d77: f0 04 beq $0d7d +0d79: 9b c1 dec $c1+x +0d7b: 2f 0b bra $0d88 +0d7d: e2 1a set7 $1a +0d7f: e8 b0 mov a,#$b0 +0d81: 8d 02 mov y,#$02 +0d83: 9b c0 dec $c0+x +0d85: 3f 3e 0d call $0d3e +0d88: 3f 0e 0d call $0d0e +0d8b: f4 d1 mov a,$d1+x +0d8d: f0 49 beq $0dd8 +0d8f: f5 10 03 mov a,$0310+x +0d92: de d0 41 cbne $d0+x,$0dd6 +0d95: f4 a1 mov a,$a1+x +0d97: 75 11 03 cmp a,$0311+x +0d9a: d0 05 bne $0da1 +0d9c: f5 21 03 mov a,$0321+x +0d9f: 2f 0b bra $0dac +0da1: bb a1 inc $a1+x +0da3: fd mov y,a +0da4: f0 02 beq $0da8 +0da6: f4 d1 mov a,$d1+x +0da8: 60 clrc +0da9: 95 20 03 adc a,$0320+x +0dac: d4 d1 mov $d1+x,a +0dae: f5 00 03 mov a,$0300+x +0db1: 60 clrc +0db2: 95 01 03 adc a,$0301+x +0db5: d5 00 03 mov $0300+x,a +0db8: c4 19 mov $19,a +0dba: 1c asl a +0dbb: 1c asl a +0dbc: 90 02 bcc $0dc0 +0dbe: 48 ff eor a,#$ff +0dc0: fd mov y,a +0dc1: f4 d1 mov a,$d1+x +0dc3: 68 f1 cmp a,#$f1 +0dc5: 90 05 bcc $0dcc +0dc7: 28 0f and a,#$0f +0dc9: cf mul ya +0dca: 2f 04 bra $0dd0 +0dcc: cf mul ya +0dcd: dd mov a,y +0dce: 8d 00 mov y,#$00 +0dd0: 3f 4d 0e call $0e4d +0dd3: 5f 52 09 jmp $0952 +0dd6: bb d0 inc $d0+x +0dd8: e3 1a f8 bbs7 $1a,$0dd3 +0ddb: 6f ret +0ddc: f2 1a clr7 $1a +0dde: f4 e1 mov a,$e1+x +0de0: f0 09 beq $0deb +0de2: f5 40 03 mov a,$0340+x +0de5: de e0 03 cbne $e0+x,$0deb +0de8: 3f 55 0e call $0e55 +0deb: f5 81 02 mov a,$0281+x +0dee: fd mov y,a +0def: f5 80 02 mov a,$0280+x +0df2: da 17 movw $17,ya +0df4: f4 b1 mov a,$b1+x +0df6: f0 0a beq $0e02 +0df8: f5 91 02 mov a,$0291+x +0dfb: fd mov y,a +0dfc: f5 90 02 mov a,$0290+x +0dff: 3f 37 0e call $0e37 +0e02: f3 1a 03 bbc7 $1a,$0e08 +0e05: 3f 23 0a call $0a23 +0e08: f2 1a clr7 $1a +0e0a: 3f 0e 0d call $0d0e +0e0d: f4 c0 mov a,$c0+x +0e0f: f0 0e beq $0e1f +0e11: f4 c1 mov a,$c1+x +0e13: d0 0a bne $0e1f +0e15: f5 c1 02 mov a,$02c1+x +0e18: fd mov y,a +0e19: f5 c0 02 mov a,$02c0+x +0e1c: 3f 37 0e call $0e37 +0e1f: f4 d1 mov a,$d1+x +0e21: f0 b5 beq $0dd8 +0e23: f5 10 03 mov a,$0310+x +0e26: de d0 af cbne $d0+x,$0dd8 +0e29: eb 52 mov y,$52 +0e2b: f5 01 03 mov a,$0301+x +0e2e: cf mul ya +0e2f: dd mov a,y +0e30: 60 clrc +0e31: 95 00 03 adc a,$0300+x +0e34: 5f b8 0d jmp $0db8 +0e37: e2 1a set7 $1a +0e39: cb 19 mov $19,y +0e3b: 3f 31 0d call $0d31 +0e3e: 6d push y +0e3f: eb 52 mov y,$52 +0e41: cf mul ya +0e42: cb 1b mov $1b,y +0e44: 8f 00 1c mov $1c,#$00 +0e47: eb 52 mov y,$52 +0e49: ae pop a +0e4a: cf mul ya +0e4b: 7a 1b addw ya,$1b +0e4d: 3f 31 0d call $0d31 +0e50: 7a 17 addw ya,$17 +0e52: da 17 movw $17,ya +0e54: 6f ret +0e55: e2 1a set7 $1a +0e57: eb 52 mov y,$52 +0e59: f5 31 03 mov a,$0331+x +0e5c: cf mul ya +0e5d: dd mov a,y +0e5e: 60 clrc +0e5f: 95 30 03 adc a,$0330+x +0e62: 1c asl a +0e63: 90 02 bcc $0e67 +0e65: 48 ff eor a,#$ff +0e67: fb e1 mov y,$e1+x +0e69: cf mul ya +0e6a: dd mov a,y +0e6b: 48 ff eor a,#$ff +0e6d: eb 5a mov y,$5a +0e6f: cf mul ya +0e70: f5 10 02 mov a,$0210+x +0e73: cf mul ya +0e74: f5 51 02 mov a,$0251+x +0e77: cf mul ya +0e78: dd mov a,y +0e79: cf mul ya +0e7a: dd mov a,y +0e7b: d5 71 02 mov $0271+x,a +0e7e: 6f ret + +0e7f: db $7f,$00,$00,$00,$00,$00,$00,$00,$58,$bf,$db,$f0,$fe,$07,$0c,$0c,$0c,$21,$2b,$2b,$13,$fe,$f3,$f9,$34,$33,$00,$d9,$e5,$01,$fc,$eb diff --git a/snes/Martin Walker/TimeSlip ($0600).bin b/snes/Martin Walker/TimeSlip ($0600).bin new file mode 100644 index 00000000..fc9ff8e1 Binary files /dev/null and b/snes/Martin Walker/TimeSlip ($0600).bin differ diff --git a/snes/Martin Walker/TimeSlip.s b/snes/Martin Walker/TimeSlip.s new file mode 100644 index 00000000..988e0084 --- /dev/null +++ b/snes/Martin Walker/TimeSlip.s @@ -0,0 +1,1470 @@ +0600: 20 clrp ; clear ram variables +0601: cd ff mov x,#$ff +0603: bd mov sp,x +0604: e8 00 mov a,#$00 ; EVOL(L) +0606: 8d 2c mov y,#$2c +0608: 3f 41 10 call $1041 +060b: 8d 3c mov y,#$3c ; EVOL(R) +060d: 3f 41 10 call $1041 +0610: 8d 0c mov y,#$0c ; MVOL(L) +0612: 3f 41 10 call $1041 +0615: 8d 1c mov y,#$1c ; MVOL(R) +0617: 3f 41 10 call $1041 +061a: 8d 2d mov y,#$2d ; PMON +061c: 3f 41 10 call $1041 +061f: cd 07 mov x,#$07 ; GAIN +0621: 8d 00 mov y,#$00 +0623: 7d mov a,x +0624: 9f xcn a +0625: c5 f2 00 mov $00f2,a +0628: cc f3 00 mov $00f3,y +062b: bc inc a +062c: c5 f2 00 mov $00f2,a +062f: cc f3 00 mov $00f3,y +0632: 1d dec x +0633: 10 ee bpl $0623 +0635: cd 00 mov x,#$00 +0637: 7d mov a,x +0638: af mov (x)+,a +0639: c8 f0 cmp x,#$f0 +063b: d0 fb bne $0638 +063d: 5d mov x,a +063e: d5 00 01 mov $0100+x,a +0641: d5 00 02 mov $0200+x,a +0644: d5 00 03 mov $0300+x,a +0647: 3d inc x +0648: d0 f4 bne $063e +064a: e8 04 mov a,#$04 +064c: 8d 5d mov y,#$5d +064e: cc f2 00 mov $00f2,y +0651: c5 f3 00 mov $00f3,a +0654: 3f 48 10 call $1048 +0657: 3f a7 10 call $10a7 +065a: 3f f3 07 call $07f3 +065d: e8 90 mov a,#$90 +065f: c5 f1 00 mov $00f1,a +0662: e8 20 mov a,#$20 +0664: c5 fa 00 mov $00fa,a +0667: e8 81 mov a,#$81 +0669: c5 f1 00 mov $00f1,a +066c: 8f 00 f4 mov $f4,#$00 +066f: e4 f6 mov a,$f6 +0671: f0 fc beq $066f +0673: e8 ff mov a,#$ff +0675: c4 01 mov $01,a +0677: c4 f4 mov $f4,a +0679: e4 2e mov a,$2e +067b: 8d 5c mov y,#$5c +067d: 3f 41 10 call $1041 +0680: e8 00 mov a,#$00 +0682: c4 2e mov $2e,a +0684: e3 1c 28 bbs7 $1c,$06af +0687: e4 2f mov a,$2f +0689: 8d 6c mov y,#$6c +068b: 3f 41 10 call $1041 +068e: 69 1d 1c cmp ($1c),($1d) +0691: d0 1c bne $06af +0693: e4 31 mov a,$31 +0695: 8d 4d mov y,#$4d +0697: 3f 41 10 call $1041 +069a: e4 33 mov a,$33 +069c: 8d 0d mov y,#$0d +069e: 3f 41 10 call $1041 +06a1: e4 42 mov a,$42 +06a3: 8d 2c mov y,#$2c +06a5: 3f 41 10 call $1041 +06a8: e4 44 mov a,$44 +06aa: 8d 3c mov y,#$3c +06ac: 3f 41 10 call $1041 +06af: e4 30 mov a,$30 +06b1: 8d 3d mov y,#$3d +06b3: 3f 41 10 call $1041 +06b6: e8 00 mov a,#$00 +06b8: 8d 5c mov y,#$5c +06ba: 3f 41 10 call $1041 +06bd: e4 2d mov a,$2d +06bf: 8d 4c mov y,#$4c +06c1: 3f 41 10 call $1041 +06c4: e8 00 mov a,#$00 +06c6: c4 2d mov $2d,a +06c8: 3f ef 10 call $10ef +06cb: ec fd 00 mov y,$00fd +06ce: f0 f8 beq $06c8 +06d0: dd mov a,y +06d1: 60 clrc +06d2: 84 19 adc a,$19 +06d4: 68 04 cmp a,#$04 +06d6: 90 09 bcc $06e1 +06d8: 69 1d 1c cmp ($1c),($1d) +06db: f0 02 beq $06df +06dd: ab 1c inc $1c +06df: e8 00 mov a,#$00 +06e1: c4 19 mov $19,a +06e3: e8 80 mov a,#$80 +06e5: cf mul ya +06e6: ad 00 cmp y,#$00 +06e8: f0 05 beq $06ef +06ea: e8 00 mov a,#$00 +06ec: 80 setc +06ed: 2f 03 bra $06f2 +06ef: 60 clrc +06f0: 84 22 adc a,$22 +06f2: c4 22 mov $22,a +06f4: b0 15 bcs $070b +06f6: cd 00 mov x,#$00 +06f8: 8f 01 1a mov $1a,#$01 +06fb: f4 50 mov a,$50+x +06fd: f0 03 beq $0702 +06ff: 3f cc 0c call $0ccc +0702: 3d inc x +0703: 3d inc x +0704: 0b 1a asl $1a +0706: d0 f3 bne $06fb +0708: 5f 79 06 jmp $0679 +070b: 3f 6f 08 call $086f +070e: 3f 14 07 call $0714 +0711: 5f 79 06 jmp $0679 +0714: e4 00 mov a,$00 +0716: 10 01 bpl $0719 +0718: 6f ret +0719: 8d 09 mov y,#$09 +071b: cf mul ya +071c: da 25 movw $25,ya +071e: 60 clrc +071f: 89 0e 25 adc ($25),($0e) +0722: 89 0f 26 adc ($26),($0f) +0725: 8f ff 00 mov $00,#$ff +0728: 8d 00 mov y,#$00 +072a: f7 25 mov a,($25)+y +072c: c4 17 mov $17,a +072e: 28 7f and a,#$7f +0730: c4 15 mov $15,a +0732: 8f 00 36 mov $36,#$00 +0735: 8f 00 3e mov $3e,#$00 +0738: cd 0e mov x,#$0e +073a: 8f 80 1a mov $1a,#$80 +073d: 7d mov a,x +073e: 5c lsr a +073f: fd mov y,a +0740: fc inc y +0741: f7 25 mov a,($25)+y +0743: 68 ff cmp a,#$ff +0745: f0 46 beq $078d +0747: c4 18 mov $18,a +0749: f5 11 03 mov a,$0311+x +074c: 64 15 cmp a,$15 +074e: 90 3d bcc $078d +0750: 3f a6 07 call $07a6 +0753: e4 15 mov a,$15 +0755: d5 11 03 mov $0311+x,a +0758: e4 02 mov a,$02 +075a: d5 a0 03 mov $03a0+x,a +075d: e8 ff mov a,#$ff +075f: d4 50 mov $50+x,a +0761: e4 17 mov a,$17 +0763: 10 0c bpl $0771 +0765: d5 70 03 mov $0370+x,a +0768: e4 18 mov a,$18 +076a: d4 91 mov $91+x,a +076c: 3f ee 09 call $09ee +076f: 2f 1c bra $078d +0771: e4 18 mov a,$18 +0773: 1c asl a +0774: fd mov y,a +0775: 60 clrc +0776: e4 0c mov a,$0c +0778: 97 0a adc a,($0a)+y +077a: d4 60 mov $60+x,a +077c: d4 70 mov $70+x,a +077e: fc inc y +077f: e4 0d mov a,$0d +0781: 97 0a adc a,($0a)+y +0783: d4 61 mov $61+x,a +0785: d4 71 mov $71+x,a +0787: 3f 8b 09 call $098b +078a: 3f ee 09 call $09ee +078d: 4b 1a lsr $1a +078f: 1d dec x +0790: 1d dec x +0791: 10 aa bpl $073d +0793: e8 7f mov a,#$7f +0795: 8d 0c mov y,#$0c +0797: cc f2 00 mov $00f2,y +079a: c5 f3 00 mov $00f3,a +079d: 8d 1c mov y,#$1c +079f: cc f2 00 mov $00f2,y +07a2: c5 f3 00 mov $00f3,a +07a5: 6f ret +07a6: e8 ff mov a,#$ff +07a8: d5 21 02 mov $0221+x,a +07ab: d5 91 03 mov $0391+x,a +07ae: d5 11 03 mov $0311+x,a +07b1: d5 00 02 mov $0200+x,a +07b4: d5 01 02 mov $0201+x,a +07b7: 8d 0c mov y,#$0c +07b9: 3f a8 0e call $0ea8 +07bc: e8 00 mov a,#$00 +07be: d5 11 02 mov $0211+x,a +07c1: d5 a1 02 mov $02a1+x,a +07c4: d5 61 02 mov $0261+x,a +07c7: d5 51 03 mov $0351+x,a +07ca: d5 90 03 mov $0390+x,a +07cd: d5 b0 02 mov $02b0+x,a +07d0: d4 51 mov $51+x,a +07d2: d4 c0 mov $c0+x,a +07d4: d4 a1 mov $a1+x,a +07d6: d4 c1 mov $c1+x,a +07d8: d5 00 03 mov $0300+x,a +07db: d4 e0 mov $e0+x,a +07dd: d4 e1 mov $e1+x,a +07df: d4 b0 mov $b0+x,a +07e1: d4 b1 mov $b1+x,a +07e3: d5 70 03 mov $0370+x,a +07e6: e4 1a mov a,$1a +07e8: 4e 2d 00 tclr1 $002d +07eb: 0e 2e 00 tset1 $002e +07ee: e8 01 mov a,#$01 +07f0: d4 a0 mov $a0+x,a +07f2: 6f ret +07f3: cd 0e mov x,#$0e +07f5: e8 00 mov a,#$00 +07f7: d4 50 mov $50+x,a +07f9: d5 11 02 mov $0211+x,a +07fc: e8 ff mov a,#$ff +07fe: d5 11 03 mov $0311+x,a +0801: 1d dec x +0802: 1d dec x +0803: 10 f0 bpl $07f5 +0805: e8 00 mov a,#$00 +0807: 8d 00 mov y,#$00 +0809: da 41 movw $41,ya +080b: da 43 movw $43,ya +080d: 3f 28 08 call $0828 +0810: a2 2f set5 $2f +0812: 8f ff 00 mov $00,#$ff +0815: 8f ff 2e mov $2e,#$ff +0818: 8f 00 36 mov $36,#$00 +081b: 8f 00 3e mov $3e,#$00 +081e: 8f 00 49 mov $49,#$00 +0821: 8f ff 4a mov $4a,#$ff +0824: 8f 00 2d mov $2d,#$00 +0827: 6f ret +0828: c4 1d mov $1d,a +082a: 8d 7d mov y,#$7d +082c: cc f2 00 mov $00f2,y +082f: e5 f3 00 mov a,$00f3 +0832: 28 0f and a,#$0f +0834: 48 ff eor a,#$ff +0836: f3 1c 03 bbc7 $1c,$083c +0839: 60 clrc +083a: 84 1c adc a,$1c +083c: c4 1c mov $1c,a +083e: e8 00 mov a,#$00 +0840: 8d 4d mov y,#$4d +0842: 3f 41 10 call $1041 +0845: 8d 0d mov y,#$0d +0847: 3f 41 10 call $1041 +084a: 8d 2c mov y,#$2c +084c: 3f 41 10 call $1041 +084f: 8d 3c mov y,#$3c +0851: 3f 41 10 call $1041 +0854: e4 2f mov a,$2f +0856: 08 20 or a,#$20 +0858: 8d 6c mov y,#$6c +085a: 3f 41 10 call $1041 +085d: e4 1d mov a,$1d +085f: 8d 7d mov y,#$7d +0861: 3f 41 10 call $1041 +0864: 1c asl a +0865: 1c asl a +0866: 1c asl a +0867: 48 ff eor a,#$ff +0869: 8d 6d mov y,#$6d +086b: 3f 41 10 call $1041 +086e: 6f ret +086f: cd 00 mov x,#$00 +0871: 8f 00 1e mov $1e,#$00 +0874: 8f 01 1a mov $1a,#$01 +0877: d8 1b mov $1b,x +0879: f4 50 mov a,$50+x +087b: d0 03 bne $0880 +087d: 5f 1b 09 jmp $091b +0880: e4 4a mov a,$4a +0882: f0 0c beq $0890 +0884: 8f 01 46 mov $46,#$01 +0887: 8f 00 47 mov $47,#$00 +088a: 8f 00 48 mov $48,#$00 +088d: 8f 00 4a mov $4a,#$00 +0890: f5 51 03 mov a,$0351+x +0893: f0 1e beq $08b3 +0895: f5 60 03 mov a,$0360+x +0898: bc inc a +0899: d5 60 03 mov $0360+x,a +089c: 8d 7c mov y,#$7c +089e: cc f2 00 mov $00f2,y +08a1: e5 f3 00 mov a,$00f3 +08a4: 24 1a and a,$1a +08a6: f0 70 beq $0918 +08a8: e8 01 mov a,#$01 +08aa: d4 a0 mov $a0+x,a +08ac: e8 00 mov a,#$00 +08ae: d5 51 03 mov $0351+x,a +08b1: 2f 65 bra $0918 +08b3: 60 clrc +08b4: f5 01 02 mov a,$0201+x +08b7: 95 00 02 adc a,$0200+x +08ba: d5 01 02 mov $0201+x,a +08bd: 90 59 bcc $0918 +08bf: f5 60 03 mov a,$0360+x +08c2: bc inc a +08c3: d5 60 03 mov $0360+x,a +08c6: 9b a0 dec $a0+x +08c8: d0 4e bne $0918 +08ca: 3f bf 0d call $0dbf +08cd: 68 ff cmp a,#$ff +08cf: d0 11 bne $08e2 +08d1: f5 70 03 mov a,$0370+x +08d4: f0 03 beq $08d9 +08d6: 5f cd 09 jmp $09cd +08d9: 3f 87 09 call $0987 +08dc: f4 50 mov a,$50+x +08de: d0 ea bne $08ca +08e0: 2f 39 bra $091b +08e2: 10 09 bpl $08ed +08e4: 68 9e cmp a,#$9e +08e6: b0 05 bcs $08ed +08e8: 3f b3 0d call $0db3 +08eb: 2f dd bra $08ca +08ed: 3f 25 0a call $0a25 +08f0: 3f bf 0d call $0dbf +08f3: 68 ff cmp a,#$ff +08f5: d0 05 bne $08fc +08f7: d5 51 03 mov $0351+x,a +08fa: 2f 15 bra $0911 +08fc: 1c asl a +08fd: d4 a0 mov $a0+x,a +08ff: f5 71 03 mov a,$0371+x +0902: f0 0d beq $0911 +0904: 3f e1 0b call $0be1 +0907: e4 29 mov a,$29 +0909: 35 71 03 and a,$0371+x +090c: 60 clrc +090d: 94 a0 adc a,$a0+x +090f: d4 a0 mov $a0+x,a +0911: e8 00 mov a,#$00 +0913: d5 60 03 mov $0360+x,a +0916: 2f 03 bra $091b +0918: 3f 42 0c call $0c42 +091b: 3d inc x +091c: 3d inc x +091d: 0b 1a asl $1a +091f: f0 03 beq $0924 +0921: 5f 77 08 jmp $0877 +0924: e4 3e mov a,$3e +0926: f0 15 beq $093d +0928: ba 3a movw ya,$3a +092a: 7a 41 addw ya,$41 +092c: da 41 movw $41,ya +092e: ba 3c movw ya,$3c +0930: 7a 43 addw ya,$43 +0932: 6e 3e 06 dbnz $3e,$093b +0935: ba 3e movw ya,$3e +0937: da 41 movw $41,ya +0939: eb 40 mov y,$40 +093b: da 43 movw $43,ya +093d: e4 36 mov a,$36 +093f: f0 0f beq $0950 +0941: ba 38 movw ya,$38 +0943: 7a 34 addw ya,$34 +0945: 8b 36 dec $36 +0947: d0 02 bne $094b +0949: ba 36 movw ya,$36 +094b: da 34 movw $34,ya +094d: 8f ff 1e mov $1e,#$ff +0950: cd 00 mov x,#$00 +0952: 8f 00 49 mov $49,#$00 +0955: 8f 01 1a mov $1a,#$01 +0958: f4 50 mov a,$50+x +095a: f0 05 beq $0961 +095c: c4 49 mov $49,a +095e: 3f 33 0b call $0b33 +0961: 3d inc x +0962: 3d inc x +0963: 0b 1a asl $1a +0965: d0 f1 bne $0958 +0967: e4 35 mov a,$35 +0969: d0 03 bne $096e +096b: 3f f3 07 call $07f3 +096e: e4 49 mov a,$49 +0970: d0 05 bne $0977 +0972: 8f ff 4a mov $4a,#$ff +0975: 2f 0f bra $0986 +0977: 60 clrc +0978: e4 48 mov a,$48 +097a: 84 45 adc a,$45 +097c: c4 48 mov $48,a +097e: 90 06 bcc $0986 +0980: ab 46 inc $46 +0982: d0 02 bne $0986 +0984: ab 47 inc $47 +0986: 6f ret + +0987: 9b 90 dec $90+x ; get current pattern vcmd +0989: d0 3e bne $09c9 +098b: 3f e5 09 call $09e5 ; copy bytes to ram +098e: d4 90 mov $90+x,a +0990: 68 ff cmp a,#$ff ; check for vcmd +0992: f0 41 beq $09d5 +0994: 68 fe cmp a,#$fe +0996: f0 35 beq $09cd +0998: 28 40 and a,#$40 +099a: f0 28 beq $09c4 +099c: f4 51 mov a,$51+x +099e: d0 12 bne $09b2 +09a0: f4 90 mov a,$90+x +09a2: 28 3f and a,#$3f +09a4: d4 51 mov $51+x,a +09a6: f4 70 mov a,$70+x +09a8: d5 50 02 mov $0250+x,a +09ab: f4 71 mov a,$71+x +09ad: d5 51 02 mov $0251+x,a +09b0: 2f d9 bra $098b +09b2: 9b 51 dec $51+x +09b4: d0 02 bne $09b8 +09b6: 2f d3 bra $098b +09b8: f5 50 02 mov a,$0250+x +09bb: d4 70 mov $70+x,a +09bd: f5 51 02 mov a,$0251+x +09c0: d4 71 mov $71+x,a +09c2: 2f c7 bra $098b + +09c4: 3f e5 09 call $09e5 ; pattern vcmd 40-7f - repeat sequence +09c7: d4 91 mov $91+x,a +09c9: 3f ee 09 call $09ee +09cc: 6f ret + +09cd: 3f a6 07 call $07a6 ; pattern vcmd fe - end of channel +09d0: e8 00 mov a,#$00 +09d2: d4 50 mov $50+x,a +09d4: 6f ret + +09d5: 3f e5 09 call $09e5 ; pattern vcmd ff - go to loop +09d8: 60 clrc +09d9: 94 60 adc a,$60+x +09db: d4 70 mov $70+x,a +09dd: f4 61 mov a,$61+x +09df: 88 00 adc a,#$00 +09e1: d4 71 mov $71+x,a +09e3: 2f a6 bra $098b + +09e5: e7 70 mov a,($70+x) ; copy pattern vcmd to ram +09e7: bb 70 inc $70+x +09e9: d0 02 bne $09ed +09eb: bb 71 inc $71+x +09ed: 6f ret + +09ee: f4 91 mov a,$91+x +09f0: 8d 02 mov y,#$02 +09f2: cf mul ya +09f3: da 27 movw $27,ya +09f5: 60 clrc +09f6: 89 06 27 adc ($27),($06) +09f9: 89 07 28 adc ($28),($07) +09fc: 8d 00 mov y,#$00 +09fe: f7 27 mov a,($27)+y +0a00: 2d push a +0a01: fc inc y +0a02: f7 27 mov a,($27)+y +0a04: fd mov y,a +0a05: ae pop a +0a06: da 27 movw $27,ya +0a08: 60 clrc +0a09: 89 08 27 adc ($27),($08) +0a0c: 89 09 28 adc ($28),($09) +0a0f: e4 27 mov a,$27 +0a11: d4 80 mov $80+x,a +0a13: e4 28 mov a,$28 +0a15: d4 81 mov $81+x,a +0a17: e8 ff mov a,#$ff +0a19: d5 61 03 mov $0361+x,a +0a1c: e8 00 mov a,#$00 +0a1e: d5 80 03 mov $0380+x,a +0a21: d5 71 03 mov $0371+x,a +0a24: 6f ret +0a25: f5 80 03 mov a,$0380+x +0a28: f0 08 beq $0a32 +0a2a: 3f e1 0b call $0be1 +0a2d: e4 29 mov a,$29 +0a2f: 35 80 03 and a,$0380+x +0a32: c4 2b mov $2b,a +0a34: dd mov a,y +0a35: 60 clrc +0a36: 95 60 02 adc a,$0260+x +0a39: 60 clrc +0a3a: 95 61 02 adc a,$0261+x +0a3d: 60 clrc +0a3e: 95 70 02 adc a,$0270+x +0a41: 60 clrc +0a42: 84 2b adc a,$2b +0a44: d5 81 02 mov $0281+x,a +0a47: 60 clrc +0a48: f5 a1 02 mov a,$02a1+x +0a4b: 95 71 02 adc a,$0271+x +0a4e: d5 80 02 mov $0280+x,a +0a51: f5 50 03 mov a,$0350+x +0a54: f0 11 beq $0a67 +0a56: 3f e1 0b call $0be1 +0a59: e4 29 mov a,$29 +0a5b: 68 19 cmp a,#$19 +0a5d: 90 05 bcc $0a64 +0a5f: 80 setc +0a60: a8 18 sbc a,#$18 +0a62: 2f f7 bra $0a5b +0a64: 3f ae 0e call $0eae +0a67: f5 e1 02 mov a,$02e1+x +0a6a: 5c lsr a +0a6b: e8 00 mov a,#$00 +0a6d: 7c ror a +0a6e: d5 d0 02 mov $02d0+x,a +0a71: e8 00 mov a,#$00 +0a73: d4 c0 mov $c0+x,a +0a75: d4 a1 mov $a1+x,a +0a77: d5 00 03 mov $0300+x,a +0a7a: d4 e0 mov $e0+x,a +0a7c: f5 90 03 mov a,$0390+x +0a7f: f0 07 beq $0a88 +0a81: 30 0b bmi $0a8e +0a83: e8 ff mov a,#$ff +0a85: d5 90 03 mov $0390+x,a +0a88: 09 1a 1e or ($1e),($1a) +0a8b: 09 1a 2d or ($2d),($1a) +0a8e: f5 b0 02 mov a,$02b0+x +0a91: d4 d0 mov $d0+x,a +0a93: f0 32 beq $0ac7 +0a95: f5 b1 02 mov a,$02b1+x +0a98: d4 d1 mov $d1+x,a +0a9a: f5 c0 02 mov a,$02c0+x +0a9d: d0 0a bne $0aa9 +0a9f: f5 81 02 mov a,$0281+x +0aa2: 80 setc +0aa3: b5 c1 02 sbc a,$02c1+x +0aa6: d5 81 02 mov $0281+x,a +0aa9: f5 c1 02 mov a,$02c1+x +0aac: 60 clrc +0aad: 95 81 02 adc a,$0281+x +0ab0: 28 7f and a,#$7f +0ab2: d5 a0 02 mov $02a0+x,a +0ab5: 80 setc +0ab6: b5 81 02 sbc a,$0281+x +0ab9: fb d0 mov y,$d0+x +0abb: 6d push y +0abc: ce pop x +0abd: 3f 00 0c call $0c00 +0ac0: d5 90 02 mov $0290+x,a +0ac3: dd mov a,y +0ac4: d5 91 02 mov $0291+x,a +0ac7: 3f ef 0b call $0bef +0aca: 4d push x +0acb: e4 24 mov a,$24 +0acd: 1c asl a +0ace: 8d 00 mov y,#$00 +0ad0: cd 18 mov x,#$18 +0ad2: 9e div ya,x +0ad3: 5d mov x,a +0ad4: f6 1a 0b mov a,$0b1a+y +0ad7: c4 26 mov $26,a +0ad9: f6 19 0b mov a,$0b19+y +0adc: c4 25 mov $25,a +0ade: f6 1c 0b mov a,$0b1c+y +0ae1: 2d push a +0ae2: f6 1b 0b mov a,$0b1b+y +0ae5: ee pop y +0ae6: 9a 25 subw ya,$25 +0ae8: eb 23 mov y,$23 +0aea: cf mul ya +0aeb: dd mov a,y +0aec: 8d 00 mov y,#$00 +0aee: 7a 25 addw ya,$25 +0af0: cb 26 mov $26,y +0af2: 1c asl a +0af3: 2b 26 rol $26 +0af5: 1c asl a +0af6: 2b 26 rol $26 +0af8: c4 25 mov $25,a +0afa: 2f 04 bra $0b00 +0afc: 4b 26 lsr $26 +0afe: 7c ror a +0aff: 3d inc x +0b00: c8 08 cmp x,#$08 +0b02: d0 f8 bne $0afc +0b04: c4 25 mov $25,a +0b06: ce pop x +0b07: 7d mov a,x +0b08: 9f xcn a +0b09: 5c lsr a +0b0a: 08 02 or a,#$02 +0b0c: fd mov y,a +0b0d: e4 25 mov a,$25 +0b0f: 3f 41 10 call $1041 +0b12: fc inc y +0b13: e4 26 mov a,$26 +0b15: 3f 41 10 call $1041 +0b18: 6f ret +0b19: 5f 08 de jmp $de08 +0b1c: 08 65 or a,#$65 +0b1e: 09 f4 09 or ($09),($f4) +0b21: 8c 0a 2c dec $2c0a +0b24: 0b d6 asl $d6 +0b26: 0b 8b asl $8b +0b28: 0c 4a 0d asl $0d4a +0b2b: 14 0e or a,$0e+x +0b2d: ea 0e cd not1 $0d0e,6 +0b30: 0f brk +0b31: be das a +0b32: 10 f4 bpl $0b28 +0b34: b0 f0 bcs $0b26 +0b36: 09 e8 20 or ($20),($e8) +0b39: 8d 02 mov y,#$02 +0b3b: 9b b0 dec $b0+x +0b3d: 3f 1e 0c call $0c1e +0b40: fb e1 mov y,$e1+x +0b42: f0 23 beq $0b67 +0b44: f5 10 03 mov a,$0310+x +0b47: de e0 1b cbne $e0+x,$0b65 +0b4a: 09 1a 1e or ($1e),($1a) +0b4d: f5 00 03 mov a,$0300+x +0b50: 10 07 bpl $0b59 +0b52: fc inc y +0b53: d0 04 bne $0b59 +0b55: e8 80 mov a,#$80 +0b57: 2f 04 bra $0b5d +0b59: 60 clrc +0b5a: 95 01 03 adc a,$0301+x +0b5d: d5 00 03 mov $0300+x,a +0b60: 3f 52 0d call $0d52 +0b63: 2f 07 bra $0b6c +0b65: bb e0 inc $e0+x +0b67: e8 ff mov a,#$ff +0b69: 3f 5d 0d call $0d5d +0b6c: f4 b1 mov a,$b1+x +0b6e: f0 09 beq $0b79 +0b70: e8 20 mov a,#$20 +0b72: 8d 03 mov y,#$03 +0b74: 9b b1 dec $b1+x +0b76: 3f 1e 0c call $0c1e +0b79: e4 1a mov a,$1a +0b7b: 24 1e and a,$1e +0b7d: f0 47 beq $0bc6 +0b7f: f5 21 03 mov a,$0321+x +0b82: fd mov y,a +0b83: f5 20 03 mov a,$0320+x +0b86: da 23 movw $23,ya +0b88: 7d mov a,x +0b89: 9f xcn a +0b8a: 5c lsr a +0b8b: bc inc a +0b8c: c4 16 mov $16,a +0b8e: eb 24 mov y,$24 +0b90: f6 c8 0b mov a,$0bc8+y +0b93: 80 setc +0b94: b6 c7 0b sbc a,$0bc7+y +0b97: eb 23 mov y,$23 +0b99: cf mul ya +0b9a: dd mov a,y +0b9b: eb 24 mov y,$24 +0b9d: 60 clrc +0b9e: 96 c7 0b adc a,$0bc7+y +0ba1: fd mov y,a +0ba2: f5 41 02 mov a,$0241+x +0ba5: cf mul ya +0ba6: f5 41 03 mov a,$0341+x +0ba9: 1c asl a +0baa: 13 16 01 bbc0 $16,$0bae +0bad: 1c asl a +0bae: dd mov a,y +0baf: 90 03 bcc $0bb4 +0bb1: 48 ff eor a,#$ff +0bb3: bc inc a +0bb4: eb 16 mov y,$16 +0bb6: 3f 41 10 call $1041 +0bb9: 8d 18 mov y,#$18 +0bbb: e8 00 mov a,#$00 +0bbd: 9a 23 subw ya,$23 +0bbf: da 23 movw $23,ya +0bc1: 8b 16 dec $16 +0bc3: 73 16 c8 bbc3 $16,$0b8e +0bc6: 6f ret + +0bc7: db $00,$05,$0b,$10,$15,$1b,$20,$25,$2b,$30,$35,$3b,$40,$45,$4b,$50,$55,$5b,$60,$65,$6b,$70,$75,$7b,$7f,$7f + +0be1: e4 29 mov a,$29 +0be3: 44 2a eor a,$2a +0be5: 5c lsr a +0be6: 5c lsr a +0be7: ed notc +0be8: 6b 29 ror $29 +0bea: 6b 2a ror $2a +0bec: 8b 29 dec $29 +0bee: 6f ret +0bef: f5 81 02 mov a,$0281+x +0bf2: 68 6c cmp a,#$6c +0bf4: 90 02 bcc $0bf8 +0bf6: e8 6b mov a,#$6b +0bf8: c4 24 mov $24,a +0bfa: f5 80 02 mov a,$0280+x +0bfd: c4 23 mov $23,a +0bff: 6f ret +0c00: ed notc +0c01: 6b 16 ror $16 +0c03: 10 03 bpl $0c08 +0c05: 48 ff eor a,#$ff +0c07: bc inc a +0c08: 8d 00 mov y,#$00 +0c0a: 9e div ya,x +0c0b: 2d push a +0c0c: e8 00 mov a,#$00 +0c0e: 9e div ya,x +0c0f: ee pop y +0c10: f8 1b mov x,$1b +0c12: f3 16 08 bbc7 $16,$0c1d +0c15: da 25 movw $25,ya +0c17: e8 00 mov a,#$00 +0c19: 8d 00 mov y,#$00 +0c1b: 9a 25 subw ya,$25 +0c1d: 6f ret +0c1e: 09 1a 1e or ($1e),($1a) +0c21: da 25 movw $25,ya +0c23: da 27 movw $27,ya +0c25: 4d push x +0c26: ee pop y +0c27: 60 clrc +0c28: d0 0a bne $0c34 +0c2a: 98 1f 27 adc $27,#$1f +0c2d: e8 00 mov a,#$00 +0c2f: d7 25 mov ($25)+y,a +0c31: fc inc y +0c32: 2f 09 bra $0c3d +0c34: 98 10 27 adc $27,#$10 +0c37: 3f 3b 0c call $0c3b +0c3a: fc inc y +0c3b: f7 25 mov a,($25)+y +0c3d: 97 27 adc a,($27)+y +0c3f: d7 25 mov ($25)+y,a +0c41: 6f ret +0c42: f5 51 03 mov a,$0351+x +0c45: d0 18 bne $0c5f +0c47: f5 90 03 mov a,$0390+x +0c4a: d0 13 bne $0c5f +0c4c: f5 60 03 mov a,$0360+x +0c4f: 75 61 03 cmp a,$0361+x +0c52: f0 06 beq $0c5a +0c54: e8 01 mov a,#$01 +0c56: 74 a0 cmp a,$a0+x +0c58: d0 05 bne $0c5f +0c5a: e4 1a mov a,$1a +0c5c: 0e 2e 00 tset1 $002e +0c5f: f2 17 clr7 $17 +0c61: f4 d0 mov a,$d0+x +0c63: f0 13 beq $0c78 +0c65: f4 d1 mov a,$d1+x +0c67: f0 04 beq $0c6d +0c69: 9b d1 dec $d1+x +0c6b: 2f 0b bra $0c78 +0c6d: e2 17 set7 $17 +0c6f: e8 80 mov a,#$80 +0c71: 8d 02 mov y,#$02 +0c73: 9b d0 dec $d0+x +0c75: 3f 21 0c call $0c21 +0c78: 3f ef 0b call $0bef +0c7b: f4 c1 mov a,$c1+x +0c7d: f0 49 beq $0cc8 +0c7f: f5 e0 02 mov a,$02e0+x +0c82: de c0 41 cbne $c0+x,$0cc6 +0c85: f4 a1 mov a,$a1+x +0c87: 75 e1 02 cmp a,$02e1+x +0c8a: d0 05 bne $0c91 +0c8c: f5 f1 02 mov a,$02f1+x +0c8f: 2f 0b bra $0c9c +0c91: bb a1 inc $a1+x +0c93: fd mov y,a +0c94: f0 02 beq $0c98 +0c96: f4 c1 mov a,$c1+x +0c98: 60 clrc +0c99: 95 f0 02 adc a,$02f0+x +0c9c: d4 c1 mov $c1+x,a +0c9e: f5 d0 02 mov a,$02d0+x +0ca1: 60 clrc +0ca2: 95 d1 02 adc a,$02d1+x +0ca5: d5 d0 02 mov $02d0+x,a +0ca8: c4 16 mov $16,a +0caa: 1c asl a +0cab: 1c asl a +0cac: 90 02 bcc $0cb0 +0cae: 48 ff eor a,#$ff +0cb0: fd mov y,a +0cb1: f4 c1 mov a,$c1+x +0cb3: 68 f1 cmp a,#$f1 +0cb5: 90 05 bcc $0cbc +0cb7: 28 0f and a,#$0f +0cb9: cf mul ya +0cba: 2f 04 bra $0cc0 +0cbc: cf mul ya +0cbd: dd mov a,y +0cbe: 8d 00 mov y,#$00 +0cc0: 3f 3d 0d call $0d3d +0cc3: 5f ca 0a jmp $0aca +0cc6: bb c0 inc $c0+x +0cc8: e3 17 f8 bbs7 $17,$0cc3 +0ccb: 6f ret +0ccc: f2 17 clr7 $17 +0cce: f4 e1 mov a,$e1+x +0cd0: f0 09 beq $0cdb +0cd2: f5 10 03 mov a,$0310+x +0cd5: de e0 03 cbne $e0+x,$0cdb +0cd8: 3f 45 0d call $0d45 +0cdb: f5 21 03 mov a,$0321+x +0cde: fd mov y,a +0cdf: f5 20 03 mov a,$0320+x +0ce2: da 23 movw $23,ya +0ce4: f4 b1 mov a,$b1+x +0ce6: f0 0a beq $0cf2 +0ce8: f5 31 03 mov a,$0331+x +0ceb: fd mov y,a +0cec: f5 30 03 mov a,$0330+x +0cef: 3f 27 0d call $0d27 +0cf2: f3 17 03 bbc7 $17,$0cf8 +0cf5: 3f 88 0b call $0b88 +0cf8: f2 17 clr7 $17 +0cfa: 3f ef 0b call $0bef +0cfd: f4 d0 mov a,$d0+x +0cff: f0 0e beq $0d0f +0d01: f4 d1 mov a,$d1+x +0d03: d0 0a bne $0d0f +0d05: f5 91 02 mov a,$0291+x +0d08: fd mov y,a +0d09: f5 90 02 mov a,$0290+x +0d0c: 3f 27 0d call $0d27 +0d0f: f4 c1 mov a,$c1+x +0d11: f0 b5 beq $0cc8 +0d13: f5 e0 02 mov a,$02e0+x +0d16: de c0 af cbne $c0+x,$0cc8 +0d19: eb 22 mov y,$22 +0d1b: f5 d1 02 mov a,$02d1+x +0d1e: cf mul ya +0d1f: dd mov a,y +0d20: 60 clrc +0d21: 95 d0 02 adc a,$02d0+x +0d24: 5f a8 0c jmp $0ca8 +0d27: e2 17 set7 $17 +0d29: cb 16 mov $16,y +0d2b: 3f 12 0c call $0c12 +0d2e: 6d push y +0d2f: eb 22 mov y,$22 +0d31: cf mul ya +0d32: cb 25 mov $25,y +0d34: 8f 00 26 mov $26,#$00 +0d37: eb 22 mov y,$22 +0d39: ae pop a +0d3a: cf mul ya +0d3b: 7a 25 addw ya,$25 +0d3d: 3f 12 0c call $0c12 +0d40: 7a 23 addw ya,$23 +0d42: da 23 movw $23,ya +0d44: 6f ret +0d45: e2 17 set7 $17 +0d47: eb 22 mov y,$22 +0d49: f5 01 03 mov a,$0301+x +0d4c: cf mul ya +0d4d: dd mov a,y +0d4e: 60 clrc +0d4f: 95 00 03 adc a,$0300+x +0d52: 1c asl a +0d53: 90 02 bcc $0d57 +0d55: 48 ff eor a,#$ff +0d57: fb e1 mov y,$e1+x +0d59: cf mul ya +0d5a: dd mov a,y +0d5b: 48 ff eor a,#$ff +0d5d: eb 35 mov y,$35 +0d5f: cf mul ya +0d60: f5 10 02 mov a,$0210+x +0d63: cf mul ya +0d64: f5 21 02 mov a,$0221+x +0d67: cf mul ya +0d68: f5 91 03 mov a,$0391+x +0d6b: cf mul ya +0d6c: f5 a0 03 mov a,$03a0+x +0d6f: cf mul ya +0d70: dd mov a,y +0d71: cf mul ya +0d72: dd mov a,y +0d73: d5 41 02 mov $0241+x,a +0d76: 6f ret + +; vcmd table (80-9d) +0d77: dw $0dd2 ; 80 - set instrument/sample +0d79: dw $0e60 ; 81 - rest +0d7b: dw $0e6d ; 82 - set tempo +0d7d: dw $0e71 ; 83 - set tempo (multiple channels) +0d7f: dw $0e94 ; 84 - set channel gain +0d81: dw $0ea3 ; 85 - set release +0d83: dw $0ea8 ; 86 - set attack +0d85: dw $0ec2 ; 87 - set panpot? +0d87: dw $0ede ; 88 - set pan +0d89: dw $0ee2 ; 89 - set detune +0d8b: dw $0ee6 ; 8a - set channel transpose +0d8d: dw $0eea ; 8b - set channel transpose (multiple channels) +0d8f: dw $0f0d ; 8c - set channel volume (absolute) +0d91: dw $0f16 ; 8d - (2 bytes) +0d93: dw $0f25 ; 8e - clear 8d value +0d95: dw $0f28 ; 8f - (2 bytes) +0d97: dw $0f3f ; 90 +0d99: dw $0f4f ; 91 - clear 90 value +0d9a: dw $0f5a ; 92 - pitch bend (multiple channels) +0d9c: dw $0f5e ; 93 - pitch bend +0d9f: dw $0f74 ; 94 - disable pitch bend +0da1: dw $0f78 ; 95 - set echo volume +0da3: dw $0faa ; 96 - set echo delay +0da5: dw $0fbd ; 97 - disable echo +0da7: dw $0fc4 ; 98 - (2 bytes) +0da9: dw $0fe5 ; 99 - (2 bytes) +0dab: dw $1001 ; 9a - (multiple channels) +0dad: dw $1016 ; 9b - set vibrato +0daf: dw $101a ; 9c - set delay +0db1: dw $101e ; 9d - set channel volume (multiple channels) + +0db3: 1c asl a ; dispatch vcmd (80-9d) +0db4: fd mov y,a +0db5: fc inc y +0db6: f6 77 0d mov a,$0d77+y +0db9: 2d push a +0dba: dc dec y +0dbb: f6 77 0d mov a,$0d77+y +0dbe: 2d push a + +0dbf: e7 80 mov a,($80+x) ; update/increment sequence pointer +0dc1: bb 80 inc $80+x +0dc3: d0 02 bne $0dc7 +0dc5: bb 81 inc $81+x +0dc7: fd mov y,a +0dc8: 6f ret + +0dc9: e7 80 mov a,($80+x) +0dcb: bb 80 inc $80+x +0dcd: d0 02 bne $0dd1 +0dcf: bb 81 inc $81+x +0dd1: 6f ret + +0dd2: 75 11 02 cmp a,$0211+x ; vcmd 80 - set instrument/sample +0dd5: d0 01 bne $0dd8 +0dd7: 6f ret +0dd8: d5 11 02 mov $0211+x,a +0ddb: 8d 10 mov y,#$10 +0ddd: cf mul ya +0dde: da 2b movw $2b,ya +0de0: 60 clrc +0de1: 89 04 2b adc ($2b),($04) +0de4: 89 05 2c adc ($2c),($05) +0de7: e4 1a mov a,$1a +0de9: 4e 30 00 tclr1 $0030 +0dec: 8d 00 mov y,#$00 +0dee: f7 2b mov a,($2b)+y +0df0: 08 80 or a,#$80 +0df2: c4 12 mov $12,a +0df4: fc inc y +0df5: f7 2b mov a,($2b)+y +0df7: c4 13 mov $13,a +0df9: fc inc y +0dfa: f7 2b mov a,($2b)+y +0dfc: d5 10 02 mov $0210+x,a +0dff: fc inc y +0e00: f7 2b mov a,($2b)+y +0e02: 68 80 cmp a,#$80 +0e04: 90 0d bcc $0e13 +0e06: 28 1f and a,#$1f +0e08: 38 20 2f and $2f,#$20 +0e0b: 0e 2f 00 tset1 $002f +0e0e: 09 1a 30 or ($30),($1a) +0e11: e8 00 mov a,#$00 +0e13: c4 14 mov $14,a +0e15: fc inc y +0e16: f7 2b mov a,($2b)+y +0e18: d5 70 02 mov $0270+x,a +0e1b: fc inc y +0e1c: f7 2b mov a,($2b)+y +0e1e: d5 71 02 mov $0271+x,a +0e21: 8d 0d mov y,#$0d +0e23: f7 2b mov a,($2b)+y +0e25: d5 d1 02 mov $02d1+x,a +0e28: fc inc y +0e29: f7 2b mov a,($2b)+y +0e2b: d4 c1 mov $c1+x,a +0e2d: d5 f1 02 mov $02f1+x,a +0e30: fc inc y +0e31: f7 2b mov a,($2b)+y +0e33: d5 e0 02 mov $02e0+x,a +0e36: e8 00 mov a,#$00 +0e38: d5 e1 02 mov $02e1+x,a +0e3b: d5 90 03 mov $0390+x,a +0e3e: 7d mov a,x +0e3f: 9f xcn a +0e40: 5c lsr a +0e41: 08 04 or a,#$04 +0e43: fd mov y,a +0e44: e4 14 mov a,$14 +0e46: cb f2 mov $f2,y +0e48: c4 f3 mov $f3,a +0e4a: fc inc y +0e4b: e4 12 mov a,$12 +0e4d: cb f2 mov $f2,y +0e4f: c4 f3 mov $f3,a +0e51: fc inc y +0e52: e4 13 mov a,$13 +0e54: cb f2 mov $f2,y +0e56: c4 f3 mov $f3,a +0e58: fc inc y +0e59: e8 00 mov a,#$00 +0e5b: cb f2 mov $f2,y +0e5d: c4 f3 mov $f3,a +0e5f: 6f ret + +0e60: 1c asl a ; vcmd 81 - rest +0e61: d4 a0 mov $a0+x,a +0e63: e4 1a mov a,$1a +0e65: 0e 2e 00 tset1 $002e +0e68: ae pop a +0e69: ae pop a +0e6a: 5f 1b 09 jmp $091b + +0e6d: d5 00 02 mov $0200+x,a ; vcmd 82 - set tempo +0e70: 6f ret + +0e71: c4 1f mov $1f,a ; vcmd 83 - set tempo (multiple channels) +0e73: 3f bf 0d call $0dbf +0e76: c4 45 mov $45,a +0e78: 4d push x +0e79: cd 00 mov x,#$00 +0e7b: 8f 01 20 mov $20,#$01 +0e7e: e4 1f mov a,$1f +0e80: 24 20 and a,$20 +0e82: f0 05 beq $0e89 +0e84: e4 45 mov a,$45 +0e86: d5 00 02 mov $0200+x,a +0e89: 3d inc x +0e8a: 3d inc x +0e8b: 0b 20 asl $20 +0e8d: d0 ef bne $0e7e +0e8f: ce pop x +0e90: 3f bf 0d call $0dbf +0e93: 6f ret + +0e94: 28 01 and a,#$01 ; vcmd 84 - set channel gain +0e96: f0 07 beq $0e9f +0e98: f5 90 03 mov a,$0390+x +0e9b: 30 05 bmi $0ea2 +0e9d: e8 01 mov a,#$01 +0e9f: d5 90 03 mov $0390+x,a +0ea2: 6f ret + +0ea3: 1c asl a ; vcmd 85 - set release +0ea4: d5 61 03 mov $0361+x,a +0ea7: 6f ret + +0ea8: e8 00 mov a,#$00 ; vcmd 86 - set attack +0eaa: d5 50 03 mov $0350+x,a +0ead: dd mov a,y +0eae: d5 41 03 mov $0341+x,a +0eb1: 28 1f and a,#$1f +0eb3: 68 19 cmp a,#$19 +0eb5: 90 02 bcc $0eb9 +0eb7: e8 18 mov a,#$18 +0eb9: d5 21 03 mov $0321+x,a +0ebc: e8 00 mov a,#$00 +0ebe: d5 20 03 mov $0320+x,a +0ec1: 6f ret + +0ec2: d4 b1 mov $b1+x,a ; vcmd 87 - set panpot? +0ec4: 2d push a +0ec5: 3f bf 0d call $0dbf +0ec8: d5 40 03 mov $0340+x,a +0ecb: 80 setc +0ecc: b5 21 03 sbc a,$0321+x +0ecf: ce pop x +0ed0: 3f 00 0c call $0c00 +0ed3: d5 30 03 mov $0330+x,a +0ed6: dd mov a,y +0ed7: d5 31 03 mov $0331+x,a +0eda: 3f bf 0d call $0dbf +0edd: 6f ret + +0ede: d5 50 03 mov $0350+x,a ; vcmd 88 - set pan +0ee1: 6f ret + +0ee2: d5 a1 02 mov $02a1+x,a ; vcmd 89 - set detune +0ee5: 6f ret + +0ee6: d5 61 02 mov $0261+x,a ; vcmd 8a - set channel transpose +0ee9: 6f ret + +0eea: c4 1f mov $1f,a ; vcmd 8b - set channel transpose (multiple channels) +0eec: 3f bf 0d call $0dbf +0eef: c4 21 mov $21,a +0ef1: 4d push x +0ef2: cd 00 mov x,#$00 +0ef4: 8f 01 20 mov $20,#$01 +0ef7: e4 1f mov a,$1f +0ef9: 24 20 and a,$20 +0efb: f0 05 beq $0f02 +0efd: e4 21 mov a,$21 +0eff: d5 60 02 mov $0260+x,a +0f02: 3d inc x +0f03: 3d inc x +0f04: 0b 20 asl $20 +0f06: d0 ef bne $0ef7 +0f08: ce pop x +0f09: 3f bf 0d call $0dbf +0f0c: 6f ret + +0f0d: d5 21 02 mov $0221+x,a ; vcmd 8c - set channel volume (absolute) +0f10: e8 00 mov a,#$00 +0f12: d5 20 02 mov $0220+x,a +0f15: 6f ret + +0f16: d5 01 03 mov $0301+x,a ; vcmd 8d - (2 bytes) +0f19: 3f bf 0d call $0dbf +0f1c: d4 e1 mov $e1+x,a +0f1e: 3f bf 0d call $0dbf +0f21: d5 10 03 mov $0310+x,a +0f24: 6f ret + +0f25: d4 e1 mov $e1+x,a ; vcmd 8e - clear 8d value +0f27: 6f ret + +0f28: d5 d1 02 mov $02d1+x,a ; vcmd 8f - (2 bytes) +0f2b: 3f bf 0d call $0dbf +0f2e: d4 c1 mov $c1+x,a +0f30: d5 f1 02 mov $02f1+x,a +0f33: 3f bf 0d call $0dbf +0f36: d5 e0 02 mov $02e0+x,a +0f39: e8 00 mov a,#$00 +0f3b: d5 e1 02 mov $02e1+x,a +0f3e: 6f ret + +0f3f: d5 e1 02 mov $02e1+x,a ; vcmd 90 +0f42: 2d push a +0f43: 8d 00 mov y,#$00 +0f45: f4 c1 mov a,$c1+x +0f47: ce pop x +0f48: 9e div ya,x +0f49: f8 1b mov x,$1b +0f4b: d5 f0 02 mov $02f0+x,a +0f4e: 6f ret + +0f4f: d4 c1 mov $c1+x,a ; vcmd 91 - clear 90 value +0f51: d5 f1 02 mov $02f1+x,a +0f54: e8 00 mov a,#$00 +0f56: d5 e1 02 mov $02e1+x,a +0f59: 6f ret + +0f5a: e8 01 mov a,#$01 ; vcmd 92 - pitch bend (multiple channels) +0f5c: 2f 02 bra $0f60 +0f5e: e8 00 mov a,#$00 ; vcmd 93 +0f60: d5 c0 02 mov $02c0+x,a +0f63: dd mov a,y +0f64: d5 b0 02 mov $02b0+x,a +0f67: 3f bf 0d call $0dbf +0f6a: d5 c1 02 mov $02c1+x,a +0f6d: 3f bf 0d call $0dbf +0f70: d5 b1 02 mov $02b1+x,a +0f73: 6f ret + +0f74: d5 b0 02 mov $02b0+x,a ; vcmd 94 - disable pitch bend +0f77: 6f ret + +0f78: 3f 28 08 call $0828 ; vcmd 95 - set echo volume +0f7b: 3f bf 0d call $0dbf +0f7e: 8d 08 mov y,#$08 +0f80: cf mul ya +0f81: 5d mov x,a +0f82: 8d 0f mov y,#$0f +0f84: f5 9a 0f mov a,$0f9a+x +0f87: 3f 41 10 call $1041 +0f8a: 3d inc x +0f8b: dd mov a,y +0f8c: 60 clrc +0f8d: 88 10 adc a,#$10 +0f8f: fd mov y,a +0f90: 10 f2 bpl $0f84 +0f92: f8 1b mov x,$1b +0f94: 3f bf 0d call $0dbf +0f97: c4 33 mov $33,a +0f99: 6f ret + +0f9a: db $7f,$00,$00,$00,$00,$00,$00,$00,$ff,$08,$17,$24,$24,$17,$08,$ff + +0faa: c4 31 mov $31,a ; vcmd 96 - set echo delay +0fac: 3f bf 0d call $0dbf +0faf: e8 00 mov a,#$00 +0fb1: da 41 movw $41,ya +0fb3: 3f bf 0d call $0dbf +0fb6: e8 00 mov a,#$00 +0fb8: da 43 movw $43,ya +0fba: b2 2f clr5 $2f +0fbc: 6f ret + +0fbd: da 41 movw $41,ya ; vcmd 97 - disable echo +0fbf: da 43 movw $43,ya +0fc1: a2 2f set5 $2f +0fc3: 6f ret + +0fc4: c4 3e mov $3e,a ; vcmd 98 - (2 bytes) +0fc6: 3f bf 0d call $0dbf +0fc9: c4 3f mov $3f,a +0fcb: 80 setc +0fcc: a4 42 sbc a,$42 +0fce: f8 3e mov x,$3e +0fd0: 3f 00 0c call $0c00 +0fd3: da 3a movw $3a,ya +0fd5: 3f bf 0d call $0dbf +0fd8: c4 40 mov $40,a +0fda: 80 setc +0fdb: a4 44 sbc a,$44 +0fdd: f8 3e mov x,$3e +0fdf: 3f 00 0c call $0c00 +0fe2: da 3c movw $3c,ya +0fe4: 6f ret + +0fe5: d4 b0 mov $b0+x,a ; vcmd 99 - (2 bytes) +0fe7: 2d push a +0fe8: 3f bf 0d call $0dbf +0feb: d5 40 02 mov $0240+x,a +0fee: 80 setc +0fef: b5 21 02 sbc a,$0221+x +0ff2: ce pop x +0ff3: 3f 00 0c call $0c00 +0ff6: d5 30 02 mov $0230+x,a +0ff9: dd mov a,y +0ffa: d5 31 02 mov $0231+x,a +0ffd: 3f bf 0d call $0dbf +1000: 6f ret + +1001: c4 36 mov $36,a ; vcmd 9a - (multiple channels) +1003: 3f bf 0d call $0dbf +1006: c4 37 mov $37,a +1008: 80 setc +1009: a4 35 sbc a,$35 +100b: f8 36 mov x,$36 +100d: 3f 00 0c call $0c00 +1010: da 38 movw $38,ya +1012: 3f bf 0d call $0dbf +1015: 6f ret + +1016: d5 80 03 mov $0380+x,a ; vcmd 9b - set vibrato +1019: 6f ret + +101a: d5 71 03 mov $0371+x,a ; vcmd 9c - set delay +101d: 6f ret + +101e: c4 1f mov $1f,a ; vcmd 9d - set channel volume (multiple channels) +1020: 3f bf 0d call $0dbf ; update pointer +1023: c4 21 mov $21,a +1025: 4d push x +1026: cd 00 mov x,#$00 +1028: 8f 01 20 mov $20,#$01 +102b: e4 1f mov a,$1f +102d: 24 20 and a,$20 +102f: f0 05 beq $1036 +1031: e4 21 mov a,$21 +1033: d5 91 03 mov $0391+x,a +1036: 3d inc x +1037: 3d inc x +1038: 0b 20 asl $20 +103a: d0 ef bne $102b +103c: ce pop x +103d: 3f bf 0d call $0dbf +1040: 6f ret + +1041: cc f2 00 mov $00f2,y ; set dsp register address +1044: c5 f3 00 mov $00f3,a ; set dsp register data +1047: 6f ret + +1048: 8f 00 10 mov $10,#$00 +104b: e5 0c 12 mov a,$120c +104e: ec 0d 12 mov y,$120d +1051: da 25 movw $25,ya +1053: 3f 61 10 call $1061 +1056: 8f 40 10 mov $10,#$40 +1059: e5 0e 12 mov a,$120e +105c: ec 0f 12 mov y,$120f +105f: da 25 movw $25,ya +1061: 8f 3f 11 mov $11,#$3f +1064: e4 11 mov a,$11 +1066: 1c asl a +1067: fd mov y,a +1068: f7 25 mov a,($25)+y +106a: c4 27 mov $27,a +106c: fc inc y +106d: f7 25 mov a,($25)+y +106f: c4 28 mov $28,a +1071: e4 11 mov a,$11 +1073: 60 clrc +1074: 84 10 adc a,$10 +1076: 8d 04 mov y,#$04 +1078: cf mul ya +1079: da 2b movw $2b,ya +107b: 60 clrc +107c: 98 04 2c adc $2c,#$04 +107f: e4 27 mov a,$27 +1081: 60 clrc +1082: 88 02 adc a,#$02 +1084: 8d 00 mov y,#$00 +1086: d7 2b mov ($2b)+y,a +1088: fc inc y +1089: e4 28 mov a,$28 +108b: 88 00 adc a,#$00 +108d: d7 2b mov ($2b)+y,a +108f: dc dec y +1090: f7 27 mov a,($27)+y +1092: 60 clrc +1093: 97 2b adc a,($2b)+y +1095: 8d 02 mov y,#$02 +1097: d7 2b mov ($2b)+y,a +1099: dc dec y +109a: f7 27 mov a,($27)+y +109c: 97 2b adc a,($2b)+y +109e: 8d 03 mov y,#$03 +10a0: d7 2b mov ($2b)+y,a +10a2: 8b 11 dec $11 +10a4: 10 be bpl $1064 +10a6: 6f ret +10a7: 8f 00 25 mov $25,#$00 +10aa: 8f 12 26 mov $26,#$12 +10ad: 60 clrc +10ae: e4 25 mov a,$25 +10b0: 88 10 adc a,#$10 +10b2: c4 27 mov $27,a +10b4: e4 26 mov a,$26 +10b6: 88 00 adc a,#$00 +10b8: c4 28 mov $28,a +10ba: ba 27 movw ya,$27 +10bc: da 04 movw $04,ya +10be: 8d 00 mov y,#$00 +10c0: 3f e2 10 call $10e2 +10c3: da 06 movw $06,ya +10c5: 8d 02 mov y,#$02 +10c7: 3f e2 10 call $10e2 +10ca: da 08 movw $08,ya +10cc: 8d 04 mov y,#$04 +10ce: 3f e2 10 call $10e2 +10d1: da 0a movw $0a,ya +10d3: 8d 06 mov y,#$06 +10d5: 3f e2 10 call $10e2 +10d8: da 0c movw $0c,ya +10da: 8d 08 mov y,#$08 +10dc: 3f e2 10 call $10e2 +10df: da 0e movw $0e,ya +10e1: 6f ret +10e2: f7 25 mov a,($25)+y +10e4: 2d push a +10e5: fc inc y +10e6: f7 25 mov a,($25)+y +10e8: fd mov y,a +10e9: ae pop a +10ea: 7a 27 addw ya,$27 +10ec: da 27 movw $27,ya +10ee: 6f ret +10ef: e4 f7 mov a,$f7 +10f1: 64 01 cmp a,$01 +10f3: d0 01 bne $10f6 +10f5: 6f ret +10f6: c4 01 mov $01,a +10f8: e4 f4 mov a,$f4 +10fa: c4 f4 mov $f4,a +10fc: 68 60 cmp a,#$60 +10fe: 90 20 bcc $1120 +1100: 68 80 cmp a,#$80 +1102: f0 29 beq $112d +1104: 68 81 cmp a,#$81 +1106: f0 2a beq $1132 +1108: 68 82 cmp a,#$82 +110a: f0 38 beq $1144 +110c: 68 83 cmp a,#$83 +110e: f0 43 beq $1153 +1110: 68 84 cmp a,#$84 +1112: f0 54 beq $1168 +1114: 68 85 cmp a,#$85 +1116: d0 03 bne $111b +1118: 5f a3 11 jmp $11a3 +111b: e8 ff mov a,#$ff +111d: c4 f4 mov $f4,a +111f: 6f ret +1120: c4 00 mov $00,a +1122: fa f5 02 mov ($02),($f5) +1125: 8d ff mov y,#$ff +1127: e8 00 mov a,#$00 +1129: da 34 movw $34,ya +112b: 2f ee bra $111b +112d: 3f f3 07 call $07f3 +1130: 2f e9 bra $111b +1132: 8f 60 36 mov $36,#$60 +1135: 8f 00 37 mov $37,#$00 +1138: 80 setc +1139: a4 35 sbc a,$35 +113b: f8 36 mov x,$36 +113d: 3f 00 0c call $0c00 +1140: da 38 movw $38,ya +1142: 2f d7 bra $111b +1144: e8 00 mov a,#$00 +1146: 3f 28 08 call $0828 +1149: e8 ff mov a,#$ff +114b: 8d 6c mov y,#$6c +114d: 3f 41 10 call $1041 +1150: 5f c0 ff jmp $ffc0 +1153: fa f5 25 mov ($25),($f5) +1156: fa f6 26 mov ($26),($f6) +1159: 8f 00 f4 mov $f4,#$00 +115c: e4 f4 mov a,$f4 +115e: d0 fc bne $115c +1160: e4 f5 mov a,$f5 +1162: 8d 00 mov y,#$00 +1164: d7 25 mov ($25)+y,a +1166: 2f b3 bra $111b +1168: cd 00 mov x,#$00 +116a: 8d 00 mov y,#$00 +116c: f5 60 03 mov a,$0360+x +116f: 3f bc 11 call $11bc +1172: f4 91 mov a,$91+x +1174: 3f bc 11 call $11bc +1177: f5 11 02 mov a,$0211+x +117a: 3f bc 11 call $11bc +117d: f5 81 02 mov a,$0281+x +1180: 3f bc 11 call $11bc +1183: f5 61 03 mov a,$0361+x +1186: 3f bc 11 call $11bc +1189: f5 21 02 mov a,$0221+x +118c: 3f bc 11 call $11bc +118f: f5 41 03 mov a,$0341+x +1192: 3f bc 11 call $11bc +1195: 3d inc x +1196: 3d inc x +1197: c8 10 cmp x,#$10 +1199: 90 d1 bcc $116c +119b: e4 45 mov a,$45 +119d: 3f bc 11 call $11bc +11a0: 5f 1b 11 jmp $111b +11a3: 8d 00 mov y,#$00 +11a5: fa 46 25 mov ($25),($46) +11a8: fa 47 26 mov ($26),($47) +11ab: 4b 26 lsr $26 +11ad: 6b 25 ror $25 +11af: e4 25 mov a,$25 +11b1: 3f bc 11 call $11bc +11b4: e4 26 mov a,$26 +11b6: 3f bc 11 call $11bc +11b9: 5f 1b 11 jmp $111b +11bc: c4 f5 mov $f5,a +11be: cb f4 mov $f4,y +11c0: 7e f4 cmp y,$f4 +11c2: d0 fc bne $11c0 +11c4: fc inc y +11c5: 6f ret diff --git a/snes/NSPC/Advance Communication/Super Godzilla ($0800).bin b/snes/NSPC/Advance Communication/Super Godzilla ($0800).bin new file mode 100644 index 00000000..057b31ea Binary files /dev/null and b/snes/NSPC/Advance Communication/Super Godzilla ($0800).bin differ diff --git a/snes/NSPC/Advance Communication/Super Godzilla.s b/snes/NSPC/Advance Communication/Super Godzilla.s new file mode 100644 index 00000000..ebae8917 --- /dev/null +++ b/snes/NSPC/Advance Communication/Super Godzilla.s @@ -0,0 +1,2496 @@ +0800: 20 clrp +0801: cd cf mov x,#$cf +0803: bd mov sp,x +0804: e8 00 mov a,#$00 +0806: 5d mov x,a +0807: af mov (x)+,a +0808: c8 e0 cmp x,#$e0 +080a: d0 fb bne $0807 +080c: 5d mov x,a +080d: d5 00 01 mov $0100+x,a +0810: 3d inc x +0811: c8 10 cmp x,#$10 +0813: d0 f8 bne $080d +0815: 5d mov x,a +0816: d5 00 02 mov $0200+x,a +0819: d5 00 03 mov $0300+x,a +081c: d5 00 04 mov $0400+x,a +081f: d5 00 05 mov $0500+x,a +0822: d5 00 06 mov $0600+x,a +0825: 3d inc x +0826: d0 ee bne $0816 +0828: bc inc a +0829: 3f 3d 0e call $0e3d +082c: a2 48 set5 $48 +082e: e8 7f mov a,#$7f +0830: 3f 05 12 call $1205 +0833: e8 22 mov a,#$22 +0835: 8d 5d mov y,#$5d +0837: 3f 28 0a call $0a28 +083a: e8 00 mov a,#$00 +083c: c5 00 06 mov $0600,a +083f: e8 24 mov a,#$24 +0841: c5 01 06 mov $0601,a +0844: e8 f0 mov a,#$f0 +0846: c5 f1 00 mov $00f1,a +0849: e8 10 mov a,#$10 +084b: c5 fa 00 mov $00fa,a +084e: c4 53 mov $53,a +0850: e8 01 mov a,#$01 +0852: c5 f1 00 mov $00f1,a +0855: 3f 04 14 call $1404 +0858: 3f d2 13 call $13d2 +085b: 3f a0 08 call $08a0 +085e: 3f 04 14 call $1404 +0861: ec fd 00 mov y,$00fd +0864: f0 fb beq $0861 +0866: 6d push y +0867: e8 20 mov a,#$20 +0869: cf mul ya +086a: 60 clrc +086b: 84 43 adc a,$43 +086d: c4 43 mov $43,a +086f: 90 0a bcc $087b +0871: 69 4d 4c cmp ($4c),($4d) +0874: f0 02 beq $0878 +0876: ab 4c inc $4c +0878: 3f 9c 15 call $159c +087b: 3f 04 14 call $1404 +087e: e4 53 mov a,$53 +0880: ee pop y +0881: cf mul ya +0882: 60 clrc +0883: 84 51 adc a,$51 +0885: c4 51 mov $51,a +0887: 90 0d bcc $0896 +0889: 3f 81 0a call $0a81 +088c: e4 07 mov a,$07 +088e: d0 c5 bne $0855 +0890: 3f e2 08 call $08e2 +0893: 5f 55 08 jmp $0855 + +0896: e4 07 mov a,$07 +0898: d0 bb bne $0855 +089a: 3f cb 08 call $08cb +089d: 5f 55 08 jmp $0855 + +08a0: e4 07 mov a,$07 +08a2: f0 04 beq $08a8 +08a4: b2 45 clr5 $45 +08a6: b2 46 clr5 $46 +08a8: 8d 0a mov y,#$0a +08aa: ad 05 cmp y,#$05 +08ac: f0 07 beq $08b5 +08ae: b0 08 bcs $08b8 +08b0: 69 4d 4c cmp ($4c),($4d) +08b3: d0 0f bne $08c4 +08b5: e3 4c 0c bbs7 $4c,$08c4 +08b8: f6 a3 13 mov a,$13a3+y +08bb: c4 f2 mov $f2,a +08bd: f6 ad 13 mov a,$13ad+y +08c0: 5d mov x,a +08c1: e6 mov a,(x) +08c2: c4 f3 mov $f3,a +08c4: fe e4 dbnz y,$08aa +08c6: cb 45 mov $45,y +08c8: cb 46 mov $46,y +08ca: 6f ret + +08cb: e4 04 mov a,$04 +08cd: f0 12 beq $08e1 +08cf: cd 00 mov x,#$00 +08d1: 8f 01 47 mov $47,#$01 +08d4: f4 31 mov a,$31+x +08d6: f0 03 beq $08db +08d8: 3f 13 11 call $1113 +08db: 3d inc x +08dc: 3d inc x +08dd: 0b 47 asl $47 +08df: d0 f3 bne $08d4 +08e1: 6f ret + +08e2: e4 04 mov a,$04 +08e4: c4 f4 mov $f4,a +08e6: e4 f4 mov a,$f4 +08e8: 64 f4 cmp a,$f4 +08ea: d0 fa bne $08e6 +08ec: 68 10 cmp a,#$10 +08ee: 90 04 bcc $08f4 +08f0: 68 e0 cmp a,#$e0 +08f2: 90 02 bcc $08f6 +08f4: c4 00 mov $00,a +08f6: 6f ret + +08f7: ad ca cmp y,#$ca +08f9: 90 05 bcc $0900 +08fb: 3f 74 0c call $0c74 +08fe: 8d a4 mov y,#$a4 +0900: ad c8 cmp y,#$c8 +0902: b0 f2 bcs $08f6 +0904: e4 1a mov a,$1a +0906: 24 47 and a,$47 +0908: d0 ec bne $08f6 +090a: dd mov a,y +090b: 28 7f and a,#$7f +090d: 60 clrc +090e: 84 50 adc a,$50 +0910: 60 clrc +0911: 95 f0 02 adc a,$02f0+x +0914: d5 61 03 mov $0361+x,a +0917: f5 81 03 mov a,$0381+x +091a: d5 60 03 mov $0360+x,a +091d: f5 b1 02 mov a,$02b1+x +0920: 5c lsr a +0921: e8 00 mov a,#$00 +0923: 7c ror a +0924: d5 a0 02 mov $02a0+x,a +0927: e8 00 mov a,#$00 +0929: d4 b0 mov $b0+x,a +092b: d5 00 01 mov $0100+x,a +092e: d5 d0 02 mov $02d0+x,a +0931: d4 c0 mov $c0+x,a +0933: 09 47 5e or ($5e),($47) +0936: 09 47 45 or ($45),($47) +0939: 4d push x +093a: 7d mov a,x +093b: 5c lsr a +093c: 5d mov x,a +093d: f5 45 17 mov a,$1745+x +0940: 25 fd 05 and a,$05fd +0943: f0 0c beq $0951 +0945: f5 4d 17 mov a,$174d+x +0948: 25 fd 05 and a,$05fd +094b: c5 fd 05 mov $05fd,a +094e: 5f 6d 09 jmp $096d + +0951: f5 45 17 mov a,$1745+x +0954: 25 ff 05 and a,$05ff +0957: f0 1b beq $0974 +0959: f5 45 17 mov a,$1745+x +095c: 25 fe 05 and a,$05fe +095f: f0 0c beq $096d +0961: f5 4d 17 mov a,$174d+x +0964: 25 fe 05 and a,$05fe +0967: c5 fe 05 mov $05fe,a +096a: 5f 74 09 jmp $0974 + +096d: f5 4d 17 mov a,$174d+x +0970: 24 45 and a,$45 +0972: c4 45 mov $45,a +0974: ce pop x +0975: f5 80 02 mov a,$0280+x +0978: d4 a0 mov $a0+x,a +097a: f0 1e beq $099a +097c: f5 81 02 mov a,$0281+x +097f: d4 a1 mov $a1+x,a +0981: f5 90 02 mov a,$0290+x +0984: d0 0a bne $0990 +0986: f5 61 03 mov a,$0361+x +0989: 80 setc +098a: b5 91 02 sbc a,$0291+x +098d: d5 61 03 mov $0361+x,a +0990: f5 91 02 mov a,$0291+x +0993: 60 clrc +0994: 95 61 03 adc a,$0361+x +0997: 3f bc 0e call $0ebc +099a: 3f d4 0e call $0ed4 +099d: 8d 00 mov y,#$00 +099f: e4 11 mov a,$11 +09a1: 80 setc +09a2: a8 34 sbc a,#$34 +09a4: b0 09 bcs $09af +09a6: e4 11 mov a,$11 +09a8: 80 setc +09a9: a8 13 sbc a,#$13 +09ab: b0 06 bcs $09b3 +09ad: dc dec y +09ae: 1c asl a +09af: 7a 10 addw ya,$10 +09b1: da 10 movw $10,ya +09b3: 4d push x +09b4: e4 11 mov a,$11 +09b6: 1c asl a +09b7: 8d 00 mov y,#$00 +09b9: cd 18 mov x,#$18 +09bb: 9e div ya,x +09bc: 5d mov x,a +09bd: f6 b9 13 mov a,$13b9+y +09c0: c4 15 mov $15,a +09c2: f6 b8 13 mov a,$13b8+y +09c5: c4 14 mov $14,a +09c7: f6 bb 13 mov a,$13bb+y +09ca: 2d push a +09cb: f6 ba 13 mov a,$13ba+y +09ce: ee pop y +09cf: 9a 14 subw ya,$14 +09d1: eb 10 mov y,$10 +09d3: cf mul ya +09d4: dd mov a,y +09d5: 8d 00 mov y,#$00 +09d7: 7a 14 addw ya,$14 +09d9: cb 15 mov $15,y +09db: 1c asl a +09dc: 2b 15 rol $15 +09de: c4 14 mov $14,a +09e0: 2f 04 bra $09e6 +09e2: 4b 15 lsr $15 +09e4: 7c ror a +09e5: 3d inc x +09e6: c8 06 cmp x,#$06 +09e8: d0 f8 bne $09e2 +09ea: c4 14 mov $14,a +09ec: ce pop x +09ed: f5 20 02 mov a,$0220+x +09f0: eb 15 mov y,$15 +09f2: cf mul ya +09f3: da 16 movw $16,ya +09f5: f5 20 02 mov a,$0220+x +09f8: eb 14 mov y,$14 +09fa: cf mul ya +09fb: 6d push y +09fc: f5 21 02 mov a,$0221+x +09ff: eb 14 mov y,$14 +0a01: cf mul ya +0a02: 7a 16 addw ya,$16 +0a04: da 16 movw $16,ya +0a06: f5 21 02 mov a,$0221+x +0a09: eb 15 mov y,$15 +0a0b: cf mul ya +0a0c: fd mov y,a +0a0d: ae pop a +0a0e: 7a 16 addw ya,$16 +0a10: da 16 movw $16,ya +0a12: 7d mov a,x +0a13: 9f xcn a +0a14: 5c lsr a +0a15: 08 02 or a,#$02 +0a17: fd mov y,a +0a18: e4 16 mov a,$16 +0a1a: 3f 20 0a call $0a20 +0a1d: fc inc y +0a1e: e4 17 mov a,$17 +0a20: 2d push a +0a21: e4 47 mov a,$47 +0a23: 24 1a and a,$1a +0a25: ae pop a +0a26: d0 04 bne $0a2c +0a28: cb f2 mov $f2,y +0a2a: c4 f3 mov $f3,a +0a2c: 6f ret + +0a2d: 8d 00 mov y,#$00 +0a2f: f7 40 mov a,($40)+y +0a31: 3a 40 incw $40 +0a33: 2d push a +0a34: f7 40 mov a,($40)+y +0a36: 3a 40 incw $40 +0a38: fd mov y,a +0a39: ae pop a +0a3a: 6f ret + +0a3b: 3f 3f 12 call $123f +0a3e: c4 08 mov $08,a +0a40: c4 04 mov $04,a +0a42: 1c asl a +0a43: f0 0d beq $0a52 +0a45: 5d mov x,a +0a46: f5 7f e0 mov a,$e07f+x +0a49: fd mov y,a +0a4a: f5 7e e0 mov a,$e07e+x +0a4d: da 40 movw $40,ya +0a4f: 8f 02 0c mov $0c,#$02 +0a52: e4 1a mov a,$1a +0a54: 48 ff eor a,#$ff +0a56: 0e 46 00 tset1 $0046 +0a59: 6f ret + +0a5a: cd 0e mov x,#$0e +0a5c: 8f 80 47 mov $47,#$80 +0a5f: 3f b6 11 call $11b6 +0a62: 1d dec x +0a63: 1d dec x +0a64: 4b 47 lsr $47 +0a66: d0 f7 bne $0a5f +0a68: 3f de 11 call $11de +0a6b: 6f ret + +0a6c: 80 setc +0a6d: a8 e0 sbc a,#$e0 +0a6f: 5d mov x,a +0a70: f5 0f 12 mov a,$120f+x +0a73: 3f 05 12 call $1205 +0a76: 5f b9 0a jmp $0ab9 + +0a79: e8 00 mov a,#$00 +0a7b: c5 80 05 mov $0580,a +0a7e: 5f b9 0a jmp $0ab9 + +0a81: e4 07 mov a,$07 +0a83: d0 34 bne $0ab9 +0a85: eb 08 mov y,$08 +0a87: e4 00 mov a,$00 +0a89: c4 08 mov $08,a +0a8b: f0 2c beq $0ab9 +0a8d: 68 e0 cmp a,#$e0 +0a8f: 90 21 bcc $0ab2 +0a91: 68 f0 cmp a,#$f0 +0a93: 90 d7 bcc $0a6c +0a95: 68 f0 cmp a,#$f0 +0a97: f0 b9 beq $0a52 +0a99: 68 f1 cmp a,#$f1 +0a9b: f0 1c beq $0ab9 +0a9d: 68 ff cmp a,#$ff +0a9f: f0 9a beq $0a3b +0aa1: 68 f2 cmp a,#$f2 +0aa3: f0 d6 beq $0a7b +0aa5: 68 f3 cmp a,#$f3 +0aa7: f0 d0 beq $0a79 +0aa9: 68 f4 cmp a,#$f4 +0aab: d0 05 bne $0ab2 +0aad: e8 00 mov a,#$00 +0aaf: 5f 40 0a jmp $0a40 + +0ab2: 7e 00 cmp y,$00 +0ab4: f0 03 beq $0ab9 +0ab6: 5f 40 0a jmp $0a40 + +0ab9: e4 04 mov a,$04 +0abb: f0 ae beq $0a6b +0abd: e4 0c mov a,$0c +0abf: f0 66 beq $0b27 +0ac1: 6e 0c 96 dbnz $0c,$0a5a +0ac4: 3f 2d 0a call $0a2d +0ac7: d0 25 bne $0aee +0ac9: fd mov y,a +0aca: d0 03 bne $0acf +0acc: 5f 40 0a jmp $0a40 + +0acf: 68 80 cmp a,#$80 +0ad1: f0 06 beq $0ad9 +0ad3: 68 81 cmp a,#$81 +0ad5: d0 06 bne $0add +0ad7: e8 00 mov a,#$00 +0ad9: c4 1b mov $1b,a +0adb: 2f e7 bra $0ac4 +0add: 8b 42 dec $42 +0adf: 10 02 bpl $0ae3 +0ae1: c4 42 mov $42,a +0ae3: 3f 2d 0a call $0a2d +0ae6: f8 42 mov x,$42 +0ae8: f0 da beq $0ac4 +0aea: da 40 movw $40,ya +0aec: 2f d6 bra $0ac4 +0aee: 2d push a +0aef: 4d push x +0af0: 6d push y +0af1: 3f 04 14 call $1404 +0af4: ee pop y +0af5: ce pop x +0af6: ae pop a +0af7: da 16 movw $16,ya +0af9: 8d 0f mov y,#$0f +0afb: f7 16 mov a,($16)+y +0afd: d6 30 00 mov $0030+y,a +0b00: dc dec y +0b01: 10 f8 bpl $0afb +0b03: cd 00 mov x,#$00 +0b05: 8f 01 47 mov $47,#$01 +0b08: f4 31 mov a,$31+x +0b0a: f0 0a beq $0b16 +0b0c: f5 11 02 mov a,$0211+x +0b0f: d0 05 bne $0b16 +0b11: e8 00 mov a,#$00 +0b13: 3f 74 0c call $0c74 +0b16: e8 00 mov a,#$00 +0b18: d4 80 mov $80+x,a +0b1a: d4 90 mov $90+x,a +0b1c: d4 91 mov $91+x,a +0b1e: bc inc a +0b1f: d4 70 mov $70+x,a +0b21: 3d inc x +0b22: 3d inc x +0b23: 0b 47 asl $47 +0b25: d0 e1 bne $0b08 +0b27: cd 00 mov x,#$00 +0b29: d8 5e mov $5e,x +0b2b: 8f 01 47 mov $47,#$01 +0b2e: 4d push x +0b2f: 3f 04 14 call $1404 +0b32: ce pop x +0b33: d8 44 mov $44,x +0b35: f4 31 mov a,$31+x +0b37: f0 75 beq $0bae +0b39: 9b 70 dec $70+x +0b3b: d0 67 bne $0ba4 +0b3d: 3f 19 0c call $0c19 +0b40: d0 1a bne $0b5c +0b42: f4 80 mov a,$80+x +0b44: d0 03 bne $0b49 +0b46: 5f c4 0a jmp $0ac4 + +0b49: 3f ba 0d call $0dba +0b4c: 9b 80 dec $80+x +0b4e: d0 ed bne $0b3d +0b50: f5 30 02 mov a,$0230+x +0b53: d4 30 mov $30+x,a +0b55: f5 31 02 mov a,$0231+x +0b58: d4 31 mov $31+x,a +0b5a: 2f e1 bra $0b3d +0b5c: 30 20 bmi $0b7e +0b5e: d5 00 02 mov $0200+x,a +0b61: 3f 19 0c call $0c19 +0b64: 30 18 bmi $0b7e +0b66: 2d push a +0b67: 9f xcn a +0b68: 28 07 and a,#$07 +0b6a: fd mov y,a +0b6b: f6 1f 12 mov a,$121f+y ; set dur% from high nybble +0b6e: d5 01 02 mov $0201+x,a +0b71: ae pop a +0b72: 28 0f and a,#$0f +0b74: fd mov y,a +0b75: f6 27 12 mov a,$1227+y +0b78: d5 10 02 mov $0210+x,a ; set per-note vol from low nybble +0b7b: 3f 19 0c call $0c19 +; vcmd branches 80-ff +0b7e: 68 db cmp a,#$db +0b80: 90 05 bcc $0b87 +0b82: 3f 07 0c call $0c07 ; vcmds db-ff +0b85: 2f b6 bra $0b3d +0b87: f5 00 04 mov a,$0400+x +0b8a: 04 1b or a,$1b +0b8c: d0 04 bne $0b92 +0b8e: dd mov a,y +0b8f: 3f f7 08 call $08f7 +0b92: f5 00 02 mov a,$0200+x +0b95: d4 70 mov $70+x,a +0b97: fd mov y,a +0b98: f5 01 02 mov a,$0201+x +0b9b: cf mul ya +0b9c: dd mov a,y +0b9d: d0 01 bne $0ba0 +0b9f: bc inc a +0ba0: d4 71 mov $71+x,a +0ba2: 2f 07 bra $0bab +0ba4: e4 1b mov a,$1b +0ba6: d0 06 bne $0bae +0ba8: 3f 33 10 call $1033 +0bab: 3f 9c 0e call $0e9c +0bae: 3d inc x +0baf: 3d inc x +0bb0: 0b 47 asl $47 +0bb2: f0 03 beq $0bb7 +0bb4: 5f 2e 0b jmp $0b2e + +0bb7: e4 54 mov a,$54 +0bb9: f0 0b beq $0bc6 +0bbb: ba 56 movw ya,$56 +0bbd: 7a 52 addw ya,$52 +0bbf: 6e 54 02 dbnz $54,$0bc4 +0bc2: ba 54 movw ya,$54 +0bc4: da 52 movw $52,ya +0bc6: e4 68 mov a,$68 +0bc8: f0 15 beq $0bdf +0bca: ba 64 movw ya,$64 +0bcc: 7a 60 addw ya,$60 +0bce: da 60 movw $60,ya +0bd0: ba 66 movw ya,$66 +0bd2: 7a 62 addw ya,$62 +0bd4: 6e 68 06 dbnz $68,$0bdd +0bd7: ba 68 movw ya,$68 +0bd9: da 60 movw $60,ya +0bdb: eb 6a mov y,$6a +0bdd: da 62 movw $62,ya +0bdf: e4 5a mov a,$5a +0be1: f0 0e beq $0bf1 +0be3: ba 5c movw ya,$5c +0be5: 7a 58 addw ya,$58 +0be7: 6e 5a 02 dbnz $5a,$0bec +0bea: ba 5a movw ya,$5a +0bec: da 58 movw $58,ya +0bee: 8f ff 5e mov $5e,#$ff +0bf1: 3f 04 14 call $1404 +0bf4: cd 00 mov x,#$00 +0bf6: 8f 01 47 mov $47,#$01 +0bf9: f4 31 mov a,$31+x +0bfb: f0 03 beq $0c00 +0bfd: 3f 67 0f call $0f67 +0c00: 3d inc x +0c01: 3d inc x +0c02: 0b 47 asl $47 +0c04: d0 f3 bne $0bf9 +0c06: 6f ret + +; dispatch vcmd in A +0c07: 1c asl a +0c08: fd mov y,a +0c09: f6 46 0e mov a,$0e46+y +0c0c: 2d push a +0c0d: f6 45 0e mov a,$0e45+y +0c10: 2d push a +0c11: dd mov a,y +0c12: 5c lsr a +0c13: fd mov y,a +0c14: f6 e8 0e mov a,$0ee8+y +0c17: f0 08 beq $0c21 +0c19: e7 30 mov a,($30+x) +0c1b: bb 30 inc $30+x +0c1d: d0 02 bne $0c21 +0c1f: bb 31 inc $31+x +0c21: fd mov y,a +0c22: 6f ret + +; vcmd dc - set ASDR +0c23: c5 fb 05 mov $05fb,a +0c26: 7d mov a,x +0c27: 9f xcn a +0c28: 5c lsr a +0c29: 08 05 or a,#$05 +0c2b: c4 f2 mov $f2,a +0c2d: 3f 19 0c call $0c19 +0c30: 9f xcn a +0c31: 05 fb 05 or a,$05fb +0c34: 08 80 or a,#$80 +0c36: c4 f3 mov $f3,a +0c38: 6f ret + +; vcmd dd - set ASDR envelope +0c39: 9f xcn a +0c3a: 1c asl a +0c3b: c5 fc 05 mov $05fc,a +0c3e: 7d mov a,x +0c3f: 9f xcn a +0c40: 5c lsr a +0c41: 08 06 or a,#$06 +0c43: c4 f2 mov $f2,a +0c45: 3f 19 0c call $0c19 +0c48: 05 fc 05 or a,$05fc +0c4b: c4 f3 mov $f3,a +0c4d: 6f ret + +; vcmd de - set ASDR from table (1) +0c4e: 7d mov a,x +0c4f: 5c lsr a +0c50: fd mov y,a +0c51: f6 45 17 mov a,$1745+y +0c54: 05 ff 05 or a,$05ff +0c57: c5 ff 05 mov $05ff,a +0c5a: f6 45 17 mov a,$1745+y +0c5d: 0e fe 05 tset1 $05fe +0c60: 6f ret + +; vcmd df - set ASDR from table (2) +0c61: 7d mov a,x +0c62: 5c lsr a +0c63: fd mov y,a +0c64: f6 4d 17 mov a,$174d+y +0c67: 25 ff 05 and a,$05ff +0c6a: c5 ff 05 mov $05ff,a +0c6d: f6 45 17 mov a,$1745+y +0c70: 0e fd 05 tset1 $05fd +0c73: 6f ret + +; vcmd e0 - set instrument +0c74: d5 11 02 mov $0211+x,a +0c77: fd mov y,a +0c78: 10 07 bpl $0c81 +0c7a: 80 setc +0c7b: a8 ca sbc a,#$ca +0c7d: fd mov y,a +0c7e: f6 a0 e0 mov a,$e0a0+y +0c81: 8d 06 mov y,#$06 +0c83: cf mul ya +0c84: da 14 movw $14,ya +0c86: 60 clrc +0c87: 98 00 14 adc $14,#$00 +0c8a: 98 20 15 adc $15,#$20 +0c8d: e4 1a mov a,$1a +0c8f: 24 47 and a,$47 +0c91: d0 38 bne $0ccb +0c93: 4d push x +0c94: 7d mov a,x +0c95: 9f xcn a +0c96: 5c lsr a +0c97: 08 04 or a,#$04 +0c99: 5d mov x,a +0c9a: 8d 00 mov y,#$00 +0c9c: f7 14 mov a,($14)+y +0c9e: 10 0e bpl $0cae +0ca0: 28 1f and a,#$1f +0ca2: 38 20 48 and $48,#$20 +0ca5: 0e 48 00 tset1 $0048 +0ca8: 09 47 49 or ($49),($47) +0cab: dd mov a,y +0cac: 2f 07 bra $0cb5 +0cae: e4 47 mov a,$47 +0cb0: 4e 49 00 tclr1 $0049 +0cb3: f7 14 mov a,($14)+y +0cb5: d8 f2 mov $f2,x +0cb7: c4 f3 mov $f3,a +0cb9: 3d inc x +0cba: fc inc y +0cbb: ad 04 cmp y,#$04 +0cbd: d0 f4 bne $0cb3 +0cbf: ce pop x +0cc0: f7 14 mov a,($14)+y +0cc2: d5 21 02 mov $0221+x,a +0cc5: fc inc y +0cc6: f7 14 mov a,($14)+y +0cc8: d5 20 02 mov $0220+x,a +0ccb: 6f ret + +; vcmd e1 - pan +0ccc: d5 51 03 mov $0351+x,a +0ccf: 28 1f and a,#$1f +0cd1: d5 31 03 mov $0331+x,a +0cd4: e8 00 mov a,#$00 +0cd6: d5 30 03 mov $0330+x,a +0cd9: 6f ret + +; vcmd e2 - pan fade +0cda: d4 91 mov $91+x,a +0cdc: 2d push a +0cdd: 3f 19 0c call $0c19 +0ce0: d5 50 03 mov $0350+x,a +0ce3: 80 setc +0ce4: b5 31 03 sbc a,$0331+x +0ce7: ce pop x +0ce8: 3f df 0e call $0edf +0ceb: d5 40 03 mov $0340+x,a +0cee: dd mov a,y +0cef: d5 41 03 mov $0341+x,a +0cf2: 6f ret + +; vcmd e3 - vibrato on +0cf3: d5 b0 02 mov $02b0+x,a +0cf6: 3f 19 0c call $0c19 +0cf9: d5 a1 02 mov $02a1+x,a +0cfc: 3f 19 0c call $0c19 +; vcmd e4 - vibrato off +0cff: d4 b1 mov $b1+x,a +0d01: d5 c1 02 mov $02c1+x,a +0d04: e8 00 mov a,#$00 +0d06: d5 b1 02 mov $02b1+x,a +0d09: 6f ret + +; vcmd f0 - vibrato fade +0d0a: d5 b1 02 mov $02b1+x,a +0d0d: 2d push a +0d0e: 8d 00 mov y,#$00 +0d10: f4 b1 mov a,$b1+x +0d12: ce pop x +0d13: 9e div ya,x +0d14: f8 44 mov x,$44 +0d16: d5 c0 02 mov $02c0+x,a +0d19: 6f ret + +; vcmd e5 - master volume +0d1a: e8 00 mov a,#$00 +0d1c: da 58 movw $58,ya +0d1e: 6f ret + +; vcmd e6 - master volume fade +0d1f: c4 5a mov $5a,a +0d21: 3f 19 0c call $0c19 +0d24: c4 5b mov $5b,a +0d26: 80 setc +0d27: a4 59 sbc a,$59 +0d29: f8 5a mov x,$5a +0d2b: 3f df 0e call $0edf +0d2e: da 5c movw $5c,ya +0d30: 6f ret + +; vcmd e7 - tempo +0d31: e8 00 mov a,#$00 +0d33: da 52 movw $52,ya +0d35: 6f ret + +; vcmd e8 - tempo fade +0d36: c4 54 mov $54,a +0d38: 3f 19 0c call $0c19 +0d3b: c4 55 mov $55,a +0d3d: 80 setc +0d3e: a4 53 sbc a,$53 +0d40: f8 54 mov x,$54 +0d42: 3f df 0e call $0edf +0d45: da 56 movw $56,ya +0d47: 6f ret + +; vcmd e9 - global transpose +0d48: c4 50 mov $50,a +0d4a: 6f ret + +; vcmd ea - per-voice transpose +0d4b: d5 f0 02 mov $02f0+x,a +0d4e: 6f ret + +; vcmd eb - tremolo on +0d4f: d5 e0 02 mov $02e0+x,a +0d52: 3f 19 0c call $0c19 +0d55: d5 d1 02 mov $02d1+x,a +0d58: 3f 19 0c call $0c19 +; vcmd ec - tremolo off +0d5b: d4 c1 mov $c1+x,a +0d5d: 6f ret + +; vcmd f1 - pitch envelope (release) +0d5e: e8 01 mov a,#$01 +0d60: 2f 02 bra $0d64 +; vcmd f2 - pitch envelope (attack) +0d62: e8 00 mov a,#$00 +0d64: d5 90 02 mov $0290+x,a +0d67: dd mov a,y +0d68: d5 81 02 mov $0281+x,a +0d6b: 3f 19 0c call $0c19 +0d6e: d5 80 02 mov $0280+x,a +0d71: 3f 19 0c call $0c19 +0d74: d5 91 02 mov $0291+x,a +0d77: 6f ret + +; vcmd f3 - pitch envelope off +0d78: d5 80 02 mov $0280+x,a +0d7b: 6f ret + +; vcmd ed - volume +0d7c: d5 01 03 mov $0301+x,a +0d7f: e8 00 mov a,#$00 +0d81: d5 00 03 mov $0300+x,a +0d84: 6f ret + +; vcmd ee - volume fade +0d85: d4 90 mov $90+x,a +0d87: 2d push a +0d88: 3f 19 0c call $0c19 +0d8b: d5 20 03 mov $0320+x,a +0d8e: 80 setc +0d8f: b5 01 03 sbc a,$0301+x +0d92: ce pop x +0d93: 3f df 0e call $0edf +0d96: d5 10 03 mov $0310+x,a +0d99: dd mov a,y +0d9a: d5 11 03 mov $0311+x,a +0d9d: 6f ret + +; vcmd f4 - tuning +0d9e: d5 81 03 mov $0381+x,a +0da1: 6f ret + +; vcmd ef - call subroutine +0da2: d5 40 02 mov $0240+x,a +0da5: 3f 19 0c call $0c19 +0da8: d5 41 02 mov $0241+x,a +0dab: 3f 19 0c call $0c19 +0dae: d4 80 mov $80+x,a +0db0: f4 30 mov a,$30+x +0db2: d5 30 02 mov $0230+x,a +0db5: f4 31 mov a,$31+x +0db7: d5 31 02 mov $0231+x,a +0dba: f5 40 02 mov a,$0240+x +0dbd: d4 30 mov $30+x,a +0dbf: f5 41 02 mov a,$0241+x +0dc2: d4 31 mov $31+x,a +0dc4: 6f ret + +; vcmd f5 - echo vbits/volume +0dc5: c4 4a mov $4a,a +0dc7: 3f 19 0c call $0c19 +0dca: e8 00 mov a,#$00 +0dcc: da 60 movw $60,ya +0dce: 3f 19 0c call $0c19 +0dd1: e8 00 mov a,#$00 +0dd3: da 62 movw $62,ya +0dd5: b2 48 clr5 $48 +0dd7: 6f ret + +; vcmd f8 - echo volume fade +0dd8: c4 68 mov $68,a +0dda: 3f 19 0c call $0c19 +0ddd: c4 69 mov $69,a +0ddf: 80 setc +0de0: a4 61 sbc a,$61 +0de2: f8 68 mov x,$68 +0de4: 3f df 0e call $0edf +0de7: da 64 movw $64,ya +0de9: 3f 19 0c call $0c19 +0dec: c4 6a mov $6a,a +0dee: 80 setc +0def: a4 63 sbc a,$63 +0df1: f8 68 mov x,$68 +0df3: 3f df 0e call $0edf +0df6: da 66 movw $66,ya +0df8: 6f ret + +; vcmd f6 - disable echo +0df9: da 60 movw $60,ya +0dfb: da 62 movw $62,ya +0dfd: a2 48 set5 $48 +0dff: 6f ret + +; vcmd f7 - set echo params +0e00: c5 1d 04 mov $041d,a +0e03: 8d 08 mov y,#$08 +0e05: cf mul ya +0e06: c4 10 mov $10,a +0e08: e8 e0 mov a,#$e0 +0e0a: 80 setc +0e0b: a4 10 sbc a,$10 +0e0d: c5 07 06 mov $0607,a +0e10: e8 00 mov a,#$00 +0e12: c5 06 06 mov $0606,a +0e15: e5 1d 04 mov a,$041d +0e18: 3f 3d 0e call $0e3d +0e1b: 3f 19 0c call $0c19 +0e1e: c4 4e mov $4e,a +0e20: 3f 19 0c call $0c19 +0e23: c5 1e 04 mov $041e,a +0e26: 8d 08 mov y,#$08 +0e28: cf mul ya +0e29: 5d mov x,a +0e2a: 8d 0f mov y,#$0f +0e2c: f5 84 13 mov a,$1384+x +0e2f: 3f 28 0a call $0a28 +0e32: 3d inc x +0e33: dd mov a,y +0e34: 60 clrc +0e35: 88 10 adc a,#$10 +0e37: fd mov y,a +0e38: 10 f2 bpl $0e2c +0e3a: f8 44 mov x,$44 +0e3c: 6f ret + +0e3d: c4 4d mov $4d,a +0e3f: 8d 7d mov y,#$7d +0e41: cb f2 mov $f2,y +0e43: e4 f3 mov a,$f3 +0e45: 64 4d cmp a,$4d +0e47: f0 29 beq $0e72 +0e49: 28 0f and a,#$0f +0e4b: 48 ff eor a,#$ff +0e4d: f3 4c 03 bbc7 $4c,$0e53 +0e50: 60 clrc +0e51: 84 4c adc a,$4c +0e53: c4 4c mov $4c,a +0e55: 8d 04 mov y,#$04 +0e57: f6 a3 13 mov a,$13a3+y +0e5a: c4 f2 mov $f2,a +0e5c: e8 00 mov a,#$00 +0e5e: c4 f3 mov $f3,a +0e60: fe f5 dbnz y,$0e57 +0e62: e4 48 mov a,$48 +0e64: 08 20 or a,#$20 +0e66: 8d 6c mov y,#$6c +0e68: 3f 28 0a call $0a28 +0e6b: e4 4d mov a,$4d +0e6d: 8d 7d mov y,#$7d +0e6f: 3f 28 0a call $0a28 +0e72: 1c asl a +0e73: 1c asl a +0e74: 1c asl a +0e75: 48 ff eor a,#$ff +0e77: 80 setc +0e78: 88 e0 adc a,#$e0 +0e7a: 8d 6d mov y,#$6d +0e7c: 5f 28 0a jmp $0a28 + +; vcmd fa - set perc patch base +0e7f: c4 5f mov $5f,a +0e81: 6f ret + +; vcmd fb - skip 1 byte +0e82: 3f 1b 0c call $0c1b +0e85: 6f ret + +; vcmd fc +0e86: bc inc a +0e87: d5 00 04 mov $0400+x,a +0e8a: 6f ret + +; vcmd fd +0e8b: bc inc a +; vcmd fe - clear ASDR +0e8c: c4 1b mov $1b,a +0e8e: e8 00 mov a,#$00 +0e90: c5 fd 05 mov $05fd,a +0e93: c5 fe 05 mov $05fe,a +0e96: c5 ff 05 mov $05ff,a +0e99: 5f 52 0a jmp $0a52 + +0e9c: f4 a0 mov a,$a0+x +0e9e: d0 33 bne $0ed3 +0ea0: e7 30 mov a,($30+x) +0ea2: 68 f9 cmp a,#$f9 +0ea4: d0 2d bne $0ed3 +0ea6: 3f 1b 0c call $0c1b +0ea9: 3f 19 0c call $0c19 +; vcmd f9 - pitch slide +0eac: d4 a1 mov $a1+x,a +0eae: 3f 19 0c call $0c19 +0eb1: d4 a0 mov $a0+x,a +0eb3: 3f 19 0c call $0c19 +0eb6: 60 clrc +0eb7: 84 50 adc a,$50 +0eb9: 95 f0 02 adc a,$02f0+x +0ebc: 28 7f and a,#$7f +0ebe: d5 80 03 mov $0380+x,a +0ec1: 80 setc +0ec2: b5 61 03 sbc a,$0361+x +0ec5: fb a0 mov y,$a0+x +0ec7: 6d push y +0ec8: ce pop x +0ec9: 3f df 0e call $0edf +0ecc: d5 70 03 mov $0370+x,a +0ecf: dd mov a,y +0ed0: d5 71 03 mov $0371+x,a +0ed3: 6f ret + +0ed4: f5 61 03 mov a,$0361+x +0ed7: c4 11 mov $11,a +0ed9: f5 60 03 mov a,$0360+x +0edc: c4 10 mov $10,a +0ede: 6f ret + +0edf: ed notc +0ee0: 6b 12 ror $12 +0ee2: 10 03 bpl $0ee7 +0ee4: 48 ff eor a,#$ff +0ee6: bc inc a +0ee7: 8d 00 mov y,#$00 +0ee9: 9e div ya,x +0eea: 2d push a +0eeb: e8 00 mov a,#$00 +0eed: 9e div ya,x +0eee: ee pop y +0eef: f8 44 mov x,$44 +0ef1: f3 12 06 bbc7 $12,$0efa +0ef4: da 14 movw $14,ya +0ef6: ba 0e movw ya,$0e +0ef8: 9a 14 subw ya,$14 +0efa: 6f ret + +; vcmd dispatch table +0efb: dw $0000 ; db - (invalid) +0efd: dw $0c23 ; dc - set ASDR +0eff: dw $0c39 ; dd - set ASDR envelope +0f01: dw $0c4e ; de - set ASDR from table (1) +0f03: dw $0c61 ; df - set ASDR from table (2) +0f05: dw $0c74 ; e0 - set instrument +0f07: dw $0ccc ; e1 - pan +0f09: dw $0cda ; e2 - pan fade +0f0b: dw $0cf3 ; e3 - vibrato on +0f0d: dw $0cff ; e4 - vibrato off +0f0f: dw $0d1a ; e5 - master volume +0f11: dw $0d1f ; e6 - master volume fade +0f13: dw $0d31 ; e7 - tempo +0f15: dw $0d36 ; e8 - tempo fade +0f17: dw $0d48 ; e9 - global transpose +0f19: dw $0d4b ; ea - per-voice transpose +0f1b: dw $0d4f ; eb - tremolo on +0f1d: dw $0d5b ; ec - tremolo off +0f1f: dw $0d7c ; ed - volume +0f21: dw $0d85 ; ee - volume fade +0f23: dw $0da2 ; ef - call subroutine +0f25: dw $0d0a ; f0 - vibrato fade +0f27: dw $0d5e ; f1 - pitch envelope (release) +0f29: dw $0d62 ; f2 - pitch envelope (attack) +0f2b: dw $0d78 ; f3 - pitch envelope off +0f2d: dw $0d9e ; f4 - tuning +0f2f: dw $0dc5 ; f5 - echo vbits/volume +0f31: dw $0df9 ; f6 - echo volume fade +0f33: dw $0e00 ; f7 - set echo params +0f35: dw $0dd8 ; f8 - echo volume fade +0f37: dw $0eac ; f9 - pitch slide +0f39: dw $0e7f ; fa - set perc patch base +0f3b: dw $0e82 ; fb - skip 1 byte +0f3d: dw $0e86 ; fc +0f3f: dw $0e8b ; fd +0f41: dw $0e8c ; fe - clear ASDR + +; vcmd lengths +0f43: db $01,$02,$02,$00,$00,$01,$01,$02 ; db-e3 +0f4b: db $03,$00,$01,$02,$01,$02,$01,$01 ; e4-ea +0f53: db $03,$00,$01,$02,$03,$01,$03,$03 ; eb-f3 +0f5b: db $00,$01,$03,$00,$03,$03,$03,$01 ; f4-fa +0f63: db $02,$00,$00,$00 ; fb-fe + +0f67: f4 90 mov a,$90+x +0f69: f0 09 beq $0f74 +0f6b: e8 00 mov a,#$00 +0f6d: 8d 03 mov y,#$03 +0f6f: 9b 90 dec $90+x +0f71: 3f 0f 10 call $100f +0f74: fb c1 mov y,$c1+x +0f76: f0 23 beq $0f9b +0f78: f5 e0 02 mov a,$02e0+x +0f7b: de c0 1b cbne $c0+x,$0f99 +0f7e: 09 47 5e or ($5e),($47) +0f81: f5 d0 02 mov a,$02d0+x +0f84: 10 07 bpl $0f8d +0f86: fc inc y +0f87: d0 04 bne $0f8d +0f89: e8 80 mov a,#$80 +0f8b: 2f 04 bra $0f91 +0f8d: 60 clrc +0f8e: 95 d1 02 adc a,$02d1+x +0f91: d5 d0 02 mov $02d0+x,a +0f94: 3f 99 11 call $1199 +0f97: 2f 07 bra $0fa0 +0f99: bb c0 inc $c0+x +0f9b: e8 ff mov a,#$ff +0f9d: 3f a4 11 call $11a4 +0fa0: f4 91 mov a,$91+x +0fa2: f0 09 beq $0fad +0fa4: e8 30 mov a,#$30 +0fa6: 8d 03 mov y,#$03 +0fa8: 9b 91 dec $91+x +0faa: 3f 0f 10 call $100f +0fad: e4 47 mov a,$47 +0faf: 24 5e and a,$5e +0fb1: f0 5b beq $100e +0fb3: f5 31 03 mov a,$0331+x +0fb6: fd mov y,a +0fb7: f5 30 03 mov a,$0330+x +0fba: da 10 movw $10,ya +0fbc: 7d mov a,x +0fbd: 9f xcn a +0fbe: 5c lsr a +0fbf: c4 12 mov $12,a +0fc1: e5 80 05 mov a,$0580 +0fc4: f0 10 beq $0fd6 +0fc6: 8d 51 mov y,#$51 +0fc8: f5 21 03 mov a,$0321+x +0fcb: cf mul ya +0fcc: dd mov a,y +0fcd: eb 12 mov y,$12 +0fcf: 3f 20 0a call $0a20 +0fd2: fc inc y +0fd3: 5f 20 0a jmp $0a20 + +0fd6: eb 11 mov y,$11 +0fd8: f6 6f 13 mov a,$136f+y +0fdb: 80 setc +0fdc: b6 6e 13 sbc a,$136e+y +0fdf: eb 10 mov y,$10 +0fe1: cf mul ya +0fe2: dd mov a,y +0fe3: eb 11 mov y,$11 +0fe5: 60 clrc +0fe6: 96 6e 13 adc a,$136e+y +0fe9: fd mov y,a +0fea: f5 21 03 mov a,$0321+x +0fed: cf mul ya +0fee: f5 51 03 mov a,$0351+x +0ff1: 1c asl a +0ff2: 13 12 01 bbc0 $12,$0ff6 +0ff5: 1c asl a +0ff6: dd mov a,y +0ff7: 90 03 bcc $0ffc +0ff9: 48 ff eor a,#$ff +0ffb: bc inc a +0ffc: eb 12 mov y,$12 +0ffe: 3f 20 0a call $0a20 +1001: 8d 14 mov y,#$14 +1003: e8 00 mov a,#$00 +1005: 9a 10 subw ya,$10 +1007: da 10 movw $10,ya +1009: ab 12 inc $12 +100b: 33 12 c8 bbc1 $12,$0fd6 +100e: 6f ret + +100f: 09 47 5e or ($5e),($47) +1012: da 14 movw $14,ya +1014: da 16 movw $16,ya +1016: 4d push x +1017: ee pop y +1018: 60 clrc +1019: d0 0a bne $1025 +101b: 98 1f 16 adc $16,#$1f +101e: e8 00 mov a,#$00 +1020: d7 14 mov ($14)+y,a +1022: fc inc y +1023: 2f 09 bra $102e +1025: 98 10 16 adc $16,#$10 +1028: 3f 2c 10 call $102c +102b: fc inc y +102c: f7 14 mov a,($14)+y +102e: 97 16 adc a,($16)+y +1030: d7 14 mov ($14)+y,a +1032: 6f ret + +1033: f4 71 mov a,$71+x +1035: f0 6c beq $10a3 +1037: 9b 71 dec $71+x +1039: f0 05 beq $1040 +103b: e8 02 mov a,#$02 +103d: de 70 63 cbne $70+x,$10a3 +1040: f4 80 mov a,$80+x +1042: c4 17 mov $17,a +1044: f4 30 mov a,$30+x +1046: fb 31 mov y,$31+x +1048: da 14 movw $14,ya +104a: 8d 00 mov y,#$00 +104c: f7 14 mov a,($14)+y +104e: f0 1e beq $106e +1050: 30 07 bmi $1059 +1052: fc inc y +1053: 30 40 bmi $1095 +1055: f7 14 mov a,($14)+y +1057: 10 f9 bpl $1052 +1059: 68 c8 cmp a,#$c8 +105b: f0 46 beq $10a3 +105d: 68 ef cmp a,#$ef +105f: f0 29 beq $108a +1061: 68 db cmp a,#$db +1063: 90 30 bcc $1095 +1065: 6d push y +1066: fd mov y,a +1067: ae pop a +1068: 96 68 0e adc a,$0e68+y +106b: fd mov y,a +106c: 2f de bra $104c +106e: e4 17 mov a,$17 +1070: f0 23 beq $1095 +1072: 8b 17 dec $17 +1074: d0 0a bne $1080 +1076: f5 31 02 mov a,$0231+x +1079: 2d push a +107a: f5 30 02 mov a,$0230+x +107d: ee pop y +107e: 2f c8 bra $1048 +1080: f5 41 02 mov a,$0241+x +1083: 2d push a +1084: f5 40 02 mov a,$0240+x +1087: ee pop y +1088: 2f be bra $1048 +108a: fc inc y +108b: f7 14 mov a,($14)+y +108d: 2d push a +108e: fc inc y +108f: f7 14 mov a,($14)+y +1091: fd mov y,a +1092: ae pop a +1093: 2f b3 bra $1048 +1095: e4 47 mov a,$47 +1097: 25 ff 05 and a,$05ff +109a: d0 07 bne $10a3 +109c: e4 47 mov a,$47 +109e: 8d 5c mov y,#$5c +10a0: 3f 20 0a call $0a20 +10a3: f2 13 clr7 $13 +10a5: f4 a0 mov a,$a0+x +10a7: f0 13 beq $10bc +10a9: f4 a1 mov a,$a1+x +10ab: f0 04 beq $10b1 +10ad: 9b a1 dec $a1+x +10af: 2f 0b bra $10bc +10b1: e2 13 set7 $13 +10b3: e8 60 mov a,#$60 +10b5: 8d 03 mov y,#$03 +10b7: 9b a0 dec $a0+x +10b9: 3f 12 10 call $1012 +10bc: 3f d4 0e call $0ed4 +10bf: f4 b1 mov a,$b1+x +10c1: f0 4c beq $110f +10c3: f5 b0 02 mov a,$02b0+x +10c6: de b0 44 cbne $b0+x,$110d +10c9: f5 00 01 mov a,$0100+x +10cc: 75 b1 02 cmp a,$02b1+x +10cf: d0 05 bne $10d6 +10d1: f5 c1 02 mov a,$02c1+x +10d4: 2f 0d bra $10e3 +10d6: 40 setp +10d7: bb 00 inc $00+x +10d9: 20 clrp +10da: fd mov y,a +10db: f0 02 beq $10df +10dd: f4 b1 mov a,$b1+x +10df: 60 clrc +10e0: 95 c0 02 adc a,$02c0+x +10e3: d4 b1 mov $b1+x,a +10e5: f5 a0 02 mov a,$02a0+x +10e8: 60 clrc +10e9: 95 a1 02 adc a,$02a1+x +10ec: d5 a0 02 mov $02a0+x,a +10ef: c4 12 mov $12,a +10f1: 1c asl a +10f2: 1c asl a +10f3: 90 02 bcc $10f7 +10f5: 48 ff eor a,#$ff +10f7: fd mov y,a +10f8: f4 b1 mov a,$b1+x +10fa: 68 f1 cmp a,#$f1 +10fc: 90 05 bcc $1103 +10fe: 28 0f and a,#$0f +1100: cf mul ya +1101: 2f 04 bra $1107 +1103: cf mul ya +1104: dd mov a,y +1105: 8d 00 mov y,#$00 +1107: 3f 84 11 call $1184 +110a: 5f 9d 09 jmp $099d + +110d: bb b0 inc $b0+x +110f: e3 13 f8 bbs7 $13,$110a +1112: 6f ret + +1113: f2 13 clr7 $13 +1115: f4 c1 mov a,$c1+x +1117: f0 09 beq $1122 +1119: f5 e0 02 mov a,$02e0+x +111c: de c0 03 cbne $c0+x,$1122 +111f: 3f 8c 11 call $118c +1122: f5 31 03 mov a,$0331+x +1125: fd mov y,a +1126: f5 30 03 mov a,$0330+x +1129: da 10 movw $10,ya +112b: f4 91 mov a,$91+x +112d: f0 0a beq $1139 +112f: f5 41 03 mov a,$0341+x +1132: fd mov y,a +1133: f5 40 03 mov a,$0340+x +1136: 3f 6e 11 call $116e +1139: f3 13 03 bbc7 $13,$113f +113c: 3f bc 0f call $0fbc +113f: f2 13 clr7 $13 +1141: 3f d4 0e call $0ed4 +1144: f4 a0 mov a,$a0+x +1146: f0 0e beq $1156 +1148: f4 a1 mov a,$a1+x +114a: d0 0a bne $1156 +114c: f5 71 03 mov a,$0371+x +114f: fd mov y,a +1150: f5 70 03 mov a,$0370+x +1153: 3f 6e 11 call $116e +1156: f4 b1 mov a,$b1+x +1158: f0 b5 beq $110f +115a: f5 b0 02 mov a,$02b0+x +115d: de b0 af cbne $b0+x,$110f +1160: eb 51 mov y,$51 +1162: f5 a1 02 mov a,$02a1+x +1165: cf mul ya +1166: dd mov a,y +1167: 60 clrc +1168: 95 a0 02 adc a,$02a0+x +116b: 5f ef 10 jmp $10ef + +116e: e2 13 set7 $13 +1170: cb 12 mov $12,y +1172: 3f f1 0e call $0ef1 +1175: 6d push y +1176: eb 51 mov y,$51 +1178: cf mul ya +1179: cb 14 mov $14,y +117b: 8f 00 15 mov $15,#$00 +117e: eb 51 mov y,$51 +1180: ae pop a +1181: cf mul ya +1182: 7a 14 addw ya,$14 +1184: 3f f1 0e call $0ef1 +1187: 7a 10 addw ya,$10 +1189: da 10 movw $10,ya +118b: 6f ret + +118c: e2 13 set7 $13 +118e: eb 51 mov y,$51 +1190: f5 d1 02 mov a,$02d1+x +1193: cf mul ya +1194: dd mov a,y +1195: 60 clrc +1196: 95 d0 02 adc a,$02d0+x +1199: 1c asl a +119a: 90 02 bcc $119e +119c: 48 ff eor a,#$ff +119e: fb c1 mov y,$c1+x +11a0: cf mul ya +11a1: dd mov a,y +11a2: 48 ff eor a,#$ff +11a4: eb 59 mov y,$59 +11a6: cf mul ya +11a7: f5 10 02 mov a,$0210+x +11aa: cf mul ya +11ab: f5 01 03 mov a,$0301+x +11ae: cf mul ya +11af: dd mov a,y +11b0: cf mul ya +11b1: dd mov a,y +11b2: d5 21 03 mov $0321+x,a +11b5: 6f ret + +11b6: e8 ff mov a,#$ff +11b8: d5 01 03 mov $0301+x,a +11bb: e8 0a mov a,#$0a +11bd: d5 51 03 mov $0351+x,a +11c0: 28 1f and a,#$1f +11c2: d5 31 03 mov $0331+x,a +11c5: e8 00 mov a,#$00 +11c7: d5 30 03 mov $0330+x,a +11ca: d5 11 02 mov $0211+x,a +11cd: d5 81 03 mov $0381+x,a +11d0: d5 f0 02 mov $02f0+x,a +11d3: d5 80 02 mov $0280+x,a +11d6: d5 00 04 mov $0400+x,a +11d9: d4 b1 mov $b1+x,a +11db: d4 c1 mov $c1+x,a +11dd: 6f ret + +11de: c4 5a mov $5a,a +11e0: c4 68 mov $68,a +11e2: c4 54 mov $54,a +11e4: c4 50 mov $50,a +11e6: c4 42 mov $42,a +11e8: c4 5f mov $5f,a +11ea: c5 fd 05 mov $05fd,a +11ed: c5 fe 05 mov $05fe,a +11f0: c5 ff 05 mov $05ff,a +11f3: c5 fb 05 mov $05fb,a +11f6: c5 fc 05 mov $05fc,a +11f9: 8f ff 59 mov $59,#$ff +11fc: 8f 20 53 mov $53,#$20 +11ff: e8 7f mov a,#$7f +1201: 3f 05 12 call $1205 +1204: 6f ret + +1205: 8d 0c mov y,#$0c +1207: 3f 28 0a call $0a28 +120a: 8d 1c mov y,#$1c +120c: 5f 28 0a jmp $0a28 + +120f: db $00,$08,$11,$19,$22,$2a,$33,$3b +1217: db $44,$4c,$55,$5d,$66,$6e,$77,$7f + +; note dur%'s +121f: db $32,$65,$7f,$98,$b2,$cb,$e5,$fc +; note velocity values +1227: db $19,$32,$4c,$65,$72,$7f,$8c,$98 +122f: db $a5,$b2,$bf,$cb,$d8,$e5,$f2,$fc + +1237: db $00,$00,$00,$00,$00,$00,$00,$00 + +123f: e8 aa mov a,#$aa +1241: c5 f4 00 mov $00f4,a +1244: e8 bb mov a,#$bb +1246: c5 f5 00 mov $00f5,a +1249: e5 f4 00 mov a,$00f4 +124c: 68 c0 cmp a,#$c0 +124e: d0 f9 bne $1249 +1250: e9 f6 00 mov x,$00f6 +1253: c9 10 06 mov $0610,x +1256: e9 f7 00 mov x,$00f7 +1259: c9 0a 06 mov $060a,x +125c: c5 f4 00 mov $00f4,a +125f: e5 f4 00 mov a,$00f4 +1262: 68 cc cmp a,#$cc +1264: d0 f9 bne $125f +1266: e5 f6 00 mov a,$00f6 +1269: c5 08 06 mov $0608,a +126c: e5 f7 00 mov a,$00f7 +126f: c5 09 06 mov $0609,a +1272: e5 10 06 mov a,$0610 +1275: d0 05 bne $127c +1277: 3f e7 12 call $12e7 +127a: 2f 0c bra $1288 +127c: 68 01 cmp a,#$01 +127e: d0 05 bne $1285 +1280: 3f 02 13 call $1302 +1283: 2f 03 bra $1288 +1285: 3f 15 13 call $1315 +1288: ec f4 00 mov y,$00f4 +128b: cc f4 00 mov $00f4,y +128e: ec f4 00 mov y,$00f4 +1291: d0 fb bne $128e +1293: 5e f4 00 cmp y,$00f4 +1296: d0 0e bne $12a6 +1298: e4 f5 mov a,$f5 +129a: cb f4 mov $f4,y +129c: d7 14 mov ($14)+y,a +129e: fc inc y +129f: d0 f2 bne $1293 +12a1: ab 15 inc $15 +12a3: 5f 93 12 jmp $1293 + +12a6: 10 eb bpl $1293 +12a8: 5e f4 00 cmp y,$00f4 +12ab: 10 e6 bpl $1293 +12ad: e5 f5 00 mov a,$00f5 +12b0: f0 08 beq $12ba +12b2: 68 01 cmp a,#$01 +12b4: f0 93 beq $1249 +12b6: 68 02 cmp a,#$02 +12b8: f0 ac beq $1266 +12ba: ec f4 00 mov y,$00f4 +12bd: cc f4 00 mov $00f4,y +12c0: fc inc y +12c1: 5e f4 00 cmp y,$00f4 +12c4: d0 fb bne $12c1 +12c6: e8 00 mov a,#$00 +12c8: c5 f4 00 mov $00f4,a +12cb: 65 f4 00 cmp a,$00f4 +12ce: d0 fb bne $12cb +12d0: e8 ff mov a,#$ff +12d2: c5 f4 00 mov $00f4,a +12d5: cd 0d mov x,#$0d +12d7: e8 ff mov a,#$ff +12d9: 9c dec a +12da: d0 fd bne $12d9 +12dc: 1d dec x +12dd: d0 f8 bne $12d7 +12df: cd 31 mov x,#$31 +12e1: c9 f1 00 mov $00f1,x +12e4: e8 00 mov a,#$00 +12e6: 6f ret + +12e7: e5 04 06 mov a,$0604 +12ea: ec 05 06 mov y,$0605 +12ed: da 14 movw $14,ya +12ef: 3f 30 13 call $1330 +12f2: e5 09 06 mov a,$0609 +12f5: fd mov y,a +12f6: e5 08 06 mov a,$0608 +12f9: 7a 14 addw ya,$14 +12fb: c5 04 06 mov $0604,a +12fe: cc 05 06 mov $0605,y +1301: 6f ret + +1302: e5 00 06 mov a,$0600 +1305: c5 04 06 mov $0604,a +1308: e5 01 06 mov a,$0601 +130b: c5 05 06 mov $0605,a +130e: e8 00 mov a,#$00 +1310: 8d ec mov y,#$ec +1312: da 14 movw $14,ya +1314: 6f ret + +1315: e5 00 06 mov a,$0600 +1318: ec 01 06 mov y,$0601 +131b: da 14 movw $14,ya +131d: 3f 30 13 call $1330 +1320: e5 09 06 mov a,$0609 +1323: fd mov y,a +1324: e5 08 06 mov a,$0608 +1327: 7a 14 addw ya,$14 +1329: c5 00 06 mov $0600,a +132c: cc 01 06 mov $0601,y +132f: 6f ret + +1330: 6d push y +1331: 2d push a +1332: 6d push y +1333: 2d push a +1334: e8 00 mov a,#$00 +1336: c4 10 mov $10,a +1338: e8 22 mov a,#$22 +133a: c4 11 mov $11,a +133c: e5 0a 06 mov a,$060a +133f: 1c asl a +1340: 5d mov x,a +1341: f5 40 23 mov a,$2340+x +1344: c4 12 mov $12,a +1346: f5 41 23 mov a,$2341+x +1349: c4 13 mov $13,a +134b: 8d 00 mov y,#$00 +134d: 7d mov a,x +134e: 1c asl a +134f: 90 02 bcc $1353 +1351: 8d 01 mov y,#$01 +1353: 7a 10 addw ya,$10 +1355: da 10 movw $10,ya +1357: 8d 00 mov y,#$00 +1359: ae pop a +135a: d7 10 mov ($10)+y,a +135c: fc inc y +135d: ae pop a +135e: d7 10 mov ($10)+y,a +1360: ae pop a +1361: ee pop y +1362: 7a 12 addw ya,$12 +1364: 6d push y +1365: 8d 02 mov y,#$02 +1367: d7 10 mov ($10)+y,a +1369: fc inc y +136a: ae pop a +136b: d7 10 mov ($10)+y,a +136d: 6f ret + +; pan table +136e: db $00,$01,$03,$07,$0d,$15,$1e,$29 +1376: db $34,$42,$51,$5e,$67,$6e,$73,$77 +137e: db $7a,$7c,$7d,$7e,$7f,$7f + +; echo FIR presets +1384: db $7f,$00,$00,$00,$00,$00,$00,$00 +138c: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c +1394: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 +139c: db $34,$33,$00,$d9,$e5,$01,$fc,$eb + +; EVOL(L),EVOL(R),EFB,EON,FLG,KOL,KOF,NON,PMON,KOF +; dsp shadow addrs for dsp regs +13a4: db $2c,$3c,$0d,$4d,$6c,$4c,$5c,$3d,$2d,$5c +13ae: db $61,$63,$4e,$4a,$48,$45,$0e,$49,$4b,$46 + +; pitch table +13b0: dw $085f +13b2: dw $08de +13b4: dw $0965 +13b6: dw $09f4 +13b8: dw $0a8c +13ba: dw $0b2c +13bc: dw $0bd6 +13be: dw $0c8b +13c0: dw $0d4a +13c2: dw $0e14 +13c4: dw $0eea +13c6: dw $0fcd +13c8: dw $10be + +13d2: e4 07 mov a,$07 +13d4: d0 2d bne $1403 +13d6: e4 f4 mov a,$f4 +13d8: 68 80 cmp a,#$80 +13da: d0 27 bne $1403 +13dc: e4 f5 mov a,$f5 +13de: c5 16 06 mov $0616,a +13e1: e4 f6 mov a,$f6 +13e3: c5 17 06 mov $0617,a +13e6: e4 f7 mov a,$f7 +13e8: 28 80 and a,#$80 +13ea: c5 13 06 mov $0613,a +13ed: e4 f7 mov a,$f7 +13ef: 28 7f and a,#$7f +13f1: c5 14 06 mov $0614,a +13f4: e8 00 mov a,#$00 +13f6: c4 18 mov $18,a +13f8: c4 19 mov $19,a +13fa: e8 80 mov a,#$80 +13fc: c5 15 06 mov $0615,a +13ff: c4 07 mov $07,a +1401: c4 f4 mov $f4,a +1403: 6f ret + +1404: 3f 30 1a call $1a30 +1407: e4 07 mov a,$07 +1409: f0 f8 beq $1403 +140b: e4 f4 mov a,$f4 +140d: 68 81 cmp a,#$81 +140f: f0 0b beq $141c +1411: 68 82 cmp a,#$82 +1413: d0 ee bne $1403 +1415: cd 00 mov x,#$00 +1417: d8 f4 mov $f4,x +1419: 5f 7b 14 jmp $147b + +141c: cd 00 mov x,#$00 +141e: d8 f4 mov $f4,x +1420: e5 13 06 mov a,$0613 +1423: d0 63 bne $1488 +1425: 8d 33 mov y,#$33 +1427: e4 18 mov a,$18 +1429: 28 01 and a,#$01 +142b: d0 1e bne $144b +142d: 3e f4 cmp x,$f4 +142f: d0 fc bne $142d +1431: e4 f5 mov a,$f5 +1433: d5 00 fe mov $fe00+x,a +1436: 3d inc x +1437: e4 f6 mov a,$f6 +1439: d5 00 fe mov $fe00+x,a +143c: 3d inc x +143d: e4 f7 mov a,$f7 +143f: d5 00 fe mov $fe00+x,a +1442: 3d inc x +1443: d8 f4 mov $f4,x +1445: dc dec y +1446: d0 e5 bne $142d +1448: 5f 6e 14 jmp $146e + +144b: e5 15 06 mov a,$0615 +144e: f0 03 beq $1453 +1450: 3f 1e 15 call $151e +1453: 3e f4 cmp x,$f4 +1455: d0 fc bne $1453 +1457: e4 f5 mov a,$f5 +1459: d5 99 fe mov $fe99+x,a +145c: 3d inc x +145d: e4 f6 mov a,$f6 +145f: d5 99 fe mov $fe99+x,a +1462: 3d inc x +1463: e4 f7 mov a,$f7 +1465: d5 99 fe mov $fe99+x,a +1468: 3d inc x +1469: d8 f4 mov $f4,x +146b: dc dec y +146c: d0 e5 bne $1453 +146e: 3a 18 incw $18 +1470: e5 16 06 mov a,$0616 +1473: ec 17 06 mov y,$0617 +1476: 5a 18 cmpw ya,$18 +1478: f0 01 beq $147b +147a: 6f ret + +147b: e8 5c mov a,#$5c +147d: c4 f2 mov $f2,a +147f: e8 20 mov a,#$20 +1481: c4 f3 mov $f3,a +1483: e8 00 mov a,#$00 +1485: c4 07 mov $07,a +1487: 6f ret + +1488: e4 18 mov a,$18 +148a: 28 03 and a,#$03 +148c: f0 70 beq $14fe +148e: 68 01 cmp a,#$01 +1490: f0 4c beq $14de +1492: 68 02 cmp a,#$02 +1494: f0 20 beq $14b6 +1496: 8d 19 mov y,#$19 +1498: 3e f4 cmp x,$f4 +149a: d0 fc bne $1498 +149c: e4 f5 mov a,$f5 +149e: d5 e7 fe mov $fee7+x,a +14a1: 3d inc x +14a2: e4 f6 mov a,$f6 +14a4: d5 e7 fe mov $fee7+x,a +14a7: 3d inc x +14a8: e4 f7 mov a,$f7 +14aa: d5 e7 fe mov $fee7+x,a +14ad: 3d inc x +14ae: d8 f4 mov $f4,x +14b0: dc dec y +14b1: d0 e5 bne $1498 +14b3: 5f 6e 14 jmp $146e + +14b6: 8d 1a mov y,#$1a +14b8: e5 15 06 mov a,$0615 +14bb: f0 03 beq $14c0 +14bd: 3f 1e 15 call $151e +14c0: 3e f4 cmp x,$f4 +14c2: d0 fc bne $14c0 +14c4: e4 f5 mov a,$f5 +14c6: d5 99 fe mov $fe99+x,a +14c9: 3d inc x +14ca: e4 f6 mov a,$f6 +14cc: d5 99 fe mov $fe99+x,a +14cf: 3d inc x +14d0: e4 f7 mov a,$f7 +14d2: d5 99 fe mov $fe99+x,a +14d5: 3d inc x +14d6: d8 f4 mov $f4,x +14d8: dc dec y +14d9: d0 e5 bne $14c0 +14db: 5f 6e 14 jmp $146e + +14de: 8d 19 mov y,#$19 +14e0: 3e f4 cmp x,$f4 +14e2: d0 fc bne $14e0 +14e4: e4 f5 mov a,$f5 +14e6: d5 4e fe mov $fe4e+x,a +14e9: 3d inc x +14ea: e4 f6 mov a,$f6 +14ec: d5 4e fe mov $fe4e+x,a +14ef: 3d inc x +14f0: e4 f7 mov a,$f7 +14f2: d5 4e fe mov $fe4e+x,a +14f5: 3d inc x +14f6: d8 f4 mov $f4,x +14f8: dc dec y +14f9: d0 e5 bne $14e0 +14fb: 5f 6e 14 jmp $146e + +14fe: 8d 1a mov y,#$1a +1500: 3e f4 cmp x,$f4 +1502: d0 fc bne $1500 +1504: e4 f5 mov a,$f5 +1506: d5 00 fe mov $fe00+x,a +1509: 3d inc x +150a: e4 f6 mov a,$f6 +150c: d5 00 fe mov $fe00+x,a +150f: 3d inc x +1510: e4 f7 mov a,$f7 +1512: d5 00 fe mov $fe00+x,a +1515: 3d inc x +1516: d8 f4 mov $f4,x +1518: dc dec y +1519: d0 e5 bne $1500 +151b: 5f 6e 14 jmp $146e + +151e: e8 54 mov a,#$54 +1520: c5 f2 00 mov $00f2,a +1523: e8 4c mov a,#$4c +1525: c5 f3 00 mov $00f3,a +1528: e8 55 mov a,#$55 +152a: c5 f2 00 mov $00f2,a +152d: e8 ff mov a,#$ff +152f: c5 f3 00 mov $00f3,a +1532: e8 56 mov a,#$56 +1534: c5 f2 00 mov $00f2,a +1537: e8 e0 mov a,#$e0 +1539: c5 f3 00 mov $00f3,a +153c: e8 57 mov a,#$57 +153e: c5 f2 00 mov $00f2,a +1541: e8 b8 mov a,#$b8 +1543: c5 f3 00 mov $00f3,a +1546: e8 50 mov a,#$50 +1548: c5 f2 00 mov $00f2,a +154b: e5 14 06 mov a,$0614 +154e: c5 f3 00 mov $00f3,a +1551: e8 51 mov a,#$51 +1553: c5 f2 00 mov $00f2,a +1556: e5 14 06 mov a,$0614 +1559: c5 f3 00 mov $00f3,a +155c: e5 13 06 mov a,$0613 +155f: d0 17 bne $1578 +1561: e8 52 mov a,#$52 +1563: c5 f2 00 mov $00f2,a +1566: e8 29 mov a,#$29 +1568: c5 f3 00 mov $00f3,a +156b: e8 53 mov a,#$53 +156d: c5 f2 00 mov $00f2,a +1570: e8 08 mov a,#$08 +1572: c5 f3 00 mov $00f3,a +1575: 5f 8c 15 jmp $158c + +1578: e8 52 mov a,#$52 +157a: c5 f2 00 mov $00f2,a +157d: e8 15 mov a,#$15 +157f: c5 f3 00 mov $00f3,a +1582: e8 53 mov a,#$53 +1584: c5 f2 00 mov $00f2,a +1587: e8 04 mov a,#$04 +1589: c5 f3 00 mov $00f3,a +158c: e8 4c mov a,#$4c +158e: c5 f2 00 mov $00f2,a +1591: e8 20 mov a,#$20 +1593: c5 f3 00 mov $00f3,a +1596: e8 00 mov a,#$00 +1598: c5 15 06 mov $0615,a +159b: 6f ret + +159c: e4 1f mov a,$1f +159e: 68 f0 cmp a,#$f0 +15a0: f0 0b beq $15ad +15a2: 68 e0 cmp a,#$e0 +15a4: b0 06 bcs $15ac +15a6: 3f 40 1a call $1a40 +15a9: 3f b4 15 call $15b4 +15ac: 6f ret + +15ad: e8 c0 mov a,#$c0 +15af: 04 46 or a,$46 +15b1: c4 46 mov $46,a +15b3: 6f ret + +15b4: 3f 04 14 call $1404 +15b7: e5 03 05 mov a,$0503 +15ba: f0 16 beq $15d2 +15bc: cd 06 mov x,#$06 +15be: d8 01 mov $01,x +15c0: cd 0c mov x,#$0c +15c2: d8 05 mov $05,x +15c4: 3f 03 16 call $1603 +15c7: 3f 4a 16 call $164a +15ca: e5 03 05 mov a,$0503 +15cd: f0 03 beq $15d2 +15cf: 3f 41 16 call $1641 +15d2: 3f 04 14 call $1404 +15d5: e5 04 05 mov a,$0504 +15d8: f0 16 beq $15f0 +15da: cd 07 mov x,#$07 +15dc: d8 01 mov $01,x +15de: cd 0e mov x,#$0e +15e0: d8 05 mov $05,x +15e2: 3f 03 16 call $1603 +15e5: 3f 4a 16 call $164a +15e8: e5 04 05 mov a,$0504 +15eb: f0 03 beq $15f0 +15ed: 3f 41 16 call $1641 +15f0: 6f ret + +15f1: 80 setc +15f2: f5 20 04 mov a,$0420+x +15f5: a8 01 sbc a,#$01 +15f7: d5 20 04 mov $0420+x,a +15fa: f5 21 04 mov a,$0421+x +15fd: a8 00 sbc a,#$00 +15ff: d5 21 04 mov $0421+x,a +1602: 6f ret + +1603: f5 20 04 mov a,$0420+x +1606: 15 21 04 or a,$0421+x +1609: d0 e6 bne $15f1 +160b: 3f cd 16 call $16cd +160e: 68 80 cmp a,#$80 +1610: b0 15 bcs $1627 +1612: 2d push a +1613: f8 01 mov x,$01 +1615: f5 50 04 mov a,$0450+x +1618: fd mov y,a +1619: ae pop a +161a: cf mul ya +161b: f8 05 mov x,$05 +161d: d5 30 04 mov $0430+x,a +1620: dd mov a,y +1621: d5 31 04 mov $0431+x,a +1624: 5f 0b 16 jmp $160b + +1627: 68 c9 cmp a,#$c9 +1629: 90 0e bcc $1639 +162b: 3f 55 17 call $1755 +162e: e5 83 05 mov a,$0583 +1631: f0 d8 beq $160b +1633: e8 00 mov a,#$00 +1635: c5 83 05 mov $0583,a +1638: 6f ret + +1639: 3f d9 16 call $16d9 +163c: f8 05 mov x,$05 +163e: 5f f1 15 jmp $15f1 + +1641: 3f 65 16 call $1665 +1644: 3f 93 16 call $1693 +1647: 5f aa 16 jmp $16aa + +164a: f8 01 mov x,$01 +164c: e5 92 04 mov a,$0492 +164f: 35 45 17 and a,$1745+x +1652: f0 10 beq $1664 +1654: e5 92 04 mov a,$0492 +1657: 35 4d 17 and a,$174d+x +165a: c5 92 04 mov $0492,a +165d: f5 45 17 mov a,$1745+x +1660: 04 46 or a,$46 +1662: c4 46 mov $46,a +1664: 6f ret + +1665: eb 01 mov y,$01 +1667: e5 91 04 mov a,$0491 +166a: 36 45 17 and a,$1745+y +166d: f0 23 beq $1692 +166f: f8 05 mov x,$05 +1671: f6 58 04 mov a,$0458+y +1674: d5 21 03 mov $0321+x,a +1677: f6 78 04 mov a,$0478+y +167a: 2d push a +167b: 28 c0 and a,#$c0 +167d: d5 51 03 mov $0351+x,a +1680: ae pop a +1681: 28 3f and a,#$3f +1683: c4 11 mov $11,a +1685: 8f 00 10 mov $10,#$00 +1688: e4 47 mov a,$47 +168a: 36 4d 17 and a,$174d+y +168d: c4 47 mov $47,a +168f: 3f bc 0f call $0fbc +1692: 6f ret + +1693: f8 05 mov x,$05 +1695: f5 40 04 mov a,$0440+x +1698: fd mov y,a +1699: f5 41 04 mov a,$0441+x +169c: da 10 movw $10,ya +169e: eb 01 mov y,$01 +16a0: f6 4d 17 mov a,$174d+y +16a3: 24 47 and a,$47 +16a5: c4 47 mov $47,a +16a7: 5f b3 09 jmp $09b3 + +16aa: f8 01 mov x,$01 +16ac: e5 91 04 mov a,$0491 +16af: 35 45 17 and a,$1745+x +16b2: f0 18 beq $16cc +16b4: e5 91 04 mov a,$0491 +16b7: 35 4d 17 and a,$174d+x +16ba: c5 91 04 mov $0491,a +16bd: f5 45 17 mov a,$1745+x +16c0: 25 93 04 and a,$0493 +16c3: d0 07 bne $16cc +16c5: f5 45 17 mov a,$1745+x +16c8: 04 45 or a,$45 +16ca: c4 45 mov $45,a +16cc: 6f ret + +16cd: f8 05 mov x,$05 +16cf: e7 20 mov a,($20+x) +16d1: fd mov y,a +16d2: bb 20 inc $20+x +16d4: d0 02 bne $16d8 +16d6: bb 21 inc $21+x +16d8: 6f ret + +16d9: 2d push a +16da: f8 05 mov x,$05 +16dc: f5 30 04 mov a,$0430+x +16df: d5 20 04 mov $0420+x,a +16e2: f5 31 04 mov a,$0431+x +16e5: d5 21 04 mov $0421+x,a +16e8: ae pop a +16e9: 68 c8 cmp a,#$c8 +16eb: f0 4c beq $1739 +16ed: d5 40 04 mov $0440+x,a +16f0: 3f cf 16 call $16cf +16f3: d5 41 04 mov $0441+x,a +16f6: f8 01 mov x,$01 +16f8: f5 60 04 mov a,$0460+x +16fb: f0 09 beq $1706 +16fd: f8 05 mov x,$05 +16ff: 60 clrc +1700: 95 40 04 adc a,$0440+x +1703: d5 40 04 mov $0440+x,a +1706: f8 01 mov x,$01 +1708: f5 68 04 mov a,$0468+x +170b: f0 20 beq $172d +170d: f8 05 mov x,$05 +170f: fd mov y,a +1710: 30 0c bmi $171e +1712: 60 clrc +1713: 95 41 04 adc a,$0441+x +1716: d5 41 04 mov $0441+x,a +1719: e8 00 mov a,#$00 +171b: 5f 27 17 jmp $1727 + +171e: 60 clrc +171f: 95 41 04 adc a,$0441+x +1722: d5 41 04 mov $0441+x,a +1725: e8 ff mov a,#$ff +1727: 95 40 04 adc a,$0440+x +172a: d5 40 04 mov $0440+x,a +172d: f8 01 mov x,$01 +172f: f5 45 17 mov a,$1745+x +1732: 05 91 04 or a,$0491 +1735: c5 91 04 mov $0491,a +1738: 6f ret + +1739: f8 01 mov x,$01 +173b: f5 45 17 mov a,$1745+x +173e: 05 92 04 or a,$0492 +1741: c5 92 04 mov $0492,a +1744: 6f ret + +; channel values +1745: db $01,$02,$04,$08,$10,$20,$40,$80 + +; ASDR envelope values +174d: db $fe,$fd,$fb,$f7,$ef,$df +1753: db $bf,$7f,$80,$a8,$e8,$90 + +1759: dw $1c4f +175b: dw $1f5d +175d: dw $175f +175f: dw $178f +1761: dw $17aa +1763: dw $17bf +1765: dw $17ca +1767: dw $1830 +1769: dw $1863 +176b: dw $1873 +176d: dw $1873 +176f: dw $1874 +1771: dw $188d +1773: dw $1896 +1775: dw $189f +1777: dw $1873 +1779: dw $18ac +177b: dw $18b8 +177d: dw $18c4 +177f: dw $18cd +1781: dw $1902 +1783: dw $192b +1785: dw $1957 +1787: dw $1970 +1789: dw $197d +178b: dw $1986 +178d: dw $198f + +178f: 3f cd 16 call $16cd +1792: d5 d0 04 mov $04d0+x,a +1795: 3f cf 16 call $16cf +1798: d5 f1 04 mov $04f1+x,a +179b: 3f cf 16 call $16cf +179e: d5 d1 00 mov $00d1+x,a +17a1: d5 e1 04 mov $04e1+x,a +17a4: e8 00 mov a,#$00 +17a6: d5 d1 04 mov $04d1+x,a +17a9: 6f ret + +17aa: f8 05 mov x,$05 +17ac: e8 00 mov a,#$00 +17ae: d4 d1 mov $d1+x,a +17b0: d5 e1 04 mov $04e1+x,a +17b3: d5 d1 04 mov $04d1+x,a +17b6: 6f ret + +17b7: 3f cd 16 call $16cd +17ba: d5 d1 04 mov $04d1+x,a +17bd: 4d push x +17be: 2d push a +17bf: 8d 00 mov y,#$00 +17c1: f4 d1 mov a,$d1+x +17c3: ce pop x +17c4: 9e div ya,x +17c5: ce pop x +17c6: d5 e0 04 mov $04e0+x,a +17c9: 6f ret + +17ca: e8 01 mov a,#$01 +17cc: c5 1f 04 mov $041f,a +17cf: e4 4a mov a,$4a +17d1: c5 16 04 mov $0416,a +17d4: 3f cd 16 call $16cd +17d7: dd mov a,y +17d8: c5 17 04 mov $0417,a +17db: d0 14 bne $17f1 +17dd: 3f cf 16 call $16cf +17e0: 28 c0 and a,#$c0 +17e2: c5 4a 00 mov $004a,a +17e5: e5 16 04 mov a,$0416 +17e8: 28 3f and a,#$3f +17ea: 05 4a 00 or a,$004a +17ed: c5 4a 00 mov $004a,a +17f0: 6f ret + +17f1: 3f cf 16 call $16cf +17f4: e5 17 04 mov a,$0417 +17f7: 68 01 cmp a,#$01 +17f9: d0 05 bne $1800 +17fb: dd mov a,y +17fc: 04 4a or a,$4a +17fe: 2f 01 bra $1801 +1800: dd mov a,y +1801: c4 4a mov $4a,a +1803: e4 61 mov a,$61 +1805: c5 19 04 mov $0419,a +1808: e4 63 mov a,$63 +180a: c5 1b 04 mov $041b,a +180d: e4 4e mov a,$4e +180f: c5 1c 04 mov $041c,a +1812: 3f cf 16 call $16cf +1815: 3f 3d 0e call $0e3d +1818: 3f cd 16 call $16cd +181b: c4 4e mov $4e,a +181d: 3f cf 16 call $16cf +1820: 3f 26 0e call $0e26 +1823: b2 48 clr5 $48 +1825: 3f cd 16 call $16cd +1828: c4 61 mov $61,a +182a: 3f cf 16 call $16cf +182d: c4 63 mov $63,a +182f: 6f ret + +1830: e5 1f 04 mov a,$041f +1833: d0 01 bne $1836 +1835: 6f ret + +1836: e8 00 mov a,#$00 +1838: c5 1f 04 mov $041f,a +183b: e5 17 04 mov a,$0417 +183e: f0 1d beq $185d +1840: e5 1d 04 mov a,$041d +1843: 3f 3d 0e call $0e3d +1846: e5 1c 04 mov a,$041c +1849: c4 4e mov $4e,a +184b: e5 1e 04 mov a,$041e +184e: 3f 26 0e call $0e26 +1851: b2 48 clr5 $48 +1853: e5 19 04 mov a,$0419 +1856: c4 61 mov $61,a +1858: e5 1b 04 mov a,$041b +185b: c4 63 mov $63,a +185d: e5 16 04 mov a,$0416 +1860: c4 4a mov $4a,a +1862: 6f ret + +1863: 3f cd 16 call $16cd +1866: d5 50 05 mov $0550+x,a +1869: dd mov a,y +186a: f0 01 beq $186d +186c: 6f ret + +186d: f5 11 05 mov a,$0511+x +1870: fd mov y,a +1871: 2f 07 bra $187a +1873: 6f ret + +1874: 3f cd 16 call $16cd +1877: d5 11 05 mov $0511+x,a +187a: 8f 00 47 mov $47,#$00 +187d: f8 01 mov x,$01 +187f: f5 4d 17 mov a,$174d+x +1882: 24 49 and a,$49 +1884: c4 49 mov $49,a +1886: dd mov a,y +1887: f8 05 mov x,$05 +1889: 3f 77 0c call $0c77 +188c: 6f ret + +188d: 3f cd 16 call $16cd +1890: f8 01 mov x,$01 +1892: d5 58 04 mov $0458+x,a +1895: 6f ret + +1896: 3f cd 16 call $16cd +1899: f8 01 mov x,$01 +189b: d5 78 04 mov $0478+x,a +189e: 6f ret + +189f: 3f cd 16 call $16cd +18a2: f8 01 mov x,$01 +18a4: 60 clrc +18a5: 95 60 04 adc a,$0460+x +18a8: d5 60 04 mov $0460+x,a +18ab: 6f ret + +18ac: f8 01 mov x,$01 +18ae: f5 45 17 mov a,$1745+x +18b1: 05 93 04 or a,$0493 +18b4: c5 93 04 mov $0493,a +18b7: 6f ret + +18b8: f8 01 mov x,$01 +18ba: f5 4d 17 mov a,$174d+x +18bd: 25 93 04 and a,$0493 +18c0: c5 93 04 mov $0493,a +18c3: 6f ret + +18c4: 3f cd 16 call $16cd +18c7: f8 01 mov x,$01 +18c9: d5 50 04 mov $0450+x,a +18cc: 6f ret + +18cd: 3f cd 16 call $16cd +18d0: 2d push a +18d1: f8 01 mov x,$01 +18d3: f5 98 04 mov a,$0498+x +18d6: 3f f3 18 call $18f3 +18d9: ae pop a +18da: d6 a0 04 mov $04a0+y,a +18dd: f8 05 mov x,$05 +18df: f4 20 mov a,$20+x +18e1: d6 a1 04 mov $04a1+y,a +18e4: f4 21 mov a,$21+x +18e6: d6 a2 04 mov $04a2+y,a +18e9: f8 01 mov x,$01 +18eb: f5 98 04 mov a,$0498+x +18ee: bc inc a +18ef: d5 98 04 mov $0498+x,a +18f2: 6f ret + +18f3: 8d 03 mov y,#$03 +18f5: cf mul ya +18f6: c4 10 mov $10,a +18f8: e4 01 mov a,$01 +18fa: 8d 06 mov y,#$06 +18fc: cf mul ya +18fd: 60 clrc +18fe: 84 10 adc a,$10 +1900: fd mov y,a +1901: 6f ret + +1902: f8 01 mov x,$01 +1904: f5 98 04 mov a,$0498+x +1907: 9c dec a +1908: 3f f3 18 call $18f3 +190b: f6 a0 04 mov a,$04a0+y +190e: 9c dec a +190f: d6 a0 04 mov $04a0+y,a +1912: d0 0a bne $191e +1914: f8 01 mov x,$01 +1916: f5 98 04 mov a,$0498+x +1919: 9c dec a +191a: d5 98 04 mov $0498+x,a +191d: 6f ret + +191e: f8 05 mov x,$05 +1920: f6 a1 04 mov a,$04a1+y +1923: d4 20 mov $20+x,a +1925: f6 a2 04 mov a,$04a2+y +1928: d4 21 mov $21+x,a +192a: 6f ret + +192b: 3f cd 16 call $16cd +192e: 2d push a +192f: 3f cf 16 call $16cf +1932: 2d push a +1933: f8 01 mov x,$01 +1935: f5 98 04 mov a,$0498+x +1938: 3f f3 18 call $18f3 +193b: f8 01 mov x,$01 +193d: f5 98 04 mov a,$0498+x +1940: bc inc a +1941: d5 98 04 mov $0498+x,a +1944: f8 05 mov x,$05 +1946: f4 20 mov a,$20+x +1948: d6 a1 04 mov $04a1+y,a +194b: f4 21 mov a,$21+x +194d: d6 a2 04 mov $04a2+y,a +1950: ae pop a +1951: d4 21 mov $21+x,a +1953: ae pop a +1954: d4 20 mov $20+x,a +1956: 6f ret + +1957: f8 01 mov x,$01 +1959: f5 98 04 mov a,$0498+x +195c: 9c dec a +195d: d5 98 04 mov $0498+x,a +1960: 3f f3 18 call $18f3 +1963: f8 05 mov x,$05 +1965: f6 a1 04 mov a,$04a1+y +1968: d4 20 mov $20+x,a +196a: f6 a2 04 mov a,$04a2+y +196d: d4 21 mov $21+x,a +196f: 6f ret + +1970: 3f cd 16 call $16cd +1973: 2d push a +1974: 3f cf 16 call $16cf +1977: d4 21 mov $21+x,a +1979: ae pop a +197a: d4 20 mov $20+x,a +197c: 6f ret + +197d: 3f cd 16 call $16cd +1980: f8 01 mov x,$01 +1982: d5 68 04 mov $0468+x,a +1985: 6f ret + +1986: 3f cd 16 call $16cd +1989: f8 01 mov x,$01 +198b: d5 60 04 mov $0460+x,a +198e: 6f ret + +198f: f8 01 mov x,$01 +1991: c8 06 cmp x,#$06 +1993: d0 24 bne $19b9 +1995: e8 00 mov a,#$00 +1997: c5 03 05 mov $0503,a +199a: e8 60 mov a,#$60 +199c: c5 f2 00 mov $00f2,a +199f: e8 00 mov a,#$00 +19a1: c5 f3 00 mov $00f3,a +19a4: e8 61 mov a,#$61 +19a6: c5 f2 00 mov $00f2,a +19a9: e8 00 mov a,#$00 +19ab: c5 f3 00 mov $00f3,a +19ae: 3f f9 19 call $19f9 +19b1: e8 00 mov a,#$00 +19b3: c5 00 05 mov $0500,a +19b6: 5f da 19 jmp $19da + +19b9: e8 00 mov a,#$00 +19bb: c5 04 05 mov $0504,a +19be: e8 70 mov a,#$70 +19c0: c5 f2 00 mov $00f2,a +19c3: e8 00 mov a,#$00 +19c5: c5 f3 00 mov $00f3,a +19c8: e8 71 mov a,#$71 +19ca: c5 f2 00 mov $00f2,a +19cd: e8 00 mov a,#$00 +19cf: c5 f3 00 mov $00f3,a +19d2: 3f f9 19 call $19f9 +19d5: e8 00 mov a,#$00 +19d7: c5 01 05 mov $0501,a +19da: f8 01 mov x,$01 +19dc: f5 45 17 mov a,$1745+x +19df: 05 92 04 or a,$0492 +19e2: c5 92 04 mov $0492,a +19e5: e5 03 05 mov a,$0503 +19e8: 05 04 05 or a,$0504 +19eb: d0 06 bne $19f3 +19ed: c5 02 05 mov $0502,a +19f0: 3f 30 18 call $1830 +19f3: e8 ff mov a,#$ff +19f5: c5 83 05 mov $0583,a +19f8: 6f ret + +19f9: f8 05 mov x,$05 +19fb: f5 81 04 mov a,$0481+x +19fe: d5 21 03 mov $0321+x,a +1a01: f5 80 04 mov a,$0480+x +1a04: d5 51 03 mov $0351+x,a +1a07: f8 01 mov x,$01 +1a09: f5 4d 17 mov a,$174d+x +1a0c: 2d push a +1a0d: 24 1a and a,$1a +1a0f: c4 1a mov $1a,a +1a11: f5 45 17 mov a,$1745+x +1a14: 2d push a +1a15: 04 47 or a,$47 +1a17: c4 47 mov $47,a +1a19: ae pop a +1a1a: 04 5e or a,$5e +1a1c: c4 5e mov $5e,a +1a1e: f8 05 mov x,$05 +1a20: 3f ad 0f call $0fad +1a23: ae pop a +1a24: 24 1a and a,$1a +1a26: c4 1a mov $1a,a +1a28: f8 05 mov x,$05 +1a2a: f5 11 02 mov a,$0211+x +1a2d: 5f 77 0c jmp $0c77 + +1a30: e4 f4 mov a,$f4 +1a32: f0 04 beq $1a38 +1a34: 68 a0 cmp a,#$a0 +1a36: 90 02 bcc $1a3a +1a38: c4 1f mov $1f,a +1a3a: 6f ret + +1a3b: e8 00 mov a,#$00 +1a3d: c4 06 mov $06,a +1a3f: 6f ret + +1a40: e4 1f mov a,$1f +1a42: f0 f7 beq $1a3b +1a44: 68 a0 cmp a,#$a0 +1a46: 90 f7 bcc $1a3f +1a48: 80 setc +1a49: a8 a0 sbc a,#$a0 +1a4b: 64 06 cmp a,$06 +1a4d: f0 ec beq $1a3b +1a4f: c4 06 mov $06,a +1a51: 5d mov x,a +1a52: f5 a7 e0 mov a,$e0a7+x +1a55: 65 02 05 cmp a,$0502 +1a58: 90 e5 bcc $1a3f +1a5a: c5 02 05 mov $0502,a +1a5d: 7d mov a,x +1a5e: 1c asl a +1a5f: 1c asl a +1a60: 5d mov x,a +1a61: 4d push x +1a62: f5 e8 e0 mov a,$e0e8+x +1a65: c4 10 mov $10,a +1a67: f5 e9 e0 mov a,$e0e9+x +1a6a: c4 11 mov $11,a +1a6c: 04 10 or a,$10 +1a6e: f0 4b beq $1abb +1a70: e8 60 mov a,#$60 +1a72: c5 f2 00 mov $00f2,a +1a75: e8 00 mov a,#$00 +1a77: c5 f3 00 mov $00f3,a +1a7a: e8 61 mov a,#$61 +1a7c: c5 f2 00 mov $00f2,a +1a7f: e8 00 mov a,#$00 +1a81: c5 f3 00 mov $00f3,a +1a84: e8 5c mov a,#$5c +1a86: c4 f2 mov $f2,a +1a88: e8 40 mov a,#$40 +1a8a: c4 f3 mov $f3,a +1a8c: 3f 16 1b call $1b16 +1a8f: e5 00 05 mov a,$0500 +1a92: d0 11 bne $1aa5 +1a94: e8 ff mov a,#$ff +1a96: c5 00 05 mov $0500,a +1a99: e5 2d 03 mov a,$032d +1a9c: c5 8d 04 mov $048d,a +1a9f: e5 5d 03 mov a,$035d +1aa2: c5 8c 04 mov $048c,a +1aa5: e4 10 mov a,$10 +1aa7: c4 2c mov $2c,a +1aa9: e4 11 mov a,$11 +1aab: c4 2d mov $2d,a +1aad: e8 ff mov a,#$ff +1aaf: c5 03 05 mov $0503,a +1ab2: cd 06 mov x,#$06 +1ab4: f5 45 17 mov a,$1745+x +1ab7: 04 1a or a,$1a +1ab9: c4 1a mov $1a,a +1abb: ce pop x +1abc: f5 ea e0 mov a,$e0ea+x +1abf: c4 10 mov $10,a +1ac1: f5 eb e0 mov a,$e0eb+x +1ac4: c4 11 mov $11,a +1ac6: 04 10 or a,$10 +1ac8: f0 4b beq $1b15 +1aca: e8 70 mov a,#$70 +1acc: c5 f2 00 mov $00f2,a +1acf: e8 00 mov a,#$00 +1ad1: c5 f3 00 mov $00f3,a +1ad4: e8 71 mov a,#$71 +1ad6: c5 f2 00 mov $00f2,a +1ad9: e8 00 mov a,#$00 +1adb: c5 f3 00 mov $00f3,a +1ade: e8 5c mov a,#$5c +1ae0: c4 f2 mov $f2,a +1ae2: e8 80 mov a,#$80 +1ae4: c4 f3 mov $f3,a +1ae6: 3f 69 1b call $1b69 +1ae9: e5 01 05 mov a,$0501 +1aec: d0 11 bne $1aff +1aee: e8 ff mov a,#$ff +1af0: c5 01 05 mov $0501,a +1af3: e5 2f 03 mov a,$032f +1af6: c5 8f 04 mov $048f,a +1af9: e5 5f 03 mov a,$035f +1afc: c5 8e 04 mov $048e,a +1aff: e4 10 mov a,$10 +1b01: c4 2e mov $2e,a +1b03: e4 11 mov a,$11 +1b05: c4 2f mov $2f,a +1b07: e8 ff mov a,#$ff +1b09: c5 04 05 mov $0504,a +1b0c: cd 07 mov x,#$07 +1b0e: f5 45 17 mov a,$1745+x +1b11: 04 1a or a,$1a +1b13: c4 1a mov $1a,a +1b15: 6f ret + +1b16: e8 00 mov a,#$00 +1b18: c5 2c 04 mov $042c,a +1b1b: c5 2d 04 mov $042d,a +1b1e: c5 3c 04 mov $043c,a +1b21: c5 3d 04 mov $043d,a +1b24: c5 4c 04 mov $044c,a +1b27: c5 4d 04 mov $044d,a +1b2a: c5 56 04 mov $0456,a +1b2d: c5 5e 04 mov $045e,a +1b30: c5 66 04 mov $0466,a +1b33: c5 6e 04 mov $046e,a +1b36: c5 76 04 mov $0476,a +1b39: c5 1d 05 mov $051d,a +1b3c: c5 9e 04 mov $049e,a +1b3f: c5 c4 04 mov $04c4,a +1b42: c5 c5 04 mov $04c5,a +1b45: c5 c6 04 mov $04c6,a +1b48: c5 dd 00 mov $00dd,a +1b4b: e5 91 04 mov a,$0491 +1b4e: 28 bf and a,#$bf +1b50: c5 91 04 mov $0491,a +1b53: e5 92 04 mov a,$0492 +1b56: 28 bf and a,#$bf +1b58: c5 92 04 mov $0492,a +1b5b: e5 93 04 mov a,$0493 +1b5e: 28 bf and a,#$bf +1b60: c5 93 04 mov $0493,a +1b63: e8 0a mov a,#$0a +1b65: c5 7e 04 mov $047e,a +1b68: 6f ret + +1b69: e8 00 mov a,#$00 +1b6b: c5 2e 04 mov $042e,a +1b6e: c5 2f 04 mov $042f,a +1b71: c5 3e 04 mov $043e,a +1b74: c5 3f 04 mov $043f,a +1b77: c5 4e 04 mov $044e,a +1b7a: c5 4f 04 mov $044f,a +1b7d: c5 57 04 mov $0457,a +1b80: c5 5f 04 mov $045f,a +1b83: c5 67 04 mov $0467,a +1b86: c5 6f 04 mov $046f,a +1b89: c5 77 04 mov $0477,a +1b8c: c5 1f 05 mov $051f,a +1b8f: c5 9f 04 mov $049f,a +1b92: c5 ca 04 mov $04ca,a +1b95: c5 cb 04 mov $04cb,a +1b98: c5 cc 04 mov $04cc,a +1b9b: c5 df 00 mov $00df,a +1b9e: e5 91 04 mov a,$0491 +1ba1: 28 7f and a,#$7f +1ba3: c5 91 04 mov $0491,a +1ba6: e5 92 04 mov a,$0492 +1ba9: 28 7f and a,#$7f +1bab: c5 92 04 mov $0492,a +1bae: e5 93 04 mov a,$0493 +1bb1: 28 7f and a,#$7f +1bb3: c5 93 04 mov $0493,a +1bb6: e8 0a mov a,#$0a +1bb8: c5 7f 04 mov $047f,a + +1bbb: 6f ret diff --git a/snes/NSPC/Aisystem Tokyo/Puzzle Bobble - Bust-A-Move ($1000).bin b/snes/NSPC/Aisystem Tokyo/Puzzle Bobble - Bust-A-Move ($1000).bin new file mode 100644 index 00000000..86e33a0d Binary files /dev/null and b/snes/NSPC/Aisystem Tokyo/Puzzle Bobble - Bust-A-Move ($1000).bin differ diff --git a/snes/NSPC/Aisystem Tokyo/Puzzle Bobble - Bust-A-Move.s b/snes/NSPC/Aisystem Tokyo/Puzzle Bobble - Bust-A-Move.s new file mode 100644 index 00000000..c8c45b58 --- /dev/null +++ b/snes/NSPC/Aisystem Tokyo/Puzzle Bobble - Bust-A-Move.s @@ -0,0 +1,2359 @@ +1000: 20 clrp +1001: cd cf mov x,#$cf +1003: bd mov sp,x +1004: e8 00 mov a,#$00 +1006: 5d mov x,a +1007: d5 00 00 mov $0000+x,a +100a: 3d inc x +100b: c8 f0 cmp x,#$f0 +100d: d0 f8 bne $1007 +100f: cd 02 mov x,#$02 +1011: c9 01 00 mov $0001,x +1014: fd mov y,a +1015: d7 00 mov ($00)+y,a +1017: fc inc y +1018: d0 fb bne $1015 +101a: 3d inc x +101b: c9 01 00 mov $0001,x +101e: c8 0f cmp x,#$0f +1020: d0 f3 bne $1015 +1022: c5 01 00 mov $0001,a +1025: fa 48 84 mov ($84),($48) +1028: fa 49 85 mov ($85),($49) +102b: fa 40 8e mov ($8e),($40) +102e: fa 41 92 mov ($92),($41) +1031: fa 42 8f mov ($8f),($42) +1034: fa 43 93 mov ($93),($43) +1037: fa 44 90 mov ($90),($44) +103a: fa 45 94 mov ($94),($45) +103d: fa 46 91 mov ($91),($46) +1040: fa 47 95 mov ($95),($47) +1043: cd 03 mov x,#$03 +1045: d4 86 mov $86+x,a +1047: d4 8a mov $8a+x,a +1049: d4 a6 mov $a6+x,a +104b: d4 aa mov $aa+x,a +104d: 1d dec x +104e: 10 f5 bpl $1045 +1050: c4 ae mov $ae,a +1052: c4 c1 mov $c1,a +1054: c4 c2 mov $c2,a +1056: c4 c3 mov $c3,a +1058: c4 c4 mov $c4,a +105a: c4 c5 mov $c5,a +105c: cd 1f mov x,#$1f +105e: 3f 29 20 call $2029 +1061: 1d dec x +1062: 10 fa bpl $105e +1064: cd 0a mov x,#$0a +1066: 3f 88 20 call $2088 +1069: 3f bf 20 call $20bf +106c: 1d dec x +106d: 10 f7 bpl $1066 +106f: cd 1f mov x,#$1f +1071: f5 c0 31 mov a,$31c0+x +1074: d4 40 mov $40+x,a +1076: 1d dec x +1077: 10 f8 bpl $1071 +1079: 8d 6c mov y,#$6c +107b: e8 60 mov a,#$60 +107d: c4 c8 mov $c8,a +107f: 3f 00 21 call $2100 +1082: e8 00 mov a,#$00 +1084: c4 c6 mov $c6,a +1086: c4 c7 mov $c7,a +1088: c4 c9 mov $c9,a +108a: c4 ca mov $ca,a +108c: c4 cb mov $cb,a +108e: c4 cc mov $cc,a +1090: c4 cd mov $cd,a +1092: c4 ce mov $ce,a +1094: 3f c8 13 call $13c8 +1097: 8d 5d mov y,#$5d +1099: e4 5e mov a,$5e +109b: 3f 00 21 call $2100 +109e: 8d 6d mov y,#$6d +10a0: e4 5f mov a,$5f +10a2: 3f 00 21 call $2100 +10a5: 8d 7d mov y,#$7d +10a7: e8 00 mov a,#$00 +10a9: 3f 00 21 call $2100 +10ac: 8d 2d mov y,#$2d +10ae: 3f 00 21 call $2100 +10b1: 8d 3d mov y,#$3d +10b3: 3f 00 21 call $2100 +10b6: 8d 4d mov y,#$4d +10b8: 3f 00 21 call $2100 +10bb: 3f 5f 21 call $215f +10be: 8d 6c mov y,#$6c +10c0: e8 20 mov a,#$20 +10c2: c4 c8 mov $c8,a +10c4: 3f 00 21 call $2100 +10c7: 3f 52 13 call $1352 +10ca: e5 fd 00 mov a,$00fd +10cd: 28 0f and a,#$0f +10cf: f0 f9 beq $10ca +10d1: c4 09 mov $09,a +10d3: e5 f5 00 mov a,$00f5 +10d6: 64 c2 cmp a,$c2 +10d8: d0 03 bne $10dd +10da: 5f 25 12 jmp $1225 + +10dd: c4 c2 mov $c2,a +10df: e5 f4 00 mov a,$00f4 +10e2: 5d mov x,a +10e3: 28 f0 and a,#$f0 +10e5: 68 f0 cmp a,#$f0 +10e7: f0 03 beq $10ec +10e9: 5f 1c 12 jmp $121c + +10ec: 7d mov a,x +10ed: fd mov y,a +10ee: 28 0f and a,#$0f +10f0: 48 0f eor a,#$0f +10f2: 1c asl a +10f3: 5d mov x,a +10f4: dd mov a,y +10f5: 1f f8 10 jmp ($10f8+x) + +10f8: dw $1118 +10fa: dw $1138 +10fc: dw $1167 +11fe: dw $1167 +1100: dw $116e +1102: dw $1197 +1104: dw $11be +1106: dw $11dd +1108: dw $11fc +110a: dw $11fc +110c: dw $11fc +110e: dw $11fc +1110: dw $1208 +1112: dw $1208 +1114: dw $1208 +1116: dw $1208 + +1118: 8d 6c mov y,#$6c +111a: e8 e0 mov a,#$e0 +111c: 3f 00 21 call $2100 +111f: e8 80 mov a,#$80 +1121: c5 f1 00 mov $00f1,a +1124: ba 50 movw ya,$50 +1126: da 10 movw $10,ya +1128: cd 00 mov x,#$00 +112a: 8d 00 mov y,#$00 +112c: f7 10 mov a,($10)+y +112e: c4 12 mov $12,a +1130: fc inc y +1131: f7 10 mov a,($10)+y +1133: c4 13 mov $13,a +1135: 1f 12 00 jmp ($0012+x) + +1138: 3f af 21 call $21af +113b: e5 f4 00 mov a,$00f4 +113e: 05 f5 00 or a,$00f5 +1141: 05 f6 00 or a,$00f6 +1144: 05 f7 00 or a,$00f7 +1147: d0 f2 bne $113b +1149: e8 dd mov a,#$dd +114b: eb c2 mov y,$c2 +114d: c5 f4 00 mov $00f4,a +1150: 65 f4 00 cmp a,$00f4 +1153: d0 fb bne $1150 +1155: 5e f5 00 cmp y,$00f5 +1158: d0 f6 bne $1150 +115a: e8 ee mov a,#$ee +115c: c5 f4 00 mov $00f4,a +115f: e5 f4 00 mov a,$00f4 +1162: d0 fb bne $115f +1164: 5f 25 12 jmp $1225 + +1167: 28 01 and a,#$01 +1169: c4 c3 mov $c3,a +116b: 5f 25 12 jmp $1225 + +116e: ec f7 00 mov y,$00f7 +1171: e5 f6 00 mov a,$00f6 +1174: da 10 movw $10,ya +1176: 8d 00 mov y,#$00 +1178: e4 c2 mov a,$c2 +117a: c5 f5 00 mov $00f5,a +117d: e5 f5 00 mov a,$00f5 +1180: 64 c2 cmp a,$c2 +1182: f0 f9 beq $117d +1184: c4 c2 mov $c2,a +1186: e5 f4 00 mov a,$00f4 +1189: d0 03 bne $118e +118b: 5f 25 12 jmp $1225 + +118e: e5 f6 00 mov a,$00f6 +1191: d7 10 mov ($10)+y,a +1193: 3a 10 incw $10 +1195: 2f e1 bra $1178 +1197: ec f7 00 mov y,$00f7 +119a: e5 f6 00 mov a,$00f6 +119d: da 10 movw $10,ya +119f: 8d 00 mov y,#$00 +11a1: f7 10 mov a,($10)+y +11a3: c5 f6 00 mov $00f6,a +11a6: 3a 10 incw $10 +11a8: e4 c2 mov a,$c2 +11aa: c5 f5 00 mov $00f5,a +11ad: e5 f5 00 mov a,$00f5 +11b0: 64 c2 cmp a,$c2 +11b2: f0 f9 beq $11ad +11b4: c4 c2 mov $c2,a +11b6: e5 f4 00 mov a,$00f4 +11b9: d0 e6 bne $11a1 +11bb: 5f 25 12 jmp $1225 + +11be: ec f6 00 mov y,$00f6 +11c1: e5 f7 00 mov a,$00f7 +11c4: 3f 00 21 call $2100 +11c7: e4 c2 mov a,$c2 +11c9: c5 f5 00 mov $00f5,a +11cc: e5 f5 00 mov a,$00f5 +11cf: 64 c2 cmp a,$c2 +11d1: f0 f9 beq $11cc +11d3: c4 c2 mov $c2,a +11d5: e5 f4 00 mov a,$00f4 +11d8: d0 e4 bne $11be +11da: 5f 25 12 jmp $1225 + +11dd: ec f6 00 mov y,$00f6 +11e0: 3f 07 21 call $2107 +11e3: c5 f7 00 mov $00f7,a +11e6: e4 c2 mov a,$c2 +11e8: c5 f5 00 mov $00f5,a +11eb: e5 f5 00 mov a,$00f5 +11ee: 64 c2 cmp a,$c2 +11f0: f0 f9 beq $11eb +11f2: c4 c2 mov $c2,a +11f4: e5 f4 00 mov a,$00f4 +11f7: d0 e4 bne $11dd +11f9: 5f 25 12 jmp $1225 + +11fc: e5 f6 00 mov a,$00f6 +11ff: c4 84 mov $84,a +1201: e5 f7 00 mov a,$00f7 +1204: c4 85 mov $85,a +1206: 2f 1d bra $1225 +1208: 28 03 and a,#$03 +120a: 5d mov x,a +120b: e5 f6 00 mov a,$00f6 +120e: c4 06 mov $06,a +1210: e5 f7 00 mov a,$00f7 +1213: c4 00 mov $00,a +1215: c4 01 mov $01,a +1217: 3f 39 14 call $1439 +121a: 2f 09 bra $1225 +121c: e9 f6 00 mov x,$00f6 +121f: e5 f7 00 mov a,$00f7 +1222: 3f 76 14 call $1476 +1225: ba 82 movw ya,$82 +1227: da 0a movw $0a,ya +1229: e4 c4 mov a,$c4 +122b: f0 07 beq $1234 +122d: cd 02 mov x,#$02 +122f: 3f c0 12 call $12c0 +1232: 2f 08 bra $123c +1234: cd 0a mov x,#$0a +1236: 3f c0 12 call $12c0 +1239: 1d dec x +123a: 10 fa bpl $1236 +123c: eb ca mov y,$ca +123e: f6 e0 0c mov a,$0ce0+y +1241: f0 07 beq $124a +1243: f6 a6 0d mov a,$0da6+y +1246: 64 c1 cmp a,$c1 +1248: f0 02 beq $124c +124a: c4 c1 mov $c1,a +124c: f6 85 0d mov a,$0d85+y +124f: c4 cb mov $cb,a +1251: f6 9b 0d mov a,$0d9b+y +1254: c4 cc mov $cc,a +1256: f6 b1 0d mov a,$0db1+y +1259: c4 cd mov $cd,a +125b: f6 bc 0d mov a,$0dbc+y +125e: c4 ce mov $ce,a +1260: 3f c8 13 call $13c8 +1263: 3f b0 15 call $15b0 +1266: 3f dd 17 call $17dd +1269: 8d 07 mov y,#$07 +126b: 0b 00 asl $00 +126d: f6 e3 0c mov a,$0ce3+y +1270: f0 02 beq $1274 +1272: ab 00 inc $00 +1274: dc dec y +1275: 10 f4 bpl $126b +1277: e4 00 mov a,$00 +1279: c5 f7 00 mov $00f7,a +127c: 8d 03 mov y,#$03 +127e: 0b 00 asl $00 +1280: f6 a6 00 mov a,$00a6+y +1283: 16 aa 00 or a,$00aa+y +1286: f0 02 beq $128a +1288: ab 00 inc $00 +128a: dc dec y +128b: 10 f1 bpl $127e +128d: 0b 00 asl $00 +128f: e4 c4 mov a,$c4 +1291: f0 02 beq $1295 +1293: ab 00 inc $00 +1295: 8d 02 mov y,#$02 +1297: 0b 00 asl $00 +1299: f6 e0 0c mov a,$0ce0+y +129c: f0 02 beq $12a0 +129e: ab 00 inc $00 +12a0: dc dec y +12a1: 10 f4 bpl $1297 +12a3: e4 00 mov a,$00 +12a5: c5 f6 00 mov $00f6,a +12a8: e4 c5 mov a,$c5 +12aa: c5 f4 00 mov $00f4,a +12ad: e4 c2 mov a,$c2 +12af: c5 f5 00 mov $00f5,a +12b2: 5f c7 10 jmp $10c7 + +12b5: 30 08 bmi $12bf +12b7: 6d push y +12b8: 6d push y +12b9: fd mov y,a +12ba: ae pop a +12bb: d6 40 08 mov $0840+y,a +12be: ee pop y +12bf: 6f ret + +12c0: f5 e0 0c mov a,$0ce0+x +12c3: f0 fa beq $12bf +12c5: 10 44 bpl $130b +12c7: bc inc a +12c8: d5 e0 0c mov $0ce0+x,a +12cb: f0 33 beq $1300 +12cd: 8d ff mov y,#$ff +12cf: f5 1f 0e mov a,$0e1f+x +12d2: 3f b5 12 call $12b5 +12d5: f5 2a 0e mov a,$0e2a+x +12d8: 3f b5 12 call $12b5 +12db: f5 35 0e mov a,$0e35+x +12de: 3f b5 12 call $12b5 +12e1: f5 40 0e mov a,$0e40+x +12e4: 3f b5 12 call $12b5 +12e7: f5 4b 0e mov a,$0e4b+x +12ea: 3f b5 12 call $12b5 +12ed: f5 56 0e mov a,$0e56+x +12f0: 3f b5 12 call $12b5 +12f3: f5 61 0e mov a,$0e61+x +12f6: 3f b5 12 call $12b5 +12f9: f5 6c 0e mov a,$0e6c+x +12fc: 3f b5 12 call $12b5 +12ff: 6f ret + +1300: bc inc a +1301: d5 e0 0c mov $0ce0+x,a +1304: 8d 01 mov y,#$01 +1306: 3f cf 12 call $12cf +1309: 2f 43 bra $134e +130b: fa 09 08 mov ($08),($09) +130e: eb 4a mov y,$4a +1310: f5 0c 0d mov a,$0d0c+x +1313: cf mul ya +1314: da 0c movw $0c,ya +1316: f5 14 0e mov a,$0e14+x +1319: c4 00 mov $00,a +131b: f5 09 0e mov a,$0e09+x +131e: fd mov y,a +131f: f5 fe 0d mov a,$0dfe+x +1322: 7a 0c addw ya,$0c +1324: 5a 0a cmpw ya,$0a +1326: 90 0e bcc $1336 +1328: 2d push a +1329: e4 00 mov a,$00 +132b: bc inc a +132c: 28 07 and a,#$07 +132e: d0 01 bne $1331 +1330: 9c dec a +1331: c4 00 mov $00,a +1333: ae pop a +1334: 9a 0a subw ya,$0a +1336: 6e 08 e9 dbnz $08,$1322 +1339: d5 fe 0d mov $0dfe+x,a +133c: dd mov a,y +133d: d5 09 0e mov $0e09+x,a +1340: e4 00 mov a,$00 +1342: d5 14 0e mov $0e14+x,a +1345: f0 0a beq $1351 +1347: 9c dec a +1348: d5 14 0e mov $0e14+x,a +134b: 3f 1a 18 call $181a +134e: 3f 67 19 call $1967 +1351: 6f ret + +1352: e4 c6 mov a,$c6 +1354: f0 38 beq $138e +1356: e5 fe 00 mov a,$00fe +1359: 28 0f and a,#$0f +135b: 48 ff eor a,#$ff +135d: 80 setc +135e: 84 c7 adc a,$c7 +1360: 10 02 bpl $1364 +1362: e8 00 mov a,#$00 +1364: d0 26 bne $138c +1366: 8b c6 dec $c6 +1368: d0 05 bne $136f +136a: 9c dec a +136b: c4 c9 mov $c9,a +136d: 2f 1f bra $138e +136f: c4 c8 mov $c8,a +1371: 8d 6c mov y,#$6c +1373: 3f 07 21 call $2107 +1376: 28 df and a,#$df +1378: 3f 00 21 call $2100 +137b: e8 01 mov a,#$01 +137d: c5 f1 00 mov $00f1,a +1380: e8 03 mov a,#$03 +1382: c5 f1 00 mov $00f1,a +1385: 8d 7d mov y,#$7d +1387: 3f 07 21 call $2107 +138a: 28 0f and a,#$0f +138c: c4 c7 mov $c7,a +138e: 6f ret + +138f: 2d push a +1390: e8 20 mov a,#$20 +1392: c4 c8 mov $c8,a +1394: 8d 6c mov y,#$6c +1396: 3f 07 21 call $2107 +1399: 08 20 or a,#$20 +139b: 3f 00 21 call $2100 +139e: ae pop a +139f: 8d 7d mov y,#$7d +13a1: 3f 00 21 call $2100 +13a4: 9f xcn a +13a5: f0 16 beq $13bd +13a7: 5c lsr a +13a8: 48 ff eor a,#$ff +13aa: 80 setc +13ab: 84 5f adc a,$5f +13ad: 8d 6d mov y,#$6d +13af: 3f 00 21 call $2100 +13b2: e8 01 mov a,#$01 +13b4: c5 f1 00 mov $00f1,a +13b7: e8 03 mov a,#$03 +13b9: c5 f1 00 mov $00f1,a +13bc: 9c dec a +13bd: c4 c6 mov $c6,a +13bf: e8 0f mov a,#$0f +13c1: c4 c7 mov $c7,a +13c3: e8 00 mov a,#$00 +13c5: c4 c9 mov $c9,a +13c7: 6f ret + +13c8: 4d push x +13c9: e4 ce mov a,$ce +13cb: 9f xcn a +13cc: 28 f0 and a,#$f0 +13ce: 5c lsr a +13cf: fd mov y,a +13d0: cd 0f mov x,#$0f +13d2: 3f 2f 14 call $142f +13d5: cd 1f mov x,#$1f +13d7: 3f 2f 14 call $142f +13da: cd 2f mov x,#$2f +13dc: 3f 2f 14 call $142f +13df: cd 3f mov x,#$3f +13e1: 3f 2f 14 call $142f +13e4: cd 4f mov x,#$4f +13e6: 3f 2f 14 call $142f +13e9: cd 5f mov x,#$5f +13eb: 3f 2f 14 call $142f +13ee: cd 6f mov x,#$6f +13f0: 3f 2f 14 call $142f +13f3: cd 7f mov x,#$7f +13f5: 3f 2f 14 call $142f +13f8: ce pop x +13f9: e4 c9 mov a,$c9 +13fb: f0 02 beq $13ff +13fd: e4 cd mov a,$cd +13ff: 8d 0d mov y,#$0d +1401: 3f 00 21 call $2100 +1404: e4 84 mov a,$84 +1406: 5c lsr a +1407: 2d push a +1408: 8d 0c mov y,#$0c +140a: 3f 00 21 call $2100 +140d: e4 c9 mov a,$c9 +140f: 24 cb and a,$cb +1411: ee pop y +1412: cf mul ya +1413: dd mov a,y +1414: 8d 2c mov y,#$2c +1416: 3f 00 21 call $2100 +1419: e4 85 mov a,$85 +141b: 5c lsr a +141c: 2d push a +141d: 8d 1c mov y,#$1c +141f: 3f 00 21 call $2100 +1422: e4 c9 mov a,$c9 +1424: 24 cc and a,$cc +1426: ee pop y +1427: cf mul ya +1428: dd mov a,y +1429: 8d 3c mov y,#$3c +142b: 3f 00 21 call $2100 +142e: 6f ret + +142f: f7 56 mov a,($56)+y +1431: fc inc y +1432: c9 f2 00 mov $00f2,x +1435: c5 f3 00 mov $00f3,a +1438: 6f ret + +1439: e8 00 mov a,#$00 +143b: d4 86 mov $86+x,a +143d: d4 8a mov $8a+x,a +143f: e4 06 mov a,$06 +1441: d4 a6 mov $a6+x,a +1443: d4 aa mov $aa+x,a +1445: 2d push a +1446: e4 01 mov a,$01 +1448: 2d push a +1449: e4 00 mov a,$00 +144b: c4 04 mov $04,a +144d: f4 8e mov a,$8e+x +144f: c4 02 mov $02,a +1451: 4d push x +1452: 3f c1 1f call $1fc1 +1455: ce pop x +1456: e4 07 mov a,$07 +1458: d4 9e mov $9e+x,a +145a: e4 06 mov a,$06 +145c: d4 96 mov $96+x,a +145e: ee pop y +145f: ae pop a +1460: c4 06 mov $06,a +1462: cb 04 mov $04,y +1464: f4 92 mov a,$92+x +1466: c4 02 mov $02,a +1468: 4d push x +1469: 3f c1 1f call $1fc1 +146c: ce pop x +146d: e4 07 mov a,$07 +146f: d4 a2 mov $a2+x,a +1471: e4 06 mov a,$06 +1473: d4 9a mov $9a+x,a +1475: 6f ret + +1476: c8 02 cmp x,#$02 +1478: d0 0d bne $1487 +147a: 2d push a +147b: 28 80 and a,#$80 +147d: c4 c4 mov $c4,a +147f: 30 03 bmi $1484 +1481: 3f 94 14 call $1494 +1484: ae pop a +1485: 28 7f and a,#$7f +1487: 68 29 cmp a,#$29 +1489: b0 08 bcs $1493 +148b: c8 03 cmp x,#$03 +148d: 90 38 bcc $14c7 +148f: c8 0b cmp x,#$0b +1491: 90 10 bcc $14a3 +1493: 6f ret + +1494: 2d push a +1495: 4d push x +1496: cd 1f mov x,#$1f +1498: e8 ff mov a,#$ff +149a: d5 e0 0b mov $0be0+x,a +149d: 1d dec x +149e: 10 fa bpl $149a +14a0: ce pop x +14a1: ae pop a +14a2: 6f ret + +14a3: 2d push a +14a4: f5 e0 0c mov a,$0ce0+x +14a7: f0 03 beq $14ac +14a9: 3f 76 15 call $1576 +14ac: ae pop a +14ad: 68 00 cmp a,#$00 +14af: d0 04 bne $14b5 +14b1: d5 e0 0c mov $0ce0+x,a +14b4: 6f ret + +14b5: 2d push a +14b6: 3f 88 20 call $2088 +14b9: 3f bf 20 call $20bf +14bc: 3f 3f 15 call $153f +14bf: e8 fd mov a,#$fd +14c1: d5 e0 0c mov $0ce0+x,a +14c4: ae pop a +14c5: 2f 15 bra $14dc +14c7: 2d push a +14c8: 3f 88 20 call $2088 +14cb: 3f bf 20 call $20bf +14ce: e8 fd mov a,#$fd +14d0: d5 e0 0c mov $0ce0+x,a +14d3: ae pop a +14d4: 68 00 cmp a,#$00 +14d6: d0 04 bne $14dc +14d8: d5 e0 0c mov $0ce0+x,a +14db: 6f ret + +14dc: 9c dec a +14dd: 1c asl a +14de: fd mov y,a +14df: f7 5c mov a,($5c)+y +14e1: 2d push a +14e2: fc inc y +14e3: f7 5c mov a,($5c)+y +14e5: fd mov y,a +14e6: ae pop a +14e7: da 14 movw $14,ya +14e9: 8d 00 mov y,#$00 +14eb: f5 1f 0e mov a,$0e1f+x +14ee: 3f 1c 15 call $151c +14f1: f5 2a 0e mov a,$0e2a+x +14f4: 3f 1c 15 call $151c +14f7: f5 35 0e mov a,$0e35+x +14fa: 3f 1c 15 call $151c +14fd: f5 40 0e mov a,$0e40+x +1500: 3f 1c 15 call $151c +1503: f5 4b 0e mov a,$0e4b+x +1506: 3f 1c 15 call $151c +1509: f5 56 0e mov a,$0e56+x +150c: 3f 1c 15 call $151c +150f: f5 61 0e mov a,$0e61+x +1512: 3f 1c 15 call $151c +1515: f5 6c 0e mov a,$0e6c+x +1518: 3f 1c 15 call $151c +151b: 6f ret + +151c: 30 20 bmi $153e +151e: 4d push x +151f: 5d mov x,a +1520: 6d push y +1521: 3f 29 20 call $2029 +1524: ee pop y +1525: dd mov a,y +1526: d5 60 08 mov $0860+x,a +1529: fc inc y +152a: e4 14 mov a,$14 +152c: d5 a0 08 mov $08a0+x,a +152f: e4 15 mov a,$15 +1531: d5 c0 08 mov $08c0+x,a +1534: e8 ff mov a,#$ff +1536: d5 40 08 mov $0840+x,a +1539: ae pop a +153a: d5 80 08 mov $0880+x,a +153d: 5d mov x,a +153e: 6f ret + +153f: 8d 07 mov y,#$07 +1541: 3f 60 15 call $1560 +1544: d5 1f 0e mov $0e1f+x,a +1547: 30 16 bmi $155f +1549: 3f 60 15 call $1560 +154c: d5 2a 0e mov $0e2a+x,a +154f: 30 0e bmi $155f +1551: 3f 60 15 call $1560 +1554: d5 35 0e mov $0e35+x,a +1557: 30 06 bmi $155f +1559: 3f 60 15 call $1560 +155c: d5 40 0e mov $0e40+x,a +155f: 6f ret + +1560: f6 58 08 mov a,$0858+y +1563: f0 06 beq $156b +1565: dc dec y +1566: 10 f8 bpl $1560 +1568: e8 80 mov a,#$80 +156a: 6f ret + +156b: e8 ff mov a,#$ff +156d: d6 58 08 mov $0858+y,a +1570: dd mov a,y +1571: 60 clrc +1572: 88 18 adc a,#$18 +1574: dc dec y +1575: 6f ret + +1576: f5 1f 0e mov a,$0e1f+x +1579: 3f a7 15 call $15a7 +157c: f5 2a 0e mov a,$0e2a+x +157f: 3f a7 15 call $15a7 +1582: f5 35 0e mov a,$0e35+x +1585: 3f a7 15 call $15a7 +1588: f5 40 0e mov a,$0e40+x +158b: 3f a7 15 call $15a7 +158e: f5 4b 0e mov a,$0e4b+x +1591: 3f a7 15 call $15a7 +1594: f5 56 0e mov a,$0e56+x +1597: 3f a7 15 call $15a7 +159a: f5 61 0e mov a,$0e61+x +159d: 3f a7 15 call $15a7 +15a0: f5 6c 0e mov a,$0e6c+x +15a3: 3f a7 15 call $15a7 +15a6: 6f ret + +15a7: 30 06 bmi $15af +15a9: fd mov y,a +15aa: e8 00 mov a,#$00 +15ac: d6 40 08 mov $0840+y,a +15af: 6f ret + +15b0: e8 01 mov a,#$01 +15b2: c4 20 mov $20,a +15b4: 9c dec a +15b5: c4 24 mov $24,a +15b7: c4 26 mov $26,a +15b9: c4 28 mov $28,a +15bb: c4 2a mov $2a,a +15bd: c4 2c mov $2c,a +15bf: c4 22 mov $22,a +15c1: e5 e2 0c mov a,$0ce2 +15c4: d0 04 bne $15ca +15c6: e4 c4 mov a,$c4 +15c8: f0 06 beq $15d0 +15ca: cd 10 mov x,#$10 +15cc: 8d 10 mov y,#$10 +15ce: 2f 13 bra $15e3 +15d0: cd 01 mov x,#$01 +15d2: f5 e0 0c mov a,$0ce0+x +15d5: d0 05 bne $15dc +15d7: 1d dec x +15d8: 10 f8 bpl $15d2 +15da: cd 03 mov x,#$03 +15dc: 7d mov a,x +15dd: 1c asl a +15de: 1c asl a +15df: 1c asl a +15e0: 5d mov x,a +15e1: 8d 18 mov y,#$18 +15e3: 3f 28 16 call $1628 +15e6: 3f 28 16 call $1628 +15e9: 3f 28 16 call $1628 +15ec: 3f 28 16 call $1628 +15ef: 3f 28 16 call $1628 +15f2: 3f 28 16 call $1628 +15f5: 3f 28 16 call $1628 +15f8: 3f 28 16 call $1628 +15fb: 8d 2d mov y,#$2d +15fd: e4 24 mov a,$24 +15ff: 3f 00 21 call $2100 +1602: 8d 3d mov y,#$3d +1604: e4 2a mov a,$2a +1606: 3f 00 21 call $2100 +1609: 8d 4d mov y,#$4d +160b: e4 2c mov a,$2c +160d: 3f 00 21 call $2100 +1610: 8d 6c mov y,#$6c +1612: e4 2e mov a,$2e +1614: 04 c8 or a,$c8 +1616: 3f 00 21 call $2100 +1619: 8d 4c mov y,#$4c +161b: e4 26 mov a,$26 +161d: 3f 00 21 call $2100 +1620: 8d 5c mov y,#$5c +1622: e4 28 mov a,$28 +1624: 3f 00 21 call $2100 +1627: 6f ret + +1628: 6d push y +1629: 4d push x +162a: f6 40 08 mov a,$0840+y +162d: f0 02 beq $1631 +162f: dd mov a,y +1630: 5d mov x,a +1631: e4 22 mov a,$22 +1633: 9f xcn a +1634: fd mov y,a +1635: f5 40 08 mov a,$0840+x +1638: 30 0b bmi $1645 +163a: d0 12 bne $164e +163c: e4 20 mov a,$20 +163e: 04 28 or a,$28 +1640: c4 28 mov $28,a +1642: 5f cc 17 jmp $17cc + +1645: e4 20 mov a,$20 +1647: 04 28 or a,$28 +1649: c4 28 mov $28,a +164b: 5f cc 17 jmp $17cc + +164e: 6d push y +164f: f5 20 06 mov a,$0620+x +1652: 10 02 bpl $1656 +1654: 48 ff eor a,#$ff +1656: bc inc a +1657: fd mov y,a +1658: f5 c0 05 mov a,$05c0+x +165b: cf mul ya +165c: dd mov a,y +165d: 48 7f eor a,#$7f +165f: 1c asl a +1660: bc inc a +1661: fd mov y,a +1662: f5 60 06 mov a,$0660+x +1665: cf mul ya +1666: f5 20 0a mov a,$0a20+x +1669: cf mul ya +166a: 4d push x +166b: f5 80 08 mov a,$0880+x +166e: 5d mov x,a +166f: f5 43 0d mov a,$0d43+x +1672: cf mul ya +1673: ce pop x +1674: dd mov a,y +1675: cf mul ya +1676: cb 04 mov $04,y +1678: 4d push x +1679: f5 40 03 mov a,$0340+x +167c: 3c rol a +167d: 3c rol a +167e: c4 07 mov $07,a +1680: e4 c3 mov a,$c3 +1682: d0 06 bne $168a +1684: 8d 0a mov y,#$0a +1686: e8 00 mov a,#$00 +1688: 2f 07 bra $1691 +168a: f5 20 03 mov a,$0320+x +168d: fd mov y,a +168e: f5 00 03 mov a,$0300+x +1691: cd 01 mov x,#$01 +1693: da 02 movw $02,ya +1695: f6 eb 20 mov a,$20eb+y +1698: c4 06 mov $06,a +169a: f6 ec 20 mov a,$20ec+y +169d: 80 setc +169e: a4 06 sbc a,$06 +16a0: eb 02 mov y,$02 +16a2: cf mul ya +16a3: dd mov a,y +16a4: eb 03 mov y,$03 +16a6: 60 clrc +16a7: 84 06 adc a,$06 +16a9: 1c asl a +16aa: eb 04 mov y,$04 +16ac: cf mul ya +16ad: dd mov a,y +16ae: 4b 07 lsr $07 +16b0: 90 03 bcc $16b5 +16b2: 48 ff eor a,#$ff +16b4: bc inc a +16b5: d4 00 mov $00+x,a +16b7: 8d 14 mov y,#$14 +16b9: e8 00 mov a,#$00 +16bb: 9a 02 subw ya,$02 +16bd: 1d dec x +16be: 10 d3 bpl $1693 +16c0: ce pop x +16c1: f5 80 08 mov a,$0880+x +16c4: 68 03 cmp a,#$03 +16c6: 90 02 bcc $16ca +16c8: e8 03 mov a,#$03 +16ca: 4d push x +16cb: 5d mov x,a +16cc: f4 8e mov a,$8e+x +16ce: eb 01 mov y,$01 +16d0: cf mul ya +16d1: cb 01 mov $01,y +16d3: f4 92 mov a,$92+x +16d5: eb 00 mov y,$00 +16d7: cf mul ya +16d8: cb 00 mov $00,y +16da: ce pop x +16db: ee pop y +16dc: e4 01 mov a,$01 +16de: 3f 00 21 call $2100 +16e1: fc inc y +16e2: e4 00 mov a,$00 +16e4: 3f 00 21 call $2100 +16e7: fc inc y +16e8: 6d push y +16e9: f5 e0 06 mov a,$06e0+x +16ec: 68 02 cmp a,#$02 +16ee: f0 05 beq $16f5 +16f0: f5 e0 0a mov a,$0ae0+x +16f3: 2f 07 bra $16fc +16f5: f5 e0 0a mov a,$0ae0+x +16f8: 80 setc +16f9: b5 00 07 sbc a,$0700+x +16fc: fd mov y,a +16fd: f5 c0 0a mov a,$0ac0+x +1700: da 00 movw $00,ya +1702: f5 00 04 mov a,$0400+x +1705: f0 32 beq $1739 +1707: f5 60 04 mov a,$0460+x +170a: 1c asl a +170b: 0d push psw +170c: 10 02 bpl $1710 +170e: 48 ff eor a,#$ff +1710: bc inc a +1711: fd mov y,a +1712: f5 e0 04 mov a,$04e0+x +1715: cf mul ya +1716: dd mov a,y +1717: 1c asl a +1718: fd mov y,a +1719: 6d push y +171a: f5 80 04 mov a,$0480+x +171d: cf mul ya +171e: dd mov a,y +171f: 8d 00 mov y,#$00 +1721: da 0e movw $0e,ya +1723: ee pop y +1724: f5 a0 04 mov a,$04a0+x +1727: cf mul ya +1728: 7a 0e addw ya,$0e +172a: da 0e movw $0e,ya +172c: ba 00 movw ya,$00 +172e: 8e pop psw +172f: b0 04 bcs $1735 +1731: 7a 0e addw ya,$0e +1733: 2f 02 bra $1737 +1735: 9a 0e subw ya,$0e +1737: da 00 movw $00,ya +1739: ee pop y +173a: f5 a0 0b mov a,$0ba0+x +173d: c4 03 mov $03,a +173f: f5 80 0b mov a,$0b80+x +1742: c4 02 mov $02,a +1744: 6d push y +1745: 3f 0e 21 call $210e +1748: da 0e movw $0e,ya +174a: ee pop y +174b: e4 0e mov a,$0e +174d: 3f 00 21 call $2100 +1750: fc inc y +1751: e4 0f mov a,$0f +1753: 3f 00 21 call $2100 +1756: fc inc y +1757: f5 00 0b mov a,$0b00+x +175a: 3f 00 21 call $2100 +175d: fc inc y +175e: f5 20 0b mov a,$0b20+x +1761: 3f 00 21 call $2100 +1764: fc inc y +1765: f5 40 0b mov a,$0b40+x +1768: 3f 00 21 call $2100 +176b: fc inc y +176c: f5 60 0b mov a,$0b60+x +176f: 3f 00 21 call $2100 +1772: f5 40 0c mov a,$0c40+x +1775: f0 0b beq $1782 +1777: f5 c0 0b mov a,$0bc0+x +177a: c4 2e mov $2e,a +177c: e4 20 mov a,$20 +177e: 04 2a or a,$2a +1780: c4 2a mov $2a,a +1782: f5 20 0c mov a,$0c20+x +1785: 24 20 and a,$20 +1787: 04 24 or a,$24 +1789: c4 24 mov $24,a +178b: f5 00 0c mov a,$0c00+x +178e: d0 0d bne $179d +1790: f5 e0 0b mov a,$0be0+x +1793: f0 16 beq $17ab +1795: e4 20 mov a,$20 +1797: 04 26 or a,$26 +1799: c4 26 mov $26,a +179b: 2f 06 bra $17a3 +179d: e4 20 mov a,$20 +179f: 04 28 or a,$28 +17a1: c4 28 mov $28,a +17a3: e8 00 mov a,#$00 +17a5: d5 e0 0b mov $0be0+x,a +17a8: d5 00 0c mov $0c00+x,a +17ab: f5 80 08 mov a,$0880+x +17ae: fd mov y,a +17af: ad 03 cmp y,#$03 +17b1: 90 10 bcc $17c3 +17b3: f5 60 08 mov a,$0860+x +17b6: 5d mov x,a +17b7: f5 d5 17 mov a,$17d5+x +17ba: 36 6f 0d and a,$0d6f+y +17bd: f0 0d beq $17cc +17bf: e4 20 mov a,$20 +17c1: 2f 05 bra $17c8 +17c3: f6 6f 0d mov a,$0d6f+y +17c6: 24 20 and a,$20 +17c8: 04 2c or a,$2c +17ca: c4 2c mov $2c,a +17cc: 0b 20 asl $20 +17ce: ab 22 inc $22 +17d0: ce pop x +17d1: ee pop y +17d2: 3d inc x +17d3: fc inc y +17d4: 6f ret + +17d5: 01 tcall 0 +17d6: 02 04 set0 $04 +17d8: 08 10 or a,#$10 +17da: 20 clrp +17db: 40 setp +17dc: 80 setc +17dd: e4 ae mov a,$ae +17df: bc inc a +17e0: 28 03 and a,#$03 +17e2: c4 ae mov $ae,a +17e4: 5d mov x,a +17e5: f4 a6 mov a,$a6+x +17e7: f0 16 beq $17ff +17e9: 9c dec a +17ea: d4 a6 mov $a6+x,a +17ec: f4 8e mov a,$8e+x +17ee: fd mov y,a +17ef: f4 86 mov a,$86+x +17f1: da 00 movw $00,ya +17f3: f4 9e mov a,$9e+x +17f5: fd mov y,a +17f6: f4 96 mov a,$96+x +17f8: 7a 00 addw ya,$00 +17fa: d4 86 mov $86+x,a +17fc: dd mov a,y +17fd: d4 8e mov $8e+x,a +17ff: f4 aa mov a,$aa+x +1801: f0 16 beq $1819 +1803: 9c dec a +1804: d4 aa mov $aa+x,a +1806: f4 92 mov a,$92+x +1808: fd mov y,a +1809: f4 8a mov a,$8a+x +180b: da 00 movw $00,ya +180d: f4 a2 mov a,$a2+x +180f: fd mov y,a +1810: f4 9a mov a,$9a+x +1812: 7a 00 addw ya,$00 +1814: d4 8a mov $8a+x,a +1816: dd mov a,y +1817: d4 92 mov $92+x,a +1819: 6f ret + +181a: f5 17 0d mov a,$0d17+x +181d: f0 1d beq $183c +181f: 9c dec a +1820: d5 17 0d mov $0d17+x,a +1823: f5 0c 0d mov a,$0d0c+x +1826: fd mov y,a +1827: f5 01 0d mov a,$0d01+x +182a: da 00 movw $00,ya +182c: f5 2d 0d mov a,$0d2d+x +182f: fd mov y,a +1830: f5 22 0d mov a,$0d22+x +1833: 7a 00 addw ya,$00 +1835: d5 01 0d mov $0d01+x,a +1838: dd mov a,y +1839: d5 0c 0d mov $0d0c+x,a +183c: f5 4e 0d mov a,$0d4e+x +183f: f0 1d beq $185e +1841: 9c dec a +1842: d5 4e 0d mov $0d4e+x,a +1845: f5 43 0d mov a,$0d43+x +1848: fd mov y,a +1849: f5 38 0d mov a,$0d38+x +184c: da 00 movw $00,ya +184e: f5 64 0d mov a,$0d64+x +1851: fd mov y,a +1852: f5 59 0d mov a,$0d59+x +1855: 7a 00 addw ya,$00 +1857: d5 38 0d mov $0d38+x,a +185a: dd mov a,y +185b: d5 43 0d mov $0d43+x,a +185e: f5 c7 0d mov a,$0dc7+x +1861: f0 36 beq $1899 +1863: 9c dec a +1864: d5 c7 0d mov $0dc7+x,a +1867: f5 85 0d mov a,$0d85+x +186a: fd mov y,a +186b: f5 7a 0d mov a,$0d7a+x +186e: da 00 movw $00,ya +1870: f5 dd 0d mov a,$0ddd+x +1873: fd mov y,a +1874: f5 d2 0d mov a,$0dd2+x +1877: 7a 00 addw ya,$00 +1879: d5 7a 0d mov $0d7a+x,a +187c: dd mov a,y +187d: d5 85 0d mov $0d85+x,a +1880: f5 9b 0d mov a,$0d9b+x +1883: fd mov y,a +1884: f5 90 0d mov a,$0d90+x +1887: da 00 movw $00,ya +1889: f5 f3 0d mov a,$0df3+x +188c: fd mov y,a +188d: f5 e8 0d mov a,$0de8+x +1890: 7a 00 addw ya,$00 +1892: d5 90 0d mov $0d90+x,a +1895: dd mov a,y +1896: d5 9b 0d mov $0d9b+x,a +1899: 6f ret + +189a: f5 60 03 mov a,$0360+x +189d: f0 1d beq $18bc +189f: 9c dec a +18a0: d5 60 03 mov $0360+x,a +18a3: f5 20 03 mov a,$0320+x +18a6: fd mov y,a +18a7: f5 00 03 mov a,$0300+x +18aa: da 00 movw $00,ya +18ac: f5 a0 03 mov a,$03a0+x +18af: fd mov y,a +18b0: f5 80 03 mov a,$0380+x +18b3: 7a 00 addw ya,$00 +18b5: d5 00 03 mov $0300+x,a +18b8: dd mov a,y +18b9: d5 20 03 mov $0320+x,a +18bc: f5 80 06 mov a,$0680+x +18bf: f0 1d beq $18de +18c1: 9c dec a +18c2: d5 80 06 mov $0680+x,a +18c5: f5 60 06 mov a,$0660+x +18c8: fd mov y,a +18c9: f5 40 06 mov a,$0640+x +18cc: da 00 movw $00,ya +18ce: f5 c0 06 mov a,$06c0+x +18d1: fd mov y,a +18d2: f5 a0 06 mov a,$06a0+x +18d5: 7a 00 addw ya,$00 +18d7: d5 40 06 mov $0640+x,a +18da: dd mov a,y +18db: d5 60 06 mov $0660+x,a +18de: f5 c0 05 mov a,$05c0+x +18e1: f0 15 beq $18f8 +18e3: f5 e0 05 mov a,$05e0+x +18e6: f0 06 beq $18ee +18e8: 9c dec a +18e9: d5 e0 05 mov $05e0+x,a +18ec: 2f 0a bra $18f8 +18ee: f5 a0 05 mov a,$05a0+x +18f1: 60 clrc +18f2: 95 20 06 adc a,$0620+x +18f5: d5 20 06 mov $0620+x,a +18f8: f5 00 04 mov a,$0400+x +18fb: f0 15 beq $1912 +18fd: f5 20 04 mov a,$0420+x +1900: f0 06 beq $1908 +1902: 9c dec a +1903: d5 20 04 mov $0420+x,a +1906: 2f 0a bra $1912 +1908: f5 e0 03 mov a,$03e0+x +190b: 60 clrc +190c: 95 60 04 adc a,$0460+x +190f: d5 60 04 mov $0460+x,a +1912: f5 00 05 mov a,$0500+x +1915: f0 1d beq $1934 +1917: 9c dec a +1918: d5 00 05 mov $0500+x,a +191b: f5 e0 04 mov a,$04e0+x +191e: fd mov y,a +191f: f5 c0 04 mov a,$04c0+x +1922: da 00 movw $00,ya +1924: f5 40 05 mov a,$0540+x +1927: fd mov y,a +1928: f5 20 05 mov a,$0520+x +192b: 7a 00 addw ya,$00 +192d: d5 c0 04 mov $04c0+x,a +1930: dd mov a,y +1931: d5 e0 04 mov $04e0+x,a +1934: f5 e0 06 mov a,$06e0+x +1937: f0 2d beq $1966 +1939: f5 c0 07 mov a,$07c0+x +193c: f0 06 beq $1944 +193e: 9c dec a +193f: d5 c0 07 mov $07c0+x,a +1942: 2f 22 bra $1966 +1944: f5 00 08 mov a,$0800+x +1947: f0 1d beq $1966 +1949: 9c dec a +194a: d5 00 08 mov $0800+x,a +194d: f5 80 07 mov a,$0780+x +1950: fd mov y,a +1951: f5 60 07 mov a,$0760+x +1954: da 00 movw $00,ya +1956: f5 e0 0a mov a,$0ae0+x +1959: fd mov y,a +195a: f5 c0 0a mov a,$0ac0+x +195d: 7a 00 addw ya,$00 +195f: d5 c0 0a mov $0ac0+x,a +1962: dd mov a,y +1963: d5 e0 0a mov $0ae0+x,a +1966: 6f ret + +1967: d8 c0 mov $c0,x +1969: 8f 00 0e mov $0e,#$00 +196c: f5 1f 0e mov a,$0e1f+x +196f: 30 06 bmi $1977 +1971: 3f cc 19 call $19cc +1974: d5 1f 0e mov $0e1f+x,a +1977: f5 2a 0e mov a,$0e2a+x +197a: 30 06 bmi $1982 +197c: 3f cc 19 call $19cc +197f: d5 2a 0e mov $0e2a+x,a +1982: f5 35 0e mov a,$0e35+x +1985: 30 06 bmi $198d +1987: 3f cc 19 call $19cc +198a: d5 35 0e mov $0e35+x,a +198d: f5 40 0e mov a,$0e40+x +1990: 30 06 bmi $1998 +1992: 3f cc 19 call $19cc +1995: d5 40 0e mov $0e40+x,a +1998: f5 4b 0e mov a,$0e4b+x +199b: 30 06 bmi $19a3 +199d: 3f cc 19 call $19cc +19a0: d5 4b 0e mov $0e4b+x,a +19a3: f5 56 0e mov a,$0e56+x +19a6: 30 06 bmi $19ae +19a8: 3f cc 19 call $19cc +19ab: d5 56 0e mov $0e56+x,a +19ae: f5 61 0e mov a,$0e61+x +19b1: 30 06 bmi $19b9 +19b3: 3f cc 19 call $19cc +19b6: d5 61 0e mov $0e61+x,a +19b9: f5 6c 0e mov a,$0e6c+x +19bc: 30 06 bmi $19c4 +19be: 3f cc 19 call $19cc +19c1: d5 6c 0e mov $0e6c+x,a +19c4: e4 0e mov a,$0e +19c6: d0 03 bne $19cb +19c8: d5 e0 0c mov $0ce0+x,a +19cb: 6f ret + +19cc: 4d push x +19cd: 5d mov x,a +19ce: 3f 9a 18 call $189a +19d1: f5 40 08 mov a,$0840+x +19d4: d0 03 bne $19d9 +19d6: 7d mov a,x +19d7: ce pop x +19d8: 6f ret + +19d9: f5 c0 0c mov a,$0cc0+x +19dc: 9c dec a +19dd: d5 c0 0c mov $0cc0+x,a +19e0: c4 02 mov $02,a +19e2: 8d ff mov y,#$ff +19e4: f5 e0 06 mov a,$06e0+x +19e7: 10 07 bpl $19f0 +19e9: f5 c0 07 mov a,$07c0+x +19ec: 15 00 08 or a,$0800+x +19ef: fd mov y,a +19f0: cb 03 mov $03,y +19f2: f5 80 09 mov a,$0980+x +19f5: fd mov y,a +19f6: f5 60 09 mov a,$0960+x +19f9: da 00 movw $00,ya +19fb: 1a 00 decw $00 +19fd: f0 0d beq $1a0c +19ff: 30 0b bmi $1a0c +1a01: ba 00 movw ya,$00 +1a03: d5 60 09 mov $0960+x,a +1a06: dd mov a,y +1a07: d5 80 09 mov $0980+x,a +1a0a: 2f 22 bra $1a2e +1a0c: f5 00 0a mov a,$0a00+x +1a0f: f0 2e beq $1a3f +1a11: d5 00 0c mov $0c00+x,a +1a14: e8 00 mov a,#$00 +1a16: d5 e0 0b mov $0be0+x,a +1a19: d5 00 0a mov $0a00+x,a +1a1c: f5 c0 09 mov a,$09c0+x +1a1f: d5 60 09 mov $0960+x,a +1a22: c4 00 mov $00,a +1a24: f5 e0 09 mov a,$09e0+x +1a27: d5 80 09 mov $0980+x,a +1a2a: 04 00 or a,$00 +1a2c: f0 0e beq $1a3c +1a2e: e4 02 mov a,$02 +1a30: f0 0d beq $1a3f +1a32: e4 03 mov a,$03 +1a34: d0 03 bne $1a39 +1a36: 5f ce 1a jmp $1ace + +1a39: 5f f5 1a jmp $1af5 + +1a3c: d5 00 0c mov $0c00+x,a +1a3f: 3f 78 1b call $1b78 +1a42: 90 0e bcc $1a52 +1a44: 3f 2b 1b call $1b2b +1a47: 90 f6 bcc $1a3f +1a49: e8 00 mov a,#$00 +1a4b: d5 40 08 mov $0840+x,a +1a4e: 9c dec a +1a4f: 5f f8 1a jmp $1af8 + +1a52: f5 80 05 mov a,$0580+x +1a55: d5 e0 05 mov $05e0+x,a +1a58: f5 c0 03 mov a,$03c0+x +1a5b: d5 20 04 mov $0420+x,a +1a5e: e8 00 mov a,#$00 +1a60: d5 00 06 mov $0600+x,a +1a63: d5 20 06 mov $0620+x,a +1a66: d5 40 04 mov $0440+x,a +1a69: d5 60 04 mov $0460+x,a +1a6c: f5 60 05 mov a,$0560+x +1a6f: d5 00 05 mov $0500+x,a +1a72: f0 02 beq $1a76 +1a74: e8 01 mov a,#$01 +1a76: 9c dec a +1a77: d5 c0 04 mov $04c0+x,a +1a7a: d5 e0 04 mov $04e0+x,a +1a7d: f5 a0 07 mov a,$07a0+x +1a80: d5 c0 07 mov $07c0+x,a +1a83: f5 e0 07 mov a,$07e0+x +1a86: d5 00 08 mov $0800+x,a +1a89: f5 20 07 mov a,$0720+x +1a8c: d5 60 07 mov $0760+x,a +1a8f: f5 40 07 mov a,$0740+x +1a92: d5 80 07 mov $0780+x,a +1a95: f5 80 0c mov a,$0c80+x +1a98: 10 34 bpl $1ace +1a9a: 28 7f and a,#$7f +1a9c: d5 80 0c mov $0c80+x,a +1a9f: f5 80 09 mov a,$0980+x +1aa2: fd mov y,a +1aa3: f5 60 09 mov a,$0960+x +1aa6: da 00 movw $00,ya +1aa8: 2d push a +1aa9: f5 40 0a mov a,$0a40+x +1aac: 2d push a +1aad: cf mul ya +1aae: da 02 movw $02,ya +1ab0: ae pop a +1ab1: ee pop y +1ab2: cf mul ya +1ab3: dd mov a,y +1ab4: 8d 00 mov y,#$00 +1ab6: 7a 02 addw ya,$02 +1ab8: da 02 movw $02,ya +1aba: ba 00 movw ya,$00 +1abc: 9a 02 subw ya,$02 +1abe: d5 c0 09 mov $09c0+x,a +1ac1: dd mov a,y +1ac2: d5 e0 09 mov $09e0+x,a +1ac5: ba 02 movw ya,$02 +1ac7: d5 60 09 mov $0960+x,a +1aca: dd mov a,y +1acb: d5 80 09 mov $0980+x,a +1ace: f5 e0 06 mov a,$06e0+x +1ad1: 28 7f and a,#$7f +1ad3: d5 e0 06 mov $06e0+x,a +1ad6: 3f fb 1f call $1ffb +1ad9: d0 0c bne $1ae7 +1adb: 3f 2b 1b call $1b2b +1ade: 90 f6 bcc $1ad6 +1ae0: e8 ff mov a,#$ff +1ae2: d5 40 09 mov $0940+x,a +1ae5: 2f 0e bra $1af5 +1ae7: 68 f6 cmp a,#$f6 +1ae9: d0 05 bne $1af0 +1aeb: 3f fa 1a call $1afa +1aee: 2f 05 bra $1af5 +1af0: e8 ff mov a,#$ff +1af2: d5 40 09 mov $0940+x,a +1af5: ab 0e inc $0e +1af7: 7d mov a,x +1af8: ce pop x +1af9: 6f ret + +1afa: f5 e0 06 mov a,$06e0+x +1afd: 08 80 or a,#$80 +1aff: d5 e0 06 mov $06e0+x,a +1b02: 3f fb 1f call $1ffb +1b05: d5 c0 07 mov $07c0+x,a +1b08: 3f fb 1f call $1ffb +1b0b: d5 00 08 mov $0800+x,a +1b0e: c4 06 mov $06,a +1b10: f5 a0 0a mov a,$0aa0+x +1b13: c4 02 mov $02,a +1b15: 3f fb 1f call $1ffb +1b18: c4 04 mov $04,a +1b1a: d5 a0 0a mov $0aa0+x,a +1b1d: 3f cd 1f call $1fcd +1b20: e4 06 mov a,$06 +1b22: d5 60 07 mov $0760+x,a +1b25: e4 07 mov a,$07 +1b27: d5 80 07 mov $0780+x,a +1b2a: 6f ret + +1b2b: f5 c0 08 mov a,$08c0+x +1b2e: fd mov y,a +1b2f: f5 a0 08 mov a,$08a0+x +1b32: da 10 movw $10,ya +1b34: 8d 00 mov y,#$00 +1b36: f7 10 mov a,($10)+y +1b38: 3a 10 incw $10 +1b3a: 2d push a +1b3b: f7 10 mov a,($10)+y +1b3d: 3a 10 incw $10 +1b3f: fd mov y,a +1b40: ae pop a +1b41: da 12 movw $12,ya +1b43: ad 00 cmp y,#$00 +1b45: d0 11 bne $1b58 +1b47: bc inc a +1b48: f0 02 beq $1b4c +1b4a: 80 setc +1b4b: 6f ret + +1b4c: 8d 00 mov y,#$00 +1b4e: f7 10 mov a,($10)+y +1b50: 2d push a +1b51: fc inc y +1b52: f7 10 mov a,($10)+y +1b54: fd mov y,a +1b55: ae pop a +1b56: 2f da bra $1b32 +1b58: ba 10 movw ya,$10 +1b5a: d5 a0 08 mov $08a0+x,a +1b5d: dd mov a,y +1b5e: d5 c0 08 mov $08c0+x,a +1b61: f5 60 08 mov a,$0860+x +1b64: 1c asl a +1b65: fd mov y,a +1b66: f7 12 mov a,($12)+y +1b68: d5 e0 08 mov $08e0+x,a +1b6b: fc inc y +1b6c: f7 12 mov a,($12)+y +1b6e: d5 00 09 mov $0900+x,a +1b71: 15 e0 08 or a,$08e0+x +1b74: f0 d4 beq $1b4a +1b76: 60 clrc +1b77: 6f ret + +; vcmds 01-7f - note info +1b78: 3f fb 1f call $1ffb +1b7b: f0 25 beq $1ba2 +1b7d: 30 25 bmi $1ba4 +1b7f: d5 a0 09 mov $09a0+x,a +1b82: 3f fb 1f call $1ffb +1b85: f0 1b beq $1ba2 +1b87: 30 1b bmi $1ba4 +1b89: 2d push a +1b8a: 9f xcn a +1b8b: 28 07 and a,#$07 +1b8d: fd mov y,a +1b8e: f7 5a mov a,($5a)+y +1b90: d5 40 0a mov $0a40+x,a ; set dur% from high nybble +1b93: ae pop a +1b94: 28 0f and a,#$0f +1b96: 60 clrc +1b97: 88 08 adc a,#$08 +1b99: fd mov y,a +1b9a: f7 5a mov a,($5a)+y +1b9c: d5 20 0a mov $0a20+x,a ; set per-note vol from low nybble +1b9f: 5f 78 1b jmp $1b78 + +1ba2: 80 setc +1ba3: 6f ret + +; handle a note vcmd (80-db) +1ba4: 68 c8 cmp a,#$c8 +1ba6: 90 21 bcc $1bc9 +1ba8: 68 dc cmp a,#$dc +1baa: 90 18 bcc $1bc4 +1bac: 68 e9 cmp a,#$e9 ; rest +1bae: f0 48 beq $1bf8 +1bb0: 68 ea cmp a,#$ea ; tie +1bb2: f0 35 beq $1be9 +1bb4: 3f ba 1b call $1bba +1bb7: 5f 78 1b jmp $1b78 + +1bba: 80 setc +1bbb: a8 e3 sbc a,#$e3 +1bbd: 1c asl a +1bbe: d8 00 mov $00,x +1bc0: 5d mov x,a +1bc1: 1f ad 1c jmp ($1cad+x) + +1bc4: 3f d4 1d call $1dd4 +1bc7: e8 a4 mov a,#$a4 +1bc9: d5 a0 0a mov $0aa0+x,a +1bcc: eb c0 mov y,$c0 +1bce: 60 clrc +1bcf: 95 e0 02 adc a,$02e0+x +1bd2: 60 clrc +1bd3: 96 f6 0c adc a,$0cf6+y +1bd6: d5 e0 0a mov $0ae0+x,a +1bd9: f5 20 08 mov a,$0820+x +1bdc: d5 c0 0a mov $0ac0+x,a +1bdf: e8 ff mov a,#$ff +1be1: d5 00 0a mov $0a00+x,a +1be4: d5 e0 0b mov $0be0+x,a +1be7: 2f 21 bra $1c0a +1be9: e8 00 mov a,#$00 +1beb: d5 e0 0b mov $0be0+x,a +1bee: e8 ff mov a,#$ff +1bf0: d5 00 0a mov $0a00+x,a +1bf3: d5 00 0c mov $0c00+x,a +1bf6: 2f 12 bra $1c0a +1bf8: f5 80 0c mov a,$0c80+x +1bfb: f0 ec beq $1be9 +1bfd: 9c dec a +1bfe: d5 80 0c mov $0c80+x,a +1c01: f5 a0 09 mov a,$09a0+x +1c04: d5 c0 0c mov $0cc0+x,a +1c07: 5f ab 1c jmp $1cab + +; dispatch vcmd? +1c0a: f5 a0 09 mov a,$09a0+x +1c0d: d5 c0 0c mov $0cc0+x,a +1c10: d5 60 09 mov $0960+x,a +1c13: e8 00 mov a,#$00 +1c15: d5 80 09 mov $0980+x,a +1c18: e8 80 mov a,#$80 +1c1a: d5 80 0c mov $0c80+x,a +1c1d: f5 a0 09 mov a,$09a0+x +1c20: d5 a0 0c mov $0ca0+x,a +1c23: f5 40 09 mov a,$0940+x +1c26: 2d push a +1c27: f5 20 09 mov a,$0920+x +1c2a: 2d push a +1c2b: f5 00 09 mov a,$0900+x +1c2e: 2d push a +1c2f: f5 e0 08 mov a,$08e0+x +1c32: 2d push a +1c33: f5 c0 08 mov a,$08c0+x +1c36: 2d push a +1c37: f5 a0 08 mov a,$08a0+x +1c3a: 2d push a +1c3b: 3f fb 1f call $1ffb +1c3e: 30 13 bmi $1c53 +1c40: f0 0a beq $1c4c +1c42: d5 a0 0c mov $0ca0+x,a +1c45: 3f fb 1f call $1ffb +1c48: 30 09 bmi $1c53 +1c4a: d0 ef bne $1c3b +1c4c: 3f 2b 1b call $1b2b +1c4f: 90 ea bcc $1c3b +1c51: 2f 40 bra $1c93 +1c53: 68 dc cmp a,#$dc +1c55: 90 3c bcc $1c93 +1c57: 68 e9 cmp a,#$e9 +1c59: f0 18 beq $1c73 +1c5b: 68 ea cmp a,#$ea +1c5d: f0 34 beq $1c93 +1c5f: 80 setc +1c60: a8 e3 sbc a,#$e3 +1c62: fd mov y,a +1c63: f6 e7 1c mov a,$1ce7+y ; vcmd length +1c66: f0 d3 beq $1c3b +1c68: c4 04 mov $04,a +1c6a: 3f fb 1f call $1ffb +1c6d: 8b 04 dec $04 +1c6f: d0 f9 bne $1c6a +1c71: 2f c8 bra $1c3b +1c73: f5 80 0c mov a,$0c80+x +1c76: bc inc a +1c77: d5 80 0c mov $0c80+x,a +1c7a: f5 80 09 mov a,$0980+x +1c7d: fd mov y,a +1c7e: f5 60 09 mov a,$0960+x +1c81: da 00 movw $00,ya +1c83: 8d 00 mov y,#$00 +1c85: f5 a0 0c mov a,$0ca0+x +1c88: 7a 00 addw ya,$00 +1c8a: d5 60 09 mov $0960+x,a +1c8d: dd mov a,y +1c8e: d5 80 09 mov $0980+x,a +1c91: 2f a8 bra $1c3b +1c93: ae pop a +1c94: d5 a0 08 mov $08a0+x,a +1c97: ae pop a +1c98: d5 c0 08 mov $08c0+x,a +1c9b: ae pop a +1c9c: d5 e0 08 mov $08e0+x,a +1c9f: ae pop a +1ca0: d5 00 09 mov $0900+x,a +1ca3: ae pop a +1ca4: d5 20 09 mov $0920+x,a +1ca7: ae pop a +1ca8: d5 40 09 mov $0940+x,a +1cab: 60 clrc +1cac: 6f ret + +; vcmd dispatch table +1cae: dw $1d04 ; e3 +1cb0: dw $1d0e ; e4 - global transpose +1cb2: dw $1d19 ; e5 - tempo +1cb4: dw $1d29 ; e6 - tempo fade +1cb6: dw $1d51 ; e7 - master volume +1cb8: dw $1d61 ; e8 - master volume fade +1cba: dw $1d89 ; e9 - rest +1cbc: dw $1d8c ; ea - tie +1cbe: dw $1d8f ; eb - per-voice transpose +1cc0: dw $1d98 ; ec - pan +1cc2: dw $1dab ; ed - pan fade +1cc4: dw $1dcd ; ee - set instrument +1cc6: dw $1e27 ; ef - vibrato on +1cc8: dw $1e5e ; f0 - vibrato fade +1cca: dw $1e7e ; f1 - vibrato off +1ccc: dw $1e86 ; f2 - tremolo on +1cce: dw $1e9b ; f3 - tremolo off +1cd0: dw $1ea3 ; f4 - volume +1cd2: dw $1eb1 ; f5 - volume fade +1cd4: dw $1ed3 ; f6 - skip 3 bytes +1cd6: dw $1edf ; f7 - pitch envelope (release) +1cd8: dw $1ee3 ; f8 - pitch envelope (attack) +1cda: dw $1f11 ; f9 - pitch envelope off +1cdc: dw $1f19 ; fa - echo vbits/volume +1cde: dw $1f3e ; fb - echo volume fade +1ce0: dw $1f5b ; fc - set echo params +1ce2: dw $1fa0 ; fd - disable echo +1ce4: dw $1fad ; fe - tuning +1ce6: dw $1fb6 ; ff - reset instrument + +; vcmd lengths +1ce7: db $01,$01,$01,$02,$01,$02,$00,$00 ; e3-ea +1cef: db $01,$01,$02,$01,$03,$01,$00,$03 ; eb-f2 +1cd7: db $00,$01,$02,$03,$03,$03,$00,$03 ; f3-fa +1cdf: db $03,$03,$00,$01,$01 ; fb-ff + +; vcmd e3 +1d04: f8 00 mov x,$00 +1d06: e4 c5 mov a,$c5 +1d08: bc inc a +1d09: 28 7f and a,#$7f +1d0b: c4 c5 mov $c5,a +1d0d: 6f ret + +; vcmd e4 - global transpose +1d0e: f8 00 mov x,$00 +1d10: 3f fb 1f call $1ffb +1d13: eb c0 mov y,$c0 +1d15: d6 f6 0c mov $0cf6+y,a +1d18: 6f ret + +; vcmd e5 - tempo +1d19: f8 00 mov x,$00 +1d1b: 3f fb 1f call $1ffb +1d1e: eb c0 mov y,$c0 +1d20: d6 0c 0d mov $0d0c+y,a +1d23: e8 00 mov a,#$00 +1d25: d6 01 0d mov $0d01+y,a +1d28: 6f ret + +; vcmd e6 - tempo fade +1d29: f8 00 mov x,$00 +1d2b: 3f fb 1f call $1ffb +1d2e: c4 06 mov $06,a +1d30: 2d push a +1d31: 3f fb 1f call $1ffb +1d34: c4 04 mov $04,a +1d36: eb c0 mov y,$c0 +1d38: f6 0c 0d mov a,$0d0c+y +1d3b: c4 02 mov $02,a +1d3d: ae pop a +1d3e: d6 17 0d mov $0d17+y,a +1d41: 3f c1 1f call $1fc1 +1d44: eb c0 mov y,$c0 +1d46: e4 06 mov a,$06 +1d48: d6 22 0d mov $0d22+y,a +1d4b: e4 07 mov a,$07 +1d4d: d6 2d 0d mov $0d2d+y,a +1d50: 6f ret + +; vcmd e7 - master volume +1d51: f8 00 mov x,$00 +1d53: 3f fb 1f call $1ffb +1d56: eb c0 mov y,$c0 +1d58: d6 43 0d mov $0d43+y,a +1d5b: e8 00 mov a,#$00 +1d5d: d6 38 0d mov $0d38+y,a +1d60: 6f ret + +; vcmd e8 - master volume fade +1d61: f8 00 mov x,$00 +1d63: 3f fb 1f call $1ffb +1d66: c4 06 mov $06,a +1d68: 2d push a +1d69: 3f fb 1f call $1ffb +1d6c: c4 04 mov $04,a +1d6e: eb c0 mov y,$c0 +1d70: f6 43 0d mov a,$0d43+y +1d73: c4 02 mov $02,a +1d75: ae pop a +1d76: d6 4e 0d mov $0d4e+y,a +1d79: 3f c1 1f call $1fc1 +1d7c: eb c0 mov y,$c0 +1d7e: e4 06 mov a,$06 +1d80: d6 59 0d mov $0d59+y,a +1d83: e4 07 mov a,$07 +1d85: d6 64 0d mov $0d64+y,a +1d88: 6f ret + +; vcmd e9 - rest +1d89: f8 00 mov x,$00 +1d8b: 6f ret + +; vcmd ea - tie +1d8c: f8 00 mov x,$00 +1d8e: 6f ret + +; vcmd eb - per-voice transpose +1d8f: f8 00 mov x,$00 +1d91: 3f fb 1f call $1ffb +1d94: d5 e0 02 mov $02e0+x,a +1d97: 6f ret + +; vcmd ec - pan +1d98: f8 00 mov x,$00 +1d9a: 3f fb 1f call $1ffb +1d9d: d5 40 03 mov $0340+x,a +1da0: 28 1f and a,#$1f +1da2: d5 20 03 mov $0320+x,a +1da5: e8 00 mov a,#$00 +1da7: d5 00 03 mov $0300+x,a +1daa: 6f ret + +; vcmd ed - pan fade +1dab: f8 00 mov x,$00 +1dad: 3f fb 1f call $1ffb +1db0: c4 06 mov $06,a +1db2: d5 60 03 mov $0360+x,a +1db5: 3f fb 1f call $1ffb +1db8: c4 04 mov $04,a +1dba: f5 20 03 mov a,$0320+x +1dbd: c4 02 mov $02,a +1dbf: 3f c1 1f call $1fc1 +1dc2: e4 06 mov a,$06 +1dc4: d5 80 03 mov $0380+x,a +1dc7: e4 07 mov a,$07 +1dc9: d5 a0 03 mov $03a0+x,a +1dcc: 6f ret + +; vcmd ee - set instrument +1dcd: f8 00 mov x,$00 +1dcf: 3f fb 1f call $1ffb +1dd2: 10 09 bpl $1ddd +1dd4: 80 setc +1dd5: a8 c8 sbc a,#$c8 +1dd7: 60 clrc +1dd8: eb c0 mov y,$c0 +1dda: 96 eb 0c adc a,$0ceb+y +1ddd: 8d 06 mov y,#$06 +1ddf: cf mul ya +1de0: da 00 movw $00,ya +1de2: e4 58 mov a,$58 +1de4: eb 59 mov y,$59 +1de6: 7a 00 addw ya,$00 +1de8: da 00 movw $00,ya +1dea: 8d 00 mov y,#$00 +1dec: f7 00 mov a,($00)+y +1dee: 30 0a bmi $1dfa +1df0: d5 00 0b mov $0b00+x,a +1df3: e8 00 mov a,#$00 +1df5: d5 40 0c mov $0c40+x,a +1df8: 2f 0e bra $1e08 +1dfa: 28 1f and a,#$1f +1dfc: d5 c0 0b mov $0bc0+x,a +1dff: e8 ff mov a,#$ff +1e01: d5 40 0c mov $0c40+x,a +1e04: bc inc a +1e05: d5 00 0b mov $0b00+x,a +1e08: fc inc y +1e09: f7 00 mov a,($00)+y +1e0b: d5 20 0b mov $0b20+x,a +1e0e: fc inc y +1e0f: f7 00 mov a,($00)+y +1e11: d5 40 0b mov $0b40+x,a +1e14: fc inc y +1e15: f7 00 mov a,($00)+y +1e17: d5 60 0b mov $0b60+x,a +1e1a: fc inc y +1e1b: f7 00 mov a,($00)+y +1e1d: d5 a0 0b mov $0ba0+x,a +1e20: fc inc y +1e21: f7 00 mov a,($00)+y +1e23: d5 80 0b mov $0b80+x,a +1e26: 6f ret + +; vcmd ef - vibrato on +1e27: f8 00 mov x,$00 +1e29: 3f fb 1f call $1ffb +1e2c: d5 c0 03 mov $03c0+x,a +1e2f: 3f fb 1f call $1ffb +1e32: d5 e0 03 mov $03e0+x,a +1e35: 3f fb 1f call $1ffb +1e38: d5 00 04 mov $0400+x,a +1e3b: f0 20 beq $1e5d +1e3d: 10 15 bpl $1e54 +1e3f: 68 f0 cmp a,#$f0 +1e41: 90 07 bcc $1e4a +1e43: a8 ef sbc a,#$ef +1e45: fd mov y,a +1e46: e8 00 mov a,#$00 +1e48: 2f 0c bra $1e56 +1e4a: 80 setc +1e4b: c4 06 mov $06,a +1e4d: 9f xcn a +1e4e: 28 07 and a,#$07 +1e50: bc inc a +1e51: 1c asl a +1e52: 84 06 adc a,$06 +1e54: 8d 00 mov y,#$00 +1e56: d5 80 04 mov $0480+x,a +1e59: dd mov a,y +1e5a: d5 a0 04 mov $04a0+x,a +1e5d: 6f ret + +; vcmd f0 - vibrato fade +1e5e: f8 00 mov x,$00 +1e60: 3f fb 1f call $1ffb +1e63: c4 06 mov $06,a +1e65: d5 60 05 mov $0560+x,a +1e68: e8 ff mov a,#$ff +1e6a: c4 04 mov $04,a +1e6c: e8 00 mov a,#$00 +1e6e: c4 02 mov $02,a +1e70: 3f c1 1f call $1fc1 +1e73: e4 06 mov a,$06 +1e75: d5 20 05 mov $0520+x,a +1e78: e4 07 mov a,$07 +1e7a: d5 40 05 mov $0540+x,a +1e7d: 6f ret + +; vcmd f1 - vibrato off +1e7e: f8 00 mov x,$00 +1e80: e8 00 mov a,#$00 +1e82: d5 00 04 mov $0400+x,a +1e85: 6f ret + +; vcmd f2 - tremolo on +1e86: f8 00 mov x,$00 +1e88: 3f fb 1f call $1ffb +1e8b: d5 80 05 mov $0580+x,a +1e8e: 3f fb 1f call $1ffb +1e91: d5 a0 05 mov $05a0+x,a +1e94: 3f fb 1f call $1ffb +1e97: d5 c0 05 mov $05c0+x,a +1e9a: 6f ret + +; vcmd f3 - tremolo off +1e9b: f8 00 mov x,$00 +1e9d: e8 00 mov a,#$00 +1e9f: d5 c0 05 mov $05c0+x,a +1ea2: 6f ret + +; vcmd f4 - volume +1ea3: f8 00 mov x,$00 +1ea5: 3f fb 1f call $1ffb +1ea8: d5 60 06 mov $0660+x,a +1eab: e8 00 mov a,#$00 +1ead: d5 40 06 mov $0640+x,a +1eb0: 6f ret + +; vcmd f5 - volume fade +1eb1: f8 00 mov x,$00 +1eb3: 3f fb 1f call $1ffb +1eb6: c4 06 mov $06,a +1eb8: d5 80 06 mov $0680+x,a +1ebb: 3f fb 1f call $1ffb +1ebe: c4 04 mov $04,a +1ec0: f5 60 06 mov a,$0660+x +1ec3: c4 02 mov $02,a +1ec5: 3f c1 1f call $1fc1 +1ec8: e4 06 mov a,$06 +1eca: d5 a0 06 mov $06a0+x,a +1ecd: e4 07 mov a,$07 +1ecf: d5 c0 06 mov $06c0+x,a +1ed2: 6f ret + +; vcmd f6 - skip 3 bytes +1ed3: f8 00 mov x,$00 +1ed5: 3f fb 1f call $1ffb +1ed8: 3f fb 1f call $1ffb +1edb: 3f fb 1f call $1ffb +1ede: 6f ret + +; vcmd f7 - pitch envelope (release) +1edf: e8 01 mov a,#$01 +1ee1: 2f 02 bra $1ee5 +; vcmd f8 - pitch envelope (attack) +1ee3: e8 02 mov a,#$02 +1ee5: f8 00 mov x,$00 +1ee7: d5 e0 06 mov $06e0+x,a +1eea: 3f fb 1f call $1ffb +1eed: d5 a0 07 mov $07a0+x,a +1ef0: 3f fb 1f call $1ffb +1ef3: d5 e0 07 mov $07e0+x,a +1ef6: c4 06 mov $06,a +1ef8: 3f fb 1f call $1ffb +1efb: d5 00 07 mov $0700+x,a +1efe: c4 04 mov $04,a +1f00: 8f 00 02 mov $02,#$00 +1f03: 3f cd 1f call $1fcd +1f06: e4 06 mov a,$06 +1f08: d5 20 07 mov $0720+x,a +1f0b: e4 07 mov a,$07 +1f0d: d5 40 07 mov $0740+x,a +1f10: 6f ret + +; vcmd f9 - pitch envelope off +1f11: f8 00 mov x,$00 +1f13: e8 00 mov a,#$00 +1f15: d5 e0 06 mov $06e0+x,a +1f18: 6f ret + +; vcmd fa - echo vbits/volume +1f19: f8 00 mov x,$00 +1f1b: 3f fb 1f call $1ffb +1f1e: 2d push a +1f1f: 3f fb 1f call $1ffb +1f22: 2d push a +1f23: 3f fb 1f call $1ffb +1f26: eb c0 mov y,$c0 +1f28: d6 9b 0d mov $0d9b+y,a +1f2b: ae pop a +1f2c: d6 85 0d mov $0d85+y,a +1f2f: ae pop a +1f30: d6 6f 0d mov $0d6f+y,a +1f33: e8 00 mov a,#$00 +1f35: d6 90 0d mov $0d90+y,a +1f38: d6 7a 0d mov $0d7a+y,a +1f3b: cb ca mov $ca,y +1f3d: 6f ret + +; vcmd fb - echo volume fade +1f3e: f8 00 mov x,$00 +1f40: 3f fb 1f call $1ffb +1f43: 2d push a +1f44: 3f fb 1f call $1ffb +1f47: 2d push a +1f48: 3f fb 1f call $1ffb +1f4b: eb c0 mov y,$c0 +1f4d: d6 bc 0d mov $0dbc+y,a +1f50: ae pop a +1f51: d6 b1 0d mov $0db1+y,a +1f54: ae pop a +1f55: d6 a6 0d mov $0da6+y,a +1f58: cb ca mov $ca,y +1f5a: 6f ret + +; vcmd fc - set echo params +1f5b: f8 00 mov x,$00 +1f5d: 3f fb 1f call $1ffb +1f60: 2d push a +1f61: 2d push a +1f62: eb c0 mov y,$c0 +1f64: d6 c7 0d mov $0dc7+y,a +1f67: f6 85 0d mov a,$0d85+y +1f6a: c4 02 mov $02,a +1f6c: 3f fb 1f call $1ffb +1f6f: c4 04 mov $04,a +1f71: ae pop a +1f72: c4 06 mov $06,a +1f74: 3f c1 1f call $1fc1 +1f77: eb c0 mov y,$c0 +1f79: e4 06 mov a,$06 +1f7b: d6 d2 0d mov $0dd2+y,a +1f7e: e4 07 mov a,$07 +1f80: d6 dd 0d mov $0ddd+y,a +1f83: f6 9b 0d mov a,$0d9b+y +1f86: c4 02 mov $02,a +1f88: 3f fb 1f call $1ffb +1f8b: c4 04 mov $04,a +1f8d: ae pop a +1f8e: c4 06 mov $06,a +1f90: 3f c1 1f call $1fc1 +1f93: eb c0 mov y,$c0 +1f95: e4 06 mov a,$06 +1f97: d6 e8 0d mov $0de8+y,a +1f9a: e4 07 mov a,$07 +1f9c: d6 f3 0d mov $0df3+y,a +1f9f: 6f ret + +; vcmd fd - echo off +1fa0: f8 00 mov x,$00 +1fa2: e8 00 mov a,#$00 +1fa4: eb c0 mov y,$c0 +1fa6: d6 6f 0d mov $0d6f+y,a +1fa9: d6 c7 0d mov $0dc7+y,a +1fac: 6f ret + +; vcmd fe - tuning +1fad: f8 00 mov x,$00 +1faf: 3f fb 1f call $1ffb +1fb2: d5 20 08 mov $0820+x,a +1fb5: 6f ret + +; vcmd ff +1fb6: f8 00 mov x,$00 +1fb8: 3f fb 1f call $1ffb +1fbb: eb c0 mov y,$c0 +1fbd: d6 eb 0c mov $0ceb+y,a +1fc0: 6f ret + +1fc1: e4 04 mov a,$04 +1fc3: 80 setc +1fc4: a4 02 sbc a,$02 +1fc6: b0 11 bcs $1fd9 +1fc8: 48 ff eor a,#$ff +1fca: bc inc a +1fcb: 2f 0c bra $1fd9 +1fcd: e4 04 mov a,$04 +1fcf: 80 setc +1fd0: a4 02 sbc a,$02 +1fd2: 80 setc +1fd3: 10 04 bpl $1fd9 +1fd5: 48 ff eor a,#$ff +1fd7: bc inc a +1fd8: 60 clrc +1fd9: 6b 04 ror $04 +1fdb: 4d push x +1fdc: f8 06 mov x,$06 +1fde: 8d 00 mov y,#$00 +1fe0: 9e div ya,x +1fe1: c4 07 mov $07,a +1fe3: e8 00 mov a,#$00 +1fe5: 9e div ya,x +1fe6: c4 06 mov $06,a +1fe8: ce pop x +1fe9: e4 04 mov a,$04 +1feb: 30 0d bmi $1ffa +1fed: e4 07 mov a,$07 +1fef: 48 ff eor a,#$ff +1ff1: fd mov y,a +1ff2: e4 06 mov a,$06 +1ff4: 48 ff eor a,#$ff +1ff6: da 06 movw $06,ya +1ff8: 3a 06 incw $06 +1ffa: 6f ret + +1ffb: f5 40 09 mov a,$0940+x +1ffe: f0 09 beq $2009 +2000: e8 00 mov a,#$00 +2002: d5 40 09 mov $0940+x,a +2005: f5 20 09 mov a,$0920+x +2008: 6f ret + +2009: f5 00 09 mov a,$0900+x +200c: fd mov y,a +200d: f5 e0 08 mov a,$08e0+x +2010: da 10 movw $10,ya +2012: 8d 00 mov y,#$00 +2014: f7 10 mov a,($10)+y +2016: 2d push a +2017: 3a 10 incw $10 +2019: ba 10 movw ya,$10 +201b: d5 e0 08 mov $08e0+x,a +201e: dd mov a,y +201f: d5 00 09 mov $0900+x,a +2022: ae pop a +2023: d5 20 09 mov $0920+x,a +2026: 68 00 cmp a,#$00 +2028: 6f ret + +2029: e8 00 mov a,#$00 +202b: d5 e0 02 mov $02e0+x,a +202e: d5 00 03 mov $0300+x,a +2031: d5 40 03 mov $0340+x,a +2034: d5 60 03 mov $0360+x,a +2037: d5 00 04 mov $0400+x,a +203a: d5 60 05 mov $0560+x,a +203d: d5 c0 05 mov $05c0+x,a +2040: d5 40 06 mov $0640+x,a +2043: d5 80 06 mov $0680+x,a +2046: d5 e0 06 mov $06e0+x,a +2049: d5 20 08 mov $0820+x,a +204c: d5 40 08 mov $0840+x,a +204f: d5 60 08 mov $0860+x,a +2052: d5 20 09 mov $0920+x,a +2055: d5 60 09 mov $0960+x,a +2058: d5 80 09 mov $0980+x,a +205b: d5 00 0a mov $0a00+x,a +205e: d5 20 0c mov $0c20+x,a +2061: d5 40 0c mov $0c40+x,a +2064: d5 60 0c mov $0c60+x,a +2067: d5 80 0c mov $0c80+x,a +206a: e4 4a mov a,$4a +206c: d5 a0 09 mov $09a0+x,a +206f: e8 80 mov a,#$80 +2071: d5 20 0a mov $0a20+x,a +2074: d5 40 0a mov $0a40+x,a +2077: e8 ff mov a,#$ff +2079: d5 40 09 mov $0940+x,a +207c: d5 e0 04 mov $04e0+x,a +207f: d5 60 06 mov $0660+x,a +2082: e8 0a mov a,#$0a +2084: d5 20 03 mov $0320+x,a +2087: 6f ret + +2088: e8 00 mov a,#$00 +208a: d5 e0 0c mov $0ce0+x,a +208d: d5 eb 0c mov $0ceb+x,a +2090: d5 f6 0c mov $0cf6+x,a +2093: d5 17 0d mov $0d17+x,a +2096: d5 4e 0d mov $0d4e+x,a +2099: d5 c7 0d mov $0dc7+x,a +209c: d5 fe 0d mov $0dfe+x,a +209f: d5 09 0e mov $0e09+x,a +20a2: d5 14 0e mov $0e14+x,a +20a5: d5 6f 0d mov $0d6f+x,a +20a8: d5 7a 0d mov $0d7a+x,a +20ab: d5 85 0d mov $0d85+x,a +20ae: d5 90 0d mov $0d90+x,a +20b1: d5 9b 0d mov $0d9b+x,a +20b4: e8 3c mov a,#$3c +20b6: d5 0c 0d mov $0d0c+x,a +20b9: e8 c0 mov a,#$c0 +20bb: d5 43 0d mov $0d43+x,a +20be: 6f ret + +20bf: c8 03 cmp x,#$03 +20c1: 90 04 bcc $20c7 +20c3: e8 80 mov a,#$80 +20c5: 2f 04 bra $20cb +20c7: 7d mov a,x +20c8: 1c asl a +20c9: 1c asl a +20ca: 1c asl a +20cb: d5 1f 0e mov $0e1f+x,a +20ce: bc inc a +20cf: d5 2a 0e mov $0e2a+x,a +20d2: bc inc a +20d3: d5 35 0e mov $0e35+x,a +20d6: bc inc a +20d7: d5 40 0e mov $0e40+x,a +20da: bc inc a +20db: d5 4b 0e mov $0e4b+x,a +20de: bc inc a +20df: d5 56 0e mov $0e56+x,a +20e2: bc inc a +20e3: d5 61 0e mov $0e61+x,a +20e6: bc inc a +20e7: d5 6c 0e mov $0e6c+x,a +20ea: 6f ret + + +20eb: db $00,$01,$03,$07,$0d,$15,$1e,$29 +20f3: db $34,$42,$51,$5e,$67,$6e,$73,$77 +20fb: db $7a,$7c,$7d,$7e,$7f + +2100: cc f2 00 mov $00f2,y +2103: c5 f3 00 mov $00f3,a +2106: 6f ret + +2107: cc f2 00 mov $00f2,y +210a: e5 f3 00 mov a,$00f3 +210d: 6f ret + +210e: e4 54 mov a,$54 +2110: eb 55 mov y,$55 +2112: da 10 movw $10,ya +2114: e4 01 mov a,$01 +2116: 1c asl a +2117: fd mov y,a +2118: f7 10 mov a,($10)+y +211a: c4 04 mov $04,a +211c: fc inc y +211d: f7 10 mov a,($10)+y +211f: c4 05 mov $05,a +2121: fc inc y +2122: f7 10 mov a,($10)+y +2124: 2d push a +2125: fc inc y +2126: f7 10 mov a,($10)+y +2128: fd mov y,a +2129: ae pop a +212a: 9a 04 subw ya,$04 +212c: 2d push a +212d: e4 00 mov a,$00 +212f: cf mul ya +2130: da 06 movw $06,ya +2132: ee pop y +2133: e4 00 mov a,$00 +2135: cf mul ya +2136: dd mov a,y +2137: 8d 00 mov y,#$00 +2139: 7a 06 addw ya,$06 +213b: 7a 04 addw ya,$04 +213d: da 04 movw $04,ya +213f: e4 02 mov a,$02 +2141: eb 05 mov y,$05 +2143: cf mul ya +2144: da 06 movw $06,ya +2146: e4 02 mov a,$02 +2148: eb 04 mov y,$04 +214a: cf mul ya +214b: 6d push y +214c: e4 03 mov a,$03 +214e: eb 04 mov y,$04 +2150: cf mul ya +2151: 7a 06 addw ya,$06 +2153: da 06 movw $06,ya +2155: e4 03 mov a,$03 +2157: eb 05 mov y,$05 +2159: cf mul ya +215a: fd mov y,a +215b: ae pop a +215c: 7a 06 addw ya,$06 +215e: 6f ret + +215f: f8 4b mov x,$4b +2161: 8d 00 mov y,#$00 +2163: e4 4f mov a,$4f +2165: 9e div ya,x +2166: c4 83 mov $83,a +2168: e4 4e mov a,$4e +216a: 9e div ya,x +216b: c4 82 mov $82,a +216d: eb 4b mov y,$4b +216f: e4 4d mov a,$4d +2171: cf mul ya +2172: c4 80 mov $80,a +2174: eb 4c mov y,$4c +2176: e4 4d mov a,$4d +2178: cf mul ya +2179: c4 81 mov $81,a +217b: e8 30 mov a,#$30 +217d: c5 f1 00 mov $00f1,a +2180: e5 f4 00 mov a,$00f4 +2183: 05 f5 00 or a,$00f5 +2186: 05 f6 00 or a,$00f6 +2189: 05 f7 00 or a,$00f7 +218c: d0 ed bne $217b +218e: e4 80 mov a,$80 +2190: c5 fa 00 mov $00fa,a +2193: e4 81 mov a,$81 +2195: c5 fb 00 mov $00fb,a +2198: e8 00 mov a,#$00 +219a: c5 f1 00 mov $00f1,a +219d: bc inc a +219e: c5 f1 00 mov $00f1,a +21a1: 9c dec a +21a2: c5 f4 00 mov $00f4,a +21a5: c5 f5 00 mov $00f5,a +21a8: c5 f6 00 mov $00f6,a +21ab: c5 f7 00 mov $00f7,a +21ae: 6f ret + +21af: e8 aa mov a,#$aa +21b1: c5 f4 00 mov $00f4,a +21b4: e8 bb mov a,#$bb +21b6: c5 f5 00 mov $00f5,a +21b9: e5 f4 00 mov a,$00f4 +21bc: 68 cc cmp a,#$cc +21be: d0 f9 bne $21b9 +21c0: 2f 20 bra $21e2 +21c2: ec f4 00 mov y,$00f4 +21c5: d0 fb bne $21c2 +21c7: 5e f4 00 cmp y,$00f4 +21ca: d0 0f bne $21db +21cc: e5 f5 00 mov a,$00f5 +21cf: cc f4 00 mov $00f4,y +21d2: d7 00 mov ($00)+y,a +21d4: fc inc y +21d5: d0 f0 bne $21c7 +21d7: ab 01 inc $01 +21d9: 2f ec bra $21c7 +21db: 10 ea bpl $21c7 +21dd: 5e f4 00 cmp y,$00f4 +21e0: 10 e5 bpl $21c7 +21e2: e5 f6 00 mov a,$00f6 +21e5: ec f7 00 mov y,$00f7 +21e8: da 00 movw $00,ya +21ea: e5 f4 00 mov a,$00f4 +21ed: ec f5 00 mov y,$00f5 +21f0: c5 f4 00 mov $00f4,a +21f3: d0 cd bne $21c2 + +; pitch table +3000: dw $0042 +3002: dw $0046 +3004: dw $004b +3006: dw $004f +3008: dw $0054 +300a: dw $0059 +300c: dw $005e +300e: dw $0064 +3010: dw $006a +3012: dw $0070 +3014: dw $0077 +3016: dw $007e +3018: dw $0085 +301a: dw $008d +301c: dw $0096 +301e: dw $009f +3020: dw $00a8 +3022: dw $00b2 +3024: dw $00bd +3026: dw $00c8 +3028: dw $00d4 +302a: dw $00e1 +302c: dw $00ee +302e: dw $00fc +3030: dw $010b +3032: dw $011b +3034: dw $012c +3036: dw $013e +3038: dw $0151 +303a: dw $0165 +303c: dw $017a +303e: dw $0191 +3040: dw $01a9 +3042: dw $01c2 +3044: dw $01dd +3046: dw $01f9 +3048: dw $0217 +304a: dw $0237 +304c: dw $0259 +304e: dw $027d +3050: dw $02a3 +3052: dw $02cb +3054: dw $02f5 +3056: dw $0322 +3058: dw $0352 +305a: dw $0385 +305c: dw $03ba +305e: dw $03f3 +3060: dw $042f +3062: dw $046f +3064: dw $04b2 +3066: dw $04fa +3068: dw $0546 +306a: dw $0596 +306c: dw $05eb +306e: dw $0645 +3070: dw $06a5 +3072: dw $070a +3074: dw $0775 +3076: dw $07e6 +3078: dw $085f +307a: dw $08de +307c: dw $0965 +307e: dw $09f4 +3080: dw $0a8c +3082: dw $0b2c +3084: dw $0bd6 +3086: dw $0c8b +3088: dw $0d4a +308a: dw $0e14 +308c: dw $0eea +308e: dw $0fcd +3090: dw $10be +3092: dw $11bd +3094: dw $12cb +3096: dw $13e9 +3098: dw $1518 +309a: dw $1659 +309c: dw $17ad +309e: dw $1916 +30a0: dw $1a94 +30a2: dw $1c28 +30a4: dw $1dd5 +30a6: dw $1f9b + +; echo FIR presets +3100: db $7f,$00,$00,$00,$00,$00,$00,$00 +3108: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c +3110: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 +3118: db $34,$33,$00,$d9,$e5,$01,$fc,$eb + +; note dur%'s +3300: db $32,$65,$7f,$98,$b2,$cb,$e5,$fc +; per-note velocity values +3308: db $19,$32,$4c,$65,$72,$7f,$8c,$98 + +3310: db $a5,$b2,$bf,$cb,$d8,$e5,$f2,$fc diff --git a/snes/NSPC/Argonaut/King Arthur's World ($0360).bin b/snes/NSPC/Argonaut/King Arthur's World ($0360).bin new file mode 100644 index 00000000..565fb0f3 Binary files /dev/null and b/snes/NSPC/Argonaut/King Arthur's World ($0360).bin differ diff --git a/snes/NSPC/Argonaut/King Arthur's World.s b/snes/NSPC/Argonaut/King Arthur's World.s new file mode 100644 index 00000000..7fb5cfe2 --- /dev/null +++ b/snes/NSPC/Argonaut/King Arthur's World.s @@ -0,0 +1,1828 @@ +0360: 20 clrp +0361: cd cf mov x,#$cf +0363: bd mov sp,x +0364: e8 00 mov a,#$00 +0366: 5d mov x,a +0367: af mov (x)+,a +0368: c8 f0 cmp x,#$f0 +036a: d0 fb bne $0367 +036c: 5d mov x,a +036d: d5 00 01 mov $0100+x,a +0370: d5 00 02 mov $0200+x,a +0373: c8 5f cmp x,#$5f +0375: b0 03 bcs $037a +0377: d5 00 03 mov $0300+x,a +037a: 3d inc x +037b: d0 f0 bne $036d +037d: bc inc a +037e: 3f 3d 0c call $0c3d +0381: a2 53 set5 $53 +0383: e8 54 mov a,#$54 +0385: 8d 5d mov y,#$5d +0387: cb f2 mov $f2,y +0389: c4 f3 mov $f3,a +038b: e8 90 mov a,#$90 +038d: c4 f1 mov $f1,a +038f: e8 10 mov a,#$10 +0391: c4 fa mov $fa,a +0393: c4 fb mov $fb,a +0395: c4 5d mov $5d,a +0397: e8 83 mov a,#$83 +0399: c4 f1 mov $f1,a +039b: 8d 0a mov y,#$0a +039d: ad 05 cmp y,#$05 +039f: f0 02 beq $03a3 +03a1: b0 03 bcs $03a6 +03a3: e3 57 0c bbs7 $57,$03b2 +03a6: f6 3c 04 mov a,$043c+y +03a9: c4 f2 mov $f2,a +03ab: f6 46 04 mov a,$0446+y +03ae: 5d mov x,a +03af: e6 mov a,(x) +03b0: c4 f3 mov $f3,a +03b2: fe e9 dbnz y,$039d +03b4: cb 32 mov $32,y +03b6: cb 33 mov $33,y +03b8: e4 1a mov a,$1a +03ba: 44 1b eor a,$1b +03bc: 5c lsr a +03bd: 5c lsr a +03be: ed notc +03bf: 6b 1a ror $1a +03c1: 6b 1b ror $1b +03c3: eb fe mov y,$fe +03c5: f0 fc beq $03c3 +03c7: 6d push y +03c8: e4 77 mov a,$77 +03ca: f0 0b beq $03d7 +03cc: cf mul ya +03cd: 60 clrc +03ce: 84 79 adc a,$79 +03d0: c4 79 mov $79,a +03d2: 90 03 bcc $03d7 +03d4: 5f 51 04 jmp $0451 + +03d7: ee pop y +03d8: e4 78 mov a,$78 +03da: f0 0b beq $03e7 +03dc: cf mul ya +03dd: 60 clrc +03de: 84 7a adc a,$7a +03e0: c4 7a mov $7a,a +03e2: 90 03 bcc $03e7 +03e4: 5f 7d 04 jmp $047d + +03e7: eb fd mov y,$fd +03e9: f0 fc beq $03e7 +03eb: 6d push y +03ec: e8 f0 mov a,#$f0 +03ee: cf mul ya +03ef: 60 clrc +03f0: 84 1d adc a,$1d +03f2: c4 1d mov $1d,a +03f4: 90 0a bcc $0400 +03f6: 3f a9 04 call $04a9 +03f9: 69 58 57 cmp ($57),($58) +03fc: f0 02 beq $0400 +03fe: ab 57 inc $57 +0400: ee pop y +0401: e4 5d mov a,$5d +0403: cf mul ya +0404: 60 clrc +0405: 84 5b adc a,$5b +0407: c4 5b mov $5b,a +0409: 90 0f bcc $041a +040b: 3f c0 07 call $07c0 +040e: cd 00 mov x,#$00 +0410: e4 f4 mov a,$f4 +0412: 64 f4 cmp a,$f4 +0414: d0 fa bne $0410 +0416: d4 00 mov $00+x,a +0418: 2f 81 bra $039b +041a: e4 04 mov a,$04 +041c: f0 fa beq $0418 +041e: cd 00 mov x,#$00 +0420: 8f 01 34 mov $34,#$01 +0423: f4 22 mov a,$22+x +0425: f0 03 beq $042a +0427: 3f bd 0f call $0fbd +042a: 3d inc x +042b: 3d inc x +042c: 0b 34 asl $34 +042e: f4 22 mov a,$22+x +0430: f0 03 beq $0435 +0432: 3f bd 0f call $0fbd +0435: 3d inc x +0436: 3d inc x +0437: 0b 34 asl $34 +0439: d0 e8 bne $0423 +043b: 2f db bra $0418 +043d: 2c 3c 0d rol $0d3c +0440: 4d push x +0441: 6c 4c 5c ror $5c4c +0444: 3d inc x +0445: 2d push a +0446: 5c lsr a +0447: 6b 6d ror $6d +0449: 59 eor (x),(y) +044a: 55 53 32 eor a,$3253+x +044d: 0e 54 56 tset1 $5654 +0450: 33 f8 48 bbc1 $f8,$049b +0453: 03 83 0b bbs0 $83,$0461 +0456: e4 7f mov a,$7f +0458: 8d 00 mov y,#$00 +045a: 60 clrc +045b: 7a 7b addw ya,$7b +045d: da 7b movw $7b,ya +045f: 2f 07 bra $0468 +0461: 80 setc +0462: ba 7b movw ya,$7b +0464: 9a 7f subw ya,$7f +0466: da 7b movw $7b,ya +0468: eb 7b mov y,$7b +046a: f5 d7 06 mov a,$06d7+x +046d: 08 02 or a,#$02 +046f: da f2 movw $f2,ya +0471: eb 7c mov y,$7c +0473: f5 d7 06 mov a,$06d7+x +0476: 08 03 or a,#$03 +0478: da f2 movw $f2,ya +047a: 5f d7 03 jmp $03d7 + +047d: f8 49 mov x,$49 +047f: 23 83 0b bbs1 $83,$048d +0482: e4 81 mov a,$81 +0484: 8d 00 mov y,#$00 +0486: 60 clrc +0487: 7a 7d addw ya,$7d +0489: da 7d movw $7d,ya +048b: 2f 07 bra $0494 +048d: 80 setc +048e: ba 7d movw ya,$7d +0490: 9a 81 subw ya,$81 +0492: da 7d movw $7d,ya +0494: eb 7d mov y,$7d +0496: f5 d7 06 mov a,$06d7+x +0499: 08 02 or a,#$02 +049b: da f2 movw $f2,ya +049d: eb 7e mov y,$7e +049f: f5 d7 06 mov a,$06d7+x +04a2: 08 03 or a,#$03 +04a4: da f2 movw $f2,ya +04a6: 5f e7 03 jmp $03e7 + +04a9: f8 48 mov x,$48 +04ab: f4 38 mov a,$38+x +04ad: 24 4e and a,$4e +04af: f0 1f beq $04d0 +04b1: f8 48 mov x,$48 +04b3: 8f 7c f2 mov $f2,#$7c +04b6: f4 38 mov a,$38+x +04b8: 24 f3 and a,$f3 +04ba: f0 1c beq $04d8 +04bc: f5 d7 06 mov a,$06d7+x +04bf: 08 08 or a,#$08 +04c1: c4 f2 mov $f2,a +04c3: e4 f3 mov a,$f3 +04c5: d0 11 bne $04d8 +04c7: e8 7f mov a,#$7f +04c9: d4 39 mov $39+x,a +04cb: 8f 00 77 mov $77,#$00 +04ce: 2f 08 bra $04d8 +04d0: f8 49 mov x,$49 +04d2: f4 38 mov a,$38+x +04d4: 24 4e and a,$4e +04d6: f0 3b beq $0513 +04d8: f8 49 mov x,$49 +04da: f4 38 mov a,$38+x +04dc: 24 4e and a,$4e +04de: f0 1d beq $04fd +04e0: f8 49 mov x,$49 +04e2: 8f 7c f2 mov $f2,#$7c +04e5: f4 38 mov a,$38+x +04e7: 24 f3 and a,$f3 +04e9: f0 12 beq $04fd +04eb: f5 d7 06 mov a,$06d7+x +04ee: 08 08 or a,#$08 +04f0: c4 f2 mov $f2,a +04f2: e4 f3 mov a,$f3 +04f4: d0 07 bne $04fd +04f6: e8 7f mov a,#$7f +04f8: d4 39 mov $39+x,a +04fa: 8f 00 78 mov $78,#$00 +04fd: e4 f6 mov a,$f6 +04ff: c4 02 mov $02,a +0501: e4 f5 mov a,$f5 +0503: c4 f5 mov $f5,a +0505: 64 f5 cmp a,$f5 +0507: d0 f4 bne $04fd +0509: c4 01 mov $01,a +050b: eb 09 mov y,$09 +050d: c4 09 mov $09,a +050f: 7e 01 cmp y,$01 +0511: d0 01 bne $0514 +0513: 6f ret + +0514: 8f 00 84 mov $84,#$00 +0517: 68 80 cmp a,#$80 +0519: 90 08 bcc $0523 +051b: 58 0f 02 eor $02,#$0f +051e: 28 7f and a,#$7f +0520: 8f c3 84 mov $84,#$c3 +0523: 5c lsr a +0524: fd mov y,a +0525: f8 48 mov x,$48 +0527: f4 39 mov a,$39+x +0529: f8 49 mov x,$49 +052b: 52 83 clr2 $83 +052d: 74 39 cmp a,$39+x +052f: 90 04 bcc $0535 +0531: 42 83 set2 $83 +0533: f8 48 mov x,$48 +0535: dd mov a,y +0536: 74 39 cmp a,$39+x +0538: b0 54 bcs $058e +053a: 53 83 05 bbc2 $83,$0542 +053d: 8f 00 77 mov $77,#$00 +0540: 2f 03 bra $0545 +0542: 8f 00 78 mov $78,#$00 +0545: f4 38 mov a,$38+x +0547: 8f 5c f2 mov $f2,#$5c +054a: c4 f3 mov $f3,a +054c: e8 01 mov a,#$01 +054e: d4 85 mov $85+x,a +0550: dd mov a,y +0551: d4 39 mov $39+x,a +0553: 9c dec a +0554: 1c asl a +0555: 1c asl a +0556: c4 14 mov $14,a +0558: 60 clrc +0559: f5 50 02 mov a,$0250+x +055c: 84 14 adc a,$14 +055e: d4 21 mov $21+x,a +0560: f5 51 02 mov a,$0251+x +0563: 90 01 bcc $0566 +0565: bc inc a +0566: d4 22 mov $22+x,a +0568: e4 02 mov a,$02 +056a: 5c lsr a +056b: 5c lsr a +056c: 28 3c and a,#$3c +056e: fd mov y,a +056f: f5 d7 06 mov a,$06d7+x +0572: da f2 movw $f2,ya +0574: e4 02 mov a,$02 +0576: 1c asl a +0577: 1c asl a +0578: 28 3c and a,#$3c +057a: 04 84 or a,$84 +057c: fd mov y,a +057d: f5 d7 06 mov a,$06d7+x +0580: bc inc a +0581: da f2 movw $f2,ya +0583: 8f 7c f2 mov $f2,#$7c +0586: c4 f3 mov $f3,a +0588: 8f 5c f2 mov $f2,#$5c +058b: 8f 00 f3 mov $f3,#$00 +058e: 6f ret + +058f: 6f ret + +; handle a note vcmd (80-df) +0590: ad ca cmp y,#$ca +0592: 90 05 bcc $0599 +; vcmds ca-cd - percussion note +0594: 3f 95 09 call $0995 +0597: 8d a4 mov y,#$a4 +; vcmds 80-c7,c8,c9 - note/tie/rest +0599: ad c8 cmp y,#$c8 +059b: b0 f2 bcs $058f +; vcmds 80-c7 - note (note number in Y) +059d: dd mov a,y +059e: 28 7f and a,#$7f +05a0: 60 clrc +05a1: 84 5a adc a,$5a +05a3: 60 clrc +05a4: 95 40 03 adc a,$0340+x +05a7: d5 c1 02 mov $02c1+x,a +05aa: f5 e1 02 mov a,$02e1+x +05ad: d5 c0 02 mov $02c0+x,a +05b0: f5 21 03 mov a,$0321+x +05b3: 5c lsr a +05b4: e8 00 mov a,#$00 +05b6: 7c ror a +05b7: d5 10 03 mov $0310+x,a +05ba: e8 00 mov a,#$00 +05bc: d4 c5 mov $c5+x,a +05be: d5 96 00 mov $0096+x,a +05c1: e4 4e mov a,$4e +05c3: 24 34 and a,$34 +05c5: f0 05 beq $05cc +05c7: 09 34 31 or ($31),($34) +05ca: 2f 12 bra $05de +05cc: e4 34 mov a,$34 +05ce: 24 76 and a,$76 +05d0: d0 0c bne $05de +05d2: 09 34 32 or ($32),($34) +05d5: e4 34 mov a,$34 +05d7: 24 37 and a,$37 +05d9: d0 03 bne $05de +05db: 09 34 68 or ($68),($34) +05de: f5 f0 02 mov a,$02f0+x +05e1: d4 b5 mov $b5+x,a +05e3: f0 4a beq $062f +05e5: f5 f1 02 mov a,$02f1+x +05e8: d4 b6 mov $b6+x,a +05ea: f5 00 03 mov a,$0300+x +05ed: d0 0a bne $05f9 +05ef: f5 c1 02 mov a,$02c1+x +05f2: 80 setc +05f3: b5 01 03 sbc a,$0301+x +05f6: d5 c1 02 mov $02c1+x,a +05f9: f5 01 03 mov a,$0301+x +05fc: 60 clrc +05fd: 95 c1 02 adc a,$02c1+x +0600: 28 7f and a,#$7f +0602: d5 e0 02 mov $02e0+x,a +0605: 80 setc +0606: b5 c1 02 sbc a,$02c1+x +0609: fb b5 mov y,$b5+x +060b: 6d push y +060c: ce pop x +060d: ed notc +060e: 6b 12 ror $12 +0610: 10 03 bpl $0615 +0612: 48 ff eor a,#$ff +0614: bc inc a +0615: 8d 00 mov y,#$00 +0617: 9e div ya,x +0618: 2d push a +0619: e8 00 mov a,#$00 +061b: 9e div ya,x +061c: ee pop y +061d: f8 35 mov x,$35 +061f: f3 12 06 bbc7 $12,$0628 +0622: da 16 movw $16,ya +0624: ba 0e movw ya,$0e +0626: 9a 16 subw ya,$16 +0628: d5 d0 02 mov $02d0+x,a +062b: dd mov a,y +062c: d5 d1 02 mov $02d1+x,a +062f: f5 c1 02 mov a,$02c1+x +0632: c4 11 mov $11,a +0634: f5 c0 02 mov a,$02c0+x +0637: c4 10 mov $10,a +0639: 8d 00 mov y,#$00 +063b: e4 11 mov a,$11 +063d: 80 setc +063e: a8 34 sbc a,#$34 +0640: b0 09 bcs $064b +0642: e4 11 mov a,$11 +0644: 80 setc +0645: a8 13 sbc a,#$13 +0647: b0 06 bcs $064f +0649: dc dec y +064a: 1c asl a +064b: 7a 10 addw ya,$10 +064d: da 10 movw $10,ya +064f: 4d push x +0650: e4 11 mov a,$11 +0652: 1c asl a +0653: 8d 00 mov y,#$00 +0655: cd 18 mov x,#$18 +0657: 9e div ya,x +0658: 5d mov x,a +0659: f6 be 06 mov a,$06be+y +065c: c4 17 mov $17,a +065e: f6 bd 06 mov a,$06bd+y +0661: c4 16 mov $16,a +0663: f6 c0 06 mov a,$06c0+y +0666: 2d push a +0667: f6 bf 06 mov a,$06bf+y +066a: ee pop y +066b: 9a 16 subw ya,$16 +066d: eb 10 mov y,$10 +066f: cf mul ya +0670: dd mov a,y +0671: 8d 00 mov y,#$00 +0673: 7a 16 addw ya,$16 +0675: cb 17 mov $17,y +0677: 1c asl a +0678: 2b 17 rol $17 +067a: c4 16 mov $16,a +067c: 2f 04 bra $0682 +067e: 4b 17 lsr $17 +0680: 7c ror a +0681: 3d inc x +0682: c8 06 cmp x,#$06 +0684: d0 f8 bne $067e +0686: c4 16 mov $16,a +0688: ce pop x +0689: f5 20 02 mov a,$0220+x +068c: eb 17 mov y,$17 +068e: cf mul ya +068f: da 18 movw $18,ya +0691: f5 20 02 mov a,$0220+x +0694: eb 16 mov y,$16 +0696: cf mul ya +0697: 6d push y +0698: f5 21 02 mov a,$0221+x +069b: eb 16 mov y,$16 +069d: cf mul ya +069e: 7a 18 addw ya,$18 +06a0: da 18 movw $18,ya +06a2: f5 21 02 mov a,$0221+x +06a5: eb 17 mov y,$17 +06a7: cf mul ya +06a8: fd mov y,a +06a9: ae pop a +06aa: 7a 18 addw ya,$18 +06ac: da 18 movw $18,ya +06ae: f5 d7 06 mov a,$06d7+x +06b1: 08 02 or a,#$02 +06b3: eb 18 mov y,$18 +06b5: da f2 movw $f2,ya +06b7: bc inc a +06b8: eb 19 mov y,$19 +06ba: da f2 movw $f2,ya +06bc: 6f ret + +; pitch table +06bd: dw $085f +06bf: dw $08de +06c1: dw $0965 +06c3: dw $09f4 +06c5: dw $0a8c +06c7: dw $0b2c +06c9: dw $0bd6 +06cb: dw $0c8b +06cd: dw $0d4a +06cf: dw $0e14 +06d1: dw $0eea +06d3: dw $0fcd +06d5: dw $10be + +; channel value table +06d7: dw $0000 +06d9: dw $0010 +06db: dw $0020 +06dd: dw $0030 +06df: dw $0040 +06e1: dw $0050 +06e3: dw $0060 +06e5: dw $0070 +06e7: dw $0080 + +06e9: 8d 00 mov y,#$00 +06eb: f7 1e mov a,($1e)+y +06ed: 3a 1e incw $1e +06ef: 2d push a +06f0: f7 1e mov a,($1e)+y +06f2: 3a 1e incw $1e +06f4: fd mov y,a +06f5: ae pop a +06f6: 6f ret + +06f7: 8f ff 08 mov $08,#$ff +06fa: e4 51 mov a,$51 +06fc: d0 0a bne $0708 +06fe: e4 4f mov a,$4f +0700: d0 2e bne $0730 +0702: 8d 0a mov y,#$0a +0704: cb 4f mov $4f,y +0706: 2f 28 bra $0730 +0708: 9c dec a +0709: c4 51 mov $51,a +070b: 8d 0c mov y,#$0c +070d: cb f2 mov $f2,y +070f: c4 f3 mov $f3,a +0711: 8d 1c mov y,#$1c +0713: cb f2 mov $f2,y +0715: c4 f3 mov $f3,a +0717: eb 6b mov y,$6b +0719: f0 07 beq $0722 +071b: dc dec y +071c: cb 6b mov $6b,y +071e: e8 2c mov a,#$2c +0720: da f2 movw $f2,ya +0722: eb 6d mov y,$6d +0724: f0 07 beq $072d +0726: dc dec y +0727: cb 6d mov $6d,y +0729: e8 3c mov a,#$3c +072b: da f2 movw $f2,ya +072d: 5f cb 07 jmp $07cb + +; play song +0730: e4 4f mov a,$4f +0732: f0 05 beq $0739 +0734: 9c dec a +0735: c4 4f mov $4f,a +0737: d0 24 bne $075d +0739: e4 00 mov a,$00 +073b: c4 08 mov $08,a +073d: c4 04 mov $04,a +073f: 1c asl a +0740: f0 1b beq $075d +0742: 5d mov x,a +0743: e8 00 mov a,#$00 +0745: c4 4a mov $4a,a +0747: c4 4b mov $4b,a +0749: c4 4d mov $4d,a +074b: c4 4c mov $4c,a +074d: c4 37 mov $37,a +074f: c4 4e mov $4e,a +0751: f5 b5 10 mov a,$10b5+x +0754: fd mov y,a +0755: f5 b4 10 mov a,$10b4+x +0758: da 1e movw $1e,ya +075a: 8f 02 0c mov $0c,#$02 +075d: e4 1c mov a,$1c +075f: 48 ff eor a,#$ff +0761: 0e 33 00 tset1 $0033 +0764: e8 00 mov a,#$00 +0766: 8d 00 mov y,#$00 +0768: 5f 07 0c jmp $0c07 + +076b: cd 0e mov x,#$0e +076d: 8f 80 34 mov $34,#$80 +0770: e4 34 mov a,$34 +0772: d4 38 mov $38+x,a +0774: d4 39 mov $39+x,a +0776: e8 5f mov a,#$5f +0778: c4 51 mov $51,a +077a: 8d 0c mov y,#$0c +077c: cb f2 mov $f2,y +077e: c4 f3 mov $f3,a +0780: 8d 1c mov y,#$1c +0782: cb f2 mov $f2,y +0784: c4 f3 mov $f3,a +0786: e8 00 mov a,#$00 +0788: d5 61 02 mov $0261+x,a +078b: e8 0a mov a,#$0a +078d: 3f e3 09 call $09e3 +0790: d5 11 02 mov $0211+x,a +0793: d5 e1 02 mov $02e1+x,a +0796: d5 40 03 mov $0340+x,a +0799: d5 f0 02 mov $02f0+x,a +079c: d5 50 03 mov $0350+x,a +079f: d4 c6 mov $c6+x,a +07a1: d4 39 mov $39+x,a +07a3: 1d dec x +07a4: 1d dec x +07a5: 4b 34 lsr $34 +07a7: d0 c7 bne $0770 +07a9: c4 64 mov $64,a +07ab: c4 72 mov $72,a +07ad: c4 5e mov $5e,a +07af: c4 5a mov $5a,a +07b1: c4 20 mov $20,a +07b3: c4 69 mov $69,a +07b5: c4 75 mov $75,a +07b7: c4 76 mov $76,a +07b9: 8f c0 63 mov $63,#$c0 +07bc: 8f 30 5d mov $5d,#$30 +07bf: 6f ret + +07c0: eb 08 mov y,$08 +07c2: e4 00 mov a,$00 +07c4: 7e 00 cmp y,$00 +07c6: f0 03 beq $07cb +07c8: 5f f7 06 jmp $06f7 + +07cb: e4 04 mov a,$04 +07cd: f0 f0 beq $07bf +07cf: e4 0c mov a,$0c +07d1: f0 53 beq $0826 +07d3: 6e 0c 95 dbnz $0c,$076b +07d6: e8 00 mov a,#$00 +07d8: c4 4e mov $4e,a +07da: 3f e9 06 call $06e9 +07dd: d0 17 bne $07f6 +07df: fd mov y,a +07e0: d0 03 bne $07e5 +07e2: 5f f7 06 jmp $06f7 + +07e5: 8b 20 dec $20 +07e7: 10 02 bpl $07eb +07e9: c4 20 mov $20,a +07eb: 3f e9 06 call $06e9 +07ee: f8 20 mov x,$20 +07f0: f0 e8 beq $07da +07f2: da 1e movw $1e,ya +07f4: 2f e4 bra $07da +07f6: da 18 movw $18,ya +07f8: 8d 0f mov y,#$0f +07fa: f7 18 mov a,($18)+y +07fc: d6 21 00 mov $0021+y,a +07ff: dc dec y +0800: 10 f8 bpl $07fa +0802: cd 00 mov x,#$00 +0804: 8f 01 34 mov $34,#$01 +0807: f4 22 mov a,$22+x +0809: f0 0a beq $0815 +080b: f5 11 02 mov a,$0211+x +080e: d0 05 bne $0815 +0810: e8 00 mov a,#$00 +0812: 3f 95 09 call $0995 +0815: e8 00 mov a,#$00 +0817: d4 95 mov $95+x,a +0819: d4 a5 mov $a5+x,a +081b: d4 a6 mov $a6+x,a +081d: bc inc a +081e: d4 85 mov $85+x,a +0820: 3d inc x +0821: 3d inc x +0822: 0b 34 asl $34 +0824: d0 e1 bne $0807 +0826: cd 00 mov x,#$00 +0828: d8 68 mov $68,x +082a: 8f 01 34 mov $34,#$01 +082d: d8 35 mov $35,x +082f: f4 22 mov a,$22+x +0831: d0 03 bne $0836 +0833: 5f b7 08 jmp $08b7 + +0836: 9b 85 dec $85+x +0838: d0 77 bne $08b1 +083a: e7 21 mov a,($21+x) +083c: bb 21 inc $21+x +083e: d0 02 bne $0842 +0840: bb 22 inc $22+x +0842: fd mov y,a +0843: d0 27 bne $086c +0845: f4 95 mov a,$95+x +0847: f0 91 beq $07da +0849: e4 4e mov a,$4e +084b: 24 34 and a,$34 +084d: d0 13 bne $0862 +084f: 3f 80 0b call $0b80 +0852: 9b 95 dec $95+x +0854: d0 e4 bne $083a +0856: f5 30 02 mov a,$0230+x +0859: d4 21 mov $21+x,a +085b: f5 31 02 mov a,$0231+x +085e: d4 22 mov $22+x,a +0860: 2f d8 bra $083a +0862: e8 00 mov a,#$00 +0864: d4 22 mov $22+x,a +0866: e8 7f mov a,#$7f +0868: d4 39 mov $39+x,a +086a: 2f 4b bra $08b7 +086c: 30 25 bmi $0893 +086e: d5 00 02 mov $0200+x,a +0871: e7 21 mov a,($21+x) +0873: bb 21 inc $21+x +0875: d0 02 bne $0879 +0877: bb 22 inc $22+x +0879: fd mov y,a +087a: 30 17 bmi $0893 +087c: 2d push a +087d: 9f xcn a +087e: 28 07 and a,#$07 +0880: fd mov y,a +0881: f6 9e 10 mov a,$109e+y +0884: d5 01 02 mov $0201+x,a +0887: ae pop a +0888: 28 0f and a,#$0f +088a: fd mov y,a +088b: f6 a6 10 mov a,$10a6+y +088e: d5 10 02 mov $0210+x,a +0891: 2f a7 bra $083a +0893: 68 ce cmp a,#$ce +0895: 90 05 bcc $089c +0897: 3f 79 09 call $0979 +089a: 2f 9e bra $083a +089c: 3f 90 05 call $0590 +089f: f5 00 02 mov a,$0200+x +08a2: d4 85 mov $85+x,a +08a4: fd mov y,a +08a5: f5 01 02 mov a,$0201+x +08a8: cf mul ya +08a9: dd mov a,y +08aa: d0 01 bne $08ad +08ac: bc inc a +08ad: d4 86 mov $86+x,a +08af: 2f 03 bra $08b4 +08b1: 3f ae 0e call $0eae +08b4: 3f 72 0d call $0d72 +08b7: 3f 62 10 call $1062 +08ba: 3d inc x +08bb: 3d inc x +08bc: 0b 34 asl $34 +08be: f0 03 beq $08c3 +08c0: 5f 2d 08 jmp $082d + +08c3: fa 75 76 mov ($76),($75) +08c6: e4 5e mov a,$5e +08c8: f0 0b beq $08d5 +08ca: ba 60 movw ya,$60 +08cc: 7a 5c addw ya,$5c +08ce: 6e 5e 02 dbnz $5e,$08d3 +08d1: ba 5e movw ya,$5e +08d3: da 5c movw $5c,ya +08d5: e4 72 mov a,$72 +08d7: f0 15 beq $08ee +08d9: ba 6e movw ya,$6e +08db: 7a 6a addw ya,$6a +08dd: da 6a movw $6a,ya +08df: ba 70 movw ya,$70 +08e1: 7a 6c addw ya,$6c +08e3: 6e 72 06 dbnz $72,$08ec +08e6: ba 72 movw ya,$72 +08e8: da 6a movw $6a,ya +08ea: eb 74 mov y,$74 +08ec: da 6c movw $6c,ya +08ee: e4 64 mov a,$64 +08f0: f0 0e beq $0900 +08f2: ba 66 movw ya,$66 +08f4: 7a 62 addw ya,$62 +08f6: 6e 64 02 dbnz $64,$08fb +08f9: ba 64 movw ya,$64 +08fb: da 62 movw $62,ya +08fd: 8f ff 68 mov $68,#$ff +0900: cd 00 mov x,#$00 +0902: 8f 01 34 mov $34,#$01 +0905: f4 22 mov a,$22+x +0907: f0 03 beq $090c +0909: 3f d8 0d call $0dd8 +090c: 3d inc x +090d: 3d inc x +090e: 0b 34 asl $34 +0910: d0 f3 bne $0905 +0912: 6f ret + +; vcmd dispatch table +0913: dw $0995 ; ce - set instrument +0915: dw $09e3 ; cf - pan +0917: dw $09f1 ; d0 - pan fade +0919: dw $0a28 ; d1 - vibrato on +091b: dw $0a40 ; d2 - vibrato off +091d: dw $0a5b ; d3 - master volume +091f: dw $0a60 ; d4 - master volume fade +0921: dw $0a90 ; d5 - tempo +0923: dw $0a98 ; d6 - tempo fade +0925: dw $0ac8 ; d7 - global transpose +0927: dw $0acb ; d8 - per-voice transpose +0929: dw $0acf ; d9 - set channel ASDR +092b: dw $0ad7 ; da - set channel ASDR envelope +092d: dw $0b18 ; db - volume +092f: dw $0b21 ; dc - volume fade +0931: dw $0b5c ; dd - call subroutine +0933: dw $0a4b ; de - vibrato fade +0935: dw $0aee ; df - pitch envelope (release) +0937: dw $0af2 ; e0 - pitch envelope (attack) +0939: dw $0b14 ; e1 - pitch envelope off +093b: dw $0b58 ; e2 - tuning +093d: dw $0b8b ; e3 - echo vbits/volume +093f: dw $0c07 ; e4 - disable echo +0941: dw $0c0e ; e5 - echo params +0943: dw $0baa ; e6 - echo volume fade +0945: dw $0d8c ; e7 - pitch slide +0947: dw $0c7f ; e8 - set perc patch base +0949: dw $0c82 ; e9 +094b: dw $0cc5 ; ea +094d: dw $0adf ; eb - set FIR +094f: dw $0cb1 ; ec +0951: dw $0cd5 ; ed +0953: dw $0cd9 ; ee +0955: dw $0ce4 ; ef + +; vcmd lengths +0957: db $01,$01,$02,$03,$00,$01,$02,$01 ; ce-d5 +095f: db $02,$01,$01,$01,$01,$01,$02,$03 ; d6-dd +0967: db $01,$03,$03,$00,$01,$03,$00,$03 ; de-e5 +096f: db $03,$03,$01,$01,$01,$01,$02,$00 ; e6-ed +0977: db $00,$02 ; ee-ef + +; dispatch vcmd +0979: 1c asl a +097a: fd mov y,a +097b: f6 78 08 mov a,$0878+y +097e: 2d push a +097f: f6 77 08 mov a,$0877+y +0982: 2d push a +0983: dd mov a,y +0984: 5c lsr a +0985: fd mov y,a +0986: f6 09 09 mov a,$0909+y +0989: f0 09 beq $0994 +098b: e7 21 mov a,($21+x) +098d: bb 21 inc $21+x +098f: d0 02 bne $0993 +0991: bb 22 inc $22+x +0993: fd mov y,a +0994: 6f ret + +; vcmd ce - set instrument +0995: d5 11 02 mov $0211+x,a +0998: fd mov y,a +0999: 10 03 bpl $099e +099b: 80 setc +099c: a8 ca sbc a,#$ca +099e: 8d 06 mov y,#$06 +09a0: cf mul ya +09a1: da 16 movw $16,ya +09a3: 60 clrc +09a4: 98 5c 16 adc $16,#$5c +09a7: 98 53 17 adc $17,#$53 +09aa: 4d push x +09ab: f5 d7 06 mov a,$06d7+x +09ae: 08 04 or a,#$04 +09b0: 5d mov x,a +09b1: 8d 00 mov y,#$00 +09b3: f7 16 mov a,($16)+y +09b5: 10 0e bpl $09c5 +09b7: 28 1f and a,#$1f +09b9: 38 20 53 and $53,#$20 +09bc: 0e 53 00 tset1 $0053 +09bf: 09 34 54 or ($54),($34) +09c2: dd mov a,y +09c3: 2f 07 bra $09cc +09c5: e4 34 mov a,$34 +09c7: 4e 54 00 tclr1 $0054 +09ca: f7 16 mov a,($16)+y +09cc: d8 f2 mov $f2,x +09ce: c4 f3 mov $f3,a +09d0: 3d inc x +09d1: fc inc y +09d2: ad 04 cmp y,#$04 +09d4: d0 f4 bne $09ca +09d6: ce pop x +09d7: f7 16 mov a,($16)+y +09d9: d5 21 02 mov $0221+x,a +09dc: fc inc y +09dd: f7 16 mov a,($16)+y +09df: d5 20 02 mov $0220+x,a +09e2: 6f ret + +; vcmd cf - pan +09e3: d5 b1 02 mov $02b1+x,a +09e6: 28 1f and a,#$1f +09e8: d5 91 02 mov $0291+x,a +09eb: e8 00 mov a,#$00 +09ed: d5 90 02 mov $0290+x,a +09f0: 6f ret + +; vcmd d0 - pan fade +09f1: d4 a6 mov $a6+x,a +09f3: 2d push a +09f4: e7 21 mov a,($21+x) +09f6: bb 21 inc $21+x +09f8: d0 02 bne $09fc +09fa: bb 22 inc $22+x +09fc: fd mov y,a +09fd: d5 b0 02 mov $02b0+x,a +0a00: 80 setc +0a01: b5 91 02 sbc a,$0291+x +0a04: ce pop x +0a05: ed notc +0a06: 6b 12 ror $12 +0a08: 10 03 bpl $0a0d +0a0a: 48 ff eor a,#$ff +0a0c: bc inc a +0a0d: 8d 00 mov y,#$00 +0a0f: 9e div ya,x +0a10: 2d push a +0a11: e8 00 mov a,#$00 +0a13: 9e div ya,x +0a14: ee pop y +0a15: f8 35 mov x,$35 +0a17: f3 12 06 bbc7 $12,$0a20 +0a1a: da 16 movw $16,ya +0a1c: ba 0e movw ya,$0e +0a1e: 9a 16 subw ya,$16 +0a20: d5 a0 02 mov $02a0+x,a +0a23: dd mov a,y +0a24: d5 a1 02 mov $02a1+x,a +0a27: 6f ret + +; vcmd d1 - vibrato on +0a28: d5 20 03 mov $0320+x,a +0a2b: e7 21 mov a,($21+x) +0a2d: bb 21 inc $21+x +0a2f: d0 02 bne $0a33 +0a31: bb 22 inc $22+x +0a33: fd mov y,a +0a34: d5 11 03 mov $0311+x,a +0a37: e7 21 mov a,($21+x) +0a39: bb 21 inc $21+x +0a3b: d0 02 bne $0a3f +0a3d: bb 22 inc $22+x +0a3f: fd mov y,a +; vcmd d2 - vibrato off +0a40: d4 c6 mov $c6+x,a +0a42: d5 31 03 mov $0331+x,a +0a45: e8 00 mov a,#$00 +0a47: d5 21 03 mov $0321+x,a +0a4a: 6f ret + +; vcmd de - vibrato fade +0a4b: d5 21 03 mov $0321+x,a +0a4e: 2d push a +0a4f: 8d 00 mov y,#$00 +0a51: f4 c6 mov a,$c6+x +0a53: ce pop x +0a54: 9e div ya,x +0a55: f8 35 mov x,$35 +0a57: d5 30 03 mov $0330+x,a +0a5a: 6f ret + +; vcmd d3 - master volume +0a5b: e8 00 mov a,#$00 +0a5d: da 62 movw $62,ya +0a5f: 6f ret + +; vcmd d4 - master volume fade +0a60: c4 64 mov $64,a +0a62: e7 21 mov a,($21+x) +0a64: bb 21 inc $21+x +0a66: d0 02 bne $0a6a +0a68: bb 22 inc $22+x +0a6a: fd mov y,a +0a6b: c4 65 mov $65,a +0a6d: 80 setc +0a6e: a4 63 sbc a,$63 +0a70: f8 64 mov x,$64 +0a72: ed notc +0a73: 6b 12 ror $12 +0a75: 10 03 bpl $0a7a +0a77: 48 ff eor a,#$ff +0a79: bc inc a +0a7a: 8d 00 mov y,#$00 +0a7c: 9e div ya,x +0a7d: 2d push a +0a7e: e8 00 mov a,#$00 +0a80: 9e div ya,x +0a81: ee pop y +0a82: f8 35 mov x,$35 +0a84: f3 12 06 bbc7 $12,$0a8d +0a87: da 16 movw $16,ya +0a89: ba 0e movw ya,$0e +0a8b: 9a 16 subw ya,$16 +0a8d: da 66 movw $66,ya +0a8f: 6f ret + +; vcmd d5 - tempo +0a90: e8 00 mov a,#$00 +0a92: cc 4f 03 mov $034f,y +0a95: da 5c movw $5c,ya +0a97: 6f ret + +; vcmd d6 - tempo fade +0a98: c4 5e mov $5e,a +0a9a: e7 21 mov a,($21+x) +0a9c: bb 21 inc $21+x +0a9e: d0 02 bne $0aa2 +0aa0: bb 22 inc $22+x +0aa2: fd mov y,a +0aa3: c4 5f mov $5f,a +0aa5: 80 setc +0aa6: a4 5d sbc a,$5d +0aa8: f8 5e mov x,$5e +0aaa: ed notc +0aab: 6b 12 ror $12 +0aad: 10 03 bpl $0ab2 +0aaf: 48 ff eor a,#$ff +0ab1: bc inc a +0ab2: 8d 00 mov y,#$00 +0ab4: 9e div ya,x +0ab5: 2d push a +0ab6: e8 00 mov a,#$00 +0ab8: 9e div ya,x +0ab9: ee pop y +0aba: f8 35 mov x,$35 +0abc: f3 12 06 bbc7 $12,$0ac5 +0abf: da 16 movw $16,ya +0ac1: ba 0e movw ya,$0e +0ac3: 9a 16 subw ya,$16 +0ac5: da 60 movw $60,ya +0ac7: 6f ret + +; vcmd d7 - global transpose +0ac8: c4 5a mov $5a,a +0aca: 6f ret + +; vcmd d8 - per-voice transpose +0acb: d5 40 03 mov $0340+x,a +0ace: 6f ret + +; vcmd d9 - set channel ASDR +0acf: f5 d7 06 mov a,$06d7+x +0ad2: 08 05 or a,#$05 +0ad4: da f2 movw $f2,ya +0ad6: 6f ret + +; vcmd da - set channel ASDR envelope +0ad7: f5 d7 06 mov a,$06d7+x +0ada: 08 06 or a,#$06 +0adc: da f2 movw $f2,ya +0ade: 6f ret + +; vcmd eb - set FIR +0adf: f5 d7 06 mov a,$06d7+x +0ae2: 08 05 or a,#$05 +0ae4: c4 f2 mov $f2,a +0ae6: 8f 7f f3 mov $f3,#$7f +0ae9: bc inc a +0aea: bc inc a +0aeb: da f2 movw $f2,ya +0aed: 6f ret + +; vcmd df - pitch envelope (release) +0aee: e8 01 mov a,#$01 +0af0: 2f 02 bra $0af4 +; vcmd e0 - pitch envelope (attack) +0af2: e8 00 mov a,#$00 +0af4: d5 00 03 mov $0300+x,a +0af7: dd mov a,y +0af8: d5 f1 02 mov $02f1+x,a +0afb: e7 21 mov a,($21+x) +0afd: bb 21 inc $21+x +0aff: d0 02 bne $0b03 +0b01: bb 22 inc $22+x +0b03: fd mov y,a +0b04: d5 f0 02 mov $02f0+x,a +0b07: e7 21 mov a,($21+x) +0b09: bb 21 inc $21+x +0b0b: d0 02 bne $0b0f +0b0d: bb 22 inc $22+x +0b0f: fd mov y,a +0b10: d5 01 03 mov $0301+x,a +0b13: 6f ret + +; vcmd e1 - pitch envelope off +0b14: d5 f0 02 mov $02f0+x,a +0b17: 6f ret + +; vcmd db - volume +0b18: d5 61 02 mov $0261+x,a +0b1b: e8 00 mov a,#$00 +0b1d: d5 60 02 mov $0260+x,a +0b20: 6f ret + +; vcmd dc - volume fade +0b21: d4 a5 mov $a5+x,a +0b23: 2d push a +0b24: e7 21 mov a,($21+x) +0b26: bb 21 inc $21+x +0b28: d0 02 bne $0b2c +0b2a: bb 22 inc $22+x +0b2c: fd mov y,a +0b2d: d5 80 02 mov $0280+x,a +0b30: 80 setc +0b31: b5 61 02 sbc a,$0261+x +0b34: ce pop x +0b35: ed notc +0b36: 6b 12 ror $12 +0b38: 10 03 bpl $0b3d +0b3a: 48 ff eor a,#$ff +0b3c: bc inc a +0b3d: 8d 00 mov y,#$00 +0b3f: 9e div ya,x +0b40: 2d push a +0b41: e8 00 mov a,#$00 +0b43: 9e div ya,x +0b44: ee pop y +0b45: f8 35 mov x,$35 +0b47: f3 12 06 bbc7 $12,$0b50 +0b4a: da 16 movw $16,ya +0b4c: ba 0e movw ya,$0e +0b4e: 9a 16 subw ya,$16 +0b50: d5 70 02 mov $0270+x,a +0b53: dd mov a,y +0b54: d5 71 02 mov $0271+x,a +0b57: 6f ret + +; vcmd e2 - tuning +0b58: d5 e1 02 mov $02e1+x,a +0b5b: 6f ret + +; vcmd dd - call subroutine +0b5c: d5 40 02 mov $0240+x,a +0b5f: e7 21 mov a,($21+x) +0b61: bb 21 inc $21+x +0b63: d0 02 bne $0b67 +0b65: bb 22 inc $22+x +0b67: fd mov y,a +0b68: d5 41 02 mov $0241+x,a +0b6b: e7 21 mov a,($21+x) +0b6d: bb 21 inc $21+x +0b6f: d0 02 bne $0b73 +0b71: bb 22 inc $22+x +0b73: fd mov y,a +0b74: d4 95 mov $95+x,a +0b76: f4 21 mov a,$21+x +0b78: d5 30 02 mov $0230+x,a +0b7b: f4 22 mov a,$22+x +0b7d: d5 31 02 mov $0231+x,a +0b80: f5 40 02 mov a,$0240+x +0b83: d4 21 mov $21+x,a +0b85: f5 41 02 mov a,$0241+x +0b88: d4 22 mov $22+x,a +0b8a: 6f ret + +; vcmd e3 - echo vbits/volume +0b8b: c4 55 mov $55,a +0b8d: e7 21 mov a,($21+x) +0b8f: bb 21 inc $21+x +0b91: d0 02 bne $0b95 +0b93: bb 22 inc $22+x +0b95: fd mov y,a +0b96: e8 00 mov a,#$00 +0b98: da 6a movw $6a,ya +0b9a: e7 21 mov a,($21+x) +0b9c: bb 21 inc $21+x +0b9e: d0 02 bne $0ba2 +0ba0: bb 22 inc $22+x +0ba2: fd mov y,a +0ba3: e8 00 mov a,#$00 +0ba5: da 6c movw $6c,ya +0ba7: b2 53 clr5 $53 +0ba9: 6f ret + +; vcmd e6 - echo volume fade +0baa: c4 72 mov $72,a +0bac: e7 21 mov a,($21+x) +0bae: bb 21 inc $21+x +0bb0: d0 02 bne $0bb4 +0bb2: bb 22 inc $22+x +0bb4: fd mov y,a +0bb5: c4 73 mov $73,a +0bb7: 80 setc +0bb8: a4 6b sbc a,$6b +0bba: f8 72 mov x,$72 +0bbc: ed notc +0bbd: 6b 12 ror $12 +0bbf: 10 03 bpl $0bc4 +0bc1: 48 ff eor a,#$ff +0bc3: bc inc a +0bc4: 8d 00 mov y,#$00 +0bc6: 9e div ya,x +0bc7: 2d push a +0bc8: e8 00 mov a,#$00 +0bca: 9e div ya,x +0bcb: ee pop y +0bcc: f8 35 mov x,$35 +0bce: f3 12 06 bbc7 $12,$0bd7 +0bd1: da 16 movw $16,ya +0bd3: ba 0e movw ya,$0e +0bd5: 9a 16 subw ya,$16 +0bd7: da 6e movw $6e,ya +0bd9: e7 21 mov a,($21+x) +0bdb: bb 21 inc $21+x +0bdd: d0 02 bne $0be1 +0bdf: bb 22 inc $22+x +0be1: fd mov y,a +0be2: c4 74 mov $74,a +0be4: 80 setc +0be5: a4 6d sbc a,$6d +0be7: f8 72 mov x,$72 +0be9: ed notc +0bea: 6b 12 ror $12 +0bec: 10 03 bpl $0bf1 +0bee: 48 ff eor a,#$ff +0bf0: bc inc a +0bf1: 8d 00 mov y,#$00 +0bf3: 9e div ya,x +0bf4: 2d push a +0bf5: e8 00 mov a,#$00 +0bf7: 9e div ya,x +0bf8: ee pop y +0bf9: f8 35 mov x,$35 +0bfb: f3 12 06 bbc7 $12,$0c04 +0bfe: da 16 movw $16,ya +0c00: ba 0e movw ya,$0e +0c02: 9a 16 subw ya,$16 +0c04: da 70 movw $70,ya +0c06: 6f ret + +; vcmd e4 - disable echo +0c07: da 6a movw $6a,ya +0c09: da 6c movw $6c,ya +0c0b: a2 53 set5 $53 +0c0d: 6f ret + +; vcmd e5 - set echo params +0c0e: 3f 3d 0c call $0c3d +0c11: e7 21 mov a,($21+x) +0c13: bb 21 inc $21+x +0c15: d0 02 bne $0c19 +0c17: bb 22 inc $22+x +0c19: fd mov y,a +0c1a: c4 59 mov $59,a +0c1c: e7 21 mov a,($21+x) +0c1e: bb 21 inc $21+x +0c20: d0 02 bne $0c24 +0c22: bb 22 inc $22+x +0c24: fd mov y,a +0c25: 8d 08 mov y,#$08 +0c27: cf mul ya +0c28: 5d mov x,a +0c29: 8d 0f mov y,#$0f +0c2b: f5 7e 10 mov a,$107e+x +0c2e: cb f2 mov $f2,y +0c30: c4 f3 mov $f3,a +0c32: 3d inc x +0c33: dd mov a,y +0c34: 60 clrc +0c35: 88 10 adc a,#$10 +0c37: fd mov y,a +0c38: 10 f1 bpl $0c2b +0c3a: f8 35 mov x,$35 +0c3c: 6f ret + +0c3d: c4 58 mov $58,a +0c3f: 8d 7d mov y,#$7d +0c41: cb f2 mov $f2,y +0c43: e4 f3 mov a,$f3 +0c45: 64 58 cmp a,$58 +0c47: f0 2b beq $0c74 +0c49: 28 0f and a,#$0f +0c4b: 48 ff eor a,#$ff +0c4d: f3 57 03 bbc7 $57,$0c53 +0c50: 60 clrc +0c51: 84 57 adc a,$57 +0c53: c4 57 mov $57,a +0c55: 8d 04 mov y,#$04 +0c57: f6 3c 04 mov a,$043c+y +0c5a: c4 f2 mov $f2,a +0c5c: e8 00 mov a,#$00 +0c5e: c4 f3 mov $f3,a +0c60: fe f5 dbnz y,$0c57 +0c62: e4 53 mov a,$53 +0c64: 08 20 or a,#$20 +0c66: 8d 6c mov y,#$6c +0c68: cb f2 mov $f2,y +0c6a: c4 f3 mov $f3,a +0c6c: e4 58 mov a,$58 +0c6e: 8d 7d mov y,#$7d +0c70: cb f2 mov $f2,y +0c72: c4 f3 mov $f3,a +0c74: 1c asl a +0c75: 1c asl a +0c76: 1c asl a +0c77: 48 ff eor a,#$ff +0c79: fd mov y,a +0c7a: e8 6d mov a,#$6d +0c7c: da f2 movw $f2,ya +0c7e: 6f ret + +; vcmd e8 - set perc patch base +0c7f: c4 69 mov $69,a +0c81: 6f ret + +; vcmd e9 +0c82: 68 80 cmp a,#$80 +0c84: 90 05 bcc $0c8b +0c86: 09 34 37 or ($37),($34) +0c89: 28 7f and a,#$7f +0c8b: d5 50 03 mov $0350+x,a +0c8e: 5d mov x,a +0c8f: e4 35 mov a,$35 +0c91: d4 48 mov $48+x,a +0c93: 5d mov x,a +0c94: 09 34 4e or ($4e),($34) +0c97: f4 21 mov a,$21+x +0c99: d5 50 02 mov $0250+x,a +0c9c: f4 22 mov a,$22+x +0c9e: d5 51 02 mov $0251+x,a +0ca1: e8 00 mov a,#$00 +0ca3: d5 41 02 mov $0241+x,a +0ca6: d4 22 mov $22+x,a +0ca8: ae pop a +0ca9: ae pop a +0caa: e8 08 mov a,#$08 +0cac: 2d push a +0cad: e8 b7 mov a,#$b7 +0caf: 2d push a +0cb0: 6f ret + +; vcmd ec +0cb1: fa 1a 14 mov ($14),($1a) +0cb4: 24 14 and a,$14 +0cb6: c4 14 mov $14,a +0cb8: e7 21 mov a,($21+x) +0cba: bb 21 inc $21+x +0cbc: d0 02 bne $0cc0 +0cbe: bb 22 inc $22+x +0cc0: fd mov y,a +0cc1: 60 clrc +0cc2: 84 14 adc a,$14 +0cc4: fd mov y,a +; vcmd ea +0cc5: 3f 90 05 call $0590 +0cc8: e8 00 mov a,#$00 +0cca: d4 22 mov $22+x,a +0ccc: ae pop a +0ccd: ae pop a +0cce: e8 08 mov a,#$08 +0cd0: 2d push a +0cd1: e8 b7 mov a,#$b7 +0cd3: 2d push a +0cd4: 6f ret + +; vcmd ed +0cd5: 09 34 75 or ($75),($34) +0cd8: 6f ret + +; vcmd ee +0cd9: e4 34 mov a,$34 +0cdb: 24 75 and a,$75 +0cdd: f0 04 beq $0ce3 +0cdf: 44 75 eor a,$75 +0ce1: c4 75 mov $75,a +0ce3: 6f ret + +; vcmd ef +0ce4: 09 34 31 or ($31),($34) +0ce7: f5 50 03 mov a,$0350+x +0cea: d0 43 bne $0d2f +0cec: 12 83 clr0 $83 +0cee: cb 77 mov $77,y +0cf0: e7 21 mov a,($21+x) +0cf2: bb 21 inc $21+x +0cf4: d0 02 bne $0cf8 +0cf6: bb 22 inc $22+x +0cf8: fd mov y,a +0cf9: c4 7b mov $7b,a +0cfb: f5 d7 06 mov a,$06d7+x +0cfe: 08 02 or a,#$02 +0d00: da f2 movw $f2,ya +0d02: e7 21 mov a,($21+x) +0d04: bb 21 inc $21+x +0d06: d0 02 bne $0d0a +0d08: bb 22 inc $22+x +0d0a: fd mov y,a +0d0b: c4 7c mov $7c,a +0d0d: f5 d7 06 mov a,$06d7+x +0d10: 08 03 or a,#$03 +0d12: da f2 movw $f2,ya +0d14: e7 21 mov a,($21+x) +0d16: bb 21 inc $21+x +0d18: d0 02 bne $0d1c +0d1a: bb 22 inc $22+x +0d1c: fd mov y,a +0d1d: 10 05 bpl $0d24 +0d1f: 02 83 set0 $83 +0d21: 48 ff eor a,#$ff +0d23: bc inc a +0d24: c4 7f mov $7f,a +0d26: ae pop a +0d27: ae pop a +0d28: e8 08 mov a,#$08 +0d2a: 2d push a +0d2b: e8 b7 mov a,#$b7 +0d2d: 2d push a +0d2e: 6f ret + +0d2f: 32 83 clr1 $83 +0d31: cb 78 mov $78,y +0d33: e7 21 mov a,($21+x) +0d35: bb 21 inc $21+x +0d37: d0 02 bne $0d3b +0d39: bb 22 inc $22+x +0d3b: fd mov y,a +0d3c: c4 7d mov $7d,a +0d3e: f5 d7 06 mov a,$06d7+x +0d41: 08 02 or a,#$02 +0d43: da f2 movw $f2,ya +0d45: e7 21 mov a,($21+x) +0d47: bb 21 inc $21+x +0d49: d0 02 bne $0d4d +0d4b: bb 22 inc $22+x +0d4d: fd mov y,a +0d4e: c4 7e mov $7e,a +0d50: f5 d7 06 mov a,$06d7+x +0d53: 08 03 or a,#$03 +0d55: da f2 movw $f2,ya +0d57: e7 21 mov a,($21+x) +0d59: bb 21 inc $21+x +0d5b: d0 02 bne $0d5f +0d5d: bb 22 inc $22+x +0d5f: fd mov y,a +0d60: 10 05 bpl $0d67 +0d62: 22 83 set1 $83 +0d64: 48 ff eor a,#$ff +0d66: bc inc a +0d67: c4 81 mov $81,a +0d69: ae pop a +0d6a: ae pop a +0d6b: e8 08 mov a,#$08 +0d6d: 2d push a +0d6e: e8 b7 mov a,#$b7 +0d70: 2d push a +0d71: 6f ret + +0d72: f4 b5 mov a,$b5+x +0d74: d0 61 bne $0dd7 +0d76: e7 21 mov a,($21+x) +0d78: 68 e7 cmp a,#$e7 +0d7a: d0 5b bne $0dd7 +0d7c: bb 21 inc $21+x +0d7e: d0 02 bne $0d82 +0d80: bb 22 inc $22+x +0d82: fd mov y,a +0d83: e7 21 mov a,($21+x) +0d85: bb 21 inc $21+x +0d87: d0 02 bne $0d8b +0d89: bb 22 inc $22+x +0d8b: fd mov y,a +; vcmd e7 - pitch slide +0d8c: d4 b6 mov $b6+x,a +0d8e: e7 21 mov a,($21+x) +0d90: bb 21 inc $21+x +0d92: d0 02 bne $0d96 +0d94: bb 22 inc $22+x +0d96: fd mov y,a +0d97: d4 b5 mov $b5+x,a +0d99: e7 21 mov a,($21+x) +0d9b: bb 21 inc $21+x +0d9d: d0 02 bne $0da1 +0d9f: bb 22 inc $22+x +0da1: fd mov y,a +0da2: 60 clrc +0da3: 84 5a adc a,$5a +0da5: 95 40 03 adc a,$0340+x +0da8: 28 7f and a,#$7f +0daa: d5 e0 02 mov $02e0+x,a +0dad: 80 setc +0dae: b5 c1 02 sbc a,$02c1+x +0db1: fb b5 mov y,$b5+x +0db3: 6d push y +0db4: ce pop x +0db5: ed notc +0db6: 6b 12 ror $12 +0db8: 10 03 bpl $0dbd +0dba: 48 ff eor a,#$ff +0dbc: bc inc a +0dbd: 8d 00 mov y,#$00 +0dbf: 9e div ya,x +0dc0: 2d push a +0dc1: e8 00 mov a,#$00 +0dc3: 9e div ya,x +0dc4: ee pop y +0dc5: f8 35 mov x,$35 +0dc7: f3 12 06 bbc7 $12,$0dd0 +0dca: da 16 movw $16,ya +0dcc: ba 0e movw ya,$0e +0dce: 9a 16 subw ya,$16 +0dd0: d5 d0 02 mov $02d0+x,a +0dd3: dd mov a,y +0dd4: d5 d1 02 mov $02d1+x,a +0dd7: 6f ret + +0dd8: f4 a5 mov a,$a5+x +0dda: f0 2c beq $0e08 +0ddc: e8 60 mov a,#$60 +0dde: 8d 02 mov y,#$02 +0de0: 9b a5 dec $a5+x +0de2: 09 34 68 or ($68),($34) +0de5: da 16 movw $16,ya +0de7: da 18 movw $18,ya +0de9: 4d push x +0dea: ee pop y +0deb: 60 clrc +0dec: d0 0a bne $0df8 +0dee: 98 1f 18 adc $18,#$1f +0df1: e8 00 mov a,#$00 +0df3: d7 16 mov ($16)+y,a +0df5: fc inc y +0df6: 2f 0c bra $0e04 +0df8: 98 10 18 adc $18,#$10 +0dfb: f7 16 mov a,($16)+y +0dfd: 97 18 adc a,($18)+y +0dff: d7 16 mov ($16)+y,a +0e01: fc inc y +0e02: f7 16 mov a,($16)+y +0e04: 97 18 adc a,($18)+y +0e06: d7 16 mov ($16)+y,a +0e08: e8 ff mov a,#$ff +0e0a: eb 63 mov y,$63 +0e0c: cf mul ya +0e0d: f5 10 02 mov a,$0210+x +0e10: cf mul ya +0e11: f5 61 02 mov a,$0261+x +0e14: cf mul ya +0e15: dd mov a,y +0e16: cf mul ya +0e17: dd mov a,y +0e18: d5 81 02 mov $0281+x,a +0e1b: f4 a6 mov a,$a6+x +0e1d: f0 2c beq $0e4b +0e1f: e8 90 mov a,#$90 +0e21: 8d 02 mov y,#$02 +0e23: 9b a6 dec $a6+x +0e25: 09 34 68 or ($68),($34) +0e28: da 16 movw $16,ya +0e2a: da 18 movw $18,ya +0e2c: 4d push x +0e2d: ee pop y +0e2e: 60 clrc +0e2f: d0 0a bne $0e3b +0e31: 98 1f 18 adc $18,#$1f +0e34: e8 00 mov a,#$00 +0e36: d7 16 mov ($16)+y,a +0e38: fc inc y +0e39: 2f 0c bra $0e47 +0e3b: 98 10 18 adc $18,#$10 +0e3e: f7 16 mov a,($16)+y +0e40: 97 18 adc a,($18)+y +0e42: d7 16 mov ($16)+y,a +0e44: fc inc y +0e45: f7 16 mov a,($16)+y +0e47: 97 18 adc a,($18)+y +0e49: d7 16 mov ($16)+y,a +0e4b: e4 34 mov a,$34 +0e4d: 24 68 and a,$68 +0e4f: f0 47 beq $0e98 +0e51: f5 91 02 mov a,$0291+x +0e54: fd mov y,a +0e55: f5 90 02 mov a,$0290+x +0e58: da 10 movw $10,ya +0e5a: f5 d7 06 mov a,$06d7+x +0e5d: c4 12 mov $12,a +0e5f: eb 11 mov y,$11 +0e61: f6 9a 0e mov a,$0e9a+y +0e64: 80 setc +0e65: b6 99 0e sbc a,$0e99+y +0e68: eb 10 mov y,$10 +0e6a: cf mul ya +0e6b: dd mov a,y +0e6c: eb 11 mov y,$11 +0e6e: 60 clrc +0e6f: 96 99 0e adc a,$0e99+y +0e72: fd mov y,a +0e73: f5 81 02 mov a,$0281+x +0e76: cf mul ya +0e77: f5 b1 02 mov a,$02b1+x +0e7a: 1c asl a +0e7b: 13 12 01 bbc0 $12,$0e7f +0e7e: 1c asl a +0e7f: dd mov a,y +0e80: 90 03 bcc $0e85 +0e82: 48 ff eor a,#$ff +0e84: bc inc a +0e85: eb 12 mov y,$12 +0e87: cb f2 mov $f2,y +0e89: c4 f3 mov $f3,a +0e8b: 8d 14 mov y,#$14 +0e8d: e8 00 mov a,#$00 +0e8f: 9a 10 subw ya,$10 +0e91: da 10 movw $10,ya +0e93: ab 12 inc $12 +0e95: 33 12 c7 bbc1 $12,$0e5f +0e98: 6f ret + +0e99: db $00,$01,$03,$07,$0d,$15,$1e,$29 +0ea1: db $34,$42,$51,$5e,$67,$6e,$73,$77 +0ea9: db $7a,$7c,$7d,$7e,$7f + +0eae: f0 6e beq $0f1e +0eb0: f4 86 mov a,$86+x +0eb2: f0 6a beq $0f1e +0eb4: 9b 86 dec $86+x +0eb6: f0 05 beq $0ebd +0eb8: e8 02 mov a,#$02 +0eba: de 85 61 cbne $85+x,$0f1e +0ebd: f4 95 mov a,$95+x +0ebf: c4 19 mov $19,a +0ec1: f4 21 mov a,$21+x +0ec3: fb 22 mov y,$22+x +0ec5: da 16 movw $16,ya +0ec7: 8d 00 mov y,#$00 +0ec9: f7 16 mov a,($16)+y +0ecb: f0 1c beq $0ee9 +0ecd: 30 05 bmi $0ed4 +0ecf: fc inc y +0ed0: f7 16 mov a,($16)+y +0ed2: 10 fb bpl $0ecf +0ed4: 68 c8 cmp a,#$c8 +0ed6: f0 46 beq $0f1e +0ed8: 68 dd cmp a,#$dd +0eda: f0 29 beq $0f05 +0edc: 68 ce cmp a,#$ce +0ede: 90 30 bcc $0f10 +0ee0: 6d push y +0ee1: fd mov y,a +0ee2: ae pop a +0ee3: 96 89 08 adc a,$0889+y +0ee6: fd mov y,a +0ee7: 2f e0 bra $0ec9 +0ee9: e4 19 mov a,$19 +0eeb: f0 23 beq $0f10 +0eed: 8b 19 dec $19 +0eef: d0 0a bne $0efb +0ef1: f5 31 02 mov a,$0231+x +0ef4: 2d push a +0ef5: f5 30 02 mov a,$0230+x +0ef8: ee pop y +0ef9: 2f ca bra $0ec5 +0efb: f5 41 02 mov a,$0241+x +0efe: 2d push a +0eff: f5 40 02 mov a,$0240+x +0f02: ee pop y +0f03: 2f c0 bra $0ec5 +0f05: fc inc y +0f06: f7 16 mov a,($16)+y +0f08: 2d push a +0f09: fc inc y +0f0a: f7 16 mov a,($16)+y +0f0c: fd mov y,a +0f0d: ae pop a +0f0e: 2f b5 bra $0ec5 +0f10: e4 76 mov a,$76 +0f12: 24 34 and a,$34 +0f14: d0 08 bne $0f1e +0f16: e4 34 mov a,$34 +0f18: 8d 5c mov y,#$5c +0f1a: cb f2 mov $f2,y +0f1c: c4 f3 mov $f3,a +0f1e: f2 13 clr7 $13 +0f20: f4 b5 mov a,$b5+x +0f22: f0 33 beq $0f57 +0f24: f4 b6 mov a,$b6+x +0f26: f0 04 beq $0f2c +0f28: 9b b6 dec $b6+x +0f2a: 2f 2b bra $0f57 +0f2c: e2 13 set7 $13 +0f2e: e8 c0 mov a,#$c0 +0f30: 8d 02 mov y,#$02 +0f32: 9b b5 dec $b5+x +0f34: da 16 movw $16,ya +0f36: da 18 movw $18,ya +0f38: 4d push x +0f39: ee pop y +0f3a: 60 clrc +0f3b: d0 0a bne $0f47 +0f3d: 98 1f 18 adc $18,#$1f +0f40: e8 00 mov a,#$00 +0f42: d7 16 mov ($16)+y,a +0f44: fc inc y +0f45: 2f 0c bra $0f53 +0f47: 98 10 18 adc $18,#$10 +0f4a: f7 16 mov a,($16)+y +0f4c: 97 18 adc a,($18)+y +0f4e: d7 16 mov ($16)+y,a +0f50: fc inc y +0f51: f7 16 mov a,($16)+y +0f53: 97 18 adc a,($18)+y +0f55: d7 16 mov ($16)+y,a +0f57: f5 c1 02 mov a,$02c1+x +0f5a: c4 11 mov $11,a +0f5c: f5 c0 02 mov a,$02c0+x +0f5f: c4 10 mov $10,a +0f61: f4 c6 mov a,$c6+x +0f63: f0 54 beq $0fb9 +0f65: f5 20 03 mov a,$0320+x +0f68: de c5 4c cbne $c5+x,$0fb7 +0f6b: f5 96 00 mov a,$0096+x +0f6e: 75 21 03 cmp a,$0321+x +0f71: d0 05 bne $0f78 +0f73: f5 31 03 mov a,$0331+x +0f76: 2f 0b bra $0f83 +0f78: bb 96 inc $96+x +0f7a: fd mov y,a +0f7b: f0 02 beq $0f7f +0f7d: f4 c6 mov a,$c6+x +0f7f: 60 clrc +0f80: 95 30 03 adc a,$0330+x +0f83: d4 c6 mov $c6+x,a +0f85: f5 10 03 mov a,$0310+x +0f88: 60 clrc +0f89: 95 11 03 adc a,$0311+x +0f8c: d5 10 03 mov $0310+x,a +0f8f: c4 12 mov $12,a +0f91: 1c asl a +0f92: 1c asl a +0f93: 90 02 bcc $0f97 +0f95: 48 ff eor a,#$ff +0f97: fd mov y,a +0f98: f4 c6 mov a,$c6+x +0f9a: 68 f1 cmp a,#$f1 +0f9c: 90 05 bcc $0fa3 +0f9e: 28 0f and a,#$0f +0fa0: cf mul ya +0fa1: 2f 04 bra $0fa7 +0fa3: cf mul ya +0fa4: dd mov a,y +0fa5: 8d 00 mov y,#$00 +0fa7: f3 12 06 bbc7 $12,$0fb0 +0faa: da 16 movw $16,ya +0fac: ba 0e movw ya,$0e +0fae: 9a 16 subw ya,$16 +0fb0: 7a 10 addw ya,$10 +0fb2: da 10 movw $10,ya +0fb4: 5f 39 06 jmp $0639 + +0fb7: bb c5 inc $c5+x +0fb9: e3 13 f8 bbs7 $13,$0fb4 +0fbc: 6f ret + +0fbd: f2 13 clr7 $13 +0fbf: f5 91 02 mov a,$0291+x +0fc2: fd mov y,a +0fc3: f5 90 02 mov a,$0290+x +0fc6: da 10 movw $10,ya +0fc8: f4 a6 mov a,$a6+x +0fca: f0 0a beq $0fd6 +0fcc: f5 a1 02 mov a,$02a1+x +0fcf: fd mov y,a +0fd0: f5 a0 02 mov a,$02a0+x +0fd3: 3f 38 10 call $1038 +0fd6: f3 13 03 bbc7 $13,$0fdc +0fd9: 3f 5a 0e call $0e5a +0fdc: f2 13 clr7 $13 +0fde: f5 c1 02 mov a,$02c1+x +0fe1: c4 11 mov $11,a +0fe3: f5 c0 02 mov a,$02c0+x +0fe6: c4 10 mov $10,a +0fe8: f4 b5 mov a,$b5+x +0fea: f0 34 beq $1020 +0fec: f4 b6 mov a,$b6+x +0fee: d0 30 bne $1020 +0ff0: f5 d1 02 mov a,$02d1+x +0ff3: fd mov y,a +0ff4: f5 d0 02 mov a,$02d0+x +0ff7: e2 13 set7 $13 +0ff9: cb 12 mov $12,y +0ffb: f3 12 06 bbc7 $12,$1004 +0ffe: da 16 movw $16,ya +1000: ba 0e movw ya,$0e +1002: 9a 16 subw ya,$16 +1004: 6d push y +1005: eb 5b mov y,$5b +1007: cf mul ya +1008: cb 16 mov $16,y +100a: 8f 00 17 mov $17,#$00 +100d: eb 5b mov y,$5b +100f: ae pop a +1010: cf mul ya +1011: 7a 16 addw ya,$16 +1013: f3 12 06 bbc7 $12,$101c +1016: da 16 movw $16,ya +1018: ba 0e movw ya,$0e +101a: 9a 16 subw ya,$16 +101c: 7a 10 addw ya,$10 +101e: da 10 movw $10,ya +1020: f4 c6 mov a,$c6+x +1022: f0 95 beq $0fb9 +1024: f5 20 03 mov a,$0320+x +1027: de c5 8f cbne $c5+x,$0fb9 +102a: eb 5b mov y,$5b +102c: f5 11 03 mov a,$0311+x +102f: cf mul ya +1030: dd mov a,y +1031: 60 clrc +1032: 95 10 03 adc a,$0310+x +1035: 5f 8f 0f jmp $0f8f + +1038: e2 13 set7 $13 +103a: cb 12 mov $12,y +103c: f3 12 06 bbc7 $12,$1045 +103f: da 16 movw $16,ya +1041: ba 0e movw ya,$0e +1043: 9a 16 subw ya,$16 +1045: 6d push y +1046: eb 5b mov y,$5b +1048: cf mul ya +1049: cb 16 mov $16,y +104b: 8f 00 17 mov $17,#$00 +104e: eb 5b mov y,$5b +1050: ae pop a +1051: cf mul ya +1052: 7a 16 addw ya,$16 +1054: f3 12 06 bbc7 $12,$105d +1057: da 16 movw $16,ya +1059: ba 0e movw ya,$0e +105b: 9a 16 subw ya,$16 +105d: 7a 10 addw ya,$10 +105f: da 10 movw $10,ya +1061: 6f ret + +1062: e4 4e mov a,$4e +1064: 24 34 and a,$34 +1066: f0 15 beq $107d +1068: 24 31 and a,$31 +106a: f0 11 beq $107d +106c: f5 d7 06 mov a,$06d7+x +106f: 08 08 or a,#$08 +1071: c4 f2 mov $f2,a +1073: e4 f3 mov a,$f3 +1075: d0 06 bne $107d +1077: 09 34 32 or ($32),($34) +107a: 49 34 31 eor ($31),($34) +107d: 6f ret + +; echo FIR presets +107e: db $7f,$00,$00,$00,$00,$00,$00,$00 +1086: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c +108e: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 +1096: db $34,$33,$00,$d9,$e5,$01,$fc,$eb + +; note dur%'s +109e: db $32,$65,$7f,$98,$b2,$cb,$e5,$fd +; per-note velocity values +10a6: db $19,$32,$4c,$65,$72,$7f,$8c,$98 +10ae: db $a5,$b2,$bf,$cb,$d8,$e5,$f2,$fc diff --git a/snes/NSPC/Argonaut/Vortex ($02B5).bin b/snes/NSPC/Argonaut/Vortex ($02B5).bin new file mode 100644 index 00000000..e5a99de1 Binary files /dev/null and b/snes/NSPC/Argonaut/Vortex ($02B5).bin differ diff --git a/snes/NSPC/Argonaut/Vortex.s b/snes/NSPC/Argonaut/Vortex.s new file mode 100644 index 00000000..ae1b1577 --- /dev/null +++ b/snes/NSPC/Argonaut/Vortex.s @@ -0,0 +1,2368 @@ +02b5: 20 clrp +02b6: cd 2f mov x,#$2f +02b8: bd mov sp,x +02b9: e8 00 mov a,#$00 +02bb: 5d mov x,a +02bc: af mov (x)+,a +02bd: c8 f0 cmp x,#$f0 +02bf: d0 fb bne $02bc +02c1: 5d mov x,a +02c2: d5 00 01 mov $0100+x,a +02c5: c8 b0 cmp x,#$b0 +02c7: b0 03 bcs $02cc +02c9: d5 00 02 mov $0200+x,a +02cc: 3d inc x +02cd: d0 f3 bne $02c2 +02cf: fd mov y,a +02d0: da f4 movw $f4,ya +02d2: da f6 movw $f6,ya +02d4: bc inc a +02d5: 3f e7 0f call $0fe7 +02d8: a2 31 set5 $31 +02da: e8 15 mov a,#$15 +02dc: 8d 5d mov y,#$5d +02de: cb f2 mov $f2,y +02e0: c4 f3 mov $f3,a +02e2: 8f f0 f1 mov $f1,#$f0 +02e5: e8 10 mov a,#$10 +02e7: c4 fa mov $fa,a +02e9: c4 fb mov $fb,a +02eb: c4 3b mov $3b,a +02ed: 8f 03 f1 mov $f1,#$03 +02f0: 8f 02 f4 mov $f4,#$02 +02f3: 8f 00 f5 mov $f5,#$00 +02f6: e5 df 06 mov a,$06df +02f9: ec e0 06 mov y,$06e0 +02fc: da 06 movw $06,ya +02fe: 8f 02 2f mov $2f,#$02 +0301: 8d 0a mov y,#$0a +0303: ad 05 cmp y,#$05 +0305: f0 07 beq $030e +0307: b0 08 bcs $0311 +0309: 69 36 35 cmp ($35),($36) +030c: d0 0f bne $031d +030e: e3 35 0c bbs7 $35,$031d +0311: f6 8e 03 mov a,$038e+y +0314: c4 f2 mov $f2,a +0316: f6 98 03 mov a,$0398+y +0319: 5d mov x,a +031a: e6 mov a,(x) +031b: c4 f3 mov $f3,a +031d: fe e4 dbnz y,$0303 +031f: cb 29 mov $29,y +0321: cb 2a mov $2a,y +0323: eb fe mov y,$fe +0325: f0 fc beq $0323 +0327: e8 30 mov a,#$30 +0329: cf mul ya +032a: 60 clrc +032b: 84 58 adc a,$58 +032d: c4 58 mov $58,a +032f: 90 03 bcc $0334 +0331: 3f a3 03 call $03a3 +0334: eb fd mov y,$fd +0336: f0 fc beq $0334 +0338: 6d push y +0339: e8 40 mov a,#$40 +033b: cf mul ya +033c: 60 clrc +033d: 84 14 adc a,$14 +033f: c4 14 mov $14,a +0341: 90 18 bcc $035b +0343: ba f4 movw ya,$f4 +0345: 5a f4 cmpw ya,$f4 +0347: d0 fa bne $0343 +0349: 5a 00 cmpw ya,$00 +034b: f0 07 beq $0354 +034d: da 00 movw $00,ya +034f: da f4 movw $f4,ya +0351: 3f 69 04 call $0469 +0354: 69 36 35 cmp ($35),($36) +0357: f0 02 beq $035b +0359: ab 35 inc $35 +035b: ee pop y +035c: e4 3b mov a,$3b +035e: cf mul ya +035f: 60 clrc +0360: 84 39 adc a,$39 +0362: c4 39 mov $39,a +0364: 90 05 bcc $036b +0366: 3f cf 09 call $09cf +0369: 2f 96 bra $0301 +036b: e4 05 mov a,$05 +036d: f0 92 beq $0301 +036f: cd 00 mov x,#$00 +0371: 8f 01 2b mov $2b,#$01 +0374: f4 19 mov a,$19+x +0376: f0 03 beq $037b +0378: 3f 5d 13 call $135d +037b: 3d inc x +037c: 3d inc x +037d: 0b 2b asl $2b +037f: f4 19 mov a,$19+x +0381: f0 03 beq $0386 +0383: 3f 5d 13 call $135d +0386: 3d inc x +0387: 3d inc x +0388: 0b 2b asl $2b +038a: d0 e8 bne $0374 +038c: 5f 01 03 jmp $0301 + +038f: 2c 3c 0d rol $0d3c +0392: 4d push x +0393: 6c 4c 5c ror $5c4c +0396: 3d inc x +0397: 2d push a +0398: 5c lsr a +0399: 4a 4c 37 and1 c,$174c,1 +039c: 33 31 29 bbc1 $31,$03c8 +039f: 09 32 34 or ($34),($32) +03a2: 2a e4 13 or1 c,!($13e4,0) +03a5: f0 03 beq $03aa +03a7: 3f 18 07 call $0718 +03aa: eb 71 mov y,$71 +03ac: f0 75 beq $0423 +03ae: dc dec y +03af: 6d push y +03b0: f9 72 mov x,$72+y +03b2: d8 2b mov $2b,x +03b4: 7d mov a,x +03b5: f9 59 mov x,$59+y +03b7: 24 28 and a,$28 +03b9: d0 4f bne $040a +03bb: fb 62 mov y,$62+x +03bd: f0 57 beq $0416 +03bf: d8 2c mov $2c,x +03c1: 9b 7f dec $7f+x +03c3: d0 45 bne $040a +03c5: e7 61 mov a,($61+x) +03c7: bb 61 inc $61+x +03c9: d0 02 bne $03cd +03cb: bb 62 inc $62+x +03cd: fd mov y,a +03ce: d0 17 bne $03e7 +03d0: f4 8f mov a,$8f+x +03d2: f0 50 beq $0424 +03d4: 3f 78 0e call $0e78 +03d7: 9b 8f dec $8f+x +03d9: d0 ea bne $03c5 +03db: f5 60 01 mov a,$0160+x +03de: d4 61 mov $61+x,a +03e0: f5 61 01 mov a,$0161+x +03e3: d4 62 mov $62+x,a +03e5: 2f de bra $03c5 +03e7: 30 0c bmi $03f5 +03e9: d5 30 01 mov $0130+x,a +03ec: e7 61 mov a,($61+x) +03ee: bb 61 inc $61+x +03f0: d0 02 bne $03f4 +03f2: bb 62 inc $62+x +03f4: fd mov y,a +03f5: 68 ce cmp a,#$ce +03f7: 90 05 bcc $03fe +03f9: 3f 4d 04 call $044d +03fc: 2f c7 bra $03c5 +03fe: 3f 48 07 call $0748 +0401: f5 30 01 mov a,$0130+x +0404: d4 7f mov $7f+x,a +0406: d4 80 mov $80+x,a +0408: 2f 03 bra $040d +040a: 3f 3e 12 call $123e +040d: 3f 2b 10 call $102b +0410: 3f ea 10 call $10ea +0413: 3f dc 13 call $13dc +0416: e4 df mov a,$df +0418: 68 02 cmp a,#$02 +041a: d0 03 bne $041f +041c: 3f 15 06 call $0615 +041f: ae pop a +0420: fd mov y,a +0421: d0 8b bne $03ae +0423: 6f ret + +0424: e8 ff mov a,#$ff +0426: d5 71 02 mov $0271+x,a +0429: bc inc a +042a: d4 62 mov $62+x,a +042c: e4 df mov a,$df +042e: f0 e6 beq $0416 +0430: 3f fb 05 call $05fb +0433: 2f e1 bra $0416 + +; note dur%'s +0435: db $32,$65,$7f,$98,$b2,$cb,$e5,$fd +; per-note velocity values +043d: db $50,$64,$73,$84,$8e,$98,$a2,$ac +0445: db $b6,$c0,$ca,$d5,$e1,$e8,$f2,$ff + +044d: 1c asl a +044e: fd mov y,a +044f: f6 77 0a mov a,$0a77+y +0452: 2d push a +0453: f6 76 0a mov a,$0a76+y +0456: 2d push a +0457: dd mov a,y +0458: 5c lsr a +0459: fd mov y,a +045a: f6 0a 0b mov a,$0b0a+y +045d: f0 09 beq $0468 +045f: e7 61 mov a,($61+x) +0461: bb 61 inc $61+x +0463: d0 02 bne $0467 +0465: bb 62 inc $62+x +0467: fd mov y,a +0468: 6f ret + +0469: dd mov a,y +046a: 28 0e and a,#$0e +046c: 5d mov x,a +046d: dd mov a,y +046e: 28 e0 and a,#$e0 +0470: 9f xcn a +0471: c4 2c mov $2c,a +0473: 1f 77 04 jmp ($0477+x) + +0476: 6f ret + +0477: 59 eor (x),(y) +0478: 06 or a,(x) +0479: 87 04 adc a,($04+x) +047b: 98 04 b1 adc $b1,#$04 +047e: 05 d8 04 or a,$04d8 +0481: e0 clrv +0482: 04 a8 or a,$a8 +0484: 04 e5 or a,$e5 +0486: 05 fa 00 or a,$00fa +0489: 05 e8 ff or a,$ffe8 +048c: c4 04 mov $04,a +048e: e4 2c mov a,$2c +0490: 5c lsr a +0491: c4 e6 mov $e6,a +0493: e8 02 mov a,#$02 +0495: c4 2f mov $2f,a +0497: 6f ret + +0498: e4 00 mov a,$00 +049a: c4 e6 mov $e6,a +049c: e8 01 mov a,#$01 +049e: c4 7d mov $7d,a +04a0: e8 7e mov a,#$7e +04a2: c4 05 mov $05,a +04a4: 8f 02 2f mov $2f,#$02 +04a7: 6f ret + +04a8: e5 39 14 mov a,$1439 +04ab: 48 01 eor a,#$01 +04ad: c5 39 14 mov $1439,a +04b0: f0 1a beq $04cc +04b2: e4 4a mov a,$4a +04b4: 04 4c or a,$4c +04b6: f0 1f beq $04d7 +04b8: e4 4a mov a,$4a +04ba: 10 05 bpl $04c1 +04bc: 48 ff eor a,#$ff +04be: bc inc a +04bf: c4 4a mov $4a,a +04c1: e4 4c mov a,$4c +04c3: 10 0f bpl $04d4 +04c5: 48 ff eor a,#$ff +04c7: bc inc a +04c8: c4 4c mov $4c,a +04ca: 2f 08 bra $04d4 +04cc: e4 51 mov a,$51 +04ce: c4 4a mov $4a,a +04d0: e4 52 mov a,$52 +04d2: c4 4c mov $4c,a +04d4: 8f ff 46 mov $46,#$ff +04d7: 6f ret + +04d8: e4 00 mov a,$00 +04da: 60 clrc +04db: 84 7e adc a,$7e +04dd: c4 3b mov $3b,a +04df: 6f ret + +04e0: f8 2c mov x,$2c +04e2: f4 19 mov a,$19+x +04e4: c4 10 mov $10,a +04e6: c4 0d mov $0d,a +04e8: f0 0a beq $04f4 +04ea: c8 02 cmp x,#$02 +04ec: f0 03 beq $04f1 +04ee: 5f b0 05 jmp $05b0 + +04f1: 5f e1 06 jmp $06e1 + +04f4: e4 00 mov a,$00 +04f6: d3 00 34 bbc6 $00,$052d +04f9: 28 bf and a,#$bf +04fb: c4 0f mov $0f,a +04fd: cd 00 mov x,#$00 +04ff: 1d dec x +0500: f0 2b beq $052d +0502: ba f6 movw ya,$f6 +0504: 5a f6 cmpw ya,$f6 +0506: d0 fa bne $0502 +0508: 5a 02 cmpw ya,$02 +050a: f0 f3 beq $04ff +050c: da 02 movw $02,ya +050e: da f6 movw $f6,ya +0510: 48 ff eor a,#$ff +0512: c4 e3 mov $e3,a +0514: dd mov a,y +0515: 10 05 bpl $051c +0517: 48 ff eor a,#$ff +0519: bc inc a +051a: e2 0d set7 $0d +051c: cd 06 mov x,#$06 +051e: 8d 00 mov y,#$00 +0520: 9e div ya,x +0521: e3 0d 03 bbs7 $0d,$0527 +0524: 48 ff eor a,#$ff +0526: bc inc a +0527: c4 e2 mov $e2,a +0529: e4 0f mov a,$0f +052b: 2f 09 bra $0536 +052d: e8 ff mov a,#$ff +052f: c4 e3 mov $e3,a +0531: bc inc a +0532: c4 e2 mov $e2,a +0534: e4 00 mov a,$00 +0536: f8 2c mov x,$2c +0538: eb 2c mov y,$2c +053a: c8 0c cmp x,#$0c +053c: d0 04 bne $0542 +053e: c4 e4 mov $e4,a +0540: 2f 17 bra $0559 +0542: f5 71 02 mov a,$0271+x +0545: 30 12 bmi $0559 +0547: ab 10 inc $10 +0549: 1d dec x +054a: 1d dec x +054b: e4 e4 mov a,$e4 +054d: f0 0a beq $0559 +054f: 28 0f and a,#$0f +0551: 68 02 cmp a,#$02 +0553: f0 04 beq $0559 +0555: 8b 10 dec $10 +0557: 3d inc x +0558: 3d inc x +0559: e4 00 mov a,$00 +055b: 28 bf and a,#$bf +055d: 1c asl a +055e: b0 11 bcs $0571 +0560: 75 71 02 cmp a,$0271+x +0563: f0 15 beq $057a +0565: 90 13 bcc $057a +0567: e4 10 mov a,$10 +0569: f0 45 beq $05b0 +056b: 8b 10 dec $10 +056d: 3d inc x +056e: 3d inc x +056f: 2f e8 bra $0559 +0571: 2d push a +0572: e8 00 mov a,#$00 +0574: d5 71 02 mov $0271+x,a +0577: ae pop a +0578: 2f 03 bra $057d +057a: d5 71 02 mov $0271+x,a +057d: c4 0f mov $0f,a +057f: e4 e2 mov a,$e2 +0581: d5 90 02 mov $0290+x,a +0584: e4 e3 mov a,$e3 +0586: d5 91 02 mov $0291+x,a +0589: f6 a0 02 mov a,$02a0+y +058c: 60 clrc +058d: 84 0f adc a,$0f +058f: c4 0f mov $0f,a +0591: f6 a1 02 mov a,$02a1+y +0594: 84 09 adc a,$09 +0596: c4 10 mov $10,a +0598: 8d 00 mov y,#$00 +059a: f7 0f mov a,($0f)+y +059c: d4 61 mov $61+x,a +059e: fc inc y +059f: f7 0f mov a,($0f)+y +05a1: d4 62 mov $62+x,a +05a3: f5 bc 08 mov a,$08bc+x +05a6: 8d 5c mov y,#$5c +05a8: cb f2 mov $f2,y +05aa: c4 f3 mov $f3,a +05ac: 04 28 or a,$28 +05ae: c4 28 mov $28,a +05b0: 6f ret + +05b1: f8 2c mov x,$2c +05b3: f4 19 mov a,$19+x +05b5: d0 1d bne $05d4 +05b7: f5 bc 08 mov a,$08bc+x +05ba: 24 e8 and a,$e8 +05bc: f0 16 beq $05d4 +05be: f5 81 02 mov a,$0281+x +05c1: fd mov y,a +05c2: e8 00 mov a,#$00 +05c4: d4 d0 mov $d0+x,a +05c6: e4 00 mov a,$00 +05c8: 5c lsr a +05c9: 7b d0 ror $d0+x +05cb: 5c lsr a +05cc: 7b d0 ror $d0+x +05ce: d5 80 02 mov $0280+x,a +05d1: 3f 48 07 call $0748 +05d4: 6f ret + +05d5: e8 ff mov a,#$ff +05d7: c4 e3 mov $e3,a +05d9: bc inc a +05da: c4 e2 mov $e2,a +05dc: e8 0c mov a,#$0c +05de: cd 0e mov x,#$0e +05e0: 8d 0e mov y,#$0e +05e2: 5f 7a 05 jmp $057a + +05e5: 78 01 00 cmp $00,#$01 +05e8: f0 43 beq $062d +05ea: 8f 01 df mov $df,#$01 +05ed: 78 02 00 cmp $00,#$02 +05f0: f0 03 beq $05f5 +05f2: 8f 00 e7 mov $e7,#$00 +05f5: 8f 25 e7 mov $e7,#$25 +05f8: 5f d5 05 jmp $05d5 + +05fb: 8f 02 df mov $df,#$02 +05fe: 60 clrc +05ff: e4 4a mov a,$4a +0601: 10 01 bpl $0604 +0603: 80 setc +0604: 7c ror a +0605: c4 4a mov $4a,a +0607: 60 clrc +0608: e4 4c mov a,$4c +060a: 10 01 bpl $060d +060c: 80 setc +060d: 7c ror a +060e: c4 4c mov $4c,a +0610: e8 70 mov a,#$70 +0612: c4 30 mov $30,a +0614: 6f ret + +0615: 8b 30 dec $30 +0617: e4 30 mov a,$30 +0619: 8d 0c mov y,#$0c +061b: cb f2 mov $f2,y +061d: c4 f3 mov $f3,a +061f: 8d 1c mov y,#$1c +0621: cb f2 mov $f2,y +0623: c4 f3 mov $f3,a +0625: 64 e7 cmp a,$e7 +0627: d0 03 bne $062c +0629: 8f 00 df mov $df,#$00 +062c: 6f ret + +062d: 3f d5 05 call $05d5 +0630: e4 df mov a,$df +0632: 8f 00 df mov $df,#$00 +0635: 68 01 cmp a,#$01 +0637: f0 06 beq $063f +0639: 0b 4a asl $4a +063b: 0b 4c asl $4c +063d: e4 30 mov a,$30 +063f: bc inc a +0640: 8d 0c mov y,#$0c +0642: cb f2 mov $f2,y +0644: c4 f3 mov $f3,a +0646: 8d 1c mov y,#$1c +0648: cb f2 mov $f2,y +064a: c4 f3 mov $f3,a +064c: 68 70 cmp a,#$70 +064e: d0 ef bne $063f +0650: c4 30 mov $30,a +0652: 6f ret + +0653: cd 60 mov x,#$60 +0655: 1d dec x +0656: d0 fd bne $0655 +0658: 6f ret + +0659: fa 00 e0 mov ($e0),($00) +065c: 8f 01 2b mov $2b,#$01 +065f: cd 00 mov x,#$00 +0661: f4 62 mov a,$62+x +0663: d0 03 bne $0668 +0665: 09 2b e1 or ($e1),($2b) +0668: 3d inc x +0669: 3d inc x +066a: 0b 2b asl $2b +066c: d0 f3 bne $0661 +066e: e8 5c mov a,#$5c +0670: eb e1 mov y,$e1 +0672: da f2 movw $f2,ya +0674: 6f ret + +0675: 8f 6c f2 mov $f2,#$6c +0678: 8f 20 f3 mov $f3,#$20 +067b: 8f aa f4 mov $f4,#$aa +067e: 8f bb f5 mov $f5,#$bb +0681: e4 f4 mov a,$f4 +0683: 64 f4 cmp a,$f4 +0685: d0 fa bne $0681 +0687: 68 cc cmp a,#$cc +0689: d0 f6 bne $0681 +068b: 2f 1b bra $06a8 +068d: eb f4 mov y,$f4 +068f: d0 fc bne $068d +0691: 7e f4 cmp y,$f4 +0693: d0 0d bne $06a2 +0695: e4 f5 mov a,$f5 +0697: cb f4 mov $f4,y +0699: d7 7a mov ($7a)+y,a +069b: fc inc y +069c: d0 f3 bne $0691 +069e: ab 7b inc $7b +06a0: 2f ef bra $0691 +06a2: 10 ed bpl $0691 +06a4: 7e f4 cmp y,$f4 +06a6: 10 e9 bpl $0691 +06a8: ba f6 movw ya,$f6 +06aa: da 7a movw $7a,ya +06ac: ba f4 movw ya,$f4 +06ae: c4 f4 mov $f4,a +06b0: dd mov a,y +06b1: 5d mov x,a +06b2: d0 d9 bne $068d +06b4: ba f4 movw ya,$f4 +06b6: d0 fc bne $06b4 +06b8: da 00 movw $00,ya +06ba: da f4 movw $f4,ya +06bc: ba f6 movw ya,$f6 +06be: d0 fc bne $06bc +06c0: da 02 movw $02,ya +06c2: da f6 movw $f6,ya +06c4: e8 5c mov a,#$5c +06c6: 8d ff mov y,#$ff +06c8: da f2 movw $f2,ya +06ca: 8d 00 mov y,#$00 +06cc: e8 2c mov a,#$2c +06ce: da f2 movw $f2,ya +06d0: e8 3c mov a,#$3c +06d2: da f2 movw $f2,ya +06d4: ba 7a movw ya,$7a +06d6: c5 df 06 mov $06df,a +06d9: cc e0 06 mov $06e0,y +06dc: 5f b5 02 jmp $02b5 + +06df: cc 90 f5 mov $f590,y +06e2: bc inc a +06e3: 08 24 or a,#$24 +06e5: e9 f0 2f mov x,$2ff0 +06e8: c4 13 mov $13,a +06ea: 8d 5c mov y,#$5c +06ec: da f2 movw $f2,ya +06ee: e8 06 mov a,#$06 +06f0: 3f af 0b call $0baf +06f3: e8 6f mov a,#$6f +06f5: fd mov y,a +06f6: 3f 2b 0d call $0d2b +06f9: e8 7c mov a,#$7c +06fb: fd mov y,a +06fc: 3f 3d 0d call $0d3d +06ff: 8d 18 mov y,#$18 +0701: f5 ac 08 mov a,$08ac+x +0704: da f2 movw $f2,ya +0706: bc inc a +0707: da f2 movw $f2,ya +0709: e8 b9 mov a,#$b9 +070b: fd mov y,a +070c: 3f 48 07 call $0748 +070f: e4 13 mov a,$13 +0711: 8d 4c mov y,#$4c +0713: cb f2 mov $f2,y +0715: c4 f3 mov $f3,a +0717: 6f ret + +0718: 8f 18 f2 mov $f2,#$18 +071b: e4 f3 mov a,$f3 +071d: d0 28 bne $0747 +071f: cd 02 mov x,#$02 +0721: f5 81 02 mov a,$0281+x +0724: 68 c5 cmp a,#$c5 +0726: f0 19 beq $0741 +0728: 68 c0 cmp a,#$c0 +072a: f0 04 beq $0730 +072c: e8 c0 mov a,#$c0 +072e: 2f 02 bra $0732 +0730: e8 c5 mov a,#$c5 +0732: fd mov y,a +0733: 3f 48 07 call $0748 +0736: f5 bc 08 mov a,$08bc+x +0739: 8d 4c mov y,#$4c +073b: cb f2 mov $f2,y +073d: c4 f3 mov $f3,a +073f: 2f 06 bra $0747 +0741: fa 13 46 mov ($46),($13) +0744: 8f 00 13 mov $13,#$00 +0747: 6f ret + +; handle a note vcmd (80-df) +0748: ad c8 cmp y,#$c8 +074a: b0 fb bcs $0747 +074c: dd mov a,y +074d: d5 81 02 mov $0281+x,a +0750: 28 7f and a,#$7f +0752: 2f 13 bra $0767 +; vcmds 80-c7,c8,c9 - note/tie/rest +0754: ad c8 cmp y,#$c8 +0756: b0 ef bcs $0747 +0758: 09 2b e9 or ($e9),($2b) +075b: e4 13 mov a,$13 +075d: 24 2b and a,$2b +075f: d0 e6 bne $0747 +; vcmds 80-c7 - note (note number in Y) +0761: dd mov a,y +0762: 28 7f and a,#$7f +0764: 60 clrc +0765: 84 38 adc a,$38 +0767: 60 clrc +0768: 95 80 02 adc a,$0280+x +076b: d5 01 02 mov $0201+x,a +076e: f4 d0 mov a,$d0+x +0770: d5 00 02 mov $0200+x,a +0773: f5 60 02 mov a,$0260+x +0776: 5c lsr a +0777: e8 00 mov a,#$00 +0779: 7c ror a +077a: d5 41 02 mov $0241+x,a +077d: e8 00 mov a,#$00 +077f: d4 bf mov $bf+x,a +0781: d5 90 00 mov $0090+x,a +0784: e4 2b mov a,$2b +0786: 24 57 and a,$57 +0788: d0 03 bne $078d +078a: 09 2b 29 or ($29),($2b) +078d: 09 2b 46 or ($46),($2b) +0790: f5 21 02 mov a,$0221+x +0793: d4 af mov $af+x,a +0795: f0 67 beq $07fe +0797: f5 30 02 mov a,$0230+x +079a: d4 b0 mov $b0+x,a +079c: f5 31 02 mov a,$0231+x +079f: 68 01 cmp a,#$01 +07a1: f0 15 beq $07b8 +07a3: b0 1c bcs $07c1 +07a5: f5 01 02 mov a,$0201+x +07a8: 80 setc +07a9: b5 40 02 sbc a,$0240+x +07ac: d5 01 02 mov $0201+x,a +07af: f5 40 02 mov a,$0240+x +07b2: 60 clrc +07b3: 95 01 02 adc a,$0201+x +07b6: 2f 17 bra $07cf +07b8: f5 01 02 mov a,$0201+x +07bb: 80 setc +07bc: b5 40 02 sbc a,$0240+x +07bf: 2f 0e bra $07cf +07c1: f5 01 02 mov a,$0201+x +07c4: fd mov y,a +07c5: f5 40 02 mov a,$0240+x +07c8: d5 01 02 mov $0201+x,a +07cb: dd mov a,y +07cc: d5 40 02 mov $0240+x,a +07cf: 28 7f and a,#$7f +07d1: d5 20 02 mov $0220+x,a +07d4: 80 setc +07d5: b5 01 02 sbc a,$0201+x +07d8: fb af mov y,$af+x +07da: 6d push y +07db: ce pop x +07dc: ed notc +07dd: 6b 0d ror $0d +07df: 10 03 bpl $07e4 +07e1: 48 ff eor a,#$ff +07e3: bc inc a +07e4: 8d 00 mov y,#$00 +07e6: 9e div ya,x +07e7: 2d push a +07e8: e8 00 mov a,#$00 +07ea: 9e div ya,x +07eb: ee pop y +07ec: f8 2c mov x,$2c +07ee: f3 0d 06 bbc7 $0d,$07f7 +07f1: da 0f movw $0f,ya +07f3: ba 09 movw ya,$09 +07f5: 9a 0f subw ya,$0f +07f7: d5 10 02 mov $0210+x,a +07fa: dd mov a,y +07fb: d5 11 02 mov $0211+x,a +07fe: f5 01 02 mov a,$0201+x +0801: c4 0c mov $0c,a +0803: f5 00 02 mov a,$0200+x +0806: c4 0b mov $0b,a +0808: 8d 00 mov y,#$00 +080a: e4 0c mov a,$0c +080c: 80 setc +080d: a8 34 sbc a,#$34 +080f: b0 09 bcs $081a +0811: e4 0c mov a,$0c +0813: 80 setc +0814: a8 13 sbc a,#$13 +0816: b0 06 bcs $081e +0818: dc dec y +0819: 1c asl a +081a: 7a 0b addw ya,$0b +081c: da 0b movw $0b,ya +081e: 4d push x +081f: e4 0c mov a,$0c +0821: 1c asl a +0822: 8d 00 mov y,#$00 +0824: cd 18 mov x,#$18 +0826: 9e div ya,x +0827: 5d mov x,a +0828: f6 93 08 mov a,$0893+y +082b: c4 10 mov $10,a +082d: f6 92 08 mov a,$0892+y +0830: c4 0f mov $0f,a +0832: f6 95 08 mov a,$0895+y +0835: 2d push a +0836: f6 94 08 mov a,$0894+y +0839: ee pop y +083a: 9a 0f subw ya,$0f +083c: eb 0b mov y,$0b +083e: cf mul ya +083f: dd mov a,y +0840: 8d 00 mov y,#$00 +0842: 7a 0f addw ya,$0f +0844: cb 10 mov $10,y +0846: 1c asl a +0847: 2b 10 rol $10 +0849: c4 0f mov $0f,a +084b: 2f 04 bra $0851 +084d: 4b 10 lsr $10 +084f: 7c ror a +0850: 3d inc x +0851: c8 06 cmp x,#$06 +0853: d0 f8 bne $084d +0855: c4 0f mov $0f,a +0857: ce pop x +0858: f5 50 01 mov a,$0150+x +085b: eb 10 mov y,$10 +085d: cf mul ya +085e: da 11 movw $11,ya +0860: f5 50 01 mov a,$0150+x +0863: eb 0f mov y,$0f +0865: cf mul ya +0866: 6d push y +0867: f5 51 01 mov a,$0151+x +086a: eb 0f mov y,$0f +086c: cf mul ya +086d: 7a 11 addw ya,$11 +086f: da 11 movw $11,ya +0871: f5 51 01 mov a,$0151+x +0874: eb 10 mov y,$10 +0876: cf mul ya +0877: fd mov y,a +0878: ae pop a +0879: 7a 11 addw ya,$11 +087b: da 11 movw $11,ya +087d: e4 2b mov a,$2b +087f: 24 13 and a,$13 +0881: d0 0e bne $0891 +0883: f5 ac 08 mov a,$08ac+x +0886: 08 02 or a,#$02 +0888: eb 11 mov y,$11 +088a: da f2 movw $f2,ya +088c: bc inc a +088d: eb 12 mov y,$12 +088f: da f2 movw $f2,ya +0891: 6f ret + +; pitch table +0892: dw $085f +0894: dw $08de +0896: dw $0965 +0898: dw $09f4 +089a: dw $0a8c +089c: dw $0b2c +089e: dw $0bd6 +08a0: dw $0c8b +08a2: dw $0d4a +08a4: dw $0e14 +08a6: dw $0eea +08a8: dw $0fcd +08aa: dw $10be + +; channel value table +08ac: dw $0000 +08ae: dw $0010 +08b0: dw $0020 +08b2: dw $0030 +08b4: dw $0040 +08b6: dw $0050 +08b8: dw $0060 +08ba: dw $0070 +08bc: dw $0001 +08be: dw $0002 +08c0: dw $0004 +08c2: dw $0008 +08c4: dw $0010 +08c6: dw $0020 +08c8: dw $0040 +08ca: dw $0080 + +08cc: 8d 00 mov y,#$00 +08ce: cb 29 mov $29,y +08d0: cb e0 mov $e0,y +08d2: f7 15 mov a,($15)+y +08d4: 3a 15 incw $15 +08d6: 2d push a +08d7: f7 15 mov a,($15)+y +08d9: 3a 15 incw $15 +08db: fd mov y,a +08dc: ae pop a +08dd: 6f ret + +08de: 8f ff 04 mov $04,#$ff +08e1: 8b 2e dec $2e +08e3: 10 49 bpl $092e +08e5: e4 30 mov a,$30 +08e7: f0 48 beq $0931 +08e9: fa e6 2e mov ($2e),($e6) +08ec: 9c dec a +08ed: f0 01 beq $08f0 +08ef: 9c dec a +08f0: c4 30 mov $30,a +08f2: 8d 0c mov y,#$0c +08f4: cb f2 mov $f2,y +08f6: c4 f3 mov $f3,a +08f8: 8d 1c mov y,#$1c +08fa: cb f2 mov $f2,y +08fc: c4 f3 mov $f3,a +08fe: eb 4a mov y,$4a +0900: f0 14 beq $0916 +0902: 10 06 bpl $090a +0904: fc inc y +0905: f0 07 beq $090e +0907: fc inc y +0908: 2f 04 bra $090e +090a: dc dec y +090b: f0 01 beq $090e +090d: dc dec y +090e: cb 4a mov $4a,y +0910: cb 51 mov $51,y +0912: e8 2c mov a,#$2c +0914: da f2 movw $f2,ya +0916: eb 4c mov y,$4c +0918: f0 14 beq $092e +091a: 10 06 bpl $0922 +091c: fc inc y +091d: f0 07 beq $0926 +091f: fc inc y +0920: 2f 04 bra $0926 +0922: dc dec y +0923: f0 01 beq $0926 +0925: dc dec y +0926: cb 4c mov $4c,y +0928: cb 52 mov $52,y +092a: e8 3c mov a,#$3c +092c: da f2 movw $f2,ya +092e: 5f d5 09 jmp $09d5 + +0931: fa e6 2e mov ($2e),($e6) +0934: 8b 2f dec $2f +0936: d0 f6 bne $092e +0938: e4 7d mov a,$7d +093a: f0 03 beq $093f +093c: 5f 75 06 jmp $0675 + +; play song +093f: e4 05 mov a,$05 +0941: c4 04 mov $04,a +0943: 1c asl a +0944: f0 14 beq $095a +0946: 9c dec a +0947: fd mov y,a +0948: e8 00 mov a,#$00 +094a: c4 e4 mov $e4,a +094c: c4 2d mov $2d,a +094e: f7 06 mov a,($06)+y +0950: 2d push a +0951: dc dec y +0952: f7 06 mov a,($06)+y +0954: ee pop y +0955: da 15 movw $15,ya +0957: 8f 02 08 mov $08,#$02 +095a: e4 13 mov a,$13 +095c: 48 ff eor a,#$ff +095e: 0e 2a 00 tset1 $002a +0961: e8 00 mov a,#$00 +0963: 8d 00 mov y,#$00 +0965: 3f 62 0f call $0f62 +0968: 6f ret + +0969: e4 05 mov a,$05 +096b: 30 cb bmi $0938 +096d: 5f de 08 jmp $08de + +0970: cd 0e mov x,#$0e +0972: 8f 80 2b mov $2b,#$80 +0975: e8 0a mov a,#$0a +0977: 3f ff 0b call $0bff +097a: e8 00 mov a,#$00 +097c: d5 a1 01 mov $01a1+x,a +097f: d4 d0 mov $d0+x,a +0981: d5 80 02 mov $0280+x,a +0984: d4 af mov $af+x,a +0986: d5 21 02 mov $0221+x,a +0989: d5 30 02 mov $0230+x,a +098c: d5 31 02 mov $0231+x,a +098f: d5 c0 00 mov $00c0+x,a +0992: d4 62 mov $62+x,a +0994: 9c dec a +0995: d5 71 02 mov $0271+x,a +0998: 1d dec x +0999: 1d dec x +099a: 4b 2b lsr $2b +099c: d0 d7 bne $0975 +099e: e8 00 mov a,#$00 +09a0: 8d 07 mov y,#$07 +09a2: d6 72 00 mov $0072+y,a +09a5: dc dec y +09a6: 10 fa bpl $09a2 +09a8: c4 42 mov $42,a +09aa: c4 53 mov $53,a +09ac: c4 3c mov $3c,a +09ae: c4 38 mov $38,a +09b0: c4 17 mov $17,a +09b2: c4 56 mov $56,a +09b4: c4 57 mov $57,a +09b6: c4 71 mov $71,a +09b8: e8 70 mov a,#$70 +09ba: c4 30 mov $30,a +09bc: 8d 0c mov y,#$0c +09be: cb f2 mov $f2,y +09c0: c4 f3 mov $f3,a +09c2: 8d 1c mov y,#$1c +09c4: cb f2 mov $f2,y +09c6: c4 f3 mov $f3,a +09c8: 8f c0 41 mov $41,#$c0 +09cb: 8f 30 3b mov $3b,#$30 +09ce: 6f ret + +09cf: eb 04 mov y,$04 +09d1: 7e 05 cmp y,$05 +09d3: d0 94 bne $0969 +09d5: e4 e0 mov a,$e0 +09d7: d0 0f bne $09e8 +09d9: e4 04 mov a,$04 +09db: f0 f1 beq $09ce +09dd: e4 08 mov a,$08 +09df: f0 5f beq $0a40 +09e1: 6e 08 8c dbnz $08,$0970 +09e4: e8 00 mov a,#$00 +09e6: c4 2d mov $2d,a +09e8: 3f cc 08 call $08cc +09eb: d0 17 bne $0a04 +09ed: fd mov y,a +09ee: d0 03 bne $09f3 +09f0: 5f de 08 jmp $08de + +09f3: 8b 17 dec $17 +09f5: 10 02 bpl $09f9 +09f7: c4 17 mov $17,a +09f9: 3f cc 08 call $08cc +09fc: f8 17 mov x,$17 +09fe: f0 e8 beq $09e8 +0a00: da 15 movw $15,ya +0a02: 2f e4 bra $09e8 +0a04: da 11 movw $11,ya +0a06: 8d 0f mov y,#$0f +0a08: f7 11 mov a,($11)+y +0a0a: d6 18 00 mov $0018+y,a +0a0d: dc dec y +0a0e: 10 f8 bpl $0a08 +0a10: cd 00 mov x,#$00 +0a12: 8f 01 2b mov $2b,#$01 +0a15: f4 62 mov a,$62+x +0a17: d0 1f bne $0a38 +0a19: f4 19 mov a,$19+x +0a1b: f0 1b beq $0a38 +0a1d: e8 00 mov a,#$00 +0a1f: d4 8f mov $8f+x,a +0a21: d4 9f mov $9f+x,a +0a23: d4 a0 mov $a0+x,a +0a25: d4 cf mov $cf+x,a +0a27: d5 30 02 mov $0230+x,a +0a2a: d5 21 02 mov $0221+x,a +0a2d: bc inc a +0a2e: d4 7f mov $7f+x,a +0a30: e4 2b mov a,$2b +0a32: 4e 56 00 tclr1 $0056 +0a35: 4e 57 00 tclr1 $0057 +0a38: 3d inc x +0a39: 3d inc x +0a3a: 0b 2b asl $2b +0a3c: d0 d7 bne $0a15 +0a3e: e8 00 mov a,#$00 +0a40: cd 00 mov x,#$00 +0a42: 8f 01 2b mov $2b,#$01 +0a45: d8 2c mov $2c,x +0a47: f4 19 mov a,$19+x +0a49: f0 71 beq $0abc +0a4b: 9b 7f dec $7f+x +0a4d: d0 67 bne $0ab6 +0a4f: e7 18 mov a,($18+x) +0a51: bb 18 inc $18+x +0a53: d0 02 bne $0a57 +0a55: bb 19 inc $19+x +0a57: fd mov y,a +0a58: d0 17 bne $0a71 +0a5a: f4 8f mov a,$8f+x +0a5c: f0 8a beq $09e8 +0a5e: 3f 8e 0e call $0e8e +0a61: 9b 8f dec $8f+x +0a63: d0 ea bne $0a4f +0a65: f5 60 01 mov a,$0160+x +0a68: d4 18 mov $18+x,a +0a6a: f5 61 01 mov a,$0161+x +0a6d: d4 19 mov $19+x,a +0a6f: 2f de bra $0a4f +0a71: 30 25 bmi $0a98 +0a73: d5 30 01 mov $0130+x,a +0a76: e7 18 mov a,($18+x) +0a78: bb 18 inc $18+x +0a7a: d0 02 bne $0a7e +0a7c: bb 19 inc $19+x +0a7e: fd mov y,a +0a7f: 30 17 bmi $0a98 +0a81: 2d push a +0a82: 9f xcn a +0a83: 28 07 and a,#$07 +0a85: fd mov y,a +0a86: f6 35 04 mov a,$0435+y +0a89: d5 31 01 mov $0131+x,a +0a8c: ae pop a +0a8d: 28 0f and a,#$0f +0a8f: fd mov y,a +0a90: f6 3d 04 mov a,$043d+y +0a93: d5 40 01 mov $0140+x,a +0a96: 2f b7 bra $0a4f +0a98: 68 ce cmp a,#$ce +0a9a: 90 05 bcc $0aa1 +0a9c: 3f 7b 0b call $0b7b +0a9f: 2f ae bra $0a4f +0aa1: 3f 54 07 call $0754 +0aa4: f5 30 01 mov a,$0130+x +0aa7: d4 7f mov $7f+x,a +0aa9: fd mov y,a +0aaa: f5 31 01 mov a,$0131+x +0aad: cf mul ya +0aae: dd mov a,y +0aaf: d0 01 bne $0ab2 +0ab1: bc inc a +0ab2: d4 80 mov $80+x,a +0ab4: 2f 03 bra $0ab9 +0ab6: 3f 3e 12 call $123e +0ab9: 3f 57 10 call $1057 +0abc: 3d inc x +0abd: 3d inc x +0abe: 0b 2b asl $2b +0ac0: d0 83 bne $0a45 +0ac2: fa 56 57 mov ($57),($56) +0ac5: e4 3c mov a,$3c +0ac7: f0 0b beq $0ad4 +0ac9: ba 3e movw ya,$3e +0acb: 7a 3a addw ya,$3a +0acd: 6e 3c 02 dbnz $3c,$0ad2 +0ad0: ba 3c movw ya,$3c +0ad2: da 3a movw $3a,ya +0ad4: e4 53 mov a,$53 +0ad6: f0 15 beq $0aed +0ad8: ba 4d movw ya,$4d +0ada: 7a 49 addw ya,$49 +0adc: da 49 movw $49,ya +0ade: ba 4f movw ya,$4f +0ae0: 7a 4b addw ya,$4b +0ae2: 6e 53 06 dbnz $53,$0aeb +0ae5: ba 53 movw ya,$53 +0ae7: da 49 movw $49,ya +0ae9: eb 55 mov y,$55 +0aeb: da 4b movw $4b,ya +0aed: e4 42 mov a,$42 +0aef: f0 0e beq $0aff +0af1: ba 44 movw ya,$44 +0af3: 7a 40 addw ya,$40 +0af5: 6e 42 02 dbnz $42,$0afa +0af8: ba 42 movw ya,$42 +0afa: da 40 movw $40,ya +0afc: 8f ff 46 mov $46,#$ff +0aff: cd 00 mov x,#$00 +0b01: 8f 01 2b mov $2b,#$01 +0b04: f4 19 mov a,$19+x +0b06: f0 03 beq $0b0b +0b08: 3f 4c 11 call $114c +0b0b: 3d inc x +0b0c: 3d inc x +0b0d: 0b 2b asl $2b +0b0f: d0 f3 bne $0b04 +0b11: 6f ret + +; vcmd dispatch table +0b12: dw $0baf ; ce - set instrument +0b14: dw $0bff ; cf - pan +0b16: dw $0c33 ; d0 - pan fade +0b18: dw $0c79 ; d1 - vibrato on +0b1a: dw $0caf ; d2 - vibrato off +0b1c: dw $0cca ; d3 - master volume +0b1e: dw $0ccf ; d4 - master volume fade +0b20: dw $0cf6 ; d5 - tempo +0b22: dw $0cfd ; d6 - tempo fade +0b24: dw $0d24 ; d7 - global transpose +0b26: dw $0d27 ; d8 - per-voice transpose +0b28: dw $0d2b ; d9 - set channel ASDR +0b2a: dw $0d3d ; da - set channel ASDR envelope +0b2c: dw $0dbf ; db - volume +0b2e: dw $0de5 ; dc - volume fade +0b30: dw $0e32 ; dd - call subroutine +0b32: dw $0cba ; de - vibrato fade +0b34: dw $0d60 ; df - pitch envelope (release) +0b36: dw $0d64 ; e0 - pitch envelope (attack) +0b38: dw $0db8 ; e1 - pitch envelope off +0b3a: dw $0e2f ; e2 - tuning +0b3c: dw $0e99 ; e3 - echo vbits/volume +0b3e: dw $0f62 ; e4 - disable echo +0b40: dw $0f69 ; e5 - set echo params +0b42: dw $0ee9 ; e6 - echo volume fade +0b44: dw $1080 ; e7 - pitch slide +0b46: dw $1021 ; e8 +0b48: dw $0d4b ; e9 - set FIR +0b4a: dw $1021 ; ea +0b4c: dw $1025 ; eb +0b4e: dw $0fb9 ; ec +0b50: dw $0da4 ; ed +0b52: dw $0fb6 ; ee +0b54: dw $0dc8 ; ef +0b56: dw $0e2b ; f0 + +; vcmd lengths +0b58: db $01,$01,$02,$03,$00,$01,$02,$01 ; ce-d5 +0b60: db $02,$01,$01,$01,$01,$01,$02,$03 ; d6-dd +0b68: db $01,$03,$03,$00,$01,$03,$00,$03 ; de-e5 +0b70: db $03,$03,$01,$01,$00,$00,$00,$01 ; e6-ed +0b78: db $01,$01,$00 ; ee-f0 + +; dispatch vcmd +0b7b: 1c asl a +0b7c: fd mov y,a +0b7d: f6 77 0a mov a,$0a77+y +0b80: 2d push a +0b81: f6 76 0a mov a,$0a76+y +0b84: 2d push a +0b85: dd mov a,y +0b86: 5c lsr a +0b87: fd mov y,a +0b88: f6 0a 0b mov a,$0b0a+y +0b8b: f0 09 beq $0b96 +0b8d: e7 18 mov a,($18+x) +0b8f: bb 18 inc $18+x +0b91: d0 02 bne $0b95 +0b93: bb 19 inc $19+x +0b95: fd mov y,a +0b96: 6f ret + +0b97: f4 19 mov a,$19+x +0b99: f0 0a beq $0ba5 +0b9b: e7 18 mov a,($18+x) +0b9d: bb 18 inc $18+x +0b9f: d0 02 bne $0ba3 +0ba1: bb 19 inc $19+x +0ba3: fd mov y,a +0ba4: 6f ret + +0ba5: e7 61 mov a,($61+x) +0ba7: bb 61 inc $61+x +0ba9: d0 02 bne $0bad +0bab: bb 62 inc $62+x +0bad: fd mov y,a +0bae: 6f ret + +; vcmd ce - set instrument +0baf: 8d 06 mov y,#$06 +0bb1: cf mul ya +0bb2: da 0f movw $0f,ya +0bb4: 60 clrc +0bb5: 98 7b 0f adc $0f,#$7b +0bb8: 98 14 10 adc $10,#$14 +0bbb: e4 13 mov a,$13 +0bbd: 24 2b and a,$2b +0bbf: d0 3d bne $0bfe +0bc1: 4d push x +0bc2: f5 ac 08 mov a,$08ac+x +0bc5: 08 04 or a,#$04 +0bc7: 5d mov x,a +0bc8: 8d 00 mov y,#$00 +0bca: f7 0f mov a,($0f)+y +0bcc: 10 13 bpl $0be1 +0bce: 28 1f and a,#$1f +0bd0: 38 20 31 and $31,#$20 +0bd3: 0e 31 00 tset1 $0031 +0bd6: 09 2b 32 or ($32),($2b) +0bd9: 8d 04 mov y,#$04 +0bdb: f7 0f mov a,($0f)+y +0bdd: 8d 00 mov y,#$00 +0bdf: 2f 07 bra $0be8 +0be1: e4 2b mov a,$2b +0be3: 4e 32 00 tclr1 $0032 +0be6: f7 0f mov a,($0f)+y +0be8: d8 f2 mov $f2,x +0bea: c4 f3 mov $f3,a +0bec: 3d inc x +0bed: fc inc y +0bee: ad 04 cmp y,#$04 +0bf0: d0 f4 bne $0be6 +0bf2: ce pop x +0bf3: f7 0f mov a,($0f)+y +0bf5: d5 51 01 mov $0151+x,a +0bf8: fc inc y +0bf9: f7 0f mov a,($0f)+y +0bfb: d5 50 01 mov $0150+x,a +0bfe: 6f ret + +; vcmd cf - pan +0bff: f4 62 mov a,$62+x +0c01: d0 03 bne $0c06 +0c03: dd mov a,y +0c04: 2f 1f bra $0c25 +0c06: dd mov a,y +0c07: 60 clrc +0c08: 95 90 02 adc a,$0290+x +0c0b: 10 07 bpl $0c14 +0c0d: 48 ff eor a,#$ff +0c0f: bc inc a +0c10: 28 9f and a,#$9f +0c12: 2f 0f bra $0c23 +0c14: 68 14 cmp a,#$14 +0c16: f0 0d beq $0c25 +0c18: 90 0b bcc $0c25 +0c1a: 80 setc +0c1b: a8 14 sbc a,#$14 +0c1d: c4 0f mov $0f,a +0c1f: e8 14 mov a,#$14 +0c21: a4 0f sbc a,$0f +0c23: 08 80 or a,#$80 +0c25: d5 f1 01 mov $01f1+x,a +0c28: 28 1f and a,#$1f +0c2a: d5 d1 01 mov $01d1+x,a +0c2d: e8 00 mov a,#$00 +0c2f: d5 d0 01 mov $01d0+x,a +0c32: 6f ret + +; vcmd d0 - pan fade +0c33: d4 a0 mov $a0+x,a +0c35: 2d push a +0c36: f4 19 mov a,$19+x +0c38: d0 0b bne $0c45 +0c3a: e7 61 mov a,($61+x) +0c3c: bb 61 inc $61+x +0c3e: d0 02 bne $0c42 +0c40: bb 62 inc $62+x +0c42: fd mov y,a +0c43: 2f 09 bra $0c4e +0c45: e7 18 mov a,($18+x) +0c47: bb 18 inc $18+x +0c49: d0 02 bne $0c4d +0c4b: bb 19 inc $19+x +0c4d: fd mov y,a +0c4e: d5 f0 01 mov $01f0+x,a +0c51: 80 setc +0c52: b5 d1 01 sbc a,$01d1+x +0c55: ce pop x +0c56: ed notc +0c57: 6b 0d ror $0d +0c59: 10 03 bpl $0c5e +0c5b: 48 ff eor a,#$ff +0c5d: bc inc a +0c5e: 8d 00 mov y,#$00 +0c60: 9e div ya,x +0c61: 2d push a +0c62: e8 00 mov a,#$00 +0c64: 9e div ya,x +0c65: ee pop y +0c66: f8 2c mov x,$2c +0c68: f3 0d 06 bbc7 $0d,$0c71 +0c6b: da 0f movw $0f,ya +0c6d: ba 09 movw ya,$09 +0c6f: 9a 0f subw ya,$0f +0c71: d5 e0 01 mov $01e0+x,a +0c74: dd mov a,y +0c75: d5 e1 01 mov $01e1+x,a +0c78: 6f ret + +; vcmd d1 - vibrato on +0c79: d5 51 02 mov $0251+x,a +0c7c: f4 19 mov a,$19+x +0c7e: d0 0b bne $0c8b +0c80: e7 61 mov a,($61+x) +0c82: bb 61 inc $61+x +0c84: d0 02 bne $0c88 +0c86: bb 62 inc $62+x +0c88: fd mov y,a +0c89: 2f 09 bra $0c94 +0c8b: e7 18 mov a,($18+x) +0c8d: bb 18 inc $18+x +0c8f: d0 02 bne $0c93 +0c91: bb 19 inc $19+x +0c93: fd mov y,a +0c94: d5 50 02 mov $0250+x,a +0c97: f4 19 mov a,$19+x +0c99: d0 0b bne $0ca6 +0c9b: e7 61 mov a,($61+x) +0c9d: bb 61 inc $61+x +0c9f: d0 02 bne $0ca3 +0ca1: bb 62 inc $62+x +0ca3: fd mov y,a +0ca4: 2f 09 bra $0caf +0ca6: e7 18 mov a,($18+x) +0ca8: bb 18 inc $18+x +0caa: d0 02 bne $0cae +0cac: bb 19 inc $19+x +0cae: fd mov y,a +; vcmd d2 - vibrato off +0caf: d4 c0 mov $c0+x,a +0cb1: d5 70 02 mov $0270+x,a +0cb4: e8 00 mov a,#$00 +0cb6: d5 60 02 mov $0260+x,a +0cb9: 6f ret + +; vcmd de - vibrato fade +0cba: d5 60 02 mov $0260+x,a +0cbd: 2d push a +0cbe: 8d 00 mov y,#$00 +0cc0: f4 c0 mov a,$c0+x +0cc2: ce pop x +0cc3: 9e div ya,x +0cc4: f8 2c mov x,$2c +0cc6: d5 61 02 mov $0261+x,a +0cc9: 6f ret + +; vcmd d3 - master volume +0cca: e8 00 mov a,#$00 +0ccc: da 40 movw $40,ya +0cce: 6f ret + +; vcmd d4 - master volume fade +0ccf: c4 42 mov $42,a +0cd1: f4 19 mov a,$19+x +0cd3: d0 0b bne $0ce0 +0cd5: e7 61 mov a,($61+x) +0cd7: bb 61 inc $61+x +0cd9: d0 02 bne $0cdd +0cdb: bb 62 inc $62+x +0cdd: fd mov y,a +0cde: 2f 09 bra $0ce9 +0ce0: e7 18 mov a,($18+x) +0ce2: bb 18 inc $18+x +0ce4: d0 02 bne $0ce8 +0ce6: bb 19 inc $19+x +0ce8: fd mov y,a +0ce9: c4 43 mov $43,a +0ceb: 80 setc +0cec: a4 41 sbc a,$41 +0cee: f8 42 mov x,$42 +0cf0: 3f 46 0f call $0f46 +0cf3: da 44 movw $44,ya +0cf5: 6f ret + +; vcmd d5 - tempo +0cf6: e8 00 mov a,#$00 +0cf8: da 3a movw $3a,ya +0cfa: cb 7e mov $7e,y +0cfc: 6f ret + +; vcmd d6 - tempo fade +0cfd: c4 3c mov $3c,a +0cff: f4 19 mov a,$19+x +0d01: d0 0b bne $0d0e +0d03: e7 61 mov a,($61+x) +0d05: bb 61 inc $61+x +0d07: d0 02 bne $0d0b +0d09: bb 62 inc $62+x +0d0b: fd mov y,a +0d0c: 2f 09 bra $0d17 +0d0e: e7 18 mov a,($18+x) +0d10: bb 18 inc $18+x +0d12: d0 02 bne $0d16 +0d14: bb 19 inc $19+x +0d16: fd mov y,a +0d17: c4 3d mov $3d,a +0d19: 80 setc +0d1a: a4 3b sbc a,$3b +0d1c: f8 3c mov x,$3c +0d1e: 3f 46 0f call $0f46 +0d21: da 3e movw $3e,ya +0d23: 6f ret + +; vcmd d7 - global transpose +0d24: c4 38 mov $38,a +0d26: 6f ret + +; vcmd d8 - per-voice transpose +0d27: d5 80 02 mov $0280+x,a +0d2a: 6f ret + +; vcmd d9 - set channel ASDR +0d2b: e4 2b mov a,$2b +0d2d: 24 13 and a,$13 +0d2f: d0 09 bne $0d3a +0d31: dd mov a,y +0d32: 08 80 or a,#$80 +0d34: fd mov y,a +0d35: f5 ac 08 mov a,$08ac+x +0d38: 08 05 or a,#$05 +0d3a: da f2 movw $f2,ya +0d3c: 6f ret + +; vcmd da - set channel ASDR envelope +0d3d: e4 2b mov a,$2b +0d3f: 24 13 and a,$13 +0d41: d0 07 bne $0d4a +0d43: f5 ac 08 mov a,$08ac+x +0d46: 08 06 or a,#$06 +0d48: da f2 movw $f2,ya +0d4a: 6f ret + +; vcmd e9 - set FIR +0d4b: e4 2b mov a,$2b +0d4d: 24 13 and a,$13 +0d4f: d0 0e bne $0d5f +0d51: f5 ac 08 mov a,$08ac+x +0d54: 08 05 or a,#$05 +0d56: c4 f2 mov $f2,a +0d58: 8f 7f f3 mov $f3,#$7f +0d5b: bc inc a +0d5c: bc inc a +0d5d: da f2 movw $f2,ya +0d5f: 6f ret + +; vcmd df - pitch envelope (release) +0d60: e8 01 mov a,#$01 +0d62: 2f 02 bra $0d66 +; vcmd e0 - pitch envelope (attack) +0d64: e8 00 mov a,#$00 +0d66: d5 31 02 mov $0231+x,a +0d69: dd mov a,y +0d6a: d5 30 02 mov $0230+x,a +0d6d: f4 19 mov a,$19+x +0d6f: d0 0b bne $0d7c +0d71: e7 61 mov a,($61+x) +0d73: bb 61 inc $61+x +0d75: d0 02 bne $0d79 +0d77: bb 62 inc $62+x +0d79: fd mov y,a +0d7a: 2f 09 bra $0d85 +0d7c: e7 18 mov a,($18+x) +0d7e: bb 18 inc $18+x +0d80: d0 02 bne $0d84 +0d82: bb 19 inc $19+x +0d84: fd mov y,a +0d85: d5 21 02 mov $0221+x,a +0d88: f4 19 mov a,$19+x +0d8a: d0 0b bne $0d97 +0d8c: e7 61 mov a,($61+x) +0d8e: bb 61 inc $61+x +0d90: d0 02 bne $0d94 +0d92: bb 62 inc $62+x +0d94: fd mov y,a +0d95: 2f 09 bra $0da0 +0d97: e7 18 mov a,($18+x) +0d99: bb 18 inc $18+x +0d9b: d0 02 bne $0d9f +0d9d: bb 19 inc $19+x +0d9f: fd mov y,a +0da0: d5 40 02 mov $0240+x,a +0da3: 6f ret + +; vcmd ed +0da4: d5 21 02 mov $0221+x,a +0da7: e8 02 mov a,#$02 +0da9: d5 31 02 mov $0231+x,a +0dac: f5 01 02 mov a,$0201+x +0daf: d5 40 02 mov $0240+x,a +0db2: e8 00 mov a,#$00 +0db4: d5 30 02 mov $0230+x,a +0db7: 6f ret + +; vcmd e1 - pitch envelope off +0db8: d5 30 02 mov $0230+x,a +0dbb: d5 21 02 mov $0221+x,a +0dbe: 6f ret + +; vcmd db - volume +0dbf: d5 a1 01 mov $01a1+x,a +0dc2: e8 00 mov a,#$00 +0dc4: d5 a0 01 mov $01a0+x,a +0dc7: 6f ret + +; vcmd ef +0dc8: d4 cf mov $cf+x,a +0dca: d5 90 01 mov $0190+x,a +0dcd: f4 19 mov a,$19+x +0dcf: d0 0b bne $0ddc +0dd1: e7 61 mov a,($61+x) +0dd3: bb 61 inc $61+x +0dd5: d0 02 bne $0dd9 +0dd7: bb 62 inc $62+x +0dd9: fd mov y,a +0dda: 2f 09 bra $0de5 +0ddc: e7 18 mov a,($18+x) +0dde: bb 18 inc $18+x +0de0: d0 02 bne $0de4 +0de2: bb 19 inc $19+x +0de4: fd mov y,a +; vcmd dc - volume fade +0de5: d4 9f mov $9f+x,a +0de7: 2d push a +0de8: f4 19 mov a,$19+x +0dea: d0 0b bne $0df7 +0dec: e7 61 mov a,($61+x) +0dee: bb 61 inc $61+x +0df0: d0 02 bne $0df4 +0df2: bb 62 inc $62+x +0df4: fd mov y,a +0df5: 2f 09 bra $0e00 +0df7: e7 18 mov a,($18+x) +0df9: bb 18 inc $18+x +0dfb: d0 02 bne $0dff +0dfd: bb 19 inc $19+x +0dff: fd mov y,a +0e00: d5 c0 01 mov $01c0+x,a +0e03: 80 setc +0e04: b5 a1 01 sbc a,$01a1+x +0e07: ce pop x +0e08: ed notc +0e09: 6b 0d ror $0d +0e0b: 10 03 bpl $0e10 +0e0d: 48 ff eor a,#$ff +0e0f: bc inc a +0e10: 8d 00 mov y,#$00 +0e12: 9e div ya,x +0e13: 2d push a +0e14: e8 00 mov a,#$00 +0e16: 9e div ya,x +0e17: ee pop y +0e18: f8 2c mov x,$2c +0e1a: f3 0d 06 bbc7 $0d,$0e23 +0e1d: da 0f movw $0f,ya +0e1f: ba 09 movw ya,$09 +0e21: 9a 0f subw ya,$0f +0e23: d5 b0 01 mov $01b0+x,a +0e26: dd mov a,y +0e27: d5 b1 01 mov $01b1+x,a +0e2a: 6f ret + +; vcmd f0 +0e2b: 09 2b e8 or ($e8),($2b) +0e2e: 6f ret + +; vcmd de - tuning +0e2f: d4 d0 mov $d0+x,a +0e31: 6f ret + +; vcmd dd - call subroutine +0e32: d5 70 01 mov $0170+x,a +0e35: f4 19 mov a,$19+x +0e37: d0 0b bne $0e44 +0e39: e7 61 mov a,($61+x) +0e3b: bb 61 inc $61+x +0e3d: d0 02 bne $0e41 +0e3f: bb 62 inc $62+x +0e41: fd mov y,a +0e42: 2f 09 bra $0e4d +0e44: e7 18 mov a,($18+x) +0e46: bb 18 inc $18+x +0e48: d0 02 bne $0e4c +0e4a: bb 19 inc $19+x +0e4c: fd mov y,a +0e4d: d5 71 01 mov $0171+x,a +0e50: f4 19 mov a,$19+x +0e52: d0 0b bne $0e5f +0e54: e7 61 mov a,($61+x) +0e56: bb 61 inc $61+x +0e58: d0 02 bne $0e5c +0e5a: bb 62 inc $62+x +0e5c: fd mov y,a +0e5d: 2f 09 bra $0e68 +0e5f: e7 18 mov a,($18+x) +0e61: bb 18 inc $18+x +0e63: d0 02 bne $0e67 +0e65: bb 19 inc $19+x +0e67: fd mov y,a +0e68: d4 8f mov $8f+x,a +0e6a: fb 62 mov y,$62+x +0e6c: f0 16 beq $0e84 +0e6e: f4 61 mov a,$61+x +0e70: d5 60 01 mov $0160+x,a +0e73: f4 62 mov a,$62+x +0e75: d5 61 01 mov $0161+x,a +0e78: f5 70 01 mov a,$0170+x +0e7b: d4 61 mov $61+x,a +0e7d: f5 71 01 mov a,$0171+x +0e80: d4 62 mov $62+x,a +0e82: 2f 14 bra $0e98 +0e84: f4 18 mov a,$18+x +0e86: d5 60 01 mov $0160+x,a +0e89: f4 19 mov a,$19+x +0e8b: d5 61 01 mov $0161+x,a +0e8e: f5 70 01 mov a,$0170+x +0e91: d4 18 mov $18+x,a +0e93: f5 71 01 mov a,$0171+x +0e96: d4 19 mov $19+x,a +0e98: 6f ret + +; vcmd e3 - echo vbits/volume +0e99: c4 33 mov $33,a +0e9b: f4 19 mov a,$19+x +0e9d: d0 0b bne $0eaa +0e9f: e7 61 mov a,($61+x) +0ea1: bb 61 inc $61+x +0ea3: d0 02 bne $0ea7 +0ea5: bb 62 inc $62+x +0ea7: fd mov y,a +0ea8: 2f 09 bra $0eb3 +0eaa: e7 18 mov a,($18+x) +0eac: bb 18 inc $18+x +0eae: d0 02 bne $0eb2 +0eb0: bb 19 inc $19+x +0eb2: fd mov y,a +0eb3: e8 00 mov a,#$00 +0eb5: cb 51 mov $51,y +0eb7: da 49 movw $49,ya +0eb9: f4 19 mov a,$19+x +0ebb: d0 0b bne $0ec8 +0ebd: e7 61 mov a,($61+x) +0ebf: bb 61 inc $61+x +0ec1: d0 02 bne $0ec5 +0ec3: bb 62 inc $62+x +0ec5: fd mov y,a +0ec6: 2f 09 bra $0ed1 +0ec8: e7 18 mov a,($18+x) +0eca: bb 18 inc $18+x +0ecc: d0 02 bne $0ed0 +0ece: bb 19 inc $19+x +0ed0: fd mov y,a +0ed1: cb 52 mov $52,y +0ed3: ec 39 14 mov y,$1439 +0ed6: f0 09 beq $0ee1 +0ed8: 2d push a +0ed9: 44 51 eor a,$51 +0edb: ae pop a +0edc: 10 03 bpl $0ee1 +0ede: 48 ff eor a,#$ff +0ee0: bc inc a +0ee1: fd mov y,a +0ee2: e8 00 mov a,#$00 +0ee4: da 4b movw $4b,ya +0ee6: b2 31 clr5 $31 +0ee8: 6f ret + +; vcmd e6 - echo volume fade +0ee9: c4 53 mov $53,a +0eeb: f4 19 mov a,$19+x +0eed: d0 0b bne $0efa +0eef: e7 61 mov a,($61+x) +0ef1: bb 61 inc $61+x +0ef3: d0 02 bne $0ef7 +0ef5: bb 62 inc $62+x +0ef7: fd mov y,a +0ef8: 2f 09 bra $0f03 +0efa: e7 18 mov a,($18+x) +0efc: bb 18 inc $18+x +0efe: d0 02 bne $0f02 +0f00: bb 19 inc $19+x +0f02: fd mov y,a +0f03: cb 51 mov $51,y +0f05: c4 54 mov $54,a +0f07: 80 setc +0f08: a4 4a sbc a,$4a +0f0a: f8 53 mov x,$53 +0f0c: 3f 46 0f call $0f46 +0f0f: da 4d movw $4d,ya +0f11: f4 19 mov a,$19+x +0f13: d0 0b bne $0f20 +0f15: e7 61 mov a,($61+x) +0f17: bb 61 inc $61+x +0f19: d0 02 bne $0f1d +0f1b: bb 62 inc $62+x +0f1d: fd mov y,a +0f1e: 2f 09 bra $0f29 +0f20: e7 18 mov a,($18+x) +0f22: bb 18 inc $18+x +0f24: d0 02 bne $0f28 +0f26: bb 19 inc $19+x +0f28: fd mov y,a +0f29: cb 52 mov $52,y +0f2b: ec 39 14 mov y,$1439 +0f2e: f0 09 beq $0f39 +0f30: 2d push a +0f31: 44 51 eor a,$51 +0f33: ae pop a +0f34: 10 03 bpl $0f39 +0f36: 48 ff eor a,#$ff +0f38: bc inc a +0f39: c4 55 mov $55,a +0f3b: 80 setc +0f3c: a4 4c sbc a,$4c +0f3e: f8 53 mov x,$53 +0f40: 3f 46 0f call $0f46 +0f43: da 4f movw $4f,ya +0f45: 6f ret + +0f46: ed notc +0f47: 6b 0d ror $0d +0f49: 10 03 bpl $0f4e +0f4b: 48 ff eor a,#$ff +0f4d: bc inc a +0f4e: 8d 00 mov y,#$00 +0f50: 9e div ya,x +0f51: 2d push a +0f52: e8 00 mov a,#$00 +0f54: 9e div ya,x +0f55: ee pop y +0f56: f8 2c mov x,$2c +0f58: f3 0d 06 bbc7 $0d,$0f61 +0f5b: da 0f movw $0f,ya +0f5d: ba 09 movw ya,$09 +0f5f: 9a 0f subw ya,$0f +0f61: 6f ret + +; vcmd e4 - disable echo +0f62: da 49 movw $49,ya +0f64: da 4b movw $4b,ya +0f66: a2 31 set5 $31 +0f68: 6f ret + +; vcmd e5 - set echo params +0f69: 3f e7 0f call $0fe7 +0f6c: f4 19 mov a,$19+x +0f6e: d0 0b bne $0f7b +0f70: e7 61 mov a,($61+x) +0f72: bb 61 inc $61+x +0f74: d0 02 bne $0f78 +0f76: bb 62 inc $62+x +0f78: fd mov y,a +0f79: 2f 09 bra $0f84 +0f7b: e7 18 mov a,($18+x) +0f7d: bb 18 inc $18+x +0f7f: d0 02 bne $0f83 +0f81: bb 19 inc $19+x +0f83: fd mov y,a +0f84: c4 37 mov $37,a +0f86: f4 19 mov a,$19+x +0f88: d0 0b bne $0f95 +0f8a: e7 61 mov a,($61+x) +0f8c: bb 61 inc $61+x +0f8e: d0 02 bne $0f92 +0f90: bb 62 inc $62+x +0f92: fd mov y,a +0f93: 2f 09 bra $0f9e +0f95: e7 18 mov a,($18+x) +0f97: bb 18 inc $18+x +0f99: d0 02 bne $0f9d +0f9b: bb 19 inc $19+x +0f9d: fd mov y,a +0f9e: 8d 08 mov y,#$08 +0fa0: cf mul ya +0fa1: 5d mov x,a +0fa2: 8d 0f mov y,#$0f +0fa4: f5 29 14 mov a,$1429+x +0fa7: cb f2 mov $f2,y +0fa9: c4 f3 mov $f3,a +0fab: 3d inc x +0fac: dd mov a,y +0fad: 60 clrc +0fae: 88 10 adc a,#$10 +0fb0: fd mov y,a +0fb1: 10 f1 bpl $0fa4 +0fb3: f8 2c mov x,$2c +0fb5: 6f ret + +; vcmd ee +0fb6: c4 37 mov $37,a +0fb8: 6f ret + +; vcmd ec +0fb9: eb 71 mov y,$71 +0fbb: f6 72 00 mov a,$0072+y +0fbe: 24 2b and a,$2b +0fc0: d0 18 bne $0fda +0fc2: dc dec y +0fc3: 10 f6 bpl $0fbb +0fc5: eb 71 mov y,$71 +0fc7: ab 71 inc $71 +0fc9: d9 59 mov $59+y,x +0fcb: e4 2b mov a,$2b +0fcd: d6 72 00 mov $0072+y,a +0fd0: f4 18 mov a,$18+x +0fd2: d5 a0 02 mov $02a0+x,a +0fd5: f4 19 mov a,$19+x +0fd7: d5 a1 02 mov $02a1+x,a +0fda: e8 00 mov a,#$00 +0fdc: d4 19 mov $19+x,a +0fde: ae pop a +0fdf: ae pop a +0fe0: e8 0a mov a,#$0a +0fe2: 2d push a +0fe3: e8 bc mov a,#$bc +0fe5: 2d push a +0fe6: 6f ret + +0fe7: c4 36 mov $36,a +0fe9: 8d 7d mov y,#$7d +0feb: 28 0f and a,#$0f +0fed: 48 ff eor a,#$ff +0fef: f3 35 03 bbc7 $35,$0ff5 +0ff2: 60 clrc +0ff3: 84 35 adc a,$35 +0ff5: c4 35 mov $35,a +0ff7: 8d 04 mov y,#$04 +0ff9: f6 8e 03 mov a,$038e+y +0ffc: c4 f2 mov $f2,a +0ffe: e8 00 mov a,#$00 +1000: c4 f3 mov $f3,a +1002: fe f5 dbnz y,$0ff9 +1004: 08 20 or a,#$20 +1006: 8d 6c mov y,#$6c +1008: cb f2 mov $f2,y +100a: c4 f3 mov $f3,a +100c: e4 36 mov a,$36 +100e: 8d 7d mov y,#$7d +1010: cb f2 mov $f2,y +1012: c4 f3 mov $f3,a +1014: 1c asl a +1015: 1c asl a +1016: 1c asl a +1017: 48 ff eor a,#$ff +1019: bc inc a +101a: 8d 6d mov y,#$6d +101c: cb f2 mov $f2,y +101e: c4 f3 mov $f3,a +1020: 6f ret + +; vcmd e8/ea +1021: 09 2b 56 or ($56),($2b) +1024: 6f ret + +; vcmd eb +1025: e4 2b mov a,$2b +1027: 4e 56 00 tclr1 $0056 +102a: 6f ret + +102b: f4 af mov a,$af+x +102d: d0 27 bne $1056 +102f: e7 61 mov a,($61+x) +1031: 68 e7 cmp a,#$e7 +1033: d0 21 bne $1056 +1035: bb 61 inc $61+x +1037: d0 02 bne $103b +1039: bb 62 inc $62+x +103b: fd mov y,a +103c: f4 19 mov a,$19+x +103e: d0 0b bne $104b +1040: e7 61 mov a,($61+x) +1042: bb 61 inc $61+x +1044: d0 02 bne $1048 +1046: bb 62 inc $62+x +1048: fd mov y,a +1049: 2f 09 bra $1054 +104b: e7 18 mov a,($18+x) +104d: bb 18 inc $18+x +104f: d0 02 bne $1053 +1051: bb 19 inc $19+x +1053: fd mov y,a +1054: 2f 2a bra $1080 +1056: 6f ret + +1057: f4 af mov a,$af+x +1059: d0 fb bne $1056 +105b: e7 18 mov a,($18+x) +105d: 68 e7 cmp a,#$e7 +105f: d0 f5 bne $1056 +1061: bb 18 inc $18+x +1063: d0 02 bne $1067 +1065: bb 19 inc $19+x +1067: fd mov y,a +1068: f4 19 mov a,$19+x +106a: d0 0b bne $1077 +106c: e7 61 mov a,($61+x) +106e: bb 61 inc $61+x +1070: d0 02 bne $1074 +1072: bb 62 inc $62+x +1074: fd mov y,a +1075: 2f 09 bra $1080 +1077: e7 18 mov a,($18+x) +1079: bb 18 inc $18+x +107b: d0 02 bne $107f +107d: bb 19 inc $19+x +107f: fd mov y,a +; vcmd e7 - pitch slide +1080: d4 b0 mov $b0+x,a +1082: f4 19 mov a,$19+x +1084: d0 0b bne $1091 +1086: e7 61 mov a,($61+x) +1088: bb 61 inc $61+x +108a: d0 02 bne $108e +108c: bb 62 inc $62+x +108e: fd mov y,a +108f: 2f 09 bra $109a +1091: e7 18 mov a,($18+x) +1093: bb 18 inc $18+x +1095: d0 02 bne $1099 +1097: bb 19 inc $19+x +1099: fd mov y,a +109a: d4 af mov $af+x,a +109c: f4 19 mov a,$19+x +109e: d0 0b bne $10ab +10a0: e7 61 mov a,($61+x) +10a2: bb 61 inc $61+x +10a4: d0 02 bne $10a8 +10a6: bb 62 inc $62+x +10a8: fd mov y,a +10a9: 2f 09 bra $10b4 +10ab: e7 18 mov a,($18+x) +10ad: bb 18 inc $18+x +10af: d0 02 bne $10b3 +10b1: bb 19 inc $19+x +10b3: fd mov y,a +10b4: 60 clrc +10b5: 84 38 adc a,$38 +10b7: 95 80 02 adc a,$0280+x +10ba: 28 7f and a,#$7f +10bc: d5 20 02 mov $0220+x,a +10bf: 80 setc +10c0: b5 01 02 sbc a,$0201+x +10c3: fb af mov y,$af+x +10c5: 6d push y +10c6: ce pop x +10c7: ed notc +10c8: 6b 0d ror $0d +10ca: 10 03 bpl $10cf +10cc: 48 ff eor a,#$ff +10ce: bc inc a +10cf: 8d 00 mov y,#$00 +10d1: 9e div ya,x +10d2: 2d push a +10d3: e8 00 mov a,#$00 +10d5: 9e div ya,x +10d6: ee pop y +10d7: f8 2c mov x,$2c +10d9: f3 0d 06 bbc7 $0d,$10e2 +10dc: da 0f movw $0f,ya +10de: ba 09 movw ya,$09 +10e0: 9a 0f subw ya,$0f +10e2: d5 10 02 mov $0210+x,a +10e5: dd mov a,y +10e6: d5 11 02 mov $0211+x,a +10e9: 6f ret + +10ea: f4 9f mov a,$9f+x +10ec: f0 28 beq $1116 +10ee: e8 a0 mov a,#$a0 +10f0: 8d 01 mov y,#$01 +10f2: 09 2b 46 or ($46),($2b) +10f5: 9b 9f dec $9f+x +10f7: d0 0a bne $1103 +10f9: e8 00 mov a,#$00 +10fb: d5 a0 01 mov $01a0+x,a +10fe: f5 c0 01 mov a,$01c0+x +1101: 2f 10 bra $1113 +1103: 60 clrc +1104: f5 a0 01 mov a,$01a0+x +1107: 95 b0 01 adc a,$01b0+x +110a: d5 a0 01 mov $01a0+x,a +110d: f5 a1 01 mov a,$01a1+x +1110: 95 b1 01 adc a,$01b1+x +1113: d5 a1 01 mov $01a1+x,a +1116: f5 a1 01 mov a,$01a1+x +1119: fd mov y,a +111a: f5 91 02 mov a,$0291+x +111d: cf mul ya +111e: dd mov a,y +111f: d5 c1 01 mov $01c1+x,a +1122: f4 a0 mov a,$a0+x +1124: f0 24 beq $114a +1126: 09 2b 46 or ($46),($2b) +1129: 9b a0 dec $a0+x +112b: d0 0a bne $1137 +112d: e8 00 mov a,#$00 +112f: d5 d0 01 mov $01d0+x,a +1132: f5 f0 01 mov a,$01f0+x +1135: 2f 10 bra $1147 +1137: 60 clrc +1138: f5 d0 01 mov a,$01d0+x +113b: 95 e0 01 adc a,$01e0+x +113e: d5 d0 01 mov $01d0+x,a +1141: f5 d1 01 mov a,$01d1+x +1144: 95 e1 01 adc a,$01e1+x +1147: d5 d1 01 mov $01d1+x,a +114a: 2f 77 bra $11c3 +114c: f4 cf mov a,$cf+x +114e: f0 04 beq $1154 +1150: 9b cf dec $cf+x +1152: 2f 2d bra $1181 +1154: f4 9f mov a,$9f+x +1156: f0 29 beq $1181 +1158: f5 90 01 mov a,$0190+x +115b: d4 cf mov $cf+x,a +115d: 09 2b 46 or ($46),($2b) +1160: 9b 9f dec $9f+x +1162: d0 0a bne $116e +1164: e8 00 mov a,#$00 +1166: d5 a0 01 mov $01a0+x,a +1169: f5 c0 01 mov a,$01c0+x +116c: 2f 10 bra $117e +116e: 60 clrc +116f: f5 a0 01 mov a,$01a0+x +1172: 95 b0 01 adc a,$01b0+x +1175: d5 a0 01 mov $01a0+x,a +1178: f5 a1 01 mov a,$01a1+x +117b: 95 b1 01 adc a,$01b1+x +117e: d5 a1 01 mov $01a1+x,a +1181: eb 41 mov y,$41 +1183: f5 40 01 mov a,$0140+x +1186: cf mul ya +1187: f5 a1 01 mov a,$01a1+x +118a: cf mul ya +118b: dd mov a,y +118c: cf mul ya +118d: dd mov a,y +118e: d5 c1 01 mov $01c1+x,a +1191: f4 a0 mov a,$a0+x +1193: f0 2e beq $11c3 +1195: e8 d0 mov a,#$d0 +1197: 8d 01 mov y,#$01 +1199: 9b a0 dec $a0+x +119b: 0d push psw +119c: 09 2b 46 or ($46),($2b) +119f: 8e pop psw +11a0: da 0f movw $0f,ya +11a2: da 11 movw $11,ya +11a4: 4d push x +11a5: ee pop y +11a6: 60 clrc +11a7: d0 0a bne $11b3 +11a9: 98 1f 11 adc $11,#$1f +11ac: e8 00 mov a,#$00 +11ae: d7 0f mov ($0f)+y,a +11b0: fc inc y +11b1: 2f 0c bra $11bf +11b3: 98 10 11 adc $11,#$10 +11b6: f7 0f mov a,($0f)+y +11b8: 97 11 adc a,($11)+y +11ba: d7 0f mov ($0f)+y,a +11bc: fc inc y +11bd: f7 0f mov a,($0f)+y +11bf: 97 11 adc a,($11)+y +11c1: d7 0f mov ($0f)+y,a +11c3: e4 2b mov a,$2b +11c5: 24 46 and a,$46 +11c7: f0 5f beq $1228 +11c9: f5 d1 01 mov a,$01d1+x +11cc: fd mov y,a +11cd: f5 d0 01 mov a,$01d0+x +11d0: da 0b movw $0b,ya +11d2: f5 ac 08 mov a,$08ac+x +11d5: c4 0d mov $0d,a +11d7: 8d 51 mov y,#$51 +11d9: e5 39 14 mov a,$1439 +11dc: d0 14 bne $11f2 +11de: eb 0c mov y,$0c +11e0: f6 2a 12 mov a,$122a+y +11e3: 80 setc +11e4: b6 29 12 sbc a,$1229+y +11e7: eb 0b mov y,$0b +11e9: cf mul ya +11ea: dd mov a,y +11eb: eb 0c mov y,$0c +11ed: 60 clrc +11ee: 96 29 12 adc a,$1229+y +11f1: fd mov y,a +11f2: f5 c1 01 mov a,$01c1+x +11f5: cf mul ya +11f6: 60 clrc +11f7: e5 39 14 mov a,$1439 +11fa: d0 08 bne $1204 +11fc: f5 f1 01 mov a,$01f1+x +11ff: 1c asl a +1200: 13 0d 01 bbc0 $0d,$1204 +1203: 1c asl a +1204: dd mov a,y +1205: 90 03 bcc $120a +1207: 48 ff eor a,#$ff +1209: bc inc a +120a: eb 0d mov y,$0d +120c: 2d push a +120d: e4 2b mov a,$2b +120f: 24 13 and a,$13 +1211: ae pop a +1212: d0 04 bne $1218 +1214: cb f2 mov $f2,y +1216: c4 f3 mov $f3,a +1218: 8d 14 mov y,#$14 +121a: e8 00 mov a,#$00 +121c: 9a 0b subw ya,$0b +121e: da 0b movw $0b,ya +1220: ab 0d inc $0d +1222: 33 0d b2 bbc1 $0d,$11d7 +1225: 49 2b 46 eor ($46),($2b) +1228: 6f ret + + +1229: db $00,$01,$03,$07,$0d,$15,$1e,$29 +0231: db $34,$42,$51,$5e,$67,$6e,$73,$77 +0239: db $7a,$7c,$7d,$7e,$7f + +123e: f0 7e beq $12be +1240: f4 80 mov a,$80+x +1242: f0 7a beq $12be +1244: 9b 80 dec $80+x +1246: f0 05 beq $124d +1248: e8 02 mov a,#$02 +124a: de 7f 71 cbne $7f+x,$12be +124d: f4 8f mov a,$8f+x +124f: c4 12 mov $12,a +1251: fb 62 mov y,$62+x +1253: f0 04 beq $1259 +1255: f4 61 mov a,$61+x +1257: 2f 04 bra $125d +1259: f4 18 mov a,$18+x +125b: fb 19 mov y,$19+x +125d: da 0f movw $0f,ya +125f: 8d 00 mov y,#$00 +1261: f7 0f mov a,($0f)+y +1263: f0 1c beq $1281 +1265: 30 05 bmi $126c +1267: fc inc y +1268: f7 0f mov a,($0f)+y +126a: 10 fb bpl $1267 +126c: 68 c8 cmp a,#$c8 +126e: f0 4e beq $12be +1270: 68 dd cmp a,#$dd +1272: f0 29 beq $129d +1274: 68 ce cmp a,#$ce +1276: 90 30 bcc $12a8 +1278: 6d push y +1279: fd mov y,a +127a: ae pop a +127b: 96 8a 0a adc a,$0a8a+y +127e: fd mov y,a +127f: 2f e0 bra $1261 +1281: e4 12 mov a,$12 +1283: f0 23 beq $12a8 +1285: 8b 12 dec $12 +1287: d0 0a bne $1293 +1289: f5 61 01 mov a,$0161+x +128c: 2d push a +128d: f5 60 01 mov a,$0160+x +1290: ee pop y +1291: 2f ca bra $125d +1293: f5 71 01 mov a,$0171+x +1296: 2d push a +1297: f5 70 01 mov a,$0170+x +129a: ee pop y +129b: 2f c0 bra $125d +129d: fc inc y +129e: f7 0f mov a,($0f)+y +12a0: 2d push a +12a1: fc inc y +12a2: f7 0f mov a,($0f)+y +12a4: fd mov y,a +12a5: ae pop a +12a6: 2f b5 bra $125d +12a8: e4 57 mov a,$57 +12aa: 24 2b and a,$2b +12ac: d0 10 bne $12be +12ae: e4 2b mov a,$2b +12b0: 8d 5c mov y,#$5c +12b2: 2d push a +12b3: e4 2b mov a,$2b +12b5: 24 13 and a,$13 +12b7: ae pop a +12b8: d0 04 bne $12be +12ba: cb f2 mov $f2,y +12bc: c4 f3 mov $f3,a +12be: f2 0e clr7 $0e +12c0: f4 af mov a,$af+x +12c2: f0 33 beq $12f7 +12c4: f4 b0 mov a,$b0+x +12c6: f0 04 beq $12cc +12c8: 9b b0 dec $b0+x +12ca: 2f 2b bra $12f7 +12cc: e2 0e set7 $0e +12ce: e8 00 mov a,#$00 +12d0: 8d 02 mov y,#$02 +12d2: 9b af dec $af+x +12d4: da 0f movw $0f,ya +12d6: da 11 movw $11,ya +12d8: 4d push x +12d9: ee pop y +12da: 60 clrc +12db: d0 0a bne $12e7 +12dd: 98 1f 11 adc $11,#$1f +12e0: e8 00 mov a,#$00 +12e2: d7 0f mov ($0f)+y,a +12e4: fc inc y +12e5: 2f 0c bra $12f3 +12e7: 98 10 11 adc $11,#$10 +12ea: f7 0f mov a,($0f)+y +12ec: 97 11 adc a,($11)+y +12ee: d7 0f mov ($0f)+y,a +12f0: fc inc y +12f1: f7 0f mov a,($0f)+y +12f3: 97 11 adc a,($11)+y +12f5: d7 0f mov ($0f)+y,a +12f7: f5 01 02 mov a,$0201+x +12fa: c4 0c mov $0c,a +12fc: f5 00 02 mov a,$0200+x +12ff: c4 0b mov $0b,a +1301: f4 c0 mov a,$c0+x +1303: f0 54 beq $1359 +1305: f5 51 02 mov a,$0251+x +1308: de bf 4c cbne $bf+x,$1357 +130b: f5 90 00 mov a,$0090+x +130e: 75 60 02 cmp a,$0260+x +1311: d0 05 bne $1318 +1313: f5 70 02 mov a,$0270+x +1316: 2f 0b bra $1323 +1318: bb 90 inc $90+x +131a: fd mov y,a +131b: f0 02 beq $131f +131d: f4 c0 mov a,$c0+x +131f: 60 clrc +1320: 95 61 02 adc a,$0261+x +1323: d4 c0 mov $c0+x,a +1325: f5 41 02 mov a,$0241+x +1328: 60 clrc +1329: 95 50 02 adc a,$0250+x +132c: d5 41 02 mov $0241+x,a +132f: c4 0d mov $0d,a +1331: 1c asl a +1332: 1c asl a +1333: 90 02 bcc $1337 +1335: 48 ff eor a,#$ff +1337: fd mov y,a +1338: f4 c0 mov a,$c0+x +133a: 68 f1 cmp a,#$f1 +133c: 90 05 bcc $1343 +133e: 28 0f and a,#$0f +1340: cf mul ya +1341: 2f 04 bra $1347 +1343: cf mul ya +1344: dd mov a,y +1345: 8d 00 mov y,#$00 +1347: f3 0d 06 bbc7 $0d,$1350 +134a: da 0f movw $0f,ya +134c: ba 09 movw ya,$09 +134e: 9a 0f subw ya,$0f +1350: 7a 0b addw ya,$0b +1352: da 0b movw $0b,ya +1354: 5f 08 08 jmp $0808 + +1357: bb bf inc $bf+x +1359: e3 0e f8 bbs7 $0e,$1354 +135c: 6f ret + +135d: f2 0e clr7 $0e +135f: f5 d1 01 mov a,$01d1+x +1362: fd mov y,a +1363: f5 d0 01 mov a,$01d0+x +1366: da 0b movw $0b,ya +1368: f4 a0 mov a,$a0+x +136a: f0 0a beq $1376 +136c: f5 e1 01 mov a,$01e1+x +136f: fd mov y,a +1370: f5 e0 01 mov a,$01e0+x +1373: 3f b2 13 call $13b2 +1376: f3 0e 03 bbc7 $0e,$137c +1379: 3f d2 11 call $11d2 +137c: f2 0e clr7 $0e +137e: f5 01 02 mov a,$0201+x +1381: c4 0c mov $0c,a +1383: f5 00 02 mov a,$0200+x +1386: c4 0b mov $0b,a +1388: f4 af mov a,$af+x +138a: f0 0e beq $139a +138c: f4 b0 mov a,$b0+x +138e: d0 0a bne $139a +1390: f5 11 02 mov a,$0211+x +1393: fd mov y,a +1394: f5 10 02 mov a,$0210+x +1397: 3f b2 13 call $13b2 +139a: f4 c0 mov a,$c0+x +139c: f0 bb beq $1359 +139e: f5 51 02 mov a,$0251+x +13a1: de bf b5 cbne $bf+x,$1359 +13a4: eb 39 mov y,$39 +13a6: f5 50 02 mov a,$0250+x +13a9: cf mul ya +13aa: dd mov a,y +13ab: 60 clrc +13ac: 95 41 02 adc a,$0241+x +13af: 5f 2f 13 jmp $132f + +13b2: e2 0e set7 $0e +13b4: cb 0d mov $0d,y +13b6: f3 0d 06 bbc7 $0d,$13bf +13b9: da 0f movw $0f,ya +13bb: ba 09 movw ya,$09 +13bd: 9a 0f subw ya,$0f +13bf: 6d push y +13c0: eb 39 mov y,$39 +13c2: cf mul ya +13c3: cb 0f mov $0f,y +13c5: 8f 00 10 mov $10,#$00 +13c8: eb 39 mov y,$39 +13ca: ae pop a +13cb: cf mul ya +13cc: 7a 0f addw ya,$0f +13ce: f3 0d 06 bbc7 $0d,$13d7 +13d1: da 0f movw $0f,ya +13d3: ba 09 movw ya,$09 +13d5: 9a 0f subw ya,$0f +13d7: 7a 0b addw ya,$0b +13d9: da 0b movw $0b,ya +13db: 6f ret + +13dc: e4 2b mov a,$2b +13de: 24 28 and a,$28 +13e0: f0 46 beq $1428 +13e2: f5 ac 08 mov a,$08ac+x +13e5: 08 08 or a,#$08 +13e7: c4 f2 mov $f2,a +13e9: e4 f3 mov a,$f3 +13eb: d0 3b bne $1428 +13ed: e4 2b mov a,$2b +13ef: 4e 56 00 tclr1 $0056 +13f2: 4e 57 00 tclr1 $0057 +13f5: 4e e8 00 tclr1 $00e8 +13f8: e8 00 mov a,#$00 +13fa: d5 81 02 mov $0281+x,a +13fd: d4 80 mov $80+x,a +13ff: d4 a0 mov $a0+x,a +1401: d4 9f mov $9f+x,a +1403: d4 8f mov $8f+x,a +1405: d5 80 02 mov $0280+x,a +1408: d4 d0 mov $d0+x,a +140a: d5 d0 01 mov $01d0+x,a +140d: 3f b8 0d call $0db8 +1410: d5 31 02 mov $0231+x,a +1413: d5 b0 00 mov $00b0+x,a +1416: 3f af 0c call $0caf +1419: e8 02 mov a,#$02 +141b: d4 7f mov $7f+x,a +141d: e8 0a mov a,#$0a +141f: d5 f1 01 mov $01f1+x,a +1422: d5 d1 01 mov $01d1+x,a +1425: 49 2b 28 eor ($28),($2b) +1428: 6f ret + +; echo FIR presets +1429: db $7f,$00,$00,$00,$00,$00,$00,$00 +1431: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c diff --git a/snes/NSPC/Betop/Ball Bullet Gun ($0B00).bin b/snes/NSPC/Betop/Ball Bullet Gun ($0B00).bin new file mode 100644 index 00000000..e38f58d9 Binary files /dev/null and b/snes/NSPC/Betop/Ball Bullet Gun ($0B00).bin differ diff --git a/snes/NSPC/Betop/Ball Bullet Gun.s b/snes/NSPC/Betop/Ball Bullet Gun.s new file mode 100644 index 00000000..1bc435f9 --- /dev/null +++ b/snes/NSPC/Betop/Ball Bullet Gun.s @@ -0,0 +1,3587 @@ +0b00: 20 clrp +0b01: cd cf mov x,#$cf +0b03: bd mov sp,x +0b04: e8 00 mov a,#$00 +0b06: 5d mov x,a +0b07: af mov (x)+,a +0b08: c8 f0 cmp x,#$f0 +0b0a: d0 fb bne $0b07 +0b0c: 8f 5c 00 mov $00,#$5c +0b0f: 8f 04 01 mov $01,#$04 +0b12: e8 00 mov a,#$00 +0b14: fd mov y,a +0b15: d7 00 mov ($00)+y,a +0b17: 78 ff 00 cmp $00,#$ff +0b1a: d0 07 bne $0b23 +0b1c: 78 0a 01 cmp $01,#$0a +0b1f: f0 07 beq $0b28 +0b21: ab 01 inc $01 +0b23: ab 00 inc $00 +0b25: 5f 15 0b jmp $0b15 + +0b28: cd 00 mov x,#$00 +0b2a: e8 ff mov a,#$ff +0b2c: d5 61 04 mov $0461+x,a +0b2f: d5 6d 04 mov $046d+x,a +0b32: 3d inc x +0b33: c8 0c cmp x,#$0c +0b35: 90 f5 bcc $0b2c +0b37: 3f 75 1c call $1c75 +0b3a: e8 00 mov a,#$00 +0b3c: bc inc a +0b3d: 3f 07 21 call $2107 +0b40: a2 37 set5 $37 +0b42: 8f 00 ce mov $ce,#$00 +0b45: 8f 26 cf mov $cf,#$26 +0b48: e8 00 mov a,#$00 +0b4a: c4 d3 mov $d3,a +0b4c: c4 d1 mov $d1,a +0b4e: e8 45 mov a,#$45 +0b50: c4 d4 mov $d4,a +0b52: c4 d2 mov $d2,a +0b54: e8 7f mov a,#$7f +0b56: 8d 0c mov y,#$0c +0b58: 3f 68 10 call $1068 +0b5b: 8d 1c mov y,#$1c +0b5d: 3f 68 10 call $1068 +0b60: e8 43 mov a,#$43 +0b62: 8d 5d mov y,#$5d +0b64: 3f 68 10 call $1068 +0b67: 8f f0 f1 mov $f1,#$f0 +0b6a: e8 20 mov a,#$20 +0b6c: c4 fa mov $fa,a +0b6e: c4 fb mov $fb,a +0b70: c4 d7 mov $d7,a +0b72: 8f 03 f1 mov $f1,#$03 +0b75: 8f 01 ee mov $ee,#$01 +0b78: 8d 0a mov y,#$0a +0b7a: ad 05 cmp y,#$05 +0b7c: f0 07 beq $0b85 +0b7e: b0 08 bcs $0b88 +0b80: 69 3c 3b cmp ($3b),($3c) +0b83: d0 14 bne $0b99 +0b85: e3 3b 11 bbs7 $3b,$0b99 +0b88: f6 63 25 mov a,$2563+y +0b8b: c4 f2 mov $f2,a +0b8d: f6 6d 25 mov a,$256d+y +0b90: 5d mov x,a +0b91: e5 b9 0a mov a,$0ab9 +0b94: 48 ff eor a,#$ff +0b96: 26 and a,(x) +0b97: c4 f3 mov $f3,a +0b99: fe df dbnz y,$0b7a +0b9b: 8d 00 mov y,#$00 +0b9d: cb 34 mov $34,y +0b9f: cb 35 mov $35,y +0ba1: eb fe mov y,$fe +0ba3: eb fd mov y,$fd +0ba5: f0 fc beq $0ba3 +0ba7: 6d push y +0ba8: e8 20 mov a,#$20 +0baa: cf mul ya +0bab: 60 clrc +0bac: 84 32 adc a,$32 +0bae: c4 32 mov $32,a +0bb0: 90 07 bcc $0bb9 +0bb2: 69 3c 3b cmp ($3b),($3c) +0bb5: f0 02 beq $0bb9 +0bb7: ab 3b inc $3b +0bb9: ee pop y +0bba: cc 60 04 mov $0460,y +0bbd: e4 d7 mov a,$d7 +0bbf: cf mul ya +0bc0: 60 clrc +0bc1: 85 5c 04 adc a,$045c +0bc4: c5 5c 04 mov $045c,a +0bc7: 90 06 bcc $0bcf +0bc9: 8f 00 cb mov $cb,#$00 +0bcc: 3f c6 10 call $10c6 +0bcf: e4 d9 mov a,$d9 +0bd1: ec 60 04 mov y,$0460 +0bd4: cf mul ya +0bd5: 60 clrc +0bd6: 85 5d 04 adc a,$045d +0bd9: c5 5d 04 mov $045d,a +0bdc: 90 06 bcc $0be4 +0bde: 8f 01 cb mov $cb,#$01 +0be1: 3f c6 10 call $10c6 +0be4: e4 db mov a,$db +0be6: ec 60 04 mov y,$0460 +0be9: cf mul ya +0bea: 60 clrc +0beb: 85 5e 04 adc a,$045e +0bee: c5 5e 04 mov $045e,a +0bf1: 90 06 bcc $0bf9 +0bf3: 8f 02 cb mov $cb,#$02 +0bf6: 3f c6 10 call $10c6 +0bf9: e4 dd mov a,$dd +0bfb: ec 60 04 mov y,$0460 +0bfe: cf mul ya +0bff: 60 clrc +0c00: 85 5f 04 adc a,$045f +0c03: c5 5f 04 mov $045f,a +0c06: 90 06 bcc $0c0e +0c08: 8f 03 cb mov $cb,#$03 +0c0b: 3f c6 10 call $10c6 +0c0e: e8 b0 mov a,#$b0 +0c10: ec 60 04 mov y,$0460 +0c13: cf mul ya +0c14: 60 clrc +0c15: 85 9e 0a adc a,$0a9e +0c18: c5 9e 0a mov $0a9e,a +0c1b: 90 03 bcc $0c20 +0c1d: 3f 72 0c call $0c72 +0c20: e4 ef mov a,$ef +0c22: f0 2d beq $0c51 +0c24: 5f 51 0c jmp $0c51 + +0c27: cd 00 mov x,#$00 +0c29: 8f 01 36 mov $36,#$01 +0c2c: f4 1a mov a,$1a+x +0c2e: f0 03 beq $0c33 +0c30: 3f 47 24 call $2447 +0c33: 3d inc x +0c34: 3d inc x +0c35: 0b 36 asl $36 +0c37: d0 f3 bne $0c2c +0c39: 8f 80 36 mov $36,#$80 +0c3c: f4 1a mov a,$1a+x +0c3e: f0 03 beq $0c43 +0c40: 3f 47 24 call $2447 +0c43: 3d inc x +0c44: 3d inc x +0c45: 4b 36 lsr $36 +0c47: e4 36 mov a,$36 +0c49: 68 08 cmp a,#$08 +0c4b: d0 ef bne $0c3c +0c4d: e8 00 mov a,#$00 +0c4f: c4 36 mov $36,a +0c51: 3f da 0d call $0dda +0c54: 3f 92 0e call $0e92 +0c57: e5 b7 0a mov a,$0ab7 +0c5a: 05 b8 0a or a,$0ab8 +0c5d: d0 10 bne $0c6f +0c5f: 3f 32 0d call $0d32 +0c62: e5 99 0a mov a,$0a99 +0c65: f0 08 beq $0c6f +0c67: 3f 39 16 call $1639 +0c6a: e8 00 mov a,#$00 +0c6c: c5 99 0a mov $0a99,a +0c6f: 5f 78 0b jmp $0b78 + +0c72: e5 a8 0a mov a,$0aa8 +0c75: 48 ff eor a,#$ff +0c77: 25 9f 0a and a,$0a9f +0c7a: c5 9f 0a mov $0a9f,a +0c7d: f0 4a beq $0cc9 +0c7f: 8f 00 02 mov $02,#$00 +0c82: 8d 00 mov y,#$00 +0c84: f6 a0 0a mov a,$0aa0+y +0c87: 60 clrc +0c88: 96 a4 0a adc a,$0aa4+y +0c8b: d6 a0 0a mov $0aa0+y,a +0c8e: b0 08 bcs $0c98 +0c90: fc inc y +0c91: ad 04 cmp y,#$04 +0c93: 90 ef bcc $0c84 +0c95: 5f c9 0c jmp $0cc9 + +0c98: e8 05 mov a,#$05 +0c9a: 60 clrc +0c9b: 96 c0 0a adc a,$0ac0+y +0c9e: d6 c0 0a mov $0ac0+y,a +0ca1: 68 64 cmp a,#$64 +0ca3: 90 eb bcc $0c90 +0ca5: e8 64 mov a,#$64 +0ca7: d6 c0 0a mov $0ac0+y,a +0caa: 6d push y +0cab: e8 fe mov a,#$fe +0cad: ad 00 cmp y,#$00 +0caf: f0 06 beq $0cb7 +0cb1: dc dec y +0cb2: 80 setc +0cb3: 1c asl a +0cb4: 5f ad 0c jmp $0cad + +0cb7: 25 9f 0a and a,$0a9f +0cba: c5 9f 0a mov $0a9f,a +0cbd: ee pop y +0cbe: e8 00 mov a,#$00 +0cc0: d6 a0 0a mov $0aa0+y,a +0cc3: d6 a4 0a mov $0aa4+y,a +0cc6: 5f 90 0c jmp $0c90 + +0cc9: e5 a8 0a mov a,$0aa8 +0ccc: d0 03 bne $0cd1 +0cce: 5f 29 0d jmp $0d29 + +0cd1: 8f 00 02 mov $02,#$00 +0cd4: 8d 00 mov y,#$00 +0cd6: f6 a9 0a mov a,$0aa9+y +0cd9: 60 clrc +0cda: 96 ad 0a adc a,$0aad+y +0cdd: d6 a9 0a mov $0aa9+y,a +0ce0: b0 08 bcs $0cea +0ce2: fc inc y +0ce3: ad 04 cmp y,#$04 +0ce5: 90 ef bcc $0cd6 +0ce7: 5f 29 0d jmp $0d29 + +0cea: f6 c0 0a mov a,$0ac0+y +0ced: 80 setc +0cee: a8 05 sbc a,#$05 +0cf0: b0 08 bcs $0cfa +0cf2: e8 00 mov a,#$00 +0cf4: d6 c0 0a mov $0ac0+y,a +0cf7: 5f 00 0d jmp $0d00 + +0cfa: d6 c0 0a mov $0ac0+y,a +0cfd: 5f e2 0c jmp $0ce2 + +0d00: 6d push y +0d01: e8 fe mov a,#$fe +0d03: ad 00 cmp y,#$00 +0d05: f0 06 beq $0d0d +0d07: dc dec y +0d08: 80 setc +0d09: 3c rol a +0d0a: 5f 03 0d jmp $0d03 + +0d0d: 2d push a +0d0e: 48 ff eor a,#$ff +0d10: 05 b1 0a or a,$0ab1 +0d13: c5 b1 0a mov $0ab1,a +0d16: ae pop a +0d17: 25 a8 0a and a,$0aa8 +0d1a: c5 a8 0a mov $0aa8,a +0d1d: ee pop y +0d1e: e8 00 mov a,#$00 +0d20: d6 a9 0a mov $0aa9+y,a +0d23: d6 ad 0a mov $0aad+y,a +0d26: 5f e2 0c jmp $0ce2 + +0d29: e5 b1 0a mov a,$0ab1 +0d2c: d0 01 bne $0d2f +0d2e: 6f ret + +0d2f: 5f 98 19 jmp $1998 + +0d32: 8f 87 0b mov $0b,#$87 +0d35: 8f 0a 0c mov $0c,#$0a +0d38: 8f 00 f4 mov $f4,#$00 +0d3b: 8f 00 f6 mov $f6,#$00 +0d3e: e4 f4 mov a,$f4 +0d40: 64 f4 cmp a,$f4 +0d42: d0 fa bne $0d3e +0d44: 68 00 cmp a,#$00 +0d46: d0 03 bne $0d4b +0d48: 5f c8 0d jmp $0dc8 + +0d4b: 68 02 cmp a,#$02 +0d4d: b0 14 bcs $0d63 +0d4f: c5 99 0a mov $0a99,a +0d52: e4 f5 mov a,$f5 +0d54: c5 87 0a mov $0a87,a +0d57: e4 f6 mov a,$f6 +0d59: c5 88 0a mov $0a88,a +0d5c: e4 f7 mov a,$f7 +0d5e: c5 89 0a mov $0a89,a +0d61: 2f 65 bra $0dc8 +0d63: 8f 01 f5 mov $f5,#$01 +0d66: c4 f4 mov $f4,a +0d68: c5 99 0a mov $0a99,a +0d6b: 5d mov x,a +0d6c: f5 c8 0d mov a,$0dc8+x +0d6f: c4 09 mov $09,a +0d71: f0 3c beq $0daf +0d73: e8 00 mov a,#$00 +0d75: c4 f7 mov $f7,a +0d77: c4 ca mov $ca,a +0d79: c4 08 mov $08,a +0d7b: 8d 00 mov y,#$00 +0d7d: f8 f6 mov x,$f6 +0d7f: 3e f6 cmp x,$f6 +0d81: d0 fa bne $0d7d +0d83: 3e ca cmp x,$ca +0d85: f0 f6 beq $0d7d +0d87: e4 f4 mov a,$f4 +0d89: 64 f4 cmp a,$f4 +0d8b: d0 fa bne $0d87 +0d8d: d8 f6 mov $f6,x +0d8f: d8 ca mov $ca,x +0d91: d7 0b mov ($0b)+y,a +0d93: 3a 0b incw $0b +0d95: 8b 09 dec $09 +0d97: d0 e4 bne $0d7d +0d99: e5 99 0a mov a,$0a99 +0d9c: 68 0b cmp a,#$0b +0d9e: d0 0f bne $0daf +0da0: e4 08 mov a,$08 +0da2: d0 0b bne $0daf +0da4: e5 88 0a mov a,$0a88 +0da7: 1c asl a +0da8: c4 09 mov $09,a +0daa: c4 08 mov $08,a +0dac: 5f 7d 0d jmp $0d7d + +0daf: e5 99 0a mov a,$0a99 +0db2: 68 06 cmp a,#$06 +0db4: f0 12 beq $0dc8 +0db6: 68 0a cmp a,#$0a +0db8: 90 04 bcc $0dbe +0dba: 68 0d cmp a,#$0d +0dbc: 90 0a bcc $0dc8 +0dbe: 8f 00 f5 mov $f5,#$00 +0dc1: e4 f5 mov a,$f5 +0dc3: d0 fc bne $0dc1 +0dc5: 8f 00 f4 mov $f4,#$00 +0dc8: 6f ret + +0dc9: db $02,$02,$02,$02,$02,$02,$01,$00 +0dd1: db $00,$01,$02,$0A,$02,$01,$00,$00 +0dd9: db $01 + +0dda: e5 b7 0a mov a,$0ab7 +0ddd: f0 5a beq $0e39 +0ddf: 3f 71 0e call $0e71 +0de2: fa fe 02 mov ($02),($fe) +0de5: 3f 9e 18 call $189e +0de8: f0 50 beq $0e3a +0dea: 8d 00 mov y,#$00 +0dec: 69 d0 02 cmp ($02),($d0) +0def: b0 48 bcs $0e39 +0df1: e4 fe mov a,$fe +0df3: f0 05 beq $0dfa +0df5: ab 02 inc $02 +0df7: 5f ec 0d jmp $0dec + +0dfa: f8 f6 mov x,$f6 +0dfc: 3e f6 cmp x,$f6 +0dfe: d0 fa bne $0dfa +0e00: 3e ca cmp x,$ca +0e02: f0 ed beq $0df1 +0e04: e4 f4 mov a,$f4 +0e06: d7 0b mov ($0b)+y,a +0e08: 3a 0b incw $0b +0e0a: e4 f5 mov a,$f5 +0e0c: d7 0b mov ($0b)+y,a +0e0e: 3a 0b incw $0b +0e10: d8 f6 mov $f6,x +0e12: d8 ca mov $ca,x +0e14: 69 cf 0c cmp ($0c),($cf) +0e17: 90 d8 bcc $0df1 +0e19: d0 05 bne $0e20 +0e1b: 69 ce 0b cmp ($0b),($ce) +0e1e: 90 d1 bcc $0df1 +0e20: cc b7 0a mov $0ab7,y +0e23: 8f 03 f7 mov $f7,#$03 +0e26: 8f 03 00 mov $00,#$03 +0e29: 8f 00 f4 mov $f4,#$00 +0e2c: 8f 00 f5 mov $f5,#$00 +0e2f: f8 f7 mov x,$f7 +0e31: 3e f7 cmp x,$f7 +0e33: d0 fa bne $0e2f +0e35: 3e 00 cmp x,$00 +0e37: d0 f6 bne $0e2f +0e39: 6f ret + +0e3a: 8d 00 mov y,#$00 +0e3c: f8 ca mov x,$ca +0e3e: 3e f6 cmp x,$f6 +0e40: f0 fc beq $0e3e +0e42: e4 f4 mov a,$f4 +0e44: d7 0b mov ($0b)+y,a +0e46: 3a 0b incw $0b +0e48: e4 f5 mov a,$f5 +0e4a: d7 0b mov ($0b)+y,a +0e4c: 3a 0b incw $0b +0e4e: 3d inc x +0e4f: d8 f6 mov $f6,x +0e51: 69 cf 0c cmp ($0c),($cf) +0e54: 90 e8 bcc $0e3e +0e56: d0 05 bne $0e5d +0e58: 69 ce 0b cmp ($0b),($ce) +0e5b: 90 e1 bcc $0e3e +0e5d: d8 ca mov $ca,x +0e5f: cc b7 0a mov $0ab7,y +0e62: 8f 03 f7 mov $f7,#$03 +0e65: 8f 03 00 mov $00,#$03 +0e68: 8f 00 f4 mov $f4,#$00 +0e6b: 8f 00 f5 mov $f5,#$00 +0e6e: 5f 2f 0e jmp $0e2f + +0e71: f8 d7 mov x,$d7 +0e73: 3e d9 cmp x,$d9 +0e75: b0 02 bcs $0e79 +0e77: f8 d9 mov x,$d9 +0e79: 3e db cmp x,$db +0e7b: b0 02 bcs $0e7f +0e7d: f8 db mov x,$db +0e7f: 3e dd cmp x,$dd +0e81: b0 02 bcs $0e85 +0e83: f8 dd mov x,$dd +0e85: c8 00 cmp x,#$00 +0e87: d0 01 bne $0e8a +0e89: 3d inc x +0e8a: e8 ff mov a,#$ff +0e8c: 8d 00 mov y,#$00 +0e8e: 9e div ya,x +0e8f: c4 d0 mov $d0,a +0e91: 6f ret + +0e92: e5 b8 0a mov a,$0ab8 +0e95: f0 53 beq $0eea +0e97: 3f 71 0e call $0e71 +0e9a: fa fe 02 mov ($02),($fe) +0e9d: 3f 9e 18 call $189e +0ea0: f0 49 beq $0eeb +0ea2: 8d 00 mov y,#$00 +0ea4: 69 d0 02 cmp ($02),($d0) +0ea7: b0 41 bcs $0eea +0ea9: e4 fe mov a,$fe +0eab: f0 05 beq $0eb2 +0ead: ab 02 inc $02 +0eaf: 5f a4 0e jmp $0ea4 + +0eb2: f8 f6 mov x,$f6 +0eb4: 3e f6 cmp x,$f6 +0eb6: d0 fa bne $0eb2 +0eb8: 3e ca cmp x,$ca +0eba: f0 ed beq $0ea9 +0ebc: e4 f4 mov a,$f4 +0ebe: d7 0b mov ($0b)+y,a +0ec0: 3a 0b incw $0b +0ec2: e4 f5 mov a,$f5 +0ec4: d7 0b mov ($0b)+y,a +0ec6: 3a 0b incw $0b +0ec8: d8 f6 mov $f6,x +0eca: d8 ca mov $ca,x +0ecc: 69 d4 0c cmp ($0c),($d4) +0ecf: 90 d8 bcc $0ea9 +0ed1: d0 05 bne $0ed8 +0ed3: 69 d3 0b cmp ($0b),($d3) +0ed6: 90 d1 bcc $0ea9 +0ed8: cc b8 0a mov $0ab8,y +0edb: 8f 03 f7 mov $f7,#$03 +0ede: 8f 03 00 mov $00,#$03 +0ee1: 8f 00 f4 mov $f4,#$00 +0ee4: 8f 00 f5 mov $f5,#$00 +0ee7: 5f 2f 0e jmp $0e2f + +0eea: 6f ret + +0eeb: 8d 00 mov y,#$00 +0eed: f8 ca mov x,$ca +0eef: 3e f6 cmp x,$f6 +0ef1: f0 fc beq $0eef +0ef3: e4 f4 mov a,$f4 +0ef5: d7 0b mov ($0b)+y,a +0ef7: 3a 0b incw $0b +0ef9: e4 f5 mov a,$f5 +0efb: d7 0b mov ($0b)+y,a +0efd: 3a 0b incw $0b +0eff: 3d inc x +0f00: d8 f6 mov $f6,x +0f02: 69 d4 0c cmp ($0c),($d4) +0f05: 90 e8 bcc $0eef +0f07: d0 05 bne $0f0e +0f09: 69 d3 0b cmp ($0b),($d3) +0f0c: 90 e1 bcc $0eef +0f0e: d8 ca mov $ca,x +0f10: cc b8 0a mov $0ab8,y +0f13: 8f 03 f7 mov $f7,#$03 +0f16: 8f 03 00 mov $00,#$03 +0f19: 8f 00 f4 mov $f4,#$00 +0f1c: 8f 00 f5 mov $f5,#$00 +0f1f: 5f 2f 0e jmp $0e2f + +0f22: 6f ret + +0f23: ad ca cmp y,#$ca +0f25: 90 1c bcc $0f43 +0f27: 2d push a +0f28: 7d mov a,x +0f29: 5c lsr a +0f2a: 68 04 cmp a,#$04 +0f2c: 90 10 bcc $0f3e +0f2e: 68 08 cmp a,#$08 +0f30: b0 0c bcs $0f3e +0f32: 48 07 eor a,#$07 +0f34: 60 clrc +0f35: 88 04 adc a,#$04 +0f37: fd mov y,a +0f38: f6 61 04 mov a,$0461+y +0f3b: ae pop a +0f3c: 10 03 bpl $0f41 +0f3e: 3f 63 1e call $1e63 +0f41: 8d a4 mov y,#$a4 +0f43: ad c8 cmp y,#$c8 +0f45: b0 db bcs $0f22 +0f47: e4 18 mov a,$18 +0f49: 24 36 and a,$36 +0f4b: d0 d5 bne $0f22 +0f4d: dd mov a,y +0f4e: 28 7f and a,#$7f +0f50: 60 clrc +0f51: 84 3e adc a,$3e +0f53: 60 clrc +0f54: 95 54 03 adc a,$0354+x +0f57: d5 fd 03 mov $03fd+x,a +0f5a: f5 2d 04 mov a,$042d+x +0f5d: d5 fc 03 mov $03fc+x,a +0f60: f5 f5 02 mov a,$02f5+x +0f63: 5c lsr a +0f64: e8 00 mov a,#$00 +0f66: 7c ror a +0f67: d5 dc 02 mov $02dc+x,a +0f6a: e8 00 mov a,#$00 +0f6c: d4 b2 mov $b2+x,a +0f6e: d5 0c 01 mov $010c+x,a +0f71: d5 24 03 mov $0324+x,a +0f74: d5 44 04 mov $0444+x,a +0f77: 09 36 45 or ($45),($36) +0f7a: 7d mov a,x +0f7b: 5c lsr a +0f7c: 68 04 cmp a,#$04 +0f7e: 90 0f bcc $0f8f +0f80: 68 08 cmp a,#$08 +0f82: b0 0b bcs $0f8f +0f84: 80 setc +0f85: a8 04 sbc a,#$04 +0f87: 48 03 eor a,#$03 +0f89: fd mov y,a +0f8a: f6 69 04 mov a,$0469+y +0f8d: 10 03 bpl $0f92 +0f8f: 09 36 34 or ($34),($36) +0f92: f5 ac 02 mov a,$02ac+x +0f95: d4 9a mov $9a+x,a +0f97: f0 1e beq $0fb7 +0f99: f5 ad 02 mov a,$02ad+x +0f9c: d4 9b mov $9b+x,a +0f9e: f5 c4 02 mov a,$02c4+x +0fa1: d0 0a bne $0fad +0fa3: f5 fd 03 mov a,$03fd+x +0fa6: 80 setc +0fa7: b5 c5 02 sbc a,$02c5+x +0faa: d5 fd 03 mov $03fd+x,a +0fad: f5 c5 02 mov a,$02c5+x +0fb0: 60 clrc +0fb1: 95 fd 03 adc a,$03fd+x +0fb4: 3f 6b 21 call $216b +0fb7: 3f 83 21 call $2183 +0fba: 8d 00 mov y,#$00 +0fbc: e4 11 mov a,$11 +0fbe: 80 setc +0fbf: a8 34 sbc a,#$34 +0fc1: b0 09 bcs $0fcc +0fc3: e4 11 mov a,$11 +0fc5: 80 setc +0fc6: a8 13 sbc a,#$13 +0fc8: b0 06 bcs $0fd0 +0fca: dc dec y +0fcb: 1c asl a +0fcc: 7a 10 addw ya,$10 +0fce: da 10 movw $10,ya +0fd0: 4d push x +0fd1: e4 11 mov a,$11 +0fd3: 1c asl a +0fd4: 8d 00 mov y,#$00 +0fd6: cd 18 mov x,#$18 +0fd8: 9e div ya,x +0fd9: 5d mov x,a +0fda: f6 79 25 mov a,$2579+y +0fdd: c4 15 mov $15,a +0fdf: f6 78 25 mov a,$2578+y +0fe2: c4 14 mov $14,a +0fe4: f6 7b 25 mov a,$257b+y +0fe7: 2d push a +0fe8: f6 7a 25 mov a,$257a+y +0feb: ee pop y +0fec: 9a 14 subw ya,$14 +0fee: eb 10 mov y,$10 +0ff0: cf mul ya +0ff1: dd mov a,y +0ff2: 8d 00 mov y,#$00 +0ff4: 7a 14 addw ya,$14 +0ff6: cb 15 mov $15,y +0ff8: 1c asl a +0ff9: 2b 15 rol $15 +0ffb: c4 14 mov $14,a +0ffd: 5f 04 10 jmp $1004 + +1000: 4b 15 lsr $15 +1002: 7c ror a +1003: 3d inc x +1004: c8 06 cmp x,#$06 +1006: d0 f8 bne $1000 +1008: c4 14 mov $14,a +100a: ce pop x +100b: f5 3c 02 mov a,$023c+x +100e: eb 15 mov y,$15 +1010: cf mul ya +1011: da 16 movw $16,ya +1013: f5 3c 02 mov a,$023c+x +1016: eb 14 mov y,$14 +1018: cf mul ya +1019: 6d push y +101a: f5 3d 02 mov a,$023d+x +101d: eb 14 mov y,$14 +101f: cf mul ya +1020: 7a 16 addw ya,$16 +1022: da 16 movw $16,ya +1024: f5 3d 02 mov a,$023d+x +1027: eb 15 mov y,$15 +1029: cf mul ya +102a: fd mov y,a +102b: ae pop a +102c: 7a 16 addw ya,$16 +102e: da 16 movw $16,ya +1030: 7d mov a,x +1031: 5c lsr a +1032: 68 08 cmp a,#$08 +1034: 90 0d bcc $1043 +1036: 80 setc +1037: a8 08 sbc a,#$08 +1039: 48 03 eor a,#$03 +103b: 60 clrc +103c: 88 04 adc a,#$04 +103e: 1c asl a +103f: 5d mov x,a +1040: 5f 52 10 jmp $1052 + +1043: 68 04 cmp a,#$04 +1045: 90 0b bcc $1052 +1047: 80 setc +1048: a8 04 sbc a,#$04 +104a: 48 03 eor a,#$03 +104c: fd mov y,a +104d: f6 69 04 mov a,$0469+y +1050: 10 1a bpl $106c +1052: 7d mov a,x +1053: 9f xcn a +1054: 5c lsr a +1055: 08 02 or a,#$02 +1057: fd mov y,a +1058: e4 16 mov a,$16 +105a: 3f 60 10 call $1060 +105d: fc inc y +105e: e4 17 mov a,$17 +1060: 2d push a +1061: e4 36 mov a,$36 +1063: 24 18 and a,$18 +1065: ae pop a +1066: d0 04 bne $106c +1068: cb f2 mov $f2,y +106a: c4 f3 mov $f3,a +106c: 6f ret + +106d: cd 16 mov x,#$16 +106f: 8f 0c 36 mov $36,#$0c +1072: e8 ff mov a,#$ff +1074: d5 6d 03 mov $036d+x,a +1077: e8 0a mov a,#$0a +1079: 3f e1 1e call $1ee1 +107c: d5 25 02 mov $0225+x,a +107f: d5 2d 04 mov $042d+x,a +1082: d5 54 03 mov $0354+x,a +1085: d5 ac 02 mov $02ac+x,a +1088: d4 b3 mov $b3+x,a +108a: d5 45 04 mov $0445+x,a +108d: 1d dec x +108e: 1d dec x +108f: 8b 36 dec $36 +1091: d0 df bne $1072 +1093: c4 41 mov $41,a +1095: c4 4f mov $4f,a +1097: c4 de mov $de,a +1099: c4 3e mov $3e,a +109b: c4 31 mov $31,a +109d: c4 46 mov $46,a +109f: 8f e0 40 mov $40,#$e0 +10a2: e8 20 mov a,#$20 +10a4: c4 d7 mov $d7,a +10a6: c5 9a 0a mov $0a9a,a +10a9: c4 d9 mov $d9,a +10ab: c5 9b 0a mov $0a9b,a +10ae: c4 db mov $db,a +10b0: c5 9c 0a mov $0a9c,a +10b3: c4 dd mov $dd,a +10b5: c5 9d 0a mov $0a9d,a +10b8: 6f ret + +10b9: c4 ef mov $ef,a +10bb: 8f 02 0d mov $0d,#$02 +10be: e4 18 mov a,$18 +10c0: 48 ff eor a,#$ff +10c2: 0e 35 00 tset1 $0035 +10c5: 6f ret + +10c6: eb 0a mov y,$0a +10c8: e4 ee mov a,$ee +10ca: c4 0a mov $0a,a +10cc: 7e ee cmp y,$ee +10ce: d0 e9 bne $10b9 +10d0: e4 0d mov a,$0d +10d2: f0 68 beq $113c +10d4: 6e 0d 96 dbnz $0d,$106d +10d7: f0 e0 beq $10b9 +10d9: cd 00 mov x,#$00 +10db: 8f 01 36 mov $36,#$01 +10de: f4 1a mov a,$1a+x +10e0: f0 1f beq $1101 +10e2: f5 25 02 mov a,$0225+x +10e5: d0 1a bne $1101 +10e7: 7d mov a,x +10e8: 5c lsr a +10e9: 68 04 cmp a,#$04 +10eb: 90 0f bcc $10fc +10ed: 68 08 cmp a,#$08 +10ef: b0 0b bcs $10fc +10f1: 48 07 eor a,#$07 +10f3: 60 clrc +10f4: 88 04 adc a,#$04 +10f6: fd mov y,a +10f7: f6 61 04 mov a,$0461+y +10fa: 10 10 bpl $110c +10fc: e8 00 mov a,#$00 +10fe: 3f 63 1e call $1e63 +1101: e8 00 mov a,#$00 +1103: d4 6a mov $6a+x,a +1105: d4 82 mov $82+x,a +1107: d4 83 mov $83+x,a +1109: bc inc a +110a: d4 52 mov $52+x,a +110c: 3d inc x +110d: 3d inc x +110e: 0b 36 asl $36 +1110: d0 cc bne $10de +1112: 8f 80 36 mov $36,#$80 +1115: f4 1a mov a,$1a+x +1117: f0 0a beq $1123 +1119: f5 25 02 mov a,$0225+x +111c: d0 05 bne $1123 +111e: e8 00 mov a,#$00 +1120: 3f 63 1e call $1e63 +1123: e8 00 mov a,#$00 +1125: d4 6a mov $6a+x,a +1127: d4 82 mov $82+x,a +1129: d4 83 mov $83+x,a +112b: bc inc a +112c: d4 52 mov $52+x,a +112e: 3d inc x +112f: 3d inc x +1130: 4b 36 lsr $36 +1132: e4 36 mov a,$36 +1134: 68 08 cmp a,#$08 +1136: d0 dd bne $1115 +1138: e8 00 mov a,#$00 +113a: c4 36 mov $36,a +113c: cd 00 mov x,#$00 +113e: d8 45 mov $45,x +1140: 8f 01 36 mov $36,#$01 +1143: 7d mov a,x +1144: 5c lsr a +1145: 5d mov x,a +1146: c8 0c cmp x,#$0c +1148: f0 18 beq $1162 +114a: f5 61 04 mov a,$0461+x +114d: 64 cb cmp a,$cb +114f: f0 1b beq $116c +1151: 3d inc x +1152: c8 08 cmp x,#$08 +1154: f0 09 beq $115f +1156: b0 05 bcs $115d +1158: 0b 36 asl $36 +115a: 5f 46 11 jmp $1146 + +115d: 4b 36 lsr $36 +115f: 5f 46 11 jmp $1146 +1162: e8 00 mov a,#$00 +1164: c4 36 mov $36,a +1166: 5f 8e 13 jmp $138e + +1169: 5f 7c 13 jmp $137c + +116c: 7d mov a,x +116d: 1c asl a +116e: 5d mov x,a +116f: d8 33 mov $33,x +1171: f4 1a mov a,$1a+x +1173: f0 f4 beq $1169 +1175: 9b 52 dec $52+x +1177: d0 50 bne $11c9 +1179: 3f 36 14 call $1436 +117c: f0 03 beq $1181 +117e: 5f 25 13 jmp $1325 + +1181: f4 6a mov a,$6a+x +1183: f0 03 beq $1188 +1185: 5f 11 13 jmp $1311 + +1188: 4d push x +1189: 3f cc 11 call $11cc +118c: ce pop x +118d: eb cb mov y,$cb +118f: fc inc y +1190: e8 00 mov a,#$00 +1192: 80 setc +1193: 3c rol a +1194: fe fd dbnz y,$1193 +1196: 48 ff eor a,#$ff +1198: 2d push a +1199: 25 9f 0a and a,$0a9f +119c: c5 9f 0a mov $0a9f,a +119f: ae pop a +11a0: 25 a8 0a and a,$0aa8 +11a3: c5 a8 0a mov $0aa8,a +11a6: 8d 00 mov y,#$00 +11a8: f6 61 04 mov a,$0461+y +11ab: 64 cb cmp a,$cb +11ad: f0 0f beq $11be +11af: fc inc y +11b0: ad 0c cmp y,#$0c +11b2: 90 f4 bcc $11a8 +11b4: 4d push x +11b5: eb cb mov y,$cb +11b7: 3f ff 1b call $1bff +11ba: ce pop x +11bb: 5f 7c 13 jmp $137c + +11be: 3f 05 12 call $1205 +11c1: e8 ff mov a,#$ff +11c3: d6 61 04 mov $0461+y,a +11c6: 5f af 11 jmp $11af + +11c9: 5f 76 13 jmp $1376 + +11cc: eb cb mov y,$cb +11ce: e8 00 mov a,#$00 +11d0: d6 cb 0a mov $0acb+y,a +11d3: d6 cf 0a mov $0acf+y,a +11d6: 8d 00 mov y,#$00 +11d8: f6 69 04 mov a,$0469+y +11db: 64 cb cmp a,$cb +11dd: f0 06 beq $11e5 +11df: fc inc y +11e0: ad 04 cmp y,#$04 +11e2: d0 f4 bne $11d8 +11e4: 6f ret + +11e5: f6 69 04 mov a,$0469+y +11e8: 2d push a +11e9: e8 ff mov a,#$ff +11eb: d6 69 04 mov $0469+y,a +11ee: dd mov a,y +11ef: 48 03 eor a,#$03 +11f1: 60 clrc +11f2: 88 04 adc a,#$04 +11f4: 1c asl a +11f5: 5d mov x,a +11f6: f5 25 02 mov a,$0225+x +11f9: 6d push y +11fa: 3f 63 1e call $1e63 +11fd: ee pop y +11fe: ae pop a +11ff: d6 69 04 mov $0469+y,a +1202: 5f df 11 jmp $11df + +1205: 6d push y +1206: dd mov a,y +1207: 1c asl a +1208: fd mov y,a +1209: e8 00 mov a,#$00 +120b: d6 19 00 mov $0019+y,a +120e: d6 1a 00 mov $001a+y,a +1211: e8 01 mov a,#$01 +1213: d6 52 00 mov $0052+y,a +1216: e8 00 mov a,#$00 +1218: d6 53 00 mov $0053+y,a +121b: d6 0c 02 mov $020c+y,a +121e: d6 0d 02 mov $020d+y,a +1221: d6 24 02 mov $0224+y,a +1224: d6 25 02 mov $0225+y,a +1227: d6 25 02 mov $0225+y,a +122a: d6 54 02 mov $0254+y,a +122d: d6 55 02 mov $0255+y,a +1230: d6 6c 02 mov $026c+y,a +1233: d6 6d 02 mov $026d+y,a +1236: d6 6a 00 mov $006a+y,a +1239: d6 82 00 mov $0082+y,a +123c: d6 6c 03 mov $036c+y,a +123f: d6 84 03 mov $0384+y,a +1242: d6 85 03 mov $0385+y,a +1245: d6 9c 03 mov $039c+y,a +1248: d6 9d 03 mov $039d+y,a +124b: d6 b4 03 mov $03b4+y,a +124e: d6 cc 03 mov $03cc+y,a +1251: d6 cd 03 mov $03cd+y,a +1254: d6 e4 03 mov $03e4+y,a +1257: d6 e5 03 mov $03e5+y,a +125a: d6 83 00 mov $0083+y,a +125d: d6 9a 00 mov $009a+y,a +1260: d6 9b 00 mov $009b+y,a +1263: d6 fc 03 mov $03fc+y,a +1266: d6 fd 03 mov $03fd+y,a +1269: d6 14 04 mov $0414+y,a +126c: d6 15 04 mov $0415+y,a +126f: d6 2c 04 mov $042c+y,a +1272: d6 b3 00 mov $00b3+y,a +1275: d6 0d 03 mov $030d+y,a +1278: d6 f5 02 mov $02f5+y,a +127b: d6 54 03 mov $0354+y,a +127e: d6 45 04 mov $0445+y,a +1281: d6 2d 04 mov $042d+y,a +1284: d6 ac 02 mov $02ac+y,a +1287: d6 ad 02 mov $02ad+y,a +128a: d6 c4 02 mov $02c4+y,a +128d: d6 c5 02 mov $02c5+y,a +1290: e8 ff mov a,#$ff +1292: d6 6d 03 mov $036d+y,a +1295: e8 0a mov a,#$0a +1297: d6 b5 03 mov $03b5+y,a +129a: d6 e5 03 mov $03e5+y,a +129d: ee pop y +129e: e8 00 mov a,#$00 +12a0: d6 27 0a mov $0a27+y,a +12a3: d6 33 0a mov $0a33+y,a +12a6: 6d push y +12a7: e8 03 mov a,#$03 +12a9: cf mul ya +12aa: fd mov y,a +12ab: e8 00 mov a,#$00 +12ad: d6 03 0a mov $0a03+y,a +12b0: d6 04 0a mov $0a04+y,a +12b3: d6 05 0a mov $0a05+y,a +12b6: dd mov a,y +12b7: 1c asl a +12b8: fd mov y,a +12b9: e8 00 mov a,#$00 +12bb: d6 bb 09 mov $09bb+y,a +12be: d6 bc 09 mov $09bc+y,a +12c1: d6 bd 09 mov $09bd+y,a +12c4: d6 be 09 mov $09be+y,a +12c7: d6 bf 09 mov $09bf+y,a +12ca: d6 c0 09 mov $09c0+y,a +12cd: d6 3f 0a mov $0a3f+y,a +12d0: d6 40 0a mov $0a40+y,a +12d3: d6 41 0a mov $0a41+y,a +12d6: d6 42 0a mov $0a42+y,a +12d9: d6 43 0a mov $0a43+y,a +12dc: d6 44 0a mov $0a44+y,a +12df: 8f e0 40 mov $40,#$e0 +12e2: ee pop y +12e3: 6d push y +12e4: 8f 00 00 mov $00,#$00 +12e7: ad 08 cmp y,#$08 +12e9: 90 0d bcc $12f8 +12eb: 8f 01 00 mov $00,#$01 +12ee: dd mov a,y +12ef: 80 setc +12f0: a8 08 sbc a,#$08 +12f2: 48 03 eor a,#$03 +12f4: 60 clrc +12f5: 88 04 adc a,#$04 +12f7: fd mov y,a +12f8: e8 00 mov a,#$00 +12fa: fc inc y +12fb: 80 setc +12fc: 3c rol a +12fd: fe fd dbnz y,$12fc +12ff: 48 ff eor a,#$ff +1301: 24 39 and a,$39 +1303: 78 00 00 cmp $00,#$00 +1306: f0 02 beq $130a +1308: 04 d5 or a,$d5 +130a: c4 39 mov $39,a +130c: ee pop y +130d: 6f ret + +130e: 5f 79 11 jmp $1179 + +1311: 3f f4 1f call $1ff4 +1314: 9b 6a dec $6a+x +1316: d0 f6 bne $130e +1318: f5 54 02 mov a,$0254+x +131b: d4 19 mov $19+x,a +131d: f5 55 02 mov a,$0255+x +1320: d4 1a mov $1a+x,a +1322: 5f 0e 13 jmp $130e + +1325: 30 2b bmi $1352 +1327: 68 64 cmp a,#$64 +1329: 90 09 bcc $1334 +132b: 3f 40 14 call $1440 +132e: 5f 79 11 jmp $1179 + +1331: 5f 81 11 jmp $1181 + +1334: d5 0c 02 mov $020c+x,a +1337: 3f 36 14 call $1436 +133a: f0 f5 beq $1331 +133c: 30 14 bmi $1352 +133e: 68 64 cmp a,#$64 +1340: 90 06 bcc $1348 +1342: 3f 40 14 call $1440 +1345: 5f 37 13 jmp $1337 + +1348: 60 clrc +1349: 95 0c 02 adc a,$020c+x +134c: d5 0c 02 mov $020c+x,a +134f: 5f 37 13 jmp $1337 + +1352: 68 e0 cmp a,#$e0 +1354: 90 08 bcc $135e +1356: 4d push x +1357: 3f 24 14 call $1424 +135a: ce pop x +135b: 5f 79 11 jmp $1179 + +135e: 4d push x +135f: 3f 23 0f call $0f23 +1362: ce pop x +1363: f5 0c 02 mov a,$020c+x +1366: d4 52 mov $52+x,a +1368: fd mov y,a +1369: f5 0d 02 mov a,$020d+x +136c: cf mul ya +136d: dd mov a,y +136e: d0 01 bne $1371 +1370: bc inc a +1371: d4 53 mov $53+x,a +1373: 5f 79 13 jmp $1379 + +1376: 3f 2b 23 call $232b +1379: 3f 4b 21 call $214b +137c: 3d inc x +137d: 3d inc x +137e: c8 10 cmp x,#$10 +1380: f0 09 beq $138b +1382: b0 05 bcs $1389 +1384: 0b 36 asl $36 +1386: 5f 43 11 jmp $1143 + +1389: 4b 36 lsr $36 +138b: 5f 43 11 jmp $1143 + +138e: f8 cb mov x,$cb +1390: f4 de mov a,$de+x +1392: f0 24 beq $13b8 +1394: f4 e7 mov a,$e7+x +1396: fd mov y,a +1397: f4 e6 mov a,$e6+x +1399: 60 clrc +139a: 94 d6 adc a,$d6+x +139c: 2d push a +139d: dd mov a,y +139e: 94 d7 adc a,$d7+x +13a0: fd mov y,a +13a1: f4 de mov a,$de+x +13a3: c4 00 mov $00,a +13a5: 8b 00 dec $00 +13a7: e4 00 mov a,$00 +13a9: d4 de mov $de+x,a +13ab: ae pop a +13ac: d0 05 bne $13b3 +13ae: f4 df mov a,$df+x +13b0: fd mov y,a +13b1: f4 de mov a,$de+x +13b3: d4 d6 mov $d6+x,a +13b5: dd mov a,y +13b6: d4 d7 mov $d7+x,a +13b8: e4 4f mov a,$4f +13ba: f0 15 beq $13d1 +13bc: ba 4b movw ya,$4b +13be: 7a 47 addw ya,$47 +13c0: da 47 movw $47,ya +13c2: ba 4d movw ya,$4d +13c4: 7a 49 addw ya,$49 +13c6: 6e 4f 06 dbnz $4f,$13cf +13c9: ba 4f movw ya,$4f +13cb: da 47 movw $47,ya +13cd: eb 51 mov y,$51 +13cf: da 49 movw $49,ya +13d1: e4 41 mov a,$41 +13d3: f0 0e beq $13e3 +13d5: ba 43 movw ya,$43 +13d7: 7a 3f addw ya,$3f +13d9: 6e 41 02 dbnz $41,$13de +13dc: ba 41 movw ya,$41 +13de: da 3f movw $3f,ya +13e0: 8f ff 45 mov $45,#$ff +13e3: cd 00 mov x,#$00 +13e5: 8f 01 36 mov $36,#$01 +13e8: 7d mov a,x +13e9: 5c lsr a +13ea: fd mov y,a +13eb: f6 61 04 mov a,$0461+y +13ee: 64 cb cmp a,$cb +13f0: d0 07 bne $13f9 +13f2: f4 1a mov a,$1a+x +13f4: f0 03 beq $13f9 +13f6: 3f fe 21 call $21fe +13f9: 3d inc x +13fa: 3d inc x +13fb: 0b 36 asl $36 +13fd: d0 e9 bne $13e8 +13ff: 8f 80 36 mov $36,#$80 +1402: 7d mov a,x +1403: 5c lsr a +1404: fd mov y,a +1405: f6 61 04 mov a,$0461+y +1408: 64 cb cmp a,$cb +140a: d0 09 bne $1415 +140c: f4 1a mov a,$1a+x +140e: f0 05 beq $1415 +1410: 4d push x +1411: 3f fe 21 call $21fe +1414: ce pop x +1415: 3d inc x +1416: 3d inc x +1417: 4b 36 lsr $36 +1419: e4 36 mov a,$36 +141b: 68 08 cmp a,#$08 +141d: d0 e3 bne $1402 +141f: e8 00 mov a,#$00 +1421: c4 36 mov $36,a +1423: 6f ret + +; dispatch vcmd in A (e0-ff) +1424: 1c asl a +1425: fd mov y,a +1426: f6 eb 20 mov a,$20eb+y +1429: 2d push a +142a: f6 ea 20 mov a,$20ea+y +142d: 2d push a +142e: dd mov a,y +142f: 5c lsr a +1430: fd mov y,a +1431: f6 82 21 mov a,$2182+y +1434: f0 08 beq $143e +1436: e7 19 mov a,($19+x) +1438: bb 19 inc $19+x +143a: d0 02 bne $143e +143c: bb 1a inc $1a+x +143e: fd mov y,a +143f: 6f ret + +1440: 80 setc +1441: a8 64 sbc a,#$64 +1443: 1c asl a +1444: fd mov y,a +1445: f6 4f 14 mov a,$144f+y +1448: 2d push a +1449: f6 4e 14 mov a,$144e+y +144c: 2d push a +144d: 6f ret + +144e: dw $145a +1450: dw $1499 +1452: dw $151f +1454: dw $1566 +1456: dw $15c6 +1458: dw $1628 + +; load song +145a: eb cb mov y,$cb +145c: f6 91 04 mov a,$0491+y +145f: 8f 95 02 mov $02,#$95 +1462: 8f 04 03 mov $03,#$04 +1465: 8d 00 mov y,#$00 +1467: 77 02 cmp a,($02)+y +1469: f0 0a beq $1475 +146b: 60 clrc +146c: 98 11 02 adc $02,#$11 +146f: 98 00 03 adc $03,#$00 +1472: 5f 67 14 jmp $1467 + +1475: fc inc y +1476: f7 02 mov a,($02)+y +1478: c4 00 mov $00,a +147a: fc inc y +147b: f7 02 mov a,($02)+y +147d: c4 01 mov $01,a +147f: 3f 36 14 call $1436 +1482: 60 clrc +1483: 84 00 adc a,$00 +1485: c4 00 mov $00,a +1487: 0d push psw +1488: 3f 36 14 call $1436 +148b: 8e pop psw +148c: 84 01 adc a,$01 +148e: c4 01 mov $01,a +1490: e4 00 mov a,$00 +1492: d4 19 mov $19+x,a +1494: e4 01 mov a,$01 +1496: d4 1a mov $1a+x,a +1498: 6f ret + +1499: e8 33 mov a,#$33 +149b: c4 00 mov $00,a +149d: e8 0a mov a,#$0a +149f: c4 01 mov $01,a +14a1: 7d mov a,x +14a2: 5c lsr a +14a3: fd mov y,a +14a4: f7 00 mov a,($00)+y +14a6: 68 03 cmp a,#$03 +14a8: b0 72 bcs $151c +14aa: 2d push a +14ab: 60 clrc +14ac: 88 01 adc a,#$01 +14ae: d7 00 mov ($00)+y,a +14b0: e8 03 mov a,#$03 +14b2: cf mul ya +14b3: c4 00 mov $00,a +14b5: ae pop a +14b6: 60 clrc +14b7: 84 00 adc a,$00 +14b9: 1c asl a +14ba: 2d push a +14bb: e8 3f mov a,#$3f +14bd: c4 00 mov $00,a +14bf: e8 0a mov a,#$0a +14c1: c4 01 mov $01,a +14c3: ae pop a +14c4: 60 clrc +14c5: 84 00 adc a,$00 +14c7: c4 02 mov $02,a +14c9: 98 00 01 adc $01,#$00 +14cc: e4 01 mov a,$01 +14ce: c4 03 mov $03,a +14d0: eb cb mov y,$cb +14d2: f6 91 04 mov a,$0491+y +14d5: 8f 95 00 mov $00,#$95 +14d8: 8f 04 01 mov $01,#$04 +14db: 8d 00 mov y,#$00 +14dd: 77 00 cmp a,($00)+y +14df: f0 0a beq $14eb +14e1: 60 clrc +14e2: 98 11 00 adc $00,#$11 +14e5: 98 00 01 adc $01,#$00 +14e8: 5f dd 14 jmp $14dd + +14eb: fc inc y +14ec: f7 00 mov a,($00)+y +14ee: 2d push a +14ef: fc inc y +14f0: f7 00 mov a,($00)+y +14f2: c4 01 mov $01,a +14f4: ae pop a +14f5: c4 00 mov $00,a +14f7: 3f 36 14 call $1436 +14fa: 60 clrc +14fb: 84 00 adc a,$00 +14fd: c4 00 mov $00,a +14ff: 0d push psw +1500: 3f 36 14 call $1436 +1503: 8e pop psw +1504: 84 01 adc a,$01 +1506: c4 01 mov $01,a +1508: f4 19 mov a,$19+x +150a: 8d 00 mov y,#$00 +150c: d7 02 mov ($02)+y,a +150e: f4 1a mov a,$1a+x +1510: fc inc y +1511: d7 02 mov ($02)+y,a +1513: e4 00 mov a,$00 +1515: d4 19 mov $19+x,a +1517: e4 01 mov a,$01 +1519: d4 1a mov $1a+x,a +151b: 6f ret + +151c: 5f 1c 15 jmp $151c + +151f: e8 33 mov a,#$33 +1521: c4 02 mov $02,a +1523: e8 0a mov a,#$0a +1525: c4 03 mov $03,a +1527: 7d mov a,x +1528: 5c lsr a +1529: fd mov y,a +152a: f7 02 mov a,($02)+y +152c: f0 35 beq $1563 +152e: 9c dec a +152f: 2d push a +1530: e8 03 mov a,#$03 +1532: cf mul ya +1533: c4 00 mov $00,a +1535: ae pop a +1536: 2d push a +1537: 60 clrc +1538: 84 00 adc a,$00 +153a: fd mov y,a +153b: ae pop a +153c: 6d push y +153d: 2d push a +153e: 7d mov a,x +153f: 5c lsr a +1540: fd mov y,a +1541: ae pop a +1542: d7 02 mov ($02)+y,a +1544: ee pop y +1545: e8 3f mov a,#$3f +1547: c4 00 mov $00,a +1549: e8 0a mov a,#$0a +154b: c4 01 mov $01,a +154d: dd mov a,y +154e: 1c asl a +154f: 60 clrc +1550: 84 00 adc a,$00 +1552: c4 00 mov $00,a +1554: 98 00 01 adc $01,#$00 +1557: 8d 00 mov y,#$00 +1559: f7 00 mov a,($00)+y +155b: d4 19 mov $19+x,a +155d: fc inc y +155e: f7 00 mov a,($00)+y +1560: d4 1a mov $1a+x,a +1562: 6f ret + +1563: 5f 63 15 jmp $1563 + +1566: e8 27 mov a,#$27 +1568: c4 00 mov $00,a +156a: e8 0a mov a,#$0a +156c: c4 01 mov $01,a +156e: 7d mov a,x +156f: 5c lsr a +1570: fd mov y,a +1571: f7 00 mov a,($00)+y +1573: 68 03 cmp a,#$03 +1575: b0 4c bcs $15c3 +1577: 2d push a +1578: 60 clrc +1579: 88 01 adc a,#$01 +157b: d7 00 mov ($00)+y,a +157d: e8 03 mov a,#$03 +157f: cf mul ya +1580: c4 00 mov $00,a +1582: ae pop a +1583: 60 clrc +1584: 84 00 adc a,$00 +1586: fd mov y,a +1587: 6d push y +1588: 3f 36 14 call $1436 +158b: ee pop y +158c: 2d push a +158d: e8 03 mov a,#$03 +158f: c4 00 mov $00,a +1591: e8 0a mov a,#$0a +1593: c4 01 mov $01,a +1595: dd mov a,y +1596: 60 clrc +1597: 84 00 adc a,$00 +1599: c4 00 mov $00,a +159b: 98 00 01 adc $01,#$00 +159e: ae pop a +159f: 6d push y +15a0: 8d 00 mov y,#$00 +15a2: d7 00 mov ($00)+y,a +15a4: ee pop y +15a5: e8 bb mov a,#$bb +15a7: c4 00 mov $00,a +15a9: e8 09 mov a,#$09 +15ab: c4 01 mov $01,a +15ad: dd mov a,y +15ae: 1c asl a +15af: 60 clrc +15b0: 84 00 adc a,$00 +15b2: c4 00 mov $00,a +15b4: 98 00 01 adc $01,#$00 +15b7: f4 19 mov a,$19+x +15b9: 8d 00 mov y,#$00 +15bb: d7 00 mov ($00)+y,a +15bd: f4 1a mov a,$1a+x +15bf: fc inc y +15c0: d7 00 mov ($00)+y,a +15c2: 6f ret + +15c3: 5f c3 15 jmp $15c3 + +15c6: e8 27 mov a,#$27 +15c8: c4 02 mov $02,a +15ca: e8 0a mov a,#$0a +15cc: c4 03 mov $03,a +15ce: 7d mov a,x +15cf: 5c lsr a +15d0: fd mov y,a +15d1: f7 02 mov a,($02)+y +15d3: f0 50 beq $1625 +15d5: 9c dec a +15d6: 2d push a +15d7: e8 03 mov a,#$03 +15d9: cf mul ya +15da: c4 00 mov $00,a +15dc: ae pop a +15dd: 2d push a +15de: 60 clrc +15df: 84 00 adc a,$00 +15e1: fd mov y,a +15e2: e8 03 mov a,#$03 +15e4: c4 00 mov $00,a +15e6: e8 0a mov a,#$0a +15e8: c4 01 mov $01,a +15ea: dd mov a,y +15eb: 60 clrc +15ec: 84 00 adc a,$00 +15ee: c4 00 mov $00,a +15f0: 98 00 01 adc $01,#$00 +15f3: 6d push y +15f4: 8d 00 mov y,#$00 +15f6: f7 00 mov a,($00)+y +15f8: 9c dec a +15f9: d7 00 mov ($00)+y,a +15fb: ee pop y +15fc: ae pop a +15fd: d0 08 bne $1607 +15ff: 2d push a +1600: 7d mov a,x +1601: 5c lsr a +1602: fd mov y,a +1603: ae pop a +1604: d7 02 mov ($02)+y,a +1606: 6f ret + +1607: e8 bb mov a,#$bb +1609: c4 00 mov $00,a +160b: e8 09 mov a,#$09 +160d: c4 01 mov $01,a +160f: dd mov a,y +1610: 1c asl a +1611: 60 clrc +1612: 84 00 adc a,$00 +1614: c4 00 mov $00,a +1616: 98 00 01 adc $01,#$00 +1619: 8d 00 mov y,#$00 +161b: f7 00 mov a,($00)+y +161d: d4 19 mov $19+x,a +161f: fc inc y +1620: f7 00 mov a,($00)+y +1622: d4 1a mov $1a+x,a +1624: 6f ret + +1625: 5f 25 16 jmp $1625 + +1628: eb cb mov y,$cb +162a: f6 ba 0a mov a,$0aba+y +162d: f0 03 beq $1632 +162f: 5f 5c 14 jmp $145c + +1632: 3f 36 14 call $1436 +1635: 3f 36 14 call $1436 +1638: 6f ret + +1639: e5 99 0a mov a,$0a99 +163c: 1c asl a +163d: 5d mov x,a +163e: 1f 3f 16 jmp ($163f+x) + +1641: 63 16 28 bbs3 $16,$166c +1644: 19 or (x),(y) +1645: 8d 1a mov y,#$1a +1647: f2 1a clr7 $1a +1649: 61 tcall 6 +164a: 1b f2 asl $f2+x +164c: 1b ff asl $ff+x +164e: 1b 32 asl $32+x +1650: 1c asl a +1651: 69 1c 95 cmp ($95),($1c) +1654: 1c asl a +1655: bf mov a,(x)+ +1656: 1c asl a +1657: 27 1d and a,($1d+x) +1659: a1 tcall 10 +165a: 1d dec x +165b: bd mov sp,x +165c: 1d dec x +165d: d8 1d mov $1d,x +165f: 09 1e 46 or ($46),($1e) +1662: 1e e5 87 cmp x,$87e5 +1665: 0a 65 c9 or1 c,$0965,6 +1668: 0a f0 04 or1 c,$04f0,0 +166b: e8 00 mov a,#$00 +166d: 2f 0d bra $167c +166f: e5 88 0a mov a,$0a88 +1672: 28 80 and a,#$80 +1674: 65 ca 0a cmp a,$0aca +1677: d0 03 bne $167c +1679: 5f 61 18 jmp $1861 + +167c: c5 ca 0a mov $0aca,a +167f: e5 87 0a mov a,$0a87 +1682: c5 c9 0a mov $0ac9,a +1685: c4 00 mov $00,a +1687: 8d 00 mov y,#$00 +1689: cd 00 mov x,#$00 +168b: 8f 95 04 mov $04,#$95 +168e: 8f 04 05 mov $05,#$04 +1691: 77 04 cmp a,($04)+y +1693: f0 0f beq $16a4 +1695: 60 clrc +1696: 98 11 04 adc $04,#$11 +1699: 98 00 05 adc $05,#$00 +169c: 3d inc x +169d: c8 46 cmp x,#$46 +169f: 90 f0 bcc $1691 +16a1: 5f 61 18 jmp $1861 + +16a4: cd 00 mov x,#$00 +16a6: 8d 00 mov y,#$00 +16a8: ad 04 cmp y,#$04 +16aa: f0 0d beq $16b9 +16ac: f6 91 04 mov a,$0491+y +16af: fc inc y +16b0: 64 00 cmp a,$00 +16b2: d0 f4 bne $16a8 +16b4: 3d inc x +16b5: cb 02 mov $02,y +16b7: 2f ef bra $16a8 +16b9: e5 89 0a mov a,$0a89 +16bc: 28 0f and a,#$0f +16be: c4 01 mov $01,a +16c0: 3e 01 cmp x,$01 +16c2: 90 12 bcc $16d6 +16c4: eb 02 mov y,$02 +16c6: dc dec y +16c7: f6 b6 18 mov a,$18b6+y +16ca: c5 b1 0a mov $0ab1,a +16cd: f8 00 mov x,$00 +16cf: 4d push x +16d0: 3f 98 19 call $1998 +16d3: ce pop x +16d4: d8 00 mov $00,x +16d6: cd 00 mov x,#$00 +16d8: 8d 02 mov y,#$02 +16da: f7 04 mov a,($04)+y +16dc: f0 0a beq $16e8 +16de: 3d inc x +16df: c8 08 cmp x,#$08 +16e1: b0 05 bcs $16e8 +16e3: fc inc y +16e4: fc inc y +16e5: 5f da 16 jmp $16da + +16e8: d8 01 mov $01,x +16ea: 78 29 00 cmp $00,#$29 +16ed: b0 0c bcs $16fb +16ef: 8d 00 mov y,#$00 +16f1: f6 6d 04 mov a,$046d+y +16f4: 68 ff cmp a,#$ff +16f6: f0 23 beq $171b +16f8: 5f 61 18 jmp $1861 + +16fb: 8d 08 mov y,#$08 +16fd: cd 00 mov x,#$00 +16ff: f6 6d 04 mov a,$046d+y +1702: 68 ff cmp a,#$ff +1704: d0 01 bne $1707 +1706: 3d inc x +1707: fc inc y +1708: ad 0c cmp y,#$0c +170a: 90 f3 bcc $16ff +170c: 3e 01 cmp x,$01 +170e: b0 0b bcs $171b +1710: d8 02 mov $02,x +1712: fa 01 03 mov ($03),($01) +1715: 80 setc +1716: a9 02 03 sbc ($03),($02) +1719: 2f 0f bra $172a +171b: 8d 00 mov y,#$00 +171d: f6 91 04 mov a,$0491+y +1720: f0 37 beq $1759 +1722: fc inc y +1723: ad 04 cmp y,#$04 +1725: 90 f6 bcc $171d +1727: 8f 00 03 mov $03,#$00 +172a: e5 89 0a mov a,$0a89 +172d: 5c lsr a +172e: 5c lsr a +172f: 5c lsr a +1730: 5c lsr a +1731: c4 02 mov $02,a +1733: 3f ba 18 call $18ba +1736: b0 03 bcs $173b +1738: 5f 61 18 jmp $1861 + +173b: f8 00 mov x,$00 +173d: 4d push x +173e: f8 01 mov x,$01 +1740: 4d push x +1741: c5 b1 0a mov $0ab1,a +1744: 3f 98 19 call $1998 +1747: ce pop x +1748: d8 01 mov $01,x +174a: ce pop x +174b: d8 00 mov $00,x +174d: 8d 00 mov y,#$00 +174f: f6 91 04 mov a,$0491+y +1752: f0 05 beq $1759 +1754: fc inc y +1755: ad 03 cmp y,#$03 +1757: 90 f6 bcc $174f +1759: e5 89 0a mov a,$0a89 +175c: 5c lsr a +175d: 5c lsr a +175e: 5c lsr a +175f: 5c lsr a +1760: c4 02 mov $02,a +1762: e4 00 mov a,$00 +1764: d6 91 04 mov $0491+y,a +1767: e4 02 mov a,$02 +1769: d6 cb 0a mov $0acb+y,a +176c: e4 01 mov a,$01 +176e: d6 cf 0a mov $0acf+y,a +1771: cb 02 mov $02,y +1773: 78 29 00 cmp $00,#$29 +1776: b0 0e bcs $1786 +1778: cd 00 mov x,#$00 +177a: dd mov a,y +177b: d5 6d 04 mov $046d+x,a +177e: 3d inc x +177f: c8 08 cmp x,#$08 +1781: d0 f8 bne $177b +1783: 5f 9b 17 jmp $179b + +1786: cd 08 mov x,#$08 +1788: f5 6d 04 mov a,$046d+x +178b: 68 ff cmp a,#$ff +178d: d0 08 bne $1797 +178f: dd mov a,y +1790: d5 6d 04 mov $046d+x,a +1793: 8b 01 dec $01 +1795: f0 04 beq $179b +1797: 3d inc x +1798: 5f 88 17 jmp $1788 + +179b: 78 29 00 cmp $00,#$29 +179e: b0 21 bcs $17c1 +17a0: cb 00 mov $00,y +17a2: 8d 01 mov y,#$01 +17a4: cd 00 mov x,#$00 +17a6: e4 00 mov a,$00 +17a8: 4d push x +17a9: 7d mov a,x +17aa: 1c asl a +17ab: 5d mov x,a +17ac: f7 04 mov a,($04)+y +17ae: d5 79 04 mov $0479+x,a +17b1: fc inc y +17b2: f7 04 mov a,($04)+y +17b4: d5 7a 04 mov $047a+x,a +17b7: fc inc y +17b8: ce pop x +17b9: 3d inc x +17ba: c8 08 cmp x,#$08 +17bc: 90 e8 bcc $17a6 +17be: 5f ec 17 jmp $17ec + +17c1: cb 00 mov $00,y +17c3: 8d 01 mov y,#$01 +17c5: cd 08 mov x,#$08 +17c7: e4 00 mov a,$00 +17c9: 75 6d 04 cmp a,$046d+x +17cc: f0 08 beq $17d6 +17ce: 3d inc x +17cf: c8 0c cmp x,#$0c +17d1: b0 19 bcs $17ec +17d3: 5f c7 17 jmp $17c7 + +17d6: 4d push x +17d7: 7d mov a,x +17d8: 1c asl a +17d9: 5d mov x,a +17da: f7 04 mov a,($04)+y +17dc: d5 79 04 mov $0479+x,a +17df: fc inc y +17e0: f7 04 mov a,($04)+y +17e2: d5 7a 04 mov $047a+x,a +17e5: fc inc y +17e6: ce pop x +17e7: 3d inc x +17e8: c8 0c cmp x,#$0c +17ea: 90 db bcc $17c7 +17ec: f8 02 mov x,$02 +17ee: e8 00 mov a,#$00 +17f0: d5 ba 0a mov $0aba+x,a +17f3: f5 b6 18 mov a,$18b6+x +17f6: c4 02 mov $02,a +17f8: 3f 9e 18 call $189e +17fb: c5 b5 0a mov $0ab5,a +17fe: cd 00 mov x,#$00 +1800: e4 02 mov a,$02 +1802: 05 b5 0a or a,$0ab5 +1805: 45 b5 0a eor a,$0ab5 +1808: 5c lsr a +1809: 90 08 bcc $1813 +180b: 2d push a +180c: 4d push x +180d: 7d mov a,x +180e: 3f 6c 18 call $186c +1811: ce pop x +1812: ae pop a +1813: 3d inc x +1814: c8 04 cmp x,#$04 +1816: 90 f0 bcc $1808 +1818: e5 88 0a mov a,$0a88 +181b: 28 7f and a,#$7f +181d: f0 42 beq $1861 +181f: 5d mov x,a +1820: e4 02 mov a,$02 +1822: 05 b5 0a or a,$0ab5 +1825: 45 b5 0a eor a,$0ab5 +1828: 8d 00 mov y,#$00 +182a: c4 03 mov $03,a +182c: e4 03 mov a,$03 +182e: 5c lsr a +182f: c4 03 mov $03,a +1831: b0 17 bcs $184a +1833: fc inc y +1834: ad 04 cmp y,#$04 +1836: 90 f4 bcc $182c +1838: e5 02 00 mov a,$0002 +183b: 05 b5 0a or a,$0ab5 +183e: 45 b5 0a eor a,$0ab5 +1841: 05 9f 0a or a,$0a9f +1844: c5 9f 0a mov $0a9f,a +1847: 5f 61 18 jmp $1861 + +184a: 8f 61 00 mov $00,#$61 +184d: 8f 18 01 mov $01,#$18 +1850: 6d push y +1851: 7d mov a,x +1852: fd mov y,a +1853: f7 00 mov a,($00)+y +1855: ee pop y +1856: d6 a4 0a mov $0aa4+y,a +1859: e8 00 mov a,#$00 +185b: d6 c0 0a mov $0ac0+y,a +185e: 5f 33 18 jmp $1833 + +1861: 6f ret + +1862: 7f ret +i +1863: 3f 20 10 call $1020 +1866: 0c 08 06 asl $0608 +1869: 04 02 or a,$02 +186b: 01 tcall 0 +186c: 5d mov x,a +186d: e8 64 mov a,#$64 +186f: d5 c0 0a mov $0ac0+x,a +1872: e8 0a mov a,#$0a +1874: d5 c4 0a mov $0ac4+x,a +1877: 7d mov a,x +1878: 8d 00 mov y,#$00 +187a: 76 6d 04 cmp a,$046d+y +187d: f0 06 beq $1885 +187f: fc inc y +1880: ad 0c cmp y,#$0c +1882: 90 f6 bcc $187a +1884: 6f ret + +1885: d6 61 04 mov $0461+y,a +1888: 2d push a +1889: 6d push y +188a: dd mov a,y +188b: 1c asl a +188c: fd mov y,a +188d: f6 79 04 mov a,$0479+y +1890: d6 19 00 mov $0019+y,a +1893: f6 7a 04 mov a,$047a+y +1896: d6 1a 00 mov $001a+y,a +1899: ee pop y +189a: ae pop a +189b: 5f 7f 18 jmp $187f + +189e: cd 0b mov x,#$0b +18a0: 8f 00 00 mov $00,#$00 +18a3: f5 61 04 mov a,$0461+x +18a6: 30 08 bmi $18b0 +18a8: fd mov y,a +18a9: f6 b6 18 mov a,$18b6+y +18ac: 04 00 or a,$00 +18ae: c4 00 mov $00,a +18b0: 1d dec x +18b1: 10 f0 bpl $18a3 +18b3: e4 00 mov a,$00 +18b5: 6f ret + + +18b6: db $01,$02,$04,$08 + +18ba: f8 00 mov x,$00 +18bc: 4d push x +18bd: f8 02 mov x,$02 +18bf: 4d push x +18c0: f8 04 mov x,$04 +18c2: 4d push x +18c3: f8 05 mov x,$05 +18c5: 4d push x +18c6: cd 03 mov x,#$03 +18c8: f5 cb 0a mov a,$0acb+x +18cb: 64 02 cmp a,$02 +18cd: b0 02 bcs $18d1 +18cf: e8 00 mov a,#$00 +18d1: d4 04 mov $04+x,a +18d3: 1d dec x +18d4: 10 f2 bpl $18c8 +18d6: 8f 00 00 mov $00,#$00 +18d9: cd 02 mov x,#$02 +18db: 8d 03 mov y,#$03 +18dd: e4 07 mov a,$07 +18df: 74 04 cmp a,$04+x +18e1: f0 02 beq $18e5 +18e3: b0 04 bcs $18e9 +18e5: f4 04 mov a,$04+x +18e7: 4d push x +18e8: ee pop y +18e9: 1d dec x +18ea: 10 f3 bpl $18df +18ec: f6 cf 0a mov a,$0acf+y +18ef: 64 03 cmp a,$03 +18f1: b0 22 bcs $1915 +18f3: f0 20 beq $1915 +18f5: c4 02 mov $02,a +18f7: e4 04 mov a,$04 +18f9: 04 05 or a,$05 +18fb: 04 06 or a,$06 +18fd: 04 07 or a,$07 +18ff: f0 11 beq $1912 +1901: cd 00 mov x,#$00 +1903: d9 04 mov $04+y,x +1905: 80 setc +1906: a9 02 03 sbc ($03),($02) +1909: e4 00 mov a,$00 +190b: 16 b6 18 or a,$18b6+y +190e: c4 00 mov $00,a +1910: 2f c7 bra $18d9 +1912: 60 clrc +1913: 2f 06 bra $191b +1915: e4 00 mov a,$00 +1917: 16 b6 18 or a,$18b6+y +191a: 80 setc +191b: ce pop x +191c: d8 05 mov $05,x +191e: ce pop x +191f: d8 04 mov $04,x +1921: ce pop x +1922: d8 02 mov $02,x +1924: ce pop x +1925: d8 00 mov $00,x +1927: 6f ret + +1928: 3f 9e 18 call $189e +192b: 48 ff eor a,#$ff +192d: c5 b5 0a mov $0ab5,a +1930: e5 88 0a mov a,$0a88 +1933: 5d mov x,a +1934: d0 18 bne $194e +1936: e5 87 0a mov a,$0a87 +1939: d0 08 bne $1943 +193b: e8 ff mov a,#$ff +193d: c5 b1 0a mov $0ab1,a +1940: 5f 98 19 jmp $1998 + +1943: 3f 46 1a call $1a46 +1946: 90 4f bcc $1997 +1948: c5 b1 0a mov $0ab1,a +194b: 5f 98 19 jmp $1998 + +194e: e5 87 0a mov a,$0a87 +1951: d0 06 bne $1959 +1953: e8 0f mov a,#$0f +1955: c4 03 mov $03,a +1957: 2f 07 bra $1960 +1959: 3f 46 1a call $1a46 +195c: 90 39 bcc $1997 +195e: c4 03 mov $03,a +1960: 05 b5 0a or a,$0ab5 +1963: 45 b5 0a eor a,$0ab5 +1966: 8d 00 mov y,#$00 +1968: c4 02 mov $02,a +196a: e4 02 mov a,$02 +196c: 5c lsr a +196d: c4 02 mov $02,a +196f: b0 14 bcs $1985 +1971: fc inc y +1972: ad 04 cmp y,#$04 +1974: 90 f4 bcc $196a +1976: e4 03 mov a,$03 +1978: 05 b5 0a or a,$0ab5 +197b: 45 b5 0a eor a,$0ab5 +197e: 05 a8 0a or a,$0aa8 +1981: c5 a8 0a mov $0aa8,a +1984: 6f ret + +1985: 8f 61 00 mov $00,#$61 +1988: 8f 18 01 mov $01,#$18 +198b: 6d push y +198c: 7d mov a,x +198d: fd mov y,a +198e: f7 00 mov a,($00)+y +1990: ee pop y +1991: d6 ad 0a mov $0aad+y,a +1994: 5f 71 19 jmp $1971 + +1997: 6f ret + +1998: f8 cb mov x,$cb +199a: 4d push x +199b: 8d 00 mov y,#$00 +199d: 5c lsr a +199e: 90 09 bcc $19a9 +19a0: 2d push a +19a1: 6d push y +19a2: cb cb mov $cb,y +19a4: 3f cc 11 call $11cc +19a7: ee pop y +19a8: ae pop a +19a9: fc inc y +19aa: ad 04 cmp y,#$04 +19ac: 90 ef bcc $199d +19ae: ce pop x +19af: d8 cb mov $cb,x +19b1: cd 00 mov x,#$00 +19b3: d8 03 mov $03,x +19b5: e5 b1 0a mov a,$0ab1 +19b8: 48 ff eor a,#$ff +19ba: 25 a8 0a and a,$0aa8 +19bd: c5 a8 0a mov $0aa8,a +19c0: e5 b1 0a mov a,$0ab1 +19c3: 5c lsr a +19c4: 90 08 bcc $19ce +19c6: 2d push a +19c7: 4d push x +19c8: 7d mov a,x +19c9: 3f dd 19 call $19dd +19cc: ce pop x +19cd: ae pop a +19ce: 3d inc x +19cf: c8 04 cmp x,#$04 +19d1: 90 f0 bcc $19c3 +19d3: e4 03 mov a,$03 +19d5: c4 35 mov $35,a +19d7: e8 00 mov a,#$00 +19d9: c5 b1 0a mov $0ab1,a +19dc: 6f ret + +19dd: fd mov y,a +19de: 3f ff 1b call $1bff +19e1: 8d 00 mov y,#$00 +19e3: 76 61 04 cmp a,$0461+y +19e6: f0 06 beq $19ee +19e8: fc inc y +19e9: ad 0c cmp y,#$0c +19eb: 90 f6 bcc $19e3 +19ed: 6f ret + +19ee: 2d push a +19ef: 3f 05 12 call $1205 +19f2: ae pop a +19f3: 3f 2a 1a call $1a2a +19f6: 2d push a +19f7: 6d push y +19f8: e8 ff mov a,#$ff +19fa: d6 61 04 mov $0461+y,a +19fd: dd mov a,y +19fe: 1c asl a +19ff: fd mov y,a +1a00: e8 00 mov a,#$00 +1a02: d6 19 00 mov $0019+y,a +1a05: d6 1a 00 mov $001a+y,a +1a08: ee pop y +1a09: 6d push y +1a0a: dd mov a,y +1a0b: 68 08 cmp a,#$08 +1a0d: 90 09 bcc $1a18 +1a0f: 80 setc +1a10: a8 08 sbc a,#$08 +1a12: 48 03 eor a,#$03 +1a14: 60 clrc +1a15: 88 04 adc a,#$04 +1a17: fd mov y,a +1a18: fc inc y +1a19: 8f 00 02 mov $02,#$00 +1a1c: 80 setc +1a1d: 2b 02 rol $02 +1a1f: dc dec y +1a20: d0 fb bne $1a1d +1a22: 09 02 03 or ($03),($02) +1a25: ee pop y +1a26: ae pop a +1a27: 5f e8 19 jmp $19e8 + +1a2a: 2d push a +1a2b: 5d mov x,a +1a2c: e8 00 mov a,#$00 +1a2e: d5 a0 0a mov $0aa0+x,a +1a31: d5 a4 0a mov $0aa4+x,a +1a34: c4 02 mov $02,a +1a36: 3d inc x +1a37: 80 setc +1a38: 3c rol a +1a39: 1d dec x +1a3a: d0 fc bne $1a38 +1a3c: 48 ff eor a,#$ff +1a3e: 25 9f 0a and a,$0a9f +1a41: c5 9f 0a mov $0a9f,a +1a44: ae pop a +1a45: 6f ret + +1a46: eb 00 mov y,$00 +1a48: 6d push y +1a49: eb 01 mov y,$01 +1a4b: 6d push y +1a4c: c4 00 mov $00,a +1a4e: 8f 00 01 mov $01,#$00 +1a51: e5 b5 0a mov a,$0ab5 +1a54: 8d 00 mov y,#$00 +1a56: ad 04 cmp y,#$04 +1a58: f0 18 beq $1a72 +1a5a: 5c lsr a +1a5b: fc inc y +1a5c: b0 f8 bcs $1a56 +1a5e: 2d push a +1a5f: f6 90 04 mov a,$0490+y +1a62: 64 00 cmp a,$00 +1a64: ae pop a +1a65: d0 ef bne $1a56 +1a67: 2d push a +1a68: f6 b5 18 mov a,$18b5+y +1a6b: 04 01 or a,$01 +1a6d: c4 01 mov $01,a +1a6f: ae pop a +1a70: 2f e4 bra $1a56 +1a72: 60 clrc +1a73: e4 01 mov a,$01 +1a75: f0 01 beq $1a78 +1a77: 80 setc +1a78: ee pop y +1a79: cb 01 mov $01,y +1a7b: ee pop y +1a7c: cb 00 mov $00,y +1a7e: 6f ret + +1a7f: 6d push y +1a80: 8d 00 mov y,#$00 +1a82: 68 00 cmp a,#$00 +1a84: f0 04 beq $1a8a +1a86: 5c lsr a +1a87: fc inc y +1a88: 90 fc bcc $1a86 +1a8a: dd mov a,y +1a8b: ee pop y +1a8c: 6f ret + +1a8d: 3f 9e 18 call $189e +1a90: 48 ff eor a,#$ff +1a92: c5 b5 0a mov $0ab5,a +1a95: e8 00 mov a,#$00 +1a97: c4 04 mov $04,a +1a99: e5 88 0a mov a,$0a88 +1a9c: c4 00 mov $00,a +1a9e: e5 87 0a mov a,$0a87 +1aa1: f0 11 beq $1ab4 +1aa3: 3f 46 1a call $1a46 +1aa6: 90 1a bcc $1ac2 +1aa8: 3f 7f 1a call $1a7f +1aab: 9c dec a +1aac: 5d mov x,a +1aad: e4 00 mov a,$00 +1aaf: d5 c0 0a mov $0ac0+x,a +1ab2: 7d mov a,x +1ab3: 6f ret + +1ab4: e4 00 mov a,$00 +1ab6: c5 c0 0a mov $0ac0,a +1ab9: c5 c1 0a mov $0ac1,a +1abc: c5 c2 0a mov $0ac2,a +1abf: c5 c3 0a mov $0ac3,a +1ac2: 6f ret + +1ac3: 4d push x +1ac4: 78 00 00 cmp $00,#$00 +1ac7: f0 20 beq $1ae9 +1ac9: cd 64 mov x,#$64 +1acb: 8d 00 mov y,#$00 +1acd: 9e div ya,x +1ace: c4 02 mov $02,a +1ad0: e8 00 mov a,#$00 +1ad2: 9e div ya,x +1ad3: eb 00 mov y,$00 +1ad5: cf mul ya +1ad6: cb 03 mov $03,y +1ad8: e4 02 mov a,$02 +1ada: eb 00 mov y,$00 +1adc: cf mul ya +1add: ad 00 cmp y,#$00 +1adf: d0 0d bne $1aee +1ae1: 60 clrc +1ae2: 84 03 adc a,$03 +1ae4: b0 08 bcs $1aee +1ae6: 5f f0 1a jmp $1af0 + +1ae9: e8 00 mov a,#$00 +1aeb: 5f f0 1a jmp $1af0 + +1aee: e8 ff mov a,#$ff +1af0: ce pop x +1af1: 6f ret + +1af2: 3f 9e 18 call $189e +1af5: 48 ff eor a,#$ff +1af7: c5 b5 0a mov $0ab5,a +1afa: e5 87 0a mov a,$0a87 +1afd: f0 12 beq $1b11 +1aff: 3f 46 1a call $1a46 +1b02: 90 1c bcc $1b20 +1b04: 3f 7f 1a call $1a7f +1b07: fd mov y,a +1b08: dc dec y +1b09: e5 88 0a mov a,$0a88 +1b0c: d6 c4 0a mov $0ac4+y,a +1b0f: 2f 0f bra $1b20 +1b11: e5 88 0a mov a,$0a88 +1b14: c5 c4 0a mov $0ac4,a +1b17: c5 c5 0a mov $0ac5,a +1b1a: c5 c6 0a mov $0ac6,a +1b1d: c5 c7 0a mov $0ac7,a +1b20: 6f ret + +1b21: 78 0a 00 cmp $00,#$0a +1b24: f0 3a beq $1b60 +1b26: 90 26 bcc $1b4e +1b28: 2d push a +1b29: 80 setc +1b2a: e8 14 mov a,#$14 +1b2c: a4 00 sbc a,$00 +1b2e: c4 01 mov $01,a +1b30: cf mul ya +1b31: ae pop a +1b32: cb 02 mov $02,y +1b34: eb 01 mov y,$01 +1b36: cf mul ya +1b37: 60 clrc +1b38: 84 02 adc a,$02 +1b3a: 8d 00 mov y,#$00 +1b3c: cd 0a mov x,#$0a +1b3e: 9e div ya,x +1b3f: 2d push a +1b40: e4 00 mov a,$00 +1b42: 80 setc +1b43: a4 01 sbc a,$01 +1b45: c4 01 mov $01,a +1b47: ae pop a +1b48: 60 clrc +1b49: 84 01 adc a,$01 +1b4b: 5f 60 1b jmp $1b60 + +1b4e: 2d push a +1b4f: e4 00 mov a,$00 +1b51: cf mul ya +1b52: ae pop a +1b53: cb 02 mov $02,y +1b55: eb 00 mov y,$00 +1b57: cf mul ya +1b58: 60 clrc +1b59: 84 02 adc a,$02 +1b5b: 8d 00 mov y,#$00 +1b5d: cd 0a mov x,#$0a +1b5f: 9e div ya,x +1b60: 6f ret + +1b61: e5 87 0a mov a,$0a87 +1b64: f0 51 beq $1bb7 +1b66: 3f 9e 18 call $189e +1b69: 48 ff eor a,#$ff +1b6b: c5 b5 0a mov $0ab5,a +1b6e: e5 88 0a mov a,$0a88 +1b71: d0 18 bne $1b8b +1b73: e5 87 0a mov a,$0a87 +1b76: 3f 46 1a call $1a46 +1b79: 90 3b bcc $1bb6 +1b7b: 3f 7f 1a call $1a7f +1b7e: 5d mov x,a +1b7f: f5 99 0a mov a,$0a99+x +1b82: 2d push a +1b83: 7d mov a,x +1b84: 9c dec a +1b85: 1c asl a +1b86: 5d mov x,a +1b87: ae pop a +1b88: d4 d7 mov $d7+x,a +1b8a: 6f ret + +1b8b: e9 87 0a mov x,$0a87 +1b8e: 2d push a +1b8f: 7d mov a,x +1b90: 3f 46 1a call $1a46 +1b93: 90 20 bcc $1bb5 +1b95: 3f 7f 1a call $1a7f +1b98: 9c dec a +1b99: 1c asl a +1b9a: 5d mov x,a +1b9b: ae pop a +1b9c: c4 00 mov $00,a +1b9e: e3 00 0a bbs7 $00,$1bab +1ba1: 60 clrc +1ba2: 94 d7 adc a,$d7+x +1ba4: 90 0c bcc $1bb2 +1ba6: e8 ff mov a,#$ff +1ba8: 5f b2 1b jmp $1bb2 + +1bab: 60 clrc +1bac: 94 d7 adc a,$d7+x +1bae: b0 02 bcs $1bb2 +1bb0: e8 01 mov a,#$01 +1bb2: d4 d7 mov $d7+x,a +1bb4: 6f ret + +1bb5: ae pop a +1bb6: 6f ret + +1bb7: e5 88 0a mov a,$0a88 +1bba: f0 21 beq $1bdd +1bbc: e5 88 0a mov a,$0a88 +1bbf: cd 00 mov x,#$00 +1bc1: 3f 9c 1b call $1b9c +1bc4: e5 88 0a mov a,$0a88 +1bc7: cd 02 mov x,#$02 +1bc9: 3f 9c 1b call $1b9c +1bcc: e5 88 0a mov a,$0a88 +1bcf: cd 04 mov x,#$04 +1bd1: 3f 9c 1b call $1b9c +1bd4: e5 88 0a mov a,$0a88 +1bd7: cd 06 mov x,#$06 +1bd9: 3f 9c 1b call $1b9c +1bdc: 6f ret + +1bdd: e5 9a 0a mov a,$0a9a +1be0: c4 d7 mov $d7,a +1be2: e5 9b 0a mov a,$0a9b +1be5: c4 d9 mov $d9,a +1be7: e5 9c 0a mov a,$0a9c +1bea: c4 db mov $db,a +1bec: e5 9d 0a mov a,$0a9d +1bef: c4 dd mov $dd,a +1bf1: 6f ret + +1bf2: c4 f7 mov $f7,a +1bf4: c4 00 mov $00,a +1bf6: 8f 00 f4 mov $f4,#$00 +1bf9: 8f 00 f5 mov $f5,#$00 +1bfc: 5f 2f 0e jmp $0e2f + +1bff: 2d push a +1c00: e8 00 mov a,#$00 +1c02: d6 91 04 mov $0491+y,a +1c05: dd mov a,y +1c06: 1c asl a +1c07: 5d mov x,a +1c08: e8 20 mov a,#$20 +1c0a: d4 d7 mov $d7+x,a +1c0c: e8 00 mov a,#$00 +1c0e: 3d inc x +1c0f: d4 d7 mov $d7+x,a +1c11: cd 00 mov x,#$00 +1c13: dd mov a,y +1c14: 75 6d 04 cmp a,$046d+x +1c17: d0 12 bne $1c2b +1c19: e8 ff mov a,#$ff +1c1b: d5 6d 04 mov $046d+x,a +1c1e: 4d push x +1c1f: 7d mov a,x +1c20: 1c asl a +1c21: 5d mov x,a +1c22: e8 00 mov a,#$00 +1c24: d5 79 04 mov $0479+x,a +1c27: d5 7a 04 mov $047a+x,a +1c2a: ce pop x +1c2b: 3d inc x +1c2c: c8 0c cmp x,#$0c +1c2e: 90 e3 bcc $1c13 +1c30: ae pop a +1c31: 6f ret + +1c32: cd 00 mov x,#$00 +1c34: e8 ff mov a,#$ff +1c36: d5 61 04 mov $0461+x,a +1c39: d5 6d 04 mov $046d+x,a +1c3c: 3d inc x +1c3d: c8 0c cmp x,#$0c +1c3f: 90 f5 bcc $1c36 +1c41: 8f 00 ce mov $ce,#$00 +1c44: 8f 26 cf mov $cf,#$26 +1c47: cd 00 mov x,#$00 +1c49: 8d 00 mov y,#$00 +1c4b: e8 00 mov a,#$00 +1c4d: 8f 95 04 mov $04,#$95 +1c50: 8f 04 05 mov $05,#$04 +1c53: d7 04 mov ($04)+y,a +1c55: fc inc y +1c56: ad 11 cmp y,#$11 +1c58: 90 f9 bcc $1c53 +1c5a: 60 clrc +1c5b: 98 11 04 adc $04,#$11 +1c5e: 98 00 05 adc $05,#$00 +1c61: 8d 00 mov y,#$00 +1c63: 3d inc x +1c64: c8 46 cmp x,#$46 +1c66: 90 eb bcc $1c53 +1c68: 6f ret + +1c69: e8 00 mov a,#$00 +1c6b: c4 d3 mov $d3,a +1c6d: c4 d1 mov $d1,a +1c6f: e8 45 mov a,#$45 +1c71: c4 d4 mov $d4,a +1c73: c4 d2 mov $d2,a +1c75: e8 00 mov a,#$00 +1c77: c4 00 mov $00,a +1c79: e8 43 mov a,#$43 +1c7b: c4 01 mov $01,a +1c7d: e8 00 mov a,#$00 +1c7f: 8d 00 mov y,#$00 +1c81: d7 00 mov ($00)+y,a +1c83: 78 ff 00 cmp $00,#$ff +1c86: d0 07 bne $1c8f +1c88: 78 44 01 cmp $01,#$44 +1c8b: f0 07 beq $1c94 +1c8d: ab 01 inc $01 +1c8f: ab 00 inc $00 +1c91: 5f 81 1c jmp $1c81 + +1c94: 6f ret + +1c95: 3f 9e 18 call $189e +1c98: 48 ff eor a,#$ff +1c9a: c5 b5 0a mov $0ab5,a +1c9d: e5 87 0a mov a,$0a87 +1ca0: f0 1c beq $1cbe +1ca2: 3f 46 1a call $1a46 +1ca5: 90 0d bcc $1cb4 +1ca7: 3f 7f 1a call $1a7f +1caa: 9c dec a +1cab: 8d 08 mov y,#$08 +1cad: 76 60 04 cmp a,$0460+y +1cb0: f0 07 beq $1cb9 +1cb2: fe f9 dbnz y,$1cad +1cb4: e8 01 mov a,#$01 +1cb6: 5f f2 1b jmp $1bf + +1cb9: e8 02 mov a,#$02 +1cbb: 5f f2 1b jmp $1bf2 + +1cbe: 6f ret + +1cbf: fa ce cc mov ($cc),($ce) +1cc2: fa cf cd mov ($cd),($cf) +1cc5: cd 00 mov x,#$00 +1cc7: 8d 00 mov y,#$00 +1cc9: 8f 95 04 mov $04,#$95 +1ccc: 8f 04 05 mov $05,#$04 +1ccf: f7 04 mov a,($04)+y +1cd1: f0 11 beq $1ce4 +1cd3: 60 clrc +1cd4: 98 11 04 adc $04,#$11 +1cd7: 98 00 05 adc $05,#$00 +1cda: 3d inc x +1cdb: c8 46 cmp x,#$46 +1cdd: 90 f0 bcc $1ccf +1cdf: e8 02 mov a,#$02 +1ce1: 5f 24 1d jmp $1d24 + +1ce4: e5 87 0a mov a,$0a87 +1ce7: d7 04 mov ($04)+y,a +1ce9: e9 88 0a mov x,$0a88 +1cec: c9 b6 0a mov $0ab6,x +1cef: fa cc 00 mov ($00),($cc) +1cf2: fa cd 01 mov ($01),($cd) +1cf5: e4 00 mov a,$00 +1cf7: fc inc y +1cf8: d7 04 mov ($04)+y,a +1cfa: e4 01 mov a,$01 +1cfc: fc inc y +1cfd: d7 04 mov ($04)+y,a +1cff: 60 clrc +1d00: f6 87 0a mov a,$0a87+y +1d03: 84 00 adc a,$00 +1d05: c4 00 mov $00,a +1d07: f6 88 0a mov a,$0a88+y +1d0a: 84 01 adc a,$01 +1d0c: c4 01 mov $01,a +1d0e: 1d dec x +1d0f: d0 e4 bne $1cf5 +1d11: fa 00 ce mov ($ce),($00) +1d14: fa 01 cf mov ($cf),($01) +1d17: fa cc 0b mov ($0b),($cc) +1d1a: fa cd 0c mov ($0c),($cd) +1d1d: e8 01 mov a,#$01 +1d1f: c5 b7 0a mov $0ab7,a +1d22: e8 01 mov a,#$01 +1d24: c4 f7 mov $f7,a +1d26: 6f ret + +1d27: e9 87 0a mov x,$0a87 +1d2a: 7d mov a,x +1d2b: 8d 04 mov y,#$04 +1d2d: cf mul ya +1d2e: 8f 00 00 mov $00,#$00 +1d31: 8f 43 01 mov $01,#$43 +1d34: 60 clrc +1d35: 7a 00 addw ya,$00 +1d37: da 00 movw $00,ya +1d39: 8d 01 mov y,#$01 +1d3b: f7 00 mov a,($00)+y +1d3d: d0 5e bne $1d9d +1d3f: dc dec y +1d40: e4 d3 mov a,$d3 +1d42: d7 00 mov ($00)+y,a +1d44: c4 d1 mov $d1,a +1d46: e4 d4 mov a,$d4 +1d48: fc inc y +1d49: d7 00 mov ($00)+y,a +1d4b: c4 d2 mov $d2,a +1d4d: c9 bf 0a mov $0abf,x +1d50: 60 clrc +1d51: e4 d3 mov a,$d3 +1d53: 85 8f 0a adc a,$0a8f +1d56: fc inc y +1d57: d7 00 mov ($00)+y,a +1d59: e4 d4 mov a,$d4 +1d5b: 85 90 0a adc a,$0a90 +1d5e: fc inc y +1d5f: d7 00 mov ($00)+y,a +1d61: 60 clrc +1d62: e5 8d 0a mov a,$0a8d +1d65: 84 d3 adc a,$d3 +1d67: c4 d3 mov $d3,a +1d69: e5 8e 0a mov a,$0a8e +1d6c: 84 d4 adc a,$d4 +1d6e: c4 d4 mov $d4,a +1d70: 7d mov a,x +1d71: 8d 06 mov y,#$06 +1d73: cf mul ya +1d74: 8f 00 00 mov $00,#$00 +1d77: 8f 40 01 mov $01,#$40 +1d7a: 60 clrc +1d7b: 7a 00 addw ya,$00 +1d7d: da 00 movw $00,ya +1d7f: 8d 00 mov y,#$00 +1d81: cd 00 mov x,#$00 +1d83: f5 87 0a mov a,$0a87+x +1d86: d7 00 mov ($00)+y,a +1d88: 3d inc x +1d89: fc inc y +1d8a: ad 06 cmp y,#$06 +1d8c: 90 f5 bcc $1d83 +1d8e: fa d1 0b mov ($0b),($d1) +1d91: fa d2 0c mov ($0c),($d2) +1d94: e8 01 mov a,#$01 +1d96: c5 b8 0a mov $0ab8,a +1d99: 8f 01 f7 mov $f7,#$01 +1d9c: 6f ret + +1d9d: 8f 02 f7 mov $f7,#$02 +1da0: 6f ret + +1da1: e8 00 mov a,#$00 +1da3: ec 87 0a mov y,$0a87 +1da6: 80 setc +1da7: 3c rol a +1da8: fe fd dbnz y,$1da7 +1daa: ec 88 0a mov y,$0a88 +1dad: d0 05 bne $1db4 +1daf: 05 b9 0a or a,$0ab9 +1db2: 2f 05 bra $1db9 +1db4: 48 ff eor a,#$ff +1db6: 25 b9 0a and a,$0ab9 +1db9: c5 b9 0a mov $0ab9,a +1dbc: 6f ret + +1dbd: 3f 9e 18 call $189e +1dc0: 48 ff eor a,#$ff +1dc2: c5 b5 0a mov $0ab5,a +1dc5: e5 87 0a mov a,$0a87 +1dc8: 3f 46 1a call $1a46 +1dcb: 90 0a bcc $1dd7 +1dcd: 3f 7f 1a call $1a7f +1dd0: fd mov y,a +1dd1: dc dec y +1dd2: e8 01 mov a,#$01 +1dd4: d6 ba 0a mov $0aba+y,a +1dd7: 6f ret + +1dd8: cd 00 mov x,#$00 +1dda: 8d 00 mov y,#$00 +1ddc: 8f 95 04 mov $04,#$95 +1ddf: 8f 04 05 mov $05,#$04 +1de2: f7 04 mov a,($04)+y +1de4: f0 0c beq $1df2 +1de6: 60 clrc +1de7: 98 11 04 adc $04,#$11 +1dea: 98 00 05 adc $05,#$00 +1ded: 3d inc x +1dee: c8 46 cmp x,#$46 +1df0: 90 f0 bcc $1de2 +1df2: 80 setc +1df3: b8 11 04 sbc $04,#$11 +1df6: b8 00 05 sbc $05,#$00 +1df9: e8 00 mov a,#$00 +1dfb: 8d 10 mov y,#$10 +1dfd: d7 04 mov ($04)+y,a +1dff: dc dec y +1e00: 10 fb bpl $1dfd +1e02: fa cc ce mov ($ce),($cc) +1e05: fa cd cf mov ($cf),($cd) +1e08: 6f ret + +1e09: fa d1 d3 mov ($d3),($d1) +1e0c: fa d2 d4 mov ($d4),($d2) +1e0f: e5 bf 0a mov a,$0abf +1e12: 8d 04 mov y,#$04 +1e14: cf mul ya +1e15: 8f 00 00 mov $00,#$00 +1e18: 8f 43 01 mov $01,#$43 +1e1b: 60 clrc +1e1c: 7a 00 addw ya,$00 +1e1e: da 00 movw $00,ya +1e20: 8d 03 mov y,#$03 +1e22: e8 00 mov a,#$00 +1e24: d7 00 mov ($00)+y,a +1e26: fe fc dbnz y,$1e24 +1e28: d7 00 mov ($00)+y,a +1e2a: e5 bf 0a mov a,$0abf +1e2d: 8d 06 mov y,#$06 +1e2f: cf mul ya +1e30: 8f 00 00 mov $00,#$00 +1e33: 8f 40 01 mov $01,#$40 +1e36: 60 clrc +1e37: 7a 00 addw ya,$00 +1e39: da 00 movw $00,ya +1e3b: 8d 05 mov y,#$05 +1e3d: e8 00 mov a,#$00 +1e3f: d7 00 mov ($00)+y,a +1e41: fe fc dbnz y,$1e3f +1e43: d7 00 mov ($00)+y,a +1e45: 6f ret + +1e46: e5 87 0a mov a,$0a87 +1e49: c5 c8 0a mov $0ac8,a +1e4c: 6f ret + +; vcmd fb - set quantization +1e4d: 2d push a +1e4e: 9f xcn a +1e4f: 28 07 and a,#$07 +1e51: fd mov y,a +1e52: f6 9d 25 mov a,$259d+y ; note dur%'s +1e55: d5 0d 02 mov $020d+x,a +1e58: ae pop a +1e59: 28 0f and a,#$0f +1e5b: fd mov y,a +1e5c: f6 a5 25 mov a,$25a5+y ; per-note velocity values +1e5f: d5 24 02 mov $0224+x,a +1e62: 6f ret + +; vcmd e0 - set instrument +1e63: d5 25 02 mov $0225+x,a +1e66: fd mov y,a +1e67: 10 06 bpl $1e6f +1e69: 80 setc +1e6a: a8 ca sbc a,#$ca +1e6c: 60 clrc +1e6d: 84 46 adc a,$46 +1e6f: 8d 06 mov y,#$06 +1e71: cf mul ya +1e72: da 14 movw $14,ya +1e74: 60 clrc +1e75: 98 00 14 adc $14,#$00 +1e78: 98 40 15 adc $15,#$40 +1e7b: e4 18 mov a,$18 +1e7d: 24 36 and a,$36 +1e7f: d0 5f bne $1ee0 +1e81: 4d push x +1e82: 7d mov a,x +1e83: 5c lsr a +1e84: 68 08 cmp a,#$08 +1e86: 90 0d bcc $1e95 +1e88: 80 setc +1e89: a8 08 sbc a,#$08 +1e8b: 48 03 eor a,#$03 +1e8d: 60 clrc +1e8e: 88 04 adc a,#$04 +1e90: 1c asl a +1e91: 5d mov x,a +1e92: 5f a8 1e jmp $1ea8 + +1e95: 68 04 cmp a,#$04 +1e97: 90 0f bcc $1ea8 +1e99: 80 setc +1e9a: a8 04 sbc a,#$04 +1e9c: 48 03 eor a,#$03 +1e9e: fd mov y,a +1e9f: f6 69 04 mov a,$0469+y +1ea2: 30 04 bmi $1ea8 +1ea4: ce pop x +1ea5: 5f e0 1e jmp $1ee0 + +1ea8: 7d mov a,x +1ea9: 9f xcn a +1eaa: 5c lsr a +1eab: 08 04 or a,#$04 +1ead: 5d mov x,a +1eae: 8d 00 mov y,#$00 +1eb0: f7 14 mov a,($14)+y +1eb2: 10 0f bpl $1ec3 +1eb4: 28 1f and a,#$1f +1eb6: 38 20 37 and $37,#$20 +1eb9: 0e 37 00 tset1 $0037 +1ebc: 09 36 38 or ($38),($36) +1ebf: dd mov a,y +1ec0: 5f ca 1e jmp $1eca + +1ec3: e4 36 mov a,$36 +1ec5: 4e 38 00 tclr1 $0038 +1ec8: f7 14 mov a,($14)+y +1eca: d8 f2 mov $f2,x +1ecc: c4 f3 mov $f3,a +1ece: 3d inc x +1ecf: fc inc y +1ed0: ad 04 cmp y,#$04 +1ed2: d0 f4 bne $1ec8 +1ed4: ce pop x +1ed5: f7 14 mov a,($14)+y +1ed7: d5 3d 02 mov $023d+x,a +1eda: fc inc y +1edb: f7 14 mov a,($14)+y +1edd: d5 3c 02 mov $023c+x,a +1ee0: 6f ret + +; vcmd e1 - pan +1ee1: d5 e5 03 mov $03e5+x,a +1ee4: 28 1f and a,#$1f +1ee6: d5 b5 03 mov $03b5+x,a +1ee9: e8 00 mov a,#$00 +1eeb: d5 b4 03 mov $03b4+x,a +1eee: 6f ret + +; vcmd e2 - pan fade +1eef: d4 83 mov $83+x,a +1ef1: 2d push a +1ef2: 3f 36 14 call $1436 +1ef5: d5 e4 03 mov $03e4+x,a +1ef8: 80 setc +1ef9: b5 b5 03 sbc a,$03b5+x +1efc: ce pop x +1efd: 3f 8e 21 call $218e +1f00: d5 cc 03 mov $03cc+x,a +1f03: dd mov a,y +1f04: d5 cd 03 mov $03cd+x,a +1f07: 6f ret + +; vcmd e3 - vibrato on +1f08: d5 f4 02 mov $02f4+x,a +1f0b: 3f 36 14 call $1436 +1f0e: d5 dd 02 mov $02dd+x,a +1f11: 3f 36 14 call $1436 +; vcmd e4 - vibrato off +1f14: d4 b3 mov $b3+x,a +1f16: d5 0d 03 mov $030d+x,a +1f19: e8 00 mov a,#$00 +1f1b: d5 f5 02 mov $02f5+x,a +1f1e: 6f ret + +; vcmd f0 - vibrato fade +1f1f: d5 f5 02 mov $02f5+x,a +1f22: 2d push a +1f23: 8d 00 mov y,#$00 +1f25: f4 b3 mov a,$b3+x +1f27: ce pop x +1f28: 9e div ya,x +1f29: f8 33 mov x,$33 +1f2b: d5 0c 03 mov $030c+x,a +1f2e: 6f ret + +; vcmd e5 - master volume +1f2f: e8 00 mov a,#$00 +1f31: da 3f movw $3f,ya +1f33: 6f ret + +; vcmd e6 - master volume fade +1f34: c4 41 mov $41,a +1f36: 3f 36 14 call $1436 +1f39: c4 42 mov $42,a +1f3b: 80 setc +1f3c: a4 40 sbc a,$40 +1f3e: f8 41 mov x,$41 +1f40: 3f 8e 21 call $218e +1f43: da 43 movw $43,ya +1f45: 6f ret + +; vcmd e7 - tempo +1f46: 4d push x +1f47: e4 cb mov a,$cb +1f49: 1c asl a +1f4a: 5d mov x,a +1f4b: e8 00 mov a,#$00 +1f4d: d4 d6 mov $d6+x,a +1f4f: dd mov a,y +1f50: d4 d7 mov $d7+x,a +1f52: 7d mov a,x +1f53: 5c lsr a +1f54: 5d mov x,a +1f55: dd mov a,y +1f56: d5 9a 0a mov $0a9a+x,a +1f59: ce pop x +1f5a: 6f ret + +; vcmd e8 - tempo fade +1f5b: 2d push a +1f5c: e4 cb mov a,$cb +1f5e: 1c asl a +1f5f: 5d mov x,a +1f60: ae pop a +1f61: d4 de mov $de+x,a +1f63: 4d push x +1f64: 3f 36 14 call $1436 +1f67: ce pop x +1f68: d4 df mov $df+x,a +1f6a: 80 setc +1f6b: b4 d7 sbc a,$d7+x +1f6d: f4 de mov a,$de+x +1f6f: 4d push x +1f70: 5d mov x,a +1f71: 3f 8e 21 call $218e +1f74: ce pop x +1f75: cb 00 mov $00,y +1f77: 2d push a +1f78: e4 00 mov a,$00 +1f7a: d4 e7 mov $e7+x,a +1f7c: ae pop a +1f7d: d4 e6 mov $e6+x,a +1f7f: 6f ret + +; vcmd e9 - global transpose +1f80: c4 3e mov $3e,a +1f82: 6f ret + +; vcmd ea - per-voice transpose +1f83: d5 54 03 mov $0354+x,a +1f86: 6f ret + +; vcmd eb - tremolo on +1f87: d5 3c 03 mov $033c+x,a +1f8a: 3f 36 14 call $1436 +1f8d: d5 25 03 mov $0325+x,a +1f90: 3f 36 14 call $1436 +; vcmd ec - tremolo off +1f93: d5 45 04 mov $0445+x,a +1f96: 6f ret + +; vcmd f1 - pitch envelope (release) +1f97: e8 01 mov a,#$01 +1f99: 5f 9e 1f jmp $1f9e + +; vcmd f2 - pitch envelope (attack) +1f9c: e8 00 mov a,#$00 +1f9e: d5 c4 02 mov $02c4+x,a +1fa1: dd mov a,y +1fa2: d5 ad 02 mov $02ad+x,a +1fa5: 3f 36 14 call $1436 +1fa8: d5 ac 02 mov $02ac+x,a +1fab: 3f 36 14 call $1436 +1fae: d5 c5 02 mov $02c5+x,a +1fb1: 6f ret + +; vcmd f3 - pitch envelope off +1fb2: d5 ac 02 mov $02ac+x,a +1fb5: 6f ret + +; vcmd ed - volume +1fb6: d5 6d 03 mov $036d+x,a +1fb9: e8 00 mov a,#$00 +1fbb: d5 6c 03 mov $036c+x,a +1fbe: 6f ret + +; vcmd ee - volume fade +1fbf: d4 82 mov $82+x,a +1fc1: 2d push a +1fc2: 3f 36 14 call $1436 +1fc5: d5 9c 03 mov $039c+x,a +1fc8: 80 setc +1fc9: b5 6d 03 sbc a,$036d+x +1fcc: ce pop x +1fcd: 3f 8e 21 call $218e +1fd0: d5 84 03 mov $0384+x,a +1fd3: dd mov a,y +1fd4: d5 85 03 mov $0385+x,a +1fd7: 6f ret + +; vcmd f4 - tuning +1fd8: d5 2d 04 mov $042d+x,a +1fdb: 6f ret + +; vcmd ef - call subroutine +1fdc: d5 6c 02 mov $026c+x,a +1fdf: 3f 36 14 call $1436 +1fe2: d5 6d 02 mov $026d+x,a +1fe5: 3f 36 14 call $1436 +1fe8: d4 6a mov $6a+x,a +1fea: f4 19 mov a,$19+x +1fec: d5 54 02 mov $0254+x,a +1fef: f4 1a mov a,$1a+x +1ff1: d5 55 02 mov $0255+x,a +1ff4: f5 6c 02 mov a,$026c+x +1ff7: d4 19 mov $19+x,a +1ff9: f5 6d 02 mov a,$026d+x +1ffc: d4 1a mov $1a+x,a +1ffe: 6f ret + +; vcmd f5 - echo vbits/volume +1fff: c4 00 mov $00,a +2001: 8f 00 01 mov $01,#$00 +2004: e4 cb mov a,$cb +2006: 8d 00 mov y,#$00 +2008: 76 61 04 cmp a,$0461+y +200b: 60 clrc +200c: d0 02 bne $2010 +200e: 4b 00 lsr $00 +2010: 6b 01 ror $01 +2012: fc inc y +2013: ad 08 cmp y,#$08 +2015: 90 f1 bcc $2008 +2017: 09 01 39 or ($39),($01) +201a: 8f 00 01 mov $01,#$00 +201d: 8f 00 02 mov $02,#$00 +2020: 76 61 04 cmp a,$0461+y +2023: 60 clrc +2024: d0 02 bne $2028 +2026: 4b 00 lsr $00 +2028: 2b 01 rol $01 +202a: fc inc y +202b: ad 0c cmp y,#$0c +202d: 90 f1 bcc $2020 +202f: 2d push a +2030: e4 01 mov a,$01 +2032: 9f xcn a +2033: c4 01 mov $01,a +2035: ae pop a +2036: 8f 00 00 mov $00,#$00 +2039: 8d 08 mov y,#$08 +203b: 76 61 04 cmp a,$0461+y +203e: 60 clrc +203f: d0 04 bne $2045 +2041: 8f 01 02 mov $02,#$01 +2044: 80 setc +2045: 2b 00 rol $00 +2047: fc inc y +2048: ad 0c cmp y,#$0c +204a: 90 ef bcc $203b +204c: e4 00 mov a,$00 +204e: 9f xcn a +204f: 48 ff eor a,#$ff +2051: c4 00 mov $00,a +2053: 29 00 39 and ($39),($00) +2056: 09 01 39 or ($39),($01) +2059: 78 00 02 cmp $02,#$00 +205c: f0 07 beq $2065 +205e: 3f f2 20 call $20f2 +2061: b0 16 bcs $2079 +2063: 90 03 bcc $2068 +2065: fa 39 d5 mov ($d5),($39) +2068: 3f 36 14 call $1436 +206b: e8 00 mov a,#$00 +206d: da 47 movw $47,ya +206f: 3f 36 14 call $1436 +2072: e8 00 mov a,#$00 +2074: da 49 movw $49,ya +2076: b2 37 clr5 $37 +2078: 6f ret + +2079: 3f 36 14 call $1436 +207c: 3f 36 14 call $1436 +207f: b2 37 clr5 $37 +2081: 6f ret + +; vcmd f8 - echo volume fade +2082: c8 10 cmp x,#$10 +2084: 90 0f bcc $2095 +2086: 2d push a +2087: 3f f2 20 call $20f2 +208a: 90 08 bcc $2094 +208c: ae pop a +208d: 3f 36 14 call $1436 +2090: 3f 36 14 call $1436 +2093: 6f ret + +2094: ae pop a +2095: c4 4f mov $4f,a +2097: 3f 36 14 call $1436 +209a: c4 50 mov $50,a +209c: 80 setc +209d: a4 48 sbc a,$48 +209f: f8 4f mov x,$4f +20a1: 3f 8e 21 call $218e +20a4: da 4b movw $4b,ya +20a6: 3f 36 14 call $1436 +20a9: c4 51 mov $51,a +20ab: 80 setc +20ac: a4 4a sbc a,$4a +20ae: f8 4f mov x,$4f +20b0: 3f 8e 21 call $218e +20b3: da 4d movw $4d,ya +20b5: 6f ret + +; vcmd f6 - disable echo +20b6: da 47 movw $47,ya +20b8: da 49 movw $49,ya +20ba: a2 37 set5 $37 +20bc: 6f ret + +; vcmd f7 - set echo params +20bd: c8 10 cmp x,#$10 +20bf: 90 0f bcc $20d0 +20c1: 2d push a +20c2: 3f f2 20 call $20f2 +20c5: 90 08 bcc $20cf +20c7: ae pop a +20c8: 3f 36 14 call $1436 +20cb: 3f 36 14 call $1436 +20ce: 6f ret + +20cf: ae pop a +20d0: 3f 07 21 call $2107 +20d3: 3f 36 14 call $1436 +20d6: c4 3d mov $3d,a +20d8: 3f 36 14 call $1436 +20db: 8d 08 mov y,#$08 +20dd: cf mul ya +20de: 5d mov x,a +20df: 8d 0f mov y,#$0f +20e1: f5 44 25 mov a,$2544+x +20e4: 3f 68 10 call $1068 +20e7: 3d inc x +20e8: dd mov a,y +20e9: 60 clrc +20ea: 88 10 adc a,#$10 +20ec: fd mov y,a +20ed: 10 f2 bpl $20e1 +20ef: f8 33 mov x,$33 +20f1: 6f ret + +20f2: 6d push y +20f3: 8d 00 mov y,#$00 +20f5: f6 61 04 mov a,$0461+y +20f8: 68 ff cmp a,#$ff +20fa: d0 08 bne $2104 +20fc: fc inc y +20fd: ad 08 cmp y,#$08 +20ff: 90 f4 bcc $20f5 +2101: ee pop y +2102: 60 clrc +2103: 6f ret + +2104: ee pop y +2105: 80 setc +2106: 6f ret + +2107: c4 3c mov $3c,a +2109: 8d 7d mov y,#$7d +210b: cb f2 mov $f2,y +210d: e4 f3 mov a,$f3 +210f: 64 3c cmp a,$3c +2111: f0 28 beq $213b +2113: 28 0f and a,#$0f +2115: 48 ff eor a,#$ff +2117: f3 3b 03 bbc7 $3b,$211d +211a: 60 clrc +211b: 84 3b adc a,$3b +211d: c4 3b mov $3b,a +211f: 8d 04 mov y,#$04 +2121: f6 63 25 mov a,$2563+y +2124: c4 f2 mov $f2,a +2126: 8f 00 f3 mov $f3,#$00 +2129: fe f6 dbnz y,$2121 +212b: e4 37 mov a,$37 +212d: 08 20 or a,#$20 +212f: 8d 6c mov y,#$6c +2131: 3f 68 10 call $1068 +2134: e4 3c mov a,$3c +2136: 8d 7d mov y,#$7d +2138: 3f 68 10 call $1068 +213b: 1c asl a +213c: 1c asl a +213d: 1c asl a +213e: 48 ff eor a,#$ff +2140: 80 setc +2141: 88 ff adc a,#$ff +2143: 8d 6d mov y,#$6d +2145: 5f 68 10 jmp $1068 + +; vcmd fa - set perc patch base +2148: c4 46 mov $46,a +214a: 6f ret + +214b: f4 9a mov a,$9a+x +214d: d0 33 bne $2182 +214f: e7 19 mov a,($19+x) +2151: 68 f9 cmp a,#$f9 +2153: d0 2d bne $2182 +2155: 3f 38 14 call $1438 +2158: 3f 36 14 call $1436 +; vcmd f9 - pitch slide +215b: d4 9b mov $9b+x,a +215d: 3f 36 14 call $1436 +2160: d4 9a mov $9a+x,a +2162: 3f 36 14 call $1436 +2165: 60 clrc +2166: 84 3e adc a,$3e +2168: 95 54 03 adc a,$0354+x +216b: 28 7f and a,#$7f +216d: d5 2c 04 mov $042c+x,a +2170: 80 setc +2171: b5 fd 03 sbc a,$03fd+x +2174: fb 9a mov y,$9a+x +2176: 6d push y +2177: ce pop x +2178: 3f 8e 21 call $218e +217b: d5 14 04 mov $0414+x,a +217e: dd mov a,y +217f: d5 15 04 mov $0415+x,a +2182: 6f ret + +2183: f5 fd 03 mov a,$03fd+x +2186: c4 11 mov $11,a +2188: f5 fc 03 mov a,$03fc+x +218b: c4 10 mov $10,a +218d: 6f ret + +218e: ed notc +218f: 6b 12 ror $12 +2191: 10 03 bpl $2196 +2193: 48 ff eor a,#$ff +2195: bc inc a +2196: 8d 00 mov y,#$00 +2198: 9e div ya,x +2199: 2d push a +219a: e8 00 mov a,#$00 +219c: 9e div ya,x +219d: ee pop y +219e: f8 33 mov x,$33 +21a0: f3 12 06 bbc7 $12,$21a9 +21a3: da 14 movw $14,ya +21a5: ba 0e movw ya,$0e +21a7: 9a 14 subw ya,$14 +21a9: 6f ret + +; vcmd dispatch table +21aa: dw $1e63 ; e0 - set instrument +21ac: dw $1ee1 ; e1 - pan +21ae: dw $1eef ; e2 - pan fade +21b0: dw $1f08 ; e3 - vibrato on +21b2: dw $1f14 ; e4 - vibrato off +21b4: dw $1f2f ; e5 - master volume +21b6: dw $1f34 ; e6 - master volume fade +21b8: dw $1f46 ; e7 - tempo +21ba: dw $1f5b ; e8 - tempo fade +21bc: dw $1f80 ; e9 - per-voice transpose +21be: dw $1f83 ; ea - global transpose +21c0: dw $1f87 ; eb - tremolo on +21c2: dw $1f93 ; ec - tremolo off +21c4: dw $1fb6 ; ed - volume +21c6: dw $1fbf ; ee - volume fade +21c8: dw $1fdc ; ef - call subroutine +21ca: dw $1f1f ; f0 - vibrato fade +21cc: dw $1f97 ; f1 - pitch envelope (release) +21ce: dw $1f9c ; f2 - pitch envelope (attack) +21d0: dw $1fb2 ; f3 - pitch envelope off +21d2: dw $1fd8 ; f4 - tuning +21d4: dw $1fff ; f5 - echo vbits/volume +21d6: dw $20b6 ; f6 - disable echo +21d8: dw $20bd ; f7 - set echo params +21da: dw $2082 ; f8 - echo volume fade +21dc: dw $215b ; f9 - pitch slide +21de: dw $2148 ; fa - set perc patch base +21e0: dw $1e4d ; fb - set quantization + +; vcmd lengths +21e2: db $01,$01,$02,$03,$00,$01,$02,$01 ; e0-e7 +21fa: db $02,$01,$01,$03,$00,$01,$02,$03 ; e8-ff +22f2: db $01,$03,$03,$00,$01,$03,$00,$03 ; f0-f7 +22fa: db $03,$03,$01,$01 ; f8-fb + +21fe: f4 82 mov a,$82+x +2200: f0 2c beq $222e +2202: 09 36 45 or ($45),($36) +2205: 9b 82 dec $82+x +2207: d0 0b bne $2214 +2209: e8 00 mov a,#$00 +220b: d5 6c 03 mov $036c+x,a +220e: f5 9c 03 mov a,$039c+x +2211: 5f 24 22 jmp $2224 + +2214: 60 clrc +2215: f5 6c 03 mov a,$036c+x +2218: 95 84 03 adc a,$0384+x +221b: d5 6c 03 mov $036c+x,a +221e: f5 6d 03 mov a,$036d+x +2221: 95 85 03 adc a,$0385+x +2224: d5 6d 03 mov $036d+x,a +2227: 4d push x +2228: 2d push a +2229: 7d mov a,x +222a: 5c lsr a +222b: 5d mov x,a +222c: ae pop a +222d: ce pop x +222e: f5 45 04 mov a,$0445+x +2231: fd mov y,a +2232: f0 2c beq $2260 +2234: f5 3c 03 mov a,$033c+x +2237: 75 44 04 cmp a,$0444+x +223a: d0 1d bne $2259 +223c: 09 36 45 or ($45),($36) +223f: f5 24 03 mov a,$0324+x +2242: 10 08 bpl $224c +2244: fc inc y +2245: d0 05 bne $224c +2247: e8 80 mov a,#$80 +2249: 5f 50 22 jmp $2250 + +224c: 60 clrc +224d: 95 25 03 adc a,$0325+x +2250: d5 24 03 mov $0324+x,a +2253: 3f f6 24 call $24f6 +2256: 5f 65 22 jmp $2265 + +2259: f5 44 04 mov a,$0444+x +225c: bc inc a +225d: d5 44 04 mov $0444+x,a +2260: e8 ff mov a,#$ff +2262: 3f 05 25 call $2505 +2265: f4 83 mov a,$83+x +2267: f0 25 beq $228e +2269: 09 36 45 or ($45),($36) +226c: 9b 83 dec $83+x +226e: d0 0b bne $227b +2270: e8 00 mov a,#$00 +2272: d5 b4 03 mov $03b4+x,a +2275: f5 e4 03 mov a,$03e4+x +2278: 5f 8b 22 jmp $228b + +227b: 60 clrc +227c: f5 b4 03 mov a,$03b4+x +227f: 95 cc 03 adc a,$03cc+x +2282: d5 b4 03 mov $03b4+x,a +2285: f5 b5 03 mov a,$03b5+x +2288: 95 cd 03 adc a,$03cd+x +228b: d5 b5 03 mov $03b5+x,a +228e: e4 36 mov a,$36 +2290: 24 45 and a,$45 +2292: d0 03 bne $2297 +2294: 5f 2a 23 jmp $232a + +2297: f5 b4 03 mov a,$03b4+x +229a: fd mov y,a +229b: f5 b5 03 mov a,$03b5+x +229e: 4d push x +229f: 2d push a +22a0: 6d push y +22a1: 7d mov a,x +22a2: 5c lsr a +22a3: 5d mov x,a +22a4: f5 61 04 mov a,$0461+x +22a7: 5d mov x,a +22a8: f5 c4 0a mov a,$0ac4+x +22ab: c4 00 mov $00,a +22ad: ee pop y +22ae: ae pop a +22af: 3f 21 1b call $1b21 +22b2: ce pop x +22b3: 6d push y +22b4: fd mov y,a +22b5: ae pop a +22b6: da 10 movw $10,ya +22b8: 4d push x +22b9: 7d mov a,x +22ba: 5c lsr a +22bb: 68 08 cmp a,#$08 +22bd: 90 0d bcc $22cc +22bf: 80 setc +22c0: a8 08 sbc a,#$08 +22c2: 48 03 eor a,#$03 +22c4: 60 clrc +22c5: 88 04 adc a,#$04 +22c7: 1c asl a +22c8: 5d mov x,a +22c9: 5f df 22 jmp $22df + +22cc: 68 04 cmp a,#$04 +22ce: 90 0f bcc $22df +22d0: 80 setc +22d1: a8 04 sbc a,#$04 +22d3: 48 03 eor a,#$03 +22d5: fd mov y,a +22d6: f6 69 04 mov a,$0469+y +22d9: 30 04 bmi $22df +22db: ce pop x +22dc: 5f 2a 23 jmp $232a + +22df: 7d mov a,x +22e0: ce pop x +22e1: 9f xcn a +22e2: 5c lsr a +22e3: c4 12 mov $12,a +22e5: eb 11 mov y,$11 +22e7: f6 30 25 mov a,$2530+y +22ea: 80 setc +22eb: b6 2f 25 sbc a,$252f+y +22ee: eb 10 mov y,$10 +22f0: cf mul ya +22f1: e5 c8 0a mov a,$0ac8 +22f4: d0 04 bne $22fa +22f6: dd mov a,y +22f7: 5f ff 22 jmp $22ff + +22fa: e8 00 mov a,#$00 +22fc: 8f 0a 11 mov $11,#$0a +22ff: eb 11 mov y,$11 +2301: 60 clrc +2302: 96 2f 25 adc a,$252f+y +2305: fd mov y,a +2306: f5 9d 03 mov a,$039d+x +2309: cf mul ya +230a: f5 e5 03 mov a,$03e5+x +230d: 1c asl a +230e: 13 12 01 bbc0 $12,$2312 +2311: 1c asl a +2312: dd mov a,y +2313: 90 03 bcc $2318 +2315: 48 ff eor a,#$ff +2317: bc inc a +2318: eb 12 mov y,$12 +231a: 3f 60 10 call $1060 +231d: 8d 14 mov y,#$14 +231f: e8 00 mov a,#$00 +2321: 9a 10 subw ya,$10 +2323: da 10 movw $10,ya +2325: ab 12 inc $12 +2327: 33 12 bb bbc1 $12,$22e5 +232a: 6f ret + +232b: f4 53 mov a,$53+x +232d: d0 03 bne $2332 +232f: 5f b7 23 jmp $23b7 + +2332: 9b 53 dec $53+x +2334: f0 05 beq $233b +2336: e8 02 mov a,#$02 +2338: de 52 7c cbne $52+x,$23b7 +233b: f4 6a mov a,$6a+x +233d: c4 17 mov $17,a +233f: f4 19 mov a,$19+x +2341: fb 1a mov y,$1a+x +2343: da 14 movw $14,ya +2345: 8d 00 mov y,#$00 +2347: f7 14 mov a,($14)+y +2349: f0 26 beq $2371 +234b: 30 0e bmi $235b +234d: 68 64 cmp a,#$64 ; +234f: 90 04 bcc $2355 +2351: 68 6a cmp a,#$6a ; +2353: 90 46 bcc $239b +2355: fc inc y +2356: 30 43 bmi $239b +2358: 5f 47 23 jmp $2347 + +235b: 68 c8 cmp a,#$c8 ; rest +235d: f0 58 beq $23b7 +235f: 68 ef cmp a,#$ef ; call subroutine +2361: f0 2c beq $238f +2363: 68 e0 cmp a,#$e0 ; main vcmds +2365: 90 34 bcc $239b +2367: 6d push y +2368: fd mov y,a +2369: ae pop a +236a: 96 02 21 adc a,$2102+y +236d: fd mov y,a +236e: 5f 47 23 jmp $2347 + +2371: e4 17 mov a,$17 +2373: f0 26 beq $239b +2375: 8b 17 dec $17 +2377: d0 0b bne $2384 +2379: f5 55 02 mov a,$0255+x +237c: 2d push a +237d: f5 54 02 mov a,$0254+x +2380: ee pop y +2381: 5f 43 23 jmp $2343 + +2384: f5 6d 02 mov a,$026d+x +2387: 2d push a +2388: f5 6c 02 mov a,$026c+x +238b: ee pop y +238c: 5f 43 23 jmp $2343 + +238f: fc inc y +2390: f7 14 mov a,($14)+y +2392: 2d push a +2393: fc inc y +2394: f7 14 mov a,($14)+y +2396: fd mov y,a +2397: ae pop a +2398: 5f 43 23 jmp $2343 + +239b: 7d mov a,x +239c: 5c lsr a +239d: 68 04 cmp a,#$04 +239f: 90 0f bcc $23b0 +23a1: 68 08 cmp a,#$08 +23a3: b0 0b bcs $23b0 +23a5: 80 setc +23a6: a8 04 sbc a,#$04 +23a8: 48 03 eor a,#$03 +23aa: fd mov y,a +23ab: f6 69 04 mov a,$0469+y +23ae: 10 07 bpl $23b7 +23b0: e4 36 mov a,$36 +23b2: 8d 5c mov y,#$5c +23b4: 3f 60 10 call $1060 +23b7: f2 13 clr7 $13 +23b9: f4 9a mov a,$9a+x +23bb: f0 2e beq $23eb +23bd: f4 9b mov a,$9b+x +23bf: f0 05 beq $23c6 +23c1: 9b 9b dec $9b+x +23c3: 5f eb 23 jmp $23eb + +23c6: e2 13 set7 $13 +23c8: 9b 9a dec $9a+x +23ca: d0 0c bne $23d8 +23cc: f5 2d 04 mov a,$042d+x +23cf: d5 fc 03 mov $03fc+x,a +23d2: f5 2c 04 mov a,$042c+x +23d5: 5f e8 23 jmp $23e8 + +23d8: 60 clrc +23d9: f5 fc 03 mov a,$03fc+x +23dc: 95 14 04 adc a,$0414+x +23df: d5 fc 03 mov $03fc+x,a +23e2: f5 fd 03 mov a,$03fd+x +23e5: 95 15 04 adc a,$0415+x +23e8: d5 fd 03 mov $03fd+x,a +23eb: 3f 83 21 call $2183 +23ee: f4 b3 mov a,$b3+x +23f0: f0 51 beq $2443 +23f2: f5 f4 02 mov a,$02f4+x +23f5: de b2 49 cbne $b2+x,$2441 +23f8: f5 0c 01 mov a,$010c+x +23fb: 75 f5 02 cmp a,$02f5+x +23fe: d0 06 bne $2406 +2400: f5 0d 03 mov a,$030d+x +2403: 5f 13 24 jmp $2413 + +2406: 40 setp +2407: bb 0c inc $0c+x +2409: 20 clrp +240a: fd mov y,a +240b: f0 02 beq $240f +240d: f4 b3 mov a,$b3+x +240f: 60 clrc +2410: 95 0c 03 adc a,$030c+x +2413: d4 b3 mov $b3+x,a +2415: f5 dc 02 mov a,$02dc+x +2418: 60 clrc +2419: 95 dd 02 adc a,$02dd+x +241c: d5 dc 02 mov $02dc+x,a +241f: c4 12 mov $12,a +2421: 1c asl a +2422: 1c asl a +2423: 90 02 bcc $2427 +2425: 48 ff eor a,#$ff +2427: fd mov y,a +2428: f4 b3 mov a,$b3+x +242a: 68 f1 cmp a,#$f1 +242c: 90 06 bcc $2434 +242e: 28 0f and a,#$0f +2430: cf mul ya +2431: 5f 38 24 jmp $2438 + +2434: cf mul ya +2435: dd mov a,y +2436: 8d 00 mov y,#$00 +2438: 3f e0 24 call $24e0 +243b: 4d push x +243c: 3f ba 0f call $0fba +243f: ce pop x +2440: 6f ret + +2441: bb b2 inc $b2+x +2443: e3 13 f5 bbs7 $13,$243b +2446: 6f ret + +2447: f2 13 clr7 $13 +2449: f5 45 04 mov a,$0445+x +244c: f0 0b beq $2459 +244e: f5 3c 03 mov a,$033c+x +2451: 75 44 04 cmp a,$0444+x +2454: d0 03 bne $2459 +2456: 3f e8 24 call $24e8 +2459: f5 b5 03 mov a,$03b5+x +245c: fd mov y,a +245d: f5 b4 03 mov a,$03b4+x +2460: da 10 movw $10,ya +2462: f4 83 mov a,$83+x +2464: d0 05 bne $246b +2466: ba 10 movw ya,$10 +2468: 5f 75 24 jmp $2475 + +246b: f5 cd 03 mov a,$03cd+x +246e: fd mov y,a +246f: f5 cc 03 mov a,$03cc+x +2472: 3f c8 24 call $24c8 +2475: 6d push y +2476: fd mov y,a +2477: ae pop a +2478: 4d push x +2479: 2d push a +247a: 6d push y +247b: 7d mov a,x +247c: 5c lsr a +247d: 5d mov x,a +247e: f5 61 04 mov a,$0461+x +2481: 5d mov x,a +2482: f5 c4 0a mov a,$0ac4+x +2485: c4 00 mov $00,a +2487: ee pop y +2488: ae pop a +2489: 3f 21 1b call $1b21 +248c: ce pop x +248d: 6d push y +248e: fd mov y,a +248f: ae pop a +2490: da 10 movw $10,ya +2492: f3 13 03 bbc7 $13,$2498 +2495: 3f b8 22 call $22b8 +2498: f2 13 clr7 $13 +249a: 3f 83 21 call $2183 +249d: f4 9a mov a,$9a+x +249f: f0 0e beq $24af +24a1: f4 9b mov a,$9b+x +24a3: d0 0a bne $24af +24a5: f5 15 04 mov a,$0415+x +24a8: fd mov y,a +24a9: f5 14 04 mov a,$0414+x +24ac: 3f c8 24 call $24c8 +24af: f4 b3 mov a,$b3+x +24b1: f0 90 beq $2443 +24b3: f5 f4 02 mov a,$02f4+x +24b6: de b2 8a cbne $b2+x,$2443 +24b9: ec 5c 04 mov y,$045c +24bc: f5 dd 02 mov a,$02dd+x +24bf: cf mul ya +24c0: dd mov a,y +24c1: 60 clrc +24c2: 95 dc 02 adc a,$02dc+x +24c5: 5f 1f 24 jmp $241f + +24c8: e2 13 set7 $13 +24ca: cb 12 mov $12,y +24cc: 3f a0 21 call $21a0 +24cf: 6d push y +24d0: ec 5c 04 mov y,$045c +24d3: cf mul ya +24d4: cb 14 mov $14,y +24d6: 8f 00 15 mov $15,#$00 +24d9: ec 5c 04 mov y,$045c +24dc: ae pop a +24dd: cf mul ya +24de: 7a 14 addw ya,$14 +24e0: 3f a0 21 call $21a0 +24e3: 7a 10 addw ya,$10 +24e5: da 10 movw $10,ya +24e7: 6f ret + +24e8: e2 13 set7 $13 +24ea: ec 5c 04 mov y,$045c +24ed: f5 25 03 mov a,$0325+x +24f0: cf mul ya +24f1: dd mov a,y +24f2: 60 clrc +24f3: 95 24 03 adc a,$0324+x +24f6: 1c asl a +24f7: 90 02 bcc $24fb +24f9: 48 ff eor a,#$ff +24fb: 2d push a +24fc: f5 45 04 mov a,$0445+x +24ff: fd mov y,a +2500: ae pop a +2501: cf mul ya +2502: dd mov a,y +2503: 48 ff eor a,#$ff +2505: eb 40 mov y,$40 +2507: cf mul ya +2508: f5 24 02 mov a,$0224+x +250b: cf mul ya +250c: f5 6d 03 mov a,$036d+x +250f: 4d push x +2510: 6d push y +2511: 2d push a +2512: 7d mov a,x +2513: 5c lsr a +2514: 5d mov x,a +2515: f5 61 04 mov a,$0461+x +2518: 5d mov x,a +2519: f5 c0 0a mov a,$0ac0+x +251c: c4 00 mov $00,a +251e: ae pop a +251f: 3f c3 1a call $1ac3 +2522: ee pop y +2523: ce pop x +2524: 09 36 45 or ($45),($36) +2527: cf mul ya +2528: dd mov a,y +2529: cf mul ya +252a: dd mov a,y +252b: d5 9d 03 mov $039d+x,a +252e: 6f ret + +; pan table +252f: db $00,$01,$03,$07,$0d,$15,$1e,$29 +2537: db $34,$42,$51,$5e,$67,$6e,$73,$77 +253f: db $7a,$7c,$7d,$7e,$7f + +; echo FIR presets +2544: db $7f,$00,$00,$00,$00,$00,$00,$00 +254c: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c +2554: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 +255c: db $34,$33,$00,$d9,$e5,$01,$fc,$eb + +; dsp shadow addrs for dsp regs +2564: db $2c,$3c,$0d,$4d,$6c,$4c,$5c,$3d +256c: db $2d,$5c,$48,$4a,$3d,$39,$37,$34 +2574: db $35,$38,$3a,$35 + +; pitch table +257a: dw $08de +257c: dw $0965 +257e: dw $09f4 +2580: dw $0a8c +2582: dw $0b2c +2584: dw $0bd6 +2586: dw $0c8b +2588: dw $0d4a +258a: dw $0e14 +258c: dw $0eea +258e: dw $0fcd +2590: dw $10be + +2592: db "*Ver S1.20*" + +; note dur%'s +259d: db $32,$65,$7f,$98,$b2,$cb,$e5,$fc +; per-note velocity values +25a5: db $0a,$19,$28,$3c,$50,$64,$7d,$96 + +25ad: db $aa,$b9,$c8,$d4,$e1,$eb,$f5,$ff diff --git a/snes/NSPC/CP.BRAiN/Okamoto Ayako to Match Play Golf ($0800).bin b/snes/NSPC/CP.BRAiN/Okamoto Ayako to Match Play Golf ($0800).bin new file mode 100644 index 00000000..f26b80de Binary files /dev/null and b/snes/NSPC/CP.BRAiN/Okamoto Ayako to Match Play Golf ($0800).bin differ diff --git a/snes/NSPC/CP.BRAiN/Okamoto Ayako to Match Play Golf.s b/snes/NSPC/CP.BRAiN/Okamoto Ayako to Match Play Golf.s new file mode 100644 index 00000000..c4c657af --- /dev/null +++ b/snes/NSPC/CP.BRAiN/Okamoto Ayako to Match Play Golf.s @@ -0,0 +1,1988 @@ +0800: 20 clrp +0801: cd 1f mov x,#$1f +0803: bd mov sp,x +0804: e8 00 mov a,#$00 +0806: 5d mov x,a +0807: af mov (x)+,a +0808: c8 f0 cmp x,#$f0 +080a: d0 fb bne $0807 +080c: 8f 02 01 mov $01,#$02 +080f: e8 00 mov a,#$00 +0811: c4 00 mov $00,a +0813: fd mov y,a +0814: d7 00 mov ($00)+y,a +0816: ab 00 inc $00 +0818: d0 fa bne $0814 +081a: ab 01 inc $01 +081c: 78 08 01 cmp $01,#$08 +081f: 90 f3 bcc $0814 +0821: 3f 03 13 call $1303 +0824: 3f 15 13 call $1315 +0827: e8 01 mov a,#$01 +0829: 3f ef 0d call $0def +082c: a2 33 set5 $33 +082e: e8 7f mov a,#$7f +0830: 8d 0c mov y,#$0c +0832: 3f bf 09 call $09bf +0835: 8d 1c mov y,#$1c +0837: 3f bf 09 call $09bf +083a: e8 1b mov a,#$1b +083c: 8d 5d mov y,#$5d +083e: 3f bf 09 call $09bf +0841: 3f 0c 17 call $170c +0844: 8f f0 f1 mov $f1,#$f0 +0847: e8 20 mov a,#$20 +0849: c4 fa mov $fa,a +084b: 8f 01 f1 mov $f1,#$01 +084e: 3f bd 16 call $16bd +0851: e4 dc mov a,$dc +0853: f0 62 beq $08b7 +0855: eb fd mov y,$fd +0857: f0 fc beq $0855 +0859: cc e4 00 mov $00e4,y +085c: e8 20 mov a,#$20 +085e: cf mul ya +085f: 60 clrc +0860: 84 dd adc a,$dd +0862: c4 dd mov $dd,a +0864: 90 07 bcc $086d +0866: 69 38 37 cmp ($37),($38) +0869: f0 02 beq $086d +086b: ab 37 inc $37 +086d: e4 eb mov a,$eb +086f: d0 46 bne $08b7 +0871: 3f de 09 call $09de +0874: 3f 96 0a call $0a96 +0877: 3f 20 0a call $0a20 +087a: e5 e9 00 mov a,$00e9 +087d: 04 c2 or a,$c2 +087f: c4 c2 mov $c2,a +0881: cd 00 mov x,#$00 +0883: c9 e9 00 mov $00e9,x +0886: 8f 01 32 mov $32,#$01 +0889: f5 e0 03 mov a,$03e0+x +088c: 30 15 bmi $08a3 +088e: c4 07 mov $07,a +0890: f5 e1 03 mov a,$03e1+x +0893: f0 0b beq $08a0 +0895: 3f 2d 0b call $0b2d +0898: 3f 59 0b call $0b59 +089b: 3f 85 0b call $0b85 +089e: 2f 03 bra $08a3 +08a0: 3f 0e 16 call $160e +08a3: e8 00 mov a,#$00 +08a5: d5 e1 03 mov $03e1+x,a +08a8: 3d inc x +08a9: 3d inc x +08aa: c8 10 cmp x,#$10 +08ac: d0 05 bne $08b3 +08ae: 8f ff d0 mov $d0,#$ff +08b1: 2f d3 bra $0886 +08b3: 0b 32 asl $32 +08b5: d0 d2 bne $0889 +08b7: 3f af 14 call $14af +08ba: 3f 37 10 call $1037 +08bd: 3f fe 14 call $14fe +08c0: 2f 8c bra $084e +08c2: 6f ret + +; handle a note vcmd (80-df) +08c3: ad ca cmp y,#$ca +08c5: 90 05 bcc $08cc +; vcmds ca-df - percussion note +08c7: 3f 30 0c call $0c30 +08ca: 8d a4 mov y,#$a4 +; vcmds 80-c7,c8,c9 - note/tie/rest +08cc: ad c8 cmp y,#$c8 +08ce: b0 f2 bcs $08c2 +08d0: fa d0 d1 mov ($d1),($d0) +08d3: 29 32 d1 and ($d1),($32) +08d6: f0 ea beq $08c2 +; vcmds 80-c7 - note (not number in Y) +08d8: dd mov a,y +08d9: eb 07 mov y,$07 +08db: 28 7f and a,#$7f +08dd: 60 clrc +08de: 96 a5 07 adc a,$07a5+y +08e1: 60 clrc +08e2: 95 c0 03 adc a,$03c0+x +08e5: d5 81 02 mov $0281+x,a +08e8: f5 c1 02 mov a,$02c1+x +08eb: d5 80 02 mov $0280+x,a +08ee: f5 41 03 mov a,$0341+x +08f1: 5c lsr a +08f2: e8 00 mov a,#$00 +08f4: 7c ror a +08f5: d5 20 03 mov $0320+x,a +08f8: e8 00 mov a,#$00 +08fa: d4 83 mov $83+x,a +08fc: d5 20 01 mov $0120+x,a +08ff: d5 80 03 mov $0380+x,a +0902: d4 82 mov $82+x,a +0904: 09 32 c2 or ($c2),($32) +0907: 09 32 30 or ($30),($32) +090a: f5 e0 02 mov a,$02e0+x +090d: d4 a2 mov $a2+x,a +090f: f0 1e beq $092f +0911: f5 e1 02 mov a,$02e1+x +0914: d4 a3 mov $a3+x,a +0916: f5 00 03 mov a,$0300+x +0919: d0 0a bne $0925 +091b: f5 81 02 mov a,$0281+x +091e: 80 setc +091f: b5 01 03 sbc a,$0301+x +0922: d5 81 02 mov $0281+x,a +0925: f5 01 03 mov a,$0301+x +0928: 60 clrc +0929: 95 81 02 adc a,$0281+x +092c: 3f 56 0e call $0e56 +092f: 3f 6e 0e call $0e6e +0932: 8d 00 mov y,#$00 +0934: e4 cd mov a,$cd +0936: 80 setc +0937: a8 34 sbc a,#$34 +0939: b0 09 bcs $0944 +093b: e4 cd mov a,$cd +093d: 80 setc +093e: a8 13 sbc a,#$13 +0940: b0 06 bcs $0948 +0942: dc dec y +0943: 1c asl a +0944: 7a cc addw ya,$cc +0946: da cc movw $cc,ya +0948: 4d push x +0949: e4 cd mov a,$cd +094b: 1c asl a +094c: 8d 00 mov y,#$00 +094e: cd 18 mov x,#$18 +0950: 9e div ya,x +0951: 5d mov x,a +0952: f6 c5 09 mov a,$09c5+y +0955: c4 0d mov $0d,a +0957: f6 c4 09 mov a,$09c4+y +095a: c4 0c mov $0c,a +095c: f6 c7 09 mov a,$09c7+y +095f: 2d push a +0960: f6 c6 09 mov a,$09c6+y +0963: ee pop y +0964: 9a 0c subw ya,$0c +0966: eb cc mov y,$cc +0968: cf mul ya +0969: dd mov a,y +096a: 8d 00 mov y,#$00 +096c: 7a 0c addw ya,$0c +096e: cb 0d mov $0d,y +0970: 1c asl a +0971: 2b 0d rol $0d +0973: c4 0c mov $0c,a +0975: 2f 04 bra $097b +0977: 4b 0d lsr $0d +0979: 7c ror a +097a: 3d inc x +097b: c8 06 cmp x,#$06 +097d: d0 f8 bne $0977 +097f: c4 0c mov $0c,a +0981: ce pop x +0982: f5 a0 01 mov a,$01a0+x +0985: eb 0d mov y,$0d +0987: cf mul ya +0988: da 0e movw $0e,ya +098a: f5 a0 01 mov a,$01a0+x +098d: eb 0c mov y,$0c +098f: cf mul ya +0990: 6d push y +0991: f5 a1 01 mov a,$01a1+x +0994: eb 0c mov y,$0c +0996: cf mul ya +0997: 7a 0e addw ya,$0e +0999: da 0e movw $0e,ya +099b: f5 a1 01 mov a,$01a1+x +099e: eb 0d mov y,$0d +09a0: cf mul ya +09a1: fd mov y,a +09a2: ae pop a +09a3: 7a 0e addw ya,$0e +09a5: da 0e movw $0e,ya +09a7: 7d mov a,x +09a8: 28 0f and a,#$0f +09aa: 9f xcn a +09ab: 5c lsr a +09ac: 08 02 or a,#$02 +09ae: fd mov y,a +09af: e4 0e mov a,$0e +09b1: 3f b7 09 call $09b7 +09b4: fc inc y +09b5: e4 0f mov a,$0f +09b7: fa d0 d1 mov ($d1),($d0) +09ba: 29 32 d1 and ($d1),($32) +09bd: f0 04 beq $09c3 +09bf: cb f2 mov $f2,y +09c1: c4 f3 mov $f3,a +09c3: 6f ret + +; pitch table +09c4: dw $085f +09c6: dw $08de +09c8: dw $0965 +09ca: dw $09f4 +09cc: dw $0a8c +09ce: dw $0b2c +09d0: dw $0bd6 +09d2: dw $0c8b +09d4: dw $0d4a +09d6: dw $0e14 +09d8: dw $0eea +09da: dw $0fcd +09dc: dw $10be + +09de: 8f 00 c2 mov $c2,#$00 +09e1: e8 03 mov a,#$03 +09e3: c4 07 mov $07,a +09e5: 8f ff d0 mov $d0,#$ff +09e8: f8 07 mov x,$07 +09ea: d0 03 bne $09ef +09ec: 3f 20 0a call $0a20 +09ef: f5 87 07 mov a,$0787+x +09f2: f0 1e beq $0a12 +09f4: c4 db mov $db,a +09f6: ec e4 00 mov y,$00e4 +09f9: f5 0c 04 mov a,$040c+x +09fc: cf mul ya +09fd: 60 clrc +09fe: 95 00 04 adc a,$0400+x +0a01: d5 00 04 mov $0400+x,a +0a04: dd mov a,y +0a05: 88 00 adc a,#$00 +0a07: f0 09 beq $0a12 +0a09: c4 da mov $da,a +0a0b: 3f 32 0a call $0a32 +0a0e: 8b da dec $da +0a10: d0 f9 bne $0a0b +0a12: 8b 07 dec $07 +0a14: 10 d2 bpl $09e8 +0a16: 6f ret + +0a17: dd mov a,y +0a18: f0 06 beq $0a20 +0a1a: f6 87 07 mov a,$0787+y +0a1d: c4 d0 mov $d0,a +0a1f: 6f ret + +0a20: e5 88 07 mov a,$0788 +0a23: 05 89 07 or a,$0789 +0a26: 05 8a 07 or a,$078a +0a29: 45 87 07 eor a,$0787 +0a2c: 25 87 07 and a,$0787 +0a2f: c4 d0 mov $d0,a +0a31: 6f ret + +0a32: cd 00 mov x,#$00 +0a34: 8f 01 32 mov $32,#$01 +0a37: e4 07 mov a,$07 +0a39: f0 02 beq $0a3d +0a3b: cd 10 mov x,#$10 +0a3d: 4b db lsr $db +0a3f: 90 4e bcc $0a8f +0a41: d8 de mov $de,x +0a43: e8 01 mov a,#$01 +0a45: d5 e1 03 mov $03e1+x,a +0a48: 9b 42 dec $42+x +0a4a: d0 3d bne $0a89 +0a4c: 3f 25 0c call $0c25 +0a4f: d0 05 bne $0a56 +; vcmd 00 - end repeat/return +0a51: e4 07 mov a,$07 +0a53: 5f d9 11 jmp $11d9 + +; vcmd branches +0a56: 30 13 bmi $0a6b +0a58: d5 60 01 mov $0160+x,a +0a5b: 3f 25 0c call $0c25 +0a5e: 30 0b bmi $0a6b +0a60: f0 ef beq $0a51 +0a62: 60 clrc +0a63: 95 60 01 adc a,$0160+x +0a66: d5 60 01 mov $0160+x,a +0a69: 2f f0 bra $0a5b +; vcmd branches 80-ff +0a6b: 68 e0 cmp a,#$e0 +0a6d: 90 05 bcc $0a74 +0a6f: 3f 13 0c call $0c13 +0a72: 2f d8 bra $0a4c +; vcmds 80-df - note +0a74: 3f c3 08 call $08c3 +0a77: f5 60 01 mov a,$0160+x +0a7a: d4 42 mov $42+x,a +0a7c: fd mov y,a +0a7d: f5 61 01 mov a,$0161+x +0a80: cf mul ya +0a81: dd mov a,y +0a82: d0 01 bne $0a85 +0a84: bc inc a +0a85: d4 43 mov $43+x,a +0a87: 2f 03 bra $0a8c +0a89: 3f 44 15 call $1544 +0a8c: 3f 33 0e call $0e33 +0a8f: 3d inc x +0a90: 3d inc x +0a91: 0b 32 asl $32 +0a93: d0 a8 bne $0a3d +0a95: 6f ret + +0a96: cd 03 mov x,#$03 +0a98: 3f bb 0a call $0abb +0a9b: 3f de 0a call $0ade +0a9e: 1d dec x +0a9f: 10 f7 bpl $0a98 +0aa1: e4 cb mov a,$cb +0aa3: f0 15 beq $0aba +0aa5: ba c7 movw ya,$c7 +0aa7: 7a c3 addw ya,$c3 +0aa9: da c3 movw $c3,ya +0aab: ba c9 movw ya,$c9 +0aad: 7a c5 addw ya,$c5 +0aaf: 6e cb 06 dbnz $cb,$0ab8 +0ab2: ba cb movw ya,$cb +0ab4: da c3 movw $c3,ya +0ab6: eb e2 mov y,$e2 +0ab8: da c5 movw $c5,ya +0aba: 6f ret + +0abb: f4 d6 mov a,$d6+x +0abd: f0 1e beq $0add +0abf: 9b d6 dec $d6+x +0ac1: f0 14 beq $0ad7 +0ac3: f5 14 04 mov a,$0414+x +0ac6: 60 clrc +0ac7: 95 08 04 adc a,$0408+x +0aca: d5 08 04 mov $0408+x,a +0acd: f5 18 04 mov a,$0418+x +0ad0: 95 0c 04 adc a,$040c+x +0ad3: d5 0c 04 mov $040c+x,a +0ad6: 6f ret + +0ad7: f5 10 04 mov a,$0410+x +0ada: d5 0c 04 mov $040c+x,a +0add: 6f ret + +0ade: f4 d2 mov a,$d2+x +0ae0: f0 1e beq $0b00 +0ae2: 1c asl a +0ae3: e5 87 07 mov a,$0787 +0ae6: 04 c2 or a,$c2 +0ae8: c4 c2 mov $c2,a +0aea: 90 23 bcc $0b0f +0aec: f5 95 07 mov a,$0795+x +0aef: 80 setc +0af0: b5 9d 07 sbc a,$079d+x +0af3: d5 95 07 mov $0795+x,a +0af6: f5 99 07 mov a,$0799+x +0af9: a8 00 sbc a,#$00 +0afb: 90 04 bcc $0b01 +0afd: d5 99 07 mov $0799+x,a +0b00: 6f ret + +0b01: e8 00 mov a,#$00 +0b03: d5 99 07 mov $0799+x,a +0b06: d4 d2 mov $d2+x,a +0b08: 4d push x +0b09: 7d mov a,x +0b0a: 3f d9 11 call $11d9 +0b0d: ce pop x +0b0e: 6f ret + +0b0f: f5 9d 07 mov a,$079d+x +0b12: 60 clrc +0b13: 95 95 07 adc a,$0795+x +0b16: d5 95 07 mov $0795+x,a +0b19: e8 00 mov a,#$00 +0b1b: 95 99 07 adc a,$0799+x +0b1e: b0 04 bcs $0b24 +0b20: d5 99 07 mov $0799+x,a +0b23: 6f ret + +0b24: e8 ff mov a,#$ff +0b26: d5 99 07 mov $0799+x,a +0b29: bc inc a +0b2a: d4 d2 mov $d2+x,a +0b2c: 6f ret + +0b2d: f4 62 mov a,$62+x +0b2f: f0 27 beq $0b58 +0b31: 09 32 c2 or ($c2),($32) +0b34: 9b 62 dec $62+x +0b36: d0 0a bne $0b42 +0b38: e8 00 mov a,#$00 +0b3a: d5 c0 01 mov $01c0+x,a +0b3d: f5 00 02 mov a,$0200+x +0b40: 2f 10 bra $0b52 +0b42: 60 clrc +0b43: f5 c0 01 mov a,$01c0+x +0b46: 95 e0 01 adc a,$01e0+x +0b49: d5 c0 01 mov $01c0+x,a +0b4c: f5 c1 01 mov a,$01c1+x +0b4f: 95 e1 01 adc a,$01e1+x +0b52: d5 c1 01 mov $01c1+x,a +0b55: d5 c1 03 mov $03c1+x,a +0b58: 6f ret + +0b59: f5 21 01 mov a,$0121+x +0b5c: fd mov y,a +0b5d: f0 21 beq $0b80 +0b5f: f5 a1 03 mov a,$03a1+x +0b62: de 82 19 cbne $82+x,$0b7e +0b65: 09 32 c2 or ($c2),($32) +0b68: f5 80 03 mov a,$0380+x +0b6b: 10 07 bpl $0b74 +0b6d: fc inc y +0b6e: d0 04 bne $0b74 +0b70: e8 80 mov a,#$80 +0b72: 2f 04 bra $0b78 +0b74: 60 clrc +0b75: 95 81 03 adc a,$0381+x +0b78: d5 80 03 mov $0380+x,a +0b7b: 5f 9d 16 jmp $169d + +0b7e: bb 82 inc $82+x +0b80: e8 ff mov a,#$ff +0b82: 5f aa 16 jmp $16aa + +0b85: f4 63 mov a,$63+x +0b87: f0 24 beq $0bad +0b89: 09 32 c2 or ($c2),($32) +0b8c: 9b 63 dec $63+x +0b8e: d0 0a bne $0b9a +0b90: e8 00 mov a,#$00 +0b92: d5 20 02 mov $0220+x,a +0b95: f5 60 02 mov a,$0260+x +0b98: 2f 10 bra $0baa +0b9a: 60 clrc +0b9b: f5 20 02 mov a,$0220+x +0b9e: 95 40 02 adc a,$0240+x +0ba1: d5 20 02 mov $0220+x,a +0ba4: f5 21 02 mov a,$0221+x +0ba7: 95 41 02 adc a,$0241+x +0baa: d5 21 02 mov $0221+x,a +0bad: e4 32 mov a,$32 +0baf: 24 c2 and a,$c2 +0bb1: f0 4a beq $0bfd +0bb3: f5 21 02 mov a,$0221+x +0bb6: fd mov y,a +0bb7: f5 20 02 mov a,$0220+x +0bba: da cc movw $cc,ya +0bbc: 7d mov a,x +0bbd: 28 0f and a,#$0f +0bbf: 9f xcn a +0bc0: 5c lsr a +0bc1: c4 ce mov $ce,a +0bc3: eb cd mov y,$cd +0bc5: f6 ff 0b mov a,$0bff+y +0bc8: 80 setc +0bc9: b6 fe 0b sbc a,$0bfe+y +0bcc: eb cc mov y,$cc +0bce: cf mul ya +0bcf: dd mov a,y +0bd0: eb cd mov y,$cd +0bd2: 60 clrc +0bd3: 96 fe 0b adc a,$0bfe+y +0bd6: fd mov y,a +0bd7: f5 01 02 mov a,$0201+x +0bda: cf mul ya +0bdb: f5 61 02 mov a,$0261+x +0bde: 1c asl a +0bdf: 13 ce 01 bbc0 $ce,$0be3 +0be2: 1c asl a +0be3: dd mov a,y +0be4: 28 7f and a,#$7f +0be6: 90 03 bcc $0beb +0be8: 48 ff eor a,#$ff +0bea: bc inc a +0beb: eb ce mov y,$ce +0bed: 3f b7 09 call $09b7 +0bf0: 8d 14 mov y,#$14 +0bf2: e8 00 mov a,#$00 +0bf4: 9a cc subw ya,$cc +0bf6: da cc movw $cc,ya +0bf8: ab ce inc $ce +0bfa: 33 ce c6 bbc1 $ce,$0bc3 +0bfd: 6f ret + +; pan table +0bfe: db $00,$01,$03,$07,$0d,$15,$1e,$29 +0c06: db $34,$42,$51,$5e,$67,$6e,$73,$77 +0c0e: db $7a,$7c,$7d,$7e,$7f + +; dispatch vcmd in A (eo-ff) +0c13: 1c asl a +0c14: fd mov y,a +0c15: f6 d7 0d mov a,$0dd7+y +0c18: 2d push a +0c19: f6 d6 0d mov a,$0dd6+y +0c1c: 2d push a +0c1d: dd mov a,y +0c1e: 5c lsr a +0c1f: fd mov y,a +0c20: f6 70 0e mov a,$0e70+y +0c23: f0 08 beq $0c2d +; read new argument to A and Y +0c25: e7 10 mov a,($10+x) +; advance reading ptr +0c27: bb 10 inc $10+x +0c29: d0 02 bne $0c2d +0c2b: bb 11 inc $11+x +0c2d: fd mov y,a +0c2e: 6f ret + +; vcmd fb - nop +0c2f: 6f ret + +; vcmd e0 - set instrument +0c30: d5 80 01 mov $0180+x,a +0c33: fa d0 d1 mov ($d1),($d0) +0c36: 29 32 d1 and ($d1),($32) +0c39: f0 4f beq $0c8a +0c3b: fd mov y,a +0c3c: 10 06 bpl $0c44 +0c3e: 80 setc +0c3f: a8 ca sbc a,#$ca +0c41: 60 clrc +0c42: 84 df adc a,$df +0c44: 8d 06 mov y,#$06 +0c46: cf mul ya +0c47: da 0c movw $0c,ya +0c49: 60 clrc +0c4a: 98 00 0c adc $0c,#$00 +0c4d: 98 18 0d adc $0d,#$18 +0c50: 4d push x +0c51: 7d mov a,x +0c52: 28 0f and a,#$0f +0c54: 9f xcn a +0c55: 5c lsr a +0c56: 08 04 or a,#$04 +0c58: 5d mov x,a +0c59: 8d 00 mov y,#$00 +0c5b: f7 0c mov a,($0c)+y +0c5d: 10 0e bpl $0c6d +0c5f: 28 1f and a,#$1f +0c61: 38 20 33 and $33,#$20 +0c64: 0e 33 00 tset1 $0033 +0c67: 09 32 34 or ($34),($32) +0c6a: dd mov a,y +0c6b: 2f 07 bra $0c74 +0c6d: e4 32 mov a,$32 +0c6f: 4e 34 00 tclr1 $0034 +0c72: f7 0c mov a,($0c)+y +0c74: d8 f2 mov $f2,x +0c76: c4 f3 mov $f3,a +0c78: 3d inc x +0c79: fc inc y +0c7a: ad 04 cmp y,#$04 +0c7c: d0 f4 bne $0c72 +0c7e: ce pop x +0c7f: f7 0c mov a,($0c)+y +0c81: d5 a1 01 mov $01a1+x,a +0c84: fc inc y +0c85: f7 0c mov a,($0c)+y +0c87: d5 a0 01 mov $01a0+x,a +0c8a: 6f ret + +; vcmd e1 - pan +0c8b: d5 61 02 mov $0261+x,a +0c8e: 28 1f and a,#$1f +0c90: d5 21 02 mov $0221+x,a +0c93: e8 00 mov a,#$00 +0c95: d5 20 02 mov $0220+x,a +0c98: 6f ret + +; vcmd e2 - pan fade +0c99: d4 63 mov $63+x,a +0c9b: 2d push a +0c9c: 3f 25 0c call $0c25 +0c9f: d5 60 02 mov $0260+x,a +0ca2: 80 setc +0ca3: b5 21 02 sbc a,$0221+x +0ca6: ce pop x +0ca7: 3f 79 0e call $0e79 +0caa: d5 40 02 mov $0240+x,a +0cad: dd mov a,y +0cae: d5 41 02 mov $0241+x,a +0cb1: 6f ret + +; vcmd e3 - vibrato on +0cb2: d5 40 03 mov $0340+x,a +0cb5: 3f 25 0c call $0c25 +0cb8: d5 21 03 mov $0321+x,a +0cbb: 3f 25 0c call $0c25 +; vcmd e4 - vibrato off +0cbe: d5 a0 03 mov $03a0+x,a +0cc1: d5 61 03 mov $0361+x,a +0cc4: e8 00 mov a,#$00 +0cc6: d5 41 03 mov $0341+x,a +0cc9: 6f ret + +; vcmd f0 - vibrato fade +0cca: d5 41 03 mov $0341+x,a +0ccd: 2d push a +0cce: 8d 00 mov y,#$00 +0cd0: f5 a0 03 mov a,$03a0+x +0cd3: ce pop x +0cd4: 9e div ya,x +0cd5: f8 de mov x,$de +0cd7: d5 60 03 mov $0360+x,a +0cda: 6f ret + +; vcmd e5 - nop +0cdb: 6f ret + +; vcmd e6 - skip to next byte +0cdc: 5f 25 0c jmp $0c25 + +; vcmd e7 - tempo +0cdf: eb 07 mov y,$07 +0ce1: d6 0c 04 mov $040c+y,a +0ce4: d6 04 04 mov $0404+y,a +0ce7: e8 00 mov a,#$00 +0ce9: d6 08 04 mov $0408+y,a +0cec: 6f ret + +; vcmd e8 - tempo fade +0ced: eb 07 mov y,$07 +0cef: d6 d6 00 mov $00d6+y,a +0cf2: 2d push a +0cf3: 3f 25 0c call $0c25 +0cf6: eb 07 mov y,$07 +0cf8: d6 10 04 mov $0410+y,a +0cfb: 80 setc +0cfc: b6 0c 04 sbc a,$040c+y +0cff: ce pop x +0d00: 3f 79 0e call $0e79 +0d03: 6d push y +0d04: eb 07 mov y,$07 +0d06: d6 14 04 mov $0414+y,a +0d09: ae pop a +0d0a: d6 18 04 mov $0418+y,a +0d0d: 6f ret + +; vcmd e9 - global transpose +0d0e: eb 07 mov y,$07 +0d10: d6 a5 07 mov $07a5+y,a +0d13: 6f ret + +; vcmd ea - per-voice transpose +0d14: d5 c0 03 mov $03c0+x,a +0d17: 6f ret + +; vcmd eb - tremolo on +0d18: d5 a1 03 mov $03a1+x,a +0d1b: 3f 25 0c call $0c25 +0d1e: d5 81 03 mov $0381+x,a +0d21: 3f 25 0c call $0c25 +; vcmd ec - tremolo off +0d24: d5 21 01 mov $0121+x,a +0d27: 6f ret + +; vcmd f1 - pitch envelope (release) +0d28: e8 01 mov a,#$01 +0d2a: 5f 2f 0d jmp $0d2f + +; vcmd f2 - pitch envelope (attack) +0d2d: e8 00 mov a,#$00 +0d2f: d5 00 03 mov $0300+x,a +0d32: dd mov a,y +0d33: d5 e1 02 mov $02e1+x,a +0d36: 3f 25 0c call $0c25 +0d39: d5 e0 02 mov $02e0+x,a +0d3c: 3f 25 0c call $0c25 +0d3f: d5 01 03 mov $0301+x,a +0d42: 6f ret + +; vcmd f3 - pitch envelope offs +0d43: d5 e0 02 mov $02e0+x,a +0d46: 6f ret + +; vcmd ed - volume +0d47: d5 c1 01 mov $01c1+x,a +0d4a: d5 c1 03 mov $03c1+x,a +0d4d: e8 00 mov a,#$00 +0d4f: d5 c0 01 mov $01c0+x,a +0d52: 6f ret + +; vcmd ee - volume fade +0d53: d4 62 mov $62+x,a +0d55: 2d push a +0d56: 3f 25 0c call $0c25 +0d59: d5 00 02 mov $0200+x,a +0d5c: 80 setc +0d5d: b5 c1 01 sbc a,$01c1+x +0d60: ce pop x +0d61: 3f 79 0e call $0e79 +0d64: d5 e0 01 mov $01e0+x,a +0d67: dd mov a,y +0d68: d5 e1 01 mov $01e1+x,a +0d6b: 6f ret + +; vcmd f4 - tuning +0d6c: d5 c1 02 mov $02c1+x,a +0d6f: 6f ret + +; vcmd f5 - echo vbits/volume +0d70: c4 00 mov $00,a +0d72: 8f 00 01 mov $01,#$00 +0d75: e4 07 mov a,$07 +0d77: d0 05 bne $0d7e +0d79: fa 00 01 mov ($01),($00) +0d7c: 2f 10 bra $0d8e +0d7e: 8d 0e mov y,#$0e +0d80: 76 f0 03 cmp a,$03f0+y +0d83: 60 clrc +0d84: d0 02 bne $0d88 +0d86: 4b 00 lsr $00 +0d88: 6b 01 ror $01 +0d8a: dc dec y +0d8b: dc dec y +0d8c: 10 f2 bpl $0d80 +0d8e: fd mov y,a +0d8f: e4 01 mov a,$01 +0d91: d6 a1 07 mov $07a1+y,a +0d94: 3f 25 0c call $0c25 +0d97: e8 00 mov a,#$00 +0d99: da c3 movw $c3,ya +0d9b: 3f 25 0c call $0c25 +0d9e: e8 00 mov a,#$00 +0da0: da c5 movw $c5,ya +0da2: b2 33 clr5 $33 +0da4: 6f ret + +; vcmd f8 - echo volume fade +0da5: c4 cb mov $cb,a +0da7: 3f 25 0c call $0c25 +0daa: c4 e1 mov $e1,a +0dac: 80 setc +0dad: a4 c4 sbc a,$c4 +0daf: f8 cb mov x,$cb +0db1: 3f 79 0e call $0e79 +0db4: da c7 movw $c7,ya +0db6: 3f 25 0c call $0c25 +0db9: c4 e2 mov $e2,a +0dbb: 80 setc +0dbc: a4 c6 sbc a,$c6 +0dbe: f8 cb mov x,$cb +0dc0: 3f 79 0e call $0e79 +0dc3: da c9 movw $c9,ya +0dc5: 6f ret + +; vcmd f6 - disable echo +0dc6: da c3 movw $c3,ya +0dc8: da c5 movw $c5,ya +0dca: a2 33 set5 $33 +0dcc: 6f ret + +; vcmd f7 - set echo params +0dcd: 3f ef 0d call $0def +0dd0: 3f 25 0c call $0c25 +0dd3: c4 39 mov $39,a +0dd5: 3f 25 0c call $0c25 +0dd8: 8d 08 mov y,#$08 +0dda: cf mul ya +0ddb: 5d mov x,a +0ddc: 8d 0f mov y,#$0f +0dde: f5 ed 0e mov a,$0eed+x +0de1: 3f b7 09 call $09b7 +0de4: 3d inc x +0de5: dd mov a,y +0de6: 60 clrc +0de7: 88 10 adc a,#$10 +0de9: fd mov y,a +0dea: 10 f2 bpl $0dde +0dec: f8 de mov x,$de +0dee: 6f ret + +0def: c4 38 mov $38,a +0df1: 8d 7d mov y,#$7d +0df3: cb f2 mov $f2,y +0df5: e4 f3 mov a,$f3 +0df7: 64 38 cmp a,$38 +0df9: f0 28 beq $0e23 +0dfb: 28 0f and a,#$0f +0dfd: 48 ff eor a,#$ff +0dff: f3 37 03 bbc7 $37,$0e05 +0e02: 60 clrc +0e03: 84 37 adc a,$37 +0e05: c4 37 mov $37,a +0e07: 8d 04 mov y,#$04 +0e09: f6 f7 16 mov a,$16f7+y +0e0c: c4 f2 mov $f2,a +0e0e: 8f 00 f3 mov $f3,#$00 +0e11: fe f6 dbnz y,$0e09 +0e13: e4 33 mov a,$33 +0e15: 08 20 or a,#$20 +0e17: 8d 6c mov y,#$6c +0e19: 3f bf 09 call $09bf +0e1c: e4 38 mov a,$38 +0e1e: 8d 7d mov y,#$7d +0e20: 3f bf 09 call $09bf +0e23: 1c asl a +0e24: 1c asl a +0e25: 1c asl a +0e26: 48 ff eor a,#$ff +0e28: 80 setc +0e29: 88 ff adc a,#$ff +0e2b: 8d 6d mov y,#$6d +0e2d: 5f bf 09 jmp $09bf + +; vcmd fa - set perc patch base +0e30: c4 df mov $df,a +0e32: 6f ret + +0e33: f4 a2 mov a,$a2+x +0e35: d0 36 bne $0e6d +0e37: e7 10 mov a,($10+x) +0e39: 68 f9 cmp a,#$f9 +0e3b: d0 30 bne $0e6d +0e3d: 3f 27 0c call $0c27 +0e40: 3f 25 0c call $0c25 +; vcmd f9 - pitch slide +0e43: d4 a3 mov $a3+x,a +0e45: 3f 25 0c call $0c25 +0e48: d4 a2 mov $a2+x,a +0e4a: 3f 25 0c call $0c25 +0e4d: 60 clrc +0e4e: eb 07 mov y,$07 +0e50: 96 a5 07 adc a,$07a5+y +0e53: 95 c0 03 adc a,$03c0+x +0e56: 28 7f and a,#$7f +0e58: d5 c0 02 mov $02c0+x,a +0e5b: 80 setc +0e5c: b5 81 02 sbc a,$0281+x +0e5f: fb a2 mov y,$a2+x +0e61: 6d push y +0e62: ce pop x +0e63: 3f 79 0e call $0e79 +0e66: d5 a0 02 mov $02a0+x,a +0e69: dd mov a,y +0e6a: d5 a1 02 mov $02a1+x,a +0e6d: 6f ret + +0e6e: f5 81 02 mov a,$0281+x +0e71: c4 cd mov $cd,a +0e73: f5 80 02 mov a,$0280+x +0e76: c4 cc mov $cc,a +0e78: 6f ret + +0e79: ed notc +0e7a: 6b ce ror $ce +0e7c: 10 03 bpl $0e81 +0e7e: 48 ff eor a,#$ff +0e80: bc inc a +0e81: 8d 00 mov y,#$00 +0e83: 9e div ya,x +0e84: 2d push a +0e85: e8 00 mov a,#$00 +0e87: 9e div ya,x +0e88: ee pop y +0e89: f8 de mov x,$de +0e8b: f3 ce 07 bbc7 $ce,$0e95 +0e8e: da 0c movw $0c,ya +0e90: e8 00 mov a,#$00 +0e92: fd mov y,a +0e93: 9a 0c subw ya,$0c +; vcmd ef - nop +0e95: 6f ret + +; vcmd dispatch table +0e97: dw $0c30 ; e0 - set instrument +0e99: dw $0c8b ; e1 - pan +0e9b: dw $0c99 ; e2 - pan fade +0e9d: dw $0cb2 ; e3 - vibrato on +0e9f: dw $0cbe ; e4 - vibrato off +0ea1: dw $0cdb ; e5 - nop +0ea3: dw $0cdc ; e6 - skip to next byte +0ea4: dw $0cdf ; e7 - tempo +0ea6: dw $0ced ; e8 - tempo fade +0ea8: dw $0d0e ; e9 - global transpose +0eaa: dw $0d14 ; ea - per-voice transpose +0eac: dw $0d18 ; eb - tremolo on +0eae: dw $0d24 ; ec - tremolo off +0eb0: dw $0d47 ; ed - volume +0eb2: dw $0d53 ; ee - volume fade +0eb4: dw $0e95 ; ef - nop +0eb6: dw $0cca ; f0 - vibrato fade +0eb8: dw $0d28 ; f1 - pitch envelope (release) +0eba: dw $0d2d ; f2 - pitch envelope (attack) +0ebc: dw $0d43 ; f3 - pitch envelope off +0ebe: dw $0d6c ; f4 - tuning +0ec0: dw $0d70 ; f5 - echo vbits/volume +0ec2: dw $0dc6 ; f6 - disable echo +0ec4: dw $0dcd ; f7 - set echo params +0ec6: dw $0da5 ; f8 - echo volume fade +0ec8: dw $0e43 ; f9 - pitch slide +0eca: dw $0e30 ; fa - set perc patch base +0ecc: dw $0c2f ; fb - nop +0ece: dw $0f0d ; fc - subcmd + +; vcmd lengths +0ed0: db $01,$01,$02,$03,$00,$01,$02,$01 +0ed7: db $02,$01,$01,$03,$00,$01,$02,$00 +0ee0: db $01,$03,$03,$00,$01,$03,$00,$03 +0ee7: db $03,$03,$01,$01 +0eec: db $ff + +; echo FIR presets +0eed: db $7f,$00,$00,$00,$00,$00,$00,$00 +0ef5: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c +0efd: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 +0f05: db $34,$33,$00,$d9,$e5,$01,$fc,$eb + +; vcmd fc - subcmd +0f0d: 1c asl a +0f0e: fd mov y,a +0f0f: f6 19 0f mov a,$0f19+y +0f12: 2d push a +0f13: f6 18 0f mov a,$0f18+y +0f16: 2d push a +0f17: 6f ret + +; subcmd dispatch table +0f18: dw $0f31 ; 00 - jump +0f1a: dw $0f53 ; 01 - call subroutine +0f1c: dw $0f7e ; 02 - return +0f1e: dw $0f9f ; 03 - repeat start +0f20: dw $0fce ; 04 - repeat end +0f22: dw $0f24 ; 05 - conditional jump + +; subcmd 05 - conditional jump +0f24: eb 07 mov y,$07 +0f26: f6 83 07 mov a,$0783+y +0f29: d0 06 bne $0f31 +0f2b: 3f 25 0c call $0c25 +0f2e: 5f 25 0c jmp $0c25 + +; subcmd 00 - jump +0f31: 3f 01 10 call $1001 +0f34: f7 04 mov a,($04)+y +0f36: c4 00 mov $00,a +0f38: fc inc y +0f39: f7 04 mov a,($04)+y +0f3b: c4 01 mov $01,a +0f3d: 3f 25 0c call $0c25 +0f40: 60 clrc +0f41: 84 00 adc a,$00 +0f43: c4 00 mov $00,a +0f45: 0d push psw +0f46: 3f 25 0c call $0c25 +0f49: 8e pop psw +0f4a: 84 01 adc a,$01 +0f4c: d4 11 mov $11+x,a +0f4e: e4 00 mov a,$00 +0f50: d4 10 mov $10+x,a +0f52: 6f ret + +; subcmd 01 - call subroutine +0f53: f5 41 01 mov a,$0141+x +0f56: 68 07 cmp a,#$07 +0f58: b0 21 bcs $0f7b +0f5a: c4 00 mov $00,a +0f5c: 0b 00 asl $00 +0f5e: bc inc a +0f5f: d5 41 01 mov $0141+x,a +0f62: 7d mov a,x +0f63: 8d 07 mov y,#$07 +0f65: cf mul ya +0f66: 60 clrc +0f67: 84 00 adc a,$00 +0f69: fd mov y,a +0f6a: f4 10 mov a,$10+x +0f6c: 60 clrc +0f6d: 88 02 adc a,#$02 +0f6f: d6 90 06 mov $0690+y,a +0f72: f4 11 mov a,$11+x +0f74: 88 00 adc a,#$00 +0f76: d6 91 06 mov $0691+y,a +0f79: 2f b6 bra $0f31 +0f7b: 5f 7b 0f jmp $0f7b + +; subcmd 02 - return from subroutine +0f7e: f5 41 01 mov a,$0141+x +0f81: f0 19 beq $0f9c +0f83: 9c dec a +0f84: d5 41 01 mov $0141+x,a +0f87: c4 00 mov $00,a +0f89: 1c asl a +0f8a: 7d mov a,x +0f8b: 8d 07 mov y,#$07 +0f8d: cf mul ya +0f8e: 84 00 adc a,$00 +0f90: fd mov y,a +0f91: f6 90 06 mov a,$0690+y +0f94: d4 10 mov $10+x,a +0f96: f6 91 06 mov a,$0691+y +0f99: d4 11 mov $11+x,a +0f9b: 6f ret + +0f9c: 5f 9c 0f jmp $0f9c + +; subcmd 03 - repeat start +0f9f: f5 40 01 mov a,$0140+x +0fa2: 68 07 cmp a,#$07 +0fa4: b0 25 bcs $0fcb +0fa6: c4 00 mov $00,a +0fa8: 0b 00 asl $00 +0faa: bc inc a +0fab: d5 40 01 mov $0140+x,a +0fae: 7d mov a,x +0faf: 8d 07 mov y,#$07 +0fb1: cf mul ya +0fb2: 60 clrc +0fb3: 84 00 adc a,$00 +0fb5: 2d push a +0fb6: 5c lsr a +0fb7: 2d push a +0fb8: 3f 25 0c call $0c25 +0fbb: ee pop y +0fbc: d6 20 06 mov $0620+y,a +0fbf: ee pop y +0fc0: f4 10 mov a,$10+x +0fc2: d6 40 05 mov $0540+y,a +0fc5: f4 11 mov a,$11+x +0fc7: d6 41 05 mov $0541+y,a +0fca: 6f ret + +0fcb: 5f cb 0f jmp $0fcb + +; subcmd 04 - repeat end +0fce: f5 40 01 mov a,$0140+x +0fd1: f0 2b beq $0ffe +0fd3: 9c dec a +0fd4: c4 00 mov $00,a +0fd6: 0b 00 asl $00 +0fd8: 7d mov a,x +0fd9: 8d 07 mov y,#$07 +0fdb: cf mul ya +0fdc: 60 clrc +0fdd: 84 00 adc a,$00 +0fdf: 2d push a +0fe0: 5c lsr a +0fe1: fd mov y,a +0fe2: f6 20 06 mov a,$0620+y +0fe5: 9c dec a +0fe6: d6 20 06 mov $0620+y,a +0fe9: ee pop y +0fea: d0 07 bne $0ff3 +0fec: e4 00 mov a,$00 +0fee: 5c lsr a +0fef: d5 40 01 mov $0140+x,a +0ff2: 6f ret + +0ff3: f6 40 05 mov a,$0540+y +0ff6: d4 10 mov $10+x,a +0ff8: f6 41 05 mov a,$0541+y +0ffb: d4 11 mov $11+x,a +0ffd: 6f ret + +0ffe: 5f fe 0f jmp $0ffe + +1001: eb 07 mov y,$07 +1003: f6 1c 04 mov a,$041c+y +1006: 3f 19 10 call $1019 +1009: 8d 02 mov y,#$02 +100b: f7 04 mov a,($04)+y +100d: 2d push a +100e: fc inc y +100f: f7 04 mov a,($04)+y +1011: c4 05 mov $05,a +1013: ae pop a +1014: c4 04 mov $04,a +1016: 8d 00 mov y,#$00 +1018: 6f ret + +1019: 8f 1c 04 mov $04,#$1c +101c: 8f 04 05 mov $05,#$04 +101f: 8f 28 06 mov $06,#$28 +1022: 8d 00 mov y,#$00 +1024: 60 clrc +1025: 98 04 04 adc $04,#$04 +1028: 98 00 05 adc $05,#$00 +102b: 77 04 cmp a,($04)+y +102d: f0 06 beq $1035 +102f: 8b 06 dec $06 +1031: d0 f1 bne $1024 +1033: 80 setc +1034: 6f ret + +1035: 60 clrc +1036: 6f ret + +1037: e5 70 07 mov a,$0770 +103a: 1c asl a +103b: 5d mov x,a +103c: 1f 3f 10 jmp ($103f+x) + +103f: dw $10d1 +1041: dw $1128 +1043: dw $1191 +1045: dw $125f +1047: dw $12a8 +1049: dw $12c5 +104b: dw $1092 +104d: dw $1092 +104f: dw $12f4 +1051: dw $1315 +1053: dw $1061 +1055: dw $133b +1057: dw $13a0 +1059: dw $141b +105b: dw $142b +105d: dw $1078 +105f: dw $1073 + +1061: e5 71 07 mov a,$0771 +1064: 8d 03 mov y,#$03 +1066: 76 1c 04 cmp a,$041c+y +1069: f0 04 beq $106f +106b: dc dec y +106c: 10 f8 bpl $1066 + +106f: dd mov a,y +1070: 5f d9 11 jmp $11d9 + +1073: 8f 00 eb mov $eb,#$00 +1076: 2f 10 bra $1088 +1078: e8 0e mov a,#$0e +107a: 3f bf 11 call $11bf +107d: 3f 88 10 call $1088 +1080: 8f 01 eb mov $eb,#$01 +1083: e8 ff mov a,#$ff +1085: c4 31 mov $31,a +1087: 6f ret + +1088: e8 06 mov a,#$06 +108a: c5 70 07 mov $0770,a +108d: e8 00 mov a,#$00 +108f: c5 72 07 mov $0772,a +1092: 3f 0f 11 call $110f +1095: 3f d2 10 call $10d2 +1098: b0 37 bcs $10d1 +109a: ac 8b 07 inc $078b +109d: e5 8b 07 mov a,$078b +10a0: d6 8b 07 mov $078b+y,a +10a3: e4 02 mov a,$02 +10a5: d6 91 07 mov $0791+y,a +10a8: e5 70 07 mov a,$0770 +10ab: 80 setc +10ac: a8 06 sbc a,#$06 +10ae: d6 8e 07 mov $078e+y,a +10b1: cb 07 mov $07,y +10b3: 8d 00 mov y,#$00 +10b5: cd 20 mov x,#$20 +10b7: 1d dec x +10b8: 1d dec x +10b9: f5 e0 03 mov a,$03e0+x +10bc: 10 f9 bpl $10b7 +10be: 3f 72 11 call $1172 +10c1: 8b 02 dec $02 +10c3: d0 f2 bne $10b7 +10c5: 3f 44 11 call $1144 +10c8: eb 07 mov y,$07 +10ca: f6 87 07 mov a,$0787+y +10cd: 04 31 or a,$31 +10cf: c4 31 mov $31,a +10d1: 6f ret + +10d2: e4 02 mov a,$02 +10d4: 8d 03 mov y,#$03 +10d6: 60 clrc +10d7: 96 91 07 adc a,$0791+y +10da: fe fb dbnz y,$10d7 +10dc: 68 09 cmp a,#$09 +10de: b0 11 bcs $10f1 +10e0: e5 8b 07 mov a,$078b +10e3: 68 03 cmp a,#$03 +10e5: b0 0a bcs $10f1 +10e7: 8d 04 mov y,#$04 +10e9: dc dec y +10ea: f6 8b 07 mov a,$078b+y +10ed: d0 fa bne $10e9 +10ef: 60 clrc +10f0: 6f ret + +10f1: e8 01 mov a,#$01 +10f3: 8d 04 mov y,#$04 +10f5: dc dec y +10f6: 76 8b 07 cmp a,$078b+y +10f9: d0 fa bne $10f5 +10fb: 2d push a +10fc: f6 8e 07 mov a,$078e+y +10ff: f0 07 beq $1108 +1101: ae pop a +1102: bc inc a +1103: 68 04 cmp a,#$04 +1105: 90 ec bcc $10f3 +1107: 6f ret + +1108: ae pop a +1109: dd mov a,y +110a: 3f d9 11 call $11d9 +110d: 2f c3 bra $10d2 +110f: e4 eb mov a,$eb +1111: d0 0a bne $111d +1113: e5 71 07 mov a,$0771 +1116: f0 05 beq $111d +1118: 3f 19 10 call $1019 +111b: 90 03 bcc $1120 +111d: ae pop a +111e: ae pop a +111f: 6f ret + +1120: fc inc y +1121: f7 04 mov a,($04)+y +1123: c4 02 mov $02,a +1125: 5f 09 10 jmp $1009 + +1128: 3f 0f 11 call $110f +112b: e8 00 mov a,#$00 +112d: c4 07 mov $07,a +112f: 3f d9 11 call $11d9 +1132: 8d 00 mov y,#$00 +1134: cd fe mov x,#$fe +1136: 3d inc x +1137: 3d inc x +1138: f5 e0 03 mov a,$03e0+x +113b: 10 f9 bpl $1136 +113d: 3f 72 11 call $1172 +1140: 8b 02 dec $02 +1142: d0 f2 bne $1136 +1144: eb 07 mov y,$07 +1146: e8 00 mov a,#$00 +1148: d6 83 07 mov $0783+y,a +114b: e5 71 07 mov a,$0771 +114e: d6 1c 04 mov $041c+y,a +1151: f6 8b 14 mov a,$148b+y +1154: 5d mov x,a +1155: 04 dc or a,$dc +1157: c4 dc mov $dc,a +1159: c4 f6 mov $f6,a +115b: e8 ff mov a,#$ff +115d: d6 99 07 mov $0799+y,a +1160: e5 72 07 mov a,$0772 +1163: f0 0c beq $1171 +1165: d6 9d 07 mov $079d+y,a +1168: e8 00 mov a,#$00 +116a: d6 99 07 mov $0799+y,a +116d: bc inc a +116e: d6 d2 00 mov $00d2+y,a +1171: 6f ret + +1172: e4 07 mov a,$07 +1174: d5 e0 03 mov $03e0+x,a +1177: f7 04 mov a,($04)+y +1179: fc inc y +117a: d5 10 00 mov $0010+x,a +117d: f7 04 mov a,($04)+y +117f: fc inc y +1180: d5 11 00 mov $0011+x,a +1183: 6d push y +1184: eb 07 mov y,$07 +1186: f5 8f 14 mov a,$148f+x +1189: 16 87 07 or a,$0787+y +118c: d6 87 07 mov $0787+y,a +118f: ee pop y +1190: 6f ret + +1191: e5 72 07 mov a,$0772 +1194: f0 21 beq $11b7 +1196: e4 dc mov a,$dc +1198: 25 71 07 and a,$0771 +119b: c4 02 mov $02,a +119d: 8d 00 mov y,#$00 +119f: e4 02 mov a,$02 +11a1: 5c lsr a +11a2: c4 02 mov $02,a +11a4: 90 0b bcc $11b1 +11a6: e5 72 07 mov a,$0772 +11a9: d6 9d 07 mov $079d+y,a +11ac: e8 ff mov a,#$ff +11ae: d6 d2 00 mov $00d2+y,a +11b1: fc inc y +11b2: ad 04 cmp y,#$04 +11b4: 90 e9 bcc $119f +11b6: 6f ret + +11b7: e5 71 07 mov a,$0771 +11ba: 2f 03 bra $11bf +11bc: e5 e5 00 mov a,$00e5 +11bf: 28 0f and a,#$0f +11c1: cd 00 mov x,#$00 +11c3: 5c lsr a +11c4: 90 08 bcc $11ce +11c6: 2d push a +11c7: 4d push x +11c8: 7d mov a,x +11c9: 3f d9 11 call $11d9 +11cc: ce pop x +11cd: ae pop a +11ce: 3d inc x +11cf: c8 04 cmp x,#$04 +11d1: 90 f0 bcc $11c3 +11d3: e8 00 mov a,#$00 +11d5: c5 e5 00 mov $00e5,a +11d8: 6f ret + +11d9: fd mov y,a +11da: c4 07 mov $07,a +11dc: f6 8b 14 mov a,$148b+y +11df: 24 dc and a,$dc +11e1: f0 59 beq $123c +11e3: 3f 17 0a call $0a17 +11e6: 04 31 or a,$31 +11e8: c4 31 mov $31,a +11ea: f6 87 14 mov a,$1487+y +11ed: 24 dc and a,$dc +11ef: c4 dc mov $dc,a +11f1: c4 f6 mov $f6,a +11f3: e8 00 mov a,#$00 +11f5: d6 87 07 mov $0787+y,a +11f8: d6 d6 00 mov $00d6+y,a +11fb: d6 d2 00 mov $00d2+y,a +11fe: d6 a1 07 mov $07a1+y,a +1201: d6 a5 07 mov $07a5+y,a +1204: dd mov a,y +1205: f0 22 beq $1229 +1207: f6 8b 07 mov a,$078b+y +120a: c4 06 mov $06,a +120c: 8c 8b 07 dec $078b +120f: e8 00 mov a,#$00 +1211: d6 91 07 mov $0791+y,a +1214: d6 8e 07 mov $078e+y,a +1217: d6 8b 07 mov $078b+y,a +121a: 8d 03 mov y,#$03 +121c: f6 8b 07 mov a,$078b+y +121f: 64 06 cmp a,$06 +1221: 90 04 bcc $1227 +1223: 9c dec a +1224: d6 8b 07 mov $078b+y,a +1227: fe f3 dbnz y,$121c +1229: 8d 1e mov y,#$1e +122b: e4 07 mov a,$07 +122d: 76 e0 03 cmp a,$03e0+y +1230: d0 06 bne $1238 +1232: 3f 34 14 call $1434 +1235: 3f 3d 12 call $123d +1238: dc dec y +1239: dc dec y +123a: 10 ef bpl $122b +123c: 6f ret + +123d: e4 07 mov a,$07 +123f: f0 1d beq $125e +1241: f6 d0 03 mov a,$03d0+y +1244: 30 18 bmi $125e +1246: 6d push y +1247: 4d push x +1248: dd mov a,y +1249: 28 0f and a,#$0f +124b: 5d mov x,a +124c: 8f ff d0 mov $d0,#$ff +124f: e4 32 mov a,$32 +1251: d0 03 bne $1256 +1253: 8f 01 32 mov $32,#$01 +1256: f5 80 01 mov a,$0180+x +1259: 3f 30 0c call $0c30 +125c: ce pop x +125d: ee pop y +125e: 6f ret + +125f: e5 72 07 mov a,$0772 +1262: c4 00 mov $00,a +1264: e5 71 07 mov a,$0771 +1267: 9c dec a +1268: 68 04 cmp a,#$04 +126a: d0 0d bne $1279 +126c: 9c dec a +126d: 3f 79 12 call $1279 +1270: 9c dec a +1271: 3f 79 12 call $1279 +1274: 9c dec a +1275: 3f 79 12 call $1279 +1278: 9c dec a +1279: cd 1e mov x,#$1e +127b: 75 e0 03 cmp a,$03e0+x +127e: d0 19 bne $1299 +1280: 2d push a +1281: f5 c1 03 mov a,$03c1+x +1284: 4d push x +1285: eb 00 mov y,$00 +1287: cf mul ya +1288: cd 64 mov x,#$64 +128a: 9e div ya,x +128b: 50 02 bvc $128f +128d: e8 ff mov a,#$ff +128f: ce pop x +1290: d5 c1 01 mov $01c1+x,a +1293: e8 00 mov a,#$00 +1295: d5 c0 01 mov $01c0+x,a +1298: ae pop a +1299: 1d dec x +129a: 1d dec x +129b: 10 de bpl $127b +129d: fd mov y,a +129e: 3f 17 0a call $0a17 +12a1: 04 e9 or a,$e9 +12a3: c5 e9 00 mov $00e9,a +12a6: dd mov a,y +12a7: 6f ret + +12a8: e5 72 07 mov a,$0772 +12ab: c4 00 mov $00,a +12ad: e5 71 07 mov a,$0771 +12b0: 9c dec a +12b1: cd 1e mov x,#$1e +12b3: 75 e0 03 cmp a,$03e0+x +12b6: d0 07 bne $12bf +12b8: 2d push a +12b9: e4 00 mov a,$00 +12bb: 3f 8b 0c call $0c8b +12be: ae pop a +12bf: 1d dec x +12c0: 1d dec x +12c1: 10 f0 bpl $12b3 +12c3: 2f d8 bra $129d +12c5: e5 72 07 mov a,$0772 +12c8: d0 0b bne $12d5 +12ca: e9 71 07 mov x,$0771 +12cd: 1d dec x +12ce: f5 04 04 mov a,$0404+x +12d1: d5 0c 04 mov $040c+x,a +12d4: 6f ret + +12d5: e9 71 07 mov x,$0771 +12d8: 1d dec x +12d9: c4 00 mov $00,a +12db: e3 00 0a bbs7 $00,$12e8 +12de: 60 clrc +12df: 95 0c 04 adc a,$040c+x +12e2: 90 0c bcc $12f0 +12e4: e8 ff mov a,#$ff +12e6: 2f 08 bra $12f0 +12e8: 60 clrc +12e9: 95 0c 04 adc a,$040c+x +12ec: b0 02 bcs $12f0 +12ee: e8 01 mov a,#$01 +12f0: d5 0c 04 mov $040c+x,a +12f3: 6f ret + +12f4: e8 00 mov a,#$00 +12f6: 5d mov x,a +12f7: 8d 28 mov y,#$28 +12f9: d5 20 04 mov $0420+x,a +12fc: 3d inc x +12fd: 3d inc x +12fe: 3d inc x +12ff: 3d inc x +1300: dc dec y +1301: d0 f6 bne $12f9 +1303: cd 1e mov x,#$1e +1305: e8 ff mov a,#$ff +1307: d5 e0 03 mov $03e0+x,a +130a: 1d dec x +130b: 1d dec x +130c: 10 f9 bpl $1307 +130e: 8f 00 3c mov $3c,#$00 +1311: 8f 1d 3d mov $3d,#$1d +1314: 6f ret + +1315: e8 00 mov a,#$00 +1317: c4 40 mov $40,a +1319: c4 3e mov $3e,a +131b: e8 3d mov a,#$3d +131d: c4 41 mov $41,a +131f: c4 3f mov $3f,a +1321: e8 00 mov a,#$00 +1323: c4 00 mov $00,a +1325: e8 1b mov a,#$1b +1327: c4 01 mov $01,a +1329: e8 00 mov a,#$00 +132b: 8d 00 mov y,#$00 +132d: d7 00 mov ($00)+y,a +132f: ab 00 inc $00 +1331: d0 fa bne $132d +1333: ab 01 inc $01 +1335: 78 3d 01 cmp $01,#$3d +1338: 90 f3 bcc $132d +133a: 6f ret + +133b: fa 3c 3a mov ($3a),($3c) +133e: fa 3d 3b mov ($3b),($3d) +1341: 3f 6b 14 call $146b +1344: 90 01 bcc $1347 +1346: 6f ret + +1347: e5 71 07 mov a,$0771 +134a: d7 04 mov ($04)+y,a +134c: e5 72 07 mov a,$0772 +134f: 5d mov x,a +1350: fc inc y +1351: d7 04 mov ($04)+y,a +1353: e4 3a mov a,$3a +1355: fc inc y +1356: d7 04 mov ($04)+y,a +1358: c4 00 mov $00,a +135a: e4 3b mov a,$3b +135c: fc inc y +135d: d7 04 mov ($04)+y,a +135f: c4 01 mov $01,a +1361: 7d mov a,x +1362: 1c asl a +1363: 60 clrc +1364: 84 00 adc a,$00 +1366: c4 00 mov $00,a +1368: c4 08 mov $08,a +136a: e8 00 mov a,#$00 +136c: 84 01 adc a,$01 +136e: c4 01 mov $01,a +1370: c4 09 mov $09,a +1372: 8d 00 mov y,#$00 +1374: 60 clrc +1375: e4 00 mov a,$00 +1377: d7 3a mov ($3a)+y,a +1379: 96 73 07 adc a,$0773+y +137c: c4 00 mov $00,a +137e: fc inc y +137f: e4 01 mov a,$01 +1381: d7 3a mov ($3a)+y,a +1383: 96 73 07 adc a,$0773+y +1386: c4 01 mov $01,a +1388: fc inc y +1389: 1d dec x +138a: d0 e8 bne $1374 +138c: fa 00 3c mov ($3c),($00) +138f: fa 01 3d mov ($3d),($01) +1392: e4 00 mov a,$00 +1394: eb 01 mov y,$01 +1396: 9a 08 subw ya,$08 +1398: da 0a movw $0a,ya +139a: e8 01 mov a,#$01 +139c: c5 e7 00 mov $00e7,a +139f: 6f ret + +13a0: e9 71 07 mov x,$0771 +13a3: 7d mov a,x +13a4: 8d 04 mov y,#$04 +13a6: cf mul ya +13a7: 8f 00 00 mov $00,#$00 +13aa: 8f 1b 01 mov $01,#$1b +13ad: 60 clrc +13ae: 7a 00 addw ya,$00 +13b0: da 00 movw $00,ya +13b2: 8d 01 mov y,#$01 +13b4: f7 00 mov a,($00)+y +13b6: d0 62 bne $141a +13b8: dc dec y +13b9: e4 40 mov a,$40 +13bb: d7 00 mov ($00)+y,a +13bd: c4 3e mov $3e,a +13bf: e4 41 mov a,$41 +13c1: fc inc y +13c2: d7 00 mov ($00)+y,a +13c4: c4 3f mov $3f,a +13c6: c9 ea 00 mov $00ea,x +13c9: 60 clrc +13ca: e4 40 mov a,$40 +13cc: 85 79 07 adc a,$0779 +13cf: fc inc y +13d0: d7 00 mov ($00)+y,a +13d2: e4 41 mov a,$41 +13d4: 85 7a 07 adc a,$077a +13d7: fc inc y +13d8: d7 00 mov ($00)+y,a +13da: 60 clrc +13db: e5 77 07 mov a,$0777 +13de: 84 40 adc a,$40 +13e0: c4 40 mov $40,a +13e2: e5 78 07 mov a,$0778 +13e5: 84 41 adc a,$41 +13e7: c4 41 mov $41,a +13e9: 7d mov a,x +13ea: 8d 06 mov y,#$06 +13ec: cf mul ya +13ed: 8f 00 00 mov $00,#$00 +13f0: 8f 18 01 mov $01,#$18 +13f3: 60 clrc +13f4: 7a 00 addw ya,$00 +13f6: da 00 movw $00,ya +13f8: 8d 00 mov y,#$00 +13fa: cd 00 mov x,#$00 +13fc: f5 71 07 mov a,$0771+x +13ff: d7 00 mov ($00)+y,a +1401: 3d inc x +1402: fc inc y +1403: ad 06 cmp y,#$06 +1405: 90 f5 bcc $13fc +1407: fa 3e 08 mov ($08),($3e) +140a: fa 3f 09 mov ($09),($3f) +140d: e4 40 mov a,$40 +140f: eb 41 mov y,$41 +1411: 9a 08 subw ya,$08 +1413: da 0a movw $0a,ya +1415: e8 01 mov a,#$01 +1417: c5 e7 00 mov $00e7,a +141a: 6f ret + +141b: e8 00 mov a,#$00 +141d: ec 71 07 mov y,$0771 +1420: 80 setc +1421: 3c rol a +1422: fe fd dbnz y,$1421 +1424: 45 e8 00 eor a,$00e8 +1427: c5 e8 00 mov $00e8,a +142a: 6f ret + +142b: ec 71 07 mov y,$0771 +142e: e8 01 mov a,#$01 +1430: d6 82 07 mov $0782+y,a +1433: 6f ret + +1434: e8 ff mov a,#$ff +1436: d6 61 01 mov $0161+y,a +1439: d6 c1 01 mov $01c1+y,a +143c: d6 e0 03 mov $03e0+y,a +143f: bc inc a +1440: d6 40 01 mov $0140+y,a +1443: d6 41 01 mov $0141+y,a +1446: d6 80 01 mov $0180+y,a +1449: d6 62 00 mov $0062+y,a +144c: d6 20 02 mov $0220+y,a +144f: d6 a0 03 mov $03a0+y,a +1452: d6 c0 03 mov $03c0+y,a +1455: d6 21 01 mov $0121+y,a +1458: d6 c1 02 mov $02c1+y,a +145b: d6 e0 02 mov $02e0+y,a +145e: bc inc a +145f: d6 42 00 mov $0042+y,a +1462: e8 0a mov a,#$0a +1464: d6 21 02 mov $0221+y,a +1467: d6 61 02 mov $0261+y,a +146a: 6f ret + +146b: cd 28 mov x,#$28 +146d: 8d 00 mov y,#$00 +146f: 8f 20 04 mov $04,#$20 +1472: 8f 04 05 mov $05,#$04 +1475: f7 04 mov a,($04)+y +1477: f0 0c beq $1485 +1479: 60 clrc +147a: 98 04 04 adc $04,#$04 +147d: 98 00 05 adc $05,#$00 +1480: 1d dec x +1481: d0 f2 bne $1475 +1483: 80 setc +1484: 6f ret + +1485: 60 clrc +1486: 6f ret + +1487: db $fe,$fd,$fb,$f7 + +148b: db $01,$02,$04,$08 + +148f: db $01,$00,$02,$00,$04,$00,$08,$00 +1497: db $10,$00,$20,$00,$40,$00,$80,$00 +149f: db $01,$00,$02,$00,$04,$00,$08,$00 +14a7: db $10,$00,$20,$00,$40,$00,$80,$00 + +14af: 78 03 f5 cmp $f5,#$03 +14b2: f0 06 beq $14ba +14b4: e8 00 mov a,#$00 +14b6: c5 70 07 mov $0770,a +14b9: 6f ret + +14ba: 8f 03 f5 mov $f5,#$03 +14bd: 8f 70 08 mov $08,#$70 +14c0: 8f 07 09 mov $09,#$07 +14c3: 8d 00 mov y,#$00 +14c5: 3f 2b 15 call $152b +14c8: e9 70 07 mov x,$0770 +14cb: f5 ed 14 mov a,$14ed+x +14ce: c4 e0 mov $e0,a +14d0: f0 1b beq $14ed +14d2: 3f 2b 15 call $152b +14d5: 8b e0 dec $e0 +14d7: d0 f9 bne $14d2 +14d9: e5 70 07 mov a,$0770 +14dc: 68 0b cmp a,#$0b +14de: d0 0d bne $14ed +14e0: e5 72 07 mov a,$0772 +14e3: 1c asl a +14e4: c4 e0 mov $e0,a +14e6: 3f 2b 15 call $152b +14e9: 8b e0 dec $e0 +14eb: d0 f9 bne $14e6 +14ed: 6f ret + +14ee: db $02,$02,$02,$02,$02,$02,$02,$00 +14f6: db $00,$01,$02,$0a,$01,$01,$01,$01 + +14fe: e5 e7 00 mov a,$00e7 +1501: f0 27 beq $152a +1503: 78 cc f5 cmp $f5,#$cc +1506: d0 fb bne $1503 +1508: 8f cc f5 mov $f5,#$cc +150b: eb f4 mov y,$f4 +150d: d0 fc bne $150b +150f: 7e f4 cmp y,$f4 +1511: d0 0b bne $151e +1513: e4 f5 mov a,$f5 +1515: cb f4 mov $f4,y +1517: d7 08 mov ($08)+y,a +1519: fc inc y +151a: d0 f3 bne $150f +151c: ab 09 inc $09 +151e: 10 ef bpl $150f +1520: 7e f4 cmp y,$f4 +1522: 10 eb bpl $150f +1524: e8 00 mov a,#$00 +1526: c4 e7 mov $e7,a +1528: c4 f5 mov $f5,a +152a: 6f ret + +152b: e8 01 mov a,#$01 +152d: 64 f5 cmp a,$f5 +152f: d0 fc bne $152d +1531: c4 f5 mov $f5,a +1533: 00 nop +1534: e8 02 mov a,#$02 +1536: 64 f5 cmp a,$f5 +1538: d0 fc bne $1536 +153a: e4 f4 mov a,$f4 +153c: 8f 02 f5 mov $f5,#$02 +153f: d7 08 mov ($08)+y,a +1541: 3a 08 incw $08 +1543: 6f ret + +1544: f4 43 mov a,$43+x +1546: f0 38 beq $1580 +1548: 9b 43 dec $43+x +154a: f0 05 beq $1551 +154c: e8 02 mov a,#$02 +154e: de 42 2f cbne $42+x,$1580 +1551: f4 10 mov a,$10+x +1553: fb 11 mov y,$11+x +1555: da 0c movw $0c,ya +1557: 8d 00 mov y,#$00 +1559: f7 0c mov a,($0c)+y +155b: f0 1c beq $1579 +155d: 30 05 bmi $1564 +155f: fc inc y +1560: 30 17 bmi $1579 +1562: 2f f5 bra $1559 +1564: 68 c8 cmp a,#$c8 +1566: f0 18 beq $1580 +1568: 68 fc cmp a,#$fc +156a: f0 0d beq $1579 +156c: 68 e0 cmp a,#$e0 +156e: 90 09 bcc $1579 +1570: 6d push y +1571: fd mov y,a +1572: ae pop a +1573: 96 f0 0d adc a,$0df0+y +1576: fd mov y,a +1577: 2f e0 bra $1559 +1579: e4 32 mov a,$32 +157b: 8d 5c mov y,#$5c +157d: 3f b7 09 call $09b7 +1580: f2 cf clr7 $cf +1582: f4 a2 mov a,$a2+x +1584: f0 2c beq $15b2 +1586: f4 a3 mov a,$a3+x +1588: f0 04 beq $158e +158a: 9b a3 dec $a3+x +158c: 2f 24 bra $15b2 +158e: e2 cf set7 $cf +1590: 9b a2 dec $a2+x +1592: d0 0b bne $159f +1594: f5 c1 02 mov a,$02c1+x +1597: d5 80 02 mov $0280+x,a +159a: f5 c0 02 mov a,$02c0+x +159d: 2f 10 bra $15af +159f: 60 clrc +15a0: f5 80 02 mov a,$0280+x +15a3: 95 a0 02 adc a,$02a0+x +15a6: d5 80 02 mov $0280+x,a +15a9: f5 81 02 mov a,$0281+x +15ac: 95 a1 02 adc a,$02a1+x +15af: d5 81 02 mov $0281+x,a +15b2: 3f 6e 0e call $0e6e +15b5: f5 a0 03 mov a,$03a0+x +15b8: f0 50 beq $160a +15ba: f5 40 03 mov a,$0340+x +15bd: de 83 48 cbne $83+x,$1608 +15c0: f5 20 01 mov a,$0120+x +15c3: 75 41 03 cmp a,$0341+x +15c6: d0 05 bne $15cd +15c8: f5 61 03 mov a,$0361+x +15cb: 2f 0f bra $15dc +15cd: bc inc a +15ce: d5 20 01 mov $0120+x,a +15d1: 9c dec a +15d2: fd mov y,a +15d3: f0 03 beq $15d8 +15d5: f5 a0 03 mov a,$03a0+x +15d8: 60 clrc +15d9: 95 60 03 adc a,$0360+x +15dc: d5 a0 03 mov $03a0+x,a +15df: f5 20 03 mov a,$0320+x +15e2: 60 clrc +15e3: 95 21 03 adc a,$0321+x +15e6: d5 20 03 mov $0320+x,a +15e9: c4 ce mov $ce,a +15eb: 1c asl a +15ec: 1c asl a +15ed: 90 02 bcc $15f1 +15ef: 48 ff eor a,#$ff +15f1: fd mov y,a +15f2: f5 a0 03 mov a,$03a0+x +15f5: 68 f1 cmp a,#$f1 +15f7: 90 05 bcc $15fe +15f9: 28 0f and a,#$0f +15fb: cf mul ya +15fc: 2f 04 bra $1602 +15fe: cf mul ya +15ff: dd mov a,y +1600: 8d 00 mov y,#$00 +1602: 3f 88 16 call $1688 +1605: 5f 32 09 jmp $0932 + +1608: bb 83 inc $83+x +160a: e3 cf f8 bbs7 $cf,$1605 +160d: 6f ret + +160e: eb 07 mov y,$07 +1610: f6 00 04 mov a,$0400+y +1613: c4 e3 mov $e3,a +1615: f2 cf clr7 $cf +1617: f5 21 01 mov a,$0121+x +161a: f0 09 beq $1625 +161c: f5 a1 03 mov a,$03a1+x +161f: de 82 03 cbne $82+x,$1625 +1622: 3f 90 16 call $1690 +1625: f5 21 02 mov a,$0221+x +1628: fd mov y,a +1629: f5 20 02 mov a,$0220+x +162c: da cc movw $cc,ya +162e: f4 63 mov a,$63+x +1630: f0 0a beq $163c +1632: f5 41 02 mov a,$0241+x +1635: fd mov y,a +1636: f5 40 02 mov a,$0240+x +1639: 3f 72 16 call $1672 +163c: f3 cf 03 bbc7 $cf,$1642 +163f: 3f bc 0b call $0bbc +1642: f2 cf clr7 $cf +1644: 3f 6e 0e call $0e6e +1647: f4 a2 mov a,$a2+x +1649: f0 0e beq $1659 +164b: f4 a3 mov a,$a3+x +164d: d0 0a bne $1659 +164f: f5 a1 02 mov a,$02a1+x +1652: fd mov y,a +1653: f5 a0 02 mov a,$02a0+x +1656: 3f 72 16 call $1672 +1659: f5 a0 03 mov a,$03a0+x +165c: f0 ac beq $160a +165e: f5 40 03 mov a,$0340+x +1661: de 83 a6 cbne $83+x,$160a +1664: eb e3 mov y,$e3 +1666: f5 21 03 mov a,$0321+x +1669: cf mul ya +166a: dd mov a,y +166b: 60 clrc +166c: 95 20 03 adc a,$0320+x +166f: 5f e9 15 jmp $15e9 + +1672: e2 cf set7 $cf +1674: cb ce mov $ce,y +1676: 3f 8b 0e call $0e8b +1679: 6d push y +167a: eb e3 mov y,$e3 +167c: cf mul ya +167d: cb 0c mov $0c,y +167f: 8f 00 0d mov $0d,#$00 +1682: eb e3 mov y,$e3 +1684: ae pop a +1685: cf mul ya +1686: 7a 0c addw ya,$0c +1688: 3f 8b 0e call $0e8b +168b: 7a cc addw ya,$cc +168d: da cc movw $cc,ya +168f: 6f ret + +1690: e2 cf set7 $cf +1692: eb e3 mov y,$e3 +1694: f5 81 03 mov a,$0381+x +1697: cf mul ya +1698: dd mov a,y +1699: 60 clrc +169a: 95 80 03 adc a,$0380+x +169d: 1c asl a +169e: 90 02 bcc $16a2 +16a0: 48 ff eor a,#$ff +16a2: fd mov y,a +16a3: f5 21 01 mov a,$0121+x +16a6: cf mul ya +16a7: dd mov a,y +16a8: 48 ff eor a,#$ff +16aa: 2d push a +16ab: eb 07 mov y,$07 +16ad: f6 99 07 mov a,$0799+y +16b0: ee pop y +16b1: cf mul ya +16b2: f5 c1 01 mov a,$01c1+x +16b5: cf mul ya +16b6: dd mov a,y +16b7: cf mul ya +16b8: dd mov a,y +16b9: d5 01 02 mov $0201+x,a +16bc: 6f ret + +16bd: 3f 20 0a call $0a20 +16c0: e5 a1 07 mov a,$07a1 +16c3: 24 d0 and a,$d0 +16c5: 05 a2 07 or a,$07a2 +16c8: 05 a3 07 or a,$07a3 +16cb: 05 a4 07 or a,$07a4 +16ce: c4 35 mov $35,a +16d0: 8d 0a mov y,#$0a +16d2: ad 05 cmp y,#$05 +16d4: f0 07 beq $16dd +16d6: b0 08 bcs $16e0 +16d8: 69 38 37 cmp ($37),($38) +16db: d0 14 bne $16f1 +16dd: e3 37 11 bbs7 $37,$16f1 +16e0: f6 f7 16 mov a,$16f7+y +16e3: c4 f2 mov $f2,a +16e5: f6 01 17 mov a,$1701+y +16e8: 5d mov x,a +16e9: e5 e8 00 mov a,$00e8 +16ec: 48 ff eor a,#$ff +16ee: 26 and a,(x) +16ef: c4 f3 mov $f3,a +16f1: fe df dbnz y,$16d2 +16f3: cb 30 mov $30,y +16f5: cb 31 mov $31,y +16f7: 6f ret + +16f8: db $2c,$3c,$0d,$4d,$6c,$4c,$5c,$3d,$2d,$5c +1702: db $c4,$c6,$39,$35,$33,$30,$31,$34,$36,$31 +170c: db $8d,$1e + +170e: 3f 34 14 call $1434 +1711: dc dec y +1712: dc dec y +1713: 10 f9 bpl $170e +1715: 8d 03 mov y,#$03 +1717: e8 20 mov a,#$20 +1719: d6 0c 04 mov $040c+y,a +171c: d6 04 04 mov $0404+y,a +171f: dc dec y +1720: 10 f5 bpl $1717 + +1722: 6f ret diff --git a/snes/NSPC/Capcom/Street Fighter Alpha 2 ($0400).bin b/snes/NSPC/Capcom/Street Fighter Alpha 2 ($0400).bin new file mode 100644 index 00000000..cabe66cd Binary files /dev/null and b/snes/NSPC/Capcom/Street Fighter Alpha 2 ($0400).bin differ diff --git a/snes/NSPC/Capcom/Street Fighter Alpha 2.s b/snes/NSPC/Capcom/Street Fighter Alpha 2.s new file mode 100644 index 00000000..77d20743 --- /dev/null +++ b/snes/NSPC/Capcom/Street Fighter Alpha 2.s @@ -0,0 +1,2140 @@ +0400: 20 clrp +0401: cd cf mov x,#$cf +0403: bd mov sp,x +0404: e8 e0 mov a,#$e0 +0406: 8d 6c mov y,#$6c +0408: 3f c6 06 call $06c6 +040b: e8 00 mov a,#$00 +040d: 5d mov x,a +040e: af mov (x)+,a +040f: c8 f0 cmp x,#$f0 +0411: d0 fb bne $040e +0413: 5d mov x,a +0414: d5 00 01 mov $0100+x,a +0417: 3d inc x +0418: d0 fa bne $0414 +041a: d5 00 02 mov $0200+x,a +041d: 3d inc x +041e: d0 fa bne $041a +0420: d5 00 03 mov $0300+x,a +0423: 3d inc x +0424: c8 80 cmp x,#$80 +0426: d0 f8 bne $0420 +0428: 3f 3c 05 call $053c +042b: e8 70 mov a,#$70 +042d: c5 f1 00 mov $00f1,a +0430: e8 10 mov a,#$10 +0432: c5 fa 00 mov $00fa,a +0435: e8 01 mov a,#$01 +0437: c5 f1 00 mov $00f1,a +043a: 8d 0a mov y,#$0a +043c: ad 05 cmp y,#$05 +043e: f0 07 beq $0447 +0440: b0 08 bcs $044a +0442: 69 4d 4c cmp ($4c),($4d) +0445: d0 11 bne $0458 +0447: e3 4c 0e bbs7 $4c,$0458 +044a: f6 5e 0e mov a,$0e5e+y +044d: c5 f2 00 mov $00f2,a +0450: f6 68 0e mov a,$0e68+y +0453: 5d mov x,a +0454: e6 mov a,(x) +0455: c5 f3 00 mov $00f3,a +0458: fe e2 dbnz y,$043c +045a: cb 45 mov $45,y +045c: cb 46 mov $46,y +045e: e4 1a mov a,$1a +0460: 48 ff eor a,#$ff +0462: 24 6c and a,$6c +0464: c4 46 mov $46,a +0466: cb 6c mov $6c,y +0468: ec fd 00 mov y,$00fd +046b: f0 fb beq $0468 +046d: cb e6 mov $e6,y +046f: e8 20 mov a,#$20 +0471: cf mul ya +0472: 60 clrc +0473: 84 43 adc a,$43 +0475: c4 43 mov $43,a +0477: 90 07 bcc $0480 +0479: 69 4d 4c cmp ($4c),($4d) +047c: f0 02 beq $0480 +047e: ab 4c inc $4c +0480: e4 53 mov a,$53 +0482: eb e6 mov y,$e6 +0484: cf mul ya +0485: 60 clrc +0486: 84 51 adc a,$51 +0488: c4 51 mov $51,a +048a: 90 36 bcc $04c2 +048c: 3f 2e 0f call $0f2e +048f: 3f 56 07 call $0756 +0492: 8f 20 47 mov $47,#$20 +0495: cd 0a mov x,#$0a +0497: 3f 44 10 call $1044 +049a: 3d inc x +049b: 3d inc x +049c: 0b 47 asl $47 +049e: d0 f7 bne $0497 +04a0: cd 00 mov x,#$00 +04a2: 3f db 04 call $04db +04a5: cd 01 mov x,#$01 +04a7: 3f db 04 call $04db +04aa: cd 02 mov x,#$02 +04ac: 3f db 04 call $04db +04af: cd 03 mov x,#$03 +04b1: 3f db 04 call $04db +04b4: ac 4f 00 inc $004f +04b7: e5 4f 00 mov a,$004f +04ba: c4 07 mov $07,a +04bc: 3f f2 04 call $04f2 +04bf: 5f 3a 04 jmp $043a + +04c2: e4 04 mov a,$04 +04c4: f0 12 beq $04d8 +04c6: cd 00 mov x,#$00 +04c8: 8f 01 47 mov $47,#$01 +04cb: f4 31 mov a,$31+x +04cd: f0 03 beq $04d2 +04cf: 3f 3a 0d call $0d3a +04d2: 3d inc x +04d3: 3d inc x +04d4: 0b 47 asl $47 +04d6: d0 f3 bne $04cb +04d8: 5f 3a 04 jmp $043a + +04db: f5 50 02 mov a,$0250+x +04de: d5 54 02 mov $0254+x,a +04e1: f4 04 mov a,$04+x +04e3: d5 f4 00 mov $00f4+x,a +04e6: f5 f4 00 mov a,$00f4+x +04e9: 75 f4 00 cmp a,$00f4+x +04ec: d0 f8 bne $04e6 +04ee: d5 50 02 mov $0250+x,a +04f1: 6f ret + +04f2: e5 50 02 mov a,$0250 +04f5: 65 54 02 cmp a,$0254 +04f8: f0 08 beq $0502 +04fa: 28 7f and a,#$7f +04fc: c4 00 mov $00,a +04fe: e8 ff mov a,#$ff +0500: c4 08 mov $08,a +0502: e5 51 02 mov a,$0251 +0505: 65 55 02 cmp a,$0255 +0508: f0 0b beq $0515 +050a: 28 7f and a,#$7f +050c: 68 6f cmp a,#$6f +050e: b0 06 bcs $0516 +0510: c4 01 mov $01,a +0512: 8f ff 09 mov $09,#$ff +0515: 6f ret + +0516: 3f 1a 05 call $051a +0519: 6f ret + +051a: 28 0f and a,#$0f +051c: 1c asl a +051d: 5d mov x,a +051e: f5 28 05 mov a,$0528+x +0521: 2d push a +0522: f5 27 05 mov a,$0527+x +0525: 2d push a +0526: 6f ret + +0527: 39 and (x),(y) +0528: 05 56 05 or a,$0556 +052b: 89 05 8f adc ($8f),($05) +052e: 05 95 05 or a,$0595 +0531: a2 05 set5 $05 +0533: ac 05 c0 inc $c005 +0536: 05 ca 05 or a,$05ca +0539: 5f 00 04 jmp $0400 + +053c: e8 00 mov a,#$00 +053e: 3f 5d 0a call $0a5d +0541: a2 48 set5 $48 +0543: e8 68 mov a,#$68 +0545: 8d 0c mov y,#$0c +0547: 3f c6 06 call $06c6 +054a: 8d 1c mov y,#$1c +054c: 3f c6 06 call $06c6 +054f: e8 14 mov a,#$14 +0551: 8d 5d mov y,#$5d +0553: 3f c6 06 call $06c6 +0556: e8 00 mov a,#$00 +0558: c4 00 mov $00,a +055a: c4 01 mov $01,a +055c: c4 02 mov $02,a +055e: c4 03 mov $03,a +0560: c5 50 02 mov $0250,a +0563: c5 51 02 mov $0251,a +0566: c5 52 02 mov $0252,a +0569: c5 53 02 mov $0253,a +056c: c5 54 02 mov $0254,a +056f: c5 55 02 mov $0255,a +0572: c5 56 02 mov $0256,a +0575: c5 57 02 mov $0257,a +0578: c5 58 02 mov $0258,a +057b: 3f 10 07 call $0710 +057e: e8 77 mov a,#$77 +0580: c5 f1 00 mov $00f1,a +0583: e8 be mov a,#$be +0585: c5 59 02 mov $0259,a +0588: 6f ret + +0589: e8 00 mov a,#$00 +058b: c5 58 02 mov $0258,a +058e: 6f ret + +058f: e8 01 mov a,#$01 +0591: c5 58 02 mov $0258,a +0594: 6f ret + +0595: 3f 4c 0f call $0f4c +0598: e5 52 02 mov a,$0252 +059b: d5 40 01 mov $0140+x,a +059e: 09 47 e4 or ($e4),($47) +05a1: 6f ret + +05a2: e5 53 02 mov a,$0253 +05a5: d0 01 bne $05a8 +05a7: bc inc a +05a8: c5 59 02 mov $0259,a +05ab: 6f ret + +05ac: e5 59 02 mov a,$0259 +05af: c4 5a mov $5a,a +05b1: e8 00 mov a,#$00 +05b3: c4 5b mov $5b,a +05b5: 80 setc +05b6: a4 59 sbc a,$59 +05b8: f8 5a mov x,$5a +05ba: 3f ed 0a call $0aed +05bd: da 5c movw $5c,ya +05bf: 6f ret + +05c0: 3f 4c 0f call $0f4c +05c3: e5 52 02 mov a,$0252 +05c6: d5 50 01 mov $0150+x,a +05c9: 6f ret + +05ca: e5 52 02 mov a,$0252 +05cd: c5 6d 00 mov $006d,a +05d0: 6f ret + +05d1: ad ca cmp y,#$ca +05d3: 90 05 bcc $05da +05d5: 3f a6 08 call $08a6 +05d8: 8d a4 mov y,#$a4 +05da: ad c8 cmp y,#$c8 +05dc: b0 f2 bcs $05d0 +05de: e4 1a mov a,$1a +05e0: 24 47 and a,$47 +05e2: d0 ec bne $05d0 +05e4: dd mov a,y +05e5: 28 7f and a,#$7f +05e7: 60 clrc +05e8: 84 50 adc a,$50 +05ea: 60 clrc +05eb: 95 f0 02 adc a,$02f0+x +05ee: d5 61 03 mov $0361+x,a +05f1: f5 81 03 mov a,$0381+x +05f4: d5 60 03 mov $0360+x,a +05f7: f5 b1 02 mov a,$02b1+x +05fa: 5c lsr a +05fb: e8 00 mov a,#$00 +05fd: 7c ror a +05fe: d5 a0 02 mov $02a0+x,a +0601: e8 00 mov a,#$00 +0603: d4 b0 mov $b0+x,a +0605: d5 00 01 mov $0100+x,a +0608: d5 d0 02 mov $02d0+x,a +060b: d4 c0 mov $c0+x,a +060d: 09 47 5e or ($5e),($47) +0610: 09 47 45 or ($45),($47) +0613: f5 80 02 mov a,$0280+x +0616: d4 a0 mov $a0+x,a +0618: f0 1e beq $0638 +061a: f5 81 02 mov a,$0281+x +061d: d4 a1 mov $a1+x,a +061f: f5 90 02 mov a,$0290+x +0622: d0 0a bne $062e +0624: f5 61 03 mov a,$0361+x +0627: 80 setc +0628: b5 91 02 sbc a,$0291+x +062b: d5 61 03 mov $0361+x,a +062e: f5 91 02 mov a,$0291+x +0631: 60 clrc +0632: 95 61 03 adc a,$0361+x +0635: 3f ca 0a call $0aca +0638: 3f e2 0a call $0ae2 +063b: 8d 00 mov y,#$00 +063d: e4 11 mov a,$11 +063f: 80 setc +0640: a8 34 sbc a,#$34 +0642: b0 09 bcs $064d +0644: e4 11 mov a,$11 +0646: 80 setc +0647: a8 13 sbc a,#$13 +0649: b0 06 bcs $0651 +064b: dc dec y +064c: 1c asl a +064d: 7a 10 addw ya,$10 +064f: da 10 movw $10,ya +0651: 4d push x +0652: e4 11 mov a,$11 +0654: 1c asl a +0655: 8d 00 mov y,#$00 +0657: cd 18 mov x,#$18 +0659: 9e div ya,x +065a: 5d mov x,a +065b: f6 74 0e mov a,$0e74+y +065e: c4 15 mov $15,a +0660: f6 73 0e mov a,$0e73+y +0663: c4 14 mov $14,a +0665: f6 76 0e mov a,$0e76+y +0668: 2d push a +0669: f6 75 0e mov a,$0e75+y +066c: ee pop y +066d: 9a 14 subw ya,$14 +066f: eb 10 mov y,$10 +0671: cf mul ya +0672: dd mov a,y +0673: 8d 00 mov y,#$00 +0675: 7a 14 addw ya,$14 +0677: cb 15 mov $15,y +0679: 1c asl a +067a: 2b 15 rol $15 +067c: c4 14 mov $14,a +067e: 2f 04 bra $0684 +0680: 4b 15 lsr $15 +0682: 7c ror a +0683: 3d inc x +0684: c8 06 cmp x,#$06 +0686: d0 f8 bne $0680 +0688: c4 14 mov $14,a +068a: ce pop x +068b: f5 20 02 mov a,$0220+x +068e: eb 15 mov y,$15 +0690: cf mul ya +0691: da 16 movw $16,ya +0693: f5 20 02 mov a,$0220+x +0696: eb 14 mov y,$14 +0698: cf mul ya +0699: 6d push y +069a: f5 21 02 mov a,$0221+x +069d: eb 14 mov y,$14 +069f: cf mul ya +06a0: 7a 16 addw ya,$16 +06a2: da 16 movw $16,ya +06a4: f5 21 02 mov a,$0221+x +06a7: eb 15 mov y,$15 +06a9: cf mul ya +06aa: fd mov y,a +06ab: ae pop a +06ac: 7a 16 addw ya,$16 +06ae: da 16 movw $16,ya +06b0: 7d mov a,x +06b1: 9f xcn a +06b2: 5c lsr a +06b3: 08 02 or a,#$02 +06b5: fd mov y,a +06b6: e4 16 mov a,$16 +06b8: 3f be 06 call $06be +06bb: fc inc y +06bc: e4 17 mov a,$17 +06be: 2d push a +06bf: e4 47 mov a,$47 +06c1: 24 1a and a,$1a +06c3: ae pop a +06c4: d0 06 bne $06cc +06c6: cc f2 00 mov $00f2,y +06c9: c5 f3 00 mov $00f3,a +06cc: 6f ret + +06cd: 3f 05 07 call $0705 +06d0: 8d 00 mov y,#$00 +06d2: f7 40 mov a,($40)+y +06d4: 3a 40 incw $40 +06d6: 2d push a +06d7: f7 40 mov a,($40)+y +06d9: 3a 40 incw $40 +06db: fd mov y,a +06dc: ae pop a +06dd: 6f ret + +06de: e8 ff mov a,#$ff ; load song +06e0: 44 1a eor a,$1a +06e2: 2f 04 bra $06e8 +06e4: e8 ff mov a,#$ff +06e6: c4 6d mov $6d,a +06e8: 8d 5c mov y,#$5c +06ea: cc f2 00 mov $00f2,y +06ed: c5 f3 00 mov $00f3,a +06f0: 3f a5 0e call $0ea5 +06f3: c4 08 mov $08,a +06f5: c4 04 mov $04,a +06f7: 1c asl a +06f8: 5d mov x,a +06f9: f5 8f 03 mov a,$038f+x +06fc: fd mov y,a +06fd: f5 8e 03 mov a,$038e+x +0700: da 40 movw $40,ya +0702: 8f 02 0c mov $0c,#$02 +0705: e4 1a mov a,$1a +0707: 48 ff eor a,#$ff +0709: 0e 46 00 tset1 $0046 +070c: 8f 00 6c mov $6c,#$00 +070f: 6f ret + +0710: cd 0e mov x,#$0e +0712: 8f 80 47 mov $47,#$80 +0715: e8 ff mov a,#$ff +0717: d5 01 03 mov $0301+x,a +071a: d5 71 02 mov $0271+x,a +071d: e8 0a mov a,#$0a +071f: 3f 07 09 call $0907 +0722: e8 00 mov a,#$00 +0724: d5 11 02 mov $0211+x,a +0727: d5 81 03 mov $0381+x,a +072a: d5 f0 02 mov $02f0+x,a +072d: d5 80 02 mov $0280+x,a +0730: d4 b1 mov $b1+x,a +0732: d4 c1 mov $c1+x,a +0734: d5 60 02 mov $0260+x,a +0737: 1d dec x +0738: 1d dec x +0739: 4b 47 lsr $47 +073b: d0 d8 bne $0715 +073d: c4 5a mov $5a,a +073f: c4 68 mov $68,a +0741: c4 54 mov $54,a +0743: c4 50 mov $50,a +0745: c4 42 mov $42,a +0747: c4 5f mov $5f,a +0749: 8f c0 59 mov $59,#$c0 +074c: 8f 20 53 mov $53,#$20 +074f: 6f ret + +0750: 2f 92 bra $06e4 +0752: 2f 8a bra $06de +0754: 2f 9f bra $06f5 +0756: eb 08 mov y,$08 +0758: e4 00 mov a,$00 +075a: c4 08 mov $08,a +075c: 68 7d cmp a,#$7d +075e: f0 a5 beq $0705 +0760: 68 7e cmp a,#$7e +0762: f0 0c beq $0770 +0764: 68 7f cmp a,#$7f +0766: f0 e8 beq $0750 +0768: 68 7c cmp a,#$7c +076a: f0 e6 beq $0752 +076c: 7e 00 cmp y,$00 +076e: d0 85 bne $06f5 +0770: e4 04 mov a,$04 +0772: f0 db beq $074f +0774: e4 0c mov a,$0c +0776: f0 4c beq $07c4 +0778: 6e 0c 95 dbnz $0c,$0710 +077b: 3f cd 06 call $06cd +077e: d0 14 bne $0794 +0780: fd mov y,a +0781: f0 d1 beq $0754 +0783: 8b 42 dec $42 +0785: 10 02 bpl $0789 +0787: c4 42 mov $42,a +0789: 3f cd 06 call $06cd +078c: f8 42 mov x,$42 +078e: f0 eb beq $077b +0790: da 40 movw $40,ya +0792: 2f e7 bra $077b +0794: da 16 movw $16,ya +0796: 8d 0f mov y,#$0f +0798: f7 16 mov a,($16)+y +079a: d6 30 00 mov $0030+y,a +079d: dc dec y +079e: 10 f8 bpl $0798 +07a0: cd 00 mov x,#$00 +07a2: 8f 01 47 mov $47,#$01 +07a5: f4 31 mov a,$31+x +07a7: f0 0a beq $07b3 +07a9: f5 11 02 mov a,$0211+x +07ac: d0 05 bne $07b3 +07ae: e8 00 mov a,#$00 +07b0: 3f a6 08 call $08a6 +07b3: e8 00 mov a,#$00 +07b5: d4 80 mov $80+x,a +07b7: d4 90 mov $90+x,a +07b9: d4 91 mov $91+x,a +07bb: bc inc a +07bc: d4 70 mov $70+x,a +07be: 3d inc x +07bf: 3d inc x +07c0: 0b 47 asl $47 +07c2: d0 e1 bne $07a5 +07c4: cd 00 mov x,#$00 +07c6: d8 5e mov $5e,x +07c8: 8f 01 47 mov $47,#$01 +07cb: d8 44 mov $44,x +07cd: f4 31 mov a,$31+x +07cf: f0 66 beq $0837 +07d1: 9b 70 dec $70+x +07d3: d0 5c bne $0831 +07d5: 3f 9c 08 call $089c +07d8: d0 17 bne $07f1 +07da: f4 80 mov a,$80+x +07dc: f0 9d beq $077b +07de: 3f f5 09 call $09f5 +07e1: 9b 80 dec $80+x +07e3: d0 f0 bne $07d5 +07e5: f5 30 02 mov a,$0230+x +07e8: d4 30 mov $30+x,a +07ea: f5 31 02 mov a,$0231+x +07ed: d4 31 mov $31+x,a +07ef: 2f e4 bra $07d5 +07f1: 30 20 bmi $0813 +07f3: d5 00 02 mov $0200+x,a +07f6: 3f 9c 08 call $089c +07f9: 30 18 bmi $0813 +07fb: 2d push a +07fc: 9f xcn a +07fd: 28 07 and a,#$07 +07ff: fd mov y,a +0800: f6 8d 0e mov a,$0e8d+y +0803: d5 01 02 mov $0201+x,a +0806: ae pop a +0807: 28 0f and a,#$0f +0809: fd mov y,a +080a: f6 95 0e mov a,$0e95+y +080d: d5 10 02 mov $0210+x,a +0810: 3f 9c 08 call $089c +0813: 68 e0 cmp a,#$e0 +0815: 90 05 bcc $081c +0817: 3f 8a 08 call $088a +081a: 2f b9 bra $07d5 +081c: 3f d1 05 call $05d1 +081f: f5 00 02 mov a,$0200+x +0822: d4 70 mov $70+x,a +0824: fd mov y,a +0825: f5 01 02 mov a,$0201+x +0828: cf mul ya +0829: dd mov a,y +082a: d0 01 bne $082d +082c: bc inc a +082d: d4 71 mov $71+x,a +082f: 2f 03 bra $0834 +0831: 3f 4c 0c call $0c4c +0834: 3f aa 0a call $0aaa +0837: 3d inc x +0838: 3d inc x +0839: 0b 47 asl $47 +083b: d0 8e bne $07cb +083d: e4 54 mov a,$54 +083f: f0 0b beq $084c +0841: ba 56 movw ya,$56 +0843: 7a 52 addw ya,$52 +0845: 6e 54 02 dbnz $54,$084a +0848: ba 54 movw ya,$54 +084a: da 52 movw $52,ya +084c: e4 68 mov a,$68 +084e: f0 15 beq $0865 +0850: ba 64 movw ya,$64 +0852: 7a 60 addw ya,$60 +0854: da 60 movw $60,ya +0856: ba 66 movw ya,$66 +0858: 7a 62 addw ya,$62 +085a: 6e 68 06 dbnz $68,$0863 +085d: ba 68 movw ya,$68 +085f: da 60 movw $60,ya +0861: eb 6a mov y,$6a +0863: da 62 movw $62,ya +0865: e4 5a mov a,$5a +0867: f0 0e beq $0877 +0869: ba 5c movw ya,$5c +086b: 7a 58 addw ya,$58 +086d: 6e 5a 02 dbnz $5a,$0872 +0870: ba 5a movw ya,$5a +0872: da 58 movw $58,ya +0874: 8f ff 5e mov $5e,#$ff +0877: cd 00 mov x,#$00 +0879: 8f 01 47 mov $47,#$01 +087c: f4 31 mov a,$31+x +087e: f0 03 beq $0883 +0880: 3f 66 0b call $0b66 +0883: 3d inc x +0884: 3d inc x +0885: 0b 47 asl $47 +0887: d0 f3 bne $087c +0889: 6f ret + +; dispatch vcmd in A (e0-ff) +088a: 1c asl a +088b: fd mov y,a +088c: f6 4a 0a mov a,$0a4a+y +088f: 2d push a +0890: f6 49 0a mov a,$0a49+y +0893: 2d push a +0894: dd mov a,y +0895: 5c lsr a +0896: fd mov y,a +0897: f6 e7 0a mov a,$0ae7+y +089a: f0 08 beq $08a4 +; read new argument to A and Y +089c: e7 30 mov a,($30+x) +; advance reading ptr +089e: bb 30 inc $30+x +08a0: d0 02 bne $08a4 +08a2: bb 31 inc $31+x +08a4: fd mov y,a +08a5: 6f ret + +; vcmd e0 - set instrument +08a6: d5 11 02 mov $0211+x,a +08a9: e8 00 mov a,#$00 +08ab: d5 60 02 mov $0260+x,a +08ae: f5 11 02 mov a,$0211+x +08b1: fd mov y,a +08b2: 10 06 bpl $08ba +08b4: 80 setc +08b5: a8 ca sbc a,#$ca +08b7: 60 clrc +08b8: 84 5f adc a,$5f +08ba: 8d 06 mov y,#$06 +08bc: cf mul ya +08bd: da 14 movw $14,ya +08bf: 60 clrc +08c0: 98 08 14 adc $14,#$08 +08c3: 98 12 15 adc $15,#$12 +08c6: e4 1a mov a,$1a +08c8: 24 47 and a,$47 +08ca: d0 3a bne $0906 +08cc: 4d push x +08cd: 7d mov a,x +08ce: 9f xcn a +08cf: 5c lsr a +08d0: 08 04 or a,#$04 +08d2: 5d mov x,a +08d3: 8d 00 mov y,#$00 +08d5: f7 14 mov a,($14)+y +08d7: 10 0e bpl $08e7 +08d9: 28 1f and a,#$1f +08db: 38 20 48 and $48,#$20 +08de: 0e 48 00 tset1 $0048 +08e1: 09 47 49 or ($49),($47) +08e4: dd mov a,y +08e5: 2f 07 bra $08ee +08e7: e4 47 mov a,$47 +08e9: 4e 49 00 tclr1 $0049 +08ec: f7 14 mov a,($14)+y +08ee: c9 f2 00 mov $00f2,x +08f1: c5 f3 00 mov $00f3,a +08f4: 3d inc x +08f5: fc inc y +08f6: ad 04 cmp y,#$04 +08f8: d0 f2 bne $08ec +08fa: ce pop x +08fb: f7 14 mov a,($14)+y +08fd: d5 21 02 mov $0221+x,a +0900: fc inc y +0901: f7 14 mov a,($14)+y +0903: d5 20 02 mov $0220+x,a +0906: 6f ret + +; vcmd e1 - set pan +0907: d5 51 03 mov $0351+x,a +090a: 28 1f and a,#$1f +090c: d5 31 03 mov $0331+x,a +090f: e8 00 mov a,#$00 +0911: d5 30 03 mov $0330+x,a +0914: 6f ret + +; vcmd e2 - set pan fade +0915: d4 91 mov $91+x,a +0917: 2d push a +0918: 3f 9c 08 call $089c +091b: d5 50 03 mov $0350+x,a +091e: 80 setc +091f: b5 31 03 sbc a,$0331+x +0922: ce pop x +0923: 3f ed 0a call $0aed +0926: d5 40 03 mov $0340+x,a +0929: dd mov a,y +092a: d5 41 03 mov $0341+x,a +092d: 6f ret + +; vcmd e3 - vibrato on +092e: d5 b0 02 mov $02b0+x,a +0931: 3f 9c 08 call $089c +0934: d5 a1 02 mov $02a1+x,a +0937: 3f 9c 08 call $089c +; vcmd e4 - vibrato off +093a: d4 b1 mov $b1+x,a +093c: d5 c1 02 mov $02c1+x,a +093f: e8 00 mov a,#$00 +0941: d5 b1 02 mov $02b1+x,a +0944: 6f ret + +; vcmd f0 - vibrato fade +0945: d5 b1 02 mov $02b1+x,a +0948: 2d push a +0949: 8d 00 mov y,#$00 +094b: f4 b1 mov a,$b1+x +094d: ce pop x +094e: 9e div ya,x +094f: f8 44 mov x,$44 +0951: d5 c0 02 mov $02c0+x,a +0954: 6f ret + +; vcmd e5 - master volume +0955: e8 00 mov a,#$00 +0957: da 58 movw $58,ya +0959: 6f ret + +; vcmd e6 - master volume fade +095a: c4 5a mov $5a,a +095c: 3f 9c 08 call $089c +095f: c4 5b mov $5b,a +0961: 80 setc +0962: a4 59 sbc a,$59 +0964: f8 5a mov x,$5a +0966: 3f ed 0a call $0aed +0969: da 5c movw $5c,ya +096b: 6f ret + +; vcmd e7 - tempo +096c: e8 00 mov a,#$00 +096e: da 52 movw $52,ya +0970: 6f ret + +; vcmd e8 - tempo fade +0971: c4 54 mov $54,a +0973: 3f 9c 08 call $089c +0976: c4 55 mov $55,a +0978: 80 setc +0979: a4 53 sbc a,$53 +097b: f8 54 mov x,$54 +097d: 3f ed 0a call $0aed +0980: da 56 movw $56,ya +0982: 6f ret + +; vcmd e9 - global transpose +0983: c4 50 mov $50,a +0985: 6f ret + +; vcmd ea - per-voice transpose +0986: d5 f0 02 mov $02f0+x,a +0989: 6f ret + +; vcmd eb - tremolo on +098a: d5 e0 02 mov $02e0+x,a +098d: 3f 9c 08 call $089c +0990: d5 d1 02 mov $02d1+x,a +0993: 3f 9c 08 call $089c +; vcmd ec - tremolo off +0996: d4 c1 mov $c1+x,a +0998: 6f ret + +; vcmd f1 - pitch envelope (release) +0999: e8 01 mov a,#$01 +099b: 2f 02 bra $099f +; vcmd f2 - pitch envelope (attack) +099d: e8 00 mov a,#$00 +099f: d5 90 02 mov $0290+x,a +09a2: dd mov a,y +09a3: d5 81 02 mov $0281+x,a +09a6: 3f 9c 08 call $089c +09a9: d5 80 02 mov $0280+x,a +09ac: 3f 9c 08 call $089c +09af: d5 91 02 mov $0291+x,a +09b2: 6f ret + +; vcmd f3 - pitch envelope off +09b3: d5 80 02 mov $0280+x,a +09b6: 6f ret + +; vcmd ed - volume +09b7: d5 01 03 mov $0301+x,a +09ba: e8 00 mov a,#$00 +09bc: d5 00 03 mov $0300+x,a +09bf: 6f ret + +; vcmd ee - volume fade +09c0: d4 90 mov $90+x,a +09c2: 2d push a +09c3: 3f 9c 08 call $089c +09c6: d5 20 03 mov $0320+x,a +09c9: 80 setc +09ca: b5 01 03 sbc a,$0301+x +09cd: ce pop x +09ce: 3f ed 0a call $0aed +09d1: d5 10 03 mov $0310+x,a +09d4: dd mov a,y +09d5: d5 11 03 mov $0311+x,a +09d8: 6f ret + +; vcmd f4 - tuning +09d9: d5 81 03 mov $0381+x,a +09dc: 6f ret + +; vcmd ef - call subroutine +09dd: d5 40 02 mov $0240+x,a +09e0: 3f 9c 08 call $089c +09e3: d5 41 02 mov $0241+x,a +09e6: 3f 9c 08 call $089c +09e9: d4 80 mov $80+x,a +09eb: f4 30 mov a,$30+x +09ed: d5 30 02 mov $0230+x,a +09f0: f4 31 mov a,$31+x +09f2: d5 31 02 mov $0231+x,a +09f5: f5 40 02 mov a,$0240+x +09f8: d4 30 mov $30+x,a +09fa: f5 41 02 mov a,$0241+x +09fd: d4 31 mov $31+x,a +09ff: 6f ret + +; vcmd f5 - echo vbits/volume +0a00: c4 4a mov $4a,a +0a02: 3f 9c 08 call $089c +0a05: e8 00 mov a,#$00 +0a07: da 60 movw $60,ya +0a09: 3f 9c 08 call $089c +0a0c: e8 00 mov a,#$00 +0a0e: da 62 movw $62,ya +0a10: b2 48 clr5 $48 +0a12: 6f ret + +; vcmd f8 - echo volume fade +0a13: c4 68 mov $68,a +0a15: 3f 9c 08 call $089c +0a18: c4 69 mov $69,a +0a1a: 80 setc +0a1b: a4 61 sbc a,$61 +0a1d: f8 68 mov x,$68 +0a1f: 3f ed 0a call $0aed +0a22: da 64 movw $64,ya +0a24: 3f 9c 08 call $089c +0a27: c4 6a mov $6a,a +0a29: 80 setc +0a2a: a4 63 sbc a,$63 +0a2c: f8 68 mov x,$68 +0a2e: 3f ed 0a call $0aed +0a31: da 66 movw $66,ya +0a33: 6f ret + +; vcmd f6 - disable echo +0a34: da 60 movw $60,ya +0a36: da 62 movw $62,ya +0a38: a2 48 set5 $48 +0a3a: 6f ret + +; vcmd f7 - set echo params +0a3b: 3f 5d 0a call $0a5d +0a3e: 3f 9c 08 call $089c +0a41: c4 4e mov $4e,a +0a43: 3f 9c 08 call $089c +0a46: 8d 08 mov y,#$08 +0a48: cf mul ya +0a49: 5d mov x,a +0a4a: 8d 0f mov y,#$0f +0a4c: f5 3f 0e mov a,$0e3f+x +0a4f: 3f c6 06 call $06c6 +0a52: 3d inc x +0a53: dd mov a,y +0a54: 60 clrc +0a55: 88 10 adc a,#$10 +0a57: fd mov y,a +0a58: 10 f2 bpl $0a4c +0a5a: f8 44 mov x,$44 +0a5c: 6f ret + +0a5d: c4 4d mov $4d,a +0a5f: 8d 7d mov y,#$7d +0a61: cc f2 00 mov $00f2,y +0a64: e5 f3 00 mov a,$00f3 +0a67: 64 4d cmp a,$4d +0a69: f0 2b beq $0a96 +0a6b: 28 0f and a,#$0f +0a6d: 48 ff eor a,#$ff +0a6f: f3 4c 03 bbc7 $4c,$0a75 +0a72: 60 clrc +0a73: 84 4c adc a,$4c +0a75: c4 4c mov $4c,a +0a77: 8d 04 mov y,#$04 +0a79: f6 5e 0e mov a,$0e5e+y +0a7c: c5 f2 00 mov $00f2,a +0a7f: e8 00 mov a,#$00 +0a81: c5 f3 00 mov $00f3,a +0a84: fe f3 dbnz y,$0a79 +0a86: e4 48 mov a,$48 +0a88: 08 20 or a,#$20 +0a8a: 8d 6c mov y,#$6c +0a8c: 3f c6 06 call $06c6 +0a8f: e4 4d mov a,$4d +0a91: 8d 7d mov y,#$7d +0a93: 3f c6 06 call $06c6 +0a96: 1c asl a +0a97: 1c asl a +0a98: 1c asl a +0a99: 48 ff eor a,#$ff +0a9b: 80 setc +0a9c: 88 ff adc a,#$ff +0a9e: 8d 6d mov y,#$6d +0aa0: 5f c6 06 jmp $06c6 + +; vcmd fa - set perc patch base +0aa3: c4 5f mov $5f,a +0aa5: 6f ret + +; vcmd fd/fe - skip 1 byte +0aa6: 3f 9e 08 call $089e +0aa9: 6f ret + +; vcmd f9 - pitch slide +0aaa: f4 a0 mov a,$a0+x +0aac: d0 33 bne $0ae1 +0aae: e7 30 mov a,($30+x) +0ab0: 68 f9 cmp a,#$f9 +0ab2: d0 2d bne $0ae1 +0ab4: 3f 9e 08 call $089e +0ab7: 3f 9c 08 call $089c +0aba: d4 a1 mov $a1+x,a +0abc: 3f 9c 08 call $089c +0abf: d4 a0 mov $a0+x,a +0ac1: 3f 9c 08 call $089c +0ac4: 60 clrc +0ac5: 84 50 adc a,$50 +0ac7: 95 f0 02 adc a,$02f0+x +0aca: 28 7f and a,#$7f +0acc: d5 80 03 mov $0380+x,a +0acf: 80 setc +0ad0: b5 61 03 sbc a,$0361+x +0ad3: fb a0 mov y,$a0+x +0ad5: 6d push y +0ad6: ce pop x +0ad7: 3f ed 0a call $0aed +0ada: d5 70 03 mov $0370+x,a +0add: dd mov a,y +0ade: d5 71 03 mov $0371+x,a +0ae1: 6f ret + +0ae2: f5 61 03 mov a,$0361+x +0ae5: c4 11 mov $11,a +0ae7: f5 60 03 mov a,$0360+x +0aea: c4 10 mov $10,a +0aec: 6f ret + +0aed: ed notc +0aee: 6b 12 ror $12 +0af0: 10 03 bpl $0af5 +0af2: 48 ff eor a,#$ff +0af4: bc inc a +0af5: 8d 00 mov y,#$00 +0af7: 9e div ya,x +0af8: 2d push a +0af9: e8 00 mov a,#$00 +0afb: 9e div ya,x +0afc: ee pop y +0afd: f8 44 mov x,$44 +0aff: f3 12 06 bbc7 $12,$0b08 +0b02: da 14 movw $14,ya +0b04: ba 0e movw ya,$0e +0b06: 9a 14 subw ya,$14 +0b08: 6f ret + +; vcmd dispatch table +0b09: dw $08a6 ; e0 - set instrument +0b0b: dw $0907 ; e1 - set pan +0b0d: dw $0915 ; e2 - set pan fade +0b0f: dw $092e ; e3 - vibrato on +0b11: dw $093a ; e4 - vibrato off +0b13: dw $0955 ; e5 - master volume +0b15: dw $095a ; e6 - master volume fade +0b17: dw $096c ; e7 - tempo +0b19: dw $0971 ; e8 - tempo fade +0b1b: dw $0983 ; e9 - global transpose +0b1d: dw $0986 ; ea - per-voice transpose +0b1f: dw $098a ; eb - tremolo on +0b21: dw $0996 ; ec - tremolo off +0b23: dw $09b7 ; ed - volume +0b25: dw $09c0 ; ee - volume fade +0b27: dw $09dd ; ef - call subroutine +0b29: dw $0945 ; f0 - vibrato fade +0b2b: dw $0999 ; f1 - pitch envelope (release) +0b2d: dw $099d ; f2 - pitch envelope (attack) +0b2f: dw $09b3 ; f3 - pitch envelope off +0b31: dw $09d9 ; f4 - tuning +0b33: dw $0a00 ; f5 - echo vbits/volume +0b35: dw $0a34 ; f6 - disable echo +0b37: dw $0a3b ; f7 - set echo params +0b39: dw $0a13 ; f8 - echo volume fade +0b3b: dw $0aba ; f9 - pitch slide +0b3d: dw $0aa3 ; fa - set perc patch base +0b3f: dw $0ddd ; fb +0b41: dw $0e02 ; fc +0b43: dw $0aa6 ; fd - skip 1 byte +0b45: dw $0aa6 ; fe - skip 1 byte + +; vcmd lengths +0b47: db $01,$01,$02,$03,$00,$01,$02,$01 ; e0-e7 +0b4f: db $02,$01,$01,$03,$00,$01,$02,$03 ; e8-ef +0b57: db $01,$03,$03,$00,$01,$03,$00,$03 ; f0-f7 +0b5f: db $03,$03,$01,$02,$02,$02,$02 ; f8-fe + +; do voice fades +0b66: f4 90 mov a,$90+x +0b68: f0 24 beq $0b8e +0b6a: 09 47 5e or ($5e),($47) +0b6d: 9b 90 dec $90+x +0b6f: d0 0a bne $0b7b +0b71: e8 00 mov a,#$00 +0b73: d5 00 03 mov $0300+x,a +0b76: f5 20 03 mov a,$0320+x +0b79: 2f 10 bra $0b8b +0b7b: 60 clrc +0b7c: f5 00 03 mov a,$0300+x +0b7f: 95 10 03 adc a,$0310+x +0b82: d5 00 03 mov $0300+x,a +0b85: f5 01 03 mov a,$0301+x +0b88: 95 11 03 adc a,$0311+x +0b8b: d5 01 03 mov $0301+x,a +0b8e: fb c1 mov y,$c1+x +0b90: f0 23 beq $0bb5 +0b92: f5 e0 02 mov a,$02e0+x +0b95: de c0 1b cbne $c0+x,$0bb3 +0b98: 09 47 5e or ($5e),($47) +0b9b: f5 d0 02 mov a,$02d0+x +0b9e: 10 07 bpl $0ba7 +0ba0: fc inc y +0ba1: d0 04 bne $0ba7 +0ba3: e8 80 mov a,#$80 +0ba5: 2f 04 bra $0bab +0ba7: 60 clrc +0ba8: 95 d1 02 adc a,$02d1+x +0bab: d5 d0 02 mov $02d0+x,a +0bae: 3f c0 0d call $0dc0 +0bb1: 2f 07 bra $0bba +0bb3: bb c0 inc $c0+x +0bb5: e8 ff mov a,#$ff +0bb7: 3f cb 0d call $0dcb +0bba: f4 91 mov a,$91+x +0bbc: f0 24 beq $0be2 +0bbe: 09 47 5e or ($5e),($47) +0bc1: 9b 91 dec $91+x +0bc3: d0 0a bne $0bcf +0bc5: e8 00 mov a,#$00 +0bc7: d5 30 03 mov $0330+x,a +0bca: f5 50 03 mov a,$0350+x +0bcd: 2f 10 bra $0bdf +0bcf: 60 clrc +0bd0: f5 30 03 mov a,$0330+x +0bd3: 95 40 03 adc a,$0340+x +0bd6: d5 30 03 mov $0330+x,a +0bd9: f5 31 03 mov a,$0331+x +0bdc: 95 41 03 adc a,$0341+x +0bdf: d5 31 03 mov $0331+x,a +0be2: e4 47 mov a,$47 +0be4: 24 5e and a,$5e +0be6: f0 63 beq $0c4b +0be8: f5 31 03 mov a,$0331+x +0beb: fd mov y,a +0bec: f5 30 03 mov a,$0330+x +0bef: da 10 movw $10,ya +0bf1: 7d mov a,x +0bf2: 9f xcn a +0bf3: 5c lsr a +0bf4: c4 12 mov $12,a +0bf6: eb 11 mov y,$11 +0bf8: e5 58 02 mov a,$0258 +0bfb: f0 11 beq $0c0e +0bfd: e8 51 mov a,#$51 +0bff: 80 setc +0c00: a8 51 sbc a,#$51 +0c02: eb 10 mov y,$10 +0c04: cf mul ya +0c05: dd mov a,y +0c06: eb 11 mov y,$11 +0c08: 60 clrc +0c09: 88 51 adc a,#$51 +0c0b: fd mov y,a +0c0c: 2f 12 bra $0c20 +0c0e: f6 2b 0e mov a,$0e2b+y +0c11: 80 setc +0c12: b6 2a 0e sbc a,$0e2a+y +0c15: eb 10 mov y,$10 +0c17: cf mul ya +0c18: dd mov a,y +0c19: eb 11 mov y,$11 +0c1b: 60 clrc +0c1c: 96 2a 0e adc a,$0e2a+y +0c1f: fd mov y,a +0c20: f5 21 03 mov a,$0321+x +0c23: cf mul ya +0c24: f5 71 02 mov a,$0271+x +0c27: cf mul ya +0c28: e4 6d mov a,$6d +0c2a: cf mul ya +0c2b: f5 51 03 mov a,$0351+x +0c2e: 1c asl a +0c2f: 13 12 01 bbc0 $12,$0c33 +0c32: 1c asl a +0c33: dd mov a,y +0c34: 90 03 bcc $0c39 +0c36: 48 ff eor a,#$ff +0c38: bc inc a +0c39: eb 12 mov y,$12 +0c3b: 3f be 06 call $06be +0c3e: 8d 14 mov y,#$14 +0c40: e8 00 mov a,#$00 +0c42: 9a 10 subw ya,$10 +0c44: da 10 movw $10,ya +0c46: ab 12 inc $12 +0c48: 33 12 ab bbc1 $12,$0bf6 +0c4b: 6f ret + +; do readahead +0c4c: f4 71 mov a,$71+x +0c4e: f0 61 beq $0cb1 +0c50: 9b 71 dec $71+x +0c52: f0 05 beq $0c59 +0c54: e8 02 mov a,#$02 +0c56: de 70 58 cbne $70+x,$0cb1 +0c59: f4 80 mov a,$80+x +0c5b: c4 17 mov $17,a +0c5d: f4 30 mov a,$30+x +0c5f: fb 31 mov y,$31+x +0c61: da 14 movw $14,ya +0c63: 8d 00 mov y,#$00 +0c65: f7 14 mov a,($14)+y +0c67: f0 1e beq $0c87 +0c69: 30 07 bmi $0c72 +0c6b: fc inc y +0c6c: 30 40 bmi $0cae +0c6e: f7 14 mov a,($14)+y +0c70: 10 f9 bpl $0c6b +0c72: 68 c8 cmp a,#$c8 +0c74: f0 3b beq $0cb1 +0c76: 68 ef cmp a,#$ef +0c78: f0 29 beq $0ca3 +0c7a: 68 e0 cmp a,#$e0 +0c7c: 90 30 bcc $0cae +0c7e: 6d push y +0c7f: fd mov y,a +0c80: ae pop a +0c81: 96 67 0a adc a,$0a67+y +0c84: fd mov y,a +0c85: 2f de bra $0c65 +0c87: e4 17 mov a,$17 +0c89: f0 23 beq $0cae +0c8b: 8b 17 dec $17 +0c8d: d0 0a bne $0c99 +0c8f: f5 31 02 mov a,$0231+x +0c92: 2d push a +0c93: f5 30 02 mov a,$0230+x +0c96: ee pop y +0c97: 2f c8 bra $0c61 +0c99: f5 41 02 mov a,$0241+x +0c9c: 2d push a +0c9d: f5 40 02 mov a,$0240+x +0ca0: ee pop y +0ca1: 2f be bra $0c61 +0ca3: fc inc y +0ca4: f7 14 mov a,($14)+y +0ca6: 2d push a +0ca7: fc inc y +0ca8: f7 14 mov a,($14)+y +0caa: fd mov y,a +0cab: ae pop a +0cac: 2f b3 bra $0c61 +0cae: 09 47 6c or ($6c),($47) +0cb1: f2 13 clr7 $13 +0cb3: f4 a0 mov a,$a0+x +0cb5: f0 2c beq $0ce3 +0cb7: f4 a1 mov a,$a1+x +0cb9: f0 04 beq $0cbf +0cbb: 9b a1 dec $a1+x +0cbd: 2f 24 bra $0ce3 +0cbf: e2 13 set7 $13 +0cc1: 9b a0 dec $a0+x +0cc3: d0 0b bne $0cd0 +0cc5: f5 81 03 mov a,$0381+x +0cc8: d5 60 03 mov $0360+x,a +0ccb: f5 80 03 mov a,$0380+x +0cce: 2f 10 bra $0ce0 +0cd0: 60 clrc +0cd1: f5 60 03 mov a,$0360+x +0cd4: 95 70 03 adc a,$0370+x +0cd7: d5 60 03 mov $0360+x,a +0cda: f5 61 03 mov a,$0361+x +0cdd: 95 71 03 adc a,$0371+x +0ce0: d5 61 03 mov $0361+x,a +0ce3: 3f e2 0a call $0ae2 +0ce6: f4 b1 mov a,$b1+x +0ce8: f0 4c beq $0d36 +0cea: f5 b0 02 mov a,$02b0+x +0ced: de b0 44 cbne $b0+x,$0d34 +0cf0: f5 00 01 mov a,$0100+x +0cf3: 75 b1 02 cmp a,$02b1+x +0cf6: d0 05 bne $0cfd +0cf8: f5 c1 02 mov a,$02c1+x +0cfb: 2f 0d bra $0d0a +0cfd: 40 setp +0cfe: bb 00 inc $00+x +0d00: 20 clrp +0d01: fd mov y,a +0d02: f0 02 beq $0d06 +0d04: f4 b1 mov a,$b1+x +0d06: 60 clrc +0d07: 95 c0 02 adc a,$02c0+x +0d0a: d4 b1 mov $b1+x,a +0d0c: f5 a0 02 mov a,$02a0+x +0d0f: 60 clrc +0d10: 95 a1 02 adc a,$02a1+x +0d13: d5 a0 02 mov $02a0+x,a +0d16: c4 12 mov $12,a +0d18: 1c asl a +0d19: 1c asl a +0d1a: 90 02 bcc $0d1e +0d1c: 48 ff eor a,#$ff +0d1e: fd mov y,a +0d1f: f4 b1 mov a,$b1+x +0d21: 68 f1 cmp a,#$f1 +0d23: 90 05 bcc $0d2a +0d25: 28 0f and a,#$0f +0d27: cf mul ya +0d28: 2f 04 bra $0d2e +0d2a: cf mul ya +0d2b: dd mov a,y +0d2c: 8d 00 mov y,#$00 +0d2e: 3f ab 0d call $0dab +0d31: 5f 3b 06 jmp $063b + +0d34: bb b0 inc $b0+x +0d36: e3 13 f8 bbs7 $13,$0d31 +0d39: 6f ret + +; per-voice fades/dsps +0d3a: f2 13 clr7 $13 +0d3c: f4 c1 mov a,$c1+x +0d3e: f0 09 beq $0d49 +0d40: f5 e0 02 mov a,$02e0+x +0d43: de c0 03 cbne $c0+x,$0d49 +0d46: 3f b3 0d call $0db3 +0d49: f5 31 03 mov a,$0331+x +0d4c: fd mov y,a +0d4d: f5 30 03 mov a,$0330+x +0d50: da 10 movw $10,ya +0d52: f4 91 mov a,$91+x +0d54: f0 0a beq $0d60 +0d56: f5 41 03 mov a,$0341+x +0d59: fd mov y,a +0d5a: f5 40 03 mov a,$0340+x +0d5d: 3f 95 0d call $0d95 +0d60: f3 13 03 bbc7 $13,$0d66 +0d63: 3f f1 0b call $0bf1 +0d66: f2 13 clr7 $13 +0d68: 3f e2 0a call $0ae2 +0d6b: f4 a0 mov a,$a0+x +0d6d: f0 0e beq $0d7d +0d6f: f4 a1 mov a,$a1+x +0d71: d0 0a bne $0d7d +0d73: f5 71 03 mov a,$0371+x +0d76: fd mov y,a +0d77: f5 70 03 mov a,$0370+x +0d7a: 3f 95 0d call $0d95 +0d7d: f4 b1 mov a,$b1+x +0d7f: f0 b5 beq $0d36 +0d81: f5 b0 02 mov a,$02b0+x +0d84: de b0 af cbne $b0+x,$0d36 +0d87: eb 51 mov y,$51 +0d89: f5 a1 02 mov a,$02a1+x +0d8c: cf mul ya +0d8d: dd mov a,y +0d8e: 60 clrc +0d8f: 95 a0 02 adc a,$02a0+x +0d92: 5f 16 0d jmp $0d16 + +0d95: e2 13 set7 $13 +0d97: cb 12 mov $12,y +0d99: 3f ff 0a call $0aff +0d9c: 6d push y +0d9d: eb 51 mov y,$51 +0d9f: cf mul ya +0da0: cb 14 mov $14,y +0da2: 8f 00 15 mov $15,#$00 +0da5: eb 51 mov y,$51 +0da7: ae pop a +0da8: cf mul ya +0da9: 7a 14 addw ya,$14 +0dab: 3f ff 0a call $0aff +0dae: 7a 10 addw ya,$10 +0db0: da 10 movw $10,ya +0db2: 6f ret + +0db3: e2 13 set7 $13 +0db5: eb 51 mov y,$51 +0db7: f5 d1 02 mov a,$02d1+x +0dba: cf mul ya +0dbb: dd mov a,y +0dbc: 60 clrc +0dbd: 95 d0 02 adc a,$02d0+x +0dc0: 1c asl a +0dc1: 90 02 bcc $0dc5 +0dc3: 48 ff eor a,#$ff +0dc5: fb c1 mov y,$c1+x +0dc7: cf mul ya +0dc8: dd mov a,y +0dc9: 48 ff eor a,#$ff +0dcb: eb 59 mov y,$59 +0dcd: cf mul ya +0dce: f5 10 02 mov a,$0210+x +0dd1: cf mul ya +0dd2: f5 01 03 mov a,$0301+x +0dd5: cf mul ya +0dd6: dd mov a,y +0dd7: cf mul ya +0dd8: dd mov a,y +0dd9: d5 21 03 mov $0321+x,a +0ddc: 6f ret + +; vcmd fb +0ddd: dd mov a,y +0dde: d5 60 02 mov $0260+x,a +0de1: 3f 9c 08 call $089c +0de4: dd mov a,y +0de5: d5 61 02 mov $0261+x,a +0de8: 7d mov a,x +0de9: 9f xcn a +0dea: 5c lsr a +0deb: 08 05 or a,#$05 +0ded: c4 14 mov $14,a +0def: f5 60 02 mov a,$0260+x +0df2: eb 14 mov y,$14 +0df4: 3f be 06 call $06be +0df7: f5 61 02 mov a,$0261+x +0dfa: ab 14 inc $14 +0dfc: eb 14 mov y,$14 +0dfe: 3f be 06 call $06be +0e01: 6f ret + +; vcmd fc +0e02: 3f a6 08 call $08a6 +0e05: 3f 9c 08 call $089c +0e08: dd mov a,y +0e09: 1c asl a +0e0a: 1c asl a +0e0b: fd mov y,a +0e0c: f6 98 03 mov a,$0398+y +0e0f: d5 60 02 mov $0260+x,a +0e12: f6 99 03 mov a,$0399+y +0e15: d5 61 02 mov $0261+x,a +0e18: 6d push y +0e19: 3f e8 0d call $0de8 +0e1c: ee pop y +0e1d: f6 9a 03 mov a,$039a+y +0e20: 3f 07 09 call $0907 +0e23: f6 9b 03 mov a,$039b+y +0e26: d5 71 02 mov $0271+x,a +0e29: 6f ret + +0b66: f4 90 mov a,$90+x +0b68: f0 24 beq $0b8e +0b6a: 09 47 5e or ($5e),($47) +0b6d: 9b 90 dec $90+x +0b6f: d0 0a bne $0b7b +0b71: e8 00 mov a,#$00 +0b73: d5 00 03 mov $0300+x,a +0b76: f5 20 03 mov a,$0320+x +0b79: 2f 10 bra $0b8b +0b7b: 60 clrc +0b7c: f5 00 03 mov a,$0300+x +0b7f: 95 10 03 adc a,$0310+x +0b82: d5 00 03 mov $0300+x,a +0b85: f5 01 03 mov a,$0301+x +0b88: 95 11 03 adc a,$0311+x +0b8b: d5 01 03 mov $0301+x,a +0b8e: fb c1 mov y,$c1+x +0b90: f0 23 beq $0bb5 +0b92: f5 e0 02 mov a,$02e0+x +0b95: de c0 1b cbne $c0+x,$0bb3 +0b98: 09 47 5e or ($5e),($47) +0b9b: f5 d0 02 mov a,$02d0+x +0b9e: 10 07 bpl $0ba7 +0ba0: fc inc y +0ba1: d0 04 bne $0ba7 +0ba3: e8 80 mov a,#$80 +0ba5: 2f 04 bra $0bab +0ba7: 60 clrc +0ba8: 95 d1 02 adc a,$02d1+x +0bab: d5 d0 02 mov $02d0+x,a +0bae: 3f c0 0d call $0dc0 +0bb1: 2f 07 bra $0bba +0bb3: bb c0 inc $c0+x +0bb5: e8 ff mov a,#$ff +0bb7: 3f cb 0d call $0dcb +0bba: f4 91 mov a,$91+x +0bbc: f0 24 beq $0be2 +0bbe: 09 47 5e or ($5e),($47) +0bc1: 9b 91 dec $91+x +0bc3: d0 0a bne $0bcf +0bc5: e8 00 mov a,#$00 +0bc7: d5 30 03 mov $0330+x,a +0bca: f5 50 03 mov a,$0350+x +0bcd: 2f 10 bra $0bdf +0bcf: 60 clrc +0bd0: f5 30 03 mov a,$0330+x +0bd3: 95 40 03 adc a,$0340+x +0bd6: d5 30 03 mov $0330+x,a +0bd9: f5 31 03 mov a,$0331+x +0bdc: 95 41 03 adc a,$0341+x +0bdf: d5 31 03 mov $0331+x,a +0be2: e4 47 mov a,$47 +0be4: 24 5e and a,$5e +0be6: f0 63 beq $0c4b +0be8: f5 31 03 mov a,$0331+x +0beb: fd mov y,a +0bec: f5 30 03 mov a,$0330+x +0bef: da 10 movw $10,ya +0bf1: 7d mov a,x +0bf2: 9f xcn a +0bf3: 5c lsr a +0bf4: c4 12 mov $12,a +0bf6: eb 11 mov y,$11 +0bf8: e5 58 02 mov a,$0258 +0bfb: f0 11 beq $0c0e +0bfd: e8 51 mov a,#$51 +0bff: 80 setc +0c00: a8 51 sbc a,#$51 +0c02: eb 10 mov y,$10 +0c04: cf mul ya +0c05: dd mov a,y +0c06: eb 11 mov y,$11 +0c08: 60 clrc +0c09: 88 51 adc a,#$51 +0c0b: fd mov y,a +0c0c: 2f 12 bra $0c20 +0c0e: f6 2b 0e mov a,$0e2b+y +0c11: 80 setc +0c12: b6 2a 0e sbc a,$0e2a+y +0c15: eb 10 mov y,$10 +0c17: cf mul ya +0c18: dd mov a,y +0c19: eb 11 mov y,$11 +0c1b: 60 clrc +0c1c: 96 2a 0e adc a,$0e2a+y +0c1f: fd mov y,a +0c20: f5 21 03 mov a,$0321+x +0c23: cf mul ya +0c24: f5 71 02 mov a,$0271+x +0c27: cf mul ya +0c28: e4 6d mov a,$6d +0c2a: cf mul ya +0c2b: f5 51 03 mov a,$0351+x +0c2e: 1c asl a +0c2f: 13 12 01 bbc0 $12,$0c33 +0c32: 1c asl a +0c33: dd mov a,y +0c34: 90 03 bcc $0c39 +0c36: 48 ff eor a,#$ff +0c38: bc inc a +0c39: eb 12 mov y,$12 +0c3b: 3f be 06 call $06be +0c3e: 8d 14 mov y,#$14 +0c40: e8 00 mov a,#$00 +0c42: 9a 10 subw ya,$10 +0c44: da 10 movw $10,ya +0c46: ab 12 inc $12 +0c48: 33 12 ab bbc1 $12,$0bf6 +0c4b: 6f ret + +0c4c: f4 71 mov a,$71+x +0c4e: f0 61 beq $0cb1 +0c50: 9b 71 dec $71+x +0c52: f0 05 beq $0c59 +0c54: e8 02 mov a,#$02 +0c56: de 70 58 cbne $70+x,$0cb1 +0c59: f4 80 mov a,$80+x +0c5b: c4 17 mov $17,a +0c5d: f4 30 mov a,$30+x +0c5f: fb 31 mov y,$31+x +0c61: da 14 movw $14,ya +0c63: 8d 00 mov y,#$00 +0c65: f7 14 mov a,($14)+y +0c67: f0 1e beq $0c87 +0c69: 30 07 bmi $0c72 +0c6b: fc inc y +0c6c: 30 40 bmi $0cae +0c6e: f7 14 mov a,($14)+y +0c70: 10 f9 bpl $0c6b +0c72: 68 c8 cmp a,#$c8 +0c74: f0 3b beq $0cb1 +0c76: 68 ef cmp a,#$ef +0c78: f0 29 beq $0ca3 +0c7a: 68 e0 cmp a,#$e0 +0c7c: 90 30 bcc $0cae +0c7e: 6d push y +0c7f: fd mov y,a +0c80: ae pop a +0c81: 96 67 0a adc a,$0a67+y +0c84: fd mov y,a +0c85: 2f de bra $0c65 +0c87: e4 17 mov a,$17 +0c89: f0 23 beq $0cae +0c8b: 8b 17 dec $17 +0c8d: d0 0a bne $0c99 +0c8f: f5 31 02 mov a,$0231+x +0c92: 2d push a +0c93: f5 30 02 mov a,$0230+x +0c96: ee pop y +0c97: 2f c8 bra $0c61 +0c99: f5 41 02 mov a,$0241+x +0c9c: 2d push a +0c9d: f5 40 02 mov a,$0240+x +0ca0: ee pop y +0ca1: 2f be bra $0c61 +0ca3: fc inc y +0ca4: f7 14 mov a,($14)+y +0ca6: 2d push a +0ca7: fc inc y +0ca8: f7 14 mov a,($14)+y +0caa: fd mov y,a +0cab: ae pop a +0cac: 2f b3 bra $0c61 +0cae: 09 47 6c or ($6c),($47) +0cb1: f2 13 clr7 $13 +0cb3: f4 a0 mov a,$a0+x +0cb5: f0 2c beq $0ce3 +0cb7: f4 a1 mov a,$a1+x +0cb9: f0 04 beq $0cbf +0cbb: 9b a1 dec $a1+x +0cbd: 2f 24 bra $0ce3 +0cbf: e2 13 set7 $13 +0cc1: 9b a0 dec $a0+x +0cc3: d0 0b bne $0cd0 +0cc5: f5 81 03 mov a,$0381+x +0cc8: d5 60 03 mov $0360+x,a +0ccb: f5 80 03 mov a,$0380+x +0cce: 2f 10 bra $0ce0 +0cd0: 60 clrc +0cd1: f5 60 03 mov a,$0360+x +0cd4: 95 70 03 adc a,$0370+x +0cd7: d5 60 03 mov $0360+x,a +0cda: f5 61 03 mov a,$0361+x +0cdd: 95 71 03 adc a,$0371+x +0ce0: d5 61 03 mov $0361+x,a +0ce3: 3f e2 0a call $0ae2 +0ce6: f4 b1 mov a,$b1+x +0ce8: f0 4c beq $0d36 +0cea: f5 b0 02 mov a,$02b0+x +0ced: de b0 44 cbne $b0+x,$0d34 +0cf0: f5 00 01 mov a,$0100+x +0cf3: 75 b1 02 cmp a,$02b1+x +0cf6: d0 05 bne $0cfd +0cf8: f5 c1 02 mov a,$02c1+x +0cfb: 2f 0d bra $0d0a +0cfd: 40 setp +0cfe: bb 00 inc $00+x +0d00: 20 clrp +0d01: fd mov y,a +0d02: f0 02 beq $0d06 +0d04: f4 b1 mov a,$b1+x +0d06: 60 clrc +0d07: 95 c0 02 adc a,$02c0+x +0d0a: d4 b1 mov $b1+x,a +0d0c: f5 a0 02 mov a,$02a0+x +0d0f: 60 clrc +0d10: 95 a1 02 adc a,$02a1+x +0d13: d5 a0 02 mov $02a0+x,a +0d16: c4 12 mov $12,a +0d18: 1c asl a +0d19: 1c asl a +0d1a: 90 02 bcc $0d1e +0d1c: 48 ff eor a,#$ff +0d1e: fd mov y,a +0d1f: f4 b1 mov a,$b1+x +0d21: 68 f1 cmp a,#$f1 +0d23: 90 05 bcc $0d2a +0d25: 28 0f and a,#$0f +0d27: cf mul ya +0d28: 2f 04 bra $0d2e +0d2a: cf mul ya +0d2b: dd mov a,y +0d2c: 8d 00 mov y,#$00 +0d2e: 3f ab 0d call $0dab +0d31: 5f 3b 06 jmp $063b + +0d34: bb b0 inc $b0+x +0d36: e3 13 f8 bbs7 $13,$0d31 +0d39: 6f ret + +0d3a: f2 13 clr7 $13 +0d3c: f4 c1 mov a,$c1+x +0d3e: f0 09 beq $0d49 +0d40: f5 e0 02 mov a,$02e0+x +0d43: de c0 03 cbne $c0+x,$0d49 +0d46: 3f b3 0d call $0db3 +0d49: f5 31 03 mov a,$0331+x +0d4c: fd mov y,a +0d4d: f5 30 03 mov a,$0330+x +0d50: da 10 movw $10,ya +0d52: f4 91 mov a,$91+x +0d54: f0 0a beq $0d60 +0d56: f5 41 03 mov a,$0341+x +0d59: fd mov y,a +0d5a: f5 40 03 mov a,$0340+x +0d5d: 3f 95 0d call $0d95 +0d60: f3 13 03 bbc7 $13,$0d66 +0d63: 3f f1 0b call $0bf1 +0d66: f2 13 clr7 $13 +0d68: 3f e2 0a call $0ae2 +0d6b: f4 a0 mov a,$a0+x +0d6d: f0 0e beq $0d7d +0d6f: f4 a1 mov a,$a1+x +0d71: d0 0a bne $0d7d +0d73: f5 71 03 mov a,$0371+x +0d76: fd mov y,a +0d77: f5 70 03 mov a,$0370+x +0d7a: 3f 95 0d call $0d95 +0d7d: f4 b1 mov a,$b1+x +0d7f: f0 b5 beq $0d36 +0d81: f5 b0 02 mov a,$02b0+x +0d84: de b0 af cbne $b0+x,$0d36 +0d87: eb 51 mov y,$51 +0d89: f5 a1 02 mov a,$02a1+x +0d8c: cf mul ya +0d8d: dd mov a,y +0d8e: 60 clrc +0d8f: 95 a0 02 adc a,$02a0+x +0d92: 5f 16 0d jmp $0d16 + +0d95: e2 13 set7 $13 +0d97: cb 12 mov $12,y +0d99: 3f ff 0a call $0aff +0d9c: 6d push y +0d9d: eb 51 mov y,$51 +0d9f: cf mul ya +0da0: cb 14 mov $14,y +0da2: 8f 00 15 mov $15,#$00 +0da5: eb 51 mov y,$51 +0da7: ae pop a +0da8: cf mul ya +0da9: 7a 14 addw ya,$14 +0dab: 3f ff 0a call $0aff +0dae: 7a 10 addw ya,$10 +0db0: da 10 movw $10,ya +0db2: 6f ret + +0db3: e2 13 set7 $13 +0db5: eb 51 mov y,$51 +0db7: f5 d1 02 mov a,$02d1+x +0dba: cf mul ya +0dbb: dd mov a,y +0dbc: 60 clrc +0dbd: 95 d0 02 adc a,$02d0+x +0dc0: 1c asl a +0dc1: 90 02 bcc $0dc5 +0dc3: 48 ff eor a,#$ff +0dc5: fb c1 mov y,$c1+x +0dc7: cf mul ya +0dc8: dd mov a,y +0dc9: 48 ff eor a,#$ff +0dcb: eb 59 mov y,$59 +0dcd: cf mul ya +0dce: f5 10 02 mov a,$0210+x +0dd1: cf mul ya +0dd2: f5 01 03 mov a,$0301+x +0dd5: cf mul ya +0dd6: dd mov a,y +0dd7: cf mul ya +0dd8: dd mov a,y +0dd9: d5 21 03 mov $0321+x,a +0ddc: 6f ret + +; vcmd fb +0ddd: dd mov a,y +0dde: d5 60 02 mov $0260+x,a +0de1: 3f 9c 08 call $089c +0de4: dd mov a,y +0de5: d5 61 02 mov $0261+x,a +0de8: 7d mov a,x +0de9: 9f xcn a +0dea: 5c lsr a +0deb: 08 05 or a,#$05 +0ded: c4 14 mov $14,a +0def: f5 60 02 mov a,$0260+x +0df2: eb 14 mov y,$14 +0df4: 3f be 06 call $06be +0df7: f5 61 02 mov a,$0261+x +0dfa: ab 14 inc $14 +0dfc: eb 14 mov y,$14 +0dfe: 3f be 06 call $06be +0e01: 6f ret + +; vcmd fc +0e02: 3f a6 08 call $08a6 +0e05: 3f 9c 08 call $089c +0e08: dd mov a,y +0e09: 1c asl a +0e0a: 1c asl a +0e0b: fd mov y,a +0e0c: f6 98 03 mov a,$0398+y +0e0f: d5 60 02 mov $0260+x,a +0e12: f6 99 03 mov a,$0399+y +0e15: d5 61 02 mov $0261+x,a +0e18: 6d push y +0e19: 3f e8 0d call $0de8 +0e1c: ee pop y +0e1d: f6 9a 03 mov a,$039a+y +0e20: 3f 07 09 call $0907 +0e23: f6 9b 03 mov a,$039b+y +0e26: d5 71 02 mov $0271+x,a +0e29: 6f ret + +; pan table +0e2a: db $00,$01,$03,$07,$0d,$15,$1e,$29 +0e32: db $34,$42,$51,$5e,$67,$6e,$73,$77 +0e3a: db $7a,$7c,$7d,$7e,$7f + +; echo FIR presets +0e3f: db $7f,$00,$00,$00,$00,$00,$00,$00 ; 00 +0e4f: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c ; 01 +0e5f: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 ; 02 +0e6f: db $34,$33,$00,$d9,$e5,$01,$fc,$eb ; 03 + +; EVOL(L),EVOL(R),EFB,EON,FLG,KOL,KOF,NON,PMON,KOF +; dsp shadows addrs for dsp regs +0e5f: db $2c,$3c,$0d,$4d,$6c,$4c,$5c,$3d,$2d,$5c +0e69: db $61,$63,$4e,$4a,$48,$45,$0e,$49,$4b,$46 + +; pitch table +0e73: dw $085f +0e75: dw $08de +0e77: dw $0965 +0e79: dw $09f4 +0e7b: dw $0a8c +0e7d: dw $0b2c +0e7f: dw $0bd6 +0e81: dw $0c8b +0e83: dw $0d4a +0e85: dw $0e14 +0e87: dw $0eea +0e89: dw $0fcd +0e8b: dw $10be + +0e8d: dw $32,$65,$7f,$98,$b2,$cb,$e5,$ff,$0a,$19,$28,$3c,$50,$64,$7d,$96,$aa,$b9,$c8,$d4,$e1,$eb,$f5,$ff + +0ea5: e8 aa mov a,#$aa +0ea7: c5 f4 00 mov $00f4,a +0eaa: e8 bb mov a,#$bb +0eac: c5 f5 00 mov $00f5,a +0eaf: e5 f4 00 mov a,$00f4 +0eb2: 65 f4 00 cmp a,$00f4 +0eb5: d0 f8 bne $0eaf +0eb7: 68 cc cmp a,#$cc +0eb9: d0 f4 bne $0eaf +0ebb: 2f 42 bra $0eff +0ebd: ec f4 00 mov y,$00f4 +0ec0: 5e f4 00 cmp y,$00f4 +0ec3: d0 f8 bne $0ebd +0ec5: ad 00 cmp y,#$00 +0ec7: d0 f4 bne $0ebd +0ec9: 6d push y +0eca: ec f4 00 mov y,$00f4 +0ecd: 5e f4 00 cmp y,$00f4 +0ed0: d0 f8 bne $0eca +0ed2: cb e7 mov $e7,y +0ed4: ee pop y +0ed5: 7e e7 cmp y,$e7 +0ed7: d0 14 bne $0eed +0ed9: e5 f5 00 mov a,$00f5 +0edc: 65 f5 00 cmp a,$00f5 +0edf: d0 f8 bne $0ed9 +0ee1: cc f4 00 mov $00f4,y +0ee4: d7 14 mov ($14)+y,a +0ee6: fc inc y +0ee7: d0 e0 bne $0ec9 +0ee9: ab 15 inc $15 +0eeb: 2f dc bra $0ec9 +0eed: 10 da bpl $0ec9 +0eef: 6d push y +0ef0: ec f4 00 mov y,$00f4 +0ef3: 5e f4 00 cmp y,$00f4 +0ef6: d0 f8 bne $0ef0 +0ef8: cb e7 mov $e7,y +0efa: ee pop y +0efb: 7e e7 cmp y,$e7 +0efd: 10 ca bpl $0ec9 +0eff: e5 f6 00 mov a,$00f6 +0f02: 65 f6 00 cmp a,$00f6 +0f05: d0 f8 bne $0eff +0f07: ec f7 00 mov y,$00f7 +0f0a: 5e f7 00 cmp y,$00f7 +0f0d: d0 f8 bne $0f07 +0f0f: da 14 movw $14,ya +0f11: ec f4 00 mov y,$00f4 +0f14: 5e f4 00 cmp y,$00f4 +0f17: d0 f8 bne $0f11 +0f19: e5 f5 00 mov a,$00f5 +0f1c: 65 f5 00 cmp a,$00f5 +0f1f: d0 f8 bne $0f19 +0f21: cc f4 00 mov $00f4,y +0f24: 68 00 cmp a,#$00 +0f26: d0 95 bne $0ebd +0f28: cd 31 mov x,#$31 +0f2a: c9 f1 00 mov $00f1,x +0f2d: 6f ret +0f2e: 3f 4c 0f call $0f4c +0f31: e5 5a 02 mov a,$025a +0f34: f0 15 beq $0f4b +0f36: eb 09 mov y,$09 +0f38: e4 01 mov a,$01 +0f3a: c4 09 mov $09,a +0f3c: c4 05 mov $05,a +0f3e: c4 e1 mov $e1,a +0f40: 7e 01 cmp y,$01 +0f42: d0 67 bne $0fab +0f44: e5 5a 02 mov a,$025a +0f47: 68 02 cmp a,#$02 +0f49: f0 60 beq $0fab +0f4b: 6f ret +0f4c: eb 0b mov y,$0b +0f4e: e4 03 mov a,$03 +0f50: c4 0b mov $0b,a +0f52: 7e 03 cmp y,$03 +0f54: f0 04 beq $0f5a +0f56: e8 02 mov a,#$02 +0f58: 2f 02 bra $0f5c +0f5a: e8 01 mov a,#$01 +0f5c: c5 5a 02 mov $025a,a +0f5f: e5 53 02 mov a,$0253 +0f62: f0 0e beq $0f72 +0f64: 9c dec a +0f65: c4 e2 mov $e2,a +0f67: fd mov y,a +0f68: f6 fc 11 mov a,$11fc+y +0f6b: c4 47 mov $47,a +0f6d: f6 ff 11 mov a,$11ff+y +0f70: 5d mov x,a +0f71: 6f ret +0f72: e8 00 mov a,#$00 +0f74: c5 5a 02 mov $025a,a +0f77: 6f ret +0f78: 3f e9 10 call $10e9 +0f7b: dd mov a,y +0f7c: d5 21 01 mov $0121+x,a +0f7f: e4 e2 mov a,$e2 +0f81: d5 11 01 mov $0111+x,a +0f84: 3f 90 0f call $0f90 +0f87: 6f ret +0f88: e8 00 mov a,#$00 +0f8a: d5 10 01 mov $0110+x,a +0f8d: d5 21 01 mov $0121+x,a +0f90: e8 00 mov a,#$00 +0f92: d5 40 01 mov $0140+x,a +0f95: d5 41 01 mov $0141+x,a +0f98: d5 70 02 mov $0270+x,a +0f9b: e8 ff mov a,#$ff +0f9d: d5 50 01 mov $0150+x,a +0fa0: e4 47 mov a,$47 +0fa2: 4e e0 00 tclr1 $00e0 +0fa5: e4 47 mov a,$47 +0fa7: 4e e4 00 tclr1 $00e4 +0faa: 6f ret +0fab: e4 e1 mov a,$e1 +0fad: f0 5f beq $100e +0faf: f5 11 01 mov a,$0111+x +0fb2: fd mov y,a +0fb3: 8f fe 2c mov $2c,#$fe +0fb6: 8f e9 2d mov $2d,#$e9 +0fb9: f6 02 12 mov a,$1202+y +0fbc: c4 2f mov $2f,a +0fbe: 60 clrc +0fbf: 84 2d adc a,$2d +0fc1: c4 2d mov $2d,a +0fc3: e4 e1 mov a,$e1 +0fc5: 1c asl a +0fc6: fd mov y,a +0fc7: f7 2c mov a,($2c)+y +0fc9: c4 2e mov $2e,a +0fcb: fc inc y +0fcc: f7 2c mov a,($2c)+y +0fce: 60 clrc +0fcf: 84 2f adc a,$2f +0fd1: fd mov y,a +0fd2: e4 2e mov a,$2e +0fd4: da 2c movw $2c,ya +0fd6: f5 10 01 mov a,$0110+x +0fd9: c4 2f mov $2f,a +0fdb: 8d 00 mov y,#$00 +0fdd: f7 2c mov a,($2c)+y +0fdf: 60 clrc +0fe0: 64 2f cmp a,$2f +0fe2: f0 03 beq $0fe7 +0fe4: b0 01 bcs $0fe7 +0fe6: 6f ret +0fe7: d5 10 01 mov $0110+x,a +0fea: ba 2c movw ya,$2c +0fec: bc inc a +0fed: d0 01 bne $0ff0 +0fef: fc inc y +0ff0: d4 d0 mov $d0+x,a +0ff2: db d1 mov $d1+x,y +0ff4: 3f 78 0f call $0f78 +0ff7: e8 01 mov a,#$01 +0ff9: d5 20 01 mov $0120+x,a +0ffc: e4 47 mov a,$47 +0ffe: 04 1a or a,$1a +1000: c4 1a mov $1a,a +1002: 3f 56 11 call $1156 +1005: 6f ret +1006: f5 20 01 mov a,$0120+x +1009: 9c dec a +100a: d5 20 01 mov $0120+x,a +100d: 6f ret +100e: 3f 56 11 call $1156 +1011: e8 f2 mov a,#$f2 +1013: d5 20 01 mov $0120+x,a +1016: 6f ret +1017: 3f 61 11 call $1161 +101a: 68 00 cmp a,#$00 +101c: d0 1f bne $103d +101e: e8 00 mov a,#$00 +1020: c4 09 mov $09,a +1022: c4 01 mov $01,a +1024: c4 05 mov $05,a +1026: d4 d1 mov $d1+x,a +1028: d5 10 01 mov $0110+x,a +102b: e4 47 mov a,$47 +102d: 4e 1a 00 tclr1 $001a +1030: 3f ae 08 call $08ae +1033: f5 60 02 mov a,$0260+x +1036: 28 80 and a,#$80 +1038: f0 03 beq $103d +103a: 3f e8 0d call $0de8 +103d: 6f ret +103e: e4 47 mov a,$47 +1040: 4e 1a 00 tclr1 $001a +1043: 6f ret +1044: f4 d1 mov a,$d1+x +1046: f0 f6 beq $103e +1048: f5 20 01 mov a,$0120+x +104b: f0 06 beq $1053 +104d: 68 f0 cmp a,#$f0 +104f: f0 c6 beq $1017 +1051: 2f b3 bra $1006 +1053: f5 21 01 mov a,$0121+x +1056: f0 2a beq $1082 +1058: 30 28 bmi $1082 +105a: f5 70 02 mov a,$0270+x +105d: f0 0c beq $106b +105f: 9c dec a +1060: d5 70 02 mov $0270+x,a +1063: f0 01 beq $1066 +1065: 6f ret +1066: 3f 56 11 call $1156 +1069: 2f 75 bra $10e0 +106b: 3f 61 11 call $1161 +106e: 68 00 cmp a,#$00 +1070: d0 5b bne $10cd +1072: 3f e9 10 call $10e9 +1075: dd mov a,y +1076: ad ff cmp y,#$ff +1078: f0 05 beq $107f +107a: d5 70 02 mov $0270+x,a +107d: 2f 11 bra $1090 +107f: 5f 0e 10 jmp $100e + +1082: e5 e0 00 mov a,$00e0 +1085: 24 47 and a,$47 +1087: d0 46 bne $10cf +1089: 3f 61 11 call $1161 +108c: 68 00 cmp a,#$00 +108e: d0 3d bne $10cd +1090: 3f e9 10 call $10e9 +1093: dd mov a,y +1094: ad ff cmp y,#$ff +1096: f0 e7 beq $107f +1098: c4 2c mov $2c,a +109a: 30 0c bmi $10a8 +109c: f5 11 01 mov a,$0111+x +109f: fd mov y,a +10a0: f6 05 12 mov a,$1205+y +10a3: 60 clrc +10a4: 84 2c adc a,$2c +10a6: 2f 02 bra $10aa +10a8: 28 7f and a,#$7f +10aa: 3f 6d 11 call $116d +10ad: 3f e9 10 call $10e9 +10b0: 3f f3 10 call $10f3 +10b3: 3f e9 10 call $10e9 +10b6: e4 e4 mov a,$e4 +10b8: 24 47 and a,$47 +10ba: d0 04 bne $10c0 +10bc: dd mov a,y +10bd: d5 40 01 mov $0140+x,a +10c0: 3f e9 10 call $10e9 +10c3: dd mov a,y +10c4: d5 41 01 mov $0141+x,a +10c7: 09 47 e0 or ($e0),($47) +10ca: 09 47 45 or ($45),($47) +10cd: 2f 16 bra $10e5 +10cf: 8d 7c mov y,#$7c +10d1: 3f 4f 11 call $114f +10d4: 24 47 and a,$47 +10d6: f0 0d beq $10e5 +10d8: f5 21 01 mov a,$0121+x +10db: 30 08 bmi $10e5 +10dd: 3f 56 11 call $1156 +10e0: e4 47 mov a,$47 +10e2: 4e e0 00 tclr1 $00e0 +10e5: 3f b4 11 call $11b4 +10e8: 6f ret +10e9: e7 d0 mov a,($d0+x) +10eb: bb d0 inc $d0+x +10ed: d0 02 bne $10f1 +10ef: bb d1 inc $d1+x +10f1: fd mov y,a +10f2: 6f ret +10f3: 4d push x +10f4: dd mov a,y +10f5: 1c asl a +10f6: 8d 00 mov y,#$00 +10f8: cd 18 mov x,#$18 +10fa: 9e div ya,x +10fb: 5d mov x,a +10fc: f6 74 0e mov a,$0e74+y +10ff: c4 2d mov $2d,a +1101: f6 73 0e mov a,$0e73+y +1104: c4 2c mov $2c,a +1106: ba 2c movw ya,$2c +1108: 2f 04 bra $110e +110a: 4b 2d lsr $2d +110c: 7c ror a +110d: 3d inc x +110e: c8 06 cmp x,#$06 +1110: d0 f8 bne $110a +1112: c4 2c mov $2c,a +1114: ce pop x +1115: f5 30 01 mov a,$0130+x +1118: eb 2d mov y,$2d +111a: cf mul ya +111b: da 2e movw $2e,ya +111d: f5 30 01 mov a,$0130+x +1120: eb 2c mov y,$2c +1122: cf mul ya +1123: 6d push y +1124: f5 31 01 mov a,$0131+x +1127: eb 2c mov y,$2c +1129: cf mul ya +112a: 7a 2e addw ya,$2e +112c: da 2e movw $2e,ya +112e: f5 31 01 mov a,$0131+x +1131: eb 2d mov y,$2d +1133: cf mul ya +1134: fd mov y,a +1135: ae pop a +1136: 7a 2e addw ya,$2e +1138: da 2e movw $2e,ya +113a: 7d mov a,x +113b: 9f xcn a +113c: 5c lsr a +113d: 08 02 or a,#$02 +113f: fd mov y,a +1140: e4 2e mov a,$2e +1142: 3f 48 11 call $1148 +1145: fc inc y +1146: e4 2f mov a,$2f +1148: cc f2 00 mov $00f2,y +114b: c5 f3 00 mov $00f3,a +114e: 6f ret +114f: cc f2 00 mov $00f2,y +1152: e5 f3 00 mov a,$00f3 +1155: 6f ret +1156: 8d 5c mov y,#$5c +1158: e4 47 mov a,$47 +115a: cc f2 00 mov $00f2,y +115d: c5 f3 00 mov $00f3,a +1160: 6f ret +1161: 7d mov a,x +1162: 9f xcn a +1163: 5c lsr a +1164: 08 09 or a,#$09 +1166: c5 f2 00 mov $00f2,a +1169: e5 f3 00 mov a,$00f3 +116c: 6f ret +116d: 8d 06 mov y,#$06 +116f: cf mul ya +1170: da 2c movw $2c,ya +1172: 60 clrc +1173: 98 08 2c adc $2c,#$08 +1176: 98 12 2d adc $2d,#$12 +1179: 4d push x +117a: 7d mov a,x +117b: 9f xcn a +117c: 5c lsr a +117d: 08 04 or a,#$04 +117f: 5d mov x,a +1180: 8d 00 mov y,#$00 +1182: f7 2c mov a,($2c)+y +1184: 10 0e bpl $1194 +1186: 28 1f and a,#$1f +1188: 38 20 48 and $48,#$20 +118b: 0e 48 00 tset1 $0048 +118e: 09 47 49 or ($49),($47) +1191: dd mov a,y +1192: 2f 07 bra $119b +1194: e4 47 mov a,$47 +1196: 4e 49 00 tclr1 $0049 +1199: f7 2c mov a,($2c)+y +119b: c9 f2 00 mov $00f2,x +119e: c5 f3 00 mov $00f3,a +11a1: 3d inc x +11a2: fc inc y +11a3: ad 04 cmp y,#$04 +11a5: d0 f2 bne $1199 +11a7: ce pop x +11a8: f7 2c mov a,($2c)+y +11aa: d5 31 01 mov $0131+x,a +11ad: fc inc y +11ae: f7 2c mov a,($2c)+y +11b0: d5 30 01 mov $0130+x,a +11b3: 6f ret +11b4: 7d mov a,x +11b5: 9f xcn a +11b6: 5c lsr a +11b7: c4 2c mov $2c,a +11b9: e5 58 02 mov a,$0258 +11bc: f0 04 beq $11c2 +11be: e8 0a mov a,#$0a +11c0: 2f 03 bra $11c5 +11c2: f5 40 01 mov a,$0140+x +11c5: 3f ed 11 call $11ed +11c8: dd mov a,y +11c9: eb 2c mov y,$2c +11cb: 3f 48 11 call $1148 +11ce: e5 58 02 mov a,$0258 +11d1: f0 04 beq $11d7 +11d3: e8 0a mov a,#$0a +11d5: 2f 03 bra $11da +11d7: f5 40 01 mov a,$0140+x +11da: c4 2d mov $2d,a +11dc: e8 14 mov a,#$14 +11de: 80 setc +11df: a4 2d sbc a,$2d +11e1: 3f ed 11 call $11ed +11e4: ab 2c inc $2c +11e6: dd mov a,y +11e7: eb 2c mov y,$2c +11e9: 3f 48 11 call $1148 +11ec: 6f ret +11ed: fd mov y,a +11ee: f6 2a 0e mov a,$0e2a+y +11f1: bc inc a +11f2: fd mov y,a +11f3: f5 41 01 mov a,$0141+x +11f6: cf mul ya +11f7: f5 50 01 mov a,$0150+x +11fa: cf mul ya + +11fb: 6f ret diff --git a/snes/NSPC/Hanari Exp/Super Valis IV ($0400).bin b/snes/NSPC/Hanari Exp/Super Valis IV ($0400).bin new file mode 100644 index 00000000..dfef7ab2 Binary files /dev/null and b/snes/NSPC/Hanari Exp/Super Valis IV ($0400).bin differ diff --git a/snes/NSPC/Hanari Exp/Super Valis IV.s b/snes/NSPC/Hanari Exp/Super Valis IV.s new file mode 100644 index 00000000..78bbbf26 --- /dev/null +++ b/snes/NSPC/Hanari Exp/Super Valis IV.s @@ -0,0 +1,1443 @@ +0400: 2f 38 bra $043a + +0403: db "$Header: _KAN.ASv 1.1 91/12/02 18:10:24 hanari Exp $" + +043a: 20 clrp +043b: cd cf mov x,#$cf +043d: bd mov sp,x +043e: e8 00 mov a,#$00 +0440: 5d mov x,a +0441: af mov (x)+,a +0442: c8 e0 cmp x,#$e0 +0444: 90 fb bcc $0441 +0446: e8 00 mov a,#$00 +0448: 8d 01 mov y,#$01 +044a: da 14 movw $14,ya +044c: e8 aa mov a,#$aa +044e: 8d 00 mov y,#$00 +0450: d7 14 mov ($14)+y,a +0452: fc inc y +0453: d0 fb bne $0450 +0455: ab 15 inc $15 +0457: eb 15 mov y,$15 +0459: ad 04 cmp y,#$04 +045b: d0 f1 bne $044e +045d: e8 00 mov a,#$00 +045f: fd mov y,a +0460: da 14 movw $14,ya +0462: e8 01 mov a,#$01 +0464: 3f 48 0d call $0d48 +0467: a2 48 set5 $48 +0469: 3f 3c 0d call $0d3c +046c: e8 28 mov a,#$28 +046e: 8d 5d mov y,#$5d +0470: 3f 96 0d call $0d96 +0473: e8 f0 mov a,#$f0 +0475: c4 f1 mov $f1,a +0477: e8 10 mov a,#$10 +0479: c4 fa mov $fa,a +047b: c4 53 mov $53,a +047d: e8 01 mov a,#$01 +047f: c4 f1 mov $f1,a +0481: 3f b6 04 call $04b6 +0484: ec fd 00 mov y,$00fd +0487: f0 fb beq $0484 +0489: 3f fa 04 call $04fa +048c: e4 53 mov a,$53 +048e: cf mul ya +048f: 60 clrc +0490: 84 51 adc a,$51 +0492: c4 51 mov $51,a +0494: 90 08 bcc $049e +0496: 3f 14 05 call $0514 +0499: 3f a0 09 call $09a0 +049c: 2f e3 bra $0481 +049e: e4 04 mov a,$04 +04a0: f0 12 beq $04b4 +04a2: cd 00 mov x,#$00 +04a4: 8f 01 47 mov $47,#$01 +04a7: f4 31 mov a,$31+x +04a9: f0 03 beq $04ae +04ab: 3f 84 06 call $0684 +04ae: 3d inc x +04af: 3d inc x +04b0: 0b 47 asl $47 +04b2: d0 f3 bne $04a7 +04b4: 2f cb bra $0481 +04b6: e4 61 mov a,$61 +04b8: 3f f1 04 call $04f1 +04bb: c4 d0 mov $d0,a +04bd: e4 63 mov a,$63 +04bf: 3f f1 04 call $04f1 +04c2: c4 d1 mov $d1,a +04c4: e4 d3 mov a,$d3 +04c6: 48 ff eor a,#$ff +04c8: 24 4a and a,$4a +04ca: c4 d2 mov $d2,a +04cc: 8d 0a mov y,#$0a +04ce: ad 05 cmp y,#$05 +04d0: f0 07 beq $04d9 +04d2: b0 08 bcs $04dc +04d4: 69 4d 4c cmp ($4c),($4d) +04d7: d0 11 bne $04ea +04d9: e3 4c 0e bbs7 $4c,$04ea +04dc: f6 4b 0e mov a,$0e4b+y +04df: c5 f2 00 mov $00f2,a +04e2: f6 55 0e mov a,$0e55+y +04e5: 5d mov x,a +04e6: e6 mov a,(x) +04e7: c5 f3 00 mov $00f3,a +04ea: fe e2 dbnz y,$04ce +04ec: cb 45 mov $45,y +04ee: cb 46 mov $46,y +04f0: 6f ret + +04f1: 80 setc +04f2: a5 a1 03 sbc a,$03a1 +04f5: b0 02 bcs $04f9 +04f7: e8 00 mov a,#$00 +04f9: 6f ret + +04fa: 6d push y +04fb: e8 20 mov a,#$20 +04fd: cf mul ya +04fe: 60 clrc +04ff: 84 43 adc a,$43 +0501: c4 43 mov $43,a +0503: 90 0d bcc $0512 +0505: 3f 13 0d call $0d13 +0508: 3f 7a 0e call $0e7a +050b: 69 4d 4c cmp ($4c),($4d) +050e: f0 02 beq $0512 +0510: ab 4c inc $4c +0512: ee pop y +0513: 6f ret + +0514: e4 04 mov a,$04 +0516: d0 01 bne $0519 +0518: 6f ret + +0519: e5 a2 03 mov a,$03a2 +051c: f0 03 beq $0521 +051e: 5f 37 0a jmp $0a37 + +0521: e4 0c mov a,$0c +0523: f0 16 beq $053b +0525: 8b 0c dec $0c +0527: 3f b5 05 call $05b5 +052a: d0 0a bne $0536 +052c: 8b 04 dec $04 +052e: d0 03 bne $0533 +0530: 5f 34 0a jmp $0a34 + +0533: 5f 1f 0a jmp $0a1f +0536: da 16 movw $16,ya +0538: 3f dc 05 call $05dc +053b: cd 00 mov x,#$00 +053d: d8 5e mov $5e,x +053f: 8f 01 47 mov $47,#$01 +0542: d8 44 mov $44,x +0544: f4 31 mov a,$31+x +0546: f0 64 beq $05ac +0548: 9b 70 dec $70+x +054a: d0 5a bne $05a6 +054c: 3f 84 0a call $0a84 +054f: d0 17 bne $0568 +; vcmd 00 - end repeat/return +0551: f4 80 mov a,$80+x +0553: f0 d2 beq $0527 +; repeat / return from subroutine +0555: 3f 36 0c call $0c36 +0558: 9b 80 dec $80+x +055a: d0 f0 bne $054c +055c: f5 30 02 mov a,$0230+x +055f: d4 30 mov $30+x,a +0561: f5 31 02 mov a,$0231+x +0564: d4 31 mov $31+x,a +0566: 2f e4 bra $054c +; vcmd branches +0568: 30 1e bmi $0588 ; vcmds 01-7f - note info: +056a: d5 00 02 mov $0200+x,a ; set cmd as duration +056d: 3f 84 0a call $0a84 ; read next byte +0570: 30 16 bmi $0588 ; if not note then +0572: c4 11 mov $11,a ; get the dur% from the following byte +0574: 4b 11 lsr $11 ; (not compatible with standard N-SPC!) +0576: 1c asl a +0577: 84 11 adc a,$11 +0579: d5 01 02 mov $0201+x,a +057c: 3f 84 0a call $0a84 +057f: 30 07 bmi $0588 +0581: 1c asl a +0582: d5 10 02 mov $0210+x,a ; set per-note vol +0585: 3f 84 0a call $0a84 ; read vcmd into A and Y +; vcmd branches 80-ff +0588: 68 e0 cmp a,#$e0 +058a: 90 05 bcc $0591 +058c: 3f 72 0a call $0a72 +058f: 2f bb bra $054c +; vcmds 80-df - note +0591: 3f 0b 06 call $060b +0594: f5 00 02 mov a,$0200+x +0597: d4 70 mov $70+x,a +0599: fd mov y,a +059a: f5 01 02 mov a,$0201+x +059d: cf mul ya +059e: dd mov a,y +059f: d0 01 bne $05a2 +05a1: bc inc a +05a2: d4 71 mov $71+x,a +05a4: 2f 03 bra $05a9 +05a6: 3f 27 08 call $0827 +05a9: 3f 9e 0c call $0c9e +05ac: 3d inc x +05ad: 3d inc x +05ae: 0b 47 asl $47 +05b0: d0 90 bne $0542 +05b2: 5f 11 07 jmp $0711 + +05b5: 3f ce 05 call $05ce +05b8: d0 21 bne $05db +05ba: fd mov y,a +05bb: f0 1e beq $05db +05bd: 8b 42 dec $42 +05bf: 10 02 bpl $05c3 +05c1: c4 42 mov $42,a +05c3: 3f ce 05 call $05ce +05c6: f8 42 mov x,$42 +05c8: f0 eb beq $05b5 +05ca: da 40 movw $40,ya +05cc: 2f e7 bra $05b5 +05ce: 8d 00 mov y,#$00 +05d0: f7 40 mov a,($40)+y +05d2: 3a 40 incw $40 +05d4: 2d push a +05d5: f7 40 mov a,($40)+y +05d7: 3a 40 incw $40 +05d9: fd mov y,a +05da: ae pop a +05db: 6f ret + +05dc: 8d 0f mov y,#$0f +05de: f7 16 mov a,($16)+y +05e0: d6 30 00 mov $0030+y,a +05e3: dc dec y +05e4: 10 f8 bpl $05de +05e6: cd 00 mov x,#$00 +05e8: 8f 01 47 mov $47,#$01 +05eb: f4 31 mov a,$31+x +05ed: f0 0a beq $05f9 +05ef: f5 11 02 mov a,$0211+x +05f2: d0 05 bne $05f9 +05f4: e8 00 mov a,#$00 +05f6: 3f ef 0a call $0aef +05f9: e8 00 mov a,#$00 +05fb: d4 80 mov $80+x,a +05fd: d4 90 mov $90+x,a +05ff: d4 91 mov $91+x,a +0601: bc inc a +0602: d4 70 mov $70+x,a +0604: 3d inc x +0605: 3d inc x +0606: 0b 47 asl $47 +0608: d0 e1 bne $05eb +060a: 6f ret + +; handle a note vcmd (80-df) +060b: ad ca cmp y,#$ca +060d: 90 05 bcc $0614 +; vcmds ca-df - percussion note +060f: 3f ef 0a call $0aef +0612: 8d a4 mov y,#$a4 +; vcmds 80-c7,c8,c9 - note/tie/rest +0614: ad c8 cmp y,#$c8 +0616: b0 60 bcs $0678 +0618: e4 1a mov a,$1a +061a: 24 47 and a,$47 +061c: d0 5a bne $0678 +; vcmds 80-c7 - note (note number in Y) +061e: dd mov a,y +061f: 28 7f and a,#$7f +0621: 60 clrc +0622: 84 50 adc a,$50 +0624: 60 clrc +0625: 95 f0 02 adc a,$02f0+x +0628: d5 61 03 mov $0361+x,a +062b: f5 81 03 mov a,$0381+x +062e: d5 60 03 mov $0360+x,a +0631: f5 b1 02 mov a,$02b1+x +0634: 5c lsr a +0635: e8 00 mov a,#$00 +0637: 7c ror a +0638: d5 a0 02 mov $02a0+x,a +063b: e8 00 mov a,#$00 +063d: d4 b0 mov $b0+x,a +063f: d5 00 01 mov $0100+x,a +0642: d5 d0 02 mov $02d0+x,a +0645: d4 c0 mov $c0+x,a +0647: 09 47 5e or ($5e),($47) +064a: 09 47 45 or ($45),($47) +064d: f5 80 02 mov a,$0280+x +0650: d4 a0 mov $a0+x,a +0652: f0 1e beq $0672 +0654: f5 81 02 mov a,$0281+x +0657: d4 a1 mov $a1+x,a +0659: f5 90 02 mov a,$0290+x +065c: d0 0a bne $0668 +065e: f5 61 03 mov a,$0361+x +0661: 80 setc +0662: b5 91 02 sbc a,$0291+x +0665: d5 61 03 mov $0361+x,a +0668: f5 91 02 mov a,$0291+x +066b: 60 clrc +066c: 95 61 03 adc a,$0361+x +066f: 3f be 0c call $0cbe +0672: 3f 79 06 call $0679 +0675: 5f 1a 09 jmp $091a + +0678: 6f ret + +0679: f5 61 03 mov a,$0361+x +067c: c4 11 mov $11,a +067e: f5 60 03 mov a,$0360+x +0681: c4 10 mov $10,a +0683: 6f ret + +0684: f2 13 clr7 $13 +0686: f4 c1 mov a,$c1+x +0688: f0 09 beq $0693 +068a: f5 e0 02 mov a,$02e0+x +068d: de c0 03 cbne $c0+x,$0693 +0690: 3f e7 06 call $06e7 +0693: f5 31 03 mov a,$0331+x +0696: fd mov y,a +0697: f5 30 03 mov a,$0330+x +069a: da 10 movw $10,ya +069c: f4 91 mov a,$91+x +069e: f0 0a beq $06aa +06a0: f5 41 03 mov a,$0341+x +06a3: fd mov y,a +06a4: f5 40 03 mov a,$0340+x +06a7: 3f d9 0c call $0cd9 +06aa: f3 13 03 bbc7 $13,$06b0 +06ad: 3f e9 07 call $07e9 +06b0: f2 13 clr7 $13 +06b2: 3f 79 06 call $0679 +06b5: f4 a0 mov a,$a0+x +06b7: f0 0e beq $06c7 +06b9: f4 a1 mov a,$a1+x +06bb: d0 0a bne $06c7 +06bd: f5 71 03 mov a,$0371+x +06c0: fd mov y,a +06c1: f5 70 03 mov a,$0370+x +06c4: 3f d9 0c call $0cd9 +06c7: f4 b1 mov a,$b1+x +06c9: f0 0b beq $06d6 +06cb: f5 b0 02 mov a,$02b0+x +06ce: 74 b0 cmp a,$b0+x +06d0: f0 04 beq $06d6 +06d2: e3 13 0f bbs7 $13,$06e4 +06d5: 6f ret + +06d6: eb 51 mov y,$51 +06d8: f5 a1 02 mov a,$02a1+x +06db: cf mul ya +06dc: dd mov a,y +06dd: 60 clrc +06de: 95 a0 02 adc a,$02a0+x +06e1: 5f fc 08 jmp $08fc + +06e4: 5f 1a 09 jmp $091a + +06e7: e2 13 set7 $13 +06e9: eb 51 mov y,$51 +06eb: f5 d1 02 mov a,$02d1+x +06ee: cf mul ya +06ef: dd mov a,y +06f0: 60 clrc +06f1: 95 d0 02 adc a,$02d0+x +06f4: 1c asl a +06f5: 90 02 bcc $06f9 +06f7: 48 ff eor a,#$ff +06f9: fb c1 mov y,$c1+x +06fb: cf mul ya +06fc: dd mov a,y +06fd: 48 ff eor a,#$ff +06ff: eb 59 mov y,$59 +0701: cf mul ya +0702: f5 10 02 mov a,$0210+x +0705: cf mul ya +0706: f5 01 03 mov a,$0301+x +0709: cf mul ya +070a: dd mov a,y +070b: cf mul ya +070c: dd mov a,y +070d: d5 21 03 mov $0321+x,a +0710: 6f ret + +0711: e4 54 mov a,$54 +0713: f0 0b beq $0720 +0715: ba 56 movw ya,$56 +0717: 7a 52 addw ya,$52 +0719: 6e 54 02 dbnz $54,$071e +071c: ba 54 movw ya,$54 +071e: da 52 movw $52,ya +0720: e4 68 mov a,$68 +0722: f0 15 beq $0739 +0724: ba 64 movw ya,$64 +0726: 7a 60 addw ya,$60 +0728: da 60 movw $60,ya +072a: ba 66 movw ya,$66 +072c: 7a 62 addw ya,$62 +072e: 6e 68 06 dbnz $68,$0737 +0731: ba 68 movw ya,$68 +0733: da 60 movw $60,ya +0735: eb 6a mov y,$6a +0737: da 62 movw $62,ya +0739: e4 5a mov a,$5a +073b: f0 0e beq $074b +073d: ba 5c movw ya,$5c +073f: 7a 58 addw ya,$58 +0741: 6e 5a 02 dbnz $5a,$0746 +0744: ba 5a movw ya,$5a +0746: da 58 movw $58,ya +0748: 8f ff 5e mov $5e,#$ff +074b: cd 00 mov x,#$00 +074d: 8f 01 47 mov $47,#$01 +0750: f4 31 mov a,$31+x +0752: f0 03 beq $0757 +0754: 3f 5e 07 call $075e +0757: 3d inc x +0758: 3d inc x +0759: 0b 47 asl $47 +075b: d0 f3 bne $0750 +075d: 6f ret + +075e: f4 90 mov a,$90+x +0760: f0 24 beq $0786 +0762: 09 47 5e or ($5e),($47) +0765: 9b 90 dec $90+x +0767: d0 0a bne $0773 +0769: e8 00 mov a,#$00 +076b: d5 00 03 mov $0300+x,a +076e: f5 20 03 mov a,$0320+x +0771: 2f 10 bra $0783 +0773: 60 clrc +0774: f5 00 03 mov a,$0300+x +0777: 95 10 03 adc a,$0310+x +077a: d5 00 03 mov $0300+x,a +077d: f5 01 03 mov a,$0301+x +0780: 95 11 03 adc a,$0311+x +0783: d5 01 03 mov $0301+x,a +0786: fb c1 mov y,$c1+x +0788: f0 23 beq $07ad +078a: f5 e0 02 mov a,$02e0+x +078d: de c0 1b cbne $c0+x,$07ab +0790: 09 47 5e or ($5e),($47) +0793: f5 d0 02 mov a,$02d0+x +0796: 10 07 bpl $079f +0798: fc inc y +0799: d0 04 bne $079f +079b: e8 80 mov a,#$80 +079d: 2f 04 bra $07a3 +079f: 60 clrc +07a0: 95 d1 02 adc a,$02d1+x +07a3: d5 d0 02 mov $02d0+x,a +07a6: 3f f4 06 call $06f4 +07a9: 2f 07 bra $07b2 +07ab: bb c0 inc $c0+x +07ad: e8 ff mov a,#$ff +07af: 3f ff 06 call $06ff +07b2: f4 91 mov a,$91+x +07b4: f0 24 beq $07da +07b6: 09 47 5e or ($5e),($47) +07b9: 9b 91 dec $91+x +07bb: d0 0a bne $07c7 +07bd: e8 00 mov a,#$00 +07bf: d5 30 03 mov $0330+x,a +07c2: f5 50 03 mov a,$0350+x +07c5: 2f 10 bra $07d7 +07c7: 60 clrc +07c8: f5 30 03 mov a,$0330+x +07cb: 95 40 03 adc a,$0340+x +07ce: d5 30 03 mov $0330+x,a +07d1: f5 31 03 mov a,$0331+x +07d4: 95 41 03 adc a,$0341+x +07d7: d5 31 03 mov $0331+x,a +07da: e4 47 mov a,$47 +07dc: 24 5e and a,$5e +07de: f0 46 beq $0826 +07e0: f5 31 03 mov a,$0331+x +07e3: fd mov y,a +07e4: f5 30 03 mov a,$0330+x +07e7: da 10 movw $10,ya +07e9: 7d mov a,x +07ea: 9f xcn a +07eb: 5c lsr a +07ec: c4 12 mov $12,a +07ee: eb 11 mov y,$11 +07f0: f6 18 0e mov a,$0e18+y +07f3: 80 setc +07f4: b6 17 0e sbc a,$0e17+y +07f7: eb 10 mov y,$10 +07f9: cf mul ya +07fa: dd mov a,y +07fb: eb 11 mov y,$11 +07fd: 60 clrc +07fe: 96 17 0e adc a,$0e17+y +0801: fd mov y,a +0802: f5 21 03 mov a,$0321+x +0805: cf mul ya +0806: f5 51 03 mov a,$0351+x +0809: 1c asl a +080a: 13 12 01 bbc0 $12,$080e +080d: 1c asl a +080e: dd mov a,y +080f: 90 03 bcc $0814 +0811: 48 ff eor a,#$ff +0813: bc inc a +0814: eb 12 mov y,$12 +0816: 3f 8e 0d call $0d8e +0819: 8d 14 mov y,#$14 +081b: e8 00 mov a,#$00 +081d: 9a 10 subw ya,$10 +081f: da 10 movw $10,ya +0821: ab 12 inc $12 +0823: 33 12 c8 bbc1 $12,$07ee +0826: 6f ret + +0827: f4 71 mov a,$71+x +0829: f0 65 beq $0890 +082b: 9b 71 dec $71+x +082d: f0 05 beq $0834 +082f: e8 02 mov a,#$02 +0831: de 70 5c cbne $70+x,$0890 +0834: f4 80 mov a,$80+x +0836: c4 17 mov $17,a +0838: f4 30 mov a,$30+x +083a: fb 31 mov y,$31+x +083c: da 14 movw $14,ya +083e: 8d 00 mov y,#$00 +0840: f7 14 mov a,($14)+y +0842: f0 1e beq $0862 +0844: 30 07 bmi $084d +0846: fc inc y +0847: 30 40 bmi $0889 +0849: f7 14 mov a,($14)+y +084b: 10 f9 bpl $0846 +084d: 68 c8 cmp a,#$c8 +084f: f0 3f beq $0890 +0851: 68 ef cmp a,#$ef +0853: f0 29 beq $087e +0855: 68 e0 cmp a,#$e0 +0857: 90 30 bcc $0889 +0859: 6d push y +085a: fd mov y,a +085b: ae pop a +085c: 96 ec 09 adc a,$09ec+y +085f: fd mov y,a +0860: 2f de bra $0840 +0862: e4 17 mov a,$17 +0864: f0 23 beq $0889 +0866: 8b 17 dec $17 +0868: d0 0a bne $0874 +086a: f5 31 02 mov a,$0231+x +086d: 2d push a +086e: f5 30 02 mov a,$0230+x +0871: ee pop y +0872: 2f c8 bra $083c +0874: f5 41 02 mov a,$0241+x +0877: 2d push a +0878: f5 40 02 mov a,$0240+x +087b: ee pop y +087c: 2f be bra $083c +087e: fc inc y +087f: f7 14 mov a,($14)+y +0881: 2d push a +0882: fc inc y +0883: f7 14 mov a,($14)+y +0885: fd mov y,a +0886: ae pop a +0887: 2f b3 bra $083c +0889: e4 47 mov a,$47 +088b: 8d 5c mov y,#$5c +088d: 3f 8e 0d call $0d8e +0890: f2 13 clr7 $13 +0892: f4 a0 mov a,$a0+x +0894: f0 2c beq $08c2 +0896: f4 a1 mov a,$a1+x +0898: f0 04 beq $089e +089a: 9b a1 dec $a1+x +089c: 2f 24 bra $08c2 +089e: e2 13 set7 $13 +08a0: 9b a0 dec $a0+x +08a2: d0 0b bne $08af +08a4: f5 81 03 mov a,$0381+x +08a7: d5 60 03 mov $0360+x,a +08aa: f5 80 03 mov a,$0380+x +08ad: 2f 10 bra $08bf +08af: 60 clrc +08b0: f5 60 03 mov a,$0360+x +08b3: 95 70 03 adc a,$0370+x +08b6: d5 60 03 mov $0360+x,a +08b9: f5 61 03 mov a,$0361+x +08bc: 95 71 03 adc a,$0371+x +08bf: d5 61 03 mov $0361+x,a +08c2: 3f 79 06 call $0679 +08c5: f4 b1 mov a,$b1+x +08c7: f0 09 beq $08d2 +08c9: f5 b0 02 mov a,$02b0+x +08cc: 74 b0 cmp a,$b0+x +08ce: f0 06 beq $08d6 +08d0: bb b0 inc $b0+x +08d2: e3 13 42 bbs7 $13,$0917 +08d5: 6f ret + +08d6: f5 00 01 mov a,$0100+x +08d9: 75 b1 02 cmp a,$02b1+x +08dc: d0 05 bne $08e3 +08de: f5 c1 02 mov a,$02c1+x +08e1: 2f 0d bra $08f0 +08e3: 40 setp +08e4: bb 00 inc $00+x +08e6: 20 clrp +08e7: fd mov y,a +08e8: f0 02 beq $08ec +08ea: f4 b1 mov a,$b1+x +08ec: 60 clrc +08ed: 95 c0 02 adc a,$02c0+x +08f0: d4 b1 mov $b1+x,a +08f2: f5 a0 02 mov a,$02a0+x +08f5: 60 clrc +08f6: 95 a1 02 adc a,$02a1+x +08f9: d5 a0 02 mov $02a0+x,a +08fc: c4 12 mov $12,a +08fe: 1c asl a +08ff: 1c asl a +0900: 90 02 bcc $0904 +0902: 48 ff eor a,#$ff +0904: fd mov y,a +0905: f4 b1 mov a,$b1+x +0907: 68 f1 cmp a,#$f1 +0909: 90 05 bcc $0910 +090b: 28 0f and a,#$0f +090d: cf mul ya +090e: 2f 04 bra $0914 +0910: cf mul ya +0911: dd mov a,y +0912: 8d 00 mov y,#$00 +0914: 3f ef 0c call $0cef +0917: 5f 1a 09 jmp $091a + +091a: 8d 00 mov y,#$00 +091c: e4 11 mov a,$11 +091e: 80 setc +091f: a8 34 sbc a,#$34 +0921: b0 09 bcs $092c +0923: e4 11 mov a,$11 +0925: 80 setc +0926: a8 13 sbc a,#$13 +0928: b0 06 bcs $0930 +092a: dc dec y +092b: 1c asl a +092c: 7a 10 addw ya,$10 +092e: da 10 movw $10,ya +0930: 4d push x +0931: e4 11 mov a,$11 +0933: 1c asl a +0934: 8d 00 mov y,#$00 +0936: cd 18 mov x,#$18 +0938: 9e div ya,x +0939: 5d mov x,a +093a: f6 61 0e mov a,$0e61+y +093d: c4 15 mov $15,a +093f: f6 60 0e mov a,$0e60+y +0942: c4 14 mov $14,a +0944: f6 63 0e mov a,$0e63+y +0947: 2d push a +0948: f6 62 0e mov a,$0e62+y +094b: ee pop y +094c: 9a 14 subw ya,$14 +094e: eb 10 mov y,$10 +0950: cf mul ya +0951: dd mov a,y +0952: 8d 00 mov y,#$00 +0954: 7a 14 addw ya,$14 +0956: cb 15 mov $15,y +0958: 1c asl a +0959: 2b 15 rol $15 +095b: c4 14 mov $14,a +095d: 2f 04 bra $0963 +095f: 4b 15 lsr $15 +0961: 7c ror a +0962: 3d inc x +0963: c8 06 cmp x,#$06 +0965: d0 f8 bne $095f +0967: c4 14 mov $14,a +0969: ce pop x +096a: f5 20 02 mov a,$0220+x +096d: eb 15 mov y,$15 +096f: cf mul ya +0970: da 16 movw $16,ya +0972: f5 20 02 mov a,$0220+x +0975: eb 14 mov y,$14 +0977: cf mul ya +0978: 6d push y +0979: f5 21 02 mov a,$0221+x +097c: eb 14 mov y,$14 +097e: cf mul ya +097f: 7a 16 addw ya,$16 +0981: da 16 movw $16,ya +0983: f5 21 02 mov a,$0221+x +0986: eb 15 mov y,$15 +0988: cf mul ya +0989: fd mov y,a +098a: ae pop a +098b: 7a 16 addw ya,$16 +098d: da 16 movw $16,ya +098f: 7d mov a,x +0990: 9f xcn a +0991: 5c lsr a +0992: 08 02 or a,#$02 +0994: fd mov y,a +0995: e4 16 mov a,$16 +0997: 3f 8e 0d call $0d8e +099a: fc inc y +099b: e4 17 mov a,$17 +099d: 5f 8e 0d jmp $0d8e + +09a0: 3f 9d 0d call $0d9d +09a3: 9c dec a +09a4: 68 0f cmp a,#$0f +09a6: 90 01 bcc $09a9 +09a8: 6f ret + +09a9: 1c asl a +09aa: fd mov y,a +09ab: f6 b5 09 mov a,$09b5+y +09ae: 2d push a +09af: f6 b4 09 mov a,$09b4+y +09b2: 2d push a +09b3: 6f ret + +09b4: dw $09d2 +09b6: dw $0a1b +09b8: dw $0a1f +09ba: dw $0a34 +09bc: dw $0a3f +09be: dw $0a43 +09c0: dw $09b3 +09c2: dw $09b3 +09c4: dw $09b3 +09c6: dw $0a49 +09c8: dw $09b3 +09ca: dw $09b3 +09cc: dw $09b3 +09ce: dw $09b3 +09d0: dw $0a5a + +; reset song params +09d2: cd 0e mov x,#$0e +09d4: 8f 80 47 mov $47,#$80 +09d7: e8 0a mov a,#$0a +09d9: 3f 48 0b call $0b48 +09dc: e8 ff mov a,#$ff +09de: d5 01 03 mov $0301+x,a +09e1: bc inc a +09e2: d5 11 02 mov $0211+x,a +09e5: d5 81 03 mov $0381+x,a +09e8: d5 f0 02 mov $02f0+x,a +09eb: d5 80 02 mov $0280+x,a +09ee: d4 b1 mov $b1+x,a +09f0: d4 c1 mov $c1+x,a +09f2: 1d dec x +09f3: 1d dec x +09f4: 4b 47 lsr $47 +09f6: d0 df bne $09d7 +09f8: c4 5a mov $5a,a +09fa: c4 68 mov $68,a +09fc: c4 54 mov $54,a +09fe: c4 50 mov $50,a +0a00: c4 42 mov $42,a +0a02: c4 5f mov $5f,a +0a04: c4 d3 mov $d3,a +0a06: c4 4a mov $4a,a +0a08: c4 60 mov $60,a +0a0a: c4 61 mov $61,a +0a0c: c5 a0 03 mov $03a0,a +0a0f: c5 a1 03 mov $03a1,a +0a12: 3f 48 0d call $0d48 +0a15: 8f c0 59 mov $59,#$c0 +0a18: 5f 3c 0d jmp $0d3c + +; play song +0a1b: e8 01 mov a,#$01 +0a1d: 2f 02 bra $0a21 +0a1f: e8 02 mov a,#$02 +0a21: c4 04 mov $04,a +0a23: 3f d2 09 call $09d2 +0a26: 3f 43 0a call $0a43 +0a29: e8 00 mov a,#$00 ; $1400 +0a2b: 8d 14 mov y,#$14 +0a2d: da 40 movw $40,ya +0a2f: 8f 01 0c mov $0c,#$01 +0a32: 2f 03 bra $0a37 +0a34: 8f 00 04 mov $04,#$00 +0a37: e4 1a mov a,$1a +0a39: 48 ff eor a,#$ff +0a3b: 0e 46 00 tset1 $0046 +0a3e: 6f ret + +0a3f: e8 01 mov a,#$01 +0a41: 2f 02 bra $0a45 +0a43: e8 00 mov a,#$00 +0a45: c5 a2 03 mov $03a2,a +0a48: 6f ret + +0a49: e4 04 mov a,$04 +0a4b: f0 0c beq $0a59 +0a4d: e5 a1 03 mov a,$03a1 +0a50: d0 07 bne $0a59 +0a52: c5 a0 03 mov $03a0,a +0a55: bc inc a +0a56: c5 a1 03 mov $03a1,a +0a59: 6f ret + +0a5a: e8 00 mov a,#$00 +0a5c: 8d d0 mov y,#$d0 +0a5e: 3f 96 0d call $0d96 +0a61: 8d d1 mov y,#$d1 +0a63: 3f 96 0d call $0d96 +0a66: 3f 3e 0d call $0d3e +0a69: 3f 48 0d call $0d48 +0a6c: 3f cb 0d call $0dcb +0a6f: 5f 34 0a jmp $0a34 + +; dispatch vcmd in A (e0-ff) +0a72: 1c asl a +0a73: fd mov y,a +0a74: f6 cf 09 mov a,$09cf+y +0a77: 2d push a +0a78: f6 ce 09 mov a,$09ce+y +0a7b: 2d push a +0a7c: dd mov a,y +0a7d: 5c lsr a +0a7e: fd mov y,a +0a7f: f6 6c 0a mov a,$0a6c+y +0a82: f0 08 beq $0a8c +; read new argument to A and Y +0a84: e7 30 mov a,($30+x) +; advance reading ptr +0a86: bb 30 inc $30+x +0a88: d0 02 bne $0a8c +0a8a: bb 31 inc $31+x +0a8c: fd mov y,a +0a8d: 6f ret + +; vcmd dispatch table +0a8f: dw $0aef ; e0 - set instrument +0a91: dw $0b48 ; e1 - pan +0a93: dw $0b56 ; e2 - pan fade +0a95: dw $0b6f ; e3 - vibrato on +0a97: dw $0b7b ; e4 - vibrato off +0a99: dw $0b96 ; e5 - master volume +0a9b: dw $0b9b ; e6 - master volume fade +0a9d: dw $0bad ; e7 - tempo +0a9f: dw $0bb2 ; e8 - tempo fade +0aa1: dw $0bc4 ; e9 - global transpose +0aa3: dw $0bc7 ; ea - per-voice transpose +0aa5: dw $0bcb ; eb - tremolo on +0aa7: dw $0bd7 ; ec - tremolo off +0aa9: dw $0bf8 ; ed - volume +0aab: dw $0c01 ; ee - volume fade +0aad: dw $0c1e ; ef - call subroutine +0aaf: dw $0b86 ; f0 - vibrato fade +0ab1: dw $0bda ; f1 - pitch envelope (release) +0ab3: dw $0bde ; f2 - pitch envelope (attack) +0ab5: dw $0bf4 ; f3 - pitch envelope off +0ab7: dw $0c1a ; f4 - tuning +0ab9: dw $0c41 ; f5 - echo vbits/volume +0abb: dw $0c75 ; f6 - disable echo +0abd: dw $0c7c ; f7 - set echo params +0abf: dw $0c54 ; f8 - echo volume fade +0ac1: dw $0cae ; f9 - pitch slide +0ac3: dw $0cd6 ; fa - set perc patch base +0ac5: dw $0aeb ; fb - skip to next byte +0ac7: dw $0aee ; fc - nop +0ac9: dw $0aee ; fd - nop +0aca: dw $0aee ; fe - nop + +; vcmd lengths +0acc: db $01,$01,$02,$03,$00,$01,$02,$01 ; e0-e7 +0ad4: db $02,$01,$01,$03,$00,$01,$02,$03 ; e8-ef +0adc: db $01,$03,$03,$00,$01,$03,$00,$03 ; f0-f7 +0ae4: db $03,$03,$01,$02,$00,$00,$00 ; f8-fe + +; vcmd fb - skip to next byte +0aeb: 3f 86 0a call $0a86 +; vcmd fc-fe - nop +0aee: 6f ret + +; vcmd e0 - set instrument +0aef: d5 11 02 mov $0211+x,a +0af2: fd mov y,a +0af3: 10 06 bpl $0afb +0af5: 80 setc +0af6: a8 ca sbc a,#$ca +0af8: 60 clrc +0af9: 84 5f adc a,$5f +0afb: 8d 06 mov y,#$06 +0afd: cf mul ya +0afe: da 14 movw $14,ya +0b00: 60 clrc +0b01: 98 00 14 adc $14,#$00 +0b04: 98 29 15 adc $15,#$29 +0b07: e4 1a mov a,$1a +0b09: 24 47 and a,$47 +0b0b: d0 3a bne $0b47 +0b0d: 4d push x +0b0e: 7d mov a,x +0b0f: 9f xcn a +0b10: 5c lsr a +0b11: 08 04 or a,#$04 +0b13: 5d mov x,a +0b14: 8d 00 mov y,#$00 +0b16: f7 14 mov a,($14)+y +0b18: 10 0e bpl $0b28 +0b1a: 28 1f and a,#$1f +0b1c: 38 20 48 and $48,#$20 +0b1f: 0e 48 00 tset1 $0048 +0b22: 09 47 49 or ($49),($47) +0b25: dd mov a,y +0b26: 2f 07 bra $0b2f +0b28: e4 47 mov a,$47 +0b2a: 4e 49 00 tclr1 $0049 +0b2d: f7 14 mov a,($14)+y +0b2f: c9 f2 00 mov $00f2,x +0b32: c5 f3 00 mov $00f3,a +0b35: 3d inc x +0b36: fc inc y +0b37: ad 04 cmp y,#$04 +0b39: d0 f2 bne $0b2d +0b3b: ce pop x +0b3c: f7 14 mov a,($14)+y +0b3e: d5 21 02 mov $0221+x,a +0b41: fc inc y +0b42: f7 14 mov a,($14)+y +0b44: d5 20 02 mov $0220+x,a +0b47: 6f ret + +; vcmd e1 - pan +0b48: d5 51 03 mov $0351+x,a +0b4b: 28 1f and a,#$1f +0b4d: d5 31 03 mov $0331+x,a +0b50: e8 00 mov a,#$00 +0b52: d5 30 03 mov $0330+x,a +0b55: 6f ret + +; vcmd e2 - pan fade +0b56: d4 91 mov $91+x,a +0b58: 2d push a +0b59: 3f 84 0a call $0a84 +0b5c: d5 50 03 mov $0350+x,a +0b5f: 80 setc +0b60: b5 31 03 sbc a,$0331+x +0b63: ce pop x +0b64: 3f f7 0c call $0cf7 +0b67: d5 40 03 mov $0340+x,a +0b6a: dd mov a,y +0b6b: d5 41 03 mov $0341+x,a +0b6e: 6f ret + +; vcmd e3 - vibrato on +0b6f: d5 b0 02 mov $02b0+x,a +0b72: 3f 84 0a call $0a84 +0b75: d5 a1 02 mov $02a1+x,a +0b78: 3f 84 0a call $0a84 +; vcmd e4 - vibrato off +0b7b: d4 b1 mov $b1+x,a +0b7d: d5 c1 02 mov $02c1+x,a +0b80: e8 00 mov a,#$00 +0b82: d5 b1 02 mov $02b1+x,a +0b85: 6f ret + +; vcmd f0 - vibrato fade +0b86: d5 b1 02 mov $02b1+x,a +0b89: 2d push a +0b8a: 8d 00 mov y,#$00 +0b8c: f4 b1 mov a,$b1+x +0b8e: ce pop x +0b8f: 9e div ya,x +0b90: f8 44 mov x,$44 +0b92: d5 c0 02 mov $02c0+x,a +0b95: 6f ret + +; vcmd e5 - master volume +0b96: e8 00 mov a,#$00 +0b98: da 58 movw $58,ya +0b9a: 6f ret + +; vcmd e6 - master volume fade +0b9b: c4 5a mov $5a,a +0b9d: 3f 84 0a call $0a84 +0ba0: c4 5b mov $5b,a +0ba2: 80 setc +0ba3: a4 59 sbc a,$59 +0ba5: f8 5a mov x,$5a +0ba7: 3f f7 0c call $0cf7 +0baa: da 5c movw $5c,ya +0bac: 6f ret + +; vcmd e7 - tempo +0bad: e8 00 mov a,#$00 +0baf: da 52 movw $52,ya +0bb1: 6f ret + +; vcmd e8 - tempo fade +0bb2: c4 54 mov $54,a +0bb4: 3f 84 0a call $0a84 +0bb7: c4 55 mov $55,a +0bb9: 80 setc +0bba: a4 53 sbc a,$53 +0bbc: f8 54 mov x,$54 +0bbe: 3f f7 0c call $0cf7 +0bc1: da 56 movw $56,ya +0bc3: 6f ret + +; vcmd e9 - global transpose +0bc4: c4 50 mov $50,a +0bc6: 6f ret + +; vcmd ea - per-voice transpose +0bc7: d5 f0 02 mov $02f0+x,a +0bca: 6f ret + +; vcmd eb - tremolo on +0bcb: d5 e0 02 mov $02e0+x,a +0bce: 3f 84 0a call $0a84 +0bd1: d5 d1 02 mov $02d1+x,a +0bd4: 3f 84 0a call $0a84 +; vcmd ec - tremolo off +0bd7: d4 c1 mov $c1+x,a +0bd9: 6f ret + +; vcmd f1 - pitch envelope (release) +0bda: e8 01 mov a,#$01 +0bdc: 2f 02 bra $0be0 +; vcmd f2 - pitch envelope (attack) +0bde: e8 00 mov a,#$00 +0be0: d5 90 02 mov $0290+x,a +0be3: dd mov a,y +0be4: d5 81 02 mov $0281+x,a +0be7: 3f 84 0a call $0a84 +0bea: d5 80 02 mov $0280+x,a +0bed: 3f 84 0a call $0a84 +0bf0: d5 91 02 mov $0291+x,a +0bf3: 6f ret + +; vcmd f3 - pitch envelope off +0bf4: d5 80 02 mov $0280+x,a +0bf7: 6f ret + +; vcmd ed - volume +0bf8: d5 01 03 mov $0301+x,a +0bfb: e8 00 mov a,#$00 +0bfd: d5 00 03 mov $0300+x,a +0c00: 6f ret + +; vcmd ee - volume fade +0c01: d4 90 mov $90+x,a +0c03: 2d push a +0c04: 3f 84 0a call $0a84 +0c07: d5 20 03 mov $0320+x,a +0c0a: 80 setc +0c0b: b5 01 03 sbc a,$0301+x +0c0e: ce pop x +0c0f: 3f f7 0c call $0cf7 +0c12: d5 10 03 mov $0310+x,a +0c15: dd mov a,y +0c16: d5 11 03 mov $0311+x,a +0c19: 6f ret + +; vcmd f4 - tuning +0c1a: d5 81 03 mov $0381+x,a +0c1d: 6f ret + +; vcmd ef - call subroutine +0c1e: d5 40 02 mov $0240+x,a +0c21: 3f 84 0a call $0a84 +0c24: d5 41 02 mov $0241+x,a +0c27: 3f 84 0a call $0a84 +0c2a: d4 80 mov $80+x,a +0c2c: f4 30 mov a,$30+x +0c2e: d5 30 02 mov $0230+x,a +0c31: f4 31 mov a,$31+x +0c33: d5 31 02 mov $0231+x,a +0c36: f5 40 02 mov a,$0240+x +0c39: d4 30 mov $30+x,a +0c3b: f5 41 02 mov a,$0241+x +0c3e: d4 31 mov $31+x,a +0c40: 6f ret + +; vcmd f5 - echo vbits/volume +0c41: c4 4a mov $4a,a +0c43: 3f 84 0a call $0a84 +0c46: e8 00 mov a,#$00 +0c48: da 60 movw $60,ya +0c4a: 3f 84 0a call $0a84 +0c4d: e8 00 mov a,#$00 +0c4f: da 62 movw $62,ya +0c51: b2 48 clr5 $48 +0c53: 6f ret + +; vcmd f8 - echo volume fade +0c54: c4 68 mov $68,a +0c56: 3f 84 0a call $0a84 +0c59: c4 69 mov $69,a +0c5b: 80 setc +0c5c: a4 61 sbc a,$61 +0c5e: f8 68 mov x,$68 +0c60: 3f f7 0c call $0cf7 +0c63: da 64 movw $64,ya +0c65: 3f 84 0a call $0a84 +0c68: c4 6a mov $6a,a +0c6a: 80 setc +0c6b: a4 63 sbc a,$63 +0c6d: f8 68 mov x,$68 +0c6f: 3f f7 0c call $0cf7 +0c72: da 66 movw $66,ya +0c74: 6f ret + +; vcmd f6 - disable echo +0c75: da 60 movw $60,ya +0c77: da 62 movw $62,ya +0c79: a2 48 set5 $48 +0c7b: 6f ret + +; vcmd f7 - set echo params +0c7c: 3f 48 0d call $0d48 +0c7f: 3f 84 0a call $0a84 +0c82: c4 4e mov $4e,a +0c84: 3f 84 0a call $0a84 +0c87: 8d 08 mov y,#$08 +0c89: cf mul ya +0c8a: 5d mov x,a +0c8b: 8d 0f mov y,#$0f +0c8d: f5 2c 0e mov a,$0e2c+x +0c90: 3f 96 0d call $0d96 +0c93: 3d inc x +0c94: dd mov a,y +0c95: 60 clrc +0c96: 88 10 adc a,#$10 +0c98: fd mov y,a +0c99: 10 f2 bpl $0c8d +0c9b: f8 44 mov x,$44 +0c9d: 6f ret + +0c9e: f4 a0 mov a,$a0+x +0ca0: d0 33 bne $0cd5 +0ca2: e7 30 mov a,($30+x) +0ca4: 68 f9 cmp a,#$f9 +0ca6: d0 2d bne $0cd5 +0ca8: 3f 86 0a call $0a86 +0cab: 3f 84 0a call $0a84 +; vcmd f9 - pitch slide +0cae: d4 a1 mov $a1+x,a +0cb0: 3f 84 0a call $0a84 +0cb3: d4 a0 mov $a0+x,a +0cb5: 3f 84 0a call $0a84 +0cb8: 60 clrc +0cb9: 84 50 adc a,$50 +0cbb: 95 f0 02 adc a,$02f0+x +0cbe: 28 7f and a,#$7f +0cc0: d5 80 03 mov $0380+x,a +0cc3: 80 setc +0cc4: b5 61 03 sbc a,$0361+x +0cc7: fb a0 mov y,$a0+x +0cc9: 6d push y +0cca: ce pop x +0ccb: 3f f7 0c call $0cf7 +0cce: d5 70 03 mov $0370+x,a +0cd1: dd mov a,y +0cd2: d5 71 03 mov $0371+x,a +0cd5: 6f ret + +; vcmd fa - set perc patch base +0cd6: c4 5f mov $5f,a +0cd8: 6f ret + +0cd9: e2 13 set7 $13 +0cdb: cb 12 mov $12,y +0cdd: 3f 09 0d call $0d09 +0ce0: 6d push y +0ce1: eb 51 mov y,$51 +0ce3: cf mul ya +0ce4: cb 14 mov $14,y +0ce6: 8f 00 15 mov $15,#$00 +0ce9: eb 51 mov y,$51 +0ceb: ae pop a +0cec: cf mul ya +0ced: 7a 14 addw ya,$14 +0cef: 3f 09 0d call $0d09 +0cf2: 7a 10 addw ya,$10 +0cf4: da 10 movw $10,ya +0cf6: 6f ret + +0cf7: ed notc +0cf8: 6b 12 ror $12 +0cfa: 10 03 bpl $0cff +0cfc: 48 ff eor a,#$ff +0cfe: bc inc a +0cff: 8d 00 mov y,#$00 +0d01: 9e div ya,x +0d02: 2d push a +0d03: e8 00 mov a,#$00 +0d05: 9e div ya,x +0d06: ee pop y +0d07: f8 44 mov x,$44 +0d09: f3 12 06 bbc7 $12,$0d12 +0d0c: da 14 movw $14,ya +0d0e: ba 0e movw ya,$0e +0d10: 9a 14 subw ya,$14 +0d12: 6f ret + +0d13: e5 a1 03 mov a,$03a1 +0d16: d0 01 bne $0d19 +0d18: 6f ret + +0d19: 60 clrc +0d1a: e8 96 mov a,#$96 +0d1c: 85 a0 03 adc a,$03a0 +0d1f: c5 a0 03 mov $03a0,a +0d22: e8 01 mov a,#$01 +0d24: 85 a1 03 adc a,$03a1 +0d27: c5 a1 03 mov $03a1,a +0d2a: 80 setc +0d2b: e8 60 mov a,#$60 +0d2d: a5 a1 03 sbc a,$03a1 +0d30: b0 08 bcs $0d3a +0d32: 3f 34 0a call $0a34 +0d35: e8 00 mov a,#$00 +0d37: c5 a0 03 mov $03a0,a +0d3a: 2f 02 bra $0d3e +0d3c: e8 60 mov a,#$60 +0d3e: 8d 0c mov y,#$0c +0d40: 3f 96 0d call $0d96 +0d43: 8d 1c mov y,#$1c +0d45: 5f 96 0d jmp $0d96 + +0d48: c4 4d mov $4d,a +0d4a: 8d 7d mov y,#$7d +0d4c: cc f2 00 mov $00f2,y +0d4f: e5 f3 00 mov a,$00f3 +0d52: 64 4d cmp a,$4d +0d54: f0 2b beq $0d81 +0d56: 28 0f and a,#$0f +0d58: 48 ff eor a,#$ff +0d5a: f3 4c 03 bbc7 $4c,$0d60 +0d5d: 60 clrc +0d5e: 84 4c adc a,$4c +0d60: c4 4c mov $4c,a +0d62: 8d 04 mov y,#$04 +0d64: f6 4b 0e mov a,$0e4b+y +0d67: c5 f2 00 mov $00f2,a +0d6a: e8 00 mov a,#$00 +0d6c: c5 f3 00 mov $00f3,a +0d6f: fe f3 dbnz y,$0d64 +0d71: e4 48 mov a,$48 +0d73: 08 20 or a,#$20 +0d75: 8d 6c mov y,#$6c +0d77: 3f 96 0d call $0d96 +0d7a: e4 4d mov a,$4d +0d7c: 8d 7d mov y,#$7d +0d7e: 3f 96 0d call $0d96 +0d81: 1c asl a +0d82: 1c asl a +0d83: 1c asl a +0d84: 48 ff eor a,#$ff +0d86: 80 setc +0d87: 88 ff adc a,#$ff +0d89: 8d 6d mov y,#$6d +0d8b: 5f 96 0d jmp $0d96 + +0d8e: 2d push a +0d8f: e4 47 mov a,$47 +0d91: 24 1a and a,$1a +0d93: ae pop a +0d94: d0 06 bne $0d9c +0d96: cc f2 00 mov $00f2,y +0d99: c5 f3 00 mov $00f3,a +0d9c: 6f ret + +0d9d: e5 f4 00 mov a,$00f4 +0da0: 65 f4 00 cmp a,$00f4 +0da3: d0 f8 bne $0d9d +0da5: 68 00 cmp a,#$00 +0da7: f0 0a beq $0db3 +0da9: 2d push a +0daa: e8 11 mov a,#$11 +0dac: c5 f1 00 mov $00f1,a +0daf: ae pop a +0db0: c5 f4 00 mov $00f4,a +0db3: 6f ret + +0db4: e5 f6 00 mov a,$00f6 +0db7: 65 f6 00 cmp a,$00f6 +0dba: d0 f8 bne $0db4 +0dbc: 68 00 cmp a,#$00 +0dbe: f0 0a beq $0dca +0dc0: 2d push a +0dc1: e8 21 mov a,#$21 +0dc3: c5 f1 00 mov $00f1,a +0dc6: ae pop a +0dc7: c5 f6 00 mov $00f6,a +0dca: 6f ret + +0dcb: e8 aa mov a,#$aa +0dcd: c5 f4 00 mov $00f4,a +0dd0: e8 bb mov a,#$bb +0dd2: c5 f5 00 mov $00f5,a +0dd5: e5 f4 00 mov a,$00f4 +0dd8: 68 cc cmp a,#$cc +0dda: d0 f9 bne $0dd5 +0ddc: 2f 20 bra $0dfe +0dde: ec f4 00 mov y,$00f4 +0de1: d0 fb bne $0dde +0de3: 5e f4 00 cmp y,$00f4 +0de6: d0 0f bne $0df7 +0de8: e5 f5 00 mov a,$00f5 +0deb: cc f4 00 mov $00f4,y +0dee: d7 14 mov ($14)+y,a +0df0: fc inc y +0df1: d0 f0 bne $0de3 +0df3: ab 15 inc $15 +0df5: 2f ec bra $0de3 +0df7: 10 ea bpl $0de3 +0df9: 5e f4 00 cmp y,$00f4 +0dfc: 10 e5 bpl $0de3 +0dfe: e5 f6 00 mov a,$00f6 +0e01: ec f7 00 mov y,$00f7 +0e04: da 14 movw $14,ya +0e06: ec f4 00 mov y,$00f4 +0e09: e5 f5 00 mov a,$00f5 +0e0c: cc f4 00 mov $00f4,y +0e0f: d0 cd bne $0dde +0e11: cd 31 mov x,#$31 +0e13: c9 f1 00 mov $00f1,x +0e16: 6f ret + +; pan table +0e17: db $00,$01,$03,$07,$0d,$15,$1e,$29 +0e1f: db $34,$42,$51,$5e,$67,$6e,$73,$77 +0e27: db $7a,$7c,$7d,$7e,$7f + +; echo FIR presets +0e2c: db $7f,$00,$00,$00,$00,$00,$00,$00 +0e34: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c +0e3c: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 +0e44: db $34,$33,$00,$d9,$e5,$01,$fc,$eb + +; EVOL(L),EVOL(R),EFB,EON,FLG,KOL,KOF,NON,PMON,KOF +; dsp shadow addrs for dsp regs +0e4c: db $2c,$3c,$0d,$4d,$6c,$4c,$5c,$3d,$2d,$5c +0e56: db $d0,$d1,$4e,$d2,$48,$45,$0e,$49,$4b,$46 + +; pitch table +0e60: dw $085f +0e62: dw $08de +0e64: dw $0965 +0e66: dw $09f4 +0e68: dw $0a8c +0e6a: dw $0b2c +0e6c: dw $0bd6 +0e6e: dw $0c8b +0e70: dw $0d4a +0e72: dw $0e14 +0e74: dw $0eea +0e76: dw $0fcd +0e78: dw $10be + +0e7a: e5 90 03 mov a,$0390 +0e7d: f0 25 beq $0ea4 +0e7f: 8c 90 03 dec $0390 +0e82: f0 0d beq $0e91 +0e84: 68 03 cmp a,#$03 +0e86: d0 1c bne $0ea4 +0e88: e8 40 mov a,#$40 +0e8a: 8d 5c mov y,#$5c +0e8c: 3f 96 0d call $0d96 +0e8f: 2f 13 bra $0ea4 +0e91: e5 1d 02 mov a,$021d +0e94: 68 07 cmp a,#$07 +0e96: b0 03 bcs $0e9b +0e98: e5 91 03 mov a,$0391 +0e9b: cd 0c mov x,#$0c +0e9d: 3f ef 0a call $0aef +0ea0: d2 1a clr6 $1a +0ea2: d2 d3 clr6 $d3 +0ea4: 3f b4 0d call $0db4 +0ea7: 9c dec a +0ea8: 68 15 cmp a,#$15 +0eaa: 90 01 bcc $0ead +0eac: 6f ret + +0ead: c5 94 03 mov $0394,a +0eb0: 1c asl a +0eb1: 85 94 03 adc a,$0394 +0eb4: 5d mov x,a +0eb5: f5 24 0f mov a,$0f24+x +0eb8: 30 0a bmi $0ec4 +0eba: e2 1a set7 $1a +0ebc: e2 d3 set7 $d3 +0ebe: e8 80 mov a,#$80 +0ec0: 8d 0e mov y,#$0e +0ec2: 2f 24 bra $0ee8 +0ec4: e5 90 03 mov a,$0390 +0ec7: d0 15 bne $0ede +0ec9: e5 1d 02 mov a,$021d +0ecc: c5 91 03 mov $0391,a +0ecf: c2 1a set6 $1a +0ed1: c2 d3 set6 $d3 +0ed3: e4 d3 mov a,$d3 +0ed5: 48 ff eor a,#$ff +0ed7: 24 4a and a,$4a +0ed9: 8d 4d mov y,#$4d +0edb: 3f 96 0d call $0d96 +0ede: f5 23 0f mov a,$0f23+x +0ee1: c5 90 03 mov $0390,a +0ee4: e8 40 mov a,#$40 +0ee6: 8d 0c mov y,#$0c +0ee8: c5 92 03 mov $0392,a +0eeb: cc 93 03 mov $0393,y +0eee: 4d push x +0eef: f5 24 0f mov a,$0f24+x +0ef2: 28 7f and a,#$7f +0ef4: e9 93 03 mov x,$0393 +0ef7: 3f ef 0a call $0aef +0efa: ce pop x +0efb: e5 93 03 mov a,$0393 +0efe: 9f xcn a +0eff: 5c lsr a +0f00: fd mov y,a +0f01: e8 7f mov a,#$7f +0f03: 3f 96 0d call $0d96 +0f06: fc inc y +0f07: 3f 96 0d call $0d96 +0f0a: f5 22 0f mov a,$0f22+x +0f0d: 28 7f and a,#$7f +0f0f: c4 11 mov $11,a +0f11: 8f 00 10 mov $10,#$00 +0f14: e9 93 03 mov x,$0393 +0f17: 3f 1a 09 call $091a +0f1a: e5 92 03 mov a,$0392 +0f1d: 8d 4c mov y,#$4c +0f1f: 5f 96 0d jmp $0d96 + +0f22: db $8c,$50,$00,$8c,$50,$01,$bc,$50 +0f2a: db $01,$a4,$05,$01,$85,$05,$01,$98 +0f32: db $05,$01,$b0,$50,$82,$98,$50,$83 +0f3a: db $a4,$50,$83,$87,$08,$84,$a4,$05 +0f42: db $85,$b0,$05,$85,$b7,$05,$85,$9c +0f4a: db $80,$82,$87,$48,$84,$a9,$05,$00 +0452: db $c3,$04,$82,$96,$20,$81,$bc,$18 + +045a: db $81,$85,$80,$86,$8d,$08,$84 diff --git a/snes/NSPC/Hect/Kyuuyaku Megami Tensei.s b/snes/NSPC/Hect/Kyuuyaku Megami Tensei.s index 1b0beb6e..c2100510 100644 --- a/snes/NSPC/Hect/Kyuuyaku Megami Tensei.s +++ b/snes/NSPC/Hect/Kyuuyaku Megami Tensei.s @@ -531,6 +531,7 @@ 0b55: 3f 11 09 call $0911 0b58: 6f ret +; dispatch subcmd (ff) 0b59: 3f 7e 0b call $0b7e 0b5c: 1c asl a 0b5d: fd mov y,a @@ -559,7 +560,7 @@ 0b86: fd mov y,a 0b87: 6f ret -; vcmd e0 +; vcmd e0 - set instrument 0b88: d5 11 02 mov $0211+x,a 0b8b: fd mov y,a 0b8c: 10 08 bpl $0b96 @@ -610,7 +611,7 @@ 0be2: d5 20 02 mov $0220+x,a 0be5: 6f ret -; vcmd e1 +; vcmd e1 - pan 0be6: 2d push a 0be7: f5 00 04 mov a,$0400+x 0bea: 68 01 cmp a,#$01 @@ -629,7 +630,7 @@ 0c06: d5 20 03 mov $0320+x,a 0c09: 6f ret -; vcmd e2 +; vcmd e2 - pan fade 0c0a: d4 6d mov $6d+x,a 0c0c: 2d push a 0c0d: 3f 7e 0b call $0b7e @@ -643,19 +644,19 @@ 0c1f: d5 31 03 mov $0331+x,a 0c22: 6f ret -; vcmd e3 +; vcmd e3 - vibrato on 0c23: d5 70 02 mov $0270+x,a 0c26: 3f 7e 0b call $0b7e 0c29: d5 61 02 mov $0261+x,a 0c2c: 3f 7e 0b call $0b7e -; vcmd e4 +; vcmd e4 - vibrato off 0c2f: d4 8d mov $8d+x,a 0c31: d5 81 02 mov $0281+x,a 0c34: e8 00 mov a,#$00 0c36: d5 71 02 mov $0271+x,a 0c39: 6f ret -; vcmd f0 +; vcmd f0 - vibrato fade 0c3a: d5 71 02 mov $0271+x,a 0c3d: 2d push a 0c3e: 8d 00 mov y,#$00 @@ -666,12 +667,12 @@ 0c46: d5 80 02 mov $0280+x,a 0c49: 6f ret -; vcmd e5 +; vcmd e5 - master volume 0c4a: e8 00 mov a,#$00 0c4c: da 4f movw $4f,ya 0c4e: 6f ret -; vcmd e6 +; vcmd e6 - master volume fade 0c4f: c4 58 mov $58,a 0c51: 3f 7e 0b call $0b7e 0c54: c4 59 mov $59,a @@ -682,7 +683,7 @@ 0c5e: da 51 movw $51,ya 0c60: 6f ret -; vcmd e7 +; vcmd e7 - tempo 0c61: f5 00 04 mov a,$0400+x 0c64: d0 05 bne $0c6b 0c66: e8 00 mov a,#$00 @@ -702,7 +703,7 @@ 0c79: c4 5a mov $5a,a 0c7b: 3f f7 1a call $1af7 0c7e: 2f 0c bra $0c8c -; vcmd e8 +; vcmd e8 - tempo fade 0c80: 2d push a 0c81: f5 00 04 mov a,$0400+x 0c84: d0 15 bne $0c9b @@ -747,27 +748,27 @@ 0ccd: ce pop x 0cce: 6f ret -; vcmd e9 +; vcmd e9 - global transpose 0ccf: c4 33 mov $33,a 0cd1: 6f ret -; vcmd ea +; vcmd ea - per-voice transpose 0cd2: d5 b0 02 mov $02b0+x,a 0cd5: 6f ret -; vcmd eb +; vcmd eb - tremolo on 0cd6: d5 a0 02 mov $02a0+x,a 0cd9: 3f 7e 0b call $0b7e 0cdc: d5 91 02 mov $0291+x,a 0cdf: 3f 7e 0b call $0b7e -; vcmd ec +; vcmd ec - tremolo off 0ce2: d4 9d mov $9d+x,a 0ce4: 6f ret -; vcmd f1 +; vcmd f1 - pitch envelope (release) 0ce5: e8 01 mov a,#$01 0ce7: 2f 02 bra $0ceb -; vcmd f2 +; vcmd f2 - pitch envelope (attack) 0ce9: e8 00 mov a,#$00 0ceb: d5 50 02 mov $0250+x,a 0cee: dd mov a,y @@ -778,11 +779,11 @@ 0cfb: d5 51 02 mov $0251+x,a 0cfe: 6f ret -; vcmd f3 +; vcmd f3 - pitch envelope off 0cff: d5 40 02 mov $0240+x,a 0d02: 6f ret -; vcmd ed +; vcmd ed - volume 0d03: d5 d1 02 mov $02d1+x,a 0d06: d5 21 06 mov $0621+x,a 0d09: 3f 89 14 call $1489 @@ -791,7 +792,7 @@ 0d11: d5 20 06 mov $0620+x,a 0d14: 6f ret -; vcmd ee +; vcmd ee - volume fade 0d15: d4 6c mov $6c+x,a 0d17: 2d push a 0d18: 3f 7e 0b call $0b7e @@ -805,12 +806,12 @@ 0d2a: d5 01 03 mov $0301+x,a 0d2d: 6f ret -; vcmd f4 +; vcmd f4 - tuning 0d2e: d5 71 03 mov $0371+x,a -; vcmd ef +; vcmd ef - nop 0d31: 6f ret -; vcmd f5 +; vcmd f5 - echo vbits/volume 0d32: 2d push a 0d33: f5 00 04 mov a,$0400+x 0d36: d0 1b bne $0d53 @@ -832,7 +833,7 @@ 0d54: 05 2e 00 or a,$002e 0d57: c5 2e 00 mov $002e,a 0d5a: 2f e2 bra $0d3e -; vcmd f8 +; vcmd f8 - echo volume fade 0d5c: c4 3c mov $3c,a 0d5e: 3f 7e 0b call $0b7e 0d61: c4 3d mov $3d,a @@ -850,13 +851,13 @@ 0d7a: da 3a movw $3a,ya 0d7c: 6f ret -; vcmd f6 +; vcmd f6 - disable echo 0d7d: da 34 movw $34,ya 0d7f: da 36 movw $36,ya 0d81: a2 2c set5 $2c 0d83: 6f ret -; vcmd f7 +; vcmd f7 - set echo params 0d84: 3f a6 0d call $0da6 0d87: 3f 7e 0b call $0b7e 0d8a: c4 32 mov $32,a @@ -916,7 +917,7 @@ 0df4: 8d 6d mov y,#$6d 0df6: 5f 19 09 jmp $0919 -; vcmd fa +; vcmd fa - set perc patch base 0df9: c4 57 mov $57,a 0dfb: 6f ret @@ -927,7 +928,7 @@ 0e04: d0 2d bne $0e33 0e06: 3f 80 0b call $0b80 0e09: 3f 7e 0b call $0b7e -; vcmd f9 +; vcmd f9 - pitch slide 0e0c: d4 7d mov $7d+x,a 0e0e: 3f 7e 0b call $0b7e 0e11: d4 7c mov $7c+x,a @@ -1294,33 +1295,33 @@ 10ee: db $35,$37,$32,$2e,$2c,$29,$04,$2d,$2f,$2a ; vcmd dispatch table -10f8: dw $0b88 ; e0 -10fa: dw $0be6 ; e1 -10fc: dw $0c0a ; e2 -10fe: dw $0c23 ; e3 -1100: dw $0c2f ; e4 -1102: dw $0c4a ; e5 -1104: dw $0c4f ; e6 -1106: dw $0c61 ; e7 -1108: dw $0c80 ; e8 -110a: dw $0ccf ; e9 -110c: dw $0cd2 ; ea -110e: dw $0cd6 ; eb -1110: dw $0ce2 ; ec -1112: dw $0d03 ; ed -1114: dw $0d15 ; ee -1116: dw $0d31 ; ef -1118: dw $0c3a ; f0 -111a: dw $0ce5 ; f1 -111c: dw $0ce9 ; f2 -111e: dw $0cff ; f3 -1120: dw $0d2e ; f4 -1122: dw $0d32 ; f5 -1124: dw $0d7d ; f6 -1126: dw $0d84 ; f7 -1128: dw $0d5c ; f8 -112a: dw $0e0c ; f9 -112c: dw $0df9 ; fa +10f8: dw $0b88 ; e0 - set instrument +10fa: dw $0be6 ; e1 - pan +10fc: dw $0c0a ; e2 - pan fade +10fe: dw $0c23 ; e3 - vibrato on +1100: dw $0c2f ; e4 - vibrato off +1102: dw $0c4a ; e5 - master volume +1104: dw $0c4f ; e6 - master volume fade +1106: dw $0c61 ; e7 - tempo +1108: dw $0c80 ; e8 - tempo fade +110a: dw $0ccf ; e9 - global transpose +110c: dw $0cd2 ; ea - per-voice transpose +110e: dw $0cd6 ; eb - tremolo on +1110: dw $0ce2 ; ec - tremolo off +1112: dw $0d03 ; ed - volume +1114: dw $0d15 ; ee - volume fade +1116: dw $0d31 ; ef - nop +1118: dw $0c3a ; f0 - vibrato fade +111a: dw $0ce5 ; f1 - pitch envelope (release) +111c: dw $0ce9 ; f2 - pitch envelope (attack) +111e: dw $0cff ; f3 - pitch envelope off +1120: dw $0d2e ; f4 - tuning +1122: dw $0d32 ; f5 - echo vbits/volume +1124: dw $0d7d ; f6 - disable echo +1126: dw $0d84 ; f7 - set echo params +1128: dw $0d5c ; f8 - echo volume fade +112a: dw $0e0c ; f9 - pitch slide +112c: dw $0df9 ; fa - set perc patch base ; vcmd length table 112e: db $01,$01,$02,$03,$00,$01,$02,$01 @@ -1400,28 +1401,31 @@ 11da: 3f 3a 0f call $0f3a 11dd: 5f fc 0d jmp $0dfc -11e0: dw $12b1 -11e2: dw $12b7 -11e4: dw $12c4 -11e6: dw $12cf -11e8: dw $12d5 -11ea: dw $1290 -11ec: dw $12a6 -11ee: dw $1286 -11f0: dw $1273 -11f2: dw $1277 -11f4: dw $126d -11f6: dw $1244 -11f8: dw $124e -11fa: dw $1258 -11fc: dw $120a -11fe: dw $1200 - +; subcmd dispatch table +11e0: dw $12b1 ; 00 - set attack rate +11e2: dw $12b7 ; 01 - set decay rate +11e4: dw $12c4 ; 02 - set sustain level +11e6: dw $12cf ; 03 - set release rate +11e8: dw $12d5 ; 04 - set sustain rate +11ea: dw $1290 ; 05 - call subroutine +11ec: dw $12a6 ; 06 - return from subroutine +11ee: dw $1286 ; 07 - jump +11f0: dw $1273 ; 08 - repeat count +11f2: dw $1277 ; 09 - conditional loop +11f4: dw $126d ; 0a +11f6: dw $1244 ; 0b - set pan value (1) +11f8: dw $124e ; 0c - set pan value (2) +11fa: dw $1258 ; 0d - set reverb +11fc: dw $120a ; 0e - surround volume +11fe: dw $1200 ; 0f - subtract volume + +; subcmd 0f - subtract volume 1200: d5 5c 06 mov $065c+x,a 1203: 3f 7e 0b call $0b7e 1206: d5 5d 06 mov $065d+x,a 1209: 6f ret +; subcmd 0e - surround volume 120a: 2d push a 120b: e5 81 06 mov a,$0681 120e: f0 1f beq $122f @@ -1451,16 +1455,19 @@ 1240: 3f 19 09 call $0919 1243: 6f ret +; subcmd 0b - set pan value (1) 1244: f5 40 15 mov a,$1540+x 1247: 05 2d 00 or a,$002d 124a: c5 2d 00 mov $002d,a 124d: 6f ret +; subcmd 0c - set pan value (2) 124e: e5 2d 00 mov a,$002d 1251: 35 3f 15 and a,$153f+x 1254: c5 2d 00 mov $002d,a 1257: 6f ret +; subcmd 0d - set reverb 1258: c5 89 06 mov $0689,a 125b: 2d push a 125c: e5 2c 00 mov a,$002c @@ -1472,13 +1479,16 @@ 1269: c5 2c 00 mov $002c,a 126c: 6f ret +; subcmd 0a 126d: e8 01 mov a,#$01 126f: c5 4a 06 mov $064a,a 1272: 6f ret +; subcmd 08 - repeat count 1273: d5 f0 03 mov $03f0+x,a 1276: 6f ret +; subcmd 09 - conditional loop 1277: 2d push a 1278: f5 f0 03 mov a,$03f0+x 127b: 9c dec a @@ -1488,6 +1498,7 @@ 1282: 5f 7e 0b jmp $0b7e 1285: ae pop a +; subcmd 07 - jump 1286: 2d push a 1287: 3f 7e 0b call $0b7e 128a: d4 15 mov $15+x,a @@ -1495,6 +1506,7 @@ 128d: d4 14 mov $14+x,a 128f: 6f ret +; subcmd 05 - call subroutine 1290: 2d push a 1291: 3f 7e 0b call $0b7e 1294: 2d push a @@ -1508,16 +1520,19 @@ 12a3: d4 14 mov $14+x,a 12a5: 6f ret +; subcmd 06 - return from subroutine 12a6: f5 e0 03 mov a,$03e0+x 12a9: d4 14 mov $14+x,a 12ab: f5 e1 03 mov a,$03e1+x 12ae: d4 15 mov $15+x,a 12b0: 6f ret +; subcmd 00 - set attack rate 12b1: 28 0f and a,#$0f 12b3: d5 80 03 mov $0380+x,a 12b6: 6f ret +; subcmd 01 - set decay rate 12b7: 1c asl a 12b8: 1c asl a 12b9: 1c asl a @@ -1528,6 +1543,7 @@ 12c0: d5 90 03 mov $0390+x,a 12c3: 6f ret +; subcmd 02 - set sustain level 12c4: 1c asl a 12c5: 1c asl a 12c6: 1c asl a @@ -1537,10 +1553,12 @@ 12cb: d5 a0 03 mov $03a0+x,a 12ce: 6f ret +; subcmd 03 - set release rate 12cf: 28 1f and a,#$1f 12d1: d5 b0 03 mov $03b0+x,a 12d4: 6f ret +; subcmd 04 - set sustain rate 12d5: 28 1f and a,#$1f 12d7: d5 c0 03 mov $03c0+x,a 12da: 6f ret @@ -2308,22 +2326,22 @@ 19f7: db $01,$03,$03,$00,$01,$03,$00,$03 19ff: db $03,$03,$01 -1a02: dw $1aa8 -1a04: dw $1aae -1a06: dw $1abb -1a08: dw $1ac6 -1a0a: dw $1acc -1a0c: dw $1a6a -1a0e: dw $1a80 -1a10: dw $1a9a -1a12: dw $1aa4 -1a14: dw $1a8b -1a16: dw $126d -1a18: dw $1a2c -1a1a: dw $1a36 -1a1c: dw $1a40 -1a1e: dw $1a44 -1a20: dw $1a22 +1a02: dw $1aa8 ; 00 +1a04: dw $1aae ; 01 +1a06: dw $1abb ; 02 +1a08: dw $1ac6 ; 03 +1a0a: dw $1acc ; 04 +1a0c: dw $1a6a ; 05 +1a0e: dw $1a80 ; 06 +1a10: dw $1a9a ; 07 +1a12: dw $1aa4 ; 08 +1a14: dw $1a8b ; 09 +1a16: dw $126d ; 0a +1a18: dw $1a2c ; 0b +1a1a: dw $1a36 ; 0c +1a1c: dw $1a40 ; 0d +1a1e: dw $1a44 ; 0e +1a20: dw $1a22 ; 0f 1a22: d5 6c 06 mov $066c+x,a 1a25: 3f 7e 0b call $0b7e diff --git a/snes/NSPC/Japan Art Media/Harvest Moon ($0500).bin b/snes/NSPC/Japan Art Media/Harvest Moon ($0500).bin new file mode 100644 index 00000000..19e54a73 Binary files /dev/null and b/snes/NSPC/Japan Art Media/Harvest Moon ($0500).bin differ diff --git a/snes/NSPC/Japan Art Media/Harvest Moon.s b/snes/NSPC/Japan Art Media/Harvest Moon.s new file mode 100644 index 00000000..d2b77bad --- /dev/null +++ b/snes/NSPC/Japan Art Media/Harvest Moon.s @@ -0,0 +1,2050 @@ +0500: 20 clrp +0501: cd cf mov x,#$cf +0503: bd mov sp,x +0504: e8 30 mov a,#$30 +0506: c5 f1 00 mov $00f1,a +0509: 3f 7d 0f call $0f7d +050c: 8d 0a mov y,#$0a +050e: ad 05 cmp y,#$05 +0510: f0 07 beq $0519 +0512: b0 08 bcs $051c +0514: 69 89 88 cmp ($88),($89) +0517: d0 11 bne $052a +0519: e3 88 0e bbs7 $88,$052a +051c: f6 8b 14 mov a,$148b+y +051f: c5 f2 00 mov $00f2,a +0522: f6 95 14 mov a,$1495+y +0525: 5d mov x,a +0526: e6 mov a,(x) +0527: c5 f3 00 mov $00f3,a +052a: fe e2 dbnz y,$050e +052c: cb 81 mov $81,y +052e: cb 82 mov $82,y +0530: e4 74 mov a,$74 +0532: 44 75 eor a,$75 +0534: 5c lsr a +0535: 5c lsr a +0536: ed notc +0537: 6b 74 ror $74 +0539: 6b 75 ror $75 +053b: ec fd 00 mov y,$00fd +053e: f0 fb beq $053b +0540: cc 6b 03 mov $036b,y +0543: 6d push y +0544: e8 20 mov a,#$20 +0546: cf mul ya +0547: 60 clrc +0548: 84 90 adc a,$90 +054a: c4 90 mov $90,a +054c: 90 07 bcc $0555 +054e: 69 89 88 cmp ($88),($89) +0551: f0 02 beq $0555 +0553: ab 88 inc $88 +0555: e4 d2 mov a,$d2 +0557: f0 03 beq $055c +0559: 3f 93 0c call $0c93 +055c: e4 93 mov a,$93 +055e: ee pop y +055f: cf mul ya +0560: 60 clrc +0561: 84 91 adc a,$91 +0563: c4 91 mov $91,a +0565: 90 08 bcc $056f +0567: 13 cf 31 bbc0 $cf,$059b +056a: 3f a9 05 call $05a9 +056d: 2f 1e bra $058d +056f: 83 cf 1b bbs4 $cf,$058d +0572: 13 cf 26 bbc0 $cf,$059b +0575: cd 00 mov x,#$00 +0577: 8f 01 83 mov $83,#$01 +057a: e4 83 mov a,$83 +057c: 24 d2 and a,$d2 +057e: d0 07 bne $0587 +0580: f4 01 mov a,$01+x +0582: f0 03 beq $0587 +0584: 3f 38 0b call $0b38 +0587: 3d inc x +0588: 3d inc x +0589: 0b 83 asl $83 +058b: d0 ed bne $057a +058d: b3 cf 0b bbc5 $cf,$059b +0590: e4 9a mov a,$9a +0592: d0 07 bne $059b +0594: b2 cf clr5 $cf +0596: 12 cf clr0 $cf +0598: 8f e0 99 mov $99,#$e0 +059b: 63 cf 06 bbs3 $cf,$05a4 +059e: 3f 3c 10 call $103c +05a1: 5f 0c 05 jmp $050c + +05a4: 72 cf clr3 $cf +05a6: 5f 0c 05 jmp $050c + +05a9: 93 cf 08 bbc4 $cf,$05b4 +05ac: 3f c9 0b call $0bc9 +05af: 3f fd 0b call $0bfd +05b2: 92 cf clr4 $cf +05b4: cd 00 mov x,#$00 +05b6: d8 9e mov $9e,x +05b8: 8f 01 83 mov $83,#$01 +05bb: e4 83 mov a,$83 +05bd: 24 d2 and a,$d2 +05bf: d0 3b bne $05fc +05c1: d8 76 mov $76,x +05c3: f4 01 mov a,$01+x +05c5: f0 35 beq $05fc +05c7: 9b 10 dec $10+x +05c9: d0 33 bne $05fe +05cb: e7 00 mov a,($00+x) +05cd: bb 00 inc $00+x +05cf: d0 02 bne $05d3 +05d1: bb 01 inc $01+x +05d3: fd mov y,a +05d4: d0 2a bne $0600 +05d6: f4 60 mov a,$60+x +05d8: d0 03 bne $05dd +05da: 5f fd 0b jmp $0bfd + +05dd: 6d push y +05de: f5 41 03 mov a,$0341+x +05e1: fd mov y,a +05e2: f5 40 03 mov a,$0340+x +05e5: 7a ac addw ya,$ac +05e7: d4 00 mov $00+x,a +05e9: db 01 mov $01+x,y +05eb: ee pop y +05ec: 9b 60 dec $60+x +05ee: d0 db bne $05cb +05f0: f5 30 03 mov a,$0330+x +05f3: d4 00 mov $00+x,a +05f5: f5 31 03 mov a,$0331+x +05f8: d4 01 mov $01+x,a +05fa: 2f cf bra $05cb +05fc: 2f 58 bra $0656 +05fe: 2f 50 bra $0650 +0600: 30 2c bmi $062e +0602: d5 00 02 mov $0200+x,a +0605: e7 00 mov a,($00+x) +0607: bb 00 inc $00+x +0609: d0 02 bne $060d +060b: bb 01 inc $01+x +060d: fd mov y,a +060e: 30 1e bmi $062e +0610: 2d push a +0611: 9f xcn a +0612: 28 07 and a,#$07 +0614: fd mov y,a +0615: f6 a0 14 mov a,$14a0+y +0618: d5 01 02 mov $0201+x,a +061b: ae pop a +061c: 28 0f and a,#$0f +061e: fd mov y,a +061f: f6 a8 14 mov a,$14a8+y +0622: d5 10 03 mov $0310+x,a +0625: e7 00 mov a,($00+x) +0627: bb 00 inc $00+x +0629: d0 02 bne $062d +062b: bb 01 inc $01+x +062d: fd mov y,a +062e: 68 de cmp a,#$de +0630: f0 2f beq $0661 +0632: 68 e0 cmp a,#$e0 +0634: 90 05 bcc $063b +0636: 3f bb 06 call $06bb +0639: 2f 90 bra $05cb +063b: 3f 0c 0e call $0e0c +063e: f5 00 02 mov a,$0200+x +0641: d4 10 mov $10+x,a +0643: fd mov y,a +0644: f5 01 02 mov a,$0201+x +0647: cf mul ya +0648: dd mov a,y +0649: d0 01 bne $064c +064b: bc inc a +064c: d4 11 mov $11+x,a +064e: 2f 03 bra $0653 +0650: 3f 54 0a call $0a54 +0653: 3f 02 09 call $0902 +0656: 3d inc x +0657: 3d inc x +0658: 0b 83 asl $83 +065a: d0 02 bne $065e +065c: 2f 0a bra $0668 +065e: 5f bb 05 jmp $05bb + +0661: 12 cf clr0 $cf +0663: 62 cf set3 $cf +0665: 5f cb 05 jmp $05cb + +0668: e4 94 mov a,$94 +066a: f0 0b beq $0677 +066c: ba 96 movw ya,$96 +066e: 7a 92 addw ya,$92 +0670: 6e 94 02 dbnz $94,$0675 +0673: ba 94 movw ya,$94 +0675: da 92 movw $92,ya +0677: e4 a7 mov a,$a7 +0679: f0 15 beq $0690 +067b: ba a3 movw ya,$a3 +067d: 7a 9f addw ya,$9f +067f: da 9f movw $9f,ya +0681: ba a5 movw ya,$a5 +0683: 7a a1 addw ya,$a1 +0685: 6e a7 06 dbnz $a7,$068e +0688: ba a7 movw ya,$a7 +068a: da 9f movw $9f,ya +068c: eb a9 mov y,$a9 +068e: da a1 movw $a1,ya +0690: e4 9a mov a,$9a +0692: f0 0e beq $06a2 +0694: ba 9c movw ya,$9c +0696: 7a 98 addw ya,$98 +0698: 6e 9a 02 dbnz $9a,$069d +069b: ba 9a movw ya,$9a +069d: da 98 movw $98,ya +069f: 8f ff 9e mov $9e,#$ff +06a2: cd 00 mov x,#$00 +06a4: 8f 01 83 mov $83,#$01 +06a7: e4 83 mov a,$83 +06a9: 24 d2 and a,$d2 +06ab: d0 07 bne $06b4 +06ad: f4 01 mov a,$01+x +06af: f0 03 beq $06b4 +06b1: 3f 9d 09 call $099d +06b4: 3d inc x +06b5: 3d inc x +06b6: 0b 83 asl $83 +06b8: d0 ed bne $06a7 +06ba: 6f ret + +; dispatch vcmd in A (e0-ff) +06bb: 1c asl a +06bc: fd mov y,a +06bd: f6 21 13 mov a,$1321+y +06c0: 2d push a +06c1: f6 20 13 mov a,$1320+y +06c4: 2d push a +06c5: dd mov a,y +06c6: 5c lsr a +06c7: fd mov y,a +06c8: f6 be 13 mov a,$13be+y +06cb: f0 03 beq $06d0 +06cd: 5f 64 0f jmp $0f64 + +06d0: 5f 6c 0f jmp $0f6c + +; vcmd e1 - pan +06d3: d3 cf 02 bbc6 $cf,$06d8 +06d6: e8 0a mov a,#$0a +06d8: d5 61 02 mov $0261+x,a +06db: 28 1f and a,#$1f +06dd: d5 41 02 mov $0241+x,a +06e0: e8 00 mov a,#$00 +06e2: d5 40 02 mov $0240+x,a +06e5: 6f ret + +; vcmd e2 - pan fade +06e6: d3 cf 0a bbc6 $cf,$06f3 +06e9: e7 00 mov a,($00+x) +06eb: bb 00 inc $00+x +06ed: d0 02 bne $06f1 +06ef: bb 01 inc $01+x +06f1: fd mov y,a +06f2: 6f ret + +06f3: d4 21 mov $21+x,a +06f5: 2d push a +06f6: e7 00 mov a,($00+x) +06f8: bb 00 inc $00+x +06fa: d0 02 bne $06fe +06fc: bb 01 inc $01+x +06fe: fd mov y,a +06ff: d5 60 02 mov $0260+x,a +0702: 80 setc +0703: b5 41 02 sbc a,$0241+x +0706: ce pop x +0707: 3f 57 09 call $0957 +070a: d5 50 02 mov $0250+x,a +070d: dd mov a,y +070e: d5 51 02 mov $0251+x,a +0711: 6f ret + +; vcmd e3 - vibrato on +0712: d5 d0 02 mov $02d0+x,a +0715: e7 00 mov a,($00+x) +0717: bb 00 inc $00+x +0719: d0 02 bne $071d +071b: bb 01 inc $01+x +071d: fd mov y,a +071e: d5 c1 02 mov $02c1+x,a +0721: e7 00 mov a,($00+x) +0723: bb 00 inc $00+x +0725: d0 02 bne $0729 +0727: bb 01 inc $01+x +0729: fd mov y,a +; vcmd e4 - vibrato off +072a: d4 41 mov $41+x,a +072c: d5 e1 02 mov $02e1+x,a +072f: e8 00 mov a,#$00 +0731: d5 d1 02 mov $02d1+x,a +0734: 6f ret + +; vcmd f0 - vibrato fade +0735: d5 d1 02 mov $02d1+x,a +0738: 2d push a +0739: 8d 00 mov y,#$00 +073b: f4 41 mov a,$41+x +073d: ce pop x +073e: 9e div ya,x +073f: f8 76 mov x,$76 +0741: d5 e0 02 mov $02e0+x,a +0744: 6f ret + +; vcmd e5 - master volume +0745: e8 00 mov a,#$00 +0747: da 98 movw $98,ya +0749: 6f ret + +; vcmd e6 - master volume fade +074a: c4 9a mov $9a,a +074c: e7 00 mov a,($00+x) +074e: bb 00 inc $00+x +0750: d0 02 bne $0754 +0752: bb 01 inc $01+x +0754: fd mov y,a +0755: c4 9b mov $9b,a +0757: 80 setc +0758: a4 99 sbc a,$99 +075a: f8 9a mov x,$9a +075c: 3f 57 09 call $0957 +075f: da 9c movw $9c,ya +0761: 6f ret + +; vcmd e7 - tempo +0762: e8 00 mov a,#$00 +0764: da 92 movw $92,ya +0766: 6f ret + +; vcmd e8 - tempo fade +0767: c4 94 mov $94,a +0769: e7 00 mov a,($00+x) +076b: bb 00 inc $00+x +076d: d0 02 bne $0771 +076f: bb 01 inc $01+x +0771: fd mov y,a +0772: c4 95 mov $95,a +0774: 80 setc +0775: a4 93 sbc a,$93 +0777: f8 94 mov x,$94 +0779: 3f 57 09 call $0957 +077c: da 96 movw $96,ya +077e: 6f ret + +; vcmd e9 - global transpose +077f: c4 8b mov $8b,a +0781: 6f ret + +; vcmd ea - per-voice transpose +0782: d5 50 03 mov $0350+x,a +0785: 6f ret + +; vcmd eb - tremolo on +0786: d5 00 03 mov $0300+x,a +0789: e7 00 mov a,($00+x) +078b: bb 00 inc $00+x +078d: d0 02 bne $0791 +078f: bb 01 inc $01+x +0791: fd mov y,a +0792: d5 f1 02 mov $02f1+x,a +0795: e7 00 mov a,($00+x) +0797: bb 00 inc $00+x +0799: d0 02 bne $079d +079b: bb 01 inc $01+x +079d: fd mov y,a +; vcmd ec - tremolo off +079e: d4 51 mov $51+x,a +07a0: 6f ret + +; vcmd f1 - pitch envelope (release) +07a1: e8 01 mov a,#$01 +07a3: 2f 02 bra $07a7 +; vcmd f2 - pitch envelope (attack) +07a5: e8 00 mov a,#$00 +07a7: d5 80 02 mov $0280+x,a +07aa: dd mov a,y +07ab: d5 71 02 mov $0271+x,a +07ae: e7 00 mov a,($00+x) +07b0: bb 00 inc $00+x +07b2: d0 02 bne $07b6 +07b4: bb 01 inc $01+x +07b6: fd mov y,a +07b7: d5 70 02 mov $0270+x,a +07ba: e7 00 mov a,($00+x) +07bc: bb 00 inc $00+x +07be: d0 02 bne $07c2 +07c0: bb 01 inc $01+x +07c2: fd mov y,a +07c3: d5 81 02 mov $0281+x,a +07c6: 6f ret + +; vcmd f3 - pitch envelope off +07c7: d5 70 02 mov $0270+x,a +07ca: 6f ret + +; vcmd ed - volume +07cb: d5 11 02 mov $0211+x,a +07ce: e8 00 mov a,#$00 +07d0: d5 10 02 mov $0210+x,a +07d3: 6f ret + +; vcmd ee - volume fade +07d4: d4 20 mov $20+x,a +07d6: 2d push a +07d7: e7 00 mov a,($00+x) +07d9: bb 00 inc $00+x +07db: d0 02 bne $07df +07dd: bb 01 inc $01+x +07df: fd mov y,a +07e0: d5 30 02 mov $0230+x,a +07e3: 80 setc +07e4: b5 11 02 sbc a,$0211+x +07e7: ce pop x +07e8: 3f 57 09 call $0957 +07eb: d5 20 02 mov $0220+x,a +07ee: dd mov a,y +07ef: d5 21 02 mov $0221+x,a +07f2: 6f ret + +; vcmd f4 - tuning +07f3: d5 b1 02 mov $02b1+x,a +07f6: 6f ret + +; vcmd ef - call subroutine +07f7: d5 40 03 mov $0340+x,a +07fa: e7 00 mov a,($00+x) +07fc: bb 00 inc $00+x +07fe: d0 02 bne $0802 +0800: bb 01 inc $01+x +0802: fd mov y,a +0803: d5 41 03 mov $0341+x,a +0806: e7 00 mov a,($00+x) +0808: bb 00 inc $00+x +080a: d0 02 bne $080e +080c: bb 01 inc $01+x +080e: fd mov y,a +080f: d4 60 mov $60+x,a +0811: f4 00 mov a,$00+x +0813: d5 30 03 mov $0330+x,a +0816: f4 01 mov a,$01+x +0818: d5 31 03 mov $0331+x,a +081b: 6d push y +081c: f5 41 03 mov a,$0341+x +081f: fd mov y,a +0820: f5 40 03 mov a,$0340+x +0823: 7a ac addw ya,$ac +0825: d4 00 mov $00+x,a +0827: db 01 mov $01+x,y +0829: ee pop y +082a: 6f ret + +; vcmd f5 - echo vbits/volume +082b: c4 86 mov $86,a +082d: e7 00 mov a,($00+x) +082f: bb 00 inc $00+x +0831: d0 02 bne $0835 +0833: bb 01 inc $01+x +0835: fd mov y,a +0836: e8 00 mov a,#$00 +0838: da 9f movw $9f,ya +083a: e7 00 mov a,($00+x) +083c: bb 00 inc $00+x +083e: d0 02 bne $0842 +0840: bb 01 inc $01+x +0842: fd mov y,a +0843: e8 00 mov a,#$00 +0845: da a1 movw $a1,ya +0847: b2 84 clr5 $84 +0849: 6f ret + +; vcmd f8 - echo volume fade +084a: c4 a7 mov $a7,a +084c: e7 00 mov a,($00+x) +084e: bb 00 inc $00+x +0850: d0 02 bne $0854 +0852: bb 01 inc $01+x +0854: fd mov y,a +0855: c4 a8 mov $a8,a +0857: 80 setc +0858: a4 a0 sbc a,$a0 +085a: f8 a7 mov x,$a7 +085c: 3f 57 09 call $0957 +085f: da a3 movw $a3,ya +0861: a3 d0 16 bbs5 $d0,$087a +0864: e7 00 mov a,($00+x) +0866: bb 00 inc $00+x +0868: d0 02 bne $086c +086a: bb 01 inc $01+x +086c: fd mov y,a +086d: c4 a9 mov $a9,a +086f: 80 setc +0870: a4 a2 sbc a,$a2 +0872: f8 a7 mov x,$a7 +0874: 3f 57 09 call $0957 +0877: da a5 movw $a5,ya +0879: 6f ret + +087a: e8 00 mov a,#$00 +087c: 2f f1 bra $086f +; vcmd f6 - disable echo +087e: da 9f movw $9f,ya +0880: da a1 movw $a1,ya +0882: a2 84 set5 $84 +0884: 6f ret + +; vcmd f7 - set echo params +0885: 3f b3 08 call $08b3 +0888: e7 00 mov a,($00+x) +088a: bb 00 inc $00+x +088c: d0 02 bne $0890 +088e: bb 01 inc $01+x +0890: fd mov y,a +0891: c4 8a mov $8a,a +0893: e7 00 mov a,($00+x) +0895: bb 00 inc $00+x +0897: d0 02 bne $089b +0899: bb 01 inc $01+x +089b: fd mov y,a +089c: 8d 08 mov y,#$08 +089e: cf mul ya +089f: 5d mov x,a +08a0: 8d 0f mov y,#$0f +08a2: f5 6c 14 mov a,$146c+x +08a5: 3f 76 0f call $0f76 +08a8: 3d inc x +08a9: dd mov a,y +08aa: 60 clrc +08ab: 88 10 adc a,#$10 +08ad: fd mov y,a +08ae: 10 f2 bpl $08a2 +08b0: f8 76 mov x,$76 +08b2: 6f ret + +08b3: c4 89 mov $89,a +08b5: 8d 7d mov y,#$7d +08b7: cc f2 00 mov $00f2,y +08ba: e5 f3 00 mov a,$00f3 +08bd: 64 89 cmp a,$89 +08bf: f0 31 beq $08f2 +08c1: 28 0f and a,#$0f +08c3: 48 ff eor a,#$ff +08c5: f3 88 03 bbc7 $88,$08cb +08c8: 60 clrc +08c9: 84 88 adc a,$88 +08cb: c4 88 mov $88,a +08cd: 8d 04 mov y,#$04 +08cf: f6 8b 14 mov a,$148b+y +08d2: c5 f2 00 mov $00f2,a +08d5: e8 00 mov a,#$00 +08d7: c5 f3 00 mov $00f3,a +08da: fe f3 dbnz y,$08cf +08dc: e4 84 mov a,$84 +08de: 08 20 or a,#$20 +08e0: 8d 6c mov y,#$6c +08e2: cc f2 00 mov $00f2,y +08e5: c5 f3 00 mov $00f3,a +08e8: e4 89 mov a,$89 +08ea: 8d 7d mov y,#$7d +08ec: cc f2 00 mov $00f2,y +08ef: c5 f3 00 mov $00f3,a +08f2: 1c asl a +08f3: 1c asl a +08f4: 1c asl a +08f5: 48 ff eor a,#$ff +08f7: 80 setc +08f8: 88 ff adc a,#$ff +08fa: 8d 6d mov y,#$6d +08fc: 5f 76 0f jmp $0f76 + +; vcmd fa - set perc patch base +08ff: c4 8c mov $8c,a +0901: 6f ret + +0902: f4 30 mov a,$30+x +0904: d0 45 bne $094b +0906: e7 00 mov a,($00+x) +0908: 68 f9 cmp a,#$f9 +090a: d0 3f bne $094b +090c: 3f 66 0f call $0f66 +090f: e7 00 mov a,($00+x) +0911: bb 00 inc $00+x +0913: d0 02 bne $0917 +0915: bb 01 inc $01+x +0917: fd mov y,a +; vcmd f9 - pitch slide +0918: d4 31 mov $31+x,a +091a: e7 00 mov a,($00+x) +091c: bb 00 inc $00+x +091e: d0 02 bne $0922 +0920: bb 01 inc $01+x +0922: fd mov y,a +0923: d4 30 mov $30+x,a +0925: e7 00 mov a,($00+x) +0927: bb 00 inc $00+x +0929: d0 02 bne $092d +092b: bb 01 inc $01+x +092d: fd mov y,a +092e: 60 clrc +092f: 84 8b adc a,$8b +0931: 95 50 03 adc a,$0350+x +0934: 28 7f and a,#$7f +0936: d5 b0 02 mov $02b0+x,a +0939: 80 setc +093a: b5 91 02 sbc a,$0291+x +093d: fb 30 mov y,$30+x +093f: 6d push y +0940: ce pop x +0941: 3f 57 09 call $0957 +0944: d5 a0 02 mov $02a0+x,a +0947: dd mov a,y +0948: d5 a1 02 mov $02a1+x,a +094b: 6f ret + +094c: f5 91 02 mov a,$0291+x +094f: c4 7a mov $7a,a +0951: f5 90 02 mov a,$0290+x +0954: c4 79 mov $79,a +0956: 6f ret + +0957: ed notc +0958: 6b 7b ror $7b +095a: 10 03 bpl $095f +095c: 48 ff eor a,#$ff +095e: bc inc a +095f: 8d 00 mov y,#$00 +0961: 9e div ya,x +0962: 2d push a +0963: e8 00 mov a,#$00 +0965: 9e div ya,x +0966: ee pop y +0967: f8 76 mov x,$76 +0969: f3 7b 06 bbc7 $7b,$0972 +096c: da 70 movw $70,ya +096e: ba df movw ya,$df +0970: 9a 70 subw ya,$70 +0972: 6f ret + +0973: e2 7c set7 $7c +0975: eb 91 mov y,$91 +0977: f5 f1 02 mov a,$02f1+x +097a: cf mul ya +097b: dd mov a,y +097c: 60 clrc +097d: 95 f0 02 adc a,$02f0+x +0980: 1c asl a +0981: 90 02 bcc $0985 +0983: 48 ff eor a,#$ff +0985: fb 51 mov y,$51+x +0987: cf mul ya +0988: dd mov a,y +0989: 48 ff eor a,#$ff +098b: eb 99 mov y,$99 +098d: cf mul ya +098e: f5 10 03 mov a,$0310+x +0991: cf mul ya +0992: f5 11 02 mov a,$0211+x +0995: cf mul ya +0996: dd mov a,y +0997: cf mul ya +0998: dd mov a,y +0999: d5 31 02 mov $0231+x,a +099c: 6f ret + +099d: f4 20 mov a,$20+x +099f: f0 09 beq $09aa +09a1: e8 10 mov a,#$10 +09a3: 8d 02 mov y,#$02 +09a5: 9b 20 dec $20+x +09a7: 3f 30 0a call $0a30 +09aa: fb 51 mov y,$51+x +09ac: f0 23 beq $09d1 +09ae: f5 00 03 mov a,$0300+x +09b1: de 50 1b cbne $50+x,$09cf +09b4: 09 83 9e or ($9e),($83) +09b7: f5 f0 02 mov a,$02f0+x +09ba: 10 07 bpl $09c3 +09bc: fc inc y +09bd: d0 04 bne $09c3 +09bf: e8 80 mov a,#$80 +09c1: 2f 04 bra $09c7 +09c3: 60 clrc +09c4: 95 f1 02 adc a,$02f1+x +09c7: d5 f0 02 mov $02f0+x,a +09ca: 3f 80 09 call $0980 +09cd: 2f 07 bra $09d6 +09cf: bb 50 inc $50+x +09d1: e8 ff mov a,#$ff +09d3: 3f 8b 09 call $098b +09d6: f4 21 mov a,$21+x +09d8: f0 09 beq $09e3 +09da: e8 40 mov a,#$40 +09dc: 8d 02 mov y,#$02 +09de: 9b 21 dec $21+x +09e0: 3f 30 0a call $0a30 +09e3: e4 83 mov a,$83 +09e5: 24 9e and a,$9e +09e7: f0 46 beq $0a2f +09e9: f5 41 02 mov a,$0241+x +09ec: fd mov y,a +09ed: f5 40 02 mov a,$0240+x +09f0: da 79 movw $79,ya +09f2: 7d mov a,x +09f3: 9f xcn a +09f4: 5c lsr a +09f5: c4 7b mov $7b,a +09f7: eb 7a mov y,$7a +09f9: f6 58 14 mov a,$1458+y +09fc: 80 setc +09fd: b6 57 14 sbc a,$1457+y +0a00: eb 79 mov y,$79 +0a02: cf mul ya +0a03: dd mov a,y +0a04: eb 7a mov y,$7a +0a06: 60 clrc +0a07: 96 57 14 adc a,$1457+y +0a0a: fd mov y,a +0a0b: f5 31 02 mov a,$0231+x +0a0e: cf mul ya +0a0f: f5 61 02 mov a,$0261+x +0a12: 1c asl a +0a13: 13 7b 01 bbc0 $7b,$0a17 +0a16: 1c asl a +0a17: dd mov a,y +0a18: 90 03 bcc $0a1d +0a1a: 48 ff eor a,#$ff +0a1c: bc inc a +0a1d: eb 7b mov y,$7b +0a1f: 3f 6e 0f call $0f6e +0a22: 8d 14 mov y,#$14 +0a24: e8 00 mov a,#$00 +0a26: 9a 79 subw ya,$79 +0a28: da 79 movw $79,ya +0a2a: ab 7b inc $7b +0a2c: 33 7b c8 bbc1 $7b,$09f7 +0a2f: 6f ret + +0a30: 09 83 9e or ($9e),($83) +0a33: da 70 movw $70,ya +0a35: da 72 movw $72,ya +0a37: 4d push x +0a38: ee pop y +0a39: 60 clrc +0a3a: d0 0a bne $0a46 +0a3c: 98 1f 72 adc $72,#$1f +0a3f: e8 00 mov a,#$00 +0a41: d7 70 mov ($70)+y,a +0a43: fc inc y +0a44: 2f 09 bra $0a4f +0a46: 98 10 72 adc $72,#$10 +0a49: 3f 4d 0a call $0a4d +0a4c: fc inc y +0a4d: f7 70 mov a,($70)+y +0a4f: 97 72 adc a,($72)+y +0a51: d7 70 mov ($70)+y,a +0a53: 6f ret + +0a54: f4 11 mov a,$11+x +0a56: f0 70 beq $0ac8 +0a58: 9b 11 dec $11+x +0a5a: f0 05 beq $0a61 +0a5c: e8 02 mov a,#$02 +0a5e: de 10 67 cbne $10+x,$0ac8 +0a61: f4 60 mov a,$60+x +0a63: c4 73 mov $73,a +0a65: f4 00 mov a,$00+x +0a67: fb 01 mov y,$01+x +0a69: da 70 movw $70,ya +0a6b: 8d 00 mov y,#$00 +0a6d: f7 70 mov a,($70)+y +0a6f: f0 1e beq $0a8f +0a71: 30 07 bmi $0a7a +0a73: fc inc y +0a74: 30 40 bmi $0ab6 +0a76: f7 70 mov a,($70)+y +0a78: 10 f9 bpl $0a73 +0a7a: 68 c8 cmp a,#$c8 +0a7c: f0 4a beq $0ac8 +0a7e: 68 ef cmp a,#$ef +0a80: f0 29 beq $0aab +0a82: 68 e0 cmp a,#$e0 +0a84: 90 30 bcc $0ab6 +0a86: 6d push y +0a87: fd mov y,a +0a88: ae pop a +0a89: 96 3e 13 adc a,$133e+y +0a8c: fd mov y,a +0a8d: 2f de bra $0a6d +0a8f: e4 73 mov a,$73 +0a91: f0 23 beq $0ab6 +0a93: 8b 73 dec $73 +0a95: d0 0a bne $0aa1 +0a97: f5 31 03 mov a,$0331+x +0a9a: 2d push a +0a9b: f5 30 03 mov a,$0330+x +0a9e: ee pop y +0a9f: 2f c8 bra $0a69 +0aa1: f5 41 03 mov a,$0341+x +0aa4: 2d push a +0aa5: f5 40 03 mov a,$0340+x +0aa8: ee pop y +0aa9: 2f be bra $0a69 +0aab: fc inc y +0aac: f7 70 mov a,($70)+y +0aae: 2d push a +0aaf: fc inc y +0ab0: f7 70 mov a,($70)+y +0ab2: fd mov y,a +0ab3: ae pop a +0ab4: 2f b3 bra $0a69 +0ab6: e4 83 mov a,$83 +0ab8: 8d 5c mov y,#$5c +0aba: 2d push a +0abb: e4 83 mov a,$83 +0abd: 24 80 and a,$80 +0abf: ae pop a +0ac0: d0 06 bne $0ac8 +0ac2: cc f2 00 mov $00f2,y +0ac5: c5 f3 00 mov $00f3,a +0ac8: f2 7c clr7 $7c +0aca: f4 30 mov a,$30+x +0acc: f0 13 beq $0ae1 +0ace: f4 31 mov a,$31+x +0ad0: f0 04 beq $0ad6 +0ad2: 9b 31 dec $31+x +0ad4: 2f 0b bra $0ae1 +0ad6: e2 7c set7 $7c +0ad8: e8 90 mov a,#$90 +0ada: 8d 02 mov y,#$02 +0adc: 9b 30 dec $30+x +0ade: 3f 33 0a call $0a33 +0ae1: 3f 4c 09 call $094c +0ae4: f4 41 mov a,$41+x +0ae6: f0 4c beq $0b34 +0ae8: f5 d0 02 mov a,$02d0+x +0aeb: de 40 44 cbne $40+x,$0b32 +0aee: f5 00 01 mov a,$0100+x +0af1: 75 d1 02 cmp a,$02d1+x +0af4: d0 05 bne $0afb +0af6: f5 e1 02 mov a,$02e1+x +0af9: 2f 0d bra $0b08 +0afb: 40 setp +0afc: bb 00 inc $00+x +0afe: 20 clrp +0aff: fd mov y,a +0b00: f0 02 beq $0b04 +0b02: f4 41 mov a,$41+x +0b04: 60 clrc +0b05: 95 e0 02 adc a,$02e0+x +0b08: d4 41 mov $41+x,a +0b0a: f5 c0 02 mov a,$02c0+x +0b0d: 60 clrc +0b0e: 95 c1 02 adc a,$02c1+x +0b11: d5 c0 02 mov $02c0+x,a +0b14: c4 7b mov $7b,a +0b16: 1c asl a +0b17: 1c asl a +0b18: 90 02 bcc $0b1c +0b1a: 48 ff eor a,#$ff +0b1c: fd mov y,a +0b1d: f4 41 mov a,$41+x +0b1f: 68 f1 cmp a,#$f1 +0b21: 90 05 bcc $0b28 +0b23: 28 0f and a,#$0f +0b25: cf mul ya +0b26: 2f 04 bra $0b2c +0b28: cf mul ya +0b29: dd mov a,y +0b2a: 8d 00 mov y,#$00 +0b2c: 3f a9 0b call $0ba9 +0b2f: 5f 7a 0e jmp $0e7a + +0b32: bb 40 inc $40+x +0b34: e3 7c f8 bbs7 $7c,$0b2f +0b37: 6f ret + +0b38: f2 7c clr7 $7c +0b3a: f4 51 mov a,$51+x +0b3c: f0 09 beq $0b47 +0b3e: f5 00 03 mov a,$0300+x +0b41: de 50 03 cbne $50+x,$0b47 +0b44: 3f 73 09 call $0973 +0b47: f5 41 02 mov a,$0241+x +0b4a: fd mov y,a +0b4b: f5 40 02 mov a,$0240+x +0b4e: da 79 movw $79,ya +0b50: f4 21 mov a,$21+x +0b52: f0 0a beq $0b5e +0b54: f5 51 02 mov a,$0251+x +0b57: fd mov y,a +0b58: f5 50 02 mov a,$0250+x +0b5b: 3f 93 0b call $0b93 +0b5e: f3 7c 03 bbc7 $7c,$0b64 +0b61: 3f f2 09 call $09f2 +0b64: f2 7c clr7 $7c +0b66: 3f 4c 09 call $094c +0b69: f4 30 mov a,$30+x +0b6b: f0 0e beq $0b7b +0b6d: f4 31 mov a,$31+x +0b6f: d0 0a bne $0b7b +0b71: f5 a1 02 mov a,$02a1+x +0b74: fd mov y,a +0b75: f5 a0 02 mov a,$02a0+x +0b78: 3f 93 0b call $0b93 +0b7b: f4 41 mov a,$41+x +0b7d: f0 b5 beq $0b34 +0b7f: f5 d0 02 mov a,$02d0+x +0b82: de 40 af cbne $40+x,$0b34 +0b85: eb 91 mov y,$91 +0b87: f5 c1 02 mov a,$02c1+x +0b8a: cf mul ya +0b8b: dd mov a,y +0b8c: 60 clrc +0b8d: 95 c0 02 adc a,$02c0+x +0b90: 5f 14 0b jmp $0b14 + +0b93: e2 7c set7 $7c +0b95: cb 7b mov $7b,y +0b97: 3f 69 09 call $0969 +0b9a: 6d push y +0b9b: eb 91 mov y,$91 +0b9d: cf mul ya +0b9e: cb 70 mov $70,y +0ba0: 8f 00 71 mov $71,#$00 +0ba3: eb 91 mov y,$91 +0ba5: ae pop a +0ba6: cf mul ya +0ba7: 7a 70 addw ya,$70 +0ba9: 3f 69 09 call $0969 +0bac: 7a 79 addw ya,$79 +0bae: da 79 movw $79,ya +0bb0: 6f ret + +; play song +0bb1: ba dc movw ya,$dc +0bb3: da ac movw $ac,ya +0bb5: da b0 movw $b0,ya +0bb7: 82 cf set4 $cf +0bb9: 02 cf set0 $cf +0bbb: e8 00 mov a,#$00 +0bbd: c4 de mov $de,a +0bbf: c4 d2 mov $d2,a +0bc1: e4 80 mov a,$80 +0bc3: 48 ff eor a,#$ff +0bc5: 0e 82 00 tset1 $0082 +0bc8: 6f ret + +; reset song params +0bc9: cd 0e mov x,#$0e +0bcb: 8f 80 83 mov $83,#$80 ; last voice +0bce: e8 ff mov a,#$ff +0bd0: d5 11 02 mov $0211+x,a ; voice volume = $ff +0bd3: e8 0a mov a,#$0a +0bd5: 3f d3 06 call $06d3 ; pan +0bd8: d5 11 03 mov $0311+x,a ; zero instrument +0bdb: d5 b1 02 mov $02b1+x,a +0bde: d5 50 03 mov $0350+x,a +0be1: d5 70 02 mov $0270+x,a +0be4: d4 41 mov $41+x,a +0be6: d4 51 mov $51+x,a +0be8: 1d dec x +0be9: 1d dec x +0bea: 4b 83 lsr $83 +0bec: d0 e0 bne $0bce ; loop for each voice +0bee: c4 a7 mov $a7,a +0bf0: c4 94 mov $94,a +0bf2: c4 8b mov $8b,a +0bf4: c4 b2 mov $b2,a +0bf6: 8f 0b 8c mov $8c,#$0b +0bf9: 8f 20 93 mov $93,#$20 ; tempo +0bfc: 6f ret + +0bfd: 3f 7b 0c call $0c7b ; get next block +0c00: ad 00 cmp y,#$00 ; is it 0? +0c02: d0 14 bne $0c18 +0c04: fd mov y,a +0c05: f0 ba beq $0bc1 +; set/dec repeat count +0c07: 8b b2 dec $b2 +0c09: 10 02 bpl $0c0d +0c0b: c4 b2 mov $b2,a +0c0d: 3f 7b 0c call $0c7b +0c10: f8 b2 mov x,$b2 +0c12: f0 e9 beq $0bfd +0c14: da b0 movw $b0,ya +0c16: 2f e5 bra $0bfd +0c18: da 72 movw $72,ya +0c1a: 8d 0f mov y,#$0f +0c1c: 8f 80 d7 mov $d7,#$80 +0c1f: 6d push y +0c20: f7 72 mov a,($72)+y +0c22: dc dec y +0c23: 2d push a +0c24: f7 72 mov a,($72)+y +0c26: ee pop y +0c27: ad 00 cmp y,#$00 +0c29: d0 04 bne $0c2f +0c2b: 68 00 cmp a,#$00 +0c2d: f0 02 beq $0c31 +0c2f: 7a ac addw ya,$ac +0c31: da ae movw $ae,ya +0c33: ee pop y +0c34: e4 d7 mov a,$d7 +0c36: 24 d2 and a,$d2 +0c38: d0 12 bne $0c4c +0c3a: e4 af mov a,$af +0c3c: d6 00 00 mov $0000+y,a +0c3f: dc dec y +0c40: e4 ae mov a,$ae +0c42: d6 00 00 mov $0000+y,a +0c45: 4b d7 lsr $d7 +0c47: dc dec y +0c48: 10 d5 bpl $0c1f +0c4a: 2f 06 bra $0c52 +0c4c: 4b d7 lsr $d7 +0c4e: dc dec y +0c4f: dc dec y +0c50: 10 cd bpl $0c1f +0c52: cd 00 mov x,#$00 +0c54: 8f 01 83 mov $83,#$01 +0c57: e4 83 mov a,$83 +0c59: 24 d2 and a,$d2 +0c5b: d0 17 bne $0c74 +0c5d: f4 01 mov a,$01+x +0c5f: f0 08 beq $0c69 +0c61: f5 11 03 mov a,$0311+x +0c64: d0 03 bne $0c69 +0c66: 3f 0b 0f call $0f0b +0c69: e8 00 mov a,#$00 +0c6b: d4 60 mov $60+x,a +0c6d: d4 20 mov $20+x,a +0c6f: d4 21 mov $21+x,a +0c71: bc inc a +0c72: d4 10 mov $10+x,a +0c74: 3d inc x +0c75: 3d inc x +0c76: 0b 83 asl $83 +0c78: d0 dd bne $0c57 +0c7a: 6f ret + +0c7b: 8d 00 mov y,#$00 +0c7d: f7 b0 mov a,($b0)+y +0c7f: 3a b0 incw $b0 +0c81: 2d push a +0c82: f7 b0 mov a,($b0)+y +0c84: 3a b0 incw $b0 +0c86: fd mov y,a +0c87: 60 clrc +0c88: 1c asl a +0c89: b0 04 bcs $0c8f +0c8b: ae pop a +0c8c: 7a ac addw ya,$ac +0c8e: 6f ret + +0c8f: 8d 00 mov y,#$00 +0c91: ae pop a +0c92: 6f ret + +0c93: 3f a2 0d call $0da2 +0c96: cd 00 mov x,#$00 +0c98: 8f 01 83 mov $83,#$01 +0c9b: e4 83 mov a,$83 +0c9d: 24 de and a,$de +0c9f: d0 0d bne $0cae +0ca1: e4 83 mov a,$83 +0ca3: 24 d2 and a,$d2 +0ca5: f0 07 beq $0cae +0ca7: f4 01 mov a,$01+x +0ca9: f0 03 beq $0cae +0cab: 3f 38 0b call $0b38 +0cae: 8f 00 de mov $de,#$00 +0cb1: 3d inc x +0cb2: 3d inc x +0cb3: 0b 83 asl $83 +0cb5: d0 e4 bne $0c9b +0cb7: 3f bd 0d call $0dbd +0cba: e4 c1 mov a,$c1 +0cbc: ec 6b 03 mov y,$036b +0cbf: cf mul ya +0cc0: 60 clrc +0cc1: 84 bf adc a,$bf +0cc3: c4 bf mov $bf,a +0cc5: 90 02 bcc $0cc9 +0cc7: 2f 01 bra $0cca +0cc9: 6f ret + +0cca: 3f a2 0d call $0da2 +0ccd: cd 00 mov x,#$00 +0ccf: d8 9e mov $9e,x +0cd1: 8f 01 83 mov $83,#$01 +0cd4: e4 83 mov a,$83 +0cd6: 24 d2 and a,$d2 +0cd8: f0 25 beq $0cff +0cda: d8 76 mov $76,x +0cdc: 9b 10 dec $10+x +0cde: d0 22 bne $0d02 +0ce0: e7 00 mov a,($00+x) +0ce2: bb 00 inc $00+x +0ce4: d0 02 bne $0ce8 +0ce6: bb 01 inc $01+x +0ce8: fd mov y,a +0ce9: d0 1a bne $0d05 +0ceb: e4 83 mov a,$83 +0ced: 4e d2 00 tclr1 $00d2 +0cf0: 4e 85 00 tclr1 $0085 +0cf3: e8 00 mov a,#$00 +0cf5: d5 30 03 mov $0330+x,a +0cf8: d4 00 mov $00+x,a +0cfa: d5 31 03 mov $0331+x,a +0cfd: d4 01 mov $01+x,a +0cff: 5f 69 0d jmp $0d69 + +0d02: 5f 63 0d jmp $0d63 + +0d05: 30 2c bmi $0d33 +0d07: d5 00 02 mov $0200+x,a +0d0a: e7 00 mov a,($00+x) +0d0c: bb 00 inc $00+x +0d0e: d0 02 bne $0d12 +0d10: bb 01 inc $01+x +0d12: fd mov y,a +0d13: 30 1e bmi $0d33 +0d15: 2d push a +0d16: 9f xcn a +0d17: 28 07 and a,#$07 +0d19: fd mov y,a +0d1a: f6 a0 14 mov a,$14a0+y +0d1d: d5 01 02 mov $0201+x,a +0d20: ae pop a +0d21: 28 0f and a,#$0f +0d23: fd mov y,a +0d24: f6 a8 14 mov a,$14a8+y +0d27: d5 10 03 mov $0310+x,a +0d2a: e7 00 mov a,($00+x) +0d2c: bb 00 inc $00+x +0d2e: d0 02 bne $0d32 +0d30: bb 01 inc $01+x +0d32: fd mov y,a +0d33: 68 e0 cmp a,#$e0 +0d35: f0 08 beq $0d3f +0d37: 68 df cmp a,#$df +0d39: f0 09 beq $0d44 +0d3b: 90 11 bcc $0d4e +0d3d: 2f 0a bra $0d49 +0d3f: 3f d8 0d call $0dd8 +0d42: 2f 9c bra $0ce0 +0d44: 3f f4 0d call $0df4 +0d47: 2f 97 bra $0ce0 +0d49: 3f bb 06 call $06bb +0d4c: 2f 92 bra $0ce0 +0d4e: 3f 0c 0e call $0e0c +0d51: f5 00 02 mov a,$0200+x +0d54: d4 10 mov $10+x,a +0d56: fd mov y,a +0d57: f5 01 02 mov a,$0201+x +0d5a: cf mul ya +0d5b: dd mov a,y +0d5c: d0 01 bne $0d5f +0d5e: bc inc a +0d5f: d4 11 mov $11+x,a +0d61: 2f 03 bra $0d66 +0d63: 3f 54 0a call $0a54 +0d66: 3f 02 09 call $0902 +0d69: 3d inc x +0d6a: 3d inc x +0d6b: 0b 83 asl $83 +0d6d: d0 02 bne $0d71 +0d6f: 2f 03 bra $0d74 +0d71: 5f d4 0c jmp $0cd4 + +0d74: e4 94 mov a,$94 +0d76: f0 0b beq $0d83 +0d78: ba 96 movw ya,$96 +0d7a: 7a 92 addw ya,$92 +0d7c: 6e 94 02 dbnz $94,$0d81 +0d7f: ba 94 movw ya,$94 +0d81: da 92 movw $92,ya +0d83: 8f ff 9e mov $9e,#$ff +0d86: cd 00 mov x,#$00 +0d88: 8f 01 83 mov $83,#$01 +0d8b: e4 83 mov a,$83 +0d8d: 24 d2 and a,$d2 +0d8f: f0 07 beq $0d98 +0d91: f4 01 mov a,$01+x +0d93: f0 03 beq $0d98 +0d95: 3f 9d 09 call $099d +0d98: 3d inc x +0d99: 3d inc x +0d9a: 0b 83 asl $83 +0d9c: d0 ed bne $0d8b +0d9e: 3f bd 0d call $0dbd +0da1: 6f ret + +0da2: 8d 00 mov y,#$00 +0da4: f6 90 00 mov a,$0090+y +0da7: d6 6d 03 mov $036d+y,a +0daa: fc inc y +0dab: ad 08 cmp y,#$08 +0dad: d0 f5 bne $0da4 +0daf: 8d 00 mov y,#$00 +0db1: f6 be 00 mov a,$00be+y +0db4: d6 90 00 mov $0090+y,a +0db7: fc inc y +0db8: ad 08 cmp y,#$08 +0dba: d0 f5 bne $0db1 +0dbc: 6f ret + +0dbd: 8d 00 mov y,#$00 +0dbf: f6 90 00 mov a,$0090+y +0dc2: d6 be 00 mov $00be+y,a +0dc5: fc inc y +0dc6: ad 08 cmp y,#$08 +0dc8: d0 f5 bne $0dbf +0dca: 8d 00 mov y,#$00 +0dcc: f6 6d 03 mov a,$036d+y +0dcf: d6 90 00 mov $0090+y,a +0dd2: fc inc y +0dd3: ad 08 cmp y,#$08 +0dd5: d0 f5 bne $0dcc +0dd7: 6f ret + +0dd8: e7 00 mov a,($00+x) +0dda: bb 00 inc $00+x +0ddc: d0 02 bne $0de0 +0dde: bb 01 inc $01+x +0de0: fd mov y,a +0de1: 8d 00 mov y,#$00 +0de3: 76 b8 14 cmp a,$14b8+y +0de6: f0 07 beq $0def +0de8: fc inc y +0de9: ad 1a cmp y,#$1a +0deb: d0 f6 bne $0de3 +0ded: 8d 0e mov y,#$0e +0def: dd mov a,y +0df0: 3f 0b 0f call $0f0b +0df3: 6f ret + +0df4: 3f 64 0f call $0f64 +0df7: 12 84 clr0 $84 +0df9: 32 84 clr1 $84 +0dfb: 52 84 clr2 $84 +0dfd: 72 84 clr3 $84 +0dff: 92 84 clr4 $84 +0e01: 04 84 or a,$84 +0e03: c4 84 mov $84,a +0e05: e4 83 mov a,$83 +0e07: 0e 85 00 tset1 $0085 +0e0a: 6f ret + +0e0b: 6f ret + +; handle a note vcmd (80-df) +0e0c: ad ca cmp y,#$ca +0e0e: 90 05 bcc $0e15 +; vcmds ca-df - percussion note +0e10: 3f 0b 0f call $0f0b +0e13: 8d a4 mov y,#$a4 +; vcmds 80-c7,c8,c9 - note/tie/rest +0e15: ad c8 cmp y,#$c8 +0e17: b0 f2 bcs $0e0b +0e19: e4 80 mov a,$80 +0e1b: 24 83 and a,$83 +0e1d: d0 ec bne $0e0b +; vcmds 80-c7 - note (note number in Y) +0e1f: dd mov a,y +0e20: 28 7f and a,#$7f +0e22: 60 clrc +0e23: 84 8b adc a,$8b +0e25: 60 clrc +0e26: 95 50 03 adc a,$0350+x +0e29: d5 91 02 mov $0291+x,a +0e2c: f5 b1 02 mov a,$02b1+x +0e2f: d5 90 02 mov $0290+x,a +0e32: f5 d1 02 mov a,$02d1+x +0e35: 5c lsr a +0e36: e8 00 mov a,#$00 +0e38: 7c ror a +0e39: d5 c0 02 mov $02c0+x,a +0e3c: e8 00 mov a,#$00 +0e3e: d5 40 00 mov $0040+x,a +0e41: d5 50 00 mov $0050+x,a +0e44: d5 00 01 mov $0100+x,a +0e47: d5 f0 02 mov $02f0+x,a +0e4a: 09 83 9e or ($9e),($83) +0e4d: 09 83 81 or ($81),($83) +0e50: f5 70 02 mov a,$0270+x +0e53: d5 30 00 mov $0030+x,a +0e56: f0 1f beq $0e77 +0e58: f5 71 02 mov a,$0271+x +0e5b: d5 31 00 mov $0031+x,a +0e5e: f5 80 02 mov a,$0280+x +0e61: d0 0a bne $0e6d +0e63: f5 91 02 mov a,$0291+x +0e66: 80 setc +0e67: b5 81 02 sbc a,$0281+x +0e6a: d5 91 02 mov $0291+x,a +0e6d: f5 81 02 mov a,$0281+x +0e70: 60 clrc +0e71: 95 91 02 adc a,$0291+x +0e74: 3f 34 09 call $0934 +0e77: 3f 4c 09 call $094c +0e7a: 8d 00 mov y,#$00 +0e7c: e4 7a mov a,$7a +0e7e: 80 setc +0e7f: a8 34 sbc a,#$34 +0e81: b0 09 bcs $0e8c +0e83: e4 7a mov a,$7a +0e85: 80 setc +0e86: a8 13 sbc a,#$13 +0e88: b0 06 bcs $0e90 +0e8a: dc dec y +0e8b: 1c asl a +0e8c: 7a 79 addw ya,$79 +0e8e: da 79 movw $79,ya +0e90: 4d push x +0e91: e4 7a mov a,$7a +0e93: 1c asl a +0e94: 8d 00 mov y,#$00 +0e96: cd 18 mov x,#$18 +0e98: 9e div ya,x +0e99: 5d mov x,a +0e9a: f6 3e 14 mov a,$143e+y +0e9d: c4 71 mov $71,a +0e9f: f6 3d 14 mov a,$143d+y +0ea2: c4 70 mov $70,a +0ea4: f6 40 14 mov a,$1440+y +0ea7: 2d push a +0ea8: f6 3f 14 mov a,$143f+y +0eab: ee pop y +0eac: 9a 70 subw ya,$70 +0eae: eb 79 mov y,$79 +0eb0: cf mul ya +0eb1: dd mov a,y +0eb2: 8d 00 mov y,#$00 +0eb4: 7a 70 addw ya,$70 +0eb6: cb 71 mov $71,y +0eb8: 1c asl a +0eb9: 2b 71 rol $71 +0ebb: c4 70 mov $70,a +0ebd: 2f 04 bra $0ec3 +0ebf: 4b 71 lsr $71 +0ec1: 7c ror a +0ec2: 3d inc x +0ec3: c8 06 cmp x,#$06 +0ec5: d0 f8 bne $0ebf +0ec7: c4 70 mov $70,a +0ec9: ce pop x +0eca: f5 20 03 mov a,$0320+x +0ecd: eb 71 mov y,$71 +0ecf: cf mul ya +0ed0: da 72 movw $72,ya +0ed2: f5 20 03 mov a,$0320+x +0ed5: eb 70 mov y,$70 +0ed7: cf mul ya +0ed8: 6d push y +0ed9: f5 21 03 mov a,$0321+x +0edc: eb 70 mov y,$70 +0ede: cf mul ya +0edf: 7a 72 addw ya,$72 +0ee1: da 72 movw $72,ya +0ee3: f5 21 03 mov a,$0321+x +0ee6: eb 71 mov y,$71 +0ee8: cf mul ya +0ee9: fd mov y,a +0eea: ae pop a +0eeb: 7a 72 addw ya,$72 +0eed: da 72 movw $72,ya +0eef: 7d mov a,x +0ef0: 9f xcn a +0ef1: 5c lsr a +0ef2: 08 02 or a,#$02 +0ef4: fd mov y,a +0ef5: e4 72 mov a,$72 +0ef7: 2d push a +0ef8: e4 83 mov a,$83 +0efa: 24 80 and a,$80 +0efc: ae pop a +0efd: d0 06 bne $0f05 +0eff: cc f2 00 mov $00f2,y +0f02: c5 f3 00 mov $00f3,a +0f05: fc inc y +0f06: e4 73 mov a,$73 +0f08: 5f 6e 0f jmp $0f6e + +; vcmd e0 - set instrument +0f0b: d5 11 03 mov $0311+x,a +0f0e: fd mov y,a +0f0f: 10 06 bpl $0f17 +0f11: 80 setc +0f12: a8 ca sbc a,#$ca +0f14: 60 clrc +0f15: 84 8c adc a,$8c +0f17: 8d 06 mov y,#$06 +0f19: cf mul ya +0f1a: da 70 movw $70,ya +0f1c: 60 clrc +0f1d: 98 00 70 adc $70,#$00 +0f20: 98 04 71 adc $71,#$04 +0f23: e4 80 mov a,$80 +0f25: 24 83 and a,$83 +0f27: d0 3a bne $0f63 +0f29: 4d push x +0f2a: 7d mov a,x +0f2b: 9f xcn a +0f2c: 5c lsr a +0f2d: 08 04 or a,#$04 +0f2f: 5d mov x,a +0f30: 8d 00 mov y,#$00 +0f32: f7 70 mov a,($70)+y +0f34: 10 0e bpl $0f44 +0f36: 28 1f and a,#$1f +0f38: 38 20 84 and $84,#$20 +0f3b: 0e 84 00 tset1 $0084 +0f3e: 09 83 85 or ($85),($83) +0f41: dd mov a,y +0f42: 2f 07 bra $0f4b +0f44: e4 83 mov a,$83 +0f46: 4e 85 00 tclr1 $0085 +0f49: f7 70 mov a,($70)+y +0f4b: c9 f2 00 mov $00f2,x +0f4e: c5 f3 00 mov $00f3,a +0f51: 3d inc x +0f52: fc inc y +0f53: ad 04 cmp y,#$04 +0f55: d0 f2 bne $0f49 +0f57: ce pop x +0f58: f7 70 mov a,($70)+y +0f5a: d5 21 03 mov $0321+x,a +0f5d: fc inc y +0f5e: f7 70 mov a,($70)+y +0f60: d5 20 03 mov $0320+x,a +0f63: 6f ret + +0f64: e7 00 mov a,($00+x) +0f66: bb 00 inc $00+x +0f68: d0 02 bne $0f6c +0f6a: bb 01 inc $01+x +0f6c: fd mov y,a +0f6d: 6f ret + +0f6e: 2d push a +0f6f: e4 83 mov a,$83 +0f71: 24 80 and a,$80 +0f73: ae pop a +0f74: d0 06 bne $0f7c +0f76: cc f2 00 mov $00f2,y +0f79: c5 f3 00 mov $00f3,a +0f7c: 6f ret + +0f7d: e8 00 mov a,#$00 +0f7f: c5 f7 00 mov $00f7,a +0f82: c5 f7 00 mov $00f7,a +0f85: e8 00 mov a,#$00 +0f87: 5d mov x,a +0f88: af mov (x)+,a +0f89: c8 e8 cmp x,#$e8 +0f8b: d0 fb bne $0f88 +0f8d: 2d push a +0f8e: 8d 02 mov y,#$02 +0f90: e8 00 mov a,#$00 +0f92: da ac movw $ac,ya +0f94: e8 00 mov a,#$00 +0f96: 8d 00 mov y,#$00 +0f98: d7 ac mov ($ac)+y,a +0f9a: 3a ac incw $ac +0f9c: 8d 03 mov y,#$03 +0f9e: e8 ff mov a,#$ff +0fa0: 5a ac cmpw ya,$ac +0fa2: d0 f0 bne $0f94 +0fa4: 8d 15 mov y,#$15 +0fa6: e8 00 mov a,#$00 +0fa8: da ac movw $ac,ya +0faa: e8 00 mov a,#$00 +0fac: 8d 00 mov y,#$00 +0fae: d7 ac mov ($ac)+y,a +0fb0: 3a ac incw $ac +0fb2: 8d d0 mov y,#$d0 +0fb4: e8 00 mov a,#$00 +0fb6: 5a ac cmpw ya,$ac +0fb8: d0 f0 bne $0faa +0fba: ae pop a +0fbb: bc inc a +0fbc: 3f b3 08 call $08b3 +0fbf: a2 84 set5 $84 +0fc1: e8 6e mov a,#$6e +0fc3: 8d 0c mov y,#$0c +0fc5: cc f2 00 mov $00f2,y +0fc8: c5 f3 00 mov $00f3,a +0fcb: 8d 1c mov y,#$1c +0fcd: cc f2 00 mov $00f2,y +0fd0: c5 f3 00 mov $00f3,a +0fd3: e8 00 mov a,#$00 +0fd5: e8 15 mov a,#$15 +0fd7: 8d 5d mov y,#$5d +0fd9: cc f2 00 mov $00f2,y +0fdc: c5 f3 00 mov $00f3,a +0fdf: e8 00 mov a,#$00 +0fe1: c5 ba 00 mov $00ba,a +0fe4: c5 b6 00 mov $00b6,a +0fe7: e8 15 mov a,#$15 +0fe9: c5 bb 00 mov $00bb,a +0fec: e8 30 mov a,#$30 +0fee: c5 b7 00 mov $00b7,a +0ff1: e8 f4 mov a,#$f4 +0ff3: 8d 19 mov y,#$19 +0ff5: da dc movw $dc,ya +0ff7: e8 f4 mov a,#$f4 +0ff9: 8d 1f mov y,#$1f +0ffb: da c9 movw $c9,ya +0ffd: e8 f4 mov a,#$f4 +0fff: 8d 65 mov y,#$65 +1001: da cb movw $cb,ya +1003: da d8 movw $d8,ya +1005: e8 f4 mov a,#$f4 +1007: 8d b7 mov y,#$b7 +1009: da cd movw $cd,ya +100b: da da movw $da,ya +100d: e8 f0 mov a,#$f0 +100f: c5 f1 00 mov $00f1,a +1012: e8 10 mov a,#$10 +1014: c5 fa 00 mov $00fa,a +1017: c5 fb 00 mov $00fb,a +101a: c4 93 mov $93,a +101c: c4 c1 mov $c1,a +101e: e8 03 mov a,#$03 +1020: c5 f1 00 mov $00f1,a +1023: 38 00 cf and $cf,#$00 +1026: e8 0b mov a,#$0b +1028: c5 77 03 mov $0377,a +102b: e8 00 mov a,#$00 +102d: c5 78 03 mov $0378,a +1030: e8 15 mov a,#$15 +1032: c5 79 03 mov $0379,a +1035: 8f 25 c1 mov $c1,#$25 +1038: 8f e0 99 mov $99,#$e0 +103b: 6f ret + +103c: 03 d0 02 bbs0 $d0,$1041 +103f: 2f 0a bra $104b +1041: ae pop a +1042: ae pop a +1043: 5f 3c 12 jmp $123c + +1046: ae pop a +1047: ae pop a +1048: 5f 96 13 jmp $1396 + +104b: 3f 1a 13 call $131a +104e: 1c asl a +104f: 5d mov x,a +1050: 1f 53 10 jmp ($1053+x) + +1051: dw $1053 + +1053: dw $1330 +1055: dw $106d +1057: dw $1089 +1059: dw $109e +105b: dw $10b3 +105d: dw $10f6 +105f: dw $1112 +1061: dw $1130 +1063: dw $1152 +1065: dw $1177 +1067: dw $11a5 +1069: dw $121f +106b: dw $122d + +106d: 3f 71 13 call $1371 +1070: 8d 16 mov y,#$16 +1072: e8 00 mov a,#$00 +1074: da c7 movw $c7,ya +1076: da b3 movw $b3,ya +1078: ec 65 03 mov y,$0365 +107b: e5 64 03 mov a,$0364 +107e: da aa movw $aa,ya +1080: e8 00 mov a,#$00 +1082: c5 62 03 mov $0362,a +1085: 3f 3c 12 call $123c +1088: 6f ret + +1089: ba c9 movw ya,$c9 +108b: da b6 movw $b6,ya +108d: e5 77 03 mov a,$0377 +1090: c5 7a 03 mov $037a,a +1093: 3f 86 12 call $1286 +1096: ac 77 03 inc $0377 +1099: ba b3 movw ya,$b3 +109b: da c9 movw $c9,ya +109d: 6f ret + +109e: ba cb movw ya,$cb +10a0: da b6 movw $b6,ya +10a2: e5 78 03 mov a,$0378 +10a5: c5 7a 03 mov $037a,a +10a8: 3f 86 12 call $1286 +10ab: ac 78 03 inc $0378 +10ae: ba b3 movw ya,$b3 +10b0: da cb movw $cb,ya +10b2: 6f ret + +10b3: 3f 89 13 call $1389 +10b6: e5 64 03 mov a,$0364 +10b9: c5 78 03 mov $0378,a +10bc: c5 7a 03 mov $037a,a +10bf: fd mov y,a +10c0: e8 00 mov a,#$00 +10c2: d6 b8 14 mov $14b8+y,a +10c5: fc inc y +10c6: ad 0b cmp y,#$0b +10c8: d0 f8 bne $10c2 +10ca: e5 78 03 mov a,$0378 +10cd: 68 00 cmp a,#$00 +10cf: f0 20 beq $10f1 +10d1: ac 7a 03 inc $037a +10d4: ec 7a 03 mov y,$037a +10d7: e8 04 mov a,#$04 +10d9: cf mul ya +10da: 60 clrc +10db: a8 03 sbc a,#$03 +10dd: 7a ba addw ya,$ba +10df: c5 b8 00 mov $00b8,a +10e2: cc b9 00 mov $00b9,y +10e5: 8d 00 mov y,#$00 +10e7: f7 b8 mov a,($b8)+y +10e9: c4 cb mov $cb,a +10eb: fc inc y +10ec: f7 b8 mov a,($b8)+y +10ee: c4 cc mov $cc,a +10f0: 6f ret + +10f1: ba d8 movw ya,$d8 +10f3: da cb movw $cb,ya +10f5: 6f ret + +10f6: 3f 71 13 call $1371 +10f9: ba dc movw ya,$dc +10fb: da ac movw $ac,ya +10fd: da b0 movw $b0,ya +10ff: da b3 movw $b3,ya +1101: ec 65 03 mov y,$0365 +1104: e5 64 03 mov a,$0364 +1107: da aa movw $aa,ya +1109: e8 00 mov a,#$00 +110b: c5 62 03 mov $0362,a +110e: 3f 3c 12 call $123c +1111: 6f ret + +1112: ba cd movw ya,$cd +1114: da b6 movw $b6,ya +1116: e5 79 03 mov a,$0379 +1119: c5 7a 03 mov $037a,a +111c: 3f 86 12 call $1286 +111f: ac 79 03 inc $0379 +1122: e5 79 03 mov a,$0379 +1125: 68 19 cmp a,#$19 +1127: d0 02 bne $112b +1129: 42 cf set2 $cf +112b: ba b3 movw ya,$b3 +112d: da cd movw $cd,ya +112f: 6f ret + +1130: 52 cf clr2 $cf +1132: e8 15 mov a,#$15 +1134: c5 79 03 mov $0379,a +1137: e8 00 mov a,#$00 +1139: 8d 15 mov y,#$15 +113b: d6 b8 14 mov $14b8+y,a +113e: 8d 16 mov y,#$16 +1140: d6 b8 14 mov $14b8+y,a +1143: 8d 17 mov y,#$17 +1145: d6 b8 14 mov $14b8+y,a +1148: 8d 18 mov y,#$18 +114a: d6 b8 14 mov $14b8+y,a +114d: ba da movw ya,$da +114f: da cd movw $cd,ya +1151: 6f ret + +1152: 3f 79 13 call $1379 +1155: e5 64 03 mov a,$0364 +1158: d0 09 bne $1163 +115a: 8f e0 99 mov $99,#$e0 +115d: 8f 00 9a mov $9a,#$00 +1160: 5f b1 0b jmp $0bb1 + +1163: b2 cf clr5 $cf +1165: 8f 00 99 mov $99,#$00 +1168: e5 65 03 mov a,$0365 +116b: c4 9a mov $9a,a +116d: e8 e0 mov a,#$e0 +116f: c4 9b mov $9b,a +1171: 3f 57 07 call $0757 +1174: 5f b1 0b jmp $0bb1 +1177: 3f 79 13 call $1379 +117a: e5 64 03 mov a,$0364 +117d: d0 07 bne $1186 +117f: 12 cf clr0 $cf +1181: 62 cf set3 $cf +1183: 5f c1 0b jmp $0bc1 + +1186: e5 65 03 mov a,$0365 +1189: c4 9a mov $9a,a +118b: e8 00 mov a,#$00 +118d: c4 9b mov $9b,a +118f: 3f 57 07 call $0757 +1192: a2 cf set5 $cf +1194: 6f ret + +1195: db $01,$02,$04,$08,$10,$20,$40,$80 + +119d: db $00,$02,$04,$06,$08,$0A,$0C,$0E + +11a5: 3f 89 13 call $1389 +11a8: e9 65 03 mov x,$0365 +11ab: f5 95 11 mov a,$1195+x +11ae: 2d push a +11af: e9 65 03 mov x,$0365 +11b2: f5 9d 11 mov a,$119d+x +11b5: 5d mov x,a +11b6: e8 00 mov a,#$00 +11b8: d5 11 02 mov $0211+x,a +11bb: d5 11 03 mov $0311+x,a +11be: d5 b1 02 mov $02b1+x,a +11c1: d5 50 03 mov $0350+x,a +11c4: d5 70 02 mov $0270+x,a +11c7: d4 41 mov $41+x,a +11c9: d4 51 mov $51+x,a +11cb: d5 91 02 mov $0291+x,a +11ce: d5 90 02 mov $0290+x,a +11d1: ae pop a +11d2: 0e 82 00 tset1 $0082 +11d5: 4e 81 00 tclr1 $0081 +11d8: 4e 85 00 tclr1 $0085 +11db: c4 de mov $de,a +11dd: 04 d2 or a,$d2 +11df: c4 d2 mov $d2,a +11e1: ba c7 movw ya,$c7 +11e3: da d3 movw $d3,ya +11e5: e5 64 03 mov a,$0364 +11e8: 8d 02 mov y,#$02 +11ea: cf mul ya +11eb: 7a d3 addw ya,$d3 +11ed: da d3 movw $d3,ya +11ef: 8d 00 mov y,#$00 +11f1: f7 d3 mov a,($d3)+y +11f3: 2d push a +11f4: 3a d3 incw $d3 +11f6: f7 d3 mov a,($d3)+y +11f8: 2d push a +11f9: e9 65 03 mov x,$0365 +11fc: f5 9d 11 mov a,$119d+x +11ff: 5d mov x,a +1200: ae pop a +1201: d4 01 mov $01+x,a +1203: ae pop a +1204: d4 00 mov $00+x,a +1206: e8 00 mov a,#$00 +1208: d4 60 mov $60+x,a +120a: d4 20 mov $20+x,a +120c: d4 21 mov $21+x,a +120e: bc inc a +120f: d4 10 mov $10+x,a +1211: e9 65 03 mov x,$0365 +1214: f5 9d 11 mov a,$119d+x +1217: 5d mov x,a +1218: e5 66 03 mov a,$0366 +121b: 3f d3 06 call $06d3 +121e: 6f ret + +121f: 3f 58 13 call $1358 +1222: e5 64 03 mov a,$0364 +1225: d0 03 bne $122a +1227: d2 cf clr6 $cf +1229: 6f ret + +122a: c2 cf set6 $cf +122c: 6f ret + +122d: e3 cf 07 bbs7 $cf,$1237 +1230: 12 cf clr0 $cf +1232: e2 cf set7 $cf +1234: 5f c1 0b jmp $0bc1 +1237: 02 cf set0 $cf +1239: f2 cf clr7 $cf +123b: 6f ret + +123c: e8 0c mov a,#$0c +123e: c5 62 03 mov $0362,a +1241: 8d 00 mov y,#$00 +1243: e8 01 mov a,#$01 +1245: c5 f7 00 mov $00f7,a +1248: e5 f7 00 mov a,$00f7 +124b: 68 02 cmp a,#$02 +124d: d0 f9 bne $1248 +124f: e4 f4 mov a,$f4 +1251: d7 b3 mov ($b3)+y,a +1253: 3a b3 incw $b3 +1255: e4 f5 mov a,$f5 +1257: d7 b3 mov ($b3)+y,a +1259: 3a b3 incw $b3 +125b: e4 f6 mov a,$f6 +125d: d7 b3 mov ($b3)+y,a +125f: 3a b3 incw $b3 +1261: e8 00 mov a,#$00 +1263: c5 f7 00 mov $00f7,a +1266: e5 f7 00 mov a,$00f7 +1269: 68 02 cmp a,#$02 +126b: f0 f9 beq $1266 +126d: 1a aa decw $aa +126f: f0 12 beq $1283 +1271: 03 cf 02 bbs0 $cf,$1276 +1274: 2f c6 bra $123c +1276: 8c 62 03 dec $0362 +1279: d0 05 bne $1280 +127b: 02 d0 set0 $d0 +127d: 5f a1 05 jmp $05a1 + +1280: 5f 43 12 jmp $1243 +1283: 12 d0 clr0 $d0 +1285: 6f ret + +1286: 3f 81 13 call $1381 +1289: e5 64 03 mov a,$0364 +128c: ec 7a 03 mov y,$037a +128f: d6 b8 14 mov $14b8+y,a +1292: e8 06 mov a,#$06 +1294: ec 7a 03 mov y,$037a +1297: cf mul ya +1298: fd mov y,a +1299: e5 7a 03 mov a,$037a +129c: d6 00 04 mov $0400+y,a +129f: ac 7a 03 inc $037a +12a2: fc inc y +12a3: cc b5 00 mov $00b5,y +12a6: ec 7a 03 mov y,$037a +12a9: e8 04 mov a,#$04 +12ab: cf mul ya +12ac: 60 clrc +12ad: a8 03 sbc a,#$03 +12af: 7a ba addw ya,$ba +12b1: c5 b8 00 mov $00b8,a +12b4: cc b9 00 mov $00b9,y +12b7: e5 65 03 mov a,$0365 +12ba: ec 66 03 mov y,$0366 +12bd: 7a b6 addw ya,$b6 +12bf: da bc movw $bc,ya +12c1: 8d 00 mov y,#$00 +12c3: e4 b6 mov a,$b6 +12c5: d7 b8 mov ($b8)+y,a +12c7: fc inc y +12c8: e4 b7 mov a,$b7 +12ca: d7 b8 mov ($b8)+y,a +12cc: fc inc y +12cd: e4 bc mov a,$bc +12cf: d7 b8 mov ($b8)+y,a +12d1: fc inc y +12d2: e4 bd mov a,$bd +12d4: d7 b8 mov ($b8)+y,a +12d6: 3f 81 13 call $1381 +12d9: ec b5 00 mov y,$00b5 +12dc: e5 64 03 mov a,$0364 +12df: d6 00 04 mov $0400+y,a +12e2: fc inc y +12e3: e5 65 03 mov a,$0365 +12e6: d6 00 04 mov $0400+y,a +12e9: fc inc y +12ea: e5 66 03 mov a,$0366 +12ed: d6 00 04 mov $0400+y,a +12f0: fc inc y +12f1: cc b5 00 mov $00b5,y +12f4: 3f 71 13 call $1371 +12f7: ec b5 00 mov y,$00b5 +12fa: e5 64 03 mov a,$0364 +12fd: d6 00 04 mov $0400+y,a +1300: fc inc y +1301: e5 65 03 mov a,$0365 +1304: d6 00 04 mov $0400+y,a +1307: 3f 71 13 call $1371 +130a: ec 65 03 mov y,$0365 +130d: e5 64 03 mov a,$0364 +1310: da aa movw $aa,ya +1312: ba b6 movw ya,$b6 +1314: da b3 movw $b3,ya +1316: 3f 3c 12 call $123c +1319: 6f ret + +131a: e4 cf mov a,$cf +131c: c5 f4 00 mov $00f4,a +131f: e8 01 mov a,#$01 +1321: c5 f7 00 mov $00f7,a +1324: e5 f7 00 mov a,$00f7 +1327: 65 f7 00 cmp a,$00f7 +132a: d0 f8 bne $1324 +132c: 28 02 and a,#$02 +132e: d0 01 bne $1331 +1330: 6f ret + +1331: e8 00 mov a,#$00 +1333: c5 f7 00 mov $00f7,a +1336: 2f 2b bra $1363 +1338: e5 f4 00 mov a,$00f4 +133b: ec f5 00 mov y,$00f5 +133e: c5 64 03 mov $0364,a +1341: cc 65 03 mov $0365,y +1344: 6f ret + +1345: ec f4 00 mov y,$00f4 +1348: e5 f5 00 mov a,$00f5 +134b: e9 f6 00 mov x,$00f6 +134e: cc 64 03 mov $0364,y +1351: c5 65 03 mov $0365,a +1354: c9 66 03 mov $0366,x +1357: 6f ret + +1358: 3f a5 13 call $13a5 +135b: e5 f4 00 mov a,$00f4 +135e: c5 64 03 mov $0364,a +1361: 2f 5b bra $13be +1363: e5 f4 00 mov a,$00f4 +1366: 65 f4 00 cmp a,$00f4 +1369: d0 f8 bne $1363 +136b: c5 64 03 mov $0364,a +136e: 5f c8 13 jmp $13c8 + +1371: 3f a5 13 call $13a5 +1374: 3f 38 13 call $1338 +1377: 2f 4f bra $13c8 +1379: 3f 91 13 call $1391 +137c: 3f 38 13 call $1338 +137f: 2f 3d bra $13be +1381: 3f a5 13 call $13a5 +1384: 3f 45 13 call $1345 +1387: 2f 3f bra $13c8 +1389: 3f a5 13 call $13a5 +138c: 3f 45 13 call $1345 +138f: 2f 2d bra $13be +1391: e8 01 mov a,#$01 +1393: c5 f7 00 mov $00f7,a +1396: e5 f7 00 mov a,$00f7 +1399: 68 02 cmp a,#$02 +139b: d0 f9 bne $1396 +139d: e5 f7 00 mov a,$00f7 +13a0: 68 02 cmp a,#$02 +13a2: d0 f2 bne $1396 +13a4: 6f ret + +13a5: e8 01 mov a,#$01 +13a7: c5 f7 00 mov $00f7,a +13aa: e5 f7 00 mov a,$00f7 +13ad: 68 02 cmp a,#$02 +13af: d0 f9 bne $13aa +13b1: e5 f7 00 mov a,$00f7 +13b4: 68 02 cmp a,#$02 +13b6: d0 f2 bne $13aa +13b8: e8 00 mov a,#$00 +13ba: c5 f7 00 mov $00f7,a +13bd: 6f ret + +13be: 6d push y +13bf: 8d 08 mov y,#$08 +13c1: cc f7 00 mov $00f7,y +13c4: ee pop y +13c5: 2d push a +13c6: 2f 08 bra $13d0 +13c8: 6d push y +13c9: 8d 04 mov y,#$04 +13cb: cc f7 00 mov $00f7,y +13ce: ee pop y +13cf: 2d push a +13d0: e5 f7 00 mov a,$00f7 +13d3: 28 02 and a,#$02 +13d5: d0 f9 bne $13d0 +13d7: e5 f7 00 mov a,$00f7 +13da: 28 02 and a,#$02 +13dc: d0 f2 bne $13d0 +13de: ae pop a +13df: 6f ret + +; vcmd dispatch table +13e0: dw $0f0b ; e0 - set instrument +13e2: dw $06d3 ; e1 - pan +13e4: dw $06e6 ; e2 - pan fade +13e6: dw $0712 ; e3 - vibrato on +13e8: dw $072a ; e4 - vibrato off +13ea: dw $0745 ; e5 - master volume +13ec: dw $074a ; e6 - master volume fade +13ee: dw $0762 ; e7 - tempo +13f0: dw $0767 ; e8 - tempo fade +13f2: dw $077f ; e9 - global transpose +13f4: dw $0782 ; ea - per-voice transpose +13f6: dw $0786 ; eb - tremolo on +13f8: dw $079e ; ec - tremolo off +13fa: dw $07cb ; ed - volume +13fc: dw $07d4 ; ee - volume fade +13fe: dw $07f7 ; ef - call subroutine +1400: dw $0735 ; f0 - vibrato fade +1402: dw $07a1 ; f1 - pitch envelope (release) +1404: dw $07a5 ; f2 - pitch envelope (attack) +1406: dw $07c7 ; f3 - pitch envelope off +1408: dw $07f3 ; f4 - tuning +140a: dw $082b ; f5 - echo vbits/volume +140c: dw $087e ; f6 - disable echo +140e: dw $0885 ; f7 - set echo params +1410: dw $084a ; f8 - echo volume slide +1412: dw $0918 ; f9 - pitch slide +1414: dw $08ff ; fa - set perc patch base + +; vcmd lengths +1416: db $00,$00,$00,$00,$00,$00,$00,$00 ; d8-df? +141e: db $01,$01,$02,$03,$00,$01,$02,$01 ; e0-e7 +1426: db $02,$01,$01,$03,$00,$01,$02,$03 ; e8-ef +142e: db $01,$03,$03,$00,$01,$03,$00,$03 ; f0-f7 +1436: db $03,$03,$01,$02,$00,$00,$00 ; f8-fe + +; pitch table +143d: dw $085f +143f: dw $08de +1441: dw $0965 +1443: dw $09f4 +1445: dw $0a8c +1447: dw $0b2c +1449: dw $0bd6 +144b: dw $0c8b +144d: dw $0d4a +144f: dw $0e14 +1451: dw $0eea +1453: dw $0fcd +1455: dw $10be + +; pan table +1457: db $00,$01,$03,$07,$0d,$15,$1e,$29 +145f: db $34,$42,$51,$5e,$67,$6e,$73,$77 +1467: db $7a,$7c,$7d,$7e,$7f + +; echo FIR presets +146c: db $7f,$00,$00,$00,$00,$00,$00,$00 ; 00 +1474: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c ; 01 +146c: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 ; 02 +1474: db $34,$33,$00,$d9,$e5,$01,$fc,$eb ; 03 + +; EVOL(L),EVOL(R),EFB,EON,FLG,KOL,KOF,NON,PMON,KOF +; dsp shadow addrs for dsp regs +148c: db $2c,$3c,$0d,$4d,$6c,$4c,$5c,$3d,$2d,$5c +1496: db $a0,$a2,$8a,$86,$84,$81,$df,$85,$87,$82 + +; note dur%'s +14a0: db $32,$b2,$bf,$cb,$d8,$e5,$f2,$fc +; per-note velocity values +14a8: db $19,$32,$4c,$65,$72,$7f,$8c,$98 +14b0: db $a5,$b2,$bf,$cb,$d8,$e5,$f2,$fc + + +14b8: db $05,$01,$07,$06,$05 diff --git a/snes/NSPC/Kazuo Sawa/Taito/Sonic Blast Man ($0800).bin b/snes/NSPC/Kazuo Sawa/Taito/Sonic Blast Man ($0800).bin new file mode 100644 index 00000000..589cf04b Binary files /dev/null and b/snes/NSPC/Kazuo Sawa/Taito/Sonic Blast Man ($0800).bin differ diff --git a/snes/NSPC/Kazuo Sawa/Taito/Sonic Blast Man.s b/snes/NSPC/Kazuo Sawa/Taito/Sonic Blast Man.s new file mode 100644 index 00000000..11d78796 --- /dev/null +++ b/snes/NSPC/Kazuo Sawa/Taito/Sonic Blast Man.s @@ -0,0 +1,1877 @@ +0800: 20 clrp +0801: cd cf mov x,#$cf +0803: bd mov sp,x +0804: 3f 24 12 call $1224 +0807: 3f db 09 call $09db +080a: e4 1b mov a,$1b +080c: d0 63 bne $0871 +080e: 8d 0a mov y,#$0a +0810: ad 05 cmp y,#$05 +0812: f0 07 beq $081b +0814: b0 08 bcs $081e +0816: 69 4d 4c cmp ($4c),($4d) +0819: d0 11 bne $082c +081b: e3 4c 0e bbs7 $4c,$082c +081e: f6 97 17 mov a,$1797+y +0821: c5 f2 00 mov $00f2,a +0824: f6 a1 17 mov a,$17a1+y +0827: 5d mov x,a +0828: e6 mov a,(x) +0829: c5 f3 00 mov $00f3,a +082c: fe e2 dbnz y,$0810 +082e: cb 45 mov $45,y +0830: cb 46 mov $46,y +0832: d2 48 clr6 $48 +0834: ec fd 00 mov y,$00fd +0837: f0 fb beq $0834 +0839: e8 00 mov a,#$00 +083b: c4 1d mov $1d,a +083d: c4 5e mov $5e,a +083f: c4 1e mov $1e,a +0841: e4 1c mov a,$1c +0843: f0 0c beq $0851 +0845: 6d push y +0846: c4 1f mov $1f,a +0848: 3f 1c 09 call $091c +084b: ee pop y +084c: e4 1c mov a,$1c +084e: c5 f7 00 mov $00f7,a +0851: 6d push y +0852: e8 20 mov a,#$20 +0854: cf mul ya +0855: 60 clrc +0856: 84 43 adc a,$43 +0858: c4 43 mov $43,a +085a: 90 07 bcc $0863 +085c: 69 4d 4c cmp ($4c),($4d) +085f: f0 02 beq $0863 +0861: ab 4c inc $4c +0863: 3f 64 09 call $0964 +0866: e4 53 mov a,$53 +0868: ee pop y +0869: cf mul ya +086a: 60 clrc +086b: 84 51 adc a,$51 +086d: c4 51 mov $51,a +086f: 90 0d bcc $087e +0871: 3f 69 0b call $0b69 +0874: fa 1a 1f mov ($1f),($1a) +0877: 3f a3 08 call $08a3 +087a: e4 21 mov a,$21 +087c: d0 1f bne $089d +087e: e4 1a mov a,$1a +0880: 04 1c or a,$1c +0882: f0 16 beq $089a +0884: c4 1f mov $1f,a +0886: cd 00 mov x,#$00 +0888: e8 01 mov a,#$01 +088a: c4 47 mov $47,a +088c: 24 1f and a,$1f +088e: f0 03 beq $0893 +0890: 3f 70 0c call $0c70 +0893: 3d inc x +0894: 3d inc x +0895: e4 47 mov a,$47 +0897: 1c asl a +0898: d0 f0 bne $088a +089a: 5f 0a 08 jmp $080a + +089d: 3f 33 0a call $0a33 +08a0: 5f 0a 08 jmp $080a + +08a3: 8d 00 mov y,#$00 +08a5: cb 21 mov $21,y +08a7: cd 00 mov x,#$00 +08a9: e8 01 mov a,#$01 +08ab: 8f 00 23 mov $23,#$00 +08ae: d8 44 mov $44,x +08b0: c4 47 mov $47,a +08b2: 24 1f and a,$1f +08b4: f0 21 beq $08d7 +08b6: 9b 70 dec $70+x +08b8: f0 11 beq $08cb +08ba: e4 1b mov a,$1b +08bc: d0 19 bne $08d7 +08be: f4 71 mov a,$71+x +08c0: f0 0f beq $08d1 +08c2: 9b 71 dec $71+x +08c4: d0 0b bne $08d1 +08c6: 3f a4 0b call $0ba4 +08c9: 2f 06 bra $08d1 +08cb: 3f a8 0a call $0aa8 +08ce: 3f 14 0b call $0b14 +08d1: 3f 09 0c call $0c09 +08d4: 3f 4b 0d call $0d4b +08d7: 3d inc x +08d8: 3d inc x +08d9: e4 47 mov a,$47 +08db: 1c asl a +08dc: f0 3a beq $0918 +08de: 2d push a +08df: 24 1c and a,$1c +08e1: 24 1a and a,$1a +08e3: ae pop a +08e4: f0 c5 beq $08ab +08e6: 8f 01 23 mov $23,#$01 +08e9: d8 44 mov $44,x +08eb: c4 47 mov $47,a +08ed: 3f 29 15 call $1529 +08f0: 3f 5b 14 call $145b +08f3: 9b 70 dec $70+x +08f5: f0 0d beq $0904 +08f7: f4 71 mov a,$71+x +08f9: f0 0f beq $090a +08fb: 9b 71 dec $71+x +08fd: d0 0b bne $090a +08ff: 3f a4 0b call $0ba4 +0902: 2f 06 bra $090a +0904: 3f a8 0a call $0aa8 +0907: 3f 14 0b call $0b14 +090a: 3f 09 0c call $0c09 +090d: 3f 4b 0d call $0d4b +0910: 3f 8d 13 call $138d +0913: 3f f7 15 call $15f7 +0916: 2f bf bra $08d7 +0918: 8f 00 23 mov $23,#$00 +091b: 6f ret + +091c: 8d 00 mov y,#$00 +091e: cb 21 mov $21,y +0920: 8f 00 23 mov $23,#$00 +0923: cd 0c mov x,#$0c +0925: e8 40 mov a,#$40 +0927: d8 44 mov $44,x +0929: c4 47 mov $47,a +092b: 24 1f and a,$1f +092d: f0 2d beq $095c +092f: f5 90 03 mov a,$0390+x +0932: 60 clrc +0933: 95 91 03 adc a,$0391+x +0936: d5 91 03 mov $0391+x,a +0939: 90 21 bcc $095c +093b: 9b 70 dec $70+x +093d: f0 11 beq $0950 +093f: e4 1b mov a,$1b +0941: d0 19 bne $095c +0943: f4 71 mov a,$71+x +0945: f0 0f beq $0956 +0947: 9b 71 dec $71+x +0949: d0 0b bne $0956 +094b: 3f a4 0b call $0ba4 +094e: 2f 06 bra $0956 +0950: 3f a8 0a call $0aa8 +0953: 3f 14 0b call $0b14 +0956: 3f 09 0c call $0c09 +0959: 3f 4b 0d call $0d4b +095c: 3d inc x +095d: 3d inc x +095e: e4 47 mov a,$47 +0960: 1c asl a +0961: d0 c4 bne $0927 +0963: 6f ret + +; load song +0964: cd 00 mov x,#$00 +0966: 3f 96 10 call $1096 +0969: eb 04 mov y,$04 +096b: c4 04 mov $04,a +096d: 68 f0 cmp a,#$f0 +096f: f0 35 beq $09a6 +0971: 68 f2 cmp a,#$f2 +0973: f0 4c beq $09c1 +0975: 68 fc cmp a,#$fc +0977: f0 4e beq $09c7 +0979: 68 fe cmp a,#$fe +097b: f0 47 beq $09c4 +097d: 68 ff cmp a,#$ff +097f: f0 4d beq $09ce +0981: 68 09 cmp a,#$09 +0983: b0 3b bcs $09c0 +0985: 7e 00 cmp y,$00 +0987: f0 37 beq $09c0 +0989: c4 08 mov $08,a +098b: c5 f4 00 mov $00f4,a +098e: 1c asl a +098f: f0 15 beq $09a6 +0991: 5d mov x,a +0992: f5 eb 1a mov a,$1aeb+x +0995: fd mov y,a +0996: f5 ea 1a mov a,$1aea+x +0999: da 40 movw $40,ya +099b: 3f db 09 call $09db +099e: 3f 33 0a call $0a33 +09a1: e8 ff mov a,#$ff +09a3: c4 46 mov $46,a +09a5: 6f ret + +09a6: e4 1a mov a,$1a +09a8: 04 1c or a,$1c +09aa: 0e 46 00 tset1 $0046 +09ad: e8 00 mov a,#$00 +09af: c4 1a mov $1a,a +09b1: c4 1c mov $1c,a +09b3: c4 4a mov $4a,a +09b5: fd mov y,a +09b6: da 60 movw $60,ya +09b8: da 62 movw $62,ya +09ba: e8 60 mov a,#$60 +09bc: 04 48 or a,$48 +09be: c4 48 mov $48,a +09c0: 6f ret + +09c1: 5f 3e 13 jmp $133e + +09c4: 5f 62 12 jmp $1262 + +09c7: e5 f6 00 mov a,$00f6 +09ca: c5 64 07 mov $0764,a +09cd: 6f ret + +09ce: 3f d8 11 call $11d8 +09d1: c4 04 mov $04,a +09d3: c5 f5 00 mov $00f5,a +09d6: c5 f6 00 mov $00f6,a +09d9: 2f ae bra $0989 +09db: cd 0e mov x,#$0e +09dd: 8f 80 47 mov $47,#$80 +09e0: 3f 07 0a call $0a07 +09e3: 1d dec x +09e4: 1d dec x +09e5: 4b 47 lsr $47 +09e7: d0 f7 bne $09e0 +09e9: e8 00 mov a,#$00 +09eb: c4 5a mov $5a,a +09ed: c4 68 mov $68,a +09ef: c4 54 mov $54,a +09f1: c4 50 mov $50,a +09f3: c4 42 mov $42,a +09f5: c4 5f mov $5f,a +09f7: c5 63 07 mov $0763,a +09fa: c4 46 mov $46,a +09fc: c4 4a mov $4a,a +09fe: fd mov y,a +09ff: da 60 movw $60,ya +0a01: da 62 movw $62,ya +0a03: 8f 20 53 mov $53,#$20 +0a06: 6f ret + +0a07: e8 ff mov a,#$ff +0a09: d5 01 03 mov $0301+x,a +0a0c: d5 10 02 mov $0210+x,a +0a0f: e8 0a mov a,#$0a +0a11: 3f 00 0f call $0f00 +0a14: e8 00 mov a,#$00 +0a16: d5 00 03 mov $0300+x,a +0a19: d5 d0 00 mov $00d0+x,a +0a1c: d5 81 03 mov $0381+x,a +0a1f: d5 f0 02 mov $02f0+x,a +0a22: d5 80 02 mov $0280+x,a +0a25: d5 a0 03 mov $03a0+x,a +0a28: d4 b1 mov $b1+x,a +0a2a: d4 c1 mov $c1+x,a +0a2c: d5 01 02 mov $0201+x,a +0a2f: d5 90 00 mov $0090+x,a +0a32: 6f ret + +0a33: 3f 18 0e call $0e18 +0a36: d0 25 bne $0a5d +0a38: fd mov y,a +0a39: d0 03 bne $0a3e +0a3b: 5f 89 09 jmp $0989 + +0a3e: 68 80 cmp a,#$80 +0a40: f0 06 beq $0a48 +0a42: 68 81 cmp a,#$81 +0a44: d0 06 bne $0a4c +0a46: e8 00 mov a,#$00 +0a48: c4 1b mov $1b,a +0a4a: 2f e7 bra $0a33 +0a4c: 8b 42 dec $42 +0a4e: 10 02 bpl $0a52 +0a50: c4 42 mov $42,a +0a52: 3f 18 0e call $0e18 +0a55: f8 42 mov x,$42 +0a57: f0 da beq $0a33 +0a59: da 40 movw $40,ya +0a5b: 2f d6 bra $0a33 +0a5d: da 16 movw $16,ya +0a5f: 8d 00 mov y,#$00 +0a61: cb 1a mov $1a,y +0a63: e8 01 mov a,#$01 +0a65: c4 47 mov $47,a +0a67: f7 16 mov a,($16)+y +0a69: d6 30 00 mov $0030+y,a +0a6c: fc inc y +0a6d: f7 16 mov a,($16)+y +0a6f: d6 30 00 mov $0030+y,a +0a72: dc dec y +0a73: 5d mov x,a +0a74: f0 15 beq $0a8b +0a76: 09 47 1a or ($1a),($47) +0a79: 09 47 46 or ($46),($47) +0a7c: f6 d0 00 mov a,$00d0+y +0a7f: 5d mov x,a +0a80: d0 09 bne $0a8b +0a82: 6d push y +0a83: dd mov a,y +0a84: 5d mov x,a +0a85: e8 00 mov a,#$00 +0a87: 3f a7 0e call $0ea7 +0a8a: ee pop y +0a8b: cd 00 mov x,#$00 +0a8d: d9 80 mov $80+y,x +0a8f: d9 90 mov $90+y,x +0a91: d9 91 mov $91+y,x +0a93: 3d inc x +0a94: d9 70 mov $70+y,x +0a96: fc inc y +0a97: fc inc y +0a98: e4 47 mov a,$47 +0a9a: 1c asl a +0a9b: f0 06 beq $0aa3 +0a9d: 2d push a +0a9e: 24 1c and a,$1c +0aa0: ae pop a +0aa1: f0 c2 beq $0a65 +0aa3: 6f ret + +0aa4: 09 47 21 or ($21),($47) +0aa7: 6f ret + +0aa8: 3f 3c 0e call $0e3c +0aab: d0 17 bne $0ac4 +0aad: f4 80 mov a,$80+x +0aaf: f0 f3 beq $0aa4 +0ab1: 3f 1b 10 call $101b +0ab4: 9b 80 dec $80+x +0ab6: d0 f0 bne $0aa8 +0ab8: f5 30 02 mov a,$0230+x +0abb: d4 30 mov $30+x,a +0abd: f5 31 02 mov a,$0231+x +0ac0: d4 31 mov $31+x,a +0ac2: 2f e4 bra $0aa8 +0ac4: 30 20 bmi $0ae6 +0ac6: d5 00 02 mov $0200+x,a +0ac9: 3f 3c 0e call $0e3c +0acc: 30 18 bmi $0ae6 +0ace: 2d push a +0acf: 9f xcn a +0ad0: 28 07 and a,#$07 +0ad2: fd mov y,a +0ad3: f6 00 6f mov a,$6f00+y +0ad6: d5 01 02 mov $0201+x,a +0ad9: ae pop a +0ada: 28 0f and a,#$0f +0adc: fd mov y,a +0add: f6 08 6f mov a,$6f08+y +0ae0: d5 10 02 mov $0210+x,a +0ae3: 3f 3c 0e call $0e3c +0ae6: 68 e0 cmp a,#$e0 +0ae8: 90 0c bcc $0af6 +0aea: 68 fb cmp a,#$fb +0aec: f0 05 beq $0af3 +0aee: 3f 26 0e call $0e26 +0af1: 2f b5 bra $0aa8 +0af3: 5f 10 13 jmp $1310 + +0af6: f5 a0 03 mov a,$03a0+x +0af9: 04 1b or a,$1b +0afb: d0 08 bne $0b05 +0afd: e4 23 mov a,$23 +0aff: d0 04 bne $0b05 +0b01: dd mov a,y +0b02: 3f a7 10 call $10a7 +0b05: f5 00 02 mov a,$0200+x +0b08: d4 70 mov $70+x,a +0b0a: fd mov y,a +0b0b: f5 01 02 mov a,$0201+x +0b0e: bc inc a +0b0f: cf mul ya +0b10: dd mov a,y +0b11: d4 71 mov $71+x,a +0b13: 6f ret + +0b14: f4 a0 mov a,$a0+x +0b16: d0 33 bne $0b4b +0b18: e7 30 mov a,($30+x) +0b1a: 68 f9 cmp a,#$f9 +0b1c: d0 2d bne $0b4b +0b1e: 3f 3e 0e call $0e3e +0b21: 3f 3c 0e call $0e3c + +; vcmd f9 - pitch slide +0b24: d4 a1 mov $a1+x,a +0b26: 3f 3c 0e call $0e3c +0b29: d4 a0 mov $a0+x,a +0b2b: 3f 3c 0e call $0e3c +0b2e: 60 clrc +0b2f: 84 50 adc a,$50 +0b31: 95 f0 02 adc a,$02f0+x +0b34: 28 7f and a,#$7f +0b36: d5 80 03 mov $0380+x,a +0b39: 80 setc +0b3a: b5 61 03 sbc a,$0361+x +0b3d: fb a0 mov y,$a0+x +0b3f: 6d push y +0b40: ce pop x +0b41: 3f 4c 0b call $0b4c +0b44: d5 70 03 mov $0370+x,a +0b47: dd mov a,y +0b48: d5 71 03 mov $0371+x,a +0b4b: 6f ret + +0b4c: ed notc +0b4d: 6b 12 ror $12 +0b4f: 10 03 bpl $0b54 +0b51: 48 ff eor a,#$ff +0b53: bc inc a +0b54: 8d 00 mov y,#$00 +0b56: 9e div ya,x +0b57: 2d push a +0b58: e8 00 mov a,#$00 +0b5a: 9e div ya,x +0b5b: ee pop y +0b5c: f8 44 mov x,$44 +0b5e: f3 12 07 bbc7 $12,$0b68 +0b61: da 14 movw $14,ya +0b63: e8 00 mov a,#$00 +0b65: fd mov y,a +0b66: 9a 14 subw ya,$14 +0b68: 6f ret + +0b69: e4 54 mov a,$54 +0b6b: f0 0b beq $0b78 +0b6d: ba 56 movw ya,$56 +0b6f: 7a 52 addw ya,$52 +0b71: 6e 54 02 dbnz $54,$0b76 +0b74: ba 54 movw ya,$54 +0b76: da 52 movw $52,ya +0b78: e4 68 mov a,$68 +0b7a: f0 15 beq $0b91 +0b7c: ba 64 movw ya,$64 +0b7e: 7a 60 addw ya,$60 +0b80: da 60 movw $60,ya +0b82: ba 66 movw ya,$66 +0b84: 7a 62 addw ya,$62 +0b86: 6e 68 06 dbnz $68,$0b8f +0b89: ba 68 movw ya,$68 +0b8b: da 60 movw $60,ya +0b8d: eb 6a mov y,$6a +0b8f: da 62 movw $62,ya +0b91: e4 5a mov a,$5a +0b93: f0 0e beq $0ba3 +0b95: ba 5c movw ya,$5c +0b97: 7a 58 addw ya,$58 +0b99: 6e 5a 02 dbnz $5a,$0b9e +0b9c: ba 5a movw ya,$5a +0b9e: da 58 movw $58,ya +0ba0: 8f ff 5e mov $5e,#$ff +0ba3: 6f ret + +0ba4: f4 30 mov a,$30+x +0ba6: fb 31 mov y,$31+x +0ba8: da 14 movw $14,ya +0baa: 8d 00 mov y,#$00 +0bac: f7 14 mov a,($14)+y +0bae: f0 26 beq $0bd6 +0bb0: 30 07 bmi $0bb9 +0bb2: fc inc y +0bb3: 30 45 bmi $0bfa +0bb5: f7 14 mov a,($14)+y +0bb7: 10 f9 bpl $0bb2 +0bb9: 68 c8 cmp a,#$c8 +0bbb: f0 4b beq $0c08 +0bbd: 68 ef cmp a,#$ef +0bbf: f0 2e beq $0bef +0bc1: 68 e0 cmp a,#$e0 +0bc3: 90 35 bcc $0bfa +0bc5: 6d push y +0bc6: a8 e0 sbc a,#$e0 +0bc8: c4 16 mov $16,a +0bca: 1c asl a +0bcb: 84 16 adc a,$16 +0bcd: fd mov y,a +0bce: ae pop a +0bcf: 80 setc +0bd0: 96 48 0e adc a,$0e48+y +0bd3: fd mov y,a +0bd4: 2f d6 bra $0bac +0bd6: f4 80 mov a,$80+x +0bd8: f0 20 beq $0bfa +0bda: 9c dec a +0bdb: d0 09 bne $0be6 +0bdd: f5 31 02 mov a,$0231+x +0be0: fd mov y,a +0be1: f5 30 02 mov a,$0230+x +0be4: 2f c2 bra $0ba8 +0be6: f5 41 02 mov a,$0241+x +0be9: fd mov y,a +0bea: f5 40 02 mov a,$0240+x +0bed: 2f b9 bra $0ba8 +0bef: fc inc y +0bf0: f7 14 mov a,($14)+y +0bf2: 2d push a +0bf3: fc inc y +0bf4: f7 14 mov a,($14)+y +0bf6: fd mov y,a +0bf7: ae pop a +0bf8: 2f ae bra $0ba8 +0bfa: e4 23 mov a,$23 +0bfc: d0 0a bne $0c08 +0bfe: e4 47 mov a,$47 +0c00: 8d 5c mov y,#$5c +0c02: 09 47 46 or ($46),($47) +0c05: 5f 83 11 jmp $1183 + +0c08: 6f ret + +0c09: f4 a0 mov a,$a0+x +0c0b: f0 2c beq $0c39 +0c0d: f4 a1 mov a,$a1+x +0c0f: f0 04 beq $0c15 +0c11: 9b a1 dec $a1+x +0c13: 2f 24 bra $0c39 +0c15: 09 47 1e or ($1e),($47) +0c18: 9b a0 dec $a0+x +0c1a: d0 0a bne $0c26 +0c1c: e8 00 mov a,#$00 +0c1e: d5 60 03 mov $0360+x,a +0c21: f5 80 03 mov a,$0380+x +0c24: 2f 10 bra $0c36 +0c26: 60 clrc +0c27: f5 60 03 mov a,$0360+x +0c2a: 95 70 03 adc a,$0370+x +0c2d: d5 60 03 mov $0360+x,a +0c30: f5 61 03 mov a,$0361+x +0c33: 95 71 03 adc a,$0371+x +0c36: d5 61 03 mov $0361+x,a +0c39: f4 b1 mov a,$b1+x +0c3b: f0 32 beq $0c6f +0c3d: f5 b0 02 mov a,$02b0+x +0c40: de b0 2a cbne $b0+x,$0c6d +0c43: f5 00 01 mov a,$0100+x +0c46: 75 b1 02 cmp a,$02b1+x +0c49: d0 05 bne $0c50 +0c4b: f5 c1 02 mov a,$02c1+x +0c4e: 2f 0d bra $0c5d +0c50: bc inc a +0c51: d5 00 01 mov $0100+x,a +0c54: 9c dec a +0c55: f0 02 beq $0c59 +0c57: f4 b1 mov a,$b1+x +0c59: 60 clrc +0c5a: 95 c0 02 adc a,$02c0+x +0c5d: d4 b1 mov $b1+x,a +0c5f: f5 a0 02 mov a,$02a0+x +0c62: 60 clrc +0c63: 95 a1 02 adc a,$02a1+x +0c66: d5 a0 02 mov $02a0+x,a +0c69: 09 47 1e or ($1e),($47) +0c6c: 6f ret + +0c6d: bb b0 inc $b0+x +0c6f: 6f ret + +0c70: f4 c1 mov a,$c1+x +0c72: f0 09 beq $0c7d +0c74: f5 e0 02 mov a,$02e0+x +0c77: de c0 03 cbne $c0+x,$0c7d +0c7a: 3f f6 0c call $0cf6 +0c7d: f5 31 03 mov a,$0331+x +0c80: fd mov y,a +0c81: f5 30 03 mov a,$0330+x +0c84: da 10 movw $10,ya +0c86: f4 91 mov a,$91+x +0c88: f0 0a beq $0c94 +0c8a: f5 41 03 mov a,$0341+x +0c8d: fd mov y,a +0c8e: f5 40 03 mov a,$0340+x +0c91: 3f 21 0d call $0d21 +0c94: e4 47 mov a,$47 +0c96: 24 5e and a,$5e +0c98: f0 03 beq $0c9d +0c9a: 3f c5 0d call $0dc5 +0c9d: f5 61 03 mov a,$0361+x +0ca0: c4 11 mov $11,a +0ca2: f5 60 03 mov a,$0360+x +0ca5: c4 10 mov $10,a +0ca7: f4 a0 mov a,$a0+x +0ca9: f0 11 beq $0cbc +0cab: f4 a1 mov a,$a1+x +0cad: d0 0d bne $0cbc +0caf: f5 71 03 mov a,$0371+x +0cb2: fd mov y,a +0cb3: f5 70 03 mov a,$0370+x +0cb6: 3f 21 0d call $0d21 +0cb9: 09 47 1e or ($1e),($47) +0cbc: f4 b1 mov a,$b1+x +0cbe: f0 2f beq $0cef +0cc0: f5 b0 02 mov a,$02b0+x +0cc3: de b0 29 cbne $b0+x,$0cef +0cc6: eb 51 mov y,$51 +0cc8: f5 a1 02 mov a,$02a1+x +0ccb: cf mul ya +0ccc: dd mov a,y +0ccd: 60 clrc +0cce: 95 a0 02 adc a,$02a0+x +0cd1: c4 12 mov $12,a +0cd3: 1c asl a +0cd4: 1c asl a +0cd5: 90 02 bcc $0cd9 +0cd7: 48 ff eor a,#$ff +0cd9: fd mov y,a +0cda: f4 b1 mov a,$b1+x +0cdc: 68 f1 cmp a,#$f1 +0cde: 90 05 bcc $0ce5 +0ce0: 28 0f and a,#$0f +0ce2: cf mul ya +0ce3: 2f 04 bra $0ce9 +0ce5: cf mul ya +0ce6: dd mov a,y +0ce7: 8d 00 mov y,#$00 +0ce9: 3f 3d 0d call $0d3d +0cec: 5f 18 11 jmp $1118 + +0cef: e4 47 mov a,$47 +0cf1: 24 1e and a,$1e +0cf3: d0 f7 bne $0cec +0cf5: 6f ret + +0cf6: eb 51 mov y,$51 +0cf8: f5 d1 02 mov a,$02d1+x +0cfb: cf mul ya +0cfc: dd mov a,y +0cfd: 60 clrc +0cfe: 95 d0 02 adc a,$02d0+x +0d01: 1c asl a +0d02: 90 02 bcc $0d06 +0d04: 48 ff eor a,#$ff +0d06: fb c1 mov y,$c1+x +0d08: cf mul ya +0d09: dd mov a,y +0d0a: 48 ff eor a,#$ff +0d0c: 09 47 5e or ($5e),($47) +0d0f: eb 59 mov y,$59 +0d11: cf mul ya +0d12: f5 10 02 mov a,$0210+x +0d15: cf mul ya +0d16: f5 01 03 mov a,$0301+x +0d19: cf mul ya +0d1a: dd mov a,y +0d1b: cf mul ya +0d1c: dd mov a,y +0d1d: d5 21 03 mov $0321+x,a +0d20: 6f ret + +0d21: e2 13 set7 $13 +0d23: cb 12 mov $12,y +0d25: f3 12 06 bbc7 $12,$0d2e +0d28: da 14 movw $14,ya +0d2a: ba 0e movw ya,$0e +0d2c: 9a 14 subw ya,$14 +0d2e: 6d push y +0d2f: eb 51 mov y,$51 +0d31: cf mul ya +0d32: cb 14 mov $14,y +0d34: 8f 00 15 mov $15,#$00 +0d37: eb 51 mov y,$51 +0d39: ae pop a +0d3a: cf mul ya +0d3b: 7a 14 addw ya,$14 +0d3d: f3 12 06 bbc7 $12,$0d46 +0d40: da 14 movw $14,ya +0d42: ba 0e movw ya,$0e +0d44: 9a 14 subw ya,$14 +0d46: 7a 10 addw ya,$10 +0d48: da 10 movw $10,ya +0d4a: 6f ret + +0d4b: f4 90 mov a,$90+x +0d4d: f0 21 beq $0d70 +0d4f: 9b 90 dec $90+x +0d51: d0 0a bne $0d5d +0d53: e8 00 mov a,#$00 +0d55: d5 00 03 mov $0300+x,a +0d58: f5 20 03 mov a,$0320+x +0d5b: 2f 10 bra $0d6d +0d5d: 60 clrc +0d5e: f5 00 03 mov a,$0300+x +0d61: 95 10 03 adc a,$0310+x +0d64: d5 00 03 mov $0300+x,a +0d67: f5 01 03 mov a,$0301+x +0d6a: 95 11 03 adc a,$0311+x +0d6d: d5 01 03 mov $0301+x,a +0d70: fb c1 mov y,$c1+x +0d72: f0 20 beq $0d94 +0d74: f5 e0 02 mov a,$02e0+x +0d77: de c0 18 cbne $c0+x,$0d92 +0d7a: f5 d0 02 mov a,$02d0+x +0d7d: 10 07 bpl $0d86 +0d7f: fc inc y +0d80: d0 04 bne $0d86 +0d82: e8 80 mov a,#$80 +0d84: 2f 04 bra $0d8a +0d86: 60 clrc +0d87: 95 d1 02 adc a,$02d1+x +0d8a: d5 d0 02 mov $02d0+x,a +0d8d: 3f 01 0d call $0d01 +0d90: 2f 07 bra $0d99 +0d92: bb c0 inc $c0+x +0d94: e8 ff mov a,#$ff +0d96: 3f 0c 0d call $0d0c +0d99: f4 91 mov a,$91+x +0d9b: f0 27 beq $0dc4 +0d9d: 09 47 5e or ($5e),($47) +0da0: 9b 91 dec $91+x +0da2: d0 0d bne $0db1 +0da4: e8 00 mov a,#$00 +0da6: d5 30 03 mov $0330+x,a +0da9: f5 50 03 mov a,$0350+x +0dac: d5 31 03 mov $0331+x,a +0daf: 2f 10 bra $0dc1 +0db1: 60 clrc +0db2: f5 40 03 mov a,$0340+x +0db5: 95 30 03 adc a,$0330+x +0db8: d5 30 03 mov $0330+x,a +0dbb: f5 41 03 mov a,$0341+x +0dbe: 95 31 03 adc a,$0331+x +0dc1: d5 31 03 mov $0331+x,a +0dc4: 6f ret + +0dc5: 7d mov a,x +0dc6: 9f xcn a +0dc7: 5c lsr a +0dc8: c4 12 mov $12,a +0dca: eb 11 mov y,$11 +0dcc: f6 04 0e mov a,$0e04+y +0dcf: 80 setc +0dd0: b6 03 0e sbc a,$0e03+y +0dd3: eb 10 mov y,$10 +0dd5: cf mul ya +0dd6: dd mov a,y +0dd7: eb 11 mov y,$11 +0dd9: 60 clrc +0dda: 96 03 0e adc a,$0e03+y +0ddd: fd mov y,a +0dde: f5 21 03 mov a,$0321+x +0de1: cf mul ya +0de2: f5 51 03 mov a,$0351+x +0de5: 1c asl a +0de6: 13 12 01 bbc0 $12,$0dea +0de9: 1c asl a +0dea: dd mov a,y +0deb: 90 03 bcc $0df0 +0ded: 48 ff eor a,#$ff +0def: bc inc a +0df0: eb 12 mov y,$12 +0df2: 3f 83 11 call $1183 +0df5: 8d 14 mov y,#$14 +0df7: e8 00 mov a,#$00 +0df9: 9a 10 subw ya,$10 +0dfb: da 10 movw $10,ya +0dfd: ab 12 inc $12 +0dff: 33 12 c8 bbc1 $12,$0dca +0e02: 6f ret + +0e03: db $00,$01,$03,$07,$0d,$15,$1e,$29 +0e0b: db $34,$42,$51,$5e,$67,$6e,$73,$77 +0e13: db $7a,$7c,$7d,$7e,$7f + +; increment section pointer +0e18: 8d 00 mov y,#$00 +0e1a: f7 40 mov a,($40)+y +0e1c: 3a 40 incw $40 +0e1e: 2d push a +0e1f: f7 40 mov a,($40)+y +0e21: 3a 40 incw $40 +0e23: fd mov y,a +0e24: ae pop a +0e25: 6f ret + +; dispatch vcmd +0e26: 80 setc +0e27: a8 e0 sbc a,#$e0 +0e29: c4 14 mov $14,a +0e2b: 1c asl a +0e2c: 84 14 adc a,$14 +0e2e: fd mov y,a +0e2f: f6 47 0e mov a,$0e47+y +0e32: 2d push a +0e33: f6 46 0e mov a,$0e46+y +0e36: 2d push a +0e37: f6 48 0e mov a,$0e48+y +0e3a: f0 08 beq $0e44 +0e3c: e7 30 mov a,($30+x) +0e3e: bb 30 inc $30+x +0e40: d0 02 bne $0e44 +0e42: bb 31 inc $31+x +0e44: fd mov y,a +0e45: 6f ret + +; vcmd dispatch table +0e46: db $a7,$0e,$01 ; $0ea7> e0 - set instrument +0e49: db $00,$0f,$01 ; $0f00> e1 - pan +0e4c: db $19,$0f,$02 ; $0f19> e2 - pan fade +0e4f: db $3d,$0f,$03 ; $0f3d> e3 - vibrato on +0e52: db $49,$0f,$00 ; $0f49> e4 - vibrato off +0e55: db $64,$0f,$01 ; $0f64> e5 - master volume +0e58: db $73,$0f,$02 ; $0f73> e6 - master volume fade +0e5b: db $85,$0f,$01 ; $0f85> e7 - tempo +0e5e: db $8a,$0f,$02 ; $0f8a> e8 - tempo fade +0e61: db $9c,$0f,$01 ; $0f9c> e9 - global transpose +0e64: db $9f,$0f,$01 ; $0f9f> ea - per-voice transpose +0e67: db $a3,$0f,$03 ; $0fa3> eb - tremolo on +0e6a: db $af,$0f,$00 ; $0faf> ec - tremolo off +0e6d: db $d0,$0f,$01 ; $0fd0> ed - volume +0e70: db $e6,$0f,$02 ; $0fe6> ee - volume fade +0e73: db $03,$10,$03 ; $1003> ef - call subroutine +0e76: db $54,$0f,$01 ; $0f54> f0 - vibrato fade +0e79: db $b2,$0f,$03 ; $0fb2> f1 - pitch envelope (release) +0e7c: db $b6,$0f,$03 ; $0fb6> f2 - pitch envelope (attack) +0e7f: db $cc,$0f,$00 ; $0fcc> f3 - pitch envelope off +0e82: db $ff,$0f,$01 ; $0fff> f4 - tuning +0e85: db $26,$10,$03 ; $1026> f5 - echo vbits/volume +0e88: db $5a,$10,$00 ; $105a> f6 - disable echo +0e8b: db $61,$10,$03 ; $1061> f7 - echo params +0e8e: db $39,$10,$03 ; $1039> f8 - echo volume fade +0e91: db $24,$0b,$03 ; $0b24> f9 - pitch slide +0e94: db $83,$10,$01 ; $1083> fa - set perc patch base +0e97: db $10,$13,$00 ; $1310> fb +0e9a: db $8a,$10,$00 ; $108a> fc +0e9d: db $8f,$10,$00 ; $108f> fd +0ea0: db $90,$10,$00 ; $1090> fe +0ea3: db $07,$13,$01 ; $1307> ff +0ea6: db $00 + +; vcmd e0 - set instrument +0ea7: d5 d0 00 mov $00d0+x,a +0eaa: fd mov y,a +0eab: 10 06 bpl $0eb3 +0ead: 80 setc +0eae: a8 ca sbc a,#$ca +0eb0: 60 clrc +0eb1: 84 5f adc a,$5f +0eb3: 8d 06 mov y,#$06 +0eb5: cf mul ya +0eb6: da 14 movw $14,ya +0eb8: 60 clrc +0eb9: 98 00 14 adc $14,#$00 +0ebc: 98 6e 15 adc $15,#$6e +0ebf: e4 1f mov a,$1f +0ec1: 24 47 and a,$47 +0ec3: f0 3a beq $0eff +0ec5: 4d push x +0ec6: 7d mov a,x +0ec7: 9f xcn a +0ec8: 5c lsr a +0ec9: 08 04 or a,#$04 +0ecb: 5d mov x,a +0ecc: 8d 00 mov y,#$00 +0ece: f7 14 mov a,($14)+y +0ed0: 10 0e bpl $0ee0 +0ed2: 28 1f and a,#$1f +0ed4: 38 20 48 and $48,#$20 +0ed7: 0e 48 00 tset1 $0048 +0eda: 09 47 49 or ($49),($47) +0edd: dd mov a,y +0ede: 2f 07 bra $0ee7 +0ee0: e4 47 mov a,$47 +0ee2: 4e 49 00 tclr1 $0049 +0ee5: f7 14 mov a,($14)+y +0ee7: c9 f2 00 mov $00f2,x +0eea: c5 f3 00 mov $00f3,a +0eed: 3d inc x +0eee: fc inc y +0eef: ad 04 cmp y,#$04 +0ef1: d0 f2 bne $0ee5 +0ef3: ce pop x +0ef4: f7 14 mov a,($14)+y +0ef6: d5 21 02 mov $0221+x,a +0ef9: fc inc y +0efa: f7 14 mov a,($14)+y +0efc: d5 20 02 mov $0220+x,a +0eff: 6f ret + +; vcmd e1 - pan +0f00: 2d push a +0f01: e5 64 07 mov a,$0764 +0f04: 68 00 cmp a,#$00 +0f06: ae pop a +0f07: f0 02 beq $0f0b +0f09: e8 0a mov a,#$0a +0f0b: d5 51 03 mov $0351+x,a +0f0e: 28 1f and a,#$1f +0f10: d5 31 03 mov $0331+x,a +0f13: e8 00 mov a,#$00 +0f15: d5 30 03 mov $0330+x,a +0f18: 6f ret + +; vcmd e2 - pan fade +0f19: 2d push a +0f1a: e5 64 07 mov a,$0764 +0f1d: 68 00 cmp a,#$00 +0f1f: ae pop a +0f20: f0 02 beq $0f24 +0f22: e8 0a mov a,#$0a +0f24: d4 91 mov $91+x,a +0f26: 2d push a +0f27: 3f 3c 0e call $0e3c +0f2a: d5 50 03 mov $0350+x,a +0f2d: 80 setc +0f2e: b5 31 03 sbc a,$0331+x +0f31: ce pop x +0f32: 3f 4c 0b call $0b4c +0f35: d5 40 03 mov $0340+x,a +0f38: dd mov a,y +0f39: d5 41 03 mov $0341+x,a +0f3c: 6f ret + +; vcmd e3 - vibrato on +0f3d: d5 b0 02 mov $02b0+x,a +0f40: 3f 3c 0e call $0e3c +0f43: d5 a1 02 mov $02a1+x,a +0f46: 3f 3c 0e call $0e3c +; vcmd e4 - vibrato off +0f49: d4 b1 mov $b1+x,a +0f4b: d5 c1 02 mov $02c1+x,a +0f4e: e8 00 mov a,#$00 +0f50: d5 b1 02 mov $02b1+x,a +0f53: 6f ret + +; vcmd f0 - vibrato fade +0f54: d5 b1 02 mov $02b1+x,a +0f57: 2d push a +0f58: 8d 00 mov y,#$00 +0f5a: f4 b1 mov a,$b1+x +0f5c: ce pop x +0f5d: 9e div ya,x +0f5e: f8 44 mov x,$44 +0f60: d5 c0 02 mov $02c0+x,a +0f63: 6f ret + +; vcmd e5 - master volume +0f64: e5 63 07 mov a,$0763 +0f67: 68 00 cmp a,#$00 +0f69: d0 07 bne $0f72 +0f6b: e8 00 mov a,#$00 +0f6d: c5 f4 00 mov $00f4,a +0f70: da 58 movw $58,ya +0f72: 6f ret + +; vcmd e6 - master volume fade +0f73: c4 5a mov $5a,a +0f75: 3f 3c 0e call $0e3c +0f78: c4 5b mov $5b,a +0f7a: 80 setc +0f7b: a4 59 sbc a,$59 +0f7d: f8 5a mov x,$5a +0f7f: 3f 4c 0b call $0b4c +0f82: da 5c movw $5c,ya +0f84: 6f ret + +; vcmd e7 - tempo +0f85: e8 00 mov a,#$00 +0f87: da 52 movw $52,ya +0f89: 6f ret + +; vcmd e8 - tempo fade +0f8a: c4 54 mov $54,a +0f8c: 3f 3c 0e call $0e3c +0f8f: c4 55 mov $55,a +0f91: 80 setc +0f92: a4 53 sbc a,$53 +0f94: f8 54 mov x,$54 +0f96: 3f 4c 0b call $0b4c +0f99: da 56 movw $56,ya +0f9b: 6f ret + +; vcmd e9 - global transpose +0f9c: c4 50 mov $50,a +0f9e: 6f ret + +; vcmd ea - per-voice transpose +0f9f: d5 f0 02 mov $02f0+x,a +0fa2: 6f ret + +; vcmd eb - tremolo on +0fa3: d5 e0 02 mov $02e0+x,a +0fa6: 3f 3c 0e call $0e3c +0fa9: d5 d1 02 mov $02d1+x,a +0fac: 3f 3c 0e call $0e3c +; vcmd ec - tremolo off +0faf: d4 c1 mov $c1+x,a +0fb1: 6f ret + +; vcmd f1 - pitch envelope (release) +0fb2: e8 01 mov a,#$01 +0fb4: 2f 02 bra $0fb8 +; vcmd f2 - pitch envelope (attack) +0fb6: e8 00 mov a,#$00 +0fb8: d5 90 02 mov $0290+x,a +0fbb: dd mov a,y +0fbc: d5 81 02 mov $0281+x,a +0fbf: 3f 3c 0e call $0e3c +0fc2: d5 80 02 mov $0280+x,a +0fc5: 3f 3c 0e call $0e3c +0fc8: d5 91 02 mov $0291+x,a +0fcb: 6f ret + +; vcmd f3 - pitch envelope off +0fcc: d5 80 02 mov $0280+x,a +0fcf: 6f ret + +; vcmd ed - volume +0fd0: 2d push a +0fd1: 7d mov a,x +0fd2: 68 0b cmp a,#$0b +0fd4: ae pop a +0fd5: b0 06 bcs $0fdd +0fd7: 6d push y +0fd8: 8d d0 mov y,#$d0 +0fda: cf mul ya +0fdb: dd mov a,y +0fdc: ee pop y +0fdd: d5 01 03 mov $0301+x,a +0fe0: e8 00 mov a,#$00 +0fe2: d5 00 03 mov $0300+x,a +0fe5: 6f ret + +; vcmd ee - volume fade +0fe6: d4 90 mov $90+x,a +0fe8: 2d push a +0fe9: 3f 3c 0e call $0e3c +0fec: d5 20 03 mov $0320+x,a +0fef: 80 setc +0ff0: b5 01 03 sbc a,$0301+x +0ff3: ce pop x +0ff4: 3f 4c 0b call $0b4c +0ff7: d5 10 03 mov $0310+x,a +0ffa: dd mov a,y +0ffb: d5 11 03 mov $0311+x,a +0ffe: 6f ret + +; vcmd f4 - tuning +0fff: d5 81 03 mov $0381+x,a +1002: 6f ret + +; vcmd ef - call subroutine +1003: d5 40 02 mov $0240+x,a +1006: 3f 3c 0e call $0e3c +1009: d5 41 02 mov $0241+x,a +100c: 3f 3c 0e call $0e3c +100f: d4 80 mov $80+x,a +1011: f4 30 mov a,$30+x +1013: d5 30 02 mov $0230+x,a +1016: f4 31 mov a,$31+x +1018: d5 31 02 mov $0231+x,a +101b: f5 40 02 mov a,$0240+x +101e: d4 30 mov $30+x,a +1020: f5 41 02 mov a,$0241+x +1023: d4 31 mov $31+x,a +1025: 6f ret + +; vcmd f5 - echo vbits/volume +1026: c4 4a mov $4a,a +1028: 3f 3c 0e call $0e3c +102b: e8 00 mov a,#$00 +102d: da 60 movw $60,ya +102f: 3f 3c 0e call $0e3c +1032: e8 00 mov a,#$00 +1034: da 62 movw $62,ya +1036: b2 48 clr5 $48 +1038: 6f ret + +; vcmd f8 - echo volume fade +1039: c4 68 mov $68,a +103b: 3f 3c 0e call $0e3c +103e: c4 69 mov $69,a +1040: 80 setc +1041: a4 61 sbc a,$61 +1043: f8 68 mov x,$68 +1045: 3f 4c 0b call $0b4c +1048: da 64 movw $64,ya +104a: 3f 3c 0e call $0e3c +104d: c4 6a mov $6a,a +104f: 80 setc +1050: a4 62 sbc a,$62 +1052: f8 68 mov x,$68 +1054: 3f 4c 0b call $0b4c +1057: da 66 movw $66,ya +1059: 6f ret + +; vcmd f6 - disable echo +105a: da 60 movw $60,ya +105c: da 62 movw $62,ya +105e: a2 48 set5 $48 +1060: 6f ret + +; vcmd f7 - set echo params +1061: 3f 92 11 call $1192 +1064: 3f 3c 0e call $0e3c +1067: c4 4e mov $4e,a +1069: 3f 3c 0e call $0e3c +106c: 8d 08 mov y,#$08 +106e: cf mul ya +106f: 5d mov x,a +1070: 8d 0f mov y,#$0f +1072: f5 78 17 mov a,$1778+x +1075: 3f 8b 11 call $118b +1078: 3d inc x +1079: dd mov a,y +107a: 60 clrc +107b: 88 10 adc a,#$10 +107d: fd mov y,a +107e: 10 f2 bpl $1072 +1080: f8 44 mov x,$44 +1082: 6f ret + +; vcmd fa - set perc patch base +1083: c4 5f mov $5f,a +1085: 6f ret + +1086: 3f 3e 0e call $0e3e +1089: 6f ret + +; vcmd fc +108a: bc inc a +108b: d5 a0 03 mov $03a0+x,a +108e: 6f ret + +; vcmd fd +108f: bc inc a +; vcmd fe +1090: 0f brk +1091: c4 1b mov $1b,a +1093: 5f a6 09 jmp $09a6 + +1096: f5 f4 00 mov a,$00f4+x +1099: 75 f4 00 cmp a,$00f4+x +109c: d0 f8 bne $1096 +109e: d4 00 mov $00+x,a +10a0: 6f ret + +10a1: f0 03 beq $10a6 +10a3: 09 47 46 or ($46),($47) +10a6: 6f ret + +10a7: ad ca cmp y,#$ca +10a9: 90 05 bcc $10b0 +10ab: 3f a7 0e call $0ea7 +10ae: 8d a4 mov y,#$a4 +10b0: ad c8 cmp y,#$c8 +10b2: b0 ed bcs $10a1 +10b4: e4 1f mov a,$1f +10b6: 24 47 and a,$47 +10b8: f0 e6 beq $10a0 +10ba: dd mov a,y +10bb: 28 7f and a,#$7f +10bd: 60 clrc +10be: 84 50 adc a,$50 +10c0: 60 clrc +10c1: 95 f0 02 adc a,$02f0+x +10c4: d5 61 03 mov $0361+x,a +10c7: f5 81 03 mov a,$0381+x +10ca: d5 60 03 mov $0360+x,a +10cd: f5 b1 02 mov a,$02b1+x +10d0: 5c lsr a +10d1: e8 00 mov a,#$00 +10d3: 7c ror a +10d4: d5 a0 02 mov $02a0+x,a +10d7: e8 00 mov a,#$00 +10d9: d4 b0 mov $b0+x,a +10db: d5 00 01 mov $0100+x,a +10de: d5 d0 02 mov $02d0+x,a +10e1: d4 c0 mov $c0+x,a +10e3: 09 47 5e or ($5e),($47) +10e6: 09 47 45 or ($45),($47) +10e9: f5 80 02 mov a,$0280+x +10ec: d4 a0 mov $a0+x,a +10ee: f0 1e beq $110e +10f0: f5 81 02 mov a,$0281+x +10f3: d4 a1 mov $a1+x,a +10f5: f5 90 02 mov a,$0290+x +10f8: d0 0a bne $1104 +10fa: f5 61 03 mov a,$0361+x +10fd: 80 setc +10fe: b5 91 02 sbc a,$0291+x +1101: d5 61 03 mov $0361+x,a +1104: f5 91 02 mov a,$0291+x +1107: 60 clrc +1108: 95 61 03 adc a,$0361+x +110b: 3f 34 0b call $0b34 +110e: f5 61 03 mov a,$0361+x +1111: c4 11 mov $11,a +1113: f5 60 03 mov a,$0360+x +1116: c4 10 mov $10,a +1118: 8d 00 mov y,#$00 +111a: e4 11 mov a,$11 +111c: 80 setc +111d: a8 34 sbc a,#$34 +111f: b0 09 bcs $112a +1121: e4 11 mov a,$11 +1123: 80 setc +1124: a8 13 sbc a,#$13 +1126: b0 06 bcs $112e +1128: dc dec y +1129: 1c asl a +112a: 7a 10 addw ya,$10 +112c: da 10 movw $10,ya +112e: e4 11 mov a,$11 +1130: 1c asl a +1131: fd mov y,a +1132: f6 c6 16 mov a,$16c6+y +1135: c4 15 mov $15,a +1137: f6 c5 16 mov a,$16c5+y +113a: c4 14 mov $14,a +113c: f6 c8 16 mov a,$16c8+y +113f: 2d push a +1140: f6 c7 16 mov a,$16c7+y +1143: ee pop y +1144: 9a 14 subw ya,$14 +1146: eb 10 mov y,$10 +1148: cf mul ya +1149: dd mov a,y +114a: 8d 00 mov y,#$00 +114c: 7a 14 addw ya,$14 +114e: da 14 movw $14,ya +1150: f5 20 02 mov a,$0220+x +1153: eb 15 mov y,$15 +1155: cf mul ya +1156: da 16 movw $16,ya +1158: f5 20 02 mov a,$0220+x +115b: eb 14 mov y,$14 +115d: cf mul ya +115e: 6d push y +115f: f5 21 02 mov a,$0221+x +1162: eb 14 mov y,$14 +1164: cf mul ya +1165: 7a 16 addw ya,$16 +1167: da 16 movw $16,ya +1169: f5 21 02 mov a,$0221+x +116c: eb 15 mov y,$15 +116e: cf mul ya +116f: fd mov y,a +1170: ae pop a +1171: 7a 16 addw ya,$16 +1173: da 16 movw $16,ya +1175: 7d mov a,x +1176: 9f xcn a +1177: 5c lsr a +1178: 08 02 or a,#$02 +117a: fd mov y,a +117b: e4 16 mov a,$16 +117d: 3f 83 11 call $1183 +1180: fc inc y +1181: e4 17 mov a,$17 +1183: 2d push a +1184: e4 47 mov a,$47 +1186: 24 1f and a,$1f +1188: ae pop a +1189: f0 06 beq $1191 +118b: cc f2 00 mov $00f2,y +118e: c5 f3 00 mov $00f3,a +1191: 6f ret + +1192: c4 4d mov $4d,a +1194: 8d 7d mov y,#$7d +1196: cc f2 00 mov $00f2,y +1199: e5 f3 00 mov a,$00f3 +119c: 64 4d cmp a,$4d +119e: f0 2b beq $11cb +11a0: 28 0f and a,#$0f +11a2: 48 ff eor a,#$ff +11a4: f3 4c 03 bbc7 $4c,$11aa +11a7: 60 clrc +11a8: 84 4c adc a,$4c +11aa: c4 4c mov $4c,a +11ac: 8d 04 mov y,#$04 +11ae: f6 97 17 mov a,$1797+y +11b1: c5 f2 00 mov $00f2,a +11b4: e8 00 mov a,#$00 +11b6: c5 f3 00 mov $00f3,a +11b9: fe f3 dbnz y,$11ae +11bb: e4 48 mov a,$48 +11bd: 08 20 or a,#$20 +11bf: 8d 6c mov y,#$6c +11c1: 3f 8b 11 call $118b +11c4: e4 4d mov a,$4d +11c6: 8d 7d mov y,#$7d +11c8: 3f 8b 11 call $118b +11cb: 1c asl a +11cc: 1c asl a +11cd: 1c asl a +11ce: 48 ff eor a,#$ff +11d0: 80 setc +11d1: 88 ff adc a,#$ff +11d3: 8d 6d mov y,#$6d +11d5: 5f 8b 11 jmp $118b + +11d8: e8 aa mov a,#$aa +11da: c5 f4 00 mov $00f4,a +11dd: e8 bb mov a,#$bb +11df: c5 f5 00 mov $00f5,a +11e2: e5 f4 00 mov a,$00f4 +11e5: 68 cc cmp a,#$cc +11e7: d0 f9 bne $11e2 +11e9: 2f 20 bra $120b +11eb: ec f4 00 mov y,$00f4 +11ee: d0 fb bne $11eb +11f0: 5e f4 00 cmp y,$00f4 +11f3: d0 0f bne $1204 +11f5: e5 f5 00 mov a,$00f5 +11f8: cc f4 00 mov $00f4,y +11fb: d7 14 mov ($14)+y,a +11fd: fc inc y +11fe: d0 f0 bne $11f0 +1200: ab 15 inc $15 +1202: 2f ec bra $11f0 +1204: 10 ea bpl $11f0 +1206: 5e f4 00 cmp y,$00f4 +1209: 10 e5 bpl $11f0 +120b: e5 f6 00 mov a,$00f6 +120e: ec f7 00 mov y,$00f7 +1211: da 14 movw $14,ya +1213: ec f4 00 mov y,$00f4 +1216: e5 f5 00 mov a,$00f5 +1219: cc f4 00 mov $00f4,y +121c: d0 cd bne $11eb +121e: cd 31 mov x,#$31 +1220: c9 f1 00 mov $00f1,x +1223: 6f ret + +1224: e8 f0 mov a,#$f0 +1226: c5 f1 00 mov $00f1,a +1229: e8 00 mov a,#$00 +122b: 5d mov x,a +122c: af mov (x)+,a +122d: c8 e8 cmp x,#$e8 +122f: d0 fb bne $122c +1231: bc inc a +1232: 3f 92 11 call $1192 +1235: a2 48 set5 $48 +1237: e8 7f mov a,#$7f +1239: 8d 0c mov y,#$0c +123b: 3f 8b 11 call $118b +123e: 8d 1c mov y,#$1c +1240: 3f 8b 11 call $118b +1243: e8 6c mov a,#$6c +1245: 8d 5d mov y,#$5d +1247: 3f 8b 11 call $118b +124a: e8 10 mov a,#$10 +124c: c5 fa 00 mov $00fa,a +124f: c4 53 mov $53,a +1251: e8 01 mov a,#$01 +1253: c5 f1 00 mov $00f1,a +1256: 9c dec a +1257: c5 f5 00 mov $00f5,a +125a: c5 f6 00 mov $00f6,a +125d: c5 f7 00 mov $00f7,a +1260: 6f ret + +1261: 00 nop +1262: 4d push x +1263: 8f 00 22 mov $22,#$00 +1266: e8 00 mov a,#$00 +1268: c5 62 07 mov $0762,a +126b: cd 02 mov x,#$02 +126d: 3f 96 10 call $1096 +1270: ce pop x +1271: e4 02 mov a,$02 +1273: f0 08 beq $127d +1275: 65 61 12 cmp a,$1261 +1278: d0 03 bne $127d +127a: 5f 00 13 jmp $1300 + +127d: c5 61 12 mov $1261,a +1280: 28 fe and a,#$fe +1282: f0 7d beq $1301 +1284: c4 24 mov $24,a +1286: 5c lsr a +1287: 60 clrc +1288: 84 24 adc a,$24 +128a: 5d mov x,a +128b: f5 ac 17 mov a,$17ac+x +128e: fd mov y,a +128f: f5 ad 17 mov a,$17ad+x +1292: 2d push a +1293: e4 1c mov a,$1c +1295: 3c rol a +1296: 90 19 bcc $12b1 +1298: 3c rol a +1299: 90 23 bcc $12be +129b: c5 62 07 mov $0762,a +129e: f5 ae 17 mov a,$17ae+x +12a1: 9f xcn a +12a2: 28 0f and a,#$0f +12a4: 65 61 07 cmp a,$0761 +12a7: b0 08 bcs $12b1 +12a9: 65 60 07 cmp a,$0760 +12ac: b0 10 bcs $12be +12ae: ae pop a +12af: 2f 4f bra $1300 +12b1: 8f 01 22 mov $22,#$01 +12b4: f5 ae 17 mov a,$17ae+x +12b7: 28 0f and a,#$0f +12b9: c5 61 07 mov $0761,a +12bc: 2f 08 bra $12c6 +12be: f5 ae 17 mov a,$17ae+x +12c1: 28 0f and a,#$0f +12c3: c5 60 07 mov $0760,a +12c6: ae pop a +12c7: 2d push a +12c8: e4 22 mov a,$22 +12ca: 28 01 and a,#$01 +12cc: 5d mov x,a +12cd: 60 clrc +12ce: bc inc a +12cf: 7c ror a +12d0: 7c ror a +12d1: 7c ror a +12d2: 04 1c or a,$1c +12d4: c4 1c mov $1c,a +12d6: e5 61 12 mov a,$1261 +12d9: c5 f5 00 mov $00f5,a +12dc: 7d mov a,x +12dd: 60 clrc +12de: 88 06 adc a,#$06 +12e0: 1c asl a +12e1: 5d mov x,a +12e2: e5 62 07 mov a,$0762 +12e5: d0 03 bne $12ea +12e7: 3f 8d 13 call $138d +12ea: ae pop a +12eb: d4 31 mov $31+x,a +12ed: dd mov a,y +12ee: d4 30 mov $30+x,a +12f0: e8 01 mov a,#$01 +12f2: d5 70 00 mov $0070+x,a +12f5: e8 ff mov a,#$ff +12f7: d5 90 03 mov $0390+x,a +12fa: d5 91 03 mov $0391+x,a +12fd: 5f 07 0a jmp $0a07 + +1300: 6f ret + +1301: e4 1c mov a,$1c +1303: f0 fb beq $1300 +1305: 2f 47 bra $134e +; vcmd ff +1307: d5 90 03 mov $0390+x,a +130a: e8 00 mov a,#$00 +130c: d5 91 03 mov $0391+x,a +130f: 6f ret + +; vcmd fb +1310: e5 0f 18 mov a,$180f +1313: d4 30 mov $30+x,a +1315: e5 10 18 mov a,$1810 +1318: d4 31 mov $31+x,a +131a: 4d push x +131b: 7d mov a,x +131c: 5c lsr a +131d: 80 setc +131e: a8 06 sbc a,#$06 +1320: 5d mov x,a +1321: e8 00 mov a,#$00 +1323: c5 f5 00 mov $00f5,a +1326: ce pop x +1327: e4 47 mov a,$47 +1329: 48 ff eor a,#$ff +132b: 24 1c and a,$1c +132d: c4 1c mov $1c,a +132f: 09 47 46 or ($46),($47) +1332: 3f 07 0a call $0a07 +1335: 3f 5b 14 call $145b +1338: f4 d0 mov a,$d0+x +133a: 3f a7 0e call $0ea7 +133d: 6f ret + +133e: e8 01 mov a,#$01 +1340: c5 63 07 mov $0763,a +1343: e5 f5 00 mov a,$00f5 +1346: c4 5a mov $5a,a +1348: e5 f6 00 mov a,$00f6 +134b: 5f 78 0f jmp $0f78 + +134e: cd 0c mov x,#$0c +1350: e8 40 mov a,#$40 +1352: c4 47 mov $47,a +1354: 24 1c and a,$1c +1356: f0 2d beq $1385 +1358: e5 0f 18 mov a,$180f +135b: d4 30 mov $30+x,a +135d: e5 10 18 mov a,$1810 +1360: d4 31 mov $31+x,a +1362: 4d push x +1363: 7d mov a,x +1364: 5c lsr a +1365: 80 setc +1366: a8 06 sbc a,#$06 +1368: 5d mov x,a +1369: e8 00 mov a,#$00 +136b: c5 f5 00 mov $00f5,a +136e: ce pop x +136f: e4 47 mov a,$47 +1371: 48 ff eor a,#$ff +1373: 24 1c and a,$1c +1375: c4 1c mov $1c,a +1377: 09 47 46 or ($46),($47) +137a: 3f 07 0a call $0a07 +137d: 3f 5b 14 call $145b +1380: f4 d0 mov a,$d0+x +1382: 3f a7 0e call $0ea7 +1385: 3d inc x +1386: 3d inc x +1387: e4 47 mov a,$47 +1389: 1c asl a +138a: d0 c6 bne $1352 +138c: 6f ret + +138d: 3f 96 13 call $1396 +1390: 3d inc x +1391: 3f 96 13 call $1396 +1394: 1d dec x +1395: 6f ret + +1396: f4 70 mov a,$70+x +1398: d5 20 01 mov $0120+x,a +139b: f4 80 mov a,$80+x +139d: d5 30 01 mov $0130+x,a +13a0: f4 90 mov a,$90+x +13a2: d5 40 01 mov $0140+x,a +13a5: f4 a0 mov a,$a0+x +13a7: d5 50 01 mov $0150+x,a +13aa: f4 b0 mov a,$b0+x +13ac: d5 60 01 mov $0160+x,a +13af: f4 c0 mov a,$c0+x +13b1: d5 70 01 mov $0170+x,a +13b4: f4 d0 mov a,$d0+x +13b6: d5 80 01 mov $0180+x,a +13b9: f5 00 01 mov a,$0100+x +13bc: d5 90 01 mov $0190+x,a +13bf: f5 10 01 mov a,$0110+x +13c2: d5 a0 01 mov $01a0+x,a +13c5: f4 30 mov a,$30+x +13c7: d5 b0 03 mov $03b0+x,a +13ca: f5 00 02 mov a,$0200+x +13cd: d5 c0 03 mov $03c0+x,a +13d0: f5 10 02 mov a,$0210+x +13d3: d5 d0 03 mov $03d0+x,a +13d6: f5 20 02 mov a,$0220+x +13d9: d5 e0 03 mov $03e0+x,a +13dc: f5 30 02 mov a,$0230+x +13df: d5 f0 03 mov $03f0+x,a +13e2: f5 40 02 mov a,$0240+x +13e5: d5 00 04 mov $0400+x,a +13e8: f5 80 02 mov a,$0280+x +13eb: d5 10 04 mov $0410+x,a +13ee: f5 90 02 mov a,$0290+x +13f1: d5 20 04 mov $0420+x,a +13f4: f5 a0 02 mov a,$02a0+x +13f7: d5 30 04 mov $0430+x,a +13fa: f5 b0 02 mov a,$02b0+x +13fd: d5 40 04 mov $0440+x,a +1400: f5 c0 02 mov a,$02c0+x +1403: d5 50 04 mov $0450+x,a +1406: f5 d0 02 mov a,$02d0+x +1409: d5 60 04 mov $0460+x,a +140c: f5 e0 02 mov a,$02e0+x +140f: d5 70 04 mov $0470+x,a +1412: f5 f0 02 mov a,$02f0+x +1415: d5 80 04 mov $0480+x,a +1418: f5 00 03 mov a,$0300+x +141b: d5 90 04 mov $0490+x,a +141e: f5 10 03 mov a,$0310+x +1421: d5 a0 04 mov $04a0+x,a +1424: f5 20 03 mov a,$0320+x +1427: d5 b0 04 mov $04b0+x,a +142a: f5 30 03 mov a,$0330+x +142d: d5 c0 04 mov $04c0+x,a +1430: f5 40 03 mov a,$0340+x +1433: d5 d0 04 mov $04d0+x,a +1436: f5 50 03 mov a,$0350+x +1439: d5 e0 04 mov $04e0+x,a +143c: f5 60 03 mov a,$0360+x +143f: d5 f0 04 mov $04f0+x,a +1442: f5 70 03 mov a,$0370+x +1445: d5 00 05 mov $0500+x,a +1448: f5 80 03 mov a,$0380+x +144b: d5 10 05 mov $0510+x,a +144e: f5 90 03 mov a,$0390+x +1451: d5 20 05 mov $0520+x,a +1454: f5 a0 03 mov a,$03a0+x +1457: d5 30 05 mov $0530+x,a +145a: 6f ret + +145b: 3f 64 14 call $1464 +145e: 3d inc x +145f: 3f 64 14 call $1464 +1462: 1d dec x +1463: 6f ret + +1464: f5 20 01 mov a,$0120+x +1467: d4 70 mov $70+x,a +1469: f5 30 01 mov a,$0130+x +146c: d4 80 mov $80+x,a +146e: f5 40 01 mov a,$0140+x +1471: d4 90 mov $90+x,a +1473: f5 50 01 mov a,$0150+x +1476: d4 a0 mov $a0+x,a +1478: f5 60 01 mov a,$0160+x +147b: d4 b0 mov $b0+x,a +147d: f5 70 01 mov a,$0170+x +1480: d4 c0 mov $c0+x,a +1482: f5 80 01 mov a,$0180+x +1485: d4 d0 mov $d0+x,a +1487: f5 90 01 mov a,$0190+x +148a: d5 00 01 mov $0100+x,a +148d: f5 a0 01 mov a,$01a0+x +1490: d5 10 01 mov $0110+x,a +1493: f5 b0 03 mov a,$03b0+x +1496: d4 30 mov $30+x,a +1498: f5 c0 03 mov a,$03c0+x +149b: d5 00 02 mov $0200+x,a +149e: f5 d0 03 mov a,$03d0+x +14a1: d5 10 02 mov $0210+x,a +14a4: f5 e0 03 mov a,$03e0+x +14a7: d5 20 02 mov $0220+x,a +14aa: f5 f0 03 mov a,$03f0+x +14ad: d5 30 02 mov $0230+x,a +14b0: f5 00 04 mov a,$0400+x +14b3: d5 40 02 mov $0240+x,a +14b6: f5 10 04 mov a,$0410+x +14b9: d5 80 02 mov $0280+x,a +14bc: f5 20 04 mov a,$0420+x +14bf: d5 90 02 mov $0290+x,a +14c2: f5 30 04 mov a,$0430+x +14c5: d5 a0 02 mov $02a0+x,a +14c8: f5 40 04 mov a,$0440+x +14cb: d5 b0 02 mov $02b0+x,a +14ce: f5 50 04 mov a,$0450+x +14d1: d5 c0 02 mov $02c0+x,a +14d4: f5 60 04 mov a,$0460+x +14d7: d5 d0 02 mov $02d0+x,a +14da: f5 70 04 mov a,$0470+x +14dd: d5 e0 02 mov $02e0+x,a +14e0: f5 80 04 mov a,$0480+x +14e3: d5 f0 02 mov $02f0+x,a +14e6: f5 90 04 mov a,$0490+x +14e9: d5 00 03 mov $0300+x,a +14ec: f5 a0 04 mov a,$04a0+x +14ef: d5 10 03 mov $0310+x,a +14f2: f5 b0 04 mov a,$04b0+x +14f5: d5 20 03 mov $0320+x,a +14f8: f5 c0 04 mov a,$04c0+x +14fb: d5 30 03 mov $0330+x,a +14fe: f5 d0 04 mov a,$04d0+x +1501: d5 40 03 mov $0340+x,a +1504: f5 e0 04 mov a,$04e0+x +1507: d5 50 03 mov $0350+x,a +150a: f5 f0 04 mov a,$04f0+x +150d: d5 60 03 mov $0360+x,a +1510: f5 00 05 mov a,$0500+x +1513: d5 70 03 mov $0370+x,a +1516: f5 10 05 mov a,$0510+x +1519: d5 80 03 mov $0380+x,a +151c: f5 20 05 mov a,$0520+x +151f: d5 90 03 mov $0390+x,a +1522: f5 30 05 mov a,$0530+x +1525: d5 a0 03 mov $03a0+x,a +1528: 6f ret + +1529: 3f 32 15 call $1532 +152c: 3d inc x +152d: 3f 32 15 call $1532 +1530: 1d dec x +1531: 6f ret + +1532: f4 70 mov a,$70+x +1534: d5 40 05 mov $0540+x,a +1537: f4 80 mov a,$80+x +1539: d5 50 05 mov $0550+x,a +153c: f4 90 mov a,$90+x +153e: d5 60 05 mov $0560+x,a +1541: f4 a0 mov a,$a0+x +1543: d5 70 05 mov $0570+x,a +1546: f4 b0 mov a,$b0+x +1548: d5 80 05 mov $0580+x,a +154b: f4 c0 mov a,$c0+x +154d: d5 90 05 mov $0590+x,a +1550: f4 d0 mov a,$d0+x +1552: d5 a0 05 mov $05a0+x,a +1555: f5 00 01 mov a,$0100+x +1558: d5 b0 05 mov $05b0+x,a +155b: f5 10 01 mov a,$0110+x +155e: d5 c0 05 mov $05c0+x,a +1561: f4 30 mov a,$30+x +1563: d5 d0 05 mov $05d0+x,a +1566: f5 00 02 mov a,$0200+x +1569: d5 e0 05 mov $05e0+x,a +156c: f5 10 02 mov a,$0210+x +156f: d5 f0 05 mov $05f0+x,a +1572: f5 20 02 mov a,$0220+x +1575: d5 00 06 mov $0600+x,a +1578: f5 30 02 mov a,$0230+x +157b: d5 10 06 mov $0610+x,a +157e: f5 40 02 mov a,$0240+x +1581: d5 20 06 mov $0620+x,a +1584: f5 80 02 mov a,$0280+x +1587: d5 30 06 mov $0630+x,a +158a: f5 90 02 mov a,$0290+x +158d: d5 40 06 mov $0640+x,a +1590: f5 a0 02 mov a,$02a0+x +1593: d5 50 06 mov $0650+x,a +1596: f5 b0 02 mov a,$02b0+x +1599: d5 60 06 mov $0660+x,a +159c: f5 c0 02 mov a,$02c0+x +159f: d5 70 06 mov $0670+x,a +15a2: f5 d0 02 mov a,$02d0+x +15a5: d5 80 06 mov $0680+x,a +15a8: f5 e0 02 mov a,$02e0+x +15ab: d5 90 06 mov $0690+x,a +15ae: f5 f0 02 mov a,$02f0+x +15b1: d5 a0 06 mov $06a0+x,a +15b4: f5 00 03 mov a,$0300+x +15b7: d5 b0 06 mov $06b0+x,a +15ba: f5 10 03 mov a,$0310+x +15bd: d5 c0 06 mov $06c0+x,a +15c0: f5 20 03 mov a,$0320+x +15c3: d5 d0 06 mov $06d0+x,a +15c6: f5 30 03 mov a,$0330+x +15c9: d5 e0 06 mov $06e0+x,a +15cc: f5 40 03 mov a,$0340+x +15cf: d5 f0 06 mov $06f0+x,a +15d2: f5 50 03 mov a,$0350+x +15d5: d5 00 07 mov $0700+x,a +15d8: f5 60 03 mov a,$0360+x +15db: d5 10 07 mov $0710+x,a +15de: f5 70 03 mov a,$0370+x +15e1: d5 20 07 mov $0720+x,a +15e4: f5 80 03 mov a,$0380+x +15e7: d5 30 07 mov $0730+x,a +15ea: f5 90 03 mov a,$0390+x +15ed: d5 40 07 mov $0740+x,a +15f0: f5 a0 03 mov a,$03a0+x +15f3: d5 50 07 mov $0750+x,a +15f6: 6f ret + +15f7: 3f 00 16 call $1600 +15fa: 3d inc x +15fb: 3f 00 16 call $1600 +15fe: 1d dec x +15ff: 6f ret + +1600: f5 40 05 mov a,$0540+x +1603: d4 70 mov $70+x,a +1605: f5 50 05 mov a,$0550+x +1608: d4 80 mov $80+x,a +160a: f5 60 05 mov a,$0560+x +160d: d4 90 mov $90+x,a +160f: f5 70 05 mov a,$0570+x +1612: d4 a0 mov $a0+x,a +1614: f5 80 05 mov a,$0580+x +1617: d4 b0 mov $b0+x,a +1619: f5 90 05 mov a,$0590+x +161c: d4 c0 mov $c0+x,a +161e: f5 a0 05 mov a,$05a0+x +1621: d4 d0 mov $d0+x,a +1623: f5 b0 05 mov a,$05b0+x +1626: d5 00 01 mov $0100+x,a +1629: f5 c0 05 mov a,$05c0+x +162c: d5 10 01 mov $0110+x,a +162f: f5 d0 05 mov a,$05d0+x +1632: d4 30 mov $30+x,a +1634: f5 e0 05 mov a,$05e0+x +1637: d5 00 02 mov $0200+x,a +163a: f5 f0 05 mov a,$05f0+x +163d: d5 10 02 mov $0210+x,a +1640: f5 00 06 mov a,$0600+x +1643: d5 20 02 mov $0220+x,a +1646: f5 10 06 mov a,$0610+x +1649: d5 30 02 mov $0230+x,a +164c: f5 20 06 mov a,$0620+x +164f: d5 40 02 mov $0240+x,a +1652: f5 30 06 mov a,$0630+x +1655: d5 80 02 mov $0280+x,a +1658: f5 40 06 mov a,$0640+x +165b: d5 90 02 mov $0290+x,a +165e: f5 50 06 mov a,$0650+x +1661: d5 a0 02 mov $02a0+x,a +1664: f5 60 06 mov a,$0660+x +1667: d5 b0 02 mov $02b0+x,a +166a: f5 70 06 mov a,$0670+x +166d: d5 c0 02 mov $02c0+x,a +1670: f5 80 06 mov a,$0680+x +1673: d5 d0 02 mov $02d0+x,a +1676: f5 90 06 mov a,$0690+x +1679: d5 e0 02 mov $02e0+x,a +167c: f5 a0 06 mov a,$06a0+x +167f: d5 f0 02 mov $02f0+x,a +1682: f5 b0 06 mov a,$06b0+x +1685: d5 00 03 mov $0300+x,a +1688: f5 c0 06 mov a,$06c0+x +168b: d5 10 03 mov $0310+x,a +168e: f5 d0 06 mov a,$06d0+x +1691: d5 20 03 mov $0320+x,a +1694: f5 e0 06 mov a,$06e0+x +1697: d5 30 03 mov $0330+x,a +169a: f5 f0 06 mov a,$06f0+x +169d: d5 40 03 mov $0340+x,a +16a0: f5 00 07 mov a,$0700+x +16a3: d5 50 03 mov $0350+x,a +16a6: f5 10 07 mov a,$0710+x +16a9: d5 60 03 mov $0360+x,a +16ac: f5 20 07 mov a,$0720+x +16af: d5 70 03 mov $0370+x,a +16b2: f5 30 07 mov a,$0730+x +16b5: d5 80 03 mov $0380+x,a +16b8: f5 40 07 mov a,$0740+x +16bb: d5 90 03 mov $0390+x,a +16be: f5 50 07 mov a,$0750+x +16c1: d5 a0 03 mov $03a0+x,a +16c4: 6f ret + +16c5: dw $42,$00,$46,$00 +16c9: db $4b,$00,$4f,$00 +16cd: db $54,$00,$59,$00 +16d1: db $5e,$00,$64,$00 +16d5: db $6a,$00,$70,$00 +16d9: db $77,$00,$7e,$00 +16dd: db $85,$00,$8d,$00 +16e1: db $96,$00,$9f,$00 +16e5: db $a8,$00,$b2,$00 +16e9: db $bd,$00,$c8,$00 +16ed: db $d4,$00,$e1,$00 +16f1: db $ee,$00,$fc,$00 +16f5: db $0b,$01,$1b,$01 +16f9: db $2c,$01,$3e,$01 +16fd: db $51,$01,$65,$01 +1701: db $7a,$01,$91,$01 +1705: db $a9,$01,$c2,$01 +1709: db $dd,$01,$f9,$01 +170d: db $17,$02,$37,$02 +1711: db $59,$02,$7d,$02 +1715: db $a3,$02,$cb,$02 +1719: db $f5,$02,$22,$03 +171d: db $52,$03,$85,$03 +1721: db $ba,$03,$f3,$03 +1725: db $2f,$04,$6f,$04 +1729: db $b2,$04,$fa,$04 +172d: db $46,$05,$96,$05 +1731: db $eb,$05,$45,$06 +1735: db $a5,$06,$0a,$07 +1739: db $75,$07,$e6,$07 +173d: db $5f,$08,$de,$08 +1741: db $65,$09,$f4,$09 +1745: db $8c,$0a,$2c,$0b +1749: db $d6,$0b,$8b,$0c +174d: db $4a,$0d,$14,$0e +1751: db $ea,$0e,$cd,$0f +1755: db $be,$10,$bd,$11 +1759: db $cb,$12,$e9,$13 +175d: db $18,$15,$59,$16 +1761: db $ad,$17,$16,$19 +1765: db $94,$1a,$28,$1c +1769: db $d5,$1d,$9b,$1f + +176d: db "*Ver S1.20*" \ No newline at end of file diff --git a/snes/NSPC/Kennosuke Suemura/Super Bonk ($0700).bin b/snes/NSPC/Kennosuke Suemura/Super Bonk ($0700).bin new file mode 100644 index 00000000..592c74c9 Binary files /dev/null and b/snes/NSPC/Kennosuke Suemura/Super Bonk ($0700).bin differ diff --git a/snes/NSPC/Kennosuke Suemura/Super Bonk.s b/snes/NSPC/Kennosuke Suemura/Super Bonk.s new file mode 100644 index 00000000..1213d2fb --- /dev/null +++ b/snes/NSPC/Kennosuke Suemura/Super Bonk.s @@ -0,0 +1,1704 @@ +0700: 20 clrp +0701: cd cf mov x,#$cf +0703: bd mov sp,x +0704: e8 00 mov a,#$00 +0706: 5d mov x,a +0707: af mov (x)+,a +0708: c8 e9 cmp x,#$e9 +070a: d0 fb bne $0707 +070c: e8 00 mov a,#$00 +070e: 5d mov x,a +070f: d5 00 01 mov $0100+x,a +0712: 3d inc x +0713: c8 c1 cmp x,#$c1 +0715: d0 f8 bne $070f +0717: e8 ff mov a,#$ff +0719: 3f 09 14 call $1409 +071c: e8 7f mov a,#$7f +071e: 65 b0 05 cmp a,$05b0 +0721: f0 03 beq $0726 +0723: c5 b0 05 mov $05b0,a +0726: 3f db 0b call $0bdb +0729: e8 3a mov a,#$3a +072b: 8d 5d mov y,#$5d +072d: 3f e9 13 call $13e9 +0730: 8f 18 2d mov $2d,#$18 +0733: 8f 00 11 mov $11,#$00 +0736: e8 f0 mov a,#$f0 +0738: c5 f1 00 mov $00f1,a +073b: e8 10 mov a,#$10 +073d: c5 fa 00 mov $00fa,a +0740: e8 01 mov a,#$01 +0742: c4 f1 mov $f1,a +0744: 8f 00 34 mov $34,#$00 +0747: 8f 00 35 mov $35,#$00 +074a: e4 33 mov a,$33 +074c: 3f 09 14 call $1409 +074f: e4 2d mov a,$2d +0751: f0 dd beq $0730 +0753: e4 2f mov a,$2f +0755: f0 05 beq $075c +0757: e8 00 mov a,#$00 +0759: 3f 0e 14 call $140e +075c: e4 35 mov a,$35 +075e: 3f 18 14 call $1418 +0761: e4 32 mov a,$32 +0763: 3f 04 14 call $1404 +0766: 8d 00 mov y,#$00 +0768: cb 32 mov $32,y +076a: cb 33 mov $33,y +076c: ec fd 00 mov y,$00fd +076f: f0 fb beq $076c +0771: cb 12 mov $12,y +0773: e8 20 mov a,#$20 +0775: cf mul ya +0776: 60 clrc +0777: 84 11 adc a,$11 +0779: c4 11 mov $11,a +077b: 90 44 bcc $07c1 +077d: 8f 00 1b mov $1b,#$00 +0780: cd 02 mov x,#$02 +0782: 8f 04 20 mov $20,#$04 +0785: 8f 08 21 mov $21,#$08 +0788: 3f 93 0c call $0c93 +078b: 3f 3e 08 call $083e +078e: 8f 00 1b mov $1b,#$00 +0791: cd 01 mov x,#$01 +0793: 8f 03 20 mov $20,#$03 +0796: 8f 04 21 mov $21,#$04 +0799: 3f 93 0c call $0c93 +079c: 3f 3e 08 call $083e +079f: 8f 00 1b mov $1b,#$00 +07a2: cd 02 mov x,#$02 +07a4: 8f 02 20 mov $20,#$02 +07a7: 8f 02 21 mov $21,#$02 +07aa: 3f 93 0c call $0c93 +07ad: 3f 3e 08 call $083e +07b0: 8f 00 1b mov $1b,#$00 +07b3: cd 01 mov x,#$01 +07b5: 8f 01 20 mov $20,#$01 +07b8: 8f 01 21 mov $21,#$01 +07bb: 3f 93 0c call $0c93 +07be: 3f 3e 08 call $083e +07c1: e5 2d 00 mov a,$002d +07c4: ec 12 00 mov y,$0012 +07c7: cf mul ya +07c8: 60 clrc +07c9: 84 10 adc a,$10 +07cb: c4 10 mov $10,a +07cd: 90 63 bcc $0832 +07cf: 3f c9 0c call $0cc9 +07d2: cd 00 mov x,#$00 +07d4: 3f 93 0c call $0c93 +07d7: cd 03 mov x,#$03 +07d9: 3f 93 0c call $0c93 +07dc: 64 07 cmp a,$07 +07de: f0 4f beq $082f +07e0: 68 e0 cmp a,#$e0 +07e2: f0 12 beq $07f6 +07e4: 68 e1 cmp a,#$e1 +07e6: f0 14 beq $07fc +07e8: 68 e2 cmp a,#$e2 +07ea: f0 16 beq $0802 +07ec: 68 f0 cmp a,#$f0 +07ee: d0 18 bne $0808 +07f0: 3f 6d 0a call $0a6d +07f3: 5f 2f 08 jmp $082f + +07f6: 3f 7e 0a call $0a7e +07f9: 5f 2f 08 jmp $082f + +07fc: 3f 84 0a call $0a84 +07ff: 5f 2f 08 jmp $082f + +0802: 3f 8a 0a call $0a8a +0805: 5f 2f 08 jmp $082f + +0808: 48 7f eor a,#$7f +080a: c4 f7 mov $f7,a +080c: c5 b0 05 mov $05b0,a +080f: 3f f0 13 call $13f0 +0812: e5 b0 05 mov a,$05b0 +0815: 68 00 cmp a,#$00 +0817: d0 0c bne $0825 +0819: e8 00 mov a,#$00 +081b: 3f fa 13 call $13fa +081e: e8 00 mov a,#$00 +0820: 3f ff 13 call $13ff +0823: 2f 0a bra $082f +0825: e4 30 mov a,$30 +0827: 3f fa 13 call $13fa +082a: e4 31 mov a,$31 +082c: 3f ff 13 call $13ff +082f: fa 03 07 mov ($07),($03) +0832: e4 00 mov a,$00 +0834: f0 05 beq $083b +0836: cd 00 mov x,#$00 +0838: 8f 01 13 mov $13,#$01 +083b: 5f 4a 07 jmp $074a + +083e: d8 22 mov $22,x +0840: fb 00 mov y,$00+x +0842: f0 3a beq $087e +0844: dd mov a,y +0845: 08 80 or a,#$80 +0847: 48 80 eor a,#$80 +0849: fd mov y,a +084a: f4 08 mov a,$08+x +084c: 74 00 cmp a,$00+x +084e: f0 2e beq $087e +0850: f6 61 12 mov a,$1261+y +0853: 10 0c bpl $0861 +0855: f8 20 mov x,$20 +0857: 2d push a +0858: e8 ff mov a,#$ff +085a: d4 15 mov $15+x,a +085c: c4 1b mov $1b,a +085e: f8 22 mov x,$22 +0860: ae pop a +0861: 08 f0 or a,#$f0 +0863: 48 f0 eor a,#$f0 +0865: d4 a4 mov $a4+x,a +0867: 74 a6 cmp a,$a6+x +0869: f0 06 beq $0871 +086b: 80 setc +086c: b4 a6 sbc a,$a6+x +086e: 90 0b bcc $087b +0870: 60 clrc +0871: f4 a4 mov a,$a4+x +0873: d4 a6 mov $a6+x,a +0875: e8 01 mov a,#$01 +0877: d4 a8 mov $a8+x,a +0879: 2f 03 bra $087e +087b: 5f fb 08 jmp $08fb + +087e: fb 04 mov y,$04+x +0880: f4 00 mov a,$00+x +0882: d4 04 mov $04+x,a +0884: f0 f5 beq $087b +0886: dd mov a,y +0887: 74 00 cmp a,$00+x +0889: d0 02 bne $088d +088b: 2f ee bra $087b +088d: f4 00 mov a,$00+x +088f: d4 08 mov $08+x,a +0891: e4 1b mov a,$1b +0893: d0 34 bne $08c9 +0895: 2f 00 bra $0897 +0897: 8f 00 1b mov $1b,#$00 +089a: f8 22 mov x,$22 +089c: 3e 20 cmp x,$20 +089e: f0 21 beq $08c1 +08a0: 60 clrc +08a1: fa 20 b6 mov ($b6),($20) +08a4: fa 21 b7 mov ($b7),($21) +08a7: 8b 20 dec $20 +08a9: 8b 20 dec $20 +08ab: 4b 21 lsr $21 +08ad: 4b 21 lsr $21 +08af: f4 08 mov a,$08+x +08b1: f8 20 mov x,$20 +08b3: d4 0b mov $0b+x,a +08b5: 3f 05 09 call $0905 +08b8: fa b6 20 mov ($20),($b6) +08bb: fa b7 21 mov ($21),($b7) +08be: 2f 3b bra $08fb +08c0: 6f ret + +08c1: f4 08 mov a,$08+x +08c3: f8 20 mov x,$20 +08c5: d4 0b mov $0b+x,a +08c7: 2f 3c bra $0905 +08c9: 8f 00 1b mov $1b,#$00 +08cc: f8 22 mov x,$22 +08ce: 3e 20 cmp x,$20 +08d0: d0 21 bne $08f3 +08d2: 60 clrc +08d3: fa 20 b6 mov ($b6),($20) +08d6: fa 21 b7 mov ($b7),($21) +08d9: ab 20 inc $20 +08db: ab 20 inc $20 +08dd: 0b 21 asl $21 +08df: 0b 21 asl $21 +08e1: f4 08 mov a,$08+x +08e3: f8 20 mov x,$20 +08e5: d4 0b mov $0b+x,a +08e7: 3f 05 09 call $0905 +08ea: fa b6 20 mov ($20),($b6) +08ed: fa b7 21 mov ($21),($b7) +08f0: 2f 09 bra $08fb +08f2: 6f ret + +08f3: f4 08 mov a,$08+x +08f5: f8 20 mov x,$20 +08f7: d4 0b mov $0b+x,a +08f9: 2f 0a bra $0905 +08fb: f8 20 mov x,$20 +08fd: f4 0b mov a,$0b+x +08ff: d0 44 bne $0945 +0901: 6f ret + +0902: 5f fe 09 jmp $09fe + +0905: 8f 01 b5 mov $b5,#$01 +0908: 3f 37 0e call $0e37 +090b: e8 00 mov a,#$00 +090d: d4 1b mov $1b+x,a +090f: f4 0b mov a,$0b+x +0911: c8 02 cmp x,#$02 +0913: f0 11 beq $0926 +0915: c8 04 cmp x,#$04 +0917: f0 0d beq $0926 +0919: 1c asl a +091a: f0 e5 beq $0901 +091c: 5d mov x,a +091d: f5 ff 14 mov a,$14ff+x +0920: fd mov y,a +0921: f5 fe 14 mov a,$14fe+x +0924: 2f 0b bra $0931 +0926: 1c asl a +0927: f0 d8 beq $0901 +0929: 5d mov x,a +092a: f5 ff 21 mov a,$21ff+x +092d: fd mov y,a +092e: f5 fe 21 mov a,$21fe+x +0931: fa 20 b1 mov ($b1),($20) +0934: 0b b1 asl $b1 +0936: 0b b1 asl $b1 +0938: f8 b1 mov x,$b1 +093a: db 91 mov $91+x,y +093c: d4 90 mov $90+x,a +093e: f8 20 mov x,$20 +0940: e8 01 mov a,#$01 +0942: d5 90 05 mov $0590+x,a +0945: f5 90 05 mov a,$0590+x +0948: f0 b8 beq $0902 +094a: e8 00 mov a,#$00 +094c: d5 90 05 mov $0590+x,a +094f: 8d 07 mov y,#$07 +0951: c8 01 cmp x,#$01 +0953: f0 11 beq $0966 +0955: c8 02 cmp x,#$02 +0957: f0 12 beq $096b +0959: c8 03 cmp x,#$03 +095b: f0 13 beq $0970 +095d: c8 04 cmp x,#$04 +095f: f0 14 beq $0975 +0961: 8f bb ba mov $ba,#$bb +0964: 2f 12 bra $0978 +0966: 3f 41 0a call $0a41 +0969: 2f 0d bra $0978 +096b: 3f 4c 0a call $0a4c +096e: 2f 08 bra $0978 +0970: 3f 57 0a call $0a57 +0973: 2f 03 bra $0978 +0975: 3f 62 0a call $0a62 +0978: 8f 04 15 mov $15,#$04 +097b: 8f 10 13 mov $13,#$10 +097e: eb 15 mov y,$15 +0980: f4 41 mov a,$41+x +0982: f0 67 beq $09eb +0984: 09 13 33 or ($33),($13) +0987: 3f 4d 0c call $0c4d +098a: 60 clrc +098b: e8 02 mov a,#$02 +098d: eb 15 mov y,$15 +098f: cf mul ya +0990: fd mov y,a +0991: f6 00 01 mov a,$0100+y +0994: f0 50 beq $09e6 +0996: d8 b1 mov $b1,x +0998: 3f 1d 0a call $0a1d +099b: d8 b0 mov $b0,x +099d: dd mov a,y +099e: 48 08 eor a,#$08 +09a0: 60 clrc +09a1: 84 b0 adc a,$b0 +09a3: 5d mov x,a +09a4: e8 00 mov a,#$00 +09a6: d4 40 mov $40+x,a +09a8: d4 41 mov $41+x,a +09aa: d5 00 05 mov $0500+x,a +09ad: cb b0 mov $b0,y +09af: f8 b0 mov x,$b0 +09b1: 8f 01 b5 mov $b5,#$01 +09b4: 3f 9c 0e call $0e9c +09b7: eb b0 mov y,$b0 +09b9: eb b0 mov y,$b0 +09bb: cd 01 mov x,#$01 +09bd: f6 00 01 mov a,$0100+y +09c0: 68 01 cmp a,#$01 +09c2: f0 12 beq $09d6 +09c4: 3d inc x +09c5: 68 02 cmp a,#$02 +09c7: f0 0d beq $09d6 +09c9: 3d inc x +09ca: 68 04 cmp a,#$04 +09cc: f0 08 beq $09d6 +09ce: 3d inc x +09cf: 68 08 cmp a,#$08 +09d1: f0 03 beq $09d6 +09d3: 8f ee ba mov $ba,#$ee +09d6: d4 1b mov $1b+x,a +09d8: f4 15 mov a,$15+x +09da: 10 04 bpl $09e0 +09dc: e8 7f mov a,#$7f +09de: 2f 02 bra $09e2 +09e0: e8 00 mov a,#$00 +09e2: d4 15 mov $15+x,a +09e4: f8 b1 mov x,$b1 +09e6: e4 21 mov a,$21 +09e8: d6 00 01 mov $0100+y,a +09eb: e8 02 mov a,#$02 +09ed: d5 61 01 mov $0161+x,a +09f0: e8 00 mov a,#$00 +09f2: d5 91 01 mov $0191+x,a +09f5: 3d inc x +09f6: 3d inc x +09f7: ab 15 inc $15 +09f9: 0b 13 asl $13 +09fb: d0 81 bne $097e +09fd: 6f ret + +09fe: f4 1b mov a,$1b+x +0a00: 68 af cmp a,#$af +0a02: f0 0e beq $0a12 +0a04: e4 21 mov a,$21 +0a06: 3f 1d 0a call $0a1d +0a09: 8f 10 13 mov $13,#$10 +0a0c: 8f 04 15 mov $15,#$04 +0a0f: 5f 45 0d jmp $0d45 + +0a12: 6f ret + +0a13: 2d push a +0a14: f5 00 01 mov a,$0100+x +0a17: c4 b2 mov $b2,a +0a19: d8 b3 mov $b3,x +0a1b: ae pop a +0a1c: 6f ret + +0a1d: 68 01 cmp a,#$01 +0a1f: f0 0f beq $0a30 +0a21: 68 02 cmp a,#$02 +0a23: f0 0f beq $0a34 +0a25: 68 04 cmp a,#$04 +0a27: f0 0f beq $0a38 +0a29: 68 08 cmp a,#$08 +0a2b: f0 0f beq $0a3c +0a2d: 8f ab ba mov $ba,#$ab +0a30: cd 10 mov x,#$10 +0a32: 2f 0c bra $0a40 +0a34: cd 18 mov x,#$18 +0a36: 2f 08 bra $0a40 +0a38: cd 20 mov x,#$20 +0a3a: 2f 04 bra $0a40 +0a3c: cd 28 mov x,#$28 +0a3e: 2f 00 bra $0a40 +0a40: 6f ret + +0a41: f7 94 mov a,($94)+y +0a43: d6 50 00 mov $0050+y,a +0a46: dc dec y +0a47: 10 f8 bpl $0a41 +0a49: cd 10 mov x,#$10 +0a4b: 6f ret + +0a4c: f7 98 mov a,($98)+y +0a4e: d6 58 00 mov $0058+y,a +0a51: dc dec y +0a52: 10 f8 bpl $0a4c +0a54: cd 18 mov x,#$18 +0a56: 6f ret + +0a57: f7 9c mov a,($9c)+y +0a59: d6 60 00 mov $0060+y,a +0a5c: dc dec y +0a5d: 10 f8 bpl $0a57 +0a5f: cd 20 mov x,#$20 +0a61: 6f ret + +0a62: f7 a0 mov a,($a0)+y +0a64: d6 68 00 mov $0068+y,a +0a67: dc dec y +0a68: 10 f8 bpl $0a62 +0a6a: cd 28 mov x,#$28 +0a6c: 6f ret + +0a6d: e8 40 mov a,#$40 +0a6f: 3f 0e 14 call $140e +0a72: e4 f7 mov a,$f7 +0a74: 68 00 cmp a,#$00 +0a76: d0 fa bne $0a72 +0a78: e8 00 mov a,#$00 +0a7a: 3f 0e 14 call $140e +0a7d: 6f ret + +0a7e: e8 bb mov a,#$bb +0a80: c5 a0 05 mov $05a0,a +0a83: 6f ret + +0a84: e8 00 mov a,#$00 +0a86: c5 a0 05 mov $05a0,a +0a89: 6f ret + +0a8a: e5 a0 05 mov a,$05a0 +0a8d: c5 f7 00 mov $00f7,a +0a90: e4 f7 mov a,$f7 +0a92: 68 00 cmp a,#$00 +0a94: d0 fa bne $0a90 +0a96: 6f ret + +0a97: f2 2a clr7 $2a +0a99: f4 c0 mov a,$c0+x +0a9b: f0 34 beq $0ad1 +0a9d: f5 01 03 mov a,$0301+x +0aa0: f0 09 beq $0aab +0aa2: f5 01 03 mov a,$0301+x +0aa5: 9c dec a +0aa6: d5 01 03 mov $0301+x,a +0aa9: 2f 26 bra $0ad1 +0aab: e2 2a set7 $2a +0aad: 9b c0 dec $c0+x +0aaf: d0 0b bne $0abc +0ab1: f5 91 03 mov a,$0391+x +0ab4: d5 31 03 mov $0331+x,a +0ab7: f5 90 03 mov a,$0390+x +0aba: 2f 10 bra $0acc +0abc: 60 clrc +0abd: f5 31 03 mov a,$0331+x +0ac0: 95 61 03 adc a,$0361+x +0ac3: d5 31 03 mov $0331+x,a +0ac6: f5 30 03 mov a,$0330+x +0ac9: 95 60 03 adc a,$0360+x +0acc: d5 30 03 mov $0330+x,a +0acf: 2f 00 bra $0ad1 +0ad1: 3f 23 11 call $1123 +0ad4: f5 00 04 mov a,$0400+x +0ad7: f0 4f beq $0b28 +0ad9: f5 31 04 mov a,$0431+x +0adc: de c1 47 cbne $c1+x,$0b26 +0adf: f5 c0 04 mov a,$04c0+x +0ae2: 75 90 04 cmp a,$0490+x +0ae5: d0 05 bne $0aec +0ae7: f5 60 04 mov a,$0460+x +0aea: 2f 0e bra $0afa +0aec: 40 setp +0aed: bb c0 inc $c0+x +0aef: 20 clrp +0af0: fd mov y,a +0af1: f0 03 beq $0af6 +0af3: f5 00 04 mov a,$0400+x +0af6: 60 clrc +0af7: 95 91 04 adc a,$0491+x +0afa: d5 00 04 mov $0400+x,a +0afd: f5 30 04 mov a,$0430+x +0b00: 60 clrc +0b01: 95 61 04 adc a,$0461+x +0b04: d5 30 04 mov $0430+x,a +0b07: c4 29 mov $29,a +0b09: 1c asl a +0b0a: 1c asl a +0b0b: 90 02 bcc $0b0f +0b0d: 48 ff eor a,#$ff +0b0f: fd mov y,a +0b10: f5 00 04 mov a,$0400+x +0b13: 68 f1 cmp a,#$f1 +0b15: 90 05 bcc $0b1c +0b17: 28 0f and a,#$0f +0b19: cf mul ya +0b1a: 2f 04 bra $0b20 +0b1c: cf mul ya +0b1d: dd mov a,y +0b1e: 8d 00 mov y,#$00 +0b20: 3f d3 0b call $0bd3 +0b23: 5f 54 0f jmp $0f54 + +0b26: bb c1 inc $c1+x +0b28: e3 2a f8 bbs7 $2a,$0b23 +0b2b: 6f ret + +0b2c: f4 41 mov a,$41+x +0b2e: f0 03 beq $0b33 +0b30: 3f 3a 0b call $0b3a +0b33: 3d inc x +0b34: 3d inc x +0b35: 0b 13 asl $13 +0b37: d0 f3 bne $0b2c +0b39: 6f ret + +0b3a: f5 00 04 mov a,$0400+x +0b3d: f0 e9 beq $0b28 +0b3f: f5 31 04 mov a,$0431+x +0b42: de c1 e3 cbne $c1+x,$0b28 +0b45: eb 2d mov y,$2d +0b47: f5 61 04 mov a,$0461+x +0b4a: cf mul ya +0b4b: dd mov a,y +0b4c: 60 clrc +0b4d: 85 30 04 adc a,$0430 +0b50: 5f 07 0b jmp $0b07 + +0b53: f5 00 03 mov a,$0300+x +0b56: fd mov y,a +0b57: e5 a0 05 mov a,$05a0 +0b5a: d0 06 bne $0b62 +0b5c: f6 d4 13 mov a,$13d4+y +0b5f: 5f 65 0b jmp $0b65 + +0b62: f6 aa 13 mov a,$13aa+y +0b65: fd mov y,a +0b66: f5 60 02 mov a,$0260+x +0b69: cf mul ya +0b6a: f5 90 02 mov a,$0290+x +0b6d: cf mul ya +0b6e: dd mov a,y +0b6f: cf mul ya +0b70: dd mov a,y +0b71: d5 30 02 mov $0230+x,a +0b74: eb 15 mov y,$15 +0b76: 3f 3d 14 call $143d +0b79: f5 00 03 mov a,$0300+x +0b7c: fd mov y,a +0b7d: e5 a0 05 mov a,$05a0 +0b80: d0 06 bne $0b88 +0b82: f6 d4 13 mov a,$13d4+y +0b85: 5f 8b 0b jmp $0b8b + +0b88: f6 bf 13 mov a,$13bf+y +0b8b: fd mov y,a +0b8c: f5 61 02 mov a,$0261+x +0b8f: 60 clrc +0b90: cf mul ya +0b91: f5 91 02 mov a,$0291+x +0b94: cf mul ya +0b95: dd mov a,y +0b96: cf mul ya +0b97: dd mov a,y +0b98: d5 31 02 mov $0231+x,a +0b9b: eb 15 mov y,$15 +0b9d: 3f 49 14 call $1449 +0ba0: 6f ret + +0ba1: ed notc +0ba2: 6b 29 ror $29 +0ba4: 10 03 bpl $0ba9 +0ba6: 48 ff eor a,#$ff +0ba8: bc inc a +0ba9: 8d 00 mov y,#$00 +0bab: 9e div ya,x +0bac: 2d push a +0bad: e8 00 mov a,#$00 +0baf: 9e div ya,x +0bb0: ee pop y +0bb1: f8 14 mov x,$14 +0bb3: f3 29 06 bbc7 $29,$0bbc +0bb6: da 23 movw $23,ya +0bb8: ba 2b movw ya,$2b +0bba: 9a 23 subw ya,$23 +0bbc: 6f ret + +0bbd: e2 2a set7 $2a +0bbf: cb 29 mov $29,y +0bc1: 3f b3 0b call $0bb3 +0bc4: 6d push y +0bc5: eb 10 mov y,$10 +0bc7: cf mul ya +0bc8: cb 23 mov $23,y +0bca: 8f 00 24 mov $24,#$00 +0bcd: eb 10 mov y,$10 +0bcf: ae pop a +0bd0: cf mul ya +0bd1: 7a 23 addw ya,$23 +0bd3: 3f b3 0b call $0bb3 +0bd6: 7a 27 addw ya,$27 +0bd8: da 27 movw $27,ya +0bda: 6f ret + +0bdb: e8 bf mov a,#$bf +0bdd: cd 01 mov x,#$01 +0bdf: d4 1b mov $1b+x,a +0be1: 3d inc x +0be2: d4 1b mov $1b+x,a +0be4: 3d inc x +0be5: d4 1b mov $1b+x,a +0be7: 3d inc x +0be8: d4 1b mov $1b+x,a +0bea: e8 00 mov a,#$00 +0bec: 3f 22 14 call $1422 +0bef: e8 00 mov a,#$00 +0bf1: 3f 13 14 call $1413 +0bf4: e8 00 mov a,#$00 +0bf6: 3f fa 13 call $13fa +0bf9: e8 00 mov a,#$00 +0bfb: 3f ff 13 call $13ff +0bfe: e8 20 mov a,#$20 +0c00: 3f 0e 14 call $140e +0c03: e5 b0 05 mov a,$05b0 +0c06: 3f f0 13 call $13f0 +0c09: e8 00 mov a,#$00 +0c0b: 3f 1d 14 call $141d +0c0e: e8 04 mov a,#$04 +0c10: 3f 2c 14 call $142c +0c13: e8 dd mov a,#$dd +0c15: 8d 6d mov y,#$6d +0c17: cb f2 mov $f2,y +0c19: c4 f3 mov $f3,a +0c1b: 8d 00 mov y,#$00 +0c1d: e8 7f mov a,#$7f +0c1f: 3f 31 14 call $1431 +0c22: fc inc y +0c23: e8 00 mov a,#$00 +0c25: 3f 31 14 call $1431 +0c28: fc inc y +0c29: e8 00 mov a,#$00 +0c2b: 3f 31 14 call $1431 +0c2e: fc inc y +0c2f: e8 00 mov a,#$00 +0c31: 3f 31 14 call $1431 +0c34: fc inc y +0c35: e8 00 mov a,#$00 +0c37: 3f 31 14 call $1431 +0c3a: fc inc y +0c3b: e8 00 mov a,#$00 +0c3d: 3f 31 14 call $1431 +0c40: fc inc y +0c41: e8 00 mov a,#$00 +0c43: 3f 31 14 call $1431 +0c46: fc inc y +0c47: e8 00 mov a,#$00 +0c49: 3f 31 14 call $1431 +0c4c: 6f ret + +0c4d: e8 00 mov a,#$00 +0c4f: d5 90 02 mov $0290+x,a +0c52: d5 91 02 mov $0291+x,a +0c55: d5 30 02 mov $0230+x,a +0c58: d5 31 02 mov $0231+x,a +0c5b: e8 00 mov a,#$00 +0c5d: d5 01 02 mov $0201+x,a +0c60: d5 91 03 mov $0391+x,a +0c63: d5 c0 00 mov $00c0+x,a +0c66: d5 01 03 mov $0301+x,a +0c69: d5 00 04 mov $0400+x,a +0c6c: d5 c1 00 mov $00c1+x,a +0c6f: d5 30 04 mov $0430+x,a +0c72: d5 31 04 mov $0431+x,a +0c75: d5 60 04 mov $0460+x,a +0c78: d5 61 04 mov $0461+x,a +0c7b: d5 c0 04 mov $04c0+x,a +0c7e: d5 90 04 mov $0490+x,a +0c81: d5 91 04 mov $0491+x,a +0c84: d5 30 05 mov $0530+x,a +0c87: d5 00 05 mov $0500+x,a +0c8a: d5 01 05 mov $0501+x,a +0c8d: e8 0a mov a,#$0a +0c8f: d5 00 03 mov $0300+x,a +0c92: 6f ret + +0c93: f4 00 mov a,$00+x +0c95: d5 f4 00 mov $00f4+x,a +0c98: f5 f4 00 mov a,$00f4+x +0c9b: 75 f4 00 cmp a,$00f4+x +0c9e: d0 f8 bne $0c98 +0ca0: d4 00 mov $00+x,a +0ca2: 6f ret + +0ca3: c4 08 mov $08,a +0ca5: 1c asl a +0ca6: f0 17 beq $0cbf +0ca8: 5d mov x,a +0ca9: f5 ff 22 mov a,$22ff+x +0cac: fd mov y,a +0cad: f5 fe 22 mov a,$22fe+x +0cb0: da 90 movw $90,ya +0cb2: e8 01 mov a,#$01 +0cb4: c5 90 05 mov $0590,a +0cb7: 8f ff 2f mov $2f,#$ff +0cba: e8 00 mov a,#$00 +0cbc: 3f 0e 14 call $140e +0cbf: 6f ret + +0cc0: 5f 7a 14 jmp $147a + +0cc3: 5f 87 14 jmp $1487 + +0cc6: 5f 9b 14 jmp $149b + +0cc9: eb 04 mov y,$04 +0ccb: e4 00 mov a,$00 +0ccd: c4 04 mov $04,a +0ccf: f0 18 beq $0ce9 +0cd1: 68 ff cmp a,#$ff +0cd3: f0 eb beq $0cc0 +0cd5: 68 ee cmp a,#$ee +0cd7: f0 ea beq $0cc3 +0cd9: 68 d1 cmp a,#$d1 +0cdb: f0 e9 beq $0cc6 +0cdd: 08 80 or a,#$80 +0cdf: 48 80 eor a,#$80 +0ce1: 68 0c cmp a,#$0c +0ce3: b0 04 bcs $0ce9 +0ce5: 7e 00 cmp y,$00 +0ce7: d0 ba bne $0ca3 +0ce9: e4 08 mov a,$08 +0ceb: f0 d2 beq $0cbf +0ced: e5 90 05 mov a,$0590 +0cf0: f0 44 beq $0d36 +0cf2: e8 00 mov a,#$00 +0cf4: c5 90 05 mov $0590,a +0cf7: 8d 0f mov y,#$0f +0cf9: f7 90 mov a,($90)+y +0cfb: f0 08 beq $0d05 +0cfd: d6 70 00 mov $0070+y,a +0d00: d6 40 00 mov $0040+y,a +0d03: 2f 08 bra $0d0d +0d05: e8 00 mov a,#$00 +0d07: d6 70 00 mov $0070+y,a +0d0a: d6 40 00 mov $0040+y,a +0d0d: dc dec y +0d0e: 10 e9 bpl $0cf9 +0d10: 8f 00 36 mov $36,#$00 +0d13: 8f 18 2d mov $2d,#$18 +0d16: 8f 00 15 mov $15,#$00 +0d19: cd 00 mov x,#$00 +0d1b: 8f 01 13 mov $13,#$01 +0d1e: d8 14 mov $14,x +0d20: eb 15 mov y,$15 +0d22: e8 00 mov a,#$00 +0d24: 3f 4d 0c call $0c4d +0d27: e8 01 mov a,#$01 +0d29: d5 61 01 mov $0161+x,a +0d2c: d4 80 mov $80+x,a +0d2e: 3d inc x +0d2f: 3d inc x +0d30: ab 15 inc $15 +0d32: 0b 13 asl $13 +0d34: d0 e8 bne $0d1e +0d36: cd 00 mov x,#$00 +0d38: 8d 00 mov y,#$00 +0d3a: 8f 01 13 mov $13,#$01 +0d3d: d8 15 mov $15,x +0d3f: 8f 00 20 mov $20,#$00 +0d42: 8f 00 21 mov $21,#$00 +0d45: d8 14 mov $14,x +0d47: f4 41 mov a,$41+x +0d49: f0 0b beq $0d56 +0d4b: f5 61 01 mov a,$0161+x +0d4e: 9c dec a +0d4f: d5 61 01 mov $0161+x,a +0d52: d0 67 bne $0dbb +0d54: 2f 03 bra $0d59 +0d56: 5f eb 0d jmp $0deb + +0d59: 3f 24 10 call $1024 +0d5c: 30 0d bmi $0d6b +0d5e: d5 60 01 mov $0160+x,a +0d61: f0 22 beq $0d85 +0d63: 3f 24 10 call $1024 +0d66: 30 20 bmi $0d88 +0d68: 3f f0 0f call $0ff0 +0d6b: 68 d5 cmp a,#$d5 ; set instrument +0d6d: 90 19 bcc $0d88 +0d6f: 68 d6 cmp a,#$d6 ; call subroutine +0d71: f0 09 beq $0d7c +0d73: 68 fe cmp a,#$fe +0d75: f0 08 beq $0d7f +0d77: 3f 12 10 call $1012 +0d7a: 2f dd bra $0d59 +0d7c: 5f b7 0e jmp $0eb7 +0d7f: 3f 25 0e call $0e25 +0d82: 5f eb 0d jmp $0deb + +0d85: 5f e6 0e jmp $0ee6 + +0d88: 3f 13 0a call $0a13 +0d8b: d0 24 bne $0db1 +0d8d: ad ca cmp y,#$ca +0d8f: 90 06 bcc $0d97 +0d91: 3f 2e 10 call $102e +0d94: 8d a4 mov y,#$a4 +0d96: dd mov a,y +0d97: ad c8 cmp y,#$c8 +0d99: f0 16 beq $0db1 +0d9b: ad c9 cmp y,#$c9 +0d9d: f0 06 beq $0da5 +0d9f: 60 clrc +0da0: 3f 28 0f call $0f28 +0da3: 2f 09 bra $0dae +0da5: ad c9 cmp y,#$c9 +0da7: 90 08 bcc $0db1 +0da9: 09 13 33 or ($33),($13) +0dac: 2f 03 bra $0db1 +0dae: 09 13 32 or ($32),($13) +0db1: f5 60 01 mov a,$0160+x +0db4: d5 61 01 mov $0161+x,a +0db7: fd mov y,a +0db8: 5f e2 0f jmp $0fe2 + +0dbb: f5 91 01 mov a,$0191+x +0dbe: f0 25 beq $0de5 +0dc0: 9c dec a +0dc1: d5 91 01 mov $0191+x,a +0dc4: d0 1f bne $0de5 +0dc6: e7 40 mov a,($40+x) +0dc8: 68 c8 cmp a,#$c8 +0dca: f0 19 beq $0de5 +0dcc: bb 40 inc $40+x +0dce: e7 40 mov a,($40+x) +0dd0: 9b 40 dec $40+x +0dd2: 68 c8 cmp a,#$c8 +0dd4: f0 0f beq $0de5 +0dd6: f5 30 05 mov a,$0530+x +0dd9: 68 01 cmp a,#$01 +0ddb: f0 08 beq $0de5 +0ddd: 3f 13 0a call $0a13 +0de0: d0 03 bne $0de5 +0de2: 09 13 33 or ($33),($13) +0de5: 3f ea 10 call $10ea +0de8: 3f 97 0a call $0a97 +0deb: 3d inc x +0dec: 3d inc x +0ded: ab 15 inc $15 +0def: 0b 13 asl $13 +0df1: d0 02 bne $0df5 +0df3: 2f 03 bra $0df8 +0df5: 5f 45 0d jmp $0d45 + +0df8: cd cf mov x,#$cf +0dfa: bd mov sp,x +0dfb: e5 20 00 mov a,$0020 +0dfe: d0 03 bne $0e03 +0e00: 5f d2 07 jmp $07d2 + +0e03: 8c 20 00 dec $0020 +0e06: e4 20 mov a,$20 +0e08: f0 18 beq $0e22 +0e0a: 78 03 20 cmp $20,#$03 +0e0d: f0 0a beq $0e19 +0e0f: 78 02 20 cmp $20,#$02 +0e12: f0 08 beq $0e1c +0e14: 78 01 20 cmp $20,#$01 +0e17: f0 06 beq $0e1f +0e19: 5f 8e 07 jmp $078e + +0e1c: 5f 9f 07 jmp $079f + +0e1f: 5f b0 07 jmp $07b0 + +0e22: 5f c1 07 jmp $07c1 + +0e25: 8f 00 b5 mov $b5,#$00 +0e28: e4 20 mov a,$20 +0e2a: d0 0b bne $0e37 +0e2c: e8 00 mov a,#$00 +0e2e: d4 40 mov $40+x,a +0e30: d4 41 mov $41+x,a +0e32: d4 70 mov $70+x,a +0e34: d4 71 mov $71+x,a +0e36: 6f ret + +0e37: fa 15 b4 mov ($b4),($15) +0e3a: cd 0e mov x,#$0e +0e3c: 8f 07 15 mov $15,#$07 +0e3f: 8f 80 13 mov $13,#$80 +0e42: f5 00 01 mov a,$0100+x +0e45: d0 40 bne $0e87 +0e47: 4c 13 00 lsr $0013 +0e4a: 8c 15 00 dec $0015 +0e4d: 1d dec x +0e4e: 1d dec x +0e4f: c8 06 cmp x,#$06 +0e51: d0 ef bne $0e42 +0e53: e8 af mov a,#$af +0e55: f8 20 mov x,$20 +0e57: d4 1b mov $1b+x,a +0e59: f4 15 mov a,$15+x +0e5b: 10 04 bpl $0e61 +0e5d: e8 7f mov a,#$7f +0e5f: 2f 02 bra $0e63 +0e61: e8 00 mov a,#$00 +0e63: d4 15 mov $15+x,a +0e65: f8 22 mov x,$22 +0e67: f4 a8 mov a,$a8+x +0e69: d0 0c bne $0e77 +0e6b: e8 00 mov a,#$00 +0e6d: d4 a4 mov $a4+x,a +0e6f: d4 a6 mov $a6+x,a +0e71: f4 00 mov a,$00+x +0e73: d4 04 mov $04+x,a +0e75: d4 08 mov $08+x,a +0e77: e8 00 mov a,#$00 +0e79: d4 a8 mov $a8+x,a +0e7b: 8f 80 13 mov $13,#$80 +0e7e: fa b4 15 mov ($15),($b4) +0e81: 8f 00 b5 mov $b5,#$00 +0e84: f8 20 mov x,$20 +0e86: 6f ret + +0e87: e4 b5 mov a,$b5 +0e89: f0 00 beq $0e8b +0e8b: f5 00 01 mov a,$0100+x +0e8e: 04 21 or a,$21 +0e90: 44 21 eor a,$21 +0e92: d5 00 01 mov $0100+x,a +0e95: d0 b0 bne $0e47 +0e97: 3f 9c 0e call $0e9c +0e9a: 2f ab bra $0e47 +0e9c: e8 00 mov a,#$00 +0e9e: d5 01 02 mov $0201+x,a +0ea1: d5 91 03 mov $0391+x,a +0ea4: d4 c0 mov $c0+x,a +0ea6: d5 01 03 mov $0301+x,a +0ea9: 09 13 33 or ($33),($13) +0eac: f5 00 02 mov a,$0200+x +0eaf: 3f 39 10 call $1039 +0eb2: 3f 53 0b call $0b53 +0eb5: 6f ret + +0eb6: 6f ret + +0eb7: f4 41 mov a,$41+x +0eb9: fd mov y,a +0eba: f4 40 mov a,$40+x +0ebc: db 71 mov $71+x,y +0ebe: d4 70 mov $70+x,a +0ec0: bb 70 inc $70+x +0ec2: d0 02 bne $0ec6 +0ec4: bb 71 inc $71+x +0ec6: bb 70 inc $70+x +0ec8: d0 02 bne $0ecc +0eca: bb 71 inc $71+x +0ecc: e7 70 mov a,($70+x) +0ece: d4 80 mov $80+x,a +0ed0: 9b 70 dec $70+x +0ed2: f4 70 mov a,$70+x +0ed4: 68 ff cmp a,#$ff +0ed6: d0 02 bne $0eda +0ed8: 9b 71 dec $71+x +0eda: 9b 70 dec $70+x +0edc: f4 70 mov a,$70+x +0ede: 68 ff cmp a,#$ff +0ee0: d0 02 bne $0ee4 +0ee2: 9b 71 dec $71+x +0ee4: 2f 06 bra $0eec +0ee6: 9b 80 dec $80+x +0ee8: f4 80 mov a,$80+x +0eea: f0 1c beq $0f08 +0eec: e7 70 mov a,($70+x) +0eee: d5 40 00 mov $0040+x,a +0ef1: bb 70 inc $70+x +0ef3: d0 02 bne $0ef7 +0ef5: bb 71 inc $71+x +0ef7: e7 70 mov a,($70+x) +0ef9: d5 41 00 mov $0041+x,a +0efc: 9b 70 dec $70+x +0efe: f4 70 mov a,$70+x +0f00: 68 ff cmp a,#$ff +0f02: d0 02 bne $0f06 +0f04: 9b 71 dec $71+x +0f06: 2f 1b bra $0f23 +0f08: bb 70 inc $70+x +0f0a: d0 02 bne $0f0e +0f0c: bb 71 inc $71+x +0f0e: bb 70 inc $70+x +0f10: d0 02 bne $0f14 +0f12: bb 71 inc $71+x +0f14: bb 70 inc $70+x +0f16: d0 02 bne $0f1a +0f18: bb 71 inc $71+x +0f1a: f4 71 mov a,$71+x +0f1c: fd mov y,a +0f1d: f4 70 mov a,$70+x +0f1f: db 41 mov $41+x,y +0f21: d4 40 mov $40+x,a +0f23: eb 15 mov y,$15 +0f25: 5f 59 0d jmp $0d59 + +0f28: dd mov a,y +0f29: 28 7f and a,#$7f +0f2b: 60 clrc +0f2c: 84 36 adc a,$36 +0f2e: 60 clrc +0f2f: 95 01 02 adc a,$0201+x +0f32: d5 30 03 mov $0330+x,a +0f35: f5 91 03 mov a,$0391+x +0f38: d5 31 03 mov $0331+x,a +0f3b: f5 90 04 mov a,$0490+x +0f3e: 5c lsr a +0f3f: e8 00 mov a,#$00 +0f41: 7c ror a +0f42: d5 30 04 mov $0430+x,a +0f45: e8 00 mov a,#$00 +0f47: d4 c1 mov $c1+x,a +0f49: d5 c0 04 mov $04c0+x,a +0f4c: 3f 23 11 call $1123 +0f4f: 2f 03 bra $0f54 +0f51: 5f e1 0f jmp $0fe1 + +; dispatch vcmd +0f54: 3f 13 0a call $0a13 +0f57: d0 f8 bne $0f51 +0f59: 8d 00 mov y,#$00 +0f5b: e4 28 mov a,$28 +0f5d: 80 setc +0f5e: a8 34 sbc a,#$34 +0f60: b0 09 bcs $0f6b +0f62: e4 28 mov a,$28 +0f64: 80 setc +0f65: a8 13 sbc a,#$13 +0f67: b0 06 bcs $0f6f +0f69: dc dec y +0f6a: 1c asl a +0f6b: 7a 27 addw ya,$27 +0f6d: da 27 movw $27,ya +0f6f: e4 28 mov a,$28 +0f71: 1c asl a +0f72: 8d 00 mov y,#$00 +0f74: cd 18 mov x,#$18 +0f76: 9e div ya,x +0f77: 5d mov x,a +0f78: f6 e2 12 mov a,$12e2+y +0f7b: c4 24 mov $24,a +0f7d: f6 e1 12 mov a,$12e1+y +0f80: c4 23 mov $23,a +0f82: f6 e4 12 mov a,$12e4+y +0f85: 2d push a +0f86: f6 e3 12 mov a,$12e3+y +0f89: ee pop y +0f8a: 9a 23 subw ya,$23 +0f8c: eb 27 mov y,$27 +0f8e: cf mul ya +0f8f: dd mov a,y +0f90: 8d 00 mov y,#$00 +0f92: 7a 23 addw ya,$23 +0f94: cb 24 mov $24,y +0f96: 1c asl a +0f97: 2b 24 rol $24 +0f99: c4 23 mov $23,a +0f9b: 2f 04 bra $0fa1 +0f9d: 4b 24 lsr $24 +0f9f: 7c ror a +0fa0: 3d inc x +0fa1: c8 06 cmp x,#$06 +0fa3: d0 f8 bne $0f9d +0fa5: c4 23 mov $23,a +0fa7: f8 14 mov x,$14 +0fa9: f5 c0 02 mov a,$02c0+x +0fac: eb 24 mov y,$24 +0fae: cf mul ya +0faf: da 25 movw $25,ya +0fb1: f5 c0 02 mov a,$02c0+x +0fb4: eb 23 mov y,$23 +0fb6: cf mul ya +0fb7: 6d push y +0fb8: f5 c1 02 mov a,$02c1+x +0fbb: eb 23 mov y,$23 +0fbd: cf mul ya +0fbe: 7a 25 addw ya,$25 +0fc0: da 25 movw $25,ya +0fc2: f5 c1 02 mov a,$02c1+x +0fc5: eb 24 mov y,$24 +0fc7: cf mul ya +0fc8: fd mov y,a +0fc9: ae pop a +0fca: 7a 25 addw ya,$25 +0fcc: da 25 movw $25,ya +0fce: e4 26 mov a,$26 +0fd0: d5 31 01 mov $0131+x,a +0fd3: 2d push a +0fd4: e4 25 mov a,$25 +0fd6: d5 30 01 mov $0130+x,a +0fd9: ce pop x +0fda: eb 15 mov y,$15 +0fdc: 3f 55 14 call $1455 +0fdf: f8 14 mov x,$14 +0fe1: 6f ret + +0fe2: f5 90 01 mov a,$0190+x +0fe5: cf mul ya +0fe6: dd mov a,y +0fe7: d0 01 bne $0fea +0fe9: bc inc a +0fea: d5 91 01 mov $0191+x,a +0fed: 5f e5 0d jmp $0de5 + +0ff0: 2d push a +0ff1: 9f xcn a +0ff2: 28 07 and a,#$07 +0ff4: fd mov y,a +0ff5: f6 00 3b mov a,$3b00+y +0ff8: d5 90 01 mov $0190+x,a ; set dur% from high nybble +0ffb: ae pop a +0ffc: 28 0f and a,#$0f +0ffe: fd mov y,a +0fff: f6 08 3b mov a,$3b08+y ; set per-note vol from low nybble +1002: d5 60 02 mov $0260+x,a +1005: d5 61 02 mov $0261+x,a +1008: 3f 13 0a call $0a13 +100b: d0 03 bne $1010 +100d: 3f 53 0b call $0b53 +1010: 2f 12 bra $1024 +1012: 1c asl a +1013: fd mov y,a +1014: f6 89 12 mov a,$1289+y +1017: 2d push a +1018: f6 88 12 mov a,$1288+y +101b: 2d push a +101c: dd mov a,y +101d: 5c lsr a +101e: fd mov y,a +101f: f6 2d 13 mov a,$132d+y +1022: f0 08 beq $102c +1024: e7 40 mov a,($40+x) +1026: bb 40 inc $40+x +1028: d0 02 bne $102c +102a: bb 41 inc $41+x +102c: fd mov y,a +102d: 6f ret + +; vcmd d5 - set instrument +102e: d5 00 02 mov $0200+x,a +1031: 3f 13 0a call $0a13 +1034: d0 3b bne $1071 +1036: f5 00 02 mov a,$0200+x +1039: fd mov y,a +103a: 10 06 bpl $1042 +103c: 80 setc +103d: a8 ca sbc a,#$ca +103f: 60 clrc +1040: 88 14 adc a,#$14 +1042: 8d 06 mov y,#$06 +1044: cf mul ya +1045: da 23 movw $23,ya +1047: 60 clrc +1048: 98 00 23 adc $23,#$00 +104b: 98 3c 24 adc $24,#$3c +104e: 4d push x +104f: e4 15 mov a,$15 +1051: 9f xcn a +1052: 08 04 or a,#$04 +1054: 5d mov x,a +1055: 8d 00 mov y,#$00 +1057: f7 23 mov a,($23)+y +1059: c9 f2 00 mov $00f2,x +105c: c5 f3 00 mov $00f3,a +105f: 3d inc x +1060: fc inc y +1061: ad 04 cmp y,#$04 +1063: d0 f2 bne $1057 +1065: ce pop x +1066: f7 23 mov a,($23)+y +1068: d5 c1 02 mov $02c1+x,a +106b: fc inc y +106c: f7 23 mov a,($23)+y +106e: d5 c0 02 mov $02c0+x,a +1071: eb 15 mov y,$15 +1073: 6f ret + +; vcmd d6 - call subroutine +1074: 8f 11 b9 mov $b9,#$11 +1077: 6f ret + +; vcmd d7 - volume +1078: d5 90 02 mov $0290+x,a +107b: d5 91 02 mov $0291+x,a +107e: 3f 13 0a call $0a13 +1081: d0 03 bne $1086 +1083: 3f 53 0b call $0b53 +1086: eb 15 mov y,$15 +1088: 6f ret + +; vcmd d8 - set ASDR +1089: 2d push a +108a: e4 15 mov a,$15 +108c: 9f xcn a +108d: 08 05 or a,#$05 +108f: fd mov y,a +1090: ae pop a +1091: 3f e9 13 call $13e9 +1094: 3f 24 10 call $1024 +1097: 2d push a +1098: e4 15 mov a,$15 +109a: 9f xcn a +109b: 08 06 or a,#$06 +109d: fd mov y,a +109e: ae pop a +109f: 3f e9 13 call $13e9 +10a2: 6f ret + +; vcmd d9 - set FIR (1) +10a3: d5 00 03 mov $0300+x,a +10a6: 3f 13 0a call $0a13 +10a9: d0 03 bne $10ae +10ab: 3f 53 0b call $0b53 +10ae: 6f ret + +; vcmd da - set FIR (2) +10af: d5 90 02 mov $0290+x,a +10b2: 3f 24 10 call $1024 +10b5: d5 91 02 mov $0291+x,a +10b8: 3f 13 0a call $0a13 +10bb: d0 03 bne $10c0 +10bd: 3f 53 0b call $0b53 +10c0: 6f ret + +; vcmd db - global transpose +10c1: c4 36 mov $36,a +10c3: 6f ret + +; vcmd dc - per-voice transpose +10c4: d5 01 02 mov $0201+x,a +10c7: 6f ret + +; vcmd dd - loop start +10c8: f4 41 mov a,$41+x +10ca: fd mov y,a +10cb: f4 40 mov a,$40+x +10cd: d5 00 05 mov $0500+x,a +10d0: dd mov a,y +10d1: d5 01 05 mov $0501+x,a +10d4: 2f 0b bra $10e1 +; vcmd de - loop end +10d6: f5 01 05 mov a,$0501+x +10d9: fd mov y,a +10da: f5 00 05 mov a,$0500+x +10dd: db 41 mov $41+x,y +10df: d4 40 mov $40+x,a +10e1: ec 15 00 mov y,$0015 +10e4: 5f 59 0d jmp $0d59 + +; vcmd df - tempo +10e7: c4 2d mov $2d,a +10e9: 6f ret + +10ea: f4 c0 mov a,$c0+x +10ec: d0 34 bne $1122 +10ee: e7 40 mov a,($40+x) +10f0: 68 e0 cmp a,#$e0 +10f2: d0 2e bne $1122 +10f4: 3f 26 10 call $1026 +10f7: 3f 24 10 call $1024 +; vcmd e0 - pitch slide +10fa: d5 01 03 mov $0301+x,a +10fd: 3f 24 10 call $1024 +1100: d4 c0 mov $c0+x,a +1102: 3f 24 10 call $1024 +1105: 60 clrc +1106: 84 36 adc a,$36 +1108: 95 01 02 adc a,$0201+x +110b: 28 7f and a,#$7f +110d: d5 90 03 mov $0390+x,a +1110: 80 setc +1111: b5 30 03 sbc a,$0330+x +1114: fb c0 mov y,$c0+x +1116: 6d push y +1117: ce pop x +1118: 3f a1 0b call $0ba1 +111b: d5 61 03 mov $0361+x,a +111e: dd mov a,y +111f: d5 60 03 mov $0360+x,a +1122: 6f ret + +1123: f5 30 03 mov a,$0330+x +1126: c4 28 mov $28,a +1128: f5 31 03 mov a,$0331+x +112b: c4 27 mov $27,a +112d: 6f ret + +; vcmd e1 - vibrato on +112e: d5 31 04 mov $0431+x,a +1131: 3f 24 10 call $1024 +1134: d5 61 04 mov $0461+x,a +1137: 3f 24 10 call $1024 +; vcmd e2 - vibrato off +113a: d5 00 04 mov $0400+x,a +113d: d5 60 04 mov $0460+x,a +1140: e8 00 mov a,#$00 +1142: d5 90 04 mov $0490+x,a +1145: 6f ret + +; vcmd e3 - vibrato fade +1146: d5 90 04 mov $0490+x,a +1149: 2d push a +114a: 8d 00 mov y,#$00 +114c: f5 00 04 mov a,$0400+x +114f: ce pop x +1150: 9e div ya,x +1151: f8 14 mov x,$14 +1153: d5 91 04 mov $0491+x,a +1156: 6f ret + +; vcmd e4 - master volume +1157: c5 b0 05 mov $05b0,a +115a: 03 b0 05 bbs0 $b0,$1162 +115d: 4c b0 05 lsr $05b0 +1160: 2f 08 bra $116a +1162: 4c b0 05 lsr $05b0 +1165: c5 b0 05 mov $05b0,a +1168: 48 ff eor a,#$ff +116a: c5 b0 05 mov $05b0,a +116d: 3f f0 13 call $13f0 +1170: 6f ret + +; vcmd e5 - tuning +1171: d5 91 03 mov $0391+x,a +1174: 6f ret + +1175: 6f ret + +1176: f6 08 3b mov a,$3b08+y +1179: d5 60 02 mov $0260+x,a +117c: d5 61 02 mov $0261+x,a +117f: 3f 13 0a call $0a13 +1182: d0 f1 bne $1175 +1184: 5f 53 0b jmp $0b53 + +; vcmd e6 - set velocity +1187: 8d 00 mov y,#$00 +1189: 2f eb bra $1176 +; vcmd e7 - set velocity +118b: 8d 01 mov y,#$01 +118d: 2f e7 bra $1176 +; vcmd e8 - set velocity +118f: 8d 02 mov y,#$02 +1191: 2f e3 bra $1176 +; vcmd e9 - set velocity +1193: 8d 03 mov y,#$03 +1195: 2f df bra $1176 +; vcmd ea - set velocity +1197: 8d 04 mov y,#$04 +1199: 2f db bra $1176 +; vcmd eb - set velocity +119b: 8d 05 mov y,#$05 +119d: 2f d7 bra $1176 +; vcmd ec - set velocity +119f: 8d 06 mov y,#$06 +11a1: 2f d3 bra $1176 +; vcmd ed - set velocity +11a3: 8d 07 mov y,#$07 +11a5: 2f cf bra $1176 +; vcmd ee - set velocity +11a7: 8d 08 mov y,#$08 +11a9: 2f cb bra $1176 +; vcmd ef - set velocity +11ab: 8d 09 mov y,#$09 +11ad: 2f c7 bra $1176 +; vcmd f0 - set velocity +11af: 8d 0a mov y,#$0a +11b1: 2f c3 bra $1176 +; vcmd f1 - set velocity +11b3: 8d 0b mov y,#$0b +11b5: 2f bf bra $1176 +; vcmd f2 - set velocity +11b7: 8d 0c mov y,#$0c +11b9: 2f bb bra $1176 +; vcmd f3 - set velocity +11bb: 8d 0d mov y,#$0d +11bd: 2f b7 bra $1176 +; vcmd f4 - set velocity +11bf: 8d 0e mov y,#$0e +11c1: 2f b3 bra $1176 +; vcmd f5 - set velocity +11c3: 8d 0f mov y,#$0f +11c5: 2f af bra $1176 +; vcmd f6 - echo vbits/volume +11c7: c4 38 mov $38,a +11c9: 3f 24 10 call $1024 +11cc: c4 30 mov $30,a +11ce: 3f 24 10 call $1024 +11d1: c4 31 mov $31,a +11d3: 6f ret + +; vcmd f7 - disable echo +11d4: e8 00 mov a,#$00 +11d6: 3f fa 13 call $13fa +11d9: e8 00 mov a,#$00 +11db: 5f ff 13 jmp $13ff + +; vcmd f8 - set echo params +11de: c4 39 mov $39,a +11e0: 3f 24 10 call $1024 +11e3: c4 3a mov $3a,a +11e5: 3f 24 10 call $1024 +11e8: c4 3b mov $3b,a +11ea: 3f ea 0b call $0bea +11ed: e8 20 mov a,#$20 +11ef: 3f 0e 14 call $140e +11f2: e4 39 mov a,$39 +11f4: 3f 2c 14 call $142c +11f7: 1c asl a +11f8: 1c asl a +11f9: 1c asl a +11fa: 48 ff eor a,#$ff +11fc: 80 setc +11fd: 88 fe adc a,#$fe +11ff: 8d 6d mov y,#$6d +1201: cb f2 mov $f2,y +1203: c4 f3 mov $f3,a +1205: e4 30 mov a,$30 +1207: 3f fa 13 call $13fa +120a: e4 31 mov a,$31 +120c: 3f ff 13 call $13ff +120f: e4 38 mov a,$38 +1211: 3f 22 14 call $1422 +1214: e4 3a mov a,$3a +1216: 3f 13 14 call $1413 +1219: 3f 1b 0c call $0c1b +121c: 6f ret + +; vcmd f9 - echo on +121d: e4 13 mov a,$13 +121f: 04 38 or a,$38 +1221: c4 38 mov $38,a +1223: 3f 22 14 call $1422 +1226: 6f ret + +; vcmd fa - echo off +1227: e4 13 mov a,$13 +1229: 04 38 or a,$38 +122b: 44 13 eor a,$13 +122d: c4 38 mov $38,a +122f: 3f 22 14 call $1422 +1232: 6f ret + +; vcmd fb - set FIR filter +1233: c4 b0 mov $b0,a +1235: 3f 24 10 call $1024 +1238: eb b0 mov y,$b0 +123a: 3f 31 14 call $1431 +123d: 6f ret + +; vcmd fc +123e: c4 b0 mov $b0,a +1240: 68 01 cmp a,#$01 +1242: d0 07 bne $124b +1244: e8 01 mov a,#$01 +1246: d5 30 05 mov $0530+x,a +1249: 2f 05 bra $1250 +124b: e8 00 mov a,#$00 +124d: d5 30 05 mov $0530+x,a +1250: 6f ret + +1251: db $00,$10,$20,$30,$40,$50,$60,$70 + +1259: db $0f,$1f,$2f,$3f,$4f,$5f,$6f,$7f + +1261: db $01,$0f,$0f,$01,$01,$01,$01,$01 +1269: db $01,$01,$f1,$f1,$f1,$01,$01,$05 +1271: db $05,$05,$f1,$01,$01,$01,$05,$05 +1279: db $01,$01,$01,$01,$01,$01,$01,$01 +1281: db $01,$01,$01,$01,$01,$01,$01 +1288: db $f1,$f1,$f1,$01,$01,$01,$01,$01,$01 +1291: db $01,$01,$01,$01,$01,$01,$01,$01 +1299: db $01,$01,$01,$01,$01,$01,$01,$01 +12a1: db $01,$01,$01,$01,$01,$01,$01,$01 +12a9: db $01,$01,$01,$01,$01,$01,$01,$01 +12b1: db $01,$01,$01,$01,$01,$01,$01,$01 +12b9: db $01,$01,$01,$01,$01,$01,$01,$01 +12c1: db $01,$01,$01,$01,$01,$01,$01,$01 +12c9: db $01,$01,$01,$01,$01,$01,$01,$01 +12d1: db $01,$01,$01,$01,$01,$01,$01,$01 +12d9: db $01,$01,$01,$01,$01,$01,$01,$01 + +; pitch table +12e1: dw $085f +12e3: dw $08de +12e5: dw $0965 +12e7: dw $09f4 +12e9: dw $0a8c +12eb: dw $0b2c +12ed: dw $0bd6 +12ef: dw $0c8b +12f1: dw $0d4a +12f3: dw $0e14 +12f5: dw $0eea +12f7: dw $0fcd +12f9: dw $10be +12fb: dw $11bd +12fd: dw $12cb +12ff: dw $13e9 +1301: dw $1518 +1303: dw $1659 +1305: dw $17ad +1307: dw $1916 +1309: dw $1a94 +130b: dw $1c28 +130d: dw $1dd5 +130f: dw $1f9b + +; version string +1311: db "== Ver1.32 Copyright K.Suemura ==" + +; vcmd dispatch table +1332: dw $102e ; d5 - set instrument +1334: dw $1074 ; d6 - call subroutine +1336: dw $1078 ; d7 - volume +1338: dw $1089 ; d8 - set ASDR +133a: dw $10a3 ; d9 - set FIR (1) +133c: dw $10af ; da - set FIR (2) +113e: dw $10c1 ; db - global transpose +1140: dw $10c4 ; dc - per-voice transpose +1142: dw $10c8 ; dd - loop start +1144: dw $10d6 ; de - loop end +1146: dw $10e7 ; df - tempo +1148: dw $10fa ; e0 - pitch slide +134a: dw $112e ; e1 - vibrato on +134c: dw $113a ; e2 - vibrato off +134e: dw $1146 ; e3 - vibrato fade +1350: dw $1157 ; e4 - master volume +1352: dw $1171 ; e5 - tuning +1354: dw $1187 ; e6 - set velocity +1356: dw $118b ; e7 - set velocity +1358: dw $118f ; e8 - set velocity +135a: dw $1193 ; e9 - set velocity +135c: dw $1197 ; ea - set velocity +135e: dw $119b ; eb - set velocity +1360: dw $119f ; ec - set velocity +1362: dw $11a3 ; ed - set velocity +1364: dw $11a7 ; ee - set velocity +1366: dw $11ab ; ef - set velocity +1368: dw $11af ; f0 - set velocity +136a: dw $11b3 ; f1 - set velocity +136c: dw $11b7 ; f2 - set velocity +136e: dw $11bb ; f3 - set velocity +1370: dw $11bf ; f4 - set velocity +1372: dw $11c3 ; f5 - set velocity +1374: dw $11c7 ; f6 - echo vbits/volume +1376: dw $11d4 ; f7 - disable echo +1378: dw $11de ; f8 - echo volume fade +137a: dw $121d ; f9 - echo on +137c: dw $1227 ; fa - echo off +137e: dw $1233 ; fb - set FIR filter +1380: dw $123e ; fc + +; vcmd lengths +1382: db $01,$00,$01,$02,$01,$02,$01,$01 ; d5-d9 +138a: db $00,$00,$01,$03,$03,$00,$01,$01 ; da-e4 +1392: db $01,$00,$00,$00,$00,$00,$00,$00 ; e5-e9 +139a: db $00,$00,$00,$00,$00,$00,$00,$00 ; ea-f4 +13a2: db $00,$03,$00,$03,$00,$00,$02,$01 ; f5-f9 + +13aa: db $00,$0c,$18,$24,$30,$3c,$48,$54 +13b2: db $60,$6c,$78,$85,$8d,$94,$98,$9b +13ba: db $9e,$9f,$a0,$a1,$b4,$a2,$a1,$a0 +13c2: db $9f,$9e,$9b,$98,$94,$8d,$85,$78 +13ca: db $6c,$60,$54,$48,$3c,$30,$24,$18 +13d2: db $0c,$b4 + +13d4: db $78,$78,$78,$78,$78,$78,$78,$78 +13dc: db $78,$78,$78,$78,$78,$78,$78,$78 +13e4: db $78,$78,$78,$78,$b4 + +13e9: cb f2 mov $f2,y +13eb: c4 f3 mov $f3,a +13ed: eb 15 mov y,$15 +13ef: 6f ret + +13f0: 8d 0c mov y,#$0c +13f2: 3f e9 13 call $13e9 +13f5: 8d 1c mov y,#$1c +13f7: 5f e9 13 jmp $13e9 + +13fa: 8d 2c mov y,#$2c +13fc: 5f e9 13 jmp $13e9 + +13ff: 8d 3c mov y,#$3c +1401: 5f e9 13 jmp $13e9 + +1404: 8d 4c mov y,#$4c +1406: 5f e9 13 jmp $13e9 + +1409: 8d 5c mov y,#$5c +140b: 5f e9 13 jmp $13e9 + +140e: 8d 6c mov y,#$6c +1410: 5f e9 13 jmp $13e9 + +1413: 8d 0d mov y,#$0d +1415: 5f e9 13 jmp $13e9 + +1418: 8d 2d mov y,#$2d +141a: 5f e9 13 jmp $13e9 + +141d: 8d 3d mov y,#$3d +141f: 5f e9 13 jmp $13e9 + +1422: 8d 4d mov y,#$4d +1424: 5f e9 13 jmp $13e9 + +1427: 8d 6d mov y,#$6d +1429: 5f e9 13 jmp $13e9 + +142c: 8d 7d mov y,#$7d +142e: 5f e9 13 jmp $13e9 + +1431: 6d push y +1432: 2d push a +1433: f6 59 12 mov a,$1259+y +1436: fd mov y,a +1437: ae pop a +1438: 3f e9 13 call $13e9 +143b: ee pop y +143c: 6f ret + +143d: 2d push a +143e: f6 51 12 mov a,$1251+y +1441: 60 clrc +1442: 88 00 adc a,#$00 +1444: fd mov y,a +1445: ae pop a +1446: 5f e9 13 jmp $13e9 +1449: 2d push a +144a: f6 51 12 mov a,$1251+y +144d: 60 clrc +144e: 88 01 adc a,#$01 +1450: fd mov y,a +1451: ae pop a +1452: 5f e9 13 jmp $13e9 +1455: 6d push y +1456: 2d push a +1457: f6 51 12 mov a,$1251+y +145a: 60 clrc +145b: 88 02 adc a,#$02 +145d: fd mov y,a +145e: ae pop a +145f: 3f e9 13 call $13e9 +1462: ee pop y +1463: f6 51 12 mov a,$1251+y +1466: 60 clrc +1467: 88 03 adc a,#$03 +1469: fd mov y,a +146a: 7d mov a,x +146b: 5f e9 13 jmp $13e9 +146e: 2d push a +146f: f6 51 12 mov a,$1251+y +1472: 60 clrc +1473: 88 04 adc a,#$04 +1475: fd mov y,a +1476: ae pop a +1477: 5f e9 13 jmp $13e9 +147a: e8 ee mov a,#$ee +147c: c5 f4 00 mov $00f4,a +147f: cd ff mov x,#$ff +1481: c9 f1 00 mov $00f1,x +1484: 5f c0 ff jmp $ffc0 +1487: e8 ca mov a,#$ca +1489: c5 f4 00 mov $00f4,a +148c: e5 f4 00 mov a,$00f4 +148f: 68 00 cmp a,#$00 +1491: d0 f9 bne $148c +1493: cd 30 mov x,#$30 +1495: c9 f1 00 mov $00f1,x +1498: 5f 00 07 jmp $0700 +149b: e8 20 mov a,#$20 +149d: 3f 0e 14 call $140e +14a0: 5f dd 0c jmp $0cdd + +; note dur%'s +3b00: db $32,$65,$7f,$98,$b2,$cb,$e5,$fc + +; per-note velocity values +3b08: db $0a,$19,$28,$3c,$50,$64,$7d,$96 + +3b10: db $aa,$b9,$c8,$d4,$e1,$eb,$f5,$ff diff --git a/snes/NSPC/Koei/P.T.O. - Pacific Theater of Operations ($0400).bin b/snes/NSPC/Koei/P.T.O. - Pacific Theater of Operations ($0400).bin new file mode 100644 index 00000000..f725ca05 Binary files /dev/null and b/snes/NSPC/Koei/P.T.O. - Pacific Theater of Operations ($0400).bin differ diff --git a/snes/NSPC/Koei/P.T.O. - Pacific Theater of Operations.s b/snes/NSPC/Koei/P.T.O. - Pacific Theater of Operations.s new file mode 100644 index 00000000..8d65cfc9 --- /dev/null +++ b/snes/NSPC/Koei/P.T.O. - Pacific Theater of Operations.s @@ -0,0 +1,1512 @@ +0400: 20 clrp +0401: cd cf mov x,#$cf +0403: bd mov sp,x +0404: e8 00 mov a,#$00 +0406: 5d mov x,a +0407: d5 00 02 mov $0200+x,a +040a: 3d inc x +040b: d0 fa bne $0407 +040d: d5 00 03 mov $0300+x,a +0410: 3d inc x +0411: d0 fa bne $040d +0413: af mov (x)+,a +0414: c8 e0 cmp x,#$e0 +0416: d0 fb bne $0413 +0418: e8 02 mov a,#$02 +041a: 3f be 0b call $0bbe +041d: a2 48 set5 $48 +041f: e8 7f mov a,#$7f +0421: 8d 0c mov y,#$0c +0423: 3f 0f 06 call $060f +0426: 8d 1c mov y,#$1c +0428: 3f 0f 06 call $060f +042b: e8 13 mov a,#$13 +042d: 8d 5d mov y,#$5d +042f: 3f 0f 06 call $060f +0432: e8 f0 mov a,#$f0 +0434: c5 f1 00 mov $00f1,a +0437: e8 10 mov a,#$10 +0439: c5 fa 00 mov $00fa,a +043c: c4 53 mov $53,a +043e: e8 01 mov a,#$01 +0440: c5 f1 00 mov $00f1,a +0443: 8d 0a mov y,#$0a +0445: ad 05 cmp y,#$05 +0447: f0 07 beq $0450 +0449: b0 08 bcs $0453 +044b: 69 4d 4c cmp ($4c),($4d) +044e: d0 11 bne $0461 +0450: e3 4c 0e bbs7 $4c,$0461 +0453: f6 6a 0f mov a,$0f6a+y +0456: c5 f2 00 mov $00f2,a +0459: f6 74 0f mov a,$0f74+y +045c: 5d mov x,a +045d: e6 mov a,(x) +045e: c5 f3 00 mov $00f3,a +0461: fe e2 dbnz y,$0445 +0463: cb 45 mov $45,y +0465: cb 46 mov $46,y +0467: ec fd 00 mov y,$00fd +046a: f0 fb beq $0467 +046c: 6d push y +046d: e8 20 mov a,#$20 +046f: cf mul ya +0470: 60 clrc +0471: 84 43 adc a,$43 +0473: c4 43 mov $43,a +0475: 90 4b bcc $04c2 +0477: cd 01 mov x,#$01 +0479: 3f 0a 05 call $050a +047c: c4 05 mov $05,a +047e: cd 03 mov x,#$03 +0480: 3f 0a 05 call $050a +0483: c4 07 mov $07,a +0485: e4 51 mov a,$51 +0487: c4 21 mov $21,a +0489: ba 52 movw ya,$52 +048b: da 22 movw $22,ya +048d: 8d 00 mov y,#$00 +048f: e8 20 mov a,#$20 +0491: da 52 movw $52,ya +0493: e4 54 mov a,$54 +0495: c4 24 mov $24,a +0497: e4 55 mov a,$55 +0499: c4 25 mov $25,a +049b: ba 56 movw ya,$56 +049d: da 26 movw $26,ya +049f: 3f 0f 07 call $070f +04a2: ba 26 movw ya,$26 +04a4: da 56 movw $56,ya +04a6: e4 25 mov a,$25 +04a8: c4 55 mov $55,a +04aa: e4 24 mov a,$24 +04ac: c4 54 mov $54,a +04ae: ba 22 movw ya,$22 +04b0: da 52 movw $52,ya +04b2: e4 21 mov a,$21 +04b4: c4 51 mov $51,a +04b6: cd 02 mov x,#$02 +04b8: 3f 0a 05 call $050a +04bb: 69 4d 4c cmp ($4c),($4d) +04be: f0 02 beq $04c2 +04c0: ab 4c inc $4c +04c2: e4 53 mov a,$53 +04c4: ee pop y +04c5: cf mul ya +04c6: 60 clrc +04c7: 84 51 adc a,$51 +04c9: c4 51 mov $51,a +04cb: 90 0a bcc $04d7 +04cd: 3f 37 08 call $0837 +04d0: cd 00 mov x,#$00 +04d2: 3f 0a 05 call $050a +04d5: 2f 18 bra $04ef +04d7: e4 04 mov a,$04 +04d9: 04 06 or a,$06 +04db: f0 12 beq $04ef +04dd: cd 00 mov x,#$00 +04df: 8f 01 47 mov $47,#$01 +04e2: f4 33 mov a,$33+x +04e4: f0 03 beq $04e9 +04e6: 3f 93 0e call $0e93 +04e9: 3d inc x +04ea: 3d inc x +04eb: 0b 47 asl $47 +04ed: d0 f3 bne $04e2 +04ef: 5f 43 04 jmp $0443 + +04f2: e8 60 mov a,#$60 +04f4: 8d 6c mov y,#$6c +04f6: 3f 0f 06 call $060f +04f9: e8 ff mov a,#$ff +04fb: 8d 5c mov y,#$5c +04fd: 3f 0f 06 call $060f +0500: e8 00 mov a,#$00 +0502: fd mov y,a +0503: 3f 2e 0b call $0b2e +0506: 3f a4 0f call $0fa4 +0509: 6f ret + +050a: f4 04 mov a,$04+x +050c: d5 f4 00 mov $00f4+x,a +050f: f5 f4 00 mov a,$00f4+x +0512: 75 f4 00 cmp a,$00f4+x +0515: d0 f8 bne $050f +0517: d4 00 mov $00+x,a +0519: 6f ret + +051a: ad ca cmp y,#$ca +051c: 90 05 bcc $0523 +051e: 3f c9 09 call $09c9 +0521: 8d a4 mov y,#$a4 +0523: ad c8 cmp y,#$c8 +0525: b0 f2 bcs $0519 +0527: e4 16 mov a,$16 +0529: 24 47 and a,$47 +052b: d0 ec bne $0519 +052d: dd mov a,y +052e: 28 7f and a,#$7f +0530: 60 clrc +0531: 84 50 adc a,$50 +0533: 60 clrc +0534: 95 f0 02 adc a,$02f0+x +0537: d5 61 03 mov $0361+x,a +053a: f5 81 03 mov a,$0381+x +053d: d5 60 03 mov $0360+x,a +0540: f5 b1 02 mov a,$02b1+x +0543: 5c lsr a +0544: e8 00 mov a,#$00 +0546: 7c ror a +0547: d5 a0 02 mov $02a0+x,a +054a: e8 00 mov a,#$00 +054c: d4 b0 mov $b0+x,a +054e: d5 00 01 mov $0100+x,a +0551: d5 d0 02 mov $02d0+x,a +0554: d4 c0 mov $c0+x,a +0556: 09 47 5e or ($5e),($47) +0559: 09 47 45 or ($45),($47) +055c: f5 80 02 mov a,$0280+x +055f: d4 a0 mov $a0+x,a +0561: f0 1e beq $0581 +0563: f5 81 02 mov a,$0281+x +0566: d4 a1 mov $a1+x,a +0568: f5 90 02 mov a,$0290+x +056b: d0 0a bne $0577 +056d: f5 61 03 mov a,$0361+x +0570: 80 setc +0571: b5 91 02 sbc a,$0291+x +0574: d5 61 03 mov $0361+x,a +0577: f5 91 02 mov a,$0291+x +057a: 60 clrc +057b: 95 61 03 adc a,$0361+x +057e: 3f 98 0b call $0b98 +0581: 3f b0 0b call $0bb0 +0584: 8d 00 mov y,#$00 +0586: e4 0f mov a,$0f +0588: 80 setc +0589: a8 34 sbc a,#$34 +058b: b0 09 bcs $0596 +058d: e4 0f mov a,$0f +058f: 80 setc +0590: a8 13 sbc a,#$13 +0592: b0 06 bcs $059a +0594: dc dec y +0595: 1c asl a +0596: 7a 0e addw ya,$0e +0598: da 0e movw $0e,ya +059a: 4d push x +059b: e4 0f mov a,$0f +059d: 1c asl a +059e: 8d 00 mov y,#$00 +05a0: cd 18 mov x,#$18 +05a2: 9e div ya,x +05a3: 5d mov x,a +05a4: f6 80 0f mov a,$0f80+y +05a7: c4 13 mov $13,a +05a9: f6 7f 0f mov a,$0f7f+y +05ac: c4 12 mov $12,a +05ae: f6 82 0f mov a,$0f82+y +05b1: 2d push a +05b2: f6 81 0f mov a,$0f81+y +05b5: ee pop y +05b6: 9a 12 subw ya,$12 +05b8: eb 0e mov y,$0e +05ba: cf mul ya +05bb: dd mov a,y +05bc: 8d 00 mov y,#$00 +05be: 7a 12 addw ya,$12 +05c0: cb 13 mov $13,y +05c2: 1c asl a +05c3: 2b 13 rol $13 +05c5: c4 12 mov $12,a +05c7: 2f 04 bra $05cd +05c9: 4b 13 lsr $13 +05cb: 7c ror a +05cc: 3d inc x +05cd: c8 06 cmp x,#$06 +05cf: d0 f8 bne $05c9 +05d1: c4 12 mov $12,a +05d3: ce pop x +05d4: f5 20 02 mov a,$0220+x +05d7: eb 13 mov y,$13 +05d9: cf mul ya +05da: da 14 movw $14,ya +05dc: f5 20 02 mov a,$0220+x +05df: eb 12 mov y,$12 +05e1: cf mul ya +05e2: 6d push y +05e3: f5 21 02 mov a,$0221+x +05e6: eb 12 mov y,$12 +05e8: cf mul ya +05e9: 7a 14 addw ya,$14 +05eb: da 14 movw $14,ya +05ed: f5 21 02 mov a,$0221+x +05f0: eb 13 mov y,$13 +05f2: cf mul ya +05f3: fd mov y,a +05f4: ae pop a +05f5: 7a 14 addw ya,$14 +05f7: da 14 movw $14,ya +05f9: 7d mov a,x +05fa: 9f xcn a +05fb: 5c lsr a +05fc: 08 02 or a,#$02 +05fe: fd mov y,a +05ff: e4 14 mov a,$14 +0601: 3f 07 06 call $0607 +0604: fc inc y +0605: e4 15 mov a,$15 +0607: 2d push a +0608: e4 47 mov a,$47 +060a: 24 16 and a,$16 +060c: ae pop a +060d: d0 06 bne $0615 +060f: cc f2 00 mov $00f2,y +0612: c5 f3 00 mov $00f3,a +0615: 6f ret + +0616: 8d 00 mov y,#$00 +0618: f7 1d mov a,($1d)+y +061a: 3a 1d incw $1d +061c: 2d push a +061d: f7 1d mov a,($1d)+y +061f: 3a 1d incw $1d +0621: 2f 0b bra $062e +0623: 8d 00 mov y,#$00 +0625: f7 1b mov a,($1b)+y +0627: 3a 1b incw $1b +0629: 2d push a +062a: f7 1b mov a,($1b)+y +062c: 3a 1b incw $1b +062e: fd mov y,a +062f: ae pop a +0630: 6f ret + +; play song +0631: c4 04 mov $04,a +0633: 1c asl a +0634: 5d mov x,a +0635: f5 19 a0 mov a,$a019+x +0638: fd mov y,a +0639: f5 18 a0 mov a,$a018+x +063c: da 1d movw $1d,ya +063e: da 18 movw $18,ya +0640: 8f 02 0a mov $0a,#$02 +0643: e8 00 mov a,#$00 +0645: fd mov y,a +0646: 3f 2e 0b call $0b2e +0649: 3f 60 09 call $0960 +064c: e8 3f mov a,#$3f +064e: 2f 2a bra $067a +0650: c4 06 mov $06,a +0652: 1c asl a +0653: 5d mov x,a +0654: f5 ff fd mov a,$fdff+x +0657: fd mov y,a +0658: f5 fe fd mov a,$fdfe+x +065b: da 1b movw $1b,ya +065d: e4 07 mov a,$07 +065f: d0 02 bne $0663 +0661: e8 13 mov a,#$13 +0663: 8d 60 mov y,#$60 +0665: 3f 0f 06 call $060f +0668: fc inc y +0669: 3f 0f 06 call $060f +066c: 8d 70 mov y,#$70 +066e: 3f 0f 06 call $060f +0671: fc inc y +0672: 3f 0f 06 call $060f +0675: 8f 02 0b mov $0b,#$02 +0678: e8 c0 mov a,#$c0 +067a: 8d 5c mov y,#$5c +067c: 3f 0f 06 call $060f +067f: 04 16 or a,$16 +0681: c4 16 mov $16,a +0683: 6f ret + +0684: cd 00 mov x,#$00 +0686: 8f 40 47 mov $47,#$40 +0689: 8f 06 17 mov $17,#$06 +068c: 6d push y +068d: eb 00 mov y,$00 +068f: e8 ff mov a,#$ff +0691: d5 01 03 mov $0301+x,a +0694: e8 0a mov a,#$0a +0696: 3f 22 0a call $0a22 +0699: d5 11 02 mov $0211+x,a +069c: d5 81 03 mov $0381+x,a +069f: d5 f0 02 mov $02f0+x,a +06a2: d5 80 02 mov $0280+x,a +06a5: d4 b1 mov $b1+x,a +06a7: d4 c1 mov $c1+x,a +06a9: 3d inc x +06aa: 3d inc x +06ab: 0b 47 asl $47 +06ad: 6e 17 df dbnz $17,$068f +06b0: ee pop y +06b1: e8 00 mov a,#$00 +06b3: c4 5a mov $5a,a +06b5: c4 68 mov $68,a +06b7: c4 54 mov $54,a +06b9: c4 50 mov $50,a +06bb: c4 42 mov $42,a +06bd: c4 5f mov $5f,a +06bf: 8f ff 59 mov $59,#$ff +06c2: 8f 20 53 mov $53,#$20 +06c5: fd mov y,a +06c6: da 56 movw $56,ya +06c8: 6f ret + +06c9: cd 0c mov x,#$0c +06cb: 8f 40 47 mov $47,#$40 +06ce: 8f 02 17 mov $17,#$02 +06d1: e8 ff mov a,#$ff +06d3: d5 01 03 mov $0301+x,a +06d6: e8 0a mov a,#$0a +06d8: 3f 22 0a call $0a22 +06db: d5 11 02 mov $0211+x,a +06de: d5 81 03 mov $0381+x,a +06e1: d5 f0 02 mov $02f0+x,a +06e4: d5 80 02 mov $0280+x,a +06e7: d4 b1 mov $b1+x,a +06e9: d4 c1 mov $c1+x,a +06eb: 3d inc x +06ec: 3d inc x +06ed: 0b 47 asl $47 +06ef: 6e 17 df dbnz $17,$06d1 +06f2: e4 04 mov a,$04 +06f4: d0 15 bne $070b +06f6: e8 00 mov a,#$00 +06f8: c4 5a mov $5a,a +06fa: c4 68 mov $68,a +06fc: c4 50 mov $50,a +06fe: c4 5f mov $5f,a +0700: 8f ff 59 mov $59,#$ff +0703: 8f 20 53 mov $53,#$20 +0706: c4 54 mov $54,a +0708: fd mov y,a +0709: da 56 movw $56,ya +070b: 8f 00 1a mov $1a,#$00 +070e: 6f ret + +070f: eb 09 mov y,$09 +0711: e4 02 mov a,$02 +0713: c4 09 mov $09,a +0715: 7e 02 cmp y,$02 +0717: f0 07 beq $0720 +0719: ad fe cmp y,#$fe +071b: f0 1a beq $0737 +071d: 5f 50 06 jmp $0650 + +0720: e4 06 mov a,$06 +0722: f0 13 beq $0737 +0724: 68 fe cmp a,#$fe +0726: f0 0f beq $0737 +0728: e4 0b mov a,$0b +072a: d0 03 bne $072f +072c: 5f b2 07 jmp $07b2 + +072f: 6e 0b 02 dbnz $0b,$0734 +0732: 2f 04 bra $0738 +0734: 5f c9 06 jmp $06c9 + +0737: 6f ret + +0738: 3f 23 06 call $0623 +073b: d0 1f bne $075c +073d: fd mov y,a +073e: d0 04 bne $0744 +0740: 8f fe 06 mov $06,#$fe +0743: 6f ret + +0744: 8b 1a dec $1a +0746: 10 02 bpl $074a +0748: c4 1a mov $1a,a +074a: 3f 23 06 call $0623 +074d: f8 1a mov x,$1a +074f: f0 02 beq $0753 +0751: da 1b movw $1b,ya +0753: e4 1f mov a,$1f +0755: 8d 5c mov y,#$5c +0757: 3f 0f 06 call $060f +075a: 2f dc bra $0738 +075c: da 14 movw $14,ya +075e: 8f 40 47 mov $47,#$40 +0761: 8f 00 1f mov $1f,#$00 +0764: cd 0c mov x,#$0c +0766: 8d 00 mov y,#$00 +0768: f7 14 mov a,($14)+y +076a: d5 32 00 mov $0032+x,a +076d: d0 06 bne $0775 +076f: e4 47 mov a,$47 +0771: 04 1f or a,$1f +0773: c4 1f mov $1f,a +0775: fc inc y +0776: 3d inc x +0777: f7 14 mov a,($14)+y +0779: d5 32 00 mov $0032+x,a +077c: fc inc y +077d: 3d inc x +077e: 0b 47 asl $47 +0780: d0 e6 bne $0768 +0782: e4 16 mov a,$16 +0784: 28 3f and a,#$3f +0786: 04 1f or a,$1f +0788: c4 16 mov $16,a +078a: cd 0c mov x,#$0c +078c: 8f 40 47 mov $47,#$40 +078f: 8f 02 17 mov $17,#$02 +0792: f4 33 mov a,$33+x +0794: f0 0a beq $07a0 +0796: f5 11 02 mov a,$0211+x +0799: d0 05 bne $07a0 +079b: e8 00 mov a,#$00 +079d: 3f c9 09 call $09c9 +07a0: e8 00 mov a,#$00 +07a2: d4 80 mov $80+x,a +07a4: d4 90 mov $90+x,a +07a6: d4 91 mov $91+x,a +07a8: bc inc a +07a9: d4 70 mov $70+x,a +07ab: 3d inc x +07ac: 3d inc x +07ad: 0b 47 asl $47 +07af: 6e 17 e0 dbnz $17,$0792 +07b2: cd 0c mov x,#$0c +07b4: 8f 00 5e mov $5e,#$00 +07b7: 8f 40 47 mov $47,#$40 +07ba: 8f 02 17 mov $17,#$02 +07bd: d8 44 mov $44,x +07bf: f4 33 mov a,$33+x +07c1: f0 69 beq $082c +07c3: 9b 70 dec $70+x +07c5: d0 5f bne $0826 +07c7: 3f bf 09 call $09bf +07ca: d0 1a bne $07e6 +07cc: f4 80 mov a,$80+x +07ce: d0 03 bne $07d3 +07d0: 5f 38 07 jmp $0738 + +07d3: 3f de 0a call $0ade +07d6: 9b 80 dec $80+x +07d8: d0 ed bne $07c7 +07da: f5 30 02 mov a,$0230+x +07dd: d4 32 mov $32+x,a +07df: f5 31 02 mov a,$0231+x +07e2: d4 33 mov $33+x,a +07e4: 2f e1 bra $07c7 +07e6: 30 20 bmi $0808 +07e8: d5 00 02 mov $0200+x,a +07eb: 3f bf 09 call $09bf +07ee: 30 18 bmi $0808 +07f0: 2d push a +07f1: 9f xcn a +07f2: 28 07 and a,#$07 +07f4: fd mov y,a +07f5: f6 02 a0 mov a,$a002+y +07f8: d5 01 02 mov $0201+x,a +07fb: ae pop a +07fc: 28 0f and a,#$0f +07fe: fd mov y,a +07ff: f6 0a a0 mov a,$a00a+y +0802: d5 10 02 mov $0210+x,a +0805: 3f bf 09 call $09bf +; vcmd branches 80-ff +0808: 68 e0 cmp a,#$e0 +080a: 90 05 bcc $0811 +080c: 3f ad 09 call $09ad +080f: 2f b6 bra $07c7 +; vcmds 80-df - note +0811: 3f 1a 05 call $051a +0814: f5 00 02 mov a,$0200+x +0817: d4 70 mov $70+x,a +0819: fd mov y,a +081a: f5 01 02 mov a,$0201+x +081d: cf mul ya +081e: dd mov a,y +081f: d0 01 bne $0822 +0821: bc inc a +0822: d4 71 mov $71+x,a +0824: 2f 03 bra $0829 +0826: 3f a1 0d call $0da1 +0829: 3f 78 0b call $0b78 +082c: 3d inc x +082d: 3d inc x +082e: 0b 47 asl $47 +0830: 6e 17 8a dbnz $17,$07bd +0833: 3f 6f 09 call $096f +0836: 6f ret + +0837: eb 08 mov y,$08 +0839: e4 00 mov a,$00 +083b: c4 08 mov $08,a +083d: 7e 00 cmp y,$00 +083f: f0 0e beq $084f +0841: 68 ff cmp a,#$ff +0843: d0 03 bne $0848 +0845: 5f f2 04 jmp $04f2 + +0848: 68 fe cmp a,#$fe +084a: f0 1a beq $0866 +084c: 5f 31 06 jmp $0631 + +084f: e4 04 mov a,$04 +0851: f0 13 beq $0866 +0853: 68 fe cmp a,#$fe +0855: f0 0f beq $0866 +0857: e4 0a mov a,$0a +0859: d0 03 bne $085e +085b: 5f e0 08 jmp $08e0 + +085e: 6e 0a 02 dbnz $0a,$0863 +0861: 2f 04 bra $0867 +0863: 5f 84 06 jmp $0684 + +0866: 6f ret + +0867: 3f 16 06 call $0616 +086a: d0 22 bne $088e +086c: fd mov y,a +086d: d0 0e bne $087d +086f: e4 05 mov a,$05 +0871: f0 06 beq $0879 +0873: ba 18 movw ya,$18 +0875: da 1d movw $1d,ya +0877: 2f ee bra $0867 +0879: 8f fe 04 mov $04,#$fe +087c: 6f ret + +087d: 8b 42 dec $42 +087f: 10 02 bpl $0883 +0881: c4 42 mov $42,a +0883: 3f 16 06 call $0616 +0886: f8 42 mov x,$42 +0888: f0 02 beq $088c +088a: da 1d movw $1d,ya +088c: 2f d9 bra $0867 +088e: da 14 movw $14,ya +0890: 8d 0b mov y,#$0b +0892: 8f 20 47 mov $47,#$20 +0895: 8f 00 20 mov $20,#$00 +0898: f7 14 mov a,($14)+y +089a: d6 32 00 mov $0032+y,a +089d: d0 06 bne $08a5 +089f: e4 47 mov a,$47 +08a1: 04 20 or a,$20 +08a3: c4 20 mov $20,a +08a5: dc dec y +08a6: f7 14 mov a,($14)+y +08a8: d6 32 00 mov $0032+y,a +08ab: dc dec y +08ac: 4b 47 lsr $47 +08ae: d0 e8 bne $0898 +08b0: e4 16 mov a,$16 +08b2: 28 c0 and a,#$c0 +08b4: 04 20 or a,$20 +08b6: c4 16 mov $16,a +08b8: cd 00 mov x,#$00 +08ba: 8f 01 47 mov $47,#$01 +08bd: 8f 06 17 mov $17,#$06 +08c0: f4 33 mov a,$33+x +08c2: f0 0a beq $08ce +08c4: f5 11 02 mov a,$0211+x +08c7: d0 05 bne $08ce +08c9: e8 00 mov a,#$00 +08cb: 3f c9 09 call $09c9 +08ce: e8 00 mov a,#$00 +08d0: d4 80 mov $80+x,a +08d2: d4 90 mov $90+x,a +08d4: d4 91 mov $91+x,a +08d6: bc inc a +08d7: d4 70 mov $70+x,a +08d9: 3d inc x +08da: 3d inc x +08db: 0b 47 asl $47 +08dd: 6e 17 e0 dbnz $17,$08c0 +08e0: cd 00 mov x,#$00 +08e2: d8 5e mov $5e,x +08e4: 8f 01 47 mov $47,#$01 +08e7: 8f 06 17 mov $17,#$06 +08ea: d8 44 mov $44,x +08ec: f4 33 mov a,$33+x +08ee: f0 69 beq $0959 +08f0: 9b 70 dec $70+x +08f2: d0 5f bne $0953 +08f4: 3f bf 09 call $09bf +08f7: d0 1a bne $0913 +08f9: f4 80 mov a,$80+x +08fb: d0 03 bne $0900 +08fd: 5f 67 08 jmp $0867 + +0900: 3f de 0a call $0ade +0903: 9b 80 dec $80+x +0905: d0 ed bne $08f4 +0907: f5 30 02 mov a,$0230+x +090a: d4 32 mov $32+x,a +090c: f5 31 02 mov a,$0231+x +090f: d4 33 mov $33+x,a +0911: 2f e1 bra $08f4 +0913: 30 20 bmi $0935 +0915: d5 00 02 mov $0200+x,a +0918: 3f bf 09 call $09bf +091b: 30 18 bmi $0935 +091d: 2d push a +091e: 9f xcn a +091f: 28 07 and a,#$07 +0921: fd mov y,a +0922: f6 02 a0 mov a,$a002+y +0925: d5 01 02 mov $0201+x,a +0928: ae pop a +0929: 28 0f and a,#$0f +092b: fd mov y,a +092c: f6 0a a0 mov a,$a00a+y +092f: d5 10 02 mov $0210+x,a +0932: 3f bf 09 call $09bf +0935: 68 e0 cmp a,#$e0 +0937: 90 05 bcc $093e +0939: 3f ad 09 call $09ad +093c: 2f b6 bra $08f4 +093e: 3f 1a 05 call $051a +0941: f5 00 02 mov a,$0200+x +0944: d4 70 mov $70+x,a +0946: fd mov y,a +0947: f5 01 02 mov a,$0201+x +094a: cf mul ya +094b: dd mov a,y +094c: d0 01 bne $094f +094e: bc inc a +094f: d4 71 mov $71+x,a +0951: 2f 03 bra $0956 +0953: 3f a1 0d call $0da1 +0956: 3f 78 0b call $0b78 +0959: 3d inc x +095a: 3d inc x +095b: 0b 47 asl $47 +095d: 6e 17 8a dbnz $17,$08ea +0960: e4 54 mov a,$54 +0962: f0 0b beq $096f +0964: ba 56 movw ya,$56 +0966: 7a 52 addw ya,$52 +0968: 6e 54 02 dbnz $54,$096d +096b: ba 54 movw ya,$54 +096d: da 52 movw $52,ya +096f: e4 68 mov a,$68 +0971: f0 15 beq $0988 +0973: ba 64 movw ya,$64 +0975: 7a 60 addw ya,$60 +0977: da 60 movw $60,ya +0979: ba 66 movw ya,$66 +097b: 7a 62 addw ya,$62 +097d: 6e 68 06 dbnz $68,$0986 +0980: ba 68 movw ya,$68 +0982: da 60 movw $60,ya +0984: eb 6a mov y,$6a +0986: da 62 movw $62,ya +0988: e4 5a mov a,$5a +098a: f0 0e beq $099a +098c: ba 5c movw ya,$5c +098e: 7a 58 addw ya,$58 +0990: 6e 5a 02 dbnz $5a,$0995 +0993: ba 5a movw ya,$5a +0995: da 58 movw $58,ya +0997: 8f ff 5e mov $5e,#$ff +099a: cd 00 mov x,#$00 +099c: 8f 01 47 mov $47,#$01 +099f: f4 33 mov a,$33+x +09a1: f0 03 beq $09a6 +09a3: 3f d8 0c call $0cd8 +09a6: 3d inc x +09a7: 3d inc x +09a8: 0b 47 asl $47 +09aa: d0 f3 bne $099f +09ac: 6f ret + +; dispatch vcmd in A (e0-ff) +09ad: 1c asl a +09ae: fd mov y,a +09af: f6 bf 0b mov a,$0bbf+y +09b2: 2d push a +09b3: f6 be 0b mov a,$0bbe+y +09b6: 2d push a +09b7: dd mov a,y +09b8: 5c lsr a +09b9: fd mov y,a +09ba: f6 5a 0c mov a,$0c5a+y +09bd: f0 08 beq $09c7 +09bf: e7 32 mov a,($32+x) +09c1: bb 32 inc $32+x +09c3: d0 02 bne $09c7 +09c5: bb 33 inc $33+x +09c7: fd mov y,a +09c8: 6f ret + +; vcmd e0 - set instrument +09c9: d5 11 02 mov $0211+x,a +09cc: fd mov y,a +09cd: 10 06 bpl $09d5 +09cf: 80 setc +09d0: a8 ca sbc a,#$ca +09d2: 60 clrc +09d3: 84 5f adc a,$5f +09d5: 8d 06 mov y,#$06 +09d7: cf mul ya +09d8: da 12 movw $12,ya +09da: 60 clrc +09db: 98 00 12 adc $12,#$00 +09de: 98 10 13 adc $13,#$10 +09e1: e4 16 mov a,$16 +09e3: 24 47 and a,$47 +09e5: d0 3a bne $0a21 +09e7: 4d push x +09e8: 7d mov a,x +09e9: 9f xcn a +09ea: 5c lsr a +09eb: 08 04 or a,#$04 +09ed: 5d mov x,a +09ee: 8d 00 mov y,#$00 +09f0: f7 12 mov a,($12)+y +09f2: 10 0e bpl $0a02 +09f4: 28 1f and a,#$1f +09f6: 38 20 48 and $48,#$20 +09f9: 0e 48 00 tset1 $0048 +09fc: 09 47 49 or ($49),($47) +09ff: dd mov a,y +0a00: 2f 07 bra $0a09 +0a02: e4 47 mov a,$47 +0a04: 4e 49 00 tclr1 $0049 +0a07: f7 12 mov a,($12)+y +0a09: c9 f2 00 mov $00f2,x +0a0c: c5 f3 00 mov $00f3,a +0a0f: 3d inc x +0a10: fc inc y +0a11: ad 04 cmp y,#$04 +0a13: d0 f2 bne $0a07 +0a15: ce pop x +0a16: f7 12 mov a,($12)+y +0a18: d5 21 02 mov $0221+x,a +0a1b: fc inc y +0a1c: f7 12 mov a,($12)+y +0a1e: d5 20 02 mov $0220+x,a +0a21: 6f ret + +; vcmd e1 - pan +0a22: d5 51 03 mov $0351+x,a +0a25: 28 1f and a,#$1f +0a27: d5 31 03 mov $0331+x,a +0a2a: e8 00 mov a,#$00 +0a2c: d5 30 03 mov $0330+x,a +0a2f: 6f ret + +; vcmd e2 - pan fade +0a30: d4 91 mov $91+x,a +0a32: 2d push a +0a33: 3f bf 09 call $09bf +0a36: d5 50 03 mov $0350+x,a +0a39: 80 setc +0a3a: b5 31 03 sbc a,$0331+x +0a3d: ce pop x +0a3e: 3f 04 0c call $0c04 +0a41: d5 40 03 mov $0340+x,a +0a44: dd mov a,y +0a45: d5 41 03 mov $0341+x,a +0a48: 6f ret + +; vcmd e3 - vibrato on +0a49: d5 b0 02 mov $02b0+x,a +0a4c: 3f bf 09 call $09bf +0a4f: d5 a1 02 mov $02a1+x,a +0a52: 3f bf 09 call $09bf +; vcmd e4 - vibrato off +0a55: d4 b1 mov $b1+x,a +0a57: d5 c1 02 mov $02c1+x,a +0a5a: e8 00 mov a,#$00 +0a5c: d5 b1 02 mov $02b1+x,a +0a5f: 6f ret + +; vcmd e5 - master volume +0a60: e8 00 mov a,#$00 +0a62: da 58 movw $58,ya +0a64: 6f ret + +; vcmd e6 - master volume fade +0a65: c4 5a mov $5a,a +0a67: 3f bf 09 call $09bf +0a6a: c4 5b mov $5b,a +0a6c: 80 setc +0a6d: a4 59 sbc a,$59 +0a6f: f8 5a mov x,$5a +0a71: 3f 04 0c call $0c04 +0a74: da 5c movw $5c,ya +0a76: 6f ret + +; vcmd e7 - tempo +0a77: e8 00 mov a,#$00 +0a79: da 52 movw $52,ya +0a7b: 6f ret + +; vcmd e8 - tempo fade +0a7c: c4 54 mov $54,a +0a7e: 3f bf 09 call $09bf +0a81: c4 55 mov $55,a +0a83: 80 setc +0a84: a4 53 sbc a,$53 +0a86: f8 54 mov x,$54 +0a88: 3f 04 0c call $0c04 +0a8b: da 56 movw $56,ya +0a8d: 6f ret + +; vcmd e9 - global transpose +0a8e: c4 50 mov $50,a +0a90: 6f ret + +; vcmd ea - per-voice transpose +0a91: d5 f0 02 mov $02f0+x,a +0a94: 6f ret + +; vcmd eb - tremolo on +0a95: d5 e0 02 mov $02e0+x,a +0a98: 3f bf 09 call $09bf +0a9b: d5 d1 02 mov $02d1+x,a +0a9e: 3f bf 09 call $09bf +; vcmd ec - tremolo off +0aa1: d4 c1 mov $c1+x,a +0aa3: 6f ret + +; vcmd ed - volume +0aa4: d5 01 03 mov $0301+x,a +0aa7: e8 00 mov a,#$00 +0aa9: d5 00 03 mov $0300+x,a +0aac: 6f ret + +; vcmd ee - volume fade +0aad: d4 90 mov $90+x,a +0aaf: 2d push a +0ab0: 3f bf 09 call $09bf +0ab3: d5 20 03 mov $0320+x,a +0ab6: 80 setc +0ab7: b5 01 03 sbc a,$0301+x +0aba: ce pop x +0abb: 3f 04 0c call $0c04 +0abe: d5 10 03 mov $0310+x,a +0ac1: dd mov a,y +0ac2: d5 11 03 mov $0311+x,a +0ac5: 6f ret + +; vcmd ef - call subroutine +0ac6: d5 40 02 mov $0240+x,a +0ac9: 3f bf 09 call $09bf +0acc: d5 41 02 mov $0241+x,a +0acf: 3f bf 09 call $09bf +0ad2: d4 80 mov $80+x,a +0ad4: f4 32 mov a,$32+x +0ad6: d5 30 02 mov $0230+x,a +0ad9: f4 33 mov a,$33+x +0adb: d5 31 02 mov $0231+x,a +0ade: f5 40 02 mov a,$0240+x +0ae1: d4 32 mov $32+x,a +0ae3: f5 41 02 mov a,$0241+x +0ae6: d4 33 mov $33+x,a +0ae8: 6f ret + +; vcmd f0 - vibrato fade +0ae9: d5 b1 02 mov $02b1+x,a +0aec: 2d push a +0aed: 8d 00 mov y,#$00 +0aef: f4 b1 mov a,$b1+x +0af1: ce pop x +0af2: 9e div ya,x +0af3: f8 44 mov x,$44 +0af5: d5 c0 02 mov $02c0+x,a +0af8: 6f ret + +; vcmd f1 - pitch envelope (release) +0af9: e8 01 mov a,#$01 +0afb: 2f 02 bra $0aff +; vcmd f2 - pitch envelope (attack) +0afd: e8 00 mov a,#$00 +0aff: d5 90 02 mov $0290+x,a +0b02: dd mov a,y +0b03: d5 81 02 mov $0281+x,a +0b06: 3f bf 09 call $09bf +0b09: d5 80 02 mov $0280+x,a +0b0c: 3f bf 09 call $09bf +0b0f: d5 91 02 mov $0291+x,a +0b12: 6f ret + +; vcmd f3 - pitch envelope off +0b13: d5 80 02 mov $0280+x,a +0b16: 6f ret + +; vcmd f4 - tuning +0b17: d5 81 03 mov $0381+x,a +0b1a: 6f ret + +; vcmd f5 - echo vbits/volume +0b1b: c4 4a mov $4a,a +0b1d: 3f bf 09 call $09bf +0b20: e8 00 mov a,#$00 +0b22: da 60 movw $60,ya +0b24: 3f bf 09 call $09bf +0b27: e8 00 mov a,#$00 +0b29: da 62 movw $62,ya +0b2b: b2 48 clr5 $48 +0b2d: 6f ret + +; vcmd f6 - disable echo +0b2e: da 60 movw $60,ya +0b30: da 62 movw $62,ya +0b32: a2 48 set5 $48 +0b34: 6f ret + +; vcmd f7 - set echo params +0b35: 3f be 0b call $0bbe +0b38: 3f bf 09 call $09bf +0b3b: c4 4e mov $4e,a +0b3d: 3f bf 09 call $09bf +0b40: 8d 08 mov y,#$08 +0b42: cf mul ya +0b43: 5d mov x,a +0b44: 8d 0f mov y,#$0f +0b46: f5 4b 0f mov a,$0f4b+x +0b49: 3f 0f 06 call $060f +0b4c: 3d inc x +0b4d: dd mov a,y +0b4e: 60 clrc +0b4f: 88 10 adc a,#$10 +0b51: fd mov y,a +0b52: 10 f2 bpl $0b46 +0b54: f8 44 mov x,$44 +0b56: 6f ret + +; vcmd f8 - echo volume fade +0b57: c4 68 mov $68,a +0b59: 3f bf 09 call $09bf +0b5c: c4 69 mov $69,a +0b5e: 80 setc +0b5f: a4 61 sbc a,$61 +0b61: f8 68 mov x,$68 +0b63: 3f 04 0c call $0c04 +0b66: da 64 movw $64,ya +0b68: 3f bf 09 call $09bf +0b6b: c4 6a mov $6a,a +0b6d: 80 setc +0b6e: a4 63 sbc a,$63 +0b70: f8 68 mov x,$68 +0b72: 3f 04 0c call $0c04 +0b75: da 66 movw $66,ya +0b77: 6f ret + +0b78: f4 a0 mov a,$a0+x +0b7a: d0 33 bne $0baf +0b7c: e7 32 mov a,($32+x) +0b7e: 68 f9 cmp a,#$f9 +0b80: d0 2d bne $0baf +0b82: 3f c1 09 call $09c1 +0b85: 3f bf 09 call $09bf +; vcmd f9 - pitch slide +0b88: d4 a1 mov $a1+x,a +0b8a: 3f bf 09 call $09bf +0b8d: d4 a0 mov $a0+x,a +0b8f: 3f bf 09 call $09bf +0b92: 60 clrc +0b93: 84 50 adc a,$50 +0b95: 95 f0 02 adc a,$02f0+x +0b98: 28 7f and a,#$7f +0b9a: d5 80 03 mov $0380+x,a +0b9d: 80 setc +0b9e: b5 61 03 sbc a,$0361+x +0ba1: fb a0 mov y,$a0+x +0ba3: 6d push y +0ba4: ce pop x +0ba5: 3f 04 0c call $0c04 +0ba8: d5 70 03 mov $0370+x,a +0bab: dd mov a,y +0bac: d5 71 03 mov $0371+x,a +0baf: 6f ret + +0bb0: f5 61 03 mov a,$0361+x +0bb3: c4 0f mov $0f,a +0bb5: f5 60 03 mov a,$0360+x +0bb8: c4 0e mov $0e,a +0bba: 6f ret + +; vcmd fa - set perc patch base +0bbb: c4 5f mov $5f,a +0bbd: 6f ret + +0bbe: c4 4d mov $4d,a +0bc0: 8d 7d mov y,#$7d +0bc2: cc f2 00 mov $00f2,y +0bc5: e5 f3 00 mov a,$00f3 +0bc8: 64 4d cmp a,$4d +0bca: f0 2b beq $0bf7 +0bcc: 28 0f and a,#$0f +0bce: 48 ff eor a,#$ff +0bd0: f3 4c 03 bbc7 $4c,$0bd6 +0bd3: 60 clrc +0bd4: 84 4c adc a,$4c +0bd6: c4 4c mov $4c,a +0bd8: 8d 04 mov y,#$04 +0bda: f6 6a 0f mov a,$0f6a+y +0bdd: c5 f2 00 mov $00f2,a +0be0: e8 00 mov a,#$00 +0be2: c5 f3 00 mov $00f3,a +0be5: fe f3 dbnz y,$0bda +0be7: e4 48 mov a,$48 +0be9: 08 20 or a,#$20 +0beb: 8d 6c mov y,#$6c +0bed: 3f 0f 06 call $060f +0bf0: e4 4d mov a,$4d +0bf2: 8d 7d mov y,#$7d +0bf4: 3f 0f 06 call $060f +0bf7: 1c asl a +0bf8: 1c asl a +0bf9: 1c asl a +0bfa: 48 ff eor a,#$ff +0bfc: 80 setc +0bfd: 88 a0 adc a,#$a0 +0bff: 8d 6d mov y,#$6d +0c01: 5f 0f 06 jmp $060f + +0c04: ed notc +0c05: 6b 10 ror $10 +0c07: 10 03 bpl $0c0c +0c09: 48 ff eor a,#$ff +0c0b: bc inc a +0c0c: 8d 00 mov y,#$00 +0c0e: 9e div ya,x +0c0f: 2d push a +0c10: e8 00 mov a,#$00 +0c12: 9e div ya,x +0c13: ee pop y +0c14: f8 44 mov x,$44 +0c16: f3 10 06 bbc7 $10,$0c1f +0c19: da 12 movw $12,ya +0c1b: ba 0c movw ya,$0c +0c1d: 9a 12 subw ya,$12 +0c1f: 6f ret + +; vcmd fb - repeat start +0c20: 4d push x +0c21: 7d mov a,x +0c22: 5c lsr a +0c23: 5d mov x,a +0c24: e8 ff mov a,#$ff +0c26: d5 c0 03 mov $03c0+x,a +0c29: ce pop x +0c2a: f4 32 mov a,$32+x +0c2c: d5 a0 03 mov $03a0+x,a +0c2f: f4 33 mov a,$33+x +0c31: d5 a1 03 mov $03a1+x,a +0c34: 6f ret + +; vcmd fc - repeat end +0c35: 4d push x +0c36: 7d mov a,x +0c37: 5c lsr a +0c38: 5d mov x,a +0c39: f5 c0 03 mov a,$03c0+x +0c3c: 68 ff cmp a,#$ff +0c3e: d0 03 bne $0c43 +0c40: dd mov a,y +0c41: 8d ff mov y,#$ff +0c43: 9c dec a +0c44: d5 c0 03 mov $03c0+x,a +0c47: ce pop x +0c48: f0 18 beq $0c62 +0c4a: ad ff cmp y,#$ff +0c4c: d0 0a bne $0c58 +0c4e: f4 32 mov a,$32+x +0c50: d5 b0 03 mov $03b0+x,a +0c53: f4 33 mov a,$33+x +0c55: d5 b1 03 mov $03b1+x,a +0c58: f5 a0 03 mov a,$03a0+x +0c5b: d4 32 mov $32+x,a +0c5d: f5 a1 03 mov a,$03a1+x +0c60: d4 33 mov $33+x,a +0c62: 6f ret + +; vcmd fd - jump to end on final repeat +0c63: 4d push x +0c64: 7d mov a,x +0c65: 5c lsr a +0c66: 5d mov x,a +0c67: f5 c0 03 mov a,$03c0+x +0c6a: ce pop x +0c6b: 68 ff cmp a,#$ff +0c6d: f0 0e beq $0c7d +0c6f: 68 01 cmp a,#$01 +0c71: d0 0a bne $0c7d +0c73: f5 b0 03 mov a,$03b0+x +0c76: d4 32 mov $32+x,a +0c78: f5 b1 03 mov a,$03b1+x +0c7b: d4 33 mov $33+x,a +0c7d: 6f ret + +; vcmd dispatch table +0c7f: dw $09c9 ; e0 - set instrument +0c81: dw $0a22 ; e1 - pan +0c83: dw $0a30 ; e2 - pan fade +0c85: dw $0a49 ; e3 - vibrato on +0c87: dw $0a55 ; e4 - vibrato off +0c89: dw $0a60 ; e5 - master volume +0c8b: dw $0a65 ; e6 - master volume fade +0c8d: dw $0a77 ; e7 - tempo +0c8f: dw $0a7c ; e8 - tempo fade +0c91: dw $0a8e ; e9 - global transpose +0c93: dw $0a91 ; ea - per-voice transpose +0c95: dw $0a95 ; eb - tremolo on +0c97: dw $0aa1 ; ec - tremolo off +0c99: dw $0aa4 ; ed - volume +0c9b: dw $0aad ; ee - volume fade +0c9d: dw $0ac6 ; ef - call subroutine +0c9f: dw $0ae9 ; f0 - vibrato fade +0ca1: dw $0af9 ; f1 - pitch envelope (release) +0ca3: dw $0afd ; f2 - pitch envelope (attack) +0ca5: dw $0b13 ; f3 - pitch envelope off +0ca7: dw $0b17 ; f4 - tuning +0ca9: dw $0b1b ; f5 - echo vbits/volume +0cab: dw $0b2e ; f6 - disable echo +0cad: dw $0b35 ; f7 - set echo params +0caf: dw $0b57 ; f8 - echo volume fade +0cb1: dw $0b88 ; f9 - pitch slide +0cb3: dw $0bbb ; fa - set perc patch base +0cb5: dw $0c20 ; fb - repeat start +0cb7: dw $0c35 ; fc - repeat end +0cb9: dw $0c63 ; fd - jump to end on final repeat + +; vcmd lengths +0cba: db $01,$01,$02,$03,$00,$01,$02,$01 ; e0-e7 +0cc2: db $02,$01,$01,$03,$00,$01,$02,$03 ; e8-ef +0cca: db $01,$03,$03,$00,$01,$03,$00,$03 ; f0-f7 +0cb2: db $03,$03,$01,$00,$01,$00 ; f8-fd + +0cd8: f4 90 mov a,$90+x +0cda: f0 24 beq $0d00 +0cdc: 09 47 5e or ($5e),($47) +0cdf: 9b 90 dec $90+x +0ce1: d0 0a bne $0ced +0ce3: e8 00 mov a,#$00 +0ce5: d5 00 03 mov $0300+x,a +0ce8: f5 20 03 mov a,$0320+x +0ceb: 2f 10 bra $0cfd +0ced: 60 clrc +0cee: f5 00 03 mov a,$0300+x +0cf1: 95 10 03 adc a,$0310+x +0cf4: d5 00 03 mov $0300+x,a +0cf7: f5 01 03 mov a,$0301+x +0cfa: 95 11 03 adc a,$0311+x +0cfd: d5 01 03 mov $0301+x,a +0d00: fb c1 mov y,$c1+x +0d02: f0 23 beq $0d27 +0d04: f5 e0 02 mov a,$02e0+x +0d07: de c0 1b cbne $c0+x,$0d25 +0d0a: 09 47 5e or ($5e),($47) +0d0d: f5 d0 02 mov a,$02d0+x +0d10: 10 07 bpl $0d19 +0d12: fc inc y +0d13: d0 04 bne $0d19 +0d15: e8 80 mov a,#$80 +0d17: 2f 04 bra $0d1d +0d19: 60 clrc +0d1a: 95 d1 02 adc a,$02d1+x +0d1d: d5 d0 02 mov $02d0+x,a +0d20: 3f 19 0f call $0f19 +0d23: 2f 07 bra $0d2c +0d25: bb c0 inc $c0+x +0d27: e8 ff mov a,#$ff +0d29: 3f 24 0f call $0f24 +0d2c: f4 91 mov a,$91+x +0d2e: f0 24 beq $0d54 +0d30: 09 47 5e or ($5e),($47) +0d33: 9b 91 dec $91+x +0d35: d0 0a bne $0d41 +0d37: e8 00 mov a,#$00 +0d39: d5 30 03 mov $0330+x,a +0d3c: f5 50 03 mov a,$0350+x +0d3f: 2f 10 bra $0d51 +0d41: 60 clrc +0d42: f5 30 03 mov a,$0330+x +0d45: 95 40 03 adc a,$0340+x +0d48: d5 30 03 mov $0330+x,a +0d4b: f5 31 03 mov a,$0331+x +0d4e: 95 41 03 adc a,$0341+x +0d51: d5 31 03 mov $0331+x,a +0d54: e4 47 mov a,$47 +0d56: 24 5e and a,$5e +0d58: f0 46 beq $0da0 +0d5a: f5 31 03 mov a,$0331+x +0d5d: fd mov y,a +0d5e: f5 30 03 mov a,$0330+x +0d61: da 0e movw $0e,ya +0d63: 7d mov a,x +0d64: 9f xcn a +0d65: 5c lsr a +0d66: c4 10 mov $10,a +0d68: eb 0f mov y,$0f +0d6a: f6 37 0f mov a,$0f37+y +0d6d: 80 setc +0d6e: b6 36 0f sbc a,$0f36+y +0d71: eb 0e mov y,$0e +0d73: cf mul ya +0d74: dd mov a,y +0d75: eb 0f mov y,$0f +0d77: 60 clrc +0d78: 96 36 0f adc a,$0f36+y +0d7b: fd mov y,a +0d7c: f5 21 03 mov a,$0321+x +0d7f: cf mul ya +0d80: f5 51 03 mov a,$0351+x +0d83: 1c asl a +0d84: 13 10 01 bbc0 $10,$0d88 +0d87: 1c asl a +0d88: dd mov a,y +0d89: 90 03 bcc $0d8e +0d8b: 48 ff eor a,#$ff +0d8d: bc inc a +0d8e: eb 10 mov y,$10 +0d90: 3f 07 06 call $0607 +0d93: 8d 14 mov y,#$14 +0d95: e8 00 mov a,#$00 +0d97: 9a 0e subw ya,$0e +0d99: da 0e movw $0e,ya +0d9b: ab 10 inc $10 +0d9d: 33 10 c8 bbc1 $10,$0d68 +0da0: 6f ret + +0da1: f4 71 mov a,$71+x +0da3: f0 65 beq $0e0a +0da5: 9b 71 dec $71+x +0da7: f0 05 beq $0dae +0da9: e8 02 mov a,#$02 +0dab: de 70 5c cbne $70+x,$0e0a +0dae: f4 80 mov a,$80+x +0db0: c4 15 mov $15,a +0db2: f4 32 mov a,$32+x +0db4: fb 33 mov y,$33+x +0db6: da 12 movw $12,ya +0db8: 8d 00 mov y,#$00 +0dba: f7 12 mov a,($12)+y +0dbc: f0 1e beq $0ddc +0dbe: 30 07 bmi $0dc7 +0dc0: fc inc y +0dc1: 30 40 bmi $0e03 +0dc3: f7 12 mov a,($12)+y +0dc5: 10 f9 bpl $0dc0 +0dc7: 68 c8 cmp a,#$c8 +0dc9: f0 3f beq $0e0a +0dcb: 68 ef cmp a,#$ef +0dcd: f0 29 beq $0df8 +0dcf: 68 e0 cmp a,#$e0 +0dd1: 90 30 bcc $0e03 +0dd3: 6d push y +0dd4: fd mov y,a +0dd5: ae pop a +0dd6: 96 da 0b adc a,$0bda+y +0dd9: fd mov y,a +0dda: 2f de bra $0dba +0ddc: e4 15 mov a,$15 +0dde: f0 23 beq $0e03 +0de0: 8b 15 dec $15 +0de2: d0 0a bne $0dee +0de4: f5 31 02 mov a,$0231+x +0de7: 2d push a +0de8: f5 30 02 mov a,$0230+x +0deb: ee pop y +0dec: 2f c8 bra $0db6 +0dee: f5 41 02 mov a,$0241+x +0df1: 2d push a +0df2: f5 40 02 mov a,$0240+x +0df5: ee pop y +0df6: 2f be bra $0db6 +0df8: fc inc y +0df9: f7 12 mov a,($12)+y +0dfb: 2d push a +0dfc: fc inc y +0dfd: f7 12 mov a,($12)+y +0dff: fd mov y,a +0e00: ae pop a +0e01: 2f b3 bra $0db6 +0e03: e4 47 mov a,$47 +0e05: 8d 5c mov y,#$5c +0e07: 3f 07 06 call $0607 +0e0a: f2 11 clr7 $11 +0e0c: f4 a0 mov a,$a0+x +0e0e: f0 2c beq $0e3c +0e10: f4 a1 mov a,$a1+x +0e12: f0 04 beq $0e18 +0e14: 9b a1 dec $a1+x +0e16: 2f 24 bra $0e3c +0e18: e2 11 set7 $11 +0e1a: 9b a0 dec $a0+x +0e1c: d0 0b bne $0e29 +0e1e: f5 81 03 mov a,$0381+x +0e21: d5 60 03 mov $0360+x,a +0e24: f5 80 03 mov a,$0380+x +0e27: 2f 10 bra $0e39 +0e29: 60 clrc +0e2a: f5 60 03 mov a,$0360+x +0e2d: 95 70 03 adc a,$0370+x +0e30: d5 60 03 mov $0360+x,a +0e33: f5 61 03 mov a,$0361+x +0e36: 95 71 03 adc a,$0371+x +0e39: d5 61 03 mov $0361+x,a +0e3c: 3f b0 0b call $0bb0 +0e3f: f4 b1 mov a,$b1+x +0e41: f0 4c beq $0e8f +0e43: f5 b0 02 mov a,$02b0+x +0e46: de b0 44 cbne $b0+x,$0e8d +0e49: f5 00 01 mov a,$0100+x +0e4c: 75 b1 02 cmp a,$02b1+x +0e4f: d0 05 bne $0e56 +0e51: f5 c1 02 mov a,$02c1+x +0e54: 2f 0d bra $0e63 +0e56: 40 setp +0e57: bb 00 inc $00+x +0e59: 20 clrp +0e5a: fd mov y,a +0e5b: f0 02 beq $0e5f +0e5d: f4 b1 mov a,$b1+x +0e5f: 60 clrc +0e60: 95 c0 02 adc a,$02c0+x +0e63: d4 b1 mov $b1+x,a +0e65: f5 a0 02 mov a,$02a0+x +0e68: 60 clrc +0e69: 95 a1 02 adc a,$02a1+x +0e6c: d5 a0 02 mov $02a0+x,a +0e6f: c4 10 mov $10,a +0e71: 1c asl a +0e72: 1c asl a +0e73: 90 02 bcc $0e77 +0e75: 48 ff eor a,#$ff +0e77: fd mov y,a +0e78: f4 b1 mov a,$b1+x +0e7a: 68 f1 cmp a,#$f1 +0e7c: 90 05 bcc $0e83 +0e7e: 28 0f and a,#$0f +0e80: cf mul ya +0e81: 2f 04 bra $0e87 +0e83: cf mul ya +0e84: dd mov a,y +0e85: 8d 00 mov y,#$00 +0e87: 3f 04 0f call $0f04 +0e8a: 5f 84 05 jmp $0584 + +0e8d: bb b0 inc $b0+x +0e8f: e3 11 f8 bbs7 $11,$0e8a +0e92: 6f ret + +0e93: f2 11 clr7 $11 +0e95: f4 c1 mov a,$c1+x +0e97: f0 09 beq $0ea2 +0e99: f5 e0 02 mov a,$02e0+x +0e9c: de c0 03 cbne $c0+x,$0ea2 +0e9f: 3f 0c 0f call $0f0c +0ea2: f5 31 03 mov a,$0331+x +0ea5: fd mov y,a +0ea6: f5 30 03 mov a,$0330+x +0ea9: da 0e movw $0e,ya +0eab: f4 91 mov a,$91+x +0ead: f0 0a beq $0eb9 +0eaf: f5 41 03 mov a,$0341+x +0eb2: fd mov y,a +0eb3: f5 40 03 mov a,$0340+x +0eb6: 3f ee 0e call $0eee +0eb9: f3 11 03 bbc7 $11,$0ebf +0ebc: 3f 63 0d call $0d63 +0ebf: f2 11 clr7 $11 +0ec1: 3f b0 0b call $0bb0 +0ec4: f4 a0 mov a,$a0+x +0ec6: f0 0e beq $0ed6 +0ec8: f4 a1 mov a,$a1+x +0eca: d0 0a bne $0ed6 +0ecc: f5 71 03 mov a,$0371+x +0ecf: fd mov y,a +0ed0: f5 70 03 mov a,$0370+x +0ed3: 3f ee 0e call $0eee +0ed6: f4 b1 mov a,$b1+x +0ed8: f0 b5 beq $0e8f +0eda: f5 b0 02 mov a,$02b0+x +0edd: de b0 af cbne $b0+x,$0e8f +0ee0: eb 51 mov y,$51 +0ee2: f5 a1 02 mov a,$02a1+x +0ee5: cf mul ya +0ee6: dd mov a,y +0ee7: 60 clrc +0ee8: 95 a0 02 adc a,$02a0+x +0eeb: 5f 6f 0e jmp $0e6f + +0eee: e2 11 set7 $11 +0ef0: cb 10 mov $10,y +0ef2: 3f 16 0c call $0c16 +0ef5: 6d push y +0ef6: eb 51 mov y,$51 +0ef8: cf mul ya +0ef9: cb 12 mov $12,y +0efb: 8f 00 13 mov $13,#$00 +0efe: eb 51 mov y,$51 +0f00: ae pop a +0f01: cf mul ya +0f02: 7a 12 addw ya,$12 +0f04: 3f 16 0c call $0c16 +0f07: 7a 0e addw ya,$0e +0f09: da 0e movw $0e,ya +0f0b: 6f ret + +0f0c: e2 11 set7 $11 +0f0e: eb 51 mov y,$51 +0f10: f5 d1 02 mov a,$02d1+x +0f13: cf mul ya +0f14: dd mov a,y +0f15: 60 clrc +0f16: 95 d0 02 adc a,$02d0+x +0f19: 1c asl a +0f1a: 90 02 bcc $0f1e +0f1c: 48 ff eor a,#$ff +0f1e: fb c1 mov y,$c1+x +0f20: cf mul ya +0f21: dd mov a,y +0f22: 48 ff eor a,#$ff +0f24: eb 59 mov y,$59 +0f26: cf mul ya +0f27: f5 10 02 mov a,$0210+x +0f2a: cf mul ya +0f2b: f5 01 03 mov a,$0301+x +0f2e: cf mul ya +0f2f: dd mov a,y +0f30: cf mul ya +0f31: dd mov a,y +0f32: d5 21 03 mov $0321+x,a +0f35: 6f ret + +; pan table +0f36: db $00,$01,$03,$07,$0d,$15,$1e,$29 +0f3e: db $34,$42,$51,$5e,$67,$6e,$73,$77 +0f46: db $7a,$7c,$7d,$7e,$7f + +; echo FIR presets +0f4b: db $7f,$00,$00,$00,$00,$00,$00,$00 ; 00 +0f53: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c ; 01 +0f5b: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 ; 02 +0f63: db $34,$33,$00,$d9,$e5,$01,$fc,$eb ; 03 + +; EVOL(L),EVOL(R),EFB,EON,FLG,KOL,KOF,NON,PMON,KOF +; dsp shadow addrs for dsp regs +0f6b: db $2c,$3c,$0d,$4d,$6c,$4c,$5c,$3d,$2d,$5c +0f75: db $61,$63,$4e,$4a,$48,$45,$0c,$49,$4b,$46,$5f + +; pitch table +0f7f: dw $085f +0f81: dw $08de +0f83: dw $0965 +0f85: dw $09f4 +0f87: dw $0a8c +0f89: dw $0b2c +0f8b: dw $0bd6 +0f8d: dw $0c8b +0f8f: dw $0d4a +0f91: dw $0e14 + +; version text string + +0f99: db "*Ver S1.20*" diff --git a/snes/NSPC/LaserSoft/Doomsday Warrior ($0400).bin b/snes/NSPC/LaserSoft/Doomsday Warrior ($0400).bin new file mode 100644 index 00000000..d65eaaa5 Binary files /dev/null and b/snes/NSPC/LaserSoft/Doomsday Warrior ($0400).bin differ diff --git a/snes/NSPC/LaserSoft/Doomsday Warrior.s b/snes/NSPC/LaserSoft/Doomsday Warrior.s new file mode 100644 index 00000000..5cf0c289 --- /dev/null +++ b/snes/NSPC/LaserSoft/Doomsday Warrior.s @@ -0,0 +1,1996 @@ + 0400: 20 clrp +0401: cd cf mov x,#$cf +0403: bd mov sp,x +0404: e8 00 mov a,#$00 +0406: 5d mov x,a +0407: af mov (x)+,a +0408: c8 f0 cmp x,#$f0 +040a: d0 fb bne $0407 +040c: cd 00 mov x,#$00 +040e: d5 00 01 mov $0100+x,a +0411: d5 00 02 mov $0200+x,a +0414: d5 00 03 mov $0300+x,a +0417: 3d inc x +0418: d0 f4 bne $040e +041a: e8 3c mov a,#$3c +041c: c4 11 mov $11,a +041e: e8 00 mov a,#$00 +0420: c4 10 mov $10,a +0422: 8d 00 mov y,#$00 +0424: d7 10 mov ($10)+y,a +0426: fc inc y +0427: d0 fb bne $0424 +0429: ab 11 inc $11 +042b: d0 f7 bne $0424 +042d: e8 c0 mov a,#$c0 +042f: c4 18 mov $18,a +0431: e8 80 mov a,#$80 +0433: c4 4b mov $4b,a +0435: e8 01 mov a,#$01 +0437: 3f b8 0d call $0db8 +043a: a2 48 set5 $48 +043c: e8 60 mov a,#$60 +043e: 3f 64 05 call $0564 +0441: e8 14 mov a,#$14 +0443: 8d 5d mov y,#$5d +0445: 3f 87 07 call $0787 +0448: e8 f0 mov a,#$f0 +044a: c5 f1 00 mov $00f1,a +044d: e8 20 mov a,#$20 +044f: c5 fa 00 mov $00fa,a +0452: c4 53 mov $53,a +0454: e8 01 mov a,#$01 +0456: c5 f1 00 mov $00f1,a +0459: e4 62 mov a,$62 +045b: 3f 2e 05 call $052e +045e: c4 ae mov $ae,a +0460: e4 64 mov a,$64 +0462: 3f 2e 05 call $052e +0465: c4 af mov $af,a +0467: 8d 0a mov y,#$0a +0469: ad 05 cmp y,#$05 +046b: f0 07 beq $0474 +046d: b0 08 bcs $0477 +046f: 69 4d 4c cmp ($4c),($4d) +0472: d0 11 bne $0485 +0474: e3 4c 0e bbs7 $4c,$0485 +0477: f6 ad 12 mov a,$12ad+y +047a: c5 f2 00 mov $00f2,a +047d: f6 b7 12 mov a,$12b7+y +0480: 5d mov x,a +0481: e6 mov a,(x) +0482: c5 f3 00 mov $00f3,a +0485: fe e2 dbnz y,$0469 +0487: cb a8 mov $a8,y +0489: cb a9 mov $a9,y +048b: ec fd 00 mov y,$00fd +048e: f0 fb beq $048b +0490: 6d push y +0491: 2f 05 bra $0498 +0493: 6d push y +0494: 3f f5 07 call $07f5 +0497: ee pop y +0498: dd mov a,y +0499: f0 03 beq $049e +049b: dc dec y +049c: 2f f5 bra $0493 +049e: e4 a6 mov a,$a6 +04a0: 0e a8 00 tset1 $00a8 +04a3: e4 a7 mov a,$a7 +04a5: 0e a9 00 tset1 $00a9 +04a8: c4 a6 mov $a6,a +04aa: e8 00 mov a,#$00 +04ac: c4 a7 mov $a7,a +04ae: ee pop y +04af: 6d push y +04b0: e8 40 mov a,#$40 +04b2: cf mul ya +04b3: 60 clrc +04b4: 84 00 adc a,$00 +04b6: c4 00 mov $00,a +04b8: 90 0a bcc $04c4 +04ba: 3f 36 05 call $0536 +04bd: 69 4d 4c cmp ($4c),($4d) +04c0: f0 02 beq $04c4 +04c2: ab 4c inc $4c +04c4: ee pop y +04c5: e4 53 mov a,$53 +04c7: 1c asl a +04c8: cf mul ya +04c9: cb 1f mov $1f,y +04cb: 60 clrc +04cc: 84 51 adc a,$51 +04ce: c4 51 mov $51,a +04d0: b0 06 bcs $04d8 +04d2: e4 1f mov a,$1f +04d4: f0 0b beq $04e1 +04d6: 8b 1f dec $1f +04d8: 3f 2d 0a call $0a2d +04db: e4 1f mov a,$1f +04dd: f0 1e beq $04fd +04df: 2f f5 bra $04d6 +04e1: e4 04 mov a,$04 +04e3: f0 18 beq $04fd +04e5: cd 00 mov x,#$00 +04e7: 8f 01 47 mov $47,#$01 +04ea: e4 18 mov a,$18 +04ec: 24 47 and a,$47 +04ee: d0 07 bne $04f7 +04f0: f4 31 mov a,$31+x +04f2: f0 03 beq $04f7 +04f4: 3f 5c 11 call $115c +04f7: 3d inc x +04f8: 3d inc x +04f9: 0b 47 asl $47 +04fb: d0 ed bne $04ea +04fd: 5f 59 04 jmp $0459 + +0500: e5 f4 00 mov a,$00f4 +0503: 65 f4 00 cmp a,$00f4 +0506: d0 f8 bne $0500 +0508: 68 00 cmp a,#$00 +050a: f0 0a beq $0516 +050c: 2d push a +050d: e8 11 mov a,#$11 +050f: c5 f1 00 mov $00f1,a +0512: ae pop a +0513: c5 f4 00 mov $00f4,a +0516: 6f ret + +0517: e5 f6 00 mov a,$00f6 +051a: 65 f6 00 cmp a,$00f6 +051d: d0 f8 bne $0517 +051f: 68 00 cmp a,#$00 +0521: f0 0a beq $052d +0523: 2d push a +0524: e8 21 mov a,#$21 +0526: c5 f1 00 mov $00f1,a +0529: ae pop a +052a: c5 f6 00 mov $00f6,a +052d: 6f ret + +052e: 80 setc +052f: a4 ac sbc a,$ac +0531: b0 02 bcs $0535 +0533: e8 00 mov a,#$00 +0535: 6f ret + +0536: e4 ac mov a,$ac +0538: d0 05 bne $053f +053a: e8 60 mov a,#$60 +053c: 5f 60 05 jmp $0560 + +053f: 60 clrc +0540: e8 96 mov a,#$96 +0542: 84 ad adc a,$ad +0544: c4 ad mov $ad,a +0546: e8 01 mov a,#$01 +0548: 84 ac adc a,$ac +054a: c4 ac mov $ac,a +054c: 80 setc +054d: e8 60 mov a,#$60 +054f: a4 ac sbc a,$ac +0551: b0 0d bcs $0560 +0553: e8 00 mov a,#$00 +0555: c4 ad mov $ad,a +0557: c4 ac mov $ac,a +0559: 3f 64 05 call $0564 +055c: 3f 06 0a call $0a06 +055f: 6f ret + +0560: 3f 64 05 call $0564 +0563: 6f ret + +0564: 6d push y +0565: 8d 0c mov y,#$0c +0567: 3f 87 07 call $0787 +056a: 8d 1c mov y,#$1c +056c: 3f 87 07 call $0787 +056f: ee pop y +0570: 6f ret + +0571: f4 80 mov a,$80+x +0573: d0 65 bne $05da +0575: ad c8 cmp y,#$c8 +0577: b0 61 bcs $05da +0579: e4 18 mov a,$18 +057b: 24 47 and a,$47 +057d: f0 5b beq $05da +057f: dd mov a,y +0580: 28 7f and a,#$7f +0582: 95 91 03 adc a,$0391+x +0585: c4 11 mov $11,a +0587: f5 90 03 mov a,$0390+x +058a: c4 10 mov $10,a +058c: f5 b1 02 mov a,$02b1+x +058f: 5c lsr a +0590: e8 00 mov a,#$00 +0592: 7c ror a +0593: d5 a0 02 mov $02a0+x,a +0596: e8 00 mov a,#$00 +0598: d4 d0 mov $d0+x,a +059a: d5 00 01 mov $0100+x,a +059d: d5 d0 02 mov $02d0+x,a +05a0: d4 e0 mov $e0+x,a +05a2: 09 47 a7 or ($a7),($47) +05a5: f5 80 02 mov a,$0280+x +05a8: d4 c0 mov $c0+x,a +05aa: f0 1b beq $05c7 +05ac: f5 81 02 mov a,$0281+x +05af: d4 c1 mov $c1+x,a +05b1: f5 90 02 mov a,$0290+x +05b4: d0 08 bne $05be +05b6: e4 11 mov a,$11 +05b8: 80 setc +05b9: b5 91 02 sbc a,$0291+x +05bc: c4 11 mov $11,a +05be: f5 91 02 mov a,$0291+x +05c1: 60 clrc +05c2: 84 11 adc a,$11 +05c4: 3f 39 0e call $0e39 +05c7: e4 11 mov a,$11 +05c9: d5 61 03 mov $0361+x,a +05cc: e4 10 mov a,$10 +05ce: d5 60 03 mov $0360+x,a +05d1: f5 11 02 mov a,$0211+x +05d4: 3f 46 0c call $0c46 +05d7: 5f eb 06 jmp $06eb + +05da: 6f ret + +; handle a note vcmd (80-df) +05db: ad ca cmp y,#$ca +05dd: 90 06 bcc $05e5 +; vcmds ca-df - percussion note +05df: dd mov a,y +05e0: d5 11 02 mov $0211+x,a +05e3: 8d a4 mov y,#$a4 +; vcmds c7,c8,c9 - note/tie/rest +05e5: ad c8 cmp y,#$c8 +05e7: b0 f1 bcs $05da +05e9: 4d push x +05ea: cd 00 mov x,#$00 +05ec: f4 90 mov a,$90+x +05ee: 64 44 cmp a,$44 +05f0: d0 15 bne $0607 +05f2: f4 80 mov a,$80+x +05f4: f0 11 beq $0607 +05f6: dd mov a,y +05f7: 28 7f and a,#$7f +05f9: 74 81 cmp a,$81+x +05fb: d0 0a bne $0607 +05fd: 7d mov a,x +05fe: fd mov y,a +05ff: ce pop x +0600: f5 01 02 mov a,$0201+x +0603: d6 80 00 mov $0080+y,a +0606: 6f ret + +0607: 3d inc x +0608: 3d inc x +0609: c8 10 cmp x,#$10 +060b: d0 df bne $05ec +060d: ce pop x +060e: 6d push y +060f: 3f 8e 07 call $078e +0612: 4e 1d 00 tclr1 $001d +0615: 0e 46 00 tset1 $0046 +0618: 0e 5e 00 tset1 $005e +061b: 0e 5f 00 tset1 $005f +061e: 0e 60 00 tset1 $0060 +0621: c4 a2 mov $a2,a +0623: 8d 0e mov y,#$0e +0625: e4 a2 mov a,$a2 +0627: 36 a0 03 and a,$03a0+y +062a: f0 0a beq $0636 +062c: e4 a2 mov a,$a2 +062e: 48 ff eor a,#$ff +0630: 36 a0 03 and a,$03a0+y +0633: d6 a0 03 mov $03a0+y,a +0636: dc dec y +0637: dc dec y +0638: 10 eb bpl $0625 +063a: e4 a2 mov a,$a2 +063c: 15 a0 03 or a,$03a0+x +063f: d5 a0 03 mov $03a0+x,a +0642: e4 a2 mov a,$a2 +0644: 8d ff mov y,#$ff +0646: fc inc y +0647: 5c lsr a +0648: 90 fc bcc $0646 +064a: dd mov a,y +064b: ee pop y +064c: 4d push x +064d: 1c asl a +064e: 5d mov x,a +064f: dd mov a,y +0650: 28 7f and a,#$7f +0652: d4 81 mov $81+x,a +0654: ae pop a +0655: d4 90 mov $90+x,a +0657: fd mov y,a +0658: f6 01 02 mov a,$0201+y +065b: d4 80 mov $80+x,a +065d: f6 10 02 mov a,$0210+y +0660: d4 91 mov $91+x,a +0662: dd mov a,y +0663: 5d mov x,a +0664: 6f ret + +0665: e4 60 mov a,$60 +0667: 24 47 and a,$47 +0669: f0 f9 beq $0664 +066b: e4 5f mov a,$5f +066d: 24 47 and a,$47 +066f: f0 5c beq $06cd +0671: 4d push x +0672: f4 81 mov a,$81+x +0674: 2d push a +0675: f4 90 mov a,$90+x +0677: 5d mov x,a +0678: ae pop a +0679: 60 clrc +067a: 84 50 adc a,$50 +067c: 95 f0 02 adc a,$02f0+x +067f: c4 11 mov $11,a +0681: 8f 00 10 mov $10,#$00 +0684: f5 b1 02 mov a,$02b1+x +0687: 5c lsr a +0688: e8 00 mov a,#$00 +068a: 7c ror a +068b: d5 a0 02 mov $02a0+x,a +068e: e8 00 mov a,#$00 +0690: d4 d0 mov $d0+x,a +0692: d5 00 01 mov $0100+x,a +0695: d5 d0 02 mov $02d0+x,a +0698: d4 e0 mov $e0+x,a +069a: f5 80 02 mov a,$0280+x +069d: d4 c0 mov $c0+x,a +069f: f0 1b beq $06bc +06a1: f5 81 02 mov a,$0281+x +06a4: d4 c1 mov $c1+x,a +06a6: f5 90 02 mov a,$0290+x +06a9: d0 08 bne $06b3 +06ab: e4 11 mov a,$11 +06ad: 80 setc +06ae: b5 91 02 sbc a,$0291+x +06b1: c4 11 mov $11,a +06b3: f5 91 02 mov a,$0291+x +06b6: 60 clrc +06b7: 84 11 adc a,$11 +06b9: 3f 39 0e call $0e39 +06bc: ce pop x +06bd: e4 11 mov a,$11 +06bf: d5 61 03 mov $0361+x,a +06c2: e4 10 mov a,$10 +06c4: d5 60 03 mov $0360+x,a +06c7: 3f f5 0b call $0bf5 +06ca: 5f d7 06 jmp $06d7 + +06cd: f5 61 03 mov a,$0361+x +06d0: c4 11 mov $11,a +06d2: f5 60 03 mov a,$0360+x +06d5: c4 10 mov $10,a +06d7: 4d push x +06d8: f4 90 mov a,$90+x +06da: 5d mov x,a +06db: 60 clrc +06dc: e4 10 mov a,$10 +06de: 95 90 03 adc a,$0390+x +06e1: c4 10 mov $10,a +06e3: e4 11 mov a,$11 +06e5: 95 91 03 adc a,$0391+x +06e8: c4 11 mov $11,a +06ea: ce pop x +06eb: 8d 00 mov y,#$00 +06ed: e4 11 mov a,$11 +06ef: 80 setc +06f0: a8 34 sbc a,#$34 +06f2: b0 09 bcs $06fd +06f4: e4 11 mov a,$11 +06f6: 80 setc +06f7: a8 13 sbc a,#$13 +06f9: b0 06 bcs $0701 +06fb: dc dec y +06fc: 1c asl a +06fd: 7a 10 addw ya,$10 +06ff: da 10 movw $10,ya +0701: 4d push x +0702: e4 11 mov a,$11 +0704: 1c asl a +0705: 8d 00 mov y,#$00 +0707: cd 18 mov x,#$18 +0709: 9e div ya,x +070a: 5d mov x,a +070b: f6 c3 12 mov a,$12c3+y +070e: c4 15 mov $15,a +0710: f6 c2 12 mov a,$12c2+y +0713: c4 14 mov $14,a +0715: f6 c5 12 mov a,$12c5+y +0718: 2d push a +0719: f6 c4 12 mov a,$12c4+y +071c: ee pop y +071d: 9a 14 subw ya,$14 +071f: eb 10 mov y,$10 +0721: cf mul ya +0722: dd mov a,y +0723: 8d 00 mov y,#$00 +0725: 7a 14 addw ya,$14 +0727: cb 15 mov $15,y +0729: 1c asl a +072a: 2b 15 rol $15 +072c: c4 14 mov $14,a +072e: 2f 04 bra $0734 +0730: 4b 15 lsr $15 +0732: 7c ror a +0733: 3d inc x +0734: c8 06 cmp x,#$06 +0736: d0 f8 bne $0730 +0738: c4 14 mov $14,a +073a: ce pop x +073b: f5 20 02 mov a,$0220+x +073e: eb 15 mov y,$15 +0740: cf mul ya +0741: da 16 movw $16,ya +0743: f5 20 02 mov a,$0220+x +0746: eb 14 mov y,$14 +0748: cf mul ya +0749: 6d push y +074a: f5 21 02 mov a,$0221+x +074d: eb 14 mov y,$14 +074f: cf mul ya +0750: 7a 16 addw ya,$16 +0752: da 16 movw $16,ya +0754: f5 21 02 mov a,$0221+x +0757: eb 15 mov y,$15 +0759: cf mul ya +075a: fd mov y,a +075b: ae pop a +075c: 7a 16 addw ya,$16 +075e: da 16 movw $16,ya +0760: 8d 02 mov y,#$02 +0762: e4 16 mov a,$16 +0764: 3f 6a 07 call $076a +0767: fc inc y +0768: e4 17 mov a,$17 +076a: c5 c0 03 mov $03c0,a +076d: cc c1 03 mov $03c1,y +0770: 7d mov a,x +0771: 5c lsr a +0772: 9f xcn a +0773: 05 c1 03 or a,$03c1 +0776: fd mov y,a +0777: e5 c0 03 mov a,$03c0 +077a: cc f2 00 mov $00f2,y +077d: c5 f3 00 mov $00f3,a +0780: ec c1 03 mov y,$03c1 +0783: e5 c0 03 mov a,$03c0 +0786: 6f ret + +0787: cc f2 00 mov $00f2,y +078a: c5 f3 00 mov $00f3,a +078d: 6f ret + +078e: e4 19 mov a,$19 +0790: 24 47 and a,$47 +0792: d0 03 bne $0797 +0794: e4 47 mov a,$47 +0796: 6f ret + +0797: e4 1d mov a,$1d +0799: 35 a0 03 and a,$03a0+x +079c: f0 16 beq $07b4 +079e: f5 a1 03 mov a,$03a1+x +07a1: 1c asl a +07a2: d5 a1 03 mov $03a1+x,a +07a5: d0 05 bne $07ac +07a7: e8 01 mov a,#$01 +07a9: d5 a1 03 mov $03a1+x,a +07ac: 35 a0 03 and a,$03a0+x +07af: 24 1d and a,$1d +07b1: f0 eb beq $079e +07b3: 6f ret + +07b4: e4 1d mov a,$1d +07b6: d0 2e bne $07e6 +07b8: e8 80 mov a,#$80 +07ba: c5 c0 03 mov $03c0,a +07bd: c5 c1 03 mov $03c1,a +07c0: 8d 07 mov y,#$07 +07c2: e4 1a mov a,$1a +07c4: 25 c0 03 and a,$03c0 +07c7: f0 17 beq $07e0 +07c9: dd mov a,y +07ca: 9f xcn a +07cb: 08 08 or a,#$08 +07cd: c5 f2 00 mov $00f2,a +07d0: e5 f3 00 mov a,$00f3 +07d3: 65 c1 03 cmp a,$03c1 +07d6: b0 08 bcs $07e0 +07d8: c5 c1 03 mov $03c1,a +07db: e5 c0 03 mov a,$03c0 +07de: c4 1d mov $1d,a +07e0: 4c c0 03 lsr $03c0 +07e3: dc dec y +07e4: 10 dc bpl $07c2 +07e6: 0b 1b asl $1b +07e8: d0 04 bne $07ee +07ea: e8 01 mov a,#$01 +07ec: c4 1b mov $1b,a +07ee: e4 1b mov a,$1b +07f0: 24 1d and a,$1d +07f2: f0 f2 beq $07e6 +07f4: 6f ret + +07f5: 3f 17 05 call $0517 +07f8: 68 1b cmp a,#$1b +07fa: b0 04 bcs $0800 +07fc: 68 00 cmp a,#$00 +07fe: d0 03 bne $0803 +0800: 5f 02 09 jmp $0902 + +0803: c4 10 mov $10,a +0805: 9c dec a +0806: 1c asl a +0807: 1c asl a +0808: fd mov y,a +0809: f6 00 15 mov a,$1500+y +080c: c4 12 mov $12,a +080e: f6 01 15 mov a,$1501+y +0811: 28 0f and a,#$0f +0813: c4 13 mov $13,a +0815: e4 18 mov a,$18 +0817: 48 ff eor a,#$ff +0819: 24 12 and a,$12 +081b: d0 54 bne $0871 +081d: cd 0e mov x,#$0e +081f: 8f 80 47 mov $47,#$80 +0822: e4 12 mov a,$12 +0824: 24 47 and a,$47 +0826: f0 06 beq $082e +0828: f4 21 mov a,$21+x +082a: 64 13 cmp a,$13 +082c: b0 43 bcs $0871 +082e: 1d dec x +082f: 1d dec x +0830: 4b 47 lsr $47 +0832: d0 ee bne $0822 +0834: f6 01 15 mov a,$1501+y +0837: 5c lsr a +0838: 5c lsr a +0839: 5c lsr a +083a: 5c lsr a +083b: c4 13 mov $13,a +083d: f6 03 15 mov a,$1503+y +0840: c4 15 mov $15,a +0842: f6 02 15 mov a,$1502+y +0845: c4 14 mov $14,a +0847: 8d 00 mov y,#$00 +0849: cd 0e mov x,#$0e +084b: 8f 80 47 mov $47,#$80 +084e: e4 12 mov a,$12 +0850: 24 47 and a,$47 +0852: f0 03 beq $0857 +0854: 3f 74 08 call $0874 +0857: 1d dec x +0858: 1d dec x +0859: 4b 47 lsr $47 +085b: d0 f1 bne $084e +085d: cd 0e mov x,#$0e +085f: 8f 80 47 mov $47,#$80 +0862: e4 12 mov a,$12 +0864: 24 47 and a,$47 +0866: f0 03 beq $086b +0868: 3f b4 08 call $08b4 +086b: 1d dec x +086c: 1d dec x +086d: 4b 47 lsr $47 +086f: d0 f1 bne $0862 +0871: 5f 02 09 jmp $0902 + +0874: e4 47 mov a,$47 +0876: 2d push a +0877: 4d push x +0878: e8 80 mov a,#$80 +087a: c4 47 mov $47,a +087c: cd 0e mov x,#$0e +087e: f4 20 mov a,$20+x +0880: f0 2d beq $08af +0882: 74 20 cmp a,$20+x +0884: d0 23 bne $08a9 +0886: 2d push a +0887: e4 47 mov a,$47 +0889: 24 18 and a,$18 +088b: f0 1b beq $08a8 +088d: e4 47 mov a,$47 +088f: 0e a9 00 tset1 $00a9 +0892: 4e a7 00 tclr1 $00a7 +0895: 4e a6 00 tclr1 $00a6 +0898: 4e 4b 00 tclr1 $004b +089b: 4e 49 00 tclr1 $0049 +089e: e8 00 mov a,#$00 +08a0: d4 20 mov $20+x,a +08a2: d4 21 mov $21+x,a +08a4: d4 30 mov $30+x,a +08a6: d4 31 mov $31+x,a +08a8: ae pop a +08a9: 1d dec x +08aa: 1d dec x +08ab: 4b 47 lsr $47 +08ad: d0 d3 bne $0882 +08af: ce pop x +08b0: ae pop a +08b1: c4 47 mov $47,a +08b3: 6f ret + +08b4: f7 14 mov a,($14)+y +08b6: d4 30 mov $30+x,a +08b8: fc inc y +08b9: f7 14 mov a,($14)+y +08bb: d4 31 mov $31+x,a +08bd: fc inc y +08be: f4 31 mov a,$31+x +08c0: d0 01 bne $08c3 +08c2: 6f ret + +08c3: e4 47 mov a,$47 +08c5: 4e 49 00 tclr1 $0049 +08c8: 4e 4b 00 tclr1 $004b +08cb: e8 ff mov a,#$ff +08cd: d5 01 03 mov $0301+x,a +08d0: 7d mov a,x +08d1: d4 90 mov $90+x,a +08d3: 3f 60 0c call $0c60 +08d6: d5 a0 03 mov $03a0+x,a +08d9: d5 a1 03 mov $03a1+x,a +08dc: d5 11 02 mov $0211+x,a +08df: d5 90 03 mov $0390+x,a +08e2: d5 91 03 mov $0391+x,a +08e5: d5 f0 02 mov $02f0+x,a +08e8: d5 80 02 mov $0280+x,a +08eb: d4 b0 mov $b0+x,a +08ed: d4 d1 mov $d1+x,a +08ef: d4 e1 mov $e1+x,a +08f1: d5 01 02 mov $0201+x,a +08f4: d4 80 mov $80+x,a +08f6: bc inc a +08f7: d4 70 mov $70+x,a +08f9: e4 10 mov a,$10 +08fb: d4 20 mov $20+x,a +08fd: e4 13 mov a,$13 +08ff: d4 21 mov $21+x,a +0901: 6f ret + +0902: cd 0e mov x,#$0e +0904: 8f 80 47 mov $47,#$80 +0907: e4 18 mov a,$18 +0909: 24 47 and a,$47 +090b: f0 72 beq $097f +090d: d8 44 mov $44,x +090f: f4 31 mov a,$31+x +0911: f0 6c beq $097f +0913: f4 20 mov a,$20+x +0915: f0 68 beq $097f +0917: 9b 70 dec $70+x +0919: d0 5e bne $0979 +091b: 3f d2 0b call $0bd2 +091e: 68 ff cmp a,#$ff ; vcmd ff - end repeat/return +0920: d0 1e bne $0940 +0922: e4 47 mov a,$47 +0924: 0e a9 00 tset1 $00a9 +0927: 4e a7 00 tclr1 $00a7 +092a: 4e a6 00 tclr1 $00a6 +092d: 4e 49 00 tclr1 $0049 +0930: 4e 4b 00 tclr1 $004b +0933: e8 00 mov a,#$00 +0935: d4 30 mov $30+x,a +0937: d4 31 mov $31+x,a +0939: d4 20 mov $20+x,a +093b: d4 21 mov $21+x,a +093d: 5f 7f 09 jmp $097f +; vcmd branches +0940: 30 17 bmi $0959a ; vcmds 01-7f - note info: +0942: d5 00 02 mov $0200+x,a ; set cmd as duration +0945: 3f d2 0b call $0bd2 ; read next byte +0948: 30 0f bmi $0959 ; if not note then +094a: d5 01 02 mov $0201+x,a ; set dur% from next byte +094d: 3f d2 0b call $0bd2 +0950: 30 07 bmi $0959 ; if not note then +0952: 1c asl a +0953: d5 10 02 mov $0210+x,a ; set per-note vol from next byte +0956: 3f d2 0b call $0bd2 +; vcmd branches 80-ff +0959: 68 de cmp a,#$de +095b: 90 05 bcc $0962 +095d: 3f dc 0b call $0bdc +0960: 2f b9 bra $091b +0962: f5 01 02 mov a,$0201+x +0965: f0 03 beq $096a +0967: 3f 71 05 call $0571 +096a: f5 01 02 mov a,$0201+x +096d: d4 80 mov $80+x,a +096f: f5 00 02 mov a,$0200+x +0972: d4 70 mov $70+x,a +0974: f0 a5 beq $091b +0976: 3f 19 0e call $0e19 +0979: 3f d0 10 call $10d0 +097c: 3f 4f 0f call $0f4f +097f: 1d dec x +0980: 1d dec x +0981: 4b 47 lsr $47 +0983: d0 82 bne $0907 +0985: 6f ret + +0986: 8d 00 mov y,#$00 +0988: f7 40 mov a,($40)+y +098a: 3a 40 incw $40 +098c: 2d push a +098d: f7 40 mov a,($40)+y +098f: 3a 40 incw $40 +0991: fd mov y,a +0992: ae pop a +0993: 6f ret + +0994: cd 0e mov x,#$0e +0996: e8 ff mov a,#$ff +0998: d5 01 03 mov $0301+x,a +099b: d4 90 mov $90+x,a +099d: 3f 60 0c call $0c60 +09a0: d5 a0 03 mov $03a0+x,a +09a3: d5 a1 03 mov $03a1+x,a +09a6: d5 90 03 mov $0390+x,a +09a9: d5 91 03 mov $0391+x,a +09ac: d5 f0 02 mov $02f0+x,a +09af: d5 80 02 mov $0280+x,a +09b2: d4 d1 mov $d1+x,a +09b4: d4 e1 mov $e1+x,a +09b6: d4 80 mov $80+x,a +09b8: 1d dec x +09b9: 1d dec x +09ba: 10 da bpl $0996 +09bc: c4 5a mov $5a,a +09be: c4 69 mov $69,a +09c0: c4 62 mov $62,a +09c2: c4 64 mov $64,a +09c4: c4 54 mov $54,a +09c6: c4 50 mov $50,a +09c8: c4 42 mov $42,a +09ca: c4 1a mov $1a,a +09cc: c4 19 mov $19,a +09ce: c4 a3 mov $a3,a +09d0: c4 a4 mov $a4,a +09d2: c4 1b mov $1b,a +09d4: c4 ac mov $ac,a +09d6: bc inc a +09d7: 3f b8 0d call $0db8 +09da: 8f ff 1d mov $1d,#$ff +09dd: 8f c0 59 mov $59,#$c0 +09e0: 8f 20 53 mov $53,#$20 +09e3: e8 60 mov a,#$60 +09e5: 3f 64 05 call $0564 +09e8: 6f ret + +09e9: 3f 06 0a call $0a06 +09ec: 3f 94 09 call $0994 +09ef: 3f dc 12 call $12dc +09f2: 6f ret + +09f3: e8 02 mov a,#$02 ; play song in A +09f5: c4 04 mov $04,a +09f7: 5d mov x,a +09f8: f5 ff 3b mov a,$3bff+x +09fb: fd mov y,a +09fc: f5 fe 3b mov a,$3bfe+x +09ff: da 40 movw $40,ya +0a01: 8f 02 0c mov $0c,#$02 +0a04: 2f 08 bra $0a0e +0a06: e8 00 mov a,#$00 +0a08: c4 04 mov $04,a +0a0a: c4 45 mov $45,a +0a0c: c4 46 mov $46,a +0a0e: e4 18 mov a,$18 +0a10: 48 ff eor a,#$ff +0a12: 8d 5c mov y,#$5c +0a14: 3f 87 07 call $0787 +0a17: 6f ret + +0a18: 5f 94 09 jmp $0994 + +0a1b: e4 04 mov a,$04 +0a1d: f0 0d beq $0a2c +0a1f: e4 ac mov a,$ac +0a21: d0 09 bne $0a2c +0a23: c4 62 mov $62,a +0a25: c4 64 mov $64,a +0a27: c4 ad mov $ad,a +0a29: bc inc a +0a2a: c4 ac mov $ac,a +0a2c: 6f ret + +0a2d: 3f 00 05 call $0500 +0a30: f0 12 beq $0a44 +0a32: 68 f0 cmp a,#$f0 +0a34: f0 d0 beq $0a06 +0a36: 68 f1 cmp a,#$f1 +0a38: f0 0a beq $0a44 +0a3a: 68 f2 cmp a,#$f2 +0a3c: f0 dd beq $0a1b +0a3e: 68 ff cmp a,#$ff +0a40: f0 a7 beq $09e9 +0a42: 2f af bra $09f3 +0a44: e4 04 mov a,$04 +0a46: f0 e4 beq $0a2c +0a48: e4 0c mov a,$0c +0a4a: d0 03 bne $0a4f +0a4c: 5f bc 0a jmp $0abc + +0a4f: 6e 0c c6 dbnz $0c,$0a18 +0a52: 3f 86 09 call $0986 +0a55: d0 19 bne $0a70 +0a57: fd mov y,a +0a58: d0 05 bne $0a5f +0a5a: c4 04 mov $04,a +0a5c: 5f 06 0a jmp $0a06 + +0a5f: 8b 42 dec $42 +0a61: 10 02 bpl $0a65 +0a63: c4 42 mov $42,a +0a65: 3f 86 09 call $0986 +0a68: f8 42 mov x,$42 +0a6a: f0 e6 beq $0a52 +0a6c: da 40 movw $40,ya +0a6e: 2f e2 bra $0a52 +0a70: da 16 movw $16,ya +0a72: 8d 0e mov y,#$0e +0a74: e8 80 mov a,#$80 +0a76: c4 47 mov $47,a +0a78: e4 47 mov a,$47 +0a7a: 24 18 and a,$18 +0a7c: d0 0c bne $0a8a +0a7e: f7 16 mov a,($16)+y +0a80: d6 30 00 mov $0030+y,a +0a83: fc inc y +0a84: f7 16 mov a,($16)+y +0a86: d6 30 00 mov $0030+y,a +0a89: dc dec y +0a8a: dc dec y +0a8b: dc dec y +0a8c: 4b 47 lsr $47 +0a8e: d0 e8 bne $0a78 +0a90: cd 00 mov x,#$00 +0a92: 8f 01 47 mov $47,#$01 +0a95: f4 31 mov a,$31+x +0a97: f0 0b beq $0aa4 +0a99: e8 00 mov a,#$00 +0a9b: d4 71 mov $71+x,a +0a9d: d4 b0 mov $b0+x,a +0a9f: d4 b1 mov $b1+x,a +0aa1: bc inc a +0aa2: d4 70 mov $70+x,a +0aa4: 3d inc x +0aa5: 3d inc x +0aa6: 0b 47 asl $47 +0aa8: d0 eb bne $0a95 +0aaa: 2f 4c bra $0af8 +0aac: 01 tcall 0 +0aad: 00 nop +0aae: 02 00 set0 $00 +0ab0: 04 00 or a,$00 +0ab2: 08 00 or a,#$00 +0ab4: 10 00 bpl $0ab6 +0ab6: 20 clrp +0ab7: 00 nop +0ab8: 40 setp +0ab9: 00 nop +0aba: 80 setc +0abb: 00 nop +0abc: e4 04 mov a,$04 +0abe: d0 01 bne $0ac1 +0ac0: 6f ret + +0ac1: e4 1f mov a,$1f +0ac3: d0 39 bne $0afe +0ac5: 8f 00 a4 mov $a4,#$00 +0ac8: cd 00 mov x,#$00 +0aca: 8f 01 47 mov $47,#$01 +0acd: e4 18 mov a,$18 +0acf: 24 47 and a,$47 +0ad1: d0 1f bne $0af2 +0ad3: f4 90 mov a,$90+x +0ad5: 68 ff cmp a,#$ff +0ad7: f0 19 beq $0af2 +0ad9: 4d push x +0ada: 5d mov x,a +0adb: f5 ac 0a mov a,$0aac+x +0ade: 24 a3 and a,$a3 +0ae0: f0 03 beq $0ae5 +0ae2: 09 47 a4 or ($a4),($47) +0ae5: ce pop x +0ae6: 3f 65 06 call $0665 +0ae9: 3f e2 0f call $0fe2 +0aec: 3f df 10 call $10df +0aef: 3f b4 10 call $10b4 +0af2: 3d inc x +0af3: 3d inc x +0af4: 0b 47 asl $47 +0af6: d0 d5 bne $0acd +0af8: 8f 00 5f mov $5f,#$00 +0afb: 8f 00 5e mov $5e,#$00 +0afe: cd 00 mov x,#$00 +0b00: 8f 01 47 mov $47,#$01 +0b03: e4 18 mov a,$18 +0b05: 24 47 and a,$47 +0b07: d0 5f bne $0b68 +0b09: d8 44 mov $44,x +0b0b: f4 31 mov a,$31+x +0b0d: f0 59 beq $0b68 +0b0f: 9b 70 dec $70+x +0b11: d0 55 bne $0b68 +0b13: 3f d2 0b call $0bd2 +0b16: 68 ff cmp a,#$ff +0b18: d0 1a bne $0b34 +0b1a: f4 71 mov a,$71+x +0b1c: d0 03 bne $0b21 +0b1e: 5f 52 0a jmp $0a52 + +0b21: 3f 50 0d call $0d50 +0b24: 9b 71 dec $71+x +0b26: d0 eb bne $0b13 +0b28: f5 30 02 mov a,$0230+x +0b2b: d4 30 mov $30+x,a +0b2d: f5 31 02 mov a,$0231+x +0b30: d4 31 mov $31+x,a +0b32: 2f df bra $0b13 +0b34: 30 17 bmi $0b4d +0b36: d5 00 02 mov $0200+x,a +0b39: 3f d2 0b call $0bd2 +0b3c: 30 0f bmi $0b4d +0b3e: d5 01 02 mov $0201+x,a +0b41: 3f d2 0b call $0bd2 +0b44: 30 07 bmi $0b4d +0b46: 1c asl a +0b47: d5 10 02 mov $0210+x,a +0b4a: 3f d2 0b call $0bd2 +0b4d: 68 de cmp a,#$de +0b4f: 90 05 bcc $0b56 +0b51: 3f c0 0b call $0bc0 +0b54: 2f bd bra $0b13 +0b56: f5 01 02 mov a,$0201+x +0b59: f0 03 beq $0b5e +0b5b: 3f db 05 call $05db +0b5e: f5 00 02 mov a,$0200+x +0b61: d4 70 mov $70+x,a +0b63: f0 ae beq $0b13 +0b65: 3f 19 0e call $0e19 +0b68: 3d inc x +0b69: 3d inc x +0b6a: 0b 47 asl $47 +0b6c: d0 95 bne $0b03 +0b6e: e4 54 mov a,$54 +0b70: f0 0b beq $0b7d +0b72: ba 56 movw ya,$56 +0b74: 7a 52 addw ya,$52 +0b76: 6e 54 02 dbnz $54,$0b7b +0b79: ba 54 movw ya,$54 +0b7b: da 52 movw $52,ya +0b7d: e4 69 mov a,$69 +0b7f: f0 15 beq $0b96 +0b81: ba 65 movw ya,$65 +0b83: 7a 61 addw ya,$61 +0b85: da 61 movw $61,ya +0b87: ba 67 movw ya,$67 +0b89: 7a 63 addw ya,$63 +0b8b: 6e 69 06 dbnz $69,$0b94 +0b8e: ba 69 movw ya,$69 +0b90: da 61 movw $61,ya +0b92: eb 6b mov y,$6b +0b94: da 63 movw $63,ya +0b96: e4 5a mov a,$5a +0b98: f0 0e beq $0ba8 +0b9a: ba 5c movw ya,$5c +0b9c: 7a 58 addw ya,$58 +0b9e: 6e 5a 02 dbnz $5a,$0ba3 +0ba1: ba 5a movw ya,$5a +0ba3: da 58 movw $58,ya +0ba5: 8f ff 5e mov $5e,#$ff +0ba8: e4 1f mov a,$1f +0baa: d0 13 bne $0bbf +0bac: fa a4 4a mov ($4a),($a4) +0baf: e4 45 mov a,$45 +0bb1: 0e a8 00 tset1 $00a8 +0bb4: e4 46 mov a,$46 +0bb6: 0e a9 00 tset1 $00a9 +0bb9: c4 45 mov $45,a +0bbb: e8 00 mov a,#$00 +0bbd: c4 46 mov $46,a +0bbf: 6f ret + +; dispatch vcmd in A (de-ff) +0bc0: 1c asl a +0bc1: fd mov y,a +0bc2: f6 b1 0d mov a,$0db1+y +0bc5: 2d push a +0bc6: f6 b0 0d mov a,$0db0+y +0bc9: 2d push a +0bca: dd mov a,y +0bcb: 5c lsr a +0bcc: fd mov y,a +0bcd: f6 4e 0e mov a,$0e4e+y +0bd0: f0 08 beq $0bda +; read new argument to A and Y +0bd2: e7 30 mov a,($30+x) +; advance reading ptr +0bd4: bb 30 inc $30+x +0bd6: d0 02 bne $0bda +0bd8: bb 31 inc $31+x +0bda: fd mov y,a +0bdb: 6f ret + +0bdc: 1c asl a +0bdd: fd mov y,a +0bde: f6 11 0e mov a,$0e11+y +0be1: 2d push a +0be2: f6 10 0e mov a,$0e10+y +0be5: 2d push a +0be6: dd mov a,y +0be7: 5c lsr a +0be8: fd mov y,a +0be9: f6 ae 0e mov a,$0eae+y +0bec: f0 ec beq $0bda +0bee: 5f d2 0b jmp $0bd2 + +; vcmd de - set instrument +0bf1: d5 11 02 mov $0211+x,a +0bf4: 6f ret + +0bf5: 4d push x +0bf6: f4 90 mov a,$90+x +0bf8: 5d mov x,a +0bf9: f5 11 02 mov a,$0211+x +0bfc: ce pop x +0bfd: fd mov y,a +0bfe: 10 06 bpl $0c06 +0c00: 80 setc +0c01: a8 ca sbc a,#$ca +0c03: 60 clrc +0c04: 84 4f adc a,$4f +0c06: 8d 06 mov y,#$06 +0c08: cf mul ya +0c09: da 14 movw $14,ya +0c0b: 60 clrc +0c0c: 98 fe 14 adc $14,#$fe +0c0f: 98 3b 15 adc $15,#$3b +0c12: 8d 04 mov y,#$04 +0c14: cb 12 mov $12,y +0c16: f7 14 mov a,($14)+y +0c18: 10 11 bpl $0c2b +0c1a: 28 1f and a,#$1f +0c1c: 38 20 48 and $48,#$20 +0c1f: 0e 48 00 tset1 $0048 +0c22: e4 47 mov a,$47 +0c24: 0e 49 00 tset1 $0049 +0c27: e8 00 mov a,#$00 +0c29: 2f 07 bra $0c32 +0c2b: e4 47 mov a,$47 +0c2d: 4e 49 00 tclr1 $0049 +0c30: f7 14 mov a,($14)+y +0c32: 3f 6a 07 call $076a +0c35: fc inc y +0c36: ad 08 cmp y,#$08 +0c38: d0 f6 bne $0c30 +0c3a: f7 14 mov a,($14)+y +0c3c: d5 21 02 mov $0221+x,a +0c3f: fc inc y +0c40: f7 14 mov a,($14)+y +0c42: d5 20 02 mov $0220+x,a +0c45: 6f ret + +0c46: 8d 06 mov y,#$06 +0c48: cf mul ya +0c49: da 14 movw $14,ya +0c4b: 60 clrc +0c4c: 98 fc 14 adc $14,#$fc +0c4f: 98 19 15 adc $15,#$19 +0c52: 8d 04 mov y,#$04 +0c54: cb 12 mov $12,y +0c56: f7 14 mov a,($14)+y +0c58: 30 c0 bmi $0c1a +0c5a: 60 clrc +0c5b: 88 20 adc a,#$20 +0c5d: 5f 32 0c jmp $0c32 + +0c60: e8 0a mov a,#$0a +; vcmd df - pan +0c62: d5 51 03 mov $0351+x,a +0c65: 28 1f and a,#$1f +0c67: d5 31 03 mov $0331+x,a +0c6a: e8 00 mov a,#$00 +0c6c: d5 30 03 mov $0330+x,a +0c6f: 6f ret + +; vcmd e0 - pan fade +0c70: d4 b1 mov $b1+x,a +0c72: 2d push a +0c73: 3f d2 0b call $0bd2 +0c76: d5 50 03 mov $0350+x,a +0c79: 80 setc +0c7a: b5 31 03 sbc a,$0331+x +0c7d: ce pop x +0c7e: 3f 50 0e call $0e50 +0c81: d5 40 03 mov $0340+x,a +0c84: dd mov a,y +0c85: d5 41 03 mov $0341+x,a +0c88: 6f ret + +; vcmd e1 - vibrato on +0c89: d5 b0 02 mov $02b0+x,a +0c8c: 3f d2 0b call $0bd2 +0c8f: d5 a1 02 mov $02a1+x,a +0c92: 3f d2 0b call $0bd2 +; vcmd e2 - vibrato off +0c95: d4 d1 mov $d1+x,a +0c97: d5 c1 02 mov $02c1+x,a +0c9a: e8 00 mov a,#$00 +0c9c: d5 b1 02 mov $02b1+x,a +0c9f: 6f ret + +; vcmd e8 - vibrato fade +0ca0: d5 b1 02 mov $02b1+x,a +0ca3: 2d push a +0ca4: 8d 00 mov y,#$00 +0ca6: f4 d1 mov a,$d1+x +0ca8: ce pop x +0ca9: 9e div ya,x +0caa: f8 44 mov x,$44 +0cac: d5 c0 02 mov $02c0+x,a +0caf: 6f ret + +; vcmd ee (music) - master volume +0cb0: e8 00 mov a,#$00 +0cb2: da 58 movw $58,ya +0cb4: 6f ret + +; vcmd ef (music) - master volume fade +0cb5: c4 5a mov $5a,a +0cb7: 3f d2 0b call $0bd2 +0cba: c4 5b mov $5b,a +0cbc: 80 setc +0cbd: a4 59 sbc a,$59 +0cbf: f8 5a mov x,$5a +0cc1: 3f 50 0e call $0e50 +0cc4: da 5c movw $5c,ya +0cc6: 6f ret + +; vcmd f0 (music) - tempo +0cc7: e8 00 mov a,#$00 +0cc9: da 52 movw $52,ya +0ccb: 6f ret + +; vcmd f1 (music) - tempo fade +0ccc: c4 54 mov $54,a +0cce: 3f d2 0b call $0bd2 +0cd1: c4 55 mov $55,a +0cd3: 80 setc +0cd4: a4 53 sbc a,$53 +0cd6: f8 54 mov x,$54 +0cd8: 3f 50 0e call $0e50 +0cdb: da 56 movw $56,ya +0cdd: 6f ret + +; vcmd f2 - global transpose +0cde: c4 50 mov $50,a +0ce0: 6f ret + +; vcmd f3 - per-voice transpose +0ce1: d5 f0 02 mov $02f0+x,a +0ce4: 6f ret + +; vcmd e3 - tremolo on +0ce5: d5 e0 02 mov $02e0+x,a +0ce8: 3f d2 0b call $0bd2 +0ceb: d5 d1 02 mov $02d1+x,a +0cee: 3f d2 0b call $0bd2 +; vcmd e4 - tremolo off +0cf1: d4 e1 mov $e1+x,a +0cf3: 6f ret + +; vcmd eb - pitch envelope (release) +0cf4: e8 01 mov a,#$01 +0cf6: 2f 02 bra $0cfa +; vcmd ea - pitch envelope (attack) +0cf8: e8 00 mov a,#$00 +0cfa: d5 90 02 mov $0290+x,a +0cfd: dd mov a,y +0cfe: d5 81 02 mov $0281+x,a +0d01: 3f d2 0b call $0bd2 +0d04: d5 80 02 mov $0280+x,a +0d07: 3f d2 0b call $0bd2 +0d0a: d5 91 02 mov $0291+x,a +0d0d: 6f ret + +; vcmd ec - pitch envelope off +0d0e: d5 80 02 mov $0280+x,a +0d11: 6f ret + +; vcmd e5 - volume +0d12: d5 01 03 mov $0301+x,a +0d15: e8 00 mov a,#$00 +0d17: d5 00 03 mov $0300+x,a +0d1a: 6f ret + +; vcmd e6 - volume fade +0d1b: d4 b0 mov $b0+x,a +0d1d: 2d push a +0d1e: 3f d2 0b call $0bd2 +0d21: d5 20 03 mov $0320+x,a +0d24: 80 setc +0d25: b5 01 03 sbc a,$0301+x +0d28: ce pop x +0d29: 3f 50 0e call $0e50 +0d2c: d5 10 03 mov $0310+x,a +0d2f: dd mov a,y +0d30: d5 11 03 mov $0311+x,a +0d33: 6f ret + +0d34: d5 90 03 mov $0390+x,a +0d37: 6f ret + +; vcmd e7 - call subroutine +0d38: d5 40 02 mov $0240+x,a +0d3b: 3f d2 0b call $0bd2 +0d3e: d5 41 02 mov $0241+x,a +0d41: 3f d2 0b call $0bd2 +0d44: d4 71 mov $71+x,a +0d46: f4 30 mov a,$30+x +0d48: d5 30 02 mov $0230+x,a +0d4b: f4 31 mov a,$31+x +0d4d: d5 31 02 mov $0231+x,a +0d50: f5 40 02 mov a,$0240+x +0d53: d4 30 mov $30+x,a +0d55: f5 41 02 mov a,$0241+x +0d58: d4 31 mov $31+x,a +0d5a: 6f ret + +; vcmd f4 - echo vbits/volume +0d5b: c4 a3 mov $a3,a +0d5d: 3f d2 0b call $0bd2 +0d60: e8 00 mov a,#$00 +0d62: da 61 movw $61,ya +0d64: 3f d2 0b call $0bd2 +0d67: e8 00 mov a,#$00 +0d69: da 63 movw $63,ya +0d6b: b2 48 clr5 $48 +0d6d: 6f ret + +; vcmd f7 - echo volume fade +0d6e: c4 69 mov $69,a +0d70: 3f d2 0b call $0bd2 +0d73: c4 6a mov $6a,a +0d75: 80 setc +0d76: a4 62 sbc a,$62 +0d78: f8 69 mov x,$69 +0d7a: 3f 50 0e call $0e50 +0d7d: da 65 movw $65,ya +0d7f: 3f d2 0b call $0bd2 +0d82: c4 6b mov $6b,a +0d84: 80 setc +0d85: a4 64 sbc a,$64 +0d87: f8 69 mov x,$69 +0d89: 3f 50 0e call $0e50 +0d8c: da 67 movw $67,ya +0d8e: 6f ret + +; vcmd f5 - disable echo +0d8f: da 61 movw $61,ya +0d91: da 63 movw $63,ya +0d93: a2 48 set5 $48 +0d95: 6f ret + +; vcmd f6 - set echo params +0d96: 3f b8 0d call $0db8 +0d99: 3f d2 0b call $0bd2 +0d9c: c4 4e mov $4e,a +0d9e: 3f d2 0b call $0bd2 +0da1: 8d 08 mov y,#$08 +0da3: cf mul ya +0da4: 5d mov x,a +0da5: 8d 0f mov y,#$0f +0da7: f5 8e 12 mov a,$128e+x +0daa: 3f 87 07 call $0787 +0dad: 3d inc x +0dae: dd mov a,y +0daf: 60 clrc +0db0: 88 10 adc a,#$10 +0db2: fd mov y,a +0db3: 10 f2 bpl $0da7 +0db5: f8 44 mov x,$44 +0db7: 6f ret +; set echo delay to A +0db8: c4 4d mov $4d,a +0dba: 8d 7d mov y,#$7d +0dbc: cc f2 00 mov $00f2,y +0dbf: e5 f3 00 mov a,$00f3 +0dc2: 64 4d cmp a,$4d +0dc4: f0 2b beq $0df1 +0dc6: 28 0f and a,#$0f +0dc8: 48 ff eor a,#$ff +0dca: f3 4c 03 bbc7 $4c,$0dd0 +0dcd: 60 clrc +0dce: 84 4c adc a,$4c +0dd0: c4 4c mov $4c,a +0dd2: 8d 04 mov y,#$04 +0dd4: f6 ad 12 mov a,$12ad+y +0dd7: c5 f2 00 mov $00f2,a +0dda: e8 00 mov a,#$00 +0ddc: c5 f3 00 mov $00f3,a +0ddf: fe f3 dbnz y,$0dd4 +0de1: e4 48 mov a,$48 +0de3: 08 20 or a,#$20 +0de5: 8d 6c mov y,#$6c +0de7: 3f 87 07 call $0787 +0dea: e4 4d mov a,$4d +0dec: 8d 7d mov y,#$7d +0dee: 3f 87 07 call $0787 +0df1: 1c asl a +0df2: 1c asl a +0df3: 1c asl a +0df4: 48 ff eor a,#$ff +0df6: 80 setc +0df7: 88 ff adc a,#$ff +0df9: 8d 6d mov y,#$6d +0dfb: 5f 87 07 jmp $0787 + +; vcmd f8 - set perc patch base +0dfe: c4 4f mov $4f,a +0e00: 6f ret + +; vcmd f9 +0e01: c4 19 mov $19,a +0e03: 3f d2 0b call $0bd2 +0e06: c4 1a mov $1a,a +0e08: fa 1a 19 mov ($19),($1a) +0e0b: c4 1d mov $1d,a +0e0d: 6f ret + +; vcmd fb +0e0e: bc inc a +0e0f: d5 f0 03 mov $03f0+x,a +0e12: 6f ret + +; vcmd fc +0e13: bc inc a +; vcmd fd +0e14: c4 6f mov $6f,a +0e16: 5f 0e 0a jmp $0a0e + +0e19: f4 c0 mov a,$c0+x +0e1b: d0 32 bne $0e4f +0e1d: e7 30 mov a,($30+x) +0e1f: 68 e9 cmp a,#$e9 +0e21: d0 2c bne $0e4f +0e23: 3f d4 0b call $0bd4 +0e26: 3f d2 0b call $0bd2 +; vcmd e9 - pitch slide +0e29: d4 c1 mov $c1+x,a +0e2b: 3f d2 0b call $0bd2 +0e2e: d4 c0 mov $c0+x,a +0e30: 3f d2 0b call $0bd2 +0e33: 60 clrc +0e34: 84 50 adc a,$50 +0e36: 95 f0 02 adc a,$02f0+x +0e39: 28 7f and a,#$7f +0e3b: d5 80 03 mov $0380+x,a +0e3e: 80 setc +0e3f: a4 11 sbc a,$11 +0e41: fb c0 mov y,$c0+x +0e43: 6d push y +0e44: ce pop x +0e45: 3f 50 0e call $0e50 +0e48: d5 70 03 mov $0370+x,a +0e4b: dd mov a,y +0e4c: d5 71 03 mov $0371+x,a +0e4f: 6f ret + +0e50: ed notc +0e51: 6b 12 ror $12 +0e53: 10 03 bpl $0e58 +0e55: 48 ff eor a,#$ff +0e57: bc inc a +0e58: 8d 00 mov y,#$00 +0e5a: 9e div ya,x +0e5b: 2d push a +0e5c: e8 00 mov a,#$00 +0e5e: 9e div ya,x +0e5f: ee pop y +0e60: f8 44 mov x,$44 +0e62: f3 12 06 bbc7 $12,$0e6b +0e65: da 14 movw $14,ya +0e67: ba 0e movw ya,$0e +0e69: 9a 14 subw ya,$14 +0e6b: 6f ret + +; vcmd dispatch table (music) +0e6d: dw $0bf1 ; de - set instrument +0e6f: dw $0c62 ; df - pan +0e71: dw $0c70 ; e0 - pan fade +0e73: dw $0c89 ; e1 - vibrato on +0e75: dw $0c95 ; e2 - vibrato off +0e77: dw $0ce5 ; e3 - tremolo on +0e79: dw $0cf1 ; e4 - tremolo off +0e7b: dw $0d12 ; e5 - volume +0e7d: dw $0d1b ; e6 - volume fade +0e7f: dw $0d38 ; e7 - call subroutine +0e81: dw $0ca0 ; e8 - vibrato fade +0e83: dw $0e29 ; e9 - pitch slide +0e85: dw $0cf8 ; ea - pitch envelope (attack) +0e87: dw $0cf4 ; eb - pitch envelope (release) +0e89: dw $0d0e ; ec - pitch envelope off +0e8b: dw $1208 ; ed - tuning +0e8d: dw $0cb0 ; ee - master volume +0e8f: dw $0cb5 ; ef - master volume fade +0e91: dw $0cc7 ; f0 - tempo +0e93: dw $0ccc ; f1 - tempo fade +0e95: dw $0cde ; f2 - global transpose +0e97: dw $0ce1 ; f3 - per-voice transpose +0e99: dw $0d5b ; f4 - echo vbits/volume +0e9b: dw $0d8f ; f5 - disable echo +0e9d: dw $0d96 ; f6 - set echo params +0e9f: dw $0d6e ; f7 - echo volume fade +0ea1: dw $0dfe ; f8 - set perc patch base +0ea3: dw $0e01 ; f9 +0ea5: dw $1205 ; fa +0ea7: dw $0e0e ; fb +0ea9: dw $0e13 ; fc +0eaa: dw $0e14 ; fd + +; vcmd lengths (music) +0eac: db $01,$01,$02,$03,$00,$03,$00,$01 ; de-e5 +0eb4: db $02,$03,$01,$03,$03,$03,$00,$03 ; e6-ed +0ebc: db $01,$02,$01,$02,$01,$01,$03,$00 ; ee-f5 +0ec4: db $03,$03,$01,$02,$01,$00,$00,$00 ; f6-fd + +; vcmd dispatch table (sfx) +0ecc: dw $0bf1 ; de - set instrument +0ece: dw $0c62 ; df - pan +0ed0: dw $0c70 ; e0 - pan fade +0ed2: dw $0c89 ; e1 - vibrato on +0ed4: dw $0c95 ; e2 - vibrato off +0ed6: dw $0ce5 ; e3 - tremolo on +0ed8: dw $0cf1 ; e4 - tremolo off +0eda: dw $0d12 ; e5 - volume +0edc: dw $0d1b ; e6 - volume fade +0ede: dw $0d38 ; e7 - call subroutine +0ee0: dw $0ca0 ; e8 - vibrato fade +0ee2: dw $0e29 ; e9 - pitch slide +0ee4: dw $0cf8 ; ea - pitch envelope (attack) +0ee6: dw $0cf4 ; eb - pitch envelope (release) +0ee8: dw $0d0e ; ec - pitch envelope off +0eea: dw $1241 ; ed - tuning +0eec: dw $0f2c ; ee +0eee: dw $0f32 ; ef +0ef0: dw $0f38 ; f0 +0ef2: dw $0f49 ; f1 +0ef4: dw $0cde ; f2 - global transpose +0ef6: dw $0ce1 ; f3 - per-voice transpose +0ef8: dw $0d5b ; f4 - echo vbits/volume +0efa: dw $0d8f ; f5 - disable echo +0efc: dw $0d96 ; f6 - set echo params +0efe: dw $0d6e ; f7 - echo volume fade +0f00: dw $0dfe ; f8 - set perc patch base +0f02: dw $0e01 ; f9 +0f04: dw $1205 ; fa +0f06: dw $0e0e ; fb +0f08: dw $0e13 ; fc +0f0a: dw $0e14 ; fd + +; vcmd lengths (sfx) +0f0c: db $01,$01,$02,$03,$00,$03,$00,$01 ; de-e5 +0f14: db $02,$03,$01,$03,$03,$03,$00,$03 ; e6-ed +0f1c: db $00,$00,$01,$00,$01,$01,$03,$00 ; ee-f5 +0f24: db $03,$03,$01,$02,$00,$00,$00,$00 ; f6-fd + +; vcmd ee (sfx) +0f2c: e4 47 mov a,$47 +0f2e: 0e 4b 00 tset1 $004b +0f31: 6f ret + +; vcmd ef (sfx) +0f32: e4 47 mov a,$47 +0f34: 4e 4b 00 tclr1 $004b +0f37: 6f ret + +; vcmd f0 (sfx) +0f38: 2d push a +0f39: e4 48 mov a,$48 +0f3b: 28 c0 and a,#$c0 +0f3d: c4 48 mov $48,a +0f3f: ae pop a +0f40: 0e 48 00 tset1 $0048 +0f43: e4 47 mov a,$47 +0f45: 0e 49 00 tset1 $0049 +0f48: 6f ret + +; vcmd f1 (sfx) +0f49: e4 47 mov a,$47 +0f4b: 4e 49 00 tclr1 $0049 +0f4e: 6f ret + +0f4f: f4 b0 mov a,$b0+x +0f51: f0 09 beq $0f5c +0f53: e8 00 mov a,#$00 +0f55: 8d 03 mov y,#$03 +0f57: 9b b0 dec $b0+x +0f59: 3f 93 10 call $1093 +0f5c: fb e1 mov y,$e1+x +0f5e: f0 20 beq $0f80 +0f60: f5 e0 02 mov a,$02e0+x +0f63: de e0 18 cbne $e0+x,$0f7e +0f66: f5 d0 02 mov a,$02d0+x +0f69: 10 07 bpl $0f72 +0f6b: fc inc y +0f6c: d0 04 bne $0f72 +0f6e: e8 80 mov a,#$80 +0f70: 2f 04 bra $0f76 +0f72: 60 clrc +0f73: 95 d1 02 adc a,$02d1+x +0f76: d5 d0 02 mov $02d0+x,a +0f79: 3f c7 0f call $0fc7 +0f7c: 2f 07 bra $0f85 +0f7e: bb e0 inc $e0+x +0f80: e8 ff mov a,#$ff +0f82: 3f d2 0f call $0fd2 +0f85: f4 b1 mov a,$b1+x +0f87: f0 09 beq $0f92 +0f89: e8 30 mov a,#$30 +0f8b: 8d 03 mov y,#$03 +0f8d: 9b b1 dec $b1+x +0f8f: 3f 90 10 call $1090 +0f92: f5 31 03 mov a,$0331+x +0f95: c4 11 mov $11,a +0f97: f5 30 03 mov a,$0330+x +0f9a: c4 10 mov $10,a +0f9c: 8f 00 12 mov $12,#$00 +0f9f: 3f 69 10 call $1069 +0fa2: eb 12 mov y,$12 +0fa4: 3f 6a 07 call $076a +0fa7: 8d 14 mov y,#$14 +0fa9: e8 00 mov a,#$00 +0fab: 9a 10 subw ya,$10 +0fad: da 10 movw $10,ya +0faf: ab 12 inc $12 +0fb1: 3f 69 10 call $1069 +0fb4: eb 12 mov y,$12 +0fb6: 3f 6a 07 call $076a +0fb9: 6f ret + +0fba: e2 13 set7 $13 +0fbc: eb 51 mov y,$51 +0fbe: f5 d1 02 mov a,$02d1+x +0fc1: cf mul ya +0fc2: dd mov a,y +0fc3: 60 clrc +0fc4: 95 d0 02 adc a,$02d0+x +0fc7: 1c asl a +0fc8: 90 02 bcc $0fcc +0fca: 48 ff eor a,#$ff +0fcc: fb e1 mov y,$e1+x +0fce: cf mul ya +0fcf: dd mov a,y +0fd0: 48 ff eor a,#$ff +0fd2: fd mov y,a +0fd3: f5 10 02 mov a,$0210+x +0fd6: cf mul ya +0fd7: f5 01 03 mov a,$0301+x +0fda: cf mul ya +0fdb: dd mov a,y +0fdc: cf mul ya +0fdd: dd mov a,y +0fde: d5 21 03 mov $0321+x,a +0fe1: 6f ret + +0fe2: f4 91 mov a,$91+x +0fe4: c4 a0 mov $a0,a +0fe6: d8 a1 mov $a1,x +0fe8: f4 90 mov a,$90+x +0fea: 5d mov x,a +0feb: f4 b0 mov a,$b0+x +0fed: f0 09 beq $0ff8 +0fef: e8 00 mov a,#$00 +0ff1: 8d 03 mov y,#$03 +0ff3: 9b b0 dec $b0+x +0ff5: 3f 90 10 call $1090 +0ff8: fb e1 mov y,$e1+x +0ffa: f0 23 beq $101f +0ffc: f5 e0 02 mov a,$02e0+x +0fff: de e0 1b cbne $e0+x,$101d +1002: 09 47 5e or ($5e),($47) +1005: f5 d0 02 mov a,$02d0+x +1008: 10 07 bpl $1011 +100a: fc inc y +100b: d0 04 bne $1011 +100d: e8 80 mov a,#$80 +100f: 2f 04 bra $1015 +1011: 60 clrc +1012: 95 d1 02 adc a,$02d1+x +1015: d5 d0 02 mov $02d0+x,a +1018: 3f e9 11 call $11e9 +101b: 2f 07 bra $1024 +101d: bb e0 inc $e0+x +101f: e8 ff mov a,#$ff +1021: 3f f4 11 call $11f4 +1024: f4 b1 mov a,$b1+x +1026: f0 09 beq $1031 +1028: e8 30 mov a,#$30 +102a: 8d 03 mov y,#$03 +102c: 9b b1 dec $b1+x +102e: 3f 90 10 call $1090 +1031: e4 47 mov a,$47 +1033: 24 5e and a,$5e +1035: f0 2f beq $1066 +1037: f5 31 03 mov a,$0331+x +103a: c4 11 mov $11,a +103c: f5 30 03 mov a,$0330+x +103f: c4 10 mov $10,a +1041: 8f 00 12 mov $12,#$00 +1044: 3f 69 10 call $1069 +1047: eb 12 mov y,$12 +1049: 4d push x +104a: f8 a1 mov x,$a1 +104c: 3f 6a 07 call $076a +104f: ce pop x +1050: 8d 14 mov y,#$14 +1052: e8 00 mov a,#$00 +1054: 9a 10 subw ya,$10 +1056: da 10 movw $10,ya +1058: ab 12 inc $12 +105a: 3f 69 10 call $1069 +105d: eb 12 mov y,$12 +105f: 4d push x +1060: f8 a1 mov x,$a1 +1062: 3f 6a 07 call $076a +1065: ce pop x +1066: f8 a1 mov x,$a1 +1068: 6f ret + +1069: eb 11 mov y,$11 +106b: f6 7a 12 mov a,$127a+y +106e: 80 setc +106f: b6 79 12 sbc a,$1279+y +1072: eb 10 mov y,$10 +1074: cf mul ya +1075: dd mov a,y +1076: eb 11 mov y,$11 +1078: 60 clrc +1079: 96 79 12 adc a,$1279+y +107c: fd mov y,a +107d: f5 21 03 mov a,$0321+x +1080: cf mul ya +1081: f5 51 03 mov a,$0351+x +1084: 1c asl a +1085: 13 12 01 bbc0 $12,$1089 +1088: 1c asl a +1089: dd mov a,y +108a: 90 03 bcc $108f +108c: 48 ff eor a,#$ff +108e: bc inc a +108f: 6f ret + +1090: 09 47 5e or ($5e),($47) +1093: da 14 movw $14,ya +1095: da 16 movw $16,ya +1097: 4d push x +1098: ee pop y +1099: 60 clrc +109a: d0 0a bne $10a6 +109c: 98 1f 16 adc $16,#$1f +109f: e8 00 mov a,#$00 +10a1: d7 14 mov ($14)+y,a +10a3: fc inc y +10a4: 2f 09 bra $10af +10a6: 98 10 16 adc $16,#$10 +10a9: 3f ad 10 call $10ad +10ac: fc inc y +10ad: f7 14 mov a,($14)+y +10af: 97 16 adc a,($16)+y +10b1: d7 14 mov ($14)+y,a +10b3: 6f ret + +10b4: f4 80 mov a,$80+x +10b6: f0 17 beq $10cf +10b8: 9b 80 dec $80+x +10ba: d0 13 bne $10cf +10bc: e4 47 mov a,$47 +10be: 24 18 and a,$18 +10c0: d0 0d bne $10cf +10c2: 8d 05 mov y,#$05 +10c4: e8 00 mov a,#$00 +10c6: 3f 6a 07 call $076a +10c9: e5 47 00 mov a,$0047 +10cc: 0e 1d 00 tset1 $001d +10cf: 6f ret + +10d0: f4 80 mov a,$80+x +10d2: f0 0b beq $10df +10d4: 9b 80 dec $80+x +10d6: d0 07 bne $10df +10d8: 8d 05 mov y,#$05 +10da: e8 00 mov a,#$00 +10dc: 3f 6a 07 call $076a +10df: f2 13 clr7 $13 +10e1: f4 c0 mov a,$c0+x +10e3: f0 13 beq $10f8 +10e5: f4 c1 mov a,$c1+x +10e7: f0 04 beq $10ed +10e9: 9b c1 dec $c1+x +10eb: 2f 0b bra $10f8 +10ed: e2 13 set7 $13 +10ef: e8 60 mov a,#$60 +10f1: 8d 03 mov y,#$03 +10f3: 9b c0 dec $c0+x +10f5: 3f 93 10 call $1093 +10f8: f5 61 03 mov a,$0361+x +10fb: c4 11 mov $11,a +10fd: f5 60 03 mov a,$0360+x +1100: c4 10 mov $10,a +1102: f4 d1 mov a,$d1+x +1104: f0 4c beq $1152 +1106: f5 b0 02 mov a,$02b0+x +1109: de d0 44 cbne $d0+x,$1150 +110c: f5 00 01 mov a,$0100+x +110f: 75 b1 02 cmp a,$02b1+x +1112: d0 05 bne $1119 +1114: f5 c1 02 mov a,$02c1+x +1117: 2f 0d bra $1126 +1119: 40 setp +111a: bb 00 inc $00+x +111c: 20 clrp +111d: fd mov y,a +111e: f0 02 beq $1122 +1120: f4 d1 mov a,$d1+x +1122: 60 clrc +1123: 95 c0 02 adc a,$02c0+x +1126: d4 d1 mov $d1+x,a +1128: f5 a0 02 mov a,$02a0+x +112b: 60 clrc +112c: 95 a1 02 adc a,$02a1+x +112f: d5 a0 02 mov $02a0+x,a +1132: c4 12 mov $12,a +1134: 1c asl a +1135: 1c asl a +1136: 90 02 bcc $113a +1138: 48 ff eor a,#$ff +113a: fd mov y,a +113b: f4 d1 mov a,$d1+x +113d: 68 f1 cmp a,#$f1 +113f: 90 05 bcc $1146 +1141: 28 0f and a,#$0f +1143: cf mul ya +1144: 2f 04 bra $114a +1146: cf mul ya +1147: dd mov a,y +1148: 8d 00 mov y,#$00 +114a: 3f d4 11 call $11d4 +114d: 5f d7 06 jmp $06d7 + +1150: bb d0 inc $d0+x +1152: e3 13 f8 bbs7 $13,$114d +1155: e4 47 mov a,$47 +1157: 24 ab and a,$ab +1159: d0 f2 bne $114d +115b: 6f ret + +115c: f2 13 clr7 $13 +115e: f4 e1 mov a,$e1+x +1160: f0 09 beq $116b +1162: f5 e0 02 mov a,$02e0+x +1165: de e0 03 cbne $e0+x,$116b +1168: 3f dc 11 call $11dc +116b: f5 31 03 mov a,$0331+x +116e: fd mov y,a +116f: f5 30 03 mov a,$0330+x +1172: da 10 movw $10,ya +1174: f4 b1 mov a,$b1+x +1176: f0 0a beq $1182 +1178: f5 41 03 mov a,$0341+x +117b: fd mov y,a +117c: f5 40 03 mov a,$0340+x +117f: 3f be 11 call $11be +1182: f3 13 03 bbc7 $13,$1188 +1185: 3f 41 10 call $1041 +1188: f2 13 clr7 $13 +118a: f5 61 03 mov a,$0361+x +118d: c4 11 mov $11,a +118f: f5 60 03 mov a,$0360+x +1192: c4 10 mov $10,a +1194: f4 c0 mov a,$c0+x +1196: f0 0e beq $11a6 +1198: f4 c1 mov a,$c1+x +119a: d0 0a bne $11a6 +119c: f5 71 03 mov a,$0371+x +119f: fd mov y,a +11a0: f5 70 03 mov a,$0370+x +11a3: 3f be 11 call $11be +11a6: f4 d1 mov a,$d1+x +11a8: f0 a8 beq $1152 +11aa: f5 b0 02 mov a,$02b0+x +11ad: de d0 a2 cbne $d0+x,$1152 +11b0: eb 51 mov y,$51 +11b2: f5 a1 02 mov a,$02a1+x +11b5: cf mul ya +11b6: dd mov a,y +11b7: 60 clrc +11b8: 95 a0 02 adc a,$02a0+x +11bb: 5f 32 11 jmp $1132 + +11be: e2 13 set7 $13 +11c0: cb 12 mov $12,y +11c2: 3f 62 0e call $0e62 +11c5: 6d push y +11c6: eb 51 mov y,$51 +11c8: cf mul ya +11c9: cb 14 mov $14,y +11cb: 8f 00 15 mov $15,#$00 +11ce: eb 51 mov y,$51 +11d0: ae pop a +11d1: cf mul ya +11d2: 7a 14 addw ya,$14 +11d4: 3f 62 0e call $0e62 +11d7: 7a 10 addw ya,$10 +11d9: da 10 movw $10,ya +11db: 6f ret + +11dc: e2 13 set7 $13 +11de: eb 51 mov y,$51 +11e0: f5 d1 02 mov a,$02d1+x +11e3: cf mul ya +11e4: dd mov a,y +11e5: 60 clrc +11e6: 95 d0 02 adc a,$02d0+x +11e9: 1c asl a +11ea: 90 02 bcc $11ee +11ec: 48 ff eor a,#$ff +11ee: fb e1 mov y,$e1+x +11f0: cf mul ya +11f1: dd mov a,y +11f2: 48 ff eor a,#$ff +11f4: eb 59 mov y,$59 +11f6: cf mul ya +11f7: e4 a0 mov a,$a0 +11f9: cf mul ya +11fa: f5 01 03 mov a,$0301+x +11fd: cf mul ya +11fe: dd mov a,y +11ff: cf mul ya +1200: dd mov a,y +1201: d5 21 03 mov $0321+x,a +1204: 6f ret + +; vcmd fa +1205: c4 18 mov $18,a +1207: 6f ret + +; vcmd ed - tuning +1208: 0d push psw +1209: 2d push a +120a: f5 a0 03 mov a,$03a0+x +120d: 0e 60 00 tset1 $0060 +1210: 3f d2 0b call $0bd2 +1213: d5 91 03 mov $0391+x,a +1216: 3f d2 0b call $0bd2 +1219: d5 90 03 mov $0390+x,a +121c: 10 0d bpl $122b +121e: f5 91 03 mov a,$0391+x +1221: 9c dec a +1222: d5 91 03 mov $0391+x,a +1225: f5 90 03 mov a,$0390+x +1228: 60 clrc +1229: 88 64 adc a,#$64 +122b: c4 11 mov $11,a +122d: 4b 11 lsr $11 +122f: 1c asl a +1230: 84 11 adc a,$11 +1232: d5 90 03 mov $0390+x,a +1235: ae pop a +1236: 8e pop psw +1237: d0 01 bne $123a +1239: 6f ret + +123a: d4 70 mov $70+x,a +123c: ae pop a +123d: ae pop a +123e: 5f 68 0b jmp $0b68 + +1241: 0d push psw +1242: 2d push a +1243: e4 47 mov a,$47 +1245: 0e ab 00 tset1 $00ab +1248: 3f d2 0b call $0bd2 +124b: d5 91 03 mov $0391+x,a +124e: 3f d2 0b call $0bd2 +1251: d5 90 03 mov $0390+x,a +1254: 10 0d bpl $1263 +1256: f5 91 03 mov a,$0391+x +1259: 9c dec a +125a: d5 91 03 mov $0391+x,a +125d: f5 90 03 mov a,$0390+x +1260: 60 clrc +1261: 88 64 adc a,#$64 +1263: c4 11 mov $11,a +1265: 4b 11 lsr $11 +1267: 1c asl a +1268: 84 11 adc a,$11 +126a: d5 90 03 mov $0390+x,a +126d: ae pop a +126e: 8e pop psw +126f: d0 01 bne $1272 +1271: 6f ret + +1272: d4 70 mov $70+x,a +1274: ae pop a +1275: ae pop a +1276: 5f 7f 09 jmp $097f + +; pan table +1279: db $00,$01,$03,$07,$0d,$15,$1e,$29 +1281: db $34,$42,$51,$5e,$67,$6e,$73,$77 +1289: db $7a,$7c,$7d,$7e,$7f + +; echo FIR presets +128e: db $7f,$00,$00,$00,$00,$00,$00,$00 +1296: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c +129e: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 +12a6: db $34,$33,$00,$d9,$e5,$01,$fc,$eb + +; EVOL(L),EVOL(R),EFB,EON,FLG,KOL,KOF,NON,PMON,KOF +; dsp shadow addrs for dsp regs +12ae: db $2c,$3c,$0d,$4d,$6c,$4c,$5c,$3d,$2d,$5c +12b8: db $ae,$af,$4e,$4a,$48,$a8,$0e,$49,$4b,$a9 + +; pitch table +12c2: dw $085f +12c4: dw $08de +12c6: dw $0965 +12c8: dw $09f4 +12ca: dw $0a8c +12cc: dw $0b2c +12ce: dw $0bd6 +12d0: dw $0c8b +12d2: dw $0d4a +12d4: dw $0e14 +12d6: dw $0eea +12d8: dw $0fcd +12da: dw $10be + +12dc: e8 aa mov a,#$aa +12de: c5 f4 00 mov $00f4,a +12e1: e8 bb mov a,#$bb +12e3: c5 f5 00 mov $00f5,a +12e6: e5 f4 00 mov a,$00f4 +12e9: 68 cc cmp a,#$cc +12eb: d0 f9 bne $12e6 +12ed: 2f 20 bra $130f +12ef: ec f4 00 mov y,$00f4 +12f2: d0 fb bne $12ef +12f4: 5e f4 00 cmp y,$00f4 +12f7: d0 0f bne $1308 +12f9: e5 f5 00 mov a,$00f5 +12fc: cc f4 00 mov $00f4,y +12ff: d7 14 mov ($14)+y,a +1301: fc inc y +1302: d0 f0 bne $12f4 +1304: ab 15 inc $15 +1306: 2f ec bra $12f4 +1308: 10 ea bpl $12f4 +130a: 5e f4 00 cmp y,$00f4 +130d: 10 e5 bpl $12f4 +130f: e5 f6 00 mov a,$00f6 +1312: ec f7 00 mov y,$00f7 +1315: da 14 movw $14,ya +1317: ec f4 00 mov y,$00f4 +131a: e5 f5 00 mov a,$00f5 +131d: cc f4 00 mov $00f4,y +1320: d0 cd bne $12ef +1322: cd 31 mov x,#$31 +1324: c9 f1 00 mov $00f1,x +1327: 6f ret + diff --git a/snes/NSPC/MSQ/Hatayama Hatch no Pro Yakyuu News! Jitsumei Han ($07a0).bin b/snes/NSPC/MSQ/Hatayama Hatch no Pro Yakyuu News! Jitsumei Han ($07a0).bin new file mode 100644 index 00000000..c88e6196 Binary files /dev/null and b/snes/NSPC/MSQ/Hatayama Hatch no Pro Yakyuu News! Jitsumei Han ($07a0).bin differ diff --git a/snes/NSPC/MSQ/Hatayama Hatch no Pro Yakyuu News! Jitsumei Han.s b/snes/NSPC/MSQ/Hatayama Hatch no Pro Yakyuu News! Jitsumei Han.s new file mode 100644 index 00000000..ecb26177 --- /dev/null +++ b/snes/NSPC/MSQ/Hatayama Hatch no Pro Yakyuu News! Jitsumei Han.s @@ -0,0 +1,1907 @@ +; version string +07a0: db "MSQ-v1.0" + +07a8: db $09,$05,$09,$02,$09,$04,$01,$05 +07b0: db $00,$09,$00,$00,$00,$00,$00,$00 +07b8: db $00,$00,$00,$00,$00,$00,$00,$00 +07c0: db $00,$00,$00,$00,$00,$00,$00,$00 +07c8: db $05,$09,$09,$02,$09,$09,$09,$09 +07d0: db $00,$00,$00,$00,$00,$00,$00,$00 +07d8: db $00,$00,$00,$00,$00,$00,$00,$00 +07e0: db $00,$00,$00,$00,$00,$00,$00,$00 + +; note dur%'s +07e8: db $32,$65,$7f,$98,$b2,$cb,$e5,$ff +; per-note velocity values +07f0: db $19,$32,$4c,$65,$72,$7f,$8c,$98 +07f8: db $a5,$b2,$bf,$cb,$d8,$e5,$f2,$ff + +0800: 20 clrp +0801: cd ff mov x,#$ff +0803: bd mov sp,x +0804: 3f 50 0a call $0a50 +0807: 3f 12 0a call $0a12 +080a: e8 80 mov a,#$80 +080c: 3f 9f 0a call $0a9f +080f: e8 80 mov a,#$80 +0811: 3f 6a 0b call $0b6a +0814: 8d 0a mov y,#$0a +0816: ad 05 cmp y,#$05 +0818: b0 08 bcs $0822 +081a: 69 2c 2a cmp ($2a),($2c) +081d: d0 11 bne $0830 +081f: e3 2a 0e bbs7 $2a,$0830 +0822: f6 8b 14 mov a,$148b+y +0825: c5 f2 00 mov $00f2,a +0828: f6 95 14 mov a,$1495+y +082b: 5d mov x,a +082c: e6 mov a,(x) +082d: c5 f3 00 mov $00f3,a +0830: fe e4 dbnz y,$0816 +0832: cb 23 mov $23,y +0834: cb 24 mov $24,y +0836: e5 fd 00 mov a,$00fd +0839: f0 fb beq $0836 +083b: 5d mov x,a +083c: 8d 20 mov y,#$20 +083e: cf mul ya +083f: 60 clrc +0840: 84 3f adc a,$3f +0842: c4 3f mov $3f,a +0844: 90 07 bcc $084d +0846: 69 2c 2a cmp ($2a),($2c) +0849: f0 02 beq $084d +084b: ab 2a inc $2a +084d: 7d mov a,x +084e: 8d 00 mov y,#$00 +0850: 7a 3a addw ya,$3a +0852: da 3a movw $3a,ya +0854: 5a 30 cmpw ya,$30 +0856: 90 08 bcc $0860 +0858: 3f 3c 13 call $133c +085b: e8 00 mov a,#$00 +085d: 3f ec 0a call $0aec +0860: ab 3c inc $3c +0862: e4 3c mov a,$3c +0864: 28 07 and a,#$07 +0866: d0 05 bne $086d +0868: e8 01 mov a,#$01 +086a: 3f ec 0a call $0aec +086d: e8 00 mov a,#$00 +086f: 3f 4b 09 call $094b +0872: e8 01 mov a,#$01 +0874: 3f 4b 09 call $094b +0877: 3f ae 11 call $11ae +087a: e4 59 mov a,$59 +087c: cd 00 mov x,#$00 +087e: 3f 40 09 call $0940 +0881: 68 00 cmp a,#$00 +0883: f0 1f beq $08a4 +0885: c4 40 mov $40,a +0887: 2d push a +0888: e8 63 mov a,#$63 +088a: c4 f4 mov $f4,a +088c: ae pop a +088d: 68 fe cmp a,#$fe +088f: f0 09 beq $089a +0891: 68 ff cmp a,#$ff +0893: f0 05 beq $089a +0895: 3f 9f 0a call $0a9f +0898: 2f 21 bra $08bb +089a: 3f c2 08 call $08c2 +089d: e8 80 mov a,#$80 +089f: c4 f1 mov $f1,a +08a1: 5f c0 ff jmp $ffc0 + +08a4: e8 ef mov a,#$ef +08a6: cd 01 mov x,#$01 +08a8: 3f 40 09 call $0940 +08ab: 68 00 cmp a,#$00 +08ad: f0 0c beq $08bb +08af: 68 40 cmp a,#$40 +08b1: 90 05 bcc $08b8 +08b3: 3f 08 09 call $0908 +08b6: 2f 03 bra $08bb +08b8: 3f 6a 0b call $0b6a +08bb: e8 31 mov a,#$31 +08bd: c4 f1 mov $f1,a +08bf: 5f 14 08 jmp $0814 + +08c2: 3f e3 08 call $08e3 +08c5: cd 0a mov x,#$0a +08c7: e8 00 mov a,#$00 +08c9: 9c dec a +08ca: d0 fd bne $08c9 +08cc: 1d dec x +08cd: d0 fa bne $08c9 +08cf: e8 e0 mov a,#$e0 +08d1: 8d 6c mov y,#$6c +08d3: 3f 7d 0d call $0d7d +08d6: 6f ret + +08d7: e8 00 mov a,#$00 +08d9: 8d 0c mov y,#$0c +08db: 3f 7d 0d call $0d7d +08de: 8d 1c mov y,#$1c +08e0: 3f 7d 0d call $0d7d +08e3: e8 00 mov a,#$00 +08e5: 8d 2c mov y,#$2c +08e7: 3f 7d 0d call $0d7d +08ea: 8d 3c mov y,#$3c +08ec: 3f 7d 0d call $0d7d +08ef: e8 00 mov a,#$00 +08f1: 8d 4d mov y,#$4d +08f3: 3f 7d 0d call $0d7d +08f6: 8d 3d mov y,#$3d +08f8: 3f 7d 0d call $0d7d +08fb: 8d 2d mov y,#$2d +08fd: 3f 7a 0d call $0d7a +0900: e8 ff mov a,#$ff +0902: 8d 5c mov y,#$5c +0904: 3f 7d 0d call $0d7d +0907: 6f ret + +0908: 68 40 cmp a,#$40 +090a: f0 04 beq $0910 +090c: 68 41 cmp a,#$41 +090e: d0 06 bne $0916 +0910: 80 setc +0911: a8 40 sbc a,#$40 +0913: c4 4c mov $4c,a +0915: 6f ret + +0916: 68 42 cmp a,#$42 +0918: d0 09 bne $0923 +091a: 8f 00 00 mov $00,#$00 +091d: e4 19 mov a,$19 +091f: c4 4d mov $4d,a +0921: 2f 08 bra $092b +0923: 68 43 cmp a,#$43 +0925: d0 09 bne $0930 +0927: e4 4d mov a,$4d +0929: c4 00 mov $00,a +092b: e4 f6 mov a,$f6 +092d: 5f 7d 11 jmp $117d + +0930: 68 44 cmp a,#$44 +0932: d0 0b bne $093f +0934: e4 10 mov a,$10 +0936: c4 4e mov $4e,a +0938: e4 f6 mov a,$f6 +093a: e4 f7 mov a,$f7 +093c: 5f db 12 jmp $12db + +093f: 6f ret + +0940: d4 f4 mov $f4+x,a +0942: f4 f4 mov a,$f4+x +0944: 74 f4 cmp a,$f4+x +0946: d0 fa bne $0942 +0948: d4 48 mov $48+x,a +094a: 6f ret + +094b: c4 2d mov $2d,a +094d: 3f 8b 0d call $0d8b +0950: f4 e0 mov a,$e0+x +0952: c4 18 mov $18,a +0954: e3 18 10 bbs7 $18,$0967 +0957: a3 18 23 bbs5 $18,$097d +095a: f4 c0 mov a,$c0+x +095c: c4 17 mov $17,a +095e: 3f 25 10 call $1025 +0961: 3f a9 0f call $0fa9 +0964: 3f f4 11 call $11f4 +0967: e4 18 mov a,$18 +0969: 5c lsr a +096a: 90 08 bcc $0974 +096c: 2d push a +096d: 3f 76 0e call $0e76 +0970: 3f 69 0e call $0e69 +0973: ae pop a +0974: 5c lsr a +0975: 90 06 bcc $097d +0977: 3f b4 10 call $10b4 +097a: 3f ea 10 call $10ea +097d: e4 18 mov a,$18 +097f: 28 fc and a,#$fc +0981: d4 e0 mov $e0+x,a +0983: 0b 13 asl $13 +0985: 3d inc x +0986: 3e 11 cmp x,$11 +0988: d0 c6 bne $0950 +098a: 6f ret + +098b: f4 c0 mov a,$c0+x +098d: c4 17 mov $17,a +098f: f4 e0 mov a,$e0+x +0991: c4 18 mov $18,a +0993: 28 80 and a,#$80 +0995: f0 05 beq $099c +0997: 3f 51 0d call $0d51 +099a: 2f 75 bra $0a11 +099c: f5 00 02 mov a,$0200+x +099f: c4 2e mov $2e,a +09a1: f5 10 02 mov a,$0210+x +09a4: c4 2f mov $2f,a +09a6: 9b 80 dec $80+x +09a8: f0 10 beq $09ba +09aa: 3f 48 0e call $0e48 +09ad: f4 90 mov a,$90+x +09af: f0 52 beq $0a03 +09b1: 9b 90 dec $90+x +09b3: d0 4e bne $0a03 +09b5: 3f 51 0d call $0d51 +09b8: 2f 49 bra $0a03 +09ba: f5 30 02 mov a,$0230+x +09bd: fd mov y,a +09be: f6 e8 07 mov a,$07e8+y ; set dur% from high nybble +09c1: fd mov y,a +09c2: f5 20 02 mov a,$0220+x +09c5: d4 80 mov $80+x,a +09c7: 3f 94 10 call $1094 +09ca: bc inc a +09cb: d4 90 mov $90+x,a +09cd: 8d 00 mov y,#$00 +09cf: f7 2e mov a,($2e)+y +09d1: 3a 2e incw $2e +09d3: 68 00 cmp a,#$00 +09d5: 30 10 bmi $09e7 +09d7: d0 09 bne $09e2 +09d9: 3f 72 0c call $0c72 +09dc: 68 00 cmp a,#$00 +09de: d0 ed bne $09cd +09e0: 2f 2f bra $0a11 +09e2: 3f 1a 0c call $0c1a +09e5: 2f d3 bra $09ba +; vcmd branches 80-ff +09e7: 68 e0 cmp a,#$e0 +09e9: b0 09 bcs $09f4 +09eb: 68 c8 cmp a,#$c8 +09ed: f0 de beq $09cd +09ef: 3f a9 0d call $0da9 +09f2: 2f 05 bra $09f9 +09f4: 3f 31 0c call $0c31 +09f7: 2f d4 bra $09cd +09f9: e4 2e mov a,$2e +09fb: d5 00 02 mov $0200+x,a +09fe: e4 2f mov a,$2f +0a00: d5 10 02 mov $0210+x,a +0a03: e4 18 mov a,$18 +0a05: d4 e0 mov $e0+x,a +0a07: e4 17 mov a,$17 +0a09: d4 c0 mov $c0+x,a +0a0b: e4 14 mov a,$14 +0a0d: 04 13 or a,$13 +0a0f: c4 14 mov $14,a +0a11: 6f ret + +0a12: e8 00 mov a,#$00 +0a14: 5d mov x,a +0a15: af mov (x)+,a +0a16: c8 f0 cmp x,#$f0 +0a18: d0 fb bne $0a15 +0a1a: e8 60 mov a,#$60 +0a1c: c4 00 mov $00,a +0a1e: e8 05 mov a,#$05 +0a20: c4 01 mov $01,a +0a22: e8 00 mov a,#$00 +0a24: c4 04 mov $04,a +0a26: e8 02 mov a,#$02 +0a28: c4 05 mov $05,a +0a2a: cd 00 mov x,#$00 +0a2c: 7d mov a,x +0a2d: c7 04 mov ($04+x),a +0a2f: 3a 04 incw $04 +0a31: ba 04 movw ya,$04 +0a33: 5a 00 cmpw ya,$00 +0a35: d0 f5 bne $0a2c +0a37: e8 a0 mov a,#$a0 +0a39: c4 0a mov $0a,a +0a3b: e8 14 mov a,#$14 +0a3d: c4 0b mov $0b,a +0a3f: e8 2c mov a,#$2c +0a41: c4 0c mov $0c,a +0a43: e8 14 mov a,#$14 +0a45: c4 0d mov $0d,a +0a47: e8 00 mov a,#$00 +0a49: c4 0e mov $0e,a +0a4b: e8 20 mov a,#$20 +0a4d: c4 0f mov $0f,a +0a4f: 6f ret + +0a50: e8 30 mov a,#$30 +0a52: c5 f1 00 mov $00f1,a +0a55: e8 32 mov a,#$32 +0a57: 8d 5d mov y,#$5d +0a59: 3f 7a 0d call $0d7a +0a5c: 3f d7 08 call $08d7 +0a5f: e8 01 mov a,#$01 +0a61: 3f a5 13 call $13a5 +0a64: 3f 51 13 call $1351 +0a67: e8 10 mov a,#$10 +0a69: c5 fa 00 mov $00fa,a +0a6c: e8 31 mov a,#$31 +0a6e: c5 f1 00 mov $00f1,a +0a71: 6f ret + +0a72: e8 00 mov a,#$00 +0a74: c4 15 mov $15,a +0a76: c4 1d mov $1d,a +0a78: c4 3e mov $3e,a +0a7a: c4 21 mov $21,a +0a7c: c4 22 mov $22,a +0a7e: c4 25 mov $25,a +0a80: c4 29 mov $29,a +0a82: c4 18 mov $18,a +0a84: c4 2a mov $2a,a +0a86: c4 2b mov $2b,a +0a88: e8 ff mov a,#$ff +0a8a: c4 19 mov $19,a +0a8c: e8 64 mov a,#$64 +0a8e: c4 20 mov $20,a +0a90: e8 64 mov a,#$64 +0a92: 8d 0c mov y,#$0c +0a94: 3f 7a 0d call $0d7a +0a97: 8d 1c mov y,#$1c +0a99: 3f 7a 0d call $0d7a +0a9c: 5f 51 13 jmp $1351 + +; load song +0a9f: 8f 00 18 mov $18,#$00 +0aa2: 68 80 cmp a,#$80 +0aa4: 90 0a bcc $0ab0 +0aa6: e8 ca mov a,#$ca +0aa8: c4 04 mov $04,a +0aaa: e8 16 mov a,#$16 +0aac: c4 05 mov $05,a +0aae: 2f 0e bra $0abe +0ab0: e8 00 mov a,#$00 +0ab2: 8d 02 mov y,#$02 +0ab4: cf mul ya +0ab5: da 04 movw $04,ya +0ab7: 60 clrc +0ab8: 98 00 04 adc $04,#$00 +0abb: 98 24 05 adc $05,#$24 +0abe: 8d 00 mov y,#$00 +0ac0: f7 04 mov a,($04)+y +0ac2: c4 52 mov $52,a +0ac4: c4 50 mov $50,a +0ac6: fc inc y +0ac7: f7 04 mov a,($04)+y +0ac9: c4 53 mov $53,a +0acb: c4 51 mov $51,a +0acd: e8 78 mov a,#$78 +0acf: 3f 17 13 call $1317 +0ad2: 3f 72 0a call $0a72 +0ad5: e8 00 mov a,#$00 +0ad7: c4 2d mov $2d,a +0ad9: cd 00 mov x,#$00 +0adb: 3f df 0b call $0bdf +0ade: f4 e0 mov a,$e0+x +0ae0: 28 20 and a,#$20 +0ae2: d4 e0 mov $e0+x,a +0ae4: 3d inc x +0ae5: c8 08 cmp x,#$08 +0ae7: d0 f2 bne $0adb +0ae9: 5f 05 0b jmp $0b05 + +0aec: c4 2d mov $2d,a +0aee: 3f 8b 0d call $0d8b +0af1: 3f 8b 09 call $098b +0af4: 0b 13 asl $13 +0af6: 3d inc x +0af7: 3e 11 cmp x,$11 +0af9: d0 f6 bne $0af1 +0afb: e4 14 mov a,$14 +0afd: d0 05 bne $0b04 +0aff: 78 00 2d cmp $2d,#$00 +0b02: f0 01 beq $0b05 +0b04: 6f ret + +0b05: 8d 00 mov y,#$00 +0b07: f7 52 mov a,($52)+y +0b09: c4 04 mov $04,a +0b0b: fc inc y +0b0c: f7 52 mov a,($52)+y +0b0e: c4 05 mov $05,a +0b10: ba 04 movw ya,$04 +0b12: 5a 08 cmpw ya,$08 +0b14: f0 53 beq $0b69 +0b16: 3a 52 incw $52 +0b18: 3a 52 incw $52 +0b1a: ad 00 cmp y,#$00 +0b1c: d0 1b bne $0b39 +0b1e: 68 80 cmp a,#$80 +0b20: b0 06 bcs $0b28 +0b22: ab 3e inc $3e +0b24: 64 3e cmp a,$3e +0b26: f0 41 beq $0b69 +0b28: 8d 00 mov y,#$00 +0b2a: f7 52 mov a,($52)+y +0b2c: c4 04 mov $04,a +0b2e: fc inc y +0b2f: f7 52 mov a,($52)+y +0b31: c4 05 mov $05,a +0b33: ba 04 movw ya,$04 +0b35: da 52 movw $52,ya +0b37: 2f cc bra $0b05 +0b39: 3f 8b 0d call $0d8b +0b3c: f4 e0 mov a,$e0+x +0b3e: 28 7f and a,#$7f +0b40: c4 18 mov $18,a +0b42: 8d 00 mov y,#$00 +0b44: f7 04 mov a,($04)+y +0b46: d5 00 02 mov $0200+x,a +0b49: c4 00 mov $00,a +0b4b: fc inc y +0b4c: f7 04 mov a,($04)+y +0b4e: d5 10 02 mov $0210+x,a +0b51: 04 00 or a,$00 +0b53: d0 03 bne $0b58 +0b55: 18 80 18 or $18,#$80 +0b58: e8 01 mov a,#$01 +0b5a: d4 80 mov $80+x,a +0b5c: e4 18 mov a,$18 +0b5e: d4 e0 mov $e0+x,a +0b60: 3a 04 incw $04 +0b62: 3a 04 incw $04 +0b64: 3d inc x +0b65: 3e 11 cmp x,$11 +0b67: d0 d3 bne $0b3c +0b69: 6f ret + +0b6a: 2d push a +0b6b: e8 01 mov a,#$01 +0b6d: c4 2d mov $2d,a +0b6f: 3f 8b 0d call $0d8b +0b72: f4 e0 mov a,$e0+x +0b74: 28 80 and a,#$80 +0b76: d0 06 bne $0b7e +0b78: 8f 00 18 mov $18,#$00 +0b7b: 3f 72 0c call $0c72 +0b7e: 0b 13 asl $13 +0b80: 3d inc x +0b81: 3e 11 cmp x,$11 +0b83: d0 ed bne $0b72 +0b85: ae pop a +0b86: 68 80 cmp a,#$80 +0b88: f0 54 beq $0bde +0b8a: 8d 02 mov y,#$02 +0b8c: cf mul ya +0b8d: da 04 movw $04,ya +0b8f: 60 clrc +0b90: 98 00 04 adc $04,#$00 +0b93: 98 18 05 adc $05,#$18 +0b96: 8d 00 mov y,#$00 +0b98: f7 04 mov a,($04)+y +0b9a: c4 06 mov $06,a +0b9c: fc inc y +0b9d: f7 04 mov a,($04)+y +0b9f: c4 07 mov $07,a +0ba1: 8f 00 18 mov $18,#$00 +0ba4: 8f 07 00 mov $00,#$07 +0ba7: 8d 00 mov y,#$00 +0ba9: f7 06 mov a,($06)+y +0bab: c4 02 mov $02,a +0bad: fc inc y +0bae: f7 06 mov a,($06)+y +0bb0: c4 03 mov $03,a +0bb2: 04 02 or a,$02 +0bb4: f0 28 beq $0bde +0bb6: f8 00 mov x,$00 +0bb8: 7d mov a,x +0bb9: 60 clrc +0bba: 88 08 adc a,#$08 +0bbc: 5d mov x,a +0bbd: e4 02 mov a,$02 +0bbf: d5 00 02 mov $0200+x,a +0bc2: e4 03 mov a,$03 +0bc4: d5 10 02 mov $0210+x,a +0bc7: 3f df 0b call $0bdf +0bca: e8 00 mov a,#$00 +0bcc: d4 e0 mov $e0+x,a +0bce: f8 00 mov x,$00 +0bd0: f4 e0 mov a,$e0+x +0bd2: 08 20 or a,#$20 +0bd4: d4 e0 mov $e0+x,a +0bd6: 3a 06 incw $06 +0bd8: 3a 06 incw $06 +0bda: 8b 00 dec $00 +0bdc: 10 c9 bpl $0ba7 +0bde: 6f ret + +0bdf: e8 00 mov a,#$00 +0be1: d4 c0 mov $c0+x,a +0be3: d5 40 02 mov $0240+x,a +0be6: d5 c0 02 mov $02c0+x,a +0be9: e8 18 mov a,#$18 +0beb: d5 20 02 mov $0220+x,a +0bee: e8 07 mov a,#$07 +0bf0: d5 30 02 mov $0230+x,a +0bf3: e8 01 mov a,#$01 +0bf5: d4 80 mov $80+x,a +0bf7: e8 b0 mov a,#$b0 +0bf9: d5 50 02 mov $0250+x,a +0bfc: e8 0f mov a,#$0f +0bfe: d5 90 02 mov $0290+x,a +0c01: e8 0f mov a,#$0f +0c03: d5 70 02 mov $0270+x,a +0c06: e8 ff mov a,#$ff +0c08: d5 d0 04 mov $04d0+x,a +0c0b: 8d 00 mov y,#$00 +0c0d: e8 64 mov a,#$64 +0c0f: d5 60 02 mov $0260+x,a +0c12: 3f 63 0d call $0d63 +0c15: e8 00 mov a,#$00 +0c17: 5f f4 0c jmp $0cf4 + +0c1a: d5 20 02 mov $0220+x,a +0c1d: f7 2e mov a,($2e)+y +0c1f: 30 0f bmi $0c30 +0c21: 3a 2e incw $2e +0c23: 2d push a +0c24: 28 0f and a,#$0f +0c26: d5 90 02 mov $0290+x,a +0c29: ae pop a +0c2a: 9f xcn a +0c2b: 28 07 and a,#$07 +0c2d: d5 30 02 mov $0230+x,a +0c30: 6f ret + +0c31: 80 setc +0c32: a8 e0 sbc a,#$e0 +0c34: 1c asl a +0c35: 8d 00 mov y,#$00 +0c37: 7a 0c addw ya,$0c +0c39: da 04 movw $04,ya +0c3b: 8d 01 mov y,#$01 +0c3d: f7 04 mov a,($04)+y +0c3f: 2d push a +0c40: dc dec y +0c41: f7 04 mov a,($04)+y +0c43: 2d push a +0c44: 6f ret + +; vcmd ef - call subroutine +0c45: f7 2e mov a,($2e)+y +0c47: 3a 2e incw $2e +0c49: d5 30 05 mov $0530+x,a +0c4c: f7 2e mov a,($2e)+y +0c4e: 3a 2e incw $2e +0c50: d5 40 05 mov $0540+x,a +0c53: f7 2e mov a,($2e)+y +0c55: 3a 2e incw $2e +0c57: d5 50 05 mov $0550+x,a +0c5a: e4 2e mov a,$2e +0c5c: d5 10 05 mov $0510+x,a +0c5f: e4 2f mov a,$2f +0c61: d5 20 05 mov $0520+x,a +0c64: 18 10 18 or $18,#$10 +0c67: f5 30 05 mov a,$0530+x +0c6a: c4 2e mov $2e,a +0c6c: f5 40 05 mov a,$0540+x +0c6f: c4 2f mov $2f,a +0c71: 6f ret + +0c72: 83 18 27 bbs4 $18,$0c9c +0c75: 18 80 18 or $18,#$80 +0c78: 78 00 2d cmp $2d,#$00 +0c7b: f0 1b beq $0c98 +0c7d: 4d push x +0c7e: e4 18 mov a,$18 +0c80: 2d push a +0c81: 7d mov a,x +0c82: 80 setc +0c83: a8 08 sbc a,#$08 +0c85: 5d mov x,a +0c86: f4 e0 mov a,$e0+x +0c88: 28 df and a,#$df +0c8a: d4 e0 mov $e0+x,a +0c8c: c4 18 mov $18,a +0c8e: f5 80 02 mov a,$0280+x +0c91: 3f f4 0c call $0cf4 +0c94: ae pop a +0c95: c4 18 mov $18,a +0c97: ce pop x +0c98: e8 00 mov a,#$00 +0c9a: 2f 29 bra $0cc5 +0c9c: f5 50 05 mov a,$0550+x +0c9f: 9c dec a +0ca0: d5 50 05 mov $0550+x,a +0ca3: d0 0c bne $0cb1 +0ca5: 38 ef 18 and $18,#$ef +0ca8: f5 10 05 mov a,$0510+x +0cab: fd mov y,a +0cac: f5 20 05 mov a,$0520+x +0caf: 2f 07 bra $0cb8 +0cb1: f5 30 05 mov a,$0530+x +0cb4: fd mov y,a +0cb5: f5 40 05 mov a,$0540+x +0cb8: d5 10 02 mov $0210+x,a +0cbb: c4 2f mov $2f,a +0cbd: dd mov a,y +0cbe: d5 00 02 mov $0200+x,a +0cc1: c4 2e mov $2e,a +0cc3: e8 01 mov a,#$01 +0cc5: 2d push a +0cc6: e4 18 mov a,$18 +0cc8: d4 e0 mov $e0+x,a +0cca: ae pop a +0ccb: 6f ret + +; vcmd fa +0ccc: 38 f7 18 and $18,#$f7 +0ccf: f7 2e mov a,($2e)+y +0cd1: f0 03 beq $0cd6 +0cd3: 18 08 18 or $18,#$08 +0cd6: 3a 2e incw $2e +0cd8: 6f ret + +; vcmd f9 +0cd9: f7 2e mov a,($2e)+y +0cdb: 3a 2e incw $2e +0cdd: 2d push a +0cde: f5 80 02 mov a,$0280+x +0ce1: fd mov y,a +0ce2: ae pop a +0ce3: d6 a8 07 mov $07a8+y,a +0ce6: 6f ret + +; vcmd fb-ff - nop +0ce7: 6f ret + +; vcmd e0 - set instrument +0ce8: f7 2e mov a,($2e)+y +0cea: 3a 2e incw $2e +0cec: 75 80 02 cmp a,$0280+x +0cef: f0 da beq $0ccb +0cf1: 38 fb 18 and $18,#$fb +0cf4: a3 18 0b bbs5 $18,$0d02 +0cf7: 2d push a +0cf8: 3f 23 14 call $1423 +0cfb: d3 18 03 bbc6 $18,$0d01 +0cfe: 3f fc 13 call $13fc +0d01: ae pop a +0d02: 28 3f and a,#$3f +0d04: d5 80 02 mov $0280+x,a +0d07: 8d 06 mov y,#$06 +0d09: cf mul ya +0d0a: da 04 movw $04,ya +0d0c: e8 00 mov a,#$00 +0d0e: 8d 30 mov y,#$30 +0d10: 7a 04 addw ya,$04 +0d12: da 04 movw $04,ya +0d14: 3f 99 10 call $1099 +0d17: 4d push x +0d18: fd mov y,a +0d19: 7d mov a,x +0d1a: 28 07 and a,#$07 +0d1c: 9f xcn a +0d1d: 60 clrc +0d1e: 88 04 adc a,#$04 +0d20: 5d mov x,a +0d21: a3 18 08 bbs5 $18,$0d2c +0d24: f7 04 mov a,($04)+y +0d26: c9 f2 00 mov $00f2,x +0d29: c5 f3 00 mov $00f3,a +0d2c: 3d inc x +0d2d: fc inc y +0d2e: ad 04 cmp y,#$04 +0d30: d0 ef bne $0d21 +0d32: ce pop x +0d33: f7 04 mov a,($04)+y +0d35: d5 a0 02 mov $02a0+x,a +0d38: fc inc y +0d39: f7 04 mov a,($04)+y +0d3b: d5 b0 02 mov $02b0+x,a +0d3e: 6f ret + +0d3f: a3 18 0e bbs5 $18,$0d50 +0d42: 78 00 2d cmp $2d,#$00 +0d45: f0 03 beq $0d4a +0d47: e3 18 06 bbs7 $18,$0d50 +0d4a: e4 23 mov a,$23 +0d4c: 04 13 or a,$13 +0d4e: c4 23 mov $23,a +0d50: 6f ret + +0d51: a3 18 0e bbs5 $18,$0d62 +0d54: 78 00 2d cmp $2d,#$00 +0d57: f0 03 beq $0d5c +0d59: e3 18 06 bbs7 $18,$0d62 +0d5c: e4 24 mov a,$24 +0d5e: 04 13 or a,$13 +0d60: c4 24 mov $24,a +0d62: 6f ret + +0d63: a3 18 13 bbs5 $18,$0d79 +0d66: 6d push y +0d67: cb 12 mov $12,y +0d69: fd mov y,a +0d6a: 7d mov a,x +0d6b: 28 07 and a,#$07 +0d6d: 9f xcn a +0d6e: 60 clrc +0d6f: 84 12 adc a,$12 +0d71: c5 f2 00 mov $00f2,a +0d74: cc f3 00 mov $00f3,y +0d77: dd mov a,y +0d78: ee pop y +0d79: 6f ret + +0d7a: a3 18 06 bbs5 $18,$0d83 +0d7d: cc f2 00 mov $00f2,y +0d80: c5 f3 00 mov $00f3,a +0d83: 6f ret + +0d84: cc f2 00 mov $00f2,y +0d87: e5 f3 00 mov a,$00f3 +0d8a: 6f ret + +0d8b: 2d push a +0d8c: 78 00 2d cmp $2d,#$00 +0d8f: f0 09 beq $0d9a +0d91: 8f 10 13 mov $13,#$10 +0d94: cd 0c mov x,#$0c +0d96: e8 10 mov a,#$10 +0d98: 2f 07 bra $0da1 +0d9a: 8f 01 13 mov $13,#$01 +0d9d: cd 00 mov x,#$00 +0d9f: e8 08 mov a,#$08 +0da1: c4 11 mov $11,a +0da3: e8 00 mov a,#$00 +0da5: c4 14 mov $14,a +0da7: ae pop a +0da8: 6f ret + +0da9: d5 50 02 mov $0250+x,a +0dac: 68 c9 cmp a,#$c9 +0dae: d0 03 bne $0db3 +0db0: 5f 51 0d jmp $0d51 + +0db3: 3f 6a 12 call $126a +0db6: 18 03 18 or $18,#$03 +0db9: e8 00 mov a,#$00 +0dbb: d5 80 04 mov $0480+x,a +0dbe: d5 90 04 mov $0490+x,a +0dc1: d5 60 04 mov $0460+x,a +0dc4: d5 70 04 mov $0470+x,a +0dc7: 43 18 1b bbs2 $18,$0de5 +0dca: d5 d0 02 mov $02d0+x,a +0dcd: d5 e0 02 mov $02e0+x,a +0dd0: d5 60 03 mov $0360+x,a +0dd3: d5 70 03 mov $0370+x,a +0dd6: d5 f0 03 mov $03f0+x,a +0dd9: d5 00 04 mov $0400+x,a +0ddc: 3f 3f 0d call $0d3f +0ddf: 3f 7f 10 call $107f +0de2: 3f 70 10 call $1070 +0de5: 38 fb 18 and $18,#$fb +0de8: ba 2e movw ya,$2e +0dea: da 06 movw $06,ya +0dec: 8d 00 mov y,#$00 +0dee: f7 06 mov a,($06)+y +0df0: 3a 06 incw $06 +0df2: 68 00 cmp a,#$00 +0df4: f0 51 beq $0e47 +0df6: 10 f4 bpl $0dec +0df8: 68 c8 cmp a,#$c8 +0dfa: f0 12 beq $0e0e +0dfc: 68 e0 cmp a,#$e0 +0dfe: 90 13 bcc $0e13 +0e00: 80 setc +0e01: a8 e0 sbc a,#$e0 +0e03: fd mov y,a +0e04: f6 6c 14 mov a,$146c+y +0e07: f0 e3 beq $0dec +0e09: 3a 06 incw $06 +0e0b: 9c dec a +0e0c: 2f f9 bra $0e07 +0e0e: 18 04 18 or $18,#$04 +0e11: 2f d9 bra $0dec +0e13: c4 16 mov $16,a +0e15: 53 18 2f bbc2 $18,$0e47 +0e18: 73 17 2c bbc3 $17,$0e47 +0e1b: f5 50 02 mov a,$0250+x +0e1e: 80 setc +0e1f: a4 16 sbc a,$16 +0e21: c4 00 mov $00,a +0e23: 10 03 bpl $0e28 +0e25: 48 ff eor a,#$ff +0e27: bc inc a +0e28: 8d 10 mov y,#$10 +0e2a: cf mul ya +0e2b: da 02 movw $02,ya +0e2d: 4d push x +0e2e: f5 20 02 mov a,$0220+x +0e31: 5d mov x,a +0e32: ba 02 movw ya,$02 +0e34: 9e div ya,x +0e35: 8d 00 mov y,#$00 +0e37: ce pop x +0e38: 0b 00 asl $00 +0e3a: b0 04 bcs $0e40 +0e3c: 48 ff eor a,#$ff +0e3e: bc inc a +0e3f: dc dec y +0e40: d5 80 04 mov $0480+x,a +0e43: dd mov a,y +0e44: d5 90 04 mov $0490+x,a +0e47: 6f ret + +0e48: 73 17 1d bbc3 $17,$0e68 +0e4b: f5 60 04 mov a,$0460+x +0e4e: c4 00 mov $00,a +0e50: f5 70 04 mov a,$0470+x +0e53: c4 01 mov $01,a +0e55: f5 90 04 mov a,$0490+x +0e58: fd mov y,a +0e59: f5 80 04 mov a,$0480+x +0e5c: 7a 00 addw ya,$00 +0e5e: d5 60 04 mov $0460+x,a +0e61: dd mov a,y +0e62: d5 70 04 mov $0470+x,a +0e65: 18 01 18 or $18,#$01 +0e68: 6f ret + +0e69: 8d 02 mov y,#$02 +0e6b: f4 a0 mov a,$a0+x +0e6d: 3f 63 0d call $0d63 +0e70: fc inc y +0e71: f4 b0 mov a,$b0+x +0e73: 5f 63 0d jmp $0d63 + +0e76: 73 18 19 bbc3 $18,$0e92 +0e79: f5 50 02 mov a,$0250+x +0e7c: a8 8c sbc a,#$8c +0e7e: 1c asl a +0e7f: fd mov y,a +0e80: f6 22 16 mov a,$1622+y +0e83: 75 80 02 cmp a,$0280+x +0e86: f0 05 beq $0e8d +0e88: 6d push y +0e89: 3f f4 0c call $0cf4 +0e8c: ee pop y +0e8d: f6 23 16 mov a,$1623+y +0e90: 2f 03 bra $0e95 +0e92: f5 50 02 mov a,$0250+x +0e95: 80 setc +0e96: a8 80 sbc a,#$80 +0e98: 60 clrc +0e99: 95 40 02 adc a,$0240+x +0e9c: 60 clrc +0e9d: 84 15 adc a,$15 +0e9f: 8d 10 mov y,#$10 +0ea1: cf mul ya +0ea2: c4 00 mov $00,a +0ea4: cb 01 mov $01,y +0ea6: f5 80 02 mov a,$0280+x +0ea9: fd mov y,a +0eaa: f6 a8 07 mov a,$07a8+y +0ead: c4 02 mov $02,a +0eaf: 8d 00 mov y,#$00 +0eb1: f5 c0 02 mov a,$02c0+x +0eb4: 60 clrc +0eb5: 84 02 adc a,$02 +0eb7: 10 01 bpl $0eba +0eb9: dc dec y +0eba: 7a 00 addw ya,$00 +0ebc: da 00 movw $00,ya +0ebe: f5 e0 02 mov a,$02e0+x +0ec1: fd mov y,a +0ec2: f5 d0 02 mov a,$02d0+x +0ec5: 7a 00 addw ya,$00 +0ec7: da 00 movw $00,ya +0ec9: f5 70 04 mov a,$0470+x +0ecc: fd mov y,a +0ecd: f5 60 04 mov a,$0460+x +0ed0: 7a 00 addw ya,$00 +0ed2: da 00 movw $00,ya +0ed4: f5 00 04 mov a,$0400+x +0ed7: fd mov y,a +0ed8: f5 f0 03 mov a,$03f0+x +0edb: 7a 00 addw ya,$00 +0edd: 10 04 bpl $0ee3 +0edf: ba 08 movw ya,$08 +0ee1: 2f 06 bra $0ee9 +0ee3: 5a 0e cmpw ya,$0e +0ee5: 90 02 bcc $0ee9 +0ee7: ba 0e movw ya,$0e +0ee9: da 00 movw $00,ya +0eeb: 4d push x +0eec: cd 10 mov x,#$10 +0eee: 9e div ya,x +0eef: cb 03 mov $03,y +0ef1: 8d 00 mov y,#$00 +0ef3: cd 0c mov x,#$0c +0ef5: 9e div ya,x +0ef6: ce pop x +0ef7: c4 02 mov $02,a +0ef9: dd mov a,y +0efa: 9f xcn a +0efb: 60 clrc +0efc: 84 03 adc a,$03 +0efe: 8d 02 mov y,#$02 +0f00: cf mul ya +0f01: 7a 0a addw ya,$0a +0f03: da 04 movw $04,ya +0f05: 8d 00 mov y,#$00 +0f07: f7 04 mov a,($04)+y +0f09: c4 00 mov $00,a +0f0b: fc inc y +0f0c: f7 04 mov a,($04)+y +0f0e: c4 01 mov $01,a +0f10: 78 05 02 cmp $02,#$05 +0f13: f0 08 beq $0f1d +0f15: 4b 01 lsr $01 +0f17: 6b 00 ror $00 +0f19: ab 02 inc $02 +0f1b: 2f f3 bra $0f10 +0f1d: f5 b0 02 mov a,$02b0+x +0f20: eb 01 mov y,$01 +0f22: cf mul ya +0f23: da 02 movw $02,ya +0f25: f5 b0 02 mov a,$02b0+x +0f28: eb 00 mov y,$00 +0f2a: cf mul ya +0f2b: 6d push y +0f2c: f5 a0 02 mov a,$02a0+x +0f2f: eb 00 mov y,$00 +0f31: cf mul ya +0f32: 7a 02 addw ya,$02 +0f34: da 02 movw $02,ya +0f36: f5 a0 02 mov a,$02a0+x +0f39: eb 01 mov y,$01 +0f3b: cf mul ya +0f3c: fd mov y,a +0f3d: ae pop a +0f3e: 7a 02 addw ya,$02 +0f40: da 02 movw $02,ya +0f42: e4 02 mov a,$02 +0f44: d4 a0 mov $a0+x,a +0f46: e4 03 mov a,$03 +0f48: d4 b0 mov $b0+x,a +0f4a: 6f ret + +; vcmd e9 - global transpose +0f4b: f7 2e mov a,($2e)+y +0f4d: 3a 2e incw $2e +0f4f: c4 15 mov $15,a +0f51: 6f ret + +; vcmd ea - per-voice transpose +0f52: f7 2e mov a,($2e)+y +0f54: d5 40 02 mov $0240+x,a +0f57: 3a 2e incw $2e +0f59: 6f ret + +; vcmd f4 - tuning +0f5a: f7 2e mov a,($2e)+y +0f5c: 3a 2e incw $2e +0f5e: d5 c0 02 mov $02c0+x,a +0f61: 6f ret + +; vcmd e3 - vibrato on +0f62: 18 01 17 or $17,#$01 +0f65: f7 2e mov a,($2e)+y +0f67: 3a 2e incw $2e +0f69: d5 f0 02 mov $02f0+x,a +0f6c: f7 2e mov a,($2e)+y +0f6e: 3a 2e incw $2e +0f70: d5 00 03 mov $0300+x,a +0f73: f7 2e mov a,($2e)+y +0f75: 3a 2e incw $2e +0f77: d5 10 03 mov $0310+x,a +0f7a: 6f ret + +; vcmd e4 - vibrato off +0f7b: 38 fe 17 and $17,#$fe +0f7e: 6f ret + +; vcmd f1 - pitch envelope +0f7f: f7 2e mov a,($2e)+y +0f81: 3a 2e incw $2e +0f83: d5 10 04 mov $0410+x,a +0f86: f7 2e mov a,($2e)+y +0f88: 3a 2e incw $2e +0f8a: d5 20 04 mov $0420+x,a +0f8d: f7 2e mov a,($2e)+y +0f8f: 3a 2e incw $2e +0f91: d5 30 04 mov $0430+x,a +0f94: 18 04 17 or $17,#$04 +0f97: 6f ret + +; vcmd f3 - pitch envelope off +0f98: 38 fb 17 and $17,#$fb +0f9b: 6f ret + +; vcmd f2 +0f9c: 38 f7 17 and $17,#$f7 +0f9f: f7 2e mov a,($2e)+y +0fa1: f0 03 beq $0fa6 +0fa3: 18 08 17 or $17,#$08 +0fa6: 3a 2e incw $2e +0fa8: 6f ret + +0fa9: e8 01 mov a,#$01 +0fab: 3f b5 0f call $0fb5 +0fae: 9c dec a +0faf: d0 03 bne $0fb4 +0fb1: 18 01 18 or $18,#$01 +0fb4: 6f ret + +0fb5: 24 17 and a,$17 +0fb7: f0 69 beq $1022 +0fb9: f5 20 03 mov a,$0320+x +0fbc: f0 06 beq $0fc4 +0fbe: 9c dec a +0fbf: d5 20 03 mov $0320+x,a +0fc2: 2f 5e bra $1022 +0fc4: f5 30 03 mov a,$0330+x +0fc7: 75 00 03 cmp a,$0300+x +0fca: f0 06 beq $0fd2 +0fcc: bc inc a +0fcd: d5 30 03 mov $0330+x,a +0fd0: 2f 50 bra $1022 +0fd2: e8 00 mov a,#$00 +0fd4: d5 30 03 mov $0330+x,a +0fd7: f5 40 03 mov a,$0340+x +0fda: 75 10 03 cmp a,$0310+x +0fdd: f0 06 beq $0fe5 +0fdf: bc inc a +0fe0: d5 40 03 mov $0340+x,a +0fe3: 2f 0d bra $0ff2 +0fe5: e8 00 mov a,#$00 +0fe7: d5 40 03 mov $0340+x,a +0fea: f5 50 03 mov a,$0350+x +0fed: 48 01 eor a,#$01 +0fef: d5 50 03 mov $0350+x,a +0ff2: f5 d0 02 mov a,$02d0+x +0ff5: c4 00 mov $00,a +0ff7: f5 e0 02 mov a,$02e0+x +0ffa: c4 01 mov $01,a +0ffc: f5 50 03 mov a,$0350+x +0fff: c4 02 mov $02,a +1001: 8d 00 mov y,#$00 +1003: e8 01 mov a,#$01 +1005: 8b 02 dec $02 +1007: d0 02 bne $100b +1009: dc dec y +100a: dd mov a,y +100b: 7a 00 addw ya,$00 +100d: d5 d0 02 mov $02d0+x,a +1010: dd mov a,y +1011: d5 e0 02 mov $02e0+x,a +1014: d3 18 08 bbc6 $18,$101f +1017: f5 d0 02 mov a,$02d0+x +101a: 3f 03 14 call $1403 +101d: 2f 03 bra $1022 +101f: e8 01 mov a,#$01 +1021: 6f ret + +1022: e8 00 mov a,#$00 +1024: 6f ret + +1025: 53 17 47 bbc2 $17,$106f +1028: f5 40 04 mov a,$0440+x +102b: f0 06 beq $1033 +102d: 9c dec a +102e: d5 40 04 mov $0440+x,a +1031: 2f 3c bra $106f +1033: f5 50 04 mov a,$0450+x +1036: 75 20 04 cmp a,$0420+x +1039: f0 06 beq $1041 +103b: bc inc a +103c: d5 50 04 mov $0450+x,a +103f: 2f 2e bra $106f +1041: e8 00 mov a,#$00 +1043: d5 50 04 mov $0450+x,a +1046: f5 f0 03 mov a,$03f0+x +1049: c4 00 mov $00,a +104b: f5 00 04 mov a,$0400+x +104e: c4 01 mov $01,a +1050: 8d 00 mov y,#$00 +1052: f5 30 04 mov a,$0430+x +1055: 10 01 bpl $1058 +1057: dc dec y +1058: 7a 00 addw ya,$00 +105a: d5 f0 03 mov $03f0+x,a +105d: dd mov a,y +105e: d5 00 04 mov $0400+x,a +1061: d3 18 08 bbc6 $18,$106c +1064: f5 f0 03 mov a,$03f0+x +1067: 3f 03 14 call $1403 +106a: 2f 03 bra $106f +106c: 18 01 18 or $18,#$01 +106f: 6f ret + +1070: 53 17 0b bbc2 $17,$107e +1073: e8 00 mov a,#$00 +1075: d5 50 04 mov $0450+x,a +1078: f5 10 04 mov a,$0410+x +107b: d5 40 04 mov $0440+x,a +107e: 6f ret + +107f: 13 17 11 bbc0 $17,$1093 +1082: e8 00 mov a,#$00 +1084: d5 30 03 mov $0330+x,a +1087: d5 40 03 mov $0340+x,a +108a: d5 50 03 mov $0350+x,a +108d: f5 f0 02 mov a,$02f0+x +1090: d5 20 03 mov $0320+x,a +1093: 6f ret + +1094: 6d push y +1095: cf mul ya +1096: dd mov a,y +1097: ee pop y +1098: 6f ret + +1099: e4 13 mov a,$13 +109b: 8d 5c mov y,#$5c +109d: 3f 7a 0d call $0d7a +10a0: 00 nop +10a1: 00 nop +10a2: 00 nop +10a3: 00 nop +10a4: 00 nop +10a5: 00 nop +10a6: 00 nop +10a7: 00 nop +10a8: e8 00 mov a,#$00 +10aa: 8d 00 mov y,#$00 +10ac: 3f 63 0d call $0d63 +10af: fc inc y +10b0: 3f 63 0d call $0d63 +10b3: 6f ret + +10b4: f5 60 02 mov a,$0260+x +10b7: c4 00 mov $00,a +10b9: 8f 00 01 mov $01,#$00 +10bc: f5 70 03 mov a,$0370+x +10bf: fd mov y,a +10c0: f5 60 03 mov a,$0360+x +10c3: 7a 00 addw ya,$00 +10c5: 10 04 bpl $10cb +10c7: e8 00 mov a,#$00 +10c9: 2f 13 bra $10de +10cb: 68 80 cmp a,#$80 +10cd: 90 02 bcc $10d1 +10cf: e8 7f mov a,#$7f +10d1: 2d push a +10d2: f5 90 02 mov a,$0290+x +10d5: fd mov y,a +10d6: f6 f0 07 mov a,$07f0+y +10d9: fd mov y,a +10da: ae pop a +10db: 3f 94 10 call $1094 +10de: 2d push a +10df: f5 d0 04 mov a,$04d0+x +10e2: fd mov y,a +10e3: ae pop a +10e4: 3f 94 10 call $1094 +10e7: d4 d0 mov $d0+x,a +10e9: 6f ret + +10ea: e8 0f mov a,#$0f +10ec: 78 00 4c cmp $4c,#$00 +10ef: d0 03 bne $10f4 +10f1: f5 70 02 mov a,$0270+x +10f4: 2d push a +10f5: fd mov y,a +10f6: f6 aa 16 mov a,$16aa+y +10f9: fd mov y,a +10fa: f4 d0 mov a,$d0+x +10fc: 3f 94 10 call $1094 +10ff: 8d 00 mov y,#$00 +1101: 3f 63 0d call $0d63 +1104: ae pop a +1105: 48 ff eor a,#$ff +1107: 28 1f and a,#$1f +1109: fd mov y,a +110a: f6 aa 16 mov a,$16aa+y +110d: fd mov y,a +110e: f4 d0 mov a,$d0+x +1110: 3f 94 10 call $1094 +1113: 8d 01 mov y,#$01 +1115: 5f 63 0d jmp $0d63 + +; vcmd e1 - pan +1118: f7 2e mov a,($2e)+y +111a: 3a 2e incw $2e +111c: d5 70 02 mov $0270+x,a +111f: 6f ret + +; vcmd e2 - pan fade +1120: f7 2e mov a,($2e)+y +1122: 3a 2e incw $2e +1124: d5 b0 04 mov $04b0+x,a +1127: e8 00 mov a,#$00 +1129: d5 c0 04 mov $04c0+x,a +112c: f7 2e mov a,($2e)+y +112e: 3a 2e incw $2e +1130: 28 1f and a,#$1f +1132: 08 40 or a,#$40 +1134: d5 a0 04 mov $04a0+x,a +1137: 6f ret + +; vcmd f0 - vibrato fade +1138: f7 2e mov a,($2e)+y +113a: f0 03 beq $113f +113c: 9c dec a +113d: 08 80 or a,#$80 +113f: d5 a0 04 mov $04a0+x,a +1142: 3a 2e incw $2e +1144: 6f ret + +; vcmd eb +1145: 4d push x +1146: 7d mov a,x +1147: 60 clrc +1148: 88 90 adc a,#$90 +114a: 5d mov x,a +114b: 3f 65 0f call $0f65 +114e: ce pop x +114f: 18 02 17 or $17,#$02 +1152: 6f ret + +; vcmd ec +1153: 38 fd 17 and $17,#$fd +1156: 6f ret + +; vcmd e5 - master volume +1157: f7 2e mov a,($2e)+y +1159: 3a 2e incw $2e +115b: 78 00 2d cmp $2d,#$00 +115e: d0 f6 bne $1156 +1160: c4 20 mov $20,a +1162: eb 19 mov y,$19 +1164: e4 20 mov a,$20 +1166: 3f 94 10 call $1094 +1169: 8d 0c mov y,#$0c +116b: 3f 7a 0d call $0d7a +116e: 8d 1c mov y,#$1c +1170: 5f 7a 0d jmp $0d7a + +; vcmd e6 - master volume fade +1173: f7 2e mov a,($2e)+y +1175: 3a 2e incw $2e +1177: c4 00 mov $00,a +1179: f7 2e mov a,($2e)+y +117b: 3a 2e incw $2e +117d: c4 1a mov $1a,a +117f: e4 00 mov a,$00 +1181: c4 1c mov $1c,a +1183: 8f 00 1b mov $1b,#$00 +1186: 18 01 1d or $1d,#$01 +1189: 6f ret + +; vcmd ed - volume +118a: f7 2e mov a,($2e)+y +118c: 3a 2e incw $2e +118e: d5 60 02 mov $0260+x,a +1191: e8 ff mov a,#$ff +1193: d5 d0 04 mov $04d0+x,a +1196: 6f ret + +; vcmd ee - volume fade +1197: f7 2e mov a,($2e)+y +1199: 3a 2e incw $2e +119b: d5 e0 04 mov $04e0+x,a +119e: e8 00 mov a,#$00 +11a0: d5 f0 04 mov $04f0+x,a +11a3: f7 2e mov a,($2e)+y +11a5: 3a 2e incw $2e +11a7: d5 00 05 mov $0500+x,a +11aa: 18 10 17 or $17,#$10 +11ad: 6f ret + +11ae: 13 1d 1b bbc0 $1d,$11cc +11b1: e4 1b mov a,$1b +11b3: 64 1a cmp a,$1a +11b5: f0 04 beq $11bb +11b7: ab 1b inc $1b +11b9: 2f 11 bra $11cc +11bb: 8f 00 1b mov $1b,#$00 +11be: eb 19 mov y,$19 +11c0: e4 20 mov a,$20 +11c2: 3f 94 10 call $1094 +11c5: 64 1c cmp a,$1c +11c7: d0 04 bne $11cd +11c9: 38 fe 1d and $1d,#$fe +11cc: 6f ret + +11cd: 8d 01 mov y,#$01 +11cf: 8f 00 01 mov $01,#$00 +11d2: 80 setc +11d3: a4 1c sbc a,$1c +11d5: 30 04 bmi $11db +11d7: 8d ff mov y,#$ff +11d9: 8b 01 dec $01 +11db: cb 00 mov $00,y +11dd: e4 19 mov a,$19 +11df: 8d 00 mov y,#$00 +11e1: 7a 00 addw ya,$00 +11e3: 10 04 bpl $11e9 +11e5: e8 00 mov a,#$00 +11e7: 2f 06 bra $11ef +11e9: ad 00 cmp y,#$00 +11eb: f0 02 beq $11ef +11ed: e8 ff mov a,#$ff +11ef: c4 19 mov $19,a +11f1: 5f 62 11 jmp $1162 + +11f4: 93 17 51 bbc4 $17,$1248 +11f7: f5 f0 04 mov a,$04f0+x +11fa: 75 e0 04 cmp a,$04e0+x +11fd: f0 06 beq $1205 +11ff: bc inc a +1200: d5 f0 04 mov $04f0+x,a +1203: 2f 43 bra $1248 +1205: e8 00 mov a,#$00 +1207: d5 f0 04 mov $04f0+x,a +120a: f5 d0 04 mov a,$04d0+x +120d: fd mov y,a +120e: f5 60 02 mov a,$0260+x +1211: 3f 94 10 call $1094 +1214: 75 00 05 cmp a,$0500+x +1217: d0 05 bne $121e +1219: 38 ef 17 and $17,#$ef +121c: 2f 2a bra $1248 +121e: 8d 01 mov y,#$01 +1220: 8f 00 01 mov $01,#$00 +1223: 80 setc +1224: b5 00 05 sbc a,$0500+x +1227: 30 04 bmi $122d +1229: 8d ff mov y,#$ff +122b: 8b 01 dec $01 +122d: cb 00 mov $00,y +122f: f5 d0 04 mov a,$04d0+x +1232: 8d 00 mov y,#$00 +1234: 7a 00 addw ya,$00 +1236: 10 04 bpl $123c +1238: e8 00 mov a,#$00 +123a: 2f 06 bra $1242 +123c: ad 00 cmp y,#$00 +123e: f0 02 beq $1242 +1240: e8 ff mov a,#$ff +1242: d5 d0 04 mov $04d0+x,a +1245: 18 02 18 or $18,#$02 +1248: 6f ret + +1249: 4d push x +124a: 7d mov a,x +124b: 60 clrc +124c: 88 90 adc a,#$90 +124e: 5d mov x,a +124f: e8 02 mov a,#$02 +1251: 3f b5 0f call $0fb5 +1254: 9c dec a +1255: d0 03 bne $125a +1257: 18 02 18 or $18,#$02 +125a: ce pop x +125b: 6f ret + +125c: 33 17 0a bbc1 $17,$1269 +125f: 4d push x +1260: 7d mov a,x +1261: 60 clrc +1262: 88 90 adc a,#$90 +1264: 5d mov x,a +1265: 3f 82 10 call $1082 +1268: ce pop x +1269: 6f ret + +126a: f5 70 02 mov a,$0270+x +126d: fd mov y,a +126e: f5 a0 04 mov a,$04a0+x +1271: f0 4e beq $12c1 +1273: c4 00 mov $00,a +1275: 28 40 and a,#$40 +1277: f0 23 beq $129c +1279: f5 c0 04 mov a,$04c0+x +127c: 75 b0 04 cmp a,$04b0+x +127f: f0 06 beq $1287 +1281: bc inc a +1282: d5 c0 04 mov $04c0+x,a +1285: 2f 3a bra $12c1 +1287: e8 00 mov a,#$00 +1289: d5 c0 04 mov $04c0+x,a +128c: dd mov a,y +128d: 80 setc +128e: b5 a0 04 sbc a,$04a0+x +1291: 30 15 bmi $12a8 +1293: d0 0c bne $12a1 +1295: e8 00 mov a,#$00 +1297: d5 a0 04 mov $04a0+x,a +129a: 2f 25 bra $12c1 +129c: e4 00 mov a,$00 +129e: 5c lsr a +129f: 90 07 bcc $12a8 +12a1: ad 00 cmp y,#$00 +12a3: f0 0e beq $12b3 +12a5: dc dec y +12a6: 2f 05 bra $12ad +12a8: ad 1f cmp y,#$1f +12aa: f0 07 beq $12b3 +12ac: fc inc y +12ad: dd mov a,y +12ae: d5 70 02 mov $0270+x,a +12b1: 2f 0e bra $12c1 +12b3: e4 00 mov a,$00 +12b5: 28 40 and a,#$40 +12b7: d0 dc bne $1295 +12b9: 58 01 00 eor $00,#$01 +12bc: e4 00 mov a,$00 +12be: d5 a0 04 mov $04a0+x,a +12c1: 6f ret + +; vcmd e7 - tempo +12c2: f7 2e mov a,($2e)+y +12c4: 3a 2e incw $2e +12c6: 78 00 2d cmp $2d,#$00 +12c9: f0 01 beq $12cc +12cb: 6f ret + +12cc: 5f 17 13 jmp $1317 + +; vcmd e8 - tempo fade +12cf: f7 2e mov a,($2e)+y +12d1: 3a 2e incw $2e +12d3: 2d push a +12d4: f7 2e mov a,($2e)+y +12d6: c4 00 mov $00,a +12d8: 3a 2e incw $2e +12da: ae pop a +12db: c4 1e mov $1e,a +12dd: e4 00 mov a,$00 +12df: c4 1f mov $1f,a +12e1: 18 02 1d or $1d,#$02 +12e4: 6f ret + +12e5: 33 1d fc bbc1 $1d,$12e4 +12e8: 8f 00 01 mov $01,#$00 +12eb: e4 1e mov a,$1e +12ed: c4 00 mov $00,a +12ef: e4 10 mov a,$10 +12f1: 64 1f cmp a,$1f +12f3: 90 0b bcc $1300 +12f5: f0 1b beq $1312 +12f7: d0 00 bne $12f9 +12f9: 8b 01 dec $01 +12fb: 58 ff 00 eor $00,#$ff +12fe: ab 00 inc $00 +1300: e4 10 mov a,$10 +1302: 8d 00 mov y,#$00 +1304: 7a 00 addw ya,$00 +1306: 10 04 bpl $130c +1308: e8 00 mov a,#$00 +130a: 2f 06 bra $1312 +130c: ad 00 cmp y,#$00 +130e: f0 05 beq $1315 +1310: e8 ff mov a,#$ff +1312: 38 fd 1d and $1d,#$fd +1315: c4 10 mov $10,a +1317: 4d push x +1318: c4 10 mov $10,a +131a: 5d mov x,a +131b: 8d 17 mov y,#$17 +131d: e8 70 mov a,#$70 +131f: 9e div ya,x +1320: 8d 0a mov y,#$0a +1322: cf mul ya +1323: cd 30 mov x,#$30 +1325: 9e div ya,x +1326: c4 34 mov $34,a +1328: cb 36 mov $36,y +132a: e8 00 mov a,#$00 +132c: fd mov y,a +132d: c4 35 mov $35,a +132f: c4 37 mov $37,a +1331: da 30 movw $30,ya +1333: da 32 movw $32,ya +1335: da 3a movw $3a,ya +1337: e8 30 mov a,#$30 +1339: da 38 movw $38,ya +133b: ce pop x +133c: ba 30 movw ya,$30 +133e: 7a 34 addw ya,$34 +1340: da 30 movw $30,ya +1342: ba 32 movw ya,$32 +1344: 7a 36 addw ya,$36 +1346: 5a 38 cmpw ya,$38 +1348: 90 04 bcc $134e +134a: 9a 38 subw ya,$38 +134c: 3a 30 incw $30 +134e: da 32 movw $32,ya +1350: 6f ret + +; vcmd f6 - disable echo +1351: e8 00 mov a,#$00 +1353: c4 29 mov $29,a +1355: c4 21 mov $21,a +1357: c4 22 mov $22,a +1359: 18 20 25 or $25,#$20 +135c: 6f ret + +; vcmd f5 - echo vbits/volume +135d: f7 2e mov a,($2e)+y +135f: 3a 2e incw $2e +1361: c4 29 mov $29,a +1363: f7 2e mov a,($2e)+y +1365: 3a 2e incw $2e +1367: c4 21 mov $21,a +1369: f7 2e mov a,($2e)+y +136b: 3a 2e incw $2e +136d: c4 22 mov $22,a +136f: 38 df 25 and $25,#$df +1372: 6f ret + +; vcmd f7 - set echo params +1373: f7 2e mov a,($2e)+y +1375: 3a 2e incw $2e +1377: 68 08 cmp a,#$08 +1379: 90 02 bcc $137d +137b: e8 07 mov a,#$07 +137d: 3f a5 13 call $13a5 +1380: 8d 00 mov y,#$00 +1382: f7 2e mov a,($2e)+y +1384: 3a 2e incw $2e +1386: c4 26 mov $26,a +1388: f7 2e mov a,($2e)+y +138a: 4d push x +138b: 28 07 and a,#$07 +138d: 3a 2e incw $2e +138f: 8d 08 mov y,#$08 +1391: cf mul ya +1392: 5d mov x,a +1393: 8d 0f mov y,#$0f +1395: f5 6a 16 mov a,$166a+x +1398: 3f 7a 0d call $0d7a +139b: 3d inc x +139c: dd mov a,y +139d: 60 clrc +139e: 88 10 adc a,#$10 +13a0: fd mov y,a +13a1: 10 f2 bpl $1395 +13a3: ce pop x +13a4: 6f ret + +13a5: c4 2c mov $2c,a +13a7: 8d 7d mov y,#$7d +13a9: 3f 84 0d call $0d84 +13ac: 64 2c cmp a,$2c +13ae: f0 2b beq $13db +13b0: 28 07 and a,#$07 +13b2: 48 ff eor a,#$ff +13b4: f3 2a 03 bbc7 $2a,$13ba +13b7: 60 clrc +13b8: 84 2a adc a,$2a +13ba: c4 2a mov $2a,a +13bc: 8d 04 mov y,#$04 +13be: f6 8b 14 mov a,$148b+y +13c1: c5 f2 00 mov $00f2,a +13c4: e8 00 mov a,#$00 +13c6: c5 f3 00 mov $00f3,a +13c9: fe f3 dbnz y,$13be +13cb: e4 25 mov a,$25 +13cd: 08 20 or a,#$20 +13cf: 8d 6c mov y,#$6c +13d1: 3f 7a 0d call $0d7a +13d4: e4 2c mov a,$2c +13d6: 8d 7d mov y,#$7d +13d8: 3f 7a 0d call $0d7a +13db: 1c asl a +13dc: 1c asl a +13dd: 1c asl a +13de: 48 ff eor a,#$ff +13e0: 80 setc +13e1: 88 ff adc a,#$ff +13e3: 8d 6d mov y,#$6d +13e5: 5f 7a 0d jmp $0d7a + +; vcmd f8 +13e8: 3f 23 14 call $1423 +13eb: 38 bf 18 and $18,#$bf +13ee: f7 2e mov a,($2e)+y +13f0: 3a 2e incw $2e +13f2: 28 1f and a,#$1f +13f4: f0 0c beq $1402 +13f6: 3f 18 14 call $1418 +13f9: 18 40 18 or $18,#$40 +13fc: e4 28 mov a,$28 +13fe: 04 13 or a,$13 +1400: c4 28 mov $28,a +1402: 6f ret + +1403: c4 00 mov $00,a +1405: e4 25 mov a,$25 +1407: 28 1f and a,#$1f +1409: 60 clrc +140a: 84 00 adc a,$00 +140c: 68 01 cmp a,#$01 +140e: b0 02 bcs $1412 +1410: e8 01 mov a,#$01 +1412: 68 20 cmp a,#$20 +1414: 90 02 bcc $1418 +1416: e8 1f mov a,#$1f +1418: c4 00 mov $00,a +141a: e4 25 mov a,$25 +141c: 28 e0 and a,#$e0 +141e: 04 00 or a,$00 +1420: c4 25 mov $25,a +1422: 6f ret + +1423: e4 13 mov a,$13 +1425: 48 ff eor a,#$ff +1427: 24 28 and a,$28 +1429: c4 28 mov $28,a +142b: 6f ret + +; vcmd dispatch table +142c: dw $0ce8 ; e0 - set instrument +142e: dw $1118 ; e1 - pan +1230: dw $1120 ; e2 - pan fade +1232: dw $0f62 ; e3 - vibrato on +1234: dw $0f7b ; e4 - vibrato off +1236: dw $1157 ; e5 - master volume +1238: dw $1173 ; e6 - master volume fade +123a: dw $12c2 ; e7 - tempo +123c: dw $12cf ; e8 - tempo fade +123e: dw $0f4b ; e9 - global transpose +1440: dw $0f52 ; ea - per-voice transpose +1442: dw $1145 ; eb +1444: dw $1153 ; ec +1446: dw $118a ; ed - volume +1448: dw $1197 ; ee - volume fade +144a: dw $0c45 ; ef - call subroutine +144c: dw $1138 ; f0 - vibrato fade +144e: dw $0f7f ; f1 - pitch envelope +1450: dw $0f9c ; f2 +1452: dw $0f98 ; f3 - pitch envelope off +1454: dw $0f5a ; f4 - tuning +1456: dw $135d ; f5 - echo vbits/volume +1458: dw $1351 ; f6 - disable echo +145a: dw $1373 ; f7 - set echo params +145c: dw $13e8 ; f8 +145e: dw $0cd9 ; f9 +1460: dw $0ccc ; fa +1462: dw $0ce7 ; fb - nop +1464: dw $0ce7 ; fc - nop +1466: dw $0ce7 ; fd - nop +1468: dw $0ce7 ; fe - nop +146a: dw $0ce7 ; ff - nop + +; vcmd lengths +146c: db $01,$01,$02,$03,$00,$01,$02,$01 ; e0-e7 +1474: db $02,$01,$01,$01,$00,$01,$02,$03 ; e8-ef +147c: db $01,$03,$01,$00,$01,$03,$00,$03 ; f0-f7 +1484: db $02,$01,$01,$00,$00,$00,$00,$00 ; f8-ff + +148c: db $2c,$3c,$0d,$4d,$6c,$4c,$5c,$3d +1494: db $2d,$5c,$21,$22,$26,$29,$25,$23 +149c: db $08,$28,$27,$24 + +; pitch table +14a0: dw $085f +14a2: dw $0867 +14a4: dw $086e +14a6: dw $0876 +14a8: dw $087e +14aa: dw $0886 +14ac: dw $088e +14ae: dw $0896 +14b0: dw $089e +14b2: dw $08a6 +14b4: dw $08ae +14b6: dw $08b6 +14b8: dw $08be +14ba: dw $08c6 +14bc: dw $08ce +14be: dw $08d6 +14c0: dw $08de +14c2: dw $08e7 +14c4: dw $08ef +14c6: dw $08f7 +14c8: dw $08ff +14ca: dw $0908 +14cc: dw $0910 +14ce: dw $0918 +14d0: dw $0921 +14d2: dw $0929 +14d4: dw $0932 +14d6: dw $093a +14d8: dw $0943 +14da: dw $094b +14dc: dw $0954 +14de: dw $095d +14e0: dw $0965 +14e2: dw $096e +14e4: dw $0977 +14e6: dw $0980 +14e8: dw $0988 +14ea: dw $0991 +14ec: dw $099a +14ee: dw $09a3 +14f0: dw $09ac +14f2: dw $09b5 +14f4: dw $09be +14f6: dw $09c7 +14f8: dw $09d0 +14fa: dw $09d9 +14fc: dw $09e2 +14fe: dw $09eb +1500: dw $09f4 +1502: dw $09fe +1504: dw $0a07 +1506: dw $0a10 +1508: dw $0a19 +150a: dw $0a23 +150c: dw $0a2c +150e: dw $0a36 +1510: dw $0a3f +1512: dw $0a49 +1514: dw $0a52 +1516: dw $0a5c +1518: dw $0a65 +151a: dw $0a6f +151c: dw $0a79 +151e: dw $0a82 +1520: dw $0a8c +1522: dw $0a96 +1524: dw $0aa0 +1526: dw $0aa9 +1528: dw $0ab3 +152a: dw $0abd +152c: dw $0ac7 +152e: dw $0ad1 +1530: dw $0adb +1532: dw $0ae5 +1534: dw $0aef +1536: dw $0af9 +1538: dw $0b03 +153a: dw $0b0e +153c: dw $0b18 +153e: dw $0b22 +1540: dw $0b2c +1542: dw $0b37 +1544: dw $0b41 +1546: dw $0b4c +1548: dw $0b56 +154a: dw $0b61 +154c: dw $0b6b +154e: dw $0b76 +1550: dw $0b80 +1552: dw $0b8b +1554: dw $0b96 +1556: dw $0ba0 +1558: dw $0bab +155a: dw $0bb6 +155c: dw $0bc1 +155e: dw $0bcc +1560: dw $0bd7 +1562: dw $0be2 +1564: dw $0bed +1566: dw $0bf8 +1568: dw $0c03 +156a: dw $0c0e +156c: dw $0c19 +156e: dw $0c24 +1570: dw $0c2f +1572: dw $0c3b +1574: dw $0c46 +1576: dw $0c51 +1578: dw $0c5d +157a: dw $0c68 +157c: dw $0c74 +157e: dw $0c7f +1580: dw $0c8b +1582: dw $0c96 +1584: dw $0ca2 +1586: dw $0cae +1588: dw $0cba +158a: dw $0cc5 +158c: dw $0cd1 +158e: dw $0cdd +1590: dw $0ce9 +1592: dw $0cf5 +1594: dw $0d01 +1596: dw $0d0d +1598: dw $0d19 +159a: dw $0d25 +159c: dw $0d31 +159e: dw $0d3d +15a0: dw $0d4a +15a2: dw $0d56 +15a4: dw $0d62 +15a6: dw $0d6f +15a8: dw $0d7b +15aa: dw $0d88 +15ac: dw $0d94 +15ae: dw $0da1 +15b0: dw $0dad +15b2: dw $0dba +15b4: dw $0dc7 +15b6: dw $0dd4 +15b8: dw $0de0 +15ba: dw $0ded +15bc: dw $0dfa +15be: dw $0e07 +15c0: dw $0e14 +15c2: dw $0e21 +15c4: dw $0e2e +15c6: dw $0e3b +15c8: dw $0e48 +15ca: dw $0e56 +15cc: dw $0e63 +15ce: dw $0e70 +15d0: dw $0e7e +15d2: dw $0e8b +15d4: dw $0e98 +15d6: dw $0ea6 +15d8: dw $0eb4 +15da: dw $0ec1 +15dc: dw $0ecf +15de: dw $0edd +15e0: dw $0eea +15e2: dw $0ef8 +15e4: dw $0f06 +15e6: dw $0f14 +15e8: dw $0f22 +15ea: dw $0f30 +15ec: dw $0f3e +15ee: dw $0f4c +15f0: dw $0f5a +15f2: dw $0f68 +15f4: dw $0f77 +15f6: dw $0f85 +15f8: dw $0f93 +15fa: dw $0fa2 +15fc: dw $0fb0 +15fe: dw $0fbf +1600: dw $0fcd +1602: dw $0fdc +1604: dw $0feb +1606: dw $0ff9 +1608: dw $1008 +160a: dw $1017 +160c: dw $1026 +160e: dw $1035 +1610: dw $1044 +1612: dw $1053 +1614: dw $1062 +1616: dw $1071 +1618: dw $1080 +161a: dw $1090 +161c: dw $109f +161e: dw $10ae +1620: dw $10be + +1622: db $0c,$a4,$0c,$a1,$0b,$90,$0a,$a4 +162a: db $0b,$90,$0a,$a1,$0e,$b0,$2e,$b9 +1632: db $0e,$b0,$2f,$b9,$0f,$a4,$30,$b9 +163a: db $31,$b9,$0d,$ad,$0d,$a4,$32,$b9 +1642: db $33,$b9,$11,$98,$11,$ad,$11,$b0 +164a: db $20,$b9,$21,$b9,$22,$b9,$23,$b9 +1652: db $24,$b9,$25,$b9,$26,$b9,$27,$b9 +165a: db $10,$a4,$10,$ad,$28,$b9,$29,$b9 +1662: db $2a,$b9,$2b,$b9,$2c,$b9,$2d,$b9 + +166a: db $7f,$00,$00,$00,$00,$00,$00,$00 +1672: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c +167a: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 +1682: db $34,$33,$00,$d9,$e5,$01,$fc,$eb +168a: db $ff,$08,$17,$24,$24,$17,$08,$ff +1692: db $7f,$00,$00,$00,$00,$00,$00,$00 +169a: db $7f,$00,$00,$00,$00,$00,$00,$00 +16a2: db $7f,$00,$00,$00,$00,$00,$00,$00 + +16aa: db $ff,$f7,$ef,$e7,$e0,$d7,$cf,$c7 +16b2: db $bf,$b6,$ad,$a4,$9b,$92,$89,$80 +16ba: db $80,$77,$6e,$65,$5c,$53,$4a,$41 +16c2: db $38,$30,$28,$20,$18,$10,$08,$00 +16ca: db $cc,$16,$d0,$16,$00,$00,$e0,$16 +16d2: db $e0,$16,$e0,$16,$e0,$16,$e0,$16 +16da: db $e0,$16,$e0,$16,$e0,$16,$e5,$64 + +16e2: db $ed,$00,$e1,$0f,$60,$c9 diff --git a/snes/NSPC/Make Software/Bill Laimbeer's Combat Basketball ($0800).bin b/snes/NSPC/Make Software/Bill Laimbeer's Combat Basketball ($0800).bin new file mode 100644 index 00000000..1b406591 Binary files /dev/null and b/snes/NSPC/Make Software/Bill Laimbeer's Combat Basketball ($0800).bin differ diff --git a/snes/NSPC/Make Software/Bill Laimbeer's Combat Basketball.s b/snes/NSPC/Make Software/Bill Laimbeer's Combat Basketball.s new file mode 100644 index 00000000..b1c06b0f --- /dev/null +++ b/snes/NSPC/Make Software/Bill Laimbeer's Combat Basketball.s @@ -0,0 +1,1625 @@ +0800: 20 clrp +0801: cd cf mov x,#$cf +0803: bd mov sp,x +0804: e8 00 mov a,#$00 +0806: 5d mov x,a +0807: af mov (x)+,a +0808: c8 f0 cmp x,#$f0 +080a: d0 fb bne $0807 +080c: 40 setp +080d: e8 00 mov a,#$00 +080f: 5d mov x,a +0810: af mov (x)+,a +0811: c8 d0 cmp x,#$d0 +0813: d0 fb bne $0810 +0815: 20 clrp +0816: e8 02 mov a,#$02 +0818: c4 15 mov $15,a +081a: e8 00 mov a,#$00 +081c: c4 14 mov $14,a +081e: 6d push y +081f: d7 14 mov ($14)+y,a +0821: ab 14 inc $14 +0823: d0 fa bne $081f +0825: ab 15 inc $15 +0827: 2d push a +0828: e4 15 mov a,$15 +082a: 68 08 cmp a,#$08 +082c: ae pop a +082d: d0 f0 bne $081f +082f: ee pop y +0830: e8 01 mov a,#$01 +0832: 3f f4 0d call $0df4 +0835: a2 48 set5 $48 +0837: e8 60 mov a,#$60 +0839: 8d 0c mov y,#$0c +083b: 3f 54 0a call $0a54 +083e: 8d 1c mov y,#$1c +0840: 3f 54 0a call $0a54 +0843: e8 4c mov a,#$4c +0845: 8d 5d mov y,#$5d +0847: 3f 54 0a call $0a54 +084a: e8 f0 mov a,#$f0 +084c: c5 f1 00 mov $00f1,a +084f: e8 10 mov a,#$10 +0851: c5 fa 00 mov $00fa,a +0854: c4 53 mov $53,a +0856: e8 01 mov a,#$01 +0858: c5 f1 00 mov $00f1,a +085b: e8 00 mov a,#$00 +085d: 8d 07 mov y,#$07 +085f: d6 00 05 mov $0500+y,a +0862: dc dec y +0863: 10 fa bpl $085f +0865: e4 1b mov a,$1b +0867: d0 54 bne $08bd +0869: 8d 0a mov y,#$0a +086b: ad 05 cmp y,#$05 +086d: f0 07 beq $0876 +086f: b0 08 bcs $0879 +0871: 69 4d 4c cmp ($4c),($4d) +0874: d0 11 bne $0887 +0876: e3 4c 0e bbs7 $4c,$0887 +0879: f6 b9 12 mov a,$12b9+y +087c: c5 f2 00 mov $00f2,a +087f: f6 c3 12 mov a,$12c3+y +0882: 5d mov x,a +0883: e6 mov a,(x) +0884: c5 f3 00 mov $00f3,a +0887: fe e2 dbnz y,$086b +0889: cb 45 mov $45,y +088b: cb 46 mov $46,y +088d: e4 18 mov a,$18 +088f: 44 19 eor a,$19 +0891: 5c lsr a +0892: 5c lsr a +0893: ed notc +0894: 6b 18 ror $18 +0896: 6b 19 ror $19 +0898: ec fd 00 mov y,$00fd +089b: f0 fb beq $0898 +089d: 6d push y +089e: e8 20 mov a,#$20 +08a0: cf mul ya +08a1: 60 clrc +08a2: 84 43 adc a,$43 +08a4: c4 43 mov $43,a +08a6: 90 07 bcc $08af +08a8: 69 4d 4c cmp ($4c),($4d) +08ab: f0 02 beq $08af +08ad: ab 4c inc $4c +08af: 3f 7f 13 call $137f +08b2: e4 53 mov a,$53 +08b4: ee pop y +08b5: cf mul ya +08b6: 60 clrc +08b7: 84 51 adc a,$51 +08b9: c4 51 mov $51,a +08bb: 90 10 bcc $08cd +08bd: 3f 35 13 call $1335 +08c0: 3f c6 0a call $0ac6 +08c3: 3f 64 13 call $1364 +08c6: cd 00 mov x,#$00 +08c8: 3f e6 08 call $08e6 +08cb: 2f 98 bra $0865 +08cd: e4 04 mov a,$04 +08cf: f0 12 beq $08e3 +08d1: cd 00 mov x,#$00 +08d3: 8f 01 47 mov $47,#$01 +08d6: f4 31 mov a,$31+x +08d8: f0 03 beq $08dd +08da: 3f e2 11 call $11e2 +08dd: 3d inc x +08de: 3d inc x +08df: 0b 47 asl $47 +08e1: d0 f3 bne $08d6 +08e3: 5f 65 08 jmp $0865 + +08e6: f4 04 mov a,$04+x +08e8: d5 f4 00 mov $00f4+x,a +08eb: f5 f4 00 mov a,$00f4+x +08ee: 75 f4 00 cmp a,$00f4+x +08f1: d0 f8 bne $08eb +08f3: d4 00 mov $00+x,a +08f5: 6f ret + +08f6: ad ca cmp y,#$ca +08f8: 90 05 bcc $08ff +08fa: 3f 45 0c call $0c45 +08fd: 8d a4 mov y,#$a4 +08ff: ad c8 cmp y,#$c8 +0901: b0 f2 bcs $08f5 +0903: e4 1a mov a,$1a +0905: 24 47 and a,$47 +0907: d0 ec bne $08f5 +0909: dd mov a,y +090a: 28 7f and a,#$7f +090c: 60 clrc +090d: 84 50 adc a,$50 +090f: 60 clrc +0910: 95 f0 02 adc a,$02f0+x +0913: d5 61 03 mov $0361+x,a +0916: f5 81 03 mov a,$0381+x +0919: d5 60 03 mov $0360+x,a +091c: f5 b1 02 mov a,$02b1+x +091f: 5c lsr a +0920: e8 00 mov a,#$00 +0922: 7c ror a +0923: d5 a0 02 mov $02a0+x,a +0926: e8 00 mov a,#$00 +0928: d4 b0 mov $b0+x,a +092a: d5 00 01 mov $0100+x,a +092d: d5 d0 02 mov $02d0+x,a +0930: d4 c0 mov $c0+x,a +0932: 09 47 5e or ($5e),($47) +0935: 09 47 45 or ($45),($47) +0938: f5 80 02 mov a,$0280+x +093b: d4 a0 mov $a0+x,a +093d: f0 1e beq $095d +093f: f5 81 02 mov a,$0281+x +0942: d4 a1 mov $a1+x,a +0944: f5 90 02 mov a,$0290+x +0947: d0 0a bne $0953 +0949: f5 61 03 mov a,$0361+x +094c: 80 setc +094d: b5 91 02 sbc a,$0291+x +0950: d5 61 03 mov $0361+x,a +0953: f5 91 02 mov a,$0291+x +0956: 60 clrc +0957: 95 61 03 adc a,$0361+x +095a: 3f 6c 0e call $0e6c +095d: 3f 84 0e call $0e84 +0960: 8d 00 mov y,#$00 +0962: e4 11 mov a,$11 +0964: 80 setc +0965: a8 34 sbc a,#$34 +0967: b0 09 bcs $0972 +0969: e4 11 mov a,$11 +096b: 80 setc +096c: a8 13 sbc a,#$13 +096e: b0 06 bcs $0976 +0970: dc dec y +0971: 1c asl a +0972: 7a 10 addw ya,$10 +0974: da 10 movw $10,ya +0976: 4d push x +0977: e4 11 mov a,$11 +0979: 1c asl a +097a: 8d 00 mov y,#$00 +097c: cd 18 mov x,#$18 +097e: 9e div ya,x +097f: 5d mov x,a +0980: f6 d1 12 mov a,$12d1+y +0983: c4 15 mov $15,a +0985: f6 d0 12 mov a,$12d0+y +0988: c4 14 mov $14,a +098a: f6 d3 12 mov a,$12d3+y +098d: 2d push a +098e: f6 d2 12 mov a,$12d2+y +0991: ee pop y +0992: 9a 14 subw ya,$14 +0994: eb 10 mov y,$10 +0996: cf mul ya +0997: dd mov a,y +0998: 8d 00 mov y,#$00 +099a: 7a 14 addw ya,$14 +099c: cb 15 mov $15,y +099e: c4 14 mov $14,a +09a0: d8 2c mov $2c,x +09a2: ce pop x +09a3: 4d push x +09a4: f5 11 02 mov a,$0211+x +09a7: 30 57 bmi $0a00 +09a9: 5d mov x,a +09aa: f5 80 50 mov a,$5080+x +09ad: f0 51 beq $0a00 +09af: c4 2d mov $2d,a +09b1: e4 11 mov a,$11 +09b3: 1c asl a +09b4: 8d 00 mov y,#$00 +09b6: cd 18 mov x,#$18 +09b8: 9e div ya,x +09b9: e4 2d mov a,$2d +09bb: 30 1c bmi $09d9 +09bd: f6 d1 12 mov a,$12d1+y +09c0: c4 17 mov $17,a +09c2: f6 d0 12 mov a,$12d0+y +09c5: c4 16 mov $16,a +09c7: f6 d3 12 mov a,$12d3+y +09ca: 2d push a +09cb: f6 d2 12 mov a,$12d2+y +09ce: ee pop y +09cf: 9a 16 subw ya,$16 +09d1: eb 2d mov y,$2d +09d3: cf mul ya +09d4: dd mov a,y +09d5: 8d 00 mov y,#$00 +09d7: 2f 21 bra $09fa +09d9: f6 cf 12 mov a,$12cf+y +09dc: c4 17 mov $17,a +09de: f6 ce 12 mov a,$12ce+y +09e1: c4 16 mov $16,a +09e3: f6 d1 12 mov a,$12d1+y +09e6: 2d push a +09e7: f6 d0 12 mov a,$12d0+y +09ea: ee pop y +09eb: 9a 16 subw ya,$16 +09ed: fd mov y,a +09ee: e4 2d mov a,$2d +09f0: 48 ff eor a,#$ff +09f2: bc inc a +09f3: cf mul ya +09f4: dd mov a,y +09f5: 48 ff eor a,#$ff +09f7: bc inc a +09f8: 8d ff mov y,#$ff +09fa: 7a 14 addw ya,$14 +09fc: cb 15 mov $15,y +09fe: c4 14 mov $14,a +0a00: f8 2c mov x,$2c +0a02: e4 14 mov a,$14 +0a04: 5f 07 0a jmp $0a07 + +0a07: 1c asl a +0a08: 2b 15 rol $15 +0a0a: c4 14 mov $14,a +0a0c: 2f 04 bra $0a12 +0a0e: 4b 15 lsr $15 +0a10: 7c ror a +0a11: 3d inc x +0a12: c8 06 cmp x,#$06 +0a14: d0 f8 bne $0a0e +0a16: c4 14 mov $14,a +0a18: ce pop x +0a19: f5 20 02 mov a,$0220+x +0a1c: eb 15 mov y,$15 +0a1e: cf mul ya +0a1f: da 16 movw $16,ya +0a21: f5 20 02 mov a,$0220+x +0a24: eb 14 mov y,$14 +0a26: cf mul ya +0a27: 6d push y +0a28: f5 21 02 mov a,$0221+x +0a2b: eb 14 mov y,$14 +0a2d: cf mul ya +0a2e: 7a 16 addw ya,$16 +0a30: da 16 movw $16,ya +0a32: f5 21 02 mov a,$0221+x +0a35: eb 15 mov y,$15 +0a37: cf mul ya +0a38: fd mov y,a +0a39: ae pop a +0a3a: 7a 16 addw ya,$16 +0a3c: da 16 movw $16,ya +0a3e: 7d mov a,x +0a3f: 9f xcn a +0a40: 5c lsr a +0a41: 08 02 or a,#$02 +0a43: fd mov y,a +0a44: e4 16 mov a,$16 +0a46: 3f 4c 0a call $0a4c +0a49: fc inc y +0a4a: e4 17 mov a,$17 +0a4c: 2d push a +0a4d: e4 47 mov a,$47 +0a4f: 24 1a and a,$1a +0a51: ae pop a +0a52: d0 06 bne $0a5a +0a54: cc f2 00 mov $00f2,y +0a57: c5 f3 00 mov $00f3,a +0a5a: 6f ret + +0a5b: 3a 40 incw $40 +0a5d: e4 40 mov a,$40 +0a5f: 2d push a +0a60: e4 41 mov a,$41 +0a62: fd mov y,a +0a63: ae pop a +0a64: 1a 40 decw $40 +0a66: 6f ret + +0a67: 3f b8 13 call $13b8 +0a6a: 3f ea 12 call $12ea +0a6d: c4 08 mov $08,a +0a6f: c4 04 mov $04,a +0a71: 1c asl a +0a72: d0 03 bne $0a77 +0a74: 5f 5a 0b jmp $0b5a + +; play song in A +0a77: 5d mov x,a +0a78: f5 ff 13 mov a,$13ff+x +0a7b: fd mov y,a +0a7c: f5 fe 13 mov a,$13fe+x +0a7f: da 40 movw $40,ya +0a81: 8f 02 0c mov $0c,#$02 +0a84: 8d 00 mov y,#$00 +0a86: f7 40 mov a,($40)+y +0a88: c4 16 mov $16,a +0a8a: e4 1a mov a,$1a +0a8c: 48 ff eor a,#$ff +0a8e: 24 16 and a,$16 +0a90: 0e 46 00 tset1 $0046 +0a93: e4 16 mov a,$16 +0a95: 8d 00 mov y,#$00 +0a97: 5c lsr a +0a98: 90 07 bcc $0aa1 +0a9a: 2d push a +0a9b: e8 00 mov a,#$00 +0a9d: d6 19 05 mov $0519+y,a +0aa0: ae pop a +0aa1: fc inc y +0aa2: fc inc y +0aa3: ad 10 cmp y,#$10 +0aa5: 90 f0 bcc $0a97 +0aa7: cd 0e mov x,#$0e +0aa9: 8f 80 47 mov $47,#$80 +0aac: 6d push y +0aad: 8d 00 mov y,#$00 +0aaf: f7 40 mov a,($40)+y +0ab1: ee pop y +0ab2: 24 47 and a,$47 +0ab4: f0 03 beq $0ab9 +0ab6: 3f 00 f8 call $f800 +0ab9: 1d dec x +0aba: 1d dec x +0abb: 4b 47 lsr $47 +0abd: d0 ed bne $0aac +0abf: 3f 2d f8 call $f82d +0ac2: 5f fa 0a jmp $0afa + +0ac5: 6f ret + +0ac6: eb 08 mov y,$08 +0ac8: e4 00 mov a,$00 +0aca: c4 08 mov $08,a +0acc: d0 07 bne $0ad5 +0ace: 7e 00 cmp y,$00 +0ad0: f0 03 beq $0ad5 +0ad2: 5f b2 13 jmp $13b2 + +0ad5: 68 ff cmp a,#$ff +0ad7: f0 8e beq $0a67 +0ad9: 68 f0 cmp a,#$f0 +0adb: d0 06 bne $0ae3 +0add: e8 ff mov a,#$ff +0adf: c4 16 mov $16,a +0ae1: 2f a7 bra $0a8a +0ae3: 68 f1 cmp a,#$f1 +0ae5: f0 0c beq $0af3 +0ae7: 65 ff 13 cmp a,$13ff +0aea: b0 07 bcs $0af3 +0aec: 7e 00 cmp y,$00 +0aee: f0 03 beq $0af3 +0af0: 5f 6f 0a jmp $0a6f + +0af3: e4 04 mov a,$04 +0af5: f0 ce beq $0ac5 +0af7: 5f 5a 0b jmp $0b5a + +0afa: 3f 5b 0a call $0a5b +0afd: da 16 movw $16,ya +0aff: 8d 0f mov y,#$0f +0b01: 8f 80 47 mov $47,#$80 +0b04: 6d push y +0b05: 8d 00 mov y,#$00 +0b07: f7 40 mov a,($40)+y +0b09: ee pop y +0b0a: 24 47 and a,$47 +0b0c: d0 08 bne $0b16 +0b0e: 4b 47 lsr $47 +0b10: dc dec y +0b11: dc dec y +0b12: 10 f0 bpl $0b04 +0b14: 2f 16 bra $0b2c +0b16: f7 16 mov a,($16)+y +0b18: d6 30 00 mov $0030+y,a +0b1b: d6 08 05 mov $0508+y,a +0b1e: dc dec y +0b1f: f7 16 mov a,($16)+y +0b21: d6 30 00 mov $0030+y,a +0b24: d6 08 05 mov $0508+y,a +0b27: 4b 47 lsr $47 +0b29: dc dec y +0b2a: 10 d8 bpl $0b04 +0b2c: cd 00 mov x,#$00 +0b2e: 8f 01 47 mov $47,#$01 +0b31: 6d push y +0b32: 8d 00 mov y,#$00 +0b34: f7 40 mov a,($40)+y +0b36: ee pop y +0b37: 24 47 and a,$47 +0b39: f0 19 beq $0b54 +0b3b: f4 31 mov a,$31+x +0b3d: f0 0a beq $0b49 +0b3f: f5 11 02 mov a,$0211+x +0b42: d0 05 bne $0b49 +0b44: e8 00 mov a,#$00 +0b46: 3f 45 0c call $0c45 +0b49: e8 00 mov a,#$00 +0b4b: d4 80 mov $80+x,a +0b4d: d4 90 mov $90+x,a +0b4f: d4 91 mov $91+x,a +0b51: bc inc a +0b52: d4 70 mov $70+x,a +0b54: 3d inc x +0b55: 3d inc x +0b56: 0b 47 asl $47 +0b58: d0 d7 bne $0b31 +0b5a: cd 00 mov x,#$00 +0b5c: d8 5e mov $5e,x +0b5e: 8f 01 47 mov $47,#$01 +0b61: d8 44 mov $44,x +0b63: f4 31 mov a,$31+x +0b65: f0 6f beq $0bd6 +0b67: 9b 70 dec $70+x +0b69: d0 61 bne $0bcc +0b6b: 3f 3b 0c call $0c3b +0b6e: d0 0d bne $0b7d +0b70: e8 00 mov a,#$00 +0b72: d4 31 mov $31+x,a +0b74: e4 47 mov a,$47 +0b76: 8d 5c mov y,#$5c +0b78: 3f 54 0a call $0a54 +0b7b: 2f 59 bra $0bd6 +; vcmd branches +0b7d: 30 20 bmi $0b9f +0b7f: d5 00 02 mov $0200+x,a +0b82: 3f 3b 0c call $0c3b +0b85: 30 18 bmi $0b9f +0b87: 2d push a +0b88: 9f xcn a +0b89: 28 07 and a,#$07 +0b8b: fd mov y,a +0b8c: f6 00 50 mov a,$5000+y +0b8f: d5 01 02 mov $0201+x,a +0b92: ae pop a +0b93: 28 0f and a,#$0f +0b95: fd mov y,a +0b96: f6 08 50 mov a,$5008+y +0b99: d5 10 02 mov $0210+x,a +0b9c: 3f 3b 0c call $0c3b +; vcmd branches 80-ff +0b9f: 68 de cmp a,#$de +0ba1: 90 05 bcc $0ba8 +0ba3: 3f 29 0c call $0c29 +0ba6: 2f c3 bra $0b6b +; vcmds 80-dd - note +0ba8: f5 00 04 mov a,$0400+x +0bab: 04 1b or a,$1b +0bad: d0 04 bne $0bb3 +0baf: dd mov a,y +0bb0: 3f f6 08 call $08f6 +0bb3: f5 00 02 mov a,$0200+x +0bb6: d4 70 mov $70+x,a +0bb8: fd mov y,a +0bb9: 2d push a +0bba: f5 19 05 mov a,$0519+x +0bbd: ae pop a +0bbe: d0 08 bne $0bc8 +0bc0: f5 01 02 mov a,$0201+x +0bc3: cf mul ya +0bc4: dd mov a,y +0bc5: d0 01 bne $0bc8 +0bc7: bc inc a +0bc8: d4 71 mov $71+x,a +0bca: 2f 07 bra $0bd3 +0bcc: e4 1b mov a,$1b +0bce: d0 06 bne $0bd6 +0bd0: 3f e6 10 call $10e6 +0bd3: 3f 4c 0e call $0e4c +0bd6: 3d inc x +0bd7: 3d inc x +0bd8: 0b 47 asl $47 +0bda: d0 85 bne $0b61 +0bdc: e4 54 mov a,$54 +0bde: f0 0b beq $0beb +0be0: ba 56 movw ya,$56 +0be2: 7a 52 addw ya,$52 +0be4: 6e 54 02 dbnz $54,$0be9 +0be7: ba 54 movw ya,$54 +0be9: da 52 movw $52,ya +0beb: e4 68 mov a,$68 +0bed: f0 15 beq $0c04 +0bef: ba 64 movw ya,$64 +0bf1: 7a 60 addw ya,$60 +0bf3: da 60 movw $60,ya +0bf5: ba 66 movw ya,$66 +0bf7: 7a 62 addw ya,$62 +0bf9: 6e 68 06 dbnz $68,$0c02 +0bfc: ba 68 movw ya,$68 +0bfe: da 60 movw $60,ya +0c00: eb 6a mov y,$6a +0c02: da 62 movw $62,ya +0c04: e4 5a mov a,$5a +0c06: f0 0e beq $0c16 +0c08: ba 5c movw ya,$5c +0c0a: 7a 58 addw ya,$58 +0c0c: 6e 5a 02 dbnz $5a,$0c11 +0c0f: ba 5a movw ya,$5a +0c11: da 58 movw $58,ya +0c13: 8f ff 5e mov $5e,#$ff +0c16: cd 00 mov x,#$00 +0c18: 8f 01 47 mov $47,#$01 +0c1b: f4 31 mov a,$31+x +0c1d: f0 03 beq $0c22 +0c1f: 3f 2f 10 call $102f +0c22: 3d inc x +0c23: 3d inc x +0c24: 0b 47 asl $47 +0c26: d0 f3 bne $0c1b +0c28: 6f ret + +; dispatch vcmd in A (de-ff) +0c29: 1c asl a +0c2a: fd mov y,a +0c2b: f6 f0 0d mov a,$0df0+y +0c2e: 2d push a +0c2f: f6 ef 0d mov a,$0def+y +0c32: 2d push a +0c33: dd mov a,y +0c34: 5c lsr a +0c35: fd mov y,a +0c36: f6 8f 0e mov a,$0e8f+y +0c39: f0 08 beq $0c43 +; read new argument to A and Y +0c3b: e7 30 mov a,($30+x) +; advance reading pointer +0c3d: bb 30 inc $30+x +0c3f: d0 02 bne $0c43 +0c41: bb 31 inc $31+x +0c43: fd mov y,a +0c44: 6f ret + +; vcmd e0 - set instrument +0c45: d5 11 02 mov $0211+x,a +0c48: fd mov y,a +0c49: 10 06 bpl $0c51 +0c4b: 80 setc +0c4c: a8 ca sbc a,#$ca +0c4e: 60 clrc +0c4f: 84 5f adc a,$5f +0c51: 8d 06 mov y,#$06 +0c53: cf mul ya +0c54: da 14 movw $14,ya +0c56: 60 clrc +0c57: 98 00 14 adc $14,#$00 +0c5a: 98 4e 15 adc $15,#$4e +0c5d: e4 1a mov a,$1a +0c5f: 24 47 and a,$47 +0c61: d0 3a bne $0c9d +0c63: 4d push x +0c64: 7d mov a,x +0c65: 9f xcn a +0c66: 5c lsr a +0c67: 08 04 or a,#$04 +0c69: 5d mov x,a +0c6a: 8d 00 mov y,#$00 +0c6c: f7 14 mov a,($14)+y +0c6e: 10 0e bpl $0c7e +0c70: 28 1f and a,#$1f +0c72: 38 20 48 and $48,#$20 +0c75: 0e 48 00 tset1 $0048 +0c78: 09 47 49 or ($49),($47) +0c7b: dd mov a,y +0c7c: 2f 07 bra $0c85 +0c7e: e4 47 mov a,$47 +0c80: 4e 49 00 tclr1 $0049 +0c83: f7 14 mov a,($14)+y +0c85: c9 f2 00 mov $00f2,x +0c88: c5 f3 00 mov $00f3,a +0c8b: 3d inc x +0c8c: fc inc y +0c8d: ad 04 cmp y,#$04 +0c8f: d0 f2 bne $0c83 +0c91: ce pop x +0c92: f7 14 mov a,($14)+y +0c94: d5 21 02 mov $0221+x,a +0c97: fc inc y +0c98: f7 14 mov a,($14)+y +0c9a: d5 20 02 mov $0220+x,a +0c9d: 6f ret + +; vcmd e1 - pan +0c9e: d5 51 03 mov $0351+x,a +0ca1: 28 1f and a,#$1f +0ca3: d5 31 03 mov $0331+x,a +0ca6: e8 00 mov a,#$00 +0ca8: d5 30 03 mov $0330+x,a +0cab: 6f ret + +; vcmd e2 - pan fade +0cac: d4 91 mov $91+x,a +0cae: 2d push a +0caf: 3f 3b 0c call $0c3b +0cb2: d5 50 03 mov $0350+x,a +0cb5: 80 setc +0cb6: b5 31 03 sbc a,$0331+x +0cb9: ce pop x +0cba: 3f 8f 0e call $0e8f +0cbd: d5 40 03 mov $0340+x,a +0cc0: dd mov a,y +0cc1: d5 41 03 mov $0341+x,a +0cc4: 6f ret + +; vcmd e3 - vibrato on +0cc5: d5 b0 02 mov $02b0+x,a +0cc8: 3f 3b 0c call $0c3b +0ccb: d5 a1 02 mov $02a1+x,a +0cce: 3f 3b 0c call $0c3b +; vcmd e4 - vibrato off +0cd1: d4 b1 mov $b1+x,a +0cd3: d5 c1 02 mov $02c1+x,a +0cd6: e8 00 mov a,#$00 +0cd8: d5 b1 02 mov $02b1+x,a +0cdb: 6f ret + +; vcmd f0 - vibrato fade +0cdc: d5 b1 02 mov $02b1+x,a +0cdf: 2d push a +0ce0: 8d 00 mov y,#$00 +0ce2: f4 b1 mov a,$b1+x +0ce4: ce pop x +0ce5: 9e div ya,x +0ce6: f8 44 mov x,$44 +0ce8: d5 c0 02 mov $02c0+x,a +0ceb: 6f ret + +; vcmd e5 - master volume +0cec: e8 00 mov a,#$00 +0cee: da 58 movw $58,ya +0cf0: 6f ret + +; vcmd e6 - master volume fade +0cf1: c4 5a mov $5a,a +0cf3: 3f 3b 0c call $0c3b +0cf6: c4 5b mov $5b,a +0cf8: 80 setc +0cf9: a4 59 sbc a,$59 +0cfb: f8 5a mov x,$5a +0cfd: 3f 8f 0e call $0e8f +0d00: da 5c movw $5c,ya +0d02: 6f ret + +; vcmd e7 - tempo +0d03: e8 00 mov a,#$00 +0d05: da 52 movw $52,ya +0d07: 6f ret + +; vcmd e8 - tempo fade +0d08: c4 54 mov $54,a +0d0a: 3f 3b 0c call $0c3b +0d0d: c4 55 mov $55,a +0d0f: 80 setc +0d10: a4 53 sbc a,$53 +0d12: f8 54 mov x,$54 +0d14: 3f 8f 0e call $0e8f +0d17: da 56 movw $56,ya +0d19: 6f ret + +; vcmd e9 - global transpose +0d1a: c4 50 mov $50,a +0d1c: 6f ret + +; vcmd ea - per-voice transpose +0d1d: d5 f0 02 mov $02f0+x,a +0d20: 6f ret + +; vcmd eb - tremolo on +0d21: d5 e0 02 mov $02e0+x,a +0d24: 3f 3b 0c call $0c3b +0d27: d5 d1 02 mov $02d1+x,a +0d2a: 3f 3b 0c call $0c3b +; vcmd ec - tremolo off +0d2d: d4 c1 mov $c1+x,a +0d2f: 6f ret + +; vcmd f1 - pitch envelope (release) +0d30: e8 01 mov a,#$01 +0d32: 2f 02 bra $0d36 +; vcmd f2 - pitch envelope (attack) +0d34: e8 00 mov a,#$00 +0d36: d5 90 02 mov $0290+x,a +0d39: dd mov a,y +0d3a: d5 81 02 mov $0281+x,a +0d3d: 3f 3b 0c call $0c3b +0d40: d5 80 02 mov $0280+x,a +0d43: 3f 3b 0c call $0c3b +0d46: d5 91 02 mov $0291+x,a +0d49: 6f ret + +; vcmd f3 - pitch envelope off +0d4a: d5 80 02 mov $0280+x,a +0d4d: 6f ret + +; vcmd ed - volume +0d4e: d5 01 03 mov $0301+x,a +0d51: e8 00 mov a,#$00 +0d53: d5 00 03 mov $0300+x,a +0d56: 6f ret + +; vcmd ee - volume fade +0d57: d4 90 mov $90+x,a +0d59: 2d push a +0d5a: 3f 3b 0c call $0c3b +0d5d: d5 20 03 mov $0320+x,a +0d60: 80 setc +0d61: b5 01 03 sbc a,$0301+x +0d64: ce pop x +0d65: 3f 8f 0e call $0e8f +0d68: d5 10 03 mov $0310+x,a +0d6b: dd mov a,y +0d6c: d5 11 03 mov $0311+x,a +0d6f: 6f ret + +; vcmd f4 - tuning +0d70: d5 81 03 mov $0381+x,a +0d73: 6f ret + +; vcmd ef - call subroutine +0d74: d5 40 02 mov $0240+x,a +0d77: 3f 3b 0c call $0c3b +0d7a: d5 41 02 mov $0241+x,a +0d7d: 3f 3b 0c call $0c3b +0d80: d4 80 mov $80+x,a +0d82: f4 30 mov a,$30+x +0d84: d5 30 02 mov $0230+x,a +0d87: f4 31 mov a,$31+x +0d89: d5 31 02 mov $0231+x,a +0d8c: f5 40 02 mov a,$0240+x +0d8f: d4 30 mov $30+x,a +0d91: f5 41 02 mov a,$0241+x +0d94: d4 31 mov $31+x,a +0d96: 6f ret + +; vcmd f5 - echo vbits/volume +0d97: c4 4a mov $4a,a +0d99: 3f 3b 0c call $0c3b +0d9c: e8 00 mov a,#$00 +0d9e: da 60 movw $60,ya +0da0: 3f 3b 0c call $0c3b +0da3: e8 00 mov a,#$00 +0da5: da 62 movw $62,ya +0da7: b2 48 clr5 $48 +0da9: 6f ret + +; vcmd f8 - echo volume fade +0daa: c4 68 mov $68,a +0dac: 3f 3b 0c call $0c3b +0daf: c4 69 mov $69,a +0db1: 80 setc +0db2: a4 61 sbc a,$61 +0db4: f8 68 mov x,$68 +0db6: 3f 8f 0e call $0e8f +0db9: da 64 movw $64,ya +0dbb: 3f 3b 0c call $0c3b +0dbe: c4 6a mov $6a,a +0dc0: 80 setc +0dc1: a4 63 sbc a,$63 +0dc3: f8 68 mov x,$68 +0dc5: 3f 8f 0e call $0e8f +0dc8: da 66 movw $66,ya +0dca: 6f ret + +; vcmd f6 - disable echo +0dcb: da 60 movw $60,ya +0dcd: da 62 movw $62,ya +0dcf: a2 48 set5 $48 +0dd1: 6f ret + +; vcmd f7 - set echo params +0dd2: 3f f4 0d call $0df4 +0dd5: 3f 3b 0c call $0c3b +0dd8: c4 4e mov $4e,a +0dda: 3f 3b 0c call $0c3b +0ddd: 8d 08 mov y,#$08 +0ddf: cf mul ya +0de0: 5d mov x,a +0de1: 8d 0f mov y,#$0f +0de3: f5 9a 12 mov a,$129a+x +0de6: 3f 54 0a call $0a54 +0de9: 3d inc x +0dea: dd mov a,y +0deb: 60 clrc +0dec: 88 10 adc a,#$10 +0dee: fd mov y,a +0def: 10 f2 bpl $0de3 +0df1: f8 44 mov x,$44 +0df3: 6f ret + +0df4: c4 4d mov $4d,a +0df6: 8d 7d mov y,#$7d +0df8: cc f2 00 mov $00f2,y +0dfb: e5 f3 00 mov a,$00f3 +0dfe: 64 4d cmp a,$4d +0e00: f0 2b beq $0e2d +0e02: 28 0f and a,#$0f +0e04: 48 ff eor a,#$ff +0e06: f3 4c 03 bbc7 $4c,$0e0c +0e09: 60 clrc +0e0a: 84 4c adc a,$4c +0e0c: c4 4c mov $4c,a +0e0e: 8d 04 mov y,#$04 +0e10: f6 b9 12 mov a,$12b9+y +0e13: c5 f2 00 mov $00f2,a +0e16: e8 00 mov a,#$00 +0e18: c5 f3 00 mov $00f3,a +0e1b: fe f3 dbnz y,$0e10 +0e1d: e4 48 mov a,$48 +0e1f: 08 20 or a,#$20 +0e21: 8d 6c mov y,#$6c +0e23: 3f 54 0a call $0a54 +0e26: e4 4d mov a,$4d +0e28: 8d 7d mov y,#$7d +0e2a: 3f 54 0a call $0a54 +0e2d: 1c asl a +0e2e: 1c asl a +0e2f: 1c asl a +0e30: 48 ff eor a,#$ff +0e32: 80 setc +0e33: 88 f0 adc a,#$f0 +0e35: 8d 6d mov y,#$6d +0e37: 5f 54 0a jmp $0a54 + +; vcmd fa - set perc patch base +0e3a: c4 5f mov $5f,a +0e3c: 6f ret + +0e3d: 3f 3d 0c call $0c3d +0e40: 6f ret + +0e41: bc inc a +0e42: d5 00 04 mov $0400+x,a +0e45: 6f ret + +0e46: bc inc a +0e47: c4 1b mov $1b,a +0e49: 5f 8a 0a jmp $0a8a + +0e4c: f4 a0 mov a,$a0+x +0e4e: d0 33 bne $0e83 +0e50: e7 30 mov a,($30+x) +0e52: 68 f9 cmp a,#$f9 +0e54: d0 2d bne $0e83 +0e56: 3f 3d 0c call $0c3d +0e59: 3f 3b 0c call $0c3b +; vcmd f9 - pitch slide +0e5c: d4 a1 mov $a1+x,a +0e5e: 3f 3b 0c call $0c3b +0e61: d4 a0 mov $a0+x,a +0e63: 3f 3b 0c call $0c3b +0e66: 60 clrc +0e67: 84 50 adc a,$50 +0e69: 95 f0 02 adc a,$02f0+x +0e6c: 28 7f and a,#$7f +0e6e: d5 80 03 mov $0380+x,a +0e71: 80 setc +0e72: b5 61 03 sbc a,$0361+x +0e75: fb a0 mov y,$a0+x +0e77: 6d push y +0e78: ce pop x +0e79: 3f 8f 0e call $0e8f +0e7c: d5 70 03 mov $0370+x,a +0e7f: dd mov a,y +0e80: d5 71 03 mov $0371+x,a +0e83: 6f ret + +0e84: f5 61 03 mov a,$0361+x +0e87: c4 11 mov $11,a +0e89: f5 60 03 mov a,$0360+x +0e8c: c4 10 mov $10,a +0e8e: 6f ret + +0e8f: ed notc +0e90: 6b 12 ror $12 +0e92: 10 03 bpl $0e97 +0e94: 48 ff eor a,#$ff +0e96: bc inc a +0e97: 8d 00 mov y,#$00 +0e99: 9e div ya,x +0e9a: 2d push a +0e9b: e8 00 mov a,#$00 +0e9d: 9e div ya,x +0e9e: ee pop y +0e9f: f8 44 mov x,$44 +0ea1: f3 12 06 bbc7 $12,$0eaa +0ea4: da 14 movw $14,ya +0ea6: ba 0e movw ya,$0e +0ea8: 9a 14 subw ya,$14 +0eaa: 6f ret + +; vcmd dispatch table +0eab: dw $0f0e ; de - repeat start +0ead: dw $0f2c ; df - repeat end +0eaf: dw $0c45 ; e0 - set instrument +0eb1: dw $0c9e ; e1 - pan +0eb3: dw $0cac ; e2 - pan fade +0eb5: dw $0cc5 ; e3 - vibrato on +0eb7: dw $0cd1 ; e4 - vibrato off +0eb9: dw $0cec ; e5 - master volume +0ebb: dw $0cf1 ; e6 - master volume fade +0ebd: dw $0d03 ; e7 - tempo +0ebf: dw $0d08 ; e8 - tempo fade +0ec1: dw $0d1a ; e9 - global transpose +0ec3: dw $0d1d ; ea - per-voice transposes +0ec5: dw $0d21 ; eb - tremolo on +0ec7: dw $0d2d ; ec - tremolo off +0ec9: dw $0d4e ; ed - volume +0ecb: dw $0d57 ; ee - volume fade +0ecd: dw $0d74 ; ef - call subroutine +0ecf: dw $0cdc ; f0 - vibrato fade +0ed1: dw $0d30 ; f1 - pitch envelope (release) +0ed3: dw $0d34 ; f2 - pitch envelope (attack) +0ed5: dw $0d4a ; f3 - pitch envelope off +0ed7: dw $0d70 ; f4 - tuning +0ed9: dw $0d97 ; f5 - echo vbits/volume +0edb: dw $0dcb ; f6 - disable echo +0edd: dw $0dd2 ; f7 - set echo params +0edf: dw $0daa ; f8 - echo volume fade +0ee1: dw $0e5c ; f9 - pitch slide +0ee3: dw $0e3a ; fa - set perc patch base +0ee5: dw $0f50 ; fb - call subroutine (2) +0ee7: dw $0f72 ; fc - return from subroutine (2) +0ee9: dw $0f89 ; fd - song loop marker +0eeb: dw $0f9f ; fe - subcmd + +; vcmd lengths +0eed: db $01,$00,$01,$01,$02,$03,$00,$01 ; de-e5 +0ef5: db $02,$01,$02,$01,$01,$03,$00,$01 ; e6-ed +0efd: db $02,$03,$01,$03,$03,$00,$01,$03 ; ee-f5 +0f05: db $00,$03,$03,$03,$01,$02,$00,$00 ; f6-fd +0f0d: db $02 ; fe + +; vcmd de - repeat start +0f0e: 2d push a +0f0f: 3f 0b 10 call $100b +0f12: f5 30 00 mov a,$0030+x +0f15: d7 2c mov ($2c)+y,a +0f17: fc inc y +0f18: f5 31 00 mov a,$0031+x +0f1b: d7 2c mov ($2c)+y,a +0f1d: fc inc y +0f1e: ae pop a +0f1f: d7 2c mov ($2c)+y,a +0f21: fc inc y +0f22: 4d push x +0f23: 7d mov a,x +0f24: 5c lsr a +0f25: 5d mov x,a +0f26: dd mov a,y +0f27: d5 00 05 mov $0500+x,a +0f2a: ce pop x +0f2b: 6f ret + +; vcmd df - repeat end +0f2c: 3f 0b 10 call $100b +0f2f: dc dec y +0f30: f7 2c mov a,($2c)+y +0f32: 9c dec a +0f33: f0 0f beq $0f44 +0f35: d7 2c mov ($2c)+y,a +0f37: dc dec y +0f38: f7 2c mov a,($2c)+y +0f3a: d5 31 00 mov $0031+x,a +0f3d: dc dec y +0f3e: f7 2c mov a,($2c)+y +0f40: d5 30 00 mov $0030+x,a +0f43: 6f ret + +0f44: dc dec y +0f45: dc dec y +0f46: 4d push x +0f47: 7d mov a,x +0f48: 5c lsr a +0f49: 5d mov x,a +0f4a: dd mov a,y +0f4b: d5 00 05 mov $0500+x,a +0f4e: ce pop x +0f4f: 6f ret + +; vcmd fb - call subroutine (2) +0f50: 2d push a +0f51: 3f 3b 0c call $0c3b +0f54: 2d push a +0f55: 3f 0b 10 call $100b +0f58: f4 30 mov a,$30+x +0f5a: d7 2c mov ($2c)+y,a +0f5c: fc inc y +0f5d: f4 31 mov a,$31+x +0f5f: d7 2c mov ($2c)+y,a +0f61: fc inc y +0f62: ae pop a +0f63: d4 31 mov $31+x,a +0f65: ae pop a +0f66: d4 30 mov $30+x,a +0f68: 4d push x +0f69: 7d mov a,x +0f6a: 5c lsr a +0f6b: 5d mov x,a +0f6c: dd mov a,y +0f6d: d5 00 05 mov $0500+x,a +0f70: ce pop x +0f71: 6f ret + +; vcmd fc - return from subroutine (2) +0f72: 3f 0b 10 call $100b +0f75: dc dec y +0f76: f7 2c mov a,($2c)+y +0f78: d4 31 mov $31+x,a +0f7a: dc dec y +0f7b: f7 2c mov a,($2c)+y +0f7d: d4 30 mov $30+x,a +0f7f: 4d push x +0f80: 7d mov a,x +0f81: 5c lsr a +0f82: 5d mov x,a +0f83: dd mov a,y +0f84: d5 00 05 mov $0500+x,a +0f87: ce pop x +0f88: 6f ret + +; vcmd fd - song loop marker +0f89: f4 30 mov a,$30+x +0f8b: d5 08 05 mov $0508+x,a +0f8e: f4 31 mov a,$31+x +0f90: d5 09 05 mov $0509+x,a +0f93: 6f ret + +; subcmd 00 - go to song loop +0f94: f5 08 05 mov a,$0508+x +0f97: d4 30 mov $30+x,a +0f99: f5 09 05 mov a,$0509+x +0f9c: d4 31 mov $31+x,a +0f9e: 6f ret + +; vcmd fe - subcmd +0f9f: 1c asl a +0fa0: fd mov y,a +0fa1: f6 ae 0f mov a,$0fae+y +0fa4: 2d push a +0fa5: f6 ad 0f mov a,$0fad+y +0fa8: 2d push a +0fa9: 3f 3b 0c call $0c3b +0fac: 6f ret + +; subcmd dispatch table +0fad: dw $0f94 ; 00 - go to song loop +0faf: dw $0fb7 ; 01 +0fb1: dw $0fd4 ; 02 +0fb3: dw $0fff ; 03 +0fb5: dw $1005 ; 04 + +; subcmd 01 +0fb7: fd mov y,a +0fb8: 30 0c bmi $0fc6 +0fba: 60 clrc +0fbb: 95 f0 02 adc a,$02f0+x +0fbe: 68 19 cmp a,#$19 +0fc0: 90 0e bcc $0fd0 +0fc2: e8 18 mov a,#$18 +0fc4: 2f 0a bra $0fd0 +0fc6: 60 clrc +0fc7: 95 f0 02 adc a,$02f0+x +0fca: 68 e8 cmp a,#$e8 +0fcc: b0 02 bcs $0fd0 +0fce: e8 18 mov a,#$18 +0fd0: d5 f0 02 mov $02f0+x,a +0fd3: 6f ret + +; subcmd 02 +0fd4: fd mov y,a +0fd5: 30 0a bmi $0fe1 +0fd7: 60 clrc +0fd8: 95 01 03 adc a,$0301+x +0fdb: 90 19 bcc $0ff6 +0fdd: e8 ff mov a,#$ff +0fdf: 2f 15 bra $0ff6 +0fe1: 48 ff eor a,#$ff +0fe3: bc inc a +0fe4: 2d push a +0fe5: f5 01 03 mov a,$0301+x +0fe8: fd mov y,a +0fe9: ae pop a +0fea: d5 01 03 mov $0301+x,a +0fed: dd mov a,y +0fee: 80 setc +0fef: b5 01 03 sbc a,$0301+x +0ff2: b0 02 bcs $0ff6 +0ff4: e8 00 mov a,#$00 +0ff6: d5 01 03 mov $0301+x,a +0ff9: e8 00 mov a,#$00 +0ffb: d5 00 03 mov $0300+x,a +0ffe: 6f ret + +; subcmd 03 +0fff: e8 01 mov a,#$01 +1001: d5 19 05 mov $0519+x,a +1004: 6f ret + +; subcmd 04 +1005: e8 00 mov a,#$00 +1007: d5 19 05 mov $0519+x,a +100a: 6f ret + +100b: 4d push x +100c: 7d mov a,x +100d: 5c lsr a +100e: 5d mov x,a +100f: f5 1f 10 mov a,$101f+x +1012: c4 2c mov $2c,a +1014: f5 27 10 mov a,$1027+x +1017: c4 2d mov $2d,a +1019: f5 00 05 mov a,$0500+x +101c: fd mov y,a +101d: ce pop x +101e: 6f ret + +101f: 80 setc +1020: 90 a0 bcc $0fc2 +1022: b0 c0 bcs $0fe4 +1024: d0 e0 bne $1006 +1026: f0 04 beq $102c +1028: 04 04 or a,$04 +102a: 04 04 or a,$04 +102c: 04 04 or a,$04 +102e: 04 f4 or a,$f4 +1030: 90 f0 bcc $1022 +1032: 09 e8 00 or ($00),($e8) +1035: 8d 03 mov y,#$03 +1037: 9b 90 dec $90+x +1039: 3f c2 10 call $10c2 +103c: fb c1 mov y,$c1+x +103e: f0 23 beq $1063 +1040: f5 e0 02 mov a,$02e0+x +1043: de c0 1b cbne $c0+x,$1061 +1046: 09 47 5e or ($5e),($47) +1049: f5 d0 02 mov a,$02d0+x +104c: 10 07 bpl $1055 +104e: fc inc y +104f: d0 04 bne $1055 +1051: e8 80 mov a,#$80 +1053: 2f 04 bra $1059 +1055: 60 clrc +1056: 95 d1 02 adc a,$02d1+x +1059: d5 d0 02 mov $02d0+x,a +105c: 3f 68 12 call $1268 +105f: 2f 07 bra $1068 +1061: bb c0 inc $c0+x +1063: e8 ff mov a,#$ff +1065: 3f 73 12 call $1273 +1068: f4 91 mov a,$91+x +106a: f0 09 beq $1075 +106c: e8 30 mov a,#$30 +106e: 8d 03 mov y,#$03 +1070: 9b 91 dec $91+x +1072: 3f c2 10 call $10c2 +1075: e4 47 mov a,$47 +1077: 24 5e and a,$5e +1079: f0 46 beq $10c1 +107b: f5 31 03 mov a,$0331+x +107e: fd mov y,a +107f: f5 30 03 mov a,$0330+x +1082: da 10 movw $10,ya +1084: 7d mov a,x +1085: 9f xcn a +1086: 5c lsr a +1087: c4 12 mov $12,a +1089: eb 11 mov y,$11 +108b: f6 86 12 mov a,$1286+y +108e: 80 setc +108f: b6 85 12 sbc a,$1285+y +1092: eb 10 mov y,$10 +1094: cf mul ya +1095: dd mov a,y +1096: eb 11 mov y,$11 +1098: 60 clrc +1099: 96 85 12 adc a,$1285+y +109c: fd mov y,a +109d: f5 21 03 mov a,$0321+x +10a0: cf mul ya +10a1: f5 51 03 mov a,$0351+x +10a4: 1c asl a +10a5: 13 12 01 bbc0 $12,$10a9 +10a8: 1c asl a +10a9: dd mov a,y +10aa: 90 03 bcc $10af +10ac: 48 ff eor a,#$ff +10ae: bc inc a +10af: eb 12 mov y,$12 +10b1: 3f 4c 0a call $0a4c +10b4: 8d 14 mov y,#$14 +10b6: e8 00 mov a,#$00 +10b8: 9a 10 subw ya,$10 +10ba: da 10 movw $10,ya +10bc: ab 12 inc $12 +10be: 33 12 c8 bbc1 $12,$1089 +10c1: 6f ret + +10c2: 09 47 5e or ($5e),($47) +10c5: da 14 movw $14,ya +10c7: da 16 movw $16,ya +10c9: 4d push x +10ca: ee pop y +10cb: 60 clrc +10cc: d0 0a bne $10d8 +10ce: 98 1f 16 adc $16,#$1f +10d1: e8 00 mov a,#$00 +10d3: d7 14 mov ($14)+y,a +10d5: fc inc y +10d6: 2f 09 bra $10e1 +10d8: 98 10 16 adc $16,#$10 +10db: 3f df 10 call $10df +10de: fc inc y +10df: f7 14 mov a,($14)+y +10e1: 97 16 adc a,($16)+y +10e3: d7 14 mov ($14)+y,a +10e5: 6f ret + +10e6: f4 71 mov a,$71+x +10e8: d0 03 bne $10ed +10ea: 5f 72 11 jmp $1172 + +10ed: 9b 71 dec $71+x +10ef: f0 05 beq $10f6 +10f1: e8 02 mov a,#$02 +10f3: de 70 7c cbne $70+x,$1172 +10f6: f4 80 mov a,$80+x +10f8: c4 17 mov $17,a +10fa: f4 30 mov a,$30+x +10fc: fb 31 mov y,$31+x +10fe: da 14 movw $14,ya +1100: 8d 00 mov y,#$00 +1102: f7 14 mov a,($14)+y +1104: f0 2c beq $1132 +1106: 30 05 bmi $110d +1108: fc inc y +1109: f7 14 mov a,($14)+y +110b: 10 fb bpl $1108 +110d: 68 c8 cmp a,#$c8 +110f: f0 61 beq $1172 +1111: 68 ef cmp a,#$ef +1113: f0 34 beq $1149 +1115: 68 fb cmp a,#$fb +1117: f0 4d beq $1166 +1119: 68 fc cmp a,#$fc +111b: f0 49 beq $1166 +111d: 68 df cmp a,#$df +111f: f0 45 beq $1166 +1121: 68 fe cmp a,#$fe +1123: f0 41 beq $1166 +1125: 68 de cmp a,#$de +1127: 90 3d bcc $1166 +1129: 6d push y +112a: fd mov y,a +112b: ae pop a +112c: 96 0f 0e adc a,$0e0f+y +112f: fd mov y,a +1130: 2f d0 bra $1102 +1132: e4 17 mov a,$17 +1134: f0 30 beq $1166 +1136: 8b 17 dec $17 +1138: d0 0a bne $1144 +113a: f5 31 02 mov a,$0231+x +113d: 2d push a +113e: f5 30 02 mov a,$0230+x +1141: ee pop y +1142: 2f ba bra $10fe +1144: 3f 48 f8 call $f848 +1147: 2f b5 bra $10fe +1149: 3f 51 f8 call $f851 +114c: 2f b0 bra $10fe +114e: fc inc y +114f: f7 14 mov a,($14)+y +1151: d0 05 bne $1158 +1153: 3f 5b f8 call $f85b +1156: 2f a6 bra $10fe +1158: fc inc y +1159: fc inc y +115a: 2f a6 bra $1102 +115c: 3f 65 f8 call $f865 +115f: 2f 9d bra $10fe +1161: 3f 71 f8 call $f871 +1164: 2f 98 bra $10fe +1166: f5 19 05 mov a,$0519+x +1169: d0 07 bne $1172 +116b: e4 47 mov a,$47 +116d: 8d 5c mov y,#$5c +116f: 3f 4c 0a call $0a4c +1172: f2 13 clr7 $13 +1174: f4 a0 mov a,$a0+x +1176: f0 13 beq $118b +1178: f4 a1 mov a,$a1+x +117a: f0 04 beq $1180 +117c: 9b a1 dec $a1+x +117e: 2f 0b bra $118b +1180: e2 13 set7 $13 +1182: e8 60 mov a,#$60 +1184: 8d 03 mov y,#$03 +1186: 9b a0 dec $a0+x +1188: 3f c5 10 call $10c5 +118b: 3f 84 0e call $0e84 +118e: f4 b1 mov a,$b1+x +1190: f0 4c beq $11de +1192: f5 b0 02 mov a,$02b0+x +1195: de b0 44 cbne $b0+x,$11dc +1198: f5 00 01 mov a,$0100+x +119b: 75 b1 02 cmp a,$02b1+x +119e: d0 05 bne $11a5 +11a0: f5 c1 02 mov a,$02c1+x +11a3: 2f 0d bra $11b2 +11a5: 40 setp +11a6: bb 00 inc $00+x +11a8: 20 clrp +11a9: fd mov y,a +11aa: f0 02 beq $11ae +11ac: f4 b1 mov a,$b1+x +11ae: 60 clrc +11af: 95 c0 02 adc a,$02c0+x +11b2: d4 b1 mov $b1+x,a +11b4: f5 a0 02 mov a,$02a0+x +11b7: 60 clrc +11b8: 95 a1 02 adc a,$02a1+x +11bb: d5 a0 02 mov $02a0+x,a +11be: c4 12 mov $12,a +11c0: 1c asl a +11c1: 1c asl a +11c2: 90 02 bcc $11c6 +11c4: 48 ff eor a,#$ff +11c6: fd mov y,a +11c7: f4 b1 mov a,$b1+x +11c9: 68 f1 cmp a,#$f1 +11cb: 90 05 bcc $11d2 +11cd: 28 0f and a,#$0f +11cf: cf mul ya +11d0: 2f 04 bra $11d6 +11d2: cf mul ya +11d3: dd mov a,y +11d4: 8d 00 mov y,#$00 +11d6: 3f 53 12 call $1253 +11d9: 5f 60 09 jmp $0960 + +11dc: bb b0 inc $b0+x +11de: e3 13 f8 bbs7 $13,$11d9 +11e1: 6f ret + +11e2: f2 13 clr7 $13 +11e4: f4 c1 mov a,$c1+x +11e6: f0 09 beq $11f1 +11e8: f5 e0 02 mov a,$02e0+x +11eb: de c0 03 cbne $c0+x,$11f1 +11ee: 3f 5b 12 call $125b +11f1: f5 31 03 mov a,$0331+x +11f4: fd mov y,a +11f5: f5 30 03 mov a,$0330+x +11f8: da 10 movw $10,ya +11fa: f4 91 mov a,$91+x +11fc: f0 0a beq $1208 +11fe: f5 41 03 mov a,$0341+x +1201: fd mov y,a +1202: f5 40 03 mov a,$0340+x +1205: 3f 3d 12 call $123d +1208: f3 13 03 bbc7 $13,$120e +120b: 3f 84 10 call $1084 +120e: f2 13 clr7 $13 +1210: 3f 84 0e call $0e84 +1213: f4 a0 mov a,$a0+x +1215: f0 0e beq $1225 +1217: f4 a1 mov a,$a1+x +1219: d0 0a bne $1225 +121b: f5 71 03 mov a,$0371+x +121e: fd mov y,a +121f: f5 70 03 mov a,$0370+x +1222: 3f 3d 12 call $123d +1225: f4 b1 mov a,$b1+x +1227: f0 b5 beq $11de +1229: f5 b0 02 mov a,$02b0+x +122c: de b0 af cbne $b0+x,$11de +122f: eb 51 mov y,$51 +1231: f5 a1 02 mov a,$02a1+x +1234: cf mul ya +1235: dd mov a,y +1236: 60 clrc +1237: 95 a0 02 adc a,$02a0+x +123a: 5f be 11 jmp $11be + +123d: e2 13 set7 $13 +123f: cb 12 mov $12,y +1241: 3f a1 0e call $0ea1 +1244: 6d push y +1245: eb 51 mov y,$51 +1247: cf mul ya +1248: cb 14 mov $14,y +124a: 8f 00 15 mov $15,#$00 +124d: eb 51 mov y,$51 +124f: ae pop a +1250: cf mul ya +1251: 7a 14 addw ya,$14 +1253: 3f a1 0e call $0ea1 +1256: 7a 10 addw ya,$10 +1258: da 10 movw $10,ya +125a: 6f ret + +125b: e2 13 set7 $13 +125d: eb 51 mov y,$51 +125f: f5 d1 02 mov a,$02d1+x +1262: cf mul ya +1263: dd mov a,y +1264: 60 clrc +1265: 95 d0 02 adc a,$02d0+x +1268: 1c asl a +1269: 90 02 bcc $126d +126b: 48 ff eor a,#$ff +126d: fb c1 mov y,$c1+x +126f: cf mul ya +1270: dd mov a,y +1271: 48 ff eor a,#$ff +1273: eb 59 mov y,$59 +1275: cf mul ya +1276: f5 10 02 mov a,$0210+x +1279: cf mul ya +127a: f5 01 03 mov a,$0301+x +127d: cf mul ya +127e: dd mov a,y +127f: cf mul ya +1280: dd mov a,y +1281: d5 21 03 mov $0321+x,a +1284: 6f ret + +; pan table +1285: db $00,$01,$03,$07,$0d,$15,$1e,$29 +128d: db $34,$42,$51,$5e,$67,$6e,$73,$77 +1295: db $7a,$7c,$7d,$7e,$7f + +; echo FIR presets +129a: db $7f,$00,$00,$00,$00,$00,$00,$00 ; 00 +12a2: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c ; 01 +12aa: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 ; 02 +12b2: db $34,$33,$00,$d9,$e5,$01,$fc,$eb ; 03 + +; EVOL(L),EVOL(R),EFB,EON,FLG,KOL,KOF,NON,PMON,KOF +; dsp shadow addrs for dsp rgs +12ba: db $2c,$3c,$0d,$4d,$6c,$4c,$5c,$3d,$2d,$5c +12c4: db $61,$63,$4e,$4a,$48,$45,$0e,$49,$4b,$46 + +; pitch table +12ce: dw $0756 +12d0: dw $085f +12d2: dw $08de +12d4: dw $0965 +12d6: dw $09f4 +12d8: dw $0a8c +12da: dw $0b2c +12dc: dw $0bd6 +12de: dw $0c8b +12e0: dw $0d4a +12e2: dw $0e14 +12e4: dw $0eea +12e6: dw $0fcd +12e8: dw $10be +12ea: dw $0fcd + +12ec: e8 00 mov a,#$00 +12ee: d5 30 00 mov $0030+x,a +12f1: 1d dec x +12f2: 10 fa bpl $12ee +12f4: 3f b8 13 call $13b8 +12f7: e8 aa mov a,#$aa +12f9: c4 f4 mov $f4,a +12fb: e8 bb mov a,#$bb +12fd: c4 f5 mov $f5,a +12ff: e4 f4 mov a,$f4 +1301: 68 cc cmp a,#$cc +1303: d0 fa bne $12ff +1305: 2f 1b bra $1322 +1307: eb f4 mov y,$f4 +1309: d0 fc bne $1307 +130b: 7e f4 cmp y,$f4 +130d: d0 0d bne $131c +130f: e4 f5 mov a,$f5 +1311: cb f4 mov $f4,y +1313: d7 14 mov ($14)+y,a +1315: fc inc y +1316: d0 f3 bne $130b +1318: ab 15 inc $15 +131a: 2f ef bra $130b +131c: 10 ed bpl $130b +131e: 7e f4 cmp y,$f4 +1320: 10 e9 bpl $130b +1322: e4 f6 mov a,$f6 +1324: eb f7 mov y,$f7 +1326: da 14 movw $14,ya +1328: eb f4 mov y,$f4 +132a: e4 f5 mov a,$f5 +132c: cb f4 mov $f4,y +132e: d0 d7 bne $1307 +1330: cd 31 mov x,#$31 +1332: d8 f1 mov $f1,x +1334: 6f ret + +1335: e4 00 mov a,$00 +1337: 64 08 cmp a,$08 +1339: f0 0d beq $1348 +133b: e8 fe mov a,#$fe +133d: 64 00 cmp a,$00 +133f: d0 07 bne $1348 +1341: e4 00 mov a,$00 +1343: c4 08 mov $08,a +1345: 3f 49 13 call $1349 +1348: 6f ret + +1349: cd 01 mov x,#$01 +134b: 3f e6 08 call $08e6 +134e: c4 5a mov $5a,a +1350: e8 00 mov a,#$00 +1352: c4 5b mov $5b,a +1354: 80 setc +1355: a4 59 sbc a,$59 +1357: f8 5a mov x,$5a +1359: 3f 8f 0e call $0e8f +135c: da 5c movw $5c,ya +135e: e8 01 mov a,#$01 +1360: c5 18 05 mov $0518,a +1363: 6f ret + +1364: e5 18 05 mov a,$0518 +1367: f0 15 beq $137e +1369: e4 5a mov a,$5a +136b: d0 11 bne $137e +136d: e8 00 mov a,#$00 +136f: c5 18 05 mov $0518,a +1372: 3f b8 13 call $13b8 +1375: e8 00 mov a,#$00 +1377: cd 0f mov x,#$0f +1379: d4 30 mov $30+x,a +137b: 1d dec x +137c: 10 fb bpl $1379 +137e: 6f ret + +137f: 8d 0f mov y,#$0f +1381: 8f 80 47 mov $47,#$80 +1384: e8 00 mov a,#$00 +1386: 2d push a +1387: f6 30 00 mov a,$0030+y +138a: ae pop a +138b: f0 02 beq $138f +138d: 04 47 or a,$47 +138f: 4b 47 lsr $47 +1391: dc dec y +1392: dc dec y +1393: 10 f1 bpl $1386 +1395: 8d 00 mov y,#$00 +1397: 2d push a +1398: 28 2f and a,#$2f +139a: ae pop a +139b: f0 01 beq $139e +139d: fc inc y +139e: cc 29 05 mov $0529,y +13a1: cc f6 00 mov $00f6,y +13a4: 8d 00 mov y,#$00 +13a6: 28 c0 and a,#$c0 +13a8: f0 01 beq $13ab +13aa: fc inc y +13ab: cc 2a 05 mov $052a,y +13ae: cc f7 00 mov $00f7,y +13b1: 6f ret + +13b2: 3f b8 13 call $13b8 +13b5: 5f 7e f8 jmp $f87e + +13b8: e8 ff mov a,#$ff +13ba: 8d 5c mov y,#$5c +13bc: 3f 54 0a call $0a54 +13bf: 8d 09 mov y,#$09 +13c1: 2d push a +13c2: ae pop a +13c3: fe fc dbnz y,$13c1 +13c5: e8 00 mov a,#$00 +13c7: 8d 5c mov y,#$5c +13c9: 3f 54 0a call $0a54 +13cc: 6f ret + +; note dur%'s +5000: db $23,$42,$61,$80,$9f,$be,$dd,$ff +; per-note velocity values +5008: db $0c,$1c,$2c,$3c,$4c,$5c,$6c,$7c +5010: db $8c,$9c,$ac,$bc,$cc,$dc,$ec,$fc \ No newline at end of file diff --git a/snes/NSPC/Mint/Shodai Nekketsu Kouha Kunio-kun ($0440).bin b/snes/NSPC/Mint/Shodai Nekketsu Kouha Kunio-kun ($0440).bin new file mode 100644 index 00000000..2cfbc6df Binary files /dev/null and b/snes/NSPC/Mint/Shodai Nekketsu Kouha Kunio-kun ($0440).bin differ diff --git a/snes/NSPC/Mint/Shodai Nekketsu Kouha Kunio-kun.s b/snes/NSPC/Mint/Shodai Nekketsu Kouha Kunio-kun.s new file mode 100644 index 00000000..67e17837 --- /dev/null +++ b/snes/NSPC/Mint/Shodai Nekketsu Kouha Kunio-kun.s @@ -0,0 +1,1699 @@ +0440: 20 clrp +0441: cd cf mov x,#$cf +0443: bd mov sp,x +0444: e8 e0 mov a,#$e0 +0446: 8d 6c mov y,#$6c +0448: 3f 3a 10 call $103a +044b: e8 28 mov a,#$28 +044d: 8d 5d mov y,#$5d +044f: 3f 3a 10 call $103a +0452: e8 00 mov a,#$00 +0454: 5d mov x,a +0455: af mov (x)+,a +0456: c8 e0 cmp x,#$e0 +0458: d0 fb bne $0455 +045a: e8 20 mov a,#$20 +045c: c4 13 mov $13,a +045e: 8d 6c mov y,#$6c +0460: 3f 3a 10 call $103a +0463: 3f 65 0c call $0c65 +0466: e8 20 mov a,#$20 +0468: c5 fa 00 mov $00fa,a +046b: e8 01 mov a,#$01 +046d: c5 f1 00 mov $00f1,a +0470: 8d 50 mov y,#$50 +0472: e5 fd 00 mov a,$00fd +0475: f0 fb beq $0472 +0477: dc dec y +0478: d0 f8 bne $0472 +047a: 3f 23 0d call $0d23 +047d: 3f 57 0d call $0d57 +0480: e8 30 mov a,#$30 +0482: c5 f1 00 mov $00f1,a +0485: e8 20 mov a,#$20 +0487: c5 fa 00 mov $00fa,a +048a: e8 01 mov a,#$01 +048c: c5 f1 00 mov $00f1,a +048f: ec fd 00 mov y,$00fd +0492: f0 fb beq $048f +0494: 6d push y +0495: 3f c9 0c call $0cc9 +0498: 3f cd 04 call $04cd +049b: e4 18 mov a,$18 +049d: 48 ff eor a,#$ff +049f: 24 15 and a,$15 +04a1: 04 17 or a,$17 +04a3: 8d 5c mov y,#$5c +04a5: 3f 3a 10 call $103a +04a8: e8 00 mov a,#$00 +04aa: c4 15 mov $15,a +04ac: c4 17 mov $17,a +04ae: 3f bd 0c call $0cbd +04b1: 3f db 0f call $0fdb +04b4: e4 18 mov a,$18 +04b6: 48 ff eor a,#$ff +04b8: 24 14 and a,$14 +04ba: 04 16 or a,$16 +04bc: 8d 4c mov y,#$4c +04be: 3f 3a 10 call $103a +04c1: e8 00 mov a,#$00 +04c3: c4 14 mov $14,a +04c5: c4 16 mov $16,a +04c7: ee pop y +04c8: dc dec y +04c9: d0 c9 bne $0494 +04cb: 2f c2 bra $048f +04cd: 3f 52 0f call $0f52 +04d0: e4 0c mov a,$0c +04d2: f0 1c beq $04f0 +04d4: e4 24 mov a,$24 +04d6: 60 clrc +04d7: 84 25 adc a,$25 +04d9: c4 25 mov $25,a +04db: 90 13 bcc $04f0 +04dd: 03 0f 10 bbs0 $0f,$04f0 +04e0: cd 00 mov x,#$00 +04e2: 8f 01 12 mov $12,#$01 +04e5: 3f 41 05 call $0541 +04e8: 3d inc x +04e9: 0b 12 asl $12 +04eb: d0 f8 bne $04e5 +04ed: 3f 0c 0a call $0a0c +04f0: cd 08 mov x,#$08 +04f2: 8f 01 12 mov $12,#$01 +04f5: 3f 11 05 call $0511 +04f8: 3d inc x +04f9: 0b 12 asl $12 +04fb: d0 f8 bne $04f5 +04fd: cd 00 mov x,#$00 +04ff: 8f 01 12 mov $12,#$01 +0502: 3f 18 07 call $0718 +0505: 3d inc x +0506: 0b 12 asl $12 +0508: d0 f8 bne $0502 +050a: e8 00 mov a,#$00 +050c: c4 1a mov $1a,a +050e: c4 19 mov $19,a +0510: 6f ret + +0511: f5 00 02 mov a,$0200+x +0514: f0 08 beq $051e +0516: f4 80 mov a,$80+x +0518: 30 05 bmi $051f +051a: 9b 80 dec $80+x +051c: f0 47 beq $0565 +051e: 6f ret + +051f: e8 7c mov a,#$7c +0521: c5 f2 00 mov $00f2,a +0524: e5 f3 00 mov a,$00f3 +0527: 24 12 and a,$12 +0529: f0 15 beq $0540 +052b: 09 12 17 or ($17),($12) +052e: e4 12 mov a,$12 +0530: 4e 18 00 tclr1 $0018 +0533: e8 00 mov a,#$00 +0535: d5 20 02 mov $0220+x,a +0538: d5 00 02 mov $0200+x,a +053b: e8 ff mov a,#$ff +053d: d5 30 02 mov $0230+x,a +0540: 6f ret + +0541: f5 00 02 mov a,$0200+x +0544: f0 1e beq $0564 +0546: f4 a8 mov a,$a8+x +0548: f0 07 beq $0551 +054a: 9b a8 dec $a8+x +054c: d0 03 bne $0551 +054e: 09 12 15 or ($15),($12) +0551: 9b 80 dec $80+x +0553: d0 03 bne $0558 +0555: 3f 65 05 call $0565 +0558: 3f 8a 0a call $0a8a +055b: 3f be 0a call $0abe +055e: 3f 32 0a call $0a32 +0561: 3f 5e 0a call $0a5e +0564: 6f ret + +0565: f5 60 00 mov a,$0060+x +0568: c4 0a mov $0a,a +056a: f5 70 00 mov a,$0070+x +056d: c4 0b mov $0b,a +056f: 3f 5e 07 call $075e +0572: d0 13 bne $0587 +0574: f4 90 mov a,$90+x +0576: d0 03 bne $057b +0578: 5f 00 07 jmp $0700 + +057b: 3f 11 09 call $0911 +057e: c4 0b mov $0b,a +0580: 3f 11 09 call $0911 +0583: c4 0a mov $0a,a +0585: 2f e8 bra $056f +0587: 30 27 bmi $05b0 +0589: c8 08 cmp x,#$08 +058b: 90 04 bcc $0591 +058d: d4 80 mov $80+x,a +058f: 2f 62 bra $05f3 +0591: d5 a0 02 mov $02a0+x,a +0594: 3f 5e 07 call $075e +0597: 30 17 bmi $05b0 +0599: 2d push a +059a: 9f xcn a +059b: 28 07 and a,#$07 +059d: fd mov y,a +059e: f6 08 11 mov a,$1108+y +05a1: d5 a8 02 mov $02a8+x,a ; set dur% from high nybble +05a4: ae pop a +05a5: 28 0f and a,#$0f +05a7: fd mov y,a +05a8: f6 10 11 mov a,$1110+y +05ab: d5 38 03 mov $0338+x,a ; set per-note vol from low nybble +05ae: 2f bf bra $056f +; vcmd branches 80-ff +05b0: 68 d0 cmp a,#$d0 +05b2: 90 05 bcc $05b9 +05b4: 3f 49 07 call $0749 +05b7: 2f b6 bra $056f +05b9: c8 08 cmp x,#$08 +05bb: 90 0a bcc $05c7 +05bd: 28 7f and a,#$7f +05bf: d5 40 02 mov $0240+x,a +05c2: 09 12 19 or ($19),($12) +05c5: 2f a8 bra $056f +05c7: 2d push a +05c8: f5 a0 02 mov a,$02a0+x +05cb: d4 80 mov $80+x,a +05cd: fd mov y,a +05ce: f5 a8 02 mov a,$02a8+x +05d1: cf mul ya +05d2: dd mov a,y +05d3: d0 01 bne $05d6 +05d5: bc inc a +05d6: d4 a8 mov $a8+x,a +05d8: 3f a6 06 call $06a6 +05db: ae pop a +05dc: 68 be cmp a,#$be +05de: f0 10 beq $05f0 +05e0: 68 bf cmp a,#$bf +05e2: f0 0c beq $05f0 +05e4: 3f fc 05 call $05fc +05e7: 3f b2 06 call $06b2 +05ea: 3f ca 06 call $06ca +05ed: 09 12 14 or ($14),($12) +05f0: 3f 92 06 call $0692 +05f3: e4 0a mov a,$0a +05f5: d4 60 mov $60+x,a +05f7: e4 0b mov a,$0b +05f9: d4 70 mov $70+x,a +05fb: 6f ret + +; handle a note vcmd (80-bf) +05fc: 68 c0 cmp a,#$c0 +05fe: 90 0d bcc $060d +0600: 80 setc +0601: a8 c0 sbc a,#$c0 +0603: 60 clrc +0604: 84 21 adc a,$21 +0606: 3f 45 0b call $0b45 +0609: e8 24 mov a,#$24 +060b: 2f 08 bra $0615 +060d: 2d push a +060e: f5 30 02 mov a,$0230+x +0611: 3f 45 0b call $0b45 +0614: ae pop a +0615: 28 7f and a,#$7f +0617: 60 clrc +0618: 84 22 adc a,$22 +061a: 60 clrc +061b: 95 b8 02 adc a,$02b8+x +061e: d5 40 02 mov $0240+x,a +0621: f5 b0 02 mov a,$02b0+x +0624: d5 50 02 mov $0250+x,a +0627: e8 00 mov a,#$00 +0629: d5 08 03 mov $0308+x,a +062c: d5 10 03 mov $0310+x,a +062f: d4 d0 mov $d0+x,a +0631: d4 a0 mov $a0+x,a +0633: d4 d8 mov $d8+x,a +0635: d4 c0 mov $c0+x,a +0637: 8d 00 mov y,#$00 +0639: f7 0a mov a,($0a)+y +063b: 68 ea cmp a,#$ea +063d: d0 07 bne $0646 +063f: 3a 0a incw $0a +0641: f5 d0 02 mov a,$02d0+x +0644: 2f 05 bra $064b +0646: f5 d0 02 mov a,$02d0+x +0649: 10 46 bpl $0691 +064b: 28 7f and a,#$7f +064d: f0 0e beq $065d +064f: f5 40 02 mov a,$0240+x +0652: 2d push a +0653: 60 clrc +0654: 95 d8 02 adc a,$02d8+x +0657: d5 40 02 mov $0240+x,a +065a: ae pop a +065b: 2f 07 bra $0664 +065d: f5 d8 02 mov a,$02d8+x +0660: 60 clrc +0661: 95 40 02 adc a,$0240+x +0664: fd mov y,a +0665: f5 c0 02 mov a,$02c0+x +0668: d4 c0 mov $c0+x,a +066a: f5 c8 02 mov a,$02c8+x +066d: d4 c8 mov $c8+x,a +066f: f5 b0 02 mov a,$02b0+x +0672: d5 e8 02 mov $02e8+x,a +0675: 75 50 02 cmp a,$0250+x +0678: dd mov a,y +0679: 28 7f and a,#$7f +067b: d5 e0 02 mov $02e0+x,a +067e: b5 40 02 sbc a,$0240+x +0681: 4d push x +0682: fb c0 mov y,$c0+x +0684: 6d push y +0685: ce pop x +0686: 3f c3 0f call $0fc3 +0689: ce pop x +068a: d5 f0 02 mov $02f0+x,a +068d: dd mov a,y +068e: d5 f8 02 mov $02f8+x,a +0691: 6f ret + +0692: 8d 00 mov y,#$00 +0694: f7 0a mov a,($0a)+y +0696: f0 0d beq $06a5 +0698: 30 03 bmi $069d +069a: fc inc y +069b: 2f f7 bra $0694 +069d: 68 be cmp a,#$be +069f: d0 04 bne $06a5 +06a1: e8 ff mov a,#$ff +06a3: d4 a8 mov $a8+x,a +06a5: 6f ret + +06a6: f5 20 02 mov a,$0220+x +06a9: 75 28 02 cmp a,$0228+x +06ac: 90 03 bcc $06b1 +06ae: d5 28 02 mov $0228+x,a +06b1: 6f ret + +06b2: f5 20 02 mov a,$0220+x +06b5: 75 28 02 cmp a,$0228+x +06b8: d0 0f bne $06c9 +06ba: f5 40 02 mov a,$0240+x +06bd: d5 48 02 mov $0248+x,a +06c0: f5 50 02 mov a,$0250+x +06c3: d5 58 02 mov $0258+x,a +06c6: 09 12 1a or ($1a),($12) +06c9: 6f ret + +06ca: f5 20 02 mov a,$0220+x +06cd: 75 28 02 cmp a,$0228+x +06d0: d0 2d bne $06ff +06d2: eb 2b mov y,$2b +06d4: f5 90 02 mov a,$0290+x +06d7: cf mul ya +06d8: f5 38 03 mov a,$0338+x +06db: cf mul ya +06dc: dd mov a,y +06dd: cf mul ya +06de: dd mov a,y +06df: d5 98 02 mov $0298+x,a +06e2: f5 20 02 mov a,$0220+x +06e5: 75 28 02 cmp a,$0228+x +06e8: d0 15 bne $06ff +06ea: f5 60 02 mov a,$0260+x +06ed: d5 68 02 mov $0268+x,a +06f0: f5 70 02 mov a,$0270+x +06f3: d5 78 02 mov $0278+x,a +06f6: f5 10 02 mov a,$0210+x +06f9: d5 18 02 mov $0218+x,a +06fc: 09 12 19 or ($19),($12) +06ff: 6f ret + +0700: c8 08 cmp x,#$08 +0702: b0 0f bcs $0713 +0704: 09 12 15 or ($15),($12) +0707: e8 00 mov a,#$00 +0709: d5 00 02 mov $0200+x,a +070c: d5 20 02 mov $0220+x,a +070f: 3f 8a 0f call $0f8a +0712: 6f ret + +0713: e8 ff mov a,#$ff +0715: d4 80 mov $80+x,a +0717: 6f ret + +0718: 8f 00 07 mov $07,#$00 +071b: f5 00 03 mov a,$0300+x +071e: 1c asl a +071f: 2b 07 rol $07 +0721: 1c asl a +0722: 2b 07 rol $07 +0724: 1c asl a +0725: 2b 07 rol $07 +0727: 60 clrc +0728: 95 08 03 adc a,$0308+x +072b: d5 08 03 mov $0308+x,a +072e: e4 07 mov a,$07 +0730: 95 10 03 adc a,$0310+x +0733: d5 10 03 mov $0310+x,a +0736: e4 12 mov a,$12 +0738: 24 19 and a,$19 +073a: f0 03 beq $073f +073c: 3f a4 0b call $0ba4 +073f: e4 12 mov a,$12 +0741: 24 1a and a,$1a +0743: f0 03 beq $0748 +0745: 3f 01 0c call $0c01 +0748: 6f ret + +; dispatch vcmd in A (d0-ff) +0749: 80 setc +074a: a8 d0 sbc a,#$d0 +074c: 1c asl a +074d: fd mov y,a +074e: f6 98 09 mov a,$0998+y +0751: 2d push a +0752: f6 97 09 mov a,$0997+y +0755: 2d push a +0756: dd mov a,y +0757: 5c lsr a +0758: fd mov y,a +0759: f6 e5 09 mov a,$09e5+y +075c: f0 06 beq $0764 +075e: 8d 00 mov y,#$00 +0760: f7 0a mov a,($0a)+y +0762: 3a 0a incw $0a +0764: fd mov y,a +0765: 6f ret + +; vcmd d1 - set instrument +0766: d5 30 02 mov $0230+x,a +0769: 6f ret + +; vcmd d2 - pan (1) +076a: d5 10 02 mov $0210+x,a +076d: 28 1f and a,#$1f +; vcmd d3 - pan (2) +076f: d5 70 02 mov $0270+x,a +0772: e8 00 mov a,#$00 +0774: d5 60 02 mov $0260+x,a +0777: 6f ret + +; vcmd d4 - pan fade +0778: 4d push x +0779: d4 b8 mov $b8+x,a +077b: 2d push a +077c: 3f 5e 07 call $075e +077f: d5 40 03 mov $0340+x,a +0782: 80 setc +0783: b5 70 02 sbc a,$0270+x +0786: ce pop x +0787: 3f c3 0f call $0fc3 +078a: ce pop x +078b: d5 48 03 mov $0348+x,a +078e: dd mov a,y +078f: d5 50 03 mov $0350+x,a +0792: 6f ret + +0793: 4d push x +0794: 1c asl a +0795: d5 18 03 mov $0318+x,a +0798: 3f 5e 07 call $075e +079b: 1c asl a +079c: d5 20 03 mov $0320+x,a +079f: 2d push a +07a0: 3f 5e 07 call $075e +07a3: 1c asl a +07a4: d5 00 03 mov $0300+x,a +07a7: 3f 5e 07 call $075e +07aa: d5 28 03 mov $0328+x,a +07ad: d4 d8 mov $d8+x,a +07af: 8d 00 mov y,#$00 +07b1: ce pop x +07b2: 9e div ya,x +07b3: ce pop x +07b4: d5 30 03 mov $0330+x,a +07b7: 6f ret + +; vcmd d5 - vibrato +07b8: d4 d8 mov $d8+x,a +07ba: d5 28 03 mov $0328+x,a +07bd: d5 20 03 mov $0320+x,a +07c0: 6f ret + +; vcmd d6 - master volume +07c1: e8 00 mov a,#$00 +07c3: da 2a movw $2a,ya +07c5: 6f ret + +; vcmd d7 - master volume fade +07c6: 4d push x +07c7: c4 2c mov $2c,a +07c9: 2d push a +07ca: 3f 5e 07 call $075e +07cd: c4 2d mov $2d,a +07cf: 80 setc +07d0: a4 2b sbc a,$2b +07d2: ce pop x +07d3: 3f c3 0f call $0fc3 +07d6: ce pop x +07d7: da 2e movw $2e,ya +07d9: 6f ret + +; vcmd d8 - tempo +07da: dd mov a,y +07db: 1c asl a +07dc: fd mov y,a +07dd: e8 00 mov a,#$00 +07df: da 23 movw $23,ya +07e1: 6f ret + +; vcmd e0 - vibrato fade +07e2: d5 20 02 mov $0220+x,a +07e5: 3f a6 06 call $06a6 +07e8: 6f ret + +; vcmd d9 - tempo fade +07e9: 4d push x +07ea: c4 26 mov $26,a +07ec: 2d push a +07ed: 3f 5e 07 call $075e +07f0: c4 27 mov $27,a +07f2: 80 setc +07f3: a4 24 sbc a,$24 +07f5: ce pop x +07f6: 3f c3 0f call $0fc3 +07f9: ce pop x +07fa: da 28 movw $28,ya +07fc: 6f ret + +; vcmd da - global transpose +07fd: c4 22 mov $22,a +07ff: 6f ret + +; vcmd db - per-voice transpose +0800: d5 b8 02 mov $02b8+x,a +0803: 6f ret + +; vcmd dc - tremolo on +0804: 3f 5e 07 call $075e +0807: 3f 5e 07 call $075e +; vcmd dd - tremolo off +080a: e8 00 mov a,#$00 +080c: 6f ret + +; vcmd e1 - pitch envelope (release) +080d: f5 d0 02 mov a,$02d0+x +0810: 28 80 and a,#$80 +0812: 2f 07 bra $081b +; vcmd e2 - pitch envelope (attack) +0814: f5 d0 02 mov a,$02d0+x +0817: 28 80 and a,#$80 +0819: 08 01 or a,#$01 +081b: d5 d0 02 mov $02d0+x,a +081e: dd mov a,y +081f: d5 c8 02 mov $02c8+x,a +0822: 3f 5e 07 call $075e +0825: d5 c0 02 mov $02c0+x,a +0828: 3f 5e 07 call $075e +082b: d5 d8 02 mov $02d8+x,a +082e: 6f ret + +; vcmd e3/ea - pitch envelope off +082f: f5 d0 02 mov a,$02d0+x +0832: 08 80 or a,#$80 +0834: d5 d0 02 mov $02d0+x,a +0837: 6f ret + +; vcmd e4 - pitch envelope off (2) +0838: f5 d0 02 mov a,$02d0+x +083b: 28 7f and a,#$7f +083d: d5 d0 02 mov $02d0+x,a +0840: 6f ret + +; vcmd de - volume +0841: d5 90 02 mov $0290+x,a +0844: e8 00 mov a,#$00 +0846: d5 80 02 mov $0280+x,a +0849: c8 08 cmp x,#$08 +084b: 90 03 bcc $0850 +084d: 09 12 19 or ($19),($12) +0850: 6f ret + +; vcmd df - volume fade +0851: 4d push x +0852: d4 b0 mov $b0+x,a +0854: 2d push a +0855: 3f 5e 07 call $075e +0858: d5 58 03 mov $0358+x,a +085b: 80 setc +085c: b5 90 02 sbc a,$0290+x +085f: ce pop x +0860: 3f c3 0f call $0fc3 +0863: ce pop x +0864: d5 60 03 mov $0360+x,a +0867: dd mov a,y +0868: d5 68 03 mov $0368+x,a +086b: 6f ret + +; vcmd e5 - tuning +086c: d5 b0 02 mov $02b0+x,a +086f: 6f ret + +; vcmd e6 - echo volume +0870: 09 12 1c or ($1c),($12) +0873: 6f ret + +; vcmd e7 - disable echo +0874: e4 12 mov a,$12 +0876: 4e 1c 00 tclr1 $001c +0879: 6f ret + +; vcmd e8 - set echo params +087a: 4d push x +087b: 3f 74 0c call $0c74 +087e: 3f 5e 07 call $075e +0881: c4 34 mov $34,a +0883: 3f 15 10 call $1015 +0886: 3f 5e 07 call $075e +0889: c4 1e mov $1e,a +088b: 3f 5e 07 call $075e +088e: 1c asl a +088f: 1c asl a +0890: 1c asl a +0891: 5d mov x,a +0892: 8d 0f mov y,#$0f +0894: f5 e8 10 mov a,$10e8+x +0897: 3f 3a 10 call $103a +089a: 3d inc x +089b: dd mov a,y +089c: 60 clrc +089d: 88 10 adc a,#$10 +089f: fd mov y,a +08a0: 10 f2 bpl $0894 +08a2: ce pop x +08a3: b2 13 clr5 $13 +08a5: 6f ret + +; vcmd eb - set perc patch base +08a6: c4 21 mov $21,a +08a8: 6f ret + +; vcmd ed - echo (1) +08a9: 2d push a +08aa: 3f 5e 07 call $075e +08ad: ae pop a +08ae: 60 clrc +08af: 84 0a adc a,$0a +08b1: c4 0a mov $0a,a +08b3: dd mov a,y +08b4: 84 0b adc a,$0b +08b6: c4 0b mov $0b,a +08b8: 6f ret + +; vcmd ee - echo (2) +08b9: 2d push a +08ba: 3f 5e 07 call $075e +08bd: 2d push a +08be: e4 0a mov a,$0a +08c0: 3f fe 08 call $08fe +08c3: e4 0b mov a,$0b +08c5: 3f fe 08 call $08fe +08c8: ae pop a +08c9: c4 0b mov $0b,a +08cb: ae pop a +08cc: c4 0a mov $0a,a +08ce: 6f ret + +; vcmd ef - echo (3) +08cf: 3f fe 08 call $08fe +08d2: e4 0a mov a,$0a +08d4: 3f fe 08 call $08fe +08d7: e4 0b mov a,$0b +08d9: 3f fe 08 call $08fe +08dc: 6f ret + +; vcmd f0 - echo (4) +08dd: 3f 11 09 call $0911 +08e0: 2d push a +08e1: 3f 11 09 call $0911 +08e4: 2d push a +08e5: 3f 11 09 call $0911 +08e8: 9c dec a +08e9: f0 10 beq $08fb +08eb: 3f fe 08 call $08fe +08ee: ae pop a +08ef: c4 0a mov $0a,a +08f1: 3f fe 08 call $08fe +08f4: ae pop a +08f5: c4 0b mov $0b,a +08f7: 3f fe 08 call $08fe +08fa: 6f ret + +08fb: ae pop a +08fc: ae pop a +08fd: 6f ret + +08fe: fd mov y,a +08ff: f5 20 11 mov a,$1120+x +0902: c4 02 mov $02,a +0904: f5 30 11 mov a,$1130+x +0907: c4 03 mov $03,a +0909: dd mov a,y +090a: fb 90 mov y,$90+x +090c: d7 02 mov ($02)+y,a +090e: bb 90 inc $90+x +0910: 6f ret + +0911: f5 20 11 mov a,$1120+x +0914: c4 02 mov $02,a +0916: f5 30 11 mov a,$1130+x +0919: c4 03 mov $03,a +091b: 9b 90 dec $90+x +091d: fb 90 mov y,$90+x +091f: f7 02 mov a,($02)+y +0921: 6f ret + +; vcmd f1 - echo (5) +0922: 60 clrc +0923: 95 40 02 adc a,$0240+x +0926: d5 40 02 mov $0240+x,a +0929: 09 12 1a or ($1a),($12) +092c: 6f ret + +; vcmd f2 - echo (6) +092d: 28 ff and a,#$ff +092f: 30 13 bmi $0944 +0931: 60 clrc +0932: 95 50 02 adc a,$0250+x +0935: d5 50 02 mov $0250+x,a +0938: f5 40 02 mov a,$0240+x +093b: 88 00 adc a,#$00 +093d: d5 40 02 mov $0240+x,a +0940: 09 12 1a or ($1a),($12) +0943: 6f ret + +0944: 60 clrc +0945: 95 50 02 adc a,$0250+x +0948: d5 50 02 mov $0250+x,a +094b: f5 40 02 mov a,$0240+x +094e: a8 00 sbc a,#$00 +0950: d5 40 02 mov $0240+x,a +0953: 09 12 1a or ($1a),($12) +0956: 6f ret + +; vcmd f3 - echo (7) +0957: f5 30 02 mov a,$0230+x +095a: 3f 5a 0b call $0b5a +095d: 09 12 16 or ($16),($12) +0960: 09 12 19 or ($19),($12) +0963: 09 12 1a or ($1a),($12) +0966: 6f ret + +; vcmd f4 - echo (8) +0967: 09 12 17 or ($17),($12) +096a: 6f ret + +; vcmd f5 - echo (9) +096b: 60 clrc +096c: 95 90 02 adc a,$0290+x +096f: d5 90 02 mov $0290+x,a +0972: 09 12 19 or ($19),($12) +0975: 6f ret + +; vcmd f6 - echo (10) +0976: d5 30 02 mov $0230+x,a +0979: 3f 5a 0b call $0b5a +097c: 3f 5e 07 call $075e +097f: d5 40 02 mov $0240+x,a +0982: 3f 5e 07 call $075e +0985: d5 90 02 mov $0290+x,a +0988: 09 12 16 or ($16),($12) +098b: 09 12 19 or ($19),($12) +098e: 09 12 1a or ($1a),($12) +0991: e8 01 mov a,#$01 +0993: d5 80 00 mov $0080+x,a +0996: 6f ret + +; vcmd dispatch table +0997: dw $0000 ; d0 - undefined +0999: dw $0766 ; d1 - set instrument +099b: dw $076a ; d2 - pan (1) +099d: dw $0778 ; d3 - pan (2) +099f: dw $0793 ; d4 - pan fade +09a1: dw $07b8 ; d5 - vibrato +09a3: dw $07c1 ; d6 - master volume +09a5: dw $07c6 ; d7 - master volume fade +09a7: dw $07da ; d8 - tempo +09a9: dw $07e9 ; d9 - tempo fade +09ab: dw $07fd ; da - global transpose +09ad: dw $0800 ; db - per-voice transpose +09af: dw $0804 ; dc - tremolo on +09b1: dw $080a ; dd - tremolo off +09b3: dw $0841 ; de - volume +09b5: dw $0851 ; df - volume fade +09b7: dw $07e2 ; e0 - vibrato fade +09b9: dw $080d ; e1 - pitch envelope (release) +09bb: dw $0814 ; e2 - pitch envelope (attack) +09bd: dw $082f ; e3 - pitch envelope off (1) +09bf: dw $0838 ; e4 - pitch envelope off (2) +09c1: dw $086c ; e5 - set tuning +09c3: dw $0870 ; e6 - echo volume +09c5: dw $0874 ; e7 - disable echo +09c7: dw $087a ; e8 - set echo params +09c9: dw $0000 ; e9 - undefined +09cb: dw $082f ; ea - pitch envelope off +09cd: dw $08a6 ; eb - set perc patch base +09cf: dw $0000 ; ec - undefined +09d1: dw $08a9 ; ed - echo (1) +09d3: dw $08b9 ; ee - echo (2) +09d5: dw $08cf ; ef - echo (3) +09d7: dw $08dd ; f0 - echo (4) +09d9: dw $0922 ; f1 - echo (5) +09db: dw $092d ; f2 - echo (6) +09dd: dw $0957 ; f3 - echo (7) +09df: dw $0967 ; f4 - echo (8) +09e1: dw $096b ; f5 - echo (9) +09e3: dw $0976 ; f6 - echo (10) + +; vcmd lengths +09e5: db $00,$01,$01,$02,$03,$00,$01,$02 ; d0-d7 +09ed: db $01,$02,$01,$01,$03,$00,$01,$02 ; d8-df +09f5: db $01,$03,$03,$00,$00,$01,$00,$00 ; e0-e7 +09fd: db $04,$00,$00,$01,$02,$02,$02,$01 ; e8-ef +0a05: db $00,$01,$01,$00,$00,$01,$03 ; f0-f6 + +0a0c: e4 26 mov a,$26 +0a0e: f0 0d beq $0a1d +0a10: ba 28 movw ya,$28 +0a12: 7a 23 addw ya,$23 +0a14: 6e 26 04 dbnz $26,$0a1b +0a17: eb 27 mov y,$27 +0a19: e8 00 mov a,#$00 +0a1b: da 23 movw $23,ya +0a1d: e4 2c mov a,$2c +0a1f: f0 10 beq $0a31 +0a21: ba 2e movw ya,$2e +0a23: 7a 2a addw ya,$2a +0a25: 6e 2c 04 dbnz $2c,$0a2c +0a28: eb 2d mov y,$2d +0a2a: e8 00 mov a,#$00 +0a2c: da 2a movw $2a,ya +0a2e: 8f ff 19 mov $19,#$ff +0a31: 6f ret + +0a32: f4 b0 mov a,$b0+x +0a34: f0 27 beq $0a5d +0a36: 9b b0 dec $b0+x +0a38: d0 0d bne $0a47 +0a3a: e8 00 mov a,#$00 +0a3c: d5 80 02 mov $0280+x,a +0a3f: f5 58 03 mov a,$0358+x +0a42: d5 90 02 mov $0290+x,a +0a45: 2f 13 bra $0a5a +0a47: 60 clrc +0a48: f5 60 03 mov a,$0360+x +0a4b: 95 80 02 adc a,$0280+x +0a4e: d5 80 02 mov $0280+x,a +0a51: f5 68 03 mov a,$0368+x +0a54: 95 90 02 adc a,$0290+x +0a57: d5 90 02 mov $0290+x,a +0a5a: 3f ca 06 call $06ca +0a5d: 6f ret + +0a5e: f4 b8 mov a,$b8+x +0a60: f0 27 beq $0a89 +0a62: 9b b8 dec $b8+x +0a64: d0 0d bne $0a73 +0a66: e8 00 mov a,#$00 +0a68: d5 60 02 mov $0260+x,a +0a6b: f5 40 03 mov a,$0340+x +0a6e: d5 70 02 mov $0270+x,a +0a71: 2f 13 bra $0a86 +0a73: 60 clrc +0a74: f5 48 03 mov a,$0348+x +0a77: 95 60 02 adc a,$0260+x +0a7a: d5 60 02 mov $0260+x,a +0a7d: f5 50 03 mov a,$0350+x +0a80: 95 70 02 adc a,$0270+x +0a83: d5 70 02 mov $0270+x,a +0a86: 3f e2 06 call $06e2 +0a89: 6f ret + +0a8a: f4 c0 mov a,$c0+x +0a8c: f0 2f beq $0abd +0a8e: f4 c8 mov a,$c8+x +0a90: f0 03 beq $0a95 +0a92: 9b c8 dec $c8+x +0a94: 6f ret + +0a95: 9b c0 dec $c0+x +0a97: d0 0e bne $0aa7 +0a99: f5 e8 02 mov a,$02e8+x +0a9c: d5 50 02 mov $0250+x,a +0a9f: f5 e0 02 mov a,$02e0+x +0aa2: d5 40 02 mov $0240+x,a +0aa5: 2f 13 bra $0aba +0aa7: 60 clrc +0aa8: f5 f0 02 mov a,$02f0+x +0aab: 95 50 02 adc a,$0250+x +0aae: d5 50 02 mov $0250+x,a +0ab1: f5 f8 02 mov a,$02f8+x +0ab4: 95 40 02 adc a,$0240+x +0ab7: d5 40 02 mov $0240+x,a +0aba: 3f b2 06 call $06b2 +0abd: 6f ret + +0abe: f5 28 03 mov a,$0328+x +0ac1: f0 6b beq $0b2e +0ac3: f5 18 03 mov a,$0318+x +0ac6: de d0 63 cbne $d0+x,$0b2c +0ac9: f5 40 02 mov a,$0240+x +0acc: 2d push a +0acd: f5 50 02 mov a,$0250+x +0ad0: 2d push a +0ad1: f5 20 03 mov a,$0320+x +0ad4: de a0 05 cbne $a0+x,$0adc +0ad7: f5 28 03 mov a,$0328+x +0ada: 2f 08 bra $0ae4 +0adc: bb a0 inc $a0+x +0ade: f4 d8 mov a,$d8+x +0ae0: 60 clrc +0ae1: 95 30 03 adc a,$0330+x +0ae4: d4 d8 mov $d8+x,a +0ae6: f5 10 03 mov a,$0310+x +0ae9: 1c asl a +0aea: b0 1b bcs $0b07 +0aec: 1c asl a +0aed: 90 02 bcc $0af1 +0aef: 48 ff eor a,#$ff +0af1: 3f 2f 0b call $0b2f +0af4: 60 clrc +0af5: f5 50 02 mov a,$0250+x +0af8: 84 06 adc a,$06 +0afa: d5 50 02 mov $0250+x,a +0afd: f5 40 02 mov a,$0240+x +0b00: 84 07 adc a,$07 +0b02: d5 40 02 mov $0240+x,a +0b05: 2f 19 bra $0b20 +0b07: 1c asl a +0b08: 90 02 bcc $0b0c +0b0a: 48 ff eor a,#$ff +0b0c: 3f 2f 0b call $0b2f +0b0f: 80 setc +0b10: f5 50 02 mov a,$0250+x +0b13: a4 06 sbc a,$06 +0b15: d5 50 02 mov $0250+x,a +0b18: f5 40 02 mov a,$0240+x +0b1b: a4 07 sbc a,$07 +0b1d: d5 40 02 mov $0240+x,a +0b20: 3f b2 06 call $06b2 +0b23: ae pop a +0b24: d5 50 02 mov $0250+x,a +0b27: ae pop a +0b28: d5 40 02 mov $0240+x,a +0b2b: 6f ret + +0b2c: bb d0 inc $d0+x +0b2e: 6f ret + +0b2f: fd mov y,a +0b30: f4 d8 mov a,$d8+x +0b32: cf mul ya +0b33: cb 06 mov $06,y +0b35: 8f 00 07 mov $07,#$00 +0b38: 0b 06 asl $06 +0b3a: 2b 07 rol $07 +0b3c: 0b 06 asl $06 +0b3e: 2b 07 rol $07 +0b40: 0b 06 asl $06 +0b42: 2b 07 rol $07 +0b44: 6f ret + +0b45: 2d push a +0b46: f5 20 02 mov a,$0220+x +0b49: 75 28 02 cmp a,$0228+x +0b4c: ae pop a +0b4d: d0 0a bne $0b59 +0b4f: 75 38 02 cmp a,$0238+x +0b52: f0 05 beq $0b59 +0b54: d5 38 02 mov $0238+x,a +0b57: 2f 01 bra $0b5a +0b59: 6f ret + +0b5a: 4d push x +0b5b: 8d 06 mov y,#$06 +0b5d: cf mul ya +0b5e: da 06 movw $06,ya +0b60: 60 clrc +0b61: 98 00 06 adc $06,#$00 +0b64: 98 12 07 adc $07,#$12 +0b67: 7d mov a,x +0b68: 28 07 and a,#$07 +0b6a: 2d push a +0b6b: 9f xcn a +0b6c: 08 04 or a,#$04 +0b6e: 5d mov x,a +0b6f: 8d 00 mov y,#$00 +0b71: f7 06 mov a,($06)+y +0b73: 10 0e bpl $0b83 +0b75: 28 1f and a,#$1f +0b77: 38 20 13 and $13,#$20 +0b7a: 0e 13 00 tset1 $0013 +0b7d: 09 12 1b or ($1b),($12) +0b80: dd mov a,y +0b81: 2f 07 bra $0b8a +0b83: e4 12 mov a,$12 +0b85: 4e 1b 00 tclr1 $001b +0b88: f7 06 mov a,($06)+y +0b8a: c9 f2 00 mov $00f2,x +0b8d: c5 f3 00 mov $00f3,a +0b90: 3d inc x +0b91: fc inc y +0b92: ad 04 cmp y,#$04 +0b94: d0 f2 bne $0b88 +0b96: ce pop x +0b97: f7 06 mov a,($06)+y +0b99: d5 78 03 mov $0378+x,a +0b9c: fc inc y +0b9d: f7 06 mov a,($06)+y +0b9f: d5 70 03 mov $0370+x,a +0ba2: ce pop x +0ba3: 6f ret + +0ba4: f5 78 02 mov a,$0278+x +0ba7: fd mov y,a +0ba8: f5 68 02 mov a,$0268+x +0bab: da 08 movw $08,ya +0bad: 7d mov a,x +0bae: 9f xcn a +0baf: 2d push a +0bb0: 3f dd 0b call $0bdd +0bb3: f5 18 02 mov a,$0218+x +0bb6: 1c asl a +0bb7: dd mov a,y +0bb8: 90 03 bcc $0bbd +0bba: 48 ff eor a,#$ff +0bbc: bc inc a +0bbd: ee pop y +0bbe: 3f 3a 10 call $103a +0bc1: fc inc y +0bc2: 6d push y +0bc3: 8d 14 mov y,#$14 +0bc5: e8 00 mov a,#$00 +0bc7: 9a 08 subw ya,$08 +0bc9: da 08 movw $08,ya +0bcb: 3f dd 0b call $0bdd +0bce: f5 18 02 mov a,$0218+x +0bd1: 1c asl a +0bd2: 1c asl a +0bd3: dd mov a,y +0bd4: 90 03 bcc $0bd9 +0bd6: 48 ff eor a,#$ff +0bd8: bc inc a +0bd9: ee pop y +0bda: 5f 3a 10 jmp $103a + +0bdd: 33 0f 19 bbc1 $0f,$0bf9 +0be0: eb 09 mov y,$09 +0be2: f6 d4 10 mov a,$10d4+y +0be5: 80 setc +0be6: b6 d3 10 sbc a,$10d3+y +0be9: eb 08 mov y,$08 +0beb: cf mul ya +0bec: dd mov a,y +0bed: eb 09 mov y,$09 +0bef: 60 clrc +0bf0: 96 d3 10 adc a,$10d3+y +0bf3: fd mov y,a +0bf4: f5 98 02 mov a,$0298+x +0bf7: cf mul ya +0bf8: 6f ret + +0bf9: f5 98 02 mov a,$0298+x +0bfc: ec dd 10 mov y,$10dd +0bff: cf mul ya +0c00: 6f ret + +0c01: f5 48 02 mov a,$0248+x +0c04: 1c asl a +0c05: fd mov y,a +0c06: f6 42 10 mov a,$1042+y +0c09: c4 07 mov $07,a +0c0b: f6 41 10 mov a,$1041+y +0c0e: c4 06 mov $06,a +0c10: f6 44 10 mov a,$1044+y +0c13: 2d push a +0c14: f6 43 10 mov a,$1043+y +0c17: ee pop y +0c18: 9a 06 subw ya,$06 +0c1a: 6d push y +0c1b: fd mov y,a +0c1c: f5 58 02 mov a,$0258+x +0c1f: cf mul ya +0c20: cb 08 mov $08,y +0c22: 8f 00 09 mov $09,#$00 +0c25: ee pop y +0c26: f5 58 02 mov a,$0258+x +0c29: cf mul ya +0c2a: 7a 08 addw ya,$08 +0c2c: 7a 06 addw ya,$06 +0c2e: da 06 movw $06,ya +0c30: f5 70 03 mov a,$0370+x +0c33: eb 07 mov y,$07 +0c35: cf mul ya +0c36: da 08 movw $08,ya +0c38: f5 78 03 mov a,$0378+x +0c3b: eb 06 mov y,$06 +0c3d: cf mul ya +0c3e: 7a 08 addw ya,$08 +0c40: da 08 movw $08,ya +0c42: f5 70 03 mov a,$0370+x +0c45: eb 06 mov y,$06 +0c47: cf mul ya +0c48: 6d push y +0c49: f5 78 03 mov a,$0378+x +0c4c: eb 07 mov y,$07 +0c4e: cf mul ya +0c4f: fd mov y,a +0c50: ae pop a +0c51: 7a 08 addw ya,$08 +0c53: da 08 movw $08,ya +0c55: 7d mov a,x +0c56: 9f xcn a +0c57: 08 02 or a,#$02 +0c59: fd mov y,a +0c5a: e4 08 mov a,$08 +0c5c: 3f 3a 10 call $103a +0c5f: fc inc y +0c60: e4 09 mov a,$09 +0c62: 5f 3a 10 jmp $103a + +0c65: e8 01 mov a,#$01 +0c67: 3f 74 0c call $0c74 +0c6a: e8 00 mov a,#$00 +0c6c: c4 34 mov $34,a +0c6e: 3f 15 10 call $1015 +0c71: a2 13 set5 $13 +0c73: 6f ret + +0c74: 68 03 cmp a,#$03 +0c76: 90 02 bcc $0c7a +0c78: e8 02 mov a,#$02 +0c7a: c4 1f mov $1f,a +0c7c: 8d 7d mov y,#$7d +0c7e: cc f2 00 mov $00f2,y +0c81: e5 f3 00 mov a,$00f3 +0c84: 64 1f cmp a,$1f +0c86: f0 2e beq $0cb6 +0c88: 28 0f and a,#$0f +0c8a: 48 ff eor a,#$ff +0c8c: e8 c8 mov a,#$c8 +0c8e: c4 20 mov $20,a +0c90: e8 00 mov a,#$00 +0c92: 8d 4d mov y,#$4d +0c94: 3f 3a 10 call $103a +0c97: 8d 0d mov y,#$0d +0c99: 3f 3a 10 call $103a +0c9c: 8d 3c mov y,#$3c +0c9e: 3f 3a 10 call $103a +0ca1: 8d 2c mov y,#$2c +0ca3: 3f 3a 10 call $103a +0ca6: e4 13 mov a,$13 +0ca8: 08 20 or a,#$20 +0caa: 8d 6c mov y,#$6c +0cac: 3f 3a 10 call $103a +0caf: e4 1f mov a,$1f +0cb1: 8d 7d mov y,#$7d +0cb3: 3f 3a 10 call $103a +0cb6: e8 f0 mov a,#$f0 +0cb8: 8d 6d mov y,#$6d +0cba: 5f 3a 10 jmp $103a + +0cbd: e4 20 mov a,$20 +0cbf: f0 07 beq $0cc8 +0cc1: 8b 20 dec $20 +0cc3: d0 03 bne $0cc8 +0cc5: 3f 15 10 call $1015 +0cc8: 6f ret + +0cc9: e4 0c mov a,$0c +0ccb: 04 10 or a,$10 +0ccd: c5 f4 00 mov $00f4,a +0cd0: e5 f4 00 mov a,$00f4 +0cd3: 65 f4 00 cmp a,$00f4 +0cd6: d0 f8 bne $0cd0 +0cd8: c4 0e mov $0e,a +0cda: 28 ff and a,#$ff +0cdc: f0 05 beq $0ce3 +0cde: e8 11 mov a,#$11 +0ce0: c5 f1 00 mov $00f1,a +0ce3: e4 0e mov a,$0e +0ce5: f0 31 beq $0d18 +0ce7: 30 03 bmi $0cec +0ce9: 5f a6 0d jmp $0da6 + +0cec: 68 fe cmp a,#$fe +0cee: f0 33 beq $0d23 +0cf0: 68 f0 cmp a,#$f0 +0cf2: f0 5c beq $0d50 +0cf4: 68 ff cmp a,#$ff +0cf6: f0 21 beq $0d19 +0cf8: 68 f1 cmp a,#$f1 +0cfa: f0 50 beq $0d4c +0cfc: 68 f3 cmp a,#$f3 +0cfe: f0 63 beq $0d63 +0d00: 68 f4 cmp a,#$f4 +0d02: f0 6d beq $0d71 +0d04: 68 f5 cmp a,#$f5 +0d06: f0 79 beq $0d81 +0d08: 68 f6 cmp a,#$f6 +0d0a: f0 4b beq $0d57 +0d0c: 68 f7 cmp a,#$f7 +0d0e: f0 4b beq $0d5b +0d10: 68 f8 cmp a,#$f8 +0d12: f0 4b beq $0d5f +0d14: 68 f2 cmp a,#$f2 +0d16: f0 73 beq $0d8b +0d18: 6f ret + +0d19: e8 ff mov a,#$ff +0d1b: 8d 5c mov y,#$5c +0d1d: 3f 3a 10 call $103a +0d20: 3f 06 0f call $0f06 +0d23: e8 00 mov a,#$00 +0d25: c4 32 mov $32,a +0d27: c4 33 mov $33,a +0d29: c4 30 mov $30,a +0d2b: c4 31 mov $31,a +0d2d: c4 34 mov $34,a +0d2f: 3f 7d 0f call $0f7d +0d32: 3f 95 0e call $0e95 +0d35: e8 ff mov a,#$ff +0d37: c4 30 mov $30,a +0d39: e8 7f mov a,#$7f +0d3b: c4 31 mov $31,a +0d3d: 3f 7d 0f call $0f7d +0d40: 3f 4c 0d call $0d4c +0d43: e8 00 mov a,#$00 +0d45: c4 19 mov $19,a +0d47: c4 1a mov $1a,a +0d49: c4 0c mov $0c,a +0d4b: 6f ret + +0d4c: 38 fe 0f and $0f,#$fe +0d4f: 6f ret + +0d50: 8f ff 15 mov $15,#$ff +0d53: 18 01 0f or $0f,#$01 +0d56: 6f ret + +0d57: 18 02 0f or $0f,#$02 +0d5a: 6f ret + +0d5b: 38 fd 0f and $0f,#$fd +0d5e: 6f ret + +0d5f: 3f 7c 0e call $0e7c +0d62: 6f ret + +0d63: e8 00 mov a,#$00 +0d65: c4 32 mov $32,a +0d67: c4 33 mov $33,a +0d69: e5 f6 00 mov a,$00f6 +0d6c: c4 31 mov $31,a +0d6e: 5f 7d 0f jmp $0f7d + +0d71: e5 f6 00 mov a,$00f6 +0d74: c4 32 mov $32,a +0d76: e8 00 mov a,#$00 +0d78: 0b 32 asl $32 +0d7a: 3c rol a +0d7b: c4 33 mov $33,a +0d7d: fa 80 10 mov ($10),($80) +0d80: 6f ret + +0d81: 3f 71 0d call $0d71 +0d84: ba 00 movw ya,$00 +0d86: 9a 32 subw ya,$32 +0d88: da 32 movw $32,ya +0d8a: 6f ret + +0d8b: e5 f6 00 mov a,$00f6 +0d8e: 3f 4d 0e call $0e4d +0d91: 90 12 bcc $0da5 +0d93: e5 f7 00 mov a,$00f7 +0d96: d5 70 02 mov $0270+x,a +0d99: e8 00 mov a,#$00 +0d9b: d5 60 02 mov $0260+x,a +0d9e: 3f b4 0f call $0fb4 +0da1: 04 19 or a,$19 +0da3: c4 19 mov $19,a +0da5: 6f ret + +0da6: 1c asl a +0da7: fd mov y,a +0da8: f6 fe 13 mov a,$13fe+y +0dab: c4 04 mov $04,a +0dad: f6 ff 13 mov a,$13ff+y +0db0: c4 05 mov $05,a +0db2: 8d 00 mov y,#$00 +0db4: f7 04 mov a,($04)+y +0db6: 3a 04 incw $04 +0db8: 68 ff cmp a,#$ff +0dba: f0 51 beq $0e0d +0dbc: fa 0e 0d mov ($0d),($0e) +0dbf: 8d 00 mov y,#$00 +0dc1: f7 04 mov a,($04)+y +0dc3: 68 ff cmp a,#$ff +0dc5: f0 45 beq $0e0c +0dc7: c4 11 mov $11,a +0dc9: 28 ff and a,#$ff +0dcb: 10 0e bpl $0ddb +0dcd: 3f 5d 0e call $0e5d +0dd0: b0 15 bcs $0de7 +0dd2: e4 0d mov a,$0d +0dd4: 3f 4d 0e call $0e4d +0dd7: 90 33 bcc $0e0c +0dd9: 2f 0c bra $0de7 +0ddb: e4 0d mov a,$0d +0ddd: 3f 4d 0e call $0e4d +0de0: b0 05 bcs $0de7 +0de2: 3f 5d 0e call $0e5d +0de5: 90 25 bcc $0e0c +0de7: 3a 04 incw $04 +0de9: 3f b4 0f call $0fb4 +0dec: c4 12 mov $12,a +0dee: 09 12 18 or ($18),($12) +0df1: 3f b6 0e call $0eb6 +0df4: e5 f7 00 mov a,$00f7 +0df7: d5 70 02 mov $0270+x,a +0dfa: e4 0d mov a,$0d +0dfc: d5 00 02 mov $0200+x,a +0dff: e4 11 mov a,$11 +0e01: 28 7f and a,#$7f +0e03: d5 20 02 mov $0220+x,a +0e06: 3a 04 incw $04 +0e08: 3a 04 incw $04 +0e0a: 2f b3 bra $0dbf +0e0c: 6f ret + +0e0d: fa 0e 0c mov ($0c),($0e) +0e10: 3f 4c 0d call $0d4c +0e13: 3f 95 0e call $0e95 +0e16: e8 00 mov a,#$00 +0e18: c4 2c mov $2c,a +0e1a: c4 26 mov $26,a +0e1c: c4 22 mov $22,a +0e1e: c4 21 mov $21,a +0e20: c4 1c mov $1c,a +0e22: 8f c8 2b mov $2b,#$c8 +0e25: 8f 20 24 mov $24,#$20 +0e28: 8d 00 mov y,#$00 +0e2a: f7 04 mov a,($04)+y +0e2c: 30 1c bmi $0e4a +0e2e: 3a 04 incw $04 +0e30: 5d mov x,a +0e31: 3f b6 0e call $0eb6 +0e34: 3f f0 0e call $0ef0 +0e37: e4 0c mov a,$0c +0e39: d5 00 02 mov $0200+x,a +0e3c: e8 32 mov a,#$32 +0e3e: d5 20 02 mov $0220+x,a +0e41: 3f a6 06 call $06a6 +0e44: 3a 04 incw $04 +0e46: 3a 04 incw $04 +0e48: 2f de bra $0e28 +0e4a: 5f 65 0c jmp $0c65 + +0e4d: cd 0f mov x,#$0f +0e4f: 75 00 02 cmp a,$0200+x +0e52: f0 07 beq $0e5b +0e54: 1d dec x +0e55: c8 08 cmp x,#$08 +0e57: d0 f6 bne $0e4f +0e59: 60 clrc +0e5a: 6f ret + +0e5b: 80 setc +0e5c: 6f ret + +0e5d: cd 00 mov x,#$00 +0e5f: e8 ff mov a,#$ff +0e61: 75 28 02 cmp a,$0228+x +0e64: 90 05 bcc $0e6b +0e66: f5 28 02 mov a,$0228+x +0e69: 4d push x +0e6a: ee pop y +0e6b: 3d inc x +0e6c: c8 08 cmp x,#$08 +0e6e: d0 f1 bne $0e61 +0e70: 6d push y +0e71: ce pop x +0e72: 2d push a +0e73: 7d mov a,x +0e74: 08 08 or a,#$08 +0e76: 5d mov x,a +0e77: ae pop a +0e78: 64 11 cmp a,$11 +0e7a: ed notc +0e7b: 6f ret + +0e7c: cd 08 mov x,#$08 +0e7e: e8 01 mov a,#$01 +0e80: c4 12 mov $12,a +0e82: f5 00 02 mov a,$0200+x +0e85: f0 08 beq $0e8f +0e87: 09 12 17 or ($17),($12) +0e8a: e8 ff mov a,#$ff +0e8c: d5 80 00 mov $0080+x,a +0e8f: 3d inc x +0e90: 0b 12 asl $12 +0e92: d0 ee bne $0e82 +0e94: 6f ret + +0e95: e8 00 mov a,#$00 +0e97: c4 18 mov $18,a +0e99: cd 0f mov x,#$0f +0e9b: e8 00 mov a,#$00 +0e9d: d5 00 02 mov $0200+x,a +0ea0: d5 20 02 mov $0220+x,a +0ea3: 9c dec a +0ea4: d5 30 02 mov $0230+x,a +0ea7: 1d dec x +0ea8: 10 f1 bpl $0e9b +0eaa: e8 ff mov a,#$ff +0eac: 8d 5c mov y,#$5c +0eae: 3f 3a 10 call $103a +0eb1: 8d 7c mov y,#$7c +0eb3: 5f 3a 10 jmp $103a + +0eb6: ba 04 movw ya,$04 +0eb8: da 02 movw $02,ya +0eba: 8d 01 mov y,#$01 +0ebc: f7 02 mov a,($02)+y +0ebe: 2d push a +0ebf: dc dec y +0ec0: f7 02 mov a,($02)+y +0ec2: ee pop y +0ec3: 7a 02 addw ya,$02 +0ec5: d5 60 00 mov $0060+x,a +0ec8: dd mov a,y +0ec9: d5 70 00 mov $0070+x,a +0ecc: e8 00 mov a,#$00 +0ece: d4 90 mov $90+x,a +0ed0: d5 80 02 mov $0280+x,a +0ed3: d5 60 02 mov $0260+x,a +0ed6: d5 50 02 mov $0250+x,a +0ed9: e8 01 mov a,#$01 +0edb: d4 80 mov $80+x,a +0edd: e8 ff mov a,#$ff +0edf: d5 30 02 mov $0230+x,a +0ee2: e8 0a mov a,#$0a +0ee4: d5 10 02 mov $0210+x,a +0ee7: d5 70 02 mov $0270+x,a +0eea: e8 ff mov a,#$ff +0eec: d5 90 02 mov $0290+x,a +0eef: 6f ret + +0ef0: e8 00 mov a,#$00 +0ef2: d5 b8 02 mov $02b8+x,a +0ef5: d5 c0 02 mov $02c0+x,a +0ef8: d5 d0 02 mov $02d0+x,a +0efb: d5 b0 02 mov $02b0+x,a +0efe: d5 28 03 mov $0328+x,a +0f01: d4 b0 mov $b0+x,a +0f03: d4 b8 mov $b8+x,a +0f05: 6f ret + +0f06: e8 aa mov a,#$aa +0f08: c5 f4 00 mov $00f4,a +0f0b: e8 bb mov a,#$bb +0f0d: c5 f5 00 mov $00f5,a +0f10: e5 f4 00 mov a,$00f4 +0f13: 68 cc cmp a,#$cc +0f15: d0 f9 bne $0f10 +0f17: 2f 20 bra $0f39 +0f19: ec f4 00 mov y,$00f4 +0f1c: d0 fb bne $0f19 +0f1e: 5e f4 00 cmp y,$00f4 +0f21: 30 11 bmi $0f34 +0f23: d0 f9 bne $0f1e +0f25: e5 f5 00 mov a,$00f5 +0f28: cc f4 00 mov $00f4,y +0f2b: d7 06 mov ($06)+y,a +0f2d: fc inc y +0f2e: d0 ee bne $0f1e +0f30: ab 07 inc $07 +0f32: 2f ea bra $0f1e +0f34: 5e f4 00 cmp y,$00f4 +0f37: 10 e5 bpl $0f1e +0f39: e5 f6 00 mov a,$00f6 +0f3c: ec f7 00 mov y,$00f7 +0f3f: da 06 movw $06,ya +0f41: ec f4 00 mov y,$00f4 +0f44: e5 f5 00 mov a,$00f5 +0f47: cc f4 00 mov $00f4,y +0f4a: d0 cd bne $0f19 +0f4c: cd 31 mov x,#$31 +0f4e: c9 f1 00 mov $00f1,x +0f51: 6f ret + +0f52: ba 32 movw ya,$32 +0f54: f0 26 beq $0f7c +0f56: 30 11 bmi $0f69 +0f58: 7a 30 addw ya,$30 +0f5a: 10 1a bpl $0f76 +0f5c: e8 00 mov a,#$00 +0f5e: c4 32 mov $32,a +0f60: c4 33 mov $33,a +0f62: c4 10 mov $10,a +0f64: 9c dec a +0f65: 8d 7f mov y,#$7f +0f67: 2f 0d bra $0f76 +0f69: 7a 30 addw ya,$30 +0f6b: 10 09 bpl $0f76 +0f6d: e8 00 mov a,#$00 +0f6f: c4 32 mov $32,a +0f71: c4 33 mov $33,a +0f73: c4 10 mov $10,a +0f75: fd mov y,a +0f76: da 30 movw $30,ya +0f78: dd mov a,y +0f79: 3f 7d 0f call $0f7d +0f7c: 6f ret + +0f7d: 8d 0c mov y,#$0c +0f7f: 3f 3a 10 call $103a +0f82: 8d 1c mov y,#$1c +0f84: 3f 3a 10 call $103a +0f87: 5f 15 10 jmp $1015 + +0f8a: e4 12 mov a,$12 +0f8c: 2d push a +0f8d: 4d push x +0f8e: 4d push x +0f8f: cd 00 mov x,#$00 +0f91: 8d 00 mov y,#$00 +0f93: e8 01 mov a,#$01 +0f95: c4 12 mov $12,a +0f97: ae pop a +0f98: 75 08 02 cmp a,$0208+x +0f9b: d0 0d bne $0faa +0f9d: 2d push a +0f9e: 09 12 15 or ($15),($12) +0fa1: e8 00 mov a,#$00 +0fa3: d5 08 02 mov $0208+x,a +0fa6: d5 28 02 mov $0228+x,a +0fa9: ae pop a +0faa: 3d inc x +0fab: 0b 12 asl $12 +0fad: d0 e9 bne $0f98 +0faf: ce pop x +0fb0: ae pop a +0fb1: c4 12 mov $12,a +0fb3: 6f ret + +0fb4: 4d push x +0fb5: 7d mov a,x +0fb6: 28 07 and a,#$07 +0fb8: 5d mov x,a +0fb9: e8 01 mov a,#$01 +0fbb: 1d dec x +0fbc: 30 03 bmi $0fc1 +0fbe: 1c asl a +0fbf: 2f fa bra $0fbb +0fc1: ce pop x +0fc2: 6f ret + +0fc3: b0 0d bcs $0fd2 +0fc5: 48 ff eor a,#$ff +0fc7: bc inc a +0fc8: 3f d2 0f call $0fd2 +0fcb: da 06 movw $06,ya +0fcd: ba 00 movw ya,$00 +0fcf: 9a 06 subw ya,$06 +0fd1: 6f ret + +0fd2: 8d 00 mov y,#$00 +0fd4: 9e div ya,x +0fd5: 2d push a +0fd6: e8 00 mov a,#$00 +0fd8: 9e div ya,x +0fd9: ee pop y +0fda: 6f ret + +0fdb: e4 18 mov a,$18 +0fdd: 48 ff eor a,#$ff +0fdf: c4 02 mov $02,a +0fe1: e4 1d mov a,$1d +0fe3: 24 02 and a,$02 +0fe5: 8d 2d mov y,#$2d +0fe7: 3f 3a 10 call $103a +0fea: e4 1b mov a,$1b +0fec: 24 02 and a,$02 +0fee: 8d 3d mov y,#$3d +0ff0: 3f 3a 10 call $103a +0ff3: e4 20 mov a,$20 +0ff5: f0 02 beq $0ff9 +0ff7: e8 20 mov a,#$20 +0ff9: 04 13 or a,$13 +0ffb: 8d 6c mov y,#$6c +0ffd: 3f 3a 10 call $103a +1000: e4 20 mov a,$20 +1002: d0 10 bne $1014 +1004: e4 1c mov a,$1c +1006: 24 02 and a,$02 +1008: 8d 4d mov y,#$4d +100a: 3f 3a 10 call $103a +100d: e4 1e mov a,$1e +100f: 8d 0d mov y,#$0d +1011: 3f 3a 10 call $103a +1014: 6f ret + +1015: e4 20 mov a,$20 +1017: f0 04 beq $101d +1019: e8 00 mov a,#$00 +101b: 2f 13 bra $1030 +101d: e4 34 mov a,$34 +101f: 10 03 bpl $1024 +1021: 48 ff eor a,#$ff +1023: bc inc a +1024: eb 31 mov y,$31 +1026: cf mul ya +1027: dd mov a,y +1028: 1c asl a +1029: eb 34 mov y,$34 +102b: 10 03 bpl $1030 +102d: 48 ff eor a,#$ff +102f: bc inc a +1030: 8d 3c mov y,#$3c +1032: 3f 3a 10 call $103a +1035: 8d 2c mov y,#$2c +1037: 5f 3a 10 jmp $103a + +103a: cc f2 00 mov $00f2,y +103d: c5 f3 00 mov $00f3,a +1040: 6f ret + +; pitch table +1041: dw $0042 +1043: dw $0046 +1045: dw $004b +1047: dw $004f +1049: dw $0054 +104b: dw $0059 +104d: dw $005e +104f: dw $0064 +1051: dw $006a +1053: dw $0070 +1055: dw $0077 +1057: dw $007e +1059: dw $0085 +105b: dw $008d +105d: dw $0096 +105f: dw $009f +1061: dw $00a8 +1063: dw $00b2 +1065: dw $00bd +1067: dw $00c8 +1069: dw $00d4 +106b: dw $00e1 +106d: dw $00ee +106f: dw $00fc +1071: dw $010b +1073: dw $011b +1075: dw $012c +1077: dw $013e +1079: dw $0151 +107b: dw $0165 +107d: dw $017a +107f: dw $0191 +1081: dw $01a9 +1083: dw $01c2 +1085: dw $01dd +1087: dw $01f9 +1089: dw $0217 +108b: dw $0237 +108d: dw $0259 +108f: dw $027d +1091: dw $02a3 +1093: dw $02cb +1095: dw $02f5 +1097: dw $0322 +1099: dw $0352 +109b: dw $0385 +109d: dw $03ba +109f: dw $03f3 +10a1: dw $042f +10a3: dw $046f +10a5: dw $04b2 +10a7: dw $04fa +10a9: dw $0546 +10ab: dw $0596 +10ad: dw $05eb +10af: dw $0645 +10b1: dw $06a5 +10b3: dw $070a +10b5: dw $0775 +10b7: dw $07e6 +10b9: dw $085f +10bb: dw $08de +10bd: dw $0965 +10bf: dw $09f4 +10c1: dw $0a8c +10c3: dw $0b2c +10c5: dw $0bd6 +10c7: dw $0c8b +10c9: dw $0d4a +10cb: dw $0e14 +10cd: dw $0eea +10cf: dw $0fcd +10d1: dw $10be + +10d3: db $7f,$7e,$7d,$7c,$7a,$77,$73,$6e +10db: db $69,$67,$64,$50,$46,$3c,$32,$28 +10e3: db $1e,$14,$0a,$05,$00 + +; echo FIR presets +10e8: db $7f,$00,$00,$00,$00,$00,$00,$00 +10f0: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c +10f8: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 +1100: db $34,$33,$00,$d9,$e5,$01,$fc,$eb + +; note dur%'s +1108: db $32,$65,$7f,$98,$b2,$cb,$e5,$fc +; per-note velocity values +1110: db $19,$32,$4c,$65,$72,$7f,$8c,$98 +1118: db $a5,$b2,$bf,$cb,$d8,$e5,$f2,$ff + +1120: db $80,$90,$a0,$b0,$c0,$d0,$e0,$f0 +1128: db $00,$08,$10,$18,$20,$28,$30,$38 + +1130: db $03,$03,$03,$03,$03,$03,$03,$03 + +1138: db $04,$04,$04,$04,$04,$04,$04,$04 diff --git a/snes/NSPC/Monolith/Fatal Fury Special ($0800).bin b/snes/NSPC/Monolith/Fatal Fury Special ($0800).bin new file mode 100644 index 00000000..34dbd282 Binary files /dev/null and b/snes/NSPC/Monolith/Fatal Fury Special ($0800).bin differ diff --git a/snes/NSPC/Monolith/Fatal Fury Special.s b/snes/NSPC/Monolith/Fatal Fury Special.s new file mode 100644 index 00000000..3dca58b3 --- /dev/null +++ b/snes/NSPC/Monolith/Fatal Fury Special.s @@ -0,0 +1,1527 @@ +0800: 20 clrp +0801: cd cf mov x,#$cf +0803: bd mov sp,x +0804: e8 00 mov a,#$00 +0806: 5d mov x,a +0807: af mov (x)+,a +0808: c8 e0 cmp x,#$e0 +080a: d0 fb bne $0807 +080c: bc inc a +080d: 3f 6e 0e call $0e6e +0810: a2 48 set5 $48 +0812: e8 60 mov a,#$60 +0814: 8d 0c mov y,#$0c +0816: 3f d2 09 call $09d2 +0819: 8d 1c mov y,#$1c +081b: 3f d2 09 call $09d2 +081e: e8 00 mov a,#$00 +0820: 8d 2c mov y,#$2c +0822: 3f d2 09 call $09d2 +0825: 8d 3c mov y,#$3c +0827: 3f d2 09 call $09d2 +082a: 8d 4d mov y,#$4d +082c: 3f d2 09 call $09d2 +082f: e8 1e mov a,#$1e +0831: 8d 5d mov y,#$5d +0833: 3f d2 09 call $09d2 +0836: e8 f0 mov a,#$f0 +0838: c5 f1 00 mov $00f1,a +083b: e8 10 mov a,#$10 +083d: c5 fa 00 mov $00fa,a +0840: c4 53 mov $53,a +0842: e8 01 mov a,#$01 +0844: c5 f1 00 mov $00f1,a +0847: e8 02 mov a,#$02 +0849: c5 a1 03 mov $03a1,a +084c: e8 00 mov a,#$00 +084e: c5 a0 03 mov $03a0,a +0851: e4 1b mov a,$1b +0853: d0 54 bne $08a9 +0855: 8d 0a mov y,#$0a +0857: ad 05 cmp y,#$05 +0859: f0 07 beq $0862 +085b: b0 08 bcs $0865 +085d: 69 4d 4c cmp ($4c),($4d) +0860: d0 11 bne $0873 +0862: e3 4c 0e bbs7 $4c,$0873 +0865: f6 ff 12 mov a,$12ff+y +0868: c5 f2 00 mov $00f2,a +086b: f6 09 13 mov a,$1309+y +086e: 5d mov x,a +086f: e6 mov a,(x) +0870: c5 f3 00 mov $00f3,a +0873: fe e2 dbnz y,$0857 +0875: cb 45 mov $45,y +0877: cb 46 mov $46,y +0879: e4 18 mov a,$18 +087b: 44 19 eor a,$19 +087d: 5c lsr a +087e: 5c lsr a +087f: ed notc +0880: 6b 18 ror $18 +0882: 6b 19 ror $19 +0884: ec fd 00 mov y,$00fd +0887: f0 fb beq $0884 +0889: 6d push y +088a: e8 20 mov a,#$20 +088c: cf mul ya +088d: 60 clrc +088e: 84 43 adc a,$43 +0890: c4 43 mov $43,a +0892: 90 0a bcc $089e +0894: 3f d9 09 call $09d9 +0897: 69 4d 4c cmp ($4c),($4d) +089a: f0 02 beq $089e +089c: ab 4c inc $4c +089e: e4 53 mov a,$53 +08a0: ee pop y +08a1: cf mul ya +08a2: 60 clrc +08a3: 84 51 adc a,$51 +08a5: c4 51 mov $51,a +08a7: 90 0b bcc $08b4 +08a9: 3f 31 0b call $0b31 +08ac: cd 00 mov x,#$00 +08ae: 3f cd 08 call $08cd +08b1: 5f 51 08 jmp $0851 + +08b4: e4 04 mov a,$04 +08b6: f0 12 beq $08ca +08b8: cd 00 mov x,#$00 +08ba: 8f 01 47 mov $47,#$01 +08bd: f4 31 mov a,$31+x +08bf: f0 03 beq $08c4 +08c1: 3f 28 12 call $1228 +08c4: 3d inc x +08c5: 3d inc x +08c6: 0b 47 asl $47 +08c8: d0 f3 bne $08bd +08ca: 5f 51 08 jmp $0851 + +08cd: f4 04 mov a,$04+x +08cf: d5 f4 00 mov $00f4+x,a +08d2: f5 f4 00 mov a,$00f4+x +08d5: 75 f4 00 cmp a,$00f4+x +08d8: d0 f8 bne $08d2 +08da: d4 00 mov $00+x,a +08dc: 6f ret + +08dd: ad ca cmp y,#$ca +08df: 90 05 bcc $08e6 +08e1: 3f 98 0c call $0c98 +08e4: 8d a4 mov y,#$a4 +08e6: ad c8 cmp y,#$c8 +08e8: b0 f2 bcs $08dc +08ea: e4 1a mov a,$1a +08ec: 24 47 and a,$47 +08ee: d0 ec bne $08dc +08f0: dd mov a,y +08f1: 28 7f and a,#$7f +08f3: 60 clrc +08f4: 84 50 adc a,$50 +08f6: 60 clrc +08f7: 95 f0 02 adc a,$02f0+x +08fa: d5 61 03 mov $0361+x,a +08fd: f5 81 03 mov a,$0381+x +0900: d5 60 03 mov $0360+x,a +0903: f5 b1 02 mov a,$02b1+x +0906: 5c lsr a +0907: e8 00 mov a,#$00 +0909: 7c ror a +090a: d5 a0 02 mov $02a0+x,a +090d: e8 00 mov a,#$00 +090f: d4 b0 mov $b0+x,a +0911: d5 00 01 mov $0100+x,a +0914: d5 d0 02 mov $02d0+x,a +0917: d4 c0 mov $c0+x,a +0919: 09 47 5e or ($5e),($47) +091c: 09 47 45 or ($45),($47) +091f: f5 80 02 mov a,$0280+x +0922: d4 a0 mov $a0+x,a +0924: f0 1e beq $0944 +0926: f5 81 02 mov a,$0281+x +0929: d4 a1 mov $a1+x,a +092b: f5 90 02 mov a,$0290+x +092e: d0 0a bne $093a +0930: f5 61 03 mov a,$0361+x +0933: 80 setc +0934: b5 91 02 sbc a,$0291+x +0937: d5 61 03 mov $0361+x,a +093a: f5 91 02 mov a,$0291+x +093d: 60 clrc +093e: 95 61 03 adc a,$0361+x +0941: 3f 82 0f call $0f82 +0944: 3f 9a 0f call $0f9a +0947: 8d 00 mov y,#$00 +0949: e4 11 mov a,$11 +094b: 80 setc +094c: a8 34 sbc a,#$34 +094e: b0 09 bcs $0959 +0950: e4 11 mov a,$11 +0952: 80 setc +0953: a8 13 sbc a,#$13 +0955: b0 06 bcs $095d +0957: dc dec y +0958: 1c asl a +0959: 7a 10 addw ya,$10 +095b: da 10 movw $10,ya +095d: 4d push x +095e: e4 11 mov a,$11 +0960: 1c asl a +0961: 8d 00 mov y,#$00 +0963: cd 18 mov x,#$18 +0965: 9e div ya,x +0966: 5d mov x,a +0967: f6 15 13 mov a,$1315+y +096a: c4 15 mov $15,a +096c: f6 14 13 mov a,$1314+y +096f: c4 14 mov $14,a +0971: f6 17 13 mov a,$1317+y +0974: 2d push a +0975: f6 16 13 mov a,$1316+y +0978: ee pop y +0979: 9a 14 subw ya,$14 +097b: eb 10 mov y,$10 +097d: cf mul ya +097e: dd mov a,y +097f: 8d 00 mov y,#$00 +0981: 7a 14 addw ya,$14 +0983: cb 15 mov $15,y +0985: 1c asl a +0986: 2b 15 rol $15 +0988: c4 14 mov $14,a +098a: 2f 04 bra $0990 +098c: 4b 15 lsr $15 +098e: 7c ror a +098f: 3d inc x +0990: c8 06 cmp x,#$06 +0992: d0 f8 bne $098c +0994: c4 14 mov $14,a +0996: ce pop x +0997: f5 20 02 mov a,$0220+x +099a: eb 15 mov y,$15 +099c: cf mul ya +099d: da 16 movw $16,ya +099f: f5 20 02 mov a,$0220+x +09a2: eb 14 mov y,$14 +09a4: cf mul ya +09a5: 6d push y +09a6: f5 21 02 mov a,$0221+x +09a9: eb 14 mov y,$14 +09ab: cf mul ya +09ac: 7a 16 addw ya,$16 +09ae: da 16 movw $16,ya +09b0: f5 21 02 mov a,$0221+x +09b3: eb 15 mov y,$15 +09b5: cf mul ya +09b6: fd mov y,a +09b7: ae pop a +09b8: 7a 16 addw ya,$16 +09ba: da 16 movw $16,ya +09bc: 7d mov a,x +09bd: 9f xcn a +09be: 5c lsr a +09bf: 08 02 or a,#$02 +09c1: fd mov y,a +09c2: e4 16 mov a,$16 +09c4: 3f ca 09 call $09ca +09c7: fc inc y +09c8: e4 17 mov a,$17 +09ca: 2d push a +09cb: e4 47 mov a,$47 +09cd: 24 1a and a,$1a +09cf: ae pop a +09d0: d0 06 bne $09d8 +09d2: cc f2 00 mov $00f2,y +09d5: c5 f3 00 mov $00f3,a +09d8: 6f ret + +09d9: e5 f6 00 mov a,$00f6 +09dc: 65 f6 00 cmp a,$00f6 +09df: d0 f8 bne $09d9 +09e1: 64 02 cmp a,$02 +09e3: d0 03 bne $09e8 +09e5: 5f b3 0a jmp $0ab3 + +09e8: c4 02 mov $02,a +09ea: 68 ff cmp a,#$ff +09ec: d0 03 bne $09f1 +09ee: 5f b3 0a jmp $0ab3 + +09f1: e5 f7 00 mov a,$00f7 +09f4: 65 f7 00 cmp a,$00f7 +09f7: d0 f8 bne $09f1 +09f9: c4 03 mov $03,a +09fb: e8 ff mov a,#$ff +09fd: c5 f6 00 mov $00f6,a +0a00: e4 02 mov a,$02 +0a02: 28 80 and a,#$80 +0a04: d0 70 bne $0a76 +0a06: e4 02 mov a,$02 +0a08: 28 40 and a,#$40 +0a0a: 5c lsr a +0a0b: 5c lsr a +0a0c: 5d mov x,a +0a0d: e4 02 mov a,$02 +0a0f: 28 3f and a,#$3f +0a11: d5 ad 13 mov $13ad+x,a +0a14: e4 03 mov a,$03 +0a16: 5c lsr a +0a17: 28 40 and a,#$40 +0a19: 60 clrc +0a1a: 88 bf adc a,#$bf +0a1c: d5 b4 13 mov $13b4+x,a +0a1f: e4 03 mov a,$03 +0a21: 28 0f and a,#$0f +0a23: fd mov y,a +0a24: f6 94 13 mov a,$1394+y +0a27: d5 b2 13 mov $13b2+x,a +0a2a: e4 03 mov a,$03 +0a2c: 9f xcn a +0a2d: 28 03 and a,#$03 +0a2f: fd mov y,a +0a30: f6 a4 13 mov a,$13a4+y +0a33: d5 b7 13 mov $13b7+x,a +0a36: e4 03 mov a,$03 +0a38: 28 40 and a,#$40 +0a3a: 9f xcn a +0a3b: 5c lsr a +0a3c: 5c lsr a +0a3d: d5 af 13 mov $13af+x,a +0a40: e4 02 mov a,$02 +0a42: 5c lsr a +0a43: 5c lsr a +0a44: 5c lsr a +0a45: 5c lsr a +0a46: 5c lsr a +0a47: 28 02 and a,#$02 +0a49: 5d mov x,a +0a4a: 60 clrc +0a4b: 88 0c adc a,#$0c +0a4d: fd mov y,a +0a4e: 6d push y +0a4f: f5 a8 13 mov a,$13a8+x +0a52: d6 30 00 mov $0030+y,a +0a55: f5 a9 13 mov a,$13a9+x +0a58: d6 31 00 mov $0031+y,a +0a5b: ce pop x +0a5c: e4 02 mov a,$02 +0a5e: 28 40 and a,#$40 +0a60: 88 40 adc a,#$40 +0a62: c4 47 mov $47,a +0a64: e8 00 mov a,#$00 +0a66: 3f 98 0c call $0c98 +0a69: e8 00 mov a,#$00 +0a6b: d4 80 mov $80+x,a +0a6d: d4 90 mov $90+x,a +0a6f: d4 91 mov $91+x,a +0a71: bc inc a +0a72: d4 70 mov $70+x,a +0a74: 2f 3d bra $0ab3 +0a76: e4 02 mov a,$02 +0a78: 28 1f and a,#$1f +0a7a: f0 08 beq $0a84 +0a7c: 9c dec a +0a7d: f0 10 beq $0a8f +0a7f: 9c dec a +0a80: f0 21 beq $0aa3 +0a82: 2f 2f bra $0ab3 +0a84: e8 01 mov a,#$01 +0a86: c4 5a mov $5a,a +0a88: e4 03 mov a,$03 +0a8a: 3f 5e 0d call $0d5e +0a8d: 2f 24 bra $0ab3 +0a8f: e4 03 mov a,$03 +0a91: c5 a1 03 mov $03a1,a +0a94: d0 05 bne $0a9b +0a96: e8 0a mov a,#$0a +0a98: 3f f1 0c call $0cf1 +0a9b: e4 03 mov a,$03 +0a9d: 5c lsr a +0a9e: c5 a0 03 mov $03a0,a +0aa1: 2f 10 bra $0ab3 +0aa3: cd 00 mov x,#$00 +0aa5: 8d 02 mov y,#$02 +0aa7: f5 d0 13 mov a,$13d0+x +0aaa: d5 18 14 mov $1418+x,a +0aad: 3d inc x +0aae: dc dec y +0aaf: d0 f6 bne $0aa7 +0ab1: 2f 00 bra $0ab3 +0ab3: 6f ret + +0ab4: 8d 00 mov y,#$00 +0ab6: f7 40 mov a,($40)+y +0ab8: 3a 40 incw $40 +0aba: 2d push a +0abb: f7 40 mov a,($40)+y +0abd: 3a 40 incw $40 +0abf: fd mov y,a +0ac0: ae pop a +0ac1: 6f ret + +; load song +0ac2: 3f 2e 13 call $132e +0ac5: c4 08 mov $08,a +0ac7: c4 04 mov $04,a +0ac9: 1c asl a +0aca: f0 0d beq $0ad9 +0acc: 5d mov x,a +0acd: f5 17 14 mov a,$1417+x +0ad0: fd mov y,a +0ad1: f5 16 14 mov a,$1416+x +0ad4: da 40 movw $40,ya +0ad6: 8f 02 0c mov $0c,#$02 +0ad9: e8 00 mov a,#$00 +0adb: fd mov y,a +0adc: da 60 movw $60,ya +0ade: da 62 movw $62,ya +0ae0: 3f 6e 0e call $0e6e +0ae3: a2 48 set5 $48 +0ae5: e4 1a mov a,$1a +0ae7: 48 ff eor a,#$ff +0ae9: 0e 46 00 tset1 $0046 +0aec: 6f ret + +0aed: cd 0e mov x,#$0e +0aef: 8f 80 47 mov $47,#$80 +0af2: e8 a0 mov a,#$a0 +0af4: d5 01 03 mov $0301+x,a +0af7: e8 0a mov a,#$0a +0af9: 3f f1 0c call $0cf1 +0afc: d5 11 02 mov $0211+x,a +0aff: d5 81 03 mov $0381+x,a +0b02: d5 f0 02 mov $02f0+x,a +0b05: d5 80 02 mov $0280+x,a +0b08: d5 00 04 mov $0400+x,a +0b0b: d4 b1 mov $b1+x,a +0b0d: d4 c1 mov $c1+x,a +0b0f: d5 90 03 mov $0390+x,a +0b12: d5 91 03 mov $0391+x,a +0b15: 1d dec x +0b16: 1d dec x +0b17: 4b 47 lsr $47 +0b19: d0 d7 bne $0af2 +0b1b: c4 5a mov $5a,a +0b1d: c4 68 mov $68,a +0b1f: c4 54 mov $54,a +0b21: c4 50 mov $50,a +0b23: c4 42 mov $42,a +0b25: c4 5f mov $5f,a +0b27: 8f ff 59 mov $59,#$ff +0b2a: 8f 20 53 mov $53,#$20 +0b2d: 3f 83 13 call $1383 +0b30: 6f ret + +0b31: eb 08 mov y,$08 +0b33: e4 00 mov a,$00 +0b35: c4 08 mov $08,a +0b37: 68 f0 cmp a,#$f0 +0b39: f0 9e beq $0ad9 +0b3b: 68 f1 cmp a,#$f1 +0b3d: f0 0e beq $0b4d +0b3f: 68 ff cmp a,#$ff +0b41: d0 03 bne $0b46 +0b43: 5f c2 0a jmp $0ac2 + +0b46: 7e 00 cmp y,$00 +0b48: f0 03 beq $0b4d +0b4a: 5f c7 0a jmp $0ac7 + +0b4d: e4 04 mov a,$04 +0b4f: f0 df beq $0b30 +0b51: e4 0c mov a,$0c +0b53: f0 5d beq $0bb2 +0b55: 6e 0c 95 dbnz $0c,$0aed +0b58: 3f b4 0a call $0ab4 +0b5b: d0 25 bne $0b82 +0b5d: fd mov y,a +0b5e: d0 03 bne $0b63 +0b60: 5f c7 0a jmp $0ac7 + +0b63: 68 80 cmp a,#$80 +0b65: f0 06 beq $0b6d +0b67: 68 81 cmp a,#$81 +0b69: d0 06 bne $0b71 +0b6b: e8 00 mov a,#$00 +0b6d: c4 1b mov $1b,a +0b6f: 2f e7 bra $0b58 +0b71: 8b 42 dec $42 +0b73: 10 02 bpl $0b77 +0b75: c4 42 mov $42,a +0b77: 3f b4 0a call $0ab4 +0b7a: f8 42 mov x,$42 +0b7c: f0 da beq $0b58 +0b7e: da 40 movw $40,ya +0b80: 2f d6 bra $0b58 +0b82: da 16 movw $16,ya +0b84: 8d 0f mov y,#$0f +0b86: f7 16 mov a,($16)+y +0b88: d6 30 00 mov $0030+y,a +0b8b: dc dec y +0b8c: 10 f8 bpl $0b86 +0b8e: cd 00 mov x,#$00 +0b90: 8f 01 47 mov $47,#$01 +0b93: f4 31 mov a,$31+x +0b95: f0 0a beq $0ba1 +0b97: f5 11 02 mov a,$0211+x +0b9a: d0 05 bne $0ba1 +0b9c: e8 00 mov a,#$00 +0b9e: 3f 98 0c call $0c98 +0ba1: e8 00 mov a,#$00 +0ba3: d4 80 mov $80+x,a +0ba5: d4 90 mov $90+x,a +0ba7: d4 91 mov $91+x,a +0ba9: bc inc a +0baa: d4 70 mov $70+x,a +0bac: 3d inc x +0bad: 3d inc x +0bae: 0b 47 asl $47 +0bb0: d0 e1 bne $0b93 +0bb2: cd 00 mov x,#$00 +0bb4: d8 5e mov $5e,x +0bb6: 8f 01 47 mov $47,#$01 +0bb9: d8 44 mov $44,x +0bbb: f4 31 mov a,$31+x +0bbd: f0 74 beq $0c33 +0bbf: 9b 70 dec $70+x +0bc1: d0 66 bne $0c29 +0bc3: 3f 89 0c call $0c89 +0bc6: d0 17 bne $0bdf +0bc8: f4 80 mov a,$80+x +0bca: f0 8c beq $0b58 +0bcc: 3f ff 0d call $0dff +0bcf: 9b 80 dec $80+x +0bd1: d0 f0 bne $0bc3 +0bd3: f5 30 02 mov a,$0230+x +0bd6: d4 30 mov $30+x,a +0bd8: f5 31 02 mov a,$0231+x +0bdb: d4 31 mov $31+x,a +0bdd: 2f e4 bra $0bc3 +0bdf: 30 20 bmi $0c01 +0be1: d5 00 02 mov $0200+x,a +0be4: 3f 89 0c call $0c89 +0be7: 30 18 bmi $0c01 +0be9: 2d push a +0bea: 9f xcn a +0beb: 28 07 and a,#$07 +0bed: fd mov y,a +0bee: f6 00 14 mov a,$1400+y +0bf1: d5 01 02 mov $0201+x,a +0bf4: ae pop a +0bf5: 28 0f and a,#$0f +0bf7: fd mov y,a +0bf8: f6 08 14 mov a,$1408+y +0bfb: d5 10 02 mov $0210+x,a +0bfe: 3f 89 0c call $0c89 +0c01: 68 e0 cmp a,#$e0 +0c03: 90 07 bcc $0c0c +0c05: 3f 77 0c call $0c77 +0c08: b0 02 bcs $0c0c +0c0a: 2f b7 bra $0bc3 +0c0c: f5 00 04 mov a,$0400+x +0c0f: 04 1b or a,$1b +0c11: d0 04 bne $0c17 +0c13: dd mov a,y +0c14: 3f dd 08 call $08dd +0c17: f5 00 02 mov a,$0200+x +0c1a: d4 70 mov $70+x,a +0c1c: fd mov y,a +0c1d: f5 01 02 mov a,$0201+x +0c20: cf mul ya +0c21: dd mov a,y +0c22: d0 01 bne $0c25 +0c24: bc inc a +0c25: d4 71 mov $71+x,a +0c27: 2f 07 bra $0c30 +0c29: e4 1b mov a,$1b +0c2b: d0 06 bne $0c33 +0c2d: 3f 36 11 call $1136 +0c30: 3f 62 0f call $0f62 +0c33: 3d inc x +0c34: 3d inc x +0c35: 0b 47 asl $47 +0c37: d0 80 bne $0bb9 +0c39: e4 68 mov a,$68 +0c3b: f0 15 beq $0c52 +0c3d: ba 64 movw ya,$64 +0c3f: 7a 60 addw ya,$60 +0c41: da 60 movw $60,ya +0c43: ba 66 movw ya,$66 +0c45: 7a 62 addw ya,$62 +0c47: 6e 68 06 dbnz $68,$0c50 +0c4a: ba 68 movw ya,$68 +0c4c: da 60 movw $60,ya +0c4e: eb 6a mov y,$6a +0c50: da 62 movw $62,ya +0c52: e4 5a mov a,$5a +0c54: f0 0e beq $0c64 +0c56: ba 5c movw ya,$5c +0c58: 7a 58 addw ya,$58 +0c5a: 6e 5a 02 dbnz $5a,$0c5f +0c5d: ba 5a movw ya,$5a +0c5f: da 58 movw $58,ya +0c61: 8f ff 5e mov $5e,#$ff +0c64: cd 00 mov x,#$00 +0c66: 8f 01 47 mov $47,#$01 +0c69: f4 31 mov a,$31+x +0c6b: f0 03 beq $0c70 +0c6d: 3f 1e 10 call $101e +0c70: 3d inc x +0c71: 3d inc x +0c72: 0b 47 asl $47 +0c74: d0 f3 bne $0c69 +0c76: 6f ret + +0c77: 1c asl a +0c78: fd mov y,a +0c79: f6 02 0f mov a,$0f02+y +0c7c: 2d push a +0c7d: f6 01 0f mov a,$0f01+y +0c80: 2d push a +0c81: dd mov a,y +0c82: 5c lsr a +0c83: fd mov y,a +0c84: f6 9f 0f mov a,$0f9f+y +0c87: f0 08 beq $0c91 +0c89: e7 30 mov a,($30+x) +0c8b: bb 30 inc $30+x +0c8d: d0 02 bne $0c91 +0c8f: bb 31 inc $31+x +0c91: fd mov y,a +0c92: 6f ret + +; vcmd e0 - set instrument +0c93: 3f 98 0c call $0c98 +0c96: 60 clrc +0c97: 6f ret + +0c98: d5 11 02 mov $0211+x,a +0c9b: fd mov y,a +0c9c: 10 06 bpl $0ca4 +0c9e: 80 setc +0c9f: a8 ca sbc a,#$ca +0ca1: 60 clrc +0ca2: 84 5f adc a,$5f +0ca4: 8d 06 mov y,#$06 +0ca6: cf mul ya +0ca7: da 14 movw $14,ya +0ca9: 60 clrc +0caa: 98 00 14 adc $14,#$00 +0cad: 98 1c 15 adc $15,#$1c +0cb0: e4 1a mov a,$1a +0cb2: 24 47 and a,$47 +0cb4: d0 3a bne $0cf0 +0cb6: 4d push x +0cb7: 7d mov a,x +0cb8: 9f xcn a +0cb9: 5c lsr a +0cba: 08 04 or a,#$04 +0cbc: 5d mov x,a +0cbd: 8d 00 mov y,#$00 +0cbf: f7 14 mov a,($14)+y +0cc1: 10 0e bpl $0cd1 +0cc3: 28 1f and a,#$1f +0cc5: 38 20 48 and $48,#$20 +0cc8: 0e 48 00 tset1 $0048 +0ccb: 09 47 49 or ($49),($47) +0cce: dd mov a,y +0ccf: 2f 07 bra $0cd8 +0cd1: e4 47 mov a,$47 +0cd3: 4e 49 00 tclr1 $0049 +0cd6: f7 14 mov a,($14)+y +0cd8: c9 f2 00 mov $00f2,x +0cdb: c5 f3 00 mov $00f3,a +0cde: 3d inc x +0cdf: fc inc y +0ce0: ad 04 cmp y,#$04 +0ce2: d0 f2 bne $0cd6 +0ce4: ce pop x +0ce5: f7 14 mov a,($14)+y +0ce7: d5 21 02 mov $0221+x,a +0cea: fc inc y +0ceb: f7 14 mov a,($14)+y +0ced: d5 20 02 mov $0220+x,a +0cf0: 6f ret + +; vcmd e1 - pan +0cf1: ec a1 03 mov y,$03a1 +0cf4: d0 02 bne $0cf8 +0cf6: e8 0a mov a,#$0a +0cf8: d5 51 03 mov $0351+x,a +0cfb: 28 1f and a,#$1f +0cfd: d5 31 03 mov $0331+x,a +0d00: e8 00 mov a,#$00 +0d02: d5 30 03 mov $0330+x,a +0d05: 60 clrc +0d06: 6f ret + +; vcmd e2 - pan fade +0d07: ec a1 03 mov y,$03a1 +0d0a: d0 02 bne $0d0e +0d0c: e8 01 mov a,#$01 +0d0e: d4 91 mov $91+x,a +0d10: 2d push a +0d11: 3f 89 0c call $0c89 +0d14: ec a1 03 mov y,$03a1 +0d17: d0 02 bne $0d1b +0d19: e8 0a mov a,#$0a +0d1b: d5 50 03 mov $0350+x,a +0d1e: 80 setc +0d1f: b5 31 03 sbc a,$0331+x +0d22: ce pop x +0d23: 3f a5 0f call $0fa5 +0d26: d5 40 03 mov $0340+x,a +0d29: dd mov a,y +0d2a: d5 41 03 mov $0341+x,a +0d2d: 60 clrc +0d2e: 6f ret + +; vcmd e3 - pan +0d2f: d5 b0 02 mov $02b0+x,a +0d32: 3f 89 0c call $0c89 +0d35: d5 a1 02 mov $02a1+x,a +0d38: 3f 89 0c call $0c89 +; vcmd e4 - pan fade +0d3b: d4 b1 mov $b1+x,a +0d3d: d5 c1 02 mov $02c1+x,a +0d40: e8 00 mov a,#$00 +0d42: d5 b1 02 mov $02b1+x,a +0d45: 60 clrc +0d46: 6f ret + +; vcmd f0 - vibrato fade +0d47: d5 b1 02 mov $02b1+x,a +0d4a: 2d push a +0d4b: 8d 00 mov y,#$00 +0d4d: f4 b1 mov a,$b1+x +0d4f: ce pop x +0d50: 9e div ya,x +0d51: f8 44 mov x,$44 +0d53: d5 c0 02 mov $02c0+x,a +0d56: 60 clrc +0d57: 6f ret + +; vcmd e5 - master volume +0d58: e8 00 mov a,#$00 +0d5a: da 58 movw $58,ya +0d5c: 60 clrc +0d5d: 6f ret + +; vcmd e6 - master volume fade +0d5e: c4 5b mov $5b,a +0d60: 80 setc +0d61: a4 59 sbc a,$59 +0d63: f8 5a mov x,$5a +0d65: 3f a5 0f call $0fa5 +0d68: da 5c movw $5c,ya +0d6a: 60 clrc +0d6b: 6f ret + +; vcmd e7 - tempo +0d6c: e8 00 mov a,#$00 +0d6e: da 52 movw $52,ya +0d70: 60 clrc +0d71: 6f ret + +; vcmd e8 - tempo fade +0d72: c4 54 mov $54,a +0d74: 3f 89 0c call $0c89 +0d77: c4 55 mov $55,a +0d79: 80 setc +0d7a: a4 53 sbc a,$53 +0d7c: f8 54 mov x,$54 +0d7e: 3f a5 0f call $0fa5 +0d81: da 56 movw $56,ya +0d83: 60 clrc +0d84: 6f ret + +; vcmd e9 - global transpose +0d85: c4 50 mov $50,a +0d87: 60 clrc +0d88: 6f ret + +; vcmd ea - per-voice transpose +0d89: d5 f0 02 mov $02f0+x,a +0d8c: 60 clrc +0d8d: 6f ret + +; vcmd eb - tremolo on +0d8e: d5 e0 02 mov $02e0+x,a +0d91: 3f 89 0c call $0c89 +0d94: d5 d1 02 mov $02d1+x,a +0d97: 3f 89 0c call $0c89 +; vcmd ec - tremolo off +0d9a: d4 c1 mov $c1+x,a +0d9c: 60 clrc +0d9d: 6f ret + +; vcmd f1 - pitch envelope (release) +0d9e: e8 01 mov a,#$01 +0da0: 2f 02 bra $0da4 +; vcmd f2 - pitch envelope (attack) +0da2: e8 00 mov a,#$00 +0da4: d5 90 02 mov $0290+x,a +0da7: dd mov a,y +0da8: d5 81 02 mov $0281+x,a +0dab: 3f 89 0c call $0c89 +0dae: d5 80 02 mov $0280+x,a +0db1: 3f 89 0c call $0c89 +0db4: d5 91 02 mov $0291+x,a +0db7: 60 clrc +0db8: 6f ret + +; vcmd f3 - pitch envelope off +0db9: d5 80 02 mov $0280+x,a +0dbc: 60 clrc +0dbd: 6f ret + +; vcmd ed - volume +0dbe: d5 01 03 mov $0301+x,a +0dc1: e8 00 mov a,#$00 +0dc3: d5 00 03 mov $0300+x,a +0dc6: 60 clrc +0dc7: 6f ret + +; vcmd ee - volume fade +0dc8: d4 90 mov $90+x,a +0dca: 2d push a +0dcb: 3f 89 0c call $0c89 +0dce: d5 20 03 mov $0320+x,a +0dd1: 80 setc +0dd2: b5 01 03 sbc a,$0301+x +0dd5: ce pop x +0dd6: 3f a5 0f call $0fa5 +0dd9: d5 10 03 mov $0310+x,a +0ddc: dd mov a,y +0ddd: d5 11 03 mov $0311+x,a +0de0: 60 clrc +0de1: 6f ret + +; vcmd f4 - tuning +0de2: d5 81 03 mov $0381+x,a +0de5: 60 clrc +0de6: 6f ret + +; vcmd ef - call subroutine +0de7: d5 40 02 mov $0240+x,a +0dea: 3f 89 0c call $0c89 +0ded: d5 41 02 mov $0241+x,a +0df0: 3f 89 0c call $0c89 +0df3: d4 80 mov $80+x,a +0df5: f4 30 mov a,$30+x +0df7: d5 30 02 mov $0230+x,a +0dfa: f4 31 mov a,$31+x +0dfc: d5 31 02 mov $0231+x,a +0dff: f5 40 02 mov a,$0240+x +0e02: d4 30 mov $30+x,a +0e04: f5 41 02 mov a,$0241+x +0e07: d4 31 mov $31+x,a +0e09: 60 clrc +0e0a: 6f ret + +; vcmd f5 - echo vbits/volume +0e0b: c4 4a mov $4a,a +0e0d: 3f 89 0c call $0c89 +0e10: e8 00 mov a,#$00 +0e12: da 60 movw $60,ya +0e14: 3f 89 0c call $0c89 +0e17: e8 00 mov a,#$00 +0e19: da 62 movw $62,ya +0e1b: 60 clrc +0e1c: 6f ret + +; vcmd f8 - echo volume fade +0e1d: c4 68 mov $68,a +0e1f: 3f 89 0c call $0c89 +0e22: c4 69 mov $69,a +0e24: 80 setc +0e25: a4 61 sbc a,$61 +0e27: f8 68 mov x,$68 +0e29: 3f a5 0f call $0fa5 +0e2c: da 64 movw $64,ya +0e2e: 3f 89 0c call $0c89 +0e31: c4 6a mov $6a,a +0e33: 80 setc +0e34: a4 63 sbc a,$63 +0e36: f8 68 mov x,$68 +0e38: 3f a5 0f call $0fa5 +0e3b: da 66 movw $66,ya +0e3d: 60 clrc +0e3e: 6f ret + +; vcmd f6 - disable echo +0e3f: da 60 movw $60,ya +0e41: da 62 movw $62,ya +0e43: a2 48 set5 $48 +0e45: 60 clrc +0e46: 6f ret + +; vcmd fe - echo off +0e47: b2 48 clr5 $48 +0e49: 60 clrc +0e4a: 6f ret + +; vcmd f7 - set echo params +0e4b: 3f 6e 0e call $0e6e +0e4e: 3f 89 0c call $0c89 +0e51: c4 4e mov $4e,a +0e53: 3f 89 0c call $0c89 +0e56: 8d 08 mov y,#$08 +0e58: cf mul ya +0e59: 5d mov x,a +0e5a: 8d 0f mov y,#$0f +0e5c: f5 e0 12 mov a,$12e0+x +0e5f: 3f d2 09 call $09d2 +0e62: 3d inc x +0e63: dd mov a,y +0e64: 60 clrc +0e65: 88 10 adc a,#$10 +0e67: fd mov y,a +0e68: 10 f2 bpl $0e5c +0e6a: f8 44 mov x,$44 +0e6c: 60 clrc +0e6d: 6f ret + +0e6e: c4 4d mov $4d,a +0e70: 8d 7d mov y,#$7d +0e72: cc f2 00 mov $00f2,y +0e75: e5 f3 00 mov a,$00f3 +0e78: 64 4d cmp a,$4d +0e7a: f0 2b beq $0ea7 +0e7c: 28 0f and a,#$0f +0e7e: 48 ff eor a,#$ff +0e80: f3 4c 03 bbc7 $4c,$0e86 +0e83: 60 clrc +0e84: 84 4c adc a,$4c +0e86: c4 4c mov $4c,a +0e88: 8d 04 mov y,#$04 +0e8a: f6 ff 12 mov a,$12ff+y +0e8d: c5 f2 00 mov $00f2,a +0e90: e8 00 mov a,#$00 +0e92: c5 f3 00 mov $00f3,a +0e95: fe f3 dbnz y,$0e8a +0e97: e4 48 mov a,$48 +0e99: 08 20 or a,#$20 +0e9b: 8d 6c mov y,#$6c +0e9d: 3f d2 09 call $09d2 +0ea0: e4 4d mov a,$4d +0ea2: 8d 7d mov y,#$7d +0ea4: 3f d2 09 call $09d2 +0ea7: 1c asl a +0ea8: 1c asl a +0ea9: 1c asl a +0eaa: 48 ff eor a,#$ff +0eac: 80 setc +0ead: 88 ff adc a,#$ff +0eaf: 8d 6d mov y,#$6d +0eb1: 5f d2 09 jmp $09d2 + +; vcmd fa - set perc patch base +0eb4: c4 5f mov $5f,a +0eb6: 60 clrc +0eb7: 6f ret + +; vcmd fb +0eb8: d5 90 03 mov $0390+x,a +0ebb: 3f 89 0c call $0c89 +0ebe: d5 91 03 mov $0391+x,a +0ec1: e5 a1 03 mov a,$03a1 +0ec4: 68 02 cmp a,#$02 +0ec6: f0 08 beq $0ed0 +0ec8: e8 00 mov a,#$00 +0eca: d5 90 03 mov $0390+x,a +0ecd: d5 91 03 mov $0391+x,a +0ed0: 60 clrc +0ed1: 6f ret + +; vcmd fc - decrement position +0ed2: e8 00 mov a,#$00 +0ed4: d5 31 02 mov $0231+x,a +0ed7: d5 41 02 mov $0241+x,a +0eda: d4 80 mov $80+x,a +0edc: f4 30 mov a,$30+x +0ede: 9b 30 dec $30+x +0ee0: 80 setc +0ee1: a8 01 sbc a,#$01 +0ee3: b0 02 bcs $0ee7 +0ee5: 9b 31 dec $31+x +0ee7: 80 setc +0ee8: 6f ret + +; vcmd fd - set instrument parameters +0ee9: fd mov y,a +0eea: e4 1a mov a,$1a +0eec: 24 47 and a,$47 +0eee: d0 3a bne $0f2a +0ef0: e8 15 mov a,#$15 +0ef2: d5 11 02 mov $0211+x,a +0ef5: 8f ca 14 mov $14,#$ca +0ef8: 8f 13 15 mov $15,#$13 +0efb: 4d push x +0efc: 7d mov a,x +0efd: 9f xcn a +0efe: 5c lsr a +0eff: 08 04 or a,#$04 +0f01: 5d mov x,a +0f02: dd mov a,y +0f03: 28 1f and a,#$1f +0f05: 38 20 48 and $48,#$20 +0f08: 0e 48 00 tset1 $0048 +0f0b: 09 47 49 or ($49),($47) +0f0e: 8d 00 mov y,#$00 +0f10: f7 14 mov a,($14)+y +0f12: c9 f2 00 mov $00f2,x +0f15: c5 f3 00 mov $00f3,a +0f18: 3d inc x +0f19: fc inc y +0f1a: ad 04 cmp y,#$04 +0f1c: d0 f2 bne $0f10 +0f1e: ce pop x +0f1f: f7 14 mov a,($14)+y +0f21: d5 21 02 mov $0221+x,a +0f24: fc inc y +0f25: f7 14 mov a,($14)+y +0f27: d5 20 02 mov $0220+x,a +0f2a: 60 clrc +0f2b: 6f ret + +0f2c: 4d push x +0f2d: 2d push a +0f2e: f5 11 02 mov a,$0211+x +0f31: 8d 06 mov y,#$06 +0f33: cf mul ya +0f34: da 14 movw $14,ya +0f36: 60 clrc +0f37: 98 00 14 adc $14,#$00 +0f3a: 98 1c 15 adc $15,#$1c +0f3d: 7d mov a,x +0f3e: 9f xcn a +0f3f: 5c lsr a +0f40: 08 04 or a,#$04 +0f42: 5d mov x,a +0f43: 3d inc x +0f44: ae pop a +0f45: c9 f2 00 mov $00f2,x +0f48: c5 f3 00 mov $00f3,a +0f4b: 3d inc x +0f4c: 3f 89 0c call $0c89 +0f4f: c9 f2 00 mov $00f2,x +0f52: c5 f3 00 mov $00f3,a +0f55: 3d inc x +0f56: 3f 89 0c call $0c89 +0f59: c9 f2 00 mov $00f2,x +0f5c: c5 f3 00 mov $00f3,a +0f5f: ce pop x +0f60: 60 clrc +0f61: 6f ret + +0f62: f4 a0 mov a,$a0+x +0f64: d0 33 bne $0f99 +0f66: e7 30 mov a,($30+x) +0f68: 68 f9 cmp a,#$f9 +0f6a: d0 2d bne $0f99 +0f6c: 3f 8b 0c call $0c8b +0f6f: 3f 89 0c call $0c89 +; vcmd f9 - pitch slide +0f72: d4 a1 mov $a1+x,a +0f74: 3f 89 0c call $0c89 +0f77: d4 a0 mov $a0+x,a +0f79: 3f 89 0c call $0c89 +0f7c: 60 clrc +0f7d: 84 50 adc a,$50 +0f7f: 95 f0 02 adc a,$02f0+x +0f82: 28 7f and a,#$7f +0f84: d5 80 03 mov $0380+x,a +0f87: 80 setc +0f88: b5 61 03 sbc a,$0361+x +0f8b: fb a0 mov y,$a0+x +0f8d: 6d push y +0f8e: ce pop x +0f8f: 3f a5 0f call $0fa5 +0f92: d5 70 03 mov $0370+x,a +0f95: dd mov a,y +0f96: d5 71 03 mov $0371+x,a +0f99: 6f ret + +0f9a: f5 61 03 mov a,$0361+x +0f9d: c4 11 mov $11,a +0f9f: f5 60 03 mov a,$0360+x +0fa2: c4 10 mov $10,a +0fa4: 6f ret + +0fa5: ed notc +0fa6: 6b 12 ror $12 +0fa8: 10 03 bpl $0fad +0faa: 48 ff eor a,#$ff +0fac: bc inc a +0fad: 8d 00 mov y,#$00 +0faf: 9e div ya,x +0fb0: 2d push a +0fb1: e8 00 mov a,#$00 +0fb3: 9e div ya,x +0fb4: ee pop y +0fb5: f8 44 mov x,$44 +0fb7: f3 12 06 bbc7 $12,$0fc0 +0fba: da 14 movw $14,ya +0fbc: ba 0e movw ya,$0e +0fbe: 9a 14 subw ya,$14 +0fc0: 6f ret + +; vcmd dispatch table +0fc1: dw $0c93 ; e0 - set instrument +0fc3: dw $0cf1 ; e1 - pan +0fc5: dw $0d07 ; e2 - pan fade +0fc7: dw $0d2f ; e3 - vibrato on +0fc9: dw $0d3b ; e4 - vibrato off +0fcb: dw $0d58 ; e5 - master volume +0fcd: dw $0d5e ; e6 - master volume fade +0fcf: dw $0d6c ; e7 - tempo +0fd1: dw $0d72 ; e8 - tempo fade +0fd3: dw $0d85 ; e9 - global transpose +0fd5: dw $0d89 ; ea - per-voice transpose +0fd7: dw $0d8e ; eb - tremolo on +0fd9: dw $0d9a ; ec - tremolo off +0fdb: dw $0dbe ; ed - volume +0fdd: dw $0dc8 ; ee - volume fade +0fdf: dw $0de7 ; ef - call subroutine +0fe1: dw $0d47 ; f0 - vibrato fade +0fe3: dw $0d9e ; f1 - pitch envelope (release) +0fe5: dw $0da2 ; f2 - pitch envelope (attack) +0fe7: dw $0db9 ; f3 - pitch envelope off +0fe9: dw $0de2 ; f4 - tuning +0feb: dw $0e0b ; f5 - echo vbits/volume +0fed: dw $0e3f ; f6 - disable echo +0fef: dw $0e4b ; f7 - set echo params +0ff1: dw $0e1d ; f8 - echo volume fade +0ff3: dw $0f72 ; f9 - pitch slide +0ff5: dw $0eb4 ; fa - set perc patch base +0ff7: dw $0eb8 ; fb +0ff9: dw $0ed2 ; fc - decrement position +0ffb: dw $0ee9 ; fd - set instrument parameters +0ffd: dw $0e47 ; fe - echo off + +; vcmd lengths +0fff: db $01,$01,$02,$03,$00,$01,$02,$01 ; e0-e7 +1007: db $02,$01,$01,$03,$00,$01,$02,$03 ; e8-ef +100f: db $01,$03,$03,$00,$01,$03,$00,$03 ; f0-f7 +1017: db $03,$03,$01,$02,$00,$01,$00 ; f8-fe + +101e: f4 90 mov a,$90+x +1020: f0 24 beq $1046 +1022: 09 47 5e or ($5e),($47) +1025: 9b 90 dec $90+x +1027: d0 0a bne $1033 +1029: e8 00 mov a,#$00 +102b: d5 00 03 mov $0300+x,a +102e: f5 20 03 mov a,$0320+x +1031: 2f 10 bra $1043 +1033: 60 clrc +1034: f5 00 03 mov a,$0300+x +1037: 95 10 03 adc a,$0310+x +103a: d5 00 03 mov $0300+x,a +103d: f5 01 03 mov a,$0301+x +1040: 95 11 03 adc a,$0311+x +1043: d5 01 03 mov $0301+x,a +1046: fb c1 mov y,$c1+x +1048: f0 23 beq $106d +104a: f5 e0 02 mov a,$02e0+x +104d: de c0 1b cbne $c0+x,$106b +1050: 09 47 5e or ($5e),($47) +1053: f5 d0 02 mov a,$02d0+x +1056: 10 07 bpl $105f +1058: fc inc y +1059: d0 04 bne $105f +105b: e8 80 mov a,#$80 +105d: 2f 04 bra $1063 +105f: 60 clrc +1060: 95 d1 02 adc a,$02d1+x +1063: d5 d0 02 mov $02d0+x,a +1066: 3f ae 12 call $12ae +1069: 2f 07 bra $1072 +106b: bb c0 inc $c0+x +106d: e8 ff mov a,#$ff +106f: 3f b9 12 call $12b9 +1072: f4 91 mov a,$91+x +1074: f0 24 beq $109a +1076: 09 47 5e or ($5e),($47) +1079: 9b 91 dec $91+x +107b: d0 0a bne $1087 +107d: e8 00 mov a,#$00 +107f: d5 30 03 mov $0330+x,a +1082: f5 50 03 mov a,$0350+x +1085: 2f 10 bra $1097 +1087: 60 clrc +1088: f5 30 03 mov a,$0330+x +108b: 95 40 03 adc a,$0340+x +108e: d5 30 03 mov $0330+x,a +1091: f5 31 03 mov a,$0331+x +1094: 95 41 03 adc a,$0341+x +1097: d5 31 03 mov $0331+x,a +109a: e4 47 mov a,$47 +109c: 24 5e and a,$5e +109e: d0 03 bne $10a3 +10a0: 5f 35 11 jmp $1135 + +10a3: f5 31 03 mov a,$0331+x +10a6: fd mov y,a +10a7: f5 30 03 mov a,$0330+x +10aa: da 10 movw $10,ya +10ac: 7d mov a,x +10ad: 9f xcn a +10ae: 5c lsr a +10af: c4 12 mov $12,a +10b1: eb 11 mov y,$11 +10b3: f6 cc 12 mov a,$12cc+y +10b6: 80 setc +10b7: b6 cb 12 sbc a,$12cb+y +10ba: eb 10 mov y,$10 +10bc: cf mul ya +10bd: dd mov a,y +10be: eb 11 mov y,$11 +10c0: 60 clrc +10c1: 96 cb 12 adc a,$12cb+y +10c4: fd mov y,a +10c5: f5 21 03 mov a,$0321+x +10c8: cf mul ya +10c9: f5 51 03 mov a,$0351+x +10cc: 1c asl a +10cd: 13 12 01 bbc0 $12,$10d1 +10d0: 1c asl a +10d1: dd mov a,y +10d2: 90 00 bcc $10d4 +10d4: 2d push a +10d5: f5 90 03 mov a,$0390+x +10d8: 80 setc +10d9: a8 01 sbc a,#$01 +10db: ae pop a +10dc: b0 03 bcs $10e1 +10de: 48 ff eor a,#$ff +10e0: bc inc a +10e1: eb 12 mov y,$12 +10e3: 3f ca 09 call $09ca +10e6: 8d 14 mov y,#$14 +10e8: e8 00 mov a,#$00 +10ea: 9a 10 subw ya,$10 +10ec: da 10 movw $10,ya +10ee: ab 12 inc $12 +10f0: eb 11 mov y,$11 +10f2: f6 cc 12 mov a,$12cc+y +10f5: 80 setc +10f6: b6 cb 12 sbc a,$12cb+y +10f9: eb 10 mov y,$10 +10fb: cf mul ya +10fc: dd mov a,y +10fd: eb 11 mov y,$11 +10ff: 60 clrc +1100: 96 cb 12 adc a,$12cb+y +1103: fd mov y,a +1104: f5 21 03 mov a,$0321+x +1107: cf mul ya +1108: f5 51 03 mov a,$0351+x +110b: 1c asl a +110c: 13 12 01 bbc0 $12,$1110 +110f: 1c asl a +1110: dd mov a,y +1111: 90 00 bcc $1113 +1113: 2d push a +1114: f5 91 03 mov a,$0391+x +1117: 80 setc +1118: a8 01 sbc a,#$01 +111a: ae pop a +111b: b0 03 bcs $1120 +111d: 48 ff eor a,#$ff +111f: bc inc a +1120: eb 12 mov y,$12 +1122: 3f ca 09 call $09ca +1125: 8d 14 mov y,#$14 +1127: e8 00 mov a,#$00 +1129: 9a 10 subw ya,$10 +112b: da 10 movw $10,ya +112d: ab 12 inc $12 +112f: 23 12 03 bbs1 $12,$1135 +1132: 5f b1 10 jmp $10b1 + +1135: 6f ret + +1136: f4 71 mov a,$71+x +1138: f0 65 beq $119f +113a: 9b 71 dec $71+x +113c: f0 05 beq $1143 +113e: e8 02 mov a,#$02 +1140: de 70 5c cbne $70+x,$119f +1143: f4 80 mov a,$80+x +1145: c4 17 mov $17,a +1147: f4 30 mov a,$30+x +1149: fb 31 mov y,$31+x +114b: da 14 movw $14,ya +114d: 8d 00 mov y,#$00 +114f: f7 14 mov a,($14)+y +1151: f0 1e beq $1171 +1153: 30 07 bmi $115c +1155: fc inc y +1156: 30 40 bmi $1198 +1158: f7 14 mov a,($14)+y +115a: 10 f9 bpl $1155 +115c: 68 c8 cmp a,#$c8 +115e: f0 3f beq $119f +1160: 68 ef cmp a,#$ef +1162: f0 29 beq $118d +1164: 68 e0 cmp a,#$e0 +1166: 90 30 bcc $1198 +1168: 6d push y +1169: fd mov y,a +116a: ae pop a +116b: 96 1f 0f adc a,$0f1f+y +116e: fd mov y,a +116f: 2f de bra $114f +1171: e4 17 mov a,$17 +1173: f0 23 beq $1198 +1175: 8b 17 dec $17 +1177: d0 0a bne $1183 +1179: f5 31 02 mov a,$0231+x +117c: 2d push a +117d: f5 30 02 mov a,$0230+x +1180: ee pop y +1181: 2f c8 bra $114b +1183: f5 41 02 mov a,$0241+x +1186: 2d push a +1187: f5 40 02 mov a,$0240+x +118a: ee pop y +118b: 2f be bra $114b +118d: fc inc y +118e: f7 14 mov a,($14)+y +1190: 2d push a +1191: fc inc y +1192: f7 14 mov a,($14)+y +1194: fd mov y,a +1195: ae pop a +1196: 2f b3 bra $114b +1198: e4 47 mov a,$47 +119a: 8d 5c mov y,#$5c +119c: 3f ca 09 call $09ca +119f: f2 13 clr7 $13 +11a1: f4 a0 mov a,$a0+x +11a3: f0 2c beq $11d1 +11a5: f4 a1 mov a,$a1+x +11a7: f0 04 beq $11ad +11a9: 9b a1 dec $a1+x +11ab: 2f 24 bra $11d1 +11ad: e2 13 set7 $13 +11af: 9b a0 dec $a0+x +11b1: d0 0b bne $11be +11b3: f5 81 03 mov a,$0381+x +11b6: d5 60 03 mov $0360+x,a +11b9: f5 80 03 mov a,$0380+x +11bc: 2f 10 bra $11ce +11be: 60 clrc +11bf: f5 60 03 mov a,$0360+x +11c2: 95 70 03 adc a,$0370+x +11c5: d5 60 03 mov $0360+x,a +11c8: f5 61 03 mov a,$0361+x +11cb: 95 71 03 adc a,$0371+x +11ce: d5 61 03 mov $0361+x,a +11d1: 3f 9a 0f call $0f9a +11d4: f4 b1 mov a,$b1+x +11d6: f0 4c beq $1224 +11d8: f5 b0 02 mov a,$02b0+x +11db: de b0 44 cbne $b0+x,$1222 +11de: f5 00 01 mov a,$0100+x +11e1: 75 b1 02 cmp a,$02b1+x +11e4: d0 05 bne $11eb +11e6: f5 c1 02 mov a,$02c1+x +11e9: 2f 0d bra $11f8 +11eb: 40 setp +11ec: bb 00 inc $00+x +11ee: 20 clrp +11ef: fd mov y,a +11f0: f0 02 beq $11f4 +11f2: f4 b1 mov a,$b1+x +11f4: 60 clrc +11f5: 95 c0 02 adc a,$02c0+x +11f8: d4 b1 mov $b1+x,a +11fa: f5 a0 02 mov a,$02a0+x +11fd: 60 clrc +11fe: 95 a1 02 adc a,$02a1+x +1201: d5 a0 02 mov $02a0+x,a +1204: c4 12 mov $12,a +1206: 1c asl a +1207: 1c asl a +1208: 90 02 bcc $120c +120a: 48 ff eor a,#$ff +120c: fd mov y,a +120d: f4 b1 mov a,$b1+x +120f: 68 f1 cmp a,#$f1 +1211: 90 05 bcc $1218 +1213: 28 0f and a,#$0f +1215: cf mul ya +1216: 2f 04 bra $121c +1218: cf mul ya +1219: dd mov a,y +121a: 8d 00 mov y,#$00 +121c: 3f 99 12 call $1299 +121f: 5f 47 09 jmp $0947 + +1222: bb b0 inc $b0+x +1224: e3 13 f8 bbs7 $13,$121f +1227: 6f ret + +1228: f2 13 clr7 $13 +122a: f4 c1 mov a,$c1+x +122c: f0 09 beq $1237 +122e: f5 e0 02 mov a,$02e0+x +1231: de c0 03 cbne $c0+x,$1237 +1234: 3f a1 12 call $12a1 +1237: f5 31 03 mov a,$0331+x +123a: fd mov y,a +123b: f5 30 03 mov a,$0330+x +123e: da 10 movw $10,ya +1240: f4 91 mov a,$91+x +1242: f0 0a beq $124e +1244: f5 41 03 mov a,$0341+x +1247: fd mov y,a +1248: f5 40 03 mov a,$0340+x +124b: 3f 83 12 call $1283 +124e: f3 13 03 bbc7 $13,$1254 +1251: 3f ac 10 call $10ac +1254: f2 13 clr7 $13 +1256: 3f 9a 0f call $0f9a +1259: f4 a0 mov a,$a0+x +125b: f0 0e beq $126b +125d: f4 a1 mov a,$a1+x +125f: d0 0a bne $126b +1261: f5 71 03 mov a,$0371+x +1264: fd mov y,a +1265: f5 70 03 mov a,$0370+x +1268: 3f 83 12 call $1283 +126b: f4 b1 mov a,$b1+x +126d: f0 b5 beq $1224 +126f: f5 b0 02 mov a,$02b0+x +1272: de b0 af cbne $b0+x,$1224 +1275: eb 51 mov y,$51 +1277: f5 a1 02 mov a,$02a1+x +127a: cf mul ya +127b: dd mov a,y +127c: 60 clrc +127d: 95 a0 02 adc a,$02a0+x +1280: 5f 04 12 jmp $1204 + +1283: e2 13 set7 $13 +1285: cb 12 mov $12,y +1287: 3f b7 0f call $0fb7 +128a: 6d push y +128b: eb 51 mov y,$51 +128d: cf mul ya +128e: cb 14 mov $14,y +1290: 8f 00 15 mov $15,#$00 +1293: eb 51 mov y,$51 +1295: ae pop a +1296: cf mul ya +1297: 7a 14 addw ya,$14 +1299: 3f b7 0f call $0fb7 +129c: 7a 10 addw ya,$10 +129e: da 10 movw $10,ya +12a0: 6f ret + +12a1: e2 13 set7 $13 +12a3: eb 51 mov y,$51 +12a5: f5 d1 02 mov a,$02d1+x +12a8: cf mul ya +12a9: dd mov a,y +12aa: 60 clrc +12ab: 95 d0 02 adc a,$02d0+x +12ae: 1c asl a +12af: 90 02 bcc $12b3 +12b1: 48 ff eor a,#$ff +12b3: fb c1 mov y,$c1+x +12b5: cf mul ya +12b6: dd mov a,y +12b7: 48 ff eor a,#$ff +12b9: eb 59 mov y,$59 +12bb: cf mul ya +12bc: f5 10 02 mov a,$0210+x +12bf: cf mul ya +12c0: f5 01 03 mov a,$0301+x +12c3: cf mul ya +12c4: dd mov a,y +12c5: cf mul ya +12c6: dd mov a,y +12c7: d5 21 03 mov $0321+x,a +12ca: 6f ret + +; pan table +12cb: db $00,$01,$03,$07,$0d,$15,$1e,$29 +12d3: db $34,$42,$51,$5e,$67,$6e,$73,$77 +12dd: db $7a,$7c,$7d,$7e,$7f + +; echo FIR presets +12e0: db $7f,$00,$00,$00,$00,$00,$00,$00 ; 00 +12e8: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c ; 01 +12f0: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 ; 02 +12f8: db $34,$33,$00,$d9,$e5,$01,$fc,$eb ; 03 + +; EVOL(L),EVOL(R),EFB,EON,FLG,KOL,KOF,NON,PMON,KOF +; dsp shadow addrs for dsp regs +1300: db $2c,$3c,$0d,$4d,$6c,$4c,$5c,$3d,$2d,$5c +130a: db $61,$63,$4e,$4a,$48,$45,$0e,$49,$4b,$46 + +; pitch table +1314: dw $085f +1316: dw $08de +1318: dw $0965 +131a: dw $09f4 +131c: dw $0a8c +131e: dw $0b2c +1320: dw $0bd6 +1322: dw $0c8b +1324: dw $0d4a +1326: dw $0e14 +1328: dw $0eea +132a: dw $0fcd +132c: dw $10be + +132e: e8 aa mov a,#$aa +1330: c5 f4 00 mov $00f4,a +1333: e8 bb mov a,#$bb +1335: c5 f5 00 mov $00f5,a +1338: e5 f4 00 mov a,$00f4 +133b: 68 cc cmp a,#$cc +133d: d0 f9 bne $1338 +133f: 2f 20 bra $1361 +1341: ec f4 00 mov y,$00f4 +1344: d0 fb bne $1341 +1346: 5e f4 00 cmp y,$00f4 +1349: d0 0f bne $135a +134b: e5 f5 00 mov a,$00f5 +134e: cc f4 00 mov $00f4,y +1351: d7 14 mov ($14)+y,a +1353: fc inc y +1354: d0 f0 bne $1346 +1356: ab 15 inc $15 +1358: 2f ec bra $1346 +135a: 10 ea bpl $1346 +135c: 5e f4 00 cmp y,$00f4 +135f: 10 e5 bpl $1346 +1361: e5 f6 00 mov a,$00f6 +1364: ec f7 00 mov y,$00f7 +1367: da 14 movw $14,ya +1369: ec f4 00 mov y,$00f4 +136c: e5 f5 00 mov a,$00f5 +136f: cc f4 00 mov $00f4,y +1372: d0 cd bne $1341 +1374: cd 31 mov x,#$31 +1376: c9 f1 00 mov $00f1,x +1379: e8 1e mov a,#$1e +137b: 8d 5d mov y,#$5d +137d: 3f d2 09 call $09d2 +1380: 8f ff 59 mov $59,#$ff +1383: e8 00 mov a,#$00 +1385: fd mov y,a +1386: da 60 movw $60,ya +1388: da 62 movw $62,ya +138a: a2 48 set5 $48 +138c: e4 1a mov a,$1a +138e: 48 ff eor a,#$ff +1390: 0e 46 00 tset1 $0046 + +1393: 6f ret diff --git a/snes/NSPC/Naohisa Morota/Sunset Riders ($0420).bin b/snes/NSPC/Naohisa Morota/Sunset Riders ($0420).bin new file mode 100644 index 00000000..3381de78 Binary files /dev/null and b/snes/NSPC/Naohisa Morota/Sunset Riders ($0420).bin differ diff --git a/snes/NSPC/Naohisa Morota/Sunset Riders.s b/snes/NSPC/Naohisa Morota/Sunset Riders.s new file mode 100644 index 00000000..589b8fa5 --- /dev/null +++ b/snes/NSPC/Naohisa Morota/Sunset Riders.s @@ -0,0 +1,1862 @@ +0420: 20 clrp +0421: cd cf mov x,#$cf +0423: bd mov sp,x +0424: e8 00 mov a,#$00 +0426: 5d mov x,a +0427: af mov (x)+,a +0428: c8 e0 cmp x,#$e0 +042a: d0 fb bne $0427 +042c: 8d 02 mov y,#$02 +042e: da 14 movw $14,ya +0430: fd mov y,a +0431: d7 14 mov ($14)+y,a +0433: fc inc y +0434: d0 fb bne $0431 +0436: ab 15 inc $15 +0438: f8 15 mov x,$15 +043a: c8 04 cmp x,#$04 +043c: d0 f3 bne $0431 +043e: e8 3f mov a,#$3f +0440: 8d 5d mov y,#$5d +0442: 3f 5e 06 call $065e +0445: a2 48 set5 $48 +0447: 8d ff mov y,#$ff +0449: cd 00 mov x,#$00 +044b: 1d dec x +044c: d0 fd bne $044b +044e: dc dec y +044f: d0 fa bne $044b +0451: 8d ff mov y,#$ff +0453: cd 00 mov x,#$00 +0455: 1d dec x +0456: d0 fd bne $0455 +0458: dc dec y +0459: d0 fa bne $0455 +045b: e8 00 mov a,#$00 +045d: 8d 6d mov y,#$6d +045f: 3f 5e 06 call $065e +0462: 8d 7d mov y,#$7d +0464: 3f 5e 06 call $065e +0467: 8d 4d mov y,#$4d +0469: 3f 5e 06 call $065e +046c: 8d 0d mov y,#$0d +046e: 3f 5e 06 call $065e +0471: 8d 2c mov y,#$2c +0473: 3f 5e 06 call $065e +0476: 8d 3c mov y,#$3c +0478: 3f 5e 06 call $065e +047b: 8d 71 mov y,#$71 +047d: e8 00 mov a,#$00 +047f: 3f 5e 06 call $065e +0482: dc dec y +0483: 3f 5e 06 call $065e +0486: dd mov a,y +0487: 80 setc +0488: a8 0f sbc a,#$0f +048a: fd mov y,a +048b: 10 f0 bpl $047d +048d: e8 ff mov a,#$ff +048f: c4 46 mov $46,a +0491: 8d 5c mov y,#$5c +0493: 3f 5e 06 call $065e +0496: e8 7f mov a,#$7f +0498: 8d 0c mov y,#$0c +049a: 3f 5e 06 call $065e +049d: 8d 1c mov y,#$1c +049f: 3f 5e 06 call $065e +04a2: e8 f0 mov a,#$f0 +04a4: c5 f1 00 mov $00f1,a +04a7: e8 10 mov a,#$10 +04a9: c5 fa 00 mov $00fa,a +04ac: c4 53 mov $53,a +04ae: e8 01 mov a,#$01 +04b0: c5 f1 00 mov $00f1,a +04b3: e8 07 mov a,#$07 +04b5: c5 d0 00 mov $00d0,a +04b8: e8 00 mov a,#$00 +04ba: c4 31 mov $31,a +04bc: c4 33 mov $33,a +04be: c4 35 mov $35,a +04c0: c4 37 mov $37,a +04c2: c4 39 mov $39,a +04c4: c4 3b mov $3b,a +04c6: c4 3d mov $3d,a +04c8: c4 3e mov $3e,a +04ca: c4 3f mov $3f,a +04cc: c4 e3 mov $e3,a +04ce: c4 e4 mov $e4,a +04d0: c4 e2 mov $e2,a +04d2: 9c dec a +04d3: c4 e5 mov $e5,a +04d5: e8 80 mov a,#$80 +04d7: c4 e0 mov $e0,a +04d9: ab e1 inc $e1 +04db: 8d 0a mov y,#$0a +04dd: ad 05 cmp y,#$05 +04df: f0 07 beq $04e8 +04e1: b0 08 bcs $04eb +04e3: 69 4d 4c cmp ($4c),($4d) +04e6: d0 11 bne $04f9 +04e8: e3 4c 0e bbs7 $4c,$04f9 +04eb: f6 02 11 mov a,$1102+y +04ee: c5 f2 00 mov $00f2,a +04f1: f6 0c 11 mov a,$110c+y +04f4: 5d mov x,a +04f5: e6 mov a,(x) +04f6: c5 f3 00 mov $00f3,a +04f9: fe e2 dbnz y,$04dd +04fb: cb 45 mov $45,y +04fd: cb 46 mov $46,y +04ff: e4 18 mov a,$18 +0501: 44 19 eor a,$19 +0503: 5c lsr a +0504: 5c lsr a +0505: ed notc +0506: 6b 18 ror $18 +0508: 6b 19 ror $19 +050a: ec fd 00 mov y,$00fd +050d: f0 fb beq $050a +050f: 6d push y +0510: ee pop y +0511: 6d push y +0512: e8 20 mov a,#$20 +0514: cf mul ya +0515: 60 clrc +0516: 84 43 adc a,$43 +0518: c4 43 mov $43,a +051a: 90 0d bcc $0529 +051c: 3f 4f 08 call $084f +051f: 3f 65 06 call $0665 +0522: 69 4d 4c cmp ($4c),($4d) +0525: f0 02 beq $0529 +0527: ab 4c inc $4c +0529: e4 53 mov a,$53 +052b: ee pop y +052c: cf mul ya +052d: 60 clrc +052e: 84 51 adc a,$51 +0530: c4 51 mov $51,a +0532: 90 06 bcc $053a +0534: 3f 8e 09 call $098e +0537: 5f d9 04 jmp $04d9 + +053a: e4 04 mov a,$04 +053c: f0 18 beq $0556 +053e: cd 00 mov x,#$00 +0540: 8f 01 47 mov $47,#$01 +0543: e4 d0 mov a,$d0 +0545: c4 d1 mov $d1,a +0547: f4 31 mov a,$31+x +0549: f0 03 beq $054e +054b: 3f 2b 10 call $102b +054e: 3d inc x +054f: 3d inc x +0550: 0b 47 asl $47 +0552: 8b d1 dec $d1 +0554: 10 f1 bpl $0547 +0556: 5f d9 04 jmp $04d9 + +0559: f4 04 mov a,$04+x +055b: d5 f4 00 mov $00f4+x,a +055e: f5 f4 00 mov a,$00f4+x +0561: 75 f4 00 cmp a,$00f4+x +0564: d0 f8 bne $055e +0566: d4 1b mov $1b+x,a +0568: 6f ret + +0569: ad ca cmp y,#$ca +056b: 90 05 bcc $0572 +056d: 3f 31 0b call $0b31 +0570: 8d a4 mov y,#$a4 +0572: ad c8 cmp y,#$c8 +0574: b0 f2 bcs $0568 +0576: e4 1a mov a,$1a +0578: 24 47 and a,$47 +057a: d0 ec bne $0568 +057c: dd mov a,y +057d: 28 7f and a,#$7f +057f: 60 clrc +0580: 84 50 adc a,$50 +0582: 60 clrc +0583: 95 f0 02 adc a,$02f0+x +0586: d5 61 03 mov $0361+x,a +0589: f5 81 03 mov a,$0381+x +058c: d5 60 03 mov $0360+x,a +058f: f5 b1 02 mov a,$02b1+x +0592: 5c lsr a +0593: e8 00 mov a,#$00 +0595: 7c ror a +0596: d5 a0 02 mov $02a0+x,a +0599: e8 00 mov a,#$00 +059b: d4 b0 mov $b0+x,a +059d: d5 00 01 mov $0100+x,a +05a0: d5 d0 02 mov $02d0+x,a +05a3: d4 c0 mov $c0+x,a +05a5: 09 47 5e or ($5e),($47) +05a8: 09 47 45 or ($45),($47) +05ab: f5 80 02 mov a,$0280+x +05ae: d4 a0 mov $a0+x,a +05b0: f0 1e beq $05d0 +05b2: f5 81 02 mov a,$0281+x +05b5: d4 a1 mov $a1+x,a +05b7: f5 90 02 mov a,$0290+x +05ba: d0 0a bne $05c6 +05bc: f5 61 03 mov a,$0361+x +05bf: 80 setc +05c0: b5 91 02 sbc a,$0291+x +05c3: d5 61 03 mov $0361+x,a +05c6: f5 91 02 mov a,$0291+x +05c9: 60 clrc +05ca: 95 61 03 adc a,$0361+x +05cd: 3f d7 0d call $0dd7 +05d0: 3f ef 0d call $0def +05d3: 8d 00 mov y,#$00 +05d5: e4 11 mov a,$11 +05d7: 80 setc +05d8: a8 34 sbc a,#$34 +05da: b0 09 bcs $05e5 +05dc: e4 11 mov a,$11 +05de: 80 setc +05df: a8 13 sbc a,#$13 +05e1: b0 06 bcs $05e9 +05e3: dc dec y +05e4: 1c asl a +05e5: 7a 10 addw ya,$10 +05e7: da 10 movw $10,ya +05e9: 4d push x +05ea: e4 11 mov a,$11 +05ec: 1c asl a +05ed: 8d 00 mov y,#$00 +05ef: cd 18 mov x,#$18 +05f1: 9e div ya,x +05f2: 5d mov x,a +05f3: f6 18 11 mov a,$1118+y +05f6: c4 15 mov $15,a +05f8: f6 17 11 mov a,$1117+y +05fb: c4 14 mov $14,a +05fd: f6 1a 11 mov a,$111a+y +0600: 2d push a +0601: f6 19 11 mov a,$1119+y +0604: ee pop y +0605: 9a 14 subw ya,$14 +0607: eb 10 mov y,$10 +0609: cf mul ya +060a: dd mov a,y +060b: 8d 00 mov y,#$00 +060d: 7a 14 addw ya,$14 +060f: cb 15 mov $15,y +0611: 1c asl a +0612: 2b 15 rol $15 +0614: c4 14 mov $14,a +0616: 2f 04 bra $061c +0618: 4b 15 lsr $15 +061a: 7c ror a +061b: 3d inc x +061c: c8 06 cmp x,#$06 +061e: d0 f8 bne $0618 +0620: c4 14 mov $14,a +0622: ce pop x +0623: f5 20 02 mov a,$0220+x +0626: eb 15 mov y,$15 +0628: cf mul ya +0629: da 16 movw $16,ya +062b: f5 20 02 mov a,$0220+x +062e: eb 14 mov y,$14 +0630: cf mul ya +0631: 6d push y +0632: f5 21 02 mov a,$0221+x +0635: eb 14 mov y,$14 +0637: cf mul ya +0638: 7a 16 addw ya,$16 +063a: da 16 movw $16,ya +063c: f5 21 02 mov a,$0221+x +063f: eb 15 mov y,$15 +0641: cf mul ya +0642: fd mov y,a +0643: ae pop a +0644: 7a 16 addw ya,$16 +0646: da 16 movw $16,ya +0648: 7d mov a,x +0649: 9f xcn a +064a: 5c lsr a +064b: 08 02 or a,#$02 +064d: fd mov y,a +064e: e4 16 mov a,$16 +0650: 3f 56 06 call $0656 +0653: fc inc y +0654: e4 17 mov a,$17 +0656: 2d push a +0657: e4 47 mov a,$47 +0659: 24 1a and a,$1a +065b: ae pop a +065c: d0 06 bne $0664 +065e: cc f2 00 mov $00f2,y +0661: c5 f3 00 mov $00f3,a +0664: 6f ret + +0665: eb d0 mov y,$d0 +0667: ad 07 cmp y,#$07 +0669: b0 03 bcs $066e +066b: 3f 4c 07 call $074c +066e: 6f ret + +066f: 8d 00 mov y,#$00 +0671: f7 40 mov a,($40)+y +0673: 3a 40 incw $40 +0675: 2d push a +0676: f7 40 mov a,($40)+y +0678: 3a 40 incw $40 +067a: fd mov y,a +067b: ae pop a +067c: 6f ret + +067d: 3f a4 11 call $11a4 +0680: c4 08 mov $08,a +0682: 6f ret + +0683: 2d push a +0684: f4 d3 mov a,$d3+x +0686: 60 clrc +0687: 88 01 adc a,#$01 +0689: d4 d3 mov $d3+x,a +068b: e8 00 mov a,#$00 +068d: 94 d4 adc a,$d4+x +068f: d4 d4 mov $d4+x,a +0691: ae pop a +0692: 6f ret + +0693: c4 04 mov $04,a +0695: f8 d0 mov x,$d0 +0697: c8 07 cmp x,#$07 +0699: b0 06 bcs $06a1 +069b: 80 setc +069c: a8 10 sbc a,#$10 +069e: 3f a2 06 call $06a2 +06a1: 6f ret + +06a2: c4 05 mov $05,a +06a4: 1c asl a +06a5: 5d mov x,a +06a6: f5 1f 19 mov a,$191f+x +06a9: 2d push a +06aa: f5 20 19 mov a,$1920+x +06ad: fd mov y,a +06ae: ae pop a +06af: da d3 movw $d3,ya +06b1: cd 00 mov x,#$00 +06b3: c9 13 00 mov $0013,x +06b6: e7 d3 mov a,($d3+x) +06b8: 30 c8 bmi $0682 +06ba: c5 10 00 mov $0010,a +06bd: 28 01 and a,#$01 +06bf: fd mov y,a +06c0: e4 d0 mov a,$d0 +06c2: 68 06 cmp a,#$06 +06c4: d0 07 bne $06cd +06c6: ad 00 cmp y,#$00 +06c8: d0 03 bne $06cd +06ca: ac 13 00 inc $0013 +06cd: f6 e3 00 mov a,$00e3+y +06d0: c5 11 00 mov $0011,a +06d3: 3f 83 06 call $0683 +06d6: e7 d3 mov a,($d3+x) +06d8: 64 11 cmp a,$11 +06da: 90 a6 bcc $0682 +06dc: d6 e3 00 mov $00e3+y,a +06df: 3f 83 06 call $0683 +06e2: e7 d3 mov a,($d3+x) +06e4: fd mov y,a +06e5: 3f 83 06 call $0683 +06e8: e7 d3 mov a,($d3+x) +06ea: 3f 83 06 call $0683 +06ed: da d9 movw $d9,ya +06ef: e5 13 00 mov a,$0013 +06f2: d0 43 bne $0737 +06f4: e5 10 00 mov a,$0010 +06f7: 68 00 cmp a,#$00 +06f9: d0 0c bne $0707 +06fb: e4 d9 mov a,$d9 +06fd: c4 3d mov $3d,a +06ff: e4 da mov a,$da +0701: c4 3c mov $3c,a +0703: cd 0c mov x,#$0c +0705: 2f 0a bra $0711 +0707: e4 d9 mov a,$d9 +0709: c4 3f mov $3f,a +070b: e4 da mov a,$da +070d: c4 3e mov $3e,a +070f: cd 0e mov x,#$0e +0711: e8 0a mov a,#$0a +0713: 3f 8f 0b call $0b8f +0716: d5 11 02 mov $0211+x,a +0719: d5 81 03 mov $0381+x,a +071c: d5 f0 02 mov $02f0+x,a +071f: d5 80 02 mov $0280+x,a +0722: d4 b1 mov $b1+x,a +0724: d4 c1 mov $c1+x,a +0726: d5 e0 03 mov $03e0+x,a +0729: d5 d0 03 mov $03d0+x,a +072c: e8 ff mov a,#$ff +072e: d5 01 03 mov $0301+x,a +0731: 8f ff 59 mov $59,#$ff +0734: 3f eb 07 call $07eb +0737: 5f b1 06 jmp $06b1 + +073a: 7d mov a,x +073b: 5c lsr a +073c: 28 01 and a,#$01 +073e: fd mov y,a +073f: e8 00 mov a,#$00 +0741: d6 e3 00 mov $00e3+y,a +0744: 6f ret + +0745: 00 nop +0746: 00 nop +0747: 00 nop +0748: 00 nop +0749: 00 nop +074a: 40 setp +074b: 80 setc +074c: e9 d0 00 mov x,$00d0 +074f: f5 45 07 mov a,$0745+x +0752: c4 47 mov $47,a +0754: e5 d0 00 mov a,$00d0 +0757: bc inc a +0758: 1c asl a +0759: 5d mov x,a +075a: f4 31 mov a,$31+x +075c: f0 62 beq $07c0 +075e: 9b 70 dec $70+x +0760: d0 58 bne $07ba +0762: 3f 1f 0b call $0b1f +0765: d0 09 bne $0770 +0767: 3f e4 07 call $07e4 +076a: 3f 3a 07 call $073a +076d: 5f c0 07 jmp $07c0 + +0770: 30 28 bmi $079a +0772: d5 00 02 mov $0200+x,a +0775: 3f 1f 0b call $0b1f +0778: 30 20 bmi $079a +077a: 2d push a +077b: 9f xcn a +077c: 28 07 and a,#$07 +077e: fd mov y,a +077f: ad 07 cmp y,#$07 +0781: d0 04 bne $0787 +0783: e8 00 mov a,#$00 +0785: 2f 03 bra $078a +0787: f6 1c 22 mov a,$221c+y +078a: d5 01 02 mov $0201+x,a +078d: ae pop a +078e: 28 0f and a,#$0f +0790: fd mov y,a +0791: f6 24 22 mov a,$2224+y +0794: d5 10 02 mov $0210+x,a +0797: 3f 1f 0b call $0b1f +079a: 68 e0 cmp a,#$e0 +079c: 90 05 bcc $07a3 +079e: 3f 0d 0b call $0b0d +07a1: 2f bf bra $0762 +07a3: 3f 69 05 call $0569 +07a6: f5 00 02 mov a,$0200+x +07a9: d4 70 mov $70+x,a +07ab: fd mov y,a +07ac: f5 01 02 mov a,$0201+x +07af: f0 05 beq $07b6 +07b1: cf mul ya +07b2: dd mov a,y +07b3: d0 01 bne $07b6 +07b5: bc inc a +07b6: d4 71 mov $71+x,a +07b8: 2f 03 bra $07bd +07ba: 3f 36 0f call $0f36 +07bd: 3f b7 0d call $0db7 +07c0: 0b 47 asl $47 +07c2: 3d inc x +07c3: 3d inc x +07c4: c8 10 cmp x,#$10 +07c6: d0 92 bne $075a +07c8: e9 d0 00 mov x,$00d0 +07cb: f5 45 07 mov a,$0745+x +07ce: c4 47 mov $47,a +07d0: e5 d0 00 mov a,$00d0 +07d3: bc inc a +07d4: 1c asl a +07d5: 5d mov x,a +07d6: f4 31 mov a,$31+x +07d8: f0 03 beq $07dd +07da: 3f 73 0e call $0e73 +07dd: 3d inc x +07de: 3d inc x +07df: 0b 47 asl $47 +07e1: d0 f3 bne $07d6 +07e3: 6f ret + +07e4: e8 00 mov a,#$00 +07e6: d4 31 mov $31+x,a +07e8: 3f 31 0b call $0b31 +07eb: e8 00 mov a,#$00 +07ed: d4 80 mov $80+x,a +07ef: d4 90 mov $90+x,a +07f1: d4 91 mov $91+x,a +07f3: d5 e0 03 mov $03e0+x,a +07f6: d5 d0 03 mov $03d0+x,a +07f9: bc inc a +07fa: d4 70 mov $70+x,a +07fc: 2d push a +07fd: 6d push y +07fe: 8d 40 mov y,#$40 +0800: c8 0c cmp x,#$0c +0802: f0 02 beq $0806 +0804: 8d 80 mov y,#$80 +0806: dd mov a,y +0807: 8d 5c mov y,#$5c +0809: 3f 56 06 call $0656 +080c: ee pop y +080d: ae pop a +080e: 6f ret + +080f: e5 d0 00 mov a,$00d0 +0812: 68 06 cmp a,#$06 +0814: f0 08 beq $081e +0816: cd 0c mov x,#$0c +0818: 3f e4 07 call $07e4 +081b: 3f 3a 07 call $073a +081e: cd 0e mov x,#$0e +0820: 3f e4 07 call $07e4 +0823: 3f 3a 07 call $073a +0826: 6f ret + +0827: c4 04 mov $04,a +0829: e4 1a mov a,$1a +082b: 48 ff eor a,#$ff +082d: 0e 46 00 tset1 $0046 +0830: e8 00 mov a,#$00 +0832: c4 e3 mov $e3,a +0834: c4 e4 mov $e4,a +0836: cd 10 mov x,#$10 +0838: d4 31 mov $31+x,a +083a: d5 01 03 mov $0301+x,a +083d: 1d dec x +083e: 1d dec x +083f: 10 f7 bpl $0838 +0841: e4 e0 mov a,$e0 +0843: 08 80 or a,#$80 +0845: c4 e0 mov $e0,a +0847: 6f ret + +0848: e5 f6 00 mov a,$00f6 +084b: c5 1a 00 mov $001a,a +084e: 6f ret + +084f: cd 00 mov x,#$00 +0851: 3f 59 05 call $0559 +0854: e5 f4 00 mov a,$00f4 +0857: 65 f4 00 cmp a,$00f4 +085a: d0 f3 bne $084f +085c: c4 04 mov $04,a +085e: d5 f4 00 mov $00f4+x,a +0861: 64 e5 cmp a,$e5 +0863: f0 e2 beq $0847 +0865: c4 e5 mov $e5,a +0867: 68 11 cmp a,#$11 +0869: 90 dc bcc $0847 +086b: 68 f0 cmp a,#$f0 +086d: b0 03 bcs $0872 +086f: 5f 93 06 jmp $0693 + +0872: 68 fe cmp a,#$fe +0874: f0 0c beq $0882 +0876: 68 ff cmp a,#$ff +0878: d0 10 bne $088a +087a: e8 00 mov a,#$00 +087c: 3f 7d 06 call $067d +087f: 5f e7 08 jmp $08e7 + +0882: e8 00 mov a,#$00 +0884: 3f 5b 11 call $115b +0887: 5f e7 08 jmp $08e7 + +088a: 68 f2 cmp a,#$f2 +088c: d0 06 bne $0894 +088e: 3f fa 11 call $11fa +0891: 5f e7 08 jmp $08e7 + +0894: 68 f3 cmp a,#$f3 +0896: d0 06 bne $089e +0898: 3f 0c 12 call $120c +089b: 5f e7 08 jmp $08e7 + +089e: 68 f4 cmp a,#$f4 +08a0: d0 06 bne $08a8 +08a2: 3f 0f 08 call $080f +08a5: 5f e7 08 jmp $08e7 + +08a8: 68 f5 cmp a,#$f5 +08aa: d0 05 bne $08b1 +08ac: 3f 27 08 call $0827 +08af: 2f 36 bra $08e7 +08b1: 68 f6 cmp a,#$f6 +08b3: d0 05 bne $08ba +08b5: 3f 15 12 call $1215 +08b8: 2f 2d bra $08e7 +08ba: 68 f7 cmp a,#$f7 +08bc: d0 07 bne $08c5 +08be: 8d 01 mov y,#$01 +08c0: 3f 71 12 call $1271 +08c3: 2f 22 bra $08e7 +08c5: 68 f8 cmp a,#$f8 +08c7: d0 05 bne $08ce +08c9: 3f 6f 12 call $126f +08cc: 2f 19 bra $08e7 +08ce: 68 f9 cmp a,#$f9 +08d0: d0 05 bne $08d7 +08d2: 3f 04 12 call $1204 +08d5: 2f 10 bra $08e7 +08d7: 68 fa cmp a,#$fa +08d9: d0 05 bne $08e0 +08db: 3f 22 12 call $1222 +08de: 2f 07 bra $08e7 +08e0: 68 fc cmp a,#$fc +08e2: d0 03 bne $08e7 +08e4: 3f 48 08 call $0848 +08e7: 6f ret + +08e8: 00 nop +08e9: 00 nop +08ea: 00 nop +08eb: 00 nop +08ec: 00 nop +08ed: 3f 7f ff call $ff7f +08f0: c4 04 mov $04,a +08f2: 1c asl a +08f3: f0 15 beq $090a +08f5: 5d mov x,a +08f6: f5 73 12 mov a,$1273+x +08f9: fd mov y,a +08fa: f5 72 12 mov a,$1272+x +08fd: da 40 movw $40,ya +08ff: 8f 02 0c mov $0c,#$02 +0902: e4 e0 mov a,$e0 +0904: 28 7c and a,#$7c +0906: c4 e0 mov $e0,a +0908: 2f 06 bra $0910 +090a: e4 e0 mov a,$e0 +090c: 08 80 or a,#$80 +090e: c4 e0 mov $e0,a +0910: f8 d0 mov x,$d0 +0912: f5 e8 08 mov a,$08e8+x +0915: c4 11 mov $11,a +0917: e4 1a mov a,$1a +0919: 44 11 eor a,$11 +091b: 0e 46 00 tset1 $0046 +091e: 6f ret + +091f: 2d push a +0920: e8 00 mov a,#$00 +0922: 3f 6b 0d call $0d6b +0925: e8 00 mov a,#$00 +0927: fd mov y,a +0928: da 60 movw $60,ya +092a: da 62 movw $62,ya +092c: a2 48 set5 $48 +092e: ae pop a +092f: 8f 80 47 mov $47,#$80 +0932: e4 d0 mov a,$d0 +0934: c4 d1 mov $d1,a +0936: 1c asl a +0937: 5d mov x,a +0938: e8 e0 mov a,#$e0 +093a: d5 01 03 mov $0301+x,a +093d: e8 ff mov a,#$ff +093f: d5 51 00 mov $0051+x,a +0942: e8 0a mov a,#$0a +0944: 3f 8f 0b call $0b8f +0947: e8 00 mov a,#$00 +0949: d5 30 03 mov $0330+x,a +094c: d5 81 03 mov $0381+x,a +094f: d5 f0 02 mov $02f0+x,a +0952: d5 80 02 mov $0280+x,a +0955: d5 b1 00 mov $00b1+x,a +0958: d5 c1 00 mov $00c1+x,a +095b: d5 e0 03 mov $03e0+x,a +095e: d5 d0 03 mov $03d0+x,a +0961: d6 80 00 mov $0080+y,a +0964: d6 90 00 mov $0090+y,a +0967: d6 91 00 mov $0091+y,a +096a: bc inc a +096b: d6 70 00 mov $0070+y,a +096e: d6 01 02 mov $0201+y,a +0971: 1d dec x +0972: 1d dec x +0973: 4b 47 lsr $47 +0975: 8b d1 dec $d1 +0977: 10 bf bpl $0938 +0979: e8 00 mov a,#$00 +097b: c4 5a mov $5a,a +097d: c4 68 mov $68,a +097f: c4 54 mov $54,a +0981: c4 50 mov $50,a +0983: c4 42 mov $42,a +0985: c4 5f mov $5f,a +0987: 8f ff 59 mov $59,#$ff +098a: 8f 20 53 mov $53,#$20 +098d: 6f ret + +098e: eb 08 mov y,$08 +0990: e4 1b mov a,$1b +0992: c4 08 mov $08,a +0994: 68 11 cmp a,#$11 +0996: 90 20 bcc $09b8 +0998: 68 f0 cmp a,#$f0 +099a: b0 02 bcs $099e +099c: c4 04 mov $04,a +099e: 68 f0 cmp a,#$f0 +09a0: d0 05 bne $09a7 +09a2: c4 04 mov $04,a +09a4: 5f 10 09 jmp $0910 + +09a7: 68 f1 cmp a,#$f1 +09a9: d0 05 bne $09b0 +09ab: c4 04 mov $04,a +09ad: 5f c2 09 jmp $09c2 + +09b0: 68 fb cmp a,#$fb +09b2: d0 0e bne $09c2 +09b4: c4 04 mov $04,a +09b6: 2f 0a bra $09c2 +09b8: 7e 1b cmp y,$1b +09ba: f0 06 beq $09c2 +09bc: 5f f0 08 jmp $08f0 + +09bf: 5f 1f 09 jmp $091f + +09c2: 3f 2f 12 call $122f +09c5: e4 e0 mov a,$e0 +09c7: 10 03 bpl $09cc +09c9: 5f 8d 09 jmp $098d + +09cc: e4 0c mov a,$0c +09ce: f0 5e beq $0a2e +09d0: 6e 0c ec dbnz $0c,$09bf +09d3: 3f 6f 06 call $066f +09d6: d0 17 bne $09ef +09d8: fd mov y,a +09d9: d0 03 bne $09de +09db: 5f f0 08 jmp $08f0 + +09de: 8b 42 dec $42 +09e0: 10 02 bpl $09e4 +09e2: c4 42 mov $42,a +09e4: 3f 6f 06 call $066f +09e7: f8 42 mov x,$42 +09e9: f0 e8 beq $09d3 +09eb: da 40 movw $40,ya +09ed: 2f e4 bra $09d3 +09ef: da 16 movw $16,ya +09f1: e4 d0 mov a,$d0 +09f3: 1c asl a +09f4: bc inc a +09f5: fd mov y,a +09f6: f7 16 mov a,($16)+y +09f8: d6 30 00 mov $0030+y,a +09fb: dc dec y +09fc: 10 f8 bpl $09f6 +09fe: cd 00 mov x,#$00 +0a00: 8f 01 47 mov $47,#$01 +0a03: e4 d0 mov a,$d0 +0a05: c4 d1 mov $d1,a +0a07: f4 31 mov a,$31+x +0a09: f0 0a beq $0a15 +0a0b: f5 11 02 mov a,$0211+x +0a0e: d0 05 bne $0a15 +0a10: e8 00 mov a,#$00 +0a12: 3f 31 0b call $0b31 +0a15: e8 00 mov a,#$00 +0a17: d4 80 mov $80+x,a +0a19: d4 90 mov $90+x,a +0a1b: d4 91 mov $91+x,a +0a1d: d5 e0 03 mov $03e0+x,a +0a20: d5 d0 03 mov $03d0+x,a +0a23: bc inc a +0a24: d4 70 mov $70+x,a +0a26: 3d inc x +0a27: 3d inc x +0a28: 0b 47 asl $47 +0a2a: 8b d1 dec $d1 +0a2c: 10 d9 bpl $0a07 +0a2e: cd 00 mov x,#$00 +0a30: d8 5e mov $5e,x +0a32: 8f 01 47 mov $47,#$01 +0a35: e4 d0 mov a,$d0 +0a37: c4 d1 mov $d1,a +0a39: d8 44 mov $44,x +0a3b: f4 31 mov a,$31+x +0a3d: f0 70 beq $0aaf +0a3f: 9b 70 dec $70+x +0a41: d0 66 bne $0aa9 +0a43: 3f 1f 0b call $0b1f +0a46: d0 17 bne $0a5f +0a48: f4 80 mov a,$80+x +0a4a: f0 87 beq $09d3 +0a4c: 3f fe 0c call $0cfe +0a4f: 9b 80 dec $80+x +0a51: d0 f0 bne $0a43 +0a53: f5 30 02 mov a,$0230+x +0a56: d4 30 mov $30+x,a +0a58: f5 31 02 mov a,$0231+x +0a5b: d4 31 mov $31+x,a +0a5d: 2f e4 bra $0a43 +0a5f: 30 28 bmi $0a89 +0a61: d5 00 02 mov $0200+x,a +0a64: 3f 1f 0b call $0b1f +0a67: 30 20 bmi $0a89 +0a69: 2d push a +0a6a: 9f xcn a +0a6b: 28 07 and a,#$07 +0a6d: fd mov y,a +0a6e: ad 07 cmp y,#$07 +0a70: d0 04 bne $0a76 +0a72: e8 00 mov a,#$00 +0a74: 2f 03 bra $0a79 +0a76: f6 1c 22 mov a,$221c+y +0a79: d5 01 02 mov $0201+x,a +0a7c: ae pop a +0a7d: 28 0f and a,#$0f +0a7f: fd mov y,a +0a80: f6 24 22 mov a,$2224+y +0a83: d5 10 02 mov $0210+x,a +0a86: 3f 1f 0b call $0b1f +0a89: 68 e0 cmp a,#$e0 +0a8b: 90 05 bcc $0a92 +0a8d: 3f 0d 0b call $0b0d +0a90: 2f b1 bra $0a43 +0a92: 3f 69 05 call $0569 +0a95: f5 00 02 mov a,$0200+x +0a98: d4 70 mov $70+x,a +0a9a: fd mov y,a +0a9b: f5 01 02 mov a,$0201+x +0a9e: f0 05 beq $0aa5 +0aa0: cf mul ya +0aa1: dd mov a,y +0aa2: d0 01 bne $0aa5 +0aa4: bc inc a +0aa5: d4 71 mov $71+x,a +0aa7: 2f 03 bra $0aac +0aa9: 3f 36 0f call $0f36 +0aac: 3f b7 0d call $0db7 +0aaf: 3d inc x +0ab0: 3d inc x +0ab1: 0b 47 asl $47 +0ab3: 8b d1 dec $d1 +0ab5: 30 03 bmi $0aba +0ab7: 5f 39 0a jmp $0a39 + +0aba: e4 54 mov a,$54 +0abc: f0 0b beq $0ac9 +0abe: ba 56 movw ya,$56 +0ac0: 7a 52 addw ya,$52 +0ac2: 6e 54 02 dbnz $54,$0ac7 +0ac5: ba 54 movw ya,$54 +0ac7: da 52 movw $52,ya +0ac9: e4 68 mov a,$68 +0acb: f0 15 beq $0ae2 +0acd: ba 64 movw ya,$64 +0acf: 7a 60 addw ya,$60 +0ad1: da 60 movw $60,ya +0ad3: ba 66 movw ya,$66 +0ad5: 7a 62 addw ya,$62 +0ad7: 6e 68 06 dbnz $68,$0ae0 +0ada: ba 68 movw ya,$68 +0adc: da 60 movw $60,ya +0ade: eb 6a mov y,$6a +0ae0: da 62 movw $62,ya +0ae2: e4 5a mov a,$5a +0ae4: f0 0e beq $0af4 +0ae6: ba 5c movw ya,$5c +0ae8: 7a 58 addw ya,$58 +0aea: 6e 5a 02 dbnz $5a,$0aef +0aed: ba 5a movw ya,$5a +0aef: da 58 movw $58,ya +0af1: 8f ff 5e mov $5e,#$ff +0af4: cd 00 mov x,#$00 +0af6: 8f 01 47 mov $47,#$01 +0af9: e4 d0 mov a,$d0 +0afb: c4 d1 mov $d1,a +0afd: f4 31 mov a,$31+x +0aff: f0 03 beq $0b04 +0b01: 3f 73 0e call $0e73 +0b04: 3d inc x +0b05: 3d inc x +0b06: 0b 47 asl $47 +0b08: 8b d1 dec $d1 +0b0a: 10 f1 bpl $0afd +0b0c: 6f ret + +; dispatch vcmd in A (e0-ff) +0b0d: 1c asl a +0b0e: fd mov y,a +0b0f: f6 57 0d mov a,$0d57+y +0b12: 2d push a +0b13: f6 56 0d mov a,$0d56+y +0b16: 2d push a +0b17: dd mov a,y +0b18: 5c lsr a +0b19: fd mov y,a +0b1a: f6 f4 0d mov a,$0df4+y +0b1d: f0 08 beq $0b27 +0b1f: e7 30 mov a,($30+x) +0b21: bb 30 inc $30+x +0b23: d0 02 bne $0b27 +0b25: bb 31 inc $31+x +0b27: fd mov y,a +0b28: 6f ret +0b29: 9b 30 dec $30+x +0b2b: b0 02 bcs $0b2f +0b2d: 9b 31 dec $31+x +0b2f: fd mov y,a +0b30: 6f ret + +; vcmd e0 - set instrument +0b31: d5 11 02 mov $0211+x,a +0b34: fd mov y,a +0b35: 10 06 bpl $0b3d +0b37: 80 setc +0b38: a8 ca sbc a,#$ca +0b3a: 60 clrc +0b3b: 84 5f adc a,$5f +0b3d: 8d 06 mov y,#$06 +0b3f: cf mul ya +0b40: da 14 movw $14,ya +0b42: 60 clrc +0b43: 98 49 14 adc $14,#$49 +0b46: 98 16 15 adc $15,#$16 +0b49: e4 1a mov a,$1a +0b4b: 24 47 and a,$47 +0b4d: d0 3b bne $0b8a +0b4f: 4d push x +0b50: 7d mov a,x +0b51: 9f xcn a +0b52: 5c lsr a +0b53: 08 04 or a,#$04 +0b55: 5d mov x,a +0b56: 8d 00 mov y,#$00 +0b58: f7 14 mov a,($14)+y +0b5a: 10 0f bpl $0b6b +0b5c: 28 1f and a,#$1f +0b5e: 38 20 48 and $48,#$20 +0b61: 0e 48 00 tset1 $0048 +0b64: 09 47 49 or ($49),($47) +0b67: e8 02 mov a,#$02 +0b69: 2f 07 bra $0b72 +0b6b: e4 47 mov a,$47 +0b6d: 4e 49 00 tclr1 $0049 +0b70: f7 14 mov a,($14)+y +0b72: c9 f2 00 mov $00f2,x +0b75: c5 f3 00 mov $00f3,a +0b78: 3d inc x +0b79: fc inc y +0b7a: ad 04 cmp y,#$04 +0b7c: d0 f2 bne $0b70 +0b7e: ce pop x +0b7f: f7 14 mov a,($14)+y +0b81: d5 21 02 mov $0221+x,a +0b84: fc inc y +0b85: f7 14 mov a,($14)+y +0b87: d5 20 02 mov $0220+x,a +0b8a: 6f ret + +; vcmd e1 - pan +0b8b: eb e2 mov y,$e2 +0b8d: d0 0d bne $0b9c +0b8f: d5 51 03 mov $0351+x,a +0b92: 28 1f and a,#$1f +0b94: d5 31 03 mov $0331+x,a +0b97: e8 00 mov a,#$00 +0b99: d5 30 03 mov $0330+x,a +0b9c: 6f ret + +; vcmd e2 - pan fade +0b9d: eb e2 mov y,$e2 +0b9f: d0 fb bne $0b9c +0ba1: d4 91 mov $91+x,a +0ba3: 2d push a +0ba4: 3f 1f 0b call $0b1f +0ba7: d5 50 03 mov $0350+x,a +0baa: 80 setc +0bab: b5 31 03 sbc a,$0331+x +0bae: ce pop x +0baf: 3f fa 0d call $0dfa +0bb2: d5 40 03 mov $0340+x,a +0bb5: dd mov a,y +0bb6: d5 41 03 mov $0341+x,a +0bb9: 6f ret + +; vcmd e3 - vibrato on +0bba: d5 b0 02 mov $02b0+x,a +0bbd: 3f 1f 0b call $0b1f +0bc0: d5 a1 02 mov $02a1+x,a +0bc3: 3f 1f 0b call $0b1f +; vcmd e4 - vibrato off +0bc6: d4 b1 mov $b1+x,a +0bc8: d5 c1 02 mov $02c1+x,a +0bcb: e8 00 mov a,#$00 +0bcd: d5 b1 02 mov $02b1+x,a +0bd0: 6f ret + +; vcmd f0 - vibrato fade+ +0bd1: d5 b1 02 mov $02b1+x,a +0bd4: 2d push a +0bd5: 8d 00 mov y,#$00 +0bd7: f4 b1 mov a,$b1+x +0bd9: ce pop x +0bda: 9e div ya,x +0bdb: f8 44 mov x,$44 +0bdd: d5 c0 02 mov $02c0+x,a +0be0: 6f ret + +; vcmd e5 - master volume +0be1: e4 d0 mov a,$d0 +0be3: 68 07 cmp a,#$07 +0be5: f0 04 beq $0beb +0be7: c8 0c cmp x,#$0c +0be9: b0 05 bcs $0bf0 +0beb: e8 00 mov a,#$00 +0bed: da 58 movw $58,ya +0bef: 6f ret + +0bf0: 3f 29 0b call $0b29 +0bf3: 3f 1f 0b call $0b1f +0bf6: 2d push a +0bf7: 3f 1f 0b call $0b1f +0bfa: fd mov y,a +0bfb: ae pop a +0bfc: d4 30 mov $30+x,a +0bfe: dd mov a,y +0bff: d4 31 mov $31+x,a +0c01: 6f ret + +; vcmd fd - repeat section +0c02: f5 e0 03 mov a,$03e0+x +0c05: d0 0a bne $0c11 +0c07: 3f 1f 0b call $0b1f +0c0a: fd mov y,a +0c0b: dd mov a,y +0c0c: d5 e0 03 mov $03e0+x,a +0c0f: 2f 0c bra $0c1d +0c11: f5 e0 03 mov a,$03e0+x +0c14: 9c dec a +0c15: d5 e0 03 mov $03e0+x,a +0c18: f0 12 beq $0c2c +0c1a: 3f 21 0b call $0b21 +0c1d: 3f 1f 0b call $0b1f +0c20: 2d push a +0c21: 3f 1f 0b call $0b1f +0c24: fd mov y,a +0c25: ae pop a +0c26: d4 30 mov $30+x,a +0c28: dd mov a,y +0c29: d4 31 mov $31+x,a +0c2b: 6f ret + +0c2c: 3f 21 0b call $0b21 +0c2f: 3f 21 0b call $0b21 +0c32: 3f 21 0b call $0b21 +0c35: 6f ret + +; vcmd fc - jump to position +0c36: f5 d0 03 mov a,$03d0+x +0c39: d0 fb bne $0c36 +0c3b: f4 30 mov a,$30+x +0c3d: d5 d0 03 mov $03d0+x,a +0c40: f4 31 mov a,$31+x +0c42: d5 d1 03 mov $03d1+x,a +0c45: 5f f3 0b jmp $0bf3 + +; vcmd fe - return from jump +0c48: f5 d0 03 mov a,$03d0+x +0c4b: f0 0d beq $0c5a +0c4d: d4 30 mov $30+x,a +0c4f: f5 d1 03 mov a,$03d1+x +0c52: d4 31 mov $31+x,a +0c54: 3f 21 0b call $0b21 +0c57: 3f 21 0b call $0b21 +0c5a: e8 00 mov a,#$00 +0c5c: d5 d0 03 mov $03d0+x,a +0c5f: d5 d1 03 mov $03d1+x,a +0c62: 6f ret + +; vcmd e6 - master volume fade +0c63: c4 5a mov $5a,a +0c65: 3f 1f 0b call $0b1f +0c68: c4 5b mov $5b,a +0c6a: 80 setc +0c6b: a4 59 sbc a,$59 +0c6d: f8 5a mov x,$5a +0c6f: 3f fa 0d call $0dfa +0c72: da 5c movw $5c,ya +0c74: 6f ret + +; vcmd e7 - tempo +0c75: e8 00 mov a,#$00 +0c77: da 52 movw $52,ya +0c79: 6f ret + +; vcmd e8 - tempo fade +0c7a: c4 54 mov $54,a +0c7c: 3f 1f 0b call $0b1f +0c7f: c4 55 mov $55,a +0c81: 80 setc +0c82: a4 53 sbc a,$53 +0c84: f8 54 mov x,$54 +0c86: 3f fa 0d call $0dfa +0c89: da 56 movw $56,ya +0c8b: 6f ret + +; vcmd e9 - global transpose +0c8c: c4 50 mov $50,a +0c8e: 6f ret + +; vcmd ea - per-voice transpose +0c8f: d5 f0 02 mov $02f0+x,a +0c92: 6f ret + +; vcmd eb - tremolo on +0c93: d5 e0 02 mov $02e0+x,a +0c96: 3f 1f 0b call $0b1f +0c99: d5 d1 02 mov $02d1+x,a +0c9c: 3f 1f 0b call $0b1f +; vcmd ec - tremolo off +0c9f: d4 c1 mov $c1+x,a +0ca1: 6f ret + +; vcmd f1 - pitch envelope (release) +0ca2: e8 01 mov a,#$01 +0ca4: 2f 02 bra $0ca8 +; vcmd f2 - pitch envelope (attack) +0ca6: e8 00 mov a,#$00 +0ca8: d5 90 02 mov $0290+x,a +0cab: dd mov a,y +0cac: d5 81 02 mov $0281+x,a +0caf: 3f 1f 0b call $0b1f +0cb2: d5 80 02 mov $0280+x,a +0cb5: 3f 1f 0b call $0b1f +0cb8: d5 91 02 mov $0291+x,a +0cbb: 6f ret + +; vcmd f3 - pitch envelope off +0cbc: d5 80 02 mov $0280+x,a +0cbf: 6f ret + +; vcmd ed - volume +0cc0: d5 01 03 mov $0301+x,a +0cc3: e8 00 mov a,#$00 +0cc5: d5 00 03 mov $0300+x,a +0cc8: 6f ret + +; vcmd ee - volume fade +0cc9: d4 90 mov $90+x,a +0ccb: 2d push a +0ccc: 3f 1f 0b call $0b1f +0ccf: d5 20 03 mov $0320+x,a +0cd2: 80 setc +0cd3: b5 01 03 sbc a,$0301+x +0cd6: ce pop x +0cd7: 3f fa 0d call $0dfa +0cda: d5 10 03 mov $0310+x,a +0cdd: dd mov a,y +0cde: d5 11 03 mov $0311+x,a +0ce1: 6f ret + +; vcmd f4 - tuning +0ce2: d5 81 03 mov $0381+x,a +0ce5: 6f ret + +; vcmd ef - call subroutine +0ce6: d5 40 02 mov $0240+x,a +0ce9: 3f 1f 0b call $0b1f +0cec: d5 41 02 mov $0241+x,a +0cef: 3f 1f 0b call $0b1f +0cf2: d4 80 mov $80+x,a +0cf4: f4 30 mov a,$30+x +0cf6: d5 30 02 mov $0230+x,a +0cf9: f4 31 mov a,$31+x +0cfb: d5 31 02 mov $0231+x,a +0cfe: f5 40 02 mov a,$0240+x +0d01: d4 30 mov $30+x,a +0d03: f5 41 02 mov a,$0241+x +0d06: d4 31 mov $31+x,a +0d08: 6f ret + +; vcmd f5 - echo vbits/volume +0d09: c4 4a mov $4a,a +0d0b: 3f 1f 0b call $0b1f +0d0e: e8 00 mov a,#$00 +0d10: da 60 movw $60,ya +0d12: 3f 1f 0b call $0b1f +0d15: e8 00 mov a,#$00 +0d17: da 62 movw $62,ya +0d19: b2 48 clr5 $48 +0d1b: 6f ret + +; vcmd f8 - echo volume fade +0d1c: c4 68 mov $68,a +0d1e: 3f 1f 0b call $0b1f +0d21: c4 69 mov $69,a +0d23: 80 setc +0d24: a4 61 sbc a,$61 +0d26: f8 68 mov x,$68 +0d28: 3f fa 0d call $0dfa +0d2b: da 64 movw $64,ya +0d2d: 3f 1f 0b call $0b1f +0d30: c4 6a mov $6a,a +0d32: 80 setc +0d33: a4 63 sbc a,$63 +0d35: f8 68 mov x,$68 +0d37: 3f fa 0d call $0dfa +0d3a: da 66 movw $66,ya +0d3c: 6f ret + +; vcmd f6 - disable echo +0d3d: da 60 movw $60,ya +0d3f: da 62 movw $62,ya +0d41: e8 00 mov a,#$00 +0d43: 3f 6b 0d call $0d6b +0d46: a2 48 set5 $48 +0d48: 6f ret + +; vcmd f7 - set echo params +0d49: 3f 6b 0d call $0d6b +0d4c: 3f 1f 0b call $0b1f +0d4f: c4 4e mov $4e,a +0d51: 3f 1f 0b call $0b1f +0d54: 8d 08 mov y,#$08 +0d56: cf mul ya +0d57: 5d mov x,a +0d58: 8d 0f mov y,#$0f +0d5a: f5 e3 10 mov a,$10e3+x +0d5d: 3f 5e 06 call $065e +0d60: 3d inc x +0d61: dd mov a,y +0d62: 60 clrc +0d63: 88 10 adc a,#$10 +0d65: fd mov y,a +0d66: 10 f2 bpl $0d5a +0d68: f8 44 mov x,$44 +0d6a: 6f ret + +0d6b: c4 4d mov $4d,a +0d6d: 8d 7d mov y,#$7d +0d6f: cc f2 00 mov $00f2,y +0d72: e5 f3 00 mov a,$00f3 +0d75: 64 4d cmp a,$4d +0d77: f0 2b beq $0da4 +0d79: 28 0f and a,#$0f +0d7b: 48 ff eor a,#$ff +0d7d: f3 4c 03 bbc7 $4c,$0d83 +0d80: 60 clrc +0d81: 84 4c adc a,$4c +0d83: c4 4c mov $4c,a +0d85: 8d 04 mov y,#$04 +0d87: f6 02 11 mov a,$1102+y +0d8a: c5 f2 00 mov $00f2,a +0d8d: e8 00 mov a,#$00 +0d8f: c5 f3 00 mov $00f3,a +0d92: fe f3 dbnz y,$0d87 +0d94: e4 48 mov a,$48 +0d96: 08 20 or a,#$20 +0d98: 8d 6c mov y,#$6c +0d9a: 3f 5e 06 call $065e +0d9d: e4 4d mov a,$4d +0d9f: 8d 7d mov y,#$7d +0da1: 3f 5e 06 call $065e +0da4: 1c asl a +0da5: 1c asl a +0da6: 1c asl a +0da7: 48 ff eor a,#$ff +0da9: 80 setc +0daa: 88 ff adc a,#$ff +0dac: 8d 6d mov y,#$6d +0dae: 5f 5e 06 jmp $065e + +; vcmd fa - set perc patch base +0db1: c4 5f mov $5f,a +0db3: 6f ret + +; vcmd fb +0db4: 3f 21 0b call $0b21 +0db7: f4 a0 mov a,$a0+x +0db9: d0 33 bne $0dee +0dbb: e7 30 mov a,($30+x) +0dbd: 68 f9 cmp a,#$f9 +0dbf: d0 2d bne $0dee +0dc1: 3f 21 0b call $0b21 +0dc4: 3f 1f 0b call $0b1f + +; vcmd f9 - pitch slide +0dc7: d4 a1 mov $a1+x,a +0dc9: 3f 1f 0b call $0b1f +0dcc: d4 a0 mov $a0+x,a +0dce: 3f 1f 0b call $0b1f +0dd1: 60 clrc +0dd2: 84 50 adc a,$50 +0dd4: 95 f0 02 adc a,$02f0+x +0dd7: 28 7f and a,#$7f +0dd9: d5 80 03 mov $0380+x,a +0ddc: 80 setc +0ddd: b5 61 03 sbc a,$0361+x +0de0: fb a0 mov y,$a0+x +0de2: 6d push y +0de3: ce pop x +0de4: 3f fa 0d call $0dfa +0de7: d5 70 03 mov $0370+x,a +0dea: dd mov a,y +0deb: d5 71 03 mov $0371+x,a +0dee: 6f ret + +0def: f5 61 03 mov a,$0361+x +0df2: c4 11 mov $11,a +0df4: f5 60 03 mov a,$0360+x +0df7: c4 10 mov $10,a +0df9: 6f ret + +0dfa: ed notc +0dfb: 6b 12 ror $12 +0dfd: 10 03 bpl $0e02 +0dff: 48 ff eor a,#$ff +0e01: bc inc a +0e02: 8d 00 mov y,#$00 +0e04: 9e div ya,x +0e05: 2d push a +0e06: e8 00 mov a,#$00 +0e08: 9e div ya,x +0e09: ee pop y +0e0a: f8 44 mov x,$44 +0e0c: f3 12 06 bbc7 $12,$0e15 +0e0f: da 14 movw $14,ya +0e11: ba 0e movw ya,$0e +0e13: 9a 14 subw ya,$14 +0e15: 6f ret + +; vcmd dispatch table +0e16: dw $0b31 ; e0 - set instrument +0e18: dw $0b8b ; e1 - pan +0e1a: dw $0b9d ; e2 - pan fade +0e1c: dw $0bba ; e3 - vibrato on +0e1e: dw $0bc6 ; e4 - vibrato off +0e20: dw $0be1 ; e5 - master volume +0e22: dw $0c63 ; e6 - master volume fade +0e24: dw $0c75 ; e7 - tempo +0e26: dw $0c7a ; e8 - tempo fade +0e28: dw $0c8c ; e9 - global transpose +0e2a: dw $0c8f ; ea - per-voice transpose +0e2c: dw $0c93 ; eb - tremolo on +0e2e: dw $0c9f ; ec - tremolo off +0e30: dw $0cc0 ; ed - volume +0e32: dw $0cc9 ; ee - volume fade +0e34: dw $0ce6 ; ef - call subroutine +0e36: dw $0bd1 ; f0 - vibrato fade +0e38: dw $0ca2 ; f1 - pitch envelope (release) +0e3a: dw $0ca6 ; f2 - pitch envelope (attack) +0e3c: dw $0cbc ; f3 - pitch envelope off +0e3e: dw $0ce2 ; f4 - tuning +0e40: dw $0d09 ; f5 - echo vbits/volume +0e42: dw $0d3d ; f6 - disable echo +0e44: dw $0d49 ; f7 - set echo params +0e46: dw $0d1c ; f8 - echo volume fade +0e48: dw $0dc7 ; f9 - pitch slide +0e4a: dw $0db1 ; fa - set perc patch base +0e4c: dw $0db4 ; fb +0e4e: dw $0c36 ; fc - jump to position +0e50: dw $0c02 ; fd - repeat section +0e52: dw $0c48 ; fe - return from jump + +; vcmd lengths +0e54: db $01,$01,$02,$03,$00,$01,$02,$01 ; e0-e7 +0e5c: db $02,$01,$01,$03,$00,$01,$02,$03 ; e8-ef +0e64: db $01,$03,$03,$00,$01,$03,$00,$03 ; f0-f7 +0e6d: db $03,$03,$01,$02,$00,$00,$00 ; f8-fe + +0e73: f4 90 mov a,$90+x +0e75: f0 24 beq $0e9b +0e77: 09 47 5e or ($5e),($47) +0e7a: 9b 90 dec $90+x +0e7c: d0 0a bne $0e88 +0e7e: e8 00 mov a,#$00 +0e80: d5 00 03 mov $0300+x,a +0e83: f5 20 03 mov a,$0320+x +0e86: 2f 10 bra $0e98 +0e88: 60 clrc +0e89: f5 00 03 mov a,$0300+x +0e8c: 95 10 03 adc a,$0310+x +0e8f: d5 00 03 mov $0300+x,a +0e92: f5 01 03 mov a,$0301+x +0e95: 95 11 03 adc a,$0311+x +0e98: d5 01 03 mov $0301+x,a +0e9b: fb c1 mov y,$c1+x +0e9d: f0 23 beq $0ec2 +0e9f: f5 e0 02 mov a,$02e0+x +0ea2: de c0 1b cbne $c0+x,$0ec0 +0ea5: 09 47 5e or ($5e),($47) +0ea8: f5 d0 02 mov a,$02d0+x +0eab: 10 07 bpl $0eb4 +0ead: fc inc y +0eae: d0 04 bne $0eb4 +0eb0: e8 80 mov a,#$80 +0eb2: 2f 04 bra $0eb8 +0eb4: 60 clrc +0eb5: 95 d1 02 adc a,$02d1+x +0eb8: d5 d0 02 mov $02d0+x,a +0ebb: 3f b1 10 call $10b1 +0ebe: 2f 07 bra $0ec7 +0ec0: bb c0 inc $c0+x +0ec2: e8 ff mov a,#$ff +0ec4: 3f bc 10 call $10bc +0ec7: f4 91 mov a,$91+x +0ec9: f0 24 beq $0eef +0ecb: 09 47 5e or ($5e),($47) +0ece: 9b 91 dec $91+x +0ed0: d0 0a bne $0edc +0ed2: e8 00 mov a,#$00 +0ed4: d5 30 03 mov $0330+x,a +0ed7: f5 50 03 mov a,$0350+x +0eda: 2f 10 bra $0eec +0edc: 60 clrc +0edd: f5 30 03 mov a,$0330+x +0ee0: 95 40 03 adc a,$0340+x +0ee3: d5 30 03 mov $0330+x,a +0ee6: f5 31 03 mov a,$0331+x +0ee9: 95 41 03 adc a,$0341+x +0eec: d5 31 03 mov $0331+x,a +0eef: f5 31 03 mov a,$0331+x +0ef2: fd mov y,a +0ef3: f5 30 03 mov a,$0330+x +0ef6: da 10 movw $10,ya +0ef8: 7d mov a,x +0ef9: 9f xcn a +0efa: 5c lsr a +0efb: c4 12 mov $12,a +0efd: eb 11 mov y,$11 +0eff: f6 cf 10 mov a,$10cf+y +0f02: 80 setc +0f03: b6 ce 10 sbc a,$10ce+y +0f06: eb 10 mov y,$10 +0f08: cf mul ya +0f09: dd mov a,y +0f0a: eb 11 mov y,$11 +0f0c: 60 clrc +0f0d: 96 ce 10 adc a,$10ce+y +0f10: fd mov y,a +0f11: f5 21 03 mov a,$0321+x +0f14: cf mul ya +0f15: f5 51 03 mov a,$0351+x +0f18: 1c asl a +0f19: 13 12 01 bbc0 $12,$0f1d +0f1c: 1c asl a +0f1d: dd mov a,y +0f1e: 90 03 bcc $0f23 +0f20: 48 ff eor a,#$ff +0f22: bc inc a +0f23: eb 12 mov y,$12 +0f25: 3f 56 06 call $0656 +0f28: 8d 14 mov y,#$14 +0f2a: e8 00 mov a,#$00 +0f2c: 9a 10 subw ya,$10 +0f2e: da 10 movw $10,ya +0f30: ab 12 inc $12 +0f32: 33 12 c8 bbc1 $12,$0efd +0f35: 6f ret + +0f36: f5 01 02 mov a,$0201+x +0f39: f0 08 beq $0f43 +0f3b: f4 71 mov a,$71+x +0f3d: f0 63 beq $0fa2 +0f3f: 9b 71 dec $71+x +0f41: f0 03 beq $0f46 +0f43: 5f a2 0f jmp $0fa2 + +0f46: f4 80 mov a,$80+x +0f48: c4 17 mov $17,a +0f4a: f4 30 mov a,$30+x +0f4c: fb 31 mov y,$31+x +0f4e: da 14 movw $14,ya +0f50: 8d 00 mov y,#$00 +0f52: f7 14 mov a,($14)+y +0f54: f0 1e beq $0f74 +0f56: 30 07 bmi $0f5f +0f58: fc inc y +0f59: 30 40 bmi $0f9b +0f5b: f7 14 mov a,($14)+y +0f5d: 10 f9 bpl $0f58 +0f5f: 68 c8 cmp a,#$c8 +0f61: f0 3f beq $0fa2 +0f63: 68 ef cmp a,#$ef +0f65: f0 29 beq $0f90 +0f67: 68 e0 cmp a,#$e0 +0f69: 90 30 bcc $0f9b +0f6b: 6d push y +0f6c: fd mov y,a +0f6d: ae pop a +0f6e: 96 74 0d adc a,$0d74+y +0f71: fd mov y,a +0f72: 2f de bra $0f52 +0f74: e4 17 mov a,$17 +0f76: f0 23 beq $0f9b +0f78: 8b 17 dec $17 +0f7a: d0 0a bne $0f86 +0f7c: f5 31 02 mov a,$0231+x +0f7f: 2d push a +0f80: f5 30 02 mov a,$0230+x +0f83: ee pop y +0f84: 2f c8 bra $0f4e +0f86: f5 41 02 mov a,$0241+x +0f89: 2d push a +0f8a: f5 40 02 mov a,$0240+x +0f8d: ee pop y +0f8e: 2f be bra $0f4e +0f90: fc inc y +0f91: f7 14 mov a,($14)+y +0f93: 2d push a +0f94: fc inc y +0f95: f7 14 mov a,($14)+y +0f97: fd mov y,a +0f98: ae pop a +0f99: 2f b3 bra $0f4e +0f9b: e4 47 mov a,$47 +0f9d: 8d 5c mov y,#$5c +0f9f: 3f 56 06 call $0656 +0fa2: f2 13 clr7 $13 +0fa4: f4 a0 mov a,$a0+x +0fa6: f0 2c beq $0fd4 +0fa8: f4 a1 mov a,$a1+x +0faa: f0 04 beq $0fb0 +0fac: 9b a1 dec $a1+x +0fae: 2f 24 bra $0fd4 +0fb0: e2 13 set7 $13 +0fb2: 9b a0 dec $a0+x +0fb4: d0 0b bne $0fc1 +0fb6: f5 81 03 mov a,$0381+x +0fb9: d5 60 03 mov $0360+x,a +0fbc: f5 80 03 mov a,$0380+x +0fbf: 2f 10 bra $0fd1 +0fc1: 60 clrc +0fc2: f5 60 03 mov a,$0360+x +0fc5: 95 70 03 adc a,$0370+x +0fc8: d5 60 03 mov $0360+x,a +0fcb: f5 61 03 mov a,$0361+x +0fce: 95 71 03 adc a,$0371+x +0fd1: d5 61 03 mov $0361+x,a +0fd4: 3f ef 0d call $0def +0fd7: f4 b1 mov a,$b1+x +0fd9: f0 4c beq $1027 +0fdb: f5 b0 02 mov a,$02b0+x +0fde: de b0 44 cbne $b0+x,$1025 +0fe1: f5 00 01 mov a,$0100+x +0fe4: 75 b1 02 cmp a,$02b1+x +0fe7: d0 05 bne $0fee +0fe9: f5 c1 02 mov a,$02c1+x +0fec: 2f 0d bra $0ffb +0fee: 40 setp +0fef: bb 00 inc $00+x +0ff1: 20 clrp +0ff2: fd mov y,a +0ff3: f0 02 beq $0ff7 +0ff5: f4 b1 mov a,$b1+x +0ff7: 60 clrc +0ff8: 95 c0 02 adc a,$02c0+x +0ffb: d4 b1 mov $b1+x,a +0ffd: f5 a0 02 mov a,$02a0+x +1000: 60 clrc +1001: 95 a1 02 adc a,$02a1+x +1004: d5 a0 02 mov $02a0+x,a +1007: c4 12 mov $12,a +1009: 1c asl a +100a: 1c asl a +100b: 90 02 bcc $100f +100d: 48 ff eor a,#$ff +100f: fd mov y,a +1010: f4 b1 mov a,$b1+x +1012: 68 f1 cmp a,#$f1 +1014: 90 05 bcc $101b +1016: 28 0f and a,#$0f +1018: cf mul ya +1019: 2f 04 bra $101f +101b: cf mul ya +101c: dd mov a,y +101d: 8d 00 mov y,#$00 +101f: 3f 9c 10 call $109c +1022: 5f d3 05 jmp $05d3 + +1025: bb b0 inc $b0+x +1027: e3 13 f8 bbs7 $13,$1022 +102a: 6f ret + +102b: f2 13 clr7 $13 +102d: f4 c1 mov a,$c1+x +102f: f0 09 beq $103a +1031: f5 e0 02 mov a,$02e0+x +1034: de c0 03 cbne $c0+x,$103a +1037: 3f a4 10 call $10a4 +103a: f5 31 03 mov a,$0331+x +103d: fd mov y,a +103e: f5 30 03 mov a,$0330+x +1041: da 10 movw $10,ya +1043: f4 91 mov a,$91+x +1045: f0 0a beq $1051 +1047: f5 41 03 mov a,$0341+x +104a: fd mov y,a +104b: f5 40 03 mov a,$0340+x +104e: 3f 86 10 call $1086 +1051: f3 13 03 bbc7 $13,$1057 +1054: 3f f8 0e call $0ef8 +1057: f2 13 clr7 $13 +1059: 3f ef 0d call $0def +105c: f4 a0 mov a,$a0+x +105e: f0 0e beq $106e +1060: f4 a1 mov a,$a1+x +1062: d0 0a bne $106e +1064: f5 71 03 mov a,$0371+x +1067: fd mov y,a +1068: f5 70 03 mov a,$0370+x +106b: 3f 86 10 call $1086 +106e: f4 b1 mov a,$b1+x +1070: f0 b5 beq $1027 +1072: f5 b0 02 mov a,$02b0+x +1075: de b0 af cbne $b0+x,$1027 +1078: eb 51 mov y,$51 +107a: f5 a1 02 mov a,$02a1+x +107d: cf mul ya +107e: dd mov a,y +107f: 60 clrc +1080: 95 a0 02 adc a,$02a0+x +1083: 5f 07 10 jmp $1007 + +1086: e2 13 set7 $13 +1088: cb 12 mov $12,y +108a: 3f 0c 0e call $0e0c +108d: 6d push y +108e: eb 51 mov y,$51 +1090: cf mul ya +1091: cb 14 mov $14,y +1093: 8f 00 15 mov $15,#$00 +1096: eb 51 mov y,$51 +1098: ae pop a +1099: cf mul ya +109a: 7a 14 addw ya,$14 +109c: 3f 0c 0e call $0e0c +109f: 7a 10 addw ya,$10 +10a1: da 10 movw $10,ya +10a3: 6f ret + +10a4: e2 13 set7 $13 +10a6: eb 51 mov y,$51 +10a8: f5 d1 02 mov a,$02d1+x +10ab: cf mul ya +10ac: dd mov a,y +10ad: 60 clrc +10ae: 95 d0 02 adc a,$02d0+x +10b1: 1c asl a +10b2: 90 02 bcc $10b6 +10b4: 48 ff eor a,#$ff +10b6: fb c1 mov y,$c1+x +10b8: cf mul ya +10b9: dd mov a,y +10ba: 48 ff eor a,#$ff +10bc: eb 59 mov y,$59 +10be: cf mul ya +10bf: f5 10 02 mov a,$0210+x +10c2: cf mul ya +10c3: f5 01 03 mov a,$0301+x +10c6: cf mul ya +10c7: dd mov a,y +10c8: cf mul ya +10c9: dd mov a,y +10ca: d5 21 03 mov $0321+x,a +10cd: 6f ret + +; pan table +10ce: db $00,$01,$03,$07,$0d,$15,$1e,$29 +10d6: db $34,$42,$51,$5e,$67,$6e,$73,$77 +10de: db $7a,$7c,$7d,$7e,$7f + +; echo FIR presets +10e3: db $7f,$00,$00,$00,$00,$00,$00,$00 ; 00 +10ec: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c ; 01 +10f3: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 ; 02 +10fb: db $34,$33,$00,$d9,$e5,$01,$fc,$eb ; 03 + +; EVOL(L),EVOL(R),EFB,EON,FLG,KOL,KOF,NON,PMON,KOF +; dsp shadow addrs for dsp regs +1103: db $2c,$3c,$0d,$4d,$6c,$4c,$5c,$3d,$2d,$5c +110d: db $61,$63,$4e,$4a,$48,$45,$0e,$49,$4b,$46 + +; pitch table +1117: dw $085f +1119: dw $08de +111b: dw $0965 +111d: dw $09f4 +111f: dw $0a8c +1121: dw $0b2c +1123: dw $0bd6 +1125: dw $0c8b +1127: dw $0d4a +1129: dw $0e14 +112b: dw $0eea +112d: dw $0fcd +112f: dw $10be + +; version number text +1131: db "*Ver S1.20*" + +113c: fc inc y +113d: e5 f7 00 mov a,$00f7 +1140: 65 f7 00 cmp a,$00f7 +1143: d0 f8 bne $113d +1145: c5 f7 00 mov $00f7,a +1148: d7 10 mov ($10)+y,a +114a: dc dec y +114b: e5 f6 00 mov a,$00f6 +114e: 65 f6 00 cmp a,$00f6 +1151: d0 f8 bne $114b +1153: c5 f6 00 mov $00f6,a +1156: d7 10 mov ($10)+y,a +1158: fc inc y +1159: fc inc y +115a: 6f ret + +115b: e5 f4 00 mov a,$00f4 +115e: c5 f4 00 mov $00f4,a +1161: e8 11 mov a,#$11 +1163: c5 f6 00 mov $00f6,a +1166: e8 22 mov a,#$22 +1168: c5 f7 00 mov $00f7,a +116b: e5 f4 00 mov a,$00f4 +116e: 68 cc cmp a,#$cc +1170: d0 f9 bne $116b +1172: c5 f4 00 mov $00f4,a +1175: e5 f7 00 mov a,$00f7 +1178: 65 f7 00 cmp a,$00f7 +117b: d0 f8 bne $1175 +117d: c5 f7 00 mov $00f7,a +1180: fd mov y,a +1181: e5 f6 00 mov a,$00f6 +1184: 65 f6 00 cmp a,$00f6 +1187: d0 f8 bne $1181 +1189: c5 f6 00 mov $00f6,a +118c: da 10 movw $10,ya +118e: e5 f4 00 mov a,$00f4 +1191: 68 ff cmp a,#$ff +1193: d0 f9 bne $118e +1195: 8d 00 mov y,#$00 +1197: 3f 3c 11 call $113c +119a: e5 f4 00 mov a,$00f4 +119d: 68 00 cmp a,#$00 +119f: d0 f9 bne $119a +11a1: 3f 3c 11 call $113c +11a4: e8 aa mov a,#$aa +11a6: c5 f4 00 mov $00f4,a +11a9: e8 bb mov a,#$bb +11ab: c5 f5 00 mov $00f5,a +11ae: e9 f4 00 mov x,$00f4 +11b1: 1e f4 00 cmp x,$00f4 +11b4: d0 f8 bne $11ae +11b6: c8 cc cmp x,#$cc +11b8: d0 f4 bne $11ae +11ba: 2f 20 bra $11dc +11bc: ec f4 00 mov y,$00f4 +11bf: d0 fb bne $11bc +11c1: 5e f4 00 cmp y,$00f4 +11c4: d0 0f bne $11d5 +11c6: e5 f5 00 mov a,$00f5 +11c9: cc f4 00 mov $00f4,y +11cc: d7 10 mov ($10)+y,a +11ce: fc inc y +11cf: d0 f0 bne $11c1 +11d1: ab 11 inc $11 +11d3: 2f ec bra $11c1 +11d5: 10 ea bpl $11c1 +11d7: 5e f4 00 cmp y,$00f4 +11da: 10 e5 bpl $11c1 +11dc: e5 f6 00 mov a,$00f6 +11df: ec f7 00 mov y,$00f7 +11e2: da 10 movw $10,ya +11e4: e5 f4 00 mov a,$00f4 +11e7: ec f5 00 mov y,$00f5 +11ea: c5 f4 00 mov $00f4,a +11ed: dd mov a,y +11ee: 5d mov x,a +11ef: cc f5 00 mov $00f5,y +11f2: d0 c8 bne $11bc +11f4: e8 31 mov a,#$31 +11f6: c5 f1 00 mov $00f1,a +11f9: 6f ret + +11fa: e8 00 mov a,#$00 +11fc: c4 3d mov $3d,a +11fe: c4 3f mov $3f,a +1200: e8 05 mov a,#$05 +1202: 2f 0d bra $1211 +1204: e8 00 mov a,#$00 +1206: c4 3f mov $3f,a +1208: e8 06 mov a,#$06 +120a: 2f 05 bra $1211 +120c: 3f 0f 08 call $080f +120f: e8 07 mov a,#$07 +1211: c5 d0 00 mov $00d0,a +1214: 6f ret + +1215: e4 e0 mov a,$e0 +1217: 28 03 and a,#$03 +1219: d0 06 bne $1221 +121b: e4 e0 mov a,$e0 +121d: 08 01 or a,#$01 +121f: c4 e0 mov $e0,a +1221: 6f ret + +1222: e4 e0 mov a,$e0 +1224: 28 03 and a,#$03 +1226: d0 06 bne $122e +1228: e4 e0 mov a,$e0 +122a: 08 02 or a,#$02 +122c: c4 e0 mov $e0,a +122e: 6f ret + +122f: e4 e0 mov a,$e0 +1231: 28 03 and a,#$03 +1233: f0 ec beq $1221 +1235: 28 02 and a,#$02 +1237: d0 06 bne $123f +1239: e4 e1 mov a,$e1 +123b: 28 01 and a,#$01 +123d: f0 e2 beq $1221 +123f: e8 00 mov a,#$00 +1241: c4 11 mov $11,a +1243: e4 d0 mov a,$d0 +1245: 1c asl a +1246: 5d mov x,a +1247: f5 01 03 mov a,$0301+x +124a: f0 0a beq $1256 +124c: 80 setc +124d: a8 01 sbc a,#$01 +124f: d5 01 03 mov $0301+x,a +1252: d0 02 bne $1256 +1254: e8 00 mov a,#$00 +1256: d5 01 03 mov $0301+x,a +1259: 04 11 or a,$11 +125b: c4 11 mov $11,a +125d: 1d dec x +125e: 1d dec x +125f: 10 e6 bpl $1247 +1261: e4 11 mov a,$11 +1263: f0 01 beq $1266 +1265: 6f ret + +1266: e4 e0 mov a,$e0 +1268: 28 fe and a,#$fe +126a: c4 e0 mov $e0,a +126c: 5f 0a 09 jmp $090a + +126f: 8d 00 mov y,#$00 +1271: cb e2 mov $e2,y +1273: 6f ret \ No newline at end of file diff --git a/snes/NSPC/Ocean/RoboCop 3 ($0400).bin b/snes/NSPC/Ocean/RoboCop 3 ($0400).bin new file mode 100644 index 00000000..0d2a1e5c Binary files /dev/null and b/snes/NSPC/Ocean/RoboCop 3 ($0400).bin differ diff --git a/snes/NSPC/Ocean/RoboCop 3.s b/snes/NSPC/Ocean/RoboCop 3.s new file mode 100644 index 00000000..30aacf13 --- /dev/null +++ b/snes/NSPC/Ocean/RoboCop 3.s @@ -0,0 +1,1876 @@ +0400: 20 clrp +0401: cd cf mov x,#$cf +0403: bd mov sp,x +0404: e8 00 mov a,#$00 +0406: 5d mov x,a +0407: af mov (x)+,a +0408: c8 f0 cmp x,#$f0 +040a: d0 fb bne $0407 +040c: 5d mov x,a +040d: d5 00 01 mov $0100+x,a +0410: d5 00 02 mov $0200+x,a +0413: d5 00 03 mov $0300+x,a +0416: 3d inc x +0417: d0 f4 bne $040d +0419: bc inc a +041a: 3f 67 0d call $0d67 +041d: a2 43 set5 $43 +041f: e8 60 mov a,#$60 +0421: 8d 0c mov y,#$0c +0423: 3f 70 07 call $0770 +0426: 8d 1c mov y,#$1c +0428: 3f 70 07 call $0770 +042b: 3f e8 07 call $07e8 +042e: e8 14 mov a,#$14 +0430: 8d 5d mov y,#$5d +0432: 3f 70 07 call $0770 +0435: e8 90 mov a,#$90 +0437: c5 f1 00 mov $00f1,a +043a: e8 10 mov a,#$10 +043c: c5 fa 00 mov $00fa,a +043f: c4 4d mov $4d,a +0441: e8 81 mov a,#$81 +0443: c5 f1 00 mov $00f1,a +0446: e8 00 mov a,#$00 +0448: c4 f4 mov $f4,a +044a: 8d 0a mov y,#$0a +044c: ad 05 cmp y,#$05 +044e: f0 07 beq $0457 +0450: b0 08 bcs $045a +0452: 69 48 47 cmp ($47),($48) +0455: d0 11 bne $0468 +0457: e3 47 0e bbs7 $47,$0468 +045a: f6 bf 04 mov a,$04bf+y +045d: c5 f2 00 mov $00f2,a +0460: f6 c9 04 mov a,$04c9+y +0463: 5d mov x,a +0464: e6 mov a,(x) +0465: c5 f3 00 mov $00f3,a +0468: fe e2 dbnz y,$044c +046a: cb 3f mov $3f,y +046c: cb 40 mov $40,y +046e: 3f d4 04 call $04d4 +0471: ec fd 00 mov y,$00fd +0474: f0 f8 beq $046e +0476: 6d push y +0477: e8 20 mov a,#$20 +0479: cf mul ya +047a: 60 clrc +047b: 84 1b adc a,$1b +047d: c4 1b mov $1b,a +047f: 90 07 bcc $0488 +0481: 69 48 47 cmp ($47),($48) +0484: f0 02 beq $0488 +0486: ab 47 inc $47 +0488: ee pop y +0489: e4 4d mov a,$4d +048b: cf mul ya +048c: 60 clrc +048d: 84 4b adc a,$4b +048f: c4 4b mov $4b,a +0491: 90 0b bcc $049e +0493: 3f df 08 call $08df +0496: 3f e9 08 call $08e9 +0499: 3f d4 04 call $04d4 +049c: 2f ac bra $044a +049e: f0 fc beq $049c +04a0: cd 00 mov x,#$00 +04a2: 8f 01 41 mov $41,#$01 +04a5: f4 69 mov a,$69+x +04a7: f0 03 beq $04ac +04a9: 3f 11 10 call $1011 +04ac: 3d inc x +04ad: 3d inc x +04ae: 0b 41 asl $41 +04b0: d0 f3 bne $04a5 +04b2: 2f e8 bra $049c +04b4: e4 18 mov a,$18 +04b6: 44 19 eor a,$19 +04b8: 5c lsr a +04b9: 5c lsr a +04ba: ed notc +04bb: 6b 18 ror $18 +04bd: 6b 19 ror $19 +04bf: 6f ret + +04c0: 2c 3c 0d rol $0d3c +04c3: 4d push x +04c4: 6c 4c 5c ror $5c4c +04c7: 3d inc x +04c8: 2d push a +04c9: 5c lsr a +04ca: 5b 5d lsr $5d+x +04cc: 49 45 43 eor ($43),($45) +04cf: 3f 0e 44 call $440e +04d2: 46 eor a,(x) +04d3: 40 setp +04d4: e4 f4 mov a,$f4 +04d6: 68 55 cmp a,#$55 +04d8: f0 39 beq $0513 +04da: 68 01 cmp a,#$01 +04dc: d0 03 bne $04e1 +04de: 5f 42 05 jmp $0542 + +04e1: 68 02 cmp a,#$02 +04e3: f0 76 beq $055b +04e5: 68 03 cmp a,#$03 +04e7: d0 03 bne $04ec +04e9: 5f 9f 05 jmp $059f + +04ec: 68 04 cmp a,#$04 +04ee: d0 03 bne $04f3 +04f0: 5f bf 05 jmp $05bf + +04f3: 68 05 cmp a,#$05 +04f5: d0 03 bne $04fa +04f7: 5f e2 05 jmp $05e2 + +04fa: 68 06 cmp a,#$06 +04fc: d0 03 bne $0501 +04fe: 5f 0b 06 jmp $060b + +0501: 68 fe cmp a,#$fe +0503: d0 03 bne $0508 +0505: 5f 3f 06 jmp $063f + +0508: 68 07 cmp a,#$07 +050a: d0 03 bne $050f +050c: 5f 43 06 jmp $0643 + +050f: 68 ff cmp a,#$ff +0511: f0 04 beq $0517 +0513: c5 89 03 mov $0389,a +0516: 6f ret + +0517: c4 f4 mov $f4,a +0519: e8 80 mov a,#$80 +051b: 8d 6c mov y,#$6c +051d: 3f 70 07 call $0770 +0520: e8 00 mov a,#$00 +0522: 3f 67 0d call $0d67 +0525: a2 43 set5 $43 +0527: 8f 00 14 mov $14,#$00 +052a: 8f 80 15 mov $15,#$80 +052d: 8d 00 mov y,#$00 +052f: e8 00 mov a,#$00 +0531: d7 14 mov ($14)+y,a +0533: ab 14 inc $14 +0535: d0 f8 bne $052f +0537: ab 15 inc $15 +0539: e4 15 mov a,$15 +053b: 68 f0 cmp a,#$f0 +053d: d0 f0 bne $052f +053f: 5f c0 ff jmp $ffc0 + +0542: c4 f4 mov $f4,a +0544: e4 f5 mov a,$f5 +0546: c4 00 mov $00,a +0548: eb f6 mov y,$f6 +054a: 3f 77 0c call $0c77 +054d: e4 f7 mov a,$f7 +054f: c4 65 mov $65,a +0551: e8 01 mov a,#$01 +0553: c5 89 03 mov $0389,a +0556: e8 55 mov a,#$55 +0558: c4 f4 mov $f4,a +055a: 6f ret + +055b: e5 89 03 mov a,$0389 +055e: 68 02 cmp a,#$02 +0560: f0 3c beq $059e +0562: c4 f4 mov $f4,a +0564: e4 f5 mov a,$f5 +0566: c5 60 03 mov $0360,a +0569: e5 f6 00 mov a,$00f6 +056c: 2d push a +056d: 28 e0 and a,#$e0 +056f: 5c lsr a +0570: 5c lsr a +0571: 5c lsr a +0572: 5c lsr a +0573: 68 0e cmp a,#$0e +0575: d0 04 bne $057b +0577: e8 ff mov a,#$ff +0579: 2f 03 bra $057e +057b: 8d 10 mov y,#$10 +057d: cf mul ya +057e: c5 61 03 mov $0361,a +0581: ae pop a +0582: 28 1f and a,#$1f +0584: 68 14 cmp a,#$14 +0586: 90 02 bcc $058a +0588: e8 14 mov a,#$14 +058a: c5 62 03 mov $0362,a +058d: e4 f7 mov a,$f7 +058f: c5 8a 03 mov $038a,a +0592: e8 02 mov a,#$02 +0594: c5 89 03 mov $0389,a +0597: 3f f3 10 call $10f3 +059a: e8 55 mov a,#$55 +059c: c4 f4 mov $f4,a +059e: 6f ret + +059f: c4 f4 mov $f4,a +05a1: e5 f5 00 mov a,$00f5 +05a4: c4 54 mov $54,a +05a6: e5 f6 00 mov a,$00f6 +05a9: c4 55 mov $55,a +05ab: 80 setc +05ac: a4 53 sbc a,$53 +05ae: f8 54 mov x,$54 +05b0: 3f fb 0d call $0dfb +05b3: da 56 movw $56,ya +05b5: e8 03 mov a,#$03 +05b7: c5 89 03 mov $0389,a +05ba: e8 55 mov a,#$55 +05bc: c4 f4 mov $f4,a +05be: 6f ret + +05bf: c4 f4 mov $f4,a +05c1: e5 f5 00 mov a,$00f5 +05c4: c4 4e mov $4e,a +05c6: e5 f6 00 mov a,$00f6 +05c9: c4 4f mov $4f,a +05cb: 80 setc +05cc: a4 4d sbc a,$4d +05ce: f8 4e mov x,$4e +05d0: 3f fb 0d call $0dfb +05d3: da 50 movw $50,ya +05d5: e8 04 mov a,#$04 +05d7: c5 89 03 mov $0389,a +05da: c5 8b 03 mov $038b,a +05dd: e8 55 mov a,#$55 +05df: c4 f4 mov $f4,a +05e1: 6f ret + +05e2: c4 f4 mov $f4,a +05e4: e4 f5 mov a,$f5 +05e6: f0 09 beq $05f1 +05e8: 68 01 cmp a,#$01 +05ea: f0 0d beq $05f9 +05ec: 68 02 cmp a,#$02 +05ee: f0 11 beq $0601 +05f0: 6f ret + +05f1: fa 4d f5 mov ($f5),($4d) +05f4: e8 55 mov a,#$55 +05f6: c4 f4 mov $f4,a +05f8: 6f ret + +05f9: fa 53 f5 mov ($f5),($53) +05fc: e8 55 mov a,#$55 +05fe: c4 f4 mov $f4,a +0600: 6f ret + +0601: e5 8c 03 mov a,$038c +0604: c4 f5 mov $f5,a +0606: e8 55 mov a,#$55 +0608: c4 f4 mov $f4,a +060a: 6f ret + +060b: c4 f4 mov $f4,a +060d: e5 89 03 mov a,$0389 +0610: 68 06 cmp a,#$06 +0612: f0 26 beq $063a +0614: e9 9f 03 mov x,$039f +0617: e4 f6 mov a,$f6 +0619: 3f e4 0c call $0ce4 +061c: 3f 8a 10 call $108a +061f: e4 f5 mov a,$f5 +0621: 3f 1f 0c call $0c1f +0624: 4d push x +0625: e8 01 mov a,#$01 +0627: 1c asl a +0628: 1d dec x +0629: 1d dec x +062a: d0 fb bne $0627 +062c: c4 41 mov $41,a +062e: 09 41 58 or ($58),($41) +0631: ce pop x +0632: 3f 50 0e call $0e50 +0635: e8 06 mov a,#$06 +0637: c5 89 03 mov $0389,a +063a: e8 55 mov a,#$55 +063c: c4 f4 mov $f4,a +063e: 6f ret + +063f: 3f e9 08 call $08e9 +0642: 6f ret + +0643: c4 f4 mov $f4,a +0645: e5 89 03 mov a,$0389 +0648: 68 06 cmp a,#$06 +064a: f0 0a beq $0656 +064c: e4 f5 mov a,$f5 +064e: c5 a3 03 mov $03a3,a +0651: e8 06 mov a,#$06 +0653: c5 89 03 mov $0389,a +0656: e8 55 mov a,#$55 +0658: c4 f4 mov $f4,a +065a: 6f ret + +065b: 6f ret + +065c: ad ca cmp y,#$ca +065e: 90 06 bcc $0666 +0660: 3f 29 0b call $0b29 +0663: ec a0 03 mov y,$03a0 +0666: ad c8 cmp y,#$c8 +0668: b0 f1 bcs $065b +066a: e4 1a mov a,$1a +066c: 24 41 and a,$41 +066e: d0 eb bne $065b +0670: f5 a4 03 mov a,$03a4+x +0673: f0 11 beq $0686 +0675: e4 18 mov a,$18 +0677: 68 14 cmp a,#$14 +0679: 90 05 bcc $0680 +067b: 80 setc +067c: a8 14 sbc a,#$14 +067e: 2f f7 bra $0677 +0680: 3f 1f 0c call $0c1f +0683: 3f b4 04 call $04b4 +0686: dd mov a,y +0687: 28 7f and a,#$7f +0689: 60 clrc +068a: 84 4a adc a,$4a +068c: 60 clrc +068d: 95 41 03 adc a,$0341+x +0690: 60 clrc +0691: 95 50 03 adc a,$0350+x +0694: d5 b1 02 mov $02b1+x,a +0697: e8 00 mov a,#$00 +0699: d5 50 03 mov $0350+x,a +069c: f5 d1 02 mov a,$02d1+x +069f: d5 b0 02 mov $02b0+x,a +06a2: f5 11 03 mov a,$0311+x +06a5: 5c lsr a +06a6: e8 00 mov a,#$00 +06a8: 7c ror a +06a9: d5 00 03 mov $0300+x,a +06ac: e8 00 mov a,#$00 +06ae: d4 c9 mov $c9+x,a +06b0: d4 9a mov $9a+x,a +06b2: d5 30 03 mov $0330+x,a +06b5: d4 d9 mov $d9+x,a +06b7: 09 41 58 or ($58),($41) +06ba: 09 41 3f or ($3f),($41) +06bd: f5 e0 02 mov a,$02e0+x +06c0: d4 b9 mov $b9+x,a +06c2: f0 1e beq $06e2 +06c4: f5 e1 02 mov a,$02e1+x +06c7: d4 ba mov $ba+x,a +06c9: f5 f0 02 mov a,$02f0+x +06cc: d0 0a bne $06d8 +06ce: f5 b1 02 mov a,$02b1+x +06d1: 80 setc +06d2: b5 f1 02 sbc a,$02f1+x +06d5: d5 b1 02 mov $02b1+x,a +06d8: f5 f1 02 mov a,$02f1+x +06db: 60 clrc +06dc: 95 b1 02 adc a,$02b1+x +06df: 3f d3 0d call $0dd3 +06e2: 3f f0 0d call $0df0 +06e5: 8d 00 mov y,#$00 +06e7: e4 11 mov a,$11 +06e9: 80 setc +06ea: a8 34 sbc a,#$34 +06ec: b0 09 bcs $06f7 +06ee: e4 11 mov a,$11 +06f0: 80 setc +06f1: a8 13 sbc a,#$13 +06f3: b0 06 bcs $06fb +06f5: dc dec y +06f6: 1c asl a +06f7: 7a 10 addw ya,$10 +06f9: da 10 movw $10,ya +06fb: 4d push x +06fc: e4 11 mov a,$11 +06fe: 1c asl a +06ff: 8d 00 mov y,#$00 +0701: cd 18 mov x,#$18 +0703: 9e div ya,x +0704: 5d mov x,a +0705: f6 78 07 mov a,$0778+y +0708: c4 15 mov $15,a +070a: f6 77 07 mov a,$0777+y +070d: c4 14 mov $14,a +070f: f6 7a 07 mov a,$077a+y +0712: 2d push a +0713: f6 79 07 mov a,$0779+y +0716: ee pop y +0717: 9a 14 subw ya,$14 +0719: eb 10 mov y,$10 +071b: cf mul ya +071c: dd mov a,y +071d: 8d 00 mov y,#$00 +071f: 7a 14 addw ya,$14 +0721: cb 15 mov $15,y +0723: 1c asl a +0724: 2b 15 rol $15 +0726: c4 14 mov $14,a +0728: 2f 04 bra $072e +072a: 4b 15 lsr $15 +072c: 7c ror a +072d: 3d inc x +072e: c8 06 cmp x,#$06 +0730: d0 f8 bne $072a +0732: c4 14 mov $14,a +0734: ce pop x +0735: f5 20 02 mov a,$0220+x +0738: eb 15 mov y,$15 +073a: cf mul ya +073b: da 16 movw $16,ya +073d: f5 20 02 mov a,$0220+x +0740: eb 14 mov y,$14 +0742: cf mul ya +0743: 6d push y +0744: f5 21 02 mov a,$0221+x +0747: eb 14 mov y,$14 +0749: cf mul ya +074a: 7a 16 addw ya,$16 +074c: da 16 movw $16,ya +074e: f5 21 02 mov a,$0221+x +0751: eb 15 mov y,$15 +0753: cf mul ya +0754: fd mov y,a +0755: ae pop a +0756: 7a 16 addw ya,$16 +0758: da 16 movw $16,ya +075a: 7d mov a,x +075b: 9f xcn a +075c: 5c lsr a +075d: 08 02 or a,#$02 +075f: fd mov y,a +0760: e4 16 mov a,$16 +0762: 3f 68 07 call $0768 +0765: fc inc y +0766: e4 17 mov a,$17 +0768: 2d push a +0769: e4 41 mov a,$41 +076b: 24 1a and a,$1a +076d: ae pop a +076e: d0 06 bne $0776 +0770: cc f2 00 mov $00f2,y +0773: c5 f3 00 mov $00f3,a +0776: 6f ret + +0777: dw $085f +0779: dw $08de +077b: dw $0965 +077d: dw $09f4 +077f: dw $0a8c +0781: dw $0b2c +0783: dw $0bd6 +0785: dw $0c8b +0787: dw $0d4a +0789: dw $0e14 +078b: dw $0eea +078d: dw $0fcd +078f: dw $10be + +0791: 8d 00 mov y,#$00 +0793: f7 1c mov a,($1c)+y +0795: 3a 1c incw $1c +0797: 2d push a +0798: f7 1c mov a,($1c)+y +079a: 3a 1c incw $1c +079c: fd mov y,a +079d: ae pop a +079e: 6f ret + +079f: 8d 0f mov y,#$0f +07a1: cd 0f mov x,#$0f +07a3: f7 1c mov a,($1c)+y +07a5: f0 04 beq $07ab +07a7: d4 1f mov $1f+x,a +07a9: d4 69 mov $69+x,a +07ab: dc dec y +07ac: 1d dec x +07ad: 10 f4 bpl $07a3 +07af: f8 66 mov x,$66 +07b1: 1d dec x +07b2: 1d dec x +07b3: 8f 01 41 mov $41,#$01 +07b6: e7 1f mov a,($1f+x) +07b8: d4 2f mov $2f+x,a +07ba: f0 06 beq $07c2 +07bc: bb 1f inc $1f+x +07be: d0 02 bne $07c2 +07c0: bb 20 inc $20+x +07c2: e7 1f mov a,($1f+x) +07c4: d4 30 mov $30+x,a +07c6: f0 06 beq $07ce +07c8: bb 1f inc $1f+x +07ca: d0 02 bne $07ce +07cc: bb 20 inc $20+x +07ce: f5 11 02 mov a,$0211+x +07d1: d0 05 bne $07d8 +07d3: e8 00 mov a,#$00 +07d5: 3f 29 0b call $0b29 +07d8: e8 00 mov a,#$00 +07da: d4 99 mov $99+x,a +07dc: d4 a9 mov $a9+x,a +07de: d4 aa mov $aa+x,a +07e0: bc inc a +07e1: d4 89 mov $89+x,a +07e3: 1d dec x +07e4: 1d dec x +07e5: 10 cf bpl $07b6 +07e7: 6f ret + +07e8: e4 1a mov a,$1a +07ea: 48 ff eor a,#$ff +07ec: 0e 40 00 tset1 $0040 +07ef: e8 00 mov a,#$00 +07f1: c5 8c 03 mov $038c,a +07f4: cd 0e mov x,#$0e +07f6: d4 69 mov $69+x,a +07f8: 1d dec x +07f9: 10 fb bpl $07f6 +07fb: c4 66 mov $66,a +07fd: c4 54 mov $54,a +07ff: c4 62 mov $62,a +0801: c4 4e mov $4e,a +0803: c4 4a mov $4a,a +0805: c4 1e mov $1e,a +0807: c4 59 mov $59,a +0809: e8 01 mov a,#$01 +080b: c4 4e mov $4e,a +080d: e8 2d mov a,#$2d +080f: c4 4f mov $4f,a +0811: 80 setc +0812: a4 4d sbc a,$4d +0814: f8 4e mov x,$4e +0816: 3f fb 0d call $0dfb +0819: da 50 movw $50,ya +081b: e8 00 mov a,#$00 +081d: 3f 67 0d call $0d67 +0820: a2 43 set5 $43 +0822: 6f ret + +; load song +0823: c4 08 mov $08,a +0825: c5 8c 03 mov $038c,a +0828: 1c asl a +0829: 1c asl a +082a: f0 bc beq $07e8 +082c: 5d mov x,a +082d: f5 fd 7f mov a,$7ffd+x +0830: fd mov y,a +0831: f5 fc 7f mov a,$7ffc+x +0834: da 1c movw $1c,ya +0836: f5 fe 7f mov a,$7ffe+x +0839: c4 66 mov $66,a +083b: e4 1a mov a,$1a +083d: 48 ff eor a,#$ff +083f: 0e 40 00 tset1 $0040 +0842: cd 0e mov x,#$0e +0844: 8f 80 41 mov $41,#$80 +0847: e8 ff mov a,#$ff +0849: d5 51 02 mov $0251+x,a +084c: e8 0a mov a,#$0a +084e: 3f 1f 0c call $0c1f +0851: d5 11 02 mov $0211+x,a +0854: d5 d1 02 mov $02d1+x,a +0857: d5 41 03 mov $0341+x,a +085a: d4 79 mov $79+x,a +085c: d5 a4 03 mov $03a4+x,a +085f: d5 e0 02 mov $02e0+x,a +0862: d4 ca mov $ca+x,a +0864: d4 da mov $da+x,a +0866: c5 9f 03 mov $039f,a +0869: d5 65 03 mov $0365+x,a +086c: d5 75 03 mov $0375+x,a +086f: d4 69 mov $69+x,a +0871: 1d dec x +0872: d4 69 mov $69+x,a +0874: 1d dec x +0875: 4b 41 lsr $41 +0877: d0 ce bne $0847 +0879: e8 00 mov a,#$00 +087b: c5 8b 03 mov $038b,a +087e: c4 54 mov $54,a +0880: c4 62 mov $62,a +0882: c4 4e mov $4e,a +0884: c4 4a mov $4a,a +0886: c4 1e mov $1e,a +0888: c4 59 mov $59,a +088a: 8f 20 4d mov $4d,#$20 +088d: 8d 0f mov y,#$0f +088f: cd 0f mov x,#$0f +0891: f7 1c mov a,($1c)+y +0893: d4 1f mov $1f+x,a +0895: d4 69 mov $69+x,a +0897: dc dec y +0898: 1d dec x +0899: 10 f6 bpl $0891 +089b: cd 0e mov x,#$0e +089d: 8f 01 41 mov $41,#$01 +08a0: e7 1f mov a,($1f+x) +08a2: d4 2f mov $2f+x,a +08a4: f0 06 beq $08ac +08a6: bb 1f inc $1f+x +08a8: d0 02 bne $08ac +08aa: bb 20 inc $20+x +08ac: e7 1f mov a,($1f+x) +08ae: d4 30 mov $30+x,a +08b0: f0 06 beq $08b8 +08b2: bb 1f inc $1f+x +08b4: d0 02 bne $08b8 +08b6: bb 20 inc $20+x +08b8: 1d dec x +08b9: 1d dec x +08ba: 0b 41 asl $41 +08bc: d0 e2 bne $08a0 +08be: cd 00 mov x,#$00 +08c0: 8f 01 41 mov $41,#$01 +08c3: f5 11 02 mov a,$0211+x +08c6: d0 05 bne $08cd +08c8: e8 00 mov a,#$00 +08ca: 3f 29 0b call $0b29 +08cd: e8 00 mov a,#$00 +08cf: d4 99 mov $99+x,a +08d1: d4 a9 mov $a9+x,a +08d3: d4 aa mov $aa+x,a +08d5: bc inc a +08d6: d4 89 mov $89+x,a +08d8: 3d inc x +08d9: 3d inc x +08da: 0b 41 asl $41 +08dc: d0 e5 bne $08c3 +08de: 6f ret + +08df: e4 00 mov a,$00 +08e1: 64 08 cmp a,$08 +08e3: f0 03 beq $08e8 +08e5: 5f 23 08 jmp $0823 + +08e8: 6f ret + +08e9: cd 00 mov x,#$00 +08eb: d8 58 mov $58,x +08ed: 8f 01 41 mov $41,#$01 +08f0: d8 42 mov $42,x +08f2: f4 69 mov a,$69+x +08f4: d0 03 bne $08f9 +08f6: 5f ab 09 jmp $09ab + +08f9: 7d mov a,x +08fa: 9b 89 dec $89+x +08fc: f0 03 beq $0901 +08fe: 5f a5 09 jmp $09a5 + +; dispatch voice bytes +0901: 3f 7e 0a call $0a7e ; read vcmd +0904: d0 68 bne $096e +; vcmd 00 +0906: 3f 7e 0a call $0a7e +0909: f0 28 beq $0933 ; vcmd 00 00 - end pattern +090b: 68 02 cmp a,#$02 +090d: f0 15 beq $0924 +; vcmd 00 xx - ? +090f: e8 00 mov a,#$00 +0911: d4 69 mov $69+x,a +0913: d4 6a mov $6a+x,a +0915: d5 65 03 mov $0365+x,a +0918: d5 66 03 mov $0366+x,a +091b: d5 75 03 mov $0375+x,a +091e: d5 76 03 mov $0376+x,a +0921: 5f ab 09 jmp $09ab + +; vcmd 00 02 - goto +0924: 3f 7e 0a call $0a7e +0927: 2d push a +0928: 3f 7e 0a call $0a7e +092b: f4 30 mov a,$30+x +092d: ae pop a +092e: d4 2f mov $2f+x,a ; goto arg1/2 +0930: 5f 01 09 jmp $0901 + +; dispatch pattern event +; note: each tracks has the corresponding pattern sequence +; (incompatible with standard N-SPC, which has only a single global pattern sequence) +0933: e7 1f mov a,($1f+x) +0935: d4 2f mov $2f+x,a +0937: bb 1f inc $1f+x +0939: d0 02 bne $093d +093b: bb 20 inc $20+x +093d: e7 1f mov a,($1f+x) +093f: d4 30 mov $30+x,a ; read new start address for the track +0941: bb 1f inc $1f+x +0943: d0 02 bne $0947 +0945: bb 20 inc $20+x +0947: f4 30 mov a,$30+x +0949: f0 0b beq $0956 ; if $00xx: end of pattern? +094b: 68 ff cmp a,#$ff +094d: f0 1c beq $096b ; if $ffxx: loop? +094f: 68 01 cmp a,#$01 +0951: f0 06 beq $0959 ; if $01xx (usually 00 01): goto +0953: 5f 01 09 jmp $0901 ; else: start dispatching the new pattern + +0956: 5f e8 07 jmp $07e8 + +; goto for the pattern sequence +0959: e7 1f mov a,($1f+x) +095b: 2d push a +095c: bb 1f inc $1f+x +095e: d0 02 bne $0962 +0960: ab 20 inc $20 +0962: e7 1f mov a,($1f+x) +0964: d4 20 mov $20+x,a +0966: ae pop a +0967: d4 1f mov $1f+x,a +0969: 2f c8 bra $0933 +096b: 5f 9f 07 jmp $079f + +096e: 30 16 bmi $0986 ; vcmds 01-7f - note info: +0970: d5 00 02 mov $0200+x,a ; set cmd as duration +0973: 3f 7e 0a call $0a7e ; read next byte +0976: 30 0e bmi $0986 ; branch if not a note +0978: f0 8c beq $0906 ; branch if zero (end pattern) + +; process the second note param (velocity) +; (incompatible with standard N-SPC) +097a: 1c asl a ; extend 7-bit value to 8-bit +097b: d5 10 02 mov $0210+x,a ; set per-note volume (velocity) +097e: e8 ff mov a,#$ff +0980: d5 01 02 mov $0201+x,a ; maximize dur% +0983: 5f 01 09 jmp $0901 + +; vcmd branches 80-ff +0986: 68 e0 cmp a,#$e0 +0988: 90 06 bcc $0990 +098a: 3f 6c 0a call $0a6c +098d: 5f 01 09 jmp $0901 + +; vcmds 80-df - note +0990: 3f 5c 06 call $065c +0993: f5 00 02 mov a,$0200+x +0996: d4 89 mov $89+x,a +0998: fd mov y,a +0999: f5 01 02 mov a,$0201+x +099c: cf mul ya +099d: dd mov a,y +099e: d0 01 bne $09a1 +09a0: bc inc a +09a1: d4 8a mov $8a+x,a +09a3: 2f 03 bra $09a8 +09a5: 3f 08 0f call $0f08 +09a8: 3f b0 0d call $0db0 +09ab: 3d inc x +09ac: 3d inc x +09ad: 0b 41 asl $41 +09af: f0 03 beq $09b4 +09b1: 5f f0 08 jmp $08f0 + +09b4: e4 53 mov a,$53 +09b6: 68 20 cmp a,#$20 +09b8: b0 04 bcs $09be +09ba: e8 00 mov a,#$00 +09bc: c4 00 mov $00,a +09be: e4 4e mov a,$4e +09c0: f0 0b beq $09cd +09c2: ba 50 movw ya,$50 +09c4: 7a 4c addw ya,$4c +09c6: 6e 4e 02 dbnz $4e,$09cb +09c9: ba 4e movw ya,$4e +09cb: da 4c movw $4c,ya +09cd: e4 62 mov a,$62 +09cf: f0 15 beq $09e6 +09d1: ba 5e movw ya,$5e +09d3: 7a 5a addw ya,$5a +09d5: da 5a movw $5a,ya +09d7: ba 60 movw ya,$60 +09d9: 7a 5c addw ya,$5c +09db: 6e 62 06 dbnz $62,$09e4 +09de: ba 62 movw ya,$62 +09e0: da 5a movw $5a,ya +09e2: eb 64 mov y,$64 +09e4: da 5c movw $5c,ya +09e6: e4 54 mov a,$54 +09e8: f0 0f beq $09f9 +09ea: ba 56 movw ya,$56 +09ec: 7a 52 addw ya,$52 +09ee: 8b 54 dec $54 +09f0: d0 02 bne $09f4 +09f2: ba 54 movw ya,$54 +09f4: da 52 movw $52,ya +09f6: 8f ff 58 mov $58,#$ff +09f9: cd 00 mov x,#$00 +09fb: 8f 01 41 mov $41,#$01 +09fe: f4 69 mov a,$69+x +0a00: f0 03 beq $0a05 +0a02: 3f 17 0e call $0e17 +0a05: 3d inc x +0a06: 3d inc x +0a07: 0b 41 asl $41 +0a09: d0 f3 bne $09fe +0a0b: 6f ret + +; vcmd dispatch table +0a0c: dw $0a91 ; e0 - set instrument +0a0e: dw $0c1f ; e1 - pan +0a10: dw $0c37 ; e2 - pan fade +0a12: dw $0c50 ; e3 - vibrato on +0a14: dw $0c5c ; e4 - vibrato off +0a16: dw $0c77 ; e5 - master volume +0a18: dw $0c7c ; e6 - master volume fade +0a1a: dw $0c8e ; e7 - tempo +0a1c: dw $0c98 ; e8 - tempo fade +0a1e: dw $0caa ; e9 - global transpose +0a20: dw $0cad ; ea - per-voice transpose +0a22: dw $0cb7 ; eb - tremolo on +0a24: dw $0cc3 ; ec - tremolo off +0a26: dw $0ce4 ; ed - volume +0a28: dw $0ced ; ee - volume fade +0a2a: dw $0d0a ; ef - echo vbits/volume +0a2c: dw $0c67 ; f0 - vibrato fade +0a2e: dw $0cc6 ; f1 - pitch envelope (release) +0a30: dw $0cca ; f2 - pitch envelope (attack) +0a32: dw $0ce0 ; f3 - pitch envelope off +0a34: dw $0d06 ; f4 - tuning +0a36: dw $0d0a ; f5 - echo vbits/volume +0a38: dw $0d3e ; f6 - disable echo +0a3a: dw $0d45 ; f7 - set echo params +0a3c: dw $0d1d ; f8 - echo volume fade +0a3e: dw $0dc0 ; f9 - pitch slide +0a40: dw $0dad ; fa - set perc patch base +0a42: dw $0cb1 ; fb +0a44: dw $0b29 ; fc - set instrument (alternate) +0a46: dw $0c02 ; fd +0a48: dw $0c2d ; fe - GAIN on +0a4a: dw $0c31 ; ff - GAIN off + +; vcmd lengths +0a4c: db $01,$01,$02,$03,$00,$01,$02,$01 ; e0-e7 +0a55: db $02,$01,$01,$03,$00,$01,$02,$03 ; e8-ef +0a5c: db $01,$03,$03,$00,$01,$03,$00,$03 ; f0-f7 +0a5e: db $03,$03,$01,$01,$01,$03,$00,$00 ; f8-ff + +0a6c: 1c asl a +0a6d: fd mov y,a +0a6e: f6 4d 09 mov a,$094d+y +0a71: 2d push a +0a72: f6 4c 09 mov a,$094c+y +0a75: 2d push a +0a76: dd mov a,y +0a77: 5c lsr a +0a78: fd mov y,a +0a79: f6 ec 09 mov a,$09ec+y +0a7c: f0 08 beq $0a86 +0a7e: e7 2f mov a,($2f+x) +0a80: bb 2f inc $2f+x +0a82: d0 02 bne $0a86 +0a84: bb 30 inc $30+x +0a86: fd mov y,a +0a87: 6f ret + +0a88: e7 2f mov a,($2f+x) +0a8a: bb 2f inc $2f+x +0a8c: d0 02 bne $0a90 +0a8e: bb 30 inc $30+x +0a90: 6f ret + +; vcmd e0 - set instrument +0a91: d5 11 02 mov $0211+x,a +0a94: fd mov y,a +0a95: ad ff cmp y,#$ff +0a97: f0 0a beq $0aa3 +0a99: 10 1a bpl $0ab5 +0a9b: 80 setc +0a9c: a8 ca sbc a,#$ca +0a9e: 60 clrc +0a9f: 84 59 adc a,$59 +0aa1: 2f 12 bra $0ab5 +0aa3: 3f 7e 0a call $0a7e +0aa6: 28 1f and a,#$1f +0aa8: 38 20 43 and $43,#$20 +0aab: 0e 43 00 tset1 $0043 +0aae: 09 41 44 or ($44),($41) +0ab1: e8 13 mov a,#$13 +0ab3: 2f 07 bra $0abc +0ab5: 2d push a +0ab6: e4 41 mov a,$41 +0ab8: 4e 44 00 tclr1 $0044 +0abb: ae pop a +0abc: c5 86 03 mov $0386,a +0abf: 8d 02 mov y,#$02 +0ac1: cf mul ya +0ac2: da 14 movw $14,ya +0ac4: 60 clrc +0ac5: 98 00 14 adc $14,#$00 +0ac8: 98 15 15 adc $15,#$15 +0acb: e4 1a mov a,$1a +0acd: 24 41 and a,$41 +0acf: d0 57 bne $0b28 +0ad1: e5 86 03 mov a,$0386 +0ad4: 1c asl a +0ad5: 1c asl a +0ad6: c9 88 03 mov $0388,x +0ad9: 5d mov x,a +0ada: 8d 01 mov y,#$01 +0adc: f7 14 mov a,($14)+y +0ade: 2d push a +0adf: dc dec y +0ae0: f7 14 mov a,($14)+y +0ae2: ee pop y +0ae3: da 14 movw $14,ya +0ae5: e4 14 mov a,$14 +0ae7: 60 clrc +0ae8: 88 04 adc a,#$04 +0aea: d5 00 14 mov $1400+x,a +0aed: e4 15 mov a,$15 +0aef: 88 00 adc a,#$00 +0af1: d5 01 14 mov $1401+x,a +0af4: 8d 00 mov y,#$00 +0af6: f7 14 mov a,($14)+y +0af8: 60 clrc +0af9: 95 00 14 adc a,$1400+x +0afc: d5 02 14 mov $1402+x,a +0aff: fc inc y +0b00: f7 14 mov a,($14)+y +0b02: 95 01 14 adc a,$1401+x +0b05: d5 03 14 mov $1403+x,a +0b08: fc inc y +0b09: e9 88 03 mov x,$0388 +0b0c: f7 14 mov a,($14)+y +0b0e: 5c lsr a +0b0f: 5c lsr a +0b10: d5 20 02 mov $0220+x,a +0b13: fc inc y +0b14: f7 14 mov a,($14)+y +0b16: 5c lsr a +0b17: 5c lsr a +0b18: d5 21 02 mov $0221+x,a +0b1b: 7d mov a,x +0b1c: 9f xcn a +0b1d: 5c lsr a +0b1e: 08 04 or a,#$04 +0b20: fd mov y,a +0b21: e5 86 03 mov a,$0386 +0b24: cb f2 mov $f2,y +0b26: c4 f3 mov $f3,a +0b28: 6f ret + +; vcmd fc +0b29: d5 11 02 mov $0211+x,a +0b2c: fd mov y,a +0b2d: 10 40 bpl $0b6f +0b2f: 80 setc +0b30: a8 ca sbc a,#$ca +0b32: c5 86 03 mov $0386,a +0b35: 1c asl a +0b36: 60 clrc +0b37: 85 86 03 adc a,$0386 +0b3a: 1c asl a +0b3b: 2d push a +0b3c: c9 88 03 mov $0388,x +0b3f: 7d mov a,x +0b40: 9f xcn a +0b41: 5c lsr a +0b42: 08 05 or a,#$05 +0b44: 5d mov x,a +0b45: ee pop y +0b46: f6 df 0b mov a,$0bdf+y +0b49: d8 f2 mov $f2,x +0b4b: c4 f3 mov $f3,a +0b4d: 3d inc x +0b4e: f6 e0 0b mov a,$0be0+y +0b51: d8 f2 mov $f2,x +0b53: c4 f3 mov $f3,a +0b55: 3d inc x +0b56: f6 e0 0b mov a,$0be0+y +0b59: d8 f2 mov $f2,x +0b5b: c4 f3 mov $f3,a +0b5d: f6 e2 0b mov a,$0be2+y +0b60: e9 88 03 mov x,$0388 +0b63: 3f 1f 0c call $0c1f +0b66: f6 e3 0b mov a,$0be3+y +0b69: c5 a0 03 mov $03a0,a +0b6c: f6 de 0b mov a,$0bde+y +0b6f: c5 86 03 mov $0386,a +0b72: 8d 02 mov y,#$02 +0b74: cf mul ya +0b75: da 14 movw $14,ya +0b77: 60 clrc +0b78: 98 80 14 adc $14,#$80 +0b7b: 98 97 15 adc $15,#$97 +0b7e: e4 1a mov a,$1a +0b80: 24 41 and a,$41 +0b82: d0 59 bne $0bdd +0b84: 8d 01 mov y,#$01 +0b86: f7 14 mov a,($14)+y +0b88: 2d push a +0b89: dc dec y +0b8a: f7 14 mov a,($14)+y +0b8c: ee pop y +0b8d: da 14 movw $14,ya +0b8f: e5 86 03 mov a,$0386 +0b92: 60 clrc +0b93: 88 20 adc a,#$20 +0b95: c5 86 03 mov $0386,a +0b98: 1c asl a +0b99: 1c asl a +0b9a: c9 88 03 mov $0388,x +0b9d: 5d mov x,a +0b9e: e4 14 mov a,$14 +0ba0: 60 clrc +0ba1: 88 04 adc a,#$04 +0ba3: d5 00 14 mov $1400+x,a +0ba6: e4 15 mov a,$15 +0ba8: 88 00 adc a,#$00 +0baa: d5 01 14 mov $1401+x,a +0bad: 8d 00 mov y,#$00 +0baf: f7 14 mov a,($14)+y +0bb1: 60 clrc +0bb2: 95 00 14 adc a,$1400+x +0bb5: d5 02 14 mov $1402+x,a +0bb8: fc inc y +0bb9: f7 14 mov a,($14)+y +0bbb: 95 01 14 adc a,$1401+x +0bbe: d5 03 14 mov $1403+x,a +0bc1: fc inc y +0bc2: e9 88 03 mov x,$0388 +0bc5: f7 14 mov a,($14)+y +0bc7: d5 20 02 mov $0220+x,a +0bca: fc inc y +0bcb: f7 14 mov a,($14)+y +0bcd: d5 21 02 mov $0221+x,a +0bd0: 7d mov a,x +0bd1: 9f xcn a +0bd2: 5c lsr a +0bd3: 08 04 or a,#$04 +0bd5: fd mov y,a +0bd6: e5 86 03 mov a,$0386 +0bd9: cb f2 mov $f2,y +0bdb: c4 f3 mov $f3,a +0bdd: 6f ret + +0bde: db $01,$8f,$e0,$b8,$0a,$a4,$02,$8f +0be6: db $e0,$b8,$0a,$a4,$04,$8f,$e0,$b8 +0bee: db $14,$98,$03,$8f,$e0,$b8,$0a,$b0 +0bf6: db $05,$8f,$e0,$b8,$08,$98,$06,$8f +0bfe: db $e0,$b8,$0c,$98 + +; vcmd fd +0c02: 2d push a +0c03: 7d mov a,x +0c04: 9f xcn a +0c05: 5c lsr a +0c06: 08 05 or a,#$05 +0c08: fd mov y,a +0c09: ae pop a +0c0a: cb f2 mov $f2,y +0c0c: c4 f3 mov $f3,a +0c0e: fc inc y +0c0f: 3f 88 0a call $0a88 +0c12: cb f2 mov $f2,y +0c14: c4 f3 mov $f3,a +0c16: fc inc y +0c17: 3f 88 0a call $0a88 +0c1a: cb f2 mov $f2,y +0c1c: c4 f3 mov $f3,a +0c1e: 6f ret + +; vcmd e1 - pan +0c1f: d5 a1 02 mov $02a1+x,a +0c22: 28 1f and a,#$1f +0c24: d5 81 02 mov $0281+x,a +0c27: e8 00 mov a,#$00 +0c29: d5 80 02 mov $0280+x,a +0c2c: 6f ret + +; vcmd fe - GAIN on +0c2d: e8 01 mov a,#$01 +0c2f: 2f 02 bra $0c33 +; vcmd ff - GAIN off +0c31: e8 00 mov a,#$00 +0c33: d5 a4 03 mov $03a4+x,a +0c36: 6f ret + +; vcmd e2 - pan fade +0c37: d4 aa mov $aa+x,a +0c39: 2d push a +0c3a: 3f 7e 0a call $0a7e +0c3d: d5 a0 02 mov $02a0+x,a +0c40: 80 setc +0c41: b5 81 02 sbc a,$0281+x +0c44: ce pop x +0c45: 3f fb 0d call $0dfb +0c48: d5 90 02 mov $0290+x,a +0c4b: dd mov a,y +0c4c: d5 91 02 mov $0291+x,a +0c4f: 6f ret + +; vcmd e3 - vibrato on +0c50: d5 10 03 mov $0310+x,a +0c53: 3f 7e 0a call $0a7e +0c56: d5 01 03 mov $0301+x,a +0c59: 3f 7e 0a call $0a7e +; vcmd e4 - vibrato off +0c5c: d4 ca mov $ca+x,a +0c5e: d5 21 03 mov $0321+x,a +0c61: e8 00 mov a,#$00 +0c63: d5 11 03 mov $0311+x,a +0c66: 6f ret + +; vcmd f0 - vibrato fade +0c67: d5 11 03 mov $0311+x,a +0c6a: 2d push a +0c6b: 8d 00 mov y,#$00 +0c6d: f4 ca mov a,$ca+x +0c6f: ce pop x +0c70: 9e div ya,x +0c71: f8 42 mov x,$42 +0c73: d5 20 03 mov $0320+x,a +0c76: 6f ret + +; vcmd e5 - master volume +0c77: e8 00 mov a,#$00 +0c79: da 52 movw $52,ya +0c7b: 6f ret + +; vcmd e6 - master volume fade +0c7c: c4 54 mov $54,a +0c7e: 3f 7e 0a call $0a7e +0c81: c4 55 mov $55,a +0c83: 80 setc +0c84: a4 53 sbc a,$53 +0c86: f8 54 mov x,$54 +0c88: 3f fb 0d call $0dfb +0c8b: da 56 movw $56,ya +0c8d: 6f ret + +; vcmd e7 - tempo +0c8e: e5 8b 03 mov a,$038b +0c91: d0 04 bne $0c97 +0c93: e8 00 mov a,#$00 +0c95: da 4c movw $4c,ya +0c97: 6f ret + +; vcmd e8 - tempo fade +0c98: c4 4e mov $4e,a +0c9a: 3f 7e 0a call $0a7e +0c9d: c4 4f mov $4f,a +0c9f: 80 setc +0ca0: a4 4d sbc a,$4d +0ca2: f8 4e mov x,$4e +0ca4: 3f fb 0d call $0dfb +0ca7: da 50 movw $50,ya +0ca9: 6f ret + +; vcmd e9 - global transpose +0caa: c4 4a mov $4a,a +0cac: 6f ret + +; vcmd ea - per-voice transpose +0cad: d5 41 03 mov $0341+x,a +0cb0: 6f ret + +; vcmd fb +0cb1: d4 79 mov $79+x,a +0cb3: d5 8d 03 mov $038d+x,a +0cb6: 6f ret + +; vcmd eb - tremolo on +0cb7: d5 40 03 mov $0340+x,a +0cba: 3f 7e 0a call $0a7e +0cbd: d5 31 03 mov $0331+x,a +0cc0: 3f 7e 0a call $0a7e +; vcmd ec - tremolo off +0cc3: d4 da mov $da+x,a +0cc5: 6f ret + +; vcmd f1 - pitch envelope (release) +0cc6: e8 01 mov a,#$01 +0cc8: 2f 02 bra $0ccc +; vcmd f2 - pitch envelope (attack) +0cca: e8 00 mov a,#$00 +0ccc: d5 f0 02 mov $02f0+x,a +0ccf: dd mov a,y +0cd0: d5 e1 02 mov $02e1+x,a +0cd3: 3f 7e 0a call $0a7e +0cd6: d5 e0 02 mov $02e0+x,a +0cd9: 3f 7e 0a call $0a7e +0cdc: d5 f1 02 mov $02f1+x,a +0cdf: 6f ret + +; vcmd f3 - pitch envelope off +0ce0: d5 e0 02 mov $02e0+x,a +0ce3: 6f ret + +; vcmd ed - volume +0ce4: d5 51 02 mov $0251+x,a +0ce7: e8 00 mov a,#$00 +0ce9: d5 50 02 mov $0250+x,a +0cec: 6f ret + +; vcmd ee - volume fade +0ced: d4 a9 mov $a9+x,a +0cef: 2d push a +0cf0: 3f 7e 0a call $0a7e +0cf3: d5 70 02 mov $0270+x,a +0cf6: 80 setc +0cf7: b5 51 02 sbc a,$0251+x +0cfa: ce pop x +0cfb: 3f fb 0d call $0dfb +0cfe: d5 60 02 mov $0260+x,a +0d01: dd mov a,y +0d02: d5 61 02 mov $0261+x,a +0d05: 6f ret + +; vcmd f4 - tuning +0d06: d5 d1 02 mov $02d1+x,a +0d09: 6f ret + +; vcmd ef/f5 - echo vbits/volume +0d0a: c4 45 mov $45,a +0d0c: 3f 7e 0a call $0a7e +0d0f: e8 00 mov a,#$00 +0d11: da 5a movw $5a,ya +0d13: 3f 7e 0a call $0a7e +0d16: e8 00 mov a,#$00 +0d18: da 5c movw $5c,ya +0d1a: b2 43 clr5 $43 +0d1c: 6f ret + +; vcmd f8 - echo volume fade +0d1d: c4 62 mov $62,a +0d1f: 3f 7e 0a call $0a7e +0d22: c4 63 mov $63,a +0d24: 80 setc +0d25: a4 5b sbc a,$5b +0d27: f8 62 mov x,$62 +0d29: 3f fb 0d call $0dfb +0d2c: da 5e movw $5e,ya +0d2e: 3f 7e 0a call $0a7e +0d31: c4 64 mov $64,a +0d33: 80 setc +0d34: a4 5d sbc a,$5d +0d36: f8 62 mov x,$62 +0d38: 3f fb 0d call $0dfb +0d3b: da 60 movw $60,ya +0d3d: 6f ret + +; vcmd f6 - disable echo +0d3e: da 5a movw $5a,ya +0d40: da 5c movw $5c,ya +0d42: a2 43 set5 $43 +0d44: 6f ret + +; vcmd f7 - set echo params +0d45: 3f 67 0d call $0d67 +0d48: 3f 7e 0a call $0a7e +0d4b: c4 49 mov $49,a +0d4d: 3f 7e 0a call $0a7e +0d50: 8d 08 mov y,#$08 +0d52: cf mul ya +0d53: 5d mov x,a +0d54: 8d 0f mov y,#$0f +0d56: f5 bb 10 mov a,$10bb+x +0d59: 3f 70 07 call $0770 +0d5c: 3d inc x +0d5d: dd mov a,y +0d5e: 60 clrc +0d5f: 88 10 adc a,#$10 +0d61: fd mov y,a +0d62: 10 f2 bpl $0d56 +0d64: f8 42 mov x,$42 +0d66: 6f ret + +0d67: c4 48 mov $48,a +0d69: 8d 7d mov y,#$7d +0d6b: cc f2 00 mov $00f2,y +0d6e: e5 f3 00 mov a,$00f3 +0d71: 64 48 cmp a,$48 +0d73: f0 2b beq $0da0 +0d75: 28 0f and a,#$0f +0d77: 48 ff eor a,#$ff +0d79: f3 47 03 bbc7 $47,$0d7f +0d7c: 60 clrc +0d7d: 84 47 adc a,$47 +0d7f: c4 47 mov $47,a +0d81: 8d 04 mov y,#$04 +0d83: f6 bf 04 mov a,$04bf+y +0d86: c5 f2 00 mov $00f2,a +0d89: e8 00 mov a,#$00 +0d8b: c5 f3 00 mov $00f3,a +0d8e: fe f3 dbnz y,$0d83 +0d90: e4 43 mov a,$43 +0d92: 08 20 or a,#$20 +0d94: 8d 6c mov y,#$6c +0d96: 3f 70 07 call $0770 +0d99: e4 48 mov a,$48 +0d9b: 8d 7d mov y,#$7d +0d9d: 3f 70 07 call $0770 +0da0: 1c asl a +0da1: 1c asl a +0da2: 1c asl a +0da3: 48 ff eor a,#$ff +0da5: 80 setc +0da6: 88 f8 adc a,#$f8 +0da8: 8d 6d mov y,#$6d +0daa: 5f 70 07 jmp $0770 + +; vcmd fa - set perc patch base +0dad: c4 59 mov $59,a +0daf: 6f ret + +0db0: f4 b9 mov a,$b9+x +0db2: d0 36 bne $0dea +0db4: e7 2f mov a,($2f+x) +0db6: 68 f9 cmp a,#$f9 +0db8: d0 30 bne $0dea +0dba: 3f 80 0a call $0a80 +0dbd: 3f 7e 0a call $0a7e +; vcmd f9 - pitch slide +0dc0: d4 ba mov $ba+x,a +0dc2: 3f 7e 0a call $0a7e +0dc5: d4 b9 mov $b9+x,a +0dc7: 3f 7e 0a call $0a7e +0dca: 60 clrc +0dcb: 84 4a adc a,$4a +0dcd: 95 41 03 adc a,$0341+x +0dd0: 95 50 03 adc a,$0350+x +0dd3: 28 7f and a,#$7f +0dd5: d5 d0 02 mov $02d0+x,a +0dd8: 80 setc +0dd9: b5 b1 02 sbc a,$02b1+x +0ddc: fb b9 mov y,$b9+x +0dde: 6d push y +0ddf: ce pop x +0de0: 3f fb 0d call $0dfb +0de3: d5 c0 02 mov $02c0+x,a +0de6: dd mov a,y +0de7: d5 c1 02 mov $02c1+x,a +0dea: e8 00 mov a,#$00 +0dec: d5 50 03 mov $0350+x,a +0def: 6f ret + +0df0: f5 b1 02 mov a,$02b1+x +0df3: c4 11 mov $11,a +0df5: f5 b0 02 mov a,$02b0+x +0df8: c4 10 mov $10,a +0dfa: 6f ret + +0dfb: ed notc +0dfc: 6b 12 ror $12 +0dfe: 10 03 bpl $0e03 +0e00: 48 ff eor a,#$ff +0e02: bc inc a +0e03: 8d 00 mov y,#$00 +0e05: 9e div ya,x +0e06: 2d push a +0e07: e8 00 mov a,#$00 +0e09: 9e div ya,x +0e0a: ee pop y +0e0b: f8 42 mov x,$42 +0e0d: f3 12 06 bbc7 $12,$0e16 +0e10: da 14 movw $14,ya +0e12: ba 0e movw ya,$0e +0e14: 9a 14 subw ya,$14 +0e16: 6f ret + +0e17: f4 a9 mov a,$a9+x +0e19: f0 09 beq $0e24 +0e1b: e8 50 mov a,#$50 +0e1d: 8d 02 mov y,#$02 +0e1f: 9b a9 dec $a9+x +0e21: 3f d4 0e call $0ed4 +0e24: fb da mov y,$da+x +0e26: f0 23 beq $0e4b +0e28: f5 40 03 mov a,$0340+x +0e2b: de d9 1b cbne $d9+x,$0e49 +0e2e: 09 41 58 or ($58),($41) +0e31: f5 30 03 mov a,$0330+x +0e34: 10 07 bpl $0e3d +0e36: fc inc y +0e37: d0 04 bne $0e3d +0e39: e8 80 mov a,#$80 +0e3b: 2f 04 bra $0e41 +0e3d: 60 clrc +0e3e: 95 31 03 adc a,$0331+x +0e41: d5 30 03 mov $0330+x,a +0e44: 3f 97 10 call $1097 +0e47: 2f 07 bra $0e50 +0e49: bb d9 inc $d9+x +0e4b: e8 ff mov a,#$ff +0e4d: 3f a2 10 call $10a2 +0e50: f4 aa mov a,$aa+x +0e52: f0 09 beq $0e5d +0e54: e8 80 mov a,#$80 +0e56: 8d 02 mov y,#$02 +0e58: 9b aa dec $aa+x +0e5a: 3f d4 0e call $0ed4 +0e5d: e4 41 mov a,$41 +0e5f: 24 58 and a,$58 +0e61: f0 5b beq $0ebe +0e63: f5 81 02 mov a,$0281+x +0e66: fd mov y,a +0e67: f5 80 02 mov a,$0280+x +0e6a: da 10 movw $10,ya +0e6c: 7d mov a,x +0e6d: 9f xcn a +0e6e: 5c lsr a +0e6f: c4 12 mov $12,a +0e71: eb 11 mov y,$11 +0e73: e5 a3 03 mov a,$03a3 +0e76: f0 04 beq $0e7c +0e78: e8 7f mov a,#$7f +0e7a: 2f 03 bra $0e7f +0e7c: f6 c0 0e mov a,$0ec0+y +0e7f: 80 setc +0e80: b6 bf 0e sbc a,$0ebf+y +0e83: eb 10 mov y,$10 +0e85: cf mul ya +0e86: dd mov a,y +0e87: eb 11 mov y,$11 +0e89: 2d push a +0e8a: e5 a3 03 mov a,$03a3 +0e8d: f0 05 beq $0e94 +0e8f: ae pop a +0e90: e8 78 mov a,#$78 +0e92: 2f 05 bra $0e99 +0e94: ae pop a +0e95: 60 clrc +0e96: 96 bf 0e adc a,$0ebf+y +0e99: fd mov y,a +0e9a: f5 71 02 mov a,$0271+x +0e9d: cf mul ya +0e9e: f5 a1 02 mov a,$02a1+x +0ea1: 1c asl a +0ea2: 13 12 01 bbc0 $12,$0ea6 +0ea5: 1c asl a +0ea6: dd mov a,y +0ea7: 90 03 bcc $0eac +0ea9: 48 ff eor a,#$ff +0eab: bc inc a +0eac: eb 12 mov y,$12 +0eae: 3f 68 07 call $0768 +0eb1: 8d 14 mov y,#$14 +0eb3: e8 00 mov a,#$00 +0eb5: 9a 10 subw ya,$10 +0eb7: da 10 movw $10,ya +0eb9: ab 12 inc $12 +0ebb: 33 12 b3 bbc1 $12,$0e71 +0ebe: 6f ret + +0ebf: 00 nop +0ec0: 01 tcall 0 +0ec1: 03 07 0d bbs0 $07,$0ed1 +0ec4: 15 1e 29 or a,$291e+x +0ec7: 34 42 and a,$42+x +0ec9: 51 tcall 5 +0eca: 5e 67 6e cmp y,$6e67 +0ecd: 73 77 7a bbc3 $77,$0f4a +0ed0: 7c ror a +0ed1: 7d mov a,x +0ed2: 7e 7f cmp y,$7f +0ed4: 09 41 58 or ($58),($41) +0ed7: da 14 movw $14,ya +0ed9: da 16 movw $16,ya +0edb: 4d push x +0edc: ee pop y +0edd: 60 clrc +0ede: d0 0a bne $0eea +0ee0: 98 1f 16 adc $16,#$1f +0ee3: e8 00 mov a,#$00 +0ee5: d7 14 mov ($14)+y,a +0ee7: fc inc y +0ee8: 2f 09 bra $0ef3 +0eea: 98 10 16 adc $16,#$10 +0eed: 3f f1 0e call $0ef1 +0ef0: fc inc y +0ef1: f7 14 mov a,($14)+y +0ef3: 97 16 adc a,($16)+y +0ef5: d7 14 mov ($14)+y,a +0ef7: 6f ret + +0ef8: fc inc y +0ef9: f7 14 mov a,($14)+y +0efb: 2d push a +0efc: fc inc y +0efd: f7 14 mov a,($14)+y +0eff: c4 15 mov $15,a +0f01: ae pop a +0f02: c4 14 mov $14,a +0f04: 8d 00 mov y,#$00 +0f06: 2f 16 bra $0f1e +0f08: e8 01 mov a,#$01 +0f0a: 74 89 cmp a,$89+x +0f0c: f0 03 beq $0f11 +0f0e: 5f a3 0f jmp $0fa3 + +0f11: e8 00 mov a,#$00 +0f13: c5 9e 03 mov $039e,a +0f16: f4 2f mov a,$2f+x +0f18: fb 30 mov y,$30+x +0f1a: da 14 movw $14,ya +0f1c: 8d 00 mov y,#$00 +0f1e: f7 14 mov a,($14)+y +0f20: f0 18 beq $0f3a +0f22: 30 05 bmi $0f29 +0f24: fc inc y +0f25: f7 14 mov a,($14)+y +0f27: 10 fb bpl $0f24 +0f29: 68 c8 cmp a,#$c8 +0f2b: f0 76 beq $0fa3 +0f2d: 68 e0 cmp a,#$e0 +0f2f: 90 6b bcc $0f9c +0f31: 6d push y +0f32: fd mov y,a +0f33: ae pop a +0f34: 96 6c 09 adc a,$096c+y +0f37: fd mov y,a +0f38: 2f e4 bra $0f1e +0f3a: fc inc y +0f3b: f7 14 mov a,($14)+y +0f3d: f0 06 beq $0f45 +0f3f: 68 01 cmp a,#$01 +0f41: f0 59 beq $0f9c +0f43: 2f b3 bra $0ef8 +0f45: f4 20 mov a,$20+x +0f47: 2d push a +0f48: f4 1f mov a,$1f+x +0f4a: ee pop y +0f4b: da 14 movw $14,ya +0f4d: ec 9e 03 mov y,$039e +0f50: f7 14 mov a,($14)+y +0f52: 2d push a +0f53: fc inc y +0f54: f7 14 mov a,($14)+y +0f56: fc inc y +0f57: cc 9e 03 mov $039e,y +0f5a: fd mov y,a +0f5b: ae pop a +0f5c: da 14 movw $14,ya +0f5e: 8d 00 mov y,#$00 +0f60: e4 15 mov a,$15 +0f62: f0 38 beq $0f9c +0f64: 68 ff cmp a,#$ff +0f66: f0 06 beq $0f6e +0f68: 68 01 cmp a,#$01 +0f6a: f0 15 beq $0f81 +0f6c: 2f b0 bra $0f1e +0f6e: 4d push x +0f6f: ee pop y +0f70: f7 1c mov a,($1c)+y +0f72: 2d push a +0f73: fc inc y +0f74: f7 1c mov a,($1c)+y +0f76: fd mov y,a +0f77: ae pop a +0f78: da 14 movw $14,ya +0f7a: 8d 00 mov y,#$00 +0f7c: cc 9e 03 mov $039e,y +0f7f: 2f cf bra $0f50 +0f81: f4 20 mov a,$20+x +0f83: 2d push a +0f84: f4 1f mov a,$1f+x +0f86: ee pop y +0f87: da 14 movw $14,ya +0f89: 8d 02 mov y,#$02 +0f8b: f7 14 mov a,($14)+y +0f8d: 2d push a +0f8e: fc inc y +0f8f: f7 14 mov a,($14)+y +0f91: fd mov y,a +0f92: ae pop a +0f93: da 14 movw $14,ya +0f95: 8d 00 mov y,#$00 +0f97: cc 9e 03 mov $039e,y +0f9a: 2f b4 bra $0f50 +0f9c: e4 41 mov a,$41 +0f9e: 8d 5c mov y,#$5c +0fa0: 3f 68 07 call $0768 +0fa3: f2 13 clr7 $13 +0fa5: f4 b9 mov a,$b9+x +0fa7: f0 13 beq $0fbc +0fa9: f4 ba mov a,$ba+x +0fab: f0 04 beq $0fb1 +0fad: 9b ba dec $ba+x +0faf: 2f 0b bra $0fbc +0fb1: e2 13 set7 $13 +0fb3: e8 b0 mov a,#$b0 +0fb5: 8d 02 mov y,#$02 +0fb7: 9b b9 dec $b9+x +0fb9: 3f d7 0e call $0ed7 +0fbc: 3f f0 0d call $0df0 +0fbf: f4 ca mov a,$ca+x +0fc1: f0 4a beq $100d +0fc3: f5 10 03 mov a,$0310+x +0fc6: de c9 42 cbne $c9+x,$100b +0fc9: f5 9a 00 mov a,$009a+x +0fcc: 75 11 03 cmp a,$0311+x +0fcf: d0 05 bne $0fd6 +0fd1: f5 21 03 mov a,$0321+x +0fd4: 2f 0b bra $0fe1 +0fd6: bb 9a inc $9a+x +0fd8: fd mov y,a +0fd9: f0 02 beq $0fdd +0fdb: f4 ca mov a,$ca+x +0fdd: 60 clrc +0fde: 95 20 03 adc a,$0320+x +0fe1: d4 ca mov $ca+x,a +0fe3: f5 00 03 mov a,$0300+x +0fe6: 60 clrc +0fe7: 95 01 03 adc a,$0301+x +0fea: d5 00 03 mov $0300+x,a +0fed: c4 12 mov $12,a +0fef: 1c asl a +0ff0: 1c asl a +0ff1: 90 02 bcc $0ff5 +0ff3: 48 ff eor a,#$ff +0ff5: fd mov y,a +0ff6: f4 ca mov a,$ca+x +0ff8: 68 f1 cmp a,#$f1 +0ffa: 90 05 bcc $1001 +0ffc: 28 0f and a,#$0f +0ffe: cf mul ya +0fff: 2f 04 bra $1005 +1001: cf mul ya +1002: dd mov a,y +1003: 8d 00 mov y,#$00 +1005: 3f 82 10 call $1082 +1008: 5f e5 06 jmp $06e5 + +100b: bb c9 inc $c9+x +100d: e3 13 f8 bbs7 $13,$1008 +1010: 6f ret + +1011: f2 13 clr7 $13 +1013: f4 da mov a,$da+x +1015: f0 09 beq $1020 +1017: f5 40 03 mov a,$0340+x +101a: de d9 03 cbne $d9+x,$1020 +101d: 3f 8a 10 call $108a +1020: f5 81 02 mov a,$0281+x +1023: fd mov y,a +1024: f5 80 02 mov a,$0280+x +1027: da 10 movw $10,ya +1029: f4 aa mov a,$aa+x +102b: f0 0a beq $1037 +102d: f5 91 02 mov a,$0291+x +1030: fd mov y,a +1031: f5 90 02 mov a,$0290+x +1034: 3f 6c 10 call $106c +1037: f3 13 03 bbc7 $13,$103d +103a: 3f 6c 0e call $0e6c +103d: f2 13 clr7 $13 +103f: 3f f0 0d call $0df0 +1042: f4 b9 mov a,$b9+x +1044: f0 0e beq $1054 +1046: f4 ba mov a,$ba+x +1048: d0 0a bne $1054 +104a: f5 c1 02 mov a,$02c1+x +104d: fd mov y,a +104e: f5 c0 02 mov a,$02c0+x +1051: 3f 6c 10 call $106c +1054: f4 ca mov a,$ca+x +1056: f0 b5 beq $100d +1058: f5 10 03 mov a,$0310+x +105b: de c9 af cbne $c9+x,$100d +105e: eb 4b mov y,$4b +1060: f5 01 03 mov a,$0301+x +1063: cf mul ya +1064: dd mov a,y +1065: 60 clrc +1066: 95 00 03 adc a,$0300+x +1069: 5f ed 0f jmp $0fed + +106c: e2 13 set7 $13 +106e: cb 12 mov $12,y +1070: 3f 0d 0e call $0e0d +1073: 6d push y +1074: eb 4b mov y,$4b +1076: cf mul ya +1077: cb 14 mov $14,y +1079: 8f 00 15 mov $15,#$00 +107c: eb 4b mov y,$4b +107e: ae pop a +107f: cf mul ya +1080: 7a 14 addw ya,$14 +1082: 3f 0d 0e call $0e0d +1085: 7a 10 addw ya,$10 +1087: da 10 movw $10,ya +1089: 6f ret + +108a: e2 13 set7 $13 +108c: eb 4b mov y,$4b +108e: f5 31 03 mov a,$0331+x +1091: cf mul ya +1092: dd mov a,y +1093: 60 clrc +1094: 95 30 03 adc a,$0330+x +1097: 1c asl a +1098: 90 02 bcc $109c +109a: 48 ff eor a,#$ff +109c: fb da mov y,$da+x +109e: cf mul ya +109f: dd mov a,y +10a0: 48 ff eor a,#$ff +10a2: eb 53 mov y,$53 +10a4: cf mul ya +10a5: f5 10 02 mov a,$0210+x +10a8: cf mul ya +10a9: f5 51 02 mov a,$0251+x +10ac: cf mul ya +10ad: 3e 66 cmp x,$66 +10af: b0 03 bcs $10b4 +10b1: e4 65 mov a,$65 +10b3: cf mul ya +10b4: dd mov a,y +10b5: cf mul ya +10b6: dd mov a,y +10b7: d5 71 02 mov $0271+x,a +10ba: 6f ret + + +10bb: db $7f,$00,$00,$00,$00,$00,$00,$00 +10c3: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c +10cb: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 +10d3: db $34,$33,$00,$d9,$e5,$01,$fc,$eb +10dd: db $fc,$e5,$cb,$b2,$98,$7f,$65,$33 +10e3: db $19,$32,$4c,$65,$72,$7f,$8c,$98 +10ed: db $a5,$b2,$bf,$cb,$d8,$e5,$f2,$fc + +10f3: e4 66 mov a,$66 +10f5: f0 09 beq $1100 +10f7: 68 10 cmp a,#$10 +10f9: f0 bf beq $10ba +10fb: 80 setc +10fc: a8 02 sbc a,#$02 +10fe: c4 66 mov $66,a +1100: e5 60 03 mov a,$0360 +1103: 30 17 bmi $111c +1105: fd mov y,a +1106: f6 47 12 mov a,$1247+y +1109: f0 11 beq $111c +110b: 68 01 cmp a,#$01 +110d: f0 21 beq $1130 +110f: 68 03 cmp a,#$03 +1111: f0 1d beq $1130 +1113: e5 60 03 mov a,$0360 +1116: 60 clrc +1117: 88 80 adc a,#$80 +1119: c5 60 03 mov $0360,a +111c: cd 0e mov x,#$0e +111e: d8 68 mov $68,x +1120: f5 75 03 mov a,$0375+x +1123: 30 05 bmi $112a +1125: 65 60 03 cmp a,$0360 +1128: f0 39 beq $1163 +112a: 1d dec x +112b: 1d dec x +112c: 3e 66 cmp x,$66 +112e: d0 f0 bne $1120 +1130: cd 0e mov x,#$0e +1132: d8 68 mov $68,x +1134: e8 80 mov a,#$80 +1136: c4 67 mov $67,a +1138: f5 75 03 mov a,$0375+x +113b: 30 0a bmi $1147 +113d: f4 89 mov a,$89+x +113f: 64 67 cmp a,$67 +1141: b0 04 bcs $1147 +1143: c4 67 mov $67,a +1145: d8 68 mov $68,x +1147: 1d dec x +1148: 1d dec x +1149: 3e 66 cmp x,$66 +114b: d0 eb bne $1138 +114d: f8 68 mov x,$68 +114f: e5 60 03 mov a,$0360 +1152: 30 0f bmi $1163 +1154: fd mov y,a +1155: f6 48 12 mov a,$1248+y +1158: 68 03 cmp a,#$03 +115a: d0 07 bne $1163 +115c: e4 67 mov a,$67 +115e: 68 50 cmp a,#$50 +1160: 90 01 bcc $1163 +1162: 6f ret + +1163: e5 60 03 mov a,$0360 +1166: 10 34 bpl $119c +1168: c5 86 03 mov $0386,a +116b: 4d push x +116c: e9 9f 03 mov x,$039f +116f: f0 20 beq $1191 +1171: e8 00 mov a,#$00 +1173: d4 69 mov $69+x,a +1175: d4 6a mov $6a+x,a +1177: d5 75 03 mov $0375+x,a +117a: e8 01 mov a,#$01 +117c: 1c asl a +117d: 1d dec x +117e: 1d dec x +117f: d0 fb bne $117c +1181: c5 87 03 mov $0387,a +1184: 8d 5c mov y,#$5c +1186: cb f2 mov $f2,y +1188: e4 f3 mov a,$f3 +118a: 05 87 03 or a,$0387 +118d: cb f2 mov $f2,y +118f: c4 f3 mov $f3,a +1191: ce pop x +1192: e5 86 03 mov a,$0386 +1195: 28 7f and a,#$7f +1197: f0 73 beq $120c +1199: c9 9f 03 mov $039f,x +119c: 1c asl a +119d: f0 6d beq $120c +119f: fd mov y,a +11a0: f6 14 12 mov a,$1214+y +11a3: d4 2f mov $2f+x,a +11a5: f6 15 12 mov a,$1215+y +11a8: d4 30 mov $30+x,a +11aa: e8 01 mov a,#$01 +11ac: d4 69 mov $69+x,a +11ae: d4 6a mov $6a+x,a +11b0: e5 60 03 mov a,$0360 +11b3: d5 75 03 mov $0375+x,a +11b6: 7d mov a,x +11b7: c9 88 03 mov $0388,x +11ba: e8 01 mov a,#$01 +11bc: 1c asl a +11bd: 1d dec x +11be: 1d dec x +11bf: d0 fb bne $11bc +11c1: c5 87 03 mov $0387,a +11c4: 8d 5c mov y,#$5c +11c6: cb f2 mov $f2,y +11c8: e4 f3 mov a,$f3 +11ca: 05 87 03 or a,$0387 +11cd: cb f2 mov $f2,y +11cf: c4 f3 mov $f3,a +11d1: e9 88 03 mov x,$0388 +11d4: e5 61 03 mov a,$0361 +11d7: d5 51 02 mov $0251+x,a +11da: e5 8a 03 mov a,$038a +11dd: d5 41 03 mov $0341+x,a +11e0: e5 62 03 mov a,$0362 +11e3: 3f 1f 0c call $0c1f +11e6: d5 11 02 mov $0211+x,a +11e9: d5 d1 02 mov $02d1+x,a +11ec: d5 e0 02 mov $02e0+x,a +11ef: d4 ca mov $ca+x,a +11f1: d4 da mov $da+x,a +11f3: f5 11 02 mov a,$0211+x +11f6: d0 05 bne $11fd +11f8: e8 00 mov a,#$00 +11fa: 3f 29 0b call $0b29 +11fd: e8 00 mov a,#$00 +11ff: d4 99 mov $99+x,a +1201: d4 a9 mov $a9+x,a +1203: d4 aa mov $aa+x,a +1205: e8 02 mov a,#$02 +1207: d5 00 02 mov $0200+x,a +120a: d4 89 mov $89+x,a +120c: e4 66 mov a,$66 +120e: f0 05 beq $1215 +1210: 60 clrc +1211: 88 02 adc a,#$02 +1213: c4 66 mov $66,a +1215: 6f ret \ No newline at end of file diff --git a/snes/NSPC/Produce/The 7th Saga ($0600).bin b/snes/NSPC/Produce/The 7th Saga ($0600).bin new file mode 100644 index 00000000..8c147c34 Binary files /dev/null and b/snes/NSPC/Produce/The 7th Saga ($0600).bin differ diff --git a/snes/NSPC/Produce/The 7th Saga.s b/snes/NSPC/Produce/The 7th Saga.s new file mode 100644 index 00000000..a64c6631 --- /dev/null +++ b/snes/NSPC/Produce/The 7th Saga.s @@ -0,0 +1,1392 @@ +0600: 20 clrp +0601: cd cf mov x,#$cf +0603: bd mov sp,x +0604: 3f 79 10 call $1079 +0607: 8d 20 mov y,#$20 +0609: 3f ce 0f call $0fce +060c: ec fe 00 mov y,$00fe +060f: f0 fb beq $060c +0611: cb 32 mov $32,y +0613: e4 7d mov a,$7d +0615: d0 41 bne $0658 +0617: 69 a3 a2 cmp ($a2),($a3) +061a: f0 02 beq $061e +061c: ab a2 inc $a2 +061e: e8 00 mov a,#$00 +0620: c4 e4 mov $e4,a +0622: c4 e5 mov $e5,a +0624: 8f 01 7e mov $7e,#$01 +0627: 8f 00 7f mov $7f,#$00 +062a: 5d mov x,a +062b: e4 7e mov a,$7e +062d: 24 7b and a,$7b +062f: f0 08 beq $0639 +0631: 3f 63 06 call $0663 +0634: 90 03 bcc $0639 +0636: 3f 82 06 call $0682 +0639: 3d inc x +063a: 3d inc x +063b: 60 clrc +063c: 98 10 7f adc $7f,#$10 +063f: 0b 7e asl $7e +0641: d0 e8 bne $062b +0643: e4 7c mov a,$7c +0645: f0 08 beq $064f +0647: 3f 63 06 call $0663 +064a: 90 03 bcc $064f +064c: 3f 6e 06 call $066e +064f: e4 7c mov a,$7c +0651: 04 7b or a,$7b +0653: f0 03 beq $0658 +0655: 3f ae 0b call $0bae +0658: 3f fe 0f call $0ffe +065b: 3f 55 0d call $0d55 +065e: 3f 45 0b call $0b45 +0661: 2f a9 bra $060c +0663: f4 34 mov a,$34+x +0665: eb 32 mov y,$32 +0667: cf mul ya +0668: 60 clrc +0669: 94 69 adc a,$69+x +066b: d4 69 mov $69+x,a +066d: 6f ret + +066e: 8f 01 7e mov $7e,#$01 +0671: 8f 00 7f mov $7f,#$00 +0674: 3f 82 06 call $0682 +0677: 3d inc x +0678: 3d inc x +0679: 60 clrc +067a: 98 10 7f adc $7f,#$10 +067d: 0b 7e asl $7e +067f: d0 f3 bne $0674 +0681: 6f ret + +0682: f4 83 mov a,$83+x +0684: f0 0e beq $0694 +0686: f4 a5 mov a,$a5+x +0688: d0 05 bne $068f +068a: 3f 95 06 call $0695 +068d: 2f f3 bra $0682 +068f: 9b a5 dec $a5+x +0691: 3f 70 0a call $0a70 +0694: 6f ret + +; vcmd branches +0695: 3f 66 0a call $0a66 +0698: 30 23 bmi $06bd +069a: d4 a4 mov $a4+x,a ; set note length +069c: 3f 66 0a call $0a66 +069f: 30 1c bmi $06bd +06a1: e7 82 mov a,($82+x) +06a3: 68 c8 cmp a,#$c8 ; tie +06a5: 90 08 bcc $06af +06a7: f4 a4 mov a,$a4+x +06a9: 9c dec a +06aa: d4 c4 mov $c4+x,a +06ac: dd mov a,y +06ad: 2f 07 bra $06b6 +06af: db c4 mov $c4+x,y +06b1: 3f 66 0a call $0a66 +06b4: 30 07 bmi $06bd +06b6: 1c asl a +06b7: d5 22 02 mov $0222+x,a +06ba: 3f 66 0a call $0a66 +06bd: 68 ff cmp a,#$ff ; end of track +06bf: d0 39 bne $06fa +06c1: e8 00 mov a,#$00 +06c3: d4 a5 mov $a5+x,a +06c5: f5 05 05 mov a,$0505+x +06c8: f0 21 beq $06eb +06ca: f5 e4 04 mov a,$04e4+x +06cd: f0 06 beq $06d5 +06cf: 9c dec a +06d0: d5 e4 04 mov $04e4+x,a +06d3: f0 05 beq $06da +06d5: 3f 07 0a call $0a07 +06d8: 2f 3d bra $0717 +06da: f5 24 05 mov a,$0524+x +06dd: d4 82 mov $82+x,a +06df: f5 25 05 mov a,$0525+x +06e2: d4 83 mov $83+x,a +06e4: e8 00 mov a,#$00 +06e6: d5 05 05 mov $0505+x,a +06e9: 2f 2c bra $0717 +06eb: e8 00 mov a,#$00 +06ed: d4 83 mov $83+x,a +06ef: c8 11 cmp x,#$11 +06f1: b0 05 bcs $06f8 +06f3: 4d push x +06f4: 3f 67 0e call $0e67 +06f7: ce pop x +06f8: 2f 1d bra $0717 +06fa: 68 df cmp a,#$df +06fc: f0 15 beq $0713 ; rest +06fe: 90 05 bcc $0705 +0700: 3f 75 07 call $0775 +0703: 2f 0e bra $0713 +0705: c8 10 cmp x,#$10 +0707: 90 07 bcc $0710 +0709: e4 7e mov a,$7e +070b: 24 7b and a,$7b +070d: d0 04 bne $0713 +070f: dd mov a,y +0710: 3f 18 07 call $0718 +0713: f4 a4 mov a,$a4+x +0715: d4 a5 mov $a5+x,a +0717: 6f ret + +0718: 68 c8 cmp a,#$c8 +071a: 90 03 bcc $071f +071c: 5f 55 07 jmp $0755 + +071f: 28 7f and a,#$7f +0721: d5 82 03 mov $0382+x,a +0724: 3f 3d 0a call $0a3d +0727: 09 7e e5 or ($e5),($7e) +072a: f4 c4 mov a,$c4+x +072c: d4 c5 mov $c5+x,a +072e: e4 7e mov a,$7e +0730: 24 80 and a,$80 +0732: d0 20 bne $0754 +0734: 09 7e 0c or ($0c),($7e) +0737: 09 7e 80 or ($80),($7e) +073a: f5 44 04 mov a,$0444+x +073d: d5 45 04 mov $0445+x,a +0740: f5 42 03 mov a,$0342+x +0743: d5 43 03 mov $0343+x,a +0746: e8 00 mov a,#$00 +0748: d5 64 04 mov $0464+x,a +074b: d5 62 03 mov $0362+x,a +074e: d5 03 04 mov $0403+x,a +0751: d5 02 04 mov $0402+x,a +0754: 6f ret + +0755: 80 setc +0756: a8 c8 sbc a,#$c8 +0758: 60 clrc +0759: 84 81 adc a,$81 +075b: 3f cb 07 call $07cb +075e: 8d 08 mov y,#$08 +0760: e8 00 mov a,#$00 +0762: da 00 movw $00,ya +0764: 3f d9 0f call $0fd9 +0767: 09 7e e5 or ($e5),($7e) +076a: f4 c4 mov a,$c4+x +076c: d4 c5 mov $c5+x,a +076e: 09 7e 0c or ($0c),($7e) +0771: 09 7e 80 or ($80),($7e) +0774: 6f ret + +; dispatch vcmd +0775: 1c asl a +0776: fd mov y,a +0777: f6 c1 06 mov a,$06c1+y +077a: 2d push a +077b: f6 c0 06 mov a,$06c0+y +077e: 2d push a +077f: 6f ret + +; vcmd dispatch table +0780: dw $07b8 ; e0 - set instrument +0782: dw $080f ; e1 - master volume +0784: dw $081f ; e2 - volume +0786: dw $081f ; e3 - volume +0788: dw $082f ; e4 - nop +078a: dw $0830 ; e5 - pan +078c: dw $083f ; e6 - pan fade +078e: dw $085e ; e7 - tremolo on +0790: dw $0871 ; e8 - tremolo off +0792: dw $0877 ; e9 - global transpose +0794: dw $087e ; ea - per-voice transpose +0796: dw $0885 ; eb +0798: dw $088c ; ec - tuning +079a: dw $08aa ; ed - vibrato on +079c: dw $08c0 ; ee - vibrato off +079e: dw $08c6 ; ef - pitch slide +07a0: dw $08e7 ; f0 - nop +07a2: dw $08e7 ; f1 - nop +07a4: dw $08e7 ; f2 - nop +07a6: dw $08e8 ; f3 - echo vbits/volume +07a8: dw $090e ; f4 - disable echo +07aa: dw $0917 ; f5 - set echo params +07ac: dw $09aa ; f6 - nop +07ae: dw $09ab ; f7 - tempo +07b0: dw $09bd ; f8 - tempo fade +07b2: dw $09e7 ; f9 - call subroutine +07b4: dw $0a12 ; fa - set perc patch base +07b6: dw $0a1c ; fb + +; vcmd e0 - set instrument +07b8: 3f 66 0a call $0a66 +07bb: d5 02 02 mov $0202+x,a +07be: c8 10 cmp x,#$10 +07c0: 90 09 bcc $07cb +07c2: fa 7e 00 mov ($00),($7e) +07c5: 29 7b 00 and ($00),($7b) +07c8: f0 01 beq $07cb +07ca: 6f ret + +07cb: 8d 06 mov y,#$06 +07cd: cf mul ya +07ce: fd mov y,a +07cf: 4d push x +07d0: e4 7f mov a,$7f +07d2: 08 04 or a,#$04 +07d4: 5d mov x,a +07d5: 8f 04 00 mov $00,#$04 +07d8: f6 00 3e mov a,$3e00+y +07db: 10 0f bpl $07ec +07dd: 28 1f and a,#$1f +07df: 38 20 10 and $10,#$20 +07e2: 0e 10 00 tset1 $0010 +07e5: 09 7e 0f or ($0f),($7e) +07e8: e8 00 mov a,#$00 +07ea: 2f 08 bra $07f4 +07ec: e4 7e mov a,$7e +07ee: 4e 0f 00 tclr1 $000f +07f1: f6 00 3e mov a,$3e00+y +07f4: c9 f2 00 mov $00f2,x +07f7: c5 f3 00 mov $00f3,a +07fa: 3d inc x +07fb: fc inc y +07fc: 8b 00 dec $00 +07fe: d0 f1 bne $07f1 +0800: ce pop x +0801: f6 00 3e mov a,$3e00+y +0804: d5 c5 04 mov $04c5+x,a +0807: fc inc y +0808: f6 00 3e mov a,$3e00+y +080b: d5 c4 04 mov $04c4+x,a +080e: 6f ret + +; vcmd e1 - master volume +080f: 3f 66 0a call $0a66 +0812: 1c asl a +0813: c5 45 05 mov $0545,a +0816: e8 00 mov a,#$00 +0818: c5 44 05 mov $0544,a +081b: 8f ff e5 mov $e5,#$ff +081e: 6f ret + +; vcmd e2/e3 - volume +081f: 3f 66 0a call $0a66 +0822: 1c asl a +0823: d5 43 02 mov $0243+x,a +0826: e8 00 mov a,#$00 +0828: d5 42 02 mov $0242+x,a +082b: 09 7e e5 or ($e5),($7e) +082e: 6f ret + +; vcmd e4 - nop +082f: 6f ret + +; vcmd e5 - pan +0830: 3f 66 0a call $0a66 +0833: d5 c3 02 mov $02c3+x,a +0836: e8 00 mov a,#$00 +0838: d5 c2 02 mov $02c2+x,a +083b: 09 7e e5 or ($e5),($7e) +083e: 6f ret + +; vcmd e6 - pan fade +083f: 4d push x +0840: 3f 66 0a call $0a66 +0843: d5 e2 02 mov $02e2+x,a +0846: 2d push a +0847: 3f 66 0a call $0a66 +084a: d5 e3 02 mov $02e3+x,a +084d: 80 setc +084e: b5 c3 02 sbc a,$02c3+x +0851: ce pop x +0852: 3f 39 0d call $0d39 +0855: ce pop x +0856: d5 02 03 mov $0302+x,a +0859: dd mov a,y +085a: d5 03 03 mov $0303+x,a +085d: 6f ret + +; vcmd e7 - tremolo on +085e: 3f 66 0a call $0a66 +0861: d5 42 03 mov $0342+x,a +0864: 3f 66 0a call $0a66 +0867: d5 22 03 mov $0322+x,a +086a: 3f 66 0a call $0a66 +086d: d5 23 03 mov $0323+x,a +0870: 6f ret + +; vcmd e8 - tremolo off +0871: e8 00 mov a,#$00 +0873: d5 23 03 mov $0323+x,a +0876: 6f ret + +; vcmd e9 - global transpose +0877: 3f 66 0a call $0a66 +087a: c5 4a 05 mov $054a,a +087d: 6f ret + +; vcmd ea - per-voice transpose +087e: 3f 66 0a call $0a66 +0881: d5 c3 03 mov $03c3+x,a +0884: 6f ret + +; vcmd eb +0885: 3f 66 0a call $0a66 +0888: d5 c2 03 mov $03c2+x,a +088b: 6f ret + +; vcmd ec - tuning +088c: 3f 66 0a call $0a66 +088f: fd mov y,a +0890: 28 3f and a,#$3f +0892: 1c asl a +0893: 1c asl a +0894: d5 a2 03 mov $03a2+x,a +0897: dd mov a,y +0898: 9f xcn a +0899: 5c lsr a +089a: 5c lsr a +089b: 28 03 and a,#$03 +089d: d5 a3 03 mov $03a3+x,a +08a0: e4 7e mov a,$7e +08a2: 24 80 and a,$80 +08a4: f0 03 beq $08a9 +08a6: 3f 3d 0a call $0a3d +08a9: 6f ret + +; vcmd ed - vibrato on +08aa: 3f 66 0a call $0a66 +08ad: d5 44 04 mov $0444+x,a +08b0: 3f 66 0a call $0a66 +08b3: 3f 66 0a call $0a66 +08b6: d5 24 04 mov $0424+x,a +08b9: 3f 66 0a call $0a66 +08bc: d5 25 04 mov $0425+x,a +08bf: 6f ret + +; vcmd ee - vibrato off +08c0: e8 00 mov a,#$00 +08c2: d5 25 04 mov $0425+x,a +08c5: 6f ret + +; vcmd ef - pitch slide +08c6: 4d push x +08c7: 3f 66 0a call $0a66 +08ca: d5 a4 04 mov $04a4+x,a +08cd: 2d push a +08ce: 3f 66 0a call $0a66 +08d1: 28 7f and a,#$7f +08d3: 80 setc +08d4: b5 82 03 sbc a,$0382+x +08d7: d5 a5 04 mov $04a5+x,a +08da: ce pop x +08db: 3f 39 0d call $0d39 +08de: ce pop x +08df: d5 84 04 mov $0484+x,a +08e2: dd mov a,y +08e3: d5 85 04 mov $0485+x,a +08e6: 6f ret + +; vcmd f0-f2 - nop +08e7: 6f ret + +; vcmd f3 - echo vbits/volume +08e8: 3f 66 0a call $0a66 +08eb: c4 14 mov $14,a +08ed: 3f 66 0a call $0a66 +08f0: 1c asl a +08f1: c5 00 02 mov $0200,a +08f4: 3f 66 0a call $0a66 +08f7: 1c asl a +08f8: c5 01 02 mov $0201,a +08fb: b2 10 clr5 $10 +08fd: eb 0a mov y,$0a +08ff: e5 00 02 mov a,$0200 +0902: cf mul ya +0903: cb 11 mov $11,y +0905: eb 0b mov y,$0b +0907: e5 01 02 mov a,$0201 +090a: cf mul ya +090b: cb 12 mov $12,y +090d: 6f ret + +; vcmd f4 - disable echo +090e: e8 00 mov a,#$00 +0910: c4 11 mov $11,a +0912: c4 12 mov $12,a +0914: a2 10 set5 $10 +0916: 6f ret + +; vcmd f5 - set echo params +0917: 4d push x +0918: 3f 66 0a call $0a66 +091b: 3f 5c 09 call $095c +091e: 3f 66 0a call $0a66 +0921: c4 13 mov $13,a +0923: 3f 66 0a call $0a66 +0926: 1c asl a +0927: 1c asl a +0928: 1c asl a +0929: 5d mov x,a +092a: 8d 0f mov y,#$0f +092c: f5 3c 09 mov a,$093c+x +092f: 3f 23 10 call $1023 +0932: 3d inc x +0933: dd mov a,y +0934: 60 clrc +0935: 88 10 adc a,#$10 +0937: fd mov y,a +0938: 10 f2 bpl $092c +093a: ce pop x +093b: 6f ret + +; echo FIR presets +093c: db $7f,$00,$00,$00,$00,$00,$00,$00 +0943: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c +094c: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 +0953: db $34,$33,$00,$d9,$e5,$01,$fc,$eb + +095c: c4 00 mov $00,a +095e: 8d 7d mov y,#$7d +0960: cc f2 00 mov $00f2,y +0963: e5 f3 00 mov a,$00f3 +0966: 64 00 cmp a,$00 +0968: f0 30 beq $099a +096a: 28 0f and a,#$0f +096c: 48 ff eor a,#$ff +096e: 1c asl a +096f: 1c asl a +0970: 1c asl a +0971: f3 a2 03 bbc7 $a2,$0977 +0974: 60 clrc +0975: 84 a2 adc a,$a2 +0977: c4 a2 mov $a2,a +0979: e8 00 mov a,#$00 +097b: 8d 04 mov y,#$04 +097d: f6 f0 0f mov a,$0ff0+y +0980: c5 f2 00 mov $00f2,a +0983: e8 00 mov a,#$00 +0985: c5 f3 00 mov $00f3,a +0988: fe f3 dbnz y,$097d +098a: e4 10 mov a,$10 +098c: 08 20 or a,#$20 +098e: 8d 6c mov y,#$6c +0990: 3f 23 10 call $1023 +0993: e4 00 mov a,$00 +0995: 8d 7d mov y,#$7d +0997: 3f 23 10 call $1023 +099a: 1c asl a +099b: 1c asl a +099c: 1c asl a +099d: c4 a3 mov $a3,a +099f: 48 ff eor a,#$ff +09a1: 80 setc +09a2: 88 ff adc a,#$ff +09a4: 8d 6d mov y,#$6d +09a6: 3f 23 10 call $1023 +09a9: 6f ret + +; vcmd f6 - nop +09aa: 6f ret + +; vcmd f7 - tempo +09ab: 4d push x +09ac: 3f 66 0a call $0a66 +09af: c8 10 cmp x,#$10 +09b1: 90 02 bcc $09b5 +09b3: cd 10 mov x,#$10 +09b5: d4 34 mov $34+x,a +09b7: e8 00 mov a,#$00 +09b9: d4 33 mov $33+x,a +09bb: ce pop x +09bc: 6f ret + +; vcmd f8 - tempo fade +09bd: 3f 66 0a call $0a66 +09c0: c4 00 mov $00,a +09c2: 3f 66 0a call $0a66 +09c5: c4 01 mov $01,a +09c7: 4d push x +09c8: c8 10 cmp x,#$10 +09ca: 90 02 bcc $09ce +09cc: cd 10 mov x,#$10 +09ce: e4 00 mov a,$00 +09d0: d4 57 mov $57+x,a +09d2: e4 01 mov a,$01 +09d4: d4 58 mov $58+x,a +09d6: 80 setc +09d7: b4 34 sbc a,$34+x +09d9: 4d push x +09da: f8 00 mov x,$00 +09dc: 3f 39 0d call $0d39 +09df: ce pop x +09e0: d4 45 mov $45+x,a +09e2: dd mov a,y +09e3: d4 46 mov $46+x,a +09e5: ce pop x +09e6: 6f ret + +; vcmd f9 - call subroutine +09e7: 3f 66 0a call $0a66 +09ea: d5 04 05 mov $0504+x,a +09ed: 3f 66 0a call $0a66 +09f0: d5 05 05 mov $0505+x,a +09f3: 3f 66 0a call $0a66 +09f6: d5 e4 04 mov $04e4+x,a +09f9: e8 00 mov a,#$00 +09fb: d4 a4 mov $a4+x,a +09fd: f4 82 mov a,$82+x +09ff: d5 24 05 mov $0524+x,a +0a02: f4 83 mov a,$83+x +0a04: d5 25 05 mov $0525+x,a +0a07: f5 04 05 mov a,$0504+x +0a0a: d4 82 mov $82+x,a +0a0c: f5 05 05 mov a,$0505+x +0a0f: d4 83 mov $83+x,a +0a11: 6f ret + +; vcmd fa - set perc patch base +0a12: 3f 66 0a call $0a66 +0a15: c8 10 cmp x,#$10 +0a17: 90 02 bcc $0a1b +0a19: c4 81 mov $81,a +0a1b: 6f ret + +; vcmd fb +0a1c: 3f 66 0a call $0a66 +0a1f: d5 a2 02 mov $02a2+x,a +0a22: 6f ret + +; pitch table +0a23: dw $0775 +0a25: dw $07e6 +0a27: dw $085f +0a29: dw $08de +0a2b: dw $0965 +0a2d: dw $09f4 +0a2f: dw $0a8c +0a31: dw $0b2c +0a33: dw $0bd6 +0a35: dw $0c8b +0a37: dw $0d4a +0a39: dw $0e14 + +0a40: f5 c2 03 mov a,$03c2+x +0a43: 10 02 bpl $0a47 +0a45: 8b 00 dec $00 +0a47: 60 clrc +0a48: 95 a2 03 adc a,$03a2+x +0a4b: d5 e2 03 mov $03e2+x,a +0a4e: f5 82 03 mov a,$0382+x +0a51: 84 00 adc a,$00 +0a53: 60 clrc +0a54: 85 4a 05 adc a,$054a +0a57: 60 clrc +0a58: 95 c3 03 adc a,$03c3+x +0a5b: 60 clrc +0a5c: 95 a3 03 adc a,$03a3+x +0a5f: d5 e3 03 mov $03e3+x,a +0a62: 09 7e e4 or ($e4),($7e) +0a65: 6f ret + +0a66: e7 82 mov a,($82+x) +0a68: bb 82 inc $82+x +0a6a: d0 02 bne $0a6e +0a6c: bb 83 inc $83+x +0a6e: fd mov y,a +0a6f: 6f ret + +0a70: f5 a2 02 mov a,$02a2+x +0a73: f0 14 beq $0a89 +0a75: 48 ff eor a,#$ff +0a77: bc inc a +0a78: 60 clrc +0a79: 95 43 02 adc a,$0243+x +0a7c: b0 05 bcs $0a83 +0a7e: e8 00 mov a,#$00 +0a80: d5 a2 02 mov $02a2+x,a +0a83: d5 43 02 mov $0243+x,a +0a86: 09 7e e5 or ($e5),($7e) +0a89: f5 e2 02 mov a,$02e2+x +0a8c: f0 29 beq $0ab7 +0a8e: 9c dec a +0a8f: d5 e2 02 mov $02e2+x,a +0a92: d0 0d bne $0aa1 +0a94: e8 00 mov a,#$00 +0a96: d5 c2 02 mov $02c2+x,a +0a99: f5 e3 02 mov a,$02e3+x +0a9c: d5 c3 02 mov $02c3+x,a +0a9f: 2f 13 bra $0ab4 +0aa1: f5 02 03 mov a,$0302+x +0aa4: 60 clrc +0aa5: 95 c2 02 adc a,$02c2+x +0aa8: d5 c2 02 mov $02c2+x,a +0aab: f5 03 03 mov a,$0303+x +0aae: 95 c3 02 adc a,$02c3+x +0ab1: d5 c3 02 mov $02c3+x,a +0ab4: 09 7e e5 or ($e5),($7e) +0ab7: c8 11 cmp x,#$11 +0ab9: b0 20 bcs $0adb +0abb: f4 57 mov a,$57+x +0abd: f0 1c beq $0adb +0abf: 9c dec a +0ac0: d4 57 mov $57+x,a +0ac2: d0 0a bne $0ace +0ac4: e8 00 mov a,#$00 +0ac6: d4 33 mov $33+x,a +0ac8: f4 58 mov a,$58+x +0aca: d4 34 mov $34+x,a +0acc: 2f 76 bra $0b44 +0ace: f4 45 mov a,$45+x +0ad0: 60 clrc +0ad1: 94 33 adc a,$33+x +0ad3: d4 33 mov $33+x,a +0ad5: f4 46 mov a,$46+x +0ad7: 94 34 adc a,$34+x +0ad9: d4 34 mov $34+x,a +0adb: e4 80 mov a,$80 +0add: 24 7e and a,$7e +0adf: d0 01 bne $0ae2 +0ae1: 6f ret + +0ae2: c8 10 cmp x,#$10 +0ae4: 90 06 bcc $0aec +0ae6: e4 7e mov a,$7e +0ae8: 24 7b and a,$7b +0aea: d0 0e bne $0afa +0aec: f4 c5 mov a,$c5+x +0aee: f0 04 beq $0af4 +0af0: 9b c5 dec $c5+x +0af2: 2f 06 bra $0afa +0af4: 09 7e 0d or ($0d),($7e) +0af7: 49 7e 80 eor ($80),($7e) +0afa: f5 25 04 mov a,$0425+x +0afd: f0 09 beq $0b08 +0aff: f5 45 04 mov a,$0445+x +0b02: f0 04 beq $0b08 +0b04: 9c dec a +0b05: d5 45 04 mov $0445+x,a +0b08: f5 a4 04 mov a,$04a4+x +0b0b: f0 29 beq $0b36 +0b0d: 9c dec a +0b0e: d5 a4 04 mov $04a4+x,a +0b11: d0 0d bne $0b20 +0b13: f5 a5 04 mov a,$04a5+x +0b16: d5 03 04 mov $0403+x,a +0b19: e8 00 mov a,#$00 +0b1b: d5 02 04 mov $0402+x,a +0b1e: 2f 13 bra $0b33 +0b20: f5 02 04 mov a,$0402+x +0b23: 60 clrc +0b24: 95 84 04 adc a,$0484+x +0b27: d5 02 04 mov $0402+x,a +0b2a: f5 03 04 mov a,$0403+x +0b2d: 95 85 04 adc a,$0485+x +0b30: d5 03 04 mov $0403+x,a +0b33: 09 7e e4 or ($e4),($7e) +0b36: f5 23 03 mov a,$0323+x +0b39: f0 09 beq $0b44 +0b3b: f5 43 03 mov a,$0343+x +0b3e: f0 04 beq $0b44 +0b40: 9c dec a +0b41: d5 43 03 mov $0343+x,a +0b44: 6f ret + +0b45: e5 4c 05 mov a,$054c +0b48: 60 clrc +0b49: 88 10 adc a,#$10 +0b4b: c5 4c 05 mov $054c,a +0b4e: 90 5d bcc $0bad +0b50: e5 50 05 mov a,$0550 +0b53: f0 26 beq $0b7b +0b55: 9c dec a +0b56: c5 50 05 mov $0550,a +0b59: f0 1b beq $0b76 +0b5b: e5 4e 05 mov a,$054e +0b5e: 80 setc +0b5f: a5 51 05 sbc a,$0551 +0b62: c5 4e 05 mov $054e,a +0b65: e5 0a 00 mov a,$000a +0b68: a5 52 05 sbc a,$0552 +0b6b: c5 0a 00 mov $000a,a +0b6e: c5 0b 00 mov $000b,a +0b71: 3f fd 08 call $08fd +0b74: 2f 37 bra $0bad +0b76: 3f ec 0d call $0dec +0b79: 2f 32 bra $0bad +0b7b: e5 4f 05 mov a,$054f +0b7e: f0 2d beq $0bad +0b80: 9c dec a +0b81: c5 4f 05 mov $054f,a +0b84: f0 1b beq $0ba1 +0b86: e5 4e 05 mov a,$054e +0b89: 60 clrc +0b8a: 85 51 05 adc a,$0551 +0b8d: c5 4e 05 mov $054e,a +0b90: e5 0a 00 mov a,$000a +0b93: 85 52 05 adc a,$0552 +0b96: c5 0a 00 mov $000a,a +0b99: c5 0b 00 mov $000b,a +0b9c: 3f fd 08 call $08fd +0b9f: 2f 0c bra $0bad +0ba1: e5 4d 05 mov a,$054d +0ba4: c5 0a 00 mov $000a,a +0ba7: c5 0b 00 mov $000b,a +0baa: 3f fd 08 call $08fd +0bad: 6f ret + +0bae: 8f 01 7e mov $7e,#$01 +0bb1: cd 00 mov x,#$00 +0bb3: 8f 00 7f mov $7f,#$00 +0bb6: 3f c3 0b call $0bc3 +0bb9: 8f 01 7e mov $7e,#$01 +0bbc: 8f 00 7f mov $7f,#$00 +0bbf: 3f c3 0b call $0bc3 +0bc2: 6f ret + +0bc3: f4 83 mov a,$83+x +0bc5: f0 1b beq $0be2 +0bc7: c8 10 cmp x,#$10 +0bc9: b0 08 bcs $0bd3 +0bcb: e4 7e mov a,$7e +0bcd: 24 7b and a,$7b +0bcf: f0 11 beq $0be2 +0bd1: 2f 06 bra $0bd9 +0bd3: e4 7e mov a,$7e +0bd5: 24 7b and a,$7b +0bd7: d0 09 bne $0be2 +0bd9: e4 7e mov a,$7e +0bdb: 24 80 and a,$80 +0bdd: f0 03 beq $0be2 +0bdf: 3f ed 0b call $0bed +0be2: 3d inc x +0be3: 3d inc x +0be4: 60 clrc +0be5: 98 10 7f adc $7f,#$10 +0be8: 0b 7e asl $7e +0bea: d0 d7 bne $0bc3 +0bec: 6f ret + +0bed: e8 00 mov a,#$00 +0bef: c5 22 04 mov $0422,a +0bf2: c5 23 04 mov $0423,a +0bf5: c5 4b 05 mov $054b,a +0bf8: f5 25 04 mov a,$0425+x +0bfb: f0 38 beq $0c35 +0bfd: f5 45 04 mov a,$0445+x +0c00: d0 33 bne $0c35 +0c02: f5 24 04 mov a,$0424+x +0c05: 8d 10 mov y,#$10 +0c07: cf mul ya +0c08: 60 clrc +0c09: 95 64 04 adc a,$0464+x +0c0c: d5 64 04 mov $0464+x,a +0c0f: dd mov a,y +0c10: 95 65 04 adc a,$0465+x +0c13: d5 65 04 mov $0465+x,a +0c16: c4 00 mov $00,a +0c18: 1c asl a +0c19: 1c asl a +0c1a: 90 02 bcc $0c1e +0c1c: 48 ff eor a,#$ff +0c1e: fd mov y,a +0c1f: f5 25 04 mov a,$0425+x +0c22: cf mul ya +0c23: e8 0c mov a,#$0c +0c25: cf mul ya +0c26: f3 00 03 bbc7 $00,$0c2c +0c29: 3f 32 0d call $0d32 +0c2c: c5 22 04 mov $0422,a +0c2f: cc 23 04 mov $0423,y +0c32: 09 7e e4 or ($e4),($7e) +0c35: f5 23 03 mov a,$0323+x +0c38: f0 2a beq $0c64 +0c3a: f5 43 03 mov a,$0343+x +0c3d: d0 25 bne $0c64 +0c3f: f5 22 03 mov a,$0322+x +0c42: 8d 10 mov y,#$10 +0c44: cf mul ya +0c45: 60 clrc +0c46: 95 62 03 adc a,$0362+x +0c49: d5 62 03 mov $0362+x,a +0c4c: dd mov a,y +0c4d: 95 63 03 adc a,$0363+x +0c50: d5 63 03 mov $0363+x,a +0c53: 1c asl a +0c54: 90 02 bcc $0c58 +0c56: 48 ff eor a,#$ff +0c58: fd mov y,a +0c59: f5 23 03 mov a,$0323+x +0c5c: cf mul ya +0c5d: dd mov a,y +0c5e: c5 4b 05 mov $054b,a +0c61: 09 7e e5 or ($e5),($7e) +0c64: e4 7e mov a,$7e +0c66: 24 e4 and a,$e4 +0c68: f0 7d beq $0ce7 +0c6a: f5 e3 03 mov a,$03e3+x +0c6d: fd mov y,a +0c6e: f5 e2 03 mov a,$03e2+x +0c71: da 00 movw $00,ya +0c73: f5 03 04 mov a,$0403+x +0c76: fd mov y,a +0c77: f5 02 04 mov a,$0402+x +0c7a: 7a 00 addw ya,$00 +0c7c: da 00 movw $00,ya +0c7e: ec 23 04 mov y,$0423 +0c81: e5 22 04 mov a,$0422 +0c84: 7a 00 addw ya,$00 +0c86: da 04 movw $04,ya +0c88: 4d push x +0c89: dd mov a,y +0c8a: 1c asl a +0c8b: 8d 00 mov y,#$00 +0c8d: cd 18 mov x,#$18 +0c8f: 9e div ya,x +0c90: 5d mov x,a +0c91: f6 23 0a mov a,$0a23+y +0c94: c4 00 mov $00,a +0c96: f6 24 0a mov a,$0a24+y +0c99: c4 01 mov $01,a +0c9b: f6 26 0a mov a,$0a26+y +0c9e: 2d push a +0c9f: f6 25 0a mov a,$0a25+y +0ca2: ee pop y +0ca3: 9a 00 subw ya,$00 +0ca5: eb 04 mov y,$04 +0ca7: cf mul ya +0ca8: dd mov a,y +0ca9: 8d 00 mov y,#$00 +0cab: 7a 00 addw ya,$00 +0cad: da 00 movw $00,ya +0caf: 0b 00 asl $00 +0cb1: 2b 01 rol $01 +0cb3: 2f 05 bra $0cba +0cb5: 4b 01 lsr $01 +0cb7: 6b 00 ror $00 +0cb9: 3d inc x +0cba: c8 06 cmp x,#$06 +0cbc: d0 f7 bne $0cb5 +0cbe: ce pop x +0cbf: f5 c4 04 mov a,$04c4+x +0cc2: eb 01 mov y,$01 +0cc4: cf mul ya +0cc5: da 02 movw $02,ya +0cc7: f5 c5 04 mov a,$04c5+x +0cca: eb 00 mov y,$00 +0ccc: cf mul ya +0ccd: 7a 02 addw ya,$02 +0ccf: da 02 movw $02,ya +0cd1: f5 c4 04 mov a,$04c4+x +0cd4: eb 00 mov y,$00 +0cd6: cf mul ya +0cd7: 6d push y +0cd8: f5 c5 04 mov a,$04c5+x +0cdb: eb 01 mov y,$01 +0cdd: cf mul ya +0cde: fd mov y,a +0cdf: ae pop a +0ce0: 7a 02 addw ya,$02 +0ce2: da 00 movw $00,ya +0ce4: 3f d9 0f call $0fd9 +0ce7: e4 7e mov a,$7e +0ce9: 24 e5 and a,$e5 +0ceb: f0 44 beq $0d31 +0ced: 8d ff mov y,#$ff +0cef: c8 10 cmp x,#$10 +0cf1: 90 04 bcc $0cf7 +0cf3: e5 45 05 mov a,$0545 +0cf6: fd mov y,a +0cf7: f5 22 02 mov a,$0222+x +0cfa: cf mul ya +0cfb: f5 43 02 mov a,$0243+x +0cfe: cf mul ya +0cff: e5 4b 05 mov a,$054b +0d02: 48 ff eor a,#$ff +0d04: cf mul ya +0d05: cb 00 mov $00,y +0d07: e4 7f mov a,$7f +0d09: c4 02 mov $02,a +0d0b: f5 c3 02 mov a,$02c3+x +0d0e: 1c asl a +0d0f: c4 01 mov $01,a +0d11: e4 00 mov a,$00 +0d13: eb 01 mov y,$01 +0d15: cf mul ya +0d16: e8 85 mov a,#$85 +0d18: cf mul ya +0d19: dd mov a,y +0d1a: 90 03 bcc $0d1f +0d1c: 48 ff eor a,#$ff +0d1e: bc inc a +0d1f: eb 02 mov y,$02 +0d21: 3f 23 10 call $1023 +0d24: e4 01 mov a,$01 +0d26: 48 ff eor a,#$ff +0d28: c4 01 mov $01,a +0d2a: 60 clrc +0d2b: ab 02 inc $02 +0d2d: 33 02 e1 bbc1 $02,$0d11 +0d30: 6f ret + +0d31: 6f ret + +0d32: da 00 movw $00,ya +0d34: ba 08 movw ya,$08 +0d36: 9a 00 subw ya,$00 +0d38: 6f ret + +0d39: c4 00 mov $00,a +0d3b: f3 00 05 bbc7 $00,$0d43 +0d3e: 10 03 bpl $0d43 +0d40: 48 ff eor a,#$ff +0d42: bc inc a +0d43: 8d 00 mov y,#$00 +0d45: 9e div ya,x +0d46: 2d push a +0d47: e8 00 mov a,#$00 +0d49: 9e div ya,x +0d4a: ee pop y +0d4b: f3 00 06 bbc7 $00,$0d54 +0d4e: da 00 movw $00,ya +0d50: ba 08 movw ya,$08 +0d52: 9a 00 subw ya,$00 +0d54: 6f ret + +0d55: e4 7c mov a,$7c +0d57: c5 f6 00 mov $00f6,a +0d5a: e4 7b mov a,$7b +0d5c: c5 f7 00 mov $00f7,a +0d5f: e5 f4 00 mov a,$00f4 +0d62: 65 f4 00 cmp a,$00f4 +0d65: d0 ee bne $0d55 +0d67: 64 15 cmp a,$15 +0d69: f0 15 beq $0d80 +0d6b: c4 15 mov $15,a +0d6d: c5 f4 00 mov $00f4,a +0d70: 68 ff cmp a,#$ff +0d72: f0 1f beq $0d93 +0d74: 9f xcn a +0d75: 28 0f and a,#$0f +0d77: 68 09 cmp a,#$09 +0d79: b0 05 bcs $0d80 +0d7b: 1c asl a +0d7c: 5d mov x,a +0d7d: 1f 81 0d jmp ($0d81+x) + +0d80: 6f ret + +0d81: dw $0deb +0d83: dw $0dec +0d85: dw $0e0e +0d87: dw $0e13 +0d89: dw $0e17 +0d8b: dw $0e33 +0d8d: dw $0f6b +0d8f: dw $0f92 +0d91: dw $0f9b + +0d93: e4 7c mov a,$7c +0d95: 04 7b or a,$7b +0d97: f0 03 beq $0d9c +0d99: 3f ec 0d call $0dec +0d9c: e8 aa mov a,#$aa +0d9e: c5 f4 00 mov $00f4,a +0da1: e8 bb mov a,#$bb +0da3: c5 f5 00 mov $00f5,a +0da6: e5 f4 00 mov a,$00f4 +0da9: 68 cc cmp a,#$cc +0dab: d0 f9 bne $0da6 +0dad: 2f 20 bra $0dcf +0daf: ec f4 00 mov y,$00f4 +0db2: d0 fb bne $0daf +0db4: 5e f4 00 cmp y,$00f4 +0db7: d0 0f bne $0dc8 +0db9: e5 f5 00 mov a,$00f5 +0dbc: cc f4 00 mov $00f4,y +0dbf: d7 00 mov ($00)+y,a +0dc1: fc inc y +0dc2: d0 f0 bne $0db4 +0dc4: ab 01 inc $01 +0dc6: 2f ec bra $0db4 +0dc8: 10 ea bpl $0db4 +0dca: 5e f4 00 cmp y,$00f4 +0dcd: 10 e5 bpl $0db4 +0dcf: e5 f6 00 mov a,$00f6 +0dd2: ec f7 00 mov y,$00f7 +0dd5: da 00 movw $00,ya +0dd7: ec f4 00 mov y,$00f4 +0dda: e5 f5 00 mov a,$00f5 +0ddd: cc f4 00 mov $00f4,y +0de0: d0 cd bne $0daf +0de2: cd 32 mov x,#$32 +0de4: c9 f1 00 mov $00f1,x +0de7: 3f 59 10 call $1059 +0dea: 6f ret + +0deb: 6f ret + +0dec: e8 00 mov a,#$00 +0dee: c4 7c mov $7c,a +0df0: c4 7b mov $7b,a +0df2: e8 7d mov a,#$7d +0df4: c5 f2 00 mov $00f2,a +0df7: e5 f3 00 mov a,$00f3 +0dfa: 1c asl a +0dfb: 1c asl a +0dfc: 1c asl a +0dfd: 2d push a +0dfe: e8 00 mov a,#$00 +0e00: 3f 5c 09 call $095c +0e03: ee pop y +0e04: 3f ce 0f call $0fce +0e07: 8f ff 0d mov $0d,#$ff +0e0a: 3f fe 0f call $0ffe +0e0d: 6f ret + +0e0e: 8f ff 7d mov $7d,#$ff +0e11: 2f f4 bra $0e07 +0e13: 8f 00 7d mov $7d,#$00 +0e16: 6f ret + +0e17: e9 f6 00 mov x,$00f6 +0e1a: d0 01 bne $0e1d +0e1c: 3d inc x +0e1d: c9 50 05 mov $0550,x +0e20: e5 0a 00 mov a,$000a +0e23: 3f 39 0d call $0d39 +0e26: c5 51 05 mov $0551,a +0e29: dd mov a,y +0e2a: c5 52 05 mov $0552,a +0e2d: e8 00 mov a,#$00 +0e2f: c5 4e 05 mov $054e,a +0e32: 6f ret + +0e33: e8 00 mov a,#$00 +0e35: c5 53 05 mov $0553,a +0e38: e4 7c mov a,$7c +0e3a: f0 03 beq $0e3f +0e3c: 3f ec 0d call $0dec +0e3f: e8 ff mov a,#$ff +0e41: c4 7c mov $7c,a +0e43: bc inc a +0e44: c4 7d mov $7d,a +0e46: c4 80 mov $80,a +0e48: c4 7b mov $7b,a +0e4a: c5 48 05 mov $0548,a +0e4d: c5 50 05 mov $0550,a +0e50: e9 53 05 mov x,$0553 +0e53: d0 06 bne $0e5b +0e55: c5 4f 05 mov $054f,a +0e58: 3f a1 0b call $0ba1 +0e5b: cd 10 mov x,#$10 +0e5d: e4 15 mov a,$15 +0e5f: 28 0f and a,#$0f +0e61: 3f 5e 0f call $0f5e +0e64: 3f ff 0e call $0eff +0e67: 3f 4a 0f call $0f4a +0e6a: d0 30 bne $0e9c +0e6c: 68 ff cmp a,#$ff +0e6e: f0 56 beq $0ec6 +0e70: 68 00 cmp a,#$00 +0e72: f0 0d beq $0e81 +0e74: fb 29 mov y,$29+x +0e76: d0 02 bne $0e7a +0e78: d4 29 mov $29+x,a +0e7a: f4 29 mov a,$29+x +0e7c: 9c dec a +0e7d: d4 29 mov $29+x,a +0e7f: f0 0a beq $0e8b +0e81: 3f 4a 0f call $0f4a +0e84: d4 17 mov $17+x,a +0e86: dd mov a,y +0e87: d4 18 mov $18+x,a +0e89: 2f dc bra $0e67 +0e8b: 3f 4a 0f call $0f4a +0e8e: 2f d7 bra $0e67 +0e90: d4 29 mov $29+x,a +0e92: 3f 4a 0f call $0f4a +0e95: d4 17 mov $17+x,a +0e97: dd mov a,y +0e98: d4 18 mov $18+x,a +0e9a: 2f cb bra $0e67 +0e9c: da 00 movw $00,ya +0e9e: 8d 00 mov y,#$00 +0ea0: 8f 01 02 mov $02,#$01 +0ea3: c8 10 cmp x,#$10 +0ea5: d0 03 bne $0eaa +0ea7: 8f 08 02 mov $02,#$08 +0eaa: f7 00 mov a,($00)+y +0eac: d5 82 00 mov $0082+x,a +0eaf: fc inc y +0eb0: f7 00 mov a,($00)+y +0eb2: d5 83 00 mov $0083+x,a +0eb5: fc inc y +0eb6: e8 00 mov a,#$00 +0eb8: d4 a4 mov $a4+x,a +0eba: d4 a5 mov $a5+x,a +0ebc: d5 05 05 mov $0505+x,a +0ebf: 3d inc x +0ec0: 3d inc x +0ec1: 8b 02 dec $02 +0ec3: d0 e5 bne $0eaa +0ec5: 6f ret + +0ec6: c8 10 cmp x,#$10 +0ec8: 90 11 bcc $0edb +0eca: 4d push x +0ecb: 09 7c 0d or ($0d),($7c) +0ece: e8 00 mov a,#$00 +0ed0: c4 7c mov $7c,a +0ed2: cd 0f mov x,#$0f +0ed4: d4 92 mov $92+x,a +0ed6: 1d dec x +0ed7: 10 fb bpl $0ed4 +0ed9: ce pop x +0eda: 6f ret + +0edb: 09 7e 0d or ($0d),($7e) +0ede: e4 7e mov a,$7e +0ee0: 48 ff eor a,#$ff +0ee2: 24 7b and a,$7b +0ee4: c4 7b mov $7b,a +0ee6: e4 7e mov a,$7e +0ee8: 48 ff eor a,#$ff +0eea: 24 80 and a,$80 +0eec: c4 80 mov $80,a +0eee: e8 00 mov a,#$00 +0ef0: d4 83 mov $83+x,a +0ef2: 4d push x +0ef3: 7d mov a,x +0ef4: 08 10 or a,#$10 +0ef6: 5d mov x,a +0ef7: f5 02 02 mov a,$0202+x +0efa: 3f cb 07 call $07cb +0efd: ce pop x +0efe: 6f ret + +0eff: 4d push x +0f00: 8f 01 00 mov $00,#$01 +0f03: c8 10 cmp x,#$10 +0f05: d0 03 bne $0f0a +0f07: 8f 08 00 mov $00,#$08 +0f0a: e8 02 mov a,#$02 +0f0c: d5 a3 03 mov $03a3+x,a +0f0f: e8 40 mov a,#$40 +0f11: d5 c3 02 mov $02c3+x,a +0f14: e8 60 mov a,#$60 +0f16: d5 43 02 mov $0243+x,a +0f19: e8 00 mov a,#$00 +0f1b: d5 c3 03 mov $03c3+x,a +0f1e: d5 c2 03 mov $03c2+x,a +0f21: d5 82 02 mov $0282+x,a +0f24: d5 a2 02 mov $02a2+x,a +0f27: d5 e2 02 mov $02e2+x,a +0f2a: d5 25 04 mov $0425+x,a +0f2d: d5 a4 04 mov $04a4+x,a +0f30: d5 23 03 mov $0323+x,a +0f33: d5 a2 03 mov $03a2+x,a +0f36: d5 e2 03 mov $03e2+x,a +0f39: d5 02 04 mov $0402+x,a +0f3c: c8 11 cmp x,#$11 +0f3e: b0 02 bcs $0f42 +0f40: d4 57 mov $57+x,a +0f42: 3d inc x +0f43: 3d inc x +0f44: 8b 00 dec $00 +0f46: d0 c2 bne $0f0a +0f48: ce pop x +0f49: 6f ret + +0f4a: e7 17 mov a,($17+x) +0f4c: bb 17 inc $17+x +0f4e: d0 02 bne $0f52 +0f50: bb 18 inc $18+x +0f52: 2d push a +0f53: e7 17 mov a,($17+x) +0f55: bb 17 inc $17+x +0f57: d0 02 bne $0f5b +0f59: bb 18 inc $18+x +0f5b: fd mov y,a +0f5c: ae pop a +0f5d: 6f ret + +; load song from A +0f5e: 1c asl a +0f5f: fd mov y,a +0f60: f6 00 11 mov a,$1100+y +0f63: d4 17 mov $17+x,a +0f65: f6 01 11 mov a,$1101+y +0f68: d4 18 mov $18+x,a +0f6a: 6f ret + +0f6b: e9 f6 00 mov x,$00f6 +0f6e: d0 01 bne $0f71 +0f70: 3d inc x +0f71: c9 4f 05 mov $054f,x +0f74: e5 4d 05 mov a,$054d +0f77: 3f 39 0d call $0d39 +0f7a: c5 51 05 mov $0551,a +0f7d: dd mov a,y +0f7e: c5 52 05 mov $0552,a +0f81: e8 00 mov a,#$00 +0f83: c5 4e 05 mov $054e,a +0f86: c4 0a mov $0a,a +0f88: c4 0b mov $0b,a +0f8a: e8 ff mov a,#$ff +0f8c: c5 53 05 mov $0553,a +0f8f: 5f 38 0e jmp $0e38 + +0f92: e5 f5 00 mov a,$00f5 +0f95: c5 4d 05 mov $054d,a +0f98: 5f a1 0b jmp $0ba1 + +0f9b: cd 0e mov x,#$0e +0f9d: 8f 80 00 mov $00,#$80 +0fa0: e4 00 mov a,$00 +0fa2: 24 7b and a,$7b +0fa4: f0 07 beq $0fad +0fa6: 4b 00 lsr $00 +0fa8: 1d dec x +0fa9: 1d dec x +0faa: 10 f4 bpl $0fa0 +0fac: 6f ret + +0fad: 09 00 7b or ($7b),($00) +0fb0: e4 15 mov a,$15 +0fb2: 28 0f and a,#$0f +0fb4: 4d push x +0fb5: e5 f5 00 mov a,$00f5 +0fb8: 60 clrc +0fb9: 88 08 adc a,#$08 +0fbb: 3f 61 0e call $0e61 +0fbe: ce pop x +0fbf: e8 40 mov a,#$40 +0fc1: d4 34 mov $34+x,a +0fc3: e8 00 mov a,#$00 +0fc5: d4 33 mov $33+x,a +0fc7: bc inc a +0fc8: d4 c5 mov $c5+x,a +0fca: bc inc a +0fcb: d4 a5 mov $a5+x,a +0fcd: 6f ret + +0fce: ad 00 cmp y,#$00 +0fd0: f0 07 beq $0fd9 +0fd2: e5 fe 00 mov a,$00fe +0fd5: f0 fb beq $0fd2 +0fd7: fe f9 dbnz y,$0fd2 +0fd9: e4 7f mov a,$7f +0fdb: 08 02 or a,#$02 +0fdd: fd mov y,a +0fde: e4 00 mov a,$00 +0fe0: 3f 23 10 call $1023 +0fe3: fc inc y +0fe4: e4 01 mov a,$01 +0fe6: 3f 23 10 call $1023 +0fe9: 6f ret + +0fea: db $0c,$1c,$4c,$5c,$2d,$3d,$6c,$2c +0ff2: db $3c,$0d,$4d,$5d,$0f,$1f,$2f,$3f +0ffa: db $4f,$5f,$6f,$7f + +0ffe: 8d 0b mov y,#$0b +1000: ad 07 cmp y,#$07 +1002: f0 07 beq $100b +1004: 90 08 bcc $100e +1006: 69 a3 a2 cmp ($a2),($a3) +1009: d0 0f bne $101a +100b: e3 a2 0c bbs7 $a2,$101a +100e: f6 e9 0f mov a,$0fe9+y +1011: c5 f2 00 mov $00f2,a +1014: f6 09 00 mov a,$0009+y +1017: c5 f3 00 mov $00f3,a +101a: fe e4 dbnz y,$1000 +101c: 8f 00 0c mov $0c,#$00 +101f: 8f 00 0d mov $0d,#$00 +1022: 6f ret + +1023: cc f2 00 mov $00f2,y +1026: c5 f3 00 mov $00f3,a +1029: 6f ret + +102a: db $60,$60,$00,$00,$00,$00,$20,$00 +1032: db $00,$00,$00,$3c,$7f,$00,$00,$00 +103a: db $00,$00,$00,$00 + +103e: 8d 0b mov y,#$0b +1040: f6 29 10 mov a,$1029+y +1043: d6 09 00 mov $0009+y,a +1046: fe f8 dbnz y,$1040 +1048: 8d 09 mov y,#$09 +104a: f6 f4 0f mov a,$0ff4+y +104d: c5 f2 00 mov $00f2,a +1050: f6 34 10 mov a,$1034+y +1053: c5 f3 00 mov $00f3,a +1056: fe f2 dbnz y,$104a +1058: 6f ret + +1059: e8 00 mov a,#$00 +105b: 3f 5c 09 call $095c +105e: 3f 3e 10 call $103e +1061: cd 10 mov x,#$10 +1063: 8f 00 7f mov $7f,#$00 +1066: 8f 01 7e mov $7e,#$01 +1069: e8 00 mov a,#$00 +106b: 3f cb 07 call $07cb +106e: 3d inc x +106f: 3d inc x +1070: 60 clrc +1071: 98 10 7f adc $7f,#$10 +1074: 0b 7e asl $7e +1076: d0 f1 bne $1069 +1078: 6f ret + +1079: e8 00 mov a,#$00 +107b: 5d mov x,a +107c: af mov (x)+,a +107d: c8 e8 cmp x,#$e8 +107f: d0 fb bne $107c +1081: cd 02 mov x,#$02 +1083: d8 01 mov $01,x +1085: fd mov y,a +1086: d7 00 mov ($00)+y,a +1088: fe fc dbnz y,$1086 +108a: ab 01 inc $01 +108c: 78 06 01 cmp $01,#$06 +108f: d0 f5 bne $1086 +1091: 8d 6c mov y,#$6c +1093: e8 e0 mov a,#$e0 +1095: 3f 23 10 call $1023 +1098: e8 00 mov a,#$00 +109a: 3f 5c 09 call $095c +109d: 3f 3e 10 call $103e +10a0: cd 10 mov x,#$10 +10a2: 8f 00 7f mov $7f,#$00 +10a5: 8f 01 7e mov $7e,#$01 +10a8: e8 00 mov a,#$00 +10aa: 3f cb 07 call $07cb +10ad: 3d inc x +10ae: 3d inc x +10af: 60 clrc +10b0: 98 10 7f adc $7f,#$10 +10b3: 0b 7e asl $7e +10b5: d0 f1 bne $10a8 +10b7: e8 fe mov a,#$fe +10b9: c5 45 05 mov $0545,a +10bc: e8 60 mov a,#$60 +10be: c5 4d 05 mov $054d,a +10c1: e8 19 mov a,#$19 +10c3: cd 12 mov x,#$12 +10c5: d4 32 mov $32+x,a +10c7: 1d dec x +10c8: 1d dec x +10c9: d0 fa bne $10c5 +10cb: e8 30 mov a,#$30 +10cd: c5 f1 00 mov $00f1,a +10d0: e8 10 mov a,#$10 +10d2: c5 fb 00 mov $00fb,a +10d5: e8 32 mov a,#$32 +10d7: c5 f1 00 mov $00f1,a + +10da: 6f ret diff --git a/snes/NSPC/Pure Sound/VS Collection ($0600).bin b/snes/NSPC/Pure Sound/VS Collection ($0600).bin new file mode 100644 index 00000000..47a7bea2 Binary files /dev/null and b/snes/NSPC/Pure Sound/VS Collection ($0600).bin differ diff --git a/snes/NSPC/Pure Sound/VS Collection.s b/snes/NSPC/Pure Sound/VS Collection.s new file mode 100644 index 00000000..e2bc240e --- /dev/null +++ b/snes/NSPC/Pure Sound/VS Collection.s @@ -0,0 +1,1716 @@ +0600: 20 clrp +0601: cd cf mov x,#$cf +0603: bd mov sp,x +0604: e8 00 mov a,#$00 +0606: 5d mov x,a +0607: af mov (x)+,a +0608: c8 e0 cmp x,#$e0 +060a: d0 fb bne $0607 +060c: e8 00 mov a,#$00 +060e: 8d 01 mov y,#$01 +0610: da 1c movw $1c,ya +0612: 8d 00 mov y,#$00 +0614: e8 00 mov a,#$00 +0616: d7 1c mov ($1c)+y,a +0618: 3a 1c incw $1c +061a: 8d 06 mov y,#$06 +061c: e8 00 mov a,#$00 +061e: 5a 1c cmpw ya,$1c +0620: d0 f0 bne $0612 +0622: 8d 00 mov y,#$00 +0624: e8 00 mov a,#$00 +0626: da 1c movw $1c,ya +0628: bc inc a +0629: 3f b7 0c call $0cb7 +062c: a2 4a set5 $4a +062e: e8 50 mov a,#$50 +0630: 8d 0c mov y,#$0c +0632: 3f 6f 0f call $0f6f +0635: 8d 1c mov y,#$1c +0637: 3f 6f 0f call $0f6f +063a: e8 05 mov a,#$05 +063c: 8d 5d mov y,#$5d +063e: 3f 6f 0f call $0f6f +0641: e8 f0 mov a,#$f0 +0643: c5 f1 00 mov $00f1,a +0646: e8 10 mov a,#$10 +0648: c5 fa 00 mov $00fa,a +064b: c4 55 mov $55,a +064d: e8 01 mov a,#$01 +064f: c5 f1 00 mov $00f1,a +0652: e8 00 mov a,#$00 +0654: c5 92 03 mov $0392,a +0657: c5 00 02 mov $0200,a +065a: e8 04 mov a,#$04 +065c: c5 90 03 mov $0390,a +065f: 8f 01 42 mov $42,#$01 +0662: 3f e6 06 call $06e6 +0665: e8 4c mov a,#$4c +0667: c5 f2 00 mov $00f2,a +066a: e4 47 mov a,$47 +066c: c5 f3 00 mov $00f3,a +066f: e8 5c mov a,#$5c +0671: c5 f2 00 mov $00f2,a +0674: e4 48 mov a,$48 +0676: c5 f3 00 mov $00f3,a +0679: 3f ce 12 call $12ce +067c: e8 00 mov a,#$00 +067e: c4 47 mov $47,a +0680: c4 48 mov $48,a +0682: ec fd 00 mov y,$00fd +0685: f0 fb beq $0682 +0687: 6d push y +0688: e8 40 mov a,#$40 +068a: cf mul ya +068b: 60 clrc +068c: 85 93 03 adc a,$0393 +068f: c5 93 03 mov $0393,a +0692: 90 03 bcc $0697 +0694: ac 91 03 inc $0391 +0697: e8 20 mov a,#$20 +0699: ee pop y +069a: 6d push y +069b: cf mul ya +069c: 60 clrc +069d: 84 45 adc a,$45 +069f: c4 45 mov $45,a +06a1: 90 07 bcc $06aa +06a3: 69 4f 4e cmp ($4e),($4f) +06a6: f0 02 beq $06aa +06a8: ab 4e inc $4e +06aa: e4 55 mov a,$55 +06ac: ee pop y +06ad: cf mul ya +06ae: 60 clrc +06af: 84 54 adc a,$54 +06b1: c4 54 mov $54,a +06b3: 90 0d bcc $06c2 +06b5: e5 92 03 mov a,$0392 +06b8: d0 1e bne $06d8 +06ba: 3f 71 09 call $0971 +06bd: 3f 42 07 call $0742 +06c0: 2f 16 bra $06d8 +06c2: e4 17 mov a,$17 +06c4: f0 12 beq $06d8 +06c6: cd 00 mov x,#$00 +06c8: 8f 01 49 mov $49,#$01 +06cb: f4 33 mov a,$33+x +06cd: f0 03 beq $06d2 +06cf: 3f 2d 0e call $0e2d +06d2: 3d inc x +06d3: 3d inc x +06d4: 0b 49 asl $49 +06d6: d0 f3 bne $06cb +06d8: e5 91 03 mov a,$0391 +06db: f0 06 beq $06e3 +06dd: 3f 7b 10 call $107b +06e0: 3f dc 07 call $07dc +06e3: 5f 62 06 jmp $0662 + +06e6: 8d 07 mov y,#$07 +06e8: ad 05 cmp y,#$05 +06ea: f0 07 beq $06f3 +06ec: b0 08 bcs $06f6 +06ee: 69 4f 4e cmp ($4e),($4f) +06f1: d0 11 bne $0704 +06f3: e3 4e 0e bbs7 $4e,$0704 +06f6: f6 06 07 mov a,$0706+y +06f9: c5 f2 00 mov $00f2,a +06fc: f6 0d 07 mov a,$070d+y +06ff: 5d mov x,a +0700: e6 mov a,(x) +0701: c5 f3 00 mov $00f3,a +0704: fe e2 dbnz y,$06e8 +0706: 6f ret + +0707: 2c 3c 0d rol $0d3c +070a: 4d push x +070b: 6c 3d 2d ror $2d3d +070e: 63 65 50 bbs3 $65,$0761 +0711: 4c 4a 4b lsr $4b4a +0714: 4d push x +0715: f5 80 03 mov a,$0380+x +0718: f0 06 beq $0720 +071a: 9c dec a +071b: d5 80 03 mov $0380+x,a +071e: 2f 21 bra $0741 +0720: f5 80 02 mov a,$0280+x +0723: f0 1c beq $0741 +0725: 30 04 bmi $072b +0727: 8d 00 mov y,#$00 +0729: 2f 02 bra $072d +072b: 8d ff mov y,#$ff +072d: da 1c movw $1c,ya +072f: f5 91 02 mov a,$0291+x +0732: fd mov y,a +0733: f5 90 02 mov a,$0290+x +0736: 7a 1c addw ya,$1c +0738: da 1c movw $1c,ya +073a: d5 90 02 mov $0290+x,a +073d: dd mov a,y +073e: d5 91 02 mov $0291+x,a +0741: 6f ret + +0742: e4 17 mov a,$17 +0744: c5 f4 00 mov $00f4,a +0747: e5 f4 00 mov a,$00f4 +074a: 65 f4 00 cmp a,$00f4 +074d: d0 f8 bne $0747 +074f: 68 f9 cmp a,#$f9 +0751: f0 1b beq $076e +0753: 68 fa cmp a,#$fa +0755: f0 28 beq $077f +0757: 68 f7 cmp a,#$f7 +0759: f0 31 beq $078c +075b: 68 f8 cmp a,#$f8 +075d: f0 3e beq $079d +075f: 68 fb cmp a,#$fb +0761: f0 47 beq $07aa +0763: 68 fc cmp a,#$fc +0765: f0 4f beq $07b6 +0767: 68 fd cmp a,#$fd +0769: f0 57 beq $07c2 +076b: c4 15 mov $15,a +076d: 6f ret + +076e: 65 00 02 cmp a,$0200 +0771: f0 fa beq $076d +0773: c5 00 02 mov $0200,a +0776: e8 7e mov a,#$7e +0778: c4 43 mov $43,a +077a: e8 ff mov a,#$ff +077c: c4 48 mov $48,a +077e: 6f ret + +077f: 65 00 02 cmp a,$0200 +0782: f0 e9 beq $076d +0784: c5 00 02 mov $0200,a +0787: e8 fe mov a,#$fe +0789: c4 43 mov $43,a +078b: 6f ret + +078c: 65 00 02 cmp a,$0200 +078f: f0 dc beq $076d +0791: c5 00 02 mov $0200,a +0794: e8 d8 mov a,#$d8 +0796: c4 43 mov $43,a +0798: e8 ff mov a,#$ff +079a: c4 48 mov $48,a +079c: 6f ret + +079d: 65 00 02 cmp a,$0200 +07a0: f0 cb beq $076d +07a2: c5 00 02 mov $0200,a +07a5: e8 fe mov a,#$fe +07a7: c4 43 mov $43,a +07a9: 6f ret + +07aa: 65 00 02 cmp a,$0200 +07ad: f0 be beq $076d +07af: c5 00 02 mov $0200,a +07b2: 8f 00 42 mov $42,#$00 +07b5: 6f ret + +07b6: 65 00 02 cmp a,$0200 +07b9: f0 b2 beq $076d +07bb: c5 00 02 mov $0200,a +07be: 8f 01 42 mov $42,#$01 +07c1: 6f ret + +07c2: 65 00 02 cmp a,$0200 +07c5: f0 a6 beq $076d +07c7: c5 00 02 mov $0200,a +07ca: e5 9f 03 mov a,$039f +07cd: f0 01 beq $07d0 +07cf: 6f ret + +07d0: ac 9f 03 inc $039f +07d3: 8f c8 5c mov $5c,#$c8 +07d6: 8f 20 5d mov $5d,#$20 +07d9: 5f 15 0c jmp $0c15 + +07dc: e5 f5 00 mov a,$00f5 +07df: 65 f5 00 cmp a,$00f5 +07e2: d0 f8 bne $07dc +07e4: 68 00 cmp a,#$00 +07e6: f0 18 beq $0800 +07e8: 68 c1 cmp a,#$c1 +07ea: f0 37 beq $0823 +07ec: 68 c2 cmp a,#$c2 +07ee: f0 4a beq $083a +07f0: 68 fd cmp a,#$fd +07f2: d0 07 bne $07fb +07f4: cd 05 mov x,#$05 +07f6: 3f 54 08 call $0854 +07f9: 2f 05 bra $0800 +07fb: cd 00 mov x,#$00 +07fd: 3f 2d 10 call $102d +0800: e5 f6 00 mov a,$00f6 +0803: 65 f6 00 cmp a,$00f6 +0806: d0 f8 bne $0800 +0808: 68 00 cmp a,#$00 +080a: f0 05 beq $0811 +080c: cd 01 mov x,#$01 +080e: 3f 2d 10 call $102d +0811: e5 f7 00 mov a,$00f7 +0814: 65 f7 00 cmp a,$00f7 +0817: d0 f8 bne $0811 +0819: 68 00 cmp a,#$00 +081b: f0 05 beq $0822 +081d: cd 02 mov x,#$02 +081f: 3f 2d 10 call $102d +0822: 6f ret + +0823: 2d push a +0824: e5 92 03 mov a,$0392 +0827: d0 08 bne $0831 +0829: ac 92 03 inc $0392 +082c: cd 07 mov x,#$07 +082e: 3f 54 08 call $0854 +0831: ae pop a +0832: cd 00 mov x,#$00 +0834: 3f 2d 10 call $102d +0837: 5f 00 08 jmp $0800 + +083a: e5 92 03 mov a,$0392 +083d: f0 14 beq $0853 +083f: 8c 92 03 dec $0392 +0842: cd 30 mov x,#$30 +0844: e8 07 mov a,#$07 +0846: c9 f2 00 mov $00f2,x +0849: c5 f3 00 mov $00f3,a +084c: 3d inc x +084d: c9 f2 00 mov $00f2,x +0850: c5 f3 00 mov $00f3,a +0853: 6f ret + +0854: d8 13 mov $13,x +0856: 7d mov a,x +0857: 1c asl a +0858: 1c asl a +0859: 1c asl a +085a: 1c asl a +085b: 5d mov x,a +085c: e8 00 mov a,#$00 +085e: c9 f2 00 mov $00f2,x +0861: c5 f3 00 mov $00f3,a +0864: 3d inc x +0865: c9 f2 00 mov $00f2,x +0868: c5 f3 00 mov $00f3,a +086b: f8 13 mov x,$13 +086d: 1d dec x +086e: 10 e4 bpl $0854 +0870: 6f ret + +0871: 68 ff cmp a,#$ff +0873: d0 1e bne $0893 +0875: e8 5c mov a,#$5c +0877: c5 f2 00 mov $00f2,a +087a: e8 ff mov a,#$ff +087c: c5 f3 00 mov $00f3,a +087f: e8 01 mov a,#$01 +0881: 3f b7 0c call $0cb7 +0884: 3f d0 0f call $0fd0 +0887: e8 00 mov a,#$00 +0889: c4 00 mov $00,a +088b: c4 01 mov $01,a +088d: c4 02 mov $02,a +088f: c4 21 mov $21,a +0891: c4 16 mov $16,a +0893: 68 00 cmp a,#$00 +0895: d0 0f bne $08a6 +0897: c4 17 mov $17,a +0899: e4 21 mov a,$21 +089b: 48 ff eor a,#$ff +089d: cd 5c mov x,#$5c +089f: c9 f2 00 mov $00f2,x +08a2: c5 f3 00 mov $00f3,a +08a5: 6f ret + +08a6: c4 17 mov $17,a ; load song +08a8: 9c dec a +08a9: 1c asl a +08aa: 2d push a +08ab: e5 fa 04 mov a,$04fa ; $1c00 +08ae: c4 1e mov $1e,a +08b0: e5 fb 04 mov a,$04fb +08b3: c4 1f mov $1f,a +08b5: ee pop y +08b6: f7 1e mov a,($1e)+y +08b8: 2d push a +08b9: fc inc y +08ba: f7 1e mov a,($1e)+y +08bc: fd mov y,a +08bd: ae pop a +08be: da 1e movw $1e,ya +08c0: 60 clrc +08c1: 88 03 adc a,#$03 +08c3: c5 d2 00 mov $00d2,a +08c6: dd mov a,y +08c7: 88 00 adc a,#$00 +08c9: c5 d3 00 mov $00d3,a +08cc: 8d 00 mov y,#$00 +08ce: f7 1e mov a,($1e)+y +08d0: c4 4f mov $4f,a +08d2: fc inc y +08d3: f7 1e mov a,($1e)+y +08d5: c4 50 mov $50,a +08d7: fc inc y +08d8: f7 1e mov a,($1e)+y +08da: c4 51 mov $51,a +08dc: fc inc y +08dd: dd mov a,y +08de: 60 clrc +08df: 88 a0 adc a,#$a0 +08e1: fd mov y,a +08e2: f7 1e mov a,($1e)+y +08e4: d6 8f ff mov $ff8f+y,a +08e7: fc inc y +08e8: ad b3 cmp y,#$b3 +08ea: d0 f6 bne $08e2 +08ec: e4 4f mov a,$4f +08ee: 3f b7 0c call $0cb7 +08f1: e4 51 mov a,$51 +08f3: 8d 08 mov y,#$08 +08f5: cf mul ya +08f6: 5d mov x,a +08f7: 8d 0f mov y,#$0f +08f9: f5 8b 0f mov a,$0f8b+x +08fc: 3f 6f 0f call $0f6f +08ff: 3d inc x +0900: dd mov a,y +0901: 60 clrc +0902: 88 10 adc a,#$10 +0904: fd mov y,a +0905: 10 f2 bpl $08f9 +0907: cd 00 mov x,#$00 +0909: 8f 01 49 mov $49,#$01 +090c: d8 46 mov $46,x +090e: f5 11 02 mov a,$0211+x +0911: d0 05 bne $0918 +0913: e8 00 mov a,#$00 +0915: 3f 02 0b call $0b02 +0918: e8 00 mov a,#$00 +091a: d4 a2 mov $a2+x,a +091c: bc inc a +091d: d4 72 mov $72+x,a +091f: 3d inc x +0920: 3d inc x +0921: 0b 49 asl $49 +0923: d0 e7 bne $090c +0925: 8f 01 20 mov $20,#$01 +0928: e4 21 mov a,$21 +092a: 48 ff eor a,#$ff +092c: 0e 48 00 tset1 $0048 +092f: 6f ret + +0930: 8b 20 dec $20 +0932: cd 0e mov x,#$0e +0934: 8f 80 49 mov $49,#$80 +0937: e8 ff mov a,#$ff +0939: d5 01 03 mov $0301+x,a +093c: e8 0a mov a,#$0a +093e: 3f a4 0b call $0ba4 +0941: d4 92 mov $92+x,a +0943: d5 11 02 mov $0211+x,a +0946: d5 f0 02 mov $02f0+x,a +0949: d4 c3 mov $c3+x,a +094b: d5 80 02 mov $0280+x,a +094e: 1d dec x +094f: 1d dec x +0950: 4b 49 lsr $49 +0952: d0 e3 bne $0937 +0954: c4 44 mov $44,a +0956: c4 5c mov $5c,a +0958: c4 6a mov $6a,a +095a: c4 56 mov $56,a +095c: c4 52 mov $52,a +095e: c4 61 mov $61,a +0960: c5 9f 03 mov $039f,a +0963: c5 00 02 mov $0200,a +0966: 8f c0 5b mov $5b,#$c0 +0969: 8f 20 55 mov $55,#$20 +096c: e8 fe mov a,#$fe +096e: c4 43 mov $43,a +0970: 6f ret + +0971: eb 16 mov y,$16 +0973: e4 15 mov a,$15 +0975: c4 16 mov $16,a +0977: 7e 15 cmp y,$15 +0979: f0 03 beq $097e +097b: 5f 71 08 jmp $0871 + +097e: e4 17 mov a,$17 +0980: d0 01 bne $0983 +0982: 6f ret + +0983: e4 20 mov a,$20 +0985: d0 a9 bne $0930 +0987: cd 00 mov x,#$00 +0989: d8 60 mov $60,x +098b: 8f 01 49 mov $49,#$01 +098e: d8 46 mov $46,x +0990: f4 33 mov a,$33+x +0992: f0 0a beq $099e +0994: 9b 72 dec $72+x +0996: d0 03 bne $099b +0998: 5f 19 0a jmp $0a19 + +099b: 3f a8 0d call $0da8 +099e: 3d inc x +099f: 3d inc x +09a0: 0b 49 asl $49 +09a2: d0 ea bne $098e +09a4: e4 5c mov a,$5c +09a6: f0 0e beq $09b6 +09a8: ba 5e movw ya,$5e +09aa: 7a 5a addw ya,$5a +09ac: 6e 5c 02 dbnz $5c,$09b1 +09af: ba 5c movw ya,$5c +09b1: da 5a movw $5a,ya +09b3: 8f ff 60 mov $60,#$ff +09b6: cd 00 mov x,#$00 +09b8: 8f 01 49 mov $49,#$01 +09bb: f4 33 mov a,$33+x +09bd: f0 03 beq $09c2 +09bf: 3f 1b 0d call $0d1b +09c2: 3d inc x +09c3: 3d inc x +09c4: 0b 49 asl $49 +09c6: d0 f3 bne $09bb +09c8: 6f ret + +; vcmd fb - repeat start +09c9: f4 32 mov a,$32+x +09cb: d4 82 mov $82+x,a +09cd: f4 33 mov a,$33+x +09cf: d4 83 mov $83+x,a +09d1: 5f 19 0a jmp $0a19 + +; vcmd fe - repeat end +09d4: f4 92 mov a,$92+x +09d6: f0 0c beq $09e4 +09d8: 68 01 cmp a,#$01 +09da: d0 0d bne $09e9 +09dc: 9b 92 dec $92+x +09de: 3f f8 0a call $0af8 +09e1: 5f 19 0a jmp $0a19 + +09e4: 3f f8 0a call $0af8 +09e7: d4 92 mov $92+x,a +09e9: 9b 92 dec $92+x +09eb: f4 82 mov a,$82+x +09ed: d4 32 mov $32+x,a +09ef: f4 83 mov a,$83+x +09f1: d4 33 mov $33+x,a +09f3: 5f 19 0a jmp $0a19 + +; vcmd fc - jump +09f6: 3f f8 0a call $0af8 +09f9: 2d push a +09fa: 3f f8 0a call $0af8 +09fd: ae pop a +09fe: d4 32 mov $32+x,a +0a00: db 33 mov $33+x,y +0a02: 5f 19 0a jmp $0a19 + +; vcmd ff - stop +0a05: e8 00 mov a,#$00 +0a07: d4 32 mov $32+x,a +0a09: d4 33 mov $33+x,a +0a0b: 5f 9e 09 jmp $099e + +0a0e: 8f 00 17 mov $17,#$00 +0a11: e4 21 mov a,$21 +0a13: 48 ff eor a,#$ff +0a15: 0e 48 00 tset1 $0048 +0a18: 6f ret + +; handle a note/command vcmd +0a19: 3f f8 0a call $0af8 +0a1c: f0 f0 beq $0a0e +0a1e: 68 e0 cmp a,#$e0 ; main vcmds +0a20: 90 1d bcc $0a3f +0a22: 68 ff cmp a,#$ff - stop +0a24: f0 df beq $0a05 +0a26: 68 fb cmp a,#$fb ; repeat start +0a28: f0 9f beq $09c9 +0a2a: 68 fa cmp a,#$fa +0a2c: f0 4c beq $0a7a +0a2e: 68 f9 cmp a,#$f9 ; slur +0a30: f0 4d beq $0a7f +0a32: 68 fe cmp a,#$fe ; repeat end +0a34: f0 9e beq $09d4 +0a36: 68 fc cmp a,#$fc ; jump +0a38: f0 bc beq $09f6 +0a3a: 3f 9a 0a call $0a9a +0a3d: 2f da bra $0a19 +0a3f: 68 55 cmp a,#$55 ; rest/tie (56) +0a41: f0 2f beq $0a72 +0a43: 3f 95 0e call $0e95 ; otherwise, is a note (different than normal N-SPC) +0a46: 3f f8 0a call $0af8 +0a49: 28 7f and a,#$7f +0a4b: d4 72 mov $72+x,a +0a4d: dd mov a,y +0a4e: 10 05 bpl $0a55 +0a50: f5 10 03 mov a,$0310+x +0a53: 2f 03 bra $0a58 +0a55: f5 11 03 mov a,$0311+x +0a58: d5 01 03 mov $0301+x,a +0a5b: 13 44 06 bbc0 $44,$0a64 +0a5e: 12 44 clr0 $44 +0a60: f4 b3 mov a,$b3+x +0a62: 2f 02 bra $0a66 +0a64: f4 b2 mov a,$b2+x +0a66: fb 72 mov y,$72+x +0a68: cf mul ya +0a69: dd mov a,y +0a6a: d0 01 bne $0a6d +0a6c: bc inc a +0a6d: d4 73 mov $73+x,a +0a6f: 5f 9e 09 jmp $099e + +; vcmd 55/56 - rest/tie +0a72: 3f f8 0a call $0af8 +0a75: d4 72 mov $72+x,a +0a77: 5f 9e 09 jmp $099e + +; vcmd fa +0a7a: 02 44 set0 $44 +0a7c: 5f 19 0a jmp $0a19 + +; vcmd f9 - slur +0a7f: 3f f8 0a call $0af8 +0a82: 3f ac 0e call $0eac +0a85: 3f f8 0a call $0af8 +0a88: 28 7f and a,#$7f +0a8a: d4 72 mov $72+x,a +0a8c: f4 b2 mov a,$b2+x +0a8e: fb 72 mov y,$72+x +0a90: cf mul ya +0a91: dd mov a,y +0a92: d0 01 bne $0a95 +0a94: bc inc a +0a95: d4 73 mov $73+x,a +0a97: 5f 9e 09 jmp $099e + +; dispatch vcmd in A (e0-ff) +0a9a: 80 setc +0a9b: a8 e0 sbc a,#$e0 +0a9d: 1c asl a +0a9e: fd mov y,a +0a9f: f6 ba 0a mov a,$0aba+y +0aa2: 2d push a +0aa3: f6 b9 0a mov a,$0ab9+y +0aa6: 2d push a +0aa7: dd mov a,y +0aa8: 5c lsr a +0aa9: fd mov y,a +0aaa: f6 e3 0a mov a,$0ae3+y +0aad: f0 08 beq $0ab7 +0aaf: e7 32 mov a,($32+x) +0ab1: bb 32 inc $32+x +0ab3: d0 02 bne $0ab7 +0ab5: bb 33 inc $33+x +0ab7: fd mov y,a +0ab8: 6f ret + +; vcmd dispatch table +0ab9: dw $0b02 ; e0 - set instrument +0abb: dw $0ba4 ; e1 - pan +0abd: dw $0bbd ; e2 - pan fade +0abf: dw $0bec ; e3 - vibrato on +0ac1: dw $0bff ; e4 - vibrato off +0ac3: dw $0c04 ; e5 - master volume +0ac5: dw $0c0e ; e6 - master volume fade +0ac7: dw $0c20 ; e7 - tempo +0ac9: dw $0c23 ; e8 - tempo fade +0acb: dw $0c35 ; e9 - global transpose +0acd: dw $0c38 ; ea - per-voice transpose +0acf: dw $0c46 ; eb - set ASDR +0ad1: dw $0c3c ; ec - set pitch +0ad3: dw $0c66 ; ed - volume +0ad5: dw $0c70 ; ee - nop +0ad7: dw $0af8 ; ef - skip to next byte +0ad9: dw $0c71 ; f0 - vibrato +0adb: dw $0c7b ; f1 - set echo (1) +0add: dw $0caa ; f2 - set echo (2) +0adf: dw $0c89 ; f3 - set echo (3) +0ae1: dw $0bd6 ; f4 - set note dur/vel + +; vcmd lengths +0ae3: db $01,$01,$02,$02,$00,$01,$02,$01 ; e0-e7 +0aeb: db $02,$01,$01,$02,$02,$02,$02,$00 ; e8-ef +0af3: db $02,$02,$01,$03,$02 ; f0-f4 + +; vcmd ef - skip to next byte +0af8: e7 32 mov a,($32+x) +0afa: bb 32 inc $32+x +0afc: d0 02 bne $0b00 +0afe: bb 33 inc $33+x +0b00: fd mov y,a +0b01: 6f ret + +; vcmd e0 - set instrument +0b02: d5 11 02 mov $0211+x,a +0b05: fd mov y,a +0b06: 10 09 bpl $0b11 +0b08: d5 11 02 mov $0211+x,a +0b0b: 80 setc +0b0c: a8 57 sbc a,#$57 +0b0e: 60 clrc +0b0f: 88 04 adc a,#$04 +0b11: fd mov y,a +0b12: dd mov a,y +0b13: 8d 05 mov y,#$05 +0b15: cf mul ya +0b16: da 1c movw $1c,ya +0b18: e5 d2 00 mov a,$00d2 +0b1b: ec d3 00 mov y,$00d3 +0b1e: 7a 1c addw ya,$1c +0b20: da 1c movw $1c,ya +0b22: 7d mov a,x +0b23: 9f xcn a +0b24: 5c lsr a +0b25: 08 04 or a,#$04 +0b27: 5d mov x,a +0b28: e4 49 mov a,$49 +0b2a: 4e 4b 00 tclr1 $004b +0b2d: 8d 00 mov y,#$00 +0b2f: f7 1c mov a,($1c)+y +0b31: 3f 6e 0b call $0b6e +0b34: 4d push x +0b35: f8 46 mov x,$46 +0b37: d5 a0 03 mov $03a0+x,a +0b3a: ce pop x +0b3b: 3d inc x +0b3c: fc inc y +0b3d: f7 1c mov a,($1c)+y +0b3f: 08 80 or a,#$80 +0b41: 3f 6e 0b call $0b6e +0b44: 4d push x +0b45: f8 46 mov x,$46 +0b47: d5 b0 03 mov $03b0+x,a +0b4a: ce pop x +0b4b: 3d inc x +0b4c: fc inc y +0b4d: f7 1c mov a,($1c)+y +0b4f: 3f 6e 0b call $0b6e +0b52: 4d push x +0b53: f8 46 mov x,$46 +0b55: d5 c0 03 mov $03c0+x,a +0b58: ce pop x +0b59: 3d inc x +0b5a: e8 7f mov a,#$7f +0b5c: 3f 6e 0b call $0b6e +0b5f: f8 46 mov x,$46 +0b61: fc inc y +0b62: f7 1c mov a,($1c)+y +0b64: d5 21 02 mov $0221+x,a +0b67: fc inc y +0b68: f7 1c mov a,($1c)+y +0b6a: d5 20 02 mov $0220+x,a +0b6d: 6f ret + +0b6e: 2d push a +0b6f: e4 49 mov a,$49 +0b71: 24 21 and a,$21 +0b73: ae pop a +0b74: d0 06 bne $0b7c +0b76: c9 f2 00 mov $00f2,x +0b79: c5 f3 00 mov $00f3,a +0b7c: 6f ret + +0b7d: e4 46 mov a,$46 +0b7f: 5d mov x,a +0b80: e4 46 mov a,$46 +0b82: 9f xcn a +0b83: 5c lsr a +0b84: 08 04 or a,#$04 +0b86: fd mov y,a +0b87: f5 a0 03 mov a,$03a0+x +0b8a: 3f 67 0f call $0f67 +0b8d: fc inc y +0b8e: f5 b0 03 mov a,$03b0+x +0b91: 3f 67 0f call $0f67 +0b94: fc inc y +0b95: f5 c0 03 mov a,$03c0+x +0b98: 3f 67 0f call $0f67 +0b9b: fc inc y +0b9c: e8 7f mov a,#$7f +0b9e: 3f 67 0f call $0f67 +0ba1: f8 46 mov x,$46 +0ba3: 6f ret + +; vcmd e1 - pan +0ba4: 2d push a +0ba5: e4 42 mov a,$42 +0ba7: f0 05 beq $0bae +0ba9: ae pop a +0baa: e8 0a mov a,#$0a +0bac: 2f 01 bra $0baf +0bae: ae pop a +0baf: d5 51 03 mov $0351+x,a +0bb2: 28 1f and a,#$1f +0bb4: d5 31 03 mov $0331+x,a +0bb7: e8 00 mov a,#$00 +0bb9: d5 30 03 mov $0330+x,a +0bbc: 6f ret + +; vcmd e2 - pan fade +0bbd: d4 a2 mov $a2+x,a +0bbf: 2d push a +0bc0: 3f f8 0a call $0af8 +0bc3: d5 50 03 mov $0350+x,a +0bc6: 80 setc +0bc7: b5 31 03 sbc a,$0331+x +0bca: ce pop x +0bcb: 3f fd 0c call $0cfd +0bce: d5 40 03 mov $0340+x,a +0bd1: dd mov a,y +0bd2: d5 41 03 mov $0341+x,a +0bd5: 6f ret + +; vcmd f4 - set note dur/vel +0bd6: f6 e4 0b mov a,$0be4+y +0bd9: d4 b3 mov $b3+x,a +0bdb: 3f f8 0a call $0af8 +0bde: f6 e4 0b mov a,$0be4+y +0be1: d4 b2 mov $b2+x,a +0be3: 6f ret + +; note dur%'s/vel +0be4: db $32,$65,$7f,$98,$b2,$cb,$e5,$fc + +; vcmd e3 - vibrato on +0bec: 5c lsr a +0bed: 5c lsr a +0bee: 5c lsr a +0bef: 5c lsr a +0bf0: 1c asl a +0bf1: d5 b0 02 mov $02b0+x,a +0bf4: dd mov a,y +0bf5: 28 0f and a,#$0f +0bf7: 1c asl a +0bf8: 1c asl a +0bf9: d5 a1 02 mov $02a1+x,a +0bfc: 3f f8 0a call $0af8 +; vcmd e4 - vibrato off +0bff: 1c asl a +0c00: 1c asl a +0c01: d4 c3 mov $c3+x,a +0c03: 6f ret + +; vcmd e5 - master volume +0c04: e5 9f 03 mov a,$039f +0c07: d0 04 bne $0c0d +0c09: e8 00 mov a,#$00 +0c0b: da 5a movw $5a,ya +0c0d: 6f ret + +; vcmd e6 - master volume fade +0c0e: c4 5c mov $5c,a +0c10: 3f f8 0a call $0af8 +0c13: c4 5d mov $5d,a +0c15: 80 setc +0c16: a4 5b sbc a,$5b +0c18: f8 5c mov x,$5c +0c1a: 3f fd 0c call $0cfd +0c1d: da 5e movw $5e,ya +0c1f: 6f ret + +; vcmd e7 - tempo +0c20: cb 55 mov $55,y +0c22: 6f ret + +; vcmd e8 - tempo fade +0c23: c4 56 mov $56,a +0c25: 3f f8 0a call $0af8 +0c28: c4 57 mov $57,a +0c2a: 80 setc +0c2b: a4 55 sbc a,$55 +0c2d: f8 56 mov x,$56 +0c2f: 3f fd 0c call $0cfd +0c32: da 58 movw $58,ya +0c34: 6f ret + +; vcmd e9 - global transpose +0c35: c4 52 mov $52,a +0c37: 6f ret + +; vcmd ea - per-voice transpose +0c38: d5 f0 02 mov $02f0+x,a +0c3b: 6f ret + +; vcmd ec - set pitch +0c3c: d5 21 02 mov $0221+x,a +0c3f: 3f f8 0a call $0af8 +0c42: d5 20 02 mov $0220+x,a +0c45: 6f ret + +; vcmd eb - set ASDR +0c46: 2d push a +0c47: f8 46 mov x,$46 +0c49: e4 46 mov a,$46 +0c4b: 9f xcn a +0c4c: 5c lsr a +0c4d: 08 05 or a,#$05 +0c4f: fd mov y,a +0c50: ae pop a +0c51: 08 80 or a,#$80 +0c53: d5 b0 03 mov $03b0+x,a +0c56: 3f 67 0f call $0f67 +0c59: fc inc y +0c5a: 6d push y +0c5b: 3f f8 0a call $0af8 +0c5e: ee pop y +0c5f: d5 c0 03 mov $03c0+x,a +0c62: 3f 67 0f call $0f67 +0c65: 6f ret + +; vcmd ed - volume +0c66: d5 10 03 mov $0310+x,a +0c69: 3f f8 0a call $0af8 +0c6c: d5 11 03 mov $0311+x,a +0c6f: 6f ret + +; vcmd ee - nop +0c70: 6f ret + +; vcmd f0 - vibrato +0c71: d5 80 03 mov $0380+x,a +0c74: 3f f8 0a call $0af8 +0c77: d5 80 02 mov $0280+x,a +0c7a: 6f ret + +; vcmd f1 - set echo (1) +0c7b: e8 00 mov a,#$00 +0c7d: da 62 movw $62,ya +0c7f: 3f f8 0a call $0af8 +0c82: e8 00 mov a,#$00 +0c84: da 64 movw $64,ya +0c86: b2 4a clr5 $4a +0c88: 6f ret + +; vcmd f3 - set echo (3) +0c89: c4 6a mov $6a,a +0c8b: 3f f8 0a call $0af8 +0c8e: c4 6b mov $6b,a +0c90: 80 setc +0c91: a4 63 sbc a,$63 +0c93: f8 6a mov x,$6a +0c95: 3f fd 0c call $0cfd +0c98: da 66 movw $66,ya +0c9a: 3f f8 0a call $0af8 +0c9d: c4 6c mov $6c,a +0c9f: 80 setc +0ca0: a4 65 sbc a,$65 +0ca2: f8 6a mov x,$6a +0ca4: 3f fd 0c call $0cfd +0ca7: da 68 movw $68,ya +0ca9: 6f ret + +; vcmd f2 - set echo (2) +0caa: c4 53 mov $53,a +0cac: e4 21 mov a,$21 +0cae: 48 ff eor a,#$ff +0cb0: 24 53 and a,$53 +0cb2: c4 4c mov $4c,a +0cb4: b2 4a clr5 $4a +0cb6: 6f ret + +0cb7: c4 4f mov $4f,a +0cb9: 8d 7d mov y,#$7d +0cbb: cc f2 00 mov $00f2,y +0cbe: e5 f3 00 mov a,$00f3 +0cc1: 64 4f cmp a,$4f +0cc3: f0 2b beq $0cf0 +0cc5: 28 0f and a,#$0f +0cc7: 48 ff eor a,#$ff +0cc9: f3 4e 03 bbc7 $4e,$0ccf +0ccc: 60 clrc +0ccd: 84 4e adc a,$4e +0ccf: c4 4e mov $4e,a +0cd1: 8d 04 mov y,#$04 +0cd3: f6 06 07 mov a,$0706+y +0cd6: c5 f2 00 mov $00f2,a +0cd9: e8 00 mov a,#$00 +0cdb: c5 f3 00 mov $00f3,a +0cde: fe f3 dbnz y,$0cd3 +0ce0: e4 4a mov a,$4a +0ce2: 08 20 or a,#$20 +0ce4: 8d 6c mov y,#$6c +0ce6: 3f 6f 0f call $0f6f +0ce9: e4 4f mov a,$4f +0ceb: 8d 7d mov y,#$7d +0ced: 3f 6f 0f call $0f6f +0cf0: 1c asl a +0cf1: 1c asl a +0cf2: 1c asl a +0cf3: 48 ff eor a,#$ff +0cf5: 80 setc +0cf6: 88 ff adc a,#$ff +0cf8: 8d 6d mov y,#$6d +0cfa: 5f 6f 0f jmp $0f6f + +0cfd: ed notc +0cfe: 6b 1a ror $1a +0d00: 10 03 bpl $0d05 +0d02: 48 ff eor a,#$ff +0d04: bc inc a +0d05: 8d 00 mov y,#$00 +0d07: 9e div ya,x +0d08: 2d push a +0d09: e8 00 mov a,#$00 +0d0b: 9e div ya,x +0d0c: ee pop y +0d0d: f8 46 mov x,$46 +0d0f: f3 1a 08 bbc7 $1a,$0d1a +0d12: da 1c movw $1c,ya +0d14: 8d 00 mov y,#$00 +0d16: e8 00 mov a,#$00 +0d18: 9a 1c subw ya,$1c +0d1a: 6f ret + +0d1b: e4 43 mov a,$43 +0d1d: eb 5b mov y,$5b +0d1f: cf mul ya +0d20: f5 01 03 mov a,$0301+x +0d23: cf mul ya +0d24: dd mov a,y +0d25: cf mul ya +0d26: dd mov a,y +0d27: d5 21 03 mov $0321+x,a +0d2a: f4 a2 mov a,$a2+x +0d2c: f0 09 beq $0d37 +0d2e: e8 30 mov a,#$30 +0d30: 8d 03 mov y,#$03 +0d32: 9b a2 dec $a2+x +0d34: 3f 84 0d call $0d84 +0d37: e4 49 mov a,$49 +0d39: 24 60 and a,$60 +0d3b: f0 46 beq $0d83 +0d3d: f5 31 03 mov a,$0331+x +0d40: fd mov y,a +0d41: f5 30 03 mov a,$0330+x +0d44: da 18 movw $18,ya +0d46: 7d mov a,x +0d47: 9f xcn a +0d48: 5c lsr a +0d49: c4 1a mov $1a,a +0d4b: eb 19 mov y,$19 +0d4d: f6 77 0f mov a,$0f77+y +0d50: 80 setc +0d51: b6 76 0f sbc a,$0f76+y +0d54: eb 18 mov y,$18 +0d56: cf mul ya +0d57: dd mov a,y +0d58: eb 19 mov y,$19 +0d5a: 60 clrc +0d5b: 96 76 0f adc a,$0f76+y +0d5e: fd mov y,a +0d5f: f5 21 03 mov a,$0321+x +0d62: cf mul ya +0d63: f5 51 03 mov a,$0351+x +0d66: 1c asl a +0d67: 13 1a 01 bbc0 $1a,$0d6b +0d6a: 1c asl a +0d6b: dd mov a,y +0d6c: 90 03 bcc $0d71 +0d6e: 48 ff eor a,#$ff +0d70: bc inc a +0d71: eb 1a mov y,$1a +0d73: 3f 67 0f call $0f67 +0d76: 8d 14 mov y,#$14 +0d78: e8 00 mov a,#$00 +0d7a: 9a 18 subw ya,$18 +0d7c: da 18 movw $18,ya +0d7e: ab 1a inc $1a +0d80: 33 1a c8 bbc1 $1a,$0d4b +0d83: 6f ret + +0d84: 09 49 60 or ($60),($49) +0d87: da 1c movw $1c,ya +0d89: da 1e movw $1e,ya +0d8b: 4d push x +0d8c: ee pop y +0d8d: 60 clrc +0d8e: d0 0a bne $0d9a +0d90: 98 1f 1e adc $1e,#$1f +0d93: e8 00 mov a,#$00 +0d95: d7 1c mov ($1c)+y,a +0d97: fc inc y +0d98: 2f 09 bra $0da3 +0d9a: 98 10 1e adc $1e,#$10 +0d9d: 3f a1 0d call $0da1 +0da0: fc inc y +0da1: f7 1c mov a,($1c)+y +0da3: 97 1e adc a,($1e)+y +0da5: d7 1c mov ($1c)+y,a +0da7: 6f ret + +0da8: f4 73 mov a,$73+x +0daa: f0 2e beq $0dda +0dac: 9b 73 dec $73+x +0dae: f0 05 beq $0db5 +0db0: e8 02 mov a,#$02 +0db2: de 72 25 cbne $72+x,$0dda +0db5: f4 32 mov a,$32+x +0db7: fb 33 mov y,$33+x +0db9: da 1c movw $1c,ya +0dbb: 8d 00 mov y,#$00 +0dbd: f7 1c mov a,($1c)+y +0dbf: f0 08 beq $0dc9 +0dc1: 68 56 cmp a,#$56 +0dc3: f0 15 beq $0dda +0dc5: 68 f9 cmp a,#$f9 +0dc7: f0 11 beq $0dda +0dc9: e8 00 mov a,#$00 +0dcb: d5 80 02 mov $0280+x,a +0dce: e8 00 mov a,#$00 +0dd0: d5 80 03 mov $0380+x,a +0dd3: e4 49 mov a,$49 +0dd5: 8d 5c mov y,#$5c +0dd7: 3f 67 0f call $0f67 +0dda: 3f 15 07 call $0715 +0ddd: f5 80 02 mov a,$0280+x +0de0: f0 04 beq $0de6 +0de2: e2 1b set7 $1b +0de4: 2f 02 bra $0de8 +0de6: f2 1b clr7 $1b +0de8: f5 60 03 mov a,$0360+x +0deb: c4 19 mov $19,a +0ded: e8 00 mov a,#$00 +0def: c4 18 mov $18,a +0df1: f4 c3 mov a,$c3+x +0df3: f0 34 beq $0e29 +0df5: f5 b0 02 mov a,$02b0+x +0df8: de c2 2c cbne $c2+x,$0e27 +0dfb: f5 a0 02 mov a,$02a0+x +0dfe: 60 clrc +0dff: 95 a1 02 adc a,$02a1+x +0e02: d5 a0 02 mov $02a0+x,a +0e05: c4 1a mov $1a,a +0e07: 1c asl a +0e08: 1c asl a +0e09: 90 02 bcc $0e0d +0e0b: 48 ff eor a,#$ff +0e0d: fd mov y,a +0e0e: f4 c3 mov a,$c3+x +0e10: 68 f1 cmp a,#$f1 +0e12: 90 05 bcc $0e19 +0e14: 28 0f and a,#$0f +0e16: cf mul ya +0e17: 2f 04 bra $0e1d +0e19: cf mul ya +0e1a: dd mov a,y +0e1b: 8d 00 mov y,#$00 +0e1d: 3f 0f 0d call $0d0f +0e20: 7a 18 addw ya,$18 +0e22: da 18 movw $18,ya +0e24: 5f d5 0e jmp $0ed5 + +0e27: bb c2 inc $c2+x +0e29: e3 1b f8 bbs7 $1b,$0e24 +0e2c: 6f ret + +0e2d: f2 1b clr7 $1b +0e2f: f5 31 03 mov a,$0331+x +0e32: fd mov y,a +0e33: f5 30 03 mov a,$0330+x +0e36: da 18 movw $18,ya +0e38: f4 a2 mov a,$a2+x +0e3a: f0 0a beq $0e46 +0e3c: f5 41 03 mov a,$0341+x +0e3f: fd mov y,a +0e40: f5 40 03 mov a,$0340+x +0e43: 3f 6f 0e call $0e6f +0e46: f3 1b 03 bbc7 $1b,$0e4c +0e49: 3f 46 0d call $0d46 +0e4c: f2 1b clr7 $1b +0e4e: f5 60 03 mov a,$0360+x +0e51: c4 19 mov $19,a +0e53: e8 00 mov a,#$00 +0e55: c4 18 mov $18,a +0e57: f4 c3 mov a,$c3+x +0e59: f0 ce beq $0e29 +0e5b: f5 b0 02 mov a,$02b0+x +0e5e: de c2 c8 cbne $c2+x,$0e29 +0e61: eb 54 mov y,$54 +0e63: f5 a1 02 mov a,$02a1+x +0e66: cf mul ya +0e67: dd mov a,y +0e68: 60 clrc +0e69: 95 a0 02 adc a,$02a0+x +0e6c: 5f 05 0e jmp $0e05 + +0e6f: e2 1b set7 $1b +0e71: cb 1a mov $1a,y +0e73: 3f 0f 0d call $0d0f +0e76: 6d push y +0e77: eb 54 mov y,$54 +0e79: cf mul ya +0e7a: cb 1c mov $1c,y +0e7c: 8f 00 1d mov $1d,#$00 +0e7f: eb 54 mov y,$54 +0e81: ae pop a +0e82: cf mul ya +0e83: 7a 1c addw ya,$1c +0e85: 3f 0f 0d call $0d0f +0e88: 7a 18 addw ya,$18 +0e8a: da 18 movw $18,ya +0e8c: 6f ret + +0e8d: 3f 08 0b call $0b08 +0e90: 8d 25 mov y,#$25 +0e92: 2f 05 bra $0e99 +0e94: 6f ret + +0e95: ad 57 cmp y,#$57 +0e97: b0 f4 bcs $0e8d +0e99: ad 56 cmp y,#$56 +0e9b: d0 06 bne $0ea3 +0e9d: e8 00 mov a,#$00 +0e9f: d5 80 02 mov $0280+x,a +0ea2: 6f ret + +0ea3: e4 21 mov a,$21 +0ea5: 24 49 and a,$49 +0ea7: d0 eb bne $0e94 +0ea9: 09 49 47 or ($47),($49) +0eac: e8 00 mov a,#$00 +0eae: d5 91 02 mov $0291+x,a +0eb1: d5 90 02 mov $0290+x,a +0eb4: dc dec y +0eb5: dd mov a,y +0eb6: 28 7f and a,#$7f +0eb8: 60 clrc +0eb9: 84 52 adc a,$52 +0ebb: 60 clrc +0ebc: 95 f0 02 adc a,$02f0+x +0ebf: d5 60 03 mov $0360+x,a +0ec2: e8 00 mov a,#$00 +0ec4: d5 a0 02 mov $02a0+x,a +0ec7: d4 c2 mov $c2+x,a +0ec9: 09 49 60 or ($60),($49) +0ecc: f5 60 03 mov a,$0360+x +0ecf: c4 19 mov $19,a +0ed1: e8 00 mov a,#$00 +0ed3: c4 18 mov $18,a +0ed5: 8d 00 mov y,#$00 +0ed7: e4 19 mov a,$19 +0ed9: 80 setc +0eda: a8 34 sbc a,#$34 +0edc: b0 09 bcs $0ee7 +0ede: e4 19 mov a,$19 +0ee0: 80 setc +0ee1: a8 13 sbc a,#$13 +0ee3: b0 06 bcs $0eeb +0ee5: dc dec y +0ee6: 1c asl a +0ee7: 7a 18 addw ya,$18 +0ee9: da 18 movw $18,ya +0eeb: 4d push x +0eec: e4 19 mov a,$19 +0eee: 1c asl a +0eef: 8d 00 mov y,#$00 +0ef1: cd 18 mov x,#$18 +0ef3: 9e div ya,x +0ef4: 5d mov x,a +0ef5: f6 ac 0f mov a,$0fac+y +0ef8: c4 1d mov $1d,a +0efa: f6 ab 0f mov a,$0fab+y +0efd: c4 1c mov $1c,a +0eff: f6 ae 0f mov a,$0fae+y +0f02: 2d push a +0f03: f6 ad 0f mov a,$0fad+y +0f06: ee pop y +0f07: 9a 1c subw ya,$1c +0f09: eb 18 mov y,$18 +0f0b: cf mul ya +0f0c: dd mov a,y +0f0d: 8d 00 mov y,#$00 +0f0f: 7a 1c addw ya,$1c +0f11: cb 1d mov $1d,y +0f13: 1c asl a +0f14: 2b 1d rol $1d +0f16: c4 1c mov $1c,a +0f18: 2f 04 bra $0f1e +0f1a: 4b 1d lsr $1d +0f1c: 7c ror a +0f1d: 3d inc x +0f1e: c8 06 cmp x,#$06 +0f20: d0 f8 bne $0f1a +0f22: c4 1c mov $1c,a +0f24: ce pop x +0f25: f5 20 02 mov a,$0220+x +0f28: eb 1d mov y,$1d +0f2a: cf mul ya +0f2b: da 1e movw $1e,ya +0f2d: f5 20 02 mov a,$0220+x +0f30: eb 1c mov y,$1c +0f32: cf mul ya +0f33: 6d push y +0f34: f5 21 02 mov a,$0221+x +0f37: eb 1c mov y,$1c +0f39: cf mul ya +0f3a: 7a 1e addw ya,$1e +0f3c: da 1e movw $1e,ya +0f3e: f5 21 02 mov a,$0221+x +0f41: eb 1d mov y,$1d +0f43: cf mul ya +0f44: fd mov y,a +0f45: ae pop a +0f46: 7a 1e addw ya,$1e +0f48: da 1e movw $1e,ya +0f4a: f5 91 02 mov a,$0291+x +0f4d: fd mov y,a +0f4e: f5 90 02 mov a,$0290+x +0f51: da 1c movw $1c,ya +0f53: ba 1e movw ya,$1e +0f55: 7a 1c addw ya,$1c +0f57: da 1e movw $1e,ya +0f59: 7d mov a,x +0f5a: 9f xcn a +0f5b: 5c lsr a +0f5c: 08 02 or a,#$02 +0f5e: fd mov y,a +0f5f: e4 1e mov a,$1e +0f61: 3f 67 0f call $0f67 +0f64: fc inc y +0f65: e4 1f mov a,$1f +0f67: 2d push a +0f68: e4 49 mov a,$49 +0f6a: 24 21 and a,$21 +0f6c: ae pop a +0f6d: d0 06 bne $0f75 +0f6f: cc f2 00 mov $00f2,y +0f72: c5 f3 00 mov $00f3,a +0f75: 6f ret + +; pan table +0f76: db $00,$01,$03,$07,$0d,$15,$1e,$29 +0f7e: db $34,$42,$51,$5e,$67,$6e,$73,$77 +0f86: db $7a,$7c,$7d,$7e,$7f + +; echo FIR presets +0f8b: db $7f,$00,$00,$00,$00,$00,$00,$00 ; 00 +0f93: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c ; 01 +0f9b: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 ; 02 +0fa3: db $34,$33,$00,$d9,$e5,$01,$fc,$eb ; 03 + +; pitch table +0fab: dw $085f +0fae: dw $08de +0fb0: dw $0965 +0fb2: dw $09f4 +0fb4: dw $0a8c +0fb6: dw $0b2c +0fb8: dw $0bd6 +0fba: dw $0c8b +0fbc: dw $0d4a +0fbe: dw $0e14 +0fc0: dw $0eea +0fc2: dw $0fcd +0fc4: dw $10be + +; version string +0fc5: db "*Ver S1.20*" + +0fd0: e8 aa mov a,#$aa +0fd2: c5 f4 00 mov $00f4,a +0fd5: e8 bb mov a,#$bb +0fd7: c5 f5 00 mov $00f5,a +0fda: e5 f4 00 mov a,$00f4 +0fdd: 68 cc cmp a,#$cc +0fdf: d0 f9 bne $0fda +0fe1: e5 f5 00 mov a,$00f5 +0fe4: f0 30 beq $1016 +0fe6: e5 f6 00 mov a,$00f6 +0fe9: ec f7 00 mov y,$00f7 +0fec: da 1c movw $1c,ya +0fee: ec f4 00 mov y,$00f4 +0ff1: cc f4 00 mov $00f4,y +0ff4: ec f4 00 mov y,$00f4 +0ff7: d0 fb bne $0ff4 +0ff9: 5e f4 00 cmp y,$00f4 +0ffc: f0 09 beq $1007 +0ffe: 10 f9 bpl $0ff9 +1000: 5e f4 00 cmp y,$00f4 +1003: 10 f4 bpl $0ff9 +1005: 2f da bra $0fe1 +1007: e5 f5 00 mov a,$00f5 +100a: cc f4 00 mov $00f4,y +100d: d7 1c mov ($1c)+y,a +100f: fc inc y +1010: d0 e7 bne $0ff9 +1012: ab 1d inc $1d +1014: 2f e3 bra $0ff9 +1016: ec f4 00 mov y,$00f4 +1019: cc f4 00 mov $00f4,y +101c: 8d fc mov y,#$fc +101e: dc dec y +101f: d0 fd bne $101e +1021: e8 00 mov a,#$00 +1023: c5 f5 00 mov $00f5,a +1026: c5 f6 00 mov $00f6,a +1029: c5 f7 00 mov $00f7,a +102c: 6f ret + +102d: d5 f5 00 mov $00f5+x,a +1030: d8 13 mov $13,x +1032: 68 80 cmp a,#$80 +1034: 90 12 bcc $1048 +1036: 80 setc +1037: a8 80 sbc a,#$80 +1039: 1c asl a +103a: fd mov y,a +103b: 7d mov a,x +103c: 1c asl a +103d: 5d mov x,a +103e: e8 00 mov a,#$00 +1040: c4 0f mov $0f,a +1042: e8 1b mov a,#$1b +1044: c4 10 mov $10,a +1046: 2f 0e bra $1056 +1048: 9c dec a +1049: 1c asl a +104a: fd mov y,a +104b: 7d mov a,x +104c: 1c asl a +104d: 5d mov x,a +104e: e8 00 mov a,#$00 +1050: c4 0f mov $0f,a +1052: e8 14 mov a,#$14 +1054: c4 10 mov $10,a +1056: f7 0f mov a,($0f)+y +1058: fc inc y +1059: d5 09 00 mov $0009+x,a +105c: f7 0f mov a,($0f)+y +105e: d5 0a 00 mov $000a+x,a +1061: f8 13 mov x,$13 +1063: e8 01 mov a,#$01 +1065: d4 06 mov $06+x,a +1067: d4 00 mov $00+x,a +1069: 3f c3 12 call $12c3 +106c: c4 48 mov $48,a +106e: 2d push a +106f: 48 ff eor a,#$ff +1071: 24 4c and a,$4c +1073: c4 4c mov $4c,a +1075: ae pop a +1076: 04 21 or a,$21 +1078: c4 21 mov $21,a +107a: 6f ret + +107b: e8 00 mov a,#$00 +107d: c5 91 03 mov $0391,a +1080: cd 02 mov x,#$02 +1082: d8 13 mov $13,x +1084: f4 00 mov a,$00+x +1086: f0 70 beq $10f8 +1088: 9b 06 dec $06+x +108a: d0 06 bne $1092 +108c: 3f 35 11 call $1135 +108f: 5f f8 10 jmp $10f8 + +1092: f5 9a 03 mov a,$039a+x +1095: f0 61 beq $10f8 +1097: 28 0f and a,#$0f +1099: 1c asl a +109a: 1c asl a +109b: 1c asl a +109c: 1c asl a +109d: c5 9e 03 mov $039e,a +10a0: f5 9a 03 mov a,$039a+x +10a3: 28 7f and a,#$7f +10a5: 5c lsr a +10a6: 5c lsr a +10a7: 5c lsr a +10a8: 5c lsr a +10a9: c5 9d 03 mov $039d,a +10ac: f5 9a 03 mov a,$039a+x +10af: 28 80 and a,#$80 +10b1: d0 15 bne $10c8 +10b3: f5 97 03 mov a,$0397+x +10b6: 80 setc +10b7: a5 9e 03 sbc a,$039e +10ba: d5 97 03 mov $0397+x,a +10bd: f5 94 03 mov a,$0394+x +10c0: a5 9d 03 sbc a,$039d +10c3: d5 94 03 mov $0394+x,a +10c6: 2f 13 bra $10db +10c8: f5 97 03 mov a,$0397+x +10cb: 60 clrc +10cc: 85 9e 03 adc a,$039e +10cf: d5 97 03 mov $0397+x,a +10d2: f5 94 03 mov a,$0394+x +10d5: 85 9d 03 adc a,$039d +10d8: d5 94 03 mov $0394+x,a +10db: 8f 03 11 mov $11,#$03 +10de: 3f b7 12 call $12b7 +10e1: c9 f2 00 mov $00f2,x +10e4: c5 f3 00 mov $00f3,a +10e7: f8 13 mov x,$13 +10e9: f5 97 03 mov a,$0397+x +10ec: 8f 02 11 mov $11,#$02 +10ef: 3f b7 12 call $12b7 +10f2: c9 f2 00 mov $00f2,x +10f5: c5 f3 00 mov $00f3,a +10f8: f8 13 mov x,$13 +10fa: 1d dec x +10fb: 10 85 bpl $1082 +10fd: 6f ret + +10fe: 3f a7 12 call $12a7 +1101: d5 9a 03 mov $039a+x,a +1104: f8 13 mov x,$13 +1106: 5f 35 11 jmp $1135 + +1109: 3f a7 12 call $12a7 +110c: d4 03 mov $03+x,a +110e: f8 13 mov x,$13 +1110: 5f 35 11 jmp $1135 + +1113: 3f c3 12 call $12c3 +1116: 04 4c or a,$4c +1118: c4 4c mov $4c,a +111a: 5f 35 11 jmp $1135 + +111d: 3f c3 12 call $12c3 +1120: 48 ff eor a,#$ff +1122: 24 4c and a,$4c +1124: c4 4c mov $4c,a +1126: 5f 35 11 jmp $1135 + +1129: 3f a7 12 call $12a7 +112c: d5 c0 02 mov $02c0+x,a +112f: d5 c3 02 mov $02c3+x,a +1132: 5f 35 11 jmp $1135 + +1135: 3f a7 12 call $12a7 +1138: 68 f0 cmp a,#$f0 +113a: f0 1b beq $1157 +113c: 68 f1 cmp a,#$f1 +113e: f0 1e beq $115e +1140: 68 f2 cmp a,#$f2 +1142: f0 ba beq $10fe +1144: 68 f3 cmp a,#$f3 +1146: f0 c1 beq $1109 +1148: 68 f4 cmp a,#$f4 +114a: f0 c7 beq $1113 +114c: 68 f5 cmp a,#$f5 +114e: f0 cd beq $111d +1150: 68 f6 cmp a,#$f6 +1152: f0 d5 beq $1129 +1154: 5f e2 11 jmp $11e2 + +1157: e8 00 mov a,#$00 +1159: d5 70 03 mov $0370+x,a +115c: 2f 05 bra $1163 +115e: e8 01 mov a,#$01 +1160: d5 70 03 mov $0370+x,a +1163: 3f a7 12 call $12a7 +1166: d4 03 mov $03+x,a +1168: 3f a7 12 call $12a7 +116b: d5 9a 03 mov $039a+x,a +116e: 3f a7 12 call $12a7 +1171: 8f 04 11 mov $11,#$04 +1174: 3f b7 12 call $12b7 +1177: c9 f2 00 mov $00f2,x +117a: c5 f3 00 mov $00f3,a +117d: f8 13 mov x,$13 +117f: f5 70 03 mov a,$0370+x +1182: d0 17 bne $119b +1184: e8 00 mov a,#$00 +1186: 8f 05 11 mov $11,#$05 +1189: 3f b7 12 call $12b7 +118c: c9 f2 00 mov $00f2,x +118f: c5 f3 00 mov $00f3,a +1192: 3f c3 12 call $12c3 +1195: 04 47 or a,$47 +1197: c4 47 mov $47,a +1199: 2f 30 bra $11cb +119b: 3f a7 12 call $12a7 +119e: 9f xcn a +119f: 08 80 or a,#$80 +11a1: 8f 05 11 mov $11,#$05 +11a4: 3f b7 12 call $12b7 +11a7: c9 f2 00 mov $00f2,x +11aa: c5 f3 00 mov $00f3,a +11ad: 3f a7 12 call $12a7 +11b0: 28 07 and a,#$07 +11b2: 9f xcn a +11b3: 1c asl a +11b4: 2d push a +11b5: 3f a7 12 call $12a7 +11b8: 28 1f and a,#$1f +11ba: c4 11 mov $11,a +11bc: ae pop a +11bd: 04 11 or a,$11 +11bf: 8f 06 11 mov $11,#$06 +11c2: 3f b7 12 call $12b7 +11c5: c9 f2 00 mov $00f2,x +11c8: c5 f3 00 mov $00f3,a +11cb: 3f a7 12 call $12a7 +11ce: f8 13 mov x,$13 +11d0: d5 c0 02 mov $02c0+x,a +11d3: d5 c3 02 mov $02c3+x,a +11d6: 3f c3 12 call $12c3 +11d9: 04 21 or a,$21 +11db: c4 21 mov $21,a +11dd: f8 13 mov x,$13 +11df: 5f 35 11 jmp $1135 + +11e2: 68 ff cmp a,#$ff +11e4: f0 6c beq $1252 +11e6: 68 fb cmp a,#$fb +11e8: f0 56 beq $1240 +11ea: 68 fe cmp a,#$fe +11ec: d0 03 bne $11f1 +11ee: 5f 94 12 jmp $1294 + +11f1: 8f 03 11 mov $11,#$03 +11f4: 3f b7 12 call $12b7 +11f7: c9 f2 00 mov $00f2,x +11fa: c5 f3 00 mov $00f3,a +11fd: f8 13 mov x,$13 +11ff: d5 94 03 mov $0394+x,a +1202: 3f a7 12 call $12a7 +1205: 2d push a +1206: 28 f0 and a,#$f0 +1208: 8f 02 11 mov $11,#$02 +120b: 3f b7 12 call $12b7 +120e: c9 f2 00 mov $00f2,x +1211: c5 f3 00 mov $00f3,a +1214: f8 13 mov x,$13 +1216: d5 97 03 mov $0397+x,a +1219: ae pop a +121a: 28 0f and a,#$0f +121c: 1c asl a +121d: 1c asl a +121e: 1c asl a +121f: 8f 07 11 mov $11,#$07 +1222: 3f b7 12 call $12b7 +1225: c9 f2 00 mov $00f2,x +1228: c5 f3 00 mov $00f3,a +122b: f8 13 mov x,$13 +122d: f5 70 03 mov a,$0370+x +1230: f0 07 beq $1239 +1232: 3f c3 12 call $12c3 +1235: 04 47 or a,$47 +1237: c4 47 mov $47,a +1239: f8 13 mov x,$13 +123b: f4 03 mov a,$03+x +123d: d4 06 mov $06+x,a +123f: 6f ret + +1240: e4 13 mov a,$13 +1242: 1c asl a +1243: 5d mov x,a +1244: f4 09 mov a,$09+x +1246: fb 0a mov y,$0a+x +1248: d5 d0 02 mov $02d0+x,a +124b: dd mov a,y +124c: d5 d1 02 mov $02d1+x,a +124f: 5f 35 11 jmp $1135 + +1252: e8 00 mov a,#$00 +1254: d4 00 mov $00+x,a +1256: d5 f5 00 mov $00f5+x,a +1259: d5 c0 02 mov $02c0+x,a +125c: d5 c3 02 mov $02c3+x,a +125f: 3f c3 12 call $12c3 +1262: cd 5c mov x,#$5c +1264: c9 f2 00 mov $00f2,x +1267: c5 f3 00 mov $00f3,a +126a: 04 48 or a,$48 +126c: c4 48 mov $48,a +126e: 3f c3 12 call $12c3 +1271: 48 ff eor a,#$ff +1273: 24 21 and a,$21 +1275: c4 21 mov $21,a +1277: e4 15 mov a,$15 +1279: f0 18 beq $1293 +127b: 3f c3 12 call $12c3 +127e: 24 53 and a,$53 +1280: 04 4c or a,$4c +1282: c4 4c mov $4c,a +1284: f8 13 mov x,$13 +1286: 7d mov a,x +1287: 60 clrc +1288: 88 05 adc a,#$05 +128a: 1c asl a +128b: c4 46 mov $46,a +128d: 8f 00 49 mov $49,#$00 +1290: 3f 7d 0b call $0b7d +1293: 6f ret + +1294: e4 13 mov a,$13 +1296: 1c asl a +1297: 5d mov x,a +1298: f5 d1 02 mov a,$02d1+x +129b: fd mov y,a +129c: f5 d0 02 mov a,$02d0+x +129f: d4 09 mov $09+x,a +12a1: db 0a mov $0a+x,y +12a3: 5f 35 11 jmp $1135 + +12a6: 6f ret + +12a7: e4 13 mov a,$13 +12a9: 1c asl a +12aa: 5d mov x,a +12ab: e7 09 mov a,($09+x) +12ad: bb 09 inc $09+x +12af: d0 02 bne $12b3 +12b1: bb 0a inc $0a+x +12b3: f8 13 mov x,$13 +12b5: fd mov y,a +12b6: 6f ret + +12b7: 2d push a +12b8: e4 13 mov a,$13 +12ba: 9f xcn a +12bb: 60 clrc +12bc: 88 50 adc a,#$50 +12be: 04 11 or a,$11 +12c0: 5d mov x,a +12c1: ae pop a +12c2: 6f ret + +12c3: 6d push y +12c4: eb 13 mov y,$13 +12c6: fc inc y +12c7: e8 10 mov a,#$10 +12c9: 1c asl a +12ca: fe fd dbnz y,$12c9 +12cc: ee pop y +12cd: 6f ret + +12ce: cd 02 mov x,#$02 +12d0: d8 13 mov $13,x +12d2: f4 00 mov a,$00+x +12d4: f0 2f beq $1305 +12d6: f5 c0 02 mov a,$02c0+x +12d9: f0 2a beq $1305 +12db: f5 c0 02 mov a,$02c0+x +12de: 8f 00 11 mov $11,#$00 +12e1: 3f b7 12 call $12b7 +12e4: c9 f2 00 mov $00f2,x +12e7: c5 f3 00 mov $00f3,a +12ea: f8 13 mov x,$13 +12ec: f5 c3 02 mov a,$02c3+x +12ef: 8f 01 11 mov $11,#$01 +12f2: 3f b7 12 call $12b7 +12f5: c9 f2 00 mov $00f2,x +12f8: c5 f3 00 mov $00f3,a +12fb: e8 00 mov a,#$00 +12fd: f8 13 mov x,$13 +12ff: d5 c0 02 mov $02c0+x,a +1302: d5 c3 02 mov $02c3+x,a +1305: 1d dec x +1306: 10 c8 bpl $12d0 + +1308: 6f ret diff --git a/snes/NSPC/Quest/Ogre Battle - The March of the Black Queen ($0500).bin b/snes/NSPC/Quest/Ogre Battle - The March of the Black Queen ($0500).bin new file mode 100644 index 00000000..0b44e1f2 Binary files /dev/null and b/snes/NSPC/Quest/Ogre Battle - The March of the Black Queen ($0500).bin differ diff --git a/snes/NSPC/Quest/Ogre Battle - The March of the Black Queen.s b/snes/NSPC/Quest/Ogre Battle - The March of the Black Queen.s new file mode 100644 index 00000000..88a74476 --- /dev/null +++ b/snes/NSPC/Quest/Ogre Battle - The March of the Black Queen.s @@ -0,0 +1,2482 @@ +0500: 20 clrp +0501: cd ff mov x,#$ff +0503: bd mov sp,x +0504: 8f 00 f7 mov $f7,#$00 +0507: 8f ff f4 mov $f4,#$ff +050a: 3f 92 16 call $1692 +050d: 8f ff f5 mov $f5,#$ff +0510: e8 01 mov a,#$01 +0512: c4 1a mov $1a,a +0514: c4 f7 mov $f7,a +0516: 8f ff f6 mov $f6,#$ff +0519: 8f 00 cb mov $cb,#$00 +051c: 3f 66 05 call $0566 +051f: f8 18 mov x,$18 +0521: 30 f6 bmi $0519 +0523: 8b 18 dec $18 +0525: e8 05 mov a,#$05 +0527: 2d push a +0528: e8 1f mov a,#$1f +052a: 2d push a +052b: f5 00 02 mov a,$0200+x +052e: c4 19 mov $19,a +0530: 1c asl a +0531: 5d mov x,a +0532: 1f 35 05 jmp ($0535+x) + +0537: dw $0565 +0539: dw $05c0 +0539: dw $0620 +053b: dw $0565 +053d: dw $06d4 +053f: dw $0565 +0541: dw $0565 +0543: dw $0565 +0545: dw $0940 +0547: dw $0962 +0549: dw $0940 +054b: dw $0984 +054d: dw $09de +054f: dw $09c4 +0551: dw $09de +0553: dw $09f5 +0555: dw $0a10 +0557: dw $0a2e +0559: dw $0a95 +055b: dw $0a99 +055d: dw $15b8 +055f: dw $15c3 +0561: dw $15a9 +0563: dw $0a73 + +0565: 6f ret + +0566: 8d ff mov y,#$ff +0568: cb 18 mov $18,y +056a: e4 fd mov a,$fd +056c: f0 06 beq $0574 +056e: fc inc y +056f: e8 01 mov a,#$01 +0571: d6 00 02 mov $0200+y,a +0574: e4 fe mov a,$fe +0576: f0 06 beq $057e +0578: fc inc y +0579: e8 02 mov a,#$02 +057b: d6 00 02 mov $0200+y,a +057e: 3f 3c 16 call $163c +0581: f8 d1 mov x,$d1 +0583: f0 08 beq $058d +0585: 8f 00 d1 mov $d1,#$00 +0588: 1d dec x +0589: f4 d2 mov a,$d2+x +058b: d4 d8 mov $d8+x,a +058d: e4 d8 mov a,$d8 +058f: f0 1a beq $05ab +0591: 8f 00 d8 mov $d8,#$00 +0594: 68 f0 cmp a,#$f0 +0596: b0 0a bcs $05a2 +0598: c4 cc mov $cc,a +059a: fc inc y +059b: e8 04 mov a,#$04 +059d: d6 00 02 mov $0200+y,a +05a0: 2f 09 bra $05ab +05a2: 28 0f and a,#$0f +05a4: 60 clrc +05a5: 88 08 adc a,#$08 +05a7: fc inc y +05a8: d6 00 02 mov $0200+y,a +05ab: e4 d9 mov a,$d9 +05ad: f0 05 beq $05b4 +05af: 8f 00 d9 mov $d9,#$00 +05b2: c4 cf mov $cf,a +05b4: e4 da mov a,$da +05b6: f0 05 beq $05bd +05b8: 8f 00 da mov $da,#$00 +05bb: c4 d0 mov $d0,a +05bd: cb 18 mov $18,y +05bf: 6f ret + +05c0: e4 cb mov a,$cb +05c2: 5c lsr a +05c3: b0 27 bcs $05ec +05c5: 3f 08 08 call $0808 +05c8: e8 00 mov a,#$00 +05ca: c4 5e mov $5e,a +05cc: c4 5c mov $5c,a +05ce: c4 5d mov $5d,a +05d0: c4 59 mov $59,a +05d2: c4 5a mov $5a,a +05d4: c4 5b mov $5b,a +05d6: c4 00 mov $00,a +05d8: c4 01 mov $01,a +05da: c4 02 mov $02,a +05dc: 3f f2 07 call $07f2 +05df: 3f 53 06 call $0653 +05e2: 3f 89 06 call $0689 +05e5: e4 03 mov a,$03 +05e7: f0 03 beq $05ec +05e9: 3f c3 0a call $0ac3 +05ec: ba a7 movw ya,$a7 +05ee: f0 2f beq $061f +05f0: 28 03 and a,#$03 +05f2: d0 08 bne $05fc +05f4: e8 08 mov a,#$08 +05f6: fd mov y,a +05f7: d6 01 03 mov $0301+y,a +05fa: fe fb dbnz y,$05f7 +05fc: 1a a7 decw $a7 +05fe: d0 0c bne $060c +0600: e5 c0 04 mov a,$04c0 +0603: 68 ff cmp a,#$ff +0605: d0 05 bne $060c +0607: c4 cc mov $cc,a +0609: 5f d4 06 jmp $06d4 + +060c: 60 clrc +060d: e5 70 02 mov a,$0270 +0610: 85 6c 02 adc a,$026c +0613: c5 6c 02 mov $026c,a +0616: e5 71 02 mov a,$0271 +0619: 85 6d 02 adc a,$026d +061c: c5 6d 02 mov $026d,a +061f: 6f ret + +0620: 3f 33 08 call $0833 +0623: 8f 01 59 mov $59,#$01 +0626: e8 08 mov a,#$08 +0628: c4 5c mov $5c,a +062a: c4 5a mov $5a,a +062c: c4 01 mov $01,a +062e: 1c asl a +062f: c4 5d mov $5d,a +0631: c4 5b mov $5b,a +0633: c4 02 mov $02,a +0635: 8f 40 5e mov $5e,#$40 +0638: 8f 40 00 mov $00,#$40 +063b: 3f 53 06 call $0653 +063e: 3f 89 06 call $0689 +0641: e4 e0 mov a,$e0 +0643: d0 04 bne $0649 +0645: e4 03 mov a,$03 +0647: f0 06 beq $064f +0649: 8f 00 e0 mov $e0,#$00 +064c: 3f f4 0a call $0af4 +064f: 3f 91 08 call $0891 +0652: 6f ret + +0653: e4 5a mov a,$5a +0655: 08 40 or a,#$40 +0657: c5 63 06 mov $0663,a +065a: cd 07 mov x,#$07 +065c: 8d 00 mov y,#$00 +065e: f4 1d mov a,$1d+x +0660: 28 48 and a,#$48 +0662: 68 40 cmp a,#$40 +0664: d0 04 bne $066a +0666: db 1d mov $1d+x,y +0668: db 25 mov $25+x,y +066a: 1d dec x +066b: 10 f1 bpl $065e +066d: 8f 5c f2 mov $f2,#$5c +0670: 8f 00 f3 mov $f3,#$00 +0673: 3f 88 13 call $1388 +0676: 3f 5a 07 call $075a +0679: 6f ret + +067a: f8 59 mov x,$59 +067c: f4 63 mov a,$63+x +067e: d0 05 bne $0685 +0680: f4 61 mov a,$61+x +0682: d4 63 mov $63+x,a +0684: 6f ret + +0685: 9c dec a +0686: d4 63 mov $63+x,a +0688: 6f ret + +0689: 8f 00 03 mov $03,#$00 +068c: 8f 08 04 mov $04,#$08 +068f: 2f 06 bra $0697 +0691: ab 5d inc $5d +0693: ab 5d inc $5d +0695: ab 5c inc $5c +0697: f8 5c mov x,$5c +0699: f4 3d mov a,$3d+x +069b: f0 33 beq $06d0 +069d: f8 5d mov x,$5d +069f: fb 86 mov y,$86+x +06a1: 30 15 bmi $06b8 +06a3: f4 85 mov a,$85+x +06a5: 5a 11 cmpw ya,$11 +06a7: d0 09 bne $06b2 +06a9: e8 80 mov a,#$80 +06ab: d4 86 mov $86+x,a +06ad: 3f 39 07 call $0739 +06b0: 2f 06 bra $06b8 +06b2: 9a 10 subw ya,$10 +06b4: d4 85 mov $85+x,a +06b6: db 86 mov $86+x,y +06b8: f4 65 mov a,$65+x +06ba: fb 66 mov y,$66+x +06bc: 9a 10 subw ya,$10 +06be: d0 0c bne $06cc +06c0: f8 5c mov x,$5c +06c2: f4 3d mov a,$3d+x +06c4: 08 80 or a,#$80 +06c6: d4 3d mov $3d+x,a +06c8: c4 03 mov $03,a +06ca: 2f 04 bra $06d0 +06cc: d4 65 mov $65+x,a +06ce: db 66 mov $66+x,y +06d0: 6e 04 be dbnz $04,$0691 +06d3: 6f ret + +; play song? +06d4: e8 01 mov a,#$01 +06d6: c4 cb mov $cb,a +06d8: 9c dec a +06d9: c4 59 mov $59,a +06db: c4 5a mov $5a,a +06dd: c4 5b mov $5b,a +06df: 3f 59 12 call $1259 +06e2: 3f 9c 12 call $129c +06e5: e4 cc mov a,$cc +06e7: 68 ff cmp a,#$ff +06e9: f0 04 beq $06ef +06eb: 68 80 cmp a,#$80 +06ed: b0 1a bcs $0709 +06ef: c4 f4 mov $f4,a +06f1: 68 ff cmp a,#$ff +06f3: f0 43 beq $0738 +06f5: 1c asl a +06f6: 5d mov x,a +06f7: e8 80 mov a,#$80 +06f9: c5 80 01 mov $0180,a +06fc: f5 00 34 mov a,$3400+x +06ff: c4 4e mov $4e,a +0701: fd mov y,a +0702: f5 ff 33 mov a,$33ff+x +0705: c4 4d mov $4d,a +0707: 2f 16 bra $071f +0709: c4 f4 mov $f4,a +070b: 28 7f and a,#$7f +070d: 1c asl a +070e: 5d mov x,a +070f: e8 80 mov a,#$80 +0711: c5 80 01 mov $0180,a +0714: f5 00 1e mov a,$1e00+x +0717: c4 4e mov $4e,a +0719: fd mov y,a +071a: f5 ff 1d mov a,$1dff+x +071d: c4 4d mov $4d,a +071f: 3f df 11 call $11df +0722: b0 14 bcs $0738 +0724: 3f 2e 12 call $122e +0727: 3f c3 0a call $0ac3 +072a: e5 6b 03 mov a,$036b +072d: c4 fa mov $fa,a +072f: e8 00 mov a,#$00 +0731: c5 6a 03 mov $036a,a +0734: e4 4f mov a,$4f +0736: c4 f1 mov $f1,a +0738: 6f ret + +0739: 4d push x +073a: f8 5c mov x,$5c +073c: f4 2d mov a,$2d+x +073e: 10 18 bpl $0758 +0740: 28 7f and a,#$7f +0742: d4 2d mov $2d+x,a +0744: 28 07 and a,#$07 +0746: 5d mov x,a +0747: f4 1d mov a,$1d+x +0749: 08 40 or a,#$40 +074b: d4 1d mov $1d+x,a +074d: f5 45 17 mov a,$1745+x +0750: 8f 5c f2 mov $f2,#$5c +0753: c4 f3 mov $f3,a +0755: 3f 07 0d call $0d07 +0758: ce pop x +0759: 6f ret + +075a: f8 59 mov x,$59 +075c: 8f 00 00 mov $00,#$00 +075f: 8f 08 01 mov $01,#$08 +0762: 8f 00 03 mov $03,#$00 +0765: f4 57 mov a,$57+x +0767: c4 05 mov $05,a +0769: e4 5a mov a,$5a +076b: c5 7e 07 mov $077e,a +076e: f8 00 mov x,$00 +0770: f4 25 mov a,$25+x +0772: f0 28 beq $079c +0774: c4 02 mov $02,a +0776: f4 1d mov a,$1d+x +0778: 10 22 bpl $079c +077a: fd mov y,a +077b: 28 08 and a,#$08 +077d: 48 00 eor a,#$00 +077f: d0 1b bne $079c +0781: dd mov a,y +0782: 28 0f and a,#$0f +0784: c4 06 mov $06,a +0786: 78 ff 02 cmp $02,#$ff +0789: d0 0c bne $0797 +078b: 3f e0 07 call $07e0 +078e: eb 00 mov y,$00 +0790: f6 45 17 mov a,$1745+y +0793: 04 03 or a,$03 +0795: c4 03 mov $03,a +0797: e4 06 mov a,$06 +0799: 3f bf 07 call $07bf +079c: ab 00 inc $00 +079e: 6e 01 cd dbnz $01,$076e +07a1: e4 03 mov a,$03 +07a3: f0 13 beq $07b8 +07a5: f8 59 mov x,$59 +07a7: e4 05 mov a,$05 +07a9: d4 57 mov $57+x,a +07ab: 8f 3d f2 mov $f2,#$3d +07ae: fa 58 f3 mov ($f3),($58) +07b1: 8f 4c f2 mov $f2,#$4c +07b4: fa 03 f3 mov ($f3),($03) +07b7: 6f ret + +07b8: 8f 3d f2 mov $f2,#$3d +07bb: fa 58 f3 mov ($f3),($58) +07be: 6f ret + +07bf: 9f xcn a +07c0: 5c lsr a +07c1: 5d mov x,a +07c2: eb 00 mov y,$00 +07c4: dd mov a,y +07c5: 9f xcn a +07c6: fd mov y,a +07c7: cb f2 mov $f2,y +07c9: 8d 08 mov y,#$08 +07cb: 4b 02 lsr $02 +07cd: 90 05 bcc $07d4 +07cf: f5 00 01 mov a,$0100+x +07d2: c4 f3 mov $f3,a +07d4: 3d inc x +07d5: ab f2 inc $f2 +07d7: fe f2 dbnz y,$07cb +07d9: e8 00 mov a,#$00 +07db: f8 00 mov x,$00 +07dd: d4 25 mov $25+x,a +07df: 6f ret + +07e0: fd mov y,a +07e1: f6 2d 00 mov a,$002d+y +07e4: 28 20 and a,#$20 +07e6: f0 09 beq $07f1 +07e8: f8 00 mov x,$00 +07ea: f5 45 17 mov a,$1745+x +07ed: 04 05 or a,$05 +07ef: c4 05 mov $05,a +07f1: 6f ret + +07f2: e5 6a 03 mov a,$036a +07f5: f0 0e beq $0805 +07f7: e8 00 mov a,#$00 +07f9: c5 6a 03 mov $036a,a +07fc: e5 6b 03 mov a,$036b +07ff: c4 fa mov $fa,a +0801: e4 4f mov a,$4f +0803: c4 f1 mov $f1,a +0805: 6f ret + +0806: 2d push a +0807: 2d push a +0808: e5 80 01 mov a,$0180 +080b: 68 c0 cmp a,#$c0 +080d: 90 23 bcc $0832 +080f: 8d 00 mov y,#$00 +0811: cc 80 01 mov $0180,y +0814: cd 07 mov x,#$07 +0816: db 3d mov $3d+x,y +0818: db 2d mov $2d+x,y +081a: f4 1d mov a,$1d+x +081c: 28 0f and a,#$0f +081e: 9f xcn a +081f: 30 03 bmi $0824 +0821: 3f 1e 17 call $171e +0824: 1d dec x +0825: 10 ef bpl $0816 +0827: ae pop a +0828: ae pop a +0829: 12 4f clr0 $4f +082b: e4 4f mov a,$4f +082d: c4 f1 mov $f1,a +082f: 8f ff f4 mov $f4,#$ff +0832: 6f ret + +0833: 8f 00 00 mov $00,#$00 +0836: e5 81 01 mov a,$0181 +0839: 68 c0 cmp a,#$c0 +083b: 90 26 bcc $0863 +083d: e8 00 mov a,#$00 +083f: c5 81 01 mov $0181,a +0842: cd 03 mov x,#$03 +0844: d4 45 mov $45+x,a +0846: d4 35 mov $35+x,a +0848: 1d dec x +0849: 10 f9 bpl $0844 +084b: cd 03 mov x,#$03 +084d: 8d 00 mov y,#$00 +084f: f4 1d mov a,$1d+x +0851: 9f xcn a +0852: 10 09 bpl $085d +0854: 28 70 and a,#$70 +0856: 68 40 cmp a,#$40 +0858: b0 03 bcs $085d +085a: 3f 1e 17 call $171e +085d: 1d dec x +085e: 10 ef bpl $084f +0860: 8f ff f5 mov $f5,#$ff +0863: e5 82 01 mov a,$0182 +0866: 68 c0 cmp a,#$c0 +0868: 90 26 bcc $0890 +086a: e8 00 mov a,#$00 +086c: c5 82 01 mov $0182,a +086f: cd 03 mov x,#$03 +0871: d4 49 mov $49+x,a +0873: d4 39 mov $39+x,a +0875: 1d dec x +0876: 10 f9 bpl $0871 +0878: cd 07 mov x,#$07 +087a: 8d 00 mov y,#$00 +087c: f4 1d mov a,$1d+x +087e: 9f xcn a +087f: 10 09 bpl $088a +0881: 28 70 and a,#$70 +0883: 68 40 cmp a,#$40 +0885: 90 03 bcc $088a +0887: 3f 1e 17 call $171e +088a: 1d dec x +088b: 10 ef bpl $087c +088d: 8f ff f6 mov $f6,#$ff +0890: 6f ret + +0891: cd 00 mov x,#$00 +0893: d8 00 mov $00,x +0895: f4 cf mov a,$cf+x +0897: f0 3a beq $08d3 +0899: 68 ff cmp a,#$ff +089b: f0 1b beq $08b8 +089d: 68 e0 cmp a,#$e0 +089f: 90 0d bcc $08ae +08a1: 80 setc +08a2: a8 60 sbc a,#$60 +08a4: d4 cd mov $cd+x,a +08a6: c4 01 mov $01,a +08a8: e8 00 mov a,#$00 +08aa: d4 a5 mov $a5+x,a +08ac: 2f 10 bra $08be +08ae: 28 80 and a,#$80 +08b0: d4 a5 mov $a5+x,a +08b2: f4 cf mov a,$cf+x +08b4: 28 7f and a,#$7f +08b6: f0 1b beq $08d3 +08b8: d4 cd mov $cd+x,a +08ba: c4 01 mov $01,a +08bc: e8 00 mov a,#$00 +08be: d4 cf mov $cf+x,a +08c0: 4d push x +08c1: 3f f4 12 call $12f4 +08c4: 78 ff 01 cmp $01,#$ff +08c7: f0 09 beq $08d2 +08c9: 3f 3e 13 call $133e +08cc: 3f da 08 call $08da +08cf: 8f 01 e0 mov $e0,#$01 +08d2: ce pop x +08d3: 60 clrc +08d4: 3d inc x +08d5: c8 02 cmp x,#$02 +08d7: d0 ba bne $0893 +08d9: 6f ret + +08da: f8 00 mov x,$00 +08dc: e8 80 mov a,#$80 +08de: d5 81 01 mov $0181+x,a +08e1: f4 cd mov a,$cd+x +08e3: d4 f5 mov $f5+x,a +08e5: 68 80 cmp a,#$80 +08e7: 90 0e bcc $08f7 +08e9: 1c asl a +08ea: 5d mov x,a +08eb: f5 00 1f mov a,$1f00+x +08ee: c4 0a mov $0a,a +08f0: f5 01 1f mov a,$1f01+x +08f3: c4 0b mov $0b,a +08f5: 2f 0d bra $0904 +08f7: 9c dec a +08f8: 1c asl a +08f9: 5d mov x,a +08fa: f5 00 1e mov a,$1e00+x +08fd: c4 0a mov $0a,a +08ff: f5 01 1e mov a,$1e01+x +0902: c4 0b mov $0b,a +0904: e4 00 mov a,$00 +0906: 1c asl a +0907: 1c asl a +0908: c4 02 mov $02,a +090a: 1c asl a +090b: c4 03 mov $03,a +090d: 8d 00 mov y,#$00 +090f: f7 0a mov a,($0a)+y +0911: c4 05 mov $05,a +0913: fc inc y +0914: f7 0a mov a,($0a)+y +0916: f0 27 beq $093f +0918: fc inc y +0919: f8 03 mov x,$03 +091b: d5 1b 02 mov $021b+x,a +091e: e4 05 mov a,$05 +0920: d5 1a 02 mov $021a+x,a +0923: f8 02 mov x,$02 +0925: f5 45 17 mov a,$1745+x +0928: 04 60 or a,$60 +092a: c4 60 mov $60,a +092c: 7d mov a,x +092d: 08 c8 or a,#$c8 +092f: d4 45 mov $45+x,a +0931: e8 00 mov a,#$00 +0933: d4 35 mov $35+x,a +0935: ab 02 inc $02 +0937: ab 03 inc $03 +0939: ab 03 inc $03 +093b: ad 08 cmp y,#$08 +093d: d0 d0 bne $090f +093f: 6f ret + +0940: e5 bf 04 mov a,$04bf +0943: d0 1c bne $0961 +0945: 8f 5c f2 mov $f2,#$5c +0948: 8f ff f3 mov $f3,#$ff +094b: 8f 0d f2 mov $f2,#$0d +094e: c4 f3 mov $f3,a +0950: bc inc a +0951: c4 cb mov $cb,a +0953: e4 4f mov a,$4f +0955: c5 bf 04 mov $04bf,a +0958: e8 00 mov a,#$00 +095a: c4 4f mov $4f,a +095c: c4 f1 mov $f1,a +095e: 3f 9d 0a call $0a9d +0961: 6f ret + +0962: e5 bf 04 mov a,$04bf +0965: f0 fa beq $0961 +0967: cd 00 mov x,#$00 +0969: c9 bf 04 mov $04bf,x +096c: 8f 5c f2 mov $f2,#$5c +096f: d8 f3 mov $f3,x +0971: e9 dc 03 mov x,$03dc +0974: 8f 0d f2 mov $f2,#$0d +0977: d8 f3 mov $f3,x +0979: c4 4f mov $4f,a +097b: c4 f1 mov $f1,a +097d: 8f 4c f2 mov $f2,#$4c +0980: fa 1c f3 mov ($f3),($1c) +0983: 6f ret + +0984: e5 80 01 mov a,$0180 +0987: f0 14 beq $099d +0989: e5 c0 04 mov a,$04c0 +098c: d0 0f bne $099d +098e: e5 6d 02 mov a,$026d +0991: f0 0a beq $099d +0993: c5 c0 04 mov $04c0,a +0996: 5c lsr a +0997: fd mov y,a +0998: e8 05 mov a,#$05 +099a: 3f 79 0a call $0a79 +099d: 6f ret + +099e: e5 80 01 mov a,$0180 +09a1: f0 20 beq $09c3 +09a3: e5 c0 04 mov a,$04c0 +09a6: d0 1b bne $09c3 +09a8: e5 6d 02 mov a,$026d +09ab: f0 16 beq $09c3 +09ad: c5 c0 04 mov $04c0,a +09b0: e8 00 mov a,#$00 +09b2: c5 6d 02 mov $026d,a +09b5: 8f 01 a7 mov $a7,#$01 +09b8: 8f 00 a8 mov $a8,#$00 +09bb: e8 08 mov a,#$08 +09bd: fd mov y,a +09be: d6 01 03 mov $0301+y,a +09c1: fe fb dbnz y,$09be +09c3: 6f ret + +09c4: e5 80 01 mov a,$0180 +09c7: f0 14 beq $09dd +09c9: e5 c0 04 mov a,$04c0 +09cc: d0 0f bne $09dd +09ce: e5 6d 02 mov a,$026d +09d1: f0 0a beq $09dd +09d3: c5 c0 04 mov $04c0,a +09d6: 8d 00 mov y,#$00 +09d8: e4 ca mov a,$ca +09da: 3f 79 0a call $0a79 +09dd: 6f ret + +09de: e5 80 01 mov a,$0180 +09e1: f0 11 beq $09f4 +09e3: ec c0 04 mov y,$04c0 +09e6: f0 0c beq $09f4 +09e8: d0 00 bne $09ea +09ea: cd 00 mov x,#$00 +09ec: c9 c0 04 mov $04c0,x +09ef: e4 ca mov a,$ca +09f1: 3f 79 0a call $0a79 +09f4: 6f ret + +09f5: e5 80 01 mov a,$0180 +09f8: f0 15 beq $0a0f +09fa: e5 c0 04 mov a,$04c0 +09fd: d0 10 bne $0a0f +09ff: e5 6d 02 mov a,$026d +0a02: f0 0b beq $0a0f +0a04: 8d ff mov y,#$ff +0a06: cc c0 04 mov $04c0,y +0a09: fc inc y +0a0a: e4 ca mov a,$ca +0a0c: 3f 79 0a call $0a79 +0a0f: 6f ret + +0a10: 8f 4c f2 mov $f2,#$4c +0a13: 8f 00 f3 mov $f3,#$00 +0a16: 8f 5c f2 mov $f2,#$5c +0a19: 8f ff f3 mov $f3,#$ff +0a1c: e8 c0 mov a,#$c0 +0a1e: c5 80 01 mov $0180,a +0a21: c5 81 01 mov $0181,a +0a24: c5 82 01 mov $0182,a +0a27: 8f 5c f2 mov $f2,#$5c +0a2a: 8f 00 f3 mov $f3,#$00 +0a2d: 6f ret + +0a2e: 3f 10 0a call $0a10 +0a31: e8 ff mov a,#$ff +0a33: fa 5c f2 mov ($f2),($5c) +0a36: c4 f3 mov $f3,a +0a38: fa 6c f2 mov ($f2),($6c) +0a3b: c4 f3 mov $f3,a +0a3d: 8d 00 mov y,#$00 +0a3f: dd mov a,y +0a40: cd 07 mov x,#$07 +0a42: c4 f2 mov $f2,a +0a44: cb f3 mov $f3,y +0a46: bc inc a +0a47: c4 f2 mov $f2,a +0a49: cb f3 mov $f3,y +0a4b: bc inc a +0a4c: c4 f2 mov $f2,a +0a4e: cb f3 mov $f3,y +0a50: bc inc a +0a51: c4 f2 mov $f2,a +0a53: cb f3 mov $f3,y +0a55: bc inc a +0a56: c4 f2 mov $f2,a +0a58: cb f3 mov $f3,y +0a5a: bc inc a +0a5b: c4 f2 mov $f2,a +0a5d: cb f3 mov $f3,y +0a5f: bc inc a +0a60: c4 f2 mov $f2,a +0a62: cb f3 mov $f3,y +0a64: bc inc a +0a65: c4 f2 mov $f2,a +0a67: cb f3 mov $f3,y +0a69: bc inc a +0a6a: 60 clrc +0a6b: 88 08 adc a,#$08 +0a6d: 1d dec x +0a6e: 10 d2 bpl $0a42 +0a70: 5f 00 05 jmp $0500 + +0a73: 8f ff cc mov $cc,#$ff +0a76: 5f d4 06 jmp $06d4 + +0a79: cd 00 mov x,#$00 +0a7b: c9 6c 02 mov $026c,x +0a7e: d8 a8 mov $a8,x +0a80: c9 6a 02 mov $026a,x +0a83: 5d mov x,a +0a84: c4 a7 mov $a7,a +0a86: dd mov a,y +0a87: 80 setc +0a88: a5 6d 02 sbc a,$026d +0a8b: 3f 7a 16 call $167a +0a8e: c5 70 02 mov $0270,a +0a91: cc 71 02 mov $0271,y +0a94: 6f ret + +0a95: 8f 00 1b mov $1b,#$00 +0a98: 6f ret + +0a99: 8f 01 1b mov $1b,#$01 +0a9c: 6f ret + +0a9d: cd 00 mov x,#$00 +0a9f: d8 00 mov $00,x +0aa1: 4b 00 lsr $00 +0aa3: f4 1d mov a,$1d+x +0aa5: 10 0f bpl $0ab6 +0aa7: 1c asl a +0aa8: 30 0c bmi $0ab6 +0aaa: 5c lsr a +0aab: 28 0f and a,#$0f +0aad: fd mov y,a +0aae: f6 af 04 mov a,$04af+y +0ab1: 10 03 bpl $0ab6 +0ab3: 18 80 00 or $00,#$80 +0ab6: e8 00 mov a,#$00 +0ab8: d4 25 mov $25+x,a +0aba: 3d inc x +0abb: c8 08 cmp x,#$08 +0abd: d0 e2 bne $0aa1 +0abf: fa 00 1c mov ($1c),($00) +0ac2: 6f ret + +0ac3: e5 c0 04 mov a,$04c0 +0ac6: 68 ff cmp a,#$ff +0ac8: d0 05 bne $0acf +0aca: e5 6d 02 mov a,$026d +0acd: f0 1f beq $0aee +0acf: 8f 00 5e mov $5e,#$00 +0ad2: 8f 00 5c mov $5c,#$00 +0ad5: 8f 00 5d mov $5d,#$00 +0ad8: fa 5f 00 mov ($00),($5f) +0adb: 3f 2b 0b call $0b2b +0ade: e4 00 mov a,$00 +0ae0: c4 5f mov $5f,a +0ae2: d0 0f bne $0af3 +0ae4: 3f df 11 call $11df +0ae7: b0 05 bcs $0aee +0ae9: 3f 2e 12 call $122e +0aec: 2f d5 bra $0ac3 +0aee: e8 c0 mov a,#$c0 +0af0: c5 80 01 mov $0180,a +0af3: 6f ret + +0af4: fa 60 00 mov ($00),($60) +0af7: 8f 40 5e mov $5e,#$40 +0afa: 8f 01 59 mov $59,#$01 +0afd: 8f 08 5a mov $5a,#$08 +0b00: 8f 10 5b mov $5b,#$10 +0b03: 8f 08 5c mov $5c,#$08 +0b06: 8f 10 5d mov $5d,#$10 +0b09: 3f 2b 0b call $0b2b +0b0c: e4 00 mov a,$00 +0b0e: 64 60 cmp a,$60 +0b10: f0 18 beq $0b2a +0b12: 2d push a +0b13: 8d 00 mov y,#$00 +0b15: cd 00 mov x,#$00 +0b17: 28 0f and a,#$0f +0b19: d0 03 bne $0b1e +0b1b: 3f 16 0d call $0d16 +0b1e: ae pop a +0b1f: 8d 01 mov y,#$01 +0b21: cd 04 mov x,#$04 +0b23: 28 f0 and a,#$f0 +0b25: d0 03 bne $0b2a +0b27: 3f 16 0d call $0d16 +0b2a: 6f ret + +0b2b: 8f 08 01 mov $01,#$08 +0b2e: f8 5c mov x,$5c +0b30: f4 3d mov a,$3d+x +0b32: 10 07 bpl $0b3b +0b34: 28 7f and a,#$7f +0b36: d4 3d mov $3d+x,a +0b38: 3f 54 0b call $0b54 +0b3b: 60 clrc +0b3c: 6b 00 ror $00 +0b3e: 90 02 bcc $0b42 +0b40: e2 00 set7 $00 +0b42: e4 00 mov a,$00 +0b44: f0 0d beq $0b53 +0b46: 60 clrc +0b47: 98 08 5e adc $5e,#$08 +0b4a: ab 5d inc $5d +0b4c: ab 5d inc $5d +0b4e: ab 5c inc $5c +0b50: 6e 01 db dbnz $01,$0b2e +0b53: 6f ret + +0b54: f8 5d mov x,$5d +0b56: f5 0a 02 mov a,$020a+x +0b59: c4 0a mov $0a,a +0b5b: f5 0b 02 mov a,$020b+x +0b5e: c4 0b mov $0b,a +0b60: 3f bf 0b call $0bbf +0b63: 90 03 bcc $0b68 +0b65: 12 00 clr0 $00 +0b67: 6f ret + +0b68: f8 5d mov x,$5d +0b6a: e4 03 mov a,$03 +0b6c: 8d 00 mov y,#$00 +0b6e: 7a 0a addw ya,$0a +0b70: d5 0a 02 mov $020a+x,a +0b73: dd mov a,y +0b74: d5 0b 02 mov $020b+x,a +0b77: 6f ret + +0b78: 3f 86 0c call $0c86 +0b7b: 0d push psw +0b7c: b0 03 bcs $0b81 +0b7e: 3f 36 0d call $0d36 +0b81: 3f 0a 0e call $0e0a +0b84: 8e pop psw +0b85: 3f a0 0e call $0ea0 +0b88: f8 5c mov x,$5c +0b8a: f5 d2 02 mov a,$02d2+x +0b8d: f0 03 beq $0b92 +0b8f: d5 02 03 mov $0302+x,a +0b92: ab 03 inc $03 +0b94: 60 clrc +0b95: 6f ret + +0b96: 3f 86 0c call $0c86 +0b99: 0d push psw +0b9a: b0 03 bcs $0b9f +0b9c: 3f 50 0d call $0d50 +0b9f: 3f 0a 0e call $0e0a +0ba2: 8e pop psw +0ba3: 3f a0 0e call $0ea0 +0ba6: f8 5c mov x,$5c +0ba8: f5 d2 02 mov a,$02d2+x +0bab: f0 03 beq $0bb0 +0bad: d5 02 03 mov $0302+x,a +0bb0: ab 03 inc $03 +0bb2: 60 clrc +0bb3: 6f ret + +0bb4: 3f 0a 0e call $0e0a +0bb7: 80 setc +0bb8: 3f a0 0e call $0ea0 +0bbb: ab 03 inc $03 +0bbd: 60 clrc +0bbe: 6f ret + +0bbf: 8f ff 03 mov $03,#$ff +0bc2: ab 03 inc $03 +0bc4: eb 03 mov y,$03 +0bc6: f7 0a mov a,($0a)+y +0bc8: f0 27 beq $0bf1 +0bca: 10 20 bpl $0bec +0bcc: 68 c8 cmp a,#$c8 +0bce: 90 a8 bcc $0b78 +0bd0: 68 e0 cmp a,#$e0 +0bd2: b0 0a bcs $0bde +0bd4: 68 ca cmp a,#$ca +0bd6: b0 be bcs $0b96 +0bd8: 68 c9 cmp a,#$c9 +0bda: f0 d8 beq $0bb4 +0bdc: 2f e4 bra $0bc2 +; dispatch vcmd in A (??-ff) +0bde: 1c asl a +0bdf: 80 setc +0be0: a8 c0 sbc a,#$c0 +0be2: 5d mov x,a +0be3: e8 0b mov a,#$0b +0be5: 2d push a +0be6: e8 c2 mov a,#$c2 +0be8: 2d push a +0be9: 1f 28 0c jmp ($0c28+x) +; vcmd 01-7f +0bec: 3f 6e 0f call $0f6e +0bef: 2f d1 bra $0bc2 +0bf1: 3f f8 0b call $0bf8 +0bf4: d0 cc bne $0bc2 +0bf6: 80 setc +0bf7: 6f ret + +; vcmd 00 - end repeat/return +0bf8: f8 5c mov x,$5c +0bfa: f5 9f 04 mov a,$049f+x +0bfd: f0 28 beq $0c27 +0bff: 68 ff cmp a,#$ff +0c01: f0 06 beq $0c09 +0c03: 9c dec a +0c04: d5 9f 04 mov $049f+x,a +0c07: f0 10 beq $0c19 +0c09: f8 5d mov x,$5d +0c0b: f5 5f 04 mov a,$045f+x +0c0e: c4 0a mov $0a,a +0c10: f5 60 04 mov a,$0460+x +0c13: c4 0b mov $0b,a +0c15: 8f ff 03 mov $03,#$ff +0c18: 6f ret + +0c19: c4 03 mov $03,a +0c1b: f8 5d mov x,$5d +0c1d: f5 7f 04 mov a,$047f+x +0c20: c4 0a mov $0a,a +0c22: f5 80 04 mov a,$0480+x +0c25: c4 0b mov $0b,a +0c27: 6f ret + +; vcmd dispatch table +0c28: dw $10aa ; e0 - set instrument +0c2a: dw $106a ; e1 - pan +0c2c: dw $10a5 ; e2 - skip 2 bytes +0c2e: dw $10d2 ; e3 - vibrato on +0c30: dw $1103 ; e4 - vibrato off +0c32: dw $0fb9 ; e5 - master volume +0c34: dw $0ff8 ; e6 - master volume fade +0c36: dw $0f9b ; e7 - tempo +0c38: dw $0fb4 ; e8 - skip 2 bytes +0c3a: dw $0f90 ; e9 - global transpose +0c3c: dw $105f ; ea - per-voice transpose +0c3e: dw $111b ; eb - tremolo on +0c40: dw $110f ; ec - tremolo off +0c42: dw $1020 ; ed - volume +0c44: dw $1035 ; ee - volume fade +0c46: dw $1179 ; ef - call subroutine +0c48: dw $1100 ; f0 - skip 1 byte +0c4a: dw $114a ; f1 - pitch envelope +0c4c: dw $1178 ; f2 - nop +0c4e: dw $1103 ; f3 - vibrato off +0c50: dw $10c9 ; f4 - set perc patch base +0c52: dw $1630 ; f5 - skip 3 bytes +0c54: dw $163c ; f6 - read/write APU port 3 +0c56: dw $1636 ; f7 - skip 3 bytes +0c58: dw $163c ; f8 - read/write APU port 3 +0c5a: dw $1178 ; f9 - nop +0c5c: dw $10c9 ; fa - set perc patch base +0c5e: dw $107b ; fb - (2 bytes) +0c60: dw $163c ; fc - read/write APU port 3 +0c62: dw $119f ; fd - (4 bytes) +0c64: dw $0c69 ; fe - (2 bytes) + +; vcmd fe +0c69: fc inc y +0c6a: f7 0a mov a,($0a)+y +0c6c: 68 04 cmp a,#$04 +0c6e: b0 0c bcs $0c7c +0c70: 5d mov x,a +0c71: bc inc a +0c72: c4 d1 mov $d1,a +0c74: fc inc y +0c75: cb 03 mov $03,y +0c77: f7 0a mov a,($0a)+y +0c79: d4 d2 mov $d2+x,a +0c7b: 6f ret + +0c7c: 5d mov x,a +0c7d: bc inc a +0c7e: fc inc y +0c7f: cb 03 mov $03,y +0c81: f7 0a mov a,($0a)+y +0c83: d4 00 mov $00+x,a +0c85: 6f ret + +0c86: 2d push a +0c87: cd 07 mov x,#$07 +0c89: f4 1d mov a,$1d+x +0c8b: 10 43 bpl $0cd0 +0c8d: 1c asl a +0c8e: 30 40 bmi $0cd0 +0c90: 1d dec x +0c91: 10 f6 bpl $0c89 +0c93: f8 5c mov x,$5c +0c95: f5 87 17 mov a,$1787+x +0c98: c4 07 mov $07,a +0c9a: cd 07 mov x,#$07 +0c9c: 8f 00 04 mov $04,#$00 +0c9f: f4 1d mov a,$1d+x +0ca1: 28 0f and a,#$0f +0ca3: fd mov y,a +0ca4: f6 87 17 mov a,$1787+y +0ca7: 64 04 cmp a,$04 +0ca9: 90 06 bcc $0cb1 +0cab: c4 04 mov $04,a +0cad: d8 05 mov $05,x +0caf: cb 06 mov $06,y +0cb1: 1d dec x +0cb2: 10 eb bpl $0c9f +0cb4: 69 04 07 cmp ($07),($04) +0cb7: b0 4c bcs $0d05 +0cb9: f8 06 mov x,$06 +0cbb: f4 2d mov a,$2d+x +0cbd: 28 7f and a,#$7f +0cbf: d4 2d mov $2d+x,a +0cc1: f8 05 mov x,$05 +0cc3: f5 45 17 mov a,$1745+x +0cc6: 8f 5c f2 mov $f2,#$5c +0cc9: c4 f3 mov $f3,a +0ccb: 3f 07 0d call $0d07 +0cce: f8 05 mov x,$05 +0cd0: d8 05 mov $05,x +0cd2: e8 ff mov a,#$ff +0cd4: d4 25 mov $25+x,a +0cd6: e4 5c mov a,$5c +0cd8: 08 80 or a,#$80 +0cda: d4 1d mov $1d+x,a +0cdc: f8 5c mov x,$5c +0cde: f4 2d mov a,$2d+x +0ce0: 28 f8 and a,#$f8 +0ce2: 04 05 or a,$05 +0ce4: 08 80 or a,#$80 +0ce6: d4 2d mov $2d+x,a +0ce8: f8 59 mov x,$59 +0cea: eb 05 mov y,$05 +0cec: 2d push a +0ced: 28 10 and a,#$10 +0cef: f0 07 beq $0cf8 +0cf1: f4 55 mov a,$55+x +0cf3: 16 45 17 or a,$1745+y +0cf6: d4 55 mov $55+x,a +0cf8: ae pop a +0cf9: 28 20 and a,#$20 +0cfb: f0 07 beq $0d04 +0cfd: f4 57 mov a,$57+x +0cff: 16 45 17 or a,$1745+y +0d02: d4 57 mov $57+x,a +0d04: 60 clrc +0d05: ae pop a +0d06: 6f ret + +0d07: 48 ff eor a,#$ff +0d09: fd mov y,a +0d0a: f8 59 mov x,$59 +0d0c: 34 55 and a,$55+x +0d0e: d4 55 mov $55+x,a +0d10: dd mov a,y +0d11: 34 57 and a,$57+x +0d13: d4 57 mov $57+x,a +0d15: 6f ret + +0d16: fa 00 60 mov ($60),($00) +0d19: f6 81 01 mov a,$0181+y +0d1c: 10 17 bpl $0d35 +0d1e: e8 c0 mov a,#$c0 +0d20: d6 81 01 mov $0181+y,a +0d23: e8 00 mov a,#$00 +0d25: d4 35 mov $35+x,a +0d27: d4 36 mov $36+x,a +0d29: d4 37 mov $37+x,a +0d2b: d4 38 mov $38+x,a +0d2d: d4 45 mov $45+x,a +0d2f: d4 46 mov $46+x,a +0d31: d4 47 mov $47+x,a +0d33: d4 48 mov $48+x,a +0d35: 6f ret + +0d36: f8 59 mov x,$59 +0d38: 28 7f and a,#$7f +0d3a: 60 clrc +0d3b: 95 12 03 adc a,$0312+x +0d3e: f8 5c mov x,$5c +0d40: 95 14 03 adc a,$0314+x +0d43: 68 48 cmp a,#$48 +0d45: 90 02 bcc $0d49 +0d47: e8 47 mov a,#$47 +0d49: 3f 1a 0f call $0f1a +0d4c: 3f dc 0e call $0edc +0d4f: 6f ret + +0d50: f8 5c mov x,$5c +0d52: 75 df 03 cmp a,$03df+x +0d55: f0 29 beq $0d80 +0d57: d5 df 03 mov $03df+x,a +0d5a: 80 setc +0d5b: a8 ca sbc a,#$ca +0d5d: 60 clrc +0d5e: 85 de 03 adc a,$03de +0d61: eb 59 mov y,$59 +0d63: f0 02 beq $0d67 +0d65: 88 30 adc a,#$30 +0d67: 2d push a +0d68: f4 2d mov a,$2d+x +0d6a: 28 d7 and a,#$d7 +0d6c: c4 05 mov $05,a +0d6e: 8f 00 06 mov $06,#$00 +0d71: ae pop a +0d72: 3f 84 0d call $0d84 +0d75: e8 24 mov a,#$24 +0d77: f8 5c mov x,$5c +0d79: 60 clrc +0d7a: 95 14 03 adc a,$0314+x +0d7d: 3f 1a 0f call $0f1a +0d80: 3f dc 0e call $0edc +0d83: 6f ret + +0d84: 8f 00 06 mov $06,#$00 +0d87: 8d 06 mov y,#$06 +0d89: 68 fc cmp a,#$fc +0d8b: 90 0e bcc $0d9b +0d8d: 80 setc +0d8e: a8 fc sbc a,#$fc +0d90: cf mul ya +0d91: 60 clrc +0d92: 88 f8 adc a,#$f8 +0d94: c4 0c mov $0c,a +0d96: 8f 1d 0d mov $0d,#$1d +0d99: 2f 14 bra $0daf +0d9b: 8f 1a 0d mov $0d,#$1a +0d9e: 8f 00 0c mov $0c,#$00 +0da1: cf mul ya +0da2: 7a 0c addw ya,$0c +0da4: f8 59 mov x,$59 +0da6: f0 05 beq $0dad +0da8: fc inc y +0da9: fc inc y +0daa: 8f 40 06 mov $06,#$40 +0dad: da 0c movw $0c,ya +0daf: 8d 00 mov y,#$00 +0db1: f7 0c mov a,($0c)+y +0db3: 10 1f bpl $0dd4 +0db5: 1c asl a +0db6: 30 15 bmi $0dcd +0db8: 5c lsr a +0db9: 38 e0 50 and $50,#$e0 +0dbc: 28 1f and a,#$1f +0dbe: 04 50 or a,$50 +0dc0: c4 50 mov $50,a +0dc2: 8f 6c f2 mov $f2,#$6c +0dc5: c4 f3 mov $f3,a +0dc7: a2 05 set5 $05 +0dc9: e8 00 mov a,#$00 +0dcb: 2f 11 bra $0dde +0dcd: 5c lsr a +0dce: 48 7f eor a,#$7f +0dd0: 88 3c adc a,#$3c +0dd2: 2f 0a bra $0dde +0dd4: 60 clrc +0dd5: 84 06 adc a,$06 +0dd7: 68 70 cmp a,#$70 +0dd9: 90 03 bcc $0dde +0ddb: 80 setc +0ddc: a8 70 sbc a,#$70 +0dde: f8 5e mov x,$5e +0de0: d5 04 01 mov $0104+x,a +0de3: fc inc y +0de4: f7 0c mov a,($0c)+y +0de6: d5 05 01 mov $0105+x,a +0de9: fc inc y +0dea: f7 0c mov a,($0c)+y +0dec: d5 06 01 mov $0106+x,a +0def: fc inc y +0df0: f7 0c mov a,($0c)+y +0df2: d5 07 01 mov $0107+x,a +0df5: f8 5d mov x,$5d +0df7: fc inc y +0df8: f7 0c mov a,($0c)+y +0dfa: d5 44 03 mov $0344+x,a +0dfd: fc inc y +0dfe: f7 0c mov a,($0c)+y +0e00: d5 45 03 mov $0345+x,a +0e03: f8 5c mov x,$5c +0e05: e4 05 mov a,$05 +0e07: d4 2d mov $2d+x,a +0e09: 6f ret + +0e0a: f8 5c mov x,$5c +0e0c: f5 2a 02 mov a,$022a+x +0e0f: f8 5d mov x,$5d +0e11: d4 65 mov $65+x,a +0e13: e8 00 mov a,#$00 +0e15: d4 66 mov $66+x,a +0e17: 8f 80 04 mov $04,#$80 +0e1a: 8f 80 05 mov $05,#$80 +0e1d: eb 03 mov y,$03 +0e1f: 3f 86 0e call $0e86 +0e22: f0 08 beq $0e2c +0e24: 68 80 cmp a,#$80 +0e26: 90 05 bcc $0e2d +0e28: 68 c8 cmp a,#$c8 +0e2a: f0 1c beq $0e48 +0e2c: 6f ret + +0e2d: c4 04 mov $04,a +0e2f: 3f 86 0e call $0e86 +0e32: f0 08 beq $0e3c +0e34: 68 80 cmp a,#$80 +0e36: 90 05 bcc $0e3d +0e38: 68 c8 cmp a,#$c8 +0e3a: f0 0c beq $0e48 +0e3c: 6f ret + +0e3d: c4 05 mov $05,a +0e3f: 3f 86 0e call $0e86 +0e42: f0 f8 beq $0e3c +0e44: 68 c8 cmp a,#$c8 +0e46: d0 f4 bne $0e3c +0e48: cb 03 mov $03,y +0e4a: f8 5c mov x,$5c +0e4c: e4 04 mov a,$04 +0e4e: 30 20 bmi $0e70 +0e50: 1c asl a +0e51: d5 2a 02 mov $022a+x,a +0e54: f8 5d mov x,$5d +0e56: c4 13 mov $13,a +0e58: f4 65 mov a,$65+x +0e5a: fb 66 mov y,$66+x +0e5c: 7a 13 addw ya,$13 +0e5e: d4 65 mov $65+x,a +0e60: db 66 mov $66+x,y +0e62: e4 05 mov a,$05 +0e64: 30 b1 bmi $0e17 +0e66: 9f xcn a +0e67: 28 07 and a,#$07 +0e69: f8 5c mov x,$5c +0e6b: d5 3a 02 mov $023a+x,a +0e6e: 2f a7 bra $0e17 +0e70: f8 5c mov x,$5c +0e72: f5 2a 02 mov a,$022a+x +0e75: c4 13 mov $13,a +0e77: f8 5d mov x,$5d +0e79: f4 65 mov a,$65+x +0e7b: fb 66 mov y,$66+x +0e7d: 7a 13 addw ya,$13 +0e7f: d4 65 mov $65+x,a +0e81: db 66 mov $66+x,y +0e83: 5f 17 0e jmp $0e17 + +0e86: fc inc y +0e87: f7 0a mov a,($0a)+y +0e89: d0 09 bne $0e94 +0e8b: 3f f8 0b call $0bf8 +0e8e: f0 0f beq $0e9f +0e90: eb 03 mov y,$03 +0e92: 2f f2 bra $0e86 +0e94: 68 ef cmp a,#$ef +0e96: d0 07 bne $0e9f +0e98: 3f 79 11 call $1179 +0e9b: eb 03 mov y,$03 +0e9d: 2f e7 bra $0e86 +0e9f: 6f ret + +; get note durations +0ea0: b0 33 bcs $0ed5 +0ea2: f8 5c mov x,$5c +0ea4: f5 3a 02 mov a,$023a+x +0ea7: f8 5d mov x,$5d +0ea9: 68 07 cmp a,#$07 +0eab: f0 1b beq $0ec8 +0ead: fd mov y,a +0eae: f6 6f 17 mov a,$176f+y +0eb1: c4 04 mov $04,a +0eb3: f4 65 mov a,$65+x +0eb5: fb 66 mov y,$66+x +0eb7: cb 05 mov $05,y +0eb9: eb 04 mov y,$04 +0ebb: cf mul ya +0ebc: cb 13 mov $13,y +0ebe: ba 04 movw ya,$04 +0ec0: cf mul ya +0ec1: 7a 13 addw ya,$13 +0ec3: d4 85 mov $85+x,a +0ec5: db 86 mov $86+x,y +0ec7: 6f ret + +0ec8: f4 65 mov a,$65+x +0eca: fb 66 mov y,$66+x +0ecc: 9a 10 subw ya,$10 +0ece: 9a 10 subw ya,$10 +0ed0: d4 85 mov $85+x,a +0ed2: db 86 mov $86+x,y +0ed4: 6f ret + +0ed5: f8 5d mov x,$5d +0ed7: e8 80 mov a,#$80 +0ed9: d4 86 mov $86+x,a +0edb: 6f ret + +0edc: f8 5c mov x,$5c +0ede: e8 ff mov a,#$ff +0ee0: d5 8d 03 mov $038d+x,a +0ee3: f5 ef 03 mov a,$03ef+x +0ee6: f0 10 beq $0ef8 +0ee8: f5 ff 03 mov a,$03ff+x +0eeb: d4 aa mov $aa+x,a +0eed: e8 00 mov a,#$00 +0eef: d5 2f 04 mov $042f+x,a +0ef2: f5 0f 04 mov a,$040f+x +0ef5: d5 1f 04 mov $041f+x,a +0ef8: f5 10 ff mov a,$ff10+x +0efb: f0 1c beq $0f19 +0efd: f5 00 ff mov a,$ff00+x +0f00: d4 ba mov $ba+x,a +0f02: e8 00 mov a,#$00 +0f04: d5 30 ff mov $ff30+x,a +0f07: f5 10 ff mov a,$ff10+x +0f0a: d5 20 ff mov $ff20+x,a +0f0d: f8 5d mov x,$5d +0f0f: e8 00 mov a,#$00 +0f11: d5 60 ff mov $ff60+x,a +0f14: e8 80 mov a,#$80 +0f16: d5 61 ff mov $ff61+x,a +0f19: 6f ret + +0f1a: 8d 00 mov y,#$00 +0f1c: cd 0c mov x,#$0c +0f1e: 9e div ya,x +0f1f: c4 04 mov $04,a +0f21: dd mov a,y +0f22: 1c asl a +0f23: 5d mov x,a +0f24: f5 56 17 mov a,$1756+x +0f27: fd mov y,a +0f28: f5 55 17 mov a,$1755+x +0f2b: da 0c movw $0c,ya +0f2d: f8 5d mov x,$5d +0f2f: f5 44 03 mov a,$0344+x +0f32: eb 0d mov y,$0d +0f34: cf mul ya +0f35: da 0e movw $0e,ya +0f37: f5 44 03 mov a,$0344+x +0f3a: eb 0c mov y,$0c +0f3c: cf mul ya +0f3d: 6d push y +0f3e: f5 45 03 mov a,$0345+x +0f41: eb 0c mov y,$0c +0f43: cf mul ya +0f44: 7a 0e addw ya,$0e +0f46: da 0e movw $0e,ya +0f48: f5 45 03 mov a,$0345+x +0f4b: eb 0d mov y,$0d +0f4d: cf mul ya +0f4e: fd mov y,a +0f4f: ae pop a +0f50: 7a 0e addw ya,$0e +0f52: da 0c movw $0c,ya +0f54: e8 05 mov a,#$05 +0f56: 80 setc +0f57: a4 04 sbc a,$04 +0f59: f0 07 beq $0f62 +0f5b: fd mov y,a +0f5c: 4b 0d lsr $0d +0f5e: 6b 0c ror $0c +0f60: fe fa dbnz y,$0f5c +0f62: f8 5e mov x,$5e +0f64: ba 0c movw ya,$0c +0f66: d5 02 01 mov $0102+x,a +0f69: dd mov a,y +0f6a: d5 03 01 mov $0103+x,a +0f6d: 6f ret + +; get velocity values +0f6e: f8 5c mov x,$5c +0f70: 1c asl a +0f71: d5 2a 02 mov $022a+x,a +0f74: fc inc y +0f75: f7 0a mov a,($0a)+y +0f77: 30 16 bmi $0f8f +0f79: cb 03 mov $03,y +0f7b: 2d push a +0f7c: 28 0f and a,#$0f +0f7e: fd mov y,a +0f7f: f6 77 17 mov a,$1777+y +0f82: d5 4a 02 mov $024a+x,a +0f85: d5 02 03 mov $0302+x,a +0f88: ae pop a +0f89: 9f xcn a +0f8a: 28 07 and a,#$07 +0f8c: d5 3a 02 mov $023a+x,a +0f8f: 6f ret + +; vcmd e9 - global transpose +0f90: fc inc y +0f91: f7 0a mov a,($0a)+y +0f93: cb 03 mov $03,y +0f95: f8 59 mov x,$59 +0f97: d5 12 03 mov $0312+x,a +0f9a: 6f ret + +; vcmd e7 - tempo +0f9b: fc inc y +0f9c: f7 0a mov a,($0a)+y +0f9e: cb 03 mov $03,y +0fa0: 5d mov x,a +0fa1: e8 2a mov a,#$2a +0fa3: 8d 08 mov y,#$08 +0fa5: 9e div ya,x +0fa6: c5 6a 03 mov $036a,a +0fa9: c5 6b 03 mov $036b,a +0fac: e8 00 mov a,#$00 +0fae: c4 a9 mov $a9,a +0fb0: 18 01 4f or $4f,#$01 +0fb3: 6f ret + +; vcmd e8 - skip 2 bytes +0fb4: fc inc y +0fb5: fc inc y +0fb6: cb 03 mov $03,y +0fb8: 6f ret + +; vcmd e5 - master volume +0fb9: e5 c0 04 mov a,$04c0 +0fbc: d0 36 bne $0ff4 +0fbe: e5 c1 04 mov a,$04c1 +0fc1: d0 18 bne $0fdb +0fc3: fc inc y +0fc4: cb 03 mov $03,y +0fc6: f7 0a mov a,($0a)+y +0fc8: c5 6a 02 mov $026a,a +0fcb: c5 6d 02 mov $026d,a +0fce: e8 00 mov a,#$00 +0fd0: c4 a7 mov $a7,a +0fd2: bc inc a +0fd3: 8d 08 mov y,#$08 +0fd5: d6 01 03 mov $0301+y,a +0fd8: fe fb dbnz y,$0fd5 +0fda: 6f ret + +0fdb: e8 00 mov a,#$00 +0fdd: c5 c1 04 mov $04c1,a +0fe0: c5 6a 02 mov $026a,a +0fe3: c5 6d 02 mov $026d,a +0fe6: bc inc a +0fe7: c5 c0 04 mov $04c0,a +0fea: fc inc y +0feb: cb 03 mov $03,y +0fed: f7 0a mov a,($0a)+y +0fef: fd mov y,a +0ff0: 3f 79 0a call $0a79 +0ff3: 6f ret + +0ff4: fc inc y +0ff5: cb 03 mov $03,y +0ff7: 6f ret + +; vcmd e6 - master volume fade +0ff8: e5 c0 04 mov a,$04c0 +0ffb: d0 f7 bne $0ff4 +0ffd: e8 00 mov a,#$00 +0fff: c5 6c 02 mov $026c,a +1002: c4 a8 mov $a8,a +1004: fc inc y +1005: f7 0a mov a,($0a)+y +1007: c4 a7 mov $a7,a +1009: 5d mov x,a +100a: fc inc y +100b: f7 0a mov a,($0a)+y +100d: cb 03 mov $03,y +100f: c5 6a 02 mov $026a,a +1012: 80 setc +1013: a5 6d 02 sbc a,$026d +1016: 3f 7a 16 call $167a +1019: c5 70 02 mov $0270,a +101c: cc 71 02 mov $0271,y +101f: 6f ret + +; vcmd ed - volume +1020: fc inc y +1021: cb 03 mov $03,y +1023: f7 0a mov a,($0a)+y +1025: f8 5d mov x,$5d +1027: d5 b3 02 mov $02b3+x,a +102a: f8 5c mov x,$5c +102c: d5 72 02 mov $0272+x,a +102f: e8 01 mov a,#$01 +1031: d5 02 03 mov $0302+x,a +1034: 6f ret + +; vcmd ee - volume fade +1035: f8 5c mov x,$5c +1037: fc inc y +1038: f7 0a mov a,($0a)+y +103a: d5 d2 02 mov $02d2+x,a +103d: 2d push a +103e: fc inc y +103f: cb 03 mov $03,y +1041: f7 0a mov a,($0a)+y +1043: d5 72 02 mov $0272+x,a +1046: eb 5d mov y,$5d +1048: ce pop x +1049: 80 setc +104a: b6 b3 02 sbc a,$02b3+y +104d: 3f 7a 16 call $167a +1050: f8 5d mov x,$5d +1052: d5 e2 02 mov $02e2+x,a +1055: dd mov a,y +1056: d5 e3 02 mov $02e3+x,a +1059: e8 00 mov a,#$00 +105b: d5 b2 02 mov $02b2+x,a +105e: 6f ret + +; vcmd ea - per-voice transpose +105f: fc inc y +1060: f7 0a mov a,($0a)+y +1062: cb 03 mov $03,y +1064: f8 5c mov x,$5c +1066: d5 14 03 mov $0314+x,a +1069: 6f ret + +; vcmd e1 - pan +106a: f8 5c mov x,$5c +106c: e8 00 mov a,#$00 +106e: d5 9d 03 mov $039d+x,a +1071: bc inc a +1072: d5 8d 03 mov $038d+x,a +1075: 3f 97 10 call $1097 +1078: cb 03 mov $03,y +107a: 6f ret + +; vcmd fb +107b: f8 5c mov x,$5c +107d: e8 00 mov a,#$00 +107f: d5 9d 03 mov $039d+x,a +1082: bc inc a +1083: d5 8d 03 mov $038d+x,a +1086: 3f d6 11 call $11d6 +1089: 0d push psw +108a: d0 01 bne $108d +108c: fc inc y +108d: 3f 97 10 call $1097 +1090: 8e pop psw +1091: f0 01 beq $1094 +1093: fc inc y +1094: cb 03 mov $03,y +1096: 6f ret + +1097: fc inc y +1098: f7 0a mov a,($0a)+y +109a: f8 5d mov x,$5d +109c: d5 6e 03 mov $036e+x,a +109f: e8 00 mov a,#$00 +10a1: d5 6d 03 mov $036d+x,a +10a4: 6f ret + +; vcmd e2 - skip 2 bytes +10a5: fc inc y +10a6: fc inc y +10a7: cb 03 mov $03,y +10a9: 6f ret + +; vcmd e0 - set instrument +10aa: f8 5c mov x,$5c +10ac: e8 ff mov a,#$ff +10ae: d5 df 03 mov $03df+x,a +10b1: f4 2d mov a,$2d+x +10b3: 28 d7 and a,#$d7 +10b5: c4 05 mov $05,a +10b7: fc inc y +10b8: cb 03 mov $03,y +10ba: f7 0a mov a,($0a)+y +10bc: d5 af 04 mov $04af+x,a +10bf: 68 fc cmp a,#$fc +10c1: b0 02 bcs $10c5 +10c3: 28 7f and a,#$7f +10c5: 3f 84 0d call $0d84 +10c8: 6f ret + +; vcmd f4/fa - set perc patch base +10c9: fc inc y +10ca: f7 0a mov a,($0a)+y +10cc: cb 03 mov $03,y +10ce: c5 de 03 mov $03de,a +10d1: 6f ret + +; vcmd e3 - vibrato on +10d2: f8 5c mov x,$5c +10d4: e8 01 mov a,#$01 +10d6: d5 ef 03 mov $03ef+x,a +10d9: d5 8d 03 mov $038d+x,a +10dc: fc inc y +10dd: f7 0a mov a,($0a)+y +10df: d5 ff 03 mov $03ff+x,a +10e2: fc inc y +10e3: 80 setc +10e4: e8 00 mov a,#$00 +10e6: b7 0a sbc a,($0a)+y +10e8: d5 0f 04 mov $040f+x,a +10eb: 2d push a +10ec: fc inc y +10ed: cb 03 mov $03,y +10ef: f7 0a mov a,($0a)+y +10f1: ce pop x +10f2: 8d 00 mov y,#$00 +10f4: 9e div ya,x +10f5: f8 5d mov x,$5d +10f7: d5 3f 04 mov $043f+x,a +10fa: e8 00 mov a,#$00 +10fc: d5 40 04 mov $0440+x,a +10ff: 6f ret + +; vcmd f0 - skip 1 byte +1100: ab 03 inc $03 +1102: 6f ret + +; vcmd e4/f3 - vibrato off +1103: f8 5c mov x,$5c +1105: e8 00 mov a,#$00 +1107: d5 ef 03 mov $03ef+x,a +110a: bc inc a +110b: d5 8d 03 mov $038d+x,a +110e: 6f ret + +; vcmd ec - tremolo off +110f: f8 5c mov x,$5c +1111: e8 00 mov a,#$00 +1113: d5 10 ff mov $ff10+x,a +1116: bc inc a +1117: d5 8d 03 mov $038d+x,a +111a: 6f ret + +; vcmd eb - tremolo on +111b: f8 5c mov x,$5c +111d: e8 03 mov a,#$03 +111f: d5 8d 03 mov $038d+x,a +1122: fc inc y +1123: f7 0a mov a,($0a)+y +1125: d5 00 ff mov $ff00+x,a +1128: fc inc y +1129: 80 setc +112a: e8 00 mov a,#$00 +112c: b7 0a sbc a,($0a)+y +112e: d5 10 ff mov $ff10+x,a +1131: 2d push a +1132: fc inc y +1133: cb 03 mov $03,y +1135: f7 0a mov a,($0a)+y +1137: ce pop x +1138: 8d 00 mov y,#$00 +113a: 9e div ya,x +113b: 2d push a +113c: e8 00 mov a,#$00 +113e: 9e div ya,x +113f: ee pop y +1140: f8 5d mov x,$5d +1142: d5 40 ff mov $ff40+x,a +1145: dd mov a,y +1146: d5 41 ff mov $ff41+x,a +1149: 6f ret + +; vcmd f1 - pitch envelope +114a: f8 5c mov x,$5c +114c: e8 02 mov a,#$02 +114e: d5 ef 03 mov $03ef+x,a +1151: d5 8d 03 mov $038d+x,a +1154: fc inc y +1155: f7 0a mov a,($0a)+y +1157: d5 ff 03 mov $03ff+x,a +115a: fc inc y +115b: f7 0a mov a,($0a)+y +115d: d5 0f 04 mov $040f+x,a +1160: fc inc y +1161: cb 03 mov $03,y +1163: f8 5d mov x,$5d +1165: f7 0a mov a,($0a)+y +1167: d5 3f 04 mov $043f+x,a +116a: 30 06 bmi $1172 +116c: e8 00 mov a,#$00 +116e: d5 40 04 mov $0440+x,a +1171: 6f ret + +1172: e8 ff mov a,#$ff +1174: d5 40 04 mov $0440+x,a +1177: 6f ret + +; vcmd f2/f9 - nop +1178: 6f ret + +; vcmd ef - call subroutine +1179: f8 5d mov x,$5d +117b: fc inc y +117c: f7 0a mov a,($0a)+y +117e: d5 5f 04 mov $045f+x,a +1181: 2d push a +1182: fc inc y +1183: f7 0a mov a,($0a)+y +1185: d5 60 04 mov $0460+x,a +1188: 2d push a +1189: f8 5c mov x,$5c +118b: fc inc y +118c: f7 0a mov a,($0a)+y +118e: d5 9f 04 mov $049f+x,a +1191: dd mov a,y +1192: 3f c6 11 call $11c6 +1195: 8f ff 03 mov $03,#$ff +1198: ae pop a +1199: c4 0b mov $0b,a +119b: ae pop a +119c: c4 0a mov $0a,a +119e: 6f ret + +; vcmd fd +119f: 6d push y +11a0: dd mov a,y +11a1: 60 clrc +11a2: 88 04 adc a,#$04 +11a4: 3f c6 11 call $11c6 +11a7: ee pop y +11a8: f8 5c mov x,$5c +11aa: e8 01 mov a,#$01 +11ac: d5 9f 04 mov $049f+x,a +11af: 3f d6 11 call $11d6 +11b2: d0 02 bne $11b6 +11b4: fc inc y +11b5: fc inc y +11b6: fc inc y +11b7: f7 0a mov a,($0a)+y +11b9: 2d push a +11ba: fc inc y +11bb: f7 0a mov a,($0a)+y +11bd: c4 0b mov $0b,a +11bf: ae pop a +11c0: c4 0a mov $0a,a +11c2: 8f ff 03 mov $03,#$ff +11c5: 6f ret + +11c6: f8 5d mov x,$5d +11c8: 60 clrc +11c9: 84 0a adc a,$0a +11cb: d5 7f 04 mov $047f+x,a +11ce: e8 00 mov a,#$00 +11d0: 84 0b adc a,$0b +11d2: d5 80 04 mov $0480+x,a +11d5: 6f ret + +11d6: 7d mov a,x +11d7: 28 07 and a,#$07 +11d9: 5c lsr a +11da: 5c lsr a +11db: 5d mov x,a +11dc: f4 a5 mov a,$a5+x +11de: 6f ret + +11df: 8d 01 mov y,#$01 +11e1: f7 4d mov a,($4d)+y +11e3: f0 15 beq $11fa +11e5: c4 0b mov $0b,a +11e7: dc dec y +11e8: f7 4d mov a,($4d)+y +11ea: c4 0a mov $0a,a +11ec: 60 clrc +11ed: dd mov a,y +11ee: 88 02 adc a,#$02 +11f0: 84 4d adc a,$4d +11f2: c4 4d mov $4d,a +11f4: 90 02 bcc $11f8 +11f6: ab 4e inc $4e +11f8: 60 clrc +11f9: 6f ret + +11fa: dc dec y +11fb: f7 4d mov a,($4d)+y +11fd: f0 2b beq $122a +11ff: e9 64 03 mov x,$0364 +1202: d0 08 bne $120c +1204: 68 ff cmp a,#$ff +1206: f0 01 beq $1209 +1208: bc inc a +1209: c5 64 03 mov $0364,a +120c: e5 64 03 mov a,$0364 +120f: 68 ff cmp a,#$ff +1211: f0 05 beq $1218 +1213: 8c 64 03 dec $0364 +1216: f0 0e beq $1226 +1218: 8d 02 mov y,#$02 +121a: f7 4d mov a,($4d)+y +121c: 5d mov x,a +121d: fc inc y +121e: f7 4d mov a,($4d)+y +1220: c4 4e mov $4e,a +1222: d8 4d mov $4d,x +1224: 2f b9 bra $11df +1226: 8d 05 mov y,#$05 +1228: 2f b7 bra $11e1 +122a: c4 4e mov $4e,a +122c: 80 setc +122d: 6f ret + +122e: 8d 00 mov y,#$00 +1230: cd 00 mov x,#$00 +1232: 8f 08 00 mov $00,#$08 +1235: 8f 00 5f mov $5f,#$00 +1238: 4b 5f lsr $5f +123a: e8 00 mov a,#$00 +123c: d5 df 03 mov $03df+x,a +123f: f7 0a mov a,($0a)+y +1241: d6 0a 02 mov $020a+y,a +1244: fc inc y +1245: f7 0a mov a,($0a)+y +1247: d6 0a 02 mov $020a+y,a +124a: f0 07 beq $1253 +124c: 7d mov a,x +124d: 08 c0 or a,#$c0 +124f: d4 3d mov $3d+x,a +1251: e2 5f set7 $5f +1253: 3d inc x +1254: fc inc y +1255: 6e 00 e0 dbnz $00,$1238 +1258: 6f ret + +1259: e5 80 01 mov a,$0180 +125c: 10 0e bpl $126c +125e: 1c asl a +125f: 30 0b bmi $126c +1261: e8 c0 mov a,#$c0 +1263: c5 80 01 mov $0180,a +1266: 8f 00 5f mov $5f,#$00 +1269: 3f 6d 12 call $126d +126c: 6f ret + +126d: cd 07 mov x,#$07 +126f: 8f 00 00 mov $00,#$00 +1272: f4 2d mov a,$2d+x +1274: 10 16 bpl $128c +1276: 28 07 and a,#$07 +1278: fd mov y,a +1279: e4 5f mov a,$5f +127b: d0 08 bne $1285 +127d: f6 1d 00 mov a,$001d+y +1280: 08 40 or a,#$40 +1282: d6 1d 00 mov $001d+y,a +1285: f6 45 17 mov a,$1745+y +1288: 04 00 or a,$00 +128a: c4 00 mov $00,a +128c: e4 5f mov a,$5f +128e: d0 02 bne $1292 +1290: d4 2d mov $2d+x,a +1292: 1d dec x +1293: 10 dd bpl $1272 +1295: 8f 5c f2 mov $f2,#$5c +1298: fa 00 f3 mov ($f3),($00) +129b: 6f ret + +129c: cd 07 mov x,#$07 +129e: e8 00 mov a,#$00 +12a0: d4 2d mov $2d+x,a +12a2: d4 3d mov $3d+x,a +12a4: d5 14 03 mov $0314+x,a +12a7: d5 24 03 mov $0324+x,a +12aa: d5 df 03 mov $03df+x,a +12ad: d5 9f 04 mov $049f+x,a +12b0: d5 ef 03 mov $03ef+x,a +12b3: d5 10 ff mov $ff10+x,a +12b6: e8 dc mov a,#$dc +12b8: d5 8d 03 mov $038d+x,a +12bb: d5 72 02 mov $0272+x,a +12be: d5 02 03 mov $0302+x,a +12c1: 1d dec x +12c2: 10 da bpl $129e +12c4: cd 0f mov x,#$0f +12c6: e8 ff mov a,#$ff +12c8: d5 b2 02 mov $02b2+x,a +12cb: e8 0a mov a,#$0a +12cd: d5 6d 03 mov $036d+x,a +12d0: dd mov a,y +12d1: d5 6c 03 mov $036c+x,a +12d4: 1d dec x +12d5: 1d dec x +12d6: 10 ee bpl $12c6 +12d8: 8f 64 ca mov $ca,#$64 +12db: e8 00 mov a,#$00 +12dd: c5 c0 04 mov $04c0,a +12e0: c5 6c 03 mov $036c,a +12e3: c5 bf 04 mov $04bf,a +12e6: c5 12 03 mov $0312,a +12e9: c5 db 03 mov $03db,a +12ec: c4 57 mov $57,a +12ee: c4 55 mov $55,a +12f0: 8f 01 61 mov $61,#$01 +12f3: 6f ret + +12f4: f8 00 mov x,$00 +12f6: f5 81 01 mov a,$0181+x +12f9: 10 40 bpl $133b +12fb: 1c asl a +12fc: 30 3d bmi $133b +12fe: f5 3c 13 mov a,$133c+x +1301: 24 60 and a,$60 +1303: c4 60 mov $60,a +1305: e8 c0 mov a,#$c0 +1307: d5 81 01 mov $0181+x,a +130a: 7d mov a,x +130b: 1c asl a +130c: 1c asl a +130d: 5d mov x,a +130e: 8f 00 02 mov $02,#$00 +1311: 8f 04 03 mov $03,#$04 +1314: f4 45 mov a,$45+x +1316: f0 16 beq $132e +1318: f4 35 mov a,$35+x +131a: 10 12 bpl $132e +131c: 4d push x +131d: 28 07 and a,#$07 +131f: 5d mov x,a +1320: f4 1d mov a,$1d+x +1322: 08 40 or a,#$40 +1324: d4 1d mov $1d+x,a +1326: f5 45 17 mov a,$1745+x +1329: 04 02 or a,$02 +132b: c4 02 mov $02,a +132d: ce pop x +132e: 3d inc x +132f: 6e 03 e2 dbnz $03,$1314 +1332: 8f 5c f2 mov $f2,#$5c +1335: fa 02 f3 mov ($f3),($02) +1338: 8f 00 58 mov $58,#$00 +133b: 6f ret + +133c: db $f0,$0f + +133e: 8f 04 01 mov $01,#$04 +1341: e4 00 mov a,$00 +1343: 1c asl a +1344: 1c asl a +1345: 5d mov x,a +1346: 1c asl a +1347: fd mov y,a +1348: e8 00 mov a,#$00 +134a: d4 35 mov $35+x,a +134c: d4 45 mov $45+x,a +134e: d5 95 03 mov $0395+x,a +1351: d5 0a 03 mov $030a+x,a +1354: d5 1c 03 mov $031c+x,a +1357: d5 2c 03 mov $032c+x,a +135a: d5 a7 04 mov $04a7+x,a +135d: d5 f7 03 mov $03f7+x,a +1360: d5 18 ff mov $ff18+x,a +1363: d6 7d 03 mov $037d+y,a +1366: e8 0a mov a,#$0a +1368: d6 7e 03 mov $037e+y,a +136b: e8 dc mov a,#$dc +136d: d5 7a 02 mov $027a+x,a +1370: e8 dc mov a,#$dc +1372: d6 c3 02 mov $02c3+y,a +1375: 3d inc x +1376: fc inc y +1377: fc inc y +1378: 6e 01 cd dbnz $01,$1348 +137b: e8 00 mov a,#$00 +137d: c4 58 mov $58,a +137f: e8 e6 mov a,#$e6 +1381: c5 6b 02 mov $026b,a +1384: c5 6f 02 mov $026f,a +1387: 6f ret + +1388: 8f 08 03 mov $03,#$08 +138b: f8 01 mov x,$01 +138d: f4 2d mov a,$2d+x +138f: 10 13 bpl $13a4 +1391: 3f d5 13 call $13d5 +1394: 3f 2c 14 call $142c +1397: 3f 8c 14 call $148c +139a: f8 01 mov x,$01 +139c: e8 00 mov a,#$00 +139e: d5 02 03 mov $0302+x,a +13a1: d5 8d 03 mov $038d+x,a +13a4: f8 01 mov x,$01 +13a6: f5 d2 02 mov a,$02d2+x +13a9: f0 1c beq $13c7 +13ab: d5 02 03 mov $0302+x,a +13ae: 9c dec a +13af: d5 d2 02 mov $02d2+x,a +13b2: f8 02 mov x,$02 +13b4: f5 e2 02 mov a,$02e2+x +13b7: 60 clrc +13b8: 95 b2 02 adc a,$02b2+x +13bb: d5 b2 02 mov $02b2+x,a +13be: f5 e3 02 mov a,$02e3+x +13c1: 95 b3 02 adc a,$02b3+x +13c4: d5 b3 02 mov $02b3+x,a +13c7: 60 clrc +13c8: 98 08 00 adc $00,#$08 +13cb: ab 01 inc $01 +13cd: ab 02 inc $02 +13cf: ab 02 inc $02 +13d1: 6e 03 b7 dbnz $03,$138b +13d4: 6f ret + +13d5: f8 01 mov x,$01 +13d7: f5 02 03 mov a,$0302+x +13da: d0 06 bne $13e2 +13dc: f5 8d 03 mov a,$038d+x +13df: d0 11 bne $13f2 +13e1: 6f ret + +13e2: f5 4a 02 mov a,$024a+x +13e5: fd mov y,a +13e6: f8 02 mov x,$02 +13e8: f5 b3 02 mov a,$02b3+x +13eb: cf mul ya +13ec: dd mov a,y +13ed: f8 01 mov x,$01 +13ef: d5 82 02 mov $0282+x,a +13f2: f5 82 02 mov a,$0282+x +13f5: fd mov y,a +13f6: e4 59 mov a,$59 +13f8: 1c asl a +13f9: 5d mov x,a +13fa: f5 6d 02 mov a,$026d+x +13fd: cf mul ya +13fe: dd mov a,y +13ff: cf mul ya +1400: cb 06 mov $06,y +1402: f8 1b mov x,$1b +1404: f0 04 beq $140a +1406: cd 14 mov x,#$14 +1408: 2f 07 bra $1411 +140a: f8 02 mov x,$02 +140c: f5 6e 03 mov a,$036e+x +140f: 1c asl a +1410: 5d mov x,a +1411: f5 97 17 mov a,$1797+x +1414: 2d push a +1415: f5 98 17 mov a,$1798+x +1418: c4 05 mov $05,a +141a: f8 01 mov x,$01 +141c: eb 06 mov y,$06 +141e: cf mul ya +141f: dd mov a,y +1420: d5 a2 02 mov $02a2+x,a +1423: ae pop a +1424: eb 06 mov y,$06 +1426: cf mul ya +1427: dd mov a,y +1428: d5 92 02 mov $0292+x,a +142b: 6f ret + +142c: f8 01 mov x,$01 +142e: f5 10 ff mov a,$ff10+x +1431: f0 33 beq $1466 +1433: f4 ba mov a,$ba+x +1435: d0 2f bne $1466 +1437: f5 92 02 mov a,$0292+x +143a: c4 04 mov $04,a +143c: f5 a2 02 mov a,$02a2+x +143f: c4 05 mov $05,a +1441: f8 02 mov x,$02 +1443: f5 61 ff mov a,$ff61+x +1446: c4 06 mov $06,a +1448: eb 04 mov y,$04 +144a: cf mul ya +144b: cd 80 mov x,#$80 +144d: 9e div ya,x +144e: f8 00 mov x,$00 +1450: d5 00 01 mov $0100+x,a +1453: e4 06 mov a,$06 +1455: eb 05 mov y,$05 +1457: cf mul ya +1458: cd 80 mov x,#$80 +145a: 9e div ya,x +145b: f8 00 mov x,$00 +145d: d5 01 01 mov $0101+x,a +1460: e8 03 mov a,#$03 +1462: 3f 6e 15 call $156e +1465: 6f ret + +1466: eb 01 mov y,$01 +1468: f6 02 03 mov a,$0302+y +146b: 16 8d 03 or a,$038d+y +146e: f0 1b beq $148b +1470: e8 00 mov a,#$00 +1472: d6 02 03 mov $0302+y,a +1475: d6 8d 03 mov $038d+y,a +1478: f8 00 mov x,$00 +147a: f6 92 02 mov a,$0292+y +147d: d5 00 01 mov $0100+x,a +1480: f6 a2 02 mov a,$02a2+y +1483: d5 01 01 mov $0101+x,a +1486: e8 03 mov a,#$03 +1488: 3f 6e 15 call $156e +148b: 6f ret + +148c: 8f 00 04 mov $04,#$00 +148f: f8 01 mov x,$01 +1491: f5 ef 03 mov a,$03ef+x +1494: f0 0c beq $14a2 +1496: fb aa mov y,$aa+x +1498: d0 05 bne $149f +149a: 1c asl a +149b: 5d mov x,a +149c: 1f a5 14 jmp ($14a5+x) + +149f: dc dec y +14a0: db aa mov $aa+x,y +14a2: 5f f2 14 jmp $14f2 + +14a5: dw $14a2 +14a7: dw $14ab +14a9: dw $14e5 + +14ab: f8 01 mov x,$01 +14ad: f5 1f 04 mov a,$041f+x +14b0: d0 2d bne $14df +14b2: f5 0f 04 mov a,$040f+x +14b5: d5 1f 04 mov $041f+x,a +14b8: f5 2f 04 mov a,$042f+x +14bb: bc inc a +14bc: 28 03 and a,#$03 +14be: d5 2f 04 mov $042f+x,a +14c1: 5c lsr a +14c2: 90 18 bcc $14dc +14c4: f8 02 mov x,$02 +14c6: f5 40 04 mov a,$0440+x +14c9: fd mov y,a +14ca: f5 3f 04 mov a,$043f+x +14cd: da 0a movw $0a,ya +14cf: ba 11 movw ya,$11 +14d1: 9a 0a subw ya,$0a +14d3: d5 3f 04 mov $043f+x,a +14d6: dd mov a,y +14d7: d5 40 04 mov $0440+x,a +14da: f8 01 mov x,$01 +14dc: f5 1f 04 mov a,$041f+x +14df: 3f 4d 15 call $154d +14e2: 5f f2 14 jmp $14f2 + +14e5: f8 01 mov x,$01 +14e7: f5 1f 04 mov a,$041f+x +14ea: f0 06 beq $14f2 +14ec: 68 ff cmp a,#$ff +14ee: f0 61 beq $1551 +14f0: 2f 5b bra $154d +14f2: f8 01 mov x,$01 +14f4: f5 10 ff mov a,$ff10+x +14f7: f0 4f beq $1548 +14f9: fb ba mov y,$ba+x +14fb: d0 4c bne $1549 +14fd: f5 20 ff mov a,$ff20+x +1500: d0 2d bne $152f +1502: f5 10 ff mov a,$ff10+x +1505: d5 20 ff mov $ff20+x,a +1508: f5 30 ff mov a,$ff30+x +150b: bc inc a +150c: 28 03 and a,#$03 +150e: d5 30 ff mov $ff30+x,a +1511: 5c lsr a +1512: 90 18 bcc $152c +1514: f8 02 mov x,$02 +1516: f5 41 ff mov a,$ff41+x +1519: fd mov y,a +151a: f5 40 ff mov a,$ff40+x +151d: da 0a movw $0a,ya +151f: ba 11 movw ya,$11 +1521: 9a 0a subw ya,$0a +1523: d5 40 ff mov $ff40+x,a +1526: dd mov a,y +1527: d5 41 ff mov $ff41+x,a +152a: f8 01 mov x,$01 +152c: f5 20 ff mov a,$ff20+x +152f: 9c dec a +1530: d5 20 ff mov $ff20+x,a +1533: f8 02 mov x,$02 +1535: f5 40 ff mov a,$ff40+x +1538: 60 clrc +1539: 95 60 ff adc a,$ff60+x +153c: d5 60 ff mov $ff60+x,a +153f: f5 41 ff mov a,$ff41+x +1542: 95 61 ff adc a,$ff61+x +1545: d5 61 ff mov $ff61+x,a +1548: 6f ret + +1549: dc dec y +154a: db ba mov $ba+x,y +154c: 6f ret + +154d: 9c dec a +154e: d5 1f 04 mov $041f+x,a +1551: f8 02 mov x,$02 +1553: eb 00 mov y,$00 +1555: f5 3f 04 mov a,$043f+x +1558: 60 clrc +1559: 96 02 01 adc a,$0102+y +155c: d6 02 01 mov $0102+y,a +155f: f5 40 04 mov a,$0440+x +1562: 96 03 01 adc a,$0103+y +1565: d6 03 01 mov $0103+y,a +1568: e8 0c mov a,#$0c +156a: 3f 6e 15 call $156e +156d: 6f ret + +156e: fd mov y,a +156f: f8 01 mov x,$01 +1571: f4 2d mov a,$2d+x +1573: 28 07 and a,#$07 +1575: 5d mov x,a +1576: dd mov a,y +1577: 14 25 or a,$25+x +1579: d4 25 mov $25+x,a +157b: 6f ret + +157c: f8 1b mov x,$1b +157e: f0 04 beq $1584 +1580: e8 0a mov a,#$0a +1582: 2f 21 bra $15a5 +1584: f8 02 mov x,$02 +1586: f5 6e 03 mov a,$036e+x +1589: 68 0a cmp a,#$0a +158b: f0 18 beq $15a5 +158d: 90 0f bcc $159e +158f: 80 setc +1590: c4 04 mov $04,a +1592: e8 14 mov a,#$14 +1594: a4 04 sbc a,$04 +1596: 5d mov x,a +1597: f5 97 17 mov a,$1797+x +159a: fd mov y,a +159b: e8 55 mov a,#$55 +159d: 6f ret + +159e: fd mov y,a +159f: f6 97 17 mov a,$1797+y +15a2: 8d 55 mov y,#$55 +15a4: 6f ret + +15a5: e8 55 mov a,#$55 +15a7: fd mov y,a +15a8: 6f ret + +15a9: e8 00 mov a,#$00 +15ab: c4 f7 mov $f7,a +15ad: c4 1a mov $1a,a +15af: 3f 40 09 call $0940 +15b2: 3f fb 15 call $15fb +15b5: 5f 00 05 jmp $0500 + +15b8: e8 00 mov a,#$00 +15ba: c4 f7 mov $f7,a +15bc: c4 1a mov $1a,a +15be: 3f 59 12 call $1259 +15c1: 2f 0e bra $15d1 +15c3: e8 00 mov a,#$00 +15c5: c4 f7 mov $f7,a +15c7: c4 1a mov $1a,a +15c9: 78 15 19 cmp $19,#$15 +15cc: f0 03 beq $15d1 +15ce: 3f 40 09 call $0940 +15d1: 8f 00 00 mov $00,#$00 +15d4: 3f f4 12 call $12f4 +15d7: 8f 01 00 mov $00,#$01 +15da: 3f f4 12 call $12f4 +15dd: 3f fb 15 call $15fb +15e0: 78 15 19 cmp $19,#$15 +15e3: f0 05 beq $15ea +15e5: 3f 62 09 call $0962 +15e8: 2f 04 bra $15ee +15ea: e4 cc mov a,$cc +15ec: c4 f4 mov $f4,a +15ee: e8 01 mov a,#$01 +15f0: c4 1a mov $1a,a +15f2: e8 c0 mov a,#$c0 +15f4: c5 81 01 mov $0181,a +15f7: c5 82 01 mov $0182,a +15fa: 6f ret + +15fb: 8f aa f4 mov $f4,#$aa +15fe: 8f bb f5 mov $f5,#$bb +1601: 78 cc f4 cmp $f4,#$cc +1604: d0 fb bne $1601 +1606: 2f 1b bra $1623 +1608: eb f4 mov y,$f4 +160a: d0 fc bne $1608 +160c: 7e f4 cmp y,$f4 +160e: d0 0d bne $161d +1610: e4 f5 mov a,$f5 +1612: cb f4 mov $f4,y +1614: d7 0a mov ($0a)+y,a +1616: fc inc y +1617: d0 f3 bne $160c +1619: ab 0b inc $0b +161b: 2f ef bra $160c +161d: 10 ed bpl $160c +161f: 7e f4 cmp y,$f4 +1621: 10 e9 bpl $160c +1623: ba f6 movw ya,$f6 +1625: da 0a movw $0a,ya +1627: eb f4 mov y,$f4 +1629: cb f4 mov $f4,y +162b: e4 f5 mov a,$f5 +162d: d0 d9 bne $1608 +162f: 6f ret + +; vcmd f5 - skip 3 bytes +1630: fc inc y +1631: fc inc y +1632: fc inc y +1633: cb 03 mov $03,y +1635: 6f ret + +; vcmd f7 - skip 3 bytes +1636: fc inc y +1637: fc inc y +1638: fc inc y +1639: cb 03 mov $03,y +163b: 6f ret + +; vcmd f6/f8/fc - read/write APU port 3 +163c: e4 f7 mov a,$f7 +163e: f0 1d beq $165d +1640: 64 1a cmp a,$1a +1642: d0 19 bne $165d +1644: 64 f7 cmp a,$f7 +1646: d0 f4 bne $163c +1648: cd 00 mov x,#$00 +164a: d8 00 mov $00,x +164c: 3f 62 16 call $1662 +164f: 3d inc x +1650: c8 03 cmp x,#$03 +1652: d0 f8 bne $164c +1654: e4 1a mov a,$1a +1656: bc inc a +1657: 28 7f and a,#$7f +1659: f0 fb beq $1656 +165b: c4 1a mov $1a,a +165d: e4 1a mov a,$1a +165f: c4 f7 mov $f7,a +1661: 6f ret + +1662: f4 f4 mov a,$f4+x +1664: 74 f4 cmp a,$f4+x +1666: d0 fa bne $1662 +1668: 68 00 cmp a,#$00 +166a: f0 04 beq $1670 +166c: 74 d8 cmp a,$d8+x +166e: d0 05 bne $1675 +1670: e8 00 mov a,#$00 +1672: d4 d8 mov $d8+x,a +1674: 6f ret + +1675: ab 00 inc $00 +1677: d4 d8 mov $d8+x,a +1679: 6f ret + +167a: 0d push psw +167b: b0 03 bcs $1680 +167d: 48 ff eor a,#$ff +167f: bc inc a +1680: 8d 00 mov y,#$00 +1682: 9e div ya,x +1683: 2d push a +1684: e8 00 mov a,#$00 +1686: 9e div ya,x +1687: ee pop y +1688: 8e pop psw +1689: b0 06 bcs $1691 +168b: da 16 movw $16,ya +168d: ba 11 movw ya,$11 +168f: 9a 16 subw ya,$16 +1691: 6f ret + +1692: 8f 6c f2 mov $f2,#$6c +1695: 8f e0 f3 mov $f3,#$e0 +1698: e8 00 mov a,#$00 +169a: cd e1 mov x,#$e1 +169c: c6 mov (x),a +169d: 1d dec x +169e: d0 fc bne $169c +16a0: e8 01 mov a,#$01 +16a2: 8d 00 mov y,#$00 +16a4: da 10 movw $10,ya +16a6: 3f f6 16 call $16f6 +16a9: e8 18 mov a,#$18 +16ab: c4 53 mov $53,a +16ad: 8f 5d f2 mov $f2,#$5d +16b0: c4 f3 mov $f3,a +16b2: 8f f0 f1 mov $f1,#$f0 +16b5: 8d 00 mov y,#$00 +16b7: dd mov a,y +16b8: d6 00 02 mov $0200+y,a +16bb: d6 00 03 mov $0300+y,a +16be: d6 00 04 mov $0400+y,a +16c1: fe f5 dbnz y,$16b8 +16c3: 8d 90 mov y,#$90 +16c5: d6 ff 00 mov $00ff+y,a +16c8: fe fb dbnz y,$16c5 +16ca: e8 ff mov a,#$ff +16cc: c4 cc mov $cc,a +16ce: c4 cd mov $cd,a +16d0: c4 ce mov $ce,a +16d2: c4 cf mov $cf,a +16d4: c4 d0 mov $d0,a +16d6: 3f f6 16 call $16f6 +16d9: 8f 00 f1 mov $f1,#$00 +16dc: 8f 6d f2 mov $f2,#$6d +16df: 8f ff f3 mov $f3,#$ff +16e2: e8 20 mov a,#$20 +16e4: c4 50 mov $50,a +16e6: 8f 6c f2 mov $f2,#$6c +16e9: c4 f3 mov $f3,a +16eb: e8 43 mov a,#$43 +16ed: c4 fb mov $fb,a +16ef: 8f 02 4f mov $4f,#$02 +16f2: 8f 02 f1 mov $f1,#$02 +16f5: 6f ret + +16f6: e8 00 mov a,#$00 +16f8: cd 08 mov x,#$08 +16fa: 8d 08 mov y,#$08 +16fc: c4 f2 mov $f2,a +16fe: 8f 00 f3 mov $f3,#$00 +1701: ab f2 inc $f2 +1703: fe f9 dbnz y,$16fe +1705: 60 clrc +1706: 88 10 adc a,#$10 +1708: 1d dec x +1709: d0 ef bne $16fa +170b: cd 00 mov x,#$00 +170d: f5 30 17 mov a,$1730+x +1710: 30 0b bmi $171d +1712: c4 f2 mov $f2,a +1714: f5 31 17 mov a,$1731+x +1717: c4 f3 mov $f3,a +1719: 3d inc x +171a: 3d inc x +171b: 2f f0 bra $170d +171d: 6f ret + +171e: 4d push x +171f: db 1d mov $1d+x,y +1721: f5 d1 17 mov a,$17d1+x +1724: cd 07 mov x,#$07 +1726: c4 f2 mov $f2,a +1728: cb f3 mov $f3,y +172a: bc inc a +172b: 1d dec x +172c: 10 f8 bpl $1726 +172e: ce pop x +172f: 6f ret + +1730: db $0c,$60,$1c,$60,$2d,$00,$3d,$00 +1738: db $4c,$00,$2c,$00,$3c,$00,$0d,$00 +1740: db $7d,$00,$4d,$00,$ff + +1745: db $01,$02,$04,$08,$10,$20,$40,$80 +174d: db $01,$02,$04,$08,$10,$20,$40,$80 + +; pitch table +1755: dw $085f +1757: dw $08de +1759: dw $0965 +175b: dw $09f4 +175d: dw $0a8c +175f: dw $0b2c +1761: dw $0bd6 +1763: dw $0c8b +1765: dw $0d4a +1767: dw $0e14 +1769: dw $0eea +176b: dw $0fcd +176d: dw $10be + +; note dur%s +176f: db $32,$65,$7f,$98,$b2,$cb,$e5,$ff +; per-note velocity values +1777: db $28,$3c,$4c,$65,$72,$7f,$8c,$98 +177f: db $a5,$b2,$bf,$cb,$d8,$e5,$f2,$fc + +1787: db $08,$09,$0a,$0b,$0c,$0d,$0e,$0f +178f: db $00,$01,$02,$03,$04,$05,$06,$07 + +1797: db $00,$7f,$02,$7f,$05,$7e,$0b,$7d +179f: db $13,$7c,$1e,$7b,$2b,$7a,$3c,$79 +17a7: db $4b,$78,$5e,$75,$73,$73,$75,$5e +17af: db $78,$4b,$79,$3c,$7a,$2b,$7b,$1e +17b7: db $7c,$13,$7d,$0b,$7e,$05,$7f,$02 +17bf: db $7f,$00,$00,$08,$10,$18,$20,$28 +17c7: db $30,$38,$40,$48,$50,$58,$60,$68 +17c9: db $70,$78 \ No newline at end of file diff --git a/snes/NSPC/Quest/Tactics Ogre - Let Us Cling Together ($0600).bin b/snes/NSPC/Quest/Tactics Ogre - Let Us Cling Together ($0600).bin new file mode 100644 index 00000000..921abb71 Binary files /dev/null and b/snes/NSPC/Quest/Tactics Ogre - Let Us Cling Together ($0600).bin differ diff --git a/snes/NSPC/Quest/Tactics Ogre - Let Us Cling Together.s b/snes/NSPC/Quest/Tactics Ogre - Let Us Cling Together.s index db09a0f3..8320c227 100644 --- a/snes/NSPC/Quest/Tactics Ogre - Let Us Cling Together.s +++ b/snes/NSPC/Quest/Tactics Ogre - Let Us Cling Together.s @@ -1,7 +1,7 @@ 0600: 20 clrp 0601: cd ff mov x,#$ff 0603: bd mov sp,x -0604: e8 00 mov a,#$00 +0604: e8 00 mov a,#$005 0606: fd mov y,a 0607: da f4 movw $f4,ya 0609: da f6 movw $f6,ya @@ -721,47 +721,48 @@ 0b87: 6f ret ; vcmd dispatch table -0b88: dw $1174 ; d8 -0b8a: dw $10ec ; d9 -0b8c: dw $10d4 ; da -0b8e: dw $11a8 ; db -0b90: dw $11c9 ; dc -0b92: dw $11e7 ; dd -0b94: dw $11f8 ; de +0b88: dw $1174 ; d8 - set channel parameters +0b8a: dw $10ec ; d9 - command with voice +0b8c: dw $10d4 ; da - jump +0b8e: dw $11a8 ; db - set ASDR and GAIN +0b90: dw $11c9 ; dc - set pitch +0b92: dw $11e7 ; dd - set ASDR and GAIN (2) +0b94: dw $11f8 ; de - long note 0b96: dw $1208 ; df -0b98: dw $124f ; e0 -0b9a: dw $128e ; e1 -0b9c: dw $12b5 ; e2 -0b9e: dw $13b6 ; e3 -0ba0: dw $13eb ; e4 -0ba2: dw $1308 ; e5 -0ba4: dw $133c ; e6 -0ba6: dw $12c1 ; e7 -0ba8: dw $12e1 ; e8 -0baa: dw $12b5 ; e9 -0bac: dw $12bb ; ea -0bae: dw $1106 ; eb -0bb0: dw $1125 ; ec -0bb2: dw $134a ; ed -0bb4: dw $135b ; ee -0bb6: dw $14b1 ; ef -0bb8: dw $13e0 ; f0 -0bba: dw $13fe ; f1 -0bbc: dw $13fe ; f2 -0bbe: dw $13f3 ; f3 -0bc0: dw $1387 ; f4 -0bc2: dw $1571 ; f5 -0bc4: dw $1150 ; f6 -0bc6: dw $1593 ; f7 -0bc8: dw $1628 ; f8 -0bca: dw $1422 ; f9 -0bcc: dw $138d ; fa +0b98: dw $124f ; e0 - set instrument +0b9a: dw $128e ; e1 - pan +0b9c: dw $12b5 ; e2 - global transpose +0b9e: dw $13b6 ; e3 - vibrato on +0ba0: dw $13eb ; e4 - vibrato off +0ba2: dw $1308 ; e5 - master volume +0ba4: dw $133c ; e6 - master volume fade +0ba6: dw $12c1 ; e7 - tempo +0ba8: dw $12e1 ; e8 - tempo fade +0baa: dw $12b5 ; e9 - global transpose +0bac: dw $12bb ; ea - per-voice transpose +0bae: dw $1106 ; eb - repeat start +0bb0: dw $1125 ; ec - repeat end +0bb2: dw $134a ; ed - volume +0bb4: dw $135b ; ee - volume fade +0bb6: dw $14b1 ; ef - call subroutine +0bb8: dw $13e0 ; f0 - vibrato fade +0bba: dw $13fe ; f1 - pitch envelope +0bbc: dw $13fe ; f2 - pitch envelope +0bbe: dw $13f3 ; f3 - pitch envelope off +0bc0: dw $1387 ; f4 - tuning +0bc2: dw $1571 ; f5 - echo vbits/volume +0bc4: dw $1150 ; f6 - set GAIN +0bc6: dw $1593 ; f7 - set echo params +0bc8: dw $1628 ; f8 - echo start/delay +0bca: dw $1422 ; f9 - pitch slide +0bcc: dw $138d ; fa - set perc patch base 0bce: dw $137f ; fb -0bd0: dw $1628 ; fc -0bd2: dw $1502 ; fd +0bd0: dw $1628 ; fc - echo start/delay +0bd2: dw $1502 ; fd - sub-command +0bd4: dw $0bd8 ; fe +0bd6: dw $113e ; ff -0bd4: d8 0b mov $0b,x -0bd6: 3e 11 cmp x,$11 +; vcmd fe 0bd8: fc inc y 0bd9: f7 0a mov a,($0a)+y 0bdb: 68 04 cmp a,#$04 @@ -1420,7 +1421,7 @@ 10d0: fa 00 4b mov ($4b),($00) 10d3: 6f ret -; vcmd da +; vcmd da - jump 10d4: e4 df mov a,$df 10d6: d0 0f bne $10e7 10d8: fc inc y @@ -1438,7 +1439,7 @@ 10e9: cb 03 mov $03,y 10eb: 6f ret -; vcmd d9 +; vcmd d9 - command with voice 10ec: 4f f8 pcall $f8 10ee: 4d push x 10ef: c4 5a mov $5a,a @@ -1458,7 +1459,7 @@ 1103: d8 5a mov $5a,x 1105: 6f ret -; vcmd eb +; vcmd eb - repeat start 1106: 4f f0 pcall $f0 1108: 10 06 bpl $1110 110a: 68 ff cmp a,#$ff @@ -1476,7 +1477,7 @@ 1121: d5 cf 21 mov $21cf+x,a 1124: 6f ret -; vcmd ec +; vcmd ec - repeat end 1125: f8 5a mov x,$5a 1127: f5 db 21 mov a,$21db+x 112a: f0 11 beq $113d @@ -1489,6 +1490,7 @@ 113a: 8f ff 03 mov $03,#$ff 113d: 6f ret +; vcmd ff 113e: 4f f0 pcall $f0 1140: d0 07 bne $1149 1142: f4 28 mov a,$28+x @@ -1501,7 +1503,7 @@ 114d: d4 28 mov $28+x,a 114f: 6f ret -; vcmd f6 +; vcmd f6 - set GAIN 1150: 4f f8 pcall $f8 1152: f0 1b beq $116f 1154: d4 cf mov $cf+x,a @@ -1524,7 +1526,7 @@ 1171: cb 03 mov $03,y 1173: 6f ret -; vcmd d8 +; vcmd d8 - set channel parameters 1174: 4f f0 pcall $f0 1176: d0 14 bne $118c 1178: f4 34 mov a,$34+x @@ -1554,7 +1556,7 @@ 11a5: c4 f3 mov $f3,a 11a7: 6f ret -; vcmd db +; vcmd db - set ASDR and GAIN 11a8: f8 5b mov x,$5b 11aa: fc inc y 11ab: cb 03 mov $03,y @@ -1573,7 +1575,7 @@ 11c7: ae pop a 11c8: 6f ret -; vcmd dc +; vcmd dc - set pitch 11c9: f8 5b mov x,$5b 11cb: fc inc y 11cc: f7 0a mov a,($0a)+y @@ -1590,7 +1592,7 @@ 11e5: ae pop a 11e6: 6f ret -; vcmd dd +; vcmd dd - set ASDR and GAIN (2) 11e7: 4f f0 pcall $f0 11e9: 5f b8 11 jmp $11b8 @@ -1602,14 +1604,14 @@ 11f5: db 20 mov $20+x,y 11f7: 6f ret -; vcmd de +; vcmd de - long note 11f8: 4f f8 pcall $f8 -11fa: d5 e3 20 mov $20e3+x,a +11fa: d5 e3 20 mov $20e3+x,a ; lower byte of length 11fd: fc inc y 11fe: f7 0a mov a,($0a)+y -1200: d5 ef 20 mov $20ef+x,a +1200: d5 ef 20 mov $20ef+x,a ; higher byte of length 1203: cb 03 mov $03,y -1205: 5f 2c 0f jmp $0f2c +1205: 5f 2c 0f jmp $0f2c ; get quantization ; vcmd df 1208: f8 5a mov x,$5a @@ -1652,7 +1654,7 @@ 124b: 8f ff 03 mov $03,#$ff 124e: 6f ret -; vcmd e0 +; vcmd e0 - set instrument 124f: f8 5a mov x,$5a 1251: e8 ff mov a,#$ff 1253: d5 30 21 mov $2130+x,a @@ -1684,7 +1686,7 @@ 128a: d5 06 ff mov $ff06+x,a 128d: 6f ret -; vcmd e1 +; vcmd e1 - pan 128e: f8 5a mov x,$5a 1290: e8 00 mov a,#$00 1292: d5 48 21 mov $2148+x,a @@ -1704,17 +1706,17 @@ 12b1: d5 54 21 mov $2154+x,a 12b4: 6f ret -; vcmd e2,e9 +; vcmd e2,e9 - global transpose 12b5: 4f f2 pcall $f2 12b7: c5 1f 21 mov $211f,a 12ba: 6f ret -; vcmd ea +; vcmd ea - per-voice transpose 12bb: 4f f0 pcall $f0 12bd: d5 21 21 mov $2121+x,a 12c0: 6f ret -; vcmd e7 +; vcmd e7 - tempo 12c1: 4f f2 pcall $f2 12c3: 5d mov x,a 12c4: e8 36 mov a,#$36 @@ -1731,7 +1733,7 @@ 12dd: fa 4a f1 mov ($f1),($4a) 12e0: 6f ret -; vcmd e8 +; vcmd e8 - tempo fade 12e1: e8 00 mov a,#$00 12e3: c5 eb 1f mov $1feb,a 12e6: fc inc y @@ -1751,7 +1753,7 @@ 1304: cc ee 1f mov $1fee,y 1307: 6f ret -; vcmd e5 +; vcmd e5 - master volume 1308: e5 79 21 mov a,$2179 130b: d0 2b bne $1338 130d: 4f f2 pcall $f2 @@ -1780,7 +1782,7 @@ 1339: cb 03 mov $03,y 133b: 6f ret -; vcmd e6 +; vcmd e6 - master volume fade 133c: e5 79 21 mov a,$2179 133f: d0 f7 bne $1338 1341: fc inc y @@ -1789,7 +1791,7 @@ 1345: 4f f2 pcall $f2 1347: 5f 96 10 jmp $1096 -; vcmd ed +; vcmd ed - volume 134a: 4f f0 pcall $f0 134c: d5 9c ff mov $ff9c+x,a 134f: d5 78 ff mov $ff78+x,a @@ -1799,7 +1801,7 @@ 1358: d4 ab mov $ab+x,a 135a: 6f ret -; vcmd ee +; vcmd ee - volume fade 135b: 4f f8 pcall $f8 135d: d5 6c ff mov $ff6c+x,a 1360: 2d push a @@ -1824,12 +1826,12 @@ 1383: d5 3c 21 mov $213c+x,a 1386: 6f ret -; vcmd f4 +; vcmd f4 - tuning 1387: 4f f0 pcall $f0 1389: d5 13 21 mov $2113+x,a 138c: 6f ret -; vcmd fa +; vcmd fa - set perc patch base 138d: 4f f2 pcall $f2 138f: 30 04 bmi $1395 1391: c5 2f 21 mov $212f,a @@ -1854,7 +1856,7 @@ 13b2: c5 00 00 mov $0000,a 13b5: 6f ret -; vcmd e3 +; vcmd e3 - vibrato on 13b6: 4f f8 pcall $f8 13b8: d5 1b 01 mov $011b+x,a 13bb: fc inc y @@ -1875,27 +1877,27 @@ 13dc: d5 0f 01 mov $010f+x,a 13df: 6f ret -; vcmd f0 +; vcmd f0 - vibrato fade 13e0: 4f f8 pcall $f8 13e2: d5 93 01 mov $0193+x,a 13e5: 4f f2 pcall $f2 13e7: d5 9f 01 mov $019f+x,a 13ea: 6f ret -; vcmd e4 +; vcmd e4 - vibrato off 13eb: f8 5a mov x,$5a 13ed: e8 00 mov a,#$00 13ef: d5 03 01 mov $0103+x,a 13f2: 6f ret -; vcmd f3 +; vcmd f3 - pitch envelope off 13f3: f8 5a mov x,$5a 13f5: e8 00 mov a,#$00 13f7: d5 b7 01 mov $01b7+x,a 13fa: d5 0f 01 mov $010f+x,a 13fd: 6f ret -; vcmd f1,f2 +; vcmd f1,f2 - pitch envelope 13fe: f8 5a mov x,$5a 1400: e8 f1 mov a,#$f1 1402: d5 0f 01 mov $010f+x,a @@ -1914,7 +1916,7 @@ 141e: d5 03 01 mov $0103+x,a 1421: 6f ret -; vcmd f9 +; vcmd f9 - pitch slide 1422: f8 5a mov x,$5a 1424: f4 28 mov a,$28+x 1426: 10 4f bpl $1477 @@ -1980,7 +1982,7 @@ 14ad: d5 03 01 mov $0103+x,a 14b0: 6f ret -; vcmd ef +; vcmd ef - call subroutine 14b1: cb 06 mov $06,y 14b3: fc inc y 14b4: f7 0a mov a,($0a)+y @@ -2025,17 +2027,17 @@ 14fd: c4 f7 mov $f7,a 14ff: bc inc a 1500: 2f fb bra $14fd -; vcmd fd +; vcmd fd - sub-command 1502: f8 5b mov x,$5b 1504: fc inc y 1505: f7 0a mov a,($0a)+y -1507: 68 ff cmp a,#$ff +1507: 68 ff cmp a,#$ff ; ff - set pitch and DSP data - SRCN/ASDR 1509: f0 29 beq $1534 -150b: 68 fe cmp a,#$fe +150b: 68 fe cmp a,#$fe ; fe - set DSP data - SRCN/ASDR 150d: f0 34 beq $1543 -150f: 68 fd cmp a,#$fd +150f: 68 fd cmp a,#$fd ; fd - set DSP data - ASDR 1511: f0 36 beq $1549 -1513: 68 fc cmp a,#$fc +1513: 68 fc cmp a,#$fc ; fc - set pitch 1515: f0 47 beq $155e 1517: 6d push y 1518: 08 80 or a,#$80 @@ -2088,7 +2090,7 @@ 1570: 6f ret -; vcmd f5 +; vcmd f5 - echo vbits/volume 1571: fc inc y 1572: f7 0a mov a,($0a)+y 1574: 2d push a @@ -2109,7 +2111,7 @@ 158f: c5 f9 1f mov $1ff9,a 1592: 6f ret -; vcmd f7 +; vcmd f7 - set echo params 1593: fc inc y 1594: f7 0a mov a,($0a)+y 1596: 30 58 bmi $15f0 @@ -2181,7 +2183,7 @@ 1624: 8f fe f3 mov $f3,#$fe 1627: 6f ret -; vcmd f8,fc +; vcmd f8,fc - echo start/delay 1628: f8 5a mov x,$5a 162a: fc inc y 162b: cb 03 mov $03,y @@ -2599,7 +2601,7 @@ 1968: 8d 24 mov y,#$24 196a: c5 f8 05 mov $05f8,a 196d: cc f9 05 mov $05f9,y -1970: e8 18 mov a,#$18 +1970: e8 18 mov a,#$18 ; song table 1972: 8d 24 mov y,#$24 1974: c5 fa 05 mov $05fa,a 1977: cc fb 05 mov $05fb,y diff --git a/snes/NSPC/Robert C. Ashworth/Super Double Dragon ($0300).bin b/snes/NSPC/Robert C. Ashworth/Super Double Dragon ($0300).bin new file mode 100644 index 00000000..7ae097e7 Binary files /dev/null and b/snes/NSPC/Robert C. Ashworth/Super Double Dragon ($0300).bin differ diff --git a/snes/NSPC/Robert C. Ashworth/Super Double Dragon.s b/snes/NSPC/Robert C. Ashworth/Super Double Dragon.s new file mode 100644 index 00000000..c8535d2f --- /dev/null +++ b/snes/NSPC/Robert C. Ashworth/Super Double Dragon.s @@ -0,0 +1,1519 @@ +0300: 20 clrp +0301: cd cf mov x,#$cf +0303: bd mov sp,x +0304: e8 00 mov a,#$00 +0306: 5d mov x,a +0307: d5 00 02 mov $0200+x,a +030a: 3d inc x +030b: d0 fa bne $0307 +030d: af mov (x)+,a +030e: c8 e0 cmp x,#$e0 +0310: d0 fb bne $030d +0312: e8 00 mov a,#$00 +0314: 8d 03 mov y,#$03 +0316: da 17 movw $17,ya +0318: 8d 00 mov y,#$00 +031a: f7 17 mov a,($17)+y +031c: 60 clrc +031d: 84 10 adc a,$10 +031f: c4 10 mov $10,a +0321: 90 02 bcc $0325 +0323: ab 11 inc $11 +0325: 3a 17 incw $17 +0327: e8 97 mov a,#$97 +0329: 8d 0e mov y,#$0e +032b: 5a 17 cmpw ya,$17 +032d: d0 e9 bne $0318 +032f: cd 0c mov x,#$0c +0331: f5 c9 0d mov a,$0dc9+x +0334: fd mov y,a +0335: f5 d6 0d mov a,$0dd6+x +0338: 3f c2 04 call $04c2 +033b: 1d dec x +033c: 10 f3 bpl $0331 +033e: 8f 80 14 mov $14,#$80 +0341: 8f 80 13 mov $13,#$80 +0344: e8 30 mov a,#$30 +0346: c5 f1 00 mov $00f1,a +0349: e8 20 mov a,#$20 +034b: c5 fa 00 mov $00fa,a +034e: 00 nop +034f: 00 nop +0350: 00 nop +0351: 00 nop +0352: e8 01 mov a,#$01 +0354: c5 f1 00 mov $00f1,a +0357: 9c dec a +0358: cd 03 mov x,#$03 +035a: d5 f4 00 mov $00f4+x,a +035d: 1d dec x +035e: 10 fa bpl $035a +0360: e4 11 mov a,$11 +0362: c5 f4 00 mov $00f4,a +0365: e4 10 mov a,$10 +0367: c5 f5 00 mov $00f5,a +036a: 3f f3 0a call $0af3 +036d: eb fd mov y,$fd +036f: d0 4f bne $03c0 +0371: e9 f7 00 mov x,$00f7 +0374: 1e f7 00 cmp x,$00f7 +0377: d0 f8 bne $0371 +0379: 3e 14 cmp x,$14 +037b: f0 13 beq $0390 +037d: 3e 13 cmp x,$13 +037f: f0 ec beq $036d +0381: d8 13 mov $13,x +0383: 8f 80 14 mov $14,#$80 +0386: ec f6 00 mov y,$00f6 +0389: 5e f6 00 cmp y,$00f6 +038c: d0 f8 bne $0386 +038e: 2f 2a bra $03ba +0390: ec f6 00 mov y,$00f6 +0393: 5e f6 00 cmp y,$00f6 +0396: d0 f8 bne $0390 +0398: 7d mov a,x +0399: c4 13 mov $13,a +039b: 10 0f bpl $03ac +039d: 68 80 cmp a,#$80 +039f: d0 05 bne $03a6 +03a1: cb 15 mov $15,y +03a3: bc inc a +03a4: 2f 12 bra $03b8 +03a6: cb 16 mov $16,y +03a8: e8 00 mov a,#$00 +03aa: 2f 0c bra $03b8 +03ac: dd mov a,y +03ad: 8d 00 mov y,#$00 +03af: d7 15 mov ($15)+y,a +03b1: 3a 15 incw $15 +03b3: fd mov y,a +03b4: 7d mov a,x +03b5: bc inc a +03b6: 28 7f and a,#$7f +03b8: c4 14 mov $14,a +03ba: cb f6 mov $f6,y +03bc: d8 f7 mov $f7,x +03be: 2f ad bra $036d +03c0: cb 36 mov $36,y +03c2: 3f ba 05 call $05ba +03c5: cd 00 mov x,#$00 +03c7: d8 1e mov $1e,x +03c9: 8f 01 20 mov $20,#$01 +03cc: f5 37 00 mov a,$0037+x +03cf: f0 1a beq $03eb +03d1: e4 20 mov a,$20 +03d3: 24 0a and a,$0a +03d5: d0 14 bne $03eb +03d7: d8 1d mov $1d,x +03d9: eb 36 mov y,$36 +03db: f4 48 mov a,$48+x +03dd: cf mul ya +03de: 60 clrc +03df: 94 47 adc a,$47+x +03e1: d4 47 mov $47+x,a +03e3: 90 06 bcc $03eb +03e5: 3f 10 08 call $0810 +03e8: 3f 9d 0b call $0b9d +03eb: 3d inc x +03ec: 3d inc x +03ed: 0b 20 asl $20 +03ef: d0 db bne $03cc +03f1: 3f 91 05 call $0591 +03f4: 5f 6d 03 jmp $036d + +03f7: 80 setc +03f8: a8 ca sbc a,#$ca +03fa: 30 12 bmi $040e +03fc: 8d 07 mov y,#$07 +03fe: 8f b4 17 mov $17,#$b4 +0401: 8f 0f 18 mov $18,#$0f +0404: 3f d4 08 call $08d4 +0407: fc inc y +0408: f7 17 mov a,($17)+y +040a: 28 7f and a,#$7f +040c: 2f 09 bra $0417 +040e: 88 4a adc a,#$4a +0410: fb 37 mov y,$37+x +0412: 10 03 bpl $0417 +0414: 60 clrc +0415: 84 1c adc a,$1c +0417: 60 clrc +0418: 95 30 01 adc a,$0130+x +041b: d5 61 02 mov $0261+x,a +041e: f5 81 02 mov a,$0281+x +0421: d5 60 02 mov $0260+x,a +0424: e8 00 mov a,#$00 +0426: d5 b0 02 mov $02b0+x,a +0429: d5 e0 02 mov $02e0+x,a +042c: d4 a8 mov $a8+x,a +042e: d4 97 mov $97+x,a +0430: d4 b8 mov $b8+x,a +0432: 09 20 1e or ($1e),($20) +0435: f5 90 02 mov a,$0290+x +0438: d4 87 mov $87+x,a +043a: f0 1e beq $045a +043c: f5 91 02 mov a,$0291+x +043f: d4 88 mov $88+x,a +0441: f5 a0 02 mov a,$02a0+x +0444: d0 0a bne $0450 +0446: f5 61 02 mov a,$0261+x +0449: 80 setc +044a: b5 a1 02 sbc a,$02a1+x +044d: d5 61 02 mov $0261+x,a +0450: f5 a1 02 mov a,$02a1+x +0453: 60 clrc +0454: 95 61 02 adc a,$0261+x +0457: 3f 82 0a call $0a82 +045a: f5 61 02 mov a,$0261+x +045d: fd mov y,a +045e: f5 60 02 mov a,$0260+x +0461: da 21 movw $21,ya +0463: e4 22 mov a,$22 +0465: 1c asl a +0466: fd mov y,a +0467: f6 e4 0d mov a,$0de4+y +046a: c4 18 mov $18,a +046c: f6 e3 0d mov a,$0de3+y +046f: c4 17 mov $17,a +0471: f6 e6 0d mov a,$0de6+y +0474: 2d push a +0475: f6 e5 0d mov a,$0de5+y +0478: ee pop y +0479: 9a 17 subw ya,$17 +047b: 6d push y +047c: fd mov y,a +047d: e4 21 mov a,$21 +047f: cf mul ya +0480: cb 19 mov $19,y +0482: 8f 00 1a mov $1a,#$00 +0485: ee pop y +0486: e4 21 mov a,$21 +0488: cf mul ya +0489: 7a 19 addw ya,$19 +048b: 7a 17 addw ya,$17 +048d: da 17 movw $17,ya +048f: f5 50 01 mov a,$0150+x +0492: eb 18 mov y,$18 +0494: cf mul ya +0495: da 19 movw $19,ya +0497: f5 50 01 mov a,$0150+x +049a: eb 17 mov y,$17 +049c: cf mul ya +049d: 6d push y +049e: f5 51 01 mov a,$0151+x +04a1: eb 17 mov y,$17 +04a3: cf mul ya +04a4: 7a 19 addw ya,$19 +04a6: da 19 movw $19,ya +04a8: f5 51 01 mov a,$0151+x +04ab: eb 18 mov y,$18 +04ad: cf mul ya +04ae: fd mov y,a +04af: ae pop a +04b0: 7a 19 addw ya,$19 +04b2: da 19 movw $19,ya +04b4: 7d mov a,x +04b5: 9f xcn a +04b6: 5c lsr a +04b7: 08 02 or a,#$02 +04b9: fd mov y,a +04ba: e4 19 mov a,$19 +04bc: 3f c2 04 call $04c2 +04bf: fc inc y +04c0: e4 1a mov a,$1a +04c2: cc f2 00 mov $00f2,y +04c5: c5 f3 00 mov $00f3,a +04c8: 6f ret + +04c9: a2 27 set5 $27 +04cb: 5d mov x,a +04cc: d8 34 mov $34,x +04ce: e8 00 mov a,#$00 +04d0: c4 35 mov $35,a +04d2: 80 setc +04d3: a4 31 sbc a,$31 +04d5: 3f 9b 0a call $0a9b +04d8: da 32 movw $32,ya +04da: 6f ret + +04db: a2 27 set5 $27 +04dd: 5d mov x,a +04de: d8 34 mov $34,x +04e0: e8 ff mov a,#$ff +04e2: c4 35 mov $35,a +04e4: 80 setc +04e5: eb 37 mov y,$37 +04e7: f0 02 beq $04eb +04e9: a4 31 sbc a,$31 +04eb: 3f 9b 0a call $0a9b +04ee: da 32 movw $32,ya +04f0: 6f ret + +04f1: 3f b3 07 call $07b3 +04f4: 5f e5 05 jmp $05e5 + +04f7: 8d 00 mov y,#$00 +04f9: cb 20 mov $20,y +04fb: 8f 01 09 mov $09,#$01 +04fe: 76 37 00 cmp a,$0037+y +0501: d0 15 bne $0518 +0503: 2d push a +0504: 1c asl a +0505: 90 05 bcc $050c +0507: 8f 00 07 mov $07,#$00 +050a: b2 27 clr5 $27 +050c: e8 00 mov a,#$00 +050e: d6 37 00 mov $0037+y,a +0511: d6 38 00 mov $0038+y,a +0514: 09 09 20 or ($20),($09) +0517: ae pop a +0518: fc inc y +0519: fc inc y +051a: 0b 09 asl $09 +051c: d0 e0 bne $04fe +051e: 3f 63 05 call $0563 +0521: e4 20 mov a,$20 +0523: 5f e5 05 jmp $05e5 + +0526: 30 17 bmi $053f +0528: 3f 7c 06 call $067c +052b: f0 12 beq $053f +052d: f8 0b mov x,$0b +052f: e4 08 mov a,$08 +0531: 9c dec a +0532: 28 1f and a,#$1f +0534: d5 31 02 mov $0231+x,a +0537: e8 00 mov a,#$00 +0539: d5 30 02 mov $0230+x,a +053c: 09 09 26 or ($26),($09) +053f: 6f ret + +0540: f2 27 clr7 $27 +0542: 6f ret + +0543: e2 27 set7 $27 +0545: 2f 25 bra $056c +0547: e3 27 18 bbs7 $27,$0562 +054a: a3 27 15 bbs5 $27,$0562 +054d: e4 31 mov a,$31 +054f: f0 11 beq $0562 +0551: e8 10 mov a,#$10 +0553: 5d mov x,a +0554: c4 34 mov $34,a +0556: e8 d2 mov a,#$d2 +0558: c4 35 mov $35,a +055a: 80 setc +055b: a4 31 sbc a,$31 +055d: 3f 9b 0a call $0a9b +0560: da 32 movw $32,ya +0562: 6f ret + +0563: e3 27 12 bbs7 $27,$0578 +0566: e4 43 mov a,$43 +0568: 04 45 or a,$45 +056a: d0 0c bne $0578 +056c: a3 27 09 bbs5 $27,$0578 +056f: e4 31 mov a,$31 +0571: f0 05 beq $0578 +0573: e8 40 mov a,#$40 +0575: 3f dd 04 call $04dd +0578: 6f ret + +0579: e8 ff mov a,#$ff +057b: 3f e8 05 call $05e8 +057e: e8 02 mov a,#$02 +0580: 3f 7c 06 call $067c +0583: 48 ff eor a,#$ff +0585: c4 0a mov $0a,a +0587: 6f ret + +0588: 29 0a 1f and ($1f),($0a) +058b: 8f 00 0a mov $0a,#$00 +058e: fa 1f 1e mov ($1e),($1f) +0591: 8d 5c mov y,#$5c +0593: e8 00 mov a,#$00 +0595: 3f c2 04 call $04c2 +0598: e4 1e mov a,$1e +059a: 09 1e 1f or ($1f),($1e) +059d: 8d 4c mov y,#$4c +059f: 5f c2 04 jmp $04c2 + +05a2: c2 27 set6 $27 +05a4: 8f ff 26 mov $26,#$ff +05a7: 6f ret + +05a8: d2 27 clr6 $27 +05aa: 8f ff 26 mov $26,#$ff +05ad: 6f ret + +05ae: 28 7f and a,#$7f +05b0: 8d 0c mov y,#$0c +05b2: 3f c2 04 call $04c2 +05b5: 8d 1c mov y,#$1c +05b7: 5f c2 04 jmp $04c2 + +05ba: 3f ed 05 call $05ed +05bd: f0 22 beq $05e1 +05bf: 93 27 0b bbc4 $27,$05cd +05c2: 92 27 clr4 $27 +05c4: fd mov y,a +05c5: e4 12 mov a,$12 +05c7: 1c asl a +05c8: 5d mov x,a +05c9: dd mov a,y +05ca: 1f 7f 0e jmp ($0e7f+x) + +05cd: 68 f0 cmp a,#$f0 +05cf: 90 11 bcc $05e2 +05d1: 68 fc cmp a,#$fc +05d3: b0 0c bcs $05e1 +05d5: 28 0f and a,#$0f +05d7: c4 12 mov $12,a +05d9: 5d mov x,a +05da: f5 73 0e mov a,$0e73+x +05dd: f0 e5 beq $05c4 +05df: 82 27 set4 $27 +05e1: 6f ret + +05e2: 3f 7c 06 call $067c +05e5: 4e 1f 00 tclr1 $001f +05e8: 8d 5c mov y,#$5c +05ea: 5f c2 04 jmp $04c2 + +05ed: e5 f5 00 mov a,$00f5 +05f0: 65 f5 00 cmp a,$00f5 +05f3: d0 f8 bne $05ed +05f5: 68 00 cmp a,#$00 +05f7: f0 02 beq $05fb +05f9: c4 08 mov $08,a +05fb: e5 f4 00 mov a,$00f4 +05fe: 65 f4 00 cmp a,$00f4 +0601: d0 f8 bne $05fb +0603: 68 00 cmp a,#$00 +0605: f0 03 beq $060a +0607: c5 f4 00 mov $00f4,a +060a: eb 07 mov y,$07 +060c: 8d 11 mov y,#$11 +060e: cc f1 00 mov $00f1,y +0611: fd mov y,a +0612: 6f ret + +0613: e8 0a mov a,#$0a +0615: d6 31 02 mov $0231+y,a +0618: e8 ff mov a,#$ff +061a: d6 01 02 mov $0201+y,a +061d: d6 47 00 mov $0047+y,a +0620: e8 00 mov a,#$00 +0622: d6 81 02 mov $0281+y,a +0625: d6 50 02 mov $0250+y,a +0628: d6 30 01 mov $0130+y,a +062b: d6 30 02 mov $0230+y,a +062e: d6 67 00 mov $0067+y,a +0631: d6 68 00 mov $0068+y,a +0634: d6 a7 00 mov $00a7+y,a +0637: d6 b7 00 mov $00b7+y,a +063a: d6 77 00 mov $0077+y,a +063d: d6 90 02 mov $0290+y,a +0640: d6 91 02 mov $0291+y,a +0643: d6 87 00 mov $0087+y,a +0646: d6 88 00 mov $0088+y,a +0649: d6 60 02 mov $0260+y,a +064c: d6 61 02 mov $0261+y,a +064f: bc inc a +0650: d6 57 00 mov $0057+y,a +0653: e8 20 mov a,#$20 +0655: d6 48 00 mov $0048+y,a +0658: f6 37 00 mov a,$0037+y +065b: 10 1e bpl $067b +065d: e8 00 mov a,#$00 +065f: c4 28 mov $28,a +0661: c4 30 mov $30,a +0663: c4 1c mov $1c,a +0665: c4 2e mov $2e,a +0667: c4 2f mov $2f,a +0669: d6 38 00 mov $0038+y,a +066c: 8f ff 29 mov $29,#$ff +066f: 78 03 12 cmp $12,#$03 +0672: f0 07 beq $067b +0674: c4 34 mov $34,a +0676: c4 35 mov $35,a +0678: 8f ff 31 mov $31,#$ff +067b: 6f ret + +067c: 3f ee 06 call $06ee +067f: f0 36 beq $06b7 +0681: 78 60 0e cmp $0e,#$60 +0684: b0 34 bcs $06ba +0686: cd 01 mov x,#$01 +0688: 8d 0c mov y,#$0c +068a: 8f 40 09 mov $09,#$40 +068d: 76 37 00 cmp a,$0037+y +0690: f0 1f beq $06b1 +0692: 76 39 00 cmp a,$0039+y +0695: f0 16 beq $06ad +0697: e4 0f mov a,$0f +0699: 2d push a +069a: f6 3a 00 mov a,$003a+y +069d: 76 38 00 cmp a,$0038+y +06a0: ae pop a +06a1: 90 05 bcc $06a8 +06a3: 76 38 00 cmp a,$0038+y +06a6: b0 09 bcs $06b1 +06a8: 76 3a 00 cmp a,$003a+y +06ab: 90 0a bcc $06b7 +06ad: fc inc y +06ae: fc inc y +06af: 0b 09 asl $09 +06b1: 3f 0d 07 call $070d +06b4: e4 09 mov a,$09 +06b6: 6f ret + +06b7: e8 00 mov a,#$00 +06b9: 6f ret + +06ba: c2 07 set6 $07 +06bc: f2 07 clr7 $07 +06be: 78 a0 0e cmp $0e,#$a0 +06c1: b0 21 bcs $06e4 +06c3: 8d 00 mov y,#$00 +06c5: cd 06 mov x,#$06 +06c7: 3f 0d 07 call $070d +06ca: 8d 0c mov y,#$0c +06cc: f6 37 00 mov a,$0037+y +06cf: 10 10 bpl $06e1 +06d1: e8 00 mov a,#$00 +06d3: d6 37 00 mov $0037+y,a +06d6: d6 38 00 mov $0038+y,a +06d9: d6 39 00 mov $0039+y,a +06dc: d6 3a 00 mov $003a+y,a +06df: 9c dec a +06e0: 6f ret + +06e1: e8 3f mov a,#$3f +06e3: 6f ret + +06e4: 8d 00 mov y,#$00 +06e6: cd 08 mov x,#$08 +06e8: 3f 0d 07 call $070d +06eb: e8 ff mov a,#$ff +06ed: 6f ret + +06ee: 2d push a +06ef: c4 0e mov $0e,a +06f1: 1c asl a +06f2: 5d mov x,a +06f3: b0 13 bcs $0708 +06f5: f5 e1 10 mov a,$10e1+x +06f8: f0 0c beq $0706 +06fa: fd mov y,a +06fb: f5 e0 10 mov a,$10e0+x +06fe: da 19 movw $19,ya +0700: 8d 00 mov y,#$00 +0702: f7 19 mov a,($19)+y +0704: c4 0f mov $0f,a +0706: ae pop a +0707: 6f ret + +0708: f5 01 10 mov a,$1001+x ; play song +070b: 2f f9 bra $0706 +070d: cb 0b mov $0b,y +070f: 4d push x +0710: e4 0e mov a,$0e +0712: 1c asl a +0713: 90 25 bcc $073a +0715: 5d mov x,a +0716: f5 01 10 mov a,$1001+x +0719: fd mov y,a +071a: f5 00 10 mov a,$1000+x +071d: da 23 movw $23,ya +071f: 3f 6e 07 call $076e +0722: da 19 movw $19,ya +0724: ce pop x +0725: eb 0b mov y,$0b +0727: e4 0e mov a,$0e +0729: d6 37 00 mov $0037+y,a +072c: 3f 13 06 call $0613 +072f: 3f 84 07 call $0784 +0732: 1d dec x +0733: d0 f2 bne $0727 +0735: d8 25 mov $25,x +0737: 5f f3 0a jmp $0af3 + +073a: 5d mov x,a +073b: f5 e1 10 mov a,$10e1+x +073e: fd mov y,a +073f: f5 e0 10 mov a,$10e0+x +0742: 80 setc +0743: a4 0b sbc a,$0b +0745: b0 01 bcs $0748 +0747: dc dec y +0748: da 19 movw $19,ya +074a: 3a 19 incw $19 +074c: ce pop x +074d: eb 0b mov y,$0b +074f: e4 0e mov a,$0e +0751: d6 37 00 mov $0037+y,a +0754: 3f 13 06 call $0613 +0757: e4 0f mov a,$0f +0759: d6 38 00 mov $0038+y,a +075c: f7 19 mov a,($19)+y +075e: d6 c7 00 mov $00c7+y,a +0761: fc inc y +0762: f7 19 mov a,($19)+y +0764: d6 c7 00 mov $00c7+y,a +0767: fc inc y +0768: 1d dec x +0769: d0 e4 bne $074f +076b: 5f 47 05 jmp $0547 + +076e: 8d 00 mov y,#$00 +0770: f7 23 mov a,($23)+y +0772: 3a 23 incw $23 +0774: 2d push a +0775: f7 23 mov a,($23)+y +0777: f0 06 beq $077f +0779: 3a 23 incw $23 +077b: fd mov y,a +077c: ae pop a +077d: 2f 04 bra $0783 +077f: 3a 23 incw $23 +0781: fd mov y,a +0782: ae pop a +0783: 6f ret + +0784: f7 19 mov a,($19)+y +0786: d6 c7 00 mov $00c7+y,a +0789: fc inc y +078a: f7 19 mov a,($19)+y +078c: d6 c7 00 mov $00c7+y,a +078f: fc inc y +0790: 6f ret + +0791: f5 37 00 mov a,$0037+x +0794: 68 80 cmp a,#$80 +0796: 90 10 bcc $07a8 +0798: 68 a0 cmp a,#$a0 +079a: b0 06 bcs $07a2 +079c: 4d push x +079d: 3f ca 07 call $07ca +07a0: ce pop x +07a1: 6f ret + +07a2: 4d push x +07a3: 3f b3 07 call $07b3 +07a6: ce pop x +07a7: 6f ret + +07a8: e8 00 mov a,#$00 +07aa: d5 37 00 mov $0037+x,a +07ad: d5 38 00 mov $0038+x,a +07b0: 5f 63 05 jmp $0563 + +07b3: 8f 00 07 mov $07,#$00 +07b6: b2 27 clr5 $27 +07b8: cd 0e mov x,#$0e +07ba: 8d ff mov y,#$ff +07bc: e8 00 mov a,#$00 +07be: d5 37 00 mov $0037+x,a +07c1: d5 38 00 mov $0038+x,a +07c4: 1d dec x +07c5: 1d dec x +07c6: 10 f6 bpl $07be +07c8: dd mov a,y +07c9: 6f ret + +07ca: 8f 00 07 mov $07,#$00 +07cd: b2 27 clr5 $27 +07cf: cd 0a mov x,#$0a +07d1: 8d 3f mov y,#$3f +07d3: 2f e7 bra $07bc +07d5: 3f 6e 07 call $076e +07d8: d0 19 bne $07f3 +07da: fd mov y,a +07db: d0 03 bne $07e0 +07dd: 5f 91 07 jmp $0791 + +07e0: 8b 25 dec $25 +07e2: 10 02 bpl $07e6 +07e4: c4 25 mov $25,a +07e6: 3f 6e 07 call $076e +07e9: 2d push a +07ea: e4 25 mov a,$25 +07ec: ae pop a +07ed: f0 e6 beq $07d5 +07ef: da 23 movw $23,ya +07f1: 2f e2 bra $07d5 +07f3: da 19 movw $19,ya +07f5: 8d 00 mov y,#$00 +07f7: e8 01 mov a,#$01 +07f9: d6 57 00 mov $0057+y,a +07fc: 3f 84 07 call $0784 +07ff: f5 37 00 mov a,$0037+x +0802: 68 a0 cmp a,#$a0 +0804: b0 06 bcs $080c +0806: ad 0c cmp y,#$0c +0808: d0 ed bne $07f7 +080a: 2f 04 bra $0810 +080c: ad 10 cmp y,#$10 +080e: d0 e7 bne $07f7 +0810: 9b 57 dec $57+x +0812: f0 30 beq $0844 +0814: 3f b5 0c call $0cb5 +0817: 9b 58 dec $58+x +0819: f0 01 beq $081c +081b: 6f ret + +081c: f4 c7 mov a,$c7+x +081e: fb c8 mov y,$c8+x +0820: da 17 movw $17,ya +0822: 8d 00 mov y,#$00 +0824: f7 17 mov a,($17)+y +0826: f0 17 beq $083f +0828: 30 03 bmi $082d +082a: fc inc y +082b: 2f f7 bra $0824 +; vcmds 80-c7,c8,c9 - note/tie/rest +082d: 68 c8 cmp a,#$c8 +082f: f0 ea beq $081b +0831: 68 e0 cmp a,#$e0 +0833: 90 0a bcc $083f +0835: 6d push y +0836: fd mov y,a +0837: ae pop a +0838: 60 clrc +0839: 96 8c 0a adc a,$0a8c+y +083c: fd mov y,a +083d: 2f e5 bra $0824 +083f: e4 20 mov a,$20 +0841: 5f e5 05 jmp $05e5 + +0844: 3f 88 0d call $0d88 +0847: d0 2f bne $0878 +0849: f4 77 mov a,$77+x +084b: d0 0d bne $085a +084d: f5 37 00 mov a,$0037+x +0850: 68 80 cmp a,#$80 +0852: b0 03 bcs $0857 +0854: 5f 91 07 jmp $0791 + +0857: 5f d5 07 jmp $07d5 + +085a: 3f 6d 08 call $086d +085d: 9b 77 dec $77+x +085f: d0 e3 bne $0844 +0861: f5 10 01 mov a,$0110+x +0864: d4 c7 mov $c7+x,a +0866: f5 11 01 mov a,$0111+x +0869: d4 c8 mov $c8+x,a +086b: 2f d7 bra $0844 +086d: f5 20 01 mov a,$0120+x +0870: d4 c7 mov $c7+x,a +0872: f5 21 01 mov a,$0121+x +0875: d4 c8 mov $c8+x,a +0877: 6f ret + +; vcmds 01-7f +0878: 30 23 bmi $089d +087a: d5 00 01 mov $0100+x,a +087d: 3f 8a 0d call $0d8a +0880: 30 1b bmi $089d +0882: 2d push a +0883: 9f xcn a +0884: 28 07 and a,#$07 +0886: fd mov y,a +0887: f6 85 0b mov a,$0b85+y ; set dur% from high nybble +088a: d5 01 01 mov $0101+x,a +088d: ae pop a +088e: 28 0f and a,#$0f +0890: fd mov y,a +0891: f6 8d 0b mov a,$0b8d+y ; set per-note vol from low nybble +0894: d5 40 01 mov $0140+x,a +0897: 09 20 26 or ($26),($20) +089a: 3f 8a 0d call $0d8a +089d: 68 e0 cmp a,#$e0 +089f: 90 05 bcc $08a6 +08a1: 3f c2 08 call $08c2 +08a4: 2f 9e bra $0844 +08a6: 68 c9 cmp a,#$c9 +08a8: f0 07 beq $08b1 +08aa: 68 c8 cmp a,#$c8 +08ac: f0 03 beq $08b1 +08ae: 3f f7 03 call $03f7 +08b1: f5 00 01 mov a,$0100+x +08b4: d4 57 mov $57+x,a +08b6: fd mov y,a +08b7: f5 01 01 mov a,$0101+x +08ba: cf mul ya +08bb: dd mov a,y +08bc: d0 01 bne $08bf +08be: bc inc a +08bf: d4 58 mov $58+x,a +08c1: 6f ret + +; dispatch vcmd in A (e0-ff) +08c2: 1c asl a +08c3: 5d mov x,a +08c4: e8 00 mov a,#$00 +08c6: 1f 7a 0a jmp ($0a7a+x) + +; vcmd e0 - set instrument +08c9: 3f 88 0d call $0d88 +08cc: 8d 06 mov y,#$06 +08ce: 8f 00 17 mov $17,#$00 +08d1: 8f 0f 18 mov $18,#$0f +08d4: cf mul ya +08d5: 7a 17 addw ya,$17 +08d7: da 17 movw $17,ya +08d9: 4d push x +08da: 7d mov a,x +08db: 9f xcn a +08dc: 5c lsr a +08dd: 08 04 or a,#$04 +08df: 5d mov x,a +08e0: e4 20 mov a,$20 +08e2: 48 ff eor a,#$ff +08e4: 24 1b and a,$1b +08e6: c4 1b mov $1b,a +08e8: 8d 3d mov y,#$3d +08ea: 3f c2 04 call $04c2 +08ed: 8d 00 mov y,#$00 +08ef: f7 17 mov a,($17)+y +08f1: c9 f2 00 mov $00f2,x +08f4: c5 f3 00 mov $00f3,a +08f7: 3d inc x +08f8: fc inc y +08f9: ad 04 cmp y,#$04 +08fb: d0 f2 bne $08ef +08fd: f7 17 mov a,($17)+y +08ff: ce pop x +0900: d5 51 01 mov $0151+x,a +0903: fc inc y +0904: f7 17 mov a,($17)+y +0906: d5 50 01 mov $0150+x,a +0909: e8 00 mov a,#$00 +090b: 6f ret + +; vcmd e1 - pan +090c: 3f 88 0d call $0d88 +090f: 28 1f and a,#$1f +0911: d5 31 02 mov $0231+x,a +0914: e8 00 mov a,#$00 +0916: d5 30 02 mov $0230+x,a +0919: 09 20 26 or ($26),($20) +091c: 6f ret + +; vcmd e2 - pan fade +091d: 3f 88 0d call $0d88 +0920: d4 68 mov $68+x,a +0922: 2d push a +0923: 3f 8a 0d call $0d8a +0926: d5 50 02 mov $0250+x,a +0929: 80 setc +092a: b5 31 02 sbc a,$0231+x +092d: ce pop x +092e: 3f 9b 0a call $0a9b +0931: d5 40 02 mov $0240+x,a +0934: dd mov a,y +0935: d5 41 02 mov $0241+x,a +0938: 6f ret + +; vcmd e3 - vibrato on +0939: 3f 88 0d call $0d88 +093c: d5 c0 02 mov $02c0+x,a +093f: e8 00 mov a,#$00 +0941: d5 c1 02 mov $02c1+x,a +0944: 3f 8a 0d call $0d8a +0947: d5 b1 02 mov $02b1+x,a +094a: 3f 8a 0d call $0d8a +; vcmd e4 - vibrato off +094d: f8 1d mov x,$1d +094f: d4 a7 mov $a7+x,a +0951: 6f ret + +; vcmd ef - vibrato fade +0952: 3f 88 0d call $0d88 +0955: d5 c1 02 mov $02c1+x,a +0958: 2d push a +0959: f4 a7 mov a,$a7+x +095b: d5 d1 02 mov $02d1+x,a +095e: ce pop x +095f: 8d 00 mov y,#$00 +0961: 9e div ya,x +0962: f8 1d mov x,$1d +0964: d5 d0 02 mov $02d0+x,a +0967: 6f ret + +; vcmd e5 - master volume +0968: 3f 88 0d call $0d88 +096b: c4 29 mov $29,a +096d: fa 00 28 mov ($28),($00) +0970: 6f ret + +; vcmd e6 - master volume fade +0971: 3f 88 0d call $0d88 +0974: c4 2e mov $2e,a +0976: 2d push a +0977: 3f 8a 0d call $0d8a +097a: c4 2f mov $2f,a +097c: 80 setc +097d: ce pop x +097e: a4 29 sbc a,$29 +0980: 3f 9b 0a call $0a9b +0983: da 2a movw $2a,ya +0985: 6f ret + +; vcmd e7 - tempo +0986: 3f 88 0d call $0d88 +0989: 1c asl a +098a: d4 48 mov $48+x,a +098c: 6f ret + +; vcmd e8 - global transpose +098d: 3f 88 0d call $0d88 +0990: c4 1c mov $1c,a +0992: 6f ret + +; vcmd e9 - per-voice transpose +0993: 3f 88 0d call $0d88 +0996: d5 30 01 mov $0130+x,a +0999: 6f ret + +; vcmd ea - tremolo on +099a: 3f 88 0d call $0d88 +099d: d5 f0 02 mov $02f0+x,a +09a0: 3f 8a 0d call $0d8a +09a3: d5 e1 02 mov $02e1+x,a +09a6: 3f 8a 0d call $0d8a +; vcmd eb - tremolo off +09a9: f8 1d mov x,$1d +09ab: d4 b7 mov $b7+x,a +09ad: 6f ret + +; vcmd f0 - pitch envelope (release) +09ae: e8 01 mov a,#$01 +09b0: 2f 02 bra $09b4 +; vcmd f1 - pitch envelope (attack) +09b2: e8 00 mov a,#$00 +09b4: f8 1d mov x,$1d +09b6: d5 a0 02 mov $02a0+x,a +09b9: 3f 88 0d call $0d88 +09bc: d5 91 02 mov $0291+x,a +09bf: 3f 8a 0d call $0d8a +09c2: d5 90 02 mov $0290+x,a +09c5: 3f 8a 0d call $0d8a +09c8: d5 a1 02 mov $02a1+x,a +09cb: 6f ret + +; vcmd f2 - pitch envelope off +09cc: f8 1d mov x,$1d +09ce: d5 90 02 mov $0290+x,a +09d1: 6f ret + +; vcmd ec - volume +09d2: 3f 88 0d call $0d88 +09d5: d5 01 02 mov $0201+x,a +09d8: e8 00 mov a,#$00 +09da: d5 00 02 mov $0200+x,a +09dd: 09 20 26 or ($26),($20) +09e0: 6f ret + +; vcmd ed - volume fade +09e1: 3f 88 0d call $0d88 +09e4: d4 67 mov $67+x,a +09e6: 2d push a +09e7: 3f 8a 0d call $0d8a +09ea: d5 20 02 mov $0220+x,a +09ed: 80 setc +09ee: b5 01 02 sbc a,$0201+x +09f1: ce pop x +09f2: 3f 9b 0a call $0a9b +09f5: d5 10 02 mov $0210+x,a +09f8: dd mov a,y +09f9: d5 11 02 mov $0211+x,a +09fc: 6f ret + +; vcmd f3 - tuning +09fd: 3f 88 0d call $0d88 +0a00: d5 81 02 mov $0281+x,a +0a03: 6f ret + +; vcmd f5 - set ASDR +0a04: 3f 88 0d call $0d88 +0a07: 8d 00 mov y,#$00 +0a09: 68 a0 cmp a,#$a0 +0a0b: b0 10 bcs $0a1d +0a0d: 4d push x +0a0e: cd 0a mov x,#$0a +0a10: 9e div ya,x +0a11: c4 0b mov $0b,a +0a13: dd mov a,y +0a14: 28 07 and a,#$07 +0a16: 9f xcn a +0a17: 04 0b or a,$0b +0a19: 08 80 or a,#$80 +0a1b: fd mov y,a +0a1c: ce pop x +0a1d: 4d push x +0a1e: 7d mov a,x +0a1f: 9f xcn a +0a20: 5c lsr a +0a21: 08 05 or a,#$05 +0a23: 5d mov x,a +0a24: dd mov a,y +0a25: c9 f2 00 mov $00f2,x +0a28: c5 f3 00 mov $00f3,a +0a2b: 4d push x +0a2c: ee pop y +0a2d: ce pop x +0a2e: fc inc y +0a2f: 3f 54 0a call $0a54 +0a32: cc f2 00 mov $00f2,y +0a35: 4d push x +0a36: 6d push y +0a37: 8d 00 mov y,#$00 +0a39: cd 1e mov x,#$1e +0a3b: 9e div ya,x +0a3c: fc inc y +0a3d: fc inc y +0a3e: cb 0b mov $0b,y +0a40: 9f xcn a +0a41: 1c asl a +0a42: 04 0b or a,$0b +0a44: ee pop y +0a45: ce pop x +0a46: c5 f3 00 mov $00f3,a +0a49: fc inc y +0a4a: 3f 54 0a call $0a54 +0a4d: cc f2 00 mov $00f2,y +0a50: c5 f3 00 mov $00f3,a +0a53: 6f ret + +0a54: e7 c7 mov a,($c7+x) +0a56: bb c7 inc $c7+x +0a58: d0 02 bne $0a5c +0a5a: bb c8 inc $c8+x +0a5c: 6f ret + +; vcmd ee - call subroutine +0a5d: 3f 88 0d call $0d88 +0a60: 2d push a +0a61: 3f 8a 0d call $0d8a +0a64: 2d push a +0a65: 3f 8a 0d call $0d8a +0a68: d5 77 00 mov $0077+x,a +0a6b: f4 c7 mov a,$c7+x +0a6d: d5 10 01 mov $0110+x,a +0a70: f4 c8 mov a,$c8+x +0a72: d5 11 01 mov $0111+x,a +0a75: ae pop a +0a76: d4 c8 mov $c8+x,a +0a78: d5 21 01 mov $0121+x,a +0a7b: ae pop a +0a7c: d4 c7 mov $c7+x,a +0a7e: d5 20 01 mov $0120+x,a +0a81: 6f ret + +0a82: 28 7f and a,#$7f +0a84: d5 80 02 mov $0280+x,a +0a87: 80 setc +0a88: b5 61 02 sbc a,$0261+x +0a8b: 2d push a +0a8c: f4 87 mov a,$87+x +0a8e: 5d mov x,a +0a8f: ae pop a +0a90: 3f 9b 0a call $0a9b +0a93: d5 70 02 mov $0270+x,a +0a96: dd mov a,y +0a97: d5 71 02 mov $0271+x,a +0a9a: 6f ret + +0a9b: b0 0d bcs $0aaa +0a9d: 48 ff eor a,#$ff +0a9f: bc inc a +0aa0: 3f aa 0a call $0aaa +0aa3: da 17 movw $17,ya +0aa5: ba 0c movw ya,$0c +0aa7: 9a 17 subw ya,$17 +0aa9: 6f ret + +0aaa: 8d 00 mov y,#$00 +0aac: 9e div ya,x +0aad: 2d push a +0aae: e8 00 mov a,#$00 +0ab0: 9e div ya,x +0ab1: ee pop y +0ab2: f8 1d mov x,$1d +0ab4: 6f ret + +; vcmd f6 - echo vbits/volume +0ab5: 3f 88 0d call $0d88 +0ab8: c4 03 mov $03,a +0aba: 3f 88 0d call $0d88 +0abd: c4 04 mov $04,a +0abf: 3f 88 0d call $0d88 +0ac2: c4 05 mov $05,a +0ac4: b2 02 clr5 $02 +0ac6: 6f ret + +; vcmd f7 - set echo params +0ac7: 4d push x +0ac8: 3f 88 0d call $0d88 +0acb: 3f 09 0b call $0b09 +0ace: 3f 88 0d call $0d88 +0ad1: c4 06 mov $06,a +0ad3: 3f 88 0d call $0d88 +0ad6: 9f xcn a +0ad7: 5c lsr a +0ad8: 5d mov x,a +0ad9: 8d 0f mov y,#$0f +0adb: f5 a9 0d mov a,$0da9+x +0ade: 3f c2 04 call $04c2 +0ae1: 3d inc x +0ae2: dd mov a,y +0ae3: 60 clrc +0ae4: 88 10 adc a,#$10 +0ae6: fd mov y,a +0ae7: 10 f2 bpl $0adb +0ae9: ce pop x +0aea: e4 03 mov a,$03 +0aec: 8d 4d mov y,#$4d +0aee: b2 02 clr5 $02 +0af0: 5f c2 04 jmp $04c2 + +0af3: 8f 00 04 mov $04,#$00 +0af6: 8f 00 05 mov $05,#$00 +0af9: a2 02 set5 $02 +0afb: e8 02 mov a,#$02 +0afd: 3f 09 0b call $0b09 +0b00: e8 00 mov a,#$00 +0b02: 8d 6c mov y,#$6c +0b04: 5f c2 04 jmp $04c2 + +; vcmd f8 - pitch slide +0b07: 2f ea bra $0af3 +0b09: c4 00 mov $00,a +0b0b: 8f 20 01 mov $01,#$20 +0b0e: e8 00 mov a,#$00 +0b10: 8d 2c mov y,#$2c +0b12: 3f c2 04 call $04c2 +0b15: 8d 3c mov y,#$3c +0b17: 3f c2 04 call $04c2 +0b1a: e8 00 mov a,#$00 +0b1c: 8d 0d mov y,#$0d +0b1e: 3f c2 04 call $04c2 +0b21: e4 00 mov a,$00 +0b23: 68 03 cmp a,#$03 +0b25: 90 02 bcc $0b29 +0b27: e8 02 mov a,#$02 +0b29: 8d 7d mov y,#$7d +0b2b: 3f c2 04 call $04c2 +0b2e: 9f xcn a +0b2f: 5c lsr a +0b30: 48 ff eor a,#$ff +0b32: 60 clrc +0b33: 88 01 adc a,#$01 +0b35: 8d 6d mov y,#$6d +0b37: 5f c2 04 jmp $04c2 + +; vcmd dispatch table +0b3a: dw $08c9 ; e0 - set instrument +0b3c: dw $090c ; e1 - pan +0b3e: dw $091d ; e2 - pan fade +0b40: dw $0939 ; e3 - vibrato on +0b42: dw $094d ; e4 - vibrato off +0b44: dw $0968 ; e5 - master volume +0b46: dw $0971 ; e6 - master volume fade +0b48: dw $0986 ; e7 - tempo +0b4a: dw $098d ; e8 - global transpose +0b4c: dw $0993 ; e9 - per-voice transpose +0b4e: dw $099a ; ea - tremolo on +0b50: dw $09a9 ; eb - tremolo off +0b52: dw $09d2 ; ec - volume +0b54: dw $09e1 ; ed - volume fade +0b56: dw $0a5d ; ee - call subroutine +0b58: dw $0952 ; ef - vibrato fade +0b5a: dw $09ae ; f0 - pitch envelope (release) +0b5c: dw $09b2 ; f1 - pitch envelope (attack) +0b5e: dw $09cc ; f2 - pitch envelope off +0b60: dw $09fd ; f3 - tuning +0b62: dw $0cc1 ; f4 +0b64: dw $0a04 ; f5 - set ASDR +0b66: dw $0ab5 ; f6 - echo vbits/volume +0b68: dw $0ac7 ; f7 - set echo params +0b6a: dw $0b07 ; f8 - pitch slide + +; vcmd lengths +0b6c: db $02,$02,$03,$04,$01,$02,$03,$02 ; e0-e7 +0b74: db $02,$02,$04,$01,$02,$03,$04,$02 ; e8-ef +0b7c: db $04,$04,$01,$02,$04,$04,$04,$04 ; f0-f7 +0b84: db $01 ; f8 + +; note dur%'s +0b85: db $32,$65,$7f,$98,$b2,$cb,$e5,$fc +; per-note velocity values +0b8d: db $19,$32,$4c,$65,$72,$7f,$8c,$98 +0b95: db $a5,$b2,$bf,$cb,$d8,$e5,$f2,$fc + +0b9d: 7d mov a,x +0b9e: d0 2a bne $0bca +0ba0: e4 34 mov a,$34 +0ba2: f0 14 beq $0bb8 +0ba4: e2 07 set7 $07 +0ba6: ba 32 movw ya,$32 +0ba8: 7a 30 addw ya,$30 +0baa: 6e 34 06 dbnz $34,$0bb3 +0bad: f2 07 clr7 $07 +0baf: b2 27 clr5 $27 +0bb1: ba 34 movw ya,$34 +0bb3: da 30 movw $30,ya +0bb5: 8f ff 26 mov $26,#$ff +0bb8: e4 2e mov a,$2e +0bba: f0 0e beq $0bca +0bbc: ba 2a movw ya,$2a +0bbe: 7a 28 addw ya,$28 +0bc0: 6e 2e 02 dbnz $2e,$0bc5 +0bc3: ba 2e movw ya,$2e +0bc5: da 28 movw $28,ya +0bc7: 8f ff 26 mov $26,#$ff +0bca: e4 01 mov a,$01 +0bcc: f0 20 beq $0bee +0bce: 8b 01 dec $01 +0bd0: d0 1c bne $0bee +0bd2: e4 04 mov a,$04 +0bd4: 8d 2c mov y,#$2c +0bd6: 3f c2 04 call $04c2 +0bd9: e4 05 mov a,$05 +0bdb: 8d 3c mov y,#$3c +0bdd: 3f c2 04 call $04c2 +0be0: e4 06 mov a,$06 +0be2: 8d 0d mov y,#$0d +0be4: 3f c2 04 call $04c2 +0be7: e4 02 mov a,$02 +0be9: 8d 6c mov y,#$6c +0beb: 3f c2 04 call $04c2 +0bee: f4 67 mov a,$67+x +0bf0: f0 0c beq $0bfe +0bf2: 09 20 26 or ($26),($20) +0bf5: e8 00 mov a,#$00 +0bf7: 8d 02 mov y,#$02 +0bf9: 9b 67 dec $67+x +0bfb: 3f 89 0c call $0c89 +0bfe: f4 b7 mov a,$b7+x +0c00: fd mov y,a +0c01: f0 23 beq $0c26 +0c03: f5 f0 02 mov a,$02f0+x +0c06: de b8 1b cbne $b8+x,$0c24 +0c09: 09 20 26 or ($26),($20) +0c0c: f5 e0 02 mov a,$02e0+x +0c0f: 10 07 bpl $0c18 +0c11: fc inc y +0c12: d0 04 bne $0c18 +0c14: e8 80 mov a,#$80 +0c16: 2f 04 bra $0c1c +0c18: 60 clrc +0c19: 95 e1 02 adc a,$02e1+x +0c1c: d5 e0 02 mov $02e0+x,a +0c1f: 3f 5e 0d call $0d5e +0c22: 2f 08 bra $0c2c +0c24: bb b8 inc $b8+x +0c26: f5 40 01 mov a,$0140+x +0c29: 3f 6d 0d call $0d6d +0c2c: f4 68 mov a,$68+x +0c2e: d0 0d bne $0c3d +0c30: e4 26 mov a,$26 +0c32: 24 20 and a,$20 +0c34: f0 52 beq $0c88 +0c36: e4 20 mov a,$20 +0c38: 4e 26 00 tclr1 $0026 +0c3b: 2f 09 bra $0c46 +0c3d: e8 30 mov a,#$30 +0c3f: 8d 02 mov y,#$02 +0c41: 9b 68 dec $68+x +0c43: 3f 89 0c call $0c89 +0c46: f5 31 02 mov a,$0231+x +0c49: fd mov y,a +0c4a: f5 30 02 mov a,$0230+x +0c4d: da 21 movw $21,ya +0c4f: 7d mov a,x +0c50: 9f xcn a +0c51: 5c lsr a +0c52: c4 10 mov $10,a +0c54: eb 22 mov y,$22 +0c56: d3 27 06 bbc6 $27,$0c5f +0c59: 8d 0a mov y,#$0a +0c5b: cb 22 mov $22,y +0c5d: cb 21 mov $21,y +0c5f: f6 95 0d mov a,$0d95+y +0c62: 80 setc +0c63: b6 94 0d sbc a,$0d94+y +0c66: eb 21 mov y,$21 +0c68: cf mul ya +0c69: dd mov a,y +0c6a: eb 22 mov y,$22 +0c6c: 60 clrc +0c6d: 96 94 0d adc a,$0d94+y +0c70: fd mov y,a +0c71: f5 41 01 mov a,$0141+x +0c74: cf mul ya +0c75: dd mov a,y +0c76: eb 10 mov y,$10 +0c78: 3f c2 04 call $04c2 +0c7b: e8 00 mov a,#$00 +0c7d: 8d 14 mov y,#$14 +0c7f: 9a 21 subw ya,$21 +0c81: da 21 movw $21,ya +0c83: ab 10 inc $10 +0c85: 33 10 cc bbc1 $10,$0c54 +0c88: 6f ret + +0c89: da 17 movw $17,ya +0c8b: d0 0f bne $0c9c +0c8d: 60 clrc +0c8e: 88 20 adc a,#$20 +0c90: da 19 movw $19,ya +0c92: 7d mov a,x +0c93: fd mov y,a +0c94: e8 00 mov a,#$00 +0c96: 2d push a +0c97: f7 19 mov a,($19)+y +0c99: fc inc y +0c9a: 2f 12 bra $0cae +0c9c: 60 clrc +0c9d: 88 10 adc a,#$10 +0c9f: da 19 movw $19,ya +0ca1: 7d mov a,x +0ca2: fd mov y,a +0ca3: f7 17 mov a,($17)+y +0ca5: 60 clrc +0ca6: 97 19 adc a,($19)+y +0ca8: 2d push a +0ca9: fc inc y +0caa: f7 17 mov a,($17)+y +0cac: 97 19 adc a,($19)+y +0cae: d7 17 mov ($17)+y,a +0cb0: dc dec y +0cb1: ae pop a +0cb2: d7 17 mov ($17)+y,a +0cb4: 6f ret + +0cb5: f2 11 clr7 $11 +0cb7: f4 87 mov a,$87+x +0cb9: d0 26 bne $0ce1 +0cbb: e7 c7 mov a,($c7+x) +0cbd: 68 f4 cmp a,#$f4 +0cbf: d0 33 bne $0cf4 +; vcmd f4 +0cc1: 3f 8c 0d call $0d8c +0cc4: 3f 8a 0d call $0d8a +0cc7: d4 88 mov $88+x,a +0cc9: 3f 8a 0d call $0d8a +0ccc: d4 87 mov $87+x,a +0cce: 3f 8a 0d call $0d8a +0cd1: 2d push a +0cd2: f4 37 mov a,$37+x +0cd4: ae pop a +0cd5: 10 03 bpl $0cda +0cd7: 60 clrc +0cd8: 84 1c adc a,$1c +0cda: 60 clrc +0cdb: 95 30 01 adc a,$0130+x +0cde: 3f 82 0a call $0a82 +0ce1: f4 88 mov a,$88+x +0ce3: f0 04 beq $0ce9 +0ce5: 9b 88 dec $88+x +0ce7: 2f 0b bra $0cf4 +0ce9: e2 11 set7 $11 +0ceb: e8 60 mov a,#$60 +0ced: 8d 02 mov y,#$02 +0cef: 9b 87 dec $87+x +0cf1: 3f 89 0c call $0c89 +0cf4: f5 61 02 mov a,$0261+x +0cf7: fd mov y,a +0cf8: f5 60 02 mov a,$0260+x +0cfb: da 21 movw $21,ya +0cfd: f4 a7 mov a,$a7+x +0cff: f0 09 beq $0d0a +0d01: f5 c0 02 mov a,$02c0+x +0d04: 74 a8 cmp a,$a8+x +0d06: f0 06 beq $0d0e +0d08: bb a8 inc $a8+x +0d0a: e3 11 4e bbs7 $11,$0d5b +0d0d: 6f ret + +0d0e: f5 c1 02 mov a,$02c1+x +0d11: f0 19 beq $0d2c +0d13: 74 97 cmp a,$97+x +0d15: d0 07 bne $0d1e +0d17: f5 d1 02 mov a,$02d1+x +0d1a: d4 a7 mov $a7+x,a +0d1c: 2f 0e bra $0d2c +0d1e: f4 97 mov a,$97+x +0d20: f0 02 beq $0d24 +0d22: f4 a7 mov a,$a7+x +0d24: 60 clrc +0d25: 95 d0 02 adc a,$02d0+x +0d28: d4 a7 mov $a7+x,a +0d2a: bb 97 inc $97+x +0d2c: f5 b0 02 mov a,$02b0+x +0d2f: 60 clrc +0d30: 95 b1 02 adc a,$02b1+x +0d33: d5 b0 02 mov $02b0+x,a +0d36: c4 10 mov $10,a +0d38: 1c asl a +0d39: 1c asl a +0d3a: 90 02 bcc $0d3e +0d3c: 48 ff eor a,#$ff +0d3e: fd mov y,a +0d3f: f4 a7 mov a,$a7+x +0d41: 68 f1 cmp a,#$f1 +0d43: b0 06 bcs $0d4b +0d45: cf mul ya +0d46: dd mov a,y +0d47: 8d 00 mov y,#$00 +0d49: 2f 03 bra $0d4e +0d4b: 28 0f and a,#$0f +0d4d: cf mul ya +0d4e: f3 10 06 bbc7 $10,$0d57 +0d51: da 10 movw $10,ya +0d53: ba 0c movw ya,$0c +0d55: 9a 10 subw ya,$10 +0d57: 7a 21 addw ya,$21 +0d59: da 21 movw $21,ya +0d5b: 5f 63 04 jmp $0463 +0d5e: 1c asl a +0d5f: 90 02 bcc $0d63 +0d61: 48 ff eor a,#$ff +0d63: fb b7 mov y,$b7+x +0d65: cf mul ya +0d66: f5 40 01 mov a,$0140+x +0d69: cf mul ya +0d6a: dd mov a,y +0d6b: 48 ff eor a,#$ff +0d6d: fd mov y,a +0d6e: f5 01 02 mov a,$0201+x +0d71: cf mul ya +0d72: f5 37 00 mov a,$0037+x +0d75: 30 04 bmi $0d7b +0d77: e8 ff mov a,#$ff +0d79: 2f 05 bra $0d80 +0d7b: e4 31 mov a,$31 +0d7d: cf mul ya +0d7e: e4 29 mov a,$29 +0d80: cf mul ya +0d81: dd mov a,y +0d82: cf mul ya +0d83: dd mov a,y +0d84: d5 41 01 mov $0141+x,a +0d87: 6f ret + +; get next byte +0d88: f8 1d mov x,$1d +0d8a: e7 c7 mov a,($c7+x) +0d8c: bb c7 inc $c7+x +0d8e: d0 02 bne $0d92 +0d90: bb c8 inc $c8+x +0d92: fd mov y,a +0d93: 6f ret + +; pan table +0d94: db $00,$01,$03,$07,$0d,$15,$1e,$29 +0d9c: db $34,$42,$51,$5e,$67,$6e,$73,$77 +0da4: db $7a,$7c,$7d,$7e,$7f + +; echo FIR presets +0da9: db $7f,$00,$00,$00,$00,$00,$00,$00 +0db1: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c +0db9: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 +0dc1: db $34,$33,$00,$d9,$e5,$01,$fc,$eb + +0dc9: db $0c,$1c,$2d,$3d,$5d,$0d,$4d,$6d,$7d,$6c,$2c,$3c,$5c +0dd6: db $7f,$7f,$00,$00,$2e,$00,$00,$f0,$00,$20,$00,$00,$ff + +; pitch table +0de3: dw $0042 +0de5: dw $0046 +0de7: dw $004b +0de9: dw $004f +0deb: dw $0054 +0ded: dw $0059 +0def: dw $005e +0df1: dw $0064 +0df3: dw $006a +0df5: dw $0070 +0df7: dw $0077 +0df9: dw $007e +0dfb: dw $0085 +0dfd: dw $008d +0dff: dw $0096 +0e01: dw $009f +0e03: dw $00a8 +0e05: dw $00b2 +0e07: dw $00bd +0e09: dw $00c8 +0e0b: dw $00d4 +0e0d: dw $00e1 +0e0f: dw $00ee +0e11: dw $00fc +0e13: dw $010b +0e15: dw $011b +0e17: dw $012c +0e19: dw $013e +0e1b: dw $0151 +0e1d: dw $0165 +0e1f: dw $017a +0e21: dw $0191 +0e23: dw $01a9 +0e25: dw $01c2 +0e27: dw $01dd +0e29: dw $01f9 +0e2b: dw $0217 +0e2d: dw $0237 +0e2f: dw $0259 +0e31: dw $027d +0e33: dw $02a3 +0e35: dw $02cb +0e37: dw $02f5 +0e39: dw $0322 +0e3b: dw $0352 +0e3d: dw $0385 +0e3f: dw $03ba +0e41: dw $03f3 +0e43: dw $042f +0e45: dw $046f +0e47: dw $04b2 +0e49: dw $04fa +0e4b: dw $0546 +0e4d: dw $0596 +0e4f: dw $05eb +0e51: dw $0645 +0e53: dw $06a5 +0e55: dw $070a +0e57: dw $0775 +0e59: dw $07e6 +0e5b: dw $085f +0e5d: dw $08de +0e5f: dw $0965 +0e61: dw $09f4 +0e63: dw $0a8c +0e65: dw $0b2c +0e67: dw $0bd6 +0e69: dw $0c8b +0e6b: dw $0d4a +0e6d: dw $0e14 +0e6f: dw $0eea +0e71: dw $0fcd + +0e73: db $00,$00,$01,$01,$00,$01,$00,$00,$01,$01,$00,$00 + +0e7f: dw $0579 +0e81: dw $0588 +0e83: dw $04c9 +0e85: dw $04db +0e87: dw $04f1 +0e89: dw $04f7 +0e8b: dw $05a2 +0e8d: dw $05a8 +0e8f: dw $05ae +0e91: dw $0526 +0e93: dw $0540 +0e95: dw $0543 diff --git a/snes/NSPC/Sunsoft/Albert Odyssey ($0800).bin b/snes/NSPC/Sunsoft/Albert Odyssey ($0800).bin new file mode 100644 index 00000000..71160ed1 Binary files /dev/null and b/snes/NSPC/Sunsoft/Albert Odyssey ($0800).bin differ diff --git a/snes/NSPC/Sunsoft/Albert Odyssey 2 - Jashin no Taidou ($0800).bin b/snes/NSPC/Sunsoft/Albert Odyssey 2 - Jashin no Taidou ($0800).bin new file mode 100644 index 00000000..5ddf5a85 Binary files /dev/null and b/snes/NSPC/Sunsoft/Albert Odyssey 2 - Jashin no Taidou ($0800).bin differ diff --git a/snes/NSPC/Sunsoft/Albert Odyssey 2 - Jashin no Taidou.s b/snes/NSPC/Sunsoft/Albert Odyssey 2 - Jashin no Taidou.s new file mode 100644 index 00000000..a37959a9 --- /dev/null +++ b/snes/NSPC/Sunsoft/Albert Odyssey 2 - Jashin no Taidou.s @@ -0,0 +1,2963 @@ +0800: 20 clrp +0801: cd cf mov x,#$cf +0803: bd mov sp,x +0804: e8 e0 mov a,#$e0 +0806: 8d 6c mov y,#$6c +0808: 3f 35 0c call $0c35 +080b: e8 00 mov a,#$00 +080d: 5d mov x,a +080e: af mov (x)+,a +080f: c8 e0 cmp x,#$e0 +0811: d0 fb bne $080e +0813: fd mov y,a +0814: c4 14 mov $14,a +0816: 8f 02 15 mov $15,#$02 +0819: d7 14 mov ($14)+y,a +081b: 3a 14 incw $14 +081d: 78 06 15 cmp $15,#$06 +0820: d0 f7 bne $0819 +0822: 3f f3 09 call $09f3 +0825: e8 03 mov a,#$03 +0827: c5 00 04 mov $0400,a +082a: e8 f0 mov a,#$f0 +082c: c5 f1 00 mov $00f1,a +082f: e8 10 mov a,#$10 +0831: c5 fa 00 mov $00fa,a +0834: c4 53 mov $53,a +0836: e8 01 mov a,#$01 +0838: c5 f1 00 mov $00f1,a +083b: e8 00 mov a,#$00 +083d: c4 f4 mov $f4,a +083f: c4 f5 mov $f5,a +0841: c4 f6 mov $f6,a +0843: c4 f7 mov $f7,a +0845: e5 d1 03 mov a,$03d1 +0848: f0 23 beq $086d +084a: e5 d4 03 mov a,$03d4 +084d: 04 46 or a,$46 +084f: c5 d4 03 mov $03d4,a +0852: e5 d2 03 mov a,$03d2 +0855: 04 45 or a,$45 +0857: c4 45 mov $45,a +0859: 48 ff eor a,#$ff +085b: fd mov y,a +085c: 25 d4 03 and a,$03d4 +085f: c4 46 mov $46,a +0861: dd mov a,y +0862: 25 d3 03 and a,$03d3 +0865: c5 d4 03 mov $03d4,a +0868: e8 00 mov a,#$00 +086a: c5 d1 03 mov $03d1,a +086d: 8d 0a mov y,#$0a +086f: ad 05 cmp y,#$05 +0871: f0 07 beq $087a +0873: b0 08 bcs $087d +0875: 69 4d 4c cmp ($4c),($4d) +0878: d0 11 bne $088b +087a: e3 4c 0e bbs7 $4c,$088b +087d: f6 79 1e mov a,$1e79+y +0880: c5 f2 00 mov $00f2,a +0883: f6 83 1e mov a,$1e83+y +0886: 5d mov x,a +0887: e6 mov a,(x) +0888: c5 f3 00 mov $00f3,a +088b: fe e2 dbnz y,$086f +088d: cb 45 mov $45,y +088f: cb 46 mov $46,y +0891: e4 18 mov a,$18 +0893: 44 19 eor a,$19 +0895: 5c lsr a +0896: 5c lsr a +0897: ed notc +0898: 6b 18 ror $18 +089a: 6b 19 ror $19 +089c: ec fd 00 mov y,$00fd +089f: f0 fb beq $089c +08a1: 6d push y +08a2: e8 20 mov a,#$20 +08a4: cf mul ya +08a5: 60 clrc +08a6: 84 43 adc a,$43 +08a8: c4 43 mov $43,a +08aa: 90 07 bcc $08b3 +08ac: 69 4d 4c cmp ($4c),($4d) +08af: f0 02 beq $08b3 +08b1: ab 4c inc $4c +08b3: e4 53 mov a,$53 +08b5: ee pop y +08b6: cf mul ya +08b7: 60 clrc +08b8: 84 51 adc a,$51 +08ba: c4 51 mov $51,a +08bc: 90 56 bcc $0914 +08be: e5 00 04 mov a,$0400 +08c1: f0 06 beq $08c9 +08c3: 8c 00 04 dec $0400 +08c6: 5f 45 08 jmp $0845 + +08c9: e8 ff mov a,#$ff +08cb: c5 d1 03 mov $03d1,a +08ce: e8 00 mov a,#$00 +08d0: c5 d2 03 mov $03d2,a +08d3: c5 d3 03 mov $03d3,a +08d6: 3f 6f 09 call $096f +08d9: 3f 34 1d call $1d34 +08dc: 3f 82 15 call $1582 +08df: e4 05 mov a,$05 +08e1: 04 06 or a,$06 +08e3: f0 03 beq $08e8 +08e5: 3f a4 16 call $16a4 +08e8: e4 5e mov a,$5e +08ea: c5 05 04 mov $0405,a +08ed: 3f a8 0c call $0ca8 +08f0: e4 5e mov a,$5e +08f2: c5 c0 03 mov $03c0,a +08f5: cd 00 mov x,#$00 +08f7: 3f 58 09 call $0958 +08fa: cd 01 mov x,#$01 +08fc: 3f 58 09 call $0958 +08ff: cd 02 mov x,#$02 +0901: 3f 58 09 call $0958 +0904: cd 03 mov x,#$03 +0906: 3f 58 09 call $0958 +0909: ac 4f 00 inc $004f +090c: e5 4f 00 mov a,$004f +090f: c4 07 mov $07,a +0911: 5f 45 08 jmp $0845 + +0914: e5 05 04 mov a,$0405 +0917: c4 5e mov $5e,a +0919: cd 00 mov x,#$00 +091b: e4 05 mov a,$05 +091d: f0 01 beq $0920 +091f: 3d inc x +0920: e4 06 mov a,$06 +0922: f0 01 beq $0925 +0924: 3d inc x +0925: 7d mov a,x +0926: f0 12 beq $093a +0928: cd 00 mov x,#$00 +092a: 8f 01 47 mov $47,#$01 +092d: f4 21 mov a,$21+x +092f: f0 03 beq $0934 +0931: 3f 49 1b call $1b49 +0934: 3d inc x +0935: 3d inc x +0936: 0b 47 asl $47 +0938: d0 f3 bne $092d +093a: e5 c0 03 mov a,$03c0 +093d: c4 5e mov $5e,a +093f: e4 04 mov a,$04 +0941: f0 12 beq $0955 +0943: cd 00 mov x,#$00 +0945: 8f 01 47 mov $47,#$01 +0948: f4 31 mov a,$31+x +094a: f0 03 beq $094f +094c: 3f a4 12 call $12a4 +094f: 3d inc x +0950: 3d inc x +0951: 0b 47 asl $47 +0953: d0 f3 bne $0948 +0955: 5f 45 08 jmp $0845 + +0958: f5 b0 03 mov a,$03b0+x +095b: d5 b4 03 mov $03b4+x,a +095e: f4 04 mov a,$04+x +0960: d5 f4 00 mov $00f4+x,a +0963: f5 f4 00 mov a,$00f4+x +0966: 75 f4 00 cmp a,$00f4+x +0969: d0 f8 bne $0963 +096b: d5 b0 03 mov $03b0+x,a +096e: 6f ret + +096f: e5 d5 03 mov a,$03d5 +0972: f0 12 beq $0986 +0974: 9c dec a +0975: 68 01 cmp a,#$01 +0977: f0 05 beq $097e +0979: c5 d5 03 mov $03d5,a +097c: 2f 08 bra $0986 +097e: 3f c8 0a call $0ac8 +0981: e8 00 mov a,#$00 +0983: c5 d5 03 mov $03d5,a +0986: e5 b0 03 mov a,$03b0 +0989: 65 b4 03 cmp a,$03b4 +098c: f0 08 beq $0996 +098e: 28 7f and a,#$7f +0990: c4 00 mov $00,a +0992: e8 ff mov a,#$ff +0994: c4 08 mov $08,a +0996: e5 b1 03 mov a,$03b1 +0999: 65 b5 03 cmp a,$03b5 +099c: f0 0b beq $09a9 +099e: 28 7f and a,#$7f +09a0: 68 6f cmp a,#$6f +09a2: b0 07 bcs $09ab +09a4: c4 01 mov $01,a +09a6: 8f ff 09 mov $09,#$ff +09a9: 2f 03 bra $09ae +09ab: 3f c6 09 call $09c6 +09ae: e5 b2 03 mov a,$03b2 +09b1: 65 b6 03 cmp a,$03b6 +09b4: f0 0b beq $09c1 +09b6: 28 7f and a,#$7f +09b8: 68 6f cmp a,#$6f +09ba: b0 06 bcs $09c2 +09bc: c4 02 mov $02,a +09be: 8f ff 0a mov $0a,#$ff +09c1: 6f ret + +09c2: 3f c6 09 call $09c6 +09c5: 6f ret + +09c6: 28 0f and a,#$0f +09c8: 1c asl a +09c9: 5d mov x,a +09ca: f5 d4 09 mov a,$09d4+x +09cd: 2d push a +09ce: f5 d3 09 mov a,$09d3+x +09d1: 2d push a +09d2: 6f ret + +09d3: f3 09 8b bbc7 $09,$0961 +09d6: 0a 92 0a or1 c,$0a92,0 +09d9: a0 ei +09da: 0a a6 0a or1 c,$0aa6,0 +09dd: ac 0a b8 inc $b80a +09e0: 0a be 0a or1 c,$0abe,0 +09e3: e3 0a e9 bbs7 $0a,$09cf +09e6: 0a fd 0a or1 c,$0afd,0 +09e9: 1b 0b asl $0b+x +09eb: 39 and (x),(y) +09ec: 0b 39 asl $39 +09ee: 0b 39 asl $39 +09f0: 0b 14 asl $14 +09f2: 0a e8 e0 or1 c,$00e8,7 +09f5: 8d 6c mov y,#$6c +09f7: 3f 35 0c call $0c35 +09fa: e8 00 mov a,#$00 +09fc: 3f bd 0f call $0fbd +09ff: a2 48 set5 $48 +0a01: e8 70 mov a,#$70 +0a03: 8d 0c mov y,#$0c +0a05: 3f 35 0c call $0c35 +0a08: 8d 1c mov y,#$1c +0a0a: 3f 35 0c call $0c35 +0a0d: e8 20 mov a,#$20 +0a0f: 8d 5d mov y,#$5d +0a11: 3f 35 0c call $0c35 +0a14: e8 00 mov a,#$00 +0a16: c5 b8 03 mov $03b8,a +0a19: e8 b0 mov a,#$b0 +0a1b: c4 59 mov $59,a +0a1d: c5 bb 03 mov $03bb,a +0a20: e8 ff mov a,#$ff +0a22: c5 d7 03 mov $03d7,a +0a25: e8 b4 mov a,#$b4 +0a27: c5 ba 03 mov $03ba,a +0a2a: e8 ff mov a,#$ff +0a2c: c5 b9 03 mov $03b9,a +0a2f: e8 e0 mov a,#$e0 +0a31: c5 04 04 mov $0404,a +0a34: 8f 20 53 mov $53,#$20 +0a37: e8 00 mov a,#$00 +0a39: c4 00 mov $00,a +0a3b: c4 01 mov $01,a +0a3d: c4 02 mov $02,a +0a3f: c4 03 mov $03,a +0a41: c5 b0 03 mov $03b0,a +0a44: c5 b1 03 mov $03b1,a +0a47: c5 b2 03 mov $03b2,a +0a4a: c5 b3 03 mov $03b3,a +0a4d: c5 b4 03 mov $03b4,a +0a50: c5 b5 03 mov $03b5,a +0a53: c5 b6 03 mov $03b6,a +0a56: c5 b7 03 mov $03b7,a +0a59: c4 5a mov $5a,a +0a5b: c4 68 mov $68,a +0a5d: c4 54 mov $54,a +0a5f: c4 50 mov $50,a +0a61: c5 03 04 mov $0403,a +0a64: c4 42 mov $42,a +0a66: c5 02 04 mov $0402,a +0a69: c5 e0 05 mov $05e0,a +0a6c: c4 5f mov $5f,a +0a6e: c5 bc 03 mov $03bc,a +0a71: c5 bd 03 mov $03bd,a +0a74: c5 be 03 mov $03be,a +0a77: c5 bf 03 mov $03bf,a +0a7a: c5 d5 03 mov $03d5,a +0a7d: e8 0a mov a,#$0a +0a7f: c5 06 04 mov $0406,a +0a82: c5 e3 05 mov $05e3,a +0a85: e8 f1 mov a,#$f1 +0a87: c5 f1 00 mov $00f1,a +0a8a: 6f ret + +0a8b: e5 b3 03 mov a,$03b3 +0a8e: 3f d6 0e call $0ed6 +0a91: 6f ret + +0a92: ec b3 03 mov y,$03b3 +0a95: dd mov a,y +0a96: 3f a8 0e call $0ea8 +0a99: e5 b3 03 mov a,$03b3 +0a9c: c5 bb 03 mov $03bb,a +0a9f: 6f ret + +0aa0: e8 00 mov a,#$00 +0aa2: c5 b8 03 mov $03b8,a +0aa5: 6f ret + +0aa6: e8 ff mov a,#$ff +0aa8: c5 b8 03 mov $03b8,a +0aab: 6f ret + +0aac: e8 ff mov a,#$ff +0aae: c5 b9 03 mov $03b9,a +0ab1: e5 b3 03 mov a,$03b3 +0ab4: c5 04 04 mov $0404,a +0ab7: 6f ret + +0ab8: e8 00 mov a,#$00 +0aba: c5 b9 03 mov $03b9,a +0abd: 6f ret + +0abe: e5 b3 03 mov a,$03b3 +0ac1: d0 01 bne $0ac4 +0ac3: bc inc a +0ac4: c5 ba 03 mov $03ba,a +0ac7: 6f ret + +0ac8: 8d 00 mov y,#$00 +0aca: dd mov a,y +0acb: 3f a8 0e call $0ea8 +0ace: e5 ba 03 mov a,$03ba +0ad1: c4 5a mov $5a,a +0ad3: e5 bb 03 mov a,$03bb +0ad6: c4 5b mov $5b,a +0ad8: 80 setc +0ad9: a4 59 sbc a,$59 +0adb: f8 5a mov x,$5a +0add: 3f 4d 10 call $104d +0ae0: da 5c movw $5c,ya +0ae2: 6f ret + +0ae3: e8 03 mov a,#$03 +0ae5: c5 d5 03 mov $03d5,a +0ae8: 6f ret + +0ae9: e5 ba 03 mov a,$03ba +0aec: c4 5a mov $5a,a +0aee: e8 00 mov a,#$00 +0af0: c4 5b mov $5b,a +0af2: 80 setc +0af3: a4 59 sbc a,$59 +0af5: f8 5a mov x,$5a +0af7: 3f 4d 10 call $104d +0afa: da 5c movw $5c,ya +0afc: 6f ret + +0afd: e5 b3 03 mov a,$03b3 +0b00: c5 06 04 mov $0406,a +0b03: cd 00 mov x,#$00 +0b05: 8f 01 47 mov $47,#$01 +0b08: e4 47 mov a,$47 +0b0a: 24 1b and a,$1b +0b0c: f0 06 beq $0b14 +0b0e: e5 e3 05 mov a,$05e3 +0b11: 3f 27 17 call $1727 +0b14: 3d inc x +0b15: 3d inc x +0b16: 0b 47 asl $47 +0b18: d0 ee bne $0b08 +0b1a: 6f ret + +0b1b: e5 b3 03 mov a,$03b3 +0b1e: c5 e3 05 mov $05e3,a +0b21: cd 00 mov x,#$00 +0b23: 8f 01 47 mov $47,#$01 +0b26: e4 47 mov a,$47 +0b28: 24 6d and a,$6d +0b2a: f0 06 beq $0b32 +0b2c: e5 e3 05 mov a,$05e3 +0b2f: 3f 27 17 call $1727 +0b32: 3d inc x +0b33: 3d inc x +0b34: 0b 47 asl $47 +0b36: d0 ee bne $0b26 +0b38: 6f ret + +0b39: 6f ret + +0b3a: 6f ret + +; handle a note vcmd (80-df) (music) +0b3b: ad ca cmp y,#$ca +0b3d: 90 05 bcc $0b44 +0b3f: 3f 01 0e call $0e01 +0b42: 8d a4 mov y,#$a4 +0b44: ad c8 cmp y,#$c8 +0b46: b0 f2 bcs $0b3a +0b48: e4 1a mov a,$1a +0b4a: 24 47 and a,$47 +0b4c: d0 ec bne $0b3a +0b4e: dd mov a,y +0b4f: 28 7f and a,#$7f +0b51: 60 clrc +0b52: 84 50 adc a,$50 +0b54: 60 clrc +0b55: 95 e1 02 adc a,$02e1+x +0b58: d5 61 03 mov $0361+x,a +0b5b: f5 81 03 mov a,$0381+x +0b5e: d5 60 03 mov $0360+x,a +0b61: f5 b1 02 mov a,$02b1+x +0b64: 5c lsr a +0b65: e8 00 mov a,#$00 +0b67: 7c ror a +0b68: d5 a0 02 mov $02a0+x,a +0b6b: e8 00 mov a,#$00 +0b6d: d4 b0 mov $b0+x,a +0b6f: d5 00 01 mov $0100+x,a +0b72: d5 d0 02 mov $02d0+x,a +0b75: d4 c0 mov $c0+x,a +0b77: 09 47 5e or ($5e),($47) +0b7a: e5 d2 03 mov a,$03d2 +0b7d: 04 47 or a,$47 +0b7f: c5 d2 03 mov $03d2,a +0b82: f5 80 02 mov a,$0280+x +0b85: d4 a0 mov $a0+x,a +0b87: f0 1e beq $0ba7 +0b89: f5 81 02 mov a,$0281+x +0b8c: d4 a1 mov $a1+x,a +0b8e: f5 90 02 mov a,$0290+x +0b91: d0 0a bne $0b9d +0b93: f5 61 03 mov a,$0361+x +0b96: 80 setc +0b97: b5 91 02 sbc a,$0291+x +0b9a: d5 61 03 mov $0361+x,a +0b9d: f5 91 02 mov a,$0291+x +0ba0: 60 clrc +0ba1: 95 61 03 adc a,$0361+x +0ba4: 3f 2a 10 call $102a +0ba7: 3f 42 10 call $1042 +0baa: 8d 00 mov y,#$00 +0bac: e4 11 mov a,$11 +0bae: 80 setc +0baf: a8 34 sbc a,#$34 +0bb1: b0 09 bcs $0bbc +0bb3: e4 11 mov a,$11 +0bb5: 80 setc +0bb6: a8 13 sbc a,#$13 +0bb8: b0 06 bcs $0bc0 +0bba: dc dec y +0bbb: 1c asl a +0bbc: 7a 10 addw ya,$10 +0bbe: da 10 movw $10,ya +0bc0: 4d push x +0bc1: e4 11 mov a,$11 +0bc3: 1c asl a +0bc4: 8d 00 mov y,#$00 +0bc6: cd 18 mov x,#$18 +0bc8: 9e div ya,x +0bc9: 5d mov x,a +0bca: f6 8f 1e mov a,$1e8f+y +0bcd: c4 15 mov $15,a +0bcf: f6 8e 1e mov a,$1e8e+y +0bd2: c4 14 mov $14,a +0bd4: f6 91 1e mov a,$1e91+y +0bd7: 2d push a +0bd8: f6 90 1e mov a,$1e90+y +0bdb: ee pop y +0bdc: 9a 14 subw ya,$14 +0bde: eb 10 mov y,$10 +0be0: cf mul ya +0be1: dd mov a,y +0be2: 8d 00 mov y,#$00 +0be4: 7a 14 addw ya,$14 +0be6: cb 15 mov $15,y +0be8: 1c asl a +0be9: 2b 15 rol $15 +0beb: c4 14 mov $14,a +0bed: 2f 04 bra $0bf3 +0bef: 4b 15 lsr $15 +0bf1: 7c ror a +0bf2: 3d inc x +0bf3: c8 06 cmp x,#$06 +0bf5: d0 f8 bne $0bef +0bf7: c4 14 mov $14,a +0bf9: ce pop x +0bfa: f5 20 02 mov a,$0220+x +0bfd: eb 15 mov y,$15 +0bff: cf mul ya +0c00: da 16 movw $16,ya +0c02: f5 20 02 mov a,$0220+x +0c05: eb 14 mov y,$14 +0c07: cf mul ya +0c08: 6d push y +0c09: f5 21 02 mov a,$0221+x +0c0c: eb 14 mov y,$14 +0c0e: cf mul ya +0c0f: 7a 16 addw ya,$16 +0c11: da 16 movw $16,ya +0c13: f5 21 02 mov a,$0221+x +0c16: eb 15 mov y,$15 +0c18: cf mul ya +0c19: fd mov y,a +0c1a: ae pop a +0c1b: 7a 16 addw ya,$16 +0c1d: da 16 movw $16,ya +0c1f: 7d mov a,x +0c20: 9f xcn a +0c21: 5c lsr a +0c22: 08 02 or a,#$02 +0c24: fd mov y,a +0c25: e4 16 mov a,$16 +0c27: 3f 2d 0c call $0c2d +0c2a: fc inc y +0c2b: e4 17 mov a,$17 +0c2d: 2d push a +0c2e: e4 47 mov a,$47 +0c30: 24 1a and a,$1a +0c32: ae pop a +0c33: d0 06 bne $0c3b +0c35: cc f2 00 mov $00f2,y +0c38: c5 f3 00 mov $00f3,a +0c3b: 6f ret + +; read $40/1 into YA with advancing the ptr +0c3c: 8d 00 mov y,#$00 +0c3e: f7 40 mov a,($40)+y +0c40: 3a 40 incw $40 +0c42: 2d push a +0c43: f7 40 mov a,($40)+y +0c45: 3a 40 incw $40 +0c47: fd mov y,a +0c48: ae pop a +0c49: 6f ret + +; play song in A +0c4a: e8 ff mov a,#$ff +0c4c: 8d 5c mov y,#$5c +0c4e: cc f2 00 mov $00f2,y +0c51: c5 f3 00 mov $00f3,a +0c54: 3f c0 1e call $1ec0 +0c57: 3f 19 0a call $0a19 +0c5a: e8 00 mov a,#$00 +0c5c: c4 08 mov $08,a +0c5e: c4 04 mov $04,a +0c60: 1c asl a +0c61: f0 0d beq $0c70 +0c63: 5d mov x,a +0c64: f5 ff 9f mov a,$9fff+x +0c67: fd mov y,a +0c68: f5 fe 9f mov a,$9ffe+x +0c6b: da 40 movw $40,ya +0c6d: 8f 02 0c mov $0c,#$02 +0c70: e4 1a mov a,$1a +0c72: 48 ff eor a,#$ff +0c74: 0e 46 00 tset1 $0046 +0c77: 6f ret + +; reset song params +0c78: cd 0e mov x,#$0e +0c7a: 8f 80 47 mov $47,#$80 +0c7d: e8 ff mov a,#$ff +0c7f: d5 91 03 mov $0391+x,a +0c82: e8 0a mov a,#$0a +0c84: 3f 5a 0e call $0e5a +0c87: d5 11 02 mov $0211+x,a +0c8a: d5 81 03 mov $0381+x,a +0c8d: d5 e1 02 mov $02e1+x,a +0c90: d5 80 02 mov $0280+x,a +0c93: d4 b1 mov $b1+x,a +0c95: d4 c1 mov $c1+x,a +0c97: 1d dec x +0c98: 1d dec x +0c99: 4b 47 lsr $47 +0c9b: d0 e0 bne $0c7d +0c9d: c4 5a mov $5a,a +0c9f: c4 68 mov $68,a +0ca1: c4 54 mov $54,a +0ca3: c4 42 mov $42,a +0ca5: c4 5f mov $5f,a +0ca7: 6f ret + +0ca8: eb 08 mov y,$08 +0caa: e4 00 mov a,$00 +0cac: c4 08 mov $08,a +0cae: 68 7d cmp a,#$7d +0cb0: f0 be beq $0c70 +0cb2: 68 7e cmp a,#$7e +0cb4: f0 08 beq $0cbe +0cb6: 68 7f cmp a,#$7f +0cb8: f0 90 beq $0c4a +0cba: 7e 00 cmp y,$00 +0cbc: d0 a0 bne $0c5e +0cbe: e4 04 mov a,$04 +0cc0: f0 e5 beq $0ca7 +0cc2: e4 0c mov a,$0c +0cc4: f0 4e beq $0d14 +0cc6: 6e 0c af dbnz $0c,$0c78 +0cc9: 3f 3c 0c call $0c3c +0ccc: d0 14 bne $0ce2 +0cce: fd mov y,a +0ccf: f0 8d beq $0c5e +0cd1: 8b 42 dec $42 +0cd3: 10 02 bpl $0cd7 +0cd5: c4 42 mov $42,a +0cd7: 3f 3c 0c call $0c3c +0cda: f8 42 mov x,$42 +0cdc: f0 eb beq $0cc9 +0cde: da 40 movw $40,ya +0ce0: 2f e7 bra $0cc9 +0ce2: da 16 movw $16,ya +0ce4: 8d 0f mov y,#$0f +0ce6: f7 16 mov a,($16)+y +0ce8: d6 30 00 mov $0030+y,a +0ceb: dc dec y +0cec: 10 f8 bpl $0ce6 +0cee: cd 00 mov x,#$00 +0cf0: 8f 01 47 mov $47,#$01 +0cf3: f4 31 mov a,$31+x +0cf5: f0 0a beq $0d01 +0cf7: f5 11 02 mov a,$0211+x +0cfa: d0 05 bne $0d01 +0cfc: e8 00 mov a,#$00 +0cfe: 3f 01 0e call $0e01 +0d01: e8 00 mov a,#$00 +0d03: d5 60 02 mov $0260+x,a +0d06: d4 90 mov $90+x,a +0d08: d4 91 mov $91+x,a +0d0a: bc inc a +0d0b: d5 50 02 mov $0250+x,a +0d0e: 3d inc x +0d0f: 3d inc x +0d10: 0b 47 asl $47 +0d12: d0 df bne $0cf3 +0d14: cd 00 mov x,#$00 +0d16: d8 5e mov $5e,x +0d18: 8f 01 47 mov $47,#$01 +0d1b: d8 44 mov $44,x +0d1d: f4 31 mov a,$31+x +0d1f: f0 71 beq $0d92 +0d21: f5 50 02 mov a,$0250+x +0d24: 9c dec a +0d25: d5 50 02 mov $0250+x,a +0d28: d0 62 bne $0d8c +0d2a: 3f f7 0d call $0df7 +0d2d: d0 1d bne $0d4c +0d2f: f5 60 02 mov a,$0260+x +0d32: f0 95 beq $0cc9 +0d34: 3f 4d 0f call $0f4d +0d37: f5 60 02 mov a,$0260+x +0d3a: 9c dec a +0d3b: d5 60 02 mov $0260+x,a +0d3e: d0 ea bne $0d2a +0d40: f5 30 02 mov a,$0230+x +0d43: d4 30 mov $30+x,a +0d45: f5 31 02 mov a,$0231+x +0d48: d4 31 mov $31+x,a +0d4a: 2f de bra $0d2a +0d4c: 30 20 bmi $0d6e +0d4e: d5 00 02 mov $0200+x,a +0d51: 3f f7 0d call $0df7 +0d54: 30 18 bmi $0d6e +0d56: 2d push a +0d57: 9f xcn a +0d58: 28 07 and a,#$07 +0d5a: fd mov y,a +0d5b: f6 a8 1e mov a,$1ea8+y +0d5e: d5 01 02 mov $0201+x,a +0d61: ae pop a +0d62: 28 0f and a,#$0f +0d64: fd mov y,a +0d65: f6 b0 1e mov a,$1eb0+y +0d68: d5 10 02 mov $0210+x,a +0d6b: 3f f7 0d call $0df7 +0d6e: 68 e0 cmp a,#$e0 +0d70: 90 05 bcc $0d77 +0d72: 3f e5 0d call $0de5 +0d75: 2f b3 bra $0d2a +0d77: 3f 3b 0b call $0b3b +0d7a: f5 00 02 mov a,$0200+x +0d7d: d5 50 02 mov $0250+x,a +0d80: fd mov y,a +0d81: f5 01 02 mov a,$0201+x +0d84: cf mul ya +0d85: dd mov a,y +0d86: bc inc a +0d87: d5 51 02 mov $0251+x,a +0d8a: 2f 03 bra $0d8f +0d8c: 3f a5 11 call $11a5 +0d8f: 3f 0a 10 call $100a +0d92: 3d inc x +0d93: 3d inc x +0d94: 0b 47 asl $47 +0d96: d0 83 bne $0d1b +0d98: e4 54 mov a,$54 +0d9a: f0 0b beq $0da7 +0d9c: ba 56 movw ya,$56 +0d9e: 7a 52 addw ya,$52 +0da0: 6e 54 02 dbnz $54,$0da5 +0da3: ba 54 movw ya,$54 +0da5: da 52 movw $52,ya +0da7: e4 68 mov a,$68 +0da9: f0 15 beq $0dc0 +0dab: ba 64 movw ya,$64 +0dad: 7a 60 addw ya,$60 +0daf: da 60 movw $60,ya +0db1: ba 66 movw ya,$66 +0db3: 7a 62 addw ya,$62 +0db5: 6e 68 06 dbnz $68,$0dbe +0db8: ba 68 movw ya,$68 +0dba: da 60 movw $60,ya +0dbc: eb 6a mov y,$6a +0dbe: da 62 movw $62,ya +0dc0: e4 5a mov a,$5a +0dc2: f0 0e beq $0dd2 +0dc4: ba 5c movw ya,$5c +0dc6: 7a 58 addw ya,$58 +0dc8: 6e 5a 02 dbnz $5a,$0dcd +0dcb: ba 5a movw ya,$5a +0dcd: da 58 movw $58,ya +0dcf: 8f ff 5e mov $5e,#$ff +0dd2: cd 00 mov x,#$00 +0dd4: 8f 01 47 mov $47,#$01 +0dd7: f4 31 mov a,$31+x +0dd9: f0 03 beq $0dde +0ddb: 3f c6 10 call $10c6 +0dde: 3d inc x +0ddf: 3d inc x +0de0: 0b 47 asl $47 +0de2: d0 f3 bne $0dd7 +0de4: 6f ret + +0de5: 1c asl a +0de6: fd mov y,a +0de7: f6 aa 0f mov a,$0faa+y +0dea: 2d push a +0deb: f6 a9 0f mov a,$0fa9+y +0dee: 2d push a +0def: dd mov a,y +0df0: 5c lsr a +0df1: fd mov y,a +0df2: f6 47 10 mov a,$1047+y +0df5: f0 08 beq $0dff +0df7: e7 30 mov a,($30+x) +0df9: bb 30 inc $30+x +0dfb: d0 02 bne $0dff +0dfd: bb 31 inc $31+x +0dff: fd mov y,a +0e00: 6f ret + +; vcmd e0 - set instrument +0e01: d5 11 02 mov $0211+x,a +0e04: fd mov y,a +0e05: 10 06 bpl $0e0d +0e07: 80 setc +0e08: a8 ca sbc a,#$ca +0e0a: 60 clrc +0e0b: 84 5f adc a,$5f +0e0d: 8d 06 mov y,#$06 +0e0f: cf mul ya +0e10: da 14 movw $14,ya +0e12: 60 clrc +0e13: 98 10 14 adc $14,#$10 +0e16: 98 1f 15 adc $15,#$1f +0e19: e4 1a mov a,$1a +0e1b: 24 47 and a,$47 +0e1d: d0 3a bne $0e59 +0e1f: 4d push x +0e20: 7d mov a,x +0e21: 9f xcn a +0e22: 5c lsr a +0e23: 08 04 or a,#$04 +0e25: 5d mov x,a +0e26: 8d 00 mov y,#$00 +0e28: f7 14 mov a,($14)+y +0e2a: 10 0e bpl $0e3a +0e2c: 28 1f and a,#$1f +0e2e: 38 20 48 and $48,#$20 +0e31: 0e 48 00 tset1 $0048 +0e34: 09 47 49 or ($49),($47) +0e37: dd mov a,y +0e38: 2f 07 bra $0e41 +0e3a: e4 47 mov a,$47 +0e3c: 4e 49 00 tclr1 $0049 +0e3f: f7 14 mov a,($14)+y +0e41: c9 f2 00 mov $00f2,x +0e44: c5 f3 00 mov $00f3,a +0e47: 3d inc x +0e48: fc inc y +0e49: ad 04 cmp y,#$04 +0e4b: d0 f2 bne $0e3f +0e4d: ce pop x +0e4e: f7 14 mov a,($14)+y +0e50: d5 21 02 mov $0221+x,a +0e53: fc inc y +0e54: f7 14 mov a,($14)+y +0e56: d5 20 02 mov $0220+x,a +0e59: 6f ret + +; vcmd e1 - pan +0e5a: d5 51 03 mov $0351+x,a +0e5d: 28 1f and a,#$1f +0e5f: d5 31 03 mov $0331+x,a +0e62: e8 00 mov a,#$00 +0e64: d5 30 03 mov $0330+x,a +0e67: 6f ret + +; vcmd e2 - pan fade +0e68: d4 91 mov $91+x,a +0e6a: 2d push a +0e6b: 3f f7 0d call $0df7 +0e6e: d5 50 03 mov $0350+x,a +0e71: 80 setc +0e72: b5 31 03 sbc a,$0331+x +0e75: ce pop x +0e76: 3f 4d 10 call $104d +0e79: d5 40 03 mov $0340+x,a +0e7c: dd mov a,y +0e7d: d5 41 03 mov $0341+x,a +0e80: 6f ret + +; vcmd e3 - vibrato on +0e81: d5 b0 02 mov $02b0+x,a +0e84: 3f f7 0d call $0df7 +0e87: d5 a1 02 mov $02a1+x,a +0e8a: 3f f7 0d call $0df7 +; vcmd e4 - vibrato off +0e8d: d4 b1 mov $b1+x,a +0e8f: d5 c1 02 mov $02c1+x,a +0e92: e8 00 mov a,#$00 +0e94: d5 b1 02 mov $02b1+x,a +0e97: 6f ret + +; vcmd f0 - vibrato fade +0e98: d5 b1 02 mov $02b1+x,a +0e9b: 2d push a +0e9c: 8d 00 mov y,#$00 +0e9e: f4 b1 mov a,$b1+x +0ea0: ce pop x +0ea1: 9e div ya,x +0ea2: f8 44 mov x,$44 +0ea4: d5 c0 02 mov $02c0+x,a +0ea7: 6f ret + +; vcmd e5 - master volume +0ea8: e8 00 mov a,#$00 +0eaa: da 58 movw $58,ya +0eac: 6f ret + +; vcmd e6 - master volume fade +0ead: c4 5a mov $5a,a +0eaf: 3f f7 0d call $0df7 +0eb2: c4 5b mov $5b,a +0eb4: 80 setc +0eb5: a4 59 sbc a,$59 +0eb7: f8 5a mov x,$5a +0eb9: 3f 4d 10 call $104d +0ebc: da 5c movw $5c,ya +0ebe: 6f ret + +; vcmd e7 - tempo +0ebf: e8 00 mov a,#$00 +0ec1: da 52 movw $52,ya +0ec3: 6f ret + +; vcmd e8 - tempo fade +0ec4: c4 54 mov $54,a +0ec6: 3f f7 0d call $0df7 +0ec9: c4 55 mov $55,a +0ecb: 80 setc +0ecc: a4 53 sbc a,$53 +0ece: f8 54 mov x,$54 +0ed0: 3f 4d 10 call $104d +0ed3: da 56 movw $56,ya +0ed5: 6f ret + +; vcmd e9 - global transpose +0ed6: c4 50 mov $50,a +0ed8: 6f ret + +; vcmd ea - per-voice transpose +0ed9: d5 e1 02 mov $02e1+x,a +0edc: 6f ret + +; vcmd eb - tremolo on +0edd: d5 e0 02 mov $02e0+x,a +0ee0: 3f f7 0d call $0df7 +0ee3: d5 d1 02 mov $02d1+x,a +0ee6: 3f f7 0d call $0df7 +; vcmd ec - tremolo off +0ee9: d4 c1 mov $c1+x,a +0eeb: 6f ret + +; vcmd f1 - pitch envelope (release) +0eec: e8 01 mov a,#$01 +0eee: 2f 02 bra $0ef2 +; vcmd f2 - pitch envelope (attack) +0ef0: e8 00 mov a,#$00 +0ef2: d5 90 02 mov $0290+x,a +0ef5: dd mov a,y +0ef6: d5 81 02 mov $0281+x,a +0ef9: 3f f7 0d call $0df7 +0efc: d5 80 02 mov $0280+x,a +0eff: 3f f7 0d call $0df7 +0f02: d5 91 02 mov $0291+x,a +0f05: 6f ret + +; vcmd f3 - pitch envelope off +0f06: d5 80 02 mov $0280+x,a +0f09: 6f ret + +; vcmd fe - global song volume +0f0a: c5 d7 03 mov $03d7,a +0f0d: 6f ret + +; vcmd ed - volume +0f0e: d5 91 03 mov $0391+x,a +0f11: e8 00 mov a,#$00 +0f13: d5 90 03 mov $0390+x,a +0f16: 6f ret + +; vcmd ee - volume fade +0f17: d4 90 mov $90+x,a +0f19: 2d push a +0f1a: 3f f7 0d call $0df7 +0f1d: d5 20 03 mov $0320+x,a +0f20: 80 setc +0f21: b5 91 03 sbc a,$0391+x +0f24: ce pop x +0f25: 3f 4d 10 call $104d +0f28: d5 10 03 mov $0310+x,a +0f2b: dd mov a,y +0f2c: d5 11 03 mov $0311+x,a +0f2f: 6f ret + +; vcmd f4 - tuning +0f30: d5 81 03 mov $0381+x,a +0f33: 6f ret + +; vcmd ef - call subroutine +0f34: d5 40 02 mov $0240+x,a +0f37: 3f f7 0d call $0df7 +0f3a: d5 41 02 mov $0241+x,a +0f3d: 3f f7 0d call $0df7 +0f40: d5 60 02 mov $0260+x,a +0f43: f4 30 mov a,$30+x +0f45: d5 30 02 mov $0230+x,a +0f48: f4 31 mov a,$31+x +0f4a: d5 31 02 mov $0231+x,a +0f4d: f5 40 02 mov a,$0240+x +0f50: d4 30 mov $30+x,a +0f52: f5 41 02 mov a,$0241+x +0f55: d4 31 mov $31+x,a +0f57: 6f ret + +; vcmd f5 - echo vbits/volume +0f58: c4 4a mov $4a,a +0f5a: c5 bc 03 mov $03bc,a +0f5d: 48 ff eor a,#$ff +0f5f: c5 be 03 mov $03be,a +0f62: 3f f7 0d call $0df7 +0f65: e8 00 mov a,#$00 +0f67: da 60 movw $60,ya +0f69: 3f f7 0d call $0df7 +0f6c: e8 00 mov a,#$00 +0f6e: da 62 movw $62,ya +0f70: b2 48 clr5 $48 +0f72: 6f ret + +; vcmd f8 - echo volume fade +0f73: c4 68 mov $68,a +0f75: 3f f7 0d call $0df7 +0f78: c4 69 mov $69,a +0f7a: 80 setc +0f7b: a4 61 sbc a,$61 +0f7d: f8 68 mov x,$68 +0f7f: 3f 4d 10 call $104d +0f82: da 64 movw $64,ya +0f84: 3f f7 0d call $0df7 +0f87: c4 6a mov $6a,a +0f89: 80 setc +0f8a: a4 63 sbc a,$63 +0f8c: f8 68 mov x,$68 +0f8e: 3f 4d 10 call $104d +0f91: da 66 movw $66,ya +0f93: 6f ret + +; vcmd f6 - disable echo +0f94: da 60 movw $60,ya +0f96: da 62 movw $62,ya +0f98: a2 48 set5 $48 +0f9a: 6f ret + +; vcmd f7 - set echo params +0f9b: 3f bd 0f call $0fbd +0f9e: 3f f7 0d call $0df7 +0fa1: c4 4e mov $4e,a +0fa3: 3f f7 0d call $0df7 +0fa6: 8d 08 mov y,#$08 +0fa8: cf mul ya +0fa9: 5d mov x,a +0faa: 8d 0f mov y,#$0f +0fac: f5 5a 1e mov a,$1e5a+x +0faf: 3f 35 0c call $0c35 +0fb2: 3d inc x +0fb3: dd mov a,y +0fb4: 60 clrc +0fb5: 88 10 adc a,#$10 +0fb7: fd mov y,a +0fb8: 10 f2 bpl $0fac +0fba: f8 44 mov x,$44 +0fbc: 6f ret + +0fbd: c4 4d mov $4d,a +0fbf: 8d 7d mov y,#$7d +0fc1: cc f2 00 mov $00f2,y +0fc4: e5 f3 00 mov a,$00f3 +0fc7: 64 4d cmp a,$4d +0fc9: f0 2b beq $0ff6 +0fcb: 28 0f and a,#$0f +0fcd: 48 ff eor a,#$ff +0fcf: f3 4c 03 bbc7 $4c,$0fd5 +0fd2: 60 clrc +0fd3: 84 4c adc a,$4c +0fd5: c4 4c mov $4c,a +0fd7: 8d 04 mov y,#$04 +0fd9: f6 79 1e mov a,$1e79+y +0fdc: c5 f2 00 mov $00f2,a +0fdf: e8 00 mov a,#$00 +0fe1: c5 f3 00 mov $00f3,a +0fe4: fe f3 dbnz y,$0fd9 +0fe6: e4 48 mov a,$48 +0fe8: 08 20 or a,#$20 +0fea: 8d 6c mov y,#$6c +0fec: 3f 35 0c call $0c35 +0fef: e4 4d mov a,$4d +0ff1: 8d 7d mov y,#$7d +0ff3: 3f 35 0c call $0c35 +0ff6: 1c asl a +0ff7: 1c asl a +0ff8: 1c asl a +0ff9: 48 ff eor a,#$ff +0ffb: 80 setc +0ffc: 88 ff adc a,#$ff +0ffe: 8d 6d mov y,#$6d +1000: 5f 35 0c jmp $0c35 + +; vcmd fa - set perc patch base +1003: c4 5f mov $5f,a +1005: 6f ret + +1006: 3f f9 0d call $0df9 +1009: 6f ret + +100a: f4 a0 mov a,$a0+x +100c: d0 33 bne $1041 +100e: e7 30 mov a,($30+x) +1010: 68 f9 cmp a,#$f9 +1012: d0 2d bne $1041 +1014: 3f f9 0d call $0df9 +1017: 3f f7 0d call $0df7 +; vcmd f9 - pitch slide +101a: d4 a1 mov $a1+x,a +101c: 3f f7 0d call $0df7 +101f: d4 a0 mov $a0+x,a +1021: 3f f7 0d call $0df7 +1024: 60 clrc +1025: 84 50 adc a,$50 +1027: 95 e1 02 adc a,$02e1+x +102a: 28 7f and a,#$7f +102c: d5 80 03 mov $0380+x,a +102f: 80 setc +1030: b5 61 03 sbc a,$0361+x +1033: fb a0 mov y,$a0+x +1035: 6d push y +1036: ce pop x +1037: 3f 4d 10 call $104d +103a: d5 70 03 mov $0370+x,a +103d: dd mov a,y +103e: d5 71 03 mov $0371+x,a +1041: 6f ret + +1042: f5 61 03 mov a,$0361+x +1045: c4 11 mov $11,a +1047: f5 60 03 mov a,$0360+x +104a: c4 10 mov $10,a +104c: 6f ret + +104d: ed notc +104e: 6b 12 ror $12 +1050: 10 03 bpl $1055 +1052: 48 ff eor a,#$ff +1054: bc inc a +1055: 8d 00 mov y,#$00 +1057: 9e div ya,x +1058: 2d push a +1059: e8 00 mov a,#$00 +105b: 9e div ya,x +105c: ee pop y +105d: f8 44 mov x,$44 +105f: f3 12 06 bbc7 $12,$1068 +1062: da 14 movw $14,ya +1064: ba 0e movw ya,$0e +1066: 9a 14 subw ya,$14 +1068: 6f ret + +; vcmd dispatch table (music) +1069: dw $0e01 ; e0 - set instrument +106b: dw $0e5a ; e1 - pan +106d: dw $0e68 ; e2 - pan fade +106f: dw $0e81 ; e3 - vibrato on +1071: dw $0e8d ; e4 - vibrato off +1073: dw $0ea8 ; e5 - master volume +1075: dw $0ead ; e6 - master volume fade +1077: dw $0ebf ; e7 - tempo +1079: dw $0ec4 ; e8 - tempo fade +107b: dw $0ed6 ; e9 - global transpose +107d: dw $0ed9 ; ea - per-voice transpose +107f: dw $0edd ; eb - tremolo on +1081: dw $0ee9 ; ec - tremolo off +1083: dw $0f0e ; ed - volume +1085: dw $0f17 ; ee - volume fade +1087: dw $0f34 ; ef - call subroutine +1089: dw $0e98 ; f0 - vibrato fade +108b: dw $0eec ; f1 - pitch envelope (release) +108d: dw $0ef0 ; f2 - pitch envelope (attack) +108f: dw $0f06 ; f3 - pitch envelope off +1091: dw $0f30 ; f4 - tuning +1093: dw $0f58 ; f5 - echo vbits/volume +1095: dw $0f94 ; f6 - disable echo +1097: dw $0f9b ; f7 - set echo params +1099: dw $0f73 ; f8 - echo volume fade +109b: dw $101a ; f9 - pitch slide +109d: dw $1003 ; fa - set perc patch base +109f: dw $1363 ; fb - echo on +10a1: dw $1377 ; fc - echo off +10a3: dw $134b ; fd - set ASDR +10a5: dw $0f0a ; fe - global song volume + +; vcmd lengths (music) +10a7: db $01,$01,$02,$03,$00,$01,$02,$01 ; e0-e7 +10af: db $02,$01,$01,$03,$00,$01,$02,$03 ; e8-ef +10b7: db $01,$03,$03,$00,$01,$03,$00,$03 ; f0-f7 +10bf: db $03,$03,$01,$00,$00,$02,$01 ; f8-fe + +10c6: f4 90 mov a,$90+x +10c8: f0 24 beq $10ee +10ca: 09 47 5e or ($5e),($47) +10cd: 9b 90 dec $90+x +10cf: d0 0a bne $10db +10d1: e8 00 mov a,#$00 +10d3: d5 90 03 mov $0390+x,a +10d6: f5 20 03 mov a,$0320+x +10d9: 2f 10 bra $10eb +10db: 60 clrc +10dc: f5 90 03 mov a,$0390+x +10df: 95 10 03 adc a,$0310+x +10e2: d5 90 03 mov $0390+x,a +10e5: f5 91 03 mov a,$0391+x +10e8: 95 11 03 adc a,$0311+x +10eb: d5 91 03 mov $0391+x,a +10ee: fb c1 mov y,$c1+x +10f0: f0 23 beq $1115 +10f2: f5 e0 02 mov a,$02e0+x +10f5: de c0 1b cbne $c0+x,$1113 +10f8: 09 47 5e or ($5e),($47) +10fb: f5 d0 02 mov a,$02d0+x +10fe: 10 07 bpl $1107 +1100: fc inc y +1101: d0 04 bne $1107 +1103: e8 80 mov a,#$80 +1105: 2f 04 bra $110b +1107: 60 clrc +1108: 95 d1 02 adc a,$02d1+x +110b: d5 d0 02 mov $02d0+x,a +110e: 3f 2a 13 call $132a +1111: 2f 07 bra $111a +1113: bb c0 inc $c0+x +1115: e8 ff mov a,#$ff +1117: 3f 35 13 call $1335 +111a: f4 91 mov a,$91+x +111c: f0 24 beq $1142 +111e: 09 47 5e or ($5e),($47) +1121: 9b 91 dec $91+x +1123: d0 0a bne $112f +1125: e8 00 mov a,#$00 +1127: d5 30 03 mov $0330+x,a +112a: f5 50 03 mov a,$0350+x +112d: 2f 10 bra $113f +112f: 60 clrc +1130: f5 30 03 mov a,$0330+x +1133: 95 40 03 adc a,$0340+x +1136: d5 30 03 mov $0330+x,a +1139: f5 31 03 mov a,$0331+x +113c: 95 41 03 adc a,$0341+x +113f: d5 31 03 mov $0331+x,a +1142: e4 47 mov a,$47 +1144: 24 5e and a,$5e +1146: f0 5c beq $11a4 +1148: f5 31 03 mov a,$0331+x +114b: fd mov y,a +114c: f5 30 03 mov a,$0330+x +114f: da 10 movw $10,ya +1151: 7d mov a,x +1152: 9f xcn a +1153: 5c lsr a +1154: c4 12 mov $12,a +1156: eb 11 mov y,$11 +1158: e5 b8 03 mov a,$03b8 +115b: f0 11 beq $116e +115d: e8 51 mov a,#$51 +115f: 80 setc +1160: a8 51 sbc a,#$51 +1162: eb 10 mov y,$10 +1164: cf mul ya +1165: dd mov a,y +1166: eb 11 mov y,$11 +1168: 60 clrc +1169: 88 51 adc a,#$51 +116b: fd mov y,a +116c: 2f 12 bra $1180 +116e: f6 46 1e mov a,$1e46+y +1171: 80 setc +1172: b6 45 1e sbc a,$1e45+y +1175: eb 10 mov y,$10 +1177: cf mul ya +1178: dd mov a,y +1179: eb 11 mov y,$11 +117b: 60 clrc +117c: 96 45 1e adc a,$1e45+y +117f: fd mov y,a +1180: f5 21 03 mov a,$0321+x +1183: cf mul ya +1184: f5 51 03 mov a,$0351+x +1187: 1c asl a +1188: 13 12 01 bbc0 $12,$118c +118b: 1c asl a +118c: dd mov a,y +118d: 90 03 bcc $1192 +118f: 48 ff eor a,#$ff +1191: bc inc a +1192: eb 12 mov y,$12 +1194: 3f 2d 0c call $0c2d +1197: 8d 14 mov y,#$14 +1199: e8 00 mov a,#$00 +119b: 9a 10 subw ya,$10 +119d: da 10 movw $10,ya +119f: ab 12 inc $12 +11a1: 33 12 b2 bbc1 $12,$1156 +11a4: 6f ret + +11a5: f5 51 02 mov a,$0251+x +11a8: f0 71 beq $121b +11aa: 9c dec a +11ab: d5 51 02 mov $0251+x,a +11ae: f0 07 beq $11b7 +11b0: e8 02 mov a,#$02 +11b2: 75 50 02 cmp a,$0250+x +11b5: d0 64 bne $121b +11b7: f5 60 02 mov a,$0260+x +11ba: c4 17 mov $17,a +11bc: f4 30 mov a,$30+x +11be: fb 31 mov y,$31+x +11c0: da 14 movw $14,ya +11c2: 8d 00 mov y,#$00 +11c4: f7 14 mov a,($14)+y +11c6: f0 1e beq $11e6 +11c8: 30 07 bmi $11d1 +11ca: fc inc y +11cb: 30 40 bmi $120d +11cd: f7 14 mov a,($14)+y +11cf: 10 f9 bpl $11ca +11d1: 68 c8 cmp a,#$c8 +11d3: f0 46 beq $121b +11d5: 68 ef cmp a,#$ef +11d7: f0 29 beq $1202 +11d9: 68 e0 cmp a,#$e0 +11db: 90 30 bcc $120d +11dd: 6d push y +11de: fd mov y,a +11df: ae pop a +11e0: 96 c7 0f adc a,$0fc7+y +11e3: fd mov y,a +11e4: 2f de bra $11c4 +11e6: e4 17 mov a,$17 +11e8: f0 23 beq $120d +11ea: 8b 17 dec $17 +11ec: d0 0a bne $11f8 +11ee: f5 31 02 mov a,$0231+x +11f1: 2d push a +11f2: f5 30 02 mov a,$0230+x +11f5: ee pop y +11f6: 2f c8 bra $11c0 +11f8: f5 41 02 mov a,$0241+x +11fb: 2d push a +11fc: f5 40 02 mov a,$0240+x +11ff: ee pop y +1200: 2f be bra $11c0 +1202: fc inc y +1203: f7 14 mov a,($14)+y +1205: 2d push a +1206: fc inc y +1207: f7 14 mov a,($14)+y +1209: fd mov y,a +120a: ae pop a +120b: 2f b3 bra $11c0 +120d: e4 47 mov a,$47 +120f: 24 1a and a,$1a +1211: d0 08 bne $121b +1213: e4 47 mov a,$47 +1215: 05 d3 03 or a,$03d3 +1218: c5 d3 03 mov $03d3,a +121b: f2 13 clr7 $13 +121d: f4 a0 mov a,$a0+x +121f: f0 2c beq $124d +1221: f4 a1 mov a,$a1+x +1223: f0 04 beq $1229 +1225: 9b a1 dec $a1+x +1227: 2f 24 bra $124d +1229: e2 13 set7 $13 +122b: 9b a0 dec $a0+x +122d: d0 0b bne $123a +122f: f5 81 03 mov a,$0381+x +1232: d5 60 03 mov $0360+x,a +1235: f5 80 03 mov a,$0380+x +1238: 2f 10 bra $124a +123a: 60 clrc +123b: f5 60 03 mov a,$0360+x +123e: 95 70 03 adc a,$0370+x +1241: d5 60 03 mov $0360+x,a +1244: f5 61 03 mov a,$0361+x +1247: 95 71 03 adc a,$0371+x +124a: d5 61 03 mov $0361+x,a +124d: 3f 42 10 call $1042 +1250: f4 b1 mov a,$b1+x +1252: f0 4c beq $12a0 +1254: f5 b0 02 mov a,$02b0+x +1257: de b0 44 cbne $b0+x,$129e +125a: f5 00 01 mov a,$0100+x +125d: 75 b1 02 cmp a,$02b1+x +1260: d0 05 bne $1267 +1262: f5 c1 02 mov a,$02c1+x +1265: 2f 0d bra $1274 +1267: 40 setp +1268: bb 00 inc $00+x +126a: 20 clrp +126b: fd mov y,a +126c: f0 02 beq $1270 +126e: f4 b1 mov a,$b1+x +1270: 60 clrc +1271: 95 c0 02 adc a,$02c0+x +1274: d4 b1 mov $b1+x,a +1276: f5 a0 02 mov a,$02a0+x +1279: 60 clrc +127a: 95 a1 02 adc a,$02a1+x +127d: d5 a0 02 mov $02a0+x,a +1280: c4 12 mov $12,a +1282: 1c asl a +1283: 1c asl a +1284: 90 02 bcc $1288 +1286: 48 ff eor a,#$ff +1288: fd mov y,a +1289: f4 b1 mov a,$b1+x +128b: 68 f1 cmp a,#$f1 +128d: 90 05 bcc $1294 +128f: 28 0f and a,#$0f +1291: cf mul ya +1292: 2f 04 bra $1298 +1294: cf mul ya +1295: dd mov a,y +1296: 8d 00 mov y,#$00 +1298: 3f 15 13 call $1315 + +129b: 5f aa 0b jmp $0baa +129e: bb b0 inc $b0+x +12a0: e3 13 f8 bbs7 $13,$129b +12a3: 6f ret + +12a4: f2 13 clr7 $13 +12a6: f4 c1 mov a,$c1+x +12a8: f0 09 beq $12b3 +12aa: f5 e0 02 mov a,$02e0+x +12ad: de c0 03 cbne $c0+x,$12b3 +12b0: 3f 1d 13 call $131d +12b3: f5 31 03 mov a,$0331+x +12b6: fd mov y,a +12b7: f5 30 03 mov a,$0330+x +12ba: da 10 movw $10,ya +12bc: f4 91 mov a,$91+x +12be: f0 0a beq $12ca +12c0: f5 41 03 mov a,$0341+x +12c3: fd mov y,a +12c4: f5 40 03 mov a,$0340+x +12c7: 3f ff 12 call $12ff +12ca: f3 13 03 bbc7 $13,$12d0 +12cd: 3f 51 11 call $1151 +12d0: f2 13 clr7 $13 +12d2: 3f 42 10 call $1042 +12d5: f4 a0 mov a,$a0+x +12d7: f0 0e beq $12e7 +12d9: f4 a1 mov a,$a1+x +12db: d0 0a bne $12e7 +12dd: f5 71 03 mov a,$0371+x +12e0: fd mov y,a +12e1: f5 70 03 mov a,$0370+x +12e4: 3f ff 12 call $12ff +12e7: f4 b1 mov a,$b1+x +12e9: f0 b5 beq $12a0 +12eb: f5 b0 02 mov a,$02b0+x +12ee: de b0 af cbne $b0+x,$12a0 +12f1: eb 51 mov y,$51 +12f3: f5 a1 02 mov a,$02a1+x +12f6: cf mul ya +12f7: dd mov a,y +12f8: 60 clrc +12f9: 95 a0 02 adc a,$02a0+x +12fc: 5f 80 12 jmp $1280 + +12ff: e2 13 set7 $13 +1301: cb 12 mov $12,y +1303: 3f 5f 10 call $105f +1306: 6d push y +1307: eb 51 mov y,$51 +1309: cf mul ya +130a: cb 14 mov $14,y +130c: 8f 00 15 mov $15,#$00 +130f: eb 51 mov y,$51 +1311: ae pop a +1312: cf mul ya +1313: 7a 14 addw ya,$14 +1315: 3f 5f 10 call $105f +1318: 7a 10 addw ya,$10 +131a: da 10 movw $10,ya +131c: 6f ret + +131d: e2 13 set7 $13 +131f: eb 51 mov y,$51 +1321: f5 d1 02 mov a,$02d1+x +1324: cf mul ya +1325: dd mov a,y +1326: 60 clrc +1327: 95 d0 02 adc a,$02d0+x +132a: 1c asl a +132b: 90 02 bcc $132f +132d: 48 ff eor a,#$ff +132f: fb c1 mov y,$c1+x +1331: cf mul ya +1332: dd mov a,y +1333: 48 ff eor a,#$ff +1335: eb 59 mov y,$59 +1337: cf mul ya +1338: f5 10 02 mov a,$0210+x +133b: cf mul ya +133c: f5 91 03 mov a,$0391+x +133f: cf mul ya +1340: e5 d7 03 mov a,$03d7 +1343: cf mul ya +1344: dd mov a,y +1345: cf mul ya +1346: dd mov a,y +1347: d5 21 03 mov $0321+x,a +134a: 6f ret + +; vcmd fd - set ASDR +134b: 7d mov a,x +134c: 9f xcn a +134d: 5c lsr a +134e: 08 05 or a,#$05 +1350: c4 14 mov $14,a +1352: dd mov a,y +1353: eb 14 mov y,$14 +1355: 3f 2d 0c call $0c2d +1358: 3f f7 0d call $0df7 +135b: ab 14 inc $14 +135d: eb 14 mov y,$14 +135f: 3f 2d 0c call $0c2d +1362: 6f ret + +; vcmd fb - echo on +1363: e5 bc 03 mov a,$03bc +1366: 04 47 or a,$47 +1368: c5 bc 03 mov $03bc,a +136b: e4 47 mov a,$47 +136d: 48 ff eor a,#$ff +136f: 25 be 03 and a,$03be +1372: c5 be 03 mov $03be,a +1375: 2f 12 bra $1389 +; vcmd fc - echo off +1377: e5 be 03 mov a,$03be +137a: 04 47 or a,$47 +137c: c5 be 03 mov $03be,a +137f: e4 47 mov a,$47 +1381: 48 ff eor a,#$ff +1383: 25 bc 03 and a,$03bc +1386: c5 bc 03 mov $03bc,a +1389: e5 bc 03 mov a,$03bc +138c: c5 d0 03 mov $03d0,a +138f: e5 be 03 mov a,$03be +1392: 48 ff eor a,#$ff +1394: 25 d0 03 and a,$03d0 +1397: 05 bd 03 or a,$03bd +139a: c5 d0 03 mov $03d0,a +139d: e5 bf 03 mov a,$03bf +13a0: 48 ff eor a,#$ff +13a2: 25 d0 03 and a,$03d0 +13a5: c4 4a mov $4a,a +13a7: 6f ret + +; handle a note vcmd (80-df) (sfx) +13a8: ad ca cmp y,#$ca +13aa: 90 05 bcc $13b1 +13ac: 3f d3 16 call $16d3 +13af: 8d a4 mov y,#$a4 +13b1: ad c8 cmp y,#$c8 +13b3: b0 f2 bcs $13a7 +13b5: dd mov a,y +13b6: 28 7f and a,#$7f +13b8: 60 clrc +13b9: 85 03 04 adc a,$0403 +13bc: 60 clrc +13bd: 95 91 05 adc a,$0591+x +13c0: d5 f1 04 mov $04f1+x,a +13c3: f5 11 05 mov a,$0511+x +13c6: d5 f0 04 mov $04f0+x,a +13c9: f5 51 05 mov a,$0551+x +13cc: 5c lsr a +13cd: e8 00 mov a,#$00 +13cf: 7c ror a +13d0: d5 40 05 mov $0540+x,a +13d3: e8 00 mov a,#$00 +13d5: d5 d0 00 mov $00d0+x,a +13d8: d5 60 05 mov $0560+x,a +13db: d5 80 05 mov $0580+x,a +13de: d4 e0 mov $e0+x,a +13e0: 09 47 5e or ($5e),($47) +13e3: e5 d2 03 mov a,$03d2 +13e6: 04 47 or a,$47 +13e8: c5 d2 03 mov $03d2,a +13eb: f5 20 05 mov a,$0520+x +13ee: d4 80 mov $80+x,a +13f0: f0 1e beq $1410 +13f2: f5 21 05 mov a,$0521+x +13f5: d4 81 mov $81+x,a +13f7: f5 30 05 mov a,$0530+x +13fa: d0 0a bne $1406 +13fc: f5 f1 04 mov a,$04f1+x +13ff: 80 setc +1400: b5 31 05 sbc a,$0531+x +1403: d5 f1 04 mov $04f1+x,a +1406: f5 31 05 mov a,$0531+x +1409: 60 clrc +140a: 95 f1 04 adc a,$04f1+x +140d: 3f d8 18 call $18d8 +1410: 3f f0 18 call $18f0 +1413: 8d 00 mov y,#$00 +1415: e4 11 mov a,$11 +1417: 80 setc +1418: a8 34 sbc a,#$34 +141a: b0 09 bcs $1425 +141c: e4 11 mov a,$11 +141e: 80 setc +141f: a8 13 sbc a,#$13 +1421: b0 06 bcs $1429 +1423: dc dec y +1424: 1c asl a +1425: 7a 10 addw ya,$10 +1427: da 10 movw $10,ya +1429: 4d push x +142a: e4 11 mov a,$11 +142c: 1c asl a +142d: 8d 00 mov y,#$00 +142f: cd 18 mov x,#$18 +1431: 9e div ya,x +1432: 5d mov x,a +1433: f6 8f 1e mov a,$1e8f+y +1436: c4 15 mov $15,a +1438: f6 8e 1e mov a,$1e8e+y +143b: c4 14 mov $14,a +143d: f6 91 1e mov a,$1e91+y +1440: 2d push a +1441: f6 90 1e mov a,$1e90+y +1444: ee pop y +1445: 9a 14 subw ya,$14 +1447: eb 10 mov y,$10 +1449: cf mul ya +144a: dd mov a,y +144b: 8d 00 mov y,#$00 +144d: 7a 14 addw ya,$14 +144f: cb 15 mov $15,y +1451: 1c asl a +1452: 2b 15 rol $15 +1454: c4 14 mov $14,a +1456: 2f 04 bra $145c +1458: 4b 15 lsr $15 +145a: 7c ror a +145b: 3d inc x +145c: c8 06 cmp x,#$06 +145e: d0 f8 bne $1458 +1460: c4 14 mov $14,a +1462: ce pop x +1463: f5 50 04 mov a,$0450+x +1466: eb 15 mov y,$15 +1468: cf mul ya +1469: da 16 movw $16,ya +146b: f5 50 04 mov a,$0450+x +146e: eb 14 mov y,$14 +1470: cf mul ya +1471: 6d push y +1472: f5 51 04 mov a,$0451+x +1475: eb 14 mov y,$14 +1477: cf mul ya +1478: 7a 16 addw ya,$16 +147a: da 16 movw $16,ya +147c: f5 51 04 mov a,$0451+x +147f: eb 15 mov y,$15 +1481: cf mul ya +1482: fd mov y,a +1483: ae pop a +1484: 7a 16 addw ya,$16 +1486: da 16 movw $16,ya +1488: 7d mov a,x +1489: 9f xcn a +148a: 5c lsr a +148b: 08 02 or a,#$02 +148d: fd mov y,a +148e: e4 16 mov a,$16 +1490: 3f 96 14 call $1496 +1493: fc inc y +1494: e4 17 mov a,$17 +1496: cc f2 00 mov $00f2,y +1499: c5 f3 00 mov $00f3,a +149c: 6f ret + +; read $1c/1 into YA with advancing the ptr +149d: 8d 00 mov y,#$00 +149f: f7 1c mov a,($1c)+y +14a1: 3a 1c incw $1c +14a3: 2d push a +14a4: f7 1c mov a,($1c)+y +14a6: 3a 1c incw $1c +14a8: fd mov y,a +14a9: ae pop a +14aa: 6f ret + +; play sound effect in A +14ab: c4 05 mov $05,a +14ad: 1c asl a +14ae: 5d mov x,a +14af: f5 ff bf mov a,$bfff+x +14b2: fd mov y,a +14b3: f5 fe bf mov a,$bffe+x +14b6: da 1c movw $1c,ya +14b8: 8f 02 1e mov $1e,#$02 +14bb: 2f 02 bra $14bf +14bd: c4 05 mov $05,a +14bf: e4 1b mov a,$1b +14c1: 0e 46 00 tset1 $0046 +14c4: e8 a5 mov a,#$a5 +14c6: c5 07 04 mov $0407,a +14c9: 6f ret + +14ca: e4 1b mov a,$1b +14cc: 0e 46 00 tset1 $0046 +14cf: e8 00 mov a,#$00 +14d1: c5 07 04 mov $0407,a +14d4: cd 00 mov x,#$00 +14d6: 8f 01 47 mov $47,#$01 +14d9: e4 47 mov a,$47 +14db: 24 1b and a,$1b +14dd: f0 14 beq $14f3 +14df: e4 47 mov a,$47 +14e1: 48 ff eor a,#$ff +14e3: 24 1a and a,$1a +14e5: c4 1a mov $1a,a +14e7: f5 11 02 mov a,$0211+x +14ea: 3f 04 0e call $0e04 +14ed: e8 00 mov a,#$00 +14ef: d4 20 mov $20+x,a +14f1: d4 21 mov $21+x,a +14f3: 3d inc x +14f4: 3d inc x +14f5: 0b 47 asl $47 +14f7: d0 e0 bne $14d9 +14f9: e8 00 mov a,#$00 +14fb: c4 1b mov $1b,a +14fd: 6f ret + +14fe: 8f 00 1b mov $1b,#$00 +1501: cd 00 mov x,#$00 +1503: 8f 01 47 mov $47,#$01 +1506: e4 47 mov a,$47 +1508: 24 6d and a,$6d +150a: d0 15 bne $1521 +150c: f5 d1 05 mov a,$05d1+x +150f: d4 21 mov $21+x,a +1511: f5 d0 05 mov a,$05d0+x +1514: d4 20 mov $20+x,a +1516: f5 d1 05 mov a,$05d1+x +1519: f0 06 beq $1521 +151b: 09 47 1a or ($1a),($47) +151e: 09 47 1b or ($1b),($47) +1521: 3d inc x +1522: 3d inc x +1523: 0b 47 asl $47 +1525: d0 df bne $1506 +1527: e4 1b mov a,$1b +1529: 0e 46 00 tset1 $0046 +152c: e8 00 mov a,#$00 +152e: c5 07 04 mov $0407,a +1531: 6f ret + +1532: 3f 9d 14 call $149d +1535: 1a 1c decw $1c +1537: 1a 1c decw $1c +1539: da 16 movw $16,ya +153b: 8d 0f mov y,#$0f +153d: f7 16 mov a,($16)+y +153f: d6 d0 05 mov $05d0+y,a +1542: dc dec y +1543: 10 f8 bpl $153d +1545: 3f fe 14 call $14fe +1548: cd 0e mov x,#$0e +154a: 8f 80 47 mov $47,#$80 +154d: e4 47 mov a,$47 +154f: 24 6d and a,$6d +1551: d0 1f bne $1572 +1553: e8 ff mov a,#$ff +1555: d5 91 04 mov $0491+x,a +1558: e5 06 04 mov a,$0406 +155b: 3f 27 17 call $1727 +155e: e8 00 mov a,#$00 +1560: d5 c1 05 mov $05c1+x,a +1563: d5 11 05 mov $0511+x,a +1566: d5 20 05 mov $0520+x,a +1569: d4 d1 mov $d1+x,a +156b: d4 e1 mov $e1+x,a +156d: c4 70 mov $70,a +156f: d5 91 05 mov $0591+x,a +1572: 1d dec x +1573: 1d dec x +1574: 4b 47 lsr $47 +1576: d0 d5 bne $154d +1578: c5 03 04 mov $0403,a +157b: c5 e0 05 mov $05e0,a +157e: c5 10 04 mov $0410,a +1581: 6f ret + +1582: e5 07 04 mov a,$0407 +1585: f0 03 beq $158a +1587: 5f cf 14 jmp $14cf + +158a: eb 09 mov y,$09 +158c: e4 01 mov a,$01 +158e: c4 09 mov $09,a +1590: 7e 01 cmp y,$01 +1592: f0 03 beq $1597 +1594: 5f ab 14 jmp $14ab + +1597: e4 05 mov a,$05 +1599: f0 e6 beq $1581 +159b: e4 1e mov a,$1e +159d: d0 03 bne $15a2 +159f: 5f fe 15 jmp $15fe + +15a2: 6e 1e 8d dbnz $1e,$1532 +15a5: 3f 9d 14 call $149d +15a8: d0 1a bne $15c4 +15aa: fd mov y,a +15ab: d0 03 bne $15b0 +15ad: 5f bd 14 jmp $14bd + +15b0: 8c 02 04 dec $0402 +15b3: 10 03 bpl $15b8 +15b5: c5 02 04 mov $0402,a +15b8: 3f 9d 14 call $149d +15bb: e9 02 04 mov x,$0402 +15be: f0 e5 beq $15a5 +15c0: da 1c movw $1c,ya +15c2: 2f e1 bra $15a5 +15c4: da 16 movw $16,ya +15c6: 8d 0f mov y,#$0f +15c8: f7 16 mov a,($16)+y +15ca: d6 d0 05 mov $05d0+y,a +15cd: dc dec y +15ce: 10 f8 bpl $15c8 +15d0: 3f ca 14 call $14ca +15d3: 3f fe 14 call $14fe +15d6: cd 00 mov x,#$00 +15d8: 8f 01 47 mov $47,#$01 +15db: e4 47 mov a,$47 +15dd: 24 6d and a,$6d +15df: d0 17 bne $15f8 +15e1: f4 21 mov a,$21+x +15e3: f0 06 beq $15eb +15e5: f5 c1 05 mov a,$05c1+x +15e8: 3f d3 16 call $16d3 +15eb: e8 00 mov a,#$00 +15ed: d5 80 04 mov $0480+x,a +15f0: d4 70 mov $70+x,a +15f2: d4 71 mov $71+x,a +15f4: bc inc a +15f5: d5 20 04 mov $0420+x,a +15f8: 3d inc x +15f9: 3d inc x +15fa: 0b 47 asl $47 +15fc: d0 dd bne $15db +15fe: cd 00 mov x,#$00 +1600: e4 1b mov a,$1b +1602: 24 5e and a,$5e +1604: c4 5e mov $5e,a +1606: 8f 01 47 mov $47,#$01 +1609: c9 01 04 mov $0401,x +160c: d8 44 mov $44,x +160e: e4 47 mov a,$47 +1610: 24 1b and a,$1b +1612: d0 03 bne $1617 +1614: 5f 92 16 jmp $1692 + +1617: f4 21 mov a,$21+x +1619: f0 77 beq $1692 +161b: ac 01 04 inc $0401 +161e: f5 20 04 mov a,$0420+x +1621: 9c dec a +1622: d5 20 04 mov $0420+x,a +1625: d0 65 bne $168c +1627: 3f c9 16 call $16c9 +162a: d0 20 bne $164c +162c: f5 80 04 mov a,$0480+x +162f: d0 03 bne $1634 +1631: 5f a5 15 jmp $15a5 + +1634: 3f fd 17 call $17fd +1637: f5 80 04 mov a,$0480+x +163a: 9c dec a +163b: d5 80 04 mov $0480+x,a +163e: d0 e7 bne $1627 +1640: f5 60 04 mov a,$0460+x +1643: d4 20 mov $20+x,a +1645: f5 61 04 mov a,$0461+x +1648: d4 21 mov $21+x,a +164a: 2f db bra $1627 +164c: 30 20 bmi $166e +164e: d5 30 04 mov $0430+x,a +1651: 3f c9 16 call $16c9 +1654: 30 18 bmi $166e +1656: 2d push a +1657: 9f xcn a +1658: 28 07 and a,#$07 +165a: fd mov y,a +165b: f6 a8 1e mov a,$1ea8+y +165e: d5 31 04 mov $0431+x,a +1661: ae pop a +1662: 28 0f and a,#$0f +1664: fd mov y,a +1665: f6 b0 1e mov a,$1eb0+y +1668: d5 c0 05 mov $05c0+x,a +166b: 3f c9 16 call $16c9 +166e: 68 e0 cmp a,#$e0 +1670: 90 05 bcc $1677 +1672: 3f b7 16 call $16b7 +1675: 2f b0 bra $1627 +1677: 3f a8 13 call $13a8 +167a: f5 30 04 mov a,$0430+x +167d: d5 20 04 mov $0420+x,a +1680: fd mov y,a +1681: f5 31 04 mov a,$0431+x +1684: cf mul ya +1685: dd mov a,y +1686: bc inc a +1687: d5 21 04 mov $0421+x,a +168a: 2f 03 bra $168f +168c: 3f 50 1a call $1a50 +168f: 3f b7 18 call $18b7 +1692: 3d inc x +1693: 3d inc x +1694: 0b 47 asl $47 +1696: f0 03 beq $169b +1698: 5f 0c 16 jmp $160c + +169b: e5 01 04 mov a,$0401 +169e: d0 03 bne $16a3 +16a0: 5f bd 14 jmp $14bd + +16a3: 6f ret + +16a4: cd 00 mov x,#$00 +16a6: 8f 01 47 mov $47,#$01 +16a9: f4 21 mov a,$21+x +16ab: f0 03 beq $16b0 +16ad: 3f 71 19 call $1971 +16b0: 3d inc x +16b1: 3d inc x +16b2: 0b 47 asl $47 +16b4: d0 f3 bne $16a9 +16b6: 6f ret + +16b7: 1c asl a +16b8: fd mov y,a +16b9: f6 58 18 mov a,$1858+y +16bc: 2d push a +16bd: f6 57 18 mov a,$1857+y +16c0: 2d push a +16c1: dd mov a,y +16c2: 5c lsr a +16c3: fd mov y,a +16c4: f6 f3 18 mov a,$18f3+y +16c7: f0 08 beq $16d1 +16c9: e7 20 mov a,($20+x) +16cb: bb 20 inc $20+x +16cd: d0 02 bne $16d1 +16cf: bb 21 inc $21+x +16d1: fd mov y,a +16d2: 6f ret + +; vcmd e0 - set instrument +16d3: d5 c1 05 mov $05c1+x,a +16d6: fd mov y,a +16d7: 10 07 bpl $16e0 +16d9: 80 setc +16da: a8 ca sbc a,#$ca +16dc: 60 clrc +16dd: 85 10 04 adc a,$0410 +16e0: 8d 06 mov y,#$06 +16e2: cf mul ya +16e3: da 14 movw $14,ya +16e5: 60 clrc +16e6: 98 10 14 adc $14,#$10 +16e9: 98 1f 15 adc $15,#$1f +16ec: 4d push x +16ed: 7d mov a,x +16ee: 9f xcn a +16ef: 5c lsr a +16f0: 08 04 or a,#$04 +16f2: 5d mov x,a +16f3: 8d 00 mov y,#$00 +16f5: f7 14 mov a,($14)+y +16f7: 10 0e bpl $1707 +16f9: 28 1f and a,#$1f +16fb: 38 20 48 and $48,#$20 +16fe: 0e 48 00 tset1 $0048 +1701: 09 47 49 or ($49),($47) +1704: dd mov a,y +1705: 2f 07 bra $170e +1707: e4 47 mov a,$47 +1709: 4e 49 00 tclr1 $0049 +170c: f7 14 mov a,($14)+y +170e: c9 f2 00 mov $00f2,x +1711: c5 f3 00 mov $00f3,a +1714: 3d inc x +1715: fc inc y +1716: ad 04 cmp y,#$04 +1718: d0 f2 bne $170c +171a: ce pop x +171b: f7 14 mov a,($14)+y +171d: d5 51 04 mov $0451+x,a +1720: fc inc y +1721: f7 14 mov a,($14)+y +1723: d5 50 04 mov $0450+x,a +1726: 6f ret + +; vcmd e1 - pan +1727: d5 e1 04 mov $04e1+x,a +172a: 28 1f and a,#$1f +172c: d5 c1 04 mov $04c1+x,a +172f: e8 00 mov a,#$00 +1731: d5 c0 04 mov $04c0+x,a +1734: 6f ret + +; vcmd e2 - pan fade +1735: d4 71 mov $71+x,a +1737: 2d push a +1738: 3f c9 16 call $16c9 +173b: d5 e0 04 mov $04e0+x,a +173e: 80 setc +173f: b5 c1 04 sbc a,$04c1+x +1742: ce pop x +1743: 3f fb 18 call $18fb +1746: d5 d0 04 mov $04d0+x,a +1749: dd mov a,y +174a: d5 d1 04 mov $04d1+x,a +174d: 6f ret + +; vcmd e3 - vibrato on +174e: d5 50 05 mov $0550+x,a +1751: 3f c9 16 call $16c9 +1754: d5 41 05 mov $0541+x,a +1757: 3f c9 16 call $16c9 +; vcmd e4 - vibrato off +175a: d4 d1 mov $d1+x,a +175c: d5 71 05 mov $0571+x,a +175f: e8 00 mov a,#$00 +1761: d5 51 05 mov $0551+x,a +1764: 6f ret + +; vcmd f0 - vibrato fade +1765: d5 51 05 mov $0551+x,a +1768: 2d push a +1769: 8d 00 mov y,#$00 +176b: f4 d1 mov a,$d1+x +176d: ce pop x +176e: 9e div ya,x +176f: f8 44 mov x,$44 +1771: d5 70 05 mov $0570+x,a +1774: 6f ret + +; vcmd e5 +1775: e8 00 mov a,#$00 +1777: da 58 movw $58,ya +1779: 6f ret + +; vcmd e6 +177a: 3f c9 16 call $16c9 +177d: 6f ret + +; vcmd e7 - tempo +177e: e8 00 mov a,#$00 +1780: da 52 movw $52,ya +1782: 6f ret + +; vcmd e8 +1783: 3f c9 16 call $16c9 +1786: 6f ret + +; vcmd e9 +1787: c5 03 04 mov $0403,a +178a: 6f ret + +; vcmd ea - per-voice transpose +178b: d5 91 05 mov $0591+x,a +178e: 6f ret + +; vcmd eb - tremolo on +178f: d5 90 05 mov $0590+x,a +1792: 3f c9 16 call $16c9 +1795: d5 81 05 mov $0581+x,a +1798: 3f c9 16 call $16c9 +; vcmd ec - tremolo off +179b: e8 00 mov a,#$00 +179d: d4 e1 mov $e1+x,a +179f: 6f ret + +; vcmd f1 - pitch envelope (release) +17a0: e8 01 mov a,#$01 +17a2: 2f 02 bra $17a6 +; vcmd f2 - pitch envelope (attack) +17a4: e8 00 mov a,#$00 +17a6: d5 30 05 mov $0530+x,a +17a9: dd mov a,y +17aa: d5 21 05 mov $0521+x,a +17ad: 3f c9 16 call $16c9 +17b0: d5 20 05 mov $0520+x,a +17b3: 3f c9 16 call $16c9 +17b6: d5 31 05 mov $0531+x,a +17b9: 6f ret + +; vcmd f3 - pitch envelope off +17ba: d5 20 05 mov $0520+x,a +17bd: 6f ret + +; vcmd ed - volume +17be: d5 91 04 mov $0491+x,a +17c1: e8 00 mov a,#$00 +17c3: d5 90 04 mov $0490+x,a +17c6: 6f ret + +; vcmd ee - volume fade +17c7: d4 70 mov $70+x,a +17c9: 2d push a +17ca: 3f c9 16 call $16c9 +17cd: d5 b0 04 mov $04b0+x,a +17d0: 80 setc +17d1: b5 91 04 sbc a,$0491+x +17d4: ce pop x +17d5: 3f fb 18 call $18fb +17d8: d5 a0 04 mov $04a0+x,a +17db: dd mov a,y +17dc: d5 a1 04 mov $04a1+x,a +17df: 6f ret + +; vcmd f4 - tuning +17e0: d5 11 05 mov $0511+x,a +17e3: 6f ret + +; vcmd ef - call subroutine +17e4: d5 70 04 mov $0470+x,a +17e7: 3f c9 16 call $16c9 +17ea: d5 71 04 mov $0471+x,a +17ed: 3f c9 16 call $16c9 +17f0: d5 80 04 mov $0480+x,a +17f3: f4 20 mov a,$20+x +17f5: d5 60 04 mov $0460+x,a +17f8: f4 21 mov a,$21+x +17fa: d5 61 04 mov $0461+x,a +17fd: f5 70 04 mov a,$0470+x +1800: d4 20 mov $20+x,a +1802: f5 71 04 mov a,$0471+x +1805: d4 21 mov $21+x,a +1807: 6f ret + +; vcmd f5 - echo v-bits/volume +1808: c4 4a mov $4a,a +180a: c5 bd 03 mov $03bd,a +180d: 48 ff eor a,#$ff +180f: c5 bf 03 mov $03bf,a +1812: 3f c9 16 call $16c9 +1815: e8 00 mov a,#$00 +1817: da 60 movw $60,ya +1819: 3f c9 16 call $16c9 +181c: e8 00 mov a,#$00 +181e: da 62 movw $62,ya +1820: b2 48 clr5 $48 +1822: 6f ret + +; vcmd f8 - echo volume fade +1823: c4 68 mov $68,a +1825: 3f c9 16 call $16c9 +1828: c4 69 mov $69,a +182a: 80 setc +182b: a4 61 sbc a,$61 +182d: f8 68 mov x,$68 +182f: 3f fb 18 call $18fb +1832: da 64 movw $64,ya +1834: 3f c9 16 call $16c9 +1837: c4 6a mov $6a,a +1839: 80 setc +183a: a4 63 sbc a,$63 +183c: f8 68 mov x,$68 +183e: 3f fb 18 call $18fb +1841: da 66 movw $66,ya +1843: 6f ret + +; vcmd f6 - disable echo +1844: da 60 movw $60,ya +1846: da 62 movw $62,ya +1848: a2 48 set5 $48 +184a: 6f ret + +; vcmd f7 - set echo params +184b: 3f 6d 18 call $186d +184e: 3f c9 16 call $16c9 +1851: c4 4e mov $4e,a +1853: 3f c9 16 call $16c9 +1856: 8d 08 mov y,#$08 +1858: cf mul ya +1859: 5d mov x,a +185a: 8d 0f mov y,#$0f +185c: f5 5a 1e mov a,$1e5a+x +185f: 3f 96 14 call $1496 +1862: 3d inc x +1863: dd mov a,y +1864: 60 clrc +1865: 88 10 adc a,#$10 +1867: fd mov y,a +1868: 10 f2 bpl $185c +186a: f8 44 mov x,$44 +186c: 6f ret + +186d: c4 4d mov $4d,a +186f: 8d 7d mov y,#$7d +1871: cc f2 00 mov $00f2,y +1874: e5 f3 00 mov a,$00f3 +1877: 64 4d cmp a,$4d +1879: f0 2b beq $18a6 +187b: 28 0f and a,#$0f +187d: 48 ff eor a,#$ff +187f: f3 4c 03 bbc7 $4c,$1885 +1882: 60 clrc +1883: 84 4c adc a,$4c +1885: c4 4c mov $4c,a +1887: 8d 04 mov y,#$04 +1889: f6 79 1e mov a,$1e79+y +188c: c5 f2 00 mov $00f2,a +188f: e8 00 mov a,#$00 +1891: c5 f3 00 mov $00f3,a +1894: fe f3 dbnz y,$1889 +1896: e4 48 mov a,$48 +1898: 08 20 or a,#$20 +189a: 8d 6c mov y,#$6c +189c: 3f 96 14 call $1496 +189f: e4 4d mov a,$4d +18a1: 8d 7d mov y,#$7d +18a3: 3f 96 14 call $1496 +18a6: 1c asl a +18a7: 1c asl a +18a8: 1c asl a +18a9: 48 ff eor a,#$ff +18ab: 80 setc +18ac: 88 ff adc a,#$ff +18ae: 8d 6d mov y,#$6d +18b0: 5f 96 14 jmp $1496 + +; vcmd fa +18b3: c5 10 04 mov $0410,a +18b6: 6f ret + +18b7: f4 80 mov a,$80+x +18b9: d0 34 bne $18ef +18bb: e7 20 mov a,($20+x) +18bd: 68 f9 cmp a,#$f9 +18bf: d0 2e bne $18ef +18c1: 3f cb 16 call $16cb +18c4: 3f c9 16 call $16c9 +; vcmd f9 - pitch slide +18c7: d4 81 mov $81+x,a +18c9: 3f c9 16 call $16c9 +18cc: d4 80 mov $80+x,a +18ce: 3f c9 16 call $16c9 +18d1: 60 clrc +18d2: 85 03 04 adc a,$0403 +18d5: 95 91 05 adc a,$0591+x +18d8: 28 7f and a,#$7f +18da: d5 10 05 mov $0510+x,a +18dd: 80 setc +18de: b5 f1 04 sbc a,$04f1+x +18e1: fb 80 mov y,$80+x +18e3: 6d push y +18e4: ce pop x +18e5: 3f fb 18 call $18fb +18e8: d5 00 05 mov $0500+x,a +18eb: dd mov a,y +18ec: d5 01 05 mov $0501+x,a +18ef: 6f ret + +18f0: f5 f1 04 mov a,$04f1+x +18f3: c4 11 mov $11,a +18f5: f5 f0 04 mov a,$04f0+x +18f8: c4 10 mov $10,a +18fa: 6f ret + +18fb: ed notc +18fc: 6b 12 ror $12 +18fe: 10 03 bpl $1903 +1900: 48 ff eor a,#$ff +1902: bc inc a +1903: 8d 00 mov y,#$00 +1905: 9e div ya,x +1906: 2d push a +1907: e8 00 mov a,#$00 +1909: 9e div ya,x +190a: ee pop y +190b: f8 44 mov x,$44 +190d: f3 12 06 bbc7 $12,$1916 +1910: da 14 movw $14,ya +1912: ba 0e movw ya,$0e +1914: 9a 14 subw ya,$14 +1916: 6f ret + +; vcmd dispatch table (sfx) +1917: dw $16d3 ; e0 - set instrument +1919: dw $1727 ; e1 - pan +191b: dw $1735 ; e2 - pan fade +191d: dw $174e ; e3 - vibrato on +191f: dw $175a ; e4 - vibrato off +1921: dw $1775 ; e5 +1923: dw $177a ; e6 +1925: dw $177e ; e7 - tempo +1927: dw $1783 ; e8 +1929: dw $1787 ; e9 +192b: dw $178b ; ea - per-voice transpose +192d: dw $178f ; eb - tremolo on +192f: dw $179b ; ec - tremolo off +1931: dw $17be ; ed - volume +1933: dw $17c7 ; ee - volume fade +1935: dw $17e4 ; ef - call subroutine +1937: dw $1765 ; f0 - vibrato fade +1939: dw $17a0 ; f1 - pitch envelope (release) +193b: dw $17a4 ; f2 - pitch envelope (attack) +193d: dw $17ba ; f3 - pitch envelope off +193f: dw $17e0 ; f4 - tuning +1941: dw $1808 ; f5 - echo v-bits/volume +1943: dw $1844 ; f6 - disable echo +1945: dw $184b ; f7 - set echo params +1947: dw $1823 ; f8 - echo volume fade +1949: dw $18c7 ; f9 - pitch slide +194b: dw $18b3 ; fa +194d: dw $1c0e ; fb +194f: dw $1c23 ; fc +1951: dw $1bf6 ; fd + +; vcmd lengths (sfx) +1953: db $01,$01,$02,$03,$00,$01,$02,$01 ; e0-e7 +195b: db $02,$01,$01,$03,$00,$01,$02,$03 ; e8-ef +1963: db $01,$03,$03,$00,$01,$03,$00,$03 ; f0-f7 +196b: db $03,$03,$01,$00,$00,$02 ; f8-fd + +1971: f4 70 mov a,$70+x +1973: f0 24 beq $1999 +1975: 09 47 5e or ($5e),($47) +1978: 9b 70 dec $70+x +197a: d0 0a bne $1986 +197c: e8 00 mov a,#$00 +197e: d5 90 04 mov $0490+x,a +1981: f5 b0 04 mov a,$04b0+x +1984: 2f 10 bra $1996 +1986: 60 clrc +1987: f5 90 04 mov a,$0490+x +198a: 95 a0 04 adc a,$04a0+x +198d: d5 90 04 mov $0490+x,a +1990: f5 91 04 mov a,$0491+x +1993: 95 a1 04 adc a,$04a1+x +1996: d5 91 04 mov $0491+x,a +1999: fb e1 mov y,$e1+x +199b: f0 23 beq $19c0 +199d: f5 90 05 mov a,$0590+x +19a0: de e0 1b cbne $e0+x,$19be +19a3: 09 47 5e or ($5e),($47) +19a6: f5 80 05 mov a,$0580+x +19a9: 10 07 bpl $19b2 +19ab: fc inc y +19ac: d0 04 bne $19b2 +19ae: e8 80 mov a,#$80 +19b0: 2f 04 bra $19b6 +19b2: 60 clrc +19b3: 95 81 05 adc a,$0581+x +19b6: d5 80 05 mov $0580+x,a +19b9: 3f cf 1b call $1bcf +19bc: 2f 07 bra $19c5 +19be: bb e0 inc $e0+x +19c0: e8 ff mov a,#$ff +19c2: 3f da 1b call $1bda +19c5: f4 71 mov a,$71+x +19c7: f0 24 beq $19ed +19c9: 09 47 5e or ($5e),($47) +19cc: 9b 71 dec $71+x +19ce: d0 0a bne $19da +19d0: e8 00 mov a,#$00 +19d2: d5 c0 04 mov $04c0+x,a +19d5: f5 e0 04 mov a,$04e0+x +19d8: 2f 10 bra $19ea +19da: 60 clrc +19db: f5 c0 04 mov a,$04c0+x +19de: 95 d0 04 adc a,$04d0+x +19e1: d5 c0 04 mov $04c0+x,a +19e4: f5 c1 04 mov a,$04c1+x +19e7: 95 d1 04 adc a,$04d1+x +19ea: d5 c1 04 mov $04c1+x,a +19ed: e4 47 mov a,$47 +19ef: 24 5e and a,$5e +19f1: f0 5c beq $1a4f +19f3: f5 c1 04 mov a,$04c1+x +19f6: fd mov y,a +19f7: f5 c0 04 mov a,$04c0+x +19fa: da 10 movw $10,ya +19fc: 7d mov a,x +19fd: 9f xcn a +19fe: 5c lsr a +19ff: c4 12 mov $12,a +1a01: eb 11 mov y,$11 +1a03: e5 b8 03 mov a,$03b8 +1a06: f0 11 beq $1a19 +1a08: e8 51 mov a,#$51 +1a0a: 80 setc +1a0b: a8 51 sbc a,#$51 +1a0d: eb 10 mov y,$10 +1a0f: cf mul ya +1a10: dd mov a,y +1a11: eb 11 mov y,$11 +1a13: 60 clrc +1a14: 88 51 adc a,#$51 +1a16: fd mov y,a +1a17: 2f 12 bra $1a2b +1a19: f6 46 1e mov a,$1e46+y +1a1c: 80 setc +1a1d: b6 45 1e sbc a,$1e45+y +1a20: eb 10 mov y,$10 +1a22: cf mul ya +1a23: dd mov a,y +1a24: eb 11 mov y,$11 +1a26: 60 clrc +1a27: 96 45 1e adc a,$1e45+y +1a2a: fd mov y,a +1a2b: f5 b1 04 mov a,$04b1+x +1a2e: cf mul ya +1a2f: f5 e1 04 mov a,$04e1+x +1a32: 1c asl a +1a33: 13 12 01 bbc0 $12,$1a37 +1a36: 1c asl a +1a37: dd mov a,y +1a38: 90 03 bcc $1a3d +1a3a: 48 ff eor a,#$ff +1a3c: bc inc a +1a3d: eb 12 mov y,$12 +1a3f: 3f 96 14 call $1496 +1a42: 8d 14 mov y,#$14 +1a44: e8 00 mov a,#$00 +1a46: 9a 10 subw ya,$10 +1a48: da 10 movw $10,ya +1a4a: ab 12 inc $12 +1a4c: 33 12 b2 bbc1 $12,$1a01 +1a4f: 6f ret + +1a50: f5 21 04 mov a,$0421+x +1a53: f0 6b beq $1ac0 +1a55: 9c dec a +1a56: d5 21 04 mov $0421+x,a +1a59: f0 07 beq $1a62 +1a5b: e8 02 mov a,#$02 +1a5d: 75 20 04 cmp a,$0420+x +1a60: d0 5e bne $1ac0 +1a62: f5 80 04 mov a,$0480+x +1a65: c4 17 mov $17,a +1a67: f4 20 mov a,$20+x +1a69: fb 21 mov y,$21+x +1a6b: da 14 movw $14,ya +1a6d: 8d 00 mov y,#$00 +1a6f: f7 14 mov a,($14)+y +1a71: f0 1e beq $1a91 +1a73: 30 07 bmi $1a7c +1a75: fc inc y +1a76: 30 40 bmi $1ab8 +1a78: f7 14 mov a,($14)+y +1a7a: 10 f9 bpl $1a75 +1a7c: 68 c8 cmp a,#$c8 +1a7e: f0 40 beq $1ac0 +1a80: 68 ef cmp a,#$ef +1a82: f0 29 beq $1aad +1a84: 68 e0 cmp a,#$e0 +1a86: 90 30 bcc $1ab8 +1a88: 6d push y +1a89: fd mov y,a +1a8a: ae pop a +1a8b: 96 73 18 adc a,$1873+y +1a8e: fd mov y,a +1a8f: 2f de bra $1a6f +1a91: e4 17 mov a,$17 +1a93: f0 23 beq $1ab8 +1a95: 8b 17 dec $17 +1a97: d0 0a bne $1aa3 +1a99: f5 61 04 mov a,$0461+x +1a9c: 2d push a +1a9d: f5 60 04 mov a,$0460+x +1aa0: ee pop y +1aa1: 2f c8 bra $1a6b +1aa3: f5 71 04 mov a,$0471+x +1aa6: 2d push a +1aa7: f5 70 04 mov a,$0470+x +1aaa: ee pop y +1aab: 2f be bra $1a6b +1aad: fc inc y +1aae: f7 14 mov a,($14)+y +1ab0: 2d push a +1ab1: fc inc y +1ab2: f7 14 mov a,($14)+y +1ab4: fd mov y,a +1ab5: ae pop a +1ab6: 2f b3 bra $1a6b +1ab8: e4 47 mov a,$47 +1aba: 05 d3 03 or a,$03d3 +1abd: c5 d3 03 mov $03d3,a +1ac0: f2 13 clr7 $13 +1ac2: f4 80 mov a,$80+x +1ac4: f0 2c beq $1af2 +1ac6: f4 81 mov a,$81+x +1ac8: f0 04 beq $1ace +1aca: 9b 81 dec $81+x +1acc: 2f 24 bra $1af2 +1ace: e2 13 set7 $13 +1ad0: 9b 80 dec $80+x +1ad2: d0 0b bne $1adf +1ad4: f5 11 05 mov a,$0511+x +1ad7: d5 f0 04 mov $04f0+x,a +1ada: f5 10 05 mov a,$0510+x +1add: 2f 10 bra $1aef +1adf: 60 clrc +1ae0: f5 f0 04 mov a,$04f0+x +1ae3: 95 00 05 adc a,$0500+x +1ae6: d5 f0 04 mov $04f0+x,a +1ae9: f5 f1 04 mov a,$04f1+x +1aec: 95 01 05 adc a,$0501+x +1aef: d5 f1 04 mov $04f1+x,a +1af2: 3f f0 18 call $18f0 +1af5: f4 d1 mov a,$d1+x +1af7: f0 4c beq $1b45 +1af9: f5 50 05 mov a,$0550+x +1afc: de d0 44 cbne $d0+x,$1b43 +1aff: f5 60 05 mov a,$0560+x +1b02: 75 51 05 cmp a,$0551+x +1b05: d0 05 bne $1b0c +1b07: f5 71 05 mov a,$0571+x +1b0a: 2f 0d bra $1b19 +1b0c: 40 setp +1b0d: bb 60 inc $60+x +1b0f: 20 clrp +1b10: fd mov y,a +1b11: f0 02 beq $1b15 +1b13: f4 d1 mov a,$d1+x +1b15: 60 clrc +1b16: 95 70 05 adc a,$0570+x +1b19: d4 d1 mov $d1+x,a +1b1b: f5 40 05 mov a,$0540+x +1b1e: 60 clrc +1b1f: 95 41 05 adc a,$0541+x +1b22: d5 40 05 mov $0540+x,a +1b25: c4 12 mov $12,a +1b27: 1c asl a +1b28: 1c asl a +1b29: 90 02 bcc $1b2d +1b2b: 48 ff eor a,#$ff +1b2d: fd mov y,a +1b2e: f4 d1 mov a,$d1+x +1b30: 68 f1 cmp a,#$f1 +1b32: 90 05 bcc $1b39 +1b34: 28 0f and a,#$0f +1b36: cf mul ya +1b37: 2f 04 bra $1b3d +1b39: cf mul ya +1b3a: dd mov a,y +1b3b: 8d 00 mov y,#$00 +1b3d: 3f ba 1b call $1bba +1b40: 5f 13 14 jmp $1413 + +1b43: bb d0 inc $d0+x +1b45: e3 13 f8 bbs7 $13,$1b40 +1b48: 6f ret + +1b49: f2 13 clr7 $13 +1b4b: f4 e1 mov a,$e1+x +1b4d: f0 09 beq $1b58 +1b4f: f5 90 05 mov a,$0590+x +1b52: de e0 03 cbne $e0+x,$1b58 +1b55: 3f c2 1b call $1bc2 +1b58: f5 c1 04 mov a,$04c1+x +1b5b: fd mov y,a +1b5c: f5 c0 04 mov a,$04c0+x +1b5f: da 10 movw $10,ya +1b61: f4 71 mov a,$71+x +1b63: f0 0a beq $1b6f +1b65: f5 d1 04 mov a,$04d1+x +1b68: fd mov y,a +1b69: f5 d0 04 mov a,$04d0+x +1b6c: 3f a4 1b call $1ba4 +1b6f: f3 13 03 bbc7 $13,$1b75 +1b72: 3f fc 19 call $19fc +1b75: f2 13 clr7 $13 +1b77: 3f f0 18 call $18f0 +1b7a: f4 80 mov a,$80+x +1b7c: f0 0e beq $1b8c +1b7e: f4 81 mov a,$81+x +1b80: d0 0a bne $1b8c +1b82: f5 01 05 mov a,$0501+x +1b85: fd mov y,a +1b86: f5 00 05 mov a,$0500+x +1b89: 3f a4 1b call $1ba4 +1b8c: f4 d1 mov a,$d1+x +1b8e: f0 b5 beq $1b45 +1b90: f5 50 05 mov a,$0550+x +1b93: de d0 af cbne $d0+x,$1b45 +1b96: eb 51 mov y,$51 +1b98: f5 41 05 mov a,$0541+x +1b9b: cf mul ya +1b9c: dd mov a,y +1b9d: 60 clrc +1b9e: 95 40 05 adc a,$0540+x +1ba1: 5f 25 1b jmp $1b25 + +1ba4: e2 13 set7 $13 +1ba6: cb 12 mov $12,y +1ba8: 3f 0d 19 call $190d +1bab: 6d push y +1bac: eb 51 mov y,$51 +1bae: cf mul ya +1baf: cb 14 mov $14,y +1bb1: 8f 00 15 mov $15,#$00 +1bb4: eb 51 mov y,$51 +1bb6: ae pop a +1bb7: cf mul ya +1bb8: 7a 14 addw ya,$14 +1bba: 3f 0d 19 call $190d +1bbd: 7a 10 addw ya,$10 +1bbf: da 10 movw $10,ya +1bc1: 6f ret + +1bc2: e2 13 set7 $13 +1bc4: eb 51 mov y,$51 +1bc6: f5 81 05 mov a,$0581+x +1bc9: cf mul ya +1bca: dd mov a,y +1bcb: 60 clrc +1bcc: 95 80 05 adc a,$0580+x +1bcf: 1c asl a +1bd0: 90 02 bcc $1bd4 +1bd2: 48 ff eor a,#$ff +1bd4: fb e1 mov y,$e1+x +1bd6: cf mul ya +1bd7: dd mov a,y +1bd8: 48 ff eor a,#$ff +1bda: ec b9 03 mov y,$03b9 +1bdd: f0 05 beq $1be4 +1bdf: ec 04 04 mov y,$0404 +1be2: 2f 02 bra $1be6 +1be4: eb 59 mov y,$59 +1be6: cf mul ya +1be7: f5 c0 05 mov a,$05c0+x +1bea: cf mul ya +1beb: f5 91 04 mov a,$0491+x +1bee: cf mul ya +1bef: dd mov a,y +1bf0: cf mul ya +1bf1: dd mov a,y +1bf2: d5 b1 04 mov $04b1+x,a +1bf5: 6f ret + +; vcmd fd +1bf6: 7d mov a,x +1bf7: 9f xcn a +1bf8: 5c lsr a +1bf9: 08 05 or a,#$05 +1bfb: c4 14 mov $14,a +1bfd: dd mov a,y +1bfe: eb 14 mov y,$14 +1c00: 3f 96 14 call $1496 +1c03: 3f c9 16 call $16c9 +1c06: ab 14 inc $14 +1c08: eb 14 mov y,$14 +1c0a: 3f 96 14 call $1496 +1c0d: 6f ret + +; vcmd fb - echo on +1c0e: e5 bd 03 mov a,$03bd +1c11: 04 47 or a,$47 +1c13: c5 bd 03 mov $03bd,a +1c16: e4 47 mov a,$47 +1c18: 48 ff eor a,#$ff +1c1a: 25 bf 03 and a,$03bf +1c1d: c5 bf 03 mov $03bf,a +1c20: 5f 89 13 jmp $1389 + +; vcmd fc - echo off +1c23: e5 bf 03 mov a,$03bf +1c26: 04 47 or a,$47 +1c28: c5 bf 03 mov $03bf,a +1c2b: e4 47 mov a,$47 +1c2d: 48 ff eor a,#$ff +1c2f: 25 bd 03 and a,$03bd +1c32: c5 bd 03 mov $03bd,a +1c35: 5f 89 13 jmp $1389 + +1c38: 8d 00 mov y,#$00 +1c3a: f7 6e mov a,($6e)+y +1c3c: 3a 6e incw $6e +1c3e: 2d push a +1c3f: f7 6e mov a,($6e)+y +1c41: 3a 6e incw $6e +1c43: fd mov y,a +1c44: ae pop a +1c45: 6f ret + +1c46: c4 06 mov $06,a +1c48: 1c asl a +1c49: 5d mov x,a +1c4a: f5 ff bf mov a,$bfff+x +1c4d: fd mov y,a +1c4e: f5 fe bf mov a,$bffe+x +1c51: da 6e movw $6e,ya +1c53: 8f 02 1f mov $1f,#$02 +1c56: 2f 02 bra $1c5a +1c58: c4 06 mov $06,a +1c5a: e4 6d mov a,$6d +1c5c: 0e 46 00 tset1 $0046 +1c5f: e8 a5 mov a,#$a5 +1c61: c5 e4 05 mov $05e4,a +1c64: 6f ret + +1c65: e4 6d mov a,$6d +1c67: 0e 46 00 tset1 $0046 +1c6a: e8 00 mov a,#$00 +1c6c: c5 e4 05 mov $05e4,a +1c6f: cd 00 mov x,#$00 +1c71: 8f 01 47 mov $47,#$01 +1c74: e4 6d mov a,$6d +1c76: 24 47 and a,$47 +1c78: f0 14 beq $1c8e +1c7a: e4 47 mov a,$47 +1c7c: 48 ff eor a,#$ff +1c7e: 24 1a and a,$1a +1c80: c4 1a mov $1a,a +1c82: f5 11 02 mov a,$0211+x +1c85: 3f 04 0e call $0e04 +1c88: e8 00 mov a,#$00 +1c8a: d4 21 mov $21+x,a +1c8c: d4 20 mov $20+x,a +1c8e: 3d inc x +1c8f: 3d inc x +1c90: 0b 47 asl $47 +1c92: d0 e0 bne $1c74 +1c94: e8 00 mov a,#$00 +1c96: c4 6d mov $6d,a +1c98: 6f ret + +1c99: cd 0e mov x,#$0e +1c9b: 8f 80 47 mov $47,#$80 +1c9e: e4 47 mov a,$47 +1ca0: 24 6d and a,$6d +1ca2: f0 06 beq $1caa +1ca4: e8 00 mov a,#$00 +1ca6: d4 20 mov $20+x,a +1ca8: d4 1f mov $1f+x,a +1caa: 1d dec x +1cab: 1d dec x +1cac: 4b 47 lsr $47 +1cae: d0 ee bne $1c9e +1cb0: e8 00 mov a,#$00 +1cb2: c4 6d mov $6d,a +1cb4: cd 00 mov x,#$00 +1cb6: 8f 01 47 mov $47,#$01 +1cb9: f5 f1 05 mov a,$05f1+x +1cbc: f0 15 beq $1cd3 +1cbe: d4 21 mov $21+x,a +1cc0: f5 f0 05 mov a,$05f0+x +1cc3: d4 20 mov $20+x,a +1cc5: 09 47 1a or ($1a),($47) +1cc8: 09 47 6d or ($6d),($47) +1ccb: e4 47 mov a,$47 +1ccd: 48 ff eor a,#$ff +1ccf: 24 1b and a,$1b +1cd1: c4 1b mov $1b,a +1cd3: 3d inc x +1cd4: 3d inc x +1cd5: 0b 47 asl $47 +1cd7: d0 e0 bne $1cb9 +1cd9: e4 6d mov a,$6d +1cdb: 0e 46 00 tset1 $0046 +1cde: e8 00 mov a,#$00 +1ce0: c5 e4 05 mov $05e4,a +1ce3: 6f ret + +1ce4: 3f 38 1c call $1c38 +1ce7: 1a 6e decw $6e +1ce9: 1a 6e decw $6e +1ceb: da 16 movw $16,ya +1ced: 8d 0f mov y,#$0f +1cef: f7 16 mov a,($16)+y +1cf1: d6 f0 05 mov $05f0+y,a +1cf4: dc dec y +1cf5: 10 f8 bpl $1cef +1cf7: 3f 99 1c call $1c99 +1cfa: cd 0e mov x,#$0e +1cfc: 8f 80 47 mov $47,#$80 +1cff: e4 47 mov a,$47 +1d01: 24 6d and a,$6d +1d03: f0 1d beq $1d22 +1d05: e8 ff mov a,#$ff +1d07: d5 91 04 mov $0491+x,a +1d0a: e5 e3 05 mov a,$05e3 +1d0d: 3f 27 17 call $1727 +1d10: e8 00 mov a,#$00 +1d12: d5 c1 05 mov $05c1+x,a +1d15: d5 11 05 mov $0511+x,a +1d18: d5 91 05 mov $0591+x,a +1d1b: d5 20 05 mov $0520+x,a +1d1e: d4 d1 mov $d1+x,a +1d20: d4 e1 mov $e1+x,a +1d22: 1d dec x +1d23: 1d dec x +1d24: 4b 47 lsr $47 +1d26: d0 d7 bne $1cff +1d28: c5 03 04 mov $0403,a +1d2b: c5 e0 05 mov $05e0,a +1d2e: c5 10 04 mov $0410,a +1d31: c4 70 mov $70,a +1d33: 6f ret + +1d34: e5 e4 05 mov a,$05e4 +1d37: f0 03 beq $1d3c +1d39: 5f 6a 1c jmp $1c6a + +1d3c: eb 0a mov y,$0a +1d3e: e4 02 mov a,$02 +1d40: c4 0a mov $0a,a +1d42: 7e 02 cmp y,$02 +1d44: f0 03 beq $1d49 +1d46: 5f 46 1c jmp $1c46 + +1d49: e4 06 mov a,$06 +1d4b: f0 e6 beq $1d33 +1d4d: e4 1f mov a,$1f +1d4f: d0 03 bne $1d54 +1d51: 5f b0 1d jmp $1db0 + +1d54: 6e 1f 8d dbnz $1f,$1ce4 +1d57: 3f 38 1c call $1c38 +1d5a: d0 1a bne $1d76 +1d5c: fd mov y,a +1d5d: d0 03 bne $1d62 +1d5f: 5f 58 1c jmp $1c58 + +1d62: 8c e0 05 dec $05e0 +1d65: 10 03 bpl $1d6a +1d67: c5 e0 05 mov $05e0,a +1d6a: 3f 38 1c call $1c38 +1d6d: e9 e0 05 mov x,$05e0 +1d70: f0 e5 beq $1d57 +1d72: da 6e movw $6e,ya +1d74: 2f e1 bra $1d57 +1d76: da 16 movw $16,ya +1d78: 8d 0f mov y,#$0f +1d7a: f7 16 mov a,($16)+y +1d7c: d6 f0 05 mov $05f0+y,a +1d7f: dc dec y +1d80: 10 f8 bpl $1d7a +1d82: 3f 65 1c call $1c65 +1d85: 3f 99 1c call $1c99 +1d88: cd 00 mov x,#$00 +1d8a: 8f 01 47 mov $47,#$01 +1d8d: e4 47 mov a,$47 +1d8f: 24 6d and a,$6d +1d91: f0 17 beq $1daa +1d93: f4 21 mov a,$21+x +1d95: f0 06 beq $1d9d +1d97: f5 c1 05 mov a,$05c1+x +1d9a: 3f d3 16 call $16d3 +1d9d: e8 00 mov a,#$00 +1d9f: d5 80 04 mov $0480+x,a +1da2: d4 70 mov $70+x,a +1da4: d4 71 mov $71+x,a +1da6: bc inc a +1da7: d5 20 04 mov $0420+x,a +1daa: 3d inc x +1dab: 3d inc x +1dac: 0b 47 asl $47 +1dae: d0 dd bne $1d8d +1db0: cd 00 mov x,#$00 +1db2: e4 6d mov a,$6d +1db4: 24 5e and a,$5e +1db6: c4 5e mov $5e,a +1db8: 8f 01 47 mov $47,#$01 +1dbb: d8 44 mov $44,x +1dbd: e4 47 mov a,$47 +1dbf: 24 6d and a,$6d +1dc1: f0 78 beq $1e3b +1dc3: f4 21 mov a,$21+x +1dc5: f0 74 beq $1e3b +1dc7: f5 20 04 mov a,$0420+x +1dca: 9c dec a +1dcb: d5 20 04 mov $0420+x,a +1dce: d0 65 bne $1e35 +1dd0: 3f c9 16 call $16c9 +1dd3: d0 20 bne $1df5 +1dd5: f5 80 04 mov a,$0480+x +1dd8: d0 03 bne $1ddd +1dda: 5f 57 1d jmp $1d57 + +1ddd: 3f fd 17 call $17fd +1de0: f5 80 04 mov a,$0480+x +1de3: 9c dec a +1de4: d5 80 04 mov $0480+x,a +1de7: d0 e7 bne $1dd0 +1de9: f5 60 04 mov a,$0460+x +1dec: d4 20 mov $20+x,a +1dee: f5 61 04 mov a,$0461+x +1df1: d4 21 mov $21+x,a +1df3: 2f db bra $1dd0 +1df5: 30 20 bmi $1e17 +1df7: d5 30 04 mov $0430+x,a +1dfa: 3f c9 16 call $16c9 +1dfd: 30 18 bmi $1e17 +1dff: 2d push a +1e00: 9f xcn a +1e01: 28 07 and a,#$07 +1e03: fd mov y,a +1e04: f6 a8 1e mov a,$1ea8+y +1e07: d5 31 04 mov $0431+x,a +1e0a: ae pop a +1e0b: 28 0f and a,#$0f +1e0d: fd mov y,a +1e0e: f6 b0 1e mov a,$1eb0+y +1e11: d5 c0 05 mov $05c0+x,a +1e14: 3f c9 16 call $16c9 +1e17: 68 e0 cmp a,#$e0 +1e19: 90 05 bcc $1e20 +1e1b: 3f b7 16 call $16b7 +1e1e: 2f b0 bra $1dd0 +1e20: 3f a8 13 call $13a8 +1e23: f5 30 04 mov a,$0430+x +1e26: d5 20 04 mov $0420+x,a +1e29: fd mov y,a +1e2a: f5 31 04 mov a,$0431+x +1e2d: cf mul ya +1e2e: dd mov a,y +1e2f: bc inc a +1e30: d5 21 04 mov $0421+x,a +1e33: 2f 03 bra $1e38 +1e35: 3f 50 1a call $1a50 +1e38: 3f b7 18 call $18b7 +1e3b: 3d inc x +1e3c: 3d inc x +1e3d: 0b 47 asl $47 +1e3f: f0 03 beq $1e44 +1e41: 5f bb 1d jmp $1dbb +1e44: 6f ret + +; pan table +1e45: db $00,$01,$03,$07,$0d,$15,$1e,$29 +1e4d: db $34,$42,$51,$5e,$67,$6e,$73,$77 +1e55: db $7a,$7c,$7d,$7e,$7f + +; echo FIR presets +1e5a: db $7f,$00,$00,$00,$00,$00,$00,$00 +1e62: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c +1e6a: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 +1e72: db $34,$33,$00,$d9,$e5,$01,$fc,$eb + +; EVOL(L),EVOL(R),EFB,EON,FLG,KOL,KOF,NON,PMON,KOF +; dsp shadow addrs for dsp regs +1e7a: db $2c,$3c,$0d,$4d,$6c,$4c,$5c,$3d,$2d,$5c +1e84: db $61,$63,$4e,$4a,$48,$45,$0e,$49,$4b,$46 + +; pitch table +1e8e: dw $08ef +1e90: dw $08de +1e92: dw $0965 +1e94: dw $09f4 +1e96: dw $0a8c +1e98: dw $0b2c +1e9a: dw $0bd6 +1e9c: dw $0c8b +1e9e: dw $0d4a +1ea0: dw $0e14 +1ea2: dw $0eea +1ea4: dw $0fcd +1ea6: dw $10be + +; note dur%'s +1ea8: db $32,$65,$7f,$98,$b2,$cb,$e5,$ff +; per-note velocity values +1eb0: db $0a,$19,$28,$3c,$50,$64,$7d,$96 +1eb8: db $aa,$b9,$c8,$d4,$e1,$eb,$f5,$ff + +1ec0: e8 aa mov a,#$aa +1ec2: c5 f4 00 mov $00f4,a +1ec5: e8 bb mov a,#$bb +1ec7: c5 f5 00 mov $00f5,a +1eca: e5 f4 00 mov a,$00f4 +1ecd: 68 cc cmp a,#$cc +1ecf: d0 f9 bne $1eca +1ed1: 2f 20 bra $1ef3 +1ed3: ec f4 00 mov y,$00f4 +1ed6: d0 fb bne $1ed3 +1ed8: 5e f4 00 cmp y,$00f4 +1edb: d0 0f bne $1eec +1edd: e5 f5 00 mov a,$00f5 +1ee0: cc f4 00 mov $00f4,y +1ee3: d7 14 mov ($14)+y,a +1ee5: fc inc y +1ee6: d0 f0 bne $1ed8 +1ee8: ab 15 inc $15 +1eea: 2f ec bra $1ed8 +1eec: 10 ea bpl $1ed8 +1eee: 5e f4 00 cmp y,$00f4 +1ef1: 10 e5 bpl $1ed8 +1ef3: e5 f6 00 mov a,$00f6 +1ef6: ec f7 00 mov y,$00f7 +1ef9: da 14 movw $14,ya +1efb: ec f4 00 mov y,$00f4 +1efe: e5 f5 00 mov a,$00f5 +1f01: cc f4 00 mov $00f4,y +1f04: d0 cd bne $1ed3 +1f06: cd 31 mov x,#$31 +1f08: c9 f1 00 mov $00f1,x +1f0b: 6f ret diff --git a/snes/NSPC/Sunsoft/Albert Odyssey.s b/snes/NSPC/Sunsoft/Albert Odyssey.s new file mode 100644 index 00000000..43898a13 --- /dev/null +++ b/snes/NSPC/Sunsoft/Albert Odyssey.s @@ -0,0 +1,2964 @@ +0800: 20 clrp +0801: cd cf mov x,#$cf +0803: bd mov sp,x +0804: e8 e0 mov a,#$e0 +0806: 8d 6c mov y,#$6c +0808: 3f 2e 0c call $0c2e +080b: e8 00 mov a,#$00 +080d: 5d mov x,a +080e: af mov (x)+,a +080f: c8 e0 cmp x,#$e0 +0811: d0 fb bne $080e +0813: fd mov y,a +0814: c4 14 mov $14,a +0816: 8f 02 15 mov $15,#$02 +0819: d7 14 mov ($14)+y,a +081b: 3a 14 incw $14 +081d: 78 06 15 cmp $15,#$06 +0820: d0 f7 bne $0819 +0822: 3f f3 09 call $09f3 +0825: e8 03 mov a,#$03 +0827: c5 00 04 mov $0400,a +082a: e8 f0 mov a,#$f0 +082c: c5 f1 00 mov $00f1,a +082f: e8 10 mov a,#$10 +0831: c5 fa 00 mov $00fa,a +0834: c4 53 mov $53,a +0836: e8 01 mov a,#$01 +0838: c5 f1 00 mov $00f1,a +083b: e8 00 mov a,#$00 +083d: c4 f4 mov $f4,a +083f: c4 f5 mov $f5,a +0841: c4 f6 mov $f6,a +0843: c4 f7 mov $f7,a +0845: e5 d1 03 mov a,$03d1 +0848: f0 23 beq $086d +084a: e5 d4 03 mov a,$03d4 +084d: 04 46 or a,$46 +084f: c5 d4 03 mov $03d4,a +0852: e5 d2 03 mov a,$03d2 +0855: 04 45 or a,$45 +0857: c4 45 mov $45,a +0859: 48 ff eor a,#$ff +085b: fd mov y,a +085c: 25 d4 03 and a,$03d4 +085f: c4 46 mov $46,a +0861: dd mov a,y +0862: 25 d3 03 and a,$03d3 +0865: c5 d4 03 mov $03d4,a +0868: e8 00 mov a,#$00 +086a: c5 d1 03 mov $03d1,a +086d: 8d 0a mov y,#$0a +086f: ad 05 cmp y,#$05 +0871: f0 07 beq $087a +0873: b0 08 bcs $087d +0875: 69 4d 4c cmp ($4c),($4d) +0878: d0 11 bne $088b +087a: e3 4c 0e bbs7 $4c,$088b +087d: f6 71 1e mov a,$1e71+y +0880: c5 f2 00 mov $00f2,a +0883: f6 7b 1e mov a,$1e7b+y +0886: 5d mov x,a +0887: e6 mov a,(x) +0888: c5 f3 00 mov $00f3,a +088b: fe e2 dbnz y,$086f +088d: cb 45 mov $45,y +088f: cb 46 mov $46,y +0891: e4 18 mov a,$18 +0893: 44 19 eor a,$19 +0895: 5c lsr a +0896: 5c lsr a +0897: ed notc +0898: 6b 18 ror $18 +089a: 6b 19 ror $19 +089c: ec fd 00 mov y,$00fd +089f: f0 fb beq $089c +08a1: 6d push y +08a2: e8 20 mov a,#$20 +08a4: cf mul ya +08a5: 60 clrc +08a6: 84 43 adc a,$43 +08a8: c4 43 mov $43,a +08aa: 90 07 bcc $08b3 +08ac: 69 4d 4c cmp ($4c),($4d) +08af: f0 02 beq $08b3 +08b1: ab 4c inc $4c +08b3: e4 53 mov a,$53 +08b5: ee pop y +08b6: cf mul ya +08b7: 60 clrc +08b8: 84 51 adc a,$51 +08ba: c4 51 mov $51,a +08bc: 90 56 bcc $0914 +08be: e5 00 04 mov a,$0400 +08c1: f0 06 beq $08c9 +08c3: 8c 00 04 dec $0400 +08c6: 5f 45 08 jmp $0845 + +08c9: e8 ff mov a,#$ff +08cb: c5 d1 03 mov $03d1,a +08ce: e8 00 mov a,#$00 +08d0: c5 d2 03 mov $03d2,a +08d3: c5 d3 03 mov $03d3,a +08d6: 3f 6f 09 call $096f +08d9: 3f 2c 1d call $1d2c +08dc: 3f 73 15 call $1573 +08df: e4 05 mov a,$05 +08e1: 04 06 or a,$06 +08e3: f0 03 beq $08e8 +08e5: 3f 95 16 call $1695 +08e8: e4 5e mov a,$5e +08ea: c5 05 04 mov $0405,a +08ed: 3f a1 0c call $0ca1 +08f0: e4 5e mov a,$5e +08f2: c5 c0 03 mov $03c0,a +08f5: cd 00 mov x,#$00 +08f7: 3f 58 09 call $0958 +08fa: cd 01 mov x,#$01 +08fc: 3f 58 09 call $0958 +08ff: cd 02 mov x,#$02 +0901: 3f 58 09 call $0958 +0904: cd 03 mov x,#$03 +0906: 3f 58 09 call $0958 +0909: ac 4f 00 inc $004f +090c: e5 4f 00 mov a,$004f +090f: c4 07 mov $07,a +0911: 5f 45 08 jmp $0845 + +0914: e5 05 04 mov a,$0405 +0917: c4 5e mov $5e,a +0919: cd 00 mov x,#$00 +091b: e4 05 mov a,$05 +091d: f0 01 beq $0920 +091f: 3d inc x +0920: e4 06 mov a,$06 +0922: f0 01 beq $0925 +0924: 3d inc x +0925: 7d mov a,x +0926: f0 12 beq $093a +0928: cd 00 mov x,#$00 +092a: 8f 01 47 mov $47,#$01 +092d: f4 21 mov a,$21+x +092f: f0 03 beq $0934 +0931: 3f 41 1b call $1b41 +0934: 3d inc x +0935: 3d inc x +0936: 0b 47 asl $47 +0938: d0 f3 bne $092d +093a: e5 c0 03 mov a,$03c0 +093d: c4 5e mov $5e,a +093f: e4 04 mov a,$04 +0941: f0 12 beq $0955 +0943: cd 00 mov x,#$00 +0945: 8f 01 47 mov $47,#$01 +0948: f4 31 mov a,$31+x +094a: f0 03 beq $094f +094c: 3f 99 12 call $1299 +094f: 3d inc x +0950: 3d inc x +0951: 0b 47 asl $47 +0953: d0 f3 bne $0948 +0955: 5f 45 08 jmp $0845 + +0958: f5 b0 03 mov a,$03b0+x +095b: d5 b4 03 mov $03b4+x,a +095e: f4 04 mov a,$04+x +0960: d5 f4 00 mov $00f4+x,a +0963: f5 f4 00 mov a,$00f4+x +0966: 75 f4 00 cmp a,$00f4+x +0969: d0 f8 bne $0963 +096b: d5 b0 03 mov $03b0+x,a +096e: 6f ret + +096f: e5 d5 03 mov a,$03d5 +0972: f0 12 beq $0986 +0974: 9c dec a +0975: 68 01 cmp a,#$01 +0977: f0 05 beq $097e +0979: c5 d5 03 mov $03d5,a +097c: 2f 08 bra $0986 +097e: 3f c1 0a call $0ac1 +0981: e8 00 mov a,#$00 +0983: c5 d5 03 mov $03d5,a +0986: e5 b0 03 mov a,$03b0 +0989: 65 b4 03 cmp a,$03b4 +098c: f0 08 beq $0996 +098e: 28 7f and a,#$7f +0990: c4 00 mov $00,a +0992: e8 ff mov a,#$ff +0994: c4 08 mov $08,a +0996: e5 b1 03 mov a,$03b1 +0999: 65 b5 03 cmp a,$03b5 +099c: f0 0b beq $09a9 +099e: 28 7f and a,#$7f +09a0: 68 6f cmp a,#$6f +09a2: b0 07 bcs $09ab +09a4: c4 01 mov $01,a +09a6: 8f ff 09 mov $09,#$ff +09a9: 2f 03 bra $09ae +09ab: 3f c6 09 call $09c6 +09ae: e5 b2 03 mov a,$03b2 +09b1: 65 b6 03 cmp a,$03b6 +09b4: f0 0b beq $09c1 +09b6: 28 7f and a,#$7f +09b8: 68 6f cmp a,#$6f +09ba: b0 06 bcs $09c2 +09bc: c4 02 mov $02,a +09be: 8f ff 0a mov $0a,#$ff +09c1: 6f ret + +09c2: 3f c6 09 call $09c6 +09c5: 6f ret + +09c6: 28 0f and a,#$0f +09c8: 1c asl a +09c9: 5d mov x,a +09ca: f5 d4 09 mov a,$09d4+x +09cd: 2d push a +09ce: f5 d3 09 mov a,$09d3+x +09d1: 2d push a +09d2: 6f ret + +09d3: f3 09 84 bbc7 $09,$095a +09d6: 0a 8b 0a or1 c,$0a8b,0 +09d9: 99 adc (x),(y) +09da: 0a 9f 0a or1 c,$0a9f,0 +09dd: a5 0a b1 sbc a,$b10a +09e0: 0a b7 0a or1 c,$0ab7,0 +09e3: dc dec y +09e4: 0a e2 0a or1 c,$0ae2,0 +09e7: f6 0a 14 mov a,$140a+y +09ea: 0b 32 asl $32 +09ec: 0b 32 asl $32 +09ee: 0b 32 asl $32 +09f0: 0b 14 asl $14 +09f2: 0a e8 e0 or1 c,$00e8,7 +09f5: 8d 6c mov y,#$6c +09f7: 3f 2e 0c call $0c2e +09fa: e8 00 mov a,#$00 +09fc: 3f b2 0f call $0fb2 +09ff: a2 48 set5 $48 +0a01: e8 7f mov a,#$7f +0a03: 8d 0c mov y,#$0c +0a05: 3f 2e 0c call $0c2e +0a08: 8d 1c mov y,#$1c +0a0a: 3f 2e 0c call $0c2e +0a0d: e8 20 mov a,#$20 +0a0f: 8d 5d mov y,#$5d +0a11: 3f 2e 0c call $0c2e +0a14: e8 c0 mov a,#$c0 +0a16: c4 59 mov $59,a +0a18: c5 bb 03 mov $03bb,a +0a1b: e8 b4 mov a,#$b4 +0a1d: c5 ba 03 mov $03ba,a +0a20: 8f 20 53 mov $53,#$20 +0a23: e8 00 mov a,#$00 +0a25: c5 b8 03 mov $03b8,a +0a28: c4 00 mov $00,a +0a2a: c4 01 mov $01,a +0a2c: c4 02 mov $02,a +0a2e: c4 03 mov $03,a +0a30: c5 b0 03 mov $03b0,a +0a33: c5 b1 03 mov $03b1,a +0a36: c5 b2 03 mov $03b2,a +0a39: c5 b3 03 mov $03b3,a +0a3c: c5 b4 03 mov $03b4,a +0a3f: c5 b5 03 mov $03b5,a +0a42: c5 b6 03 mov $03b6,a +0a45: c5 b7 03 mov $03b7,a +0a48: c4 5a mov $5a,a +0a4a: c4 68 mov $68,a +0a4c: c4 54 mov $54,a +0a4e: c4 50 mov $50,a +0a50: c5 03 04 mov $0403,a +0a53: c4 42 mov $42,a +0a55: c5 02 04 mov $0402,a +0a58: c5 e0 05 mov $05e0,a +0a5b: c4 5f mov $5f,a +0a5d: c5 bc 03 mov $03bc,a +0a60: c5 bd 03 mov $03bd,a +0a63: c5 be 03 mov $03be,a +0a66: c5 bf 03 mov $03bf,a +0a69: c5 d5 03 mov $03d5,a +0a6c: e8 0a mov a,#$0a +0a6e: c5 06 04 mov $0406,a +0a71: c5 e3 05 mov $05e3,a +0a74: e8 ff mov a,#$ff +0a76: c5 b9 03 mov $03b9,a +0a79: e8 c0 mov a,#$c0 +0a7b: c5 04 04 mov $0404,a +0a7e: e8 f1 mov a,#$f1 +0a80: c5 f1 00 mov $00f1,a +0a83: 6f ret + +0a84: e5 b3 03 mov a,$03b3 +0a87: 3f cf 0e call $0ecf +0a8a: 6f ret + +0a8b: ec b3 03 mov y,$03b3 +0a8e: dd mov a,y +0a8f: 3f a1 0e call $0ea1 +0a92: e5 b3 03 mov a,$03b3 +0a95: c5 bb 03 mov $03bb,a +0a98: 6f ret + +0a99: e8 00 mov a,#$00 +0a9b: c5 b8 03 mov $03b8,a +0a9e: 6f ret + +0a9f: e8 ff mov a,#$ff +0aa1: c5 b8 03 mov $03b8,a +0aa4: 6f ret + +0aa5: e8 ff mov a,#$ff +0aa7: c5 b9 03 mov $03b9,a +0aaa: e5 b3 03 mov a,$03b3 +0aad: c5 04 04 mov $0404,a +0ab0: 6f ret + +0ab1: e8 00 mov a,#$00 +0ab3: c5 b9 03 mov $03b9,a +0ab6: 6f ret + +0ab7: e5 b3 03 mov a,$03b3 +0aba: d0 01 bne $0abd +0abc: bc inc a +0abd: c5 ba 03 mov $03ba,a +0ac0: 6f ret + +0ac1: 8d 00 mov y,#$00 +0ac3: dd mov a,y +0ac4: 3f a1 0e call $0ea1 +0ac7: e5 ba 03 mov a,$03ba +0aca: c4 5a mov $5a,a +0acc: e5 bb 03 mov a,$03bb +0acf: c4 5b mov $5b,a +0ad1: 80 setc +0ad2: a4 59 sbc a,$59 +0ad4: f8 5a mov x,$5a +0ad6: 3f 42 10 call $1042 +0ad9: da 5c movw $5c,ya +0adb: 6f ret + +0adc: e8 03 mov a,#$03 +0ade: c5 d5 03 mov $03d5,a +0ae1: 6f ret + +0ae2: e5 ba 03 mov a,$03ba +0ae5: c4 5a mov $5a,a +0ae7: e8 00 mov a,#$00 +0ae9: c4 5b mov $5b,a +0aeb: 80 setc +0aec: a4 59 sbc a,$59 +0aee: f8 5a mov x,$5a +0af0: 3f 42 10 call $1042 +0af3: da 5c movw $5c,ya +0af5: 6f ret + +0af6: e5 b3 03 mov a,$03b3 +0af9: c5 06 04 mov $0406,a +0afc: cd 00 mov x,#$00 +0afe: 8f 01 47 mov $47,#$01 +0b01: e4 47 mov a,$47 +0b03: 24 1b and a,$1b +0b05: f0 06 beq $0b0d +0b07: e5 e3 05 mov a,$05e3 +0b0a: 3f 18 17 call $1718 +0b0d: 3d inc x +0b0e: 3d inc x +0b0f: 0b 47 asl $47 +0b11: d0 ee bne $0b01 +0b13: 6f ret + +0b14: e5 b3 03 mov a,$03b3 +0b17: c5 e3 05 mov $05e3,a +0b1a: cd 00 mov x,#$00 +0b1c: 8f 01 47 mov $47,#$01 +0b1f: e4 47 mov a,$47 +0b21: 24 6d and a,$6d +0b23: f0 06 beq $0b2b +0b25: e5 e3 05 mov a,$05e3 +0b28: 3f 18 17 call $1718 +0b2b: 3d inc x +0b2c: 3d inc x +0b2d: 0b 47 asl $47 +0b2f: d0 ee bne $0b1f +0b31: 6f ret + +0b32: 6f ret + +0b33: 6f ret + +; handle a note vcmd (80-df) (music) +0b34: ad ca cmp y,#$ca +0b36: 90 05 bcc $0b3d +0b38: 3f fa 0d call $0dfa +0b3b: 8d a4 mov y,#$a4 +0b3d: ad c8 cmp y,#$c8 +0b3f: b0 f2 bcs $0b33 +0b41: e4 1a mov a,$1a +0b43: 24 47 and a,$47 +0b45: d0 ec bne $0b33 +0b47: dd mov a,y +0b48: 28 7f and a,#$7f +0b4a: 60 clrc +0b4b: 84 50 adc a,$50 +0b4d: 60 clrc +0b4e: 95 e1 02 adc a,$02e1+x +0b51: d5 61 03 mov $0361+x,a +0b54: f5 81 03 mov a,$0381+x +0b57: d5 60 03 mov $0360+x,a +0b5a: f5 b1 02 mov a,$02b1+x +0b5d: 5c lsr a +0b5e: e8 00 mov a,#$00 +0b60: 7c ror a +0b61: d5 a0 02 mov $02a0+x,a +0b64: e8 00 mov a,#$00 +0b66: d4 b0 mov $b0+x,a +0b68: d5 00 01 mov $0100+x,a +0b6b: d5 d0 02 mov $02d0+x,a +0b6e: d4 c0 mov $c0+x,a +0b70: 09 47 5e or ($5e),($47) +0b73: e5 d2 03 mov a,$03d2 +0b76: 04 47 or a,$47 +0b78: c5 d2 03 mov $03d2,a +0b7b: f5 80 02 mov a,$0280+x +0b7e: d4 a0 mov $a0+x,a +0b80: f0 1e beq $0ba0 +0b82: f5 81 02 mov a,$0281+x +0b85: d4 a1 mov $a1+x,a +0b87: f5 90 02 mov a,$0290+x +0b8a: d0 0a bne $0b96 +0b8c: f5 61 03 mov a,$0361+x +0b8f: 80 setc +0b90: b5 91 02 sbc a,$0291+x +0b93: d5 61 03 mov $0361+x,a +0b96: f5 91 02 mov a,$0291+x +0b99: 60 clrc +0b9a: 95 61 03 adc a,$0361+x +0b9d: 3f 1f 10 call $101f +0ba0: 3f 37 10 call $1037 +0ba3: 8d 00 mov y,#$00 +0ba5: e4 11 mov a,$11 +0ba7: 80 setc +0ba8: a8 34 sbc a,#$34 +0baa: b0 09 bcs $0bb5 +0bac: e4 11 mov a,$11 +0bae: 80 setc +0baf: a8 13 sbc a,#$13 +0bb1: b0 06 bcs $0bb9 +0bb3: dc dec y +0bb4: 1c asl a +0bb5: 7a 10 addw ya,$10 +0bb7: da 10 movw $10,ya +0bb9: 4d push x +0bba: e4 11 mov a,$11 +0bbc: 1c asl a +0bbd: 8d 00 mov y,#$00 +0bbf: cd 18 mov x,#$18 +0bc1: 9e div ya,x +0bc2: 5d mov x,a +0bc3: f6 87 1e mov a,$1e87+y +0bc6: c4 15 mov $15,a +0bc8: f6 86 1e mov a,$1e86+y +0bcb: c4 14 mov $14,a +0bcd: f6 89 1e mov a,$1e89+y +0bd0: 2d push a +0bd1: f6 88 1e mov a,$1e88+y +0bd4: ee pop y +0bd5: 9a 14 subw ya,$14 +0bd7: eb 10 mov y,$10 +0bd9: cf mul ya +0bda: dd mov a,y +0bdb: 8d 00 mov y,#$00 +0bdd: 7a 14 addw ya,$14 +0bdf: cb 15 mov $15,y +0be1: 1c asl a +0be2: 2b 15 rol $15 +0be4: c4 14 mov $14,a +0be6: 2f 04 bra $0bec +0be8: 4b 15 lsr $15 +0bea: 7c ror a +0beb: 3d inc x +0bec: c8 06 cmp x,#$06 +0bee: d0 f8 bne $0be8 +0bf0: c4 14 mov $14,a +0bf2: ce pop x +0bf3: f5 20 02 mov a,$0220+x +0bf6: eb 15 mov y,$15 +0bf8: cf mul ya +0bf9: da 16 movw $16,ya +0bfb: f5 20 02 mov a,$0220+x +0bfe: eb 14 mov y,$14 +0c00: cf mul ya +0c01: 6d push y +0c02: f5 21 02 mov a,$0221+x +0c05: eb 14 mov y,$14 +0c07: cf mul ya +0c08: 7a 16 addw ya,$16 +0c0a: da 16 movw $16,ya +0c0c: f5 21 02 mov a,$0221+x +0c0f: eb 15 mov y,$15 +0c11: cf mul ya +0c12: fd mov y,a +0c13: ae pop a +0c14: 7a 16 addw ya,$16 +0c16: da 16 movw $16,ya +0c18: 7d mov a,x +0c19: 9f xcn a +0c1a: 5c lsr a +0c1b: 08 02 or a,#$02 +0c1d: fd mov y,a +0c1e: e4 16 mov a,$16 +0c20: 3f 26 0c call $0c26 +0c23: fc inc y +0c24: e4 17 mov a,$17 +0c26: 2d push a +0c27: e4 47 mov a,$47 +0c29: 24 1a and a,$1a +0c2b: ae pop a +0c2c: d0 06 bne $0c34 +0c2e: cc f2 00 mov $00f2,y +0c31: c5 f3 00 mov $00f3,a +0c34: 6f ret + +; read $40/1 into YA with advancing the ptr +0c35: 8d 00 mov y,#$00 +0c37: f7 40 mov a,($40)+y +0c39: 3a 40 incw $40 +0c3b: 2d push a +0c3c: f7 40 mov a,($40)+y +0c3e: 3a 40 incw $40 +0c40: fd mov y,a +0c41: ae pop a +0c42: 6f ret + +; play song in A +0c43: e8 ff mov a,#$ff +0c45: 8d 5c mov y,#$5c +0c47: cc f2 00 mov $00f2,y +0c4a: c5 f3 00 mov $00f3,a +0c4d: 3f ab 1e call $1eab +0c50: 3f 14 0a call $0a14 +0c53: e8 00 mov a,#$00 +0c55: c4 08 mov $08,a +0c57: c4 04 mov $04,a +0c59: 1c asl a +0c5a: f0 0d beq $0c69 +0c5c: 5d mov x,a +0c5d: f5 ff 9f mov a,$9fff+x +0c60: fd mov y,a +0c61: f5 fe 9f mov a,$9ffe+x +0c64: da 40 movw $40,ya +0c66: 8f 02 0c mov $0c,#$02 +0c69: e4 1a mov a,$1a +0c6b: 48 ff eor a,#$ff +0c6d: 0e 46 00 tset1 $0046 +0c70: 6f ret + +; reset song params +0c71: cd 0e mov x,#$0e +0c73: 8f 80 47 mov $47,#$80 +0c76: e8 ff mov a,#$ff +0c78: d5 91 03 mov $0391+x,a +0c7b: e8 0a mov a,#$0a +0c7d: 3f 53 0e call $0e53 +0c80: d5 11 02 mov $0211+x,a +0c83: d5 81 03 mov $0381+x,a +0c86: d5 e1 02 mov $02e1+x,a +0c89: d5 80 02 mov $0280+x,a +0c8c: d4 b1 mov $b1+x,a +0c8e: d4 c1 mov $c1+x,a +0c90: 1d dec x +0c91: 1d dec x +0c92: 4b 47 lsr $47 +0c94: d0 e0 bne $0c76 +0c96: c4 5a mov $5a,a +0c98: c4 68 mov $68,a +0c9a: c4 54 mov $54,a +0c9c: c4 42 mov $42,a +0c9e: c4 5f mov $5f,a +0ca0: 6f ret + +0ca1: eb 08 mov y,$08 +0ca3: e4 00 mov a,$00 +0ca5: c4 08 mov $08,a +0ca7: 68 7d cmp a,#$7d +0ca9: f0 be beq $0c69 +0cab: 68 7e cmp a,#$7e +0cad: f0 08 beq $0cb7 +0caf: 68 7f cmp a,#$7f +0cb1: f0 90 beq $0c43 +0cb3: 7e 00 cmp y,$00 +0cb5: d0 a0 bne $0c57 +0cb7: e4 04 mov a,$04 +0cb9: f0 e5 beq $0ca0 +0cbb: e4 0c mov a,$0c +0cbd: f0 4e beq $0d0d +0cbf: 6e 0c af dbnz $0c,$0c71 +0cc2: 3f 35 0c call $0c35 +0cc5: d0 14 bne $0cdb +0cc7: fd mov y,a +0cc8: f0 8d beq $0c57 +0cca: 8b 42 dec $42 +0ccc: 10 02 bpl $0cd0 +0cce: c4 42 mov $42,a +0cd0: 3f 35 0c call $0c35 +0cd3: f8 42 mov x,$42 +0cd5: f0 eb beq $0cc2 +0cd7: da 40 movw $40,ya +0cd9: 2f e7 bra $0cc2 +0cdb: da 16 movw $16,ya +0cdd: 8d 0f mov y,#$0f +0cdf: f7 16 mov a,($16)+y +0ce1: d6 30 00 mov $0030+y,a +0ce4: dc dec y +0ce5: 10 f8 bpl $0cdf +0ce7: cd 00 mov x,#$00 +0ce9: 8f 01 47 mov $47,#$01 +0cec: f4 31 mov a,$31+x +0cee: f0 0a beq $0cfa +0cf0: f5 11 02 mov a,$0211+x +0cf3: d0 05 bne $0cfa +0cf5: e8 00 mov a,#$00 +0cf7: 3f fa 0d call $0dfa +0cfa: e8 00 mov a,#$00 +0cfc: d5 60 02 mov $0260+x,a +0cff: d4 90 mov $90+x,a +0d01: d4 91 mov $91+x,a +0d03: bc inc a +0d04: d5 50 02 mov $0250+x,a +0d07: 3d inc x +0d08: 3d inc x +0d09: 0b 47 asl $47 +0d0b: d0 df bne $0cec +0d0d: cd 00 mov x,#$00 +0d0f: d8 5e mov $5e,x +0d11: 8f 01 47 mov $47,#$01 +0d14: d8 44 mov $44,x +0d16: f4 31 mov a,$31+x +0d18: f0 71 beq $0d8b +0d1a: f5 50 02 mov a,$0250+x +0d1d: 9c dec a +0d1e: d5 50 02 mov $0250+x,a +0d21: d0 62 bne $0d85 +0d23: 3f f0 0d call $0df0 +0d26: d0 1d bne $0d45 +0d28: f5 60 02 mov a,$0260+x +0d2b: f0 95 beq $0cc2 +0d2d: 3f 42 0f call $0f42 +0d30: f5 60 02 mov a,$0260+x +0d33: 9c dec a +0d34: d5 60 02 mov $0260+x,a +0d37: d0 ea bne $0d23 +0d39: f5 30 02 mov a,$0230+x +0d3c: d4 30 mov $30+x,a +0d3e: f5 31 02 mov a,$0231+x +0d41: d4 31 mov $31+x,a +0d43: 2f de bra $0d23 +0d45: 30 20 bmi $0d67 +0d47: d5 00 02 mov $0200+x,a +0d4a: 3f f0 0d call $0df0 +0d4d: 30 18 bmi $0d67 +0d4f: 2d push a +0d50: 9f xcn a +0d51: 28 07 and a,#$07 +0d53: fd mov y,a +0d54: f6 18 a0 mov a,$a018+y +0d57: d5 01 02 mov $0201+x,a +0d5a: ae pop a +0d5b: 28 0f and a,#$0f +0d5d: fd mov y,a +0d5e: f6 20 a0 mov a,$a020+y +0d61: d5 10 02 mov $0210+x,a +0d64: 3f f0 0d call $0df0 +0d67: 68 e0 cmp a,#$e0 +0d69: 90 05 bcc $0d70 +0d6b: 3f de 0d call $0dde +0d6e: 2f b3 bra $0d23 +0d70: 3f 34 0b call $0b34 +0d73: f5 00 02 mov a,$0200+x +0d76: d5 50 02 mov $0250+x,a +0d79: fd mov y,a +0d7a: f5 01 02 mov a,$0201+x +0d7d: cf mul ya +0d7e: dd mov a,y +0d7f: bc inc a +0d80: d5 51 02 mov $0251+x,a +0d83: 2f 03 bra $0d88 +0d85: 3f 9a 11 call $119a +0d88: 3f ff 0f call $0fff +0d8b: 3d inc x +0d8c: 3d inc x +0d8d: 0b 47 asl $47 +0d8f: d0 83 bne $0d14 +0d91: e4 54 mov a,$54 +0d93: f0 0b beq $0da0 +0d95: ba 56 movw ya,$56 +0d97: 7a 52 addw ya,$52 +0d99: 6e 54 02 dbnz $54,$0d9e +0d9c: ba 54 movw ya,$54 +0d9e: da 52 movw $52,ya +0da0: e4 68 mov a,$68 +0da2: f0 15 beq $0db9 +0da4: ba 64 movw ya,$64 +0da6: 7a 60 addw ya,$60 +0da8: da 60 movw $60,ya +0daa: ba 66 movw ya,$66 +0dac: 7a 62 addw ya,$62 +0dae: 6e 68 06 dbnz $68,$0db7 +0db1: ba 68 movw ya,$68 +0db3: da 60 movw $60,ya +0db5: eb 6a mov y,$6a +0db7: da 62 movw $62,ya +0db9: e4 5a mov a,$5a +0dbb: f0 0e beq $0dcb +0dbd: ba 5c movw ya,$5c +0dbf: 7a 58 addw ya,$58 +0dc1: 6e 5a 02 dbnz $5a,$0dc6 +0dc4: ba 5a movw ya,$5a +0dc6: da 58 movw $58,ya +0dc8: 8f ff 5e mov $5e,#$ff +0dcb: cd 00 mov x,#$00 +0dcd: 8f 01 47 mov $47,#$01 +0dd0: f4 31 mov a,$31+x +0dd2: f0 03 beq $0dd7 +0dd4: 3f bb 10 call $10bb +0dd7: 3d inc x +0dd8: 3d inc x +0dd9: 0b 47 asl $47 +0ddb: d0 f3 bne $0dd0 +0ddd: 6f ret + +; dispatch vcmd in A (e0-ff) +0dde: 1c asl a +0ddf: fd mov y,a +0de0: f6 9f 0f mov a,$0f9f+y +0de3: 2d push a +0de4: f6 9e 0f mov a,$0f9e+y +0de7: 2d push a +0de8: dd mov a,y +0de9: 5c lsr a +0dea: fd mov y,a +0deb: f6 3c 10 mov a,$103c+y +0dee: f0 08 beq $0df8 +0df0: e7 30 mov a,($30+x) +0df2: bb 30 inc $30+x +0df4: d0 02 bne $0df8 +0df6: bb 31 inc $31+x +0df8: fd mov y,a +0df9: 6f ret + +; vcmd e0 - set instrument +0dfa: d5 11 02 mov $0211+x,a +0dfd: fd mov y,a +0dfe: 10 06 bpl $0e06 +0e00: 80 setc +0e01: a8 ca sbc a,#$ca +0e03: 60 clrc +0e04: 84 5f adc a,$5f +0e06: 8d 06 mov y,#$06 +0e08: cf mul ya +0e09: da 14 movw $14,ya +0e0b: 60 clrc +0e0c: 98 00 14 adc $14,#$00 +0e0f: 98 1f 15 adc $15,#$1f +0e12: e4 1a mov a,$1a +0e14: 24 47 and a,$47 +0e16: d0 3a bne $0e52 +0e18: 4d push x +0e19: 7d mov a,x +0e1a: 9f xcn a +0e1b: 5c lsr a +0e1c: 08 04 or a,#$04 +0e1e: 5d mov x,a +0e1f: 8d 00 mov y,#$00 +0e21: f7 14 mov a,($14)+y +0e23: 10 0e bpl $0e33 +0e25: 28 1f and a,#$1f +0e27: 38 20 48 and $48,#$20 +0e2a: 0e 48 00 tset1 $0048 +0e2d: 09 47 49 or ($49),($47) +0e30: dd mov a,y +0e31: 2f 07 bra $0e3a +0e33: e4 47 mov a,$47 +0e35: 4e 49 00 tclr1 $0049 +0e38: f7 14 mov a,($14)+y +0e3a: c9 f2 00 mov $00f2,x +0e3d: c5 f3 00 mov $00f3,a +0e40: 3d inc x +0e41: fc inc y +0e42: ad 04 cmp y,#$04 +0e44: d0 f2 bne $0e38 +0e46: ce pop x +0e47: f7 14 mov a,($14)+y +0e49: d5 21 02 mov $0221+x,a +0e4c: fc inc y +0e4d: f7 14 mov a,($14)+y +0e4f: d5 20 02 mov $0220+x,a +0e52: 6f ret + +; vcmd e1 - pan +0e53: d5 51 03 mov $0351+x,a +0e56: 28 1f and a,#$1f +0e58: d5 31 03 mov $0331+x,a +0e5b: e8 00 mov a,#$00 +0e5d: d5 30 03 mov $0330+x,a +0e60: 6f ret + +; vcmd e2 - pan fade +0e61: d4 91 mov $91+x,a +0e63: 2d push a +0e64: 3f f0 0d call $0df0 +0e67: d5 50 03 mov $0350+x,a +0e6a: 80 setc +0e6b: b5 31 03 sbc a,$0331+x +0e6e: ce pop x +0e6f: 3f 42 10 call $1042 +0e72: d5 40 03 mov $0340+x,a +0e75: dd mov a,y +0e76: d5 41 03 mov $0341+x,a +0e79: 6f ret + +; vcmd e3 - vibrato on +0e7a: d5 b0 02 mov $02b0+x,a +0e7d: 3f f0 0d call $0df0 +0e80: d5 a1 02 mov $02a1+x,a +0e83: 3f f0 0d call $0df0 +; vcmd e4 - vibrato off +0e86: d4 b1 mov $b1+x,a +0e88: d5 c1 02 mov $02c1+x,a +0e8b: e8 00 mov a,#$00 +0e8d: d5 b1 02 mov $02b1+x,a +0e90: 6f ret + +; vcmd f0 - vibrato fade +0e91: d5 b1 02 mov $02b1+x,a +0e94: 2d push a +0e95: 8d 00 mov y,#$00 +0e97: f4 b1 mov a,$b1+x +0e99: ce pop x +0e9a: 9e div ya,x +0e9b: f8 44 mov x,$44 +0e9d: d5 c0 02 mov $02c0+x,a +0ea0: 6f ret + +; vcmd e5 - master volume +0ea1: e8 00 mov a,#$00 +0ea3: da 58 movw $58,ya +0ea5: 6f ret + +; vcmd e6 - master volume fade +0ea6: c4 5a mov $5a,a +0ea8: 3f f0 0d call $0df0 +0eab: c4 5b mov $5b,a +0ead: 80 setc +0eae: a4 59 sbc a,$59 +0eb0: f8 5a mov x,$5a +0eb2: 3f 42 10 call $1042 +0eb5: da 5c movw $5c,ya +0eb7: 6f ret + +; vcmd e7 - tempo +0eb8: e8 00 mov a,#$00 +0eba: da 52 movw $52,ya +0ebc: 6f ret + +; vcmd e8 - tempo fade +0ebd: c4 54 mov $54,a +0ebf: 3f f0 0d call $0df0 +0ec2: c4 55 mov $55,a +0ec4: 80 setc +0ec5: a4 53 sbc a,$53 +0ec7: f8 54 mov x,$54 +0ec9: 3f 42 10 call $1042 +0ecc: da 56 movw $56,ya +0ece: 6f ret + +; vcmd e9 - global transpose +0ecf: c4 50 mov $50,a +0ed1: 6f ret + +; vcmd ea - per-voice transpose +0ed2: d5 e1 02 mov $02e1+x,a +0ed5: 6f ret + +; vcmd eb - tremolo on +0ed6: d5 e0 02 mov $02e0+x,a +0ed9: 3f f0 0d call $0df0 +0edc: d5 d1 02 mov $02d1+x,a +0edf: 3f f0 0d call $0df0 +; vcmd ec - tremolo off +0ee2: d4 c1 mov $c1+x,a +0ee4: 6f ret + +; vcmd f1 - pitch envelope (release) +0ee5: e8 01 mov a,#$01 +0ee7: 2f 02 bra $0eeb +; vcmd f2 - pitch envelope (attack) +0ee9: e8 00 mov a,#$00 +0eeb: d5 90 02 mov $0290+x,a +0eee: dd mov a,y +0eef: d5 81 02 mov $0281+x,a +0ef2: 3f f0 0d call $0df0 +0ef5: d5 80 02 mov $0280+x,a +0ef8: 3f f0 0d call $0df0 +0efb: d5 91 02 mov $0291+x,a +0efe: 6f ret + +; vcmd f3 - pitch envelope off +0eff: d5 80 02 mov $0280+x,a +0f02: 6f ret + +; vcmd ed - volume +0f03: d5 91 03 mov $0391+x,a +0f06: e8 00 mov a,#$00 +0f08: d5 90 03 mov $0390+x,a +0f0b: 6f ret + +; vcmd ee - volume fade +0f0c: d4 90 mov $90+x,a +0f0e: 2d push a +0f0f: 3f f0 0d call $0df0 +0f12: d5 20 03 mov $0320+x,a +0f15: 80 setc +0f16: b5 91 03 sbc a,$0391+x +0f19: ce pop x +0f1a: 3f 42 10 call $1042 +0f1d: d5 10 03 mov $0310+x,a +0f20: dd mov a,y +0f21: d5 11 03 mov $0311+x,a +0f24: 6f ret + +; vcmd f4 - tuning +0f25: d5 81 03 mov $0381+x,a +0f28: 6f ret + +; vcmd ef - call subroutine +0f29: d5 40 02 mov $0240+x,a +0f2c: 3f f0 0d call $0df0 +0f2f: d5 41 02 mov $0241+x,a +0f32: 3f f0 0d call $0df0 +0f35: d5 60 02 mov $0260+x,a +0f38: f4 30 mov a,$30+x +0f3a: d5 30 02 mov $0230+x,a +0f3d: f4 31 mov a,$31+x +0f3f: d5 31 02 mov $0231+x,a +0f42: f5 40 02 mov a,$0240+x +0f45: d4 30 mov $30+x,a +0f47: f5 41 02 mov a,$0241+x +0f4a: d4 31 mov $31+x,a +0f4c: 6f ret + +; vcmd f5 - echo vbits/volume +0f4d: c4 4a mov $4a,a +0f4f: c5 bc 03 mov $03bc,a +0f52: 48 ff eor a,#$ff +0f54: c5 be 03 mov $03be,a +0f57: 3f f0 0d call $0df0 +0f5a: e8 00 mov a,#$00 +0f5c: da 60 movw $60,ya +0f5e: 3f f0 0d call $0df0 +0f61: e8 00 mov a,#$00 +0f63: da 62 movw $62,ya +0f65: b2 48 clr5 $48 +0f67: 6f ret + +; vcmd f8 - echo volume fade +0f68: c4 68 mov $68,a +0f6a: 3f f0 0d call $0df0 +0f6d: c4 69 mov $69,a +0f6f: 80 setc +0f70: a4 61 sbc a,$61 +0f72: f8 68 mov x,$68 +0f74: 3f 42 10 call $1042 +0f77: da 64 movw $64,ya +0f79: 3f f0 0d call $0df0 +0f7c: c4 6a mov $6a,a +0f7e: 80 setc +0f7f: a4 63 sbc a,$63 +0f81: f8 68 mov x,$68 +0f83: 3f 42 10 call $1042 +0f86: da 66 movw $66,ya +0f88: 6f ret + +; vcmd f6 - disable echo +0f89: da 60 movw $60,ya +0f8b: da 62 movw $62,ya +0f8d: a2 48 set5 $48 +0f8f: 6f ret + +; vcmd f7 - set echo params +0f90: 3f b2 0f call $0fb2 +0f93: 3f f0 0d call $0df0 +0f96: c4 4e mov $4e,a +0f98: 3f f0 0d call $0df0 +0f9b: 8d 08 mov y,#$08 +0f9d: cf mul ya +0f9e: 5d mov x,a +0f9f: 8d 0f mov y,#$0f +0fa1: f5 52 1e mov a,$1e52+x +0fa4: 3f 2e 0c call $0c2e +0fa7: 3d inc x +0fa8: dd mov a,y +0fa9: 60 clrc +0faa: 88 10 adc a,#$10 +0fac: fd mov y,a +0fad: 10 f2 bpl $0fa1 +0faf: f8 44 mov x,$44 +0fb1: 6f ret + +0fb2: c4 4d mov $4d,a +0fb4: 8d 7d mov y,#$7d +0fb6: cc f2 00 mov $00f2,y +0fb9: e5 f3 00 mov a,$00f3 +0fbc: 64 4d cmp a,$4d +0fbe: f0 2b beq $0feb +0fc0: 28 0f and a,#$0f +0fc2: 48 ff eor a,#$ff +0fc4: f3 4c 03 bbc7 $4c,$0fca +0fc7: 60 clrc +0fc8: 84 4c adc a,$4c +0fca: c4 4c mov $4c,a +0fcc: 8d 04 mov y,#$04 +0fce: f6 71 1e mov a,$1e71+y +0fd1: c5 f2 00 mov $00f2,a +0fd4: e8 00 mov a,#$00 +0fd6: c5 f3 00 mov $00f3,a +0fd9: fe f3 dbnz y,$0fce +0fdb: e4 48 mov a,$48 +0fdd: 08 20 or a,#$20 +0fdf: 8d 6c mov y,#$6c +0fe1: 3f 2e 0c call $0c2e +0fe4: e4 4d mov a,$4d +0fe6: 8d 7d mov y,#$7d +0fe8: 3f 2e 0c call $0c2e +0feb: 1c asl a +0fec: 1c asl a +0fed: 1c asl a +0fee: 48 ff eor a,#$ff +0ff0: 80 setc +0ff1: 88 ff adc a,#$ff +0ff3: 8d 6d mov y,#$6d +0ff5: 5f 2e 0c jmp $0c2e + +; vcmd fa - set perc patch base +0ff8: c4 5f mov $5f,a +0ffa: 6f ret + +; vcmd fe - skip 2 bytes +0ffb: 3f f2 0d call $0df2 +0ffe: 6f ret + +0fff: f4 a0 mov a,$a0+x +1001: d0 33 bne $1036 +1003: e7 30 mov a,($30+x) +1005: 68 f9 cmp a,#$f9 +1007: d0 2d bne $1036 +1009: 3f f2 0d call $0df2 +100c: 3f f0 0d call $0df0 +; vcmd f9 - pitch slide +100f: d4 a1 mov $a1+x,a +1011: 3f f0 0d call $0df0 +1014: d4 a0 mov $a0+x,a +1016: 3f f0 0d call $0df0 +1019: 60 clrc +101a: 84 50 adc a,$50 +101c: 95 e1 02 adc a,$02e1+x +101f: 28 7f and a,#$7f +1021: d5 80 03 mov $0380+x,a +1024: 80 setc +1025: b5 61 03 sbc a,$0361+x +1028: fb a0 mov y,$a0+x +102a: 6d push y +102b: ce pop x +102c: 3f 42 10 call $1042 +102f: d5 70 03 mov $0370+x,a +1032: dd mov a,y +1033: d5 71 03 mov $0371+x,a +1036: 6f ret + +1037: f5 61 03 mov a,$0361+x +103a: c4 11 mov $11,a +103c: f5 60 03 mov a,$0360+x +103f: c4 10 mov $10,a +1041: 6f ret + +1042: ed notc +1043: 6b 12 ror $12 +1045: 10 03 bpl $104a +1047: 48 ff eor a,#$ff +1049: bc inc a +104a: 8d 00 mov y,#$00 +104c: 9e div ya,x +104d: 2d push a +104e: e8 00 mov a,#$00 +1050: 9e div ya,x +1051: ee pop y +1052: f8 44 mov x,$44 +1054: f3 12 06 bbc7 $12,$105d +1057: da 14 movw $14,ya +1059: ba 0e movw ya,$0e +105b: 9a 14 subw ya,$14 +105d: 6f ret + +; vcmd dispatch table (music) +105e: dw $0dfa ; e0 - set instrument +1060: dw $0e53 ; e1 - pan +1062: dw $0e61 ; e2 - pan fade +1064: dw $0e7a ; e3 - vibrato on +1066: dw $0e86 ; e4 - vibrato off +1068: dw $0ea1 ; e5 - master volume +106a: dw $0ea6 ; e6 - master volume fade +106c: dw $0eb8 ; e7 - tempo +106e: dw $0ebd ; e8 - tempo fade +1070: dw $0ecf ; e9 - global transpose +1072: dw $0ed2 ; ea - per-voice transpose +1074: dw $0ed6 ; eb - tremolo on +1076: dw $0ee2 ; ec - tremolo off +1078: dw $0f03 ; ed - volume +107a: dw $0f0c ; ee - volume fade +107c: dw $0f29 ; ef - call subroutine +107e: dw $0e91 ; f0 - vibrato fade +1080: dw $0ee5 ; f1 - pitch envelope (release) +1082: dw $0ee9 ; f2 - pitch envelope (attack) +1084: dw $0eff ; f3 - pitch envelope off +1086: dw $0f25 ; f4 - tuning +1088: dw $0f4d ; f5 - echo vbits/volume +108a: dw $0f89 ; f6 - disable echo +108c: dw $0f90 ; f7 - set echo params +108e: dw $0f68 ; f8 - echo volume fade +1090: dw $100f ; f9 - pitch slide +1092: dw $0ff8 ; fa - set perc patch base +1094: dw $1354 ; fb - echo on +1096: dw $1368 ; fc - echo off +1098: dw $133c ; fd - set ASDR +109a: dw $0ffb ; fe - skip 2 bytes + +; vcmd lengths (music) +109c: db $01,$01,$02,$03,$00,$01,$02,$01 ; e0-e7 +10a4: db $02,$01,$01,$03,$00,$01,$02,$03 ; e8-ef +10ac: db $01,$03,$03,$00,$01,$03,$00,$03 ; f0-f7 +10b4: db $03,$03,$01,$00,$00,$02,$02 ; f8-fe + +10bb: f4 90 mov a,$90+x +10bd: f0 24 beq $10e3 +10bf: 09 47 5e or ($5e),($47) +10c2: 9b 90 dec $90+x +10c4: d0 0a bne $10d0 +10c6: e8 00 mov a,#$00 +10c8: d5 90 03 mov $0390+x,a +10cb: f5 20 03 mov a,$0320+x +10ce: 2f 10 bra $10e0 +10d0: 60 clrc +10d1: f5 90 03 mov a,$0390+x +10d4: 95 10 03 adc a,$0310+x +10d7: d5 90 03 mov $0390+x,a +10da: f5 91 03 mov a,$0391+x +10dd: 95 11 03 adc a,$0311+x +10e0: d5 91 03 mov $0391+x,a +10e3: fb c1 mov y,$c1+x +10e5: f0 23 beq $110a +10e7: f5 e0 02 mov a,$02e0+x +10ea: de c0 1b cbne $c0+x,$1108 +10ed: 09 47 5e or ($5e),($47) +10f0: f5 d0 02 mov a,$02d0+x +10f3: 10 07 bpl $10fc +10f5: fc inc y +10f6: d0 04 bne $10fc +10f8: e8 80 mov a,#$80 +10fa: 2f 04 bra $1100 +10fc: 60 clrc +10fd: 95 d1 02 adc a,$02d1+x +1100: d5 d0 02 mov $02d0+x,a +1103: 3f 1f 13 call $131f +1106: 2f 07 bra $110f +1108: bb c0 inc $c0+x +110a: e8 ff mov a,#$ff +110c: 3f 2a 13 call $132a +110f: f4 91 mov a,$91+x +1111: f0 24 beq $1137 +1113: 09 47 5e or ($5e),($47) +1116: 9b 91 dec $91+x +1118: d0 0a bne $1124 +111a: e8 00 mov a,#$00 +111c: d5 30 03 mov $0330+x,a +111f: f5 50 03 mov a,$0350+x +1122: 2f 10 bra $1134 +1124: 60 clrc +1125: f5 30 03 mov a,$0330+x +1128: 95 40 03 adc a,$0340+x +112b: d5 30 03 mov $0330+x,a +112e: f5 31 03 mov a,$0331+x +1131: 95 41 03 adc a,$0341+x +1134: d5 31 03 mov $0331+x,a +1137: e4 47 mov a,$47 +1139: 24 5e and a,$5e +113b: f0 5c beq $1199 +113d: f5 31 03 mov a,$0331+x +1140: fd mov y,a +1141: f5 30 03 mov a,$0330+x +1144: da 10 movw $10,ya +1146: 7d mov a,x +1147: 9f xcn a +1148: 5c lsr a +1149: c4 12 mov $12,a +114b: eb 11 mov y,$11 +114d: e5 b8 03 mov a,$03b8 +1150: f0 11 beq $1163 +1152: e8 51 mov a,#$51 +1154: 80 setc +1155: a8 51 sbc a,#$51 +1157: eb 10 mov y,$10 +1159: cf mul ya +115a: dd mov a,y +115b: eb 11 mov y,$11 +115d: 60 clrc +115e: 88 51 adc a,#$51 +1160: fd mov y,a +1161: 2f 12 bra $1175 +1163: f6 3e 1e mov a,$1e3e+y +1166: 80 setc +1167: b6 3d 1e sbc a,$1e3d+y +116a: eb 10 mov y,$10 +116c: cf mul ya +116d: dd mov a,y +116e: eb 11 mov y,$11 +1170: 60 clrc +1171: 96 3d 1e adc a,$1e3d+y +1174: fd mov y,a +1175: f5 21 03 mov a,$0321+x +1178: cf mul ya +1179: f5 51 03 mov a,$0351+x +117c: 1c asl a +117d: 13 12 01 bbc0 $12,$1181 +1180: 1c asl a +1181: dd mov a,y +1182: 90 03 bcc $1187 +1184: 48 ff eor a,#$ff +1186: bc inc a +1187: eb 12 mov y,$12 +1189: 3f 26 0c call $0c26 +118c: 8d 14 mov y,#$14 +118e: e8 00 mov a,#$00 +1190: 9a 10 subw ya,$10 +1192: da 10 movw $10,ya +1194: ab 12 inc $12 +1196: 33 12 b2 bbc1 $12,$114b +1199: 6f ret + +119a: f5 51 02 mov a,$0251+x +119d: f0 71 beq $1210 +119f: 9c dec a +11a0: d5 51 02 mov $0251+x,a +11a3: f0 07 beq $11ac +11a5: e8 02 mov a,#$02 +11a7: 75 50 02 cmp a,$0250+x +11aa: d0 64 bne $1210 +11ac: f5 60 02 mov a,$0260+x +11af: c4 17 mov $17,a +11b1: f4 30 mov a,$30+x +11b3: fb 31 mov y,$31+x +11b5: da 14 movw $14,ya +11b7: 8d 00 mov y,#$00 +11b9: f7 14 mov a,($14)+y +11bb: f0 1e beq $11db +11bd: 30 07 bmi $11c6 +11bf: fc inc y +11c0: 30 40 bmi $1202 +11c2: f7 14 mov a,($14)+y +11c4: 10 f9 bpl $11bf +11c6: 68 c8 cmp a,#$c8 +11c8: f0 46 beq $1210 +11ca: 68 ef cmp a,#$ef +11cc: f0 29 beq $11f7 +11ce: 68 e0 cmp a,#$e0 +11d0: 90 30 bcc $1202 +11d2: 6d push y +11d3: fd mov y,a +11d4: ae pop a +11d5: 96 bc 0f adc a,$0fbc+y +11d8: fd mov y,a +11d9: 2f de bra $11b9 +11db: e4 17 mov a,$17 +11dd: f0 23 beq $1202 +11df: 8b 17 dec $17 +11e1: d0 0a bne $11ed +11e3: f5 31 02 mov a,$0231+x +11e6: 2d push a +11e7: f5 30 02 mov a,$0230+x +11ea: ee pop y +11eb: 2f c8 bra $11b5 +11ed: f5 41 02 mov a,$0241+x +11f0: 2d push a +11f1: f5 40 02 mov a,$0240+x +11f4: ee pop y +11f5: 2f be bra $11b5 +11f7: fc inc y +11f8: f7 14 mov a,($14)+y +11fa: 2d push a +11fb: fc inc y +11fc: f7 14 mov a,($14)+y +11fe: fd mov y,a +11ff: ae pop a +1200: 2f b3 bra $11b5 +1202: e4 47 mov a,$47 +1204: 24 1a and a,$1a +1206: d0 08 bne $1210 +1208: e4 47 mov a,$47 +120a: 05 d3 03 or a,$03d3 +120d: c5 d3 03 mov $03d3,a +1210: f2 13 clr7 $13 +1212: f4 a0 mov a,$a0+x +1214: f0 2c beq $1242 +1216: f4 a1 mov a,$a1+x +1218: f0 04 beq $121e +121a: 9b a1 dec $a1+x +121c: 2f 24 bra $1242 +121e: e2 13 set7 $13 +1220: 9b a0 dec $a0+x +1222: d0 0b bne $122f +1224: f5 81 03 mov a,$0381+x +1227: d5 60 03 mov $0360+x,a +122a: f5 80 03 mov a,$0380+x +122d: 2f 10 bra $123f +122f: 60 clrc +1230: f5 60 03 mov a,$0360+x +1233: 95 70 03 adc a,$0370+x +1236: d5 60 03 mov $0360+x,a +1239: f5 61 03 mov a,$0361+x +123c: 95 71 03 adc a,$0371+x +123f: d5 61 03 mov $0361+x,a +1242: 3f 37 10 call $1037 +1245: f4 b1 mov a,$b1+x +1247: f0 4c beq $1295 +1249: f5 b0 02 mov a,$02b0+x +124c: de b0 44 cbne $b0+x,$1293 +124f: f5 00 01 mov a,$0100+x +1252: 75 b1 02 cmp a,$02b1+x +1255: d0 05 bne $125c +1257: f5 c1 02 mov a,$02c1+x +125a: 2f 0d bra $1269 +125c: 40 setp +125d: bb 00 inc $00+x +125f: 20 clrp +1260: fd mov y,a +1261: f0 02 beq $1265 +1263: f4 b1 mov a,$b1+x +1265: 60 clrc +1266: 95 c0 02 adc a,$02c0+x +1269: d4 b1 mov $b1+x,a +126b: f5 a0 02 mov a,$02a0+x +126e: 60 clrc +126f: 95 a1 02 adc a,$02a1+x +1272: d5 a0 02 mov $02a0+x,a +1275: c4 12 mov $12,a +1277: 1c asl a +1278: 1c asl a +1279: 90 02 bcc $127d +127b: 48 ff eor a,#$ff +127d: fd mov y,a +127e: f4 b1 mov a,$b1+x +1280: 68 f1 cmp a,#$f1 +1282: 90 05 bcc $1289 +1284: 28 0f and a,#$0f +1286: cf mul ya +1287: 2f 04 bra $128d +1289: cf mul ya +128a: dd mov a,y +128b: 8d 00 mov y,#$00 +128d: 3f 0a 13 call $130a +1290: 5f a3 0b jmp $0ba3 + +1293: bb b0 inc $b0+x +1295: e3 13 f8 bbs7 $13,$1290 +1298: 6f ret + +1299: f2 13 clr7 $13 +129b: f4 c1 mov a,$c1+x +129d: f0 09 beq $12a8 +129f: f5 e0 02 mov a,$02e0+x +12a2: de c0 03 cbne $c0+x,$12a8 +12a5: 3f 12 13 call $1312 +12a8: f5 31 03 mov a,$0331+x +12ab: fd mov y,a +12ac: f5 30 03 mov a,$0330+x +12af: da 10 movw $10,ya +12b1: f4 91 mov a,$91+x +12b3: f0 0a beq $12bf +12b5: f5 41 03 mov a,$0341+x +12b8: fd mov y,a +12b9: f5 40 03 mov a,$0340+x +12bc: 3f f4 12 call $12f4 +12bf: f3 13 03 bbc7 $13,$12c5 +12c2: 3f 46 11 call $1146 +12c5: f2 13 clr7 $13 +12c7: 3f 37 10 call $1037 +12ca: f4 a0 mov a,$a0+x +12cc: f0 0e beq $12dc +12ce: f4 a1 mov a,$a1+x +12d0: d0 0a bne $12dc +12d2: f5 71 03 mov a,$0371+x +12d5: fd mov y,a +12d6: f5 70 03 mov a,$0370+x +12d9: 3f f4 12 call $12f4 +12dc: f4 b1 mov a,$b1+x +12de: f0 b5 beq $1295 +12e0: f5 b0 02 mov a,$02b0+x +12e3: de b0 af cbne $b0+x,$1295 +12e6: eb 51 mov y,$51 +12e8: f5 a1 02 mov a,$02a1+x +12eb: cf mul ya +12ec: dd mov a,y +12ed: 60 clrc +12ee: 95 a0 02 adc a,$02a0+x +12f1: 5f 75 12 jmp $1275 + +12f4: e2 13 set7 $13 +12f6: cb 12 mov $12,y +12f8: 3f 54 10 call $1054 +12fb: 6d push y +12fc: eb 51 mov y,$51 +12fe: cf mul ya +12ff: cb 14 mov $14,y +1301: 8f 00 15 mov $15,#$00 +1304: eb 51 mov y,$51 +1306: ae pop a +1307: cf mul ya +1308: 7a 14 addw ya,$14 +130a: 3f 54 10 call $1054 +130d: 7a 10 addw ya,$10 +130f: da 10 movw $10,ya +1311: 6f ret + +1312: e2 13 set7 $13 +1314: eb 51 mov y,$51 +1316: f5 d1 02 mov a,$02d1+x +1319: cf mul ya +131a: dd mov a,y +131b: 60 clrc +131c: 95 d0 02 adc a,$02d0+x +131f: 1c asl a +1320: 90 02 bcc $1324 +1322: 48 ff eor a,#$ff +1324: fb c1 mov y,$c1+x +1326: cf mul ya +1327: dd mov a,y +1328: 48 ff eor a,#$ff +132a: eb 59 mov y,$59 +132c: cf mul ya +132d: f5 10 02 mov a,$0210+x +1330: cf mul ya +1331: f5 91 03 mov a,$0391+x +1334: cf mul ya +1335: dd mov a,y +1336: cf mul ya +1337: dd mov a,y +1338: d5 21 03 mov $0321+x,a +133b: 6f ret + +; vcmd fd - set ASDR +133c: 7d mov a,x +133d: 9f xcn a +133e: 5c lsr a +133f: 08 05 or a,#$05 +1341: c4 14 mov $14,a +1343: dd mov a,y +1344: eb 14 mov y,$14 +1346: 3f 26 0c call $0c26 +1349: 3f f0 0d call $0df0 +134c: ab 14 inc $14 +134e: eb 14 mov y,$14 +1350: 3f 26 0c call $0c26 +1353: 6f ret + +; vcmd fb - echo on +1354: e5 bc 03 mov a,$03bc +1357: 04 47 or a,$47 +1359: c5 bc 03 mov $03bc,a +135c: e4 47 mov a,$47 +135e: 48 ff eor a,#$ff +1360: 25 be 03 and a,$03be +1363: c5 be 03 mov $03be,a +1366: 2f 12 bra $137a +; vcmd fc - echo off +1368: e5 be 03 mov a,$03be +136b: 04 47 or a,$47 +136d: c5 be 03 mov $03be,a +1370: e4 47 mov a,$47 +1372: 48 ff eor a,#$ff +1374: 25 bc 03 and a,$03bc +1377: c5 bc 03 mov $03bc,a +137a: e5 bc 03 mov a,$03bc +137d: c5 d0 03 mov $03d0,a +1380: e5 be 03 mov a,$03be +1383: 48 ff eor a,#$ff +1385: 25 d0 03 and a,$03d0 +1388: 05 bd 03 or a,$03bd +138b: c5 d0 03 mov $03d0,a +138e: e5 bf 03 mov a,$03bf +1391: 48 ff eor a,#$ff +1393: 25 d0 03 and a,$03d0 +1396: c4 4a mov $4a,a +1398: 6f ret + +; handle a note vcmd (80-df) (sfx) +1399: ad ca cmp y,#$ca +139b: 90 05 bcc $13a2 +139d: 3f c4 16 call $16c4 +13a0: 8d a4 mov y,#$a4 +13a2: ad c8 cmp y,#$c8 +13a4: b0 f2 bcs $1398 +13a6: dd mov a,y +13a7: 28 7f and a,#$7f +13a9: 60 clrc +13aa: 85 03 04 adc a,$0403 +13ad: 60 clrc +13ae: 95 91 05 adc a,$0591+x +13b1: d5 f1 04 mov $04f1+x,a +13b4: f5 11 05 mov a,$0511+x +13b7: d5 f0 04 mov $04f0+x,a +13ba: f5 51 05 mov a,$0551+x +13bd: 5c lsr a +13be: e8 00 mov a,#$00 +13c0: 7c ror a +13c1: d5 40 05 mov $0540+x,a +13c4: e8 00 mov a,#$00 +13c6: d5 d0 00 mov $00d0+x,a +13c9: d5 60 05 mov $0560+x,a +13cc: d5 80 05 mov $0580+x,a +13cf: d4 e0 mov $e0+x,a +13d1: 09 47 5e or ($5e),($47) +13d4: e5 d2 03 mov a,$03d2 +13d7: 04 47 or a,$47 +13d9: c5 d2 03 mov $03d2,a +13dc: f5 20 05 mov a,$0520+x +13df: d4 80 mov $80+x,a +13e1: f0 1e beq $1401 +13e3: f5 21 05 mov a,$0521+x +13e6: d4 81 mov $81+x,a +13e8: f5 30 05 mov a,$0530+x +13eb: d0 0a bne $13f7 +13ed: f5 f1 04 mov a,$04f1+x +13f0: 80 setc +13f1: b5 31 05 sbc a,$0531+x +13f4: d5 f1 04 mov $04f1+x,a +13f7: f5 31 05 mov a,$0531+x +13fa: 60 clrc +13fb: 95 f1 04 adc a,$04f1+x +13fe: 3f cd 18 call $18cd +1401: 3f e5 18 call $18e5 +1404: 8d 00 mov y,#$00 +1406: e4 11 mov a,$11 +1408: 80 setc +1409: a8 34 sbc a,#$34 +140b: b0 09 bcs $1416 +140d: e4 11 mov a,$11 +140f: 80 setc +1410: a8 13 sbc a,#$13 +1412: b0 06 bcs $141a +1414: dc dec y +1415: 1c asl a +1416: 7a 10 addw ya,$10 +1418: da 10 movw $10,ya +141a: 4d push x +141b: e4 11 mov a,$11 +141d: 1c asl a +141e: 8d 00 mov y,#$00 +1420: cd 18 mov x,#$18 +1422: 9e div ya,x +1423: 5d mov x,a +1424: f6 87 1e mov a,$1e87+y +1427: c4 15 mov $15,a +1429: f6 86 1e mov a,$1e86+y +142c: c4 14 mov $14,a +142e: f6 89 1e mov a,$1e89+y +1431: 2d push a +1432: f6 88 1e mov a,$1e88+y +1435: ee pop y +1436: 9a 14 subw ya,$14 +1438: eb 10 mov y,$10 +143a: cf mul ya +143b: dd mov a,y +143c: 8d 00 mov y,#$00 +143e: 7a 14 addw ya,$14 +1440: cb 15 mov $15,y +1442: 1c asl a +1443: 2b 15 rol $15 +1445: c4 14 mov $14,a +1447: 2f 04 bra $144d +1449: 4b 15 lsr $15 +144b: 7c ror a +144c: 3d inc x +144d: c8 06 cmp x,#$06 +144f: d0 f8 bne $1449 +1451: c4 14 mov $14,a +1453: ce pop x +1454: f5 50 04 mov a,$0450+x +1457: eb 15 mov y,$15 +1459: cf mul ya +145a: da 16 movw $16,ya +145c: f5 50 04 mov a,$0450+x +145f: eb 14 mov y,$14 +1461: cf mul ya +1462: 6d push y +1463: f5 51 04 mov a,$0451+x +1466: eb 14 mov y,$14 +1468: cf mul ya +1469: 7a 16 addw ya,$16 +146b: da 16 movw $16,ya +146d: f5 51 04 mov a,$0451+x +1470: eb 15 mov y,$15 +1472: cf mul ya +1473: fd mov y,a +1474: ae pop a +1475: 7a 16 addw ya,$16 +1477: da 16 movw $16,ya +1479: 7d mov a,x +147a: 9f xcn a +147b: 5c lsr a +147c: 08 02 or a,#$02 +147e: fd mov y,a +147f: e4 16 mov a,$16 +1481: 3f 87 14 call $1487 +1484: fc inc y +1485: e4 17 mov a,$17 +1487: cc f2 00 mov $00f2,y +148a: c5 f3 00 mov $00f3,a +148d: 6f ret + +; read $1c/1 into YA with advancing the ptr +148e: 8d 00 mov y,#$00 +1490: f7 1c mov a,($1c)+y +1492: 3a 1c incw $1c +1494: 2d push a +1495: f7 1c mov a,($1c)+y +1497: 3a 1c incw $1c +1499: fd mov y,a +149a: ae pop a +149b: 6f ret + +; play sound effect in A +149c: c4 05 mov $05,a +149e: 1c asl a +149f: 5d mov x,a +14a0: f5 ff bf mov a,$bfff+x +14a3: fd mov y,a +14a4: f5 fe bf mov a,$bffe+x +14a7: da 1c movw $1c,ya +14a9: 8f 02 1e mov $1e,#$02 +14ac: 2f 02 bra $14b0 +14ae: c4 05 mov $05,a +14b0: e4 1b mov a,$1b +14b2: 0e 46 00 tset1 $0046 +14b5: e8 a5 mov a,#$a5 +14b7: c5 07 04 mov $0407,a +14ba: 6f ret + +14bb: e4 1b mov a,$1b +14bd: 0e 46 00 tset1 $0046 +14c0: e8 00 mov a,#$00 +14c2: c5 07 04 mov $0407,a +14c5: cd 00 mov x,#$00 +14c7: 8f 01 47 mov $47,#$01 +14ca: e4 47 mov a,$47 +14cc: 24 1b and a,$1b +14ce: f0 14 beq $14e4 +14d0: e4 47 mov a,$47 +14d2: 48 ff eor a,#$ff +14d4: 24 1a and a,$1a +14d6: c4 1a mov $1a,a +14d8: f5 11 02 mov a,$0211+x +14db: 3f fd 0d call $0dfd +14de: e8 00 mov a,#$00 +14e0: d4 20 mov $20+x,a +14e2: d4 21 mov $21+x,a +14e4: 3d inc x +14e5: 3d inc x +14e6: 0b 47 asl $47 +14e8: d0 e0 bne $14ca +14ea: e8 00 mov a,#$00 +14ec: c4 1b mov $1b,a +14ee: 6f ret + +14ef: 8f 00 1b mov $1b,#$00 +14f2: cd 00 mov x,#$00 +14f4: 8f 01 47 mov $47,#$01 +14f7: e4 47 mov a,$47 +14f9: 24 6d and a,$6d +14fb: d0 15 bne $1512 +14fd: f5 d1 05 mov a,$05d1+x +1500: d4 21 mov $21+x,a +1502: f5 d0 05 mov a,$05d0+x +1505: d4 20 mov $20+x,a +1507: f5 d1 05 mov a,$05d1+x +150a: f0 06 beq $1512 +150c: 09 47 1a or ($1a),($47) +150f: 09 47 1b or ($1b),($47) +1512: 3d inc x +1513: 3d inc x +1514: 0b 47 asl $47 +1516: d0 df bne $14f7 +1518: e4 1b mov a,$1b +151a: 0e 46 00 tset1 $0046 +151d: e8 00 mov a,#$00 +151f: c5 07 04 mov $0407,a +1522: 6f ret + +1523: 3f 8e 14 call $148e +1526: 1a 1c decw $1c +1528: 1a 1c decw $1c +152a: da 16 movw $16,ya +152c: 8d 0f mov y,#$0f +152e: f7 16 mov a,($16)+y +1530: d6 d0 05 mov $05d0+y,a +1533: dc dec y +1534: 10 f8 bpl $152e +1536: 3f ef 14 call $14ef +1539: cd 0e mov x,#$0e +153b: 8f 80 47 mov $47,#$80 +153e: e4 47 mov a,$47 +1540: 24 6d and a,$6d +1542: d0 1f bne $1563 +1544: e8 ff mov a,#$ff +1546: d5 91 04 mov $0491+x,a +1549: e5 06 04 mov a,$0406 +154c: 3f 18 17 call $1718 +154f: e8 00 mov a,#$00 +1551: d5 c1 05 mov $05c1+x,a +1554: d5 11 05 mov $0511+x,a +1557: d5 20 05 mov $0520+x,a +155a: d4 d1 mov $d1+x,a +155c: d4 e1 mov $e1+x,a +155e: c4 70 mov $70,a +1560: d5 91 05 mov $0591+x,a +1563: 1d dec x +1564: 1d dec x +1565: 4b 47 lsr $47 +1567: d0 d5 bne $153e +1569: c5 03 04 mov $0403,a +156c: c5 e0 05 mov $05e0,a +156f: c5 10 04 mov $0410,a +1572: 6f ret + +1573: e5 07 04 mov a,$0407 +1576: f0 03 beq $157b +1578: 5f c0 14 jmp $14c0 + +157b: eb 09 mov y,$09 +157d: e4 01 mov a,$01 +157f: c4 09 mov $09,a +1581: 7e 01 cmp y,$01 +1583: f0 03 beq $1588 +1585: 5f 9c 14 jmp $149c + +1588: e4 05 mov a,$05 +158a: f0 e6 beq $1572 +158c: e4 1e mov a,$1e +158e: d0 03 bne $1593 +1590: 5f ef 15 jmp $15ef + +1593: 6e 1e 8d dbnz $1e,$1523 +1596: 3f 8e 14 call $148e +1599: d0 1a bne $15b5 +159b: fd mov y,a +159c: d0 03 bne $15a1 +159e: 5f ae 14 jmp $14ae + +15a1: 8c 02 04 dec $0402 +15a4: 10 03 bpl $15a9 +15a6: c5 02 04 mov $0402,a +15a9: 3f 8e 14 call $148e +15ac: e9 02 04 mov x,$0402 +15af: f0 e5 beq $1596 +15b1: da 1c movw $1c,ya +15b3: 2f e1 bra $1596 +15b5: da 16 movw $16,ya +15b7: 8d 0f mov y,#$0f +15b9: f7 16 mov a,($16)+y +15bb: d6 d0 05 mov $05d0+y,a +15be: dc dec y +15bf: 10 f8 bpl $15b9 +15c1: 3f bb 14 call $14bb +15c4: 3f ef 14 call $14ef +15c7: cd 00 mov x,#$00 +15c9: 8f 01 47 mov $47,#$01 +15cc: e4 47 mov a,$47 +15ce: 24 6d and a,$6d +15d0: d0 17 bne $15e9 +15d2: f4 21 mov a,$21+x +15d4: f0 06 beq $15dc +15d6: f5 c1 05 mov a,$05c1+x +15d9: 3f c4 16 call $16c4 +15dc: e8 00 mov a,#$00 +15de: d5 80 04 mov $0480+x,a +15e1: d4 70 mov $70+x,a +15e3: d4 71 mov $71+x,a +15e5: bc inc a +15e6: d5 20 04 mov $0420+x,a +15e9: 3d inc x +15ea: 3d inc x +15eb: 0b 47 asl $47 +15ed: d0 dd bne $15cc +15ef: cd 00 mov x,#$00 +15f1: e4 1b mov a,$1b +15f3: 24 5e and a,$5e +15f5: c4 5e mov $5e,a +15f7: 8f 01 47 mov $47,#$01 +15fa: c9 01 04 mov $0401,x +15fd: d8 44 mov $44,x +15ff: e4 47 mov a,$47 +1601: 24 1b and a,$1b +1603: d0 03 bne $1608 +1605: 5f 83 16 jmp $1683 + +1608: f4 21 mov a,$21+x +160a: f0 77 beq $1683 +160c: ac 01 04 inc $0401 +160f: f5 20 04 mov a,$0420+x +1612: 9c dec a +1613: d5 20 04 mov $0420+x,a +1616: d0 65 bne $167d +1618: 3f ba 16 call $16ba +161b: d0 20 bne $163d +161d: f5 80 04 mov a,$0480+x +1620: d0 03 bne $1625 +1622: 5f 96 15 jmp $1596 + +1625: 3f ee 17 call $17ee +1628: f5 80 04 mov a,$0480+x +162b: 9c dec a +162c: d5 80 04 mov $0480+x,a +162f: d0 e7 bne $1618 +1631: f5 60 04 mov a,$0460+x +1634: d4 20 mov $20+x,a +1636: f5 61 04 mov a,$0461+x +1639: d4 21 mov $21+x,a +163b: 2f db bra $1618 +163d: 30 20 bmi $165f +163f: d5 30 04 mov $0430+x,a +1642: 3f ba 16 call $16ba +1645: 30 18 bmi $165f +1647: 2d push a +1648: 9f xcn a +1649: 28 07 and a,#$07 +164b: fd mov y,a +164c: f6 18 a0 mov a,$a018+y +164f: d5 31 04 mov $0431+x,a +1652: ae pop a +1653: 28 0f and a,#$0f +1655: fd mov y,a +1656: f6 20 a0 mov a,$a020+y +1659: d5 c0 05 mov $05c0+x,a +165c: 3f ba 16 call $16ba +165f: 68 e0 cmp a,#$e0 +1661: 90 05 bcc $1668 +1663: 3f a8 16 call $16a8 +1666: 2f b0 bra $1618 +1668: 3f 99 13 call $1399 +166b: f5 30 04 mov a,$0430+x +166e: d5 20 04 mov $0420+x,a +1671: fd mov y,a +1672: f5 31 04 mov a,$0431+x +1675: cf mul ya +1676: dd mov a,y +1677: bc inc a +1678: d5 21 04 mov $0421+x,a +167b: 2f 03 bra $1680 +167d: 3f 48 1a call $1a48 +1680: 3f ac 18 call $18ac +1683: 3d inc x +1684: 3d inc x +1685: 0b 47 asl $47 +1687: f0 03 beq $168c +1689: 5f fd 15 jmp $15fd + +168c: e5 01 04 mov a,$0401 +168f: d0 03 bne $1694 +1691: 5f ae 14 jmp $14ae + +1694: 6f ret + +1695: cd 00 mov x,#$00 +1697: 8f 01 47 mov $47,#$01 +169a: f4 21 mov a,$21+x +169c: f0 03 beq $16a1 +169e: 3f 69 19 call $1969 +16a1: 3d inc x +16a2: 3d inc x +16a3: 0b 47 asl $47 +16a5: d0 f3 bne $169a +16a7: 6f ret + +16a8: 1c asl a +16a9: fd mov y,a +16aa: f6 4d 18 mov a,$184d+y +16ad: 2d push a +16ae: f6 4c 18 mov a,$184c+y +16b1: 2d push a +16b2: dd mov a,y +16b3: 5c lsr a +16b4: fd mov y,a +16b5: f6 ea 18 mov a,$18ea+y +16b8: f0 08 beq $16c2 +16ba: e7 20 mov a,($20+x) +16bc: bb 20 inc $20+x +16be: d0 02 bne $16c2 +16c0: bb 21 inc $21+x +16c2: fd mov y,a +16c3: 6f ret + +; vcmd e0 - set instrument +16c4: d5 c1 05 mov $05c1+x,a +16c7: fd mov y,a +16c8: 10 07 bpl $16d1 +16ca: 80 setc +16cb: a8 ca sbc a,#$ca +16cd: 60 clrc +16ce: 85 10 04 adc a,$0410 +16d1: 8d 06 mov y,#$06 +16d3: cf mul ya +16d4: da 14 movw $14,ya +16d6: 60 clrc +16d7: 98 00 14 adc $14,#$00 +16da: 98 1f 15 adc $15,#$1f +16dd: 4d push x +16de: 7d mov a,x +16df: 9f xcn a +16e0: 5c lsr a +16e1: 08 04 or a,#$04 +16e3: 5d mov x,a +16e4: 8d 00 mov y,#$00 +16e6: f7 14 mov a,($14)+y +16e8: 10 0e bpl $16f8 +16ea: 28 1f and a,#$1f +16ec: 38 20 48 and $48,#$20 +16ef: 0e 48 00 tset1 $0048 +16f2: 09 47 49 or ($49),($47) +16f5: dd mov a,y +16f6: 2f 07 bra $16ff +16f8: e4 47 mov a,$47 +16fa: 4e 49 00 tclr1 $0049 +16fd: f7 14 mov a,($14)+y +16ff: c9 f2 00 mov $00f2,x +1702: c5 f3 00 mov $00f3,a +1705: 3d inc x +1706: fc inc y +1707: ad 04 cmp y,#$04 +1709: d0 f2 bne $16fd +170b: ce pop x +170c: f7 14 mov a,($14)+y +170e: d5 51 04 mov $0451+x,a +1711: fc inc y +1712: f7 14 mov a,($14)+y +1714: d5 50 04 mov $0450+x,a +1717: 6f ret + +; vcmd e1 - pan +1718: d5 e1 04 mov $04e1+x,a +171b: 28 1f and a,#$1f +171d: d5 c1 04 mov $04c1+x,a +1720: e8 00 mov a,#$00 +1722: d5 c0 04 mov $04c0+x,a +1725: 6f ret + +; vcmd e2 - pan fade +1726: d4 71 mov $71+x,a +1728: 2d push a +1729: 3f ba 16 call $16ba +172c: d5 e0 04 mov $04e0+x,a +172f: 80 setc +1730: b5 c1 04 sbc a,$04c1+x +1733: ce pop x +1734: 3f f0 18 call $18f0 +1737: d5 d0 04 mov $04d0+x,a +173a: dd mov a,y +173b: d5 d1 04 mov $04d1+x,a +173e: 6f ret + +; vcmd e3 - vibrato on +173f: d5 50 05 mov $0550+x,a +1742: 3f ba 16 call $16ba +1745: d5 41 05 mov $0541+x,a +1748: 3f ba 16 call $16ba +; vcmd e4 - vibrato off +174b: d4 d1 mov $d1+x,a +174d: d5 71 05 mov $0571+x,a +1750: e8 00 mov a,#$00 +1752: d5 51 05 mov $0551+x,a +1755: 6f ret + +; vcmd f0 - vibrato fade +1756: d5 51 05 mov $0551+x,a +1759: 2d push a +175a: 8d 00 mov y,#$00 +175c: f4 d1 mov a,$d1+x +175e: ce pop x +175f: 9e div ya,x +1760: f8 44 mov x,$44 +1762: d5 70 05 mov $0570+x,a +1765: 6f ret + +; vcmd e5 +1766: e8 00 mov a,#$00 +1768: da 58 movw $58,ya +176a: 6f ret + +; vcmd e6 +176b: 3f ba 16 call $16ba +176e: 6f ret + +; vcmd e7 - tempo +176f: e8 00 mov a,#$00 +1771: da 52 movw $52,ya +1773: 6f ret + +; vcmd e8 +1774: 3f ba 16 call $16ba +1777: 6f ret + +; vcmd e9 +1778: c5 03 04 mov $0403,a +177b: 6f ret + +; vcmd ea - per-voice transpose +177c: d5 91 05 mov $0591+x,a +177f: 6f ret + +; vcmd eb - tremolo on +1780: d5 90 05 mov $0590+x,a +1783: 3f ba 16 call $16ba +1786: d5 81 05 mov $0581+x,a +1789: 3f ba 16 call $16ba +; vcmd ec - tremolo off +178c: e8 00 mov a,#$00 +178e: d4 e1 mov $e1+x,a +1790: 6f ret + +; vcmd f1 - pitch envelope (release) +1791: e8 01 mov a,#$01 +1793: 2f 02 bra $1797 +; vcmd f2 - pitch envelope (attack) +1795: e8 00 mov a,#$00 +1797: d5 30 05 mov $0530+x,a +179a: dd mov a,y +179b: d5 21 05 mov $0521+x,a +179e: 3f ba 16 call $16ba +17a1: d5 20 05 mov $0520+x,a +17a4: 3f ba 16 call $16ba +17a7: d5 31 05 mov $0531+x,a +17aa: 6f ret + +; vcmd f3 - pitch envelope off +17ab: d5 20 05 mov $0520+x,a +17ae: 6f ret + +; vcmd ed - volume +17af: d5 91 04 mov $0491+x,a +17b2: e8 00 mov a,#$00 +17b4: d5 90 04 mov $0490+x,a +17b7: 6f ret + +; vcmd ee - volume fade +17b8: d4 70 mov $70+x,a +17ba: 2d push a +17bb: 3f ba 16 call $16ba +17be: d5 b0 04 mov $04b0+x,a +17c1: 80 setc +17c2: b5 91 04 sbc a,$0491+x +17c5: ce pop x +17c6: 3f f0 18 call $18f0 +17c9: d5 a0 04 mov $04a0+x,a +17cc: dd mov a,y +17cd: d5 a1 04 mov $04a1+x,a +17d0: 6f ret + +; vcmd f4 - tuning +17d1: d5 11 05 mov $0511+x,a +17d4: 6f ret + +; vcmd ef - call subroutine +17d5: d5 70 04 mov $0470+x,a +17d8: 3f ba 16 call $16ba +17db: d5 71 04 mov $0471+x,a +17de: 3f ba 16 call $16ba +17e1: d5 80 04 mov $0480+x,a +17e4: f4 20 mov a,$20+x +17e6: d5 60 04 mov $0460+x,a +17e9: f4 21 mov a,$21+x +17eb: d5 61 04 mov $0461+x,a +17ee: f5 70 04 mov a,$0470+x +17f1: d4 20 mov $20+x,a +17f3: f5 71 04 mov a,$0471+x +17f6: d4 21 mov $21+x,a +17f8: 6f ret + +; vcmd f5 - echo v-bits/volume +17f9: c4 4a mov $4a,a +17fb: c5 bd 03 mov $03bd,a +17fe: 48 ff eor a,#$ff +1800: c5 bf 03 mov $03bf,a +1803: 3f ba 16 call $16ba +1806: e8 00 mov a,#$00 +1808: da 60 movw $60,ya +180a: 3f ba 16 call $16ba +180d: e8 00 mov a,#$00 +180f: da 62 movw $62,ya +1811: b2 48 clr5 $48 +1813: 6f ret + +; vcmd f8 - echo volume fade +1814: c4 68 mov $68,a +1816: 3f ba 16 call $16ba +1819: c4 69 mov $69,a +181b: 80 setc +181c: a4 61 sbc a,$61 +181e: f8 68 mov x,$68 +1820: 3f f0 18 call $18f0 +1823: da 64 movw $64,ya +1825: 3f ba 16 call $16ba +1828: c4 6a mov $6a,a +182a: 80 setc +182b: a4 63 sbc a,$63 +182d: f8 68 mov x,$68 +182f: 3f f0 18 call $18f0 +1832: da 66 movw $66,ya +1834: 6f ret + +; vcmd f6 - disable echo +1835: da 60 movw $60,ya +1837: da 62 movw $62,ya +1839: a2 48 set5 $48 +183b: 6f ret + +; vcmd f7 - set echo params +183c: 3f 5e 18 call $185e +183f: 3f ba 16 call $16ba +1842: c4 4e mov $4e,a +1844: 3f ba 16 call $16ba +1847: 8d 08 mov y,#$08 +1849: cf mul ya +184a: 5d mov x,a +184b: 8d 0f mov y,#$0f +184d: f5 52 1e mov a,$1e52+x +1850: 3f 87 14 call $1487 +1853: 3d inc x +1854: dd mov a,y +1855: 60 clrc +1856: 88 10 adc a,#$10 +1858: fd mov y,a +1859: 10 f2 bpl $184d +185b: f8 44 mov x,$44 +185d: 6f ret + +185e: c4 4d mov $4d,a +1860: 8d 7d mov y,#$7d +1862: cc f2 00 mov $00f2,y +1865: e5 f3 00 mov a,$00f3 +1868: 64 4d cmp a,$4d +186a: f0 2b beq $1897 +186c: 28 0f and a,#$0f +186e: 48 ff eor a,#$ff +1870: f3 4c 03 bbc7 $4c,$1876 +1873: 60 clrc +1874: 84 4c adc a,$4c +1876: c4 4c mov $4c,a +1878: 8d 04 mov y,#$04 +187a: f6 71 1e mov a,$1e71+y +187d: c5 f2 00 mov $00f2,a +1880: e8 00 mov a,#$00 +1882: c5 f3 00 mov $00f3,a +1885: fe f3 dbnz y,$187a +1887: e4 48 mov a,$48 +1889: 08 20 or a,#$20 +188b: 8d 6c mov y,#$6c +188d: 3f 87 14 call $1487 +1890: e4 4d mov a,$4d +1892: 8d 7d mov y,#$7d +1894: 3f 87 14 call $1487 +1897: 1c asl a +1898: 1c asl a +1899: 1c asl a +189a: 48 ff eor a,#$ff +189c: 80 setc +189d: 88 ff adc a,#$ff +189f: 8d 6d mov y,#$6d +18a1: 5f 87 14 jmp $1487 + +; vcmd fa +18a4: c5 10 04 mov $0410,a +18a7: 6f ret + +18a8: 3f bc 16 call $16bc +18ab: 6f ret + +18ac: f4 80 mov a,$80+x +; vcmd fe +18ae: d0 34 bne $18e4 +18b0: e7 20 mov a,($20+x) +18b2: 68 f9 cmp a,#$f9 +18b4: d0 2e bne $18e4 +18b6: 3f bc 16 call $16bc +18b9: 3f ba 16 call $16ba +; vcmd f9 - pitch slide +18bc: d4 81 mov $81+x,a +18be: 3f ba 16 call $16ba +18c1: d4 80 mov $80+x,a +18c3: 3f ba 16 call $16ba +18c6: 60 clrc +18c7: 85 03 04 adc a,$0403 +18ca: 95 91 05 adc a,$0591+x +18cd: 28 7f and a,#$7f +18cf: d5 10 05 mov $0510+x,a +18d2: 80 setc +18d3: b5 f1 04 sbc a,$04f1+x +18d6: fb 80 mov y,$80+x +18d8: 6d push y +18d9: ce pop x +18da: 3f f0 18 call $18f0 +18dd: d5 00 05 mov $0500+x,a +18e0: dd mov a,y +18e1: d5 01 05 mov $0501+x,a +18e4: 6f ret + +18e5: f5 f1 04 mov a,$04f1+x +18e8: c4 11 mov $11,a +18ea: f5 f0 04 mov a,$04f0+x +18ed: c4 10 mov $10,a +18ef: 6f ret + +18f0: ed notc +18f1: 6b 12 ror $12 +18f3: 10 03 bpl $18f8 +18f5: 48 ff eor a,#$ff +18f7: bc inc a +18f8: 8d 00 mov y,#$00 +18fa: 9e div ya,x +18fb: 2d push a +18fc: e8 00 mov a,#$00 +18fe: 9e div ya,x +18ff: ee pop y +1900: f8 44 mov x,$44 +1902: f3 12 06 bbc7 $12,$190b +1905: da 14 movw $14,ya +1907: ba 0e movw ya,$0e +1909: 9a 14 subw ya,$14 +190b: 6f ret + +; vcmd dispatch table (sfx) +190c: dw $16c4 ; e0 - set instrument +190e: dw $1718 ; e1 - pan +1910: dw $1726 ; e2 - pan fade +1912: dw $173f ; e3 - vibrato on +1914: dw $174b ; e4 - vibrato off +1916: dw $1766 ; e5 +1918: dw $176b ; e6 +191a: dw $176f ; e7 - tempo +191c: dw $1774 ; e8 +191e: dw $1778 ; e9 +1920: dw $177c ; ea - per-voice transpose +1922: dw $1780 ; eb - tremolo on +1924: dw $178c ; ec - tremolo off +1926: dw $17af ; ed - volume +1928: dw $17b8 ; ee - volume fade +192a: dw $17d5 ; ef - call subroutine +192c: dw $1756 ; f0 - vibrato fade +192e: dw $1791 ; f1 - pitch envelope (release) +1930: dw $1795 ; f2 - pitch envelope (attack) +1932: dw $17ab ; f3 - pitch envelope off +1934: dw $17d1 ; f4 - tuning +1936: dw $17f9 ; f5 - echo vbits/volume +1938: dw $1835 ; f6 - disable echo +193a: dw $183c ; f7 - set echo params +193c: dw $1814 ; f8 - echo volume fade +193e: dw $18bc ; f9 - set pitch slide +1940: dw $18a4 ; fa +1942: dw $1c06 ; fb - echo on +1944: dw $1c1b ; fc - echo off +1946: dw $1bee ; fd +1948: dw $18a8 ; fe + +; vcmd lengths (sfx) +194a: db $01,$01,$02,$03,$00,$01,$02,$01 ; e0-e7 +1952: db $02,$01,$01,$03,$00,$01,$02,$03 ; e8-ef +195a: db $01,$03,$03,$00,$01,$03,$00,$03 ; f0-f7 +1962: db $03,$03,$01,$00,$00,$02,$02 ; f8-fe + +1969: f4 70 mov a,$70+x +196b: f0 24 beq $1991 +196d: 09 47 5e or ($5e),($47) +1970: 9b 70 dec $70+x +1972: d0 0a bne $197e +1974: e8 00 mov a,#$00 +1976: d5 90 04 mov $0490+x,a +1979: f5 b0 04 mov a,$04b0+x +197c: 2f 10 bra $198e +197e: 60 clrc +197f: f5 90 04 mov a,$0490+x +1982: 95 a0 04 adc a,$04a0+x +1985: d5 90 04 mov $0490+x,a +1988: f5 91 04 mov a,$0491+x +198b: 95 a1 04 adc a,$04a1+x +198e: d5 91 04 mov $0491+x,a +1991: fb e1 mov y,$e1+x +1993: f0 23 beq $19b8 +1995: f5 90 05 mov a,$0590+x +1998: de e0 1b cbne $e0+x,$19b6 +199b: 09 47 5e or ($5e),($47) +199e: f5 80 05 mov a,$0580+x +19a1: 10 07 bpl $19aa +19a3: fc inc y +19a4: d0 04 bne $19aa +19a6: e8 80 mov a,#$80 +19a8: 2f 04 bra $19ae +19aa: 60 clrc +19ab: 95 81 05 adc a,$0581+x +19ae: d5 80 05 mov $0580+x,a +19b1: 3f c7 1b call $1bc7 +19b4: 2f 07 bra $19bd +19b6: bb e0 inc $e0+x +19b8: e8 ff mov a,#$ff +19ba: 3f d2 1b call $1bd2 +19bd: f4 71 mov a,$71+x +19bf: f0 24 beq $19e5 +19c1: 09 47 5e or ($5e),($47) +19c4: 9b 71 dec $71+x +19c6: d0 0a bne $19d2 +19c8: e8 00 mov a,#$00 +19ca: d5 c0 04 mov $04c0+x,a +19cd: f5 e0 04 mov a,$04e0+x +19d0: 2f 10 bra $19e2 +19d2: 60 clrc +19d3: f5 c0 04 mov a,$04c0+x +19d6: 95 d0 04 adc a,$04d0+x +19d9: d5 c0 04 mov $04c0+x,a +19dc: f5 c1 04 mov a,$04c1+x +19df: 95 d1 04 adc a,$04d1+x +19e2: d5 c1 04 mov $04c1+x,a +19e5: e4 47 mov a,$47 +19e7: 24 5e and a,$5e +19e9: f0 5c beq $1a47 +19eb: f5 c1 04 mov a,$04c1+x +19ee: fd mov y,a +19ef: f5 c0 04 mov a,$04c0+x +19f2: da 10 movw $10,ya +19f4: 7d mov a,x +19f5: 9f xcn a +19f6: 5c lsr a +19f7: c4 12 mov $12,a +19f9: eb 11 mov y,$11 +19fb: e5 b8 03 mov a,$03b8 +19fe: f0 11 beq $1a11 +1a00: e8 51 mov a,#$51 +1a02: 80 setc +1a03: a8 51 sbc a,#$51 +1a05: eb 10 mov y,$10 +1a07: cf mul ya +1a08: dd mov a,y +1a09: eb 11 mov y,$11 +1a0b: 60 clrc +1a0c: 88 51 adc a,#$51 +1a0e: fd mov y,a +1a0f: 2f 12 bra $1a23 +1a11: f6 3e 1e mov a,$1e3e+y +1a14: 80 setc +1a15: b6 3d 1e sbc a,$1e3d+y +1a18: eb 10 mov y,$10 +1a1a: cf mul ya +1a1b: dd mov a,y +1a1c: eb 11 mov y,$11 +1a1e: 60 clrc +1a1f: 96 3d 1e adc a,$1e3d+y +1a22: fd mov y,a +1a23: f5 b1 04 mov a,$04b1+x +1a26: cf mul ya +1a27: f5 e1 04 mov a,$04e1+x +1a2a: 1c asl a +1a2b: 13 12 01 bbc0 $12,$1a2f +1a2e: 1c asl a +1a2f: dd mov a,y +1a30: 90 03 bcc $1a35 +1a32: 48 ff eor a,#$ff +1a34: bc inc a +1a35: eb 12 mov y,$12 +1a37: 3f 87 14 call $1487 +1a3a: 8d 14 mov y,#$14 +1a3c: e8 00 mov a,#$00 +1a3e: 9a 10 subw ya,$10 +1a40: da 10 movw $10,ya +1a42: ab 12 inc $12 +1a44: 33 12 b2 bbc1 $12,$19f9 +1a47: 6f ret + +1a48: f5 21 04 mov a,$0421+x +1a4b: f0 6b beq $1ab8 +1a4d: 9c dec a +1a4e: d5 21 04 mov $0421+x,a +1a51: f0 07 beq $1a5a +1a53: e8 02 mov a,#$02 +1a55: 75 20 04 cmp a,$0420+x +1a58: d0 5e bne $1ab8 +1a5a: f5 80 04 mov a,$0480+x +1a5d: c4 17 mov $17,a +1a5f: f4 20 mov a,$20+x +1a61: fb 21 mov y,$21+x +1a63: da 14 movw $14,ya +1a65: 8d 00 mov y,#$00 +1a67: f7 14 mov a,($14)+y +1a69: f0 1e beq $1a89 +1a6b: 30 07 bmi $1a74 +1a6d: fc inc y +1a6e: 30 40 bmi $1ab0 +1a70: f7 14 mov a,($14)+y +1a72: 10 f9 bpl $1a6d +1a74: 68 c8 cmp a,#$c8 +1a76: f0 40 beq $1ab8 +1a78: 68 ef cmp a,#$ef +1a7a: f0 29 beq $1aa5 +1a7c: 68 e0 cmp a,#$e0 +1a7e: 90 30 bcc $1ab0 +1a80: 6d push y +1a81: fd mov y,a +1a82: ae pop a +1a83: 96 6a 18 adc a,$186a+y +1a86: fd mov y,a +1a87: 2f de bra $1a67 +1a89: e4 17 mov a,$17 +1a8b: f0 23 beq $1ab0 +1a8d: 8b 17 dec $17 +1a8f: d0 0a bne $1a9b +1a91: f5 61 04 mov a,$0461+x +1a94: 2d push a +1a95: f5 60 04 mov a,$0460+x +1a98: ee pop y +1a99: 2f c8 bra $1a63 +1a9b: f5 71 04 mov a,$0471+x +1a9e: 2d push a +1a9f: f5 70 04 mov a,$0470+x +1aa2: ee pop y +1aa3: 2f be bra $1a63 +1aa5: fc inc y +1aa6: f7 14 mov a,($14)+y +1aa8: 2d push a +1aa9: fc inc y +1aaa: f7 14 mov a,($14)+y +1aac: fd mov y,a +1aad: ae pop a +1aae: 2f b3 bra $1a63 +1ab0: e4 47 mov a,$47 +1ab2: 05 d3 03 or a,$03d3 +1ab5: c5 d3 03 mov $03d3,a +1ab8: f2 13 clr7 $13 +1aba: f4 80 mov a,$80+x +1abc: f0 2c beq $1aea +1abe: f4 81 mov a,$81+x +1ac0: f0 04 beq $1ac6 +1ac2: 9b 81 dec $81+x +1ac4: 2f 24 bra $1aea +1ac6: e2 13 set7 $13 +1ac8: 9b 80 dec $80+x +1aca: d0 0b bne $1ad7 +1acc: f5 11 05 mov a,$0511+x +1acf: d5 f0 04 mov $04f0+x,a +1ad2: f5 10 05 mov a,$0510+x +1ad5: 2f 10 bra $1ae7 +1ad7: 60 clrc +1ad8: f5 f0 04 mov a,$04f0+x +1adb: 95 00 05 adc a,$0500+x +1ade: d5 f0 04 mov $04f0+x,a +1ae1: f5 f1 04 mov a,$04f1+x +1ae4: 95 01 05 adc a,$0501+x +1ae7: d5 f1 04 mov $04f1+x,a +1aea: 3f e5 18 call $18e5 +1aed: f4 d1 mov a,$d1+x +1aef: f0 4c beq $1b3d +1af1: f5 50 05 mov a,$0550+x +1af4: de d0 44 cbne $d0+x,$1b3b +1af7: f5 60 05 mov a,$0560+x +1afa: 75 51 05 cmp a,$0551+x +1afd: d0 05 bne $1b04 +1aff: f5 71 05 mov a,$0571+x +1b02: 2f 0d bra $1b11 +1b04: 40 setp +1b05: bb 60 inc $60+x +1b07: 20 clrp +1b08: fd mov y,a +1b09: f0 02 beq $1b0d +1b0b: f4 d1 mov a,$d1+x +1b0d: 60 clrc +1b0e: 95 70 05 adc a,$0570+x +1b11: d4 d1 mov $d1+x,a +1b13: f5 40 05 mov a,$0540+x +1b16: 60 clrc +1b17: 95 41 05 adc a,$0541+x +1b1a: d5 40 05 mov $0540+x,a +1b1d: c4 12 mov $12,a +1b1f: 1c asl a +1b20: 1c asl a +1b21: 90 02 bcc $1b25 +1b23: 48 ff eor a,#$ff +1b25: fd mov y,a +1b26: f4 d1 mov a,$d1+x +1b28: 68 f1 cmp a,#$f1 +1b2a: 90 05 bcc $1b31 +1b2c: 28 0f and a,#$0f +1b2e: cf mul ya +1b2f: 2f 04 bra $1b35 +1b31: cf mul ya +1b32: dd mov a,y +1b33: 8d 00 mov y,#$00 +1b35: 3f b2 1b call $1bb2 +1b38: 5f 04 14 jmp $1404 + +1b3b: bb d0 inc $d0+x +1b3d: e3 13 f8 bbs7 $13,$1b38 +1b40: 6f ret + +1b41: f2 13 clr7 $13 +1b43: f4 e1 mov a,$e1+x +1b45: f0 09 beq $1b50 +1b47: f5 90 05 mov a,$0590+x +1b4a: de e0 03 cbne $e0+x,$1b50 +1b4d: 3f ba 1b call $1bba +1b50: f5 c1 04 mov a,$04c1+x +1b53: fd mov y,a +1b54: f5 c0 04 mov a,$04c0+x +1b57: da 10 movw $10,ya +1b59: f4 71 mov a,$71+x +1b5b: f0 0a beq $1b67 +1b5d: f5 d1 04 mov a,$04d1+x +1b60: fd mov y,a +1b61: f5 d0 04 mov a,$04d0+x +1b64: 3f 9c 1b call $1b9c +1b67: f3 13 03 bbc7 $13,$1b6d +1b6a: 3f f4 19 call $19f4 +1b6d: f2 13 clr7 $13 +1b6f: 3f e5 18 call $18e5 +1b72: f4 80 mov a,$80+x +1b74: f0 0e beq $1b84 +1b76: f4 81 mov a,$81+x +1b78: d0 0a bne $1b84 +1b7a: f5 01 05 mov a,$0501+x +1b7d: fd mov y,a +1b7e: f5 00 05 mov a,$0500+x +1b81: 3f 9c 1b call $1b9c +1b84: f4 d1 mov a,$d1+x +1b86: f0 b5 beq $1b3d +1b88: f5 50 05 mov a,$0550+x +1b8b: de d0 af cbne $d0+x,$1b3d +1b8e: eb 51 mov y,$51 +1b90: f5 41 05 mov a,$0541+x +1b93: cf mul ya +1b94: dd mov a,y +1b95: 60 clrc +1b96: 95 40 05 adc a,$0540+x +1b99: 5f 1d 1b jmp $1b1d + +1b9c: e2 13 set7 $13 +1b9e: cb 12 mov $12,y +1ba0: 3f 02 19 call $1902 +1ba3: 6d push y +1ba4: eb 51 mov y,$51 +1ba6: cf mul ya +1ba7: cb 14 mov $14,y +1ba9: 8f 00 15 mov $15,#$00 +1bac: eb 51 mov y,$51 +1bae: ae pop a +1baf: cf mul ya +1bb0: 7a 14 addw ya,$14 +1bb2: 3f 02 19 call $1902 +1bb5: 7a 10 addw ya,$10 +1bb7: da 10 movw $10,ya +1bb9: 6f ret + +1bba: e2 13 set7 $13 +1bbc: eb 51 mov y,$51 +1bbe: f5 81 05 mov a,$0581+x +1bc1: cf mul ya +1bc2: dd mov a,y +1bc3: 60 clrc +1bc4: 95 80 05 adc a,$0580+x +1bc7: 1c asl a +1bc8: 90 02 bcc $1bcc +1bca: 48 ff eor a,#$ff +1bcc: fb e1 mov y,$e1+x +1bce: cf mul ya +1bcf: dd mov a,y +1bd0: 48 ff eor a,#$ff +1bd2: ec b9 03 mov y,$03b9 +1bd5: f0 05 beq $1bdc +1bd7: ec 04 04 mov y,$0404 +1bda: 2f 02 bra $1bde +1bdc: eb 59 mov y,$59 +1bde: cf mul ya +1bdf: f5 c0 05 mov a,$05c0+x +1be2: cf mul ya +1be3: f5 91 04 mov a,$0491+x +1be6: cf mul ya +1be7: dd mov a,y +1be8: cf mul ya +1be9: dd mov a,y +1bea: d5 b1 04 mov $04b1+x,a +1bed: 6f ret + +; vcmd fd +1bee: 7d mov a,x +1bef: 9f xcn a +1bf0: 5c lsr a +1bf1: 08 05 or a,#$05 +1bf3: c4 14 mov $14,a +1bf5: dd mov a,y +1bf6: eb 14 mov y,$14 +1bf8: 3f 87 14 call $1487 +1bfb: 3f ba 16 call $16ba +1bfe: ab 14 inc $14 +1c00: eb 14 mov y,$14 +1c02: 3f 87 14 call $1487 +1c05: 6f ret + +; vcmd fb - echo on +1c06: e5 bd 03 mov a,$03bd +1c09: 04 47 or a,$47 +1c0b: c5 bd 03 mov $03bd,a +1c0e: e4 47 mov a,$47 +1c10: 48 ff eor a,#$ff +1c12: 25 bf 03 and a,$03bf +1c15: c5 bf 03 mov $03bf,a +1c18: 5f 7a 13 jmp $137a + +; vcmd fc - echo off +1c1b: e5 bf 03 mov a,$03bf +1c1e: 04 47 or a,$47 +1c20: c5 bf 03 mov $03bf,a +1c23: e4 47 mov a,$47 +1c25: 48 ff eor a,#$ff +1c27: 25 bd 03 and a,$03bd +1c2a: c5 bd 03 mov $03bd,a +1c2d: 5f 7a 13 jmp $137a + +1c30: 8d 00 mov y,#$00 +1c32: f7 6e mov a,($6e)+y +1c34: 3a 6e incw $6e +1c36: 2d push a +1c37: f7 6e mov a,($6e)+y +1c39: 3a 6e incw $6e +1c3b: fd mov y,a +1c3c: ae pop a +1c3d: 6f ret + +1c3e: c4 06 mov $06,a +1c40: 1c asl a +1c41: 5d mov x,a +1c42: f5 ff bf mov a,$bfff+x +1c45: fd mov y,a +1c46: f5 fe bf mov a,$bffe+x +1c49: da 6e movw $6e,ya +1c4b: 8f 02 1f mov $1f,#$02 +1c4e: 2f 02 bra $1c52 +1c50: c4 06 mov $06,a +1c52: e4 6d mov a,$6d +1c54: 0e 46 00 tset1 $0046 +1c57: e8 a5 mov a,#$a5 +1c59: c5 e4 05 mov $05e4,a +1c5c: 6f ret + +1c5d: e4 6d mov a,$6d +1c5f: 0e 46 00 tset1 $0046 +1c62: e8 00 mov a,#$00 +1c64: c5 e4 05 mov $05e4,a +1c67: cd 00 mov x,#$00 +1c69: 8f 01 47 mov $47,#$01 +1c6c: e4 6d mov a,$6d +1c6e: 24 47 and a,$47 +1c70: f0 14 beq $1c86 +1c72: e4 47 mov a,$47 +1c74: 48 ff eor a,#$ff +1c76: 24 1a and a,$1a +1c78: c4 1a mov $1a,a +1c7a: f5 11 02 mov a,$0211+x +1c7d: 3f fd 0d call $0dfd +1c80: e8 00 mov a,#$00 +1c82: d4 21 mov $21+x,a +1c84: d4 20 mov $20+x,a +1c86: 3d inc x +1c87: 3d inc x +1c88: 0b 47 asl $47 +1c8a: d0 e0 bne $1c6c +1c8c: e8 00 mov a,#$00 +1c8e: c4 6d mov $6d,a +1c90: 6f ret + +1c91: cd 0e mov x,#$0e +1c93: 8f 80 47 mov $47,#$80 +1c96: e4 47 mov a,$47 +1c98: 24 6d and a,$6d +1c9a: f0 06 beq $1ca2 +1c9c: e8 00 mov a,#$00 +1c9e: d4 20 mov $20+x,a +1ca0: d4 1f mov $1f+x,a +1ca2: 1d dec x +1ca3: 1d dec x +1ca4: 4b 47 lsr $47 +1ca6: d0 ee bne $1c96 +1ca8: e8 00 mov a,#$00 +1caa: c4 6d mov $6d,a +1cac: cd 00 mov x,#$00 +1cae: 8f 01 47 mov $47,#$01 +1cb1: f5 f1 05 mov a,$05f1+x +1cb4: f0 15 beq $1ccb +1cb6: d4 21 mov $21+x,a +1cb8: f5 f0 05 mov a,$05f0+x +1cbb: d4 20 mov $20+x,a +1cbd: 09 47 1a or ($1a),($47) +1cc0: 09 47 6d or ($6d),($47) +1cc3: e4 47 mov a,$47 +1cc5: 48 ff eor a,#$ff +1cc7: 24 1b and a,$1b +1cc9: c4 1b mov $1b,a +1ccb: 3d inc x +1ccc: 3d inc x +1ccd: 0b 47 asl $47 +1ccf: d0 e0 bne $1cb1 +1cd1: e4 6d mov a,$6d +1cd3: 0e 46 00 tset1 $0046 +1cd6: e8 00 mov a,#$00 +1cd8: c5 e4 05 mov $05e4,a +1cdb: 6f ret + +1cdc: 3f 30 1c call $1c30 +1cdf: 1a 6e decw $6e +1ce1: 1a 6e decw $6e +1ce3: da 16 movw $16,ya +1ce5: 8d 0f mov y,#$0f +1ce7: f7 16 mov a,($16)+y +1ce9: d6 f0 05 mov $05f0+y,a +1cec: dc dec y +1ced: 10 f8 bpl $1ce7 +1cef: 3f 91 1c call $1c91 +1cf2: cd 0e mov x,#$0e +1cf4: 8f 80 47 mov $47,#$80 +1cf7: e4 47 mov a,$47 +1cf9: 24 6d and a,$6d +1cfb: f0 1d beq $1d1a +1cfd: e8 ff mov a,#$ff +1cff: d5 91 04 mov $0491+x,a +1d02: e5 e3 05 mov a,$05e3 +1d05: 3f 18 17 call $1718 +1d08: e8 00 mov a,#$00 +1d0a: d5 c1 05 mov $05c1+x,a +1d0d: d5 11 05 mov $0511+x,a +1d10: d5 91 05 mov $0591+x,a +1d13: d5 20 05 mov $0520+x,a +1d16: d4 d1 mov $d1+x,a +1d18: d4 e1 mov $e1+x,a +1d1a: 1d dec x +1d1b: 1d dec x +1d1c: 4b 47 lsr $47 +1d1e: d0 d7 bne $1cf7 +1d20: c5 03 04 mov $0403,a +1d23: c5 e0 05 mov $05e0,a +1d26: c5 10 04 mov $0410,a +1d29: c4 70 mov $70,a +1d2b: 6f ret + +1d2c: e5 e4 05 mov a,$05e4 +1d2f: f0 03 beq $1d34 +1d31: 5f 62 1c jmp $1c62 + +1d34: eb 0a mov y,$0a +1d36: e4 02 mov a,$02 +1d38: c4 0a mov $0a,a +1d3a: 7e 02 cmp y,$02 +1d3c: f0 03 beq $1d41 +1d3e: 5f 3e 1c jmp $1c3e + +1d41: e4 06 mov a,$06 +1d43: f0 e6 beq $1d2b +1d45: e4 1f mov a,$1f +1d47: d0 03 bne $1d4c +1d49: 5f a8 1d jmp $1da8 + +1d4c: 6e 1f 8d dbnz $1f,$1cdc +1d4f: 3f 30 1c call $1c30 +1d52: d0 1a bne $1d6e +1d54: fd mov y,a +1d55: d0 03 bne $1d5a +1d57: 5f 50 1c jmp $1c50 + +1d5a: 8c e0 05 dec $05e0 +1d5d: 10 03 bpl $1d62 +1d5f: c5 e0 05 mov $05e0,a +1d62: 3f 30 1c call $1c30 +1d65: e9 e0 05 mov x,$05e0 +1d68: f0 e5 beq $1d4f +1d6a: da 6e movw $6e,ya +1d6c: 2f e1 bra $1d4f +1d6e: da 16 movw $16,ya +1d70: 8d 0f mov y,#$0f +1d72: f7 16 mov a,($16)+y +1d74: d6 f0 05 mov $05f0+y,a +1d77: dc dec y +1d78: 10 f8 bpl $1d72 +1d7a: 3f 5d 1c call $1c5d +1d7d: 3f 91 1c call $1c91 +1d80: cd 00 mov x,#$00 +1d82: 8f 01 47 mov $47,#$01 +1d85: e4 47 mov a,$47 +1d87: 24 6d and a,$6d +1d89: f0 17 beq $1da2 +1d8b: f4 21 mov a,$21+x +1d8d: f0 06 beq $1d95 +1d8f: f5 c1 05 mov a,$05c1+x +1d92: 3f c4 16 call $16c4 +1d95: e8 00 mov a,#$00 +1d97: d5 80 04 mov $0480+x,a +1d9a: d4 70 mov $70+x,a +1d9c: d4 71 mov $71+x,a +1d9e: bc inc a +1d9f: d5 20 04 mov $0420+x,a +1da2: 3d inc x +1da3: 3d inc x +1da4: 0b 47 asl $47 +1da6: d0 dd bne $1d85 +1da8: cd 00 mov x,#$00 +1daa: e4 6d mov a,$6d +1dac: 24 5e and a,$5e +1dae: c4 5e mov $5e,a +1db0: 8f 01 47 mov $47,#$01 +1db3: d8 44 mov $44,x +1db5: e4 47 mov a,$47 +1db7: 24 6d and a,$6d +1db9: f0 78 beq $1e33 +1dbb: f4 21 mov a,$21+x +1dbd: f0 74 beq $1e33 +1dbf: f5 20 04 mov a,$0420+x +1dc2: 9c dec a +1dc3: d5 20 04 mov $0420+x,a +1dc6: d0 65 bne $1e2d +1dc8: 3f ba 16 call $16ba +1dcb: d0 20 bne $1ded +1dcd: f5 80 04 mov a,$0480+x +1dd0: d0 03 bne $1dd5 +1dd2: 5f 4f 1d jmp $1d4f + +1dd5: 3f ee 17 call $17ee +1dd8: f5 80 04 mov a,$0480+x +1ddb: 9c dec a +1ddc: d5 80 04 mov $0480+x,a +1ddf: d0 e7 bne $1dc8 +1de1: f5 60 04 mov a,$0460+x +1de4: d4 20 mov $20+x,a +1de6: f5 61 04 mov a,$0461+x +1de9: d4 21 mov $21+x,a +1deb: 2f db bra $1dc8 +1ded: 30 20 bmi $1e0f +1def: d5 30 04 mov $0430+x,a +1df2: 3f ba 16 call $16ba +1df5: 30 18 bmi $1e0f +1df7: 2d push a +1df8: 9f xcn a +1df9: 28 07 and a,#$07 +1dfb: fd mov y,a +1dfc: f6 18 a0 mov a,$a018+y +1dff: d5 31 04 mov $0431+x,a +1e02: ae pop a +1e03: 28 0f and a,#$0f +1e05: fd mov y,a +1e06: f6 20 a0 mov a,$a020+y +1e09: d5 c0 05 mov $05c0+x,a +1e0c: 3f ba 16 call $16ba +1e0f: 68 e0 cmp a,#$e0 +1e11: 90 05 bcc $1e18 +1e13: 3f a8 16 call $16a8 +1e16: 2f b0 bra $1dc8 +1e18: 3f 99 13 call $1399 +1e1b: f5 30 04 mov a,$0430+x +1e1e: d5 20 04 mov $0420+x,a +1e21: fd mov y,a +1e22: f5 31 04 mov a,$0431+x +1e25: cf mul ya +1e26: dd mov a,y +1e27: bc inc a +1e28: d5 21 04 mov $0421+x,a +1e2b: 2f 03 bra $1e30 +1e2d: 3f 48 1a call $1a48 +1e30: 3f ac 18 call $18ac +1e33: 3d inc x +1e34: 3d inc x +1e35: 0b 47 asl $47 +1e37: f0 03 beq $1e3c +1e39: 5f b3 1d jmp $1db3 + +1e3c: 6f ret + +; pan table +1e3d: db $00,$01,$03,$07,$0d,$15,$1e,$29 +1e45: db $34,$42,$51,$5e,$67,$6e,$73,$77 +1e4d: db $7a,$7c,$7d,$7e,$7f + +; echo FIR presets +1e52: db $7f,$00,$00,$00,$00,$00,$00,$00 +1e5a: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c +1e62: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 +1e6a: db $34,$33,$00,$d9,$e5,$01,$fc,$eb + +; EVOL(L),EVOL(R),EFB,EON,FLG,KOL,KOF,NON,PMON,KOF +; dsp shadow addrs for dsp regs +1e72: db $2c,$3c,$0d,$4d,$6c,$4c,$5c,$3d,$2d,$5c +1e7c: db $61,$63,$4e,$4a,$48,$45,$0e,$49,$4b,$46 + +; pitch table +1e86: dw $085f +1e88: dw $08de +1e8a: dw $0965 +1e8c: dw $09f4 +1e8e: dw $0a8c +1e90: dw $0b2c +1e92: dw $0bd6 +1e94: dw $0c8b +1e96: dw $0d4a +1e98: dw $0e14 +1e9a: dw $0eea +1e9c: dw $0fcd +1e9e: dw $10be + +1ea0: db $2a,$56,$65,$72,$20,$53,$31,$2e,$32,$30,$2a + +1eab: e8 aa mov a,#$aa +1ead: c5 f4 00 mov $00f4,a +1eb0: e8 bb mov a,#$bb +1eb2: c5 f5 00 mov $00f5,a +1eb5: e5 f4 00 mov a,$00f4 +1eb8: 68 cc cmp a,#$cc +1eba: d0 f9 bne $1eb5 +1ebc: 2f 20 bra $1ede +1ebe: ec f4 00 mov y,$00f4 +1ec1: d0 fb bne $1ebe +1ec3: 5e f4 00 cmp y,$00f4 +1ec6: d0 0f bne $1ed7 +1ec8: e5 f5 00 mov a,$00f5 +1ecb: cc f4 00 mov $00f4,y +1ece: d7 14 mov ($14)+y,a +1ed0: fc inc y +1ed1: d0 f0 bne $1ec3 +1ed3: ab 15 inc $15 +1ed5: 2f ec bra $1ec3 +1ed7: 10 ea bpl $1ec3 +1ed9: 5e f4 00 cmp y,$00f4 +1edc: 10 e5 bpl $1ec3 +1ede: e5 f6 00 mov a,$00f6 +1ee1: ec f7 00 mov y,$00f7 +1ee4: da 14 movw $14,ya +1ee6: ec f4 00 mov y,$00f4 +1ee9: e5 f5 00 mov a,$00f5 +1eec: cc f4 00 mov $00f4,y +1eef: d0 cd bne $1ebe +1ef1: cd 31 mov x,#$31 +1ef3: c9 f1 00 mov $00f1,x +1ef6: 6f ret + +; note dur%'s +a018: db $32,$65,$7f,$98,$b2,$cb,$e5,$ff +; per-note velocity values +a020: db $0a,$19,$28,$3c,$50,$64,$7d,$96 +a028: db $aa,$b9,$c8,$d4,$e1,$eb,$f5,$ff \ No newline at end of file diff --git a/snes/NSPC/Tose/Super Bases Loaded 3 - License to Steal ($0800).bin b/snes/NSPC/Tose/Super Bases Loaded 3 - License to Steal ($0800).bin new file mode 100644 index 00000000..ea84ea04 Binary files /dev/null and b/snes/NSPC/Tose/Super Bases Loaded 3 - License to Steal ($0800).bin differ diff --git a/snes/NSPC/Tose/Super Bases Loaded 3 - License to Steal.s b/snes/NSPC/Tose/Super Bases Loaded 3 - License to Steal.s new file mode 100644 index 00000000..a1a8dd55 --- /dev/null +++ b/snes/NSPC/Tose/Super Bases Loaded 3 - License to Steal.s @@ -0,0 +1,2110 @@ +0800: 20 clrp +0801: cd 7f mov x,#$7f +0803: bd mov sp,x +0804: e8 00 mov a,#$00 +0806: cd ef mov x,#$ef +0808: d4 00 mov $00+x,a +080a: 1d dec x +080b: c8 ff cmp x,#$ff +080d: d0 f9 bne $0808 +080f: e8 00 mov a,#$00 +0811: cd 00 mov x,#$00 +0813: d5 00 01 mov $0100+x,a +0816: d5 00 02 mov $0200+x,a +0819: d5 00 03 mov $0300+x,a +081c: d5 00 04 mov $0400+x,a +081f: d5 00 05 mov $0500+x,a +0822: d5 00 06 mov $0600+x,a +0825: d5 00 07 mov $0700+x,a +0828: 1d dec x +0829: d0 e8 bne $0813 +082b: e8 4f mov a,#$4f +082d: c4 42 mov $42,a +082f: e8 00 mov a,#$00 +0831: c5 f4 00 mov $00f4,a +0834: c5 f5 00 mov $00f5,a +0837: c5 f6 00 mov $00f6,a +083a: c5 f7 00 mov $00f7,a +083d: e8 30 mov a,#$30 +083f: c5 f1 00 mov $00f1,a +0842: e8 10 mov a,#$10 +0844: c5 fa 00 mov $00fa,a +0847: e8 01 mov a,#$01 +0849: c5 f1 00 mov $00f1,a +084c: c4 18 mov $18,a +084e: 8d 6c mov y,#$6c +0850: e8 a0 mov a,#$a0 +0852: 3f 4f 0f call $0f4f +0855: e8 20 mov a,#$20 +0857: 3f 4f 0f call $0f4f +085a: 3f b3 0f call $0fb3 +085d: 8d 5c mov y,#$5c +085f: e8 ff mov a,#$ff +0861: 3f 4f 0f call $0f4f +0864: 8d 3d mov y,#$3d +0866: e8 00 mov a,#$00 +0868: 3f 4f 0f call $0f4f +086b: e8 00 mov a,#$00 +086d: 8d 2d mov y,#$2d +086f: 3f 4f 0f call $0f4f +0872: 8d 5d mov y,#$5d +0874: e8 1b mov a,#$1b +0876: c4 20 mov $20,a +0878: 3f 4f 0f call $0f4f +087b: 8f 00 21 mov $21,#$00 +087e: 8f 1c 22 mov $22,#$1c +0881: 8f 00 23 mov $23,#$00 +0884: 8f 1e 24 mov $24,#$1e +0887: 8f 00 25 mov $25,#$00 +088a: 8f 1f 26 mov $26,#$1f +088d: 3f fb 13 call $13fb +0890: 8f ff 5d mov $5d,#$ff +0893: e5 fd 00 mov a,$00fd +0896: d0 05 bne $089d +0898: 3f 91 16 call $1691 +089b: 2f f6 bra $0893 +089d: c4 1a mov $1a,a +089f: e4 54 mov a,$54 +08a1: f0 34 beq $08d7 +08a3: 80 setc +08a4: a4 1a sbc a,$1a +08a6: c4 54 mov $54,a +08a8: f0 05 beq $08af +08aa: b0 2b bcs $08d7 +08ac: 8f 00 54 mov $54,#$00 +08af: 8d 6c mov y,#$6c +08b1: 3f 56 0f call $0f56 +08b4: 28 df and a,#$df +08b6: 3f 4f 0f call $0f4f +08b9: 8d 0d mov y,#$0d +08bb: e4 5a mov a,$5a +08bd: 3f 4f 0f call $0f4f +08c0: 8d 4d mov y,#$4d +08c2: e4 3b mov a,$3b +08c4: 48 ff eor a,#$ff +08c6: 24 5c and a,$5c +08c8: 3f 4f 0f call $0f4f +08cb: 8d 7d mov y,#$7d +08cd: 3f 56 0f call $0f56 +08d0: 1c asl a +08d1: 1c asl a +08d2: 1c asl a +08d3: 1c asl a +08d4: bc inc a +08d5: c4 55 mov $55,a +08d7: e4 55 mov a,$55 +08d9: f0 1a beq $08f5 +08db: 80 setc +08dc: a4 1a sbc a,$1a +08de: c4 55 mov $55,a +08e0: f0 05 beq $08e7 +08e2: b0 11 bcs $08f5 +08e4: 8f 00 55 mov $55,#$00 +08e7: 8d 2c mov y,#$2c +08e9: e4 57 mov a,$57 +08eb: 3f 4f 0f call $0f4f +08ee: 8d 3c mov y,#$3c +08f0: e4 57 mov a,$57 +08f2: 3f 4f 0f call $0f4f +08f5: e8 00 mov a,#$00 +08f7: c4 27 mov $27,a +08f9: c4 28 mov $28,a +08fb: c4 2c mov $2c,a +08fd: c4 2d mov $2d,a +08ff: c4 34 mov $34,a +0901: c4 35 mov $35,a +0903: c4 36 mov $36,a +0905: c4 37 mov $37,a +0907: c4 38 mov $38,a +0909: c4 39 mov $39,a +090b: c4 4b mov $4b,a +090d: c4 4a mov $4a,a +090f: e4 46 mov a,$46 +0911: c4 47 mov $47,a +0913: e5 80 01 mov a,$0180 +0916: f0 06 beq $091e +0918: 8c 80 01 dec $0180 +091b: 3f fc 14 call $14fc +091e: cd 00 mov x,#$00 +0920: 0b 34 asl $34 +0922: 2b 35 rol $35 +0924: 0b 36 asl $36 +0926: 2b 37 rol $37 +0928: 0b 38 asl $38 +092a: 2b 39 rol $39 +092c: 8f 00 2e mov $2e,#$00 +092f: 8f 00 2f mov $2f,#$00 +0932: 8f 00 30 mov $30,#$00 +0935: 8f 00 31 mov $31,#$00 +0938: c8 08 cmp x,#$08 +093a: b0 0c bcs $0948 +093c: e4 47 mov a,$47 +093e: d5 00 03 mov $0300+x,a +0941: f5 08 02 mov a,$0208+x +0944: f0 02 beq $0948 +0946: d4 62 mov $62+x,a +0948: f5 00 02 mov a,$0200+x +094b: f0 44 beq $0991 +094d: 68 03 cmp a,#$03 +094f: d0 09 bne $095a +0951: e8 01 mov a,#$01 +0953: c4 31 mov $31,a +0955: d5 00 02 mov $0200+x,a +0958: 2f 37 bra $0991 +095a: f5 00 02 mov a,$0200+x +095d: 68 02 cmp a,#$02 +095f: d0 1a bne $097b +0961: 8f 01 31 mov $31,#$01 +0964: e8 00 mov a,#$00 +0966: d5 00 02 mov $0200+x,a +0969: c8 08 cmp x,#$08 +096b: 90 24 bcc $0991 +096d: f5 d5 0e mov a,$0ed5+x +0970: 48 ff eor a,#$ff +0972: 24 3b and a,$3b +0974: c4 3b mov $3b,a +0976: 3f 06 11 call $1106 +0979: 2f 16 bra $0991 +097b: c8 08 cmp x,#$08 +097d: b0 04 bcs $0983 +097f: e4 49 mov a,$49 +0981: d0 0e bne $0991 +0983: c8 08 cmp x,#$08 +0985: 90 04 bcc $098b +0987: e4 3a mov a,$3a +0989: d0 06 bne $0991 +098b: 3f b3 09 call $09b3 +098e: 3f 9b 0d call $0d9b +0991: 3f 7a 0e call $0e7a +0994: ab 27 inc $27 +0996: e4 28 mov a,$28 +0998: 60 clrc +0999: 88 10 adc a,#$10 +099b: 28 7f and a,#$7f +099d: c4 28 mov $28,a +099f: 3d inc x +09a0: c8 10 cmp x,#$10 +09a2: b0 03 bcs $09a7 +09a4: 5f 20 09 jmp $0920 + +09a7: 8f 00 3a mov $3a,#$00 +09aa: 3f ae 0d call $0dae +09ad: 3f 0f 0d call $0d0f +09b0: 5f 98 08 jmp $0898 + +09b3: f5 00 03 mov a,$0300+x +09b6: eb 1a mov y,$1a +09b8: cf mul ya +09b9: da 1b movw $1b,ya +09bb: f4 72 mov a,$72+x +09bd: 60 clrc +09be: 84 1b adc a,$1b +09c0: d4 72 mov $72+x,a +09c2: e8 00 mov a,#$00 +09c4: 84 1c adc a,$1c +09c6: f0 13 beq $09db +09c8: c4 1f mov $1f,a +09ca: 3f df 09 call $09df +09cd: 3f bb 0b call $0bbb +09d0: f4 92 mov a,$92+x +09d2: f0 0a beq $09de +09d4: e4 1f mov a,$1f +09d6: f0 03 beq $09db +09d8: 3f 4a 0c call $0c4a +09db: 3f eb 0c call $0ceb +09de: 6f ret + +09df: f4 82 mov a,$82+x +09e1: f0 2b beq $0a0e +09e3: 80 setc +09e4: a4 1f sbc a,$1f +09e6: d4 82 mov $82+x,a +09e8: f0 24 beq $0a0e +09ea: 90 22 bcc $0a0e +09ec: f5 e0 02 mov a,$02e0+x +09ef: d0 1c bne $0a0d +09f1: f5 f0 02 mov a,$02f0+x +09f4: d0 17 bne $0a0d +09f6: f4 92 mov a,$92+x +09f8: f0 11 beq $0a0b +09fa: 80 setc +09fb: a4 1f sbc a,$1f +09fd: f0 02 beq $0a01 +09ff: b0 0a bcs $0a0b +0a01: e8 c9 mov a,#$c9 +0a03: d5 60 03 mov $0360+x,a +0a06: 8f 01 31 mov $31,#$01 +0a09: e8 00 mov a,#$00 +0a0b: d4 92 mov $92+x,a +0a0d: 6f ret + +0a0e: 8f 00 1f mov $1f,#$00 +0a11: c8 08 cmp x,#$08 +0a13: b0 09 bcs $0a1e +0a15: f5 08 02 mov a,$0208+x +0a18: d0 04 bne $0a1e +0a1a: e8 00 mov a,#$00 +0a1c: d4 62 mov $62+x,a +0a1e: f5 20 02 mov a,$0220+x +0a21: c4 29 mov $29,a +0a23: f5 30 02 mov a,$0230+x +0a26: c4 2a mov $2a,a + +0a28: 3f 5d 0f call $0f5d +0a2b: c4 19 mov $19,a +0a2d: 68 00 cmp a,#$00 +0a2f: f0 0d beq $0a3e ; end repeat/return +0a31: 68 80 cmp a,#$80 +0a33: 90 37 bcc $0a6c ; note params +0a35: 68 e0 cmp a,#$e0 +0a37: 90 58 bcc $0a91 ; note +0a39: 3f 16 11 call $1116 ; dispatch vcmd +0a3c: 2f ea bra $0a28 + +; vcmd 00 - end repeat/return +0a3e: f5 c0 02 mov a,$02c0+x +0a41: d0 13 bne $0a56 +0a43: c8 08 cmp x,#$08 +0a45: b0 06 bcs $0a4d +0a47: 8f 01 3a mov $3a,#$01 +0a4a: 5f 6b 15 jmp $156b + +0a4d: e8 02 mov a,#$02 +0a4f: d5 00 02 mov $0200+x,a +0a52: 8f 01 31 mov $31,#$01 +0a55: 6f ret + +0a56: bc inc a +0a57: f0 09 beq $0a62 +0a59: f5 c0 02 mov a,$02c0+x +0a5c: 9c dec a +0a5d: d5 c0 02 mov $02c0+x,a +0a60: f0 05 beq $0a67 +0a62: 3f 51 13 call $1351 +0a65: 2f c1 bra $0a28 +0a67: 3f 28 13 call $1328 +0a6a: 2f bc bra $0a28 + +; vcmds 01-7f - note params +0a6c: d5 20 03 mov $0320+x,a +0a6f: 3f 5d 0f call $0f5d +0a72: c4 19 mov $19,a +0a74: 68 80 cmp a,#$80 +0a76: b0 bd bcs $0a35 +0a78: 2d push a +0a79: 28 0f and a,#$0f +0a7b: fd mov y,a +0a7c: f6 37 0f mov a,$0f37+y +0a7f: d5 40 03 mov $0340+x,a ; set per-note vol from low nybble +0a82: ae pop a +0a83: 5c lsr a +0a84: 5c lsr a +0a85: 5c lsr a +0a86: 5c lsr a +0a87: fd mov y,a +0a88: f6 47 0f mov a,$0f47+y +0a8b: d5 30 03 mov $0330+x,a ; set dur% from high nybble +0a8e: 5f 28 0a jmp $0a28 + +0a91: 68 ca cmp a,#$ca +0a93: 90 0f bcc $0aa4 +; vcmds ca-df - percussion note +0a95: d5 60 03 mov $0360+x,a +0a98: a8 ca sbc a,#$ca +0a9a: 60 clrc +0a9b: 85 40 00 adc a,$0040 +0a9e: 3f 75 11 call $1175 +0aa1: 5f 51 0b jmp $0b51 + +0aa4: 2d push a +0aa5: f5 c0 03 mov a,$03c0+x +0aa8: 3f 75 11 call $1175 +0aab: ae pop a +0aac: 68 c8 cmp a,#$c8 +0aae: d0 03 bne $0ab3 ; not a tie +; vcmd c8 - tie +0ab0: 5f 44 0b jmp $0b44 + +0ab3: 68 c9 cmp a,#$c9 +0ab5: d0 1c bne $0ad3 +; vcmd c9 - rest +0ab7: f5 e0 02 mov a,$02e0+x +0aba: f0 07 beq $0ac3 +0abc: e8 c8 mov a,#$c8 +0abe: c4 19 mov $19,a +0ac0: 5f 44 0b jmp $0b44 + + +0ac3: e8 c9 mov a,#$c9 +0ac5: d5 60 03 mov $0360+x,a +0ac8: 8f 01 31 mov $31,#$01 +0acb: e8 00 mov a,#$00 +0acd: d5 f0 02 mov $02f0+x,a +0ad0: 5f 81 0b jmp $0b81 + +; vcmds 80-c7 - note (opcode in A) +0ad3: d5 60 03 mov $0360+x,a +0ad6: d5 80 03 mov $0380+x,a +0ad9: e8 00 mov a,#$00 +0adb: d5 50 03 mov $0350+x,a +0ade: d5 70 03 mov $0370+x,a +0ae1: f5 f0 04 mov a,$04f0+x +0ae4: f0 32 beq $0b18 +0ae6: f5 00 05 mov a,$0500+x +0ae9: d4 a2 mov $a2+x,a +0aeb: f5 10 05 mov a,$0510+x +0aee: d4 b2 mov $b2+x,a +0af0: c4 00 mov $00,a +0af2: f5 f0 04 mov a,$04f0+x +0af5: 9c dec a +0af6: d0 0c bne $0b04 +0af8: f5 60 03 mov a,$0360+x +0afb: 60 clrc +0afc: 95 20 05 adc a,$0520+x +0aff: 3f 93 14 call $1493 +0b02: 2f 18 bra $0b1c +0b04: f5 60 03 mov a,$0360+x +0b07: 2d push a +0b08: 60 clrc +0b09: 95 20 05 adc a,$0520+x +0b0c: d5 60 03 mov $0360+x,a +0b0f: d5 80 03 mov $0380+x,a +0b12: ae pop a +0b13: 3f 93 14 call $1493 +0b16: 2f 04 bra $0b1c +0b18: d4 a2 mov $a2+x,a +0b1a: d4 b2 mov $b2+x,a +0b1c: f5 a0 05 mov a,$05a0+x +0b1f: f0 0d beq $0b2e +0b21: e8 00 mov a,#$00 +0b23: d5 b0 05 mov $05b0+x,a +0b26: d5 80 05 mov $0580+x,a +0b29: d5 70 05 mov $0570+x,a +0b2c: 2f 0b bra $0b39 +0b2e: d5 70 05 mov $0570+x,a +0b31: f5 90 05 mov a,$0590+x +0b34: d5 80 05 mov $0580+x,a +0b37: e8 00 mov a,#$00 +0b39: d4 d2 mov $d2+x,a +0b3b: d5 50 05 mov $0550+x,a +0b3e: d5 e0 05 mov $05e0+x,a +0b41: d5 f0 05 mov $05f0+x,a +0b44: 8d 00 mov y,#$00 +0b46: f7 29 mov a,($29)+y +0b48: 68 f9 cmp a,#$f9 +0b4a: d0 05 bne $0b51 +0b4c: 3a 29 incw $29 +0b4e: 3f 84 14 call $1484 +0b51: e8 00 mov a,#$00 +0b53: d5 e0 02 mov $02e0+x,a +0b56: 8d 00 mov y,#$00 +0b58: f7 29 mov a,($29)+y +0b5a: f0 25 beq $0b81 +0b5c: 10 1a bpl $0b78 +0b5e: 68 c8 cmp a,#$c8 +0b60: 90 1f bcc $0b81 +0b62: f0 18 beq $0b7c +0b64: 68 e0 cmp a,#$e0 +0b66: 90 19 bcc $0b81 +0b68: 80 setc +0b69: a8 e0 sbc a,#$e0 +0b6b: cb 00 mov $00,y +0b6d: fd mov y,a +0b6e: f6 17 0f mov a,$0f17+y +0b71: 60 clrc +0b72: 84 00 adc a,$00 +0b74: fd mov y,a +0b75: 5f 58 0b jmp $0b58 + +0b78: fc inc y +0b79: 5f 58 0b jmp $0b58 + +0b7c: e8 01 mov a,#$01 +0b7e: d5 e0 02 mov $02e0+x,a +0b81: f5 20 03 mov a,$0320+x +0b84: d4 82 mov $82+x,a +0b86: fd mov y,a +0b87: f5 30 03 mov a,$0330+x +0b8a: cf mul ya +0b8b: dd mov a,y +0b8c: d0 01 bne $0b8f +0b8e: bc inc a +0b8f: d4 92 mov $92+x,a +0b91: e4 19 mov a,$19 +0b93: 68 c9 cmp a,#$c9 +0b95: f0 19 beq $0bb0 +0b97: 68 c8 cmp a,#$c8 +0b99: f0 15 beq $0bb0 +0b9b: f5 f0 02 mov a,$02f0+x +0b9e: f0 07 beq $0ba7 +0ba0: 30 08 bmi $0baa +0ba2: e8 ff mov a,#$ff +0ba4: d5 f0 02 mov $02f0+x,a +0ba7: 8f 01 30 mov $30,#$01 +0baa: 8f 01 2e mov $2e,#$01 +0bad: 8f 01 2f mov $2f,#$01 +0bb0: e4 29 mov a,$29 +0bb2: d5 20 02 mov $0220+x,a +0bb5: e4 2a mov a,$2a +0bb7: d5 30 02 mov $0230+x,a +0bba: 6f ret + +0bbb: f4 c2 mov a,$c2+x +0bbd: f0 27 beq $0be6 +0bbf: 8f 01 2e mov $2e,#$01 +0bc2: 9b c2 dec $c2+x +0bc4: d0 0d bne $0bd3 +0bc6: e8 00 mov a,#$00 +0bc8: d5 30 04 mov $0430+x,a +0bcb: f5 c0 04 mov a,$04c0+x +0bce: d5 40 04 mov $0440+x,a +0bd1: 2f 13 bra $0be6 +0bd3: f5 d0 04 mov a,$04d0+x +0bd6: 60 clrc +0bd7: 95 30 04 adc a,$0430+x +0bda: d5 30 04 mov $0430+x,a +0bdd: f5 e0 04 mov a,$04e0+x +0be0: 95 40 04 adc a,$0440+x +0be3: d5 40 04 mov $0440+x,a +0be6: f5 00 06 mov a,$0600+x +0be9: f0 27 beq $0c12 +0beb: 8f 01 2e mov $2e,#$01 +0bee: 9c dec a +0bef: d5 00 06 mov $0600+x,a +0bf2: d0 0b bne $0bff +0bf4: d5 70 04 mov $0470+x,a +0bf7: f5 10 06 mov a,$0610+x +0bfa: d5 80 04 mov $0480+x,a +0bfd: 2f 13 bra $0c12 +0bff: f5 20 06 mov a,$0620+x +0c02: 60 clrc +0c03: 95 70 04 adc a,$0470+x +0c06: d5 70 04 mov $0470+x,a +0c09: f5 30 06 mov a,$0630+x +0c0c: 95 80 04 adc a,$0480+x +0c0f: d5 80 04 mov $0480+x,a +0c12: f5 40 06 mov a,$0640+x +0c15: f0 32 beq $0c49 +0c17: 9c dec a +0c18: d5 40 06 mov $0640+x,a +0c1b: d0 12 bne $0c2f +0c1d: d5 10 03 mov $0310+x,a +0c20: f5 50 06 mov a,$0650+x +0c23: d5 00 03 mov $0300+x,a +0c26: c8 08 cmp x,#$08 +0c28: b0 1f bcs $0c49 +0c2a: c5 46 00 mov $0046,a +0c2d: 2f 1a bra $0c49 +0c2f: f5 60 06 mov a,$0660+x +0c32: 60 clrc +0c33: 95 10 03 adc a,$0310+x +0c36: d5 10 03 mov $0310+x,a +0c39: f5 70 06 mov a,$0670+x +0c3c: 95 00 03 adc a,$0300+x +0c3f: d5 00 03 mov $0300+x,a +0c42: c8 08 cmp x,#$08 +0c44: b0 03 bcs $0c49 +0c46: c5 46 00 mov $0046,a +0c49: 6f ret + +0c4a: f4 a2 mov a,$a2+x +0c4c: f0 04 beq $0c52 +0c4e: 9b a2 dec $a2+x +0c50: 2f 2b bra $0c7d +0c52: f4 b2 mov a,$b2+x +0c54: f0 27 beq $0c7d +0c56: 8f 01 2f mov $2f,#$01 +0c59: 9b b2 dec $b2+x +0c5b: d0 0d bne $0c6a +0c5d: f5 90 04 mov a,$0490+x +0c60: d5 60 03 mov $0360+x,a +0c63: e8 00 mov a,#$00 +0c65: d5 50 03 mov $0350+x,a +0c68: 2f 13 bra $0c7d +0c6a: f5 a0 04 mov a,$04a0+x +0c6d: 60 clrc +0c6e: 95 70 03 adc a,$0370+x +0c71: d5 70 03 mov $0370+x,a +0c74: f5 b0 04 mov a,$04b0+x +0c77: 95 80 03 adc a,$0380+x +0c7a: d5 80 03 mov $0380+x,a +0c7d: f5 30 05 mov a,$0530+x +0c80: f0 68 beq $0cea +0c82: f5 50 05 mov a,$0550+x +0c85: 75 40 05 cmp a,$0540+x +0c88: b0 06 bcs $0c90 +0c8a: bc inc a +0c8b: d5 50 05 mov $0550+x,a +0c8e: 2f 5a bra $0cea +0c90: f5 b0 05 mov a,$05b0+x +0c93: 75 a0 05 cmp a,$05a0+x +0c96: b0 17 bcs $0caf +0c98: bc inc a +0c99: d5 b0 05 mov $05b0+x,a +0c9c: f5 c0 05 mov a,$05c0+x +0c9f: 60 clrc +0ca0: 95 70 05 adc a,$0570+x +0ca3: d5 70 05 mov $0570+x,a +0ca6: f5 d0 05 mov a,$05d0+x +0ca9: 95 80 05 adc a,$0580+x +0cac: d5 80 05 mov $0580+x,a +0caf: f4 d2 mov a,$d2+x +0cb1: 60 clrc +0cb2: 95 60 05 adc a,$0560+x +0cb5: d4 d2 mov $d2+x,a +0cb7: f5 30 05 mov a,$0530+x +0cba: 68 01 cmp a,#$01 +0cbc: d0 16 bne $0cd4 +0cbe: f4 d2 mov a,$d2+x +0cc0: 1c asl a +0cc1: 1c asl a +0cc2: 90 02 bcc $0cc6 +0cc4: 48 ff eor a,#$ff +0cc6: fd mov y,a +0cc7: f5 80 05 mov a,$0580+x +0cca: cf mul ya +0ccb: dd mov a,y +0ccc: d5 e0 05 mov $05e0+x,a +0ccf: 8f 01 2f mov $2f,#$01 +0cd2: 2f 16 bra $0cea +0cd4: f4 d2 mov a,$d2+x +0cd6: 1c asl a +0cd7: 90 02 bcc $0cdb +0cd9: 48 ff eor a,#$ff +0cdb: fd mov y,a +0cdc: f5 80 05 mov a,$0580+x +0cdf: cf mul ya +0ce0: dd mov a,y +0ce1: 48 ff eor a,#$ff +0ce3: bc inc a +0ce4: d5 f0 05 mov $05f0+x,a +0ce7: 8f 01 2e mov $2e,#$01 +0cea: 6f ret + +0ceb: f4 a2 mov a,$a2+x +0ced: d0 1f bne $0d0e +0cef: f4 b2 mov a,$b2+x +0cf1: f0 1b beq $0d0e +0cf3: 8f 01 2f mov $2f,#$01 +0cf6: f5 b0 04 mov a,$04b0+x +0cf9: fd mov y,a +0cfa: f5 a0 04 mov a,$04a0+x +0cfd: 3f 8b 0f call $0f8b +0d00: 60 clrc +0d01: 95 70 03 adc a,$0370+x +0d04: d5 50 03 mov $0350+x,a +0d07: dd mov a,y +0d08: 95 80 03 adc a,$0380+x +0d0b: d5 60 03 mov $0360+x,a +0d0e: 6f ret + +0d0f: e8 20 mov a,#$20 +0d11: eb 1a mov y,$1a +0d13: cf mul ya +0d14: da 00 movw $00,ya +0d16: e4 1d mov a,$1d +0d18: 60 clrc +0d19: 84 00 adc a,$00 +0d1b: c4 1d mov $1d,a +0d1d: e8 00 mov a,#$00 +0d1f: 84 01 adc a,$01 +0d21: f0 0a beq $0d2d +0d23: e4 49 mov a,$49 +0d25: d0 06 bne $0d2d +0d27: 3f 2e 0d call $0d2e +0d2a: 3f 64 0d call $0d64 +0d2d: 6f ret + +0d2e: e4 5e mov a,$5e +0d30: f0 18 beq $0d4a +0d32: e4 54 mov a,$54 +0d34: 04 55 or a,$55 +0d36: d0 02 bne $0d3a +0d38: ab 55 inc $55 +0d3a: 8b 5e dec $5e +0d3c: d0 06 bne $0d44 +0d3e: eb 5f mov y,$5f +0d40: da 56 movw $56,ya +0d42: 2f 06 bra $0d4a +0d44: ba 60 movw ya,$60 +0d46: 7a 56 addw ya,$56 +0d48: da 56 movw $56,ya +0d4a: e4 4c mov a,$4c +0d4c: f0 15 beq $0d63 +0d4e: 8f ff 33 mov $33,#$ff +0d51: 8b 4c dec $4c +0d53: d0 08 bne $0d5d +0d55: e8 00 mov a,#$00 +0d57: eb 4d mov y,$4d +0d59: da 41 movw $41,ya +0d5b: 2f 06 bra $0d63 +0d5d: ba 4e movw ya,$4e +0d5f: 7a 41 addw ya,$41 +0d61: da 41 movw $41,ya +0d63: 6f ret + +0d64: eb 51 mov y,$51 +0d66: f0 15 beq $0d7d +0d68: 8f ff 33 mov $33,#$ff +0d6b: dc dec y +0d6c: d0 10 bne $0d7e +0d6e: e4 50 mov a,$50 +0d70: 60 clrc +0d71: 88 01 adc a,#$01 +0d73: c4 50 mov $50,a +0d75: 90 06 bcc $0d7d +0d77: 8f 00 50 mov $50,#$00 +0d7a: 8f 00 51 mov $51,#$00 +0d7d: 6f ret + +0d7e: e4 50 mov a,$50 +0d80: 80 setc +0d81: a8 01 sbc a,#$01 +0d83: c4 50 mov $50,a +0d85: f0 02 beq $0d89 +0d87: b0 11 bcs $0d9a +0d89: 8f 01 50 mov $50,#$01 +0d8c: 8f 00 51 mov $51,#$00 +0d8f: e8 80 mov a,#$80 +0d91: c5 10 02 mov $0210,a +0d94: dc dec y +0d95: d0 03 bne $0d9a +0d97: 3f 01 18 call $1801 +0d9a: 6f ret + +0d9b: f5 c0 06 mov a,$06c0+x +0d9e: f0 0d beq $0dad +0da0: fb 62 mov y,$62+x +0da2: d0 09 bne $0dad +0da4: 28 1f and a,#$1f +0da6: c4 4b mov $4b,a +0da8: f5 d5 0e mov a,$0ed5+x +0dab: c4 4a mov $4a,a +0dad: 6f ret + +0dae: e4 2d mov a,$2d +0db0: 8d 5c mov y,#$5c +0db2: 3f 4f 0f call $0f4f +0db5: e4 4a mov a,$4a +0db7: 8d 3d mov y,#$3d +0db9: 3f 4f 0f call $0f4f +0dbc: e4 4b mov a,$4b +0dbe: f0 0c beq $0dcc +0dc0: 8d 6c mov y,#$6c +0dc2: 3f 56 0f call $0f56 +0dc5: 28 e0 and a,#$e0 +0dc7: 04 4b or a,$4b +0dc9: 3f 4f 0f call $0f4f +0dcc: cd 00 mov x,#$00 +0dce: d8 28 mov $28,x +0dd0: 0b 36 asl $36 +0dd2: 2b 37 rol $37 +0dd4: 90 5a bcc $0e30 +0dd6: f5 60 03 mov a,$0360+x +0dd9: 68 ca cmp a,#$ca +0ddb: 90 07 bcc $0de4 +0ddd: 8f 00 0c mov $0c,#$00 +0de0: e8 a4 mov a,#$a4 +0de2: 2f 36 bra $0e1a +0de4: f5 50 03 mov a,$0350+x +0de7: c4 0c mov $0c,a +0de9: f5 60 03 mov a,$0360+x +0dec: c4 0d mov $0d,a +0dee: 8d 00 mov y,#$00 +0df0: f5 90 03 mov a,$0390+x +0df3: 7a 0c addw ya,$0c +0df5: da 0c movw $0c,ya +0df7: 8d 00 mov y,#$00 +0df9: f4 d2 mov a,$d2+x +0dfb: 30 07 bmi $0e04 +0dfd: f5 e0 05 mov a,$05e0+x +0e00: 7a 0c addw ya,$0c +0e02: 2f 09 bra $0e0d +0e04: f5 e0 05 mov a,$05e0+x +0e07: da 00 movw $00,ya +0e09: ba 0c movw ya,$0c +0e0b: 9a 00 subw ya,$00 +0e0d: c4 0c mov $0c,a +0e0f: dd mov a,y +0e10: c8 08 cmp x,#$08 +0e12: b0 02 bcs $0e16 +0e14: 84 43 adc a,$43 +0e16: 60 clrc +0e17: 95 50 04 adc a,$0450+x +0e1a: c4 0d mov $0d,a +0e1c: 3f bf 0f call $0fbf +0e1f: eb 28 mov y,$28 +0e21: fc inc y +0e22: fc inc y +0e23: f5 a0 03 mov a,$03a0+x +0e26: 3f 4f 0f call $0f4f +0e29: fc inc y +0e2a: f5 b0 03 mov a,$03b0+x +0e2d: 3f 4f 0f call $0f4f +0e30: 0b 34 asl $34 +0e32: 2b 35 rol $35 +0e34: 90 03 bcc $0e39 +0e36: 3f 37 10 call $1037 +0e39: 0b 38 asl $38 +0e3b: 2b 39 rol $39 +0e3d: 90 22 bcc $0e61 +0e3f: e4 28 mov a,$28 +0e41: fd mov y,a +0e42: fc inc y +0e43: fc inc y +0e44: fc inc y +0e45: fc inc y +0e46: f5 d0 03 mov a,$03d0+x +0e49: 3f 4f 0f call $0f4f +0e4c: fc inc y +0e4d: f5 e0 03 mov a,$03e0+x +0e50: 3f 4f 0f call $0f4f +0e53: fc inc y +0e54: f5 f0 03 mov a,$03f0+x +0e57: 3f 4f 0f call $0f4f +0e5a: fc inc y +0e5b: f5 00 04 mov a,$0400+x +0e5e: 3f 4f 0f call $0f4f +0e61: e4 28 mov a,$28 +0e63: 60 clrc +0e64: 88 10 adc a,#$10 +0e66: 28 7f and a,#$7f +0e68: c4 28 mov $28,a +0e6a: 3d inc x +0e6b: c8 10 cmp x,#$10 +0e6d: b0 03 bcs $0e72 +0e6f: 5f d0 0d jmp $0dd0 + +0e72: e4 2c mov a,$2c +0e74: 8d 4c mov y,#$4c +0e76: 3f 4f 0f call $0f4f +0e79: 6f ret + +0e7a: c8 08 cmp x,#$08 +0e7c: b0 0f bcs $0e8d +0e7e: f5 d5 0e mov a,$0ed5+x +0e81: 24 32 and a,$32 +0e83: f0 08 beq $0e8d +0e85: 48 ff eor a,#$ff +0e87: 24 32 and a,$32 +0e89: c4 32 mov $32,a +0e8b: 2f 04 bra $0e91 +0e8d: e4 31 mov a,$31 +0e8f: f0 0b beq $0e9c +0e91: f4 62 mov a,$62+x +0e93: d0 07 bne $0e9c +0e95: f5 d5 0e mov a,$0ed5+x +0e98: 04 2d or a,$2d +0e9a: c4 2d mov $2d,a +0e9c: c8 08 cmp x,#$08 +0e9e: b0 0f bcs $0eaf +0ea0: f5 d5 0e mov a,$0ed5+x +0ea3: 24 33 and a,$33 +0ea5: f0 08 beq $0eaf +0ea7: 48 ff eor a,#$ff +0ea9: 24 33 and a,$33 +0eab: c4 33 mov $33,a +0ead: 2f 04 bra $0eb3 +0eaf: e4 2e mov a,$2e +0eb1: f0 06 beq $0eb9 +0eb3: f4 62 mov a,$62+x +0eb5: d0 02 bne $0eb9 +0eb7: 02 34 set0 $34 +0eb9: e4 2f mov a,$2f +0ebb: f0 06 beq $0ec3 +0ebd: f4 62 mov a,$62+x +0ebf: d0 02 bne $0ec3 +0ec1: 02 36 set0 $36 +0ec3: e4 30 mov a,$30 +0ec5: f0 0d beq $0ed4 +0ec7: f4 62 mov a,$62+x +0ec9: d0 09 bne $0ed4 +0ecb: 02 38 set0 $38 +0ecd: f5 d5 0e mov a,$0ed5+x +0ed0: 04 2c or a,$2c +0ed2: c4 2c mov $2c,a +0ed4: 6f ret + +0ed5: db $01,$02,$04,$08,$10,$20,$40,$80 +0edd: db $01,$02,$04,$08,$10,$20,$40,$80 + +; pitch table +0ee5: dw $085f +0ee7: dw $08de +0ee9: dw $0965 +0eeb: dw $09f4 +0eed: dw $0a8c +0eef: dw $0b2c +0ef1: dw $0bd6 +0ef3: dw $0c8b +0ef5: dw $0d4a +0ef7: dw $0e14 +0ef9: dw $0eea +0efb: dw $0fcd +0efd: dw $10be + +0eff: db $7f,$00,$87,$00,$8f,$00,$98,$00,$a0,$00,$aa,$00,$b5,$00,$bf,$00,$ca,$00,$d6,$00,$e3,$00,$f1,$00 + +; vcmd length table (includes opcode itself, unlike normal N-SPC) +0f17: db $02,$02,$03,$04,$01,$02,$03,$02 ; e0-e7 +0f1f: db $03,$02,$02,$04,$01,$02,$03,$04 ; e8-ef +0f27: db $02,$04,$04,$01,$02,$04,$01,$04 ; f0-f7 +0f2f: db $04,$04,$02,$01,$02,$03,$04,$01 ; f8-ff + +; per-note velocity values +0f37: db $10,$20,$30,$40,$50,$60,$70,$80 +0f3f: db $90,$a0,$b0,$c0,$d0,$e0,$f0,$ff + +0f47: db $32,$65,$7f,$98,$b2,$cb,$e5,$fc + +0f4f: cc f2 00 mov $00f2,y +0f52: c5 f3 00 mov $00f3,a +0f55: 6f ret + +0f56: cc f2 00 mov $00f2,y +0f59: e5 f3 00 mov a,$00f3 +0f5c: 6f ret + +0f5d: 8d 00 mov y,#$00 +0f5f: f7 29 mov a,($29)+y +0f61: 3a 29 incw $29 +0f63: 6f ret + +0f64: c4 01 mov $01,a +0f66: 7e 01 cmp y,$01 +0f68: 90 11 bcc $0f7b +0f6a: f8 00 mov x,$00 +0f6c: dd mov a,y +0f6d: 80 setc +0f6e: a4 01 sbc a,$01 +0f70: 8d 00 mov y,#$00 +0f72: 9e div ya,x +0f73: 2d push a +0f74: e8 00 mov a,#$00 +0f76: 9e div ya,x +0f77: ee pop y +0f78: f8 27 mov x,$27 +0f7a: 6f ret + +0f7b: dd mov a,y +0f7c: eb 01 mov y,$01 +0f7e: c4 01 mov $01,a +0f80: 3f 6a 0f call $0f6a +0f83: da 00 movw $00,ya +0f85: e8 00 mov a,#$00 +0f87: fd mov y,a +0f88: 9a 00 subw ya,$00 +0f8a: 6f ret + +0f8b: ad 80 cmp y,#$80 +0f8d: b0 12 bcs $0fa1 +0f8f: cb 01 mov $01,y +0f91: fb 72 mov y,$72+x +0f93: cf mul ya +0f94: cb 00 mov $00,y +0f96: e4 01 mov a,$01 +0f98: 8f 00 01 mov $01,#$00 +0f9b: fb 72 mov y,$72+x +0f9d: cf mul ya +0f9e: 7a 00 addw ya,$00 +0fa0: 6f ret + +0fa1: da 00 movw $00,ya +0fa3: e8 00 mov a,#$00 +0fa5: fd mov y,a +0fa6: 9a 00 subw ya,$00 +0fa8: 3f 8f 0f call $0f8f +0fab: da 00 movw $00,ya +0fad: e8 00 mov a,#$00 +0faf: fd mov y,a +0fb0: 9a 00 subw ya,$00 +0fb2: 6f ret + +0fb3: e8 5f mov a,#$5f +0fb5: 8d 0c mov y,#$0c +0fb7: 3f 4f 0f call $0f4f +0fba: 8d 1c mov y,#$1c +0fbc: 5f 4f 0f jmp $0f4f + +0fbf: f5 60 04 mov a,$0460+x +0fc2: f0 06 beq $0fca +0fc4: ba 0c movw ya,$0c +0fc6: 7a 44 addw ya,$44 +0fc8: da 0c movw $0c,ya +0fca: 4d push x +0fcb: e4 0d mov a,$0d +0fcd: 28 7f and a,#$7f +0fcf: 1c asl a +0fd0: 8d 00 mov y,#$00 +0fd2: cd 18 mov x,#$18 +0fd4: 9e div ya,x +0fd5: 5d mov x,a +0fd6: f6 e5 0e mov a,$0ee5+y +0fd9: c4 00 mov $00,a +0fdb: f6 e6 0e mov a,$0ee6+y +0fde: c4 01 mov $01,a +0fe0: f6 00 0f mov a,$0f00+y +0fe3: c4 05 mov $05,a +0fe5: f6 ff 0e mov a,$0eff+y +0fe8: c4 04 mov $04,a +0fea: eb 0c mov y,$0c +0fec: cf mul ya +0fed: da 06 movw $06,ya +0fef: e4 05 mov a,$05 +0ff1: eb 0c mov y,$0c +0ff3: cf mul ya +0ff4: da 04 movw $04,ya +0ff6: e4 07 mov a,$07 +0ff8: 8d 00 mov y,#$00 +0ffa: 7a 04 addw ya,$04 +0ffc: 7a 00 addw ya,$00 +0ffe: da 00 movw $00,ya +1000: c8 05 cmp x,#$05 +1002: b0 07 bcs $100b +1004: 4b 01 lsr $01 +1006: 6b 00 ror $00 +1008: 3d inc x +1009: 2f f5 bra $1000 +100b: ce pop x +100c: f5 10 04 mov a,$0410+x +100f: eb 01 mov y,$01 +1011: cf mul ya +1012: da 02 movw $02,ya +1014: f5 20 04 mov a,$0420+x +1017: eb 00 mov y,$00 +1019: cf mul ya +101a: 7a 02 addw ya,$02 +101c: da 02 movw $02,ya +101e: f5 10 04 mov a,$0410+x +1021: eb 00 mov y,$00 +1023: cf mul ya +1024: 6d push y +1025: f5 20 04 mov a,$0420+x +1028: eb 01 mov y,$01 +102a: cf mul ya +102b: fd mov y,a +102c: ae pop a +102d: 7a 02 addw ya,$02 +102f: d5 a0 03 mov $03a0+x,a +1032: dd mov a,y +1033: d5 b0 03 mov $03b0+x,a +1036: 6f ret + +1037: f5 40 04 mov a,$0440+x +103a: fd mov y,a +103b: f5 80 06 mov a,$0680+x +103e: f0 01 beq $1041 +1040: cf mul ya +1041: c8 08 cmp x,#$08 +1043: b0 0d bcs $1052 +1045: e8 4f mov a,#$4f +1047: cf mul ya +1048: e4 42 mov a,$42 +104a: cf mul ya +104b: e4 50 mov a,$50 +104d: f0 06 beq $1055 +104f: cf mul ya +1050: 2f 03 bra $1055 +1052: e8 ff mov a,#$ff +1054: cf mul ya +1055: f5 40 03 mov a,$0340+x +1058: bc inc a +1059: f0 01 beq $105c +105b: cf mul ya +105c: f5 f0 05 mov a,$05f0+x +105f: f0 01 beq $1062 +1061: cf mul ya +1062: dd mov a,y +1063: 5c lsr a +1064: fd mov y,a +1065: cb 00 mov $00,y +1067: cb 02 mov $02,y +1069: cb 03 mov $03,y +106b: f5 80 04 mov a,$0480+x +106e: c4 04 mov $04,a +1070: e4 48 mov a,$48 +1072: d0 1e bne $1092 +1074: eb 04 mov y,$04 +1076: ad 0a cmp y,#$0a +1078: b0 08 bcs $1082 +107a: f6 9f 10 mov a,$109f+y +107d: eb 00 mov y,$00 +107f: cf mul ya +1080: cb 02 mov $02,y +1082: e4 04 mov a,$04 +1084: 80 setc +1085: a8 0b sbc a,#$0b +1087: 90 09 bcc $1092 +1089: fd mov y,a +108a: f6 a9 10 mov a,$10a9+y +108d: eb 00 mov y,$00 +108f: cf mul ya +1090: cb 03 mov $03,y +1092: eb 28 mov y,$28 +1094: e4 02 mov a,$02 +1096: 3f 4f 0f call $0f4f +1099: fc inc y +109a: e4 03 mov a,$03 +109c: 5f 4f 0f jmp $0f4f + +109f: 00 nop +10a0: 19 or (x),(y) +10a1: 32 4b clr1 $4b +10a3: 64 7d cmp a,$7d +10a5: 96 af c8 adc a,$c8af+y +10a8: e1 tcall 14 +10a9: e1 tcall 14 +10aa: c8 af cmp x,#$af +10ac: 96 7d 64 adc a,$647d+y +10af: 4b 32 lsr $32 +10b1: 19 or (x),(y) +10b2: 00 nop +10b3: c4 00 mov $00,a +10b5: 8d 7d mov y,#$7d +10b7: cc f2 00 mov $00f2,y +10ba: e5 f3 00 mov a,$00f3 +10bd: 28 0f and a,#$0f +10bf: 64 00 cmp a,$00 +10c1: f0 05 beq $10c8 +10c3: 1c asl a +10c4: 1c asl a +10c5: 1c asl a +10c6: c4 54 mov $54,a +10c8: e8 00 mov a,#$00 +10ca: c4 55 mov $55,a +10cc: ab 54 inc $54 +10ce: 8d 04 mov y,#$04 +10d0: cd 00 mov x,#$00 +10d2: f6 01 11 mov a,$1101+y +10d5: c5 f2 00 mov $00f2,a +10d8: c9 f3 00 mov $00f3,x +10db: fe f5 dbnz y,$10d2 +10dd: 8d 6c mov y,#$6c +10df: 3f 56 0f call $0f56 +10e2: 08 20 or a,#$20 +10e4: 3f 4f 0f call $0f4f +10e7: 8d 7d mov y,#$7d +10e9: e4 00 mov a,$00 +10eb: 3f 4f 0f call $0f4f +10ee: 1c asl a +10ef: 1c asl a +10f0: 1c asl a +10f1: 48 ff eor a,#$ff +10f3: 80 setc +10f4: 88 ff adc a,#$ff +10f6: 8d 6d mov y,#$6d +10f8: 3f 4f 0f call $0f4f +10fb: 64 5d cmp a,$5d +10fd: b0 02 bcs $1101 +10ff: c4 5d mov $5d,a +1101: 6f ret + +1102: 2c 3c 0d rol $0d3c +1105: 4d push x +1106: e4 54 mov a,$54 +1108: d0 0b bne $1115 +110a: 8d 4d mov y,#$4d +110c: e4 3b mov a,$3b +110e: 48 ff eor a,#$ff +1110: 24 5c and a,$5c +1112: 3f 4f 0f call $0f4f +1115: 6f ret + +1116: 28 1f and a,#$1f +1118: 1c asl a +1119: fd mov y,a +111a: f6 24 11 mov a,$1124+y +111b: 24 11 and a,$11 +111d: 2d push a +111e: f6 23 11 mov a,$1123+y +1121: 2d push a +1122: 6f ret + +; vcmd dispatch table +1124: dw $1163 ; e0 - set instrument +1126: dw $11cf ; e1 - pan +1128: dw $11de ; e2 - pan fade +112a: dw $11fb ; e3 - vibrato on +112c: dw $1218 ; e4 - vibrato off +112e: dw $121e ; e5 - master volume +1130: dw $122d ; e6 - master volume fade +1132: dw $1242 ; e7 - tempo +1134: dw $1258 ; e8 - tempo fade +1136: dw $1275 ; e9 - global transpose +1138: dw $127b ; ea - per-voice transpose +113a: dw $1282 ; eb - tremolo on +113c: dw $129f ; ec - tremolo off +113e: dw $12a5 ; ed - volume +1140: dw $12b3 ; ee - volume fade +1142: dw $12cf ; ef - call subroutine +1144: dw $137d ; f0 - vibrato fade +1146: dw $1396 ; f1 - pitch envelope (release) +1148: dw $13ae ; f2 - pitch envelope (attack) +114a: dw $13c6 ; f3 - pitch envelope off +114c: dw $13d0 ; f4 - tuning +114e: dw $13d7 ; f5 - echo vbits/volume +1150: dw $13fb ; f6 - disable echo +1152: dw $1413 ; f7 - set echo params +1154: dw $146c ; f8 - echo volume fade +1156: dw $1486 ; f9 - pitch slide +1158: dw $14a5 ; fa - set perc base +115a: dw $14ac ; fb +115c: dw $14b2 ; fc - set noise +115e: dw $14b9 ; fd +1160: dw $14c6 ; fe - set multiple channel parameters +1162: dw $14de ; ff - nop + +; vcmd e0 - set instrument +1163: 3f 5d 0f call $0f5d +1166: d5 c0 03 mov $03c0+x,a +1169: e8 00 mov a,#$00 +116b: d5 c0 06 mov $06c0+x,a +116e: d5 d0 06 mov $06d0+x,a +1171: d5 f0 06 mov $06f0+x,a +1174: 6f ret + +1175: d5 90 06 mov $0690+x,a +1178: 8d 06 mov y,#$06 +117a: cf mul ya +117b: 7a 21 addw ya,$21 +117d: da 00 movw $00,ya +117f: 8d 00 mov y,#$00 +1181: f5 f0 06 mov a,$06f0+x +1184: d0 05 bne $118b +1186: f7 00 mov a,($00)+y +1188: d5 d0 03 mov $03d0+x,a +118b: fc inc y +118c: f5 d0 06 mov a,$06d0+x +118f: f0 0d beq $119e +1191: d5 e0 03 mov $03e0+x,a +1194: fc inc y +1195: f5 e0 06 mov a,$06e0+x +1198: d5 f0 03 mov $03f0+x,a +119b: fc inc y +119c: 2f 0c bra $11aa +119e: f7 00 mov a,($00)+y +11a0: d5 e0 03 mov $03e0+x,a +11a3: fc inc y +11a4: f7 00 mov a,($00)+y +11a6: d5 f0 03 mov $03f0+x,a +11a9: fc inc y +11aa: f7 00 mov a,($00)+y +11ac: d5 00 04 mov $0400+x,a +11af: fc inc y +11b0: f5 c0 06 mov a,$06c0+x +11b3: f0 09 beq $11be +11b5: e8 00 mov a,#$00 +11b7: d5 20 04 mov $0420+x,a +11ba: d5 10 04 mov $0410+x,a +11bd: 6f ret + +11be: f5 f0 06 mov a,$06f0+x +11c1: d0 0b bne $11ce +11c3: f7 00 mov a,($00)+y +11c5: d5 20 04 mov $0420+x,a +11c8: fc inc y +11c9: f7 00 mov a,($00)+y +11cb: d5 10 04 mov $0410+x,a +11ce: 6f ret + +; vcmd e1 - pan +11cf: 3f 5d 0f call $0f5d +11d2: d5 80 04 mov $0480+x,a +11d5: e8 00 mov a,#$00 +11d7: d5 70 04 mov $0470+x,a +11da: d5 00 06 mov $0600+x,a +11dd: 6f ret + +; vcmd e2 - pan fade +11de: 3f 5d 0f call $0f5d +11e1: d5 00 06 mov $0600+x,a +11e4: c4 00 mov $00,a +11e6: 3f 5d 0f call $0f5d +11e9: d5 10 06 mov $0610+x,a +11ec: fd mov y,a +11ed: f5 80 04 mov a,$0480+x +11f0: 3f 64 0f call $0f64 +11f3: d5 20 06 mov $0620+x,a +11f6: dd mov a,y +11f7: d5 30 06 mov $0630+x,a +11fa: 6f ret + +; vcmd e3 - vibrato on +11fb: 3f 5d 0f call $0f5d +11fe: d5 40 05 mov $0540+x,a +1201: 3f 5d 0f call $0f5d +1204: d5 60 05 mov $0560+x,a +1207: 3f 5d 0f call $0f5d +120a: d5 90 05 mov $0590+x,a +120d: e8 01 mov a,#$01 +120f: d5 30 05 mov $0530+x,a +1212: e8 00 mov a,#$00 +1214: d5 a0 05 mov $05a0+x,a +1217: 6f ret + +; vcmd e4 - vibrato off +1218: e8 00 mov a,#$00 +121a: d5 30 05 mov $0530+x,a +121d: 6f ret + +; vcmd e5 - master volume +121e: 3f 5d 0f call $0f5d +1221: c4 42 mov $42,a +1223: 8f 00 41 mov $41,#$00 +1226: 8f 00 4c mov $4c,#$00 +1229: 8f ff 33 mov $33,#$ff +122c: 6f ret + +; vcmd e6 - master volume fade +122d: 3f 5d 0f call $0f5d +1230: c4 4c mov $4c,a +1232: c4 00 mov $00,a +1234: 3f 5d 0f call $0f5d +1237: c4 4d mov $4d,a +1239: fd mov y,a +123a: e4 42 mov a,$42 +123c: 3f 64 0f call $0f64 +123f: da 4e movw $4e,ya +1241: 6f ret + +; vcmd e7 - tempo +1242: e8 00 mov a,#$00 +1244: d5 10 03 mov $0310+x,a +1247: d5 40 06 mov $0640+x,a +124a: 3f 5d 0f call $0f5d +124d: d5 00 03 mov $0300+x,a +1250: c8 08 cmp x,#$08 +1252: b0 03 bcs $1257 +1254: c5 46 00 mov $0046,a +1257: 6f ret + +; vcmd e8 - tempo fade +1258: 3f 5d 0f call $0f5d +125b: d5 40 06 mov $0640+x,a +125e: c4 00 mov $00,a +1260: 3f 5d 0f call $0f5d +1263: d5 50 06 mov $0650+x,a +1266: fd mov y,a +1267: f5 00 03 mov a,$0300+x +126a: 3f 64 0f call $0f64 +126d: d5 60 06 mov $0660+x,a +1270: dd mov a,y +1271: d5 70 06 mov $0670+x,a +1274: 6f ret + +; vcmd e9 - global transpose +1275: 3f 5d 0f call $0f5d +1278: c4 43 mov $43,a +127a: 6f ret + +; vcmd ea - per-voice transpose +127b: 3f 5d 0f call $0f5d +127e: d5 50 04 mov $0450+x,a +1281: 6f ret + +; vcmd eb - tremolo on +1282: 3f 5d 0f call $0f5d +1285: d5 40 05 mov $0540+x,a +1288: 3f 5d 0f call $0f5d +128b: d5 60 05 mov $0560+x,a +128e: 3f 5d 0f call $0f5d +1291: d5 90 05 mov $0590+x,a +1294: e8 02 mov a,#$02 +1296: d5 30 05 mov $0530+x,a +1299: e8 00 mov a,#$00 +129b: d5 a0 05 mov $05a0+x,a +129e: 6f ret + +; vcmd ec - tremolo off +129f: e8 00 mov a,#$00 +12a1: d5 30 05 mov $0530+x,a +12a4: 6f ret + +; vcmd ed - volume +12a5: 3f 5d 0f call $0f5d +12a8: d5 40 04 mov $0440+x,a +12ab: e8 00 mov a,#$00 +12ad: d4 c2 mov $c2+x,a +12af: d5 30 04 mov $0430+x,a +12b2: 6f ret + +; vcmd ee - volume fade +12b3: 3f 5d 0f call $0f5d +12b6: d4 c2 mov $c2+x,a +12b8: c4 00 mov $00,a +12ba: 3f 5d 0f call $0f5d +12bd: d5 c0 04 mov $04c0+x,a +12c0: fd mov y,a +12c1: f5 40 04 mov a,$0440+x +12c4: 3f 64 0f call $0f64 +12c7: d5 d0 04 mov $04d0+x,a +12ca: dd mov a,y +12cb: d5 e0 04 mov $04e0+x,a +12ce: 6f ret + +; vcmd ef - call subroutine +12cf: 3f 5d 0f call $0f5d +12d2: c4 00 mov $00,a +12d4: 3f 5d 0f call $0f5d +12d7: c4 01 mov $01,a +12d9: 3f 5d 0f call $0f5d +12dc: c4 02 mov $02,a +12de: f5 c0 02 mov a,$02c0+x +12e1: d0 21 bne $1304 +12e3: e4 02 mov a,$02 +12e5: d5 c0 02 mov $02c0+x,a +12e8: e4 00 mov a,$00 +12ea: d5 60 02 mov $0260+x,a +12ed: d5 20 02 mov $0220+x,a +12f0: e4 01 mov a,$01 +12f2: d5 70 02 mov $0270+x,a +12f5: d5 30 02 mov $0230+x,a +12f8: e4 29 mov a,$29 +12fa: d5 40 02 mov $0240+x,a +12fd: e4 2a mov a,$2a +12ff: d5 50 02 mov $0250+x,a +1302: 2f 6e bra $1372 +1304: d5 d0 02 mov $02d0+x,a +1307: e4 02 mov a,$02 +1309: d5 c0 02 mov $02c0+x,a +130c: e4 00 mov a,$00 +130e: d5 80 02 mov $0280+x,a +1311: d5 20 02 mov $0220+x,a +1314: e4 01 mov a,$01 +1316: d5 90 02 mov $0290+x,a +1319: d5 30 02 mov $0230+x,a +131c: e4 29 mov a,$29 +131e: d5 a0 02 mov $02a0+x,a +1321: e4 2a mov a,$2a +1323: d5 b0 02 mov $02b0+x,a +1326: 2f 4a bra $1372 +1328: f5 d0 02 mov a,$02d0+x +132b: d0 0e bne $133b +132d: f5 40 02 mov a,$0240+x +1330: d5 20 02 mov $0220+x,a +1333: f5 50 02 mov a,$0250+x +1336: d5 30 02 mov $0230+x,a +1339: 2f 37 bra $1372 +133b: d5 c0 02 mov $02c0+x,a +133e: e8 00 mov a,#$00 +1340: d5 d0 02 mov $02d0+x,a +1343: f5 a0 02 mov a,$02a0+x +1346: d5 20 02 mov $0220+x,a +1349: f5 b0 02 mov a,$02b0+x +134c: d5 30 02 mov $0230+x,a +134f: 2f 21 bra $1372 +1351: f5 d0 02 mov a,$02d0+x +1354: d0 0e bne $1364 +1356: f5 60 02 mov a,$0260+x +1359: d5 20 02 mov $0220+x,a +135c: f5 70 02 mov a,$0270+x +135f: d5 30 02 mov $0230+x,a +1362: 2f 0e bra $1372 +1364: f5 80 02 mov a,$0280+x +1367: d5 20 02 mov $0220+x,a +136a: f5 90 02 mov a,$0290+x +136d: d5 30 02 mov $0230+x,a +1370: 2f 00 bra $1372 +1372: f5 20 02 mov a,$0220+x +1375: c4 29 mov $29,a +1377: f5 30 02 mov a,$0230+x +137a: c4 2a mov $2a,a +137c: 6f ret + +137d: 3f 5d 0f call $0f5d +1380: d5 a0 05 mov $05a0+x,a +1383: c4 00 mov $00,a +1385: f5 90 05 mov a,$0590+x +1388: fd mov y,a +1389: e8 00 mov a,#$00 +138b: 3f 64 0f call $0f64 +138e: d5 c0 05 mov $05c0+x,a +1391: dd mov a,y +1392: d5 d0 05 mov $05d0+x,a +1395: 6f ret + +; vcmd f1 - pitch envelope (release) +1396: e8 01 mov a,#$01 +1398: d5 f0 04 mov $04f0+x,a +139b: 3f 5d 0f call $0f5d +139e: d5 00 05 mov $0500+x,a +13a1: 3f 5d 0f call $0f5d +13a4: d5 10 05 mov $0510+x,a +13a7: 3f 5d 0f call $0f5d +13aa: d5 20 05 mov $0520+x,a +13ad: 6f ret + +; vcmd f2 - pitch envelope (attack) +13ae: e8 02 mov a,#$02 +13b0: d5 f0 04 mov $04f0+x,a +13b3: 3f 5d 0f call $0f5d +13b6: d5 00 05 mov $0500+x,a +13b9: 3f 5d 0f call $0f5d +13bc: d5 10 05 mov $0510+x,a +13bf: 3f 5d 0f call $0f5d +13c2: d5 20 05 mov $0520+x,a +13c5: 6f ret + +; vcmd f3 - pitch envelope off +13c6: e8 00 mov a,#$00 +13c8: d5 f0 04 mov $04f0+x,a +13cb: d4 a2 mov $a2+x,a +13cd: d4 b2 mov $b2+x,a +13cf: 6f ret + +; vcmd f4 - tuning +13d0: 3f 5d 0f call $0f5d +13d3: d5 90 03 mov $0390+x,a +13d6: 6f ret + +; vcmd f5 - echo vbits/volume +13d7: 3f 5d 0f call $0f5d +13da: c4 5c mov $5c,a +13dc: 3f 5d 0f call $0f5d +13df: c4 57 mov $57,a +13e1: 8f 00 56 mov $56,#$00 +13e4: 8f 00 5e mov $5e,#$00 +13e7: 3f 5d 0f call $0f5d +13ea: c4 58 mov $58,a +13ec: 3f 06 11 call $1106 +13ef: 78 ff 5d cmp $5d,#$ff +13f2: f0 06 beq $13fa +13f4: e4 55 mov a,$55 +13f6: d0 02 bne $13fa +13f8: ab 55 inc $55 +13fa: 6f ret + +; vcmd f6 - disable echo +13fb: e8 00 mov a,#$00 +13fd: c4 5c mov $5c,a +13ff: c4 57 mov $57,a +1401: c4 58 mov $58,a +1403: c4 5e mov $5e,a +1405: c4 59 mov $59,a +1407: 3f b3 10 call $10b3 +140a: e8 00 mov a,#$00 +140c: c4 54 mov $54,a +140e: c4 55 mov $55,a +1410: f8 27 mov x,$27 +1412: 6f ret + +; vcmd f7 - set echo params +1413: 3f 5d 0f call $0f5d +1416: c4 59 mov $59,a +1418: 3f b3 10 call $10b3 +141b: f8 27 mov x,$27 +141d: 3f 5d 0f call $0f5d +1420: c4 5a mov $5a,a +1422: 3f 5d 0f call $0f5d +1425: c4 5b mov $5b,a +1427: 68 05 cmp a,#$05 +1429: 90 02 bcc $142d +142b: e8 00 mov a,#$00 +142d: 8d 08 mov y,#$08 +142f: cf mul ya +1430: 5d mov x,a +1431: 8d 0f mov y,#$0f +1433: f5 44 14 mov a,$1444+x +1436: 3f 4f 0f call $0f4f +1439: 3d inc x +143a: dd mov a,y +143b: 60 clrc +143c: 88 10 adc a,#$10 +143e: fd mov y,a +143f: 10 f2 bpl $1433 +1441: f8 27 mov x,$27 +1443: 6f ret + +1444: db $7f,$00,$00,$00,$00,$00,$00,$00 +144c: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c +1454: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 +145c: db $34,$33,$00,$d9,$e5,$01,$fc,$eb +1464: db $02,$00,$ee,$4b,$ee,$00,$02,$00 + +; vcmd f8 - echo volume fade +146c: 3f 5d 0f call $0f5d +146f: c4 5e mov $5e,a +1471: c4 00 mov $00,a +1473: 3f 5d 0f call $0f5d +1476: c4 5f mov $5f,a +1478: fd mov y,a +1479: e4 57 mov a,$57 +147b: 3f 64 0f call $0f64 +147e: da 60 movw $60,ya +1480: 3f 5d 0f call $0f5d +1483: 6f ret + +; vcmd f9 - pitch slide +1484: 3f 5d 0f call $0f5d +1487: d4 a2 mov $a2+x,a +1489: 3f 5d 0f call $0f5d +148c: d4 b2 mov $b2+x,a +148e: c4 00 mov $00,a +1490: 3f 5d 0f call $0f5d +1493: d5 90 04 mov $0490+x,a +1496: fd mov y,a +1497: f5 60 03 mov a,$0360+x +149a: 3f 64 0f call $0f64 +149d: d5 a0 04 mov $04a0+x,a +14a0: dd mov a,y +14a1: d5 b0 04 mov $04b0+x,a +14a4: 6f ret + +; vcmd fa - set perc base +14a5: 3f 5d 0f call $0f5d +14a8: c5 40 00 mov $0040,a +14ab: 6f ret + +; vcmd fb +14ac: e8 01 mov a,#$01 +14ae: d5 f0 02 mov $02f0+x,a +14b1: 6f ret + +; vcmd fc - set noise +14b2: 3f 5d 0f call $0f5d +14b5: d5 c0 06 mov $06c0+x,a +14b8: 6f ret + +; vcmd fd +14b9: 3f 5d 0f call $0f5d +14bc: d5 d0 06 mov $06d0+x,a +14bf: 3f 5d 0f call $0f5d +14c2: d5 e0 06 mov $06e0+x,a +14c5: 6f ret + +; vcmd fe - set multiple channel parameters +14c6: e8 01 mov a,#$01 +14c8: d5 f0 06 mov $06f0+x,a +14cb: 3f 5d 0f call $0f5d +14ce: d5 d0 03 mov $03d0+x,a +14d1: 3f 5d 0f call $0f5d +14d4: d5 20 04 mov $0420+x,a +14d7: 3f 5d 0f call $0f5d +14da: d5 10 04 mov $0410+x,a +14dd: 6f ret + +; vcmd ff - nop +14de: 60 clrc +14df: 6f ret + +; play song in A +14e0: 9c dec a +14e1: 1c asl a +14e2: fd mov y,a +14e3: f7 23 mov a,($23)+y +14e5: c4 3c mov $3c,a +14e7: fc inc y +14e8: f7 23 mov a,($23)+y +14ea: c4 3d mov $3d,a +14ec: 8f 00 3e mov $3e,#$00 +14ef: 8f 00 3f mov $3f,#$00 +14f2: cd 00 mov x,#$00 +14f4: 3f f7 15 call $15f7 +14f7: 3d inc x +14f8: c8 08 cmp x,#$08 +14fa: 90 f8 bcc $14f4 +; process next section list word +14fc: 8d 00 mov y,#$00 +14fe: f7 3c mov a,($3c)+y +1500: c4 00 mov $00,a +1502: 3a 3c incw $3c +1504: f7 3c mov a,($3c)+y +1506: c4 01 mov $01,a +1508: 3a 3c incw $3c ; read a word from section list ptr +150a: 68 00 cmp a,#$00 +150c: d0 28 bne $1536 ; >= $0100, load that section ($00/1) +150e: e4 00 mov a,$00 +1510: f0 47 beq $1559 ; == $0000, song end +1512: 68 ff cmp a,#$ff +1514: f0 10 beq $1526 ; infinite loop ($00ff xxxx) +1516: eb 3e mov y,$3e ; == $00xx, repeat section (slightly different from usual N-SPC) +1518: f0 0a beq $1524 ; start new repeat if repeat count has not been set +151a: 8b 3e dec $3e +151c: d0 08 bne $1526 +151e: 3a 3c incw $3c +1520: 3a 3c incw $3c +1522: 2f d8 bra $14fc +1524: c4 3e mov $3e,a ; set section repeat count +1526: 8d 00 mov y,#$00 +1528: f7 3c mov a,($3c)+y +152a: 2d push a +152b: 3a 3c incw $3c +152d: f7 3c mov a,($3c)+y +152f: c4 3d mov $3d,a +1531: ae pop a +1532: c4 3c mov $3c,a ; repeat from $3c/d (used for backjump) +1534: 2f c6 bra $14fc +; load section $00/1, set vcmd ptr for each channels +1536: cd 00 mov x,#$00 +1538: 8d 00 mov y,#$00 +153a: e8 02 mov a,#$02 +153c: d5 00 02 mov $0200+x,a ; inactivate channel +153f: f7 00 mov a,($00)+y +1541: c4 02 mov $02,a +1543: fc inc y +1544: f7 00 mov a,($00)+y +1546: c4 03 mov $03,a ; read vcmd ptr to $02/3 +1548: fc inc y +1549: 04 02 or a,$02 +154b: f0 03 beq $1550 +154d: 3f d8 15 call $15d8 ; start channel unless it is zero +1550: 3d inc x +1551: c8 08 cmp x,#$08 +1553: 90 e5 bcc $153a +1555: 8f 01 3f mov $3f,#$01 +1558: 6f ret + +; song end +1559: cd 00 mov x,#$00 +155b: e8 02 mov a,#$02 +155d: d5 00 02 mov $0200+x,a +1560: e8 00 mov a,#$00 +1562: d5 10 02 mov $0210+x,a +1565: 3d inc x +1566: c8 08 cmp x,#$08 +1568: d0 f1 bne $155b +156a: 6f ret + +156b: 3f fc 14 call $14fc +156e: e5 10 02 mov a,$0210 +1571: f0 05 beq $1578 +1573: cd 00 mov x,#$00 +1575: 5f 1e 0a jmp $0a1e + +1578: 6f ret + +1579: 28 7f and a,#$7f +157b: 9c dec a +157c: 1c asl a +157d: fd mov y,a +157e: f7 25 mov a,($25)+y +1580: c4 00 mov $00,a +1582: fc inc y +1583: f7 25 mov a,($25)+y +1585: c4 01 mov $01,a +1587: cd 0f mov x,#$0f +1589: 8d 00 mov y,#$00 +158b: f7 00 mov a,($00)+y +158d: c4 02 mov $02,a +158f: fc inc y +1590: f7 00 mov a,($00)+y +1592: c4 03 mov $03,a +1594: d0 08 bne $159e +1596: e4 02 mov a,$02 +1598: f0 1d beq $15b7 +159a: 68 ff cmp a,#$ff +159c: f0 1f beq $15bd +159e: e4 11 mov a,$11 +15a0: 28 3f and a,#$3f +15a2: d5 10 02 mov $0210+x,a +15a5: 3f d8 15 call $15d8 +15a8: e8 03 mov a,#$03 +15aa: d5 00 02 mov $0200+x,a +15ad: e4 3b mov a,$3b +15af: 15 d5 0e or a,$0ed5+x +15b2: c4 3b mov $3b,a +15b4: 3f c1 15 call $15c1 +15b7: fc inc y +15b8: 1d dec x +15b9: c8 08 cmp x,#$08 +15bb: b0 ce bcs $158b +15bd: 3f 06 11 call $1106 +15c0: 6f ret + +15c1: e4 11 mov a,$11 +15c3: 68 c0 cmp a,#$c0 +15c5: b0 05 bcs $15cc +15c7: 68 40 cmp a,#$40 +15c9: b0 07 bcs $15d2 +15cb: 6f ret + +15cc: e4 13 mov a,$13 +15ce: d5 80 04 mov $0480+x,a +15d1: 6f ret + +15d2: e8 01 mov a,#$01 +15d4: d5 60 04 mov $0460+x,a +15d7: 6f ret + +15d8: e8 01 mov a,#$01 +15da: d5 00 02 mov $0200+x,a +15dd: e4 02 mov a,$02 +15df: d5 20 02 mov $0220+x,a +15e2: e4 03 mov a,$03 +15e4: d5 30 02 mov $0230+x,a +15e7: c8 08 cmp x,#$08 +15e9: b0 2c bcs $1617 +15eb: e4 3f mov a,$3f +15ed: f0 03 beq $15f2 +15ef: 5f 84 16 jmp $1684 + +15f2: e8 03 mov a,#$03 +15f4: d5 00 02 mov $0200+x,a +15f7: 8f 00 49 mov $49,#$00 +15fa: 8f 00 43 mov $43,#$00 +15fd: 8f 00 51 mov $51,#$00 +1600: 8f ff 42 mov $42,#$ff +1603: 8f 00 50 mov $50,#$00 +1606: e4 10 mov a,$10 +1608: d5 10 02 mov $0210+x,a +160b: e8 20 mov a,#$20 +160d: c4 46 mov $46,a +160f: 8f 00 5e mov $5e,#$00 +1612: e8 00 mov a,#$00 +1614: c5 80 01 mov $0180,a +1617: e8 20 mov a,#$20 +1619: d5 00 03 mov $0300+x,a +161c: e8 06 mov a,#$06 +161e: d5 20 03 mov $0320+x,a +1621: e5 4e 0f mov a,$0f4e +1624: d5 30 03 mov $0330+x,a +1627: e5 46 0f mov a,$0f46 +162a: d5 40 03 mov $0340+x,a +162d: d5 40 04 mov $0440+x,a +1630: e8 00 mov a,#$00 +1632: d5 10 03 mov $0310+x,a +1635: d5 50 03 mov $0350+x,a +1638: d5 60 03 mov $0360+x,a +163b: d5 90 03 mov $0390+x,a +163e: d5 c0 03 mov $03c0+x,a +1641: d5 d0 03 mov $03d0+x,a +1644: d5 30 04 mov $0430+x,a +1647: d5 50 04 mov $0450+x,a +164a: d5 60 04 mov $0460+x,a +164d: d5 70 04 mov $0470+x,a +1650: d5 e0 02 mov $02e0+x,a +1653: d5 f0 02 mov $02f0+x,a +1656: d5 f0 04 mov $04f0+x,a +1659: d5 30 05 mov $0530+x,a +165c: d5 a0 05 mov $05a0+x,a +165f: d5 c2 00 mov $00c2+x,a +1662: d5 00 06 mov $0600+x,a +1665: d5 40 06 mov $0640+x,a +1668: d5 a0 06 mov $06a0+x,a +166b: d5 b0 06 mov $06b0+x,a +166e: d5 c0 06 mov $06c0+x,a +1671: d5 d0 06 mov $06d0+x,a +1674: d5 f0 06 mov $06f0+x,a +1677: d4 a2 mov $a2+x,a +1679: d4 b2 mov $b2+x,a +167b: d4 92 mov $92+x,a +167d: d4 62 mov $62+x,a +167f: e8 0a mov a,#$0a +1681: d5 80 04 mov $0480+x,a +1684: e8 00 mov a,#$00 +1686: d4 72 mov $72+x,a +1688: d4 82 mov $82+x,a +168a: d5 c0 02 mov $02c0+x,a +168d: d5 d0 02 mov $02d0+x,a +1690: 6f ret + +1691: e5 f4 00 mov a,$00f4 +1694: 05 f5 00 or a,$00f5 +1697: f0 5b beq $16f4 +1699: e8 01 mov a,#$01 +169b: c5 f7 00 mov $00f7,a +169e: 00 nop +169f: 00 nop +16a0: e4 18 mov a,$18 +16a2: 08 10 or a,#$10 +16a4: e9 f6 00 mov x,$00f6 +16a7: ec f7 00 mov y,$00f7 +16aa: d8 12 mov $12,x +16ac: cb 13 mov $13,y +16ae: e9 f4 00 mov x,$00f4 +16b1: 1e f4 00 cmp x,$00f4 +16b4: d0 f8 bne $16ae +16b6: ec f5 00 mov y,$00f5 +16b9: 5e f5 00 cmp y,$00f5 +16bc: d0 f8 bne $16b6 +16be: d8 10 mov $10,x +16c0: cb 11 mov $11,y +16c2: c5 f1 00 mov $00f1,a +16c5: e8 00 mov a,#$00 +16c7: c5 f7 00 mov $00f7,a +16ca: e4 14 mov a,$14 +16cc: c4 00 mov $00,a +16ce: e4 10 mov a,$10 +16d0: f0 11 beq $16e3 +16d2: c4 14 mov $14,a +16d4: 68 80 cmp a,#$80 +16d6: b0 2d bcs $1705 +16d8: 68 40 cmp a,#$40 +16da: b0 55 bcs $1731 +16dc: 68 20 cmp a,#$20 +16de: b0 56 bcs $1736 +16e0: 3f e0 14 call $14e0 +16e3: e4 11 mov a,$11 +16e5: f0 09 beq $16f0 +16e7: c4 15 mov $15,a +16e9: 68 ff cmp a,#$ff +16eb: f0 03 beq $16f0 +16ed: 3f 5f 17 call $175f +16f0: 3f f4 16 call $16f4 +16f3: 6f ret + +16f4: e5 10 02 mov a,$0210 +16f7: c5 f4 00 mov $00f4,a +16fa: e4 15 mov a,$15 +16fc: c5 f5 00 mov $00f5,a +16ff: e4 14 mov a,$14 +1701: c5 f6 00 mov $00f6,a +1704: 6f ret + +1705: 68 fd cmp a,#$fd +1707: f0 3d beq $1746 +1709: 68 fe cmp a,#$fe +170b: f0 2e beq $173b +170d: 68 ff cmp a,#$ff +170f: d0 1b bne $172c +1711: c5 f6 00 mov $00f6,a +1714: 3f 6c 18 call $186c +1717: e8 01 mov a,#$01 +1719: c5 f7 00 mov $00f7,a +171c: 00 nop +171d: 00 nop +171e: e4 18 mov a,$18 +1720: 08 10 or a,#$10 +1722: c5 f1 00 mov $00f1,a +1725: e8 00 mov a,#$00 +1727: c5 f7 00 mov $00f7,a +172a: 2f c7 bra $16f3 +172c: 3f c0 17 call $17c0 +172f: 2f b2 bra $16e3 +1731: 3f ba 17 call $17ba +1734: 2f ad bra $16e3 +1736: 3f b2 17 call $17b2 +1739: 2f a8 bra $16e3 +173b: c5 f6 00 mov $00f6,a +173e: e8 80 mov a,#$80 +1740: c5 f1 00 mov $00f1,a +1743: 5f c0 ff jmp $ffc0 + +1746: c5 f6 00 mov $00f6,a +1749: e4 13 mov a,$13 +174b: c4 01 mov $01,a +174d: 8d 00 mov y,#$00 +174f: cb 00 mov $00,y +1751: dd mov a,y +1752: d7 00 mov ($00)+y,a +1754: fc inc y +1755: d0 fb bne $1752 +1757: ab 01 inc $01 +1759: 78 ff 01 cmp $01,#$ff +175c: 90 f4 bcc $1752 +175e: 6f ret + +175f: 68 c0 cmp a,#$c0 +1761: b0 18 bcs $177b +1763: 68 80 cmp a,#$80 +1765: f0 08 beq $176f +1767: b0 0c bcs $1775 +1769: 3f 79 15 call $1579 +176c: 5f f0 16 jmp $16f0 + +176f: 3f 81 17 call $1781 +1772: 5f f0 16 jmp $16f0 + +1775: 3f 93 17 call $1793 +1778: 5f f0 16 jmp $16f0 + +177b: 3f 79 15 call $1579 +177e: 5f f0 16 jmp $16f0 + +1781: cd 08 mov x,#$08 +1783: f5 00 02 mov a,$0200+x +1786: f0 05 beq $178d +1788: e8 02 mov a,#$02 +178a: d5 00 02 mov $0200+x,a +178d: 3d inc x +178e: c8 10 cmp x,#$10 +1790: 90 f1 bcc $1783 +1792: 6f ret + +1793: e4 11 mov a,$11 +1795: 28 7f and a,#$7f +1797: c4 00 mov $00,a +1799: cd 08 mov x,#$08 +179b: f5 00 02 mov a,$0200+x +179e: f0 0c beq $17ac +17a0: f5 10 02 mov a,$0210+x +17a3: 64 00 cmp a,$00 +17a5: d0 05 bne $17ac +17a7: e8 02 mov a,#$02 +17a9: d5 00 02 mov $0200+x,a +17ac: 3d inc x +17ad: c8 10 cmp x,#$10 +17af: 90 ea bcc $179b +17b1: 6f ret + +17b2: 28 1f and a,#$1f +17b4: 3f e0 14 call $14e0 +17b7: 5f 20 18 jmp $1820 + +17ba: 80 setc +17bb: a8 40 sbc a,#$40 +17bd: c4 46 mov $46,a +17bf: 6f ret + +17c0: 28 7f and a,#$7f +17c2: 1c asl a +17c3: fd mov y,a +17c4: f6 ce 17 mov a,$17ce+y +17c7: 2d push a +17c8: f6 cd 17 mov a,$17cd+y +17cb: 2d push a +17cc: 6f ret + +17cd: dw $fd,$17,$01,$18,$08,$18,$12,$18,$19,$18,$20,$18,$30,$18,$34,$18,$38,$18,$3d,$18,$3e,$18,$49,$18,$54,$18,$5f,$18,$6a,$18,$6b,$18,$6b,$18,$af,$18,$b5,$18,$d3,$18,$de,$18,$f0,$18,$f7,$18,$fa,$18 + +17fd: 3f 59 15 call $1559 +1800: 6f ret + +1801: 8f 01 49 mov $49,#$01 +1804: 8f ff 32 mov $32,#$ff +1807: 6f ret + +1808: 8f 00 49 mov $49,#$00 +180b: 8f 00 51 mov $51,#$00 +180e: 8f 00 50 mov $50,#$00 +1811: 6f ret + +1812: 8f 02 51 mov $51,#$02 +1815: 8f ff 50 mov $50,#$ff +1818: 6f ret + +1819: 8f 03 51 mov $51,#$03 +181c: 8f ff 50 mov $50,#$ff +181f: 6f ret + +1820: e5 11 02 mov a,$0211 +1823: c5 10 02 mov $0210,a +1826: 8f 01 51 mov $51,#$01 +1829: 8f 00 49 mov $49,#$00 +182c: 8f 01 50 mov $50,#$01 +182f: 6f ret + +1830: 8f 00 48 mov $48,#$00 +1833: 6f ret + +1834: 8f 01 48 mov $48,#$01 +1837: 6f ret + +1838: ba 12 movw ya,$12 +183a: da 44 movw $44,ya +183c: 6f ret + +183d: 6f ret + +183e: e5 13 00 mov a,$0013 +1841: c4 20 mov $20,a +1843: 8d 5d mov y,#$5d +1845: 3f 4f 0f call $0f4f +1848: 6f ret + +1849: e5 12 00 mov a,$0012 +184c: c4 21 mov $21,a +184e: e5 13 00 mov a,$0013 +1851: c4 22 mov $22,a +1853: 6f ret + +1854: e5 12 00 mov a,$0012 +1857: c4 23 mov $23,a +1859: e5 13 00 mov a,$0013 +185c: c4 24 mov $24,a +185e: 6f ret + +185f: e5 12 00 mov a,$0012 +1862: c4 25 mov $25,a +1864: e5 13 00 mov a,$0013 +1867: c4 26 mov $26,a +1869: 6f ret + +186a: 6f ret + +186b: 6f ret + +186c: 3f fb 13 call $13fb +186f: 8f aa f4 mov $f4,#$aa +1872: 8f bb f5 mov $f5,#$bb +1875: e8 cc mov a,#$cc +1877: 64 f4 cmp a,$f4 +1879: d0 fc bne $1877 +187b: 2f 1b bra $1898 +187d: eb f4 mov y,$f4 +187f: d0 fc bne $187d +1881: 7e f4 cmp y,$f4 +1883: d0 0d bne $1892 +1885: e4 f5 mov a,$f5 +1887: cb f4 mov $f4,y +1889: d7 00 mov ($00)+y,a +188b: fc inc y +188c: d0 f3 bne $1881 +188e: ab 01 inc $01 +1890: 2f ef bra $1881 +1892: 10 ed bpl $1881 +1894: 7e f4 cmp y,$f4 +1896: 10 e9 bpl $1881 +1898: 8d 00 mov y,#$00 +189a: dc dec y +189b: d0 fd bne $189a +189d: e4 f6 mov a,$f6 +189f: c4 00 mov $00,a +18a1: e4 f7 mov a,$f7 +18a3: c4 01 mov $01,a +18a5: eb f4 mov y,$f4 +18a7: e4 f5 mov a,$f5 +18a9: cb f4 mov $f4,y +18ab: d0 d0 bne $187d +18ad: 6f ret + +18ae: 6f ret + +18af: e8 01 mov a,#$01 +18b1: c5 80 01 mov $0180,a +18b4: 6f ret + +18b5: e4 12 mov a,$12 +18b7: 68 10 cmp a,#$10 +18b9: 90 0c bcc $18c7 +18bb: e8 00 mov a,#$00 +18bd: 5d mov x,a +18be: d5 80 06 mov $0680+x,a +18c1: 3d inc x +18c2: c8 10 cmp x,#$10 +18c4: 90 f8 bcc $18be +18c6: 6f ret + +18c7: 28 0f and a,#$0f +18c9: 5d mov x,a +18ca: f5 80 06 mov a,$0680+x +18cd: 48 01 eor a,#$01 +18cf: d5 80 06 mov $0680+x,a +18d2: 6f ret + +18d3: e4 12 mov a,$12 +18d5: c4 5c mov $5c,a +18d7: e4 13 mov a,$13 +18d9: c4 57 mov $57,a +18db: 5f e1 13 jmp $13e1 + +18de: e4 12 mov a,$12 +18e0: 28 0f and a,#$0f +18e2: c4 59 mov $59,a +18e4: 3f b3 10 call $10b3 +18e7: e4 13 mov a,$13 +18e9: c4 5a mov $5a,a +18eb: e4 5b mov a,$5b +18ed: 5f 27 14 jmp $1427 + +18f0: e4 12 mov a,$12 +18f2: c4 5b mov $5b,a +18f4: 5f 27 14 jmp $1427 + +18f7: 5f fb 13 jmp $13fb + +18fa: e4 12 mov a,$12 +18fc: c5 50 04 mov $0450,a +18ff: e4 13 mov a,$13 +1901: c5 90 03 mov $0390,a +1904: 6f ret diff --git a/snes/NSPC/Video System/F-1 Grand Prix Part III ($0400).bin b/snes/NSPC/Video System/F-1 Grand Prix Part III ($0400).bin new file mode 100644 index 00000000..33e591a4 Binary files /dev/null and b/snes/NSPC/Video System/F-1 Grand Prix Part III ($0400).bin differ diff --git a/snes/NSPC/Video System/F-1 Grand Prix Part III.s b/snes/NSPC/Video System/F-1 Grand Prix Part III.s new file mode 100644 index 00000000..4328cfd6 --- /dev/null +++ b/snes/NSPC/Video System/F-1 Grand Prix Part III.s @@ -0,0 +1,1742 @@ +0400: 8f 00 64 mov $64,#$00 +0403: d3 00 14 bbc6 $00,$041a +0406: fa 03 53 mov ($53),($03) +0409: 58 ff 53 eor $53,#$ff +040c: 29 06 53 and ($53),($06) +040f: e4 07 mov a,$07 +0411: 04 12 or a,$12 +0413: 24 03 and a,$03 +0415: 0e 53 00 tset1 $0053 +0418: d2 00 clr6 $00 +041a: 8d 0a mov y,#$0a +041c: ad 05 cmp y,#$05 +041e: f0 07 beq $0427 +0420: b0 08 bcs $042a +0422: 69 50 51 cmp ($51),($50) +0425: d0 13 bne $043a +0427: e3 51 0e bbs7 $51,$0438 +042a: f6 c4 04 mov a,$04c4+y +042d: c5 f2 00 mov $00f2,a +0430: f6 ce 04 mov a,$04ce+y +0433: 5d mov x,a +0434: e6 mov a,(x) +0435: c5 f3 00 mov $00f3,a +0438: fe e2 dbnz y,$041c +043a: 8f 00 4b mov $4b,#$00 +043d: 8f 00 4c mov $4c,#$00 +0440: 8f 00 64 mov $64,#$00 +0443: 8f 00 11 mov $11,#$00 +0446: e4 08 mov a,$08 +0448: c5 f4 00 mov $00f4,a +044b: e4 00 mov a,$00 +044d: c5 f5 00 mov $00f5,a +0450: e4 03 mov a,$03 +0452: c5 f6 00 mov $00f6,a +0455: 3f d9 04 call $04d9 +0458: 3f 87 10 call $1087 +045b: ec fd 00 mov y,$00fd +045e: f0 fb beq $045b +0460: 6d push y +0461: 6d push y +0462: e8 20 mov a,#$20 +0464: cf mul ya +0465: 60 clrc +0466: 84 49 adc a,$49 +0468: c4 49 mov $49,a +046a: 90 0a bcc $0476 +046c: 69 50 51 cmp ($51),($50) +046f: f0 02 beq $0473 +0471: ab 51 inc $51 +0473: 3f 69 07 call $0769 +0476: ee pop y +0477: e4 03 mov a,$03 +0479: f0 12 beq $048d +047b: e8 29 mov a,#$29 +047d: cf mul ya +047e: 60 clrc +047f: 84 10 adc a,$10 +0481: c4 10 mov $10,a +0483: 90 05 bcc $048a +0485: 3f 25 08 call $0825 +0488: 2f 03 bra $048d +048a: fa 03 04 mov ($04),($03) +048d: ee pop y +048e: 13 00 16 bbc0 $00,$04a7 +0491: e4 59 mov a,$59 +0493: cf mul ya +0494: 60 clrc +0495: 84 57 adc a,$57 +0497: c4 57 mov $57,a +0499: 90 05 bcc $04a0 +049b: 3f ab 07 call $07ab +049e: 2f 07 bra $04a7 +04a0: e4 03 mov a,$03 +04a2: 48 ff eor a,#$ff +04a4: 0e 04 00 tset1 $0004 +04a7: fa 03 05 mov ($05),($03) +04aa: 8f 01 4d mov $4d,#$01 +04ad: cd 00 mov x,#$00 +04af: 4b 04 lsr $04 +04b1: 90 07 bcc $04ba +04b3: f4 31 mov a,$31+x +04b5: f0 03 beq $04ba +04b7: 3f 53 0f call $0f53 +04ba: 3d inc x +04bb: 3d inc x +04bc: 4b 05 lsr $05 +04be: 0b 4d asl $4d +04c0: d0 ed bne $04af +04c2: 5f 00 04 jmp $0400 + +; dsp shadow addrs for dsp regs +04c5: db $2c,$3c,$0d,$4d,$6c,$4c,$5c,$3d +04cd: db $2d,$5c,$66,$68,$55,$53,$4e,$4b +04d5: db $64,$54,$52,$4c + +04d9: e5 f4 00 mov a,$00f4 +04dc: 65 f4 00 cmp a,$00f4 +04df: d0 f8 bne $04d9 +04e1: 64 08 cmp a,$08 +04e3: f0 12 beq $04f7 +04e5: c4 08 mov $08,a +04e7: ec f5 00 mov y,$00f5 +04ea: 1c asl a +04eb: 68 e0 cmp a,#$e0 +04ed: b0 49 bcs $0538 +04ef: 68 40 cmp a,#$40 +04f1: b0 04 bcs $04f7 +04f3: 5d mov x,a +04f4: 1f f8 04 jmp ($04f8+x) + +04f7: 6f ret + +04f8: dw $04f7 +04fa: dw $05dd +04fc: dw $069b +04fe: dw $0612 +0500: dw $04f7 +0502: dw $04f7 +0504: dw $04f7 +0506: dw $04f7 +0508: dw $04f7 +050a: dw $04f7 +050c: dw $04f7 +050e: dw $04f7 +0510: dw $04f7 +0512: dw $04f7 +0514: dw $0662 +0516: dw $0665 +0518: dw $073e +051a: dw $064b +051c: dw $04f7 +051e: dw $066d +0520: dw $0684 +0522: dw $04f7 +0524: dw $04f7 +0526: dw $06f3 +0528: dw $061d +052a: dw $065c +052c: dw $0668 +052e: dw $04f7 +0530: dw $04f7 +0532: dw $04f7 +0534: dw $105d +0536: dw $1077 + +0538: dd mov a,y +0539: 1c asl a +053a: 1c asl a +053b: bc inc a +053c: 5e 00 36 cmp y,$3600 +053f: 90 03 bcc $0544 +0541: 5f cc 05 jmp $05cc + +0544: fd mov y,a +0545: e4 08 mov a,$08 +0547: 28 0f and a,#$0f +0549: 1c asl a +054a: 5d mov x,a +054b: 68 10 cmp a,#$10 +054d: b0 0b bcs $055a +054f: dd mov a,y +0550: 74 d0 cmp a,$d0+x +0552: d0 4c bne $05a0 +0554: f4 21 mov a,$21+x +0556: 10 48 bpl $05a0 +0558: 2f 72 bra $05cc +055a: f6 00 36 mov a,$3600+y +055d: c4 1a mov $1a,a +055f: cd 0e mov x,#$0e +0561: dd mov a,y +0562: 0b 1a asl $1a +0564: 90 0a bcc $0570 +0566: 74 d0 cmp a,$d0+x +0568: d0 06 bne $0570 +056a: f4 21 mov a,$21+x +056c: 10 32 bpl $05a0 +056e: 2f 5c bra $05cc +0570: 1d dec x +0571: 1d dec x +0572: 10 ee bpl $0562 +0574: f6 00 36 mov a,$3600+y +0577: c4 1a mov $1a,a +0579: cd 0e mov x,#$0e +057b: 8f 01 1c mov $1c,#$01 +057e: 8f 0e 1d mov $1d,#$0e +0581: 0b 1a asl $1a +0583: 90 0c bcc $0591 +0585: f4 20 mov a,$20+x +0587: f0 17 beq $05a0 +0589: 64 1c cmp a,$1c +058b: 90 04 bcc $0591 +058d: c4 1c mov $1c,a +058f: d8 1d mov $1d,x +0591: 1d dec x +0592: 1d dec x +0593: 10 ec bpl $0581 +0595: f6 01 36 mov a,$3601+y +0598: f8 1d mov x,$1d +059a: 64 1c cmp a,$1c +059c: f0 02 beq $05a0 +059e: b0 2c bcs $05cc +05a0: 3f 46 08 call $0846 +05a3: bc inc a +05a4: d5 70 00 mov $0070+x,a +05a7: dd mov a,y +05a8: d4 d0 mov $d0+x,a +05aa: f6 01 36 mov a,$3601+y +05ad: d4 20 mov $20+x,a +05af: f6 02 36 mov a,$3602+y +05b2: d4 30 mov $30+x,a +05b4: f6 03 36 mov a,$3603+y +05b7: d4 31 mov $31+x,a +05b9: e8 ff mov a,#$ff +05bb: d4 d1 mov $d1+x,a +05bd: f5 cd 05 mov a,$05cd+x +05c0: 8d 5c mov y,#$5c +05c2: cc f2 00 mov $00f2,y +05c5: c5 f3 00 mov $00f3,a +05c8: 04 03 or a,$03 +05ca: c4 03 mov $03,a +05cc: 6f ret + +05cd: 01 tcall 0 +05ce: fe 02 dbnz y,$05d2 +05d0: fd mov y,a +05d1: 04 fb or a,$fb +05d3: 08 f7 or a,#$f7 +05d5: 10 ef bpl $05c6 +05d7: 20 clrp +05d8: df daa a +05d9: 40 setp +05da: bf mov a,(x)+ +05db: 80 setc +05dc: 7f reti + +05dd: e8 ff mov a,#$ff +05df: 8d 5c mov y,#$5c +05e1: cc f2 00 mov $00f2,y +05e4: c5 f3 00 mov $00f3,a +05e7: cd cf mov x,#$cf +05e9: bd mov sp,x +05ea: 40 setp +05eb: e8 00 mov a,#$00 +05ed: 5d mov x,a +05ee: af mov (x)+,a +05ef: c8 d0 cmp x,#$d0 +05f1: d0 fb bne $05ee +05f3: 20 clrp +05f4: 5d mov x,a +05f5: af mov (x)+,a +05f6: c8 e8 cmp x,#$e8 +05f8: d0 fb bne $05f5 +05fa: 8f e7 0a mov $0a,#$e7 +05fd: 3f 0b 0d call $0d0b +0600: 8f 20 4e mov $4e,#$20 +0603: 8f ff 09 mov $09,#$ff +0606: 8f ff 01 mov $01,#$ff +0609: 8f ff 0e mov $0e,#$ff +060c: 8f ff 02 mov $02,#$ff +060f: 5f 00 04 jmp $0400 + +0612: 3f 77 10 call $1077 +0615: 8d ff mov y,#$ff +0617: 3f 1d 06 call $061d +061a: 5f 3e 07 jmp $073e + +061d: cb 1a mov $1a,y +061f: cd 0e mov x,#$0e +0621: 0b 1a asl $1a +0623: 90 0a bcc $062f +0625: f5 cd 05 mov a,$05cd+x +0628: 24 03 and a,$03 +062a: f0 03 beq $062f +062c: 3f 34 06 call $0634 +062f: 1d dec x +0630: 1d dec x +0631: 10 ee bpl $0621 +0633: 6f ret + +0634: e8 00 mov a,#$00 +0636: d4 d0 mov $d0+x,a +0638: d4 20 mov $20+x,a +063a: d4 31 mov $31+x,a +063c: f5 cd 05 mov a,$05cd+x +063f: 04 4c or a,$4c +0641: c4 4c mov $4c,a +0643: f5 ce 05 mov a,$05ce+x +0646: 24 03 and a,$03 +0648: c4 03 mov $03,a +064a: 6f ret + +064b: cb 01 mov $01,y +064d: cb 0e mov $0e,y +064f: 32 00 clr1 $00 +0651: 8f 00 0d mov $0d,#$00 +0654: e4 03 mov a,$03 +0656: 48 ff eor a,#$ff +0658: 0e 64 00 tset1 $0064 +065b: 6f ret + +065c: cb 02 mov $02,y +065e: 09 03 64 or ($64),($03) +0661: 6f ret + +0662: f2 00 clr7 $00 +0664: 6f ret + +0665: e2 00 set7 $00 +0667: 6f ret + +0668: cb 12 mov $12,y +066a: c2 00 set6 $00 +066c: 6f ret + +066d: 03 00 13 bbs0 $00,$0683 +0670: cb 0d mov $0d,y +0672: e8 80 mov a,#$80 +0674: 80 setc +0675: a4 0d sbc a,$0d +0677: c4 0d mov $0d,a +0679: c4 0f mov $0f,a +067b: fa 01 0e mov ($0e),($01) +067e: 8f 20 01 mov $01,#$20 +0681: 22 00 set1 $00 +0683: 6f ret + +0684: e4 0d mov a,$0d +0686: d0 12 bne $069a +0688: cb 0d mov $0d,y +068a: e8 80 mov a,#$80 +068c: 80 setc +068d: a4 0d sbc a,$0d +068f: c4 0d mov $0d,a +0691: e2 0d set7 $0d +0693: c4 0f mov $0f,a +0695: fa 01 0e mov ($0e),($01) +0698: 22 00 set1 $00 +069a: 6f ret + +069b: dd mov a,y +069c: f0 02 beq $06a0 +069e: cb 0a mov $0a,y +06a0: e8 ad mov a,#$ad +06a2: c4 f4 mov $f4,a +06a4: 2f 06 bra $06ac +06a6: ba 1d movw ya,$1d +06a8: da 1a movw $1a,ya +06aa: 8d 00 mov y,#$00 +06ac: e4 f4 mov a,$f4 +06ae: 64 f4 cmp a,$f4 +06b0: d0 fa bne $06ac +06b2: 64 08 cmp a,$08 +06b4: f0 f6 beq $06ac +06b6: f8 f5 mov x,$f5 +06b8: d8 1c mov $1c,x +06ba: f8 f6 mov x,$f6 +06bc: d8 1d mov $1d,x +06be: f8 f7 mov x,$f7 +06c0: d8 1e mov $1e,x +06c2: c4 f4 mov $f4,a +06c4: c4 08 mov $08,a +06c6: 28 07 and a,#$07 +06c8: f0 dc beq $06a6 +06ca: 68 04 cmp a,#$04 +06cc: b0 10 bcs $06de +06ce: 5d mov x,a +06cf: f4 1b mov a,$1b+x +06d1: d7 1a mov ($1a)+y,a +06d3: fc inc y +06d4: d0 02 bne $06d8 +06d6: ab 1b inc $1b +06d8: 1d dec x +06d9: d0 f4 bne $06cf +06db: 5f ac 06 jmp $06ac + +06de: e4 08 mov a,$08 +06e0: c5 f4 00 mov $00f4,a +06e3: e4 00 mov a,$00 +06e5: c5 f5 00 mov $00f5,a +06e8: e4 03 mov a,$03 +06ea: c5 f6 00 mov $00f6,a +06ed: e8 00 mov a,#$00 +06ef: c5 f7 00 mov $00f7,a +06f2: 6f ret + +; load song from A +06f3: dd mov a,y +06f4: 64 09 cmp a,$09 +06f6: f0 45 beq $073d +06f8: 65 00 1a cmp a,$1a00 +06fb: b0 40 bcs $073d +06fd: 13 00 07 bbc0 $00,$0707 +0700: 2d push a +0701: 3f 3e 07 call $073e +0704: ae pop a +0705: c4 09 mov $09,a +0707: 1c asl a +0708: 5d mov x,a +0709: f5 02 1a mov a,$1a02+x +070c: fd mov y,a +070d: f5 01 1a mov a,$1a01+x +0710: da 46 movw $46,ya +0712: 3f 6b 08 call $086b +0715: fa 03 05 mov ($05),($03) +0718: cd 0e mov x,#$0e +071a: 0b 05 asl $05 +071c: b0 07 bcs $0725 +071e: 3f 46 08 call $0846 +0721: bc inc a +0722: d5 70 00 mov $0070+x,a +0725: 1d dec x +0726: 1d dec x +0727: 10 f1 bpl $071a +0729: e8 00 mov a,#$00 +072b: c4 60 mov $60,a +072d: c4 6d mov $6d,a +072f: c4 5a mov $5a,a +0731: c4 56 mov $56,a +0733: c4 48 mov $48,a +0735: 8f c0 5f mov $5f,#$c0 +0738: 8f 20 59 mov $59,#$20 +073b: 02 00 set0 $00 +073d: 6f ret + +073e: 12 00 clr0 $00 +0740: 8f 00 06 mov $06,#$00 +0743: c2 00 set6 $00 +0745: fa 03 4c mov ($4c),($03) +0748: 58 ff 4c eor $4c,#$ff +074b: fa 03 05 mov ($05),($03) +074e: cd 0e mov x,#$0e +0750: e8 00 mov a,#$00 +0752: 0b 05 asl $05 +0754: b0 03 bcs $0759 +0756: d5 31 00 mov $0031+x,a +0759: 1d dec x +075a: 1d dec x +075b: 10 f5 bpl $0752 +075d: 8f ff 09 mov $09,#$ff +0760: 32 00 clr1 $00 +0762: 8f 00 0d mov $0d,#$00 +0765: fa 0e 01 mov ($01),($0e) +0768: 6f ret + +0769: 13 00 3e bbc0 $00,$07aa +076c: e4 0d mov a,$0d +076e: f0 3a beq $07aa +0770: 6e 0f 37 dbnz $0f,$07aa +0773: fa 0d 0f mov ($0f),($0d) +0776: f2 0f clr7 $0f +0778: e4 03 mov a,$03 +077a: 48 ff eor a,#$ff +077c: 0e 64 00 tset1 $0064 +077f: aa 0d e0 mov1 c,$000d,7 +0782: b0 12 bcs $0796 +0784: e8 20 mov a,#$20 +0786: 84 01 adc a,$01 +0788: c4 01 mov $01,a +078a: b0 05 bcs $0791 +078c: 69 0e 01 cmp ($01),($0e) +078f: 90 19 bcc $07aa +0791: fa 0e 01 mov ($01),($0e) +0794: 2f 0f bra $07a5 +0796: e8 20 mov a,#$20 +0798: c4 1c mov $1c,a +079a: a9 1c 01 sbc ($01),($1c) +079d: b0 0b bcs $07aa +079f: fa 0e 01 mov ($01),($0e) +07a2: 3f 3e 07 call $073e +07a5: 32 00 clr1 $00 +07a7: 8f 00 0d mov $0d,#$00 +07aa: 6f ret + +07ab: fa 03 05 mov ($05),($03) +07ae: 8f 01 4d mov $4d,#$01 +07b1: cd 00 mov x,#$00 +07b3: 03 05 0e bbs0 $05,$07c4 +07b6: 3f b7 08 call $08b7 +07b9: 90 09 bcc $07c4 +07bb: 3f 6b 08 call $086b +07be: 90 eb bcc $07ab +07c0: 3f 3e 07 call $073e +07c3: 6f ret + +07c4: 3d inc x +07c5: 3d inc x +07c6: 4b 05 lsr $05 +07c8: 0b 4d asl $4d +07ca: d0 e7 bne $07b3 +07cc: e4 5a mov a,$5a +07ce: f0 0b beq $07db +07d0: ba 5c movw ya,$5c +07d2: 7a 58 addw ya,$58 +07d4: 6e 5a 02 dbnz $5a,$07d9 +07d7: ba 5a movw ya,$5a +07d9: da 58 movw $58,ya +07db: e4 6d mov a,$6d +07dd: f0 15 beq $07f4 +07df: ba 69 movw ya,$69 +07e1: 7a 65 addw ya,$65 +07e3: da 65 movw $65,ya +07e5: ba 6b movw ya,$6b +07e7: 7a 67 addw ya,$67 +07e9: 6e 6d 06 dbnz $6d,$07f2 +07ec: ba 6d movw ya,$6d +07ee: da 65 movw $65,ya +07f0: eb 6f mov y,$6f +07f2: da 67 movw $67,ya +07f4: e4 60 mov a,$60 +07f6: f0 12 beq $080a +07f8: ba 62 movw ya,$62 +07fa: 7a 5e addw ya,$5e +07fc: 6e 60 02 dbnz $60,$0801 +07ff: ba 60 movw ya,$60 +0801: da 5e movw $5e,ya +0803: e4 03 mov a,$03 +0805: 48 ff eor a,#$ff +0807: 0e 64 00 tset1 $0064 +080a: fa 03 05 mov ($05),($03) +080d: 8f 01 4d mov $4d,#$01 +0810: cd 00 mov x,#$00 +0812: f4 31 mov a,$31+x +0814: f0 06 beq $081c +0816: 03 05 03 bbs0 $05,$081c +0819: 3f 7e 0d call $0d7e +081c: 3d inc x +081d: 3d inc x +081e: 4b 05 lsr $05 +0820: 0b 4d asl $4d +0822: d0 ee bne $0812 +0824: 6f ret + +0825: fa 03 05 mov ($05),($03) +0828: 8f 01 4d mov $4d,#$01 +082b: cd 00 mov x,#$00 +082d: 13 05 0d bbc0 $05,$083d +0830: 3f b7 08 call $08b7 +0833: b0 05 bcs $083a +0835: 3f 7e 0d call $0d7e +0838: 2f 03 bra $083d +083a: 3f 34 06 call $0634 +083d: 3d inc x +083e: 3d inc x +083f: 4b 05 lsr $05 +0841: 0b 4d asl $4d +0843: d0 e8 bne $082d +0845: 6f ret + +0846: e8 ff mov a,#$ff +0848: d5 a1 02 mov $02a1+x,a +084b: e8 0a mov a,#$0a +084d: 3f 32 0b call $0b32 +0850: d4 21 mov $21+x,a +0852: d4 80 mov $80+x,a +0854: d4 90 mov $90+x,a +0856: d4 91 mov $91+x,a +0858: d4 b1 mov $b1+x,a +085a: d4 c1 mov $c1+x,a +085c: d4 71 mov $71+x,a +085e: d5 21 01 mov $0121+x,a +0861: d5 11 02 mov $0211+x,a +0864: d5 50 02 mov $0250+x,a +0867: d5 81 02 mov $0281+x,a +086a: 6f ret + +086b: 3f 3c 09 call $093c +086e: d0 1a bne $088a +0870: fd mov y,a +0871: d0 02 bne $0875 +0873: 80 setc +0874: 6f ret + +0875: 8b 48 dec $48 +0877: 10 02 bpl $087b +0879: c4 48 mov $48,a +087b: f0 07 beq $0884 +087d: 3f 3c 09 call $093c +0880: da 46 movw $46,ya +0882: 2f e7 bra $086b +0884: 3a 46 incw $46 +0886: 3a 46 incw $46 +0888: 2f e1 bra $086b +088a: da 1c movw $1c,ya +088c: fa 03 05 mov ($05),($03) +088f: 8d 0f mov y,#$0f +0891: 0b 05 asl $05 +0893: b0 1c bcs $08b1 +0895: f7 1c mov a,($1c)+y +0897: d6 30 00 mov $0030+y,a +089a: dc dec y +089b: f7 1c mov a,($1c)+y +089d: d6 30 00 mov $0030+y,a +08a0: e8 00 mov a,#$00 +08a2: d6 80 00 mov $0080+y,a +08a5: d6 90 00 mov $0090+y,a +08a8: d6 91 00 mov $0091+y,a +08ab: bc inc a +08ac: d6 70 00 mov $0070+y,a +08af: 2f 01 bra $08b2 +08b1: dc dec y +08b2: dc dec y +08b3: 10 dc bpl $0891 +08b5: 60 clrc +08b6: 6f ret + +08b7: d8 4a mov $4a,x +08b9: f4 31 mov a,$31+x +08bb: f0 7d beq $093a +08bd: 9b 70 dec $70+x +08bf: f0 05 beq $08c6 +08c1: 3f 5a 0e call $0e5a +08c4: 2f 61 bra $0927 +08c6: 3f 78 0a call $0a78 +08c9: d0 18 bne $08e3 +08cb: 80 setc +08cc: f4 80 mov a,$80+x +08ce: f0 6b beq $093b +08d0: 3f 21 0c call $0c21 +08d3: 9b 80 dec $80+x +08d5: d0 ef bne $08c6 +08d7: f5 30 02 mov a,$0230+x +08da: d4 30 mov $30+x,a +08dc: f5 31 02 mov a,$0231+x +08df: d4 31 mov $31+x,a +08e1: 2f e3 bra $08c6 +08e3: 30 20 bmi $0905 +08e5: d5 00 02 mov $0200+x,a +08e8: 3f 78 0a call $0a78 +08eb: 30 18 bmi $0905 +08ed: 2d push a +08ee: 9f xcn a +08ef: 28 07 and a,#$07 +08f1: fd mov y,a +08f2: f6 45 10 mov a,$1045+y +08f5: d5 01 02 mov $0201+x,a +08f8: ae pop a +08f9: 28 0f and a,#$0f +08fb: fd mov y,a +08fc: f6 4d 10 mov a,$104d+y +08ff: d5 10 02 mov $0210+x,a +0902: 3f 78 0a call $0a78 +0905: 68 ca cmp a,#$ca +0907: 90 05 bcc $090e +0909: 3f 51 0a call $0a51 +090c: 2f b8 bra $08c6 +090e: 3f 4a 09 call $094a +0911: f5 00 02 mov a,$0200+x +0914: d4 70 mov $70+x,a +0916: fd mov y,a +0917: f5 01 02 mov a,$0201+x +091a: d0 04 bne $0920 +091c: e8 ff mov a,#$ff +091e: 2f 05 bra $0925 +0920: cf mul ya +0921: dd mov a,y +0922: d0 01 bne $0925 +0924: bc inc a +0925: d4 71 mov $71+x,a +0927: f4 a0 mov a,$a0+x +0929: d0 0f bne $093a +092b: e7 30 mov a,($30+x) +092d: 68 de cmp a,#$de +092f: d0 09 bne $093a +0931: 3f 7a 0a call $0a7a +0934: 3f 78 0a call $0a78 +0937: 3f a8 0c call $0ca8 +093a: 60 clrc +093b: 6f ret + +093c: 8d 00 mov y,#$00 +093e: f7 46 mov a,($46)+y +0940: 3a 46 incw $46 +0942: 2d push a +0943: f7 46 mov a,($46)+y +0945: 3a 46 incw $46 +0947: fd mov y,a +0948: ae pop a +0949: 6f ret + +094a: 68 c8 cmp a,#$c8 +094c: b0 fb bcs $0949 +094e: fb 71 mov y,$71+x +0950: 30 03 bmi $0955 +0952: 09 4d 4b or ($4b),($4d) +0955: 09 4d 64 or ($64),($4d) +0958: 28 7f and a,#$7f +095a: 03 05 03 bbs0 $05,$0960 +095d: 60 clrc +095e: 84 56 adc a,$56 +0960: 60 clrc +0961: 95 11 02 adc a,$0211+x +0964: d5 01 01 mov $0101+x,a +0967: f5 21 01 mov a,$0121+x +096a: d5 00 01 mov $0100+x,a +096d: f5 81 02 mov a,$0281+x +0970: 5c lsr a +0971: e8 00 mov a,#$00 +0973: 7c ror a +0974: d5 70 02 mov $0270+x,a +0977: e8 00 mov a,#$00 +0979: d4 b0 mov $b0+x,a +097b: d5 81 00 mov $0081+x,a +097e: d4 c0 mov $c0+x,a +0980: d5 30 01 mov $0130+x,a +0983: f5 50 02 mov a,$0250+x +0986: d4 a0 mov $a0+x,a +0988: f0 1e beq $09a8 +098a: f5 51 02 mov a,$0251+x +098d: d4 a1 mov $a1+x,a +098f: f5 60 02 mov a,$0260+x +0992: d0 0a bne $099e +0994: f5 01 01 mov a,$0101+x +0997: 80 setc +0998: b5 61 02 sbc a,$0261+x +099b: d5 01 01 mov $0101+x,a +099e: f5 61 02 mov a,$0261+x +09a1: 60 clrc +09a2: 95 01 01 adc a,$0101+x +09a5: 3f bd 0c call $0cbd +09a8: 3f 57 0d call $0d57 +09ab: 8d 00 mov y,#$00 +09ad: e4 43 mov a,$43 +09af: 80 setc +09b0: a8 34 sbc a,#$34 +09b2: b0 09 bcs $09bd +09b4: e4 43 mov a,$43 +09b6: 80 setc +09b7: a8 13 sbc a,#$13 +09b9: b0 06 bcs $09c1 +09bb: dc dec y +09bc: 1c asl a +09bd: 7a 42 addw ya,$42 +09bf: da 42 movw $42,ya +09c1: 4d push x +09c2: e4 43 mov a,$43 +09c4: 1c asl a +09c5: 8d 00 mov y,#$00 +09c7: cd 18 mov x,#$18 +09c9: 9e div ya,x +09ca: 5d mov x,a +09cb: f6 38 0a mov a,$0a38+y +09ce: c4 1b mov $1b,a +09d0: f6 37 0a mov a,$0a37+y +09d3: c4 1a mov $1a,a +09d5: f6 3a 0a mov a,$0a3a+y +09d8: 2d push a +09d9: f6 39 0a mov a,$0a39+y +09dc: ee pop y +09dd: 9a 1a subw ya,$1a +09df: eb 42 mov y,$42 +09e1: cf mul ya +09e2: dd mov a,y +09e3: 8d 00 mov y,#$00 +09e5: 7a 1a addw ya,$1a +09e7: cb 1b mov $1b,y +09e9: 1c asl a +09ea: 2b 1b rol $1b +09ec: c4 1a mov $1a,a +09ee: 2f 04 bra $09f4 +09f0: 4b 1b lsr $1b +09f2: 7c ror a +09f3: 3d inc x +09f4: c8 06 cmp x,#$06 +09f6: d0 f8 bne $09f0 +09f8: c4 1a mov $1a,a +09fa: ce pop x +09fb: f5 20 02 mov a,$0220+x +09fe: eb 1b mov y,$1b +0a00: cf mul ya +0a01: da 1c movw $1c,ya +0a03: f5 21 02 mov a,$0221+x +0a06: eb 1a mov y,$1a +0a08: cf mul ya +0a09: 7a 1c addw ya,$1c +0a0b: da 1c movw $1c,ya +0a0d: f5 21 02 mov a,$0221+x +0a10: eb 1b mov y,$1b +0a12: cf mul ya +0a13: 2d push a +0a14: f5 20 02 mov a,$0220+x +0a17: eb 1a mov y,$1a +0a19: cf mul ya +0a1a: dd mov a,y +0a1b: ee pop y +0a1c: 7a 1c addw ya,$1c +0a1e: da 1c movw $1c,ya +0a20: 7d mov a,x +0a21: 9f xcn a +0a22: 5c lsr a +0a23: 08 02 or a,#$02 +0a25: eb 1c mov y,$1c +0a27: c5 f2 00 mov $00f2,a +0a2a: cc f3 00 mov $00f3,y +0a2d: bc inc a +0a2e: eb 1d mov y,$1d +0a30: c5 f2 00 mov $00f2,a +0a33: cc f3 00 mov $00f3,y +0a36: 6f ret + +; pitch table +0a37: dw $085f +0a39: dw $08de +0a3b: dw $0965 +0a3d: dw $09f4 +0a3f: dw $0a8c +0a41: dw $0b2c +0a43: dw $0bd6 +0a45: dw $0c8b +0a47: dw $0d4a +0a49: dw $0e14 +0a4b: dw $0eea +0a4d: dw $0fcd +0a4f: dw $10be + +0a51: 68 d3 cmp a,#$d3 +0a53: b0 11 bcs $0a66 +0a55: 13 05 0e bbc0 $05,$0a66 +0a58: fd mov y,a +0a59: f6 f4 09 mov a,$09f4+y +0a5c: 60 clrc +0a5d: 94 30 adc a,$30+x +0a5f: d4 30 mov $30+x,a +0a61: 90 02 bcc $0a65 +0a63: bb 31 inc $31+x +0a65: 6f ret + +; dispatch vcmd in A (ca-ff) +0a66: 1c asl a +0a67: fd mov y,a +0a68: f6 ef 09 mov a,$09ef+y +0a6b: 2d push a +0a6c: f6 ee 09 mov a,$09ee+y +0a6f: 2d push a +0a70: dd mov a,y +0a71: 5c lsr a +0a72: fd mov y,a +0a73: f6 74 0a mov a,$0a74+y +0a76: f0 08 beq $0a80 +0a78: e7 30 mov a,($30+x) +0a7a: bb 30 inc $30+x +0a7c: d0 02 bne $0a80 +0a7e: bb 31 inc $31+x +0a80: fd mov y,a +0a81: 6f ret + +; vcmd dispatch table +0a82: dw $0bae ; ca - global transpose +0a84: dw $0b97 ; cb - tempo +0a86: dw $0b9c ; cc - tempo fade +0a88: dw $0b80 ; cd - master volume +0a8a: dw $0b85 ; ce - master volume fade +0a8c: dw $0c2c ; cf - echo vbits/volume +0a8e: dw $0c83 ; d0 - set echo params +0a90: dw $0c4e ; d1 - echo volume fade +0a92: dw $0c7a ; d2 - disable echo +0a94: dw $0bb1 ; d3 - per-voice transpose +0a96: dw $0b32 ; d4 - pan +0a98: dw $0b40 ; d5 - pan fade +0a9a: dw $0adc ; d6 - set instrument +0a9c: dw $0b59 ; d7 - vibrato on +0a9e: dw $0b70 ; d8 - vibrato fade +0aa0: dw $0b65 ; d9 - vibrato off +0aa2: dw $0bb5 ; da - tremolo on +0aa4: dw $0bc1 ; db - tremolo off +0aa6: dw $0be2 ; dc - volume +0aa8: dw $0beb ; dd - volume fade +0aaa: dw $0ca8 ; de - pitch slide +0aac: dw $0bc4 ; df - pitch envelope (release) +0aae: dw $0bc8 ; e0 - pitch envelope (attack) +0ab0: dw $0bde ; e1 - pitch envelope off +0ab2: dw $0c04 ; e2 - tuning +0ab4: dw $0c08 ; e3 - nop +0ab6: dw $0c09 ; e4 - call subroutine +0ab8: dw $0cd5 ; e5 +0aba: dw $0cdb ; e6 +0abc: dw $0ce3 ; e7 - goto + +; vcmd lengths +0abe: db $01,$01,$02,$01,$02,$03,$03,$03 ; ca-d1 +0ac5: db $00,$01,$01,$02,$01,$03,$01,$00 ; d2-d9 +0ace: db $03,$00,$01,$02,$03,$03,$03,$00 ; da-e1 +0ad5: db $01,$01,$03,$00,$00,$03 ; e2-e7 + +; vcmd d6 - set instrument +0adc: 8d 06 mov y,#$06 +0ade: cf mul ya +0adf: da 1a movw $1a,ya +0ae1: 60 clrc +0ae2: 03 05 08 bbs0 $05,$0aed +0ae5: 98 00 1a adc $1a,#$00 +0ae8: 98 18 1b adc $1b,#$18 +0aeb: 2f 06 bra $0af3 +0aed: 98 00 1a adc $1a,#$00 +0af0: 98 19 1b adc $1b,#$19 +0af3: 7d mov a,x +0af4: 9f xcn a +0af5: 5c lsr a +0af6: 08 04 or a,#$04 +0af8: 5d mov x,a +0af9: e4 4d mov a,$4d +0afb: 4e 54 00 tclr1 $0054 +0afe: 8d 00 mov y,#$00 +0b00: f7 1a mov a,($1a)+y +0b02: 10 0c bpl $0b10 +0b04: 28 1f and a,#$1f +0b06: 38 20 4e and $4e,#$20 +0b09: 0e 4e 00 tset1 $004e +0b0c: 09 4d 54 or ($54),($4d) +0b0f: dd mov a,y +0b10: 13 05 03 bbc0 $05,$0b16 +0b13: 60 clrc +0b14: 88 40 adc a,#$40 +0b16: c9 f2 00 mov $00f2,x +0b19: c5 f3 00 mov $00f3,a +0b1c: 3d inc x +0b1d: fc inc y +0b1e: f7 1a mov a,($1a)+y +0b20: ad 04 cmp y,#$04 +0b22: d0 f2 bne $0b16 +0b24: f8 4a mov x,$4a +0b26: f7 1a mov a,($1a)+y +0b28: d5 21 02 mov $0221+x,a +0b2b: fc inc y +0b2c: f7 1a mov a,($1a)+y +0b2e: d5 20 02 mov $0220+x,a +0b31: 6f ret + +; vcmd d4 - pan +0b32: d5 f1 02 mov $02f1+x,a +0b35: 28 1f and a,#$1f +0b37: d5 d1 02 mov $02d1+x,a +0b3a: e8 00 mov a,#$00 +0b3c: d5 d0 02 mov $02d0+x,a +0b3f: 6f ret + +; vcmd d5 - pan fade +0b40: d4 91 mov $91+x,a +0b42: 2d push a +0b43: 3f 78 0a call $0a78 +0b46: d5 f0 02 mov $02f0+x,a +0b49: 80 setc +0b4a: b5 d1 02 sbc a,$02d1+x +0b4d: ce pop x +0b4e: 3f 62 0d call $0d62 +0b51: d5 e0 02 mov $02e0+x,a +0b54: dd mov a,y +0b55: d5 e1 02 mov $02e1+x,a +0b58: 6f ret + +; vcmd d7 - vibrato on +0b59: d5 80 02 mov $0280+x,a +0b5c: 3f 78 0a call $0a78 +0b5f: d5 71 02 mov $0271+x,a +0b62: 3f 78 0a call $0a78 +; vcmd d9 - vibrato off +0b65: d4 b1 mov $b1+x,a +0b67: d5 91 02 mov $0291+x,a +0b6a: e8 00 mov a,#$00 +0b6c: d5 81 02 mov $0281+x,a +0b6f: 6f ret + +; vcmd d8 - vibrato fade +0b70: d5 81 02 mov $0281+x,a +0b73: 2d push a +0b74: f4 b1 mov a,$b1+x +0b76: ce pop x +0b77: 8d 00 mov y,#$00 +0b79: 9e div ya,x +0b7a: f8 4a mov x,$4a +0b7c: d5 90 02 mov $0290+x,a +0b7f: 6f ret + +; vcmd cd - master volume +0b80: e8 00 mov a,#$00 +0b82: da 5e movw $5e,ya +0b84: 6f ret + +; vcmd ce - master volume fade +0b85: c4 60 mov $60,a +0b87: 3f 78 0a call $0a78 +0b8a: c4 61 mov $61,a +0b8c: 80 setc +0b8d: a4 5f sbc a,$5f +0b8f: f8 60 mov x,$60 +0b91: 3f 62 0d call $0d62 +0b94: da 62 movw $62,ya +0b96: 6f ret + +; vcmd cb - tempo +0b97: e8 00 mov a,#$00 +0b99: da 58 movw $58,ya +0b9b: 6f ret + +; vcmd cc - tempo fade (1) +0b9c: c4 5a mov $5a,a +0b9e: 3f 78 0a call $0a78 +0ba1: c4 5b mov $5b,a +0ba3: 80 setc +0ba4: a4 59 sbc a,$59 +0ba6: f8 5a mov x,$5a +0ba8: 3f 62 0d call $0d62 +0bab: da 5c movw $5c,ya +0bad: 6f ret + +; vcmd ca - global transpose +0bae: c4 56 mov $56,a +0bb0: 6f ret + +; vcmd d3 - per-voice transpose +0bb1: d5 11 02 mov $0211+x,a +0bb4: 6f ret + +; vcmd da - tremolo on +0bb5: d5 40 01 mov $0140+x,a +0bb8: 3f 78 0a call $0a78 +0bbb: d5 31 01 mov $0131+x,a +0bbe: 3f 78 0a call $0a78 +; vcmd db - tremolo off +0bc1: d4 c1 mov $c1+x,a +0bc3: 6f ret + +; vcmd df - pitch envelope (release) +0bc4: e8 01 mov a,#$01 +0bc6: 2f 02 bra $0bca +; vcmd e0 - pitch envelope (attack) +0bc8: e8 00 mov a,#$00 +0bca: d5 60 02 mov $0260+x,a +0bcd: dd mov a,y +0bce: d5 51 02 mov $0251+x,a +0bd1: 3f 78 0a call $0a78 +0bd4: d5 50 02 mov $0250+x,a +0bd7: 3f 78 0a call $0a78 +0bda: d5 61 02 mov $0261+x,a +0bdd: 6f ret + +; vcmd e1 - pitch envelope off +0bde: d5 50 02 mov $0250+x,a +0be1: 6f ret + +; vcmd dc - volume +0be2: d5 a1 02 mov $02a1+x,a +0be5: e8 00 mov a,#$00 +0be7: d5 a0 02 mov $02a0+x,a +0bea: 6f ret + +; vcmd dd - volume fade +0beb: d4 90 mov $90+x,a +0bed: 2d push a +0bee: 3f 78 0a call $0a78 +0bf1: d5 c0 02 mov $02c0+x,a +0bf4: 80 setc +0bf5: b5 a1 02 sbc a,$02a1+x +0bf8: ce pop x +0bf9: 3f 62 0d call $0d62 +0bfc: d5 b0 02 mov $02b0+x,a +0bff: dd mov a,y +0c00: d5 b1 02 mov $02b1+x,a +0c03: 6f ret + +; vcmd e2 - tuning +0c04: d5 21 01 mov $0121+x,a +0c07: 6f ret + +; vcmd e3 - nop +0c08: 6f ret + +; vcmd e4 - call subroutine +0c09: d5 40 02 mov $0240+x,a +0c0c: 3f 78 0a call $0a78 +0c0f: d5 41 02 mov $0241+x,a +0c12: 3f 78 0a call $0a78 +0c15: d4 80 mov $80+x,a +0c17: f4 30 mov a,$30+x +0c19: d5 30 02 mov $0230+x,a +0c1c: f4 31 mov a,$31+x +0c1e: d5 31 02 mov $0231+x,a +0c21: f5 40 02 mov a,$0240+x +0c24: d4 30 mov $30+x,a +0c26: f5 41 02 mov a,$0241+x +0c29: d4 31 mov $31+x,a +0c2b: 6f ret + +; vcmd cf - echo vbits/volume +0c2c: c4 06 mov $06,a +0c2e: c2 00 set6 $00 +0c30: 3f 78 0a call $0a78 +0c33: e8 00 mov a,#$00 +0c35: da 65 movw $65,ya +0c37: 3f 78 0a call $0a78 +0c3a: e8 00 mov a,#$00 +0c3c: da 67 movw $67,ya +0c3e: b2 4e clr5 $4e +0c40: f3 00 0a bbc7 $00,$0c4d +0c43: e4 66 mov a,$66 +0c45: 60 clrc +0c46: 84 68 adc a,$68 +0c48: 7c ror a +0c49: c4 66 mov $66,a +0c4b: c4 68 mov $68,a +0c4d: 6f ret + +; vcmd d1 - echo volume fade +0c4e: c4 6d mov $6d,a +0c50: 3f 78 0a call $0a78 +0c53: c4 6e mov $6e,a +0c55: 3f 78 0a call $0a78 +0c58: f3 00 06 bbc7 $00,$0c61 +0c5b: 60 clrc +0c5c: 84 1a adc a,$1a +0c5e: 7c ror a +0c5f: c4 6e mov $6e,a +0c61: c4 6f mov $6f,a +0c63: 80 setc +0c64: a4 68 sbc a,$68 +0c66: f8 6d mov x,$6d +0c68: 3f 62 0d call $0d62 +0c6b: da 6b movw $6b,ya +0c6d: c4 6e mov $6e,a +0c6f: 80 setc +0c70: a4 66 sbc a,$66 +0c72: f8 6d mov x,$6d +0c74: 3f 62 0d call $0d62 +0c77: da 69 movw $69,ya +0c79: 6f ret + +; vcmd d2 - disable echo +0c7a: c4 6d mov $6d,a +0c7c: da 65 movw $65,ya +0c7e: da 67 movw $67,ya +0c80: a2 4e set5 $4e +0c82: 6f ret + +; vcmd d0 - set echo params +0c83: 3f 0b 0d call $0d0b +0c86: 3f 78 0a call $0a78 +0c89: c4 55 mov $55,a +0c8b: 3f 78 0a call $0a78 +0c8e: 8d 08 mov y,#$08 +0c90: cf mul ya +0c91: 5d mov x,a +0c92: 8d 0f mov y,#$0f +0c94: f5 25 10 mov a,$1025+x +0c97: cc f2 00 mov $00f2,y +0c9a: c5 f3 00 mov $00f3,a +0c9d: 3d inc x +0c9e: dd mov a,y +0c9f: 60 clrc +0ca0: 88 10 adc a,#$10 +0ca2: fd mov y,a +0ca3: 10 ef bpl $0c94 +0ca5: f8 4a mov x,$4a +0ca7: 6f ret + +; vcmd de - pitch slide +0ca8: d4 a1 mov $a1+x,a +0caa: 3f 78 0a call $0a78 +0cad: d4 a0 mov $a0+x,a +0caf: 3f 78 0a call $0a78 +0cb2: aa 05 00 mov1 c,$0005,0 +0cb5: b0 02 bcs $0cb9 +0cb7: 84 56 adc a,$56 +0cb9: 60 clrc +0cba: 95 11 02 adc a,$0211+x +0cbd: 28 7f and a,#$7f +0cbf: d5 20 01 mov $0120+x,a +0cc2: 80 setc +0cc3: b5 01 01 sbc a,$0101+x +0cc6: fb a0 mov y,$a0+x +0cc8: 6d push y +0cc9: ce pop x +0cca: 3f 62 0d call $0d62 +0ccd: d5 10 01 mov $0110+x,a +0cd0: dd mov a,y +0cd1: d5 11 01 mov $0111+x,a +0cd4: 6f ret + +; vcmd e5 +0cd5: 09 4d 07 or ($07),($4d) +0cd8: c2 00 set6 $00 +0cda: 6f ret + +; vcmd e6 +0cdb: e4 4d mov a,$4d +0cdd: 4e 07 00 tclr1 $0007 +0ce0: c2 00 set6 $00 +0ce2: 6f ret + +; vcmd e7 - goto +0ce3: f4 21 mov a,$21+x +0ce5: 30 06 bmi $0ced +0ce7: f0 02 beq $0ceb +0ce9: 10 0f bpl $0cfa +0ceb: db 21 mov $21+x,y +0ced: 3f 78 0a call $0a78 +0cf0: 2d push a +0cf1: 3f 78 0a call $0a78 +0cf4: d4 31 mov $31+x,a +0cf6: ae pop a +0cf7: d4 30 mov $30+x,a +0cf9: 6f ret + +0cfa: 9c dec a +0cfb: d4 21 mov $21+x,a +0cfd: d0 ee bne $0ced +0cff: f4 30 mov a,$30+x +0d01: 60 clrc +0d02: 88 02 adc a,#$02 +0d04: d4 30 mov $30+x,a +0d06: 90 02 bcc $0d0a +0d08: bb 31 inc $31+x +0d0a: 6f ret + +0d0b: c4 50 mov $50,a +0d0d: 8d 7d mov y,#$7d +0d0f: cc f2 00 mov $00f2,y +0d12: e5 f3 00 mov a,$00f3 +0d15: 64 50 cmp a,$50 +0d17: f0 31 beq $0d4a +0d19: 28 0f and a,#$0f +0d1b: 48 ff eor a,#$ff +0d1d: f3 51 03 bbc7 $51,$0d23 +0d20: 60 clrc +0d21: 84 51 adc a,$51 +0d23: c4 51 mov $51,a +0d25: 8d 04 mov y,#$04 +0d27: f6 c4 04 mov a,$04c4+y +0d2a: c5 f2 00 mov $00f2,a +0d2d: e8 00 mov a,#$00 +0d2f: c5 f3 00 mov $00f3,a +0d32: fe f3 dbnz y,$0d27 +0d34: e4 4e mov a,$4e +0d36: 08 20 or a,#$20 +0d38: 8d 6c mov y,#$6c +0d3a: cc f2 00 mov $00f2,y +0d3d: c5 f3 00 mov $00f3,a +0d40: e4 50 mov a,$50 +0d42: 8d 7d mov y,#$7d +0d44: cc f2 00 mov $00f2,y +0d47: c5 f3 00 mov $00f3,a +0d4a: e4 0a mov a,$0a +0d4c: 8d 6d mov y,#$6d +0d4e: cc f2 00 mov $00f2,y +0d51: c5 f3 00 mov $00f3,a +0d54: ab 50 inc $50 +0d56: 6f ret + +0d57: f5 01 01 mov a,$0101+x +0d5a: c4 43 mov $43,a +0d5c: f5 00 01 mov a,$0100+x +0d5f: c4 42 mov $42,a +0d61: 6f ret + +0d62: ed notc +0d63: 6b 44 ror $44 +0d65: 10 03 bpl $0d6a +0d67: 48 ff eor a,#$ff +0d69: bc inc a +0d6a: 8d 00 mov y,#$00 +0d6c: 9e div ya,x +0d6d: 2d push a +0d6e: e8 00 mov a,#$00 +0d70: 9e div ya,x +0d71: ee pop y +0d72: f8 4a mov x,$4a +0d74: f3 44 06 bbc7 $44,$0d7d +0d77: da 1a movw $1a,ya +0d79: 9a 1a subw ya,$1a +0d7b: 9a 1a subw ya,$1a +0d7d: 6f ret + +0d7e: f4 90 mov a,$90+x +0d80: f0 24 beq $0da6 +0d82: 09 4d 64 or ($64),($4d) +0d85: 9b 90 dec $90+x +0d87: d0 0a bne $0d93 +0d89: e8 00 mov a,#$00 +0d8b: d5 a0 02 mov $02a0+x,a +0d8e: f5 c0 02 mov a,$02c0+x +0d91: 2f 10 bra $0da3 +0d93: 60 clrc +0d94: f5 a0 02 mov a,$02a0+x +0d97: 95 b0 02 adc a,$02b0+x +0d9a: d5 a0 02 mov $02a0+x,a +0d9d: f5 a1 02 mov a,$02a1+x +0da0: 95 b1 02 adc a,$02b1+x +0da3: d5 a1 02 mov $02a1+x,a +0da6: fb c1 mov y,$c1+x +0da8: f0 23 beq $0dcd +0daa: f5 40 01 mov a,$0140+x +0dad: de c0 1b cbne $c0+x,$0dcb +0db0: 09 4d 64 or ($64),($4d) +0db3: f5 30 01 mov a,$0130+x +0db6: 10 07 bpl $0dbf +0db8: fc inc y +0db9: d0 04 bne $0dbf +0dbb: e8 80 mov a,#$80 +0dbd: 2f 04 bra $0dc3 +0dbf: 60 clrc +0dc0: 95 31 01 adc a,$0131+x +0dc3: d5 30 01 mov $0130+x,a +0dc6: 3f fa 0f call $0ffa +0dc9: 2f 07 bra $0dd2 +0dcb: bb c0 inc $c0+x +0dcd: e8 ff mov a,#$ff +0dcf: 3f 05 10 call $1005 +0dd2: f4 91 mov a,$91+x +0dd4: f0 24 beq $0dfa +0dd6: 09 4d 64 or ($64),($4d) +0dd9: 9b 91 dec $91+x +0ddb: d0 0a bne $0de7 +0ddd: e8 00 mov a,#$00 +0ddf: d5 d0 02 mov $02d0+x,a +0de2: f5 f0 02 mov a,$02f0+x +0de5: 2f 10 bra $0df7 +0de7: 60 clrc +0de8: f5 d0 02 mov a,$02d0+x +0deb: 95 e0 02 adc a,$02e0+x +0dee: d5 d0 02 mov $02d0+x,a +0df1: f5 d1 02 mov a,$02d1+x +0df4: 95 e1 02 adc a,$02e1+x +0df7: d5 d1 02 mov $02d1+x,a +0dfa: e4 4d mov a,$4d +0dfc: 24 64 and a,$64 +0dfe: f0 44 beq $0e44 +0e00: f5 d1 02 mov a,$02d1+x +0e03: fd mov y,a +0e04: f5 d0 02 mov a,$02d0+x +0e07: da 42 movw $42,ya +0e09: f3 00 06 bbc7 $00,$0e12 +0e0c: 8f 0a 43 mov $43,#$0a +0e0f: 8f 00 42 mov $42,#$00 +0e12: 7d mov a,x +0e13: 9f xcn a +0e14: 5c lsr a +0e15: c4 44 mov $44,a +0e17: eb 43 mov y,$43 +0e19: f6 46 0e mov a,$0e46+y +0e1c: 80 setc +0e1d: b6 45 0e sbc a,$0e45+y +0e20: eb 42 mov y,$42 +0e22: cf mul ya +0e23: dd mov a,y +0e24: eb 43 mov y,$43 +0e26: 60 clrc +0e27: 96 45 0e adc a,$0e45+y +0e2a: fd mov y,a +0e2b: f5 c1 02 mov a,$02c1+x +0e2e: cf mul ya +0e2f: e4 44 mov a,$44 +0e31: c5 f2 00 mov $00f2,a +0e34: cc f3 00 mov $00f3,y +0e37: 8d 14 mov y,#$14 +0e39: e8 00 mov a,#$00 +0e3b: 9a 42 subw ya,$42 +0e3d: da 42 movw $42,ya +0e3f: ab 44 inc $44 +0e41: 33 44 d3 bbc1 $44,$0e17 +0e44: 6f ret + +0e45: db $00,$01,$03,$07,$0d,$15,$1e,$29 +0e4d: db $34,$42,$51,$5e,$67,$6e,$73,$77 +0e55: db $7a,$7c,$7d,$7e,$7f + +0e5a: f4 71 mov a,$71+x +0e5c: 30 68 bmi $0ec6 +0e5e: f0 66 beq $0ec6 +0e60: 9b 71 dec $71+x +0e62: f0 05 beq $0e69 +0e64: e8 02 mov a,#$02 +0e66: de 70 5d cbne $70+x,$0ec6 +0e69: f4 80 mov a,$80+x +0e6b: c4 1d mov $1d,a +0e6d: f4 30 mov a,$30+x +0e6f: fb 31 mov y,$31+x +0e71: da 1a movw $1a,ya +0e73: 8d 00 mov y,#$00 +0e75: 2f 03 bra $0e7a +0e77: fc inc y +0e78: 30 42 bmi $0ebc +0e7a: f7 1a mov a,($1a)+y +0e7c: f0 17 beq $0e95 +0e7e: 10 f7 bpl $0e77 +0e80: 68 c8 cmp a,#$c8 +0e82: f0 42 beq $0ec6 +0e84: 68 e4 cmp a,#$e4 +0e86: f0 29 beq $0eb1 +0e88: 68 ca cmp a,#$ca +0e8a: 90 30 bcc $0ebc +0e8c: 6d push y +0e8d: fd mov y,a +0e8e: ae pop a +0e8f: 96 f4 09 adc a,$09f4+y +0e92: fd mov y,a +0e93: 2f e5 bra $0e7a +0e95: e4 1d mov a,$1d +0e97: f0 23 beq $0ebc +0e99: 8b 1d dec $1d +0e9b: d0 0a bne $0ea7 +0e9d: f5 31 02 mov a,$0231+x +0ea0: 2d push a +0ea1: f5 30 02 mov a,$0230+x +0ea4: ee pop y +0ea5: 2f ca bra $0e71 +0ea7: f5 41 02 mov a,$0241+x +0eaa: 2d push a +0eab: f5 40 02 mov a,$0240+x +0eae: ee pop y +0eaf: 2f c0 bra $0e71 +0eb1: fc inc y +0eb2: f7 1a mov a,($1a)+y +0eb4: 2d push a +0eb5: fc inc y +0eb6: f7 1a mov a,($1a)+y +0eb8: fd mov y,a +0eb9: ae pop a +0eba: 2f b5 bra $0e71 +0ebc: e4 4d mov a,$4d +0ebe: 8d 5c mov y,#$5c +0ec0: cc f2 00 mov $00f2,y +0ec3: c5 f3 00 mov $00f3,a +0ec6: f2 45 clr7 $45 +0ec8: f4 a0 mov a,$a0+x +0eca: f0 2c beq $0ef8 +0ecc: f4 a1 mov a,$a1+x +0ece: f0 04 beq $0ed4 +0ed0: 9b a1 dec $a1+x +0ed2: 2f 24 bra $0ef8 +0ed4: e2 45 set7 $45 +0ed6: 9b a0 dec $a0+x +0ed8: d0 0b bne $0ee5 +0eda: f5 21 01 mov a,$0121+x +0edd: d5 00 01 mov $0100+x,a +0ee0: f5 20 01 mov a,$0120+x +0ee3: 2f 10 bra $0ef5 +0ee5: f5 00 01 mov a,$0100+x +0ee8: 60 clrc +0ee9: 95 10 01 adc a,$0110+x +0eec: d5 00 01 mov $0100+x,a +0eef: f5 01 01 mov a,$0101+x +0ef2: 95 11 01 adc a,$0111+x +0ef5: d5 01 01 mov $0101+x,a +0ef8: 3f 57 0d call $0d57 +0efb: f4 b1 mov a,$b1+x +0efd: f0 4a beq $0f49 +0eff: f5 80 02 mov a,$0280+x +0f02: de b0 42 cbne $b0+x,$0f47 +0f05: f5 81 00 mov a,$0081+x +0f08: 75 81 02 cmp a,$0281+x +0f0b: d0 05 bne $0f12 +0f0d: f5 91 02 mov a,$0291+x +0f10: 2f 0b bra $0f1d +0f12: bb 81 inc $81+x +0f14: fd mov y,a +0f15: f0 02 beq $0f19 +0f17: f4 b1 mov a,$b1+x +0f19: 60 clrc +0f1a: 95 90 02 adc a,$0290+x +0f1d: d4 b1 mov $b1+x,a +0f1f: f5 70 02 mov a,$0270+x +0f22: 60 clrc +0f23: 95 71 02 adc a,$0271+x +0f26: d5 70 02 mov $0270+x,a +0f29: c4 44 mov $44,a +0f2b: 1c asl a +0f2c: 1c asl a +0f2d: 90 02 bcc $0f31 +0f2f: 48 ff eor a,#$ff +0f31: fd mov y,a +0f32: f4 b1 mov a,$b1+x +0f34: 68 f1 cmp a,#$f1 +0f36: 90 05 bcc $0f3d +0f38: 28 0f and a,#$0f +0f3a: cf mul ya +0f3b: 2f 04 bra $0f41 +0f3d: cf mul ya +0f3e: dd mov a,y +0f3f: 8d 00 mov y,#$00 +0f41: 3f e0 0f call $0fe0 +0f44: 5f ab 09 jmp $09ab + +0f47: bb b0 inc $b0+x +0f49: e3 45 f8 bbs7 $45,$0f44 +0f4c: e4 4d mov a,$4d +0f4e: 24 11 and a,$11 +0f50: d0 f2 bne $0f44 +0f52: 6f ret + +0f53: f2 45 clr7 $45 +0f55: f4 c1 mov a,$c1+x +0f57: f0 09 beq $0f62 +0f59: f5 40 01 mov a,$0140+x +0f5c: de c0 03 cbne $c0+x,$0f62 +0f5f: 3f e8 0f call $0fe8 +0f62: f5 d1 02 mov a,$02d1+x +0f65: fd mov y,a +0f66: f5 d0 02 mov a,$02d0+x +0f69: da 42 movw $42,ya +0f6b: f4 91 mov a,$91+x +0f6d: f0 0c beq $0f7b +0f6f: f5 e1 02 mov a,$02e1+x +0f72: fd mov y,a +0f73: f5 e0 02 mov a,$02e0+x +0f76: 3f c0 0f call $0fc0 +0f79: 2f 0e bra $0f89 +0f7b: e3 45 0b bbs7 $45,$0f89 +0f7e: e4 4d mov a,$4d +0f80: 24 64 and a,$64 +0f82: f0 08 beq $0f8c +0f84: e8 ff mov a,#$ff +0f86: 3f 05 10 call $1005 +0f89: 3f 09 0e call $0e09 +0f8c: f2 45 clr7 $45 +0f8e: 3f 57 0d call $0d57 +0f91: f4 a0 mov a,$a0+x +0f93: f0 0e beq $0fa3 +0f95: f4 a1 mov a,$a1+x +0f97: d0 0a bne $0fa3 +0f99: f5 11 01 mov a,$0111+x +0f9c: fd mov y,a +0f9d: f5 10 01 mov a,$0110+x +0fa0: 3f c0 0f call $0fc0 +0fa3: f4 b1 mov a,$b1+x +0fa5: f0 a2 beq $0f49 +0fa7: f5 80 02 mov a,$0280+x +0faa: de b0 9c cbne $b0+x,$0f49 +0fad: eb 57 mov y,$57 +0faf: 13 05 02 bbc0 $05,$0fb4 +0fb2: eb 10 mov y,$10 +0fb4: f5 71 02 mov a,$0271+x +0fb7: cf mul ya +0fb8: dd mov a,y +0fb9: 60 clrc +0fba: 95 70 02 adc a,$0270+x +0fbd: 5f 29 0f jmp $0f29 + +0fc0: e2 45 set7 $45 +0fc2: cb 44 mov $44,y +0fc4: 3f 74 0d call $0d74 +0fc7: 6d push y +0fc8: eb 57 mov y,$57 +0fca: 13 05 02 bbc0 $05,$0fcf +0fcd: eb 10 mov y,$10 +0fcf: cf mul ya +0fd0: cb 1a mov $1a,y +0fd2: 8f 00 1b mov $1b,#$00 +0fd5: eb 57 mov y,$57 +0fd7: 13 05 02 bbc0 $05,$0fdc +0fda: eb 10 mov y,$10 +0fdc: ae pop a +0fdd: cf mul ya +0fde: 7a 1a addw ya,$1a +0fe0: 3f 74 0d call $0d74 +0fe3: 7a 42 addw ya,$42 +0fe5: da 42 movw $42,ya +0fe7: 6f ret + +0fe8: e2 45 set7 $45 +0fea: f5 31 01 mov a,$0131+x +0fed: eb 57 mov y,$57 +0fef: 13 05 02 bbc0 $05,$0ff4 +0ff2: eb 10 mov y,$10 +0ff4: cf mul ya +0ff5: dd mov a,y +0ff6: 60 clrc +0ff7: 95 30 01 adc a,$0130+x +0ffa: 1c asl a +0ffb: 90 02 bcc $0fff +0ffd: 48 ff eor a,#$ff +0fff: fb c1 mov y,$c1+x +1001: cf mul ya +1002: dd mov a,y +1003: 48 ff eor a,#$ff +1005: 03 05 08 bbs0 $05,$1010 +1008: eb 01 mov y,$01 +100a: cf mul ya +100b: e4 5f mov a,$5f +100d: cf mul ya +100e: 2f 06 bra $1016 +1010: eb 02 mov y,$02 +1012: cf mul ya +1013: f4 d1 mov a,$d1+x +1015: cf mul ya +1016: f5 10 02 mov a,$0210+x +1019: cf mul ya +101a: f5 a1 02 mov a,$02a1+x +101d: cf mul ya +101e: dd mov a,y +101f: cf mul ya +1020: dd mov a,y +1021: d5 c1 02 mov $02c1+x,a +1024: 6f ret + +; echo FIR presets +1025: db $7f,$00,$00,$00,$00,$00,$00,$00 +102d: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c +1035: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 +103d: db $34,$33,$00,$d9,$e5,$01,$fc,$eb + +1045: db $00,$7f,$98,$b2,$cb,$e5,$fc,$ff +104d: db $19,$32,$4c,$65,$72,$7f,$8c,$98 +1055: db $a5,$b2,$bf,$cb,$d8,$e5,$f2,$fc + +105d: e3 e0 16 bbs7 $e0,$1076 +1060: c2 03 set6 $03 +1062: 3f 82 11 call $1182 +1065: cd 0c mov x,#$0c +1067: 3f 46 08 call $0846 +106a: fa e1 1a mov ($1a),($e1) +106d: 58 10 1a eor $1a,#$10 +1070: 18 87 e0 or $e0,#$87 +1073: 5f cc 10 jmp $10cc + +1076: 6f ret + +1077: f3 e0 fc bbc7 $e0,$1076 +107a: d2 03 clr6 $03 +107c: 3f 82 11 call $1182 +107f: 8f 00 3d mov $3d,#$00 +1082: f2 e0 clr7 $e0 +1084: 5f f1 10 jmp $10f1 + +1087: 38 c0 e0 and $e0,#$c0 +108a: e5 f6 00 mov a,$00f6 +108d: 65 f6 00 cmp a,$00f6 +1090: d0 f8 bne $108a +1092: fd mov y,a +1093: 10 0b bpl $10a0 +1095: 64 e1 cmp a,$e1 +1097: f0 07 beq $10a0 +1099: fa e1 1a mov ($1a),($e1) +109c: c4 e1 mov $e1,a +109e: 02 e0 set0 $e0 +10a0: e5 f7 00 mov a,$00f7 +10a3: 65 f7 00 cmp a,$00f7 +10a6: d0 f8 bne $10a0 +10a8: fd mov y,a +10a9: 10 21 bpl $10cc +10ab: 64 e2 cmp a,$e2 +10ad: f0 1d beq $10cc +10af: fa e2 1c mov ($1c),($e2) +10b2: c4 e2 mov $e2,a +10b4: d3 e0 13 bbc6 $e0,$10ca +10b7: 28 3f and a,#$3f +10b9: 38 3f 1c and $1c,#$3f +10bc: 64 1c cmp a,$1c +10be: 90 0a bcc $10ca +10c0: f0 08 beq $10ca +10c2: 02 e0 set0 $e0 +10c4: fa e1 1a mov ($1a),($e1) +10c7: 58 40 e1 eor $e1,#$40 +10ca: 22 e0 set1 $e0 +10cc: f3 e0 22 bbc7 $e0,$10f1 +10cf: 13 e0 03 bbc0 $e0,$10d5 +10d2: 3f 00 11 call $1100 +10d5: 33 e0 03 bbc1 $e0,$10db +10d8: 3f 45 11 call $1145 +10db: e4 e3 mov a,$e3 +10dd: f0 12 beq $10f1 +10df: 6e e3 0f dbnz $e3,$10f1 +10e2: c2 00 set6 $00 +10e4: d2 07 clr6 $07 +10e6: 13 e1 02 bbc0 $e1,$10eb +10e9: c2 07 set6 $07 +10eb: e4 7d mov a,$7d +10ed: f0 02 beq $10f1 +10ef: c2 4b set6 $4b +10f1: 38 c0 e0 and $e0,#$c0 +10f4: e4 e1 mov a,$e1 +10f6: 28 3f and a,#$3f +10f8: 04 e0 or a,$e0 +10fa: c4 e0 mov $e0,a +10fc: c5 f7 00 mov $00f7,a +10ff: 6f ret + +1100: 38 7e 1a and $1a,#$7e +1103: e4 e1 mov a,$e1 +1105: 28 7e and a,#$7e +1107: 64 1a cmp a,$1a +1109: f0 2f beq $113a +110b: b3 e1 06 bbc5 $e1,$1114 +110e: 8d 02 mov y,#$02 +1110: d2 e0 clr6 $e0 +1112: 2f 14 bra $1128 +1114: 38 0e 1a and $1a,#$0e +1117: 28 0e and a,#$0e +1119: 64 1a cmp a,$1a +111b: d2 e0 clr6 $e0 +111d: e4 e1 mov a,$e1 +111f: 28 1e and a,#$1e +1121: b0 04 bcs $1127 +1123: c2 e0 set6 $e0 +1125: 08 20 or a,#$20 +1127: fd mov y,a +1128: f6 00 12 mov a,$1200+y +112b: c4 3c mov $3c,a +112d: f6 01 12 mov a,$1201+y +1130: c4 3d mov $3d,a +1132: 8f 03 7c mov $7c,#$03 +1135: 8f 00 7d mov $7d,#$00 +1138: 22 e0 set1 $e0 +113a: e4 e3 mov a,$e3 +113c: d0 06 bne $1144 +113e: 8f 04 e3 mov $e3,#$04 +1141: 3f 82 11 call $1182 +1144: 6f ret + +1145: e4 e2 mov a,$e2 +1147: 28 3f and a,#$3f +1149: d3 e0 02 bbc6 $e0,$114e +114c: 08 40 or a,#$40 +114e: 8d 03 mov y,#$03 +1150: cf mul ya +1151: 8f 40 1a mov $1a,#$40 +1154: 8f 12 1b mov $1b,#$12 +1157: 7a 1a addw ya,$1a +1159: da 1a movw $1a,ya +115b: 8d 00 mov y,#$00 +115d: e5 0d 01 mov a,$010d +1160: 80 setc +1161: a5 1d 02 sbc a,$021d +1164: 60 clrc +1165: 97 1a adc a,($1a)+y +1167: c5 0d 01 mov $010d,a +116a: f7 1a mov a,($1a)+y +116c: c5 1d 02 mov $021d,a +116f: fc inc y +1170: f7 1a mov a,($1a)+y +1172: c5 2d 01 mov $012d,a +1175: c5 0c 01 mov $010c,a +1178: fc inc y +1179: f7 1a mov a,($1a)+y +117b: c4 dd mov $dd,a +117d: c2 11 set6 $11 +117f: c2 64 set6 $64 +1181: 6f ret + +1182: e8 40 mov a,#$40 +1184: 8d 5c mov y,#$5c +1186: cc f2 00 mov $00f2,y +1189: c5 f3 00 mov $00f3,a + +118c: 6f ret diff --git a/snes/NSPC/Video System/SD F-1 Grand Prix ($0420).bin b/snes/NSPC/Video System/SD F-1 Grand Prix ($0420).bin new file mode 100644 index 00000000..8eeeb810 Binary files /dev/null and b/snes/NSPC/Video System/SD F-1 Grand Prix ($0420).bin differ diff --git a/snes/NSPC/Video System/SD F-1 Grand Prix.s b/snes/NSPC/Video System/SD F-1 Grand Prix.s new file mode 100644 index 00000000..61f59690 --- /dev/null +++ b/snes/NSPC/Video System/SD F-1 Grand Prix.s @@ -0,0 +1,2091 @@ +0420: 8f dc f5 mov $f5,#$dc +0423: 8f fe f4 mov $f4,#$fe +0426: 5f 49 04 jmp $0449 + +0429: dd mov a,y +042a: 8d 00 mov y,#$00 +042c: 7a ee addw ya,$ee +042e: da ee movw $ee,ya +0430: 8d 00 mov y,#$00 +0432: 5f 49 04 jmp $0449 + +0435: 68 02 cmp a,#$02 +0437: 90 09 bcc $0442 +0439: 7d mov a,x +043a: d7 ee mov ($ee)+y,a +043c: fc inc y +043d: e4 e3 mov a,$e3 +043f: d7 ee mov ($ee)+y,a +0441: fc inc y +0442: e4 e2 mov a,$e2 +0444: d7 ee mov ($ee)+y,a +0446: fc inc y +0447: 30 e0 bmi $0429 +0449: e4 f4 mov a,$f4 +044b: 64 f4 cmp a,$f4 +044d: d0 fa bne $0449 +044f: 64 1e cmp a,$1e +0451: f0 f6 beq $0449 +0453: fa f5 e2 mov ($e2),($f5) +0456: fa f6 e3 mov ($e3),($f6) +0459: f8 f7 mov x,$f7 +045b: c4 f4 mov $f4,a +045d: c4 1e mov $1e,a +045f: 63 1e 0e bbs3 $1e,$0470 +0462: 28 03 and a,#$03 +0464: d0 cf bne $0435 +0466: d8 ef mov $ef,x +0468: fa e3 ee mov ($ee),($e3) +046b: 8d 00 mov y,#$00 +046d: 5f 49 04 jmp $0449 + +0470: 8f 00 f5 mov $f5,#$00 +0473: 8f 00 f4 mov $f4,#$00 +0476: 6f ret + +0477: db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff + +0480: d3 1a 1a bbc6 $1a,$049d +0483: fa 23 06 mov ($06),($23) +0486: 58 ff 06 eor $06,#$ff +0489: 29 24 06 and ($06),($24) +048c: e4 21 mov a,$21 +048e: 04 22 or a,$22 +0490: 24 23 and a,$23 +0492: 0e 06 00 tset1 $0006 +0495: fa 46 09 mov ($09),($46) +0498: fa 48 08 mov ($08),($48) +049b: d2 1a clr6 $1a +049d: cd 00 mov x,#$00 +049f: 8f 00 04 mov $04,#$00 +04a2: e8 01 mov a,#$01 +04a4: fb d1 mov y,$d1+x +04a6: f0 07 beq $04af +04a8: 9b d1 dec $d1+x +04aa: d0 03 bne $04af +04ac: 0e 04 00 tset1 $0004 +04af: 03 1a 07 bbs0 $1a,$04b9 +04b2: 4d push x +04b3: 2d push a +04b4: 3f a3 0e call $0ea3 +04b7: ae pop a +04b8: ce pop x +04b9: 3d inc x +04ba: 3d inc x +04bb: 1c asl a +04bc: d0 e6 bne $04a4 +04be: 8f 00 03 mov $03,#$00 +04c1: cd 00 mov x,#$00 +04c3: f5 11 13 mov a,$1311+x +04c6: c4 f2 mov $f2,a +04c8: bf mov a,(x)+ +04c9: c4 f3 mov $f3,a +04cb: 3e 19 cmp x,$19 +04cd: d0 f4 bne $04c3 +04cf: 8f 00 04 mov $04,#$00 +04d2: 8f 00 00 mov $00,#$00 +04d5: 8f 00 2c mov $2c,#$00 +04d8: 3f 09 15 call $1509 +04db: 3f a3 0e call $0ea3 +04de: fa 1a f5 mov ($f5),($1a) +04e1: fa 23 f6 mov ($f6),($23) +04e4: b3 1a 17 bbc5 $1a,$04fe +04e7: e4 3b mov a,$3b +04e9: 60 clrc +04ea: 84 2a adc a,$2a +04ec: e3 2a 07 bbs7 $2a,$04f6 +04ef: 90 09 bcc $04fa +04f1: e8 ff mov a,#$ff +04f3: 5f f6 04 jmp $04f6 + +04f6: b0 02 bcs $04fa +04f8: e8 00 mov a,#$00 +04fa: c4 13 mov $13,a +04fc: b2 1a clr5 $1a +04fe: eb fd mov y,$fd +0500: f0 fc beq $04fe +0502: cb 18 mov $18,y +0504: e4 fe mov a,$fe +0506: f0 17 beq $051f +0508: 69 37 38 cmp ($38),($37) +050b: f0 0f beq $051c +050d: ab 38 inc $38 +050f: 30 0b bmi $051c +0511: 8f 06 19 mov $19,#$06 +0514: 69 37 38 cmp ($38),($37) +0517: d0 03 bne $051c +0519: 8f 0a 19 mov $19,#$0a +051c: 3f 64 0e call $0e64 +051f: e4 23 mov a,$23 +0521: f0 46 beq $0569 +0523: c4 1f mov $1f,a +0525: eb 18 mov y,$18 +0527: e8 3e mov a,#$3e +0529: cf mul ya +052a: 60 clrc +052b: 84 2b adc a,$2b +052d: c4 2b mov $2b,a +052f: 90 35 bcc $0566 +0531: cd 00 mov x,#$00 +0533: 8f 01 36 mov $36,#$01 +0536: 13 1f 22 bbc0 $1f,$055b +0539: 3f 37 06 call $0637 +053c: 90 06 bcc $0544 +053e: 3f ec 0f call $0fec +0541: 5f 5b 05 jmp $055b + +0544: 3f dc 07 call $07dc +0547: f4 61 mov a,$61+x +0549: f0 10 beq $055b +054b: 68 7f cmp a,#$7f +054d: f0 0c beq $055b +054f: 9b 61 dec $61+x +0551: d0 08 bne $055b +0553: f5 a1 03 mov a,$03a1+x +0556: f0 03 beq $055b +0558: 3f ec 0f call $0fec +055b: 3d inc x +055c: 3d inc x +055d: 4b 1f lsr $1f +055f: 0b 36 asl $36 +0561: 90 d3 bcc $0536 +0563: 5f 69 05 jmp $0569 + +0566: fa 23 20 mov ($20),($23) +0569: 03 1a 03 bbs0 $1a,$056f +056c: 5f 11 06 jmp $0611 + +056f: eb 18 mov y,$18 +0571: e4 13 mov a,$13 +0573: cf mul ya +0574: 60 clrc +0575: 84 39 adc a,$39 +0577: c4 39 mov $39,a +0579: b0 03 bcs $057e +057b: 5f 0a 06 jmp $060a + +057e: cd 00 mov x,#$00 +0580: fa 23 1f mov ($1f),($23) +0583: 8f 01 36 mov $36,#$01 +0586: 03 1f 16 bbs0 $1f,$059f +0589: f4 51 mov a,$51+x +058b: f0 12 beq $059f +058d: 3f 37 06 call $0637 +0590: 90 0d bcc $059f +0592: 12 e0 clr0 $e0 +0594: 3f 0f 0e call $0e0f +0597: 90 e5 bcc $057e +0599: 3f 66 11 call $1166 +059c: 5f 11 06 jmp $0611 + +059f: 3d inc x +05a0: 3d inc x +05a1: 4b 1f lsr $1f +05a3: 0b 36 asl $36 +05a5: d0 df bne $0586 +05a7: e4 3c mov a,$3c +05a9: f0 0d beq $05b8 +05ab: ba 3e movw ya,$3e +05ad: 7a 3a addw ya,$3a +05af: 6e 3c 02 dbnz $3c,$05b4 +05b2: ba 3c movw ya,$3c +05b4: da 3a movw $3a,ya +05b6: a2 1a set5 $1a +05b8: e4 4d mov a,$4d +05ba: f0 1b beq $05d7 +05bc: ba 49 movw ya,$49 +05be: 7a 45 addw ya,$45 +05c0: da 45 movw $45,ya +05c2: ba 4b movw ya,$4b +05c4: 7a 47 addw ya,$47 +05c6: 6e 4d 06 dbnz $4d,$05cf +05c9: ba 4d movw ya,$4d +05cb: da 45 movw $45,ya +05cd: eb 4f mov y,$4f +05cf: da 47 movw $47,ya +05d1: fa 46 09 mov ($09),($46) +05d4: fa 48 08 mov ($08),($48) +05d7: e4 41 mov a,$41 +05d9: f0 12 beq $05ed +05db: ba 43 movw ya,$43 +05dd: 7a 15 addw ya,$15 +05df: 6e 41 02 dbnz $41,$05e4 +05e2: ba 41 movw ya,$41 +05e4: da 15 movw $15,ya +05e6: e4 23 mov a,$23 +05e8: 48 ff eor a,#$ff +05ea: 0e 03 00 tset1 $0003 +05ed: fa 23 1f mov ($1f),($23) +05f0: 8f 01 36 mov $36,#$01 +05f3: cd 00 mov x,#$00 +05f5: f4 51 mov a,$51+x +05f7: f0 06 beq $05ff +05f9: 03 1f 03 bbs0 $1f,$05ff +05fc: 3f dc 07 call $07dc +05ff: 3d inc x +0600: 3d inc x +0601: 4b 1f lsr $1f +0603: 0b 36 asl $36 +0605: d0 ee bne $05f5 +0607: 5f 11 06 jmp $0611 + +060a: e4 23 mov a,$23 +060c: 48 ff eor a,#$ff +060e: 0e 20 00 tset1 $0020 +0611: fa 23 1f mov ($1f),($23) +0614: 8f 01 36 mov $36,#$01 +0617: cd 00 mov x,#$00 +0619: 03 1a 05 bbs0 $1a,$0621 +061c: 4d push x +061d: 3f a3 0e call $0ea3 +0620: ce pop x +0621: 4b 20 lsr $20 +0623: 90 07 bcc $062c +0625: f4 51 mov a,$51+x +0627: f0 03 beq $062c +0629: 3f 5f 09 call $095f +062c: 3d inc x +062d: 3d inc x +062e: 4b 1f lsr $1f +0630: 0b 36 asl $36 +0632: d0 e5 bne $0619 +0634: 5f 80 04 jmp $0480 + +0637: d8 35 mov $35,x +0639: 9b 70 dec $70+x +063b: f0 06 beq $0643 +063d: 3f ba 08 call $08ba +0640: 5f a5 06 jmp $06a5 + +0643: 4f 00 pcall $00 +0645: d0 1a bne $0661 +0647: f4 d0 mov a,$d0+x +0649: f0 14 beq $065f +064b: 3f 22 0d call $0d22 +064e: 9b d0 dec $d0+x +0650: d0 f1 bne $0643 +0652: f5 30 02 mov a,$0230+x +0655: d4 50 mov $50+x,a +0657: f5 31 02 mov a,$0231+x +065a: d4 51 mov $51+x,a +065c: 5f 43 06 jmp $0643 + +065f: 80 setc +0660: 6f ret + +0661: 30 0f bmi $0672 +0663: d5 00 02 mov $0200+x,a +0666: 4f 00 pcall $00 +0668: 30 08 bmi $0672 +066a: d5 a0 03 mov $03a0+x,a +066d: 3f fb 12 call $12fb +0670: 4f 00 pcall $00 +0672: 68 ca cmp a,#$ca +0674: 90 06 bcc $067c +0676: 3f 0c 0a call $0a0c +0679: 5f 43 06 jmp $0643 + +067c: 3f bc 06 call $06bc +067f: f5 00 02 mov a,$0200+x +0682: d4 70 mov $70+x,a +0684: fd mov y,a +0685: e7 50 mov a,($50+x) +0687: 68 ea cmp a,#$ea +0689: d0 0b bne $0696 +068b: 4f 02 pcall $02 +068d: e4 36 mov a,$36 +068f: 0e 17 00 tset1 $0017 +0692: e8 00 mov a,#$00 +0694: 2f 0d bra $06a3 +0696: e4 36 mov a,$36 +0698: 4e 17 00 tclr1 $0017 +069b: f5 01 02 mov a,$0201+x +069e: cf mul ya +069f: dd mov a,y +06a0: d0 01 bne $06a3 +06a2: bc inc a +06a3: d4 71 mov $71+x,a +06a5: f4 a0 mov a,$a0+x +06a7: d0 11 bne $06ba +06a9: e7 50 mov a,($50+x) +06ab: 68 e1 cmp a,#$e1 +06ad: d0 0b bne $06ba +06af: bb 50 inc $50+x +06b1: d0 02 bne $06b5 +06b3: bb 51 inc $51+x +06b5: 4f 00 pcall $00 +06b7: 3f c1 0c call $0cc1 +06ba: 60 clrc +06bb: 6f ret + +06bc: 09 36 03 or ($03),($36) +06bf: 68 c8 cmp a,#$c8 +06c1: b0 f8 bcs $06bb +06c3: 28 7f and a,#$7f +06c5: 60 clrc +06c6: 95 11 02 adc a,$0211+x +06c9: 03 1f 22 bbs0 $1f,$06ee +06cc: 60 clrc +06cd: 84 40 adc a,$40 +06cf: eb 26 mov y,$26 +06d1: f0 1b beq $06ee +06d3: 2d push a +06d4: e4 36 mov a,$36 +06d6: 24 12 and a,$12 +06d8: ae pop a +06d9: d0 13 bne $06ee +06db: 60 clrc +06dc: 84 26 adc a,$26 +06de: e3 26 09 bbs7 $26,$06ea +06e1: 68 47 cmp a,#$47 +06e3: 90 09 bcc $06ee +06e5: e8 47 mov a,#$47 +06e7: 5f ee 06 jmp $06ee + +06ea: b0 02 bcs $06ee +06ec: e8 00 mov a,#$00 +06ee: d5 01 01 mov $0101+x,a +06f1: f5 21 01 mov a,$0121+x +06f4: d5 00 01 mov $0100+x,a +06f7: e4 36 mov a,$36 +06f9: 24 17 and a,$17 +06fb: d0 05 bne $0702 +06fd: f5 41 01 mov a,$0141+x +0700: d4 d1 mov $d1+x,a +0702: f5 81 02 mov a,$0281+x +0705: 5c lsr a +0706: e8 00 mov a,#$00 +0708: d4 b0 mov $b0+x,a +070a: d5 81 00 mov $0081+x,a +070d: d4 c0 mov $c0+x,a +070f: d5 30 01 mov $0130+x,a +0712: 7c ror a +0713: d5 70 02 mov $0270+x,a +0716: f5 50 02 mov a,$0250+x +0719: d4 a0 mov $a0+x,a +071b: f0 1e beq $073b +071d: f5 51 02 mov a,$0251+x +0720: d4 a1 mov $a1+x,a +0722: f5 60 02 mov a,$0260+x +0725: d0 0a bne $0731 +0727: f5 01 01 mov a,$0101+x +072a: 80 setc +072b: b5 61 02 sbc a,$0261+x +072e: d5 01 01 mov $0101+x,a +0731: f5 61 02 mov a,$0261+x +0734: 60 clrc +0735: 95 01 01 adc a,$0101+x +0738: 3f d4 0c call $0cd4 +073b: 4f 26 pcall $26 +073d: 8d 00 mov y,#$00 +073f: e4 2f mov a,$2f +0741: 80 setc +0742: a8 34 sbc a,#$34 +0744: b0 09 bcs $074f +0746: e4 2f mov a,$2f +0748: 80 setc +0749: a8 13 sbc a,#$13 +074b: b0 06 bcs $0753 +074d: dc dec y +074e: 1c asl a +074f: 7a 2e addw ya,$2e +0751: da 2e movw $2e,ya +0753: e4 2f mov a,$2f +0755: 1c asl a +0756: 8d 00 mov y,#$00 +0758: cd 18 mov x,#$18 +075a: 9e div ya,x +075b: 5d mov x,a +075c: f6 c3 07 mov a,$07c3+y +075f: c4 e1 mov $e1,a +0761: f6 c2 07 mov a,$07c2+y +0764: c4 e0 mov $e0,a +0766: f6 c5 07 mov a,$07c5+y +0769: 2d push a +076a: f6 c4 07 mov a,$07c4+y +076d: ee pop y +076e: 9a e0 subw ya,$e0 +0770: eb 2e mov y,$2e +0772: cf mul ya +0773: dd mov a,y +0774: 8d 00 mov y,#$00 +0776: 7a e0 addw ya,$e0 +0778: cb e1 mov $e1,y +077a: 1c asl a +077b: 2b e1 rol $e1 +077d: 5f 84 07 jmp $0784 + +0780: 4b e1 lsr $e1 +0782: 7c ror a +0783: 3d inc x +0784: c8 06 cmp x,#$06 +0786: d0 f8 bne $0780 +0788: c4 e0 mov $e0,a +078a: f8 35 mov x,$35 +078c: f5 20 02 mov a,$0220+x +078f: eb e1 mov y,$e1 +0791: cf mul ya +0792: da e2 movw $e2,ya +0794: f5 20 02 mov a,$0220+x +0797: eb e0 mov y,$e0 +0799: cf mul ya +079a: 6d push y +079b: f5 21 02 mov a,$0221+x +079e: eb e0 mov y,$e0 +07a0: cf mul ya +07a1: 7a e2 addw ya,$e2 +07a3: da e2 movw $e2,ya +07a5: f5 21 02 mov a,$0221+x +07a8: eb e1 mov y,$e1 +07aa: cf mul ya +07ab: fd mov y,a +07ac: ae pop a +07ad: 7a e2 addw ya,$e2 +07af: da e2 movw $e2,ya +07b1: 7d mov a,x +07b2: 9f xcn a +07b3: 5c lsr a +07b4: 08 02 or a,#$02 +07b6: c4 f2 mov $f2,a +07b8: fa e2 f3 mov ($f3),($e2) +07bb: bc inc a +07bc: c4 f2 mov $f2,a +07be: fa e3 f3 mov ($f3),($e3) +07c1: 6f ret + +; pitch table +07c2: dw $085f +07c4: dw $08de +07c6: dw $0965 +07c8: dw $09f4 +07ca: dw $0a8c +07cc: dw $0b2c +07ce: dw $0bd6 +07d0: dw $0c8b +07d2: dw $0d4a +07d4: dw $0e14 +07d6: dw $0eea +07d8: dw $0fcd +07da: dw $10be + +07dc: f4 90 mov a,$90+x +07de: f0 25 beq $0805 +07e0: 09 36 03 or ($03),($36) +07e3: 9b 90 dec $90+x +07e5: f0 13 beq $07fa +07e7: f5 a0 02 mov a,$02a0+x +07ea: 60 clrc +07eb: 95 b0 02 adc a,$02b0+x +07ee: d5 a0 02 mov $02a0+x,a +07f1: f5 a1 02 mov a,$02a1+x +07f4: 95 b1 02 adc a,$02b1+x +07f7: 5f 02 08 jmp $0802 + +07fa: e8 00 mov a,#$00 +07fc: d5 a0 02 mov $02a0+x,a +07ff: f5 c0 02 mov a,$02c0+x +0802: d5 a1 02 mov $02a1+x,a +0805: fb c1 mov y,$c1+x +0807: f0 25 beq $082e +0809: f5 40 01 mov a,$0140+x +080c: de c0 1d cbne $c0+x,$082c +080f: 09 36 03 or ($03),($36) +0812: f5 30 01 mov a,$0130+x +0815: 10 08 bpl $081f +0817: fc inc y +0818: d0 05 bne $081f +081a: e8 80 mov a,#$80 +081c: 5f 23 08 jmp $0823 + +081f: 60 clrc +0820: 95 31 01 adc a,$0131+x +0823: d5 30 01 mov $0130+x,a +0826: 3f df 09 call $09df +0829: 5f 33 08 jmp $0833 + +082c: bb c0 inc $c0+x +082e: e8 ff mov a,#$ff +0830: 3f ea 09 call $09ea +0833: f4 91 mov a,$91+x +0835: f0 25 beq $085c +0837: 09 36 03 or ($03),($36) +083a: 9b 91 dec $91+x +083c: f0 13 beq $0851 +083e: 60 clrc +083f: f5 d0 02 mov a,$02d0+x +0842: 95 e0 02 adc a,$02e0+x +0845: d5 d0 02 mov $02d0+x,a +0848: f5 d1 02 mov a,$02d1+x +084b: 95 e1 02 adc a,$02e1+x +084e: 5f 59 08 jmp $0859 + +0851: e8 00 mov a,#$00 +0853: d5 d0 02 mov $02d0+x,a +0856: f5 f0 02 mov a,$02f0+x +0859: d5 d1 02 mov $02d1+x,a +085c: e4 36 mov a,$36 +085e: 24 03 and a,$03 +0860: f0 42 beq $08a4 +0862: f5 d1 02 mov a,$02d1+x +0865: fd mov y,a +0866: f5 d0 02 mov a,$02d0+x +0869: da 2e movw $2e,ya +086b: f3 1a 06 bbc7 $1a,$0874 +086e: 8f 0a 2f mov $2f,#$0a +0871: 8f 00 2e mov $2e,#$00 +0874: 7d mov a,x +0875: 9f xcn a +0876: 5c lsr a +0877: c4 30 mov $30,a +0879: eb 2f mov y,$2f +087b: f6 a6 08 mov a,$08a6+y +087e: 80 setc +087f: b6 a5 08 sbc a,$08a5+y +0882: eb 2e mov y,$2e +0884: cf mul ya +0885: dd mov a,y +0886: eb 2f mov y,$2f +0888: 60 clrc +0889: 96 a5 08 adc a,$08a5+y +088c: fd mov y,a +088d: f5 c1 02 mov a,$02c1+x +0890: cf mul ya +0891: e4 30 mov a,$30 +0893: c4 f2 mov $f2,a +0895: cb f3 mov $f3,y +0897: 8d 14 mov y,#$14 +0899: e8 00 mov a,#$00 +089b: 9a 2e subw ya,$2e +089d: da 2e movw $2e,ya +089f: ab 30 inc $30 +08a1: 33 30 d5 bbc1 $30,$0879 +08a4: 6f ret + +; pan table +08a5: db $00,$01,$03,$07,$0d,$15,$1e,$29 +08ad: db $34,$42,$51,$5e,$67,$6e,$73,$77 +08b5: db $7a,$7c,$7d,$7e,$7f + +08ba: f4 71 mov a,$71+x +08bc: f0 0e beq $08cc +08be: 9b 71 dec $71+x +08c0: d0 0a bne $08cc +08c2: 8f 5c f2 mov $f2,#$5c +08c5: fa 36 f3 mov ($f3),($36) +08c8: e8 00 mov a,#$00 +08ca: d4 d1 mov $d1+x,a +08cc: f2 31 clr7 $31 +08ce: f4 a0 mov a,$a0+x +08d0: f0 2e beq $0900 +08d2: f4 a1 mov a,$a1+x +08d4: f0 05 beq $08db +08d6: 9b a1 dec $a1+x +08d8: 5f 00 09 jmp $0900 + +08db: e2 31 set7 $31 +08dd: 9b a0 dec $a0+x +08df: f0 13 beq $08f4 +08e1: f5 00 01 mov a,$0100+x +08e4: 60 clrc +08e5: 95 10 01 adc a,$0110+x +08e8: d5 00 01 mov $0100+x,a +08eb: f5 01 01 mov a,$0101+x +08ee: 95 11 01 adc a,$0111+x +08f1: 5f fd 08 jmp $08fd + +08f4: f5 21 01 mov a,$0121+x +08f7: d5 00 01 mov $0100+x,a +08fa: f5 20 01 mov a,$0120+x +08fd: d5 01 01 mov $0101+x,a +0900: 4f 26 pcall $26 +0902: f5 70 03 mov a,$0370+x +0905: f0 4e beq $0955 +0907: f5 80 02 mov a,$0280+x +090a: de b0 46 cbne $b0+x,$0953 +090d: f5 81 00 mov a,$0081+x +0910: 75 81 02 cmp a,$0281+x +0913: f0 0f beq $0924 +0915: bb 81 inc $81+x +0917: fd mov y,a +0918: f0 03 beq $091d +091a: f5 70 03 mov a,$0370+x +091d: 60 clrc +091e: 95 90 02 adc a,$0290+x +0921: 5f 27 09 jmp $0927 + +0924: f5 91 02 mov a,$0291+x +0927: d5 70 03 mov $0370+x,a +092a: f5 70 02 mov a,$0270+x +092d: 60 clrc +092e: 95 71 02 adc a,$0271+x +0931: d5 70 02 mov $0270+x,a +0934: c4 30 mov $30,a +0936: 1c asl a +0937: 1c asl a +0938: 90 02 bcc $093c +093a: 48 ff eor a,#$ff +093c: fd mov y,a +093d: f5 70 03 mov a,$0370+x +0940: 68 f1 cmp a,#$f1 +0942: 90 06 bcc $094a +0944: 28 0f and a,#$0f +0946: cf mul ya +0947: 5f 4e 09 jmp $094e + +094a: cf mul ya +094b: dd mov a,y +094c: 8d 00 mov y,#$00 +094e: 4f 50 pcall $50 +0950: 5f 3d 07 jmp $073d + +0953: bb b0 inc $b0+x +0955: e3 31 f8 bbs7 $31,$0950 +0958: e4 36 mov a,$36 +095a: 24 2c and a,$2c +095c: d0 f2 bne $0950 +095e: 6f ret + +095f: d8 35 mov $35,x +0961: f2 31 clr7 $31 +0963: f4 c1 mov a,$c1+x +0965: f0 09 beq $0970 +0967: f5 40 01 mov a,$0140+x +096a: de c0 03 cbne $c0+x,$0970 +096d: 3f cd 09 call $09cd +0970: f5 d1 02 mov a,$02d1+x +0973: fd mov y,a +0974: f5 d0 02 mov a,$02d0+x +0977: da 2e movw $2e,ya +0979: f4 91 mov a,$91+x +097b: f0 0c beq $0989 +097d: f5 e1 02 mov a,$02e1+x +0980: fd mov y,a +0981: f5 e0 02 mov a,$02e0+x +0984: 4f 31 pcall $31 +0986: 5f 97 09 jmp $0997 + +0989: e3 31 0b bbs7 $31,$0997 +098c: e4 36 mov a,$36 +098e: 24 03 and a,$03 +0990: f0 08 beq $099a +0992: e8 ff mov a,#$ff +0994: 3f ea 09 call $09ea +0997: 3f 6b 08 call $086b +099a: f2 31 clr7 $31 +099c: 4f 26 pcall $26 +099e: f4 a0 mov a,$a0+x +09a0: f0 0d beq $09af +09a2: f4 a1 mov a,$a1+x +09a4: d0 09 bne $09af +09a6: f5 11 01 mov a,$0111+x +09a9: fd mov y,a +09aa: f5 10 01 mov a,$0110+x +09ad: 4f 31 pcall $31 +09af: f5 70 03 mov a,$0370+x +09b2: f0 a1 beq $0955 +09b4: f5 80 02 mov a,$0280+x +09b7: de b0 9b cbne $b0+x,$0955 +09ba: eb 39 mov y,$39 +09bc: 13 1f 02 bbc0 $1f,$09c1 +09bf: eb 2b mov y,$2b +09c1: f5 71 02 mov a,$0271+x +09c4: cf mul ya +09c5: dd mov a,y +09c6: 60 clrc +09c7: 95 70 02 adc a,$0270+x +09ca: 5f 34 09 jmp $0934 + +09cd: e2 31 set7 $31 +09cf: f5 31 01 mov a,$0131+x +09d2: eb 39 mov y,$39 +09d4: 13 1f 02 bbc0 $1f,$09d9 +09d7: eb 2b mov y,$2b +09d9: cf mul ya +09da: dd mov a,y +09db: 60 clrc +09dc: 95 30 01 adc a,$0130+x +09df: 1c asl a +09e0: 90 02 bcc $09e4 +09e2: 48 ff eor a,#$ff +09e4: fb c1 mov y,$c1+x +09e6: cf mul ya +09e7: dd mov a,y +09e8: 48 ff eor a,#$ff +09ea: 03 1f 09 bbs0 $1f,$09f6 +09ed: eb 1b mov y,$1b +09ef: cf mul ya +09f0: e4 16 mov a,$16 +09f2: cf mul ya +09f3: 5f fd 09 jmp $09fd + +09f6: eb 1c mov y,$1c +09f8: cf mul ya +09f9: f5 71 03 mov a,$0371+x +09fc: cf mul ya +09fd: f5 10 02 mov a,$0210+x +0a00: cf mul ya +0a01: f5 a1 02 mov a,$02a1+x +0a04: cf mul ya +0a05: dd mov a,y +0a06: cf mul ya +0a07: dd mov a,y +0a08: d5 c1 02 mov $02c1+x,a +0a0b: 6f ret + +0a0c: 13 1f 12 bbc0 $1f,$0a21 +0a0f: 68 d6 cmp a,#$d6 +0a11: b0 0e bcs $0a21 +0a13: fd mov y,a +0a14: f6 ba 09 mov a,$09ba+y +0a17: 60 clrc +0a18: 94 50 adc a,$50+x +0a1a: d4 50 mov $50+x,a +0a1c: 90 02 bcc $0a20 +0a1e: bb 51 inc $51+x +0a20: 6f ret + +; dispatch vcmd in A (??-ff) +0a21: 1c asl a +0a22: fd mov y,a +0a23: f6 a3 09 mov a,$09a3+y +0a26: 2d push a +0a27: f6 a2 09 mov a,$09a2+y +0a2a: 2d push a +0a2b: dd mov a,y +0a2c: 5c lsr a +0a2d: fd mov y,a +0a2e: f6 3a 0a mov a,$0a3a+y +0a31: f0 ed beq $0a20 +0a33: 5f 00 ff jmp $ff00 + +; vcmd dispatch list +0a36: dw $0aab ; ca - global transpose +0a38: dw $0aae ; cb - tempo +0a3a: dw $0ab5 ; cc - tempo fade +0a3c: dw $0ac7 ; cd - master volume +0a3e: dw $0acc ; ce - master volume fade +0a40: dw $0adc ; cf - echo vbits/volume +0a42: dw $0afe ; d0 - set echo params +0a44: dw $0b1f ; d1 - echo volume fade +0a46: dw $0b49 ; d2 - disable echo +0a48: dw $0b58 ; d3 +0a4a: dw $0b5b ; d4 +0a4c: dw $0b5e ; d5 +0a4e: dw $0bdd ; d6 - per-voice transpose +0a50: dw $0be1 ; d7 - pan +0a52: dw $0bec ; d8 - pan fade +0a54: dw $0c03 ; d9 - set instrument +0a56: dw $0c52 ; da - vibrato on +0a58: dw $0c5c ; db - vibrato off +0a5a: dw $0c68 ; dc - vibrato fade +0a5c: dw $0c79 ; dd - tremolo on +0a5e: dw $0c83 ; de - tremolo off +0a60: dw $0c86 ; df - volume +0a62: dw $0caa ; e0 - volume fade +0a64: dw $0cc1 ; e1 - pitch slide +0a66: dw $0ceb ; e2 - pitch envelope (release) +0a68: dw $0cf0 ; e3 - pitch envelope (attack) +0a6a: dw $0d04 ; e4 - pitch envelope off +0a6c: dw $0d08 ; e5 - tuning +0a6e: dw $0d0c ; e6 - call subroutine +0a70: dw $0d2d ; e7 - nop +0a72: dw $0d2e ; e8 +0a74: dw $0d32 ; e9 - add to volume +0a76: dw $0d4f ; ea - nop +0a78: dw $0d50 ; eb +0a7a: dw $0d55 ; ec +0a7c: dw $0d72 ; ed +0a7e: dw $0d9c ; ee +0a80: dw $0dc4 ; ef +0a82: dw $0dca ; f0 + +; vcmd lengths +0a83: db $01,$01,$02,$01,$02,$03,$03,$03 ; ca-d1 +0a8c: db $00,$01,$01,$00,$01,$01,$02,$01 ; d2-d9 +0a93: db $03,$00,$01,$03,$00,$01,$02,$03 ; da-e1 +0a9c: db $03,$03,$00,$01,$03,$01,$01,$01 ; e2-e9 +0aa3: db $00,$01,$01,$00,$00,$00,$00 ; ea-f0 + +; vcmd ca - global transpose +0aab: c4 40 mov $40,a +0aad: 6f ret + +; vcmd cb - tempo +0aae: e8 00 mov a,#$00 +0ab0: da 3a movw $3a,ya +0ab2: a2 1a set5 $1a +0ab4: 6f ret + +; vcmd cc - tempo fade +0ab5: c4 3c mov $3c,a +0ab7: 4f 00 pcall $00 +0ab9: c4 3d mov $3d,a +0abb: 80 setc +0abc: a4 3b sbc a,$3b +0abe: f8 3c mov x,$3c +0ac0: 4f 0a pcall $0a +0ac2: da 3e movw $3e,ya +0ac4: a2 1a set5 $1a +0ac6: 6f ret + +; vcmd cd - master volume +0ac7: e8 00 mov a,#$00 +0ac9: da 15 movw $15,ya +0acb: 6f ret + +; vcmd ce - master volume fade +0acc: c4 41 mov $41,a +0ace: 4f 00 pcall $00 +0ad0: c4 42 mov $42,a +0ad2: 80 setc +0ad3: a4 16 sbc a,$16 +0ad5: f8 41 mov x,$41 +0ad7: 4f 0a pcall $0a +0ad9: da 43 movw $43,ya +0adb: 6f ret + +; vcmd cf - echo vbits/volume +0adc: c4 24 mov $24,a +0ade: c2 1a set6 $1a +0ae0: 4f 00 pcall $00 +0ae2: e8 00 mov a,#$00 +0ae4: da 45 movw $45,ya +0ae6: 4f 00 pcall $00 +0ae8: e8 00 mov a,#$00 +0aea: da 47 movw $47,ya +0aec: b2 05 clr5 $05 +0aee: f3 1a 06 bbc7 $1a,$0af7 +0af1: e4 46 mov a,$46 +0af3: c4 46 mov $46,a +0af5: c4 48 mov $48,a +0af7: fa 46 09 mov ($09),($46) +0afa: fa 48 08 mov ($08),($48) +0afd: 6f ret + +; vcmd d0 - set echo params +0afe: 3f d2 0d call $0dd2 +0b01: 4f 00 pcall $00 +0b03: c4 07 mov $07,a +0b05: 4f 00 pcall $00 +0b07: 8d 08 mov y,#$08 +0b09: cf mul ya +0b0a: 5d mov x,a +0b0b: 8d 0f mov y,#$0f +0b0d: 60 clrc +0b0e: f5 c5 ff mov a,$ffc5+x +0b11: cb f2 mov $f2,y +0b13: c4 f3 mov $f3,a +0b15: 3d inc x +0b16: dd mov a,y +0b17: 88 10 adc a,#$10 +0b19: fd mov y,a +0b1a: 10 f2 bpl $0b0e +0b1c: f8 35 mov x,$35 +0b1e: 6f ret + +; vcmd d1 - echo volume fade +0b1f: c4 4d mov $4d,a +0b21: 4f 00 pcall $00 +0b23: c4 4e mov $4e,a +0b25: 4f 00 pcall $00 +0b27: f3 1a 02 bbc7 $1a,$0b2c +0b2a: c4 4e mov $4e,a +0b2c: c4 4f mov $4f,a +0b2e: 80 setc +0b2f: a4 48 sbc a,$48 +0b31: f8 4d mov x,$4d +0b33: 4f 0a pcall $0a +0b35: da 4b movw $4b,ya +0b37: e4 4e mov a,$4e +0b39: 80 setc +0b3a: a4 46 sbc a,$46 +0b3c: f8 4d mov x,$4d +0b3e: 4f 0a pcall $0a +0b40: da 49 movw $49,ya +0b42: fa 46 09 mov ($09),($46) +0b45: fa 48 08 mov ($08),($48) +0b48: 6f ret + +; vcmd d2 - disable echo +0b49: c4 4d mov $4d,a +0b4b: da 45 movw $45,ya +0b4d: da 47 movw $47,ya +0b4f: fa 46 09 mov ($09),($46) +0b52: fa 48 08 mov ($08),($48) +0b55: a2 05 set5 $05 +0b57: 6f ret + +; vcmd d3 +0b58: c4 12 mov $12,a +0b5a: 6f ret + +; vcmd d4 +0b5b: c4 11 mov $11,a +0b5d: 6f ret + +; vcmd d5 +0b5e: 7d mov a,x +0b5f: d0 fc bne $0b5d +0b61: e4 10 mov a,$10 +0b63: f0 f8 beq $0b5d +0b65: c4 e0 mov $e0,a +0b67: fa 23 e1 mov ($e1),($23) +0b6a: cd 0e mov x,#$0e +0b6c: 0b e0 asl $e0 +0b6e: 90 66 bcc $0bd6 +0b70: f5 91 03 mov a,$0391+x +0b73: f0 5b beq $0bd0 +0b75: c4 e3 mov $e3,a +0b77: f5 90 03 mov a,$0390+x +0b7a: c4 e2 mov $e2,a +0b7c: 8d 00 mov y,#$00 +0b7e: f7 e2 mov a,($e2)+y +0b80: 30 0e bmi $0b90 +0b82: d5 81 03 mov $0381+x,a +0b85: fc inc y +0b86: f7 e2 mov a,($e2)+y +0b88: 30 06 bmi $0b90 +0b8a: d5 a0 03 mov $03a0+x,a +0b8d: fc inc y +0b8e: f7 e2 mov a,($e2)+y +0b90: fc inc y +0b91: 68 ca cmp a,#$ca +0b93: 90 e9 bcc $0b7e +0b95: 68 d5 cmp a,#$d5 +0b97: f0 0d beq $0ba6 +0b99: d8 e4 mov $e4,x +0b9b: 5d mov x,a +0b9c: dd mov a,y +0b9d: 60 clrc +0b9e: 95 ba 09 adc a,$09ba+x +0ba1: fd mov y,a +0ba2: f8 e4 mov x,$e4 +0ba4: 2f d8 bra $0b7e +0ba6: dd mov a,y +0ba7: 8d 00 mov y,#$00 +0ba9: 7a e2 addw ya,$e2 +0bab: f3 e1 09 bbc7 $e1,$0bb7 +0bae: d5 90 03 mov $0390+x,a +0bb1: dd mov a,y +0bb2: d5 91 03 mov $0391+x,a +0bb5: 2f 1f bra $0bd6 +0bb7: d4 50 mov $50+x,a +0bb9: db 51 mov $51+x,y +0bbb: e8 00 mov a,#$00 +0bbd: d5 91 03 mov $0391+x,a +0bc0: bc inc a +0bc1: d5 70 00 mov $0070+x,a +0bc4: f5 81 03 mov a,$0381+x +0bc7: d5 00 02 mov $0200+x,a +0bca: f5 a0 03 mov a,$03a0+x +0bcd: 3f fb 12 call $12fb +0bd0: f5 06 10 mov a,$1006+x +0bd3: 4e 10 00 tclr1 $0010 +0bd6: 0b e1 asl $e1 +0bd8: 1d dec x +0bd9: 1d dec x +0bda: d0 90 bne $0b6c +0bdc: 6f ret + +; vcmd d6 - per-voice transpose +0bdd: d5 11 02 mov $0211+x,a +0be0: 6f ret + +; vcmd d7 - pan +0be1: 28 1f and a,#$1f +0be3: d5 d1 02 mov $02d1+x,a +0be6: e8 00 mov a,#$00 +0be8: d5 d0 02 mov $02d0+x,a +0beb: 6f ret + +; vcmd d8 - pan fade +0bec: d4 91 mov $91+x,a +0bee: 2d push a +0bef: 4f 00 pcall $00 +0bf1: d5 f0 02 mov $02f0+x,a +0bf4: 80 setc +0bf5: b5 d1 02 sbc a,$02d1+x +0bf8: ce pop x +0bf9: 4f 0a pcall $0a +0bfb: d5 e0 02 mov $02e0+x,a +0bfe: dd mov a,y +0bff: d5 e1 02 mov $02e1+x,a +0c02: 6f ret + +; vcmd d9 - set instrument +0c03: 8d 06 mov y,#$06 +0c05: cf mul ya +0c06: da e0 movw $e0,ya +0c08: 60 clrc +0c09: 03 1f 09 bbs0 $1f,$0c15 +0c0c: 98 00 e0 adc $e0,#$00 +0c0f: 98 19 e1 adc $e1,#$19 +0c12: 5f 1b 0c jmp $0c1b + +0c15: 98 80 e0 adc $e0,#$80 +0c18: 98 19 e1 adc $e1,#$19 +0c1b: 7d mov a,x +0c1c: 9f xcn a +0c1d: 5c lsr a +0c1e: 08 04 or a,#$04 +0c20: 5d mov x,a +0c21: e4 36 mov a,$36 +0c23: 4e 02 00 tclr1 $0002 +0c26: 8d 00 mov y,#$00 +0c28: f7 e0 mov a,($e0)+y +0c2a: 10 0c bpl $0c38 +0c2c: 28 1f and a,#$1f +0c2e: 38 20 05 and $05,#$20 +0c31: 0e 05 00 tset1 $0005 +0c34: 09 36 02 or ($02),($36) +0c37: dd mov a,y +0c38: d8 f2 mov $f2,x +0c3a: c4 f3 mov $f3,a +0c3c: 3d inc x +0c3d: fc inc y +0c3e: f7 e0 mov a,($e0)+y +0c40: ad 04 cmp y,#$04 +0c42: d0 f4 bne $0c38 +0c44: f8 35 mov x,$35 +0c46: f7 e0 mov a,($e0)+y +0c48: d5 21 02 mov $0221+x,a +0c4b: fc inc y +0c4c: f7 e0 mov a,($e0)+y +0c4e: d5 20 02 mov $0220+x,a +0c51: 6f ret + +; vcmd da - vibrato on +0c52: d5 80 02 mov $0280+x,a +0c55: 4f 00 pcall $00 +0c57: d5 71 02 mov $0271+x,a +0c5a: 4f 00 pcall $00 +; vcmd db - vibrato off +0c5c: d5 70 03 mov $0370+x,a +0c5f: d5 91 02 mov $0291+x,a +0c62: e8 00 mov a,#$00 +0c64: d5 81 02 mov $0281+x,a +0c67: 6f ret + +; vcmd dc - vibrato fade +0c68: d5 81 02 mov $0281+x,a +0c6b: 2d push a +0c6c: 8d 00 mov y,#$00 +0c6e: f5 70 03 mov a,$0370+x +0c71: ce pop x +0c72: 9e div ya,x +0c73: d5 90 02 mov $0290+x,a +0c76: f8 35 mov x,$35 +0c78: 6f ret + +; vcmd dd - tremolo on +0c79: d5 40 01 mov $0140+x,a +0c7c: 4f 00 pcall $00 +0c7e: d5 31 01 mov $0131+x,a +0c81: 4f 00 pcall $00 +; vcmd de - tremolo off +0c83: d4 c1 mov $c1+x,a +0c85: 6f ret + +; vcmd df - volume +0c86: f5 80 03 mov a,$0380+x +0c89: c4 e0 mov $e0,a +0c8b: dd mov a,y +0c8c: 60 clrc +0c8d: 95 80 03 adc a,$0380+x +0c90: e3 e0 07 bbs7 $e0,$0c9a +0c93: 90 0c bcc $0ca1 +0c95: e8 ff mov a,#$ff +0c97: 5f a1 0c jmp $0ca1 + +0c9a: 95 80 03 adc a,$0380+x +0c9d: b0 02 bcs $0ca1 +0c9f: e8 00 mov a,#$00 +0ca1: d5 a1 02 mov $02a1+x,a +0ca4: e8 00 mov a,#$00 +0ca6: d5 a0 02 mov $02a0+x,a +0ca9: 6f ret + +; vcmd e0 - volume fade +0caa: d4 90 mov $90+x,a +0cac: 2d push a +0cad: 4f 00 pcall $00 +0caf: d5 c0 02 mov $02c0+x,a +0cb2: 80 setc +0cb3: b5 a1 02 sbc a,$02a1+x +0cb6: ce pop x +0cb7: 4f 0a pcall $0a +0cb9: d5 b0 02 mov $02b0+x,a +0cbc: dd mov a,y +0cbd: d5 b1 02 mov $02b1+x,a +0cc0: 6f ret + +; vcmd e1 - pitch slide +0cc1: d4 a1 mov $a1+x,a +0cc3: 4f 00 pcall $00 +0cc5: d4 a0 mov $a0+x,a +0cc7: 4f 00 pcall $00 +0cc9: aa 1f 00 mov1 c,$001f,0 +0ccc: b0 02 bcs $0cd0 +0cce: 84 40 adc a,$40 +0cd0: 60 clrc +0cd1: 95 11 02 adc a,$0211+x +0cd4: 28 7f and a,#$7f +0cd6: d5 20 01 mov $0120+x,a +0cd9: 80 setc +0cda: b5 01 01 sbc a,$0101+x +0cdd: fb a0 mov y,$a0+x +0cdf: 6d push y +0ce0: ce pop x +0ce1: 4f 0a pcall $0a +0ce3: d5 10 01 mov $0110+x,a +0ce6: dd mov a,y +0ce7: d5 11 01 mov $0111+x,a +0cea: 6f ret + +; vcmd e2 - pitch envelope (release) +0ceb: e8 01 mov a,#$01 +0ced: 5f f2 0c jmp $0cf2 + +; vcmd e3 - pitch envelope (attack) +0cf0: e8 00 mov a,#$00 +0cf2: d5 60 02 mov $0260+x,a +0cf5: dd mov a,y +0cf6: d5 51 02 mov $0251+x,a +0cf9: 4f 00 pcall $00 +0cfb: d5 50 02 mov $0250+x,a +0cfe: 4f 00 pcall $00 +0d00: d5 61 02 mov $0261+x,a +0d03: 6f ret + +; vcmd e4 - pitch envelope off +0d04: d5 50 02 mov $0250+x,a +0d07: 6f ret + +; vcmd e5 - tuning +0d08: d5 21 01 mov $0121+x,a +0d0b: 6f ret + +; vcmd e6 - call subroutine +0d0c: d5 60 03 mov $0360+x,a +0d0f: 4f 00 pcall $00 +0d11: d5 61 03 mov $0361+x,a +0d14: 4f 00 pcall $00 +0d16: d4 d0 mov $d0+x,a +0d18: f4 50 mov a,$50+x +0d1a: d5 30 02 mov $0230+x,a +0d1d: f4 51 mov a,$51+x +0d1f: d5 31 02 mov $0231+x,a +0d22: f5 60 03 mov a,$0360+x +0d25: d4 50 mov $50+x,a +0d27: f5 61 03 mov a,$0361+x +0d2a: d4 51 mov $51+x,a +0d2c: 6f ret + +; vcmd e7 - nop +0d2d: 6f ret + +; vcmd e8 +0d2e: d5 80 03 mov $0380+x,a +0d31: 6f ret + +; vcmd e9 - add to volume +0d32: 60 clrc +0d33: 30 0a bmi $0d3f +0d35: 95 a1 02 adc a,$02a1+x +0d38: 90 0c bcc $0d46 +0d3a: e8 ff mov a,#$ff +0d3c: 5f 46 0d jmp $0d46 + +0d3f: 95 a1 02 adc a,$02a1+x +0d42: b0 02 bcs $0d46 +0d44: e8 00 mov a,#$00 +0d46: d5 a1 02 mov $02a1+x,a +0d49: e8 00 mov a,#$00 +0d4b: d5 a0 02 mov $02a0+x,a +0d4e: 6f ret + +; vcmd ea - nop +0d4f: 6f ret + +; vcmd eb +0d50: bc inc a +0d51: d5 41 01 mov $0141+x,a +0d54: 6f ret + +; vcmd ec +0d55: 2d push a +0d56: f4 80 mov a,$80+x +0d58: fd mov y,a +0d59: 60 clrc +0d5a: 88 10 adc a,#$10 +0d5c: d4 80 mov $80+x,a +0d5e: dd mov a,y +0d5f: 5c lsr a +0d60: 5d mov x,a +0d61: ae pop a +0d62: d5 00 03 mov $0300+x,a +0d65: f8 35 mov x,$35 +0d67: f4 50 mov a,$50+x +0d69: d6 20 03 mov $0320+y,a +0d6c: f4 51 mov a,$51+x +0d6e: d6 21 03 mov $0321+y,a +0d71: 6f ret + +; vcmd ed +0d72: f4 80 mov a,$80+x +0d74: 80 setc +0d75: a8 10 sbc a,#$10 +0d77: 2d push a +0d78: 5c lsr a +0d79: fd mov y,a +0d7a: f5 a1 03 mov a,$03a1+x +0d7d: d0 11 bne $0d90 +0d7f: f6 00 03 mov a,$0300+y +0d82: 68 ff cmp a,#$ff +0d84: f0 0a beq $0d90 +0d86: 9c dec a +0d87: d6 00 03 mov $0300+y,a +0d8a: d0 04 bne $0d90 +0d8c: ae pop a +0d8d: d4 80 mov $80+x,a +0d8f: 6f ret + +0d90: ee pop y +0d91: f6 20 03 mov a,$0320+y +0d94: d4 50 mov $50+x,a +0d96: f6 21 03 mov a,$0321+y +0d99: d4 51 mov $51+x,a +0d9b: 6f ret + +; vcmd ee +0d9c: f4 80 mov a,$80+x +0d9e: 80 setc +0d9f: a8 10 sbc a,#$10 +0da1: 2d push a +0da2: 5c lsr a +0da3: fd mov y,a +0da4: f6 00 03 mov a,$0300+y +0da7: 9c dec a +0da8: ae pop a +0da9: f0 0c beq $0db7 +0dab: f4 50 mov a,$50+x +0dad: 60 clrc +0dae: 88 02 adc a,#$02 +0db0: d4 50 mov $50+x,a +0db2: 90 02 bcc $0db6 +0db4: bb 51 inc $51+x +0db6: 6f ret + +0db7: d4 80 mov $80+x,a +0db9: 4f 00 pcall $00 +0dbb: 2d push a +0dbc: 4f 00 pcall $00 +0dbe: d4 51 mov $51+x,a +0dc0: ae pop a +0dc1: d4 50 mov $50+x,a +0dc3: 6f ret + +; vcmd ef +0dc4: 09 36 21 or ($21),($36) +0dc7: c2 1a set6 $1a +0dc9: 6f ret + +; vcmd f0 +0dca: e4 36 mov a,$36 +0dcc: 4e 21 00 tclr1 $0021 +0dcf: c2 1a set6 $1a +0dd1: 6f ret + +0dd2: c4 37 mov $37,a +0dd4: 8f 7d f2 mov $f2,#$7d +0dd7: e4 f3 mov a,$f3 +0dd9: 64 37 cmp a,$37 +0ddb: f0 2b beq $0e08 +0ddd: 28 0f and a,#$0f +0ddf: 48 ff eor a,#$ff +0de1: f3 38 03 bbc7 $38,$0de7 +0de4: 60 clrc +0de5: 84 38 adc a,$38 +0de7: c4 38 mov $38,a +0de9: 8f 05 19 mov $19,#$05 +0dec: 8d 04 mov y,#$04 +0dee: f6 10 13 mov a,$1310+y +0df1: c4 f2 mov $f2,a +0df3: e8 00 mov a,#$00 +0df5: c4 f3 mov $f3,a +0df7: fe f5 dbnz y,$0dee +0df9: e4 05 mov a,$05 +0dfb: 08 20 or a,#$20 +0dfd: 8f 6c f2 mov $f2,#$6c +0e00: c4 f3 mov $f3,a +0e02: 8f 7d f2 mov $f2,#$7d +0e05: fa 37 f3 mov ($f3),($37) +0e08: 8f 6d f2 mov $f2,#$6d +0e0b: fa 1d f3 mov ($f3),($1d) +0e0e: 6f ret + +0e0f: 4f 58 pcall $58 +0e11: d0 1e bne $0e31 +0e13: fd mov y,a +0e14: d0 05 bne $0e1b +0e16: 29 23 10 and ($10),($23) +0e19: 80 setc +0e1a: 6f ret + +0e1b: 8b 14 dec $14 +0e1d: 10 02 bpl $0e21 +0e1f: c4 14 mov $14,a +0e21: f0 07 beq $0e2a +0e23: 4f 58 pcall $58 +0e25: da 32 movw $32,ya +0e27: 5f 0f 0e jmp $0e0f + +0e2a: 3a 32 incw $32 +0e2c: 3a 32 incw $32 +0e2e: 5f 0f 0e jmp $0e0f + +0e31: da e2 movw $e2,ya +0e33: fa 23 1f mov ($1f),($23) +0e36: 8d 0f mov y,#$0f +0e38: f7 e2 mov a,($e2)+y +0e3a: dc dec y +0e3b: 0b 1f asl $1f +0e3d: b0 15 bcs $0e54 +0e3f: d6 51 00 mov $0051+y,a +0e42: f7 e2 mov a,($e2)+y +0e44: d6 50 00 mov $0050+y,a +0e47: dd mov a,y +0e48: 5d mov x,a +0e49: aa e0 00 mov1 c,$00e0,0 +0e4c: 4f 66 pcall $66 +0e4e: bc inc a +0e4f: d6 70 00 mov $0070+y,a +0e52: 2f 08 bra $0e5c +0e54: d6 91 03 mov $0391+y,a +0e57: f7 e2 mov a,($e2)+y +0e59: d6 90 03 mov $0390+y,a +0e5c: dc dec y +0e5d: 10 d9 bpl $0e38 +0e5f: 29 23 10 and ($10),($23) +0e62: 60 clrc +0e63: 6f ret + +0e64: 13 1a 3b bbc0 $1a,$0ea2 +0e67: e4 28 mov a,$28 +0e69: f0 37 beq $0ea2 +0e6b: 6e 29 34 dbnz $29,$0ea2 +0e6e: fa 28 29 mov ($29),($28) +0e71: f2 29 clr7 $29 +0e73: e4 23 mov a,$23 +0e75: 48 ff eor a,#$ff +0e77: 0e 03 00 tset1 $0003 +0e7a: aa 28 e0 mov1 c,$0028,7 +0e7d: b0 0e bcs $0e8d +0e7f: e8 20 mov a,#$20 +0e81: 84 1b adc a,$1b +0e83: c4 1b mov $1b,a +0e85: b0 13 bcs $0e9a +0e87: 69 27 1b cmp ($1b),($27) +0e8a: b0 0e bcs $0e9a +0e8c: 6f ret + +0e8d: e8 20 mov a,#$20 +0e8f: c4 e2 mov $e2,a +0e91: a9 e2 1b sbc ($1b),($e2) +0e94: 90 01 bcc $0e97 +0e96: 6f ret + +0e97: 3f 66 11 call $1166 +0e9a: 32 1a clr1 $1a +0e9c: fa 27 1b mov ($1b),($27) +0e9f: 8f 00 28 mov $28,#$00 +0ea2: 6f ret + +0ea3: e4 f4 mov a,$f4 +0ea5: 64 f4 cmp a,$f4 +0ea7: d0 fa bne $0ea3 +0ea9: 64 1e cmp a,$1e +0eab: f0 1b beq $0ec8 +0ead: c4 1e mov $1e,a +0eaf: e4 f5 mov a,$f5 +0eb1: 64 f5 cmp a,$f5 +0eb3: d0 fa bne $0eaf +0eb5: fd mov y,a +0eb6: fa 1e f4 mov ($f4),($1e) +0eb9: e4 1e mov a,$1e +0ebb: 1c asl a +0ebc: 68 e0 cmp a,#$e0 +0ebe: b0 59 bcs $0f19 +0ec0: 68 50 cmp a,#$50 +0ec2: b0 04 bcs $0ec8 +0ec4: 5d mov x,a +0ec5: 1f c9 0e jmp ($0ec9+x) + +0ec8: 6f ret + +0ec9: dw $0ec8 +0ecb: dw $1204 +0ecd: dw $11fa +0ecf: dw $11f2 +0ed1: dw $0ec8 +0ed3: dw $0ec8 +0ed5: dw $0ec8 +0ed7: dw $1641 +0ed9: dw $1490 +0edb: dw $14a5 +0edd: dw $14e4 +0edf: dw $14f6 +0ee1: dw $1600 +0ee3: dw $162c +0ee5: dw $11ec +0ee7: dw $11ef +0ee9: dw $1166 +0eeb: dw $11a5 +0eed: dw $0ec8 +0eef: dw $11b6 +0ef1: dw $11cd +0ef3: dw $11e4 +0ef5: dw $11e9 +0ef7: dw $1128 +0ef9: dw $1016 +0efb: dw $0ec8 +0efd: dw $0ec8 +0eff: dw $0ec8 +0f01: dw $0ec8 +0f03: dw $0ec8 +0f05: dw $0ec8 +0f07: dw $0ec8 +0f09: dw $0fd4 +0f0b: dw $0fce +0f0d: dw $0fc9 +0f0f: dw $0ec8 +0f11: dw $0ec8 +0f13: dw $0ec8 +0f15: dw $0ec8 +0f17: dw $0ec8 + +0f19: cb e0 mov $e0,y +0f1b: dd mov a,y +0f1c: 28 3f and a,#$3f +0f1e: 8d 05 mov y,#$05 +0f20: cf mul ya +0f21: bc inc a +0f22: fd mov y,a +0f23: cd 0e mov x,#$0e +0f25: 74 b1 cmp a,$b1+x +0f27: d0 0c bne $0f35 +0f29: f4 61 mov a,$61+x +0f2b: f0 55 beq $0f82 +0f2d: f5 a1 03 mov a,$03a1+x +0f30: f0 02 beq $0f34 +0f32: d4 61 mov $61+x,a +0f34: 6f ret + +0f35: 1d dec x +0f36: 1d dec x +0f37: 10 ec bpl $0f25 +0f39: f6 00 34 mov a,$3400+y +0f3c: 24 11 and a,$11 +0f3e: c4 e1 mov $e1,a +0f40: 8f 00 e4 mov $e4,#$00 +0f43: 8f 0e e5 mov $e5,#$0e +0f46: cd 0e mov x,#$0e +0f48: 0b e1 asl $e1 +0f4a: 90 0c bcc $0f58 +0f4c: f4 60 mov a,$60+x +0f4e: f0 18 beq $0f68 +0f50: 64 e4 cmp a,$e4 +0f52: 90 04 bcc $0f58 +0f54: c4 e4 mov $e4,a +0f56: d8 e5 mov $e5,x +0f58: 1d dec x +0f59: 1d dec x +0f5a: 10 ec bpl $0f48 +0f5c: f8 e5 mov x,$e5 +0f5e: f6 01 34 mov a,$3401+y +0f61: 64 e4 cmp a,$e4 +0f63: 90 03 bcc $0f68 +0f65: f0 01 beq $0f68 +0f67: 6f ret + +0f68: f5 06 10 mov a,$1006+x +0f6b: 24 23 and a,$23 +0f6d: d0 13 bne $0f82 +0f6f: 0e 10 00 tset1 $0010 +0f72: f5 00 02 mov a,$0200+x +0f75: d5 81 03 mov $0381+x,a +0f78: f4 50 mov a,$50+x +0f7a: d5 90 03 mov $0390+x,a +0f7d: f4 51 mov a,$51+x +0f7f: d5 91 03 mov $0391+x,a +0f82: 3f ec 0f call $0fec +0f85: e8 02 mov a,#$02 +0f87: d5 70 00 mov $0070+x,a +0f8a: d5 41 01 mov $0141+x,a +0f8d: f6 03 34 mov a,$3403+y +0f90: d4 50 mov $50+x,a +0f92: f6 04 34 mov a,$3404+y +0f95: d4 51 mov $51+x,a +0f97: e8 e6 mov a,#$e6 +0f99: d5 71 03 mov $0371+x,a +0f9c: f5 06 10 mov a,$1006+x +0f9f: 0e 23 00 tset1 $0023 +0fa2: f6 01 34 mov a,$3401+y +0fa5: d4 60 mov $60+x,a +0fa7: f6 02 34 mov a,$3402+y +0faa: 10 05 bpl $0fb1 +0fac: 28 7f and a,#$7f +0fae: d5 a1 03 mov $03a1+x,a +0fb1: d4 61 mov $61+x,a +0fb3: dd mov a,y +0fb4: d4 b1 mov $b1+x,a +0fb6: e4 e0 mov a,$e0 +0fb8: 28 c0 and a,#$c0 +0fba: 9f xcn a +0fbb: 5c lsr a +0fbc: 5c lsr a +0fbd: fd mov y,a +0fbe: f6 c5 0f mov a,$0fc5+y +0fc1: d5 d1 02 mov $02d1+x,a +0fc4: 6f ret + +0fc5: 0a 00 14 or1 c,$1400,0 +0fc8: 0a cb 22 or1 c,$02cb,1 +0fcb: c2 1a set6 $1a +0fcd: 6f ret + +0fce: cb 1c mov $1c,y +0fd0: 09 23 03 or ($03),($23) +0fd3: 6f ret + +0fd4: cb e0 mov $e0,y +0fd6: fa 23 e1 mov ($e1),($23) +0fd9: cd 0e mov x,#$0e +0fdb: 0b e0 asl $e0 +0fdd: 90 06 bcc $0fe5 +0fdf: f3 e1 03 bbc7 $e1,$0fe5 +0fe2: 3f ec 0f call $0fec +0fe5: 0b e1 asl $e1 +0fe7: 1d dec x +0fe8: 1d dec x +0fe9: 10 f0 bpl $0fdb +0feb: 6f ret + +0fec: f5 06 10 mov a,$1006+x +0fef: 4e 17 00 tclr1 $0017 +0ff2: 4e 23 00 tclr1 $0023 +0ff5: 0e 00 00 tset1 $0000 +0ff8: 80 setc +0ff9: 4f 66 pcall $66 +0ffb: d4 b1 mov $b1+x,a +0ffd: d4 60 mov $60+x,a +0fff: d4 61 mov $61+x,a +1001: d4 51 mov $51+x,a +1003: c2 1a set6 $1a +1005: 6f ret + +1006: 01 tcall 0 +1007: fe 02 dbnz y,$100b +1009: fd mov y,a +100a: 04 fb or a,$fb +100c: 08 f7 or a,#$f7 +100e: 10 ef bpl $0fff +1010: 20 clrp +1011: df daa a +1012: 40 setp +1013: bf mov a,(x)+ +1014: 80 setc +1015: 7f ret +i +1016: e5 b0 03 mov a,$03b0 +1019: c5 00 20 mov $2000,a +101c: c4 e0 mov $e0,a +101e: 8f 00 e1 mov $e1,#$00 +1021: 8f 00 e2 mov $e2,#$00 +1024: 8f 00 e3 mov $e3,#$00 +1027: f8 e3 mov x,$e3 +1029: 8d 06 mov y,#$06 +102b: f5 00 19 mov a,$1900+x +102e: d5 21 21 mov $2121+x,a +1031: 3d inc x +1032: fe f7 dbnz y,$102b +1034: d8 e3 mov $e3,x +1036: f5 fa 18 mov a,$18fa+x +1039: 1c asl a +103a: 1c asl a +103b: 5d mov x,a +103c: f5 00 17 mov a,$1700+x +103f: c4 e4 mov $e4,a +1041: f5 01 17 mov a,$1701+x +1044: c4 e5 mov $e5,a +1046: f5 02 17 mov a,$1702+x +1049: c4 e6 mov $e6,a +104b: f5 03 17 mov a,$1703+x +104e: c4 e7 mov $e7,a +1050: f5 05 17 mov a,$1705+x +1053: fd mov y,a +1054: f5 04 17 mov a,$1704+x +1057: f8 e2 mov x,$e2 +1059: 9a e4 subw ya,$e4 +105b: d5 03 20 mov $2003+x,a +105e: dd mov a,y +105f: d5 04 20 mov $2004+x,a +1062: e4 e4 mov a,$e4 +1064: d5 01 20 mov $2001+x,a +1067: e4 e5 mov a,$e5 +1069: d5 02 20 mov $2002+x,a +106c: ba e6 movw ya,$e6 +106e: 9a e4 subw ya,$e4 +1070: d5 93 20 mov $2093+x,a +1073: dd mov a,y +1074: d5 94 20 mov $2094+x,a +1077: eb e1 mov y,$e1 +1079: f6 b1 03 mov a,$03b1+y +107c: 28 7f and a,#$7f +107e: d5 91 20 mov $2091+x,a +1081: ab e1 inc $e1 +1083: 60 clrc +1084: 98 04 e2 adc $e2,#$04 +1087: 6e e0 9d dbnz $e0,$1027 +108a: 8f b0 e8 mov $e8,#$b0 +108d: 8f 03 e9 mov $e9,#$03 +1090: 8f 00 f6 mov $f6,#$00 +1093: 8f dc f5 mov $f5,#$dc +1096: 8f fe f4 mov $f4,#$fe +1099: 4f 9b pcall $9b +109b: 4f 9b pcall $9b +109d: e5 b0 03 mov a,$03b0 +10a0: c4 2d mov $2d,a +10a2: 8f 00 e1 mov $e1,#$00 +10a5: 8f 00 e2 mov $e2,#$00 +10a8: 8f 41 e3 mov $e3,#$41 +10ab: e5 00 20 mov a,$2000 +10ae: 1c asl a +10af: 1c asl a +10b0: 5d mov x,a +10b1: eb e1 mov y,$e1 +10b3: f6 b1 03 mov a,$03b1+y +10b6: f0 20 beq $10d8 +10b8: 1d dec x +10b9: 1d dec x +10ba: 1d dec x +10bb: 1d dec x +10bc: 30 1f bmi $10dd +10be: 75 91 20 cmp a,$2091+x +10c1: d0 f5 bne $10b8 +10c3: f5 02 20 mov a,$2002+x +10c6: fd mov y,a +10c7: f5 01 20 mov a,$2001+x +10ca: 5a e2 cmpw ya,$e2 +10cc: 90 0f bcc $10dd +10ce: 3f 38 12 call $1238 +10d1: ab e0 inc $e0 +10d3: eb e1 mov y,$e1 +10d5: f6 b1 03 mov a,$03b1+y +10d8: 08 80 or a,#$80 +10da: d6 b1 03 mov $03b1+y,a +10dd: ab e1 inc $e1 +10df: 6e 2d c9 dbnz $2d,$10ab +10e2: e5 b0 03 mov a,$03b0 +10e5: c4 2d mov $2d,a +10e7: 8d 00 mov y,#$00 +10e9: f6 b1 03 mov a,$03b1+y +10ec: 30 07 bmi $10f5 +10ee: 6d push y +10ef: 3f ac 12 call $12ac +10f2: ab e0 inc $e0 +10f4: ee pop y +10f5: fc inc y +10f6: 6e 2d f0 dbnz $2d,$10e9 +10f9: e4 e0 mov a,$e0 +10fb: 1c asl a +10fc: 1c asl a +10fd: 5d mov x,a +10fe: e4 e2 mov a,$e2 +1100: d5 00 17 mov $1700+x,a +1103: e4 e3 mov a,$e3 +1105: d5 01 17 mov $1701+x,a +1108: 8f 00 e8 mov $e8,#$00 +110b: 8f 20 e9 mov $e9,#$20 +110e: 8f 00 f6 mov $f6,#$00 +1111: 8f dc f5 mov $f5,#$dc +1114: 8f fe f4 mov $f4,#$fe +1117: 4f 9b pcall $9b +1119: 4f 9b pcall $9b +111b: 8f 33 f1 mov $f1,#$33 +111e: 8f 00 1e mov $1e,#$00 +1121: 8f 00 f5 mov $f5,#$00 +1124: 8f 00 f4 mov $f4,#$00 +1127: 6f ret + +1128: dd mov a,y +1129: 64 25 cmp a,$25 +112b: 65 00 20 cmp a,$2000 +112e: b0 35 bcs $1165 +1130: c4 25 mov $25,a +1132: 13 1a 05 bbc0 $1a,$113a +1135: 3f 80 11 call $1180 +1138: e4 25 mov a,$25 +113a: 1c asl a +113b: 5d mov x,a +113c: f5 02 20 mov a,$2002+x +113f: fd mov y,a +1140: f5 01 20 mov a,$2001+x +1143: da 32 movw $32,ya +1145: 02 e0 set0 $e0 +1147: 3f 0f 0e call $0e0f +114a: e8 00 mov a,#$00 +114c: c4 14 mov $14,a +114e: c4 41 mov $41,a +1150: c4 4d mov $4d,a +1152: c4 3c mov $3c,a +1154: c4 40 mov $40,a +1156: c4 12 mov $12,a +1158: 8f fe 11 mov $11,#$fe +115b: 8f c0 16 mov $16,#$c0 +115e: 8f 20 3b mov $3b,#$20 +1161: 02 1a set0 $1a +1163: a2 1a set5 $1a +1165: 6f ret + +1166: 8f ff 25 mov $25,#$ff +1169: fa 23 1f mov ($1f),($23) +116c: cd 0e mov x,#$0e +116e: e8 00 mov a,#$00 +1170: 0b 1f asl $1f +1172: b0 08 bcs $117c +1174: d5 51 00 mov $0051+x,a +1177: d5 91 03 mov $0391+x,a +117a: d4 d1 mov $d1+x,a +117c: 1d dec x +117d: 1d dec x +117e: 10 f0 bpl $1170 +1180: 12 1a clr0 $1a +1182: 32 1a clr1 $1a +1184: c2 1a set6 $1a +1186: e8 00 mov a,#$00 +1188: c4 24 mov $24,a +118a: c4 2a mov $2a,a +118c: c4 26 mov $26,a +118e: e4 23 mov a,$23 +1190: 48 ff eor a,#$ff +1192: 4e 17 00 tclr1 $0017 +1195: 0e 00 00 tset1 $0000 +1198: 8f ff 27 mov $27,#$ff +119b: fa 27 1b mov ($1b),($27) +119e: 8f 00 28 mov $28,#$00 +11a1: 8f fc 11 mov $11,#$fc +11a4: 6f ret + +11a5: cb 1b mov $1b,y +11a7: cb 27 mov $27,y +11a9: 32 1a clr1 $1a +11ab: 8f 00 28 mov $28,#$00 +11ae: e4 23 mov a,$23 +11b0: 48 ff eor a,#$ff +11b2: 0e 03 00 tset1 $0003 +11b5: 6f ret + +11b6: 03 1a 13 bbs0 $1a,$11cc +11b9: cb 28 mov $28,y +11bb: e8 80 mov a,#$80 +11bd: 80 setc +11be: a4 28 sbc a,$28 +11c0: c4 28 mov $28,a +11c2: c4 29 mov $29,a +11c4: fa 1b 27 mov ($27),($1b) +11c7: 8f 20 1b mov $1b,#$20 +11ca: 22 1a set1 $1a +11cc: 6f ret + +11cd: e4 28 mov a,$28 +11cf: d0 12 bne $11e3 +11d1: cb 28 mov $28,y +11d3: e8 80 mov a,#$80 +11d5: 80 setc +11d6: a4 28 sbc a,$28 +11d8: c4 28 mov $28,a +11da: c4 29 mov $29,a +11dc: e2 28 set7 $28 +11de: fa 1b 27 mov ($27),($1b) +11e1: 22 1a set1 $1a +11e3: 6f ret + +11e4: cb 2a mov $2a,y +11e6: a2 1a set5 $1a +11e8: 6f ret + +11e9: cb 26 mov $26,y +11eb: 6f ret + +11ec: f2 1a clr7 $1a +11ee: 6f ret + +11ef: e2 1a set7 $1a +11f1: 6f ret + +11f2: 8d ff mov y,#$ff +11f4: 3f d4 0f call $0fd4 +11f7: 5f 66 11 jmp $1166 + +11fa: 3f 20 04 call $0420 +11fd: 8f 33 f1 mov $f1,#$33 +1200: 8f 00 1e mov $1e,#$00 +1203: 6f ret + +1204: 8f 5c f2 mov $f2,#$5c +1207: 8f ff f3 mov $f3,#$ff +120a: cd ff mov x,#$ff +120c: bd mov sp,x +120d: 40 setp +120e: e8 00 mov a,#$00 +1210: 5d mov x,a +1211: af mov (x)+,a +1212: c8 00 cmp x,#$00 +1214: d0 fb bne $1211 +1216: 20 clrp +1217: 5d mov x,a +1218: af mov (x)+,a +1219: c8 f0 cmp x,#$f0 +121b: d0 fb bne $1218 +121d: 8f e6 1d mov $1d,#$e6 +1220: 3f d2 0d call $0dd2 +1223: 8f ff 25 mov $25,#$ff +1226: 8f ff 1b mov $1b,#$ff +1229: 8f ff 27 mov $27,#$ff +122c: 8f ff 1c mov $1c,#$ff +122f: 8f 05 19 mov $19,#$05 +1232: 8f 01 1e mov $1e,#$01 +1235: 5f 80 04 jmp $0480 + +; load song? +1238: f5 02 20 mov a,$2002+x +123b: fd mov y,a +123c: f5 01 20 mov a,$2001+x +123f: da e4 movw $e4,ya +1241: f5 04 20 mov a,$2004+x +1244: fd mov y,a +1245: f5 03 20 mov a,$2003+x +1248: da e8 movw $e8,ya +124a: ba e2 movw ya,$e2 +124c: 5a e4 cmpw ya,$e4 +124e: f0 13 beq $1263 +1250: da e6 movw $e6,ya +1252: 8d 00 mov y,#$00 +1254: f7 e4 mov a,($e4)+y +1256: d7 e6 mov ($e6)+y,a +1258: fc inc y +1259: d0 04 bne $125f +125b: ab e5 inc $e5 +125d: ab e7 inc $e7 +125f: 1a e8 decw $e8 +1261: d0 f1 bne $1254 +1263: e4 e0 mov a,$e0 +1265: 1c asl a +1266: 1c asl a +1267: fd mov y,a +1268: e4 e3 mov a,$e3 +126a: d6 01 17 mov $1701+y,a +126d: e4 e2 mov a,$e2 +126f: d6 00 17 mov $1700+y,a +1272: 95 93 20 adc a,$2093+x +1275: d6 02 17 mov $1702+y,a +1278: f5 94 20 mov a,$2094+x +127b: 84 e3 adc a,$e3 +127d: d6 03 17 mov $1703+y,a +1280: f5 04 20 mov a,$2004+x +1283: fd mov y,a +1284: f5 03 20 mov a,$2003+x +1287: 7a e2 addw ya,$e2 +1289: da e2 movw $e2,ya +128b: d8 e4 mov $e4,x +128d: 7d mov a,x +128e: 5c lsr a +128f: 84 e4 adc a,$e4 +1291: 5d mov x,a +1292: e4 e1 mov a,$e1 +1294: 8d 06 mov y,#$06 +1296: cf mul ya +1297: fd mov y,a +1298: e4 e0 mov a,$e0 +129a: d6 00 19 mov $1900+y,a +129d: 8f 05 e4 mov $e4,#$05 +12a0: f5 22 21 mov a,$2122+x +12a3: d6 01 19 mov $1901+y,a +12a6: 3d inc x +12a7: fc inc y +12a8: 6e e4 f5 dbnz $e4,$12a0 +12ab: 6f ret + +12ac: 2d push a +12ad: e8 06 mov a,#$06 +12af: cf mul ya +12b0: 5d mov x,a +12b1: 8f 01 e8 mov $e8,#$01 +12b4: 8f 19 e9 mov $e9,#$19 +12b7: 7a e8 addw ya,$e8 +12b9: da e8 movw $e8,ya +12bb: e4 e0 mov a,$e0 +12bd: d5 00 19 mov $1900+x,a +12c0: ae pop a +12c1: c4 f6 mov $f6,a +12c3: 8f dc f5 mov $f5,#$dc +12c6: 8f fe f4 mov $f4,#$fe +12c9: 4f 9b pcall $9b +12cb: 4f 9b pcall $9b +12cd: 8f e4 e8 mov $e8,#$e4 +12d0: 8f 00 e9 mov $e9,#$00 +12d3: 4f 9b pcall $9b +12d5: ba e2 movw ya,$e2 +12d7: da e8 movw $e8,ya +12d9: 4f 9b pcall $9b +12db: e4 e0 mov a,$e0 +12dd: 1c asl a +12de: 1c asl a +12df: 5d mov x,a +12e0: e4 e3 mov a,$e3 +12e2: d5 01 17 mov $1701+x,a +12e5: fd mov y,a +12e6: e4 e2 mov a,$e2 +12e8: d5 00 17 mov $1700+x,a +12eb: 7a e6 addw ya,$e6 +12ed: d5 02 17 mov $1702+x,a +12f0: dd mov a,y +12f1: d5 03 17 mov $1703+x,a +12f4: ba e2 movw ya,$e2 +12f6: 7a e4 addw ya,$e4 +12f8: da e2 movw $e2,ya +12fa: 6f ret + +12fb: 2d push a +12fc: 9f xcn a +12fd: 28 07 and a,#$07 +12ff: fd mov y,a +1300: f6 e5 ff mov a,$ffe5+y +1303: d5 01 02 mov $0201+x,a +1306: ae pop a +1307: 28 0f and a,#$0f +1309: fd mov y,a +130a: f6 ed ff mov a,$ffed+y +130d: d5 10 02 mov $0210+x,a +1310: 6f ret + +1311: db $5c,$2d,$3d,$5c,$4c,$6c,$4d,$0d,$3c,$2c + +ff00: e7 50 mov a,($50+x) +ff02: bb 50 inc $50+x +ff04: d0 02 bne $ff08 +ff06: bb 51 inc $51+x +ff08: fd mov y,a +ff09: 6f ret + +ff0a: ed notc +ff0b: 6b 30 ror $30 +ff0d: 10 03 bpl $ff12 +ff0f: 48 ff eor a,#$ff +ff11: bc inc a +ff12: 8d 00 mov y,#$00 +ff14: 9e div ya,x +ff15: 2d push a +ff16: e8 00 mov a,#$00 +ff18: 9e div ya,x +ff19: ee pop y +ff1a: f8 35 mov x,$35 +ff1c: f3 30 06 bbc7 $30,$ff25 +ff1f: da e0 movw $e0,ya +ff21: 9a e0 subw ya,$e0 +ff23: 9a e0 subw ya,$e0 +ff25: 6f ret + +ff26: f5 01 01 mov a,$0101+x +ff29: c4 2f mov $2f,a +ff2b: f5 00 01 mov a,$0100+x +ff2e: c4 2e mov $2e,a +ff30: 6f ret + +ff31: e2 31 set7 $31 +ff33: cb 30 mov $30,y +ff35: 4f 1c pcall $1c +ff37: 6d push y +ff38: eb 39 mov y,$39 +ff3a: 13 1f 02 bbc0 $1f,$ff3f +ff3d: eb 2b mov y,$2b +ff3f: cf mul ya +ff40: cb e0 mov $e0,y +ff42: 8f 00 e1 mov $e1,#$00 +ff45: eb 39 mov y,$39 +ff47: 13 1f 02 bbc0 $1f,$ff4c +ff4a: eb 2b mov y,$2b +ff4c: ae pop a +ff4d: cf mul ya +ff4e: 7a e0 addw ya,$e0 +ff50: 3f 1c ff call $ff1c +ff53: 7a 2e addw ya,$2e +ff55: da 2e movw $2e,ya +ff57: 6f ret + +ff58: 8d 00 mov y,#$00 +ff5a: f7 32 mov a,($32)+y +ff5c: 3a 32 incw $32 +ff5e: 2d push a +ff5f: f7 32 mov a,($32)+y +ff61: 3a 32 incw $32 +ff63: fd mov y,a +ff64: ae pop a +ff65: 6f ret + +ff66: 7d mov a,x +ff67: d4 80 mov $80+x,a +ff69: e8 0a mov a,#$0a +ff6b: d5 d1 02 mov $02d1+x,a +ff6e: e8 01 mov a,#$01 +ff70: d5 41 01 mov $0141+x,a +ff73: 9c dec a +ff74: d5 90 00 mov $0090+x,a +ff77: d5 91 00 mov $0091+x,a +ff7a: d5 a1 03 mov $03a1+x,a +ff7d: 90 1b bcc $ff9a +ff7f: d4 d0 mov $d0+x,a +ff81: d4 c1 mov $c1+x,a +ff83: d4 d1 mov $d1+x,a +ff85: d5 70 03 mov $0370+x,a +ff88: d5 21 01 mov $0121+x,a +ff8b: d5 11 02 mov $0211+x,a +ff8e: d5 50 02 mov $0250+x,a +ff91: d5 80 03 mov $0380+x,a +ff94: d5 d0 02 mov $02d0+x,a +ff97: d5 81 02 mov $0281+x,a +ff9a: 6f ret + +ff9b: cd 00 mov x,#$00 +ff9d: 2f 0a bra $ffa9 +ff9f: fd mov y,a +ffa0: f6 e9 00 mov a,$00e9+y +ffa3: c7 e8 mov ($e8+x),a +ffa5: 3a e8 incw $e8 +ffa7: fe f7 dbnz y,$ffa0 +ffa9: e4 f4 mov a,$f4 +ffab: 64 f4 cmp a,$f4 +ffad: d0 fa bne $ffa9 +ffaf: 64 1e cmp a,$1e +ffb1: f0 f6 beq $ffa9 +ffb3: c4 1e mov $1e,a +ffb5: fa f5 ea mov ($ea),($f5) +ffb8: fa f6 eb mov ($eb),($f6) +ffbb: fa f7 ec mov ($ec),($f7) +ffbe: c4 f4 mov $f4,a +ffc0: 28 03 and a,#$03 +ffc2: d0 db bne $ff9f +ffc4: 6f ret + +; echo FIR presets +ffc5: db $7f,$00,$00,$00,$00,$00,$00,$00 +ffcd: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c +ffd5: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 +ffdd: db $34,$33,$00,$d9,$e5,$01,$fc,$eb + +; note dur%'s +ffe5: db $00,$7f,$98,$b2,$cb,$e5,$fc,$ff +; per-note velocity values +ffed: db $19,$32,$4c,$65,$72,$7f,$8c,$98 +fff5: db $a5,$b2,$bf,$cb,$d8,$e5,$f2,$fc diff --git a/snes/NSPC/Virgin/NFL Football ($0800).bin b/snes/NSPC/Virgin/NFL Football ($0800).bin new file mode 100644 index 00000000..b6a4fcc3 Binary files /dev/null and b/snes/NSPC/Virgin/NFL Football ($0800).bin differ diff --git a/snes/NSPC/Virgin/NFL Football.s b/snes/NSPC/Virgin/NFL Football.s new file mode 100644 index 00000000..e2462c58 --- /dev/null +++ b/snes/NSPC/Virgin/NFL Football.s @@ -0,0 +1,1484 @@ +0800: 20 clrp +0801: cd cf mov x,#$cf +0803: bd mov sp,x +0804: e8 00 mov a,#$00 +0806: 5d mov x,a +0807: af mov (x)+,a +0808: c8 f0 cmp x,#$f0 +080a: d0 fb bne $0807 +080c: 5d mov x,a +080d: d5 00 01 mov $0100+x,a +0810: d5 00 02 mov $0200+x,a +0813: d5 00 03 mov $0300+x,a +0816: d5 00 04 mov $0400+x,a +0819: d5 00 05 mov $0500+x,a +081c: d5 00 06 mov $0600+x,a +081f: d5 00 07 mov $0700+x,a +0822: 3d inc x +0823: d0 e8 bne $080d +0825: bc inc a +0826: 3f 1e 0f call $0f1e +0829: a2 33 set5 $33 +082b: e8 60 mov a,#$60 +082d: 8d 0c mov y,#$0c +082f: 3f f9 0a call $0af9 +0832: 8d 1c mov y,#$1c +0834: 3f f9 0a call $0af9 +0837: e8 3b mov a,#$3b +0839: 8d 5d mov y,#$5d +083b: 3f f9 0a call $0af9 +083e: e8 90 mov a,#$90 +0840: c5 f1 00 mov $00f1,a +0843: e8 10 mov a,#$10 +0845: c5 fa 00 mov $00fa,a +0848: c4 3d mov $3d,a +084a: e8 81 mov a,#$81 +084c: c5 f1 00 mov $00f1,a +084f: 8d 0a mov y,#$0a +0851: ad 05 cmp y,#$05 +0853: f0 07 beq $085c +0855: b0 08 bcs $085f +0857: 69 38 37 cmp ($37),($38) +085a: d0 11 bne $086d +085c: e3 37 0e bbs7 $37,$086d +085f: f6 c4 08 mov a,$08c4+y +0862: c5 f2 00 mov $00f2,a +0865: f6 ce 08 mov a,$08ce+y +0868: 5d mov x,a +0869: e6 mov a,(x) +086a: c5 f3 00 mov $00f3,a +086d: fe e2 dbnz y,$0851 +086f: cb 2f mov $2f,y +0871: cb 30 mov $30,y +0873: e4 18 mov a,$18 +0875: 44 19 eor a,$19 +0877: 5c lsr a +0878: 5c lsr a +0879: ed notc +087a: 6b 18 ror $18 +087c: 6b 19 ror $19 +087e: ec fd 00 mov y,$00fd +0881: f0 fb beq $087e +0883: 6d push y +0884: e8 20 mov a,#$20 +0886: cf mul ya +0887: 60 clrc +0888: 84 1b adc a,$1b +088a: c4 1b mov $1b,a +088c: 90 07 bcc $0895 +088e: 69 38 37 cmp ($37),($38) +0891: f0 02 beq $0895 +0893: ab 37 inc $37 +0895: ee pop y +0896: e4 3d mov a,$3d +0898: cf mul ya +0899: 60 clrc +089a: 84 3b adc a,$3b +089c: c4 3b mov $3b,a +089e: 90 0d bcc $08ad +08a0: 3f 12 09 call $0912 +08a3: 3f 7c 0b call $0b7c +08a6: cd 00 mov x,#$00 +08a8: 3f d9 08 call $08d9 +08ab: 2f a2 bra $084f +08ad: e4 04 mov a,$04 +08af: f0 fa beq $08ab +08b1: cd 00 mov x,#$00 +08b3: 8f 01 31 mov $31,#$01 +08b6: f4 20 mov a,$20+x +08b8: f0 03 beq $08bd +08ba: 3f 09 12 call $1209 +08bd: 3d inc x +08be: 3d inc x +08bf: 0b 31 asl $31 +08c1: d0 f3 bne $08b6 +08c3: 2f e6 bra $08ab + +08c5: db $2c,$3c,$ec,$e7,$6c,$4c,$5c,$3d,$2d,$5c +08cf: db $4b,$4d,$39,$35,$33,$2f,$0e,$34,$36,$30 + +08d9: f4 04 mov a,$04+x +08db: d5 f4 00 mov $00f4+x,a +08de: f5 f4 00 mov a,$00f4+x +08e1: 68 ff cmp a,#$ff +08e3: d0 03 bne $08e8 +08e5: 5f c0 ff jmp $ffc0 + +08e8: 68 fc cmp a,#$fc +08ea: d0 17 bne $0903 +08ec: 8f 00 45 mov $45,#$00 +08ef: fa f7 44 mov ($44),($f7) +08f2: c4 f4 mov $f4,a +08f4: 5d mov x,a +08f5: e4 45 mov a,$45 +08f7: 80 setc +08f8: a4 43 sbc a,$43 +08fa: 3f 31 10 call $1031 +08fd: da 46 movw $46,ya +08ff: cd 00 mov x,#$00 +0901: 2f d6 bra $08d9 +0903: 75 f4 00 cmp a,$00f4+x +0906: d0 d6 bne $08de +0908: d4 00 mov $00+x,a +090a: 3d inc x +090b: c8 03 cmp x,#$03 +090d: d0 ca bne $08d9 +090f: cd 00 mov x,#$00 +0911: 6f ret + +0912: eb bd mov y,$bd +0914: d0 7f bne $0995 +0916: cd 01 mov x,#$01 +0918: 4d push x +0919: f4 00 mov a,$00+x +091b: f0 09 beq $0926 +091d: 74 04 cmp a,$04+x +091f: f0 05 beq $0926 +0921: 28 7f and a,#$7f +0923: 3f 34 09 call $0934 +0926: ce pop x +0927: f4 00 mov a,$00+x +0929: d4 04 mov $04+x,a +092b: d5 f4 00 mov $00f4+x,a +092e: 3d inc x +092f: c8 03 cmp x,#$03 +0931: d0 e5 bne $0918 +0933: 6f ret + +0934: eb bd mov y,$bd ; load song +0936: d0 5d bne $0995 +0938: 68 05 cmp a,#$05 +093a: 90 58 bcc $0994 +093c: 68 0b cmp a,#$0b +093e: b0 54 bcs $0994 +0940: d4 04 mov $04+x,a +0942: 78 08 b8 cmp $b8,#$08 +0945: f0 4d beq $0994 +0947: 1c asl a +0948: 5d mov x,a +0949: c4 be mov $be,a +094b: 8d 00 mov y,#$00 +094d: e4 bb mov a,$bb +094f: 5c lsr a +0950: 90 03 bcc $0955 +0952: fc inc y +0953: 2f fa bra $094f +0955: e4 bb mov a,$bb +0957: 16 eb 09 or a,$09eb+y +095a: c4 bb mov $bb,a +095c: e4 bc mov a,$bc +095e: 16 eb 09 or a,$09eb+y +0961: c4 bc mov $bc,a +0963: 6d push y +0964: ab b8 inc $b8 +0966: f5 e3 12 mov a,$12e3+x +0969: fd mov y,a +096a: f5 e2 12 mov a,$12e2+x +096d: da b9 movw $b9,ya +096f: ae pop a +0970: 1c asl a +0971: 5d mov x,a +0972: c4 be mov $be,a +0974: e8 0a mov a,#$0a +0976: 3f fd 0d call $0dfd +0979: d5 11 02 mov $0211+x,a +097c: d5 e1 02 mov $02e1+x,a +097f: d5 61 03 mov $0361+x,a +0982: d5 f0 02 mov $02f0+x,a +0985: d4 96 mov $96+x,a +0987: d4 a6 mov $a6+x,a +0989: d4 65 mov $65+x,a +098b: d4 75 mov $75+x,a +098d: d4 76 mov $76+x,a +098f: bc inc a +0990: d4 55 mov $55+x,a +0992: c4 bd mov $bd,a +0994: 6f ret + +0995: f8 be mov x,$be +0997: e4 b9 mov a,$b9 +0999: d5 1f 00 mov $001f+x,a +099c: e4 ba mov a,$ba +099e: d5 20 00 mov $0020+x,a +09a1: 3f ad 0d call $0dad +09a4: c4 bd mov $bd,a +09a6: f0 ec beq $0994 +09a8: 30 23 bmi $09cd +09aa: d5 00 02 mov $0200+x,a +09ad: 3f ad 0d call $0dad +09b0: c4 bd mov $bd,a +09b2: f0 e0 beq $0994 +09b4: 30 17 bmi $09cd +09b6: 2d push a +09b7: 9f xcn a +09b8: 28 07 and a,#$07 +09ba: fd mov y,a +09bb: f6 cc 12 mov a,$12cc+y +09be: d5 01 02 mov $0201+x,a +09c1: ae pop a +09c2: 28 0f and a,#$0f +09c4: fd mov y,a +09c5: f6 d4 12 mov a,$12d4+y +09c8: d5 10 02 mov $0210+x,a +09cb: 2f d4 bra $09a1 +09cd: 68 cb cmp a,#$cb +09cf: 90 05 bcc $09d6 +09d1: 3f 9b 0d call $0d9b +09d4: 2f cb bra $09a1 +09d6: 3f 04 0a call $0a04 +09d9: f5 00 02 mov a,$0200+x +09dc: d4 55 mov $55+x,a +09de: fd mov y,a +09df: f5 01 02 mov a,$0201+x +09e2: cf mul ya +09e3: dd mov a,y +09e4: d0 01 bne $09e7 +09e6: bc inc a +09e7: d4 56 mov $56+x,a +09e9: 2f b6 bra $09a1 + +09eb: db $01,$02,$04,$08,$10,$20,$40,$80 + +09f3: db $fe,$fd,$fb,$f7,$ef,$df,$bf,$7f + +09fb: db $01,$03,$07,$0f,$1f,$3f,$7f,$ff + +0a03: 6f ret + +; handle a note vcmd (80-cb) +0a04: ad ca cmp y,#$ca +0a06: 90 05 bcc $0a0d +; vcmd ca - percussion note +0a08: 3f b7 0d call $0db7 +0a0b: 8d a4 mov y,#$a4 +; vcmds 80-c7,c8,c9 - note/tie/rest +0a0d: ad c8 cmp y,#$c8 +0a0f: b0 f2 bcs $0a03 +0a11: e4 1a mov a,$1a +0a13: 24 31 and a,$31 +0a15: d0 ec bne $0a03 +; vcmds 80-c7 - note (note number in Y) +0a17: dd mov a,y +0a18: 28 7f and a,#$7f +0a1a: 60 clrc +0a1b: 84 3a adc a,$3a +0a1d: 60 clrc +0a1e: 95 61 03 adc a,$0361+x +0a21: d5 c1 02 mov $02c1+x,a +0a24: f5 e1 02 mov a,$02e1+x +0a27: d5 c0 02 mov $02c0+x,a +0a2a: f5 31 03 mov a,$0331+x +0a2d: 5c lsr a +0a2e: e8 00 mov a,#$00 +0a30: 7c ror a +0a31: d5 10 03 mov $0310+x,a +0a34: e8 00 mov a,#$00 +0a36: d4 95 mov $95+x,a +0a38: d5 66 00 mov $0066+x,a +0a3b: d5 50 03 mov $0350+x,a +0a3e: d4 a5 mov $a5+x,a +0a40: 09 31 48 or ($48),($31) +0a43: 09 31 2f or ($2f),($31) +0a46: f5 f0 02 mov a,$02f0+x +0a49: d4 85 mov $85+x,a +0a4b: f0 1e beq $0a6b +0a4d: f5 f1 02 mov a,$02f1+x +0a50: d4 86 mov $86+x,a +0a52: f5 00 03 mov a,$0300+x +0a55: d0 0a bne $0a61 +0a57: f5 c1 02 mov a,$02c1+x +0a5a: 80 setc +0a5b: b5 01 03 sbc a,$0301+x +0a5e: d5 c1 02 mov $02c1+x,a +0a61: f5 01 03 mov a,$0301+x +0a64: 60 clrc +0a65: 95 c1 02 adc a,$02c1+x +0a68: 3f e8 0f call $0fe8 +0a6b: 3f 00 10 call $1000 +0a6e: 8d 00 mov y,#$00 +0a70: e4 11 mov a,$11 +0a72: 80 setc +0a73: a8 34 sbc a,#$34 +0a75: b0 09 bcs $0a80 +0a77: e4 11 mov a,$11 +0a79: 80 setc +0a7a: a8 13 sbc a,#$13 +0a7c: b0 06 bcs $0a84 +0a7e: dc dec y +0a7f: 1c asl a +0a80: 7a 10 addw ya,$10 +0a82: da 10 movw $10,ya +0a84: 4d push x +0a85: e4 11 mov a,$11 +0a87: 1c asl a +0a88: 8d 00 mov y,#$00 +0a8a: cd 18 mov x,#$18 +0a8c: 9e div ya,x +0a8d: 5d mov x,a +0a8e: f6 01 0b mov a,$0b01+y +0a91: c4 15 mov $15,a +0a93: f6 00 0b mov a,$0b00+y +0a96: c4 14 mov $14,a +0a98: f6 03 0b mov a,$0b03+y +0a9b: 2d push a +0a9c: f6 02 0b mov a,$0b02+y +0a9f: ee pop y +0aa0: 9a 14 subw ya,$14 +0aa2: eb 10 mov y,$10 +0aa4: cf mul ya +0aa5: dd mov a,y +0aa6: 8d 00 mov y,#$00 +0aa8: 7a 14 addw ya,$14 +0aaa: cb 15 mov $15,y +0aac: 1c asl a +0aad: 2b 15 rol $15 +0aaf: c4 14 mov $14,a +0ab1: 2f 04 bra $0ab7 +0ab3: 4b 15 lsr $15 +0ab5: 7c ror a +0ab6: 3d inc x +0ab7: c8 06 cmp x,#$06 +0ab9: d0 f8 bne $0ab3 +0abb: c4 14 mov $14,a +0abd: ce pop x +0abe: f5 20 02 mov a,$0220+x +0ac1: eb 15 mov y,$15 +0ac3: cf mul ya +0ac4: da 16 movw $16,ya +0ac6: f5 20 02 mov a,$0220+x +0ac9: eb 14 mov y,$14 +0acb: cf mul ya +0acc: 6d push y +0acd: f5 21 02 mov a,$0221+x +0ad0: eb 14 mov y,$14 +0ad2: cf mul ya +0ad3: 7a 16 addw ya,$16 +0ad5: da 16 movw $16,ya +0ad7: f5 21 02 mov a,$0221+x +0ada: eb 15 mov y,$15 +0adc: cf mul ya +0add: fd mov y,a +0ade: ae pop a +0adf: 7a 16 addw ya,$16 +0ae1: da 16 movw $16,ya +0ae3: 7d mov a,x +0ae4: 9f xcn a +0ae5: 5c lsr a +0ae6: 08 02 or a,#$02 +0ae8: fd mov y,a +0ae9: e4 16 mov a,$16 +0aeb: 3f f1 0a call $0af1 +0aee: fc inc y +0aef: e4 17 mov a,$17 +0af1: 2d push a +0af2: e4 31 mov a,$31 +0af4: 24 1a and a,$1a +0af6: ae pop a +0af7: d0 06 bne $0aff +0af9: cc f2 00 mov $00f2,y +0afc: c5 f3 00 mov $00f3,a +0aff: 6f ret + +; pitch table +0b00: dw $085f +0b02: dw $08de +0b04: dw $0965 +0b06: dw $09f4 +0b08: dw $0a8c +0b0a: dw $0b2c +0b0c: dw $0bd6 +0b0e: dw $0c8b +0b10: dw $0d4a +0b12: dw $0e14 +0b14: dw $0eea +0b16: dw $0fcd +0b18: dw $10be + +; read $1C/1 into YA with advancing the pointer +0b1a: 8d 00 mov y,#$00 +0b1c: f7 1c mov a,($1c)+y +0b1e: 3a 1c incw $1c +0b20: 2d push a +0b21: f7 1c mov a,($1c)+y +0b23: 3a 1c incw $1c +0b25: fd mov y,a +0b26: ae pop a +0b27: 6f ret + +; play song in A +0b28: c4 04 mov $04,a +0b2a: 1c asl a +0b2b: f0 0d beq $0b3a +0b2d: 5d mov x,a +0b2e: f5 e3 12 mov a,$12e3+x +0b31: fd mov y,a +0b32: f5 e2 12 mov a,$12e2+x +0b35: da 1c movw $1c,ya +0b37: 8f 02 0c mov $0c,#$02 +0b3a: e4 1a mov a,$1a +0b3c: 48 ff eor a,#$ff +0b3e: 0e 30 00 tset1 $0030 +0b41: 6f ret + +; reset song params +0b42: cd 0e mov x,#$0e +0b44: 8f 80 31 mov $31,#$80 +0b47: e8 ff mov a,#$ff +0b49: d5 51 02 mov $0251+x,a +0b4c: e8 0a mov a,#$0a +0b4e: 3f fd 0d call $0dfd +0b51: d5 11 02 mov $0211+x,a +0b54: d5 e1 02 mov $02e1+x,a +0b57: d5 61 03 mov $0361+x,a +0b5a: d5 f0 02 mov $02f0+x,a +0b5d: d4 96 mov $96+x,a +0b5f: d4 a6 mov $a6+x,a +0b61: 1d dec x +0b62: 1d dec x +0b63: 4b 31 lsr $31 +0b65: d0 e0 bne $0b47 +0b67: c4 44 mov $44,a +0b69: c4 52 mov $52,a +0b6b: c4 3e mov $3e,a +0b6d: c4 3a mov $3a,a +0b6f: c4 1e mov $1e,a +0b71: c4 49 mov $49,a +0b73: c4 bb mov $bb,a +0b75: 8f c0 43 mov $43,#$c0 +0b78: 8f 20 3d mov $3d,#$20 +0b7b: 6f ret + +0b7c: eb 08 mov y,$08 +0b7e: e4 00 mov a,$00 +0b80: c4 08 mov $08,a +0b82: 7e 00 cmp y,$00 +0b84: d0 a2 bne $0b28 +0b86: 68 01 cmp a,#$01 +0b88: 90 f1 bcc $0b7b +0b8a: 68 08 cmp a,#$08 +0b8c: b0 ed bcs $0b7b +0b8e: e4 04 mov a,$04 +0b90: f0 e9 beq $0b7b +0b92: e4 0c mov a,$0c +0b94: f0 79 beq $0c0f +0b96: 6e 0c a9 dbnz $0c,$0b42 +0b99: 3f 1a 0b call $0b1a +0b9c: d0 14 bne $0bb2 +0b9e: fd mov y,a +0b9f: f0 87 beq $0b28 +; set/dec repeat count +0ba1: 8b 1e dec $1e +0ba3: 10 02 bpl $0ba7 +0ba5: c4 1e mov $1e,a +0ba7: 3f 1a 0b call $0b1a +0baa: f8 1e mov x,$1e +0bac: f0 eb beq $0b99 +0bae: da 1c movw $1c,ya +0bb0: 2f e7 bra $0b99 +; load start addresses - hi-byte not zero +0bb2: da 16 movw $16,ya +0bb4: 8d 00 mov y,#$00 +0bb6: f7 1c mov a,($1c)+y +0bb8: c4 b5 mov $b5,a +0bba: c4 b8 mov $b8,a +0bbc: 3a 1c incw $1c +0bbe: 1c asl a +0bbf: 9c dec a +0bc0: fd mov y,a +0bc1: c4 b7 mov $b7,a +0bc3: f7 16 mov a,($16)+y +0bc5: d6 1f 00 mov $001f+y,a +0bc8: dc dec y +0bc9: 10 f8 bpl $0bc3 +0bcb: f8 b5 mov x,$b5 +0bcd: 1d dec x +0bce: e8 00 mov a,#$00 +0bd0: 15 fb 09 or a,$09fb+x +0bd3: c4 bb mov $bb,a +0bd5: 8d 0f mov y,#$0f +0bd7: 7e b7 cmp y,$b7 +0bd9: f0 08 beq $0be3 +0bdb: e8 00 mov a,#$00 +0bdd: d6 1f 00 mov $001f+y,a +0be0: dc dec y +0be1: 2f f4 bra $0bd7 +0be3: cd 00 mov x,#$00 +0be5: 8f 00 b6 mov $b6,#$00 +0be8: 8f 01 31 mov $31,#$01 +0beb: f4 20 mov a,$20+x +0bed: f0 0a beq $0bf9 +0bef: f5 11 02 mov a,$0211+x +0bf2: d0 05 bne $0bf9 +0bf4: e8 00 mov a,#$00 +0bf6: 3f b7 0d call $0db7 +0bf9: e8 00 mov a,#$00 +0bfb: d4 65 mov $65+x,a +0bfd: d4 75 mov $75+x,a +0bff: d4 76 mov $76+x,a +0c01: bc inc a +0c02: d4 55 mov $55+x,a +0c04: 3d inc x +0c05: 3d inc x +0c06: 0b 31 asl $31 +0c08: ab b6 inc $b6 +0c0a: 69 b6 b5 cmp ($b5),($b6) +0c0d: d0 dc bne $0beb +0c0f: cd 00 mov x,#$00 +0c11: d8 48 mov $48,x +0c13: 8f 01 31 mov $31,#$01 +0c16: d8 32 mov $32,x +0c18: f4 20 mov a,$20+x +0c1a: d0 03 bne $0c1f +0c1c: 5f b2 0c jmp $0cb2 + +0c1f: 9b 55 dec $55+x +0c21: d0 76 bne $0c99 +0c23: f5 c0 00 mov a,$00c0+x +0c26: f0 09 beq $0c31 +0c28: d4 55 mov $55+x,a +0c2a: e8 00 mov a,#$00 +0c2c: d5 c0 00 mov $00c0+x,a +0c2f: 2f 68 bra $0c99 +0c31: 3f ad 0d call $0dad +0c34: d0 24 bne $0c5a +0c36: 7d mov a,x +0c37: 5c lsr a +0c38: fd mov y,a +0c39: e4 bc mov a,$bc +0c3b: 36 eb 09 and a,$09eb+y +0c3e: d0 61 bne $0ca1 +; vcmd 00 - end repeat/return +0c40: f4 65 mov a,$65+x +0c42: d0 03 bne $0c47 +0c44: 5f 99 0b jmp $0b99 + +; repeat/return from subroutine +0c47: 3f 23 10 call $1023 +0c4a: 9b 65 dec $65+x +0c4c: d0 e3 bne $0c31 +0c4e: f5 30 02 mov a,$0230+x +0c51: d4 1f mov $1f+x,a +0c53: f5 31 02 mov a,$0231+x +0c56: d4 20 mov $20+x,a +0c58: 2f d7 bra $0c31 +0c5a: 30 1f bmi $0c7b +0c5c: d5 00 02 mov $0200+x,a +0c5f: 3f ad 0d call $0dad +; vcmd branches +0c62: 30 17 bmi $0c7b +0c64: 2d push a +0c65: 9f xcn a +0c66: 28 07 and a,#$07 +0c68: fd mov y,a +0c69: f6 cc 12 mov a,$12cc+y +0c6c: d5 01 02 mov $0201+x,a +0c6f: ae pop a +0c70: 28 0f and a,#$0f +0c72: fd mov y,a +0c73: f6 d4 12 mov a,$12d4+y +0c76: d5 10 02 mov $0210+x,a +0c79: 2f b6 bra $0c31 +; vcmd branches 80-ff +0c7b: 68 cb cmp a,#$cb +0c7d: 90 05 bcc $0c84 +0c7f: 3f 9b 0d call $0d9b +0c82: 2f ad bra $0c31 +0c84: 3f 04 0a call $0a04 +0c87: f5 00 02 mov a,$0200+x +0c8a: d4 55 mov $55+x,a +0c8c: fd mov y,a +0c8d: f5 01 02 mov a,$0201+x +0c90: cf mul ya +0c91: dd mov a,y +0c92: d0 01 bne $0c95 +0c94: bc inc a +0c95: d4 56 mov $56+x,a +0c97: 2f 03 bra $0c9c +0c99: 3f 19 11 call $1119 +0c9c: 3f c8 0f call $0fc8 +0c9f: 2f 11 bra $0cb2 +0ca1: f6 eb 09 mov a,$09eb+y +0ca4: 4e bb 00 tclr1 $00bb +0ca7: 4e bc 00 tclr1 $00bc +0caa: e8 00 mov a,#$00 +0cac: d4 1f mov $1f+x,a +0cae: d4 20 mov $20+x,a +0cb0: 8b b8 dec $b8 +0cb2: 3d inc x +0cb3: 3d inc x +0cb4: 0b 31 asl $31 +0cb6: f0 03 beq $0cbb +0cb8: 5f 16 0c jmp $0c16 +0cbb: e4 3e mov a,$3e +0cbd: f0 0b beq $0cca +0cbf: ba 40 movw ya,$40 +0cc1: 7a 3c addw ya,$3c +0cc3: 6e 3e 02 dbnz $3e,$0cc8 +0cc6: ba 3e movw ya,$3e +0cc8: da 3c movw $3c,ya +0cca: e4 52 mov a,$52 +0ccc: f0 15 beq $0ce3 +0cce: ba 4e movw ya,$4e +0cd0: 7a 4a addw ya,$4a +0cd2: da 4a movw $4a,ya +0cd4: ba 50 movw ya,$50 +0cd6: 7a 4c addw ya,$4c +0cd8: 6e 52 06 dbnz $52,$0ce1 +0cdb: ba 52 movw ya,$52 +0cdd: da 4a movw $4a,ya +0cdf: eb 54 mov y,$54 +0ce1: da 4c movw $4c,ya +0ce3: e4 44 mov a,$44 +0ce5: f0 0e beq $0cf5 +0ce7: ba 46 movw ya,$46 +0ce9: 7a 42 addw ya,$42 +0ceb: 6e 44 02 dbnz $44,$0cf0 +0cee: ba 44 movw ya,$44 +0cf0: da 42 movw $42,ya +0cf2: 8f ff 48 mov $48,#$ff +0cf5: cd 00 mov x,#$00 +0cf7: 8f 01 31 mov $31,#$01 +0cfa: f4 20 mov a,$20+x +0cfc: f0 03 beq $0d01 +0cfe: 3f 4d 10 call $104d +0d01: 3d inc x +0d02: 3d inc x +0d03: 0b 31 asl $31 +0d05: d0 f3 bne $0cfa +0d07: 6f ret + +; vcmd dispatch table +0d08: dw $0db7 ; cb - set instrument +0d0a: dw $0df9 ; cc - set note length +0d0c: dw $0dfd ; cd - pan +0d0e: dw $0e0b ; ce - pan parameter +0d10: dw $0e0f ; cf - pan fade +0d12: dw $0e25 ; d0 - vibrato off +0d14: dw $0e32 ; d1 - vibrato on +0d16: dw $0e3b ; d2 - vibrato parameter 1 +0d18: dw $0e3f ; d3 - vibrato parameter 2 +0d1a: dw $0e43 ; d4 - vibrato parameter 3 +0d1c: dw $0e46 ; d5 - vibrato fade +0d1e: dw $0e56 ; d6 - master volume +0d20: dw $0e5b ; d7 - master volume parameter +0d22: dw $0e5e ; d8 - master volume fade +0d24: dw $0e6c ; d9 - tempo +0d26: dw $0e71 ; da - tempo fade parameter +0d28: dw $0e74 ; db - tempo fade +0d2a: dw $0e82 ; dc - global transpose +0d2c: dw $0e85 ; dd - per-voice transpose +0d2e: dw $0e89 ; de - tremolo on +0d30: dw $0e8f ; df - tremolo off +0d32: dw $0e92 ; e0 - pitch envelope (release) +0d34: dw $0e96 ; e1 - pitch envelope (attack) +0d36: dw $0e9a ; e2 - pitch envelope off +0d38: dw $0e9e ; e3 - volume +0d3a: dw $0ea7 ; e4 - volume fade parameter +0d3c: dw $0eab ; e5 - volume fade +0d3e: dw $0ec1 ; e6 - tuning +0d40: dw $0ec5 ; e7 +0d42: dw $0edb ; e8 +0d44: dw $0ef2 ; e9 - echo volume parameter 1 +0d46: dw $0ef7 ; ea - echo volume parameter 2 +0d48: dw $0efc ; eb - set echo params (1) +0d4a: dw $0f61 ; ec - disable echo +0d4c: dw $0f64 ; ed - set echo params (2) +0d4e: dw $0f7b ; ee +0d50: dw $0f80 ; ef +0d52: dw $0f85 ; f0 +0d54: dw $0fa9 ; f1 +0d56: dw $0fac ; f2 +0d58: dw $0fb0 ; f3 +0d5a: dw $0fb4 ; f4 +0d5c: dw $0fb8 ; f5 +0d5e: dw $0fbc ; f6 +0d60: dw $0fd8 ; f7 - pitch slide +0d62: dw $0fc0 ; f8 +0d64: dw $0fc4 ; f9 +0d66: dw $100b ; fa - call subroutine +0d68: dw $102e ; fb + +; vcmd lengths +0d6a: db $01,$01,$01,$01,$01,$00,$00,$01 ; cb-d2 +0d72: db $01,$01,$01,$01,$01,$01,$01,$01 ; d3-da +0d7a: db $01,$01,$01,$00,$00,$01,$01,$01 ; db-e2 +0d82: db $01,$01,$01,$01,$00,$00,$01,$01 ; e3-ea +0d8a: db $01,$01,$01,$01,$01,$01,$00,$00 ; eb-f2 +0d92: db $01,$01,$01,$01,$01,$01,$01,$03 ; f3-fa +0d9a: db $01 ; fb + +; dispatch vcmd in A (cb-ff) +0d9b: 1c asl a +0d9c: fd mov y,a +0d9d: f6 73 0c mov a,$0c73+y +0da0: 2d push a +0da1: f6 72 0c mov a,$0c72+y +0da4: 2d push a +0da5: dd mov a,y +0da6: 5c lsr a +0da7: fd mov y,a +0da8: f6 1f 0d mov a,$0d1f+y +0dab: f0 08 beq $0db5 +0dad: e7 1f mov a,($1f+x) +0daf: bb 1f inc $1f+x +0db1: d0 02 bne $0db5 +0db3: bb 20 inc $20+x +0db5: fd mov y,a +0db6: 6f ret + +; vcmd cb - set instrument +0db7: d5 11 02 mov $0211+x,a +0dba: fd mov y,a +0dbb: 10 06 bpl $0dc3 +0dbd: 80 setc +0dbe: a8 ca sbc a,#$ca +0dc0: 60 clrc +0dc1: 84 49 adc a,$49 +0dc3: 8d 06 mov y,#$06 +0dc5: cf mul ya +0dc6: da 14 movw $14,ya +0dc8: 60 clrc +0dc9: 98 a0 14 adc $14,#$a0 +0dcc: 98 3a 15 adc $15,#$3a +0dcf: e4 1a mov a,$1a +0dd1: 24 31 and a,$31 +0dd3: d0 23 bne $0df8 +0dd5: 4d push x +0dd6: 7d mov a,x +0dd7: 9f xcn a +0dd8: 5c lsr a +0dd9: 08 04 or a,#$04 +0ddb: 5d mov x,a +0ddc: 8d 00 mov y,#$00 +0dde: f7 14 mov a,($14)+y +0de0: c9 f2 00 mov $00f2,x +0de3: c5 f3 00 mov $00f3,a +0de6: 3d inc x +0de7: fc inc y +0de8: ad 04 cmp y,#$04 +0dea: d0 f2 bne $0dde +0dec: ce pop x +0ded: f7 14 mov a,($14)+y +0def: d5 21 02 mov $0221+x,a +0df2: fc inc y +0df3: f7 14 mov a,($14)+y +0df5: d5 20 02 mov $0220+x,a +0df8: 6f ret + +; vcmd cc - set note length +0df9: d5 c0 00 mov $00c0+x,a +0dfc: 6f ret + +; vcmd cd - pan +0dfd: d5 b1 02 mov $02b1+x,a +0e00: 28 1f and a,#$1f +0e02: d5 91 02 mov $0291+x,a +0e05: e8 00 mov a,#$00 +0e07: d5 90 02 mov $0290+x,a +0e0a: 6f ret + +; vcmd ce - pan parameter +0e0b: d5 b0 02 mov $02b0+x,a +0e0e: 6f ret + +; vcmd cf - pan fade +0e0f: d4 76 mov $76+x,a +0e11: 2d push a +0e12: f5 b0 02 mov a,$02b0+x +0e15: 80 setc +0e16: b5 91 02 sbc a,$0291+x +0e19: ce pop x +0e1a: 3f 31 10 call $1031 +0e1d: d5 a0 02 mov $02a0+x,a +0e20: dd mov a,y +0e21: d5 a1 02 mov $02a1+x,a +0e24: 6f ret + +; vcmd d0 - vibrato off +0e25: f4 c1 mov a,$c1+x +0e27: d4 96 mov $96+x,a +0e29: d5 41 03 mov $0341+x,a +0e2c: e8 00 mov a,#$00 +0e2e: d5 31 03 mov $0331+x,a +0e31: 6f ret + +; vcmd d1 - vibrato on +0e32: d4 96 mov $96+x,a +0e34: d5 41 03 mov $0341+x,a +0e37: d5 31 03 mov $0331+x,a +0e3a: 6f ret + +; vcmd d2 - vibrato parameter 1 +0e3b: d5 30 03 mov $0330+x,a +0e3e: 6f ret + +; vcmd d3 - vibrato parameter 2 +0e3f: d5 11 03 mov $0311+x,a +0e42: 6f ret + +; vcmd d4 - vibrato parameter 3 +0e43: d4 c1 mov $c1+x,a +0e45: 6f ret + +; vcmd d5 - vibrato fade +0e46: d5 31 03 mov $0331+x,a +0e49: 2d push a +0e4a: 8d 00 mov y,#$00 +0e4c: f4 96 mov a,$96+x +0e4e: ce pop x +0e4f: 9e div ya,x +0e50: f8 32 mov x,$32 +0e52: d5 40 03 mov $0340+x,a +0e55: 6f ret + +; vcmd d6 - master volume +0e56: e8 00 mov a,#$00 +0e58: da 42 movw $42,ya +0e5a: 6f ret + +; vcmd d7 - master volume parameter +0e5b: c4 45 mov $45,a +0e5d: 6f ret + +; vcmd d8 - master volume fade +0e5e: c4 44 mov $44,a +0e60: 5d mov x,a +0e61: e4 45 mov a,$45 +0e63: 80 setc +0e64: a4 43 sbc a,$43 +0e66: 3f 31 10 call $1031 +0e69: da 46 movw $46,ya +0e6b: 6f ret + +; vcmd d9 - tempo +0e6c: e8 00 mov a,#$00 +0e6e: da 3c movw $3c,ya +0e70: 6f ret + +; vcmd da - tempo fade parameter +0e71: c4 3f mov $3f,a +0e73: 6f ret + +; vcmd db - tempo fade +0e74: c4 3e mov $3e,a +0e76: 5d mov x,a +0e77: e4 3f mov a,$3f +0e79: 80 setc +0e7a: a4 3d sbc a,$3d +0e7c: 3f 31 10 call $1031 +0e7f: da 40 movw $40,ya +0e81: 6f ret + +; vcmd dc - global transpose +0e82: c4 3a mov $3a,a +0e84: 6f ret + +; vcmd dd - per-voice transpose +0e85: d5 61 03 mov $0361+x,a +0e88: 6f ret + +; vcmd de - tremolo on +0e89: f5 80 02 mov a,$0280+x +0e8c: d4 a6 mov $a6+x,a +0e8e: 6f ret + +; vcmd df - tremolo off +0e8f: d4 a6 mov $a6+x,a +0e91: 6f ret + +; vcmd e0 - pitch envelope (release) +0e92: d5 60 03 mov $0360+x,a +0e95: 6f ret + +; vcmd e1 - pitch envelope (attack) +0e96: d5 51 03 mov $0351+x,a +0e99: 6f ret + +; vcmd e2 - pitch envelope off +0e9a: d5 80 02 mov $0280+x,a +0e9d: 6f ret + +; vcmd e3 - volume +0e9e: d5 51 02 mov $0251+x,a +0ea1: e8 00 mov a,#$00 +0ea3: d5 50 02 mov $0250+x,a +0ea6: 6f ret + +; vcmd e4 - volume fade parameter +0ea7: d5 70 02 mov $0270+x,a +0eaa: 6f ret + +; vcmd e5 - volume fade +0eab: d4 75 mov $75+x,a +0ead: 2d push a +0eae: f5 70 02 mov a,$0270+x +0eb1: 80 setc +0eb2: b5 51 02 sbc a,$0251+x +0eb5: ce pop x +0eb6: 3f 31 10 call $1031 +0eb9: d5 60 02 mov $0260+x,a +0ebc: dd mov a,y +0ebd: d5 61 02 mov $0261+x,a +0ec0: 6f ret + +; vcmd e6 - tuning +0ec1: d5 e1 02 mov $02e1+x,a +0ec4: 6f ret + +; vcmd e7 +0ec5: 7d mov a,x +0ec6: 5c lsr a +0ec7: fd mov y,a +0ec8: e5 35 00 mov a,$0035 +0ecb: 16 eb 09 or a,$09eb+y +0ece: c4 35 mov $35,a +0ed0: ba d0 movw ya,$d0 +0ed2: da 4a movw $4a,ya +0ed4: ba d2 movw ya,$d2 +0ed6: da 4c movw $4c,ya +0ed8: b2 33 clr5 $33 +0eda: 6f ret + +; vcmd e8 +0edb: 7d mov a,x +0edc: 5c lsr a +0edd: fd mov y,a +0ede: e5 35 00 mov a,$0035 +0ee1: 36 f3 09 and a,$09f3+y +0ee4: c5 35 00 mov $0035,a +0ee7: 68 00 cmp a,#$00 +0ee9: d0 06 bne $0ef1 +0eeb: da 4a movw $4a,ya +0eed: da 4c movw $4c,ya +0eef: a2 33 set5 $33 +0ef1: 6f ret + +; vcmd e9 - echo volume parameter 1 +0ef2: e8 00 mov a,#$00 +0ef4: da d0 movw $d0,ya +0ef6: 6f ret + +; vcmd ea - echo volume parameter 2 +0ef7: e8 00 mov a,#$00 +0ef9: da d2 movw $d2,ya +0efb: 6f ret + +; vcmd eb - set echo params (1) +0efc: 3f 1e 0f call $0f1e +0eff: 3f ad 0d call $0dad +0f02: c4 39 mov $39,a +0f04: 3f ad 0d call $0dad +0f07: 8d 08 mov y,#$08 +0f09: cf mul ya +0f0a: 5d mov x,a +0f0b: 8d 0f mov y,#$0f +0f0d: f5 ac 12 mov a,$12ac+x +0f10: 3f f9 0a call $0af9 +0f13: 3d inc x +0f14: dd mov a,y +0f15: 60 clrc +0f16: 88 10 adc a,#$10 +0f18: fd mov y,a +0f19: 10 f2 bpl $0f0d +0f1b: f8 32 mov x,$32 +0f1d: 6f ret + +0f1e: c4 38 mov $38,a +0f20: 8d 7d mov y,#$7d +0f22: cc f2 00 mov $00f2,y +0f25: e5 f3 00 mov a,$00f3 +0f28: 64 38 cmp a,$38 +0f2a: f0 2b beq $0f57 +0f2c: 28 0f and a,#$0f +0f2e: 48 ff eor a,#$ff +0f30: f3 37 03 bbc7 $37,$0f36 +0f33: 60 clrc +0f34: 84 37 adc a,$37 +0f36: c4 37 mov $37,a +0f38: 8d 04 mov y,#$04 +0f3a: f6 c4 08 mov a,$08c4+y +0f3d: c5 f2 00 mov $00f2,a +0f40: e8 00 mov a,#$00 +0f42: c5 f3 00 mov $00f3,a +0f45: fe f3 dbnz y,$0f3a +0f47: e4 33 mov a,$33 +0f49: 08 20 or a,#$20 +0f4b: 8d 6c mov y,#$6c +0f4d: 3f f9 0a call $0af9 +0f50: e4 38 mov a,$38 +0f52: 8d 7d mov y,#$7d +0f54: 3f f9 0a call $0af9 +0f57: 1c asl a +0f58: 1c asl a +0f59: 1c asl a +0f5a: 48 ff eor a,#$ff +0f5c: 8d 6d mov y,#$6d +0f5e: 5f f9 0a jmp $0af9 + +; vcmd ec - disable echo +0f61: c4 39 mov $39,a +0f63: 6f ret + +; vcmd ed - set echo params (2) +0f64: 8d 08 mov y,#$08 +0f66: cf mul ya +0f67: 5d mov x,a +0f68: 8d 0f mov y,#$0f +0f6a: f5 ac 12 mov a,$12ac+x +0f6d: 3f f9 0a call $0af9 +0f70: 3d inc x +0f71: dd mov a,y +0f72: 60 clrc +0f73: 88 10 adc a,#$10 +0f75: fd mov y,a +0f76: 10 f2 bpl $0f6a +0f78: f8 32 mov x,$32 +0f7a: 6f ret + +; vcmd ee +0f7b: c4 53 mov $53,a +0f7d: e2 bf set7 $bf +0f7f: 6f ret + +; vcmd ef +0f80: c4 54 mov $54,a +0f82: c2 bf set6 $bf +0f84: 6f ret + +; vcmd f0 +0f85: c4 52 mov $52,a +0f87: 5d mov x,a +0f88: 0b bf asl $bf +0f8a: 90 0c bcc $0f98 +0f8c: e4 53 mov a,$53 +0f8e: 80 setc +0f8f: a4 4b sbc a,$4b +0f91: f8 52 mov x,$52 +0f93: 3f 31 10 call $1031 +0f96: da 4e movw $4e,ya +0f98: 0b bf asl $bf +0f9a: 90 0c bcc $0fa8 +0f9c: e4 54 mov a,$54 +0f9e: 80 setc +0f9f: a4 4d sbc a,$4d +0fa1: f8 52 mov x,$52 +0fa3: 3f 31 10 call $1031 +0fa6: da 50 movw $50,ya +0fa8: 6f ret + +; vcmd f1 +0fa9: f5 81 02 mov a,$0281+x +; vcmd f2 +0fac: d5 f0 02 mov $02f0+x,a +0faf: 6f ret + +; vcmd f3 +0fb0: d5 00 03 mov $0300+x,a +0fb3: 6f ret + +; vcmd f4 +0fb4: d5 f1 02 mov $02f1+x,a +0fb7: 6f ret + +; vcmd f5 +0fb8: d5 81 02 mov $0281+x,a +0fbb: 6f ret + +; vcmd f6 +0fbc: d5 01 03 mov $0301+x,a +0fbf: 6f ret + +; vcmd f8 +0fc0: d5 81 02 mov $0281+x,a +0fc3: 6f ret + +; vcmd f9 +0fc4: d5 21 03 mov $0321+x,a +0fc7: 6f ret + +0fc8: f4 85 mov a,$85+x +0fca: d0 33 bne $0fff +0fcc: e7 1f mov a,($1f+x) +0fce: 68 f7 cmp a,#$f7 +0fd0: d0 2d bne $0fff +0fd2: 3f af 0d call $0daf +0fd5: 3f ad 0d call $0dad +; vcmd f7 - pitch slide +0fd8: d4 86 mov $86+x,a +0fda: f5 20 03 mov a,$0320+x +0fdd: d4 85 mov $85+x,a +0fdf: f5 21 03 mov a,$0321+x +0fe2: 60 clrc +0fe3: 84 3a adc a,$3a +0fe5: 95 61 03 adc a,$0361+x +0fe8: 28 7f and a,#$7f +0fea: d5 e0 02 mov $02e0+x,a +0fed: 80 setc +0fee: b5 c1 02 sbc a,$02c1+x +0ff1: fb 85 mov y,$85+x +0ff3: 6d push y +0ff4: ce pop x +0ff5: 3f 31 10 call $1031 +0ff8: d5 d0 02 mov $02d0+x,a +0ffb: dd mov a,y +0ffc: d5 d1 02 mov $02d1+x,a +0fff: 6f ret + +1000: f5 c1 02 mov a,$02c1+x +1003: c4 11 mov $11,a +1005: f5 c0 02 mov a,$02c0+x +1008: c4 10 mov $10,a +100a: 6f ret + +; vcmd fa - call subroutine +100b: d5 40 02 mov $0240+x,a +100e: 3f ad 0d call $0dad +1011: d5 41 02 mov $0241+x,a +1014: 3f ad 0d call $0dad +1017: d4 65 mov $65+x,a +1019: f4 1f mov a,$1f+x +101b: d5 30 02 mov $0230+x,a +101e: f4 20 mov a,$20+x +1020: d5 31 02 mov $0231+x,a +1023: f5 40 02 mov a,$0240+x +1026: d4 1f mov $1f+x,a +1028: f5 41 02 mov a,$0241+x +102b: d4 20 mov $20+x,a +102d: 6f ret + +; vcmd fb +102e: c4 49 mov $49,a +1030: 6f ret + +1031: ed notc +1032: 6b 12 ror $12 +1034: 10 03 bpl $1039 +1036: 48 ff eor a,#$ff +1038: bc inc a +1039: 8d 00 mov y,#$00 +103b: 9e div ya,x +103c: 2d push a +103d: e8 00 mov a,#$00 +103f: 9e div ya,x +1040: ee pop y +1041: f8 32 mov x,$32 +1043: f3 12 06 bbc7 $12,$104c +1046: da 14 movw $14,ya +1048: ba 0e movw ya,$0e +104a: 9a 14 subw ya,$14 +104c: 6f ret + +104d: f4 75 mov a,$75+x +104f: f0 09 beq $105a +1051: e8 50 mov a,#$50 +1053: 8d 02 mov y,#$02 +1055: 9b 75 dec $75+x +1057: 3f f5 10 call $10f5 +105a: fb a6 mov y,$a6+x +105c: f0 23 beq $1081 +105e: f5 60 03 mov a,$0360+x +1061: de a5 1b cbne $a5+x,$107f +1064: 09 31 48 or ($48),($31) +1067: f5 50 03 mov a,$0350+x +106a: 10 07 bpl $1073 +106c: fc inc y +106d: d0 04 bne $1073 +106f: e8 80 mov a,#$80 +1071: 2f 04 bra $1077 +1073: 60 clrc +1074: 95 51 03 adc a,$0351+x +1077: d5 50 03 mov $0350+x,a +107a: 3f 8f 12 call $128f +107d: 2f 07 bra $1086 +107f: bb a5 inc $a5+x +1081: e8 ff mov a,#$ff +1083: 3f 9a 12 call $129a +1086: f4 76 mov a,$76+x +1088: f0 09 beq $1093 +108a: e8 90 mov a,#$90 +108c: 8d 02 mov y,#$02 +108e: 9b 76 dec $76+x +1090: 3f f5 10 call $10f5 +1093: e4 31 mov a,$31 +1095: 24 48 and a,$48 +1097: f0 46 beq $10df +1099: f5 91 02 mov a,$0291+x +109c: fd mov y,a +109d: f5 90 02 mov a,$0290+x +10a0: da 10 movw $10,ya +10a2: 7d mov a,x +10a3: 9f xcn a +10a4: 5c lsr a +10a5: c4 12 mov $12,a +10a7: eb 11 mov y,$11 +10a9: f6 e1 10 mov a,$10e1+y +10ac: 80 setc +10ad: b6 e0 10 sbc a,$10e0+y +10b0: eb 10 mov y,$10 +10b2: cf mul ya +10b3: dd mov a,y +10b4: eb 11 mov y,$11 +10b6: 60 clrc +10b7: 96 e0 10 adc a,$10e0+y +10ba: fd mov y,a +10bb: f5 71 02 mov a,$0271+x +10be: cf mul ya +10bf: f5 b1 02 mov a,$02b1+x +10c2: 1c asl a +10c3: 13 12 01 bbc0 $12,$10c7 +10c6: 1c asl a +10c7: dd mov a,y +10c8: 90 03 bcc $10cd +10ca: 48 ff eor a,#$ff +10cc: bc inc a +10cd: eb 12 mov y,$12 +10cf: 3f f1 0a call $0af1 +10d2: 8d 14 mov y,#$14 +10d4: e8 00 mov a,#$00 +10d6: 9a 10 subw ya,$10 +10d8: da 10 movw $10,ya +10da: ab 12 inc $12 +10dc: 33 12 c8 bbc1 $12,$10a7 +10df: 6f ret + + +10e0: db $00,$01,$03,$07,$0d,$15,$1e,$29 +10e8: db $34,$42,$51,$5e,$67,$6e,$73,$77 +10f0: db $7a,$7c,$7d,$7e,$7f + +10f5: 09 31 48 or ($48),($31) +10f8: da 14 movw $14,ya +10fa: da 16 movw $16,ya +10fc: 4d push x +10fd: ee pop y +10fe: 60 clrc +10ff: d0 0a bne $110b +1101: 98 1f 16 adc $16,#$1f +1104: e8 00 mov a,#$00 +1106: d7 14 mov ($14)+y,a +1108: fc inc y +1109: 2f 09 bra $1114 +110b: 98 10 16 adc $16,#$10 +110e: 3f 12 11 call $1112 +1111: fc inc y +1112: f7 14 mov a,($14)+y +1114: 97 16 adc a,($16)+y +1116: d7 14 mov ($14)+y,a +1118: 6f ret + +1119: f4 56 mov a,$56+x +111b: d0 03 bne $1120 +111d: 5f 9b 11 jmp $119b + +1120: 9b 56 dec $56+x +1122: d0 0a bne $112e +1124: f5 c0 00 mov a,$00c0+x +1127: f0 18 beq $1141 +1129: d4 56 mov $56+x,a +112b: 5f 9b 11 jmp $119b + +112e: e8 02 mov a,#$02 +1130: de 55 68 cbne $55+x,$119b +1133: f5 c0 00 mov a,$00c0+x +1136: f0 09 beq $1141 +1138: d4 55 mov $55+x,a +113a: e8 00 mov a,#$00 +113c: d5 c0 00 mov $00c0+x,a +113f: 2f 5a bra $119b +1141: f4 65 mov a,$65+x +1143: c4 17 mov $17,a +1145: f4 1f mov a,$1f+x +1147: fb 20 mov y,$20+x +1149: da 14 movw $14,ya +114b: 8d 00 mov y,#$00 +114d: f7 14 mov a,($14)+y +114f: f0 1c beq $116d +1151: 30 05 bmi $1158 +1153: fc inc y +1154: f7 14 mov a,($14)+y +1156: 10 fb bpl $1153 +1158: 68 c8 cmp a,#$c8 +115a: f0 3f beq $119b +115c: 68 fa cmp a,#$fa +115e: f0 29 beq $1189 +1160: 68 cb cmp a,#$cb +1162: 90 30 bcc $1194 +1164: 6d push y +1165: fd mov y,a +1166: ae pop a +1167: 96 9f 0c adc a,$0c9f+y +116a: fd mov y,a +116b: 2f e0 bra $114d +116d: e4 17 mov a,$17 +116f: f0 23 beq $1194 +1171: 8b 17 dec $17 +1173: d0 0a bne $117f +1175: f5 31 02 mov a,$0231+x +1178: 2d push a +1179: f5 30 02 mov a,$0230+x +117c: ee pop y +117d: 2f ca bra $1149 +117f: f5 41 02 mov a,$0241+x +1182: 2d push a +1183: f5 40 02 mov a,$0240+x +1186: ee pop y +1187: 2f c0 bra $1149 +1189: fc inc y +118a: f7 14 mov a,($14)+y +118c: 2d push a +118d: fc inc y +118e: f7 14 mov a,($14)+y +1190: fd mov y,a +1191: ae pop a +1192: 2f b5 bra $1149 +1194: e4 31 mov a,$31 +1196: 8d 5c mov y,#$5c +1198: 3f f1 0a call $0af1 +119b: f2 13 clr7 $13 +119d: f4 85 mov a,$85+x +119f: f0 13 beq $11b4 +11a1: f4 86 mov a,$86+x +11a3: f0 04 beq $11a9 +11a5: 9b 86 dec $86+x +11a7: 2f 0b bra $11b4 +11a9: e2 13 set7 $13 +11ab: e8 c0 mov a,#$c0 +11ad: 8d 02 mov y,#$02 +11af: 9b 85 dec $85+x +11b1: 3f f8 10 call $10f8 +11b4: 3f 00 10 call $1000 +11b7: f4 96 mov a,$96+x +11b9: f0 4a beq $1205 +11bb: f5 30 03 mov a,$0330+x +11be: de 95 42 cbne $95+x,$1203 +11c1: f5 66 00 mov a,$0066+x +11c4: 75 31 03 cmp a,$0331+x +11c7: d0 05 bne $11ce +11c9: f5 41 03 mov a,$0341+x +11cc: 2f 0b bra $11d9 +11ce: bb 66 inc $66+x +11d0: fd mov y,a +11d1: f0 02 beq $11d5 +11d3: f4 96 mov a,$96+x +11d5: 60 clrc +11d6: 95 40 03 adc a,$0340+x +11d9: d4 96 mov $96+x,a +11db: f5 10 03 mov a,$0310+x +11de: 60 clrc +11df: 95 11 03 adc a,$0311+x +11e2: d5 10 03 mov $0310+x,a +11e5: c4 12 mov $12,a +11e7: 1c asl a +11e8: 1c asl a +11e9: 90 02 bcc $11ed +11eb: 48 ff eor a,#$ff +11ed: fd mov y,a +11ee: f4 96 mov a,$96+x +11f0: 68 f1 cmp a,#$f1 +11f2: 90 05 bcc $11f9 +11f4: 28 0f and a,#$0f +11f6: cf mul ya +11f7: 2f 04 bra $11fd +11f9: cf mul ya +11fa: dd mov a,y +11fb: 8d 00 mov y,#$00 +11fd: 3f 7a 12 call $127a +1200: 5f 6e 0a jmp $0a6e + +1203: bb 95 inc $95+x +1205: e3 13 f8 bbs7 $13,$1200 +1208: 6f ret + +1209: f2 13 clr7 $13 +120b: f4 a6 mov a,$a6+x +120d: f0 09 beq $1218 +120f: f5 60 03 mov a,$0360+x +1212: de a5 03 cbne $a5+x,$1218 +1215: 3f 82 12 call $1282 +1218: f5 91 02 mov a,$0291+x +121b: fd mov y,a +121c: f5 90 02 mov a,$0290+x +121f: da 10 movw $10,ya +1221: f4 76 mov a,$76+x +1223: f0 0a beq $122f +1225: f5 a1 02 mov a,$02a1+x +1228: fd mov y,a +1229: f5 a0 02 mov a,$02a0+x +122c: 3f 64 12 call $1264 +122f: f3 13 03 bbc7 $13,$1235 +1232: 3f a2 10 call $10a2 +1235: f2 13 clr7 $13 +1237: 3f 00 10 call $1000 +123a: f4 85 mov a,$85+x +123c: f0 0e beq $124c +123e: f4 86 mov a,$86+x +1240: d0 0a bne $124c +1242: f5 d1 02 mov a,$02d1+x +1245: fd mov y,a +1246: f5 d0 02 mov a,$02d0+x +1249: 3f 64 12 call $1264 +124c: f4 96 mov a,$96+x +124e: f0 b5 beq $1205 +1250: f5 30 03 mov a,$0330+x +1253: de 95 af cbne $95+x,$1205 +1256: eb 3b mov y,$3b +1258: f5 11 03 mov a,$0311+x +125b: cf mul ya +125c: dd mov a,y +125d: 60 clrc +125e: 95 10 03 adc a,$0310+x +1261: 5f e5 11 jmp $11e5 + +1264: e2 13 set7 $13 +1266: cb 12 mov $12,y +1268: 3f 43 10 call $1043 +126b: 6d push y +126c: eb 3b mov y,$3b +126e: cf mul ya +126f: cb 14 mov $14,y +1271: 8f 00 15 mov $15,#$00 +1274: eb 3b mov y,$3b +1276: ae pop a +1277: cf mul ya +1278: 7a 14 addw ya,$14 +127a: 3f 43 10 call $1043 +127d: 7a 10 addw ya,$10 +127f: da 10 movw $10,ya +1281: 6f ret + +1282: e2 13 set7 $13 +1284: eb 3b mov y,$3b +1286: f5 51 03 mov a,$0351+x +1289: cf mul ya +128a: dd mov a,y +128b: 60 clrc +128c: 95 50 03 adc a,$0350+x +128f: 1c asl a +1290: 90 02 bcc $1294 +1292: 48 ff eor a,#$ff +1294: fb a6 mov y,$a6+x +1296: cf mul ya +1297: dd mov a,y +1298: 48 ff eor a,#$ff +129a: eb 43 mov y,$43 +129c: cf mul ya +129d: f5 10 02 mov a,$0210+x +12a0: cf mul ya +12a1: f5 51 02 mov a,$0251+x +12a4: cf mul ya +12a5: dd mov a,y +12a6: cf mul ya +12a7: dd mov a,y +12a8: d5 71 02 mov $0271+x,a +12ab: 6f ret + +12ac: db $7f,$00,$00,$00,$00,$00,$00,$00 +12b4: db $58,$bf,$db,$f0,$fe,$07,$0c,$0c +12bc: db $0c,$21,$2b,$2b,$13,$fe,$f3,$f9 +12c4: db $34,$33,$00,$d9,$e5,$01,$fc,$eb + +12cc: db $32,$65,$7f,$98,$b2,$cb,$e5,$fc + +12d4: db $19,$32,$4c,$65,$72,$7f,$8c,$98 + +12dc: db $a5,$b2,$bf,$cb,$d8,$e5,$f2,$fc diff --git a/snes/Sculptured Software/Mortal Kombat 3 ($0700).bin b/snes/Sculptured Software/Mortal Kombat 3 ($0700).bin new file mode 100644 index 00000000..f5d81d63 Binary files /dev/null and b/snes/Sculptured Software/Mortal Kombat 3 ($0700).bin differ diff --git a/snes/Sculptured Software/Mortal Kombat 3.s b/snes/Sculptured Software/Mortal Kombat 3.s new file mode 100644 index 00000000..dfb35fc3 --- /dev/null +++ b/snes/Sculptured Software/Mortal Kombat 3.s @@ -0,0 +1,2646 @@ +0700: 20 clrp +0701: cd ff mov x,#$ff ; set stack pointer +0703: bd mov sp,x +0704: 8f a0 fa mov $fa,#$a0 ; stop all timers +0707: 8f a0 fb mov $fb,#$a0 +070a: 8f 20 fc mov $fc,#$20 +070d: 8f 87 f1 mov $f1,#$87 ; clear COM ports +0710: 3f 9f 10 call $109f ; initialize all sound +0713: 8f 00 24 mov $24,#$00 +0716: 8f 1f 25 mov $25,#$1f ; install permanent pointer to the wave source dir +0719: 8f 01 f6 mov $f6,#$01 +071c: 62 08 set3 $08 +071e: 3f f3 0b call $0bf3 +0721: 3f 63 0b call $0b63 +0724: 33 07 f7 bbc1 $07,$071e +0727: 8d 10 mov y,#$10 +0729: 3f 4a 07 call $074a +072c: 83 07 12 bbs4 $07,$0741 +072f: e4 fe mov a,$fe +0731: f0 0e beq $0741 +0733: e4 cd mov a,$cd +0735: f0 07 beq $073e +0737: 60 clrc +0738: 84 ce adc a,$ce +073a: c4 ce mov $ce,a +073c: 90 03 bcc $0741 +073e: 3f f0 16 call $16f0 +0741: e4 fd mov a,$fd +0743: f0 d9 beq $071e +0745: 3f 30 08 call $0830 +0748: 2f d4 bra $071e +074a: e4 ff mov a,$ff +074c: d0 03 bne $0751 +074e: e8 01 mov a,#$01 +0750: 6f ret + +0751: cb 3b mov $3b,y +0753: 8f 00 3a mov $3a,#$00 +0756: cd 14 mov x,#$14 +0758: e4 f6 mov a,$f6 +075a: f0 03 beq $075f +075c: 3f f3 0b call $0bf3 +075f: eb 3b mov y,$3b +0761: f5 ff 07 mov a,$07ff+x +0764: c4 f2 mov $f2,a +0766: f5 28 02 mov a,$0228+x +0769: fa f3 3c mov ($3c),($f3) +076c: 64 3c cmp a,$3c +076e: f0 0f beq $077f +0770: b0 09 bcs $077b +0772: 8b 3c dec $3c +0774: dc dec y +0775: d0 f5 bne $076c +0777: ab 3a inc $3a +0779: 2f 04 bra $077f +077b: ab 3c inc $3c +077d: 2f f5 bra $0774 +077f: fa 3c f3 mov ($f3),($3c) +0782: 1d dec x +0783: 10 d3 bpl $0758 +0785: e4 3a mov a,$3a +0787: 6f ret + +0788: e2 08 set7 $08 +078a: 2f 02 bra $078e +078c: f2 08 clr7 $08 +078e: 72 08 clr3 $08 +0790: 8d 80 mov y,#$80 +0792: 3f 52 0d call $0d52 +0795: 3f ed 10 call $10ed +0798: 8f 6c f2 mov $f2,#$6c +079b: 8f 3f f3 mov $f3,#$3f +079e: e3 08 0f bbs7 $08,$07b0 +07a1: cd 00 mov x,#$00 +07a3: f5 80 fe mov a,$fe80+x +07a6: af mov (x)+,a +07a7: c8 61 cmp x,#$61 +07a9: 90 f8 bcc $07a3 +07ab: 5f 00 00 jmp $0000 + +07ae: 4f c0 pcall $c0 +07b0: 5f 00 07 jmp $0700 + +; gain tables +07b3: db $ff,$d6,$a0,$80,$6b,$50,$40,$36,$28,$20,$1b,$14,$10,$0e,$0b,$08,$06,$05,$04,$03,$02,$01 +07c9: db $1d,$1c,$1b,$1a,$19,$18,$17,$16,$15,$14,$13,$12,$11,$10,$0f,$0e,$0d,$0c,$0a,$09,$06,$00 + +; DSP registers: VxENVX +07df: db $08,$18,$28,$38,$48,$58,$68,$78 +; DSP registers: VxGAIN +07e7: db $07,$17,$27,$37,$47,$57,$67,$77 +; DSP registers: VxSCRN (select sample) +07ef: db $04,$14,$24,$34,$44,$54,$64,$74 +; DSP registers: VxPITCHL +07f7: db $02,$12,$22,$32,$42,$52,$62,$72 +; DSP registers: VxVOLL +07ff: db $00,$10,$20,$30,$40,$50,$60,$70,$01,$11,$21,$31,$41,$51,$61,$71,$2c,$3c,$0d,$0c,$1c + +; voice numbers and bits for clearing those void bits +0814: db $01,$02,$04,$08,$10,$20,$40,$80,$fe,$fd,$fb,$f7,$ef,$df,$bf,$7f + +; echo poke registers +0824: db $7d,$2c,$3c,$0d,$0f,$1f,$2f,$3f,$4f,$5f,$6f,$7f + +0830: 3f f3 0b call $0bf3 ; que command +0833: 8f 00 49 mov $49,#$00 ; reset sample flags +0836: 8f 00 5b mov $5b,#$00 +0839: 8f 7c f2 mov $f2,#$7c +083c: e4 f3 mov a,$f3 +083e: 24 5e and a,$5e +0840: c4 58 mov $58,a +0842: 8f 00 f3 mov $f3,#$00 +0845: cd 07 mov x,#$07 ; find out all channels changing waves +0847: 3f f3 0b call $0bf3 ; (to restart them, starting with 7) +084a: d8 28 mov $28,x +084c: 7d mov a,x +084d: 60 clrc +084e: 88 10 adc a,#$10 +0850: c4 2d mov $2d,a +0852: f5 14 08 mov a,$0814+x +0855: c4 4a mov $4a,a +0857: 48 ff eor a,#$ff +0859: c4 4b mov $4b,a +085b: f4 67 mov a,$67+x +085d: c4 4d mov $4d,a +085f: a2 08 set5 $08 +0861: 23 4d 06 bbs1 $4d,$086a +0864: f5 ec fc mov a,$fcec+x +0867: 5f 78 08 jmp $0878 + +086a: eb 2d mov y,$2d +086c: f6 e3 04 mov a,$04e3+y +086f: d0 02 bne $0873 +0871: b2 08 clr5 $08 +0873: 3f 7c 12 call $127c +0876: f8 28 mov x,$28 +0878: 75 f4 fc cmp a,$fcf4+x +087b: d0 0d bne $088a +087d: 3f 3a 14 call $143a +0880: e4 63 mov a,$63 +0882: 24 5c and a,$5c +0884: 24 4a and a,$4a +0886: d0 43 bne $08cb +0888: 2f 44 bra $08ce +088a: d5 f4 fc mov $fcf4+x,a +088d: 09 4a 49 or ($49),($4a) +0890: 3f 3a 14 call $143a +0893: 7d mov a,x +0894: 1c asl a +0895: 5d mov x,a +0896: e5 04 01 mov a,$0104 +0899: d5 4b 01 mov $014b+x,a +089c: e5 05 01 mov a,$0105 +089f: d5 4c 01 mov $014c+x,a +08a2: f8 28 mov x,$28 +08a4: e4 64 mov a,$64 +08a6: 28 20 and a,#$20 +08a8: f0 05 beq $08af +08aa: 29 4b 59 and ($59),($4b) +08ad: 2f 03 bra $08b2 +08af: 09 4a 59 or ($59),($4a) +08b2: b3 08 0b bbc5 $08,$08c0 +08b5: e4 64 mov a,$64 +08b7: 28 40 and a,#$40 +08b9: f0 05 beq $08c0 +08bb: 09 4a 63 or ($63),($4a) +08be: 2f 03 bra $08c3 +08c0: 29 4b 63 and ($63),($4b) +08c3: e4 63 mov a,$63 +08c5: 04 5c or a,$5c +08c7: 24 4a and a,$4a +08c9: f0 03 beq $08ce +08cb: 09 4a 5b or ($5b),($4a) +08ce: 1d dec x +08cf: 30 03 bmi $08d4 +08d1: 5f 47 08 jmp $0847 + +08d4: e4 5c mov a,$5c +08d6: 24 59 and a,$59 +08d8: 04 5a or a,$5a +08da: c4 5a mov $5a,a +08dc: 24 5a and a,$5a +08de: 04 5b or a,$5b +08e0: c4 5d mov $5d,a +08e2: 8f 5c f2 mov $f2,#$5c +08e5: c4 f3 mov $f3,a +08e7: cd 07 mov x,#$07 +08e9: 3f f3 0b call $0bf3 +08ec: d8 28 mov $28,x +08ee: f5 14 08 mov a,$0814+x +08f1: c4 4a mov $4a,a +08f3: 7d mov a,x +08f4: 60 clrc +08f5: 88 18 adc a,#$18 +08f7: c4 2d mov $2d,a +08f9: e5 a2 03 mov a,$03a2 +08fc: d0 12 bne $0910 +08fe: f4 67 mov a,$67+x +0900: c4 4d mov $4d,a +0902: 63 4d 06 bbs3 $4d,$090b +0905: f5 e4 fc mov a,$fce4+x +0908: 5f 10 09 jmp $0910 + +090b: 3f 7c 12 call $127c +090e: f8 28 mov x,$28 +0910: 60 clrc +0911: 95 9a 03 adc a,$039a+x +0914: 30 06 bmi $091c +0916: 70 04 bvs $091c +0918: 68 65 cmp a,#$65 +091a: 30 0b bmi $0927 +091c: f5 9a 03 mov a,$039a+x +091f: 30 04 bmi $0925 +0921: e8 64 mov a,#$64 +0923: 2f 02 bra $0927 +0925: e8 00 mov a,#$00 +0927: fd mov y,a +0928: f5 43 01 mov a,$0143+x +092b: c4 3c mov $3c,a +092d: cf mul ya +092e: cd 64 mov x,#$64 +0930: 9e div ya,x +0931: f8 28 mov x,$28 +0933: 73 4d 14 bbc3 $4d,$094a +0936: c4 3a mov $3a,a +0938: 6d push y +0939: eb 2d mov y,$2d +093b: f6 c3 03 mov a,$03c3+y +093e: ee pop y +093f: d0 04 bne $0945 +0941: e4 3a mov a,$3a +0943: 2f 05 bra $094a +0945: e4 3c mov a,$3c +0947: 80 setc +0948: a4 3a sbc a,$3a +094a: c4 3a mov $3a,a +094c: d5 28 02 mov $0228+x,a +094f: e4 3c mov a,$3c +0951: 80 setc +0952: a4 3a sbc a,$3a +0954: d5 30 02 mov $0230+x,a +0957: 1d dec x +0958: 30 03 bmi $095d +095a: 5f e9 08 jmp $08e9 + +095d: cd 07 mov x,#$07 ; process pitch envelopes (start with ch 7) +095f: 3f f3 0b call $0bf3 +0962: d8 28 mov $28,x +0964: 7d mov a,x +0965: 60 clrc +0966: 88 08 adc a,#$08 +0968: c4 2d mov $2d,a +096a: f4 67 mov a,$67+x +096c: c4 4d mov $4d,a +096e: 7d mov a,x +096f: 1c asl a +0970: 5d mov x,a +0971: f5 d5 fc mov a,$fcd5+x +0974: c4 48 mov $48,a +0976: f5 d4 fc mov a,$fcd4+x +0979: c4 47 mov $47,a +097b: 53 4d 15 bbc2 $4d,$0993 +097e: 4d push x +097f: 42 08 set2 $08 +0981: 3f 7c 12 call $127c +0984: 52 08 clr2 $08 +0986: ce pop x +0987: 7a 47 addw ya,$47 +0989: 80 setc +098a: a8 b0 sbc a,#$b0 +098c: c4 47 mov $47,a +098e: dd mov a,y +098f: a8 04 sbc a,#$04 +0991: c4 48 mov $48,a +0993: f5 4c 01 mov a,$014c+x +0996: fd mov y,a +0997: f5 4b 01 mov a,$014b+x +099a: 7a 47 addw ya,$47 +099c: da 3a movw $3a,ya +099e: fb db mov y,$db+x +09a0: f4 da mov a,$da+x +09a2: 7a 3a addw ya,$3a +09a4: c3 4d 03 bbs6 $4d,$09aa +09a7: 3f bc 14 call $14bc ; translate note to frequency +09aa: da 3a movw $3a,ya ; add in hardware tuning +09ac: e4 28 mov a,$28 ; word addressing +09ae: 1c asl a +09af: 5d mov x,a +09b0: f5 5c 01 mov a,$015c+x +09b3: fd mov y,a +09b4: f5 5b 01 mov a,$015b+x +09b7: 7a 3a addw ya,$3a +09b9: f8 28 mov x,$28 +09bb: d5 33 01 mov $0133+x,a +09be: dd mov a,y +09bf: d5 3b 01 mov $013b+x,a +09c2: 1d dec x +09c3: 10 9a bpl $095f +09c5: 8f 5c f2 mov $f2,#$5c +09c8: 8f 00 f3 mov $f3,#$00 +09cb: cd 07 mov x,#$07 +09cd: 3f f3 0b call $0bf3 +09d0: d8 28 mov $28,x +09d2: 7d mov a,x +09d3: 60 clrc +09d4: 88 00 adc a,#$00 +09d6: c4 2d mov $2d,a +09d8: f5 14 08 mov a,$0814+x +09db: c4 4a mov $4a,a +09dd: 48 ff eor a,#$ff +09df: c4 4b mov $4b,a +09e1: f4 67 mov a,$67+x +09e3: c4 4d mov $4d,a +09e5: 03 4d 07 bbs0 $4d,$09ef +09e8: f5 23 01 mov a,$0123+x +09eb: fd mov y,a +09ec: 5f fc 09 jmp $09fc + +09ef: 3f 7c 12 call $127c +09f2: fd mov y,a +09f3: f8 28 mov x,$28 +09f5: b3 07 04 bbc5 $07,$09fc +09f8: e8 00 mov a,#$00 +09fa: d4 6f mov $6f+x,a +09fc: e8 80 mov a,#$80 +09fe: de 6f 04 cbne $6f+x,$0a05 +0a01: e4 60 mov a,$60 +0a03: 2f 02 bra $0a07 +0a05: e4 5f mov a,$5f +0a07: cf mul ya +0a08: f5 92 03 mov a,$0392+x +0a0b: cf mul ya +0a0c: dd mov a,y +0a0d: d5 2b 01 mov $012b+x,a +0a10: 8f c0 39 mov $39,#$c0 +0a13: f5 df 07 mov a,$07df+x +0a16: c4 f2 mov $f2,a +0a18: dd mov a,y +0a19: 80 setc +0a1a: a4 f3 sbc a,$f3 +0a1c: b0 06 bcs $0a24 +0a1e: 8f 80 39 mov $39,#$80 +0a21: 48 ff eor a,#$ff +0a23: bc inc a +0a24: c4 3e mov $3e,a +0a26: e4 4a mov a,$4a +0a28: 24 57 and a,$57 +0a2a: d0 06 bne $0a32 +0a2c: e4 56 mov a,$56 +0a2e: 24 4a and a,$4a +0a30: d0 23 bne $0a55 +0a32: e4 3e mov a,$3e +0a34: 5c lsr a +0a35: d0 08 bne $0a3f +0a37: ad 00 cmp y,#$00 +0a39: d0 04 bne $0a3f +0a3b: e8 82 mov a,#$82 +0a3d: 2f 0e bra $0a4d +0a3f: 8d 15 mov y,#$15 +0a41: 76 b3 07 cmp a,$07b3+y +0a44: 90 02 bcc $0a48 +0a46: fe f9 dbnz y,$0a41 +0a48: f6 c9 07 mov a,$07c9+y +0a4b: 04 39 or a,$39 +0a4d: 75 cc fc cmp a,$fccc+x +0a50: f0 41 beq $0a93 +0a52: fd mov y,a +0a53: 2f 17 bra $0a6c +0a55: 8f 00 39 mov $39,#$00 +0a58: e4 3e mov a,$3e +0a5a: 68 60 cmp a,#$60 +0a5c: 90 0e bcc $0a6c +0a5e: ad 60 cmp y,#$60 +0a60: 90 04 bcc $0a66 +0a62: 8d df mov y,#$df +0a64: 2f 06 bra $0a6c +0a66: ad 20 cmp y,#$20 +0a68: b0 02 bcs $0a6c +0a6a: 8d 9e mov y,#$9e +0a6c: 29 4b 56 and ($56),($4b) +0a6f: f5 ff 07 mov a,$07ff+x +0a72: c4 f2 mov $f2,a +0a74: f5 28 02 mov a,$0228+x +0a77: 2d push a +0a78: e4 4a mov a,$4a +0a7a: 24 57 and a,$57 +0a7c: ae pop a +0a7d: d0 09 bne $0a88 +0a7f: c4 f3 mov $f3,a +0a81: ab f2 inc $f2 +0a83: f5 30 02 mov a,$0230+x +0a86: c4 f3 mov $f3,a +0a88: f5 e7 07 mov a,$07e7+x +0a8b: c4 f2 mov $f2,a +0a8d: cb f3 mov $f3,y +0a8f: dd mov a,y +0a90: d5 cc fc mov $fccc+x,a +0a93: f5 f7 07 mov a,$07f7+x +0a96: c4 f2 mov $f2,a +0a98: fd mov y,a +0a99: f5 33 01 mov a,$0133+x +0a9c: c4 f3 mov $f3,a +0a9e: fc inc y +0a9f: cb f2 mov $f2,y +0aa1: f5 3b 01 mov a,$013b+x +0aa4: c4 f3 mov $f3,a +0aa6: 1d dec x +0aa7: 30 03 bmi $0aac +0aa9: 5f cd 09 jmp $09cd + +0aac: 8f 4c f2 mov $f2,#$4c +0aaf: fa 5d f3 mov ($f3),($5d) +0ab2: e4 5d mov a,$5d +0ab4: 48 ff eor a,#$ff +0ab6: c4 5e mov $5e,a +0ab8: 29 5e 58 and ($58),($5e) +0abb: 29 5e 5a and ($5a),($5e) +0abe: 8f 00 5c mov $5c,#$00 +0ac1: 3f f3 0b call $0bf3 +0ac4: 8d 07 mov y,#$07 +0ac6: cd 0e mov x,#$0e +0ac8: 3f f3 0b call $0bf3 +0acb: f6 6f 00 mov a,$006f+y +0ace: f0 31 beq $0b01 +0ad0: f6 67 00 mov a,$0067+y +0ad3: c4 4d mov $4d,a +0ad5: f3 4d 07 bbc7 $4d,$0adf +0ad8: f6 14 08 mov a,$0814+y +0adb: 24 58 and a,$58 +0add: d0 1d bne $0afc +0adf: f6 6f 00 mov a,$006f+y +0ae2: 68 80 cmp a,#$80 +0ae4: d0 1b bne $0b01 +0ae6: f6 46 02 mov a,$0246+y +0ae9: 28 02 and a,#$02 +0aeb: d0 14 bne $0b01 +0aed: 9b 78 dec $78+x +0aef: f4 78 mov a,$78+x +0af1: 2e 05 02 cbne $05,$0af6 +0af4: 9b 79 dec $79+x +0af6: f4 78 mov a,$78+x +0af8: 14 79 or a,$79+x +0afa: d0 05 bne $0b01 +0afc: e8 00 mov a,#$00 +0afe: d6 6f 00 mov $006f+y,a +0b01: 1d dec x +0b02: 1d dec x +0b03: dc dec y +0b04: 10 c2 bpl $0ac8 +0b06: 3f f3 0b call $0bf3 +0b09: ec 43 02 mov y,$0243 +0b0c: f0 54 beq $0b62 +0b0e: 6e cf 51 dbnz $cf,$0b62 +0b11: cb cf mov $cf,y +0b13: e5 3b 02 mov a,$023b +0b16: f8 d0 mov x,$d0 +0b18: 30 0d bmi $0b27 +0b1a: 60 clrc +0b1b: 84 d1 adc a,$d1 +0b1d: b0 04 bcs $0b23 +0b1f: 68 7f cmp a,#$7f +0b21: 90 12 bcc $0b35 +0b23: e8 7f mov a,#$7f +0b25: 2f 09 bra $0b30 +0b27: 80 setc +0b28: a4 d1 sbc a,$d1 +0b2a: f0 04 beq $0b30 +0b2c: b0 07 bcs $0b35 +0b2e: e8 00 mov a,#$00 +0b30: 8d 00 mov y,#$00 +0b32: cc 43 02 mov $0243,y +0b35: 5d mov x,a +0b36: 65 44 02 cmp a,$0244 +0b39: 90 03 bcc $0b3e +0b3b: e5 44 02 mov a,$0244 +0b3e: c5 38 02 mov $0238,a +0b41: 7d mov a,x +0b42: c5 3b 02 mov $023b,a +0b45: c5 3c 02 mov $023c,a +0b48: 65 45 02 cmp a,$0245 +0b4b: 90 03 bcc $0b50 +0b4d: e5 45 02 mov a,$0245 +0b50: c5 39 02 mov $0239,a +0b53: e5 43 02 mov a,$0243 +0b56: d0 0a bne $0b62 +0b58: aa 07 40 mov1 c,$0007,2 +0b5b: 90 05 bcc $0b62 +0b5d: 8d 80 mov y,#$80 +0b5f: 5f 52 0d jmp $0d52 + +0b62: 6f ret + +0b63: 32 08 clr1 $08 +0b65: e4 ea mov a,$ea +0b67: f0 3a beq $0ba3 +0b69: 9c dec a +0b6a: c4 ea mov $ea,a +0b6c: f8 ec mov x,$ec +0b6e: f5 87 10 mov a,$1087+x +0b71: 28 fe and a,#$fe +0b73: c4 30 mov $30,a +0b75: c4 f7 mov $f7,a +0b77: f5 04 fd mov a,$fd04+x +0b7a: c4 31 mov $31,a +0b7c: c4 f4 mov $f4,a +0b7e: f5 1c fd mov a,$fd1c+x +0b81: c4 f5 mov $f5,a +0b83: c4 32 mov $32,a +0b85: 3d inc x +0b86: c8 18 cmp x,#$18 +0b88: d0 02 bne $0b8c +0b8a: cd 00 mov x,#$00 +0b8c: d8 ec mov $ec,x +0b8e: e4 30 mov a,$30 +0b90: 5d mov x,a +0b91: 28 fe and a,#$fe +0b93: c8 4d cmp x,#$4d +0b95: b0 0c bcs $0ba3 +0b97: e4 31 mov a,$31 +0b99: eb 32 mov y,$32 +0b9b: 3f a4 0b call $0ba4 +0b9e: 3f f3 0b call $0bf3 +0ba1: 2f c0 bra $0b63 +0ba3: 6f ret + +0ba4: 1f 00 1e jmp ($1e00+x) + +0ba7: 79 cmp (x),(y) +0ba8: 0c 40 0c asl $0c40 +0bab: 40 setp +0bac: 0c 40 0c asl $0c40 +0baf: 40 setp +0bb0: 0c 3b 0c asl $0c3b +0bb3: 8c 07 40 dec $4007 +0bb6: 0c 40 0c asl $0c40 +0bb9: 40 setp +0bba: 0c 40 0c asl $0c40 +0bbd: 40 setp +0bbe: 0c 40 0c asl $0c40 +0bc1: 40 setp +0bc2: 0c 4e 1e asl $1e4e +0bc5: 40 setp +0bc6: 0c 8a 0c asl $0c8a +0bc9: 40 setp +0bca: 0c 40 0c asl $0c40 +0bcd: 40 setp +0bce: 0c 40 0c asl $0c40 +0bd1: 40 setp +0bd2: 0c 40 0c asl $0c40 +0bd5: 40 setp +0bd6: 0c 40 0c asl $0c40 +0bd9: 40 setp +0bda: 0c 40 0c asl $0c40 +0bdd: 40 setp +0bde: 0c 40 0c asl $0c40 +0be1: 40 setp +0be2: 0c 40 0c asl $0c40 +0be5: 40 setp +0be6: 0c 40 0c asl $0c40 +0be9: 40 setp +0bea: 0c 40 0c asl $0c40 +0bed: 88 07 adc a,#$07 +0bef: 40 setp +0bf0: 0c 58 1e asl $1e58 +0bf3: 73 08 0c bbc3 $08,$0c02 +0bf6: 2d push a +0bf7: 32 09 clr1 $09 +0bf9: e4 f6 mov a,$f6 +0bfb: 2e f6 fb cbne $f6,$0bf9 +0bfe: 2e 03 02 cbne $03,$0c03 +0c01: ae pop a +0c02: 6f ret + +0c03: 2e ed 02 cbne $ed,$0c08 +0c06: ae pop a +0c07: 6f ret + +0c08: 22 09 set1 $09 +0c0a: fa ed ee mov ($ee),($ed) +0c0d: c4 ed mov $ed,a +0c0f: fa f4 f4 mov ($f4),($f4) +0c12: fa f5 f5 mov ($f5),($f5) +0c15: fa f7 f7 mov ($f7),($f7) +0c18: e4 f7 mov a,$f7 +0c1a: f0 e5 beq $0c01 +0c1c: 6d push y +0c1d: 4d push x +0c1e: 5d mov x,a +0c1f: c4 30 mov $30,a +0c21: 68 4d cmp a,#$4d +0c23: b0 0c bcs $0c31 +0c25: ba f4 movw ya,$f4 +0c27: da 31 movw $31,ya +0c29: 69 f6 ed cmp ($ed),($f6) +0c2c: d0 03 bne $0c31 +0c2e: 3f 38 0c call $0c38 +0c31: ce pop x +0c32: ee pop y +0c33: ae pop a +0c34: 23 09 bc bbs1 $09,$0bf3 +0c37: 6f ret + +0c38: 1f a5 0b jmp ($0ba5+x) + +0c3b: 6f ret + +0c3c: d8 31 mov $31,x +0c3e: 2f 0b bra $0c4b +0c40: 23 08 08 bbs1 $08,$0c4b +0c43: e4 f6 mov a,$f6 +0c45: 8f b7 f1 mov $f1,#$b7 +0c48: c4 f6 mov $f6,a +0c4a: 7d mov a,x +0c4b: 23 08 25 bbs1 $08,$0c73 +0c4e: f8 eb mov x,$eb +0c50: d5 87 10 mov $1087+x,a +0c53: e4 31 mov a,$31 +0c55: d5 04 fd mov $fd04+x,a +0c58: dd mov a,y +0c59: d5 1c fd mov $fd1c+x,a +0c5c: 3d inc x +0c5d: c8 18 cmp x,#$18 +0c5f: d0 02 bne $0c63 +0c61: cd 00 mov x,#$00 +0c63: d8 eb mov $eb,x +0c65: e4 ea mov a,$ea +0c67: bc inc a +0c68: c4 ea mov $ea,a +0c6a: 68 18 cmp a,#$18 +0c6c: d0 0a bne $0c78 +0c6e: 22 08 set1 $08 +0c70: 32 09 clr1 $09 +0c72: 6f ret + +0c73: fa ee ed mov ($ed),($ee) +0c76: 32 09 clr1 $09 +0c78: 6f ret + +0c79: e4 f6 mov a,$f6 +0c7b: 8f b7 f1 mov $f1,#$b7 +0c7e: 2d push a +0c7f: 72 08 clr3 $08 +0c81: 3f e2 0c call $0ce2 +0c84: 62 08 set3 $08 +0c86: ae pop a +0c87: c4 f6 mov $f6,a +0c89: 6f ret + +0c8a: 8d 00 mov y,#$00 +0c8c: e8 01 mov a,#$01 +0c8e: da 1a movw $1a,ya +0c90: e4 f6 mov a,$f6 +0c92: 2e f6 fb cbne $f6,$0c90 +0c95: 5d mov x,a +0c96: ba f4 movw ya,$f4 +0c98: ad 00 cmp y,#$00 +0c9a: f0 3e beq $0cda +0c9c: 8f b7 f1 mov $f1,#$b7 +0c9f: d8 f6 mov $f6,x +0ca1: c5 c5 0c mov $0cc5,a +0ca4: cc c6 0c mov $0cc6,y +0ca7: 7a 1a addw ya,$1a +0ca9: c5 cc 0c mov $0ccc,a +0cac: cc cd 0c mov $0ccd,y +0caf: 7a 1a addw ya,$1a +0cb1: c5 d3 0c mov $0cd3,a +0cb4: cc d4 0c mov $0cd4,y +0cb7: cd 00 mov x,#$00 +0cb9: e4 f6 mov a,$f6 +0cbb: 2e f6 fb cbne $f6,$0cb9 +0cbe: d0 02 bne $0cc2 +0cc0: 2f f7 bra $0cb9 +0cc2: e4 f4 mov a,$f4 +0cc4: d5 36 ba mov $ba36+x,a +0cc7: ba f5 movw ya,$f5 +0cc9: 30 c5 bmi $0c90 +0ccb: d5 37 ba mov $ba37+x,a +0cce: e4 f7 mov a,$f7 +0cd0: cb f6 mov $f6,y +0cd2: d5 38 ba mov $ba38+x,a +0cd5: 3d inc x +0cd6: 3d inc x +0cd7: 3d inc x +0cd8: 2f e8 bra $0cc2 +0cda: 8f b7 f1 mov $f1,#$b7 +0cdd: d8 ed mov $ed,x +0cdf: d8 f6 mov $f6,x +0ce1: 6f ret + +0ce2: 3f 12 11 call $1112 +0ce5: 3f 08 11 call $1108 +0ce8: 22 07 set1 $07 +0cea: 6f ret + +0ceb: c5 a2 03 mov $03a2,a +0cee: 6f ret + +0cef: e8 00 mov a,#$00 +0cf1: c5 43 02 mov $0243,a +0cf4: 6f ret + +0cf5: cd 01 mov x,#$01 +0cf7: 52 07 clr2 $07 +0cf9: 2f 02 bra $0cfd +0cfb: cd ff mov x,#$ff +0cfd: c5 43 02 mov $0243,a +0d00: c4 cf mov $cf,a +0d02: cb d1 mov $d1,y +0d04: d8 d0 mov $d0,x +0d06: 6f ret + +0d07: 2d push a +0d08: dd mov a,y +0d09: 28 7f and a,#$7f +0d0b: c5 3e 02 mov $023e,a +0d0e: ae pop a +0d0f: 92 08 clr4 $08 +0d11: 2f 05 bra $0d18 +0d13: cc 40 02 mov $0240,y +0d16: 82 08 set4 $08 +0d18: 5f ae 0d jmp $0dae + +0d1b: 3f 93 1c call $1c93 +0d1e: e5 fc 1e mov a,$1efc +0d21: c5 8b 06 mov $068b,a +0d24: e5 fd 1e mov a,$1efd +0d27: c5 8c 06 mov $068c,a +0d2a: 05 8b 06 or a,$068b +0d2d: f0 20 beq $0d4f +0d2f: 3f f0 16 call $16f0 +0d32: e5 8b 06 mov a,$068b +0d35: 80 setc +0d36: a8 01 sbc a,#$01 +0d38: c5 8b 06 mov $068b,a +0d3b: e5 8c 06 mov a,$068c +0d3e: a8 00 sbc a,#$00 +0d40: c5 8c 06 mov $068c,a +0d43: b0 ea bcs $0d2f +0d45: cd 07 mov x,#$07 +0d47: e8 00 mov a,#$00 +0d49: d5 43 01 mov $0143+x,a +0d4c: 1d dec x +0d4d: 10 fa bpl $0d49 +0d4f: 6f ret + +0d50: 8d ff mov y,#$ff +0d52: cd 07 mov x,#$07 +0d54: ad 80 cmp y,#$80 +0d56: f0 04 beq $0d5c +0d58: ad ff cmp y,#$ff +0d5a: d0 08 bne $0d64 +0d5c: 82 07 set4 $07 +0d5e: 8f 00 89 mov $89,#$00 +0d61: 8f ff 0c mov $0c,#$ff +0d64: c4 77 mov $77,a +0d66: ad 80 cmp y,#$80 +0d68: f0 1b beq $0d85 +0d6a: f4 d2 mov a,$d2+x +0d6c: 68 ff cmp a,#$ff +0d6e: f0 30 beq $0da0 +0d70: 68 00 cmp a,#$00 +0d72: 10 06 bpl $0d7a +0d74: ad ff cmp y,#$ff +0d76: f0 0d beq $0d85 +0d78: 2f 26 bra $0da0 +0d7a: ad 00 cmp y,#$00 +0d7c: d0 07 bne $0d85 +0d7e: f5 1b 01 mov a,$011b+x +0d81: 64 77 cmp a,$77 +0d83: d0 1b bne $0da0 +0d85: f5 e7 07 mov a,$07e7+x +0d88: c4 f2 mov $f2,a +0d8a: 8f 9f f3 mov $f3,#$9f +0d8d: f5 ef 07 mov a,$07ef+x +0d90: e8 00 mov a,#$00 +0d92: d5 23 01 mov $0123+x,a +0d95: d4 6f mov $6f+x,a +0d97: d4 67 mov $67+x,a +0d99: f5 14 08 mov a,$0814+x +0d9c: 04 5c or a,$5c +0d9e: c4 5c mov $5c,a +0da0: 1d dec x +0da1: 10 c3 bpl $0d66 +0da3: 6f ret + +0da4: 52 07 clr2 $07 +0da6: 5f fb 0c jmp $0cfb + +0da9: 42 07 set2 $07 +0dab: 5f fb 0c jmp $0cfb + +0dae: 8d 0e mov y,#$0e +0db0: c4 77 mov $77,a +0db2: 3f 63 10 call $1063 +0db5: da 22 movw $22,ya +0db7: 8d 00 mov y,#$00 +0db9: f7 22 mov a,($22)+y +0dbb: c4 52 mov $52,a +0dbd: 3a 22 incw $22 +0dbf: 8d 07 mov y,#$07 +0dc1: f7 22 mov a,($22)+y +0dc3: 24 0c and a,$0c +0dc5: c4 53 mov $53,a +0dc7: 8d 06 mov y,#$06 +0dc9: f7 22 mov a,($22)+y +0dcb: c4 54 mov $54,a +0dcd: 8f 80 55 mov $55,#$80 +0dd0: cd 07 mov x,#$07 +0dd2: 3f 89 0e call $0e89 +0dd5: 10 03 bpl $0dda +0dd7: 5f 5b 0e jmp $0e5b + +0dda: 83 08 07 bbs4 $08,$0de4 +0ddd: e8 02 mov a,#$02 +0ddf: 15 46 02 or a,$0246+x +0de2: 2f 05 bra $0de9 +0de4: e8 fd mov a,#$fd +0de6: 35 46 02 and a,$0246+x +0de9: d5 46 02 mov $0246+x,a +0dec: e8 80 mov a,#$80 +0dee: d4 6f mov $6f+x,a +0df0: e5 3e 02 mov a,$023e +0df3: d4 d2 mov $d2+x,a +0df5: e5 3f 02 mov a,$023f +0df8: d5 92 03 mov $0392+x,a +0dfb: e5 40 02 mov a,$0240 +0dfe: d5 9a 03 mov $039a+x,a +0e01: e5 8e 03 mov a,$038e +0e04: c4 0f mov $0f,a +0e06: e5 90 03 mov a,$0390 +0e09: c4 0e mov $0e,a +0e0b: e5 8f 03 mov a,$038f +0e0e: c4 10 mov $10,a +0e10: e5 91 03 mov a,$0391 +0e13: c4 11 mov $11,a +0e15: 7d mov a,x +0e16: 1c asl a +0e17: fd mov y,a +0e18: e8 00 mov a,#$00 +0e1a: d6 5b 01 mov $015b+y,a +0e1d: d6 5c 01 mov $015c+y,a +0e20: c5 3d 02 mov $023d,a +0e23: e5 41 02 mov a,$0241 +0e26: d6 da 00 mov $00da+y,a +0e29: e5 42 02 mov a,$0242 +0e2c: d6 db 00 mov $00db+y,a +0e2f: e4 77 mov a,$77 +0e31: d5 1b 01 mov $011b+x,a +0e34: 8d 02 mov y,#$02 +0e36: f7 22 mov a,($22)+y +0e38: c4 4e mov $4e,a +0e3a: fc inc y +0e3b: f7 22 mov a,($22)+y +0e3d: c4 4f mov $4f,a +0e3f: 8d 04 mov y,#$04 +0e41: f7 22 mov a,($22)+y +0e43: c4 50 mov $50,a +0e45: fc inc y +0e46: f7 22 mov a,($22)+y +0e48: c4 51 mov $51,a +0e4a: 8d 01 mov y,#$01 +0e4c: f7 22 mov a,($22)+y +0e4e: 2d push a +0e4f: 8d 00 mov y,#$00 +0e51: f7 22 mov a,($22)+y +0e53: 02 07 set0 $07 +0e55: ee pop y +0e56: 72 07 clr3 $07 +0e58: 3f 04 0f call $0f04 +0e5b: 60 clrc +0e5c: 98 08 22 adc $22,#$08 +0e5f: 90 02 bcc $0e63 +0e61: ab 23 inc $23 +0e63: 8b 52 dec $52 +0e65: f0 03 beq $0e6a +0e67: 5f bf 0d jmp $0dbf + +0e6a: e8 00 mov a,#$00 +0e6c: c5 3e 02 mov $023e,a +0e6f: c5 41 02 mov $0241,a +0e72: c5 42 02 mov $0242,a +0e75: c5 40 02 mov $0240,a +0e78: c5 8e 03 mov $038e,a +0e7b: c5 90 03 mov $0390,a +0e7e: c5 8f 03 mov $038f,a +0e81: c5 91 03 mov $0391,a +0e84: 9c dec a +0e85: c5 3f 02 mov $023f,a +0e88: 6f ret + +0e89: 8f 01 0b mov $0b,#$01 +0e8c: 03 09 03 bbs0 $09,$0e92 +0e8f: 8f 00 0b mov $0b,#$00 +0e92: 83 0b 5a bbs4 $0b,$0eef +0e95: 8d 07 mov y,#$07 +0e97: 8f ff 3a mov $3a,#$ff +0e9a: 8f ff 3b mov $3b,#$ff +0e9d: 73 0b 08 bbc3 $0b,$0ea8 +0ea0: c8 08 cmp x,#$08 +0ea2: b0 4b bcs $0eef +0ea4: 8d 00 mov y,#$00 +0ea6: 2f 09 bra $0eb1 +0ea8: 3f f3 0b call $0bf3 +0eab: e4 55 mov a,$55 +0ead: 24 53 and a,$53 +0eaf: f0 1f beq $0ed0 +0eb1: f4 6f mov a,$6f+x +0eb3: f0 41 beq $0ef6 +0eb5: e4 54 mov a,$54 +0eb7: 03 0b 06 bbs0 $0b,$0ec0 +0eba: 74 12 cmp a,$12+x +0ebc: b0 38 bcs $0ef6 +0ebe: 2f 10 bra $0ed0 +0ec0: 74 12 cmp a,$12+x +0ec2: f0 0c beq $0ed0 +0ec4: 90 0a bcc $0ed0 +0ec6: f4 12 mov a,$12+x +0ec8: 64 3b cmp a,$3b +0eca: b0 04 bcs $0ed0 +0ecc: c4 3b mov $3b,a +0ece: d8 3a mov $3a,x +0ed0: 53 0b 0c bbc2 $0b,$0edf +0ed3: 0b 55 asl $55 +0ed5: d0 05 bne $0edc +0ed7: 8f 01 55 mov $55,#$01 +0eda: cd ff mov x,#$ff +0edc: 3d inc x +0edd: 2f 0a bra $0ee9 +0edf: 4b 55 lsr $55 +0ee1: d0 05 bne $0ee8 +0ee3: 8f 80 55 mov $55,#$80 +0ee6: cd 08 mov x,#$08 +0ee8: 1d dec x +0ee9: dc dec y +0eea: 10 bc bpl $0ea8 +0eec: 03 0b 03 bbs0 $0b,$0ef2 +0eef: e8 ff mov a,#$ff +0ef1: 6f ret + +0ef2: f8 3a mov x,$3a +0ef4: 30 f9 bmi $0eef +0ef6: 33 0b 04 bbc1 $0b,$0efd +0ef9: f4 6f mov a,$6f+x +0efb: d0 f2 bne $0eef +0efd: e4 54 mov a,$54 +0eff: d4 12 mov $12+x,a +0f01: e8 00 mov a,#$00 +0f03: 6f ret + +0f04: d8 28 mov $28,x ; play sound (instrument) +0f06: d8 4c mov $4c,x +0f08: 2d push a +0f09: f5 46 02 mov a,$0246+x +0f0c: 28 fe and a,#$fe +0f0e: d5 46 02 mov $0246+x,a +0f11: 63 07 08 bbs3 $07,$0f1c +0f14: f5 e7 07 mov a,$07e7+x +0f17: c4 f2 mov $f2,a +0f19: 8f 9f f3 mov $f3,#$9f +0f1c: dd mov a,y +0f1d: d5 43 01 mov $0143+x,a +0f20: 7d mov a,x +0f21: 1c asl a +0f22: 5d mov x,a +0f23: e4 50 mov a,$50 +0f25: d5 d4 fc mov $fcd4+x,a +0f28: e4 51 mov a,$51 +0f2a: d5 d5 fc mov $fcd5+x,a +0f2d: e4 4e mov a,$4e +0f2f: d4 78 mov $78+x,a +0f31: e4 4f mov a,$4f +0f33: d4 79 mov $79+x,a +0f35: ae pop a +0f36: 8d 02 mov y,#$02 +0f38: 3f 63 10 call $1063 +0f3b: da 20 movw $20,ya ;get current voice and instrument +0f3d: f8 4c mov x,$4c +0f3f: f5 14 08 mov a,$0814+x ;get channel bit mask ID +0f42: c4 65 mov $65,a +0f44: 48 ff eor a,#$ff ;and store inversion +0f46: c4 66 mov $66,a +0f48: e4 57 mov a,$57 ;get mode flags +0f4a: 63 07 05 bbs3 $07,$0f52 +0f4d: 35 1c 08 and a,$081c+x +0f50: 2f 03 bra $0f55 +0f52: 15 14 08 or a,$0814+x +0f55: c4 57 mov $57,a +0f57: 8d 00 mov y,#$00 +0f59: f7 20 mov a,($20)+y +0f5b: d4 67 mov $67+x,a +0f5d: c4 4d mov $4d,a +0f5f: 8f 2d f2 mov $f2,#$2d +0f62: 28 20 and a,#$20 ; is pitch modulation enabled? ($20 = pm) +0f64: f0 05 beq $0f6b ; if not... +0f66: 09 65 f3 or ($f3),($65) ; turn pitch mod on +0f69: 2f 03 bra $0f6e +0f6b: 29 66 f3 and ($f3),($66) ; turn pitch mod off +0f6e: 63 07 50 bbs3 $07,$0fc1 ; slur handler +0f71: b0 4e bcs $0fc1 +0f73: 93 4d 45 bbc4 $4d,$0fbb +0f76: 13 08 05 bbc0 $08,$0f7e +0f79: e5 06 01 mov a,$0106 +0f7c: 2f 04 bra $0f82 +0f7e: 8d 05 mov y,#$05 ; default echo +0f80: f7 20 mov a,($20)+y +0f82: 8d 0c mov y,#$0c ; look for echo +0f84: 3f 63 10 call $1063 +0f87: 8d 00 mov y,#$00 +0f89: f6 24 08 mov a,$0824+y ; get the echo register values to "poke" +0f8c: c4 f2 mov $f2,a ; (from the table) +0f8e: f7 29 mov a,($29)+y ; now get info to feed to the registers +0f90: ad 01 cmp y,#$01 ; (from the echo environment) +0f92: f0 08 beq $0f9c +0f94: ad 03 cmp y,#$03 +0f96: f0 0f beq $0fa7 +0f98: ad 02 cmp y,#$02 +0f9a: d0 10 bne $0fac +0f9c: d6 43 02 mov $0243+y,a +0f9f: 65 3b 02 cmp a,$023b +0fa2: 90 03 bcc $0fa7 +0fa4: e5 3b 02 mov a,$023b +0fa7: d6 37 02 mov $0237+y,a +0faa: 2f 02 bra $0fae +0fac: c4 f3 mov $f3,a +0fae: fc inc y +0faf: ad 0c cmp y,#$0c ; repeat for every byte of the array +0fb1: 90 d6 bcc $0f89 +0fb3: 8f 4d f2 mov $f2,#$4d +0fb6: 09 65 f3 or ($f3),($65) +0fb9: 2f 06 bra $0fc1 +0fbb: 8f 4d f2 mov $f2,#$4d +0fbe: 29 66 f3 and ($f3),($66) +0fc1: e4 4c mov a,$4c +0fc3: 60 clrc +0fc4: 88 00 adc a,#$00 +0fc6: c4 2d mov $2d,a +0fc8: 8d 01 mov y,#$01 +0fca: f7 20 mov a,($20)+y +0fcc: 03 4d 08 bbs0 $4d,$0fd7 +0fcf: f8 4c mov x,$4c +0fd1: d5 23 01 mov $0123+x,a +0fd4: 5f e2 0f jmp $0fe2 + +0fd7: 8d 04 mov y,#$04 +0fd9: 3f 63 10 call $1063 +0fdc: fa 0f 0d mov ($0d),($0f) +0fdf: 3f ac 11 call $11ac +0fe2: e4 4c mov a,$4c +0fe4: 60 clrc +0fe5: 88 08 adc a,#$08 +0fe7: c4 2d mov $2d,a +0fe9: 53 4d 13 bbc2 $4d,$0fff +0fec: 8d 03 mov y,#$03 +0fee: f7 20 mov a,($20)+y +0ff0: 8d 06 mov y,#$06 +0ff2: 3f 63 10 call $1063 +0ff5: fa 10 0d mov ($0d),($10) +0ff8: 42 08 set2 $08 +0ffa: 3f ac 11 call $11ac +0ffd: 52 08 clr2 $08 +0fff: e4 4c mov a,$4c +1001: 60 clrc +1002: 88 18 adc a,#$18 +1004: c4 2d mov $2d,a +1006: 63 07 57 bbs3 $07,$1060 +1009: 8d 04 mov y,#$04 +100b: f7 20 mov a,($20)+y ; now get the amplitude +100d: 63 4d 08 bbs3 $4d,$1018 +1010: f8 4c mov x,$4c +1012: d5 e4 fc mov $fce4+x,a +1015: 5f 39 10 jmp $1039 + +1018: 8d 08 mov y,#$08 +101a: 3f 63 10 call $1063 +101d: fa 11 0d mov ($0d),($11) +1020: 3f ac 11 call $11ac +1023: eb 2d mov y,$2d +1025: f6 e3 04 mov a,$04e3+y +1028: f0 0a beq $1034 +102a: f6 c3 03 mov a,$03c3+y +102d: d0 05 bne $1034 +102f: e8 ff mov a,#$ff +1031: 5f 36 10 jmp $1036 + +1034: e8 00 mov a,#$00 +1036: d6 c3 03 mov $03c3+y,a +1039: e4 4c mov a,$4c +103b: 60 clrc +103c: 88 10 adc a,#$10 +103e: c4 2d mov $2d,a +1040: 8d 02 mov y,#$02 +1042: f7 20 mov a,($20)+y +1044: 23 4d 08 bbs1 $4d,$104f +1047: f8 4c mov x,$4c +1049: d5 ec fc mov $fcec+x,a +104c: 5f 5a 10 jmp $105a + +104f: 8d 0a mov y,#$0a +1051: 3f 63 10 call $1063 +1054: fa 0e 0d mov ($0d),($0e) +1057: 3f ac 11 call $11ac +105a: 09 65 5c or ($5c),($65) +105d: 09 65 56 or ($56),($65) +1060: 72 07 clr3 $07 +1062: 6f ret + +1063: 3f f3 0b call $0bf3 ; load current song/sfx/etc. address into stack +1066: 8f 00 1f mov $1f,#$00 +1069: 1c asl a +106a: 2b 1f rol $1f +106c: 60 clrc +106d: 96 e0 1e adc a,$1ee0+y +1070: c4 1e mov $1e,a +1072: e4 1f mov a,$1f +1074: 96 e1 1e adc a,$1ee1+y +1077: c4 1f mov $1f,a +1079: 8d 01 mov y,#$01 +107b: f7 1e mov a,($1e)+y +107d: c4 2a mov $2a,a +107f: dc dec y +1080: f7 1e mov a,($1e)+y +1082: c4 29 mov $29,a +1084: eb 2a mov y,$2a +1086: 6f ret + +1087: db $4a,$06,$1c,$1a,$4a,$06,$1c,$1a,$06,$1c,$1a,$4a,$06,$1c,$1a,$4a,$06,$1c,$1a,$4a,$06,$1c + +; initalize sound registers +109f: 3f ed 10 call $10ed +10a2: cd 51 mov x,#$51 +10a4: 8d 11 mov y,#$11 +10a6: 3f 3a 11 call $113a +10a9: e8 00 mov a,#$00 +10ab: 5d mov x,a +10ac: fd mov y,a +10ad: d5 00 01 mov $0100+x,a +10b0: af mov (x)+,a +10b1: c8 f0 cmp x,#$f0 +10b3: 90 f8 bcc $10ad +10b5: 5d mov x,a +10b6: d5 00 02 mov $0200+x,a +10b9: d5 00 03 mov $0300+x,a +10bc: d5 00 04 mov $0400+x,a +10bf: d5 00 05 mov $0500+x,a +10c2: d5 00 06 mov $0600+x,a +10c5: d5 00 fc mov $fc00+x,a +10c8: d5 00 fd mov $fd00+x,a +10cb: d5 00 ff mov $ff00+x,a +10ce: 3d inc x +10cf: d0 e5 bne $10b6 +10d1: e8 ff mov a,#$ff +10d3: c4 58 mov $58,a +10d5: c4 5a mov $5a,a +10d7: c4 63 mov $63,a +10d9: c4 59 mov $59,a +10db: c4 5e mov $5e,a +10dd: c4 5f mov $5f,a +10df: c4 60 mov $60,a +10e1: c5 3f 02 mov $023f,a +10e4: c4 05 mov $05,a +10e6: c4 06 mov $06,a +10e8: c4 0c mov $0c,a +10ea: 82 07 set4 $07 +10ec: 6f ret + +10ed: cd 14 mov x,#$14 +10ef: e8 00 mov a,#$00 +10f1: d5 28 02 mov $0228+x,a +10f4: 1d dec x +10f5: 10 fa bpl $10f1 +10f7: 8f 10 3a mov $3a,#$10 +10fa: 8d 10 mov y,#$10 +10fc: 3f 4a 07 call $074a +10ff: 68 00 cmp a,#$00 +1101: f0 04 beq $1107 +1103: 8b 3a dec $3a +1105: d0 f0 bne $10f7 +1107: 6f ret + +1108: e8 7f mov a,#$7f +110a: c5 3b 02 mov $023b,a +110d: c5 3c 02 mov $023c,a +1110: 2f e5 bra $10f7 +1112: e5 e1 1e mov a,$1ee1 +1115: 8f 6d f2 mov $f2,#$6d +1118: c4 f3 mov $f3,a +111a: 68 ff cmp a,#$ff +111c: f0 1b beq $1139 +111e: c4 01 mov $01,a +1120: e8 00 mov a,#$00 +1122: fd mov y,a +1123: c4 00 mov $00,a +1125: d7 00 mov ($00)+y,a +1127: fe fc dbnz y,$1125 +1129: ab 01 inc $01 +112b: 78 fc 01 cmp $01,#$fc +112e: d0 f5 bne $1125 +1130: 8f 6c f2 mov $f2,#$6c +1133: e8 df mov a,#$df +1135: 24 f3 and a,$f3 +1137: c4 f3 mov $f3,a +1139: 6f ret + +113a: d8 00 mov $00,x +113c: cb 01 mov $01,y +113e: 8d 00 mov y,#$00 +1140: f7 00 mov a,($00)+y +1142: 68 ff cmp a,#$ff +1144: f0 0a beq $1150 +1146: c4 f2 mov $f2,a +1148: fc inc y +1149: f7 00 mov a,($00)+y +114b: c4 f3 mov $f3,a +114d: fc inc y +114e: d0 f0 bne $1140 +1150: 6f ret + +; pre-defined DSP flags +1151: db $3d,$00 ; NON (noise enable) +1153: db $4d,$00 ; EON (echo enable) +1155: db $0d,$00 ; EFB (echo feedback) +1157: db $7d,$00 ; EDL (echo delay) +1159: db $0f,$00 ; COEF (channel 1) +115b: db $1f,$00 ; COEF (channel 2) +115d: db $2f,$00 ; COEF (channel 3) +115f: db $3f,$00 ; COEF (channel 4) +1161: db $4f,$00 ; COEF (channel 5) +1163: db $5f,$00 ; COEF (channel 6) +1165: db $6f,$00 ; COEF (channel 7) +1167: db $7f,$00 ; COEF (channel 8) +1169: db $6d,$ff ; ESA (echo buffer start offset) +116b: db $2c,$00 ; EVOL (L) (echo volume - left) +116d: db $3c,$00 ; EVOL (R) (echo volume - right) +116f: db $0c,$00 ; MVOL (L) (main volume - left) +1171: db $1c,$00 ; MVOL (R) (main volume - right) +1173: db $5d,$02 ; DIR (offset of source directory) +1175: db $5c,$00 ; KOF (key off) +1177: db $2d,$00 ; PMON (pitch modulation) +1179: db $04,$08 ; SRCN (source number - channel 1) +117b: db $14,$08 ; SRCN (source number - channel 2) +117d: db $24,$08 ; SRCN (source number - channel 3) +117f: db $34,$08 ; SRCN (source number - channel 4) +1181: db $44,$08 ; SRCN (source number - channel 5) +1183: db $54,$08 ; SRCN (source number - channel 6) +1185: db $64,$08 ; SRCN (source number - channel 7) +1187: db $74,$08 ; SRCN (source number - channel 8) +1189: db $07,$00 ; GAIN (channel 1) +118b: db $17,$00 ; GAIN (channel 2) +118d: db $27,$00 ; GAIN (channel 3) +118f: db $37,$00 ; GAIN (channel 4) +1191: db $47,$00 ; GAIN (channel 5) +1193: db $57,$00 ; GAIN (channel 6) +1195: db $67,$00 ; GAIN (channel 7) +1197: db $77,$00 ; GAIN (channel 8) +1199: db $05,$00 ; ASDR (1 - channel 1) +119b: db $15,$00 ; ASDR (1 - channel 2) +119d: db $25,$00 ; ASDR (1 - channel 3) +119f: db $35,$00 ; ASDR (1 - channel 4) +11a1: db $45,$00 ; ASDR (1 - channel 5) +11a3: db $55,$00 ; ASDR (1 - channel 6) +11a5: db $65,$00 ; ASDR (1 - channel 7) +11a7: db $75,$00 ; ASDR (1 - channel 8) +11a9: db $7c,$00 ; ENDX +11ab: db $ff + +11ac: 3f f3 0b call $0bf3 +11af: f8 2d mov x,$2d +11b1: 8d 07 mov y,#$07 +11b3: f7 29 mov a,($29)+y +11b5: d5 e3 04 mov $04e3+x,a +11b8: dc dec y +11b9: dc dec y +11ba: f7 29 mov a,($29)+y +11bc: d5 03 04 mov $0403+x,a +11bf: dc dec y +11c0: f7 29 mov a,($29)+y +11c2: d5 c3 04 mov $04c3+x,a +11c5: dc dec y +11c6: f7 29 mov a,($29)+y +11c8: d5 23 04 mov $0423+x,a +11cb: dc dec y +11cc: f7 29 mov a,($29)+y +11ce: d5 43 04 mov $0443+x,a +11d1: dc dec y +11d2: f7 29 mov a,($29)+y +11d4: d5 83 04 mov $0483+x,a +11d7: dc dec y +11d8: f7 29 mov a,($29)+y +11da: d5 63 04 mov $0463+x,a +11dd: eb 2d mov y,$2d +11df: e4 29 mov a,$29 +11e1: 60 clrc +11e2: 88 08 adc a,#$08 +11e4: d6 43 05 mov $0543+y,a +11e7: e4 2a mov a,$2a +11e9: 88 00 adc a,#$00 +11eb: d6 63 05 mov $0563+y,a +11ee: f6 23 04 mov a,$0423+y +11f1: cd 00 mov x,#$00 +11f3: eb 0d mov y,$0d +11f5: f0 23 beq $121a +11f7: cf mul ya +11f8: cb 3a mov $3a,y +11fa: c4 3b mov $3b,a +11fc: cd 05 mov x,#$05 +11fe: 4b 3a lsr $3a +1200: 7c ror a +1201: 1d dec x +1202: d0 fa bne $11fe +1204: eb 3a mov y,$3a +1206: ad 00 cmp y,#$00 +1208: d0 08 bne $1212 +120a: 68 00 cmp a,#$00 +120c: f0 0a beq $1218 +120e: f8 3b mov x,$3b +1210: 2f 08 bra $121a +1212: cd 01 mov x,#$01 +1214: e8 ff mov a,#$ff +1216: 2f 02 bra $121a +1218: 5d mov x,a +1219: bc inc a +121a: eb 2d mov y,$2d +121c: d6 23 04 mov $0423+y,a +121f: 7d mov a,x +1220: 48 ff eor a,#$ff +1222: 08 e0 or a,#$e0 +1224: d6 a3 03 mov $03a3+y,a +1227: e8 ff mov a,#$ff +1229: d6 e3 03 mov $03e3+y,a +122c: 3f f3 0b call $0bf3 +122f: 5d mov x,a +1230: f6 43 04 mov a,$0443+y +1233: fd mov y,a +1234: 7d mov a,x +1235: cf mul ya +1236: da 45 movw $45,ya +1238: 03 07 06 bbs0 $07,$1241 +123b: ba 05 movw ya,$05 +123d: da 45 movw $45,ya +123f: 2f 0a bra $124b +1241: ba 4e movw ya,$4e +1243: 9a 45 subw ya,$45 +1245: b0 02 bcs $1249 +1247: ba 4e movw ya,$4e +1249: cb 46 mov $46,y +124b: eb 2d mov y,$2d +124d: d6 83 05 mov $0583+y,a +1250: e4 46 mov a,$46 +1252: d6 a3 05 mov $05a3+y,a +1255: f6 23 04 mov a,$0423+y +1258: bc inc a +1259: d0 01 bne $125c +125b: 9c dec a +125c: d6 03 05 mov $0503+y,a +125f: 68 03 cmp a,#$03 +1261: b0 05 bcs $1268 +1263: e8 00 mov a,#$00 +1265: d6 c3 04 mov $04c3+y,a +1268: e8 01 mov a,#$01 +126a: d6 a3 04 mov $04a3+y,a +126d: 9c dec a +126e: d6 23 05 mov $0523+y,a +1271: d6 44 ff mov $ff44+y,a +1274: d6 64 ff mov $ff64+y,a +1277: c4 37 mov $37,a +1279: 5f 4e 13 jmp $134e + +127c: eb 2d mov y,$2d +127e: b2 07 clr5 $07 +1280: f6 c3 04 mov a,$04c3+y +1283: c4 37 mov $37,a +1285: f6 a3 04 mov a,$04a3+y +1288: f0 42 beq $12cc +128a: f6 a3 03 mov a,$03a3+y +128d: 60 clrc +128e: 96 e3 03 adc a,$03e3+y +1291: d6 e3 03 mov $03e3+y,a +1294: 90 18 bcc $12ae +1296: f6 03 05 mov a,$0503+y +1299: c4 38 mov $38,a +129b: f0 03 beq $12a0 +129d: 9c dec a +129e: d0 03 bne $12a3 +12a0: f6 23 04 mov a,$0423+y +12a3: d6 03 05 mov $0503+y,a +12a6: 78 02 38 cmp $38,#$02 +12a9: 90 08 bcc $12b3 +12ab: 5f 4e 13 jmp $134e + +12ae: 8f 00 37 mov $37,#$00 +12b1: 2f f8 bra $12ab +12b3: eb 2d mov y,$2d +12b5: f6 23 05 mov a,$0523+y +12b8: bc inc a +12b9: 76 03 04 cmp a,$0403+y +12bc: 90 1b bcc $12d9 +12be: 9c dec a +12bf: 76 83 04 cmp a,$0483+y +12c2: d0 03 bne $12c7 +12c4: 5f 48 13 jmp $1348 + +12c7: e8 00 mov a,#$00 +12c9: d6 a3 04 mov $04a3+y,a +12cc: a2 07 set5 $07 +12ce: f6 24 ff mov a,$ff24+y +12d1: 2d push a +12d2: f6 04 ff mov a,$ff04+y +12d5: ee pop y +12d6: 5f ff 13 jmp $13ff + +12d9: d6 23 05 mov $0523+y,a +12dc: f6 a3 05 mov a,$05a3+y +12df: 16 83 05 or a,$0583+y +12e2: f0 6a beq $134e +12e4: f8 28 mov x,$28 +12e6: f5 46 02 mov a,$0246+x +12e9: 28 02 and a,#$02 +12eb: f0 24 beq $1311 +12ed: e8 01 mov a,#$01 +12ef: 74 6f cmp a,$6f+x +12f1: d0 03 bne $12f6 +12f3: 83 07 09 bbs4 $07,$12ff +12f6: eb 28 mov y,$28 +12f8: f6 46 02 mov a,$0246+y +12fb: 28 01 and a,#$01 +12fd: f0 3d beq $133c +12ff: e8 00 mov a,#$00 +1301: d6 78 00 mov $0078+y,a +1304: d6 79 00 mov $0079+y,a +1307: eb 2d mov y,$2d +1309: d6 83 05 mov $0583+y,a +130c: d6 a3 05 mov $05a3+y,a +130f: 2f 21 bra $1332 +1311: f6 83 05 mov a,$0583+y +1314: 80 setc +1315: b6 23 04 sbc a,$0423+y +1318: d6 83 05 mov $0583+y,a +131b: c4 45 mov $45,a +131d: f6 a3 05 mov a,$05a3+y +1320: a8 00 sbc a,#$00 +1322: b0 07 bcs $132b +1324: e8 00 mov a,#$00 +1326: d6 83 05 mov $0583+y,a +1329: c4 45 mov $45,a +132b: d6 a3 05 mov $05a3+y,a +132e: 04 45 or a,$45 +1330: d0 0a bne $133c +1332: f6 83 04 mov a,$0483+y +1335: 76 03 04 cmp a,$0403+y +1338: 90 11 bcc $134b +133a: a2 07 set5 $07 +133c: eb 2d mov y,$2d +133e: f6 23 05 mov a,$0523+y +1341: 76 83 04 cmp a,$0483+y +1344: 90 08 bcc $134e +1346: f0 06 beq $134e +1348: f6 63 04 mov a,$0463+y +134b: d6 23 05 mov $0523+y,a +134e: eb 2d mov y,$2d +1350: f8 37 mov x,$37 +1352: f0 1c beq $1370 +1354: 78 03 38 cmp $38,#$03 +1357: 90 17 bcc $1370 +1359: f6 04 ff mov a,$ff04+y +135c: c4 33 mov $33,a +135e: f6 24 ff mov a,$ff24+y +1361: c4 34 mov $34,a +1363: f6 44 ff mov a,$ff44+y +1366: c4 35 mov $35,a +1368: f6 64 ff mov a,$ff64+y +136b: c4 36 mov $36,a +136d: 5f ed 13 jmp $13ed + +1370: f6 43 05 mov a,$0543+y +1373: c4 2b mov $2b,a +1375: f6 63 05 mov a,$0563+y +1378: c4 2c mov $2c,a +137a: f6 23 05 mov a,$0523+y +137d: fd mov y,a +137e: 43 08 07 bbs2 $08,$1388 +1381: f7 2b mov a,($2b)+y +1383: 8d 40 mov y,#$40 +1385: cf mul ya +1386: 2f 10 bra $1398 +1388: 8d 02 mov y,#$02 +138a: cf mul ya +138b: 7a 2b addw ya,$2b +138d: da 2b movw $2b,ya +138f: 8d 01 mov y,#$01 +1391: f7 2b mov a,($2b)+y +1393: dc dec y +1394: 2d push a +1395: f7 2b mov a,($2b)+y +1397: ee pop y +1398: f8 37 mov x,$37 +139a: f0 55 beq $13f1 +139c: 78 02 38 cmp $38,#$02 +139f: f0 50 beq $13f1 +13a1: da 3a movw $3a,ya +13a3: eb 2d mov y,$2d +13a5: f6 24 ff mov a,$ff24+y +13a8: c4 34 mov $34,a +13aa: f6 04 ff mov a,$ff04+y +13ad: c4 33 mov $33,a +13af: eb 34 mov y,$34 +13b1: 80 setc +13b2: 9a 3a subw ya,$3a +13b4: da 35 movw $35,ya +13b6: e8 00 mov a,#$00 +13b8: 3c rol a +13b9: c4 3a mov $3a,a +13bb: d0 08 bne $13c5 +13bd: 58 ff 35 eor $35,#$ff +13c0: 58 ff 36 eor $36,#$ff +13c3: 3a 35 incw $35 +13c5: eb 2d mov y,$2d +13c7: f6 23 04 mov a,$0423+y +13ca: 5d mov x,a +13cb: ba 35 movw ya,$35 +13cd: 3f 0a 14 call $140a +13d0: c4 35 mov $35,a +13d2: d8 36 mov $36,x +13d4: 78 01 3a cmp $3a,#$01 +13d7: d0 08 bne $13e1 +13d9: 58 ff 35 eor $35,#$ff +13dc: 58 ff 36 eor $36,#$ff +13df: 3a 35 incw $35 +13e1: eb 2d mov y,$2d +13e3: e4 35 mov a,$35 +13e5: d6 44 ff mov $ff44+y,a +13e8: e4 36 mov a,$36 +13ea: d6 64 ff mov $ff64+y,a +13ed: ba 33 movw ya,$33 +13ef: 7a 35 addw ya,$35 +13f1: da 33 movw $33,ya +13f3: eb 2d mov y,$2d +13f5: d6 04 ff mov $ff04+y,a +13f8: e4 34 mov a,$34 +13fa: d6 24 ff mov $ff24+y,a +13fd: ba 33 movw ya,$33 +13ff: 43 08 07 bbs2 $08,$1409 +1402: cd 40 mov x,#$40 +1404: 9e div ya,x +1405: 8d 00 mov y,#$00 +1407: da 33 movw $33,ya +1409: 6f ret + +140a: c8 00 cmp x,#$00 +140c: d0 04 bne $1412 +140e: 1d dec x +140f: 7d mov a,x +1410: fd mov y,a +1411: 6f ret + +1412: 40 setp +1413: cb 01 mov $01,y +1415: 3e 01 cmp x,$01 +1417: f0 02 beq $141b +1419: b0 1a bcs $1435 +141b: c4 00 mov $00,a +141d: dd mov a,y +141e: 8d 00 mov y,#$00 +1420: 9e div ya,x +1421: c4 02 mov $02,a +1423: fd mov y,a +1424: 7d mov a,x +1425: cf mul ya +1426: c4 03 mov $03,a +1428: e4 01 mov a,$01 +142a: 80 setc +142b: a4 03 sbc a,$03 +142d: fd mov y,a +142e: e4 00 mov a,$00 +1430: 9e div ya,x +1431: f8 02 mov x,$02 +1433: 20 clrp +1434: 6f ret + +1435: 9e div ya,x +1436: cd 00 mov x,#$00 +1438: 20 clrp +1439: 6f ret + +143a: 4d push x +143b: f5 f4 fc mov a,$fcf4+x +143e: 8d 04 mov y,#$04 +1440: cf mul ya +1441: 7a 24 addw ya,$24 +1443: da 00 movw $00,ya +1445: f5 ef 07 mov a,$07ef+x +1448: c4 f2 mov $f2,a +144a: 7d mov a,x +144b: 1c asl a +144c: 1c asl a +144d: 5d mov x,a +144e: f5 02 02 mov a,$0202+x +1451: c5 26 02 mov $0226,a +1454: f5 03 02 mov a,$0203+x +1457: c5 27 02 mov $0227,a +145a: 8f 09 f3 mov $f3,#$09 +145d: 8d 00 mov y,#$00 +145f: f7 00 mov a,($00)+y +1461: d5 00 02 mov $0200+x,a +1464: fc inc y +1465: f7 00 mov a,($00)+y +1467: d5 01 02 mov $0201+x,a +146a: fc inc y +146b: f7 00 mov a,($00)+y +146d: d5 02 02 mov $0202+x,a +1470: fc inc y +1471: f7 00 mov a,($00)+y +1473: d5 03 02 mov $0203+x,a +1476: 8d 01 mov y,#$01 +1478: f7 00 mov a,($00)+y +147a: c4 3d mov $3d,a +147c: dc dec y +147d: f7 00 mov a,($00)+y +147f: 80 setc +1480: a8 03 sbc a,#$03 +1482: c4 3c mov $3c,a +1484: b8 00 3d sbc $3d,#$00 +1487: f7 3c mov a,($3c)+y +1489: c5 04 01 mov $0104,a +148c: fc inc y +148d: f7 3c mov a,($3c)+y +148f: c5 05 01 mov $0105,a +1492: fc inc y +1493: f7 3c mov a,($3c)+y +1495: c4 64 mov $64,a +1497: 10 14 bpl $14ad +1499: 28 1f and a,#$1f +149b: 8f 6c f2 mov $f2,#$6c +149e: 38 e0 f3 and $f3,#$e0 +14a1: 04 f3 or a,$f3 +14a3: c4 f3 mov $f3,a +14a5: 8f 3d f2 mov $f2,#$3d +14a8: 09 4a f3 or ($f3),($4a) +14ab: 2f 06 bra $14b3 +14ad: 8f 3d f2 mov $f2,#$3d +14b0: 29 4b f3 and ($f3),($4b) +14b3: ce pop x +14b4: f5 ef 07 mov a,$07ef+x +14b7: c4 f2 mov $f2,a +14b9: d8 f3 mov $f3,x +14bb: 6f ret + +14bc: 60 clrc +14bd: 88 a0 adc a,#$a0 ; add offset to input frequency (1440) +14bf: 5d mov x,a +14c0: dd mov a,y +14c1: 88 05 adc a,#$05 +14c3: fd mov y,a +14c4: 7d mov a,x +14c5: ad 0a cmp y,#$0a ; check if it is in within positive range +14c7: 90 06 bcc $14cf ; in range +14c9: d0 0a bne $14d5 ; out of range +14cb: 68 50 cmp a,#$50 +14cd: b0 06 bcs $14d5 ; out of range +14cf: 8f ff 44 mov $44,#$ff +14d2: 5f eb 14 jmp $14eb + +14d5: ad 80 cmp y,#$80 +14d7: 90 0f bcc $14e8 +14d9: 8f 00 44 mov $44,#$00 +14dc: 60 clrc +14dd: 88 20 adc a,#$20 +14df: 5d mov x,a +14e0: dd mov a,y +14e1: 88 df adc a,#$df +14e3: fd mov y,a +14e4: 7d mov a,x +14e5: 5f eb 14 jmp $14eb + +14e8: 8f 0a 44 mov $44,#$0a +14eb: cd f0 mov x,#$f0 +14ed: 9e div ya,x +14ee: 78 ff 44 cmp $44,#$ff +14f1: d0 02 bne $14f5 +14f3: c4 44 mov $44,a +14f5: f6 10 15 mov a,$1510+y ;get pitch value (from table) +14f8: c4 3a mov $3a,a +14fa: f6 00 16 mov a,$1600+y +14fd: c4 3b mov $3b,a +14ff: e8 0a mov a,#$0a +1501: 80 setc +1502: a4 44 sbc a,$44 +1504: f0 07 beq $150d +1506: fd mov y,a +1507: 4b 3b lsr $3b +1509: 6b 3a ror $3a +150b: fe fa dbnz y,$1507 +150d: ba 3a movw ya,$3a +150f: 6f ret + +; pitch table (low byte) +1510: db $00,$18,$2f,$47,$5f,$77,$8f,$a7,$bf,$d8,$f0,$08,$21,$39,$52,$6b,$83,$9c,$b5,$ce,$e7,$00,$19,$33,$4c,$65,$7f,$98,$b2,$cc,$e5,$ff,$19,$33,$4d,$67,$82,$9c,$b6,$d1,$eb,$06,$20,$3b,$56,$71,$8c,$a7,$c2,$dd,$f9,$14,$2f,$4b,$67,$82,$9e,$ba,$d6,$f2,$0e,$2a,$46,$63,$7f,$9c,$b8,$d5,$f2,$0f,$2b,$48,$66,$83,$a0,$bd,$db,$f8,$16,$34,$51,$6f,$8d,$ab,$c9,$e7,$06,$24,$43,$61,$80,$9e,$bd,$dc,$fb,$1a,$39,$59,$78,$97,$b7,$d7,$f6,$16,$36,$56,$76,$96,$b7,$d7,$f7,$18,$39,$59,$7a,$9b,$bc,$dd,$ff,$20,$41,$63,$84,$a6,$c8,$ea,$0c,$2e,$50,$72,$95,$b7,$da,$fc,$1f,$42,$65,$88,$ab,$cf,$f2,$16,$39,$5d,$81,$a5,$c9,$ed,$11,$35,$5a,$7e,$a3,$c8,$ed,$12,$37,$5c,$81,$a6,$cc,$f2,$17,$3d,$63,$89,$af,$d6,$fc,$22,$49,$70,$97,$be,$e5,$0c,$33,$5a,$82,$aa,$d1,$f9,$21,$49,$71,$9a,$c2,$eb,$13,$3c,$65,$8e,$b7,$e0,$0a,$33,$5d,$87,$b0,$da,$04,$2f,$59,$84,$ae,$d9,$04,$2f,$5a,$85,$b0,$dc,$07,$33,$5f,$8b,$b7,$e3,$0f,$3c,$68,$95,$c2,$ef,$1c,$49,$77,$a4,$d2,$00,$2e,$5c,$8a,$b8,$e7,$15,$44,$73,$a2,$d1 + +; pitch table (high byte) +1600: db $20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$23,$23,$23,$23,$23,$23,$23,$23,$23,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$25,$25,$25,$25,$25,$25,$25,$25,$25,$26,$26,$26,$26,$26,$26,$26,$26,$26,$27,$27,$27,$27,$27,$27,$27,$27,$27,$28,$28,$28,$28,$28,$28,$28,$28,$29,$29,$29,$29,$29,$29,$29,$29,$29,$2a,$2a,$2a,$2a,$2a,$2a,$2a,$2a,$2b,$2b,$2b,$2b,$2b,$2b,$2b,$2b,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2d,$2d,$2d,$2d,$2d,$2d,$2d,$2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e,$2f,$2f,$2f,$2f,$2f,$2f,$2f,$30,$30,$30,$30,$30,$30,$30,$31,$31,$31,$31,$31,$31,$31,$32,$32,$32,$32,$32,$32,$32,$33,$33,$33,$33,$33,$33,$33,$34,$34,$34,$34,$34,$34,$35,$35,$35,$35,$35,$35,$35,$36,$36,$36,$36,$36,$36,$37,$37,$37,$37,$37,$37,$38,$38,$38,$38,$38,$38,$39,$39,$39,$39,$39,$39,$3a,$3a,$3a,$3a,$3a,$3a,$3b,$3b,$3b,$3b,$3b,$3b,$3c,$3c,$3c,$3c,$3c,$3c,$3d,$3d,$3d,$3d,$3d,$3e,$3e,$3e,$3e,$3e,$3e,$3f,$3f,$3f,$3f,$3f + +16f0: 3f 6a 17 call $176a +16f3: 8f 00 8a mov $8a,#$00 +16f6: e4 89 mov a,$89 +16f8: f0 20 beq $171a +16fa: e4 88 mov a,$88 +16fc: 9c dec a +16fd: c4 8b mov $8b,a +16ff: 3f f3 0b call $0bf3 +1702: f8 8a mov x,$8a +1704: f5 07 01 mov a,$0107+x +1707: 30 0a bmi $1713 +1709: 5d mov x,a +170a: c4 8b mov $8b,a +170c: f5 66 03 mov a,$0366+x +170f: 5d mov x,a +1710: 1f f8 1d jmp ($1df8+x) + +1713: ab 8a inc $8a +1715: 69 88 8a cmp ($8a),($88) +1718: d0 e5 bne $16ff +171a: 6f ret + +171b: c4 3a mov $3a,a +171d: f6 67 00 mov a,$0067+y +1720: 28 80 and a,#$80 +1722: f0 08 beq $172c +1724: f6 12 00 mov a,$0012+y +1727: 9c dec a +1728: d6 12 00 mov $0012+y,a +172b: 6f ret + +172c: f6 6f 00 mov a,$006f+y +172f: 64 3a cmp a,$3a +1731: d0 07 bne $173a +1733: f6 12 00 mov a,$0012+y +1736: 5c lsr a +1737: d6 12 00 mov $0012+y,a +173a: 6f ret + +173b: 3f f3 0b call $0bf3 +173e: f8 8b mov x,$8b +1740: 9b b7 dec $b7+x +1742: d0 cf bne $1713 +1744: 2f 1c bra $1762 +1746: 3f f3 0b call $0bf3 +1749: f8 8b mov x,$8b +174b: 9b b7 dec $b7+x +174d: d0 c4 bne $1713 +174f: e8 04 mov a,#$04 +1751: d5 66 03 mov $0366+x,a +1754: 5f 56 18 jmp $1856 + +; vcmd ec - set pitch bend state and release +1757: 3f b0 17 call $17b0 + +; vcmd eb - set pitch bend state +175a: e8 00 mov a,#$00 +175c: d5 c6 02 mov $02c6+x,a +175f: d5 da 02 mov $02da+x,a +1762: e8 06 mov a,#$06 +1764: d5 66 03 mov $0366+x,a +1767: 5f e8 17 jmp $17e8 + +176a: d3 07 2f bbc6 $07,$179c +176d: d2 07 clr6 $07 +176f: f8 88 mov x,$88 +1771: f0 29 beq $179c +1773: e8 ff mov a,#$ff +1775: 1d dec x +1776: d5 07 01 mov $0107+x,a +1779: 1d dec x +177a: 10 fa bpl $1776 +177c: f8 88 mov x,$88 +177e: 1d dec x +177f: 8f 00 3a mov $3a,#$00 +1782: eb 3a mov y,$3a +1784: f6 07 01 mov a,$0107+y +1787: 30 14 bmi $179d +1789: fd mov y,a +178a: f5 b2 02 mov a,$02b2+x +178d: 76 b2 02 cmp a,$02b2+y +1790: b0 0b bcs $179d +1792: ab 3a inc $3a +1794: 78 14 3a cmp $3a,#$14 +1797: d0 e9 bne $1782 +1799: 1d dec x +179a: 10 e3 bpl $177f +179c: 6f ret + +179d: eb 3a mov y,$3a +179f: 4d push x +17a0: 40 setp +17a1: f6 07 01 mov a,$0107+y +17a4: d9 07 mov $07+y,x +17a6: 5d mov x,a +17a7: fc inc y +17a8: 68 ff cmp a,#$ff +17aa: d0 f5 bne $17a1 +17ac: ce pop x +17ad: 20 clrp +17ae: 2f e9 bra $1799 +17b0: f5 27 06 mov a,$0627+x +17b3: 30 1d bmi $17d2 +17b5: fd mov y,a +17b6: 7d mov a,x +17b7: 08 80 or a,#$80 +17b9: 76 d2 00 cmp a,$00d2+y +17bc: d0 14 bne $17d2 +17be: e8 01 mov a,#$01 +17c0: 16 46 02 or a,$0246+y +17c3: d6 46 02 mov $0246+y,a +17c6: e8 01 mov a,#$01 +17c8: 3f 1b 17 call $171b +17cb: f5 7a 03 mov a,$037a+x +17ce: 28 02 and a,#$02 +17d0: d0 00 bne $17d2 +17d2: 6f ret + +17d3: c4 02 mov $02,a +17d5: 7d mov a,x +17d6: 8d 05 mov y,#$05 +17d8: cf mul ya +17d9: 60 clrc +17da: 84 02 adc a,$02 +17dc: fd mov y,a +17dd: cb 02 mov $02,y +17df: 6f ret + +; voice numbers +17e0: db $01,$02,$04,$08,$10,$20,$40,$80 + +17e8: 3f f3 0b call $0bf3 +17eb: f8 8b mov x,$8b +17ed: f5 c6 02 mov a,$02c6+x +17f0: c4 3a mov $3a,a +17f2: f5 da 02 mov a,$02da+x +17f5: c4 3b mov $3b,a +17f7: 3f 29 1a call $1a29 +17fa: fd mov y,a +17fb: 28 0f and a,#$0f +17fd: 2d push a +17fe: dd mov a,y +17ff: 5c lsr a +1800: 5c lsr a +1801: 5c lsr a +1802: 5c lsr a +1803: f0 28 beq $182d +1805: 60 clrc +1806: 88 f8 adc a,#$f8 +1808: 8d 00 mov y,#$00 +180a: 68 00 cmp a,#$00 +180c: 10 01 bpl $180f +180e: dc dec y +180f: 7a 3a addw ya,$3a +1811: d5 c6 02 mov $02c6+x,a +1814: dd mov a,y +1815: d5 da 02 mov $02da+x,a +1818: 8f 00 8c mov $8c,#$00 +181b: 3f ee 18 call $18ee +181e: f8 8b mov x,$8b +1820: ae pop a +1821: 68 00 cmp a,#$00 +1823: f0 c3 beq $17e8 +1825: d4 b7 mov $b7+x,a +1827: 3f 12 1c call $1c12 +182a: 5f 13 17 jmp $1713 + +182d: ae pop a +182e: dd mov a,y +182f: 68 00 cmp a,#$00 +1831: d0 03 bne $1836 +1833: 5f 4f 17 jmp $174f + +1836: 68 01 cmp a,#$01 +1838: d0 0b bne $1845 +183a: 3f 29 1a call $1a29 +183d: d4 b7 mov $b7+x,a +183f: 3f 12 1c call $1c12 +1842: 5f 13 17 jmp $1713 + +1845: 68 02 cmp a,#$02 +1847: d0 05 bne $184e +1849: 3f b0 17 call $17b0 +184c: 2f 9a bra $17e8 +184e: f4 b7 mov a,$b7+x +1850: 2d push a +1851: 3f 29 1a call $1a29 +1854: 2f b2 bra $1808 +1856: f8 8b mov x,$8b +1858: f5 4e 02 mov a,$024e+x +185b: 68 05 cmp a,#$05 +185d: f0 1e beq $187d +185f: 3f d3 17 call $17d3 +1862: f6 98 fd mov a,$fd98+y +1865: c4 00 mov $00,a +1867: f6 34 fd mov a,$fd34+y +186a: c4 01 mov $01,a +186c: 8d 02 mov y,#$02 +186e: f7 00 mov a,($00)+y +1870: de 8f 0a cbne $8f+x,$187d +1873: 8d 03 mov y,#$03 +1875: f7 00 mov a,($00)+y +1877: de a3 03 cbne $a3+x,$187d + +; play melody byte +187a: 5f 62 1b jmp $1b62 + +187d: 3f f3 0b call $0bf3 +1880: 3f 29 1a call $1a29 ; get 1 byte +1883: fd mov y,a ; separate the flags +1884: ad e0 cmp y,#$e0 ; check if it's a vector command +1886: 90 16 bcc $189e ; if not a vector... +1888: dd mov a,y +1889: 28 1f and a,#$1f ; mask off bits +188b: 1c asl a +188c: fd mov y,a +188d: f6 53 1c mov a,$1c53+y +1890: c5 9c 18 mov $189c,a +1893: f6 54 1c mov a,$1c54+y +1896: c5 9d 18 mov $189d,a +1899: eb 3a mov y,$3a +189b: 5f c8 1a jmp $1ac8 + +189e: ad c0 cmp y,#$c0 ; is it a rest? +18a0: 90 06 bcc $18a8 +18a2: 80 setc +18a3: a8 bf sbc a,#$bf ; get the duration +18a5: 5f ab 1a jmp $1aab ; and set rest + +18a8: ad 00 cmp y,#$00 ; is it a relative note? +18aa: 10 06 bpl $18b2 ; if so, play the note +18ac: 80 setc ; otherwise, it must be an absolute note... +18ad: a8 60 sbc a,#$60 +18af: fd mov y,a +18b0: 2f 16 bra $18c8 +18b2: 2d push a +18b3: 5c lsr a +18b4: 5c lsr a +18b5: 5c lsr a +18b6: 80 setc +18b7: a8 08 sbc a,#$08 +18b9: 60 clrc +18ba: 95 76 02 adc a,$0276+x +18bd: fd mov y,a +18be: ae pop a +18bf: 28 07 and a,#$07 +18c1: bc inc a +18c2: 2f 07 bra $18cb + +; vcmd ef - play absolute note +18c4: 3f 29 1a call $1a29 +18c7: fd mov y,a +18c8: 3f 29 1a call $1a29 +18cb: 2d push a +18cc: e8 00 mov a,#$00 +18ce: d5 c6 02 mov $02c6+x,a +18d1: d5 da 02 mov $02da+x,a +18d4: dd mov a,y +18d5: d5 76 02 mov $0276+x,a +18d8: 8f 01 8c mov $8c,#$01 +18db: f3 07 02 bbc7 $07,$18e0 +18de: 8b 8c dec $8c +18e0: f2 07 clr7 $07 +18e2: ae pop a +18e3: 3f e9 18 call $18e9 +18e6: 5f 13 17 jmp $1713 + +18e9: d4 b7 mov $b7+x,a +18eb: 3f 0c 1c call $1c0c +18ee: f5 7a 03 mov a,$037a+x +18f1: 28 01 and a,#$01 +18f3: d0 61 bne $1956 +18f5: e4 8c mov a,$8c +18f7: f0 06 beq $18ff +18f9: 3f b0 17 call $17b0 +18fc: 73 07 16 bbc3 $07,$1915 +18ff: f5 27 06 mov a,$0627+x +1902: 30 0d bmi $1911 +1904: fd mov y,a +1905: 7d mov a,x +1906: 08 80 or a,#$80 +1908: 76 d2 00 cmp a,$00d2+y +190b: d0 04 bne $1911 +190d: dd mov a,y +190e: 5d mov x,a +190f: 2f 4a bra $195b +1911: ab 8c inc $8c +1913: 72 07 clr3 $07 +1915: e8 ff mov a,#$ff +1917: d5 27 06 mov $0627+x,a +191a: f5 b2 02 mov a,$02b2+x +191d: c4 54 mov $54,a +191f: f5 eb 05 mov a,$05eb+x +1922: c4 0b mov $0b,a +1924: f5 13 06 mov a,$0613+x +1927: c4 53 mov $53,a +1929: f5 ff 05 mov a,$05ff+x +192c: 5d mov x,a +192d: f5 e0 17 mov a,$17e0+x +1930: c4 55 mov $55,a +1932: 3f 92 0e call $0e92 +1935: 30 1f bmi $1956 +1937: f5 7a 03 mov a,$037a+x +193a: 28 fd and a,#$fd +193c: b3 0b 02 bbc5 $0b,$1941 +193f: 08 02 or a,#$02 +1941: d5 7a 03 mov $037a+x,a +1944: d3 0b 12 bbc6 $0b,$1959 +1947: 7d mov a,x +1948: 53 0b 03 bbc2 $0b,$194e +194b: bc inc a +194c: 2f 01 bra $194f +194e: 9c dec a +194f: 28 07 and a,#$07 +1951: d5 ff 05 mov $05ff+x,a +1954: 2f 03 bra $1959 +1956: 5f 24 1a jmp $1a24 + +1959: 7d mov a,x +195a: fd mov y,a +195b: f8 8b mov x,$8b +195d: d5 27 06 mov $0627+x,a +1960: 7d mov a,x +1961: 08 80 or a,#$80 +1963: d6 d2 00 mov $00d2+y,a +1966: e4 8c mov a,$8c +1968: f0 00 beq $196a +196a: cb cb mov $cb,y +196c: e8 01 mov a,#$01 +196e: d6 6f 00 mov $006f+y,a +1971: f5 b2 02 mov a,$02b2+x +1974: d6 12 00 mov $0012+y,a +1977: dd mov a,y +1978: 1c asl a +1979: fd mov y,a +197a: f5 ee 02 mov a,$02ee+x +197d: d6 5b 01 mov $015b+y,a +1980: f5 02 03 mov a,$0302+x +1983: d6 5c 01 mov $015c+y,a +1986: f5 76 02 mov a,$0276+x +1989: 8d 14 mov y,#$14 +198b: cf mul ya +198c: 80 setc +198d: a8 84 sbc a,#$84 +198f: c4 50 mov $50,a +1991: dd mov a,y +1992: a8 03 sbc a,#$03 +1994: c4 51 mov $51,a +1996: f5 da 02 mov a,$02da+x +1999: fd mov y,a +199a: f5 c6 02 mov a,$02c6+x +199d: 7a 50 addw ya,$50 +199f: da 50 movw $50,ya +19a1: f5 4f 06 mov a,$064f+x +19a4: fd mov y,a +19a5: f5 3b 06 mov a,$063b+x +19a8: 7a 50 addw ya,$50 +19aa: 7a 61 addw ya,$61 +19ac: da 50 movw $50,ya +19ae: f5 77 06 mov a,$0677+x +19b1: fd mov y,a +19b2: f5 63 06 mov a,$0663+x +19b5: 7a 50 addw ya,$50 +19b7: dd mov a,y +19b8: eb 8c mov y,$8c +19ba: d0 13 bne $19cf +19bc: c4 3d mov $3d,a +19be: fa 50 3c mov ($3c),($50) +19c1: 8f d4 00 mov $00,#$d4 +19c4: 8f fc 01 mov $01,#$fc +19c7: 7d mov a,x +19c8: 08 80 or a,#$80 +19ca: 3f b8 1d call $1db8 +19cd: 2f 55 bra $1a24 +19cf: f5 c3 05 mov a,$05c3+x +19d2: 10 02 bpl $19d6 +19d4: e8 7f mov a,#$7f +19d6: c4 cc mov $cc,a +19d8: e4 cb mov a,$cb +19da: 1c asl a +19db: fd mov y,a +19dc: e8 00 mov a,#$00 +19de: 12 07 clr0 $07 +19e0: d6 da 00 mov $00da+y,a +19e3: d6 db 00 mov $00db+y,a +19e6: e4 cb mov a,$cb +19e8: fd mov y,a +19e9: f6 46 02 mov a,$0246+y +19ec: 08 02 or a,#$02 +19ee: d6 46 02 mov $0246+y,a +19f1: e8 ff mov a,#$ff +19f3: d6 92 03 mov $0392+y,a +19f6: f5 9e 02 mov a,$029e+x +19f9: d6 9a 03 mov $039a+y,a +19fc: f5 16 03 mov a,$0316+x +19ff: c4 0f mov $0f,a +1a01: f5 62 02 mov a,$0262+x +1a04: c5 3d 02 mov $023d,a +1a07: f5 3e 03 mov a,$033e+x +1a0a: c4 0e mov $0e,a +1a0c: f5 52 03 mov a,$0352+x +1a0f: c4 11 mov $11,a +1a11: f5 2a 03 mov a,$032a+x +1a14: c4 10 mov $10,a +1a16: eb cc mov y,$cc +1a18: f5 8a 02 mov a,$028a+x +1a1b: cf mul ya +1a1c: f5 d7 05 mov a,$05d7+x +1a1f: f8 cb mov x,$cb +1a21: 3f 04 0f call $0f04 +1a24: ab 8c inc $8c +1a26: 72 07 clr3 $07 +1a28: 6f ret + +1a29: 3f f3 0b call $0bf3 +1a2c: f8 8b mov x,$8b +1a2e: f4 8f mov a,$8f+x +1a30: c5 39 1a mov $1a39,a +1a33: f4 a3 mov a,$a3+x +1a35: c5 3a 1a mov $1a3a,a +1a38: e5 53 9e mov a,$9e53 +1a3b: bb 8f inc $8f+x +1a3d: d0 02 bne $1a41 +1a3f: bb a3 inc $a3+x +1a41: 6f ret + +; vcmd e9 - set effects mask +1a42: 3f 29 1a call $1a29 +1a45: c4 0c mov $0c,a +1a47: 2f 09 bra $1a52 + +; vcmd e6 - set standard allocation +1a49: e8 08 mov a,#$08 +1a4b: d5 eb 05 mov $05eb+x,a +1a4e: 7d mov a,x +1a4f: d5 ff 05 mov $05ff+x,a +1a52: 5f 56 18 jmp $1856 + +; vcmd e5 - set channel allocation +1a55: 3f 29 1a call $1a29 +1a58: d5 eb 05 mov $05eb+x,a +1a5b: 3f 29 1a call $1a29 +1a5e: d5 ff 05 mov $05ff+x,a +1a61: 3f 29 1a call $1a29 +1a64: d5 13 06 mov $0613+x,a +1a67: 2f e9 bra $1a52 + +; vcmd f0 - end of sequence +1a69: 3f b0 17 call $17b0 +1a6c: e8 00 mov a,#$00 +1a6e: d5 66 03 mov $0366+x,a +1a71: 8b 89 dec $89 +1a73: 5f 13 17 jmp $1713 + +; vcmd f1 - delta expression +1a76: f5 c3 05 mov a,$05c3+x +1a79: 3f 81 1a call $1a81 +1a7c: d5 c3 05 mov $05c3+x,a +1a7f: 2f d1 bra $1a52 +1a81: 4d push x +1a82: fd mov y,a +1a83: 6d push y +1a84: 3f 29 1a call $1a29 +1a87: cf mul ya +1a88: da 3a movw $3a,ya +1a8a: ee pop y +1a8b: 3f 29 1a call $1a29 +1a8e: cf mul ya +1a8f: 6d push y +1a90: 0b 3a asl $3a +1a92: 84 3b adc a,$3b +1a94: 5d mov x,a +1a95: ae pop a +1a96: 88 00 adc a,#$00 +1a98: fd mov y,a +1a99: d0 03 bne $1a9e +1a9b: 7d mov a,x +1a9c: 10 02 bpl $1aa0 +1a9e: e8 7f mov a,#$7f +1aa0: ce pop x +1aa1: 6f ret + +; vcmd f2 - absolute expression +1aa2: 3f 29 1a call $1a29 +1aa5: d5 c3 05 mov $05c3+x,a +1aa8: 5f 56 18 jmp $1856 + +1aab: 2d push a +1aac: 3f b0 17 call $17b0 +1aaf: ae pop a +1ab0: d4 b7 mov $b7+x,a +1ab2: 3f 0c 1c call $1c0c +1ab5: 5f 13 17 jmp $1713 + +; vcmd fd - set time (delay) - 64 +1ab8: e8 40 mov a,#$40 +1aba: 2f f4 bra $1ab0 + +; vcnd f8 - set time (delay) - 32 +1abc: e8 20 mov a,#$20 +1abe: 2f f0 bra $1ab0 + +; vcmd fe - set time (delay) - 128 +1ac0: e8 80 mov a,#$80 +1ac2: 2f ec bra $1ab0 + +; vcmd ff - set time (delay) - 256 +1ac4: e8 00 mov a,#$00 +1ac6: 2f e8 bra $1ab0 + +; vcmd f5 - set sound (instrument) +1ac8: 3f 29 1a call $1a29 +1acb: d5 d7 05 mov $05d7+x,a +1ace: f5 4e 02 mov a,$024e+x +1ad1: 68 05 cmp a,#$05 +1ad3: f0 2b beq $1b00 +1ad5: 3f d3 17 call $17d3 +1ad8: f6 98 fd mov a,$fd98+y +1adb: c4 00 mov $00,a +1add: f6 34 fd mov a,$fd34+y +1ae0: c4 01 mov $01,a +1ae2: f6 04 fc mov a,$fc04+y +1ae5: 8d 09 mov y,#$09 +1ae7: 77 00 cmp a,($00)+y +1ae9: 90 02 bcc $1aed +1aeb: e8 00 mov a,#$00 +1aed: bc inc a +1aee: eb 02 mov y,$02 +1af0: d6 04 fc mov $fc04+y,a +1af3: 60 clrc +1af4: 88 09 adc a,#$09 +1af6: fd mov y,a +1af7: f7 00 mov a,($00)+y +1af9: 68 ff cmp a,#$ff +1afb: f0 03 beq $1b00 +1afd: d5 d7 05 mov $05d7+x,a +1b00: 5f 56 18 jmp $1856 + +; vcmd f6 - play phrase +1b03: f5 4e 02 mov a,$024e+x +1b06: 9c dec a +1b07: d5 4e 02 mov $024e+x,a +1b0a: 3f d3 17 call $17d3 +1b0d: f4 8f mov a,$8f+x +1b0f: d6 98 fd mov $fd98+y,a +1b12: f4 a3 mov a,$a3+x +1b14: d6 34 fd mov $fd34+y,a +1b17: e8 00 mov a,#$00 +1b19: d6 68 fc mov $fc68+y,a +1b1c: 3f 29 1a call $1a29 +1b1f: 2d push a +1b20: 3f 2e 1a call $1a2e +1b23: 2d push a +1b24: 3f 2e 1a call $1a2e +1b27: 3f 2e 1a call $1a2e +1b2a: 3f 2e 1a call $1a2e +1b2d: 3f 2e 1a call $1a2e +1b30: fd mov y,a +1b31: 3f 2e 1a call $1a2e +1b34: 2d push a +1b35: dd mov a,y +1b36: 60 clrc +1b37: 95 3b 06 adc a,$063b+x +1b3a: d5 3b 06 mov $063b+x,a +1b3d: ae pop a +1b3e: 95 4f 06 adc a,$064f+x +1b41: d5 4f 06 mov $064f+x,a +1b44: f5 c3 05 mov a,$05c3+x +1b47: eb 02 mov y,$02 +1b49: d6 00 fe mov $fe00+y,a +1b4c: 3f 81 1a call $1a81 +1b4f: d5 c3 05 mov $05c3+x,a +1b52: eb 02 mov y,$02 +1b54: e8 00 mov a,#$00 +1b56: d6 04 fc mov $fc04+y,a +1b59: ae pop a +1b5a: d4 a3 mov $a3+x,a +1b5c: ae pop a +1b5d: d4 8f mov $8f+x,a +1b5f: 5f 56 18 jmp $1856 + +1b62: eb 02 mov y,$02 +1b64: f6 68 fc mov a,$fc68+y +1b67: bc inc a +1b68: d6 68 fc mov $fc68+y,a +1b6b: 8d 04 mov y,#$04 +1b6d: f7 00 mov a,($00)+y +1b6f: f0 07 beq $1b78 +1b71: eb 02 mov y,$02 +1b73: 76 68 fc cmp a,$fc68+y +1b76: f0 0f beq $1b87 +1b78: 8d 00 mov y,#$00 +1b7a: f7 00 mov a,($00)+y +1b7c: d4 8f mov $8f+x,a +1b7e: 8d 01 mov y,#$01 +1b80: f7 00 mov a,($00)+y +1b82: d4 a3 mov $a3+x,a +1b84: 5f 7d 18 jmp $187d + +1b87: f5 3b 06 mov a,$063b+x +1b8a: 80 setc +1b8b: 8d 05 mov y,#$05 +1b8d: b7 00 sbc a,($00)+y +1b8f: d5 3b 06 mov $063b+x,a +1b92: f5 4f 06 mov a,$064f+x +1b95: 8d 06 mov y,#$06 +1b97: b7 00 sbc a,($00)+y +1b99: d5 4f 06 mov $064f+x,a +1b9c: eb 02 mov y,$02 +1b9e: f6 00 fe mov a,$fe00+y +1ba1: d5 c3 05 mov $05c3+x,a +1ba4: e4 00 mov a,$00 +1ba6: 60 clrc +1ba7: 88 0a adc a,#$0a +1ba9: d4 8f mov $8f+x,a +1bab: e4 01 mov a,$01 +1bad: 88 00 adc a,#$00 +1baf: d4 a3 mov $a3+x,a +1bb1: 8d 09 mov y,#$09 +1bb3: f7 00 mov a,($00)+y +1bb5: 60 clrc +1bb6: 94 8f adc a,$8f+x +1bb8: d4 8f mov $8f+x,a +1bba: f4 a3 mov a,$a3+x +1bbc: 88 00 adc a,#$00 +1bbe: d4 a3 mov $a3+x,a +1bc0: f5 4e 02 mov a,$024e+x +1bc3: bc inc a +1bc4: d5 4e 02 mov $024e+x,a +1bc7: 5f 56 18 jmp $1856 + +; vcmd ea - set release +1bca: 3f b0 17 call $17b0 +1bcd: 2f 03 bra $1bd2 + +; vcmd f9 - go to loop +1bcf: 3f c7 1c call $1cc7 +1bd2: 5f 56 18 jmp $1856 + +; vcmd fa - set tempo +1bd5: 3f 29 1a call $1a29 +1bd8: c4 cd mov $cd,a +1bda: 2f f6 bra $1bd2 + +; vcmd fb - set panning +1bdc: 3f 29 1a call $1a29 +1bdf: d5 9e 02 mov $029e+x,a +1be2: 2f ee bra $1bd2 + +; vcmd e0 - set hardware detune +1be4: 3f 29 1a call $1a29 +1be7: d5 ee 02 mov $02ee+x,a +1bea: 3f 29 1a call $1a29 +1bed: d5 02 03 mov $0302+x,a +1bf0: 2f e0 bra $1bd2 + +; vcmd f3 - set priority +1bf2: 3f 29 1a call $1a29 +1bf5: d5 b2 02 mov $02b2+x,a +1bf8: c2 07 set6 $07 +1bfa: 2f d6 bra $1bd2 + +; vcmd ed - set velocity +1bfc: 3f 29 1a call $1a29 +1bff: d5 8a 02 mov $028a+x,a +1c02: 2f ce bra $1bd2 + +1c04: 62 07 set3 $07 +1c06: 2f ca bra $1bd2 + +; vcmd f4 - set tied note +1c08: e2 07 set7 $07 +1c0a: 2f c6 bra $1bd2 + +1c0c: e8 02 mov a,#$02 +1c0e: d5 66 03 mov $0366+x,a +1c11: 6f ret + +1c12: e8 08 mov a,#$08 +1c14: d5 66 03 mov $0366+x,a +1c17: 6f ret + +; vcmd e1 - set amplitude articulation +1c18: 3f 29 1a call $1a29 +1c1b: d5 16 03 mov $0316+x,a +1c1e: 2f b2 bra $1bd2 + +1c20: 3f 29 1a call $1a29 +1c23: d5 62 02 mov $0262+x,a +1c26: 2f aa bra $1bd2 + +; vcmd e2 - set stereo articulation +1c28: 3f 29 1a call $1a29 +1c2b: d5 52 03 mov $0352+x,a +1c2e: 2f a2 bra $1bd2 + +; vcmd e4 - set pitch articulation +1c30: 3f 29 1a call $1a29 +1c33: d5 2a 03 mov $032a+x,a +1c36: 2f f6 bra $1c2e + +; vcmd e3 - set tone articulation +1c38: 3f 29 1a call $1a29 +1c3b: d5 3e 03 mov $033e+x,a +1c3e: 2f ee bra $1c2e + +; vcmd e7 - reset track +1c40: 3f e4 1c call $1ce4 +1c43: 2f e9 bra $1c2e + +; vcmd f7 - set detune +1c45: 3f 29 1a call $1a29 +1c48: d5 63 06 mov $0663+x,a +1c4b: 3f 29 1a call $1a29 +1c4e: d5 77 06 mov $0677+x,a +1c51: 2f db bra $1c2e + +; vcmd table (e0-ff) +1c53: dw $1be4 ; e0 - set hardware detune +1c55: dw $1c18 ; e1 - set amplitude articulation +1c57: dw $1c28 ; e2 - set stereo articulation +1c59: dw $1c38 ; e3 - set tone articulation +1c5b: dw $1c30 ; e4 - set pitch articulation +1c5d: dw $1a55 ; e5 - set channel allocation +1c5f: dw $1a49 ; e6 - set standard allocation +1c61: dw $1c40 ; e7 - reset track +1c63: dw $0000 ; e8 - redirect track (disabled) +1c65: dw $1a42 ; e9 - set effects mask +1c67: dw $1bca ; ea - set release +1c69: dw $175a ; eb - set pitch bend state +1c6b: dw $1757 ; ec - set pitch bend state and release +1c6d: dw $1bfc ; ed - set velocity +1c6f: dw $0000 ; ee - extended command (disabled) +1c70: dw $18c4 ; ef - play absolute note +1c72: dw $1a69 ; f0 - end of sequence +1c74: dw $1a76 ; f1 - delta expression +1c76: dw $1aa2 ; f2 - absolute expression +1c78: dw $1bf2 ; f3 - set priority +1c7a: dw $1c08 ; f4 - set tied note +1c7c: dw $1ac8 ; f5 - set sound (instrument) +1c7e: dw $1b03 ; f6 - play phrase +1c80: dw $1c45 ; f7 - set detune +1c82: dw $1abc ; f8 - set time (delay) - 32 +1c84: dw $1bcf ; f9 - go to loop +1c86: dw $1bd5 ; fa - set tempo +1c88: dw $1bdc ; fb - set panning +1c8a: dw $1c04 ; fc - set no retrigger +1c8c: dw $1ab8 ; fd - set time (delay) - 64 +1c8e: dw $1ac0 ; fe - set time (delay) - 128 +1c90: dw $1ac4 ; ff - set time (delay) - 256 + +1c93: 2d push a +1c94: 3f 50 0d call $0d50 +1c97: ae pop a +1c98: 92 07 clr4 $07 +1c9a: 8d 1a mov y,#$1a +1c9c: 3f 63 10 call $1063 +1c9f: da 8d movw $8d,ya +1ca1: 8d 00 mov y,#$00 +1ca3: f7 8d mov a,($8d)+y +1ca5: c4 88 mov $88,a +1ca7: c4 89 mov $89,a +1ca9: f0 1b beq $1cc6 +1cab: cb 8b mov $8b,y +1cad: 3f c7 1c call $1cc7 +1cb0: ab 8b inc $8b +1cb2: e8 00 mov a,#$00 +1cb4: d3 08 02 bbc6 $08,$1cb9 +1cb7: e8 01 mov a,#$01 +1cb9: f8 8b mov x,$8b +1cbb: 35 7a 03 and a,$037a+x +1cbe: d5 7a 03 mov $037a+x,a +1cc1: 69 88 8b cmp ($8b),($88) +1cc4: d0 e7 bne $1cad +1cc6: 6f ret + +1cc7: e4 8b mov a,$8b +1cc9: 5d mov x,a +1cca: 1c asl a +1ccb: bc inc a +1ccc: fd mov y,a +1ccd: f7 8d mov a,($8d)+y +1ccf: d4 8f mov $8f+x,a +1cd1: fc inc y +1cd2: f7 8d mov a,($8d)+y +1cd4: d4 a3 mov $a3+x,a +1cd6: e8 ff mov a,#$ff +1cd8: c4 ce mov $ce,a +1cda: e8 05 mov a,#$05 +1cdc: d5 4e 02 mov $024e+x,a +1cdf: e8 04 mov a,#$04 +1ce1: d5 66 03 mov $0366+x,a +1ce4: 72 07 clr3 $07 +1ce6: f2 07 clr7 $07 +1ce8: f8 8b mov x,$8b +1cea: e8 08 mov a,#$08 +1cec: d5 eb 05 mov $05eb+x,a +1cef: 7d mov a,x +1cf0: d5 ff 05 mov $05ff+x,a +1cf3: e8 00 mov a,#$00 +1cf5: d5 76 02 mov $0276+x,a +1cf8: d5 c6 02 mov $02c6+x,a +1cfb: d5 da 02 mov $02da+x,a +1cfe: d5 3b 06 mov $063b+x,a +1d01: d5 4f 06 mov $064f+x,a +1d04: d5 63 06 mov $0663+x,a +1d07: d5 77 06 mov $0677+x,a +1d0a: d5 ee 02 mov $02ee+x,a +1d0d: d5 02 03 mov $0302+x,a +1d10: d5 16 03 mov $0316+x,a +1d13: d5 62 02 mov $0262+x,a +1d16: d5 52 03 mov $0352+x,a +1d19: d5 3e 03 mov $033e+x,a +1d1c: d5 2a 03 mov $032a+x,a +1d1f: d5 9e 02 mov $029e+x,a +1d22: 9c dec a +1d23: d5 27 06 mov $0627+x,a +1d26: d5 8a 02 mov $028a+x,a +1d29: e8 40 mov a,#$40 +1d2b: d5 b2 02 mov $02b2+x,a +1d2e: e8 7f mov a,#$7f +1d30: d5 c3 05 mov $05c3+x,a +1d33: c2 07 set6 $07 +1d35: 8f 6f 00 mov $00,#$6f +1d38: 8f 00 01 mov $01,#$00 +1d3b: 7d mov a,x +1d3c: 08 80 or a,#$80 +1d3e: 8d 00 mov y,#$00 +1d40: 5f 81 1d jmp $1d81 + +1d43: c4 5f mov $5f,a +1d45: 6f ret + +1d46: c4 60 mov $60,a +1d48: 6f ret + +1d49: da 61 movw $61,ya +1d4b: 6f ret + +1d4c: da 2e movw $2e,ya +1d4e: 6f ret + +1d4f: c4 fb mov $fb,a +1d51: 6f ret + +1d52: 28 7f and a,#$7f +1d54: c5 3e 02 mov $023e,a +1d57: 6f ret + +1d58: 12 08 clr0 $08 +1d5a: c5 06 01 mov $0106,a +1d5d: 68 ff cmp a,#$ff +1d5f: f0 02 beq $1d63 +1d61: 02 08 set0 $08 +1d63: 6f ret + +1d64: c5 3f 02 mov $023f,a +1d67: 6f ret + +1d68: c5 40 02 mov $0240,a +1d6b: 6f ret + +1d6c: c5 41 02 mov $0241,a +1d6f: cc 42 02 mov $0242,y +1d72: 6f ret + +1d73: 8f 9a 00 mov $00,#$9a +1d76: 8f 03 01 mov $01,#$03 +1d79: 2f 06 bra $1d81 + +1d7b: 8f 92 00 mov $00,#$92 +1d7e: 8f 03 01 mov $01,#$03 +1d81: c4 3a mov $3a,a +1d83: dd mov a,y +1d84: 5d mov x,a +1d85: e8 07 mov a,#$07 +1d87: fd mov y,a +1d88: f6 d2 00 mov a,$00d2+y +1d8b: 2e 3a 03 cbne $3a,$1d91 +1d8e: 7d mov a,x +1d8f: d7 00 mov ($00)+y,a +1d91: dc dec y +1d92: 10 f4 bpl $1d88 +1d94: 6f ret + +1d95: 28 7f and a,#$7f +1d97: c4 3a mov $3a,a +1d99: cd 07 mov x,#$07 +1d9b: f4 d2 mov a,$d2+x +1d9d: 2e 3a 08 cbne $3a,$1da8 +1da0: f5 46 02 mov a,$0246+x +1da3: 08 03 or a,#$03 +1da5: d5 46 02 mov $0246+x,a +1da8: 1d dec x +1da9: 10 f0 bpl $1d9b +1dab: 6f ret + +1dac: 8f da 00 mov $00,#$da +1daf: 8f 00 01 mov $01,#$00 +1db2: fa 2e 3c mov ($3c),($2e) +1db5: fa 2f 3d mov ($3d),($2f) +1db8: c4 3a mov $3a,a +1dba: e8 0f mov a,#$0f +1dbc: fd mov y,a +1dbd: e8 07 mov a,#$07 +1dbf: 5d mov x,a +1dc0: f4 d2 mov a,$d2+x +1dc2: 2e 3a 0a cbne $3a,$1dcf +1dc5: e4 3d mov a,$3d +1dc7: d7 00 mov ($00)+y,a +1dc9: dc dec y +1dca: e4 3c mov a,$3c +1dcc: d7 00 mov ($00)+y,a +1dce: fc inc y +1dcf: dc dec y +1dd0: dc dec y +1dd1: 1d dec x +1dd2: 10 ec bpl $1dc0 +1dd4: 6f ret + +1dd5: 5d mov x,a +1dd6: e8 01 mov a,#$01 +1dd8: 15 7a 03 or a,$037a+x +1ddb: d5 7a 03 mov $037a+x,a +1dde: 6f ret + +1ddf: 5d mov x,a +1de0: e8 fe mov a,#$fe +1de2: 35 7a 03 and a,$037a+x +1de5: 2f f4 bra $1ddb +1de7: 2e 03 03 cbne $03,$1ded +1dea: d2 08 clr6 $08 +1dec: 6f ret + +1ded: c2 08 set6 $08 +1def: 6f ret + +1df0: 02 09 set0 $09 +1df2: 2e 03 02 cbne $03,$1df7 +1df5: 12 09 clr0 $09 +1df7: 6f ret + +1df8: dw $1713,$1746,$1856,$17e8,$173b,$0ce2,$0d16,$0d1b,$0d07,$1d95,$0000,$078c,$0da4,$0cf5,$0cef,$0ceb,$0000,$0d50,$0d52,$1e55,$0000,$0000,$0da9,$0d13,$1d43,$1d4f,$1d49,$1d46,$1d6c,$1d52,$1d64,$1d7b,$1d4c,$1dac,$1d68,$1d73,$1d58,$1dd5,$1ddf,$1de7,$0788,$1df0,$1e5f + +; uncompiled source code +1e95: db $20,$20,$20,$20,$20,$20,$20,$20,$72,$65,$74,$0d,$0a,$53,$65,$74,$4e,$65,$78,$74,$45,$66,$66,$65,$63,$74,$50,$61,$6e,$0d,$0a,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$6d,$6f,$76,$20,$4e,$65,$78,$74,$45,$78,$53,$74,$65,$72,$65,$6f,$4d,$6f,$64,$2c,$00,$ \ No newline at end of file diff --git a/snes/Sculptured Software/Pink Panther in Pink Goes to Hollywood ($0700).bin b/snes/Sculptured Software/Pink Panther in Pink Goes to Hollywood ($0700).bin new file mode 100644 index 00000000..76f11a2d Binary files /dev/null and b/snes/Sculptured Software/Pink Panther in Pink Goes to Hollywood ($0700).bin differ diff --git a/snes/Sculptured Software/Pink Panther in Pink Goes to Hollywood.s b/snes/Sculptured Software/Pink Panther in Pink Goes to Hollywood.s new file mode 100644 index 00000000..a0efa0fe --- /dev/null +++ b/snes/Sculptured Software/Pink Panther in Pink Goes to Hollywood.s @@ -0,0 +1,1879 @@ +0700: 20 clrp +0701: cd ff mov x,#$ff ; set stack pointer +0703: bd mov sp,x +0704: 8f 6c f2 mov $f2,#$6c ; reset DSP flags +0707: d8 f3 mov $f3,x +0709: 8f b0 f1 mov $f1,#$b0 ; clear input ports APUI00-APUI04 +070c: 8f 20 fa mov $fa,#$20 +070f: 8f 81 f1 mov $f1,#$81 ; toggle timer 2 +0712: 3f f7 0d call $0df7 ; clear/reset routine +0715: 8f 00 0b mov $0b,#$00 ; variables = sample directory start +0718: 8f 18 0c mov $0c,#$18 +071b: 8d 03 mov y,#$03 ; set temporary storage +071d: f6 ff ff mov a,$ffff+y +0720: 16 27 07 or a,$0727+y +0723: d6 ff ff mov $ffff+y,a +0726: fe f5 dbnz y,$071d +0728: ab 15 inc $15 +072a: e4 1b mov a,$1b +072c: d0 05 bne $0733 +072e: 3f 86 15 call $1586 ; do a random number generator (RNG) +0731: 2f 03 bra $0736 +0733: 3f 58 08 call $0858 +0736: e4 f6 mov a,$f6 +0738: f0 03 beq $073d +073a: 3f 3d 0b call $0b3d +073d: e4 fd mov a,$fd +073f: 60 clrc +0740: 84 14 adc a,$14 +0742: c4 14 mov $14,a +0744: 68 05 cmp a,#$05 +0746: 90 ee bcc $0736 +0748: a8 05 sbc a,#$05 +074a: c4 14 mov $14,a +074c: 68 14 cmp a,#$14 +074e: 90 d8 bcc $0728 +0750: 8f 00 14 mov $14,#$00 +0753: 2f d3 bra $0728 +0755: 8d 00 mov y,#$00 +0757: 8f aa f4 mov $f4,#$aa +075a: 8f bb f5 mov $f5,#$bb +075d: f8 f4 mov x,$f4 +075f: c8 cc cmp x,#$cc +0761: d0 fa bne $075d +0763: fa f6 03 mov ($03),($f6) +0766: fa f7 04 mov ($04),($f7) +0769: 7d mov a,x +076a: f8 f5 mov x,$f5 +076c: c4 f4 mov $f4,a +076e: d0 05 bne $0775 +0770: d8 f6 mov $f6,x +0772: 1f 03 00 jmp ($0003+x) + +0775: cd 00 mov x,#$00 +0777: 3e f4 cmp x,$f4 +0779: d0 fc bne $0777 +077b: e4 f5 mov a,$f5 +077d: d7 03 mov ($03)+y,a +077f: f8 f4 mov x,$f4 +0781: d8 f4 mov $f4,x +0783: 3a 03 incw $03 +0785: 3e f4 cmp x,$f4 +0787: f0 fc beq $0785 +0789: 3d inc x +078a: 3e f4 cmp x,$f4 +078c: f0 ed beq $077b +078e: f8 f4 mov x,$f4 +0790: 2f d1 bra $0763 +0792: 3f f7 0d call $0df7 +0795: 8f b0 f1 mov $f1,#$b0 +0798: cd 00 mov x,#$00 +079a: f5 55 07 mov a,$0755+x +079d: d5 00 01 mov $0100+x,a +07a0: 3d inc x +07a1: c8 3d cmp x,#$3d +07a3: 90 f5 bcc $079a +07a5: 5f 00 01 jmp $0100 + +; gain tables +07a8: db $ff,$d6,$a0,$80,$6b,$50,$40,$36,$28,$20,$1b,$14,$10,$0e,$0b,$08,$06,$05,$04,$03,$02,$01 +07be: db $1d,$1c,$1b,$1a,$19,$18,$17,$16,$15,$14,$13,$12,$11,$10,$0f,$0e,$0d,$0c,$0a,$09,$06,$00 + +; DSP registers: VxENVX +07d4: db $08,$18,$28,$38,$48,$58,$68,$78 +; DSP registers: VxGAIN +07dd: db $07,$17,$27,$37,$47,$57,$67,$77 +; DSP registers: VxSCRN (select sample) +07e4: db $04,$14,$24,$34,$44,$54,$64,$74 +; DSP registers: VxPITCHL +07ec: db $02,$12,$22,$32,$42,$52,$62,$72 +; DSP registers: VxVOLL +07f4: db $00,$10,$20,$30,$40,$50,$60,$70 + +; voice numbers and bits for clearing those void bits +07fc: db $01,$02,$04,$08,$10,$20,$40,$80,$fe,$fd,$fb,$f7,$ef,$df,$bf,$7f + +; echo poke registers +080c: db $7d,$2c,$3c,$0d,$0f,$1f,$2f,$3f,$4f,$5f,$6f,$7f + +0818: db $02,$02,$02,$02,$02,$03,$03,$03 +0820: db $97,$ac,$c1,$d6,$eb,$00,$15,$2a + +0828: db $03,$03,$03,$03,$03,$03,$03,$03 +0830: db $3f,$54,$69,$7e,$93,$a8,$bd,$d2 + +0838: db $03,$03,$04,$04,$04,$04,$04,$04 +0840: db $e7,$fc,$11,$26,$3b,$50,$65,$7a + +0848: db $04,$04,$04,$04,$04,$04,$05,$05 +0850: db $8f,$a5,$bb,$d1,$e7,$fd,$13,$29 + +0858: 3f 86 15 call $1586 ; use RNG +085b: 3f 0a 13 call $130a +085e: 8f 00 2f mov $2f,#$00 +0861: 8f 00 44 mov $44,#$00 +0864: 8f 7c f2 mov $f2,#$7c ; clear end of sample flags? +0867: e4 f3 mov a,$f3 +0869: 04 41 or a,$41 +086b: 24 47 and a,$47 +086d: c4 41 mov $41,a +086f: 8f 00 f3 mov $f3,#$00 +0872: 24 42 and a,$42 +0874: 04 43 or a,$43 +0876: c4 43 mov $43,a +0878: cd 07 mov x,#$07 +087a: 8f 7a 0d mov $0d,#$7a +087d: 8f 04 0e mov $0e,#$04 +0880: d8 0f mov $0f,x +0882: f5 fc 07 mov a,$07fc+x ; clear voice number bits +0885: c4 31 mov $31,a +0887: 48 ff eor a,#$ff +0889: c4 32 mov $32,a +088b: f4 53 mov a,$53+x +088d: 28 02 and a,#$02 +088f: c4 30 mov $30,a +0891: d0 06 bne $0899 +0893: f5 77 02 mov a,$0277+x +0896: 5f 9e 08 jmp $089e + +0899: 3f db 0e call $0edb +089c: f8 0f mov x,$0f +089e: 75 7f 02 cmp a,$027f+x +08a1: d0 10 bne $08b3 +08a3: 3f 75 10 call $1075 +08a6: 3f 23 0b call $0b23 +08a9: e4 48 mov a,$48 +08ab: 24 45 and a,$45 +08ad: 24 31 and a,$31 +08af: d0 43 bne $08f4 +08b1: f0 44 beq $08f7 +08b3: d5 7f 02 mov $027f+x,a +08b6: 09 31 2f or ($2f),($31) +08b9: 3f 75 10 call $1075 +08bc: 7d mov a,x +08bd: 1c asl a +08be: 5d mov x,a +08bf: e4 49 mov a,$49 +08c1: d5 87 02 mov $0287+x,a +08c4: e4 4a mov a,$4a +08c6: d5 88 02 mov $0288+x,a +08c9: f8 0f mov x,$0f +08cb: e4 4b mov a,$4b +08cd: 28 20 and a,#$20 +08cf: f0 05 beq $08d6 +08d1: 29 32 42 and ($42),($32) +08d4: 2f 03 bra $08d9 +08d6: 09 31 42 or ($42),($31) +08d9: e4 4b mov a,$4b +08db: 28 40 and a,#$40 +08dd: f0 05 beq $08e4 +08df: 09 31 48 or ($48),($31) +08e2: 2f 03 bra $08e7 +08e4: 29 32 48 and ($48),($32) +08e7: 3f 23 0b call $0b23 +08ea: e4 48 mov a,$48 +08ec: 04 45 or a,$45 +08ee: 24 31 and a,$31 +08f0: d0 02 bne $08f4 +08f2: f0 03 beq $08f7 +08f4: 09 31 44 or ($44),($31) +08f7: 1d dec x +08f8: 30 0a bmi $0904 +08fa: 80 setc +08fb: b8 15 0d sbc $0d,#$15 +08fe: b8 00 0e sbc $0e,#$00 +0901: 5f 80 08 jmp $0880 + +0904: e4 45 mov a,$45 +0906: 24 43 and a,$43 +0908: 04 44 or a,$44 +090a: c4 46 mov $46,a +090c: 8f 5c f2 mov $f2,#$5c +090f: c4 f3 mov $f3,a +0911: cd 07 mov x,#$07 +0913: 8f d2 0d mov $0d,#$d2 +0916: 8f 03 0e mov $0e,#$03 +0919: d8 0f mov $0f,x +091b: f4 53 mov a,$53+x +091d: fd mov y,a +091e: 28 40 and a,#$40 +0920: 0d push psw +0921: dd mov a,y +0922: 28 04 and a,#$04 +0924: 0d push psw +0925: 7d mov a,x +0926: fd mov y,a +0927: 1c asl a +0928: 5d mov x,a +0929: f5 48 02 mov a,$0248+x ; get base note +092c: c4 2e mov $2e,a +092e: f5 47 02 mov a,$0247+x +0931: c4 2d mov $2d,a +0933: 8e pop psw +0934: f0 11 beq $0947 +0936: 4d push x ; save word addressing +0937: 3f db 0e call $0edb ; advance pitch envelope +093a: ce pop x ; restore pitch flag +093b: 7a 2d addw ya,$2d +093d: 80 setc +093e: a8 b0 sbc a,#$b0 +0940: c4 2d mov $2d,a +0942: dd mov a,y +0943: a8 04 sbc a,#$04 +0945: c4 2e mov $2e,a +0947: f5 88 02 mov a,$0288+x +094a: fd mov y,a +094b: f5 87 02 mov a,$0287+x +094e: 7a 2d addw ya,$2d +0950: 8e pop psw +0951: d0 03 bne $0956 +0953: 3f 9f 10 call $109f ; translate note to frequency +0956: f8 0f mov x,$0f +0958: d5 57 02 mov $0257+x,a +095b: dd mov a,y +095c: d5 5f 02 mov $025f+x,a +095f: 80 setc +0960: b8 15 0d sbc $0d,#$15 +0963: b8 00 0e sbc $0e,#$00 +0966: 1d dec x +0967: 10 b0 bpl $0919 +0969: 8f 5c f2 mov $f2,#$5c +096c: 8f 00 f3 mov $f3,#$00 +096f: cd 07 mov x,#$07 +0971: 8f 2a 0d mov $0d,#$2a +0974: 8f 03 0e mov $0e,#$03 +0977: d8 0f mov $0f,x +0979: f5 fc 07 mov a,$07fc+x +097c: c4 31 mov $31,a +097e: 48 ff eor a,#$ff +0980: c4 32 mov $32,a +0982: f4 53 mov a,$53+x +0984: 28 01 and a,#$01 +0986: d0 06 bne $098e +0988: f5 2f 02 mov a,$022f+x +098b: 5f 93 09 jmp $0993 + +098e: 3f db 0e call $0edb +0991: f8 0f mov x,$0f +0993: d5 37 02 mov $0237+x,a +0996: fd mov y,a +0997: e4 2f mov a,$2f +0999: 24 31 and a,$31 +099b: f0 0a beq $09a7 +099d: f5 e4 07 mov a,$07e4+x +09a0: c4 f2 mov $f2,a +09a2: f5 7f 02 mov a,$027f+x +09a5: c4 f3 mov $f3,a +09a7: e4 40 mov a,$40 +09a9: 24 31 and a,$31 +09ab: f0 05 beq $09b2 +09ad: 29 32 40 and ($40),($32) +09b0: 2f 37 bra $09e9 +09b2: f5 d4 07 mov a,$07d4+x +09b5: c4 f2 mov $f2,a +09b7: dd mov a,y +09b8: 80 setc +09b9: a4 f3 sbc a,$f3 +09bb: b0 09 bcs $09c6 +09bd: 8f 80 22 mov $22,#$80 +09c0: 48 ff eor a,#$ff +09c2: bc inc a +09c3: 5f c9 09 jmp $09c9 + +09c6: 8f c0 22 mov $22,#$c0 +09c9: 5c lsr a +09ca: d0 09 bne $09d5 +09cc: ad 00 cmp y,#$00 +09ce: d0 05 bne $09d5 +09d0: e8 82 mov a,#$82 +09d2: 5f e3 09 jmp $09e3 + +09d5: 8d 15 mov y,#$15 +09d7: 76 a8 07 cmp a,$07a8+y +09da: 90 02 bcc $09de +09dc: fe f9 dbnz y,$09d7 +09de: f6 be 07 mov a,$07be+y +09e1: 04 22 or a,$22 +09e3: 75 3f 02 cmp a,$023f+x +09e6: f0 0c beq $09f4 +09e8: fd mov y,a +09e9: f5 dc 07 mov a,$07dc+x +09ec: c4 f2 mov $f2,a +09ee: cb f3 mov $f3,y +09f0: dd mov a,y +09f1: d5 3f 02 mov $023f+x,a +09f4: f5 ec 07 mov a,$07ec+x +09f7: c4 f2 mov $f2,a +09f9: fd mov y,a +09fa: f5 57 02 mov a,$0257+x +09fd: c4 f3 mov $f3,a +09ff: fc inc y +0a00: cb f2 mov $f2,y +0a02: f5 5f 02 mov a,$025f+x +0a05: c4 f3 mov $f3,a +0a07: 80 setc +0a08: b8 15 0d sbc $0d,#$15 +0a0b: b8 00 0e sbc $0e,#$00 +0a0e: 1d dec x +0a0f: 30 03 bmi $0a14 +0a11: 5f 77 09 jmp $0977 + +0a14: 8f 4c f2 mov $f2,#$4c +0a17: fa 46 f3 mov ($f3),($46) +0a1a: e4 46 mov a,$46 +0a1c: 48 ff eor a,#$ff +0a1e: c4 47 mov $47,a +0a20: 29 47 41 and ($41),($47) +0a23: 29 47 43 and ($43),($47) +0a26: 8f 00 45 mov $45,#$00 +0a29: cd 07 mov x,#$07 +0a2b: 8f 29 0d mov $0d,#$29 +0a2e: 8f 05 0e mov $0e,#$05 +0a31: 8f 00 34 mov $34,#$00 +0a34: d8 0f mov $0f,x +0a36: e4 52 mov a,$52 +0a38: d0 13 bne $0a4d +0a3a: f4 53 mov a,$53+x +0a3c: 28 08 and a,#$08 +0a3e: c4 34 mov $34,a +0a40: d0 06 bne $0a48 +0a42: f5 6f 02 mov a,$026f+x +0a45: 5f 4d 0a jmp $0a4d + +0a48: 3f db 0e call $0edb +0a4b: f8 0f mov x,$0f +0a4d: fd mov y,a +0a4e: f5 67 02 mov a,$0267+x +0a51: c4 29 mov $29,a +0a53: cf mul ya +0a54: cd 64 mov x,#$64 +0a56: 9e div ya,x +0a57: f8 0f mov x,$0f +0a59: eb 34 mov y,$34 +0a5b: f0 11 beq $0a6e +0a5d: c4 27 mov $27,a +0a5f: 8d 15 mov y,#$15 +0a61: f7 0d mov a,($0d)+y +0a63: d0 04 bne $0a69 +0a65: e4 27 mov a,$27 +0a67: 2f 05 bra $0a6e +0a69: e4 29 mov a,$29 +0a6b: 80 setc +0a6c: a4 27 sbc a,$27 +0a6e: c4 27 mov $27,a +0a70: f5 f4 07 mov a,$07f4+x +0a73: fd mov y,a +0a74: cb f2 mov $f2,y +0a76: fa 27 f3 mov ($f3),($27) +0a79: e4 29 mov a,$29 +0a7b: 80 setc +0a7c: a4 27 sbc a,$27 +0a7e: fc inc y +0a7f: cb f2 mov $f2,y +0a81: c4 f3 mov $f3,a +0a83: 80 setc +0a84: b8 16 0d sbc $0d,#$16 +0a87: b8 00 0e sbc $0e,#$00 +0a8a: 1d dec x +0a8b: 30 03 bmi $0a90 +0a8d: 5f 34 0a jmp $0a34 + +0a90: cd 07 mov x,#$07 +0a92: 8d 0e mov y,#$0e +0a94: f5 06 02 mov a,$0206+x +0a97: f0 2b beq $0ac4 +0a99: f4 53 mov a,$53+x +0a9b: 28 80 and a,#$80 +0a9d: f0 09 beq $0aa8 +0a9f: f5 fc 07 mov a,$07fc+x +0aa2: 24 41 and a,$41 +0aa4: d0 19 bne $0abf +0aa6: 2f 1c bra $0ac4 +0aa8: f6 17 02 mov a,$0217+y +0aab: 80 setc +0aac: a8 01 sbc a,#$01 +0aae: d6 17 02 mov $0217+y,a +0ab1: c4 27 mov $27,a +0ab3: f6 18 02 mov a,$0218+y +0ab6: a8 00 sbc a,#$00 +0ab8: d6 18 02 mov $0218+y,a +0abb: 04 27 or a,$27 +0abd: d0 05 bne $0ac4 +0abf: e8 00 mov a,#$00 +0ac1: d5 06 02 mov $0206+x,a +0ac4: dc dec y +0ac5: dc dec y +0ac6: 1d dec x +0ac7: 10 cb bpl $0a94 +0ac9: ec 00 02 mov y,$0200 +0acc: f0 54 beq $0b22 +0ace: 8c 01 02 dec $0201 +0ad1: d0 4f bne $0b22 +0ad3: cc 01 02 mov $0201,y +0ad6: e4 16 mov a,$16 +0ad8: e9 02 02 mov x,$0202 +0adb: 30 0e bmi $0aeb +0add: 60 clrc +0ade: 85 03 02 adc a,$0203 +0ae1: b0 04 bcs $0ae7 +0ae3: 68 7f cmp a,#$7f +0ae5: 90 13 bcc $0afa +0ae7: e8 7f mov a,#$7f +0ae9: 2f 0a bra $0af5 +0aeb: 80 setc +0aec: a5 03 02 sbc a,$0203 +0aef: f0 04 beq $0af5 +0af1: b0 07 bcs $0afa +0af3: e8 00 mov a,#$00 +0af5: 8d 00 mov y,#$00 +0af7: cc 00 02 mov $0200,y +0afa: c4 16 mov $16,a +0afc: 5d mov x,a +0afd: 8f 2c f2 mov $f2,#$2c +0b00: 65 04 02 cmp a,$0204 +0b03: 90 03 bcc $0b08 +0b05: e5 04 02 mov a,$0204 +0b08: c4 f3 mov $f3,a +0b0a: 8f 3c f2 mov $f2,#$3c +0b0d: 7d mov a,x +0b0e: 65 05 02 cmp a,$0205 +0b11: 90 03 bcc $0b16 +0b13: e5 04 02 mov a,$0204 +0b16: c4 f3 mov $f3,a +0b18: 8f 0c f2 mov $f2,#$0c +0b1b: d8 f3 mov $f3,x +0b1d: 8f 1c f2 mov $f2,#$1c +0b20: d8 f3 mov $f3,x +0b22: 6f ret + +0b23: e4 4b mov a,$4b +0b25: 10 0c bpl $0b33 +0b27: 28 1f and a,#$1f +0b29: 8f 6c f2 mov $f2,#$6c +0b2c: c4 f3 mov $f3,a +0b2e: 09 31 4d or ($4d),($31) +0b31: 2f 03 bra $0b36 +0b33: 29 32 4d and ($4d),($32) +0b36: 8f 3d f2 mov $f2,#$3d +0b39: fa 4d f3 mov ($f3),($4d) +0b3c: 6f ret + +0b3d: c4 17 mov $17,a +0b3f: fa f4 19 mov ($19),($f4) +0b42: fa f5 1a mov ($1a),($f5) +0b45: e4 f7 mov a,$f7 +0b47: 8f b1 f1 mov $f1,#$b1 +0b4a: 28 fe and a,#$fe +0b4c: c4 18 mov $18,a +0b4e: fa 17 f6 mov ($f6),($17) +0b51: 5d mov x,a +0b52: c8 1d cmp x,#$1d +0b54: b0 13 bcs $0b69 +0b56: e4 19 mov a,$19 +0b58: eb 1a mov y,$1a +0b5a: 1f a4 17 jmp ($17a4+x) + +0b5d: 8f ff 1b mov $1b,#$ff +0b60: 3f 41 0e call $0e41 +0b63: 8f 6c f2 mov $f2,#$6c +0b66: 8f 00 f3 mov $f3,#$00 +0b69: 6f ret + +0b6a: da 3a movw $3a,ya +0b6c: 8f ff 39 mov $39,#$ff +0b6f: 6f ret + +0b70: c4 52 mov $52,a +0b72: 6f ret + +0b73: e8 00 mov a,#$00 +0b75: c5 00 02 mov $0200,a +0b78: 6f ret + +0b79: cd 01 mov x,#$01 +0b7b: 2f 02 bra $0b7f +0b7d: cd ff mov x,#$ff +0b7f: c5 00 02 mov $0200,a +0b82: c5 01 02 mov $0201,a +0b85: cc 03 02 mov $0203,y +0b88: c9 02 02 mov $0202,x +0b8b: 6f ret + +0b8c: 8f 00 5c mov $5c,#$00 +0b8f: 68 00 cmp a,#$00 +0b91: d0 03 bne $0b96 +0b93: c5 4f 05 mov $054f,a +0b96: 6f ret + +0b97: c5 16 02 mov $0216,a +0b9a: cd 07 mov x,#$07 +0b9c: ad 80 cmp y,#$80 +0b9e: f0 17 beq $0bb7 +0ba0: e8 01 mov a,#$01 +0ba2: b0 0e bcs $0bb2 +0ba4: ad 00 cmp y,#$00 +0ba6: d0 08 bne $0bb0 +0ba8: e5 16 02 mov a,$0216 +0bab: 75 0e 02 cmp a,$020e+x +0bae: d0 22 bne $0bd2 +0bb0: e8 80 mov a,#$80 +0bb2: 75 06 02 cmp a,$0206+x +0bb5: d0 1b bne $0bd2 +0bb7: f5 dc 07 mov a,$07dc+x +0bba: c4 f2 mov $f2,a +0bbc: e8 00 mov a,#$00 +0bbe: c4 f3 mov $f3,a +0bc0: d5 2f 02 mov $022f+x,a +0bc3: d5 06 02 mov $0206+x,a +0bc6: d5 77 02 mov $0277+x,a +0bc9: d4 53 mov $53+x,a +0bcb: f5 fc 07 mov a,$07fc+x +0bce: 04 45 or a,$45 +0bd0: c4 45 mov $45,a +0bd2: 1d dec x +0bd3: 10 c7 bpl $0b9c +0bd5: 6f ret + +0bd6: 8d 0e mov y,#$0e +0bd8: c5 16 02 mov $0216,a +0bdb: 3f bb 0d call $0dbb +0bde: da 09 movw $09,ya +0be0: 8d 00 mov y,#$00 +0be2: f7 09 mov a,($09)+y +0be4: c4 3c mov $3c,a +0be6: 3a 09 incw $09 +0be8: 8d 07 mov y,#$07 +0bea: f7 09 mov a,($09)+y +0bec: c4 3d mov $3d,a +0bee: 8d 06 mov y,#$06 +0bf0: f7 09 mov a,($09)+y +0bf2: c4 3e mov $3e,a +0bf4: 8f 80 3f mov $3f,#$80 +0bf7: cd 07 mov x,#$07 +0bf9: 3f 44 0c call $0c44 +0bfc: 30 36 bmi $0c34 +0bfe: e8 80 mov a,#$80 +0c00: d5 06 02 mov $0206+x,a +0c03: e5 16 02 mov a,$0216 +0c06: d5 0e 02 mov $020e+x,a +0c09: 8d 02 mov y,#$02 +0c0b: f7 09 mov a,($09)+y +0c0d: c4 35 mov $35,a +0c0f: fc inc y +0c10: f7 09 mov a,($09)+y +0c12: c4 36 mov $36,a +0c14: 8d 04 mov y,#$04 +0c16: f7 09 mov a,($09)+y +0c18: c4 37 mov $37,a +0c1a: fc inc y +0c1b: f7 09 mov a,($09)+y +0c1d: c4 38 mov $38,a +0c1f: e4 39 mov a,$39 +0c21: f0 04 beq $0c27 +0c23: ba 3a movw ya,$3a +0c25: da 37 movw $37,ya +0c27: 8d 01 mov y,#$01 +0c29: f7 09 mov a,($09)+y +0c2b: 2d push a +0c2c: 8d 00 mov y,#$00 +0c2e: f7 09 mov a,($09)+y +0c30: ee pop y +0c31: 3f 6e 0c call $0c6e +0c34: 60 clrc +0c35: 98 08 09 adc $09,#$08 +0c38: 90 02 bcc $0c3c +0c3a: ab 0a inc $0a +0c3c: 8b 3c dec $3c +0c3e: d0 a8 bne $0be8 +0c40: 8f 00 39 mov $39,#$00 +0c43: 6f ret + +0c44: 8d 07 mov y,#$07 +0c46: e4 3f mov a,$3f +0c48: 24 3d and a,$3d +0c4a: f0 0c beq $0c58 +0c4c: f5 06 02 mov a,$0206+x +0c4f: f0 15 beq $0c66 +0c51: e4 3e mov a,$3e +0c53: 75 27 02 cmp a,$0227+x +0c56: b0 10 bcs $0c68 +0c58: 4b 3f lsr $3f +0c5a: d0 05 bne $0c61 +0c5c: 8f 80 3f mov $3f,#$80 +0c5f: cd 08 mov x,#$08 +0c61: 1d dec x +0c62: dc dec y +0c63: 10 e1 bpl $0c46 +0c65: 6f ret + +0c66: e4 3e mov a,$3e +0c68: d5 27 02 mov $0227+x,a +0c6b: e8 00 mov a,#$00 +0c6d: 6f ret + +0c6e: d8 33 mov $33,x ; play sound (instrument) +0c70: 2d push a +0c71: f5 dc 07 mov a,$07dc+x +0c74: c4 f2 mov $f2,a +0c76: 8f 9f f3 mov $f3,#$9f +0c79: dd mov a,y +0c7a: d5 67 02 mov $0267+x,a +0c7d: 7d mov a,x +0c7e: 1c asl a +0c7f: 5d mov x,a +0c80: e4 37 mov a,$37 +0c82: d5 47 02 mov $0247+x,a +0c85: e4 38 mov a,$38 +0c87: d5 48 02 mov $0248+x,a +0c8a: e4 35 mov a,$35 +0c8c: d5 17 02 mov $0217+x,a +0c8f: e4 36 mov a,$36 +0c91: d5 18 02 mov $0218+x,a +0c94: ae pop a +0c95: 8d 02 mov y,#$02 +0c97: 3f bb 0d call $0dbb +0c9a: da 07 movw $07,ya ; get current voice and instrument +0c9c: f8 33 mov x,$33 +0c9e: f5 fc 07 mov a,$07fc+x ; get channel bit mask ID +0ca1: c4 4e mov $4e,a +0ca3: 48 ff eor a,#$ff ; and store inversion +0ca5: c4 4f mov $4f,a +0ca7: 8d 00 mov y,#$00 ; get mode flags +0ca9: f7 07 mov a,($07)+y +0cab: d4 53 mov $53+x,a ; save permanently and in local temp RAM +0cad: c4 34 mov $34,a +0caf: 28 20 and a,#$20 ; is pitch modulation enabled? ($20 = pm) +0cb1: f0 05 beq $0cb8 ; if not... +0cb3: 09 4e 50 or ($50),($4e) ; turn pitch mod on +0cb6: 2f 03 bra $0cbb +0cb8: 29 4f 50 and ($50),($4f) ; turn pitch mod off + +0cbb: 8f 2d f2 mov $f2,#$2d +0cbe: fa 50 f3 mov ($f3),($50) +0cc1: e4 34 mov a,$34 ; retrieve the saved flag +0cc3: 28 10 and a,#$10 ; is echo enabled? ($10 = echo) +0cc5: f0 2f beq $0cf6 ; if not... +0cc7: 8d 05 mov y,#$05 ; get echo byte from sound +0cc9: f7 07 mov a,($07)+y +0ccb: 8d 0c mov y,#$0c +0ccd: 3f bb 0d call $0dbb +0cd0: 8d 00 mov y,#$00 +0cd2: f6 0c 08 mov a,$080c+y ; get the echo register values to "poke" +0cd5: c4 f2 mov $f2,a ; (from the table) +0cd7: f7 10 mov a,($10)+y ; now get info to feed to the registers +0cd9: ad 01 cmp y,#$01 ; (from the echo environment) +0cdb: f0 04 beq $0ce1 +0cdd: ad 02 cmp y,#$02 +0cdf: d0 09 bne $0cea +0ce1: d6 03 02 mov $0203+y,a +0ce4: 64 16 cmp a,$16 +0ce6: 90 02 bcc $0cea +0ce8: e4 16 mov a,$16 +0cea: c4 f3 mov $f3,a +0cec: fc inc y +0ced: ad 0c cmp y,#$0c ; repeat for every byte of the array +0cef: 90 e1 bcc $0cd2 +0cf1: 09 4e 51 or ($51),($4e) +0cf4: 2f 03 bra $0cf9 + +0cf6: 29 4f 51 and ($51),($4f) +0cf9: 8f 4d f2 mov $f2,#$4d +0cfc: fa 51 f3 mov ($f3),($51) ; send the echo unit +0cff: e4 34 mov a,$34 +0d01: 28 01 and a,#$01 +0d03: 0d push psw +0d04: 8d 01 mov y,#$01 +0d06: f7 07 mov a,($07)+y ; now get the amplitude +0d08: 8e pop psw +0d09: d0 08 bne $0d13 +0d0b: f8 33 mov x,$33 +0d0d: d5 2f 02 mov $022f+x,a +0d10: 5f 29 0d jmp $0d29 + +0d13: 8d 04 mov y,#$04 +0d15: 3f bb 0d call $0dbb +0d18: f8 33 mov x,$33 +0d1a: f5 20 08 mov a,$0820+x +0d1d: c4 0d mov $0d,a +0d1f: f5 18 08 mov a,$0818+x +0d22: c4 0e mov $0e,a +0d24: ba 35 movw ya,$35 +0d26: 3f 64 0e call $0e64 +0d29: e4 34 mov a,$34 +0d2b: 28 04 and a,#$04 +0d2d: f0 1a beq $0d49 +0d2f: 8d 03 mov y,#$03 +0d31: f7 07 mov a,($07)+y +0d33: 8d 06 mov y,#$06 +0d35: 3f bb 0d call $0dbb +0d38: f8 33 mov x,$33 +0d3a: f5 30 08 mov a,$0830+x +0d3d: c4 0d mov $0d,a +0d3f: f5 28 08 mov a,$0828+x +0d42: c4 0e mov $0e,a +0d44: ba 35 movw ya,$35 +0d46: 3f 64 0e call $0e64 +0d49: e4 34 mov a,$34 +0d4b: 28 08 and a,#$08 +0d4d: 0d push psw +0d4e: 8d 04 mov y,#$04 +0d50: f7 07 mov a,($07)+y +0d52: 8e pop psw +0d53: d0 08 bne $0d5d +0d55: f8 33 mov x,$33 +0d57: d5 6f 02 mov $026f+x,a +0d5a: 5f 8a 0d jmp $0d8a + +0d5d: 8d 08 mov y,#$08 +0d5f: 3f bb 0d call $0dbb +0d62: f8 33 mov x,$33 +0d64: f5 50 08 mov a,$0850+x +0d67: c4 0d mov $0d,a +0d69: f5 48 08 mov a,$0848+x +0d6c: c4 0e mov $0e,a +0d6e: ba 35 movw ya,$35 +0d70: 3f 64 0e call $0e64 +0d73: 8d 07 mov y,#$07 +0d75: f7 0d mov a,($0d)+y +0d77: f0 0b beq $0d84 +0d79: 8d 15 mov y,#$15 +0d7b: f7 0d mov a,($0d)+y +0d7d: d0 05 bne $0d84 +0d7f: e8 ff mov a,#$ff +0d81: 5f 86 0d jmp $0d86 + +0d84: e8 00 mov a,#$00 +0d86: 8d 15 mov y,#$15 +0d88: d7 0d mov ($0d)+y,a +0d8a: e4 34 mov a,$34 +0d8c: 28 02 and a,#$02 +0d8e: 0d push psw +0d8f: 8d 02 mov y,#$02 +0d91: f7 07 mov a,($07)+y +0d93: 8e pop psw +0d94: d0 08 bne $0d9e +0d96: f8 33 mov x,$33 +0d98: d5 77 02 mov $0277+x,a +0d9b: 5f b4 0d jmp $0db4 + +0d9e: 8d 0a mov y,#$0a +0da0: 3f bb 0d call $0dbb +0da3: f8 33 mov x,$33 +0da5: f5 40 08 mov a,$0840+x +0da8: c4 0d mov $0d,a +0daa: f5 38 08 mov a,$0838+x +0dad: c4 0e mov $0e,a +0daf: ba 35 movw ya,$35 +0db1: 3f 64 0e call $0e64 +0db4: 09 4e 45 or ($45),($4e) +0db7: 09 4e 40 or ($40),($4e) +0dba: 6f ret + +0dbb: 8f 00 06 mov $06,#$00 ; load current song/sfx/etc. address into stack +0dbe: 1c asl a +0dbf: 2b 06 rol $06 +0dc1: 60 clrc +0dc2: 96 e0 17 adc a,$17e0+y +0dc5: c4 05 mov $05,a +0dc7: e4 06 mov a,$06 +0dc9: 96 e1 17 adc a,$17e1+y +0dcc: c4 06 mov $06,a +0dce: 8d 01 mov y,#$01 +0dd0: f7 05 mov a,($05)+y +0dd2: c4 11 mov $11,a +0dd4: dc dec y +0dd5: f7 05 mov a,($05)+y +0dd7: c4 10 mov $10,a +0dd9: eb 11 mov y,$11 +0ddb: 6f ret + +; pre-defined DSP flags +0ddc: db $6c,$ff ; clear flags +0dde: db $3d,$00 ; turn off noise generator (NON) +0de0: db $4d,$00 ; turn off echo (EON) +0de2: db $7d,$00 ; turn off echo delay time (EDL) +0de4: db $6d,$ff ; pointer to echo memory (ESA) +0de6: db $5d,$18 ; set sample directory ($1800) +0de8: db $5c,$00 ; set key off (KOFF) +0dea: db $2d,$00 ; disable pitch modulation (PMON) +0dec: db $7c,$00 ; end of sample flag +0dee: db $2c,$00 ; turn off EVOLL +0df0: db $3c,$00 ; turn off EVOLR +0df2: db $0c,$7f ; turn on MVOLL +0df4: db $1c,$7f ; turn on MVOLR +0df6: db $ff + +0df7: 8d 00 mov y,#$00 +0df9: f6 dc 0d mov a,$0ddc+y ; set DSP flags from table +0dfc: 68 ff cmp a,#$ff +0dfe: f0 0b beq $0e0b +0e00: c4 f2 mov $f2,a +0e02: fc inc y +0e03: f6 dc 0d mov a,$0ddc+y +0e06: c4 f3 mov $f3,a +0e08: fc inc y +0e09: d0 ee bne $0df9 +0e0b: cd 70 mov x,#$70 +0e0d: e8 00 mov a,#$00 +0e0f: d4 04 mov $04+x,a +0e11: d4 07 mov $07+x,a +0e13: d4 03 mov $03+x,a +0e15: d4 02 mov $02+x,a +0e17: e8 00 mov a,#$00 +0e19: d4 05 mov $05+x,a +0e1b: 7d mov a,x +0e1c: 80 setc +0e1d: a8 10 sbc a,#$10 +0e1f: 5d mov x,a +0e20: 10 eb bpl $0e0d +0e22: e8 02 mov a,#$02 +0e24: cd 07 mov x,#$07 +0e26: 3f 4b 0e call $0e4b +0e29: fd mov y,a +0e2a: d6 00 00 mov $0000+y,a +0e2d: fc inc y +0e2e: ad f0 cmp y,#$f0 +0e30: 90 f8 bcc $0e2a +0e32: 9c dec a +0e33: c4 41 mov $41,a +0e35: c4 43 mov $43,a +0e37: c4 48 mov $48,a +0e39: c4 42 mov $42,a +0e3b: c4 47 mov $47,a +0e3d: 8f 7f 16 mov $16,#$7f +0e40: 6f ret + +0e41: e5 e1 17 mov a,$17e1 +0e44: 8f 6d f2 mov $f2,#$6d +0e47: c4 f3 mov $f3,a +0e49: cd 00 mov x,#$00 +0e4b: c5 55 0e mov $0e55,a +0e4e: e8 00 mov a,#$00 +0e50: c5 54 0e mov $0e54,a +0e53: c5 00 00 mov $0000,a +0e56: ac 54 0e inc $0e54 +0e59: d0 f8 bne $0e53 +0e5b: ac 55 0e inc $0e55 +0e5e: 1e 55 0e cmp x,$0e55 +0e61: d0 f0 bne $0e53 +0e63: 6f ret + +0e64: da 27 movw $27,ya +0e66: 8d 07 mov y,#$07 +0e68: f7 10 mov a,($10)+y ; get amplitude table +0e6a: d7 0d mov ($0d)+y,a +0e6c: dc dec y +0e6d: 10 f9 bpl $0e68 +0e6f: e4 10 mov a,$10 +0e71: 60 clrc +0e72: 88 08 adc a,#$08 +0e74: 8d 08 mov y,#$08 +0e76: d7 0d mov ($0d)+y,a +0e78: e4 11 mov a,$11 +0e7a: 88 00 adc a,#$00 +0e7c: fc inc y +0e7d: d7 0d mov ($0d)+y,a +0e7f: 8d 03 mov y,#$03 +0e81: f7 0d mov a,($0d)+y +0e83: 5d mov x,a +0e84: 8d 02 mov y,#$02 +0e86: f7 0d mov a,($0d)+y +0e88: fd mov y,a +0e89: 7d mov a,x +0e8a: cf mul ya +0e8b: da 2b movw $2b,ya +0e8d: ba 27 movw ya,$27 +0e8f: 9a 2b subw ya,$2b +0e91: b0 03 bcs $0e96 +0e93: e8 00 mov a,#$00 +0e95: fd mov y,a +0e96: cb 2c mov $2c,y +0e98: 8d 0d mov y,#$0d +0e9a: d7 0d mov ($0d)+y,a +0e9c: fc inc y +0e9d: e4 2c mov a,$2c +0e9f: d7 0d mov ($0d)+y,a +0ea1: 8d 03 mov y,#$03 +0ea3: f7 0d mov a,($0d)+y +0ea5: bc inc a +0ea6: 8d 0f mov y,#$0f +0ea8: d7 0d mov ($0d)+y,a +0eaa: 68 03 cmp a,#$03 +0eac: b0 06 bcs $0eb4 +0eae: 8d 04 mov y,#$04 +0eb0: e8 00 mov a,#$00 +0eb2: d7 0d mov ($0d)+y,a +0eb4: 8d 08 mov y,#$08 +0eb6: f7 0d mov a,($0d)+y +0eb8: 8d 0a mov y,#$0a +0eba: d7 0d mov ($0d)+y,a +0ebc: 8d 09 mov y,#$09 +0ebe: f7 0d mov a,($0d)+y +0ec0: 8d 0b mov y,#$0b +0ec2: d7 0d mov ($0d)+y,a +0ec4: e8 01 mov a,#$01 +0ec6: 8d 14 mov y,#$14 +0ec8: d7 0d mov ($0d)+y,a +0eca: 9c dec a +0ecb: 8d 0c mov y,#$0c +0ecd: d7 0d mov ($0d)+y,a +0ecf: 8d 12 mov y,#$12 +0ed1: d7 0d mov ($0d)+y,a +0ed3: fc inc y +0ed4: d7 0d mov ($0d)+y,a +0ed6: c4 20 mov $20,a +0ed8: 5f 89 0f jmp $0f89 + +0edb: 8d 14 mov y,#$14 +0edd: f7 0d mov a,($0d)+y +0edf: f0 39 beq $0f1a +0ee1: 8d 04 mov y,#$04 +0ee3: f7 0d mov a,($0d)+y +0ee5: c4 20 mov $20,a +0ee7: 8d 0f mov y,#$0f +0ee9: f7 0d mov a,($0d)+y +0eeb: c4 21 mov $21,a +0eed: f0 03 beq $0ef2 +0eef: 9c dec a +0ef0: d0 06 bne $0ef8 +0ef2: 8d 03 mov y,#$03 +0ef4: f7 0d mov a,($0d)+y +0ef6: 8d 0f mov y,#$0f +0ef8: d7 0d mov ($0d)+y,a +0efa: 78 02 21 cmp $21,#$02 +0efd: 90 03 bcc $0f02 +0eff: 5f 89 0f jmp $0f89 + +0f02: 8d 0c mov y,#$0c +0f04: f7 0d mov a,($0d)+y +0f06: bc inc a +0f07: 8d 05 mov y,#$05 +0f09: 77 0d cmp a,($0d)+y +0f0b: 90 17 bcc $0f24 +0f0d: 9c dec a +0f0e: 8d 01 mov y,#$01 +0f10: 77 0d cmp a,($0d)+y +0f12: f0 6a beq $0f7e +0f14: e8 00 mov a,#$00 +0f16: 8d 14 mov y,#$14 +0f18: d7 0d mov ($0d)+y,a +0f1a: 8d 11 mov y,#$11 +0f1c: f7 0d mov a,($0d)+y +0f1e: 2d push a +0f1f: dc dec y +0f20: f7 0d mov a,($0d)+y +0f22: ee pop y +0f23: 6f ret + +0f24: 8d 0c mov y,#$0c +0f26: d7 0d mov ($0d)+y,a +0f28: 8d 06 mov y,#$06 +0f2a: f7 0d mov a,($0d)+y +0f2c: 8d 0a mov y,#$0a +0f2e: 60 clrc +0f2f: 97 0d adc a,($0d)+y +0f31: d7 0d mov ($0d)+y,a +0f33: 90 07 bcc $0f3c +0f35: fc inc y +0f36: f7 0d mov a,($0d)+y +0f38: 88 00 adc a,#$00 +0f3a: d7 0d mov ($0d)+y,a +0f3c: 8d 0e mov y,#$0e +0f3e: f7 0d mov a,($0d)+y +0f40: 5d mov x,a +0f41: dc dec y +0f42: f7 0d mov a,($0d)+y +0f44: d0 04 bne $0f4a +0f46: c8 00 cmp x,#$00 +0f48: f0 3f beq $0f89 +0f4a: 8d 03 mov y,#$03 +0f4c: 80 setc +0f4d: b7 0d sbc a,($0d)+y +0f4f: 8d 0d mov y,#$0d +0f51: d7 0d mov ($0d)+y,a +0f53: c4 2b mov $2b,a +0f55: 7d mov a,x +0f56: a8 00 sbc a,#$00 +0f58: b0 06 bcs $0f60 +0f5a: e8 00 mov a,#$00 +0f5c: d7 0d mov ($0d)+y,a +0f5e: c4 2b mov $2b,a +0f60: fc inc y +0f61: d7 0d mov ($0d)+y,a +0f63: 04 2b or a,$2b +0f65: d0 0b bne $0f72 +0f67: 8d 01 mov y,#$01 +0f69: f7 0d mov a,($0d)+y +0f6b: 68 ff cmp a,#$ff +0f6d: f0 03 beq $0f72 +0f6f: 5f 82 0f jmp $0f82 + +0f72: 8d 0c mov y,#$0c +0f74: f7 0d mov a,($0d)+y +0f76: 8d 01 mov y,#$01 +0f78: 77 0d cmp a,($0d)+y +0f7a: 90 0d bcc $0f89 +0f7c: f0 0b beq $0f89 +0f7e: 8d 00 mov y,#$00 +0f80: f7 0d mov a,($0d)+y +0f82: 8d 0c mov y,#$0c +0f84: d7 0d mov ($0d)+y,a +0f86: 3f 2c 10 call $102c +0f89: f8 20 mov x,$20 +0f8b: f0 14 beq $0fa1 +0f8d: 78 03 21 cmp $21,#$03 +0f90: 90 0f bcc $0fa1 +0f92: 8d 13 mov y,#$13 +0f94: cd 03 mov x,#$03 +0f96: f7 0d mov a,($0d)+y +0f98: d4 1c mov $1c+x,a +0f9a: dc dec y +0f9b: 1d dec x +0f9c: 10 f8 bpl $0f96 +0f9e: 5f 09 10 jmp $1009 + +0fa1: 3f 1b 10 call $101b +0fa4: 8d 06 mov y,#$06 +0fa6: f7 0d mov a,($0d)+y +0fa8: 5d mov x,a +0fa9: 8d 00 mov y,#$00 +0fab: f7 12 mov a,($12)+y +0fad: c8 01 cmp x,#$01 +0faf: f0 06 beq $0fb7 +0fb1: 5d mov x,a +0fb2: fc inc y +0fb3: f7 12 mov a,($12)+y +0fb5: fd mov y,a +0fb6: 7d mov a,x +0fb7: f8 20 mov x,$20 +0fb9: f0 52 beq $100d +0fbb: 78 02 21 cmp $21,#$02 +0fbe: f0 4d beq $100d +0fc0: da 27 movw $27,ya +0fc2: 8d 11 mov y,#$11 +0fc4: f7 0d mov a,($0d)+y +0fc6: c4 1d mov $1d,a +0fc8: dc dec y +0fc9: f7 0d mov a,($0d)+y +0fcb: c4 1c mov $1c,a +0fcd: eb 1d mov y,$1d +0fcf: 80 setc +0fd0: 9a 27 subw ya,$27 +0fd2: da 1e movw $1e,ya +0fd4: e8 00 mov a,#$00 +0fd6: 3c rol a +0fd7: c4 27 mov $27,a +0fd9: d0 08 bne $0fe3 +0fdb: 58 ff 1e eor $1e,#$ff +0fde: 58 ff 1f eor $1f,#$ff +0fe1: 3a 1e incw $1e +0fe3: 8d 03 mov y,#$03 +0fe5: f7 0d mov a,($0d)+y +0fe7: 5d mov x,a +0fe8: ba 1e movw ya,$1e +0fea: 3f 47 10 call $1047 +0fed: c4 1e mov $1e,a +0fef: d8 1f mov $1f,x +0ff1: 78 01 27 cmp $27,#$01 +0ff4: d0 08 bne $0ffe +0ff6: 58 ff 1e eor $1e,#$ff +0ff9: 58 ff 1f eor $1f,#$ff +0ffc: 3a 1e incw $1e +0ffe: 8d 12 mov y,#$12 +1000: e4 1e mov a,$1e +1002: d7 0d mov ($0d)+y,a +1004: fc inc y +1005: e4 1f mov a,$1f +1007: d7 0d mov ($0d)+y,a +1009: ba 1c movw ya,$1c +100b: 7a 1e addw ya,$1e +100d: da 1c movw $1c,ya +100f: 8d 10 mov y,#$10 +1011: d7 0d mov ($0d)+y,a +1013: e4 1d mov a,$1d +1015: fc inc y +1016: d7 0d mov ($0d)+y,a +1018: ba 1c movw ya,$1c +101a: 6f ret + +101b: 8d 0a mov y,#$0a +101d: 5f 22 10 jmp $1022 + +1020: 8d 08 mov y,#$08 +1022: f7 0d mov a,($0d)+y +1024: c4 12 mov $12,a +1026: fc inc y +1027: f7 0d mov a,($0d)+y +1029: c4 13 mov $13,a +102b: 6f ret + +102c: 2d push a +102d: 3f 20 10 call $1020 +1030: 8d 06 mov y,#$06 +1032: f7 0d mov a,($0d)+y +1034: fd mov y,a +1035: ae pop a +1036: cf mul ya +1037: 7a 12 addw ya,$12 +1039: da 12 movw $12,ya +103b: 8d 0a mov y,#$0a +103d: e4 12 mov a,$12 +103f: d7 0d mov ($0d)+y,a +1041: fc inc y +1042: e4 13 mov a,$13 +1044: d7 0d mov ($0d)+y,a +1046: 6f ret + +1047: c8 00 cmp x,#$00 +1049: d0 05 bne $1050 +104b: e8 ff mov a,#$ff +104d: fd mov y,a +104e: 5d mov x,a +104f: 6f ret + +1050: cb 24 mov $24,y +1052: 3e 24 cmp x,$24 +1054: f0 02 beq $1058 +1056: b0 19 bcs $1071 +1058: c4 23 mov $23,a +105a: dd mov a,y +105b: 8d 00 mov y,#$00 +105d: 9e div ya,x +105e: c4 25 mov $25,a +1060: fd mov y,a +1061: 7d mov a,x +1062: cf mul ya +1063: c4 26 mov $26,a +1065: e4 24 mov a,$24 +1067: 80 setc +1068: a4 26 sbc a,$26 +106a: fd mov y,a +106b: e4 23 mov a,$23 +106d: 9e div ya,x +106e: f8 25 mov x,$25 +1070: 6f ret + +1071: 9e div ya,x +1072: cd 00 mov x,#$00 +1074: 6f ret + +1075: f5 7f 02 mov a,$027f+x +1078: 8d 04 mov y,#$04 +107a: cf mul ya +107b: 7a 0b addw ya,$0b +107d: da 03 movw $03,ya +107f: 8d 01 mov y,#$01 +1081: f7 03 mov a,($03)+y +1083: c4 2a mov $2a,a +1085: dc dec y +1086: f7 03 mov a,($03)+y +1088: 80 setc +1089: a8 03 sbc a,#$03 +108b: c4 29 mov $29,a +108d: b8 00 2a sbc $2a,#$00 +1090: f7 29 mov a,($29)+y +1092: c4 49 mov $49,a +1094: fc inc y +1095: f7 29 mov a,($29)+y +1097: c4 4a mov $4a,a +1099: fc inc y +109a: f7 29 mov a,($29)+y +109c: c4 4b mov $4b,a +109e: 6f ret + +109f: ad 04 cmp y,#$04 +10a1: 90 06 bcc $10a9 +10a3: d0 0a bne $10af +10a5: 68 b0 cmp a,#$b0 +10a7: b0 06 bcs $10af +10a9: 8f ff 4c mov $4c,#$ff +10ac: 5f c5 10 jmp $10c5 + +10af: ad 80 cmp y,#$80 +10b1: 90 0f bcc $10c2 +10b3: 8f 00 4c mov $4c,#$00 +10b6: 60 clrc ; convert note to pitch from table +10b7: 88 20 adc a,#$20 +10b9: 5d mov x,a +10ba: dd mov a,y +10bb: 88 df adc a,#$df +10bd: fd mov y,a +10be: 7d mov a,x +10bf: 5f c5 10 jmp $10c5 + +10c2: 8f 04 4c mov $4c,#$04 +10c5: cd f0 mov x,#$f0 +10c7: 9e div ya,x +10c8: 78 ff 4c cmp $4c,#$ff +10cb: d0 02 bne $10cf +10cd: c4 4c mov $4c,a +10cf: f6 ea 10 mov a,$10ea+y +10d2: c4 27 mov $27,a +10d4: f6 da 11 mov a,$11da+y +10d7: c4 28 mov $28,a +10d9: e8 04 mov a,#$04 +10db: 80 setc +10dc: a4 4c sbc a,$4c +10de: f0 07 beq $10e7 +10e0: fd mov y,a +10e1: 4b 28 lsr $28 +10e3: 6b 27 ror $27 +10e5: fe fa dbnz y,$10e1 +10e7: ba 27 movw ya,$27 +10e9: 6f ret + +; pitch table (low byte) +10ea: db $00,$18,$2f,$47,$5f,$77,$8f,$a7,$bf,$d8,$f0,$08,$21,$39,$52,$6b,$83,$9c,$b5,$ce,$e7,$00,$19,$33,$4c,$65,$7f,$98,$b2,$cc,$e5,$ff,$19,$33,$4d,$67,$82,$9c,$b6,$d1,$eb,$06,$20,$3b,$56,$71,$8c,$a7,$c2,$dd,$f9,$14,$2f,$4b,$67,$82,$9e,$ba,$d6,$f2,$0e,$2a,$46,$63,$7f,$9c,$b8,$d5,$f2,$0f,$2b,$48,$66,$83,$a0,$bd,$db,$f8,$16,$34,$51,$6f,$8d,$ab,$c9,$e7,$06,$24,$43,$61,$80,$9e,$bd,$dc,$fb,$1a,$39,$59,$78,$97,$b7,$d7,$f6,$16,$36,$56,$76,$96,$b7,$d7,$f7,$18,$39,$59,$7a,$9b,$bc,$dd,$ff,$20,$41,$63,$84,$a6,$c8,$ea,$0c,$2e,$50,$72,$95,$b7,$da,$fc,$1f,$42,$65,$88,$ab,$cf,$f2,$16,$39,$5d,$81,$a5,$c9,$ed,$11,$35,$5a,$7e,$a3,$c8,$ed,$12,$37,$5c,$81,$a6,$cc,$f2,$17,$3d,$63,$89,$af,$d6,$fc,$22,$49,$70,$97,$be,$e5,$0c,$33,$5a,$82,$aa,$d1,$f9,$21,$49,$71,$9a,$c2,$eb,$13,$3c,$65,$8e,$b7,$e0,$0a,$33,$5d,$87,$b0,$da,$04,$2f,$59,$84,$ae,$d9,$04,$2f,$5a,$85,$b0,$dc,$07,$33,$5f,$8b,$b7,$e3,$0f,$3c,$68,$95,$c2,$ef,$1c,$49,$77,$a4,$d2,$00,$2e,$5c,$8a,$b8,$e7,$15,$44,$73,$a2,$d1 + +; pitch table (high byte) +11d9: db $20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$23,$23,$23,$23,$23,$23,$23,$23,$23,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$25,$25,$25,$25,$25,$25,$25,$25,$25,$26,$26,$26,$26,$26,$26,$26,$26,$26,$27,$27,$27,$27,$27,$27,$27,$27,$27,$28,$28,$28,$28,$28,$28,$28,$28,$29,$29,$29,$29,$29,$29,$29,$29,$29,$2a,$2a,$2a,$2a,$2a,$2a,$2a,$2a,$2b,$2b,$2b,$2b,$2b,$2b,$2b,$2b,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2d,$2d,$2d,$2d,$2d,$2d,$2d,$2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e,$2f,$2f,$2f,$2f,$2f,$2f,$2f,$30,$30,$30,$30,$30,$30,$30,$31,$31,$31,$31,$31,$31,$31,$32,$32,$32,$32,$32,$32,$32,$33,$33,$33,$33,$33,$33,$33,$34,$34,$34,$34,$34,$34,$35,$35,$35,$35,$35,$35,$35,$36,$36,$36,$36,$36,$36,$37,$37,$37,$37,$37,$37,$38,$38,$38,$38,$38,$38,$39,$39,$39,$39,$39,$39,$3a,$3a,$3a,$3a,$3a,$3a,$3b,$3b,$3b,$3b,$3b,$3b,$3c,$3c,$3c,$3c,$3c,$3c,$3d,$3d,$3d,$3d,$3d,$3e,$3e,$3e,$3e,$3e,$3e,$3f,$3f,$3f,$3f,$3f + +; note interval frequencies (low byte) +12ca: db $30,$20,$ac,$10,$24,$38,$4c,$60,$74,$88,$9c,$b0,$c4,$d8,$ec,$00,$14,$28,$3c,$50,$64,$78,$8c,$a0,$b4,$c8,$dc,$f0,$54,$e0,$d0,$c0 + +; note interval frequencies (high byte) +12ea: db $fd,$fe,$fe,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$02,$03 + +130a: e4 5c mov a,$5c +130c: d0 0f bne $131d +130e: e5 4f 05 mov a,$054f +1311: f0 22 beq $1335 +1313: e8 00 mov a,#$00 +1315: c5 4f 05 mov $054f,a +1318: 3f 0a 17 call $170a +131b: 2f ed bra $130a +131d: e4 5b mov a,$5b +131f: 9c dec a +1320: c4 5d mov $5d,a +1322: 1c asl a +1323: c4 5e mov $5e,a +1325: f8 5d mov x,$5d +1327: f4 61 mov a,$61+x +1329: 5d mov x,a +132a: 1f 98 17 jmp ($1798+x) + +132d: 8b 5e dec $5e +132f: 8b 5e dec $5e +1331: 8b 5d dec $5d +1333: 10 f0 bpl $1325 +1335: 6f ret + +1336: f8 5d mov x,$5d +1338: 9b 9b dec $9b+x +133a: d0 f1 bne $132d +133c: f5 60 05 mov a,$0560+x +133f: d4 9b mov $9b+x,a +1341: 9b a3 dec $a3+x +1343: d0 e8 bne $132d +1345: f4 61 mov a,$61+x +1347: 68 02 cmp a,#$02 +1349: d0 07 bne $1352 +134b: e8 06 mov a,#$06 +134d: d4 61 mov $61+x,a +134f: 5f 63 13 jmp $1363 + +1352: e8 08 mov a,#$08 +1354: d4 61 mov $61+x,a +1356: 5f 59 15 jmp $1559 + +1359: 3f b8 14 call $14b8 +135c: d4 ce mov $ce+x,a +135e: 3f b8 14 call $14b8 +1361: d4 cf mov $cf+x,a +1363: 3f b8 14 call $14b8 +1366: fd mov y,a ; get the current note/command +1367: 28 20 and a,#$20 +1369: c4 5f mov $5f,a +136b: dd mov a,y +136c: 28 40 and a,#$40 +136e: c4 60 mov $60,a +1370: f8 5d mov x,$5d +1372: d5 88 05 mov $0588+x,a +1375: ad 80 cmp y,#$80 ; is it a note? +1377: 90 3d bcc $13b6 +1379: ad f0 cmp y,#$f0 ; is it a special meaning flag? +137b: 90 08 bcc $1385 +137d: dd mov a,y ; then it must be a command... +137e: 28 0f and a,#$0f ; get command number +1380: 1c asl a +1381: 5d mov x,a +1382: 1f 3c 15 jmp ($153c+x) ; jump to command number position + +1385: f5 90 05 mov a,$0590+x ; pitch bend +1388: f0 4c beq $13d6 +138a: dd mov a,y +138b: 28 08 and a,#$08 +138d: 0d push psw +138e: dd mov a,y +138f: 28 07 and a,#$07 +1391: bc inc a +1392: 1c asl a +1393: f8 5e mov x,$5e +1395: 8e pop psw +1396: f0 0d beq $13a5 +1398: 60 clrc +1399: 94 de adc a,$de+x +139b: d4 de mov $de+x,a +139d: f4 df mov a,$df+x +139f: 88 00 adc a,#$00 +13a1: d4 df mov $df+x,a +13a3: 2f 31 bra $13d6 +13a5: c4 27 mov $27,a +13a7: f4 de mov a,$de+x +13a9: 80 setc +13aa: a4 27 sbc a,$27 +13ac: d4 de mov $de+x,a +13ae: f4 df mov a,$df+x +13b0: a8 00 sbc a,#$00 +13b2: d4 df mov $df+x,a +13b4: 2f 20 bra $13d6 +13b6: f5 90 05 mov a,$0590+x ; play the note (check first) +13b9: f0 1b beq $13d6 +13bb: dd mov a,y +13bc: 28 1f and a,#$1f +13be: fd mov y,a +13bf: f8 5e mov x,$5e +13c1: f4 ce mov a,$ce+x +13c3: 60 clrc +13c4: 96 ca 12 adc a,$12ca+y ; get the relative frequency +13c7: d4 ce mov $ce+x,a +13c9: f4 cf mov a,$cf+x +13cb: 96 ea 12 adc a,$12ea+y +13ce: d4 cf mov $cf+x,a +13d0: e8 00 mov a,#$00 +13d2: d4 de mov $de+x,a +13d4: d4 df mov $df+x,a +13d6: 3f b8 14 call $14b8 +13d9: 68 00 cmp a,#$00 +13db: d0 12 bne $13ef +13dd: f8 5d mov x,$5d +13df: f4 61 mov a,$61+x +13e1: 68 08 cmp a,#$08 +13e3: d0 07 bne $13ec +13e5: e8 0a mov a,#$0a +13e7: d4 61 mov $61+x,a +13e9: 5f 97 15 jmp $1597 + +13ec: 5f 25 13 jmp $1325 + +13ef: f8 5d mov x,$5d +13f1: d4 a3 mov $a3+x,a +13f3: fd mov y,a +13f4: f5 60 05 mov a,$0560+x +13f7: d4 9b mov $9b+x,a +13f9: cf mul ya +13fa: da 35 movw $35,ya +13fc: 3f 18 15 call $1518 +13ff: f5 98 05 mov a,$0598+x +1402: 30 18 bmi $141c +1404: 5d mov x,a +1405: f5 06 02 mov a,$0206+x +1408: f0 0a beq $1414 +140a: e8 40 mov a,#$40 +140c: 75 27 02 cmp a,$0227+x +140f: b0 05 bcs $1416 +1411: 5f 2d 13 jmp $132d + +1414: e8 40 mov a,#$40 +1416: d5 27 02 mov $0227+x,a +1419: 5f 3d 14 jmp $143d + +141c: f5 a0 05 mov a,$05a0+x +141f: c4 3d mov $3d,a +1421: f5 a8 05 mov a,$05a8+x +1424: 30 04 bmi $142a +1426: eb 5f mov y,$5f +1428: f0 05 beq $142f +142a: 9c dec a +142b: 10 02 bpl $142f +142d: e8 07 mov a,#$07 +142f: 5d mov x,a +1430: f5 fc 07 mov a,$07fc+x +1433: c4 3f mov $3f,a +1435: 8f 40 3e mov $3e,#$40 +1438: 3f 44 0c call $0c44 +143b: 30 78 bmi $14b5 +143d: e8 01 mov a,#$01 +143f: d5 06 02 mov $0206+x,a +1442: d8 ab mov $ab,x +1444: 7d mov a,x +1445: f8 5d mov x,$5d +1447: d5 a8 05 mov $05a8+x,a +144a: f5 90 05 mov a,$0590+x +144d: d0 0c bne $145b +144f: f8 5e mov x,$5e +1451: f4 ce mov a,$ce+x +1453: c4 37 mov $37,a +1455: f4 cf mov a,$cf+x +1457: c4 38 mov $38,a +1459: 2f 25 bra $1480 +145b: f8 5e mov x,$5e +145d: f4 ce mov a,$ce+x +145f: 60 clrc +1460: 94 be adc a,$be+x +1462: fd mov y,a +1463: f4 cf mov a,$cf+x +1465: 94 bf adc a,$bf+x +1467: c4 38 mov $38,a +1469: dd mov a,y +146a: 60 clrc +146b: 94 ae adc a,$ae+x +146d: fd mov y,a +146e: e4 38 mov a,$38 +1470: 94 af adc a,$af+x +1472: c4 38 mov $38,a +1474: dd mov a,y +1475: 60 clrc +1476: 94 de adc a,$de+x +1478: c4 37 mov $37,a +147a: e4 38 mov a,$38 +147c: 94 df adc a,$df+x +147e: c4 38 mov $38,a +1480: eb 5f mov y,$5f +1482: d0 0f bne $1493 +1484: 0b ab asl $ab +1486: f8 ab mov x,$ab +1488: d5 48 02 mov $0248+x,a +148b: e4 37 mov a,$37 +148d: d5 47 02 mov $0247+x,a +1490: 5f 2d 13 jmp $132d + +1493: f8 5d mov x,$5d +1495: f5 68 05 mov a,$0568+x +1498: 60 clrc +1499: 95 70 05 adc a,$0570+x +149c: 10 02 bpl $14a0 +149e: e8 7f mov a,#$7f +14a0: c4 ac mov $ac,a +14a2: e4 60 mov a,$60 +14a4: f0 02 beq $14a8 +14a6: e8 08 mov a,#$08 +14a8: 04 5d or a,$5d +14aa: 5d mov x,a +14ab: f5 78 05 mov a,$0578+x +14ae: f8 ab mov x,$ab +14b0: eb ac mov y,$ac +14b2: 3f 6e 0c call $0c6e +14b5: 5f 2d 13 jmp $132d + +; calculate delta expression +14b8: f8 5e mov x,$5e +14ba: e7 8b mov a,($8b+x) +14bc: bb 8b inc $8b+x +14be: d0 02 bne $14c2 +14c0: bb 8c inc $8c+x +14c2: 6f ret + +; vcmd f0 - end of sequence +14c3: f8 5d mov x,$5d +14c5: e8 0a mov a,#$0a +14c7: d4 61 mov $61+x,a +14c9: 5f 97 15 jmp $1597 + +; vcmd f1 - melody delta expression +14cc: 3f b8 14 call $14b8 +14cf: c4 ad mov $ad,a +14d1: f8 5d mov x,$5d +14d3: f5 70 05 mov a,$0570+x +14d6: 3f 28 15 call $1528 +14d9: d5 70 05 mov $0570+x,a +14dc: 5f 63 13 jmp $1363 + +; vcmd f2 - melody absolute expression +14df: 3f b8 14 call $14b8 +14e2: f8 5d mov x,$5d +14e4: d5 70 05 mov $0570+x,a +14e7: 5f 63 13 jmp $1363 + +; vcmd f3 - mute +14ea: f8 5d mov x,$5d +14ec: f5 a8 05 mov a,$05a8+x +14ef: 30 15 bmi $1506 +14f1: fd mov y,a +14f2: f6 06 02 mov a,$0206+y +14f5: 68 80 cmp a,#$80 +14f7: f0 0d beq $1506 +14f9: e8 00 mov a,#$00 +14fb: d6 67 02 mov $0267+y,a +14fe: f6 dc 07 mov a,$07dc+y +1501: c4 f2 mov $f2,a +1503: 8f 9f f3 mov $f3,#$9f + +; vcmd f4 - rest +1506: 3f b8 14 call $14b8 +1509: f8 5d mov x,$5d +150b: d4 a3 mov $a3+x,a +150d: f5 60 05 mov a,$0560+x +1510: d4 9b mov $9b+x,a +1512: 3f 18 15 call $1518 +1515: 5f 2d 13 jmp $132d + +1518: f4 61 mov a,$61+x +151a: 68 06 cmp a,#$06 +151c: d0 05 bne $1523 +151e: e8 02 mov a,#$02 +1520: 5f 25 15 jmp $1525 + +1523: e8 04 mov a,#$04 +1525: d4 61 mov $61+x,a +1527: 6f ret + +; add the delta to the total +1528: 78 80 ad cmp $ad,#$80 +152b: 90 08 bcc $1535 +152d: 60 clrc +152e: 84 ad adc a,$ad +1530: 10 09 bpl $153b +1532: e8 00 mov a,#$00 +1534: 6f ret + +1535: 84 ad adc a,$ad +1537: 10 02 bpl $153b +1539: e8 7f mov a,#$7f +153b: 6f ret + +; vcmd table (f0-f4) +153c: dw $14c3 ; f0 - end of sequence +153e: dw $14cc ; f1 - melody delta expression +1540: dw $14df ; f2 - melody absolute expression +1542: dw $14ea ; f3 - mute +1544: dw $1506 ; f4 - rest + +1546: 3f b8 14 call $14b8 +1549: f8 5d mov x,$5d +154b: d5 b0 05 mov $05b0+x,a +154e: e8 00 mov a,#$00 +1550: d4 de mov $de+x,a +1552: d4 df mov $df+x,a +1554: f8 5d mov x,$5d +1556: d5 88 05 mov $0588+x,a +1559: f8 5d mov x,$5d +155b: f5 90 05 mov a,$0590+x +155e: f0 19 beq $1579 +1560: f5 b0 05 mov a,$05b0+x +1563: 8d 12 mov y,#$12 +1565: 3f bb 0d call $0dbb +1568: 3f 86 15 call $1586 +156b: 28 0e and a,#$0e +156d: fd mov y,a +156e: f8 5e mov x,$5e +1570: f7 10 mov a,($10)+y +1572: d4 ce mov $ce+x,a +1574: fc inc y +1575: f7 10 mov a,($10)+y +1577: d4 cf mov $cf+x,a +1579: 8f 20 5f mov $5f,#$20 +157c: f8 5d mov x,$5d +157e: f5 88 05 mov a,$0588+x +1581: c4 60 mov $60,a +1583: 5f d6 13 jmp $13d6 + +1586: e4 00 mov a,$00 ; fetch a random number (RNG) +1588: 1c asl a +1589: 44 00 eor a,$00 +158b: 1c asl a +158c: 1c asl a +158d: 1c asl a +158e: 2b 02 rol $02 +1590: 2b 01 rol $01 +1592: 2b 00 rol $00 +1594: e4 02 mov a,$02 +1596: 6f ret + +1597: 3f 9e 15 call $159e ; get current pattern command +159a: 5d mov x,a +159b: 1f 6f 16 jmp ($166f+x) + +159e: f8 5e mov x,$5e ; get 1 byte +15a0: e7 7b mov a,($7b+x) +15a2: bb 7b inc $7b+x +15a4: d0 02 bne $15a8 +15a6: bb 7c inc $7c+x +15a8: 6f ret + +; pattern command 00/16 - end of pattern +15a9: f8 5d mov x,$5d +15ab: e8 0c mov a,#$0c +15ad: d4 61 mov $61+x,a +15af: 5f 87 16 jmp $1687 + +; pattern command 14 +15b2: 8d 00 mov y,#$00 +15b4: f8 5e mov x,$5e +15b6: 3f a0 15 call $15a0 +15b9: ad 10 cmp y,#$10 +15bb: b0 04 bcs $15c1 +15bd: d6 3f 05 mov $053f+y,a +15c0: fc inc y +15c1: 3f a0 15 call $15a0 +15c4: 68 14 cmp a,#$14 +15c6: f0 ee beq $15b6 +15c8: 68 16 cmp a,#$16 +15ca: d0 dd bne $15a9 +15cc: dd mov a,y +15cd: 5d mov x,a +15ce: 3f 86 15 call $1586 +15d1: 8d 00 mov y,#$00 +15d3: 9e div ya,x +15d4: f6 3f 05 mov a,$053f+y +15d7: 8d 10 mov y,#$10 +15d9: 3f 62 16 call $1662 +15dc: 2f 05 bra $15e3 + +; pattern command 02 - play melody +15de: 8d 10 mov y,#$10 +15e0: 3f 5d 16 call $165d +15e3: e8 06 mov a,#$06 +15e5: d4 61 mov $61+x,a +15e7: 5f 59 13 jmp $1359 + +; pattern command 04 +15ea: 8d 14 mov y,#$14 +15ec: 3f 5d 16 call $165d +15ef: e8 08 mov a,#$08 +15f1: d4 61 mov $61+x,a +15f3: 5f 46 15 jmp $1546 + +; pattern command 06 - set channel tuning +15f6: 3f 9e 15 call $159e ; get 1 byte +15f9: eb 5e mov y,$5e +15fb: d6 be 00 mov $00be+y,a +15fe: 3f a0 15 call $15a0 +1601: d6 bf 00 mov $00bf+y,a +1604: 5f 97 15 jmp $1597 + +; pattern command 08 - set instrument +1607: 3f 9e 15 call $159e ; get 1 byte +160a: f8 5d mov x,$5d +160c: d5 78 05 mov $0578+x,a +160f: 5f 97 15 jmp $1597 + +; pattern command 0a - set pitch envelope +1612: 3f 9e 15 call $159e ; get 1 byte +1615: f8 5d mov x,$5d +1617: d5 80 05 mov $0580+x,a +161a: 5f 97 15 jmp $1597 + +; pattern command 10 - set channel gain (relative?) +161d: 3f 9e 15 call $159e ; get 1 byte +1620: c4 ad mov $ad,a +1622: f8 5d mov x,$5d +1624: f5 68 05 mov a,$0568+x +1627: 3f 28 15 call $1528 +162a: d5 68 05 mov $0568+x,a +162d: 5f 97 15 jmp $1597 + +; pattern command 12 - set channel gain (absolute) +1630: 3f 9e 15 call $159e ; get 1 byte +1633: f8 5d mov x,$5d +1635: d5 68 05 mov $0568+x,a +1638: 5f 97 15 jmp $1597 + +; pattern command 0c +163b: e8 ff mov a,#$ff +163d: f8 5d mov x,$5d +163f: d5 90 05 mov $0590+x,a +1642: 5f 97 15 jmp $1597 + +; pattern command 0e - (2 bytes) +1645: 3f 9e 15 call $159e ; get 1 byte +1648: eb 5e mov y,$5e +164a: d6 ce 00 mov $00ce+y,a +164d: 3f a0 15 call $15a0 ; get another byte +1650: d6 cf 00 mov $00cf+y,a +1653: e8 00 mov a,#$00 +1655: f8 5d mov x,$5d +1657: d5 90 05 mov $0590+x,a +165a: 5f 97 15 jmp $1597 + +; get the next byte and its corresponding phrase pointer +165d: 6d push y +165e: 3f 9e 15 call $159e +1661: ee pop y +1662: 3f bb 0d call $0dbb +1665: f8 5e mov x,$5e +1667: d4 8b mov $8b+x,a +1669: dd mov a,y +166a: d4 8c mov $8c+x,a +166c: f8 5d mov x,$5d +166e: 6f ret + +; pattern command table (00-17) +166f: dw $15a9 ; 00 - end of pattern +1671: dw $15de ; 02 - play melody +1673: dw $15ea ; 04 +1675: dw $15f6 ; 06 - set channel tuning +1677: dw $1607 ; 08 - set instrument +1679: dw $1612 ; 0a - set pitch envelope +167b: dw $163b ; 0c +167d: dw $1645 ; 0e - (2 bytes) +167f: dw $161d ; 10 - set channel gain (relative)? +1681: dw $1630 ; 12 - set channel gain (absolute) +1683: dw $15b2 ; 14 +1685: dw $15a9 ; 16 - end of pattern (same as 00) + +; melody command 00 - end of melody +1687: 3f 8e 16 call $168e +168a: 5d mov x,a +168b: 1f fe 16 jmp ($16fe+x) + +168e: f8 5e mov x,$5e +1690: e7 6b mov a,($6b+x) +1692: bb 6b inc $6b+x +1694: d0 02 bne $1698 +1696: bb 6c inc $6c+x +1698: 6f ret + +; melody command 02 - go to loop +1699: f8 5d mov x,$5d +169b: e8 00 mov a,#$00 +169d: d4 61 mov $61+x,a +169f: 8b 5c dec $5c +16a1: 5f 2d 13 jmp $132d + +; melody command 04 +16a4: f8 5e mov x,$5e +16a6: f5 50 05 mov a,$0550+x +16a9: d4 6b mov $6b+x,a +16ab: f5 51 05 mov a,$0551+x +16ae: d4 6c mov $6c+x,a +16b0: 5f 87 16 jmp $1687 + +; melody command 06 - toggle channel mute +16b3: 3f 8e 16 call $168e +16b6: f8 5d mov x,$5d +16b8: d5 60 05 mov $0560+x,a +16bb: 5f 87 16 jmp $1687 + +; melody command 08 - play phrase +16be: 3f 8e 16 call $168e +16c1: eb 5e mov y,$5e +16c3: d6 ae 00 mov $00ae+y,a +16c6: 3f 90 16 call $1690 +16c9: d6 af 00 mov $00af+y,a +16cc: 5f 87 16 jmp $1687 + +; melody command 0a - set channel number +16cf: 3f 8e 16 call $168e +16d2: 8d 16 mov y,#$16 +16d4: 3f bb 0d call $0dbb +16d7: f8 5e mov x,$5e +16d9: d4 7b mov $7b+x,a +16db: dd mov a,y +16dc: d4 7c mov $7c+x,a +16de: f8 5d mov x,$5d +16e0: e8 0a mov a,#$0a +16e2: d4 61 mov $61+x,a +16e4: 5f 97 15 jmp $1597 + +; melody command 0c +16e7: 3f 8e 16 call $168e +16ea: f8 5d mov x,$5d +16ec: d5 98 05 mov $0598+x,a +16ef: 68 ff cmp a,#$ff +16f1: d0 08 bne $16fb +16f3: 3f 8e 16 call $168e +16f6: f8 5d mov x,$5d +16f8: d5 a0 05 mov $05a0+x,a +16fb: 5f 87 16 jmp $1687 + +; melody command table (00-0c) +16fc: dw $1687 ; 00 - end of melody +16fe: dw $1699 ; 02 - go to loop +1700: dw $16a4 ; 04 +1702: dw $16b3 ; 06 - toggle channel mute +1704: dw $16be ; 08 - play phrase +1706: dw $16cf ; 0a - set channel number +1708: dw $16e7 ; 0c + +170a: 8d 93 mov y,#$93 +170c: f9 5a mov x,$5a+y +170e: f6 b7 05 mov a,$05b7+y +1711: d6 5a 00 mov $005a+y,a +1714: 7d mov a,x +1715: d6 b7 05 mov $05b7+y,a +1718: fe f2 dbnz y,$170c +171a: 8d 69 mov y,#$69 +171c: f6 4e 05 mov a,$054e+y +171f: 5d mov x,a +1720: f6 4a 06 mov a,$064a+y +1723: d6 4e 05 mov $054e+y,a +1726: 7d mov a,x +1727: d6 4a 06 mov $064a+y,a +172a: fe f0 dbnz y,$171c +172c: 6f ret + +172d: 3f 36 17 call $1736 +1730: e8 01 mov a,#$01 +1732: c5 4f 05 mov $054f,a +1735: 6f ret + +1736: 2d push a ; start song +1737: 3f 0a 17 call $170a ; stop the current song +173a: ae pop a +173b: 8d 1a mov y,#$1a ; find the start of the song struct +173d: 3f bb 0d call $0dbb +1740: da 69 movw $69,ya +1742: 8d 00 mov y,#$00 ; get number of channels +1744: f7 69 mov a,($69)+y +1746: c4 5b mov $5b,a ; save number of channels in total and current +1748: c4 5c mov $5c,a +174a: f0 4b beq $1797 ; if 0, then return +174c: 8f 00 5d mov $5d,#$00 +174f: 8f 00 5e mov $5e,#$00 +1752: fc inc y +1753: f7 69 mov a,($69)+y +1755: 6d push y +1756: 8d 18 mov y,#$18 +1758: 3f bb 0d call $0dbb +175b: f8 5e mov x,$5e +175d: d5 50 05 mov $0550+x,a +1760: d4 6b mov $6b+x,a +1762: dd mov a,y +1763: ee pop y +1764: d5 51 05 mov $0551+x,a +1767: d4 6c mov $6c+x,a +1769: e8 00 mov a,#$00 +176b: d4 ae mov $ae+x,a +176d: d4 af mov $af+x,a +176f: d4 be mov $be+x,a +1771: d4 bf mov $bf+x,a +1773: f8 5d mov x,$5d +1775: e8 0c mov a,#$0c +1777: d4 61 mov $61+x,a +1779: e8 ff mov a,#$ff +177b: d5 90 05 mov $0590+x,a +177e: d5 a8 05 mov $05a8+x,a +1781: e8 00 mov a,#$00 +1783: d5 68 05 mov $0568+x,a +1786: d5 70 05 mov $0570+x,a +1789: d5 88 05 mov $0588+x,a +178c: ab 5e inc $5e +178e: ab 5e inc $5e +1790: 3d inc x +1791: d8 5d mov $5d,x +1793: 3e 5b cmp x,$5b +1795: 90 bb bcc $1752 +1797: 6f ret + +1798: dw $132d +179a: dw $1336 +179c: dw $1336 +179e: dw $1363 +17a0: dw $1559 +17a2: dw $1597 +17a4: dw $1687 +17a6: dw $0b5d +17a8: dw $0bd6 +17aa: dw $173b +17ac: dw $1736 +17ae: dw $172d +17b0: dw $170a +17b2: dw $0792 +17b4: dw $0b7d +17b6: dw $0b79 +17b8: dw $0b73 +17ba: dw $0b70 +17bc: dw $0b6a +17be: dw $0b8c +17c0: dw $0b97 \ No newline at end of file diff --git a/snes/Sculptured Software/Rocko's Modern Life - Spunky's Dangerous Day ($0700).bin b/snes/Sculptured Software/Rocko's Modern Life - Spunky's Dangerous Day ($0700).bin new file mode 100644 index 00000000..1405bf86 Binary files /dev/null and b/snes/Sculptured Software/Rocko's Modern Life - Spunky's Dangerous Day ($0700).bin differ diff --git a/snes/Sculptured Software/Rocko's Modern Life - Spunky's Dangerous Day.s b/snes/Sculptured Software/Rocko's Modern Life - Spunky's Dangerous Day.s new file mode 100644 index 00000000..d5096c9f --- /dev/null +++ b/snes/Sculptured Software/Rocko's Modern Life - Spunky's Dangerous Day.s @@ -0,0 +1,2094 @@ +0700: 20 clrp +0701: cd ff mov x,#$ff ; set stack pointer +0703: bd mov sp,x +0704: 8f b0 f1 mov $f1,#$b0 ; clear input ports APUI00-APUI04 +0707: 8f 20 fa mov $fa,#$20 +070a: 8f 81 f1 mov $f1,#$81 ; toggle timer 2 +070d: 3f d3 0e call $0ed3 ; clear/reset routine +0710: 8f 00 13 mov $13,#$00 +0713: 8f 1a 14 mov $14,#$1a +0716: 8d 03 mov y,#$03 ; set temporary storage +0718: f6 02 00 mov a,$0002+y +071b: 16 22 07 or a,$0722+y +071e: d6 02 00 mov $0002+y,a +0721: fe f5 dbnz y,$0718 +0723: ab 1d inc $1d +0725: e4 23 mov a,$23 +0727: d0 05 bne $072e +0729: 3f 49 18 call $1849 ; do a random number generator (RNG) +072c: 2f 03 bra $0731 +072e: 3f 51 08 call $0851 +0731: e4 f6 mov a,$f6 +0733: f0 03 beq $0738 +0735: 3f 7d 0b call $0b7d +0738: e4 fd mov a,$fd +073a: 60 clrc +073b: 84 1c adc a,$1c +073d: c4 1c mov $1c,a +073f: 68 05 cmp a,#$05 +0741: 90 ee bcc $0731 +0743: a8 05 sbc a,#$05 +0745: c4 1c mov $1c,a +0747: 68 14 cmp a,#$14 +0749: 90 d8 bcc $0723 +074b: 8f 00 1c mov $1c,#$00 +074e: 2f d3 bra $0723 +0750: 8d 00 mov y,#$00 +0752: 8f aa f4 mov $f4,#$aa +0755: 8f bb f5 mov $f5,#$bb +0758: f8 f4 mov x,$f4 +075a: c8 cc cmp x,#$cc +075c: d0 fa bne $0758 +075e: fa f6 00 mov ($00),($f6) +0761: fa f7 01 mov ($01),($f7) +0764: 7d mov a,x +0765: f8 f5 mov x,$f5 +0767: c4 f4 mov $f4,a +0769: d0 05 bne $0770 +076b: d8 f5 mov $f5,x +076d: 1f 00 00 jmp ($0000+x) + +0770: cd 00 mov x,#$00 +0772: 3e f4 cmp x,$f4 +0774: d0 fc bne $0772 +0776: e4 f5 mov a,$f5 +0778: d8 f4 mov $f4,x +077a: d7 00 mov ($00)+y,a +077c: 3a 00 incw $00 +077e: 3e f4 cmp x,$f4 +0780: f0 fc beq $077e +0782: 3d inc x +0783: 3e f4 cmp x,$f4 +0785: f0 ef beq $0776 +0787: f8 f4 mov x,$f4 +0789: 2f d3 bra $075e +078b: 3f d3 0e call $0ed3 +078e: 8f b0 f1 mov $f1,#$b0 +0791: cd 00 mov x,#$00 +0793: f5 50 07 mov a,$0750+x +0796: d5 00 01 mov $0100+x,a +0799: 3d inc x +079a: c8 3b cmp x,#$3b +079c: 90 f5 bcc $0793 +079e: 5f 00 01 jmp $0100 + +; gain tables +07a1: db $ff,$d6,$a0,$80,$6b,$50,$40,$36,$28,$20,$1b,$14,$10,$0e,$0b,$08,$06,$05,$04,$03,$02,$01 +07b7: db $1d,$1c,$1b,$1a,$19,$18,$17,$16,$15,$14,$13,$12,$11,$10,$0f,$0e,$0d,$0c,$0a,$09,$06,$00 + +; DSP registers: VxENVX +07cd: db $08,$18,$28,$38,$48,$58,$68,$78 +; DSP registers: VxGAIN +07d5: db $07,$17,$27,$37,$47,$57,$67,$77 +; DSP registers: VxSCRN (select sample) +07dd: db $04,$14,$24,$34,$44,$54,$64,$74 +; DSP registers: VxPITCHL +07e5: db $02,$12,$22,$32,$42,$52,$62,$72 +; DSP registers: VxVOLL +07ed: db $00,$10,$20,$30,$40,$50,$60,$70 + +; voice numbers and bits for clearing those void bits +07f5: db $01,$02,$04,$08,$10,$20,$40,$80,$fe,$fd,$fb,$f7,$ef,$df,$bf,$7f + +; echo poke registers +0805: db $7d,$2c,$3c,$0d,$0f,$1f,$2f,$3f,$4f,$5f,$6f,$7f + +0811: db $02,$02,$02,$02,$02,$03,$03,$03 +0819: db $9e,$b3,$c8,$dd,$f2,$07,$1c,$31 + +0821: db $03,$03,$03,$03,$03,$03,$03,$03 +0829: db $46,$5b,$70,$85,$9a,$af,$c4,$d9 + +0831: db $03,$04,$04,$04,$04,$04,$04,$04 +0839: db $ee,$03,$18,$2d,$42,$57,$6c,$81 + +0841: db $04,$04,$04,$04,$04,$05,$05,$05 +0849: db $96,$ac,$c2,$d8,$ee,$04,$1a,$30 + +0851: 3f 49 18 call $1849 ; use RNG +0854: 3f 7d 0b call $0b7d +0857: e5 00 02 mov a,$0200 +085a: f0 09 beq $0865 +085c: 60 clrc +085d: 85 01 02 adc a,$0201 +0860: c5 01 02 mov $0201,a +0863: 90 06 bcc $086b +0865: 3f 5c 14 call $145c +0868: 3f 7d 0b call $0b7d +086b: 8f 00 37 mov $37,#$00 +086e: 8f 00 4c mov $4c,#$00 +0871: 8f 7c f2 mov $f2,#$7c ; clear end of sample flags? +0874: e4 f3 mov a,$f3 +0876: 04 49 or a,$49 +0878: 24 4f and a,$4f +087a: c4 49 mov $49,a +087c: 8f 00 f3 mov $f3,#$00 +087f: 24 4a and a,$4a +0881: 04 4b or a,$4b +0883: c4 4b mov $4b,a +0885: cd 07 mov x,#$07 +0887: 8f 81 15 mov $15,#$81 +088a: 8f 04 16 mov $16,#$04 +088d: 3f 6c 0b call $0b6c +0890: d8 17 mov $17,x +0892: f5 f5 07 mov a,$07f5+x ; clear voice number bits +0895: c4 39 mov $39,a +0897: 48 ff eor a,#$ff +0899: c4 3a mov $3a,a +089b: f4 5b mov a,$5b+x +089d: 28 02 and a,#$02 +089f: c4 38 mov $38,a +08a1: d0 06 bne $08a9 +08a3: f5 7e 02 mov a,$027e+x +08a6: 5f ae 08 jmp $08ae + +08a9: 3f 24 10 call $1024 +08ac: f8 17 mov x,$17 +08ae: 75 86 02 cmp a,$0286+x +08b1: d0 10 bne $08c3 +08b3: 3f be 11 call $11be +08b6: 3f 52 0b call $0b52 +08b9: e4 50 mov a,$50 +08bb: 24 4d and a,$4d +08bd: 24 39 and a,$39 +08bf: d0 43 bne $0904 +08c1: f0 44 beq $0907 +08c3: d5 86 02 mov $0286+x,a +08c6: 09 39 37 or ($37),($39) +08c9: 3f be 11 call $11be +08cc: 7d mov a,x +08cd: 1c asl a +08ce: 5d mov x,a +08cf: e4 51 mov a,$51 +08d1: d5 8e 02 mov $028e+x,a +08d4: e4 52 mov a,$52 +08d6: d5 8f 02 mov $028f+x,a +08d9: f8 17 mov x,$17 +08db: e4 53 mov a,$53 +08dd: 28 20 and a,#$20 +08df: f0 05 beq $08e6 +08e1: 29 3a 4a and ($4a),($3a) +08e4: 2f 03 bra $08e9 +08e6: 09 39 4a or ($4a),($39) +08e9: e4 53 mov a,$53 +08eb: 28 40 and a,#$40 +08ed: f0 05 beq $08f4 +08ef: 09 39 50 or ($50),($39) +08f2: 2f 03 bra $08f7 +08f4: 29 3a 50 and ($50),($3a) +08f7: 3f 52 0b call $0b52 +08fa: e4 50 mov a,$50 +08fc: 04 4d or a,$4d +08fe: 24 39 and a,$39 +0900: d0 02 bne $0904 +0902: f0 03 beq $0907 +0904: 09 39 4c or ($4c),($39) +0907: 1d dec x +0908: 30 0a bmi $0914 +090a: 80 setc +090b: b8 15 15 sbc $15,#$15 +090e: b8 00 16 sbc $16,#$00 +0911: 5f 8d 08 jmp $088d + +0914: e4 4d mov a,$4d +0916: 24 4b and a,$4b +0918: 04 4c or a,$4c +091a: c4 4e mov $4e,a +091c: 8f 5c f2 mov $f2,#$5c +091f: c4 f3 mov $f3,a +0921: cd 07 mov x,#$07 +0923: 8f 30 15 mov $15,#$30 +0926: 8f 05 16 mov $16,#$05 +0929: 8f 00 3c mov $3c,#$00 +092c: 3f 6c 0b call $0b6c +092f: d8 17 mov $17,x +0931: e4 5a mov a,$5a +0933: d0 13 bne $0948 +0935: f4 5b mov a,$5b+x +0937: 28 08 and a,#$08 +0939: c4 3c mov $3c,a +093b: d0 06 bne $0943 +093d: f5 76 02 mov a,$0276+x +0940: 5f 48 09 jmp $0948 + +0943: 3f 24 10 call $1024 +0946: f8 17 mov x,$17 +0948: fd mov y,a +0949: f5 6e 02 mov a,$026e+x +094c: c4 31 mov $31,a +094e: cf mul ya +094f: cd 64 mov x,#$64 +0951: 9e div ya,x +0952: f8 17 mov x,$17 +0954: eb 3c mov y,$3c +0956: f0 11 beq $0969 +0958: c4 2f mov $2f,a +095a: 8d 15 mov y,#$15 +095c: f7 15 mov a,($15)+y +095e: d0 04 bne $0964 +0960: e4 2f mov a,$2f +0962: 2f 05 bra $0969 +0964: e4 31 mov a,$31 +0966: 80 setc +0967: a4 2f sbc a,$2f +0969: c4 2f mov $2f,a +096b: f5 ed 07 mov a,$07ed+x +096e: fd mov y,a +096f: cb f2 mov $f2,y +0971: fa 2f f3 mov ($f3),($2f) +0974: e4 31 mov a,$31 +0976: 80 setc +0977: a4 2f sbc a,$2f +0979: fc inc y +097a: cb f2 mov $f2,y +097c: c4 f3 mov $f3,a +097e: 80 setc +097f: b8 16 15 sbc $15,#$16 +0982: b8 00 16 sbc $16,#$00 +0985: 1d dec x +0986: 30 03 bmi $098b +0988: 5f 2c 09 jmp $092c + +098b: cd 07 mov x,#$07 +098d: 8f d9 15 mov $15,#$d9 +0990: 8f 03 16 mov $16,#$03 +0993: 3f 6c 0b call $0b6c +0996: d8 17 mov $17,x +0998: f4 5b mov a,$5b+x +099a: fd mov y,a +099b: 28 40 and a,#$40 +099d: 0d push psw +099e: dd mov a,y +099f: 28 04 and a,#$04 +09a1: 0d push psw +09a2: 7d mov a,x +09a3: fd mov y,a +09a4: 1c asl a +09a5: 5d mov x,a +09a6: f5 4f 02 mov a,$024f+x ; get base note +09a9: c4 36 mov $36,a +09ab: f5 4e 02 mov a,$024e+x +09ae: c4 35 mov $35,a +09b0: 8e pop psw +09b1: f0 11 beq $09c4 +09b3: 4d push x ; save word addressing +09b4: 3f 24 10 call $1024 ; advance pitch envelope +09b7: ce pop x ; restore pitch flag +09b8: 7a 35 addw ya,$35 +09ba: 80 setc +09bb: a8 b0 sbc a,#$b0 +09bd: c4 35 mov $35,a +09bf: dd mov a,y +09c0: a8 04 sbc a,#$04 +09c2: c4 36 mov $36,a +09c4: f5 8f 02 mov a,$028f+x +09c7: fd mov y,a +09c8: f5 8e 02 mov a,$028e+x +09cb: 7a 35 addw ya,$35 +09cd: 8e pop psw +09ce: d0 03 bne $09d3 +09d0: 3f e8 11 call $11e8 ; translate note to frequency +09d3: f8 17 mov x,$17 +09d5: d5 5e 02 mov $025e+x,a +09d8: dd mov a,y +09d9: d5 66 02 mov $0266+x,a +09dc: 80 setc +09dd: b8 15 15 sbc $15,#$15 +09e0: b8 00 16 sbc $16,#$00 +09e3: 1d dec x +09e4: 10 ad bpl $0993 +09e6: 8f 5c f2 mov $f2,#$5c +09e9: 8f 00 f3 mov $f3,#$00 +09ec: cd 07 mov x,#$07 +09ee: 8f 31 15 mov $15,#$31 +09f1: 8f 03 16 mov $16,#$03 +09f4: 3f 6c 0b call $0b6c +09f7: d8 17 mov $17,x +09f9: f5 f5 07 mov a,$07f5+x +09fc: c4 39 mov $39,a +09fe: 48 ff eor a,#$ff +0a00: c4 3a mov $3a,a +0a02: f4 5b mov a,$5b+x +0a04: 28 01 and a,#$01 +0a06: d0 06 bne $0a0e +0a08: f5 36 02 mov a,$0236+x +0a0b: 5f 13 0a jmp $0a13 + +0a0e: 3f 24 10 call $1024 +0a11: f8 17 mov x,$17 +0a13: d5 3e 02 mov $023e+x,a +0a16: fd mov y,a +0a17: e4 37 mov a,$37 +0a19: 24 39 and a,$39 +0a1b: f0 0a beq $0a27 +0a1d: f5 dd 07 mov a,$07dd+x +0a20: c4 f2 mov $f2,a +0a22: f5 86 02 mov a,$0286+x +0a25: c4 f3 mov $f3,a +0a27: e4 48 mov a,$48 +0a29: 24 39 and a,$39 +0a2b: f0 05 beq $0a32 +0a2d: 29 3a 48 and ($48),($3a) +0a30: 2f 35 bra $0a67 +0a32: f5 cd 07 mov a,$07cd+x +0a35: c4 f2 mov $f2,a +0a37: dd mov a,y +0a38: 80 setc +0a39: a4 f3 sbc a,$f3 +0a3b: b0 08 bcs $0a45 +0a3d: 8f 80 2a mov $2a,#$80 +0a40: 48 ff eor a,#$ff +0a42: bc inc a +0a43: 2f 03 bra $0a48 +0a45: 8f c0 2a mov $2a,#$c0 +0a48: 5c lsr a +0a49: d0 08 bne $0a53 +0a4b: ad 00 cmp y,#$00 +0a4d: d0 04 bne $0a53 +0a4f: e8 82 mov a,#$82 +0a51: 2f 0e bra $0a61 +0a53: 8d 15 mov y,#$15 +0a55: 76 a1 07 cmp a,$07a1+y +0a58: 90 02 bcc $0a5c +0a5a: fe f9 dbnz y,$0a55 +0a5c: f6 b7 07 mov a,$07b7+y +0a5f: 04 2a or a,$2a +0a61: 75 46 02 cmp a,$0246+x +0a64: f0 0c beq $0a72 +0a66: fd mov y,a +0a67: f5 d5 07 mov a,$07d5+x +0a6a: c4 f2 mov $f2,a +0a6c: cb f3 mov $f3,y +0a6e: dd mov a,y +0a6f: d5 46 02 mov $0246+x,a +0a72: f5 e5 07 mov a,$07e5+x +0a75: c4 f2 mov $f2,a +0a77: fd mov y,a +0a78: f5 5e 02 mov a,$025e+x +0a7b: c4 f3 mov $f3,a +0a7d: fc inc y +0a7e: cb f2 mov $f2,y +0a80: f5 66 02 mov a,$0266+x +0a83: c4 f3 mov $f3,a +0a85: 80 setc +0a86: b8 15 15 sbc $15,#$15 +0a89: b8 00 16 sbc $16,#$00 +0a8c: 1d dec x +0a8d: 30 03 bmi $0a92 +0a8f: 5f f4 09 jmp $09f4 + +0a92: 8f 4c f2 mov $f2,#$4c +0a95: fa 4e f3 mov ($f3),($4e) +0a98: e4 4e mov a,$4e +0a9a: 48 ff eor a,#$ff +0a9c: c4 4f mov $4f,a +0a9e: 29 4f 49 and ($49),($4f) +0aa1: 29 4f 4b and ($4b),($4f) +0aa4: 8f 00 4d mov $4d,#$00 +0aa7: 3f 7d 0b call $0b7d +0aaa: cd 07 mov x,#$07 +0aac: 8d 0e mov y,#$0e +0aae: f5 0d 02 mov a,$020d+x +0ab1: f0 2b beq $0ade +0ab3: f4 5b mov a,$5b+x +0ab5: 28 80 and a,#$80 +0ab7: f0 09 beq $0ac2 +0ab9: f5 f5 07 mov a,$07f5+x +0abc: 24 49 and a,$49 +0abe: d0 19 bne $0ad9 +0ac0: 2f 1c bra $0ade +0ac2: f6 1e 02 mov a,$021e+y +0ac5: 80 setc +0ac6: a8 01 sbc a,#$01 +0ac8: d6 1e 02 mov $021e+y,a +0acb: c4 2f mov $2f,a +0acd: f6 1f 02 mov a,$021f+y +0ad0: a8 00 sbc a,#$00 +0ad2: d6 1f 02 mov $021f+y,a +0ad5: 04 2f or a,$2f +0ad7: d0 05 bne $0ade +0ad9: e8 00 mov a,#$00 +0adb: d5 0d 02 mov $020d+x,a +0ade: dc dec y +0adf: dc dec y +0ae0: 1d dec x +0ae1: 10 cb bpl $0aae +0ae3: 3f 6c 0b call $0b6c +0ae6: ec 07 02 mov y,$0207 +0ae9: f0 66 beq $0b51 +0aeb: 8c 08 02 dec $0208 +0aee: d0 61 bne $0b51 +0af0: cc 08 02 mov $0208,y +0af3: e4 1e mov a,$1e +0af5: e9 09 02 mov x,$0209 +0af8: 30 0e bmi $0b08 +0afa: 60 clrc +0afb: 85 0a 02 adc a,$020a +0afe: b0 04 bcs $0b04 +0b00: 68 7f cmp a,#$7f +0b02: 90 13 bcc $0b17 +0b04: e8 7f mov a,#$7f +0b06: 2f 0a bra $0b12 +0b08: 80 setc +0b09: a5 0a 02 sbc a,$020a +0b0c: f0 04 beq $0b12 +0b0e: b0 07 bcs $0b17 +0b10: e8 00 mov a,#$00 +0b12: 8d 00 mov y,#$00 +0b14: cc 07 02 mov $0207,y +0b17: c4 1e mov $1e,a +0b19: 5d mov x,a +0b1a: 8f 2c f2 mov $f2,#$2c +0b1d: 65 0b 02 cmp a,$020b +0b20: 90 03 bcc $0b25 +0b22: e5 0b 02 mov a,$020b +0b25: c4 f3 mov $f3,a +0b27: 8f 3c f2 mov $f2,#$3c +0b2a: 7d mov a,x +0b2b: 65 0c 02 cmp a,$020c +0b2e: 90 03 bcc $0b33 +0b30: e5 0b 02 mov a,$020b +0b33: c4 f3 mov $f3,a +0b35: 8f 0c f2 mov $f2,#$0c +0b38: d8 f3 mov $f3,x +0b3a: 8f 1c f2 mov $f2,#$1c +0b3d: d8 f3 mov $f3,x +0b3f: e5 07 02 mov a,$0207 +0b42: d0 0d bne $0b51 +0b44: e5 06 02 mov a,$0206 +0b47: f0 08 beq $0b51 +0b49: 8f 00 64 mov $64,#$00 +0b4c: 8d 80 mov y,#$80 +0b4e: 5f 49 0c jmp $0c49 + +0b51: 6f ret + +0b52: e4 53 mov a,$53 +0b54: 10 0c bpl $0b62 +0b56: 28 1f and a,#$1f +0b58: 8f 6c f2 mov $f2,#$6c +0b5b: c4 f3 mov $f3,a +0b5d: 09 39 55 or ($55),($39) +0b60: 2f 03 bra $0b65 +0b62: 29 3a 55 and ($55),($3a) +0b65: 8f 3d f2 mov $f2,#$3d +0b68: fa 55 f3 mov ($f3),($55) +0b6b: 6f ret + +0b6c: 4d push x +0b6d: e4 f6 mov a,$f6 +0b6f: f0 4c beq $0bbd +0b71: f8 f7 mov x,$f7 +0b73: c8 1e cmp x,#$1e +0b75: 90 46 bcc $0bbd +0b77: c8 23 cmp x,#$23 +0b79: b0 42 bcs $0bbd +0b7b: 2f 05 bra $0b82 +0b7d: 4d push x +0b7e: e4 f6 mov a,$f6 +0b80: f0 3b beq $0bbd +0b82: e4 f6 mov a,$f6 +0b84: 64 f6 cmp a,$f6 +0b86: d0 fa bne $0b82 +0b88: c4 1f mov $1f,a +0b8a: fa f4 21 mov ($21),($f4) +0b8d: fa f5 22 mov ($22),($f5) +0b90: e4 f7 mov a,$f7 +0b92: 28 fe and a,#$fe +0b94: c4 20 mov $20,a +0b96: 8f b1 f1 mov $f1,#$b1 +0b99: 28 fe and a,#$fe +0b9b: c4 20 mov $20,a +0b9d: 68 20 cmp a,#$20 +0b9f: f0 07 beq $0ba8 +0ba1: 68 22 cmp a,#$22 +0ba3: f0 03 beq $0ba8 +0ba5: fa 1f f6 mov ($f6),($1f) +0ba8: 5d mov x,a +0ba9: c8 29 cmp x,#$29 +0bab: b0 10 bcs $0bbd +0bad: e4 21 mov a,$21 +0baf: eb 22 mov y,$22 +0bb1: 3f bf 0b call $0bbf +0bb4: fa 21 f4 mov ($f4),($21) +0bb7: fa 22 f5 mov ($f5),($22) +0bba: fa 20 f7 mov ($f7),($20) +0bbd: ce pop x +0bbe: 6f ret + +0bbf: 1f 54 19 jmp ($1954+x) + +0bc2: 3f 0f 0f call $0f0f +0bc5: e8 01 mov a,#$01 +0bc7: 8d 08 mov y,#$08 +0bc9: cd 01 mov x,#$01 +0bcb: 3f e7 0b call $0be7 +0bce: 8f 6c f2 mov $f2,#$6c +0bd1: 8f 00 f3 mov $f3,#$00 +0bd4: 8f ff 23 mov $23,#$ff +0bd7: 6f ret + +0bd8: da 42 movw $42,ya +0bda: 8f ff 41 mov $41,#$ff +0bdd: 6f ret + +0bde: c4 5a mov $5a,a +0be0: 6f ret + +0be1: e8 00 mov a,#$00 +0be3: c5 07 02 mov $0207,a +0be6: 6f ret + +0be7: cd 01 mov x,#$01 +0be9: 2d push a +0bea: e8 00 mov a,#$00 +0bec: c5 06 02 mov $0206,a +0bef: ae pop a +0bf0: 2f 02 bra $0bf4 +0bf2: cd ff mov x,#$ff +0bf4: c5 07 02 mov $0207,a +0bf7: c5 08 02 mov $0208,a +0bfa: cc 0a 02 mov $020a,y +0bfd: c9 09 02 mov $0209,x +0c00: 6f ret + +0c01: 8d ff mov y,#$ff +0c03: cc 05 02 mov $0205,y +0c06: 5f a0 0c jmp $0ca0 + +0c09: 3f 5a 18 call $185a +0c0c: e5 fc 19 mov a,$19fc +0c0f: c5 35 06 mov $0635,a +0c12: e5 fd 19 mov a,$19fd +0c15: c5 36 06 mov $0636,a +0c18: 05 35 06 or a,$0635 +0c1b: f0 20 beq $0c3d +0c1d: 3f 5c 14 call $145c +0c20: e5 35 06 mov a,$0635 +0c23: 80 setc +0c24: a8 01 sbc a,#$01 +0c26: c5 35 06 mov $0635,a +0c29: e5 36 06 mov a,$0636 +0c2c: a8 00 sbc a,#$00 +0c2e: c5 36 06 mov $0636,a +0c31: b0 ea bcs $0c1d +0c33: cd 07 mov x,#$07 +0c35: e8 00 mov a,#$00 +0c37: d5 6e 02 mov $026e+x,a +0c3a: 1d dec x +0c3b: 10 fa bpl $0c37 +0c3d: 6f ret + +0c3e: 8f 00 64 mov $64,#$00 +0c41: 68 00 cmp a,#$00 +0c43: d0 03 bne $0c48 +0c45: c5 46 05 mov $0546,a +0c48: 6f ret + +0c49: c5 1d 02 mov $021d,a +0c4c: cd 07 mov x,#$07 +0c4e: ad 80 cmp y,#$80 +0c50: f0 17 beq $0c69 +0c52: e8 01 mov a,#$01 +0c54: b0 0e bcs $0c64 +0c56: ad 00 cmp y,#$00 +0c58: d0 08 bne $0c62 +0c5a: e5 1d 02 mov a,$021d +0c5d: 75 15 02 cmp a,$0215+x +0c60: d0 23 bne $0c85 +0c62: e8 80 mov a,#$80 +0c64: 75 0d 02 cmp a,$020d+x +0c67: d0 1c bne $0c85 +0c69: f5 d5 07 mov a,$07d5+x +0c6c: c4 f2 mov $f2,a +0c6e: e8 00 mov a,#$00 +0c70: 8f 9f f3 mov $f3,#$9f +0c73: d5 36 02 mov $0236+x,a +0c76: d5 0d 02 mov $020d+x,a +0c79: d5 7e 02 mov $027e+x,a +0c7c: d4 5b mov $5b+x,a +0c7e: f5 f5 07 mov a,$07f5+x +0c81: 04 4d or a,$4d +0c83: c4 4d mov $4d,a +0c85: 1d dec x +0c86: 10 c6 bpl $0c4e +0c88: 6f ret + +0c89: 2d push a +0c8a: e8 00 mov a,#$00 +0c8c: c5 06 02 mov $0206,a +0c8f: ae pop a +0c90: 5f f2 0b jmp $0bf2 + +0c93: 2d push a +0c94: e8 01 mov a,#$01 +0c96: c5 06 02 mov $0206,a +0c99: ae pop a +0c9a: 5f f2 0b jmp $0bf2 + +0c9d: cc 05 02 mov $0205,y +0ca0: 8d 0e mov y,#$0e +0ca2: c5 1d 02 mov $021d,a +0ca5: 3f b2 0e call $0eb2 +0ca8: da 11 movw $11,ya +0caa: 8d 00 mov y,#$00 +0cac: f7 11 mov a,($11)+y +0cae: c4 44 mov $44,a +0cb0: 3a 11 incw $11 +0cb2: 8d 07 mov y,#$07 +0cb4: f7 11 mov a,($11)+y +0cb6: c4 45 mov $45,a +0cb8: 8d 06 mov y,#$06 +0cba: f7 11 mov a,($11)+y +0cbc: c4 46 mov $46,a +0cbe: 8f 80 47 mov $47,#$80 +0cc1: cd 07 mov x,#$07 +0cc3: 3f 16 0d call $0d16 +0cc6: 30 3e bmi $0d06 +0cc8: e8 80 mov a,#$80 +0cca: d5 0d 02 mov $020d+x,a +0ccd: e5 1d 02 mov a,$021d +0cd0: d5 15 02 mov $0215+x,a +0cd3: 8d 02 mov y,#$02 +0cd5: f7 11 mov a,($11)+y +0cd7: c4 3d mov $3d,a +0cd9: fc inc y +0cda: f7 11 mov a,($11)+y +0cdc: c4 3e mov $3e,a +0cde: 8d 04 mov y,#$04 +0ce0: f7 11 mov a,($11)+y +0ce2: c4 3f mov $3f,a +0ce4: fc inc y +0ce5: f7 11 mov a,($11)+y +0ce7: c4 40 mov $40,a +0ce9: e4 41 mov a,$41 +0ceb: f0 04 beq $0cf1 +0ced: ba 42 movw ya,$42 +0cef: da 3f movw $3f,ya +0cf1: 8d 01 mov y,#$01 +0cf3: f7 11 mov a,($11)+y +0cf5: 2d push a +0cf6: 8d 00 mov y,#$00 +0cf8: f7 11 mov a,($11)+y +0cfa: 8d 01 mov y,#$01 +0cfc: cc 04 02 mov $0204,y +0cff: ee pop y +0d00: 8f 00 cf mov $cf,#$00 +0d03: 3f 40 0d call $0d40 +0d06: 60 clrc +0d07: 98 08 11 adc $11,#$08 +0d0a: 90 02 bcc $0d0e +0d0c: ab 12 inc $12 +0d0e: 8b 44 dec $44 +0d10: d0 a0 bne $0cb2 +0d12: 8f 00 41 mov $41,#$00 +0d15: 6f ret + +0d16: 8d 07 mov y,#$07 +0d18: e4 47 mov a,$47 +0d1a: 24 45 and a,$45 +0d1c: f0 0c beq $0d2a +0d1e: f5 0d 02 mov a,$020d+x +0d21: f0 15 beq $0d38 +0d23: e4 46 mov a,$46 +0d25: 75 2e 02 cmp a,$022e+x +0d28: b0 10 bcs $0d3a +0d2a: 4b 47 lsr $47 +0d2c: d0 05 bne $0d33 +0d2e: 8f 80 47 mov $47,#$80 +0d31: cd 08 mov x,#$08 +0d33: 1d dec x +0d34: dc dec y +0d35: 10 e1 bpl $0d18 +0d37: 6f ret + +0d38: e4 46 mov a,$46 +0d3a: d5 2e 02 mov $022e+x,a +0d3d: e8 00 mov a,#$00 +0d3f: 6f ret + +0d40: d8 3b mov $3b,x ; play sound (instrument) +0d42: 2d push a +0d43: e4 cf mov a,$cf +0d45: d0 08 bne $0d4f +0d47: f5 d5 07 mov a,$07d5+x +0d4a: c4 f2 mov $f2,a +0d4c: 8f 9f f3 mov $f3,#$9f +0d4f: dd mov a,y +0d50: d5 6e 02 mov $026e+x,a +0d53: 7d mov a,x +0d54: 1c asl a +0d55: 5d mov x,a +0d56: e4 3f mov a,$3f +0d58: d5 4e 02 mov $024e+x,a +0d5b: e4 40 mov a,$40 +0d5d: d5 4f 02 mov $024f+x,a +0d60: e4 3d mov a,$3d +0d62: d5 1e 02 mov $021e+x,a +0d65: e4 3e mov a,$3e +0d67: d5 1f 02 mov $021f+x,a +0d6a: ae pop a +0d6b: 8d 02 mov y,#$02 +0d6d: 3f b2 0e call $0eb2 +0d70: da 0f movw $0f,ya ;get current voice and instrument +0d72: f8 3b mov x,$3b +0d74: f5 f5 07 mov a,$07f5+x ;get channel bit mask ID +0d77: c4 56 mov $56,a +0d79: 48 ff eor a,#$ff ;and store inversion +0d7b: c4 57 mov $57,a +0d7d: 8d 00 mov y,#$00 ;get mode flags +0d7f: f7 0f mov a,($0f)+y +0d81: 2d push a +0d82: e5 05 02 mov a,$0205 +0d85: 30 0a bmi $0d91 +0d87: ae pop a +0d88: 2d push a +0d89: 28 08 and a,#$08 +0d8b: f0 04 beq $0d91 +0d8d: ae pop a +0d8e: 48 08 eor a,#$08 +0d90: 2d push a +0d91: ae pop a +0d92: d4 5b mov $5b+x,a +0d94: c4 3c mov $3c,a +0d96: 28 20 and a,#$20 ; is pitch modulation enabled? ($20 = pm) +0d98: f0 05 beq $0d9f ; if not... +0d9a: 09 56 58 or ($58),($56) ; turn pitch mod on +0d9d: 2f 03 bra $0da2 +0d9f: 29 57 58 and ($58),($57) ; turn pitch mod off + +0da2: 8f 2d f2 mov $f2,#$2d +0da5: fa 58 f3 mov ($f3),($58) +0da8: e4 cf mov a,$cf +0daa: d0 3e bne $0dea +0dac: e4 3c mov a,$3c ; retrieve the saved flag +0dae: 28 10 and a,#$10 ; is echo enabled? ($10 = echo) +0db0: f0 2f beq $0de1 ; if not... +0db2: 8d 05 mov y,#$05 ; get echo byte from sound +0db4: f7 0f mov a,($0f)+y +0db6: 8d 0c mov y,#$0c +0db8: 3f b2 0e call $0eb2 +0dbb: 8d 00 mov y,#$00 +0dbd: f6 05 08 mov a,$0805+y ; get the echo register values to "poke" +0dc0: c4 f2 mov $f2,a ; (from the table) +0dc2: f7 18 mov a,($18)+y ; now get info to feed to the registers +0dc4: ad 01 cmp y,#$01 ; (from the echo environment) +0dc6: f0 04 beq $0dcc +0dc8: ad 02 cmp y,#$02 +0dca: d0 09 bne $0dd5 +0dcc: d6 0a 02 mov $020a+y,a +0dcf: 64 1e cmp a,$1e +0dd1: 90 02 bcc $0dd5 +0dd3: e4 1e mov a,$1e +0dd5: c4 f3 mov $f3,a +0dd7: fc inc y +0dd8: ad 0c cmp y,#$0c ; repeat for every byte of the array +0dda: 90 e1 bcc $0dbd +0ddc: 09 56 59 or ($59),($56) +0ddf: 2f 03 bra $0de4 +0de1: 29 57 59 and ($59),($57) ; send the echo unit +0de4: 8f 4d f2 mov $f2,#$4d +0de7: fa 59 f3 mov ($f3),($59) +0dea: e4 3c mov a,$3c +0dec: 28 01 and a,#$01 +0dee: 0d push psw +0def: 8d 01 mov y,#$01 +0df1: f7 0f mov a,($0f)+y ; now get the amplitude +0df3: 8e pop psw +0df4: d0 08 bne $0dfe +0df6: f8 3b mov x,$3b +0df8: d5 36 02 mov $0236+x,a +0dfb: 5f 14 0e jmp $0e14 + +0dfe: 8d 04 mov y,#$04 +0e00: 3f b2 0e call $0eb2 +0e03: f8 3b mov x,$3b +0e05: f5 19 08 mov a,$0819+x +0e08: c4 15 mov $15,a +0e0a: f5 11 08 mov a,$0811+x +0e0d: c4 16 mov $16,a +0e0f: ba 3d movw ya,$3d +0e11: 3f 89 0f call $0f89 +0e14: e4 3c mov a,$3c +0e16: 28 04 and a,#$04 +0e18: f0 1a beq $0e34 +0e1a: 8d 03 mov y,#$03 +0e1c: f7 0f mov a,($0f)+y +0e1e: 8d 06 mov y,#$06 +0e20: 3f b2 0e call $0eb2 +0e23: f8 3b mov x,$3b +0e25: f5 29 08 mov a,$0829+x +0e28: c4 15 mov $15,a +0e2a: f5 21 08 mov a,$0821+x +0e2d: c4 16 mov $16,a +0e2f: ba 3d movw ya,$3d +0e31: 3f 89 0f call $0f89 +0e34: e4 cf mov a,$cf +0e36: d0 76 bne $0eae +0e38: e5 05 02 mov a,$0205 +0e3b: 10 0c bpl $0e49 +0e3d: e4 3c mov a,$3c +0e3f: 28 08 and a,#$08 +0e41: 0d push psw +0e42: 8d 04 mov y,#$04 +0e44: f7 0f mov a,($0f)+y +0e46: 8e pop psw +0e47: d0 08 bne $0e51 +0e49: f8 3b mov x,$3b +0e4b: d5 76 02 mov $0276+x,a +0e4e: 5f 7e 0e jmp $0e7e + +0e51: 8d 08 mov y,#$08 +0e53: 3f b2 0e call $0eb2 +0e56: f8 3b mov x,$3b +0e58: f5 49 08 mov a,$0849+x +0e5b: c4 15 mov $15,a +0e5d: f5 41 08 mov a,$0841+x +0e60: c4 16 mov $16,a +0e62: ba 3d movw ya,$3d +0e64: 3f 89 0f call $0f89 +0e67: 8d 07 mov y,#$07 +0e69: f7 15 mov a,($15)+y +0e6b: f0 0b beq $0e78 +0e6d: 8d 15 mov y,#$15 +0e6f: f7 15 mov a,($15)+y +0e71: d0 05 bne $0e78 +0e73: e8 ff mov a,#$ff +0e75: 5f 7a 0e jmp $0e7a + +0e78: e8 00 mov a,#$00 +0e7a: 8d 15 mov y,#$15 +0e7c: d7 15 mov ($15)+y,a +0e7e: e4 3c mov a,$3c +0e80: 28 02 and a,#$02 +0e82: 0d push psw +0e83: 8d 02 mov y,#$02 +0e85: f7 0f mov a,($0f)+y +0e87: 8e pop psw +0e88: d0 08 bne $0e92 +0e8a: f8 3b mov x,$3b +0e8c: d5 7e 02 mov $027e+x,a +0e8f: 5f a8 0e jmp $0ea8 + +0e92: 8d 0a mov y,#$0a +0e94: 3f b2 0e call $0eb2 +0e97: f8 3b mov x,$3b +0e99: f5 39 08 mov a,$0839+x +0e9c: c4 15 mov $15,a +0e9e: f5 31 08 mov a,$0831+x +0ea1: c4 16 mov $16,a +0ea3: ba 3d movw ya,$3d +0ea5: 3f 89 0f call $0f89 +0ea8: 09 56 4d or ($4d),($56) +0eab: 09 56 48 or ($48),($56) +0eae: 8f 00 cf mov $cf,#$00 +0eb1: 6f ret + +0eb2: 8f 00 0e mov $0e,#$00 ; load current song/sfx/etc. address into stack +0eb5: 1c asl a +0eb6: 2b 0e rol $0e +0eb8: 60 clrc +0eb9: 96 e0 19 adc a,$19e0+y +0ebc: c4 0d mov $0d,a +0ebe: e4 0e mov a,$0e +0ec0: 96 e1 19 adc a,$19e1+y +0ec3: c4 0e mov $0e,a +0ec5: 8d 01 mov y,#$01 +0ec7: f7 0d mov a,($0d)+y +0ec9: c4 19 mov $19,a +0ecb: dc dec y +0ecc: f7 0d mov a,($0d)+y +0ece: c4 18 mov $18,a +0ed0: eb 19 mov y,$19 +0ed2: 6f ret + +0ed3: cd 3e mov x,#$3e +0ed5: 8d 0f mov y,#$0f +0ed7: 3f 27 0f call $0f27 +0eda: e8 00 mov a,#$00 +0edc: fd mov y,a +0edd: c4 00 mov $00,a +0edf: 8f 02 01 mov $01,#$02 +0ee2: d7 00 mov ($00)+y,a +0ee4: 3a 00 incw $00 +0ee6: 78 07 01 cmp $01,#$07 +0ee9: 90 f7 bcc $0ee2 +0eeb: d6 00 00 mov $0000+y,a +0eee: fc inc y +0eef: ad f0 cmp y,#$f0 +0ef1: 90 f8 bcc $0eeb +0ef3: 8d 00 mov y,#$00 +0ef5: 60 clrc +0ef6: d6 8a 00 mov $008a+y,a +0ef9: 88 19 adc a,#$19 +0efb: fc inc y +0efc: ad 08 cmp y,#$08 +0efe: d0 f6 bne $0ef6 +0f00: 9c dec a +0f01: c4 49 mov $49,a +0f03: c4 4b mov $4b,a +0f05: c4 50 mov $50,a +0f07: c4 4a mov $4a,a +0f09: c4 4f mov $4f,a +0f0b: 8f 00 1e mov $1e,#$00 +0f0e: 6f ret + +0f0f: e5 e1 19 mov a,$19e1 +0f12: 8f 6d f2 mov $f2,#$6d +0f15: c4 f3 mov $f3,a +0f17: c4 01 mov $01,a +0f19: e8 00 mov a,#$00 +0f1b: fd mov y,a +0f1c: c4 00 mov $00,a +0f1e: d7 00 mov ($00)+y,a +0f20: fe fc dbnz y,$0f1e +0f22: ab 01 inc $01 +0f24: d0 f8 bne $0f1e +0f26: 6f ret + +0f27: d8 00 mov $00,x +0f29: cb 01 mov $01,y +0f2b: 8d 00 mov y,#$00 +0f2d: f7 00 mov a,($00)+y +0f2f: 68 ff cmp a,#$ff +0f31: f0 0a beq $0f3d +0f33: c4 f2 mov $f2,a +0f35: fc inc y +0f36: f7 00 mov a,($00)+y +0f38: c4 f3 mov $f3,a +0f3a: fc inc y +0f3b: d0 f0 bne $0f2d +0f3d: 6f ret + +; pre-defined DSP flags +0f3e: db $6c,$3f ; clear flags +0f40: db $3d,$00 ; turn off noise generator (NON) +0f42: db $4d,$00 ; turn off echo (EON) +0f44: db $7d,$00 ; turn off echo delay time (EDL) +0f46: db $6d,$ff ; pointer to echo memory (ESA) +0f48: db $5d,$1a ; set source directory offset +0f4a: db $5c,$00 ; set key off (KOFF) +0f4c: db $2d,$00 ; disable pitch modulation (PMON) +0f4e: db $05,$00 ; set ASDR (1) (channel 1) +0f50: db $15,$00 ; set ASDR (1) (channel 2) +0f52: db $25,$00 ; set ASDR (1) (channel 3) +0f54: db $35,$00 ; set ASDR (1) (channel 4) +0f56: db $45,$00 ; set ASDR (1) (channel 5) +0f58: db $55,$00 ; set ASDR (1) (channel 6) +0f5a: db $65,$00 ; set ASDR (1) (channel 7) +0f5c: db $75,$00 ; set ASDR (1) (channel 8) +0f5e: db $07,$00 ; set GAIN (channel 1) +0f60: db $17,$00 ; set GAIN (channel 2) +0f62: db $27,$00 ; set GAIN (channel 3) +0f64: db $37,$00 ; set GAIN (channel 4) +0f66: db $47,$00 ; set GAIN (channel 5) +0f68: db $57,$00 ; set GAIN (channel 6) +0f6a: db $67,$00 ; set GAIN (channel 7) +0f6c: db $77,$00 ; set GAIN (channel 8) +0f6e: db $7c,$00 ; end of sample flag +0f70: db $2c,$00 ; turn off EVOLL +0f72: db $3c,$00 ; turn off EVOLR +0f74: db $0c,$00 ; turn off MVOLL +0f76: db $1c,$00 ; turn off MVOLR +0f78: db $04,$00 ; set source number (channel 1) +0f7a: db $14,$00 ; set source number (channel 2) +0f7c: db $24,$00 ; set source number (channel 3) +0f7e: db $34,$00 ; set source number (channel 4) +0f80: db $44,$00 ; set source number (channel 5) +0f82: db $54,$00 ; set source number (channel 6) +0f84: db $64,$00 ; set source number (channel 7) +0f86: db $74,$00 ; set source number (channel 8) +0f88: db $ff + +0f89: da 2f movw $2f,ya +0f8b: 8d 07 mov y,#$07 +0f8d: f7 18 mov a,($18)+y +0f8f: d7 15 mov ($15)+y,a +0f91: dc dec y +0f92: 10 f9 bpl $0f8d +0f94: e4 18 mov a,$18 +0f96: 60 clrc +0f97: 88 08 adc a,#$08 +0f99: 8d 08 mov y,#$08 +0f9b: d7 15 mov ($15)+y,a +0f9d: e4 19 mov a,$19 +0f9f: 88 00 adc a,#$00 +0fa1: fc inc y +0fa2: d7 15 mov ($15)+y,a +0fa4: 8d 03 mov y,#$03 +0fa6: f7 15 mov a,($15)+y +0fa8: 5d mov x,a +0fa9: 8d 02 mov y,#$02 +0fab: f7 15 mov a,($15)+y +0fad: fd mov y,a +0fae: 7d mov a,x +0faf: cf mul ya +0fb0: da 33 movw $33,ya +0fb2: 4d push x +0fb3: ba 2f movw ya,$2f +0fb5: e9 04 02 mov x,$0204 +0fb8: d0 1d bne $0fd7 +0fba: 6d push y +0fbb: 5d mov x,a +0fbc: e5 02 02 mov a,$0202 +0fbf: ec 03 02 mov y,$0203 +0fc2: 3f 16 16 call $1616 +0fc5: da 31 movw $31,ya +0fc7: ce pop x +0fc8: e5 02 02 mov a,$0202 +0fcb: ec 03 02 mov y,$0203 +0fce: 3f 16 16 call $1616 +0fd1: 60 clrc +0fd2: 84 32 adc a,$32 +0fd4: fd mov y,a +0fd5: e4 31 mov a,$31 +0fd7: ce pop x +0fd8: 9a 33 subw ya,$33 +0fda: b0 03 bcs $0fdf +0fdc: e8 00 mov a,#$00 +0fde: fd mov y,a +0fdf: cb 34 mov $34,y +0fe1: 8d 0d mov y,#$0d +0fe3: d7 15 mov ($15)+y,a +0fe5: fc inc y +0fe6: e4 34 mov a,$34 +0fe8: d7 15 mov ($15)+y,a +0fea: 8d 03 mov y,#$03 +0fec: f7 15 mov a,($15)+y +0fee: bc inc a +0fef: 8d 0f mov y,#$0f +0ff1: d7 15 mov ($15)+y,a +0ff3: 68 03 cmp a,#$03 +0ff5: b0 06 bcs $0ffd +0ff7: 8d 04 mov y,#$04 +0ff9: e8 00 mov a,#$00 +0ffb: d7 15 mov ($15)+y,a +0ffd: 8d 08 mov y,#$08 +0fff: f7 15 mov a,($15)+y +1001: 8d 0a mov y,#$0a +1003: d7 15 mov ($15)+y,a +1005: 8d 09 mov y,#$09 +1007: f7 15 mov a,($15)+y +1009: 8d 0b mov y,#$0b +100b: d7 15 mov ($15)+y,a +100d: e8 01 mov a,#$01 +100f: 8d 14 mov y,#$14 +1011: d7 15 mov ($15)+y,a +1013: 9c dec a +1014: 8d 0c mov y,#$0c +1016: d7 15 mov ($15)+y,a +1018: 8d 12 mov y,#$12 +101a: d7 15 mov ($15)+y,a +101c: fc inc y +101d: d7 15 mov ($15)+y,a +101f: c4 28 mov $28,a +1021: 5f d2 10 jmp $10d2 + +1024: 8d 14 mov y,#$14 +1026: f7 15 mov a,($15)+y +1028: f0 39 beq $1063 +102a: 8d 04 mov y,#$04 +102c: f7 15 mov a,($15)+y +102e: c4 28 mov $28,a +1030: 8d 0f mov y,#$0f +1032: f7 15 mov a,($15)+y +1034: c4 29 mov $29,a +1036: f0 03 beq $103b +1038: 9c dec a +1039: d0 06 bne $1041 +103b: 8d 03 mov y,#$03 +103d: f7 15 mov a,($15)+y +103f: 8d 0f mov y,#$0f +1041: d7 15 mov ($15)+y,a +1043: 78 02 29 cmp $29,#$02 +1046: 90 03 bcc $104b +1048: 5f d2 10 jmp $10d2 + +104b: 8d 0c mov y,#$0c +104d: f7 15 mov a,($15)+y +104f: bc inc a +1050: 8d 05 mov y,#$05 +1052: 77 15 cmp a,($15)+y +1054: 90 17 bcc $106d +1056: 9c dec a +1057: 8d 01 mov y,#$01 +1059: 77 15 cmp a,($15)+y +105b: f0 6a beq $10c7 +105d: e8 00 mov a,#$00 +105f: 8d 14 mov y,#$14 +1061: d7 15 mov ($15)+y,a +1063: 8d 11 mov y,#$11 +1065: f7 15 mov a,($15)+y +1067: 2d push a +1068: dc dec y +1069: f7 15 mov a,($15)+y +106b: ee pop y +106c: 6f ret + +106d: 8d 0c mov y,#$0c +106f: d7 15 mov ($15)+y,a +1071: 8d 06 mov y,#$06 +1073: f7 15 mov a,($15)+y +1075: 8d 0a mov y,#$0a +1077: 60 clrc +1078: 97 15 adc a,($15)+y +107a: d7 15 mov ($15)+y,a +107c: 90 07 bcc $1085 +107e: fc inc y +107f: f7 15 mov a,($15)+y +1081: 88 00 adc a,#$00 +1083: d7 15 mov ($15)+y,a +1085: 8d 0e mov y,#$0e +1087: f7 15 mov a,($15)+y +1089: 5d mov x,a +108a: dc dec y +108b: f7 15 mov a,($15)+y +108d: d0 04 bne $1093 +108f: c8 00 cmp x,#$00 +1091: f0 3f beq $10d2 +1093: 8d 03 mov y,#$03 +1095: 80 setc +1096: b7 15 sbc a,($15)+y +1098: 8d 0d mov y,#$0d +109a: d7 15 mov ($15)+y,a +109c: c4 33 mov $33,a +109e: 7d mov a,x +109f: a8 00 sbc a,#$00 +10a1: b0 06 bcs $10a9 +10a3: e8 00 mov a,#$00 +10a5: d7 15 mov ($15)+y,a +10a7: c4 33 mov $33,a +10a9: fc inc y +10aa: d7 15 mov ($15)+y,a +10ac: 04 33 or a,$33 +10ae: d0 0b bne $10bb +10b0: 8d 01 mov y,#$01 +10b2: f7 15 mov a,($15)+y +10b4: 68 ff cmp a,#$ff +10b6: f0 03 beq $10bb +10b8: 5f cb 10 jmp $10cb + +10bb: 8d 0c mov y,#$0c +10bd: f7 15 mov a,($15)+y +10bf: 8d 01 mov y,#$01 +10c1: 77 15 cmp a,($15)+y +10c3: 90 0d bcc $10d2 +10c5: f0 0b beq $10d2 +10c7: 8d 00 mov y,#$00 +10c9: f7 15 mov a,($15)+y +10cb: 8d 0c mov y,#$0c +10cd: d7 15 mov ($15)+y,a +10cf: 3f 75 11 call $1175 +10d2: f8 28 mov x,$28 +10d4: f0 14 beq $10ea +10d6: 78 03 29 cmp $29,#$03 +10d9: 90 0f bcc $10ea +10db: 8d 13 mov y,#$13 +10dd: cd 03 mov x,#$03 +10df: f7 15 mov a,($15)+y +10e1: d4 24 mov $24+x,a +10e3: dc dec y +10e4: 1d dec x +10e5: 10 f8 bpl $10df +10e7: 5f 52 11 jmp $1152 + +10ea: 3f 64 11 call $1164 +10ed: 8d 06 mov y,#$06 +10ef: f7 15 mov a,($15)+y +10f1: 5d mov x,a +10f2: 8d 00 mov y,#$00 +10f4: f7 1a mov a,($1a)+y +10f6: c8 01 cmp x,#$01 +10f8: f0 06 beq $1100 +10fa: 5d mov x,a +10fb: fc inc y +10fc: f7 1a mov a,($1a)+y +10fe: fd mov y,a +10ff: 7d mov a,x +1100: f8 28 mov x,$28 +1102: f0 52 beq $1156 +1104: 78 02 29 cmp $29,#$02 +1107: f0 4d beq $1156 +1109: da 2f movw $2f,ya +110b: 8d 11 mov y,#$11 +110d: f7 15 mov a,($15)+y +110f: c4 25 mov $25,a +1111: dc dec y +1112: f7 15 mov a,($15)+y +1114: c4 24 mov $24,a +1116: eb 25 mov y,$25 +1118: 80 setc +1119: 9a 2f subw ya,$2f +111b: da 26 movw $26,ya +111d: e8 00 mov a,#$00 +111f: 3c rol a +1120: c4 2f mov $2f,a +1122: d0 08 bne $112c +1124: 58 ff 26 eor $26,#$ff +1127: 58 ff 27 eor $27,#$ff +112a: 3a 26 incw $26 +112c: 8d 03 mov y,#$03 +112e: f7 15 mov a,($15)+y +1130: 5d mov x,a +1131: ba 26 movw ya,$26 +1133: 3f 90 11 call $1190 +1136: c4 26 mov $26,a +1138: d8 27 mov $27,x +113a: 78 01 2f cmp $2f,#$01 +113d: d0 08 bne $1147 +113f: 58 ff 26 eor $26,#$ff +1142: 58 ff 27 eor $27,#$ff +1145: 3a 26 incw $26 +1147: 8d 12 mov y,#$12 +1149: e4 26 mov a,$26 +114b: d7 15 mov ($15)+y,a +114d: fc inc y +114e: e4 27 mov a,$27 +1150: d7 15 mov ($15)+y,a +1152: ba 24 movw ya,$24 +1154: 7a 26 addw ya,$26 +1156: da 24 movw $24,ya +1158: 8d 10 mov y,#$10 +115a: d7 15 mov ($15)+y,a +115c: e4 25 mov a,$25 +115e: fc inc y +115f: d7 15 mov ($15)+y,a +1161: ba 24 movw ya,$24 +1163: 6f ret + +1164: 8d 0a mov y,#$0a +1166: 5f 6b 11 jmp $116b + +1169: 8d 08 mov y,#$08 +116b: f7 15 mov a,($15)+y +116d: c4 1a mov $1a,a +116f: fc inc y +1170: f7 15 mov a,($15)+y +1172: c4 1b mov $1b,a +1174: 6f ret + +1175: 2d push a +1176: 3f 69 11 call $1169 +1179: 8d 06 mov y,#$06 +117b: f7 15 mov a,($15)+y +117d: fd mov y,a +117e: ae pop a +117f: cf mul ya +1180: 7a 1a addw ya,$1a +1182: da 1a movw $1a,ya +1184: 8d 0a mov y,#$0a +1186: e4 1a mov a,$1a +1188: d7 15 mov ($15)+y,a +118a: fc inc y +118b: e4 1b mov a,$1b +118d: d7 15 mov ($15)+y,a +118f: 6f ret + +1190: c8 00 cmp x,#$00 +1192: d0 05 bne $1199 +1194: e8 ff mov a,#$ff +1196: fd mov y,a +1197: 5d mov x,a +1198: 6f ret + +1199: cb 2c mov $2c,y +119b: 3e 2c cmp x,$2c +119d: f0 02 beq $11a1 +119f: b0 19 bcs $11ba +11a1: c4 2b mov $2b,a +11a3: dd mov a,y +11a4: 8d 00 mov y,#$00 +11a6: 9e div ya,x +11a7: c4 2d mov $2d,a +11a9: fd mov y,a +11aa: 7d mov a,x +11ab: cf mul ya +11ac: c4 2e mov $2e,a +11ae: e4 2c mov a,$2c +11b0: 80 setc +11b1: a4 2e sbc a,$2e +11b3: fd mov y,a +11b4: e4 2b mov a,$2b +11b6: 9e div ya,x +11b7: f8 2d mov x,$2d +11b9: 6f ret + +11ba: 9e div ya,x +11bb: cd 00 mov x,#$00 +11bd: 6f ret + +11be: f5 86 02 mov a,$0286+x +11c1: 8d 04 mov y,#$04 +11c3: cf mul ya +11c4: 7a 13 addw ya,$13 +11c6: da 00 movw $00,ya +11c8: 8d 01 mov y,#$01 +11ca: f7 00 mov a,($00)+y +11cc: c4 32 mov $32,a +11ce: dc dec y +11cf: f7 00 mov a,($00)+y +11d1: 80 setc +11d2: a8 03 sbc a,#$03 +11d4: c4 31 mov $31,a +11d6: b8 00 32 sbc $32,#$00 +11d9: f7 31 mov a,($31)+y +11db: c4 51 mov $51,a +11dd: fc inc y +11de: f7 31 mov a,($31)+y +11e0: c4 52 mov $52,a +11e2: fc inc y +11e3: f7 31 mov a,($31)+y +11e5: c4 53 mov $53,a +11e7: 6f ret + +11e8: 60 clrc +11e9: 88 a0 adc a,#$a0 ; add offset to input frequency (1440) +11eb: 5d mov x,a +11ec: dd mov a,y +11ed: 88 05 adc a,#$05 +11ef: fd mov y,a +11f0: 7d mov a,x +11f1: ad 0a cmp y,#$0a ; check if it is in within positive range +11f3: 90 06 bcc $11fb ; in range +11f5: d0 0a bne $1201 ; out of range +11f7: 68 50 cmp a,#$50 +11f9: b0 06 bcs $1201 ; out of range +11fb: 8f ff 54 mov $54,#$ff +11fe: 5f 17 12 jmp $1217 + +1201: ad 80 cmp y,#$80 +1203: 90 0f bcc $1214 +1205: 8f 00 54 mov $54,#$00 +1208: 60 clrc +1209: 88 20 adc a,#$20 +120b: 5d mov x,a +120c: dd mov a,y +120d: 88 df adc a,#$df +120f: fd mov y,a +1210: 7d mov a,x +1211: 5f 17 12 jmp $1217 + +1214: 8f 0a 54 mov $54,#$0a +1217: cd f0 mov x,#$f0 +1219: 9e div ya,x +121a: 78 ff 54 cmp $54,#$ff +121d: d0 02 bne $1221 +121f: c4 54 mov $54,a +1221: f6 3c 12 mov a,$123c+y ;get pitch value (from table) +1224: c4 2f mov $2f,a +1226: f6 2c 13 mov a,$132c+y +1229: c4 30 mov $30,a +122b: e8 0a mov a,#$0a +122d: 80 setc +122e: a4 54 sbc a,$54 +1230: f0 07 beq $1239 +1232: fd mov y,a +1233: 4b 30 lsr $30 +1235: 6b 2f ror $2f +1237: fe fa dbnz y,$1233 +1239: ba 2f movw ya,$2f +123b: 6f ret + +; pitch table (low byte) +123c: db $00,$18,$2f,$47,$5f,$77,$8f,$a7,$bf,$d8,$f0,$08,$21,$39,$52,$6b,$83,$9c,$b5,$ce,$e7,$00,$19,$33,$4c,$65,$7f,$98,$b2,$cc,$e5,$ff,$19,$33,$4d,$67,$82,$9c,$b6,$d1,$eb,$06,$20,$3b,$56,$71,$8c,$a7,$c2,$dd,$f9,$14,$2f,$4b,$67,$82,$9e,$ba,$d6,$f2,$0e,$2a,$46,$63,$7f,$9c,$b8,$d5,$f2,$0f,$2b,$48,$66,$83,$a0,$bd,$db,$f8,$16,$34,$51,$6f,$8d,$ab,$c9,$e7,$06,$24,$43,$61,$80,$9e,$bd,$dc,$fb,$1a,$39,$59,$78,$97,$b7,$d7,$f6,$16,$36,$56,$76,$96,$b7,$d7,$f7,$18,$39,$59,$7a,$9b,$bc,$dd,$ff,$20,$41,$63,$84,$a6,$c8,$ea,$0c,$2e,$50,$72,$95,$b7,$da,$fc,$1f,$42,$65,$88,$ab,$cf,$f2,$16,$39,$5d,$81,$a5,$c9,$ed,$11,$35,$5a,$7e,$a3,$c8,$ed,$12,$37,$5c,$81,$a6,$cc,$f2,$17,$3d,$63,$89,$af,$d6,$fc,$22,$49,$70,$97,$be,$e5,$0c,$33,$5a,$82,$aa,$d1,$f9,$21,$49,$71,$9a,$c2,$eb,$13,$3c,$65,$8e,$b7,$e0,$0a,$33,$5d,$87,$b0,$da,$04,$2f,$59,$84,$ae,$d9,$04,$2f,$5a,$85,$b0,$dc,$07,$33,$5f,$8b,$b7,$e3,$0f,$3c,$68,$95,$c2,$ef,$1c,$49,$77,$a4,$d2,$00,$2e,$5c,$8a,$b8,$e7,$15,$44,$73,$a2,$d1 + +; pitch table (high byte) +132c: db $20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$23,$23,$23,$23,$23,$23,$23,$23,$23,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$25,$25,$25,$25,$25,$25,$25,$25,$25,$26,$26,$26,$26,$26,$26,$26,$26,$26,$27,$27,$27,$27,$27,$27,$27,$27,$27,$28,$28,$28,$28,$28,$28,$28,$28,$29,$29,$29,$29,$29,$29,$29,$29,$29,$2a,$2a,$2a,$2a,$2a,$2a,$2a,$2a,$2b,$2b,$2b,$2b,$2b,$2b,$2b,$2b,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2d,$2d,$2d,$2d,$2d,$2d,$2d,$2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e,$2f,$2f,$2f,$2f,$2f,$2f,$2f,$30,$30,$30,$30,$30,$30,$30,$31,$31,$31,$31,$31,$31,$31,$32,$32,$32,$32,$32,$32,$32,$33,$33,$33,$33,$33,$33,$33,$34,$34,$34,$34,$34,$34,$35,$35,$35,$35,$35,$35,$35,$36,$36,$36,$36,$36,$36,$37,$37,$37,$37,$37,$37,$38,$38,$38,$38,$38,$38,$39,$39,$39,$39,$39,$39,$3a,$3a,$3a,$3a,$3a,$3a,$3b,$3b,$3b,$3b,$3b,$3b,$3c,$3c,$3c,$3c,$3c,$3c,$3d,$3d,$3d,$3d,$3d,$3e,$3e,$3e,$3e,$3e,$3e,$3f,$3f,$3f,$3f,$3f + +; note interval frequencies (low byte) +141c: db $30,$20,$ac,$10,$24,$38,$4c,$60,$74,$88,$9c,$b0,$c4,$d8,$ec,$00,$14,$28,$3c,$50,$64,$78,$8c,$a0,$b4,$c8,$dc,$f0,$54,$e0,$d0,$c0 + +; note interval frequencies (high byte) +143c: db $fd,$fe,$fe,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$02,$03 + +145c: e4 64 mov a,$64 +145e: d0 0c bne $146c +1460: e5 46 05 mov a,$0546 +1463: f0 22 beq $1487 +1465: e8 00 mov a,#$00 +1467: c5 46 05 mov $0546,a +146a: 2f f0 bra $145c +146c: e4 63 mov a,$63 +146e: 9c dec a +146f: c4 65 mov $65,a +1471: 1c asl a +1472: c4 66 mov $66,a +1474: 3f 6c 0b call $0b6c +1477: f8 65 mov x,$65 +1479: f4 68 mov a,$68+x +147b: 5d mov x,a +147c: 1f d8 18 jmp ($18d8+x) + +147f: 8b 66 dec $66 +1481: 8b 66 dec $66 +1483: 8b 65 dec $65 +1485: 10 ed bpl $1474 +1487: 6f ret + +1488: f8 65 mov x,$65 +148a: 9b 9b dec $9b+x +148c: d0 f1 bne $147f +148e: f5 47 05 mov a,$0547+x +1491: d4 9b mov $9b+x,a +1493: 9b a3 dec $a3+x +1495: d0 e8 bne $147f +1497: f4 68 mov a,$68+x +1499: e8 04 mov a,#$04 +149b: d4 68 mov $68+x,a +149d: 5f a0 14 jmp $14a0 + +14a0: f8 65 mov x,$65 +14a2: f4 82 mov a,$82+x +14a4: 68 19 cmp a,#$19 +14a6: f0 25 beq $14cd +14a8: 60 clrc +14a9: 94 8a adc a,$8a+x +14ab: f8 66 mov x,$66 +14ad: c4 02 mov $02,a +14af: fd mov y,a +14b0: f6 3b 06 mov a,$063b+y +14b3: c4 00 mov $00,a +14b5: f6 3c 06 mov a,$063c+y +14b8: c4 01 mov $01,a +14ba: 8d 02 mov y,#$02 +14bc: f7 00 mov a,($00)+y +14be: 74 72 cmp a,$72+x +14c0: d0 0b bne $14cd +14c2: 8d 03 mov y,#$03 +14c4: f7 00 mov a,($00)+y +14c6: 74 73 cmp a,$73+x +14c8: d0 03 bne $14cd +14ca: 5f 32 17 jmp $1732 + +14cd: 3f f2 15 call $15f2 +14d0: fd mov y,a ; get the current note/command +14d1: 28 20 and a,#$20 +14d3: c4 67 mov $67,a +14d5: f8 65 mov x,$65 +14d7: ad 80 cmp y,#$80 ; is it a note? +14d9: 90 3d bcc $1518 +14db: ad f0 cmp y,#$f0 ; is it a special meaning flag? +14dd: 90 08 bcc $14e7 +14df: dd mov a,y ; then it must be a command... +14e0: 28 0f and a,#$0f +14e2: 1c asl a +14e3: 5d mov x,a +14e4: 1f 2f 18 jmp ($182f+x) ; jump to command number position + +14e7: f5 67 05 mov a,$0567+x ; pitch bend +14ea: f0 4c beq $1538 +14ec: dd mov a,y +14ed: 28 08 and a,#$08 +14ef: 0d push psw +14f0: dd mov a,y +14f1: 28 07 and a,#$07 +14f3: bc inc a +14f4: 1c asl a +14f5: f8 66 mov x,$66 +14f7: 8e pop psw +14f8: f0 0d beq $1507 +14fa: 60 clrc +14fb: 94 be adc a,$be+x +14fd: d4 be mov $be+x,a +14ff: f4 bf mov a,$bf+x +1501: 88 00 adc a,#$00 +1503: d4 bf mov $bf+x,a +1505: 2f 31 bra $1538 +1507: c4 2f mov $2f,a +1509: f4 be mov a,$be+x +150b: 80 setc +150c: a4 2f sbc a,$2f +150e: d4 be mov $be+x,a +1510: f4 bf mov a,$bf+x +1512: a8 00 sbc a,#$00 +1514: d4 bf mov $bf+x,a +1516: 2f 20 bra $1538 +1518: f5 67 05 mov a,$0567+x ; play the note (check first) +151b: f0 1b beq $1538 +151d: dd mov a,y +151e: 28 1f and a,#$1f ; get the actual note value +1520: fd mov y,a +1521: f8 66 mov x,$66 +1523: f4 ae mov a,$ae+x +1525: 60 clrc +1526: 96 1c 14 adc a,$141c+y +1529: d4 ae mov $ae+x,a +152b: f4 af mov a,$af+x +152d: 96 3c 14 adc a,$143c+y +1530: d4 af mov $af+x,a +1532: e8 00 mov a,#$00 +1534: d4 be mov $be+x,a +1536: d4 bf mov $bf+x,a +1538: 3f f2 15 call $15f2 +153b: 68 00 cmp a,#$00 +153d: d0 07 bne $1546 +153f: f8 65 mov x,$65 +1541: f4 68 mov a,$68+x +1543: 5f 74 14 jmp $1474 + +1546: f8 65 mov x,$65 +1548: d4 a3 mov $a3+x,a +154a: fd mov y,a +154b: e4 ce mov a,$ce +154d: d0 0a bne $1559 +154f: f5 47 05 mov a,$0547+x +1552: d4 9b mov $9b+x,a +1554: cf mul ya +1555: da 3d movw $3d,ya +1557: 2f 08 bra $1561 +1559: f5 47 05 mov a,$0547+x +155c: d4 9b mov $9b+x,a +155e: 8f 00 ce mov $ce,#$00 +1561: 3f 16 18 call $1816 +1564: f5 6f 05 mov a,$056f+x +1567: 5d mov x,a +1568: f5 0d 02 mov a,$020d+x +156b: f0 0a beq $1577 +156d: e8 40 mov a,#$40 +156f: 75 2e 02 cmp a,$022e+x +1572: b0 05 bcs $1579 +1574: 5f ec 15 jmp $15ec + +1577: e8 40 mov a,#$40 +1579: d5 2e 02 mov $022e+x,a +157c: e8 01 mov a,#$01 +157e: d5 0d 02 mov $020d+x,a +1581: d8 ab mov $ab,x +1583: 7d mov a,x +1584: f8 65 mov x,$65 +1586: f5 67 05 mov a,$0567+x +1589: d0 0c bne $1597 +158b: f8 66 mov x,$66 +158d: f4 ae mov a,$ae+x +158f: c4 3f mov $3f,a +1591: f4 af mov a,$af+x +1593: c4 40 mov $40,a +1595: 2f 1e bra $15b5 +1597: f8 66 mov x,$66 +1599: f4 ae mov a,$ae+x +159b: 60 clrc +159c: 94 be adc a,$be+x +159e: c4 3f mov $3f,a +15a0: f4 af mov a,$af+x +15a2: 94 bf adc a,$bf+x +15a4: c4 40 mov $40,a +15a6: f5 77 05 mov a,$0577+x +15a9: 60 clrc +15aa: 84 3f adc a,$3f +15ac: c4 3f mov $3f,a +15ae: f5 78 05 mov a,$0578+x +15b1: 84 40 adc a,$40 +15b3: c4 40 mov $40,a +15b5: eb 67 mov y,$67 +15b7: d0 0e bne $15c7 +15b9: 0b ab asl $ab +15bb: f8 ab mov x,$ab +15bd: d5 4f 02 mov $024f+x,a +15c0: e4 3f mov a,$3f +15c2: d5 4e 02 mov $024e+x,a +15c5: 2f 25 bra $15ec +15c7: f8 65 mov x,$65 +15c9: f5 4f 05 mov a,$054f+x +15cc: 60 clrc +15cd: 95 57 05 adc a,$0557+x +15d0: 10 02 bpl $15d4 +15d2: e8 7f mov a,#$7f +15d4: c4 ac mov $ac,a +15d6: f8 65 mov x,$65 +15d8: f5 5f 05 mov a,$055f+x +15db: f8 ab mov x,$ab +15dd: 8d 00 mov y,#$00 +15df: cc 04 02 mov $0204,y +15e2: 8d ff mov y,#$ff +15e4: cc 05 02 mov $0205,y +15e7: eb ac mov y,$ac +15e9: 3f 40 0d call $0d40 +15ec: 8f 00 cf mov $cf,#$00 +15ef: 5f 7f 14 jmp $147f + +15f2: f8 66 mov x,$66 +15f4: e7 72 mov a,($72+x) +15f6: bb 72 inc $72+x ; update melody (sequence) position pointer +15f8: d0 02 bne $15fc +15fa: bb 73 inc $73+x +15fc: 6f ret + +; vcmd f0 - end of sequence +15fd: f8 65 mov x,$65 +15ff: e8 00 mov a,#$00 +1601: d4 68 mov $68+x,a +1603: 8b 64 dec $64 +1605: 5f 7f 14 jmp $147f + +; vcmd f1 - delta expression +1608: f8 65 mov x,$65 +160a: f5 57 05 mov a,$0557+x +160d: 3f 2b 16 call $162b +1610: d5 57 05 mov $0557+x,a +1613: 5f a0 14 jmp $14a0 + +1616: 6d push y +1617: 4d push x +1618: ee pop y +1619: cf mul ya +161a: da 2f movw $2f,ya +161c: 7d mov a,x +161d: ee pop y +161e: cf mul ya +161f: 6d push y +1620: 0b 2f asl $2f +1622: 84 30 adc a,$30 +1624: 5d mov x,a +1625: ae pop a +1626: 88 00 adc a,#$00 +1628: fd mov y,a +1629: 7d mov a,x +162a: 6f ret + +162b: 4d push x ; scale volume - get 2 bytes +162c: fd mov y,a +162d: 6d push y +162e: 3f f2 15 call $15f2 +1631: cf mul ya +1632: da 2f movw $2f,ya +1634: ee pop y +1635: 3f f2 15 call $15f2 +1638: cf mul ya +1639: 6d push y +163a: 0b 2f asl $2f +163c: 84 30 adc a,$30 +163e: 5d mov x,a +163f: ae pop a +1640: 88 00 adc a,#$00 +1642: fd mov y,a +1643: d0 03 bne $1648 +1645: 7d mov a,x +1646: 10 02 bpl $164a +1648: e8 7f mov a,#$7f +164a: ce pop x +164b: 6f ret + +; vcmd f2 - absolute expression +164c: 3f f2 15 call $15f2 +164f: f8 65 mov x,$65 +1651: d5 57 05 mov $0557+x,a +1654: 5f a0 14 jmp $14a0 + +; vcmd f3 - mute +1657: f8 65 mov x,$65 +1659: f5 6f 05 mov a,$056f+x +165c: 30 15 bmi $1673 +165e: fd mov y,a +165f: f6 0d 02 mov a,$020d+y +1662: 68 80 cmp a,#$80 +1664: f0 0d beq $1673 +1666: e8 00 mov a,#$00 +1668: d6 6e 02 mov $026e+y,a +166b: f6 d5 07 mov a,$07d5+y +166e: c4 f2 mov $f2,a +1670: 8f 9f f3 mov $f3,#$9f + +; vcmd f4 - rest +1673: 3f f2 15 call $15f2 +1676: f8 65 mov x,$65 +1678: d4 a3 mov $a3+x,a +167a: f5 47 05 mov a,$0547+x +167d: d4 9b mov $9b+x,a +167f: 3f 16 18 call $1816 +1682: 5f 7f 14 jmp $147f + +; vcmd f5 - set sound/instrument +1685: 3f f2 15 call $15f2 ; get 1 more byte = read sound number +1688: f8 65 mov x,$65 +168a: d5 5f 05 mov $055f+x,a ; move it onto the stack +168d: f4 82 mov a,$82+x +168f: 68 19 cmp a,#$19 ; $19 = phrase stack max value? +1691: f0 32 beq $16c5 +1693: 60 clrc +1694: 94 8a adc a,$8a+x +1696: f8 66 mov x,$66 +1698: c4 02 mov $02,a +169a: fd mov y,a +169b: f6 3b 06 mov a,$063b+y +169e: c4 00 mov $00,a +16a0: f6 3c 06 mov a,$063c+y +16a3: c4 01 mov $01,a +16a5: f6 39 06 mov a,$0639+y +16a8: 8d 09 mov y,#$09 +16aa: 77 00 cmp a,($00)+y +16ac: 90 02 bcc $16b0 +16ae: e8 00 mov a,#$00 +16b0: bc inc a +16b1: eb 02 mov y,$02 +16b3: d6 39 06 mov $0639+y,a +16b6: 60 clrc +16b7: 88 09 adc a,#$09 +16b9: fd mov y,a +16ba: f7 00 mov a,($00)+y +16bc: 68 ff cmp a,#$ff +16be: f0 05 beq $16c5 +16c0: f8 65 mov x,$65 +16c2: d5 5f 05 mov $055f+x,a +16c5: 5f a0 14 jmp $14a0 + +; vcmd f6 - play phrase +16c8: f8 65 mov x,$65 +16ca: f4 82 mov a,$82+x ; push entry onto stack +16cc: 80 setc +16cd: a8 05 sbc a,#$05 +16cf: d4 82 mov $82+x,a +16d1: 60 clrc ; set to current player +16d2: 94 8a adc a,$8a+x +16d4: fd mov y,a +16d5: cb 02 mov $02,y +16d7: f8 66 mov x,$66 +16d9: f4 72 mov a,$72+x +16db: d6 3b 06 mov $063b+y,a ; LSB of pointer +16de: f4 73 mov a,$73+x +16e0: d6 3c 06 mov $063c+y,a ; MSB of pointer +16e3: e8 00 mov a,#$00 +16e5: d6 38 06 mov $0638+y,a ; number of loops +16e8: 3f f2 15 call $15f2 ; start point low byte +16eb: 2d push a +16ec: 3f f4 15 call $15f4 ; start point high byte +16ef: 2d push a +16f0: 3f f4 15 call $15f4 ; end point low byte +16f3: 3f f4 15 call $15f4 ; end point high byte +16f6: 3f f4 15 call $15f4 ; number of loops +16f9: 3f f4 15 call $15f4 ; frequency offset LSB low byte +16fc: fd mov y,a +16fd: 3f f4 15 call $15f4 ; frequency offset LSB high byte +1700: 2d push a +1701: dd mov a,y +1702: 60 clrc +1703: 95 77 05 adc a,$0577+x ; adjust frequency +1706: d5 77 05 mov $0577+x,a +1709: ae pop a +170a: 95 78 05 adc a,$0578+x +170d: d5 78 05 mov $0578+x,a +1710: f8 65 mov x,$65 +1712: f5 57 05 mov a,$0557+x +1715: eb 02 mov y,$02 +1717: d6 3a 06 mov $063a+y,a +171a: 3f 2b 16 call $162b ; scale the volume (read next 2 bytes) +171d: d5 57 05 mov $0557+x,a +1720: eb 02 mov y,$02 ; initialize instrument pointer +1722: e8 00 mov a,#$00 +1724: d6 39 06 mov $0639+y,a +1727: f8 66 mov x,$66 +1729: ae pop a +172a: d4 73 mov $73+x,a +172c: ae pop a +172d: d4 72 mov $72+x,a +172f: 5f a0 14 jmp $14a0 + +1732: eb 02 mov y,$02 +1734: f6 38 06 mov a,$0638+y +1737: bc inc a +1738: d6 38 06 mov $0638+y,a +173b: 8d 04 mov y,#$04 +173d: f7 00 mov a,($00)+y +173f: f0 07 beq $1748 +1741: eb 02 mov y,$02 +1743: 76 38 06 cmp a,$0638+y +1746: f0 0f beq $1757 +1748: 8d 00 mov y,#$00 +174a: f7 00 mov a,($00)+y +174c: d4 72 mov $72+x,a +174e: 8d 01 mov y,#$01 +1750: f7 00 mov a,($00)+y +1752: d4 73 mov $73+x,a +1754: 5f cd 14 jmp $14cd + +1757: f5 77 05 mov a,$0577+x +175a: 80 setc +175b: 8d 05 mov y,#$05 +175d: b7 00 sbc a,($00)+y +175f: d5 77 05 mov $0577+x,a +1762: f5 78 05 mov a,$0578+x +1765: 8d 06 mov y,#$06 +1767: b7 00 sbc a,($00)+y +1769: d5 78 05 mov $0578+x,a +176c: eb 02 mov y,$02 +176e: f6 3a 06 mov a,$063a+y +1771: f8 65 mov x,$65 +1773: d5 57 05 mov $0557+x,a +1776: f8 66 mov x,$66 +1778: e4 00 mov a,$00 +177a: 60 clrc +177b: 88 0a adc a,#$0a +177d: d4 72 mov $72+x,a +177f: e4 01 mov a,$01 +1781: 88 00 adc a,#$00 +1783: d4 73 mov $73+x,a +1785: 8d 09 mov y,#$09 +1787: f7 00 mov a,($00)+y +1789: 60 clrc +178a: 94 72 adc a,$72+x +178c: d4 72 mov $72+x,a +178e: f4 73 mov a,$73+x +1790: 88 00 adc a,#$00 +1792: d4 73 mov $73+x,a +1794: f8 65 mov x,$65 +1796: f4 82 mov a,$82+x +1798: 60 clrc +1799: 88 05 adc a,#$05 +179b: d4 82 mov $82+x,a +179d: 5f a0 14 jmp $14a0 + +; vcmd f7-f8 - set detune +17a0: 28 02 and a,#$02 +17a2: c4 67 mov $67,a +17a4: 3f f2 15 call $15f2 +17a7: d4 ae mov $ae+x,a +17a9: 3f f2 15 call $15f2 +17ac: d4 af mov $af+x,a +17ae: e8 00 mov a,#$00 +17b0: d4 be mov $be+x,a +17b2: d4 bf mov $bf+x,a +17b4: 5f 38 15 jmp $1538 + +; vcmd f9 - go to loop +17b7: eb 65 mov y,$65 +17b9: fc inc y +17ba: f7 70 mov a,($70)+y +17bc: 8d 10 mov y,#$10 +17be: 3f b2 0e call $0eb2 +17c1: f8 66 mov x,$66 +17c3: d4 72 mov $72+x,a +17c5: db 73 mov $73+x,y +17c7: e8 1c mov a,#$1c +17c9: d4 ae mov $ae+x,a +17cb: e8 02 mov a,#$02 +17cd: d4 af mov $af+x,a +17cf: f8 65 mov x,$65 +17d1: e8 00 mov a,#$00 +17d3: d5 4f 05 mov $054f+x,a +17d6: d5 57 05 mov $0557+x,a +17d9: 5f a0 14 jmp $14a0 + +; vcmd fa - set tempo +17dc: 3f f2 15 call $15f2 +17df: c5 00 02 mov $0200,a +17e2: 3f f2 15 call $15f2 +17e5: c5 02 02 mov $0202,a +17e8: 3f f2 15 call $15f2 +17eb: c5 03 02 mov $0203,a +17ee: 5f a0 14 jmp $14a0 + +; vcmd fb - panning +17f1: e8 00 mov a,#$00 +17f3: fd mov y,a +17f4: da 3d movw $3d,ya +17f6: 8f 01 ce mov $ce,#$01 +17f9: 3f f2 15 call $15f2 +17fc: 2d push a +17fd: fd mov y,a +17fe: f8 65 mov x,$65 +1800: f5 47 05 mov a,$0547+x +1803: cf mul ya +1804: 7a 3d addw ya,$3d +1806: da 3d movw $3d,ya +1808: ae pop a +1809: 68 ff cmp a,#$ff +180b: f0 ec beq $17f9 +180d: 5f a0 14 jmp $14a0 + +; vcmd fc - set no note retrigger? +1810: 8f 01 cf mov $cf,#$01 +1813: 5f a0 14 jmp $14a0 + +1816: e8 02 mov a,#$02 +1818: d4 68 mov $68+x,a +181a: 6f ret + +181b: 78 80 ad cmp $ad,#$80 +181e: 90 08 bcc $1828 +1820: 60 clrc +1821: 84 ad adc a,$ad +1823: 10 09 bpl $182e +1825: e8 00 mov a,#$00 +1827: 6f ret + +1828: 84 ad adc a,$ad +182a: 10 02 bpl $182e +182c: e8 7f mov a,#$7f +182e: 6f ret + +; vcmd table (f0-fc) +182f: dw $15fd ; f0 - end of melody +1831: dw $1608 ; f1 - delta expression +1833: dw $164c ; f2 - absolute expression +1835: dw $1657 ; f3 - mute +1837: dw $1673 ; f4 - rest +1839: dw $1685 ; f5 - set sound/instrument +183b: dw $16c8 ; f6 - play phrase +183d: dw $17a0 ; f7 - set detune +183f: dw $17a0 ; f8 - set detune +1841: dw $17b7 ; f9 - go to loop +1843: dw $17dc ; fa - set tempo +1845: dw $17f1 ; fb - panning +1847: dw $1810 ; fc - set no note retrigger? + +1849: e4 03 mov a,$03 +184b: 1c asl a +184c: 44 03 eor a,$03 +184e: 1c asl a +184f: 1c asl a +1850: 1c asl a +1851: 2b 05 rol $05 +1853: 2b 04 rol $04 +1855: 2b 03 rol $03 +1857: e4 05 mov a,$05 +1859: 6f ret + +185a: 8f 00 ce mov $ce,#$00 +185d: 8f 00 cf mov $cf,#$00 +1860: 8d 1a mov y,#$1a +1862: 3f b2 0e call $0eb2 +1865: da 70 movw $70,ya +1867: 8d 00 mov y,#$00 +1869: f7 70 mov a,($70)+y +186b: c4 63 mov $63,a +186d: c4 64 mov $64,a +186f: f0 66 beq $18d7 +1871: 8f 00 65 mov $65,#$00 +1874: 8f 00 66 mov $66,#$00 +1877: fc inc y +1878: f7 70 mov a,($70)+y +187a: 6d push y +187b: 8d 10 mov y,#$10 +187d: 3f b2 0e call $0eb2 +1880: f8 66 mov x,$66 +1882: d4 72 mov $72+x,a +1884: dd mov a,y +1885: ee pop y +1886: d4 73 mov $73+x,a +1888: f8 65 mov x,$65 +188a: e8 19 mov a,#$19 +188c: d4 82 mov $82+x,a +188e: e8 04 mov a,#$04 +1890: d4 68 mov $68+x,a +1892: e8 ff mov a,#$ff +1894: d5 67 05 mov $0567+x,a +1897: e8 01 mov a,#$01 +1899: d5 47 05 mov $0547+x,a +189c: 7d mov a,x +189d: d5 6f 05 mov $056f+x,a +18a0: f8 66 mov x,$66 +18a2: e8 1c mov a,#$1c +18a4: d4 ae mov $ae+x,a +18a6: e8 02 mov a,#$02 +18a8: d4 af mov $af+x,a +18aa: e8 00 mov a,#$00 +18ac: d5 77 05 mov $0577+x,a +18af: d5 78 05 mov $0578+x,a +18b2: f8 65 mov x,$65 +18b4: d5 4f 05 mov $054f+x,a +18b7: d5 57 05 mov $0557+x,a +18ba: e8 00 mov a,#$00 +18bc: c5 00 02 mov $0200,a +18bf: c5 02 02 mov $0202,a +18c2: e8 01 mov a,#$01 +18c4: c5 03 02 mov $0203,a +18c7: e8 ff mov a,#$ff +18c9: c5 01 02 mov $0201,a +18cc: ab 66 inc $66 +18ce: ab 66 inc $66 +18d0: 3d inc x +18d1: d8 65 mov $65,x +18d3: 3e 63 cmp x,$63 +18d5: 90 a0 bcc $1877 +18d7: 6f ret + +18d8: dw $147f +18da: dw $1488 +18dc: dw $14a0 + +18de: ba 21 movw ya,$21 +18e0: da 0a movw $0a,ya +18e2: 6f ret + +18e3: eb 21 mov y,$21 +18e5: fa 1f f6 mov ($f6),($1f) +18e8: 00 nop +18e9: 00 nop +18ea: 00 nop +18eb: 00 nop +18ec: e4 f4 mov a,$f4 +18ee: d7 0a mov ($0a)+y,a +18f0: dc dec y +18f1: e4 f5 mov a,$f5 +18f3: d7 0a mov ($0a)+y,a +18f5: dc dec y +18f6: e4 f6 mov a,$f6 +18f8: d7 0a mov ($0a)+y,a +18fa: dc dec y +18fb: e4 f7 mov a,$f7 +18fd: d7 0a mov ($0a)+y,a +18ff: dc dec y +1900: 10 ea bpl $18ec +1902: ba 0a movw ya,$0a +1904: 7a 21 addw ya,$21 +1906: da 0a movw $0a,ya +1908: 3a 0a incw $0a +190a: 8f b1 f1 mov $f1,#$b1 +190d: fa 1f f6 mov ($f6),($1f) +1910: 6f ret + +1911: eb 21 mov y,$21 +1913: fa 1f f6 mov ($f6),($1f) +1916: e4 f6 mov a,$f6 +1918: 64 f6 cmp a,$f6 +191a: d0 fa bne $1916 +191c: 68 00 cmp a,#$00 +191e: f0 f6 beq $1916 +1920: 64 1f cmp a,$1f +1922: f0 f2 beq $1916 +1924: c4 1f mov $1f,a +1926: e4 f4 mov a,$f4 +1928: d7 0a mov ($0a)+y,a +192a: dc dec y +192b: 30 19 bmi $1946 +192d: e4 f5 mov a,$f5 +192f: d7 0a mov ($0a)+y,a +1931: dc dec y +1932: 30 12 bmi $1946 +1934: e4 f7 mov a,$f7 +1936: d7 0a mov ($0a)+y,a +1938: cb f7 mov $f7,y +193a: fa 0a f4 mov ($f4),($0a) +193d: fa 0b f5 mov ($f5),($0b) +1940: fa 1f f6 mov ($f6),($1f) +1943: dc dec y +1944: 10 d0 bpl $1916 +1946: 8f b1 f1 mov $f1,#$b1 +1949: fa 1f f6 mov ($f6),($1f) +194c: ba 0a movw ya,$0a +194e: 7a 21 addw ya,$21 +1950: da 0a movw $0a,ya +1952: 3a 0a incw $0a +1954: 6f ret + +1955: 6f ret + +1956: dw $0bc2 +1958: dw $0c01 +195a: dw $0c09 +195c: dw $0000 +195e: dw $0000 +1960: dw $0000 +1962: dw $078b +1964: dw $0c89 +1966: dw $0be7 +1968: dw $0be1 +196a: dw $0bde +196c: dw $0bd8 +196e: dw $0c3e +1970: dw $0c49 +1972: dw $18de +1974: dw $18e3 +1976: dw $1911 +1978: dw $0c93 +197a: dw $0c9d +197c: dw $1955 \ No newline at end of file diff --git a/snes/Sculptured Software/Super Star Wars ($0700).bin b/snes/Sculptured Software/Super Star Wars ($0700).bin new file mode 100644 index 00000000..346001b1 Binary files /dev/null and b/snes/Sculptured Software/Super Star Wars ($0700).bin differ diff --git a/snes/Sculptured Software/Super Star Wars - Return of the Jedi ($0700).bin b/snes/Sculptured Software/Super Star Wars - Return of the Jedi ($0700).bin new file mode 100644 index 00000000..59b0b0da Binary files /dev/null and b/snes/Sculptured Software/Super Star Wars - Return of the Jedi ($0700).bin differ diff --git a/snes/Sculptured Software/Super Star Wars - Return of the Jedi.s b/snes/Sculptured Software/Super Star Wars - Return of the Jedi.s new file mode 100644 index 00000000..1e1c52ff --- /dev/null +++ b/snes/Sculptured Software/Super Star Wars - Return of the Jedi.s @@ -0,0 +1,2634 @@ +0700: 20 clrp +0701: cd ff mov x,#$ff ; set stack pointer +0703: bd mov sp,x +0704: 8f a0 fa mov $fa,#$a0 ; stop all timers +0707: 8f a0 fb mov $fb,#$a0 +070a: 8f 20 fc mov $fc,#$20 +070d: 8f 87 f1 mov $f1,#$87 ; clear COM ports +0710: 3f 80 10 call $1080 ; initialize all sound +0713: 8f 00 25 mov $25,#$00 ; install permanent pointer to the wave source dir +0716: 8f 1f 26 mov $26,#$1f +0719: 8f 01 f6 mov $f6,#$01 +071c: 62 08 set3 $08 +071e: 3f 99 0b call $0b99 +0721: 3f 60 0b call $0b60 +0724: 33 07 f7 bbc1 $07,$071e +0727: 8d 10 mov y,#$10 +0729: 3f 4a 07 call $074a +072c: 83 07 12 bbs4 $07,$0741 +072f: e4 fe mov a,$fe +0731: f0 0e beq $0741 +0733: e4 cb mov a,$cb +0735: f0 07 beq $073e +0737: 60 clrc +0738: 84 cc adc a,$cc +073a: c4 cc mov $cc,a +073c: 90 03 bcc $0741 +073e: 3f 0e 17 call $170e +0741: e4 fd mov a,$fd +0743: f0 d9 beq $071e +0745: 3f 2d 08 call $082d +0748: 2f d4 bra $071e +074a: e4 ff mov a,$ff +074c: d0 03 bne $0751 +074e: e8 01 mov a,#$01 +0750: 6f ret + +0751: cb 3c mov $3c,y +0753: 8f 00 3b mov $3b,#$00 +0756: cd 14 mov x,#$14 +0758: e4 f6 mov a,$f6 +075a: f0 03 beq $075f +075c: 3f 99 0b call $0b99 +075f: eb 3c mov y,$3c +0761: f5 fc 07 mov a,$07fc+x +0764: c4 f2 mov $f2,a +0766: f5 28 02 mov a,$0228+x +0769: fa f3 3d mov ($3d),($f3) +076c: 64 3d cmp a,$3d +076e: f0 0f beq $077f +0770: b0 09 bcs $077b +0772: 8b 3d dec $3d +0774: dc dec y +0775: d0 f5 bne $076c +0777: ab 3b inc $3b +0779: 2f 04 bra $077f +077b: ab 3d inc $3d +077d: 2f f5 bra $0774 +077f: fa 3d f3 mov ($f3),($3d) +0782: 1d dec x +0783: 10 d3 bpl $0758 +0785: e4 3b mov a,$3b +0787: 6f ret + +0788: e2 08 set7 $08 +078a: 2f 02 bra $078e +078c: f2 08 clr7 $08 +078e: 72 08 clr3 $08 +0790: 8d 80 mov y,#$80 +0792: 3f 24 0d call $0d24 +0795: 3f ce 10 call $10ce +0798: 8f 6c f2 mov $f2,#$6c +079b: 8f 3f f3 mov $f3,#$3f +079e: e3 08 0c bbs7 $08,$07ad +07a1: cd 00 mov x,#$00 +07a3: f5 80 fe mov a,$fe80+x +07a6: af mov (x)+,a +07a7: c8 61 cmp x,#$61 +07a9: 90 f8 bcc $07a3 +07ab: 4f c0 pcall $c0 +07ad: 5f 00 07 jmp $0700 + +; gain tables +07b0: db $ff,$d6,$a0,$80,$6b,$50,$40,$36,$28,$20,$1b,$14,$10,$0e,$0b,$08,$06,$05,$04,$03,$02,$01 +07c6: db $1d,$1c,$1b,$1a,$19,$18,$17,$16,$15,$14,$13,$12,$11,$10,$0f,$0e,$0d,$0c,$0a,$09,$06,$00 + +; DSP registers: VxENVX +07dc: db $08,$18,$28,$38,$48,$58,$68,$78 +; DSP registers: VxGAIN +07e4: db $07,$17,$27,$37,$47,$57,$67,$77 +; DSP registers: VxSCRN (select sample) +07ec: db $04,$14,$24,$34,$44,$54,$64,$74 +; DSP registers: VxPITCHL +07f4: db $02,$12,$22,$32,$42,$52,$62,$72 +; DSP registers: VxVOLL +07fc: db $00,$10,$20,$30,$40,$50,$60,$70,$01,$11,$21,$31,$41,$51,$61,$71,$2c,$3c,$0d,$0c,$1c + +; voice numbers and bits for clearing those void bits +0811: db $01,$02,$04,$08,$10,$20,$40,$80,$fe,$fd,$fb,$f7,$ef,$df,$bf,$7f + +; echo poke registers +0821: db $7d,$2c,$3c,$0d,$0f,$1f,$2f,$3f,$4f,$5f,$6f,$7f + +082d: 3f 99 0b call $0b99 ; que command +0830: 8f 00 45 mov $45,#$00 ; reset sample flags +0833: 8f 00 57 mov $57,#$00 +0836: 8f 7c f2 mov $f2,#$7c +0839: e4 f3 mov a,$f3 +083b: 24 5a and a,$5a +083d: c4 54 mov $54,a +083f: 8f 00 f3 mov $f3,#$00 +0842: cd 07 mov x,#$07 ; find out all channels changing waves +0844: 3f 99 0b call $0b99 ; (to restart them, starting with 7) +0847: d8 29 mov $29,x +0849: 7d mov a,x +084a: 60 clrc +084b: 88 10 adc a,#$10 +084d: c4 2e mov $2e,a +084f: f5 11 08 mov a,$0811+x +0852: c4 46 mov $46,a +0854: 48 ff eor a,#$ff +0856: c4 47 mov $47,a +0858: f4 64 mov a,$64+x +085a: c4 49 mov $49,a +085c: a2 08 set5 $08 +085e: 23 49 06 bbs1 $49,$0867 +0861: f5 ec fc mov a,$fcec+x +0864: 5f 75 08 jmp $0875 + +0867: eb 2e mov y,$2e +0869: f6 e3 04 mov a,$04e3+y +086c: d0 02 bne $0870 +086e: b2 08 clr5 $08 +0870: 3f 5a 12 call $125a +0873: f8 29 mov x,$29 +0875: 75 f4 fc cmp a,$fcf4+x +0878: d0 0d bne $0887 +087a: 3f 18 14 call $1418 +087d: e4 5f mov a,$5f +087f: 24 58 and a,$58 +0881: 24 46 and a,$46 +0883: d0 43 bne $08c8 +0885: 2f 44 bra $08cb +0887: d5 f4 fc mov $fcf4+x,a +088a: 09 46 45 or ($45),($46) +088d: 3f 18 14 call $1418 +0890: 7d mov a,x +0891: 1c asl a +0892: 5d mov x,a +0893: e5 04 01 mov a,$0104 +0896: d5 4b 01 mov $014b+x,a +0899: e5 05 01 mov a,$0105 +089c: d5 4c 01 mov $014c+x,a +089f: f8 29 mov x,$29 +08a1: e4 60 mov a,$60 +08a3: 28 20 and a,#$20 +08a5: f0 05 beq $08ac +08a7: 29 47 55 and ($55),($47) +08aa: 2f 03 bra $08af +08ac: 09 46 55 or ($55),($46) +08af: b3 08 0b bbc5 $08,$08bd +08b2: e4 60 mov a,$60 +08b4: 28 40 and a,#$40 +08b6: f0 05 beq $08bd +08b8: 09 46 5f or ($5f),($46) +08bb: 2f 03 bra $08c0 +08bd: 29 47 5f and ($5f),($47) +08c0: e4 5f mov a,$5f +08c2: 04 58 or a,$58 +08c4: 24 46 and a,$46 +08c6: f0 03 beq $08cb +08c8: 09 46 57 or ($57),($46) +08cb: 1d dec x +08cc: 30 03 bmi $08d1 +08ce: 5f 44 08 jmp $0844 + +08d1: e4 58 mov a,$58 +08d3: 24 55 and a,$55 +08d5: 04 56 or a,$56 +08d7: c4 56 mov $56,a +08d9: 24 56 and a,$56 +08db: 04 57 or a,$57 +08dd: c4 59 mov $59,a +08df: 8f 5c f2 mov $f2,#$5c +08e2: c4 f3 mov $f3,a +08e4: cd 07 mov x,#$07 +08e6: 3f 99 0b call $0b99 +08e9: d8 29 mov $29,x +08eb: f5 11 08 mov a,$0811+x +08ee: c4 46 mov $46,a +08f0: 7d mov a,x +08f1: 60 clrc +08f2: 88 18 adc a,#$18 +08f4: c4 2e mov $2e,a +08f6: e5 a2 03 mov a,$03a2 +08f9: d0 12 bne $090d +08fb: f4 64 mov a,$64+x +08fd: c4 49 mov $49,a +08ff: 63 49 06 bbs3 $49,$0908 +0902: f5 e4 fc mov a,$fce4+x +0905: 5f 0d 09 jmp $090d + +0908: 3f 5a 12 call $125a +090b: f8 29 mov x,$29 +090d: 60 clrc +090e: 95 9a 03 adc a,$039a+x +0911: 30 06 bmi $0919 +0913: 70 04 bvs $0919 +0915: 68 65 cmp a,#$65 +0917: 30 0b bmi $0924 +0919: f5 9a 03 mov a,$039a+x +091c: 30 04 bmi $0922 +091e: e8 64 mov a,#$64 +0920: 2f 02 bra $0924 +0922: e8 00 mov a,#$00 +0924: fd mov y,a +0925: f5 43 01 mov a,$0143+x +0928: c4 3d mov $3d,a +092a: cf mul ya +092b: cd 64 mov x,#$64 +092d: 9e div ya,x +092e: f8 29 mov x,$29 +0930: 73 49 14 bbc3 $49,$0947 +0933: c4 3b mov $3b,a +0935: 6d push y +0936: eb 2e mov y,$2e +0938: f6 c3 03 mov a,$03c3+y +093b: ee pop y +093c: d0 04 bne $0942 +093e: e4 3b mov a,$3b +0940: 2f 05 bra $0947 +0942: e4 3d mov a,$3d +0944: 80 setc +0945: a4 3b sbc a,$3b +0947: c4 3b mov $3b,a +0949: d5 28 02 mov $0228+x,a +094c: e4 3d mov a,$3d +094e: 80 setc +094f: a4 3b sbc a,$3b +0951: d5 30 02 mov $0230+x,a +0954: 1d dec x +0955: 30 03 bmi $095a +0957: 5f e6 08 jmp $08e6 + +095a: cd 07 mov x,#$07 ; process pitch envelopes (start with ch 7) +095c: 3f 99 0b call $0b99 +095f: d8 29 mov $29,x +0961: 7d mov a,x +0962: 60 clrc +0963: 88 08 adc a,#$08 +0965: c4 2e mov $2e,a +0967: f4 64 mov a,$64+x +0969: c4 49 mov $49,a +096b: 7d mov a,x +096c: 1c asl a +096d: 5d mov x,a +096e: f5 d5 fc mov a,$fcd5+x +0971: c4 44 mov $44,a +0973: f5 d4 fc mov a,$fcd4+x +0976: c4 43 mov $43,a +0978: 53 49 15 bbc2 $49,$0990 +097b: 4d push x +097c: 42 08 set2 $08 +097e: 3f 5a 12 call $125a +0981: 52 08 clr2 $08 +0983: ce pop x +0984: 7a 43 addw ya,$43 +0986: 80 setc +0987: a8 b0 sbc a,#$b0 +0989: c4 43 mov $43,a +098b: dd mov a,y +098c: a8 04 sbc a,#$04 +098e: c4 44 mov $44,a +0990: f5 4c 01 mov a,$014c+x +0993: fd mov y,a +0994: f5 4b 01 mov a,$014b+x +0997: 7a 43 addw ya,$43 +0999: da 3b movw $3b,ya +099b: fb d9 mov y,$d9+x +099d: f4 d8 mov a,$d8+x +099f: 7a 3b addw ya,$3b +09a1: c3 49 03 bbs6 $49,$09a7 +09a4: 3f 9a 14 call $149a ; translate note to frequency +09a7: da 3b movw $3b,ya ; add in hardware tuning +09a9: e4 29 mov a,$29 ; word addressing +09ab: 1c asl a +09ac: 5d mov x,a +09ad: f5 5c 01 mov a,$015c+x +09b0: fd mov y,a +09b1: f5 5b 01 mov a,$015b+x +09b4: 7a 3b addw ya,$3b +09b6: f8 29 mov x,$29 +09b8: d5 33 01 mov $0133+x,a +09bb: dd mov a,y +09bc: d5 3b 01 mov $013b+x,a +09bf: 1d dec x +09c0: 10 9a bpl $095c +09c2: 8f 5c f2 mov $f2,#$5c +09c5: 8f 00 f3 mov $f3,#$00 +09c8: cd 07 mov x,#$07 +09ca: 3f 99 0b call $0b99 +09cd: d8 29 mov $29,x +09cf: 7d mov a,x +09d0: 60 clrc +09d1: 88 00 adc a,#$00 +09d3: c4 2e mov $2e,a +09d5: f5 11 08 mov a,$0811+x +09d8: c4 46 mov $46,a +09da: 48 ff eor a,#$ff +09dc: c4 47 mov $47,a +09de: f4 64 mov a,$64+x +09e0: c4 49 mov $49,a +09e2: 03 49 07 bbs0 $49,$09ec +09e5: f5 23 01 mov a,$0123+x +09e8: fd mov y,a +09e9: 5f f9 09 jmp $09f9 + +09ec: 3f 5a 12 call $125a +09ef: fd mov y,a +09f0: f8 29 mov x,$29 +09f2: b3 07 04 bbc5 $07,$09f9 +09f5: e8 00 mov a,#$00 +09f7: d4 6c mov $6c+x,a +09f9: e8 80 mov a,#$80 +09fb: de 6c 04 cbne $6c+x,$0a02 +09fe: e4 5c mov a,$5c +0a00: 2f 02 bra $0a04 +0a02: e4 5b mov a,$5b +0a04: cf mul ya +0a05: f5 92 03 mov a,$0392+x +0a08: cf mul ya +0a09: dd mov a,y +0a0a: d5 2b 01 mov $012b+x,a +0a0d: 8f c0 3a mov $3a,#$c0 +0a10: f5 dc 07 mov a,$07dc+x +0a13: c4 f2 mov $f2,a +0a15: dd mov a,y +0a16: 80 setc +0a17: a4 f3 sbc a,$f3 +0a19: b0 06 bcs $0a21 +0a1b: 8f 80 3a mov $3a,#$80 +0a1e: 48 ff eor a,#$ff +0a20: bc inc a +0a21: c4 3f mov $3f,a +0a23: e4 46 mov a,$46 +0a25: 24 53 and a,$53 +0a27: d0 06 bne $0a2f +0a29: e4 52 mov a,$52 +0a2b: 24 46 and a,$46 +0a2d: d0 23 bne $0a52 +0a2f: e4 3f mov a,$3f +0a31: 5c lsr a +0a32: d0 08 bne $0a3c +0a34: ad 00 cmp y,#$00 +0a36: d0 04 bne $0a3c +0a38: e8 82 mov a,#$82 +0a3a: 2f 0e bra $0a4a +0a3c: 8d 15 mov y,#$15 +0a3e: 76 b0 07 cmp a,$07b0+y +0a41: 90 02 bcc $0a45 +0a43: fe f9 dbnz y,$0a3e +0a45: f6 c6 07 mov a,$07c6+y +0a48: 04 3a or a,$3a +0a4a: 75 cc fc cmp a,$fccc+x +0a4d: f0 41 beq $0a90 +0a4f: fd mov y,a +0a50: 2f 17 bra $0a69 +0a52: 8f 00 3a mov $3a,#$00 +0a55: e4 3f mov a,$3f +0a57: 68 60 cmp a,#$60 +0a59: 90 0e bcc $0a69 +0a5b: ad 60 cmp y,#$60 +0a5d: 90 04 bcc $0a63 +0a5f: 8d df mov y,#$df +0a61: 2f 06 bra $0a69 +0a63: ad 20 cmp y,#$20 +0a65: b0 02 bcs $0a69 +0a67: 8d 9e mov y,#$9e +0a69: 29 47 52 and ($52),($47) +0a6c: f5 fc 07 mov a,$07fc+x +0a6f: c4 f2 mov $f2,a +0a71: f5 28 02 mov a,$0228+x +0a74: 2d push a +0a75: e4 46 mov a,$46 +0a77: 24 53 and a,$53 +0a79: ae pop a +0a7a: d0 09 bne $0a85 +0a7c: c4 f3 mov $f3,a +0a7e: ab f2 inc $f2 +0a80: f5 30 02 mov a,$0230+x +0a83: c4 f3 mov $f3,a +0a85: f5 e4 07 mov a,$07e4+x +0a88: c4 f2 mov $f2,a +0a8a: cb f3 mov $f3,y +0a8c: dd mov a,y +0a8d: d5 cc fc mov $fccc+x,a +0a90: f5 f4 07 mov a,$07f4+x +0a93: c4 f2 mov $f2,a +0a95: fd mov y,a +0a96: f5 33 01 mov a,$0133+x +0a99: c4 f3 mov $f3,a +0a9b: fc inc y +0a9c: cb f2 mov $f2,y +0a9e: f5 3b 01 mov a,$013b+x +0aa1: c4 f3 mov $f3,a +0aa3: 1d dec x +0aa4: 30 03 bmi $0aa9 +0aa6: 5f ca 09 jmp $09ca + +0aa9: 8f 4c f2 mov $f2,#$4c +0aac: fa 59 f3 mov ($f3),($59) +0aaf: e4 59 mov a,$59 +0ab1: 48 ff eor a,#$ff +0ab3: c4 5a mov $5a,a +0ab5: 29 5a 54 and ($54),($5a) +0ab8: 29 5a 56 and ($56),($5a) +0abb: 8f 00 58 mov $58,#$00 +0abe: 3f 99 0b call $0b99 +0ac1: 8d 07 mov y,#$07 +0ac3: cd 0e mov x,#$0e +0ac5: 3f 99 0b call $0b99 +0ac8: f6 6c 00 mov a,$006c+y +0acb: f0 31 beq $0afe +0acd: f6 64 00 mov a,$0064+y +0ad0: c4 49 mov $49,a +0ad2: f3 49 07 bbc7 $49,$0adc +0ad5: f6 11 08 mov a,$0811+y +0ad8: 24 54 and a,$54 +0ada: d0 1d bne $0af9 +0adc: f6 6c 00 mov a,$006c+y +0adf: 68 80 cmp a,#$80 +0ae1: d0 1b bne $0afe +0ae3: f6 46 02 mov a,$0246+y +0ae6: 28 02 and a,#$02 +0ae8: d0 14 bne $0afe +0aea: 9b 75 dec $75+x +0aec: f4 75 mov a,$75+x +0aee: 2e 05 02 cbne $05,$0af3 +0af1: 9b 76 dec $76+x +0af3: f4 75 mov a,$75+x +0af5: 14 76 or a,$76+x +0af7: d0 05 bne $0afe +0af9: e8 80 mov a,#$80 +0afb: 3f 39 17 call $1739 +0afe: 1d dec x +0aff: 1d dec x +0b00: dc dec y +0b01: 10 c2 bpl $0ac5 +0b03: 3f 99 0b call $0b99 +0b06: ec 43 02 mov y,$0243 +0b09: f0 54 beq $0b5f +0b0b: 6e cd 51 dbnz $cd,$0b5f +0b0e: cb cd mov $cd,y +0b10: e5 3b 02 mov a,$023b +0b13: f8 ce mov x,$ce +0b15: 30 0d bmi $0b24 +0b17: 60 clrc +0b18: 84 cf adc a,$cf +0b1a: b0 04 bcs $0b20 +0b1c: 68 7f cmp a,#$7f +0b1e: 90 12 bcc $0b32 +0b20: e8 7f mov a,#$7f +0b22: 2f 09 bra $0b2d +0b24: 80 setc +0b25: a4 cf sbc a,$cf +0b27: f0 04 beq $0b2d +0b29: b0 07 bcs $0b32 +0b2b: e8 00 mov a,#$00 +0b2d: 8d 00 mov y,#$00 +0b2f: cc 43 02 mov $0243,y +0b32: 5d mov x,a +0b33: 65 44 02 cmp a,$0244 +0b36: 90 03 bcc $0b3b +0b38: e5 44 02 mov a,$0244 +0b3b: c5 38 02 mov $0238,a +0b3e: 7d mov a,x +0b3f: c5 3b 02 mov $023b,a +0b42: c5 3c 02 mov $023c,a +0b45: 65 45 02 cmp a,$0245 +0b48: 90 03 bcc $0b4d +0b4a: e5 45 02 mov a,$0245 +0b4d: c5 39 02 mov $0239,a +0b50: e5 43 02 mov a,$0243 +0b53: d0 0a bne $0b5f +0b55: aa 07 40 mov1 c,$0007,2 +0b58: 90 05 bcc $0b5f +0b5a: 8d 80 mov y,#$80 +0b5c: 5f 24 0d jmp $0d24 + +0b5f: 6f ret + +0b60: 32 08 clr1 $08 +0b62: e4 e8 mov a,$e8 +0b64: f0 2f beq $0b95 +0b66: 9c dec a +0b67: c4 e8 mov $e8,a +0b69: f8 ea mov x,$ea +0b6b: f5 50 10 mov a,$1050+x +0b6e: 28 fe and a,#$fe +0b70: c4 31 mov $31,a +0b72: f5 60 10 mov a,$1060+x +0b75: c4 32 mov $32,a +0b77: f5 70 10 mov a,$1070+x +0b7a: c4 33 mov $33,a +0b7c: 3d inc x +0b7d: c8 10 cmp x,#$10 +0b7f: d0 02 bne $0b83 +0b81: cd 00 mov x,#$00 +0b83: d8 ea mov $ea,x +0b85: e4 31 mov a,$31 +0b87: 5d mov x,a +0b88: 28 fe and a,#$fe +0b8a: c8 49 cmp x,#$49 +0b8c: b0 07 bcs $0b95 +0b8e: e4 32 mov a,$32 +0b90: eb 33 mov y,$33 +0b92: 3f 96 0b call $0b96 +0b95: 6f ret + +0b96: 1f 43 1e jmp ($1e43+x) + +0b99: 73 08 24 bbc3 $08,$0bc0 +0b9c: 69 03 f6 cmp ($f6),($03) +0b9f: f0 1f beq $0bc0 +0ba1: 23 08 1c bbs1 $08,$0bc0 +0ba4: 2d push a +0ba5: e4 f6 mov a,$f6 +0ba7: f0 16 beq $0bbf +0ba9: 2e f6 13 cbne $f6,$0bbf +0bac: e4 f7 mov a,$f7 +0bae: 68 1e cmp a,#$1e +0bb0: d0 30 bne $0be2 +0bb2: fa f4 19 mov ($19),($f4) +0bb5: fa f5 1a mov ($1a),($f5) +0bb8: e4 f6 mov a,$f6 +0bba: 8f b7 f1 mov $f1,#$b7 +0bbd: c4 f6 mov $f6,a +0bbf: ae pop a +0bc0: 6f ret + +0bc1: 6d push y +0bc2: 4d push x +0bc3: ba f4 movw ya,$f4 +0bc5: da 1b movw $1b,ya +0bc7: f8 f6 mov x,$f6 +0bc9: 8f b7 f1 mov $f1,#$b7 +0bcc: 8d 00 mov y,#$00 +0bce: f7 1b mov a,($1b)+y +0bd0: c4 f4 mov $f4,a +0bd2: fc inc y +0bd3: f7 1b mov a,($1b)+y +0bd5: c4 f5 mov $f5,a +0bd7: fc inc y +0bd8: f7 1b mov a,($1b)+y +0bda: c4 f7 mov $f7,a +0bdc: d8 f6 mov $f6,x +0bde: ce pop x +0bdf: ee pop y +0be0: ae pop a +0be1: 6f ret + +0be2: 68 22 cmp a,#$22 +0be4: f0 59 beq $0c3f +0be6: 68 0c cmp a,#$0c +0be8: f0 d7 beq $0bc1 +0bea: 68 48 cmp a,#$48 +0bec: d0 03 bne $0bf1 +0bee: 5f 88 07 jmp $0788 + +0bf1: 68 0e cmp a,#$0e +0bf3: d0 03 bne $0bf8 +0bf5: 5f 8c 07 jmp $078c + +0bf8: 68 02 cmp a,#$02 +0bfa: d0 15 bne $0c11 +0bfc: 4d push x +0bfd: 6d push y +0bfe: e4 f6 mov a,$f6 +0c00: 8f b7 f1 mov $f1,#$b7 +0c03: 2d push a +0c04: 72 08 clr3 $08 +0c06: 3f b4 0c call $0cb4 +0c09: 62 08 set3 $08 +0c0b: ae pop a +0c0c: c4 f6 mov $f6,a +0c0e: ee pop y +0c0f: 2f 2b bra $0c3c +0c11: 4d push x +0c12: f8 e9 mov x,$e9 +0c14: d5 50 10 mov $1050+x,a +0c17: e4 f4 mov a,$f4 +0c19: d5 60 10 mov $1060+x,a +0c1c: e4 f5 mov a,$f5 +0c1e: d5 70 10 mov $1070+x,a +0c21: e4 f6 mov a,$f6 +0c23: 8f b7 f1 mov $f1,#$b7 +0c26: c4 f6 mov $f6,a +0c28: 3d inc x +0c29: c8 10 cmp x,#$10 +0c2b: d0 02 bne $0c2f +0c2d: cd 00 mov x,#$00 +0c2f: d8 e9 mov $e9,x +0c31: e4 e8 mov a,$e8 +0c33: bc inc a +0c34: c4 e8 mov $e8,a +0c36: 68 10 cmp a,#$10 +0c38: d0 02 bne $0c3c +0c3a: 22 08 set1 $08 +0c3c: ce pop x +0c3d: ae pop a +0c3e: 6f ret + +0c3f: 6d push y +0c40: 4d push x +0c41: f8 f4 mov x,$f4 +0c43: e4 f6 mov a,$f6 +0c45: 8f b7 f1 mov $f1,#$b7 +0c48: c4 f6 mov $f6,a +0c4a: 4d push x +0c4b: e4 19 mov a,$19 +0c4d: c5 76 0c mov $0c76,a +0c50: c5 7e 0c mov $0c7e,a +0c53: c5 85 0c mov $0c85,a +0c56: e4 1a mov a,$1a +0c58: c5 77 0c mov $0c77,a +0c5b: c5 7f 0c mov $0c7f,a +0c5e: c5 86 0c mov $0c86,a +0c61: e4 f6 mov a,$f6 +0c63: f0 fc beq $0c61 +0c65: 2e f6 f9 cbne $f6,$0c61 +0c68: ba f4 movw ya,$f4 +0c6a: da 1b movw $1b,ya +0c6c: ba f6 movw ya,$f6 +0c6e: 8f b7 f1 mov $f1,#$b7 +0c71: c4 f6 mov $f6,a +0c73: e4 1b mov a,$1b +0c75: d5 30 e0 mov $e030+x,a +0c78: 1d dec x +0c79: 30 0f bmi $0c8a +0c7b: e4 1c mov a,$1c +0c7d: d5 30 e0 mov $e030+x,a +0c80: 1d dec x +0c81: 30 07 bmi $0c8a +0c83: dd mov a,y +0c84: d5 30 e0 mov $e030+x,a +0c87: 1d dec x +0c88: 10 d7 bpl $0c61 +0c8a: e4 f6 mov a,$f6 +0c8c: f0 fc beq $0c8a +0c8e: 2e f6 f9 cbne $f6,$0c8a +0c91: ba f4 movw ya,$f4 +0c93: da 1b movw $1b,ya +0c95: ba f6 movw ya,$f6 +0c97: 8f b7 f1 mov $f1,#$b7 +0c9a: c4 f6 mov $f6,a +0c9c: ad 01 cmp y,#$01 +0c9e: d0 07 bne $0ca7 +0ca0: ae pop a +0ca1: ba 1b movw ya,$1b +0ca3: da 19 movw $19,ya +0ca5: 2f 09 bra $0cb0 +0ca7: ae pop a +0ca8: 8d 00 mov y,#$00 +0caa: 7a 19 addw ya,$19 +0cac: da 19 movw $19,ya +0cae: 3a 19 incw $19 +0cb0: ce pop x +0cb1: ee pop y +0cb2: ae pop a +0cb3: 6f ret + +0cb4: 3f f3 10 call $10f3 +0cb7: 3f e9 10 call $10e9 +0cba: 22 07 set1 $07 +0cbc: 6f ret + +0cbd: c5 a2 03 mov $03a2,a +0cc0: 6f ret + +0cc1: e8 00 mov a,#$00 +0cc3: c5 43 02 mov $0243,a +0cc6: 6f ret + +0cc7: cd 01 mov x,#$01 +0cc9: 52 07 clr2 $07 +0ccb: 2f 02 bra $0ccf +0ccd: cd ff mov x,#$ff +0ccf: c5 43 02 mov $0243,a +0cd2: c4 cd mov $cd,a +0cd4: cb cf mov $cf,y +0cd6: d8 ce mov $ce,x +0cd8: 6f ret + +0cd9: 2d push a +0cda: dd mov a,y +0cdb: 28 7f and a,#$7f +0cdd: c5 3e 02 mov $023e,a +0ce0: ae pop a +0ce1: 92 08 clr4 $08 +0ce3: 2f 05 bra $0cea +0ce5: cc 40 02 mov $0240,y +0ce8: 82 08 set4 $08 +0cea: 5f 7d 0d jmp $0d7d + +0ced: 3f d2 1c call $1cd2 +0cf0: e5 fc 1e mov a,$1efc +0cf3: c5 8b 06 mov $068b,a +0cf6: e5 fd 1e mov a,$1efd +0cf9: c5 8c 06 mov $068c,a +0cfc: 05 8b 06 or a,$068b +0cff: f0 20 beq $0d21 +0d01: 3f 0e 17 call $170e +0d04: e5 8b 06 mov a,$068b +0d07: 80 setc +0d08: a8 01 sbc a,#$01 +0d0a: c5 8b 06 mov $068b,a +0d0d: e5 8c 06 mov a,$068c +0d10: a8 00 sbc a,#$00 +0d12: c5 8c 06 mov $068c,a +0d15: b0 ea bcs $0d01 +0d17: cd 07 mov x,#$07 +0d19: e8 00 mov a,#$00 +0d1b: d5 43 01 mov $0143+x,a +0d1e: 1d dec x +0d1f: 10 fa bpl $0d1b +0d21: 6f ret + +0d22: 8d ff mov y,#$ff +0d24: cd 07 mov x,#$07 +0d26: ad 80 cmp y,#$80 +0d28: f0 04 beq $0d2e +0d2a: ad ff cmp y,#$ff +0d2c: d0 05 bne $0d33 +0d2e: 82 07 set4 $07 +0d30: 8f 00 86 mov $86,#$00 +0d33: c4 74 mov $74,a +0d35: ad 80 cmp y,#$80 +0d37: f0 1b beq $0d54 +0d39: f4 d0 mov a,$d0+x +0d3b: 68 ff cmp a,#$ff +0d3d: f0 30 beq $0d6f +0d3f: 68 00 cmp a,#$00 +0d41: 10 06 bpl $0d49 +0d43: ad ff cmp y,#$ff +0d45: f0 0d beq $0d54 +0d47: 2f 26 bra $0d6f +0d49: ad 00 cmp y,#$00 +0d4b: d0 07 bne $0d54 +0d4d: f5 1b 01 mov a,$011b+x +0d50: 64 74 cmp a,$74 +0d52: d0 1b bne $0d6f +0d54: f5 e4 07 mov a,$07e4+x +0d57: c4 f2 mov $f2,a +0d59: 8f 9f f3 mov $f3,#$9f +0d5c: f5 ec 07 mov a,$07ec+x +0d5f: e8 00 mov a,#$00 +0d61: d5 23 01 mov $0123+x,a +0d64: d4 6c mov $6c+x,a +0d66: d4 64 mov $64+x,a +0d68: f5 11 08 mov a,$0811+x +0d6b: 04 58 or a,$58 +0d6d: c4 58 mov $58,a +0d6f: 1d dec x +0d70: 10 c3 bpl $0d35 +0d72: 6f ret + +0d73: 52 07 clr2 $07 +0d75: 5f cd 0c jmp $0ccd + +0d78: 42 07 set2 $07 +0d7a: 5f cd 0c jmp $0ccd + +0d7d: 8d 0e mov y,#$0e +0d7f: c4 74 mov $74,a +0d81: 3f 2c 10 call $102c +0d84: da 23 movw $23,ya +0d86: 8d 00 mov y,#$00 +0d88: f7 23 mov a,($23)+y +0d8a: c4 4e mov $4e,a +0d8c: 3a 23 incw $23 +0d8e: 8d 07 mov y,#$07 +0d90: f7 23 mov a,($23)+y +0d92: 24 0b and a,$0b +0d94: c4 4f mov $4f,a +0d96: 8d 06 mov y,#$06 +0d98: f7 23 mov a,($23)+y +0d9a: c4 50 mov $50,a +0d9c: 8f 80 51 mov $51,#$80 +0d9f: cd 07 mov x,#$07 +0da1: 3f 58 0e call $0e58 +0da4: 10 03 bpl $0da9 +0da6: 5f 2a 0e jmp $0e2a + +0da9: 83 08 07 bbs4 $08,$0db3 +0dac: e8 02 mov a,#$02 +0dae: 15 46 02 or a,$0246+x +0db1: 2f 05 bra $0db8 +0db3: e8 fd mov a,#$fd +0db5: 35 46 02 and a,$0246+x +0db8: d5 46 02 mov $0246+x,a +0dbb: e8 80 mov a,#$80 +0dbd: d4 6c mov $6c+x,a +0dbf: e5 3e 02 mov a,$023e +0dc2: d4 d0 mov $d0+x,a +0dc4: e5 3f 02 mov a,$023f +0dc7: d5 92 03 mov $0392+x,a +0dca: e5 40 02 mov a,$0240 +0dcd: d5 9a 03 mov $039a+x,a +0dd0: e5 8e 03 mov a,$038e +0dd3: c4 0e mov $0e,a +0dd5: e5 90 03 mov a,$0390 +0dd8: c4 0d mov $0d,a +0dda: e5 8f 03 mov a,$038f +0ddd: c4 0f mov $0f,a +0ddf: e5 91 03 mov a,$0391 +0de2: c4 10 mov $10,a +0de4: 7d mov a,x +0de5: 1c asl a +0de6: fd mov y,a +0de7: e8 00 mov a,#$00 +0de9: d6 5b 01 mov $015b+y,a +0dec: d6 5c 01 mov $015c+y,a +0def: c5 3d 02 mov $023d,a +0df2: e5 41 02 mov a,$0241 +0df5: d6 d8 00 mov $00d8+y,a +0df8: e5 42 02 mov a,$0242 +0dfb: d6 d9 00 mov $00d9+y,a +0dfe: e4 74 mov a,$74 +0e00: d5 1b 01 mov $011b+x,a +0e03: 8d 02 mov y,#$02 +0e05: f7 23 mov a,($23)+y +0e07: c4 4a mov $4a,a +0e09: fc inc y +0e0a: f7 23 mov a,($23)+y +0e0c: c4 4b mov $4b,a +0e0e: 8d 04 mov y,#$04 +0e10: f7 23 mov a,($23)+y +0e12: c4 4c mov $4c,a +0e14: fc inc y +0e15: f7 23 mov a,($23)+y +0e17: c4 4d mov $4d,a +0e19: 8d 01 mov y,#$01 +0e1b: f7 23 mov a,($23)+y +0e1d: 2d push a +0e1e: 8d 00 mov y,#$00 +0e20: f7 23 mov a,($23)+y +0e22: 02 07 set0 $07 +0e24: ee pop y +0e25: 72 07 clr3 $07 +0e27: 3f cd 0e call $0ecd +0e2a: 60 clrc +0e2b: 98 08 23 adc $23,#$08 +0e2e: 90 02 bcc $0e32 +0e30: ab 24 inc $24 +0e32: 8b 4e dec $4e +0e34: f0 03 beq $0e39 +0e36: 5f 8e 0d jmp $0d8e + +0e39: e8 00 mov a,#$00 +0e3b: c5 3e 02 mov $023e,a +0e3e: c5 41 02 mov $0241,a +0e41: c5 42 02 mov $0242,a +0e44: c5 40 02 mov $0240,a +0e47: c5 8e 03 mov $038e,a +0e4a: c5 90 03 mov $0390,a +0e4d: c5 8f 03 mov $038f,a +0e50: c5 91 03 mov $0391,a +0e53: 9c dec a +0e54: c5 3f 02 mov $023f,a +0e57: 6f ret + +0e58: 8f 00 0a mov $0a,#$00 +0e5b: 83 0a 5a bbs4 $0a,$0eb8 +0e5e: 8d 07 mov y,#$07 +0e60: 8f ff 3b mov $3b,#$ff +0e63: 8f ff 3c mov $3c,#$ff +0e66: 73 0a 08 bbc3 $0a,$0e71 +0e69: c8 08 cmp x,#$08 +0e6b: b0 4b bcs $0eb8 +0e6d: 8d 00 mov y,#$00 +0e6f: 2f 09 bra $0e7a +0e71: 3f 99 0b call $0b99 +0e74: e4 51 mov a,$51 +0e76: 24 4f and a,$4f +0e78: f0 1f beq $0e99 +0e7a: f4 6c mov a,$6c+x +0e7c: f0 41 beq $0ebf +0e7e: e4 50 mov a,$50 +0e80: 03 0a 06 bbs0 $0a,$0e89 +0e83: 74 11 cmp a,$11+x +0e85: b0 38 bcs $0ebf +0e87: 2f 10 bra $0e99 +0e89: 74 11 cmp a,$11+x +0e8b: f0 0c beq $0e99 +0e8d: 90 0a bcc $0e99 +0e8f: f4 11 mov a,$11+x +0e91: 64 3c cmp a,$3c +0e93: b0 04 bcs $0e99 +0e95: c4 3c mov $3c,a +0e97: d8 3b mov $3b,x +0e99: 53 0a 0c bbc2 $0a,$0ea8 +0e9c: 0b 51 asl $51 +0e9e: d0 05 bne $0ea5 +0ea0: 8f 01 51 mov $51,#$01 +0ea3: cd ff mov x,#$ff +0ea5: 3d inc x +0ea6: 2f 0a bra $0eb2 +0ea8: 4b 51 lsr $51 +0eaa: d0 05 bne $0eb1 +0eac: 8f 80 51 mov $51,#$80 +0eaf: cd 08 mov x,#$08 +0eb1: 1d dec x +0eb2: dc dec y +0eb3: 10 bc bpl $0e71 +0eb5: 03 0a 03 bbs0 $0a,$0ebb +0eb8: e8 ff mov a,#$ff +0eba: 6f ret + +0ebb: f8 3b mov x,$3b +0ebd: 30 f9 bmi $0eb8 +0ebf: 33 0a 04 bbc1 $0a,$0ec6 +0ec2: f4 6c mov a,$6c+x +0ec4: d0 f2 bne $0eb8 +0ec6: e4 50 mov a,$50 +0ec8: d4 11 mov $11+x,a +0eca: e8 00 mov a,#$00 +0ecc: 6f ret + +0ecd: d8 29 mov $29,x ; play sound (instrument) +0ecf: d8 48 mov $48,x +0ed1: 2d push a +0ed2: f5 46 02 mov a,$0246+x +0ed5: 28 fe and a,#$fe +0ed7: d5 46 02 mov $0246+x,a +0eda: 63 07 08 bbs3 $07,$0ee5 +0edd: f5 e4 07 mov a,$07e4+x +0ee0: c4 f2 mov $f2,a +0ee2: 8f 9f f3 mov $f3,#$9f +0ee5: dd mov a,y +0ee6: d5 43 01 mov $0143+x,a +0ee9: 7d mov a,x +0eea: 1c asl a +0eeb: 5d mov x,a +0eec: e4 4c mov a,$4c +0eee: d5 d4 fc mov $fcd4+x,a +0ef1: e4 4d mov a,$4d +0ef3: d5 d5 fc mov $fcd5+x,a +0ef6: e4 4a mov a,$4a +0ef8: d4 75 mov $75+x,a +0efa: e4 4b mov a,$4b +0efc: d4 76 mov $76+x,a +0efe: ae pop a +0eff: 8d 02 mov y,#$02 +0f01: 3f 2c 10 call $102c +0f04: da 21 movw $21,ya ;get current voice and instrument +0f06: f8 48 mov x,$48 +0f08: f5 11 08 mov a,$0811+x ;get channel bit mask ID +0f0b: c4 62 mov $62,a +0f0d: 48 ff eor a,#$ff ;and store inversion +0f0f: c4 63 mov $63,a +0f11: e4 53 mov a,$53 ;get mode flags +0f13: 63 07 05 bbs3 $07,$0f1b +0f16: 35 19 08 and a,$0819+x +0f19: 2f 03 bra $0f1e +0f1b: 15 11 08 or a,$0811+x +0f1e: c4 53 mov $53,a +0f20: 8d 00 mov y,#$00 +0f22: f7 21 mov a,($21)+y +0f24: d4 64 mov $64+x,a +0f26: c4 49 mov $49,a +0f28: 8f 2d f2 mov $f2,#$2d +0f2b: 28 20 and a,#$20 ; is pitch modulation enabled? ($20 = pm) +0f2d: f0 05 beq $0f34 ; if not... +0f2f: 09 62 f3 or ($f3),($62) ; turn pitch mod on +0f32: 2f 03 bra $0f37 +0f34: 29 63 f3 and ($f3),($63) ; turn pitch mod off +0f37: 63 07 50 bbs3 $07,$0f8a ; slur handler +0f3a: b0 4e bcs $0f8a +0f3c: 93 49 45 bbc4 $49,$0f84 +0f3f: 13 08 05 bbc0 $08,$0f47 +0f42: e5 06 01 mov a,$0106 +0f45: 2f 04 bra $0f4b +0f47: 8d 05 mov y,#$05 ; default echo +0f49: f7 21 mov a,($21)+y +0f4b: 8d 0c mov y,#$0c ; look for echo +0f4d: 3f 2c 10 call $102c +0f50: 8d 00 mov y,#$00 +0f52: f6 21 08 mov a,$0821+y ; get the echo register values to "poke" +0f55: c4 f2 mov $f2,a ; (from the table) +0f57: f7 2a mov a,($2a)+y ; now get info to feed to the registers +0f59: ad 01 cmp y,#$01 ; (from the echo environment) +0f5b: f0 08 beq $0f65 +0f5d: ad 03 cmp y,#$03 +0f5f: f0 0f beq $0f70 +0f61: ad 02 cmp y,#$02 +0f63: d0 10 bne $0f75 +0f65: d6 43 02 mov $0243+y,a +0f68: 65 3b 02 cmp a,$023b +0f6b: 90 03 bcc $0f70 +0f6d: e5 3b 02 mov a,$023b +0f70: d6 37 02 mov $0237+y,a +0f73: 2f 02 bra $0f77 +0f75: c4 f3 mov $f3,a +0f77: fc inc y +0f78: ad 0c cmp y,#$0c ; repeat for every byte of the array +0f7a: 90 d6 bcc $0f52 +0f7c: 8f 4d f2 mov $f2,#$4d +0f7f: 09 62 f3 or ($f3),($62) +0f82: 2f 06 bra $0f8a +0f84: 8f 4d f2 mov $f2,#$4d +0f87: 29 63 f3 and ($f3),($63) +0f8a: e4 48 mov a,$48 +0f8c: 60 clrc +0f8d: 88 00 adc a,#$00 +0f8f: c4 2e mov $2e,a +0f91: 8d 01 mov y,#$01 +0f93: f7 21 mov a,($21)+y +0f95: 03 49 08 bbs0 $49,$0fa0 +0f98: f8 48 mov x,$48 +0f9a: d5 23 01 mov $0123+x,a +0f9d: 5f ab 0f jmp $0fab + +0fa0: 8d 04 mov y,#$04 +0fa2: 3f 2c 10 call $102c +0fa5: fa 0e 0c mov ($0c),($0e) +0fa8: 3f 8d 11 call $118d +0fab: e4 48 mov a,$48 +0fad: 60 clrc +0fae: 88 08 adc a,#$08 +0fb0: c4 2e mov $2e,a +0fb2: 53 49 13 bbc2 $49,$0fc8 +0fb5: 8d 03 mov y,#$03 +0fb7: f7 21 mov a,($21)+y +0fb9: 8d 06 mov y,#$06 +0fbb: 3f 2c 10 call $102c +0fbe: fa 0f 0c mov ($0c),($0f) +0fc1: 42 08 set2 $08 +0fc3: 3f 8d 11 call $118d +0fc6: 52 08 clr2 $08 +0fc8: e4 48 mov a,$48 +0fca: 60 clrc +0fcb: 88 18 adc a,#$18 +0fcd: c4 2e mov $2e,a +0fcf: 63 07 57 bbs3 $07,$1029 +0fd2: 8d 04 mov y,#$04 +0fd4: f7 21 mov a,($21)+y ; now get the amplitude +0fd6: 63 49 08 bbs3 $49,$0fe1 +0fd9: f8 48 mov x,$48 +0fdb: d5 e4 fc mov $fce4+x,a +0fde: 5f 02 10 jmp $1002 + +0fe1: 8d 08 mov y,#$08 +0fe3: 3f 2c 10 call $102c +0fe6: fa 10 0c mov ($0c),($10) +0fe9: 3f 8d 11 call $118d +0fec: eb 2e mov y,$2e +0fee: f6 e3 04 mov a,$04e3+y +0ff1: f0 0a beq $0ffd +0ff3: f6 c3 03 mov a,$03c3+y +0ff6: d0 05 bne $0ffd +0ff8: e8 ff mov a,#$ff +0ffa: 5f ff 0f jmp $0fff + +0ffd: e8 00 mov a,#$00 +0fff: d6 c3 03 mov $03c3+y,a +1002: e4 48 mov a,$48 +1004: 60 clrc +1005: 88 10 adc a,#$10 +1007: c4 2e mov $2e,a +1009: 8d 02 mov y,#$02 +100b: f7 21 mov a,($21)+y +100d: 23 49 08 bbs1 $49,$1018 +1010: f8 48 mov x,$48 +1012: d5 ec fc mov $fcec+x,a +1015: 5f 23 10 jmp $1023 + +1018: 8d 0a mov y,#$0a +101a: 3f 2c 10 call $102c +101d: fa 0d 0c mov ($0c),($0d) +1020: 3f 8d 11 call $118d +1023: 09 62 58 or ($58),($62) +1026: 09 62 52 or ($52),($62) +1029: 72 07 clr3 $07 +102b: 6f ret + +102c: 3f 99 0b call $0b99 ; load current song/sfx/etc. address into stack +102f: 8f 00 20 mov $20,#$00 +1032: 1c asl a +1033: 2b 20 rol $20 +1035: 60 clrc +1036: 96 e0 1e adc a,$1ee0+y +1039: c4 1f mov $1f,a +103b: e4 20 mov a,$20 +103d: 96 e1 1e adc a,$1ee1+y +1040: c4 20 mov $20,a +1042: 8d 01 mov y,#$01 +1044: f7 1f mov a,($1f)+y +1046: c4 2b mov $2b,a +1048: dc dec y +1049: f7 1f mov a,($1f)+y +104b: c4 2a mov $2a,a +104d: eb 2b mov y,$2b +104f: 6f ret + +1050: db $06,$04,$04,$04,$04,$04,$1c,$1a,$26,$04,$10,$12,$26,$26,$26,$26 +1060: db $01,$0c,$0c,$0c,$0c,$0c,$80,$00,$29,$0a,$01,$01,$2b,$4f,$4f,$4f +1070: db $00,$00,$00,$00,$00,$00,$80,$00,$38,$00,$08,$06,$38,$c0,$cd,$e2 + +; initalize sound registers +1080: 3f ce 10 call $10ce +1083: cd 32 mov x,#$32 +1085: 8d 11 mov y,#$11 +1087: 3f 1b 11 call $111b +108a: e8 00 mov a,#$00 +108c: 5d mov x,a +108d: fd mov y,a +108e: d5 00 01 mov $0100+x,a +1091: af mov (x)+,a +1092: c8 f0 cmp x,#$f0 +1094: 90 f8 bcc $108e +1096: 5d mov x,a +1097: d5 00 02 mov $0200+x,a +109a: d5 00 03 mov $0300+x,a +109d: d5 00 04 mov $0400+x,a +10a0: d5 00 05 mov $0500+x,a +10a3: d5 00 06 mov $0600+x,a +10a6: d5 00 fc mov $fc00+x,a +10a9: d5 00 fd mov $fd00+x,a +10ac: d5 00 ff mov $ff00+x,a +10af: 3d inc x +10b0: d0 e5 bne $1097 +10b2: e8 ff mov a,#$ff +10b4: c4 54 mov $54,a +10b6: c4 56 mov $56,a +10b8: c4 5f mov $5f,a +10ba: c4 55 mov $55,a +10bc: c4 5a mov $5a,a +10be: c4 5b mov $5b,a +10c0: c4 5c mov $5c,a +10c2: c5 3f 02 mov $023f,a +10c5: c4 05 mov $05,a +10c7: c4 06 mov $06,a +10c9: c4 0b mov $0b,a +10cb: 82 07 set4 $07 +10cd: 6f ret + +10ce: cd 14 mov x,#$14 +10d0: e8 00 mov a,#$00 +10d2: d5 28 02 mov $0228+x,a +10d5: 1d dec x +10d6: 10 fa bpl $10d2 +10d8: 8f 10 3b mov $3b,#$10 +10db: 8d 10 mov y,#$10 +10dd: 3f 4a 07 call $074a +10e0: 68 00 cmp a,#$00 +10e2: f0 04 beq $10e8 +10e4: 8b 3b dec $3b +10e6: d0 f0 bne $10d8 +10e8: 6f ret + +10e9: e8 7f mov a,#$7f +10eb: c5 3b 02 mov $023b,a +10ee: c5 3c 02 mov $023c,a +10f1: 2f e5 bra $10d8 + +10f3: e5 e1 1e mov a,$1ee1 +10f6: 8f 6d f2 mov $f2,#$6d +10f9: c4 f3 mov $f3,a +10fb: 68 ff cmp a,#$ff +10fd: f0 1b beq $111a +10ff: c4 01 mov $01,a +1101: e8 00 mov a,#$00 +1103: fd mov y,a +1104: c4 00 mov $00,a +1106: d7 00 mov ($00)+y,a +1108: fe fc dbnz y,$1106 +110a: ab 01 inc $01 +110c: 78 fc 01 cmp $01,#$fc +110f: d0 f5 bne $1106 +1111: 8f 6c f2 mov $f2,#$6c +1114: e8 df mov a,#$df +1116: 24 f3 and a,$f3 +1118: c4 f3 mov $f3,a +111a: 6f ret + +111b: d8 00 mov $00,x +111d: cb 01 mov $01,y +111f: 8d 00 mov y,#$00 +1121: f7 00 mov a,($00)+y +1123: 68 ff cmp a,#$ff +1125: f0 0a beq $1131 +1127: c4 f2 mov $f2,a +1129: fc inc y +112a: f7 00 mov a,($00)+y +112c: c4 f3 mov $f3,a +112e: fc inc y +112f: d0 f0 bne $1121 +1131: 6f ret + +; pre-defined DSP flags +1132: db $3d,$00 ; NON (noise enable) +1134: db $4d,$00 ; EON (echo enable) +1136: db $0d,$00 ; EFB (echo feedback) +1138: db $7d,$00 ; EDL (echo delay) +113a: db $0f,$00 ; COEF (channel 1) +113c: db $1f,$00 ; COEF (channel 2) +113e: db $2f,$00 ; COEF (channel 3) +1140: db $3f,$00 ; COEF (channel 4) +1142: db $4f,$00 ; COEF (channel 5) +1144: db $5f,$00 ; COEF (channel 6) +1146: db $6f,$00 ; COEF (channel 7) +1148: db $7f,$00 ; COEF (channel 8) +114a: db $6d,$ff ; ESA (echo buffer start offset) +114c: db $2c,$00 ; EVOL (L) (echo volume - left) +114e: db $3c,$00 ; EVOL (R) (echo volume - right) +1150: db $0c,$00 ; MVOL (L) (main volume - left) +1152: db $1c,$00 ; MVOL (R) (main volume - right) +1154: db $5d,$02 ; DIR (offset of source directory) +1156: db $5c,$00 ; KOF (key off) +1158: db $2d,$00 ; PMON (pitch modulation) +115a: db $04,$08 ; SRCN (source number - channel 1) +115c: db $14,$08 ; SRCN (source number - channel 2) +115e: db $24,$08 ; SRCN (source number - channel 3) +1160: db $34,$08 ; SRCN (source number - channel 4) +1162: db $44,$08 ; SRCN (source number - channel 5) +1164: db $54,$08 ; SRCN (source number - channel 6) +1166: db $64,$08 ; SRCN (source number - channel 7) +1168: db $74,$08 ; SRCN (source number - channel 8) +116a: db $07,$00 ; GAIN (channel 1) +116c: db $17,$00 ; GAIN (channel 2) +116e: db $27,$00 ; GAIN (channel 3) +1170: db $37,$00 ; GAIN (channel 4) +1172: db $47,$00 ; GAIN (channel 5) +1174: db $57,$00 ; GAIN (channel 6) +1176: db $67,$00 ; GAIN (channel 7) +1178: db $77,$00 ; GAIN (channel 8) +117a: db $05,$00 ; ASDR (1 - channel 1) +117c: db $15,$00 ; ASDR (1 - channel 2) +117e: db $25,$00 ; ASDR (1 - channel 3) +1180: db $35,$00 ; ASDR (1 - channel 4) +1182: db $45,$00 ; ASDR (1 - channel 5) +1184: db $55,$00 ; ASDR (1 - channel 6) +1186: db $65,$00 ; ASDR (1 - channel 7) +1188: db $75,$00 ; ASDR (1 - channel 8) +118a: db $7c,$00 ; ENDX +118b: db $ff + +118d: f8 2e mov x,$2e +118f: 8d 07 mov y,#$07 +1191: f7 2a mov a,($2a)+y +1193: d5 e3 04 mov $04e3+x,a +1196: dc dec y +1197: dc dec y +1198: f7 2a mov a,($2a)+y +119a: d5 03 04 mov $0403+x,a +119d: dc dec y +119e: f7 2a mov a,($2a)+y +11a0: d5 c3 04 mov $04c3+x,a +11a3: dc dec y +11a4: f7 2a mov a,($2a)+y +11a6: d5 23 04 mov $0423+x,a +11a9: dc dec y +11aa: f7 2a mov a,($2a)+y +11ac: d5 43 04 mov $0443+x,a +11af: dc dec y +11b0: f7 2a mov a,($2a)+y +11b2: d5 83 04 mov $0483+x,a +11b5: dc dec y +11b6: f7 2a mov a,($2a)+y +11b8: d5 63 04 mov $0463+x,a +11bb: eb 2e mov y,$2e +11bd: e4 2a mov a,$2a +11bf: 60 clrc +11c0: 88 08 adc a,#$08 +11c2: d6 43 05 mov $0543+y,a +11c5: e4 2b mov a,$2b +11c7: 88 00 adc a,#$00 +11c9: d6 63 05 mov $0563+y,a +11cc: f6 23 04 mov a,$0423+y +11cf: cd 00 mov x,#$00 +11d1: eb 0c mov y,$0c +11d3: f0 23 beq $11f8 +11d5: cf mul ya +11d6: cb 3b mov $3b,y +11d8: c4 3c mov $3c,a +11da: cd 05 mov x,#$05 +11dc: 4b 3b lsr $3b +11de: 7c ror a +11df: 1d dec x +11e0: d0 fa bne $11dc +11e2: eb 3b mov y,$3b +11e4: ad 00 cmp y,#$00 +11e6: d0 08 bne $11f0 +11e8: 68 00 cmp a,#$00 +11ea: f0 0a beq $11f6 +11ec: f8 3c mov x,$3c +11ee: 2f 08 bra $11f8 +11f0: cd 01 mov x,#$01 +11f2: e8 ff mov a,#$ff +11f4: 2f 02 bra $11f8 +11f6: 5d mov x,a +11f7: bc inc a +11f8: eb 2e mov y,$2e +11fa: d6 23 04 mov $0423+y,a +11fd: 7d mov a,x +11fe: 48 ff eor a,#$ff +1200: 08 e0 or a,#$e0 +1202: d6 a3 03 mov $03a3+y,a +1205: e8 ff mov a,#$ff +1207: d6 e3 03 mov $03e3+y,a +120a: 3f 99 0b call $0b99 +120d: 5d mov x,a +120e: f6 43 04 mov a,$0443+y +1211: fd mov y,a +1212: 7d mov a,x +1213: cf mul ya +1214: da 41 movw $41,ya +1216: 03 07 06 bbs0 $07,$121f +1219: ba 05 movw ya,$05 +121b: da 41 movw $41,ya +121d: 2f 0a bra $1229 +121f: ba 4a movw ya,$4a +1221: 9a 41 subw ya,$41 +1223: b0 02 bcs $1227 +1225: ba 4a movw ya,$4a +1227: cb 42 mov $42,y +1229: eb 2e mov y,$2e +122b: d6 83 05 mov $0583+y,a +122e: e4 42 mov a,$42 +1230: d6 a3 05 mov $05a3+y,a +1233: f6 23 04 mov a,$0423+y +1236: bc inc a +1237: d0 01 bne $123a +1239: 9c dec a +123a: d6 03 05 mov $0503+y,a +123d: 68 03 cmp a,#$03 +123f: b0 05 bcs $1246 +1241: e8 00 mov a,#$00 +1243: d6 c3 04 mov $04c3+y,a +1246: e8 01 mov a,#$01 +1248: d6 a3 04 mov $04a3+y,a +124b: 9c dec a +124c: d6 23 05 mov $0523+y,a +124f: d6 44 ff mov $ff44+y,a +1252: d6 64 ff mov $ff64+y,a +1255: c4 38 mov $38,a +1257: 5f 2c 13 jmp $132c + +125a: eb 2e mov y,$2e +125c: b2 07 clr5 $07 +125e: f6 c3 04 mov a,$04c3+y +1261: c4 38 mov $38,a +1263: f6 a3 04 mov a,$04a3+y +1266: f0 42 beq $12aa +1268: f6 a3 03 mov a,$03a3+y +126b: 60 clrc +126c: 96 e3 03 adc a,$03e3+y +126f: d6 e3 03 mov $03e3+y,a +1272: 90 18 bcc $128c +1274: f6 03 05 mov a,$0503+y +1277: c4 39 mov $39,a +1279: f0 03 beq $127e +127b: 9c dec a +127c: d0 03 bne $1281 +127e: f6 23 04 mov a,$0423+y +1281: d6 03 05 mov $0503+y,a +1284: 78 02 39 cmp $39,#$02 +1287: 90 08 bcc $1291 +1289: 5f 2c 13 jmp $132c + +128c: 8f 00 38 mov $38,#$00 +128f: 2f f8 bra $1289 +1291: eb 2e mov y,$2e +1293: f6 23 05 mov a,$0523+y +1296: bc inc a +1297: 76 03 04 cmp a,$0403+y +129a: 90 1b bcc $12b7 +129c: 9c dec a +129d: 76 83 04 cmp a,$0483+y +12a0: d0 03 bne $12a5 +12a2: 5f 26 13 jmp $1326 + +12a5: e8 00 mov a,#$00 +12a7: d6 a3 04 mov $04a3+y,a +12aa: a2 07 set5 $07 +12ac: f6 24 ff mov a,$ff24+y +12af: 2d push a +12b0: f6 04 ff mov a,$ff04+y +12b3: ee pop y +12b4: 5f dd 13 jmp $13dd + +12b7: d6 23 05 mov $0523+y,a +12ba: f6 a3 05 mov a,$05a3+y +12bd: 16 83 05 or a,$0583+y +12c0: f0 6a beq $132c +12c2: f8 29 mov x,$29 +12c4: f5 46 02 mov a,$0246+x +12c7: 28 02 and a,#$02 +12c9: f0 24 beq $12ef +12cb: e8 01 mov a,#$01 +12cd: 74 6c cmp a,$6c+x +12cf: d0 03 bne $12d4 +12d1: 83 07 09 bbs4 $07,$12dd +12d4: eb 29 mov y,$29 +12d6: f6 46 02 mov a,$0246+y +12d9: 28 01 and a,#$01 +12db: f0 3d beq $131a +12dd: e8 00 mov a,#$00 +12df: d6 75 00 mov $0075+y,a +12e2: d6 76 00 mov $0076+y,a +12e5: eb 2e mov y,$2e +12e7: d6 83 05 mov $0583+y,a +12ea: d6 a3 05 mov $05a3+y,a +12ed: 2f 21 bra $1310 +12ef: f6 83 05 mov a,$0583+y +12f2: 80 setc +12f3: b6 23 04 sbc a,$0423+y +12f6: d6 83 05 mov $0583+y,a +12f9: c4 41 mov $41,a +12fb: f6 a3 05 mov a,$05a3+y +12fe: a8 00 sbc a,#$00 +1300: b0 07 bcs $1309 +1302: e8 00 mov a,#$00 +1304: d6 83 05 mov $0583+y,a +1307: c4 41 mov $41,a +1309: d6 a3 05 mov $05a3+y,a +130c: 04 41 or a,$41 +130e: d0 0a bne $131a +1310: f6 83 04 mov a,$0483+y +1313: 76 03 04 cmp a,$0403+y +1316: 90 11 bcc $1329 +1318: a2 07 set5 $07 +131a: eb 2e mov y,$2e +131c: f6 23 05 mov a,$0523+y +131f: 76 83 04 cmp a,$0483+y +1322: 90 08 bcc $132c +1324: f0 06 beq $132c +1326: f6 63 04 mov a,$0463+y +1329: d6 23 05 mov $0523+y,a +132c: eb 2e mov y,$2e +132e: f8 38 mov x,$38 +1330: f0 1c beq $134e +1332: 78 03 39 cmp $39,#$03 +1335: 90 17 bcc $134e +1337: f6 04 ff mov a,$ff04+y +133a: c4 34 mov $34,a +133c: f6 24 ff mov a,$ff24+y +133f: c4 35 mov $35,a +1341: f6 44 ff mov a,$ff44+y +1344: c4 36 mov $36,a +1346: f6 64 ff mov a,$ff64+y +1349: c4 37 mov $37,a +134b: 5f cb 13 jmp $13cb + +134e: f6 43 05 mov a,$0543+y +1351: c4 2c mov $2c,a +1353: f6 63 05 mov a,$0563+y +1356: c4 2d mov $2d,a +1358: f6 23 05 mov a,$0523+y +135b: fd mov y,a +135c: 43 08 07 bbs2 $08,$1366 +135f: f7 2c mov a,($2c)+y +1361: 8d 40 mov y,#$40 +1363: cf mul ya +1364: 2f 10 bra $1376 +1366: 8d 02 mov y,#$02 +1368: cf mul ya +1369: 7a 2c addw ya,$2c +136b: da 2c movw $2c,ya +136d: 8d 01 mov y,#$01 +136f: f7 2c mov a,($2c)+y +1371: dc dec y +1372: 2d push a +1373: f7 2c mov a,($2c)+y +1375: ee pop y +1376: f8 38 mov x,$38 +1378: f0 55 beq $13cf +137a: 78 02 39 cmp $39,#$02 +137d: f0 50 beq $13cf +137f: da 3b movw $3b,ya +1381: eb 2e mov y,$2e +1383: f6 24 ff mov a,$ff24+y +1386: c4 35 mov $35,a +1388: f6 04 ff mov a,$ff04+y +138b: c4 34 mov $34,a +138d: eb 35 mov y,$35 +138f: 80 setc +1390: 9a 3b subw ya,$3b +1392: da 36 movw $36,ya +1394: e8 00 mov a,#$00 +1396: 3c rol a +1397: c4 3b mov $3b,a +1399: d0 08 bne $13a3 +139b: 58 ff 36 eor $36,#$ff +139e: 58 ff 37 eor $37,#$ff +13a1: 3a 36 incw $36 +13a3: eb 2e mov y,$2e +13a5: f6 23 04 mov a,$0423+y +13a8: 5d mov x,a +13a9: ba 36 movw ya,$36 +13ab: 3f e8 13 call $13e8 +13ae: c4 36 mov $36,a +13b0: d8 37 mov $37,x +13b2: 78 01 3b cmp $3b,#$01 +13b5: d0 08 bne $13bf +13b7: 58 ff 36 eor $36,#$ff +13ba: 58 ff 37 eor $37,#$ff +13bd: 3a 36 incw $36 +13bf: eb 2e mov y,$2e +13c1: e4 36 mov a,$36 +13c3: d6 44 ff mov $ff44+y,a +13c6: e4 37 mov a,$37 +13c8: d6 64 ff mov $ff64+y,a +13cb: ba 34 movw ya,$34 +13cd: 7a 36 addw ya,$36 +13cf: da 34 movw $34,ya +13d1: eb 2e mov y,$2e +13d3: d6 04 ff mov $ff04+y,a +13d6: e4 35 mov a,$35 +13d8: d6 24 ff mov $ff24+y,a +13db: ba 34 movw ya,$34 +13dd: 43 08 07 bbs2 $08,$13e7 +13e0: cd 40 mov x,#$40 +13e2: 9e div ya,x +13e3: 8d 00 mov y,#$00 +13e5: da 34 movw $34,ya +13e7: 6f ret + +13e8: c8 00 cmp x,#$00 +13ea: d0 04 bne $13f0 +13ec: 1d dec x +13ed: 7d mov a,x +13ee: fd mov y,a +13ef: 6f ret + +13f0: 40 setp +13f1: cb 01 mov $01,y +13f3: 3e 01 cmp x,$01 +13f5: f0 02 beq $13f9 +13f7: b0 1a bcs $1413 +13f9: c4 00 mov $00,a +13fb: dd mov a,y +13fc: 8d 00 mov y,#$00 +13fe: 9e div ya,x +13ff: c4 02 mov $02,a +1401: fd mov y,a +1402: 7d mov a,x +1403: cf mul ya +1404: c4 03 mov $03,a +1406: e4 01 mov a,$01 +1408: 80 setc +1409: a4 03 sbc a,$03 +140b: fd mov y,a +140c: e4 00 mov a,$00 +140e: 9e div ya,x +140f: f8 02 mov x,$02 +1411: 20 clrp +1412: 6f ret + +1413: 9e div ya,x +1414: cd 00 mov x,#$00 +1416: 20 clrp +1417: 6f ret + +1418: 4d push x +1419: f5 f4 fc mov a,$fcf4+x +141c: 8d 04 mov y,#$04 +141e: cf mul ya +141f: 7a 25 addw ya,$25 +1421: da 00 movw $00,ya +1423: f5 ec 07 mov a,$07ec+x +1426: c4 f2 mov $f2,a +1428: 7d mov a,x +1429: 1c asl a +142a: 1c asl a +142b: 5d mov x,a +142c: f5 02 02 mov a,$0202+x +142f: c5 26 02 mov $0226,a +1432: f5 03 02 mov a,$0203+x +1435: c5 27 02 mov $0227,a +1438: 8f 09 f3 mov $f3,#$09 +143b: 8d 00 mov y,#$00 +143d: f7 00 mov a,($00)+y +143f: d5 00 02 mov $0200+x,a +1442: fc inc y +1443: f7 00 mov a,($00)+y +1445: d5 01 02 mov $0201+x,a +1448: fc inc y +1449: f7 00 mov a,($00)+y +144b: d5 02 02 mov $0202+x,a +144e: fc inc y +144f: f7 00 mov a,($00)+y +1451: d5 03 02 mov $0203+x,a +1454: 8d 01 mov y,#$01 +1456: f7 00 mov a,($00)+y +1458: c4 3e mov $3e,a +145a: dc dec y +145b: f7 00 mov a,($00)+y +145d: 80 setc +145e: a8 03 sbc a,#$03 +1460: c4 3d mov $3d,a +1462: b8 00 3e sbc $3e,#$00 +1465: f7 3d mov a,($3d)+y +1467: c5 04 01 mov $0104,a +146a: fc inc y +146b: f7 3d mov a,($3d)+y +146d: c5 05 01 mov $0105,a +1470: fc inc y +1471: f7 3d mov a,($3d)+y +1473: c4 60 mov $60,a +1475: 10 14 bpl $148b +1477: 28 1f and a,#$1f +1479: 8f 6c f2 mov $f2,#$6c +147c: 38 e0 f3 and $f3,#$e0 +147f: 04 f3 or a,$f3 +1481: c4 f3 mov $f3,a +1483: 8f 3d f2 mov $f2,#$3d +1486: 09 46 f3 or ($f3),($46) +1489: 2f 06 bra $1491 +148b: 8f 3d f2 mov $f2,#$3d +148e: 29 47 f3 and ($f3),($47) +1491: ce pop x +1492: f5 ec 07 mov a,$07ec+x +1495: c4 f2 mov $f2,a +1497: d8 f3 mov $f3,x +1499: 6f ret + +149a: 60 clrc +149b: 88 a0 adc a,#$a0 ; add offset to input frequency (1440) +149d: 5d mov x,a +149e: dd mov a,y +149f: 88 05 adc a,#$05 +14a1: fd mov y,a +14a2: 7d mov a,x +14a3: ad 0a cmp y,#$0a ; check if it is in within positive range +14a5: 90 06 bcc $14ad ; in range +14a7: d0 0a bne $14b3 ; out of range +14a9: 68 50 cmp a,#$50 +14ab: b0 06 bcs $14b3 ; out of range +14ad: 8f ff 61 mov $61,#$ff +14b0: 5f c9 14 jmp $14c9 + +14b3: ad 80 cmp y,#$80 +14b5: 90 0f bcc $14c6 +14b7: 8f 00 61 mov $61,#$00 +14ba: 60 clrc +14bb: 88 20 adc a,#$20 +14bd: 5d mov x,a +14be: dd mov a,y +14bf: 88 df adc a,#$df +14c1: fd mov y,a +14c2: 7d mov a,x +14c3: 5f c9 14 jmp $14c9 + +14c6: 8f 0a 61 mov $61,#$0a +14c9: cd f0 mov x,#$f0 +14cb: 9e div ya,x +14cc: 78 ff 61 cmp $61,#$ff +14cf: d0 02 bne $14d3 +14d1: c4 61 mov $61,a +14d3: f6 ee 14 mov a,$14ee+y ;get pitch value (from table) +14d6: c4 3b mov $3b,a +14d8: f6 de 15 mov a,$15de+y +14db: c4 3c mov $3c,a +14dd: e8 0a mov a,#$0a +14df: 80 setc +14e0: a4 61 sbc a,$61 +14e2: f0 07 beq $14eb +14e4: fd mov y,a +14e5: 4b 3c lsr $3c +14e7: 6b 3b ror $3b +14e9: fe fa dbnz y,$14e5 +14eb: ba 3b movw ya,$3b +14ed: 6f ret + +; pitch table (low byte) +14ee: db $00,$18,$2f,$47,$5f,$77,$8f,$a7,$bf,$d8,$f0,$08,$21,$39,$52,$6b,$83,$9c,$b5,$ce,$e7,$00,$19,$33,$4c,$65,$7f,$98,$b2,$cc,$e5,$ff,$19,$33,$4d,$67,$82,$9c,$b6,$d1,$eb,$06,$20,$3b,$56,$71,$8c,$a7,$c2,$dd,$f9,$14,$2f,$4b,$67,$82,$9e,$ba,$d6,$f2,$0e,$2a,$46,$63,$7f,$9c,$b8,$d5,$f2,$0f,$2b,$48,$66,$83,$a0,$bd,$db,$f8,$16,$34,$51,$6f,$8d,$ab,$c9,$e7,$06,$24,$43,$61,$80,$9e,$bd,$dc,$fb,$1a,$39,$59,$78,$97,$b7,$d7,$f6,$16,$36,$56,$76,$96,$b7,$d7,$f7,$18,$39,$59,$7a,$9b,$bc,$dd,$ff,$20,$41,$63,$84,$a6,$c8,$ea,$0c,$2e,$50,$72,$95,$b7,$da,$fc,$1f,$42,$65,$88,$ab,$cf,$f2,$16,$39,$5d,$81,$a5,$c9,$ed,$11,$35,$5a,$7e,$a3,$c8,$ed,$12,$37,$5c,$81,$a6,$cc,$f2,$17,$3d,$63,$89,$af,$d6,$fc,$22,$49,$70,$97,$be,$e5,$0c,$33,$5a,$82,$aa,$d1,$f9,$21,$49,$71,$9a,$c2,$eb,$13,$3c,$65,$8e,$b7,$e0,$0a,$33,$5d,$87,$b0,$da,$04,$2f,$59,$84,$ae,$d9,$04,$2f,$5a,$85,$b0,$dc,$07,$33,$5f,$8b,$b7,$e3,$0f,$3c,$68,$95,$c2,$ef,$1c,$49,$77,$a4,$d2,$00,$2e,$5c,$8a,$b8,$e7,$15,$44,$73,$a2,$d1 + +; pitch table (high byte) +15de: db $20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$23,$23,$23,$23,$23,$23,$23,$23,$23,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$25,$25,$25,$25,$25,$25,$25,$25,$25,$26,$26,$26,$26,$26,$26,$26,$26,$26,$27,$27,$27,$27,$27,$27,$27,$27,$27,$28,$28,$28,$28,$28,$28,$28,$28,$29,$29,$29,$29,$29,$29,$29,$29,$29,$2a,$2a,$2a,$2a,$2a,$2a,$2a,$2a,$2b,$2b,$2b,$2b,$2b,$2b,$2b,$2b,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2d,$2d,$2d,$2d,$2d,$2d,$2d,$2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e,$2f,$2f,$2f,$2f,$2f,$2f,$2f,$30,$30,$30,$30,$30,$30,$30,$31,$31,$31,$31,$31,$31,$31,$32,$32,$32,$32,$32,$32,$32,$33,$33,$33,$33,$33,$33,$33,$34,$34,$34,$34,$34,$34,$35,$35,$35,$35,$35,$35,$35,$36,$36,$36,$36,$36,$36,$37,$37,$37,$37,$37,$37,$38,$38,$38,$38,$38,$38,$39,$39,$39,$39,$39,$39,$3a,$3a,$3a,$3a,$3a,$3a,$3b,$3b,$3b,$3b,$3b,$3b,$3c,$3c,$3c,$3c,$3c,$3c,$3d,$3d,$3d,$3d,$3d,$3e,$3e,$3e,$3e,$3e,$3e,$3f,$3f,$3f,$3f,$3f + +; note interval frequencies (low byte) +16ce: db $30,$20,$ac,$10,$24,$38,$4c,$60,$74,$88,$9c,$b0,$c4,$d8,$ec,$00,$14,$28,$3c,$50,$64,$78,$8c,$a0,$b4,$c8,$dc,$f0,$54,$e0,$d0,$c0 + +; note interval frequencies (high byte) +16ee: db $fd,$fe,$fe,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$02,$03 + +170e: 3f 82 17 call $1782 +1711: 8f 00 87 mov $87,#$00 +1714: e4 86 mov a,$86 +1716: f0 20 beq $1738 +1718: e4 85 mov a,$85 +171a: 9c dec a +171b: c4 88 mov $88,a +171d: 3f 99 0b call $0b99 +1720: f8 87 mov x,$87 +1722: f5 07 01 mov a,$0107+x +1725: 30 0a bmi $1731 +1727: 5d mov x,a +1728: c4 88 mov $88,a +172a: f5 66 03 mov a,$0366+x +172d: 5d mov x,a +172e: 1f 3b 1e jmp ($1e3b+x) + +1731: ab 87 inc $87 +1733: 69 85 87 cmp ($87),($85) +1736: d0 e5 bne $171d +1738: 6f ret + +1739: c4 3b mov $3b,a +173b: f6 64 00 mov a,$0064+y +173e: 28 80 and a,#$80 +1740: f0 08 beq $174a +1742: f6 11 00 mov a,$0011+y +1745: 9c dec a +1746: d6 11 00 mov $0011+y,a +1749: 6f ret + +174a: f6 6c 00 mov a,$006c+y +174d: 64 3b cmp a,$3b +174f: d0 07 bne $1758 +1751: f6 11 00 mov a,$0011+y +1754: 5c lsr a +1755: d6 11 00 mov $0011+y,a +1758: 6f ret + +1759: f8 88 mov x,$88 +175b: 9b b4 dec $b4+x +175d: d0 d2 bne $1731 +175f: 2f 19 bra $177a +1761: f8 88 mov x,$88 +1763: 9b b4 dec $b4+x +1765: d0 ca bne $1731 +1767: e8 04 mov a,#$04 +1769: d5 66 03 mov $0366+x,a +176c: 5f 6b 18 jmp $186b + +176f: 3f c8 17 call $17c8 +1772: e8 00 mov a,#$00 +1774: d5 c6 02 mov $02c6+x,a +1777: d5 da 02 mov $02da+x,a +177a: e8 06 mov a,#$06 +177c: d5 66 03 mov $0366+x,a +177f: 5f 00 18 jmp $1800 + +1782: d3 07 2f bbc6 $07,$17b4 +1785: d2 07 clr6 $07 +1787: f8 85 mov x,$85 +1789: f0 29 beq $17b4 +178b: e8 ff mov a,#$ff +178d: 1d dec x +178e: d5 07 01 mov $0107+x,a +1791: 1d dec x +1792: 10 fa bpl $178e +1794: f8 85 mov x,$85 +1796: 1d dec x +1797: 8f 00 3b mov $3b,#$00 +179a: eb 3b mov y,$3b +179c: f6 07 01 mov a,$0107+y +179f: 30 14 bmi $17b5 +17a1: fd mov y,a +17a2: f5 b2 02 mov a,$02b2+x +17a5: 76 b2 02 cmp a,$02b2+y +17a8: b0 0b bcs $17b5 +17aa: ab 3b inc $3b +17ac: 78 14 3b cmp $3b,#$14 +17af: d0 e9 bne $179a +17b1: 1d dec x +17b2: 10 e3 bpl $1797 +17b4: 6f ret + +17b5: eb 3b mov y,$3b +17b7: 4d push x +17b8: 40 setp +17b9: f6 07 01 mov a,$0107+y +17bc: d9 07 mov $07+y,x +17be: 5d mov x,a +17bf: fc inc y +17c0: 68 ff cmp a,#$ff +17c2: d0 f5 bne $17b9 +17c4: ce pop x +17c5: 20 clrp +17c6: 2f e9 bra $17b1 +17c8: f5 27 06 mov a,$0627+x +17cb: 30 1d bmi $17ea +17cd: fd mov y,a +17ce: 7d mov a,x +17cf: 08 80 or a,#$80 +17d1: 76 d0 00 cmp a,$00d0+y +17d4: d0 14 bne $17ea +17d6: e8 01 mov a,#$01 +17d8: 16 46 02 or a,$0246+y +17db: d6 46 02 mov $0246+y,a +17de: e8 01 mov a,#$01 +17e0: 3f 39 17 call $1739 +17e3: f5 7a 03 mov a,$037a+x +17e6: 28 02 and a,#$02 +17e8: d0 00 bne $17ea +17ea: 6f ret + +17eb: c4 02 mov $02,a +17ed: 7d mov a,x +17ee: 8d 05 mov y,#$05 +17f0: cf mul ya +17f1: 60 clrc +17f2: 84 02 adc a,$02 +17f4: fd mov y,a +17f5: cb 02 mov $02,y +17f7: 6f ret + +; voice numbers +17f8: db $01,$02,$04,$08,$10,$20,$40,$80 + +1800: f8 88 mov x,$88 +1802: f5 c6 02 mov a,$02c6+x +1805: c4 3b mov $3b,a +1807: f5 da 02 mov a,$02da+x +180a: c4 3c mov $3c,a +180c: 3f 3b 1a call $1a3b +180f: fd mov y,a +1810: 28 0f and a,#$0f +1812: 2d push a +1813: dd mov a,y +1814: 5c lsr a +1815: 5c lsr a +1816: 5c lsr a +1817: 5c lsr a +1818: f0 28 beq $1842 +181a: 60 clrc +181b: 88 f8 adc a,#$f8 +181d: 8d 00 mov y,#$00 +181f: 68 00 cmp a,#$00 +1821: 10 01 bpl $1824 +1823: dc dec y +1824: 7a 3b addw ya,$3b +1826: d5 c6 02 mov $02c6+x,a +1829: dd mov a,y +182a: d5 da 02 mov $02da+x,a +182d: 8f 00 89 mov $89,#$00 +1830: 3f 00 19 call $1900 +1833: f8 88 mov x,$88 +1835: ae pop a +1836: 68 00 cmp a,#$00 +1838: f0 c6 beq $1800 +183a: d4 b4 mov $b4+x,a +183c: 3f 24 1c call $1c24 +183f: 5f 31 17 jmp $1731 + +1842: ae pop a +1843: dd mov a,y +1844: 68 00 cmp a,#$00 +1846: d0 03 bne $184b +1848: 5f 67 17 jmp $1767 +184b: 68 01 cmp a,#$01 +184d: d0 0b bne $185a +184f: 3f 3b 1a call $1a3b +1852: d4 b4 mov $b4+x,a +1854: 3f 24 1c call $1c24 +1857: 5f 31 17 jmp $1731 + +185a: 68 02 cmp a,#$02 +185c: d0 05 bne $1863 +185e: 3f c8 17 call $17c8 +1861: 2f 9d bra $1800 +1863: f4 b4 mov a,$b4+x +1865: 2d push a +1866: 3f 3b 1a call $1a3b +1869: 2f b2 bra $181d +186b: f8 88 mov x,$88 +186d: f5 4e 02 mov a,$024e+x +1870: 68 05 cmp a,#$05 +1872: f0 1e beq $1892 +1874: 3f eb 17 call $17eb +1877: f6 68 fd mov a,$fd68+y +187a: c4 00 mov $00,a +187c: f6 04 fd mov a,$fd04+y +187f: c4 01 mov $01,a +1881: 8d 02 mov y,#$02 +1883: f7 00 mov a,($00)+y +1885: de 8c 0a cbne $8c+x,$1892 +1888: 8d 03 mov y,#$03 +188a: f7 00 mov a,($00)+y +188c: de a0 03 cbne $a0+x,$1892 + +; play melody byte +188f: 5f 74 1b jmp $1b74 + +1892: 3f 3b 1a call $1a3b ; get 1 byte +1895: fd mov y,a ; separate the flags +1896: ad e0 cmp y,#$e0 ; check if it's a vector command +1898: 90 16 bcc $18b0 ; if not a vector... +189a: dd mov a,y +189b: 28 1f and a,#$1f ; mask off bits +189d: 1c asl a +189e: fd mov y,a +189f: f6 79 1c mov a,$1c79+y +18a2: c5 ae 18 mov $18ae,a +18a5: f6 7a 1c mov a,$1c7a+y +18a8: c5 af 18 mov $18af,a +18ab: eb 3b mov y,$3b +18ad: 5f 0e 1c jmp $1c0e + +18b0: ad c0 cmp y,#$c0 ; is it a rest? +18b2: 90 06 bcc $18ba +18b4: 80 setc +18b5: a8 bf sbc a,#$bf ; get the duration +18b7: 5f bd 1a jmp $1abd ; and set rest + +18ba: ad 00 cmp y,#$00 ; is it a relative note? +18bc: 10 06 bpl $18c4 ; if so, play the note +18be: 80 setc ; otherwise, it must be an absolute note... +18bf: a8 60 sbc a,#$60 +18c1: fd mov y,a +18c2: 2f 16 bra $18da +18c4: 2d push a +18c5: 5c lsr a +18c6: 5c lsr a +18c7: 5c lsr a +18c8: 80 setc +18c9: a8 08 sbc a,#$08 +18cb: 60 clrc +18cc: 95 76 02 adc a,$0276+x +18cf: fd mov y,a +18d0: ae pop a +18d1: 28 07 and a,#$07 +18d3: bc inc a +18d4: 2f 07 bra $18dd +18d6: 3f 3b 1a call $1a3b +18d9: fd mov y,a +18da: 3f 3b 1a call $1a3b +18dd: 2d push a +18de: e8 00 mov a,#$00 +18e0: d5 c6 02 mov $02c6+x,a +18e3: d5 da 02 mov $02da+x,a +18e6: dd mov a,y +18e7: d5 76 02 mov $0276+x,a +18ea: 8f 01 89 mov $89,#$01 +18ed: f3 07 02 bbc7 $07,$18f2 +18f0: 8b 89 dec $89 +18f2: f2 07 clr7 $07 +18f4: ae pop a +18f5: 3f fb 18 call $18fb +18f8: 5f 31 17 jmp $1731 + +18fb: d4 b4 mov $b4+x,a +18fd: 3f 1e 1c call $1c1e +1900: e4 89 mov a,$89 +1902: f0 06 beq $190a +1904: 3f c8 17 call $17c8 +1907: 73 07 16 bbc3 $07,$1920 +190a: f5 27 06 mov a,$0627+x +190d: 30 0d bmi $191c +190f: fd mov y,a +1910: 7d mov a,x +1911: 08 80 or a,#$80 +1913: 76 d0 00 cmp a,$00d0+y +1916: d0 04 bne $191c +1918: dd mov a,y +1919: 5d mov x,a +191a: 2f 51 bra $196d +191c: ab 89 inc $89 +191e: 72 07 clr3 $07 +1920: e8 ff mov a,#$ff +1922: d5 27 06 mov $0627+x,a +1925: f5 b2 02 mov a,$02b2+x +1928: c4 50 mov $50,a +192a: f5 eb 05 mov a,$05eb+x +192d: c4 0a mov $0a,a +192f: f5 13 06 mov a,$0613+x +1932: c4 4f mov $4f,a +1934: f5 ff 05 mov a,$05ff+x +1937: 5d mov x,a +1938: f5 f8 17 mov a,$17f8+x +193b: c4 51 mov $51,a +193d: f5 7a 03 mov a,$037a+x +1940: 28 01 and a,#$01 +1942: d0 24 bne $1968 +1944: 3f 5b 0e call $0e5b +1947: 30 1f bmi $1968 +1949: f5 7a 03 mov a,$037a+x +194c: 28 fd and a,#$fd +194e: b3 0a 02 bbc5 $0a,$1953 +1951: 08 02 or a,#$02 +1953: d5 7a 03 mov $037a+x,a +1956: d3 0a 12 bbc6 $0a,$196b +1959: 7d mov a,x +195a: 53 0a 03 bbc2 $0a,$1960 +195d: bc inc a +195e: 2f 01 bra $1961 +1960: 9c dec a +1961: 28 07 and a,#$07 +1963: d5 ff 05 mov $05ff+x,a +1966: 2f 03 bra $196b +1968: 5f 36 1a jmp $1a36 + +196b: 7d mov a,x +196c: fd mov y,a +196d: f8 88 mov x,$88 +196f: d5 27 06 mov $0627+x,a +1972: 7d mov a,x +1973: 08 80 or a,#$80 +1975: d6 d0 00 mov $00d0+y,a +1978: e4 89 mov a,$89 +197a: f0 00 beq $197c +197c: cb c8 mov $c8,y +197e: e8 01 mov a,#$01 +1980: d6 6c 00 mov $006c+y,a +1983: f5 b2 02 mov a,$02b2+x +1986: d6 11 00 mov $0011+y,a +1989: dd mov a,y +198a: 1c asl a +198b: fd mov y,a +198c: f5 ee 02 mov a,$02ee+x +198f: d6 5b 01 mov $015b+y,a +1992: f5 02 03 mov a,$0302+x +1995: d6 5c 01 mov $015c+y,a +1998: f5 76 02 mov a,$0276+x +199b: 8d 14 mov y,#$14 +199d: cf mul ya +199e: 80 setc +199f: a8 84 sbc a,#$84 +19a1: c4 4c mov $4c,a +19a3: dd mov a,y +19a4: a8 03 sbc a,#$03 +19a6: c4 4d mov $4d,a +19a8: f5 da 02 mov a,$02da+x +19ab: fd mov y,a +19ac: f5 c6 02 mov a,$02c6+x +19af: 7a 4c addw ya,$4c +19b1: da 4c movw $4c,ya +19b3: f5 4f 06 mov a,$064f+x +19b6: fd mov y,a +19b7: f5 3b 06 mov a,$063b+x +19ba: 7a 4c addw ya,$4c +19bc: 7a 5d addw ya,$5d +19be: da 4c movw $4c,ya +19c0: f5 77 06 mov a,$0677+x +19c3: fd mov y,a +19c4: f5 63 06 mov a,$0663+x +19c7: 7a 4c addw ya,$4c +19c9: dd mov a,y +19ca: eb 89 mov y,$89 +19cc: d0 13 bne $19e1 +19ce: c4 30 mov $30,a +19d0: fa 4c 2f mov ($2f),($4c) +19d3: 8f d4 00 mov $00,#$d4 +19d6: 8f fc 01 mov $01,#$fc +19d9: 7d mov a,x +19da: 08 80 or a,#$80 +19dc: 3f f3 1d call $1df3 +19df: 2f 55 bra $1a36 +19e1: f5 c3 05 mov a,$05c3+x +19e4: 10 02 bpl $19e8 +19e6: e8 7f mov a,#$7f +19e8: c4 c9 mov $c9,a +19ea: e4 c8 mov a,$c8 +19ec: 1c asl a +19ed: fd mov y,a +19ee: e8 00 mov a,#$00 +19f0: 12 07 clr0 $07 +19f2: d6 d8 00 mov $00d8+y,a +19f5: d6 d9 00 mov $00d9+y,a +19f8: e4 c8 mov a,$c8 +19fa: fd mov y,a +19fb: f6 46 02 mov a,$0246+y +19fe: 08 02 or a,#$02 +1a00: d6 46 02 mov $0246+y,a +1a03: e8 ff mov a,#$ff +1a05: d6 92 03 mov $0392+y,a +1a08: f5 9e 02 mov a,$029e+x +1a0b: d6 9a 03 mov $039a+y,a +1a0e: f5 16 03 mov a,$0316+x +1a11: c4 0e mov $0e,a +1a13: f5 62 02 mov a,$0262+x +1a16: c5 3d 02 mov $023d,a +1a19: f5 3e 03 mov a,$033e+x +1a1c: c4 0d mov $0d,a +1a1e: f5 52 03 mov a,$0352+x +1a21: c4 10 mov $10,a +1a23: f5 2a 03 mov a,$032a+x +1a26: c4 0f mov $0f,a +1a28: eb c9 mov y,$c9 +1a2a: f5 8a 02 mov a,$028a+x +1a2d: cf mul ya +1a2e: f5 d7 05 mov a,$05d7+x +1a31: f8 c8 mov x,$c8 +1a33: 3f cd 0e call $0ecd +1a36: ab 89 inc $89 +1a38: 72 07 clr3 $07 +1a3a: 6f ret + +1a3b: 3f 99 0b call $0b99 +1a3e: f8 88 mov x,$88 +1a40: f4 8c mov a,$8c+x +1a42: c5 4b 1a mov $1a4b,a +1a45: f4 a0 mov a,$a0+x +1a47: c5 4c 1a mov $1a4c,a +1a4a: e5 86 dc mov a,$dc86 +1a4d: bb 8c inc $8c+x +1a4f: d0 02 bne $1a53 +1a51: bb a0 inc $a0+x +1a53: 6f ret + +; vcmd e9 - set effects mask +1a54: 3f 3b 1a call $1a3b +1a57: c4 0b mov $0b,a +1a59: 2f 09 bra $1a64 + +; vcmd e6 - set standard allocation +1a5b: e8 08 mov a,#$08 +1a5d: d5 eb 05 mov $05eb+x,a +1a60: 7d mov a,x +1a61: d5 ff 05 mov $05ff+x,a +1a64: 5f 6b 18 jmp $186b + +; vcmd e5 - set channel allocation +1a67: 3f 3b 1a call $1a3b +1a6a: d5 eb 05 mov $05eb+x,a +1a6d: 3f 3b 1a call $1a3b +1a70: d5 ff 05 mov $05ff+x,a +1a73: 3f 3b 1a call $1a3b +1a76: d5 13 06 mov $0613+x,a +1a79: 2f e9 bra $1a64 +1a7b: 3f c8 17 call $17c8 +1a7e: e8 00 mov a,#$00 +1a80: d5 66 03 mov $0366+x,a +1a83: 8b 86 dec $86 +1a85: 5f 31 17 jmp $1731 + +; vcmd f1 - delta expression +1a88: f5 c3 05 mov a,$05c3+x +1a8b: 3f 93 1a call $1a93 +1a8e: d5 c3 05 mov $05c3+x,a +1a91: 2f d1 bra $1a64 + +1a93: 4d push x +1a94: fd mov y,a +1a95: 6d push y +1a96: 3f 3b 1a call $1a3b +1a99: cf mul ya +1a9a: da 3b movw $3b,ya +1a9c: ee pop y +1a9d: 3f 3b 1a call $1a3b +1aa0: cf mul ya +1aa1: 6d push y +1aa2: 0b 3b asl $3b +1aa4: 84 3c adc a,$3c +1aa6: 5d mov x,a +1aa7: ae pop a +1aa8: 88 00 adc a,#$00 +1aaa: fd mov y,a +1aab: d0 03 bne $1ab0 +1aad: 7d mov a,x +1aae: 10 02 bpl $1ab2 +1ab0: e8 7f mov a,#$7f +1ab2: ce pop x +1ab3: 6f ret + +; vcmd f2 - absolute expression +1ab4: 3f 3b 1a call $1a3b +1ab7: d5 c3 05 mov $05c3+x,a +1aba: 5f 6b 18 jmp $186b + +1abd: 2d push a +1abe: 3f c8 17 call $17c8 +1ac1: ae pop a +1ac2: d4 b4 mov $b4+x,a +1ac4: 3f 1e 1c call $1c1e +1ac7: 5f 31 17 jmp $1731 + +; vcmd fd - set time (delay) - 64 +1aca: e8 40 mov a,#$40 +1acc: 2f f4 bra $1ac2 + +; vcmd f8 - set time (delay) - 32 +1ace: e8 20 mov a,#$20 +1ad0: 2f f0 bra $1ac2 + +; vcmd fe - set time (delay) - 128 +1ad2: e8 80 mov a,#$80 +1ad4: 2f ec bra $1ac2 + +; vcmd ff - set time (delay) - 256 +1ad6: e8 00 mov a,#$00 +1ad8: 2f e8 bra $1ac2 + +; vcmd f5 - set sound (instrument) +1ada: 3f 3b 1a call $1a3b +1add: d5 d7 05 mov $05d7+x,a +1ae0: f5 4e 02 mov a,$024e+x +1ae3: 68 05 cmp a,#$05 +1ae5: f0 2b beq $1b12 +1ae7: 3f eb 17 call $17eb +1aea: f6 68 fd mov a,$fd68+y +1aed: c4 00 mov $00,a +1aef: f6 04 fd mov a,$fd04+y +1af2: c4 01 mov $01,a +1af4: f6 04 fc mov a,$fc04+y +1af7: 8d 09 mov y,#$09 +1af9: 77 00 cmp a,($00)+y +1afb: 90 02 bcc $1aff +1afd: e8 00 mov a,#$00 +1aff: bc inc a +1b00: eb 02 mov y,$02 +1b02: d6 04 fc mov $fc04+y,a +1b05: 60 clrc +1b06: 88 09 adc a,#$09 +1b08: fd mov y,a +1b09: f7 00 mov a,($00)+y +1b0b: 68 ff cmp a,#$ff +1b0d: f0 03 beq $1b12 +1b0f: d5 d7 05 mov $05d7+x,a +1b12: 5f 6b 18 jmp $186b + +; vcmd f6 - play phrase +1b15: f5 4e 02 mov a,$024e+x +1b18: 9c dec a +1b19: d5 4e 02 mov $024e+x,a +1b1c: 3f eb 17 call $17eb +1b1f: f4 8c mov a,$8c+x +1b21: d6 68 fd mov $fd68+y,a +1b24: f4 a0 mov a,$a0+x +1b26: d6 04 fd mov $fd04+y,a +1b29: e8 00 mov a,#$00 +1b2b: d6 68 fc mov $fc68+y,a +1b2e: 3f 3b 1a call $1a3b +1b31: 2d push a +1b32: 3f 40 1a call $1a40 +1b35: 2d push a +1b36: 3f 40 1a call $1a40 +1b39: 3f 40 1a call $1a40 +1b3c: 3f 40 1a call $1a40 +1b3f: 3f 40 1a call $1a40 +1b42: fd mov y,a +1b43: 3f 40 1a call $1a40 +1b46: 2d push a +1b47: dd mov a,y +1b48: 60 clrc +1b49: 95 3b 06 adc a,$063b+x +1b4c: d5 3b 06 mov $063b+x,a +1b4f: ae pop a +1b50: 95 4f 06 adc a,$064f+x +1b53: d5 4f 06 mov $064f+x,a +1b56: f5 c3 05 mov a,$05c3+x +1b59: eb 02 mov y,$02 +1b5b: d6 00 fe mov $fe00+y,a +1b5e: 3f 93 1a call $1a93 +1b61: d5 c3 05 mov $05c3+x,a +1b64: eb 02 mov y,$02 +1b66: e8 00 mov a,#$00 +1b68: d6 04 fc mov $fc04+y,a +1b6b: ae pop a +1b6c: d4 a0 mov $a0+x,a +1b6e: ae pop a +1b6f: d4 8c mov $8c+x,a +1b71: 5f 6b 18 jmp $186b + +1b74: eb 02 mov y,$02 +1b76: f6 68 fc mov a,$fc68+y +1b79: bc inc a +1b7a: d6 68 fc mov $fc68+y,a +1b7d: 8d 04 mov y,#$04 +1b7f: f7 00 mov a,($00)+y +1b81: f0 07 beq $1b8a +1b83: eb 02 mov y,$02 +1b85: 76 68 fc cmp a,$fc68+y +1b88: f0 0f beq $1b99 +1b8a: 8d 00 mov y,#$00 +1b8c: f7 00 mov a,($00)+y +1b8e: d4 8c mov $8c+x,a +1b90: 8d 01 mov y,#$01 +1b92: f7 00 mov a,($00)+y +1b94: d4 a0 mov $a0+x,a +1b96: 5f 92 18 jmp $1892 + +1b99: f5 3b 06 mov a,$063b+x +1b9c: 80 setc +1b9d: 8d 05 mov y,#$05 +1b9f: b7 00 sbc a,($00)+y +1ba1: d5 3b 06 mov $063b+x,a +1ba4: f5 4f 06 mov a,$064f+x +1ba7: 8d 06 mov y,#$06 +1ba9: b7 00 sbc a,($00)+y +1bab: d5 4f 06 mov $064f+x,a +1bae: eb 02 mov y,$02 +1bb0: f6 00 fe mov a,$fe00+y +1bb3: d5 c3 05 mov $05c3+x,a +1bb6: e4 00 mov a,$00 +1bb8: 60 clrc +1bb9: 88 0a adc a,#$0a +1bbb: d4 8c mov $8c+x,a +1bbd: e4 01 mov a,$01 +1bbf: 88 00 adc a,#$00 +1bc1: d4 a0 mov $a0+x,a +1bc3: 8d 09 mov y,#$09 +1bc5: f7 00 mov a,($00)+y +1bc7: 60 clrc +1bc8: 94 8c adc a,$8c+x +1bca: d4 8c mov $8c+x,a +1bcc: f4 a0 mov a,$a0+x +1bce: 88 00 adc a,#$00 +1bd0: d4 a0 mov $a0+x,a +1bd2: f5 4e 02 mov a,$024e+x +1bd5: bc inc a +1bd6: d5 4e 02 mov $024e+x,a +1bd9: 5f 6b 18 jmp $186b + +; vcmd f0 - end of sequence +1bdc: 3f c8 17 call $17c8 +1bdf: 2f 03 bra $1be4 + +; vcmd f9 - go to loop +1be1: 3f 06 1d call $1d06 +1be4: 5f 6b 18 jmp $186b + +; vcmd fa - set tempo +1be7: 3f 3b 1a call $1a3b +1bea: c4 cb mov $cb,a +1bec: 2f f6 bra $1be4 + +; vcmd fb - set panning +1bee: 3f 3b 1a call $1a3b +1bf1: d5 9e 02 mov $029e+x,a +1bf4: 2f ee bra $1be4 + +; vcmd e0 - set hardware detune +1bf6: 3f 3b 1a call $1a3b +1bf9: d5 ee 02 mov $02ee+x,a +1bfc: 3f 3b 1a call $1a3b +1bff: d5 02 03 mov $0302+x,a +1c02: 2f e0 bra $1be4 + +; vcmd f3 - set priority +1c04: 3f 3b 1a call $1a3b +1c07: d5 b2 02 mov $02b2+x,a +1c0a: c2 07 set6 $07 +1c0c: 2f d6 bra $1be4 + +; vcmd f4 - set tied note +1c0e: 3f 3b 1a call $1a3b +1c11: d5 8a 02 mov $028a+x,a +1c14: 2f ce bra $1be4 + +; vcmd fc - set no retrigger +1c16: 62 07 set3 $07 +1c18: 2f ca bra $1be4 + +1c1a: e2 07 set7 $07 +1c1c: 2f c6 bra $1be4 + +1c1e: e8 02 mov a,#$02 +1c20: d5 66 03 mov $0366+x,a +1c23: 6f ret + +1c24: e8 08 mov a,#$08 +1c26: d5 66 03 mov $0366+x,a +1c29: 6f ret + +1c2a: 78 80 ca cmp $ca,#$80 +1c2d: 90 08 bcc $1c37 +1c2f: 60 clrc +1c30: 84 ca adc a,$ca +1c32: 10 09 bpl $1c3d +1c34: e8 00 mov a,#$00 +1c36: 6f ret + +1c37: 84 ca adc a,$ca +1c39: 10 02 bpl $1c3d +1c3b: e8 7f mov a,#$7f +1c3d: 6f ret + +; vcmd e1 - set amplitude articulation +1c3e: 3f 3b 1a call $1a3b +1c41: d5 16 03 mov $0316+x,a +1c44: 2f 9e bra $1be4 + +; vcmd 00-0f - extended melody vectors +1c46: 3f 3b 1a call $1a3b +1c49: d5 62 02 mov $0262+x,a +1c4c: 2f 96 bra $1be4 + +; vcmd e2 - set stereo articulation +1c4e: 3f 3b 1a call $1a3b +1c51: d5 52 03 mov $0352+x,a +1c54: 2f 8e bra $1be4 + +; vcmd e4 - set pitch articulation +1c56: 3f 3b 1a call $1a3b +1c59: d5 2a 03 mov $032a+x,a +1c5c: 2f f6 bra $1c54 + +; vcmd e3 - set tone articulation +1c5e: 3f 3b 1a call $1a3b +1c61: d5 3e 03 mov $033e+x,a +1c64: 2f ee bra $1c54 + +; vcmd e7 - reset track +1c66: 3f 25 1d call $1d25 +1c69: 2f e9 bra $1c54 + +; vcmd f7 - set detune +1c6b: 3f 3b 1a call $1a3b +1c6e: d5 63 06 mov $0663+x,a +1c71: 3f 3b 1a call $1a3b +1c74: d5 77 06 mov $0677+x,a +1c77: 2f db bra $1c54 + +; vcmd table (e0-ff) +1c79: dw $1bf6 ; e0 - set hardware detune +1c7b: dw $1c3e ; e1 - set amplitude articulation +1c7d: dw $1c4e ; e2 - set stereo articulation +1c7f: dw $1c5e ; e3 - set tone articulation +1c81: dw $1c56 ; e4 - set pitch articulation +1c83: dw $1a67 ; e5 - set channel allocation +1c85: dw $1a5b ; e6 - set standard allocation +1c87: dw $1c66 ; e7 - reset track +1c89: dw $0000 ; e8 - redirect track (disabled) +1c8b: dw $1a54 ; e9 - set effects mask +1c8d: dw $1bdc ; ea - set release +1c8f: dw $1772 ; eb - set pitch bend state +1c91: dw $176f ; ec - set pitch bend state and release +1c93: dw $1c0e ; ed - set velocity +1c95: dw $1cbb ; ee - extended command +1c97: dw $18d6 ; ef - play absolute note +1c99: dw $1a7b ; f0 - end of sequence +1c9b: dw $1a88 ; f1 - delta expression +1c9d: dw $1ab4 ; f2 - absolute expression +1c9f: dw $1c04 ; f3 - set priority +1ca1: dw $1c1a ; f4 - set tied note +1ca3: dw $1ada ; f5 - set sound (instrument) +1ca5: dw $1b15 ; f6 - play phrase +1ca7: dw $1c6b ; f7 - set detune +1ca9: dw $1ace ; f8 - set time (delay) - 32 +1cab: dw $1be1 ; f9 - go to loop +1cad: dw $1be7 ; fa - set tempo +1caf: dw $1bee ; fb - set panning +1cb1: dw $1c16 ; fc - set no retrigger +1cb3: dw $1aca ; fd - set time (delay) - 64 +1cb5: dw $1ad2 ; fe - set time (delay) - 128 +1cb7: dw $1ad6 ; ff - set time (delay) - 256 +1cb9: dw $1c46 ; 00-0f - extended melody vectors + +1cbb: 3f 3b 1a call $1a3b +1cbe: dd mov a,y +1cbf: 1c asl a +1cc0: fd mov y,a +1cc1: f6 b9 1c mov a,$1cb9+y +1cc4: c5 d0 1c mov $1cd0,a +1cc7: f6 ba 1c mov a,$1cba+y +1cca: c5 d1 1c mov $1cd1,a +1ccd: eb 3b mov y,$3b +1ccf: 5f cf 1c jmp $1ccf + +1cd2: 2d push a +1cd3: 3f 22 0d call $0d22 +1cd6: ae pop a +1cd7: 92 07 clr4 $07 +1cd9: 8d 1a mov y,#$1a +1cdb: 3f 2c 10 call $102c +1cde: da 8a movw $8a,ya +1ce0: 8d 00 mov y,#$00 +1ce2: f7 8a mov a,($8a)+y +1ce4: c4 85 mov $85,a +1ce6: c4 86 mov $86,a +1ce8: f0 1b beq $1d05 +1cea: cb 88 mov $88,y +1cec: 3f 06 1d call $1d06 +1cef: ab 88 inc $88 +1cf1: e8 00 mov a,#$00 +1cf3: d3 08 02 bbc6 $08,$1cf8 +1cf6: e8 01 mov a,#$01 +1cf8: f8 88 mov x,$88 +1cfa: 35 7a 03 and a,$037a+x +1cfd: d5 7a 03 mov $037a+x,a +1d00: 69 85 88 cmp ($88),($85) +1d03: d0 e7 bne $1cec +1d05: 6f ret + +1d06: e4 88 mov a,$88 +1d08: 5d mov x,a +1d09: 1c asl a +1d0a: bc inc a +1d0b: fd mov y,a +1d0c: f7 8a mov a,($8a)+y +1d0e: d4 8c mov $8c+x,a +1d10: fc inc y +1d11: f7 8a mov a,($8a)+y +1d13: d4 a0 mov $a0+x,a +1d15: e8 ff mov a,#$ff +1d17: c4 cc mov $cc,a +1d19: c4 0b mov $0b,a +1d1b: e8 05 mov a,#$05 +1d1d: d5 4e 02 mov $024e+x,a +1d20: e8 04 mov a,#$04 +1d22: d5 66 03 mov $0366+x,a +1d25: 72 07 clr3 $07 +1d27: f2 07 clr7 $07 +1d29: f8 88 mov x,$88 +1d2b: e8 08 mov a,#$08 +1d2d: d5 eb 05 mov $05eb+x,a +1d30: 7d mov a,x +1d31: d5 ff 05 mov $05ff+x,a +1d34: e8 00 mov a,#$00 +1d36: d5 76 02 mov $0276+x,a +1d39: d5 c6 02 mov $02c6+x,a +1d3c: d5 da 02 mov $02da+x,a +1d3f: d5 3b 06 mov $063b+x,a +1d42: d5 4f 06 mov $064f+x,a +1d45: d5 63 06 mov $0663+x,a +1d48: d5 77 06 mov $0677+x,a +1d4b: d5 ee 02 mov $02ee+x,a +1d4e: d5 02 03 mov $0302+x,a +1d51: d5 16 03 mov $0316+x,a +1d54: d5 62 02 mov $0262+x,a +1d57: d5 52 03 mov $0352+x,a +1d5a: d5 3e 03 mov $033e+x,a +1d5d: d5 2a 03 mov $032a+x,a +1d60: d5 9e 02 mov $029e+x,a +1d63: 9c dec a +1d64: d5 27 06 mov $0627+x,a +1d67: d5 8a 02 mov $028a+x,a +1d6a: e8 40 mov a,#$40 +1d6c: d5 b2 02 mov $02b2+x,a +1d6f: e8 7f mov a,#$7f +1d71: d5 c3 05 mov $05c3+x,a +1d74: c2 07 set6 $07 +1d76: 8f 6c 00 mov $00,#$6c +1d79: 8f 00 01 mov $01,#$00 +1d7c: 7d mov a,x +1d7d: 08 80 or a,#$80 +1d7f: 8d 00 mov y,#$00 +1d81: 5f c2 1d jmp $1dc2 + +1d84: c4 5b mov $5b,a +1d86: 6f ret + +1d87: c4 5c mov $5c,a +1d89: 6f ret + +1d8a: da 5d movw $5d,ya +1d8c: 6f ret + +1d8d: da 2f movw $2f,ya +1d8f: 6f ret + +1d90: c4 fb mov $fb,a +1d92: 6f ret + +1d93: 28 7f and a,#$7f +1d95: c5 3e 02 mov $023e,a +1d98: 6f ret + +1d99: 12 08 clr0 $08 +1d9b: c5 06 01 mov $0106,a +1d9e: 68 ff cmp a,#$ff +1da0: f0 02 beq $1da4 +1da2: 02 08 set0 $08 +1da4: 6f ret + +1da5: c5 3f 02 mov $023f,a +1da8: 6f ret + +1da9: c5 40 02 mov $0240,a +1dac: 6f ret + +1dad: c5 41 02 mov $0241,a +1db0: cc 42 02 mov $0242,y +1db3: 6f ret + +1db4: 8f 9a 00 mov $00,#$9a +1db7: 8f 03 01 mov $01,#$03 +1dba: 2f 06 bra $1dc2 +1dbc: 8f 92 00 mov $00,#$92 +1dbf: 8f 03 01 mov $01,#$03 +1dc2: c4 3b mov $3b,a +1dc4: dd mov a,y +1dc5: 5d mov x,a +1dc6: e8 07 mov a,#$07 +1dc8: fd mov y,a +1dc9: f6 d0 00 mov a,$00d0+y +1dcc: 2e 3b 03 cbne $3b,$1dd2 +1dcf: 7d mov a,x +1dd0: d7 00 mov ($00)+y,a +1dd2: dc dec y +1dd3: 10 f4 bpl $1dc9 +1dd5: 6f ret + +1dd6: 28 7f and a,#$7f +1dd8: c4 3b mov $3b,a +1dda: cd 07 mov x,#$07 +1ddc: f4 d0 mov a,$d0+x +1dde: 2e 3b 08 cbne $3b,$1de9 +1de1: f5 46 02 mov a,$0246+x +1de4: 08 03 or a,#$03 +1de6: d5 46 02 mov $0246+x,a +1de9: 1d dec x +1dea: 10 f0 bpl $1ddc +1dec: 6f ret + +1ded: 8f d8 00 mov $00,#$d8 +1df0: 8f 00 01 mov $01,#$00 +1df3: c4 3b mov $3b,a +1df5: e8 0f mov a,#$0f +1df7: fd mov y,a +1df8: e8 07 mov a,#$07 +1dfa: 5d mov x,a +1dfb: f4 d0 mov a,$d0+x +1dfd: 2e 3b 0a cbne $3b,$1e0a +1e00: e4 30 mov a,$30 +1e02: d7 00 mov ($00)+y,a +1e04: dc dec y +1e05: e4 2f mov a,$2f +1e07: d7 00 mov ($00)+y,a +1e09: fc inc y +1e0a: dc dec y +1e0b: dc dec y +1e0c: 1d dec x +1e0d: 10 ec bpl $1dfb +1e0f: 6f ret + +1e10: 5d mov x,a +1e11: e8 01 mov a,#$01 +1e13: 15 7a 03 or a,$037a+x +1e16: d5 7a 03 mov $037a+x,a +1e19: 6f ret + +1e1a: 5d mov x,a +1e1b: e8 fe mov a,#$fe +1e1d: 35 7a 03 and a,$037a+x +1e20: 2f f4 bra $1e16 + +1e22: dw $2e,$03,$03,$d2,$08,$6f,$c2,$08,$6f,$eb,$09,$c4,$09,$dd,$f3,$08,$05,$8d,$00,$3f,$24,$0d,$e2,$08,$6f,$31,$17,$61,$17,$6b,$18,$00,$18,$59,$17,$b4,$0c,$e8,$0c,$ed,$0c,$d9,$0c,$d6,$1d,$00,$00,$8c,$07,$73,$0d,$c7,$0c,$c1,$0c,$bd,$0c,$2b,$1e,$22,$0d,$24,$0d,$00,$00,$00,$00,$00,$00,$78,$0d,$e5,$0c,$84,$1d,$90,$1d,$8a,$1d,$87,$1d,$ad,$1d,$93,$1d,$a5,$1d,$bc,$1d,$8d,$1d,$ed,$1d,$a9,$1d,$b4,$1d,$99,$1d,$10,$1e,$1a,$1e,$22,$1e,$88,$07,$3b,$20 + +; uncompiled source code +1e8f: db $41,$20,$68,$61,$73,$20,$74,$72,$61,$63,$6b,$20,$6e,$75,$6d,$62,$65,$72,$20,$2d,$20,$4e,$4f,$20,$65,$72,$72,$6f,$72,$20,$63,$68,$65,$63,$6b,$69,$6e,$67,$20,$69,$73,$20,$64,$6f,$6e,$65,$0d,$0a,$0d,$0a,$44,$6f,$4d,$75,$74,$65,$54,$72,$61,$63,$6b,$0d,$0a,$20,$20,$20,$20,$6d,$6f \ No newline at end of file diff --git a/snes/Sculptured Software/Super Star Wars - The Empire Strikes Back ($0700).bin b/snes/Sculptured Software/Super Star Wars - The Empire Strikes Back ($0700).bin new file mode 100644 index 00000000..b01281c2 Binary files /dev/null and b/snes/Sculptured Software/Super Star Wars - The Empire Strikes Back ($0700).bin differ diff --git a/snes/Sculptured Software/Super Star Wars - The Empire Strikes Back.s b/snes/Sculptured Software/Super Star Wars - The Empire Strikes Back.s new file mode 100644 index 00000000..68443139 --- /dev/null +++ b/snes/Sculptured Software/Super Star Wars - The Empire Strikes Back.s @@ -0,0 +1,2039 @@ +0700: 20 clrp +0701: cd ff mov x,#$ff ; set stack pointer +0703: bd mov sp,x +0704: 8f b0 f1 mov $f1,#$b0 ; clear input ports APUI00-APUI04 +0707: 8f 20 fa mov $fa,#$20 +070a: 8f 81 f1 mov $f1,#$81 ; toggle timer 2 +070d: 3f ca 0e call $0eca ; clear/reset routine +0710: 8f 00 13 mov $13,#$00 +0713: 8f 1a 14 mov $14,#$1a +0716: 8d 03 mov y,#$03 ; set temporary storage +0718: f6 00 00 mov a,$0000+y +071b: 16 22 07 or a,$0722+y +071e: d6 00 00 mov $0000+y,a +0721: fe f5 dbnz y,$0718 +0723: ab 1d inc $1d +0725: e4 23 mov a,$23 +0727: d0 05 bne $072e +0729: 3f 54 18 call $1854 ; do a random number generator (RNG) +072c: 2f 03 bra $0731 +072e: 3f 51 08 call $0851 +0731: e4 f6 mov a,$f6 +0733: f0 03 beq $0738 +0735: 3f 86 0b call $0b86 +0738: e4 fd mov a,$fd +073a: 60 clrc +073b: 84 1c adc a,$1c +073d: c4 1c mov $1c,a +073f: 68 05 cmp a,#$05 +0741: 90 ee bcc $0731 +0743: a8 05 sbc a,#$05 +0745: c4 1c mov $1c,a +0747: 68 14 cmp a,#$14 +0749: 90 d8 bcc $0723 +074b: 8f 00 1c mov $1c,#$00 +074e: 2f d3 bra $0723 +0750: 8d 00 mov y,#$00 +0752: 8f aa f4 mov $f4,#$aa +0755: 8f bb f5 mov $f5,#$bb +0758: f8 f4 mov x,$f4 +075a: c8 cc cmp x,#$cc +075c: d0 fa bne $0758 +075e: fa f6 04 mov ($04),($f6) +0761: fa f7 05 mov ($05),($f7) +0764: 7d mov a,x +0765: f8 f5 mov x,$f5 +0767: c4 f4 mov $f4,a +0769: d0 05 bne $0770 +076b: d8 f5 mov $f5,x +076d: 1f 04 00 jmp ($0004+x) + +0770: cd 00 mov x,#$00 +0772: 3e f4 cmp x,$f4 +0774: d0 fc bne $0772 +0776: e4 f5 mov a,$f5 +0778: d8 f4 mov $f4,x +077a: d7 04 mov ($04)+y,a +077c: 3a 04 incw $04 +077e: 3e f4 cmp x,$f4 +0780: f0 fc beq $077e +0782: 3d inc x +0783: 3e f4 cmp x,$f4 +0785: f0 ef beq $0776 +0787: f8 f4 mov x,$f4 +0789: 2f d3 bra $075e +078b: 3f ca 0e call $0eca +078e: 8f b0 f1 mov $f1,#$b0 +0791: cd 00 mov x,#$00 +0793: f5 50 07 mov a,$0750+x +0796: d5 00 01 mov $0100+x,a +0799: 3d inc x +079a: c8 3b cmp x,#$3b +079c: 90 f5 bcc $0793 +079e: 5f 00 01 jmp $0100 + +; gain tables +07a1: db $ff,$d6,$a0,$80,$6b,$50,$40,$36,$28,$20,$1b,$14,$10,$0e,$0b,$08 +07b1: db $06,$05,$04,$03,$02,$01,$1d,$1c,$1b,$1a,$19,$18,$17,$16,$15,$14,$13,$12,$11,$10,$0f,$0e,$0d,$0c,$0a,$09,$06,$00 + +; DSP registers: VxENVX +07cd: db $08,$18,$28,$38,$48,$58,$68,$78 +; DSP registers: VxGAIN +07d5: db $07,$17,$27,$37,$47,$57,$67,$77 +; DSP registers: VxSCRN (select sample) +07dd: db $04,$14,$24,$34,$44,$54,$64,$74 +; DSP registers: VxPITCHL +07e5: db $02,$12,$22,$32,$42,$52,$62,$72 +; DSP registers: VxVOLL +07ed: db $00,$10,$20,$30,$40,$50,$60,$70 + +; voice numbers and bits for clearing those void bits +07f5: db $01,$02,$04,$08,$10,$20,$40,$80,$fe,$fd,$fb,$f7,$ef,$df,$bf,$7f + +; echo poke registers +0805: db $7d,$2c,$3c,$0d,$0f,$1f,$2f,$3f,$4f,$5f,$6f,$7f + +0811: db $02,$02,$02,$02,$02,$03,$03,$03 +0819: db $9e,$b3,$c8,$dd,$f2,$07,$1c,$31 + +0821: db $03,$03,$03,$03,$03,$03,$03,$03 +0829: db $46,$5b,$70,$85,$9a,$af,$c4,$d9 + +0831: db $03,$04,$04,$04,$04,$04,$04,$04 +0839: db $ee,$03,$18,$2d,$42,$57,$6c,$81 + +0841: db $04,$04,$04,$04,$04,$05,$05,$05 +0849: db $96,$ac,$c2,$d8,$ee,$04,$1a,$30 + +0849: 96 ac c2 adc a,$c2ac+y +084c: d8 ee mov $ee,x +084e: 04 1a or a,$1a +0850: 30 3f bmi $0891 +0852: 54 18 eor a,$18+x +0854: 3f 86 0b call $0b86 +0857: e5 00 02 mov a,$0200 +085a: f0 09 beq $0865 +085c: 60 clrc +085d: 85 01 02 adc a,$0201 +0860: c5 01 02 mov $0201,a +0863: 90 06 bcc $086b +0865: 3f 37 14 call $1437 +0868: 3f 86 0b call $0b86 +086b: 8f 00 37 mov $37,#$00 +086e: 8f 00 4c mov $4c,#$00 +0871: 8f 7c f2 mov $f2,#$7c ; clear end of sample flags? +0874: e4 f3 mov a,$f3 +0876: 04 49 or a,$49 +0878: 24 4f and a,$4f +087a: c4 49 mov $49,a +087c: 8f 00 f3 mov $f3,#$00 +087f: 24 4a and a,$4a +0881: 04 4b or a,$4b +0883: c4 4b mov $4b,a +0885: cd 07 mov x,#$07 +0887: 8f 81 15 mov $15,#$81 +088a: 8f 04 16 mov $16,#$04 +088d: 3f 75 0b call $0b75 +0890: d8 17 mov $17,x +0892: f5 f5 07 mov a,$07f5+x ; clear voice number bits +0895: c4 39 mov $39,a +0897: 48 ff eor a,#$ff +0899: c4 3a mov $3a,a +089b: f4 5b mov a,$5b+x +089d: 28 02 and a,#$02 +089f: c4 38 mov $38,a +08a1: d0 06 bne $08a9 +08a3: f5 7e 02 mov a,$027e+x +08a6: 5f ae 08 jmp $08ae + +08a9: 3f 08 10 call $1008 +08ac: f8 17 mov x,$17 +08ae: 75 86 02 cmp a,$0286+x +08b1: d0 10 bne $08c3 +08b3: 3f a2 11 call $11a2 +08b6: 3f 5b 0b call $0b5b +08b9: e4 50 mov a,$50 +08bb: 24 4d and a,$4d +08bd: 24 39 and a,$39 +08bf: d0 43 bne $0904 +08c1: f0 44 beq $0907 +08c3: d5 86 02 mov $0286+x,a +08c6: 09 39 37 or ($37),($39) +08c9: 3f a2 11 call $11a2 +08cc: 7d mov a,x +08cd: 1c asl a +08ce: 5d mov x,a +08cf: e4 51 mov a,$51 +08d1: d5 8e 02 mov $028e+x,a +08d4: e4 52 mov a,$52 +08d6: d5 8f 02 mov $028f+x,a +08d9: f8 17 mov x,$17 +08db: e4 53 mov a,$53 +08dd: 28 20 and a,#$20 +08df: f0 05 beq $08e6 +08e1: 29 3a 4a and ($4a),($3a) +08e4: 2f 03 bra $08e9 +08e6: 09 39 4a or ($4a),($39) +08e9: e4 53 mov a,$53 +08eb: 28 40 and a,#$40 +08ed: f0 05 beq $08f4 +08ef: 09 39 50 or ($50),($39) +08f2: 2f 03 bra $08f7 +08f4: 29 3a 50 and ($50),($3a) +08f7: 3f 5b 0b call $0b5b +08fa: e4 50 mov a,$50 +08fc: 04 4d or a,$4d +08fe: 24 39 and a,$39 +0900: d0 02 bne $0904 +0902: f0 03 beq $0907 +0904: 09 39 4c or ($4c),($39) +0907: 1d dec x +0908: 30 0a bmi $0914 +090a: 80 setc +090b: b8 15 15 sbc $15,#$15 +090e: b8 00 16 sbc $16,#$00 +0911: 5f 8d 08 jmp $088d + +0914: e4 4d mov a,$4d +0916: 24 4b and a,$4b +0918: 04 4c or a,$4c +091a: c4 4e mov $4e,a +091c: 8f 5c f2 mov $f2,#$5c +091f: c4 f3 mov $f3,a +0921: cd 07 mov x,#$07 +0923: 8f 30 15 mov $15,#$30 +0926: 8f 05 16 mov $16,#$05 +0929: 8f 00 3c mov $3c,#$00 +092c: 3f 75 0b call $0b75 +092f: d8 17 mov $17,x +0931: e4 5a mov a,$5a +0933: d0 13 bne $0948 +0935: f4 5b mov a,$5b+x +0937: 28 08 and a,#$08 +0939: c4 3c mov $3c,a +093b: d0 06 bne $0943 +093d: f5 76 02 mov a,$0276+x +0940: 5f 48 09 jmp $0948 + +0943: 3f 08 10 call $1008 +0946: f8 17 mov x,$17 +0948: fd mov y,a +0949: f5 6e 02 mov a,$026e+x +094c: c4 31 mov $31,a +094e: cf mul ya +094f: cd 64 mov x,#$64 +0951: 9e div ya,x +0952: f8 17 mov x,$17 +0954: eb 3c mov y,$3c +0956: f0 11 beq $0969 +0958: c4 2f mov $2f,a +095a: 8d 15 mov y,#$15 +095c: f7 15 mov a,($15)+y +095e: d0 04 bne $0964 +0960: e4 2f mov a,$2f +0962: 2f 05 bra $0969 +0964: e4 31 mov a,$31 +0966: 80 setc +0967: a4 2f sbc a,$2f +0969: c4 2f mov $2f,a +096b: f5 ed 07 mov a,$07ed+x +096e: fd mov y,a +096f: cb f2 mov $f2,y +0971: fa 2f f3 mov ($f3),($2f) +0974: e4 31 mov a,$31 +0976: 80 setc +0977: a4 2f sbc a,$2f +0979: fc inc y +097a: cb f2 mov $f2,y +097c: c4 f3 mov $f3,a +097e: 80 setc +097f: b8 16 15 sbc $15,#$16 +0982: b8 00 16 sbc $16,#$00 +0985: 1d dec x +0986: 30 03 bmi $098b +0988: 5f 2c 09 jmp $092c + +098b: cd 07 mov x,#$07 +098d: 8f d9 15 mov $15,#$d9 +0990: 8f 03 16 mov $16,#$03 +0993: 3f 75 0b call $0b75 +0996: d8 17 mov $17,x +0998: f4 5b mov a,$5b+x +099a: fd mov y,a +099b: 28 40 and a,#$40 +099d: 0d push psw +099e: dd mov a,y +099f: 28 04 and a,#$04 +09a1: 0d push psw +09a2: 7d mov a,x +09a3: fd mov y,a +09a4: 1c asl a +09a5: 5d mov x,a +09a6: f5 4f 02 mov a,$024f+x ; get base note +09a9: c4 36 mov $36,a +09ab: f5 4e 02 mov a,$024e+x +09ae: c4 35 mov $35,a +09b0: 8e pop psw +09b1: f0 11 beq $09c4 +09b3: 4d push x ; save word addressing +09b4: 3f 08 10 call $1008 ; advance pitch envelope +09b7: ce pop x ; restore pitch flag +09b8: 7a 35 addw ya,$35 +09ba: 80 setc +09bb: a8 b0 sbc a,#$b0 +09bd: c4 35 mov $35,a +09bf: dd mov a,y +09c0: a8 04 sbc a,#$04 +09c2: c4 36 mov $36,a +09c4: f5 8f 02 mov a,$028f+x +09c7: fd mov y,a +09c8: f5 8e 02 mov a,$028e+x +09cb: 7a 35 addw ya,$35 +09cd: 8e pop psw +09ce: d0 03 bne $09d3 +09d0: 3f cc 11 call $11cc ; translate note to frequency +09d3: f8 17 mov x,$17 +09d5: d5 5e 02 mov $025e+x,a +09d8: dd mov a,y +09d9: d5 66 02 mov $0266+x,a +09dc: 80 setc +09dd: b8 15 15 sbc $15,#$15 +09e0: b8 00 16 sbc $16,#$00 +09e3: 1d dec x +09e4: 10 ad bpl $0993 +09e6: 8f 5c f2 mov $f2,#$5c +09e9: 8f 00 f3 mov $f3,#$00 +09ec: cd 07 mov x,#$07 +09ee: 8f 31 15 mov $15,#$31 +09f1: 8f 03 16 mov $16,#$03 +09f4: 3f 75 0b call $0b75 +09f7: d8 17 mov $17,x +09f9: f5 f5 07 mov a,$07f5+x +09fc: c4 39 mov $39,a +09fe: 48 ff eor a,#$ff +0a00: c4 3a mov $3a,a +0a02: f4 5b mov a,$5b+x +0a04: 28 01 and a,#$01 +0a06: d0 06 bne $0a0e +0a08: f5 36 02 mov a,$0236+x +0a0b: 5f 13 0a jmp $0a13 + +0a0e: 3f 08 10 call $1008 +0a11: f8 17 mov x,$17 +0a13: 5c lsr a +0a14: d5 3e 02 mov $023e+x,a +0a17: fd mov y,a +0a18: e4 37 mov a,$37 +0a1a: 24 39 and a,$39 +0a1c: f0 0a beq $0a28 +0a1e: f5 dd 07 mov a,$07dd+x +0a21: c4 f2 mov $f2,a +0a23: f5 86 02 mov a,$0286+x +0a26: c4 f3 mov $f3,a +0a28: e4 48 mov a,$48 +0a2a: 24 39 and a,$39 +0a2c: f0 06 beq $0a34 +0a2e: 29 3a 48 and ($48),($3a) +0a31: 5c lsr a +0a32: 2f 35 bra $0a69 +0a34: f5 cd 07 mov a,$07cd+x +0a37: c4 f2 mov $f2,a +0a39: dd mov a,y +0a3a: 80 setc +0a3b: a4 f3 sbc a,$f3 +0a3d: b0 08 bcs $0a47 +0a3f: 8f 80 2a mov $2a,#$80 +0a42: 48 ff eor a,#$ff +0a44: bc inc a +0a45: 2f 03 bra $0a4a +0a47: 8f c0 2a mov $2a,#$c0 +0a4a: 5c lsr a +0a4b: d0 08 bne $0a55 +0a4d: ad 00 cmp y,#$00 +0a4f: d0 04 bne $0a55 +0a51: e8 82 mov a,#$82 +0a53: 2f 0e bra $0a63 +0a55: 8d 15 mov y,#$15 +0a57: 76 a1 07 cmp a,$07a1+y +0a5a: 90 02 bcc $0a5e +0a5c: fe f9 dbnz y,$0a57 +0a5e: f6 b7 07 mov a,$07b7+y +0a61: 04 2a or a,$2a +0a63: 75 46 02 cmp a,$0246+x +0a66: f0 0c beq $0a74 +0a68: fd mov y,a +0a69: f5 d5 07 mov a,$07d5+x +0a6c: c4 f2 mov $f2,a +0a6e: cb f3 mov $f3,y +0a70: dd mov a,y +0a71: d5 46 02 mov $0246+x,a +0a74: f5 e5 07 mov a,$07e5+x +0a77: c4 f2 mov $f2,a +0a79: fd mov y,a +0a7a: f5 5e 02 mov a,$025e+x +0a7d: c4 f3 mov $f3,a +0a7f: fc inc y +0a80: cb f2 mov $f2,y +0a82: f5 66 02 mov a,$0266+x +0a85: c4 f3 mov $f3,a +0a87: 80 setc +0a88: b8 15 15 sbc $15,#$15 +0a8b: b8 00 16 sbc $16,#$00 +0a8e: 1d dec x +0a8f: 30 03 bmi $0a94 +0a91: 5f f4 09 jmp $09f4 + +0a94: 8f 4c f2 mov $f2,#$4c +0a97: fa 4e f3 mov ($f3),($4e) +0a9a: e4 4e mov a,$4e +0a9c: 48 ff eor a,#$ff +0a9e: c4 4f mov $4f,a +0aa0: 29 4f 49 and ($49),($4f) +0aa3: 29 4f 4b and ($4b),($4f) +0aa6: 8f 00 4d mov $4d,#$00 +0aa9: 3f 86 0b call $0b86 +0aac: cd 07 mov x,#$07 +0aae: 8d 0e mov y,#$0e +0ab0: f5 0d 02 mov a,$020d+x +0ab3: f0 2b beq $0ae0 +0ab5: f4 5b mov a,$5b+x +0ab7: 28 80 and a,#$80 +0ab9: f0 09 beq $0ac4 +0abb: f5 f5 07 mov a,$07f5+x +0abe: 24 49 and a,$49 +0ac0: d0 19 bne $0adb +0ac2: 2f 1c bra $0ae0 +0ac4: f6 1e 02 mov a,$021e+y +0ac7: 80 setc +0ac8: a8 01 sbc a,#$01 +0aca: d6 1e 02 mov $021e+y,a +0acd: c4 2f mov $2f,a +0acf: f6 1f 02 mov a,$021f+y +0ad2: a8 00 sbc a,#$00 +0ad4: d6 1f 02 mov $021f+y,a +0ad7: 04 2f or a,$2f +0ad9: d0 05 bne $0ae0 +0adb: e8 00 mov a,#$00 +0add: d5 0d 02 mov $020d+x,a +0ae0: dc dec y +0ae1: dc dec y +0ae2: 1d dec x +0ae3: 10 cb bpl $0ab0 +0ae5: 3f 75 0b call $0b75 +0ae8: ec 07 02 mov y,$0207 +0aeb: f0 66 beq $0b53 +0aed: 8c 08 02 dec $0208 +0af0: d0 61 bne $0b53 +0af2: cc 08 02 mov $0208,y +0af5: e4 1e mov a,$1e +0af7: e9 09 02 mov x,$0209 +0afa: 30 0e bmi $0b0a +0afc: 60 clrc +0afd: 85 0a 02 adc a,$020a +0b00: b0 04 bcs $0b06 +0b02: 68 4b cmp a,#$4b +0b04: 90 13 bcc $0b19 +0b06: e8 4b mov a,#$4b +0b08: 2f 0a bra $0b14 +0b0a: 80 setc +0b0b: a5 0a 02 sbc a,$020a +0b0e: f0 04 beq $0b14 +0b10: b0 07 bcs $0b19 +0b12: e8 00 mov a,#$00 +0b14: 8d 00 mov y,#$00 +0b16: cc 07 02 mov $0207,y +0b19: c4 1e mov $1e,a +0b1b: 5d mov x,a +0b1c: 8f 2c f2 mov $f2,#$2c +0b1f: 65 0b 02 cmp a,$020b +0b22: 90 03 bcc $0b27 +0b24: e5 0b 02 mov a,$020b +0b27: c4 f3 mov $f3,a +0b29: 8f 3c f2 mov $f2,#$3c +0b2c: 7d mov a,x +0b2d: 65 0c 02 cmp a,$020c +0b30: 90 03 bcc $0b35 +0b32: e5 0b 02 mov a,$020b +0b35: c4 f3 mov $f3,a +0b37: 8f 0c f2 mov $f2,#$0c +0b3a: d8 f3 mov $f3,x +0b3c: 8f 1c f2 mov $f2,#$1c +0b3f: d8 f3 mov $f3,x +0b41: e5 07 02 mov a,$0207 +0b44: d0 0d bne $0b53 +0b46: e5 06 02 mov a,$0206 +0b49: f0 08 beq $0b53 +0b4b: 8f 00 64 mov $64,#$00 +0b4e: 8d 80 mov y,#$80 +0b50: 5f 52 0c jmp $0c52 + +0b53: e4 92 mov a,$92 +0b55: f0 03 beq $0b5a +0b57: 5f e0 17 jmp $17e0 + +0b5a: 6f ret + +0b5b: e4 53 mov a,$53 +0b5d: 10 0c bpl $0b6b +0b5f: 28 1f and a,#$1f +0b61: 8f 6c f2 mov $f2,#$6c +0b64: c4 f3 mov $f3,a +0b66: 09 39 55 or ($55),($39) +0b69: 2f 03 bra $0b6e +0b6b: 29 3a 55 and ($55),($3a) +0b6e: 8f 3d f2 mov $f2,#$3d +0b71: fa 55 f3 mov ($f3),($55) +0b74: 6f ret + +0b75: 4d push x +0b76: e4 f6 mov a,$f6 +0b78: f0 4c beq $0bc6 +0b7a: f8 f7 mov x,$f7 +0b7c: c8 1e cmp x,#$1e +0b7e: 90 46 bcc $0bc6 +0b80: c8 23 cmp x,#$23 +0b82: b0 42 bcs $0bc6 +0b84: 2f 05 bra $0b8b +0b86: 4d push x +0b87: e4 f6 mov a,$f6 +0b89: f0 3b beq $0bc6 +0b8b: e4 f6 mov a,$f6 +0b8d: 64 f6 cmp a,$f6 +0b8f: d0 fa bne $0b8b +0b91: c4 1f mov $1f,a +0b93: fa f4 21 mov ($21),($f4) +0b96: fa f5 22 mov ($22),($f5) +0b99: e4 f7 mov a,$f7 +0b9b: 28 fe and a,#$fe +0b9d: c4 20 mov $20,a +0b9f: 8f b1 f1 mov $f1,#$b1 +0ba2: 28 fe and a,#$fe +0ba4: c4 20 mov $20,a +0ba6: 68 20 cmp a,#$20 +0ba8: f0 07 beq $0bb1 +0baa: 68 22 cmp a,#$22 +0bac: f0 03 beq $0bb1 +0bae: fa 1f f6 mov ($f6),($1f) +0bb1: 5d mov x,a +0bb2: c8 29 cmp x,#$29 +0bb4: b0 10 bcs $0bc6 +0bb6: e4 21 mov a,$21 +0bb8: eb 22 mov y,$22 +0bba: 3f c8 0b call $0bc8 +0bbd: fa 21 f4 mov ($f4),($21) +0bc0: fa 22 f5 mov ($f5),($22) +0bc3: fa 20 f7 mov ($f7),($20) +0bc6: ce pop x +0bc7: 6f ret + +0bc8: 1f 5c 19 jmp ($195c+x) + +0bcb: 3f 06 0f call $0f06 +0bce: e8 01 mov a,#$01 +0bd0: 8d 08 mov y,#$08 +0bd2: cd 01 mov x,#$01 +0bd4: 3f f0 0b call $0bf0 +0bd7: 8f 6c f2 mov $f2,#$6c +0bda: 8f 00 f3 mov $f3,#$00 +0bdd: 8f ff 23 mov $23,#$ff +0be0: 6f ret + +0be1: da 42 movw $42,ya +0be3: 8f ff 41 mov $41,#$ff +0be6: 6f ret + +0be7: c4 5a mov $5a,a +0be9: 6f ret + +0bea: e8 00 mov a,#$00 +0bec: c5 07 02 mov $0207,a +0bef: 6f ret + +0bf0: cd 01 mov x,#$01 +0bf2: 2d push a +0bf3: e8 00 mov a,#$00 +0bf5: c5 06 02 mov $0206,a +0bf8: ae pop a +0bf9: 2f 02 bra $0bfd +0bfb: cd ff mov x,#$ff +0bfd: c5 07 02 mov $0207,a +0c00: c5 08 02 mov $0208,a +0c03: cc 0a 02 mov $020a,y +0c06: c9 09 02 mov $0209,x +0c09: 6f ret + +0c0a: 8d ff mov y,#$ff +0c0c: cc 05 02 mov $0205,y +0c0f: 5f a9 0c jmp $0ca9 + +0c12: 3f 65 18 call $1865 +0c15: e5 fc 19 mov a,$19fc +0c18: c5 33 06 mov $0633,a +0c1b: e5 fd 19 mov a,$19fd +0c1e: c5 34 06 mov $0634,a +0c21: 05 33 06 or a,$0633 +0c24: f0 20 beq $0c46 +0c26: 3f 37 14 call $1437 +0c29: e5 33 06 mov a,$0633 +0c2c: 80 setc +0c2d: a8 01 sbc a,#$01 +0c2f: c5 33 06 mov $0633,a +0c32: e5 34 06 mov a,$0634 +0c35: a8 00 sbc a,#$00 +0c37: c5 34 06 mov $0634,a +0c3a: b0 ea bcs $0c26 +0c3c: cd 07 mov x,#$07 +0c3e: e8 00 mov a,#$00 +0c40: d5 6e 02 mov $026e+x,a +0c43: 1d dec x +0c44: 10 fa bpl $0c40 +0c46: 6f ret + +0c47: 8f 00 64 mov $64,#$00 +0c4a: 68 00 cmp a,#$00 +0c4c: d0 03 bne $0c51 +0c4e: c5 46 05 mov $0546,a +0c51: 6f ret + +0c52: c5 1d 02 mov $021d,a +0c55: cd 07 mov x,#$07 +0c57: ad 80 cmp y,#$80 +0c59: f0 17 beq $0c72 +0c5b: e8 01 mov a,#$01 +0c5d: b0 0e bcs $0c6d +0c5f: ad 00 cmp y,#$00 +0c61: d0 08 bne $0c6b +0c63: e5 1d 02 mov a,$021d +0c66: 75 15 02 cmp a,$0215+x +0c69: d0 23 bne $0c8e +0c6b: e8 80 mov a,#$80 +0c6d: 75 0d 02 cmp a,$020d+x +0c70: d0 1c bne $0c8e +0c72: f5 d5 07 mov a,$07d5+x +0c75: c4 f2 mov $f2,a +0c77: e8 00 mov a,#$00 +0c79: 8f 9f f3 mov $f3,#$9f +0c7c: d5 36 02 mov $0236+x,a +0c7f: d5 0d 02 mov $020d+x,a +0c82: d5 7e 02 mov $027e+x,a +0c85: d4 5b mov $5b+x,a +0c87: f5 f5 07 mov a,$07f5+x +0c8a: 04 4d or a,$4d +0c8c: c4 4d mov $4d,a +0c8e: 1d dec x +0c8f: 10 c6 bpl $0c57 +0c91: 6f ret + +0c92: 2d push a +0c93: e8 00 mov a,#$00 +0c95: c5 06 02 mov $0206,a +0c98: ae pop a +0c99: 5f fb 0b jmp $0bfb + +0c9c: 2d push a +0c9d: e8 01 mov a,#$01 +0c9f: c5 06 02 mov $0206,a +0ca2: ae pop a +0ca3: 5f fb 0b jmp $0bfb + +0ca6: cc 05 02 mov $0205,y +0ca9: 8d 0e mov y,#$0e +0cab: c5 1d 02 mov $021d,a +0cae: 3f a9 0e call $0ea9 +0cb1: da 11 movw $11,ya +0cb3: 8d 00 mov y,#$00 +0cb5: f7 11 mov a,($11)+y +0cb7: c4 44 mov $44,a +0cb9: 3a 11 incw $11 +0cbb: 8d 07 mov y,#$07 +0cbd: f7 11 mov a,($11)+y +0cbf: c4 45 mov $45,a +0cc1: 8d 06 mov y,#$06 +0cc3: f7 11 mov a,($11)+y +0cc5: c4 46 mov $46,a +0cc7: 8f 80 47 mov $47,#$80 +0cca: cd 07 mov x,#$07 +0ccc: 3f 1c 0d call $0d1c +0ccf: 30 3b bmi $0d0c +0cd1: e8 80 mov a,#$80 +0cd3: d5 0d 02 mov $020d+x,a +0cd6: e5 1d 02 mov a,$021d +0cd9: d5 15 02 mov $0215+x,a +0cdc: 8d 02 mov y,#$02 +0cde: f7 11 mov a,($11)+y +0ce0: c4 3d mov $3d,a +0ce2: fc inc y +0ce3: f7 11 mov a,($11)+y +0ce5: c4 3e mov $3e,a +0ce7: 8d 04 mov y,#$04 +0ce9: f7 11 mov a,($11)+y +0ceb: c4 3f mov $3f,a +0ced: fc inc y +0cee: f7 11 mov a,($11)+y +0cf0: c4 40 mov $40,a +0cf2: e4 41 mov a,$41 +0cf4: f0 04 beq $0cfa +0cf6: ba 42 movw ya,$42 +0cf8: da 3f movw $3f,ya +0cfa: 8d 01 mov y,#$01 +0cfc: f7 11 mov a,($11)+y +0cfe: 2d push a +0cff: 8d 00 mov y,#$00 +0d01: f7 11 mov a,($11)+y +0d03: 8d 01 mov y,#$01 +0d05: cc 04 02 mov $0204,y +0d08: ee pop y +0d09: 3f 46 0d call $0d46 +0d0c: 60 clrc +0d0d: 98 08 11 adc $11,#$08 +0d10: 90 02 bcc $0d14 +0d12: ab 12 inc $12 +0d14: 8b 44 dec $44 +0d16: d0 a3 bne $0cbb +0d18: 8f 00 41 mov $41,#$00 +0d1b: 6f ret + +0d1c: 8d 07 mov y,#$07 +0d1e: e4 47 mov a,$47 +0d20: 24 45 and a,$45 +0d22: f0 0c beq $0d30 +0d24: f5 0d 02 mov a,$020d+x +0d27: f0 15 beq $0d3e +0d29: e4 46 mov a,$46 +0d2b: 75 2e 02 cmp a,$022e+x +0d2e: b0 10 bcs $0d40 +0d30: 4b 47 lsr $47 +0d32: d0 05 bne $0d39 +0d34: 8f 80 47 mov $47,#$80 +0d37: cd 08 mov x,#$08 +0d39: 1d dec x +0d3a: dc dec y +0d3b: 10 e1 bpl $0d1e +0d3d: 6f ret + +0d3e: e4 46 mov a,$46 +0d40: d5 2e 02 mov $022e+x,a +0d43: e8 00 mov a,#$00 +0d45: 6f ret + +0d46: d8 3b mov $3b,x ; play sound (instrument) +0d48: 2d push a +0d49: f5 d5 07 mov a,$07d5+x +0d4c: c4 f2 mov $f2,a +0d4e: 8f 9f f3 mov $f3,#$9f +0d51: dd mov a,y +0d52: d5 6e 02 mov $026e+x,a +0d55: 7d mov a,x +0d56: 1c asl a +0d57: 5d mov x,a +0d58: e4 3f mov a,$3f +0d5a: d5 4e 02 mov $024e+x,a +0d5d: e4 40 mov a,$40 +0d5f: d5 4f 02 mov $024f+x,a +0d62: e4 3d mov a,$3d +0d64: d5 1e 02 mov $021e+x,a +0d67: e4 3e mov a,$3e +0d69: d5 1f 02 mov $021f+x,a +0d6c: ae pop a +0d6d: 8d 02 mov y,#$02 +0d6f: 3f a9 0e call $0ea9 +0d72: da 0f movw $0f,ya ;get current voice and instrument +0d74: f8 3b mov x,$3b +0d76: f5 f5 07 mov a,$07f5+x ;get channel bit mask ID +0d79: c4 56 mov $56,a +0d7b: 48 ff eor a,#$ff ;and store inversion +0d7d: c4 57 mov $57,a +0d7f: 8d 00 mov y,#$00 ;get mode flags +0d81: f7 0f mov a,($0f)+y +0d83: 2d push a +0d84: e5 05 02 mov a,$0205 +0d87: 30 0a bmi $0d93 +0d89: ae pop a +0d8a: 2d push a +0d8b: 28 08 and a,#$08 +0d8d: f0 04 beq $0d93 +0d8f: ae pop a +0d90: 48 08 eor a,#$08 +0d92: 2d push a +0d93: ae pop a +0d94: d4 5b mov $5b+x,a +0d96: c4 3c mov $3c,a +0d98: 28 20 and a,#$20 ; is pitch modulation enabled? ($20 = pm) +0d9a: f0 05 beq $0da1 ; if not... +0d9c: 09 56 58 or ($58),($56) ; turn pitch mod on +0d9f: 2f 03 bra $0da4 +0da1: 29 57 58 and ($58),($57) ; turn pitch mod off +0da4: 8f 2d f2 mov $f2,#$2d +0da7: fa 58 f3 mov ($f3),($58) +0daa: e4 3c mov a,$3c ; retrieve the saved flag +0dac: 28 10 and a,#$10 ; is echo enabled? ($10 = echo) +0dae: f0 2f beq $0ddf ; if not... +0db0: 8d 05 mov y,#$05 ; get echo byte from sound +0db2: f7 0f mov a,($0f)+y +0db4: 8d 0c mov y,#$0c +0db6: 3f a9 0e call $0ea9 +0db9: 8d 00 mov y,#$00 +0dbb: f6 05 08 mov a,$0805+y ; get the echo register values to "poke" +0dbe: c4 f2 mov $f2,a ; (from the table) +0dc0: f7 18 mov a,($18)+y ; now get info to feed to the registers +0dc2: ad 01 cmp y,#$01 ; (from the echo environment) +0dc4: f0 04 beq $0dca +0dc6: ad 02 cmp y,#$02 +0dc8: d0 09 bne $0dd3 +0dca: d6 0a 02 mov $020a+y,a +0dcd: 64 1e cmp a,$1e +0dcf: 90 02 bcc $0dd3 +0dd1: e4 1e mov a,$1e +0dd3: c4 f3 mov $f3,a +0dd5: fc inc y +0dd6: ad 0c cmp y,#$0c ;repeat for every byte of the array +0dd8: 90 e1 bcc $0dbb +0dda: 09 56 59 or ($59),($56) +0ddd: 2f 03 bra $0de2 +0ddf: 29 57 59 and ($59),($57) ;send the echo unit +0de2: 8f 4d f2 mov $f2,#$4d +0de5: fa 59 f3 mov ($f3),($59) +0de8: e4 3c mov a,$3c +0dea: 28 01 and a,#$01 +0dec: 0d push psw +0ded: 8d 01 mov y,#$01 +0def: f7 0f mov a,($0f)+y ;now get the amplitude +0df1: 8e pop psw +0df2: d0 08 bne $0dfc +0df4: f8 3b mov x,$3b +0df6: d5 36 02 mov $0236+x,a +0df9: 5f 12 0e jmp $0e12 + +0dfc: 8d 04 mov y,#$04 +0dfe: 3f a9 0e call $0ea9 +0e01: f8 3b mov x,$3b +0e03: f5 19 08 mov a,$0819+x +0e06: c4 15 mov $15,a +0e08: f5 11 08 mov a,$0811+x +0e0b: c4 16 mov $16,a +0e0d: ba 3d movw ya,$3d +0e0f: 3f 80 0f call $0f80 +0e12: e4 3c mov a,$3c +0e14: 28 04 and a,#$04 +0e16: f0 1a beq $0e32 +0e18: 8d 03 mov y,#$03 +0e1a: f7 0f mov a,($0f)+y +0e1c: 8d 06 mov y,#$06 +0e1e: 3f a9 0e call $0ea9 +0e21: f8 3b mov x,$3b +0e23: f5 29 08 mov a,$0829+x +0e26: c4 15 mov $15,a +0e28: f5 21 08 mov a,$0821+x +0e2b: c4 16 mov $16,a +0e2d: ba 3d movw ya,$3d +0e2f: 3f 80 0f call $0f80 +0e32: e5 05 02 mov a,$0205 +0e35: 10 0c bpl $0e43 +0e37: e4 3c mov a,$3c +0e39: 28 08 and a,#$08 +0e3b: 0d push psw +0e3c: 8d 04 mov y,#$04 +0e3e: f7 0f mov a,($0f)+y +0e40: 8e pop psw +0e41: d0 08 bne $0e4b +0e43: f8 3b mov x,$3b +0e45: d5 76 02 mov $0276+x,a +0e48: 5f 78 0e jmp $0e78 + +0e4b: 8d 08 mov y,#$08 +0e4d: 3f a9 0e call $0ea9 +0e50: f8 3b mov x,$3b +0e52: f5 49 08 mov a,$0849+x +0e55: c4 15 mov $15,a +0e57: f5 41 08 mov a,$0841+x +0e5a: c4 16 mov $16,a +0e5c: ba 3d movw ya,$3d +0e5e: 3f 80 0f call $0f80 +0e61: 8d 07 mov y,#$07 +0e63: f7 15 mov a,($15)+y +0e65: f0 0b beq $0e72 +0e67: 8d 15 mov y,#$15 +0e69: f7 15 mov a,($15)+y +0e6b: d0 05 bne $0e72 +0e6d: e8 ff mov a,#$ff +0e6f: 5f 74 0e jmp $0e74 + +0e72: e8 00 mov a,#$00 +0e74: 8d 15 mov y,#$15 +0e76: d7 15 mov ($15)+y,a +0e78: e4 3c mov a,$3c +0e7a: 28 02 and a,#$02 +0e7c: 0d push psw +0e7d: 8d 02 mov y,#$02 +0e7f: f7 0f mov a,($0f)+y +0e81: 8e pop psw +0e82: d0 08 bne $0e8c +0e84: f8 3b mov x,$3b +0e86: d5 7e 02 mov $027e+x,a +0e89: 5f a2 0e jmp $0ea2 + +0e8c: 8d 0a mov y,#$0a +0e8e: 3f a9 0e call $0ea9 +0e91: f8 3b mov x,$3b +0e93: f5 39 08 mov a,$0839+x +0e96: c4 15 mov $15,a +0e98: f5 31 08 mov a,$0831+x +0e9b: c4 16 mov $16,a +0e9d: ba 3d movw ya,$3d +0e9f: 3f 80 0f call $0f80 +0ea2: 09 56 4d or ($4d),($56) +0ea5: 09 56 48 or ($48),($56) +0ea8: 6f ret + +0ea9: 8f 00 0e mov $0e,#$00 ; load current song/sfx/etc. address into stack +0eac: 1c asl a +0ead: 2b 0e rol $0e +0eaf: 60 clrc +0eb0: 96 e0 19 adc a,$19e0+y +0eb3: c4 0d mov $0d,a +0eb5: e4 0e mov a,$0e +0eb7: 96 e1 19 adc a,$19e1+y +0eba: c4 0e mov $0e,a +0ebc: 8d 01 mov y,#$01 +0ebe: f7 0d mov a,($0d)+y +0ec0: c4 19 mov $19,a +0ec2: dc dec y +0ec3: f7 0d mov a,($0d)+y +0ec5: c4 18 mov $18,a +0ec7: eb 19 mov y,$19 +0ec9: 6f ret + +0eca: cd 35 mov x,#$35 +0ecc: 8d 0f mov y,#$0f +0ece: 3f 1e 0f call $0f1e +0ed1: e8 00 mov a,#$00 +0ed3: fd mov y,a +0ed4: c4 04 mov $04,a +0ed6: 8f 02 05 mov $05,#$02 +0ed9: d7 04 mov ($04)+y,a +0edb: 3a 04 incw $04 +0edd: 78 07 05 cmp $05,#$07 +0ee0: 90 f7 bcc $0ed9 +0ee2: d6 00 00 mov $0000+y,a +0ee5: fc inc y +0ee6: ad f0 cmp y,#$f0 +0ee8: 90 f8 bcc $0ee2 +0eea: 8d 00 mov y,#$00 +0eec: 60 clrc +0eed: d6 8a 00 mov $008a+y,a +0ef0: 88 19 adc a,#$19 +0ef2: fc inc y +0ef3: ad 08 cmp y,#$08 +0ef5: d0 f6 bne $0eed +0ef7: 9c dec a +0ef8: c4 49 mov $49,a +0efa: c4 4b mov $4b,a +0efc: c4 50 mov $50,a +0efe: c4 4a mov $4a,a +0f00: c4 4f mov $4f,a +0f02: 8f 00 1e mov $1e,#$00 +0f05: 6f ret + +0f06: e5 e1 19 mov a,$19e1 +0f09: 8f 6d f2 mov $f2,#$6d +0f0c: c4 f3 mov $f3,a +0f0e: c4 05 mov $05,a +0f10: e8 00 mov a,#$00 +0f12: fd mov y,a +0f13: c4 04 mov $04,a +0f15: d7 04 mov ($04)+y,a +0f17: fe fc dbnz y,$0f15 +0f19: ab 05 inc $05 +0f1b: d0 f8 bne $0f15 +0f1d: 6f ret + +0f1e: d8 04 mov $04,x +0f20: cb 05 mov $05,y +0f22: 8d 00 mov y,#$00 +0f24: f7 04 mov a,($04)+y +0f26: 68 ff cmp a,#$ff +0f28: f0 0a beq $0f34 +0f2a: c4 f2 mov $f2,a +0f2c: fc inc y +0f2d: f7 04 mov a,($04)+y +0f2f: c4 f3 mov $f3,a +0f31: fc inc y +0f32: d0 f0 bne $0f24 +0f34: 6f ret + +; pre-defined DSP flags +0f35: db $6c,$3f,$3d,$00,$4d,$00,$7d,$00,$6d,$ff,$5d,$1a,$5c,$00,$2d,$00,$05,$00,$15,$00,$25,$00,$35,$00,$45,$00,$55,$00,$65,$00,$75,$00,$07,$00,$17,$00,$27,$00,$37,$00,$47,$00,$57,$00,$67,$00,$77,$00,$7c,$00,$2c,$00,$3c,$00,$0c,$00,$1c,$00,$04,$00,$14,$00,$24,$00,$34,$00,$44,$00,$54,$00,$64,$00,$74,$00,$ff + +0f80: da 2f movw $2f,ya +0f82: 8d 07 mov y,#$07 +0f84: f7 18 mov a,($18)+y +0f86: d7 15 mov ($15)+y,a +0f88: dc dec y +0f89: 10 f9 bpl $0f84 +0f8b: e4 18 mov a,$18 +0f8d: 60 clrc +0f8e: 88 08 adc a,#$08 +0f90: 8d 08 mov y,#$08 +0f92: d7 15 mov ($15)+y,a +0f94: e4 19 mov a,$19 +0f96: 88 00 adc a,#$00 +0f98: fc inc y +0f99: d7 15 mov ($15)+y,a +0f9b: 8d 03 mov y,#$03 +0f9d: f7 15 mov a,($15)+y +0f9f: 5d mov x,a +0fa0: 8d 02 mov y,#$02 +0fa2: f7 15 mov a,($15)+y +0fa4: fd mov y,a +0fa5: 7d mov a,x +0fa6: cf mul ya +0fa7: da 33 movw $33,ya +0fa9: 4d push x +0faa: ba 2f movw ya,$2f +0fac: e9 04 02 mov x,$0204 +0faf: d0 0a bne $0fbb +0fb1: 5d mov x,a +0fb2: e5 02 02 mov a,$0202 +0fb5: ec 03 02 mov y,$0203 +0fb8: 3f e1 15 call $15e1 +0fbb: ce pop x +0fbc: 9a 33 subw ya,$33 +0fbe: b0 03 bcs $0fc3 +0fc0: e8 00 mov a,#$00 +0fc2: fd mov y,a +0fc3: cb 34 mov $34,y +0fc5: 8d 0d mov y,#$0d +0fc7: d7 15 mov ($15)+y,a +0fc9: fc inc y +0fca: e4 34 mov a,$34 +0fcc: d7 15 mov ($15)+y,a +0fce: 8d 03 mov y,#$03 +0fd0: f7 15 mov a,($15)+y +0fd2: bc inc a +0fd3: 8d 0f mov y,#$0f +0fd5: d7 15 mov ($15)+y,a +0fd7: 68 03 cmp a,#$03 +0fd9: b0 06 bcs $0fe1 +0fdb: 8d 04 mov y,#$04 +0fdd: e8 00 mov a,#$00 +0fdf: d7 15 mov ($15)+y,a +0fe1: 8d 08 mov y,#$08 +0fe3: f7 15 mov a,($15)+y +0fe5: 8d 0a mov y,#$0a +0fe7: d7 15 mov ($15)+y,a +0fe9: 8d 09 mov y,#$09 +0feb: f7 15 mov a,($15)+y +0fed: 8d 0b mov y,#$0b +0fef: d7 15 mov ($15)+y,a +0ff1: e8 01 mov a,#$01 +0ff3: 8d 14 mov y,#$14 +0ff5: d7 15 mov ($15)+y,a +0ff7: 9c dec a +0ff8: 8d 0c mov y,#$0c +0ffa: d7 15 mov ($15)+y,a +0ffc: 8d 12 mov y,#$12 +0ffe: d7 15 mov ($15)+y,a +1000: fc inc y +1001: d7 15 mov ($15)+y,a +1003: c4 28 mov $28,a +1005: 5f b6 10 jmp $10b6 + +1008: 8d 14 mov y,#$14 +100a: f7 15 mov a,($15)+y +100c: f0 39 beq $1047 +100e: 8d 04 mov y,#$04 +1010: f7 15 mov a,($15)+y +1012: c4 28 mov $28,a +1014: 8d 0f mov y,#$0f +1016: f7 15 mov a,($15)+y +1018: c4 29 mov $29,a +101a: f0 03 beq $101f +101c: 9c dec a +101d: d0 06 bne $1025 +101f: 8d 03 mov y,#$03 +1021: f7 15 mov a,($15)+y +1023: 8d 0f mov y,#$0f +1025: d7 15 mov ($15)+y,a +1027: 78 02 29 cmp $29,#$02 +102a: 90 03 bcc $102f +102c: 5f b6 10 jmp $10b6 + +102f: 8d 0c mov y,#$0c +1031: f7 15 mov a,($15)+y +1033: bc inc a +1034: 8d 05 mov y,#$05 +1036: 77 15 cmp a,($15)+y +1038: 90 17 bcc $1051 +103a: 9c dec a +103b: 8d 01 mov y,#$01 +103d: 77 15 cmp a,($15)+y +103f: f0 6a beq $10ab +1041: e8 00 mov a,#$00 +1043: 8d 14 mov y,#$14 +1045: d7 15 mov ($15)+y,a +1047: 8d 11 mov y,#$11 +1049: f7 15 mov a,($15)+y +104b: 2d push a +104c: dc dec y +104d: f7 15 mov a,($15)+y +104f: ee pop y +1050: 6f ret + +1051: 8d 0c mov y,#$0c +1053: d7 15 mov ($15)+y,a +1055: 8d 06 mov y,#$06 +1057: f7 15 mov a,($15)+y +1059: 8d 0a mov y,#$0a +105b: 60 clrc +105c: 97 15 adc a,($15)+y +105e: d7 15 mov ($15)+y,a +1060: 90 07 bcc $1069 +1062: fc inc y +1063: f7 15 mov a,($15)+y +1065: 88 00 adc a,#$00 +1067: d7 15 mov ($15)+y,a +1069: 8d 0e mov y,#$0e +106b: f7 15 mov a,($15)+y +106d: 5d mov x,a +106e: dc dec y +106f: f7 15 mov a,($15)+y +1071: d0 04 bne $1077 +1073: c8 00 cmp x,#$00 +1075: f0 3f beq $10b6 +1077: 8d 03 mov y,#$03 +1079: 80 setc +107a: b7 15 sbc a,($15)+y +107c: 8d 0d mov y,#$0d +107e: d7 15 mov ($15)+y,a +1080: c4 33 mov $33,a +1082: 7d mov a,x +1083: a8 00 sbc a,#$00 +1085: b0 06 bcs $108d +1087: e8 00 mov a,#$00 +1089: d7 15 mov ($15)+y,a +108b: c4 33 mov $33,a +108d: fc inc y +108e: d7 15 mov ($15)+y,a +1090: 04 33 or a,$33 +1092: d0 0b bne $109f +1094: 8d 01 mov y,#$01 +1096: f7 15 mov a,($15)+y +1098: 68 ff cmp a,#$ff +109a: f0 03 beq $109f +109c: 5f af 10 jmp $10af + +109f: 8d 0c mov y,#$0c +10a1: f7 15 mov a,($15)+y +10a3: 8d 01 mov y,#$01 +10a5: 77 15 cmp a,($15)+y +10a7: 90 0d bcc $10b6 +10a9: f0 0b beq $10b6 +10ab: 8d 00 mov y,#$00 +10ad: f7 15 mov a,($15)+y +10af: 8d 0c mov y,#$0c +10b1: d7 15 mov ($15)+y,a +10b3: 3f 59 11 call $1159 +10b6: f8 28 mov x,$28 +10b8: f0 14 beq $10ce +10ba: 78 03 29 cmp $29,#$03 +10bd: 90 0f bcc $10ce +10bf: 8d 13 mov y,#$13 +10c1: cd 03 mov x,#$03 +10c3: f7 15 mov a,($15)+y +10c5: d4 24 mov $24+x,a +10c7: dc dec y +10c8: 1d dec x +10c9: 10 f8 bpl $10c3 +10cb: 5f 36 11 jmp $1136 + +10ce: 3f 48 11 call $1148 +10d1: 8d 06 mov y,#$06 +10d3: f7 15 mov a,($15)+y +10d5: 5d mov x,a +10d6: 8d 00 mov y,#$00 +10d8: f7 1a mov a,($1a)+y +10da: c8 01 cmp x,#$01 +10dc: f0 06 beq $10e4 +10de: 5d mov x,a +10df: fc inc y +10e0: f7 1a mov a,($1a)+y +10e2: fd mov y,a +10e3: 7d mov a,x +10e4: f8 28 mov x,$28 +10e6: f0 52 beq $113a +10e8: 78 02 29 cmp $29,#$02 +10eb: f0 4d beq $113a +10ed: da 2f movw $2f,ya +10ef: 8d 11 mov y,#$11 +10f1: f7 15 mov a,($15)+y +10f3: c4 25 mov $25,a +10f5: dc dec y +10f6: f7 15 mov a,($15)+y +10f8: c4 24 mov $24,a +10fa: eb 25 mov y,$25 +10fc: 80 setc +10fd: 9a 2f subw ya,$2f +10ff: da 26 movw $26,ya +1101: e8 00 mov a,#$00 +1103: 3c rol a +1104: c4 2f mov $2f,a +1106: d0 08 bne $1110 +1108: 58 ff 26 eor $26,#$ff +110b: 58 ff 27 eor $27,#$ff +110e: 3a 26 incw $26 +1110: 8d 03 mov y,#$03 +1112: f7 15 mov a,($15)+y +1114: 5d mov x,a +1115: ba 26 movw ya,$26 +1117: 3f 74 11 call $1174 +111a: c4 26 mov $26,a +111c: d8 27 mov $27,x +111e: 78 01 2f cmp $2f,#$01 +1121: d0 08 bne $112b +1123: 58 ff 26 eor $26,#$ff +1126: 58 ff 27 eor $27,#$ff +1129: 3a 26 incw $26 +112b: 8d 12 mov y,#$12 +112d: e4 26 mov a,$26 +112f: d7 15 mov ($15)+y,a +1131: fc inc y +1132: e4 27 mov a,$27 +1134: d7 15 mov ($15)+y,a +1136: ba 24 movw ya,$24 +1138: 7a 26 addw ya,$26 +113a: da 24 movw $24,ya +113c: 8d 10 mov y,#$10 +113e: d7 15 mov ($15)+y,a +1140: e4 25 mov a,$25 +1142: fc inc y +1143: d7 15 mov ($15)+y,a +1145: ba 24 movw ya,$24 +1147: 6f ret + +1148: 8d 0a mov y,#$0a +114a: 5f 4f 11 jmp $114f + +114d: 8d 08 mov y,#$08 +114f: f7 15 mov a,($15)+y +1151: c4 1a mov $1a,a +1153: fc inc y +1154: f7 15 mov a,($15)+y +1156: c4 1b mov $1b,a +1158: 6f ret + +1159: 2d push a +115a: 3f 4d 11 call $114d +115d: 8d 06 mov y,#$06 +115f: f7 15 mov a,($15)+y +1161: fd mov y,a +1162: ae pop a +1163: cf mul ya +1164: 7a 1a addw ya,$1a +1166: da 1a movw $1a,ya +1168: 8d 0a mov y,#$0a +116a: e4 1a mov a,$1a +116c: d7 15 mov ($15)+y,a +116e: fc inc y +116f: e4 1b mov a,$1b +1171: d7 15 mov ($15)+y,a +1173: 6f ret + +1174: c8 00 cmp x,#$00 +1176: d0 05 bne $117d +1178: e8 ff mov a,#$ff +117a: fd mov y,a +117b: 5d mov x,a +117c: 6f ret + +117d: cb 2c mov $2c,y +117f: 3e 2c cmp x,$2c +1181: f0 02 beq $1185 +1183: b0 19 bcs $119e +1185: c4 2b mov $2b,a +1187: dd mov a,y +1188: 8d 00 mov y,#$00 +118a: 9e div ya,x +118b: c4 2d mov $2d,a +118d: fd mov y,a +118e: 7d mov a,x +118f: cf mul ya +1190: c4 2e mov $2e,a +1192: e4 2c mov a,$2c +1194: 80 setc +1195: a4 2e sbc a,$2e +1197: fd mov y,a +1198: e4 2b mov a,$2b +119a: 9e div ya,x +119b: f8 2d mov x,$2d +119d: 6f ret + +119e: 9e div ya,x +119f: cd 00 mov x,#$00 +11a1: 6f ret + +11a2: f5 86 02 mov a,$0286+x +11a5: 8d 04 mov y,#$04 +11a7: cf mul ya +11a8: 7a 13 addw ya,$13 +11aa: da 04 movw $04,ya +11ac: 8d 01 mov y,#$01 +11ae: f7 04 mov a,($04)+y +11b0: c4 32 mov $32,a +11b2: dc dec y +11b3: f7 04 mov a,($04)+y +11b5: 80 setc +11b6: a8 03 sbc a,#$03 +11b8: c4 31 mov $31,a +11ba: b8 00 32 sbc $32,#$00 +11bd: f7 31 mov a,($31)+y +11bf: c4 51 mov $51,a +11c1: fc inc y +11c2: f7 31 mov a,($31)+y +11c4: c4 52 mov $52,a +11c6: fc inc y +11c7: f7 31 mov a,($31)+y +11c9: c4 53 mov $53,a +11cb: 6f ret + +11cc: ad 04 cmp y,#$04 +11ce: 90 06 bcc $11d6 +11d0: d0 0a bne $11dc +11d2: 68 b0 cmp a,#$b0 +11d4: b0 06 bcs $11dc +11d6: 8f ff 54 mov $54,#$ff +11d9: 5f f2 11 jmp $11f2 + +11dc: ad 80 cmp y,#$80 +11de: 90 0f bcc $11ef +11e0: 8f 00 54 mov $54,#$00 +11e3: 60 clrc +11e4: 88 20 adc a,#$20 +11e6: 5d mov x,a +11e7: dd mov a,y +11e8: 88 df adc a,#$df +11ea: fd mov y,a +11eb: 7d mov a,x +11ec: 5f f2 11 jmp $11f2 + +11ef: 8f 04 54 mov $54,#$04 +11f2: cd f0 mov x,#$f0 +11f4: 9e div ya,x +11f5: 78 ff 54 cmp $54,#$ff +11f8: d0 02 bne $11fc +11fa: c4 54 mov $54,a +11fc: f6 17 12 mov a,$1217+y ;get pitch value (from table) +11ff: c4 2f mov $2f,a +1201: f6 07 13 mov a,$1307+y +1204: c4 30 mov $30,a +1206: e8 04 mov a,#$04 +1208: 80 setc +1209: a4 54 sbc a,$54 +120b: f0 07 beq $1214 +120d: fd mov y,a +120e: 4b 30 lsr $30 +1210: 6b 2f ror $2f +1212: fe fa dbnz y,$120e +1214: ba 2f movw ya,$2f +1216: 6f ret + +; pitch table (low byte) +1217: db $00,$18,$2f,$47,$5f,$77,$8f,$a7,$bf,$d8,$f0,$08,$21,$39,$52,$6b,$83,$9c,$b5,$ce,$e7,$00,$19,$33,$4c,$65,$7f,$98,$b2,$cc,$e5,$ff,$19,$33,$4d,$67,$82,$9c,$b6,$d1,$eb,$06,$20,$3b,$56,$71,$8c,$a7,$c2,$dd,$f9,$14,$2f,$4b,$67,$82,$9e,$ba,$d6,$f2,$0e,$2a,$46,$63,$7f,$9c,$b8,$d5,$f2,$0f,$2b,$48,$66,$83,$a0,$bd,$db,$f8,$16,$34,$51,$6f,$8d,$ab,$c9,$e7,$06,$24,$43,$61,$80,$9e,$bd,$dc,$fb,$1a,$39,$59,$78,$97,$b7,$d7,$f6,$16,$36,$56,$76,$96,$b7,$d7,$f7,$18,$39,$59,$7a,$9b,$bc,$dd,$ff,$20,$41,$63,$84,$a6,$c8,$ea,$0c,$2e,$50,$72,$95,$b7,$da,$fc,$1f,$42,$65,$88,$ab,$cf,$f2,$16,$39,$5d,$81,$a5,$c9,$ed,$11,$35,$5a,$7e,$a3,$c8,$ed,$12,$37,$5c,$81,$a6,$cc,$f2,$17,$3d,$63,$89,$af,$d6,$fc,$22,$49,$70,$97,$be,$e5,$0c,$33,$5a,$82,$aa,$d1,$f9,$21,$49,$71,$9a,$c2,$eb,$13,$3c,$65,$8e,$b7,$e0,$0a,$33,$5d,$87,$b0,$da,$04,$2f,$59,$84,$ae,$d9,$04,$2f,$5a,$85,$b0,$dc,$07,$33,$5f,$8b,$b7,$e3,$0f,$3c,$68,$95,$c2,$ef,$1c,$49,$77,$a4,$d2,$00,$2e,$5c,$8a,$b8,$e7,$15,$44,$73,$a2,$d1 + +; pitch table (high byte) +1307: db $20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$23,$23,$23,$23,$23,$23,$23,$23,$23,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$25,$25,$25,$25,$25,$25,$25,$25,$25,$26,$26,$26,$26,$26,$26,$26,$26,$26,$27,$27,$27,$27,$27,$27,$27,$27,$27,$28,$28,$28,$28,$28,$28,$28,$28,$29,$29,$29,$29,$29,$29,$29,$29,$29,$2a,$2a,$2a,$2a,$2a,$2a,$2a,$2a,$2b,$2b,$2b,$2b,$2b,$2b,$2b,$2b,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2d,$2d,$2d,$2d,$2d,$2d,$2d,$2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e,$2f,$2f,$2f,$2f,$2f,$2f,$2f,$30,$30,$30,$30,$30,$30,$30,$31,$31,$31,$31,$31,$31,$31,$32,$32,$32,$32,$32,$32,$32,$33,$33,$33,$33,$33,$33,$33,$34,$34,$34,$34,$34,$34,$35,$35,$35,$35,$35,$35,$35,$36,$36,$36,$36,$36,$36,$37,$37,$37,$37,$37,$37,$38,$38,$38,$38,$38,$38,$39,$39,$39,$39,$39,$39,$3a,$3a,$3a,$3a,$3a,$3a,$3b,$3b,$3b,$3b,$3b,$3b,$3c,$3c,$3c,$3c,$3c,$3c,$3d,$3d,$3d,$3d,$3d,$3e,$3e,$3e,$3e,$3e,$3e,$3f,$3f,$3f,$3f,$3f + +; note interval frequencies (low byte) +13f7: db $30,$20,$ac,$10,$24,$38,$4c,$60,$74,$88,$9c,$b0,$c4,$d8,$ec,$00,$14,$28,$3c,$50,$64,$78,$8c,$a0,$b4,$c8,$dc,$f0,$54,$e0,$d0,$c0 + +; note interval frequencies (high byte) +1417: db $fd,$fe,$fe,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$02,$03 + +1437: e4 64 mov a,$64 +1439: d0 0c bne $1447 +143b: e5 46 05 mov a,$0546 +143e: f0 22 beq $1462 +1440: e8 00 mov a,#$00 +1442: c5 46 05 mov $0546,a +1445: 2f f0 bra $1437 +1447: e4 63 mov a,$63 +1449: 9c dec a +144a: c4 65 mov $65,a +144c: 1c asl a +144d: c4 66 mov $66,a +144f: 3f 75 0b call $0b75 +1452: f8 65 mov x,$65 +1454: f4 68 mov a,$68+x +1456: 5d mov x,a +1457: 1f e0 18 jmp ($18e0+x) + +145a: 8b 66 dec $66 +145c: 8b 66 dec $66 +145e: 8b 65 dec $65 +1460: 10 ed bpl $144f +1462: 6f ret + +1463: f8 65 mov x,$65 +1465: 9b 9b dec $9b+x +1467: d0 f1 bne $145a +1469: f5 47 05 mov a,$0547+x +146c: d4 9b mov $9b+x,a +146e: 9b a3 dec $a3+x +1470: d0 e8 bne $145a +1472: f4 68 mov a,$68+x +1474: e8 04 mov a,#$04 +1476: d4 68 mov $68+x,a +1478: 5f 7b 14 jmp $147b + +147b: f8 65 mov x,$65 +147d: f4 82 mov a,$82+x +147f: 68 19 cmp a,#$19 +1481: f0 25 beq $14a8 +1483: 60 clrc +1484: 94 8a adc a,$8a+x +1486: f8 66 mov x,$66 +1488: c4 00 mov $00,a +148a: fd mov y,a +148b: f6 3b 06 mov a,$063b+y +148e: c4 04 mov $04,a +1490: f6 3c 06 mov a,$063c+y +1493: c4 05 mov $05,a +1495: 8d 02 mov y,#$02 +1497: f7 04 mov a,($04)+y +1499: 74 72 cmp a,$72+x +149b: d0 0b bne $14a8 +149d: 8d 03 mov y,#$03 +149f: f7 04 mov a,($04)+y +14a1: 74 73 cmp a,$73+x +14a3: d0 03 bne $14a8 +14a5: 5f fd 16 jmp $16fd + +14a8: 3f bd 15 call $15bd +14ab: fd mov y,a ; get the current note/command +14ac: 28 20 and a,#$20 +14ae: c4 67 mov $67,a +14b0: f8 65 mov x,$65 +14b2: ad 80 cmp y,#$80 ; is it a note? +14b4: 90 3d bcc $14f3 +14b6: ad f0 cmp y,#$f0 ; is it a special meaning flag? +14b8: 90 08 bcc $14c2 +14ba: dd mov a,y ; then it must be a command... +14bb: 28 0f and a,#$0f +14bd: 1c asl a +14be: 5d mov x,a +14bf: 1f 3e 18 jmp ($183e+x) ; jump to command number position + +14c2: f5 67 05 mov a,$0567+x ; pitch bend +14c5: f0 4c beq $1513 +14c7: dd mov a,y +14c8: 28 08 and a,#$08 +14ca: 0d push psw +14cb: dd mov a,y +14cc: 28 07 and a,#$07 +14ce: bc inc a +14cf: 1c asl a +14d0: f8 66 mov x,$66 +14d2: 8e pop psw +14d3: f0 0d beq $14e2 +14d5: 60 clrc +14d6: 94 be adc a,$be+x +14d8: d4 be mov $be+x,a +14da: f4 bf mov a,$bf+x +14dc: 88 00 adc a,#$00 +14de: d4 bf mov $bf+x,a +14e0: 2f 31 bra $1513 +14e2: c4 2f mov $2f,a +14e4: f4 be mov a,$be+x +14e6: 80 setc +14e7: a4 2f sbc a,$2f +14e9: d4 be mov $be+x,a +14eb: f4 bf mov a,$bf+x +14ed: a8 00 sbc a,#$00 +14ef: d4 bf mov $bf+x,a +14f1: 2f 20 bra $1513 +14f3: f5 67 05 mov a,$0567+x ; play the note (check first) +14f6: f0 1b beq $1513 +14f8: dd mov a,y +14f9: 28 1f and a,#$1f ; get the actual note value +14fb: fd mov y,a +14fc: f8 66 mov x,$66 +14fe: f4 ae mov a,$ae+x +1500: 60 clrc +1501: 96 f7 13 adc a,$13f7+y +1504: d4 ae mov $ae+x,a +1506: f4 af mov a,$af+x +1508: 96 17 14 adc a,$1417+y +150b: d4 af mov $af+x,a +150d: e8 00 mov a,#$00 +150f: d4 be mov $be+x,a +1511: d4 bf mov $bf+x,a +1513: 3f bd 15 call $15bd +1516: 68 00 cmp a,#$00 +1518: d0 07 bne $1521 +151a: f8 65 mov x,$65 +151c: f4 68 mov a,$68+x +151e: 5f 4f 14 jmp $144f + +1521: f8 65 mov x,$65 +1523: d4 a3 mov $a3+x,a +1525: fd mov y,a +1526: f5 47 05 mov a,$0547+x +1529: d4 9b mov $9b+x,a +152b: cf mul ya +152c: da 3d movw $3d,ya +152e: 3f 25 18 call $1825 +1531: f5 6f 05 mov a,$056f+x +1534: 5d mov x,a +1535: f5 0d 02 mov a,$020d+x +1538: f0 0a beq $1544 +153a: e8 40 mov a,#$40 +153c: 75 2e 02 cmp a,$022e+x +153f: b0 05 bcs $1546 +1541: 5f 5a 14 jmp $145a + +1544: e8 40 mov a,#$40 +1546: d5 2e 02 mov $022e+x,a +1549: e8 01 mov a,#$01 +154b: d5 0d 02 mov $020d+x,a +154e: d8 ab mov $ab,x +1550: 7d mov a,x +1551: f8 65 mov x,$65 +1553: f5 67 05 mov a,$0567+x +1556: d0 0c bne $1564 +1558: f8 66 mov x,$66 +155a: f4 ae mov a,$ae+x +155c: c4 3f mov $3f,a +155e: f4 af mov a,$af+x +1560: c4 40 mov $40,a +1562: 2f 1e bra $1582 +1564: f8 66 mov x,$66 +1566: f4 ae mov a,$ae+x +1568: 60 clrc +1569: 94 be adc a,$be+x +156b: c4 3f mov $3f,a +156d: f4 af mov a,$af+x +156f: 94 bf adc a,$bf+x +1571: c4 40 mov $40,a +1573: f5 77 05 mov a,$0577+x +1576: 60 clrc +1577: 84 3f adc a,$3f +1579: c4 3f mov $3f,a +157b: f5 78 05 mov a,$0578+x +157e: 84 40 adc a,$40 +1580: c4 40 mov $40,a +1582: eb 67 mov y,$67 +1584: d0 0f bne $1595 +1586: 0b ab asl $ab +1588: f8 ab mov x,$ab +158a: d5 4f 02 mov $024f+x,a +158d: e4 3f mov a,$3f +158f: d5 4e 02 mov $024e+x,a +1592: 5f 5a 14 jmp $145a + +1595: f8 65 mov x,$65 +1597: f5 4f 05 mov a,$054f+x +159a: 60 clrc +159b: 95 57 05 adc a,$0557+x +159e: 10 02 bpl $15a2 +15a0: e8 7f mov a,#$7f +15a2: c4 ac mov $ac,a +15a4: f8 65 mov x,$65 +15a6: f5 5f 05 mov a,$055f+x +15a9: f8 ab mov x,$ab +15ab: 8d 00 mov y,#$00 +15ad: cc 04 02 mov $0204,y +15b0: 8d ff mov y,#$ff +15b2: cc 05 02 mov $0205,y +15b5: eb ac mov y,$ac +15b7: 3f 46 0d call $0d46 +15ba: 5f 5a 14 jmp $145a + +15bd: f8 66 mov x,$66 +15bf: e7 72 mov a,($72+x) +15c1: bb 72 inc $72+x ; update melody (sequence) position pointer +15c3: d0 02 bne $15c7 +15c5: bb 73 inc $73+x +15c7: 6f ret + +; vcmd f0 - end of sequence +15c8: f8 65 mov x,$65 +15ca: e8 00 mov a,#$00 +15cc: d4 68 mov $68+x,a +15ce: 8b 64 dec $64 +15d0: 5f 5a 14 jmp $145a + +; vcmd f1 - delta expression +15d3: f8 65 mov x,$65 +15d5: f5 57 05 mov a,$0557+x +15d8: 3f f6 15 call $15f6 +15db: d5 57 05 mov $0557+x,a +15de: 5f 7b 14 jmp $147b + +15e1: 6d push y +15e2: 4d push x +15e3: ee pop y +15e4: cf mul ya +15e5: da 2f movw $2f,ya +15e7: 7d mov a,x +15e8: ee pop y +15e9: cf mul ya +15ea: 6d push y +15eb: 0b 2f asl $2f +15ed: 84 30 adc a,$30 +15ef: 5d mov x,a +15f0: ae pop a +15f1: 88 00 adc a,#$00 +15f3: fd mov y,a +15f4: 7d mov a,x +15f5: 6f ret + +15f6: 4d push x ; scale volume - get 2 bytes +15f7: fd mov y,a +15f8: 6d push y +15f9: 3f bd 15 call $15bd +15fc: cf mul ya +15fd: da 2f movw $2f,ya +15ff: ee pop y +1600: 3f bd 15 call $15bd +1603: cf mul ya +1604: 6d push y +1605: 0b 2f asl $2f +1607: 84 30 adc a,$30 +1609: 5d mov x,a +160a: ae pop a +160b: 88 00 adc a,#$00 +160d: fd mov y,a +160e: d0 03 bne $1613 +1610: 7d mov a,x +1611: 10 02 bpl $1615 +1613: e8 7f mov a,#$7f +1615: ce pop x +1616: 6f ret + +; vcmd f2 - absolute expression +1617: 3f bd 15 call $15bd +161a: f8 65 mov x,$65 +161c: d5 57 05 mov $0557+x,a +161f: 5f 7b 14 jmp $147b + +; vcmd f3 - mute +1622: f8 65 mov x,$65 +1624: f5 6f 05 mov a,$056f+x +1627: 30 15 bmi $163e +1629: fd mov y,a +162a: f6 0d 02 mov a,$020d+y +162d: 68 80 cmp a,#$80 +162f: f0 0d beq $163e +1631: e8 00 mov a,#$00 +1633: d6 6e 02 mov $026e+y,a +1636: f6 d5 07 mov a,$07d5+y +1639: c4 f2 mov $f2,a +163b: 8f 9f f3 mov $f3,#$9f + +; vcmd f4 - rest +163e: 3f bd 15 call $15bd +1641: f8 65 mov x,$65 +1643: d4 a3 mov $a3+x,a +1645: f5 47 05 mov a,$0547+x +1648: d4 9b mov $9b+x,a +164a: 3f 25 18 call $1825 +164d: 5f 5a 14 jmp $145a + +; vcmd f5 - set sound/instrument +1650: 3f bd 15 call $15bd ; get 1 more byte = read sound number +1653: f8 65 mov x,$65 +1655: d5 5f 05 mov $055f+x,a ; move it onto the stack +1658: f4 82 mov a,$82+x +165a: 68 19 cmp a,#$19 ; $19 = phrase stack max value? +165c: f0 32 beq $1690 +165e: 60 clrc +165f: 94 8a adc a,$8a+x +1661: f8 66 mov x,$66 +1663: c4 00 mov $00,a +1665: fd mov y,a +1666: f6 3b 06 mov a,$063b+y +1669: c4 04 mov $04,a +166b: f6 3c 06 mov a,$063c+y +166e: c4 05 mov $05,a +1670: f6 39 06 mov a,$0639+y +1673: 8d 09 mov y,#$09 +1675: 77 04 cmp a,($04)+y +1677: 90 02 bcc $167b +1679: e8 00 mov a,#$00 +167b: bc inc a +167c: eb 00 mov y,$00 +167e: d6 39 06 mov $0639+y,a +1681: 60 clrc +1682: 88 09 adc a,#$09 +1684: fd mov y,a +1685: f7 04 mov a,($04)+y +1687: 68 ff cmp a,#$ff +1689: f0 05 beq $1690 +168b: f8 65 mov x,$65 +168d: d5 5f 05 mov $055f+x,a +1690: 5f 7b 14 jmp $147b + +; vcmd f6 - play phrase +1693: f8 65 mov x,$65 +1695: f4 82 mov a,$82+x ; push entry onto stack +1697: 80 setc +1698: a8 05 sbc a,#$05 +169a: d4 82 mov $82+x,a +169c: 60 clrc ; set to current player +169d: 94 8a adc a,$8a+x +169f: fd mov y,a +16a0: cb 00 mov $00,y +16a2: f8 66 mov x,$66 +16a4: f4 72 mov a,$72+x +16a6: d6 3b 06 mov $063b+y,a ; LSB of pointer +16a9: f4 73 mov a,$73+x +16ab: d6 3c 06 mov $063c+y,a ; MSB of pointer +16ae: e8 00 mov a,#$00 +16b0: d6 38 06 mov $0638+y,a ; number of loops +16b3: 3f bd 15 call $15bd ; start point low byte +16b6: 2d push a +16b7: 3f bf 15 call $15bf ; start point high byte +16ba: 2d push a +16bb: 3f bf 15 call $15bf ; end point low byte +16be: 3f bf 15 call $15bf ; end point high byte +16c1: 3f bf 15 call $15bf ; number of loops +16c4: 3f bf 15 call $15bf ; frequency offset LSB low byte +16c7: fd mov y,a +16c8: 3f bf 15 call $15bf ; frequency offset LSB high byte +16cb: 2d push a +16cc: dd mov a,y +16cd: 60 clrc +16ce: 95 77 05 adc a,$0577+x ; adjust frequency +16d1: d5 77 05 mov $0577+x,a +16d4: ae pop a +16d5: 95 78 05 adc a,$0578+x +16d8: d5 78 05 mov $0578+x,a +16db: f8 65 mov x,$65 +16dd: f5 57 05 mov a,$0557+x +16e0: eb 00 mov y,$00 +16e2: d6 3a 06 mov $063a+y,a +16e5: 3f f6 15 call $15f6 ; scale the volume (read next 2 bytes) +16e8: d5 57 05 mov $0557+x,a +16eb: eb 00 mov y,$00 ; initialize instrument pointer +16ed: e8 00 mov a,#$00 +16ef: d6 39 06 mov $0639+y,a +16f2: f8 66 mov x,$66 +16f4: ae pop a +16f5: d4 73 mov $73+x,a +16f7: ae pop a +16f8: d4 72 mov $72+x,a +16fa: 5f 7b 14 jmp $147b + +16fd: eb 00 mov y,$00 +16ff: f6 38 06 mov a,$0638+y +1702: bc inc a +1703: d6 38 06 mov $0638+y,a +1706: 8d 04 mov y,#$04 +1708: f7 04 mov a,($04)+y +170a: f0 07 beq $1713 +170c: eb 00 mov y,$00 +170e: 76 38 06 cmp a,$0638+y +1711: f0 0f beq $1722 +1713: 8d 00 mov y,#$00 +1715: f7 04 mov a,($04)+y +1717: d4 72 mov $72+x,a +1719: 8d 01 mov y,#$01 +171b: f7 04 mov a,($04)+y +171d: d4 73 mov $73+x,a +171f: 5f a8 14 jmp $14a8 + +1722: f5 77 05 mov a,$0577+x +1725: 80 setc +1726: 8d 05 mov y,#$05 +1728: b7 04 sbc a,($04)+y +172a: d5 77 05 mov $0577+x,a +172d: f5 78 05 mov a,$0578+x +1730: 8d 06 mov y,#$06 +1732: b7 04 sbc a,($04)+y +1734: d5 78 05 mov $0578+x,a +1737: eb 00 mov y,$00 +1739: f6 3a 06 mov a,$063a+y +173c: f8 65 mov x,$65 +173e: d5 57 05 mov $0557+x,a +1741: f8 66 mov x,$66 +1743: e4 04 mov a,$04 +1745: 60 clrc +1746: 88 0a adc a,#$0a +1748: d4 72 mov $72+x,a +174a: e4 05 mov a,$05 +174c: 88 00 adc a,#$00 +174e: d4 73 mov $73+x,a +1750: 8d 09 mov y,#$09 +1752: f7 04 mov a,($04)+y +1754: 60 clrc +1755: 94 72 adc a,$72+x +1757: d4 72 mov $72+x,a +1759: f4 73 mov a,$73+x +175b: 88 00 adc a,#$00 +175d: d4 73 mov $73+x,a +175f: f8 65 mov x,$65 +1761: f4 82 mov a,$82+x +1763: 60 clrc +1764: 88 05 adc a,#$05 +1766: d4 82 mov $82+x,a +1768: 5f 7b 14 jmp $147b + +; vcmd f7-f8 - set detune +176b: 28 02 and a,#$02 +176d: c4 67 mov $67,a +176f: 3f bd 15 call $15bd +1772: d4 ae mov $ae+x,a +1774: 3f bd 15 call $15bd +1777: d4 af mov $af+x,a +1779: e8 00 mov a,#$00 +177b: d4 be mov $be+x,a +177d: d4 bf mov $bf+x,a +177f: 5f 13 15 jmp $1513 + +; vcmd f9 - go to loop +1782: eb 65 mov y,$65 +1784: fc inc y +1785: f7 70 mov a,($70)+y +1787: 8d 10 mov y,#$10 +1789: 3f a9 0e call $0ea9 +178c: f8 66 mov x,$66 +178e: d4 72 mov $72+x,a +1790: db 73 mov $73+x,y +1792: e8 1c mov a,#$1c +1794: d4 ae mov $ae+x,a +1796: e8 02 mov a,#$02 +1798: d4 af mov $af+x,a +179a: f8 65 mov x,$65 +179c: e8 00 mov a,#$00 +179e: d5 4f 05 mov $054f+x,a +17a1: d5 57 05 mov $0557+x,a +17a4: 5f 7b 14 jmp $147b + +; vcmd fa - set tempo +17a7: 3f bd 15 call $15bd +17aa: c5 00 02 mov $0200,a +17ad: 3f bd 15 call $15bd +17b0: c5 02 02 mov $0202,a +17b3: 3f bd 15 call $15bd +17b6: c5 03 02 mov $0203,a +17b9: 5f 7b 14 jmp $147b + +17bc: 8f ff 92 mov $92,#$ff +17bf: 8f 20 93 mov $93,#$20 +17c2: 8f 00 64 mov $64,#$00 +17c5: da 94 movw $94,ya +17c7: 8f 80 98 mov $98,#$80 +17ca: 8f 00 96 mov $96,#$00 +17cd: c8 00 cmp x,#$00 +17cf: d0 0c bne $17dd +17d1: cd 02 mov x,#$02 +17d3: cb 99 mov $99,y +17d5: c4 9a mov $9a,a +17d7: 8f 99 94 mov $94,#$99 +17da: 8f 00 95 mov $95,#$00 +17dd: d8 97 mov $97,x +17df: 6f ret + +17e0: 8b 93 dec $93 +17e2: f0 01 beq $17e5 +17e4: 6f ret + +17e5: eb 96 mov y,$96 +17e7: f7 94 mov a,($94)+y +17e9: 24 98 and a,$98 +17eb: f0 04 beq $17f1 +17ed: e8 a0 mov a,#$a0 +17ef: 2f 02 bra $17f3 +17f1: e8 50 mov a,#$50 +17f3: c4 42 mov $42,a +17f5: 8f 01 43 mov $43,#$01 +17f8: 8f ff 41 mov $41,#$ff +17fb: 4b 98 lsr $98 +17fd: b0 0d bcs $180c +17ff: 8f 0c 93 mov $93,#$0c +1802: 78 08 98 cmp $98,#$08 +1805: d0 19 bne $1820 +1807: 8f 24 93 mov $93,#$24 +180a: 2f 14 bra $1820 +180c: 8f 80 98 mov $98,#$80 +180f: 8f 3c 93 mov $93,#$3c +1812: ab 96 inc $96 +1814: e4 96 mov a,$96 +1816: 64 97 cmp a,$97 +1818: d0 06 bne $1820 +181a: 8f 60 93 mov $93,#$60 +181d: 8f 00 96 mov $96,#$00 +1820: e8 00 mov a,#$00 +1822: 5f a9 0c jmp $0ca9 + +1825: e8 02 mov a,#$02 +1827: d4 68 mov $68+x,a +1829: 6f ret + +182a: 78 80 ad cmp $ad,#$80 +182d: 90 08 bcc $1837 +182f: 60 clrc +1830: 84 ad adc a,$ad +1832: 10 09 bpl $183d +1834: e8 00 mov a,#$00 +1836: 6f ret + +1837: 84 ad adc a,$ad +1839: 10 02 bpl $183d +183b: e8 7f mov a,#$7f +183d: 6f ret + +; vcmd table (f0-fa) +183e: dw $15c8 ; f0 - end of melody +1840: dw $15d3 ; f1 - delta expression +1842: dw $1617 ; f2 - absolute expression +1844: dw $1622 ; f3 - mute +1846: dw $163e ; f4 - rest +1848: dw $1650 ; f5 - set sound/instrument +184a: dw $1693 ; f6 - play phrase +184c: dw $176b ; f7 - set detune +184e: dw $176b ; f8 - set detune +1850: dw $1782 ; f9 - go to loop +1852: dw $17a7 ; fa - set tempo + +1854: e4 01 mov a,$01 +1856: 1c asl a +1857: 44 01 eor a,$01 +1859: 1c asl a +185a: 1c asl a +185b: 1c asl a +185c: 2b 03 rol $03 +185e: 2b 02 rol $02 +1860: 2b 01 rol $01 +1862: e4 03 mov a,$03 +1864: 6f ret + +1865: 8f 00 92 mov $92,#$00 +1868: 8d 1a mov y,#$1a +186a: 3f a9 0e call $0ea9 +186d: da 70 movw $70,ya +186f: 8d 00 mov y,#$00 +1871: f7 70 mov a,($70)+y +1873: c4 63 mov $63,a +1875: c4 64 mov $64,a +1877: f0 66 beq $18df +1879: 8f 00 65 mov $65,#$00 +187c: 8f 00 66 mov $66,#$00 +187f: fc inc y +1880: f7 70 mov a,($70)+y +1882: 6d push y +1883: 8d 10 mov y,#$10 +1885: 3f a9 0e call $0ea9 +1888: f8 66 mov x,$66 +188a: d4 72 mov $72+x,a +188c: dd mov a,y +188d: ee pop y +188e: d4 73 mov $73+x,a +1890: f8 65 mov x,$65 +1892: e8 19 mov a,#$19 +1894: d4 82 mov $82+x,a +1896: e8 04 mov a,#$04 +1898: d4 68 mov $68+x,a +189a: e8 ff mov a,#$ff +189c: d5 67 05 mov $0567+x,a +189f: e8 01 mov a,#$01 +18a1: d5 47 05 mov $0547+x,a +18a4: 7d mov a,x +18a5: d5 6f 05 mov $056f+x,a +18a8: f8 66 mov x,$66 +18aa: e8 1c mov a,#$1c +18ac: d4 ae mov $ae+x,a +18ae: e8 02 mov a,#$02 +18b0: d4 af mov $af+x,a +18b2: e8 00 mov a,#$00 +18b4: d5 77 05 mov $0577+x,a +18b7: d5 78 05 mov $0578+x,a +18ba: f8 65 mov x,$65 +18bc: d5 4f 05 mov $054f+x,a +18bf: d5 57 05 mov $0557+x,a +18c2: e8 00 mov a,#$00 +18c4: c5 00 02 mov $0200,a +18c7: c5 02 02 mov $0202,a +18ca: e8 01 mov a,#$01 +18cc: c5 03 02 mov $0203,a +18cf: e8 ff mov a,#$ff +18d1: c5 01 02 mov $0201,a +18d4: ab 66 inc $66 +18d6: ab 66 inc $66 +18d8: 3d inc x +18d9: d8 65 mov $65,x +18db: 3e 63 cmp x,$63 +18dd: 90 a0 bcc $187f +18df: 6f ret + +18e0: dw $145a +18e2: dw $1463 +18e4: dw $147b + +18e6: ba 21 movw ya,$21 +18e8: da 0a movw $0a,ya +18ea: 6f ret + +18eb: eb 21 mov y,$21 +18ed: fa 1f f6 mov ($f6),($1f) +18f0: 00 nop +18f1: 00 nop +18f2: 00 nop +18f3: 00 nop +18f4: e4 f4 mov a,$f4 +18f6: d7 0a mov ($0a)+y,a +18f8: dc dec y +18f9: e4 f5 mov a,$f5 +18fb: d7 0a mov ($0a)+y,a +18fd: dc dec y +18fe: e4 f6 mov a,$f6 +1900: d7 0a mov ($0a)+y,a +1902: dc dec y +1903: e4 f7 mov a,$f7 +1905: d7 0a mov ($0a)+y,a +1907: dc dec y +1908: 10 ea bpl $18f4 +190a: ba 0a movw ya,$0a +190c: 7a 21 addw ya,$21 +190e: da 0a movw $0a,ya +1910: 3a 0a incw $0a +1912: 8f b1 f1 mov $f1,#$b1 +1915: fa 1f f6 mov ($f6),($1f) +1918: 6f ret + +1919: eb 21 mov y,$21 +191b: fa 1f f6 mov ($f6),($1f) +191e: e4 f6 mov a,$f6 +1920: 64 f6 cmp a,$f6 +1922: d0 fa bne $191e +1924: 68 00 cmp a,#$00 +1926: f0 f6 beq $191e +1928: 64 1f cmp a,$1f +192a: f0 f2 beq $191e +192c: c4 1f mov $1f,a +192e: e4 f4 mov a,$f4 +1930: d7 0a mov ($0a)+y,a +1932: dc dec y +1933: 30 19 bmi $194e +1935: e4 f5 mov a,$f5 +1937: d7 0a mov ($0a)+y,a +1939: dc dec y +193a: 30 12 bmi $194e +193c: e4 f7 mov a,$f7 +193e: d7 0a mov ($0a)+y,a +1940: cb f7 mov $f7,y +1942: fa 0a f4 mov ($f4),($0a) +1945: fa 0b f5 mov ($f5),($0b) +1948: fa 1f f6 mov ($f6),($1f) +194b: dc dec y +194c: 10 d0 bpl $191e +194e: 8f b1 f1 mov $f1,#$b1 +1951: fa 1f f6 mov ($f6),($1f) +1954: ba 0a movw ya,$0a +1956: 7a 21 addw ya,$21 +1958: da 0a movw $0a,ya +195a: 3a 0a incw $0a +195c: 6f ret + +195e: dw $0bcb +1860: dw $0c0a +1862: dw $0c12 \ No newline at end of file diff --git a/snes/Sculptured Software/Super Star Wars.s b/snes/Sculptured Software/Super Star Wars.s new file mode 100644 index 00000000..54f5efd8 --- /dev/null +++ b/snes/Sculptured Software/Super Star Wars.s @@ -0,0 +1,1876 @@ +0700: 20 clrp +0701: cd ff mov x,#$ff ; set stack pointer +0703: bd mov sp,x +0704: 8f 6c f2 mov $f2,#$6c ; reset DSP flags +0707: d8 f3 mov $f3,x +0709: 8f b0 f1 mov $f1,#$b0 ; clear input ports APUI00-APUI04 +070c: 8f 20 fa mov $fa,#$20 +070f: 8f 81 f1 mov $f1,#$81 ; toggle timer 2 +0712: 3f f7 0d call $0df7 ; clear/reset routine +0715: 8f 00 0b mov $0b,#$00 ; variables = sample directory start +0718: 8f 18 0c mov $0c,#$18 +071b: 8d 03 mov y,#$03 ; set temporary storage +071d: f6 ff ff mov a,$ffff+y +0720: 16 27 07 or a,$0727+y +0723: d6 ff ff mov $ffff+y,a +0726: fe f5 dbnz y,$071d +0728: ab 15 inc $15 +072a: e4 1b mov a,$1b +072c: d0 05 bne $0733 +072e: 3f 86 15 call $1586 ; do a random number generator (RNG) +0731: 2f 03 bra $0736 +0733: 3f 58 08 call $0858 +0736: e4 f6 mov a,$f6 +0738: f0 03 beq $073d +073a: 3f 3d 0b call $0b3d +073d: e4 fd mov a,$fd +073f: 60 clrc +0740: 84 14 adc a,$14 +0742: c4 14 mov $14,a +0744: 68 05 cmp a,#$05 +0746: 90 ee bcc $0736 +0748: a8 05 sbc a,#$05 +074a: c4 14 mov $14,a +074c: 68 14 cmp a,#$14 +074e: 90 d8 bcc $0728 +0750: 8f 00 14 mov $14,#$00 +0753: 2f d3 bra $0728 +0755: 8d 00 mov y,#$00 +0757: 8f aa f4 mov $f4,#$aa +075a: 8f bb f5 mov $f5,#$bb +075d: f8 f4 mov x,$f4 +075f: c8 cc cmp x,#$cc +0761: d0 fa bne $075d +0763: fa f6 03 mov ($03),($f6) +0766: fa f7 04 mov ($04),($f7) +0769: 7d mov a,x +076a: f8 f5 mov x,$f5 +076c: c4 f4 mov $f4,a +076e: d0 05 bne $0775 +0770: d8 f6 mov $f6,x +0772: 1f 03 00 jmp ($0003+x) + +0775: cd 00 mov x,#$00 +0777: 3e f4 cmp x,$f4 +0779: d0 fc bne $0777 +077b: e4 f5 mov a,$f5 +077d: d7 03 mov ($03)+y,a +077f: f8 f4 mov x,$f4 +0781: d8 f4 mov $f4,x +0783: 3a 03 incw $03 +0785: 3e f4 cmp x,$f4 +0787: f0 fc beq $0785 +0789: 3d inc x +078a: 3e f4 cmp x,$f4 +078c: f0 ed beq $077b +078e: f8 f4 mov x,$f4 +0790: 2f d1 bra $0763 +0792: 3f f7 0d call $0df7 +0795: 8f b0 f1 mov $f1,#$b0 +0798: cd 00 mov x,#$00 +079a: f5 55 07 mov a,$0755+x +079d: d5 00 01 mov $0100+x,a +07a0: 3d inc x +07a1: c8 3d cmp x,#$3d +07a3: 90 f5 bcc $079a +07a5: 5f 00 01 jmp $0100 + +; gain tables +07a8: db $ff,$d6,$a0,$80,$6b,$50,$40,$36,$28,$20,$1b,$14,$10,$0e,$0b,$08,$06,$05,$04,$03,$02,$01 +07be: db $1d,$1c,$1b,$1a,$19,$18,$17,$16,$15,$14,$13,$12,$11,$10,$0f,$0e,$0d,$0c,$0a,$09,$06,$00 + +; DSP registers: VxENVX +07d4: db $08,$18,$28,$38,$48,$58,$68,$78 +; DSP registers: VxGAIN +07dc: db $07,$17,$27,$37,$47,$57,$67,$77 +; DSP registers: VxSCRN (select sample) +07e4: db $04,$14,$24,$34,$44,$54,$64,$74 +; DSP registers: VxPITCHL +07ec: db $02,$12,$22,$32,$42,$52,$62,$72 +; DSP registers: VxVOLL +07f4: db $00,$10,$20,$30,$40,$50,$60,$70 + +; voice numbers and bits for clearing those void bits +07fc: db $01,$02,$04,$08,$10,$20,$40,$80,$fe,$fd,$fb,$f7,$ef,$df,$bf,$7f + +; echo poke registers +080c: db $7d,$2c,$3c,$0d,$0f,$1f,$2f,$3f,$4f,$5f,$6f,$7f + +0818: db $02,$02,$02,$02,$02,$03,$03,$03 +0820: db $97,$ac,$c1,$d6,$eb,$00,$15,$2a + +0828: db $03,$03,$03,$03,$03,$03,$03,$03 +0830: db $3f,$54,$69,$7e,$93,$a8,$bd,$d2 + +0838: db $03,$03,$04,$04,$04,$04,$04,$04 +0840: db $e7,$fc,$11,$26,$3b,$50,$65,$7a + +0848: db $04,$04,$04,$04,$04,$04,$05,$05 +0850: db $8f,$a5,$bb,$d1,$e7,$fd,$13,$29 + +0858: 3f 86 15 call $1586 ; use RNG +085b: 3f 0a 13 call $130a +085e: 8f 00 2f mov $2f,#$00 +0861: 8f 00 44 mov $44,#$00 +0864: 8f 7c f2 mov $f2,#$7c ; clear end of sample flags? +0867: e4 f3 mov a,$f3 +0869: 04 41 or a,$41 +086b: 24 47 and a,$47 +086d: c4 41 mov $41,a +086f: 8f 00 f3 mov $f3,#$00 +0872: 24 42 and a,$42 +0874: 04 43 or a,$43 +0876: c4 43 mov $43,a +0878: cd 07 mov x,#$07 +087a: 8f 7a 0d mov $0d,#$7a +087d: 8f 04 0e mov $0e,#$04 +0880: d8 0f mov $0f,x +0882: f5 fc 07 mov a,$07fc+x ; clear voice number bits +0885: c4 31 mov $31,a +0887: 48 ff eor a,#$ff +0889: c4 32 mov $32,a +088b: f4 53 mov a,$53+x +088d: 28 02 and a,#$02 +088f: c4 30 mov $30,a +0891: d0 06 bne $0899 +0893: f5 77 02 mov a,$0277+x +0896: 5f 9e 08 jmp $089e +0899: 3f db 0e call $0edb +089c: f8 0f mov x,$0f +089e: 75 7f 02 cmp a,$027f+x +08a1: d0 10 bne $08b3 +08a3: 3f 75 10 call $1075 +08a6: 3f 23 0b call $0b23 +08a9: e4 48 mov a,$48 +08ab: 24 45 and a,$45 +08ad: 24 31 and a,$31 +08af: d0 43 bne $08f4 +08b1: f0 44 beq $08f7 +08b3: d5 7f 02 mov $027f+x,a +08b6: 09 31 2f or ($2f),($31) +08b9: 3f 75 10 call $1075 +08bc: 7d mov a,x +08bd: 1c asl a +08be: 5d mov x,a +08bf: e4 49 mov a,$49 +08c1: d5 87 02 mov $0287+x,a +08c4: e4 4a mov a,$4a +08c6: d5 88 02 mov $0288+x,a +08c9: f8 0f mov x,$0f +08cb: e4 4b mov a,$4b +08cd: 28 20 and a,#$20 +08cf: f0 05 beq $08d6 +08d1: 29 32 42 and ($42),($32) +08d4: 2f 03 bra $08d9 +08d6: 09 31 42 or ($42),($31) +08d9: e4 4b mov a,$4b +08db: 28 40 and a,#$40 +08dd: f0 05 beq $08e4 +08df: 09 31 48 or ($48),($31) +08e2: 2f 03 bra $08e7 +08e4: 29 32 48 and ($48),($32) +08e7: 3f 23 0b call $0b23 +08ea: e4 48 mov a,$48 +08ec: 04 45 or a,$45 +08ee: 24 31 and a,$31 +08f0: d0 02 bne $08f4 +08f2: f0 03 beq $08f7 +08f4: 09 31 44 or ($44),($31) +08f7: 1d dec x +08f8: 30 0a bmi $0904 +08fa: 80 setc +08fb: b8 15 0d sbc $0d,#$15 +08fe: b8 00 0e sbc $0e,#$00 +0901: 5f 80 08 jmp $0880 + +0904: e4 45 mov a,$45 +0906: 24 43 and a,$43 +0908: 04 44 or a,$44 +090a: c4 46 mov $46,a +090c: 8f 5c f2 mov $f2,#$5c +090f: c4 f3 mov $f3,a +0911: cd 07 mov x,#$07 +0913: 8f d2 0d mov $0d,#$d2 +0916: 8f 03 0e mov $0e,#$03 +0919: d8 0f mov $0f,x +091b: f4 53 mov a,$53+x +091d: fd mov y,a +091e: 28 40 and a,#$40 +0920: 0d push psw +0921: dd mov a,y +0922: 28 04 and a,#$04 +0924: 0d push psw +0925: 7d mov a,x +0926: fd mov y,a +0927: 1c asl a +0928: 5d mov x,a +0929: f5 48 02 mov a,$0248+x ; get base note +092c: c4 2e mov $2e,a +092e: f5 47 02 mov a,$0247+x +0931: c4 2d mov $2d,a +0933: 8e pop psw +0934: f0 11 beq $0947 +0936: 4d push x ; save word addressing +0937: 3f db 0e call $0edb ; advance pitch envelope +093a: ce pop x ; restore pitch flag +093b: 7a 2d addw ya,$2d +093d: 80 setc +093e: a8 b0 sbc a,#$b0 +0940: c4 2d mov $2d,a +0942: dd mov a,y +0943: a8 04 sbc a,#$04 +0945: c4 2e mov $2e,a +0947: f5 88 02 mov a,$0288+x +094a: fd mov y,a +094b: f5 87 02 mov a,$0287+x +094e: 7a 2d addw ya,$2d +0950: 8e pop psw +0951: d0 03 bne $0956 +0953: 3f 9f 10 call $109f ; translate note to frequency +0956: f8 0f mov x,$0f +0958: d5 57 02 mov $0257+x,a +095b: dd mov a,y +095c: d5 5f 02 mov $025f+x,a +095f: 80 setc +0960: b8 15 0d sbc $0d,#$15 +0963: b8 00 0e sbc $0e,#$00 +0966: 1d dec x +0967: 10 b0 bpl $0919 +0969: 8f 5c f2 mov $f2,#$5c +096c: 8f 00 f3 mov $f3,#$00 +096f: cd 07 mov x,#$07 +0971: 8f 2a 0d mov $0d,#$2a +0974: 8f 03 0e mov $0e,#$03 +0977: d8 0f mov $0f,x +0979: f5 fc 07 mov a,$07fc+x +097c: c4 31 mov $31,a +097e: 48 ff eor a,#$ff +0980: c4 32 mov $32,a +0982: f4 53 mov a,$53+x +0984: 28 01 and a,#$01 +0986: d0 06 bne $098e +0988: f5 2f 02 mov a,$022f+x +098b: 5f 93 09 jmp $0993 + +098e: 3f db 0e call $0edb +0991: f8 0f mov x,$0f +0993: d5 37 02 mov $0237+x,a +0996: fd mov y,a +0997: e4 2f mov a,$2f +0999: 24 31 and a,$31 +099b: f0 0a beq $09a7 +099d: f5 e4 07 mov a,$07e4+x +09a0: c4 f2 mov $f2,a +09a2: f5 7f 02 mov a,$027f+x +09a5: c4 f3 mov $f3,a +09a7: e4 40 mov a,$40 +09a9: 24 31 and a,$31 +09ab: f0 05 beq $09b2 +09ad: 29 32 40 and ($40),($32) +09b0: 2f 37 bra $09e9 +09b2: f5 d4 07 mov a,$07d4+x +09b5: c4 f2 mov $f2,a +09b7: dd mov a,y +09b8: 80 setc +09b9: a4 f3 sbc a,$f3 +09bb: b0 09 bcs $09c6 +09bd: 8f 80 22 mov $22,#$80 +09c0: 48 ff eor a,#$ff +09c2: bc inc a +09c3: 5f c9 09 jmp $09c9 + +09c6: 8f c0 22 mov $22,#$c0 +09c9: 5c lsr a +09ca: d0 09 bne $09d5 +09cc: ad 00 cmp y,#$00 +09ce: d0 05 bne $09d5 +09d0: e8 82 mov a,#$82 +09d2: 5f e3 09 jmp $09e3 + +09d5: 8d 15 mov y,#$15 +09d7: 76 a8 07 cmp a,$07a8+y +09da: 90 02 bcc $09de +09dc: fe f9 dbnz y,$09d7 +09de: f6 be 07 mov a,$07be+y +09e1: 04 22 or a,$22 +09e3: 75 3f 02 cmp a,$023f+x +09e6: f0 0c beq $09f4 +09e8: fd mov y,a +09e9: f5 dc 07 mov a,$07dc+x +09ec: c4 f2 mov $f2,a +09ee: cb f3 mov $f3,y +09f0: dd mov a,y +09f1: d5 3f 02 mov $023f+x,a +09f4: f5 ec 07 mov a,$07ec+x +09f7: c4 f2 mov $f2,a +09f9: fd mov y,a +09fa: f5 57 02 mov a,$0257+x +09fd: c4 f3 mov $f3,a +09ff: fc inc y +0a00: cb f2 mov $f2,y +0a02: f5 5f 02 mov a,$025f+x +0a05: c4 f3 mov $f3,a +0a07: 80 setc +0a08: b8 15 0d sbc $0d,#$15 +0a0b: b8 00 0e sbc $0e,#$00 +0a0e: 1d dec x +0a0f: 30 03 bmi $0a14 +0a11: 5f 77 09 jmp $0977 + +0a14: 8f 4c f2 mov $f2,#$4c +0a17: fa 46 f3 mov ($f3),($46) +0a1a: e4 46 mov a,$46 +0a1c: 48 ff eor a,#$ff +0a1e: c4 47 mov $47,a +0a20: 29 47 41 and ($41),($47) +0a23: 29 47 43 and ($43),($47) +0a26: 8f 00 45 mov $45,#$00 +0a29: cd 07 mov x,#$07 +0a2b: 8f 29 0d mov $0d,#$29 +0a2e: 8f 05 0e mov $0e,#$05 +0a31: 8f 00 34 mov $34,#$00 +0a34: d8 0f mov $0f,x +0a36: e4 52 mov a,$52 +0a38: d0 13 bne $0a4d +0a3a: f4 53 mov a,$53+x +0a3c: 28 08 and a,#$08 +0a3e: c4 34 mov $34,a +0a40: d0 06 bne $0a48 +0a42: f5 6f 02 mov a,$026f+x +0a45: 5f 4d 0a jmp $0a4d + +0a48: 3f db 0e call $0edb +0a4b: f8 0f mov x,$0f +0a4d: fd mov y,a +0a4e: f5 67 02 mov a,$0267+x +0a51: c4 29 mov $29,a +0a53: cf mul ya +0a54: cd 64 mov x,#$64 +0a56: 9e div ya,x +0a57: f8 0f mov x,$0f +0a59: eb 34 mov y,$34 +0a5b: f0 11 beq $0a6e +0a5d: c4 27 mov $27,a +0a5f: 8d 15 mov y,#$15 +0a61: f7 0d mov a,($0d)+y +0a63: d0 04 bne $0a69 +0a65: e4 27 mov a,$27 +0a67: 2f 05 bra $0a6e +0a69: e4 29 mov a,$29 +0a6b: 80 setc +0a6c: a4 27 sbc a,$27 +0a6e: c4 27 mov $27,a +0a70: f5 f4 07 mov a,$07f4+x +0a73: fd mov y,a +0a74: cb f2 mov $f2,y +0a76: fa 27 f3 mov ($f3),($27) +0a79: e4 29 mov a,$29 +0a7b: 80 setc +0a7c: a4 27 sbc a,$27 +0a7e: fc inc y +0a7f: cb f2 mov $f2,y +0a81: c4 f3 mov $f3,a +0a83: 80 setc +0a84: b8 16 0d sbc $0d,#$16 +0a87: b8 00 0e sbc $0e,#$00 +0a8a: 1d dec x +0a8b: 30 03 bmi $0a90 +0a8d: 5f 34 0a jmp $0a34 + +0a90: cd 07 mov x,#$07 +0a92: 8d 0e mov y,#$0e +0a94: f5 06 02 mov a,$0206+x +0a97: f0 2b beq $0ac4 +0a99: f4 53 mov a,$53+x +0a9b: 28 80 and a,#$80 +0a9d: f0 09 beq $0aa8 +0a9f: f5 fc 07 mov a,$07fc+x +0aa2: 24 41 and a,$41 +0aa4: d0 19 bne $0abf +0aa6: 2f 1c bra $0ac4 +0aa8: f6 17 02 mov a,$0217+y +0aab: 80 setc +0aac: a8 01 sbc a,#$01 +0aae: d6 17 02 mov $0217+y,a +0ab1: c4 27 mov $27,a +0ab3: f6 18 02 mov a,$0218+y +0ab6: a8 00 sbc a,#$00 +0ab8: d6 18 02 mov $0218+y,a +0abb: 04 27 or a,$27 +0abd: d0 05 bne $0ac4 +0abf: e8 00 mov a,#$00 +0ac1: d5 06 02 mov $0206+x,a +0ac4: dc dec y +0ac5: dc dec y +0ac6: 1d dec x +0ac7: 10 cb bpl $0a94 +0ac9: ec 00 02 mov y,$0200 +0acc: f0 54 beq $0b22 +0ace: 8c 01 02 dec $0201 +0ad1: d0 4f bne $0b22 +0ad3: cc 01 02 mov $0201,y +0ad6: e4 16 mov a,$16 +0ad8: e9 02 02 mov x,$0202 +0adb: 30 0e bmi $0aeb +0add: 60 clrc +0ade: 85 03 02 adc a,$0203 +0ae1: b0 04 bcs $0ae7 +0ae3: 68 4b cmp a,#$4b +0ae5: 90 13 bcc $0afa +0ae7: e8 4b mov a,#$4b +0ae9: 2f 0a bra $0af5 +0aeb: 80 setc +0aec: a5 03 02 sbc a,$0203 +0aef: f0 04 beq $0af5 +0af1: b0 07 bcs $0afa +0af3: e8 00 mov a,#$00 +0af5: 8d 00 mov y,#$00 +0af7: cc 00 02 mov $0200,y +0afa: c4 16 mov $16,a +0afc: 5d mov x,a +0afd: 8f 2c f2 mov $f2,#$2c +0b00: 65 04 02 cmp a,$0204 +0b03: 90 03 bcc $0b08 +0b05: e5 04 02 mov a,$0204 +0b08: c4 f3 mov $f3,a +0b0a: 8f 3c f2 mov $f2,#$3c +0b0d: 7d mov a,x +0b0e: 65 05 02 cmp a,$0205 +0b11: 90 03 bcc $0b16 +0b13: e5 04 02 mov a,$0204 +0b16: c4 f3 mov $f3,a +0b18: 8f 0c f2 mov $f2,#$0c +0b1b: d8 f3 mov $f3,x +0b1d: 8f 1c f2 mov $f2,#$1c +0b20: d8 f3 mov $f3,x +0b22: 6f ret + +0b23: e4 4b mov a,$4b +0b25: 10 0c bpl $0b33 +0b27: 28 1f and a,#$1f +0b29: 8f 6c f2 mov $f2,#$6c +0b2c: c4 f3 mov $f3,a +0b2e: 09 31 4d or ($4d),($31) +0b31: 2f 03 bra $0b36 +0b33: 29 32 4d and ($4d),($32) +0b36: 8f 3d f2 mov $f2,#$3d +0b39: fa 4d f3 mov ($f3),($4d) +0b3c: 6f ret + +0b3d: c4 17 mov $17,a +0b3f: fa f4 19 mov ($19),($f4) +0b42: fa f5 1a mov ($1a),($f5) +0b45: e4 f7 mov a,$f7 +0b47: 8f b1 f1 mov $f1,#$b1 +0b4a: 28 fe and a,#$fe +0b4c: c4 18 mov $18,a +0b4e: fa 17 f6 mov ($f6),($17) +0b51: 5d mov x,a +0b52: c8 1d cmp x,#$1d +0b54: b0 13 bcs $0b69 +0b56: e4 19 mov a,$19 +0b58: eb 1a mov y,$1a +0b5a: 1f a4 17 jmp ($17a4+x) + +0b5d: 8f ff 1b mov $1b,#$ff +0b60: 3f 41 0e call $0e41 +0b63: 8f 6c f2 mov $f2,#$6c +0b66: 8f 00 f3 mov $f3,#$00 +0b69: 6f ret + +0b6a: da 3a movw $3a,ya +0b6c: 8f ff 39 mov $39,#$ff +0b6f: 6f ret + +0b70: c4 52 mov $52,a +0b72: 6f ret + +0b73: e8 00 mov a,#$00 +0b75: c5 00 02 mov $0200,a +0b78: 6f ret + +0b79: cd 01 mov x,#$01 +0b7b: 2f 02 bra $0b7f +0b7d: cd ff mov x,#$ff +0b7f: c5 00 02 mov $0200,a +0b82: c5 01 02 mov $0201,a +0b85: cc 03 02 mov $0203,y +0b88: c9 02 02 mov $0202,x +0b8b: 6f ret + +0b8c: 8f 00 5c mov $5c,#$00 +0b8f: 68 00 cmp a,#$00 +0b91: d0 03 bne $0b96 +0b93: c5 4f 05 mov $054f,a +0b96: 6f ret + +0b97: c5 16 02 mov $0216,a +0b9a: cd 07 mov x,#$07 +0b9c: ad 80 cmp y,#$80 +0b9e: f0 17 beq $0bb7 +0ba0: e8 01 mov a,#$01 +0ba2: b0 0e bcs $0bb2 +0ba4: ad 00 cmp y,#$00 +0ba6: d0 08 bne $0bb0 +0ba8: e5 16 02 mov a,$0216 +0bab: 75 0e 02 cmp a,$020e+x +0bae: d0 22 bne $0bd2 +0bb0: e8 80 mov a,#$80 +0bb2: 75 06 02 cmp a,$0206+x +0bb5: d0 1b bne $0bd2 +0bb7: f5 dc 07 mov a,$07dc+x +0bba: c4 f2 mov $f2,a +0bbc: e8 00 mov a,#$00 +0bbe: c4 f3 mov $f3,a +0bc0: d5 2f 02 mov $022f+x,a +0bc3: d5 06 02 mov $0206+x,a +0bc6: d5 77 02 mov $0277+x,a +0bc9: d4 53 mov $53+x,a +0bcb: f5 fc 07 mov a,$07fc+x +0bce: 04 45 or a,$45 +0bd0: c4 45 mov $45,a +0bd2: 1d dec x +0bd3: 10 c7 bpl $0b9c +0bd5: 6f ret + +0bd6: 8d 0e mov y,#$0e +0bd8: c5 16 02 mov $0216,a +0bdb: 3f bb 0d call $0dbb +0bde: da 09 movw $09,ya +0be0: 8d 00 mov y,#$00 +0be2: f7 09 mov a,($09)+y +0be4: c4 3c mov $3c,a +0be6: 3a 09 incw $09 +0be8: 8d 07 mov y,#$07 +0bea: f7 09 mov a,($09)+y +0bec: c4 3d mov $3d,a +0bee: 8d 06 mov y,#$06 +0bf0: f7 09 mov a,($09)+y +0bf2: c4 3e mov $3e,a +0bf4: 8f 80 3f mov $3f,#$80 +0bf7: cd 07 mov x,#$07 +0bf9: 3f 44 0c call $0c44 +0bfc: 30 36 bmi $0c34 +0bfe: e8 80 mov a,#$80 +0c00: d5 06 02 mov $0206+x,a +0c03: e5 16 02 mov a,$0216 +0c06: d5 0e 02 mov $020e+x,a +0c09: 8d 02 mov y,#$02 +0c0b: f7 09 mov a,($09)+y +0c0d: c4 35 mov $35,a +0c0f: fc inc y +0c10: f7 09 mov a,($09)+y +0c12: c4 36 mov $36,a +0c14: 8d 04 mov y,#$04 +0c16: f7 09 mov a,($09)+y +0c18: c4 37 mov $37,a +0c1a: fc inc y +0c1b: f7 09 mov a,($09)+y +0c1d: c4 38 mov $38,a +0c1f: e4 39 mov a,$39 +0c21: f0 04 beq $0c27 +0c23: ba 3a movw ya,$3a +0c25: da 37 movw $37,ya +0c27: 8d 01 mov y,#$01 +0c29: f7 09 mov a,($09)+y +0c2b: 2d push a +0c2c: 8d 00 mov y,#$00 +0c2e: f7 09 mov a,($09)+y +0c30: ee pop y +0c31: 3f 6e 0c call $0c6e +0c34: 60 clrc +0c35: 98 08 09 adc $09,#$08 +0c38: 90 02 bcc $0c3c +0c3a: ab 0a inc $0a +0c3c: 8b 3c dec $3c +0c3e: d0 a8 bne $0be8 +0c40: 8f 00 39 mov $39,#$00 +0c43: 6f ret + +0c44: 8d 07 mov y,#$07 +0c46: e4 3f mov a,$3f +0c48: 24 3d and a,$3d +0c4a: f0 0c beq $0c58 +0c4c: f5 06 02 mov a,$0206+x +0c4f: f0 15 beq $0c66 +0c51: e4 3e mov a,$3e +0c53: 75 27 02 cmp a,$0227+x +0c56: b0 10 bcs $0c68 +0c58: 4b 3f lsr $3f +0c5a: d0 05 bne $0c61 +0c5c: 8f 80 3f mov $3f,#$80 +0c5f: cd 08 mov x,#$08 +0c61: 1d dec x +0c62: dc dec y +0c63: 10 e1 bpl $0c46 +0c65: 6f ret + +0c66: e4 3e mov a,$3e +0c68: d5 27 02 mov $0227+x,a +0c6b: e8 00 mov a,#$00 +0c6d: 6f ret + +0c6e: d8 33 mov $33,x ; play sound (instrument) +0c70: 2d push a +0c71: f5 dc 07 mov a,$07dc+x +0c74: c4 f2 mov $f2,a +0c76: 8f 9f f3 mov $f3,#$9f +0c79: dd mov a,y +0c7a: d5 67 02 mov $0267+x,a +0c7d: 7d mov a,x +0c7e: 1c asl a +0c7f: 5d mov x,a +0c80: e4 37 mov a,$37 +0c82: d5 47 02 mov $0247+x,a +0c85: e4 38 mov a,$38 +0c87: d5 48 02 mov $0248+x,a +0c8a: e4 35 mov a,$35 +0c8c: d5 17 02 mov $0217+x,a +0c8f: e4 36 mov a,$36 +0c91: d5 18 02 mov $0218+x,a +0c94: ae pop a +0c95: 8d 02 mov y,#$02 +0c97: 3f bb 0d call $0dbb +0c9a: da 07 movw $07,ya ; get current voice and instrument +0c9c: f8 33 mov x,$33 +0c9e: f5 fc 07 mov a,$07fc+x ; get channel bit mask ID +0ca1: c4 4e mov $4e,a +0ca3: 48 ff eor a,#$ff ; and store inversion +0ca5: c4 4f mov $4f,a +0ca7: 8d 00 mov y,#$00 ; get mode flags +0ca9: f7 07 mov a,($07)+y +0cab: d4 53 mov $53+x,a ; save permanently and in local temp +0cad: c4 34 mov $34,a +0caf: 28 20 and a,#$20 ; is pitch modulation enabled? ($20 = pm) +0cb1: f0 05 beq $0cb8 ; if not... +0cb3: 09 4e 50 or ($50),($4e) ; turn pitch mod on +0cb6: 2f 03 bra $0cbb +0cb8: 29 4f 50 and ($50),($4f) ; turn pitch mod off +0cbb: 8f 2d f2 mov $f2,#$2d +0cbe: fa 50 f3 mov ($f3),($50) +0cc1: e4 34 mov a,$34 ; retrieve the saved flag +0cc3: 28 10 and a,#$10 ; is echo enabled? ($10 = echo) +0cc5: f0 2f beq $0cf6 ; if not... +0cc7: 8d 05 mov y,#$05 ; get echo byte from sound +0cc9: f7 07 mov a,($07)+y +0ccb: 8d 0c mov y,#$0c +0ccd: 3f bb 0d call $0dbb +0cd0: 8d 00 mov y,#$00 +0cd2: f6 0c 08 mov a,$080c+y ; get the echo register values to "poke" +0cd5: c4 f2 mov $f2,a ; (from the table) +0cd7: f7 10 mov a,($10)+y ; now get info to feed to the registers +0cd9: ad 01 cmp y,#$01 ; (from the echo environment) +0cdb: f0 04 beq $0ce1 +0cdd: ad 02 cmp y,#$02 +0cdf: d0 09 bne $0cea +0ce1: d6 03 02 mov $0203+y,a +0ce4: 64 16 cmp a,$16 +0ce6: 90 02 bcc $0cea +0ce8: e4 16 mov a,$16 +0cea: c4 f3 mov $f3,a +0cec: fc inc y +0ced: ad 0c cmp y,#$0c ; repeat for every byte of the array +0cef: 90 e1 bcc $0cd2 +0cf1: 09 4e 51 or ($51),($4e) +0cf4: 2f 03 bra $0cf9 + +0cf6: 29 4f 51 and ($51),($4f) +0cf9: 8f 4d f2 mov $f2,#$4d +0cfc: fa 51 f3 mov ($f3),($51) ; send the echo unit +0cff: e4 34 mov a,$34 +0d01: 28 01 and a,#$01 +0d03: 0d push psw +0d04: 8d 01 mov y,#$01 +0d06: f7 07 mov a,($07)+y ; now get the amplitude +0d08: 8e pop psw +0d09: d0 08 bne $0d13 +0d0b: f8 33 mov x,$33 +0d0d: d5 2f 02 mov $022f+x,a +0d10: 5f 29 0d jmp $0d29 + +0d13: 8d 04 mov y,#$04 +0d15: 3f bb 0d call $0dbb +0d18: f8 33 mov x,$33 +0d1a: f5 20 08 mov a,$0820+x +0d1d: c4 0d mov $0d,a +0d1f: f5 18 08 mov a,$0818+x +0d22: c4 0e mov $0e,a +0d24: ba 35 movw ya,$35 +0d26: 3f 64 0e call $0e64 +0d29: e4 34 mov a,$34 +0d2b: 28 04 and a,#$04 +0d2d: f0 1a beq $0d49 +0d2f: 8d 03 mov y,#$03 +0d31: f7 07 mov a,($07)+y +0d33: 8d 06 mov y,#$06 +0d35: 3f bb 0d call $0dbb +0d38: f8 33 mov x,$33 +0d3a: f5 30 08 mov a,$0830+x +0d3d: c4 0d mov $0d,a +0d3f: f5 28 08 mov a,$0828+x +0d42: c4 0e mov $0e,a +0d44: ba 35 movw ya,$35 +0d46: 3f 64 0e call $0e64 +0d49: e4 34 mov a,$34 +0d4b: 28 08 and a,#$08 +0d4d: 0d push psw +0d4e: 8d 04 mov y,#$04 +0d50: f7 07 mov a,($07)+y +0d52: 8e pop psw +0d53: d0 08 bne $0d5d +0d55: f8 33 mov x,$33 +0d57: d5 6f 02 mov $026f+x,a +0d5a: 5f 8a 0d jmp $0d8a + +0d5d: 8d 08 mov y,#$08 +0d5f: 3f bb 0d call $0dbb +0d62: f8 33 mov x,$33 +0d64: f5 50 08 mov a,$0850+x +0d67: c4 0d mov $0d,a +0d69: f5 48 08 mov a,$0848+x +0d6c: c4 0e mov $0e,a +0d6e: ba 35 movw ya,$35 +0d70: 3f 64 0e call $0e64 +0d73: 8d 07 mov y,#$07 +0d75: f7 0d mov a,($0d)+y +0d77: f0 0b beq $0d84 +0d79: 8d 15 mov y,#$15 +0d7b: f7 0d mov a,($0d)+y +0d7d: d0 05 bne $0d84 +0d7f: e8 ff mov a,#$ff +0d81: 5f 86 0d jmp $0d86 + +0d84: e8 00 mov a,#$00 +0d86: 8d 15 mov y,#$15 +0d88: d7 0d mov ($0d)+y,a +0d8a: e4 34 mov a,$34 +0d8c: 28 02 and a,#$02 +0d8e: 0d push psw +0d8f: 8d 02 mov y,#$02 +0d91: f7 07 mov a,($07)+y +0d93: 8e pop psw +0d94: d0 08 bne $0d9e +0d96: f8 33 mov x,$33 +0d98: d5 77 02 mov $0277+x,a +0d9b: 5f b4 0d jmp $0db4 + +0d9e: 8d 0a mov y,#$0a +0da0: 3f bb 0d call $0dbb +0da3: f8 33 mov x,$33 +0da5: f5 40 08 mov a,$0840+x +0da8: c4 0d mov $0d,a +0daa: f5 38 08 mov a,$0838+x +0dad: c4 0e mov $0e,a +0daf: ba 35 movw ya,$35 +0db1: 3f 64 0e call $0e64 +0db4: 09 4e 45 or ($45),($4e) +0db7: 09 4e 40 or ($40),($4e) +0dba: 6f ret + +0dbb: 8f 00 06 mov $06,#$00 ; load current song/sfx/etc. address into stack +0dbe: 1c asl a +0dbf: 2b 06 rol $06 +0dc1: 60 clrc +0dc2: 96 e0 17 adc a,$17e0+y +0dc5: c4 05 mov $05,a +0dc7: e4 06 mov a,$06 +0dc9: 96 e1 17 adc a,$17e1+y +0dcc: c4 06 mov $06,a +0dce: 8d 01 mov y,#$01 +0dd0: f7 05 mov a,($05)+y +0dd2: c4 11 mov $11,a +0dd4: dc dec y +0dd5: f7 05 mov a,($05)+y +0dd7: c4 10 mov $10,a +0dd9: eb 11 mov y,$11 +0ddb: 6f ret + +; pre-defined DSP flags +0ddc: db $6c,$ff ; clear flags +0dde: db $3d,$00 ; turn off noise generator (NON) +0de0: db $4d,$00 ; turn off echo (EON) +0de2: db $7d,$00 ; turn off echo delay time (EDL) +0de4: db $6d,$ff ; pointer to echo memory (ESA) +0de6: db $5d,$18 ; set sample directory ($1800) +0de8: db $5c,$00 ; set key off (KOFF) +0dea: db $2d,$00 ; disable pitch modulation (PMON) +0dec: db $7c,$00 ; end of sample flag +0dee: db $2c,$00 ; turn off EVOLL +0df0: db $3c,$00 ; turn off EVOLR +0df2: db $0c,$4b ; turn on MVOLL +0df4: db $1c,$4b ; turn on MVOLR +0df6: db $ff + +0df7: 8d 00 mov y,#$00 +0df9: f6 dc 0d mov a,$0ddc+y ; set DSP flags from table +0dfc: 68 ff cmp a,#$ff +0dfe: f0 0b beq $0e0b +0e00: c4 f2 mov $f2,a +0e02: fc inc y +0e03: f6 dc 0d mov a,$0ddc+y +0e06: c4 f3 mov $f3,a +0e08: fc inc y +0e09: d0 ee bne $0df9 +0e0b: cd 70 mov x,#$70 +0e0d: e8 00 mov a,#$00 +0e0f: d4 04 mov $04+x,a +0e11: d4 07 mov $07+x,a +0e13: d4 03 mov $03+x,a +0e15: d4 02 mov $02+x,a +0e17: e8 00 mov a,#$00 +0e19: d4 05 mov $05+x,a +0e1b: 7d mov a,x +0e1c: 80 setc +0e1d: a8 10 sbc a,#$10 +0e1f: 5d mov x,a +0e20: 10 eb bpl $0e0d +0e22: e8 02 mov a,#$02 +0e24: cd 07 mov x,#$07 +0e26: 3f 4b 0e call $0e4b +0e29: fd mov y,a +0e2a: d6 00 00 mov $0000+y,a +0e2d: fc inc y +0e2e: ad f0 cmp y,#$f0 +0e30: 90 f8 bcc $0e2a +0e32: 9c dec a +0e33: c4 41 mov $41,a +0e35: c4 43 mov $43,a +0e37: c4 48 mov $48,a +0e39: c4 42 mov $42,a +0e3b: c4 47 mov $47,a +0e3d: 8f 4b 16 mov $16,#$4b +0e40: 6f ret + +0e41: e5 e1 17 mov a,$17e1 +0e44: 8f 6d f2 mov $f2,#$6d +0e47: c4 f3 mov $f3,a +0e49: cd 00 mov x,#$00 +0e4b: c5 55 0e mov $0e55,a +0e4e: e8 00 mov a,#$00 +0e50: c5 54 0e mov $0e54,a +0e53: c5 00 00 mov $0000,a +0e56: ac 54 0e inc $0e54 +0e59: d0 f8 bne $0e53 +0e5b: ac 55 0e inc $0e55 +0e5e: 1e 55 0e cmp x,$0e55 +0e61: d0 f0 bne $0e53 +0e63: 6f ret + +0e64: da 27 movw $27,ya +0e66: 8d 07 mov y,#$07 +0e68: f7 10 mov a,($10)+y ; get amplitude table +0e6a: d7 0d mov ($0d)+y,a +0e6c: dc dec y +0e6d: 10 f9 bpl $0e68 +0e6f: e4 10 mov a,$10 +0e71: 60 clrc +0e72: 88 08 adc a,#$08 +0e74: 8d 08 mov y,#$08 +0e76: d7 0d mov ($0d)+y,a +0e78: e4 11 mov a,$11 +0e7a: 88 00 adc a,#$00 +0e7c: fc inc y +0e7d: d7 0d mov ($0d)+y,a +0e7f: 8d 03 mov y,#$03 +0e81: f7 0d mov a,($0d)+y +0e83: 5d mov x,a +0e84: 8d 02 mov y,#$02 +0e86: f7 0d mov a,($0d)+y +0e88: fd mov y,a +0e89: 7d mov a,x +0e8a: cf mul ya +0e8b: da 2b movw $2b,ya +0e8d: ba 27 movw ya,$27 +0e8f: 9a 2b subw ya,$2b +0e91: b0 03 bcs $0e96 +0e93: e8 00 mov a,#$00 +0e95: fd mov y,a +0e96: cb 2c mov $2c,y +0e98: 8d 0d mov y,#$0d +0e9a: d7 0d mov ($0d)+y,a +0e9c: fc inc y +0e9d: e4 2c mov a,$2c +0e9f: d7 0d mov ($0d)+y,a +0ea1: 8d 03 mov y,#$03 +0ea3: f7 0d mov a,($0d)+y +0ea5: bc inc a +0ea6: 8d 0f mov y,#$0f +0ea8: d7 0d mov ($0d)+y,a +0eaa: 68 03 cmp a,#$03 +0eac: b0 06 bcs $0eb4 +0eae: 8d 04 mov y,#$04 +0eb0: e8 00 mov a,#$00 +0eb2: d7 0d mov ($0d)+y,a +0eb4: 8d 08 mov y,#$08 +0eb6: f7 0d mov a,($0d)+y +0eb8: 8d 0a mov y,#$0a +0eba: d7 0d mov ($0d)+y,a +0ebc: 8d 09 mov y,#$09 +0ebe: f7 0d mov a,($0d)+y +0ec0: 8d 0b mov y,#$0b +0ec2: d7 0d mov ($0d)+y,a +0ec4: e8 01 mov a,#$01 +0ec6: 8d 14 mov y,#$14 +0ec8: d7 0d mov ($0d)+y,a +0eca: 9c dec a +0ecb: 8d 0c mov y,#$0c +0ecd: d7 0d mov ($0d)+y,a +0ecf: 8d 12 mov y,#$12 +0ed1: d7 0d mov ($0d)+y,a +0ed3: fc inc y +0ed4: d7 0d mov ($0d)+y,a +0ed6: c4 20 mov $20,a +0ed8: 5f 89 0f jmp $0f89 + +0edb: 8d 14 mov y,#$14 +0edd: f7 0d mov a,($0d)+y +0edf: f0 39 beq $0f1a +0ee1: 8d 04 mov y,#$04 +0ee3: f7 0d mov a,($0d)+y +0ee5: c4 20 mov $20,a +0ee7: 8d 0f mov y,#$0f +0ee9: f7 0d mov a,($0d)+y +0eeb: c4 21 mov $21,a +0eed: f0 03 beq $0ef2 +0eef: 9c dec a +0ef0: d0 06 bne $0ef8 +0ef2: 8d 03 mov y,#$03 +0ef4: f7 0d mov a,($0d)+y +0ef6: 8d 0f mov y,#$0f +0ef8: d7 0d mov ($0d)+y,a +0efa: 78 02 21 cmp $21,#$02 +0efd: 90 03 bcc $0f02 +0eff: 5f 89 0f jmp $0f89 + +0f02: 8d 0c mov y,#$0c +0f04: f7 0d mov a,($0d)+y +0f06: bc inc a +0f07: 8d 05 mov y,#$05 +0f09: 77 0d cmp a,($0d)+y +0f0b: 90 17 bcc $0f24 +0f0d: 9c dec a +0f0e: 8d 01 mov y,#$01 +0f10: 77 0d cmp a,($0d)+y +0f12: f0 6a beq $0f7e +0f14: e8 00 mov a,#$00 +0f16: 8d 14 mov y,#$14 +0f18: d7 0d mov ($0d)+y,a +0f1a: 8d 11 mov y,#$11 +0f1c: f7 0d mov a,($0d)+y +0f1e: 2d push a +0f1f: dc dec y +0f20: f7 0d mov a,($0d)+y +0f22: ee pop y +0f23: 6f ret + +0f24: 8d 0c mov y,#$0c +0f26: d7 0d mov ($0d)+y,a +0f28: 8d 06 mov y,#$06 +0f2a: f7 0d mov a,($0d)+y +0f2c: 8d 0a mov y,#$0a +0f2e: 60 clrc +0f2f: 97 0d adc a,($0d)+y +0f31: d7 0d mov ($0d)+y,a +0f33: 90 07 bcc $0f3c +0f35: fc inc y +0f36: f7 0d mov a,($0d)+y +0f38: 88 00 adc a,#$00 +0f3a: d7 0d mov ($0d)+y,a +0f3c: 8d 0e mov y,#$0e +0f3e: f7 0d mov a,($0d)+y +0f40: 5d mov x,a +0f41: dc dec y +0f42: f7 0d mov a,($0d)+y +0f44: d0 04 bne $0f4a +0f46: c8 00 cmp x,#$00 +0f48: f0 3f beq $0f89 +0f4a: 8d 03 mov y,#$03 +0f4c: 80 setc +0f4d: b7 0d sbc a,($0d)+y +0f4f: 8d 0d mov y,#$0d +0f51: d7 0d mov ($0d)+y,a +0f53: c4 2b mov $2b,a +0f55: 7d mov a,x +0f56: a8 00 sbc a,#$00 +0f58: b0 06 bcs $0f60 +0f5a: e8 00 mov a,#$00 +0f5c: d7 0d mov ($0d)+y,a +0f5e: c4 2b mov $2b,a +0f60: fc inc y +0f61: d7 0d mov ($0d)+y,a +0f63: 04 2b or a,$2b +0f65: d0 0b bne $0f72 +0f67: 8d 01 mov y,#$01 +0f69: f7 0d mov a,($0d)+y +0f6b: 68 ff cmp a,#$ff +0f6d: f0 03 beq $0f72 +0f6f: 5f 82 0f jmp $0f82 + +0f72: 8d 0c mov y,#$0c +0f74: f7 0d mov a,($0d)+y +0f76: 8d 01 mov y,#$01 +0f78: 77 0d cmp a,($0d)+y +0f7a: 90 0d bcc $0f89 +0f7c: f0 0b beq $0f89 +0f7e: 8d 00 mov y,#$00 +0f80: f7 0d mov a,($0d)+y +0f82: 8d 0c mov y,#$0c +0f84: d7 0d mov ($0d)+y,a +0f86: 3f 2c 10 call $102c +0f89: f8 20 mov x,$20 +0f8b: f0 14 beq $0fa1 +0f8d: 78 03 21 cmp $21,#$03 +0f90: 90 0f bcc $0fa1 +0f92: 8d 13 mov y,#$13 +0f94: cd 03 mov x,#$03 +0f96: f7 0d mov a,($0d)+y +0f98: d4 1c mov $1c+x,a +0f9a: dc dec y +0f9b: 1d dec x +0f9c: 10 f8 bpl $0f96 +0f9e: 5f 09 10 jmp $1009 + +0fa1: 3f 1b 10 call $101b +0fa4: 8d 06 mov y,#$06 +0fa6: f7 0d mov a,($0d)+y +0fa8: 5d mov x,a +0fa9: 8d 00 mov y,#$00 +0fab: f7 12 mov a,($12)+y +0fad: c8 01 cmp x,#$01 +0faf: f0 06 beq $0fb7 +0fb1: 5d mov x,a +0fb2: fc inc y +0fb3: f7 12 mov a,($12)+y +0fb5: fd mov y,a +0fb6: 7d mov a,x +0fb7: f8 20 mov x,$20 +0fb9: f0 52 beq $100d +0fbb: 78 02 21 cmp $21,#$02 +0fbe: f0 4d beq $100d +0fc0: da 27 movw $27,ya +0fc2: 8d 11 mov y,#$11 +0fc4: f7 0d mov a,($0d)+y +0fc6: c4 1d mov $1d,a +0fc8: dc dec y +0fc9: f7 0d mov a,($0d)+y +0fcb: c4 1c mov $1c,a +0fcd: eb 1d mov y,$1d +0fcf: 80 setc +0fd0: 9a 27 subw ya,$27 +0fd2: da 1e movw $1e,ya +0fd4: e8 00 mov a,#$00 +0fd6: 3c rol a +0fd7: c4 27 mov $27,a +0fd9: d0 08 bne $0fe3 +0fdb: 58 ff 1e eor $1e,#$ff +0fde: 58 ff 1f eor $1f,#$ff +0fe1: 3a 1e incw $1e +0fe3: 8d 03 mov y,#$03 +0fe5: f7 0d mov a,($0d)+y +0fe7: 5d mov x,a +0fe8: ba 1e movw ya,$1e +0fea: 3f 47 10 call $1047 +0fed: c4 1e mov $1e,a +0fef: d8 1f mov $1f,x +0ff1: 78 01 27 cmp $27,#$01 +0ff4: d0 08 bne $0ffe +0ff6: 58 ff 1e eor $1e,#$ff +0ff9: 58 ff 1f eor $1f,#$ff +0ffc: 3a 1e incw $1e +0ffe: 8d 12 mov y,#$12 +1000: e4 1e mov a,$1e +1002: d7 0d mov ($0d)+y,a +1004: fc inc y +1005: e4 1f mov a,$1f +1007: d7 0d mov ($0d)+y,a +1009: ba 1c movw ya,$1c +100b: 7a 1e addw ya,$1e +100d: da 1c movw $1c,ya +100f: 8d 10 mov y,#$10 +1011: d7 0d mov ($0d)+y,a +1013: e4 1d mov a,$1d +1015: fc inc y +1016: d7 0d mov ($0d)+y,a +1018: ba 1c movw ya,$1c +101a: 6f ret + +101b: 8d 0a mov y,#$0a +101d: 5f 22 10 jmp $1022 + +1020: 8d 08 mov y,#$08 +1022: f7 0d mov a,($0d)+y +1024: c4 12 mov $12,a +1026: fc inc y +1027: f7 0d mov a,($0d)+y +1029: c4 13 mov $13,a +102b: 6f ret + +102c: 2d push a +102d: 3f 20 10 call $1020 +1030: 8d 06 mov y,#$06 +1032: f7 0d mov a,($0d)+y +1034: fd mov y,a +1035: ae pop a +1036: cf mul ya +1037: 7a 12 addw ya,$12 +1039: da 12 movw $12,ya +103b: 8d 0a mov y,#$0a +103d: e4 12 mov a,$12 +103f: d7 0d mov ($0d)+y,a +1041: fc inc y +1042: e4 13 mov a,$13 +1044: d7 0d mov ($0d)+y,a +1046: 6f ret + +1047: c8 00 cmp x,#$00 +1049: d0 05 bne $1050 +104b: e8 ff mov a,#$ff +104d: fd mov y,a +104e: 5d mov x,a +104f: 6f ret + +1050: cb 24 mov $24,y +1052: 3e 24 cmp x,$24 +1054: f0 02 beq $1058 +1056: b0 19 bcs $1071 +1058: c4 23 mov $23,a +105a: dd mov a,y +105b: 8d 00 mov y,#$00 +105d: 9e div ya,x +105e: c4 25 mov $25,a +1060: fd mov y,a +1061: 7d mov a,x +1062: cf mul ya +1063: c4 26 mov $26,a +1065: e4 24 mov a,$24 +1067: 80 setc +1068: a4 26 sbc a,$26 +106a: fd mov y,a +106b: e4 23 mov a,$23 +106d: 9e div ya,x +106e: f8 25 mov x,$25 +1070: 6f ret + +1071: 9e div ya,x +1072: cd 00 mov x,#$00 +1074: 6f ret + +1075: f5 7f 02 mov a,$027f+x +1078: 8d 04 mov y,#$04 +107a: cf mul ya +107b: 7a 0b addw ya,$0b +107d: da 03 movw $03,ya +107f: 8d 01 mov y,#$01 +1081: f7 03 mov a,($03)+y +1083: c4 2a mov $2a,a +1085: dc dec y +1086: f7 03 mov a,($03)+y +1088: 80 setc +1089: a8 03 sbc a,#$03 +108b: c4 29 mov $29,a +108d: b8 00 2a sbc $2a,#$00 +1090: f7 29 mov a,($29)+y +1092: c4 49 mov $49,a +1094: fc inc y +1095: f7 29 mov a,($29)+y +1097: c4 4a mov $4a,a +1099: fc inc y +109a: f7 29 mov a,($29)+y +109c: c4 4b mov $4b,a +109e: 6f ret + +109f: ad 04 cmp y,#$04 +10a1: 90 06 bcc $10a9 +10a3: d0 0a bne $10af +10a5: 68 b0 cmp a,#$b0 +10a7: b0 06 bcs $10af +10a9: 8f ff 4c mov $4c,#$ff +10ac: 5f c5 10 jmp $10c5 + +10af: ad 80 cmp y,#$80 +10b1: 90 0f bcc $10c2 +10b3: 8f 00 4c mov $4c,#$00 +10b6: 60 clrc ; convert note to pitch from table +10b7: 88 20 adc a,#$20 +10b9: 5d mov x,a +10ba: dd mov a,y +10bb: 88 df adc a,#$df +10bd: fd mov y,a +10be: 7d mov a,x +10bf: 5f c5 10 jmp $10c5 + +10c2: 8f 04 4c mov $4c,#$04 +10c5: cd f0 mov x,#$f0 +10c7: 9e div ya,x +10c8: 78 ff 4c cmp $4c,#$ff +10cb: d0 02 bne $10cf +10cd: c4 4c mov $4c,a +10cf: f6 ea 10 mov a,$10ea+y +10d2: c4 27 mov $27,a +10d4: f6 da 11 mov a,$11da+y +10d7: c4 28 mov $28,a +10d9: e8 04 mov a,#$04 +10db: 80 setc +10dc: a4 4c sbc a,$4c +10de: f0 07 beq $10e7 +10e0: fd mov y,a +10e1: 4b 28 lsr $28 +10e3: 6b 27 ror $27 +10e5: fe fa dbnz y,$10e1 +10e7: ba 27 movw ya,$27 +10e9: 6f ret + +; pitch table (low byte) +10ea: db $00,$18,$2f,$47,$5f,$77,$8f,$a7,$bf,$d8,$f0,$08,$21,$39,$52,$6b,$83,$9c,$b5,$ce,$e7,$00,$19,$33,$4c,$65,$7f,$98,$b2,$cc,$e5,$ff,$19,$33,$4d,$67,$82,$9c,$b6,$d1,$eb,$06,$20,$3b,$56,$71,$8c,$a7,$c2,$dd,$f9,$14,$2f,$4b,$67,$82,$9e,$ba,$d6,$f2,$0e,$2a,$46,$63,$7f,$9c,$b8,$d5,$f2,$0f,$2b,$48,$66,$83,$a0,$bd,$db,$f8,$16,$34,$51,$6f,$8d,$ab,$c9,$e7,$06,$24,$43,$61,$80,$9e,$bd,$dc,$fb,$1a,$39,$59,$78,$97,$b7,$d7,$f6,$16,$36,$56,$76,$96,$b7,$d7,$f7,$18,$39,$59,$7a,$9b,$bc,$dd,$ff,$20,$41,$63,$84,$a6,$c8,$ea,$0c,$2e,$50,$72,$95,$b7,$da,$fc,$1f,$42,$65,$88,$ab,$cf,$f2,$16,$39,$5d,$81,$a5,$c9,$ed,$11,$35,$5a,$7e,$a3,$c8,$ed,$12,$37,$5c,$81,$a6,$cc,$f2,$17,$3d,$63,$89,$af,$d6,$fc,$22,$49,$70,$97,$be,$e5,$0c,$33,$5a,$82,$aa,$d1,$f9,$21,$49,$71,$9a,$c2,$eb,$13,$3c,$65,$8e,$b7,$e0,$0a,$33,$5d,$87,$b0,$da,$04,$2f,$59,$84,$ae,$d9,$04,$2f,$5a,$85,$b0,$dc,$07,$33,$5f,$8b,$b7,$e3,$0f,$3c,$68,$95,$c2,$ef,$1c,$49,$77,$a4,$d2,$00,$2e,$5c,$8a,$b8,$e7,$15,$44,$73,$a2,$d1 + +; pitch table (high byte) +11da: db $20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$23,$23,$23,$23,$23,$23,$23,$23,$23,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$25,$25,$25,$25,$25,$25,$25,$25,$25,$26,$26,$26,$26,$26,$26,$26,$26,$26,$27,$27,$27,$27,$27,$27,$27,$27,$27,$28,$28,$28,$28,$28,$28,$28,$28,$29,$29,$29,$29,$29,$29,$29,$29,$29,$2a,$2a,$2a,$2a,$2a,$2a,$2a,$2a,$2b,$2b,$2b,$2b,$2b,$2b,$2b,$2b,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2d,$2d,$2d,$2d,$2d,$2d,$2d,$2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e,$2f,$2f,$2f,$2f,$2f,$2f,$2f,$30,$30,$30,$30,$30,$30,$30,$31,$31,$31,$31,$31,$31,$31,$32,$32,$32,$32,$32,$32,$32,$33,$33,$33,$33,$33,$33,$33,$34,$34,$34,$34,$34,$34,$35,$35,$35,$35,$35,$35,$35,$36,$36,$36,$36,$36,$36,$37,$37,$37,$37,$37,$37,$38,$38,$38,$38,$38,$38,$39,$39,$39,$39,$39,$39,$3a,$3a,$3a,$3a,$3a,$3a,$3b,$3b,$3b,$3b,$3b,$3b,$3c,$3c,$3c,$3c,$3c,$3c,$3d,$3d,$3d,$3d,$3d,$3e,$3e,$3e,$3e,$3e,$3e,$3f,$3f,$3f,$3f,$3f + +; note interval frequencies (low byte) +12ca: db $30,$20,$ac,$10,$24,$38,$4c,$60,$74,$88,$9c,$b0,$c4,$d8,$ec,$00,$14,$28,$3c,$50,$64,$78,$8c,$a0,$b4,$c8,$dc,$f0,$54,$e0,$d0,$c0 + +; note interval frequencies (high byte) +12ea: db $fd,$fe,$fe,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$02,$03 + +130a: e4 5c mov a,$5c +130c: d0 0f bne $131d +130e: e5 4f 05 mov a,$054f +1311: f0 22 beq $1335 +1313: e8 00 mov a,#$00 +1315: c5 4f 05 mov $054f,a +1318: 3f 0a 17 call $170a +131b: 2f ed bra $130a +131d: e4 5b mov a,$5b +131f: 9c dec a +1320: c4 5d mov $5d,a +1322: 1c asl a +1323: c4 5e mov $5e,a +1325: f8 5d mov x,$5d +1327: f4 61 mov a,$61+x +1329: 5d mov x,a +132a: 1f 98 17 jmp ($1798+x) + +132d: 8b 5e dec $5e +132f: 8b 5e dec $5e +1331: 8b 5d dec $5d +1333: 10 f0 bpl $1325 +1335: 6f ret + +1336: f8 5d mov x,$5d +1338: 9b 9b dec $9b+x +133a: d0 f1 bne $132d +133c: f5 60 05 mov a,$0560+x +133f: d4 9b mov $9b+x,a +1341: 9b a3 dec $a3+x +1343: d0 e8 bne $132d +1345: f4 61 mov a,$61+x +1347: 68 02 cmp a,#$02 +1349: d0 07 bne $1352 +134b: e8 06 mov a,#$06 +134d: d4 61 mov $61+x,a +134f: 5f 63 13 jmp $1363 + +1352: e8 08 mov a,#$08 +1354: d4 61 mov $61+x,a +1356: 5f 59 15 jmp $1559 + +1359: 3f b8 14 call $14b8 +135c: d4 ce mov $ce+x,a +135e: 3f b8 14 call $14b8 +1361: d4 cf mov $cf+x,a +1363: 3f b8 14 call $14b8 +1366: fd mov y,a ; get the current note/command +1367: 28 20 and a,#$20 +1369: c4 5f mov $5f,a +136b: dd mov a,y +136c: 28 40 and a,#$40 +136e: c4 60 mov $60,a +1370: f8 5d mov x,$5d +1372: d5 88 05 mov $0588+x,a +1375: ad 80 cmp y,#$80 ; is it a note? +1377: 90 3d bcc $13b6 +1379: ad f0 cmp y,#$f0 ; is it a special meaning flag? +137b: 90 08 bcc $1385 +137d: dd mov a,y ; then it must be a command... +137e: 28 0f and a,#$0f ; get command number +1380: 1c asl a +1381: 5d mov x,a +1382: 1f 3c 15 jmp ($153c+x) ; jump to command number position + +1385: f5 90 05 mov a,$0590+x ; pitch bend +1388: f0 4c beq $13d6 +138a: dd mov a,y +138b: 28 08 and a,#$08 +138d: 0d push psw +138e: dd mov a,y +138f: 28 07 and a,#$07 +1391: bc inc a +1392: 1c asl a +1393: f8 5e mov x,$5e +1395: 8e pop psw +1396: f0 0d beq $13a5 +1398: 60 clrc +1399: 94 de adc a,$de+x +139b: d4 de mov $de+x,a +139d: f4 df mov a,$df+x +139f: 88 00 adc a,#$00 +13a1: d4 df mov $df+x,a +13a3: 2f 31 bra $13d6 +13a5: c4 27 mov $27,a +13a7: f4 de mov a,$de+x +13a9: 80 setc +13aa: a4 27 sbc a,$27 +13ac: d4 de mov $de+x,a +13ae: f4 df mov a,$df+x +13b0: a8 00 sbc a,#$00 +13b2: d4 df mov $df+x,a +13b4: 2f 20 bra $13d6 +13b6: f5 90 05 mov a,$0590+x ; play the note (check first) +13b9: f0 1b beq $13d6 +13bb: dd mov a,y +13bc: 28 1f and a,#$1f +13be: fd mov y,a +13bf: f8 5e mov x,$5e +13c1: f4 ce mov a,$ce+x +13c3: 60 clrc +13c4: 96 ca 12 adc a,$12ca+y ; get the relative frequency +13c7: d4 ce mov $ce+x,a +13c9: f4 cf mov a,$cf+x +13cb: 96 ea 12 adc a,$12ea+y +13ce: d4 cf mov $cf+x,a +13d0: e8 00 mov a,#$00 +13d2: d4 de mov $de+x,a +13d4: d4 df mov $df+x,a +13d6: 3f b8 14 call $14b8 +13d9: 68 00 cmp a,#$00 +13db: d0 12 bne $13ef +13dd: f8 5d mov x,$5d +13df: f4 61 mov a,$61+x +13e1: 68 08 cmp a,#$08 +13e3: d0 07 bne $13ec +13e5: e8 0a mov a,#$0a +13e7: d4 61 mov $61+x,a +13e9: 5f 97 15 jmp $1597 + +13ec: 5f 25 13 jmp $1325 + +13ef: f8 5d mov x,$5d +13f1: d4 a3 mov $a3+x,a +13f3: fd mov y,a +13f4: f5 60 05 mov a,$0560+x +13f7: d4 9b mov $9b+x,a +13f9: cf mul ya +13fa: da 35 movw $35,ya +13fc: 3f 18 15 call $1518 +13ff: f5 98 05 mov a,$0598+x +1402: 30 18 bmi $141c +1404: 5d mov x,a +1405: f5 06 02 mov a,$0206+x +1408: f0 0a beq $1414 +140a: e8 40 mov a,#$40 +140c: 75 27 02 cmp a,$0227+x +140f: b0 05 bcs $1416 +1411: 5f 2d 13 jmp $132d + +1414: e8 40 mov a,#$40 +1416: d5 27 02 mov $0227+x,a +1419: 5f 3d 14 jmp $143d + +141c: f5 a0 05 mov a,$05a0+x +141f: c4 3d mov $3d,a +1421: f5 a8 05 mov a,$05a8+x +1424: 30 04 bmi $142a +1426: eb 5f mov y,$5f +1428: f0 05 beq $142f +142a: 9c dec a +142b: 10 02 bpl $142f +142d: e8 07 mov a,#$07 +142f: 5d mov x,a +1430: f5 fc 07 mov a,$07fc+x +1433: c4 3f mov $3f,a +1435: 8f 40 3e mov $3e,#$40 +1438: 3f 44 0c call $0c44 +143b: 30 78 bmi $14b5 +143d: e8 01 mov a,#$01 +143f: d5 06 02 mov $0206+x,a +1442: d8 ab mov $ab,x +1444: 7d mov a,x +1445: f8 5d mov x,$5d +1447: d5 a8 05 mov $05a8+x,a +144a: f5 90 05 mov a,$0590+x +144d: d0 0c bne $145b +144f: f8 5e mov x,$5e +1451: f4 ce mov a,$ce+x +1453: c4 37 mov $37,a +1455: f4 cf mov a,$cf+x +1457: c4 38 mov $38,a +1459: 2f 25 bra $1480 +145b: f8 5e mov x,$5e +145d: f4 ce mov a,$ce+x +145f: 60 clrc +1460: 94 be adc a,$be+x +1462: fd mov y,a +1463: f4 cf mov a,$cf+x +1465: 94 bf adc a,$bf+x +1467: c4 38 mov $38,a +1469: dd mov a,y +146a: 60 clrc +146b: 94 ae adc a,$ae+x +146d: fd mov y,a +146e: e4 38 mov a,$38 +1470: 94 af adc a,$af+x +1472: c4 38 mov $38,a +1474: dd mov a,y +1475: 60 clrc +1476: 94 de adc a,$de+x +1478: c4 37 mov $37,a +147a: e4 38 mov a,$38 +147c: 94 df adc a,$df+x +147e: c4 38 mov $38,a +1480: eb 5f mov y,$5f +1482: d0 0f bne $1493 +1484: 0b ab asl $ab +1486: f8 ab mov x,$ab +1488: d5 48 02 mov $0248+x,a +148b: e4 37 mov a,$37 +148d: d5 47 02 mov $0247+x,a +1490: 5f 2d 13 jmp $132d + +1493: f8 5d mov x,$5d +1495: f5 68 05 mov a,$0568+x +1498: 60 clrc +1499: 95 70 05 adc a,$0570+x +149c: 10 02 bpl $14a0 +149e: e8 7f mov a,#$7f +14a0: c4 ac mov $ac,a +14a2: e4 60 mov a,$60 +14a4: f0 02 beq $14a8 +14a6: e8 08 mov a,#$08 +14a8: 04 5d or a,$5d +14aa: 5d mov x,a +14ab: f5 78 05 mov a,$0578+x +14ae: f8 ab mov x,$ab +14b0: eb ac mov y,$ac +14b2: 3f 6e 0c call $0c6e +14b5: 5f 2d 13 jmp $132d + +; calculate delta expression +14b8: f8 5e mov x,$5e +14ba: e7 8b mov a,($8b+x) +14bc: bb 8b inc $8b+x +14be: d0 02 bne $14c2 +14c0: bb 8c inc $8c+x +14c2: 6f ret + +; vcmd f0 - end of sequence +14c3: f8 5d mov x,$5d +14c5: e8 0a mov a,#$0a +14c7: d4 61 mov $61+x,a +14c9: 5f 97 15 jmp $1597 + +; vcmd f1 - melody delta expression +14cc: 3f b8 14 call $14b8 +14cf: c4 ad mov $ad,a +14d1: f8 5d mov x,$5d +14d3: f5 70 05 mov a,$0570+x +14d6: 3f 28 15 call $1528 +14d9: d5 70 05 mov $0570+x,a +14dc: 5f 63 13 jmp $1363 + +; vcmd f2 - melody absolute expression +14df: 3f b8 14 call $14b8 +14e2: f8 5d mov x,$5d +14e4: d5 70 05 mov $0570+x,a +14e7: 5f 63 13 jmp $1363 + +; vcmd f3 - mute +14ea: f8 5d mov x,$5d +14ec: f5 a8 05 mov a,$05a8+x +14ef: 30 15 bmi $1506 +14f1: fd mov y,a +14f2: f6 06 02 mov a,$0206+y +14f5: 68 80 cmp a,#$80 +14f7: f0 0d beq $1506 +14f9: e8 00 mov a,#$00 +14fb: d6 67 02 mov $0267+y,a +14fe: f6 dc 07 mov a,$07dc+y +1501: c4 f2 mov $f2,a +1503: 8f 9f f3 mov $f3,#$9f + +; vcmd f4 - rest +1506: 3f b8 14 call $14b8 +1509: f8 5d mov x,$5d +150b: d4 a3 mov $a3+x,a +150d: f5 60 05 mov a,$0560+x +1510: d4 9b mov $9b+x,a +1512: 3f 18 15 call $1518 +1515: 5f 2d 13 jmp $132d +1518: f4 61 mov a,$61+x +151a: 68 06 cmp a,#$06 +151c: d0 05 bne $1523 +151e: e8 02 mov a,#$02 +1520: 5f 25 15 jmp $1525 + +1523: e8 04 mov a,#$04 +1525: d4 61 mov $61+x,a +1527: 6f ret + +; add the delta to the total +1528: 78 80 ad cmp $ad,#$80 +152b: 90 08 bcc $1535 +152d: 60 clrc +152e: 84 ad adc a,$ad +1530: 10 09 bpl $153b +1532: e8 00 mov a,#$00 +1534: 6f ret + +1535: 84 ad adc a,$ad +1537: 10 02 bpl $153b +1539: e8 7f mov a,#$7f +153b: 6f ret + +; vcmd table (f0-f4) +153c: dw $14c3 ; f0 - end of sequence +153e: dw $14cc ; f1 - melody delta expression +1540: dw $14df ; f2 - melody absolute expression +1542: dw $14ea ; f3 - mute +1544: dw $1506 ; f4 - rest + +1546: 3f b8 14 call $14b8 +1549: f8 5d mov x,$5d +154b: d5 b0 05 mov $05b0+x,a +154e: e8 00 mov a,#$00 +1550: d4 de mov $de+x,a +1552: d4 df mov $df+x,a +1554: f8 5d mov x,$5d +1556: d5 88 05 mov $0588+x,a +1559: f8 5d mov x,$5d +155b: f5 90 05 mov a,$0590+x +155e: f0 19 beq $1579 +1560: f5 b0 05 mov a,$05b0+x +1563: 8d 12 mov y,#$12 +1565: 3f bb 0d call $0dbb +1568: 3f 86 15 call $1586 +156b: 28 0e and a,#$0e +156d: fd mov y,a +156e: f8 5e mov x,$5e +1570: f7 10 mov a,($10)+y +1572: d4 ce mov $ce+x,a +1574: fc inc y +1575: f7 10 mov a,($10)+y +1577: d4 cf mov $cf+x,a +1579: 8f 20 5f mov $5f,#$20 +157c: f8 5d mov x,$5d +157e: f5 88 05 mov a,$0588+x +1581: c4 60 mov $60,a +1583: 5f d6 13 jmp $13d6 + +1586: e4 00 mov a,$00 ; fetch a random number (RNG) +1588: 1c asl a +1589: 44 00 eor a,$00 +158b: 1c asl a +158c: 1c asl a +158d: 1c asl a +158e: 2b 02 rol $02 +1590: 2b 01 rol $01 +1592: 2b 00 rol $00 +1594: e4 02 mov a,$02 +1596: 6f ret + +1597: 3f 9e 15 call $159e ; get current pattern command +159a: 5d mov x,a +159b: 1f 6f 16 jmp ($166f+x) + +159e: f8 5e mov x,$5e ; get 1 byte +15a0: e7 7b mov a,($7b+x) +15a2: bb 7b inc $7b+x +15a4: d0 02 bne $15a8 +15a6: bb 7c inc $7c+x +15a8: 6f ret + +; pattern command 00/16 - end of pattern +15a9: f8 5d mov x,$5d +15ab: e8 0c mov a,#$0c +15ad: d4 61 mov $61+x,a +15af: 5f 87 16 jmp $1687 + +; pattern command 14 +15b2: 8d 00 mov y,#$00 +15b4: f8 5e mov x,$5e +15b6: 3f a0 15 call $15a0 +15b9: ad 10 cmp y,#$10 +15bb: b0 04 bcs $15c1 +15bd: d6 3f 05 mov $053f+y,a +15c0: fc inc y +15c1: 3f a0 15 call $15a0 +15c4: 68 14 cmp a,#$14 +15c6: f0 ee beq $15b6 +15c8: 68 16 cmp a,#$16 +15ca: d0 dd bne $15a9 +15cc: dd mov a,y +15cd: 5d mov x,a +15ce: 3f 86 15 call $1586 +15d1: 8d 00 mov y,#$00 +15d3: 9e div ya,x +15d4: f6 3f 05 mov a,$053f+y +15d7: 8d 10 mov y,#$10 +15d9: 3f 62 16 call $1662 +15dc: 2f 05 bra $15e3 + +; pattern command 02 - play melody +15de: 8d 10 mov y,#$10 +15e0: 3f 5d 16 call $165d +15e3: e8 06 mov a,#$06 +15e5: d4 61 mov $61+x,a +15e7: 5f 59 13 jmp $1359 + +; pattern command 04 +15ea: 8d 14 mov y,#$14 +15ec: 3f 5d 16 call $165d +15ef: e8 08 mov a,#$08 +15f1: d4 61 mov $61+x,a +15f3: 5f 46 15 jmp $1546 + +; pattern command 06 - set channel tuning +15f6: 3f 9e 15 call $159e ; get 1 byte +15f9: eb 5e mov y,$5e +15fb: d6 be 00 mov $00be+y,a +15fe: 3f a0 15 call $15a0 +1601: d6 bf 00 mov $00bf+y,a +1604: 5f 97 15 jmp $1597 + +; pattern command 08 - set instrument +1607: 3f 9e 15 call $159e ; get 1 byte +160a: f8 5d mov x,$5d +160c: d5 78 05 mov $0578+x,a +160f: 5f 97 15 jmp $1597 + +; pattern command 0a - set pitch envelope +1612: 3f 9e 15 call $159e ; get 1 byte +1615: f8 5d mov x,$5d +1617: d5 80 05 mov $0580+x,a +161a: 5f 97 15 jmp $1597 + +; pattern command 10 - set channel gain (relative?) +161d: 3f 9e 15 call $159e ; get 1 byte +1620: c4 ad mov $ad,a +1622: f8 5d mov x,$5d +1624: f5 68 05 mov a,$0568+x +1627: 3f 28 15 call $1528 +162a: d5 68 05 mov $0568+x,a +162d: 5f 97 15 jmp $1597 + +; pattern command 12 - set channel gain (absolute) +1630: 3f 9e 15 call $159e ; get 1 byte +1633: f8 5d mov x,$5d +1635: d5 68 05 mov $0568+x,a +1638: 5f 97 15 jmp $1597 + +; pattern command 0c +163b: e8 ff mov a,#$ff +163d: f8 5d mov x,$5d +163f: d5 90 05 mov $0590+x,a +1642: 5f 97 15 jmp $1597 + +; pattern command 0e - (2 bytes) +1645: 3f 9e 15 call $159e ; get 1 byte +1648: eb 5e mov y,$5e +164a: d6 ce 00 mov $00ce+y,a +164d: 3f a0 15 call $15a0 ; get another byte +1650: d6 cf 00 mov $00cf+y,a +1653: e8 00 mov a,#$00 +1655: f8 5d mov x,$5d +1657: d5 90 05 mov $0590+x,a +165a: 5f 97 15 jmp $1597 + +; get the next byte and its corresponding phrase pointer +165d: 6d push y +165e: 3f 9e 15 call $159e +1661: ee pop y +1662: 3f bb 0d call $0dbb +1665: f8 5e mov x,$5e +1667: d4 8b mov $8b+x,a +1669: dd mov a,y +166a: d4 8c mov $8c+x,a +166c: f8 5d mov x,$5d +166e: 6f ret + +; pattern command table (00-17) +166f: dw $15a9 ; 00 - end of pattern +1671: dw $15de ; 02 - play melody +1673: dw $15ea ; 04 +1675: dw $15f6 ; 06 - set channel tuning +1677: dw $1607 ; 08 - set instrument +1679: dw $1612 ; 0a - set pitch envelope +167b: dw $163b ; 0c +167d: dw $1645 ; 0e - (2 bytes) +167f: dw $161d ; 10 - set channel gain (relative)? +1681: dw $1630 ; 12 - set channel gain (absolute) +1683: dw $15b2 ; 14 +1685: dw $15a9 ; 16 - end of pattern (same as 00) + +; melody command 00 - end of melody +1687: 3f 8e 16 call $168e +168a: 5d mov x,a +168b: 1f fe 16 jmp ($16fe+x) + +168e: f8 5e mov x,$5e +1690: e7 6b mov a,($6b+x) +1692: bb 6b inc $6b+x +1694: d0 02 bne $1698 +1696: bb 6c inc $6c+x +1698: 6f ret + +; melody command 02 - go to loop +1699: f8 5d mov x,$5d +169b: e8 00 mov a,#$00 +169d: d4 61 mov $61+x,a +169f: 8b 5c dec $5c +16a1: 5f 2d 13 jmp $132d + +; melody command 04 +16a4: f8 5e mov x,$5e +16a6: f5 50 05 mov a,$0550+x +16a9: d4 6b mov $6b+x,a +16ab: f5 51 05 mov a,$0551+x +16ae: d4 6c mov $6c+x,a +16b0: 5f 87 16 jmp $1687 + +; melody command 06 - toggle channel mute +16b3: 3f 8e 16 call $168e +16b6: f8 5d mov x,$5d +16b8: d5 60 05 mov $0560+x,a +16bb: 5f 87 16 jmp $1687 + +; melody command 08 - play phrase +16be: 3f 8e 16 call $168e +16c1: eb 5e mov y,$5e +16c3: d6 ae 00 mov $00ae+y,a +16c6: 3f 90 16 call $1690 +16c9: d6 af 00 mov $00af+y,a +16cc: 5f 87 16 jmp $1687 + +; melody command 0a - set channel number +16cf: 3f 8e 16 call $168e +16d2: 8d 16 mov y,#$16 +16d4: 3f bb 0d call $0dbb +16d7: f8 5e mov x,$5e +16d9: d4 7b mov $7b+x,a +16db: dd mov a,y +16dc: d4 7c mov $7c+x,a +16de: f8 5d mov x,$5d +16e0: e8 0a mov a,#$0a +16e2: d4 61 mov $61+x,a +16e4: 5f 97 15 jmp $1597 + +; melody command 0c +16e7: 3f 8e 16 call $168e +16ea: f8 5d mov x,$5d +16ec: d5 98 05 mov $0598+x,a +16ef: 68 ff cmp a,#$ff +16f1: d0 08 bne $16fb +16f3: 3f 8e 16 call $168e +16f6: f8 5d mov x,$5d +16f8: d5 a0 05 mov $05a0+x,a +16fb: 5f 87 16 jmp $1687 + +; melody command table (00-0c) +16fc: dw $1687 ; 00 - end of melody +16fe: dw $1699 ; 02 - go to loop +1700: dw $16a4 ; 04 +1702: dw $16b3 ; 06 - toggle channel mute +1704: dw $16be ; 08 - play phrase +1706: dw $16cf ; 0a - set channel number +1708: dw $16e7 ; 0c + +170a: 8d 93 mov y,#$93 +170c: f9 5a mov x,$5a+y +170e: f6 b7 05 mov a,$05b7+y +1711: d6 5a 00 mov $005a+y,a +1714: 7d mov a,x +1715: d6 b7 05 mov $05b7+y,a +1718: fe f2 dbnz y,$170c +171a: 8d 69 mov y,#$69 +171c: f6 4e 05 mov a,$054e+y +171f: 5d mov x,a +1720: f6 4a 06 mov a,$064a+y +1723: d6 4e 05 mov $054e+y,a +1726: 7d mov a,x +1727: d6 4a 06 mov $064a+y,a +172a: fe f0 dbnz y,$171c +172c: 6f ret + +172d: 3f 36 17 call $1736 +1730: e8 01 mov a,#$01 +1732: c5 4f 05 mov $054f,a +1735: 6f ret + +1736: 2d push a ; start song +1737: 3f 0a 17 call $170a ; stop the current song +173a: ae pop a +173b: 8d 1a mov y,#$1a ; find the start of the song struct +173d: 3f bb 0d call $0dbb +1740: da 69 movw $69,ya +1742: 8d 00 mov y,#$00 ; get number of channels +1744: f7 69 mov a,($69)+y +1746: c4 5b mov $5b,a ; save number of channels in total and current +1748: c4 5c mov $5c,a +174a: f0 4b beq $1797 ; if 0, then return +174c: 8f 00 5d mov $5d,#$00 +174f: 8f 00 5e mov $5e,#$00 +1752: fc inc y +1753: f7 69 mov a,($69)+y +1755: 6d push y +1756: 8d 18 mov y,#$18 +1758: 3f bb 0d call $0dbb +175b: f8 5e mov x,$5e +175d: d5 50 05 mov $0550+x,a +1760: d4 6b mov $6b+x,a +1762: dd mov a,y +1763: ee pop y +1764: d5 51 05 mov $0551+x,a +1767: d4 6c mov $6c+x,a +1769: e8 00 mov a,#$00 +176b: d4 ae mov $ae+x,a +176d: d4 af mov $af+x,a +176f: d4 be mov $be+x,a +1771: d4 bf mov $bf+x,a +1773: f8 5d mov x,$5d +1775: e8 0c mov a,#$0c +1777: d4 61 mov $61+x,a +1779: e8 ff mov a,#$ff +177b: d5 90 05 mov $0590+x,a +177e: d5 a8 05 mov $05a8+x,a +1781: e8 00 mov a,#$00 +1783: d5 68 05 mov $0568+x,a +1786: d5 70 05 mov $0570+x,a +1789: d5 88 05 mov $0588+x,a +178c: ab 5e inc $5e +178e: ab 5e inc $5e +1790: 3d inc x +1791: d8 5d mov $5d,x +1793: 3e 5b cmp x,$5b +1795: 90 bb bcc $1752 +1797: 6f ret + +1798: dw $132d +179a: dw $1336 +179c: dw $1336 +179e: dw $1363 +17a0: dw $1559 +17a2: dw $1597 +17a4: dw $1687 +17a6: dw $0b5d +17a8: dw $0bd6 +17aa: dw $173b +17ac: dw $1736 +17ae: dw $172d +17b0: dw $170a +17b2: dw $0792 +17b4: dw $0b7d +17b6: dw $0b79 +17b8: dw $0b73 +17ba: dw $0b70 +17bc: dw $0b6a +17be: dw $0b8c +17c0: dw $0b97 \ No newline at end of file diff --git a/snes/Sculptured Software/The Jungle Book ($0700).bin b/snes/Sculptured Software/The Jungle Book ($0700).bin new file mode 100644 index 00000000..3a99a81a Binary files /dev/null and b/snes/Sculptured Software/The Jungle Book ($0700).bin differ diff --git a/snes/Sculptured Software/The Jungle Book.s b/snes/Sculptured Software/The Jungle Book.s new file mode 100644 index 00000000..b0b0e24e --- /dev/null +++ b/snes/Sculptured Software/The Jungle Book.s @@ -0,0 +1,2644 @@ +0700: 20 clrp +0701: cd ff mov x,#$ff ; set stack pointer +0703: bd mov sp,x +0704: 8f a0 fa mov $fa,#$a0 ; stop all timers +0707: 8f a0 fb mov $fb,#$a0 +070a: 8f 20 fc mov $fc,#$20 +070d: 8f 87 f1 mov $f1,#$87 ; clear COM ports +0710: 3f c0 10 call $10c0 ; initialize all sound +0713: 8f 00 24 mov $24,#$00 ; install permanent pointer to the wave source dir +0716: 8f 1f 25 mov $25,#$1f +0719: 8f 01 f6 mov $f6,#$01 +071c: 62 08 set3 $08 +071e: 3f be 0b call $0bbe +0721: 3f 85 0b call $0b85 +0724: 33 07 f7 bbc1 $07,$071e +0727: 8d 10 mov y,#$10 +0729: 3f 4a 07 call $074a +072c: 83 07 12 bbs4 $07,$0741 +072f: e4 fe mov a,$fe +0731: f0 0e beq $0741 +0733: e4 c9 mov a,$c9 +0735: f0 07 beq $073e +0737: 60 clrc +0738: 84 ca adc a,$ca +073a: c4 ca mov $ca,a +073c: 90 03 bcc $0741 +073e: 3f 50 17 call $1750 +0741: e4 fd mov a,$fd +0743: f0 d9 beq $071e +0745: 3f 7b 08 call $087b +0748: 2f d4 bra $071e +074a: e4 ff mov a,$ff +074c: d0 03 bne $0751 +074e: e8 01 mov a,#$01 +0750: 6f ret + +0751: cb 3b mov $3b,y +0753: 8f 00 3a mov $3a,#$00 +0756: cd 14 mov x,#$14 +0758: e4 f6 mov a,$f6 +075a: f0 03 beq $075f +075c: 3f be 0b call $0bbe +075f: eb 3b mov y,$3b +0761: f5 4a 08 mov a,$084a+x +0764: c4 f2 mov $f2,a +0766: f5 28 02 mov a,$0228+x +0769: 64 f3 cmp a,$f3 +076b: f0 0f beq $077c +076d: b0 09 bcs $0778 +076f: 8b f3 dec $f3 +0771: dc dec y +0772: d0 f5 bne $0769 +0774: ab 3a inc $3a +0776: 2f 04 bra $077c +0778: ab f3 inc $f3 +077a: 2f f5 bra $0771 +077c: 1d dec x +077d: 10 d9 bpl $0758 +077f: e4 3a mov a,$3a +0781: 6f ret + +0782: 8f aa f4 mov $f4,#$aa +0785: 8f bb f5 mov $f5,#$bb +0788: e8 cc mov a,#$cc +078a: fa f4 ef mov ($ef),($f4) +078d: 69 f4 ef cmp ($ef),($f4) +0790: d0 f8 bne $078a +0792: 2e ef f5 cbne $ef,$078a +0795: e4 ef mov a,$ef +0797: fa f6 3d mov ($3d),($f6) +079a: fa f7 3e mov ($3e),($f7) +079d: fd mov y,a +079e: e4 f5 mov a,$f5 +07a0: cb f4 mov $f4,y +07a2: d0 08 bne $07ac +07a4: 8f b0 f1 mov $f1,#$b0 +07a7: cb f5 mov $f5,y +07a9: 5f 00 07 jmp $0700 + +07ac: cd 00 mov x,#$00 +07ae: 7d mov a,x +07af: fa f4 ef mov ($ef),($f4) +07b2: 69 f4 ef cmp ($ef),($f4) +07b5: d0 f8 bne $07af +07b7: 2e ef f5 cbne $ef,$07af +07ba: e4 f5 mov a,$f5 +07bc: d8 f4 mov $f4,x +07be: d5 be 07 mov $07be+x,a +07c1: 7d mov a,x +07c2: 3d inc x +07c3: d0 02 bne $07c7 +07c5: ab 3e inc $3e +07c7: fa f4 ef mov ($ef),($f4) +07ca: 69 f4 ef cmp ($ef),($f4) +07cd: d0 f8 bne $07c7 +07cf: 64 ef cmp a,$ef +07d1: f0 f4 beq $07c7 +07d3: 3e ef cmp x,$ef +07d5: d0 be bne $0795 +07d7: e4 f5 mov a,$f5 +07d9: d8 f4 mov $f4,x +07db: 2f e1 bra $07be +07dd: 72 08 clr3 $08 +07df: 8d 80 mov y,#$80 +07e1: 3f 42 0d call $0d42 +07e4: 3f 16 11 call $1116 +07e7: 32 07 clr1 $07 +07e9: 8f 6c f2 mov $f2,#$6c +07ec: 8f 3f f3 mov $f3,#$3f +07ef: cd 00 mov x,#$00 +07f1: f5 82 07 mov a,$0782+x +07f4: d4 00 mov $00+x,a +07f6: 3d inc x +07f7: c8 5b cmp x,#$5b +07f9: 90 f6 bcc $07f1 +07fb: 5f 00 00 jmp $0000 + +; gain tables +07fe: db $ff,$d6,$a0,$80,$6b,$50,$40,$36,$28,$20,$1b,$14,$10,$0e,$0b,$08,$06,$05,$04,$03,$02,$01 +0814: db $1d,$1c,$1b,$1a,$19,$18,$17,$16,$15,$14,$13,$12,$11,$10,$0f,$0e,$0d,$0c,$0a,$09,$06,$00 + +; DSP registers: VxENVX +082a: db $08,$18,$28,$38,$48,$58,$68,$78 +; DSP registers: VxGAIN +0832: db $07,$17,$27,$37,$47,$57,$67,$77 +; DSP registers: VxSCRN (select sample) +083a: db $04,$14,$24,$34,$44,$54,$64,$74 +; DSP registers: VxPITCHL +0842: db $02,$12,$22,$32,$42,$52,$62,$72 +; DSP registers: VxVOLL +084a: db $00,$10,$20,$30,$40,$50,$60,$70,$01,$11,$21,$31,$41,$51,$61,$71,$2c,$3c,$0d,$0c,$1c + +; voice numbers and bits for clearing those void bits +085f: db $01,$02,$04,$08,$10,$20,$40,$80,$fe,$fd,$fb,$f7,$ef,$df,$bf,$7f + +; echo poke registers +086f: db $7d,$2c,$3c,$0d,$0f,$1f,$2f,$3f,$4f,$5f,$6f,$7f + +087b: 3f be 0b call $0bbe ; que command +087e: 8f 00 44 mov $44,#$00 ; reset sample flags +0881: 8f 00 55 mov $55,#$00 +0884: 8f 7c f2 mov $f2,#$7c +0887: e4 f3 mov a,$f3 +0889: 24 58 and a,$58 +088b: c4 52 mov $52,a +088d: 8f 00 f3 mov $f3,#$00 +0890: cd 07 mov x,#$07 ; find out all channels changing waves +0892: 3f be 0b call $0bbe ; (to restart them, starting with 7) +0895: d8 28 mov $28,x +0897: 7d mov a,x +0898: 60 clrc +0899: 88 10 adc a,#$10 +089b: c4 2d mov $2d,a +089d: f5 5f 08 mov a,$085f+x +08a0: c4 45 mov $45,a +08a2: 48 ff eor a,#$ff +08a4: c4 46 mov $46,a +08a6: f4 62 mov a,$62+x +08a8: c4 48 mov $48,a +08aa: a2 08 set5 $08 +08ac: 23 48 06 bbs1 $48,$08b5 +08af: f5 ec fc mov a,$fcec+x +08b2: 5f c3 08 jmp $08c3 + +08b5: eb 2d mov y,$2d +08b7: f6 e3 04 mov a,$04e3+y +08ba: d0 02 bne $08be +08bc: b2 08 clr5 $08 +08be: 3f 9c 12 call $129c +08c1: f8 28 mov x,$28 +08c3: 75 f4 fc cmp a,$fcf4+x +08c6: d0 0d bne $08d5 +08c8: 3f 5a 14 call $145a +08cb: e4 5d mov a,$5d +08cd: 24 56 and a,$56 +08cf: 24 45 and a,$45 +08d1: d0 43 bne $0916 +08d3: 2f 44 bra $0919 +08d5: d5 f4 fc mov $fcf4+x,a +08d8: 09 45 44 or ($44),($45) +08db: 3f 5a 14 call $145a +08de: 7d mov a,x +08df: 1c asl a +08e0: 5d mov x,a +08e1: e5 04 01 mov a,$0104 +08e4: d5 4b 01 mov $014b+x,a +08e7: e5 05 01 mov a,$0105 +08ea: d5 4c 01 mov $014c+x,a +08ed: f8 28 mov x,$28 +08ef: e4 5e mov a,$5e +08f1: 28 20 and a,#$20 +08f3: f0 05 beq $08fa +08f5: 29 46 53 and ($53),($46) +08f8: 2f 03 bra $08fd +08fa: 09 45 53 or ($53),($45) +08fd: b3 08 0b bbc5 $08,$090b +0900: e4 5e mov a,$5e +0902: 28 40 and a,#$40 +0904: f0 05 beq $090b +0906: 09 45 5d or ($5d),($45) +0909: 2f 03 bra $090e +090b: 29 46 5d and ($5d),($46) +090e: e4 5d mov a,$5d +0910: 04 56 or a,$56 +0912: 24 45 and a,$45 +0914: f0 03 beq $0919 +0916: 09 45 55 or ($55),($45) +0919: 1d dec x +091a: 30 03 bmi $091f +091c: 5f 92 08 jmp $0892 + +091f: e4 56 mov a,$56 +0921: 24 53 and a,$53 +0923: 04 54 or a,$54 +0925: c4 54 mov $54,a +0927: 24 54 and a,$54 +0929: 04 55 or a,$55 +092b: c4 57 mov $57,a +092d: 8f 5c f2 mov $f2,#$5c +0930: c4 f3 mov $f3,a +0932: cd 07 mov x,#$07 +0934: 3f be 0b call $0bbe +0937: d8 28 mov $28,x +0939: f5 5f 08 mov a,$085f+x +093c: c4 45 mov $45,a +093e: 7d mov a,x +093f: 60 clrc +0940: 88 18 adc a,#$18 +0942: c4 2d mov $2d,a +0944: e5 a2 03 mov a,$03a2 +0947: d0 12 bne $095b +0949: f4 62 mov a,$62+x +094b: c4 48 mov $48,a +094d: 63 48 06 bbs3 $48,$0956 +0950: f5 e4 fc mov a,$fce4+x +0953: 5f 5b 09 jmp $095b + +0956: 3f 9c 12 call $129c +0959: f8 28 mov x,$28 +095b: 60 clrc +095c: 95 9a 03 adc a,$039a+x +095f: 30 06 bmi $0967 +0961: 70 04 bvs $0967 +0963: 68 65 cmp a,#$65 +0965: 30 0b bmi $0972 +0967: f5 9a 03 mov a,$039a+x +096a: 30 04 bmi $0970 +096c: e8 64 mov a,#$64 +096e: 2f 02 bra $0972 +0970: e8 00 mov a,#$00 +0972: fd mov y,a +0973: f5 43 01 mov a,$0143+x +0976: c4 3c mov $3c,a +0978: cf mul ya +0979: cd 64 mov x,#$64 +097b: 9e div ya,x +097c: f8 28 mov x,$28 +097e: 73 48 14 bbc3 $48,$0995 +0981: c4 3a mov $3a,a +0983: 6d push y +0984: eb 2d mov y,$2d +0986: f6 c3 03 mov a,$03c3+y +0989: ee pop y +098a: d0 04 bne $0990 +098c: e4 3a mov a,$3a +098e: 2f 05 bra $0995 +0990: e4 3c mov a,$3c +0992: 80 setc +0993: a4 3a sbc a,$3a +0995: c4 3a mov $3a,a +0997: d5 28 02 mov $0228+x,a +099a: e4 3c mov a,$3c +099c: 80 setc +099d: a4 3a sbc a,$3a +099f: d5 30 02 mov $0230+x,a +09a2: 1d dec x +09a3: 30 03 bmi $09a8 +09a5: 5f 34 09 jmp $0934 + +09a8: cd 07 mov x,#$07 ; process pitch envelopes (start with ch 7) +09aa: 3f be 0b call $0bbe +09ad: d8 28 mov $28,x +09af: 7d mov a,x +09b0: 60 clrc +09b1: 88 08 adc a,#$08 +09b3: c4 2d mov $2d,a +09b5: f4 62 mov a,$62+x +09b7: c4 48 mov $48,a +09b9: 7d mov a,x +09ba: 1c asl a +09bb: 5d mov x,a +09bc: f5 d5 fc mov a,$fcd5+x +09bf: c4 43 mov $43,a +09c1: f5 d4 fc mov a,$fcd4+x +09c4: c4 42 mov $42,a +09c6: 53 48 15 bbc2 $48,$09de +09c9: 4d push x +09ca: 42 08 set2 $08 +09cc: 3f 9c 12 call $129c +09cf: 52 08 clr2 $08 +09d1: ce pop x +09d2: 7a 42 addw ya,$42 +09d4: 80 setc +09d5: a8 b0 sbc a,#$b0 +09d7: c4 42 mov $42,a +09d9: dd mov a,y +09da: a8 04 sbc a,#$04 +09dc: c4 43 mov $43,a +09de: f5 4c 01 mov a,$014c+x +09e1: fd mov y,a +09e2: f5 4b 01 mov a,$014b+x +09e5: 7a 42 addw ya,$42 +09e7: da 3a movw $3a,ya +09e9: fb d8 mov y,$d8+x +09eb: f4 d7 mov a,$d7+x +09ed: 7a 3a addw ya,$3a +09ef: c3 48 03 bbs6 $48,$09f5 +09f2: 3f dc 14 call $14dc ; translate note to frequency +09f5: da 3a movw $3a,ya ; add in hardware tuning +09f7: e4 28 mov a,$28 ; word addressing +09f9: 1c asl a +09fa: 5d mov x,a +09fb: f5 5c 01 mov a,$015c+x +09fe: fd mov y,a +09ff: f5 5b 01 mov a,$015b+x +0a02: 7a 3a addw ya,$3a +0a04: f8 28 mov x,$28 +0a06: d5 33 01 mov $0133+x,a +0a09: dd mov a,y +0a0a: d5 3b 01 mov $013b+x,a +0a0d: 1d dec x +0a0e: 10 9a bpl $09aa +0a10: 8f 5c f2 mov $f2,#$5c +0a13: 8f 00 f3 mov $f3,#$00 +0a16: cd 07 mov x,#$07 +0a18: 3f be 0b call $0bbe +0a1b: d8 28 mov $28,x +0a1d: 7d mov a,x +0a1e: 60 clrc +0a1f: 88 00 adc a,#$00 +0a21: c4 2d mov $2d,a +0a23: f5 5f 08 mov a,$085f+x +0a26: c4 45 mov $45,a +0a28: 48 ff eor a,#$ff +0a2a: c4 46 mov $46,a +0a2c: f4 62 mov a,$62+x +0a2e: c4 48 mov $48,a +0a30: 03 48 07 bbs0 $48,$0a3a +0a33: f5 23 01 mov a,$0123+x +0a36: fd mov y,a +0a37: 5f 47 0a jmp $0a47 + +0a3a: 3f 9c 12 call $129c +0a3d: fd mov y,a +0a3e: f8 28 mov x,$28 +0a40: b3 07 04 bbc5 $07,$0a47 +0a43: e8 00 mov a,#$00 +0a45: d4 6a mov $6a+x,a +0a47: e8 80 mov a,#$80 +0a49: de 6a 04 cbne $6a+x,$0a50 +0a4c: e4 5a mov a,$5a +0a4e: 2f 02 bra $0a52 +0a50: e4 59 mov a,$59 +0a52: cf mul ya +0a53: f5 92 03 mov a,$0392+x +0a56: cf mul ya +0a57: dd mov a,y +0a58: d5 2b 01 mov $012b+x,a +0a5b: e4 51 mov a,$51 +0a5d: 24 45 and a,$45 +0a5f: d0 35 bne $0a96 +0a61: f5 2a 08 mov a,$082a+x +0a64: c4 f2 mov $f2,a +0a66: dd mov a,y +0a67: 80 setc +0a68: a4 f3 sbc a,$f3 +0a6a: b0 08 bcs $0a74 +0a6c: 8f 80 39 mov $39,#$80 +0a6f: 48 ff eor a,#$ff +0a71: bc inc a +0a72: 2f 03 bra $0a77 +0a74: 8f c0 39 mov $39,#$c0 +0a77: 5c lsr a +0a78: d0 08 bne $0a82 +0a7a: ad 00 cmp y,#$00 +0a7c: d0 04 bne $0a82 +0a7e: e8 82 mov a,#$82 +0a80: 2f 0e bra $0a90 +0a82: 8d 15 mov y,#$15 +0a84: 76 fe 07 cmp a,$07fe+y +0a87: 90 02 bcc $0a8b +0a89: fe f9 dbnz y,$0a84 +0a8b: f6 14 08 mov a,$0814+y +0a8e: 04 39 or a,$39 +0a90: 75 cc fc cmp a,$fccc+x +0a93: f0 20 beq $0ab5 +0a95: fd mov y,a +0a96: 29 46 51 and ($51),($46) +0a99: f5 4a 08 mov a,$084a+x +0a9c: c4 f2 mov $f2,a +0a9e: f5 28 02 mov a,$0228+x +0aa1: c4 f3 mov $f3,a +0aa3: ab f2 inc $f2 +0aa5: f5 30 02 mov a,$0230+x +0aa8: c4 f3 mov $f3,a +0aaa: f5 32 08 mov a,$0832+x +0aad: c4 f2 mov $f2,a +0aaf: cb f3 mov $f3,y +0ab1: dd mov a,y +0ab2: d5 cc fc mov $fccc+x,a +0ab5: f5 42 08 mov a,$0842+x +0ab8: c4 f2 mov $f2,a +0aba: fd mov y,a +0abb: f5 33 01 mov a,$0133+x +0abe: c4 f3 mov $f3,a +0ac0: fc inc y +0ac1: cb f2 mov $f2,y +0ac3: f5 3b 01 mov a,$013b+x +0ac6: c4 f3 mov $f3,a +0ac8: 1d dec x +0ac9: 30 03 bmi $0ace +0acb: 5f 18 0a jmp $0a18 + +0ace: 8f 4c f2 mov $f2,#$4c +0ad1: fa 57 f3 mov ($f3),($57) +0ad4: e4 57 mov a,$57 +0ad6: 48 ff eor a,#$ff +0ad8: c4 58 mov $58,a +0ada: 29 58 52 and ($52),($58) +0add: 29 58 54 and ($54),($58) +0ae0: 8f 00 56 mov $56,#$00 +0ae3: 3f be 0b call $0bbe +0ae6: 8d 07 mov y,#$07 +0ae8: cd 0e mov x,#$0e +0aea: 3f be 0b call $0bbe +0aed: f6 6a 00 mov a,$006a+y +0af0: f0 31 beq $0b23 +0af2: f6 62 00 mov a,$0062+y +0af5: c4 48 mov $48,a +0af7: f3 48 07 bbc7 $48,$0b01 +0afa: f6 5f 08 mov a,$085f+y +0afd: 24 52 and a,$52 +0aff: d0 1d bne $0b1e +0b01: f6 6a 00 mov a,$006a+y +0b04: 68 80 cmp a,#$80 +0b06: d0 1b bne $0b23 +0b08: f6 46 02 mov a,$0246+y +0b0b: 28 02 and a,#$02 +0b0d: d0 14 bne $0b23 +0b0f: 9b 73 dec $73+x +0b11: f4 73 mov a,$73+x +0b13: 2e 05 02 cbne $05,$0b18 +0b16: 9b 74 dec $74+x +0b18: f4 73 mov a,$73+x +0b1a: 14 74 or a,$74+x +0b1c: d0 05 bne $0b23 +0b1e: e8 80 mov a,#$80 +0b20: 3f 7b 17 call $177b +0b23: 1d dec x +0b24: 1d dec x +0b25: dc dec y +0b26: 10 c2 bpl $0aea +0b28: 3f be 0b call $0bbe +0b2b: ec 43 02 mov y,$0243 +0b2e: f0 54 beq $0b84 +0b30: 6e cc 51 dbnz $cc,$0b84 +0b33: cb cc mov $cc,y +0b35: e5 3b 02 mov a,$023b +0b38: f8 cd mov x,$cd +0b3a: 30 0d bmi $0b49 +0b3c: 60 clrc +0b3d: 84 ce adc a,$ce +0b3f: b0 04 bcs $0b45 +0b41: 68 7f cmp a,#$7f +0b43: 90 12 bcc $0b57 +0b45: e8 7f mov a,#$7f +0b47: 2f 09 bra $0b52 +0b49: 80 setc +0b4a: a4 ce sbc a,$ce +0b4c: f0 04 beq $0b52 +0b4e: b0 07 bcs $0b57 +0b50: e8 00 mov a,#$00 +0b52: 8d 00 mov y,#$00 +0b54: cc 43 02 mov $0243,y +0b57: 5d mov x,a +0b58: 65 44 02 cmp a,$0244 +0b5b: 90 03 bcc $0b60 +0b5d: e5 44 02 mov a,$0244 +0b60: c5 38 02 mov $0238,a +0b63: 7d mov a,x +0b64: c5 3b 02 mov $023b,a +0b67: c5 3c 02 mov $023c,a +0b6a: 65 45 02 cmp a,$0245 +0b6d: 90 03 bcc $0b72 +0b6f: e5 45 02 mov a,$0245 +0b72: c5 39 02 mov $0239,a +0b75: e5 43 02 mov a,$0243 +0b78: d0 0a bne $0b84 +0b7a: aa 07 40 mov1 c,$0007,2 +0b7d: 90 05 bcc $0b84 +0b7f: 8d 80 mov y,#$80 +0b81: 5f 42 0d jmp $0d42 + +0b84: 6f ret + +0b85: 32 08 clr1 $08 +0b87: e4 e7 mov a,$e7 +0b89: f0 2f beq $0bba +0b8b: 9c dec a +0b8c: c4 e7 mov $e7,a +0b8e: f8 e9 mov x,$e9 +0b90: f5 90 10 mov a,$1090+x +0b93: 28 fe and a,#$fe +0b95: c4 30 mov $30,a +0b97: f5 a0 10 mov a,$10a0+x +0b9a: c4 31 mov $31,a +0b9c: f5 b0 10 mov a,$10b0+x +0b9f: c4 32 mov $32,a +0ba1: 3d inc x +0ba2: c8 10 cmp x,#$10 +0ba4: d0 02 bne $0ba8 +0ba6: cd 00 mov x,#$00 +0ba8: d8 e9 mov $e9,x +0baa: e4 30 mov a,$30 +0bac: 5d mov x,a +0bad: 28 fe and a,#$fe +0baf: c8 45 cmp x,#$45 +0bb1: b0 07 bcs $0bba +0bb3: e4 31 mov a,$31 +0bb5: eb 32 mov y,$32 +0bb7: 3f bb 0b call $0bbb +0bba: 6f ret + +0bbb: 1f 45 1e jmp ($1e45+x) + +; que command +0bbe: 73 08 24 bbc3 $08,$0be5 +0bc1: 69 03 f6 cmp ($f6),($03) +0bc4: f0 1f beq $0be5 +0bc6: 23 08 1c bbs1 $08,$0be5 +0bc9: 2d push a +0bca: e4 f6 mov a,$f6 +0bcc: f0 16 beq $0be4 +0bce: 2e f6 13 cbne $f6,$0be4 +0bd1: e4 f7 mov a,$f7 +0bd3: 68 1e cmp a,#$1e +0bd5: d0 30 bne $0c07 +0bd7: fa f4 18 mov ($18),($f4) +0bda: fa f5 19 mov ($19),($f5) +0bdd: e4 f6 mov a,$f6 +0bdf: 8f b7 f1 mov $f1,#$b7 +0be2: c4 f6 mov $f6,a +0be4: ae pop a +0be5: 6f ret + +0be6: 6d push y +0be7: 4d push x +0be8: ba f4 movw ya,$f4 +0bea: da 1a movw $1a,ya +0bec: f8 f6 mov x,$f6 +0bee: 8f b7 f1 mov $f1,#$b7 +0bf1: 8d 00 mov y,#$00 +0bf3: f7 1a mov a,($1a)+y +0bf5: c4 f4 mov $f4,a +0bf7: fc inc y +0bf8: f7 1a mov a,($1a)+y +0bfa: c4 f5 mov $f5,a +0bfc: fc inc y +0bfd: f7 1a mov a,($1a)+y +0bff: c4 f7 mov $f7,a +0c01: d8 f6 mov $f6,x +0c03: ce pop x +0c04: ee pop y +0c05: ae pop a +0c06: 6f ret + +0c07: 68 22 cmp a,#$22 +0c09: f0 52 beq $0c5d +0c0b: 68 0c cmp a,#$0c +0c0d: f0 d7 beq $0be6 +0c0f: 68 0e cmp a,#$0e +0c11: d0 03 bne $0c16 +0c13: 5f dd 07 jmp $07dd + +0c16: 68 02 cmp a,#$02 +0c18: d0 15 bne $0c2f +0c1a: 4d push x +0c1b: 6d push y +0c1c: e4 f6 mov a,$f6 +0c1e: 8f b7 f1 mov $f1,#$b7 +0c21: 2d push a +0c22: 72 08 clr3 $08 +0c24: 3f d2 0c call $0cd2 +0c27: 62 08 set3 $08 +0c29: ae pop a +0c2a: c4 f6 mov $f6,a +0c2c: ee pop y +0c2d: 2f 2b bra $0c5a +0c2f: 4d push x +0c30: f8 e8 mov x,$e8 +0c32: d5 90 10 mov $1090+x,a +0c35: e4 f4 mov a,$f4 +0c37: d5 a0 10 mov $10a0+x,a +0c3a: e4 f5 mov a,$f5 +0c3c: d5 b0 10 mov $10b0+x,a +0c3f: e4 f6 mov a,$f6 +0c41: 8f b7 f1 mov $f1,#$b7 +0c44: c4 f6 mov $f6,a +0c46: 3d inc x +0c47: c8 10 cmp x,#$10 +0c49: d0 02 bne $0c4d +0c4b: cd 00 mov x,#$00 +0c4d: d8 e8 mov $e8,x +0c4f: e4 e7 mov a,$e7 +0c51: bc inc a +0c52: c4 e7 mov $e7,a +0c54: 68 10 cmp a,#$10 +0c56: d0 02 bne $0c5a +0c58: 22 08 set1 $08 +0c5a: ce pop x +0c5b: ae pop a +0c5c: 6f ret + +0c5d: 6d push y +0c5e: 4d push x +0c5f: f8 f4 mov x,$f4 +0c61: e4 f6 mov a,$f6 +0c63: 8f b7 f1 mov $f1,#$b7 +0c66: c4 f6 mov $f6,a +0c68: 4d push x +0c69: e4 18 mov a,$18 +0c6b: c5 94 0c mov $0c94,a +0c6e: c5 9c 0c mov $0c9c,a +0c71: c5 a3 0c mov $0ca3,a +0c74: e4 19 mov a,$19 +0c76: c5 95 0c mov $0c95,a +0c79: c5 9d 0c mov $0c9d,a +0c7c: c5 a4 0c mov $0ca4,a +0c7f: e4 f6 mov a,$f6 +0c81: f0 fc beq $0c7f +0c83: 2e f6 f9 cbne $f6,$0c7f +0c86: ba f4 movw ya,$f4 +0c88: da 1a movw $1a,ya +0c8a: ba f6 movw ya,$f6 +0c8c: 8f b7 f1 mov $f1,#$b7 +0c8f: c4 f6 mov $f6,a +0c91: e4 1a mov a,$1a +0c93: d5 93 0c mov $0c93+x,a +0c96: 1d dec x +0c97: 30 0f bmi $0ca8 +0c99: e4 1b mov a,$1b +0c9b: d5 9b 0c mov $0c9b+x,a +0c9e: 1d dec x +0c9f: 30 07 bmi $0ca8 +0ca1: dd mov a,y +0ca2: d5 a2 0c mov $0ca2+x,a +0ca5: 1d dec x +0ca6: 10 d7 bpl $0c7f +0ca8: e4 f6 mov a,$f6 +0caa: f0 fc beq $0ca8 +0cac: 2e f6 f9 cbne $f6,$0ca8 +0caf: ba f4 movw ya,$f4 +0cb1: da 1a movw $1a,ya +0cb3: ba f6 movw ya,$f6 +0cb5: 8f b7 f1 mov $f1,#$b7 +0cb8: c4 f6 mov $f6,a +0cba: ad 01 cmp y,#$01 +0cbc: d0 07 bne $0cc5 +0cbe: ae pop a +0cbf: ba 1a movw ya,$1a +0cc1: da 18 movw $18,ya +0cc3: 2f 09 bra $0cce +0cc5: ae pop a +0cc6: 8d 00 mov y,#$00 +0cc8: 7a 18 addw ya,$18 +0cca: da 18 movw $18,ya +0ccc: 3a 18 incw $18 +0cce: ce pop x +0ccf: ee pop y +0cd0: ae pop a +0cd1: 6f ret + +0cd2: 3f 34 11 call $1134 +0cd5: 3f 2a 11 call $112a +0cd8: 22 07 set1 $07 +0cda: 6f ret + +0cdb: c5 a2 03 mov $03a2,a +0cde: 6f ret + +0cdf: e8 00 mov a,#$00 +0ce1: c5 43 02 mov $0243,a +0ce4: 6f ret + +0ce5: cd 01 mov x,#$01 +0ce7: 52 07 clr2 $07 +0ce9: 2f 02 bra $0ced +0ceb: cd ff mov x,#$ff +0ced: c5 43 02 mov $0243,a +0cf0: c4 cc mov $cc,a +0cf2: cb ce mov $ce,y +0cf4: d8 cd mov $cd,x +0cf6: 6f ret + +0cf7: 2d push a +0cf8: dd mov a,y +0cf9: 28 7f and a,#$7f +0cfb: c5 3e 02 mov $023e,a +0cfe: ae pop a +0cff: 92 08 clr4 $08 +0d01: 2f 02 bra $0d05 +0d03: 82 08 set4 $08 +0d05: 8f ff cb mov $cb,#$ff +0d08: 5f 95 0d jmp $0d95 + +0d0b: 3f f9 1c call $1cf9 +0d0e: e5 fc 1e mov a,$1efc +0d11: c5 63 06 mov $0663,a +0d14: e5 fd 1e mov a,$1efd +0d17: c5 64 06 mov $0664,a +0d1a: 05 63 06 or a,$0663 +0d1d: f0 20 beq $0d3f +0d1f: 3f 50 17 call $1750 +0d22: e5 63 06 mov a,$0663 +0d25: 80 setc +0d26: a8 01 sbc a,#$01 +0d28: c5 63 06 mov $0663,a +0d2b: e5 64 06 mov a,$0664 +0d2e: a8 00 sbc a,#$00 +0d30: c5 64 06 mov $0664,a +0d33: b0 ea bcs $0d1f +0d35: cd 07 mov x,#$07 +0d37: e8 00 mov a,#$00 +0d39: d5 43 01 mov $0143+x,a +0d3c: 1d dec x +0d3d: 10 fa bpl $0d39 +0d3f: 6f ret + +0d40: 8d ff mov y,#$ff +0d42: cd 07 mov x,#$07 +0d44: ad 80 cmp y,#$80 +0d46: f0 04 beq $0d4c +0d48: ad ff cmp y,#$ff +0d4a: d0 05 bne $0d51 +0d4c: 82 07 set4 $07 +0d4e: 8f 00 84 mov $84,#$00 +0d51: c4 72 mov $72,a +0d53: ad 80 cmp y,#$80 +0d55: f0 16 beq $0d6d +0d57: e8 01 mov a,#$01 +0d59: ad ff cmp y,#$ff +0d5b: f0 0d beq $0d6a +0d5d: ad 00 cmp y,#$00 +0d5f: d0 07 bne $0d68 +0d61: e4 72 mov a,$72 +0d63: 75 1b 01 cmp a,$011b+x +0d66: d0 1d bne $0d85 +0d68: e8 80 mov a,#$80 +0d6a: de 6a 18 cbne $6a+x,$0d85 +0d6d: f5 32 08 mov a,$0832+x +0d70: c4 f2 mov $f2,a +0d72: 8f 9f f3 mov $f3,#$9f +0d75: e8 00 mov a,#$00 +0d77: d5 23 01 mov $0123+x,a +0d7a: d4 6a mov $6a+x,a +0d7c: d4 62 mov $62+x,a +0d7e: f5 5f 08 mov a,$085f+x +0d81: 04 56 or a,$56 +0d83: c4 56 mov $56,a +0d85: 1d dec x +0d86: 10 cb bpl $0d53 +0d88: 6f ret + +0d89: 52 07 clr2 $07 +0d8b: 5f eb 0c jmp $0ceb + +0d8e: 42 07 set2 $07 +0d90: 5f eb 0c jmp $0ceb + +0d93: cb cb mov $cb,y +0d95: 8d 0e mov y,#$0e +0d97: c4 72 mov $72,a +0d99: 3f 63 10 call $1063 +0d9c: da 22 movw $22,ya +0d9e: 8d 00 mov y,#$00 +0da0: f7 22 mov a,($22)+y +0da2: c4 4d mov $4d,a +0da4: 3a 22 incw $22 +0da6: 8d 07 mov y,#$07 +0da8: f7 22 mov a,($22)+y +0daa: 24 0a and a,$0a +0dac: c4 4e mov $4e,a +0dae: 8d 06 mov y,#$06 +0db0: f7 22 mov a,($22)+y +0db2: c4 4f mov $4f,a +0db4: 8f 80 50 mov $50,#$80 +0db7: cd 07 mov x,#$07 +0db9: 3f 70 0e call $0e70 +0dbc: 10 03 bpl $0dc1 +0dbe: 5f 42 0e jmp $0e42 + +0dc1: 83 08 07 bbs4 $08,$0dcb +0dc4: e8 02 mov a,#$02 +0dc6: 15 46 02 or a,$0246+x +0dc9: 2f 05 bra $0dd0 +0dcb: e8 fd mov a,#$fd +0dcd: 35 46 02 and a,$0246+x +0dd0: d5 46 02 mov $0246+x,a +0dd3: e8 80 mov a,#$80 +0dd5: d4 6a mov $6a+x,a +0dd7: e5 3e 02 mov a,$023e +0dda: d4 cf mov $cf+x,a +0ddc: e5 3f 02 mov a,$023f +0ddf: d5 92 03 mov $0392+x,a +0de2: e5 40 02 mov a,$0240 +0de5: d5 9a 03 mov $039a+x,a +0de8: e5 8e 03 mov a,$038e +0deb: c4 0d mov $0d,a +0ded: e5 90 03 mov a,$0390 +0df0: c4 0c mov $0c,a +0df2: e5 8f 03 mov a,$038f +0df5: c4 0e mov $0e,a +0df7: e5 91 03 mov a,$0391 +0dfa: c4 0f mov $0f,a +0dfc: 7d mov a,x +0dfd: 1c asl a +0dfe: fd mov y,a +0dff: e8 00 mov a,#$00 +0e01: d6 5b 01 mov $015b+y,a +0e04: d6 5c 01 mov $015c+y,a +0e07: c5 3d 02 mov $023d,a +0e0a: e5 41 02 mov a,$0241 +0e0d: d6 d7 00 mov $00d7+y,a +0e10: e5 42 02 mov a,$0242 +0e13: d6 d8 00 mov $00d8+y,a +0e16: e4 72 mov a,$72 +0e18: d5 1b 01 mov $011b+x,a +0e1b: 8d 02 mov y,#$02 +0e1d: f7 22 mov a,($22)+y +0e1f: c4 49 mov $49,a +0e21: fc inc y +0e22: f7 22 mov a,($22)+y +0e24: c4 4a mov $4a,a +0e26: 8d 04 mov y,#$04 +0e28: f7 22 mov a,($22)+y +0e2a: c4 4b mov $4b,a +0e2c: fc inc y +0e2d: f7 22 mov a,($22)+y +0e2f: c4 4c mov $4c,a +0e31: 8d 01 mov y,#$01 +0e33: f7 22 mov a,($22)+y +0e35: 2d push a +0e36: 8d 00 mov y,#$00 +0e38: f7 22 mov a,($22)+y +0e3a: 02 07 set0 $07 +0e3c: ee pop y +0e3d: 72 07 clr3 $07 +0e3f: 3f e5 0e call $0ee5 +0e42: 60 clrc +0e43: 98 08 22 adc $22,#$08 +0e46: 90 02 bcc $0e4a +0e48: ab 23 inc $23 +0e4a: 8b 4d dec $4d +0e4c: f0 03 beq $0e51 +0e4e: 5f a6 0d jmp $0da6 + +0e51: e8 00 mov a,#$00 +0e53: c5 3e 02 mov $023e,a +0e56: c5 41 02 mov $0241,a +0e59: c5 42 02 mov $0242,a +0e5c: c5 40 02 mov $0240,a +0e5f: c5 8e 03 mov $038e,a +0e62: c5 90 03 mov $0390,a +0e65: c5 8f 03 mov $038f,a +0e68: c5 91 03 mov $0391,a +0e6b: 9c dec a +0e6c: c5 3f 02 mov $023f,a +0e6f: 6f ret + +0e70: 8f 00 09 mov $09,#$00 +0e73: 83 09 5a bbs4 $09,$0ed0 +0e76: 8d 07 mov y,#$07 +0e78: 8f ff 3a mov $3a,#$ff +0e7b: 8f ff 3b mov $3b,#$ff +0e7e: 73 09 08 bbc3 $09,$0e89 +0e81: c8 08 cmp x,#$08 +0e83: b0 4b bcs $0ed0 +0e85: 8d 00 mov y,#$00 +0e87: 2f 09 bra $0e92 +0e89: 3f be 0b call $0bbe +0e8c: e4 50 mov a,$50 +0e8e: 24 4e and a,$4e +0e90: f0 1f beq $0eb1 +0e92: f4 6a mov a,$6a+x +0e94: f0 41 beq $0ed7 +0e96: e4 4f mov a,$4f +0e98: 03 09 06 bbs0 $09,$0ea1 +0e9b: 74 10 cmp a,$10+x +0e9d: b0 38 bcs $0ed7 +0e9f: 2f 10 bra $0eb1 +0ea1: 74 10 cmp a,$10+x +0ea3: f0 0c beq $0eb1 +0ea5: 90 0a bcc $0eb1 +0ea7: f4 10 mov a,$10+x +0ea9: 64 3b cmp a,$3b +0eab: b0 04 bcs $0eb1 +0ead: c4 3b mov $3b,a +0eaf: d8 3a mov $3a,x +0eb1: 53 09 0c bbc2 $09,$0ec0 +0eb4: 0b 50 asl $50 +0eb6: d0 05 bne $0ebd +0eb8: 8f 01 50 mov $50,#$01 +0ebb: cd ff mov x,#$ff +0ebd: 3d inc x +0ebe: 2f 0a bra $0eca +0ec0: 4b 50 lsr $50 +0ec2: d0 05 bne $0ec9 +0ec4: 8f 80 50 mov $50,#$80 +0ec7: cd 08 mov x,#$08 +0ec9: 1d dec x +0eca: dc dec y +0ecb: 10 bc bpl $0e89 +0ecd: 03 09 03 bbs0 $09,$0ed3 +0ed0: e8 ff mov a,#$ff +0ed2: 6f ret + +0ed3: f8 3a mov x,$3a +0ed5: 30 f9 bmi $0ed0 +0ed7: 33 09 04 bbc1 $09,$0ede +0eda: f4 6a mov a,$6a+x +0edc: d0 f2 bne $0ed0 +0ede: e4 4f mov a,$4f +0ee0: d4 10 mov $10+x,a +0ee2: e8 00 mov a,#$00 +0ee4: 6f ret + +0ee5: d8 28 mov $28,x ; play sound (instrument) +0ee7: d8 47 mov $47,x +0ee9: 2d push a +0eea: f5 46 02 mov a,$0246+x +0eed: 28 fe and a,#$fe +0eef: d5 46 02 mov $0246+x,a +0ef2: 63 07 08 bbs3 $07,$0efd +0ef5: f5 32 08 mov a,$0832+x +0ef8: c4 f2 mov $f2,a +0efa: 8f 9f f3 mov $f3,#$9f +0efd: dd mov a,y +0efe: d5 43 01 mov $0143+x,a +0f01: 7d mov a,x +0f02: 1c asl a +0f03: 5d mov x,a +0f04: e4 4b mov a,$4b +0f06: d5 d4 fc mov $fcd4+x,a +0f09: e4 4c mov a,$4c +0f0b: d5 d5 fc mov $fcd5+x,a +0f0e: e4 49 mov a,$49 +0f10: d4 73 mov $73+x,a +0f12: e4 4a mov a,$4a +0f14: d4 74 mov $74+x,a +0f16: ae pop a +0f17: 8d 02 mov y,#$02 +0f19: 3f 63 10 call $1063 +0f1c: da 20 movw $20,ya ;get current voice and instrument +0f1e: f8 47 mov x,$47 +0f20: f5 5f 08 mov a,$085f+x ;get channel bit mask ID +0f23: c4 60 mov $60,a +0f25: 48 ff eor a,#$ff ;and store inversion +0f27: c4 61 mov $61,a +0f29: 8d 00 mov y,#$00 ;get mode flags +0f2b: f7 20 mov a,($20)+y +0f2d: 2d push a +0f2e: e4 cb mov a,$cb +0f30: 30 0a bmi $0f3c +0f32: ae pop a +0f33: 2d push a +0f34: 28 08 and a,#$08 +0f36: f0 04 beq $0f3c +0f38: ae pop a +0f39: 48 08 eor a,#$08 +0f3b: 2d push a +0f3c: ae pop a +0f3d: d4 62 mov $62+x,a +0f3f: c4 48 mov $48,a +0f41: 8f 2d f2 mov $f2,#$2d +0f44: 28 20 and a,#$20 ; is pitch modulation enabled? ($20 = pm) +0f46: f0 05 beq $0f4d ; if not... +0f48: 09 60 f3 or ($f3),($60) ; turn pitch mod on +0f4b: 2f 03 bra $0f50 +0f4d: 29 61 f3 and ($f3),($61) ; turn pitch mod off +0f50: 63 07 6a bbs3 $07,$0fbd ; slur handler +0f53: b0 68 bcs $0fbd +0f55: 93 48 5f bbc4 $48,$0fb7 +0f58: 13 08 05 bbc0 $08,$0f60 +0f5b: e5 06 01 mov a,$0106 +0f5e: 2f 04 bra $0f64 +0f60: 8d 05 mov y,#$05 ; default echo +0f62: f7 20 mov a,($20)+y +0f64: 8d 0c mov y,#$0c ; look for echo +0f66: 3f 63 10 call $1063 +0f69: 8d 00 mov y,#$00 +0f6b: f6 6f 08 mov a,$086f+y ; get the echo register values to "poke" +0f6e: c4 f2 mov $f2,a ; (from the table) +0f70: f7 29 mov a,($29)+y ; now get info to feed to the registers +0f72: ad 01 cmp y,#$01 ; (from the echo environment) +0f74: f0 08 beq $0f7e +0f76: ad 03 cmp y,#$03 +0f78: f0 0f beq $0f89 +0f7a: ad 02 cmp y,#$02 +0f7c: d0 10 bne $0f8e +0f7e: d6 43 02 mov $0243+y,a +0f81: 65 3b 02 cmp a,$023b +0f84: 90 03 bcc $0f89 +0f86: e5 3b 02 mov a,$023b +0f89: d6 37 02 mov $0237+y,a +0f8c: 2f 02 bra $0f90 +0f8e: c4 f3 mov $f3,a +0f90: fc inc y +0f91: ad 0c cmp y,#$0c ; repeat for every byte of the array +0f93: 90 d6 bcc $0f6b +0f95: 8f 6c f2 mov $f2,#$6c +0f98: e4 f3 mov a,$f3 +0f9a: 28 20 and a,#$20 +0f9c: f0 11 beq $0faf +0f9e: e5 e1 1e mov a,$1ee1 +0fa1: 8f 6d f2 mov $f2,#$6d +0fa4: c4 f3 mov $f3,a +0fa6: 8f 6c f2 mov $f2,#$6c +0fa9: e8 df mov a,#$df +0fab: 24 f3 and a,$f3 +0fad: c4 f3 mov $f3,a +0faf: 8f 4d f2 mov $f2,#$4d +0fb2: 09 60 f3 or ($f3),($60) +0fb5: 2f 06 bra $0fbd +0fb7: 8f 4d f2 mov $f2,#$4d +0fba: 29 61 f3 and ($f3),($61) +0fbd: e4 47 mov a,$47 +0fbf: 60 clrc +0fc0: 88 00 adc a,#$00 +0fc2: c4 2d mov $2d,a +0fc4: 8d 01 mov y,#$01 +0fc6: f7 20 mov a,($20)+y ; now get the amplitude +0fc8: 03 48 08 bbs0 $48,$0fd3 +0fcb: f8 47 mov x,$47 +0fcd: d5 23 01 mov $0123+x,a +0fd0: 5f de 0f jmp $0fde + +0fd3: 8d 04 mov y,#$04 +0fd5: 3f 63 10 call $1063 +0fd8: fa 0d 0b mov ($0b),($0d) +0fdb: 3f cf 11 call $11cf +0fde: e4 47 mov a,$47 +0fe0: 60 clrc +0fe1: 88 08 adc a,#$08 +0fe3: c4 2d mov $2d,a +0fe5: 53 48 13 bbc2 $48,$0ffb +0fe8: 8d 03 mov y,#$03 +0fea: f7 20 mov a,($20)+y +0fec: 8d 06 mov y,#$06 +0fee: 3f 63 10 call $1063 +0ff1: fa 0e 0b mov ($0b),($0e) +0ff4: 42 08 set2 $08 +0ff6: 3f cf 11 call $11cf +0ff9: 52 08 clr2 $08 +0ffb: e4 47 mov a,$47 +0ffd: 60 clrc +0ffe: 88 18 adc a,#$18 +1000: c4 2d mov $2d,a +1002: 63 07 5b bbs3 $07,$1060 +1005: e4 cb mov a,$cb +1007: 10 07 bpl $1010 +1009: 8d 04 mov y,#$04 +100b: f7 20 mov a,($20)+y +100d: 63 48 08 bbs3 $48,$1018 +1010: f8 47 mov x,$47 +1012: d5 e4 fc mov $fce4+x,a +1015: 5f 39 10 jmp $1039 + +1018: 8d 08 mov y,#$08 +101a: 3f 63 10 call $1063 +101d: fa 0f 0b mov ($0b),($0f) +1020: 3f cf 11 call $11cf +1023: eb 2d mov y,$2d +1025: f6 e3 04 mov a,$04e3+y +1028: f0 0a beq $1034 +102a: f6 c3 03 mov a,$03c3+y +102d: d0 05 bne $1034 +102f: e8 ff mov a,#$ff +1031: 5f 36 10 jmp $1036 + +1034: e8 00 mov a,#$00 +1036: d6 c3 03 mov $03c3+y,a +1039: e4 47 mov a,$47 +103b: 60 clrc +103c: 88 10 adc a,#$10 +103e: c4 2d mov $2d,a +1040: 8d 02 mov y,#$02 +1042: f7 20 mov a,($20)+y +1044: 23 48 08 bbs1 $48,$104f +1047: f8 47 mov x,$47 +1049: d5 ec fc mov $fcec+x,a +104c: 5f 5a 10 jmp $105a + +104f: 8d 0a mov y,#$0a +1051: 3f 63 10 call $1063 +1054: fa 0c 0b mov ($0b),($0c) +1057: 3f cf 11 call $11cf +105a: 09 60 56 or ($56),($60) +105d: 09 60 51 or ($51),($60) +1060: 72 07 clr3 $07 +1062: 6f ret + +1063: 3f be 0b call $0bbe ; load current song/sfx/etc. address into stack +1066: 8f 00 1f mov $1f,#$00 +1069: 1c asl a +106a: 2b 1f rol $1f +106c: 60 clrc +106d: 96 e0 1e adc a,$1ee0+y +1070: c4 1e mov $1e,a +1072: e4 1f mov a,$1f +1074: 96 e1 1e adc a,$1ee1+y +1077: c4 1f mov $1f,a +1079: 8d 01 mov y,#$01 +107b: f7 1e mov a,($1e)+y +107d: c4 2a mov $2a,a +107f: dc dec y +1080: f7 1e mov a,($1e)+y +1082: c4 29 mov $29,a +1084: eb 2a mov y,$2a +1086: 6f ret + +1087: db $0f,$00,$00,$00,$00,$00,$00,$00,$00 +1090: db $12,$16,$2e,$06,$16,$28,$16,$28,$16,$28,$16,$28,$16,$28,$04,$04 +10a0: db $01,$00,$ff,$05,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$09,$29 +10b0: db $01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + +; initalize sound registers +10c0: e8 87 mov a,#$87 +10c2: c5 20 02 mov $0220,a +10c5: c5 22 02 mov $0222,a +10c8: e8 87 mov a,#$87 +10ca: c5 21 02 mov $0221,a +10cd: c5 23 02 mov $0223,a +10d0: e8 00 mov a,#$00 +10d2: 5d mov x,a +10d3: d5 00 01 mov $0100+x,a +10d6: af mov (x)+,a +10d7: c8 f0 cmp x,#$f0 +10d9: 90 f8 bcc $10d3 +10db: 5d mov x,a +10dc: d5 00 02 mov $0200+x,a +10df: d5 00 03 mov $0300+x,a +10e2: d5 00 04 mov $0400+x,a +10e5: d5 00 05 mov $0500+x,a +10e8: d5 00 06 mov $0600+x,a +10eb: d5 00 fc mov $fc00+x,a +10ee: d5 00 fd mov $fd00+x,a +10f1: d5 00 fe mov $fe00+x,a +10f4: d5 00 ff mov $ff00+x,a +10f7: 3d inc x +10f8: d0 e2 bne $10dc +10fa: e8 ff mov a,#$ff +10fc: c4 52 mov $52,a +10fe: c4 54 mov $54,a +1100: c4 5d mov $5d,a +1102: c4 53 mov $53,a +1104: c4 58 mov $58,a +1106: c4 59 mov $59,a +1108: c4 5a mov $5a,a +110a: c5 3f 02 mov $023f,a +110d: c4 05 mov $05,a +110f: c4 06 mov $06,a +1111: c4 0a mov $0a,a +1113: 82 07 set4 $07 +1115: 6f ret + +1116: cd 14 mov x,#$14 +1118: e8 00 mov a,#$00 +111a: d5 28 02 mov $0228+x,a +111d: 1d dec x +111e: 10 fa bpl $111a +1120: 8d 01 mov y,#$01 +1122: 3f 4a 07 call $074a +1125: 68 00 cmp a,#$00 +1127: d0 f7 bne $1120 +1129: 6f ret + +112a: e8 7f mov a,#$7f +112c: c5 3b 02 mov $023b,a +112f: c5 3c 02 mov $023c,a +1132: 2f ec bra $1120 +1134: 3f 16 11 call $1116 +1137: cd 74 mov x,#$74 +1139: 8d 11 mov y,#$11 +113b: 3f 5d 11 call $115d +113e: e5 e1 1e mov a,$1ee1 +1141: 8f 6d f2 mov $f2,#$6d +1144: c4 f3 mov $f3,a +1146: 68 ff cmp a,#$ff +1148: f0 12 beq $115c +114a: c4 01 mov $01,a +114c: e8 00 mov a,#$00 +114e: fd mov y,a +114f: c4 00 mov $00,a +1151: d7 00 mov ($00)+y,a +1153: fe fc dbnz y,$1151 +1155: ab 01 inc $01 +1157: 78 fc 01 cmp $01,#$fc +115a: d0 f5 bne $1151 +115c: 6f ret + +115d: d8 00 mov $00,x +115f: cb 01 mov $01,y +1161: 8d 00 mov y,#$00 +1163: f7 00 mov a,($00)+y +1165: 68 ff cmp a,#$ff +1167: f0 0a beq $1173 +1169: c4 f2 mov $f2,a +116b: fc inc y +116c: f7 00 mov a,($00)+y +116e: c4 f3 mov $f3,a +1170: fc inc y +1171: d0 f0 bne $1163 +1173: 6f ret + +; pre-defined DSP flags +1174: db $3d,$00,$4d,$00,$0d,$00,$7d,$00,$0f,$00,$1f,$00,$2f,$00,$3f,$00,$4f,$00,$5f,$00,$6f,$00,$7f,$00,$6d,$ff,$2c,$00,$3c,$00,$0c,$00,$1c,$00,$5d,$02,$5c,$00,$2d,$00,$04,$08,$14,$08,$24,$08,$34,$08,$44,$08,$54,$08,$64,$08,$74,$08,$07,$00,$17,$00,$27,$00,$37,$00,$47,$00,$57,$00,$67,$00,$77,$00,$05,$00,$15,$00,$25,$00,$35,$00,$45,$00,$55,$00,$65,$00,$75,$00,$7c,$00,$ff + +11cf: f8 2d mov x,$2d +11d1: 8d 07 mov y,#$07 +11d3: f7 29 mov a,($29)+y +11d5: d5 e3 04 mov $04e3+x,a +11d8: dc dec y +11d9: dc dec y +11da: f7 29 mov a,($29)+y +11dc: d5 03 04 mov $0403+x,a +11df: dc dec y +11e0: f7 29 mov a,($29)+y +11e2: d5 c3 04 mov $04c3+x,a +11e5: dc dec y +11e6: f7 29 mov a,($29)+y +11e8: d5 23 04 mov $0423+x,a +11eb: dc dec y +11ec: f7 29 mov a,($29)+y +11ee: d5 43 04 mov $0443+x,a +11f1: dc dec y +11f2: f7 29 mov a,($29)+y +11f4: d5 83 04 mov $0483+x,a +11f7: dc dec y +11f8: f7 29 mov a,($29)+y +11fa: d5 63 04 mov $0463+x,a +11fd: eb 2d mov y,$2d +11ff: e4 29 mov a,$29 +1201: 60 clrc +1202: 88 08 adc a,#$08 +1204: d6 43 05 mov $0543+y,a +1207: e4 2a mov a,$2a +1209: 88 00 adc a,#$00 +120b: d6 63 05 mov $0563+y,a +120e: f6 23 04 mov a,$0423+y +1211: cd 00 mov x,#$00 +1213: eb 0b mov y,$0b +1215: f0 23 beq $123a +1217: cf mul ya +1218: cb 3a mov $3a,y +121a: c4 3b mov $3b,a +121c: cd 05 mov x,#$05 +121e: 4b 3a lsr $3a +1220: 7c ror a +1221: 1d dec x +1222: d0 fa bne $121e +1224: eb 3a mov y,$3a +1226: ad 00 cmp y,#$00 +1228: d0 08 bne $1232 +122a: 68 00 cmp a,#$00 +122c: f0 0a beq $1238 +122e: f8 3b mov x,$3b +1230: 2f 08 bra $123a +1232: cd 01 mov x,#$01 +1234: e8 ff mov a,#$ff +1236: 2f 02 bra $123a +1238: 5d mov x,a +1239: bc inc a +123a: eb 2d mov y,$2d +123c: d6 23 04 mov $0423+y,a +123f: 7d mov a,x +1240: 48 ff eor a,#$ff +1242: 08 e0 or a,#$e0 +1244: d6 a3 03 mov $03a3+y,a +1247: e8 ff mov a,#$ff +1249: d6 e3 03 mov $03e3+y,a +124c: 3f be 0b call $0bbe +124f: 5d mov x,a +1250: f6 43 04 mov a,$0443+y +1253: fd mov y,a +1254: 7d mov a,x +1255: cf mul ya +1256: da 40 movw $40,ya +1258: 03 07 06 bbs0 $07,$1261 +125b: ba 05 movw ya,$05 +125d: da 40 movw $40,ya +125f: 2f 0a bra $126b +1261: ba 49 movw ya,$49 +1263: 9a 40 subw ya,$40 +1265: b0 02 bcs $1269 +1267: ba 49 movw ya,$49 +1269: cb 41 mov $41,y +126b: eb 2d mov y,$2d +126d: d6 83 05 mov $0583+y,a +1270: e4 41 mov a,$41 +1272: d6 a3 05 mov $05a3+y,a +1275: f6 23 04 mov a,$0423+y +1278: bc inc a +1279: d0 01 bne $127c +127b: 9c dec a +127c: d6 03 05 mov $0503+y,a +127f: 68 03 cmp a,#$03 +1281: b0 05 bcs $1288 +1283: e8 00 mov a,#$00 +1285: d6 c3 04 mov $04c3+y,a +1288: e8 01 mov a,#$01 +128a: d6 a3 04 mov $04a3+y,a +128d: 9c dec a +128e: d6 23 05 mov $0523+y,a +1291: d6 44 ff mov $ff44+y,a +1294: d6 64 ff mov $ff64+y,a +1297: c4 37 mov $37,a +1299: 5f 6e 13 jmp $136e + +129c: eb 2d mov y,$2d +129e: b2 07 clr5 $07 +12a0: f6 c3 04 mov a,$04c3+y +12a3: c4 37 mov $37,a +12a5: f6 a3 04 mov a,$04a3+y +12a8: f0 42 beq $12ec +12aa: f6 a3 03 mov a,$03a3+y +12ad: 60 clrc +12ae: 96 e3 03 adc a,$03e3+y +12b1: d6 e3 03 mov $03e3+y,a +12b4: 90 18 bcc $12ce +12b6: f6 03 05 mov a,$0503+y +12b9: c4 38 mov $38,a +12bb: f0 03 beq $12c0 +12bd: 9c dec a +12be: d0 03 bne $12c3 +12c0: f6 23 04 mov a,$0423+y +12c3: d6 03 05 mov $0503+y,a +12c6: 78 02 38 cmp $38,#$02 +12c9: 90 08 bcc $12d3 +12cb: 5f 6e 13 jmp $136e + +12ce: 8f 00 37 mov $37,#$00 +12d1: 2f f8 bra $12cb +12d3: eb 2d mov y,$2d +12d5: f6 23 05 mov a,$0523+y +12d8: bc inc a +12d9: 76 03 04 cmp a,$0403+y +12dc: 90 1b bcc $12f9 +12de: 9c dec a +12df: 76 83 04 cmp a,$0483+y +12e2: d0 03 bne $12e7 +12e4: 5f 68 13 jmp $1368 + +12e7: e8 00 mov a,#$00 +12e9: d6 a3 04 mov $04a3+y,a +12ec: a2 07 set5 $07 +12ee: f6 24 ff mov a,$ff24+y +12f1: 2d push a +12f2: f6 04 ff mov a,$ff04+y +12f5: ee pop y +12f6: 5f 1f 14 jmp $141f + +12f9: d6 23 05 mov $0523+y,a +12fc: f6 a3 05 mov a,$05a3+y +12ff: 16 83 05 or a,$0583+y +1302: f0 6a beq $136e +1304: f8 28 mov x,$28 +1306: f5 46 02 mov a,$0246+x +1309: 28 02 and a,#$02 +130b: f0 24 beq $1331 +130d: e8 01 mov a,#$01 +130f: 74 6a cmp a,$6a+x +1311: d0 03 bne $1316 +1313: 83 07 09 bbs4 $07,$131f +1316: eb 28 mov y,$28 +1318: f6 46 02 mov a,$0246+y +131b: 28 01 and a,#$01 +131d: f0 3d beq $135c +131f: e8 00 mov a,#$00 +1321: d6 73 00 mov $0073+y,a +1324: d6 74 00 mov $0074+y,a +1327: eb 2d mov y,$2d +1329: d6 83 05 mov $0583+y,a +132c: d6 a3 05 mov $05a3+y,a +132f: 2f 21 bra $1352 +1331: f6 83 05 mov a,$0583+y +1334: 80 setc +1335: b6 23 04 sbc a,$0423+y +1338: d6 83 05 mov $0583+y,a +133b: c4 40 mov $40,a +133d: f6 a3 05 mov a,$05a3+y +1340: a8 00 sbc a,#$00 +1342: b0 07 bcs $134b +1344: e8 00 mov a,#$00 +1346: d6 83 05 mov $0583+y,a +1349: c4 40 mov $40,a +134b: d6 a3 05 mov $05a3+y,a +134e: 04 40 or a,$40 +1350: d0 0a bne $135c +1352: f6 83 04 mov a,$0483+y +1355: 76 03 04 cmp a,$0403+y +1358: 90 11 bcc $136b +135a: a2 07 set5 $07 +135c: eb 2d mov y,$2d +135e: f6 23 05 mov a,$0523+y +1361: 76 83 04 cmp a,$0483+y +1364: 90 08 bcc $136e +1366: f0 06 beq $136e +1368: f6 63 04 mov a,$0463+y +136b: d6 23 05 mov $0523+y,a +136e: eb 2d mov y,$2d +1370: f8 37 mov x,$37 +1372: f0 1c beq $1390 +1374: 78 03 38 cmp $38,#$03 +1377: 90 17 bcc $1390 +1379: f6 04 ff mov a,$ff04+y +137c: c4 33 mov $33,a +137e: f6 24 ff mov a,$ff24+y +1381: c4 34 mov $34,a +1383: f6 44 ff mov a,$ff44+y +1386: c4 35 mov $35,a +1388: f6 64 ff mov a,$ff64+y +138b: c4 36 mov $36,a +138d: 5f 0d 14 jmp $140d + +1390: f6 43 05 mov a,$0543+y +1393: c4 2b mov $2b,a +1395: f6 63 05 mov a,$0563+y +1398: c4 2c mov $2c,a +139a: f6 23 05 mov a,$0523+y +139d: fd mov y,a +139e: 43 08 07 bbs2 $08,$13a8 +13a1: f7 2b mov a,($2b)+y +13a3: 8d 40 mov y,#$40 +13a5: cf mul ya +13a6: 2f 10 bra $13b8 +13a8: 8d 02 mov y,#$02 +13aa: cf mul ya +13ab: 7a 2b addw ya,$2b +13ad: da 2b movw $2b,ya +13af: 8d 01 mov y,#$01 +13b1: f7 2b mov a,($2b)+y +13b3: dc dec y +13b4: 2d push a +13b5: f7 2b mov a,($2b)+y +13b7: ee pop y +13b8: f8 37 mov x,$37 +13ba: f0 55 beq $1411 +13bc: 78 02 38 cmp $38,#$02 +13bf: f0 50 beq $1411 +13c1: da 3a movw $3a,ya +13c3: eb 2d mov y,$2d +13c5: f6 24 ff mov a,$ff24+y +13c8: c4 34 mov $34,a +13ca: f6 04 ff mov a,$ff04+y +13cd: c4 33 mov $33,a +13cf: eb 34 mov y,$34 +13d1: 80 setc +13d2: 9a 3a subw ya,$3a +13d4: da 35 movw $35,ya +13d6: e8 00 mov a,#$00 +13d8: 3c rol a +13d9: c4 3a mov $3a,a +13db: d0 08 bne $13e5 +13dd: 58 ff 35 eor $35,#$ff +13e0: 58 ff 36 eor $36,#$ff +13e3: 3a 35 incw $35 +13e5: eb 2d mov y,$2d +13e7: f6 23 04 mov a,$0423+y +13ea: 5d mov x,a +13eb: ba 35 movw ya,$35 +13ed: 3f 2a 14 call $142a +13f0: c4 35 mov $35,a +13f2: d8 36 mov $36,x +13f4: 78 01 3a cmp $3a,#$01 +13f7: d0 08 bne $1401 +13f9: 58 ff 35 eor $35,#$ff +13fc: 58 ff 36 eor $36,#$ff +13ff: 3a 35 incw $35 +1401: eb 2d mov y,$2d +1403: e4 35 mov a,$35 +1405: d6 44 ff mov $ff44+y,a +1408: e4 36 mov a,$36 +140a: d6 64 ff mov $ff64+y,a +140d: ba 33 movw ya,$33 +140f: 7a 35 addw ya,$35 +1411: da 33 movw $33,ya +1413: eb 2d mov y,$2d +1415: d6 04 ff mov $ff04+y,a +1418: e4 34 mov a,$34 +141a: d6 24 ff mov $ff24+y,a +141d: ba 33 movw ya,$33 +141f: 43 08 07 bbs2 $08,$1429 +1422: cd 40 mov x,#$40 +1424: 9e div ya,x +1425: 8d 00 mov y,#$00 +1427: da 33 movw $33,ya +1429: 6f ret + +142a: c8 00 cmp x,#$00 +142c: d0 04 bne $1432 +142e: 1d dec x +142f: 7d mov a,x +1430: fd mov y,a +1431: 6f ret + +1432: 40 setp +1433: cb 01 mov $01,y +1435: 3e 01 cmp x,$01 +1437: f0 02 beq $143b +1439: b0 1a bcs $1455 +143b: c4 00 mov $00,a +143d: dd mov a,y +143e: 8d 00 mov y,#$00 +1440: 9e div ya,x +1441: c4 02 mov $02,a +1443: fd mov y,a +1444: 7d mov a,x +1445: cf mul ya +1446: c4 03 mov $03,a +1448: e4 01 mov a,$01 +144a: 80 setc +144b: a4 03 sbc a,$03 +144d: fd mov y,a +144e: e4 00 mov a,$00 +1450: 9e div ya,x +1451: f8 02 mov x,$02 +1453: 20 clrp +1454: 6f ret + +1455: 9e div ya,x +1456: cd 00 mov x,#$00 +1458: 20 clrp +1459: 6f ret + +145a: 4d push x +145b: f5 f4 fc mov a,$fcf4+x +145e: 8d 04 mov y,#$04 +1460: cf mul ya +1461: 7a 24 addw ya,$24 +1463: da 00 movw $00,ya +1465: f5 3a 08 mov a,$083a+x +1468: c4 f2 mov $f2,a +146a: 7d mov a,x +146b: 1c asl a +146c: 1c asl a +146d: 5d mov x,a +146e: f5 02 02 mov a,$0202+x +1471: c5 26 02 mov $0226,a +1474: f5 03 02 mov a,$0203+x +1477: c5 27 02 mov $0227,a +147a: 8f 09 f3 mov $f3,#$09 +147d: 8d 00 mov y,#$00 +147f: f7 00 mov a,($00)+y +1481: d5 00 02 mov $0200+x,a +1484: fc inc y +1485: f7 00 mov a,($00)+y +1487: d5 01 02 mov $0201+x,a +148a: fc inc y +148b: f7 00 mov a,($00)+y +148d: d5 02 02 mov $0202+x,a +1490: fc inc y +1491: f7 00 mov a,($00)+y +1493: d5 03 02 mov $0203+x,a +1496: 8d 01 mov y,#$01 +1498: f7 00 mov a,($00)+y +149a: c4 3d mov $3d,a +149c: dc dec y +149d: f7 00 mov a,($00)+y +149f: 80 setc +14a0: a8 03 sbc a,#$03 +14a2: c4 3c mov $3c,a +14a4: b8 00 3d sbc $3d,#$00 +14a7: f7 3c mov a,($3c)+y +14a9: c5 04 01 mov $0104,a +14ac: fc inc y +14ad: f7 3c mov a,($3c)+y +14af: c5 05 01 mov $0105,a +14b2: fc inc y +14b3: f7 3c mov a,($3c)+y +14b5: c4 5e mov $5e,a +14b7: 10 14 bpl $14cd +14b9: 28 1f and a,#$1f +14bb: 8f 6c f2 mov $f2,#$6c +14be: 38 e0 f3 and $f3,#$e0 +14c1: 04 f3 or a,$f3 +14c3: c4 f3 mov $f3,a +14c5: 8f 3d f2 mov $f2,#$3d +14c8: 09 45 f3 or ($f3),($45) +14cb: 2f 06 bra $14d3 +14cd: 8f 3d f2 mov $f2,#$3d +14d0: 29 46 f3 and ($f3),($46) +14d3: ce pop x +14d4: f5 3a 08 mov a,$083a+x +14d7: c4 f2 mov $f2,a +14d9: d8 f3 mov $f3,x +14db: 6f ret + +14dc: 60 clrc +14dd: 88 a0 adc a,#$a0 ; add offset to input frequency (1440) +14df: 5d mov x,a +14e0: dd mov a,y +14e1: 88 05 adc a,#$05 +14e3: fd mov y,a +14e4: 7d mov a,x +14e5: ad 0a cmp y,#$0a ; check if it is in within positive range +14e7: 90 06 bcc $14ef ; in range +14e9: d0 0a bne $14f5 ; out of range +14eb: 68 50 cmp a,#$50 +14ed: b0 06 bcs $14f5 ; out of range +14ef: 8f ff 5f mov $5f,#$ff +14f2: 5f 0b 15 jmp $150b + +14f5: ad 80 cmp y,#$80 +14f7: 90 0f bcc $1508 +14f9: 8f 00 5f mov $5f,#$00 +14fc: 60 clrc +14fd: 88 20 adc a,#$20 +14ff: 5d mov x,a +1500: dd mov a,y +1501: 88 df adc a,#$df +1503: fd mov y,a +1504: 7d mov a,x +1505: 5f 0b 15 jmp $150b + +1508: 8f 0a 5f mov $5f,#$0a +150b: cd f0 mov x,#$f0 +150d: 9e div ya,x +150e: 78 ff 5f cmp $5f,#$ff +1511: d0 02 bne $1515 +1513: c4 5f mov $5f,a +1515: f6 30 15 mov a,$1530+y ;get pitch value (from table) +1518: c4 3a mov $3a,a +151a: f6 20 16 mov a,$1620+y +151d: c4 3b mov $3b,a +151f: e8 0a mov a,#$0a +1521: 80 setc +1522: a4 5f sbc a,$5f +1524: f0 07 beq $152d +1526: fd mov y,a +1527: 4b 3b lsr $3b +1529: 6b 3a ror $3a +152b: fe fa dbnz y,$1527 +152d: ba 3a movw ya,$3a +152f: 6f ret + +; pitch table (low byte) +1530: db $00,$18,$2f,$47,$5f,$77,$8f,$a7,$bf,$d8,$f0,$08,$21,$39,$52,$6b,$83,$9c,$b5,$ce,$e7,$00,$19,$33,$4c,$65,$7f,$98,$b2,$cc,$e5,$ff,$19,$33,$4d,$67,$82,$9c,$b6,$d1,$eb,$06,$20,$3b,$56,$71,$8c,$a7,$c2,$dd,$f9,$14,$2f,$4b,$67,$82,$9e,$ba,$d6,$f2,$0e,$2a,$46,$63,$7f,$9c,$b8,$d5,$f2,$0f,$2b,$48,$66,$83,$a0,$bd,$db,$f8,$16,$34,$51,$6f,$8d,$ab,$c9,$e7,$06,$24,$43,$61,$80,$9e,$bd,$dc,$fb,$1a,$39,$59,$78,$97,$b7,$d7,$f6,$16,$36,$56,$76,$96,$b7,$d7,$f7,$18,$39,$59,$7a,$9b,$bc,$dd,$ff,$20,$41,$63,$84,$a6,$c8,$ea,$0c,$2e,$50,$72,$95,$b7,$da,$fc,$1f,$42,$65,$88,$ab,$cf,$f2,$16,$39,$5d,$81,$a5,$c9,$ed,$11,$35,$5a,$7e,$a3,$c8,$ed,$12,$37,$5c,$81,$a6,$cc,$f2,$17,$3d,$63,$89,$af,$d6,$fc,$22,$49,$70,$97,$be,$e5,$0c,$33,$5a,$82,$aa,$d1,$f9,$21,$49,$71,$9a,$c2,$eb,$13,$3c,$65,$8e,$b7,$e0,$0a,$33,$5d,$87,$b0,$da,$04,$2f,$59,$84,$ae,$d9,$04,$2f,$5a,$85,$b0,$dc,$07,$33,$5f,$8b,$b7,$e3,$0f,$3c,$68,$95,$c2,$ef,$1c,$49,$77,$a4,$d2,$00,$2e,$5c,$8a,$b8,$e7,$15,$44,$73,$a2,$d1 + +; pitch table (high byte) +1620: db $20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$23,$23,$23,$23,$23,$23,$23,$23,$23,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$25,$25,$25,$25,$25,$25,$25,$25,$25,$26,$26,$26,$26,$26,$26,$26,$26,$26,$27,$27,$27,$27,$27,$27,$27,$27,$27,$28,$28,$28,$28,$28,$28,$28,$28,$29,$29,$29,$29,$29,$29,$29,$29,$29,$2a,$2a,$2a,$2a,$2a,$2a,$2a,$2a,$2b,$2b,$2b,$2b,$2b,$2b,$2b,$2b,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2d,$2d,$2d,$2d,$2d,$2d,$2d,$2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e,$2f,$2f,$2f,$2f,$2f,$2f,$2f,$30,$30,$30,$30,$30,$30,$30,$31,$31,$31,$31,$31,$31,$31,$32,$32,$32,$32,$32,$32,$32,$33,$33,$33,$33,$33,$33,$33,$34,$34,$34,$34,$34,$34,$35,$35,$35,$35,$35,$35,$35,$36,$36,$36,$36,$36,$36,$37,$37,$37,$37,$37,$37,$38,$38,$38,$38,$38,$38,$39,$39,$39,$39,$39,$39,$3a,$3a,$3a,$3a,$3a,$3a,$3b,$3b,$3b,$3b,$3b,$3b,$3c,$3c,$3c,$3c,$3c,$3c,$3d,$3d,$3d,$3d,$3d,$3e,$3e,$3e,$3e,$3e,$3e,$3f,$3f,$3f,$3f,$3f + +; note interval frequencies (low byte) +1710: db $30,$20,$ac,$10,$24,$38,$4c,$60,$74,$88,$9c,$b0,$c4,$d8,$ec,$00,$14,$28,$3c,$50,$64,$78,$8c,$a0,$b4,$c8,$dc,$f0,$54,$e0,$d0,$c0 + +; note interval frequencies (high byte) +1730: db $fd,$fe,$fe,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$02,$03 + +1750: 3f c4 17 call $17c4 +1753: 8f 00 85 mov $85,#$00 +1756: e4 84 mov a,$84 +1758: f0 20 beq $177a +175a: e4 83 mov a,$83 +175c: 9c dec a +175d: c4 86 mov $86,a +175f: 3f be 0b call $0bbe +1762: f8 85 mov x,$85 +1764: f5 07 01 mov a,$0107+x +1767: 30 0a bmi $1773 +1769: 5d mov x,a +176a: c4 86 mov $86,a +176c: f5 66 03 mov a,$0366+x +176f: 5d mov x,a +1770: 1f 3d 1e jmp ($1e3d+x) + +1773: ab 85 inc $85 +1775: 69 83 85 cmp ($85),($83) +1778: d0 e5 bne $175f +177a: 6f ret + +177b: c4 3a mov $3a,a +177d: f6 62 00 mov a,$0062+y +1780: 28 80 and a,#$80 +1782: f0 08 beq $178c +1784: f6 10 00 mov a,$0010+y +1787: 9c dec a +1788: d6 10 00 mov $0010+y,a +178b: 6f ret + +178c: f6 6a 00 mov a,$006a+y +178f: 64 3a cmp a,$3a +1791: d0 07 bne $179a +1793: f6 10 00 mov a,$0010+y +1796: 5c lsr a +1797: d6 10 00 mov $0010+y,a +179a: 6f ret + +179b: f8 86 mov x,$86 +179d: 9b b2 dec $b2+x +179f: d0 d2 bne $1773 +17a1: 2f 19 bra $17bc +17a3: f8 86 mov x,$86 +17a5: 9b b2 dec $b2+x +17a7: d0 ca bne $1773 +17a9: e8 04 mov a,#$04 +17ab: d5 66 03 mov $0366+x,a +17ae: 5f a5 18 jmp $18a5 + +; vcmd eb - set pitch bend state +17b1: 3f 0a 18 call $180a + +; vcmd ec - set pitch bend state and release +17b4: e8 00 mov a,#$00 +17b6: d5 c6 02 mov $02c6+x,a +17b9: d5 da 02 mov $02da+x,a +17bc: e8 06 mov a,#$06 +17be: d5 66 03 mov $0366+x,a +17c1: 5f 3a 18 jmp $183a + +17c4: d3 07 2f bbc6 $07,$17f6 +17c7: d2 07 clr6 $07 +17c9: f8 83 mov x,$83 +17cb: f0 29 beq $17f6 +17cd: e8 ff mov a,#$ff +17cf: 1d dec x +17d0: d5 07 01 mov $0107+x,a +17d3: 1d dec x +17d4: 10 fa bpl $17d0 +17d6: f8 83 mov x,$83 +17d8: 1d dec x +17d9: 8f 00 3a mov $3a,#$00 +17dc: eb 3a mov y,$3a +17de: f6 07 01 mov a,$0107+y +17e1: 30 14 bmi $17f7 +17e3: fd mov y,a +17e4: f5 b2 02 mov a,$02b2+x +17e7: 76 b2 02 cmp a,$02b2+y +17ea: b0 0b bcs $17f7 +17ec: ab 3a inc $3a +17ee: 78 14 3a cmp $3a,#$14 +17f1: d0 e9 bne $17dc +17f3: 1d dec x +17f4: 10 e3 bpl $17d9 +17f6: 6f ret + +17f7: eb 3a mov y,$3a +17f9: 4d push x +17fa: 40 setp +17fb: f6 07 01 mov a,$0107+y +17fe: d9 07 mov $07+y,x +1800: 5d mov x,a +1801: fc inc y +1802: 68 ff cmp a,#$ff +1804: d0 f5 bne $17fb +1806: ce pop x +1807: 20 clrp +1808: 2f e9 bra $17f3 +180a: f5 27 06 mov a,$0627+x +180d: 30 15 bmi $1824 +180f: fd mov y,a +1810: f6 6a 00 mov a,$006a+y +1813: 68 01 cmp a,#$01 +1815: d0 0d bne $1824 +1817: e8 01 mov a,#$01 +1819: 16 46 02 or a,$0246+y +181c: d6 46 02 mov $0246+y,a +181f: e8 01 mov a,#$01 +1821: 3f 7b 17 call $177b +1824: 6f ret + +1825: c4 02 mov $02,a +1827: 7d mov a,x +1828: 8d 05 mov y,#$05 +182a: cf mul ya +182b: 60 clrc +182c: 84 02 adc a,$02 +182e: fd mov y,a +182f: cb 02 mov $02,y +1831: 6f ret + +; voice numbers +1832: db $01,$02,$04,$08,$10,$20,$40,$80 + +183a: f8 86 mov x,$86 +183c: f5 c6 02 mov a,$02c6+x +183f: c4 3a mov $3a,a +1841: f5 da 02 mov a,$02da+x +1844: c4 3b mov $3b,a +1846: 3f 62 1a call $1a62 +1849: fd mov y,a +184a: 28 0f and a,#$0f +184c: 2d push a +184d: dd mov a,y +184e: 5c lsr a +184f: 5c lsr a +1850: 5c lsr a +1851: 5c lsr a +1852: f0 28 beq $187c +1854: 60 clrc +1855: 88 f8 adc a,#$f8 +1857: 8d 00 mov y,#$00 +1859: 68 00 cmp a,#$00 +185b: 10 01 bpl $185e +185d: dc dec y +185e: 7a 3a addw ya,$3a +1860: d5 c6 02 mov $02c6+x,a +1863: dd mov a,y +1864: d5 da 02 mov $02da+x,a +1867: 8f 00 87 mov $87,#$00 +186a: 3f 3a 19 call $193a +186d: f8 86 mov x,$86 +186f: ae pop a +1870: 68 00 cmp a,#$00 +1872: f0 c6 beq $183a +1874: d4 b2 mov $b2+x,a +1876: 3f 4b 1c call $1c4b +1879: 5f 73 17 jmp $1773 + +187c: ae pop a +187d: dd mov a,y +187e: 68 00 cmp a,#$00 +1880: d0 03 bne $1885 +1882: 5f a9 17 jmp $17a9 + +1885: 68 01 cmp a,#$01 +1887: d0 0b bne $1894 +1889: 3f 62 1a call $1a62 +188c: d4 b2 mov $b2+x,a +188e: 3f 4b 1c call $1c4b +1891: 5f 73 17 jmp $1773 + +1894: 68 02 cmp a,#$02 +1896: d0 05 bne $189d +1898: 3f 0a 18 call $180a +189b: 2f 9d bra $183a +189d: f4 b2 mov a,$b2+x +189f: 2d push a +18a0: 3f 62 1a call $1a62 +18a3: 2f b2 bra $1857 +18a5: f8 86 mov x,$86 +18a7: f5 4e 02 mov a,$024e+x +18aa: 68 05 cmp a,#$05 +18ac: f0 1e beq $18cc +18ae: 3f 25 18 call $1825 +18b1: f6 68 fd mov a,$fd68+y +18b4: c4 00 mov $00,a +18b6: f6 04 fd mov a,$fd04+y +18b9: c4 01 mov $01,a +18bb: 8d 02 mov y,#$02 +18bd: f7 00 mov a,($00)+y +18bf: de 8a 0a cbne $8a+x,$18cc +18c2: 8d 03 mov y,#$03 +18c4: f7 00 mov a,($00)+y +18c6: de 9e 03 cbne $9e+x,$18cc + +; play melody byte +18c9: 5f 9b 1b jmp $1b9b + +18cc: 3f 62 1a call $1a62 ; get 1 byte +18cf: fd mov y,a ; separate the flags +18d0: ad e0 cmp y,#$e0 ; check if it's a vector command +18d2: 90 16 bcc $18ea ; if not a vector... +18d4: dd mov a,y +18d5: 28 1f and a,#$1f ; mask off bits +18d7: 1c asl a +18d8: fd mov y,a +18d9: f6 a0 1c mov a,$1ca0+y +18dc: c5 e8 18 mov $18e8,a +18df: f6 a1 1c mov a,$1ca1+y +18e2: c5 e9 18 mov $18e9,a +18e5: eb 3a mov y,$3a +18e7: 5f 10 19 jmp $1910 + +18ea: ad c0 cmp y,#$c0 ; is it a rest? +18ec: 90 06 bcc $18f4 +18ee: 80 setc +18ef: a8 bf sbc a,#$bf ; get the duration +18f1: 5f e4 1a jmp $1ae4 ; and set rest + +18f4: ad 00 cmp y,#$00 ; is it a relative note? +18f6: 10 06 bpl $18fe ; if so, play the note +18f8: 80 setc ; otherwise, it must be an absolute note... +18f9: a8 60 sbc a,#$60 +18fb: fd mov y,a +18fc: 2f 16 bra $1914 +18fe: 2d push a +18ff: 5c lsr a +1900: 5c lsr a +1901: 5c lsr a +1902: 80 setc +1903: a8 08 sbc a,#$08 +1905: 60 clrc +1906: 95 76 02 adc a,$0276+x +1909: fd mov y,a +190a: ae pop a +190b: 28 07 and a,#$07 +190d: bc inc a +190e: 2f 07 bra $1917 + +; vcmd ef - play absolute note +1910: 3f 62 1a call $1a62 +1913: fd mov y,a +1914: 3f 62 1a call $1a62 +1917: 2d push a +1918: e8 00 mov a,#$00 +191a: d5 c6 02 mov $02c6+x,a +191d: d5 da 02 mov $02da+x,a +1920: dd mov a,y +1921: d5 76 02 mov $0276+x,a +1924: 8f 01 87 mov $87,#$01 +1927: f3 07 02 bbc7 $07,$192c +192a: 8b 87 dec $87 +192c: f2 07 clr7 $07 +192e: ae pop a +192f: 3f 35 19 call $1935 +1932: 5f 73 17 jmp $1773 + +1935: d4 b2 mov $b2+x,a +1937: 3f 45 1c call $1c45 +193a: e4 87 mov a,$87 +193c: f0 06 beq $1944 +193e: 3f 0a 18 call $180a +1941: 73 07 16 bbc3 $07,$195a +1944: f5 27 06 mov a,$0627+x +1947: 30 0d bmi $1956 +1949: fd mov y,a +194a: 7d mov a,x +194b: 08 80 or a,#$80 +194d: 76 cf 00 cmp a,$00cf+y +1950: d0 04 bne $1956 +1952: dd mov a,y +1953: 5d mov x,a +1954: 2f 44 bra $199a +1956: ab 87 inc $87 +1958: 72 07 clr3 $07 +195a: e8 ff mov a,#$ff +195c: d5 27 06 mov $0627+x,a +195f: f5 b2 02 mov a,$02b2+x +1962: c4 4f mov $4f,a +1964: f5 eb 05 mov a,$05eb+x +1967: c4 09 mov $09,a +1969: f5 13 06 mov a,$0613+x +196c: c4 4e mov $4e,a +196e: f5 ff 05 mov a,$05ff+x +1971: 5d mov x,a +1972: f5 32 18 mov a,$1832+x +1975: c4 50 mov $50,a +1977: f5 7a 03 mov a,$037a+x +197a: 28 01 and a,#$01 +197c: d0 17 bne $1995 +197e: 3f 73 0e call $0e73 +1981: 30 12 bmi $1995 +1983: d3 09 12 bbc6 $09,$1998 +1986: 7d mov a,x +1987: 53 09 03 bbc2 $09,$198d +198a: bc inc a +198b: 2f 01 bra $198e +198d: 9c dec a +198e: 28 07 and a,#$07 +1990: d5 ff 05 mov $05ff+x,a +1993: 2f 03 bra $1998 +1995: 5f 5d 1a jmp $1a5d + +1998: 7d mov a,x +1999: fd mov y,a +199a: f8 86 mov x,$86 +199c: d5 27 06 mov $0627+x,a +199f: 7d mov a,x +19a0: 08 80 or a,#$80 +19a2: d6 cf 00 mov $00cf+y,a +19a5: e4 87 mov a,$87 +19a7: f0 00 beq $19a9 +19a9: cb c6 mov $c6,y +19ab: e8 01 mov a,#$01 +19ad: d6 6a 00 mov $006a+y,a +19b0: f5 b2 02 mov a,$02b2+x +19b3: d6 10 00 mov $0010+y,a +19b6: dd mov a,y +19b7: 1c asl a +19b8: fd mov y,a +19b9: f5 ee 02 mov a,$02ee+x +19bc: d6 5b 01 mov $015b+y,a +19bf: f5 02 03 mov a,$0302+x +19c2: d6 5c 01 mov $015c+y,a +19c5: f5 76 02 mov a,$0276+x +19c8: 8d 14 mov y,#$14 +19ca: cf mul ya +19cb: 80 setc +19cc: a8 84 sbc a,#$84 +19ce: c4 4b mov $4b,a +19d0: dd mov a,y +19d1: a8 03 sbc a,#$03 +19d3: c4 4c mov $4c,a +19d5: f5 da 02 mov a,$02da+x +19d8: fd mov y,a +19d9: f5 c6 02 mov a,$02c6+x +19dc: 7a 4b addw ya,$4b +19de: da 4b movw $4b,ya +19e0: f5 4f 06 mov a,$064f+x +19e3: fd mov y,a +19e4: f5 3b 06 mov a,$063b+x +19e7: 7a 4b addw ya,$4b +19e9: 7a 5b addw ya,$5b +19eb: da 4b movw $4b,ya +19ed: dd mov a,y +19ee: eb 87 mov y,$87 +19f0: d0 13 bne $1a05 +19f2: c4 2f mov $2f,a +19f4: fa 4b 2e mov ($2e),($4b) +19f7: 8f d4 00 mov $00,#$d4 +19fa: 8f fc 01 mov $01,#$fc +19fd: 7d mov a,x +19fe: 08 80 or a,#$80 +1a00: 3f 0e 1e call $1e0e +1a03: 2f 58 bra $1a5d +1a05: f5 c3 05 mov a,$05c3+x +1a08: 10 02 bpl $1a0c +1a0a: e8 7f mov a,#$7f +1a0c: c4 c7 mov $c7,a +1a0e: e4 c6 mov a,$c6 +1a10: 1c asl a +1a11: fd mov y,a +1a12: e8 00 mov a,#$00 +1a14: 12 07 clr0 $07 +1a16: d6 d7 00 mov $00d7+y,a +1a19: d6 d8 00 mov $00d8+y,a +1a1c: e4 c6 mov a,$c6 +1a1e: fd mov y,a +1a1f: f6 46 02 mov a,$0246+y +1a22: 08 02 or a,#$02 +1a24: d6 46 02 mov $0246+y,a +1a27: e8 ff mov a,#$ff +1a29: d6 92 03 mov $0392+y,a +1a2c: f5 9e 02 mov a,$029e+x +1a2f: d6 9a 03 mov $039a+y,a +1a32: f5 16 03 mov a,$0316+x +1a35: c4 0d mov $0d,a +1a37: f5 62 02 mov a,$0262+x +1a3a: c5 3d 02 mov $023d,a +1a3d: f5 3e 03 mov a,$033e+x +1a40: c4 0c mov $0c,a +1a42: f5 52 03 mov a,$0352+x +1a45: c4 0f mov $0f,a +1a47: f5 2a 03 mov a,$032a+x +1a4a: c4 0e mov $0e,a +1a4c: eb c7 mov y,$c7 +1a4e: f5 8a 02 mov a,$028a+x +1a51: cf mul ya +1a52: f5 d7 05 mov a,$05d7+x +1a55: f8 c6 mov x,$c6 +1a57: 8f ff cb mov $cb,#$ff +1a5a: 3f e5 0e call $0ee5 +1a5d: ab 87 inc $87 +1a5f: 72 07 clr3 $07 +1a61: 6f ret + +; get 1 byte +1a62: 3f be 0b call $0bbe +1a65: f8 86 mov x,$86 +1a67: f4 8a mov a,$8a+x +1a69: c5 72 1a mov $1a72,a +1a6c: f4 9e mov a,$9e+x +1a6e: c5 73 1a mov $1a73,a +1a71: e5 4d ba mov a,$ba4d +1a74: bb 8a inc $8a+x +1a76: d0 02 bne $1a7a +1a78: bb 9e inc $9e+x +1a7a: 6f ret + +; vcmd e9 - set effects mask +1a7b: 3f 62 1a call $1a62 +1a7e: c4 0a mov $0a,a +1a80: 2f 09 bra $1a8b + +; vcmd e6 - set standard allocation +1a82: e8 08 mov a,#$08 +1a84: d5 eb 05 mov $05eb+x,a +1a87: 7d mov a,x +1a88: d5 ff 05 mov $05ff+x,a +1a8b: 5f a5 18 jmp $18a5 + +; vcmd e5 - set channel allocation +1a8e: 3f 62 1a call $1a62 +1a91: d5 eb 05 mov $05eb+x,a +1a94: 3f 62 1a call $1a62 +1a97: d5 ff 05 mov $05ff+x,a +1a9a: 3f 62 1a call $1a62 +1a9d: d5 13 06 mov $0613+x,a +1aa0: 2f e9 bra $1a8b + +; vcmd f0 - end of sequence +1aa2: 3f 0a 18 call $180a +1aa5: e8 00 mov a,#$00 +1aa7: d5 66 03 mov $0366+x,a +1aaa: 8b 84 dec $84 +1aac: 5f 73 17 jmp $1773 + +; vcmd f1 - delta expression +1aaf: f5 c3 05 mov a,$05c3+x +1ab2: 3f ba 1a call $1aba +1ab5: d5 c3 05 mov $05c3+x,a +1ab8: 2f d1 bra $1a8b +1aba: 4d push x +1abb: fd mov y,a +1abc: 6d push y +1abd: 3f 62 1a call $1a62 +1ac0: cf mul ya +1ac1: da 3a movw $3a,ya +1ac3: ee pop y +1ac4: 3f 62 1a call $1a62 +1ac7: cf mul ya +1ac8: 6d push y +1ac9: 0b 3a asl $3a +1acb: 84 3b adc a,$3b +1acd: 5d mov x,a +1ace: ae pop a +1acf: 88 00 adc a,#$00 +1ad1: fd mov y,a +1ad2: d0 03 bne $1ad7 +1ad4: 7d mov a,x +1ad5: 10 02 bpl $1ad9 +1ad7: e8 7f mov a,#$7f +1ad9: ce pop x +1ada: 6f ret + +; vcmd f2 - absolute expression +1adb: 3f 62 1a call $1a62 +1ade: d5 c3 05 mov $05c3+x,a +1ae1: 5f a5 18 jmp $18a5 + +1ae4: 2d push a +1ae5: 3f 0a 18 call $180a +1ae8: ae pop a +1ae9: d4 b2 mov $b2+x,a +1aeb: 3f 45 1c call $1c45 +1aee: 5f 73 17 jmp $1773 + +; vcmd fd - set time (delay) - 64 +1af1: e8 40 mov a,#$40 +1af3: 2f f4 bra $1ae9 + +; vcmd f8 - set time (delay) - 32 +1af5: e8 20 mov a,#$20 +1af7: 2f f0 bra $1ae9 + +; vcmd fe - set time (delay) - 128 +1af9: e8 80 mov a,#$80 +1afb: 2f ec bra $1ae9 + +; vcmd ff - set time (delay) - 256 +1afd: e8 00 mov a,#$00 +1aff: 2f e8 bra $1ae9 + +; vcmd f5 - set sound (instrument) +1b01: 3f 62 1a call $1a62 +1b04: d5 d7 05 mov $05d7+x,a +1b07: f5 4e 02 mov a,$024e+x +1b0a: 68 05 cmp a,#$05 +1b0c: f0 2b beq $1b39 +1b0e: 3f 25 18 call $1825 +1b11: f6 68 fd mov a,$fd68+y +1b14: c4 00 mov $00,a +1b16: f6 04 fd mov a,$fd04+y +1b19: c4 01 mov $01,a +1b1b: f6 04 fc mov a,$fc04+y +1b1e: 8d 09 mov y,#$09 +1b20: 77 00 cmp a,($00)+y +1b22: 90 02 bcc $1b26 +1b24: e8 00 mov a,#$00 +1b26: bc inc a +1b27: eb 02 mov y,$02 +1b29: d6 04 fc mov $fc04+y,a +1b2c: 60 clrc +1b2d: 88 09 adc a,#$09 +1b2f: fd mov y,a +1b30: f7 00 mov a,($00)+y +1b32: 68 ff cmp a,#$ff +1b34: f0 03 beq $1b39 +1b36: d5 d7 05 mov $05d7+x,a +1b39: 5f a5 18 jmp $18a5 + +; vcmd f6 - play phrase +1b3c: f5 4e 02 mov a,$024e+x +1b3f: 9c dec a +1b40: d5 4e 02 mov $024e+x,a +1b43: 3f 25 18 call $1825 +1b46: f4 8a mov a,$8a+x +1b48: d6 68 fd mov $fd68+y,a +1b4b: f4 9e mov a,$9e+x +1b4d: d6 04 fd mov $fd04+y,a +1b50: e8 00 mov a,#$00 +1b52: d6 68 fc mov $fc68+y,a +1b55: 3f 62 1a call $1a62 +1b58: 2d push a +1b59: 3f 67 1a call $1a67 +1b5c: 2d push a +1b5d: 3f 67 1a call $1a67 +1b60: 3f 67 1a call $1a67 +1b63: 3f 67 1a call $1a67 +1b66: 3f 67 1a call $1a67 +1b69: fd mov y,a +1b6a: 3f 67 1a call $1a67 +1b6d: 2d push a +1b6e: dd mov a,y +1b6f: 60 clrc +1b70: 95 3b 06 adc a,$063b+x +1b73: d5 3b 06 mov $063b+x,a +1b76: ae pop a +1b77: 95 4f 06 adc a,$064f+x +1b7a: d5 4f 06 mov $064f+x,a +1b7d: f5 c3 05 mov a,$05c3+x +1b80: eb 02 mov y,$02 +1b82: d6 04 fe mov $fe04+y,a +1b85: 3f ba 1a call $1aba +1b88: d5 c3 05 mov $05c3+x,a +1b8b: eb 02 mov y,$02 +1b8d: e8 00 mov a,#$00 +1b8f: d6 04 fc mov $fc04+y,a +1b92: ae pop a +1b93: d4 9e mov $9e+x,a +1b95: ae pop a +1b96: d4 8a mov $8a+x,a +1b98: 5f a5 18 jmp $18a5 + +1b9b: eb 02 mov y,$02 +1b9d: f6 68 fc mov a,$fc68+y +1ba0: bc inc a +1ba1: d6 68 fc mov $fc68+y,a +1ba4: 8d 04 mov y,#$04 +1ba6: f7 00 mov a,($00)+y +1ba8: f0 07 beq $1bb1 +1baa: eb 02 mov y,$02 +1bac: 76 68 fc cmp a,$fc68+y +1baf: f0 0f beq $1bc0 +1bb1: 8d 00 mov y,#$00 +1bb3: f7 00 mov a,($00)+y +1bb5: d4 8a mov $8a+x,a +1bb7: 8d 01 mov y,#$01 +1bb9: f7 00 mov a,($00)+y +1bbb: d4 9e mov $9e+x,a +1bbd: 5f cc 18 jmp $18cc + +1bc0: f5 3b 06 mov a,$063b+x +1bc3: 80 setc +1bc4: 8d 05 mov y,#$05 +1bc6: b7 00 sbc a,($00)+y +1bc8: d5 3b 06 mov $063b+x,a +1bcb: f5 4f 06 mov a,$064f+x +1bce: 8d 06 mov y,#$06 +1bd0: b7 00 sbc a,($00)+y +1bd2: d5 4f 06 mov $064f+x,a +1bd5: eb 02 mov y,$02 +1bd7: f6 04 fe mov a,$fe04+y +1bda: d5 c3 05 mov $05c3+x,a +1bdd: e4 00 mov a,$00 +1bdf: 60 clrc +1be0: 88 0a adc a,#$0a +1be2: d4 8a mov $8a+x,a +1be4: e4 01 mov a,$01 +1be6: 88 00 adc a,#$00 +1be8: d4 9e mov $9e+x,a +1bea: 8d 09 mov y,#$09 +1bec: f7 00 mov a,($00)+y +1bee: 60 clrc +1bef: 94 8a adc a,$8a+x +1bf1: d4 8a mov $8a+x,a +1bf3: f4 9e mov a,$9e+x +1bf5: 88 00 adc a,#$00 +1bf7: d4 9e mov $9e+x,a +1bf9: f5 4e 02 mov a,$024e+x +1bfc: bc inc a +1bfd: d5 4e 02 mov $024e+x,a +1c00: 5f a5 18 jmp $18a5 + +; vcmd ea - set release +1c03: 3f 0a 18 call $180a +1c06: 2f 03 bra $1c0b + +; vcmd f9 - go to loop +1c08: 3f 25 1d call $1d25 +1c0b: 5f a5 18 jmp $18a5 + +; vcmd fa - set tempo +1c0e: 3f 62 1a call $1a62 +1c11: c4 c9 mov $c9,a +1c13: 2f f6 bra $1c0b + +; vcmd fb - set panning +1c15: 3f 62 1a call $1a62 +1c18: d5 9e 02 mov $029e+x,a +1c1b: 2f ee bra $1c0b + +; vcmd e0 - set hardware detune +1c1d: 3f 62 1a call $1a62 +1c20: d5 ee 02 mov $02ee+x,a +1c23: 3f 62 1a call $1a62 +1c26: d5 02 03 mov $0302+x,a +1c29: 2f e0 bra $1c0b + +; vcmd f3 - set priority +1c2b: 3f 62 1a call $1a62 +1c2e: d5 b2 02 mov $02b2+x,a +1c31: c2 07 set6 $07 +1c33: 2f d6 bra $1c0b + +; vcmd ed - set velocity +1c35: 3f 62 1a call $1a62 +1c38: d5 8a 02 mov $028a+x,a +1c3b: 2f ce bra $1c0b + +; vcmd fc - set no retrigger +1c3d: 62 07 set3 $07 +1c3f: 2f ca bra $1c0b + +; vcmd f4 - set tied note +1c41: e2 07 set7 $07 +1c43: 2f c6 bra $1c0b +1c45: e8 02 mov a,#$02 +1c47: d5 66 03 mov $0366+x,a +1c4a: 6f ret + +1c4b: e8 08 mov a,#$08 +1c4d: d5 66 03 mov $0366+x,a +1c50: 6f ret + +1c51: 78 80 c8 cmp $c8,#$80 +1c54: 90 08 bcc $1c5e +1c56: 60 clrc +1c57: 84 c8 adc a,$c8 +1c59: 10 09 bpl $1c64 +1c5b: e8 00 mov a,#$00 +1c5d: 6f ret + +1c5e: 84 c8 adc a,$c8 +1c60: 10 02 bpl $1c64 +1c62: e8 7f mov a,#$7f +1c64: 6f ret + +; vcmd e1 - set amplitude articulation +1c65: 3f 62 1a call $1a62 +1c68: d5 16 03 mov $0316+x,a +1c6b: 2f 9e bra $1c0b + +; vcmd 00-0f - extended melody vectors +1c6d: 3f 62 1a call $1a62 +1c70: d5 62 02 mov $0262+x,a +1c73: 2f 96 bra $1c0b + +; vcmd e2 - set stereo articulation +1c75: 3f 62 1a call $1a62 +1c78: d5 52 03 mov $0352+x,a +1c7b: 2f 8e bra $1c0b + +; vcmd e4 - set pitch articulation +1c7d: 3f 62 1a call $1a62 +1c80: d5 2a 03 mov $032a+x,a +1c83: 2f f6 bra $1c7b + +; vcmd e3 - set tone articulation +1c85: 3f 62 1a call $1a62 +1c88: d5 3e 03 mov $033e+x,a +1c8b: 2f ee bra $1c7b + +1c8d: 3f 46 1d call $1d46 +1c90: 2f e9 bra $1c7b + +; vcmd f7 - set detune +1c92: 3f 62 1a call $1a62 +1c95: d5 3b 06 mov $063b+x,a +1c98: 3f 62 1a call $1a62 +1c9b: d5 4f 06 mov $064f+x,a +1c9e: 2f db bra $1c7b + +; vcmd table (e0-ff) +1ca0: dw $1c1d ; e0 - set hardware detune +1ca2: dw $1c65 ; e1 - set amplitude articulation +1ca4: dw $1c75 ; e2 - set stereo articulation +1ca6: dw $1c85 ; e3 - set tone articulation +1ca8: dw $1c7d ; e4 - set pitch articulation +1caa: dw $1a8e ; e5 - set channel allocation +1cac: dw $1a82 ; e6 - set standard allocation +1cae: dw $1c8d ; e7 - reset track +1cb0: dw $0000 ; e8 - redirect track (disabled) +1cb2: dw $1a7b ; e9 - set effects mask +1cb4: dw $1c03 ; ea - set release +1cb6: dw $17b4 ; eb - set pitch bend state +1cb8: dw $17b1 ; ec - set pitch bend state and release +1cba: dw $1c35 ; ed - set velocity +1cbc: dw $1ce2 ; ee - extended command +1cbe: dw $1910 ; ef - play absolute note +1cc0: dw $1aa2 ; f0 - end of sequence +1cc2: dw $1aaf ; f1 - delta expression +1cc4: dw $1adb ; f2 - absolute expression +1cc6: dw $1c2b ; f3 - set priority +1cc8: dw $1c41 ; f4 - set tied note +1cca: dw $1b01 ; f5 - set sound (instrument) +1ccc: dw $1b3c ; f6 - play phrase +1cce: dw $1c92 ; f7 - set detune +1cd0: dw $1af5 ; f8 - set time (delay) - 32 +1cd2: dw $1c08 ; f9 - go to loop +1cd4: dw $1c0e ; fa - set tempo +1cd6: dw $1c15 ; fb - set panning +1cd8: dw $1c3d ; fc - set no retrigger +1cda: dw $1af1 ; fd - set time (delay) - 64 +1cdc: dw $1af9 ; fe - set time (delay) - 128 +1cde: dw $1afd ; ff - set time (delay) - 256 +1ce0: dw $1c6d ; 00-0f - extended melody vectors + +; vcmd ee - extended command +1ce2: 3f 62 1a call $1a62 +1ce5: dd mov a,y +1ce6: 1c asl a +1ce7: fd mov y,a +1ce8: f6 e0 1c mov a,$1ce0+y +1ceb: c5 f7 1c mov $1cf7,a +1cee: f6 e1 1c mov a,$1ce1+y +1cf1: c5 f8 1c mov $1cf8,a +1cf4: eb 3a mov y,$3a +1cf6: 5f f6 1c jmp $1cf6 + +1cf9: 2d push a ; start song +1cfa: 3f 40 0d call $0d40 +1cfd: ae pop a +1cfe: 92 07 clr4 $07 +1d00: 8d 1a mov y,#$1a +1d02: 3f 63 10 call $1063 +1d05: da 88 movw $88,ya +1d07: 8d 00 mov y,#$00 +1d09: f7 88 mov a,($88)+y +1d0b: c4 83 mov $83,a +1d0d: c4 84 mov $84,a +1d0f: f0 13 beq $1d24 +1d11: cb 86 mov $86,y +1d13: 3f 25 1d call $1d25 +1d16: ab 86 inc $86 +1d18: e8 00 mov a,#$00 +1d1a: f8 86 mov x,$86 +1d1c: d5 7a 03 mov $037a+x,a +1d1f: 69 83 86 cmp ($86),($83) +1d22: d0 ef bne $1d13 +1d24: 6f ret + +1d25: eb 86 mov y,$86 +1d27: fc inc y +1d28: f7 88 mov a,($88)+y +1d2a: 8d 10 mov y,#$10 +1d2c: 3f 63 10 call $1063 +1d2f: f8 86 mov x,$86 +1d31: d4 8a mov $8a+x,a +1d33: dd mov a,y +1d34: d4 9e mov $9e+x,a +1d36: e8 ff mov a,#$ff +1d38: c4 ca mov $ca,a +1d3a: c4 0a mov $0a,a +1d3c: e8 05 mov a,#$05 +1d3e: d5 4e 02 mov $024e+x,a +1d41: e8 04 mov a,#$04 +1d43: d5 66 03 mov $0366+x,a +1d46: 72 07 clr3 $07 +1d48: f2 07 clr7 $07 +1d4a: f8 86 mov x,$86 +1d4c: e8 08 mov a,#$08 +1d4e: d5 eb 05 mov $05eb+x,a +1d51: 7d mov a,x +1d52: d5 ff 05 mov $05ff+x,a +1d55: e8 00 mov a,#$00 +1d57: d5 76 02 mov $0276+x,a +1d5a: d5 c6 02 mov $02c6+x,a +1d5d: d5 da 02 mov $02da+x,a +1d60: d5 3b 06 mov $063b+x,a +1d63: d5 4f 06 mov $064f+x,a +1d66: d5 ee 02 mov $02ee+x,a +1d69: d5 02 03 mov $0302+x,a +1d6c: d5 16 03 mov $0316+x,a +1d6f: d5 62 02 mov $0262+x,a +1d72: d5 52 03 mov $0352+x,a +1d75: d5 3e 03 mov $033e+x,a +1d78: d5 2a 03 mov $032a+x,a +1d7b: d5 9e 02 mov $029e+x,a +1d7e: 9c dec a +1d7f: d5 27 06 mov $0627+x,a +1d82: d5 8a 02 mov $028a+x,a +1d85: e8 40 mov a,#$40 +1d87: d5 b2 02 mov $02b2+x,a +1d8a: e8 7f mov a,#$7f +1d8c: d5 c3 05 mov $05c3+x,a +1d8f: c2 07 set6 $07 +1d91: 8f 6a 00 mov $00,#$6a +1d94: 8f 00 01 mov $01,#$00 +1d97: 7d mov a,x +1d98: 08 80 or a,#$80 +1d9a: 8d 00 mov y,#$00 +1d9c: 5f dd 1d jmp $1ddd + +1d9f: c4 59 mov $59,a +1da1: 6f ret + +1da2: c4 5a mov $5a,a +1da4: 6f ret + +1da5: da 5b movw $5b,ya +1da7: 6f ret + +1da8: da 2e movw $2e,ya +1daa: 6f ret + +1dab: c4 fb mov $fb,a +1dad: 6f ret + +1dae: 28 7f and a,#$7f +1db0: c5 3e 02 mov $023e,a +1db3: 6f ret + +1db4: 12 08 clr0 $08 +1db6: c5 06 01 mov $0106,a +1db9: 68 ff cmp a,#$ff +1dbb: f0 02 beq $1dbf +1dbd: 02 08 set0 $08 +1dbf: 6f ret + +1dc0: c5 3f 02 mov $023f,a +1dc3: 6f ret + +1dc4: c5 40 02 mov $0240,a +1dc7: 6f ret + +1dc8: c5 41 02 mov $0241,a +1dcb: cc 42 02 mov $0242,y +1dce: 6f ret + +1dcf: 8f 9a 00 mov $00,#$9a +1dd2: 8f 03 01 mov $01,#$03 +1dd5: 2f 06 bra $1ddd + +1dd7: 8f 92 00 mov $00,#$92 +1dda: 8f 03 01 mov $01,#$03 +1ddd: c4 3a mov $3a,a +1ddf: dd mov a,y +1de0: 5d mov x,a +1de1: e8 07 mov a,#$07 +1de3: fd mov y,a +1de4: f6 cf 00 mov a,$00cf+y +1de7: 2e 3a 03 cbne $3a,$1ded +1dea: 7d mov a,x +1deb: d7 00 mov ($00)+y,a +1ded: dc dec y +1dee: 10 f4 bpl $1de4 +1df0: 6f ret + +1df1: 28 7f and a,#$7f +1df3: c4 3a mov $3a,a +1df5: cd 07 mov x,#$07 +1df7: f4 cf mov a,$cf+x +1df9: 2e 3a 08 cbne $3a,$1e04 +1dfc: f5 46 02 mov a,$0246+x +1dff: 08 03 or a,#$03 +1e01: d5 46 02 mov $0246+x,a +1e04: 1d dec x +1e05: 10 f0 bpl $1df7 +1e07: 6f ret + +1e08: 8f d7 00 mov $00,#$d7 +1e0b: 8f 00 01 mov $01,#$00 +1e0e: c4 3a mov $3a,a +1e10: e8 0f mov a,#$0f +1e12: fd mov y,a +1e13: e8 07 mov a,#$07 +1e15: 5d mov x,a +1e16: f4 cf mov a,$cf+x +1e18: 2e 3a 0a cbne $3a,$1e25 +1e1b: e4 2f mov a,$2f +1e1d: d7 00 mov ($00)+y,a +1e1f: dc dec y +1e20: e4 2e mov a,$2e +1e22: d7 00 mov ($00)+y,a +1e24: fc inc y +1e25: dc dec y +1e26: dc dec y +1e27: 1d dec x +1e28: 10 ec bpl $1e16 +1e2a: 6f ret + +1e2b: 5d mov x,a +1e2c: e8 01 mov a,#$01 +1e2e: 15 7a 03 or a,$037a+x +1e31: d5 7a 03 mov $037a+x,a +1e34: 6f ret + +1e35: 5d mov x,a +1e36: e8 fe mov a,#$fe +1e38: 35 7a 03 and a,$037a+x +1e3b: 2f f4 bra $1e31 + +1e3d: dw $1773 +1e3e: dw $17a3 +1e40: dw $18a5 +1e42: dw $183a +1e44: dw $179b +1e46: dw $0cd2 +1e48: dw $0d03 +1e4a: dw $0d0b +1e4c: dw $0cf7 +1e4e: dw $1df1 +1e50: dw $0000 +1e52: dw $07dd +1e54: dw $0d89 +1e56: dw $0ce5 +1e58: dw $0cdf +1e5a: dw $0cdb +1e5c: dw $0000 +1e5e: dw $0d40 +1e60: dw $0d42 +1e62: dw $0000 +1e64: dw $0000 +1e66: dw $0000 +1e68: dw $0d8e +1e6a: dw $0d93 +1e6c: dw $1d9f +1e6e: dw $1dab +1e70: dw $1da5 +1e72: dw $1da2 +1e74: dw $1dc8 +1e76: dw $1dae +1e78: dw $1dc0 +1e7a: dw $1dd7 +1e7c: dw $1da8 +1e7e: dw $1e08 +1e80: dw $1dc4 +1e82: dw $1dcf +1e84: dw $1db4 +1e86: dw $1e2b +1e88: dw $1e35 + +; uncompiled source code +1e8b: db $0a,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$62,$72,$61,$20,$54,$4e,$4d,$65,$6c,$0d,$0a,$0d,$0a,$4d,$65,$6c,$6f,$64,$79,$5f,$53,$65,$74,$53,$74,$65,$72,$65,$6f,$41,$72,$74,$0d,$0a,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$63,$61,$6c,$6c,$20,$20,$46,$65,$74,$63,$68,$5f,$4d,$65,$6c,$20 \ No newline at end of file diff --git a/snes/Sculptured Software/WWF Super WrestleMania ($0700).bin b/snes/Sculptured Software/WWF Super WrestleMania ($0700).bin new file mode 100644 index 00000000..91a37fba Binary files /dev/null and b/snes/Sculptured Software/WWF Super WrestleMania ($0700).bin differ diff --git a/snes/Sculptured Software/WWF Super WrestleMania.s b/snes/Sculptured Software/WWF Super WrestleMania.s new file mode 100644 index 00000000..83f784b6 --- /dev/null +++ b/snes/Sculptured Software/WWF Super WrestleMania.s @@ -0,0 +1,1897 @@ +0700: 20 clrp +0701: cd ff mov x,#$ff ; set stack pointer +0703: bd mov sp,x +0704: 8f 6c f2 mov $f2,#$6c ; reset DSP flags +0707: d8 f3 mov $f3,x +0709: 8f b0 f1 mov $f1,#$b0 ; clear input ports APUI00-APUI04 +070c: 8f 20 fa mov $fa,#$20 +070f: 8f 81 f1 mov $f1,#$81 ; toggle timer 2 +0712: 3f d3 0d call $0dd3 ; clear/reset routine +0715: 8f 00 0b mov $0b,#$00 ; variables = sample directory start +0718: 8f 18 0c mov $0c,#$18 +071b: 8d 03 mov y,#$03 ; set temporary storage +071d: f6 ff ff mov a,$ffff+y +0720: 16 27 07 or a,$0727+y +0723: d6 ff ff mov $ffff+y,a +0726: fe f5 dbnz y,$071d +0728: ab 15 inc $15 +072a: e4 1b mov a,$1b +072c: d0 05 bne $0733 +072e: 3f 96 15 call $1596 ; do a random number generator (RNG) +0731: 2f 03 bra $0736 +0733: 3f 56 08 call $0856 +0736: e4 f6 mov a,$f6 +0738: f0 03 beq $073d +073a: 3f 3b 0b call $0b3b +073d: e4 fd mov a,$fd +073f: 60 clrc +0740: 84 14 adc a,$14 +0742: c4 14 mov $14,a +0744: 68 05 cmp a,#$05 +0746: 90 ee bcc $0736 +0748: a8 05 sbc a,#$05 +074a: c4 14 mov $14,a +074c: 68 14 cmp a,#$14 +074e: 90 d8 bcc $0728 +0750: 8f 00 14 mov $14,#$00 +0753: 2f d3 bra $0728 +0755: 8d 00 mov y,#$00 +0757: 8f aa f4 mov $f4,#$aa +075a: 8f bb f5 mov $f5,#$bb +075d: f8 f4 mov x,$f4 +075f: c8 cc cmp x,#$cc +0761: d0 fa bne $075d +0763: fa f6 03 mov ($03),($f6) +0766: fa f7 04 mov ($04),($f7) +0769: 7d mov a,x +076a: f8 f5 mov x,$f5 +076c: c4 f4 mov $f4,a +076e: d0 03 bne $0773 +0770: 1f 03 00 jmp ($0003+x) + +0773: cd 00 mov x,#$00 +0775: 3e f4 cmp x,$f4 +0777: d0 fc bne $0775 +0779: e4 f5 mov a,$f5 +077b: d7 03 mov ($03)+y,a +077d: f8 f4 mov x,$f4 +077f: d8 f4 mov $f4,x +0781: 3a 03 incw $03 +0783: 3e f4 cmp x,$f4 +0785: f0 fc beq $0783 +0787: 3d inc x +0788: 3e f4 cmp x,$f4 +078a: f0 ed beq $0779 +078c: f8 f4 mov x,$f4 +078e: 2f d3 bra $0763 +0790: 3f d3 0d call $0dd3 +0793: 8f b0 f1 mov $f1,#$b0 +0796: cd 00 mov x,#$00 +0798: f5 55 07 mov a,$0755+x +079b: d5 00 01 mov $0100+x,a +079e: 3d inc x +079f: c8 3b cmp x,#$3b +07a1: 90 f5 bcc $0798 +07a3: 5f 00 01 jmp $0100 + +; gain tables +07a6: db $ff,$d6,$a0,$80,$6b,$50,$40,$36,$28,$20,$1b,$14,$10,$0e,$0b,$08,$06,$05,$04,$03,$02,$01 +07bc: db $1d,$1c,$1b,$1a,$19,$18,$17,$16,$15,$14,$13,$12,$11,$10,$0f,$0e,$0d,$0c,$0a,$09,$06,$00 + +; DSP registers: VxENVX +07d2: db $08,$18,$28,$38,$48,$58,$68,$78 +; DSP registers: VxGAIN +07da: db $07,$17,$27,$37,$47,$57,$67,$77 +; DSP registers: VxSCRN (select sample) +07e2: db $04,$14,$24,$34,$44,$54,$64,$74 +; DSP registers: VxPITCHL +07ea: db $02,$12,$22,$32,$42,$52,$62,$72 +; DSP registers: VxVOLL +07f2: db $00,$10,$20,$30,$40,$50,$60,$70 + +; voice numbers and bits for clearing those void bits +07fa: db $01,$02,$04,$08,$10,$20,$40,$80,$fe,$fd,$fb,$f7,$ef,$df,$bf,$7f,$7d,$2c,$3c,$0d,$0f,$1f,$2f,$3f,$4f,$5f,$6f,$7f + +; echo poke registers +0816: db $02,$02,$02,$02,$02,$03,$03,$03 + +081e: db $97,$ac,$c1,$d6,$eb,$00,$15,$2a + +0826: db $03,$03,$03,$03,$03,$03,$03,$03 + +082e: db $3f,$54,$69,$7e,$93,$a8,$bd,$d2 + +0836: db $03,$03,$04,$04,$04,$04,$04,$04 + +083e: db $e7,$fc,$11,$26,$3b,$50,$65,$7a + +0846: db $04,$04,$04,$04,$04,$04,$05,$05 + +084e: db $8f,$a5,$bb,$d1,$e7,$fd,$13,$29 + +084e: 8f a5 bb mov $bb,#$a5 +0851: d1 tcall 13 +0852: e7 fd mov a,($fd+x) +0854: 13 29 3f bbc0 $29,$0896 +0857: 96 15 3f adc a,$3f15+y +085a: 22 13 set1 $13 +085c: 8f 00 2f mov $2f,#$00 +085f: 8f 00 44 mov $44,#$00 +0862: 8f 7c f2 mov $f2,#$7c ; clear end of sample flags? +0865: e4 f3 mov a,$f3 +0867: 04 41 or a,$41 +0869: 24 47 and a,$47 +086b: c4 41 mov $41,a +086d: 8f 00 f3 mov $f3,#$00 +0870: 24 42 and a,$42 +0872: 04 43 or a,$43 +0874: c4 43 mov $43,a +0876: cd 07 mov x,#$07 +0878: 8f 7a 0d mov $0d,#$7a +087b: 8f 04 0e mov $0e,#$04 +087e: d8 0f mov $0f,x +0880: f5 fa 07 mov a,$07fa+x ; clear voice number bits +0883: c4 31 mov $31,a +0885: 48 ff eor a,#$ff +0887: c4 32 mov $32,a +0889: f4 53 mov a,$53+x +088b: 28 02 and a,#$02 +088d: c4 30 mov $30,a +088f: d0 06 bne $0897 +0891: f5 77 02 mov a,$0277+x +0894: 5f 9c 08 jmp $089c + +0897: 3f f3 0e call $0ef3 +089a: f8 0f mov x,$0f +089c: 75 7f 02 cmp a,$027f+x +089f: d0 10 bne $08b1 +08a1: 3f 8d 10 call $108d +08a4: 3f 21 0b call $0b21 +08a7: e4 48 mov a,$48 +08a9: 24 45 and a,$45 +08ab: 24 31 and a,$31 +08ad: d0 43 bne $08f2 +08af: f0 44 beq $08f5 +08b1: d5 7f 02 mov $027f+x,a +08b4: 09 31 2f or ($2f),($31) +08b7: 3f 8d 10 call $108d +08ba: 7d mov a,x +08bb: 1c asl a +08bc: 5d mov x,a +08bd: e4 49 mov a,$49 +08bf: d5 87 02 mov $0287+x,a +08c2: e4 4a mov a,$4a +08c4: d5 88 02 mov $0288+x,a +08c7: f8 0f mov x,$0f +08c9: e4 4b mov a,$4b +08cb: 28 20 and a,#$20 +08cd: f0 05 beq $08d4 +08cf: 29 32 42 and ($42),($32) +08d2: 2f 03 bra $08d7 +08d4: 09 31 42 or ($42),($31) +08d7: e4 4b mov a,$4b +08d9: 28 40 and a,#$40 +08db: f0 05 beq $08e2 +08dd: 09 31 48 or ($48),($31) +08e0: 2f 03 bra $08e5 +08e2: 29 32 48 and ($48),($32) +08e5: 3f 21 0b call $0b21 +08e8: e4 48 mov a,$48 +08ea: 04 45 or a,$45 +08ec: 24 31 and a,$31 +08ee: d0 02 bne $08f2 +08f0: f0 03 beq $08f5 +08f2: 09 31 44 or ($44),($31) +08f5: 1d dec x +08f6: 30 0a bmi $0902 +08f8: 80 setc +08f9: b8 15 0d sbc $0d,#$15 +08fc: b8 00 0e sbc $0e,#$00 +08ff: 5f 7e 08 jmp $087e + +0902: e4 45 mov a,$45 +0904: 24 43 and a,$43 +0906: 04 44 or a,$44 +0908: c4 46 mov $46,a +090a: 8f 5c f2 mov $f2,#$5c +090d: c4 f3 mov $f3,a +090f: cd 07 mov x,#$07 +0911: 8f 29 0d mov $0d,#$29 +0914: 8f 05 0e mov $0e,#$05 +0917: 8f 00 34 mov $34,#$00 +091a: d8 0f mov $0f,x +091c: e4 52 mov a,$52 +091e: d0 13 bne $0933 +0920: f4 53 mov a,$53+x +0922: 28 08 and a,#$08 +0924: c4 34 mov $34,a +0926: d0 06 bne $092e +0928: f5 6f 02 mov a,$026f+x +092b: 5f 33 09 jmp $0933 + +092e: 3f f3 0e call $0ef3 +0931: f8 0f mov x,$0f +0933: fd mov y,a +0934: f5 67 02 mov a,$0267+x +0937: c4 29 mov $29,a +0939: cf mul ya +093a: cd 64 mov x,#$64 +093c: 9e div ya,x +093d: f8 0f mov x,$0f +093f: eb 34 mov y,$34 +0941: f0 11 beq $0954 +0943: c4 27 mov $27,a +0945: 8d 15 mov y,#$15 +0947: f7 0d mov a,($0d)+y +0949: d0 04 bne $094f +094b: e4 27 mov a,$27 +094d: 2f 05 bra $0954 +094f: e4 29 mov a,$29 +0951: 80 setc +0952: a4 27 sbc a,$27 +0954: c4 27 mov $27,a +0956: f5 f2 07 mov a,$07f2+x +0959: fd mov y,a +095a: cb f2 mov $f2,y +095c: fa 27 f3 mov ($f3),($27) +095f: e4 29 mov a,$29 +0961: 80 setc +0962: a4 27 sbc a,$27 +0964: fc inc y +0965: cb f2 mov $f2,y +0967: c4 f3 mov $f3,a +0969: 80 setc +096a: b8 16 0d sbc $0d,#$16 +096d: b8 00 0e sbc $0e,#$00 +0970: 1d dec x +0971: 30 03 bmi $0976 +0973: 5f 1a 09 jmp $091a + +0976: cd 07 mov x,#$07 +0978: 8f d2 0d mov $0d,#$d2 +097b: 8f 03 0e mov $0e,#$03 +097e: d8 0f mov $0f,x +0980: f4 53 mov a,$53+x +0982: fd mov y,a +0983: 28 40 and a,#$40 +0985: 0d push psw +0986: dd mov a,y +0987: 28 04 and a,#$04 +0989: 0d push psw +098a: 7d mov a,x +098b: fd mov y,a +098c: 1c asl a +098d: 5d mov x,a +098e: f5 48 02 mov a,$0248+x ; get base note +0991: c4 2e mov $2e,a +0993: f5 47 02 mov a,$0247+x +0996: c4 2d mov $2d,a +0998: 8e pop psw +0999: f0 11 beq $09ac +099b: 4d push x ; save word addressing +099c: 3f f3 0e call $0ef3 ; advance pitch envelope +099f: ce pop x ; restore pitch flag +09a0: 7a 2d addw ya,$2d +09a2: 80 setc +09a3: a8 b0 sbc a,#$b0 +09a5: c4 2d mov $2d,a +09a7: dd mov a,y +09a8: a8 04 sbc a,#$04 +09aa: c4 2e mov $2e,a +09ac: f5 88 02 mov a,$0288+x +09af: fd mov y,a +09b0: f5 87 02 mov a,$0287+x +09b3: 7a 2d addw ya,$2d +09b5: 8e pop psw +09b6: d0 03 bne $09bb +09b8: 3f b7 10 call $10b7 ; translate note to frequency +09bb: f8 0f mov x,$0f +09bd: d5 57 02 mov $0257+x,a +09c0: dd mov a,y +09c1: d5 5f 02 mov $025f+x,a +09c4: 80 setc +09c5: b8 15 0d sbc $0d,#$15 +09c8: b8 00 0e sbc $0e,#$00 +09cb: 1d dec x +09cc: 10 b0 bpl $097e +09ce: 8f 5c f2 mov $f2,#$5c +09d1: 8f 00 f3 mov $f3,#$00 +09d4: cd 07 mov x,#$07 +09d6: 8f 2a 0d mov $0d,#$2a +09d9: 8f 03 0e mov $0e,#$03 +09dc: d8 0f mov $0f,x +09de: f5 fa 07 mov a,$07fa+x +09e1: c4 31 mov $31,a +09e3: 48 ff eor a,#$ff +09e5: c4 32 mov $32,a +09e7: f4 53 mov a,$53+x +09e9: 28 01 and a,#$01 +09eb: d0 06 bne $09f3 +09ed: f5 2f 02 mov a,$022f+x +09f0: 5f f8 09 jmp $09f8 + +09f3: 3f f3 0e call $0ef3 +09f6: f8 0f mov x,$0f +09f8: d5 37 02 mov $0237+x,a +09fb: fd mov y,a +09fc: e4 2f mov a,$2f +09fe: 24 31 and a,$31 +0a00: f0 0a beq $0a0c +0a02: f5 e2 07 mov a,$07e2+x +0a05: c4 f2 mov $f2,a +0a07: f5 7f 02 mov a,$027f+x +0a0a: c4 f3 mov $f3,a +0a0c: e4 40 mov a,$40 +0a0e: 24 31 and a,$31 +0a10: f0 05 beq $0a17 +0a12: 29 32 40 and ($40),($32) +0a15: 2f 37 bra $0a4e +0a17: f5 d2 07 mov a,$07d2+x +0a1a: c4 f2 mov $f2,a +0a1c: dd mov a,y +0a1d: 80 setc +0a1e: a4 f3 sbc a,$f3 +0a20: b0 09 bcs $0a2b +0a22: 8f 80 22 mov $22,#$80 +0a25: 48 ff eor a,#$ff +0a27: bc inc a +0a28: 5f 2e 0a jmp $0a2e + +0a2b: 8f c0 22 mov $22,#$c0 +0a2e: 5c lsr a +0a2f: d0 09 bne $0a3a +0a31: ad 00 cmp y,#$00 +0a33: d0 05 bne $0a3a +0a35: e8 82 mov a,#$82 +0a37: 5f 48 0a jmp $0a48 + +0a3a: 8d 15 mov y,#$15 +0a3c: 76 a6 07 cmp a,$07a6+y +0a3f: 90 02 bcc $0a43 +0a41: fe f9 dbnz y,$0a3c +0a43: f6 bc 07 mov a,$07bc+y +0a46: 04 22 or a,$22 +0a48: 75 3f 02 cmp a,$023f+x +0a4b: f0 0c beq $0a59 +0a4d: fd mov y,a +0a4e: f5 da 07 mov a,$07da+x +0a51: c4 f2 mov $f2,a +0a53: cb f3 mov $f3,y +0a55: dd mov a,y +0a56: d5 3f 02 mov $023f+x,a +0a59: f5 ea 07 mov a,$07ea+x +0a5c: c4 f2 mov $f2,a +0a5e: fd mov y,a +0a5f: f5 57 02 mov a,$0257+x +0a62: c4 f3 mov $f3,a +0a64: fc inc y +0a65: cb f2 mov $f2,y +0a67: f5 5f 02 mov a,$025f+x +0a6a: c4 f3 mov $f3,a +0a6c: 80 setc +0a6d: b8 15 0d sbc $0d,#$15 +0a70: b8 00 0e sbc $0e,#$00 +0a73: 1d dec x +0a74: 30 03 bmi $0a79 +0a76: 5f dc 09 jmp $09dc + +0a79: 8f 4c f2 mov $f2,#$4c +0a7c: fa 46 f3 mov ($f3),($46) +0a7f: e4 46 mov a,$46 +0a81: 48 ff eor a,#$ff +0a83: c4 47 mov $47,a +0a85: 29 47 41 and ($41),($47) +0a88: 29 47 43 and ($43),($47) +0a8b: 8f 00 45 mov $45,#$00 +0a8e: cd 07 mov x,#$07 +0a90: 8d 0e mov y,#$0e +0a92: f5 06 02 mov a,$0206+x +0a95: f0 2b beq $0ac2 +0a97: f4 53 mov a,$53+x +0a99: 28 80 and a,#$80 +0a9b: f0 09 beq $0aa6 +0a9d: f5 fa 07 mov a,$07fa+x +0aa0: 24 41 and a,$41 +0aa2: d0 19 bne $0abd +0aa4: 2f 1c bra $0ac2 +0aa6: f6 17 02 mov a,$0217+y +0aa9: 80 setc +0aaa: a8 01 sbc a,#$01 +0aac: d6 17 02 mov $0217+y,a +0aaf: c4 27 mov $27,a +0ab1: f6 18 02 mov a,$0218+y +0ab4: a8 00 sbc a,#$00 +0ab6: d6 18 02 mov $0218+y,a +0ab9: 04 27 or a,$27 +0abb: d0 05 bne $0ac2 +0abd: e8 00 mov a,#$00 +0abf: d5 06 02 mov $0206+x,a +0ac2: dc dec y +0ac3: dc dec y +0ac4: 1d dec x +0ac5: 10 cb bpl $0a92 +0ac7: ec 00 02 mov y,$0200 +0aca: f0 54 beq $0b20 +0acc: 8c 01 02 dec $0201 +0acf: d0 4f bne $0b20 +0ad1: cc 01 02 mov $0201,y +0ad4: e4 16 mov a,$16 +0ad6: e9 02 02 mov x,$0202 +0ad9: 30 0e bmi $0ae9 +0adb: 60 clrc +0adc: 85 03 02 adc a,$0203 +0adf: b0 04 bcs $0ae5 +0ae1: 68 7f cmp a,#$7f +0ae3: 90 13 bcc $0af8 +0ae5: e8 7f mov a,#$7f +0ae7: 2f 0a bra $0af3 +0ae9: 80 setc +0aea: a5 03 02 sbc a,$0203 +0aed: f0 04 beq $0af3 +0aef: b0 07 bcs $0af8 +0af1: e8 00 mov a,#$00 +0af3: 8d 00 mov y,#$00 +0af5: cc 00 02 mov $0200,y +0af8: c4 16 mov $16,a +0afa: 5d mov x,a +0afb: 8f 2c f2 mov $f2,#$2c +0afe: 65 04 02 cmp a,$0204 +0b01: 90 03 bcc $0b06 +0b03: e5 04 02 mov a,$0204 +0b06: c4 f3 mov $f3,a +0b08: 8f 3c f2 mov $f2,#$3c +0b0b: 7d mov a,x +0b0c: 65 05 02 cmp a,$0205 +0b0f: 90 03 bcc $0b14 +0b11: e5 04 02 mov a,$0204 +0b14: c4 f3 mov $f3,a +0b16: 8f 0c f2 mov $f2,#$0c +0b19: d8 f3 mov $f3,x +0b1b: 8f 1c f2 mov $f2,#$1c +0b1e: d8 f3 mov $f3,x +0b20: 6f ret + +0b21: e4 4b mov a,$4b +0b23: 10 0c bpl $0b31 +0b25: 28 1f and a,#$1f +0b27: 8f 6c f2 mov $f2,#$6c +0b2a: c4 f3 mov $f3,a +0b2c: 09 31 4d or ($4d),($31) +0b2f: 2f 03 bra $0b34 +0b31: 29 32 4d and ($4d),($32) +0b34: 8f 3d f2 mov $f2,#$3d +0b37: fa 4d f3 mov ($f3),($4d) +0b3a: 6f ret + +0b3b: c4 17 mov $17,a +0b3d: fa f4 19 mov ($19),($f4) +0b40: fa f5 1a mov ($1a),($f5) +0b43: e4 f7 mov a,$f7 +0b45: 28 fe and a,#$fe +0b47: c4 18 mov $18,a +0b49: 8f b1 f1 mov $f1,#$b1 +0b4c: fa 17 f6 mov ($f6),($17) +0b4f: f8 18 mov x,$18 +0b51: c8 1d cmp x,#$1d +0b53: b0 07 bcs $0b5c +0b55: e4 19 mov a,$19 +0b57: eb 1a mov y,$1a +0b59: 1f b4 17 jmp ($17b4+x) + +0b5c: 6f ret + +0b5d: 8f 6c f2 mov $f2,#$6c +0b60: 8f 00 f3 mov $f3,#$00 +0b63: 8f ff 1b mov $1b,#$ff +0b66: 5f 02 0e jmp $0e02 + +0b69: da 3a movw $3a,ya +0b6b: 8f ff 39 mov $39,#$ff +0b6e: 6f ret + +0b6f: c4 52 mov $52,a +0b71: 6f ret + +0b72: e8 00 mov a,#$00 +0b74: c5 00 02 mov $0200,a +0b77: 6f ret + +0b78: cd 01 mov x,#$01 +0b7a: 2f 02 bra $0b7e +0b7c: cd ff mov x,#$ff +0b7e: c5 00 02 mov $0200,a +0b81: c5 01 02 mov $0201,a +0b84: cc 03 02 mov $0203,y +0b87: c9 02 02 mov $0202,x +0b8a: 6f ret + +0b8b: 8f 00 5c mov $5c,#$00 +0b8e: 68 00 cmp a,#$00 +0b90: d0 03 bne $0b95 +0b92: c5 4f 05 mov $054f,a +0b95: 6f ret + +0b96: c5 16 02 mov $0216,a +0b99: cd 07 mov x,#$07 +0b9b: ad 80 cmp y,#$80 +0b9d: f0 17 beq $0bb6 +0b9f: e8 01 mov a,#$01 +0ba1: b0 0e bcs $0bb1 +0ba3: ad 00 cmp y,#$00 +0ba5: d0 08 bne $0baf +0ba7: e5 16 02 mov a,$0216 +0baa: 75 0e 02 cmp a,$020e+x +0bad: d0 22 bne $0bd1 +0baf: e8 80 mov a,#$80 +0bb1: 75 06 02 cmp a,$0206+x +0bb4: d0 1b bne $0bd1 +0bb6: f5 da 07 mov a,$07da+x +0bb9: c4 f2 mov $f2,a +0bbb: e8 00 mov a,#$00 +0bbd: c4 f3 mov $f3,a +0bbf: d5 2f 02 mov $022f+x,a +0bc2: d5 06 02 mov $0206+x,a +0bc5: d5 77 02 mov $0277+x,a +0bc8: d4 53 mov $53+x,a +0bca: f5 fa 07 mov a,$07fa+x +0bcd: 04 45 or a,$45 +0bcf: c4 45 mov $45,a +0bd1: 1d dec x +0bd2: 10 c7 bpl $0b9b +0bd4: 6f ret + +0bd5: 8d 0e mov y,#$0e +0bd7: c5 16 02 mov $0216,a +0bda: 3f b2 0d call $0db2 +0bdd: da 09 movw $09,ya +0bdf: 8d 00 mov y,#$00 +0be1: f7 09 mov a,($09)+y +0be3: c4 3c mov $3c,a +0be5: 3a 09 incw $09 +0be7: 8d 07 mov y,#$07 +0be9: f7 09 mov a,($09)+y +0beb: c4 3d mov $3d,a +0bed: 8d 06 mov y,#$06 +0bef: f7 09 mov a,($09)+y +0bf1: c4 3e mov $3e,a +0bf3: 8f 80 3f mov $3f,#$80 +0bf6: cd 07 mov x,#$07 +0bf8: 3f 43 0c call $0c43 +0bfb: 30 36 bmi $0c33 +0bfd: e8 80 mov a,#$80 +0bff: d5 06 02 mov $0206+x,a +0c02: e5 16 02 mov a,$0216 +0c05: d5 0e 02 mov $020e+x,a +0c08: 8d 02 mov y,#$02 +0c0a: f7 09 mov a,($09)+y +0c0c: c4 35 mov $35,a +0c0e: fc inc y +0c0f: f7 09 mov a,($09)+y +0c11: c4 36 mov $36,a +0c13: 8d 04 mov y,#$04 +0c15: f7 09 mov a,($09)+y +0c17: c4 37 mov $37,a +0c19: fc inc y +0c1a: f7 09 mov a,($09)+y +0c1c: c4 38 mov $38,a +0c1e: e4 39 mov a,$39 +0c20: f0 04 beq $0c26 +0c22: ba 3a movw ya,$3a +0c24: da 37 movw $37,ya +0c26: 8d 01 mov y,#$01 +0c28: f7 09 mov a,($09)+y +0c2a: 2d push a +0c2b: 8d 00 mov y,#$00 +0c2d: f7 09 mov a,($09)+y +0c2f: ee pop y +0c30: 3f 6d 0c call $0c6d +0c33: 60 clrc +0c34: 98 08 09 adc $09,#$08 +0c37: 90 02 bcc $0c3b +0c39: ab 0a inc $0a +0c3b: 8b 3c dec $3c +0c3d: d0 a8 bne $0be7 +0c3f: 8f 00 39 mov $39,#$00 +0c42: 6f ret + +0c43: 8d 07 mov y,#$07 +0c45: e4 3f mov a,$3f +0c47: 24 3d and a,$3d +0c49: f0 0c beq $0c57 +0c4b: f5 06 02 mov a,$0206+x +0c4e: f0 15 beq $0c65 +0c50: e4 3e mov a,$3e +0c52: 75 27 02 cmp a,$0227+x +0c55: b0 10 bcs $0c67 +0c57: 4b 3f lsr $3f +0c59: d0 05 bne $0c60 +0c5b: 8f 80 3f mov $3f,#$80 +0c5e: cd 08 mov x,#$08 +0c60: 1d dec x +0c61: dc dec y +0c62: 10 e1 bpl $0c45 +0c64: 6f ret + +0c65: e4 3e mov a,$3e +0c67: d5 27 02 mov $0227+x,a +0c6a: e8 00 mov a,#$00 +0c6c: 6f ret + +0c6d: d8 33 mov $33,x ; play sound (instrument) +0c6f: 2d push a +0c70: dd mov a,y +0c71: d5 67 02 mov $0267+x,a +0c74: 7d mov a,x +0c75: 1c asl a +0c76: 5d mov x,a +0c77: e4 37 mov a,$37 +0c79: d5 47 02 mov $0247+x,a +0c7c: e4 38 mov a,$38 +0c7e: d5 48 02 mov $0248+x,a +0c81: e4 35 mov a,$35 +0c83: d5 17 02 mov $0217+x,a +0c86: e4 36 mov a,$36 +0c88: d5 18 02 mov $0218+x,a +0c8b: ae pop a +0c8c: 8d 02 mov y,#$02 +0c8e: 3f b2 0d call $0db2 +0c91: da 07 movw $07,ya ; get current voice and instrument +0c93: f8 33 mov x,$33 +0c95: f5 fa 07 mov a,$07fa+x ; get channel bit mask ID +0c98: c4 4e mov $4e,a +0c9a: 48 ff eor a,#$ff ; and store inversion +0c9c: c4 4f mov $4f,a +0c9e: 8d 00 mov y,#$00 ; get mode flags +0ca0: f7 07 mov a,($07)+y +0ca2: d4 53 mov $53+x,a ; save permanently and in local temp RAM +0ca4: c4 34 mov $34,a +0ca6: 28 20 and a,#$20 ; is pitch modulation enabled? ($20 = pm) +0ca8: f0 05 beq $0caf ; if not... +0caa: 09 4e 50 or ($50),($4e) ; turn pitch mod on +0cad: 2f 03 bra $0cb2 +0caf: 29 4f 50 and ($50),($4f) ; turn pitch mod off +0cb2: 8f 2d f2 mov $f2,#$2d +0cb5: fa 50 f3 mov ($f3),($50) +0cb8: e4 34 mov a,$34 ; retrieve the saved flag +0cba: 28 10 and a,#$10 ; is echo enabled? ($10 = echo) +0cbc: f0 2f beq $0ced ; if not... +0cbe: 8d 05 mov y,#$05 ; get echo byte from sound +0cc0: f7 07 mov a,($07)+y +0cc2: 8d 0c mov y,#$0c +0cc4: 3f b2 0d call $0db2 +0cc7: 8d 00 mov y,#$00 +0cc9: f6 0a 08 mov a,$080a+y ; get the echo register values to "poke" +0ccc: c4 f2 mov $f2,a ; (from the table) +0cce: f7 10 mov a,($10)+y ; now get info to feed to the registers +0cd0: ad 01 cmp y,#$01 ; (from the echo environment) +0cd2: f0 04 beq $0cd8 +0cd4: ad 02 cmp y,#$02 +0cd6: d0 09 bne $0ce1 +0cd8: d6 03 02 mov $0203+y,a +0cdb: 64 16 cmp a,$16 +0cdd: 90 02 bcc $0ce1 +0cdf: e4 16 mov a,$16 +0ce1: c4 f3 mov $f3,a +0ce3: fc inc y +0ce4: ad 0c cmp y,#$0c ; repeat for every byte of the array +0ce6: 90 e1 bcc $0cc9 +0ce8: 09 4e 51 or ($51),($4e) +0ceb: 2f 03 bra $0cf0 + +0ced: 29 4f 51 and ($51),($4f) +0cf0: 8f 4d f2 mov $f2,#$4d +0cf3: fa 51 f3 mov ($f3),($51) ; send the echo unit +0cf6: e4 34 mov a,$34 +0cf8: 28 01 and a,#$01 +0cfa: 0d push psw +0cfb: 8d 01 mov y,#$01 +0cfd: f7 07 mov a,($07)+y ; now get the amplitude +0cff: 8e pop psw +0d00: d0 08 bne $0d0a +0d02: f8 33 mov x,$33 +0d04: d5 2f 02 mov $022f+x,a +0d07: 5f 20 0d jmp $0d20 + +0d0a: 8d 04 mov y,#$04 +0d0c: 3f b2 0d call $0db2 +0d0f: f8 33 mov x,$33 +0d11: f5 1e 08 mov a,$081e+x +0d14: c4 0d mov $0d,a +0d16: f5 16 08 mov a,$0816+x +0d19: c4 0e mov $0e,a +0d1b: ba 35 movw ya,$35 +0d1d: 3f 7c 0e call $0e7c +0d20: e4 34 mov a,$34 +0d22: 28 04 and a,#$04 +0d24: f0 1a beq $0d40 +0d26: 8d 03 mov y,#$03 +0d28: f7 07 mov a,($07)+y +0d2a: 8d 06 mov y,#$06 +0d2c: 3f b2 0d call $0db2 +0d2f: f8 33 mov x,$33 +0d31: f5 2e 08 mov a,$082e+x +0d34: c4 0d mov $0d,a +0d36: f5 26 08 mov a,$0826+x +0d39: c4 0e mov $0e,a +0d3b: ba 35 movw ya,$35 +0d3d: 3f 7c 0e call $0e7c +0d40: e4 34 mov a,$34 +0d42: 28 08 and a,#$08 +0d44: 0d push psw +0d45: 8d 04 mov y,#$04 +0d47: f7 07 mov a,($07)+y +0d49: 8e pop psw +0d4a: d0 08 bne $0d54 +0d4c: f8 33 mov x,$33 +0d4e: d5 6f 02 mov $026f+x,a +0d51: 5f 81 0d jmp $0d81 + +0d54: 8d 08 mov y,#$08 +0d56: 3f b2 0d call $0db2 +0d59: f8 33 mov x,$33 +0d5b: f5 4e 08 mov a,$084e+x +0d5e: c4 0d mov $0d,a +0d60: f5 46 08 mov a,$0846+x +0d63: c4 0e mov $0e,a +0d65: ba 35 movw ya,$35 +0d67: 3f 7c 0e call $0e7c +0d6a: 8d 07 mov y,#$07 +0d6c: f7 0d mov a,($0d)+y +0d6e: f0 0b beq $0d7b +0d70: 8d 15 mov y,#$15 +0d72: f7 0d mov a,($0d)+y +0d74: d0 05 bne $0d7b +0d76: e8 ff mov a,#$ff +0d78: 5f 7d 0d jmp $0d7d + +0d7b: e8 00 mov a,#$00 +0d7d: 8d 15 mov y,#$15 +0d7f: d7 0d mov ($0d)+y,a +0d81: e4 34 mov a,$34 +0d83: 28 02 and a,#$02 +0d85: 0d push psw +0d86: 8d 02 mov y,#$02 +0d88: f7 07 mov a,($07)+y +0d8a: 8e pop psw +0d8b: d0 08 bne $0d95 +0d8d: f8 33 mov x,$33 +0d8f: d5 77 02 mov $0277+x,a +0d92: 5f ab 0d jmp $0dab + +0d95: 8d 0a mov y,#$0a +0d97: 3f b2 0d call $0db2 +0d9a: f8 33 mov x,$33 +0d9c: f5 3e 08 mov a,$083e+x +0d9f: c4 0d mov $0d,a +0da1: f5 36 08 mov a,$0836+x +0da4: c4 0e mov $0e,a +0da6: ba 35 movw ya,$35 +0da8: 3f 7c 0e call $0e7c +0dab: 09 4e 45 or ($45),($4e) +0dae: 09 4e 40 or ($40),($4e) +0db1: 6f ret + +0db2: 8f 00 06 mov $06,#$00 ; load current song/sfx/etc. address into stack +0db5: 1c asl a +0db6: 2b 06 rol $06 +0db8: 60 clrc +0db9: 96 e0 17 adc a,$17e0+y +0dbc: c4 05 mov $05,a +0dbe: e4 06 mov a,$06 +0dc0: 96 e1 17 adc a,$17e1+y +0dc3: c4 06 mov $06,a +0dc5: 8d 01 mov y,#$01 +0dc7: f7 05 mov a,($05)+y +0dc9: c4 11 mov $11,a +0dcb: dc dec y +0dcc: f7 05 mov a,($05)+y +0dce: c4 10 mov $10,a +0dd0: eb 11 mov y,$11 +0dd2: 6f ret + +0dd3: cd 31 mov x,#$31 +0dd5: 8d 0e mov y,#$0e +0dd7: 3f 1a 0e call $0e1a +0dda: e8 00 mov a,#$00 +0ddc: fd mov y,a +0ddd: c4 03 mov $03,a +0ddf: 8f 02 04 mov $04,#$02 +0de2: d7 03 mov ($03)+y,a +0de4: 3a 03 incw $03 +0de6: 78 07 04 cmp $04,#$07 +0de9: 90 f7 bcc $0de2 +0deb: d6 00 00 mov $0000+y,a +0dee: fc inc y +0def: ad f0 cmp y,#$f0 +0df1: 90 f8 bcc $0deb +0df3: 9c dec a +0df4: c4 41 mov $41,a +0df6: c4 43 mov $43,a +0df8: c4 48 mov $48,a +0dfa: c4 42 mov $42,a +0dfc: c4 47 mov $47,a +0dfe: 8f 7f 16 mov $16,#$7f +0e01: 6f ret + +0e02: e5 e1 17 mov a,$17e1 +0e05: 8f 6d f2 mov $f2,#$6d +0e08: c4 f3 mov $f3,a +0e0a: c4 04 mov $04,a +0e0c: e8 00 mov a,#$00 +0e0e: fd mov y,a +0e0f: c4 03 mov $03,a +0e11: d7 03 mov ($03)+y,a +0e13: fe fc dbnz y,$0e11 +0e15: ab 04 inc $04 +0e17: d0 f8 bne $0e11 +0e19: 6f ret + +0e1a: d8 03 mov $03,x +0e1c: cb 04 mov $04,y +0e1e: 8d 00 mov y,#$00 +0e20: f7 03 mov a,($03)+y +0e22: 68 ff cmp a,#$ff +0e24: f0 0a beq $0e30 +0e26: c4 f2 mov $f2,a +0e28: fc inc y +0e29: f7 03 mov a,($03)+y +0e2b: c4 f3 mov $f3,a +0e2d: fc inc y +0e2e: d0 f0 bne $0e20 +0e30: 6f ret + +; pre-defined DSP flags +0e31: db $6c,$ff ; clear flags +0e33: db $3d,$00 ; turn off noise generator (NON) +0e35: db $4d,$00 ; turn off echo (EON) +0e37: db $7d,$00 ; turn off echo delay time (EDL) +0e39: db $6d,$ff ; pointer to echo memory (ESA) +0e3b: db $5d,$18 ; set sample directory ($1800) +0e3d: db $5c,$00 ; set key off (KOFF) +0e3f: db $2d,$00 ; disable pitch modulation (PMON) +0e41: db $05,$00 ; disable ASDR (channel 1) +0e43: db $15,$00 ; disable ASDR (channel 2) +0e45: db $25,$00 ; disable ASDR (channel 3) +0e47: db $35,$00 ; disable ASDR (channel 4) +0e49: db $45,$00 ; disable ASDR (channel 5) +0e4b: db $55,$00 ; disable ASDR (channel 6) +0e4d: db $65,$00 ; disable ASDR (channel 7) +0e4f: db $75,$00 ; disable ASDR (channel 8) +0e51: db $07,$00 ; reset GAIN (channel 1) +0e53: db $17,$00 ; reset GAIN (channel 2) +0e55: db $27,$00 ; reset GAIN (channel 3) +0e57: db $37,$00 ; reset GAIN (channel 4) +0e59: db $47,$00 ; reset GAIN (channel 5) +0e5b: db $57,$00 ; reset GAIN (channel 6) +0e5d: db $67,$00 ; reset GAIN (channel 7) +0e5f: db $77,$00 ; reset GAIN (channel 8) +0e61: db $7c,$00 ; end of sample flag +0e63: db $2c,$00 ; turn off EVOLL +0e65: db $3c,$00 ; turn off EVOLR +0e67: db $0c,$7f ; turn on MVOLL +0e69: db $1c,$7f ; turn on MVOLR +0e6b: db $04,$00 ; reset SRCN (channel 1) +0e6d: db $14,$00 ; reset SRCN (channel 2) +0e6f: db $24,$00 ; reset SRCN (channel 3) +0e71: db $34,$00 ; reset SRCN (channel 4) +0e73: db $44,$00 ; reset SRCN (channel 5) +0e75: db $54,$00 ; reset SRCN (channel 6) +0e77: db $64,$00 ; reset SRCN (channel 7) +0e79: db $74,$00 ; reset SRCN (channel 8) +0e7b: db $ff + +0e7c: da 27 movw $27,ya +0e7e: 8d 07 mov y,#$07 +0e80: f7 10 mov a,($10)+y ; get amplitude table +0e82: d7 0d mov ($0d)+y,a +0e84: dc dec y +0e85: 10 f9 bpl $0e80 +0e87: e4 10 mov a,$10 +0e89: 60 clrc +0e8a: 88 08 adc a,#$08 +0e8c: 8d 08 mov y,#$08 +0e8e: d7 0d mov ($0d)+y,a +0e90: e4 11 mov a,$11 +0e92: 88 00 adc a,#$00 +0e94: fc inc y +0e95: d7 0d mov ($0d)+y,a +0e97: 8d 03 mov y,#$03 +0e99: f7 0d mov a,($0d)+y +0e9b: 5d mov x,a +0e9c: 8d 02 mov y,#$02 +0e9e: f7 0d mov a,($0d)+y +0ea0: fd mov y,a +0ea1: 7d mov a,x +0ea2: cf mul ya +0ea3: da 2b movw $2b,ya +0ea5: ba 27 movw ya,$27 +0ea7: 9a 2b subw ya,$2b +0ea9: b0 03 bcs $0eae +0eab: e8 00 mov a,#$00 +0ead: fd mov y,a +0eae: cb 2c mov $2c,y +0eb0: 8d 0d mov y,#$0d +0eb2: d7 0d mov ($0d)+y,a +0eb4: fc inc y +0eb5: e4 2c mov a,$2c +0eb7: d7 0d mov ($0d)+y,a +0eb9: 8d 03 mov y,#$03 +0ebb: f7 0d mov a,($0d)+y +0ebd: bc inc a +0ebe: 8d 0f mov y,#$0f +0ec0: d7 0d mov ($0d)+y,a +0ec2: 68 03 cmp a,#$03 +0ec4: b0 06 bcs $0ecc +0ec6: 8d 04 mov y,#$04 +0ec8: e8 00 mov a,#$00 +0eca: d7 0d mov ($0d)+y,a +0ecc: 8d 08 mov y,#$08 +0ece: f7 0d mov a,($0d)+y +0ed0: 8d 0a mov y,#$0a +0ed2: d7 0d mov ($0d)+y,a +0ed4: 8d 09 mov y,#$09 +0ed6: f7 0d mov a,($0d)+y +0ed8: 8d 0b mov y,#$0b +0eda: d7 0d mov ($0d)+y,a +0edc: e8 01 mov a,#$01 +0ede: 8d 14 mov y,#$14 +0ee0: d7 0d mov ($0d)+y,a +0ee2: 9c dec a +0ee3: 8d 0c mov y,#$0c +0ee5: d7 0d mov ($0d)+y,a +0ee7: 8d 12 mov y,#$12 +0ee9: d7 0d mov ($0d)+y,a +0eeb: fc inc y +0eec: d7 0d mov ($0d)+y,a +0eee: c4 20 mov $20,a +0ef0: 5f a1 0f jmp $0fa1 + +0ef3: 8d 14 mov y,#$14 +0ef5: f7 0d mov a,($0d)+y +0ef7: f0 39 beq $0f32 +0ef9: 8d 04 mov y,#$04 +0efb: f7 0d mov a,($0d)+y +0efd: c4 20 mov $20,a +0eff: 8d 0f mov y,#$0f +0f01: f7 0d mov a,($0d)+y +0f03: c4 21 mov $21,a +0f05: f0 03 beq $0f0a +0f07: 9c dec a +0f08: d0 06 bne $0f10 +0f0a: 8d 03 mov y,#$03 +0f0c: f7 0d mov a,($0d)+y +0f0e: 8d 0f mov y,#$0f +0f10: d7 0d mov ($0d)+y,a +0f12: 78 02 21 cmp $21,#$02 +0f15: 90 03 bcc $0f1a +0f17: 5f a1 0f jmp $0fa1 + +0f1a: 8d 0c mov y,#$0c +0f1c: f7 0d mov a,($0d)+y +0f1e: bc inc a +0f1f: 8d 05 mov y,#$05 +0f21: 77 0d cmp a,($0d)+y +0f23: 90 17 bcc $0f3c +0f25: 9c dec a +0f26: 8d 01 mov y,#$01 +0f28: 77 0d cmp a,($0d)+y +0f2a: f0 6a beq $0f96 +0f2c: e8 00 mov a,#$00 +0f2e: 8d 14 mov y,#$14 +0f30: d7 0d mov ($0d)+y,a +0f32: 8d 11 mov y,#$11 +0f34: f7 0d mov a,($0d)+y +0f36: 2d push a +0f37: dc dec y +0f38: f7 0d mov a,($0d)+y +0f3a: ee pop y +0f3b: 6f ret + +0f3c: 8d 0c mov y,#$0c +0f3e: d7 0d mov ($0d)+y,a +0f40: 8d 06 mov y,#$06 +0f42: f7 0d mov a,($0d)+y +0f44: 8d 0a mov y,#$0a +0f46: 60 clrc +0f47: 97 0d adc a,($0d)+y +0f49: d7 0d mov ($0d)+y,a +0f4b: 90 07 bcc $0f54 +0f4d: fc inc y +0f4e: f7 0d mov a,($0d)+y +0f50: 88 00 adc a,#$00 +0f52: d7 0d mov ($0d)+y,a +0f54: 8d 0e mov y,#$0e +0f56: f7 0d mov a,($0d)+y +0f58: 5d mov x,a +0f59: dc dec y +0f5a: f7 0d mov a,($0d)+y +0f5c: d0 04 bne $0f62 +0f5e: c8 00 cmp x,#$00 +0f60: f0 3f beq $0fa1 +0f62: 8d 03 mov y,#$03 +0f64: 80 setc +0f65: b7 0d sbc a,($0d)+y +0f67: 8d 0d mov y,#$0d +0f69: d7 0d mov ($0d)+y,a +0f6b: c4 2b mov $2b,a +0f6d: 7d mov a,x +0f6e: a8 00 sbc a,#$00 +0f70: b0 06 bcs $0f78 +0f72: e8 00 mov a,#$00 +0f74: d7 0d mov ($0d)+y,a +0f76: c4 2b mov $2b,a +0f78: fc inc y +0f79: d7 0d mov ($0d)+y,a +0f7b: 04 2b or a,$2b +0f7d: d0 0b bne $0f8a +0f7f: 8d 01 mov y,#$01 +0f81: f7 0d mov a,($0d)+y +0f83: 68 ff cmp a,#$ff +0f85: f0 03 beq $0f8a +0f87: 5f 9a 0f jmp $0f9a + +0f8a: 8d 0c mov y,#$0c +0f8c: f7 0d mov a,($0d)+y +0f8e: 8d 01 mov y,#$01 +0f90: 77 0d cmp a,($0d)+y +0f92: 90 0d bcc $0fa1 +0f94: f0 0b beq $0fa1 +0f96: 8d 00 mov y,#$00 +0f98: f7 0d mov a,($0d)+y +0f9a: 8d 0c mov y,#$0c +0f9c: d7 0d mov ($0d)+y,a +0f9e: 3f 44 10 call $1044 +0fa1: f8 20 mov x,$20 +0fa3: f0 14 beq $0fb9 +0fa5: 78 03 21 cmp $21,#$03 +0fa8: 90 0f bcc $0fb9 +0faa: 8d 13 mov y,#$13 +0fac: cd 03 mov x,#$03 +0fae: f7 0d mov a,($0d)+y +0fb0: d4 1c mov $1c+x,a +0fb2: dc dec y +0fb3: 1d dec x +0fb4: 10 f8 bpl $0fae +0fb6: 5f 21 10 jmp $1021 + +0fb9: 3f 33 10 call $1033 +0fbc: 8d 06 mov y,#$06 +0fbe: f7 0d mov a,($0d)+y +0fc0: 5d mov x,a +0fc1: 8d 00 mov y,#$00 +0fc3: f7 12 mov a,($12)+y +0fc5: c8 01 cmp x,#$01 +0fc7: f0 06 beq $0fcf +0fc9: 5d mov x,a +0fca: fc inc y +0fcb: f7 12 mov a,($12)+y +0fcd: fd mov y,a +0fce: 7d mov a,x +0fcf: f8 20 mov x,$20 +0fd1: f0 52 beq $1025 +0fd3: 78 02 21 cmp $21,#$02 +0fd6: f0 4d beq $1025 +0fd8: da 27 movw $27,ya +0fda: 8d 11 mov y,#$11 +0fdc: f7 0d mov a,($0d)+y +0fde: c4 1d mov $1d,a +0fe0: dc dec y +0fe1: f7 0d mov a,($0d)+y +0fe3: c4 1c mov $1c,a +0fe5: eb 1d mov y,$1d +0fe7: 80 setc +0fe8: 9a 27 subw ya,$27 +0fea: da 1e movw $1e,ya +0fec: e8 00 mov a,#$00 +0fee: 3c rol a +0fef: c4 27 mov $27,a +0ff1: d0 08 bne $0ffb +0ff3: 58 ff 1e eor $1e,#$ff +0ff6: 58 ff 1f eor $1f,#$ff +0ff9: 3a 1e incw $1e +0ffb: 8d 03 mov y,#$03 +0ffd: f7 0d mov a,($0d)+y +0fff: 5d mov x,a +1000: ba 1e movw ya,$1e +1002: 3f 5f 10 call $105f +1005: c4 1e mov $1e,a +1007: d8 1f mov $1f,x +1009: 78 01 27 cmp $27,#$01 +100c: d0 08 bne $1016 +100e: 58 ff 1e eor $1e,#$ff +1011: 58 ff 1f eor $1f,#$ff +1014: 3a 1e incw $1e +1016: 8d 12 mov y,#$12 +1018: e4 1e mov a,$1e +101a: d7 0d mov ($0d)+y,a +101c: fc inc y +101d: e4 1f mov a,$1f +101f: d7 0d mov ($0d)+y,a +1021: ba 1c movw ya,$1c +1023: 7a 1e addw ya,$1e +1025: da 1c movw $1c,ya +1027: 8d 10 mov y,#$10 +1029: d7 0d mov ($0d)+y,a +102b: e4 1d mov a,$1d +102d: fc inc y +102e: d7 0d mov ($0d)+y,a +1030: ba 1c movw ya,$1c +1032: 6f ret + +1033: 8d 0a mov y,#$0a +1035: 5f 3a 10 jmp $103a + +1038: 8d 08 mov y,#$08 +103a: f7 0d mov a,($0d)+y +103c: c4 12 mov $12,a +103e: fc inc y +103f: f7 0d mov a,($0d)+y +1041: c4 13 mov $13,a +1043: 6f ret + +1044: 2d push a +1045: 3f 38 10 call $1038 +1048: 8d 06 mov y,#$06 +104a: f7 0d mov a,($0d)+y +104c: fd mov y,a +104d: ae pop a +104e: cf mul ya +104f: 7a 12 addw ya,$12 +1051: da 12 movw $12,ya +1053: 8d 0a mov y,#$0a +1055: e4 12 mov a,$12 +1057: d7 0d mov ($0d)+y,a +1059: fc inc y +105a: e4 13 mov a,$13 +105c: d7 0d mov ($0d)+y,a +105e: 6f ret + +105f: c8 00 cmp x,#$00 +1061: d0 05 bne $1068 +1063: e8 ff mov a,#$ff +1065: fd mov y,a +1066: 5d mov x,a +1067: 6f ret + +1068: cb 24 mov $24,y +106a: 3e 24 cmp x,$24 +106c: f0 02 beq $1070 +106e: b0 19 bcs $1089 +1070: c4 23 mov $23,a +1072: dd mov a,y +1073: 8d 00 mov y,#$00 +1075: 9e div ya,x +1076: c4 25 mov $25,a +1078: fd mov y,a +1079: 7d mov a,x +107a: cf mul ya +107b: c4 26 mov $26,a +107d: e4 24 mov a,$24 +107f: 80 setc +1080: a4 26 sbc a,$26 +1082: fd mov y,a +1083: e4 23 mov a,$23 +1085: 9e div ya,x +1086: f8 25 mov x,$25 +1088: 6f ret + +1089: 9e div ya,x +108a: cd 00 mov x,#$00 +108c: 6f ret + +108d: f5 7f 02 mov a,$027f+x +1090: 8d 04 mov y,#$04 +1092: cf mul ya +1093: 7a 0b addw ya,$0b +1095: da 03 movw $03,ya +1097: 8d 01 mov y,#$01 +1099: f7 03 mov a,($03)+y +109b: c4 2a mov $2a,a +109d: dc dec y +109e: f7 03 mov a,($03)+y +10a0: 80 setc +10a1: a8 03 sbc a,#$03 +10a3: c4 29 mov $29,a +10a5: b8 00 2a sbc $2a,#$00 +10a8: f7 29 mov a,($29)+y +10aa: c4 49 mov $49,a +10ac: fc inc y +10ad: f7 29 mov a,($29)+y +10af: c4 4a mov $4a,a +10b1: fc inc y +10b2: f7 29 mov a,($29)+y +10b4: c4 4b mov $4b,a +10b6: 6f ret + +10b7: ad 04 cmp y,#$04 +10b9: 90 06 bcc $10c1 +10bb: d0 0a bne $10c7 +10bd: 68 b0 cmp a,#$b0 +10bf: b0 06 bcs $10c7 +10c1: 8f ff 4c mov $4c,#$ff +10c4: 5f dd 10 jmp $10dd + +10c7: ad 80 cmp y,#$80 +10c9: 90 0f bcc $10da +10cb: 8f 00 4c mov $4c,#$00 +10ce: 60 clrc ; convert note to pitch from table +10cf: 88 20 adc a,#$20 +10d1: 5d mov x,a +10d2: dd mov a,y +10d3: 88 df adc a,#$df +10d5: fd mov y,a +10d6: 7d mov a,x +10d7: 5f dd 10 jmp $10dd + +10da: 8f 04 4c mov $4c,#$04 +10dd: cd f0 mov x,#$f0 +10df: 9e div ya,x +10e0: 78 ff 4c cmp $4c,#$ff +10e3: d0 02 bne $10e7 +10e5: c4 4c mov $4c,a +10e7: f6 02 11 mov a,$1102+y +10ea: c4 27 mov $27,a +10ec: f6 f2 11 mov a,$11f2+y +10ef: c4 28 mov $28,a +10f1: e8 04 mov a,#$04 +10f3: 80 setc +10f4: a4 4c sbc a,$4c +10f6: f0 07 beq $10ff +10f8: fd mov y,a +10f9: 4b 28 lsr $28 +10fb: 6b 27 ror $27 +10fd: fe fa dbnz y,$10f9 +10ff: ba 27 movw ya,$27 +1101: 6f ret + +; pitch table (low byte) +1102: db $00,$18,$2f,$47,$5f,$77,$8f,$a7,$bf,$d8,$f0,$08,$21,$39,$52,$6b,$83,$9c,$b5,$ce,$e7,$00,$19,$33,$4c,$65,$7f,$98,$b2,$cc,$e5,$ff,$19,$33,$4d,$67,$82,$9c,$b6,$d1,$eb,$06,$20,$3b,$56,$71,$8c,$a7,$c2,$dd,$f9,$14,$2f,$4b,$67,$82,$9e,$ba,$d6,$f2,$0e,$2a,$46,$63,$7f,$9c,$b8,$d5,$f2,$0f,$2b,$48,$66,$83,$a0,$bd,$db,$f8,$16,$34,$51,$6f,$8d,$ab,$c9,$e7,$06,$24,$43,$61,$80,$9e,$bd,$dc,$fb,$1a,$39,$59,$78,$97,$b7,$d7,$f6,$16,$36,$56,$76,$96,$b7,$d7,$f7,$18,$39,$59,$7a,$9b,$bc,$dd,$ff,$20,$41,$63,$84,$a6,$c8,$ea,$0c,$2e,$50,$72,$95,$b7,$da,$fc,$1f,$42,$65,$88,$ab,$cf,$f2,$16,$39,$5d,$81,$a5,$c9,$ed,$11,$35,$5a,$7e,$a3,$c8,$ed,$12,$37,$5c,$81,$a6,$cc,$f2,$17,$3d,$63,$89,$af,$d6,$fc,$22,$49,$70,$97,$be,$e5,$0c,$33,$5a,$82,$aa,$d1,$f9,$21,$49,$71,$9a,$c2,$eb,$13,$3c,$65,$8e,$b7,$e0,$0a,$33,$5d,$87,$b0,$da,$04,$2f,$59,$84,$ae,$d9,$04,$2f,$5a,$85,$b0,$dc,$07,$33,$5f,$8b,$b7,$e3,$0f,$3c,$68,$95,$c2,$ef,$1c,$49,$77,$a4,$d2,$00,$2e,$5c,$8a,$b8,$e7,$15,$44,$73,$a2,$d1 + +; pitch table (high byte) +11f2: db $20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$22,$23,$23,$23,$23,$23,$23,$23,$23,$23,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$25,$25,$25,$25,$25,$25,$25,$25,$25,$26,$26,$26,$26,$26,$26,$26,$26,$26,$27,$27,$27,$27,$27,$27,$27,$27,$27,$28,$28,$28,$28,$28,$28,$28,$28,$29,$29,$29,$29,$29,$29,$29,$29,$29,$2a,$2a,$2a,$2a,$2a,$2a,$2a,$2a,$2b,$2b,$2b,$2b,$2b,$2b,$2b,$2b,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2d,$2d,$2d,$2d,$2d,$2d,$2d,$2e,$2e,$2e,$2e,$2e,$2e,$2e,$2e,$2f,$2f,$2f,$2f,$2f,$2f,$2f,$30,$30,$30,$30,$30,$30,$30,$31,$31,$31,$31,$31,$31,$31,$32,$32,$32,$32,$32,$32,$32,$33,$33,$33,$33,$33,$33,$33,$34,$34,$34,$34,$34,$34,$35,$35,$35,$35,$35,$35,$35,$36,$36,$36,$36,$36,$36,$37,$37,$37,$37,$37,$37,$38,$38,$38,$38,$38,$38,$39,$39,$39,$39,$39,$39,$3a,$3a,$3a,$3a,$3a,$3a,$3b,$3b,$3b,$3b,$3b,$3b,$3c,$3c,$3c,$3c,$3c,$3c,$3d,$3d,$3d,$3d,$3d,$3e,$3e,$3e,$3e,$3e,$3e,$3f,$3f,$3f,$3f,$3f + +; note interval frequencies (low byte) +12e2: db $30,$20,$ac,$10,$24,$38,$4c,$60,$74,$88,$9c,$b0,$c4,$d8,$ec,$00,$14,$28,$3c,$50,$64,$78,$8c,$a0,$b4,$c8,$dc,$f0,$54,$e0,$d0,$c0 + +; note interval frequencies (high byte) +1302: db $fd,$fe,$fe,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$02,$03 + +1322: e4 5c mov a,$5c +1324: d0 0f bne $1335 +1326: e5 4f 05 mov a,$054f +1329: f0 22 beq $134d +132b: e8 00 mov a,#$00 +132d: c5 4f 05 mov $054f,a +1330: 3f 1a 17 call $171a +1333: 2f ed bra $1322 +1335: e4 5b mov a,$5b +1337: 9c dec a +1338: c4 5d mov $5d,a +133a: 1c asl a +133b: c4 5e mov $5e,a +133d: f8 5d mov x,$5d +133f: f4 61 mov a,$61+x +1341: 5d mov x,a +1342: 1f a8 17 jmp ($17a8+x) + +1345: 8b 5e dec $5e +1347: 8b 5e dec $5e +1349: 8b 5d dec $5d +134b: 10 f0 bpl $133d +134d: 6f ret + +134e: f8 5d mov x,$5d +1350: 9b 9b dec $9b+x +1352: d0 f1 bne $1345 +1354: f5 60 05 mov a,$0560+x +1357: d4 9b mov $9b+x,a +1359: 9b a3 dec $a3+x +135b: d0 e8 bne $1345 +135d: f4 61 mov a,$61+x +135f: 68 02 cmp a,#$02 +1361: d0 07 bne $136a +1363: e8 06 mov a,#$06 +1365: d4 61 mov $61+x,a +1367: 5f 7b 13 jmp $137b + +136a: e8 08 mov a,#$08 +136c: d4 61 mov $61+x,a +136e: 5f 69 15 jmp $1569 + +1371: 3f d0 14 call $14d0 +1374: d4 ce mov $ce+x,a +1376: 3f d0 14 call $14d0 +1379: d4 cf mov $cf+x,a +137b: 3f d0 14 call $14d0 +137e: fd mov y,a ; get the current note/command +137f: 28 20 and a,#$20 +1381: c4 5f mov $5f,a +1383: dd mov a,y +1384: 28 40 and a,#$40 +1386: c4 60 mov $60,a +1388: f8 5d mov x,$5d +138a: d5 88 05 mov $0588+x,a +138d: ad 80 cmp y,#$80 ; is it a note? +138f: 90 3d bcc $13ce +1391: ad f0 cmp y,#$f0 ; is it a special meaning flag? +1393: 90 08 bcc $139d +1395: dd mov a,y ; then it must be a command... +1396: 28 0f and a,#$0f ; get command number +1398: 1c asl a +1399: 5d mov x,a +139a: 1f 4c 15 jmp ($154c+x) ; jump to command number position + +139d: f5 90 05 mov a,$0590+x ; pitch bend +13a0: f0 4c beq $13ee +13a2: dd mov a,y +13a3: 28 08 and a,#$08 +13a5: 0d push psw +13a6: dd mov a,y +13a7: 28 07 and a,#$07 +13a9: bc inc a +13aa: 1c asl a +13ab: f8 5e mov x,$5e +13ad: 8e pop psw +13ae: f0 0d beq $13bd +13b0: 60 clrc +13b1: 94 de adc a,$de+x +13b3: d4 de mov $de+x,a +13b5: f4 df mov a,$df+x +13b7: 88 00 adc a,#$00 +13b9: d4 df mov $df+x,a +13bb: 2f 31 bra $13ee +13bd: c4 27 mov $27,a +13bf: f4 de mov a,$de+x +13c1: 80 setc +13c2: a4 27 sbc a,$27 +13c4: d4 de mov $de+x,a +13c6: f4 df mov a,$df+x +13c8: a8 00 sbc a,#$00 +13ca: d4 df mov $df+x,a +13cc: 2f 20 bra $13ee +13ce: f5 90 05 mov a,$0590+x ; play the note (check first) +13d1: f0 1b beq $13ee +13d3: dd mov a,y +13d4: 28 1f and a,#$1f +13d6: fd mov y,a +13d7: f8 5e mov x,$5e +13d9: f4 ce mov a,$ce+x +13db: 60 clrc +13dc: 96 e2 12 adc a,$12e2+y ; get the relative frequency +13df: d4 ce mov $ce+x,a +13e1: f4 cf mov a,$cf+x +13e3: 96 02 13 adc a,$1302+y +13e6: d4 cf mov $cf+x,a +13e8: e8 00 mov a,#$00 +13ea: d4 de mov $de+x,a +13ec: d4 df mov $df+x,a +13ee: 3f d0 14 call $14d0 +13f1: 68 00 cmp a,#$00 +13f3: d0 12 bne $1407 +13f5: f8 5d mov x,$5d +13f7: f4 61 mov a,$61+x +13f9: 68 08 cmp a,#$08 +13fb: d0 07 bne $1404 +13fd: e8 0a mov a,#$0a +13ff: d4 61 mov $61+x,a +1401: 5f a7 15 jmp $15a7 + +1404: 5f 3d 13 jmp $133d + +1407: f8 5d mov x,$5d +1409: d4 a3 mov $a3+x,a +140b: fd mov y,a +140c: f5 60 05 mov a,$0560+x +140f: d4 9b mov $9b+x,a +1411: cf mul ya +1412: da 35 movw $35,ya +1414: 3f 28 15 call $1528 +1417: f5 98 05 mov a,$0598+x +141a: 30 18 bmi $1434 +141c: 5d mov x,a +141d: f5 06 02 mov a,$0206+x +1420: f0 0a beq $142c +1422: e8 40 mov a,#$40 +1424: 75 27 02 cmp a,$0227+x +1427: b0 05 bcs $142e +1429: 5f 45 13 jmp $1345 + +142c: e8 40 mov a,#$40 +142e: d5 27 02 mov $0227+x,a +1431: 5f 55 14 jmp $1455 + +1434: f5 a0 05 mov a,$05a0+x +1437: c4 3d mov $3d,a +1439: f5 a8 05 mov a,$05a8+x +143c: 30 04 bmi $1442 +143e: eb 5f mov y,$5f +1440: f0 05 beq $1447 +1442: 9c dec a +1443: 10 02 bpl $1447 +1445: e8 07 mov a,#$07 +1447: 5d mov x,a +1448: f5 fa 07 mov a,$07fa+x +144b: c4 3f mov $3f,a +144d: 8f 40 3e mov $3e,#$40 +1450: 3f 43 0c call $0c43 +1453: 30 78 bmi $14cd +1455: e8 01 mov a,#$01 +1457: d5 06 02 mov $0206+x,a +145a: d8 ab mov $ab,x +145c: 7d mov a,x +145d: f8 5d mov x,$5d +145f: d5 a8 05 mov $05a8+x,a +1462: f5 90 05 mov a,$0590+x +1465: d0 0c bne $1473 +1467: f8 5e mov x,$5e +1469: f4 ce mov a,$ce+x +146b: c4 37 mov $37,a +146d: f4 cf mov a,$cf+x +146f: c4 38 mov $38,a +1471: 2f 25 bra $1498 +1473: f8 5e mov x,$5e +1475: f4 ce mov a,$ce+x +1477: 60 clrc +1478: 94 be adc a,$be+x +147a: fd mov y,a +147b: f4 cf mov a,$cf+x +147d: 94 bf adc a,$bf+x +147f: c4 38 mov $38,a +1481: dd mov a,y +1482: 60 clrc +1483: 94 ae adc a,$ae+x +1485: fd mov y,a +1486: e4 38 mov a,$38 +1488: 94 af adc a,$af+x +148a: c4 38 mov $38,a +148c: dd mov a,y +148d: 60 clrc +148e: 94 de adc a,$de+x +1490: c4 37 mov $37,a +1492: e4 38 mov a,$38 +1494: 94 df adc a,$df+x +1496: c4 38 mov $38,a +1498: eb 5f mov y,$5f +149a: d0 0f bne $14ab +149c: 0b ab asl $ab +149e: f8 ab mov x,$ab +14a0: d5 48 02 mov $0248+x,a +14a3: e4 37 mov a,$37 +14a5: d5 47 02 mov $0247+x,a +14a8: 5f 45 13 jmp $1345 + +14ab: f8 5d mov x,$5d +14ad: f5 68 05 mov a,$0568+x +14b0: 60 clrc +14b1: 95 70 05 adc a,$0570+x +14b4: 10 02 bpl $14b8 +14b6: e8 7f mov a,#$7f +14b8: c4 ac mov $ac,a +14ba: e4 60 mov a,$60 +14bc: f0 02 beq $14c0 +14be: e8 08 mov a,#$08 +14c0: 04 5d or a,$5d +14c2: 5d mov x,a +14c3: f5 78 05 mov a,$0578+x +14c6: f8 ab mov x,$ab +14c8: eb ac mov y,$ac +14ca: 3f 6d 0c call $0c6d +14cd: 5f 45 13 jmp $1345 + +; calculate delta expression +14d0: f8 5e mov x,$5e +14d2: e7 8b mov a,($8b+x) +14d4: bb 8b inc $8b+x +14d6: d0 02 bne $14da +14d8: bb 8c inc $8c+x +14da: 6f ret + +; vcmd f0 - end of sequence +14db: f8 5d mov x,$5d +14dd: e8 0a mov a,#$0a +14df: d4 61 mov $61+x,a +14e1: 5f a7 15 jmp $15a7 + +; vcmd f1 - melody delta expression +14e4: 3f d0 14 call $14d0 +14e7: c4 ad mov $ad,a +14e9: f8 5d mov x,$5d +14eb: f5 70 05 mov a,$0570+x +14ee: 3f 38 15 call $1538 +14f1: d5 70 05 mov $0570+x,a +14f4: 5f 7b 13 jmp $137b + +; vcmd f2 - melody absolute expression +14f7: 3f d0 14 call $14d0 +14fa: f8 5d mov x,$5d +14fc: d5 70 05 mov $0570+x,a +14ff: 5f 7b 13 jmp $137b + +; vcmd f3 - mute +1502: f8 5d mov x,$5d +1504: f5 a8 05 mov a,$05a8+x +1507: 30 0d bmi $1516 +1509: fd mov y,a +150a: f6 06 02 mov a,$0206+y +150d: 68 80 cmp a,#$80 +150f: f0 05 beq $1516 +1511: e8 00 mov a,#$00 +1513: d6 67 02 mov $0267+y,a +1516: 3f d0 14 call $14d0 +1519: f8 5d mov x,$5d +151b: d4 a3 mov $a3+x,a +151d: f5 60 05 mov a,$0560+x +1520: d4 9b mov $9b+x,a +1522: 3f 28 15 call $1528 +1525: 5f 45 13 jmp $1345 + +; vcmd f4 - rest +1528: f4 61 mov a,$61+x +152a: 68 06 cmp a,#$06 +152c: d0 05 bne $1533 +152e: e8 02 mov a,#$02 +1530: 5f 35 15 jmp $1535 + +1533: e8 04 mov a,#$04 +1535: d4 61 mov $61+x,a +1537: 6f ret + +; add the delta to the total +1538: 78 80 ad cmp $ad,#$80 +153b: 90 08 bcc $1545 +153d: 60 clrc +153e: 84 ad adc a,$ad +1540: 10 09 bpl $154b +1542: e8 00 mov a,#$00 +1544: 6f ret + +1545: 84 ad adc a,$ad +1547: 10 02 bpl $154b +1549: e8 7f mov a,#$7f +154b: 6f ret + +; vcmd table (f0-f4) +154c: dw $14db ; f0 - end of sequence +154e: dw $14e4 ; f1 - melody delta expression +1550: dw $14f7 ; f2 - melody absolute expression +1552: dw $1502 ; f3 - mute +1554: dw $1516 ; f4 - rest + +1556: 3f d0 14 call $14d0 +1559: f8 5d mov x,$5d +155b: d5 b0 05 mov $05b0+x,a +155e: e8 00 mov a,#$00 +1560: d4 de mov $de+x,a +1562: d4 df mov $df+x,a +1564: f8 5d mov x,$5d +1566: d5 88 05 mov $0588+x,a +1569: f8 5d mov x,$5d +156b: f5 90 05 mov a,$0590+x +156e: f0 19 beq $1589 +1570: f5 b0 05 mov a,$05b0+x +1573: 8d 12 mov y,#$12 +1575: 3f b2 0d call $0db2 +1578: 3f 96 15 call $1596 +157b: 28 0e and a,#$0e +157d: fd mov y,a +157e: f8 5e mov x,$5e +1580: f7 10 mov a,($10)+y +1582: d4 ce mov $ce+x,a +1584: fc inc y +1585: f7 10 mov a,($10)+y +1587: d4 cf mov $cf+x,a +1589: 8f 20 5f mov $5f,#$20 +158c: f8 5d mov x,$5d +158e: f5 88 05 mov a,$0588+x +1591: c4 60 mov $60,a +1593: 5f ee 13 jmp $13ee + +1596: e4 00 mov a,$00 ; fetch a random number (RNG) +1598: 1c asl a +1599: 44 00 eor a,$00 +159b: 1c asl a +159c: 1c asl a +159d: 1c asl a +159e: 2b 02 rol $02 +15a0: 2b 01 rol $01 +15a2: 2b 00 rol $00 +15a4: e4 02 mov a,$02 +15a6: 6f ret + +15a7: 3f ae 15 call $15ae ; get current pattern command +15aa: 5d mov x,a +15ab: 1f 7f 16 jmp ($167f+x) + +15ae: f8 5e mov x,$5e ; get 1 byte +15b0: e7 7b mov a,($7b+x) +15b2: bb 7b inc $7b+x +15b4: d0 02 bne $15b8 +15b6: bb 7c inc $7c+x +15b8: 6f ret + +; pattern command 00/16 - end of pattern +15b9: f8 5d mov x,$5d +15bb: e8 0c mov a,#$0c +15bd: d4 61 mov $61+x,a +15bf: 5f 97 16 jmp $1697 + +; pattern command 14 +15c2: 8d 00 mov y,#$00 +15c4: f8 5e mov x,$5e +15c6: 3f b0 15 call $15b0 +15c9: ad 10 cmp y,#$10 +15cb: b0 04 bcs $15d1 +15cd: d6 3f 05 mov $053f+y,a +15d0: fc inc y +15d1: 3f b0 15 call $15b0 +15d4: 68 14 cmp a,#$14 +15d6: f0 ee beq $15c6 +15d8: 68 16 cmp a,#$16 +15da: d0 dd bne $15b9 +15dc: dd mov a,y +15dd: 5d mov x,a +15de: 3f 96 15 call $1596 +15e1: 8d 00 mov y,#$00 +15e3: 9e div ya,x +15e4: f6 3f 05 mov a,$053f+y +15e7: 8d 10 mov y,#$10 +15e9: 3f 72 16 call $1672 +15ec: 2f 05 bra $15f3 + +; pattern command 02 - play melody +15ee: 8d 10 mov y,#$10 +15f0: 3f 6d 16 call $166d +15f3: e8 06 mov a,#$06 +15f5: d4 61 mov $61+x,a +15f7: 5f 71 13 jmp $1371 + +; pattern command 04 +15fa: 8d 14 mov y,#$14 ; get 1 byte +15fc: 3f 6d 16 call $166d +15ff: e8 08 mov a,#$08 +1601: d4 61 mov $61+x,a +1603: 5f 56 15 jmp $1556 + +; pattern command 06 - set channel tuning +1606: 3f ae 15 call $15ae ; get 1 byte +1609: eb 5e mov y,$5e +160b: d6 be 00 mov $00be+y,a +160e: 3f b0 15 call $15b0 +1611: d6 bf 00 mov $00bf+y,a +1614: 5f a7 15 jmp $15a7 + +; pattern command 08 - set instrument +1617: 3f ae 15 call $15ae ; get 1 byte +161a: f8 5d mov x,$5d +161c: d5 78 05 mov $0578+x,a +161f: 5f a7 15 jmp $15a7 + +; pattern command 0a - set pitch envelope +1622: 3f ae 15 call $15ae ; get 1 byte +1625: f8 5d mov x,$5d +1627: d5 80 05 mov $0580+x,a +162a: 5f a7 15 jmp $15a7 + +; pattern command 10 - set channel gain (relative?) +162d: 3f ae 15 call $15ae ; get 1 byte +1630: c4 ad mov $ad,a +1632: f8 5d mov x,$5d +1634: f5 68 05 mov a,$0568+x +1637: 3f 38 15 call $1538 +163a: d5 68 05 mov $0568+x,a +163d: 5f a7 15 jmp $15a7 + +; pattern command 12 - set channel gain (absolute) +1640: 3f ae 15 call $15ae ; get 1 byte +1643: f8 5d mov x,$5d +1645: d5 68 05 mov $0568+x,a +1648: 5f a7 15 jmp $15a7 + +; pattern command 0c +164b: e8 ff mov a,#$ff +164d: f8 5d mov x,$5d +164f: d5 90 05 mov $0590+x,a +1652: 5f a7 15 jmp $15a7 + +; pattern command 0e - (2 bytes) +1655: 3f ae 15 call $15ae ; get 1 byte +1658: eb 5e mov y,$5e +165a: d6 ce 00 mov $00ce+y,a +165d: 3f b0 15 call $15b0 ; get another byte +1660: d6 cf 00 mov $00cf+y,a +1663: e8 00 mov a,#$00 +1665: f8 5d mov x,$5d +1667: d5 90 05 mov $0590+x,a +166a: 5f a7 15 jmp $15a7 + +; get the next byte and its corresponding phrase pointer +166d: 6d push y +166e: 3f ae 15 call $15ae +1671: ee pop y +1672: 3f b2 0d call $0db2 +1675: f8 5e mov x,$5e +1677: d4 8b mov $8b+x,a +1679: dd mov a,y +167a: d4 8c mov $8c+x,a +167c: f8 5d mov x,$5d +167e: 6f ret + +; pattern command table (00-17) +167f: dw $15b9 ; 00 - end of pattern +1681: dw $15ee ; 02 - play melody +1683: dw $15fa ; 04 +1685: dw $1606 ; 06 - set channel tuning +1687: dw $1617 ; 08 - set instrument +1689: dw $1622 ; 0a - set pitch envelope +168b: dw $164b ; 0c +168d: dw $1655 ; 0e - (2 bytes) +168f: dw $162d ; 10 - set channel gain (relative)? +1691: dw $1640 ; 12 - set channel gain (absolute) +1693: dw $15c2 ; 14 +1695: dw $15b9 ; 16 - end of pattern (same as 00) + +; melody command 00 - end of melody +1697: 3f 9e 16 call $169e +169a: 5d mov x,a +169b: 1f 0e 17 jmp ($170e+x) + +169e: f8 5e mov x,$5e +16a0: e7 6b mov a,($6b+x) +16a2: bb 6b inc $6b+x +16a4: d0 02 bne $16a8 +16a6: bb 6c inc $6c+x +16a8: 6f ret + +; melody command 02 - go to loop +16a9: f8 5d mov x,$5d +16ab: e8 00 mov a,#$00 +16ad: d4 61 mov $61+x,a +16af: 8b 5c dec $5c +16b1: 5f 45 13 jmp $1345 + +; melody command 04 +16b4: f8 5e mov x,$5e +16b6: f5 50 05 mov a,$0550+x +16b9: d4 6b mov $6b+x,a +16bb: f5 51 05 mov a,$0551+x +16be: d4 6c mov $6c+x,a +16c0: 5f 97 16 jmp $1697 + +; melody command 06 - toggle channel mute +16c3: 3f 9e 16 call $169e +16c6: f8 5d mov x,$5d +16c8: d5 60 05 mov $0560+x,a +16cb: 5f 97 16 jmp $1697 + +; melody command 08 - play phrase +16ce: 3f 9e 16 call $169e +16d1: eb 5e mov y,$5e +16d3: d6 ae 00 mov $00ae+y,a +16d6: 3f a0 16 call $16a0 +16d9: d6 af 00 mov $00af+y,a +16dc: 5f 97 16 jmp $1697 + +; melody command 0a - set channel number +16df: 3f 9e 16 call $169e +16e2: 8d 16 mov y,#$16 +16e4: 3f b2 0d call $0db2 +16e7: f8 5e mov x,$5e +16e9: d4 7b mov $7b+x,a +16eb: dd mov a,y +16ec: d4 7c mov $7c+x,a +16ee: f8 5d mov x,$5d +16f0: e8 0a mov a,#$0a +16f2: d4 61 mov $61+x,a +16f4: 5f a7 15 jmp $15a7 + +; melody command 0c +16f7: 3f 9e 16 call $169e +16fa: f8 5d mov x,$5d +16fc: d5 98 05 mov $0598+x,a +16ff: 68 ff cmp a,#$ff +1701: d0 08 bne $170b +1703: 3f 9e 16 call $169e +1706: f8 5d mov x,$5d +1708: d5 a0 05 mov $05a0+x,a +170b: 5f 97 16 jmp $1697 + +; melody command table (00-0c) +170c: dw $1697 ; 00 - end of melody +170e: dw $16a9 ; 02 - go to loop +1710: dw $16b4 ; 04 +1712: dw $16c3 ; 06 - toggle channel mute +1714: dw $16ce ; 08 - play phrase +1716: dw $16df ; 0a - set channel number +1718: dw $16f3 ; 0c + +171a: 8d 93 mov y,#$93 +171c: f9 5a mov x,$5a+y +171e: f6 b7 05 mov a,$05b7+y +1721: d6 5a 00 mov $005a+y,a +1724: 7d mov a,x +1725: d6 b7 05 mov $05b7+y,a +1728: fe f2 dbnz y,$171c +172a: 8d 69 mov y,#$69 +172c: f6 4e 05 mov a,$054e+y +172f: 5d mov x,a +1730: f6 4a 06 mov a,$064a+y +1733: d6 4e 05 mov $054e+y,a +1736: 7d mov a,x +1737: d6 4a 06 mov $064a+y,a +173a: fe f0 dbnz y,$172c +173c: 6f ret + +173d: 3f 46 17 call $1746 +1740: e8 01 mov a,#$01 +1742: c5 4f 05 mov $054f,a +1745: 6f ret + +1746: 2d push a ; start song +1747: 3f 1a 17 call $171a ; stop the current song +174a: ae pop a +174b: 8d 1a mov y,#$1a ; find the start of the song struct +174d: 3f b2 0d call $0db2 +1750: da 69 movw $69,ya +1752: 8d 00 mov y,#$00 ; get number of channels +1754: f7 69 mov a,($69)+y +1756: c4 5b mov $5b,a ; save number of channels in total and current +1758: c4 5c mov $5c,a +175a: f0 4b beq $17a7 ; if 0, then return +175c: 8f 00 5d mov $5d,#$00 +175f: 8f 00 5e mov $5e,#$00 +1762: fc inc y +1763: f7 69 mov a,($69)+y +1765: 6d push y +1766: 8d 18 mov y,#$18 +1768: 3f b2 0d call $0db2 +176b: f8 5e mov x,$5e +176d: d5 50 05 mov $0550+x,a +1770: d4 6b mov $6b+x,a +1772: dd mov a,y +1773: ee pop y +1774: d5 51 05 mov $0551+x,a +1777: d4 6c mov $6c+x,a +1779: e8 00 mov a,#$00 +177b: d4 ae mov $ae+x,a +177d: d4 af mov $af+x,a +177f: d4 be mov $be+x,a +1781: d4 bf mov $bf+x,a +1783: f8 5d mov x,$5d +1785: e8 0c mov a,#$0c +1787: d4 61 mov $61+x,a +1789: e8 ff mov a,#$ff +178b: d5 90 05 mov $0590+x,a +178e: d5 a8 05 mov $05a8+x,a +1791: e8 00 mov a,#$00 +1793: d5 68 05 mov $0568+x,a +1796: d5 70 05 mov $0570+x,a +1799: d5 88 05 mov $0588+x,a +179c: ab 5e inc $5e +179e: ab 5e inc $5e +17a0: 3d inc x +17a1: d8 5d mov $5d,x +17a3: 3e 5b cmp x,$5b +17a5: 90 bb bcc $1762 +17a7: 6f ret + +17a8: dw $1345 +17aa: dw $134e +17ac: dw $134e +17ae: dw $137b +17b0: dw $1569 +17b2: dw $15a7 +17b4: dw $1697 +17b6: dw $0b5d +17b8: dw $0bd5 +17ba: dw $174b +17bc: dw $1746 +17be: dw $173d +17c0: dw $171a +17c2: dw $0790 +17c4: dw $0b7c +17c6: dw $0b78 +17c8: dw $0b72 +17ca: dw $0b6f +17cc: dw $0b69 +17ce: dw $0b8b +17d0: dw $0b96 \ No newline at end of file diff --git a/snes/Sting/Flying Hero - Bugyuru no Daibouken ($0400).bin b/snes/Sting/Flying Hero - Bugyuru no Daibouken ($0400).bin new file mode 100644 index 00000000..6acc1abb Binary files /dev/null and b/snes/Sting/Flying Hero - Bugyuru no Daibouken ($0400).bin differ diff --git a/snes/Sting/Flying Hero - Bugyuru no Daibouken.s b/snes/Sting/Flying Hero - Bugyuru no Daibouken.s new file mode 100644 index 00000000..bb7ea246 --- /dev/null +++ b/snes/Sting/Flying Hero - Bugyuru no Daibouken.s @@ -0,0 +1,2079 @@ +0400: 20 clrp +0401: cd cf mov x,#$cf +0403: bd mov sp,x +0404: e8 00 mov a,#$00 +0406: 5d mov x,a +0407: af mov (x)+,a +0408: c8 f0 cmp x,#$f0 +040a: d0 fb bne $0407 +040c: e8 1f mov a,#$1f +040e: 8d 5d mov y,#$5d +0410: 3f 79 11 call $1179 +0413: e8 01 mov a,#$01 +0415: c5 aa 03 mov $03aa,a +0418: cd 00 mov x,#$00 +041a: f5 9e 04 mov a,$049e+x +041d: c4 f2 mov $f2,a +041f: 3d inc x +0420: f5 9e 04 mov a,$049e+x +0423: c4 f3 mov $f3,a +0425: 3d inc x +0426: f5 9e 04 mov a,$049e+x +0429: 68 ff cmp a,#$ff +042b: d0 f0 bne $041d +042d: 8f 00 01 mov $01,#$00 +0430: e8 ff mov a,#$ff +0432: 8d 5c mov y,#$5c +0434: 3f 79 11 call $1179 +0437: 6d push y +0438: 3f 71 11 call $1171 +043b: ee pop y +043c: 3f 77 11 call $1177 +043f: e8 60 mov a,#$60 +0441: 8d 0c mov y,#$0c +0443: 3f 79 11 call $1179 +0446: 8d 1c mov y,#$1c +0448: 3f 79 11 call $1179 +044b: e8 f0 mov a,#$f0 +044d: c4 f1 mov $f1,a +044f: e8 20 mov a,#$20 +0451: c4 fa mov $fa,a +0453: 8f 6a 04 mov $04,#$6a +0456: e8 01 mov a,#$01 +0458: c4 f1 mov $f1,a +045a: e4 01 mov a,$01 +045c: 28 ff and a,#$ff +045e: d0 07 bne $0467 +0460: 3f c8 12 call $12c8 +0463: 68 00 cmp a,#$00 +0465: f0 f3 beq $045a +0467: eb fd mov y,$fd +0469: f0 fc beq $0467 +046b: e4 04 mov a,$04 +046d: 60 clrc +046e: 84 05 adc a,$05 +0470: c4 05 mov $05,a +0472: 90 e6 bcc $045a +0474: 3f b1 04 call $04b1 +0477: 3f 31 05 call $0531 +047a: e4 01 mov a,$01 +047c: 28 ff and a,#$ff +047e: f0 98 beq $0418 +0480: 3f db 06 call $06db +0483: 3f 7f 08 call $087f +0486: 3f 1a 07 call $071a +0489: 3f ad 07 call $07ad +048c: 3f fe 08 call $08fe +048f: 3f 62 09 call $0962 +0492: 3f 7a 0f call $0f7a +0495: e4 01 mov a,$01 +0497: 28 ff and a,#$ff +0499: d0 bf bne $045a +049b: 5f 18 04 jmp $0418 + +049e: 4d push x +049f: 00 nop +04a0: 0d push psw +04a1: 00 nop +04a2: 0c 00 1c asl $1c00 +04a5: 00 nop +04a6: 2c 00 3c rol $3c00 +04a9: 00 nop +04aa: 6c 20 2d ror $2d20 +04ad: 00 nop +04ae: 3d inc x +04af: 00 nop +04b0: ff stop +04b1: cd 00 mov x,#$00 +04b3: 8f 0a 02 mov $02,#$0a +04b6: f4 0f mov a,$0f+x +04b8: 28 01 and a,#$01 +04ba: d0 06 bne $04c2 +04bc: 3d inc x +04bd: 8b 02 dec $02 +04bf: d0 f5 bne $04b6 +04c1: 6f ret + +04c2: f4 4b mov a,$4b+x +04c4: 14 55 or a,$55+x +04c6: f0 f4 beq $04bc +04c8: f4 4b mov a,$4b+x +04ca: c4 0a mov $0a,a +04cc: f4 55 mov a,$55+x +04ce: c4 0b mov $0b,a +04d0: 1a 0a decw $0a +04d2: e4 0a mov a,$0a +04d4: d4 4b mov $4b+x,a +04d6: e4 0b mov a,$0b +04d8: d4 55 mov $55+x,a +04da: 14 4b or a,$4b+x +04dc: d0 0e bne $04ec +04de: e8 00 mov a,#$00 +04e0: d5 22 03 mov $0322+x,a +04e3: d5 4a 03 mov $034a+x,a +04e6: d5 5e 03 mov $035e+x,a +04e9: d5 54 03 mov $0354+x,a +04ec: f4 73 mov a,$73+x +04ee: 14 7d or a,$7d+x +04f0: f0 ca beq $04bc +04f2: f4 73 mov a,$73+x +04f4: c4 0a mov $0a,a +04f6: f4 7d mov a,$7d+x +04f8: c4 0b mov $0b,a +04fa: 1a 0a decw $0a +04fc: e4 0a mov a,$0a +04fe: d4 73 mov $73+x,a +0500: e4 0b mov a,$0b +0502: d4 7d mov $7d+x,a +0504: 14 73 or a,$73+x +0506: d0 b4 bne $04bc +0508: f4 0f mov a,$0f+x +050a: 28 40 and a,#$40 +050c: f0 08 beq $0516 +050e: e8 08 mov a,#$08 +0510: 14 0f or a,$0f+x +0512: d4 0f mov $0f+x,a +0514: 2f a6 bra $04bc +0516: 3f 21 11 call $1121 +0519: e4 03 mov a,$03 +051b: 8d 5c mov y,#$5c +051d: 3f 79 11 call $1179 +0520: 6d push y +0521: 3f 71 11 call $1171 +0524: ee pop y +0525: 3f 77 11 call $1177 +0528: f4 0f mov a,$0f+x +052a: 28 fb and a,#$fb +052c: d4 0f mov $0f+x,a +052e: 5f bc 04 jmp $04bc + +0531: e4 f4 mov a,$f4 +0533: 3f c8 12 call $12c8 +0536: 68 00 cmp a,#$00 +0538: d0 03 bne $053d +053a: c4 f7 mov $f7,a +053c: 6f ret + +053d: 8d 31 mov y,#$31 +053f: cb f1 mov $f1,y +0541: c4 07 mov $07,a +0543: 68 f0 cmp a,#$f0 +0545: 90 17 bcc $055e +0547: cb f7 mov $f7,y +0549: 28 0f and a,#$0f +054b: 1c asl a +054c: d8 06 mov $06,x +054e: 5d mov x,a +054f: f5 92 06 mov a,$0692+x +0552: c4 0a mov $0a,a +0554: f5 93 06 mov a,$0693+x +0557: c4 0b mov $0b,a +0559: cd 00 mov x,#$00 +055b: 1f 0a 00 jmp ($000a+x) + +055e: fc inc y +055f: cb f7 mov $f7,y +0561: e4 07 mov a,$07 +0563: 68 10 cmp a,#$10 +0565: 90 22 bcc $0589 +0567: 2d push a +0568: e5 00 f8 mov a,$f800 +056b: c4 0c mov $0c,a +056d: e5 01 f8 mov a,$f801 +0570: c4 0d mov $0d,a +0572: ae pop a +0573: 80 setc +0574: a8 10 sbc a,#$10 +0576: 1c asl a +0577: fd mov y,a +0578: f7 0c mov a,($0c)+y +057a: c4 0a mov $0a,a +057c: 3a 0c incw $0c +057e: f7 0c mov a,($0c)+y +0580: c4 0b mov $0b,a +0582: e8 01 mov a,#$01 +0584: c5 ad 03 mov $03ad,a +0587: 2f 2d bra $05b6 +0589: 8d 00 mov y,#$00 +058b: cc ad 03 mov $03ad,y +058e: cc a7 03 mov $03a7,y +0591: cc a8 03 mov $03a8,y +0594: cc a9 03 mov $03a9,y +0597: cc a5 03 mov $03a5,y +059a: fc inc y +059b: c5 a4 03 mov $03a4,a +059e: 2d push a +059f: e5 00 e8 mov a,$e800 ; song pointer +05a2: c4 0c mov $0c,a +05a4: e5 01 e8 mov a,$e801 +05a7: c4 0d mov $0d,a +05a9: ae pop a +05aa: 1c asl a +05ab: fd mov y,a +05ac: f7 0c mov a,($0c)+y +05ae: c4 0a mov $0a,a +05b0: 3a 0c incw $0c +05b2: f7 0c mov a,($0c)+y +05b4: c4 0b mov $0b,a +05b6: 8d 00 mov y,#$00 +05b8: f7 0a mov a,($0a)+y +05ba: 68 ff cmp a,#$ff +05bc: d0 06 bne $05c4 +05be: e8 00 mov a,#$00 +05c0: c5 ad 03 mov $03ad,a +05c3: 6f ret + +05c4: c4 02 mov $02,a +05c6: 68 08 cmp a,#$08 +05c8: 90 04 bcc $05ce +05ca: 9c dec a +05cb: 9c dec a +05cc: 2f 18 bra $05e6 +05ce: 68 06 cmp a,#$06 +05d0: 90 14 bcc $05e6 +05d2: 2d push a +05d3: bc inc a +05d4: bc inc a +05d5: 5d mov x,a +05d6: f4 0f mov a,$0f+x +05d8: 28 01 and a,#$01 +05da: ae pop a +05db: f0 09 beq $05e6 +05dd: 3a 0a incw $0a +05df: 3a 0a incw $0a +05e1: 3a 0a incw $0a +05e3: 5f 83 06 jmp $0683 + +05e6: 8f 01 03 mov $03,#$01 +05e9: fd mov y,a +05ea: f0 05 beq $05f1 +05ec: 0b 03 asl $03 +05ee: 9c dec a +05ef: d0 fb bne $05ec +05f1: e4 03 mov a,$03 +05f3: 2d push a +05f4: 8d 5c mov y,#$5c +05f6: 3f 79 11 call $1179 +05f9: 6d push y +05fa: 3f 71 11 call $1171 +05fd: ee pop y +05fe: 3f 77 11 call $1177 +0601: ae pop a +0602: 04 01 or a,$01 +0604: c4 01 mov $01,a +0606: e4 02 mov a,$02 +0608: 60 clrc +0609: 88 0f adc a,#$0f +060b: 5d mov x,a +060c: 3f 86 06 call $0686 +060f: 7d mov a,x +0610: 60 clrc +0611: 88 32 adc a,#$32 +0613: 5d mov x,a +0614: 3f 86 06 call $0686 +0617: 7d mov a,x +0618: 60 clrc +0619: 88 46 adc a,#$46 +061b: 5d mov x,a +061c: 3f 86 06 call $0686 +061f: e8 fa mov a,#$fa +0621: c4 0c mov $0c,a +0623: e8 02 mov a,#$02 +0625: c4 0d mov $0d,a +0627: e4 02 mov a,$02 +0629: 8f 04 08 mov $08,#$04 +062c: 2d push a +062d: 8d 00 mov y,#$00 +062f: 60 clrc +0630: 7a 0c addw ya,$0c +0632: c4 0c mov $0c,a +0634: cb 0d mov $0d,y +0636: 8d 00 mov y,#$00 +0638: dd mov a,y +0639: d7 0c mov ($0c)+y,a +063b: e8 0a mov a,#$0a +063d: 60 clrc +063e: 7a 0c addw ya,$0c +0640: c4 0c mov $0c,a +0642: cb 0d mov $0d,y +0644: 8d 00 mov y,#$00 +0646: dd mov a,y +0647: d7 0c mov ($0c)+y,a +0649: 8b 08 dec $08 +064b: d0 ee bne $063b +064d: ae pop a +064e: 60 clrc +064f: 88 d7 adc a,#$d7 +0651: 5d mov x,a +0652: e4 02 mov a,$02 +0654: 60 clrc +0655: 88 00 adc a,#$00 +0657: c6 mov (x),a +0658: 7d mov a,x +0659: 60 clrc +065a: 88 0a adc a,#$0a +065c: 5d mov x,a +065d: e8 02 mov a,#$02 +065f: c6 mov (x),a +0660: f8 02 mov x,$02 +0662: e5 ad 03 mov a,$03ad +0665: f0 06 beq $066d +0667: f4 19 mov a,$19+x +0669: 08 01 or a,#$01 +066b: d4 19 mov $19+x,a +066d: 3a 0a incw $0a +066f: 8d 00 mov y,#$00 +0671: f7 0a mov a,($0a)+y +0673: d4 23 mov $23+x,a +0675: 3a 0a incw $0a +0677: f7 0a mov a,($0a)+y +0679: d4 2d mov $2d+x,a +067b: 3a 0a incw $0a +067d: f4 0f mov a,$0f+x +067f: 08 01 or a,#$01 +0681: d4 0f mov $0f+x,a +0683: 5f b6 05 jmp $05b6 + +0686: e8 00 mov a,#$00 +0688: c6 mov (x),a +0689: 7d mov a,x +068a: 60 clrc +068b: 88 0a adc a,#$0a +068d: 5d mov x,a +068e: e8 00 mov a,#$00 +0690: c6 mov (x),a +0691: 6f ret + +0692: dw $06b2 +0694: dw $06b2 +0696: dw $06b2 +0698: dw $06b2 +069a: dw $06b2 +069c: dw $06b2 +069e: dw $06b2 +06a0: dw $06b2 +06a2: dw $06b2 +06a4: dw $06b5 +06a4: dw $06c8 +06a6: dw $0708 +06a8: dw $0711 +06aa: dw $06fa +06ac: dw $0708 +06ae: dw $06d5 +06b0: dw $1090 + +06b2: 5f 5e 05 jmp $055e +06b5: e5 a7 03 mov a,$03a7 +06b8: f0 01 beq $06bb +06ba: 6f ret + +06bb: e8 15 mov a,#$15 +06bd: 8d 0c mov y,#$0c +06bf: 3f 79 11 call $1179 +06c2: 8d 1c mov y,#$1c +06c4: 3f 79 11 call $1179 +06c7: 6f ret + +06c8: e8 60 mov a,#$60 +06ca: 8d 0c mov y,#$0c +06cc: 3f 79 11 call $1179 +06cf: 8d 1c mov y,#$1c +06d1: 3f 79 11 call $1179 +06d4: 6f ret + +06d5: e8 01 mov a,#$01 +06d7: c5 a5 03 mov $03a5,a +06da: 6f ret + +06db: cd 06 mov x,#$06 +06dd: f4 0f mov a,$0f+x +06df: 28 01 and a,#$01 +06e1: f0 11 beq $06f4 +06e3: 4d push x +06e4: 3d inc x +06e5: 3d inc x +06e6: f4 0f mov a,$0f+x +06e8: 28 01 and a,#$01 +06ea: f0 07 beq $06f3 +06ec: e8 00 mov a,#$00 +06ee: ce pop x +06ef: d4 0f mov $0f+x,a +06f1: 2f 01 bra $06f4 +06f3: ce pop x +06f4: 3d inc x +06f5: c8 08 cmp x,#$08 +06f7: d0 e4 bne $06dd +06f9: 6f ret + +06fa: e8 01 mov a,#$01 +06fc: c5 a7 03 mov $03a7,a +06ff: c5 a8 03 mov $03a8,a +0702: e8 03 mov a,#$03 +0704: c5 a9 03 mov $03a9,a +0707: 6f ret + +0708: e5 aa 03 mov a,$03aa +070b: e8 81 mov a,#$81 +070d: c5 aa 03 mov $03aa,a +0710: 6f ret + +0711: e5 aa 03 mov a,$03aa +0714: e8 80 mov a,#$80 +0716: c5 aa 03 mov $03aa,a +0719: 6f ret + +071a: cd 00 mov x,#$00 +071c: 8f 0a 02 mov $02,#$0a +071f: f4 0f mov a,$0f+x +0721: 28 01 and a,#$01 +0723: f0 03 beq $0728 +0725: 3f 2e 07 call $072e +0728: 3d inc x +0729: 8b 02 dec $02 +072b: d0 f2 bne $071f +072d: 6f ret + +072e: f5 96 02 mov a,$0296+x +0731: 15 a0 02 or a,$02a0+x +0734: d0 0a bne $0740 +0736: 15 aa 02 or a,$02aa+x +0739: d0 05 bne $0740 +073b: 15 b4 02 or a,$02b4+x +073e: f0 03 beq $0743 +0740: 3f 44 07 call $0744 +0743: 6f ret + +0744: f5 aa 02 mov a,$02aa+x +0747: c4 0a mov $0a,a +0749: f5 b4 02 mov a,$02b4+x +074c: c4 0b mov $0b,a +074e: f5 c8 02 mov a,$02c8+x +0751: fd mov y,a +0752: f5 be 02 mov a,$02be+x +0755: 60 clrc +0756: 7a 0a addw ya,$0a +0758: ad 01 cmp y,#$01 +075a: d0 1c bne $0778 +075c: d5 be 02 mov $02be+x,a +075f: e8 00 mov a,#$00 +0761: d5 c8 02 mov $02c8+x,a +0764: f4 19 mov a,$19+x +0766: 28 02 and a,#$02 +0768: d0 07 bne $0771 +076a: f4 87 mov a,$87+x +076c: bc inc a +076d: d4 87 mov $87+x,a +076f: 2f 10 bra $0781 +0771: f4 87 mov a,$87+x +0773: 9c dec a +0774: d4 87 mov $87+x,a +0776: 2f 09 bra $0781 +0778: 2d push a +0779: dd mov a,y +077a: d5 c8 02 mov $02c8+x,a +077d: ae pop a +077e: d5 be 02 mov $02be+x,a +0781: e8 7f mov a,#$7f +0783: 34 91 and a,$91+x +0785: fd mov y,a +0786: f5 96 02 mov a,$0296+x +0789: c4 0a mov $0a,a +078b: f5 a0 02 mov a,$02a0+x +078e: c4 0b mov $0b,a +0790: f4 87 mov a,$87+x +0792: 2d push a +0793: f4 19 mov a,$19+x +0795: 28 02 and a,#$02 +0797: ae pop a +0798: d0 05 bne $079f +079a: 60 clrc +079b: 7a 0a addw ya,$0a +079d: 2f 03 bra $07a2 +079f: 80 setc +07a0: 9a 0a subw ya,$0a +07a2: d4 87 mov $87+x,a +07a4: db 91 mov $91+x,y +07a6: e8 80 mov a,#$80 +07a8: 14 0f or a,$0f+x +07aa: d4 0f mov $0f+x,a +07ac: 6f ret + +07ad: cd 00 mov x,#$00 +07af: 8f 0a 02 mov $02,#$0a +07b2: f4 9b mov a,$9b+x +07b4: 14 a5 or a,$a5+x +07b6: f0 03 beq $07bb +07b8: 3f c0 07 call $07c0 +07bb: 3d inc x +07bc: 6e 02 f3 dbnz $02,$07b2 +07bf: 6f ret + +07c0: 9b c3 dec $c3+x +07c2: f0 01 beq $07c5 +07c4: 6f ret + +07c5: f4 af mov a,$af+x +07c7: c4 0a mov $0a,a +07c9: f4 b9 mov a,$b9+x +07cb: c4 0b mov $0b,a +07cd: 8d 00 mov y,#$00 +07cf: f7 0a mov a,($0a)+y +07d1: 68 e0 cmp a,#$e0 ; set tempo +07d3: 90 14 bcc $07e9 +07d5: 68 e8 cmp a,#$e8 ; goto +07d7: f0 4c beq $0825 +07d9: 68 eb cmp a,#$eb ; repeat start +07db: f0 57 beq $0834 +07dd: 68 ec cmp a,#$ec ; repeat end +07df: f0 68 beq $0849 +07e1: 68 e9 cmp a,#$e9 ; call subroutine +07e3: f0 7f beq $0864 +07e5: 68 ea cmp a,#$ea ; end subroutine +07e7: f0 6e beq $0857 +07e9: d4 c3 mov $c3+x,a +07eb: 3a 0a incw $0a +07ed: f7 0a mov a,($0a)+y +07ef: 2d push a +07f0: 3a 0a incw $0a +07f2: e4 0a mov a,$0a +07f4: d4 af mov $af+x,a +07f6: e4 0b mov a,$0b +07f8: d4 b9 mov $b9+x,a +07fa: f4 0f mov a,$0f+x +07fc: 08 80 or a,#$80 +07fe: d4 0f mov $0f+x,a +0800: ae pop a +0801: c4 06 mov $06,a +0803: 28 80 and a,#$80 +0805: d0 0c bne $0813 +0807: e4 06 mov a,$06 +0809: 60 clrc +080a: 94 87 adc a,$87+x +080c: d4 87 mov $87+x,a +080e: 90 02 bcc $0812 +0810: bb 91 inc $91+x +0812: 6f ret + +0813: e4 06 mov a,$06 +0815: 28 7f and a,#$7f +0817: c4 06 mov $06,a +0819: f4 87 mov a,$87+x +081b: 80 setc +081c: a4 06 sbc a,$06 +081e: d4 87 mov $87+x,a +0820: b0 f0 bcs $0812 +0822: 9b 91 dec $91+x +0824: 6f ret + +0825: 3a 0a incw $0a +0827: f7 0a mov a,($0a)+y +0829: d4 af mov $af+x,a +082b: 3a 0a incw $0a +082d: f7 0a mov a,($0a)+y +082f: d4 b9 mov $b9+x,a +0831: 5f c5 07 jmp $07c5 + +0834: 3a 0a incw $0a +0836: f7 0a mov a,($0a)+y +0838: d5 78 02 mov $0278+x,a +083b: 3a 0a incw $0a +083d: e4 0a mov a,$0a +083f: d5 82 02 mov $0282+x,a +0842: e4 0b mov a,$0b +0844: d5 8c 02 mov $028c+x,a +0847: 2f 84 bra $07cd +0849: f5 78 02 mov a,$0278+x +084c: 9c dec a +084d: d5 78 02 mov $0278+x,a +0850: d0 05 bne $0857 +0852: 3a 0a incw $0a +0854: 5f cd 07 jmp $07cd + +0857: f5 82 02 mov a,$0282+x +085a: d4 af mov $af+x,a +085c: f5 8c 02 mov a,$028c+x +085f: d4 b9 mov $b9+x,a +0861: 5f c5 07 jmp $07c5 + +0864: 3a 0a incw $0a +0866: f7 0a mov a,($0a)+y +0868: d4 af mov $af+x,a +086a: 3a 0a incw $0a +086c: f7 0a mov a,($0a)+y +086e: d4 b9 mov $b9+x,a +0870: 3a 0a incw $0a +0872: e4 0a mov a,$0a +0874: d5 82 02 mov $0282+x,a +0877: e4 0b mov a,$0b +0879: d5 8c 02 mov $028c+x,a +087c: 5f c5 07 jmp $07c5 + +087f: e5 a7 03 mov a,$03a7 +0882: d0 01 bne $0885 +0884: 6f ret + +0885: 8c a8 03 dec $03a8 +0888: f0 01 beq $088b +088a: 6f ret + +088b: e5 a9 03 mov a,$03a9 +088e: c5 a8 03 mov $03a8,a +0891: cd 00 mov x,#$00 +0893: 8f 08 02 mov $02,#$08 +0896: f4 0f mov a,$0f+x +0898: 28 01 and a,#$01 +089a: f0 03 beq $089f +089c: 3f a4 08 call $08a4 +089f: 3d inc x +08a0: 6e 02 f3 dbnz $02,$0896 +08a3: 6f ret + +08a4: f5 f0 02 mov a,$02f0+x +08a7: d0 07 bne $08b0 +08a9: f4 0f mov a,$0f+x +08ab: 28 ef and a,#$ef +08ad: d4 0f mov $0f+x,a +08af: 6f ret + +08b0: 8f 03 06 mov $06,#$03 +08b3: 80 setc +08b4: a4 06 sbc a,$06 +08b6: 68 0a cmp a,#$0a +08b8: 90 0a bcc $08c4 +08ba: d5 f0 02 mov $02f0+x,a +08bd: f4 0f mov a,$0f+x +08bf: 08 10 or a,#$10 +08c1: d4 0f mov $0f+x,a +08c3: 6f ret + +08c4: 7d mov a,x +08c5: 9f xcn a +08c6: 2d push a +08c7: 08 00 or a,#$00 +08c9: fd mov y,a +08ca: e8 00 mov a,#$00 +08cc: 3f 79 11 call $1179 +08cf: fc inc y +08d0: 3f 79 11 call $1179 +08d3: ae pop a +08d4: 08 05 or a,#$05 +08d6: fd mov y,a +08d7: e8 00 mov a,#$00 +08d9: 3f 79 11 call $1179 +08dc: fc inc y +08dd: 3f 79 11 call $1179 +08e0: 3f 3b 11 call $113b +08e3: e4 03 mov a,$03 +08e5: 2d push a +08e6: 8d 5c mov y,#$5c +08e8: 3f 79 11 call $1179 +08eb: 6d push y +08ec: 3f 71 11 call $1171 +08ef: ee pop y +08f0: 3f 77 11 call $1177 +08f3: ae pop a +08f4: 4e 01 00 tclr1 $0001 +08f7: f4 0f mov a,$0f+x +08f9: 28 00 and a,#$00 +08fb: d4 0f mov $0f+x,a +08fd: 6f ret + +08fe: cd 00 mov x,#$00 +0900: 8f 0a 02 mov $02,#$0a +0903: f4 0f mov a,$0f+x +0905: 28 01 and a,#$01 +0907: f0 03 beq $090c +0909: 3f 12 09 call $0912 +090c: 3d inc x +090d: 8b 02 dec $02 +090f: d0 f2 bne $0903 +0911: 6f ret + +0912: f5 22 03 mov a,$0322+x +0915: d0 06 bne $091d +0917: f5 54 03 mov a,$0354+x +091a: d0 01 bne $091d +091c: 6f ret + +091d: f5 22 03 mov a,$0322+x +0920: 9c dec a +0921: d5 22 03 mov $0322+x,a +0924: f0 01 beq $0927 +0926: 6f ret + +0927: f5 4a 03 mov a,$034a+x +092a: d5 22 03 mov $0322+x,a +092d: f5 54 03 mov a,$0354+x +0930: 60 clrc +0931: 95 5e 03 adc a,$035e+x +0934: 90 10 bcc $0946 +0936: e8 00 mov a,#$00 +0938: d5 5e 03 mov $035e+x,a +093b: e8 01 mov a,#$01 +093d: 60 clrc +093e: 95 22 03 adc a,$0322+x +0941: d5 22 03 mov $0322+x,a +0944: 2f 03 bra $0949 +0946: d5 5e 03 mov $035e+x,a +0949: f4 0f mov a,$0f+x +094b: 28 20 and a,#$20 +094d: f0 06 beq $0955 +094f: f5 40 03 mov a,$0340+x +0952: bc inc a +0953: 2f 04 bra $0959 +0955: f5 40 03 mov a,$0340+x +0958: 9c dec a +0959: 2d push a +095a: 3f 4f 11 call $114f +095d: ae pop a +095e: d5 40 03 mov $0340+x,a +0961: 6f ret + +0962: cd 00 mov x,#$00 +0964: 8f 0a 02 mov $02,#$0a +0967: f4 0f mov a,$0f+x +0969: 28 01 and a,#$01 +096b: f0 03 beq $0970 +096d: 3f 76 09 call $0976 +0970: 3d inc x +0971: 8b 02 dec $02 +0973: d0 f2 bne $0967 +0975: 6f ret + +0976: f4 4b mov a,$4b+x +0978: 14 55 or a,$55+x +097a: f0 01 beq $097d +097c: 6f ret + +; get current vcmd +097d: 3f d9 10 call $10d9 +0980: 68 e0 cmp a,#$e0 ; main vcmds +0982: 90 03 bcc $0987 ; note length (add to total - reset when note played) +0984: 5f 21 0b jmp $0b21 + +0987: fd mov y,a +0988: 68 a0 cmp a,#$a0 ; pitch slide +098a: 90 03 bcc $098f +098c: 5f d9 0a jmp $0ad9 + +098f: fd mov y,a +0990: 10 03 bpl $0995 +0992: 5f 7f 0a jmp $0a7f + +0995: 68 0c cmp a,#$0c ; rest +0997: d0 03 bne $099c +0999: 5f ff 0a jmp $0aff + +099c: c4 06 mov $06,a +099e: e8 00 mov a,#$00 +09a0: d5 96 02 mov $0296+x,a +09a3: d5 a0 02 mov $02a0+x,a +09a6: d5 aa 02 mov $02aa+x,a +09a9: e8 84 mov a,#$84 +09ab: 14 0f or a,$0f+x +09ad: 28 fd and a,#$fd +09af: d4 0f mov $0f+x,a +09b1: e4 06 mov a,$06 +09b3: 28 0f and a,#$0f +09b5: 2d push a +09b6: f5 04 03 mov a,$0304+x +09b9: 28 80 and a,#$80 +09bb: d0 0f bne $09cc +09bd: f5 04 03 mov a,$0304+x +09c0: 28 0f and a,#$0f +09c2: c4 07 mov $07,a +09c4: ae pop a +09c5: 60 clrc +09c6: 84 07 adc a,$07 +09c8: 28 1f and a,#$1f +09ca: 2f 0b bra $09d7 +09cc: f5 04 03 mov a,$0304+x +09cf: 28 0f and a,#$0f +09d1: c4 07 mov $07,a +09d3: ae pop a +09d4: 80 setc +09d5: a4 07 sbc a,$07 +09d7: 4d push x +09d8: 1c asl a +09d9: 5d mov x,a +09da: f5 0a 12 mov a,$120a+x +09dd: c4 0a mov $0a,a +09df: f5 0b 12 mov a,$120b+x +09e2: c4 0b mov $0b,a +09e4: ce pop x +09e5: f5 fa 02 mov a,$02fa+x +09e8: 8d 00 mov y,#$00 +09ea: 2d push a +09eb: 28 80 and a,#$80 +09ed: d0 dd bne $09cc +09ef: ae pop a +09f0: 7a 0a addw ya,$0a +09f2: 2f 0e bra $0a02 +09f4: ae pop a +09f5: 28 7f and a,#$7f +09f7: c4 07 mov $07,a +09f9: cb 08 mov $08,y +09fb: e4 0a mov a,$0a +09fd: eb 0b mov y,$0b +09ff: 60 clrc +0a00: 9a 07 subw ya,$07 +0a02: c4 0a mov $0a,a +0a04: 2d push a +0a05: cb 0b mov $0b,y +0a07: e4 06 mov a,$06 +0a09: 28 70 and a,#$70 +0a0b: 2d push a +0a0c: f5 04 03 mov a,$0304+x +0a0f: 28 80 and a,#$80 +0a11: f0 0d beq $0a20 +0a13: e8 70 mov a,#$70 +0a15: 35 04 03 and a,$0304+x +0a18: c4 07 mov $07,a +0a1a: ae pop a +0a1b: 80 setc +0a1c: a4 07 sbc a,$07 +0a1e: 2f 05 bra $0a25 +0a20: ae pop a +0a21: 60 clrc +0a22: 95 04 03 adc a,$0304+x +0a25: 28 70 and a,#$70 +0a27: 9f xcn a +0a28: fd mov y,a +0a29: ae pop a +0a2a: 1c asl a +0a2b: 2b 0b rol $0b +0a2d: c4 0a mov $0a,a +0a2f: 2f 04 bra $0a35 +0a31: 4b 0b lsr $0b +0a33: 7c ror a +0a34: fc inc y +0a35: ad 06 cmp y,#$06 +0a37: d0 f8 bne $0a31 +0a39: c4 0a mov $0a,a +0a3b: f5 d2 02 mov a,$02d2+x +0a3e: eb 0b mov y,$0b +0a40: cf mul ya +0a41: da 0c movw $0c,ya +0a43: f5 d2 02 mov a,$02d2+x +0a46: eb 0a mov y,$0a +0a48: cf mul ya +0a49: 6d push y +0a4a: f5 dc 02 mov a,$02dc+x +0a4d: eb 0a mov y,$0a +0a4f: cf mul ya +0a50: 7a 0c addw ya,$0c +0a52: da 0c movw $0c,ya +0a54: f5 dc 02 mov a,$02dc+x +0a57: eb 0b mov y,$0b +0a59: cf mul ya +0a5a: fd mov y,a +0a5b: ae pop a +0a5c: 7a 0c addw ya,$0c +0a5e: d4 87 mov $87+x,a +0a60: db 91 mov $91+x,y +0a62: f4 37 mov a,$37+x +0a64: d4 4b mov $4b+x,a +0a66: f4 41 mov a,$41+x +0a68: d4 55 mov $55+x,a +0a6a: f4 5f mov a,$5f+x +0a6c: d4 73 mov $73+x,a +0a6e: f4 69 mov a,$69+x +0a70: d4 7d mov $7d+x,a +0a72: f4 9b mov a,$9b+x +0a74: fb a5 mov y,$a5+x +0a76: d4 af mov $af+x,a +0a78: db b9 mov $b9+x,y +0a7a: e8 01 mov a,#$01 +0a7c: d4 c3 mov $c3+x,a +0a7e: 6f ret + +0a7f: dd mov a,y +0a80: 28 3f and a,#$3f +0a82: 4d push x +0a83: 1c asl a +0a84: 5d mov x,a +0a85: f5 24 12 mov a,$1224+x ; get note length from table +0a88: c4 0a mov $0a,a +0a8a: f5 25 12 mov a,$1225+x +0a8d: c4 0b mov $0b,a +0a8f: ce pop x +0a90: 60 clrc +0a91: f4 4b mov a,$4b+x +0a93: fb 55 mov y,$55+x +0a95: 7a 0a addw ya,$0a ; add to total length +0a97: d4 4b mov $4b+x,a +0a99: db 55 mov $55+x,y +0a9b: d4 37 mov $37+x,a +0a9d: db 41 mov $41+x,y +0a9f: f5 68 03 mov a,$0368+x +0aa2: fb 55 mov y,$55+x +0aa4: cf mul ya +0aa5: da 0a movw $0a,ya +0aa7: f5 68 03 mov a,$0368+x +0aaa: fb 4b mov y,$4b+x +0aac: cf mul ya +0aad: 6d push y +0aae: f5 72 03 mov a,$0372+x +0ab1: fb 55 mov y,$55+x +0ab3: cf mul ya +0ab4: 7a 0a addw ya,$0a +0ab6: da 0a movw $0a,ya +0ab8: f5 72 03 mov a,$0372+x +0abb: fb 55 mov y,$55+x +0abd: cf mul ya +0abe: fd mov y,a +0abf: ae pop a +0ac0: 7a 0a addw ya,$0a +0ac2: d0 0a bne $0ace +0ac4: c4 0a mov $0a,a +0ac6: cb 0b mov $0b,y +0ac8: 3a 0a incw $0a +0aca: e4 0a mov a,$0a +0acc: eb 0b mov y,$0b +0ace: d4 73 mov $73+x,a +0ad0: db 7d mov $7d+x,y +0ad2: d4 5f mov $5f+x,a +0ad4: db 69 mov $69+x,y +0ad6: 5f 7d 09 jmp $097d + +0ad9: 4d push x +0ada: e5 a6 03 mov a,$03a6 +0add: d0 02 bne $0ae1 +0adf: e8 04 mov a,#$04 +0ae1: 1c asl a +0ae2: 5d mov x,a +0ae3: f5 64 12 mov a,$1264+x ; get pitch slide data +0ae6: c4 0c mov $0c,a +0ae8: f5 65 12 mov a,$1265+x +0aeb: c4 0d mov $0d,a +0aed: dd mov a,y ; current byte +0aee: 28 0f and a,#$0f +0af0: 1c asl a +0af1: fd mov y,a +0af2: f7 0c mov a,($0c)+y +0af4: c4 0a mov $0a,a +0af6: 3a 0c incw $0c +0af8: f7 0c mov a,($0c)+y +0afa: c4 0b mov $0b,a +0afc: ce pop x +0afd: 2f 91 bra $0a90 +0aff: f4 0f mov a,$0f+x +0b01: 08 02 or a,#$02 +0b03: d4 0f mov $0f+x,a +0b05: f4 37 mov a,$37+x +0b07: d4 4b mov $4b+x,a +0b09: f4 41 mov a,$41+x +0b0b: d4 55 mov $55+x,a +0b0d: f4 5f mov a,$5f+x +0b0f: d4 73 mov $73+x,a +0b11: f4 69 mov a,$69+x +0b13: d4 7d mov $7d+x,a +0b15: e8 00 mov a,#$00 +0b17: d5 96 02 mov $0296+x,a +0b1a: d5 a0 02 mov $02a0+x,a +0b1d: d5 aa 02 mov $02aa+x,a +0b20: 6f ret + +0b21: 28 1f and a,#$1f +0b23: 1c asl a +0b24: d8 06 mov $06,x +0b26: 5d mov x,a +0b27: f5 36 0b mov a,$0b36+x +0b2a: c4 0a mov $0a,a +0b2c: f5 37 0b mov a,$0b37+x +0b2f: c4 0b mov $0b,a +0b31: cd 00 mov x,#$00 +0b33: 1f 0a 00 jmp ($000a+x) + +; vcmd dispatch list +0b36: dw $0bc0 ; e0 - tempo +0b38: dw $0bd0 ; e1 - channel mask +0b3a: db $0b77 ; e2 - set instrument +0b3c: dw $0bdd ; e3 - set quantization +0b3e: dw $0c06 ; e4 - volume +0b40: dw $0c78 ; e5 - tuning +0b42: dw $0c83 ; e6 - per-channel transpose +0b44: dw $0c8e ; e7 - pitch slide +0b46: dw $0d8e ; e8 - goto +0b48: dw $0d9e ; e9 - call subroutine +0b4a: dw $0dd2 ; ea - end subroutine +0b4c: dw $0e05 ; eb - repeat start +0b4e: dw $0e3f ; ec - repeat end +0b50: dw $0e91 ; ed +0b52: dw $0ed4 ; ee - reset pitch +0b54: dw $0ee3 ; ef - set pitch +0b56: dw $0c23 ; f0 - pan +0b58: dw $0c2e ; f1 - pan fade +0b5a: dw $0ebe ; f2 - volume envelope (1) +0b5c: dw $0ec9 ; f3 - volume envelope (2) +0b5e: dw $0b76 ; f4 - nop +0b60: dw $0b76 ; f5 - nop +0b62: dw $0b76 ; f6 - nop +0b64: dw $0b76 ; f7 - nop +0b66: dw $0b76 ; f8 - nop +0b68: dw $0b76 ; f9 - nop +0b6a: dw $0b76 ; fa - nop +0b6c: dw $0b76 ; fb - nop +0b6e: dw $0b76 ; fc - nop +0b70: dw $0f10 ; fd +0b72: dw $0f19 ; fe - fade out +0b74: dw $0f38 ; ff - end + +; vcmds f6-fc - nop +0b76: 6f ret + +; vcmd e2 - set instrument +0b77: f8 06 mov x,$06 +0b79: 3f d9 10 call $10d9 ; read a byte from voice ptr +0b7c: 4d push x +0b7d: c4 07 mov $07,a +0b7f: e4 06 mov a,$06 +0b81: f0 0a beq $0b8d +0b83: 7d mov a,x +0b84: 68 08 cmp a,#$08 +0b86: 90 02 bcc $0b8a +0b88: 9c dec a +0b89: 9c dec a +0b8a: 9f xcn a +0b8b: c4 06 mov $06,a +0b8d: e8 04 mov a,#$04 +0b8f: 04 06 or a,$06 +0b91: 5d mov x,a +0b92: 8f 00 0a mov $0a,#$00 +0b95: 8f 1d 0b mov $0b,#$1d +0b98: 8d 00 mov y,#$00 +0b9a: e4 07 mov a,$07 +0b9c: f0 06 beq $0ba4 +0b9e: 8d 06 mov y,#$06 +0ba0: cf mul ya +0ba1: fd mov y,a +0ba2: e4 07 mov a,$07 +0ba4: 8f 04 0c mov $0c,#$04 +0ba7: d8 f2 mov $f2,x +0ba9: c4 f3 mov $f3,a +0bab: fc inc y +0bac: 3d inc x +0bad: f7 0a mov a,($0a)+y +0baf: 8b 0c dec $0c +0bb1: d0 f4 bne $0ba7 +0bb3: ce pop x +0bb4: fc inc y +0bb5: d5 dc 02 mov $02dc+x,a +0bb8: f7 0a mov a,($0a)+y +0bba: d5 d2 02 mov $02d2+x,a +0bbd: 5f 7d 09 jmp $097d + +; vcmd e0 - tempo +0bc0: f8 06 mov x,$06 +0bc2: 3f d9 10 call $10d9 ; read a byte from voice ptr +0bc5: 1c asl a +0bc6: c4 04 mov $04,a +0bc8: 48 ff eor a,#$ff +0bca: bc inc a +0bcb: c4 05 mov $05,a +0bcd: 5f 7d 09 jmp $097d + +; vcmd e1 - channel mask +0bd0: f8 06 mov x,$06 +0bd2: 3f d9 10 call $10d9 ; read a byte from voice ptr +0bd5: c4 0e mov $0e,a +0bd7: 3f 11 11 call $1111 +0bda: 5f 7d 09 jmp $097d + +; vcmd e3 - set quantization +0bdd: f8 06 mov x,$06 +0bdf: 3f d9 10 call $10d9 ; read a byte from voice ptr +0be2: 2d push a +0be3: 4d push x +0be4: 28 70 and a,#$70 +0be6: 9f xcn a +0be7: 5d mov x,a +0be8: f5 f2 11 mov a,$11f2+x ; note dur%'s +0beb: ce pop x +0bec: d5 68 03 mov $0368+x,a +0bef: e8 00 mov a,#$00 +0bf1: d5 72 03 mov $0372+x,a +0bf4: ae pop a +0bf5: 4d push x +0bf6: 28 0f and a,#$0f +0bf8: 5d mov x,a +0bf9: f5 fa 11 mov a,$11fa+x ; per-note velocity +0bfc: ce pop x +0bfd: d5 e6 02 mov $02e6+x,a +0c00: 3f 11 11 call $1111 +0c03: 5f 7d 09 jmp $097d + +; vcmd e4 - volume +0c06: f8 06 mov x,$06 +0c08: 3f d9 10 call $10d9 ; read a byte from voice ptr +0c0b: c4 06 mov $06,a +0c0d: f4 19 mov a,$19+x +0c0f: 28 01 and a,#$01 +0c11: d0 05 bne $0c18 +0c13: ec a7 03 mov y,$03a7 +0c16: d0 08 bne $0c20 +0c18: e4 06 mov a,$06 +0c1a: d5 f0 02 mov $02f0+x,a +0c1d: 3f 11 11 call $1111 +0c20: 5f 7d 09 jmp $097d + +; vcmd f0 - pan +0c23: f8 06 mov x,$06 +0c25: 3f d9 10 call $10d9 ; read a byte from voice ptr +0c28: 3f 4f 11 call $114f +0c2b: 5f 7d 09 jmp $097d + +; vcmd f1 - pan fade +0c2e: f8 06 mov x,$06 +0c30: 3f f2 10 call $10f2 ; read a word from voice ptr +0c33: 2d push a +0c34: e4 06 mov a,$06 +0c36: d5 40 03 mov $0340+x,a +0c39: 3f 4f 11 call $114f +0c3c: ae pop a +0c3d: 64 06 cmp a,$06 +0c3f: b0 09 bcs $0c4a +0c41: c4 07 mov $07,a +0c43: e4 06 mov a,$06 +0c45: 80 setc +0c46: a4 07 sbc a,$07 +0c48: 2f 0b bra $0c55 +0c4a: 80 setc +0c4b: a4 06 sbc a,$06 +0c4d: 2d push a +0c4e: f4 0f mov a,$0f+x +0c50: 08 20 or a,#$20 +0c52: d4 0f mov $0f+x,a +0c54: ae pop a +0c55: 4d push x +0c56: c4 06 mov $06,a +0c58: f4 4b mov a,$4b+x +0c5a: fb 55 mov y,$55+x +0c5c: f8 06 mov x,$06 +0c5e: 9e div ya,x +0c5f: c4 06 mov $06,a +0c61: e8 00 mov a,#$00 +0c63: 9e div ya,x +0c64: ce pop x +0c65: d5 54 03 mov $0354+x,a +0c68: e8 00 mov a,#$00 +0c6a: d5 5e 03 mov $035e+x,a +0c6d: e4 06 mov a,$06 +0c6f: d5 22 03 mov $0322+x,a +0c72: d5 4a 03 mov $034a+x,a +0c75: 5f 7d 09 jmp $097d + +; vcmd e5 - tuning +0c78: f8 06 mov x,$06 +0c7a: 3f d9 10 call $10d9 ; read a byte from voice ptr +0c7d: d5 fa 02 mov $02fa+x,a +0c80: 5f 7d 09 jmp $097d + +; vcmd e6 - per-channel transpose +0c83: f8 06 mov x,$06 +0c85: 3f d9 10 call $10d9 ; read a byte from voice ptr +0c88: d5 04 03 mov $0304+x,a +0c8b: 5f 7d 09 jmp $097d + +; vcmd e7 - pitch slide +0c8e: f8 06 mov x,$06 +0c90: 3f f2 10 call $10f2 ; read a word from voice ptr +0c93: eb 06 mov y,$06 +0c95: 6d push y +0c96: 64 06 cmp a,$06 +0c98: 90 19 bcc $0cb3 +0c9a: 2d push a +0c9b: 3f 01 0d call $0d01 +0c9e: c4 08 mov $08,a +0ca0: cb 09 mov $09,y +0ca2: ae pop a +0ca3: c4 06 mov $06,a +0ca5: 3f 01 0d call $0d01 +0ca8: 80 setc +0ca9: 9a 08 subw ya,$08 +0cab: f4 19 mov a,$19+x +0cad: 28 fd and a,#$fd +0caf: d4 19 mov $19+x,a +0cb1: 2f 1d bra $0cd0 +0cb3: eb 06 mov y,$06 +0cb5: 6d push y +0cb6: c4 06 mov $06,a +0cb8: 3f 01 0d call $0d01 +0cbb: c4 08 mov $08,a +0cbd: cb 09 mov $09,y +0cbf: ee pop y +0cc0: cb 06 mov $06,y +0cc2: 3f 01 0d call $0d01 +0cc5: 80 setc +0cc6: 9a 08 subw ya,$08 +0cc8: 2d push a +0cc9: e8 02 mov a,#$02 +0ccb: 14 19 or a,$19+x +0ccd: d4 19 mov $19+x,a +0ccf: ae pop a +0cd0: c4 07 mov $07,a +0cd2: cb 08 mov $08,y +0cd4: f4 4b mov a,$4b+x +0cd6: c4 0a mov $0a,a +0cd8: f4 55 mov a,$55+x +0cda: c4 0b mov $0b,a +0cdc: 3f 7e 11 call $117e +0cdf: e4 08 mov a,$08 +0ce1: d5 aa 02 mov $02aa+x,a +0ce4: d5 be 02 mov $02be+x,a +0ce7: e8 00 mov a,#$00 +0ce9: d5 b4 02 mov $02b4+x,a +0cec: d5 c8 02 mov $02c8+x,a +0cef: e5 ab 03 mov a,$03ab +0cf2: d5 96 02 mov $0296+x,a +0cf5: e5 ac 03 mov a,$03ac +0cf8: d5 a0 02 mov $02a0+x,a +0cfb: ae pop a +0cfc: c4 06 mov $06,a +0cfe: 5f a9 09 jmp $09a9 + +0d01: e4 06 mov a,$06 +0d03: 28 0f and a,#$0f +0d05: 2d push a +0d06: f5 04 03 mov a,$0304+x +0d09: 28 80 and a,#$80 +0d0b: d0 0f bne $0d1c +0d0d: f5 04 03 mov a,$0304+x +0d10: 28 0f and a,#$0f +0d12: c4 07 mov $07,a +0d14: ae pop a +0d15: 60 clrc +0d16: 84 07 adc a,$07 +0d18: 28 1f and a,#$1f +0d1a: 2f 0b bra $0d27 +0d1c: f5 04 03 mov a,$0304+x +0d1f: 28 0f and a,#$0f +0d21: c4 07 mov $07,a +0d23: ae pop a +0d24: 80 setc +0d25: a4 07 sbc a,$07 +0d27: 4d push x +0d28: 1c asl a +0d29: 5d mov x,a +0d2a: f5 0a 12 mov a,$120a+x +0d2d: c4 0a mov $0a,a +0d2f: f5 0b 12 mov a,$120b+x +0d32: c4 0b mov $0b,a +0d34: ce pop x +0d35: e4 06 mov a,$06 +0d37: 28 70 and a,#$70 +0d39: 2d push a +0d3a: f5 04 03 mov a,$0304+x +0d3d: 28 80 and a,#$80 +0d3f: f0 0d beq $0d4e +0d41: e8 70 mov a,#$70 +0d43: 35 04 03 and a,$0304+x +0d46: c4 07 mov $07,a +0d48: ae pop a +0d49: 80 setc +0d4a: a4 07 sbc a,$07 +0d4c: 2f 05 bra $0d53 +0d4e: ae pop a +0d4f: 60 clrc +0d50: 95 04 03 adc a,$0304+x +0d53: 28 70 and a,#$70 +0d55: 9f xcn a +0d56: fd mov y,a +0d57: e4 0a mov a,$0a +0d59: 1c asl a +0d5a: 2b 0b rol $0b +0d5c: c4 0a mov $0a,a +0d5e: 2f 04 bra $0d64 +0d60: 4b 0b lsr $0b +0d62: 7c ror a +0d63: fc inc y +0d64: ad 06 cmp y,#$06 +0d66: d0 f8 bne $0d60 +0d68: c4 0a mov $0a,a +0d6a: f5 d2 02 mov a,$02d2+x +0d6d: eb 0b mov y,$0b +0d6f: cf mul ya +0d70: da 0c movw $0c,ya +0d72: f5 d2 02 mov a,$02d2+x +0d75: eb 0a mov y,$0a +0d77: cf mul ya +0d78: 6d push y +0d79: f5 dc 02 mov a,$02dc+x +0d7c: eb 0a mov y,$0a +0d7e: cf mul ya +0d7f: 7a 0c addw ya,$0c +0d81: da 0c movw $0c,ya +0d83: f5 dc 02 mov a,$02dc+x +0d86: eb 0b mov y,$0b +0d88: cf mul ya +0d89: fd mov y,a +0d8a: ae pop a +0d8b: 7a 0c addw ya,$0c +0d8d: 6f ret + +; vcmd e8 - goto +0d8e: f8 06 mov x,$06 +0d90: 3f f2 10 call $10f2 ; read a word from voice ptr +0d93: 2d push a +0d94: e4 06 mov a,$06 +0d96: d4 23 mov $23+x,a +0d98: ae pop a +0d99: d4 2d mov $2d+x,a +0d9b: 5f 7d 09 jmp $097d + +; vcmd e9 - call subroutine +0d9e: f8 06 mov x,$06 +0da0: 3f f2 10 call $10f2 ; read a word from voice ptr +0da3: 8d 00 mov y,#$00 +0da5: 2d push a +0da6: e4 06 mov a,$06 +0da8: d4 23 mov $23+x,a +0daa: ae pop a +0dab: d4 2d mov $2d+x,a +0dad: f4 d7 mov a,$d7+x +0daf: c4 0c mov $0c,a +0db1: f4 e1 mov a,$e1+x +0db3: c4 0d mov $0d,a +0db5: e4 0a mov a,$0a +0db7: d7 0c mov ($0c)+y,a +0db9: e8 0a mov a,#$0a +0dbb: 6d push y +0dbc: 7a 0c addw ya,$0c +0dbe: c4 0c mov $0c,a +0dc0: cb 0d mov $0d,y +0dc2: ee pop y +0dc3: e4 0b mov a,$0b +0dc5: d7 0c mov ($0c)+y,a +0dc7: e8 0a mov a,#$0a +0dc9: 7a 0c addw ya,$0c +0dcb: d4 d7 mov $d7+x,a +0dcd: db e1 mov $e1+x,y +0dcf: 5f 7d 09 jmp $097d + +; vcmd ea - end subroutine +0dd2: f8 06 mov x,$06 +0dd4: 8f 0a 0c mov $0c,#$0a +0dd7: 8f 00 0d mov $0d,#$00 +0dda: f4 d7 mov a,$d7+x +0ddc: fb e1 mov y,$e1+x +0dde: 9a 0c subw ya,$0c +0de0: 2d push a +0de1: 6d push y +0de2: c4 0a mov $0a,a +0de4: cb 0b mov $0b,y +0de6: 8d 00 mov y,#$00 +0de8: f7 0a mov a,($0a)+y +0dea: d4 2d mov $2d+x,a +0dec: ee pop y +0ded: ae pop a +0dee: 9a 0c subw ya,$0c +0df0: c4 0a mov $0a,a +0df2: cb 0b mov $0b,y +0df4: 8d 00 mov y,#$00 +0df6: f7 0a mov a,($0a)+y +0df8: d4 23 mov $23+x,a +0dfa: e4 0a mov a,$0a +0dfc: d4 d7 mov $d7+x,a +0dfe: e4 0b mov a,$0b +0e00: d4 e1 mov $e1+x,a +0e02: 5f 7d 09 jmp $097d + +; vcmd eb - repeat start +0e05: f8 06 mov x,$06 +0e07: 3f d9 10 call $10d9 ; read a byte from voice ptr +0e0a: 8d 00 mov y,#$00 +0e0c: 2d push a +0e0d: f4 d7 mov a,$d7+x +0e0f: c4 0c mov $0c,a +0e11: f4 e1 mov a,$e1+x +0e13: c4 0d mov $0d,a +0e15: e4 0a mov a,$0a +0e17: d7 0c mov ($0c)+y,a +0e19: 6d push y +0e1a: e8 0a mov a,#$0a +0e1c: 7a 0c addw ya,$0c +0e1e: c4 0c mov $0c,a +0e20: cb 0d mov $0d,y +0e22: ee pop y +0e23: e4 0b mov a,$0b +0e25: d7 0c mov ($0c)+y,a +0e27: 6d push y +0e28: e8 0a mov a,#$0a +0e2a: 7a 0c addw ya,$0c +0e2c: c4 0c mov $0c,a +0e2e: cb 0d mov $0d,y +0e30: ee pop y +0e31: ae pop a +0e32: d7 0c mov ($0c)+y,a +0e34: e8 0a mov a,#$0a +0e36: 7a 0c addw ya,$0c +0e38: d4 d7 mov $d7+x,a +0e3a: db e1 mov $e1+x,y +0e3c: 5f 7d 09 jmp $097d + +; vcmd ec - repeat end +0e3f: f8 06 mov x,$06 +0e41: 8d 00 mov y,#$00 +0e43: 8f 0a 0c mov $0c,#$0a +0e46: 8f 00 0d mov $0d,#$00 +0e49: f4 d7 mov a,$d7+x +0e4b: fb e1 mov y,$e1+x +0e4d: 9a 0c subw ya,$0c +0e4f: 6d push y +0e50: 2d push a +0e51: c4 0a mov $0a,a +0e53: cb 0b mov $0b,y +0e55: 8d 00 mov y,#$00 +0e57: f7 0a mov a,($0a)+y +0e59: 9c dec a +0e5a: d0 0e bne $0e6a +0e5c: 8f 14 0c mov $0c,#$14 +0e5f: ae pop a +0e60: ee pop y +0e61: 9a 0c subw ya,$0c +0e63: d4 d7 mov $d7+x,a +0e65: db e1 mov $e1+x,y +0e67: 5f 7d 09 jmp $097d + +0e6a: d7 0a mov ($0a)+y,a +0e6c: ae pop a +0e6d: ee pop y +0e6e: 9a 0c subw ya,$0c +0e70: 6d push y +0e71: 2d push a +0e72: c4 0a mov $0a,a +0e74: cb 0b mov $0b,y +0e76: 8d 00 mov y,#$00 +0e78: f7 0a mov a,($0a)+y +0e7a: c4 06 mov $06,a +0e7c: ae pop a +0e7d: ee pop y +0e7e: 9a 0c subw ya,$0c +0e80: c4 0a mov $0a,a +0e82: cb 0b mov $0b,y +0e84: 8d 00 mov y,#$00 +0e86: f7 0a mov a,($0a)+y +0e88: d4 23 mov $23+x,a +0e8a: e4 06 mov a,$06 +0e8c: d4 2d mov $2d+x,a +0e8e: 5f 7d 09 jmp $097d + +; vcmd ed +0e91: f8 06 mov x,$06 +0e93: 3f d9 10 call $10d9 ; read a byte from voice ptr +0e96: 68 10 cmp a,#$10 +0e98: d0 04 bne $0e9e +0e9a: e8 01 mov a,#$01 +0e9c: 2f 1a bra $0eb8 +0e9e: 68 18 cmp a,#$18 +0ea0: d0 04 bne $0ea6 +0ea2: e8 02 mov a,#$02 +0ea4: 2f 12 bra $0eb8 +0ea6: 68 20 cmp a,#$20 +0ea8: d0 04 bne $0eae +0eaa: e8 03 mov a,#$03 +0eac: 2f 0a bra $0eb8 +0eae: 68 31 cmp a,#$31 +0eb0: 90 04 bcc $0eb6 +0eb2: e8 00 mov a,#$00 +0eb4: 2f 02 bra $0eb8 +0eb6: e8 04 mov a,#$04 +0eb8: c5 a6 03 mov $03a6,a +0ebb: 5f 7d 09 jmp $097d + +; vcmd f2 - slur on +0ebe: f8 06 mov x,$06 +0ec0: f4 0f mov a,$0f+x +0ec2: 08 40 or a,#$40 +0ec4: d4 0f mov $0f+x,a +0ec6: 5f 7d 09 jmp $097d + +; vcmd f3 - slur off +0ec9: f8 06 mov x,$06 +0ecb: f4 0f mov a,$0f+x +0ecd: 28 b7 and a,#$b7 +0ecf: d4 0f mov $0f+x,a +0ed1: 5f 7d 09 jmp $097d + +; vcmd ee - reset pitch +0ed4: f8 06 mov x,$06 +0ed6: e8 00 mov a,#$00 +0ed8: d4 9b mov $9b+x,a +0eda: d4 a5 mov $a5+x,a +0edc: d4 af mov $af+x,a +0ede: d4 b9 mov $b9+x,a +0ee0: 5f 7d 09 jmp $097d + +; vcmd ef - set pitch +0ee3: f8 06 mov x,$06 +0ee5: 3f d9 10 call $10d9 ; read a byte from voice ptr +0ee8: 4d push x +0ee9: 2d push a +0eea: e5 02 e8 mov a,$e802 +0eed: c4 0c mov $0c,a +0eef: e5 03 e8 mov a,$e803 +0ef2: c4 0d mov $0d,a +0ef4: ae pop a +0ef5: 1c asl a +0ef6: fd mov y,a +0ef7: f7 0c mov a,($0c)+y +0ef9: 2d push a +0efa: 3a 0c incw $0c +0efc: f7 0c mov a,($0c)+y +0efe: fd mov y,a +0eff: ae pop a +0f00: ce pop x +0f01: d4 9b mov $9b+x,a +0f03: db a5 mov $a5+x,y +0f05: d4 af mov $af+x,a +0f07: db b9 mov $b9+x,y +0f09: e8 01 mov a,#$01 +0f0b: d4 c3 mov $c3+x,a +0f0d: 5f 7d 09 jmp $097d + +; vcmd fd +0f10: f8 06 mov x,$06 +0f12: e8 fd mov a,#$fd +0f14: c4 00 mov $00,a +0f16: 5f 7d 09 jmp $097d + +; vcmd fe - fade out +0f19: f8 06 mov x,$06 +0f1b: e5 a5 03 mov a,$03a5 +0f1e: d0 03 bne $0f23 +0f20: 5f 7d 09 jmp $097d + +0f23: e5 a4 03 mov a,$03a4 +0f26: bc inc a +0f27: 8d 00 mov y,#$00 +0f29: cc a5 03 mov $03a5,y +0f2c: cc a7 03 mov $03a7,y +0f2f: cc a8 03 mov $03a8,y +0f32: cc a9 03 mov $03a9,y +0f35: 5f 9e 05 jmp $059e + +; vcmd ff - stop +0f38: f8 06 mov x,$06 +0f3a: 7d mov a,x +0f3b: c8 08 cmp x,#$08 +0f3d: 90 02 bcc $0f41 +0f3f: 9c dec a +0f40: 9c dec a +0f41: 9f xcn a +0f42: 2d push a +0f43: 08 00 or a,#$00 +0f45: fd mov y,a +0f46: e8 00 mov a,#$00 +0f48: 3f 79 11 call $1179 +0f4b: fc inc y +0f4c: 3f 79 11 call $1179 +0f4f: ae pop a +0f50: 08 05 or a,#$05 +0f52: fd mov y,a +0f53: e8 00 mov a,#$00 +0f55: 3f 79 11 call $1179 +0f58: fc inc y +0f59: 3f 79 11 call $1179 +0f5c: 3f 21 11 call $1121 +0f5f: e4 03 mov a,$03 +0f61: 2d push a +0f62: 8d 5c mov y,#$5c +0f64: 3f 79 11 call $1179 +0f67: 6d push y +0f68: 3f 71 11 call $1171 +0f6b: ee pop y +0f6c: 3f 77 11 call $1177 +0f6f: ae pop a +0f70: 4e 01 00 tclr1 $0001 +0f73: f4 0f mov a,$0f+x +0f75: 28 00 and a,#$00 +0f77: d4 0f mov $0f+x,a +0f79: 6f ret + +0f7a: cd 00 mov x,#$00 +0f7c: 8f 0a 02 mov $02,#$0a +0f7f: f4 0f mov a,$0f+x +0f81: 28 01 and a,#$01 +0f83: f0 03 beq $0f88 +0f85: 3f 96 0f call $0f96 +0f88: 3d inc x +0f89: 8b 02 dec $02 +0f8b: d0 f2 bne $0f7f +0f8d: e5 aa 03 mov a,$03aa +0f90: 28 7f and a,#$7f +0f92: c5 aa 03 mov $03aa,a +0f95: 6f ret + +0f96: f4 0f mov a,$0f+x +0f98: 28 80 and a,#$80 +0f9a: f0 03 beq $0f9f +0f9c: 3f cb 0f call $0fcb +0f9f: e5 aa 03 mov a,$03aa +0fa2: 10 02 bpl $0fa6 +0fa4: 2f 0b bra $0fb1 +0fa6: e5 a7 03 mov a,$03a7 +0fa9: d0 06 bne $0fb1 +0fab: f4 0f mov a,$0f+x +0fad: 28 10 and a,#$10 +0faf: f0 03 beq $0fb4 +0fb1: 3f e8 0f call $0fe8 +0fb4: f4 0f mov a,$0f+x +0fb6: fd mov y,a +0fb7: 28 08 and a,#$08 +0fb9: f0 07 beq $0fc2 +0fbb: dd mov a,y +0fbc: 28 fb and a,#$fb +0fbe: d4 0f mov $0f+x,a +0fc0: 2f 08 bra $0fca +0fc2: dd mov a,y +0fc3: 28 04 and a,#$04 +0fc5: f0 03 beq $0fca +0fc7: 3f 31 10 call $1031 +0fca: 6f ret + +0fcb: 7d mov a,x +0fcc: 68 08 cmp a,#$08 +0fce: 90 02 bcc $0fd2 +0fd0: 9c dec a +0fd1: 9c dec a +0fd2: 9f xcn a +0fd3: 08 03 or a,#$03 +0fd5: fd mov y,a +0fd6: f4 91 mov a,$91+x +0fd8: 3f 79 11 call $1179 +0fdb: dc dec y +0fdc: f4 87 mov a,$87+x +0fde: 3f 79 11 call $1179 +0fe1: f4 0f mov a,$0f+x +0fe3: 28 7f and a,#$7f +0fe5: d4 0f mov $0f+x,a +0fe7: 6f ret + +0fe8: e5 aa 03 mov a,$03aa +0feb: 28 7f and a,#$7f +0fed: d0 05 bne $0ff4 +0fef: 3f 71 10 call $1071 +0ff2: 2f 0f bra $1003 +0ff4: 7d mov a,x +0ff5: f4 19 mov a,$19+x +0ff7: 28 01 and a,#$01 +0ff9: d0 05 bne $1000 +0ffb: e5 a7 03 mov a,$03a7 +0ffe: d0 03 bne $1003 +1000: 3f 4a 10 call $104a +1003: 7d mov a,x +1004: 68 08 cmp a,#$08 +1006: 90 02 bcc $100a +1008: 9c dec a +1009: 9c dec a +100a: 9f xcn a +100b: 08 00 or a,#$00 +100d: fd mov y,a +100e: 6d push y +100f: 3f 80 10 call $1080 +1012: cb 07 mov $07,y +1014: f5 0e 03 mov a,$030e+x +1017: cf mul ya +1018: dd mov a,y +1019: ee pop y +101a: 3f 79 11 call $1179 +101d: fc inc y +101e: 6d push y +101f: eb 07 mov y,$07 +1021: f5 18 03 mov a,$0318+x +1024: cf mul ya +1025: dd mov a,y +1026: ee pop y +1027: 3f 79 11 call $1179 +102a: e8 ef mov a,#$ef +102c: 34 0f and a,$0f+x +102e: d4 0f mov $0f+x,a +1030: 6f ret + +1031: 3f 21 11 call $1121 +1034: e4 03 mov a,$03 +1036: 8d 4c mov y,#$4c +1038: 3f 79 11 call $1179 +103b: 6d push y +103c: 3f 71 11 call $1171 +103f: ee pop y +1040: 3f 77 11 call $1177 +1043: f4 0f mov a,$0f+x +1045: 28 fb and a,#$fb +1047: d4 0f mov $0f+x,a +1049: 6f ret + +104a: e4 0e mov a,$0e +104c: d0 04 bne $1052 +104e: e8 ff mov a,#$ff +1050: c4 0e mov $0e,a +1052: f5 f0 02 mov a,$02f0+x +1055: d0 05 bne $105c +1057: e8 ff mov a,#$ff +1059: d5 f0 02 mov $02f0+x,a +105c: f5 0e 03 mov a,$030e+x +105f: 15 18 03 or a,$0318+x +1062: f0 0d beq $1071 +1064: f5 2c 03 mov a,$032c+x +1067: d5 0e 03 mov $030e+x,a +106a: f5 36 03 mov a,$0336+x +106d: d5 18 03 mov $0318+x,a +1070: 6f ret + +1071: e8 51 mov a,#$51 +1073: d5 0e 03 mov $030e+x,a +1076: d5 18 03 mov $0318+x,a +1079: d5 2c 03 mov $032c+x,a +107c: d5 36 03 mov $0336+x,a +107f: 6f ret + +1080: e8 ff mov a,#$ff +1082: eb 0e mov y,$0e +1084: cf mul ya +1085: f5 e6 02 mov a,$02e6+x +1088: cf mul ya +1089: f5 f0 02 mov a,$02f0+x +108c: cf mul ya +108d: dd mov a,y +108e: cf mul ya +108f: 6f ret + +1090: cd 00 mov x,#$00 +1092: 8f 08 02 mov $02,#$08 +1095: 7d mov a,x +1096: 9f xcn a +1097: 2d push a +1098: 08 00 or a,#$00 +109a: fd mov y,a +109b: e8 00 mov a,#$00 +109d: 3f 79 11 call $1179 +10a0: fc inc y +10a1: 3f 79 11 call $1179 +10a4: ae pop a +10a5: 08 05 or a,#$05 +10a7: fd mov y,a +10a8: e8 00 mov a,#$00 +10aa: 3f 79 11 call $1179 +10ad: fc inc y +10ae: 3f 79 11 call $1179 +10b1: 3f 3b 11 call $113b +10b4: e4 03 mov a,$03 +10b6: 2d push a +10b7: 8d 5c mov y,#$5c +10b9: 3f 79 11 call $1179 +10bc: 6d push y +10bd: 3f 71 11 call $1171 +10c0: ee pop y +10c1: 3f 77 11 call $1177 +10c4: ae pop a +10c5: 4e 01 00 tclr1 $0001 +10c8: e8 00 mov a,#$00 +10ca: d4 0f mov $0f+x,a +10cc: 3d inc x +10cd: 8b 02 dec $02 +10cf: d0 c4 bne $1095 +10d1: e8 00 mov a,#$00 +10d3: d4 0f mov $0f+x,a +10d5: 3d inc x +10d6: d4 0f mov $0f+x,a +10d8: 6f ret + +10d9: 8d 00 mov y,#$00 +10db: f4 23 mov a,$23+x +10dd: c4 0a mov $0a,a +10df: f4 2d mov a,$2d+x +10e1: c4 0b mov $0b,a +10e3: f7 0a mov a,($0a)+y +10e5: 2d push a +10e6: 3a 0a incw $0a +10e8: e4 0a mov a,$0a +10ea: d4 23 mov $23+x,a +10ec: e4 0b mov a,$0b +10ee: d4 2d mov $2d+x,a +10f0: ae pop a +10f1: 6f ret + +10f2: 8d 00 mov y,#$00 +10f4: f4 23 mov a,$23+x +10f6: c4 0a mov $0a,a +10f8: f4 2d mov a,$2d+x +10fa: c4 0b mov $0b,a +10fc: f7 0a mov a,($0a)+y +10fe: c4 06 mov $06,a +1100: 3a 0a incw $0a +1102: f7 0a mov a,($0a)+y +1104: 2d push a +1105: 3a 0a incw $0a +1107: e4 0a mov a,$0a +1109: d4 23 mov $23+x,a +110b: e4 0b mov a,$0b +110d: d4 2d mov $2d+x,a +110f: ae pop a +1110: 6f ret + +1111: f4 0f mov a,$0f+x +1113: c4 07 mov $07,a +1115: 28 10 and a,#$10 +1117: f0 01 beq $111a +1119: 6f ret + +111a: e4 07 mov a,$07 +111c: 08 10 or a,#$10 +111e: d4 0f mov $0f+x,a +1120: 6f ret + +1121: 8f 01 03 mov $03,#$01 +1124: e4 02 mov a,$02 +1126: 68 03 cmp a,#$03 +1128: b0 02 bcs $112c +112a: bc inc a +112b: bc inc a +112c: c4 06 mov $06,a +112e: e8 0a mov a,#$0a +1130: 80 setc +1131: a4 06 sbc a,$06 +1133: f0 05 beq $113a +1135: 0b 03 asl $03 +1137: 9c dec a +1138: d0 fb bne $1135 +113a: 6f ret + +113b: 8f 01 03 mov $03,#$01 +113e: e4 02 mov a,$02 +1140: c4 06 mov $06,a +1142: e8 08 mov a,#$08 +1144: 80 setc +1145: a4 06 sbc a,$06 +1147: f0 05 beq $114e +1149: 0b 03 asl $03 +114b: 9c dec a +114c: d0 fb bne $1149 +114e: 6f ret + +114f: fd mov y,a +1150: d5 40 03 mov $0340+x,a +1153: f6 dd 11 mov a,$11dd+y +1156: d5 0e 03 mov $030e+x,a +1159: d5 2c 03 mov $032c+x,a +115c: cb 07 mov $07,y +115e: e8 14 mov a,#$14 +1160: 80 setc +1161: a4 07 sbc a,$07 +1163: fd mov y,a +1164: f6 dd 11 mov a,$11dd+y +1167: d5 18 03 mov $0318+x,a +116a: d5 36 03 mov $0336+x,a +116d: 3f 11 11 call $1111 +1170: 6f ret + +1171: 8d 06 mov y,#$06 +1173: dc dec y +1174: d0 fd bne $1173 +1176: 6f ret + +1177: e8 00 mov a,#$00 +1179: cb f2 mov $f2,y +117b: c4 f3 mov $f3,a +117d: 6f ret + +117e: 8f 00 0c mov $0c,#$00 +1181: 8f 00 0d mov $0d,#$00 +1184: 8f 10 06 mov $06,#$10 +1187: e4 07 mov a,$07 +1189: 1c asl a +118a: 2b 08 rol $08 +118c: 2b 0c rol $0c +118e: 2b 0d rol $0d +1190: 2b 07 rol $07 +1192: e4 0c mov a,$0c +1194: eb 0d mov y,$0d +1196: 80 setc +1197: 9a 0a subw ya,$0a +1199: b0 04 bcs $119f +119b: 7a 0a addw ya,$0a +119d: 2f 02 bra $11a1 +119f: 3a 07 incw $07 +11a1: c4 0c mov $0c,a +11a3: cb 0d mov $0d,y +11a5: 8b 06 dec $06 +11a7: d0 de bne $1187 +11a9: ba 07 movw ya,$07 +11ab: c5 ab 03 mov $03ab,a +11ae: cc ac 03 mov $03ac,y +11b1: 8f 00 07 mov $07,#$00 +11b4: 8f 00 08 mov $08,#$00 +11b7: 8f 10 06 mov $06,#$10 +11ba: e4 07 mov a,$07 +11bc: 1c asl a +11bd: 2b 08 rol $08 +11bf: 2b 0c rol $0c +11c1: 2b 0d rol $0d +11c3: 2b 07 rol $07 +11c5: e4 0c mov a,$0c +11c7: eb 0d mov y,$0d +11c9: 80 setc +11ca: 9a 0a subw ya,$0a +11cc: b0 04 bcs $11d2 +11ce: 7a 0a addw ya,$0a +11d0: 2f 02 bra $11d4 +11d2: 3a 07 incw $07 +11d4: c4 0c mov $0c,a +11d6: cb 0d mov $0d,y +11d8: 8b 06 dec $06 +11da: d0 de bne $11ba +11dc: 6f ret + +; pan table +11dd: db $00,$01,$03,$07,$0d,$15,$1e,$29 +11e5: db $34,$42,$51,$5e,$67,$6e,$73,$77 +11ed: db $7a,$7c,$7d,$7e,$7f + +; note dur%s +11f2: db $32,$65,$7f,$98,$b2,$cb,$e5,$fc +; per-note velocity values +11fa: db $0a,$19,$28,$3c,$50,$64,$7d,$96 +1202: db $aa,$b9,$c8,$d4,$e1,$eb,$f5,$ff + +; pitch table +120a: dw $085f +120c: dw $08de +120e: dw $0965 +1210: dw $09f4 +1212: dw $0a8c +1214: dw $0b2c +1216: dw $0bd6 +1218: dw $0c8b +121a: dw $0d4a +121c: dw $0e14 +121e: dw $0eea +1220: dw $0fcd +1222: dw $10be + +; note lengths +1224: dw $0001 ; 80 +1226: dw $0002 ; 81 +1228: dw $0004 ; 82 +122a: dw $0006 ; 83 +122c: dw $0008 ; 84 +122e: dw $000c ; 85 +1230: dw $0010 ; 86 +1232: dw $0018 ; 87 +1234: dw $0020 ; 88 +1236: dw $0030 ; 89 +1238: dw $0040 ; 8a +123a: dw $0060 ; 8b +123c: dw $0080 ; 8c +123e: dw $00c0 ; 8d +1240: dw $0100 ; 8e +1242: dw $0180 ; 8f +1244: dw $0200 ; 90 +1246: dw $0300 ; 91 +1248: dw $0400 ; 92 +124a: dw $0600 ; 93 +124c: dw $0800 ; 94 +124e: dw $0c00 ; 95 +1250: dw $0003 ; 96 +1252: dw $0015 ; 97 +1254: dw $0024 ; 98 +1256: dw $002a ; 99 +1258: dw $002b ; 9a +124a: dw $0055 ; 9b +125c: dw $0056 ; 9c +125e: dw $00aa ; 9d +1260: dw $00ac ; 9e +1262: dw $01e0 ; 9f + +1264: dw $126e +1266: dw $1270 +1268: dw $1286 +126a: dw $129c +126c: dw $12b2 + +126e: dw $0000 + +1270: dw $0002 +1272: dw $0004 +1274: dw $0006 +1276: dw $0008 +1278: dw $000c +127a: dw $0010 +127c: dw $0018 +127e: dw $0020 +1280: dw $0030 +1282: dw $0040 +1284: dw $0060 + +1286: dw $0003 +1288: dw $0006 +128a: dw $0009 +128c: dw $000c +128e: dw $0012 +1290: dw $0018 +1292: dw $0024 +1294: dw $0030 +1296: dw $0048 +1298: dw $0060 +129a: dw $0090 + +129c: dw $0004 +129e: dw $0008 +12a0: dw $000c +12a2: dw $0010 +12a4: dw $0018 +12a6: dw $0020 +12a8: dw $0030 +12aa: dw $0040 +12ac: dw $0060 +12ae: dw $0080 +12b0: dw $00c0 + +12b2: dw $0006 +12b4: dw $000c +12b6: dw $0012 +12b8: dw $0018 +12ba: dw $0024 +12bc: dw $0030 +12be: dw $0048 +12c0: dw $0060 +12c2: dw $0090 +12c4: dw $00c0 +12c6: dw $0120 + +12c8: e4 f4 mov a,$f4 +12ca: 68 99 cmp a,#$99 +12cc: f0 01 beq $12cf +12ce: 6f ret + +12cf: e8 aa mov a,#$aa +12d1: c4 f4 mov $f4,a +12d3: e8 bb mov a,#$bb +12d5: c4 f5 mov $f5,a +12d7: e4 f4 mov a,$f4 +12d9: 68 cc cmp a,#$cc +12db: d0 fa bne $12d7 +12dd: 2f 1b bra $12fa +12df: eb f4 mov y,$f4 +12e1: d0 fc bne $12df +12e3: 7e f4 cmp y,$f4 +12e5: d0 0d bne $12f4 +12e7: e4 f5 mov a,$f5 +12e9: cb f4 mov $f4,y +12eb: d7 0a mov ($0a)+y,a +12ed: fc inc y +12ee: d0 f3 bne $12e3 +12f0: ab 0b inc $0b +12f2: 2f ef bra $12e3 +12f4: 10 ed bpl $12e3 +12f6: 7e f4 cmp y,$f4 +12f8: 10 e9 bpl $12e3 +12fa: e4 f6 mov a,$f6 +12fc: eb f7 mov y,$f7 +12fe: da 0a movw $0a,ya +1300: eb f4 mov y,$f4 +1302: e4 f5 mov a,$f5 +1304: cb f4 mov $f4,y +1306: d0 d7 bne $12df +1308: cd 31 mov x,#$31 +130a: d8 f1 mov $f1,x +130c: e8 00 mov a,#$00 +130e: 6f ret diff --git a/snes/Sting/Melfand Stories.s b/snes/Sting/Melfand Stories.s index 34337678..11d8cab0 100644 --- a/snes/Sting/Melfand Stories.s +++ b/snes/Sting/Melfand Stories.s @@ -428,43 +428,43 @@ 0750: 1f 08 00 jmp ($0008+x) ; vcmd dispatch table -0753: dw $0798 ; e0 -0755: dw $07da ; e1 -0757: dw $07e8 ; e2 -0759: dw $0820 ; e3 -075b: dw $0832 ; e4 +0753: dw $0798 ; e0 - set instrument +0755: dw $07da ; e1 - pan +0757: dw $07e8 ; e2 - pan fade +0759: dw $0820 ; e3 - vibrato on +075b: dw $0832 ; e4 - vibrato off 075d: dw $0b05 ; e5 -075f: dw $0850 ; e6 -0761: dw $0876 ; e7 -0763: dw $087f ; e8 -0765: dw $08b7 ; e9 -0767: dw $08c0 ; ea -0769: dw $08ca ; eb -076b: dw $0908 ; ec -076d: dw $0917 ; ed -076f: dw $0957 ; ee +075f: dw $0850 ; e6 - set quantization +0761: dw $0876 ; e7 - tempo +0763: dw $087f ; e8 - tempo fade +0765: dw $08b7 ; e9 - global transpose +0767: dw $08c0 ; ea - per-voice transpose +0769: dw $08ca ; eb - tremolo on +076b: dw $0908 ; ec - tremolo off +076d: dw $0917 ; ed - volume +076f: dw $0957 ; ee - volume fade 0771: dw $099a ; ef 0773: dw $09a6 ; f0 -0775: dw $09b9 ; f1 -0777: dw $0a39 ; f2 -0779: dw $0a40 ; f3 -077b: dw $0a2f ; f4 -077d: dw $0a49 ; f5 -077f: dw $0a72 ; f6 -0781: dw $0a7e ; f7 -0783: dw $0aa7 ; f8 +0775: dw $09b9 ; f1 - pitch slide +0777: dw $0a39 ; f2 - slur on +0779: dw $0a40 ; f3 - slur off +077b: dw $0a2f ; f4 - tuning +077d: dw $0a49 ; f5 - echo vbits/volume +077f: dw $0a72 ; f6 - disable echo +0781: dw $0a7e ; f7 - set echo params +0783: dw $0aa7 ; f8 - echo volume fade 0785: dw $0acb ; f9 -0787: dw $0b1d ; fa -0789: dw $0b2a ; fb -078b: dw $0b45 ; fc -078d: dw $0b55 ; fd -078f: dw $0b6e ; fe +0787: dw $0b1d ; fa - goto +0789: dw $0b2a ; fb - call subroutine +078b: dw $0b45 ; fc - end subroutine +078d: dw $0b55 ; fd - repeat start +078f: dw $0b6e ; fe - repeat end 0791: dw $0adc ; ff 0793: 80 setc 0794: a8 ca sbc a,#$ca 0796: 2f 04 bra $079c -; vcmd e0 +; vcmd e0 - set instrument 0798: 5d mov x,a 0799: 3f 0b 10 call $100b ; read a byte from voice ptr 079c: c4 0b mov $0b,a @@ -501,7 +501,7 @@ 07d6: 8f 00 0c mov $0c,#$00 07d9: 6f ret -; vcmd e1 +; vcmd e1 - pan 07da: 5d mov x,a 07db: 3f 0b 10 call $100b ; read a byte from voice ptr 07de: d4 b0 mov $b0+x,a @@ -509,7 +509,7 @@ 07e2: 0e 03 00 tset1 $0003 07e5: 5f ab 05 jmp $05ab -; vcmd e2 +; vcmd e2 - pan fade 07e8: 5d mov x,a 07e9: 3f 14 10 call $1014 ; read a word from voice ptr 07ec: c4 0b mov $0b,a @@ -536,7 +536,7 @@ 081a: d5 61 03 mov $0361+x,a 081d: 5f ab 05 jmp $05ab -; vcmd e3 +; vcmd e3 - vibrato on 0820: 5d mov x,a 0821: 3f 0b 10 call $100b ; read a byte from voice ptr 0824: d5 b2 03 mov $03b2+x,a @@ -544,7 +544,7 @@ 082a: d5 a3 03 mov $03a3+x,a 082d: 3f 0b 10 call $100b ; read a byte from voice ptr 0830: 2f 03 bra $0835 -; vcmd e4 +; vcmd e4 - vibrato off 0832: 5d mov x,a 0833: e8 00 mov a,#$00 0835: d4 d0 mov $d0+x,a @@ -560,7 +560,7 @@ 084a: 0e 03 00 tset1 $0003 084d: 5f ab 05 jmp $05ab -; vcmd e6 +; vcmd e6 - set quantization 0850: 5d mov x,a 0851: 3f 0b 10 call $100b ; read a byte from voice ptr 0854: 2d push a @@ -568,26 +568,26 @@ 0857: 28 70 and a,#$70 0859: 9f xcn a 085a: 5d mov x,a -085b: f5 46 11 mov a,$1146+x +085b: f5 46 11 mov a,$1146+x ; note dur%'s 085e: f8 0b mov x,$0b 0860: d5 d0 02 mov $02d0+x,a 0863: ae pop a 0864: 28 0f and a,#$0f 0866: 5d mov x,a -0867: f5 4e 11 mov a,$114e+x +0867: f5 4e 11 mov a,$114e+x ; per-note velocity 086a: f8 0b mov x,$0b 086c: d4 80 mov $80+x,a 086e: e4 64 mov a,$64 0870: 0e 03 00 tset1 $0003 0873: 5f ab 05 jmp $05ab -; vcmd e7 +; vcmd e7 - tempo 0876: 5d mov x,a 0877: 3f 0b 10 call $100b ; read a byte from voice ptr 087a: d4 22 mov $22+x,a 087c: 5f ab 05 jmp $05ab -; vcmd e8 +; vcmd e8 - tempo fade 087f: 5d mov x,a 0880: 3f 14 10 call $1014 ; read a word from voice ptr 0883: c4 0b mov $0b,a @@ -614,19 +614,19 @@ 08b1: d5 71 03 mov $0371+x,a 08b4: 5f ab 05 jmp $05ab -; vcmd e9 +; vcmd e9 - global transpose 08b7: 5d mov x,a 08b8: 3f 0b 10 call $100b ; read a byte from voice ptr 08bb: c4 07 mov $07,a 08bd: 5f ab 05 jmp $05ab -; vcmd ea +; vcmd ea - per-voice transpose 08c0: 5d mov x,a 08c1: 3f 0b 10 call $100b ; read a byte from voice ptr 08c4: d5 50 03 mov $0350+x,a 08c7: 5f ab 05 jmp $05ab -; vcmd eb +; vcmd eb - tremolo on 08ca: 5d mov x,a 08cb: e8 20 mov a,#$20 08cd: 24 65 and a,$65 @@ -660,7 +660,7 @@ 0903: c4 65 mov $65,a 0905: 5f ab 05 jmp $05ab -; vcmd ec +; vcmd ec - tremolo off 0908: 5d mov x,a 0909: e4 64 mov a,$64 090b: 4e 6a 00 tclr1 $006a @@ -669,7 +669,7 @@ 0912: c4 65 mov $65,a 0914: 5f ab 05 jmp $05ab -; vcmd ed +; vcmd ed - volume 0917: 5d mov x,a 0918: 3f 0b 10 call $100b ; read a byte from voice ptr 091b: c4 08 mov $08,a @@ -699,7 +699,7 @@ 0951: 0e 03 00 tset1 $0003 0954: 5f ab 05 jmp $05ab -; vcmd ee +; vcmd ee - volume fade 0957: 5d mov x,a 0958: 3f 14 10 call $1014 ; read a word from voice ptr 095b: c4 0b mov $0b,a @@ -752,7 +752,7 @@ 09b6: 8d 00 mov y,#$00 09b8: 6f ret -; vcmd f1 +; vcmd f1 - pitch slide 09b9: 5d mov x,a 09ba: 3f 0b 10 call $100b ; read a byte from voice ptr 09bd: c4 09 mov $09,a @@ -816,24 +816,24 @@ 0a2b: d5 70 03 mov $0370+x,a 0a2e: 6f ret -; vcmd f4 +; vcmd f4 - tuning 0a2f: 5d mov x,a 0a30: 3f 0b 10 call $100b ; read a byte from voice ptr 0a33: d5 51 03 mov $0351+x,a 0a36: 5f ab 05 jmp $05ab -; vcmd f2 +; vcmd f2 - slur on 0a39: 5d mov x,a 0a3a: 09 64 73 or ($73),($64) 0a3d: 5f ab 05 jmp $05ab -; vcmd f3 +; vcmd f3 - slur off 0a40: 5d mov x,a 0a41: e4 64 mov a,$64 0a43: 4e 73 00 tclr1 $0073 0a46: 5f ab 05 jmp $05ab -; vcmd f5 +; vcmd f5 - echo vbits/volume 0a49: 5d mov x,a 0a4a: 3f 0b 10 call $100b ; read a byte from voice ptr 0a4d: c4 6b mov $6b,a @@ -852,7 +852,7 @@ 0a6d: b2 65 clr5 $65 0a6f: 5f ab 05 jmp $05ab -; vcmd f6 +; vcmd f6 - disable echo 0a72: 5d mov x,a 0a73: e8 00 mov a,#$00 0a75: c4 75 mov $75,a @@ -860,7 +860,7 @@ 0a79: a2 65 set5 $65 0a7b: 5f ab 05 jmp $05ab -; vcmd f7 +; vcmd f7 - set echo params 0a7e: 5d mov x,a 0a7f: 3f 0b 10 call $100b ; read a byte from voice ptr 0a82: 3f 9b 0f call $0f9b @@ -884,7 +884,7 @@ 0aa3: ce pop x 0aa4: 5f ab 05 jmp $05ab -; vcmd f8 +; vcmd f8 - echo volume fade 0aa7: 5d mov x,a 0aa8: 3f 0b 10 call $100b ; read a byte from voice ptr 0aab: 28 c0 and a,#$c0 @@ -950,7 +950,7 @@ 0b17: d5 c2 03 mov $03c2+x,a 0b1a: 5f ab 05 jmp $05ab -; vcmd fa +; vcmd fa - goto 0b1d: 5d mov x,a 0b1e: 3f 14 10 call $1014 ; read a word from voice ptr 0b21: d4 13 mov $13+x,a @@ -958,12 +958,12 @@ 0b25: d4 12 mov $12+x,a 0b27: 5f ab 05 jmp $05ab -; vcmd fb +; vcmd fb - call subroutine 0b2a: 5d mov x,a 0b2b: 3f 14 10 call $1014 ; read a word from voice ptr 0b2e: fd mov y,a 0b2f: f4 12 mov a,$12+x -0b31: c7 e0 mov ($e0+x),a +0b31: c7 e0 mov ($e0+x),a ; push return address 0b33: f4 13 mov a,$13+x 0b35: bb e0 inc $e0+x 0b37: c7 e0 mov ($e0+x),a @@ -971,56 +971,58 @@ 0b3b: e4 08 mov a,$08 0b3d: d4 12 mov $12+x,a 0b3f: dd mov a,y -0b40: d4 13 mov $13+x,a +0b40: d4 13 mov $13+x,a ; jump to the destination address 0b42: 5f ab 05 jmp $05ab -; vcmd fc +; vcmd fc - end subroutine 0b45: 5d mov x,a 0b46: 9b e0 dec $e0+x 0b48: e7 e0 mov a,($e0+x) 0b4a: d4 13 mov $13+x,a 0b4c: 9b e0 dec $e0+x 0b4e: e7 e0 mov a,($e0+x) -0b50: d4 12 mov $12+x,a +0b50: d4 12 mov $12+x,a ; back to the return address 0b52: 5f ab 05 jmp $05ab -; vcmd fd +; vcmd fd - repeat start 0b55: 5d mov x,a 0b56: 3f 0b 10 call $100b ; read a byte from voice ptr -0b59: fd mov y,a +0b59: fd mov y,a ; arg1: repeat count 0b5a: f4 12 mov a,$12+x 0b5c: c7 e0 mov ($e0+x),a 0b5e: bb e0 inc $e0+x 0b60: f4 13 mov a,$13+x -0b62: c7 e0 mov ($e0+x),a +0b62: c7 e0 mov ($e0+x),a ; push the repeat start address to stack 0b64: bb e0 inc $e0+x 0b66: dd mov a,y -0b67: c7 e0 mov ($e0+x),a +0b67: c7 e0 mov ($e0+x),a ; push repeat count 0b69: bb e0 inc $e0+x 0b6b: 5f ab 05 jmp $05ab -; vcmd fe +; vcmd fe - repeat end 0b6e: 5d mov x,a 0b6f: 9b e0 dec $e0+x -0b71: e7 e0 mov a,($e0+x) +0b71: e7 e0 mov a,($e0+x) ; pop repeat count 0b73: 9c dec a -0b74: d0 07 bne $0b7d +0b74: d0 07 bne $0b7d ; repeat again if non-zero +; repeat over 0b76: 9b e0 dec $e0+x 0b78: 9b e0 dec $e0+x 0b7a: 5f ab 05 jmp $05ab - -0b7d: c7 e0 mov ($e0+x),a +; repeat again +0b7d: c7 e0 mov ($e0+x),a ; update the repeat count 0b7f: 9b e0 dec $e0+x 0b81: e7 e0 mov a,($e0+x) 0b83: d4 13 mov $13+x,a 0b85: 9b e0 dec $e0+x 0b87: e7 e0 mov a,($e0+x) -0b89: d4 12 mov $12+x,a +0b89: d4 12 mov $12+x,a ; back to the repeat start address 0b8b: bb e0 inc $e0+x 0b8d: bb e0 inc $e0+x -0b8f: bb e0 inc $e0+x +0b8f: bb e0 inc $e0+x ; restore the stack pointer 0b91: 5f ab 05 jmp $05ab +; dispatch cpucmd 0b94: 68 f0 cmp a,#$f0 0b96: 90 15 bcc $0bad 0b98: 28 0f and a,#$0f diff --git a/snes/Sting/Treasure Hunter G.s b/snes/Sting/Treasure Hunter G.s index 7aefbb33..75cb7cc5 100644 --- a/snes/Sting/Treasure Hunter G.s +++ b/snes/Sting/Treasure Hunter G.s @@ -665,27 +665,27 @@ 0d5f: fd mov y,a 0d60: 10 41 bpl $0da3 -0d62: 68 c8 cmp a,#$c8 +0d62: 68 c8 cmp a,#$c8 ; set note length 0d64: f0 1f beq $0d85 -0d66: 68 c9 cmp a,#$c9 +0d66: 68 c9 cmp a,#$c9 ; tie 0d68: f0 10 beq $0d7a -0d6a: 68 ca cmp a,#$ca +0d6a: 68 ca cmp a,#$ca ; rest 0d6c: f0 07 beq $0d75 -0d6e: 68 d0 cmp a,#$d0 +0d6e: 68 d0 cmp a,#$d0 ; main vcmds 0d70: 90 31 bcc $0da3 0d72: 5f 63 0e jmp $0e63 -; vcmd ea +; vcmd ca - rest 0d75: 42 d1 set2 $d1 0d77: 5f 0b 0e jmp $0e0b -; vcmd c9 +; vcmd c9 - tie 0d7a: 3f 66 16 call $1666 0d7d: d5 51 01 mov $0151+x,a 0d80: 72 d1 clr3 $d1 0d82: 5f 0b 0e jmp $0e0b -; vcmd c8 +; vcmd c8 - set note length 0d85: 3f 64 16 call $1664 ; read byte from voice ptr 0d88: fd mov y,a 0d89: 3f 8f 0d call $0d8f @@ -806,54 +806,54 @@ 0e74: 1f c2 00 jmp ($00c2+x) ; vcmd dispatch table -0e77: dw $0ed3 ; d0 -0e79: dw $0ffb ; d1 -0e7b: dw $0f1d ; d2 -0e7d: dw $0f3e ; d3 -0e7f: dw $0f5d ; d4 -0e81: dw $0f6c ; d5 -0e83: dw $0f9f ; d6 -0e85: dw $0f83 ; d7 -0e87: dw $1003 ; d8 -0e89: dw $0fc2 ; d9 -0e8b: dw $102b ; da -0e8d: dw $0fca ; db -0e8f: dw $0fd4 ; dc -0e91: dw $104d ; dd +0e77: dw $0ed3 ; d0 - set instrument +0e79: dw $0ffb ; d1 - master volume +0e7b: dw $0f1d ; d2 - set ASDR(1) +0e7d: dw $0f3e ; d3 - set ASDR(2) +0e7f: dw $0f5d ; d4 - set GAIN +0e81: dw $0f6c ; d5 - set ASDR / GAIN +0e83: dw $0f9f ; d6 - set quantization +0e85: dw $0f83 ; d7 - pitch envelope +0e87: dw $1003 ; d8 - pitch envelope (attack) +0e89: dw $0fc2 ; d9 - tempo +0e8b: dw $102b ; da - tempo fade +0e8d: dw $0fca ; db - volume +0e8f: dw $0fd4 ; dc - volume fade +0e91: dw $104d ; dd - tremolo on 0e93: dw $106a ; de 0e95: dw $10a8 ; df -0e97: dw $105e ; e0 -0e99: dw $10af ; e1 -0e9b: dw $10b7 ; e2 -0e9d: dw $10c0 ; e3 -0e9f: dw $10c9 ; e4 -0ea1: dw $10da ; e5 -0ea3: dw $10eb ; e6 -0ea5: dw $10f9 ; e7 -0ea7: dw $10fe ; e8 -0ea9: dw $1105 ; e9 -0eab: dw $110c ; ea -0ead: dw $1117 ; eb -0eaf: dw $111f ; ec -0eb1: dw $115a ; ed -0eb3: dw $116d ; ee -0eb5: dw $1186 ; ef +0e97: dw $105e ; e0 - tremolo off +0e99: dw $10af ; e1 - global transpose +0e9b: dw $10b7 ; e2 - per-voice transpose +0e9d: dw $10c0 ; e3 - tuning +0e9f: dw $10c9 ; e4 - vibrato on +0ea1: dw $10da ; e5 - vibrato off +0ea3: dw $10eb ; e6 - set pitch +0ea5: dw $10f9 ; e7 - get slur value +0ea7: dw $10fe ; e8 - slur on +0ea9: dw $1105 ; e9 - slur off +0eab: dw $110c ; ea - set echo (1) +0ead: dw $1117 ; eb - set echo (2) +0eaf: dw $111f ; ec - set FIR +0eb1: dw $115a ; ed - echo volume +0eb3: dw $116d ; ee - echo on +0eb5: dw $1186 ; ef - echo off 0eb7: dw $119f ; f0 0eb9: dw $11d1 ; f1 -0ebb: dw $11f9 ; f2 -0ebd: dw $1202 ; f3 -0ebf: dw $120a ; f4 +0ebb: dw $11f9 ; f2 - noise off +0ebd: dw $1202 ; f3 - pitch modulation +0ebf: dw $120a ; f4 - reset pitch 0ec1: dw $1212 ; f5 - goto 0ec3: dw $121e ; f6 - call subroutine 0ec5: dw $123f ; f7 - end subroutine -0ec7: dw $1259 ; f8 -0ec9: dw $1271 ; f9 +0ec7: dw $1259 ; f8 - repeat start +0ec9: dw $1271 ; f9 - repeat end 0ecb: 80 setc 0ecc: a8 10 sbc a,#$10 0ece: 8f 80 11 mov $11,#$80 0ed1: 2f 03 bra $0ed6 -; vcmd d0 +; vcmd d0 - set instrument 0ed3: 3f 64 16 call $1664 ; read byte from voice ptr 0ed6: c4 c5 mov $c5,a 0ed8: c8 10 cmp x,#$10 @@ -892,7 +892,7 @@ 0f19: d5 b0 01 mov $01b0+x,a 0f1c: 6f ret -; vcmd d2 +; vcmd d2 - set ASDR(1) 0f1d: 3f 64 16 call $1664 ; read byte from voice ptr 0f20: 08 80 or a,#$80 0f22: c4 c2 mov $c2,a @@ -909,7 +909,7 @@ 0f38: 3f 7a 16 call $167a ; set ADSR(1) 0f3b: 5f f9 0c jmp $0cf9 -; vcmd d3 +; vcmd d3 - set ASDR(2) 0f3e: 3f 64 16 call $1664 ; read byte from voice ptr 0f41: c4 c2 mov $c2,a 0f43: c8 10 cmp x,#$10 @@ -925,7 +925,7 @@ 0f57: 3f 7a 16 call $167a ; set ADSR(2) 0f5a: 5f f9 0c jmp $0cf9 -; vcmd d4 +; vcmd d4 - set GAIN 0f5d: 3f 64 16 call $1664 ; read byte from voice ptr 0f60: 28 1f and a,#$1f 0f62: 08 a0 or a,#$a0 @@ -933,7 +933,7 @@ 0f67: e2 d1 set7 $d1 0f69: 5f f9 0c jmp $0cf9 -; vcmd d5 +; vcmd d5 - set ASDR / GAIN 0f6c: f8 12 mov x,$12 0f6e: f2 d1 clr7 $d1 0f70: c8 10 cmp x,#$10 @@ -945,7 +945,7 @@ 0f7d: 3f 93 16 call $1693 0f80: 5f f9 0c jmp $0cf9 -; vcmd d7 +; vcmd d7 - pitch envelope 0f83: 3f 64 16 call $1664 ; read byte from voice ptr 0f86: c4 c2 mov $c2,a 0f88: 38 3f d2 and $d2,#$3f @@ -959,7 +959,7 @@ 0f9a: 22 d1 set1 $d1 0f9c: 5f f9 0c jmp $0cf9 -; vcmd d6 +; vcmd d6 - set quantization 0f9f: 3f 64 16 call $1664 ; read byte from voice ptr 0fa2: c4 c2 mov $c2,a 0fa4: 28 70 and a,#$70 @@ -977,18 +977,18 @@ 0fbd: 22 d1 set1 $d1 0fbf: 5f f9 0c jmp $0cf9 -; vcmd d9 +; vcmd d9 - tempo 0fc2: 3f 64 16 call $1664 ; read byte from voice ptr 0fc5: c4 0d mov $0d,a 0fc7: 5f f9 0c jmp $0cf9 -; vcmd db +; vcmd db - volume 0fca: 3f 64 16 call $1664 ; read byte from voice ptr 0fcd: d4 30 mov $30+x,a 0fcf: 22 d1 set1 $d1 0fd1: 5f f9 0c jmp $0cf9 -; vcmd dc +; vcmd dc - volume fade 0fd4: 3f 58 16 call $1658 ; read word from voice ptr 0fd7: eb c2 mov y,$c2 0fd9: db 31 mov $31+x,y @@ -1008,12 +1008,12 @@ 0ff5: d5 29 02 mov $0229+x,a 0ff8: 5f f9 0c jmp $0cf9 -; vcmd d1 +; vcmd d1 - master volume 0ffb: 3f 64 16 call $1664 ; read byte from voice ptr 0ffe: c4 10 mov $10,a 1000: 5f f9 0c jmp $0cf9 -; vcmd d8 +; vcmd d8 - pitch envelope (attack) 1003: 3f 58 16 call $1658 ; read word from voice ptr 1006: eb c2 mov y,$c2 1008: db 48 mov $48+x,y @@ -1033,7 +1033,7 @@ 1025: d5 f8 01 mov $01f8+x,a 1028: 5f f9 0c jmp $0cf9 -; vcmd da +; vcmd da - tempo fade 102b: 3f 58 16 call $1658 ; read word from voice ptr 102e: eb c2 mov y,$c2 1030: cb 08 mov $08,y @@ -1052,14 +1052,14 @@ 1047: 8f 00 0b mov $0b,#$00 104a: 5f f9 0c jmp $0cf9 -; vcmd dd +; vcmd dd - tremolo on 104d: 3f 64 16 call $1664 ; read byte from voice ptr 1050: d5 d0 02 mov $02d0+x,a 1053: 3f 64 16 call $1664 ; read byte from voice ptr 1056: d5 e9 02 mov $02e9+x,a 1059: 3f 64 16 call $1664 ; read byte from voice ptr 105c: 2f 07 bra $1065 -; vcmd e0 +; vcmd e0 - tremolo off 105e: f8 12 mov x,$12 1060: e8 00 mov a,#$00 1062: d5 00 03 mov $0300+x,a @@ -1100,29 +1100,29 @@ 10aa: d2 d1 clr6 $d1 10ac: 5f f9 0c jmp $0cf9 -; vcmd e1 +; vcmd e1 - global transpose 10af: 3f 64 16 call $1664 ; read byte from voice ptr 10b2: c4 0f mov $0f,a 10b4: 5f f9 0c jmp $0cf9 -; vcmd e2 +; vcmd e2 - per-voice transpose 10b7: 3f 64 16 call $1664 ; read byte from voice ptr 10ba: d5 80 01 mov $0180+x,a 10bd: 5f f9 0c jmp $0cf9 -; vcmd e3 +; vcmd e3 - tuning 10c0: 3f 64 16 call $1664 ; read byte from voice ptr 10c3: d5 81 01 mov $0181+x,a 10c6: 5f f9 0c jmp $0cf9 -; vcmd e4 +; vcmd e4 - vibrato on 10c9: 3f 64 16 call $1664 ; read byte from voice ptr 10cc: d5 89 02 mov $0289+x,a 10cf: 3f 66 16 call $1666 10d2: d5 a0 02 mov $02a0+x,a 10d5: 3f 66 16 call $1666 10d8: 2f 04 bra $10de -; vcmd e5 +; vcmd e5 - vibrato off 10da: f8 12 mov x,$12 10dc: e8 00 mov a,#$00 10de: d4 60 mov $60+x,a @@ -1131,39 +1131,39 @@ 10e5: d5 a1 02 mov $02a1+x,a 10e8: 5f f9 0c jmp $0cf9 -; vcmd e6 +; vcmd e6 - set pitch 10eb: 3f 58 16 call $1658 ; read word from voice ptr 10ee: d5 b0 01 mov $01b0+x,a 10f1: e4 c2 mov a,$c2 10f3: d5 b1 01 mov $01b1+x,a 10f6: 5f f9 0c jmp $0cf9 -; vcmd e7 +; vcmd e7 - get slur value 10f9: f8 12 mov x,$12 10fb: 5f f9 0c jmp $0cf9 -; vcmd e8 +; vcmd e8 - slur on 10fe: f8 12 mov x,$12 1100: 82 d1 set4 $d1 1102: 5f f9 0c jmp $0cf9 -; vcmd e9 +; vcmd e9 - slur off 1105: f8 12 mov x,$12 1107: 92 d1 clr4 $d1 1109: 5f f9 0c jmp $0cf9 -; vcmd ea +; vcmd ea - set echo (1) 110c: 3f 64 16 call $1664 ; read byte from voice ptr 110f: c4 07 mov $07,a 1111: 3f f3 16 call $16f3 1114: 5f f9 0c jmp $0cf9 -; vcmd eb +; vcmd eb - set echo (2) 1117: 3f 64 16 call $1664 ; read byte from voice ptr 111a: c4 06 mov $06,a 111c: 5f f9 0c jmp $0cf9 -; vcmd ec +; vcmd ec - set FIR 111f: 3f 64 16 call $1664 ; read byte from voice ptr 1122: 8f 00 c2 mov $c2,#$00 1125: 8f 3a c3 mov $c3,#$3a @@ -1197,7 +1197,7 @@ 1155: f8 12 mov x,$12 1157: 5f f9 0c jmp $0cf9 -; vcmd ed +; vcmd ed - echo volume 115a: 3f 64 16 call $1664 ; read byte from voice ptr 115d: 43 d0 0a bbs2 $d0,$116a 1160: 28 7f and a,#$7f @@ -1207,7 +1207,7 @@ 1168: b2 01 clr5 $01 116a: 5f f9 0c jmp $0cf9 -; vcmd ee +; vcmd ee - echo on 116d: f8 12 mov x,$12 116f: e4 15 mov a,$15 1171: c8 10 cmp x,#$10 @@ -1220,7 +1220,7 @@ 1180: 0e 02 00 tset1 $0002 1183: 5f f9 0c jmp $0cf9 -; vcmd ef +; vcmd ef - echo off 1186: f8 12 mov x,$12 1188: e4 15 mov a,$15 118a: c8 10 cmp x,#$10 @@ -1280,18 +1280,18 @@ 11f5: 3f 8f 0d call $0d8f 11f8: 6f ret -; vcmd f2 +; vcmd f2 - noise off 11f9: f8 12 mov x,$12 11fb: e8 00 mov a,#$00 11fd: c4 e3 mov $e3,a 11ff: 5f f9 0c jmp $0cf9 -; vcmd f3 +; vcmd f3 - pitch modulation 1202: f8 12 mov x,$12 1204: 09 15 ea or ($ea),($15) 1207: 5f f9 0c jmp $0cf9 -; vcmd f4 +; vcmd f4 - reset pitch 120a: f8 12 mov x,$12 120c: 8f 00 ea mov $ea,#$00 120f: 5f f9 0c jmp $0cf9 diff --git a/snes/System Vision/Battle Master - Kyuukyoku no Senshitachi ($0479).bin b/snes/System Vision/Battle Master - Kyuukyoku no Senshitachi ($0479).bin new file mode 100644 index 00000000..df857599 Binary files /dev/null and b/snes/System Vision/Battle Master - Kyuukyoku no Senshitachi ($0479).bin differ diff --git a/snes/System Vision/Battle Master - Kyuukyoku no Senshitachi.s b/snes/System Vision/Battle Master - Kyuukyoku no Senshitachi.s new file mode 100644 index 00000000..28286ead --- /dev/null +++ b/snes/System Vision/Battle Master - Kyuukyoku no Senshitachi.s @@ -0,0 +1,1777 @@ +0479: 20 clrp +047a: cd 7f mov x,#$7f +047c: bd mov sp,x +047d: e8 00 mov a,#$00 ; clear registers +047f: cd 00 mov x,#$00 +0481: 8d 00 mov y,#$00 +0483: 3f 49 07 call $0749 ; clear RAM +0486: 3f 7a 07 call $077a +0489: 3f b1 16 call $16b1 +048c: 3f 66 07 call $0766 +048f: 8f fe f4 mov $f4,#$fe ; set communication ports +0492: 78 ff f6 cmp $f6,#$ff +0495: d0 fb bne $0492 +0497: 8f 00 f4 mov $f4,#$00 +049a: 8f 00 f5 mov $f5,#$00 +049d: 8f 00 f6 mov $f6,#$00 +04a0: 8f 00 f7 mov $f7,#$00 +04a3: 8f 03 f1 mov $f1,#$03 +04a6: 3f b9 16 call $16b9 +04a9: 90 43 bcc $04ee +04ab: 5d mov x,a +04ac: 28 f0 and a,#$f0 +04ae: 68 10 cmp a,#$10 +04b0: f0 16 beq $04c8 +04b2: 68 20 cmp a,#$20 +04b4: f0 1a beq $04d0 +04b6: 68 30 cmp a,#$30 +04b8: f0 1e beq $04d8 +04ba: 68 ca cmp a,#$ca +04bc: b0 04 bcs $04c2 +04be: 68 40 cmp a,#$40 +04c0: b0 1b bcs $04dd +04c2: 68 f0 cmp a,#$f0 +04c4: f0 20 beq $04e6 +04c6: 2f 26 bra $04ee +04c8: 7d mov a,x +04c9: 28 0f and a,#$0f +04cb: 3f d9 13 call $13d9 +04ce: 2f 1e bra $04ee +04d0: 7d mov a,x +04d1: 28 0f and a,#$0f +04d3: 3f ac 14 call $14ac +04d6: 2f 16 bra $04ee +04d8: 3f 24 15 call $1524 +04db: 2f 11 bra $04ee +04dd: 7d mov a,x +04de: 80 setc +04df: a8 40 sbc a,#$40 +04e1: 3f 69 15 call $1569 +04e4: 2f 08 bra $04ee +04e6: 7d mov a,x +04e7: 28 0f and a,#$0f +04e9: 3f f7 14 call $14f7 +04ec: 2f 00 bra $04ee +04ee: e8 00 mov a,#$00 +04f0: f8 fd mov x,$fd +04f2: f0 02 beq $04f6 +04f4: 08 01 or a,#$01 +04f6: f8 fe mov x,$fe +04f8: f0 02 beq $04fc +04fa: 08 02 or a,#$02 +04fc: 68 00 cmp a,#$00 +04fe: f0 a6 beq $04a6 +0500: c4 58 mov $58,a +0502: e8 00 mov a,#$00 +0504: c4 33 mov $33,a +0506: e4 58 mov a,$58 +0508: 28 01 and a,#$01 +050a: f0 04 beq $0510 +050c: e4 30 mov a,$30 +050e: c4 fa mov $fa,a +0510: e4 58 mov a,$58 +0512: 28 02 and a,#$02 +0514: f0 04 beq $051a +0516: e4 31 mov a,$31 +0518: c4 fb mov $fb,a +051a: 3f a3 08 call $08a3 +051d: 3f 2f 09 call $092f +0520: e8 00 mov a,#$00 +0522: c4 59 mov $59,a +0524: c4 5a mov $5a,a +0526: f8 33 mov x,$33 +0528: f4 00 mov a,$00+x +052a: f0 6a beq $0596 +052c: 28 0f and a,#$0f +052e: 68 01 cmp a,#$01 +0530: d0 64 bne $0596 +0532: 7d mov a,x +0533: 1c asl a +0534: 5d mov x,a +0535: f5 5b 00 mov a,$005b+x +0538: c4 40 mov $40,a +053a: 3d inc x +053b: f5 5b 00 mov a,$005b+x +053e: c4 41 mov $41,a +0540: 8d 06 mov y,#$06 +0542: f7 40 mov a,($40)+y +0544: bc inc a +0545: 24 58 and a,$58 +0547: f0 4d beq $0596 +0549: 8d 04 mov y,#$04 +054b: f7 40 mov a,($40)+y +054d: c4 44 mov $44,a +054f: 8d 05 mov y,#$05 +0551: f7 40 mov a,($40)+y +0553: c4 45 mov $45,a +0555: 8d 00 mov y,#$00 +0557: f7 40 mov a,($40)+y +0559: 68 00 cmp a,#$00 +055b: f0 17 beq $0574 +055d: 68 01 cmp a,#$01 +055f: d0 03 bne $0564 +0561: 3f 52 0e call $0e52 +0564: 9c dec a +0565: d7 40 mov ($40)+y,a +0567: e4 44 mov a,$44 +0569: 8d 04 mov y,#$04 +056b: d7 40 mov ($40)+y,a +056d: e4 45 mov a,$45 +056f: fc inc y +0570: d7 40 mov ($40)+y,a +0572: 2f 22 bra $0596 +0574: cd 00 mov x,#$00 +0576: e7 44 mov a,($44+x) +0578: 3a 44 incw $44 +057a: 68 80 cmp a,#$80 ; check if next byte is a vcmd +057c: 10 05 bpl $0583 +057e: 3f 2f 0d call $0d2f +0581: 2f d2 bra $0555 +0583: 60 clrc ; dispatch current vcmd from table +0584: 28 7f and a,#$7f +0586: 1c asl a +0587: 5d mov x,a +0588: 3f 93 05 call $0593 +058b: f8 33 mov x,$33 +058d: f4 00 mov a,$00+x +058f: f0 05 beq $0596 +0591: 2f c2 bra $0555 +0593: 1f 44 0a jmp ($0a44+x) + +0596: ab 33 inc $33 +0598: 78 10 33 cmp $33,#$10 +059b: f0 03 beq $05a0 +059d: 5f 26 05 jmp $0526 + +05a0: eb 59 mov y,$59 +05a2: e8 5c mov a,#$5c +05a4: 3f 85 06 call $0685 +05a7: e0 clrv +05a8: e8 00 mov a,#$00 +05aa: c4 33 mov $33,a +05ac: f8 33 mov x,$33 +05ae: f4 00 mov a,$00+x +05b0: f0 44 beq $05f6 +05b2: 28 0f and a,#$0f +05b4: 68 01 cmp a,#$01 +05b6: d0 3e bne $05f6 +05b8: 7d mov a,x +05b9: 1c asl a +05ba: 5d mov x,a +05bb: f5 5b 00 mov a,$005b+x +05be: c4 40 mov $40,a +05c0: 3d inc x +05c1: f5 5b 00 mov a,$005b+x +05c4: c4 41 mov $41,a +05c6: 8d 06 mov y,#$06 +05c8: f7 40 mov a,($40)+y +05ca: bc inc a +05cb: 24 58 and a,$58 +05cd: f0 27 beq $05f6 +05cf: 8d 24 mov y,#$24 +05d1: f7 40 mov a,($40)+y +05d3: 28 30 and a,#$30 +05d5: f0 1f beq $05f6 +05d7: 3f 8a 06 call $068a +05da: 90 17 bcc $05f3 +05dc: 3f 79 06 call $0679 +05df: 8d 24 mov y,#$24 +05e1: f7 40 mov a,($40)+y +05e3: 2d push a +05e4: 28 08 and a,#$08 +05e6: d0 0a bne $05f2 +05e8: ae pop a +05e9: 28 10 and a,#$10 +05eb: d0 06 bne $05f3 +05ed: 3f c2 06 call $06c2 +05f0: 2f 01 bra $05f3 +05f2: ae pop a +05f3: 3f 97 0d call $0d97 +05f6: ab 33 inc $33 +05f8: 78 10 33 cmp $33,#$10 +05fb: d0 af bne $05ac +05fd: e8 00 mov a,#$00 +05ff: c4 33 mov $33,a +0601: f8 33 mov x,$33 +0603: f4 00 mov a,$00+x +0605: f0 61 beq $0668 +0607: 28 0f and a,#$0f +0609: 68 01 cmp a,#$01 +060b: d0 5b bne $0668 +060d: 7d mov a,x +060e: 1c asl a +060f: 5d mov x,a +0610: f5 5b 00 mov a,$005b+x +0613: c4 40 mov $40,a +0615: 3d inc x +0616: f5 5b 00 mov a,$005b+x +0619: c4 41 mov $41,a +061b: 8d 06 mov y,#$06 +061d: f7 40 mov a,($40)+y +061f: bc inc a +0620: 24 58 and a,$58 +0622: f0 44 beq $0668 +0624: 3f 8a 06 call $068a +0627: 90 3f bcc $0668 +0629: e8 00 mov a,#$00 +062b: c4 38 mov $38,a +062d: c4 39 mov $39,a +062f: c4 3a mov $3a,a +0631: 3f 47 09 call $0947 +0634: 90 02 bcc $0638 +0636: ab 3a inc $3a +0638: 3f c1 09 call $09c1 +063b: 90 08 bcc $0645 +063d: 8d 17 mov y,#$17 +063f: f7 40 mov a,($40)+y +0641: c4 38 mov $38,a +0643: ab 3a inc $3a +0645: e4 3a mov a,$3a +0647: f0 1f beq $0668 +0649: 3f 79 06 call $0679 +064c: 8d 0e mov y,#$0e +064e: f7 40 mov a,($40)+y +0650: c4 36 mov $36,a +0652: 8d 0f mov y,#$0f +0654: f7 40 mov a,($40)+y +0656: c4 37 mov $37,a +0658: 60 clrc +0659: e4 36 mov a,$36 +065b: 84 38 adc a,$38 +065d: c4 36 mov $36,a +065f: e4 37 mov a,$37 +0661: 84 39 adc a,$39 +0663: c4 37 mov $37,a +0665: 3f 3a 07 call $073a +0668: ab 33 inc $33 +066a: 78 10 33 cmp $33,#$10 +066d: d0 92 bne $0601 +066f: eb 5a mov y,$5a +0671: e8 4c mov a,#$4c +0673: 3f 85 06 call $0685 +0676: 5f a6 04 jmp $04a6 + +0679: e4 34 mov a,$34 +067b: 1c asl a +067c: 1c asl a +067d: 1c asl a +067e: 1c asl a +067f: c4 49 mov $49,a +0681: 6f ret + +0682: 60 clrc +0683: 84 49 adc a,$49 +0685: c4 f2 mov $f2,a +0687: cb f3 mov $f3,y +0689: 6f ret + +068a: f8 33 mov x,$33 +068c: f4 10 mov a,$10+x +068e: fb 20 mov y,$20+x +0690: cd 00 mov x,#$00 +0692: 8f 10 3a mov $3a,#$10 +0695: 8f 00 38 mov $38,#$00 +0698: 3e 33 cmp x,$33 +069a: f0 16 beq $06b2 +069c: 2d push a +069d: f4 00 mov a,$00+x +069f: ae pop a +06a0: f0 10 beq $06b2 +06a2: 74 10 cmp a,$10+x +06a4: d0 0c bne $06b2 +06a6: c4 34 mov $34,a +06a8: dd mov a,y +06a9: 74 20 cmp a,$20+x +06ab: b0 03 bcs $06b0 +06ad: 8f 01 38 mov $38,#$01 +06b0: e4 34 mov a,$34 +06b2: 3d inc x +06b3: 6e 3a e2 dbnz $3a,$0698 +06b6: c4 34 mov $34,a +06b8: e8 00 mov a,#$00 +06ba: 64 38 cmp a,$38 +06bc: f0 02 beq $06c0 +06be: 60 clrc +06bf: 6f ret + +06c0: 80 setc +06c1: 6f ret + +06c2: 8d 0e mov y,#$0e +06c4: f7 40 mov a,($40)+y +06c6: c4 36 mov $36,a +06c8: 8d 0f mov y,#$0f +06ca: f7 40 mov a,($40)+y +06cc: c4 37 mov $37,a +06ce: 3f 3a 07 call $073a +06d1: 8d 21 mov y,#$21 +06d3: f7 40 mov a,($40)+y +06d5: fd mov y,a +06d6: e8 05 mov a,#$05 +06d8: 3f 82 06 call $0682 +06db: 8d 22 mov y,#$22 +06dd: f7 40 mov a,($40)+y +06df: fd mov y,a +06e0: e8 06 mov a,#$06 +06e2: 3f 82 06 call $0682 +06e5: 8d 23 mov y,#$23 +06e7: f7 40 mov a,($40)+y +06e9: fd mov y,a +06ea: e8 07 mov a,#$07 +06ec: 3f 82 06 call $0682 +06ef: f8 33 mov x,$33 +06f1: f4 10 mov a,$10+x +06f3: 3f a0 0d call $0da0 +06f6: 8d 20 mov y,#$20 +06f8: f7 40 mov a,($40)+y +06fa: fd mov y,a +06fb: e8 04 mov a,#$04 +06fd: 3f 82 06 call $0682 +0700: 8d 09 mov y,#$09 +0702: f7 40 mov a,($40)+y +0704: c4 36 mov $36,a +0706: 3f 0a 07 call $070a +0709: 6f ret + +070a: 8d 27 mov y,#$27 +070c: f7 40 mov a,($40)+y +070e: 28 0f and a,#$0f +0710: 1c asl a +0711: 1c asl a +0712: 1c asl a +0713: 1c asl a +0714: c4 38 mov $38,a +0716: 8d 0a mov y,#$0a +0718: f7 40 mov a,($40)+y +071a: c4 3a mov $3a,a +071c: eb 38 mov y,$38 +071e: cf mul ya +071f: e4 3a mov a,$3a +0721: cb 38 mov $38,y +0723: 80 setc +0724: a4 38 sbc a,$38 +0726: c4 38 mov $38,a +0728: fd mov y,a +0729: e8 00 mov a,#$00 +072b: 3f 82 06 call $0682 +072e: e4 3a mov a,$3a +0730: 80 setc +0731: a4 38 sbc a,$38 +0733: fd mov y,a +0734: e8 01 mov a,#$01 +0736: 3f 82 06 call $0682 +0739: 6f ret + +073a: eb 36 mov y,$36 +073c: e8 02 mov a,#$02 +073e: 3f 82 06 call $0682 +0741: eb 37 mov y,$37 +0743: e8 03 mov a,#$03 +0745: 3f 82 06 call $0682 +0748: 6f ret + +0749: e8 00 mov a,#$00 +074b: 5d mov x,a +074c: af mov (x)+,a +074d: c8 5b cmp x,#$5b +074f: d0 fb bne $074c +0751: e8 00 mov a,#$00 +0753: c5 20 04 mov $0420,a +0756: c5 21 04 mov $0421,a +0759: c5 22 04 mov $0422,a +075c: c5 23 04 mov $0423,a +075f: c5 24 04 mov $0424,a +0762: c5 25 04 mov $0425,a +0765: 6f ret + +0766: 8f 30 f1 mov $f1,#$30 +0769: e8 00 mov a,#$00 +076b: c4 f1 mov $f1,a +076d: e8 00 mov a,#$00 +076f: c4 fa mov $fa,a +0771: c4 fb mov $fb,a +0773: c4 fc mov $fc,a +0775: e8 50 mov a,#$50 +0777: c4 30 mov $30,a +0779: 6f ret + +077a: e8 6d mov a,#$6d +077c: 8d ff mov y,#$ff +077e: 3f 85 06 call $0685 +0781: e8 3d mov a,#$3d +0783: 8d 00 mov y,#$00 +0785: 3f 85 06 call $0685 +0788: e8 4d mov a,#$4d +078a: 8d 00 mov y,#$00 +078c: 3f 85 06 call $0685 +078f: e8 7d mov a,#$7d +0791: 8d 00 mov y,#$00 +0793: 3f 85 06 call $0685 +0796: e8 0d mov a,#$0d +0798: 8d 00 mov y,#$00 +079a: 3f 85 06 call $0685 +079d: e8 2d mov a,#$2d +079f: 8d 00 mov y,#$00 +07a1: 3f 85 06 call $0685 +07a4: e8 6c mov a,#$6c +07a6: 8d 20 mov y,#$20 +07a8: 3f 85 06 call $0685 +07ab: e8 0c mov a,#$0c +07ad: 8d 00 mov y,#$00 +07af: 3f 85 06 call $0685 +07b2: e8 1c mov a,#$1c +07b4: 8d 00 mov y,#$00 +07b6: 3f 85 06 call $0685 +07b9: e8 2c mov a,#$2c +07bb: 8d 00 mov y,#$00 +07bd: 3f 85 06 call $0685 +07c0: e8 3c mov a,#$3c +07c2: 8d 00 mov y,#$00 +07c4: 3f 85 06 call $0685 +07c7: e8 0f mov a,#$0f +07c9: 8d 7f mov y,#$7f +07cb: 3f 85 06 call $0685 +07ce: e8 1f mov a,#$1f +07d0: 8d 00 mov y,#$00 +07d2: 3f 85 06 call $0685 +07d5: e8 2f mov a,#$2f +07d7: 8d 00 mov y,#$00 +07d9: 3f 85 06 call $0685 +07dc: e8 3f mov a,#$3f +07de: 8d 00 mov y,#$00 +07e0: 3f 85 06 call $0685 +07e3: e8 4f mov a,#$4f +07e5: 8d 00 mov y,#$00 +07e7: 3f 85 06 call $0685 +07ea: e8 5f mov a,#$5f +07ec: 8d 00 mov y,#$00 +07ee: 3f 85 06 call $0685 +07f1: e8 6f mov a,#$6f +07f3: 8d 00 mov y,#$00 +07f5: 3f 85 06 call $0685 +07f8: e8 7f mov a,#$7f +07fa: 8d 00 mov y,#$00 +07fc: 3f 85 06 call $0685 +07ff: 3f 1e 08 call $081e +0802: 00 nop +0803: 00 nop +0804: 00 nop +0805: 00 nop +0806: 00 nop +0807: 00 nop +0808: 00 nop +0809: 00 nop +080a: 00 nop +080b: 00 nop +080c: 3f 2e 08 call $082e +080f: e8 0c mov a,#$0c +0811: 8d 60 mov y,#$60 +0813: 3f 85 06 call $0685 +0816: e8 1c mov a,#$1c +0818: 8d 60 mov y,#$60 +081a: 3f 85 06 call $0685 +081d: 6f ret + +081e: e8 5c mov a,#$5c +0820: 8d ff mov y,#$ff +0822: 3f 85 06 call $0685 +0825: 6f ret + +0826: e8 4c mov a,#$4c +0828: 8d ff mov y,#$ff +082a: 3f 85 06 call $0685 +082d: 6f ret + +082e: e8 00 mov a,#$00 +0830: 8d 00 mov y,#$00 +0832: e8 00 mov a,#$00 +0834: 8d 00 mov y,#$00 +0836: 3f 85 06 call $0685 +0839: e8 01 mov a,#$01 +083b: 8d 00 mov y,#$00 +083d: 3f 85 06 call $0685 +0840: e8 10 mov a,#$10 +0842: 8d 00 mov y,#$00 +0844: 3f 85 06 call $0685 +0847: e8 11 mov a,#$11 +0849: 8d 00 mov y,#$00 +084b: 3f 85 06 call $0685 +084e: e8 20 mov a,#$20 +0850: 8d 00 mov y,#$00 +0852: 3f 85 06 call $0685 +0855: e8 21 mov a,#$21 +0857: 8d 00 mov y,#$00 +0859: 3f 85 06 call $0685 +085c: e8 30 mov a,#$30 +085e: 8d 00 mov y,#$00 +0860: 3f 85 06 call $0685 +0863: e8 31 mov a,#$31 +0865: 8d 00 mov y,#$00 +0867: 3f 85 06 call $0685 +086a: e8 40 mov a,#$40 +086c: 8d 00 mov y,#$00 +086e: 3f 85 06 call $0685 +0871: e8 41 mov a,#$41 +0873: 8d 00 mov y,#$00 +0875: 3f 85 06 call $0685 +0878: e8 50 mov a,#$50 +087a: 8d 00 mov y,#$00 +087c: 3f 85 06 call $0685 +087f: e8 51 mov a,#$51 +0881: 8d 00 mov y,#$00 +0883: 3f 85 06 call $0685 +0886: e8 60 mov a,#$60 +0888: 8d 00 mov y,#$00 +088a: 3f 85 06 call $0685 +088d: e8 61 mov a,#$61 +088f: 8d 00 mov y,#$00 +0891: 3f 85 06 call $0685 +0894: e8 70 mov a,#$70 +0896: 8d 00 mov y,#$00 +0898: 3f 85 06 call $0685 +089b: e8 71 mov a,#$71 +089d: 8d 00 mov y,#$00 +089f: 3f 85 06 call $0685 +08a2: 6f ret + +08a3: e5 20 04 mov a,$0420 +08a6: f0 4d beq $08f5 +08a8: e5 21 04 mov a,$0421 +08ab: d0 23 bne $08d0 +08ad: e5 20 04 mov a,$0420 +08b0: 5c lsr a +08b1: 90 05 bcc $08b8 +08b3: e8 00 mov a,#$00 +08b5: 3f ac 14 call $14ac +08b8: 5c lsr a +08b9: 90 05 bcc $08c0 +08bb: e8 01 mov a,#$01 +08bd: 3f ac 14 call $14ac +08c0: e8 00 mov a,#$00 +08c2: c5 20 04 mov $0420,a +08c5: c5 21 04 mov $0421,a +08c8: c5 22 04 mov $0422,a +08cb: c5 23 04 mov $0423,a +08ce: 2f 25 bra $08f5 +08d0: e5 26 04 mov a,$0426 +08d3: bc inc a +08d4: 28 0f and a,#$0f +08d6: c5 26 04 mov $0426,a +08d9: d0 1a bne $08f5 +08db: e5 21 04 mov a,$0421 +08de: 9c dec a +08df: c5 21 04 mov $0421,a +08e2: 60 clrc +08e3: e5 24 04 mov a,$0424 +08e6: 85 22 04 adc a,$0422 +08e9: c5 24 04 mov $0424,a +08ec: e5 25 04 mov a,$0425 +08ef: 85 23 04 adc a,$0423 +08f2: c5 25 04 mov $0425,a +08f5: 6f ret + +08f6: cd 00 mov x,#$00 +08f8: 1e 20 04 cmp x,$0420 +08fb: f0 2e beq $092b +08fd: f8 33 mov x,$33 +08ff: c4 47 mov $47,a +0901: f4 00 mov a,$00+x +0903: 5c lsr a +0904: 5c lsr a +0905: 5c lsr a +0906: 5c lsr a +0907: c4 46 mov $46,a +0909: 25 20 04 and a,$0420 +090c: f0 0c beq $091a +090e: e4 47 mov a,$47 +0910: 80 setc +0911: a5 25 04 sbc a,$0425 +0914: 10 15 bpl $092b +0916: e8 00 mov a,#$00 +0918: 2f 11 bra $092b +091a: e4 46 mov a,$46 +091c: 25 20 04 and a,$0420 +091f: f0 0b beq $092c +0921: e4 47 mov a,$47 +0923: 80 setc +0924: a5 25 04 sbc a,$0425 +0927: 10 02 bpl $092b +0929: e8 00 mov a,#$00 +092b: 6f ret + +092c: e4 47 mov a,$47 +092e: 6f ret + +092f: e5 20 04 mov a,$0420 +0932: f0 12 beq $0946 +0934: e8 3c mov a,#$3c +0936: 3f f6 08 call $08f6 +0939: fd mov y,a +093a: e8 0c mov a,#$0c +093c: 6d push y +093d: 3f 85 06 call $0685 +0940: ee pop y +0941: e8 1c mov a,#$1c +0943: 3f 85 06 call $0685 +0946: 6f ret + +0947: 8d 24 mov y,#$24 +0949: f7 40 mov a,($40)+y +094b: 28 04 and a,#$04 +094d: d0 02 bne $0951 +094f: 60 clrc +0950: 6f ret + +0951: 8d 13 mov y,#$13 +0953: f7 40 mov a,($40)+y +0955: f0 68 beq $09bf +0957: 8d 12 mov y,#$12 +0959: f7 40 mov a,($40)+y +095b: f0 30 beq $098d +095d: 9c dec a +095e: 8d 12 mov y,#$12 +0960: d7 40 mov ($40)+y,a +0962: 8d 0e mov y,#$0e +0964: f7 40 mov a,($40)+y +0966: c4 38 mov $38,a +0968: 8d 0f mov y,#$0f +096a: f7 40 mov a,($40)+y +096c: c4 39 mov $39,a +096e: 8d 14 mov y,#$14 +0970: f7 40 mov a,($40)+y +0972: c4 3a mov $3a,a +0974: 8d 15 mov y,#$15 +0976: f7 40 mov a,($40)+y +0978: c4 3b mov $3b,a +097a: 60 clrc +097b: ba 38 movw ya,$38 +097d: 7a 3a addw ya,$3a +097f: da 38 movw $38,ya +0981: 8d 0e mov y,#$0e +0983: d7 40 mov ($40)+y,a +0985: e4 39 mov a,$39 +0987: 8d 0f mov y,#$0f +0989: d7 40 mov ($40)+y,a +098b: 2f 32 bra $09bf +098d: 8d 10 mov y,#$10 +098f: f7 40 mov a,($40)+y +0991: c4 38 mov $38,a +0993: 8d 11 mov y,#$11 +0995: f7 40 mov a,($40)+y +0997: c4 39 mov $39,a +0999: 8d 0e mov y,#$0e +099b: f7 40 mov a,($40)+y +099d: c4 3a mov $3a,a +099f: 8d 0f mov y,#$0f +09a1: f7 40 mov a,($40)+y +09a3: c4 3b mov $3b,a +09a5: e4 38 mov a,$38 +09a7: 64 3a cmp a,$3a +09a9: d0 08 bne $09b3 +09ab: e4 39 mov a,$39 +09ad: 64 3b cmp a,$3b +09af: d0 02 bne $09b3 +09b1: 60 clrc +09b2: 6f ret + +09b3: e4 38 mov a,$38 +09b5: 8d 0e mov y,#$0e +09b7: d7 40 mov ($40)+y,a +09b9: e4 39 mov a,$39 +09bb: 8d 0f mov y,#$0f +09bd: d7 40 mov ($40)+y,a +09bf: 80 setc +09c0: 6f ret + +09c1: 8d 24 mov y,#$24 +09c3: f7 40 mov a,($40)+y +09c5: 28 02 and a,#$02 +09c7: d0 02 bne $09cb +09c9: 60 clrc +09ca: 6f ret + +09cb: 8d 00 mov y,#$00 +09cd: 8d 1a mov y,#$1a +09cf: f7 40 mov a,($40)+y +09d1: f0 6f beq $0a42 +09d3: 8d 19 mov y,#$19 +09d5: f7 40 mov a,($40)+y +09d7: f0 07 beq $09e0 +09d9: 9c dec a +09da: 8d 19 mov y,#$19 +09dc: d7 40 mov ($40)+y,a +09de: 2f 62 bra $0a42 +09e0: 8d 17 mov y,#$17 +09e2: f7 40 mov a,($40)+y +09e4: c4 36 mov $36,a +09e6: 8d 1b mov y,#$1b +09e8: f7 40 mov a,($40)+y +09ea: c4 38 mov $38,a +09ec: e8 00 mov a,#$00 +09ee: c4 37 mov $37,a +09f0: c4 39 mov $39,a +09f2: 8d 1f mov y,#$1f +09f4: f7 40 mov a,($40)+y +09f6: 68 00 cmp a,#$00 +09f8: d0 2b bne $0a25 +09fa: 60 clrc +09fb: ba 36 movw ya,$36 +09fd: 7a 38 addw ya,$38 +09ff: da 36 movw $36,ya +0a01: c4 37 mov $37,a +0a03: 8d 1d mov y,#$1d +0a05: f7 40 mov a,($40)+y +0a07: c4 38 mov $38,a +0a09: e4 36 mov a,$36 +0a0b: 64 38 cmp a,$38 +0a0d: e4 37 mov a,$37 +0a0f: a4 39 sbc a,$39 +0a11: 90 10 bcc $0a23 +0a13: e8 01 mov a,#$01 +0a15: 8d 1f mov y,#$1f +0a17: d7 40 mov ($40)+y,a +0a19: 8d 1d mov y,#$1d +0a1b: f7 40 mov a,($40)+y +0a1d: c4 36 mov $36,a +0a1f: e8 00 mov a,#$00 +0a21: c4 37 mov $37,a +0a23: 2f 17 bra $0a3c +0a25: 80 setc +0a26: ba 36 movw ya,$36 +0a28: 9a 38 subw ya,$38 +0a2a: da 36 movw $36,ya +0a2c: e4 37 mov a,$37 +0a2e: 10 f3 bpl $0a23 +0a30: e8 00 mov a,#$00 +0a32: 8d 1f mov y,#$1f +0a34: d7 40 mov ($40)+y,a +0a36: e8 00 mov a,#$00 +0a38: c4 36 mov $36,a +0a3a: c4 37 mov $37,a +0a3c: e4 36 mov a,$36 +0a3e: 8d 17 mov y,#$17 +0a40: d7 40 mov ($40)+y,a +0a42: 80 setc +0a43: 6f ret + +; vcmd table (80-96) +0a44: dw $0a72 ; 80 - set variables? +0a46: dw $0aae ; 81 - (2 bytes) +0a48: dw $0a89 ; 82 - start of song loop +0a4a: dw $0aef ; 83 - (7 bytes) +0a4c: dw $0b44 ; 84 - set tempo +0a4e: dw $0b56 ; 85 - set instrument +0a50: dw $0b60 ; 86 - (3 bytes) +0a52: dw $0b81 ; 87 - (1 byte) +0a54: dw $0b8a ; 88 - set ASDR bit 7 +0a56: dw $0b93 ; 89 - clear ASDR bits +0a58: dw $0b9c ; 8a - set up vibrato parameters +0a5a: dw $0be6 ; 8b - set ASDR bit 6 +0a5c: dw $0bef ; 8c - set ASDR bits on +0a5e: dw $0bf8 ; 8d - (2 bytes) +0a60: dw $0ca5 ; 8e - nop +0a62: dw $0ca6 ; 8f - set ASDR bit 5 +0a64: dw $0caf ; 90 - clear ASDR bits +0a66: dw $0cb8 ; 91 - restart channel +0a68: dw $0cd0 ; 92 - repeat section +0a6a: dw $0d12 ; 93 - set ASDR bit 4 +0a6c: dw $0d1b ; 94 - set panning +0a6e: dw $0e4b ; 95 - stop channel +0a70: dw $0cc4 ; 96 - start of song loop + +0a72: cd 00 mov x,#$00 ; vcmd 80 - set variables? +0a74: e7 44 mov a,($44+x) +0a76: 3a 44 incw $44 +0a78: c4 4b mov $4b,a +0a7a: c4 4d mov $4d,a +0a7c: e8 00 mov a,#$00 +0a7e: c4 4a mov $4a,a +0a80: c4 4c mov $4c,a +0a82: c4 4e mov $4e,a +0a84: c4 4f mov $4f,a +0a86: c4 50 mov $50,a +0a88: 6f ret + +0a89: cd 00 mov x,#$00 ; vcmd 82 - start of song loop +0a8b: e7 44 mov a,($44+x) +0a8d: 3a 44 incw $44 +0a8f: 8d 08 mov y,#$08 +0a91: d7 40 mov ($40)+y,a +0a93: 8d 0a mov y,#$0a +0a95: d7 40 mov ($40)+y,a +0a97: e8 00 mov a,#$00 +0a99: 8d 07 mov y,#$07 +0a9b: d7 40 mov ($40)+y,a +0a9d: 8d 09 mov y,#$09 +0a9f: d7 40 mov ($40)+y,a +0aa1: 8d 0b mov y,#$0b +0aa3: d7 40 mov ($40)+y,a +0aa5: 8d 0c mov y,#$0c +0aa7: d7 40 mov ($40)+y,a +0aa9: 8d 0d mov y,#$0d +0aab: d7 40 mov ($40)+y,a +0aad: 6f ret + +0aae: cd 00 mov x,#$00 ; vcmd 81 - (2 bytes) +0ab0: e7 44 mov a,($44+x) +0ab2: 3a 44 incw $44 +0ab4: c4 34 mov $34,a +0ab6: e7 44 mov a,($44+x) +0ab8: 3a 44 incw $44 +0aba: c4 36 mov $36,a +0abc: e4 34 mov a,$34 +0abe: c4 4d mov $4d,a +0ac0: e4 36 mov a,$36 +0ac2: c4 4e mov $4e,a +0ac4: e8 00 mov a,#$00 +0ac6: c4 4c mov $4c,a +0ac8: e4 4a mov a,$4a +0aca: c4 34 mov $34,a +0acc: e4 4b mov a,$4b +0ace: c4 35 mov $35,a +0ad0: e4 4c mov a,$4c +0ad2: c4 36 mov $36,a +0ad4: e4 4d mov a,$4d +0ad6: c4 37 mov $37,a +0ad8: 3f 23 16 call $1623 +0adb: e4 4e mov a,$4e +0add: c4 37 mov $37,a +0adf: e8 00 mov a,#$00 +0ae1: c4 36 mov $36,a +0ae3: 3f 2a 16 call $162a +0ae6: e4 34 mov a,$34 +0ae8: c4 4f mov $4f,a +0aea: e4 35 mov a,$35 +0aec: c4 50 mov $50,a +0aee: 6f ret + +0aef: cd 00 mov x,#$00 ; vcmd 83 - (7 bytes) +0af1: e7 44 mov a,($44+x) +0af3: 3a 44 incw $44 +0af5: c4 34 mov $34,a +0af7: e7 44 mov a,($44+x) +0af9: 3a 44 incw $44 +0afb: c4 36 mov $36,a +0afd: e4 34 mov a,$34 +0aff: 8d 0a mov y,#$0a +0b01: d7 40 mov ($40)+y,a +0b03: e4 36 mov a,$36 +0b05: 8d 0b mov y,#$0b +0b07: d7 40 mov ($40)+y,a +0b09: e8 00 mov a,#$00 +0b0b: 8d 09 mov y,#$09 +0b0d: d7 40 mov ($40)+y,a +0b0f: e7 44 mov a,($44+x) +0b11: 3a 44 incw $44 +0b13: c4 34 mov $34,a +0b15: e7 44 mov a,($44+x) +0b17: 3a 44 incw $44 +0b19: c4 35 mov $35,a +0b1b: e7 44 mov a,($44+x) +0b1d: 3a 44 incw $44 +0b1f: c4 36 mov $36,a +0b21: e7 44 mov a,($44+x) +0b23: 3a 44 incw $44 +0b25: c4 37 mov $37,a +0b27: 3f 23 16 call $1623 +0b2a: e7 44 mov a,($44+x) +0b2c: 3a 44 incw $44 +0b2e: c4 37 mov $37,a +0b30: e8 00 mov a,#$00 +0b32: c4 36 mov $36,a +0b34: 3f 2a 16 call $162a +0b37: e4 34 mov a,$34 +0b39: 8d 0c mov y,#$0c +0b3b: d7 40 mov ($40)+y,a +0b3d: e4 35 mov a,$35 +0b3f: 8d 0d mov y,#$0d +0b41: d7 40 mov ($40)+y,a +0b43: 6f ret + +0b44: cd 00 mov x,#$00 ; vcmd 84 - set tempo +0b46: e7 44 mov a,($44+x) +0b48: 3a 44 incw $44 +0b4a: c4 34 mov $34,a +0b4c: 8d 06 mov y,#$06 +0b4e: f7 40 mov a,($40)+y +0b50: c4 36 mov $36,a +0b52: 3f 44 0e call $0e44 +0b55: 6f ret + +0b56: cd 00 mov x,#$00 ; vcmd 85 - set instrument +0b58: e7 44 mov a,($44+x) +0b5a: 3a 44 incw $44 +0b5c: 3f 87 16 call $1687 +0b5f: 6f ret + +0b60: cd 00 mov x,#$00 ; vcmd 86 - (3 bytes) +0b62: e7 44 mov a,($44+x) +0b64: 3a 44 incw $44 +0b66: c4 34 mov $34,a +0b68: e7 44 mov a,($44+x) +0b6a: 3a 44 incw $44 +0b6c: c4 36 mov $36,a +0b6e: e7 44 mov a,($44+x) +0b70: 3a 44 incw $44 +0b72: c4 38 mov $38,a +0b74: e4 34 mov a,$34 +0b76: c4 54 mov $54,a +0b78: e4 36 mov a,$36 +0b7a: c4 52 mov $52,a +0b7c: e4 36 mov a,$36 +0b7e: c4 53 mov $53,a +0b80: 6f ret + +0b81: cd 00 mov x,#$00 ; vcmd 87 - (1 byte) +0b83: e7 44 mov a,($44+x) +0b85: 3a 44 incw $44 +0b87: c4 51 mov $51,a +0b89: 6f ret + +0b8a: 8d 24 mov y,#$24 ; vcmd 88 - set ASDR bit 7 +0b8c: f7 40 mov a,($40)+y +0b8e: 08 01 or a,#$01 +0b90: d7 40 mov ($40)+y,a +0b92: 6f ret + +0b93: 8d 24 mov y,#$24 ; vcmd 89 - clear ASDR bits +0b95: f7 40 mov a,($40)+y +0b97: 28 fe and a,#$fe +0b99: d7 40 mov ($40)+y,a +0b9b: 6f ret + +0b9c: cd 00 mov x,#$00 ; vcmd 8a - set up vibrato parameters +0b9e: e7 44 mov a,($44+x) +0ba0: 3a 44 incw $44 +0ba2: 8d 19 mov y,#$19 +0ba4: d7 40 mov ($40)+y,a +0ba6: 8d 1a mov y,#$1a +0ba8: d7 40 mov ($40)+y,a +0baa: e7 44 mov a,($44+x) +0bac: 3a 44 incw $44 +0bae: 2d push a +0baf: e7 44 mov a,($44+x) +0bb1: 3a 44 incw $44 +0bb3: 8d 1d mov y,#$1d +0bb5: d7 40 mov ($40)+y,a +0bb7: ce pop x +0bb8: 8d 00 mov y,#$00 +0bba: 9e div ya,x +0bbb: 8d 1b mov y,#$1b +0bbd: d7 40 mov ($40)+y,a +0bbf: e8 00 mov a,#$00 +0bc1: 8d 17 mov y,#$17 +0bc3: d7 40 mov ($40)+y,a +0bc5: 8d 1f mov y,#$1f +0bc7: d7 40 mov ($40)+y,a +0bc9: 6f ret + +0bca: 8d 24 mov y,#$24 +0bcc: f7 40 mov a,($40)+y +0bce: 28 02 and a,#$02 +0bd0: d0 01 bne $0bd3 +0bd2: 6f ret + +0bd3: 8d 1a mov y,#$1a +0bd5: f7 40 mov a,($40)+y +0bd7: 8d 19 mov y,#$19 +0bd9: d7 40 mov ($40)+y,a +0bdb: e8 00 mov a,#$00 +0bdd: 8d 17 mov y,#$17 +0bdf: d7 40 mov ($40)+y,a +0be1: 8d 1f mov y,#$1f +0be3: d7 40 mov ($40)+y,a +0be5: 6f ret + +0be6: 8d 24 mov y,#$24 ; vcmd 8b - set ASDR bit 6 +0be8: f7 40 mov a,($40)+y +0bea: 08 02 or a,#$02 +0bec: d7 40 mov ($40)+y,a +0bee: 6f ret + +0bef: 8d 24 mov y,#$24 ; vcmd 8c - set ASDR bits on +0bf1: f7 40 mov a,($40)+y +0bf3: 28 fb and a,#$fb +0bf5: d7 40 mov ($40)+y,a +0bf7: 6f ret + +0bf8: cd 00 mov x,#$00 ; vcmd 8d - (2 bytes) +0bfa: e7 44 mov a,($44+x) +0bfc: 3a 44 incw $44 +0bfe: 8d 12 mov y,#$12 +0c00: d7 40 mov ($40)+y,a +0c02: 8d 13 mov y,#$13 +0c04: d7 40 mov ($40)+y,a +0c06: e7 44 mov a,($44+x) +0c08: 3a 44 incw $44 +0c0a: 8d 16 mov y,#$16 +0c0c: d7 40 mov ($40)+y,a +0c0e: 6f ret + +0c0f: 2d push a +0c10: 8d 24 mov y,#$24 +0c12: f7 40 mov a,($40)+y +0c14: 28 04 and a,#$04 +0c16: ae pop a +0c17: d0 01 bne $0c1a +0c19: 6f ret + +0c1a: c4 36 mov $36,a +0c1c: 8d 16 mov y,#$16 +0c1e: f7 40 mov a,($40)+y +0c20: 60 clrc +0c21: 84 36 adc a,$36 +0c23: 10 02 bpl $0c27 +0c25: e8 01 mov a,#$01 +0c27: 68 55 cmp a,#$55 +0c29: 90 02 bcc $0c2d +0c2b: e8 55 mov a,#$55 +0c2d: 9c dec a +0c2e: c4 37 mov $37,a +0c30: e8 00 mov a,#$00 +0c32: c4 36 mov $36,a +0c34: 8d 28 mov y,#$28 +0c36: f7 40 mov a,($40)+y +0c38: c4 38 mov $38,a +0c3a: 8d 29 mov y,#$29 +0c3c: f7 40 mov a,($40)+y +0c3e: c4 39 mov $39,a +0c40: 3f ba 0d call $0dba +0c43: e4 3a mov a,$3a +0c45: 8d 10 mov y,#$10 +0c47: d7 40 mov ($40)+y,a +0c49: e4 3b mov a,$3b +0c4b: 8d 11 mov y,#$11 +0c4d: d7 40 mov ($40)+y,a +0c4f: 8d 0e mov y,#$0e +0c51: f7 40 mov a,($40)+y +0c53: c4 38 mov $38,a +0c55: 8d 0f mov y,#$0f +0c57: f7 40 mov a,($40)+y +0c59: c4 39 mov $39,a +0c5b: e4 3b mov a,$3b +0c5d: 64 39 cmp a,$39 +0c5f: b0 13 bcs $0c74 +0c61: 80 setc +0c62: e4 38 mov a,$38 +0c64: a4 3a sbc a,$3a +0c66: c4 38 mov $38,a +0c68: e4 39 mov a,$39 +0c6a: a4 3b sbc a,$3b +0c6c: c4 39 mov $39,a +0c6e: e8 ff mov a,#$ff +0c70: c4 3b mov $3b,a +0c72: 2f 11 bra $0c85 +0c74: 80 setc +0c75: e4 3a mov a,$3a +0c77: a4 38 sbc a,$38 +0c79: c4 38 mov $38,a +0c7b: e4 3b mov a,$3b +0c7d: a4 39 sbc a,$39 +0c7f: c4 39 mov $39,a +0c81: e8 00 mov a,#$00 +0c83: c4 3b mov $3b,a +0c85: 8d 13 mov y,#$13 +0c87: f7 40 mov a,($40)+y +0c89: 8d 12 mov y,#$12 +0c8b: d7 40 mov ($40)+y,a +0c8d: 5d mov x,a +0c8e: e4 38 mov a,$38 +0c90: eb 39 mov y,$39 +0c92: 9e div ya,x +0c93: f8 3b mov x,$3b +0c95: 10 03 bpl $0c9a +0c97: 48 ff eor a,#$ff +0c99: bc inc a +0c9a: 8d 14 mov y,#$14 +0c9c: d7 40 mov ($40)+y,a +0c9e: e4 3b mov a,$3b +0ca0: 8d 15 mov y,#$15 +0ca2: d7 40 mov ($40)+y,a +0ca4: 6f ret + +0ca5: 6f ret ; vcmd 8e - nop + +0ca6: 8d 24 mov y,#$24 ; vcmd 8f - set ASDR bit 5 +0ca8: f7 40 mov a,($40)+y +0caa: 08 04 or a,#$04 +0cac: d7 40 mov ($40)+y,a +0cae: 6f ret + +0caf: 8d 24 mov y,#$24 ; vcmd 90 - clear ASDR bits +0cb1: f7 40 mov a,($40)+y +0cb3: 28 fb and a,#$fb +0cb5: d7 40 mov ($40)+y,a +0cb7: 6f ret + +0cb8: 8d 02 mov y,#$02 ; vcmd 91 - restart channel +0cba: f7 40 mov a,($40)+y +0cbc: c4 44 mov $44,a +0cbe: fc inc y +0cbf: f7 40 mov a,($40)+y +0cc1: c4 45 mov $45,a +0cc3: 6f ret + +0cc4: 8d 02 mov y,#$02 ; vcmd 96 - start of song loop +0cc6: e4 44 mov a,$44 +0cc8: d7 40 mov ($40)+y,a +0cca: fc inc y +0ccb: e4 45 mov a,$45 +0ccd: d7 40 mov ($40)+y,a +0ccf: 6f ret + +0cd0: cd 00 mov x,#$00 ; vcmd 92 - repeat section +0cd2: e7 44 mov a,($44+x) +0cd4: 3a 44 incw $44 +0cd6: fd mov y,a +0cd7: 68 ff cmp a,#$ff +0cd9: f0 1a beq $0cf5 +0cdb: e7 44 mov a,($44+x) +0cdd: 68 ff cmp a,#$ff +0cdf: f0 06 beq $0ce7 +0ce1: 68 00 cmp a,#$00 +0ce3: f0 05 beq $0cea +0ce5: 2f 12 bra $0cf9 +0ce7: dd mov a,y +0ce8: 2f 0f bra $0cf9 +0cea: e8 ff mov a,#$ff +0cec: c7 44 mov ($44+x),a +0cee: 3a 44 incw $44 +0cf0: 3a 44 incw $44 +0cf2: 3a 44 incw $44 +0cf4: 6f ret + +0cf5: 3a 44 incw $44 +0cf7: 2f 05 bra $0cfe +0cf9: 9c dec a +0cfa: c7 44 mov ($44+x),a +0cfc: 3a 44 incw $44 +0cfe: e7 44 mov a,($44+x) +0d00: 3a 44 incw $44 +0d02: c4 34 mov $34,a +0d04: e7 44 mov a,($44+x) +0d06: 3a 44 incw $44 +0d08: c4 35 mov $35,a +0d0a: ba 44 movw ya,$44 +0d0c: 9a 34 subw ya,$34 +0d0e: e0 clrv +0d0f: da 44 movw $44,ya +0d11: 6f ret + +0d12: 8d 24 mov y,#$24 ; vcmd 93 - set ASDR bit 4 +0d14: f7 40 mov a,($40)+y +0d16: 08 08 or a,#$08 +0d18: d7 40 mov ($40)+y,a +0d1a: 6f ret + +0d1b: cd 00 mov x,#$00 ; vcmd 94 - set panning +0d1d: e7 44 mov a,($44+x) +0d1f: 3a 44 incw $44 +0d21: 8d 27 mov y,#$27 +0d23: d7 40 mov ($40)+y,a +0d25: 6f ret + +0d26: 8d 24 mov y,#$24 +0d28: f7 40 mov a,($40)+y +0d2a: 28 f7 and a,#$f7 +0d2c: d7 40 mov ($40)+y,a +0d2e: 6f ret + +0d2f: cd 00 mov x,#$00 +0d31: 2d push a +0d32: 8d 25 mov y,#$25 +0d34: f7 40 mov a,($40)+y +0d36: 8d 26 mov y,#$26 +0d38: d7 40 mov ($40)+y,a +0d3a: e7 44 mov a,($44+x) +0d3c: 3a 44 incw $44 +0d3e: 8d 00 mov y,#$00 +0d40: d7 40 mov ($40)+y,a +0d42: ae pop a +0d43: 8d 25 mov y,#$25 +0d45: d7 40 mov ($40)+y,a +0d47: 9c dec a +0d48: 30 36 bmi $0d80 +0d4a: c4 37 mov $37,a +0d4c: e8 00 mov a,#$00 +0d4e: c4 36 mov $36,a +0d50: 8d 28 mov y,#$28 +0d52: f7 40 mov a,($40)+y +0d54: c4 38 mov $38,a +0d56: 8d 29 mov y,#$29 +0d58: f7 40 mov a,($40)+y +0d5a: c4 39 mov $39,a +0d5c: 3f ba 0d call $0dba +0d5f: e4 3a mov a,$3a +0d61: 8d 0e mov y,#$0e +0d63: d7 40 mov ($40)+y,a +0d65: e4 3b mov a,$3b +0d67: 8d 0f mov y,#$0f +0d69: d7 40 mov ($40)+y,a +0d6b: 8d 24 mov y,#$24 +0d6d: f7 40 mov a,($40)+y +0d6f: 28 0f and a,#$0f +0d71: 08 20 or a,#$20 +0d73: d7 40 mov ($40)+y,a +0d75: 8d 25 mov y,#$25 +0d77: f7 40 mov a,($40)+y +0d79: 3f 0f 0c call $0c0f +0d7c: 3f ca 0b call $0bca +0d7f: 6f ret + +0d80: e8 00 mov a,#$00 +0d82: 8d 0e mov y,#$0e +0d84: d7 40 mov ($40)+y,a +0d86: 8d 0f mov y,#$0f +0d88: d7 40 mov ($40)+y,a +0d8a: 8d 24 mov y,#$24 +0d8c: f7 40 mov a,($40)+y +0d8e: 28 0f and a,#$0f +0d90: 08 10 or a,#$10 +0d92: d7 40 mov ($40)+y,a +0d94: 5f 75 0d jmp $0d75 + +0d97: 8d 24 mov y,#$24 +0d99: f7 40 mov a,($40)+y +0d9b: 28 c7 and a,#$c7 +0d9d: d7 40 mov ($40)+y,a +0d9f: 6f ret + +0da0: 5d mov x,a +0da1: f5 b2 0d mov a,$0db2+x +0da4: 04 5a or a,$5a +0da6: c4 5a mov $5a,a +0da8: 6f ret + +0da9: 5d mov x,a +0daa: f5 b2 0d mov a,$0db2+x +0dad: 04 59 or a,$59 +0daf: c4 59 mov $59,a +0db1: 6f ret + +0db2: db $01,$02,$04,$08,$10,$20,$40,$80 + +0dba: 8d 00 mov y,#$00 +0dbc: e4 37 mov a,$37 +0dbe: 80 setc +0dbf: a8 34 sbc a,#$34 +0dc1: b0 09 bcs $0dcc +0dc3: e4 37 mov a,$37 +0dc5: 80 setc +0dc6: a8 13 sbc a,#$13 +0dc8: b0 06 bcs $0dd0 +0dca: dc dec y +0dcb: 1c asl a +0dcc: 7a 36 addw ya,$36 +0dce: da 36 movw $36,ya +0dd0: e4 37 mov a,$37 +0dd2: 1c asl a +0dd3: 8d 00 mov y,#$00 +0dd5: cd 18 mov x,#$18 +0dd7: 9e div ya,x +0dd8: 5d mov x,a +0dd9: f6 2b 0e mov a,$0e2b+y +0ddc: c4 3b mov $3b,a +0dde: f6 2a 0e mov a,$0e2a+y +0de1: c4 3a mov $3a,a +0de3: f6 2d 0e mov a,$0e2d+y +0de6: 2d push a +0de7: f6 2c 0e mov a,$0e2c+y +0dea: ee pop y +0deb: 9a 3a subw ya,$3a +0ded: eb 36 mov y,$36 +0def: cf mul ya +0df0: dd mov a,y +0df1: 8d 00 mov y,#$00 +0df3: 7a 3a addw ya,$3a +0df5: cb 3b mov $3b,y +0df7: 1c asl a +0df8: 2b 3b rol $3b +0dfa: c4 3a mov $3a,a +0dfc: 2f 04 bra $0e02 +0dfe: 4b 3b lsr $3b +0e00: 7c ror a +0e01: 3d inc x +0e02: c8 06 cmp x,#$06 +0e04: d0 f8 bne $0dfe +0e06: c4 3a mov $3a,a +0e08: e4 38 mov a,$38 +0e0a: eb 3b mov y,$3b +0e0c: cf mul ya +0e0d: da 3c movw $3c,ya +0e0f: e4 38 mov a,$38 +0e11: eb 3a mov y,$3a +0e13: cf mul ya +0e14: 6d push y +0e15: e4 39 mov a,$39 +0e17: eb 3a mov y,$3a +0e19: cf mul ya +0e1a: 7a 3c addw ya,$3c +0e1c: da 3c movw $3c,ya +0e1e: e4 39 mov a,$39 +0e20: eb 3b mov y,$3b +0e22: cf mul ya +0e23: fd mov y,a +0e24: ae pop a +0e25: 7a 3c addw ya,$3c +0e27: da 3a movw $3a,ya +0e29: 6f ret + +0e2a: dw $085f +0e2c: dw $08de +0e2e: dw $0965 +0e30: dw $09f4 +0e32: dw $0a8c +0e34: dw $0b2c +0e36: dw $0bd6 +0e38: dw $0c8b +0e3a: dw $0d4a +0e3c: dw $0e14 +0e3e: dw $0eea +0e40: dw $0fcd +0e42: dw $10be + +0e44: e4 34 mov a,$34 +0e46: f8 36 mov x,$36 +0e48: d4 30 mov $30+x,a +0e4a: 6f ret + +0e4b: eb 33 mov y,$33 ; vcmd 95 - stop channel +0e4d: cd 00 mov x,#$00 +0e4f: d9 00 mov $00+y,x +0e51: 6f ret + +0e52: db $2d,$4d,$6d,$3f,$8a,$06,$90,$0f,$cd,$00,$e7,$44,$68,$93,$f0,$07,$f8,$33,$f4,$10,$3f,$a9,$0d,$ee,$ce,$ae,$6f,$14,$3c,$0f,$14,$4b,$0f,$14,$5a,$0f,$18,$69,$0f,$18,$78,$0f,$18,$87,$0f,$18,$96,$0f,$18,$a9,$0f,$18,$bc,$0f,$18,$cf,$0f,$18,$e2,$0f,$18,$f7,$0f,$15,$0e,$10,$18,$1d,$10,$1c,$30,$10,$1c,$3f,$10,$1c,$4e,$10,$16,$6c,$10,$16,$7f,$10,$16,$92,$10,$16,$a5,$10,$16,$b8,$10,$16,$cb,$10,$16,$de,$10,$16,$f1,$10,$16,$04,$11,$16,$17,$11,$16,$26,$11,$16,$35,$11,$16,$44,$11,$16,$53,$11,$16,$62,$11,$16,$71,$11,$16,$80,$11,$16,$8f,$11,$16,$9e,$11,$16,$ad,$11,$16,$bc,$11,$16,$cb,$11,$16,$da,$11,$16,$e9,$11,$16,$f8,$11,$16,$07,$12,$16,$16,$12,$16,$25,$12,$16,$34,$12,$16,$43,$12,$16,$52,$12,$16,$61,$12,$16,$70,$12,$16,$81,$12,$16,$90,$12,$16,$9f,$12,$16,$ae,$12,$16,$bd,$12,$16,$cc,$12,$16,$db,$12,$16,$ea,$12,$16,$f9,$12,$16,$08,$13,$16,$17,$13,$16,$26,$13,$16,$35,$13,$16,$44,$13,$16,$53,$13,$1e,$62,$13,$1e,$7d,$13,$1e,$b2,$13,$1e,$c1,$13,$00,$01,$84,$4c,$85,$01,$94,$08,$82,$4d,$25,$30,$00,$02,$95,$00,$01,$84,$4c,$85,$01,$94,$08,$82,$4d,$2a,$30,$00,$02,$95,$00,$01,$84,$4c,$85,$01,$94,$08,$82,$4d,$30,$30,$00,$02,$95,$00,$01,$84,$4c,$85,$00,$94,$08,$82,$7f,$20,$30,$00,$02,$95,$00,$01,$84,$4c,$85,$00,$94,$08,$82,$7f,$24,$30,$00,$02,$95,$00,$01,$84,$4c,$85,$00,$94,$08,$82,$7f,$2c,$30,$00,$02,$95,$00,$01,$84,$4c,$85,$0e,$94,$08,$82,$7f,$2c,$08,$85,$0d,$2c,$18,$00,$02,$95,$00,$01,$84,$4c,$85,$0e,$94,$08,$82,$7f,$29,$08,$85,$0d,$29,$30,$00,$02,$95,$00,$01,$84,$4c,$85,$0e,$94,$08,$82,$7f,$25,$08,$85,$0d,$25,$30,$00,$02,$95,$00,$01,$84,$4c,$85,$0e,$94,$08,$82,$7f,$25,$06,$85,$0d,$22,$0c,$00,$02,$95,$00,$01,$84,$4c,$85,$0e,$94,$08,$82,$7f,$25,$06,$22,$06,$85,$0d,$20,$0c,$00,$02,$95,$00,$01,$84,$4c,$85,$0e,$94,$08,$82,$7f,$25,$06,$24,$06,$22,$06,$85,$0d,$25,$18,$00,$02,$95,$00,$01,$84,$4c,$85,$0e,$94,$08,$82,$7f,$29,$18,$00,$02,$95,$00,$01,$84,$4c,$85,$0e,$94,$08,$82,$7f,$1d,$06,$85,$0d,$1d,$18,$00,$02,$95,$00,$01,$84,$4c,$85,$0b,$94,$08,$82,$7f,$29,$30,$00,$02,$95,$00,$01,$84,$4c,$85,$0b,$94,$08,$82,$7f,$25,$30,$00,$02,$95,$00,$01,$84,$4c,$85,$0b,$94,$08,$82,$7f,$22,$30,$00,$02,$95,$00,$01,$84,$4c,$85,$0b,$94,$08,$82,$7f,$20,$30,$00,$02,$95,$00,$01,$84,$4c,$85,$0f,$94,$08,$82,$7f,$25,$72,$85,$11,$25,$18,$00,$02,$95,$00,$01,$84,$4c,$85,$0f,$94,$08,$82,$7f,$24,$76,$85,$11,$24,$18,$00,$02,$95,$00,$01,$84,$4c,$85,$0f,$94,$08,$82,$7f,$23,$82,$85,$11,$23,$18,$00,$02,$95,$00,$01,$84,$4c,$85,$10,$94,$08,$82,$7f,$25,$5a,$85,$11,$25,$15,$00,$02,$95,$00,$01,$84,$4c,$85,$10,$94,$08,$82,$7f,$24,$60,$85,$11,$24,$15,$00,$02,$95,$00,$01,$84,$4c,$85,$10,$94,$08,$82,$7f,$23,$65,$85,$11,$23,$15,$00,$02,$95,$00,$01,$84,$4c,$85,$17,$94,$08,$82,$7f,$25,$52,$85,$18,$25,$0f,$00,$02,$95,$00,$01,$84,$4c,$85,$17,$94,$08,$82,$7f,$24,$53,$85,$18,$24,$0f,$00,$02,$95,$00,$01,$84,$4c,$85,$17,$94,$08,$82,$7f,$23,$5a,$85,$18,$23,$0f,$00,$02,$95,$00,$01,$84,$4c,$85,$0c,$94,$08,$82,$7f,$25,$52,$00,$02,$95,$00,$01,$84,$4c,$85,$0c,$94,$08,$82,$7f,$25,$18,$00,$02,$95,$00,$01,$84,$4c,$85,$0c,$94,$08,$82,$7f,$22,$1a,$00,$02,$95,$00,$01,$84,$4c,$85,$0c,$94,$08,$82,$7f,$20,$1c,$00,$02,$95,$00,$01,$84,$4c,$85,$08,$94,$08,$82,$7f,$25,$18,$00,$02,$95,$00,$01,$84,$4c,$85,$08,$94,$08,$82,$7f,$22,$1a,$00,$02,$95,$00,$01,$84,$4c,$85,$09,$94,$08,$82,$7f,$25,$2a,$00,$02,$95,$00,$01,$84,$4c,$85,$09,$94,$08,$82,$7f,$22,$2e,$00,$02,$95,$00,$01,$84,$4c,$85,$02,$94,$08,$82,$7f,$24,$38,$00,$02,$95,$00,$01,$84,$4c,$85,$03,$94,$08,$82,$7f,$25,$24,$00,$02,$95,$00,$01,$84,$4c,$85,$03,$94,$08,$82,$7f,$22,$28,$00,$02,$95,$00,$01,$84,$4c,$85,$04,$94,$08,$82,$7f,$25,$12,$00,$02,$95,$00,$01,$84,$4c,$85,$04,$94,$08,$82,$7f,$22,$16,$00,$02,$95,$00,$01,$84,$4c,$85,$05,$94,$08,$82,$7f,$25,$28,$00,$02,$95,$00,$01,$84,$4c,$85,$05,$94,$08,$82,$7f,$22,$30,$00,$02,$95,$00,$01,$84,$4c,$85,$05,$94,$08,$82,$7f,$20,$30,$00,$02,$95,$00,$01,$84,$4c,$85,$06,$94,$08,$82,$7f,$25,$18,$00,$02,$95,$00,$01,$84,$4c,$85,$07,$94,$08,$82,$7f,$25,$3a,$00,$02,$95,$00,$01,$84,$4c,$85,$07,$94,$08,$82,$7f,$24,$3e,$00,$02,$95,$00,$01,$84,$4c,$85,$07,$94,$08,$82,$7f,$22,$40,$00,$02,$95,$00,$01,$84,$4c,$85,$0a,$94,$08,$82,$7f,$27,$30,$00,$02,$95,$00,$01,$84,$4c,$85,$0a,$94,$08,$82,$7f,$24,$32,$00,$02,$95,$00,$01,$84,$4c,$85,$0a,$94,$08,$82,$7f,$22,$35,$00,$02,$95,$00,$01,$84,$4c,$85,$0d,$94,$08,$82,$7f,$22,$0c,$1d,$30,$00,$02,$95,$00,$01,$84,$4c,$85,$13,$94,$08,$82,$7f,$25,$48,$00,$02,$95,$00,$01,$84,$4c,$85,$13,$94,$08,$82,$7f,$24,$4a,$00,$02,$95,$00,$01,$84,$4c,$85,$13,$94,$08,$82,$7f,$22,$50,$00,$02,$95,$00,$01,$84,$4c,$85,$14,$94,$08,$82,$7f,$25,$50,$00,$02,$95,$00,$01,$84,$4c,$85,$14,$94,$08,$82,$7f,$24,$54,$00,$02,$95,$00,$01,$84,$4c,$85,$14,$94,$08,$82,$7f,$22,$56,$00,$02,$95,$00,$01,$84,$4c,$85,$15,$94,$08,$82,$7f,$25,$18,$00,$02,$95,$00,$01,$84,$4c,$85,$15,$94,$08,$82,$7f,$22,$1a,$00,$02,$95,$00,$01,$84,$4c,$85,$15,$94,$08,$82,$7f,$20,$1c,$00,$02,$95,$00,$01,$84,$4c,$85,$16,$94,$08,$82,$7f,$25,$18,$00,$02,$95,$00,$01,$84,$4c,$85,$16,$94,$08,$82,$7f,$22,$1a,$00,$02,$95,$00,$01,$84,$4c,$85,$16,$94,$08,$82,$7f,$20,$1c,$00,$02,$95,$00,$01,$84,$4c,$85,$12,$94,$08,$82,$7f,$25,$40,$00,$02,$95,$00,$01,$84,$4c,$85,$12,$94,$08,$82,$7f,$24,$42,$00,$02,$95,$00,$01,$84,$4c,$85,$12,$94,$08,$82,$7f,$22,$44,$00,$02,$95,$00,$01,$84,$4c,$85,$1a,$94,$08,$82,$28,$2e,$0c,$82,$14,$2e,$0c,$82,$0a,$2e,$0c,$82,$05,$2e,$18,$00,$02,$95,$00,$01,$84,$50,$85,$19,$94,$08,$82,$3c,$19,$06,$1b,$06,$1d,$06,$20,$06,$22,$06,$24,$06,$82,$0f,$19,$06,$1b,$06,$1d,$06,$20,$06,$22,$06,$24,$06,$82,$07,$19,$06,$1b,$06,$1d,$06,$20,$06,$22,$06,$24,$06,$00,$02,$95,$84,$4c,$85,$27,$94,$08,$82,$7f,$2a,$08,$24,$30,$00,$02,$95,$84,$4c,$85,$27,$94,$08,$82,$7f,$19,$08,$22,$30,$82,$1e,$22,$30,$82,$0a,$22,$30,$00,$02,$95,$6f + +13d9: e8 16 mov a,#$16 ; load song +13db: fd mov y,a +13dc: e8 e0 mov a,#$e0 +13de: da 3e movw $3e,ya +13e0: da 40 movw $40,ya +13e2: cd 00 mov x,#$00 +13e4: e7 3e mov a,($3e+x) +13e6: 3a 3e incw $3e +13e8: c4 36 mov $36,a +13ea: d0 01 bne $13ed +13ec: 6f ret + +13ed: 1c asl a +13ee: 60 clrc +13ef: 88 01 adc a,#$01 +13f1: 8d 00 mov y,#$00 +13f3: 7a 40 addw ya,$40 +13f5: da 40 movw $40,ya +13f7: e8 00 mov a,#$00 +13f9: c4 34 mov $34,a +13fb: e4 34 mov a,$34 +13fd: 1c asl a +13fe: 5d mov x,a +13ff: f4 5b mov a,$5b+x +1401: c4 42 mov $42,a +1403: 3d inc x +1404: f4 5b mov a,$5b+x +1406: c4 43 mov $43,a +1408: eb 34 mov y,$34 +140a: cd 10 mov x,#$10 +140c: d9 00 mov $00+y,x +140e: cd 0a mov x,#$0a +1410: d9 20 mov $20+y,x +1412: f8 34 mov x,$34 +1414: d9 10 mov $10+y,x +1416: cd 00 mov x,#$00 +1418: e7 3e mov a,($3e+x) +141a: 2d push a +141b: 3a 3e incw $3e +141d: e7 3e mov a,($3e+x) +141f: fd mov y,a +1420: 3a 3e incw $3e +1422: ae pop a +1423: 7a 40 addw ya,$40 +1425: da 44 movw $44,ya +1427: e8 00 mov a,#$00 +1429: 8d 00 mov y,#$00 +142b: d7 42 mov ($42)+y,a +142d: fc inc y +142e: d7 42 mov ($42)+y,a +1430: fc inc y +1431: e4 44 mov a,$44 +1433: d7 42 mov ($42)+y,a +1435: fc inc y +1436: e4 45 mov a,$45 +1438: d7 42 mov ($42)+y,a +143a: fc inc y +143b: e4 44 mov a,$44 +143d: d7 42 mov ($42)+y,a +143f: fc inc y +1440: e4 45 mov a,$45 +1442: d7 42 mov ($42)+y,a +1444: fc inc y +1445: e8 00 mov a,#$00 +1447: d7 42 mov ($42)+y,a +1449: fc inc y +144a: e8 00 mov a,#$00 +144c: d7 42 mov ($42)+y,a +144e: fc inc y +144f: ad 28 cmp y,#$28 +1451: d0 f9 bne $144c +1453: ab 34 inc $34 +1455: e4 36 mov a,$36 +1457: 64 34 cmp a,$34 +1459: d0 a0 bne $13fb +145b: e8 10 mov a,#$10 +145d: 64 34 cmp a,$34 +145f: f0 1b beq $147c +1461: f8 34 mov x,$34 +1463: e5 f3 14 mov a,$14f3 +1466: 74 00 cmp a,$00+x +1468: d0 0a bne $1474 +146a: eb 34 mov y,$34 +146c: cd 00 mov x,#$00 +146e: d9 00 mov $00+y,x +1470: d9 20 mov $20+y,x +1472: d9 10 mov $10+y,x +1474: ab 34 inc $34 +1476: e8 10 mov a,#$10 +1478: 64 34 cmp a,$34 +147a: d0 e5 bne $1461 +147c: cd 00 mov x,#$00 +147e: f5 f3 14 mov a,$14f3+x +1481: cd 00 mov x,#$00 +1483: 8d 10 mov y,#$10 +1485: 74 00 cmp a,$00+x +1487: d0 08 bne $1491 +1489: 2d push a +148a: f4 00 mov a,$00+x +148c: 08 01 or a,#$01 +148e: d4 00 mov $00+x,a +1490: ae pop a +1491: 3d inc x +1492: fe f1 dbnz y,$1485 +1494: e8 50 mov a,#$50 +1496: c4 30 mov $30,a +1498: e8 00 mov a,#$00 +149a: c5 20 04 mov $0420,a +149d: e8 0c mov a,#$0c +149f: 8d 3c mov y,#$3c +14a1: 3f 85 06 call $0685 +14a4: e8 1c mov a,#$1c +14a6: 8d 3c mov y,#$3c +14a8: 3f 85 06 call $0685 +14ab: 6f ret + +14ac: e8 00 mov a,#$00 +14ae: c4 59 mov $59,a +14b0: 5d mov x,a +14b1: f5 f3 14 mov a,$14f3+x +14b4: 08 01 or a,#$01 +14b6: cd 00 mov x,#$00 +14b8: 8d 10 mov y,#$10 +14ba: 74 00 cmp a,$00+x +14bc: d0 2a bne $14e8 +14be: 2d push a +14bf: 4d push x +14c0: 6d push y +14c1: d8 33 mov $33,x +14c3: 7d mov a,x +14c4: 1c asl a +14c5: 5d mov x,a +14c6: f5 5b 00 mov a,$005b+x +14c9: c4 40 mov $40,a +14cb: 3d inc x +14cc: f5 5b 00 mov a,$005b+x +14cf: c4 41 mov $41,a +14d1: 3f 8a 06 call $068a +14d4: 90 0a bcc $14e0 +14d6: 3f 79 06 call $0679 +14d9: f8 33 mov x,$33 +14db: f4 10 mov a,$10+x +14dd: 3f a9 0d call $0da9 +14e0: ee pop y +14e1: ce pop x +14e2: e8 00 mov a,#$00 +14e4: d5 00 00 mov $0000+x,a +14e7: ae pop a +14e8: 3d inc x +14e9: fe cf dbnz y,$14ba +14eb: eb 59 mov y,$59 +14ed: e8 5c mov a,#$5c +14ef: 3f 85 06 call $0685 +14f2: 6f ret + +14f3: 10 20 bpl $1515 +14f5: 6f ret + +14f6: 6f ret + +14f7: cd 00 mov x,#$00 +14f9: 1e 20 04 cmp x,$0420 +14fc: f0 01 beq $14ff +14fe: 6f ret + +14ff: c5 20 04 mov $0420,a +1502: cc 21 04 mov $0421,y +1505: dd mov a,y +1506: 5d mov x,a +1507: e8 7f mov a,#$7f +1509: 8d 00 mov y,#$00 +150b: 9e div ya,x +150c: c5 23 04 mov $0423,a +150f: cb 34 mov $34,y +1511: dd mov a,y +1512: 60 clrc +1513: 84 34 adc a,$34 +1515: 60 clrc +1516: 84 34 adc a,$34 +1518: c5 22 04 mov $0422,a +151b: e8 00 mov a,#$00 +151d: c5 24 04 mov $0424,a +1520: c5 25 04 mov $0425,a +1523: 6f ret + +1524: e8 00 mov a,#$00 +1526: 3f ac 14 call $14ac +1529: 8f aa f4 mov $f4,#$aa +152c: 8f bb f5 mov $f5,#$bb +152f: 78 cc f4 cmp $f4,#$cc +1532: d0 fb bne $152f +1534: 2f 19 bra $154f +1536: eb f4 mov y,$f4 +1538: d0 fc bne $1536 +153a: 7e f4 cmp y,$f4 +153c: d0 0b bne $1549 +153e: e4 f5 mov a,$f5 +1540: cb f4 mov $f4,y +1542: d7 3e mov ($3e)+y,a +1544: fc inc y +1545: d0 f3 bne $153a +1547: ab 3f inc $3f +1549: 10 ef bpl $153a +154b: 7e f4 cmp y,$f4 +154d: 10 eb bpl $153a +154f: ba f6 movw ya,$f6 +1551: da 3e movw $3e,ya +1553: ba f4 movw ya,$f4 +1555: c4 f4 mov $f4,a +1557: dd mov a,y +1558: 5d mov x,a +1559: d0 db bne $1536 +155b: 8f 00 f4 mov $f4,#$00 +155e: 8f 00 f5 mov $f5,#$00 +1561: 8f 00 f6 mov $f6,#$00 +1564: 8f 00 f7 mov $f7,#$00 +1567: 6f ret + +1568: 6f ret + +1569: c4 34 mov $34,a +156b: 5c lsr a +156c: c4 3e mov $3e,a +156e: e8 00 mov a,#$00 +1570: c4 3f mov $3f,a +1572: 8d 00 mov y,#$00 +1574: 7a 3e addw ya,$3e +1576: 7a 3e addw ya,$3e +1578: 7a 3e addw ya,$3e +157a: da 3e movw $3e,ya +157c: e8 0e mov a,#$0e +157e: fd mov y,a +157f: e8 6d mov a,#$6d +1581: 7a 3e addw ya,$3e +1583: cd 00 mov x,#$00 +1585: da 3e movw $3e,ya +1587: e4 34 mov a,$34 +1589: 28 01 and a,#$01 +158b: 60 clrc +158c: 88 06 adc a,#$06 +158e: c4 36 mov $36,a +1590: 60 clrc +1591: 88 08 adc a,#$08 +1593: c4 34 mov $34,a +1595: e7 3e mov a,($3e+x) +1597: c4 37 mov $37,a +1599: 3a 3e incw $3e +159b: ba 3e movw ya,$3e +159d: da 40 movw $40,ya +159f: f8 34 mov x,$34 +15a1: e8 00 mov a,#$00 +15a3: 74 00 cmp a,$00+x +15a5: f0 07 beq $15ae +15a7: e4 37 mov a,$37 +15a9: 74 20 cmp a,$20+x +15ab: 10 01 bpl $15ae +15ad: 6f ret + +15ae: e4 37 mov a,$37 +15b0: d4 20 mov $20+x,a +15b2: e4 36 mov a,$36 +15b4: d4 10 mov $10+x,a +15b6: e8 21 mov a,#$21 +15b8: d4 00 mov $00+x,a +15ba: e4 34 mov a,$34 +15bc: 1c asl a +15bd: 5d mov x,a +15be: f4 5b mov a,$5b+x +15c0: c4 42 mov $42,a +15c2: 3d inc x +15c3: f4 5b mov a,$5b+x +15c5: c4 43 mov $43,a +15c7: cd 00 mov x,#$00 +15c9: e7 3e mov a,($3e+x) +15cb: 2d push a +15cc: 3a 3e incw $3e +15ce: e7 3e mov a,($3e+x) +15d0: fd mov y,a +15d1: 3a 3e incw $3e +15d3: ae pop a +15d4: da 44 movw $44,ya +15d6: e8 00 mov a,#$00 +15d8: 8d 00 mov y,#$00 +15da: d7 42 mov ($42)+y,a +15dc: fc inc y +15dd: d7 42 mov ($42)+y,a +15df: fc inc y +15e0: e4 44 mov a,$44 +15e2: d7 42 mov ($42)+y,a +15e4: fc inc y +15e5: e4 45 mov a,$45 +15e7: d7 42 mov ($42)+y,a +15e9: fc inc y +15ea: e4 44 mov a,$44 +15ec: d7 42 mov ($42)+y,a +15ee: fc inc y +15ef: e4 45 mov a,$45 +15f1: d7 42 mov ($42)+y,a +15f3: fc inc y +15f4: e8 01 mov a,#$01 +15f6: d7 42 mov ($42)+y,a +15f8: fc inc y +15f9: e8 00 mov a,#$00 +15fb: d7 42 mov ($42)+y,a +15fd: fc inc y +15fe: ad 28 cmp y,#$28 +1600: d0 f9 bne $15fb +1602: 8d 06 mov y,#$06 +1604: e8 01 mov a,#$01 +1606: d7 42 mov ($42)+y,a +1608: e8 32 mov a,#$32 +160a: c4 31 mov $31,a +160c: e8 0c mov a,#$0c +160e: 8d 3c mov y,#$3c +1610: 3f 85 06 call $0685 +1613: e8 1c mov a,#$1c +1615: 8d 3c mov y,#$3c +1617: 3f 85 06 call $0685 +161a: 6f ret + +161b: 6f ret + +161c: e4 34 mov a,$34 +161e: eb 35 mov y,$35 +1620: 7a 36 addw ya,$36 +1622: 6f ret + +1623: e4 34 mov a,$34 +1625: eb 35 mov y,$35 +1627: 9a 36 subw ya,$36 +1629: 6f ret + +162a: e4 35 mov a,$35 +162c: 0d push psw +162d: 10 0d bpl $163c +162f: e8 00 mov a,#$00 +1631: 80 setc +1632: a4 34 sbc a,$34 +1634: c4 34 mov $34,a +1636: e8 00 mov a,#$00 +1638: a4 35 sbc a,$35 +163a: c4 35 mov $35,a +163c: 3f 50 16 call $1650 +163f: 8e pop psw +1640: 10 0d bpl $164f +1642: e8 00 mov a,#$00 +1644: 80 setc +1645: a4 34 sbc a,$34 +1647: c4 34 mov $34,a +1649: e8 00 mov a,#$00 +164b: a4 35 sbc a,$35 +164d: c4 35 mov $35,a +164f: 6f ret + +1650: 4d push x +1651: 6d push y +1652: cd 10 mov x,#$10 +1654: e8 00 mov a,#$00 +1656: c4 38 mov $38,a +1658: c4 39 mov $39,a +165a: 2b 34 rol $34 +165c: 2b 35 rol $35 +165e: 2b 38 rol $38 +1660: 2b 39 rol $39 +1662: e4 38 mov a,$38 +1664: 80 setc +1665: a4 36 sbc a,$36 +1667: fd mov y,a +1668: e4 39 mov a,$39 +166a: a4 37 sbc a,$37 +166c: 90 04 bcc $1672 +166e: eb 38 mov y,$38 +1670: e4 39 mov a,$39 +1672: 2b 34 rol $34 +1674: 2b 35 rol $35 +1676: 1d dec x +1677: d0 e5 bne $165e +1679: ee pop y +167a: ce pop x +167b: 6f ret + +167c: e4 34 mov a,$34 +167e: eb 35 mov y,$35 +1680: a8 80 sbc a,#$80 +1682: 90 01 bcc $1685 +1684: fc inc y +1685: dd mov a,y +1686: 6f ret + +1687: 2d push a +1688: 8d 20 mov y,#$20 +168a: d7 40 mov ($40)+y,a +168c: e8 ff mov a,#$ff +168e: 8d 21 mov y,#$21 +1690: d7 40 mov ($40)+y,a +1692: e8 e0 mov a,#$e0 +1694: 8d 22 mov y,#$22 +1696: d7 40 mov ($40)+y,a +1698: e8 b8 mov a,#$b8 +169a: 8d 23 mov y,#$23 +169c: d7 40 mov ($40)+y,a +169e: ae pop a +169f: 1c asl a +16a0: 5d mov x,a +16a1: f5 27 04 mov a,$0427+x +16a4: 3d inc x +16a5: 8d 29 mov y,#$29 +16a7: d7 40 mov ($40)+y,a +16a9: f5 27 04 mov a,$0427+x +16ac: 8d 28 mov y,#$28 +16ae: d7 40 mov ($40)+y,a +16b0: 6f ret + +16b1: e8 5d mov a,#$5d +16b3: 8d 25 mov y,#$25 +16b5: 3f 85 06 call $0685 +16b8: 6f ret + +16b9: e4 f4 mov a,$f4 +16bb: 64 f4 cmp a,$f4 +16bd: d0 0f bne $16ce +16bf: 68 00 cmp a,#$00 +16c1: f0 0b beq $16ce +16c3: eb f5 mov y,$f5 +16c5: 8f f3 f1 mov $f1,#$f3 +16c8: cd 00 mov x,#$00 +16ca: d8 f4 mov $f4,x +16cc: 80 setc +16cd: 6f ret + +16ce: 60 clrc +16cf: 6f ret diff --git a/snes/System Vision/Chester Cheetah - Too Cool to Fool ($0E36).bin b/snes/System Vision/Chester Cheetah - Too Cool to Fool ($0E36).bin new file mode 100644 index 00000000..59d62924 Binary files /dev/null and b/snes/System Vision/Chester Cheetah - Too Cool to Fool ($0E36).bin differ diff --git a/snes/System Vision/Chester Cheetah - Too Cool to Fool.s b/snes/System Vision/Chester Cheetah - Too Cool to Fool.s new file mode 100644 index 00000000..26797e0c --- /dev/null +++ b/snes/System Vision/Chester Cheetah - Too Cool to Fool.s @@ -0,0 +1,1682 @@ +0530: 20 clrp +0531: cd 7f mov x,#$7f +0533: bd mov sp,x +0534: e8 00 mov a,#$00 ; clear registers +0536: cd 00 mov x,#$00 +0538: 8d 00 mov y,#$00 +053a: 3f 93 07 call $0793 ; clear RAM +053d: 3f c4 07 call $07c4 +0540: 3f 4c 13 call $134c +0543: 3f b0 07 call $07b0 +0546: 8f ee f4 mov $f4,#$eeca ; set communication ports +0549: 78 ff f6 cmp $f6,#$ff +054c: d0 fb bne $0549 +054e: 8f 01 f1 mov $f1,#$01 +0551: 3f 54 13 call $1354 +0554: 90 57 bcc $05ad +0556: 5d mov x,a +0557: 28 f0 and a,#$f0 +0559: 68 10 cmp a,#$10 +055b: f0 2a beq $0587 +055d: 68 20 cmp a,#$20 +055f: f0 2e beq $058f +0561: 68 30 cmp a,#$30 +0563: f0 32 beq $0597 +0565: 68 40 cmp a,#$40 +0567: f0 33 beq $059c +0569: 68 50 cmp a,#$50 +056b: f0 2f beq $059c +056d: 68 60 cmp a,#$60 +056f: f0 2b beq $059c +0571: 68 70 cmp a,#$70 +0573: f0 27 beq $059c +0575: 68 80 cmp a,#$80 +0577: f0 23 beq $059c +0579: 68 90 cmp a,#$90 +057b: f0 1f beq $059c +057d: 68 a0 cmp a,#$a0 +057f: f0 1b beq $059c +0581: 68 f0 cmp a,#$f0 +0583: f0 20 beq $05a5 +0585: 2f 26 bra $05ad +0587: 7d mov a,x +0588: 28 0f and a,#$0f +058a: 3f 90 10 call $1090 +058d: 2f 1e bra $05ad +058f: 7d mov a,x +0590: 28 0f and a,#$0f +0592: 3f 55 11 call $1155 +0595: 2f 16 bra $05ad +0597: 3f c9 11 call $11c9 +059a: 2f 11 bra $05ad +059c: 7d mov a,x +059d: 80 setc +059e: a8 40 sbc a,#$40 +05a0: 3f 02 12 call $1202 +05a3: 2f 08 bra $05ad +05a5: 7d mov a,x +05a6: 28 0f and a,#$0f +05a8: 3f 9c 11 call $119c +05ab: 2f 00 bra $05ad +05ad: e8 00 mov a,#$00 +05af: f8 fd mov x,$fd +05b1: d0 02 bne $05b5 +05b3: 2f 9c bra $0551 +05b5: e8 00 mov a,#$00 +05b7: c4 33 mov $33,a +05b9: e4 30 mov a,$30 +05bb: c4 fa mov $fa,a +05bd: 3f df 08 call $08df +05c0: e4 33 mov a,$33 +05c2: 5d mov x,a +05c3: f4 00 mov a,$00+x +05c5: f0 5a beq $0621 +05c7: 28 0f and a,#$0f +05c9: 68 01 cmp a,#$01 +05cb: d0 54 bne $0621 +05cd: 7d mov a,x +05ce: 1c asl a +05cf: 5d mov x,a +05d0: f5 59 00 mov a,$0059+x +05d3: c4 40 mov $40,a +05d5: 3d inc x +05d6: f5 59 00 mov a,$0059+x +05d9: c4 41 mov $41,a +05db: 8d 04 mov y,#$04 +05dd: f7 40 mov a,($40)+y +05df: c4 44 mov $44,a +05e1: 8d 05 mov y,#$05 +05e3: f7 40 mov a,($40)+y +05e5: c4 45 mov $45,a +05e7: 8d 00 mov y,#$00 +05e9: f7 40 mov a,($40)+y +05eb: 68 00 cmp a,#$00 +05ed: f0 10 beq $05ff +05ef: 9c dec a +05f0: d7 40 mov ($40)+y,a +05f2: e4 44 mov a,$44 +05f4: 8d 04 mov y,#$04 +05f6: d7 40 mov ($40)+y,a +05f8: e4 45 mov a,$45 +05fa: fc inc y +05fb: d7 40 mov ($40)+y,a +05fd: 2f 22 bra $0621 +05ff: cd 00 mov x,#$00 +0601: e7 44 mov a,($44+x) +0603: 3a 44 incw $44 +0605: 68 80 cmp a,#$80 ; check if next byte is a vcmd +0607: 10 05 bpl $060e +0609: 3f 45 0d call $0d45 +060c: 2f d9 bra $05e7 +060e: 60 clrc ; dispatch current vcmd from table +060f: 28 7f and a,#$7f +0611: 1c asl a +0612: 5d mov x,a +0613: 3f 1e 06 call $061e +0616: f8 33 mov x,$33 +0618: f4 00 mov a,$00+x +061a: f0 05 beq $0621 +061c: 2f c9 bra $05e7 +061e: 1f 68 0a jmp ($0a68+x) + +0621: ab 33 inc $33 +0623: 78 08 33 cmp $33,#$08 +0626: d0 98 bne $05c0 +0628: e0 clrv +0629: e8 00 mov a,#$00 +062b: c4 33 mov $33,a +062d: e4 33 mov a,$33 +062f: 5d mov x,a +0630: f4 00 mov a,$00+x +0632: f0 4c beq $0680 +0634: 28 0f and a,#$0f +0636: 68 01 cmp a,#$01 +0638: d0 46 bne $0680 +063a: 7d mov a,x +063b: 1c asl a +063c: 5d mov x,a +063d: f5 59 00 mov a,$0059+x +0640: c4 40 mov $40,a +0642: 3d inc x +0643: f5 59 00 mov a,$0059+x +0646: c4 41 mov $41,a +0648: 8d 24 mov y,#$24 +064a: f7 40 mov a,($40)+y +064c: 28 30 and a,#$30 +064e: f0 30 beq $0680 +0650: 3f 05 07 call $0705 +0653: 90 28 bcc $067d +0655: 3f f4 06 call $06f4 +0658: 8d 24 mov y,#$24 +065a: f7 40 mov a,($40)+y +065c: 2d push a +065d: 28 08 and a,#$08 +065f: d0 1b bne $067c +0661: e8 00 mov a,#$00 +0663: 8d 00 mov y,#$00 +0665: 3f fd 06 call $06fd +0668: e8 01 mov a,#$01 +066a: 8d 00 mov y,#$00 +066c: 3f fd 06 call $06fd +066f: ae pop a +0670: 28 10 and a,#$10 +0672: d0 09 bne $067d +0674: 3f 0d 07 call $070d +0677: 3f b6 0d call $0db6 +067a: 2f 01 bra $067d +067c: ae pop a +067d: 3f ad 0d call $0dad +0680: ab 33 inc $33 +0682: 78 08 33 cmp $33,#$08 +0685: d0 a6 bne $062d +0687: e8 00 mov a,#$00 +0689: c4 33 mov $33,a +068b: e4 33 mov a,$33 +068d: 5d mov x,a +068e: f4 00 mov a,$00+x +0690: f0 58 beq $06ea +0692: 28 0f and a,#$0f +0694: 68 01 cmp a,#$01 +0696: d0 52 bne $06ea +0698: 7d mov a,x +0699: 1c asl a +069a: 5d mov x,a +069b: f5 59 00 mov a,$0059+x +069e: c4 40 mov $40,a +06a0: 3d inc x +06a1: f5 59 00 mov a,$0059+x +06a4: c4 41 mov $41,a +06a6: 3f 05 07 call $0705 +06a9: 90 3f bcc $06ea +06ab: e8 00 mov a,#$00 +06ad: c4 38 mov $38,a +06af: c4 39 mov $39,a +06b1: c4 3a mov $3a,a +06b3: 3f 6b 09 call $096b +06b6: 90 02 bcc $06ba +06b8: ab 3a inc $3a +06ba: 3f e5 09 call $09e5 +06bd: 90 08 bcc $06c7 +06bf: 8d 17 mov y,#$17 +06c1: f7 40 mov a,($40)+y +06c3: c4 38 mov $38,a +06c5: ab 3a inc $3a +06c7: e4 3a mov a,$3a +06c9: f0 1f beq $06ea +06cb: 3f f4 06 call $06f4 +06ce: 8d 0e mov y,#$0e +06d0: f7 40 mov a,($40)+y +06d2: c4 36 mov $36,a +06d4: 8d 0f mov y,#$0f +06d6: f7 40 mov a,($40)+y +06d8: c4 37 mov $37,a +06da: 60 clrc +06db: e4 36 mov a,$36 +06dd: 84 38 adc a,$38 +06df: c4 36 mov $36,a +06e1: e4 37 mov a,$37 +06e3: 84 39 adc a,$39 +06e5: c4 37 mov $37,a +06e7: 3f 84 07 call $0784 +06ea: ab 33 inc $33 +06ec: 78 08 33 cmp $33,#$08 +06ef: d0 9a bne $068b +06f1: 5f 51 05 jmp $0551 + +06f4: e4 34 mov a,$34 +06f6: 1c asl a +06f7: 1c asl a +06f8: 1c asl a +06f9: 1c asl a +06fa: c4 49 mov $49,a +06fc: 6f ret + +06fd: 60 clrc +06fe: 84 49 adc a,$49 +0700: c4 f2 mov $f2,a +0702: cb f3 mov $f3,y +0704: 6f ret + +0705: f8 33 mov x,$33 +0707: f4 10 mov a,$10+x +0709: c4 34 mov $34,a +070b: 80 setc +070c: 6f ret + +070d: 8d 0e mov y,#$0e +070f: f7 40 mov a,($40)+y +0711: c4 36 mov $36,a +0713: 8d 0f mov y,#$0f +0715: f7 40 mov a,($40)+y +0717: c4 37 mov $37,a +0719: 3f 84 07 call $0784 +071c: 8d 20 mov y,#$20 +071e: f7 40 mov a,($40)+y +0720: fd mov y,a +0721: e8 04 mov a,#$04 +0723: 3f fd 06 call $06fd +0726: 8d 21 mov y,#$21 +0728: f7 40 mov a,($40)+y +072a: fd mov y,a +072b: e8 05 mov a,#$05 +072d: 3f fd 06 call $06fd +0730: 8d 22 mov y,#$22 +0732: f7 40 mov a,($40)+y +0734: fd mov y,a +0735: e8 06 mov a,#$06 +0737: 3f fd 06 call $06fd +073a: 8d 23 mov y,#$23 +073c: f7 40 mov a,($40)+y +073e: fd mov y,a +073f: e8 07 mov a,#$07 +0741: 3f fd 06 call $06fd +0744: 8d 09 mov y,#$09 +0746: f7 40 mov a,($40)+y +0748: c4 36 mov $36,a +074a: 3f 4e 07 call $074e +074d: 6f ret + +074e: 8d 27 mov y,#$27 +0750: f7 40 mov a,($40)+y +0752: 28 0f and a,#$0f +0754: 1c asl a +0755: 1c asl a +0756: 1c asl a +0757: 1c asl a +0758: c4 38 mov $38,a +075a: 8d 0a mov y,#$0a +075c: f7 40 mov a,($40)+y +075e: c4 3a mov $3a,a +0760: eb 38 mov y,$38 +0762: cf mul ya +0763: e4 3a mov a,$3a +0765: cb 38 mov $38,y +0767: 80 setc +0768: a4 38 sbc a,$38 +076a: c4 38 mov $38,a +076c: 3f 32 09 call $0932 +076f: fd mov y,a +0770: e8 00 mov a,#$00 +0772: 3f fd 06 call $06fd +0775: e4 3a mov a,$3a +0777: 80 setc +0778: a4 38 sbc a,$38 +077a: 3f 32 09 call $0932 +077d: fd mov y,a +077e: e8 01 mov a,#$01 +0780: 3f fd 06 call $06fd +0783: 6f ret + +0784: eb 36 mov y,$36 +0786: e8 02 mov a,#$02 +0788: 3f fd 06 call $06fd +078b: eb 37 mov y,$37 +078d: e8 03 mov a,#$03 +078f: 3f fd 06 call $06fd +0792: 6f ret + +0793: e8 00 mov a,#$00 +0795: 5d mov x,a +0796: af mov (x)+,a +0797: c8 59 cmp x,#$59 +0799: d0 fb bne $0796 +079b: e8 00 mov a,#$00 +079d: c5 20 04 mov $0420,a +07a0: c5 21 04 mov $0421,a +07a3: c5 22 04 mov $0422,a +07a6: c5 23 04 mov $0423,a +07a9: c5 24 04 mov $0424,a +07ac: c5 25 04 mov $0425,a +07af: 6f ret + +07b0: 8f 30 f1 mov $f1,#$30 +07b3: e8 00 mov a,#$00 +07b5: c4 f1 mov $f1,a +07b7: e8 00 mov a,#$00 +07b9: c4 fa mov $fa,a +07bb: c4 fb mov $fb,a +07bd: c4 fc mov $fc,a +07bf: e8 50 mov a,#$50 +07c1: c4 30 mov $30,a +07c3: 6f ret + +07c4: e8 6d mov a,#$6d +07c6: 8d f8 mov y,#$f8 +07c8: 3f 00 07 call $0700 +07cb: e8 3d mov a,#$3d +07cd: 8d 00 mov y,#$00 +07cf: 3f 00 07 call $0700 +07d2: e8 4d mov a,#$4d +07d4: 8d 00 mov y,#$00 +07d6: 3f 00 07 call $0700 +07d9: e8 7d mov a,#$7d +07db: 8d 00 mov y,#$00 +07dd: 3f 00 07 call $0700 +07e0: e8 0d mov a,#$0d +07e2: 8d 00 mov y,#$00 +07e4: 3f 00 07 call $0700 +07e7: e8 2d mov a,#$2d +07e9: 8d 00 mov y,#$00 +07eb: 3f 00 07 call $0700 +07ee: e8 6c mov a,#$6c +07f0: 8d 20 mov y,#$20 +07f2: 3f 00 07 call $0700 +07f5: e8 0c mov a,#$0c +07f7: 8d 70 mov y,#$70 +07f9: 3f 00 07 call $0700 +07fc: e8 1c mov a,#$1c +07fe: 8d 70 mov y,#$70 +0800: 3f 00 07 call $0700 +0803: e8 2c mov a,#$2c +0805: 8d 00 mov y,#$00 +0807: 3f 00 07 call $0700 +080a: e8 3c mov a,#$3c +080c: 8d 00 mov y,#$00 +080e: 3f 00 07 call $0700 +0811: e8 0f mov a,#$0f +0813: 8d 7f mov y,#$7f +0815: 3f 00 07 call $0700 +0818: e8 1f mov a,#$1f +081a: 8d 00 mov y,#$00 +081c: 3f 00 07 call $0700 +081f: e8 2f mov a,#$2f +0821: 8d 00 mov y,#$00 +0823: 3f 00 07 call $0700 +0826: e8 3f mov a,#$3f +0828: 8d 00 mov y,#$00 +082a: 3f 00 07 call $0700 +082d: e8 4f mov a,#$4f +082f: 8d 00 mov y,#$00 +0831: 3f 00 07 call $0700 +0834: e8 5f mov a,#$5f +0836: 8d 00 mov y,#$00 +0838: 3f 00 07 call $0700 +083b: e8 6f mov a,#$6f +083d: 8d 00 mov y,#$00 +083f: 3f 00 07 call $0700 +0842: e8 7f mov a,#$7f +0844: 8d 00 mov y,#$00 +0846: 3f 00 07 call $0700 +0849: 3f 6a 08 call $086a +084c: 00 nop +084d: 00 nop +084e: 00 nop +084f: 00 nop +0850: 00 nop +0851: 3f 62 08 call $0862 +0854: 00 nop +0855: 00 nop +0856: 00 nop +0857: 00 nop +0858: 00 nop +0859: 6f ret + +085a: e8 5c mov a,#$5c +085c: 8d ff mov y,#$ff +085e: 3f 00 07 call $0700 +0861: 6f ret + +0862: e8 4c mov a,#$4c +0864: 8d ff mov y,#$ff +0866: 3f 00 07 call $0700 +0869: 6f ret + +086a: e8 00 mov a,#$00 +086c: 8d 00 mov y,#$00 +086e: e8 00 mov a,#$00 +0870: 8d 00 mov y,#$00 +0872: 3f 00 07 call $0700 +0875: e8 01 mov a,#$01 +0877: 8d 00 mov y,#$00 +0879: 3f 00 07 call $0700 +087c: e8 10 mov a,#$10 +087e: 8d 00 mov y,#$00 +0880: 3f 00 07 call $0700 +0883: e8 11 mov a,#$11 +0885: 8d 00 mov y,#$00 +0887: 3f 00 07 call $0700 +088a: e8 20 mov a,#$20 +088c: 8d 00 mov y,#$00 +088e: 3f 00 07 call $0700 +0891: e8 21 mov a,#$21 +0893: 8d 00 mov y,#$00 +0895: 3f 00 07 call $0700 +0898: e8 30 mov a,#$30 +089a: 8d 00 mov y,#$00 +089c: 3f 00 07 call $0700 +089f: e8 31 mov a,#$31 +08a1: 8d 00 mov y,#$00 +08a3: 3f 00 07 call $0700 +08a6: e8 40 mov a,#$40 +08a8: 8d 00 mov y,#$00 +08aa: 3f 00 07 call $0700 +08ad: e8 41 mov a,#$41 +08af: 8d 00 mov y,#$00 +08b1: 3f 00 07 call $0700 +08b4: e8 50 mov a,#$50 +08b6: 8d 00 mov y,#$00 +08b8: 3f 00 07 call $0700 +08bb: e8 51 mov a,#$51 +08bd: 8d 00 mov y,#$00 +08bf: 3f 00 07 call $0700 +08c2: e8 60 mov a,#$60 +08c4: 8d 00 mov y,#$00 +08c6: 3f 00 07 call $0700 +08c9: e8 61 mov a,#$61 +08cb: 8d 00 mov y,#$00 +08cd: 3f 00 07 call $0700 +08d0: e8 70 mov a,#$70 +08d2: 8d 00 mov y,#$00 +08d4: 3f 00 07 call $0700 +08d7: e8 71 mov a,#$71 +08d9: 8d 00 mov y,#$00 +08db: 3f 00 07 call $0700 +08de: 6f ret + +08df: e5 20 04 mov a,$0420 +08e2: f0 4d beq $0931 +08e4: e5 21 04 mov a,$0421 +08e7: d0 23 bne $090c +08e9: e5 20 04 mov a,$0420 +08ec: 5c lsr a +08ed: 90 05 bcc $08f4 +08ef: e8 00 mov a,#$00 +08f1: 3f 55 11 call $1155 +08f4: 5c lsr a +08f5: 90 05 bcc $08fc +08f7: e8 01 mov a,#$01 +08f9: 3f 55 11 call $1155 +08fc: e8 00 mov a,#$00 +08fe: c5 20 04 mov $0420,a +0901: c5 21 04 mov $0421,a +0904: c5 22 04 mov $0422,a +0907: c5 23 04 mov $0423,a +090a: 2f 25 bra $0931 +090c: e5 26 04 mov a,$0426 +090f: bc inc a +0910: 28 0f and a,#$0f +0912: c5 26 04 mov $0426,a +0915: d0 1a bne $0931 +0917: e5 21 04 mov a,$0421 +091a: 9c dec a +091b: c5 21 04 mov $0421,a +091e: 60 clrc +091f: e5 24 04 mov a,$0424 +0922: 85 22 04 adc a,$0422 +0925: c5 24 04 mov $0424,a +0928: e5 25 04 mov a,$0425 +092b: 85 23 04 adc a,$0423 +092e: c5 25 04 mov $0425,a +0931: 6f ret + +0932: cd 00 mov x,#$00 +0934: 1e 20 04 cmp x,$0420 +0937: f0 2e beq $0967 +0939: f8 33 mov x,$33 +093b: c4 47 mov $47,a +093d: f4 00 mov a,$00+x +093f: 5c lsr a +0940: 5c lsr a +0941: 5c lsr a +0942: 5c lsr a +0943: c4 46 mov $46,a +0945: 25 20 04 and a,$0420 +0948: f0 0c beq $0956 +094a: e4 47 mov a,$47 +094c: 80 setc +094d: a5 25 04 sbc a,$0425 +0950: 10 15 bpl $0967 +0952: e8 00 mov a,#$00 +0954: 2f 11 bra $0967 +0956: e4 46 mov a,$46 +0958: 25 20 04 and a,$0420 +095b: f0 0b beq $0968 +095d: e4 47 mov a,$47 +095f: 80 setc +0960: a5 25 04 sbc a,$0425 +0963: 10 02 bpl $0967 +0965: e8 00 mov a,#$00 +0967: 6f ret + +0968: e4 47 mov a,$47 +096a: 6f ret + +096b: 8d 24 mov y,#$24 +096d: f7 40 mov a,($40)+y +096f: 28 04 and a,#$04 +0971: d0 02 bne $0975 +0973: 60 clrc +0974: 6f ret + +0975: 8d 13 mov y,#$13 +0977: f7 40 mov a,($40)+y +0979: f0 68 beq $09e3 +097b: 8d 12 mov y,#$12 +097d: f7 40 mov a,($40)+y +097f: f0 30 beq $09b1 +0981: 9c dec a +0982: 8d 12 mov y,#$12 +0984: d7 40 mov ($40)+y,a +0986: 8d 0e mov y,#$0e +0988: f7 40 mov a,($40)+y +098a: c4 38 mov $38,a +098c: 8d 0f mov y,#$0f +098e: f7 40 mov a,($40)+y +0990: c4 39 mov $39,a +0992: 8d 14 mov y,#$14 +0994: f7 40 mov a,($40)+y +0996: c4 3a mov $3a,a +0998: 8d 15 mov y,#$15 +099a: f7 40 mov a,($40)+y +099c: c4 3b mov $3b,a +099e: 60 clrc +099f: ba 38 movw ya,$38 +09a1: 7a 3a addw ya,$3a +09a3: da 38 movw $38,ya +09a5: 8d 0e mov y,#$0e +09a7: d7 40 mov ($40)+y,a +09a9: e4 39 mov a,$39 +09ab: 8d 0f mov y,#$0f +09ad: d7 40 mov ($40)+y,a +09af: 2f 32 bra $09e3 +09b1: 8d 10 mov y,#$10 +09b3: f7 40 mov a,($40)+y +09b5: c4 38 mov $38,a +09b7: 8d 11 mov y,#$11 +09b9: f7 40 mov a,($40)+y +09bb: c4 39 mov $39,a +09bd: 8d 0e mov y,#$0e +09bf: f7 40 mov a,($40)+y +09c1: c4 3a mov $3a,a +09c3: 8d 0f mov y,#$0f +09c5: f7 40 mov a,($40)+y +09c7: c4 3b mov $3b,a +09c9: e4 38 mov a,$38 +09cb: 64 3a cmp a,$3a +09cd: d0 08 bne $09d7 +09cf: e4 39 mov a,$39 +09d1: 64 3b cmp a,$3b +09d3: d0 02 bne $09d7 +09d5: 60 clrc +09d6: 6f ret + +09d7: e4 38 mov a,$38 +09d9: 8d 0e mov y,#$0e +09db: d7 40 mov ($40)+y,a +09dd: e4 39 mov a,$39 +09df: 8d 0f mov y,#$0f +09e1: d7 40 mov ($40)+y,a +09e3: 80 setc +09e4: 6f ret + +09e5: 8d 24 mov y,#$24 +09e7: f7 40 mov a,($40)+y +09e9: 28 02 and a,#$02 +09eb: d0 02 bne $09ef +09ed: 60 clrc +09ee: 6f ret + +09ef: 8d 00 mov y,#$00 +09f1: 8d 1a mov y,#$1a +09f3: f7 40 mov a,($40)+y +09f5: f0 6f beq $0a66 +09f7: 8d 19 mov y,#$19 +09f9: f7 40 mov a,($40)+y +09fb: f0 07 beq $0a04 +09fd: 9c dec a +09fe: 8d 19 mov y,#$19 +0a00: d7 40 mov ($40)+y,a +0a02: 2f 62 bra $0a66 +0a04: 8d 17 mov y,#$17 +0a06: f7 40 mov a,($40)+y +0a08: c4 36 mov $36,a +0a0a: 8d 1b mov y,#$1b +0a0c: f7 40 mov a,($40)+y +0a0e: c4 38 mov $38,a +0a10: e8 00 mov a,#$00 +0a12: c4 37 mov $37,a +0a14: c4 39 mov $39,a +0a16: 8d 1f mov y,#$1f +0a18: f7 40 mov a,($40)+y +0a1a: 68 00 cmp a,#$00 +0a1c: d0 2b bne $0a49 +0a1e: 60 clrc +0a1f: ba 36 movw ya,$36 +0a21: 7a 38 addw ya,$38 +0a23: da 36 movw $36,ya +0a25: c4 37 mov $37,a +0a27: 8d 1d mov y,#$1d +0a29: f7 40 mov a,($40)+y +0a2b: c4 38 mov $38,a +0a2d: e4 36 mov a,$36 +0a2f: 64 38 cmp a,$38 +0a31: e4 37 mov a,$37 +0a33: a4 39 sbc a,$39 +0a35: 90 10 bcc $0a47 +0a37: e8 01 mov a,#$01 +0a39: 8d 1f mov y,#$1f +0a3b: d7 40 mov ($40)+y,a +0a3d: 8d 1d mov y,#$1d +0a3f: f7 40 mov a,($40)+y +0a41: c4 36 mov $36,a +0a43: e8 00 mov a,#$00 +0a45: c4 37 mov $37,a +0a47: 2f 17 bra $0a60 +0a49: 80 setc +0a4a: ba 36 movw ya,$36 +0a4c: 9a 38 subw ya,$38 +0a4e: da 36 movw $36,ya +0a50: e4 37 mov a,$37 +0a52: 10 f3 bpl $0a47 +0a54: e8 00 mov a,#$00 +0a56: 8d 1f mov y,#$1f +0a58: d7 40 mov ($40)+y,a +0a5a: e8 00 mov a,#$00 +0a5c: c4 36 mov $36,a +0a5e: c4 37 mov $37,a +0a60: e4 36 mov a,$36 +0a62: 8d 17 mov y,#$17 +0a64: d7 40 mov ($40)+y,a +0a66: 80 setc +0a67: 6f ret + +; vcmd table (80-95) +0a68: dw $0a94 ; 80 - set variables? +0a6a: dw $0ad0 ; 81 - (2 bytes) +0a6c: dw $0aab ; 82 - start of song loop +0a6e: dw $0b11 ; 83 - (7 bytes) +0a70: dw $0b66 ; 84 - set tempo +0a72: dw $0b78 ; 85 - set instrument +0a74: dw $0b82 ; 86 - (3 bytes) +0a76: dw $0ba3 ; 87 - (1 byte) +0a78: dw $0bac ; 88 - set ASDR bit 7 +0a7a: dw $0bb5 ; 89 - clear ASDR bits +0a7c: dw $0bbe ; 8a - set up vibrato parameters +0a7e: dw $0c08 ; 8b - set ASDR bit 6 +0a80: dw $0c11 ; 8c - set ASDR bits on +0a82: dw $0c1a ; 8d - (2 bytes) +0a84: dw $0cc7 ; 8e - nop +0a86: dw $0cc8 ; 8f - set ASDR bit 5 +0a88: dw $0cd1 ; 90 - clear ASDR bits +0a8a: dw $0cda ; 91 - restart channel +0a8c: dw $0ce6 ; 92 - repeat section +0a8e: dw $0d28 ; 93 - set ASDR bit 4 +0a90: dw $0d31 ; 94 - set panning +0a92: dw $0e67 ; 95 - stop channel + +0a94: cd 00 mov x,#$00 ; vcmd 80 - set variables? +0a96: e7 44 mov a,($44+x) +0a98: 3a 44 incw $44 +0a9a: c4 4b mov $4b,a +0a9c: c4 4d mov $4d,a +0a9e: e8 00 mov a,#$00 +0aa0: c4 4a mov $4a,a +0aa2: c4 4c mov $4c,a +0aa4: c4 4e mov $4e,a +0aa6: c4 4f mov $4f,a +0aa8: c4 50 mov $50,a +0aaa: 6f ret + +0aab: cd 00 mov x,#$00 ; vcmd 82 - start of song loop +0aad: e7 44 mov a,($44+x) +0aaf: 3a 44 incw $44 +0ab1: 8d 08 mov y,#$08 +0ab3: d7 40 mov ($40)+y,a +0ab5: 8d 0a mov y,#$0a +0ab7: d7 40 mov ($40)+y,a +0ab9: e8 00 mov a,#$00 +0abb: 8d 07 mov y,#$07 +0abd: d7 40 mov ($40)+y,a +0abf: 8d 09 mov y,#$09 +0ac1: d7 40 mov ($40)+y,a +0ac3: 8d 0b mov y,#$0b +0ac5: d7 40 mov ($40)+y,a +0ac7: 8d 0c mov y,#$0c +0ac9: d7 40 mov ($40)+y,a +0acb: 8d 0d mov y,#$0d +0acd: d7 40 mov ($40)+y,a +0acf: 6f ret + +0ad0: cd 00 mov x,#$00 ; vcmd 81 - (2 bytes) +0ad2: e7 44 mov a,($44+x) +0ad4: 3a 44 incw $44 +0ad6: c4 34 mov $34,a +0ad8: e7 44 mov a,($44+x) +0ada: 3a 44 incw $44 +0adc: c4 36 mov $36,a +0ade: e4 34 mov a,$34 +0ae0: c4 4d mov $4d,a +0ae2: e4 36 mov a,$36 +0ae4: c4 4e mov $4e,a +0ae6: e8 00 mov a,#$00 +0ae8: c4 4c mov $4c,a +0aea: e4 4a mov a,$4a +0aec: c4 34 mov $34,a +0aee: e4 4b mov a,$4b +0af0: c4 35 mov $35,a +0af2: e4 4c mov a,$4c +0af4: c4 36 mov $36,a +0af6: e4 4d mov a,$4d +0af8: c4 37 mov $37,a +0afa: 3f 9d 12 call $129d +0afd: e4 4e mov a,$4e +0aff: c4 37 mov $37,a +0b01: e8 00 mov a,#$00 +0b03: c4 36 mov $36,a +0b05: 3f a4 12 call $12a4 +0b08: e4 34 mov a,$34 +0b0a: c4 4f mov $4f,a +0b0c: e4 35 mov a,$35 +0b0e: c4 50 mov $50,a +0b10: 6f ret + +0b11: cd 00 mov x,#$00 ; vcmd 83 - (7 bytes) +0b13: e7 44 mov a,($44+x) +0b15: 3a 44 incw $44 +0b17: c4 34 mov $34,a +0b19: e7 44 mov a,($44+x) +0b1b: 3a 44 incw $44 +0b1d: c4 36 mov $36,a +0b1f: e4 34 mov a,$34 +0b21: 8d 0a mov y,#$0a +0b23: d7 40 mov ($40)+y,a +0b25: e4 36 mov a,$36 +0b27: 8d 0b mov y,#$0b +0b29: d7 40 mov ($40)+y,a +0b2b: e8 00 mov a,#$00 +0b2d: 8d 09 mov y,#$09 +0b2f: d7 40 mov ($40)+y,a +0b31: e7 44 mov a,($44+x) +0b33: 3a 44 incw $44 +0b35: c4 34 mov $34,a +0b37: e7 44 mov a,($44+x) +0b39: 3a 44 incw $44 +0b3b: c4 35 mov $35,a +0b3d: e7 44 mov a,($44+x) +0b3f: 3a 44 incw $44 +0b41: c4 36 mov $36,a +0b43: e7 44 mov a,($44+x) +0b45: 3a 44 incw $44 +0b47: c4 37 mov $37,a +0b49: 3f 9d 12 call $129d +0b4c: e7 44 mov a,($44+x) +0b4e: 3a 44 incw $44 +0b50: c4 37 mov $37,a +0b52: e8 00 mov a,#$00 +0b54: c4 36 mov $36,a +0b56: 3f a4 12 call $12a4 +0b59: e4 34 mov a,$34 +0b5b: 8d 0c mov y,#$0c +0b5d: d7 40 mov ($40)+y,a +0b5f: e4 35 mov a,$35 +0b61: 8d 0d mov y,#$0d +0b63: d7 40 mov ($40)+y,a +0b65: 6f ret + +0b66: cd 00 mov x,#$00 ; vcmd 84 - set tempo +0b68: e7 44 mov a,($44+x) +0b6a: 3a 44 incw $44 +0b6c: c4 34 mov $34,a +0b6e: 8d 06 mov y,#$06 +0b70: f7 40 mov a,($40)+y +0b72: c4 36 mov $36,a +0b74: 3f 60 0e call $0e60 +0b77: 6f ret + +0b78: cd 00 mov x,#$00 ; vcmd 85 - set instrument +0b7a: e7 44 mov a,($44+x) +0b7c: 3a 44 incw $44 +0b7e: 3f 01 13 call $1301 +0b81: 6f ret + +0b82: cd 00 mov x,#$00 ; vcmd 86 - (3 bytes) +0b84: e7 44 mov a,($44+x) +0b86: 3a 44 incw $44 +0b88: c4 34 mov $34,a +0b8a: e7 44 mov a,($44+x) +0b8c: 3a 44 incw $44 +0b8e: c4 36 mov $36,a +0b90: e7 44 mov a,($44+x) +0b92: 3a 44 incw $44 +0b94: c4 38 mov $38,a +0b96: e4 34 mov a,$34 +0b98: c4 54 mov $54,a +0b9a: e4 36 mov a,$36 +0b9c: c4 52 mov $52,a +0b9e: e4 36 mov a,$36 +0ba0: c4 53 mov $53,a +0ba2: 6f ret + +0ba3: cd 00 mov x,#$00 ; vcmd 87 - (1 byte) +0ba5: e7 44 mov a,($44+x) +0ba7: 3a 44 incw $44 +0ba9: c4 51 mov $51,a +0bab: 6f ret + +0bac: 8d 24 mov y,#$24 ; vcmd 88 - set ASDR bit 7 +0bae: f7 40 mov a,($40)+y +0bb0: 08 01 or a,#$01 +0bb2: d7 40 mov ($40)+y,a +0bb4: 6f ret + +0bb5: 8d 24 mov y,#$24 ; vcmd 89 - clear ASDR bits +0bb7: f7 40 mov a,($40)+y +0bb9: 28 fe and a,#$fe +0bbb: d7 40 mov ($40)+y,a +0bbd: 6f ret + +0bbe: cd 00 mov x,#$00 ; vcmd 8a - set up vibrato parameters +0bc0: e7 44 mov a,($44+x) +0bc2: 3a 44 incw $44 +0bc4: 8d 19 mov y,#$19 +0bc6: d7 40 mov ($40)+y,a +0bc8: 8d 1a mov y,#$1a +0bca: d7 40 mov ($40)+y,a +0bcc: e7 44 mov a,($44+x) +0bce: 3a 44 incw $44 +0bd0: 2d push a +0bd1: e7 44 mov a,($44+x) +0bd3: 3a 44 incw $44 +0bd5: 8d 1d mov y,#$1d +0bd7: d7 40 mov ($40)+y,a +0bd9: ce pop x +0bda: 8d 00 mov y,#$00 +0bdc: 9e div ya,x +0bdd: 8d 1b mov y,#$1b +0bdf: d7 40 mov ($40)+y,a +0be1: e8 00 mov a,#$00 +0be3: 8d 17 mov y,#$17 +0be5: d7 40 mov ($40)+y,a +0be7: 8d 1f mov y,#$1f +0be9: d7 40 mov ($40)+y,a +0beb: 6f ret + +0bec: 8d 24 mov y,#$24 +0bee: f7 40 mov a,($40)+y +0bf0: 28 02 and a,#$02 +0bf2: d0 01 bne $0bf5 +0bf4: 6f ret + +0bf5: 8d 1a mov y,#$1a +0bf7: f7 40 mov a,($40)+y +0bf9: 8d 19 mov y,#$19 +0bfb: d7 40 mov ($40)+y,a +0bfd: e8 00 mov a,#$00 +0bff: 8d 17 mov y,#$17 +0c01: d7 40 mov ($40)+y,a +0c03: 8d 1f mov y,#$1f +0c05: d7 40 mov ($40)+y,a +0c07: 6f ret + +0c08: 8d 24 mov y,#$24 ; vcmd 8b - set ASDR bit 6 +0c0a: f7 40 mov a,($40)+y +0c0c: 08 02 or a,#$02 +0c0e: d7 40 mov ($40)+y,a +0c10: 6f ret + +0c11: 8d 24 mov y,#$24 ; vcmd 8c - set ASDR bits on +0c13: f7 40 mov a,($40)+y +0c15: 28 fb and a,#$fb +0c17: d7 40 mov ($40)+y,a +0c19: 6f ret + +0c1a: cd 00 mov x,#$00 ; vcmd 8d - (2 bytes) +0c1c: e7 44 mov a,($44+x) +0c1e: 3a 44 incw $44 +0c20: 8d 12 mov y,#$12 +0c22: d7 40 mov ($40)+y,a +0c24: 8d 13 mov y,#$13 +0c26: d7 40 mov ($40)+y,a +0c28: e7 44 mov a,($44+x) +0c2a: 3a 44 incw $44 +0c2c: 8d 16 mov y,#$16 +0c2e: d7 40 mov ($40)+y,a +0c30: 6f ret + +0c31: 2d push a +0c32: 8d 24 mov y,#$24 +0c34: f7 40 mov a,($40)+y +0c36: 28 04 and a,#$04 +0c38: ae pop a +0c39: d0 01 bne $0c3c +0c3b: 6f ret + +0c3c: c4 36 mov $36,a +0c3e: 8d 16 mov y,#$16 +0c40: f7 40 mov a,($40)+y +0c42: 60 clrc +0c43: 84 36 adc a,$36 +0c45: 10 02 bpl $0c49 +0c47: e8 01 mov a,#$01 +0c49: 68 55 cmp a,#$55 +0c4b: 90 02 bcc $0c4f +0c4d: e8 55 mov a,#$55 +0c4f: 9c dec a +0c50: c4 37 mov $37,a +0c52: e8 00 mov a,#$00 +0c54: c4 36 mov $36,a +0c56: 8d 28 mov y,#$28 +0c58: f7 40 mov a,($40)+y +0c5a: c4 38 mov $38,a +0c5c: 8d 29 mov y,#$29 +0c5e: f7 40 mov a,($40)+y +0c60: c4 39 mov $39,a +0c62: 3f d6 0d call $0dd6 +0c65: e4 3a mov a,$3a +0c67: 8d 10 mov y,#$10 +0c69: d7 40 mov ($40)+y,a +0c6b: e4 3b mov a,$3b +0c6d: 8d 11 mov y,#$11 +0c6f: d7 40 mov ($40)+y,a +0c71: 8d 0e mov y,#$0e +0c73: f7 40 mov a,($40)+y +0c75: c4 38 mov $38,a +0c77: 8d 0f mov y,#$0f +0c79: f7 40 mov a,($40)+y +0c7b: c4 39 mov $39,a +0c7d: e4 3b mov a,$3b +0c7f: 64 39 cmp a,$39 +0c81: b0 13 bcs $0c96 +0c83: 80 setc +0c84: e4 38 mov a,$38 +0c86: a4 3a sbc a,$3a +0c88: c4 38 mov $38,a +0c8a: e4 39 mov a,$39 +0c8c: a4 3b sbc a,$3b +0c8e: c4 39 mov $39,a +0c90: e8 ff mov a,#$ff +0c92: c4 3b mov $3b,a +0c94: 2f 11 bra $0ca7 +0c96: 80 setc +0c97: e4 3a mov a,$3a +0c99: a4 38 sbc a,$38 +0c9b: c4 38 mov $38,a +0c9d: e4 3b mov a,$3b +0c9f: a4 39 sbc a,$39 +0ca1: c4 39 mov $39,a +0ca3: e8 00 mov a,#$00 +0ca5: c4 3b mov $3b,a +0ca7: 8d 13 mov y,#$13 +0ca9: f7 40 mov a,($40)+y +0cab: 8d 12 mov y,#$12 +0cad: d7 40 mov ($40)+y,a +0caf: 5d mov x,a +0cb0: e4 38 mov a,$38 +0cb2: eb 39 mov y,$39 +0cb4: 9e div ya,x +0cb5: f8 3b mov x,$3b +0cb7: 10 03 bpl $0cbc +0cb9: 48 ff eor a,#$ff +0cbb: bc inc a +0cbc: 8d 14 mov y,#$14 +0cbe: d7 40 mov ($40)+y,a +0cc0: e4 3b mov a,$3b +0cc2: 8d 15 mov y,#$15 +0cc4: d7 40 mov ($40)+y,a +0cc6: 6f ret + +0cc7: 6f ret ; vcmd 8e - nop + +0cc8: 8d 24 mov y,#$24 ; vcmd 8f - set ASDR bit 5 +0cca: f7 40 mov a,($40)+y +0ccc: 08 04 or a,#$04 +0cce: d7 40 mov ($40)+y,a +0cd0: 6f ret + +0cd1: 8d 24 mov y,#$24 ; vcmd 90 - clear ASDR bits +0cd3: f7 40 mov a,($40)+y +0cd5: 28 fb and a,#$fb +0cd7: d7 40 mov ($40)+y,a +0cd9: 6f ret + +0cda: 8d 02 mov y,#$02 ; vcmd 91 - restart channel +0cdc: f7 40 mov a,($40)+y +0cde: c4 44 mov $44,a +0ce0: fc inc y +0ce1: f7 40 mov a,($40)+y +0ce3: c4 45 mov $45,a +0ce5: 6f ret + +0ce6: cd 00 mov x,#$00 ; vcmd 92 - repeat section +0ce8: e7 44 mov a,($44+x) +0cea: 3a 44 incw $44 +0cec: fd mov y,a +0ced: 68 ff cmp a,#$ff +0cef: f0 1a beq $0d0b +0cf1: e7 44 mov a,($44+x) +0cf3: 68 ff cmp a,#$ff +0cf5: f0 06 beq $0cfd +0cf7: 68 00 cmp a,#$00 +0cf9: f0 05 beq $0d00 +0cfb: 2f 12 bra $0d0f +0cfd: dd mov a,y +0cfe: 2f 0f bra $0d0f +0d00: e8 ff mov a,#$ff +0d02: c7 44 mov ($44+x),a +0d04: 3a 44 incw $44 +0d06: 3a 44 incw $44 +0d08: 3a 44 incw $44 +0d0a: 6f ret + +0d0b: 3a 44 incw $44 +0d0d: 2f 05 bra $0d14 +0d0f: 9c dec a +0d10: c7 44 mov ($44+x),a +0d12: 3a 44 incw $44 +0d14: e7 44 mov a,($44+x) +0d16: 3a 44 incw $44 +0d18: c4 34 mov $34,a +0d1a: e7 44 mov a,($44+x) +0d1c: 3a 44 incw $44 +0d1e: c4 35 mov $35,a +0d20: ba 44 movw ya,$44 +0d22: 9a 34 subw ya,$34 +0d24: e0 clrv +0d25: da 44 movw $44,ya +0d27: 6f ret + +0d28: 8d 24 mov y,#$24 ; vcmd 93 - set ASDR bit 4 +0d2a: f7 40 mov a,($40)+y +0d2c: 08 08 or a,#$08 +0d2e: d7 40 mov ($40)+y,a +0d30: 6f ret + +0d31: cd 00 mov x,#$00 ; vcmd 94 - set panning +0d33: e7 44 mov a,($44+x) +0d35: 3a 44 incw $44 +0d37: 8d 27 mov y,#$27 +0d39: d7 40 mov ($40)+y,a +0d3b: 6f ret + +0d3c: 8d 24 mov y,#$24 +0d3e: f7 40 mov a,($40)+y +0d40: 28 f7 and a,#$f7 +0d42: d7 40 mov ($40)+y,a +0d44: 6f ret + +0d45: cd 00 mov x,#$00 +0d47: 2d push a +0d48: 8d 25 mov y,#$25 +0d4a: f7 40 mov a,($40)+y +0d4c: 8d 26 mov y,#$26 +0d4e: d7 40 mov ($40)+y,a +0d50: e7 44 mov a,($44+x) +0d52: 3a 44 incw $44 +0d54: 8d 00 mov y,#$00 +0d56: d7 40 mov ($40)+y,a +0d58: ae pop a +0d59: 8d 25 mov y,#$25 +0d5b: d7 40 mov ($40)+y,a +0d5d: 9c dec a +0d5e: 30 36 bmi $0d96 +0d60: c4 37 mov $37,a +0d62: e8 00 mov a,#$00 +0d64: c4 36 mov $36,a +0d66: 8d 28 mov y,#$28 +0d68: f7 40 mov a,($40)+y +0d6a: c4 38 mov $38,a +0d6c: 8d 29 mov y,#$29 +0d6e: f7 40 mov a,($40)+y +0d70: c4 39 mov $39,a +0d72: 3f d6 0d call $0dd6 +0d75: e4 3a mov a,$3a +0d77: 8d 0e mov y,#$0e +0d79: d7 40 mov ($40)+y,a +0d7b: e4 3b mov a,$3b +0d7d: 8d 0f mov y,#$0f +0d7f: d7 40 mov ($40)+y,a +0d81: 8d 24 mov y,#$24 +0d83: f7 40 mov a,($40)+y +0d85: 28 0f and a,#$0f +0d87: 08 20 or a,#$20 +0d89: d7 40 mov ($40)+y,a +0d8b: 8d 25 mov y,#$25 +0d8d: f7 40 mov a,($40)+y +0d8f: 3f 31 0c call $0c31 +0d92: 3f ec 0b call $0bec +0d95: 6f ret + +0d96: e8 00 mov a,#$00 +0d98: 8d 0e mov y,#$0e +0d9a: d7 40 mov ($40)+y,a +0d9c: 8d 0f mov y,#$0f +0d9e: d7 40 mov ($40)+y,a +0da0: 8d 24 mov y,#$24 +0da2: f7 40 mov a,($40)+y +0da4: 28 0f and a,#$0f +0da6: 08 10 or a,#$10 +0da8: d7 40 mov ($40)+y,a +0daa: 5f 8b 0d jmp $0d8b + +0dad: 8d 24 mov y,#$24 +0daf: f7 40 mov a,($40)+y +0db1: 28 c7 and a,#$c7 +0db3: d7 40 mov ($40)+y,a +0db5: 6f ret + +0db6: f8 34 mov x,$34 +0db8: f5 ce 0d mov a,$0dce+x +0dbb: fd mov y,a +0dbc: e8 4c mov a,#$4c +0dbe: 3f 00 07 call $0700 +0dc1: 6f ret + +0dc2: f8 34 mov x,$34 +0dc4: f5 ce 0d mov a,$0dce+x +0dc7: fd mov y,a +0dc8: e8 5c mov a,#$5c +0dca: 3f 00 07 call $0700 +0dcd: 6f ret + +0dce: db $01,$02,$04,$08,$10,$20,$40,$80 + +0dd6: 8d 00 mov y,#$00 +0dd8: e4 37 mov a,$37 +0dda: 80 setc +0ddb: a8 34 sbc a,#$34 +0ddd: b0 09 bcs $0de8 +0ddf: e4 37 mov a,$37 +0de1: 80 setc +0de2: a8 13 sbc a,#$13 +0de4: b0 06 bcs $0dec +0de6: dc dec y +0de7: 1c asl a +0de8: 7a 36 addw ya,$36 +0dea: da 36 movw $36,ya +0dec: e4 37 mov a,$37 +0dee: 1c asl a +0def: 8d 00 mov y,#$00 +0df1: cd 18 mov x,#$18 +0df3: 9e div ya,x +0df4: 5d mov x,a +0df5: f6 47 0e mov a,$0e47+y +0df8: c4 3b mov $3b,a +0dfa: f6 46 0e mov a,$0e46+y +0dfd: c4 3a mov $3a,a +0dff: f6 49 0e mov a,$0e49+y +0e02: 2d push a +0e03: f6 48 0e mov a,$0e48+y +0e06: ee pop y +0e07: 9a 3a subw ya,$3a +0e09: eb 36 mov y,$36 +0e0b: cf mul ya +0e0c: dd mov a,y +0e0d: 8d 00 mov y,#$00 +0e0f: 7a 3a addw ya,$3a +0e11: cb 3b mov $3b,y +0e13: 1c asl a +0e14: 2b 3b rol $3b +0e16: c4 3a mov $3a,a +0e18: 2f 04 bra $0e1e +0e1a: 4b 3b lsr $3b +0e1c: 7c ror a +0e1d: 3d inc x +0e1e: c8 06 cmp x,#$06 +0e20: d0 f8 bne $0e1a +0e22: c4 3a mov $3a,a +0e24: e4 38 mov a,$38 +0e26: eb 3b mov y,$3b +0e28: cf mul ya +0e29: da 3c movw $3c,ya +0e2b: e4 38 mov a,$38 +0e2d: eb 3a mov y,$3a +0e2f: cf mul ya +0e30: 6d push y +0e31: e4 39 mov a,$39 +0e33: eb 3a mov y,$3a +0e35: cf mul ya +0e36: 7a 3c addw ya,$3c +0e38: da 3c movw $3c,ya +0e3a: e4 39 mov a,$39 +0e3c: eb 3b mov y,$3b +0e3e: cf mul ya +0e3f: fd mov y,a +0e40: ae pop a +0e41: 7a 3c addw ya,$3c +0e43: da 3a movw $3a,ya +0e45: 6f ret + +0e46: dw $085f +0e48: dw $08de +0e4a: dw $0965 +0e4c: dw $09f4 +0e4e: dw $0a8c +0e50: dw $0b2c +0e52: dw $0bd6 +0e54: dw $0c8b +0e56: dw $0d4a +0e58: dw $0e14 +0e5a: dw $0eea +0e5c: dw $0fcd +0e5e: dw $10be + +0e60: e4 34 mov a,$34 +0e62: f8 36 mov x,$36 +0e64: d4 30 mov $30+x,a +0e66: 6f ret + +0e67: eb 33 mov y,$33 ; vcmd 95 - stop channel +0e69: cd 00 mov x,#$00 +0e6b: d9 00 mov $00+y,x +0e6d: 6f ret + +0e6e: db $07,$18,$f2,$0e,$07,$15,$fd,$0e,$07,$15,$08,$0f,$07,$15,$19,$0f,$06,$17,$24,$0f,$07,$18,$3d,$0f,$07,$17,$48,$0f,$07,$14,$53,$0f,$07,$14,$5e,$0f,$07,$17,$69,$0f,$07,$14,$74,$0f,$07,$78,$7f,$0f,$06,$16,$8a,$0f,$06,$16,$95,$0f,$06,$16,$a0,$0f,$06,$16,$ab,$0f,$06,$16,$b6,$0f,$06,$17,$c1,$0f,$06,$16,$d4,$0f,$06,$16,$df,$0f,$06,$16,$ea,$0f,$06,$16,$f7,$0f,$06,$16,$02,$10,$06,$17,$0d,$10,$06,$16,$1e,$10,$06,$16,$29,$10,$06,$16,$42,$10,$06,$16,$4d,$10,$06,$16,$58,$10,$06,$16,$63,$10,$06,$16,$6e,$10,$06,$16,$79,$10,$06,$16,$84,$10,$85,$09,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$0a,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$0b,$94,$08,$82,$dc,$25,$0c,$25,$0c,$22,$0c,$22,$0c,$00,$02,$95,$85,$0c,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$05,$94,$08,$82,$78,$20,$0c,$20,$0c,$20,$0c,$20,$0c,$20,$0c,$20,$0c,$20,$0c,$20,$0c,$00,$02,$95,$85,$0e,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$0f,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$10,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$11,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$12,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$13,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$14,$94,$08,$82,$dc,$25,$60,$00,$02,$95,$85,$15,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$16,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$11,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$18,$94,$08,$82,$78,$25,$30,$00,$02,$95,$85,$19,$94,$08,$82,$78,$25,$30,$00,$02,$95,$85,$1a,$94,$08,$82,$dc,$20,$12,$82,$78,$1f,$12,$1f,$12,$1e,$12,$00,$02,$95,$85,$1b,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$1c,$94,$08,$82,$46,$25,$30,$00,$02,$95,$85,$1d,$94,$08,$82,$78,$25,$18,$25,$18,$00,$02,$95,$85,$1e,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$1f,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$20,$94,$08,$82,$dc,$25,$18,$25,$18,$25,$18,$25,$18,$00,$02,$95,$85,$21,$94,$08,$82,$78,$25,$30,$00,$02,$95,$85,$22,$94,$08,$82,$78,$25,$0c,$25,$0c,$25,$0c,$25,$0c,$25,$0c,$25,$0c,$25,$0c,$25,$0c,$00,$02,$95,$85,$23,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$24,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$25,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$26,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$27,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$28,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$85,$29,$94,$08,$82,$dc,$25,$30,$00,$02,$95,$6f + +1090: e8 15 mov a,#$15 ; load song +1092: fd mov y,a +1093: e8 00 mov a,#$00 +1095: da 3e movw $3e,ya +1097: da 40 movw $40,ya +1099: cd 00 mov x,#$00 +109b: e7 3e mov a,($3e+x) +109d: 3a 3e incw $3e +109f: c4 36 mov $36,a +10a1: d0 01 bne $10a4 +10a3: 6f ret + +10a4: 1c asl a +10a5: 60 clrc +10a6: 88 01 adc a,#$01 +10a8: 8d 00 mov y,#$00 +10aa: 7a 40 addw ya,$40 +10ac: da 40 movw $40,ya +10ae: e8 00 mov a,#$00 +10b0: c4 34 mov $34,a +10b2: e4 34 mov a,$34 +10b4: 1c asl a +10b5: 5d mov x,a +10b6: f4 59 mov a,$59+x +10b8: c4 42 mov $42,a +10ba: 3d inc x +10bb: f4 59 mov a,$59+x +10bd: c4 43 mov $43,a +10bf: eb 34 mov y,$34 +10c1: cd 10 mov x,#$10 +10c3: d9 00 mov $00+y,x +10c5: cd 0a mov x,#$0a +10c7: d9 20 mov $20+y,x +10c9: f8 34 mov x,$34 +10cb: d9 10 mov $10+y,x +10cd: cd 00 mov x,#$00 +10cf: e7 3e mov a,($3e+x) +10d1: 2d push a +10d2: 3a 3e incw $3e +10d4: e7 3e mov a,($3e+x) +10d6: fd mov y,a +10d7: 3a 3e incw $3e +10d9: ae pop a +10da: 7a 40 addw ya,$40 +10dc: da 44 movw $44,ya +10de: e8 00 mov a,#$00 +10e0: 8d 00 mov y,#$00 +10e2: d7 42 mov ($42)+y,a +10e4: fc inc y +10e5: d7 42 mov ($42)+y,a +10e7: fc inc y +10e8: e4 44 mov a,$44 +10ea: d7 42 mov ($42)+y,a +10ec: fc inc y +10ed: e4 45 mov a,$45 +10ef: d7 42 mov ($42)+y,a +10f1: fc inc y +10f2: e4 44 mov a,$44 +10f4: d7 42 mov ($42)+y,a +10f6: fc inc y +10f7: e4 45 mov a,$45 +10f9: d7 42 mov ($42)+y,a +10fb: fc inc y +10fc: e8 00 mov a,#$00 +10fe: d7 42 mov ($42)+y,a +1100: fc inc y +1101: e8 00 mov a,#$00 +1103: d7 42 mov ($42)+y,a +1105: fc inc y +1106: ad 28 cmp y,#$28 +1108: d0 f9 bne $1103 +110a: ab 34 inc $34 +110c: e4 36 mov a,$36 +110e: 64 34 cmp a,$34 +1110: d0 a0 bne $10b2 +1112: e8 08 mov a,#$08 +1114: 64 34 cmp a,$34 +1116: f0 1b beq $1133 +1118: f8 34 mov x,$34 +111a: e5 98 11 mov a,$1198 +111d: 74 00 cmp a,$00+x +111f: d0 0a bne $112b +1121: eb 34 mov y,$34 +1123: cd 00 mov x,#$00 +1125: d9 00 mov $00+y,x +1127: d9 20 mov $20+y,x +1129: d9 10 mov $10+y,x +112b: ab 34 inc $34 +112d: e8 08 mov a,#$08 +112f: 64 34 cmp a,$34 +1131: d0 e5 bne $1118 +1133: cd 00 mov x,#$00 +1135: f5 98 11 mov a,$1198+x +1138: cd 00 mov x,#$00 +113a: 8d 08 mov y,#$08 +113c: 74 00 cmp a,$00+x +113e: d0 08 bne $1148 +1140: 2d push a +1141: f4 00 mov a,$00+x +1143: 08 01 or a,#$01 +1145: d4 00 mov $00+x,a +1147: ae pop a +1148: 3d inc x +1149: fe f1 dbnz y,$113c +114b: e8 50 mov a,#$50 +114d: c4 30 mov $30,a +114f: e8 00 mov a,#$00 +1151: c5 20 04 mov $0420,a +1154: 6f ret + +1155: 5d mov x,a +1156: f5 98 11 mov a,$1198+x +1159: 08 01 or a,#$01 +115b: cd 00 mov x,#$00 +115d: 8d 08 mov y,#$08 +115f: 74 00 cmp a,$00+x +1161: d0 31 bne $1194 +1163: 2d push a +1164: 4d push x +1165: 6d push y +1166: d8 33 mov $33,x +1168: 7d mov a,x +1169: 1c asl a +116a: 5d mov x,a +116b: f5 59 00 mov a,$0059+x +116e: c4 40 mov $40,a +1170: 3d inc x +1171: f5 59 00 mov a,$0059+x +1174: c4 41 mov $41,a +1176: 3f 05 07 call $0705 +1179: 90 11 bcc $118c +117b: 3f f4 06 call $06f4 +117e: e8 00 mov a,#$00 +1180: 8d 00 mov y,#$00 +1182: 3f fd 06 call $06fd +1185: e8 01 mov a,#$01 +1187: 8d 00 mov y,#$00 +1189: 3f fd 06 call $06fd +118c: ee pop y +118d: ce pop x +118e: e8 00 mov a,#$00 +1190: d5 00 00 mov $0000+x,a +1193: ae pop a +1194: 3d inc x +1195: fe c8 dbnz y,$115f +1197: 6f ret + +1198: 10 20 bpl $11ba +119a: 6f ret + +119b: 6f ret + +119c: cd 00 mov x,#$00 +119e: 1e 20 04 cmp x,$0420 +11a1: f0 01 beq $11a4 +11a3: 6f ret + +11a4: c5 20 04 mov $0420,a +11a7: cc 21 04 mov $0421,y +11aa: dd mov a,y +11ab: 5d mov x,a +11ac: e8 7f mov a,#$7f +11ae: 8d 00 mov y,#$00 +11b0: 9e div ya,x +11b1: c5 23 04 mov $0423,a +11b4: cb 34 mov $34,y +11b6: dd mov a,y +11b7: 60 clrc +11b8: 84 34 adc a,$34 +11ba: 60 clrc +11bb: 84 34 adc a,$34 +11bd: c5 22 04 mov $0422,a +11c0: e8 00 mov a,#$00 +11c2: c5 24 04 mov $0424,a +11c5: c5 25 04 mov $0425,a +11c8: 6f ret + +11c9: e8 00 mov a,#$00 +11cb: 3f 55 11 call $1155 +11ce: 8f aa f4 mov $f4,#$aa +11d1: 8f bb f5 mov $f5,#$bb +11d4: 78 cc f4 cmp $f4,#$cc +11d7: d0 fb bne $11d4 +11d9: 2f 19 bra $11f4 +11db: eb f4 mov y,$f4 +11dd: d0 fc bne $11db +11df: 7e f4 cmp y,$f4 +11e1: d0 0b bne $11ee +11e3: e4 f5 mov a,$f5 +11e5: cb f4 mov $f4,y +11e7: d7 3e mov ($3e)+y,a +11e9: fc inc y +11ea: d0 f3 bne $11df +11ec: ab 3f inc $3f +11ee: 10 ef bpl $11df +11f0: 7e f4 cmp y,$f4 +11f2: 10 eb bpl $11df +11f4: ba f6 movw ya,$f6 +11f6: da 3e movw $3e,ya +11f8: ba f4 movw ya,$f4 +11fa: c4 f4 mov $f4,a +11fc: dd mov a,y +11fd: 5d mov x,a +11fe: d0 db bne $11db +1200: 6f ret + +1201: 6f ret + +1202: c4 3e mov $3e,a +1204: e8 00 mov a,#$00 +1206: c4 3f mov $3f,a +1208: 8d 00 mov y,#$00 +120a: 7a 3e addw ya,$3e +120c: 7a 3e addw ya,$3e +120e: 7a 3e addw ya,$3e +1210: 7a 3e addw ya,$3e +1212: da 3e movw $3e,ya +1214: e8 0e mov a,#$0e +1216: fd mov y,a +1217: e8 6e mov a,#$6e +1219: 7a 3e addw ya,$3e +121b: cd 00 mov x,#$00 +121d: da 3e movw $3e,ya +121f: e7 3e mov a,($3e+x) +1221: c4 36 mov $36,a +1223: c4 34 mov $34,a +1225: 3a 3e incw $3e +1227: e7 3e mov a,($3e+x) +1229: c4 37 mov $37,a +122b: 3a 3e incw $3e +122d: ba 3e movw ya,$3e +122f: da 40 movw $40,ya +1231: f8 34 mov x,$34 +1233: e8 00 mov a,#$00 +1235: 74 00 cmp a,$00+x +1237: f0 07 beq $1240 +1239: e4 37 mov a,$37 +123b: 74 20 cmp a,$20+x +123d: 10 01 bpl $1240 +123f: 6f ret + +1240: e4 37 mov a,$37 +1242: d4 20 mov $20+x,a +1244: e4 36 mov a,$36 +1246: d4 10 mov $10+x,a +1248: e8 21 mov a,#$21 +124a: d4 00 mov $00+x,a +124c: e4 34 mov a,$34 +124e: 1c asl a +124f: 5d mov x,a +1250: f4 59 mov a,$59+x +1252: c4 42 mov $42,a +1254: 3d inc x +1255: f4 59 mov a,$59+x +1257: c4 43 mov $43,a +1259: cd 00 mov x,#$00 +125b: e7 3e mov a,($3e+x) +125d: 2d push a +125e: 3a 3e incw $3e +1260: e7 3e mov a,($3e+x) +1262: fd mov y,a +1263: 3a 3e incw $3e +1265: ae pop a +1266: da 44 movw $44,ya +1268: e8 00 mov a,#$00 +126a: 8d 00 mov y,#$00 +126c: d7 42 mov ($42)+y,a +126e: fc inc y +126f: d7 42 mov ($42)+y,a +1271: fc inc y +1272: e4 44 mov a,$44 +1274: d7 42 mov ($42)+y,a +1276: fc inc y +1277: e4 45 mov a,$45 +1279: d7 42 mov ($42)+y,a +127b: fc inc y +127c: e4 44 mov a,$44 +127e: d7 42 mov ($42)+y,a +1280: fc inc y +1281: e4 45 mov a,$45 +1283: d7 42 mov ($42)+y,a +1285: fc inc y +1286: e8 01 mov a,#$01 +1288: d7 42 mov ($42)+y,a +128a: fc inc y +128b: e8 00 mov a,#$00 +128d: d7 42 mov ($42)+y,a +128f: fc inc y +1290: ad 28 cmp y,#$28 +1292: d0 f9 bne $128d +1294: 6f ret + +1295: 6f ret + +1296: e4 34 mov a,$34 +1298: eb 35 mov y,$35 +129a: 7a 36 addw ya,$36 +129c: 6f ret + +129d: e4 34 mov a,$34 +129f: eb 35 mov y,$35 +12a1: 9a 36 subw ya,$36 +12a3: 6f ret + +12a4: e4 35 mov a,$35 +12a6: 0d push psw +12a7: 10 0d bpl $12b6 +12a9: e8 00 mov a,#$00 +12ab: 80 setc +12ac: a4 34 sbc a,$34 +12ae: c4 34 mov $34,a +12b0: e8 00 mov a,#$00 +12b2: a4 35 sbc a,$35 +12b4: c4 35 mov $35,a +12b6: 3f ca 12 call $12ca +12b9: 8e pop psw +12ba: 10 0d bpl $12c9 +12bc: e8 00 mov a,#$00 +12be: 80 setc +12bf: a4 34 sbc a,$34 +12c1: c4 34 mov $34,a +12c3: e8 00 mov a,#$00 +12c5: a4 35 sbc a,$35 +12c7: c4 35 mov $35,a +12c9: 6f ret + +12ca: 4d push x +12cb: 6d push y +12cc: cd 10 mov x,#$10 +12ce: e8 00 mov a,#$00 +12d0: c4 38 mov $38,a +12d2: c4 39 mov $39,a +12d4: 2b 34 rol $34 +12d6: 2b 35 rol $35 +12d8: 2b 38 rol $38 +12da: 2b 39 rol $39 +12dc: e4 38 mov a,$38 +12de: 80 setc +12df: a4 36 sbc a,$36 +12e1: fd mov y,a +12e2: e4 39 mov a,$39 +12e4: a4 37 sbc a,$37 +12e6: 90 04 bcc $12ec +12e8: eb 38 mov y,$38 +12ea: e4 39 mov a,$39 +12ec: 2b 34 rol $34 +12ee: 2b 35 rol $35 +12f0: 1d dec x +12f1: d0 e5 bne $12d8 +12f3: ee pop y +12f4: ce pop x +12f5: 6f ret + +12f6: e4 34 mov a,$34 +12f8: eb 35 mov y,$35 +12fa: a8 80 sbc a,#$80 +12fc: 90 01 bcc $12ff +12fe: fc inc y +12ff: dd mov a,y +1300: 6f ret + +1301: 1c asl a +1302: c4 46 mov $46,a +1304: 1c asl a +1305: 60 clrc +1306: 84 46 adc a,$46 +1308: c4 46 mov $46,a +130a: e8 00 mov a,#$00 +130c: c4 47 mov $47,a +130e: e8 04 mov a,#$04 +1310: fd mov y,a +1311: e8 30 mov a,#$30 +1313: 7a 46 addw ya,$46 +1315: da 46 movw $46,ya +1317: 8d 00 mov y,#$00 +1319: cd 00 mov x,#$00 +131b: e7 46 mov a,($46+x) +131d: 3a 46 incw $46 +131f: 8d 20 mov y,#$20 +1321: d7 40 mov ($40)+y,a +1323: e7 46 mov a,($46+x) +1325: 3a 46 incw $46 +1327: 8d 21 mov y,#$21 +1329: d7 40 mov ($40)+y,a +132b: e7 46 mov a,($46+x) +132d: 3a 46 incw $46 +132f: 8d 22 mov y,#$22 +1331: d7 40 mov ($40)+y,a +1333: e7 46 mov a,($46+x) +1335: 3a 46 incw $46 +1337: 8d 23 mov y,#$23 +1339: d7 40 mov ($40)+y,a +133b: e7 46 mov a,($46+x) +133d: 3a 46 incw $46 +133f: 8d 29 mov y,#$29 +1341: d7 40 mov ($40)+y,a +1343: e7 46 mov a,($46+x) +1345: 3a 46 incw $46 +1347: 8d 28 mov y,#$28 +1349: d7 40 mov ($40)+y,a +134b: 6f ret + +134c: e8 5d mov a,#$5d +134e: 8d 2a mov y,#$2a +1350: 3f 00 07 call $0700 +1353: 6f ret + +1354: 60 clrc +1355: e4 f4 mov a,$f4 +1357: 64 f4 cmp a,$f4 +1359: d0 0a bne $1365 +135b: 80 setc +135c: 68 00 cmp a,#$00 +135e: f0 05 beq $1365 +1360: eb f5 mov y,$f5 +1362: 8f f1 f1 mov $f1,#$f1 +1365: 6f ret + diff --git a/snes/System Vision/Power Moves ($0530).bin b/snes/System Vision/Power Moves ($0530).bin new file mode 100644 index 00000000..219ef497 Binary files /dev/null and b/snes/System Vision/Power Moves ($0530).bin differ diff --git a/snes/System Vision/Power Moves.s b/snes/System Vision/Power Moves.s new file mode 100644 index 00000000..cc5c5452 --- /dev/null +++ b/snes/System Vision/Power Moves.s @@ -0,0 +1,1747 @@ +0530: 20 clrp +0531: cd 7f mov x,#$7f +0533: bd mov sp,x +0534: e8 00 mov a,#$00 ; clear registers +0536: cd 00 mov x,#$00 +0538: 8d 00 mov y,#$00 +053a: 3f fa 07 call $07fa ; clear RAM +053d: 3f 2b 08 call $082b +0540: 3f 1a 15 call $151a +0543: 3f 17 08 call $0817 +0546: 8f ee f4 mov $f4,#$ee ; set communication ports +0549: 78 ff f6 cmp $f6,#$ff +054c: d0 fb bne $0549 +054e: 8f 03 f1 mov $f1,#$03 +0551: 3f 22 15 call $1522 +0554: 90 57 bcc $05ad +0556: 5d mov x,a +0557: 28 f0 and a,#$f0 +0559: 68 10 cmp a,#$10 +055b: f0 2a beq $0587 +055d: 68 20 cmp a,#$20 +055f: f0 2e beq $058f +0561: 68 30 cmp a,#$30 +0563: f0 32 beq $0597 +0565: 68 40 cmp a,#$40 +0567: f0 33 beq $059c +0569: 68 50 cmp a,#$50 +056b: f0 2f beq $059c +056d: 68 60 cmp a,#$60 +056f: f0 2b beq $059c +0571: 68 70 cmp a,#$70 +0573: f0 27 beq $059c +0575: 68 80 cmp a,#$80 +0577: f0 23 beq $059c +0579: 68 90 cmp a,#$90 +057b: f0 1f beq $059c +057d: 68 a0 cmp a,#$a0 +057f: f0 1b beq $059c +0581: 68 f0 cmp a,#$f0 +0583: f0 20 beq $05a5 +0585: 2f 26 bra $05ad +0587: 7d mov a,x +0588: 28 0f and a,#$0f +058a: 3f 51 12 call $1251 +058d: 2f 1e bra $05ad +058f: 7d mov a,x +0590: 28 0f and a,#$0f +0592: 3f 16 13 call $1316 +0595: 2f 16 bra $05ad +0597: 3f 8a 13 call $138a +059a: 2f 11 bra $05ad +059c: 7d mov a,x +059d: 80 setc +059e: a8 40 sbc a,#$40 +05a0: 3f c3 13 call $13c3 +05a3: 2f 08 bra $05ad +05a5: 7d mov a,x +05a6: 28 0f and a,#$0f +05a8: 3f 5d 13 call $135d +05ab: 2f 00 bra $05ad +05ad: e8 00 mov a,#$00 +05af: f8 fd mov x,$fd +05b1: f0 02 beq $05b5 +05b3: 08 01 or a,#$01 +05b5: f8 fe mov x,$fe +05b7: f0 02 beq $05bb +05b9: 08 02 or a,#$02 +05bb: 68 00 cmp a,#$00 +05bd: f0 92 beq $0551 +05bf: c4 58 mov $58,a +05c1: e8 00 mov a,#$00 +05c3: c4 33 mov $33,a +05c5: e4 58 mov a,$58 +05c7: 28 01 and a,#$01 +05c9: f0 04 beq $05cf +05cb: e4 30 mov a,$30 +05cd: c4 fa mov $fa,a +05cf: e4 58 mov a,$58 +05d1: 28 02 and a,#$02 +05d3: f0 04 beq $05d9 +05d5: e4 31 mov a,$31 +05d7: c4 fb mov $fb,a +05d9: 3f 46 09 call $0946 +05dc: e4 33 mov a,$33 +05de: 5d mov x,a +05df: f4 00 mov a,$00+x +05e1: f0 63 beq $0646 +05e3: 28 0f and a,#$0f +05e5: 68 01 cmp a,#$01 +05e7: d0 5d bne $0646 +05e9: 7d mov a,x +05ea: 1c asl a +05eb: 5d mov x,a +05ec: f5 59 00 mov a,$0059+x +05ef: c4 40 mov $40,a +05f1: 3d inc x +05f2: f5 59 00 mov a,$0059+x +05f5: c4 41 mov $41,a +05f7: 8d 06 mov y,#$06 +05f9: f7 40 mov a,($40)+y +05fb: bc inc a +05fc: 24 58 and a,$58 +05fe: f0 46 beq $0646 +0600: 8d 04 mov y,#$04 +0602: f7 40 mov a,($40)+y +0604: c4 44 mov $44,a +0606: 8d 05 mov y,#$05 +0608: f7 40 mov a,($40)+y +060a: c4 45 mov $45,a +060c: 8d 00 mov y,#$00 +060e: f7 40 mov a,($40)+y +0610: 68 00 cmp a,#$00 +0612: f0 10 beq $0624 +0614: 9c dec a +0615: d7 40 mov ($40)+y,a +0617: e4 44 mov a,$44 +0619: 8d 04 mov y,#$04 +061b: d7 40 mov ($40)+y,a +061d: e4 45 mov a,$45 +061f: fc inc y +0620: d7 40 mov ($40)+y,a +0622: 2f 22 bra $0646 +0624: cd 00 mov x,#$00 +0626: e7 44 mov a,($44+x) +0628: 3a 44 incw $44 +062a: 68 80 cmp a,#$80 ; check if next byte is a vcmd +062c: 10 05 bpl $0633 +062e: 3f ac 0d call $0dac +0631: 2f d9 bra $060c +0633: 60 clrc ; dispatch current vcmd from table +0634: 28 7f and a,#$7f +0636: 1c asl a +0637: 5d mov x,a +0638: 3f 43 06 call $0643 +063b: f8 33 mov x,$33 +063d: f4 00 mov a,$00+x +063f: f0 05 beq $0646 +0641: 2f c9 bra $060c +0643: 1f cf 0a jmp ($0acf+x) + +0646: ab 33 inc $33 +0648: 78 10 33 cmp $33,#$10 +064b: d0 8f bne $05dc +064d: e0 clrv +064e: e8 00 mov a,#$00 +0650: c4 33 mov $33,a +0652: e4 33 mov a,$33 +0654: 5d mov x,a +0655: f4 00 mov a,$00+x +0657: f0 55 beq $06ae +0659: 28 0f and a,#$0f +065b: 68 01 cmp a,#$01 +065d: d0 4f bne $06ae +065f: 7d mov a,x +0660: 1c asl a +0661: 5d mov x,a +0662: f5 59 00 mov a,$0059+x +0665: c4 40 mov $40,a +0667: 3d inc x +0668: f5 59 00 mov a,$0059+x +066b: c4 41 mov $41,a +066d: 8d 06 mov y,#$06 +066f: f7 40 mov a,($40)+y +0671: bc inc a +0672: 24 58 and a,$58 +0674: f0 38 beq $06ae +0676: 8d 24 mov y,#$24 +0678: f7 40 mov a,($40)+y +067a: 28 30 and a,#$30 +067c: f0 30 beq $06ae +067e: 3f 3c 07 call $073c +0681: 90 28 bcc $06ab +0683: 3f 2b 07 call $072b +0686: 8d 24 mov y,#$24 +0688: f7 40 mov a,($40)+y +068a: 2d push a +068b: 28 08 and a,#$08 +068d: d0 1b bne $06aa +068f: e8 00 mov a,#$00 +0691: 8d 00 mov y,#$00 +0693: 3f 34 07 call $0734 +0696: e8 01 mov a,#$01 +0698: 8d 00 mov y,#$00 +069a: 3f 34 07 call $0734 +069d: ae pop a +069e: 28 10 and a,#$10 +06a0: d0 09 bne $06ab +06a2: 3f 74 07 call $0774 +06a5: 3f 1d 0e call $0e1d +06a8: 2f 01 bra $06ab +06aa: ae pop a +06ab: 3f 14 0e call $0e14 +06ae: ab 33 inc $33 +06b0: 78 10 33 cmp $33,#$10 +06b3: d0 9d bne $0652 +06b5: e8 00 mov a,#$00 +06b7: c4 33 mov $33,a +06b9: e4 33 mov a,$33 +06bb: 5d mov x,a +06bc: f4 00 mov a,$00+x +06be: f0 61 beq $0721 +06c0: 28 0f and a,#$0f +06c2: 68 01 cmp a,#$01 +06c4: d0 5b bne $0721 +06c6: 7d mov a,x +06c7: 1c asl a +06c8: 5d mov x,a +06c9: f5 59 00 mov a,$0059+x +06cc: c4 40 mov $40,a +06ce: 3d inc x +06cf: f5 59 00 mov a,$0059+x +06d2: c4 41 mov $41,a +06d4: 8d 06 mov y,#$06 +06d6: f7 40 mov a,($40)+y +06d8: bc inc a +06d9: 24 58 and a,$58 +06db: f0 44 beq $0721 +06dd: 3f 3c 07 call $073c +06e0: 90 3f bcc $0721 +06e2: e8 00 mov a,#$00 +06e4: c4 38 mov $38,a +06e6: c4 39 mov $39,a +06e8: c4 3a mov $3a,a +06ea: 3f d2 09 call $09d2 +06ed: 90 02 bcc $06f1 +06ef: ab 3a inc $3a +06f1: 3f 4c 0a call $0a4c +06f4: 90 08 bcc $06fe +06f6: 8d 17 mov y,#$17 +06f8: f7 40 mov a,($40)+y +06fa: c4 38 mov $38,a +06fc: ab 3a inc $3a +06fe: e4 3a mov a,$3a +0700: f0 1f beq $0721 +0702: 3f 2b 07 call $072b +0705: 8d 0e mov y,#$0e +0707: f7 40 mov a,($40)+y +0709: c4 36 mov $36,a +070b: 8d 0f mov y,#$0f +070d: f7 40 mov a,($40)+y +070f: c4 37 mov $37,a +0711: 60 clrc +0712: e4 36 mov a,$36 +0714: 84 38 adc a,$38 +0716: c4 36 mov $36,a +0718: e4 37 mov a,$37 +071a: 84 39 adc a,$39 +071c: c4 37 mov $37,a +071e: 3f eb 07 call $07eb +0721: ab 33 inc $33 +0723: 78 10 33 cmp $33,#$10 +0726: d0 91 bne $06b9 +0728: 5f 51 05 jmp $0551 + +072b: e4 34 mov a,$34 +072d: 1c asl a +072e: 1c asl a +072f: 1c asl a +0730: 1c asl a +0731: c4 49 mov $49,a +0733: 6f ret + +0734: 60 clrc +0735: 84 49 adc a,$49 +0737: c4 f2 mov $f2,a +0739: cb f3 mov $f3,y +073b: 6f ret + +073c: f8 33 mov x,$33 +073e: f4 10 mov a,$10+x +0740: fb 20 mov y,$20+x +0742: cd 00 mov x,#$00 +0744: 8f 10 3a mov $3a,#$10 +0747: 8f 00 38 mov $38,#$00 +074a: 3e 33 cmp x,$33 +074c: f0 16 beq $0764 +074e: 2d push a +074f: f4 00 mov a,$00+x +0751: ae pop a +0752: f0 10 beq $0764 +0754: 74 10 cmp a,$10+x +0756: d0 0c bne $0764 +0758: c4 34 mov $34,a +075a: dd mov a,y +075b: 74 20 cmp a,$20+x +075d: b0 03 bcs $0762 +075f: 8f 01 38 mov $38,#$01 +0762: e4 34 mov a,$34 +0764: 3d inc x +0765: 6e 3a e2 dbnz $3a,$074a +0768: c4 34 mov $34,a +076a: e8 00 mov a,#$00 +076c: 64 38 cmp a,$38 +076e: f0 02 beq $0772 +0770: 60 clrc +0771: 6f ret + +0772: 80 setc +0773: 6f ret + +0774: 8d 0e mov y,#$0e +0776: f7 40 mov a,($40)+y +0778: c4 36 mov $36,a +077a: 8d 0f mov y,#$0f +077c: f7 40 mov a,($40)+y +077e: c4 37 mov $37,a +0780: 3f eb 07 call $07eb +0783: 8d 20 mov y,#$20 +0785: f7 40 mov a,($40)+y +0787: fd mov y,a +0788: e8 04 mov a,#$04 +078a: 3f 34 07 call $0734 +078d: 8d 21 mov y,#$21 +078f: f7 40 mov a,($40)+y +0791: fd mov y,a +0792: e8 05 mov a,#$05 +0794: 3f 34 07 call $0734 +0797: 8d 22 mov y,#$22 +0799: f7 40 mov a,($40)+y +079b: fd mov y,a +079c: e8 06 mov a,#$06 +079e: 3f 34 07 call $0734 +07a1: 8d 23 mov y,#$23 +07a3: f7 40 mov a,($40)+y +07a5: fd mov y,a +07a6: e8 07 mov a,#$07 +07a8: 3f 34 07 call $0734 +07ab: 8d 09 mov y,#$09 +07ad: f7 40 mov a,($40)+y +07af: c4 36 mov $36,a +07b1: 3f b5 07 call $07b5 +07b4: 6f ret + +07b5: 8d 27 mov y,#$27 +07b7: f7 40 mov a,($40)+y +07b9: 28 0f and a,#$0f +07bb: 1c asl a +07bc: 1c asl a +07bd: 1c asl a +07be: 1c asl a +07bf: c4 38 mov $38,a +07c1: 8d 0a mov y,#$0a +07c3: f7 40 mov a,($40)+y +07c5: c4 3a mov $3a,a +07c7: eb 38 mov y,$38 +07c9: cf mul ya +07ca: e4 3a mov a,$3a +07cc: cb 38 mov $38,y +07ce: 80 setc +07cf: a4 38 sbc a,$38 +07d1: c4 38 mov $38,a +07d3: 3f 99 09 call $0999 +07d6: fd mov y,a +07d7: e8 00 mov a,#$00 +07d9: 3f 34 07 call $0734 +07dc: e4 3a mov a,$3a +07de: 80 setc +07df: a4 38 sbc a,$38 +07e1: 3f 99 09 call $0999 +07e4: fd mov y,a +07e5: e8 01 mov a,#$01 +07e7: 3f 34 07 call $0734 +07ea: 6f ret + +07eb: eb 36 mov y,$36 +07ed: e8 02 mov a,#$02 +07ef: 3f 34 07 call $0734 +07f2: eb 37 mov y,$37 +07f4: e8 03 mov a,#$03 +07f6: 3f 34 07 call $0734 +07f9: 6f ret + +07fa: e8 00 mov a,#$00 +07fc: 5d mov x,a +07fd: af mov (x)+,a +07fe: c8 59 cmp x,#$59 +0800: d0 fb bne $07fd +0802: e8 00 mov a,#$00 +0804: c5 20 04 mov $0420,a +0807: c5 21 04 mov $0421,a +080a: c5 22 04 mov $0422,a +080d: c5 23 04 mov $0423,a +0810: c5 24 04 mov $0424,a +0813: c5 25 04 mov $0425,a +0816: 6f ret + +0817: 8f 30 f1 mov $f1,#$30 +081a: e8 00 mov a,#$00 +081c: c4 f1 mov $f1,a +081e: e8 00 mov a,#$00 +0820: c4 fa mov $fa,a +0822: c4 fb mov $fb,a +0824: c4 fc mov $fc,a +0826: e8 50 mov a,#$50 +0828: c4 30 mov $30,a +082a: 6f ret + +082b: e8 6d mov a,#$6d +082d: 8d f8 mov y,#$f8 +082f: 3f 37 07 call $0737 +0832: e8 3d mov a,#$3d +0834: 8d 00 mov y,#$00 +0836: 3f 37 07 call $0737 +0839: e8 4d mov a,#$4d +083b: 8d 00 mov y,#$00 +083d: 3f 37 07 call $0737 +0840: e8 7d mov a,#$7d +0842: 8d 00 mov y,#$00 +0844: 3f 37 07 call $0737 +0847: e8 0d mov a,#$0d +0849: 8d 00 mov y,#$00 +084b: 3f 37 07 call $0737 +084e: e8 2d mov a,#$2d +0850: 8d 00 mov y,#$00 +0852: 3f 37 07 call $0737 +0855: e8 6c mov a,#$6c +0857: 8d 20 mov y,#$20 +0859: 3f 37 07 call $0737 +085c: e8 0c mov a,#$0c +085e: 8d 70 mov y,#$70 +0860: 3f 37 07 call $0737 +0863: e8 1c mov a,#$1c +0865: 8d 70 mov y,#$70 +0867: 3f 37 07 call $0737 +086a: e8 2c mov a,#$2c +086c: 8d 00 mov y,#$00 +086e: 3f 37 07 call $0737 +0871: e8 3c mov a,#$3c +0873: 8d 00 mov y,#$00 +0875: 3f 37 07 call $0737 +0878: e8 0f mov a,#$0f +087a: 8d 7f mov y,#$7f +087c: 3f 37 07 call $0737 +087f: e8 1f mov a,#$1f +0881: 8d 00 mov y,#$00 +0883: 3f 37 07 call $0737 +0886: e8 2f mov a,#$2f +0888: 8d 00 mov y,#$00 +088a: 3f 37 07 call $0737 +088d: e8 3f mov a,#$3f +088f: 8d 00 mov y,#$00 +0891: 3f 37 07 call $0737 +0894: e8 4f mov a,#$4f +0896: 8d 00 mov y,#$00 +0898: 3f 37 07 call $0737 +089b: e8 5f mov a,#$5f +089d: 8d 00 mov y,#$00 +089f: 3f 37 07 call $0737 +08a2: e8 6f mov a,#$6f +08a4: 8d 00 mov y,#$00 +08a6: 3f 37 07 call $0737 +08a9: e8 7f mov a,#$7f +08ab: 8d 00 mov y,#$00 +08ad: 3f 37 07 call $0737 +08b0: 3f d1 08 call $08d1 +08b3: 00 nop +08b4: 00 nop +08b5: 00 nop +08b6: 00 nop +08b7: 00 nop +08b8: 3f c9 08 call $08c9 +08bb: 00 nop +08bc: 00 nop +08bd: 00 nop +08be: 00 nop +08bf: 00 nop +08c0: 6f ret + +08c1: e8 5c mov a,#$5c +08c3: 8d ff mov y,#$ff +08c5: 3f 37 07 call $0737 +08c8: 6f ret + +08c9: e8 4c mov a,#$4c +08cb: 8d ff mov y,#$ff +08cd: 3f 37 07 call $0737 +08d0: 6f ret + +08d1: e8 00 mov a,#$00 +08d3: 8d 00 mov y,#$00 +08d5: e8 00 mov a,#$00 +08d7: 8d 00 mov y,#$00 +08d9: 3f 37 07 call $0737 +08dc: e8 01 mov a,#$01 +08de: 8d 00 mov y,#$00 +08e0: 3f 37 07 call $0737 +08e3: e8 10 mov a,#$10 +08e5: 8d 00 mov y,#$00 +08e7: 3f 37 07 call $0737 +08ea: e8 11 mov a,#$11 +08ec: 8d 00 mov y,#$00 +08ee: 3f 37 07 call $0737 +08f1: e8 20 mov a,#$20 +08f3: 8d 00 mov y,#$00 +08f5: 3f 37 07 call $0737 +08f8: e8 21 mov a,#$21 +08fa: 8d 00 mov y,#$00 +08fc: 3f 37 07 call $0737 +08ff: e8 30 mov a,#$30 +0901: 8d 00 mov y,#$00 +0903: 3f 37 07 call $0737 +0906: e8 31 mov a,#$31 +0908: 8d 00 mov y,#$00 +090a: 3f 37 07 call $0737 +090d: e8 40 mov a,#$40 +090f: 8d 00 mov y,#$00 +0911: 3f 37 07 call $0737 +0914: e8 41 mov a,#$41 +0916: 8d 00 mov y,#$00 +0918: 3f 37 07 call $0737 +091b: e8 50 mov a,#$50 +091d: 8d 00 mov y,#$00 +091f: 3f 37 07 call $0737 +0922: e8 51 mov a,#$51 +0924: 8d 00 mov y,#$00 +0926: 3f 37 07 call $0737 +0929: e8 60 mov a,#$60 +092b: 8d 00 mov y,#$00 +092d: 3f 37 07 call $0737 +0930: e8 61 mov a,#$61 +0932: 8d 00 mov y,#$00 +0934: 3f 37 07 call $0737 +0937: e8 70 mov a,#$70 +0939: 8d 00 mov y,#$00 +093b: 3f 37 07 call $0737 +093e: e8 71 mov a,#$71 +0940: 8d 00 mov y,#$00 +0942: 3f 37 07 call $0737 +0945: 6f ret + +0946: e5 20 04 mov a,$0420 +0949: f0 4d beq $0998 +094b: e5 21 04 mov a,$0421 +094e: d0 23 bne $0973 +0950: e5 20 04 mov a,$0420 +0953: 5c lsr a +0954: 90 05 bcc $095b +0956: e8 00 mov a,#$00 +0958: 3f 16 13 call $1316 +095b: 5c lsr a +095c: 90 05 bcc $0963 +095e: e8 01 mov a,#$01 +0960: 3f 16 13 call $1316 +0963: e8 00 mov a,#$00 +0965: c5 20 04 mov $0420,a +0968: c5 21 04 mov $0421,a +096b: c5 22 04 mov $0422,a +096e: c5 23 04 mov $0423,a +0971: 2f 25 bra $0998 +0973: e5 26 04 mov a,$0426 +0976: bc inc a +0977: 28 0f and a,#$0f +0979: c5 26 04 mov $0426,a +097c: d0 1a bne $0998 +097e: e5 21 04 mov a,$0421 +0981: 9c dec a +0982: c5 21 04 mov $0421,a +0985: 60 clrc +0986: e5 24 04 mov a,$0424 +0989: 85 22 04 adc a,$0422 +098c: c5 24 04 mov $0424,a +098f: e5 25 04 mov a,$0425 +0992: 85 23 04 adc a,$0423 +0995: c5 25 04 mov $0425,a +0998: 6f ret + +0999: cd 00 mov x,#$00 +099b: 1e 20 04 cmp x,$0420 +099e: f0 2e beq $09ce +09a0: f8 33 mov x,$33 +09a2: c4 47 mov $47,a +09a4: f4 00 mov a,$00+x +09a6: 5c lsr a +09a7: 5c lsr a +09a8: 5c lsr a +09a9: 5c lsr a +09aa: c4 46 mov $46,a +09ac: 25 20 04 and a,$0420 +09af: f0 0c beq $09bd +09b1: e4 47 mov a,$47 +09b3: 80 setc +09b4: a5 25 04 sbc a,$0425 +09b7: 10 15 bpl $09ce +09b9: e8 00 mov a,#$00 +09bb: 2f 11 bra $09ce +09bd: e4 46 mov a,$46 +09bf: 25 20 04 and a,$0420 +09c2: f0 0b beq $09cf +09c4: e4 47 mov a,$47 +09c6: 80 setc +09c7: a5 25 04 sbc a,$0425 +09ca: 10 02 bpl $09ce +09cc: e8 00 mov a,#$00 +09ce: 6f ret + +09cf: e4 47 mov a,$47 +09d1: 6f ret + +09d2: 8d 24 mov y,#$24 +09d4: f7 40 mov a,($40)+y +09d6: 28 04 and a,#$04 +09d8: d0 02 bne $09dc +09da: 60 clrc +09db: 6f ret + +09dc: 8d 13 mov y,#$13 +09de: f7 40 mov a,($40)+y +09e0: f0 68 beq $0a4a +09e2: 8d 12 mov y,#$12 +09e4: f7 40 mov a,($40)+y +09e6: f0 30 beq $0a18 +09e8: 9c dec a +09e9: 8d 12 mov y,#$12 +09eb: d7 40 mov ($40)+y,a +09ed: 8d 0e mov y,#$0e +09ef: f7 40 mov a,($40)+y +09f1: c4 38 mov $38,a +09f3: 8d 0f mov y,#$0f +09f5: f7 40 mov a,($40)+y +09f7: c4 39 mov $39,a +09f9: 8d 14 mov y,#$14 +09fb: f7 40 mov a,($40)+y +09fd: c4 3a mov $3a,a +09ff: 8d 15 mov y,#$15 +0a01: f7 40 mov a,($40)+y +0a03: c4 3b mov $3b,a +0a05: 60 clrc +0a06: ba 38 movw ya,$38 +0a08: 7a 3a addw ya,$3a +0a0a: da 38 movw $38,ya +0a0c: 8d 0e mov y,#$0e +0a0e: d7 40 mov ($40)+y,a +0a10: e4 39 mov a,$39 +0a12: 8d 0f mov y,#$0f +0a14: d7 40 mov ($40)+y,a +0a16: 2f 32 bra $0a4a +0a18: 8d 10 mov y,#$10 +0a1a: f7 40 mov a,($40)+y +0a1c: c4 38 mov $38,a +0a1e: 8d 11 mov y,#$11 +0a20: f7 40 mov a,($40)+y +0a22: c4 39 mov $39,a +0a24: 8d 0e mov y,#$0e +0a26: f7 40 mov a,($40)+y +0a28: c4 3a mov $3a,a +0a2a: 8d 0f mov y,#$0f +0a2c: f7 40 mov a,($40)+y +0a2e: c4 3b mov $3b,a +0a30: e4 38 mov a,$38 +0a32: 64 3a cmp a,$3a +0a34: d0 08 bne $0a3e +0a36: e4 39 mov a,$39 +0a38: 64 3b cmp a,$3b +0a3a: d0 02 bne $0a3e +0a3c: 60 clrc +0a3d: 6f ret + +0a3e: e4 38 mov a,$38 +0a40: 8d 0e mov y,#$0e +0a42: d7 40 mov ($40)+y,a +0a44: e4 39 mov a,$39 +0a46: 8d 0f mov y,#$0f +0a48: d7 40 mov ($40)+y,a +0a4a: 80 setc +0a4b: 6f ret + +0a4c: 8d 24 mov y,#$24 +0a4e: f7 40 mov a,($40)+y +0a50: 28 02 and a,#$02 +0a52: d0 02 bne $0a56 +0a54: 60 clrc +0a55: 6f ret + +0a56: 8d 00 mov y,#$00 +0a58: 8d 1a mov y,#$1a +0a5a: f7 40 mov a,($40)+y +0a5c: f0 6f beq $0acd +0a5e: 8d 19 mov y,#$19 +0a60: f7 40 mov a,($40)+y +0a62: f0 07 beq $0a6b +0a64: 9c dec a +0a65: 8d 19 mov y,#$19 +0a67: d7 40 mov ($40)+y,a +0a69: 2f 62 bra $0acd +0a6b: 8d 17 mov y,#$17 +0a6d: f7 40 mov a,($40)+y +0a6f: c4 36 mov $36,a +0a71: 8d 1b mov y,#$1b +0a73: f7 40 mov a,($40)+y +0a75: c4 38 mov $38,a +0a77: e8 00 mov a,#$00 +0a79: c4 37 mov $37,a +0a7b: c4 39 mov $39,a +0a7d: 8d 1f mov y,#$1f +0a7f: f7 40 mov a,($40)+y +0a81: 68 00 cmp a,#$00 +0a83: d0 2b bne $0ab0 +0a85: 60 clrc +0a86: ba 36 movw ya,$36 +0a88: 7a 38 addw ya,$38 +0a8a: da 36 movw $36,ya +0a8c: c4 37 mov $37,a +0a8e: 8d 1d mov y,#$1d +0a90: f7 40 mov a,($40)+y +0a92: c4 38 mov $38,a +0a94: e4 36 mov a,$36 +0a96: 64 38 cmp a,$38 +0a98: e4 37 mov a,$37 +0a9a: a4 39 sbc a,$39 +0a9c: 90 10 bcc $0aae +0a9e: e8 01 mov a,#$01 +0aa0: 8d 1f mov y,#$1f +0aa2: d7 40 mov ($40)+y,a +0aa4: 8d 1d mov y,#$1d +0aa6: f7 40 mov a,($40)+y +0aa8: c4 36 mov $36,a +0aaa: e8 00 mov a,#$00 +0aac: c4 37 mov $37,a +0aae: 2f 17 bra $0ac7 +0ab0: 80 setc +0ab1: ba 36 movw ya,$36 +0ab3: 9a 38 subw ya,$38 +0ab5: da 36 movw $36,ya +0ab7: e4 37 mov a,$37 +0ab9: 10 f3 bpl $0aae +0abb: e8 00 mov a,#$00 +0abd: 8d 1f mov y,#$1f +0abf: d7 40 mov ($40)+y,a +0ac1: e8 00 mov a,#$00 +0ac3: c4 36 mov $36,a +0ac5: c4 37 mov $37,a +0ac7: e4 36 mov a,$36 +0ac9: 8d 17 mov y,#$17 +0acb: d7 40 mov ($40)+y,a +0acd: 80 setc +0ace: 6f ret + +; vcmd table (80-95) +0acf: dw $0afb ; 80 - set variables? +0ad1: dw $0b37 ; 81 - (2 bytes) +0ad3: dw $0b12 ; 82 - start of song loop +0ad5: dw $0b78 ; 83 - (7 bytes) +0ad7: dw $0bcd ; 84 - set tempo +0ad9: dw $0bdf ; 85 - set instrument +0adb: dw $0be9 ; 86 - (3 bytes) +0add: dw $0c0a ; 87 - (1 byte) +0adf: dw $0c13 ; 88 - set ASDR bit 7 +0ae1: dw $0c1c ; 89 - clear ASDR bits +0ae3: dw $0c25 ; 8a - set up vibrato parameters +0ae5: dw $0c6f ; 8b - set ASDR bit 6 +0ae7: dw $0c78 ; 8c - set ASDR bits on +0ae9: dw $0c81 ; 8d - (2 bytes) +0aeb: dw $0d2e ; 8e - nop +0aed: dw $0d2f ; 8f - set ASDR bit 5 +0aef: dw $0d38 ; 90 - clear ASDR bits +0af1: dw $0d41 ; 91 - restart channel +0af3: dw $0d4d ; 92 - repeat section +0af5: dw $0d8f ; 93 - set ASDR bit 4 +0af7: dw $0d98 ; 94 - set panning +0af9: dw $0ece ; 95 - stop channel + + +0afb: cd 00 mov x,#$00 ; vcmd 80 - set variables? +0afd: e7 44 mov a,($44+x) +0aff: 3a 44 incw $44 +0b01: c4 4b mov $4b,a +0b03: c4 4d mov $4d,a +0b05: e8 00 mov a,#$00 +0b07: c4 4a mov $4a,a +0b09: c4 4c mov $4c,a +0b0b: c4 4e mov $4e,a +0b0d: c4 4f mov $4f,a +0b0f: c4 50 mov $50,a +0b11: 6f ret + +0b12: cd 00 mov x,#$00 ; vcmd 82 - start of song loop +0b14: e7 44 mov a,($44+x) +0b16: 3a 44 incw $44 +0b18: 8d 08 mov y,#$08 +0b1a: d7 40 mov ($40)+y,a +0b1c: 8d 0a mov y,#$0a +0b1e: d7 40 mov ($40)+y,a +0b20: e8 00 mov a,#$00 +0b22: 8d 07 mov y,#$07 +0b24: d7 40 mov ($40)+y,a +0b26: 8d 09 mov y,#$09 +0b28: d7 40 mov ($40)+y,a +0b2a: 8d 0b mov y,#$0b +0b2c: d7 40 mov ($40)+y,a +0b2e: 8d 0c mov y,#$0c +0b30: d7 40 mov ($40)+y,a +0b32: 8d 0d mov y,#$0d +0b34: d7 40 mov ($40)+y,a +0b36: 6f ret + +0b37: cd 00 mov x,#$00 ; vcmd 81 - (2 bytes) +0b39: e7 44 mov a,($44+x) +0b3b: 3a 44 incw $44 +0b3d: c4 34 mov $34,a +0b3f: e7 44 mov a,($44+x) +0b41: 3a 44 incw $44 +0b43: c4 36 mov $36,a +0b45: e4 34 mov a,$34 +0b47: c4 4d mov $4d,a +0b49: e4 36 mov a,$36 +0b4b: c4 4e mov $4e,a +0b4d: e8 00 mov a,#$00 +0b4f: c4 4c mov $4c,a +0b51: e4 4a mov a,$4a +0b53: c4 34 mov $34,a +0b55: e4 4b mov a,$4b +0b57: c4 35 mov $35,a +0b59: e4 4c mov a,$4c +0b5b: c4 36 mov $36,a +0b5d: e4 4d mov a,$4d +0b5f: c4 37 mov $37,a +0b61: 3f 6b 14 call $146b +0b64: e4 4e mov a,$4e +0b66: c4 37 mov $37,a +0b68: e8 00 mov a,#$00 +0b6a: c4 36 mov $36,a +0b6c: 3f 72 14 call $1472 +0b6f: e4 34 mov a,$34 +0b71: c4 4f mov $4f,a +0b73: e4 35 mov a,$35 +0b75: c4 50 mov $50,a +0b77: 6f ret + +0b78: cd 00 mov x,#$00 ; vcmd 83 - (7 bytes) +0b7a: e7 44 mov a,($44+x) +0b7c: 3a 44 incw $44 +0b7e: c4 34 mov $34,a +0b80: e7 44 mov a,($44+x) +0b82: 3a 44 incw $44 +0b84: c4 36 mov $36,a +0b86: e4 34 mov a,$34 +0b88: 8d 0a mov y,#$0a +0b8a: d7 40 mov ($40)+y,a +0b8c: e4 36 mov a,$36 +0b8e: 8d 0b mov y,#$0b +0b90: d7 40 mov ($40)+y,a +0b92: e8 00 mov a,#$00 +0b94: 8d 09 mov y,#$09 +0b96: d7 40 mov ($40)+y,a +0b98: e7 44 mov a,($44+x) +0b9a: 3a 44 incw $44 +0b9c: c4 34 mov $34,a +0b9e: e7 44 mov a,($44+x) +0ba0: 3a 44 incw $44 +0ba2: c4 35 mov $35,a +0ba4: e7 44 mov a,($44+x) +0ba6: 3a 44 incw $44 +0ba8: c4 36 mov $36,a +0baa: e7 44 mov a,($44+x) +0bac: 3a 44 incw $44 +0bae: c4 37 mov $37,a +0bb0: 3f 6b 14 call $146b +0bb3: e7 44 mov a,($44+x) +0bb5: 3a 44 incw $44 +0bb7: c4 37 mov $37,a +0bb9: e8 00 mov a,#$00 +0bbb: c4 36 mov $36,a +0bbd: 3f 72 14 call $1472 +0bc0: e4 34 mov a,$34 +0bc2: 8d 0c mov y,#$0c +0bc4: d7 40 mov ($40)+y,a +0bc6: e4 35 mov a,$35 +0bc8: 8d 0d mov y,#$0d +0bca: d7 40 mov ($40)+y,a +0bcc: 6f ret + +0bcd: cd 00 mov x,#$00 ; vcmd 84 - set tempo +0bcf: e7 44 mov a,($44+x) +0bd1: 3a 44 incw $44 +0bd3: c4 34 mov $34,a +0bd5: 8d 06 mov y,#$06 +0bd7: f7 40 mov a,($40)+y +0bd9: c4 36 mov $36,a +0bdb: 3f c7 0e call $0ec7 +0bde: 6f ret + +0bdf: cd 00 mov x,#$00 ; vcmd 85 - set instrument +0be1: e7 44 mov a,($44+x) +0be3: 3a 44 incw $44 +0be5: 3f cf 14 call $14cf +0be8: 6f ret + +0be9: cd 00 mov x,#$00 ; vcmd 86 - (3 bytes) +0beb: e7 44 mov a,($44+x) +0bed: 3a 44 incw $44 +0bef: c4 34 mov $34,a +0bf1: e7 44 mov a,($44+x) +0bf3: 3a 44 incw $44 +0bf5: c4 36 mov $36,a +0bf7: e7 44 mov a,($44+x) +0bf9: 3a 44 incw $44 +0bfb: c4 38 mov $38,a +0bfd: e4 34 mov a,$34 +0bff: c4 54 mov $54,a +0c01: e4 36 mov a,$36 +0c03: c4 52 mov $52,a +0c05: e4 36 mov a,$36 +0c07: c4 53 mov $53,a +0c09: 6f ret + +0c0a: cd 00 mov x,#$00 ; vcmd 87 - (1 byte) +0c0c: e7 44 mov a,($44+x) +0c0e: 3a 44 incw $44 +0c10: c4 51 mov $51,a +0c12: 6f ret + +0c13: 8d 24 mov y,#$24 ; vcmd 88 - set ASDR bit 7 +0c15: f7 40 mov a,($40)+y +0c17: 08 01 or a,#$01 +0c19: d7 40 mov ($40)+y,a +0c1b: 6f ret + +0c1c: 8d 24 mov y,#$24 ; vcmd 89 - clear ASDR bits +0c1e: f7 40 mov a,($40)+y +0c20: 28 fe and a,#$fe +0c22: d7 40 mov ($40)+y,a +0c24: 6f ret + +0c25: cd 00 mov x,#$00 ; vcmd 8a - set up vibrato parameters +0c27: e7 44 mov a,($44+x) +0c29: 3a 44 incw $44 +0c2b: 8d 19 mov y,#$19 +0c2d: d7 40 mov ($40)+y,a +0c2f: 8d 1a mov y,#$1a +0c31: d7 40 mov ($40)+y,a +0c33: e7 44 mov a,($44+x) +0c35: 3a 44 incw $44 +0c37: 2d push a +0c38: e7 44 mov a,($44+x) ; vibrato +0c3a: 3a 44 incw $44 +0c3c: 8d 1d mov y,#$1d +0c3e: d7 40 mov ($40)+y,a +0c40: ce pop x +0c41: 8d 00 mov y,#$00 +0c43: 9e div ya,x +0c44: 8d 1b mov y,#$1b +0c46: d7 40 mov ($40)+y,a +0c48: e8 00 mov a,#$00 +0c4a: 8d 17 mov y,#$17 +0c4c: d7 40 mov ($40)+y,a +0c4e: 8d 1f mov y,#$1f +0c50: d7 40 mov ($40)+y,a +0c52: 6f ret + +0c53: 8d 24 mov y,#$24 +0c55: f7 40 mov a,($40)+y +0c57: 28 02 and a,#$02 +0c59: d0 01 bne $0c5c +0c5b: 6f ret + +0c5c: 8d 1a mov y,#$1a +0c5e: f7 40 mov a,($40)+y +0c60: 8d 19 mov y,#$19 +0c62: d7 40 mov ($40)+y,a +0c64: e8 00 mov a,#$00 +0c66: 8d 17 mov y,#$17 +0c68: d7 40 mov ($40)+y,a +0c6a: 8d 1f mov y,#$1f +0c6c: d7 40 mov ($40)+y,a +0c6e: 6f ret + +0c6f: 8d 24 mov y,#$24 ; vcmd 8b - set ASDR bit 6 +0c71: f7 40 mov a,($40)+y +0c73: 08 02 or a,#$02 +0c75: d7 40 mov ($40)+y,a +0c77: 6f ret + +0c78: 8d 24 mov y,#$24 ; vcmd 8c - set ASDR bits on +0c7a: f7 40 mov a,($40)+y +0c7c: 28 fb and a,#$fb +0c7e: d7 40 mov ($40)+y,a +0c80: 6f ret + +0c81: cd 00 mov x,#$00 ; vcmd 8d - (2 bytes) +0c83: e7 44 mov a,($44+x) +0c85: 3a 44 incw $44 +0c87: 8d 12 mov y,#$12 +0c89: d7 40 mov ($40)+y,a +0c8b: 8d 13 mov y,#$13 +0c8d: d7 40 mov ($40)+y,a +0c8f: e7 44 mov a,($44+x) +0c91: 3a 44 incw $44 +0c93: 8d 16 mov y,#$16 +0c95: d7 40 mov ($40)+y,a +0c97: 6f ret + +0c98: 2d push a +0c99: 8d 24 mov y,#$24 +0c9b: f7 40 mov a,($40)+y +0c9d: 28 04 and a,#$04 +0c9f: ae pop a +0ca0: d0 01 bne $0ca3 +0ca2: 6f ret + +0ca3: c4 36 mov $36,a +0ca5: 8d 16 mov y,#$16 +0ca7: f7 40 mov a,($40)+y +0ca9: 60 clrc +0caa: 84 36 adc a,$36 +0cac: 10 02 bpl $0cb0 +0cae: e8 01 mov a,#$01 +0cb0: 68 55 cmp a,#$55 +0cb2: 90 02 bcc $0cb6 +0cb4: e8 55 mov a,#$55 +0cb6: 9c dec a +0cb7: c4 37 mov $37,a +0cb9: e8 00 mov a,#$00 +0cbb: c4 36 mov $36,a +0cbd: 8d 28 mov y,#$28 +0cbf: f7 40 mov a,($40)+y +0cc1: c4 38 mov $38,a +0cc3: 8d 29 mov y,#$29 +0cc5: f7 40 mov a,($40)+y +0cc7: c4 39 mov $39,a +0cc9: 3f 3d 0e call $0e3d +0ccc: e4 3a mov a,$3a +0cce: 8d 10 mov y,#$10 +0cd0: d7 40 mov ($40)+y,a +0cd2: e4 3b mov a,$3b +0cd4: 8d 11 mov y,#$11 +0cd6: d7 40 mov ($40)+y,a +0cd8: 8d 0e mov y,#$0e +0cda: f7 40 mov a,($40)+y +0cdc: c4 38 mov $38,a +0cde: 8d 0f mov y,#$0f +0ce0: f7 40 mov a,($40)+y +0ce2: c4 39 mov $39,a +0ce4: e4 3b mov a,$3b +0ce6: 64 39 cmp a,$39 +0ce8: b0 13 bcs $0cfd +0cea: 80 setc +0ceb: e4 38 mov a,$38 +0ced: a4 3a sbc a,$3a +0cef: c4 38 mov $38,a +0cf1: e4 39 mov a,$39 +0cf3: a4 3b sbc a,$3b +0cf5: c4 39 mov $39,a +0cf7: e8 ff mov a,#$ff +0cf9: c4 3b mov $3b,a +0cfb: 2f 11 bra $0d0e +0cfd: 80 setc +0cfe: e4 3a mov a,$3a +0d00: a4 38 sbc a,$38 +0d02: c4 38 mov $38,a +0d04: e4 3b mov a,$3b +0d06: a4 39 sbc a,$39 +0d08: c4 39 mov $39,a +0d0a: e8 00 mov a,#$00 +0d0c: c4 3b mov $3b,a +0d0e: 8d 13 mov y,#$13 +0d10: f7 40 mov a,($40)+y +0d12: 8d 12 mov y,#$12 +0d14: d7 40 mov ($40)+y,a +0d16: 5d mov x,a +0d17: e4 38 mov a,$38 +0d19: eb 39 mov y,$39 +0d1b: 9e div ya,x +0d1c: f8 3b mov x,$3b +0d1e: 10 03 bpl $0d23 +0d20: 48 ff eor a,#$ff +0d22: bc inc a +0d23: 8d 14 mov y,#$14 +0d25: d7 40 mov ($40)+y,a +0d27: e4 3b mov a,$3b +0d29: 8d 15 mov y,#$15 +0d2b: d7 40 mov ($40)+y,a +0d2d: 6f ret + +0d2e: 6f ret ; vcmd 8e - nop + +0d2f: 8d 24 mov y,#$24 ; vcmd 8f - set ASDR bit 5 +0d31: f7 40 mov a,($40)+y +0d33: 08 04 or a,#$04 +0d35: d7 40 mov ($40)+y,a +0d37: 6f ret + +0d38: 8d 24 mov y,#$24 ; vcmd 90 - clear ASDR bits +0d3a: f7 40 mov a,($40)+y +0d3c: 28 fb and a,#$fb +0d3e: d7 40 mov ($40)+y,a +0d40: 6f ret + +0d41: 8d 02 mov y,#$02 ; vcmd 91 - restart channel +0d43: f7 40 mov a,($40)+y +0d45: c4 44 mov $44,a +0d47: fc inc y +0d48: f7 40 mov a,($40)+y +0d4a: c4 45 mov $45,a +0d4c: 6f ret + +0d4d: cd 00 mov x,#$00 ; vcmd 92 - repeat section +0d4f: e7 44 mov a,($44+x) +0d51: 3a 44 incw $44 +0d53: fd mov y,a +0d54: 68 ff cmp a,#$ff +0d56: f0 1a beq $0d72 +0d58: e7 44 mov a,($44+x) +0d5a: 68 ff cmp a,#$ff +0d5c: f0 06 beq $0d64 +0d5e: 68 00 cmp a,#$00 +0d60: f0 05 beq $0d67 +0d62: 2f 12 bra $0d76 +0d64: dd mov a,y +0d65: 2f 0f bra $0d76 +0d67: e8 ff mov a,#$ff +0d69: c7 44 mov ($44+x),a +0d6b: 3a 44 incw $44 +0d6d: 3a 44 incw $44 +0d6f: 3a 44 incw $44 +0d71: 6f ret + +0d72: 3a 44 incw $44 +0d74: 2f 05 bra $0d7b +0d76: 9c dec a +0d77: c7 44 mov ($44+x),a +0d79: 3a 44 incw $44 +0d7b: e7 44 mov a,($44+x) +0d7d: 3a 44 incw $44 +0d7f: c4 34 mov $34,a +0d81: e7 44 mov a,($44+x) +0d83: 3a 44 incw $44 +0d85: c4 35 mov $35,a +0d87: ba 44 movw ya,$44 +0d89: 9a 34 subw ya,$34 +0d8b: e0 clrv +0d8c: da 44 movw $44,ya +0d8e: 6f ret + +0d8f: 8d 24 mov y,#$24 ; vcmd 93 - set ASDR bit 4 +0d91: f7 40 mov a,($40)+y +0d93: 08 08 or a,#$08 +0d95: d7 40 mov ($40)+y,a +0d97: 6f ret + +0d98: cd 00 mov x,#$00 ; vcmd 94 - set panning +0d9a: e7 44 mov a,($44+x) +0d9c: 3a 44 incw $44 +0d9e: 8d 27 mov y,#$27 +0da0: d7 40 mov ($40)+y,a +0da2: 6f ret + +0da3: 8d 24 mov y,#$24 +0da5: f7 40 mov a,($40)+y +0da7: 28 f7 and a,#$f7 +0da9: d7 40 mov ($40)+y,a +0dab: 6f ret + +0dac: cd 00 mov x,#$00 +0dae: 2d push a +0daf: 8d 25 mov y,#$25 +0db1: f7 40 mov a,($40)+y +0db3: 8d 26 mov y,#$26 +0db5: d7 40 mov ($40)+y,a +0db7: e7 44 mov a,($44+x) +0db9: 3a 44 incw $44 +0dbb: 8d 00 mov y,#$00 +0dbd: d7 40 mov ($40)+y,a +0dbf: ae pop a +0dc0: 8d 25 mov y,#$25 +0dc2: d7 40 mov ($40)+y,a +0dc4: 9c dec a +0dc5: 30 36 bmi $0dfd +0dc7: c4 37 mov $37,a +0dc9: e8 00 mov a,#$00 +0dcb: c4 36 mov $36,a +0dcd: 8d 28 mov y,#$28 +0dcf: f7 40 mov a,($40)+y +0dd1: c4 38 mov $38,a +0dd3: 8d 29 mov y,#$29 +0dd5: f7 40 mov a,($40)+y +0dd7: c4 39 mov $39,a +0dd9: 3f 3d 0e call $0e3d +0ddc: e4 3a mov a,$3a +0dde: 8d 0e mov y,#$0e +0de0: d7 40 mov ($40)+y,a +0de2: e4 3b mov a,$3b +0de4: 8d 0f mov y,#$0f +0de6: d7 40 mov ($40)+y,a +0de8: 8d 24 mov y,#$24 +0dea: f7 40 mov a,($40)+y +0dec: 28 0f and a,#$0f +0dee: 08 20 or a,#$20 +0df0: d7 40 mov ($40)+y,a +0df2: 8d 25 mov y,#$25 +0df4: f7 40 mov a,($40)+y +0df6: 3f 98 0c call $0c98 +0df9: 3f 53 0c call $0c53 +0dfc: 6f ret + +0dfd: e8 00 mov a,#$00 +0dff: 8d 0e mov y,#$0e +0e01: d7 40 mov ($40)+y,a +0e03: 8d 0f mov y,#$0f +0e05: d7 40 mov ($40)+y,a +0e07: 8d 24 mov y,#$24 +0e09: f7 40 mov a,($40)+y +0e0b: 28 0f and a,#$0f +0e0d: 08 10 or a,#$10 +0e0f: d7 40 mov ($40)+y,a +0e11: 5f f2 0d jmp $0df2 + +0e14: 8d 24 mov y,#$24 +0e16: f7 40 mov a,($40)+y +0e18: 28 c7 and a,#$c7 +0e1a: d7 40 mov ($40)+y,a +0e1c: 6f ret + +0e1d: f8 34 mov x,$34 +0e1f: f5 35 0e mov a,$0e35+x +0e22: fd mov y,a +0e23: e8 4c mov a,#$4c +0e25: 3f 37 07 call $0737 +0e28: 6f ret + +0e29: f8 34 mov x,$34 +0e2b: f5 35 0e mov a,$0e35+x +0e2e: fd mov y,a +0e2f: e8 5c mov a,#$5c +0e31: 3f 37 07 call $0737 +0e34: 6f ret + +0e35: db $01,$02,$04,$08,$10,$20,$40,$80 + +0e3d: 8d 00 mov y,#$00 +0e3f: e4 37 mov a,$37 +0e41: 80 setc +0e42: a8 34 sbc a,#$34 +0e44: b0 09 bcs $0e4f +0e46: e4 37 mov a,$37 +0e48: 80 setc +0e49: a8 13 sbc a,#$13 +0e4b: b0 06 bcs $0e53 +0e4d: dc dec y +0e4e: 1c asl a +0e4f: 7a 36 addw ya,$36 +0e51: da 36 movw $36,ya +0e53: e4 37 mov a,$37 +0e55: 1c asl a +0e56: 8d 00 mov y,#$00 +0e58: cd 18 mov x,#$18 +0e5a: 9e div ya,x +0e5b: 5d mov x,a +0e5c: f6 ae 0e mov a,$0eae+y +0e5f: c4 3b mov $3b,a +0e61: f6 ad 0e mov a,$0ead+y +0e64: c4 3a mov $3a,a +0e66: f6 b0 0e mov a,$0eb0+y +0e69: 2d push a +0e6a: f6 af 0e mov a,$0eaf+y +0e6d: ee pop y +0e6e: 9a 3a subw ya,$3a +0e70: eb 36 mov y,$36 +0e72: cf mul ya +0e73: dd mov a,y +0e74: 8d 00 mov y,#$00 +0e76: 7a 3a addw ya,$3a +0e78: cb 3b mov $3b,y +0e7a: 1c asl a +0e7b: 2b 3b rol $3b +0e7d: c4 3a mov $3a,a +0e7f: 2f 04 bra $0e85 +0e81: 4b 3b lsr $3b +0e83: 7c ror a +0e84: 3d inc x +0e85: c8 06 cmp x,#$06 +0e87: d0 f8 bne $0e81 +0e89: c4 3a mov $3a,a +0e8b: e4 38 mov a,$38 +0e8d: eb 3b mov y,$3b +0e8f: cf mul ya +0e90: da 3c movw $3c,ya +0e92: e4 38 mov a,$38 +0e94: eb 3a mov y,$3a +0e96: cf mul ya +0e97: 6d push y +0e98: e4 39 mov a,$39 +0e9a: eb 3a mov y,$3a +0e9c: cf mul ya +0e9d: 7a 3c addw ya,$3c +0e9f: da 3c movw $3c,ya +0ea1: e4 39 mov a,$39 +0ea3: eb 3b mov y,$3b +0ea5: cf mul ya +0ea6: fd mov y,a +0ea7: ae pop a +0ea8: 7a 3c addw ya,$3c +0eaa: da 3a movw $3a,ya +0eac: 6f ret + +0ead: dw $085f +0eaf: dw $08de +0eb1: dw $0965 +0eb3: dw $09f4 +0eb5: dw $0a8c +0eb7: dw $0b2c +0eb9: dw $0bd6 +0ebb: dw $0c8b +0ebd: dw $0d4a +0ebf: dw $0e14 +0ec1: dw $0eea + +0ec3: cd 0f mov x,#$0f +0ec5: be das a +0ec6: 10 e4 bpl $0eac +0ec8: 34 f8 and a,$f8+x +0eca: 36 d4 30 and a,$30d4+y +0ecd: 6f ret + +0ece: eb 33 mov y,$33 ; vcmd 95 - stop channel +0ed0: cd 00 mov x,#$00 +0ed2: d9 00 mov $00+y,x +0ed4: 6f ret + + +0ed5: db $06,$14,$1d,$10,$07,$14,$1d,$10,$06,$14,$2a,$10,$07,$14,$2a,$10,$06,$14,$37,$10,$07,$14,$37,$10,$06,$14,$44,$10,$07,$14,$44,$10,$06,$14,$51,$10,$07,$14,$51,$10,$06,$14,$5e,$10,$07,$14,$5e,$10,$06,$1e,$6b,$10,$07,$1e,$6b,$10,$06,$16,$78,$10,$07,$16,$78,$10,$06,$16,$85,$10,$07,$16,$85,$10,$06,$16,$92,$10,$07,$16,$92,$10,$06,$15,$9f,$10,$07,$15,$9f,$10,$06,$15,$ac,$10,$07,$15,$ac,$10,$06,$15,$b9,$10,$07,$15,$b9,$10,$06,$1e,$c6,$10,$07,$1e,$c6,$10,$06,$1e,$d7,$10,$07,$1e,$d7,$10,$06,$19,$fe,$10,$07,$19,$fe,$10,$06,$19,$0b,$11,$07,$19,$0b,$11,$06,$14,$18,$11,$07,$14,$18,$11,$06,$14,$25,$11,$07,$14,$25,$11,$06,$14,$32,$11,$07,$14,$32,$11,$06,$19,$3f,$11,$07,$19,$3f,$11,$06,$19,$4c,$11,$07,$19,$4c,$11,$06,$19,$59,$11,$07,$19,$59,$11,$06,$19,$66,$11,$07,$19,$66,$11,$06,$19,$73,$11,$07,$19,$73,$11,$06,$19,$80,$11,$07,$19,$80,$11,$06,$19,$8d,$11,$07,$19,$8d,$11,$06,$19,$9a,$11,$07,$19,$9a,$11,$06,$19,$a7,$11,$07,$19,$a7,$11,$06,$19,$b4,$11,$07,$19,$b4,$11,$06,$23,$c1,$11,$07,$23,$c1,$11,$06,$23,$ce,$11,$07,$1e,$ce,$11,$06,$1e,$db,$11,$07,$1e,$db,$11,$06,$14,$e8,$11,$07,$14,$e8,$11,$06,$14,$f5,$11,$07,$14,$f5,$11,$06,$14,$02,$12,$07,$14,$02,$12,$06,$23,$0f,$12,$07,$23,$0f,$12,$06,$23,$1c,$12,$07,$23,$1c,$12,$06,$23,$29,$12,$07,$23,$29,$12,$06,$23,$36,$12,$07,$23,$36,$12,$06,$14,$43,$12,$07,$14,$43,$12,$84,$4c,$85,$0d,$94,$08,$82,$7f,$20,$30,$00,$02,$95,$84,$4c,$85,$0d,$94,$08,$82,$7f,$24,$30,$00,$02,$95,$84,$4c,$85,$0d,$94,$08,$82,$7f,$2c,$30,$00,$02,$95,$84,$4c,$85,$0e,$94,$08,$82,$7f,$25,$30,$00,$02,$95,$84,$4c,$85,$0e,$94,$08,$82,$7f,$2a,$30,$00,$02,$95,$84,$4c,$85,$0e,$94,$08,$82,$7f,$30,$30,$00,$02,$95,$84,$4c,$85,$0f,$94,$08,$82,$f0,$22,$60,$00,$02,$95,$84,$4c,$85,$0f,$94,$08,$82,$f0,$25,$60,$00,$02,$95,$84,$4c,$85,$10,$94,$08,$82,$f0,$1e,$48,$00,$02,$95,$84,$4c,$85,$10,$94,$08,$82,$f0,$22,$48,$00,$02,$95,$84,$4c,$85,$10,$94,$08,$82,$f0,$27,$48,$00,$02,$95,$84,$4c,$85,$11,$94,$08,$82,$f0,$24,$48,$00,$02,$95,$84,$4c,$85,$11,$94,$08,$82,$f0,$27,$48,$00,$02,$95,$84,$4c,$85,$09,$94,$08,$82,$28,$29,$0c,$82,$0a,$29,$18,$00,$02,$95,$84,$64,$85,$05,$94,$08,$82,$3c,$27,$06,$29,$06,$2a,$06,$2c,$06,$82,$14,$27,$06,$29,$06,$2a,$06,$2c,$06,$82,$0a,$27,$06,$29,$06,$2a,$06,$2c,$06,$00,$02,$95,$84,$4c,$85,$13,$94,$08,$82,$f0,$25,$48,$00,$02,$95,$84,$4c,$85,$13,$94,$08,$82,$f0,$29,$48,$00,$02,$95,$84,$4c,$85,$12,$94,$08,$82,$f0,$22,$48,$00,$02,$95,$84,$4c,$85,$12,$94,$08,$82,$f0,$25,$48,$00,$02,$95,$84,$4c,$85,$12,$94,$08,$82,$f0,$25,$48,$00,$02,$95,$84,$4c,$85,$14,$94,$08,$82,$f0,$1d,$48,$00,$02,$95,$84,$4c,$85,$14,$94,$08,$82,$f0,$22,$48,$00,$02,$95,$84,$4c,$85,$15,$94,$08,$82,$f0,$22,$48,$00,$02,$95,$84,$4c,$85,$15,$94,$08,$82,$f0,$25,$48,$00,$02,$95,$84,$4c,$85,$15,$94,$08,$82,$f0,$29,$48,$00,$02,$95,$84,$4c,$85,$16,$94,$08,$82,$f0,$29,$78,$00,$02,$95,$84,$4c,$85,$17,$94,$08,$82,$f0,$24,$78,$00,$02,$95,$84,$4c,$85,$18,$94,$08,$82,$f0,$22,$48,$00,$02,$95,$84,$4c,$85,$18,$94,$08,$82,$f0,$25,$48,$00,$02,$95,$84,$4c,$85,$18,$94,$08,$82,$f0,$29,$48,$00,$02,$95,$84,$4c,$85,$19,$94,$08,$82,$f0,$22,$48,$00,$02,$95,$84,$4c,$85,$19,$94,$08,$82,$f0,$25,$48,$00,$02,$95,$84,$4c,$85,$19,$94,$08,$82,$f0,$29,$48,$00,$02,$95,$84,$4c,$85,$1a,$94,$08,$82,$f0,$25,$48,$00,$02,$95,$84,$4c,$85,$1b,$94,$08,$82,$f0,$25,$48,$00,$02,$95,$84,$4c,$85,$1c,$94,$08,$82,$f0,$25,$c0,$00,$02,$95,$84,$4c,$85,$1d,$94,$08,$82,$f0,$1e,$48,$00,$02,$95,$84,$4c,$85,$1d,$94,$08,$82,$f0,$22,$48,$00,$02,$95,$84,$4c,$85,$1d,$94,$08,$82,$f0,$25,$48,$00,$02,$95,$84,$4c,$85,$1d,$94,$08,$82,$f0,$2d,$48,$00,$02,$95,$84,$4c,$85,$00,$94,$08,$82,$7f,$3a,$30,$00,$02,$95,$6f + +1251: e8 15 mov a,#$15 ; load song +1253: fd mov y,a +1254: e8 80 mov a,#$80 +1256: da 3e movw $3e,ya +1258: da 40 movw $40,ya +125a: cd 00 mov x,#$00 +125c: e7 3e mov a,($3e+x) +125e: 3a 3e incw $3e +1260: c4 36 mov $36,a +1262: d0 01 bne $1265 +1264: 6f ret + +1265: 1c asl a +1266: 60 clrc +1267: 88 01 adc a,#$01 +1269: 8d 00 mov y,#$00 +126b: 7a 40 addw ya,$40 +126d: da 40 movw $40,ya +126f: e8 00 mov a,#$00 +1271: c4 34 mov $34,a +1273: e4 34 mov a,$34 +1275: 1c asl a +1276: 5d mov x,a +1277: f4 59 mov a,$59+x +1279: c4 42 mov $42,a +127b: 3d inc x +127c: f4 59 mov a,$59+x +127e: c4 43 mov $43,a +1280: eb 34 mov y,$34 +1282: cd 10 mov x,#$10 +1284: d9 00 mov $00+y,x +1286: cd 0a mov x,#$0a +1288: d9 20 mov $20+y,x +128a: f8 34 mov x,$34 +128c: d9 10 mov $10+y,x +128e: cd 00 mov x,#$00 +1290: e7 3e mov a,($3e+x) +1292: 2d push a +1293: 3a 3e incw $3e +1295: e7 3e mov a,($3e+x) +1297: fd mov y,a +1298: 3a 3e incw $3e +129a: ae pop a +129b: 7a 40 addw ya,$40 +129d: da 44 movw $44,ya +129f: e8 00 mov a,#$00 +12a1: 8d 00 mov y,#$00 +12a3: d7 42 mov ($42)+y,a +12a5: fc inc y +12a6: d7 42 mov ($42)+y,a +12a8: fc inc y +12a9: e4 44 mov a,$44 +12ab: d7 42 mov ($42)+y,a +12ad: fc inc y +12ae: e4 45 mov a,$45 +12b0: d7 42 mov ($42)+y,a +12b2: fc inc y +12b3: e4 44 mov a,$44 +12b5: d7 42 mov ($42)+y,a +12b7: fc inc y +12b8: e4 45 mov a,$45 +12ba: d7 42 mov ($42)+y,a +12bc: fc inc y +12bd: e8 00 mov a,#$00 +12bf: d7 42 mov ($42)+y,a +12c1: fc inc y +12c2: e8 00 mov a,#$00 +12c4: d7 42 mov ($42)+y,a +12c6: fc inc y +12c7: ad 28 cmp y,#$28 +12c9: d0 f9 bne $12c4 +12cb: ab 34 inc $34 +12cd: e4 36 mov a,$36 +12cf: 64 34 cmp a,$34 +12d1: d0 a0 bne $1273 +12d3: e8 10 mov a,#$10 +12d5: 64 34 cmp a,$34 +12d7: f0 1b beq $12f4 +12d9: f8 34 mov x,$34 +12db: e5 59 13 mov a,$1359 +12de: 74 00 cmp a,$00+x +12e0: d0 0a bne $12ec +12e2: eb 34 mov y,$34 +12e4: cd 00 mov x,#$00 +12e6: d9 00 mov $00+y,x +12e8: d9 20 mov $20+y,x +12ea: d9 10 mov $10+y,x +12ec: ab 34 inc $34 +12ee: e8 10 mov a,#$10 +12f0: 64 34 cmp a,$34 +12f2: d0 e5 bne $12d9 +12f4: cd 00 mov x,#$00 +12f6: f5 59 13 mov a,$1359+x +12f9: cd 00 mov x,#$00 +12fb: 8d 10 mov y,#$10 +12fd: 74 00 cmp a,$00+x +12ff: d0 08 bne $1309 +1301: 2d push a +1302: f4 00 mov a,$00+x +1304: 08 01 or a,#$01 +1306: d4 00 mov $00+x,a +1308: ae pop a +1309: 3d inc x +130a: fe f1 dbnz y,$12fd +130c: e8 50 mov a,#$50 +130e: c4 30 mov $30,a +1310: e8 00 mov a,#$00 +1312: c5 20 04 mov $0420,a +1315: 6f ret + +1316: 5d mov x,a +1317: f5 59 13 mov a,$1359+x +131a: 08 01 or a,#$01 +131c: cd 00 mov x,#$00 +131e: 8d 10 mov y,#$10 +1320: 74 00 cmp a,$00+x +1322: d0 31 bne $1355 +1324: 2d push a +1325: 4d push x +1326: 6d push y +1327: d8 33 mov $33,x +1329: 7d mov a,x +132a: 1c asl a +132b: 5d mov x,a +132c: f5 59 00 mov a,$0059+x +132f: c4 40 mov $40,a +1331: 3d inc x +1332: f5 59 00 mov a,$0059+x +1335: c4 41 mov $41,a +1337: 3f 3c 07 call $073c +133a: 90 11 bcc $134d +133c: 3f 2b 07 call $072b +133f: e8 00 mov a,#$00 +1341: 8d 00 mov y,#$00 +1343: 3f 34 07 call $0734 +1346: e8 01 mov a,#$01 +1348: 8d 00 mov y,#$00 +134a: 3f 34 07 call $0734 +134d: ee pop y +134e: ce pop x +134f: e8 00 mov a,#$00 +1351: d5 00 00 mov $0000+x,a +1354: ae pop a +1355: 3d inc x +1356: fe c8 dbnz y,$1320 +1358: 6f ret + +1359: 10 20 bpl $137b +135b: 6f ret + +135c: 6f ret + +135d: cd 00 mov x,#$00 +135f: 1e 20 04 cmp x,$0420 +1362: f0 01 beq $1365 +1364: 6f ret + +1365: c5 20 04 mov $0420,a +1368: cc 21 04 mov $0421,y +136b: dd mov a,y +136c: 5d mov x,a +136d: e8 7f mov a,#$7f +136f: 8d 00 mov y,#$00 +1371: 9e div ya,x +1372: c5 23 04 mov $0423,a +1375: cb 34 mov $34,y +1377: dd mov a,y +1378: 60 clrc +1379: 84 34 adc a,$34 +137b: 60 clrc +137c: 84 34 adc a,$34 +137e: c5 22 04 mov $0422,a +1381: e8 00 mov a,#$00 +1383: c5 24 04 mov $0424,a +1386: c5 25 04 mov $0425,a +1389: 6f ret + +138a: e8 00 mov a,#$00 +138c: 3f 16 13 call $1316 +138f: 8f aa f4 mov $f4,#$aa +1392: 8f bb f5 mov $f5,#$bb +1395: 78 cc f4 cmp $f4,#$cc +1398: d0 fb bne $1395 +139a: 2f 19 bra $13b5 +139c: eb f4 mov y,$f4 +139e: d0 fc bne $139c +13a0: 7e f4 cmp y,$f4 +13a2: d0 0b bne $13af +13a4: e4 f5 mov a,$f5 +13a6: cb f4 mov $f4,y +13a8: d7 3e mov ($3e)+y,a +13aa: fc inc y +13ab: d0 f3 bne $13a0 +13ad: ab 3f inc $3f +13af: 10 ef bpl $13a0 +13b1: 7e f4 cmp y,$f4 +13b3: 10 eb bpl $13a0 +13b5: ba f6 movw ya,$f6 +13b7: da 3e movw $3e,ya +13b9: ba f4 movw ya,$f4 +13bb: c4 f4 mov $f4,a +13bd: dd mov a,y +13be: 5d mov x,a +13bf: d0 db bne $139c +13c1: 6f ret + +13c2: 6f ret + +13c3: c4 3e mov $3e,a +13c5: e8 00 mov a,#$00 +13c7: c4 3f mov $3f,a +13c9: 8d 00 mov y,#$00 +13cb: 7a 3e addw ya,$3e +13cd: 7a 3e addw ya,$3e +13cf: 7a 3e addw ya,$3e +13d1: 7a 3e addw ya,$3e +13d3: da 3e movw $3e,ya +13d5: e8 0e mov a,#$0e +13d7: fd mov y,a +13d8: e8 d5 mov a,#$d5 +13da: 7a 3e addw ya,$3e +13dc: cd 00 mov x,#$00 +13de: da 3e movw $3e,ya +13e0: e7 3e mov a,($3e+x) +13e2: c4 36 mov $36,a +13e4: 60 clrc +13e5: 88 08 adc a,#$08 +13e7: c4 34 mov $34,a +13e9: 3a 3e incw $3e +13eb: e7 3e mov a,($3e+x) +13ed: c4 37 mov $37,a +13ef: 3a 3e incw $3e +13f1: ba 3e movw ya,$3e +13f3: da 40 movw $40,ya +13f5: f8 34 mov x,$34 +13f7: e8 00 mov a,#$00 +13f9: 74 00 cmp a,$00+x +13fb: f0 07 beq $1404 +13fd: e4 37 mov a,$37 +13ff: 74 20 cmp a,$20+x +1401: 10 01 bpl $1404 +1403: 6f ret + +1404: e4 37 mov a,$37 +1406: d4 20 mov $20+x,a +1408: e4 36 mov a,$36 +140a: d4 10 mov $10+x,a +140c: e8 21 mov a,#$21 +140e: d4 00 mov $00+x,a +1410: e4 34 mov a,$34 +1412: 1c asl a +1413: 5d mov x,a +1414: f4 59 mov a,$59+x +1416: c4 42 mov $42,a +1418: 3d inc x +1419: f4 59 mov a,$59+x +141b: c4 43 mov $43,a +141d: cd 00 mov x,#$00 +141f: e7 3e mov a,($3e+x) +1421: 2d push a +1422: 3a 3e incw $3e +1424: e7 3e mov a,($3e+x) +1426: fd mov y,a +1427: 3a 3e incw $3e +1429: ae pop a +142a: da 44 movw $44,ya +142c: e8 00 mov a,#$00 +142e: 8d 00 mov y,#$00 +1430: d7 42 mov ($42)+y,a +1432: fc inc y +1433: d7 42 mov ($42)+y,a +1435: fc inc y +1436: e4 44 mov a,$44 +1438: d7 42 mov ($42)+y,a +143a: fc inc y +143b: e4 45 mov a,$45 +143d: d7 42 mov ($42)+y,a +143f: fc inc y +1440: e4 44 mov a,$44 +1442: d7 42 mov ($42)+y,a +1444: fc inc y +1445: e4 45 mov a,$45 +1447: d7 42 mov ($42)+y,a +1449: fc inc y +144a: e8 01 mov a,#$01 +144c: d7 42 mov ($42)+y,a +144e: fc inc y +144f: e8 00 mov a,#$00 +1451: d7 42 mov ($42)+y,a +1453: fc inc y +1454: ad 28 cmp y,#$28 +1456: d0 f9 bne $1451 +1458: 8d 06 mov y,#$06 +145a: e8 01 mov a,#$01 +145c: d7 42 mov ($42)+y,a +145e: e8 32 mov a,#$32 +1460: c4 31 mov $31,a +1462: 6f ret + +1463: 6f ret + +1464: e4 34 mov a,$34 +1466: eb 35 mov y,$35 +1468: 7a 36 addw ya,$36 +146a: 6f ret + +146b: e4 34 mov a,$34 +146d: eb 35 mov y,$35 +146f: 9a 36 subw ya,$36 +1471: 6f ret + +1472: e4 35 mov a,$35 +1474: 0d push psw +1475: 10 0d bpl $1484 +1477: e8 00 mov a,#$00 +1479: 80 setc +147a: a4 34 sbc a,$34 +147c: c4 34 mov $34,a +147e: e8 00 mov a,#$00 +1480: a4 35 sbc a,$35 +1482: c4 35 mov $35,a +1484: 3f 98 14 call $1498 +1487: 8e pop psw +1488: 10 0d bpl $1497 +148a: e8 00 mov a,#$00 +148c: 80 setc +148d: a4 34 sbc a,$34 +148f: c4 34 mov $34,a +1491: e8 00 mov a,#$00 +1493: a4 35 sbc a,$35 +1495: c4 35 mov $35,a +1497: 6f ret + +1498: 4d push x +1499: 6d push y +149a: cd 10 mov x,#$10 +149c: e8 00 mov a,#$00 +149e: c4 38 mov $38,a +14a0: c4 39 mov $39,a +14a2: 2b 34 rol $34 +14a4: 2b 35 rol $35 +14a6: 2b 38 rol $38 +14a8: 2b 39 rol $39 +14aa: e4 38 mov a,$38 +14ac: 80 setc +14ad: a4 36 sbc a,$36 +14af: fd mov y,a +14b0: e4 39 mov a,$39 +14b2: a4 37 sbc a,$37 +14b4: 90 04 bcc $14ba +14b6: eb 38 mov y,$38 +14b8: e4 39 mov a,$39 +14ba: 2b 34 rol $34 +14bc: 2b 35 rol $35 +14be: 1d dec x +14bf: d0 e5 bne $14a6 +14c1: ee pop y +14c2: ce pop x +14c3: 6f ret + +14c4: e4 34 mov a,$34 +14c6: eb 35 mov y,$35 +14c8: a8 80 sbc a,#$80 +14ca: 90 01 bcc $14cd +14cc: fc inc y +14cd: dd mov a,y +14ce: 6f ret + +14cf: 1c asl a +14d0: c4 46 mov $46,a +14d2: 1c asl a +14d3: 60 clrc +14d4: 84 46 adc a,$46 +14d6: c4 46 mov $46,a +14d8: e8 00 mov a,#$00 +14da: c4 47 mov $47,a +14dc: e8 04 mov a,#$04 +14de: fd mov y,a +14df: e8 30 mov a,#$30 +14e1: 7a 46 addw ya,$46 +14e3: da 46 movw $46,ya +14e5: 8d 00 mov y,#$00 +14e7: cd 00 mov x,#$00 +14e9: e7 46 mov a,($46+x) +14eb: 3a 46 incw $46 +14ed: 8d 20 mov y,#$20 +14ef: d7 40 mov ($40)+y,a +14f1: e7 46 mov a,($46+x) +14f3: 3a 46 incw $46 +14f5: 8d 21 mov y,#$21 +14f7: d7 40 mov ($40)+y,a +14f9: e7 46 mov a,($46+x) +14fb: 3a 46 incw $46 +14fd: 8d 22 mov y,#$22 +14ff: d7 40 mov ($40)+y,a +1501: e7 46 mov a,($46+x) +1503: 3a 46 incw $46 +1505: 8d 23 mov y,#$23 +1507: d7 40 mov ($40)+y,a +1509: e7 46 mov a,($46+x) +150b: 3a 46 incw $46 +150d: 8d 29 mov y,#$29 +150f: d7 40 mov ($40)+y,a +1511: e7 46 mov a,($46+x) +1513: 3a 46 incw $46 +1515: 8d 28 mov y,#$28 +1517: d7 40 mov ($40)+y,a +1519: 6f ret + +151a: e8 5d mov a,#$5d +151c: 8d 20 mov y,#$20 +151e: 3f 37 07 call $0737 +1521: 6f ret + +1522: 60 clrc +1523: e4 f4 mov a,$f4 +1525: 64 f4 cmp a,$f4 +1527: d0 0a bne $1533 +1529: 80 setc +152a: 68 00 cmp a,#$00 +152c: f0 05 beq $1533 +152e: eb f5 mov y,$f5 +1530: 8f f3 f1 mov $f1,#$f3 +1533: 6f ret + +