home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 4: Demo 1 / almathera_demo1.bin / sourcecode / dexion / modyddd1.s < prev    next >
Text File  |  1995-03-17  |  15KB  |  780 lines

  1. move.l    $04,a6
  2. lea    gfxname,a1
  3. jsr    -408(a6)
  4. move.l    $2230,oldclist
  5. move.l    #newclist,$2230
  6. move.l    #$21fe,a6
  7. lea    bitmap,a0
  8. move.l    #$01,d0
  9. move.l    #336,d1
  10. move.l    #200,d2
  11. jsr    -390(a6)
  12. move.l    #$70000,plane1
  13. lea    rastport,a1
  14. jsr    -198(a6)
  15. move.l    #bitmap,r_bitmap
  16. lea    rastport,a1
  17. jsr    -48(a6)
  18. bsr on
  19. move.l    #scrollm,zeiger
  20. move.l    $6c,oldirq+2
  21. move.l    #newirq,$6c
  22. wait:
  23. jsr scroll
  24. or.b #2,$bfe001
  25. btst    #6,$bfe001
  26. bne.s    wait
  27. move.l    #$676,a6
  28. move.l    oldirq+2,$6c
  29. move.l    oldclist,$2230
  30. move.l    #$21fe,a1
  31. jsr    -414(a6)
  32. rts
  33.  
  34. newirq:
  35. ;bsr playsound
  36. movem.l    d0-d7/a0-a6,-(sp)
  37. move.l    #$21fe,a6
  38. lea    rastport,a1
  39. move.l    #$02,d0
  40. clr.l    d1
  41. clr.l    d2
  42. move.l    #090,d3
  43. move.l    #336,d4
  44. move.l    #200,d5
  45. jsr    -396(a6)
  46. sub.b    #$02,rows
  47. bne.s    exit
  48. move.b    #$08,rows
  49. lea    rastport,a1
  50. move.l    #320,d0
  51. move.l    #098,d1
  52. jsr    -240(a6)
  53. lea    rastport,a1
  54. move.l    zeiger,a0
  55. move.l    #$01,d0
  56. jsr    -60(a6)
  57. addq.l    #$01,zeiger
  58. cmp.l    #end,zeiger
  59. blt.s    exit
  60. move.l    #scrollm,zeiger
  61. exit:
  62. movem.l    (sp)+,d0-d7/a0-a6
  63. oldirq:
  64. jmp    $00000000
  65. scroll:
  66. andi.b #253,$bfe001
  67. jsr -270(a6)
  68. lea po1,a2
  69. move.l #-2*20,d0
  70. add.w d0,(a2)
  71. lea po2,a2
  72. move.l #-2*10,d0
  73. add d0,(a2)
  74. lea po3,a2
  75. add #1,(a2)
  76. rts
  77. newclist:
  78. dc.w    $008e,$2c81,$0090,$1cc1,$0092,$0038,$0094,$00d0
  79. dc.w    $0102,$0000,$0104,$0000,$010a,$0000
  80. dc.w    $0100,$4200,$0180,$0000,$0182
  81. po3:dc.w $0fff
  82. dc.w $0184,$0fff
  83. dc.w    $0188,$0444,$0190,$0aaa
  84. dc.w    $00e0,$0007,$00e2,$0000
  85. dc.w    $00e4,$0004,$00e6
  86. po1:dc.w $0000
  87. dc.w    $00e8,$0004,$00ea,$0000
  88. dc.w    $00ec,$0004,$00ee
  89. po2:dc.w $0000
  90. dc.w    $8201,$fffe,$0180,$000f,$8501,$fffe,$0180,$000a
  91. dc.w    $9201,$fffe,$0180,$0007,$9501,$fffe,$0180,$0000
  92. dc.w    $010a,$0000,$0108,$0002
  93. dc.w    $ffff,$fffe
  94. scrollm:
  95. dc.b    "WONDERBOY PRESENTS: >>NEW STUFF<<!!!!!           "
  96. end:
  97. even
  98. zeiger:
  99. dc.l    0
  100. oldclist:
  101. dc.l    0
  102. gfxbase:
  103. dc.l    0
  104. gfxname:
  105. dc.b    "graphics.library",0
  106. even
  107. bitmap:
  108. blk.w    4,0
  109. plane1:
  110. blk.l    20,0
  111. rastport:
  112. dc.l    0
  113. r_bitmap:
  114. blk.l    30,0
  115. rows:
  116. dc.b    2
  117. irqvec       = $00000068
  118. dmacon       = $dff096
  119. timerlo      = $00
  120. timerhi      = $30
  121. talo         = $bfe401
  122. tahi         = $bfe501
  123. icr          = $bfed01
  124. cra          = $bfee01
  125. aud0lch      = $a0
  126. aud0lcl      = $a2
  127. aud0len      = $a4
  128. aud0per      = $a6
  129. aud0vol      = $a8
  130. s_wavedco    = 0
  131. s_envelope   = 32       
  132. s_sus        = 48
  133. s_end        = 49
  134. s_wavelfo    = 50
  135. s_spdlfo     = 66+16
  136. s_slctlfo    = 67+16
  137. s_typelfo    = 68+16
  138. s_phase      = 69+16
  139. s_arp        = 70+16
  140. s_spdport    = 78+16
  141. s_spdbend    = 80+16
  142. s_egfreq     = 82+16
  143. v_sactive    = 0
  144. v_envpoint   = 4
  145. v_lfowpoint  = 8
  146. v_phmark     = 12
  147. v_notetim    = 14
  148. v_lfotim     = 16
  149. v_arpoint    = 18
  150. v_actnote    = 22
  151. v_wntnote    = 24
  152. v_hardw      = 26
  153. v_trkstp     = 30
  154. v_crnot      = 34
  155. v_trkbck     = 38
  156. v_actfrq     = 42
  157. v_trnspse    = 46
  158. v_savnote    = 50
  159. v_add        = 52
  160. v_pauspnt    = 54
  161. v_actloud    = 56
  162. even
  163. on:
  164. move.l #$1,d0
  165. jsr beg
  166. rts
  167.  
  168. off:
  169. move.l #$0,d0
  170. jsr beg
  171. rts
  172.  
  173. beg:
  174. jmp progstart
  175.  
  176. saveirqvec:
  177. dc.l 0
  178.  
  179. sound1:
  180. dc.b 127,127,127,127,127,127,127,127,-128,-128  ; WaveForm DCO
  181. dc.b -128,127,127,-128,-128,-128,127,127,127,127,127
  182. dc.b 127,127,127,127,127,127,127,127,127,127,127
  183.  
  184. dc.b 50,175,6,0,0,0,0,0,0,0,0,0,0,0,0,0  ; Envelope (Rate/Level)
  185. dc.b 0,2  ; No SUS, END is step #2
  186.  
  187. dc.b -128,-128,-128,-128,-128,-128,-128,-128,-128,-128  ; WaveForm LFO
  188. dc.b -128,-128,-128,-128,-128,-128,127,127,127,127,127
  189. dc.b 127,127,127,127,127,127,127,127,127,127,127
  190. dc.b 0  ; Speed LFO
  191. dc.b 1+2  ; LFO for Amplitude & Frequency
  192. dc.b 1  ; LFO: on
  193.  
  194. dc.b 0  ; Depth of Phasing, 0=none
  195.  
  196. dc.b 0,0,0,0,0,0,0,0  ; Arpeggio
  197.  
  198. dc.w 0  ; Speed Portamento (0=none)
  199.  
  200. dc.w 0  ; BendRate
  201.  
  202. dc.w 0  ; EG frequency off
  203.  
  204.  
  205. sound2:
  206. dc.b 127,127,127,127,127,127,127,127,-128,-128  ; WaveForm DCO
  207. dc.b -128,127,127,-128,-128,-128,127,127,127,127,127
  208. dc.b 127,127,127,127,127,127,127,127,127,127,127
  209.  
  210. dc.b 255,255,7,100,3,0,0,0,0,0,0,0,0,0,0,0  ; Envelope (Rate/Level)
  211. dc.b 0,3  ; No SUS, END is step #2
  212.  
  213. dc.b -128,-120,-112,-104,-96,-88,-80,-72,-64,-56  ; WaveForm LFO
  214. dc.b -48,-40,-32,-24,-16,-8,0,8,16,24,32
  215. dc.b 40,48,56,64,72,80,88,96,104,112,127
  216. dc.b 0  ; Speed LFO
  217. dc.b 1+2  ; LFO for Amplitude & Frequency
  218. dc.b 1  ; LFO: on
  219.  
  220. dc.b 0  ; Depth of Phasing, 0=none
  221.  
  222. dc.b 0,0,0,0,0,0,0,0  ; Arpeggio
  223.  
  224. dc.w 0  ; Speed Portamento (0=none)
  225.  
  226. dc.w 0  ; BendRate
  227.  
  228. dc.w 0  ; EG frequency off
  229.  
  230.  
  231. sound3:
  232. dc.b -128,-128,-128,-128,-128,-128,-128,-128,-128,-128  ; WaveForm DCO
  233. dc.b -128,-128,-128,-128,-128,-128,127,127,127,127,127
  234. dc.b 127,127,127,127,127,127,127,127,127,127,127
  235.  
  236. dc.b 255,255,25,0,0,0,0,0,0,0,0,0,0,0,0,0  ; Envelope (Rate/Level)
  237. dc.b 0,2  ; No SUS, END is step #2
  238.  
  239. dc.b -128,-128,-128,-128,-128,-128,-128,-128,-128,-128  ; WaveForm LFO
  240. dc.b -128,-128,-128,-128,-128,-128,127,127,127,127,127
  241. dc.b 127,127,127,127,127,127,127,127,127,127,127
  242. dc.b 0  ; Speed LFO
  243. dc.b 1+2  ; LFO for Amplitude & Frequency
  244. dc.b 1  ; LFO: on
  245.  
  246. dc.b 0  ; Depth of Phasing, 0=none
  247.  
  248. dc.b 0,0,0,0,0,0,0,0  ; Arpeggio
  249.  
  250. dc.w 0  ; Speed Portamento (0=none)
  251.  
  252. dc.w -50  ; BendRate
  253.  
  254. dc.w 0  ; EG frequency off
  255.  
  256.  
  257. sound4:
  258. dc.b -128,-128,-128,-128,-128,-128,-128,-128,-128,-128  ; WaveForm DCO
  259. dc.b -128,-128,-128,-128,-128,-128,127,127,127,127,127
  260. dc.b 127,127,127,127,127,127,127,127,127,127,127
  261.  
  262. dc.b 255,255,15,0,0,0,0,0,0,0,0,0,0,0,0,0  ; Envelope (Rate/Level)
  263. dc.b 0,2  ; No SUS, END is step #2
  264.  
  265. dc.b -128,-128,-128,-128,-128,-128,-128,-128,-128,-128  ; WaveForm LFO
  266. dc.b -128,-128,-128,-128,-128,-128,127,127,127,127,127
  267. dc.b 127,127,127,127,127,127,127,127,127,127,127
  268. dc.b 0  ; Speed LFO
  269. dc.b 1+2  ; LFO for Amplitude & Frequency
  270. dc.b 1  ; LFO: on
  271.  
  272. dc.b 0  ; Depth of Phasing, 0=none
  273.  
  274. dc.b 0,0,0,0,0,0,0,0  ; Arpeggio
  275.  
  276. dc.w 0  ; Speed Portamento (0=none)
  277.  
  278. dc.w -50  ; BendRate
  279.  
  280. dc.w 0  ; EG frequency off
  281.  
  282.  
  283. sound5:
  284. dc.b -128,-128,-128,-128,-128,-128,-128,-128,127,127  ; WaveForm DCO
  285. dc.b 127,127,127,127,127,127,-128,-98,-68,-38,-8,28
  286. dc.b 58,78,98,118,120,122,124,125,126,127
  287.  
  288. dc.b 50,255,4,80,0,0,0,0,0,0,0,0,0,0,0,0  ; Envelope (Rate/Level)
  289. dc.b 0,2  ; No SUS, END is step #2
  290.  
  291. dc.b -128,-128,-128,-128,-128,-128,127,127,127,127  ; WaveForm LFO
  292. dc.b 127,127,127,127,127,127,127,127,127,127,127
  293. dc.b 127,127,127,127,127,127,127,127,127,127,127
  294. dc.b 0  ; Speed LFO
  295. dc.b 0
  296. dc.b 1  ; LFO on
  297.  
  298. dc.b 4  ; Depth of Phasing, 0=none
  299.  
  300. dc.b 0,0,0,0,0,0,0,0  ; Arpeggio
  301.  
  302. dc.w 0  ; Speed Portamento (0=none)
  303.  
  304. dc.w 0  ; BendRate
  305.  
  306. dc.w 0  ; EG frequency off
  307.  
  308.  
  309. even
  310. freqtab:
  311. dc.w 6848,6464,6096,5760,5424,5120,4832,4560,4304,4064,3840,3616
  312. dc.w 3424,3232,3048,2880,2712,2560,2416,2280,2152,2032,1920,1808
  313. dc.w 1712,1616,1524,1440,1356,1280,1208,1140,1076,1016,0960,0904
  314. dc.w 0856,0808,0762,0720,0678,0640,0604,0570,0538,0508,0480,0452
  315. dc.w 0428,0404,0381,0360,0339,0320,0302,0285,0269,0254,0240,0226
  316. dc.w 0214,0202,0190,0180,0170,0160,0151,0143,0135,0127
  317.  
  318. voice1:
  319. dc.l sound1  ; Active Sound
  320. dc.l 0       ; Pointer to Envelope
  321. dc.l 0       ; Pointer to LFO-Waveform
  322. dc.w 0       ; Phaser
  323. dc.w 0       ; Timer of Note
  324. dc.w 0       ; Timer of LFO-Speed
  325. dc.l 0       ; Pointer to Arpeggio
  326. dc.w 0       ; Actual Frequency
  327. dc.w 0       ; Wanted Frequency
  328. dc.l $dff0a0 ; Pointer to Hardware registers
  329. dc.l 0       ; Current step of track
  330. dc.l 0       ; Current note
  331. dc.l track1  ; reset track #
  332. dc.l 0       ; Actual frequency
  333. dc.l 0       ; Transpose
  334. dc.w 0       ; Savenote
  335. dc.w 0       ; Value to add
  336. dc.w 0       ; PausePoint
  337. dc.w 0       ; ActLoud
  338.  
  339. voice2:
  340. dc.l sound1  ; Active Sound
  341. dc.l 0       ; Pointer to Envelope
  342. dc.l 0       ; Pointer to LFO-Waveform
  343. dc.w 0       ; Phaser
  344. dc.w 0       ; Timer of Note
  345. dc.w 0       ; Timer of LFO-Speed
  346. dc.l 0       ; Pointer to Arpeggio
  347. dc.w 0       ; Actual Frequency
  348. dc.w 0       ; Wanted Frequency
  349. dc.l $dff0b0 ; Pointer to Hardware registers
  350. dc.l 0       ; Current step of track
  351. dc.l 0       ; Current note
  352. dc.l track2  ; reset track #
  353. dc.l 0       ; Actual frequency
  354. dc.l 0       ; Transpose
  355. dc.w 0       ; Savenote
  356. dc.w 0       ; Value to add
  357. dc.w 0       ; PausePoint
  358. dc.w 0       ; ActLoud
  359.  
  360. voice3:
  361. dc.l sound1  ; Active Sound
  362. dc.l 0       ; Pointer to Envelope
  363. dc.l 0       ; Pointer to LFO-Waveform
  364. dc.w 0       ; Phaser
  365. dc.w 0       ; Timer of Note
  366. dc.w 0       ; Timer of LFO-Speed
  367. dc.l 0       ; Pointer to Arpeggio
  368. dc.w 0       ; Actual Frequency
  369. dc.w 0       ; Wanted Frequency
  370. dc.l $dff0c0 ; Pointer to Hardware registers
  371. dc.l 0       ; Current step of track
  372. dc.l 0       ; Current note
  373. dc.l track3  ; reset track #
  374. dc.l 0       ; Actual frequency
  375. dc.l 0       ; Transpose
  376. dc.w 0       ; Savenote
  377. dc.w 0       ; Value to add
  378. dc.w 0       ; PausePoint
  379. dc.w 0       ; ActLoud
  380.  
  381. voice4:
  382. dc.l sound1  ; Active Sound
  383. dc.l 0       ; Pointer to Envelope
  384. dc.l 0       ; Pointer to LFO-Waveform
  385. dc.w 0       ; Phaser
  386. dc.w 0       ; Timer of Note
  387. dc.w 0       ; Timer of LFO-Speed
  388. dc.l 0       ; Pointer to Arpeggio
  389. dc.w 0       ; Actual Frequency
  390. dc.w 0       ; Wanted Frequency
  391. dc.l $dff0d0 ; Pointer to Hardware registers
  392. dc.l 0       ; Current step of track
  393. dc.l 0       ; Current note
  394. dc.l track4  ; reset track #
  395. dc.l 0       ; Actual frequency
  396. dc.l 0       ; Transpose
  397. dc.w 0       ; Savenote
  398. dc.w 0       ; Value to add
  399. dc.w 0       ; PausePoint
  400. dc.w 0       ; ActLoud
  401.  
  402. track2:
  403. dc.l score1,13,score1,18,score2,11,score2,16,score2,9,score2,8
  404. dc.l score2,13,score2,13
  405. dc.l 0,0
  406. track1:
  407. dc.l score3,-23,score3,-18,score4,-25,score4,-20,score4,-27,score3,-24
  408. dc.l score4,-23,score4,-23
  409. dc.l 0,0
  410. track3:
  411. dc.l score5,5
  412. dc.l 0,0
  413. track4:
  414. dc.l score6,-2
  415. dc.l 0,0
  416.  
  417. progstart:
  418. movem.l d0-d7/a0-a6,-(a7)
  419. tst.l d0
  420. beq soff
  421. jsr switchon
  422. bra back
  423. soff:
  424. jsr switchoff
  425. back:
  426. movem.l (a7)+,d0-d7/a0-a6
  427. rts
  428.  
  429. switchoff:
  430. cmpi.l #newirq1,irqvec
  431. bne notoff
  432. move.b #$01,icr
  433. move.l saveirqvec,irqvec
  434. move.w #$000f,dmacon
  435. jsr setback
  436. notoff:
  437. rts
  438.  
  439. switchon:
  440. cmpi.l #newirq1,irqvec
  441. beq noton 
  442. move.b #$81,icr
  443. move.b #$2f,cra
  444. move.b #$81,cra
  445. move.b #timerlo,talo
  446. move.b #timerhi,tahi
  447. move.l irqvec,saveirqvec
  448. move.l irqvec,statement+2
  449. jsr setback
  450. jsr setup
  451. move.w #$800f,dmacon
  452. move.l #newirq,irqvec
  453. noton:
  454. rts
  455.  
  456. setback:
  457. lea $dff000,a0
  458. jsr reset
  459. lea $dff010,a0
  460. jsr reset
  461. lea $dff020,a0
  462. jsr reset
  463. lea $dff030,a0
  464. jsr reset
  465. rts
  466. reset:
  467. clr.l aud0lch(a0)
  468. clr.w aud0len(a0)
  469. clr.w aud0per(a0)
  470. clr.w aud0vol(a0)
  471. rts
  472.  
  473. setup:
  474. move.l #track1,v_trkstp+voice1
  475. move.l #track2,v_trkstp+voice2
  476. move.l #track3,v_trkstp+voice3
  477. move.l #track4,v_trkstp+voice4
  478. clr.l v_notetim+voice1
  479. clr.l v_notetim+voice2
  480. clr.l v_notetim+voice3
  481. clr.l v_notetim+voice4
  482. move.l track1,v_crnot+voice1
  483. move.l track2,v_crnot+voice2
  484. move.l track3,v_crnot+voice3
  485. move.l track4,v_crnot+voice4
  486. move.l track1+4,v_trnspse+voice1
  487. move.l track2+4,v_trnspse+voice2
  488. move.l track3+4,v_trnspse+voice3
  489. move.l track4+4,v_trnspse+voice4
  490.  
  491. move.l #s_wavedco+sound1,aud0lch+$dff000
  492. move.l #s_wavedco+sound1,aud0lch+$dff010
  493. move.l #s_wavedco+sound1,aud0lch+$dff020
  494. move.l #s_wavedco+sound1,aud0lch+$dff030
  495. move.w #$10,aud0len+$dff000
  496. move.w #$10,aud0len+$dff010
  497. move.w #$10,aud0len+$dff020
  498. move.w #$10,aud0len+$dff030
  499. rts
  500.  
  501. newirq1:
  502. movem.l d0-d7/a0-a6,-(a7)
  503. cmp.b #timerhi-1,$bfe501
  504. bne nottim
  505. bsr playsound
  506. nottim:
  507. movem.l (a7)+,d0-d7/a0-a6
  508. statement:
  509. jmp $ffffffff
  510.  
  511. playsound:
  512. lea voice1,a0
  513. jsr playvoice
  514. lea voice2,a0
  515. jsr playvoice
  516. lea voice3,a0
  517. jsr playvoice
  518. lea voice4,a0
  519. jsr playvoice
  520. rts
  521.  
  522. playvoice:
  523. subq.w #1,v_notetim(a0)
  524. bpl notyet1
  525. clr.w v_add(a0)
  526. clr.w v_pauspnt(a0)
  527. musl1:
  528. move.l v_crnot(a0),a1
  529. move.l v_trnspse(a0),d3
  530. clr.l d4
  531. move.w (a1),d4
  532. cmp.w #128,d4          ;change snd?
  533. bne testarp
  534. move.l 2(a1),v_sactive(a0)
  535. addi.l #6,v_crnot(a0)
  536. move.l 2(a1),d5
  537. move.l v_hardw(a0),a3
  538. move.l d5,(a3)
  539. bra musl1 
  540. testarp:
  541. cmp.w #129,d4          ;change arp?
  542. bne chpause
  543. move.l v_sactive(a0),a3
  544. move.l 2(a1),s_arp(a3)
  545. move.l 6(a1),s_arp+4(a3)
  546. addi.l #10,v_crnot(a0)
  547. bra musl1
  548. chpause:
  549. cmp.w #130,d4          ;pause?
  550. bne chweiter
  551. move.w #1,v_pauspnt(a0)
  552. bra gut1
  553. chweiter:
  554. add.w d4,d3
  555. move.w d3,v_savnote(a0)
  556. cmp.l v_trnspse(a0),d3
  557. bne gut1
  558. addi.l #8,v_trkstp(a0)
  559. move.l v_trkstp(a0),a2
  560. move.l 4(a2),v_trnspse(a0)
  561. move.l (a2),v_crnot(a0)
  562. bne musl1
  563. move.l v_trkbck(a0),v_trkstp(a0)
  564. move.l v_trkstp(a0),a2
  565. move.l 4(a2),v_trnspse(a0)
  566. move.l (a2),v_crnot(a0)
  567. bra musl1
  568. gut1:
  569. tst.w v_pauspnt(a0)
  570. bne notset
  571. clr.l v_envpoint(a0)
  572. clr.w v_actloud(a0)
  573. notset:
  574. move.w 2(a1),d0
  575. subq.w #1,d0
  576. move.w d0,v_notetim(a0)
  577. adda.l #4,a1
  578. move.l a1,v_crnot(a0)
  579. notyet1:
  580. move.l v_hardw(a0),a2
  581. move.l v_sactive(a0),a3
  582. move.w v_wntnote(a0),d0
  583. subq.w #1,d0
  584. mulu #2,d0
  585. lea freqtab,a4
  586. move.w (a4,d0.w),d1
  587. move.w s_spdport(a3),d0
  588. beq noport
  589. cmp.w v_actfrq(a0),d1
  590. blo portdown
  591. addi.w d0,v_actfrq(a0)
  592. cmp.w v_actfrq(a0),d1
  593. bhi nochklei
  594. move.w d1,v_actfrq(a0)
  595. nochklei:
  596. bra portaend
  597. portdown:
  598. subi.w d0,v_actfrq(a0)
  599. cmp.w v_actfrq(a0),d1
  600. blo nochgroe
  601. move.w d1,v_actfrq(a0)
  602. nochgroe:
  603. bra portaend
  604. noport:
  605. add.w v_add(a0),d1
  606. move.w d1,v_actfrq(a0)
  607. portaend:
  608. move.l v_sactive(a0),a3
  609. adda.l #s_arp,a3
  610. move.l v_arpoint(a0),d1
  611. clr.l d2
  612. move.b (a3,d1.l),d2
  613. bpl positiv
  614. neg.b d2
  615. clr.l d3
  616. move.w v_savnote(a0),d3
  617. sub.w d2,d3
  618. move.w d3,d2
  619. bra negativ
  620. positiv:
  621. add.w v_savnote(a0),d2
  622. negativ:
  623. move.w d2,v_wntnote(a0)
  624. addq.l #1,v_arpoint(a0)
  625. cmp.l #8,v_arpoint(a0)
  626. bne notnull
  627. clr.l v_arpoint(a0)
  628. notnull:
  629. move.l v_sactive(a0),a3
  630. tst.w v_phmark(a0)
  631. beq ffff
  632. clr.w v_phmark(a0)
  633. clr.l d2
  634. move.b s_phase(a3),d2
  635. move.w v_actfrq(a0),d1
  636. add.w d2,d1
  637. move.w d1,v_actfrq(a0)
  638. bra wasffff
  639. ffff:
  640. move.w #$ffff,v_phmark(a0)
  641. clr.l d2
  642. move.b s_phase(a3),d2
  643. move.w v_actfrq(a0),d1
  644. sub.w d2,d1
  645. move.w d1,v_actfrq(a0)
  646. wasffff:
  647. clr.l d2
  648. move.w s_spdbend(a3),d2
  649. sub.w d2,v_add(a0)
  650. clr.l d0
  651. move.w v_actfrq(a0),d0
  652. move.w s_egfreq(a3),d1
  653. beq noteg
  654. bmi dazu
  655. sub.w v_actloud(a0),d0
  656. bra noteg
  657. dazu:
  658. add.w v_actloud(a0),d0
  659. noteg:
  660. move.w d0,$06(a2)
  661. clr.l d2
  662. move.l v_sactive(a0),a2
  663. clr.l d0
  664. clr.l d1
  665. move.b s_sus(a2),d0
  666. move.b s_end(a2),d1
  667. cmp.l v_envpoint(a0),d1
  668. beq envelopend
  669. cmp.l #$00,d0
  670. beq notsustep
  671. cmp.l v_envpoint(a0),d0
  672. bne notsustep
  673. cmpi.w #$00,v_pauspnt(a0)
  674. beq envelopend
  675. notsustep:
  676. move.l v_envpoint(a0),d2
  677. mulu #2,d2
  678. lea s_envelope(a2),a3
  679. clr.l d3
  680. clr.l d4
  681. move.b (a3,d2.w),d3
  682. move.b 1(a3,d2.w),d4
  683. cmp.w v_actloud(a0),d4
  684. bhi loudup
  685. sub.w d3,v_actloud(a0)
  686. cmp.w v_actloud(a0),d4
  687. ble nichtunt
  688. move.w d4,v_actloud(a0)
  689. addq.l #$1,v_envpoint(a0)
  690. nichtunt:
  691. bra envelopend
  692. loudup:
  693. add.w d3,v_actloud(a0)
  694. cmp.w v_actloud(a0),d4
  695. bhi envelopend
  696. move.w d4,v_actloud(a0)
  697. addq.l #$1,v_envpoint(a0)
  698. envelopend:
  699. clr.l d1
  700. move.w v_actloud(a0),d1
  701. divu #4,d1
  702. move.l v_hardw(a0),a1
  703. move.w d1,$08(a1)
  704. rts
  705.  
  706. score1:
  707. dc.w 128
  708. dc.l sound1
  709. dc.w 129
  710. dc.l $0003070c,$0003070c
  711. dc.w 40,28,40,28,40,28,40,28
  712. dc.w 40,28,40,28,40,28,40,28
  713. dc.w 0,0
  714.  
  715. score2:
  716. dc.w 128
  717. dc.l sound1
  718. dc.w 129
  719. dc.l $0004070c,$0004070c
  720. dc.w 40,28,40,28,40,28,40,28
  721. dc.w 40,28,40,28,40,28,40,28
  722. dc.w 0,0
  723.  
  724. score3:
  725. dc.w 128
  726. dc.l sound2
  727. dc.w 129
  728. dc.l $00000000,$00000000
  729. dc.w 40,84,40,28,40,70,40,14,42,14,43,14
  730. dc.w 0,0
  731.  
  732. score4:
  733. dc.w 128
  734. dc.l sound2
  735. dc.w 129
  736. dc.l $00000000,$0000000
  737. dc.w 40,84,40,28,40,70,40,14,42,14,44,14
  738. dc.w 0,0
  739.  
  740. score5:
  741. dc.w 128
  742. dc.l sound3
  743. dc.w 129
  744. dc.l $00000000,$00000000
  745. dc.w 43,56
  746. dc.w 128
  747. dc.l sound4
  748. dc.w 129
  749. dc.l $00000000,$00000000
  750. dc.w 43,28
  751. dc.w 128
  752. dc.l sound3
  753. dc.w 43,28
  754. dc.w 128
  755. dc.l sound4
  756. dc.w 43,56
  757. dc.w 43,56
  758. dc.w 0,0
  759.  
  760. score6:
  761. dc.w 128
  762. dc.l sound5
  763. dc.w 129
  764. dc.l $00000000,$00000000
  765. dc.w 43,56,46,56,50,56,53,56,53,28,51,28,50,28,51,140
  766. dc.w 41,84,45,28,48,56,51,56,51,28,50,28,49,28,50,140
  767. dc.w 39,56,43,56,46,56,50,56,50,28,48,28,47,28,48,84
  768. dc.w 50,28,45,28
  769. dc.w 48,28,47,28,45,28,47,140
  770. dc.w 48,28,47,28,46,28,47,140
  771. dc.w 129
  772. dc.l $00000c0c,$00000c0c
  773. dc.w 43,56,46,56,50,56,53,56,53,28,51,28,50,28,51,140
  774. dc.w 41,84,45,28,48,56,51,56,51,28,50,28,49,28,50,140
  775. dc.w 39,56,43,56,46,56,50,56,50,28,48,28,47,28,48,84
  776. dc.w 50,28,45,28
  777. dc.w 48,28,47,28,45,28,47,140
  778. dc.w 48,28,47,28,46,28,47,140
  779. dc.w 0,0
  780.