music = $30000 ; load module here S: move.w #$4000,$dff09a lea music,a0 jSR init EVER: MOVE.L $DFF004,D0 AND.L #$1FF00,D0 CMP.L #$08000,D0 BNE.S EVER jsr play BTST #6,$BFE001 BNE.S EVER jSR stop MOVEQ #0,D0 RTS ** ** Crunched Replay - Coded by Heatseeker of Cryptoburners ** 01.02.1991 ** ** ripped and resourced by: The Vampire / PseudoDOS Group ** ** I think, this is the lamest Protracker-'Cruncher' ever ** made. The routine wasn't optimized very well, but I've ** done my very best to do it. signed: VP ** Init MOVEM.L D0-A6,-(A7) ; a0 must be mt_data MOVE.L A0,modptr LEA $FA(A0),A1 MOVEQ #$007F,D0 MOVEQ #0,D1 MOVEQ #0,D2 maxpt1 MOVE.B (A1)+,D1 CMP.B D2,D1 BLE.S maxpt2 MOVE.L D1,D2 maxpt2 DBRA D0,maxpt1 ADDQ.W #1,D2 LEA $17A(A0),A2 LEA Offsets(PC),A3 LEA (A3),A4 LSL.L #2,D2 SUBQ.L #1,D2 MOVEA.L A3,A4 MOVEQ #0,D4 offs_lp MOVE.L D4,(A3)+ MOVE.L (A2),D0 ANDI.L #$C0000000,D0 CMPI.L #$C0000000,D0 BEQ.S insold MOVEQ #$3F,D6 row_lp MOVE.L (A2)+,D0 ADDQ.L #4,D4 MOVE.L D0,D1 ANDI.L #$C0000000,D0 CMPI.L #$80000000,D0 BNE.S nextval ANDI.L #$3F,D1 SUB.L D1,D6 nextval DBRA D6,row_lp BRA.S next insold MOVE.L (A2)+,D0 ADDQ.L #4,D4 ANDI.L #$3FFFFFFC,D0 MOVE.L (A4,D0.L),D0 LEA -4(A3),A3 MOVE.L D0,(A3)+ next DBRA D2,offs_lp LEA SmpAdr(PC),A1 LEA 0(A0),A0 MOVEQ #$001E,D0 smp_lp MOVE.L A2,(A1)+ MOVEQ #0,D1 MOVE.B D1,2(A0) MOVE.W (A0),D1 ASL.L #1,D1 ADDA.L D1,A2 lea $8(a0),A0 DBRA D0,smp_lp LEA Speed(PC),A1 MOVE.B #6,(A1) ORI.B #2,$BFE001.L MOVEQ #0,D0 LEA $DFF000.L,A0 MOVE.W D0,$A8(A0) MOVE.W D0,$B8(A0) MOVE.W D0,$C8(A0) MOVE.W D0,$D8(A0) MOVE.B D0,2(A1) MOVE.B D0,1(A1) MOVE.W D0,$000E(A1) MOVE.W D0,voc1_1 MOVE.W D0,voc2_1 MOVE.W D0,voc3_1 MOVE.W D0,voc4_1 MOVE.L D0,voc1_2 MOVE.L D0,voc2_2 MOVE.L D0,voc3_2 MOVE.L D0,voc4_2 MOVEM.L (A7)+,D0-A6 RTS Stop MOVEQ #0,D0 LEA $DFF000.L,A0 MOVE.W D0,$A8(A0) MOVE.W D0,$B8(A0) MOVE.W D0,$C8(A0) MOVE.W D0,$D8(A0) MOVE.W #$F,$00DFF096.L RTS Play ADDQ.B #1,count MOVE.B Count(PC),D0 CMP.B Speed(PC),D0 BCS.S L_0000015A CLR.B count TST.B deltim2 BEQ.S L_00000198 BSR.S L_00000160 BRA L_0000042E L_0000015A BSR.S L_00000160 BRA L_000004C8 L_00000160 LEA $DFF0A0.L,A5 LEA Voc1(PC),A6 BSR Com1 LEA $DFF0B0.L,A5 LEA Voc2(PC),A6 BSR Com1 LEA $DFF0C0.L,A5 LEA Voc3(PC),A6 BSR Com1 LEA $DFF0D0.L,A5 LEA Voc4(PC),A6 BRA Com1 L_00000198 MOVEA.L modptr(PC),A0 LEA (A0),A3 LEA $00FA(A0),A2 LEA $017A(A0),A0 MOVEQ #0,D0 MOVEQ #0,D1 MOVE.B sngpos(PC),D0 MOVE.B (A2,D0.W),D1 LSL.L #4,D1 MOVE.L D1,pattpos CLR.W dmacon LEA $00DFF0A0.L,A5 LEA Voc1(PC),A6 BSR.S L_0000021E ADDI.L #$00000004,pattpos LEA $00DFF0B0.L,A5 LEA Voc2(PC),A6 BSR.S L_0000021E ADDI.L #$00000004,pattpos LEA $00DFF0C0.L,A5 LEA Voc3(PC),A6 BSR.S L_0000021E ADDI.L #$00000004,pattpos LEA $00DFF0D0.L,A5 LEA Voc4(PC),A6 BSR.S L_0000021E ADDI.L #$00000004,pattpos BRA L_000003CA L_0000021E TST.L 0(A6) BNE.S L_0000022A MOVE.W $0010(A6),6(A5) L_0000022A MOVE.L pattpos(PC),D1 LEA Offsets(PC),A1 MOVE.L (A1,D1.L),D1 MOVEQ #0,D2 MOVE.W $002A(A6),D2 ADD.L D2,D1 MOVE.L (A0,D1.L),$0030(A6) CLR.L 0(A6) MOVE.L (A0,D1.L),D2 ANDI.L #$80000000,D2 BNE.S L_00000262 BTST #7,(A0,D1.L) BNE.S L_00000262 MOVE.L (A0,D1.L),0(A6) L_00000262 ADDQ.L #4,D1 MOVEQ #0,D2 MOVE.B 2(A6),D2 LSR.B #4,D2 MOVE.B 0(A6),D0 ANDI.B #-$0010,D0 OR.B D0,D2 BEQ L_000002FC MOVEQ #0,D3 LEA SmpAdr(PC),A1 SUBQ.L #1,D2 MOVE.W D2,D4 ASL.L #2,D2 MULU #8,D4 MOVE.L (A1,D2.L),4(A6) MOVE.W (A3,D4.L),8(A6) MOVE.W (A3,D4.L),$0028(A6) MOVE.B 2(A3,D4.L),$0012(A6) MOVE.B 3(A3,D4.L),$0013(A6) MOVE.W 4(A3,D4.L),D3 TST.W D3 BEQ.S L_000002DE MOVE.L 4(A6),D2 ASL.W #1,D3 ADD.L D3,D2 MOVE.L D2,$000A(A6) MOVE.L D2,$0024(A6) MOVE.W 4(A3,D4.L),D0 ADD.W 6(A3,D4.L),D0 MOVE.W D0,8(A6) MOVE.W 6(A3,D4.L),$000E(A6) MOVEQ #0,D0 MOVE.B $0013(A6),D0 MOVE.W D0,8(A5) BRA.S L_000002FC L_000002DE MOVE.L 4(A6),D2 ADD.L D3,D2 MOVE.L D2,$000A(A6) MOVE.L D2,$0024(A6) MOVE.W 6(A3,D4.L),$000E(A6) MOVEQ #0,D0 MOVE.B $0013(A6),D0 MOVE.W D0,8(A5) L_000002FC MOVE.W 0(A6),D0 ANDI.W #$0FFF,D0 BEQ com2 MOVE.W 2(A6),D0 ANDI.W #$0FF0,D0 CMPI.W #$0E50,D0 BEQ.S L_00000336 MOVE.B 2(A6),D0 ANDI.B #$000F,D0 CMPI.B #3,D0 BEQ.S L_0000033C CMPI.B #5,D0 BEQ.S L_0000033C CMPI.B #9,D0 BNE.S L_00000344 BSR com2 BRA.S L_00000344 L_00000336 BSR L_00000BBA BRA.S L_00000344 L_0000033C BSR L_000007A0 BRA com2 L_00000344 MOVEM.L D0-D1/A0-A1,-(A7) MOVE.W 0(A6),D1 ANDI.W #$0FFF,D1 LEA Perio(PC),A1 MOVEQ #0,D0 MOVEQ #$0024,D7 L_00000358 CMP.W (A1,D0.W),D1 BCC.S L_00000364 ADDQ.L #2,D0 DBRA D7,L_00000358 L_00000364 MOVEQ #0,D1 MOVE.B $0012(A6),D1 MULU #$0048,D1 ADDA.L D1,A1 MOVE.W (A1,D0.W),$0010(A6) MOVEM.L (A7)+,D0-D1/A0-A1 MOVE.W 2(A6),D0 ANDI.W #$0FF0,D0 CMPI.W #$0ED0,D0 BEQ com2 MOVE.W $0014(A6),$00DFF096.L BTST #2,$001E(A6) BNE.S L_0000039E CLR.B $001B(A6) L_0000039E BTST #6,$001E(A6) BNE.S L_000003AA CLR.B $001D(A6) L_000003AA MOVE.L 4(A6),(A5) MOVE.W 8(A6),4(A5) MOVE.W $0010(A6),D0 MOVE.W D0,6(A5) MOVE.W $0014(A6),D0 OR.W D0,dmacon BRA com2 L_000003CA MOVE.W #$0118,D0 L_000003CE DBRA D0,L_000003CE MOVE.W dmacon(PC),D0 ORI.W #-$8000,D0 MOVE.W D0,$00DFF096.L MOVE.W #$0118,D0 L_000003E4 DBRA D0,L_000003E4 LEA $00DFF000.L,A5 LEA Voc4(PC),A6 MOVE.L $000A(A6),$00D0(A5) MOVE.W $000E(A6),$00D4(A5) LEA Voc3(PC),A6 MOVE.L $000A(A6),$00C0(A5) MOVE.W $000E(A6),$00C4(A5) LEA Voc2(PC),A6 MOVE.L $000A(A6),$00B0(A5) MOVE.W $000E(A6),$00B4(A5) LEA Voc1(PC),A6 MOVE.L $000A(A6),$00A0(A5) MOVE.W $000E(A6),$00A4(A5) L_0000042E BSR L_000004D2 MOVE.B deltim(PC),D0 BEQ.S L_00000444 MOVE.B D0,deltim2 CLR.B deltim L_00000444 TST.B deltim2 BEQ.S L_00000458 SUBQ.B #1,deltim2 BEQ.S L_00000458 BSR L_00000530 L_00000458 TST.B brkflg BEQ.S L_0000047E SF.b brkflg MOVEQ #0,D0 MOVE.B brkpos(PC),D0 CLR.B brkpos LSL.W #2,D0 MOVE.W D0,patternpos BSR L_000005B4 L_0000047E CMPI.W #$0100,patternpos BCS.S L_000004C8 L_00000488 MOVEQ #0,D0 MOVE.B brkpos(PC),D0 LSL.W #2,D0 MOVE.W D0,patternpos BSR L_000005EA CLR.B brkpos CLR.B jmpflg ADDQ.B #1,sngpos ANDI.B #$007F,sngpos MOVE.B sngpos(PC),D1 MOVEA.L modptr(PC),A0 CMP.B $00F8(A0),D1 BCS.S L_000004C8 CLR.B sngpos L_000004C8 TST.B jmpflg BNE.S L_00000488 RTS L_000004D2 LEA $00FA(A0),A2 LEA Offsets(PC),A5 ADDQ.W #4,patternpos LEA Voc1(PC),A6 BSR.S L_000004FA LEA Voc2(PC),A6 BSR.S L_000004FA LEA Voc3(PC),A6 BSR.S L_000004FA LEA Voc4(PC),A6 BSR.S L_000004FA RTS L_000004FA TST.L $002C(A6) BEQ.S L_0000050A SUBQ.L #1,$002C(A6) BNE.S L_0000052A CLR.L $0030(A6) L_0000050A ADDQ.W #4,$002A(A6) MOVE.L $0030(A6),D1 MOVE.L D1,D0 ANDI.L #$80000000,D0 BEQ.S L_0000052A ANDI.L #$0000003F,D1 SUBQ.W #4,$002A(A6) MOVE.L D1,$002C(A6) L_0000052A LEA 4(A5),A5 RTS L_00000530 LEA $00FA(A0),A2 LEA Offsets(PC),A5 SUBQ.W #4,patternpos LEA Voc1(PC),A6 BSR.S L_00000558 LEA Voc2(PC),A6 BSR.S L_00000558 LEA Voc3(PC),A6 BSR.S L_00000558 LEA Voc4(PC),A6 BSR.S L_00000558 RTS L_00000558 SUBQ.W #4,$002A(A6) MOVE.L $0030(A6),D0 ANDI.L #$80000000,D0 BEQ.S L_00000588 ADDQ.W #4,$002A(A6) ADDQ.L #1,$002C(A6) MOVE.L $0030(A6),D0 ANDI.L #$7FFFFFFF,D0 CMP.L $002C(A6),D0 BNE.S L_00000588 SUBQ.W #4,$002A(A6) CLR.L $002C(A6) L_00000588 LEA 4(A5),A5 RTS L_0000058E LEA cr_merk(PC),A4 MOVE.W Voc1_1(PC),(A4)+ MOVE.L Voc1_2(PC),(A4)+ MOVE.W Voc2_1(PC),(A4)+ MOVE.L Voc2_2(PC),(A4)+ MOVE.W Voc3_1(PC),(A4)+ MOVE.L Voc3_2(PC),(A4)+ MOVE.W Voc4_1(PC),(A4)+ MOVE.L Voc4_2(PC),(A4)+ RTS L_000005B4 LEA cr_merk(PC),A4 MOVE.W (A4)+,voc1_1 MOVE.L (A4)+,voc1_2 MOVE.W (A4)+,voc2_1 MOVE.L (A4)+,voc2_2 MOVE.W (A4)+,voc3_1 MOVE.L (A4)+,voc3_2 MOVE.W (A4)+,voc4_1 MOVE.L (A4)+,voc4_2 RTS L_000005EA LEA cr_merk(PC),A4 CLR.L (A4)+ CLR.L (A4)+ CLR.L (A4)+ CLR.L (A4)+ CLR.L (A4)+ CLR.L (A4)+ MOVEQ #0,D0 MOVE.W d0,voc1_1 MOVE.L d0,voc1_2 MOVE.W d0,voc2_1 MOVE.L d0,voc2_2 MOVE.W d0,voc3_1 MOVE.L d0,voc3_2 MOVE.W d0,voc4_1 MOVE.L d0,voc4_2 RTS Com1 BSR L_00000D4E MOVE.W 2(A6),D0 ANDI.W #$0FFF,D0 BEQ.S L_00000696 MOVE.B 2(A6),D0 ANDI.B #$000F,D0 BEQ.S L_0000069E CMPI.B #1,D0 BEQ L_00000712 CMPI.B #2,D0 BEQ L_00000762 CMPI.B #3,D0 BEQ L_00000804 CMPI.B #4,D0 BEQ L_00000892 CMPI.B #5,D0 BEQ L_0000092A CMPI.B #6,D0 BEQ L_00000932 CMPI.B #$000E,D0 BEQ e_com MOVE.W $0010(A6),6(A5) CMPI.B #7,D0 BEQ L_00000938 CMPI.B #$000A,D0 BEQ L_00000A0E L_00000694 RTS L_00000696 MOVE.W $0010(A6),6(A5) RTS L_0000069E MOVEQ #0,D0 MOVE.B Count(PC),D0 DIVS #3,D0 SWAP D0 CMPI.W #0,D0 BEQ.S L_000006CC CMPI.W #2,D0 BEQ.S L_000006C0 MOVEQ #0,D0 MOVE.B 3(A6),D0 LSR.B #4,D0 BRA.S L_000006D2 L_000006C0 MOVEQ #0,D0 MOVE.B 3(A6),D0 ANDI.B #$000F,D0 BRA.S L_000006D2 L_000006CC MOVE.W $0010(A6),D2 BRA.S L_000006FC L_000006D2 ASL.W #1,D0 MOVEQ #0,D1 MOVE.B $0012(A6),D1 MULU #$0048,D1 LEA Perio(PC),A0 ADDA.L D1,A0 MOVEQ #0,D1 MOVE.W $0010(A6),D1 MOVEQ #$0024,D7 L_000006EC MOVE.W (A0,D0.W),D2 CMP.W (A0),D1 BCC.S L_000006FC ADDQ.L #2,A0 DBRA D7,L_000006EC RTS L_000006FC MOVE.W D2,6(A5) RTS L_00000702 TST.B count BNE.S L_00000694 MOVE.B #$F,lowmask L_00000712 MOVEQ #0,D0 MOVE.B 3(A6),D0 AND.B lowmask(PC),D0 MOVE.B #-1,lowmask SUB.W D0,$0010(A6) MOVE.W $0010(A6),D0 ANDI.W #$0FFF,D0 CMPI.W #$0071,D0 BPL.S L_00000742 ANDI.W #-$1000,$0010(A6) ORI.W #$0071,$0010(A6) L_00000742 MOVE.W $0010(A6),D0 ANDI.W #$0FFF,D0 MOVE.W D0,6(A5) RTS L_00000750 TST.B count BNE L_00000694 MOVE.B #$F,lowmask L_00000762 CLR.W D0 MOVE.B 3(A6),D0 AND.B lowmask(PC),D0 MOVE.B #-1,lowmask ADD.W D0,$0010(A6) MOVE.W $0010(A6),D0 ANDI.W #$0FFF,D0 CMPI.W #$0358,D0 BMI.S L_00000792 ANDI.W #-$1000,$0010(A6) ORI.W #$0358,$0010(A6) L_00000792 MOVE.W $0010(A6),D0 ANDI.W #$0FFF,D0 MOVE.W D0,6(A5) RTS L_000007A0 MOVE.L A0,-(A7) MOVE.W 0(A6),D2 ANDI.W #$0FFF,D2 MOVEQ #0,D0 MOVE.B $0012(A6),D0 MULU #$004A,D0 LEA Perio(PC),A0 ADDA.L D0,A0 MOVEQ #0,D0 L_000007BC CMP.W (A0,D0.W),D2 BCC.S L_000007CC ADDQ.W #2,D0 CMPI.W #$004A,D0 BCS.S L_000007BC MOVEQ #$0046,D0 L_000007CC MOVE.B $0012(A6),D2 ANDI.B #8,D2 BEQ.S L_000007DC TST.W D0 BEQ.S L_000007DC SUBQ.W #2,D0 L_000007DC MOVE.W (A0,D0.W),D2 MOVEA.L (A7)+,A0 MOVE.W D2,$0018(A6) MOVE.W $0010(A6),D0 CLR.B $0016(A6) CMP.W D0,D2 BEQ.S L_000007FE BGE L_00000694 MOVE.B #1,$0016(A6) RTS L_000007FE CLR.W $0018(A6) RTS L_00000804 MOVE.B 3(A6),D0 BEQ.S L_00000812 MOVE.B D0,$0017(A6) CLR.B 3(A6) L_00000812 TST.W $0018(A6) BEQ L_00000694 MOVEQ #0,D0 MOVE.B $0017(A6),D0 TST.B $0016(A6) BNE.S L_00000840 ADD.W D0,$0010(A6) MOVE.W $0018(A6),D0 CMP.W $0010(A6),D0 BGT.S L_00000858 MOVE.W $0018(A6),$0010(A6) CLR.W $0018(A6) BRA.S L_00000858 L_00000840 SUB.W D0,$0010(A6) MOVE.W $0018(A6),D0 CMP.W $0010(A6),D0 BLT.S L_00000858 MOVE.W $0018(A6),$0010(A6) CLR.W $0018(A6) L_00000858 MOVE.W $0010(A6),D2 MOVE.B $001F(A6),D0 ANDI.B #$000F,D0 BEQ.S L_0000088C MOVEQ #0,D0 MOVE.B $0012(A6),D0 MULU #$0048,D0 LEA Perio(PC),A0 ADDA.L D0,A0 MOVEQ #0,D0 L_00000878 CMP.W (A0,D0.W),D2 BCC.S L_00000888 ADDQ.W #2,D0 CMPI.W #$0048,D0 BCS.S L_00000878 MOVEQ #$0046,D0 L_00000888 MOVE.W (A0,D0.W),D2 L_0000088C MOVE.W D2,6(A5) RTS L_00000892 MOVE.B 3(A6),D0 BEQ.S L_000008BC MOVE.B $001A(A6),D2 ANDI.B #$000F,D0 BEQ.S L_000008A8 ANDI.B #-$0010,D2 OR.B D0,D2 L_000008A8 MOVE.B 3(A6),D0 ANDI.B #-$0010,D0 BEQ.S L_000008B8 ANDI.B #$000F,D2 OR.B D0,D2 L_000008B8 MOVE.B D2,$001A(A6) L_000008BC MOVE.B $001B(A6),D0 LEA Sintab(PC),A4 LSR.W #2,D0 ANDI.W #$001F,D0 MOVEQ #0,D2 MOVE.B $001E(A6),D2 ANDI.B #3,D2 BEQ.S L_000008F6 LSL.B #3,D0 CMPI.B #1,D2 BEQ.S L_000008E4 MOVE.B #-1,D2 BRA.S L_000008FA L_000008E4 TST.B $001B(A6) BPL.S L_000008F2 MOVE.B #-1,D2 SUB.B D0,D2 BRA.S L_000008FA L_000008F2 MOVE.B D0,D2 BRA.S L_000008FA L_000008F6 MOVE.B (A4,D0.W),D2 L_000008FA MOVE.B $001A(A6),D0 ANDI.W #$000F,D0 MULU D0,D2 LSR.W #7,D2 MOVE.W $0010(A6),D0 TST.B $001B(A6) BMI.S L_00000914 ADD.W D2,D0 BRA.S L_00000916 L_00000914 SUB.W D2,D0 L_00000916 MOVE.W D0,6(A5) MOVE.B $001A(A6),D0 LSR.W #2,D0 ANDI.W #$003C,D0 ADD.B D0,$001B(A6) RTS L_0000092A BSR L_00000812 BRA L_00000A0E L_00000932 BSR.S L_000008BC BRA L_00000A0E L_00000938 MOVE.B 3(A6),D0 BEQ.S L_00000962 MOVE.B $001C(A6),D2 ANDI.B #$000F,D0 BEQ.S L_0000094E ANDI.B #-$0010,D2 OR.B D0,D2 L_0000094E MOVE.B 3(A6),D0 ANDI.B #-$0010,D0 BEQ.S L_0000095E ANDI.B #$000F,D2 OR.B D0,D2 L_0000095E MOVE.B D2,$001C(A6) L_00000962 MOVE.B $001D(A6),D0 LEA Sintab(PC),A4 LSR.W #2,D0 ANDI.W #$001F,D0 MOVEQ #0,D2 MOVE.B $001E(A6),D2 LSR.B #4,D2 ANDI.B #3,D2 BEQ.S L_0000099E LSL.B #3,D0 CMPI.B #1,D2 BEQ.S L_0000098C MOVE.B #-1,D2 BRA.S L_000009A2 L_0000098C TST.B $001B(A6) BPL.S L_0000099A MOVE.B #-1,D2 SUB.B D0,D2 BRA.S L_000009A2 L_0000099A MOVE.B D0,D2 BRA.S L_000009A2 L_0000099E MOVE.B (A4,D0.W),D2 L_000009A2 MOVE.B $001C(A6),D0 ANDI.W #$000F,D0 MULU D0,D2 LSR.W #6,D2 MOVEQ #0,D0 MOVE.B $0013(A6),D0 TST.B $001D(A6) BMI.S L_000009BE ADD.W D2,D0 BRA.S L_000009C0 L_000009BE SUB.W D2,D0 L_000009C0 BPL.S L_000009C4 CLR.W D0 L_000009C4 CMPI.W #$0040,D0 BLS.S L_000009CE MOVE.W #$0040,D0 L_000009CE MOVE.W D0,8(A5) MOVE.B $001C(A6),D0 LSR.W #2,D0 ANDI.W #$003C,D0 ADD.B D0,$001D(A6) RTS L_000009E2 MOVEQ #0,D0 MOVE.B 3(A6),D0 BEQ.S L_000009EE MOVE.B D0,$0020(A6) L_000009EE MOVE.B $0020(A6),D0 LSL.W #7,D0 CMP.W 8(A6),D0 BGE.S L_00000A06 SUB.W D0,8(A6) LSL.W #1,D0 ADD.L D0,4(A6) RTS L_00000A06 MOVE.W #1,8(A6) RTS L_00000A0E MOVEQ #0,D0 MOVE.B 3(A6),D0 LSR.B #4,D0 TST.B D0 BEQ.S L_00000A36 L_00000A1A ADD.B D0,$0013(A6) CMPI.B #$0040,$0013(A6) BMI.S L_00000A2C MOVE.B #$0040,$0013(A6) L_00000A2C MOVE.B $0013(A6),D0 MOVE.W D0,8(A5) RTS L_00000A36 MOVEQ #0,D0 MOVE.B 3(A6),D0 ANDI.B #$000F,D0 L_00000A40 SUB.B D0,$0013(A6) BPL.S L_00000A4A CLR.B $0013(A6) L_00000A4A MOVE.B $0013(A6),D0 MOVE.W D0,8(A5) RTS L_00000A54 MOVE.B 3(A6),D0 SUBQ.B #1,D0 MOVE.B D0,sngpos L_00000A60 CLR.B brkpos ST jmpflg RTS L_00000A6E MOVEQ #0,D0 MOVE.B 3(A6),D0 CMPI.B #$0040,D0 BLS.S L_00000A7C MOVEQ #$0040,D0 L_00000A7C MOVE.B D0,$0013(A6) MOVE.W D0,8(A5) RTS L_00000A86 MOVEQ #0,D0 MOVE.B 3(A6),D0 MOVE.L D0,D2 LSR.B #4,D0 MULU #$000A,D0 ANDI.B #$000F,D2 ADD.B D2,D0 CMPI.B #$003F,D0 BHI.S L_00000A60 MOVE.B D0,brkpos ST jmpflg RTS L_00000AAE MOVE.B 3(A6),D0 BEQ L_00000694 CLR.B count MOVE.B D0,speed RTS com2 BSR L_00000D4E MOVE.B 2(A6),D0 ANDI.B #$000F,D0 CMPI.B #9,D0 BEQ L_000009E2 CMPI.B #$000B,D0 BEQ L_00000A54 CMPI.B #$000D,D0 BEQ.S L_00000A86 CMPI.B #$000E,D0 BEQ.S e_com CMPI.B #$000F,D0 BEQ.S L_00000AAE CMPI.B #$000C,D0 BEQ L_00000A6E RTS e_com MOVE.B 3(A6),D0 ANDI.B #-$0010,D0 LSR.B #4,D0 BEQ.S L_00000B78 CMPI.B #1,D0 BEQ L_00000702 CMPI.B #2,D0 BEQ L_00000750 CMPI.B #3,D0 BEQ.S L_00000B92 CMPI.B #4,D0 BEQ L_00000BA6 CMPI.B #5,D0 BEQ L_00000BBA CMPI.B #6,D0 BEQ L_00000BC8 CMPI.B #7,D0 BEQ L_00000C10 CMPI.B #9,D0 BEQ L_00000C26 CMPI.B #$000A,D0 BEQ L_00000C92 CMPI.B #$000B,D0 BEQ L_00000CAA CMPI.B #$000C,D0 BEQ L_00000CC2 CMPI.B #$000D,D0 BEQ L_00000CE0 CMPI.B #$000E,D0 BEQ L_00000D02 CMPI.B #$000F,D0 BEQ L_00000D2A RTS L_00000B78 MOVE.B 3(A6),D0 ANDI.B #1,D0 ASL.B #1,D0 ANDI.B #-3,$BFE001.L OR.B D0,$BFE001.L RTS L_00000B92 MOVE.B 3(A6),D0 ANDI.B #$000F,D0 ANDI.B #-$0010,$001F(A6) OR.B D0,$001F(A6) RTS L_00000BA6 MOVE.B 3(A6),D0 ANDI.B #$000F,D0 ANDI.B #-$0010,$001E(A6) OR.B D0,$001E(A6) RTS L_00000BBA MOVE.B 3(A6),D0 ANDI.B #$000F,D0 MOVE.B D0,$0012(A6) RTS L_00000BC8 TST.B count BNE L_00000694 MOVE.B 3(A6),D0 ANDI.B #$000F,D0 BEQ.S L_00000C00 TST.B $0022(A6) BEQ.S L_00000BFA SUBQ.B #1,$0022(A6) BEQ L_00000694 L_00000BEA MOVE.B $0021(A6),brkpos ST.b brkflg RTS L_00000BFA MOVE.B D0,$0022(A6) BRA.S L_00000BEA L_00000C00 MOVE.W patternpos(PC),D0 LSR.W #2,D0 MOVE.B D0,$0021(A6) BSR L_0000058E RTS L_00000C10 MOVE.B 3(A6),D0 ANDI.B #$000F,D0 LSL.B #4,D0 ANDI.B #$000F,$001E(A6) OR.B D0,$001E(A6) RTS L_00000C26 MOVE.L D1,-(A7) MOVEQ #0,D0 MOVE.B 3(A6),D0 ANDI.B #$000F,D0 BEQ.S L_00000C8E MOVEQ #0,D1 MOVE.B Count(PC),D1 BNE.S L_00000C4C MOVE.W 0(A6),D1 ANDI.W #$0FFF,D1 BNE.S L_00000C8E MOVEQ #0,D1 MOVE.B Count(PC),D1 L_00000C4C DIVU D0,D1 SWAP D1 TST.W D1 BNE.S L_00000C8E L_00000C54 MOVE.W $0014(A6),$00DFF096.L MOVE.L 4(A6),(A5) MOVE.W 8(A6),4(A5) MOVE.W #$0118,D0 L_00000C6A DBRA D0,L_00000C6A MOVE.W $0014(A6),D0 BSET #$000F,D0 MOVE.W D0,$00DFF096.L MOVE.W #$0118,D0 L_00000C80 DBRA D0,L_00000C80 MOVE.L $000A(A6),(A5) MOVE.L $000E(A6),4(A5) L_00000C8E MOVE.L (A7)+,D1 RTS L_00000C92 tst.b count BNE L_00000694 MOVEQ #0,D0 MOVE.B 3(A6),D0 ANDI.B #$000F,D0 BRA L_00000A1A L_00000CAA TST.B count BNE L_00000694 MOVEQ #0,D0 MOVE.B 3(A6),D0 ANDI.B #$000F,D0 BRA L_00000A40 L_00000CC2 MOVEQ #0,D0 MOVE.B 3(A6),D0 ANDI.B #$000F,D0 CMP.B Count(PC),D0 BNE L_00000694 CLR.B $0013(A6) MOVE.W #0,8(A5) RTS L_00000CE0 MOVEQ #0,D0 MOVE.B 3(A6),D0 ANDI.B #$000F,D0 CMP.B count,D0 BNE L_00000694 MOVE.W 0(A6),D0 BEQ L_00000694 MOVE.L D1,-(A7) BRA L_00000C54 L_00000D02 TST.B count BNE L_00000694 MOVEQ #0,D0 MOVE.B 3(A6),D0 ANDI.B #$000F,D0 TST.B deltim2 BNE L_00000694 ADDQ.B #1,D0 MOVE.B D0,deltim RTS L_00000D2A TST.B count BNE L_00000694 MOVE.B 3(A6),D0 ANDI.B #$000F,D0 LSL.B #4,D0 ANDI.B #$000F,$001F(A6) OR.B D0,$001F(A6) TST.B D0 BEQ L_00000694 L_00000D4E MOVEM.L D1/A0,-(A7) MOVEQ #0,D0 MOVE.B $001F(A6),D0 LSR.B #4,D0 BEQ.S L_00000D9E LEA funktab(PC),A0 MOVE.B (A0,D0.W),D0 ADD.B D0,$0023(A6) BTST #7,$0023(A6) BEQ.S L_00000D9E CLR.B $0023(A6) CLR.B $0023(A6) MOVE.L $000A(A6),D0 MOVEQ #0,D1 MOVE.W $000E(A6),D1 ADD.L D1,D0 ADD.L D1,D0 MOVEA.L $0024(A6),A0 ADDQ.L #1,A0 CMPA.L D0,A0 BCS.S L_00000D94 MOVEA.L $000A(A6),A0 L_00000D94 MOVE.L A0,$0024(A6) MOVEQ #-1,D0 SUB.B (A0),D0 MOVE.B D0,(A0) L_00000D9E MOVEM.L (A7)+,D1/A0 RTS funktab dc.l $50607,$80a0b0d,$1013161a,$202b4080 sintab dc.l $18314a,$61788da1,-$4b3a2b20,-$140b0503 dc.l -$2050c,-$141f2b3b,-$4b5e7288,$614a3118 perio dc.w 856,808,762,720,678,640,604,570,538,508,480,453 dc.w 428,404,381,360,339,320,302,285,269,254,240,226 dc.w 214,202,190,180,170,160,151,143,135,127,120,113 dc.w 850,802,757,715,674,637,601,567,535,505,477,450 dc.w 425,401,379,357,337,318,300,284,268,253,239,225 dc.w 213,201,189,179,169,159,150,142,134,126,119,113 dc.w 844,796,752,709,670,632,597,563,532,502,474,447 dc.w 422,398,376,355,335,316,298,282,266,251,237,224 dc.w 211,199,188,177,167,158,149,141,133,125,118,112 dc.w 838,791,746,704,665,628,592,559,528,498,470,444 dc.w 419,395,373,352,332,314,296,280,264,249,235,222 dc.w 209,198,187,176,166,157,148,140,132,125,118,111 dc.w 832,785,741,699,660,623,588,555,524,495,467,441 dc.w 416,392,370,350,330,312,294,278,262,247,233,220 dc.w 208,196,185,175,165,156,147,139,131,124,117,110 dc.w 826,779,736,694,655,619,584,551,520,491,463,437 dc.w 413,390,368,347,328,309,292,276,260,245,232,219 dc.w 206,195,184,174,164,155,146,138,130,123,116,109 dc.w 820,774,730,689,651,614,580,547,516,487,460,434 dc.w 410,387,365,345,325,307,290,274,258,244,230,217 dc.w 205,193,183,172,163,154,145,137,129,122,115,109 dc.w 814,768,725,684,646,610,575,543,513,484,457,431 dc.w 407,384,363,342,323,305,288,272,256,242,228,216 dc.w 204,192,181,171,161,152,144,136,128,121,114,108 dc.w 907,856,808,762,720,678,640,604,570,538,508,480 dc.w 453,428,404,381,360,339,320,302,285,269,254,240 dc.w 226,214,202,190,180,170,160,151,143,135,127,120 dc.w 900,850,802,757,715,675,636,601,567,535,505,477 dc.w 450,425,401,379,357,337,318,300,284,268,253,238 dc.w 225,212,200,189,179,169,159,150,142,134,126,119 dc.w 894,844,796,752,709,670,632,597,563,532,502,474 dc.w 447,422,398,376,355,335,316,298,282,266,251,237 dc.w 223,211,199,188,177,167,158,149,141,133,125,118 dc.w 887,838,791,746,704,665,628,592,559,528,498,470 dc.w 444,419,395,373,352,332,314,296,280,264,249,235 dc.w 222,209,198,187,176,166,157,148,140,132,125,118 dc.w 881,832,785,741,699,660,623,588,555,524,494,467 dc.w 441,416,392,370,350,330,312,294,278,262,247,233 dc.w 220,208,196,185,175,165,156,147,139,131,123,117 dc.w 875,826,779,736,694,655,619,584,551,520,491,463 dc.w 437,413,390,368,347,328,309,292,276,260,245,232 dc.w 219,206,195,184,174,164,155,146,138,130,123,116 dc.w 868,820,774,730,689,651,614,580,547,516,487,460 dc.w 434,410,387,365,345,325,307,290,274,258,244,230 dc.w 217,205,193,183,172,163,154,145,137,129,122,115 dc.w 862,814,768,725,684,646,610,575,543,513,484,457 dc.w 431,407,384,363,342,323,305,288,272,256,242,228 dc.w 216,203,192,181,171,161,152,144,136,128,121,114 voc1 dc.l 0,0,0,0,0,$10000,0,0,0,0 dc.w 0 voc1_1 dc.w 0 voc1_2 dc.l 0,0,0 voc2 dc.l 0,0,0,0,0,$20000,0,0,0,0 dc.w 0 voc2_1 dc.w 0 voc2_2 dc.l 0,0,0 voc3 dc.l 0,0,0,0,0,$40000,0,0,0,0 dc.w 0 voc3_1 dc.w 0 voc3_2 dc.l 0,0,0 voc4 dc.l 0,0,0,0,0,$80000,0,0,0,0 dc.w 0 voc4_1 dc.w 0 voc4_2 dc.l 0,0,0 modptr dc.l 0 speed dc.b 6 count dc.b 0 sngpos dc.b 0 brkpos dc.b 0 jmpflg dc.b 0 brkflg dc.b 0 lowmask dc.b 0 deltim dc.b 0 deltim2 dc.b 0 enable dc.b 0 pattpos dc.l 0 patternpos dc.w 0 cr_merk blk.l 6,0 dmacon dc.w 0 smpadr blk.l $1f,0 offsets blk.l 64*4,0