***************************************************** **** BattleStorm - Custom Module, **** **** all adaptions by Wanted Team **** ***************************************************** incdir "dh2:include/" include 'misc/eagleplayer2.01.i' include 'hardware/intbits.i' include 'exec/exec_lib.i' SECTION Player,Code_C BS_Start PLAYERHEADER PlayerTagArray dc.b "$VER: BattleStorm - Custom Module,",10 dc.b 'adapted by Don Adan/Wanted Team',0 even PlayerTagArray dc.l DTP_CustomPlayer,1 dc.l DTP_PlayerName,PlayerName dc.l DTP_Interrupt,Interrupt dc.l DTP_InitPlayer,InitPlayer dc.l DTP_EndPlayer,EndPlayer dc.l DTP_InitSound,InitSound dc.l DTP_EndSound,EndSound dc.l DTP_SubSongRange,SubSongRange dc.l EP_GetPositionNr,GetPosition dc.l EP_Get_ModuleInfo,Get_ModuleInfo dc.l TAG_DONE PlayerName dc.b "CustomPlay",0 Text dc.b 10 dc.b " BATTLESTORM",10 dc.b 10 dc.b " (C) 1990-91 BY TITUS",0 even EagleBase dc.l 0 *************************************************************************** ********************************* EP_GetPosNr ***************************** *************************************************************************** GetPosition moveq #0,D0 move.w lbW00BC1C(PC),D0 rts *************************************************************************** ***************************** DTP_SubSongRange **************************** *************************************************************************** SubSongRange moveq #0,D0 moveq #6,D1 rts *************************************************************************** ***************************** EP_Get_ModuleInfo *************************** *************************************************************************** Get_ModuleInfo lea InfoBuffer(PC),A0 rts InfoBuffer dc.l MI_SpecialInfo,Text dc.l MI_LoadSize,BS_End-BS_Start Length dc.l MI_Length,0 dc.l 0 *************************************************************************** ***************************** DTP_InitPlayer ****************************** *************************************************************************** InitPlayer move.l A5,EagleBase move.l dtg_AudioAlloc(A5),A0 jmp (A0) *************************************************************************** ***************************** DTP_EndPlayer ******************************* *************************************************************************** EndPlayer move.l dtg_AudioFree(A5),A0 jmp (A0) *************************************************************************** ***************************** DTP_Intterrupt ****************************** *************************************************************************** Interrupt movem.l D1-A6,-(SP) lea WT(PC),A4 move.w Counter-WT(A4),D7 addq.w #1,D7 cmp.w #1,D7 bne.b NoPlay1 bsr.w Play_1 NoPlay1 cmp.w #3,D7 bne.b NoPlay2 bsr.w Play_2 NoPlay2 cmp.w #5,D7 bne.b NoPlay3 bsr.w Play_3 NoPlay3 cmp.w #6,D7 bne.b NoLoop clr.w D7 NoLoop move.w D7,Counter-WT(A4) movem.l (SP)+,D1-A6 moveq #0,D0 rts SongEnd movem.l A1/A5,-(A7) move.l EagleBase(PC),A5 move.l dtg_SongEnd(A5),A1 jsr (A1) movem.l (A7)+,A1/A5 rts SetAudioVector movem.l D0/A1/A6,-(A7) movea.l 4.W,A6 lea StructInt(PC),A1 moveq #INTB_AUD0,D0 jsr _LVOSetIntVector(A6) ; SetIntVector move.l D0,Channel0 lea StructInt(PC),A1 moveq #INTB_AUD1,D0 jsr _LVOSetIntVector(A6) move.l D0,Channel1 lea StructInt(PC),A1 moveq #INTB_AUD2,D0 jsr _LVOSetIntVector(A6) move.l D0,Channel2 lea StructInt(PC),A1 moveq #INTB_AUD3,D0 jsr _LVOSetIntVector(A6) move.l D0,Channel3 movem.l (A7)+,D0/A1/A6 rts ClearAudioVector movea.l 4.W,A6 movea.l Channel0(PC),A1 moveq #INTB_AUD0,D0 jsr _LVOSetIntVector(A6) movea.l Channel1(PC),A1 moveq #INTB_AUD1,D0 jsr _LVOSetIntVector(A6) movea.l Channel2(PC),A1 moveq #INTB_AUD2,D0 jsr _LVOSetIntVector(A6) movea.l Channel3(PC),A1 moveq #INTB_AUD3,D0 jmp _LVOSetIntVector(A6) Channel0 dc.l 0 Channel1 dc.l 0 Channel2 dc.l 0 Channel3 dc.l 0 StructInt dc.l 0 dc.l 0 dc.w $205 dc.l IntName dc.l 0 dc.l Audio IntName dc.b 'BattleStorm Audio Interrupt',0,0 even *************************************************************************** ***************************** DTP_InitSound ******************************* *************************************************************************** InitSound lea WT(PC),A4 move.w dtg_SndNum(A5),D0 lsl.w #2,D0 move.l Songs(PC,D0.W),lbL00BC7A-WT(A4) clr.w Counter-WT(A4) bsr.w Init bra.w SetAudioVector Songs dc.l Song1 dc.l Song2 dc.l Song3 dc.l Song4 dc.l Song5 dc.l Song6 dc.l Song7 *************************************************************************** ***************************** DTP_EndSound ******************************** *************************************************************************** EndSound bsr.w ClearAudioVector lea $DFF000,A0 move.w #15,$96(A0) moveq #0,D0 move.w D0,$A8(A0) move.w D0,$B8(A0) move.w D0,$C8(A0) move.w D0,$D8(A0) rts *************************************************************************** *************************************************************************** *************************************************************************** ; Music from "Battle Storm" (c) 1991 by Titus ;MusTask.MSG dc.b 'MusTask',0 ;lbC004746 LEA lbL004756(PC),A0 ; MOVE.L A4,(A0) ; RTS ;lbC00474E LEA lbL004756(PC),A0 ; MOVEA.L (A0),A4 ; RTS ;lbL004756 dc.l 0 ;lbC00475A LINK.W A5,#-2 ; CLR.W -2(A5) ;lbC004762 JSR lbC00A204-WT(A4) ; CMP.W #$12C,D0 ; BNE.S lbC004770 ; CLR.W lbW00A626-WT(A4) ;lbC004770 ADDQ.W #1,-2(A5) ; CMPI.W #$2710,-2(A5) ; BLT.S lbC004762 ; BSR.S lbC004746 ; PEA 1 ; PEA $1E22 ; JSR lbC00A1E0-WT(A4) ; ADDQ.W #8,SP ; MOVE.L D0,lbL00BC7A-WT(A4) ; BNE.S lbC00479C ; MOVE.W #1,lbW00A622-WT(A4) ; BRA.L lbC00484C ;lbC00479C CLR.W -2(A5) ;lbC0047A0 PEA 2 ; MOVE.W -2(A5),D0 ; EXT.L D0 ; ASL.L #4,D0 ; LEA lbL00A5BA-WT(A4),A0 ; MOVE.L 0(A0,D0.L),-(SP) ; JSR lbC00A1E0-WT(A4) ; ADDQ.W #8,SP ; MOVE.W -2(A5),D1 ; EXT.L D1 ; ASL.L #4,D1 ; LEA lbL00A5B6-WT(A4),A0 ; MOVE.L D0,0(A0,D1.L) ; BNE.S lbC0047DA ; MOVE.W #1,lbW00A622-WT(A4) ; MOVE.W #$2A,-2(A5) ; BRA.S lbC004814 ;lbC0047DA MOVE.W -2(A5),D0 ; ADD.W #$31,D0 ; MOVE.B D0,lbB00A5A7-WT(A4) ; MOVE.W -2(A5),D0 ; EXT.L D0 ; ASL.L #4,D0 ; LEA lbL00A5BA-WT(A4),A0 ; MOVE.L 0(A0,D0.L),-(SP) ; MOVE.W -2(A5),D1 ; EXT.L D1 ; ASL.L #4,D1 ; LEA lbL00A5B6-WT(A4),A1 ; MOVE.L 0(A1,D1.L),-(SP) ; CLR.L -(SP) ; PEA sndi.MSG-WT(A4) ; JSR lbC00A1B6-WT(A4) ; LEA $10(SP),SP ;lbC004814 ADDQ.W #1,-2(A5) ; CMPI.W #6,-2(A5) ; BLT.S lbC0047A0 ; TST.W lbW00A622-WT(A4) ; BNE.S lbC00484C ; PEA $100 ; add task ; PEA lbC0048B6(PC) ; CLR.L -(SP) ; MOVE.L lbL00A61E-WT(A4),-(SP) ; JSR lbC009F9C(PC) ; LEA $10(SP),SP ; MOVE.L D0,lbL00A61A-WT(A4) ; TST.L lbL00A61A-WT(A4) ; BNE.S lbC00484C ; MOVE.W #1,lbW00A622-WT(A4) ;lbC00484C TST.W lbW00A622-WT(A4) ; BEQ.S lbC0048B2 ; TST.L lbL00BC7A-WT(A4) ; BEQ.S lbC004866 ; PEA $1E22 ; MOVE.L lbL00BC7A-WT(A4),-(SP) ; JSR lbC00A1EC-WT(A4) ; ADDQ.W #8,SP ;lbC004866 CLR.W -2(A5) ;lbC00486A MOVE.W -2(A5),D0 ; EXT.L D0 ; ASL.L #4,D0 ; LEA lbL00A5B6-WT(A4),A0 ; TST.L 0(A0,D0.L) ; BEQ.S lbC0048A2 ; MOVE.W -2(A5),D0 ; EXT.L D0 ; ASL.L #4,D0 ; LEA lbL00A5BA-WT(A4),A0 ; MOVE.L 0(A0,D0.L),-(SP) ; MOVE.W -2(A5),D1 ; EXT.L D1 ; ASL.L #4,D1 ; LEA lbL00A5B6-WT(A4),A1 ; MOVE.L 0(A1,D1.L),-(SP) ; JSR lbC00A1EC-WT(A4) ; ADDQ.W #8,SP ;lbC0048A2 ADDQ.W #1,-2(A5) ; CMPI.W #6,-2(A5) ; BLT.S lbC00486A ; CLR.W lbW00A618-WT(A4) ;lbC0048B2 UNLK A5 ; RTS ; Play in loop ;lbC0048B6 LINK.W A5,#-6 ; MOVEM.L D4-D6,-(SP) ; JSR lbC00474E(PC) ; PEA $3F ; CLR.L -(SP) ; JSR lbC00A07E(PC) ; ADDQ.W #4,SP ; MOVE.L D0,-(SP) ; JSR lbC00A0F4(PC) ; ADDQ.W #8,SP Play_1 ;lbC0048D6 TST.W lbW00A616-WT(A4) ; BEQ.L lbC004A4E MOVEA.L lbL00BC7E-WT(A4),A0 MOVE.W (A0),D4 MOVEA.L lbL00BC7E-WT(A4),A0 MOVE.W 2(A0),D5 MOVEA.L lbL00BC7E-WT(A4),A0 MOVE.W 4(A0),D6 MOVEA.L lbL00BC7E-WT(A4),A0 MOVEQ #0,D0 MOVE.B 6(A0),D0 ; MOVE.W D0,-2(A5) move.w D0,Voice2-WT(A4) MOVEA.L lbL00BC7E-WT(A4),A0 MOVEQ #0,D0 MOVE.B 7(A0),D0 ; MOVE.W D0,-4(A5) move.w D0,Voice3-WT(A4) MOVEA.L lbL00BC7E-WT(A4),A0 MOVEQ #0,D0 MOVE.B 8(A0),D0 ; MOVE.W D0,-6(A5) move.w D0,Voice4-WT(A4) TST.W D4 BEQ.S lbC004926 JSR lbC0060D0(PC) lbC004926 TST.W D5 BEQ.S lbC00492E JSR lbC0060F0(PC) lbC00492E TST.W D6 BEQ.S lbC004936 JSR lbC006110(PC) lbC004936 movem.w D4/D5/D6,RegStore-WT(A4) rts Play_2 movem.w RegStore-WT(A4),D4/D5/D6 ; JSR lbC004A5C(PC) ; wait 2 frames TST.W D4 BEQ.S lbC004964 ; MOVE.W -2(A5),D0 move.w Voice2-WT(A4),D0 EXT.L D0 ASL.L #4,D0 LEA lbL00A5BE-WT(A4),A0 MOVE.W D4,0(A0,D0.L) ; MOVE.W -2(A5),D0 move.w Voice2-WT(A4),D0 EXT.L D0 ASL.L #4,D0 LEA lbL00A5B6-WT(A4),A0 ADD.L A0,D0 MOVE.L D0,-(SP) JSR lbC006192(PC) ADDQ.W #4,SP lbC004964 TST.W D5 BEQ.S lbC00498E ; MOVE.W -4(A5),D0 move.w Voice3-WT(A4),D0 EXT.L D0 ASL.L #4,D0 LEA lbL00A5BE-WT(A4),A0 MOVE.W D5,0(A0,D0.L) ; MOVE.W -4(A5),D0 move.w Voice3-WT(A4),D0 EXT.L D0 ASL.L #4,D0 LEA lbL00A5B6-WT(A4),A0 ADD.L A0,D0 MOVE.L D0,-(SP) JSR lbC0061F4(PC) ADDQ.W #4,SP lbC00498E TST.W D6 BEQ.S lbC0049B8 ; MOVE.W -6(A5),D0 move.w Voice4-WT(A4),D0 EXT.L D0 ASL.L #4,D0 LEA lbL00A5BE-WT(A4),A0 MOVE.W D6,0(A0,D0.L) ; MOVE.W -6(A5),D0 move.w Voice4-WT(A4),D0 EXT.L D0 ASL.L #4,D0 LEA lbL00A5B6-WT(A4),A0 ADD.L A0,D0 MOVE.L D0,-(SP) JSR lbC006256(PC) ADDQ.W #4,SP lbC0049B8 rts ; BTST #0,lbB00A625-WT(A4) ; BNE.S lbC0049C4 ; JSR lbC00A1FE-WT(A4) ; wait 2 frames ;lbC0049C4 JSR lbC00A1FE-WT(A4) ; TST.W lbW00A626-WT(A4) ; BEQ.S lbC0049D2 ; JSR lbC00A1FE-WT(A4) Play_3 lbC0049D2 ADDI.L #10,lbL00BC7E-WT(A4) ADDQ.W #1,lbW00BC1A-WT(A4) CMPI.W #$40,lbW00BC1A-WT(A4) BNE.S lbC004A4E CLR.W lbW00BC1A-WT(A4) ; TST.W lbW00BBD8-WT(A4) ; BEQ.S lbC004A0C ; MOVE.W lbW00BBD8-WT(A4),D0 ; ADD.W #9,D0 ; MULS.W #$280,D0 ; ADD.L lbL00BC7A-WT(A4),D0 ; ADD.L #$22,D0 ; MOVE.L D0,lbL00BC7E-WT(A4) ; BRA.S lbC004A4E lbC004A0C ADDQ.W #1,lbW00BC1C-WT(A4) MOVEA.L lbL00BC7A-WT(A4),A0 MOVE.B (A0),D0 EXT.W D0 subq.w #1,D0 CMP.W lbW00BC1C-WT(A4),D0 BNE.S lbC004A22 CLR.W lbW00BC1C-WT(A4) bsr.w SongEnd lbC004A22 MOVE.W lbW00BC1C-WT(A4),D0 EXT.L D0 MOVEA.L D0,A0 ADDA.L lbL00BC7A-WT(A4),A0 MOVE.B 2(A0),D0 EXT.W D0 EXT.L D0 MOVE.L #$280,D1 JSR lbC009ECE(PC) ADD.L lbL00BC7A-WT(A4),D0 ADD.L #$22,D0 MOVE.L D0,lbL00BC7E-WT(A4) lbC004A4E ; BSR.S lbC004A5C ; wait 2 frames ; BRA.L lbC0048D6 rts ; MOVEM.L (SP)+,D4-D6 ; UNLK A5 ; RTS ;lbC004A5C LINK.W A5,#0 ; JSR lbC00A1FE-WT(A4) ; JSR lbC00A1FE-WT(A4) ; UNLK A5 ; RTS ;lbC004A6C LINK.W A5,#0 ; load song ; TST.W lbW00A622-WT(A4) ; BNE.S lbC004AAE ; MOVE.W 8(A5),D0 ; CMP.W lbB00A624-WT(A4),D0 ; BEQ.S lbC004AAE ; MOVE.W 8(A5),D0 ; ADD.W #$30,D0 ; MOVE.B D0,lbB00A62D-WT(A4) ; PEA $1E22 ; MOVE.L lbL00BC7A-WT(A4),-(SP) ; CLR.L -(SP) ; PEA sndm.MSG-WT(A4) ; JSR lbC00A1B6-WT(A4) ; LEA $10(SP),SP ; MOVEA.L lbL00BC7A-WT(A4),A0 ; song ptr ; SUBQ.B #1,(A0) ; MOVE.W 8(A5),lbB00A624-WT(A4) ;lbC004AAE UNLK A5 ; RTS Init ;lbC004AB2 LINK.W A5,#0 ; init song ; TST.W lbW00A622-WT(A4) ; BNE.S lbC004AEC CLR.W lbW00BC1A-WT(A4) CLR.W lbW00BC1C-WT(A4) MOVEA.L lbL00BC7A-WT(A4),A0 lea Length(PC),A1 move.b (A0),7(A1) MOVE.B 2(A0),D0 EXT.W D0 EXT.L D0 MOVE.L #$280,D1 JSR lbC009ECE(PC) ADD.L lbL00BC7A-WT(A4),D0 ADD.L #$22,D0 MOVE.L D0,lbL00BC7E-WT(A4) ; CLR.W lbW00BBD8-WT(A4) ;lbC004AEC UNLK A5 RTS Audio lbC005EE0 MOVEM.L D0-D7/A0-A7,-(SP) ; LEA lbL00608A(PC),A0 ; MOVEA.L (A0),A4 lea WT(PC),A4 MOVE.W $DFF01E,D0 BTST #7,D0 BEQ.S lbC005F58 MOVEA.L lbL00BC86-WT(A4),A1 MOVE.L A1,D0 CMP.L #0,D0 BEQ.S lbC005F34 MOVEA.L A1,A0 MOVEA.L 12(A1),A1 MOVE.L A1,D0 LEA lbL00BC86-WT(A4),A2 MOVE.L D0,(A2) BEQ.S lbC005F34 MOVE.L (A1),$DFF0A0 MOVE.L 4(A1),D2 ASR.L #1,D2 MOVE.W D2,$DFF0A4 MOVEM.L (SP)+,D0-D7/A0-A7 MOVE.W #$80,$DFF09C ; RTE rts lbC005F34 MOVE.W #$80,$DFF09A MOVE.W #1,$DFF096 MOVE.W #$80,$DFF09C ; MOVE.W #1,lbW00AE44-WT(A4) MOVEM.L (SP)+,D0-D7/A0-A7 ; RTE rts lbC005F58 BTST #8,D0 BEQ.S lbC005FC0 MOVEA.L lbL00BC8A-WT(A4),A1 MOVE.L A1,D0 CMP.L #0,D0 BEQ.S lbC005F9C MOVEA.L A1,A0 MOVEA.L 12(A1),A1 MOVE.L A1,D0 LEA lbL00BC8A-WT(A4),A2 MOVE.L D0,(A2) BEQ.S lbC005F9C MOVE.L (A1),$DFF0B0 MOVE.L 4(A1),D2 ASR.L #1,D2 MOVE.W D2,$DFF0B4 MOVEM.L (SP)+,D0-D7/A0-A7 MOVE.W #$100,$DFF09C ; RTE rts lbC005F9C MOVE.W #$100,$DFF09A MOVE.W #2,$DFF096 MOVE.W #$100,$DFF09C ; MOVE.W #1,lbW00AE46-WT(A4) MOVEM.L (SP)+,D0-D7/A0-A7 ; RTE rts lbC005FC0 BTST #9,D0 BEQ.S lbC006028 MOVEA.L lbL00BC8E-WT(A4),A1 MOVE.L A1,D0 CMP.L #0,D0 BEQ.S lbC006004 MOVEA.L A1,A0 MOVEA.L 12(A1),A1 MOVE.L A1,D0 LEA lbL00BC8E-WT(A4),A2 MOVE.L D0,(A2) BEQ.S lbC006004 MOVE.L (A1),$DFF0C0 MOVE.L 4(A1),D2 ASR.L #1,D2 MOVE.W D2,$DFF0C4 MOVEM.L (SP)+,D0-D7/A0-A7 MOVE.W #$200,$DFF09C ; RTE rts lbC006004 MOVE.W #$200,$DFF09A MOVE.W #4,$DFF096 MOVE.W #$200,$DFF09C ; MOVE.W #1,lbW00AE48-WT(A4) MOVEM.L (SP)+,D0-D7/A0-A7 ; RTE rts lbC006028 MOVEA.L lbL00BC92-WT(A4),A1 MOVE.L A1,D0 CMP.L #0,D0 BEQ.S lbC006066 MOVEA.L A1,A0 MOVEA.L 12(A1),A1 MOVE.L A1,D0 LEA lbL00BC92-WT(A4),A2 MOVE.L D0,(A2) BEQ.S lbC006066 MOVE.L (A1),$DFF0D0 MOVE.L 4(A1),D2 ASR.L #1,D2 MOVE.W D2,$DFF0D4 MOVEM.L (SP)+,D0-D7/A0-A7 MOVE.W #$400,$DFF09C ; RTE rts lbC006066 MOVE.W #$400,$DFF09A MOVE.W #8,$DFF096 MOVE.W #$400,$DFF09C ; MOVE.W #1,lbW00AE4A-WT(A4) MOVEM.L (SP)+,D0-D7/A0-A7 ; RTE rts ;lbL00608A dc.l 0 ;lbC00608E MOVEM.L D0-D7/A0-A7,-(SP) ; MOVE.L $70,D0 ; LEA lbL005EDC(PC),A1 ; MOVE.L D0,(A1) ; LEA lbC005EE0(PC),A0 ; MOVE.L A0,$70 ; LEA lbL00608A(PC),A0 ; MOVE.L A4,(A0) ; MOVEM.L (SP)+,D0-D7/A0-A7 ; RTS lbC0060D0 MOVE.W #$100,$DFF09A MOVE.W #2,$DFF096 MOVE.W #$100,$DFF09C ; MOVE.W #1,lbW00AE46-WT(A4) RTS lbC0060F0 MOVE.W #$200,$DFF09A MOVE.W #4,$DFF096 MOVE.W #$200,$DFF09C ; MOVE.W #1,lbW00AE48-WT(A4) RTS lbC006110 MOVE.W #$400,$DFF09A MOVE.W #8,$DFF096 MOVE.W #$400,$DFF09C ; MOVE.W #1,lbW00AE4A-WT(A4) RTS lbC006192 LINK.W A5,#0 MOVEM.L D0/A1,-(SP) ; MOVE.W #0,lbW00AE46-WT(A4) MOVE.L 8(A5),lbL00BC8A-WT(A4) MOVEA.L 8(A5),A1 MOVE.W #$100,$DFF09C MOVE.W #2,$DFF096 MOVE.W #$8100,$DFF09A MOVE.L 4(A1),D0 ASR.L #1,D0 MOVE.L (A1),$DFF0B0 MOVE.W D0,$DFF0B4 MOVE.W 8(A1),$DFF0B6 MOVE.W 10(A1),$DFF0B8 MOVE.W #$8002,$DFF096 MOVEM.L (SP)+,D0/A1 UNLK A5 RTS lbC0061F4 LINK.W A5,#0 MOVEM.L D0/A1,-(SP) ; MOVE.W #0,lbW00AE48-WT(A4) MOVE.L 8(A5),lbL00BC8E-WT(A4) MOVEA.L 8(A5),A1 MOVE.W #$200,$DFF09C MOVE.W #4,$DFF096 MOVE.W #$8200,$DFF09A MOVE.L 4(A1),D0 ASR.L #1,D0 MOVE.L (A1),$DFF0C0 MOVE.W D0,$DFF0C4 MOVE.W 8(A1),$DFF0C6 MOVE.W 10(A1),$DFF0C8 MOVE.W #$8004,$DFF096 MOVEM.L (SP)+,D0/A1 UNLK A5 RTS lbC006256 LINK.W A5,#0 MOVEM.L D0/A1,-(SP) ; MOVE.W #0,lbW00AE4A-WT(A4) MOVE.L 8(A5),lbL00BC92-WT(A4) MOVEA.L 8(A5),A1 MOVE.W #$400,$DFF09C MOVE.W #8,$DFF096 MOVE.W #$8400,$DFF09A MOVE.L 4(A1),D0 ASR.L #1,D0 MOVE.L (A1),$DFF0D0 MOVE.W D0,$DFF0D4 MOVE.W 8(A1),$DFF0D6 MOVE.W 10(A1),$DFF0D8 MOVE.W #$8008,$DFF096 MOVEM.L (SP)+,D0/A1 UNLK A5 RTS lbC009ECE MOVEM.L D1-D3,-(SP) MOVE.W D1,D2 MULU.W D0,D2 MOVE.L D1,D3 SWAP D3 MULU.W D0,D3 SWAP D3 CLR.W D3 ADD.L D3,D2 SWAP D0 MULU.W D1,D0 SWAP D0 CLR.W D0 ADD.L D2,D0 MOVEM.L (SP)+,D1-D3 RTS ;lbC009F8A JMP lbC009F8E(PC) ;lbC009F8E MOVEM.L 4(SP),D0/D1 ; MOVEA.L lbL00B56A-WT(A4),A6 ; JMP -$C6(A6) ;lbC009F9C LINK.W A5,#-$20 ; MOVEM.L A2/A3,-(SP) ; MOVE.L $14(A5),D0 ; ADDQ.L #3,D0 ; AND.L #$FFFFFFFC,D0 ; MOVE.L D0,$14(A5) ; LEA -$20(A5),A0 ; LEA lbL00B5A8-WT(A4),A1 ; MOVEQ #7,D0 ;lbC009FBE MOVE.L (A1)+,(A0)+ ; DBRA D0,lbC009FBE ; MOVE.L $14(A5),-4(A5) ; PEA -$20(A5) ; JSR lbC00A072(PC) ; ADDQ.W #4,SP ; MOVEA.L D0,A3 ; TST.L D0 ; BNE.S lbC009FE4 ; MOVEQ #0,D0 ;lbC009FDC MOVEM.L (SP)+,A2/A3 ; UNLK A5 ; RTS ;lbC009FE4 MOVEA.L $10(A3),A2 ; MOVE.L $18(A3),$3A(A2) ; MOVE.L $3A(A2),D0 ; ADD.L $14(A5),D0 ; MOVE.L D0,$3E(A2) ; MOVE.L D0,$36(A2) ; MOVE.B #1,8(A2) ; MOVE.B 15(A5),9(A2) ; MOVE.L 8(A5),10(A2) ; PEA $4A(A2) ; JSR lbC00A0BA(PC) ; ADDQ.W #4,SP ; MOVE.L A3,-(SP) ; PEA $4A(A2) ; JSR lbC00A04C(PC) ; ADDQ.W #8,SP ; CLR.L -(SP) ; MOVE.L $10(A5),-(SP) ; MOVE.L A2,-(SP) ; JSR lbC00A05A(PC) ; LEA 12(SP),SP ; MOVE.L A2,D0 ; BRA.S lbC009FDC ;lbC00A04C MOVEM.L 4(SP),A0/A1 ; MOVEA.L lbL00B56A-WT(A4),A6 ; JMP -$F0(A6) ;lbC00A05A MOVEM.L A2/A3,-(SP) ; MOVEM.L 12(SP),A1-A3 ; MOVEA.L lbL00B56A-WT(A4),A6 ; JSR -$11A(A6) ; MOVEM.L (SP)+,A2/A3 ; RTS ;lbC00A072 MOVEA.L 4(SP),A0 ; MOVEA.L lbL00B56A-WT(A4),A6 ; JMP -$DE(A6) ;lbC00A07E JMP lbC00A082(PC) ;lbC00A082 MOVEA.L 4(SP),A1 ; MOVEA.L lbL00B56A-WT(A4),A6 ; JMP -$126(A6) ;lbC00A09A JMP lbC00A09E(PC) ;lbC00A09E MOVEA.L 4(SP),A1 ; MOVE.L 8(SP),D0 ; MOVEA.L lbL00B56A-WT(A4),A6 ; JMP -$D2(A6) ;lbC00A0BA MOVEA.L 4(SP),A0 ; MOVE.L A0,(A0) ; ADDQ.L #4,(A0) ; CLR.L 4(A0) ; MOVE.L A0,8(A0) ; RTS ;lbC00A0F4 MOVEA.L 4(SP),A1 ; MOVE.L 8(SP),D0 ; MOVEA.L lbL00B56A-WT(A4),A6 ; JMP -$12C(A6) ;lbC00A156 MOVEA.L lbL00BC36-WT(A4),A6 ; JMP -$10E(A6) ; WaitTOF ;lbC00A15E MOVEA.L lbL00BC36-WT(A4),A6 ; JMP -$180(A6) ; VBeamPos ;lbC00A1B6 JMP lbC0090D0 ;lbC00A1FE JMP lbC00A156 ;lbC00A1E0 JMP lbC009F8A ;lbC00A1EC JMP lbC00A09A ;lbC00A204 JMP lbC00A15E WT lbL00A4F2 dc.l 0 dc.l 0 dc.l 0 dc.l 0 ;sndi.MSG dc.b 'snd/i' ;lbB00A5A7 dc.b $2E ; dc.b 0 ; dc.b 0 ;lbW00A5AA dc.w 0 ; dc.w 2 ; dc.w 3 ; dc.w 4 ; dc.w 6 ; dc.w 7 lbL00A5B6 dc.l Sample1 lbL00A5BA dc.l $1FAC lbL00A5BE dc.l $12 dc.l lbL00A4F2 dc.l Sample2 dc.l $1316 dc.l $23 dc.l lbL00A4F2 dc.l Sample3 dc.l $1478 dc.l $1B dc.l lbL00A4F2 dc.l Sample4 dc.l $A0C dc.l $1B dc.l lbL00A4F2 dc.l Sample5 dc.l $7D0 dc.l $1B dc.l lbL00A4F2 dc.l Sample6 dc.l $19C8 dc.l $12 dc.l lbL00A4F2 ;lbW00A616 dc.w 0 ;lbW00A618 dc.b 0 ;lbB00A619 dc.b 1 ;lbL00A61A dc.l 0 ;lbL00A61E dc.l MusTask.MSG ;lbW00A622 dc.w 0 ;lbB00A624 dc.b 0 ;lbB00A625 dc.b $FF ;lbW00A626 dc.w $37 ;sndm.MSG dc.b 'snd/m' ;lbB00A62D dc.b $2E ;lbW00AE46 dc.w 1 ;lbW00AE48 dc.w 1 ;lbW00AE4A dc.w 1 ;lbL00B5A8 dc.l 0 ; dc.l 0 ; dc.l 0 ; dc.l 2 ; dc.l $10001 ; dc.l $5C ; dc.l $10000 ; dc.l 0 lbW00BC1A ds.w 1 lbW00BC1C ds.w 1 lbL00BC7A ds.l 1 lbL00BC7E ds.l 1 lbL00BC86 ds.l 1 lbL00BC8A ds.l 1 lbL00BC8E ds.l 1 lbL00BC92 ds.l 1 ;lbW00BBD8 ds.w 1 ;lbL00B56A dc.l 0 ; exec base ;lbL00BC36 ds.l 1 ; graphics base RegStore ds.b 6 Voice2 dc.w 0 Voice3 dc.w 0 Voice4 dc.w 0 Counter dc.w 0 Song1 incbin ram:m0 Song2 incbin ram:m1 Song3 incbin ram:m2 Song4 incbin ram:m4 Song5 incbin ram:m6 Song6 incbin ram:m8 Song7 incbin ram:m9 Sample1 incbin ram:i1 Sample2 incbin ram:i2 Sample3 incbin ram:i3 Sample4 incbin ram:i4 Sample5 incbin ram:i5 Sample6 incbin ram:i6 BS_End