home *** CD-ROM | disk | FTP | other *** search
Text File | 1978-10-02 | 50.1 KB | 2,475 lines |
-
- ; DRIVER AND REMAINS COPYRIGHT D.LOWE
-
- ; RAILROAD TYCOON INGAME TUNES and FX
-
-
- ; LAURIE,
- ; Tune 1 is the main theme,tune 2 is the year end thing.
- ; the tick is now a tick tock repeating loop
- ; I have keft the tock fx pattern in to keep the fx numbers the same
- ; 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
-
-
- ;*****************************************
-
- ; 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
-
- ;cr equ 16
- ;tq1 equ 7
- ;tq2 equ 6
- ;tq equ 8
- ;q equ cr/2
- ;sq equ q/2
-
- 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
- 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
-
- ;***************************************************************
-
-
- ; THIS IS THE CONTROL SECTION FOR TESTING AS A STAND ALONE PRG.
-
- ; AND CAN BE DELETED WHEN NOT REQUIRED
-
-
- jsr select_new_song
-
- testloop:
- jsr delay ;wait for scan line at 50hz on pal
-
- jsr driver
-
- bra testloop
-
-
- 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:
-
- ;jsr kill_chip
- ;move.w #1,int_disable
- clr.l d0
- move.b $bfe001,d0
- btst #6,d0
- beq testfx4
-
- move.l song_buffer,d0
- addq.l #1,d0
- cmp.l #7,d0
- bne nores
- move.l #1,d0
- nores move.l d0,song_buffer
- jsr select_new_song
-
-
- move.l fx_last,d0
- move.l d0,fx_kill
-
- jsr kill_loopfx ;only one fx at a time
-
-
- 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:
- jsr set_up_fx
- 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...see list
- fx_kill dc.l 0 ; number of fx to kill/only needed for looped fx
-
- song_buffer dc.l 1 ; number of piece of music required here ie.1 to 5
-
- music_disable: dc.w 1 ; 1 = disable music
- fx_disable: dc.w 0 ; 1 = disable fx (currently disabled)
-
- ; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- ; 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
- ; *******************************************************
-
- ; 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
- move.l #1,d0
- cmp fx_number,d0
- bne check3 ;engine to 4
-
- 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 LOOPED 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 SOUND for whatever reason
-
- 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 3) 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
-
- ;**************************************************
-
- ; 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 #%1000001000000001,d1
- jsr sect1
- rts
-
- run_music1
- lea ch1vars,a0
- lea chann1reg,a2
- move.w #%0000000000000001,d5
- move.w #%1000001000000001,d1
- 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 #%1000001000000010,d1
- jsr sect1
- rts
-
- run_music2
- lea ch2vars,a0
- lea chann2reg,a2
- move.w #%0000000000000010,d5
- move.w #%1000001000000010,d1
- 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 #%1000001000000100,d1
- jsr sect1
- rts
-
- run_music3
- lea ch3vars,a0
- lea chann3reg,a2
- move.w #%0000000000000100,d5
- move.w #%1000001000000100,d1
- 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
- jsr sect1
- rts
-
- run_music4
- lea ch4vars,a0
- lea chann4reg,a2
- move.w #%0000000000001000,d5
- move.w #%1000001000001000,d1
- jsr sect1
- rts
- ; **************************
-
- sect1: tst.w 0(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:
-
- cmpi #6,(a0)
- beq norm_env
- cmpi #5,(a0)
- bne do_env_check
-
- tst.w fx4_flag
- beq norm_env
- bra low_vol
-
- do_env_check:
- move.w fx3_flag,d0
- or.w fx4_flag,d0
- cmpi.w #0,d0
- beq norm_env
- low_vol:
- move.l 18(a0),a1
- cmpi.w #255,(a1)
- beq evj1
- move.w (a1)+,d0
- evj2: sub.w 62(a0),d0
- bcc no_over
- move.w 0,d0
- no_over:
- move.w d0,8(a2)
- bra fint
-
- evj1: subq.l #2,a1
- move.w (a1)+,d0
- bra evj2
-
- norm_env:
- move.l 18(a0),a1
- cmpi.w #255,(a1)
- beq env_finished
- cmpi.w #1,66(a0)
- bne no_acc
-
- clr.l d0
- move.w (a1)+,d0
- add.w 64(a0),d0
- move.w d0,8(a2)
- move.l a1,18(a0)
- rts
-
- no_acc:
- resu: move.w (a1)+,8(a2)
- fint: move.l a1,18(a0)
- rts
-
- env_finished:
- subq.l #2,a1
- bra resu
-
-
- 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
-
- song_table:
- dc.l s1,s2,s3,s4 ;main theme
- dc.l s5,s6,s7,s8 ;auld
- dc.l s9,s10,s11,s12 ;four bits !!
- dc.l s13,s14,s15,s16
- dc.l s17,s18,s19,s20
- dc.l s21,s22,s23,s24
-
- ;************************************************************
- 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
- ;************************************************************
-
-
-
- ; fx patterns here
-
- fxjump_table:
- dc.l dieselx ;slow train loop
- dc.l diesel2x ;faster train loop
- dc.l brakesx ;slow brakes loop
- dc.l brakes2x ;faster brake loop
- dc.l pulleyx ;mechanical pulley
- dc.l chuffx ;slow chuff loop
- dc.l chuff2x ;faster chuff loop
- dc.l chuff3x ; even faster chuff loop
- dc.l chuff4x ; even faster chuff loop
- dc.l couplex ;truck/carriage couple sound
- dc.l finstat ;finish building station chip st
- dc.l sledgehammerx ;sledge hammer clang
- dc.l twhisx ;train steam whistle
- dc.l boomx ;boom noise
- dc.l crashx ;crash sound ; chip st
- dc.l crash2x ;alternative crash sound ; " "
- dc.l ticktockx ;clock tick tock loop ************ ; chip st
- dc.l tock ;same as previous ; " "
- dc.l explosionx ;explosion 1
- dc.l explosion2x ;explosion 2
- dc.l bellx ;train bell 1
- dc.l bell2x ;train bell 1
- dc.l bell3x ;train bell 1
- dc.l bell4x ;train bell 1
- dc.l splashx ;splash sound
- dc.l hammerx ;hammer clang
- dc.l cashx ;coin drop
-
- max_fx dc.l 28
-
-
- ;______________________________________________________________________
-
- ; The 1/50 counter in these patterns is dependent on the length
- ; of the sample in bytes and the replay speed.if altering the
- ; replay speed calculate the counter using length/rate*50
- ; ie the piston sample is 2647 bytes at r6(6000)..hence interrupt
- ; counter for 1 shot play = 22
-
-
-
- couplex
- dc.w new_env
- dc.l couple_env
- dc.w new_snd
- dc.l couple
- dc.w r4,23
- dc.w new_env
- dc.l hitbar4_env
- dc.w new_snd
- dc.l hitbar4
- dc.w r10,11
- dc.w end_fxp
-
- couple_env dc.w 0,64,64,255
- finstat:
- dc.w new_snd
- dc.l fiddle
- dc.w new_env
- dc.l hitbar4_env
- dc.w C02,sq,Db02,sq,D02,sq,Eb02,sq
- dc.w E02,sq,F02,sq,Gb02,sq,G02,sq
- dc.w Ab02,sq,A02,sq,Bb02,sq,B02,sq
- dc.w new_env
- dc.l hitbar4_env
- dc.w new_snd
- dc.l hitbar4
- dc.w r3,37
- dc.w end_fxp
- hammerx
- dc.w new_env
- dc.l hitbar4_env
- dc.w new_snd
- dc.l hitbar4
- dc.w r6,20
- dc.w end_fxp
- sledgehammerx
- dc.w new_env
- dc.l hitbar4_env
- dc.w new_snd
- dc.l hitbar4
- dc.w r3,37
- dc.w end_fxp
-
- hitbar4_env dc.w 0,64,64,255
- twhisx
- dc.w new_env
- dc.l twhis_env
- dc.w new_snd
- dc.l twhis
- dc.w pbend,down,10,r6,16
- dc.w r8,24
- dc.w pboff
- dc.w r8,24
- dc.w end_fxp
-
- twhis_env dc.w 0,64,64,255
- boomx
- dc.w new_env
- dc.l hitgrou4_env
- dc.w new_snd
- dc.l hitgrou4
- dc.w r3,40
- dc.w end_fxp
-
- hitgrou4_env dc.w 0,64,64,255
- crashx
- dc.w new_env
- dc.l snr1_env
- dc.w new_snd
- dc.l snr1
- dc.w r4,82
- dc.w end_fxp
- crash2x
- dc.w new_env
- dc.l snr1_env
- dc.w new_snd
- dc.l snr1
- dc.w r3,123
- dc.w end_fxp
-
- snr1_env dc.w 0,64,64,255
- brakesx
- dc.w new_env
- dc.l brakes_env
- dc.w new_snd
- dc.l brakes
- dc.w r4,65000 ;;;65000
- dc.w end_fxp
- brakes2x
- dc.w new_env
- dc.l brakes_env
- dc.w new_snd
- dc.l brakes
- dc.w r8,65000 ;;;65000
- dc.w end_fxp
-
- brakes_env dc.w 0,44,44,255
- tock
- ticktockx
- dc.w new_env
- dc.l tick_env
- dc.w new_snd
- dc.l tick
- tockl dc.w r4,1,rest,18,r2,1,rest,18
- dc.w r4,1,rest,18,r2,1,rest,18
- dc.w repeat
- dc.l tockl
- dc.w end_fxp
-
- tick_env dc.w 0,64,64,255
- dieselx
- dc.w new_env
- dc.l diesel_env
- dc.w new_snd
- dc.l diesel
- dc.w r4,65000 ;;;65000
- dc.w end_fxp
- diesel2x
- dc.w new_env
- dc.l diesel_env
- dc.w new_snd
- dc.l diesel
- dc.w r6,65000 ;;;65000
- dc.w end_fxp
-
- diesel_env dc.w 0,64,64,255
- explosionx
- dc.w new_env
- dc.l explosion_env
- dc.w new_snd
- dc.l explosion
- dc.w r4,64
- dc.w end_fxp
- explosion2x
- dc.w new_env
- dc.l explosion_env
- dc.w new_snd
- dc.l explosion
- dc.w r8,32
- dc.w end_fxp
-
- explosion_env dc.w 0,64,64,255
- bellx
- dc.w new_env
- dc.l endrbell_env
- dc.w new_snd
- dc.l endrbell
- dc.w r8,12
- dc.w end_fxp
- bell2x
- dc.w new_env
- dc.l endrbell_env
- dc.w new_snd
- dc.l endrbell
- dc.w r8,5,r8,5,r8,5,r8,5,r8,12
- dc.w end_fxp
- bell3x
- dc.w new_env
- dc.l endrbell_env
- dc.w new_snd
- dc.l endrbell
- dc.w r6,16
- dc.w end_fxp
- bell4x
- dc.w new_env
- dc.l endrbell_env
- dc.w new_snd
- dc.l endrbell
- dc.w r6,5,r6,5,r6,10,r6,16
- dc.w end_fxp
-
- endrbell_env dc.w 0,64,64,255
- pulleyx
- dc.w new_env
- dc.l pulley_env
- dc.w new_snd
- dc.l pulley
- dc.w r4,65000 ;;;65000
- dc.w end_fxp
-
- pulley_env dc.w 0,64,64,255
- chuffx
- dc.w new_env
- dc.l chuff_env
- dc.w new_snd
- dc.l chuff
- dc.w r4,65000 ;;;65000
- dc.w end_fxp
- chuff2x
- dc.w new_env
- dc.l chuff_env
- dc.w new_snd
- dc.l chuff
- dc.w r6,65000 ;;;65000
- dc.w end_fxp
- chuff3x
- dc.w new_env
- dc.l chuff_env
- dc.w new_snd
- dc.l chuff
- dc.w r8,65000 ;;;65000
- dc.w end_fxp
- chuff4x
- dc.w new_env
- dc.l chuff_env
- dc.w new_snd
- dc.l chuff
- dc.w r10,65000 ;;;65000
- dc.w end_fxp
-
- chuff_env dc.w 0,64,64,255
- splashx
- dc.w new_env
- dc.l splash_env
- dc.w new_snd
- dc.l splash
- dc.w r4,85
- dc.w end_fxp
-
- splash_env dc.w 0,64,64,255
- cashx
- dc.w new_env
- dc.l cash_env
- dc.w new_snd
- dc.l cash
- dc.w r16,12
- dc.w end_fxp
-
- cash_env dc.w 0,64,64,255
-
-
-
- ;*******************************************************************
-
- sstart: dc.l 0,end_song
-
- pstart: dc.w end_patt
-
-
- ;----------------------------------
-
-
-
- ;;;;;;;;;;;;;;;;;;;;; RAILROAD TYCOON Music Data ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- CR set 20
- tcr1 set 9
- tcr2 set 8
- Q set cr/2
- tq set 8
- SQ set cr/4
-
- s1:
- dc.l prq3
- dc.l banjoc,banjoc,banjoc,banjoc,banjoall
- dc.l banjoall
- dc.l 0,end_song
- s2:
- dc.l bassintr,bassintr,bassleadin,bassallx
- dc.l bassallx
- DC.L 0,end_song
- s3:
- dc.l prq3,pr,pr,pr
- dc.l mainline,leadrif,pz,leadsolo
- dc.l 0,end_song
- s4:
- dc.l prq3,pr,pr,pr
- dc.l mainline2,hat,hat,hat,hat,hat,hat2
- dc.l pz2,hat,hat,hat,hat,hat,hat2,hmm
- dc.l 0,end_song
- pr:
- dc.w rest,cr*4
- dc.w end_patt
- pr3:
- dc.w rest,cr*2
- dc.w end_patt
-
- prq5:
- dc.w rest,q*5
- dc.w end_patt
-
- prq2:
- dc.w rest,q*2
- dc.w end_patt
- prq3:
- dc.w rest,q*3
- dc.w end_patt
-
-
- ;***********************************
- ;-----------------------------------------
- ; channel1
-
- banjoc:
- dc.w new_snd
- dc.l clv2
- dc.w new_env
- dc.l banjo_env
- dc.w g05,sq,c06,sq,e06,sq,g05,sq
- dc.w c06,sq,e06,sq,g05,sq,c06,sq,e06,sq
- dc.w g05,sq,c06,sq,e06,sq,g05,sq,c06,sq
- dc.w e06,sq,d06,sq
- dc.w end_patt
- banjoall:
- dc.w new_snd
- dc.l clv2
- dc.w new_env
- dc.l banjo_env
- dc.w g05,sq,c06,sq,e06,sq,g05,sq
- dc.w c06,sq,e06,sq,g05,sq,c06,sq,e06,sq
- dc.w g05,sq,c06,sq,e06,sq,g05,sq,c06,sq
- dc.w e06,sq,d06,sq,f05,sq,a05,sq,c06,sq
- dc.w f05,sq,a05,sq,c06,sq,f05,sq,a05,sq
- dc.w c06,sq,f05,sq,a05,sq,c06,sq,f05,sq
- dc.w a05,sq,c06,sq,a05,sq,g05,sq,c06,sq
- dc.w e06,sq,g05,sq,c06,sq,e06,sq,g05,sq
- dc.w c06,sq,e06,sq,g05,sq,c06,sq,e06,sq
- dc.w g05,sq,c06,sq,e06,sq,c06,sq,g05,sq
- dc.w b05,sq,d06,sq,g05,sq,b05,sq,d06,sq
- dc.w g05,sq,b05,sq,d06,sq,g05,sq,b05,sq
- dc.w d06,sq,g05,sq,b05,sq,d06,sq,b05,sq
- dc.w g05,sq,c06,sq,e06,sq,g05,sq,c06,sq
- dc.w e06,sq,g05,sq,c06,sq,e06,sq,g05,sq
- dc.w c06,sq,e06,sq,g05,sq,c06,sq,e06,sq
- dc.w c06,sq,f05,sq,a05,sq,c06,sq,f05,sq
- dc.w a05,sq,c06,sq,f05,sq,a05,sq,c06,sq
- dc.w f05,sq,a05,sq,c06,sq,f05,sq,a05,sq
- dc.w c06,sq,a05,sq,g05,sq,c06,sq,e06,sq
- dc.w g05,sq,c06,sq,e06,sq,g05,sq,e06,sq
- dc.w g05,sq,b05,sq,d06,sq,g05,sq,b05,sq
- dc.w d06,sq,g05,sq,b05,sq,g05,sq,c06,sq
- dc.w e06,sq,g05,sq,c06,sq,e06,sq,g05,sq
- dc.w c06,sq,g05,sq,c06,sq,e06,sq,g05,sq
- dc.w c06,sq,e06,sq,g05,sq,c06,sq,f05,sq
- dc.w a05,sq,c06,sq,f05,sq,a05,sq,c06,sq
- dc.w f05,sq,a05,sq,c06,sq,f05,sq,a05,sq
- dc.w c06,sq,f05,sq,a05,sq,c06,sq,a05,sq
- dc.w g05,sq,c06,sq,e06,sq,g05,sq,c06,sq
- dc.w e06,sq,g05,sq,c06,sq,e06,sq,g05,sq
- dc.w c06,sq,e06,sq,g05,sq,c06,sq,e06,sq
- dc.w c06,sq,g05,sq,b05,sq,d06,sq,g05,sq
- dc.w b05,sq,d06,sq,g05,sq,b05,sq,d06,sq
- dc.w g05,sq,b05,sq,d06,sq,g05,sq,b05,sq
- dc.w d06,sq,b05,sq,g05,sq,c06,sq,e06,sq
- dc.w g05,sq,c06,sq,e06,sq,g05,sq,c06,sq
- dc.w e06,sq,g05,sq,c06,sq,e06,sq,g05,sq
- dc.w c06,sq,e06,sq,c06,sq,f05,sq,a05,sq
- dc.w c06,sq,f05,sq,a05,sq,c06,sq,f05,sq
- dc.w a05,sq,c06,sq,f05,sq,a05,sq,c06,sq
- dc.w f05,sq,a05,sq,c06,sq,a05,sq,g05,sq
- dc.w c06,sq,e06,sq,g05,sq,c06,sq,e06,sq
- dc.w g05,sq,c06,sq,g05,cr*2 ;was cr*4
- dc.w end_patt
-
-
-
-
-
-
- ;------------------------
- ; channel 3
-
- leadin:
- dc.w new_snd
- dc.l fiddle
- dc.w new_env
- dc.l tune_env
- dc.w c03,sq,c03,sq,d03,q,e03,q
- dc.w end_patt
-
- leadrif:
- dc.w new_snd
- dc.l fiddle
- dc.w new_env
- dc.l tune_env
- dc.w pbend,up,3,f03,1
- dc.w d03,q*5
- dc.w g02,sq,g02,sq,a02,q,b02,q
- dc.w c03,q*5,d03,sq,d03,sq,e03,q,f03,q
- dc.w pbend,up,3,g03,1
- dc.w e03,q*5
- dc.w g02,sq,g02,sq,a02,q,b02,q
- dc.w c03,q*5,c03,sq,c03,sq,d03,q,e03,q
- dc.w pbend,up,3,f03,1
- dc.w d03
- dc.w q*5,g02,sq,g02,sq,a02,q,b02,q
- dc.w c03,cr*2 ;,g05,q
- dc.w end_patt
-
- mainline:
- dc.w new_snd
- dc.l fiddle
- dc.w new_env
- dc.l fiddle_env
- dc.w modon,1,1,2,2,6,6
- dc.w rest,q*4
- pz: dc.w rest,q,g05,q,a05,q,c06,q
- dc.w pbend,up,4,e06,2
- dc.w c06,q*3
- dc.w d06,q,c06,cr,d06,q,c06,q,c06,q
- dc.w f06,cr*2,g05,q,a05,q,c06,q
- dc.w pbend,up,4,e06,2
- dc.w c06,q*3,d06,q
- dc.w c06,cr,d06,cr,d06,q,g06,cr*2,g05,q
- dc.w a05,q,c06,q,e06,sq,e06,q,e06,sq
- dc.w e06,q,d06,q,c06,cr,d06,q,c06,q
- dc.w f06,sq,f06,q,f06,sq,f06,q,f06,q
- dc.w a06,q,g05,q,a05,q,c06,q,e06,sq
- dc.w e06,q,e06,sq,e06,q,c06,q,d06,cr
- dc.w g06,cr,e06,q,c06,q*7
- dc.w end_patt
- mainline2:
- dc.w new_snd
- dc.l fiddle
- dc.w new_env
- dc.l fiddle_env
- dc.w modon,1,1,2,2,6,6
- dc.w rest,q*4
- pz2: dc.w new_snd
- dc.l fiddle
- dc.w new_env
- dc.l fiddle_env
- dc.w rest,q*4
- dc.w pbend,up,3,g06,2
- dc.w e06,q*8
- dc.w a05,q
- dc.w c06,cr*2,rest,q*3
- dc.w pbend,up,3,g06,2
- dc.w e06,q*8
- dc.w b05,q,d06,cr*2,rest,q*3
- dc.w g06,sq,g06,q,g06,sq
- dc.w g06,q,rest,q*5
- dc.w a06,sq,a06,q,a06,sq,a06,q,a06,q
- dc.w c06,q,rest,q*3,g06,sq
- dc.w g06,q,g06,sq,g06,q,e06,q,b05,cr
- dc.w d06,cr,c06,q,g06,q*7
- dc.w end_patt
-
- leadsolo:
- dc.w new_snd
- dc.l fiddle
- dc.w new_env
- dc.l fiddle_env
- dc.w a05,sq,g05,sq,f05,sq,g05,sq
- dc.w a05,q,a05,sq,f05,sq,g05,sq,f05,sq
- dc.w g05,sq,f05,sq,c06,sq,f05,sq,d06,sq
- dc.w f05,sq,e06,q,e06,q,e06,sq,d06,sq
- dc.w c06,sq,g05,sq,c06,q*5,d06,q,d06,sq
- dc.w c06,sq,b05,sq,g05,sq,a05,q,a05,sq
- dc.w g05,sq,a05,sq,g05,sq,b05,q,c06,cr*2 ;14
- dc.w e06,sq,d06,sq,c06,sq,d06,sq,e06,sq
- dc.w f06,sq,g06,q,a06,q,a06,q,a06,q
- dc.w g06,sq,f06,sq,g06,sq,f06,sq,a06,q
- dc.w a06,cr,e06,sq,d06,sq,c06,q,d06,q
- dc.w d06,sq,c06,sq,g05,cr*2 ;26
- dc.w end_patt
- hmm:
- dc.w new_snd
- dc.l fiddle
- dc.w new_env
- dc.l fiddle_env
- dc.w b05,cr*2
- dc.w end_patt
- hat:
- dc.w new_snd
- dc.l hatcl
- dc.w new_env
- dc.l fiddle_env
- dc.w r16,sq,r16,sq,r16,sq,r16,sq
- dc.w r16,sq,r16,sq,r16,sq,r16,sq
- dc.w r16,sq,r16,sq,r16,sq,r16,sq
- dc.w r16,sq,r16,sq,r16,sq,r16,sq
- dc.w end_patt
- hat2:
- dc.w new_snd
- dc.l hatcl
- dc.w new_env
- dc.l fiddle_env
- dc.w r16,sq,r16,sq,r16,sq,r16,sq
- dc.w r16,sq,r16,sq,r16,sq,r16,sq
- dc.w end_patt
-
-
-
- ;-------------------------------
- ;channel2
-
-
-
-
- bassleadin:
- dc.w new_snd
- dc.l bas4
- dc.w new_env
- dc.l abass_env
- dc.w g02,q,a02,q,b02,q
- dc.w end_patt
-
-
- bassallx:
- dc.w new_snd
- dc.l bas4
- dc.w new_env
- dc.l abass_env
-
- dc.w c03,cr,g02,cr,c03,cr,g02,cr
- dc.w f02,cr,c02,cr,f02,cr,c02,cr,c03,cr
- dc.w g02,cr,c03,cr,g02,cr,g02,cr,d02,cr
- dc.w g02,cr,g02,q,a02,q,c03,cr,g02,cr
- dc.w c03,q*3,a02,q,f02,cr,c02,cr,f02,cr
- dc.w g02,q,a02,q,c03,cr,g02,cr,g02,cr
- dc.w d02,cr,c03,cr,g02,cr,c03,cr,g02,cr
- dc.w f02,cr,a02,cr,c03,cr,f02,q,c03,q
- dc.w c03,cr,g02,cr,c03,cr,g02,q,c03,q
- dc.w g02,cr,d02,cr,g02,cr,a02,cr,c03,cr
- dc.w g02,cr,c03,cr,a02,q,g02,q,f02,cr
- dc.w c02,cr,f02,cr,c02,cr,c02,cr,g02,cr
- dc.w g02,cr*2 ; was cr*4
- dc.w end_patt
-
- bassintr:
- dc.w new_snd
- dc.l bas4
- dc.w new_env
- dc.l abass_env
- dc.w g02,q,a02,q,b02,q,c03,cr
- dc.w g02,cr,c03,cr,g02,cr,c03,cr,g02,cr
- dc.w c03,q
- dc.w end_patt
-
-
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;; AULD LANG SYNE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- CR set 32
- tcr1 set 9
- tcr2 set 8
- Q set cr/2
- tq set 8
- SQ set cr/4
-
-
- s5:
- dc.l kpcr,kp3,kp3g,kp3,kp3f
- dc.l kp3,kp3g,kp3fa,kp3
- dc.l kp3,kp3g,kp3,kp3f
- dc.l kp3,kp3g,kp3fa,kp3a
- dc.l 0,end_song
- s6:
- dc.l kp1
- dc.l 0,end_song
- s7:
- dc.l kp2
- dc.l 0,end_song
- s8:
- dc.l kp2a
- dc.l 0,end_song
- kpcr:
- dc.w new_env
- dc.l rest_env
- dc.w rest,cr
- dc.w end_patt
- kp1:
- dc.w new_snd
- dc.l bas4
- dc.w new_env
- dc.l tune_env
- dc.w G01,cr,C02,cr,rest,cr,G01,cr,rest,cr
- dc.w G02,cr,rest,cr,D02,cr,rest,cr
- dc.w C02,cr,rest,cr,G01,cr,rest,cr
- dc.w F02,cr,rest,cr,C02,cr,rest,cr
- dc.w C02,cr,rest,cr,G01,cr,rest,cr
- dc.w G02,cr,rest,cr,D02,cr,rest,cr
- dc.w F02,cr,rest,cr,C02,cr,rest,cr
- dc.w C02,cr,rest,cr,G01,cr,F01,cr
- dc.w C02,cr,rest,cr,G01,cr,rest,cr
- dc.w G02,cr,rest,cr,D02,cr,rest,cr
- dc.w C02,cr,rest,cr,G01,cr,rest,cr
- dc.w F02,cr,rest,cr,C02,cr,rest,cr
- dc.w C02,cr,rest,cr,G01,cr,rest,cr
- dc.w G02,cr,rest,cr,D02,cr,rest,cr
- dc.w F02,cr,rest,cr,C02,cr,rest,cr
- dc.w C02,cr,G01,cr,C01,cr
- dc.w end_patt
- kp3:
- dc.w new_snd
- dc.l bango
- dc.w new_env
- dc.l tune_env
- dc.w C01,q,E01,q,G01,q,E01,q
- dc.w C02,q,E01,q,G01,q,E01,q
- dc.w end_patt
- kp3a:
- dc.w C01,q,E01,q,G01,q,E01,q
- dc.w C02,q,rest,q
- dc.w end_patt
- kp3f:
- dc.w F01,q,A01,q,C02,q,A01,q
- dc.w F02,q,A01,q,C02,q,A01,q
- dc.w end_patt
- kp3g:
- dc.w G01,q,B01,q,D02,q,B01,q
- dc.w G02,q,B01,q,D02,q,B01,q
- dc.w end_patt
- kp3fa:
- dc.w F01,q,A01,q,C02,q,A01,q
- dc.w G01,q,B01,q,D02,q,B01,q
- dc.w end_patt
- kp2a:
- dc.w new_snd
- dc.l fiddle
- dc.w new_env
- dc.l tune_env
- ; dc.w modon,1,1
- ; dc.w 1,1,8
- dc.w rest,cr,e05,sq*5,rest,sq,e05,sq,rest,sq,e05,cr*2
- dc.w G05,sq*5,rest,sq,G05,sq,rest,sq
- dc.w G05,cr*2,e05,sq*5,rest,sq,e05,q
- dc.w g05,cr,C06,cr,c06,(cr*2)+q,rest,q,c06,cr,e06,q*3,c06,sq
- dc.w rest,sq,c06,cr,g05,cr,g05,q*3,rest,q,g05,cr,rest,cr
-
- dc.w f05,q*3,f05,sq,rest,sq,f05,cr,d05,cr,e05,cr*3
-
- dc.w rest,cr,c06,q*3,g05,sq,rest,sq,g05,cr*2,f05,q*3,rest,q
- dc.w f05,cr*2,c06,q*3,g05,sq,rest,sq,g05,cr,c06,cr
- dc.w c06,q*5,rest,q
- dc.w rest,cr,c06,q*3,g05,sq,rest,sq,g05,cr*2,f05,cr*2
- dc.w G05,cr*2
- dc.w f05,cr*2,d05,cr*2,e05,cr*3
- dc.w end_patt
- kp2:
- dc.w new_snd
- dc.l fiddle
- dc.w new_env
- dc.l tune_env
- ; dc.w modon,1,1
- ; dc.w 1,1,8
- dc.w pbend,up,3,c06,16
- dc.w G05,sq*9
- dc.w rest,sq,C06,sq,rest,sq,C06,cr,E06,cr
- dc.w D06,q*3,C06,q,D06,cr,E06,q,D06,q,C06,sq*5,rest,sq,C06,q
- dc.w E06,cr
- dc.w pbend,up,1,a06,16
- dc.w G06,q*7
- dc.w rest,q,A06,cr,G06,q*3,E06,sq
- dc.w rest,sq,E06,cr,C06,cr,D06,q*3,C06,q,D06,cr,E06,q,D06,q
- dc.w C06,q*3,A05,sq,rest,sq,A05,cr
-
- dc.w pbend,up,3,c06,16
- dc.w G05,cr*4
-
- dc.w A06,cr,G06,q*3,E06,sq,rest,sq,E06,cr
- dc.w pbend,up,1,d06,16
- dc.w c06,q*5
- dc.w C06,q
- dc.w D06,cr,A06,cr,G06,q*3,E06,sq,rest,sq,E06,cr
- dc.w pbend,up,1,a06,16
- dc.w G06,q*7
- dc.w rest,q
- dc.w A06,cr,G06,q*3,E06,sq,rest,sq,E06,cr,C06,cr,D06,q*3,C06,q
- dc.w D06,cr,E06,q,D06,q
- dc.w C06,q*3,A05,sq,rest,sq,A05,cr
- dc.w pbend,up,3,c06,16
- dc.w G05,cr*4
- dc.w end_patt
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;; small tune 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- s9:
- dc.l pat1
- dc.l 0,end_song
- s10:
- dc.l pat1a,pat1a,pat1b,pat1a
- dc.l pat1c,pat1a
- dc.l 0,end_song
- s11:
- dc.l hat3
- dc.l 0,end_song
- s12:
- dc.l patr
- dc.l 0,end_song
-
- patr:
- dc.w rest,cr*4
- dc.w end_patt
-
- pat1:
- dc.w new_snd
- dc.l fiddle
- dc.w new_env
- dc.l tune_env
- dc.w c02,$0008,c02,$0008,c02,$0004,g01,$0004
- dc.w a01,$0004,g01,$0004,e02,$0008,e02,$0004,e02,$0008
- dc.w c02,$0004,d02,$0004,c02,$0004,e02,$0008,e02,$0008
- dc.w e02,$0004,c02,$0004,d02,$0008,c02,$0020,c02,$0008
- dc.w c02,$0008,c02,$0004,g01,$0004,a01,$0004,g01,$0004
- dc.w e02,$0008,e02,$0004,e02,$0008,c02,$0004,d02,$0004
- dc.w c02,$0004,e02,$0008,e02,$0008,e02,$0004,c02,$0004
- dc.w d02,$0008,c02,$0020,f02,$0008,f02,$0008,f02,$0004
- dc.w c02,$0004,d02,$0004,c02,$0004,a02,$0008,g02,$0004
- dc.w f02,$0008,f02,$0004,g02,$0004,f02,$0004,a02,$0008
- dc.w a02,$0008,a02,$0004,f02,$0004,g02,$0008,f02,$0020
- dc.w c02,$0008,c02,$0008,c02,$0004,g01,$0004,a01,$0004
- dc.w g01,$0004,e02,$0008,d02,$0004,c02,$0008,c02,$0004
- dc.w d02,$0008,e02,$0008,e02,$0008,e02,$0004,c02,$0004
- dc.w d02,$0008,c02,$0008,c02,$0008,d02,$0008,e02,$0004
- dc.w b01,$0004,g02,$0008,d02,$0004,e02,$0008,d02,$0004
- dc.w e02,$0004,d02,$0004,g02,$0008,d02,$0004,e02,$0008
- dc.w d02,$0004,e02,$0004,d02,$0004,f02,$0008,f02,$0008
- dc.w f02,$0008,d02,$0008,c02,$0020,e02,$0008,e02,$0008
- dc.w e02,$0004,c02,$0004,d02,$0004,c02,$0004,d02,$0008
- dc.w c02,$0004,c02,$0008,a01,$0004,c02,$0004,g01,$0004
- dc.w a01,$0008,c02,$0008,c02,$0004,g01,$0004,a01,$0008
- dc.w c02,$0008,g01,$0008,a01,$0008,c02,$0008,c02,$0004
- dc.w g01,$0004,a01,$0004,c02,$0004,eb02,$0004,e02,$0004
- dc.w g02,$0004,a02,$0004,c04,$0004,bb02,$0004,a02,$0004
- dc.w g02,$0004,e02,$0004,eb02,$0004,e02,$0004,g02,$0004
- dc.w eb02,$0008,e02,$0008,g02,$0004,e02,$0008,c02,$0024
- dc.w eb02,$0004,e02,$0004,g02,$0004,eb02,$0004,e02,$0004
- dc.w g02,$0004,a02,$0008,c04,$0004,bb02,$0004,a02,$0004
- dc.w g02,$0004,e02,$0004,eb02,$0004,e02,$0004,g02,$0004
- dc.w eb02,$0004,d02,$0004,c02,$0004,bb01,$0004,a01,$0004
- dc.w g01,$0004,e01,$0008,c02,$0008,g01,$0008,a01,$0004
- dc.w c02,$0004,ab01,$0004,a01,$0004,c02,$0004,ab01,$0004
- dc.w a01,$0004,c02,$0004,ab01,$0004,a01,$0004,c02,$0004
- dc.w ab01,$0004,a01,$0004,c02,$0004,ab01,$0004,a01,$0004
- dc.w c02,$0004,ab01,$0004,a01,$0004,c02,$0004,d02,$0004
- dc.w f02,$0004,eb02,$0004,d02,$0004,c02,$0004,a01,$0004
- dc.w ab01,$0004,a01,$0004,c02,$0004,ab01,$0004,a01,$0004
- dc.w c02,$0004,a01,$0004,ab01,$0004,g01,$0004,f01,$0004
- dc.w gb01,$0004,g01,$0004,c02,$0004,e01,$0004,eb01,$0004
- dc.w e01,$0004,g01,$0004,a01,$0004,c02,$0004,eb02,$0004
- dc.w e02,$0004,g02,$0004,a02,$0004,c04,$0004,a02,$0004
- dc.w g02,$0004,a02,$0004,g02,$0004,e02,$0004,eb02,$0004
- dc.w e02,$0004,g02,$0004,eb02,$0004,e02,$0004,g02,$0004
- dc.w eb02,$0004,e02,$0004,g02,$0004,eb02,$0004,e02,$0004
- dc.w g02,$0004,db02,$0004,d02,$0004,g02,$0004,db02,$0004
- dc.w d02,$0004,g02,$0004,b01,$0004,bb01,$0004,b01,$0004
- dc.w d02,$0004,e02,$0004,g02,$0004,e02,$0004,d02,$0004
- dc.w b01,$0004,d02,$0004,e02,$0004,f02,$0004,eb02,$0004
- dc.w d02,$0004,c02,$0004,a01,$0004,ab01,$0004,a01,$0004
- dc.w c02,$0004,ab01,$0004,g01,$0004,f01,$0004,eb01,$0004
- dc.w d01,$000c,eb01,$0004,e01,$0004,g01,$0004,a01,$0004
- dc.w c02,$0004,eb02,$0004,e02,$0004,g02,$0004,a02,$0004
- dc.w c03,$0004,g02,$0004,a02,$0004,c03,$0004,g02,$0004
- dc.w a02,$0004,c03,$0004,g02,$0004,b02,$0004,g02,$0004
- dc.w a02,$0008,g02,$0008,g02,$0008,g02,cr
- dc.w end_patt
-
- pat1a:
- dc.w new_snd
- dc.l bas4
- dc.w new_env
- dc.l tune_env
- dc.w C03,q,G02,q,C03,q,G02,q
- dc.w C03,q,G02,q,C03,sq,G02,sq,A02,sq,B02,sq
- dc.w end_patt
- pat1b:
- dc.w new_snd
- dc.l bas4
- dc.w new_env
- dc.l tune_env
- dc.w F02,q,C02,q,F02,q,C02,q
- dc.w F02,q,C02,q,F02,sq,C02,sq,D02,sq,E02,sq
- dc.w end_patt
- pat1c:
- dc.w new_snd
- dc.l bas4
- dc.w new_env
- dc.l tune_env
- dc.w G02,q,D02,q,G02,q,D02,q
- dc.w F02,q,C02,q,F02,sq,F02,sq,E02,sq,D02,sq
- dc.w end_patt
- hat3:
- dc.w new_snd
- dc.l hatcl
- dc.w new_env
- dc.l fiddle_env
- dc.w r16,4,r13,4,r16,4,r13,4
- dc.w r16,8,r16,4,r13,4
- dc.w r16,4,r13,4,r16,4,r13,4
- dc.w r16,8,r16,4,r13,4
- dc.w end_patt
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;; small tune 2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- CR set 20
- Q set cr/2
- SQ set cr/4
-
- s13:
- dc.l pat2
- dc.l 0,end_song
- s14:
- dc.l pat2b
- dc.l 0,end_song
- s15:
- dc.l hat7
- dc.l 0,end_song
- s16:
- dc.l pat22
- dc.l 0,end_song
-
- pat2 ;
- dc.w new_snd
- dc.l fiddle
- dc.w new_env
- dc.l tune_env
- dc.w a02,q*5,g02,q,f02,q,g02,q
- dc.w a02,q*5,g02,q,a02,q,c03,q
- dc.w g02,q*5,f02,q,e02,q,f02,q
- dc.w g02,q*5,a02,cr,g02,q
- dc.w f02,q*3,bb02,q*3,d03,cr
- dc.w c03,q*3,g02,q*3,a02,cr
- dc.w f02,q*5,g02,q,a02,cr
- dc.w g02,cr*4
- dc.w end_patt
- pat22 ;
- dc.w new_snd
- dc.l fiddle
- dc.w new_env
- dc.l tune_env
- dc.w C03,q*5,Bb02,q,A02,q,Bb02,q
- dc.w C03,q*5,Bb02,q,C03,q,F03,q
- dc.w Bb02,q*5,A02,q,G02,q,A02,q
- dc.w Bb02,q*5,C03,cr,Bb02,q
- dc.w Bb02,q*3,D03,q*3,F03,cr
- dc.w E03,q*3,C03,q*5
- dc.w A02,q*5,Bb02,q,C03,cr
- dc.w C03,cr*4
- dc.w end_patt
- pat2b:
- dc.w new_snd
- dc.l bas4
- dc.w new_env
- dc.l tune_env
- dc.w F02,q*3,F02,q,F02,cr,C02,cr
- dc.w F02,q*3,F02,q,F02,cr,C02,cr
- dc.w C02,q*3,C02,q,C02,cr,G01,cr
- dc.w C02,q*3,C02,q,C02,cr,B01,cr
- dc.w Bb01,q*3,Bb01,q,Bb01,cr,Bb01,cr
- dc.w C02,q*3,C02,q,C02,cr,G01,cr
- dc.w F02,q*3,F02,q,F02,cr,C02,cr
- dc.w C02,q*3,C02,q,C02,cr,G01,cr
- dc.w end_patt
- hat7:
- dc.w new_snd
- dc.l hatcl
- dc.w new_env
- dc.l fiddle_env
- dc.w r16,sq,r13,sq,r16,sq,r13,sq
- dc.w r16,sq,r13,sq,r16,sq,r13,sq
- dc.w r16,sq,r13,sq,r16,sq,r13,sq
- dc.w r16,sq,r13,sq,r16,sq,r13,sq
- dc.w end_patt
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;; small tune 3 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- CR set 20
- Q set cr/2
- SQ set cr/4
-
- s17:
- dc.l pat3
- dc.l 0,end_song
- s18:
- dc.l pat3a,pat3a,pat3b,pat3a
- dc.l pat3c,pat3a
- dc.l 0,end_song
- s19:
- dc.l hat4
- dc.l 0,end_song
- s20:
- dc.l pat32
- dc.l 0,end_song
-
- pat3 ;
- dc.w new_snd
- dc.l fiddle
- dc.w new_env
- dc.l tune_env
- dc.w c03,cr,bb02,cr,a02,sq,bb02,sq
- dc.w g02,q,e02,cr,e02,q,g02,q,e02,sq
- dc.w f02,sq,d02,q,c02,cr*2,c03,cr,bb02,cr
- dc.w a02,sq,bb02,sq,g02,q,e02,cr,e02,q
- dc.w g02,q,e02,sq,f02,sq,d02,q,c02,cr*2
- dc.w ab02,sq,a02,sq,c03,q,ab02,q,a02,q
- dc.w c03,q,f02,q,g02,q,a02,q,ab02,sq
- dc.w a02,sq,c03,q,ab02,q,a02,q,c03,cr*2
- dc.w c03,cr,bb02,cr,a02,sq,bb02,sq,g02,q
- dc.w e02,cr,e02,q,g02,q,e02,sq,f02,sq
- dc.w d02,q,c02,cr*2,db02,sq,d02,sq,g02,sq
- dc.w db02,sq,d02,q,g02,sq,d02,q,g02,sq
- dc.w d02,q,g02,$001e,f02,q,eb02,sq,d02,sq
- dc.w c02,q,f02,q,eb02,q,d02,q,c02,q
- dc.w c03,cr,bb02,cr,a02,sq,bb02,sq,g02,q
- dc.w e02,cr,e02,q,g02,q,e02,sq,f02,sq
- dc.w d02,q,c02,cr*2
- dc.w end_patt
- pat32 ;
- dc.w new_snd
- dc.l fiddle
- dc.w new_env
- dc.l tune_env
- dc.w E03,cr,D03,cr,C03,sq,D03,sq
- dc.w Bb02,q,G02,cr,G02,q,Bb02,q,G02,sq
- dc.w A02,sq,F02,q,E02,cr*2
- dc.w E03,cr,D03,cr,C03,sq,D03,sq
- dc.w Bb02,q,G02,cr,G02,q,Bb02,q,G02,sq
- dc.w A02,sq,F02,q,E02,cr*2
-
- ; dc.w ab02,sq,a02,sq,c03,q,ab02,q,a02,q
- ; dc.w c03,q,f02,q,g02,q,a02,q,ab02,sq
- ; dc.w a02,sq,c03,q,ab02,q,a02,q,c03,cr*2
-
- dc.w rest,cr*8
-
- dc.w E03,cr,D03,cr,C03,sq,D03,sq
- dc.w Bb02,q,G02,cr,G02,q,Bb02,q,G02,sq
- dc.w A02,sq,F02,q,E02,cr*2
-
- ; dc.w db02,sq,d02,sq,g02,sq
- ; dc.w db02,sq,d02,q,g02,sq,d02,q,g02,sq
- ; dc.w d02,q,g02,$001e,f02,q,eb02,sq,d02,sq
- ; dc.w c02,q,f02,q,eb02,q,d02,q,c02,q
-
- dc.w rest,cr*8
-
- dc.w E03,cr,D03,cr,C03,sq,D03,sq
- dc.w Bb02,q,G02,cr,G02,q,Bb02,q,G02,sq
- dc.w A02,sq,F02,q,E02,cr*2
- dc.w end_patt
- pat3a:
- dc.w new_snd
- dc.l bas4
- dc.w new_env
- dc.l tune_env
- dc.w C03,cr,G02,cr,C03,cr,G02,cr
- dc.w C03,cr,G02,cr,C03,q,G02,q,A02,q,B02,q
- dc.w end_patt
- pat3b:
- dc.w new_snd
- dc.l bas4
- dc.w new_env
- dc.l tune_env
- dc.w F02,cr,C02,cr,F02,cr,C02,cr
- dc.w F02,cr,C02,cr,F02,q,C02,q,D02,q,E02,q
- dc.w end_patt
- pat3c:
- dc.w new_snd
- dc.l bas4
- dc.w new_env
- dc.l tune_env
- dc.w G02,cr,D02,cr,G02,cr,D02,cr
- dc.w F02,cr,C02,cr,F02,q,F02,q,E02,q,D02,q
- dc.w end_patt
- hat4:
- dc.w new_snd
- dc.l hatcl
- dc.w new_env
- dc.l tune_env
- dc.w r16,sq,r13,sq,r16,sq,r13,sq
- dc.w r16,sq,r13,sq,r16,sq,r13,sq
- dc.w r16,sq,r13,sq,r16,sq,r13,sq
- dc.w r16,sq,r13,sq,r16,sq,r13,sq
- dc.w end_patt
- ;;;;;;;;;;;;;;;;;;;;;;;;;; small tune 4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- s21:
- dc.l pat4
- dc.l 0,end_song
- s22:
- dc.l pat4a,pat4a,pat4c,pat4d,pat4e
- dc.l pat4a,pat4e,pat4b,pat4e,pat4f,pat4e
- dc.l 0,end_song
- s23:
- dc.l pat4g,pat4g
- dc.l 0,end_song
- s24:
- dc.l hat5
- dc.l 0,end_song
-
- ; dc.w pbend,up,3,f03,1
- ; dc.w d03,q*5
-
- pat4 ;
- dc.w new_snd
- dc.l fiddle
- dc.w new_env
- dc.l tune_env
- dc.w d03,q,db03,q,c03,q,b02,cr
- dc.w g02,q,a02,q
- dc.w pbend,up,3,d03,5
- dc.w b02,cr,db03,q
- dc.w c03,q,b02,cr,g02,q,a02,q
- dc.w pbend,up,3,d03,5
- dc.w b02,cr,db03,q
- dc.w c03,q,b02,cr,g02,q
- dc.w a02,q,b02,q,d02,cr*4,gb02,q,e02,q
- dc.w d02,q,a02,cr,gb02,q,d02,cr,gb02,q
- dc.w e02,q,d02,q,a02,cr,f02,q,gb02,q
- dc.w a02,q,eb02,q,e02,q,g02,q,c02,cr
- dc.w d02,q,e02,q,g02,q
- dc.w pbend,up,9,d03,60
- dc.w d02,q*9
- dc.w db03,q,c03,q,b02,cr,g02,q,a02,q
- ; dc.w b02,q
- dc.w pbend,up,3,d03,5
- dc.w b02,cr,db03,q
- dc.w c03,q,b02,cr
- dc.w g02,q,a02,q,b02,q,b02,q,a02,q
- dc.w g02,q,d03,cr,b02,q,a02,q
-
- ;dc.w pbend,up,1,e03,5
- ;dc.w g02,q*9
-
- dc.w g02,q,e03,cr*4
-
- dc.w e03,q,d03,q,c03,q,g03,cr
- dc.w e03,q,d03,cr,d03,q,b02,q,g02,q
- dc.w g02,cr,a02,q,b02,cr,a02,q,gb02,q
- dc.w d02,q,d03,cr,a02,q,gb02,q,d03,q
- dc.w b02,cr,g02,cr,g02,cr*2
- dc.w end_patt
- pat4a:
- dc.w new_snd
- dc.l bas4
- dc.w new_env
- dc.l tune_env
- dc.w G02,cr,D02,cr,G02,cr,D02,cr
- pat4e dc.w G02,cr,D02,cr,G02,cr,D02,cr
- dc.w end_patt
- pat4b:
- dc.w new_snd
- dc.l bas4
- dc.w new_env
- dc.l tune_env
- dc.w C03,cr,G02,cr,C03,cr,G02,cr
- pat4d dc.w C03,cr,G02,cr,C03,cr,G02,cr
- dc.w end_patt
- pat4c:
- dc.w new_snd
- dc.l bas4
- dc.w new_env
- dc.l tune_env
- dc.w D03,cr,A02,cr,D03,cr,A02,cr
- pat4f dc.w D03,cr,A02,cr,D03,cr,A02,cr
- dc.w end_patt
- pat4g:
- dc.w new_snd
- dc.l snr1
- dc.w new_env
- dc.l tune_env
- dc.w rest,q,127,q
- dc.w rest,q,127,q
- dc.w rest,q,127,q
- dc.w rest,q,127,q
- dc.w end_patt
- hat5:
- dc.w new_snd
- dc.l hatcl
- dc.w new_env
- dc.l tune_env
- dc.w r19,sq,r18,sq,r19,sq,r18,sq
- dc.w r19,sq,r18,sq,r19,sq,r18,sq
- dc.w r19,sq,r18,sq,r19,sq,r18,sq
- dc.w r19,sq,r18,sq,r19,sq,r18,sq
- dc.w end_patt
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-
- ; sample parameters
- hatcl
- dc.w 1
- dc.l hatcd
- dc.w 665/2
- dc.l restd
- dc.w 16/2
- clv2
- dc.w 1
- dc.l clv2d
- dc.w 1632/2
- dc.l restd
- dc.w 16/2
- bas4
- dc.w 1
- dc.l bas4d
- dc.w 3394/2
- dc.l restd
- dc.w 16/2
- snr1
- dc.w 1
- dc.l snr1d
- dc.w 6325/2
- dc.l restd
- dc.w 16/2
- bango
- dc.w 1
- dc.l bangod
- dc.w 4072/2
- dc.l restd
- dc.w 16/2
- fiddle
- dc.w 1
- dc.l fiddled
- dc.w 10820/2
- dc.l fiddled
- dc.w 10820/2
- couple
- dc.w 1
- dc.l coupled
- dc.w 1867/2
- dc.l restd
- dc.w 16/2
- hitbar4
- dc.w 1
- dc.l hitbar4d
- dc.w 2222/2
- dc.l restd
- dc.w 16/2
- twhis
- dc.w 1
- dc.l twhisd
- dc.w 3846/2
- dc.l restd
- dc.w 16/2
- hitgrou4
- dc.w 1
- dc.l hitgrou4d
- dc.w 2436/2
- dc.l restd
- dc.w 16/2
- brakes
- dc.w 1
- dc.l brakesd
- dc.w 1130/2
- dc.l brakesd
- dc.w 1130/2
- tick
- dc.w 1
- dc.l tickd
- dc.w 41/2
- dc.l restd
- dc.w 16/2
- diesel
- dc.w 1
- dc.l dieseld
- dc.w 500/2
- dc.l dieseld
- dc.w 500/2
- explosion
- dc.w 1
- dc.l explosiond
- dc.w 5203/2
- dc.l restd
- dc.w 16/2
- endrbell
- dc.w 1
- dc.l endrbelld
- dc.w 1864/2
- dc.l restd
- dc.w 16/2
- pulley
- dc.w 1
- dc.l pulleyd
- dc.w 870/2
- dc.l pulleyd
- dc.w 870/2
- chuff
- dc.w 1
- dc.l chuffd
- dc.w 5056/2
- dc.l chuffd
- dc.w 5056/2
- splash
- dc.w 1
- dc.l splashd
- dc.w 6843/2
- dc.l restd
- dc.w 16/2
- cash
- dc.w 1
- dc.l cashd
- dc.w 4128/2
- dc.l restd
- dc.w 16/2
-
- sine
- dc.w 1
- dc.l sine_datad
- dc.w 18/2
- dc.l sine_datad
- dc.w 18/2
-
-
- 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
-
- sine_datad:
- dc.b 127,100,50,25,0,-25,-50,-100,-127
- dc.b -127,-100,-50,-25,0,25,50,100,127
-
-
- og dc.w 0,35,255
- kick_env dc.w 0,64,255
- tune_env:
- x_env: dc.w 0,54,255
- abass_env: dc.w 0,64,44,40,35,30
- dc.w 25,24,23,22,21,20,19,15,10,7,5,4,3,2,1,255
- fiddle_env:
- guit_env: dc.w 0,44,255
- flt1_env: dc.w 0,35,255
- banjo_env:
- org_env: dc.w 0,25,255
-
- jet_env dc.w 0,64,64,59,54,49,44,40
- dc.w 35,30,25,20,15,255
- dc.w 10,10,11,12,13,255
- rest_env: dc.w 0,0,0,0,0,0,0,0,255
-
-
- ;**************************************************
- hatcd incbin df1:hatc124.sam
- snr1d incbin df1:snr1.sam
- bas4d incbin df1:bas5.sam
- bangod incbin df1:bango.sam
- fiddled incbin df1:fiddle.sam
- clv2d incbin df1:clv2.sam
- ;*************************************************
-
- coupled incbin df1:couple.con
- hitbar4d incbin df1:hitbar4.con
- twhisd incbin df1:twhis.con
- hitgrou4d incbin df1:hitgrou4.con
- brakesd incbin df1:brakes.con
- tickd incbin df1:tick.con
- dieseld incbin df1:diesel.con
- explosiond incbin df1:explosion.con
- endrbelld incbin df1:endrbell.con
- pulleyd incbin df1:pulley.con
- chuffd incbin df1:chuff.con
- splashd incbin df1:splash.con
- cashd incbin df1:coin1.con
-
- end
-
-