home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / dse-src2.dms / in.adf / Source / aintro1(MY!).S < prev    next >
Encoding:
Text File  |  1993-03-09  |  26.5 KB  |  1,300 lines

  1. ùúùúÿ×|Ïÿ×|Ïÿ×|Ïÿ×|Ïÿ×|Ïÿ×|Ïÿ×|Ïÿ×|Ïÿ×|Ï**************************************************************************
  2. **************************************************************************
  3. ***************   INTRO  by  ALE  of  PARALAX SYSTEMS   ******************
  4. ****************             and ENATOR                *******************
  5. ******************   in the year of the lord  1991    ********************
  6. *******************************          *********************************
  7. **************************************************************************
  8. **************************************************************************
  9.  
  10. org $30000
  11. load $30000
  12.  
  13. o:
  14. BRA.L    START_INTRO
  15.  
  16. *********************************************************
  17. **  Amiga FUTURE COMPOSER  »» V1.4 ««  Replay routine  **
  18. *********************************************************
  19.  
  20. ;Doesn't work with V1.0 - V1.3 modules !!
  21.  
  22.  
  23.  
  24.  
  25. END_MUSIC:
  26.     clr.w    onoff
  27.     clr.l    $dff0a6
  28.     clr.l    $dff0b6
  29.     clr.l    $dff0c6
  30.     clr.l    $dff0d6
  31.     move.w    #$000f,$dff096
  32.     bclr    #1,$bfe001
  33. rts
  34.  
  35. INIT_MUSIC:
  36.     move.w    #1,onoff
  37.     bset    #1,$bfe001
  38.     lea    MODULE,a0
  39.     lea    180(a0),a1
  40.     move.l    a1,SEQpoint
  41.     move.l    a0,a1
  42.     add.l    8(a0),a1
  43.     move.l    a1,PATpoint
  44.     move.l    a0,a1
  45.     add.l    16(a0),a1
  46.     move.l    a1,FRQpoint
  47.     move.l    a0,a1
  48.     add.l    24(a0),a1
  49.     move.l    a1,VOLpoint
  50.     move.l    4(a0),d0
  51.     divu    #13,d0
  52.  
  53.     lea 40(a0),a1
  54.     lea SOUNDINFO+4(pc),a2
  55.     moveq #10-1,d1
  56. initloop:
  57.     move.w (a1)+,(a2)+
  58.     move.l (a1)+,(a2)+
  59.     adda.w #10,a2
  60.     dbf d1,initloop
  61.     move.l a0,d1
  62.     add.l 32(a0),d1
  63.     lea SOUNDINFO(pc),a3
  64.     move.l d1,(a3)+
  65.     moveq #9-1,d3
  66.     moveq #0,d2
  67. initloop1:
  68.     move.w (a3),d2
  69.     add.l d2,d1
  70.     add.l d2,d1
  71.     addq.l #2,d1
  72.     adda.w #12,a3
  73.     move.l d1,(a3)+
  74.     dbf d3,initloop1
  75.  
  76.     lea 100(a0),a1
  77.     lea SOUNDINFO+[10*16](pc),a2
  78.     move.l a0,a3
  79.     add.l 36(a0),a3
  80.  
  81.     moveq #80-1,d1
  82.     moveq #0,d2
  83. initloop2:
  84.     move.l a3,(a2)+
  85.     move.b (a1)+,d2
  86.     move.w d2,(a2)+
  87.     clr.w (a2)+
  88.     move.w d2,(a2)+
  89.     addq.w #6,a2
  90.     add.w d2,a3
  91.     add.w d2,a3
  92.     dbf d1,initloop2
  93.  
  94.     move.l SEQpoint(pc),a0
  95.     moveq #0,d2
  96.     move.b 12(a0),d2        ;Get replay speed
  97.     bne.s speedok
  98.     move.b #3,d2            ;Set default speed
  99. speedok:
  100.     move.w d2,respcnt        ;Init repspeed counter
  101.     move.w d2,repspd
  102. INIT2:
  103.     clr.w audtemp
  104.     move.w #$000f,$dff096        ;Disable audio DMA
  105.     move.w #$0780,$dff09a        ;Disable audio IRQ
  106.     moveq #0,d7
  107.     mulu #13,d0
  108.     moveq #4-1,d6            ;Number of soundchannels-1
  109.     lea V1data(pc),a0        ;Point to 1st voice data area
  110.     lea silent(pc),a1
  111.     lea Chandata(pc),a2
  112. initloop3:
  113.     move.l a1,10(a0)
  114.     move.l a1,18(a0)
  115.     clr.w 4(a0)
  116.     move.w #$000d,6(a0)
  117.     clr.w 8(a0)
  118.     clr.l 14(a0)
  119.     move.b #$01,23(a0)
  120.     move.b #$01,24(a0)
  121.     clr.b 25(a0)
  122.     clr.l 26(a0)
  123.     clr.w 30(a0)
  124.     clr.l 38(a0)
  125.     clr.w 42(a0)    
  126.     clr.l 44(a0)
  127.     clr.l 48(a0)
  128.     clr.w 56(a0)
  129.     moveq #$00,d3
  130.     move.w (a2)+,d1
  131.     move.w (a2),d3
  132.     divu #$0003,d3
  133.     moveq #0,d4
  134.     bset d3,d4
  135.     move.w d4,32(a0)
  136.     move.w (a2)+,d3
  137.     andi.l #$00ff,d3
  138.     andi.l #$00ff,d1
  139.     lea $dff0a0,a6
  140.     add.w d1,a6
  141.     move.l #$0000,(a6)
  142.     move.w #$0100,4(a6)
  143.     move.w #$0000,6(a6)
  144.     move.w #$0000,8(a6)
  145.     move.l a6,60(a0)
  146.     move.l SEQpoint(pc),(a0)
  147.     move.l SEQpoint(pc),52(a0)
  148.     add.l d0,52(a0)
  149.     add.l d3,52(a0)
  150.     add.l d7,(a0)
  151.     add.l d3,(a0)
  152.     move.l (a0),a3
  153.     move.b (a3),d1
  154.     andi.l #$00ff,d1
  155.     lsl.w #6,d1
  156.     move.l PATpoint(pc),a4
  157.     adda.w d1,a4
  158.     move.l a4,34(a0)
  159.     move.b 1(a3),44(a0)
  160.     move.b 2(a3),22(a0)
  161.     lea $4a(a0),a0        ;Point to next voice's data area
  162.     dbf d6,initloop3
  163. rts
  164.  
  165.  
  166. PLAY:
  167.     lea audtemp(pc),a5
  168.     tst.w 8(a5)
  169.     bne.s music_on
  170. rts
  171. music_on:
  172.     subq.w #1,4(a5)            ;Decrease replayspeed counter
  173.     bne.s nonewnote
  174.     move.w 6(a5),4(a5)        ;Restore replayspeed counter
  175.     moveq #0,d5    
  176.     moveq #6,d6
  177.     lea V1data(pc),a0        ;Point to voice1 data area
  178.     bsr.L new_note
  179.     lea V2data(pc),a0        ;Point to voice2 data area
  180.     bsr.L new_note
  181.     lea V3data(pc),a0        ;Point to voice3 data area
  182.     bsr.L new_note
  183.     lea V4data(pc),a0        ;Point to voice4 data area
  184.     bsr.L new_note
  185. nonewnote:
  186.     clr.w (a5)
  187.     lea $dff000,a6
  188.     lea V1data(pc),a0
  189.     bsr.L effects
  190.     move.l d0,$a6(a6)
  191.     lea V2data(pc),a0
  192.     bsr.L effects
  193.     move.l d0,$b6(a6)
  194.     lea V3data(pc),a0
  195.     bsr.L effects
  196.     move.l d0,$c6(a6)
  197.     lea V4data(pc),a0
  198.     bsr.L effects
  199.     move.l d0,$d6(a6)
  200.     lea V1data(pc),a0
  201.     move.l 68+[0*74](a0),a1        ;Get samplepointer
  202.     adda.w 64+[0*74](a0),a1        ;add repeat_start
  203.     move.l 68+[1*74](a0),a2
  204.     adda.w 64+[1*74](a0),a2
  205.     move.l 68+[2*74](a0),a3
  206.     adda.w 64+[2*74](a0),a3
  207.     move.l 68+[3*74](a0),a4
  208.     adda.w 64+[3*74](a0),a4
  209.     move.w 66+[0*74](a0),d1        ;Get repeat_length
  210.     move.w 66+[1*74](a0),d2
  211.     move.w 66+[2*74](a0),d3
  212.     move.w 66+[3*74](a0),d4
  213.     moveq #2,d0
  214.     moveq #0,d5
  215.     move.w (a5),d7
  216.     ori.w #$8000,d7            ;Set/clr bit = 1
  217.     move.w d7,$dff096        ;Enable audio DMA
  218. chan1:
  219.     lea V1data+72(pc),a0
  220.     move.w (a0),d7
  221.     beq.s chan2
  222.     subq.w #1,(a0)
  223.     cmp.w d0,d7
  224.     bne.s chan2
  225.     move.w d5,(a0)
  226.     move.l a1,$a0(a6)        ;Set samplestart
  227.     move.w d1,$a4(a6)        ;Set samplelength
  228. chan2:
  229.     lea V2data+72(pc),a0
  230.     move.w (a0),d7
  231.     beq.s chan3
  232.     subq.w #1,(a0)
  233.     cmp.w d0,d7
  234.     bne.s chan3
  235.     move.w d5,(a0)
  236.     move.l a2,$b0(a6)
  237.     move.w d2,$b4(a6)
  238. chan3:
  239.     lea V3data+72(pc),a0
  240.     move.w (a0),d7
  241.     beq.s chan4
  242.     subq.w #1,(a0)
  243.     cmp.w d0,d7
  244.     bne.s chan4
  245.     move.w d5,(a0)
  246.     move.l a3,$c0(a6)
  247.     move.w d3,$c4(a6)
  248. chan4:
  249.     lea V4data+72(pc),a0
  250.     move.w (a0),d7
  251.     beq.s endplay
  252.     subq.w #1,(a0)
  253.     cmp.w d0,d7
  254.     bne.s endplay
  255.     move.w d5,(a0)
  256.     move.l a4,$d0(a6)
  257.     move.w d4,$d4(a6)
  258. endplay:
  259. rts
  260.  
  261. NEW_NOTE:
  262.     move.l 34(a0),a1
  263.     adda.w 40(a0),a1
  264.     cmp.b #$49,(a1)        ;Check "END" mark in pattern
  265.     beq.s patend
  266.     cmp.w #64,40(a0)        ;Have all the notes been played?
  267.     bne.S samepat
  268. patend:
  269.     move.w d5,40(a0)
  270.     move.l (a0),a2
  271.     adda.w 6(a0),a2        ;Point to next sequence row
  272.     cmpa.l 52(a0),a2    ;Is it the end?
  273.     bne.s notend
  274.     move.w d5,6(a0)        ;yes!
  275.     move.l (a0),a2        ;Point to first sequence
  276. notend:
  277.     lea spdtemp(pc),a3
  278.     moveq #1,d1
  279.     addq.b #1,(a3)
  280.     cmpi.b #5,(a3)
  281.     bne.s nonewspd
  282.     move.b d1,(a3)
  283.     move.b 12(a2),d1    ;Get new replay speed
  284.     beq.s nonewspd
  285.     move.w d1,2(a3)        ;store in counter
  286.     move.w d1,4(a3)
  287. nonewspd:
  288.     move.b (a2)+,d1        ;Pattern to play
  289.     move.b (a2)+,44(a0)    ;Transpose value
  290.     move.b (a2)+,22(a0)    ;Soundtranspose value
  291.     lsl.w d6,d1
  292.     move.l PATpoint(pc),a1    ;Get pattern pointer
  293.     add.w d1,a1
  294.     move.l a1,34(a0)
  295.     addi.w #$000d,6(a0)
  296. samepat:
  297.     move.b 1(a1),d1        ;Get info byte
  298.     move.b (a1)+,d0        ;Get note
  299.     bne.s ww1
  300.     andi.w #%11000000,d1
  301.     beq.s noport
  302.     bra.s ww11
  303. ww1:
  304.     move.w d5,56(a0)
  305. ww11:
  306.     move.b d5,47(a0)
  307.     btst #7,d1
  308.     beq.s noport
  309.     move.b 2(a1),47(a0)    
  310. noport:
  311.     andi.w #$007f,d0
  312.     beq.S nextnote
  313.     move.b d0,8(a0)
  314.     move.b (a1),d1
  315.     move.b d1,9(a0)
  316.     move.w 32(a0),d3
  317.     or.w d3,(a5)
  318.     move.w d3,$dff096
  319.     andi.w #$003f,d1    ;Max 64 instruments
  320.     add.b 22(a0),d1        ;add Soundtranspose
  321.     move.l VOLpoint(pc),a2
  322.     lsl.w d6,d1
  323.     adda.w d1,a2
  324.     move.w d5,16(a0)
  325.     move.b (a2),23(a0)
  326.     move.b (a2)+,24(a0)
  327.     moveq #0,d1
  328.     move.b (a2)+,d1
  329.     move.b (a2)+,27(a0)
  330.     move.b #$40,46(a0)
  331.     move.b (a2),28(a0)
  332.     move.b (a2)+,29(a0)
  333.     move.b (a2)+,30(a0)
  334.     move.l a2,10(a0)
  335.     move.l FRQpoint(pc),a2
  336.     lsl.w d6,d1
  337.     adda.w d1,a2
  338.     move.l a2,18(a0)
  339.     move.w d5,50(a0)
  340.     move.b d5,25(a0)
  341.     move.b d5,26(a0)
  342. nextnote:
  343.     addq.w #2,40(a0)
  344. rts
  345.  
  346. EFFECTS:
  347.     moveq #0,d7
  348. testsustain:
  349.     tst.b 26(a0)        ;Is sustain counter = 0
  350.     beq.s sustzero
  351.     subq.b #1,26(a0)    ;if no, decrease counter
  352.     bra.L VOLUfx
  353. sustzero:        ;Next part of effect sequence
  354.     move.l 18(a0),a1    ;can be executed now.
  355.     adda.w 50(a0),a1
  356. testeffects:
  357.     cmpi.b #$e1,(a1)    ;E1 = end of FREQseq sequence
  358.     beq.L VOLUfx
  359.     move.b (a1),d0
  360.     cmpi.b #$e0,d0        ;E0 = loop to other part of sequence
  361.     bne.s testnewsound
  362.     move.b 1(a1),d1        ;loop to start of sequence + 1(a1)
  363.     andi.w #$003f,d1
  364.     move.w d1,50(a0)
  365.     move.l 18(a0),a1
  366.     adda.w d1,a1
  367.     move.b (a1),d0
  368. testnewsound:
  369.     cmpi.b #$e2,d0        ;E2 = set waveform
  370.     bne.s testE4
  371.     move.w 32(a0),d1
  372.     or.w d1,(a5)
  373.     move.w d1,$dff096
  374.     moveq #0,d0
  375.     move.b 1(a1),d0
  376.     lea SOUNDINFO(pc),a4
  377.     lsl.w #4,d0
  378.     adda.w d0,a4
  379.     move.l 60(a0),a3
  380.     move.l (a4)+,d1
  381.     move.l d1,(a3)
  382.     move.l d1,68(a0)
  383.     move.w (a4)+,4(a3)
  384.     move.l (a4),64(a0)
  385.     move.w #$0003,72(a0)
  386.     move.w d7,16(a0)
  387.     move.b #$01,23(a0)
  388.     addq.w #2,50(a0)
  389.     bra.L transpose
  390. testE4:
  391.     cmpi.b #$e4,d0
  392.     bne.s testE9
  393.     moveq #0,d0
  394.     move.b 1(a1),d0
  395.     lea SOUNDINFO(pc),a4
  396.     lsl.w #4,d0
  397.     adda.w d0,a4
  398.     move.l 60(a0),a3
  399.     move.l (a4)+,d1
  400.     move.l d1,(a3)
  401.     move.l d1,68(a0)
  402.     move.w (a4)+,4(a3)
  403.     move.l (a4),64(a0)
  404.     move.w #$0003,72(a0)
  405.     addq.w #2,50(a0)
  406.     bra.L transpose
  407. testE9:
  408.     cmpi.b #$e9,d0
  409.     bne.S    testpatjmp
  410.     move.w 32(a0),d1
  411.     or.w d1,(a5)
  412.     move.w d1,$dff096
  413.     moveq #0,d0
  414.     move.b 1(a1),d0
  415.     lea SOUNDINFO(pc),a4
  416.     lsl.w #4,d0
  417.     adda.w d0,a4
  418.     move.l (a4),a2
  419.     cmpi.l #"SSMP",(a2)+
  420.     bne.s nossmp
  421.     lea 320(a2),a4
  422.     moveq #0,d1
  423.     move.b 2(a1),d1
  424.     lsl.w #4,d1
  425.     add.w d1,a2    
  426.     add.l (a2),a4
  427.     move.l 60(a0),a3
  428.     move.l a4,(a3)
  429.     move.l 4(a2),4(a3)
  430.     move.l a4,68(a0)
  431.     move.l 6(a2),64(a0)
  432.     move.w d7,16(a0)
  433.     move.b #1,23(a0)
  434.     move.w #3,72(a0)
  435. nossmp:
  436.     addq.w #3,50(a0)
  437.     bra.s transpose
  438. testpatjmp:
  439.     cmpi.b #$e7,d0
  440.     bne.s testpitchbend
  441.     moveq #0,d0
  442.     move.b 1(a1),d0
  443.     lsl.w d6,d0
  444.     move.l FRQpoint(pc),a1
  445.     adda.w d0,a1
  446.     move.l a1,18(a0)
  447.     move.w d7,50(a0)
  448.     bra.L testeffects
  449. testpitchbend:
  450.     cmpi.b #$ea,d0
  451.     bne.s testnewsustain
  452.     move.b 1(a1),4(a0)
  453.     move.b 2(a1),5(a0)
  454.     addq.w #3,50(a0)
  455.     bra.s transpose
  456. testnewsustain:
  457.     cmpi.b #$e8,d0
  458.     bne.s testnewvib
  459.     move.b 1(a1),26(a0)
  460.     addq.w #2,50(a0)
  461.     bra.L testsustain
  462. testnewvib:
  463.     cmpi.b #$e3,(a1)+
  464.     bne.s transpose
  465.     addq.w #3,50(a0)
  466.     move.b (a1)+,27(a0)
  467.     move.b (a1),28(a0)
  468. transpose:
  469.     move.l 18(a0),a1
  470.     adda.w 50(a0),a1
  471.     move.b (a1),43(a0)
  472.     addq.w #1,50(a0)
  473.  
  474. VOLUfx:
  475.     tst.b 25(a0)
  476.     beq.s volsustzero
  477.     subq.b #1,25(a0)
  478.     bra.L calcperiod
  479. volsustzero:
  480.     tst.b 15(a0)
  481.     bne.s do_VOLbend
  482.     subq.b #1,23(a0)
  483.     bne.s calcperiod
  484.     move.b 24(a0),23(a0)
  485. volu_cmd:
  486.     move.l 10(a0),a1
  487.     adda.w 16(a0),a1
  488.     move.b (a1),d0
  489. testvoluend:
  490.     cmpi.b #$e1,d0
  491.     beq.s calcperiod
  492.     cmpi.b #$ea,d0
  493.     bne.s testVOLsustain
  494.     move.b 1(a1),14(a0)
  495.     move.b 2(a1),15(a0)
  496.     addq.w #3,16(a0)
  497.     bra.s do_VOLbend
  498. testVOLsustain:
  499.     cmpi.b #$e8,d0
  500.     bne.s testVOLloop
  501.     addq.w #2,16(a0)
  502.     move.b 1(a1),25(a0)
  503.     bra.s calcperiod
  504. testVOLloop:
  505.     cmpi.b #$e0,d0
  506.     bne.s setvolume
  507.     move.b 1(a1),d0
  508.     andi.w #$003f,d0
  509.     subq.b #5,d0
  510.     move.w d0,16(a0)
  511.     bra.s volu_cmd
  512. do_VOLbend:
  513.     not.b 38(a0)
  514.     beq.s calcperiod
  515.     subq.b #1,15(a0)
  516.     move.b 14(a0),d1
  517.     add.b d1,45(a0)
  518.     bpl.s calcperiod
  519.     moveq #0,d1
  520.     move.b d1,15(a0)
  521.     move.b d1,45(a0)
  522.     bra.s calcperiod
  523. setvolume:
  524.     move.b (a1),45(a0)
  525.     addq.w #1,16(a0)
  526. calcperiod:
  527.     move.b 43(a0),d0
  528.     bmi.s lockednote
  529.     add.b 8(a0),d0
  530.     add.b 44(a0),d0
  531. lockednote:
  532.     moveq #$7f,d1
  533.     and.l d1,d0
  534.     lea PERIODS(pc),a1
  535.     add.w d0,d0
  536.     move.w d0,d1
  537.     adda.w d0,a1
  538.     move.w (a1),d0
  539.  
  540.     move.b 46(a0),d7
  541.     tst.b 30(a0)        ;Vibrato_delay = zero ?
  542.     beq.s vibrator
  543.     subq.b #1,30(a0)
  544.     bra.s novibrato
  545. vibrator:
  546.     moveq #5,d2
  547.     move.b d1,d5
  548.     move.b 28(a0),d4
  549.     add.b d4,d4
  550.     move.b 29(a0),d1
  551.     tst.b d7
  552.     bpl.s vib1
  553.     btst #0,d7
  554.     bne.s vib4
  555. vib1:
  556.     btst d2,d7
  557.     bne.s vib2
  558.     sub.b 27(a0),d1
  559.     bcc.s vib3
  560.     bset d2,d7
  561.     moveq #0,d1
  562.     bra.s vib3
  563. vib2:
  564.     add.b 27(a0),d1
  565.     cmp.b d4,d1
  566.     bcs.s vib3
  567.     bclr d2,d7
  568.     move.b d4,d1
  569. vib3:
  570.     move.b d1,29(a0)
  571. vib4:
  572.     lsr.b #1,d4
  573.     sub.b d4,d1
  574.     bcc.s vib5
  575.     subi.w #$0100,d1
  576. vib5:
  577.     addi.b #$a0,d5
  578.     bcs.s vib7
  579. vib6:
  580.     add.w d1,d1
  581.     addi.b #$18,d5
  582.     bcc.s vib6
  583. vib7:
  584.     add.w d1,d0
  585. novibrato:
  586.     eori.b #$01,d7
  587.     move.b d7,46(a0)
  588.  
  589. ; DO THE PORTAMENTO THING
  590.     not.b 39(a0)
  591.     beq.s pitchbend
  592.     moveq #0,d1
  593.     move.b 47(a0),d1    ;get portavalue
  594.     beq.s pitchbend        ;0=no portamento
  595.     cmpi.b #$1f,d1
  596.     bls.s portaup
  597. portadown: 
  598.     andi.w #$1f,d1
  599.     neg.w d1
  600. portaup:
  601.     sub.w d1,56(a0)
  602. pitchbend:
  603.     not.b 42(a0)
  604.     beq.s addporta
  605.     tst.b 5(a0)
  606.     beq.s addporta
  607.     subq.b #1,5(a0)
  608.     moveq #0,d1
  609.     move.b 4(a0),d1
  610.     bpl.s pitchup
  611.     ext.w d1
  612. pitchup:
  613.     sub.w d1,56(a0)
  614.     addporta:
  615.     add.w 56(a0),d0
  616.     cmpi.w #$0070,d0
  617.     bhi.s nn1
  618.     move.w #$0071,d0
  619. nn1:
  620.     cmpi.w #$0d60,d0
  621. bls.s nn2
  622.     move.w #$0d60,d0
  623. nn2:
  624.     swap d0
  625.     move.b 45(a0),d0
  626. rts
  627.  
  628.  
  629.  
  630. V1data:  blk.b 64,0    ;Voice 1 data area
  631. offset1: blk.b 02,0    ;Is added to start of sound
  632. ssize1:  blk.b 02,0    ;Length of sound
  633. start1:  blk.b 06,0    ;Start of sound
  634.  
  635. V2data:  blk.b 64,0    ;Voice 2 data area
  636. offset2: blk.b 02,0
  637. ssize2:  blk.b 02,0
  638. start2:  blk.b 06,0
  639.  
  640. V3data:  blk.b 64,0    ;Voice 3 data area
  641. offset3: blk.b 02,0
  642. ssize3:  blk.b 02,0
  643. start3:  blk.b 06,0
  644.  
  645. V4data:  blk.b 64,0    ;Voice 4 data area
  646. offset4: blk.b 02,0
  647. ssize4:  blk.b 02,0
  648. start4:  blk.b 06,0
  649.  
  650. audtemp: dc.w 0        ;DMACON
  651. spdtemp: dc.w 0
  652. respcnt: dc.w 0        ;Replay speed counter 
  653. repspd:  dc.w 0        ;Replay speed counter temp
  654. onoff:   dc.w 0        ;Music on/off flag.
  655.  
  656. Chandata: dc.l $00000000,$00100003,$00200006,$00300009
  657. SEQpoint: dc.l 0
  658. PATpoint: dc.l 0
  659. FRQpoint: dc.l 0
  660. VOLpoint: dc.l 0
  661.  
  662.  
  663. SILENT: dc.w $0100,$0000,$0000,$00e1
  664.  
  665. PERIODS:dc.w $06b0,$0650,$05f4,$05a0,$054c,$0500,$04b8,$0474
  666.     dc.w $0434,$03f8,$03c0,$038a,$0358,$0328,$02fa,$02d0
  667.     dc.w $02a6,$0280,$025c,$023a,$021a,$01fc,$01e0,$01c5
  668.     dc.w $01ac,$0194,$017d,$0168,$0153,$0140,$012e,$011d
  669.     dc.w $010d,$00fe,$00f0,$00e2,$00d6,$00ca,$00be,$00b4
  670.     dc.w $00aa,$00a0,$0097,$008f,$0087,$007f,$0078,$0071
  671.     dc.w $0071,$0071,$0071,$0071,$0071,$0071,$0071,$0071
  672.     dc.w $0071,$0071,$0071,$0071,$0d60,$0ca0,$0be8,$0b40
  673.     dc.w $0a98,$0a00,$0970,$08e8,$0868,$07f0,$0780,$0714
  674.     dc.w $1ac0,$1940,$17d0,$1680,$1530,$1400,$12e0,$11d0
  675.     dc.w $10d0,$0fe0,$0f00,$0e28,$06b0,$0650,$05f4,$05a0
  676.     dc.w $054c,$0500,$04b8,$0474,$0434,$03f8,$03c0,$038a
  677.     dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c,$023a
  678.     dc.w $021a,$01fc,$01e0,$01c5,$01ac,$0194,$017d,$0168
  679.     dc.w $0153,$0140,$012e,$011d,$010d,$00fe,$00f0,$00e2
  680.     dc.w $00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097,$008f
  681.     dc.w $0087,$007f,$0078,$0071
  682.  
  683. SOUNDINFO:
  684. ;Start.l , Length.w , Repeat start.w , Repeat-length.w , blk.b 6,0 
  685.  
  686. blk.b 10*16,0    ;Reserved for samples
  687. blk.b 80*16,0    ;Reserved for waveforms
  688.  
  689.  
  690.  
  691. **************************************************************************
  692. **************************************************************************
  693. **************************************************************************
  694.  
  695.  
  696. START_INTRO:
  697.  
  698.  
  699. **************************************************************************
  700.  
  701. ****************   Init the copperlist and sinus tables   ****************
  702.  
  703. **************************************************************************
  704. ;    lea    spointers,a0
  705. ;    move.l    screen,d1
  706. ;    moveq    #3,d0
  707. ;Iinlop:    
  708. ;    move.w    d1,4(a0)
  709. ;    swap    d1
  710. ;    move.w    d1,(a0)
  711. ;    swap    d1
  712. ;    add.l    #8,a0
  713. ;    add.l    #$17c0,d1
  714. ;    dbra    d0,Iinlop
  715.  
  716.  
  717.     lea    screenpointers(pc),a0
  718.     move.l    #$3007fffe,d1
  719.     move.l    #logo+40,d2    
  720.     move.l    #logo+[35*40],d3    
  721.     moveq    #31,d0
  722. scrptlp:
  723.     move.l    d1,(a0)+
  724.     swap    d2
  725.     move.w    #$00e0,(a0)+
  726.     move.w    d2,(a0)+
  727.     swap    d2
  728.     move.w    #$00e2,(a0)+
  729.     move.w    d2,(a0)+
  730.     swap    d3
  731.     move.w    #$00e4,(a0)+
  732.     move.w    d3,(a0)+
  733.     swap    d3
  734.     move.w    #$00e6,(a0)+
  735.     move.w    d3,(a0)+
  736.     add.l    #$02000000,d1
  737.     add.l    #40,d2
  738.     add.l    #40,d3
  739.     dbra    d0,scrptlp
  740.  
  741.     lea    screen(pc),a0
  742.     move.l    #$7107fffe,d1
  743.     lea    backcol(pc),a1    
  744.     lea    backcol2(pc),a2
  745.     move.l    #141,d0
  746. scrblki:
  747.     move.l    d1,(a0)+
  748.     move.l    #$00e20000,(a0)+
  749.     move.l    #$01020000,(a0)+
  750.     move.w    #$0182,(a0)+
  751. colagn:    move.w    (a1)+,d2
  752.     cmp.w    #$0fff,d2
  753.     bne.S    okcol
  754.     lea    backcol(pc),a1    
  755.     bra.S    colagn
  756. okcol:    move.w    d2,(a0)+
  757.  
  758.     move.w    #$0192,(a0)+
  759. colagn2:move.w    (a2)+,d2
  760.     cmp.w    #$0fff,d2
  761.     bne.S    okcol2
  762.     lea    backcol2(pc),a2    
  763.     bra.S    colagn2
  764. okcol2:    move.w    d2,(a0)+
  765.     add.l    #$01000000,d1
  766.     dbra    d0,scrblki
  767.  
  768.  
  769.     lea    sindata(pc),a0
  770.     lea    scrollsin1(pc),a1
  771.     move.l    #34,d0
  772.     move.l    #359,d2
  773. mscdat7:clr.l    d1
  774.     move.w    (a0),d1
  775.     cmp.w    #$ffff,d1
  776.     bne.S    okysin4
  777.     move.l    #sindata,a0
  778.     bra.S    mscdat7    
  779. okysin4:add.l    #4096,d1
  780.     mulu    d0,d1
  781.     divu    #4096,d1    
  782.     mulu    #48,d1
  783.     move.w    d1,(a1)+
  784.     add.l    #2,a0
  785.     dbra    d2,mscdat7
  786.  
  787.     lea    sindata(pc),a0
  788.     lea    scrollsin2(pc),a1
  789.     move.l    #29,d0
  790.     move.l    #359,d2
  791. mscdat5:clr.l    d1
  792.     move.w    (a0),d1
  793.     cmp.w    #$ffff,d1
  794.     bne.S    okysin5
  795.     move.l    #sindata,a0
  796.     bra.S    mscdat5    
  797. okysin5:add.l    #4096,d1
  798.     mulu    d0,d1
  799.     divu    #4096,d1    
  800.     addq.l    #1,d1
  801.     mulu    #48,d1
  802.     move.w    d1,(a1)+
  803.     add.l    #4,a0
  804.     dbra    d2,mscdat5
  805.  
  806.  
  807.  
  808. **************************************************************************
  809.  
  810. ************     Start Level 3 Interupt and Kill System      *************
  811.  
  812. **************************************************************************
  813.  
  814.     move.w    $dff002,DMAbits        ; Store DMA and Interupt bits
  815.     move.w    $dff01c,Interuptbits    ;
  816.  
  817.     
  818.     move.w    #$3807,$dff09a        ; set Interupt bits
  819.     move.b    #%01111111,$bfed01    ; shut off keyboard
  820.     move.w    #$7fff,$dff096        ; Clear DMA bits
  821.     move.w    #$87ef,$dff096        ; Set DMA bits
  822.     move.w    #$8400,$dff096        ; Set Blitter nasty 
  823.  
  824. ;    MOVE.L  $68,OLDINTERUPT2
  825.     MOVE.L    $6C,OLDINTERUPT3
  826.  
  827.     bsr    printback
  828.  
  829. ;    MOVE.L  #DINTERUPT,$68
  830.     MOVE.L  #INTERUPT,$6C
  831.  
  832.     bsr.L    init_music
  833.     move.l    #text1,chrpoint1
  834.  
  835. ;-----------------------------------------------------------------------
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.     move.l    #aclogocopper,actualcopper
  843.     
  844. **************************************************************************
  845.  
  846. *****************      Mainloop for the INTRO         ********************
  847.  
  848. **************************************************************************
  849.  
  850.     
  851.  
  852. main:
  853.     bsr.L    VBwait
  854.     bsr.l    chcol
  855.     bsr.L    swapscreen
  856.     bsr.L    sinscroll
  857. ;    move.w    #$000f,$dff180  ;kolla rastertidkvar
  858.     btst    #6,$bfe001    ;testa musknapp
  859.     bne.S    main
  860.  
  861.  
  862.  
  863. **************************************************************************
  864.  
  865. ***********************   Restore system and Quit ************************
  866.  
  867. **************************************************************************
  868.  
  869. quit:
  870.     bsr.L    end_music
  871.     move.w    DMAbits,d0
  872.     or.w    #$8100,d0
  873.     move.w    d0,$dff096
  874.     move.w    Interuptbits,d0
  875.     or.w    #$c000,d0
  876.     move.w    d0,$dff09a
  877.     move.b    #%10011011,$bfed01
  878. ;    MOVE.L  OLDINTERUPT2,$68
  879.     move.l    OLDINTERUPT3,$6C;flytta tillbaka gamla copperlistan
  880.     clr.l    d0
  881. rts
  882. **************************************************************************
  883.  
  884.  
  885.  
  886. ****************   HERE IS THE BEGINING OFF SUBROUTINES   ***************
  887.  
  888.  
  889.  
  890.  
  891. **************************************************************************
  892.  
  893. ***************  All sub routines for the AC LOGO part   *****************
  894.  
  895. **************************************************************************
  896.  
  897. chcol:    
  898.     lea    screen(pc),a0
  899.     move.w    18(a0),d5
  900.     move.l    #45,d0
  901. collp:    move.w    38(a0),18(a0)
  902.     add.l    #20,a0
  903.     dbra    d0,collp
  904.     move.w    d5,18(a0)
  905. rts    
  906.  
  907.  
  908.  
  909.  
  910. printback:
  911.  
  912. ;       --------- Clear Screen Area ----------
  913.  
  914.     move.w    #00,$dff066
  915.      move.l    #$ffffffff,$dff044
  916.     move.l    #SCREEN02,$dff054
  917.     move.l  #$09000000,$dff040 ;cntl word
  918.     move.w    #$2398,$dff058    ;starta blittern
  919.  
  920.  
  921.     move.l    #backtext,chrpoint1
  922.     move.l    #screen02+[3*42]+2,printpos
  923.  
  924. doaprin:    
  925.     moveq    #0,d1
  926.     move.l    chrpoint1,a1
  927.     move.b    (a1),d1
  928.     cmp.b    #0,d1 
  929.     bne.s    norestart4
  930.     add.l    #590,printpos
  931.     addq.l    #1,chrpoint1
  932.     bra.s    doaprin
  933. norestart4:
  934.     cmp.b    #1,d1 
  935.     bne.s    norestart5
  936.     rts
  937. norestart5:
  938.     move.l    #-1,d2
  939.     lea    convertiontable1(pc),a0
  940. findch3:move.b    (a0)+,d0
  941.     addq.l    #1,d2
  942.     cmp.b    d0,d1
  943.     bne.s    findch3
  944.     MULU    #26,d2
  945.  
  946.     add.l    #font,d2
  947.     move.w    #40,$dff066
  948.      move.l    #$ffffffff,$dff044
  949.     move.w    #00,$dff064
  950.     move.l    #$09f00000,$dff040
  951.     move.l    d2,$dff050
  952.     move.l    printpos,$dff054
  953.     move.w    #$0341,$dff058
  954.  
  955.     addq.l    #1,chrpoint1
  956.     addq.l    #2,printpos
  957. bra doaprin    
  958.  
  959.  
  960. swapscreen:
  961.  
  962.     bchg    #1,iscflag
  963.     btst    #1,iscflag
  964.     bne.S    ci2
  965.     move.l    #screen00,usescreen
  966.     move.l    #screen01,d1
  967.     bra.S    doxsin
  968. ci2:
  969.     move.l    #screen01,usescreen
  970.     move.l    #screen00,d1
  971. doxsin:
  972.     addq.l    #6,d1        
  973.           lea    screen(pc),a0
  974.     lea    scrollsin(pc),a1
  975.     move.l    #140,d0
  976. xsinlop:moveq    #0,d6
  977.     moveq    #0,d5
  978.     move.w    (a1)+,d6
  979.     addq.l    #2,a1
  980.     divu    #48,d6        ;dela med 48 eftersom tabellen e sån
  981.     ror.l    #5,d6                
  982.     move.w    d6,d5
  983.     rol.l    #1,d5
  984.     and.l    #$f0000000,d6
  985.     rol.l    #4,d6
  986.     move.w    d6,10(a0)    ;lagg in shift value
  987.     neg    d5
  988.     add.l    d1,d5
  989.     move.w    d5,6(a0)    ;lagg in screensta    
  990.     add.l    #20,a0
  991.     add.l    #48,d1
  992.     dbra    d0,xsinlop
  993. rts    
  994.  
  995.  
  996. sinscroll:
  997.     move.l    #$ffffffff,$dff044
  998.     move.w    #00,$dff064
  999.  
  1000.     subq.w    #1,pos
  1001.     tst.w    pos
  1002.     bne.L    sliding
  1003.     move.b    #0,stopflag
  1004.     addq.l    #1,chrpoint1
  1005.     move.w    #8,pos    
  1006.     moveq    #0,d1
  1007. wrs:    move.l    chrpoint1,a1
  1008.     move.b    (a1),d1
  1009.     cmp.b    #0,d1 
  1010.     bne.s    norestart2
  1011.     move.l    #text1,chrpoint1
  1012.     bra.S    wrs
  1013. norestart2:
  1014.     cmp.b    #1,d1 
  1015.     bne.s    norestart3
  1016.     move.b    #1,stopflag    
  1017.     bra.S    sliding
  1018. norestart3:
  1019.     move.l    #-1,d2
  1020.     lea    convertiontable1(pc),a0
  1021. findch2:move.b    (a0)+,d0
  1022.     addq.l    #1,d2
  1023.     cmp.b    d0,d1
  1024.     bne.s    findch2
  1025.     MULU    #26,d2
  1026.  
  1027.     add.l    #font,d2
  1028.     move.w    #48,$dff066
  1029.      move.l    #$09f00000,$dff040
  1030.     move.l    d2,$dff050
  1031.     move.l    #scrollplane+48,$dff054
  1032.     move.w    #$0341,$dff058
  1033.  
  1034. sliding:
  1035.     move.w    #00,$dff066    ;blitter dest.modulo
  1036.  
  1037.     tst.b    stopflag
  1038.     bne.S    dontslide
  1039.  
  1040. ;    -------- Slide the Scrollplane -------- 
  1041.      move.l    #$e9f00000,$dff040
  1042.     move.l    #scrollplane+2,$dff050    ;blitter source a
  1043.     move.l    #scrollplane,$dff054    ;blitter destination
  1044.     move.w    #$0359,$dff058    ;starta blittern
  1045.  
  1046. dontslide:
  1047. ;       --------- Clear Screen Area ----------
  1048.  
  1049.     move.l    usescreen,$dff054
  1050.     move.l  #$09000000,$dff040 ;cntl word
  1051.     move.w    #$2398,$dff058    ;starta blittern
  1052.  
  1053. ;       --------- Start do the sinus ----------
  1054.  
  1055.     lea    scrollsin,a0
  1056.     lea    scrollplane,a1
  1057.     move.l    usescreen,d4
  1058.     move.w  #46,$dff062
  1059.     move.w  #48,$dff064
  1060.     move.w  #46,$dff066
  1061.     lea    $dff054,a3
  1062.     lea    $dff04c,a4
  1063.     lea    $dff050,a5
  1064.     lea    $dff058,a6    
  1065.     lea    $dff044,a2
  1066.     move.l  #$0dfc0000,$dff040
  1067.     moveq    #23,d5
  1068.     move.l  #$c000c000,d7
  1069. blloop:    moveq    #7,d6
  1070. bllop2:    move.l  d7,(a2)
  1071.     move.l  d4,d3
  1072.     clr.l    d0
  1073.     move.w    (a0)+,d0
  1074.     add.l    d0,d3
  1075.     move.l  d3,(a3)
  1076.     move.l  d3,(a4)
  1077.     move.l  a1,(a5)  
  1078.     move.w  #$0341,(a6)    
  1079.  
  1080.     ror.l    #2,d7
  1081.     dbra    d6,bllop2
  1082.     addq.l    #2,d4
  1083.     addq.l    #2,a1
  1084.     dbra    d5,blloop
  1085.  
  1086.     lea    scrollsin1,a0
  1087.     move.l  (a0),d5
  1088.     move.l    #178,d0
  1089. sinsllp1:move.l    4(a0),(a0)+
  1090.     dbra    d0,sinsllp1
  1091.     move.l    d5,(a0)
  1092.  
  1093.     lea    scrollsin2+716,a0
  1094.     move.l  (a0),d5
  1095.     move.l    #178,d0
  1096. sinsllp2:move.l    -4(a0),(a0)
  1097.     sub.l    #4,a0
  1098.     dbra    d0,sinsllp2
  1099.     move.l    d5,(a0)
  1100.  
  1101.  
  1102.     lea    scrollsin1,a0
  1103.     lea    scrollsin2,a1
  1104.     lea    scrollsin,a2
  1105.     move.l    #359,d0
  1106. sinalop:move.w    (a0)+,d1
  1107.     add.w    (a1)+,d1
  1108.     move.w    d1,(a2)+
  1109.     dbra    d0,sinalop
  1110.  
  1111. rts
  1112.  
  1113.  
  1114.  
  1115. vbwait:    move.b    $dff006,d0;vantar
  1116.     cmp.b    #$ff,d0
  1117.     bne.S    vbwait
  1118. rts
  1119.  
  1120.  
  1121. INTERUPT:    
  1122.     MOVEM.L    D0-D7/A0-A6,-(SP)
  1123.     MOVE.W    $DFF01E,D0
  1124.     BTST    #5,D0
  1125.     BNE.s    DOCOPPER
  1126.     MOVE.W    D0,$DFF09C
  1127.     MOVEM.L    (SP)+,D0-D7/A0-A6
  1128. RTE
  1129.  
  1130. DOCOPPER:
  1131.     BSR.L    PLAY
  1132.     MOVE.W    #$0020,$DFF09c    
  1133.     MOVE.L    ACTUALCOPPER,$DFF084
  1134.     MOVEM.L    (SP)+,D0-D7/A0-A6
  1135. RTE
  1136.  
  1137.  
  1138.  
  1139. **************************************************************************
  1140.  
  1141. ************************    Copper Listor     ****************************
  1142.  
  1143. **************************************************************************
  1144.  
  1145. aclogocopper:
  1146.     dc.w  $120,0,$122,0
  1147. aclogocmap:
  1148.     dc.w  $0180,$0000,$0182,$0c0c,$0184,$0808,$0186,$0505
  1149.     dc.w  $0100,$2200
  1150.     dc.w  $0104,$0000
  1151.     dc.w  $0102,$0000
  1152.     dc.w  $008e,$3081,$0090,$30c1    ;display
  1153.      dc.w  $0092,$0038,$0094,$00d0    ;data fetch,stop
  1154.     dc.w  $0108,-40,$010a,-40    ;modulos
  1155.  
  1156. screenpointers:    blk 10*2*32        ;bitplane pointers
  1157.     
  1158.  
  1159.     
  1160.     dc.w $7007,$fffe
  1161.         
  1162.     dc.w    $0180,$000f,$0182,$0fff,$0190,$0000,$0192,$0509
  1163.     dc.w  $0100,$2600
  1164.     dc.w  $0104,$0000
  1165.     dc.w  $0102,$0000
  1166.     dc.w  $008e,$7181,$0090,$ffc1    ;display
  1167.      dc.w  $0092,$0030,$0094,$00d0    ;data fetch,stop
  1168.     dc.w  $0108,8,$010a,0    ;modulos
  1169.     dc.w  $00e0,$5
  1170.     dc.w  $00e4,$5
  1171.     dc.w  $00e6,$4000
  1172.  
  1173.     dc.w $7107,$fffe
  1174.     dc.w $0180,$0000
  1175.  
  1176. screen:    blk 2840,0
  1177.  
  1178.  
  1179.     dc.w $ff07,$fffe
  1180.     dc.w $0180,$000f
  1181.     dc.w $ffe1,$fffe
  1182.     dc.w $0007,$fffe
  1183.     dc.w $0180,$0000
  1184.  
  1185. dc.w $ffff,$fffe
  1186.  
  1187.  
  1188.  
  1189.  
  1190. **************************************************************************
  1191.  
  1192. ******************  DATA AREA and VARIABLE DECLARATION  ******************
  1193.  
  1194. **************************************************************************
  1195.  
  1196.  
  1197. sindata:    ;  SIN VALUES $ff00 $0100  step .5 degres
  1198.     DC.W    $0000,$0047,$008F,$00D6,$011E,$0165,$01AC,$01F3,$023A,$0281,$02C7,$030E
  1199.     DC.W    $0354,$0399,$03DF,$0424,$0469,$04AE,$04F2,$0536,$0579,$05BC,$05FE,$0640
  1200.     DC.W    $0682,$06C3,$0704,$0744,$0783,$07C2,$0800,$083E,$087B,$08B7,$08F2,$092D
  1201.     DC.W    $0968,$09A1,$09DA,$0A12,$0A49,$0A7F,$0AB5,$0AE9,$0B1D,$0B50,$0B82,$0BB4
  1202.     DC.W    $0BE4,$0C13,$0C42,$0C6F,$0C9C,$0CC7,$0CF2,$0D1B,$0D44,$0D6B,$0D92,$0DB7
  1203.     DC.W    $0DDB,$0DFE,$0E21,$0E42,$0E61,$0E80,$0E9E,$0EBA,$0ED6,$0EF0,$0F09,$0F21
  1204.     DC.W    $0F38,$0F4D,$0F61,$0F74,$0F86,$0F97,$0FA6,$0FB5,$0FC2,$0FCE,$0FD8,$0FE1
  1205.     DC.W    $0FEA,$0FF0,$0FF6,$0FFA,$0FFE,$0FFF,$1000,$0FFF,$0FFE,$0FFA,$0FF6,$0FF0
  1206.     DC.W    $0FEA,$0FE1,$0FD8,$0FCE,$0FC2,$0FB5,$0FA6,$0F97,$0F86,$0F74,$0F61,$0F4D
  1207.     DC.W    $0F38,$0F21,$0F09,$0EF0,$0ED6,$0EBA,$0E9E,$0E80,$0E61,$0E42,$0E21,$0DFE
  1208.     DC.W    $0DDB,$0DB7,$0D92,$0D6B,$0D44,$0D1B,$0CF2,$0CC7,$0C9C,$0C6F,$0C42,$0C13
  1209.     DC.W    $0BE4,$0BB4,$0B82,$0B50,$0B1D,$0AE9,$0AB5,$0A7F,$0A49,$0A12,$09DA,$09A1
  1210.     DC.W    $0968,$092D,$08F2,$08B7,$087B,$083E,$0800,$07C2,$0783,$0744,$0704,$06C3
  1211.     DC.W    $0682,$0640,$05FE,$05BC,$0579,$0536,$04F2,$04AE,$0469,$0424,$03DF,$0399
  1212.     DC.W    $0354,$030E,$02C7,$0281,$023A,$01F3,$01AC,$0165,$011E,$00D6,$008F,$0048
  1213.     DC.W    $0000,$FFB9,$FF71,$FF2A,$FEE2,$FE9B,$FE54,$FE0D,$FDC6,$FD7F,$FD39,$FCF2
  1214.     DC.W    $FCAC,$FC67,$FC21,$FBDC,$FB97,$FB52,$FB0E,$FACA,$FA87,$FA44,$FA02,$F9C0
  1215.     DC.W    $F97E,$F93D,$F8FC,$F8BC,$F87D,$F83E,$F800,$F7C2,$F785,$F749,$F70E,$F6D3
  1216.     DC.W    $F698,$F65F,$F626,$F5EE,$F5B7,$F581,$F54B,$F517,$F4E3,$F4B0,$F47E,$F44C
  1217.     DC.W    $F41C,$F3ED,$F3BE,$F391,$F364,$F339,$F30E,$F2E5,$F2BC,$F295,$F26E,$F249
  1218.     DC.W    $F225,$F202,$F1DF,$F1BE,$F19F,$F180,$F162,$F146,$F12A,$F110,$F0F7,$F0DF
  1219.     DC.W    $F0C8,$F0B3,$F09F,$F08C,$F07A,$F069,$F05A,$F04B,$F03E,$F032,$F028,$F01F
  1220.     DC.W    $F016,$F010,$F00A,$F006,$F002,$F001,$F000,$F001,$F002,$F006,$F00A,$F010
  1221.     DC.W    $F016,$F01F,$F028,$F032,$F03E,$F04B,$F059,$F069,$F07A,$F08C,$F09F,$F0B3
  1222.     DC.W    $F0C8,$F0DF,$F0F7,$F110,$F12A,$F146,$F162,$F180,$F19F,$F1BE,$F1DF,$F202
  1223.     DC.W    $F225,$F249,$F26E,$F295,$F2BC,$F2E5,$F30E,$F339,$F364,$F391,$F3BE,$F3ED
  1224.     DC.W    $F41C,$F44C,$F47E,$F4B0,$F4E3,$F516,$F54B,$F581,$F5B7,$F5EE,$F626,$F65F
  1225.     DC.W    $F698,$F6D3,$F70D,$F749,$F785,$F7C2,$F800,$F83E,$F87D,$F8BC,$F8FC,$F93D
  1226.     DC.W    $F97E,$F9BF,$FA02,$FA44,$FA87,$FACA,$FB0E,$FB52,$FB97,$FBDC,$FC21,$FC67
  1227.     DC.W    $FCAC,$FCF2,$FD39,$FD7F,$FDC6,$FE0D,$FE54,$FE9B,$FEE2,$FF2A,$FF71,$FFB8
  1228.     dc.w    $ffff,$ffff,$ffff,$ffff,$ffff,$ffff,$ffff,$ffff
  1229. backcol: 
  1230.     dc.w $a00,$a10,$a20,$a30,$a40,$a50,$a60,$a70,$a80,$a90,$aa0,$ab0,$ac0,$ad0
  1231.     dc.w $ac0,$ab0,$aa0,$a90,$a80,$a70,$a60,$a50,$a40,$a30,$a20,$a10,$fff
  1232.  
  1233. backcol2: 
  1234.     dc.w $a08,$a18,$a28,$a38,$a48,$a58,$a68,$a78,$a88,$a98,$aa8,$ab8,$ac8,$ad0
  1235.     dc.w $ac8,$ab8,$aa8,$a98,$a88,$a78,$a68,$a58,$a48,$a38,$a28,$a18,$fff
  1236.  
  1237. convertiontable1:     ;for introfont
  1238.     dc.b 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,!():*?/-& '
  1239.  
  1240.  
  1241. **************    SCROLL TEXT IS TO BE PLACED HERE    ***************
  1242.  
  1243. *****  PLEASE NOTE 1. ALWAYS PUT A SPACE IN THE BEGINNING OF THE TEXT
  1244. *****              2. END THE SCROLLER WITH A 0
  1245. *****              3. USE THE NUMBER 1 TO STOP THE SCROLLER FOR 1 CHR
  1246.  
  1247. *********************************************************************
  1248. Text1:
  1249. DC.B ' THIS IS A TEST   ',1,1,1,1,1,1,1,1,1,1,1
  1250. DC.B '      OF  THIS FUCKIN SCROLLER  (HOPE YOU LIKE IT) !         '
  1251. DC.B ' ALE / PARALAX SYSTEMS           ',0
  1252.  
  1253.  
  1254. ******** TEXT BAKOM SCROLLER (MÅSTE HA DENNA STORLEK!) *******
  1255.  
  1256. ********  ETT EXEMPEL *******
  1257. Backtext:
  1258. dc.b    '      PRESENTS      ',0
  1259. dc.b    '     A CRACK BY     ',0
  1260. DC.B    '       SPOLIX       ',0
  1261. DC.B    '                    ',0
  1262. DC.B    '********************',0
  1263. DC.B    '*   STORMBRINGER   *',0
  1264. DC.B    '*       FROM       *',0
  1265. DC.B    '*     ILLUSION     *',0
  1266. DC.B    '********************',1
  1267. even 
  1268.  
  1269. OLDINTERUPT2:     dc.l $0
  1270. OLDINTERUPT3:     dc.l $0
  1271. ACTUALCOPPER:    dc.l $0
  1272. DMABITS:    dc.w $0
  1273. INTERUPTbits:    dc.w $0
  1274. chrpoint1:    dc.l $0
  1275. usescreen:    dc.l $0
  1276. printpos:    dc.l $0
  1277. pos:        dc.w $8
  1278. fadeflag:    dc.w $0    
  1279. iscflag:    dc.b $0
  1280. noscroll:    dc.b $0
  1281. stopflag:    dc.b $0
  1282. even
  1283. scrollsin:    blk  720,0
  1284. scrollsin1:    blk  720,0
  1285. scrollsin2:    blk  720,0
  1286.  
  1287. scrollplane:    blk  660,0
  1288. font:        equ  $60000 
  1289. logo:        equ  $61000
  1290. module:        equ  $65000
  1291. screen00:    equ  $50000    
  1292. screen01:    equ  $52000
  1293. screen02:    equ  $54000
  1294. maxmem:        equ  $7f000
  1295.  
  1296. >extern "asmdisk2:font/abvfont",font
  1297. >extern "asmdisk2:logo/abstract",logo
  1298. >extern "asmdisk2:module/mod.astaroth.1",module                
  1299.  
  1300.