home *** CD-ROM | disk | FTP | other *** search
-
- **********************************************************************
- * Resourced from Replayer.c compiled with SAS/C 5.10a
-
- SECTION testo000000,CODE
- ProgStart
- start LEA Module,A0
- BSR.S HardCalc
- JSR @InitReplayer
- MOVEQ #0,D0
- JSR _StartSong
- lbC000016 BTST #6,$BFE001
- BNE lbC000016
- JSR @StopSong
- JSR @TermReplayer
- RTS
-
- HardCalc MOVEM.L D0-D7/A0-A6,-(SP)
- LEA 8(A0),A0
- MOVE.L 4(A0),D0
- MULU #12,D0
- LEA 8(A0),A0
- LEA _SongStructs,A1
- MOVE.L A0,(A1)
- ADD.L D0,A0
- MOVE.L 4(A0),D0
- ASL.L #4,D0
- LEA 8(A0),A0
- LEA _OverTable,A1
- MOVE.L A0,(A1)
- ADD.L D0,A0
- MOVE.L 4(A0),D0
- MULU #4,D0
- LEA 8(A0),A0
- LEA _NoteTable,A1
- MOVE.L A0,(A1)
- ADD.L D0,A0
- MOVE.L 4(A0),D0
- MULU #$98,D0
- LEA 8(A0),A0
- LEA _InstrTable,A1
- MOVE.L A0,(A1)
- ADD.L D0,A0
- MOVE.L 4(A0),D0
- MOVE.L D0,D2
- MULU #$1E,D2
- MOVE.L D0,D3
- MULU #4,D3
- MOVE.L D0,D4
- LEA 8(A0),A0
- ADD.L D3,A0
- ADD.L D3,A0
- ADD.L D2,A0
- MOVE.L D4,D3
- SUBQ.W #1,D3
- LEA _SaList,A1
- lbC0000B4 MOVE.L (A0)+,(A1)+
- DBRA D3,lbC0000B4
-
- MOVE.L D4,D3
- LEA _SaAddr,A1
- LEA _SaList,A2
- SUBQ.W #1,D4
- lbC0000CA MOVE.L A0,(A1)+
- ADD.L (A2)+,A0
- DBRA D4,lbC0000CA
-
- MOVE.L 4(A0),D0
- ASL.L #7,D0
- LEA 8(A0),A0
- LEA _WaveTable,A1
- MOVE.L A0,(A1)
- ADD.L D0,A0
- MOVE.L 4(A0),D0
- ASL.L #7,D0
- LEA 8(A0),A0
- LEA _AdsrTable,A1
- MOVE.L A0,(A1)
- ADD.L D0,A0
- MOVE.L 4(A0),D0
- ASL.L #7,D0
- LEA 8(A0),A0
- LEA _AmfTable,A1
- MOVE.L A0,(A1)
- ADD.L D0,A0
- MOVEM.L (SP)+,D0-D7/A0-A6
- RTS
-
-
- SECTION testo000114,CODE
- Init_Song MOVEM.L D1/A0/A1,-(SP)
- LEA $DFF000,A0
- MOVE.W #15,$96(A0)
- MOVE.W #$FF,$9E(A0)
- MOVE.W #$780,$9A(A0)
- MOVE.W #$780,$9C(A0)
- CLR.W $A8(A0)
- CLR.W $B8(A0)
- CLR.W $C8(A0)
- CLR.W $D8(A0)
- MOVE.L _SongStructs,A0
- MULU #12,D0
- ADD.L D0,A0
- LEA _WorkSST,A1
- MOVEQ #11,D1
- lbC00015A MOVE.B (A0)+,(A1)+
- DBRA D1,lbC00015A
-
- LEA PlayTable0,A0
- MOVE.W #$2BF,D1
- lbC00016A CLR.B (A0)+
- DBRA D1,lbC00016A
-
- LEA _WhichStep,A0
- MOVE.W lbW001056,D0
- SUBQ.W #1,D0
- MOVE.W D0,(A0)
- LEA SongSpeedCnt,A0
- MOVE.W _WorkSST,(A0)
- LEA _WhereInStep,A0
- MOVE.W lbW001054,(A0)
- BSR @ReloadTimer
- MOVEM.L (SP)+,D1/A0/A1
- RTS
-
- myCiaPtr dc.l 0
- myCiaIrq dcb.l 5,0
- dc.w 0
- irqtxt dc.b 'musicirq',0
- ciabtxt dc.b 'ciab.resource',0,0
-
- @InitReplayer MOVEM.L A0/A1/A6,-(SP)
- MOVEQ #0,D0
- BSR Init_Song
- LEA _WhichStep,A0
- ADDQ.W #1,(A0)
- MOVE.L 4,A6
- JSR -$78(A6)
- LEA ciabtxt(PC),A1
- JSR -$1F2(A6)
- MOVE.L D0,myCiaPtr
- BNE.S lbC000202
- MOVEQ #0,D0
- BRA.S lbC00024A
-
- lbC000202 LEA myCiaIrq(PC),A1
- MOVE.B #2,8(A1)
- MOVE.B #0,9(A1)
- MOVE.L #irqtxt,10(A1)
- CLR.L 14(A1)
- MOVE.L #IrqRout,$12(A1)
- MOVEQ #13,D0
- MOVE.L myCiaPtr,A6
- MOVEQ #1,D0
- LEA myCiaIrq(PC),A1
- JSR -6(A6)
- TST.L D0
- BEQ.S lbC000240
- MOVEQ #0,D0
- BRA.S lbC00024A
-
- lbC000240 MOVE.L 4,A6
- JSR -$7E(A6)
- MOVEQ #1,D0
- lbC00024A MOVEM.L (SP)+,A0/A1/A6
- RTS
-
- ReadTimer MOVE.B $BFD700,D0
- MOVE.B $BFD600,D1
- CMP.B $BFD700,D0
- BNE.S ReadTimer
- LSL.W #8,D0
- MOVE.B D1,D0
- RTS
-
- @ReloadTimer MOVE.L D1,-(SP)
- MOVE.L #$AD303,D0
- MOVE.W lbW00105C,D1
- BEQ.S lbC00027C
- DIVU D1,D0
- lbC00027C MOVE.B #0,$BFDF00
- MOVE.B D0,$BFD600
- LSR.W #8,D0
- MOVE.B D0,$BFD700
- MOVE.B #$11,$BFDF00
- BSR ReadTimer
- MOVE.W D0,timerticks
- MOVE.L (SP)+,D1
- RTS
-
- @VoicesShutDown MOVEM.L D0/A0,-(SP)
- LEA PlayTable0,A0
- MOVE.W #$2BF,D1
- lbC0002B6 CLR.B (A0)+
- DBRA D1,lbC0002B6
-
- LEA $DFF000,A0
- MOVE.W #15,$96(A0)
- MOVEQ #0,D0
- MOVE.W D0,$A8(A0)
- MOVE.W D0,$A8(A0)
- MOVE.W D0,$A8(A0)
- MOVE.W D0,$A8(A0)
- MOVEM.L (SP)+,D0/A0
- RTS
-
- @TermReplayer MOVEM.L D0/A1/A6,-(SP)
- MOVE.L 4,A6
- JSR -$78(A6)
- MOVE.B #1,$BFDD00
- MOVE.L myCiaPtr,A6
- MOVEQ #1,D0
- LEA myCiaPtr,A1
- JSR -12(A6)
- MOVE.L 4,A6
- JSR -$7E(A6)
- BSR.S @VoicesShutDown
- MOVEM.L (SP)+,D0/A1/A6
- RTS
-
- _StartSong MOVEM.L D1-D7/A0-A6,-(SP)
- CLR.W _PlayOn
- BSR Init_Song
- MOVE.W #$FFFF,_PlayOn
- MOVEM.L (SP)+,D1-D7/A0-A6
- RTS
-
- _StartPatternPlay MOVEM.L D1-D7/A0-A6,-(SP)
- CLR.W _PlayOn
- MOVE.W lbW001054,_WhereInStep
- MOVE.W D0,_WhichStep
- MOVE.W #1,_PlayOn
- MOVEM.L (SP)+,D1-D7/A0-A6
- RTS
-
- @StopSong CLR.W _PlayOn
- LEA PlayTable0,A0
- MOVE.W #$2BF,D1
- lbC00036A CLR.B (A0)+
- DBRA D1,lbC00036A
-
- BSR @VoicesShutDown
- RTS
-
- _PlayOn dc.w 0
-
- IrqRout MOVEM.L D0-D7/A0-A6,-(SP)
- LEA _RepeatVoice0,A0
- TST.L (A0)
- BEQ.S lbC0003DE
- TST.B (A0)
- BEQ.S lbC00039A
- LEA $DFF0A0,A1
- LEA PlayTable0,A2
- BSR Set_repeat
- lbC00039A TST.B 1(A0)
- BEQ.S lbC0003B0
- LEA $DFF0B0,A1
- LEA PlayTable1,A2
- BSR Set_repeat
- lbC0003B0 TST.B 2(A0)
- BEQ.S lbC0003C6
- LEA $DFF0C0,A1
- LEA PlayTable2,A2
- BSR Set_repeat
- lbC0003C6 TST.B 3(A0)
- BEQ.S lbC0003DC
- LEA $DFF0D0,A1
- LEA PlayTable3,A2
- BSR Set_repeat
- lbC0003DC CLR.L (A0)
- lbC0003DE LEA SongSpeedCnt,A0
- ADDQ.W #1,(A0)
- MOVE.W (A0),D0
- CMP.W _WorkSST,D0
- BLT.S lbC0003FC
- CLR.W (A0)
- MOVE.W _PlayOn(PC),D0
- BEQ.S lbC0003FC
- BSR SongReplayer
- lbC0003FC BSR Update_Effects
- LEA DMAStartMask,A0
- TST.B 1(A0)
- BEQ.S lbC000414
- MOVE.W (A0),$DFF096
- CLR.W (A0)
- lbC000414 MOVE.B $BFDD00,D0
- MOVE.W #$2000,$DFF09C
- MOVEM.L (SP)+,D0-D7/A0-A6
- MOVEQ #0,D0
- RTS
-
- Set_repeat MOVE.L _InstrTable,A3
- MOVEQ #0,D0
- MOVE.W $88(A2),D0
- SUBQ.W #1,D0
- MULU #$98,D0
- ADD.L D0,A3
- TST.W 6(A3)
- BEQ.S lbC000484
- CMP.W #1,6(A3)
- BNE.S lbC00045E
- LEA ZeroWaveForm,A4
- MOVE.L A4,0(A1)
- MOVE.W #1,4(A1)
- RTS
-
- lbC00045E LEA _SaAddr,A4
- MOVEQ #0,D0
- MOVE.W 2(A3),D0
- LSL.W #2,D0
- MOVE.L 0(A4,D0.W),A4
- MOVEQ #0,D0
- MOVEM.W 4(A3),D0/D1
- LSL.L #1,D0
- ADD.L D0,A4
- MOVE.L A4,0(A1)
- MOVE.W D1,4(A1)
- lbC000484 RTS
-
- SongReplayer BSR ReadNewOTLine
- BSR ReadNewNotes
- MOVEQ #0,D7
- LEA Voice0On,A0
- TST.W (A0)+
- BEQ.S lbC0004BE
- MOVE.L CurrNote0,D0
- MOVE.L CurrOtTrk0,D1
- MOVEQ #1,D2
- LEA _RepeatVoice0,A1
- LEA PlayTable0,A2
- LEA $DFF0A0,A3
- BSR PlayVoice
- lbC0004BE TST.W (A0)+
- BEQ.S lbC0004E6
- MOVE.L CurrNote1,D0
- MOVE.L CurrOtTrk1,D1
- MOVEQ #2,D2
- LEA _RepeatVoice1,A1
- LEA PlayTable1,A2
- LEA $DFF0B0,A3
- BSR PlayVoice
- lbC0004E6 TST.W (A0)+
- BEQ.S lbC00050E
- MOVE.L CurrNote2,D0
- MOVE.L CurrOtTrk2,D1
- MOVEQ #4,D2
- LEA _RepeatVoice2,A1
- LEA PlayTable2,A2
- LEA $DFF0C0,A3
- BSR PlayVoice
- lbC00050E TST.W (A0)+
- BEQ.S lbC000536
- MOVE.L CurrNote3,D0
- MOVE.L CurrOtTrk3,D1
- MOVEQ #8,D2
- LEA _RepeatVoice3,A1
- LEA PlayTable3,A2
- LEA $DFF0D0,A3
- BSR PlayVoice
- lbC000536 OR.W #$8000,D7
- MOVE.W D7,DMAStartMask
- RTS
-
- ReadNewOTLine LEA _WhereInStep,A0
- ADDQ.W #1,(A0)
- MOVE.W lbW001054,D0
- CMP.W (A0),D0
- BGT.S lbC000594
- CLR.W (A0)
- TST.W _PlayOn
- BGT.S lbC000576
- LEA _WhichStep,A0
- ADDQ.W #1,(A0)
- MOVE.W lbW001058,D0
- CMP.W (A0),D0
- BGE.S lbC000576
- MOVE.W lbW00105A,(A0)
- lbC000576 MOVE.W _WhichStep,D0
- LSL.W #4,D0
- MOVE.L _OverTable,A0
- MOVEM.L 0(A0,D0.W),D1-D4
- LEA CurrOtTrk0,A0
- MOVEM.L D1-D4,(A0)
- lbC000594 RTS
-
- ReadNewNotes MOVE.L _NoteTable,A0
- MOVEQ #0,D0
- MOVE.W _WhereInStep,D0
- LSL.W #2,D0
- ADD.W D0,A0
- LEA CurrNote0,A1
- LEA CurrOtTrk0,A2
- LEA Voice0On,A3
- TST.W (A3)+
- BEQ.S lbC0005C8
- MOVEQ #0,D0
- MOVE.W (A2),D0
- LSL.L #2,D0
- MOVE.L 0(A0,D0.L),(A1)
- lbC0005C8 TST.W (A3)+
- BEQ.S lbC0005DA
- MOVEQ #0,D0
- MOVE.W 4(A2),D0
- LSL.L #2,D0
- MOVE.L 0(A0,D0.L),4(A1)
- lbC0005DA TST.W (A3)+
- BEQ.S lbC0005EC
- MOVEQ #0,D0
- MOVE.W 8(A2),D0
- LSL.L #2,D0
- MOVE.L 0(A0,D0.L),8(A1)
- lbC0005EC TST.W (A3)
- BEQ.S lbC0005FE
- MOVEQ #0,D0
- MOVE.W 12(A2),D0
- LSL.L #2,D0
- MOVE.L 0(A0,D0.L),12(A1)
- lbC0005FE RTS
-
- EffJumps dc.l Eff_Nop
- dc.l Eff_Slide
- dc.l Eff_RestartAdsr
- dc.l Eff_Nop
- dc.l Eff_SetVib
- dc.l Eff_Nop
- dc.l Eff_Nop
- dc.l Eff_SetPorta
- dc.l Eff_SkipPorta
- dc.l Eff_SetTrkLen
- dc.l Eff_SlideVol
- dc.l Eff_JmpPattern
- dc.l Eff_SetVol
- dc.l Eff_BreakPatt
- dc.l Eff_SetFilter
- dc.l Eff_SetSpeed
-
- SetEffects CLR.W $86(A2)
- CLR.W $8C(A2)
- MOVE.W D0,D5
- AND.L #$F00,D5
- LSR.L #6,D5
- LEA EffJumps(PC),A4
- MOVE.L 0(A4,D5.W),A4
- JMP (A4)
-
- Eff_Nop RTS
-
- Eff_Slide MOVE.B D0,D5
- EXT.W D5
- MOVE.W D5,$86(A2)
- RTS
-
- Eff_RestartAdsr MOVEQ #0,D5
- MOVE.B D0,D5
- MOVE.W D5,$9A(A2)
- RTS
-
- Eff_SetVib CLR.W $90(A2)
- MOVEQ #0,D5
- MOVE.B D0,D5
- AND.W #$F0,D5
- ASR.W #3,D5
- MOVE.W D5,$92(A2)
- MOVE.B D0,D5
- AND.L #15,D5
- ASL.L #4,D5
- NEG.L D5
- ADD.L #$A0,D5
- MOVE.W D5,$94(A2)
- RTS
-
- Eff_SetPorta MOVEQ #0,D5
- MOVE.B D0,D5
- MOVE.W D5,$96(A2)
- MOVE.W D5,$98(A2)
- RTS
-
- Eff_SkipPorta CLR.W $96(A2)
- CLR.W $98(A2)
- RTS
-
- Eff_SetTrkLen TST.B D0
- BLE.S Eff_Nop
- CMP.B #$40,D0
- BHI.S Eff_Nop
- MOVEQ #0,D5
- MOVE.B D0,D5
- MOVE.W D5,lbW001054
- RTS
-
- Eff_SlideVol MOVE.B D0,D5
- EXT.W D5
- MOVE.W D5,$8C(A2)
- RTS
-
- Eff_JmpPattern MOVEQ #0,D5
- MOVE.B D0,D5
- MOVE.W D3,_WhichStep
- MOVE.W lbW001054,_WhereInStep
- RTS
-
- Eff_SetVol MOVEQ #0,D5
- MOVE.B D0,D5
- CMP.W #$40,D5
- BLS.S lbC0006F8
- MOVE.W #$40,D5
- lbC0006F8 MOVE.W D5,$8A(A2)
- ASL.W #2,D5
- MOVE.W D5,$AE(A2)
- RTS
-
- Eff_BreakPatt MOVE.W lbW001054,_WhereInStep
- RTS
-
- Eff_SetFilter TST.B D0
- BNE.S lbC00071E
- BCLR #1,$BFE001
- RTS
-
- lbC00071E BSET #1,$BFE001
- RTS
-
- Eff_SetSpeed TST.B D0
- BLE Eff_Nop
- CMP.B #$10,D0
- BGT Eff_Nop
- MOVEQ #0,D5
- MOVE.B D0,D5
- MOVE.W D5,_WorkSST
- RTS
-
- PlayVoice MOVE.L D0,D3
- ROL.L #8,D3
- AND.L #$FF,D3
- MOVE.L D0,D4
- SWAP D4
- AND.L #$FF,D4
- TST.B D3
- BNE.S lbC000768
- TST.B D4
- BEQ lbC0007E2
- BSR RestorePlayTable
- BRA lbC0007E2
-
- lbC000768 CMP.B #$80,D3
- BEQ.S lbC0007E2
- CMP.B #$7F,D3
- BNE.S lbC00077A
- BSR ForceQuiet
- BRA.S lbC0007E2
-
- lbC00077A MOVE.W D0,D6
- MOVEQ #12,D5
- LSR.L D5,D6
- MOVEQ #12,D5
- AND.L D5,D6
- BTST #2,D6
- BNE.S lbC000790
- MOVE.B D1,D5
- EXT.W D5
- ADD.W D5,D3
- lbC000790 TST.W D4
- BEQ.S lbC0007A6
- BTST #3,D6
- BNE.S lbC0007A6
- MOVE.W D1,D5
- ROR.W #8,D5
- EXT.W D5
- ADD.W D5,D4
- AND.W #$FF,D4
- lbC0007A6 MOVE.W $80(A2),$82(A2)
- MOVE.W D3,$80(A2)
- MOVE.W D2,$DFF096
- MOVE.W #1,6(A3)
- TST.W D4
- BEQ.S lbC0007E8
- MOVE.W #$2B,D6
- LEA $84(A2),A6
- lbC0007C8 CLR.B 0(A6,D6.W)
- DBRA D6,lbC0007C8
-
- BSR.S RestorePlayTable
- lbC0007D2 TST.W 0(A5)
- BNE.S lbC0007DE
- BSR SetSampleInstr
- BRA.S lbC0007E2
-
- lbC0007DE BSR SetSynthInstr
- lbC0007E2 BSR SetEffects
- RTS
-
- lbC0007E8 MOVE.W $88(A2),D4
- TST.W D4
- BEQ.S lbC0007E2
- MOVE.L _InstrTable,A5
- MOVE.W $88(A2),D4
- SUBQ.L #1,D4
- MULU #$98,D4
- ADD.L D4,A5
- BRA.S lbC0007D2
-
- RestorePlayTable MOVE.L _InstrTable,A5
- AND.L #$FF,D4
- MOVE.W D4,$88(A2)
- SUBQ.L #1,D4
- MULU #$98,D4
- ADD.L D4,A5
- MOVE.W $10(A5),D4
- MOVE.W D4,$8A(A2)
- ASL.W #2,D4
- MOVE.W D4,$AE(A2)
- MOVE.W $12(A5),D4
- EXT.W D4
- MOVE.W D4,$84(A2)
- MOVE.W $14(A5),$96(A2)
- MOVE.W $14(A5),$98(A2)
- MOVE.W $16(A5),$90(A2)
- MOVE.W $18(A5),$92(A2)
- MOVE.W $1A(A5),$94(A2)
- MOVE.W $1E(A5),$A2(A2)
- MOVE.W $26(A5),$9C(A2)
- MOVE.W $44(A5),$A4(A2)
- CLR.W $A6(A2)
- MOVE.W $48(A5),$A8(A2)
- RTS
-
- ForceQuiet CLR.W 8(A3)
- CLR.W $8A(A2)
- CLR.W $AE(A2)
- CLR.W $88(A2)
- CLR.B (A1)
- RTS
-
- SetSampleInstr LEA _SaAddr,A6
- MOVEQ #0,D4
- MOVE.W 2(A5),D4
- LSL.W #2,D4
- MOVE.L 0(A6,D4.W),D4
- BNE.S lbC00089C
- BSR.S ForceQuiet
- RTS
-
- lbC00089C MOVE.L D4,0(A3)
- MOVEQ #0,D6
- MOVE.W 4(A5),D6
- MOVEQ #0,D4
- CMP.W #1,6(A5)
- BEQ.S lbC0008B4
- MOVE.W 6(A5),D4
- lbC0008B4 ADD.L D6,D4
- MOVE.W D4,4(A3)
- OR.W D2,D7
- ST (A1)
- RTS
-
- SetSynthInstr MOVE.L _WaveTable,A6
- MOVEQ #0,D4
- MOVE.W 2(A5),D4
- ASL.L #7,D4
- LEA 0(A6,D4.L),A6
- LEA 0(A2),A4
- MOVE.L A4,0(A3)
- MOVE.W 4(A5),D4
- MOVE.W D4,4(A3)
- lbC0008E2 MOVE.W (A6)+,(A4)+
- SUBQ.W #1,D4
- BNE.S lbC0008E2
- OR.W D2,D7
- SF (A1)
- RTS
-
- Update_Effects MOVE.L CurrNote0,D0
- MOVE.L CurrOtTrk0,D1
- LEA PlayTable0,A2
- LEA $DFF0A0,A3
- BSR UpdateVoiceEffects
- MOVE.L CurrNote1,D0
- MOVE.L CurrOtTrk1,D1
- LEA PlayTable1,A2
- LEA $DFF0B0,A3
- BSR.S UpdateVoiceEffects
- MOVE.L CurrNote2,D0
- MOVE.L CurrOtTrk2,D1
- LEA PlayTable2,A2
- LEA $DFF0C0,A3
- BSR.S UpdateVoiceEffects
- MOVE.L CurrNote3,D0
- MOVE.L CurrOtTrk3,D1
- LEA PlayTable3,A2
- LEA $DFF0D0,A3
- BSR.S UpdateVoiceEffects
- RTS
-
- UpdateVoiceEffects TST.W $88(A2)
- BNE.S lbC000972
- MOVE.W #0,8(A3)
- TST.W $AE(A2)
- BEQ.S lbC000970
- SUBQ.W #4,$AE(A2)
- lbC000970 RTS
-
- lbC000972 MOVEQ #0,D2
- MOVE.W $80(A2),D2
- MOVEQ #0,D3
- MOVE.W $82(A2),D3
- MOVE.L _InstrTable,A4
- MOVE.W $88(A2),D4
- SUBQ.W #1,D4
- MULU #$98,D4
- LEA 0(A4,D4.L),A4
- TST.W 0(A4)
- BNE.S SynthInstUpdate
- SampleInstUpdate BSR Arpeggio
- BSR Portamento
- BSR Vibrato
- BSR Amf
- BSR Detune
- MOVE.W D2,6(A3)
- BSR SetupAdsr
- RTS
-
- SynthInstUpdate BSR Arpeggio
- BSR Portamento
- BSR Vibrato
- BSR Amf
- BSR Detune
- MOVE.W D2,6(A3)
- BSR.S SetupSynthEff
- BSR SetupAdsr
- RTS
-
- SetupSynthEff SUBQ.W #1,$A8(A2)
- BNE NoEff
- MOVE.W $48(A4),$A8(A2)
- MOVEQ #0,D4
- MOVE.W $42(A4),D4
- BEQ NoEff
- SUBQ.W #1,D4
- ASL.W #2,D4
- LEA EffJmpTable(PC),A0
- MOVE.L 0(A0,D4.W),A0
- JMP (A0)
-
- EffNegate LEA 0(A2),A0
- MOVEQ #0,D4
- MOVE.W $A4(A2),D4
- NEG.B 0(A0,D4.W)
- BRA fineff
-
- EffWCNegate LEA 0(A2),A0
- MOVE.L _WaveTable,A1
- MOVEQ #0,D5
- MOVE.W $40(A4),D5
- ASL.W #7,D5
- LEA 0(A1,D5.W),A1
- MOVE.W $A6(A2),D5
- MOVE.B 0(A1,D5.W),D5
- AND.W #$7F,D5
- MOVE.L _WaveTable,A1
- MOVEQ #0,D4
- MOVE.W 2(A4),D4
- ASL.W #7,D4
- LEA 0(A1,D4.W),A1
- MOVE.W 4(A4),D4
- ASL.W #1,D4
- lbC000A48 TST.W D4
- BEQ.S lbC000A6C
- CMP.W D4,D5
- BGT.S lbC000A5A
- MOVE.B -1(A1,D4.W),-1(A0,D4.W)
- SUBQ.W #1,D4
- BRA.S lbC000A48
-
- lbC000A5A TST.W D4
- BEQ.S lbC000A6C
- MOVE.B -1(A1,D4.W),D5
- NEG.B D5
- MOVE.B D5,-1(A0,D4.W)
- SUBQ.W #1,D4
- BRA.S lbC000A5A
-
- lbC000A6C ADDQ.W #1,$A6(A2)
- MOVE.W $44(A4),D4
- ADD.W $46(A4),D4
- MOVE.W $A6(A2),D5
- CMP.W D4,D5
- BLS.S lbC000A86
- MOVE.W $44(A4),$A6(A2)
- lbC000A86 BRA.S fineff
-
- EffRotateV LEA 0(A2),A0
- MOVEQ #0,D4
- MOVE.W $44(A4),D4
- LEA 0(A0,D4.W),A0
- MOVE.W $46(A4),D4
- SUB.W $44(A4),D4
- lbC000A9E ADDQ.B #1,(A0)+
- DBRA D4,lbC000A9E
-
- BRA.S fineff
-
- EffRotateH dc.l $41EA0000
- dc.l $7800382C
- dc.l $4441F0
- dc.l $4000382C
- dc.l $46986C
- dc.l $441A10
- dc.l $534410A8
- dc.l $15248
- dc.l $51CCFFF8
- dc.l $1085602A
-
- EffAlien LEA 0(A2),A0
- MOVE.L _WaveTable,A1
- MOVEQ #0,D4
- MOVE.W $40(A4),D4
- ASL.W #7,D4
- LEA 0(A1,D4.W),A1
- MOVE.W $44(A4),D4
- lbC000AE8 MOVE.B 0(A1,D4.W),D5
- ADD.B D5,0(A0,D4.W)
- ADDQ.W #1,D4
- CMP.W $46(A4),D4
- BLS.S lbC000AE8
- fineff ADDQ.W #1,$A4(A2)
- MOVE.W $A4(A2),D4
- CMP.W $46(A4),D4
- BLS.S NoEff
- MOVE.W $44(A4),$A4(A2)
- NoEff RTS
-
- EffJmpTable dc.l EffNegate
- dc.l EffWCNegate
- dc.l EffRotateV
- dc.l EffRotateH
- dc.l EffAlien
-
- Detune ADD.W $84(A2),D2
- CMP.W #$71,D2
- BGE.S lbC000B30
- MOVE.W #$71,D2
- lbC000B30 TST.W SongSpeedCnt
- BEQ.S lbC000B40
- MOVE.W $86(A2),D5
- SUB.W D5,$84(A2)
- lbC000B40 RTS
-
- Amf MOVEQ #0,D4
- MOVE.W $20(A4),D4
- ADD.W $22(A4),D4
- TST.W D4
- BEQ.S lbC000B94
- MOVE.L _AmfTable,A1
- MOVEQ #0,D4
- MOVE.W $1C(A4),D4
- ASL.L #7,D4
- LEA 0(A1,D4.L),A1
- MOVE.W $A0(A2),D5
- MOVE.B 0(A1,D5.W),D4
- EXT.W D4
- SUB.W D4,D2
- MOVE.W $20(A4),D4
- ADD.W $22(A4),D4
- CMP.W $A0(A2),D4
- BEQ.S lbC000B8E
- SUBQ.W #1,$A2(A2)
- BNE.S lbC000B94
- MOVE.W $1E(A4),$A2(A2)
- ADDQ.W #1,$A0(A2)
- BRA.S lbC000B94
-
- lbC000B8E MOVE.W $20(A4),$A0(A2)
- lbC000B94 RTS
-
- Arpeggio MOVE.W D0,D4
- MOVEQ #12,D5
- LSR.W D5,D4
- AND.W #3,D4
- TST.W D4
- BEQ.S lbC000BDE
- SUBQ.W #1,D4
- ASL.L #4,D4
- LEA $4A(A4,D4.W),A1
- MOVE.W $AA(A2),D4
- MOVEQ #0,D5
- MOVE.B 2(A1,D4.W),D5
- ADD.B D5,D2
- ADD.B D5,D3
- MOVEQ #0,D4
- MOVE.B (A1),D4
- ADD.B 1(A1),D4
- CMP.W $AA(A2),D4
- BEQ.S lbC000BCE
- ADDQ.W #1,$AA(A2)
- BRA.S lbC000C0A
-
- lbC000BCE MOVE.B (A1),D4
- AND.L #$FF,D4
- MOVE.W D4,$AA(A2)
- BRA lbC000C0A
-
- lbC000BDE MOVE.W D0,D4
- AND.W #$F00,D4
- BNE.S lbC000C0A
- MOVE.B D0,D4
- BEQ.S lbC000C0A
- MOVE.W SongSpeedCnt,D5
- DIVS #3,D5
- SWAP D5
- TST.W D5
- BEQ.S lbC000C0A
- CMP.W #1,D5
- BEQ.S lbC000C02
- ASR.W #4,D4
- lbC000C02 AND.W #15,D4
- ADD.W D4,D2
- ADD.W D4,D3
- lbC000C0A LEA _FreqTable,A1
- LSL.L #1,D2
- LSL.L #1,D3
- MOVE.W 0(A1,D2.W),D2
- MOVE.W 0(A1,D3.W),D3
- RTS
-
- Vibrato CMP.W #$FF,$90(A2)
- BEQ.S lbC000C72
- TST.W $90(A2)
- BEQ.S lbC000C32
- SUBQ.W #1,$90(A2)
- BRA.S lbC000C72
-
- lbC000C32 LEA VibratoTab,A1
- MOVE.W $8E(A2),D4
- MOVEQ #0,D5
- MOVE.B 0(A1,D4.W),D5
- MOVEQ #0,D4
- MOVE.W $1A(A4),D4
- TST.B D5
- BLT.S lbC000C58
- TST.W D4
- BEQ.S lbC000C64
- LSL.L #2,D5
- DIVU D4,D5
- ADD.W D5,D2
- BRA.S lbC000C64
-
- lbC000C58 NEG.B D5
- TST.W D4
- BEQ.S lbC000C64
- LSL.L #2,D5
- DIVU D4,D5
- SUB.W D5,D2
- lbC000C64 MOVE.W $18(A4),D5
- ADD.W D5,$8E(A2)
- AND.W #$FF,$8E(A2)
- lbC000C72 RTS
-
- Portamento TST.W $98(A2)
- BEQ.S lbC000C98
- TST.W $96(A2)
- BEQ.S lbC000C98
- CMP.W D3,D2
- BEQ.S lbC000C98
- SUBQ.W #1,$96(A2)
- EXG D2,D3
- SUB.W D3,D2
- MULS $96(A2),D2
- MOVE.W $98(A2),D4
- DIVS D4,D2
- ADD.W D3,D2
- lbC000C98 AND.W #$FFFF,D2
- RTS
-
- SetupAdsr MOVEQ #0,D4
- MOVE.W $28(A4),D4
- ADD.W $2A(A4),D4
- TST.W D4
- BNE.S lbC000CC4
- MOVEQ #0,D4
- MOVE.W $8A(A2),D4
- MOVE.W D4,8(A3)
- TST.W $AE(A2)
- BEQ.S lbC000CC0
- SUBQ.W #4,$AE(A2)
- lbC000CC0 BRA lbC000D5E
-
- lbC000CC4 MOVE.L _AdsrTable,A1
- MOVE.W $24(A4),D4
- ASL.W #7,D4
- LEA 0(A1,D4.W),A1
- MOVE.W $9A(A2),D4
- MOVEQ #0,D5
- MOVE.B 0(A1,D4.W),D5
- MOVEQ #0,D4
- MOVE.W $8A(A2),D4
- MULU D5,D4
- LSR.L #6,D4
- MOVE.W D4,8(A3)
- ASL.W #2,D4
- MOVE.W D4,$AE(A2)
- MOVEQ #0,D4
- MOVEQ #0,D5
- MOVE.W $28(A4),D4
- ADD.W $2A(A4),D4
- MOVE.W $9A(A2),D5
- CMP.W D5,D4
- BGT.S lbC000D0E
- MOVE.W $28(A4),$9A(A2)
- BRA.S lbC000D5E
-
- lbC000D0E MOVE.L D0,D4
- ROL.L #8,D4
- AND.L #$FF,D4
- CMP.L #$80,D4
- BEQ.S lbC000D32
- lbC000D20 SUBQ.W #1,$9C(A2)
- BNE.S lbC000D5E
- MOVE.W $26(A4),$9C(A2)
- ADDQ.W #1,$9A(A2)
- BRA.S lbC000D5E
-
- lbC000D32 CMP.W #1,$2E(A4)
- BEQ.S lbC000D20
- MOVE.W $9A(A2),D4
- CMP.W $2C(A4),D4
- BLT.S lbC000D20
- TST.W $2E(A4)
- BEQ.S lbC000D5E
- TST.W $9E(A2)
- BEQ.S lbC000D56
- SUBQ.W #1,$9E(A2)
- BRA.S lbC000D5E
-
- lbC000D56 MOVE.W $2E(A4),$9E(A2)
- BRA.S lbC000D20
-
- lbC000D5E MOVE.W $8C(A2),D5
- MOVE.W $8A(A2),D4
- ADD.W D5,D4
- TST.W D4
- BGE.S lbC000D70
- MOVEQ #0,D4
- BRA.S lbC000D7A
-
- lbC000D70 CMP.W #$40,D4
- BLS.S lbC000D7A
- MOVE.W #$40,D4
- lbC000D7A MOVE.W D4,$8A(A2)
- RTS
-
-
- SECTION rep,DATA_C
- PlayTable0 dcb.l $2C,0
- PlayTable1 dcb.l $2C,0
- PlayTable2 dcb.l $2C,0
- PlayTable3 dcb.l $2C,0
- ZeroWaveForm dcb.l 2,0
-
- SECTION rep,DATA
- DMAStartMask dc.w 0
- lastticks dc.w 0
- timerticks dc.w 0
- _SongStructs dc.l 0
- _WorkSST dc.w 0
- lbW001054 dc.w 0
- lbW001056 dc.w 0
- lbW001058 dc.w 0
- lbW00105A dc.w 0
- lbW00105C dc.w 0
- _OverTable dc.l 0
- _NoteTable dc.l 0
- _InstrTable dc.l 0
- _WaveTable dc.l 0
- _AmfTable dc.l 0
- _AdsrTable dc.l 0
- _SaAddr dcb.l $40,0
- _SaList dcb.l $40,0
- _RepeatVoice0 dc.b 0
- _RepeatVoice1 dc.b 0
- _RepeatVoice2 dc.b 0
- _RepeatVoice3 dc.b 0
- Voice0On dc.w 1
- Voice1On dc.w 1
- Voice2On dc.w 1
- Voice3On dc.w 1
- SongSpeedCnt dc.w 0
- _WhereInStep dc.w 0
- _WhichStep dc.w 0
- CurrOtTrk0 dc.l 0
- CurrOtTrk1 dc.l 0
- CurrOtTrk2 dc.l 0
- CurrOtTrk3 dc.l 0
- CurrNote0 dc.l 0
- CurrNote1 dc.l 0
- CurrNote2 dc.l 0
- CurrNote3 dc.l 0
- VibratoTab dc.l $30609
- dc.l $C101316
- dc.l $191C1F22
- dc.l $25282B2E
- dc.l $31343639
- dc.l $3C3F4244
- dc.l $47494C4E
- dc.l $51535658
- dc.l $5A5C5E60
- dc.l $62646668
- dc.l $6A6C6D6F
- dc.l $70727374
- dc.l $76777879
- dc.l $7A7B7B7C
- dc.l $7D7D7E7E
- dc.l $7E7F7F7F
- dc.l $7F7F7F7F
- dc.l $7E7E7D7D
- dc.l $7C7C7B7A
- dc.l $79787776
- dc.l $75747271
- dc.l $706E6C6B
- dc.l $69676563
- dc.l $615F5D5B
- dc.l $59575452
- dc.l $504D4B48
- dc.l $4543403D
- dc.l $3B383532
- dc.l $2F2C2927
- dc.l $24201D1A
- dc.l $1714110E
- dc.l $B080502
- dc.l $FFFCF9F6
- dc.l $F2EFECE9
- dc.l $E6E3E0DD
- dc.l $DAD7D4D1
- dc.l $CECBC9C6
- dc.l $C3C0BEBB
- dc.l $B8B6B3B1
- dc.l $AEACAAA8
- dc.l $A5A3A19F
- dc.l $9D9B9998
- dc.l $96949391
- dc.l $908E8D8C
- dc.l $8A898887
- dc.l $86868584
- dc.l $84838382
- dcb.l 2,$82828282
- dc.l $82838384
- dc.l $84858687
- dc.l $88898A8B
- dc.l $8C8D8F90
- dc.l $92939597
- dc.l $989A9C9E
- dc.l $A0A2A4A6
- dc.l $A9ABADB0
- dc.l $B2B5B7BA
- dc.l $BCBFC2C4
- dc.l $C7CACDD0
- dc.l $D3D6D9DB
- dc.l $DEE2E5E8
- dc.l $EBEEF1F4
- dc.l $F7FAFD00
- _FreqTable dc.l $3580
- dc.l $32802FA0
- dc.l $2D002A60
- dc.l $280025C0
- dc.l $23A021A0
- dc.l $1FC01E00
- dc.l $1C501AC0
- dc.l $194017D0
- dc.l $16801530
- dc.l $140012E0
- dc.l $11D010D0
- dc.l $FE00F00
- dc.l $E280D60
- dc.l $CA00BE8
- dc.l $B400A98
- dc.l $A000970
- dc.l $8E80868
- dc.l $7F00780
- dc.l $71406B0
- dc.l $65005F4
- dc.l $5A0054C
- dc.l $50004B8
- dc.l $4740434
- dc.l $3F803C0
- dc.l $38A0358
- 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 $71006B
- dc.l $65005F
- dc.l $5A0055
- dc.l $50004B
- dc.l $470043
- dc.l $3F003C
- dc.l $380035
- dc.l $32002F
- dc.l $2D002A
- dc.l $280025
- dc.l $230021
- dc.l $1F001E
- dc.l $1CFFFF
-
- SECTION rep,DATA_C
-
- * Load modul beyon this point
- Module
- incbin "???"
- END
-