home *** CD-ROM | disk | FTP | other *** search
Text File | 1978-08-04 | 51.5 KB | 2,860 lines |
-
-
-
-
- ; DRIVER AND MUSIC REMAIN COPYRIGHT D.LOWE
-
- ; KINGS QUEST VI..Island Of Wonder
- ;
-
-
- ;music list
-
-
- ;1] beach
- ;2] dwarves walk on
- ;3] garden music
- ;4] snapdragons dance
- ;5] chess fanfare at gates
- ;6] chess queens tune
- ;7] bookworm tune
- ;8] nightingale
- ;9] alexanders flute
- ;10] dragged to sea..drown tune
- ;11] snap dragons snapping
-
-
- ;FX LIST
-
- ; 1] clunk1
- ; 2] clunk2
- ; 3] score1
- ; 4] score2
- ; 5] score3
- ; 6] score4
- ; 7] score5
- ; 8] magic_map
- ; 9] danger ;fx number 1
-
-
-
-
-
-
- ; .....fade only affects music in this version
-
- ; JEREMY
- ; devpac source code file... no macros.
- ; Its commented wherever needed
- ; The samples are incbin at the end,you will
- ; need to change the directory to your own.
- ; This source files contains a devpac pseudo op
- ; called set. it allows redefining of values
- ; you may need to change this to something else if
- ; using a different assembler.
-
- ; It must be assembled with SYMBOLS CASE independent.
-
- ; dont hesitate to ring with any problems
-
-
-
- ; DAVE LOWE.....0723 870648
-
-
-
- ; **************************
-
- section issA,code_c ;must be in low memory for dma access
- ;DEVPAC PSEUDO OP ..CAN BE DELETED
-
-
- ;*****************************************
-
-
- select_tunes equ 0 ;for conditional assembly whilst testing
- ; zero to step tunes on mouse button
- ; can be deleted..not essential
-
- ; ALL EQUs
-
- a00 equ 508*2
- bb00 equ 480*2
- b00 equ 453*2
-
- c01 equ 428*2
- db01 equ 404*2
- d01 equ 381*2
- eb01 equ 360*2
- e01 equ 339*2
- f01 equ 320*2
- gb01 equ 302*2
- g01 equ 285*2
- ab01 equ 269*2
- a01 equ 508
- bb01 equ 480
- b01 equ 453
-
- c02 equ 428
- db02 equ 404
- d02 equ 381
- eb02 equ 360
- e02 equ 339
- f02 equ 320
- gb02 equ 302
- g02 equ 285
- ab02 equ 269
- a02 equ 254
- bb02 equ 240
- b02 equ 226
-
- c03 equ 214
- db03 equ 202
- d03 equ 190
- eb03 equ 180
- e03 equ 170
- f03 equ 160
- gb03 equ 151
- g03 equ 143
- ab03 equ 135
- a03 equ 127
-
- bb03 equ 480*2
- b03 equ 453*2
-
- c04 equ 428*2
- db04 equ 404*2
- d04 equ 381*2
- eb04 equ 360*2
- e04 equ 339*2
- f04 equ 320*2
- gb04 equ 302*2
- g04 equ 285*2
- ab04 equ 269*2
- a04 equ 508
- bb04 equ 480
- b04 equ 453
-
- c05 equ 428
- db05 equ 404
- d05 equ 381
- eb05 equ 360
- e05 equ 339
- f05 equ 320
- gb05 equ 302
- g05 equ 285
- ab05 equ 269
- a05 equ 254
- bb05 equ 240
- b05 equ 226
-
- c06 equ 214
- db06 equ 202
- d06 equ 190
- eb06 equ 180
- e06 equ 170
- f06 equ 160
- gb06 equ 151
- g06 equ 143
- ab06 equ 135
- a06 equ 127
- bb06 equ 480*2
- b06 equ 453*2
-
- c07 equ 428*2
- db07 equ 404*2
- d07 equ 381*2
- eb07 equ 360*2
- e07 equ 339*2
- f07 equ 320*2
- gb07 equ 302*2
- g07 equ 285*2
- ab07 equ 269*2
- a07 equ 508
- bb07 equ 480
- b07 equ 453
-
- c08 equ 428
- db08 equ 404
- d08 equ 381
- eb08 equ 360
- e08 equ 339
- f08 equ 320
- gb08 equ 302
- g08 equ 285
- ab08 equ 269
- a08 equ 254
- bb08 equ 240
- b08 equ 226
-
-
- v equ 0
-
- no_loop equ 0
- loop equ 0
- chann1reg equ $dff0a0
- chann2reg equ $dff0b0
- chann3reg equ $dff0c0
- chann4reg equ $dff0d0
- dmacon equ $dff096
- int_bf_int equ $dff01e
- int_bf_w equ $dff09a
- vhposr equ $dff006
- in_line equ 0
- new_snd equ 4
- end_song equ 1
- end_patt equ 8
- new_env equ 12
- pbend equ 16
-
-
-
- hi: equ 223
- lo: equ 446
-
- r22 equ 134
- r20 equ 179 ;correctum
- r19 equ 150
- r18 equ 178
- r17 equ 200
- r16: equ 227 ;correctum
- r15: equ 249
- r14 equ 280
- r13: equ 305
- r12: equ 333
- r11: equ 361
- r10: equ 389
- r9: equ 419
- r8: equ 446
- r7: equ 446+112
- r6: equ 446+223
- r5: equ 446+223+112
- r4: equ 446*2
- r3: equ 446*3
- r2: equ 446*4
- r1: equ 446*8
-
-
- filter: equ $bfe001
- filter_on equ 44
- filter_off equ 48
-
- modon equ 20
- pboff equ 24
- modoff equ 28
- rest equ 32
- end_fxp equ 36
- end_fx3 equ 36
- end_fx4 equ 40
- acc equ 52
- repeat equ 56
- down equ 1
- up equ 2
-
- fx equ 0
-
-
-
- ;**************************************************************************
- ;**************************************************************************
-
-
- ; THIS IS THE CONTROL SECTION FOR TESTING AS A STAND ALONE PRG.
-
- ; AND CAN BE DELETED WHEN NOT REQUIRED
-
- move.l #1,song_buffer
- jsr select_new_song ;set up tune..number 1
-
- testloop:
- jsr delay ;wait for scan line at 50hz on pal
-
- jsr driver ;run driver at 50 hz for testing
-
- bra testloop ;loop back
-
-
- ;--------
-
- ;these are all routines used during test/stand alone
- ; assembly
-
- delay:
- tst.w fxtimer
- bne no_test
- clr.l d0
- move.b $bfe001,d0
- btst #6,d0
- bne no_test1
- move.w #10,fxtimer
- bra testfx4
- no_test
- subq #1,fxtimer
- no_test1
- clr.l d0
- move.w vhposr,d0
- andi.w #%1111111100000000,d0
- cmpi.w #%1111111100000000,d0
-
- bne no_test1
- rts
-
- testfx4:
-
- clr.l d0
- move.b $bfe001,d0
- btst #6,d0
- beq testfx4
-
- move.l song_buffer,d0
- addq.l #1,d0
- cmp.l max_songs,d0
- bne nores
- move.l #1,d0
- nores move.l d0,song_buffer
-
-
- ifeq select_tunes
-
- jsr select_new_song ;new song on mouse button
-
-
- endc
-
- move.l fx_last,d0
- move.l d0,fx_kill
-
- jsr kill_loopfx ;use only one fx at a time
- ;for testing
-
- no_k
- move.l fx_no,fx_number
- move.l fx_no,fx_last
- addq.l #1,fx_no
- move.l max_fx,d0
- cmp.l fx_no,d0
- bne noreset
- move.l #1,fx_no
- noreset:
-
-
- ifne select_tunes
-
- jsr set_up_fx
-
- endc
-
- bra no_test
-
- fxtc: dc.w 10
- fx_no: dc.l 1
- fx_last dc.l 0
-
-
- ; END OF CONTROL (DELETABLE) SECTION
-
- ;********************************************************************
- ;********************************************************************
-
- ; MAIN VARIABLES TO BE ACCESSED BY PROGRAMMER DURING RUNTIME
-
-
- fx_number: dc.l 0 ; number of fx required here
-
-
- fx_kill dc.l 0 ; number of fx to kill/used mainly
- ; to kill looping fx
-
-
- song_buffer dc.l 1 ; number of piece of music required here ie.1 to ? ; currently playing beach background..see list
-
- music_disable: dc.w 0 ; 1 = disable music
-
- fx_disable: dc.w 0 ; 1 = disable fx
-
-
- fade: dc.w 0 ; 0 to 64..0 = full volume/64 = off
-
-
- ; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- ; THESE VARIABLES ARE USED INTERNALLY BY THE DRIVER
- fxr1 dc.l 0
- fxr2 dc.l 0
- fxr3 dc.l 0
- fxr4 dc.l 0
- fxc1 dc.l 0
- fxc2 dc.l 0
- fxc3 dc.l 0
- fxc4 dc.l 0
- fx1_flag dc.w 0
- fx2_flag dc.w 0
- fx3_flag dc.w 0
- fx4_flag dc.w 0
- fxtimer dc.w 0
- gen dc.w 0
- int_disable dc.w 0
- altpf dc.w 0
- kill_flag dc.w 0
- mode dc.w 0
- ; *******************************************************
-
- ; CALL THIS SUBROUTINE TO SET UP THE REQIURED FX
- ; on entry it requires the fx number to be in "fx_number"(see above)
-
-
- set_up_fx
- movem.l d5/a2,-(a7) ;save used registers
-
- tst.l fxc4
- bne check3
- use4:
- move.w #%0000000000001000,d5
- lea chann4reg,a2
- jsr end_fx4p
- move.l fx_number,fxr4
- move.l fx_number,fxc4
- move.l #0,fx_number
- bra no_fx
- check3: tst.l fxc3
- bne check2
- use3:
- move.w #%0000000000000100,d5
- lea chann3reg,a2
- jsr end_fx3p
- move.l fx_number,fxr3
- move.l fx_number,fxc3
- move.l #0,fx_number
- bra no_fx
- check2: tst.l fxc2
- bne check1
- use2:
- move.w #%0000000000000010,d5
- lea chann2reg,a2
- jsr end_fx2p
- move.l fx_number,fxr2
- move.l fx_number,fxc2
- move.l #0,fx_number
- bra no_fx
- check1: tst.l fxc1
- bne use3
- use1:
- move.w #%0000000000000001,d5
- lea chann1reg,a2
- jsr end_fx1p
- move.l fx_number,fxr1
- move.l fx_number,fxc1
- move.l #0,fx_number
- no_fx
- movem.l (a7)+,d5/a2 ;restore registers
- rts
-
- ;*************************************************
- ; CALL HERE TO KILL ANY FX...
- ; after putting the number of the fx you want to kill
- ; into fx_kill
-
- kill_loopfx
-
- movem.l d5/a2,-(a7) ;save used registers
- move.l fx_kill,d5
- cmp.l fxc1,d5
- bne k2
- move.w #%0000000000000001,d5
- lea chann1reg,a2
- jsr end_fx1p
- bra error
- k2 cmp.l fxc2,d5
- bne k3
- move.w #%0000000000000010,d5
- lea chann2reg,a2
- jsr end_fx2p
- bra error
- k3 cmp.l fxc3,d5
- bne k4
- move.w #%0000000000000100,d5
- lea chann3reg,a2
- jsr end_fx3p
- bra error
- k4 cmp.l fxc4,d5
- bne error
- move.w #%0000000000001000,d5
- lea chann2reg,a2
- jsr end_fx4p
- error
- clr.l fx_kill
- movem.l (a7)+,d5/a2 ;restore registers
- rts
- ;*************************************************
-
- ; CALL HERE TO KILL ANY SOUNDS LEFT ON CHIP
-
- kill_chip:
- move.w #%0000000000001111,dmacon
- move.l rest_data,chann1reg
- move.l rest_data,chann2reg
- move.l rest_data,chann3reg
- move.l rest_data,chann4reg
- move.w #16,chann1reg+4
- move.w #16,chann2reg+4
- move.w #16,chann3reg+4
- move.w #16,chann4reg+4
- move.w #0,chann1reg+8
- move.w #0,chann2reg+8
- move.w #0,chann3reg+8
- move.w #0,chann4reg+8
- move.w #1,chann1reg+6
- move.w #1,chann2reg+6
- move.w #1,chann3reg+6
- move.w #1,chann4reg+6
- move.l #0,fxr1
- move.l #0,fxr2
- move.l #0,fxr3
- move.l #0,fxr4
- move.w #0,fx1_flag
- move.w #0,fx2_flag
- move.w #0,fx3_flag
- move.w #0,fx4_flag
- move.l #0,fxc1
- move.l #0,fxc2
- move.l #0,fxc3
- move.l #0,fxc4
- rts
- ;****************************************
-
- ; CALL HERE TO SELECT WHICH PIECE OF MUSIC TO PLAY
- ; AFTER PLACING NUMBER (1 to ?) IN "SONG_BUFFER"..see above
- ; a call to this routine will initiliase the driver/kill any sound etc.
- ; make sure this routine has been called before running the interrupt
- ; driven section....see below
-
- select_new_song:
-
- move.w #1,int_disable
- movem.l d0/d1/a0/a1,-(a7) ;save used registers
- move.w music_disable,gen
- move.w #1,music_disable
- jsr kill_chip
- clr.l d0
- move.w #204,d0
- lea gvars,a0
- clloop: clr.w (a0)+
- dbra d0,clloop
- tst.l song_buffer
- beq no_song
- move.l song_buffer,d1
- add.l d1,d1
- add.l d1,d1
- add.l d1,d1
- add.l d1,d1
- LEA SONG_TABLE-16,A1
-
- add.l d1,a1
- MOVE.L (A1)+,WSONG1
- move.l (a1)+,wsong2
- move.l (a1)+,wsong3
- move.l (a1),wsong4
- MOVE.L #pstart,PATTR1
- MOVE.L #pstart,PATTR2
- MOVE.L #pstart,PATTR3
- move.l #pstart,pattr4
- move.l #sstart,songr1
- MOVE.L #sstart,SONGR2
- MOVE.L #sstart,SONGR3
- move.l #sstart,songr4
- no_song
- move.w #1,ch1vars
- move.w #2,ch2vars
- move.w #3,ch3vars
- move.w #4,ch4vars
- move.w #6,ch4fxvars
- move.w #5,ch3fxvars
- move.w #7,ch2fxvars
- move.w #8,ch1fxvars
- move.w gen,music_disable
- clr.w int_disable
- movem.l (a7)+,d0/d1/a0/a1 ;restore registers
- rts
-
- ;**************************************************
-
- ;This is the interrupt routine
-
-
- ; CALL HERE ON A 50hz INTERRUPT DURING RUNTIME
- ; TO PLAY FX AND TUNES
-
- driver:
- tst.w int_disable
- beq process_data
- rts
- process_data
- movem.l d0-d6/a0-a6,-(a7) ;save used registers
-
-
- ch1:
- tst.w fx_disable
- bne test_music1
- tst.l fxr1
- bne ch1j1
- tst.l fxc1
- beq test_music1
- bra ch1j3
- ch1j2 jsr run_dummy1
- jsr run_fx1
- bra ch2
- ch1j1
- jsr set_up1
- ch1j3 tst.w music_disable
- beq ch1j2
- jsr run_fx1
- bra ch2
- test_music1
- tst.w music_disable
- bne ch2
- jsr run_music1
- bra ch2
- ;***********************
-
- ; channel 1 subroutines
-
- run_dummy1
- lea ch1vars,a0
- lea dummy_reg,a2
- move.w #0,d5
- jsr sect1
- rts
-
- set_up1
- move.l fxr1,d0
- add d0,d0
- add d0,d0
- lea fxjump_table-4,A1
- add.l d0,a1
- move.l (a1),currfx1
- clr.l fxr1
- clr.w fxintc1
- rts
-
-
- run_fx1
- lea ch1fxvars,a0
- lea chann1reg,a2
- move.w #%0000000000000001,d5
- move.w #%1000000000000001,d1
-
- move.w #1,mode
- jsr sect1
- rts
-
- run_music1
- lea ch1vars,a0
- lea chann1reg,a2
- move.w #%0000000000000001,d5
- move.w #%1000000000000001,d1
- move.w #0,mode
- jsr sect1
- rts
-
- ; **************************
- ch2
- tst.w fx_disable
- bne test_music2
- tst.l fxr2
- bne ch2j1
- tst.l fxc2
- beq test_music2
- bra ch2j3
- ch2j2 jsr run_dummy2
- jsr run_fx2
- bra ch3
- ch2j1
- jsr set_up2
- ch2j3 tst.w music_disable
- beq ch2j2
- jsr run_fx2
- bra ch3
-
- test_music2
- tst.w music_disable
- bne ch3
- jsr run_music2
- bra ch3
- ;***********************
- ; channel 2 subroutines
- run_dummy2
- lea ch2vars,a0
- lea dummy_reg,a2
- move.w #0,d5
- jsr sect1
- rts
-
- set_up2
- move.l fxr2,d0
- add d0,d0
- add d0,d0
- lea fxjump_table-4,A1
- add.l d0,a1
- move.l (a1),currfx2
- clr.l fxr2
- clr.w fxintc2
- rts
-
-
- run_fx2
- lea ch2fxvars,a0
- lea chann2reg,a2
- move.w #%0000000000000010,d5
- move.w #%1000000000000010,d1
- move.w #1,mode
- jsr sect1
- rts
-
- run_music2
- lea ch2vars,a0
- lea chann2reg,a2
- move.w #%0000000000000010,d5
- move.w #%1000000000000010,d1
- move.w #0,mode
- jsr sect1
- rts
-
- ; **************************
-
- ch3:
- tst.w fx_disable
- bne test_music3
- tst.l fxr3
- bne ch3j1
- tst.l fxc3
- beq test_music3
- bra ch3j3
- ch3j2 jsr run_dummy3
- jsr run_fx3
- bra ch4
- ch3j1
- jsr set_up3
- ch3j3 tst.w music_disable
- beq ch3j2
- jsr run_fx3
- bra ch4
-
- test_music3
- tst.w music_disable
- bne ch4
- jsr run_music3
- bra ch4
-
- ;***********************
-
- ; channel 3 subroutines
-
- run_dummy3
- lea ch3vars,a0
- lea dummy_reg,a2
- move.w #0,d5
- jsr sect1
- rts
-
- set_up3
- move.l fxr3,d0
- add d0,d0
- add d0,d0
- lea fxjump_table-4,A1
- add.l d0,a1
- move.l (a1),currfx3
- clr.l fxr3
- clr.w fxintc3
- rts
-
-
- run_fx3
- lea ch3fxvars,a0
- lea chann3reg,a2
- move.w #%0000000000000100,d5
- move.w #%1000000000000100,d1
- move.w #1,mode
- jsr sect1
- rts
-
- run_music3
- lea ch3vars,a0
- lea chann3reg,a2
- move.w #%0000000000000100,d5
- move.w #%1000000000000100,d1
- move.w #0,mode
- jsr sect1
- rts
-
- ; **************************
-
- ch4:
- tst.w fx_disable
- bne test_music4
- tst.l fxr4
- bne ch4j1
- tst.l fxc4
- beq test_music4
- bra ch4j3
- ch4j2 jsr run_dummy4
- jsr run_fx4
- bra no4
- ch4j1
- jsr set_up4
- ch4j3 tst.w music_disable
- beq ch4j2
- jsr run_fx4
- bra no4
-
- test_music4
- tst.w music_disable
- bne no4
- jsr run_music4
- no4
- movem.l (a7)+,d0-d6/a0-a6 ;restore registers
- rts
-
- ;***********************
-
- ; channel 4 subroutines
-
- run_dummy4
- lea ch4vars,a0
- lea dummy_reg,a2
- move.w #0,d5
- jsr sect1
- rts
-
- set_up4
- move.l fxr4,d0
- add d0,d0
- add d0,d0
- lea fxjump_table-4,A1
- add.l d0,a1
- move.l (a1),currfx4
- clr.l fxr4
- clr.w fxintc4
- rts
-
-
- run_fx4
- lea ch4fxvars,a0
- lea chann4reg,a2
- move.w #%0000000000001000,d5
- move.w #%1000001000001000,d1
- move.w #1,mode
- jsr sect1
- rts
-
- run_music4
- lea ch4vars,a0
- lea chann4reg,a2
- move.w #%0000000000001000,d5
- move.w #%1000001000001000,d1
- move.w #0,mode
- jsr sect1
- rts
- ; **************************
-
- sect1: tst.w (a0)
- bne s1j1
- rts
-
- s1j1: tst.w 2(a0)
- beq sect3
- cmpi.w #1,2(a0)
- beq sect4
-
- cmpi.w #3,4(a0)
- beq part2
-
- mode_switch: subq.w #1,2(a0)
-
- check_effects: clr.w altpf
- move.w 6(a0),d2
- tst.w 8(a0)
- beq check_mod
- tst.w 14(a0)
- beq cont_bend
- subq.w #1,14(a0)
- bra check_mod
- cont_bend: addq.w #1,altpf
- move.w 10(a0),d3
- move.w 12(a0),d4
- cmpi.w #1,8(a0)
- beq pbup
-
- sub.w d3,d2
- cmp.w d2,d4
- bcs check_mod
- bra fbend
-
- pbup: add.w d3,d2
- cmp.w d2,d4
- bcc check_mod
- fbend: move.w d4,d2
- clr.w 8(a0)
- check_mod: tst.w 16(a0)
- beq send_alt_pitch
-
-
- tst.w 58(a0)
- beq st_ok
- subq.w #1,58(a0)
- bra send_alt_pitch
- st_ok:
- tst.w 50(a0)
- beq cont_mod
- subq #1,50(a0)
- bra send_alt_pitch
- cont_mod: move.w 52(a0),50(a0)
- addq #1,altpf
- cmpi #3,16(a0)
- bcc addmod
-
- move.w 56(a0),d3
- sub.w d3,d2
- addq.w #1,16(a0)
- bra send_alt_pitch
- addmod:
-
- move.w 54(a0),d3
- add.w d3,d2
- addq.w #1,16(a0)
- cmpi.w #5,16(a0)
- bne send_alt_pitch
- move.w #1,16(a0)
-
- send_alt_pitch: tst.w altpf
- beq send_env
- move.w d2,6(a0)
- move.w d2,6(a2)
-
- send_env:
-
- do_env_check:
-
- norm_env:
- move.l 18(a0),a1
- cmpi.w #255,(a1)
- beq env_finished
- ;cmpi.w #1,66(a0)
- ;bne no_acc
-
- resu clr.l d0
- move.w (a1)+,d0
- ;sub.w 64(a0),d0
-
- ;test for mode here
- tst.w mode
- bne sete
-
- sub.w fade,d0
- bcc sete
-
-
- move.w #0,d0
-
-
- sete move.w d0,8(a2)
- move.l a1,18(a0)
- rts
-
-
- no_acc:
- ;resu:
- no_off
- ;move.w (a1)+,d0
- sub.w fade,d0
- bcc sete2
- move.w #0,d0
- sete2 move.w d0,8(a2)
- move.w (a1)+,8(a2)
-
- fint: move.l a1,18(a0)
- rts
-
- env_finished:
- subq.l #2,a1
- bra resu
- rts
-
-
-
- one_shot_note: move.w #3,4(a0)
- move.l 38(a0),(a2)
- move.w 42(a0),4(a2)
- move.w d1,dmacon
- bra send_env
-
-
- part2:
- move.l 44(a0),(a2)
- move.w 48(a0),4(a2)
- subq.w #1,2(a0)
- move.w #1,4(a0)
- bra check_effects
-
- sect3:
- move.w #0,66(a0)
-
- move.l 22(a0),a1
- control_ret: move.w (a1)+,d0
- cmpi.w #100,d0
- bls sect5
-
- acc_note:
- move.w d0,6(a0)
- move.w d0,6(a2)
- move.w (a1)+,2(a0)
- subq.w #1,2(a0)
- move.l a1,22(a0)
- move.l 34(a0),18(a0)
- move.w 60(a0),58(a0)
-
-
- tst.w 16(a0)
- beq no_mod_res
- move.w #1,16(a0)
- no_mod_res:
- cmpi.w #0,4(a0)
- beq do_loop
- bra one_shot_note
-
-
- do_loop: move.w d1,dmacon
- bra send_env
-
- do_rest:
- move.w (a1)+,2(a0)
- subq.w #1,2(a0)
- move.l a1,22(a0)
- move.l #rest_env,18(a0)
-
- move.w #0,8(a2)
- bra send_env
-
- sect4:
- cmpi.w #0,4(a0)
- beq noof
- move.w d5,dmacon
- noof: subq.w #1,2(a0)
- bra check_effects
-
- sect5: move.l #jump_table,a3
- move.l (a3,d0),a4
- jmp (a4)
-
- jump_table:
- dc.l in_line_data
- dc.l nsound
- dc.l patt_end
- dc.l get_env
- dc.l check_pbend
- dc.l do_mod
- dc.l bend_off
- dc.l mod_off
- dc.l do_rest
- dc.l end_fx
- dc.l end_fx
- dc.l s_f_on
- dc.l s_f_off
- dc.l set_acc
- dc.l rept
-
- in_line_data:
-
- nop
- rts
-
- rept:
- move.l (a1),a1
- bra control_ret
-
- s_f_on:
- bclr #1,filter
- bra control_ret
- s_f_off:
- bset #1,filter
- bra control_ret
-
- nsound: move.l (a1)+,a3
- cmpi.w #0,(a3)
- bne one_shot_sound
- move.w (a3)+,4(a0)
- move.l (a3)+,(a2)
- move.w (a3),4(a2)
- jmp control_ret
-
- one_shot_sound:
- move.w (a3)+,4(a0)
- move.l (a3)+,38(a0)
- move.l (a3)+,42(a0)
- move.l (a3),46(a0)
- jmp control_ret
-
- patt_end:
-
- move.l 26(a0),a1
- cmpi.l #0,(a1)
- beq song_control
- addq.l #4,26(a0)
- move.l (a1),a1
- jmp control_ret
- get_env:
- move.l (a1)+,a4
- move.l (a4)+,62(a0)
-
- move.l a4,34(a0)
-
- bra control_ret
-
- check_pbend:
- move.l (a1)+,8(a0)
- move.l (a1)+,12(a0)
- bra control_ret
-
- do_mod: move.w #1,16(a0)
- move.l (a1)+,50(a0)
- move.l (a1)+,54(a0)
- move.l (a1)+,58(a0)
- bra control_ret
-
- bend_off: clr.w 8(a0)
- bra control_ret
-
- mod_off: clr.w 16(a0)
- bra control_ret
-
-
- end_fx:
- cmpi.w #6,(a0)
- beq end_fx4p
- cmpi.w #5,(a0)
- beq end_fx3p
- cmpi.w #7,(a0)
- beq end_fx2p
-
- end_fx1p:
- move.w d5,dmacon
- move.w #1,chann1reg+6
- move.w #0,8(a2)
- move.l #0,fxc1
- rts
-
- end_fx2p:
- move.w d5,dmacon
- move.w #1,chann2reg+6
- move.w #0,8(a2)
- move.l #0,fxc2
- rts
-
-
- end_fx3p:
- move.w d5,dmacon
- move.w #1,chann3reg+6
- move.w #0,8(a2)
- move.l #0,fxc3
- rts
-
- end_fx4p:
- move.w d5,dmacon
- move.w #1,chann4reg+6
- move.w #0,8(a2)
- move.l #0,fxc4
- rts
-
- set_acc: move.w #1,66(a0)
- bra control_ret
-
- song_control:
- addq.l #4,a1
- move.l 30(a0),26(a0)
- move.l 26(a0),a1
- addq.l #4,26(a0)
- move.l (a1),a1
- jmp control_ret
-
-
- ;"""""""""""""""""""""""""""""""""""""""""""""""""
- ;DATA HERE
- ;------------
-
-
- ;;; DATA
-
-
- max_songs dc.l 12
-
- song_table:
-
-
- dc.l s1_b,s2_b,s3_b,s4_b ;beach
- dc.l s1_d,s2_d,s3_d,s4_d ;dwarves walk on
- dc.l s1_g,s2_g,s3_g,s4_g ;garden music
- dc.l s1_s,s2_s,s3_s,s4_s ;snapdragons dance
- dc.l s1_f,s2_f,s3_f,s4_f ;chess fanfare at gates
- dc.l s1_q,s2_q,s3_q,s4_q ;chess queens tune
- dc.l s1_w,s2_w,s3_w,s4_w ;bookworm tune
- dc.l s1_n,s2_n,s3_n,s4_n ;nightingale
- dc.l s1_fl,s2_fl,s3_fl,s4_fl ;alexanders flute
- dc.l s1_dr,s2_dr,s3_dr,s4_dr ;dragged to sea..drown tune
- dc.l s1_sn,s2_sn,s3_sn,s4_sn ;snap dragons snapping
-
-
- ;************************************************************
- gvars:
- ch1vars
- dc.w 0
- dc.w 0,0,0,0,0,0,0,0,0,0
- pattr1: dc.l 0
- songr1: dc.l 0
- wsong1: dc.l 0
- dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
- ch2vars
- dc.w 0
- dc.w 0,0,0,0,0,0,0,0,0,0
- pattr2: dc.l 0
- songr2: dc.l 0
- wsong2: dc.l 0
- dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
- ch3vars
- dc.w 0
- dc.w 0,0,0,0,0,0,0,0,0,0
- pattr3: dc.l 0
- songr3: dc.l 0
- wsong3: dc.l 0
- dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
- ch4vars
- dc.w 0
- dc.w 0,0,0,0,0,0,0,0,0,0
- pattr4: dc.l 0
- songr4: dc.l 0
- wsong4: dc.l 0
- dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-
- ch1fxvars
- dc.w 0
- fxintc1:
- dc.w 0,0,0,0,0,0,0,0,0,0
- currfx1:
- dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
- ch2fxvars
- dc.w 0
- fxintc2:
- dc.w 0,0,0,0,0,0,0,0,0,0
- currfx2:
- dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-
- ch3fxvars
- dc.w 0
- fxintc3:
- dc.w 0,0,0,0,0,0,0,0,0,0
- currfx3:
- dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
- ch4fxvars
- dc.w 0
- fxintc4:
- dc.w 0,0,0,0,0,0,0,0,0,0
- currfx4:
- dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- ;************************************************************
-
- dummy_reg dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- ;************************************************************
-
- ; THESE ARE THE FX PATTERNS................
-
- ; The interrupt counter in these patterns is dependent on the
- ; playback speed.The figure is calculated as follows
- ; (length/playback speed) *50
- ; the figure then needs rounding up to give a clear finish
- ; if you have the count longer than needed it will cut
- ; out the music on the relevent channel for longer than
- ; neccessary and make it sound jerky
- ; The fx table is below the patterns
-
-
- ;fight:
- ;dc.w new_env
- ;dc.l fight_env
- ;dc.w new_snd
- ;dc.l fightp
- ;dc.w r8,8 ;r8=8000 playback speed/8=int counter
- ;dc.w end_fxp
-
- ;fight_env: dc.w 0,64,64,64,255
-
- ;*************************
- sined:
- sine_datad:
- dc.w 127,80,50,25,0,-25,-50,-100,-127
- dc.w -127,-100,-50,-35,0,35,50,80,127
- dc.w 127,80,50,25,0,-25,-50,-100,-127
- dc.w -127,-100,-50,-35,0,35,50,80,127
-
-
-
- fxp:
-
- danger:
- dc.w new_env
- dc.l danger_env
- dc.w new_snd
- dc.l sinep
- danger_loop:
- dc.w r16,4,r16,4,r16,4,r16,4
- dc.w repeat
- dc.l danger_loop
- dc.w end_fxp
-
- danger_env: dc.w 0,35,28,25,20,15,10,0,255
-
- score1
- dc.w new_env
- dc.l score_env1
- dc.w new_snd
- dc.l sinep
- dc.w modon,1,1,2,2,1,1
- dc.w 130,50
- dc.w end_fxp
-
-
- score2
- dc.w new_env
- dc.l score_envs
- dc.w new_snd
- dc.l sinep
- dc.w modon,1,1,1,1,1,1
- dc.w a03,5,a02,5
- dc.w new_env
- dc.l score_env2
- dc.w e03,50
- dc.w end_fxp
-
- score3
- dc.w new_env
- dc.l score_envs
- dc.w new_snd
- dc.l sinep
- dc.w modon,1,1,1,1,1,1
- dc.w a03,4,a02,4
- dc.w a03,4,a02,4
- dc.w new_env
- dc.l score_env2
- dc.w e03,50
- dc.w end_fxp
-
- score4
- dc.w new_env
- dc.l score_envs
- dc.w new_snd
- dc.l sinep
- dc.w modon,1,1,1,1,1,1
- dc.w c03,4,d03,4
- dc.w e03,4,f03,4
- dc.w g03,4
- dc.w new_env
- dc.l score_env2
- dc.w a03,50
- dc.w end_fxp
-
- score5
- dc.w new_env
- dc.l score_envs
- dc.w new_snd
- dc.l sinep
- ;dc.w pbend,up,20,a03,1
- dc.w a03,4,g03,4,a03,4,g03,4
- dc.w a03,4,g03,4,a03,4,g03,4
- dc.w a03,4,g03,4,a03,4,g03,4
- dc.w new_env
- dc.l score_env2
- dc.w a03,50
- dc.w end_fxp
-
-
- magic_map:
- dc.w new_env
- dc.l score_env1
- dc.w new_snd
- dc.l aguitp
- dc.w c02,4,d02,4,e02,4,f02,4,g02,4,a02,4,b02,4,c03,4
- dc.w d03,4,e03,4,f03,4,g03,4,a03,10
- dc.w end_fxp
-
-
- clunk1
- dc.w new_env
- dc.l clunk_env
- dc.w new_snd
- dc.l snarep
- dc.w pbend,down,20,50000,1
- dc.w r2,14
- dc.w pboff
- dc.w end_fxp
-
- clunk2
- dc.w new_env
- dc.l clunk_env
- dc.w new_snd
- dc.l snarep
- dc.w pbend,down,2,50000,1
- dc.w r1,14
- dc.w pboff
- dc.w end_fxp
-
-
- score_envs: dc.w 55,50,45,40,35,30,25,20,15,10,0,255
-
- score_env:
- dc.w 64,64,63,62,60,61,60,59,58,57,56,55
- clunk_env:
- score_env1 dc.w 54,53,52,51,50,49,48,47,46,45,44
- score_env2 dc.w 43,42,41,40,39,38,37,36,35,34,33,32,31,30
- dc.w 29,28,27,26,25,24,23,22,21,20,19,18,17,16
- dc.w 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,255
-
- sinep:
- dc.w 1
- dc.l sined
- dc.w 16/2
- dc.l sined
- dc.w 16/2
-
-
-
-
- ;*************************
-
-
- fxjump_table:
- dc.l clunk1
- dc.l clunk2
- dc.l score1
- dc.l score2
- dc.l score3
- dc.l score4
- dc.l score5
- dc.l magic_map
- dc.l danger ;fx number 1
-
-
- max_fx dc.l 10 ;number + 1 for test routines only
- ;______________________________________________________________________
-
-
- sstart: dc.l 0,end_song
-
- pstart: dc.w end_patt
-
-
- ;----------------------------------
-
- ;;;;;;;;;;;;;;;;;;;;; Music Data ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- cr set 24
- q set cr/2
- sq set q/2
- dsq set sq/4
-
- tq1 set 7
- tq2 set 6
- tsq1 set 3
- tsq2 set 4
-
- ssilence:
- dc.l pr
- dc.l 0,end_song
-
-
- ;************************************************
-
- songs:
- ;--------
-
- s1_n:
-
- dc.l click_snd
- dc.l ng_click
-
- dc.l 0,end_song
- s2_n:
-
- dc.l flute_sndq
- dc.l ntune
-
- DC.L 0,end_song
-
- s3_n:
-
- dc.l pr
-
- dc.l 0,end_song
-
- s4_n:
-
- dc.l pr
-
- dc.l 0,end_song
-
-
- ng_click:
- dc.w 4000,2,2000,2,rest,8,4000,1,2000,1,4000,1
- dc.w 4000,1,2000,1,4000,1,rest,6
- dc.w end_patt
-
- ntune:
- dc. rest,cr
- dc.w a03,cr,g03,cr*3,d03,cr,e03,cr*4,rest,cr*3
- dc.w a03,cr,g03,cr*3,e03,cr,d03,cr,g03,cr,e03,cr*4
- dc.w end_patt
-
-
-
- ; flute
-
- s1_fl:
-
-
- dc.l flute_snd
- dc.l flute_tune
- dc.l pri
-
- dc.l 0,end_song
- s2_fl:
-
- dc.l pr
- DC.L 0,end_song
-
-
- s3_fl:
-
- dc.l pr
- DC.L 0,end_song
-
-
- s4_fl:
- dc.l pr
- dc.l 0,end_song
-
-
- flute_tune:
- dc.w modon,1,1,3,3,6,6
- dc.w g03,cr+sq,gb03,5,g03,5,gb03,cr
- dc.w eb03,cr,b02,cr,c03,cr,b02,5,c03,5,b02,cr*3
- dc.w end_patt
-
-
- clickp
- dc.w 1
- dc.l driver
- dc.w 16/2
- dc.l driver
- dc.w 16/2
-
- click_env:
- dc.w 15,10,5,4,3,2,2,1,0,255
-
- click_snd
- dc.w new_env
- dc.l click_env
- dc.w new_snd
- dc.l clickp
- dc.w end_patt
-
-
-
- ;---------
- s1_g:
-
- dc.l aguitar_snd
- dc.l gardenv1
-
-
- dc.l 0,end_song
- s2_g:
-
- dc.l aguitar_snd
- dc.l gardenv2
- DC.L 0,end_song
-
-
- s3_g:
-
- dc.l aguitar_snd
- dc.l gardenv3
-
- dc.l 0,end_song
-
-
- s4_g:
- dc.l flute_sndq
- dc.l gardenv1x
- dc.l 0,end_song
-
-
-
- patterns:
-
- pr:
- dc.w rest,cr*4
- dc.w end_patt
- ;-------------------
-
-
- gardenv1:
- dc.w modon,1,1,2,2,6,6
- dc.w rest,cr*2
- dc.w a02,$0048,a02,$0048,a02,$0048,a02,$0048,ab02,$0018
- dc.w a02,$0018,g02,$0018,f02,$0048,ab02,$0048,ab02,$0018
- dc.w f02,$0030,ab02,$0018,a02,$0018,g02,$0018,f02,$0048
- dc.w g02,$0048,g02,$0018,f02,$0150,a02,$0048,a02,$0048
- dc.w a02,$0048,a02,$0048,ab02,$0018,a02,$0018,g02,$0018
- dc.w f02,$0048,ab02,$0048,ab02,$0018,f02,$0030,ab02,$0018
- dc.w a02,$0018,g02,$0018,f02,$0048,g02,$0048,g02,$0018
- dc.w f02,$0168,a02,$0090,a02,$0090,a02,$0090,a02,$0090
- dc.w a02,$0090,a02,$0090,a02,$0048,a02,cr*6
- dc.w end_patt
-
- gardenv1x:
- dc.w modon,1,1,2,2,6,6
- dc.w rest,cr*2
-
- dc.w a03,$0048,a03,$0048,a03,$0048,a03,$0048,ab03,$0018
- dc.w a03,$0018,g03,$0018,f03,$0048,ab03,$0048,ab03,$0018
- dc.w f03,$0030,ab03,$0018,a03,$0018,g03,$0018,f03,$0048
- dc.w g03,$0048,g03,$0018,f03,$0150,a03,$0048,a03,$0048
- dc.w a03,$0048,a03,$0048,ab03,$0018,a03,$0018,g03,$0018
- dc.w f03,$0048,ab03,$0048,ab03,$0018,f03,$0030,ab03,$0018
- dc.w a03,$0018,g03,$0018,f03,$0048,g03,$0048,g03,$0018
- dc.w f03,$0168,a03,$0090,a03,$0090,a03,$0090,a03,$0090
- dc.w a03,$0090,a03,$0090,a03,$0048,a03,cr*6
- dc.w end_patt
-
-
-
- gardenv2:
- dc.w modon,1,1,4,4,6,6
-
- dc.w e02,$0048,e02,$0048,eb02,$0048,eb02,$0048,e02,$0048
- dc.w e02,$0048,e02,$0048,e02,$00d8,e02,$0048,e02,$0060
- dc.w e02,$0018,d02,$0048,d02,$0018,e02,$0090,e02,$0048
- dc.w e02,$0048,eb02,$0048,eb02,$0048,e02,$0048,e02,$0048
- dc.w e02,$0048,e02,$00d8,e02,$0048,e02,$0060,e02,$0018
- dc.w d02,$0018,c02,$0030,b01,$0018,c02,$0090,e02,$0090
- dc.w eb02,$0090,d02,$0090,c02,$0090,e02,$0090,eb02,$0090
- dc.w d02,$0090,c02,cr*6
- dc.w end_patt
-
-
-
-
- gardenv3:
- dc.w modon,1,1,4,4,6,6
- dc.w c02,$0048,c02,$0048,b01,$0048,b01,$0048
- dc.w c02,$0048,c02,$0048,b01,$0048,b01,$0048,c02,$0048
- dc.w c02,$0048,c02,$0048,c02,$0048,c02,$0048,c02,$0048
- dc.w b01,$0090,c02,$0048,c02,$0048,b01,$0048,b01,$0048
- dc.w c02,$0048,c02,$0048,b01,$0048,b01,$0048,c02,$0048
- dc.w c02,$0048,c02,$0048,c02,$0048,c02,$0048,c02,$0030
- dc.w b01,$0018,c02,$0090,c02,$0090,b01,$0090,bb01,$0090
- dc.w a01,$0090,c02,$0090,b01,$0090,bb01,$0090,a01,cr*6
-
- dc.w end_patt
-
-
- ;--------------------
-
- cr set 40
- q set cr/2
- sq set q/2
- dsq set sq/4
-
- tq1 set 7
- tq2 set 6
- tsq1 set 3
- tsq2 set 4
-
-
-
- ;bookworm tune
-
- s1_w:
-
- dc.l bassoon_snd_short
- dc.l wbassoon
- dc.l 0,end_song
-
- s2_w:
- dc.l pizzo_snd
- dc.l wbass
- dc.l 0,end_song
-
-
- s3_w:
-
- dc.l pizzo_snd
- dc.l wpizzo
- dc.l 0,end_song
-
-
- s4_w:
- dc.l flute_snd
- dc.l wflute
- dc.l 0,end_song
-
- ;-----------------
-
- wbassoon:
- dc.w modon,1,1,2,2,6,6
- dc.w c01,$000a,d01,$0005,e01,$0005,f01,$0014
- dc.w c02,$0014,eb01,$0014,c02,$0014,db01,$0014,c02,$000a
- dc.w c01,$0014,c01,$000a,d01,$000a,e01,$000a,f01,$0014
- dc.w c02,$0014,eb01,$0014,c02,$0014,db01,$0014,c02,$000a
- dc.w c01,$0014,c01,$000a,d01,$000a,e01,$000a,f01,$0014
-
- dc.w f02,$000a,e02,$000a,f02,$0014,c02,$0014
-
- dc.w new_snd
- dc.l bassoonp
- dc.w db02,$001e
- dc.w new_snd
- dc.l bassoonsp
-
-
- dc.w eb02,$0005,db02,$0005,c02,$000a,bb01,$000a,ab01,$000a
- dc.w g01,$000a,ab01,$000a,c02,$000a,g01,$000a,c02,$000a
- dc.w f01,$000a,c02,$000a,e01,$000a,f01,$000a,g01,$000a
- dc.w f01,$000a,e01,$000a,db01,$000a,c01,$0014,c02,$0014
- dc.w f01,$0014,f02,$000a,e02,$000a,f02,$0014,c02,$0014
-
- dc.w new_snd
- dc.l bassoonp
- dc.w db02,$001e
- dc.w new_snd
- dc.l bassoonsp
-
- dc.w eb02,$0005,db02,$0005,c02,$000a,bb01,$000a
-
- dc.w ab01,$000a,g01,$000a,ab01,$000a,c02,$000a,g01,$000a
- dc.w c02,$000a,f01,$0014,e01,$0014,f01,$0050,f01,$0014
- dc.w f02,$000a,e02,$000a,f02,$0014,c02,$0014
- dc.w new_snd
- dc.l bassoonp
- dc.w db02,$001e
- dc.w new_snd
- dc.l bassoonsp
-
- dc.w eb02,$0005,db02,$0005,c02,$000a,bb01,$000a,ab01,$000a
- dc.w g01,$000a,ab01,$000a,c02,$000a,g01,$000a,c02,$000a
- dc.w f01,$000a,c02,$000a,e01,$000a,f01,$000a,g01,$000a
- dc.w f01,$000a,e01,$000a,db01,$000a,c01,$0014,c02,$0014
- dc.w f01,$0014,f02,$000a,e02,$000a,f02,$0014,c02,$0014
- dc.w new_snd
- dc.l bassoonp
-
- dc.w db02,$001e
- dc.w new_snd
- dc.l bassoonp
-
- dc.w eb02,$0005,db02,$0005,c02,$000a,bb01,$000a
- dc.w ab01,$000a,g01,$000a,ab01,$000a,c02,$000a,g01,$000a
- dc.w c02,$000a,f01,$0014,e01,$0014,f01,$0032,f01,$000a
- dc.w g01,$000a,a01,$000a,bb01,$0014,f02,$0014,ab01,$0014
- dc.w f02,$0014,gb01,$0014,f02,$000a,f01,$0014,f01,$000a
- dc.w g01,$000a,a01,$000a,bb01,$0014,f02,$0014,ab01,$0014
- dc.w f02,$0014,gb01,$0014,f02,$000a,f01,$0014,f01,$000a
- dc.w g01,$000a,a01,$000a,bb01,$0014,bb02,$000a,a02,$000a
- dc.w bb02,$0014,f02,$0014,gb02,$001e,ab02,$0005,gb02,$0005
- dc.w f02,$000a,eb02,$000a,db02,$000a,c02,$000a,db02,$000a
- dc.w f02,$000a,c02,$000a,f02,$000a,bb01,$000a,f02,$000a
- dc.w a01,$000a,bb01,$000a,c02,$000a,bb01,$000a,a01,$000a
- dc.w gb01,$000a,f01,$0014,f02,$0014,bb01,$0014,bb02,$000a
- dc.w a02,$000a,bb02,$0014,f02,$0014,gb02,$001e,ab02,$0005
- dc.w gb02,$0005,f02,$000a,eb02,$000a,db02,$000a,c02,$000a
- dc.w db02,$000a,f02,$000a,c02,$000a,f02,$000a,bb01,$0014
- dc.w a01,$0014,bb01,$00a0,f01,$0014,gb01,$0014,f01,$000a
- dc.w eb01,$000a,db01,$000a,c01,$000a,bb01,$0014,bb02,$000a
- dc.w a02,$000a,bb02,$0014,f02,$0014,gb02,$001e,ab02,$0005
- dc.w gb02,$0005,f02,$000a,eb02,$000a,db02,$000a,c02,$000a
- dc.w db02,$000a,f02,$000a,c02,$000a,f02,$000a,bb01,$000a
- dc.w f02,$000a,a01,$000a,bb01,$000a,c02,$000a,bb01,$000a
- dc.w a01,$000a,gb01,$000a,f01,$0014,f02,$0014,bb01,$0014
- dc.w bb02,$000a,a02,$000a,bb02,$0014,f02,$0014,gb02,$001e
- dc.w ab02,$0005,gb02,$0005,f02,$000a,eb02,$000a,db02,$000a
- dc.w c02,$000a,db02,$000a,f02,$000a,c02,$000a,f02,$000a
- dc.w bb01,$0014,a01,$0014,bb01,cr
- dc.w end_patt
-
-
- wbass
- dc.w rest,cr*8-sq,c02,$000a,d02,$000a,e02,$000a,f02,$0028
- dc.w eb02,$0028,db02,$001e,c02,$0014,c02,$000a,d02,$000a
- dc.w e02,$000a,f02,$0028,c02,$0028,db02,$001e,c02,$0014
- dc.w c02,$000a,d02,$000a,e02,$000a,f02,$0028,eb02,$0028
- dc.w db02,$001e,c02,$0014,c02,$000a,d02,$000a,e02,$000a
- dc.w f02,$0028,c02,$0028,f02,$0050,f02,$0028,eb02,$0028
- dc.w db02,$001e,c02,$0014,c02,$000a,d02,$000a,e02,$000a
- dc.w f02,$0028,c02,$0028,db02,$001e,c02,$0014,c02,$000a
- dc.w d02,$000a,e02,$000a,f02,$0028,eb02,$0028,db02,$001e
- dc.w c02,$0014,c02,$000a,d02,$000a,e02,$000a,f02,$0028
- dc.w c02,$0028,f02,$0032,f01,$000a,g01,$000a,a01,$000a
- dc.w bb01,$0014,f02,$0014,ab01,$0014,f02,$0014,gb01,$0014
- dc.w f02,$000a,f01,$0014,f01,$000a,g01,$000a,a01,$000a
- dc.w bb01,$0014,f02,$0014,ab01,$0014,f02,$0014,gb01,$0014
- dc.w f02,$000a,f01,$0014,f01,$000a,g01,$000a,a01,$000a
- dc.w bb01,$0028,ab01,$0028,gb01,$001e,f01,$0014,f01,$000a
- dc.w g01,$000a,a01,$000a,bb01,$0028,f01,$0028,gb01,$001e
- dc.w f01,$0014,f01,$000a,g01,$000a,a01,$000a,bb01,$0028
- dc.w ab01,$0028,gb01,$001e,f01,$0014,f01,$000a,g01,$000a
- dc.w a01,$000a,bb01,$0028,f01,$0028,bb01,$0050,f02,$0028
- dc.w eb02,$0028,f02,$0014,gb02,$0014,f02,$000a,eb02,$000a
- dc.w db02,$000a,c02,$000a,bb01,$0028,ab01,$0028,gb01,$001e
- dc.w f01,$0014,f01,$000a,g01,$000a,a01,$000a,bb01,$0028
- dc.w f01,$0028,gb01,$001e,f01,$0014,f01,$000a,g01,$000a
- dc.w a01,$000a,bb01,$0028,ab01,$0028,gb01,$001e,f01,$0014
- dc.w f01,$000a,g01,$000a,a01,$000a,bb01,$0028,f01,$0028
- dc.w bb01,cr
- dc.w end_patt
-
-
-
- wpizzo:
- dc.w rest,cr*24+q,f03,$0014,ab03,$0014,eb03,$0014,ab03,$0014
- dc.w db03,$0014,ab03,$000a,c03,$0014,c03,$000a,g03,$0014
- dc.w f02,$0014,f03,$0014,c03,$0014,g03,$0014,db03,$0014
- dc.w f03,$0014,g03,$0014,c03,$0014,f03,$0014,ab03,$0014
- dc.w eb03,$0014,ab03,$0014,db03,$0014,ab03,$000a,c03,$0014
- dc.w c03,$000a,g03,$0014,f02,$0014,f03,$0014,c03,$0014
- dc.w e03,$0014,f03,$0190,bb02,$0014,db03,$0014,ab02,$0014
- dc.w db03,$0014,gb02,$0014,db03,$000a,f02,$0014,f02,$000a
- dc.w c03,$0014,bb01,$0014,bb02,$0014,f02,$0014,c03,$0014
- dc.w gb02,$0014,bb02,$0014,c03,$0014,f02,$0014,bb02,$0014
- dc.w db03,$0014,ab02,$0014,db03,$0014,gb02,$0014,db03,$000a
- dc.w f02,$0014,f02,$000a,c03,$0014,bb01,$0014,bb02,$0014
- dc.w f02,$0014,a02,$0014,bb02,$00f0,bb02,$0014,db03,$0014
- dc.w ab02,$0014,db03,$0014,gb02,$0014,db03,$000a,f02,$0014
- dc.w f02,$000a,c03,$0014,bb01,$0014,bb02,$0014,f02,$0014
- dc.w c03,$0014,gb02,$0014,bb02,$0014,c03,$0014,f02,$0014
- dc.w bb02,$0014,db03,$0014,ab02,$0014,db03,$0014,gb02,$0014
- dc.w db03,$000a,f02,$0014,f02,$000a,c03,$0014,bb01,$0014
- dc.w bb02,$0014,f02,$0014,a02,$0014,bb02,cr
- dc.w end_patt
-
-
-
- wflute:
- dc.w modon,1,1,3,3,6,6
- dc.w rest,cr*23+q
- ;dc.w e02,$0005,eb02,$0005,e02,$0005,eb02,$0005
- ;dc.w e02,4,rest,$03d0
-
- dc.w e03,5,eb03,5
- dc.w e03,5,eb03,5
- dc.w e03,5
-
- dc.w rest,$03d0+4-5
-
-
- dc.w f02,$0014,bb02,$0014,db03,$0014,f03,$0014
- dc.w e03,$0023,eb03,$0005,f03,$0028,f03,$0014,bb02,$0014
- dc.w a03,$0014,gb03,$0014,e03,$0005,f03,$0005,e03,$0005
- dc.w f03,$0005,e03,$0005,f03,$0005,eb03,$0005,e03,$0005
- dc.w f03,$0028,f02,$0014,bb02,$0014,db03,$0014,f03,$0014
- dc.w e03,$0023,eb03,$0005,f03,$0028,f03,$0014,eb03,$0014
- dc.w db03,$0014,c03,$0014,bb02,$0014
-
- dc.w e03,5
- dc.w f02,5,e02,5
- dc.w f02,5,e02,5,rest,cr*5-5
-
- dc.w f02,$0014
- dc.w bb02,$0014,db03,$0014,f03,$0014,e03,$0023,e03,$0005
- dc.w f03,$0028,f03,$0014,bb02,$0014,a03,$0014,gb03,$0014
- dc.w e03,$0005,f03,$0005,f03,$0005,e03,$0005,e03,$0005
- dc.w f03,$0005,eb03,$0005,e03,$0005,f03,$0028,f02,$0014
- dc.w bb02,$0014,db03,$0014,f03,$0014,e03,$0023,e03,$0005
- dc.w f03,$0028,f03,$0014,eb03,$0014,db03,$0014,c03,$0014
-
- dc.w pbend,down,5,bb01,8
-
- dc.w bb02,cr
- dc.w pboff
- dc.w end_patt
- ;-------------------
-
- cr set 24
- q set cr/2
- sq set q/2
- dsq set sq/4
-
- tq1 set 7
- tq2 set 6
- tsq1 set 3
- tsq2 set 4
-
- ;snapdragons dance
-
- s1_s:
-
- dc.l flute_snd
- dc.l sd1
- dc.l 0,end_song
-
- s2_s:
- dc.l snare_snd
- dc.l sbeat
- dc.l 0,end_song
-
-
- s3_s:
-
- dc.l pizzo_snd
- dc.l sbass
- dc.l 0,end_song
-
-
- s4_s:
- dc.l aguitar_sndq
- dc.l sguit
- dc.l 0,end_song
-
-
- sd1
- dc.w modon,1,1,4,4,6,6
- dc.w rest,cr,a03,cr,g03,cr+q,f03,q,e03,cr*4
- dc.w rest,cr,a03,cr,g03,cr+q,f03,q,e03,cr*4
- dc.w rest,cr,b02,q,c03,q,d03,q,c03,q,b02,q
- dc.w c03,q,d03,cr*2-q,e03,sq,d03,sq,c03,cr*2
- dc.w rest,cr,c03,cr,b02,cr*2-q,b02,q,a02,cr*4
- dc.w end_patt
- sbass
- dc.w a02,cr
- dc.w rest,cr*3
- dc.w a02,cr*2-q,a02,q,g02,cr,g02,cr
- dc.w a02,cr*2-q,a02,q,g02,cr,g02,cr
- dc.w a02,cr*2-q,a02,q,g02,cr,g02,cr
- dc.w a02,cr*2-q,a02,q,g02,cr,g02,cr
- dc.w d02,cr*2-q,d02,q,a01,cr,a01,cr
- dc.w d02,cr*2-q,d02,q,a01,cr,a01,cr
- dc.w a02,cr*2-q,a02,q,g02,cr,g02,cr
- dc.w end_patt
-
- sguit
- dc.w modon,1,1,2,2,4,4
- dc.w a02,cr
- dc.w rest,cr*3
- dc.w a02,q,c03,sq,e03,sq,c03,cr
- dc.w g02,q,b02,sq,d03,sq,b02,cr
-
- dc.w a02,q,c03,sq,e03,sq,c03,cr
- dc.w g02,q,b02,sq,d03,sq,b02,cr
-
- dc.w a02,q,c03,sq,e03,sq,c03,cr
- dc.w g02,q,b02,sq,d03,sq,b02,cr
-
- dc.w a02,q,c03,sq,e03,sq,c03,cr
- dc.w g02,q,b02,sq,d03,sq,b02,cr
-
- dc.w d02,q,f02,q,a02,q,f02,q
- dc.w d02,q,f02,q,a02,q,f02,q
-
- dc.w d02,q,f02,q,a02,q,f02,q
- dc.w d02,q,f02,q,a02,q,f02,q
-
- dc.w a02,q,c03,q,e03,q,c03,q
- dc.w g02,q,b02,q,d03,q,b02,q
- dc.w end_patt
-
- sbeat
- dc.w 130,q,138,3,136,3,134,3,132,3,130,q,130,q
- dc.w rest,q,130,q,130,q,130,q
- dc.w end_patt
- ;-------------
- cr set 16
- q set cr/2
- sq set q/2
- dsq set sq/4
-
- tq1 set 7
- tq2 set 6
- tsq1 set 3
- tsq2 set 4
-
- ;snapdragons dance
-
- s1_sn:
-
- dc.l snare_snd
- dc.l snap1
- dc.l pri
- dc.l 0,end_song
-
- s2_sn:
- dc.l snare_snd
- dc.l snap2
- dc.l pri
- dc.l 0,end_song
-
-
- s3_sn:
-
- dc.l snare_snd
- dc.l snap3
- dc.l pri
- dc.l 0,end_song
-
-
- s4_sn:
- dc.l snare_snd
- dc.l snap4
- dc.l pri
- dc.l 0,end_song
-
- snap1
- dc.w 130,12,138,3,136,8,134,5,132,3,130,9,130,7
- dc.w 130,12,138,3,136,8,134,5,132,3,130,9,130,7
- dc.w end_patt
-
- snap2
- dc.w 130,10,138,13,136,8,134,5,132,3,130,9,130,3
- dc.w 130,10,138,13,136,8,134,5,132,3,130,9,130,3
- dc.w end_patt
-
- snap3
- dc.w 130,2,138,4,136,3,134,12,132,5,130,9,130,2
- dc.w 130,2,138,4,136,3,134,12,132,5,130,9,130,5
- dc.w end_patt
-
- snap4
- dc.w 130,12,138,3,136,3,134,12,132,5,130,9,130,7
- dc.w 130,12,138,3,136,3,134,12,132,5,130,9,130,7
- dc.w end_patt
-
-
- ;-------------------
-
- ;chess queens
- cr set 40
- q set cr/2
- sq set q/2
- dsq set sq/4
-
- trc1 set 0
- tq1 set 0
- tq2 set 0
- tsq1 set 7
- tsq2 set 6
-
-
-
- s1_q:
-
-
- dc.l fhorn_snd
- dc.l qhorn
- dc.l flute_snd
- dc.l qhorn
- dc.l 0,end_song
-
- s2_q:
- dc.l flute_sndmq
- dc.l qstrings
- dc.l 0,end_song
-
-
- s3_q:
-
- dc.l pizzo_snd
- dc.l qpizzo
-
-
- dc.l 0,end_song
-
-
- s4_q:
- dc.l snare_sndq
- dc.l qsnare
- dc.l 0,end_song
-
- ;-----------------
-
- qsnare:
- dc.w rest,q
- dc.w r16,tsq1,r16,tsq2,r16,tsq1,r16,cr+q
- dc.w r16,tsq1,r16,tsq2,r16,tsq1,r16,cr
- dc.w end_patt
-
- qpizzo
- dc.w f02,$0014,g02,$0014,a02,$0014,bb02,$0014
- dc.w c03,$0028,c02,$0028,d02,$0014,e02,$0014,f02,$0014
- dc.w g02,$0014,a02,$0028,a01,$0028,bb01,$0014,c02,$0014
- dc.w d02,$0014,e02,$0014,f02,$0028,f01,$0028,g01,$0014
- dc.w a01,$0014,b01,$0014,g01,$0014,c02,$0028,c03,$0028
- dc.w f02,$0014,g02,$0014,a02,$0014,bb02,$0014,c03,$0028
- dc.w c02,$0028,d02,$0014,e02,$0014,f02,$0014,g02,$0014
- dc.w a02,$0028,a01,$0028,bb01,$0014,c02,$0014,d02,$0014
- dc.w e02,$0014,f02,$0028,f01,$0028,c02,$0028,c03,$0028
- dc.w c03,$0014,bb02,$0014,a02,$0014,g02,$0014,f02,$0014
- dc.w g02,$0014,a02,$0014,bb02,$0014,c03,$0028,c02,$0028
- dc.w d02,$0014,e02,$0014,f02,$0014,g02,$0014,a02,$0028
- dc.w a01,$0028,bb01,$0014,c02,$0014,d02,$0014,e02,$0014
- dc.w f02,$0028,f01,$0028,g01,$0014,a01,$0014,bb01,$0014
- dc.w b01,$0014,c02,$0028,c03,$0028,f02,$0014,g02,$0014
- dc.w a02,$0014,bb02,$0014,c03,$0028,c02,$0028,d02,$0014
- dc.w e02,$0014,f02,$0014,g02,$0014,a02,$0028,a01,$0028
- dc.w bb01,$0014,c02,$0014,d02,$0014,e02,$0014,f02,$0028
- dc.w c02,$0028,f02,$0014,e02,$0014,d02,$0014,c02,$0014
- dc.w f02,cr*2
- dc.w end_patt
-
-
- qhorn
- dc.w modon,1,1,2,2,20,20
- dc.w a02,$0050,g02,$0014,a02,$0014,bb02,$0014
- dc.w g02,$0014,f02,$0050,e02,$0014,f02,$0014,g02,$0014
- dc.w e02,$0014,d02,$0050,c02,$0014,d02,$0014,e02,$0014
- dc.w f02,$0014,g02,$003c,c02,$0014,c02,$0050,a02,$0050
- dc.w g02,$0014,a02,$0014,bb02,$0014,g02,$0014,f02,$0050
- dc.w e02,$0014,f02,$0014,g02,$0014,e02,$0014,d02,$0028
- dc.w bb02,$0028,a02,$0028,f02,$0028,g02,$00a0,a02,$0050
- dc.w g02,$0014,a02,$0014,bb02,$0014,g02,$0014,f02,$0050
- dc.w e02,$0014,f02,$0014,g02,$0014,e02,$0014,d02,$0050
- dc.w c02,$0014,d02,$0014,e02,$0014,f02,$0014,g02,$003c
- dc.w c02,$0014,c02,$0050,a02,$0050,g02,$0014,a02,$0014
- dc.w bb02,$0014,g02,$0014,f02,$0050,e02,$0014,f02,$0014
- dc.w g02,$0014,e02,$0014,d02,$0028,bb02,$0028,a02,$0028
- dc.w g02,$0028,g02,$003c,f02,$0014,f02,cr*2
- dc.w end_patt
-
- qstrings
- dc.w modon,1,1,3,3,12,12
- dc.w rest,cr*8*4,c03,$000a,f02,$000a,c03,$000a,f02,$000a
- dc.w c03,$000a,f02,$000a,c03,$000a,f02,$000a,c03,$000a
- dc.w e02,$000a,c03,$000a,e02,$000a,c03,$000a,e02,$000a
- dc.w c03,$000a,e02,$000a,d03,$000a,f02,$000a,d03,$000a
- dc.w f02,$000a,d03,$000a,f02,$000a,d03,$000a,f02,$000a
- dc.w c03,$000a,e02,$000a,c03,$000a,e02,$000a,c03,$000a
- dc.w e02,$000a,c03,$000a,e02,$000a,d03,$000a,f02,$000a
- dc.w d03,$000a,f02,$000a,d03,$000a,f02,$000a,d03,$000a
- dc.w f02,$000a,c03,$000a,f02,$000a,c03,$000a,f02,$000a
- dc.w c03,$000a,f02,$000a,c03,$000a,f02,$000a,d03,$000a
- dc.w g02,$000a,d03,$000a,g02,$000a,d03,$000a,g02,$000a
- dc.w d03,$000a,g02,$000a,c03,$000a,e02,$000a,c03,$000a
- dc.w e02,$000a,c03,$000a,e02,$000a,c03,$000a,e02,$000a
- dc.w c03,$000a,f02,$000a,c03,$000a,f02,$000a,c03,$000a
- dc.w f02,$000a,c03,$000a,f02,$000a,c03,$000a,e02,$000a
- dc.w c03,$000a,e02,$000a,c03,$000a,e02,$000a,c03,$000a
- dc.w e02,$000a,d03,$000a,f02,$000a,d03,$000a,f02,$000a
- dc.w d03,$000a,f02,$000a,d03,$000a,f02,$000a,c03,$000a
- dc.w e02,$000a,c03,$000a,e02,$000a,c03,$000a,e02,$000a
- dc.w c03,$000a,e02,$000a,d03,$000a,f02,$000a,d03,$000a
- dc.w f02,$000a,d03,$000a,f02,$000a,d03,$000a,f02,$000a
- dc.w c03,$000a,f02,$000a,c03,$000a,f02,$000a,c03,$000a
- dc.w e02,$000a,c03,$000a,e02,$000a,c03,$000a,g02,$000a
- dc.w c03,$000a,g02,$000a,c03,$000a,g02,$000a,c03,$000a
- dc.w g02,$000a,c03,cr*2
- dc.w end_patt
-
-
- ;-----------------
-
- ;chess fanfare
- cr set 24
- q set cr/2
- sq set q/2
- dsq set sq/4
-
- tcr1 set 16
- tq1 set 0
- tq2 set 0
- tsq1 set 7
- tsq2 set 6
-
-
- v1 equ 6
- v2 equ 12
- v3 equ 24
-
- s1_f:
- dc.l trumpet_snd
- dc.l f1
- dc.l pri
- dc.l 0,end_song
-
- s2_f:
- dc.l trumpet_snd
- dc.l f2
- dc.l pri
- dc.l 0,end_song
-
-
- s3_f:
-
- dc.l trumpet_snd
- dc.l f3
- dc.l pri
- dc.l 0,end_song
-
-
- s4_f:
- dc.l trumpet_snd
- dc.l f4
- dc.l pri
- dc.l 0,end_song
-
-
- pri
- dc.w rest,65000
- dc.w rest,65000
- dc.w rest,65000
- dc.w rest,65000
- dc.w rest,65000
- dc.w end_patt
-
-
-
- f1
- dc.w c02,sq-2,rest,2,c02,sq,f02,cr*6,rest,40
- dc.w d02,sq-2,rest,2,d02,sq
- dc.w g02,tcr1,d02,tcr1,g02,tcr1
- dc.w b02,tcr1,g02,tcr1,b02,tcr1
- dc.w d03,tcr1+v1,b02,tcr1+v2,d03,tcr1+v3
- dc.w g03,cr*6,rest,cr*4
- dc.w end_patt
-
- f2
- dc.w rest,1
- dc.w c02,sq-2,rest,2,c02,sq,f02,cr*6,rest,40
- dc.w d02,sq-2,rest,2,d02,sq
- dc.w g02,tcr1,d02,tcr1,g02,tcr1
- dc.w b02,tcr1,g02,tcr1,b02,tcr1
- dc.w d03,tcr1+v1,b02,tcr1+v2,d03,tcr1+v3
- dc.w g03,cr*6-1,rest,cr*4
- dc.w end_patt
-
- f3
- dc.w rest,2
- dc.w a01,sq-2,rest,2,a01,sq,c02,cr*6,rest,40
- dc.w b01,sq-2,rest,2,b01,sq
- dc.w d02,tcr1,b01,tcr1,d02,tcr1
- dc.w g02,tcr1,d02,tcr1,g02,tcr1
- dc.w b02,tcr1+v1,g02,tcr1+v2,b02,tcr1+v3
- dc.w d03,cr*6-2,rest,cr*4
- dc.w end_patt
-
- f4
- dc.w rest,3
- dc.w f01,sq-2,rest,2,f01,sq,a02,cr*6,rest,40
- dc.w g01,sq-2,rest,2,g01,sq
- dc.w g02,tcr1,g02,tcr1,g02,tcr1
- dc.w g02,tcr1,g02,tcr1,g02,tcr1
- dc.w g02,tcr1+v1,g02,tcr1+v2,g02,tcr1+v3
- dc.w g01,cr*6-2,rest,cr*4
- dc.w end_patt
-
- ;----------------
-
-
- ;dwarves coming
- cr set 24
- q set cr/2
- sq set q/2
- dsq set sq/4
-
- tcr1 set 16
- tq1 set 8
- tq2 set 8
- tsq1 set 7
- tsq2 set 6
-
-
- s1_d:
- dc.l pizzo_snd
- dc.l dbass
- dc.l 0,end_song
-
- s2_d:
- dc.l snare_sndq
- dc.l dsnare
- dc.l 0,end_song
-
-
- s3_d:
-
- dc.l flute_snd
- dc.l dtune
- dc.l dtune
- dc.l drest
- dc.l 0,end_song
-
-
- s4_d:
- dc.l wave_sndl
- dc.l wave
- dc.l 0,end_song
-
- drest
- dc.w rest,cr*16
- dc.w end_patt
-
-
- dbass
- dc.w modon,4,4,4,4,6,6
- dc.w c02,cr,g01,cr,d02,cr,g01,cr
- dc.w c02,cr,cr,b01,cr,a01,cr
- dc.w g01,tq1,a01,tq2,b01,tq1
- dc.w end_patt
-
- dsnare dc.w r16,cr,r16,cr
- dc.w r16,tq1,r16,tq2,r16,tq1
- dc.w r16,cr
- dc.w r16,tq1,r16,tq2,r16,tq1
- dc.w r16,tq1,r16,tq2,r16,tq1
- dc.w r16,tq1,r16,tq2,r16,tq1
- dc.w r16,cr
- dc.w end_patt
-
- dtune
- dc.w modon,2,2,2,2,6,6
- dc.w c03,cr-tq1,c03,tq1,e03,cr
- dc.w f03,cr-tq1,f03,tq1,d03,cr
- dc.w e03,cr*4
- dc.w c03,cr-tq1,c03,tq1,e03,cr
- dc.w d03,cr-tq1,d03,tq1,b02,cr
- dc.w c03,cr*4
- dc.w end_patt
-
-
-
- ;----------------
- cr set 20
- q set cr/2
- sq set q/2
- dsq set sq/4
-
- tcr1 set 16
- tq1 set 8
- tq2 set 8
- tsq1 set 7
- tsq2 set 6
-
- ;drown you bastard
- s1_dr:
-
- dc.l pr
- dc.l flute_snd
- dc.l die1
- dc.l die2
- dc.l die3
- dc.l pri
-
- dc.l 0,end_song
- s2_dr:
-
- dc.l trumpet_snd
- dc.l die1
- dc.l die2
- dc.l die2
- dc.l die3
- dc.l pri
-
- DC.L 0,end_song
-
- s3_dr:
-
- dc.l pizzo_snd
- dc.l die_bass
- dc.l die3
- dc.l pri
-
- dc.l 0,end_song
-
- s4_dr:
-
- dc.l trumpet_snd
- dc.l die_sus
- dc.l die3
- dc.l pri
-
- dc.l 0,end_song
-
- die1:
- dc.w c02,sq,d02,sq,eb02,sq,f02,sq
- dc.w end_patt
- die2:
- dc.w g02,sq,gb02,sq,g02,sq,gb02,sq,g02,sq,gb02,sq,g02,sq,gb02,sq
- dc.w g02,sq,gb02,sq,g02,sq,gb02,sq,g02,sq,gb02,sq,g02,sq,gb02,sq
- dc.w g02,sq,gb02,sq,g02,sq,gb02,sq,g02,sq,gb02,sq,g02,sq,gb02,sq
- dc.w g02,sq,gb02,sq,g02,sq,gb02,sq,g02,sq,gb02,sq,g02,sq,gb02,sq
- dc.w end_patt
-
-
- die3:
- dc.w c03,sq,b02,sq,bb02,sq,a02,sq,ab02,sq,g02,sq,gb02,sq,f02,sq
- dc.w e02,sq,eb02,sq,d02,sq,db02,sq,c02,sq
- dc.w b01,sq,bb01,sq,a01,sq,ab01,sq,g01,sq,gb01,sq,f01,sq
- dc.w e01,sq,db01,sq,c01,cr*4
- dc.w end_patt
-
- die_bass:
- dc.w c02,sq,d02,sq,eb02,sq,f02,sq
- dc.w c01,cr*16
- dc.w end_patt
- die_sus:
- dc.w rest,sq*4,c01,cr*16
- dc.w end_patt
-
- ;------
- s1_b:
-
- dc.l wave_snd
- dc.l wave
-
- dc.l 0,end_song
- s2_b:
-
- dc.l wave_sndx
- dc.l wavex
-
- DC.L 0,end_song
-
- s3_b:
-
- dc.l seagull1_snd
- dc.l seagull1
- dc.l 0,end_song
-
- s4_b:
-
- dc.l seagull2_snd
- dc.l seagull2
-
- dc.l 0,end_song
- ;----------
-
-
- wave
-
- dc.w r4,150,r5,170,r3,180,r3,200,r2,190
- dc.w end_patt
-
- wavex
- dc.w modon,4,4,8,8,6,6
- dc.w r1,200
- ;dc.w rest,12,r4,150,r5,170,r3,180,r3,200,r2,190-12
- dc.w end_patt
-
- seagull1
- dc.w pbend,down,2,10000,1
- dc.w a03,10,a03,12
- dc.w rest,300
- dc.w f03,16,a03,8
- dc.w a03,8,g03,12
- dc.w rest,250
-
- dc.w end_patt
-
-
- seagull2
- dc.w pbend,down,1,10000,1
- dc.w g03,5,rest,100,g03,15,f03,10
- dc.w rest,200
- dc.w e03,15,rest,100,e03,8,f03,10
- dc.w rest,450
- dc.w end_patt
- wavep:
- dc.w 1
- dc.l waved+iff
- dc.w (9094-iff)/2
- dc.l restd
- dc.w 16/2
-
- seagull1_snd:
- dc.w new_env
- dc.l seagull_envvq
- dc.w new_snd
- dc.l flutep
- dc.w end_patt
-
- seagull2_snd:
- dc.w new_env
- dc.l seagull_envq
- dc.w new_snd
- dc.l flutep
- dc.w end_patt
- wave_snd:
- dc.w new_env
- dc.l wave_envq
- dc.w new_snd
- dc.l wavep
- dc.w end_patt
-
- sine_snd:
- dc.w new_env
- dc.l sine_env
- dc.w new_snd
- dc.l sinep
- dc.w end_patt
-
-
- wave_sndl:
- dc.w new_env
- dc.l wave_env
- dc.w new_snd
- dc.l wavep
- dc.w end_patt
-
- wave_sndx:
- dc.w new_env
- dc.l wave_envvq
- dc.w new_snd
- dc.l wavep
- dc.w end_patt
-
-
-
- seagull_envq: dc.w 0,8,255
- seagull_envvq: dc.w 0,4,255
- wave_envq: dc.w 0,18,255
- wave_env: dc.w 0,48,255
- wave_envvq: dc.w 0,8,255
-
- ;-----------------
-
- sounds:
-
- flute_snd:
- dc.w new_env
- dc.l flute_env
- dc.w new_snd
- dc.l flutep
- dc.w end_patt
-
- flute_sndq:
- dc.w new_env
- dc.l flute_envq
- dc.w new_snd
- dc.l flutep
- dc.w end_patt
-
- flute_sndmq:
- dc.w new_env
- dc.l flute_envmq
- dc.w new_snd
- dc.l flutep
- dc.w end_patt
-
-
- aguitar_snd:
- dc.w new_env
- dc.l aguitar_env
- dc.w new_snd
- dc.l aguitp
- dc.w end_patt
-
- aguitar_sndq:
- aguitar_snd_quiet:
- dc.w new_env
- dc.l aguitar_env_quiet
- dc.w new_snd
- dc.l aguitp
- dc.w end_patt
-
-
- tamb_snd:
- dc.w new_env
- dc.l tamb_env
- dc.w new_snd
- dc.l tambp
- dc.w end_patt
-
-
-
- abass_snd:
- dc.w new_env
- dc.l abass_env
- dc.w new_snd
- dc.l abassp
- dc.w end_patt
-
- sitar_snd:
- dc.w new_env
- dc.l sitar_env
- dc.w new_snd
- dc.l sitarp
- dc.w end_patt
-
- bassoon_snd:
- dc.w new_env
- dc.l bassoon_env
- dc.w new_snd
- dc.l bassoonp
- dc.w end_patt
-
- bassoon_snd_short:
- dc.w new_env
- dc.l bassoon_env
- dc.w new_snd
- dc.l bassoonsp
- dc.w end_patt
-
- snare_snd:
- dc.w new_env
- dc.l snare_env
- dc.w new_snd
- dc.l snarep
- dc.w end_patt
-
- snare_sndq:
- dc.w new_env
- dc.l snare_envq
- dc.w new_snd
- dc.l snarep
- dc.w end_patt
-
- trumpet_snd:
- dc.w new_env
- dc.l trumpet_env
- dc.w new_snd
- dc.l trumpetp
- dc.w end_patt
-
- trumpet_sndq:
- dc.w new_env
- dc.l trumpet_envq
- dc.w new_snd
- dc.l trumpetp
- dc.w end_patt
-
- pizzo_snd:
- dc.w new_env
- dc.l pizzo_env
- dc.w new_snd
- dc.l pizzop
- dc.w end_patt
-
- pizzoh_snd:
- dc.w new_env
- dc.l pizzo_env
- dc.w new_snd
- dc.l pizzohp
- dc.w end_patt
-
-
- fhorn_snd:
- dc.w new_env
- dc.l fhorn_env
- dc.w new_snd
- dc.l fhornp
- dc.w end_patt
-
- fhorn_sndq:
- dc.w new_env
- dc.l fhorn_envq
- dc.w new_snd
- dc.l fhornp
- dc.w end_patt
-
-
-
- strings_snd:
- dc.w new_env
- dc.l strings_env
- dc.w new_snd
- dc.l stringsp
- dc.w end_patt
-
-
-
-
- ;***********************************************
-
- parameters:
-
- iff equ 108
-
- ; sample parameters
-
-
- snarep
- dc.w 1
- dc.l snared
- dc.w 2240/2
- dc.l restd
- dc.w 16/2
-
-
- trumpetp
- dc.w 1
- dc.l synbras1d
- dc.w 3338/2
- dc.l synbras1d
- dc.w 3338/2
-
- abassp
- dc.w 1
- dc.l abassd+iff
- dc.w 8000/2
- dc.l restd
- dc.w 16/2
-
- flutep
- dc.w 1
- dc.l fluted+iff
- dc.w 7278/2
- dc.l fluted+4173+iff
- dc.w 3106/2
-
- tambp
- dc.w 1
- dc.l tambd
- dc.w 1457/2
- dc.l restd
- dc.w 16/2
-
- sitarp
- dc.w 1
- dc.l sitard
- dc.w 7708/2
- dc.l restd
- dc.w 16/2
-
- aguitp
- dc.w 1
- dc.l aguitd+iff
- dc.w 9576/2
- dc.l restd
- dc.w 16/2
-
- bassoonlp
- dc.w 1
- dc.l bassoond+iff
- dc.w 4788/2
- dc.l bassoond+iff+2033
- dc.w 2755/2
-
-
- bassoonp
- dc.w 1
- dc.l bassoond+iff
- dc.w 4788/2
- dc.l restd
- dc.w 16/2
-
- bassoonsp
- dc.w 1
- dc.l bassoond+iff
- dc.w 4788/2-1000
- dc.l restd
- dc.w 16/2
-
- pizzop:
- dc.w 1
- dc.l pizzod
- dc.w 5550/2
- dc.l restd
- dc.w 16/2
-
- pizzohp:
- dc.w 1
- dc.l pizzohd
- dc.w 3796/2
- dc.l restd
- dc.w 16/2
-
- fhornp:
- dc.w 1
- dc.l fhornd+iff
- dc.w (6684-iff)/2
- dc.l fhornd+iff
- dc.w (6684-iff)/2
-
- stringsp:
- dc.w 1
- dc.l stringsd
- dc.w (8668)/2
- dc.l restd
- dc.w 16/2
-
-
-
- envelopes:
-
-
- rest_env: dc.w 0,0,0,0,0,0,0,0,255
- flute_env: dc.w 0,32,255
- flute_envq: dc.w 0,8,255
- flute_envmq: dc.w 0,18,255
- tamb_env: dc.w 0,62,255
- aguitar_env: dc.w 0,45,255
- aguitar_env_quiet: dc.w 0,30,255
- sitar_env: dc.w 0,42,255
- abass_env: dc.w 0,54,255
- snare_env: dc.w 0,35,255
- snare_envq: dc.w 0,15,255
- trumpet_env: dc.w 0,35,255
- trumpet_envq: dc.w 0,25,255
- bassoon_env: dc.w 0,40,255
- pizzo_env: dc.w 0,35,255
- fhorn_env: dc.w 0,40,255
- fhorn_envq: dc.w 0,28,255
- strings_env: dc.w 0,48,255
- sine_env: dc.w 0,48,255
-
-
-
- ;guit.sam 6191 rwed Today 01:27:11
- ;tamb.sam 1457 rwed Today 01:27:10
- ;flute.sam 8410 rwed Today 01:27:08
- ;sitar.sam 8993 rwed Today 01:27:07
- ;bass.sam 8583 rwed Today 01:27:05
- ;7 files - 207 blocks used
-
- ;**************************************************
-
-
- aguitd incbin c:instruments/aguit.sam
- tambd ;incbin c:instruments/tamb.sam
- fluted incbin c:instruments/flute.sam
- sitard ;incbin c:instruments/sitar.sam
- abassd ;incbin c:instruments/abass.sam
- snared incbin c:instruments/snare.sam
- synbras1d incbin c:instruments/hbrass3l.sam
- bassoond incbin c:instruments/bassoonl.sam
- pizzod incbin c:instruments/pizzo1.sam
- pizzohd ;incbin c:instruments/pizzo2.sam
-
- fhornd incbin c:instruments/fhorn.sam
- stringsd ;incbin c:instruments/strings2.sam
- waved incbin c:instruments/wave.sam
- ;********************************************
-
-
- restd:
- rest_data:
- dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
-
- ;*************************************************
-
- end
-
-
-
- end
-