home *** CD-ROM | disk | FTP | other *** search
/ Dave Lowe: Amiga KQ 6 Levels Data / Lowe_AmigaKQ6LevelsData.adf / isle_of_sacred_mountain / kq6iosm.s < prev   
Encoding:
Text File  |  1978-08-04  |  40.2 KB  |  2,604 lines

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