home *** CD-ROM | disk | FTP | other *** search
/ Fujiology Archive / fujiology_archive_v1_0.iso / S / SHAPESFT / MSXMENU2.ZIP / MSXMENU2.MSA / SCRAPBIN / SEAFISH.S < prev    next >
Text File  |  1985-11-20  |  10KB  |  733 lines

  1.  CLR.L -(SP)       
  2.  MOVE.W #$20,-(SP) ; Super.
  3.  TRAP #1
  4.  ADDQ.L #6,SP
  5.  MOVE.L D0,SV   ; Save old status.
  6.  
  7.  
  8.  MOVE.B #0,SL
  9.  MOVE.B #96,SD
  10.  MOVE.B #8,SL
  11.  MOVE.B #12,SD
  12.  
  13. DD CMP.B #97,$FFFC02
  14. ; BNE.S DD
  15.  
  16.  
  17. play
  18. ******************
  19.  move.b $469,d0  *
  20. ww cmp.b $469,d0 *
  21.  beq.s ww     *
  22. ******************
  23.  
  24.  
  25.  bsr vbi
  26.  
  27.  
  28.  cmp.b #97,$fffc02
  29.  bne play
  30.  
  31.  
  32.     lea    $ff8800,a0    get sound chip 
  33.     move.b    #7,(a0)
  34.     move.b    #%11111111,2(a0) cut out lingering noise
  35.     move.l #$8000000,$ff8800 
  36.     move.l #$9000000,$ff8800 
  37.     move.l #$a000000,$ff8800 
  38.  
  39.  
  40.  MOVE.L SV,-(SP)
  41.  MOVE.W #$20,-(SP)
  42.  TRAP #1
  43.  ADDQ.L #6,SP
  44.  
  45.  CLR -(SP)
  46.  TRAP #1
  47.  
  48.  
  49.  
  50.  
  51.  
  52. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  53.  
  54.  
  55. SL EQU $FF8800
  56. SD EQU $FF8802
  57.  move.b #7,sl
  58.  move.b #%11111000,sd
  59.  
  60.  
  61.  
  62. VBI  
  63.  add.b #240,flo
  64.  bcc killer
  65.  
  66.  movem.l d0-d3/a0-a6,-(sp)
  67.  
  68.  
  69.  
  70. ;\\\\\\\\\\\\\
  71.  MOVE.L UPTO,A2
  72.  MOVE CUNT,D3
  73.  MOVE.B 33(A2),D4
  74. SSU SUBQ.W #1,D3
  75.  BPL.S PART1
  76.  
  77. COP
  78.  MOVE.L #1,PNT0
  79.  MOVE.L #1,PNT2
  80.  MOVE.L #1,PNT3
  81.  MOVE.L #1,PNT4
  82.  MOVE.L #1,PNT5
  83.  MOVE.L #$9000000,SL
  84.  
  85.  ADD.L #36,a2
  86.  CMP.L #CHAN0,A2
  87.  BNE.S LLA
  88.  LEA DOTH,A2
  89. LLA
  90.  MOVE 34(A2),D3
  91.  MOVE.B 33(A2),D4
  92. PART1
  93.  CLR.B D2
  94.  BTST #1,D4
  95.  BEQ.S W1
  96.  MOVE.L (A2),A1
  97.  MOVE.L 4(A2),A0
  98.  BSR CHAN0
  99.  
  100. W1 BTST #2,D4
  101.  BEQ.S W2
  102.  MOVE.L 8(A2),A1
  103.  MOVE.L 12(A2),A0
  104.  BSR CHAN0
  105. W2 MOVEQ.B #1,D2
  106.  BTST #3,D4
  107.  BEQ.S W3
  108.  MOVE.L 16(A2),A1
  109.  MOVE.L 20(A2),A0
  110.  BSR CHAN0
  111. W3 BTST #4,D4
  112.  BEQ.S W4
  113.  MOVE.L 24(A2),A1
  114.  MOVE.L 28(A2),A0
  115.  BSR CHAN0
  116. W4 MOVE.L A2,UPTO
  117.  MOVE D3,CUNT
  118. ;--END OF VBI
  119. ;--------EXIT
  120.  
  121.  
  122.  movem.l (sp)+,d0-d3/a0-a6 
  123. killer rts
  124.  
  125.  
  126. flo dc.b 0,0
  127. SV DC.L 0
  128.  
  129.  DC.B " (C) G.WHEATON. 60 NEVIS GROVE. BOLTON. UK. "
  130.  
  131.  EVEN
  132. UPTO DC.L EE-36
  133. CUNT DC.W 0
  134.  EVEN
  135. ;\\RUNNING ORDER SEQUENCE
  136.  
  137. ee
  138. doth
  139.  DC.L PNT5,b1 null
  140.  DC.L PNT0,bk
  141.  DC.L PNT2,B1
  142.  DC.L PNT3,DRM
  143.  DC.B 2,%00001110
  144.  DC.W -1+4*64
  145.  
  146.  DC.L PNT5,bb2
  147.  DC.L PNT0,bbk
  148.  DC.L PNT2,Bb2
  149.  DC.L PNT3,DRM
  150.  DC.B 2,%00001110
  151.  DC.W -1+2*64
  152.  
  153.  DC.L PNT5,b1 null
  154.  DC.L PNT0,bk
  155.  DC.L PNT2,B1
  156.  DC.L PNT3,DRM
  157.  DC.B 2,%00001110
  158.  DC.W 63
  159.  
  160.  
  161.  DC.L PNT5,t1
  162.  DC.L PNT0,bk
  163.  DC.L PNT2,B1
  164.  DC.L PNT3,DRM
  165.  DC.B 2,%00001110
  166.  DC.W -1+4*64
  167.  
  168.  DC.L PNT5,t2
  169.  DC.L PNT0,b2
  170.  DC.L PNT2,Bk1
  171.  DC.L PNT3,DRM
  172.  DC.B 2,%00001110
  173.  DC.W -1+4*64
  174.  
  175.  
  176.  DC.L PNT5,t1
  177.  DC.L PNT0,BK
  178.  DC.L PNT2,B1
  179.  DC.L PNT3,DRM
  180.  DC.B 2,%00011110
  181.  DC.W -1+4*64
  182.  
  183.  DC.L PNT5,t2
  184.  DC.L PNT0,BK1
  185.  DC.L PNT2,B2
  186.  DC.L PNT3,DRM
  187.  DC.B 2,%00011110
  188.  DC.W -1+4*64
  189.  
  190.  DC.L PNT5,t1
  191.  DC.L PNT0,BK
  192.  DC.L PNT2,B1
  193.  DC.L PNT3,DRM
  194.  DC.B 2,%00011110
  195.  DC.W -1+4*64
  196.  
  197.  DC.L PNT5,t2
  198.  DC.L PNT0,BK1
  199.  DC.L PNT2,B2
  200.  DC.L PNT3,DRM
  201.  DC.B 2,%00011110
  202.  DC.W -1+4*64
  203.  
  204.  
  205.  
  206.  
  207. CHAN0
  208. *******************
  209.  MOVE (A1),D0
  210.  ADD D0,A0
  211.  MOVE.L (A0),D1  ;GET NOTE 0 & DURATION
  212.  MOVE.B 13(A1),D5
  213.  EXT.W D5
  214.  SWAP D1
  215.  ADD D5,D1
  216.  SWAP D1
  217.  CMP #$FFFF,D1
  218.  BNE CON2
  219.  CLR (A1)        ;RESET TO START
  220.  SUB D0,A0
  221.  MOVE.L (A0),D1
  222. CON2
  223.  SUBQ.B #1,3(A1)    ;NP0
  224.  BNE STILLON
  225.  MOVE.L D1,6(A1) ;TMP0  \D1.W IS DURATION
  226.  MOVE.L D1,20(A1);TEMP  HOLD NOTE
  227.  MOVE.B 26(A1),4(A1)   ;VOL0
  228.  MOVE D1,2(A1)   ;NP0  \SET NEW DURATION
  229.  ADDQ.W #4,(A1)        ; & INC POINTER
  230. STILLON
  231. ;\\VOLUME
  232. RFF
  233. ;\\\\\\\\\EFFECTS\\\\\\\\\\
  234. NV0 
  235.  MOVE.B 2(A1),D0
  236.  CMP.B #4,D0
  237.  BNE DOIT
  238.  ADDQ.B #1,4(A1)
  239.  RTS
  240. DOIT 
  241.  
  242. DZZ
  243.  MOVE.B #7,SL
  244.  MOVE.B #%11111000,SD
  245.  BRA FCC
  246. EFCT
  247.  
  248.  DC.L FINK,VIB,WARB,DRUM,slip,WB1,WRP,SLW
  249.  DC.L SLR,HOLD,TWERP,SLR1,inup,HOLDLOW,Half
  250.  dc.l holl,coll,foll,aoll,eoll
  251.  REPT 11
  252.  DC.L FINK
  253.  ENDR
  254.  
  255. FCC LEA EFCT,A6
  256.  AND #31,D0 
  257.  ASL #2,D0
  258.  MOVE.L (A6,D0),A0
  259.  JSR (A0)
  260.  
  261. MAZ ADDQ.B #1,4(A1)          ;VOL0
  262.  MOVE.B 11(A1),SL
  263.  MOVE.B 21(A1),SD   ;TMP0+1
  264.  MOVE.B 12(A1),SL
  265.  MOVE.B 20(A1),SD   ;TMP0
  266.  CLR D0
  267.  MOVE.B 4(A1),D0
  268.  MOVE.B 10(A1),SL
  269.  MOVE.B 28(A1,D0),D2    ;VOL0
  270.  MOVE.B D2,SD
  271.  
  272. fink 
  273.   rts
  274.  
  275. ;-------EFFECTS ROUTINES--------
  276. ;1-256---DELAYED--VIBRATO-------
  277. VV EOR.B #1,MC
  278.  BEQ.S SDC
  279. VIB CMP.B #12,4(A1)
  280.  BLT SDC
  281.  
  282. WWQ 
  283.  
  284.  SUB.B #1,24(A1)
  285.  BNE SDC
  286.  MOVE.B 25(A1),24(A1)
  287.  MOVE 16(A1),D1
  288.  ADD D1,18(A1)
  289.  MOVE 14(A1),D1
  290.  CMP 18(A1),D1
  291.  BLT.S RIST
  292. KJ NEG D1
  293.  CMP 18(A1),D1
  294.  BGT.S RIST
  295. SAZ MOVE 6(A1),D1
  296.  ADD 18(A1),D1
  297.  MOVE D1,20(A1)
  298. SDC RTS
  299. RIST NEG 16(A1)
  300.  BRA.S SAZ
  301.  
  302. ;2-512------WARB DW-----------
  303. XX DC.B 0,0
  304.  
  305. WARB addq.b #5,4(A1)
  306. SAX 
  307.  Lsr 20(A1)
  308.  ;Lsr 20(A1)
  309.  CMP #30,20(A1)
  310.  BGT.S PLOP
  311.  MOVE 6(A1),20(A1)
  312. PLOP RTS
  313.  
  314.  
  315. ;3--768--------DRUM-----------
  316. DRUM 
  317.  eor.b #1,lil
  318.  bne.s junk
  319.  SUB.B #23,21(A1)
  320.  MOVE.B #7,SL
  321.  MOVE.B #%11011000,SD
  322.  MOVE.B #6,SL
  323.  MOVE.B 21(A1),SD
  324.  MOVE.B #5,SL
  325.  MOVE.B 32(A2),SD
  326.  MOVE.B #4,SL
  327.  MOVE.B 19(A1),D0
  328.  ASL.B #5,D0
  329.  MOVE.B D0,SD
  330. JUNK RTS
  331.  
  332.  
  333. lil dc.b 0,0
  334.  
  335. slip 
  336.  
  337.  
  338. WB1
  339.  
  340. ;6--1536-----WARB UP---------
  341. WRP 
  342. SDX
  343. PLAP
  344.  
  345.  
  346. ;7--1792---SLIDE-UP--WARBLE
  347. SLW 
  348.  
  349. ;--2048---SLIDE UP CONST VOL 
  350. SLR 
  351.  
  352. YIN DC.B 0,0
  353. ;9--2304-------HOLD-------------
  354. HOLD
  355.  move.b #15,4(a1)
  356.  rts
  357. ;------10 2560
  358. TWERP 
  359.  
  360.  
  361. ;11-------2816 SLIDE UP WITH ADSR
  362. SLR1
  363.  
  364.  
  365.  
  366. tp dc.b 0,0
  367. ;12-------3072  
  368. inup
  369.  move.b #8,4(a1)
  370.  bra WWQ
  371.  
  372.  
  373. ;13-------3328--HOLD VOL LOW
  374. HOLDLOW
  375. DOPL 
  376.  
  377.  
  378. ;
  379. ;14--------dw A
  380. half
  381.  
  382. ;15--------DW G
  383. holl
  384.  ADDQ.B #1,RONK
  385.  move.b RONK,d1
  386.  and #3,d1
  387.  asl #1,d1
  388.  move dq(pc,d1),20(a1)
  389.  rts
  390.  
  391. dq dc.w 162,108,81,64
  392.  
  393. ;16--------DW C
  394. Coll
  395. wop ADDQ.B #1,RONK+1
  396.  move.b RONK+1,d1
  397.  and #3,d1
  398.  asl #1,d1
  399.  move Eq(pc,d1),20(a1)
  400.  rts
  401. Eq dc.w 60,81,30,40
  402.  
  403. ;17--------DW F
  404. Foll
  405. aoll
  406. eoll
  407.  rts
  408.  
  409. RONK DC.B 0,0
  410.  
  411.  
  412.  
  413.  
  414.  
  415. ;\\\\\\\\\\\\\\DATAS\\\\\\\\\\\\\\\
  416. ;\\NOTE 1ST WORD. DURATION 2ND WORD
  417. ;\\\LEAD
  418. PNT0 DC.W 0
  419. NP0 DC.W 1
  420.  DC.W 0
  421.  DC.L 0
  422.  DC.B 9,2,3
  423.  DC.B 1      ;ADD TO NOTE
  424.  DC.W 11      ;VIB LIMIT
  425.  DC.W 7      ;16(A1)  ADD
  426.  DC.W 0      ;VIB 18(A1)
  427.  DC.L 0      ;TMP NOTE 20(A1)
  428.  DC.B 1,1    ;VIB RATE 24(A1)
  429.  DC.B 0,0    ;INITIAL VOL
  430. ;ADSR  28(A1)
  431.  
  432.  DC.B 9,9,9,8,8,7,7,6,6,5,5
  433.  dcb.b    50,4
  434.  
  435.  
  436.  
  437.  EVEN
  438.  
  439. ;\\\BASS
  440. PNT2 DC.W 0
  441.  DC.W 1          ;2(A1) DURATION
  442.  DC.B 0,0        ;4(A1)
  443.  DC.L 0          ;6
  444.  DC.B 10,4,5     ;10(A1) VOL REG
  445.  DC.B 0          ;ADD TO NOTE 13(A1)
  446.  DC.W 5          ;VIB LIMIT
  447.  DC.W 2          ;VIBRATO ADD 16(A1)
  448.  DC.W 2          ;VIB 18(A1)
  449.  DC.L 0          ;TMP NOTE 20(A1)
  450.  DC.B 1,1        ;VIB RATE
  451.  DC.B 0,0        ;INITIAL VOL 26(A1)
  452. ;\ADSR  28(A1)
  453. ADSR
  454.  
  455.  DC.B 3,11,10,9
  456.  dcb.b    250,8
  457.  
  458.  
  459.  
  460.  
  461.  EVEN
  462. PNT3 DC.W 0
  463. NP3 DC.W 1      ;2(A1) DURATION
  464.  DC.B 0,0        ;4(A1)
  465.  DC.L 0          ;6
  466.  DC.B 10,6,11    ;10(A1) VOL REG
  467.  DC.B -1         ;ADD  13(A1)
  468.  DC.W 4         ;VIB LIMIT
  469.  DC.W 1          ;VIBRATO ADD 16(A1)
  470.  DC.W 0          ;VIB 18(A1)
  471.  DC.L 0          ;TMP NOTE 20(A1)
  472.  DC.B 1,1        ;VIB RATE
  473.  DC.B 0,0        ;INITIAL VOL 26(A1)
  474. ;\ADSR  28(A1)
  475.  DC.B 14,13,12,10
  476.  DC.B 9,8,7,6,5,4,3,2,1
  477.  
  478.  
  479.  
  480.  EVEN
  481. PNT4 DC.W 0
  482. NP4 DC.W 1      ;2(A1) DURATION
  483.  DC.B 0,0        ;4(A1)
  484.  DC.L 0
  485.  DC.B 8,0,1      ;10(A1) VOL REG
  486.  DC.B 0          ;ADD 13(A1)
  487.  DC.W 3          ;VIB LIMIT
  488.  DC.W 2          ;VIBRATO ADD 16(A1)
  489.  DC.W 0          ;VIB 18(A1)
  490.  DC.L 0          ;TMP NOTE 20(A1)
  491.  DC.B 1,1        ;VIB RATE
  492.  DC.B 3,0        ;INITIAL VOL 26(A1)
  493. ;\ADSR  28(A1)
  494.  
  495.  DC.B 15,15,14,14,13,13,12,12
  496.  REPT 22
  497.  DC.B 11
  498.  ENDR
  499.  
  500.  REPT 22
  501.  DC.B 9
  502.  ENDR
  503.  
  504.  REPT 22
  505.  DC.B 8
  506.  ENDR
  507.  
  508.  even
  509.  
  510. PNT5 DC.W 0
  511.  DC.W 1       ;EFFECT & DURATION 2(A1)
  512.  DC.B 0,0
  513.  DC.L 0
  514.  DC.B 8,0,1
  515.  DC.B 2       ;ADD  13(A1)
  516.  DC.W 7       ;VIB LIMIT
  517.  DC.W 4       ;VIB ADD 16(A1)
  518.  DC.W 0       ;VIB 18(A1)
  519.  DC.L 0       ;TEMP NOTE 20(A1)
  520.  DC.B 1,1     ;VIB RATE  24)A1)
  521.  DC.B 0,0     ;INITIAL VOL
  522. ;ADSR  28(A1)
  523.  
  524.  DC.B 12,12,11,11,10,10,10
  525.  DCB.B 8,8
  526.  DCB.B 8,7
  527.  DCB.B 8,6
  528.  DCB.B 8,5
  529.  DCB.B 8,4
  530.  DCB.B 8,3
  531.  DCB.B 8,2
  532.  DCB.B 8,1
  533.  DCB.B 8,2
  534.  DCB.B 8,3
  535.  DCB.B 8,4
  536.  DCB.B 8,3
  537.  DCB.B 8,2
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  EVEN
  544. TE2 DC.W 2,3
  545.  
  546. MAX DC.B 71,32,87,72,69,65,84,79,78
  547. DRI DC.B 251,0
  548. MIN DC.B 0,0
  549. MC DC.B 0,0
  550.  EVEN
  551.  
  552. ;-----------MUSIC DATA
  553. V=256
  554. drm
  555.  dc.w 0,24+1024
  556.  dc.w 1,1+768
  557.  dc.w 0,7+1024
  558.  
  559.  dc.w 6,4+768
  560.  dc.w 0,12+1024
  561.  dc.w 2,6+768
  562.  dc.w 0,10+1024
  563.  
  564.  dc.w 0,32+1024
  565.  dc.w 6,4+768
  566.  dc.w 0,12+1024
  567.  dc.w 0,16+1024
  568.  
  569.  dc.w 0,32+1024
  570.  dc.w 6,4+768
  571.  dc.w 0,12+1024
  572.  dc.w 0,16+1024
  573.  
  574.  dc.w 0,32+1024
  575.  dc.w 6,4+768
  576.  dc.w 0,12+1024
  577.  dc.w 0,16+1024
  578.  
  579.  DC.W $FFFF,$FFFF
  580.  
  581.  
  582.  
  583. NULL DC.W 2,128+2304
  584.  DC.W $FFFF,$FFFF
  585.  
  586. q=2
  587. t1 
  588.  DC.W 0,40+2304
  589.  dc.w 144*q,8
  590.  dc.w 128*q,8
  591.  dc.w 121*q,8
  592.  dc.w 96*q,40+V
  593.  
  594.  dc.w 144*q,8
  595.  dc.w 128*q,8
  596.  dc.w 121*q,8
  597.  dc.w 96*q,16+V
  598.  
  599.  dc.w 108*q,8
  600.  dc.w 121*q,8
  601.  dc.w 108*q,16
  602.  dc.w 96*q,8
  603.  dc.w 144*q,24+48+V
  604.  DC.W 0,64+2304
  605.  
  606.  DC.W $FFFF,$FFFF
  607.  
  608. t2 
  609.  DC.W 0,40+2304
  610.  dc.w 144*q,8
  611.  dc.w 128*q,8
  612.  dc.w 121*q,8
  613.  dc.w 108*q,40+V
  614.  
  615.  dc.w 144*q,8
  616.  dc.w 128*q,8
  617.  dc.w 121*q,8
  618.  dc.w 108*q,16+V
  619.  
  620.  dc.w 121*q,8
  621.  dc.w 128*q,8
  622.  dc.w 121*q,16
  623.  dc.w 108*q,8
  624.  dc.w 144*q,24+48+V
  625.  DC.W $FFFF,$FFFF
  626.  
  627.  
  628.  
  629. B1
  630.  DC.W 162*8,8
  631.  DC.W 144*8,8
  632.  DC.W 144*8,8
  633.  DC.W 144*8,8
  634.  DC.W 144*8,8
  635.  DC.W 144*8,8
  636.  DC.W 144*8,16
  637. ; DC.W 144*8,8
  638.  DC.W $FFFF,$FFFF
  639.  
  640. B2
  641.  
  642.  DC.W 162*8,8
  643.  DC.W 144*8,8
  644.  DC.W 144*8,8
  645.  DC.W 144*8,8
  646.  DC.W 144*8,8
  647.  DC.W 144*8,8
  648.  DC.W 144*8,8
  649.  DC.W 144*8,8
  650.  
  651. bb2
  652.  DC.W 121*8,8
  653.  DC.W 108*8,8
  654.  DC.W 108*8,8
  655.  DC.W 108*8,8
  656.  DC.W 108*8,8
  657.  DC.W 108*8,8
  658.  DC.W 108*8,8
  659.  DC.W 108*8,8
  660.  
  661.  DC.W 121*8,8
  662.  DC.W 108*8,8
  663.  DC.W 108*8,8
  664.  DC.W 108*8,8
  665.  DC.W 108*8,8
  666.  DC.W 108*8,8
  667.  DC.W 108*8,8
  668.  DC.W 108*8,8
  669.  DC.W $FFFF,$FFFF
  670.  
  671. I=1
  672. bk
  673.  DC.W 144*I,8
  674.  DC.W 121*I,8
  675.  DC.W 96*I,8
  676.  DC.W 121*I,8
  677.  DC.W 108*I,8
  678.  DC.W 121*I,8
  679.  DC.W 144*I,8
  680.  DC.W 121*I,8
  681.  
  682.  DC.W 144*I,8
  683.  DC.W 121*I,8
  684.  DC.W 96*I,8
  685.  DC.W 121*I,8
  686.  DC.W 108*I,8
  687.  DC.W 121*I,8
  688.  DC.W 144*I,8
  689.  DC.W 121*I,8
  690.  
  691.  DC.W 144*I,8
  692.  DC.W 121*I,8
  693.  DC.W 96*I,8
  694.  DC.W 121*I,8
  695.  DC.W 108*I,8
  696.  DC.W 121*I,8
  697.  DC.W 144*I,8
  698.  DC.W 121*I,8
  699.  
  700.  DC.W $FFFF,$FFFF
  701.  
  702. bk1
  703.  DC.W 144*I,8
  704.  DC.W 121*I,8
  705.  DC.W 96*I,8
  706.  DC.W 121*I,8
  707.  DC.W 108*I,8
  708.  DC.W 121*I,8
  709.  DC.W 144*I,8
  710.  DC.W 121*I,8
  711.  
  712. bbk
  713.  DC.W 144*I,8
  714.  DC.W 108*I,8
  715.  DC.W 121*I,8
  716.  DC.W 144*I,8
  717.  DC.W 121*I,8
  718.  DC.W 144*I,8
  719.  DC.W 162*I,8
  720.  DC.W 144*I,8
  721.  
  722.  DC.W 144*I,8
  723.  DC.W 108*I,8
  724.  DC.W 121*I,8
  725.  DC.W 144*I,8
  726.  DC.W 121*I,8
  727.  DC.W 144*I,8
  728.  DC.W 162*I,8
  729.  DC.W 144*I,8
  730.  
  731.  DC.W $FFFF,$FFFF
  732.  
  733.