home *** CD-ROM | disk | FTP | other *** search
/ Dave Lowe: Amiga KQ 6 Levels Data / Lowe_AmigaKQ6LevelsData.adf / isle_of_crown / kq6ioc.s < prev   
Encoding:
Text File  |  1978-07-25  |  40.6 KB  |  2,357 lines

  1.  
  2.  
  3.  
  4.  
  5.     ;    DRIVER AND MUSIC REMAIN COPYRIGHT D.LOWE 
  6.  
  7.     ;       KINGS QUEST VI..Island Of Crown
  8.     ;    7 tunes/backgrounds and 9 fx see lists.
  9.     ;
  10.  
  11.  
  12.  
  13.  
  14.     ;    JEREMY
  15.     ;    devpac source code file... no macros.
  16.     ;       Its commented wherever needed
  17.     ;    The samples are incbin at the end,you will
  18.     ;    need to change the directory to your own.
  19.     ;    This source files contains a devpac pseudo op
  20.     ;    called set. it allows redefining of values
  21.     ;    you may need to change this to something else if
  22.     ;    using a different assembler.
  23.  
  24.     ;    It must be assembled with SYMBOLS CASE independent.
  25.  
  26.     ;       dont hesitate to ring with any problems
  27.  
  28.  
  29.  
  30.     ;        DAVE LOWE.....0723  870648
  31.  
  32.  
  33.  
  34. ;        **************************
  35.  
  36.     section issA,code_c    ;must be in low memory for dma access
  37.                 ;DEVPAC PSEUDO OP ..CAN BE DELETED
  38.  
  39.  
  40. ;*****************************************
  41.  
  42.  
  43. select_tunes    equ 0        ;for conditional assembly whilst testing
  44.                 ; zero to step tunes on mouse button
  45.                 ; can be deleted..not essential
  46.  
  47.         ;  ALL EQUs
  48.  
  49. a00  equ  508*2
  50. bb00  equ  480*2
  51. b00  equ  453*2
  52.  
  53. c01  equ  428*2
  54. db01  equ  404*2
  55. d01 equ  381*2
  56. eb01  equ  360*2
  57. e01  equ  339*2
  58. f01  equ  320*2
  59. gb01  equ  302*2
  60. g01  equ  285*2
  61. ab01 equ 269*2
  62. a01  equ  508
  63. bb01  equ  480
  64. b01  equ  453
  65.  
  66. c02  equ  428
  67. db02  equ  404
  68. d02  equ  381
  69. eb02  equ  360
  70. e02  equ  339
  71. f02  equ  320
  72. gb02  equ  302
  73. g02  equ  285
  74. ab02 equ 269
  75. a02  equ  254
  76. bb02  equ  240
  77. b02  equ  226
  78.  
  79. c03  equ  214
  80. db03  equ  202
  81. d03  equ  190
  82. eb03  equ  180
  83. e03  equ  170
  84. f03  equ  160
  85. gb03  equ  151
  86. g03  equ  143
  87. ab03 equ 135
  88. a03  equ  127
  89.  
  90. bb03  equ  480*2
  91. b03  equ  453*2
  92.  
  93. c04  equ  428*2
  94. db04  equ  404*2
  95. d04 equ  381*2
  96. eb04  equ  360*2
  97. e04  equ  339*2
  98. f04  equ  320*2
  99. gb04  equ  302*2
  100. g04  equ  285*2
  101. ab04 equ 269*2
  102. a04  equ  508
  103. bb04  equ  480
  104. b04  equ  453
  105.  
  106. c05  equ  428
  107. db05  equ  404
  108. d05  equ  381
  109. eb05  equ  360
  110. e05  equ  339
  111. f05  equ  320
  112. gb05  equ  302
  113. g05  equ  285
  114. ab05 equ 269
  115. a05  equ  254
  116. bb05  equ  240
  117. b05  equ  226
  118.  
  119. c06  equ  214
  120. db06  equ  202
  121. d06  equ  190
  122. eb06  equ  180
  123. e06  equ  170
  124. f06  equ  160
  125. gb06  equ  151
  126. g06  equ  143
  127. ab06 equ 135
  128. a06  equ  127
  129. bb06  equ  480*2
  130. b06  equ  453*2
  131.  
  132. c07  equ  428*2
  133. db07  equ  404*2
  134. d07 equ  381*2
  135. eb07  equ  360*2
  136. e07  equ  339*2
  137. f07  equ  320*2
  138. gb07  equ  302*2
  139. g07  equ  285*2
  140. ab07 equ 269*2
  141. a07  equ  508
  142. bb07  equ  480
  143. b07  equ  453
  144.  
  145. c08  equ  428
  146. db08  equ  404
  147. d08  equ  381
  148. eb08  equ  360
  149. e08  equ  339
  150. f08  equ  320
  151. gb08  equ  302
  152. g08  equ  285
  153. ab08 equ 269
  154. a08  equ  254
  155. bb08  equ  240
  156. b08  equ  226
  157.  
  158.  
  159. v equ 0
  160.  
  161. no_loop equ 0
  162. loop equ 0
  163. chann1reg   equ $dff0a0    
  164. chann2reg   equ $dff0b0
  165. chann3reg   equ $dff0c0
  166. chann4reg   equ $dff0d0
  167. dmacon     equ $dff096
  168. int_bf_int   equ   $dff01e
  169. int_bf_w    equ   $dff09a
  170. vhposr     equ   $dff006
  171. in_line    equ   0
  172. new_snd    equ   4
  173. end_song     equ   1
  174. end_patt    equ   8
  175. new_env    equ   12
  176. pbend     equ   16
  177.  
  178.  
  179.  
  180. hi: equ 223
  181. lo:  equ 446
  182.  
  183. r22    equ 134
  184. r20    equ 179        ;correctum
  185. r19    equ 150
  186. r18    equ 178
  187. r17    equ 200
  188. r16:    equ 227        ;correctum
  189. r15:    equ 249
  190. r14    equ 280
  191. r13:    equ 305
  192. r12:    equ 333
  193. r11:    equ 361
  194. r10:    equ 389
  195. r9:    equ 419
  196. r8:    equ 446
  197. r7:    equ 446+112
  198. r6:    equ 446+223
  199. r5:    equ 446+223+112
  200. r4:    equ 446*2
  201. r3:    equ 446*3
  202. r2:    equ 446*4
  203. r1:    equ 446*8
  204.  
  205.  
  206. filter: equ $bfe001
  207. filter_on equ 44
  208. filter_off equ 48
  209.  
  210. modon     equ   20
  211. pboff     equ   24
  212. modoff     equ   28
  213. rest     equ 32
  214. end_fxp  equ 36
  215. end_fx3  equ 36
  216. end_fx4  equ 40
  217. acc    equ 52
  218. repeat    equ 56
  219. down      equ   1
  220. up       equ   2
  221.  
  222. fx    equ 0
  223.  
  224.  
  225.  
  226. ;**************************************************************************
  227. ;**************************************************************************
  228.  
  229.  
  230.  ;    THIS IS THE CONTROL SECTION FOR TESTING AS A STAND ALONE PRG. 
  231.  
  232.     ;       AND CAN BE DELETED WHEN NOT REQUIRED
  233.  
  234.     move.l    #1,song_buffer
  235.     jsr select_new_song    ;set up tune..numnber 1
  236.  
  237. testloop:
  238.     jsr delay    ;wait for scan line  at 50hz on pal
  239.  
  240.     jsr driver    ;run driver at 50 hz for testing
  241.  
  242.         bra testloop    ;loop back
  243.  
  244.  
  245. ;--------
  246.  
  247.         ;these are all routines used during test/stand alone
  248.         ;        assembly
  249.  
  250. delay:
  251.     tst.w fxtimer
  252.     bne no_test
  253.     clr.l d0
  254.     move.b $bfe001,d0
  255.     btst #6,d0
  256.     bne no_test1
  257.     move.w #10,fxtimer
  258.     bra testfx4
  259. no_test
  260.     subq #1,fxtimer
  261. no_test1
  262.     clr.l d0
  263.         move.w vhposr,d0
  264.         andi.w #%1111111100000000,d0
  265.         cmpi.w #%1111111100000000,d0
  266.  
  267.     bne no_test1
  268.     rts
  269.  
  270. testfx4:  
  271.  
  272.     clr.l d0
  273.     move.b $bfe001,d0
  274.     btst #6,d0
  275.     beq testfx4
  276.  
  277.     move.l song_buffer,d0
  278.     addq.l #1,d0
  279.     cmp.l    max_songs,d0
  280.     bne nores
  281.     move.l #1,d0
  282. nores    move.l d0,song_buffer
  283.  
  284.  
  285.     ifeq    select_tunes
  286.  
  287.     jsr    select_new_song        ;new song on mouse button
  288.  
  289.  
  290.     endc
  291.  
  292.     move.l fx_last,d0
  293.     move.l d0,fx_kill
  294.  
  295.     jsr kill_loopfx            ;use only one fx at a time
  296.                     ;for testing
  297.  
  298. no_k
  299.         move.l fx_no,fx_number
  300.     move.l fx_no,fx_last
  301.     addq.l #1,fx_no
  302.     move.l    max_fx,d0
  303.         cmp.l fx_no,d0
  304.     bne noreset
  305.     move.l #1,fx_no    
  306. noreset: 
  307.  
  308.  
  309.     ifne    select_tunes
  310.  
  311.     jsr set_up_fx
  312.  
  313.     endc
  314.  
  315.     bra no_test    
  316.  
  317. fxtc:          dc.w 10
  318. fx_no:         dc.l  1
  319. fx_last        dc.l  0
  320.  
  321.  
  322. ;        END OF CONTROL (DELETABLE) SECTION
  323.  
  324. ;********************************************************************
  325. ;********************************************************************
  326.  
  327. ;    MAIN VARIABLES TO BE ACCESSED BY PROGRAMMER DURING RUNTIME
  328.  
  329.  
  330. fx_number:     dc.l 0 ;     number of fx required here
  331.  
  332.  
  333. fx_kill        dc.l 0 ;     number of fx to kill/used mainly
  334.                ;     to kill looping fx
  335.  
  336.  
  337. song_buffer     dc.l 1 ;     number of piece of music required here ie.1 to ?               ;     currently playing beach background..see list
  338.  
  339. music_disable:  dc.w 0 ;     1 = disable music
  340.  
  341. fx_disable:     dc.w 0 ;     1 = disable fx
  342.  
  343.  
  344. fade:        dc.w 0 ;      0 to 64..0 = full volume/64 = off
  345.  
  346.  
  347. ;    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  348.  
  349. ;  THESE VARIABLES ARE USED INTERNALLY BY THE DRIVER
  350. fxr1         dc.l 0  
  351. fxr2         dc.l 0  
  352. fxr3         dc.l 0  
  353. fxr4         dc.l 0  
  354. fxc1        dc.l 0
  355. fxc2          dc.l 0
  356. fxc3        dc.l 0
  357. fxc4          dc.l 0
  358. fx1_flag    dc.w 0
  359. fx2_flag    dc.w 0
  360. fx3_flag    dc.w 0
  361. fx4_flag    dc.w 0
  362. fxtimer        dc.w 0
  363. gen        dc.w 0
  364. int_disable    dc.w 0
  365. altpf         dc.w 0
  366. kill_flag    dc.w 0
  367. ;  *******************************************************
  368.  
  369. ;  CALL THIS SUBROUTINE TO SET UP THE REQIURED FX
  370. ;  on entry it requires the fx number to be in "fx_number"(see above)
  371.  
  372.  
  373. set_up_fx
  374.     movem.l d5/a2,-(a7)    ;save used registers
  375.  
  376.     tst.l fxc4
  377.     bne check3
  378. use4:    
  379.     move.w #%0000000000001000,d5
  380.     lea chann4reg,a2
  381.     jsr end_fx4p
  382.     move.l fx_number,fxr4
  383.     move.l fx_number,fxc4
  384.     move.l #0,fx_number
  385.     bra no_fx
  386. check3:    tst.l fxc3
  387.     bne check2
  388. use3:
  389.     move.w #%0000000000000100,d5
  390.     lea chann3reg,a2
  391.     jsr end_fx3p
  392.     move.l fx_number,fxr3
  393.     move.l fx_number,fxc3
  394.     move.l #0,fx_number
  395.     bra no_fx
  396. check2:    tst.l fxc2
  397.     bne check1
  398. use2:
  399.     move.w #%0000000000000010,d5
  400.     lea chann2reg,a2
  401.     jsr end_fx2p
  402.     move.l fx_number,fxr2
  403.     move.l fx_number,fxc2
  404.     move.l #0,fx_number
  405.     bra no_fx
  406. check1:    tst.l fxc1
  407.     bne use3
  408. use1:
  409.     move.w #%0000000000000001,d5
  410.     lea chann1reg,a2
  411.     jsr end_fx1p
  412.     move.l fx_number,fxr1
  413.     move.l fx_number,fxc1
  414.     move.l #0,fx_number
  415. no_fx
  416.     movem.l (a7)+,d5/a2    ;restore registers
  417.     rts
  418.  
  419. ;*************************************************
  420. ;          CALL HERE TO KILL ANY FX...
  421. ;       after putting the number of the fx you want to kill
  422. ;            into fx_kill
  423.  
  424. kill_loopfx
  425.  
  426.     movem.l d5/a2,-(a7)    ;save used registers
  427.     move.l fx_kill,d5
  428.     cmp.l fxc1,d5
  429.     bne k2
  430.     move.w #%0000000000000001,d5
  431.     lea chann1reg,a2
  432.     jsr end_fx1p
  433.     bra error
  434. k2    cmp.l fxc2,d5
  435.     bne k3
  436.     move.w #%0000000000000010,d5
  437.     lea chann2reg,a2
  438.     jsr end_fx2p
  439.     bra error
  440. k3    cmp.l fxc3,d5
  441.     bne k4
  442.     move.w #%0000000000000100,d5
  443.     lea chann3reg,a2
  444.     jsr end_fx3p
  445.     bra error
  446. k4    cmp.l fxc4,d5
  447.     bne error
  448.     move.w #%0000000000001000,d5
  449.     lea chann2reg,a2
  450.     jsr end_fx4p
  451. error
  452.     clr.l fx_kill
  453.     movem.l (a7)+,d5/a2    ;restore registers
  454.     rts
  455. ;*************************************************
  456.  
  457.     ; CALL HERE TO KILL ANY SOUNDS LEFT ON CHIP
  458.  
  459. kill_chip:
  460.     move.w #%0000000000001111,dmacon
  461.     move.l rest_data,chann1reg
  462.     move.l rest_data,chann2reg
  463.     move.l rest_data,chann3reg
  464.     move.l rest_data,chann4reg
  465.     move.w #16,chann1reg+4    
  466.     move.w #16,chann2reg+4    
  467.     move.w #16,chann3reg+4    
  468.     move.w #16,chann4reg+4    
  469.     move.w #0,chann1reg+8
  470.     move.w #0,chann2reg+8
  471.     move.w #0,chann3reg+8
  472.     move.w #0,chann4reg+8
  473.     move.w #1,chann1reg+6
  474.     move.w #1,chann2reg+6
  475.     move.w #1,chann3reg+6
  476.     move.w #1,chann4reg+6
  477.     move.l #0,fxr1
  478.     move.l #0,fxr2
  479.     move.l #0,fxr3
  480.     move.l #0,fxr4
  481.     move.w #0,fx1_flag
  482.     move.w #0,fx2_flag
  483.     move.w #0,fx3_flag
  484.     move.w #0,fx4_flag
  485.     move.l #0,fxc1
  486.     move.l #0,fxc2
  487.     move.l #0,fxc3
  488.     move.l #0,fxc4
  489.     rts
  490. ;****************************************
  491.  
  492. ;  CALL HERE TO SELECT WHICH PIECE OF MUSIC TO PLAY
  493. ;  AFTER PLACING NUMBER (1 to ?) IN "SONG_BUFFER"..see above
  494. ;  a call to this routine will initiliase the driver/kill any sound etc.      
  495. ;  make sure this routine has been called before running the interrupt
  496. ;  driven section....see below
  497.  
  498. select_new_song:
  499.  
  500.     move.w #1,int_disable
  501.     movem.l d0/d1/a0/a1,-(a7)    ;save used registers
  502.     move.w music_disable,gen
  503.     move.w #1,music_disable
  504.         jsr kill_chip           
  505.     clr.l d0
  506.         move.w #204,d0
  507.         lea gvars,a0
  508. clloop: clr.w (a0)+        
  509.         dbra  d0,clloop
  510.     tst.l song_buffer
  511.     beq no_song
  512.         move.l song_buffer,d1
  513.     add.l d1,d1
  514.      add.l d1,d1
  515.      add.l d1,d1
  516.      add.l d1,d1
  517.         LEA  SONG_TABLE-16,A1
  518.  
  519.         add.l d1,a1      
  520.         MOVE.L (A1)+,WSONG1    
  521.         move.l (a1)+,wsong2    
  522.         move.l (a1)+,wsong3
  523.     move.l (a1),wsong4
  524.         MOVE.L #pstart,PATTR1
  525.         MOVE.L #pstart,PATTR2
  526.         MOVE.L #pstart,PATTR3
  527.     move.l #pstart,pattr4
  528.         move.l #sstart,songr1
  529.         MOVE.L #sstart,SONGR2
  530.         MOVE.L #sstart,SONGR3
  531.     move.l #sstart,songr4
  532. no_song
  533.     move.w #1,ch1vars
  534.     move.w #2,ch2vars
  535.     move.w #3,ch3vars
  536.     move.w #4,ch4vars
  537.     move.w #6,ch4fxvars
  538.     move.w #5,ch3fxvars
  539.     move.w #7,ch2fxvars
  540.     move.w #8,ch1fxvars
  541.     move.w gen,music_disable
  542.     clr.w int_disable
  543.     movem.l (a7)+,d0/d1/a0/a1    ;restore registers
  544.         rts
  545.  
  546. ;**************************************************
  547.  
  548.         ;This is the interrupt routine
  549.  
  550.  
  551. ;  CALL HERE ON A 50hz INTERRUPT DURING RUNTIME
  552. ;  TO PLAY FX AND TUNES
  553.  
  554. driver:  
  555.     tst.w int_disable
  556.     beq process_data
  557.     rts        
  558. process_data
  559.     movem.l d0-d6/a0-a6,-(a7)    ;save used registers
  560.  
  561.  
  562. ch1:
  563.     tst.w fx_disable
  564.     bne test_music1
  565.     tst.l fxr1
  566.     bne   ch1j1
  567.     tst.l fxc1
  568.     beq test_music1
  569.     bra ch1j3
  570. ch1j2    jsr run_dummy1
  571.     jsr run_fx1
  572.     bra ch2
  573. ch1j1
  574.     jsr set_up1
  575. ch1j3    tst.w music_disable    
  576.     beq ch1j2
  577.     jsr run_fx1
  578.     bra ch2
  579. test_music1
  580.     tst.w music_disable
  581.     bne ch2
  582.     jsr run_music1
  583.     bra ch2
  584.     ;***********************
  585.  
  586.     ; channel 1 subroutines
  587.  
  588. run_dummy1    
  589.      lea ch1vars,a0
  590.      lea dummy_reg,a2 
  591.      move.w #0,d5 
  592.      jsr sect1    
  593.     rts
  594.  
  595. set_up1    
  596.          move.l fxr1,d0
  597.          add d0,d0
  598.          add d0,d0
  599.          lea  fxjump_table-4,A1
  600.      add.l d0,a1
  601.          move.l (a1),currfx1
  602.       clr.l fxr1
  603.      clr.w fxintc1
  604.       rts
  605.   
  606.      
  607. run_fx1
  608.     lea ch1fxvars,a0
  609.        lea chann1reg,a2
  610.       move.w #%0000000000000001,d5 
  611.      move.w #%1000000000000001,d1 
  612.      jsr sect1
  613.     rts
  614.  
  615. run_music1
  616.     lea ch1vars,a0
  617.        lea chann1reg,a2
  618.       move.w #%0000000000000001,d5 
  619.       move.w #%1000000000000001,d1 
  620.       jsr sect1     
  621.     rts
  622.  
  623.     ;  **************************
  624. ch2
  625.     tst.w fx_disable
  626.     bne test_music2
  627.     tst.l fxr2
  628.     bne   ch2j1
  629.     tst.l fxc2
  630.     beq test_music2
  631.     bra ch2j3
  632. ch2j2    jsr run_dummy2
  633.     jsr run_fx2
  634.     bra ch3
  635. ch2j1
  636.     jsr set_up2
  637. ch2j3    tst.w music_disable    
  638.     beq ch2j2
  639.     jsr run_fx2
  640.     bra ch3
  641.  
  642. test_music2
  643.     tst.w music_disable
  644.     bne ch3
  645.     jsr run_music2
  646.     bra ch3
  647.     ;***********************
  648.     ; channel 2 subroutines
  649. run_dummy2    
  650.      lea ch2vars,a0
  651.      lea dummy_reg,a2 
  652.      move.w #0,d5 
  653.      jsr sect1    
  654.     rts
  655.  
  656. set_up2    
  657.          move.l fxr2,d0
  658.          add d0,d0
  659.          add d0,d0
  660.          lea  fxjump_table-4,A1
  661.      add.l d0,a1
  662.          move.l (a1),currfx2
  663.       clr.l fxr2
  664.      clr.w fxintc2
  665.       rts
  666.   
  667.      
  668. run_fx2
  669.     lea ch2fxvars,a0
  670.        lea chann2reg,a2
  671.       move.w #%0000000000000010,d5 
  672.      move.w #%1000000000000010,d1 
  673.      jsr sect1
  674.     rts
  675.  
  676. run_music2
  677.     lea ch2vars,a0
  678.        lea chann2reg,a2
  679.       move.w #%0000000000000010,d5 
  680.       move.w #%1000000000000010,d1 
  681.       jsr sect1     
  682.     rts
  683.  
  684.     ;  **************************
  685.  
  686. ch3:
  687.     tst.w fx_disable
  688.     bne test_music3
  689.     tst.l fxr3
  690.     bne   ch3j1
  691.     tst.l fxc3
  692.     beq test_music3
  693.     bra ch3j3
  694. ch3j2    jsr run_dummy3
  695.     jsr run_fx3
  696.     bra ch4
  697. ch3j1
  698.     jsr set_up3
  699. ch3j3    tst.w music_disable    
  700.     beq ch3j2
  701.     jsr run_fx3
  702.     bra ch4
  703.  
  704. test_music3
  705.     tst.w music_disable
  706.     bne ch4
  707.     jsr run_music3
  708.     bra ch4
  709.  
  710.     ;***********************
  711.  
  712.     ; channel 3 subroutines
  713.  
  714. run_dummy3    
  715.      lea ch3vars,a0
  716.      lea dummy_reg,a2 
  717.      move.w #0,d5 
  718.      jsr sect1    
  719.     rts
  720.  
  721. set_up3    
  722.          move.l fxr3,d0
  723.          add d0,d0
  724.          add d0,d0
  725.          lea  fxjump_table-4,A1
  726.      add.l d0,a1
  727.          move.l (a1),currfx3
  728.       clr.l fxr3
  729.      clr.w fxintc3
  730.       rts
  731.   
  732.      
  733. run_fx3
  734.     lea ch3fxvars,a0
  735.        lea chann3reg,a2
  736.       move.w #%0000000000000100,d5 
  737.      move.w #%1000000000000100,d1 
  738.      jsr sect1
  739.     rts
  740.  
  741. run_music3
  742.     lea ch3vars,a0
  743.        lea chann3reg,a2
  744.       move.w #%0000000000000100,d5 
  745.       move.w #%1000000000000100,d1 
  746.       jsr sect1     
  747.     rts
  748.  
  749.     ;  **************************
  750.  
  751. ch4:
  752.     tst.w fx_disable
  753.     bne test_music4
  754.     tst.l fxr4
  755.     bne   ch4j1
  756.     tst.l fxc4
  757.     beq test_music4
  758.     bra ch4j3
  759. ch4j2    jsr run_dummy4
  760.     jsr run_fx4
  761.     bra no4
  762. ch4j1
  763.     jsr set_up4
  764. ch4j3    tst.w music_disable    
  765.     beq ch4j2
  766.     jsr run_fx4
  767.     bra no4
  768.  
  769. test_music4
  770.     tst.w music_disable
  771.     bne no4
  772.     jsr run_music4
  773. no4    
  774.     movem.l (a7)+,d0-d6/a0-a6    ;restore registers
  775.     rts
  776.  
  777.     ;***********************
  778.  
  779.     ; channel 4 subroutines
  780.  
  781. run_dummy4    
  782.      lea ch4vars,a0
  783.      lea dummy_reg,a2 
  784.      move.w #0,d5 
  785.      jsr sect1    
  786.     rts
  787.  
  788. set_up4    
  789.          move.l fxr4,d0
  790.          add d0,d0
  791.          add d0,d0
  792.          lea  fxjump_table-4,A1
  793.      add.l d0,a1
  794.          move.l (a1),currfx4
  795.       clr.l fxr4
  796.      clr.w fxintc4
  797.       rts
  798.   
  799.      
  800. run_fx4
  801.     lea ch4fxvars,a0
  802.        lea chann4reg,a2
  803.       move.w #%0000000000001000,d5 
  804.      move.w #%1000001000001000,d1 
  805.      jsr sect1
  806.     rts
  807.  
  808. run_music4
  809.     lea ch4vars,a0
  810.        lea chann4reg,a2
  811.       move.w #%0000000000001000,d5 
  812.       move.w #%1000001000001000,d1 
  813.       jsr sect1     
  814.     rts
  815.     ;  **************************
  816.  
  817. sect1: tst.w (a0)
  818.     bne s1j1
  819.     rts
  820.  
  821. s1j1:    tst.w 2(a0)
  822.         beq sect3       
  823.         cmpi.w #1,2(a0)
  824.         beq sect4
  825.  
  826.         cmpi.w #3,4(a0)    
  827.         beq part2       
  828.     
  829. mode_switch:  subq.w #1,2(a0)     
  830.  
  831. check_effects: clr.w altpf      
  832.         move.w 6(a0),d2    
  833.         tst.w 8(a0)      
  834.         beq check_mod
  835.         tst.w 14(a0)      
  836.         beq cont_bend
  837.         subq.w #1,14(a0)
  838.         bra check_mod
  839. cont_bend:   addq.w #1,altpf    
  840.         move.w 10(a0),d3    
  841.         move.w 12(a0),d4    
  842.         cmpi.w #1,8(a0)
  843.         beq pbup
  844.     
  845.         sub.w d3,d2
  846.         cmp.w d2,d4
  847.         bcs check_mod
  848.         bra fbend
  849.  
  850. pbup:     add.w d3,d2
  851.         cmp.w d2,d4
  852.         bcc check_mod
  853. fbend:     move.w d4,d2
  854.         clr.w 8(a0)      
  855. check_mod:   tst.w 16(a0)
  856.         beq send_alt_pitch
  857.    
  858.  
  859.     tst.w  58(a0)
  860.     beq st_ok
  861.     subq.w #1,58(a0)
  862.     bra send_alt_pitch
  863. st_ok:
  864.         tst.w 50(a0)
  865.         beq cont_mod
  866.         subq #1,50(a0)
  867.         bra send_alt_pitch
  868. cont_mod:    move.w 52(a0),50(a0)  
  869.         addq #1,altpf
  870.         cmpi #3,16(a0)
  871.         bcc addmod
  872.     
  873.         move.w 56(a0),d3 
  874.         sub.w d3,d2
  875.         addq.w #1,16(a0)  
  876.         bra send_alt_pitch
  877. addmod:
  878.  
  879.         move.w 54(a0),d3 
  880.         add.w d3,d2
  881.         addq.w #1,16(a0)
  882.         cmpi.w #5,16(a0)
  883.        bne send_alt_pitch
  884.         move.w #1,16(a0)  
  885.  
  886. send_alt_pitch: tst.w altpf
  887.         beq send_env
  888.         move.w d2,6(a0)  
  889.         move.w d2,6(a2)  
  890.  
  891. send_env: 
  892.  
  893. do_env_check:
  894.  
  895. norm_env:
  896.     move.l 18(a0),a1    
  897.         cmpi.w #255,(a1)
  898.         beq env_finished
  899.     ;cmpi.w #1,66(a0)    
  900.     ;bne    no_acc 
  901.  
  902. resu    clr.l d0
  903.     move.w (a1)+,d0
  904.     ;sub.w 64(a0),d0    
  905.  
  906.     sub.w fade,d0
  907.     bcc sete
  908.  
  909.     move.w #0,d0
  910.  
  911.  
  912. sete    move.w d0,8(a2)    
  913.     move.l a1,18(a0)
  914.     rts        
  915.  
  916.  
  917. no_acc:
  918. ;resu:  
  919. no_off
  920.     ;move.w (a1)+,d0
  921.     sub.w fade,d0
  922.     bcc sete2
  923.     move.w #0,d0
  924. sete2    move.w d0,8(a2)
  925.      move.w (a1)+,8(a2)
  926.    
  927. fint:   move.l a1,18(a0)    
  928.     rts
  929.  
  930. env_finished:
  931.     subq.l #2,a1    
  932.     bra resu
  933.     rts
  934.  
  935.  
  936.  
  937. one_shot_note: move.w #3,4(a0)     
  938.         move.l 38(a0),(a2)
  939.         move.w 42(a0),4(a2)
  940.         move.w d1,dmacon     
  941.         bra send_env
  942.  
  943.  
  944. part2:                         
  945.         move.l 44(a0),(a2)
  946.         move.w 48(a0),4(a2)
  947.         subq.w #1,2(a0)      
  948.         move.w #1,4(a0)
  949.         bra check_effects
  950.  
  951. sect3:
  952.     move.w #0,66(a0)    
  953.  
  954.     move.l 22(a0),a1  
  955. control_ret: move.w (a1)+,d0  
  956.     cmpi.w #100,d0   
  957.     bls sect5   
  958.   
  959. acc_note:
  960.     move.w d0,6(a0)  
  961.     move.w d0,6(a2)  
  962.     move.w (a1)+,2(a0) 
  963.     subq.w #1,2(a0)  
  964.     move.l a1,22(a0)  
  965.     move.l 34(a0),18(a0) 
  966.     move.w 60(a0),58(a0) 
  967.  
  968.  
  969.     tst.w 16(a0)
  970.     beq no_mod_res
  971.     move.w #1,16(a0)
  972. no_mod_res:
  973.     cmpi.w #0,4(a0)
  974.     beq do_loop
  975.     bra one_shot_note    
  976.  
  977.  
  978. do_loop:    move.w d1,dmacon   
  979.         bra send_env
  980.  
  981. do_rest:
  982.     move.w (a1)+,2(a0) 
  983.     subq.w #1,2(a0)  
  984.     move.l a1,22(a0)  
  985.     move.l  #rest_env,18(a0)
  986.  
  987.         move.w #0,8(a2)
  988.         bra send_env
  989.    
  990. sect4:
  991.         cmpi.w #0,4(a0)
  992.         beq noof
  993.         move.w d5,dmacon   
  994. noof:     subq.w #1,2(a0)
  995.         bra check_effects
  996.    
  997. sect5:     move.l #jump_table,a3
  998.         move.l (a3,d0),a4
  999.         jmp (a4)
  1000.  
  1001. jump_table: 
  1002.     dc.l  in_line_data
  1003.         dc.l  nsound
  1004.         dc.l  patt_end
  1005.         dc.l  get_env
  1006.         dc.l  check_pbend
  1007.         dc.l  do_mod
  1008.         dc.l  bend_off
  1009.         dc.l  mod_off
  1010.         dc.l  do_rest
  1011.         dc.l  end_fx
  1012.         dc.l  end_fx
  1013.     dc.l  s_f_on
  1014.     dc.l  s_f_off
  1015.     dc.l  set_acc
  1016.     dc.l  rept
  1017.  
  1018. in_line_data:
  1019.  
  1020.         nop
  1021.         rts
  1022.  
  1023. rept:
  1024.     move.l (a1),a1
  1025.     bra control_ret
  1026.  
  1027. s_f_on: 
  1028.     bclr #1,filter
  1029.     bra control_ret
  1030. s_f_off:
  1031.     bset #1,filter
  1032.     bra control_ret
  1033.  
  1034. nsound:    move.l (a1)+,a3     
  1035.         cmpi.w #0,(a3)
  1036.         bne one_shot_sound
  1037.         move.w (a3)+,4(a0)    
  1038.         move.l (a3)+,(a2)     
  1039.         move.w (a3),4(a2)    
  1040.         jmp control_ret
  1041.  
  1042. one_shot_sound:
  1043.         move.w (a3)+,4(a0)
  1044.         move.l (a3)+,38(a0)   
  1045.         move.l (a3)+,42(a0)
  1046.         move.l (a3),46(a0)
  1047.         jmp control_ret
  1048.  
  1049. patt_end:
  1050.  
  1051.         move.l 26(a0),a1    
  1052.         cmpi.l #0,(a1)     
  1053.         beq song_control
  1054.         addq.l #4,26(a0)    
  1055.         move.l (a1),a1     
  1056.         jmp control_ret
  1057. get_env: 
  1058.        move.l (a1)+,a4 
  1059.     move.l (a4)+,62(a0)    
  1060.     
  1061.     move.l  a4,34(a0)    
  1062.     
  1063.         bra control_ret
  1064.  
  1065. check_pbend:
  1066.      move.l (a1)+,8(a0)
  1067.         move.l (a1)+,12(a0)
  1068.         bra control_ret
  1069.  
  1070. do_mod:    move.w #1,16(a0)  
  1071.         move.l (a1)+,50(a0)
  1072.         move.l (a1)+,54(a0)
  1073.         move.l (a1)+,58(a0)
  1074.         bra control_ret
  1075.  
  1076. bend_off:   clr.w 8(a0)
  1077.         bra control_ret
  1078.  
  1079. mod_off:    clr.w 16(a0)
  1080.         bra control_ret
  1081.  
  1082.  
  1083. end_fx:    
  1084.     cmpi.w #6,(a0)
  1085.     beq end_fx4p
  1086.     cmpi.w #5,(a0)
  1087.     beq end_fx3p
  1088.     cmpi.w #7,(a0)
  1089.     beq end_fx2p
  1090.  
  1091. end_fx1p:
  1092.         move.w d5,dmacon   
  1093.     move.w  #1,chann1reg+6
  1094.     move.w #0,8(a2)
  1095.     move.l #0,fxc1
  1096.     rts
  1097.  
  1098. end_fx2p:
  1099.     move.w d5,dmacon 
  1100.     move.w  #1,chann2reg+6
  1101.         move.w #0,8(a2) 
  1102.     move.l #0,fxc2
  1103.         rts
  1104.  
  1105.  
  1106. end_fx3p:
  1107.         move.w d5,dmacon   
  1108.     move.w  #1,chann3reg+6
  1109.     move.w #0,8(a2)
  1110.     move.l #0,fxc3
  1111.     rts
  1112.  
  1113. end_fx4p:
  1114.     move.w d5,dmacon 
  1115.     move.w  #1,chann4reg+6
  1116.         move.w #0,8(a2) 
  1117.     move.l #0,fxc4
  1118.         rts
  1119.  
  1120. set_acc: move.w #1,66(a0) 
  1121.     bra control_ret
  1122.  
  1123. song_control:
  1124.         addq.l #4,a1
  1125.         move.l 30(a0),26(a0)
  1126.         move.l 26(a0),a1
  1127.         addq.l #4,26(a0)
  1128.         move.l (a1),a1
  1129.         jmp control_ret
  1130.  
  1131.  
  1132.     ;"""""""""""""""""""""""""""""""""""""""""""""""""
  1133.  
  1134. max_songs:    dc.l  8
  1135.  
  1136.     ;;; DATA
  1137.  
  1138. song_table:
  1139.         dc.l s1_b,s2_b,s3_b,s4_b    ;beach
  1140.         dc.l s1_v1,s2_v1,s3_v1,s4_v1    ;village 1..market
  1141.         dc.l s1_v2,s2_v2,s3_v2,s4_v2    ;village 2..private house
  1142.         dc.l s1_c,s2_c,s3_c,s4_c    ;castle tune
  1143.         dc.l s1_f,s2_f,s3_f,s4_f    ;alexanders flute
  1144.         dc.l s1_d,s2_d,s3_d,s4_d    ;drown.. dragged out to sea
  1145.         dc.l s1_n,s2_n,s3_n,s4_n    ;mechanical nightingale
  1146.  
  1147.  
  1148.  
  1149. ;************************************************************
  1150. gvars:
  1151. ch1vars     
  1152.     dc.w 0     
  1153.         dc.w 0,0,0,0,0,0,0,0,0,0     
  1154. pattr1: dc.l 0    
  1155. songr1: dc.l 0    
  1156. wsong1: dc.l 0   
  1157.         dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0   
  1158.  
  1159. ch2vars     
  1160.     dc.w 0     
  1161.         dc.w 0,0,0,0,0,0,0,0,0,0     
  1162. pattr2: dc.l 0    
  1163. songr2: dc.l 0    
  1164. wsong2: dc.l 0    
  1165.         dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0   
  1166.  
  1167. ch3vars 
  1168.     dc.w 0     
  1169.         dc.w 0,0,0,0,0,0,0,0,0,0     
  1170. pattr3: dc.l 0    
  1171. songr3: dc.l 0    
  1172. wsong3: dc.l 0    
  1173.         dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0   
  1174.  
  1175. ch4vars 
  1176.     dc.w 0     
  1177.         dc.w 0,0,0,0,0,0,0,0,0,0     
  1178. pattr4: dc.l 0    
  1179. songr4: dc.l 0    
  1180. wsong4: dc.l 0    
  1181.         dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0   
  1182.  
  1183.  
  1184. ch1fxvars 
  1185.     dc.w 0     
  1186. fxintc1:
  1187.     dc.w 0,0,0,0,0,0,0,0,0,0     
  1188. currfx1:
  1189.     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    
  1190.  
  1191. ch2fxvars 
  1192.     dc.w 0     
  1193. fxintc2:
  1194.     dc.w 0,0,0,0,0,0,0,0,0,0     
  1195. currfx2:
  1196.     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    
  1197.  
  1198.  
  1199. ch3fxvars
  1200.     dc.w 0     
  1201. fxintc3:
  1202.     dc.w 0,0,0,0,0,0,0,0,0,0     
  1203. currfx3:
  1204.     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    
  1205.  
  1206. ch4fxvars 
  1207.     dc.w 0     
  1208. fxintc4:
  1209.     dc.w 0,0,0,0,0,0,0,0,0,0     
  1210. currfx4:
  1211.     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    
  1212. ;************************************************************
  1213.  
  1214. dummy_reg dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1215.         dc.l  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1216.         dc.l  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1217.         dc.l  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1218. ;************************************************************
  1219.  
  1220.  
  1221. fxp:
  1222.  
  1223. danger:
  1224.       dc.w new_env
  1225.       dc.l danger_env
  1226.       dc.w new_snd
  1227.       dc.l sinep
  1228. danger_loop:
  1229.     dc.w r16,4,r16,4,r16,4,r16,4
  1230.     dc.w repeat
  1231.     dc.l danger_loop
  1232.       dc.w end_fxp
  1233.  
  1234. danger_env:            dc.w 0,35,28,25,20,15,10,0,255
  1235.  
  1236. score1
  1237.       dc.w new_env
  1238.       dc.l score_env1
  1239.       dc.w new_snd
  1240.       dc.l sinep
  1241.     dc.w modon,1,1,2,2,1,1
  1242.     dc.w 130,50
  1243.       dc.w end_fxp
  1244.  
  1245.  
  1246. score2
  1247.       dc.w new_env
  1248.       dc.l score_envs
  1249.       dc.w new_snd
  1250.       dc.l sinep
  1251.     dc.w modon,1,1,1,1,1,1
  1252.     dc.w    a03,5,a02,5
  1253.       dc.w new_env
  1254.       dc.l score_env2
  1255.     dc.w e03,50
  1256.       dc.w end_fxp
  1257.  
  1258. score3
  1259.       dc.w new_env
  1260.       dc.l score_envs
  1261.       dc.w new_snd
  1262.       dc.l sinep
  1263.     dc.w modon,1,1,1,1,1,1
  1264.     dc.w    a03,4,a02,4
  1265.     dc.w    a03,4,a02,4
  1266.       dc.w new_env
  1267.       dc.l score_env2
  1268.     dc.w e03,50
  1269.       dc.w end_fxp
  1270.  
  1271. score4
  1272.       dc.w new_env
  1273.       dc.l score_envs
  1274.       dc.w new_snd
  1275.       dc.l sinep
  1276.     dc.w modon,1,1,1,1,1,1
  1277.     dc.w    c03,4,d03,4
  1278.     dc.w    e03,4,f03,4
  1279.     dc.w    g03,4
  1280.       dc.w new_env
  1281.       dc.l score_env2
  1282.     dc.w a03,50
  1283.       dc.w end_fxp
  1284.  
  1285. score5
  1286.       dc.w new_env
  1287.       dc.l score_envs
  1288.       dc.w new_snd
  1289.       dc.l sinep
  1290.     ;dc.w pbend,up,20,a03,1
  1291.     dc.w    a03,4,g03,4,a03,4,g03,4
  1292.     dc.w    a03,4,g03,4,a03,4,g03,4
  1293.     dc.w    a03,4,g03,4,a03,4,g03,4
  1294.       dc.w new_env
  1295.       dc.l score_env2
  1296.     dc.w    a03,50
  1297.       dc.w end_fxp
  1298.  
  1299.  
  1300. magic_map:
  1301.       dc.w new_env
  1302.       dc.l score_env1
  1303.       dc.w new_snd
  1304.       dc.l guitp
  1305.     dc.w c02,4,d02,4,e02,4,f02,4,g02,4,a02,4,b02,4,c03,4
  1306.     dc.w d03,4,e03,4,f03,4,g03,4,a03,10
  1307.       dc.w end_fxp
  1308.  
  1309.  
  1310. clunk1
  1311.       dc.w new_env
  1312.       dc.l clunk_env
  1313.       dc.w new_snd
  1314.       dc.l snarep
  1315.     dc.w pbend,down,20,50000,1
  1316.     dc.w    r2,14
  1317.     dc.w    pboff
  1318.       dc.w end_fxp
  1319.  
  1320. clunk2
  1321.       dc.w new_env
  1322.       dc.l clunk_env
  1323.       dc.w new_snd
  1324.       dc.l snarep
  1325.     dc.w pbend,down,2,50000,1
  1326.     dc.w    r1,14
  1327.     dc.w    pboff
  1328.       dc.w end_fxp
  1329.  
  1330.  
  1331. score_envs:    dc.w 55,50,45,40,35,30,25,20,15,10,0,255
  1332.  
  1333. score_env:
  1334.         dc.w    64,64,63,62,60,61,60,59,58,57,56,55
  1335. clunk_env:
  1336. score_env1    dc.w    54,53,52,51,50,49,48,47,46,45,44
  1337. score_env2        dc.w     43,42,41,40,39,38,37,36,35,34,33,32,31,30
  1338.         dc.w    29,28,27,26,25,24,23,22,21,20,19,18,17,16
  1339.         dc.w    15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,255
  1340.  
  1341. ;*************************
  1342.  
  1343.  
  1344. fxjump_table:  
  1345.     dc.l clunk1
  1346.     dc.l clunk2
  1347.     dc.l score1
  1348.     dc.l score2
  1349.     dc.l score3
  1350.     dc.l score4
  1351.     dc.l score5
  1352.     dc.l magic_map
  1353.     dc.l danger            ;fx number 1
  1354.  
  1355.  
  1356. max_fx    dc.l    10    ;number + 1 for test routines only
  1357. ;______________________________________________________________________
  1358.  
  1359.  
  1360. sstart: dc.l 0,end_song
  1361.  
  1362. pstart: dc.w end_patt
  1363.  
  1364.  
  1365. ;----------------------------------
  1366.  
  1367. ;;;;;;;;;;;;;;;;;;;;;   Music Data ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1368.  
  1369. cr  set   24
  1370. q set  cr/2
  1371. sq set q/2
  1372. dsq set sq/4
  1373.  
  1374. tq1 set      7
  1375. tq2 set   6
  1376. tsq1 set  3
  1377. tsq2 set 4
  1378.  
  1379. ssilence:
  1380.     dc.l    pr
  1381.       dc.l     0,end_song
  1382.  
  1383.  
  1384. ;************************************************
  1385.  
  1386. songs:
  1387.  
  1388.  
  1389. s1_n:
  1390.  
  1391.     dc.l    click_snd
  1392.     dc.l    ng_click
  1393.  
  1394.       dc.l     0,end_song
  1395. s2_n:
  1396.  
  1397.     dc.l    flute_sndq
  1398.     dc.l    ntune
  1399.  
  1400.         DC.L    0,end_song
  1401.  
  1402. s3_n:
  1403.  
  1404.     dc.l    pr
  1405.  
  1406.     dc.l     0,end_song
  1407.  
  1408. s4_n:
  1409.  
  1410.     dc.l    pr
  1411.  
  1412.     dc.l     0,end_song
  1413.  
  1414.  
  1415. ng_click:
  1416.     dc.w    4000,2,2000,2,rest,8,4000,1,2000,1,4000,1
  1417.     dc.w    4000,1,2000,1,4000,1,rest,6
  1418.     dc.w    end_patt
  1419.  
  1420. ntune:
  1421.     dc.    rest,cr
  1422.     dc.w    a03,cr,g03,cr*3,d03,cr,e03,cr*4,rest,cr*3
  1423.     dc.w    a03,cr,g03,cr*3,e03,cr,d03,cr,g03,cr,e03,cr*4
  1424.     dc.w    end_patt
  1425.  
  1426.  
  1427.  
  1428. ;-------
  1429. cr  set   16
  1430. q set  cr/2
  1431. sq set q/2
  1432. dsq set sq/4
  1433.  
  1434. tq1 set      7
  1435. tq2 set   6
  1436. tsq1 set  3
  1437. tsq2 set 4
  1438.             ;drown you bastard
  1439. s1_d:
  1440.  
  1441.     dc.l    pr
  1442.     dc.l    sine_snd
  1443.     dc.l    die1
  1444.     dc.l    die2
  1445.     dc.l    die3
  1446.     dc.l    pri
  1447.  
  1448.       dc.l     0,end_song
  1449. s2_d:
  1450.  
  1451.     dc.l    trumpet_snd
  1452.     dc.l    die1
  1453.     dc.l    die2
  1454.     dc.l    die2
  1455.     dc.l    die3
  1456.     dc.l    pri
  1457.  
  1458.         DC.L    0,end_song
  1459.  
  1460. s3_d:
  1461.  
  1462.     dc.l    abass_snd
  1463.     dc.l    die_bass
  1464.     dc.l    die3
  1465.     dc.l    pri
  1466.  
  1467.     dc.l     0,end_song
  1468.  
  1469. s4_d:
  1470.  
  1471.     dc.l    trumpet_snd
  1472.     dc.l    die_sus
  1473.     dc.l    die3
  1474.     dc.l    pri
  1475.  
  1476.     dc.l     0,end_song
  1477.  
  1478. die1:
  1479.     dc.w    c02,sq,d02,sq,eb02,sq,f02,sq
  1480.     dc.w end_patt
  1481. die2:
  1482.     dc.w    g02,sq,gb02,sq,g02,sq,gb02,sq,g02,sq,gb02,sq,g02,sq,gb02,sq
  1483.     dc.w    g02,sq,gb02,sq,g02,sq,gb02,sq,g02,sq,gb02,sq,g02,sq,gb02,sq
  1484.     dc.w    g02,sq,gb02,sq,g02,sq,gb02,sq,g02,sq,gb02,sq,g02,sq,gb02,sq
  1485.     dc.w    g02,sq,gb02,sq,g02,sq,gb02,sq,g02,sq,gb02,sq,g02,sq,gb02,sq
  1486.     dc.w end_patt
  1487.  
  1488.  
  1489. die3:
  1490.     dc.w    c03,sq,b02,sq,bb02,sq,a02,sq,ab02,sq,g02,sq,gb02,sq,f02,sq
  1491.     dc.w    e02,sq,eb02,sq,d02,sq,db02,sq,c02,sq
  1492.     dc.w    b01,sq,bb01,sq,a01,sq,ab01,sq,g01,sq,gb01,sq,f01,sq
  1493.     dc.w    e01,sq,db01,sq,c01,cr*4
  1494.     dc.w end_patt
  1495.  
  1496. die_bass:
  1497.     dc.w    c02,sq,d02,sq,eb02,sq,f02,sq
  1498.     dc.w    c01,cr*16
  1499.     dc.w end_patt
  1500. die_sus:
  1501.     dc.w    rest,sq*4,c01,cr*16
  1502.     dc.w end_patt
  1503.  
  1504.  
  1505.  
  1506. ;----------
  1507.  
  1508.  
  1509. cr  set   28
  1510. q set  cr/2
  1511. sq set q/2
  1512. dsq set sq/4
  1513.  
  1514. tq1 set      7
  1515. tq2 set   6
  1516. tsq1 set  3
  1517. tsq2 set 4
  1518.  
  1519.  
  1520. ;------
  1521. s1_b:
  1522.  
  1523.     dc.l    wave_snd
  1524.     dc.l    wave
  1525.  
  1526.       dc.l     0,end_song
  1527. s2_b:
  1528.  
  1529.     dc.l    wave_sndx
  1530.     dc.l    wavex
  1531.  
  1532.         DC.L    0,end_song
  1533.  
  1534. s3_b:
  1535.  
  1536.     dc.l    seagull1_snd
  1537.     dc.l    seagull1
  1538.     dc.l     0,end_song
  1539.  
  1540. s4_b:
  1541.  
  1542.     dc.l    seagull2_snd
  1543.     dc.l    seagull2
  1544.  
  1545.     dc.l     0,end_song
  1546. ;----------
  1547.  
  1548.  
  1549. wave
  1550.  
  1551.     dc.w    r4,150,r5,170,r3,180,r3,200,r2,190
  1552.     dc.w end_patt
  1553.  
  1554. wavex
  1555.     dc.w modon,4,4,8,8,6,6
  1556.     dc.w    r1,200
  1557.     ;dc.w    rest,12,r4,150,r5,170,r3,180,r3,200,r2,190-12
  1558.     dc.w end_patt
  1559.  
  1560. seagull1
  1561.     dc.w pbend,down,2,10000,1
  1562.     dc.w  a03,10,a03,12
  1563.     dc.w    rest,300
  1564.     dc.w  f03,16,a03,8
  1565.     dc.w  a03,8,g03,12
  1566.     dc.w    rest,250
  1567.  
  1568.     dc.w end_patt
  1569.  
  1570.  
  1571. seagull2
  1572.     dc.w pbend,down,1,10000,1
  1573.     dc.w  g03,5,rest,100,g03,15,f03,10
  1574.     dc.w    rest,200
  1575.     dc.w  e03,15,rest,100,e03,8,f03,10
  1576.     dc.w    rest,450
  1577.     dc.w end_patt
  1578. wavep:
  1579.         dc.w 1  
  1580.              dc.l waved+iff
  1581.              dc.w (9094-iff)/2 
  1582.              dc.l restd
  1583.              dc.w 16/2
  1584.  
  1585. seagull1_snd:
  1586.     dc.w    new_env
  1587.     dc.l    seagull_envvq
  1588.     dc.w    new_snd
  1589.     dc.l    flutep
  1590.     dc.w     end_patt
  1591.  
  1592. seagull2_snd:
  1593.     dc.w    new_env
  1594.     dc.l    seagull_envq
  1595.     dc.w    new_snd
  1596.     dc.l    flutep
  1597.     dc.w     end_patt
  1598. wave_snd:
  1599.     dc.w    new_env
  1600.     dc.l    wave_envq
  1601.     dc.w    new_snd
  1602.     dc.l    wavep
  1603.     dc.w     end_patt
  1604.  
  1605. wave_sndx:
  1606.     dc.w    new_env
  1607.     dc.l    wave_envvq
  1608.     dc.w    new_snd
  1609.     dc.l    wavep
  1610.     dc.w     end_patt
  1611.  
  1612.  
  1613.  
  1614. seagull_envq:            dc.w 0,8,255
  1615. seagull_envvq:            dc.w 0,4,255
  1616. wave_envq:            dc.w 0,18,255
  1617. wave_envvq:            dc.w 0,8,255
  1618.  
  1619. ;-----
  1620.  
  1621. ;        flute
  1622.  
  1623. s1_f:
  1624.  
  1625.  
  1626.     dc.l    flute_snd
  1627.     dc.l    flute_tune
  1628.     dc.l    pri
  1629.  
  1630.       dc.l     0,end_song
  1631. s2_f:
  1632.  
  1633.     dc.l    pr
  1634.         DC.L    0,end_song
  1635.  
  1636.  
  1637. s3_f:
  1638.  
  1639.     dc.l    pr
  1640.         DC.L    0,end_song
  1641.  
  1642.  
  1643. s4_f:
  1644.     dc.l    pr
  1645.     dc.l     0,end_song
  1646.  
  1647.  
  1648. flute_tune:
  1649.     dc.w modon,1,1,3,3,6,6
  1650.     dc.w    g03,cr+sq,gb03,5,g03,5,gb03,cr
  1651.     dc.w    eb03,cr,b02,cr,c03,cr,b02,5,c03,5,b02,cr*3
  1652.     dc.w end_patt
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.  
  1659. ;-----------
  1660.  
  1661. cr  set   32
  1662. q set  cr/2
  1663. sq set q/2
  1664. dsq set sq/4
  1665.  
  1666. tq1 set      7
  1667. tq2 set   6
  1668. tsq1 set  3
  1669. tsq2 set 4
  1670.  
  1671.  
  1672. s1_v1:
  1673.  
  1674.     dc.l    tune_pat
  1675.       dc.l     0,end_song
  1676. s2_v1:
  1677.  
  1678.     dc.l    abass_snd
  1679.     dc.l    bass
  1680.         DC.L    0,end_song
  1681.  
  1682. s3_v1:
  1683.     ;dc.l    pr
  1684.     dc.l    sitar_snd
  1685.     dc.l    sitar
  1686.     dc.l     0,end_song
  1687.  
  1688.  
  1689. s4_v1:
  1690.     dc.l    tamb_snd
  1691.     dc.l    tambourine
  1692.     dc.l     0,end_song
  1693.  
  1694.  
  1695.  
  1696. patterns:
  1697.  
  1698. pr:
  1699.     dc.w rest,cr*4
  1700.     dc.w end_patt
  1701.  
  1702.  
  1703. tambourine:
  1704.     dc.w    130,cr,130,q,130,q
  1705.     dc.w end_patt
  1706.  
  1707.  
  1708.  
  1709. sitar
  1710.     dc.w modon,1,1,2,2,6,6
  1711.     dc.w    c01,cr*8,c01,cr*8,c01,cr*8,c01,cr*4,c02,cr*2,c02,cr*2
  1712.     dc.w    g01,cr*4,g04,cr*4,bb01,cr*4,g01,cr*4
  1713.     dc.w    g01,cr*4,g04,cr*4,bb01,cr*2,g01,cr*2
  1714.     dc.w    c01,cr*8,c01,cr*8,c01,cr*8,c01,cr*8,c02,cr*4
  1715.  
  1716.     dc.w    g01,cr*4,g04,cr*4,bb01,cr*4,g01,cr*4
  1717.     dc.w    g01,cr*4,g04,cr*4,bb01,cr*4,g01,cr*4
  1718.     
  1719.  
  1720.     dc.w end_patt
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.         ;flute and guitar  for village 1 tune                 
  1727.  
  1728. tune_pat:
  1729.     dc.w    new_env
  1730.     dc.l    flute_env
  1731.     dc.w    new_snd
  1732.     dc.l    flutep
  1733. ;patch here*********
  1734.     dc.w modon,1,1,2,2,6,6
  1735.     dc.w    rest,cr*5
  1736.     dc.w c03,cr,b02,cr+q,ab02,q,g02,$0124,d02,$005c
  1737.     dc.w eb02,$0004,d02,$0010,c02,$0068,g01,$0014,ab01,$0014
  1738.     dc.w b01,$0004,ab01,$0004,b01,$0004,ab01,$000c,g01,$00c4
  1739.     dc.w g02,$0020
  1740.  
  1741.     dc.w    new_env
  1742.     dc.l    aguitar_env
  1743.     dc.w    new_snd
  1744.     dc.l    aguitp
  1745.  
  1746. ;patch here*********
  1747.     dc.w g02,$0010,ab02,$0010,b02,$0008,c03,$0004,b02,$0004
  1748.     dc.w ab02,$0010,g02,$0010,f02,$0014,g02,$000c,ab02,$0010
  1749.     dc.w g02,$0004,ab02,$0004,g02,$0008,f02,$0010,g02,$0020
  1750.     dc.w d02,$0010,eb02,$0010,f02,$0010,g02,$0010,f02,$0004
  1751.     dc.w g02,$0004,f02,$0004,eb02,$0014,d02,$0010,eb02,$0010
  1752.     dc.w d02,$0004,eb02,$0004,d02,$0008,c02,$0010,b01,$0010
  1753.     dc.w c02,$0010,b01,$0004,c02,$0004,b01,$0008,ab01,$0010
  1754.     dc.w b01,$0040,g02,$0020,g02,$0010,ab02,$0010,b02,$0004
  1755.     dc.w c03,$0004,b02,$0008,ab02,$0010,g02,$0010,f02,$0010
  1756.     dc.w g02,$0010,ab02,$0010,g02,$0004,ab02,$0004,g02,$0008
  1757.     dc.w f02,$0010,g02,$0020,d02,$0010,eb02,$0010,f02,$0010
  1758.     dc.w g02,$0010,f02,$0004,g02,$0004,f02,$0008,eb02,$0010
  1759.     dc.w d02,$0010,eb02,$0010,d02,$0004,eb02,$0004,d02,$0008
  1760.     dc.w b01,q,c02,$00e8-8
  1761.  
  1762.     dc.w    new_env
  1763.     dc.l    flute_env
  1764.     dc.w    new_snd
  1765.     dc.l    flutep
  1766.  
  1767. ;patch here*********
  1768.     dc.w g02,$004c,c02,$0004,g02,$0004,c02,$0098,c02,$0018
  1769.     dc.w b01,$0030,ab01,$002c,g01,$00ac,d02,$0010,eb02,$000c
  1770.     dc.w f02,$0008,g02,$000c,ab02,$0008,b02,$0008,c03,$0008
  1771.     dc.w d03,$0008,eb03,$0008,f03,$0008,g03,$0044,g03,$0004
  1772.     dc.w ab03,$0008,g03,$0004,f03,$0004,g03,$0008,f03,$0004
  1773.     dc.w eb03,$0010,d03,$0004,eb03,$0004,d03,$0008,c03,$0010
  1774.     dc.w b02,$0004,c03,$0004,b02,$0008,ab02,$0020,g02,$0004
  1775.     dc.w ab02,$0008,g02,$0004,f02,$0004,g02,$0008,f02,$0004
  1776.     dc.w eb02,$0004,f02,$0008,eb02,$0004,d02,$0004,eb02,$0008
  1777.     dc.w d02,$0004,c02,$0004,d02,$0008,c02,$0004,b01,$0004
  1778.     dc.w c02,$0008,b01,$0004,ab01,$0004,b01,$0008,ab01,$0004
  1779.     dc.w g01,$0004,g01,$000c,ab01,$0010,g01,$0010,c02,$0010    ;start g01 fiddled was 0
  1780.     dc.w b01,$0004,c02,$0004,b01,$0008,ab01,$0010,g01,$0020
  1781.     dc.w g01,$0010,ab01,$0010,g01,$0010,c02,$0010,b01,$0004
  1782.     dc.w c02,$0004,b01,$0008,ab01,$0010,g01,$0020,d02,$0010
  1783.     dc.w eb02,$0010,d02,$0010,g02,$0010,f02,$0004,g02,$0004
  1784.     dc.w f02,$0008,eb02,$0010,d02,$0004,eb02,$0004,d02,$0008
  1785.     dc.w c02,$0010,d02,$0040,d02,$0040,g01,$0010
  1786.  
  1787.     dc.w    new_env
  1788.     dc.l    aguitar_env
  1789.     dc.w    new_snd
  1790.     dc.l    aguitp
  1791.  
  1792. ;patch here*********
  1793.     dc.w ab01,$0010,g01,$0010,c02,$0010,b01,$0004,c02,$0004
  1794.     dc.w b01,$0008,ab01,q,g01,$0024-4,g01,$0010,ab01,$0010
  1795.     dc.w g01,$0010,c02,$0010,b01,$0004,c02,$0004,b01,$0008
  1796.     dc.w ab01,$0010,g01,$0020,d02,$0010,eb02,$0010,d02,$0010
  1797.     dc.w g02,$0010,f02,$0004,g02,$0004,f02,$0004,eb02,$0014
  1798.     dc.w d02,$0004,eb02,$0004,d02,$0004,c02,$0014,b01,cr*2
  1799.     dc.w b01,cr*2
  1800.     dc.w end_patt
  1801.  
  1802. bass         ;                                                     
  1803.     dc.w c02,$0070,c02,$0010,c02,$0080,c02,$0070
  1804.     dc.w c02,$0010,c02,$0080,c02,$0070,c02,$0010,c02,$0080
  1805.     dc.w c02,$0070,c02,$0010,c02,$0060,c02,$0020,g01,$0030
  1806.     dc.w g01,$0010,g01,$0040,g01,$0030,g01,$0010,g01,$0040
  1807.     dc.w bb01,$0030,bb01,$0010,bb01,$0040,g01,$0030,g01,$0010
  1808.     dc.w g01,$0020,g02,$0020,g01,$0030,g01,$0010,g01,$0040
  1809.     dc.w g01,$0030,g01,$0010,g01,$0040,bb01,$0030,bb01,$0010
  1810.     dc.w g01,$0040,c02,$0030,c02,$0010,c02,$0040,c02,$0070
  1811.     dc.w c02,$0010,c02,$0080,c02,$0070,c02,$0010,c02,$0080
  1812.     dc.w c02,$0070,c02,$0010,c02,$0080,c02,$0070,c02,$0010
  1813.     dc.w c02,$0060,c02,$0020,g01,$0030,g01,$0010,g01,$0040
  1814.     dc.w g01,$0030,g01,$0010,g01,$0040,bb01,$0030,bb01,$0010
  1815.     dc.w bb01,$0040,g01,$0030,g01,$0010,g01,$0020,g02,$0020
  1816.     dc.w g01,$0030,g01,$0010,g01,$0040,g01,$0030,g01,$0010
  1817.     dc.w g01,$0040,bb01,$0030,bb01,$0010,bb02,$0040,g01,cr*2-q
  1818.     dc.w g01,q,g01,cr*2
  1819.     dc.w end_patt
  1820. ;******************************
  1821.  
  1822. s1_v2:
  1823.     dc.l    aguitar_snd
  1824.     dc.l    v2tune
  1825.       dc.l     0,end_song
  1826. s2_v2:
  1827.  
  1828.     dc.l    flute_snd
  1829.     dc.l    v2flute
  1830.         DC.L    0,end_song
  1831.  
  1832.  
  1833. s3_v2:
  1834.  
  1835.     dc.l    aguitar_snd_quiet
  1836.     dc.l    v2chords
  1837.     dc.l     0,end_song
  1838.  
  1839.  
  1840. s4_v2:
  1841.     dc.l    tamb_snd
  1842.     dc.l    v2tamb
  1843.     dc.l     0,end_song
  1844.  
  1845.  
  1846. v2tune:
  1847.  
  1848. pattxxx         ;tune vill 2                                          
  1849.  
  1850.     dc.w g02,$0010,f02,$0010,g02,$0010,ab02,$0010
  1851.     dc.w bb02,$0010,c03,$0010,bb02,$0010,c03,$0010,bb02,$0004
  1852.     dc.w c03,$0004,bb02,$0008,ab02,$0010,g02,$0010,eb02,$0010
  1853.     dc.w d02,$0010,c02,$0010,d02,$0010,eb02,$0010,f02,$0010
  1854.     dc.w g02,$000c,g02,$0004,f02,$0060,c02,$0010,b01,$0010
  1855.     dc.w c02,$0010,d02,$0010,eb02,$0010,f02,$0010,g02,$0010
  1856.     dc.w ab02,$0010,g02,$0004,ab02,$0004,g02,$0004,f02,$0010+4
  1857.     dc.w eb02,$0010,c02,$0010,b01,$0010,a01,$0010,b01,$0010
  1858.     dc.w c02,$0010,d02,$0010,eb02,$0008,d02,$0008,eb02,cr*3
  1859.     dc.w g02,$0010,f02,$0010,g02,$0010,a02,$0010,bb02,$0010
  1860.     dc.w c03,$0010,d03,$0010,eb03,$0010,d03,$0010,c03,$0010
  1861.     dc.w bb02,$0010,g02,$0010,gb02,$0010,e02,$0010,gb02,$0010
  1862.     dc.w g02,$0010,a02,$0010,bb02,$000c,a02,$0004,bb02,$0044
  1863.     dc.w gb02,$001c,g02,$0010,f02,$0010,eb02,$0010,d02,$0010
  1864.     dc.w c02,$0010,a01,$0010,b01,$0020,c02,$0040,b01,$0020
  1865.     dc.w c02,$0060,c02,cr*3
  1866.     dc.w end_patt
  1867.  
  1868. v2flute:
  1869.  
  1870.     dc.w    rest,cr*16*3
  1871.  
  1872.     dc.w eb02,$0020,bb02,$0058,bb02,$0004,c03,$0004
  1873.     dc.w bb02,$0020,ab02,$0018,g02,$0004,ab02,$0004,g02,$0020
  1874.     dc.w f02,$0058,f02,$0004,g02,$0004,f02,$0020,eb02,$0018
  1875.     dc.w d02,$0004,eb02,$0004,d02,$0020,c02,$0058,c02,$0004
  1876.     dc.w d02,$0004,c02,$0020,b01,$0018,ab01,$0004,b01,$0004
  1877.     dc.w ab01,$0020,g01,$0070,g01,$0010,ab01,$0010,b01,$0010
  1878.     dc.w c02,$0010,d02,$0010,eb02,$0040,eb02,$0010,f02,$0010
  1879.     dc.w g02,$0060,gb02,$0040,gb02,$0010,d02,$0010,a02,$0080
  1880.     dc.w g02,$0010,f02,$0010,eb02,$0010,c02,$0010,d02,$0020
  1881.     dc.w eb02,$0018,d02,$0004,eb02,$0004,d02,$0040,c02,cr*6
  1882.     dc.w end_patt
  1883.  
  1884. v2chords
  1885.     dc.w eb02,cr,bb02,cr,eb03,cr
  1886.     dc.w eb02,cr,bb02,cr,eb03,cr
  1887.     dc.w bb01,cr,f02,cr,bb02,cr
  1888.     dc.w bb01,cr,f02,cr,bb02,cr
  1889.     dc.w c02,cr,g02,cr,c03,cr
  1890.     dc.w c02,cr,g02,cr,c03,cr
  1891.     dc.w g01,cr,d02,cr,g02,cr
  1892.     dc.w g01,cr,d02,cr,g02,cr
  1893.  
  1894.  
  1895.     dc.w eb02,cr,bb02,cr,eb03,cr
  1896.     dc.w g01,cr,d02,cr,g02,cr
  1897.     dc.w d01,cr,a02,cr,d02,cr
  1898.     dc.w d01,cr,a02,cr,d02,cr
  1899.  
  1900.     dc.w c02,cr,g02,cr,c03,cr
  1901.  
  1902.     dc.w g01,cr,d02,cr,g02,cr,g01,cr
  1903.     dc.w c02,cr,g02,cr,c03,cr
  1904.     dc.w c02,cr,g02,cr,c03,cr
  1905.     dc.w end_patt
  1906.  
  1907. v2tamb
  1908.  
  1909.     dc.w    rest,cr*16*3+cr
  1910.     dc.w    rest,cr,130,q,130,q,130,cr
  1911.     dc.w    rest,cr,130,q,130,q,130,cr
  1912.     dc.w    rest,cr,130,q,130,q,130,cr
  1913.     dc.w    rest,cr,130,q,130,q,130,cr
  1914.     dc.w    rest,cr,130,q,130,q,130,cr
  1915.     dc.w    rest,cr,130,q,130,q,130,cr
  1916.     dc.w    rest,cr,130,q,130,q,130,cr
  1917.     dc.w    rest,cr,130,q,130,q,130,cr
  1918.     dc.w    rest,cr,130,q,130,q,130,cr
  1919.     dc.w    rest,cr,130,q,130,q,130,cr
  1920.     dc.w    rest,cr,130,q,130,q,130,cr
  1921.     dc.w    rest,cr,130,q,130,q,130,cr
  1922.     dc.w    rest,cr,130,q,130,q,130,cr
  1923.     dc.w    rest,cr,130,q,130,q,130,cr,130,cr
  1924.     dc.w    rest,cr,130,q,130,q,130,cr
  1925.     dc.w    rest,cr,130,q,130,q,130,cr
  1926.     dc.w end_patt
  1927.  
  1928. ;-------------------
  1929. cr  set   32
  1930. q set  cr/2
  1931. sq set q/2
  1932. dsq set sq/4
  1933.  
  1934. tcr1    set 16
  1935. tq1 set      8
  1936. tq2 set   8
  1937. tsq1 set 5
  1938. tsq2 set 6
  1939.  
  1940.  
  1941. s1_c:
  1942.     dc.l    trumpet_snd
  1943.     dc.l    ctune1
  1944.     dc.l    flute_snd
  1945.     dc.l    ctune2
  1946.     dc.l    flute_snd
  1947.     dc.l    ctune2
  1948.  
  1949.     dc.l    pr,pr
  1950.  
  1951.  
  1952.     dc.l    aguitar_snd
  1953.     dc.l    ctune2
  1954.       dc.l     0,end_song
  1955.  
  1956. s2_c:
  1957.  
  1958.     dc.l    csnare
  1959.     dc.l    csnare
  1960.     dc.l    csnare
  1961.     dc.l    cs1
  1962.     dc.l    tamb_snd
  1963.     dc.l    ctamb
  1964.     dc.l    ctamb
  1965.     dc.l    ctamb
  1966.     dc.l    ctamb
  1967.  
  1968.     dc.l    snare_snd
  1969.     dc.l    cs1
  1970.  
  1971.     dc.l    tamb_snd
  1972.  
  1973.     dc.l    ctamb
  1974.     dc.l    ctamb
  1975.  
  1976.         dc.l    0,end_song
  1977.  
  1978.  
  1979. s3_c:
  1980.  
  1981.  
  1982.     dc.l    trumpet_snd
  1983.     dc.l    ctune1h1
  1984.  
  1985.     dc.l    flute_snd
  1986.     dc.l    ctune2d
  1987.     dc.l    flute_snd
  1988.     dc.l    ctune2d
  1989.  
  1990.     dc.l    pr,pr
  1991.  
  1992.     dc.l    flute_snd
  1993.     dc.l    ctune2d
  1994.  
  1995.  
  1996.     dc.l     0,end_song
  1997.  
  1998.  
  1999. s4_c:
  2000.  
  2001.  
  2002.     dc.l    csnared
  2003.     dc.l    csnared
  2004.     dc.l    csnared
  2005.     dc.l    cs1d
  2006.  
  2007.     dc.l    aguitar_sndq
  2008.     dc.l    cflute_acc
  2009.     dc.l    aguitar_sndq
  2010.     dc.l    cflute_acc
  2011.  
  2012.     dc.l    snare_snd
  2013.     dc.l    cs1d
  2014.     dc.l    pr,pr,pr,pr,pr,pr,pr,pr
  2015.     dc.l     0,end_song
  2016.  
  2017.  
  2018. ctune1:
  2019.     ;dc.w d03,$0008
  2020.     dc.w modon,1,1,2,2,6,6
  2021.     dc.w g03,$0038,d03,$0004,g03,$0004,d03,cr*6,rest,440-cr*6
  2022.     dc.w d03,$0004,f03,$0038,d03,$0004,f03,$0008,d03,cr*6,rest,$01a0-sq-cr*6
  2023.     dc.w d03,$0024,eb03,$005c,f03,$0010,eb03,$0010,d03,$0020
  2024.     dc.w bb02,$0020,f02,$0020,bb02,$0020,g02,cr*8
  2025.  
  2026.     dc.w    rest,cr*8
  2027.     dc.w end_patt
  2028.  
  2029.  
  2030. ctune2:
  2031.     dc.w modon,1,1,2,2,6,6
  2032.  
  2033.     dc.w g02,$0038,d02,$0004,g02,$0004,d02,cr*6-4
  2034.     dc.w d02,$0004,f02,$0038,d02,$0004,f02,$0008,d02,cr*5-12
  2035.     dc.w d02,$0024,eb02,$005c,f02,$0010,eb02,$0010,d02,$0020
  2036.     dc.w bb01,$0020,f01,$0020,bb01,$0020,g01,cr*8+4
  2037.     dc.w end_patt
  2038.  
  2039. cflute_acc
  2040.     dc.w modon,1,1,1,1,6,6
  2041.     dc.w    g01,q,bb01,q,d02,q,g02,q,d02,q,bb02,q,d02,q,g02,q    
  2042.     dc.w    g01,q,bb01,q,d02,q,g02,q,d02,q,bb02,q,d02,q,g02,q    
  2043.     dc.w    f01,q,a01,q,c02,q,f02,q,g02,q,bb01,q,d02,q,g02,q    
  2044.     dc.w    g01,q,bb01,q,d02,q,g02,q,d02,q,bb02,q,d02,q,g02,q    
  2045.     dc.w    eb01,q,g01,q,bb01,q,eb02,q,bb01,q,g01,q,bb01,q,eb02,q    
  2046.     dc.w    bb01,q,d02,q,f02,q,bb02,q,f02,q,d02,q,f02,q,bb02,q    
  2047.     dc.w    g01,q,b01,q,d02,q,g02,q,d02,q,b02,q,d02,q,g02,q    
  2048.     dc.w    g01,q,b01,q,d02,q,g02,q,d02,q,b02,q,d02,q,g02,q    
  2049.  
  2050.     dc.w end_patt
  2051.  
  2052.  
  2053. ctune1h1
  2054.  
  2055.     dc.w g02,$0038,d02,$0004,g02,$0004,d02,cr*6,rest,440-cr*6
  2056.     dc.w d02,$0004,f02,$0038,d02,$0004,f02,$0008,d02,cr*6,rest,$01a0-sq-cr*6
  2057.     dc.w d02,$0024,eb02,$005c,f02,$0010,eb02,$0010,d02,$0020
  2058.     dc.w bb01,$0020,f01,$0020,bb01,$0020,g01,cr*8
  2059.     dc.w    rest,cr*8
  2060.     dc.w end_patt
  2061.  
  2062.  
  2063. ctune2d:
  2064.     dc.w modon,1,1,2,2,6,6
  2065.     dc.w rest,4,g02,$0038,d02,$0004,g02,$0004,d02,cr*6-4
  2066.     dc.w d02,$0004,f02,$0038,d02,$0004,f02,$0008,d02,cr*5-12
  2067.     dc.w d02,$0024,eb02,$005c,f02,$0010,eb02,$0010,d02,$0020
  2068.     dc.w bb01,$0020,f01,$0020,bb01,$0020,g01,cr*8
  2069.  
  2070.     dc.w end_patt
  2071.  
  2072.  
  2073. csnare:
  2074.     dc.w    new_env
  2075.     dc.l    snare_env
  2076.     dc.w    new_snd
  2077.     dc.l    snarep
  2078.  
  2079.     dc.w    r16,cr+q,r16,tsq1,r16,tsq1,r16,tsq1,r16,q,r16,cr+q
  2080.     dc.w    r16,cr+q,r16,tsq1,r16,tsq1,r16,tsq1,r16,q,r16,cr+q
  2081. cs1    dc.w    r16,cr+q,r16,tsq1,r16,tsq1,r16,tsq1,r16,q,r16,cr+q
  2082.     dc.w    r16,cr+q,r16,tsq1,r16,tsq1,r16,tsq1,r16,q,r16,cr+q
  2083.     dc.w end_patt
  2084.  
  2085. csnared:
  2086.     dc.w    new_env
  2087.     dc.l    snare_envq
  2088.     dc.w    new_snd
  2089.     dc.l    snarep
  2090.     dc.w modon,1,1,8,8,1,1
  2091.  
  2092.     dc.w    rest,2,r16,cr+q,r16,tsq1,r16,tsq1,r16,tsq1,r16,q,r16,cr+q
  2093.     dc.w    r16,cr+q,r16,tsq1,r16,tsq1,r16,tsq1,r16,q,r16,cr+q-2
  2094. cs1d    dc.w    rest,3,r16,cr+q,r16,tsq1,r16,tsq1,r16,tsq1,r16,q,r16,cr+q
  2095.     dc.w    r16,cr+q,r16,tsq1,r16,tsq1,r16,tsq1,r16,q,r16,cr+q-3
  2096.     dc.w end_patt
  2097.  
  2098. ctamb
  2099.     dc.w    130,cr+q,130,q,130,cr*2
  2100.     dc.w    130,cr+q,130,q,130,cr*2
  2101.     dc.w    130,cr+q,130,q,130,cr*2
  2102.     dc.w    130,cr+q,130,q,130,cr*2
  2103.     dc.w end_patt
  2104.  
  2105. ;----------
  2106.  
  2107.  
  2108. ;----------------
  2109. pri:
  2110.     dc.w    rest,65000
  2111.     dc.w    rest,65000
  2112.     dc.w    rest,65000
  2113.     dc.w    rest,65000
  2114.     dc.w    rest,65000
  2115.     dc.w    rest,65000
  2116.     dc.w    rest,65000
  2117.     dc.w end_patt
  2118.  
  2119. ;--------------------
  2120.  
  2121. sounds:
  2122.  
  2123. flute_snd:
  2124.     dc.w    new_env
  2125.     dc.l    flute_env
  2126.     dc.w    new_snd
  2127.     dc.l    flutep
  2128.     dc.w     end_patt
  2129.  
  2130. click_snd:
  2131.     dc.w    new_env
  2132.     dc.l    click_env
  2133.     dc.w    new_snd
  2134.     dc.l    clickp
  2135.     dc.w     end_patt
  2136.  
  2137.  
  2138.  
  2139.  
  2140. sine_snd:
  2141.     dc.w    new_env
  2142.     dc.l    sine_env_short
  2143.     dc.w    new_snd
  2144.     dc.l    sinep
  2145.     dc.w     end_patt
  2146.  
  2147. flute_sndq:
  2148.     dc.w    new_env
  2149.     dc.l    flute_envq
  2150.     dc.w    new_snd
  2151.     dc.l    flutep
  2152.     dc.w     end_patt
  2153.  
  2154. aguitar_snd:
  2155.     dc.w    new_env
  2156.     dc.l    aguitar_env
  2157.     dc.w    new_snd
  2158.     dc.l    aguitp
  2159.     dc.w     end_patt
  2160.  
  2161. aguitar_sndq:
  2162. aguitar_snd_quiet:
  2163.     dc.w    new_env
  2164.     dc.l    aguitar_env_quiet
  2165.     dc.w    new_snd
  2166.     dc.l    aguitp
  2167.     dc.w     end_patt
  2168.  
  2169.  
  2170. tamb_snd:
  2171.     dc.w    new_env
  2172.     dc.l    tamb_env
  2173.     dc.w    new_snd
  2174.     dc.l    tambp
  2175.     dc.w     end_patt
  2176.  
  2177.  
  2178. abass_snd:
  2179.     dc.w    new_env
  2180.     dc.l    abass_env
  2181.     dc.w    new_snd
  2182.     dc.l    abassp
  2183.     dc.w     end_patt
  2184.  
  2185. sitar_snd:
  2186.     dc.w    new_env
  2187.     dc.l    sitar_env
  2188.     dc.w    new_snd
  2189.     dc.l    sitarp
  2190.     dc.w     end_patt
  2191.  
  2192. snare_snd:
  2193.     dc.w    new_env
  2194.     dc.l    snare_env
  2195.     dc.w    new_snd
  2196.     dc.l    snarep
  2197.     dc.w     end_patt
  2198.  
  2199. snare_sndq:
  2200.     dc.w    new_env
  2201.     dc.l    snare_envq
  2202.     dc.w    new_snd
  2203.     dc.l    snarep
  2204.     dc.w     end_patt
  2205.  
  2206. trumpet_snd:
  2207.     dc.w    new_env
  2208.     dc.l    trumpet_env
  2209.     dc.w    new_snd
  2210.     dc.l    trumpetp
  2211.     dc.w     end_patt
  2212.  
  2213. trumpet_sndq:
  2214.     dc.w    new_env
  2215.     dc.l    trumpet_envq
  2216.     dc.w    new_snd
  2217.     dc.l    trumpetp
  2218.     dc.w     end_patt
  2219.  
  2220.  
  2221.  
  2222. ;***********************************************
  2223.  
  2224. parameters:
  2225.  
  2226. iff    equ 108
  2227.  
  2228.     ; sample parameters
  2229.  
  2230.  
  2231. snarep
  2232.         dc.w 1  
  2233.              dc.l snared
  2234.              dc.w 2240/2  
  2235.              dc.l restd
  2236.              dc.w 16/2
  2237.  
  2238.  
  2239. trumpetp
  2240.         dc.w 1  
  2241.              dc.l synbras1d
  2242.              dc.w 3338/2  
  2243.              dc.l synbras1d
  2244.              dc.w 3338/2  
  2245.  
  2246. abassp
  2247.         dc.w 1  
  2248.              dc.l abassd+iff
  2249.              dc.w 7117/2 
  2250.              dc.l restd
  2251.              dc.w 16/2
  2252.  
  2253. flutep
  2254.         dc.w 1  
  2255.              dc.l fluted+iff
  2256.              dc.w 7278/2
  2257.              dc.l fluted+4173+iff
  2258.              dc.w 3106/2
  2259.  
  2260. tambp
  2261.         dc.w 1  
  2262.              dc.l tambd
  2263.              dc.w 1457/2 
  2264.              dc.l restd
  2265.              dc.w 16/2
  2266.  
  2267. sitarp
  2268.         dc.w 1  
  2269.              dc.l sitard
  2270.              dc.w 7708/2 
  2271.              dc.l restd
  2272.              dc.w 16/2
  2273.  
  2274. guitarp
  2275. guitp
  2276. aguitp
  2277.         dc.w 1  
  2278.              dc.l aguitd+iff
  2279.              dc.w 9576/2 
  2280.              dc.l restd
  2281.              dc.w 16/2
  2282.  
  2283. sinep
  2284.         dc.w 1  
  2285.              dc.l sined
  2286.              dc.w 16/2 
  2287.              dc.l sined
  2288.              dc.w 16/2
  2289.  
  2290. clickp
  2291.         dc.w 1  
  2292.              dc.l waved
  2293.              dc.w 16/2 
  2294.              dc.l restd
  2295.              dc.w 16/2
  2296.  
  2297.  
  2298.  
  2299. envelopes:
  2300.  
  2301.  
  2302. rest_env:            dc.w 0,0,0,0,0,0,0,0,255
  2303. flute_env:            dc.w 0,48,255
  2304. flute_envq:            dc.w 0,28,255
  2305. tamb_env:            dc.w 0,62,255
  2306. aguitar_env:            dc.w 0,45,255
  2307. aguitar_env_quiet:        dc.w 0,30,255
  2308. sitar_env:            dc.w 0,42,255
  2309. abass_env:            dc.w 0,54,255
  2310. snare_env:            dc.w 0,35,255
  2311. snare_envq:            dc.w 0,25,255
  2312. trumpet_env:            dc.w 0,35,255
  2313. trumpet_envq:            dc.w 0,25,255
  2314. click_env:            dc.w 0,10,255
  2315. sine_env_short:            dc.w 0,50,45,40,35,30,25,20,15,10,0,255
  2316.  
  2317.  
  2318. ;**************************************************
  2319.  
  2320. ;;THE FX SAMPLES ARE PULLED IN HERE...THis section can be anywhere
  2321. ;; in lower memory,and in any order
  2322.  
  2323. aguitd            incbin c:instruments/aguit.sam 
  2324. tambd            incbin c:instruments/tamb.sam 
  2325. fluted            incbin c:instruments/flute.sam 
  2326. sitard            incbin c:instruments/sitar.sam 
  2327. abassd            incbin c:instruments/abass1.sam 
  2328. snared            incbin c:instruments/snare.sam 
  2329. synbras1d        incbin c:instruments/hbrass3l.sam 
  2330. waved            incbin c:instruments/wave.sam 
  2331.  
  2332.  
  2333. ;********************************************
  2334.  
  2335.  
  2336. restd:
  2337. rest_data:
  2338.              dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2339. sined:
  2340. sine_datad:
  2341.              dc.w 127,80,50,25,0,-25,-50,-100,-127
  2342.              dc.w -127,-100,-50,-35,0,35,50,80,127
  2343.              dc.w 127,80,50,25,0,-25,-50,-100,-127
  2344.              dc.w -127,-100,-50,-35,0,35,50,80,127
  2345.  
  2346.  
  2347. ;*************************************************
  2348.  
  2349.     end
  2350.  
  2351.  
  2352.  
  2353.  
  2354.     dc.w modon,1,1,8,8,6,6
  2355.     dc.w pbend,down,1,60000,32
  2356.  
  2357.