test: lea $40000,a0 bsr _init lp MOVE.L $DFF004,D0 AND.L #$1FF00,D0 CMP.L #$08000,D0 BNE.S lp bsr _play BTST #6,$BFE001 BNE.S lp bsr _stop RTS ***************************************************************** * * * ProPacker V2.11 Replayroutine * * ripped by ZEG and reassembled by Vampire * * ...both of the famous 'PseudoDOS Group' !! * * * ***************************************************************** _stop MOVE.W #$0020,$00DFF09A.L LEA $00DFF096.L,A0 CLR.W $0012(A0) CLR.W $0022(A0) CLR.W $0032(A0) CLR.W $0042(A0) MOVE.W #$000F,(A0) RTS _init MOVE.L A0,modadr LEA $00FA(A0),A1 MOVE.W #$01FF,D0 MOVEQ #0,D1 hipatt MOVE.L D1,D2 SUBQ.W #1,D0 patt_lp MOVE.B (A1)+,D1 CMP.W D2,D1 BGT.B hipatt DBRA D0,patt_lp ADDQ.W #1,D2 MULU #$80,D2 ADDI.L #$2FE,D2 MOVE.L D2,D3 ADD.L modadr(PC),D3 MOVE.L D3,L_115a LEA smpadr(PC),A1 SUBQ.L #4,D2 ADD.L (A0,D2.L),D2 ADD.L modadr(PC),D2 ADDQ.L #4,D2 MOVEA.L D2,A2 MOVEQ #$1E,D0 smpadr_lp MOVE.L A2,(A1)+ MOVEQ #0,D1 MOVE.W (A0),D1 ADD.L D1,D1 ADDA.L D1,A2 LEA 8(A0),A0 DBRA D0,smpadr_lp ORI.B #2,$BFE001 LEA speed(PC),A4 MOVE.B #6,(A4) CLR.B 1(A4) CLR.B 2(A4) CLR.W $A(A4) LEA $DFF096,A0 CLR.W $12(A0) CLR.W $22(A0) CLR.W $32(A0) CLR.W $42(A0) MOVE.W #$F,(A0) MOVE.W #-$3FE0,$DFF09A RTS _play LEA counter(PC),A4 ADDQ.B #1,(A4) MOVE.B (A4),D0 CMP.B -1(A4),D0 BCS.B nonewnote CLR.B (A4) TST.B 7(A4) BEQ.W getnewnote BSR.B nonewallchans to_dskip BRA.W dskip nonewnote BSR.B nonewallchans BRA.W nonewposyet nonewallchans LEA $DFF0A0,A5 LEA chan1temp(PC),A6 MOVEQ #3,D5 CheckEfx_lp MOVEQ #0,D0 MOVE.B $1F(A6),D0 LSR.B #4,D0 BEQ.B L_22C LEA sintab(PC),A4 L_1F4 MOVE.B (A4,D0.W),D0 ADD.B D0,$0023(A6) BTST #7,$0023(A6) BEQ.B L_22C 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),A4 ADDQ.L #1,A4 CMPA.L D0,A4 BCS.B L_224 MOVEA.L $000A(A6),A4 L_224 MOVE.L A4,$0024(A6) NEG.B (A4) SUBQ.B #1,(A4) L_22C MOVE.W 2(A6),D0 ANDI.W #$0FFF,D0 BNE.B CallEfx MOVE.W $0010(A6),6(A5) LEA $0010(A5),A5 LEA $002C(A6),A6 DBRA D5,CheckEfx_lp RTS CallEfx MOVEQ #$000F,D0 AND.B 2(A6),D0 ADD.W D0,D0 MOVE.W Efxbra1(PC,D0.W),D0 JSR Efxbra1(PC,D0.W) LEA $0010(A5),A5 LEA $002C(A6),A6 DBRA D5,CheckEfx_lp RTS MOVE.W $0010(A6),6(A5) RTS MOVE.W $0010(A6),6(A5) BRA.W Tremolo MOVE.W $0010(A6),6(A5) BRA.W VolumeSlide return RTS Efxbra1 DC.W $26C DC.W $2F4 DC.W $340 DC.W $3E2 DC.W $46A DC.W $4F2 DC.W $4FA DC.W -$16 DC.W -$1E DC.W -$1E DC.W -$C DC.W -$1E DC.W -$1E DC.W -$1E DC.W $6D8 DC.W -$1E getnewnote MOVEA.L modadr(PC),A0 MOVEA.L A0,A3 LEA $007A(A0),A2 LEA $02FA(A0),A0 LEA smpadr(PC),A1 CLR.W dmacontemp LEA $00DFF090.L,A5 LEA L_FFE(PC),A6 CLR.L D6 MOVE.B songpos(PC),D6 BSR.W PlayVoice BSR.W PlayVoice BSR.W PlayVoice BSR.W PlayVoice ORI.W #-$8000,dmacontemp BSR.W wait MOVE.W dmacontemp(PC),$00DFF096.L BSR.W wait LEA $00DFF0A0.L,A5 LEA chan1dat(PC),A6 MOVE.L (A6)+,(A5)+ MOVE.W (A6)+,(A5)+ LEA $000A(A5),A5 LEA $0026(A6),A6 MOVE.L (A6)+,(A5)+ MOVE.W (A6)+,(A5)+ LEA $000A(A5),A5 LEA $0026(A6),A6 MOVE.L (A6)+,(A5)+ MOVE.W (A6)+,(A5)+ LEA $000A(A5),A5 LEA $0026(A6),A6 MOVE.L (A6)+,(A5)+ MOVE.W (A6),(A5) dskip LEA speed(PC),A4 ADDQ.W #2,$000A(A4) MOVE.B 7(A4),D0 BEQ.B dskc MOVE.B D0,8(A4) CLR.B 7(A4) BRA.B L_346 dskc TST.B 8(A4) BEQ.B dska L_346 SUBQ.B #1,8(A4) BEQ.B dska SUBQ.W #2,$000A(A4) dska TST.B 5(A4) BEQ.B nnpysk SF 5(A4) MOVEQ #0,D0 MOVE.B pbreakpos(PC),D0 CLR.B 3(A4) ADD.W D0,D0 MOVE.W D0,$000A(A4) nnpysk CMPI.W #$0080,$000A(A4) BCS.B nonewposyet NextPosition MOVEQ #0,D0 MOVE.B pbreakpos(PC),D0 ADD.W D0,D0 MOVE.W D0,$000A(A4) CLR.B 3(A4) CLR.B 4(A4) ADDQ.B #1,2(A4) ANDI.B #$007F,2(A4) MOVE.B songpos(PC),D1 MOVEA.L modadr(PC),A0 CMP.B $00F8(A0),D1 BCS.B nonewposyet CLR.B 2(A4) nonewposyet LEA speed(PC),A4 TST.B 4(A4) BNE.B NextPosition RTS PlayVoice MOVEQ #0,D1 MOVE.L D6,D0 LEA $0080(A2),A2 MOVE.B (A2,D0.W),D1 LSL.W #7,D1 ADD.W pattpos(PC),D1 LEA $0010(A5),A5 LEA $002C(A6),A6 TST.L (A6) BNE.B plvskip MOVE.W $0010(A6),6(A5) plvskip MOVE.W (A0,D1.W),D1 MOVEA.L L_115A(PC),A4 MOVE.L (A4,D1.W),(A6) MOVEQ #0,D2 MOVE.B 2(A6),D2 ANDI.B #-$0010,D2 LSR.B #4,D2 MOVE.B (A6),D0 ANDI.B #-$0010,D0 OR.B D0,D2 BEQ.B SetRegs MOVEQ #0,D3 SUBQ.W #1,D2 ADD.W D2,D2 ADD.W D2,D2 MOVE.W D2,D4 ADD.W D4,D4 LEA (A3,D4.W),A4 MOVE.L (A1,D2.L),D2 MOVE.W (A4),8(A6) MOVE.W (A4)+,$0028(A6) MOVE.W (A4)+,$0012(A6) MOVE.L D2,4(A6) MOVE.W (A4)+,D3 BEQ.B NoLoop MOVE.W D3,D0 ADD.W D3,D3 ADD.L D3,D2 ADD.W (A4),D0 MOVE.W D0,8(A6) NoLoop MOVE.L D2,$000A(A6) MOVE.L D2,$0024(A6) MOVE.W (A4),$000E(A6) MOVE.B $0013(A6),9(A5) SetRegs MOVE.W (A6),D0 ANDI.W #$0FFF,D0 BEQ.W CheckMoreEfx MOVE.W 2(A6),D0 ANDI.W #$0FF0,D0 CMPI.W #$0E50,D0 BEQ.B DoSetFineTune MOVEQ #$000F,D0 AND.B 2(A6),D0 SUBQ.W #3,D0 BEQ.B CheckTonePorta SUBQ.W #2,D0 BEQ.B CheckTonePorta SUBQ.W #4,D0 BNE.B SetPeriod BSR.W CheckMoreEfx BRA.B SetPeriod CheckTonePorta BSR.W SetTonePorta BRA.W CheckMoreEfx DoSetFineTune BSR.W SetFineTune SetPeriod MOVE.W (A6),D1 ANDI.W #$0FFF,D1 MOVEQ #0,D2 MOVE.B $0012(A6),D2 BNE.B such_ftu MOVE.W D1,$0010(A6) BRA.B ok_ftu such_ftu LEA peritab(PC),A4 MOVEQ #$0024,D7 ftuloop CMP.W (A4)+,D1 DBCC D7,ftuloop LSL.W #3,D2 MOVE.W D2,D0 LSL.W #3,D2 ADD.W D0,D2 MOVE.W -2(A4,D2.W),$0010(A6) ok_ftu MOVE.W 2(A6),D0 ANDI.W #$0FF0,D0 CMPI.W #$0ED0,D0 BEQ.W CheckMoreEfx MOVE.W $0014(A6),$00DFF096.L BTST #2,$001E(A6) BNE.B vibnoc CLR.B $001B(A6) vibnoc BTST #6,$001E(A6) BNE.B trenoc CLR.B $001D(A6) trenoc MOVE.L 4(A6),(A5) MOVE.W 8(A6),4(A5) MOVE.W $0010(A6),6(A5) MOVE.W $0014(A6),D0 OR.W D0,dmacontemp BRA.W CheckMoreEfx Arpeggio MOVEQ #0,D0 MOVE.B counter(PC),D0 MOVE.B arptab(PC,D0.W),D0 BEQ.B L_50C SUBQ.W #2,D0 BEQ.B L_514 MOVEQ #0,D0 MOVE.B 3(A6),D0 LSR.B #4,D0 BRA.B L_51A L_50C MOVE.W $0010(A6),6(A5) RTS L_514 MOVEQ #$000F,D0 AND.B 3(A6),D0 L_51A ADD.W D0,D0 LEA peritab(PC),A4 MOVEQ #0,D1 MOVE.B $0012(A6),D1 BEQ.B L_532 LSL.W #3,D1 MOVE.W D1,D2 LSL.W #3,D1 ADD.W D2,D1 ADDA.L D1,A4 L_532 MOVE.W $0010(A6),D1 MOVEQ #$0024,D7 L_538 CMP.W (A4)+,D1 BCC.B L_542 DBRA D7,L_538 RTS L_542 MOVE.W -2(A4,D0.W),6(A5) RTS arptab DC.L $10200 DC.L $1020001 DC.L $2000102 DC.L $10200 DC.L $1020001 DC.L $2000102 DC.L $10200 DC.L $1020001 FinePortaUp LEA L_1168(PC),A4 TST.B -5(A4) BNE.W return MOVE.B #$000F,(A4) PortaUp LEA L_1168(PC),A4 MOVEQ #0,D0 MOVE.B 3(A6),D0 AND.B (A4),D0 MOVE.B #-1,(A4) SUB.W D0,$0010(A6) MOVE.W $0010(A6),D0 ANDI.W #$0FFF,D0 CMPI.W #$0071,D0 BPL.B PortaUskip ANDI.W #-$1000,$0010(A6) ORI.W #$0071,$0010(A6) PortaUskip MOVE.W $0010(A6),D0 ANDI.W #$0FFF,D0 MOVE.W D0,6(A5) RTS FinePortaDown LEA L_1168(PC),A4 TST.B -5(A4) BNE.W return MOVE.B #$000F,(A4) PortaDown LEA L_1168(PC),A4 CLR.W D0 MOVE.B 3(A6),D0 AND.B (A4),D0 MOVE.B #-1,(A4) ADD.W D0,$0010(A6) MOVE.W $0010(A6),D0 ANDI.W #$0FFF,D0 CMPI.W #$0358,D0 BMI.B PortaDskip ANDI.W #-$1000,$0010(A6) ORI.W #$0358,$0010(A6) PortaDskip MOVE.W $0010(A6),D0 ANDI.W #$0FFF,D0 MOVE.W D0,6(A5) RTS SetTonePorta MOVE.W (A6),D2 ANDI.W #$0FFF,D2 LEA peritab(PC),A4 MOVEQ #0,D0 MOVE.B $0012(A6),D0 BEQ.B stploop ADD.W D0,D0 MOVE.W D0,D7 ADD.W D0,D0 ADD.W D0,D0 ADD.W D0,D7 LSL.W #3,D0 ADD.W D7,D0 ADDA.L D0,A4 MOVEQ #0,D0 stploop CMP.W (A4,D0.W),D2 BCC.B stpfound ADDQ.W #2,D0 CMPI.W #$004A,D0 BCS.B stploop MOVEQ #$0046,D0 stpfound BTST #3,$0012(A6) BEQ.B stpgoss TST.W D0 BEQ.B stpgoss SUBQ.W #2,D0 stpgoss MOVE.W (A4,D0.W),D2 MOVE.W D2,$0018(A6) MOVE.W $0010(A6),D0 CLR.B $0016(A6) CMP.W D0,D2 BEQ.B clrtoneporta BGE.W return ADDQ.B #1,$0016(A6) RTS clrtoneporta CLR.W $0018(A6) RTS toneportamento MOVE.B 3(A6),D0 BEQ.B toneportnochnge MOVE.B D0,$0017(A6) CLR.B 3(A6) toneportnochnge TST.W $0018(A6) BEQ.W return MOVEQ #0,D0 MOVE.B $0017(A6),D0 TST.B $0016(A6) BNE.B toneportaup toneportadown ADD.W D0,$0010(A6) MOVE.W $0018(A6),D0 CMP.W $0010(A6),D0 BGT.B toneportasetper MOVE.W $0018(A6),$0010(A6) CLR.W $0018(A6) BRA.B toneportasetper toneportaup SUB.W D0,$0010(A6) MOVE.W $0018(A6),D0 CMP.W $0010(A6),D0 BLT.B toneportasetper MOVE.W $0018(A6),$0010(A6) CLR.W $0018(A6) toneportasetper MOVE.W $0010(A6),D2 MOVEQ #$000F,D0 AND.B $001F(A6),D0 BEQ.B L_6EA LEA peritab(PC),A4 MOVEQ #0,D0 MOVE.B $0012(A6),D0 BEQ.B L_6DE LSL.W #3,D0 MOVE.W D0,D1 LSL.W #3,D0 ADD.W D1,D0 ADDA.L D0,A4 L_6DE MOVEQ #$0023,D0 L_6E0 CMP.W (A4)+,D2 DBCC D0,L_6E0 MOVE.W -2(A4),D2 L_6EA MOVE.W D2,6(A5) RTS Vibrato MOVE.B 3(A6),D0 BEQ.B L_71A MOVE.B $001A(A6),D2 ANDI.B #$000F,D0 BEQ.B L_706 ANDI.B #-$0010,D2 OR.B D0,D2 L_706 MOVE.B 3(A6),D0 ANDI.B #-$0010,D0 BEQ.B L_716 ANDI.B #$000F,D2 OR.B D0,D2 L_716 MOVE.B D2,$001A(A6) L_71A LEA L_B8A(PC),A4 MOVEQ #$007C,D0 AND.B $001B(A6),D0 LSR.W #2,D0 MOVEQ #3,D2 AND.B $001E(A6),D2 BEQ.B L_74C LSL.B #3,D0 SUBQ.W #1,D2 BEQ.B L_73A MOVE.B #-1,D2 BRA.B L_750 L_73A TST.B $001B(A6) BPL.B L_748 MOVE.B #-1,D2 SUB.B D0,D2 BRA.B L_750 L_748 MOVE.B D0,D2 BRA.B L_750 L_74C MOVE.B (A4,D0.W),D2 L_750 MOVEQ #$000F,D0 AND.B $001A(A6),D0 MULU D0,D2 LSR.W #7,D2 TST.B $001B(A6) BPL.B L_762 NEG.W D2 L_762 ADD.W $0010(A6),D2 MOVE.W D2,6(A5) MOVEQ #-$0010,D0 AND.B $001A(A6),D0 LSR.B #2,D0 ADD.B D0,$001B(A6) RTS ToneVolSlide BSR.W toneportnochnge BRA.W VolumeSlide VibVolSlide BSR.B L_71A BRA.W VolumeSlide Tremolo MOVE.B 3(A6),D0 BEQ.B L_7B0 MOVE.B $001C(A6),D2 ANDI.B #$000F,D0 BEQ.B L_79C ANDI.B #-$0010,D2 OR.B D0,D2 L_79C MOVE.B 3(A6),D0 ANDI.B #-$0010,D0 BEQ.B L_7AC ANDI.B #$000F,D2 OR.B D0,D2 L_7AC MOVE.B D2,$001C(A6) L_7B0 LEA L_B8A(PC),A4 MOVEQ #$007C,D0 AND.B $001D(A6),D0 LSR.W #2,D0 MOVEQ #3,D2 AND.B $001E(A6),D2 LSR.B #4,D2 BEQ.B L_7E4 LSL.B #3,D0 SUBQ.W #1,D2 BEQ.B L_7D2 MOVE.B #-1,D2 BRA.B L_7E8 L_7D2 TST.B $001B(A6) BPL.B L_7E0 MOVE.B #-1,D2 SUB.B D0,D2 BRA.B L_7E8 L_7E0 MOVE.B D0,D2 BRA.B L_7E8 L_7E4 MOVE.B (A4,D0.W),D2 L_7E8 MOVEQ #$000F,D0 AND.B $001C(A6),D0 MULU D0,D2 LSR.W #6,D2 MOVEQ #0,D0 MOVE.B $0013(A6),D0 TST.B $001D(A6) BPL.B L_800 NEG.W D2 L_800 ADD.B $0013(A6),D2 BPL.B L_808 CLR.W D2 L_808 CMPI.W #$0040,D2 BLS.B L_812 MOVE.W #$0040,D2 L_812 MOVE.W D2,8(A5) MOVEQ #-$0010,D0 AND.B $001C(A6),D0 LSR.B #2,D0 ADD.B D0,$001D(A6) RTS SampleOffset MOVEQ #0,D0 MOVE.B 3(A6),D0 BEQ.B L_830 MOVE.B D0,$0020(A6) L_830 MOVE.B $0020(A6),D0 LSL.W #7,D0 CMP.W 8(A6),D0 BGE.B L_848 SUB.W D0,8(A6) ADD.W D0,D0 ADD.L D0,4(A6) RTS L_848 MOVE.W #1,8(A6) RTS VolumeSlide MOVEQ #0,D0 MOVE.B 3(A6),D0 LSR.B #4,D0 BEQ.B L_874 VolSlideUp ADD.B D0,$0013(A6) CMPI.B #$0040,$0013(A6) BMI.B L_86C MOVE.B #$0040,$0013(A6) L_86C MOVE.B $0013(A6),9(A5) RTS L_874 MOVEQ #$000F,D0 AND.B 3(A6),D0 VolSlideDown2 SUB.B D0,$0013(A6) BPL.B L_884 CLR.B $0013(A6) L_884 MOVE.B $0013(A6),9(A5) RTS PosJump LEA pbreakpos(PC),A4 MOVE.B 3(A6),D0 SUBQ.W #1,D0 MOVE.B D0,-1(A4) CLR.B (A4) ST 1(A4) RTS PattBreak MOVE.B 3(A6),D0 MOVE.B D0,$0013(A6) MOVE.B D0,9(A5) RTS MOVEQ #0,D0 MOVE.B 3(A6),D0 MOVEQ #$000F,D2 AND.W D0,D2 LSR.B #4,D0 ADD.W D0,D0 MOVE.W D0,D1 ADD.W D0,D0 ADD.W D0,D0 ADD.W D1,D0 ADD.B D2,D0 LEA pbreakpos(PC),A4 ANDI.B #$003F,D0 MOVE.B D0,(A4) ST 1(A4) RTS SetSpeed MOVE.B 3(A6),D0 LEA counter(PC),A4 CLR.B (A4) MOVE.B D0,-1(A4) RTS CheckMoreEfx MOVEQ #0,D0 MOVE.B $001F(A6),D0 LSR.B #4,D0 BEQ.B L_92E LEA sintab(PC),A4 MOVE.B (A4,D0.W),D0 ADD.B D0,$0023(A6) BTST #7,$0023(A6) BEQ.B L_92E 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),A4 ADDQ.L #1,A4 CMPA.L D0,A4 BCS.B L_926 MOVEA.L $000A(A6),A4 L_926 MOVE.L A4,$0024(A6) NEG.B (A4) SUBQ.B #1,(A4) L_92E MOVEQ #$000F,D0 AND.B 2(A6),D0 ADD.W D0,D0 MOVE.W Efxbra2(PC,D0.W),D0 JMP Efxbra2(PC,D0.W) Efxbra2 DC.W -$6D6 DC.W -$6D6 DC.W -$6D6 DC.W -$6D6 DC.W -$6D6 DC.W -$6D6 DC.W -$6D6 DC.W -$6D6 DC.W -$6D6 DC.W -$11A DC.W -$6D6 DC.W -$B2 DC.W -$9C DC.W -$8E DC.W $20 DC.W -$66 E_Commands MOVE.B 3(A6),D0 ANDI.W #$00F0,D0 LSR.B #4,D0 ADD.W D0,D0 MOVE.W ECombra(PC,D0.W),D0 JMP ECombra(PC,D0.W) ECombra DC.W $20 DC.W -$408 DC.W -$3BC DC.W $36 DC.W $48 DC.W $5A DC.W $66 DC.W $A4 DC.W $B8 DC.W $B8 DC.W $112 DC.W $126 DC.W $13A DC.W $152 DC.W $16A DC.W $18A FilterOnoff MOVEQ #1,D0 AND.B 3(A6),D0 ADD.B D0,D0 LEA $00BFE001.L,A4 ANDI.B #-3,(A4) OR.B D0,(A4) RTS SetGlissControl MOVEQ #$000F,D0 AND.B 3(A6),D0 ANDI.B #-$0010,$001F(A6) OR.B D0,$001F(A6) RTS SetVibratoCon MOVEQ #$000F,D0 AND.B 3(A6),D0 ANDI.B #-$0010,$001E(A6) OR.B D0,$001E(A6) RTS SetFineTune MOVEQ #$000F,D0 AND.B 3(A6),D0 MOVE.B D0,$0012(A6) RTS JumpLoop LEA counter(PC),A4 TST.B (A4) BEQ.B L_9E2 RTS L_9E2 MOVEQ #$000F,D0 AND.B 3(A6),D0 BEQ.B SetLoop TST.B $0022(A6) BEQ.B jumpcnt SUBQ.B #1,$0022(A6) BEQ.W return L_9F8 MOVE.B $0021(A6),2(A4) ST 4(A4) RTS jumpcnt MOVE.B D0,$0022(A6) BRA.B L_9F8 SetLoop MOVE.W pattpos(PC),D0 LSR.W #1,D0 MOVE.B D0,$0021(A6) RTS SetTremoloCon MOVEQ #$000F,D0 AND.B 3(A6),D0 LSL.B #4,D0 ANDI.B #$000F,$001E(A6) OR.B D0,$001E(A6) RTS RetrigNote MOVEQ #$000F,D0 AND.B 3(A6),D0 BEQ.B L_A82 MOVEQ #0,D1 MOVE.B counter(PC),D1 BNE.B L_A48 MOVE.W (A6),D1 ANDI.W #$0FFF,D1 BNE.B L_A82 MOVEQ #0,D1 MOVE.B counter(PC),D1 L_A48 DIVU D0,D1 SWAP D1 TST.W D1 BNE.B L_A82 DoRetrig MOVE.W $0014(A6),$00DFF096.L MOVE.L 4(A6),(A5) MOVE.W 8(A6),4(A5) BSR.W wait MOVE.W $0014(A6),D0 ORI.W #-$8000,D0 MOVE.W D0,$00DFF096.L BSR.W wait MOVE.L $000A(A6),(A5) MOVE.L $000E(A6),4(A5) L_A82 RTS VolumeFineUp TST.B counter BNE.W return MOVEQ #$000F,D0 AND.B 3(A6),D0 BRA.W VolSlideUp VolumeFineDown TST.B counter BNE.W return MOVEQ #$000F,D0 AND.B 3(A6),D0 BRA.W VolSlideDown2 NoteCut MOVEQ #$000F,D0 AND.B 3(A6),D0 CMP.B counter(PC),D0 BNE.W return CLR.B $0013(A6) CLR.W 8(A5) RTS NoteDelay MOVEQ #$000F,D0 AND.B 3(A6),D0 CMP.B counter(PC),D0 BNE.W return MOVE.W (A6),D0 BEQ.W return BRA.W DoRetrig PatternDelay LEA counter(PC),A4 TST.B (A4) BNE.W return MOVEQ #$000F,D0 AND.B 3(A6),D0 TST.B 7(A4) BNE.W return ADDQ.B #1,D0 MOVE.B D0,6(A4) RTS FunkIt TST.B counter BNE.W return MOVEQ #$000F,D0 AND.B 3(A6),D0 LSL.B #4,D0 ANDI.B #$000F,$001F(A6) TST.B D0 BEQ.W return UpdateFunk OR.B D0,$001F(A6) MOVEQ #0,D0 MOVE.B $001F(A6),D0 LSR.B #4,D0 BEQ.B L_B64 LEA sintab(PC),A4 MOVE.B (A4,D0.W),D0 ADD.B D0,$0023(A6) BTST #7,$0023(A6) BEQ.B L_B64 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),A4 ADDQ.L #1,A4 CMPA.L D0,A4 BCS.B L_B5C MOVEA.L $000A(A6),A4 L_B5C MOVE.L A4,$0024(A6) NEG.B (A4) SUBQ.B #1,(A4) L_B64 RTS wait MOVEQ #3,D0 LEA $00DFF006.L,A4 wait1 MOVE.B (A4),D1 wait2 CMP.B (A4),D1 BEQ.B wait2 DBRA D0,wait1 RTS sintab DC.L $50607 DC.L $80A0B0D DC.L $1013161A DC.L $202B4080 L_B8A DC.L $18314A DC.L $61788DA1 DC.L -$4B3A2B20 DC.L -$140B0503 DC.L -$2050C DC.L -$141F2B3B DC.L -$4B5E7288 DC.L $614A3118 peritab DC.L $3580328 DC.L $2FA02D0 DC.L $2A60280 DC.L $25C023A DC.L $21A01FC DC.L $1E001C5 DC.L $1AC0194 DC.L $17D0168 DC.L $1530140 DC.L $12E011D DC.L $10D00FE DC.L $F000E2 DC.L $D600CA DC.L $BE00B4 DC.L $AA00A0 DC.L $97008F DC.L $87007F DC.L $780071 DC.L $3520322 DC.L $2F502CB DC.L $2A2027D DC.L $2590237 DC.L $21701F9 DC.L $1DD01C2 DC.L $1A90191 DC.L $17B0165 DC.L $151013E DC.L $12C011C DC.L $10C00FD DC.L $EF00E1 DC.L $D500C9 DC.L $BD00B3 DC.L $A9009F DC.L $96008E DC.L $86007E DC.L $770071 DC.L $34C031C DC.L $2F002C5 DC.L $29E0278 DC.L $2550233 DC.L $21401F6 DC.L $1DA01BF DC.L $1A6018E DC.L $1780163 DC.L $14F013C DC.L $12A011A DC.L $10A00FB DC.L $ED00E0 DC.L $D300C7 DC.L $BC00B1 DC.L $A7009E DC.L $95008D DC.L $85007D DC.L $760070 DC.L $3460317 DC.L $2EA02C0 DC.L $2990274 DC.L $250022F DC.L $21001F2 DC.L $1D601BC DC.L $1A3018B DC.L $1750160 DC.L $14C013A DC.L $1280118 DC.L $10800F9 DC.L $EB00DE DC.L $D100C6 DC.L $BB00B0 DC.L $A6009D DC.L $94008C DC.L $84007D DC.L $76006F DC.L $3400311 DC.L $2E502BB DC.L $294026F DC.L $24C022B DC.L $20C01EF DC.L $1D301B9 DC.L $1A00188 DC.L $172015E DC.L $14A0138 DC.L $1260116 DC.L $10600F7 DC.L $E900DC DC.L $D000C4 DC.L $B900AF DC.L $A5009C DC.L $93008B DC.L $83007C DC.L $75006E DC.L $33A030B DC.L $2E002B6 DC.L $28F026B DC.L $2480227 DC.L $20801EB DC.L $1CF01B5 DC.L $19D0186 DC.L $170015B DC.L $1480135 DC.L $1240114 DC.L $10400F5 DC.L $E800DB DC.L $CE00C3 DC.L $B800AE DC.L $A4009B DC.L $92008A DC.L $82007B DC.L $74006D DC.L $3340306 DC.L $2DA02B1 DC.L $28B0266 DC.L $2440223 DC.L $20401E7 DC.L $1CC01B2 DC.L $19A0183 DC.L $16D0159 DC.L $1450133 DC.L $1220112 DC.L $10200F4 DC.L $E600D9 DC.L $CD00C1 DC.L $B700AC DC.L $A3009A DC.L $910089 DC.L $81007A DC.L $73006D DC.L $32E0300 DC.L $2D502AC DC.L $2860262 DC.L $23F021F DC.L $20101E4 DC.L $1C901AF DC.L $1970180 DC.L $16B0156 DC.L $1430131 DC.L $1200110 DC.L $10000F2 DC.L $E400D8 DC.L $CC00C0 DC.L $B500AB DC.L $A10098 DC.L $900088 DC.L $800079 DC.L $72006C DC.L $38B0358 DC.L $32802FA DC.L $2D002A6 DC.L $280025C DC.L $23A021A DC.L $1FC01E0 DC.L $1C501AC DC.L $194017D DC.L $1680153 DC.L $140012E DC.L $11D010D DC.L $FE00F0 DC.L $E200D6 DC.L $CA00BE DC.L $B400AA DC.L $A00097 DC.L $8F0087 DC.L $7F0078 DC.L $3840352 DC.L $32202F5 DC.L $2CB02A3 DC.L $27C0259 DC.L $2370217 DC.L $1F901DD DC.L $1C201A9 DC.L $191017B DC.L $1650151 DC.L $13E012C DC.L $11C010C DC.L $FD00EE DC.L $E100D4 DC.L $C800BD DC.L $B300A9 DC.L $9F0096 DC.L $8E0086 DC.L $7E0077 DC.L $37E034C DC.L $31C02F0 DC.L $2C5029E DC.L $2780255 DC.L $2330214 DC.L $1F601DA DC.L $1BF01A6 DC.L $18E0178 DC.L $163014F DC.L $13C012A DC.L $11A010A DC.L $FB00ED DC.L $DF00D3 DC.L $C700BC DC.L $B100A7 DC.L $9E0095 DC.L $8D0085 DC.L $7D0076 DC.L $3770346 DC.L $31702EA DC.L $2C00299 DC.L $2740250 DC.L $22F0210 DC.L $1F201D6 DC.L $1BC01A3 DC.L $18B0175 DC.L $160014C DC.L $13A0128 DC.L $1180108 DC.L $F900EB DC.L $DE00D1 DC.L $C600BB DC.L $B000A6 DC.L $9D0094 DC.L $8C0084 DC.L $7D0076 DC.L $3710340 DC.L $31102E5 DC.L $2BB0294 DC.L $26F024C DC.L $22B020C DC.L $1EE01D3 DC.L $1B901A0 DC.L $1880172 DC.L $15E014A DC.L $1380126 DC.L $1160106 DC.L $F700E9 DC.L $DC00D0 DC.L $C400B9 DC.L $AF00A5 DC.L $9C0093 DC.L $8B0083 DC.L $7B0075 DC.L $36B033A DC.L $30B02E0 DC.L $2B6028F DC.L $26B0248 DC.L $2270208 DC.L $1EB01CF DC.L $1B5019D DC.L $1860170 DC.L $15B0148 DC.L $1350124 DC.L $1140104 DC.L $F500E8 DC.L $DB00CE DC.L $C300B8 DC.L $AE00A4 DC.L $9B0092 DC.L $8A0082 DC.L $7B0074 DC.L $3640334 DC.L $30602DA DC.L $2B1028B DC.L $2660244 DC.L $2230204 DC.L $1E701CC DC.L $1B2019A DC.L $183016D DC.L $1590145 DC.L $1330122 DC.L $1120102 DC.L $F400E6 DC.L $D900CD DC.L $C100B7 DC.L $AC00A3 DC.L $9A0091 DC.L $890081 DC.L $7A0073 DC.L $35E032E DC.L $30002D5 DC.L $2AC0286 DC.L $262023F DC.L $21F0201 DC.L $1E401C9 DC.L $1AF0197 L_FFE DC.W $180 DC.W $16B DC.W $156 DC.W $143 DC.W $131 DC.W $120 DC.W $110 DC.W $100 DC.W $F2 DC.W $E4 DC.W $D8 DC.W $CB DC.W $C0 DC.W $B5 DC.W $AB DC.W $A1 DC.W $98 DC.W $90 DC.W $88 DC.W $80 DC.W $79 DC.W $72 chan1temp DC.L $C20 DC.L $8732 DC.W $1A83 chan1dat DC.L $8732 DC.L $1A8300D6 DC.L $200001 DC.L $1100000 DC.L -$5E000000 DC.L $500 DC.L 0 DC.L -$78CDE57D DC.L 0 DC.L 0 DC.L $7F3E17A9 DC.L $8944 DC.L $12A60080 DC.L 2 DC.L $1100000 DC.L -$5D000000 DC.L $2800 DC.L 0 DC.L -$76BBE857 DC.L 0 DC.L 1 DC.L $41F615CA DC.L $141F6 DC.L $100E2 DC.L 4 DC.L $1200000 DC.L -$6C000000 DC.L $3000 DC.L 1 DC.L $41F615CA DC.L 0 DC.L $C200001 DC.L $20901BC4 DC.L $14CFC DC.L $58E011D DC.L $200008 DC.L $1100000 DC.L -$3D000000 DC.L $C000 DC.L 1 DC.L $4CFC1BC4 DC.W 0 smpadr BLK.L 31,0 modadr DC.L 0 L_115A DC.L 0,0 speed DC.B 4 counter DC.B 0 songpos DC.B 0 pbreakpos DC.B 0 posjumpflag DC.B 0,0 L_1168 DC.B -1 pattdeltime DC.B 0 pattdeltime2 DC.B 0,0 pattpos DC.W 0 dmacontemp DC.W 0 BLK.L 38,0 END .