***************************************************** **** "Dragon's Lair" demo music - 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 DL_Start PLAYERHEADER PlayerTagArray dc.b "$VER: Dragon's Lair demo music - 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_StartInt,StartInt dc.l DTP_StopInt,StopInt dc.l DTP_InitPlayer,InitPlayer dc.l DTP_EndPlayer,EndPlayer dc.l DTP_InitSound,InitSound dc.l DTP_EndSound,EndSound dc.l EP_Get_ModuleInfo,Get_ModuleInfo dc.l TAG_DONE PlayerName dc.b "CustomPlay",0 Text dc.b 10 dc.b " Visionary Design Technologies",10 dc.b " presents",10 dc.b " Don Bluth's Dragon's Lair",10 dc.b " Available immediately from",10 dc.b " ReadySoft Incorporated",10 dc.b " P.O. Box 1222",10 dc.b " Lewiston, NY, 14092",10 dc.b " (416) 731-4175",10 dc.b " Watch for: Cosmic Bouncer, Rock Challenge",10 dc.b " and Scary Mutant Space Aliens from Mars",10 dc.b " This DEMO requires 1Mb for VIDEO,",10 dc.b " 1.5Mb for VIDEO and AUDIO!",10 dc.b " Actual GAME requires 1Mb or A1000 with 512K.",0 even EagleBase dc.l 0 *************************************************************************** ***************************** EP_Get_ModuleInfo *************************** *************************************************************************** Get_ModuleInfo lea InfoBuffer(PC),A0 rts InfoBuffer dc.l MI_SpecialInfo,Text dc.l MI_LoadSize,DL_End-DL_Start 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_InitSound ******************************* *************************************************************************** InitSound bra.w Init *************************************************************************** ***************************** DTP_EndSound ******************************** *************************************************************************** EndSound 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 *************************************************************************** ***************************** DTP_StartInt ******************************** *************************************************************************** StartInt movem.l D0/A6,-(A7) lea InterruptStruct(PC),A1 moveq #INTB_AUD0,D0 move.l 4.W,A6 ; baza biblioteki exec do A6 jsr _LVOSetIntVector(A6) move.l D0,Audio0 movem.l (A7)+,D0/A6 move.w #$8080,$DFF09A move.w #$8003,$DFF096 rts InterruptStruct dc.l 0 dc.l 0 dc.b NT_INTERRUPT dc.b 5 ; priority dc.l Name ; ID string dc.l 0 dc.l Interrupt Name dc.b "Dragon's Lair demo Aud0 Interrupt",0,0 even Audio0 dc.l 0 *************************************************************************** ***************************** DTP_StopInt ********************************* *************************************************************************** StopInt lea $DFF000,A0 move.w #3,$96(A0) move.w #$80,$9A(A0) move.w #$80,$9C(A0) moveq #INTB_AUD0,D0 move.l Audio0(PC),A1 move.l A6,-(A7) move.l 4.W,A6 jsr _LVOSetIntVector(a6) move.l (A7)+,A6 rts *************************************************************************** ***************************** DTP_Intterrupt ****************************** *************************************************************************** Interrupt movem.l D1-A6,-(SP) move.w #$80,$DFF09A move.w #$80,$DFF09C bsr.w Play move.w #$8080,$DFF09A 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 *************************************************************************** *************************************************************************** *************************************************************************** ; Music from "Dragon's Lair" demo (c) 1988 by ReadySoft ;lbC000252 MOVE.L lbL000D42(PC),D0 ; BEQ.S lbC0002C0 ; LEA lbL000D4A,A0 ; MOVE.L D0,$DFF0A0 ; MOVE.L D0,$DFF0B0 ; ADD.L #$10000,D0 ; MOVE.L D0,(A0) ; MOVE.L lbL000D46(PC),D0 ; SUB.L #$10000,D0 ; LEA lbL000D4E,A0 ; MOVE.L D0,(A0) ; MOVEA.L #$DFF000,A0 ; MOVE.W #$8000,$A4(A0) ; MOVE.W #$120,$A6(A0) ; MOVE.W #$40,$A8(A0) ; MOVE.W #$8000,$B4(A0) ; MOVE.W #$120,$B6(A0) ; MOVE.W #$40,$B8(A0) ; MOVE.W #$80,$9C(A0) ; MOVE.W #$8080,$9A(A0) ; MOVE.W #$8203,$96(A0) ;lbC0002C0 ;lbC00070E MOVEM.L D0/D1/A0,-(SP) ; MOVE.L lbL000D4E(PC),D0 ; BNE.S lbC000726 ; SUBQ.W #1,lbW000D56 ; BNE.S lbC00076C ; BSR.L lbC000A68 ; BRA.S lbC00076C ;lbC000726 MOVE.L #$10000,D1 ; CMP.L D1,D0 ; BGE.S lbC000732 ; MOVE.L D0,D1 ;lbC000732 MOVE.L lbL000D4A(PC),D0 ; MOVE.L D0,$DFF0A0 ; MOVE.L D0,$DFF0B0 ; ADD.L D1,D0 ; MOVE.L D0,lbL000D4A ; MOVE.L lbL000D4E(PC),D0 ; SUB.L D1,D0 ; MOVE.L D0,lbL000D4E ; LSR.L #1,D1 ; MOVE.W D1,$DFF0A4 ; MOVE.W D1,$DFF0B4 ; MOVE.W #2,lbW000D56 ;lbC00076C MOVEM.L (SP)+,D0/D1/A0 ; MOVE.W #$80,$DFF09C ; MOVE.L lbL000D52(PC),-(SP) ; RTS ;lbC000A68 MOVEA.L #$DFF000,A0 ; MOVE.W #15,$96(A0) ; MOVE.W #$80,$9A(A0) ; MOVE.W #$80,$9C(A0) ; CLR.L $A4(A0) ; CLR.W $A8(A0) ; CLR.L $B4(A0) ; CLR.W $B8(A0) ; RTS ;lbL000D42 dc.l 0 ;lbL000D46 dc.l 0 ;lbL000D4A dc.l 0 ;lbL000D4E dc.l 0 ;lbL000D52 dc.l 0 ;lbW000D56 dc.w 0 ;lbL000D58 dc.l 0 Init lea $DFF000,A6 move.w #$120,D0 move.w D0,$A6(A6) move.w D0,$B6(A6) lea Empty(PC),A0 move.l A0,SMP_Ptr move.l A0,$A0(A6) move.l A0,$B0(A6) move.w #$40,$A8(A6) move.w #$40,$B8(A6) move.w #$A00,$A4(A6) move.w #$A00,$B4(A6) rts Play lea $DFF000,A6 move.l SMP_Ptr(PC),A0 lea 5120(A0),A0 cmp.l #'WTWT',(A0) bne.b NoRep lea Empty(PC),A0 bsr.w SongEnd NoRep move.l A0,SMP_Ptr move.w #$A00,$A4(A6) move.w #$A00,$B4(A6) move.l A0,$A0(A6) move.l A0,$B0(A6) rts SMP_Ptr dc.l 0 Empty ds.b 792 incbin ram:DLdemo.CSD dc.l 'WTWT' DL_End