 Subject: Vectrex demo program: music.asm
From: btomlin@crl.com (Bruce Tomlin)
Date: 4 Aug 1996 19:29:33 -0700
Message-ID: <4u3mad$3jc@crl5.crl.com>

Here's something I just wrote now that I have a decent development setup
(good assembler, good documentation, lots of 2764 chips, socketed Blitz
board, spare Vextrex next to computer).  It just plays all of the music
data in the ROM.

                INCLUDE VECTREX.INC
                LIST    ON

                FCC     /g GCE 2001/
                FCB     $80

                FDB     $FF8F

                FDB     $F848
                FDB     $20D0
                FCC     /MUSIC TEST/
                FCB     $80

                FCB     $00


                LDD     #$F160          Set default text height & width
                STD     Vec_Text_HW

Start           LDX     #Music_Table

Loop_Outer      LDD     ,X++            Check for end of list
                BEQ     Start

                INC     Vec_Music_Flag  Get ready to face the music

                PSHS    X               Save text pointer on stack

Loop_Inner      JSR     DP_to_D0

                LDU     ,S              Get text pointer
                LDD     #$27CF          Get Y,X coordinate
                JSR     Print_Str_d     Print the string

                PSHS    U               Save end of string

                LDU     2,S             Get text pointer back
                LDU     -2,U            Get music pointer

                JSR     DP_to_C8

                JSR     Init_Music_chk  Initialize the music
                JSR     Wait_Recal      Wait for the next frame
                JSR     Do_Sound        Play the sound

                PULS    U               Get back end of string

                TST     Vec_Music_Flag  Loop if music is still playing
                BNE     Loop_Inner

                LEAS    2,S             Throw away the text pointer
                TFR     U,X             U-reg contains next text pointer

                LDD     #$1000          Delay a moment between music
Delay_Loop      SUBD    #1
                BNE     Delay_Loop

                BRA     Loop_Outer      Go play the next song


Music_Table

*       FD0D = power-on music and music for Crazy Coaster and Narrow Escape
                FDB     $FD0D
                FCC     /FD0D/
                FCB     $80

*       FD1D = music for Berzerk?
                FDB     $FD1D
                FCC     /FD1D/
                FCB     $80

*       FD81 = music

                FDB     $FD81
                FCC     /FD81/
                FCB     $80

*       FDD3 = music for Scramble

                FDB     $FDD3
                FCC     /FDD3/
                FCB     $80

*       FE38 = music for Solar Quest

                FDB     $FE38
                FCC     /FE38/
                FCB     $80

*       FE76 = music

                FDB     $FE76
                FCC     /FE76/
                FCB     $80

*       FEC6 = music

                FDB     $FEC6
                FCC     /FEC6/
                FCB     $80

*       FEF8 = music for Melody Master

                FDB     $FEF8
                FCC     /FEF8/
                FCB     $80

*       FF26 = music

                FDB     $FF26
                FCC     /FF26/
                FCB     $80

*       FF44 = music

                FDB     $FF44
                FCC     /FF44/
                FCB     $80

*       FF62 = music

                FDB     $FF62
                FCC     /FF62/
                FCB     $80

*       FF7A = music

                FDB     $FF7A
                FCC     /FF7A/
                FCB     $80

*       FF8F = music

                FDB     $FF8F
                FCC     /FF8F/
                FCB     $80

                FDB     0

                END

