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

  1.  CLR.L -(SP)       
  2.  MOVE.W #$20,-(SP) ; Super.
  3.  TRAP #1
  4.  ADDQ.L #6,SP
  5.  MOVE.L D0,SUPER   ; Save old status.
  6.  
  7.  
  8. F EQU 2
  9. P EQU 1792
  10. R equ 2
  11. J EQU 8
  12. I EQU 4
  13. H EQU 16
  14. W EQU 1
  15. X EQU 2
  16. T EQU 4
  17. Q EQU 8
  18. Z EQU 2
  19. U EQU 8
  20. O EQU 2
  21.  
  22. SL EQU $FF8800
  23. SD EQU $FF8802
  24.  move.b #7,sl
  25.  move.b #%11111000,sd
  26.  
  27.  
  28. VBI movem.l d0-d5/a0-a2,-(sp)
  29. ;\\\\\\\\\\\\\
  30.  MOVE.L UPTO,A2
  31.  MOVE CUNT,D3
  32.  MOVE.B 33(A2),D4
  33. SSU SUBQ.W #1,D3
  34.  BPL.S PART1
  35.  MOVE.L #1,PNT0
  36.  MOVE.L #1,PNT1
  37.  MOVE.L #1,PNT2
  38.  MOVE.L #1,PNT3
  39.  MOVE.L #1,PNT4
  40.  ADD.L #36,a2
  41.  CMP.L #CHAN0,A2
  42.  BNE.S LLA
  43.  LEA DOTH,A2
  44. LLA
  45.  MOVE 34(A2),D3
  46.  MOVE.B 33(A2),D4
  47. PART1
  48.  CLR.B D2
  49.  BTST #1,D4
  50.  BEQ.S W1
  51.  MOVE.L (A2),A1
  52.  MOVE.L 4(A2),A0
  53.  BSR CHAN0
  54. W1 BTST #2,D4
  55.  BEQ.S W2
  56.  MOVE.L 8(A2),A1
  57.  MOVE.L 12(A2),A0
  58.  BSR CHAN0
  59. W2 MOVE.B #1,D2
  60.  BTST #3,D4
  61.  BEQ.S W3
  62.  MOVE.L 16(A2),A1
  63.  MOVE.L 20(A2),A0
  64.  BSR CHAN0
  65. W3 BTST #4,D4
  66.  BEQ.S W4
  67.  MOVE.L 24(A2),A1
  68.  MOVE.L 28(A2),A0
  69.  BSR CHAN0
  70. W4 MOVE.L A2,UPTO
  71.  MOVE D3,CUNT
  72. ;--END OF VBI
  73. ;--------EXIT
  74.  movem.l (sp)+,d0-d5/a0-a2
  75.  ;killer jmp $ffff
  76.  
  77.  move.b $469,d0
  78. dd cmp.b $469,d0
  79.  beq.s dd
  80.  cmp.b #97,$fffc02
  81.  bne vbi
  82.  
  83.  
  84.     lea    $ff8800,a0    get sound chip 
  85.     move.b    #7,(a0)
  86.     move.b    #%11111111,2(a0) cut out lingering noise
  87.     move.l #$8000000,$ff8800 
  88.     move.l #$9000000,$ff8800 
  89.     move.l #$a000000,$ff8800 
  90.  
  91.  MOVE.L SUPER,-(SP)
  92.  MOVE.W #$20,-(SP)
  93.  TRAP #1
  94.  ADDQ.L #6,SP
  95.  
  96.  CLR -(SP)
  97.  TRAP #1
  98.  
  99. SUPER DC.L 0
  100.  
  101.  
  102. UPTO DC.L EE-36
  103. CUNT DC.W 0
  104.  EVEN
  105. ;\\RUNNING ORDER SEQUENCE
  106. EE
  107.  
  108. DOTH
  109.  
  110.  DC.L PNT4,test
  111.  DC.L PNT1,b2
  112.  DC.L PNT2,b1 
  113.  DC.L PNT3,DRMM
  114.  DC.B 1,%0001110
  115.  DC.W 147
  116.  
  117.  DC.L PNT4,null
  118.  DC.L PNT1,null
  119.  DC.L PNT2,null 
  120.  DC.L PNT3,null
  121.  DC.B 1,%0001110
  122.  DC.W 255
  123.  
  124.  
  125.  
  126.  
  127. CHAN0
  128. ;\\\\\\\\\\\\\\\\\\\\\\
  129.  MOVE (A1),D0
  130.  ADD D0,A0
  131.  MOVE.L (A0),D1  ;GET NOTE 0 & DURATION
  132.  MOVE.B 13(A1),D5
  133.  EXT.W D5
  134.  SWAP D1
  135.  ADD D5,D1
  136.  SWAP D1
  137.  CMP #$FFFF,D1
  138.  BNE CON2
  139.  CLR (A1)        ;RESET TO START
  140.  SUB D0,A0
  141.  MOVE.L (A0),D1
  142. CON2
  143.  SUBQ.B #1,3(A1)    ;NP0
  144.  BNE STILLON
  145.  MOVE.L D1,6(A1) ;TMP0 \D1.W IS DURATION
  146.  MOVE.L D1,20(A1);TEMP HOLD NOTE
  147.  MOVE.B 26(A1),4(A1)  ;VOL0
  148.  MOVE D1,2(A1)   ;NP0  \SET NEW DURATION
  149.  ADDQ.W #4,(A1)     ;& INC POINTER
  150. STILLON
  151. ;\\VOLUME
  152. RFF
  153. ;\\\\\\\\\EFFECTS\\\\\\\\\\
  154. NV0 MOVE.B 2(A1),D0
  155.  CMP.B #4,D0
  156.  BNE DOIT
  157.  ADDQ.B #1,4(A1)
  158.  RTS
  159. DOIT TST.B D2
  160.  BEQ FCC
  161.  CMP.B #3,D0
  162.  BNE DZZ
  163.  BSR DRUM
  164.  BRA.S FCC
  165. DZZ
  166.  MOVE.B #7,SL
  167.  MOVE.B #%11111000,SD
  168.  BRA.S FCC
  169. EFCT
  170.  DC.L FINK,VIB,WARB,DRUM,HOLD,WB1
  171.  DC.L wrp,slw,SLR,HOLD,VIB
  172. FCC
  173.  AND.L #15,D0
  174.  ASL #2,D0
  175.  MOVE.L EFCT(PC,D0),A0
  176.  JSR (A0)
  177. MAZ CMP #2,20(A1)
  178.  BNE.S DIP
  179.  MOVE.B #35,4(A1)
  180. DIP
  181.  ADDQ.B #1,4(A1)          ;VOL0
  182.  MOVE.B 11(A1),SL
  183.  MOVE.B 21(A1),SD   ;TMP0+1
  184.  MOVE.B 12(A1),SL
  185.  MOVE.B 20(A1),SD   ;TMP0
  186.  CLR D0
  187.  MOVE.B 4(A1),D0
  188.  MOVE.B 10(A1),SL
  189.  MOVE.B 28(A1,D0),SD    ;VOL0
  190. FINK RTS
  191.  
  192.  DC.B " (C) G.WHEATON.  45 GOLDRILL AVE BOLTON. LANCS, U.K. "
  193. ;-------EFFECTS ROUTINES--------
  194. ;1-256---DELAYED--VIBRATO-------
  195. VV EOR.B #1,MC
  196.  BEQ.S SDC
  197. VIB CMP.B #8,4(A1)
  198.  BLT SDC
  199.  SUB.B #1,24(A1)
  200.  BNE SDC
  201.  MOVE.B 25(A1),24(A1)
  202.  MOVE 16(A1),D1
  203.  ADD D1,18(A1)
  204.  MOVE 14(A1),D1
  205.  CMP 18(A1),D1
  206.  BLT.S RIST
  207. KJ NEG D1
  208.  CMP 18(A1),D1
  209.  BGT.S RIST
  210. SAZ MOVE 6(A1),D1
  211.  ADD 18(A1),D1
  212.  MOVE D1,20(A1)
  213. SDC RTS
  214. RIST NEG 16(A1)
  215.  BRA.S SAZ
  216. ;2-512------WARB DW-----------
  217. WARB
  218.  EOR.B #1,MIN
  219.  BEQ SAX
  220.  SUBQ.B #1,4(A1)
  221. SAX ASL 20(A1)
  222.  CMP #560,20(A1)
  223.  BLT.S PLOP
  224.  MOVE 6(A1),20(A1)
  225. PLOP RTS
  226.  
  227. ;3--768--------DRUM-----------
  228. DRUM SUBQ.B #4,19(A1)
  229.  MOVE.B #7,SL
  230.  MOVE.B #%11011000,SD
  231.  MOVE.B #6,SL
  232.  MOVE.B 19(A1),SD
  233.  MOVE.B #5,SL
  234.  MOVE.B 32(A2),SD
  235.  MOVE.B #4,SL
  236.  MOVE.B 19(A1),D0
  237.  ASL.B #5,D0
  238.  MOVE.B D0,SD
  239.  RTS
  240. ;4 DRUM
  241. ;5--1280--WARB CONSTANT VOLUME
  242. WB1 MOVE.B #5,4(A1)
  243.  BRA.S SAX
  244.  
  245. ;6--1536-----WARB UP---------
  246. WRP 
  247. SDX LSR 20(A1)
  248.  CMP #27,20(A1)
  249.  BGT PLAP
  250.  MOVE 6(A1),20(A1)
  251. PLAP BRA VV RTS 
  252.  
  253.  
  254. ;7--1792---SLIDE-UP--WARBLE
  255. SLW CMP.B #7,4(A1)
  256.  BLT.S WRP
  257.  SUBQ.W #2,6(A1)
  258.  BRA.S WRP
  259.  
  260. ;8--2048---SLIDE UP VIB
  261. SLR CMP.B #7,4(A1)
  262.  BLT.S PES
  263.  SUB.W #116,20(A1)
  264. PES RTS
  265.  
  266. ;9--2304-------HOLD----------
  267. HOLD 
  268.  move #30,4(A1)
  269.  RTS
  270.  
  271.  
  272. MC DC.B 1,1
  273. MIN DC.B 1,0
  274. ;\\\\\\\\\\\\\\DATAS\\\\\\\\\\\\\\\
  275. ;\\NOTE 1ST WORD. DURATION 2ND WORD
  276. ;\\\LEAD
  277. PNT0 DC.W 0
  278. NP0 DC.W 1
  279.  DC.W 0
  280.  DC.L 0
  281.  DC.B 10,4,5
  282.  DC.B 0      ;ADD TO NOTE
  283.  DC.W 6      ;VIB LIMIT
  284.  DC.W 3      ;16(A1)  ADD
  285.  DC.W 0      ;VIB 18(A1)
  286.  DC.L 0      ;TMP NOTE 20(A1)
  287.  DC.B 1,1    ;VIB RATE 24(A1)
  288.  DC.B 0,0    ;INITIAL VOL
  289. ;ADSR  28(A1)
  290.  DC.B 15,15,14,13,12,11,9,8,9
  291.  DC.B 10,12,10,8,10,12,10,8,10,10
  292.  DC.B 11,10,10,9,8,7,5,5,6,7,7
  293.  DC.B 6,5,4,3,2,1 
  294.  REPT 70
  295.  DS.B 1
  296.  ENDR
  297.  
  298.  EVEN
  299. ;\\\MIDDLE
  300. PNT1 DC.W 0
  301.  DC.W 1       ;EFFECT & DURATION 2(A1)
  302.  DC.B 0,0
  303.  DC.L 0
  304.  DC.B 9,2,3
  305.  DC.B 1       ;ADD  13(A1)
  306.  DC.W 6       ;VIB LIMIT
  307.  DC.W 2       ;VIB ADD 16(A1)
  308.  DC.W 0       ;VIB 18(A1)
  309.  DC.L 0       ;TEMP NOTE 20(A1)
  310.  DC.B 1,1     ;VIB RATE  24)A1)
  311.  DC.B 0,0     ;INITIAL VOL
  312. ;ADSR  28(A1)
  313.  DC.B 15,15,9,13,12,15,14,13,12,12
  314.  DC.B 11,11,11,11,10,10,10,10,10,10
  315.  DC.B 12,12,11,11,10,9,8,7,9,7,10,7,11,10,10,9,10
  316.  DC.B 9,8,7,6,5,4,3,2,1
  317.  REPT 90
  318.  DC.B 1
  319.  ENDR
  320.  
  321.  EVEN
  322. ;\\\BASS
  323. PNT2 DC.W 0
  324.  DC.W 1          ;2(A1) DURATION
  325.  DC.B 0,0        ;4(A1)
  326.  DC.L 0          ;6
  327.  DC.B 10,4,5     ;10(A1) VOL REG
  328.  DC.B 2          ;ADD TO NOTE 13(A1)
  329.  DC.W 6          ;VIB LIMIT
  330.  DC.W 2          ;VIBRATO ADD 16(A1)
  331. CC DC.W 2       ;VIB 18(A1)
  332.  DC.L 0          ;TMP NOTE 20(A1)
  333.  DC.B 2,2        ;VIB RATE
  334.  DC.B 0,0        ;INITIAL VOL 26(A1)
  335. ;\ADSR  28(A1)
  336. ADSR
  337.  DC.B 15,15,14,14,14,13,13,13,13,13
  338.  DC.B 13,13,12,12,11,11,10,10,10,9
  339.  DC.B 8,7,6,5,4,3,4,2,1
  340.  
  341.  REPT 80
  342.  DC.B 1
  343.  ENDR
  344.  
  345.  EVEN
  346. PNT3 DC.W 0
  347. NP3 DC.W 1      ;2(A1) DURATION
  348.  DC.B 0,0        ;4(A1)
  349.  DC.L 0          ;6
  350.  DC.B 10,6,11    ;10(A1) VOL REG
  351.  DC.B -1         ;ADD  13(A1)
  352.  DC.W 10         ;VIB LIMIT
  353.  DC.W 4          ;VIBRATO ADD 16(A1)
  354.  DC.W 0          ;VIB 18(A1)
  355.  DC.L 0          ;TMP NOTE 20(A1)
  356.  DC.B 1,1        ;VIB RATE
  357.  DC.B 0,0        ;INITIAL VOL 26(A1)
  358. ;\ADSR  28(A1)
  359.  DC.B 15,15,15,14,13,12
  360.  DC.B 11,10,9,8,7,5,3,3
  361.  DC.B 4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,15,15,15
  362.  EVEN
  363.  
  364.  
  365. PNT4 DC.W 0
  366. NP4 DC.W 1      ;2(A1) DURATION
  367.  DC.B 0,0        ;4(A1)
  368.  DC.L 0
  369.  DC.B 8,0,1      ;10(A1) VOL REG
  370.  DC.B 0          ;ADD 13(A1)
  371.  DC.W 115          ;VIB LIMIT
  372.  DC.W 72          ;VIBRATO ADD 16(A1)
  373.  DC.W 0          ;VIB 18(A1)
  374.  DC.L 0          ;TMP NOTE 20(A1)
  375.  DC.B 1,1        ;VIB RATE
  376.  DC.B 0,0        ;INITIAL VOL 26(A1)
  377. ;\ADSR  28(A1)
  378.  DC.B 15,15,15,14,13,12,12,13,14,15,15,15,14,13,12,12
  379.  DC.B 13,14,15,15,15,14,13,12,12,13,13,13,13,13,13,13
  380.  DC.B 12,11,11,10,10,11,11,12,12,11,11,10,10,9,9,10
  381.  DC.B 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
  382.  DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
  383.  DC.B 8,8,8,9,9,9,10,10,10,10,10
  384.  DC.B 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11
  385.  DC.B 12,13,14,15,14,13,12,11,10
  386.  DC.B 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
  387.  DS.B 20
  388.  EVEN
  389.  
  390. ;-----------MUSIC DATA
  391.  
  392. c=256
  393. b1 
  394.  dc.w 108*8,16+c
  395.  dc.w 144*8,6+c
  396.  dc.w 0,4+c
  397.  dc.w 144*8,8+c
  398.  dc.w 182*8,16+c
  399.  dc.w 144*8,16+c
  400.  dc.w 121*8,16+c
  401.  dc.w 30,162
  402.  DC.W $FFFF,$FFFF
  403.  
  404. b2
  405.  dc.w 243*4,10*8+256,60,164
  406.  
  407.  
  408. d=256
  409. test 
  410.  DC.W 108*T,8+d
  411.  DC.W 121*T,8+d
  412.  DC.W 128*T,8+d
  413.  DC.W 144*T,8+d
  414.  DC.W 162*T,8+d
  415.  DC.W 182*T,8+d
  416.  DC.W 193*T,8+d
  417.  DC.W 217*T,8+d
  418.  DC.W 243*T,16+d
  419.  DC.W 30,164
  420.  
  421.  DC.W $FFFF,$FFFF
  422.  
  423.  
  424. DRMM 
  425.  DC.W 2,16+1024,4,8+768,2,8+1024
  426.  DC.W 2,16+1024,16,4+768,2,12+1024
  427.  
  428.  DC.W $FFFF,$FFFF 
  429.  
  430.  
  431. null dc.w 2,255+2304
  432.  DC.W $FFFF,$FFFF 
  433.