home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / tmmintro.lha / loader51.S
Encoding:
Text File  |  1980-10-17  |  25.4 KB  |  1,229 lines

  1. Exec=4        
  2. Permit=-138                
  3. Forbid=-132
  4. OpenLibrary=-408    
  5. CloseLibrary=-414
  6. InitRastPort=-198
  7. InitBitMap=-390
  8. Move= -30 -210
  9. Draw= -246
  10. Text= -30 -30
  11. ScrollRaster= -30 -366
  12. SetAPen= -30 -312
  13. Open=-30
  14. Close=-30-6
  15. Read=-30-12
  16. Allocabs=-204
  17. ;Freemem=-210
  18.  
  19. start:    move.l    exec,a6
  20.     move.l    #$20000,d0
  21.     move.l    #$3d000,a1
  22.     jsr    allocabs(a6)
  23.     move.l    #scrolltext,scroll1cnt
  24.     Move.l    #scrolltext2,scroll2cnt
  25.     move.l    #Bsin,Bcnt
  26. Return:
  27.     jsr    mt_init
  28.     move.w    #0,linenr
  29.     move.b    #65,Filenr
  30.     jsr    setup    
  31.     jsr    setcopper
  32.     jsr    Print
  33.     bra.L    Scroller
  34.     
  35. Print:    move.l    gfxbase,a6
  36.     lea    Text1,a2
  37.     move.l    #58,d5
  38. p1:    move.l    a2,a0
  39.     move.l    gfxbase,a6
  40.     lea    rastport,a1
  41.     move.l    d5,d0
  42.     move.l    #6,d1
  43.     jsr    move(a6)
  44.     move.l    #1,d0
  45.     jsr    setapen(a6)
  46.     move.w    #1,d0
  47.     jsr    text(a6)
  48.     add.l    #1,a2
  49.     add.l    #8,d5
  50.     move.b    (a2),d7
  51.     dbeq    d7,P1
  52.     move.l    #Mtext1,Mcounter
  53.     move.l    Mcounter,a2
  54.     move.l    #17,d6
  55. Pr2:    move.l    #95,d5
  56.     add.b    (a2)+,d5
  57.     jsr    MP1
  58.     add.l    #8,d6
  59.     add.w    #1,linenr
  60.     cmp.w    #12,linenr
  61.     add.l    #15,a2
  62.     bne.S    Pr2
  63.     move.l    a2,MCounter
  64.     rts
  65.  
  66. Scroller:
  67.     jsr    set
  68. S1ret:    move.l    Scroll1cnt,a0
  69.     cmp.b    #0,(a0)
  70.     beq.L    scroller1
  71.     cmp.b    #10,(a0)
  72.     bne.S    S1
  73.     addq.l    #1,a0
  74.     move.b    (a0),Speed1F
  75.     move.w    #0,S1speed
  76.     addq.l    #2,scroll1cnt
  77. S1:    cmp.b    #0,Speed1F
  78.     bne.L    Sub1
  79.     move.w    #4,S1speed
  80.     move.l    gfxbase,a6
  81.     lea    rastport,a1
  82.     move.l    #1,d0
  83.     jsr    setapen(a6)
  84.     move.w    #1,d0
  85.     jsr    text(a6)
  86.     addq.l    #1,Scroll1cnt
  87. S2ret:    jsr    set2
  88.     move.l    Scroll2cnt,a0
  89.     cmp.b    #00,(a0)
  90.     beq.S    scroller2
  91.     cmp.b    #10,(a0)
  92.     bne.S    S2
  93.     addq.l    #1,a0
  94.     move.b    (a0),Speed2F
  95.     move.w    #0,S2speed
  96.     addq.l    #2,scroll2cnt
  97. S2:    cmp.b    #0,Speed2F
  98.     bne.S    Sub2
  99.     move.w    #4,S2speed
  100.     move.l    #1,d0
  101.     jsr    setapen(a6)
  102.     move.w    #1,d0
  103.     jsr    text(a6)
  104.     addq.l    #1,Scroll2cnt
  105. Send:    jsr    scroll
  106.     jsr    scroll
  107.     bra.L    wait
  108.  
  109. Sub1:    subq.b    #1,Speed1F
  110.     bra.S    S2ret
  111. Sub2:    subq.b    #1,Speed2F
  112.     bra.S    SEnd
  113. Scroller1:
  114.     move.l    #Scrolltext,Scroll1cnt
  115.     bra.L    S1ret
  116.  
  117. Scroller2:
  118.     move.l    #Scrolltext2,Scroll2cnt
  119.     jmp    S2ret
  120.  
  121. Scroll:    move.l    bcnt,a5
  122.     cmp.b    #$ff,(a5)
  123.     beq.L    Flagoff
  124.     cmp.b    #$ee,(a5)
  125.     beq.L    Flagon
  126.     cmp.b    #0,Flag
  127.     bne.S    DLoop1
  128. Uloop1:    clr.l    d5
  129.     move.b    (a5),d5
  130.     sub.l    d5,SPos
  131.     move.l    gfxbase,a6
  132.     jsr    wrast
  133.     lea    rastport,a1
  134.     move.w    S1speed,d0
  135.     move.w    d5,d1
  136.     move.w    #0,d2
  137.     move.w    #110,d3
  138.     move.w    #340,d4
  139.     move.w    #$9f,d5
  140.     jsr    scrollraster(a6)
  141.     bsr.L    scroll2
  142.     sub.l    #1,Bcnt
  143.     rts
  144. Dloop1:    clr.l    d5
  145.     move.b    (a5),d5
  146.     add.l    d5,SPos
  147.     move.l    gfxbase,a6
  148.     jsr wrast
  149.     lea    rastport,a1
  150.     move.w    S1speed,d0
  151.     clr.l    d1
  152.     sub.w    d5,d1
  153.     move.w    #0,d2
  154.     move.w    #110,d3
  155.     move.w    #340,d4
  156.     move.w    #$9f,d5
  157.     jsr    scrollraster(a6)
  158.     bsr.S    scroll2
  159.     add.l    #1,Bcnt
  160.     rts
  161.  
  162. Flagon:    move.b    #1,Flag
  163.     add.l    #1,Bcnt
  164.     add.l    #1,a5
  165.     bra.S    dloop1
  166. Flagoff:move.b    #0,Flag
  167.     sub.l    #1,Bcnt
  168.     sub.l    #1,a5
  169.     bra.L    uloop1
  170. Flag:    dc.b    0
  171. Mcnt:    dc.b    0
  172. Speed1F: dc.b    0
  173. Speed2F: dc.b    0
  174. SPos:    dc.l    $75
  175.  
  176. Scroll2:move.l    gfxbase,a6
  177.     lea    rastport,a1
  178.     move.w    S2speed,d0
  179.     move.w    #0,d1
  180.     move.w    #0,d2
  181.     move.w    #$a6,d3
  182.     move.w    #340,d4
  183.     move.w    #$b0,d5
  184.     jsr    scrollraster(a6)
  185.     jsr    MMove
  186.     jsr    Laser
  187.     rts
  188.     
  189. set:    move.l    gfxbase,a6
  190.     lea    rastport,a1
  191.     move.l    #333,d0
  192.     move.l    SPos,d1
  193.     jsr    move(a6)
  194.     rts
  195. Set2:    move.l    gfxbase,a6
  196.     lea    rastport,a1
  197.     move.l    #333,d0
  198.     move.l    #$ac,d1
  199.     jsr    move(a6)
  200.     rts
  201.  
  202. wait:
  203.     btst    #6,$bfe001
  204.     beq.L    ladda    
  205.     btst    #7,$bfe001
  206.     beq.L    exit
  207.     bra.L    Scroller
  208.  
  209. Laser:    add.b    #$8,Lazer2+1
  210.     add.b    #$8,Lazer2+9
  211.     add.b    #$8,Lazer2+17
  212.     add.b    #$8,Lazer2+25
  213.     add.b    #$8,Lazer2+33
  214.     sub.b    #$8,Lazer+1
  215.     sub.b    #$8,Lazer+9
  216.     sub.b    #$8,Lazer+17
  217.     sub.b    #$8,Lazer+25
  218.     sub.b    #$8,Lazer+33
  219.     rts
  220.     
  221. Mousetest:
  222.     move.b    #0,MMflag
  223.     move.b    $dff00a,d5
  224.     sub.b    d5,oldmouse
  225.     beq.S    Mtestend
  226.     bpl.S    mousedown
  227.     
  228.     add.b    #1,MUcount
  229.     cmp.b    #6,MUcount
  230.     bne.S    Mtestend
  231.     move.b    #1,MUcount
  232.     add.b    #1,Filenr
  233.     cmp.b    #'M',Filenr
  234.     bne.S    MUP1
  235.     move.b    #'A',Filenr
  236. MUP1:    move.b    #1,MMFlag
  237.     bra.S    Mtestend
  238. Mousedown:
  239.     sub.b    #1,MUcount
  240.     bne.S    Mtestend
  241.     move.b    #5,MUcount
  242.     sub.b    #1,Filenr
  243.     cmp.b    #64,Filenr
  244.     bne.S    MDW1
  245.     move.b    #'L',Filenr
  246. MDW1:    move.b    #2,MMFlag
  247. Mtestend:
  248.     move.b    $dff00a,oldmouse
  249.     rts
  250.  
  251. Mscrollup:
  252.     movem.l    d0-d7/a0-a6,-(sp)
  253.     move.l    Mcounter,a2
  254.     move.l    #95,d5
  255.     add.b    (a2)+,d5
  256.     move.l    #$69,d6
  257.     jsr    Mp1
  258.     add.l    #15,a2
  259.     move.l    a2,Mcounter
  260.     add.w    #1,linenr
  261.     movem.l    (sp)+,a0-a6/d0-d7
  262.     move.b    $dff00a,Oldmouse
  263.     rts
  264. Mscrolldw:
  265.     movem.l    d0-d7/a0-a6,-(sp)
  266.     move.l    Mcounter,a2
  267.     sub.l    #16,a2
  268.     move.l    #95,d5
  269.     add.b    (a2)+,d5
  270.     move.l    #17,d6
  271.     jsr    Mp1
  272.     sub.l    #1,a2
  273.     move.l    a2,Mcounter
  274.     sub.w    #1,linenr
  275.     movem.l    (sp)+,a0-a6/d0-d7
  276.     move.b    $dff00a,Oldmouse
  277.     rts
  278.  
  279. Mp1:    move.l    a2,a0
  280.     move.l    gfxbase,a6
  281.     lea    rastport,a1
  282.     move.l    d5,d0
  283.     move.l    d6,d1
  284.     jsr    move(a6)
  285.     move.w    #15,d0
  286.     jsr    text(a6)
  287.     rts
  288.  
  289. MMove:    cmp.b    #0,MMFlag
  290.     beq.L    MMend
  291.     cmp.b    #1,MMFlag
  292.     beq.S    MMup
  293. MMdown:    cmp.w    #0,linenr
  294.     bne.S    MMD1
  295.     move.l    #Mtext1end,MCounter
  296.     move.w    #12,Linenr
  297. MMD1:    move.l    gfxbase,a6
  298.     lea    rastport,a1
  299.     move.w    #0,d0
  300.     move.w    #$ffff,d1
  301.     move.w    #0,d2
  302.     move.w    #11,d3
  303.     move.w    #330,d4
  304.     move.w    #$6a,d5
  305.     jsr    Scrollraster(a6)
  306.     add.b    #1,Mcnt
  307.     cmp.b    #8,Mcnt
  308.     bne.S    MMend2
  309.     jsr    Mscrolldw
  310.     move.b    #0,Mcnt
  311.     bra.S    MMend
  312. MMup:    cmp.w    #12,linenr
  313.     bne.S    MMU1
  314.     move.w    #0,linenr
  315.     move.l    #Mtext1,MCounter
  316. MMU1:    move.l    gfxbase,a6
  317.     lea    rastport,a1
  318.     move.w    #0,d0
  319.     move.w    #1,d1
  320.     move.w    #0,d2
  321.     move.w    #11,d3
  322.     move.w    #330,d4
  323.     move.w    #$6a,d5
  324.     jsr    Scrollraster(a6)
  325.     add.b    #1,Mcnt
  326.     cmp.b    #8,Mcnt
  327.     bne.S    MMend2
  328.     jsr    Mscrollup
  329.     move.b    #0,Mcnt
  330. MMend:    jsr    mousetest
  331.     rts
  332. MMend2:    rts
  333.  
  334. MMFlag:    dc.b    0
  335. MDec:    dc.b    0
  336. MUcount:    dc.b    2
  337. even
  338. MCounter:    blk.l    1,0
  339. Oldmouse:    dc.b    $0,0
  340. Linenr:        dc.w    0
  341.  
  342.  
  343. Ladda:    cmp.b    #'H',Filenr
  344.     beq.L    Scroller
  345.     cmp.b    #'I',Filenr
  346.     beq.L    Scroller
  347.     cmp.b    #'K',Filenr
  348.     beq.L    Scroller
  349.     cmp.b    #'L',Filenr
  350.     beq.L    Scroller    
  351.     jsr    mt_end
  352.     movem.l    d0-d7/a0-a6/sr,-(sp)
  353.     jsr    Loadprint
  354.     cmp.b    #'J',Filenr
  355.     beq.L    Picloader
  356.     jsr    Loader
  357.     jsr    exit
  358.     bclr    #2,$bfe001
  359.     cmp.l    #0,Filehandle
  360.     beq.S    LAquit
  361.     jsr    $020000
  362. LAquit:    movem.l    (sp)+,sr/a0-a6/d0-d7
  363.     bra.L    Return
  364.  
  365. LoadPrint:
  366.     move.l    #20,d7
  367. LPwait:    cmp.b    #$ff,$dff006
  368.     bne    LPwait    
  369.     move.l    gfxbase,a6
  370.     lea    Rastport,a1
  371.     move.w    #-15,d0
  372.     move.w    #0,d1
  373.     move.w    #0,d2
  374.     move.w    #11,d3
  375.     move.w    #330,d4
  376.     move.w    #50,d5
  377.     jsr    scrollraster(a6)
  378.     lea    rastport,a1
  379.     move.l    gfxbase,a6
  380.     move.w    #15,d0
  381.     move.w    #0,d1
  382.     move.w    #0,d2
  383.     move.w    #59,d3
  384.     move.w    #330,d4
  385.     move.w    #$6a,d5
  386.     jsr    scrollraster(a6)
  387.     move.l    gfxbase,a6
  388.     lea     rastport,a1
  389.     move.w    #-2,d0
  390.     move.w    #0,d1
  391.     move.w    #0,d2
  392.     move.w    #51,d3
  393.     move.w    #330,d4
  394.     move.w    #59,d5
  395.     jsr    scrollraster(a6)
  396.     dbra    d7,LPwait
  397.  
  398.     move.l    gfxbase,a6
  399.     lea    rastport,a1
  400.     move.l    #1,d0
  401.     jsr    setapen(a6)
  402.     move.w    #62,d0
  403.     move.w    #57,d1
  404.     jsr    move(a6)
  405.     lea    Loadtext,a0
  406.     move.w    #9,d0
  407.     jsr    text(a6)
  408.     rts    
  409.  
  410. Exit:
  411.     move.l    copptr,a0
  412.     move.l    oldcop,(a0)
  413.     move.l    exec,a6
  414.     move.l    GfxBase,a1
  415.     jsr    CloseLibrary(a6)
  416.     jsr    Permit(a6)
  417.     rts
  418.  
  419. setup:
  420.     move.l    Exec,a6    
  421.     jsr    forbid(a6)
  422.     lea    GrName,a1    
  423.     jsr    OpenLibrary(a6)    
  424.     move.l    d0,GfxBase    
  425.     move.l    d0,a6
  426.     add.l    #$32,d0
  427.     move.l    d0,copptr
  428.     lea    BitMap,a0    
  429.     moveq    #1,d0        
  430.     move.l    #640,d1        
  431.     move.l    #200,d2        
  432.     jsr    InitBitMap(a6)    
  433.     lea    RastPort,a1    
  434.     jsr    InitRastPort(a6)    
  435.     move.l    #BitMap,R_BitMap
  436.  
  437.     move.l    plane1,a0        
  438.     move.l    #$2000,d0    
  439.     move.b    #$00,d1        
  440. cl1:    move.b    d1,(a0)+
  441.     dbf    d0,cl1
  442.     cmp.b    #22,Bmapflag
  443.     beq    cl2
  444.     rts
  445.  
  446. cl2:    move.b    #0,Bmapflag
  447.     move.l    #$2000,d0
  448.     bra.s    cl1
  449.  
  450. setcopper:
  451.     move.l    copptr,a0
  452.     move.l    (a0),oldcop
  453.     move.l    #Copper,(a0)
  454.     rts
  455. Loader:
  456.     move.l    Exec,a6
  457.     lea    dosname(pc),a1
  458.     jsr    openlibrary(a6)
  459.     move.l    d0,dosbase
  460.     lea    consolname,a1
  461.     move.l    #1005,d2
  462.     move.l    a1,d1
  463.     move.l    dosbase,a6
  464.     jsr    Open(a6)
  465.     beq.S    exitld
  466.     move.l    d0,Filehandle
  467.     
  468.     move.l    Filehandle,d1
  469.     move.l    #$020000,d2
  470.     move.l    Filesize,d3
  471.     jsr    Read(a6)
  472.     
  473. exitld:
  474.     move.l    Filehandle,d1
  475.     move.l    dosbase,a6
  476.     jsr    Close(a6)
  477.     move.l    dosbase,a1
  478.     move.l    Exec,a6
  479.     jsr    Closelibrary(a6)
  480.     rts
  481.  
  482.  
  483. Copper:
  484.     DC.W    $0180,$0000
  485.     DC.W    $0182,$0aaf
  486.     DC.W    $0184,$000f
  487.     DC.W    $00e0
  488. hi1:    DC.W    $0006
  489.     DC.W    $00e2
  490. lo1:    DC.W    $a000
  491.     DC.W    $0100,$1000
  492.     DC.W    $0108,38
  493.     DC.W    $0092,$0030
  494.     DC.W    $0094,$00d0
  495.     DC.W    $008e,$3061
  496.     DC.W    $0090,$fff1
  497. Lazer:    dc.w    $2b01,$fffe,$0180,$0900
  498.     dc.w    $2b11,$fffe,$0180,$0700
  499.     dc.w    $2b21,$fffe,$0180,$0500
  500.     dc.w    $2b31,$fffe,$0180,$0300
  501.     dc.w    $2b41,$fffe,$0180,$0000
  502.     dc.w    $3301,$fffe,$0182,$088c
  503.     dc.w    $3401,$fffe,$0182,$066a
  504.     dc.w    $3501,$fffe,$0182,$0448
  505.     dc.w    $3701,$fffe,$0182,$0000
  506. Lazer2:    dc.w    $3a11,$fffe,$0180,$0300
  507.     dc.w    $3a21,$fffe,$0180,$0500
  508.     dc.w    $3a31,$fffe,$0180,$0700
  509.     dc.w    $3a41,$fffe,$0180,$0900
  510.     dc.w    $3a51,$fffe,$0180,$0000
  511. Rull:    dc.w    $5401,$fffe,$0182,$0112
  512.     dc.w    $5501,$fffe,$0182,$0223
  513.     dc.w    $5601,$fffe,$0182,$0334
  514.     dc.w    $5801,$fffe,$0182,$0445
  515.     dc.w    $5901,$fffe,$0182,$0556
  516.     dc.w    $5a01,$fffe,$0182,$0667
  517.     dc.w    $5b01,$fffe,$0182,$0778
  518.     dc.w    $5c01,$fffe,$0182,$0889
  519.     dc.w    $5d01,$fffe,$0182,$099b
  520.     dc.w    $5f01,$fffe,$0182,$0aac
  521.     dc.w    $6001,$fffe,$0182,$0bbd
  522.     dc.w    $6101,$fffe,$0182,$0fff
  523.     dc.w    $6c01,$fffe,$0182,$0fff
  524.     dc.w    $6d01,$fffe,$0182,$0bbd
  525.     dc.w    $6f01,$fffe,$0182,$0aac
  526.     dc.w    $7001,$fffe,$0182,$099b
  527.     dc.w    $7101,$fffe,$0182,$0889
  528.     dc.w    $7201,$fffe,$0182,$0778
  529.     dc.w    $7301,$fffe,$0182,$0667
  530.     dc.w    $7401,$fffe,$0182,$0556
  531.     dc.w    $7601,$fffe,$0182,$0445
  532.     dc.w    $7701,$fffe,$0182,$0334
  533.     dc.w    $7801,$fffe,$0182,$0223
  534.     dc.w    $7901,$fffe,$0182,$0112
  535.     dc.w    $7a01,$fffe,$0182,$0000
  536.     dc.w    $9e01,$fffe
  537.     dc.w    $0180,$0000
  538.     dc.w    $0182,$010a
  539.     dc.w    $a001,$fffe,$0182,$010a
  540.     dc.w    $a201,$fffe,$0182,$020a
  541.     dc.w    $a401,$fffe,$0182,$030a
  542.     dc.w    $a601,$fffe,$0182,$040a
  543.     dc.w    $a801,$fffe,$0182,$050a
  544.     dc.w    $aa01,$fffe,$0182,$060a
  545.     dc.w    $ac01,$fffe,$0182,$070a
  546.     dc.w    $ae01,$fffe,$0182,$080a
  547.     dc.w    $b001,$fffe,$0182,$091a
  548.     dc.w    $b201,$fffe,$0182,$0a2a
  549.     dc.w    $b401,$fffe,$0182,$0b3a
  550.     dc.w    $b601,$fffe,$0182,$0c4a
  551.     dc.w    $b801,$fffe,$0182,$0d5a
  552.     dc.w    $ba01,$fffe,$0182,$0e6a
  553.     dc.w    $bc01,$fffe,$0182,$0f7a
  554.     dc.w    $be01,$fffe,$0182,$0f8a
  555.     dc.w    $c001,$fffe,$0182,$0f9a
  556.     dc.w    $c201,$fffe,$0182,$0faa
  557.     dc.w    $c401,$fffe,$0182,$0fba
  558.     dc.w    $c601,$fffe,$0182,$0fca
  559.     dc.w    $c801,$fffe,$0182,$0fda
  560.     dc.w    $ca01,$fffe,$0182,$0fea
  561.     dc.w    $cc01,$fffe,$0182,$0ffa
  562.     
  563.     dc.w    $cf01,$fffe,$0180,$0133
  564.     dc.w    $d001,$fffe,$0180,$0256
  565.     dc.w    $d101,$fffe,$0180,$0478
  566.     dc.w    $d201,$fffe,$0180,$069a
  567.     dc.w    $d301,$fffe,$0180,$08bc
  568.     dc.w    $d401,$fffe,$0180,$0000
  569.     dc.w            $0182,$0642
  570.     dc.w    $d601,$fffe,$0182,$0864
  571.     dc.w    $d701,$fffe,$0182,$0a86
  572.     dc.w    $d801,$fffe,$0182,$0ca8
  573.     dc.w    $d901,$fffe,$0182,$0eca
  574.     dc.w    $da01,$fffe,$0182,$0ca8
  575.      dc.w    $db01,$fffe,$0182,$0a86
  576.     dc.w    $dc01,$fffe,$0182,$0864
  577.     dc.w    $dd01,$fffe,$0182,$0642
  578.     dc.w    $e001,$fffe,$0180,$08bc
  579.     dc.w    $e101,$fffe,$0180,$069a
  580.     dc.w    $e201,$fffe,$0180,$0478
  581.     dc.w    $e301,$fffe,$0180,$0256
  582.     dc.w    $e401,$fffe,$0180,$0133
  583.     dc.w    $e501,$fffe,$0180,$0000
  584.     DC.W    $ffff,$fffe
  585.  
  586. ;---- From here follow the needed structures! ----
  587.  
  588. BitMap:
  589. BytesPerRow:     blk.w 1,0
  590. Bytes:        blk.w 1,0
  591. Flags:         blk.b 1,0
  592. Depth:         blk.b 1,0
  593. Pad:          blk.w 1,0
  594. Plane1:        dc.l    $6a000
  595.  
  596. RastPort:    blk.l 1,0
  597. R_BitMap:    blk.l 22,0
  598. even
  599. GrName:        DC.B 'graphics.library',0
  600. Consolname:    dc.b 'df0:music'
  601. Filenr:        dc.b 65,0
  602. Bmapflag:    dc.b    22
  603. even
  604. S1speed:    dc.w 4
  605. S2speed:    dc.w 4
  606.  
  607. Filesize:    dc.l $30000
  608. copptr:        blk.l 1,0
  609. oldcop:        blk.l 1,0
  610. GfxBase:    blk.l 1,0
  611. Filehandle:    blk.l 1,0
  612. Dosbase:    blk.l 1,0
  613. Scroll1cnt:    blk.l 1,0
  614. Scroll2cnt:    blk.l 1,0
  615. Bcnt:        blk.l 1,0
  616. BSin:    dc.b    $ee,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,5,$ff
  617.  
  618. Mtext1:
  619.     dc.b 00,'               '
  620.     dc.b 00,'---------------'
  621.     dc.b 00,'GREETS/CONTACTS'
  622.     dc.b 00,'---------------'
  623.     dc.b 00,'               '
  624.     dc.b 00,'The Music-Lover'
  625.     dc.b 08,'Higher Fields  '
  626.     dc.b 32,'Drivin',$27,'        '
  627.     dc.b 08,'Steel',$27,'n',$27,'Metal  '
  628.     dc.b 12,'Magic Chords   '
  629.     dc.b 28,'No Mercy       '
  630.     dc.b 28,'Too Late       '
  631.  
  632. Mtext1end:    dc.b    0    
  633. Text1: dc.b 'The Mechanical Minds Inc!',$00
  634. Loadtext: dc.b 'LOADING :'
  635. Scrolltext2:    
  636.  
  637. dc.b "      G`day folks                ",10,50
  638. dc.b "Feel very welcome to this new production of ours   :   "
  639. dc.b "The Mechanical Music Collection 1989   ",10,50
  640. dc.b "                           Contact us!                  "
  641. dc.b "                   wrap.                          "
  642. dc.b "                                   Ooops.               "
  643. dc.b "Sorry, I think I forgot something.                      "
  644. dc.b "         Well, shit anyway.                          Look for "
  645. dc.b "our contact address in the upper scrolltext.                   "
  646. dc.b " You won't find any greetings in these scrollers, 'cos we've "
  647. dc.b "got a special screen for that.                               "
  648. dc.b "There is no reason for you to read this scroll, 'cos you won't "
  649. dc.b "benefit from it (© crap jokes inc. 1989), but if you really want to...            "
  650. dc.b "        Behind the keyboard at the moment is                 "
  651. dc.b "     STARRAY                   ",10,50
  652. dc.b "and I've got absolutely nothing to say.              "
  653. dc.b "               Well.                     Maybe.               "
  654. dc.b "      Not really.                   ...But I'll give it a try "
  655. dc.b "anyway.                           I am the #1 Musician of MMI, "
  656. dc.b "the #2 coder, the #2 swapper and the (currently) #1 GFX-man. "
  657. dc.b "               But...    What are the other guys doing then?  "
  658. dc.b "            Not very much, really.                      ...and "
  659. dc.b "then a few words about this cute little disk.                "
  660. dc.b "         I did all the music, of course, and I also coded the "
  661. dc.b "music-player-demo.                    The intro now active was "
  662. dc.b "coded by ROZZ, and the GFX on the Greetpage was drawn by   "
  663. dc.b " - me?              Yes.                              "
  664. dc.b "            Well,  now I have "
  665. dc.b "nothing more to say...                         "
  666. dc.b "              nothing?            "
  667. dc.b "      ",10,50,"       yes..                     erm.        "
  668. dc.b "             well, of course "
  669. dc.b "I could write a few more lines if you want to.....        "
  670. dc.b "         No?              "
  671. dc.b "        Ok,   I'll hand over the keyboard to somebody else then"
  672. dc.b ".                             But to whom ???               "
  673. dc.b "                                                     "
  674. dc.b "Right, Diz is....                         LORD FREDDY        "
  675. dc.b "        ",10,20,"behind the keys.                 "
  676. dc.b "  I finally got"
  677. dc.b " a chance to tear away the keybord from our #1 ego-tripper "
  678. dc.b "(© Indiscrete Insinuations Inc.)                       "
  679. dc.b " If you happen to program in C or want to swap VHS then "
  680. dc.b "contact me at our postbox. (mark your packs: Lord Freddy - "
  681. dc.b "MMI)                      "
  682. dc.b "I'm the obnoxious guy in this outfit. They can't "
  683. dc.b "stand me, because I write in C (not assembler!!!),  and I'm "
  684. dc.b "generally much smarter than they are !  (Who`s"
  685. dc.b " an EGOTRIPPER ?????  -Starray)                       "
  686. dc.b "But now...                                 (seriously)   "
  687. dc.b "              ",10,15
  688. dc.b "         Bye Bye, from Lord Freddy !!!!!        "
  689. dc.b " I'm now handing"
  690. dc.b " over the keybord to the 64-Lamer next to me : The Dealer "
  691. dc.b '                                                            '
  692. dc.b 'Thank you, Lord Freddi.          Contact me for fast swapping'
  693. dc.b ' and modemtrading at 2400 baud on C64.           Write to the'
  694. dc.b ' box, mark' 
  695. dc.b ' the package The Dealer/MMI/C64.                           '
  696. dc.b 'I bet all you Amigaowners' 
  697. dc.b ' would sell your souls to get a C64 contact.....             '
  698. dc.b '               '
  699. dc.b ' Special greets go to : KORODORO            '
  700. dc.b '                                                        '
  701. dc.b ' Well, that was our only C64 member speaking.     And that was '
  702. dc.b 'all C64 text in this scroll as well...                 '
  703. dc.b '                                '
  704. dc.b ' This is the coder of this simple thing at the keyboard '
  705. dc.b '                 --  Rozz  --                ',10,50
  706. dc.b 'Shit, I cant find out anything to write here!!                 '
  707. dc.b ' I`d better write something...                                 '
  708. dc.b ' SOMETHING - SOMETHING - SOMETHING - SOMETHING - SOMETHING - '
  709. DC.B 'SOMETHING. Yeah, thus the ultimate message is written. '
  710. dc.b '                                   I`m the mainswapper of'
  711. dc.b ' our group, and if you are a '
  712. dc.b 'fast, reliable, intelligent, cool and experienced coder or/and '
  713. dc.b 'swapper then contact me, Rozz!                       '
  714. dc.b 'Soon also modemtrading!!       '
  715. dc.b '      NOTE: To all lameurs!  Your stuff MUSTN`T be older '
  716. dc.b 'than 13 days!! (13 means bad luck, y`know)              '
  717. dc.b 'But sure... Send your old disks to us anyway!         My dog '
  718. dc.b 'LOVES old disks...             '      
  719. dc.b '                                                              '
  720. dc.b 'Some personal messages go to :                 '
  721. dc.b ' Marc  -  Yoho, what',$27,'s up?  '
  722. dc.b ' Anymore sendings this year?                '
  723. dc.b '    Nigel  -  Is it fun to walk '
  724. dc.b 'upsidedown all the time (© Crap Jokes Inc.) ??? Send me your '
  725. dc.b 'first demo when it',$27,'s finished.                '
  726. dc.b 'N-C-A of Bahrain Cracking Group  -  Send us some extradrives !!'
  727. dc.b '!                                     Mert   -  When`s your '
  728. dc.b 'copyparty?                         TIT  -  We`ve got some gree'
  729. dc.b 'tings to Terry     :  Blahglug burglafsapr agfacolorabsolha '
  730. dc.b '      Would you please pass him our message!               '
  731. dc.b '                        And now, ladies and gentlemen, there '
  732. dc.b 'is nothing left but .....                                   '
  733. dc.b '          THE END!                  ',10,$ff,10,$ff,'     '
  734. dc.b '                 wrap.                                      '
  735. dc.b $00,$00
  736.  
  737. Scrolltext:
  738.  
  739. dc.b "       ",10,$ff,10,$ff,10,$ff,10,$ff
  740. dc.b 'Write to:                 '
  741. dc.b "        The Mechanical Minds HQ          ",10,$a0
  742. dc.b '                    P.O.Box 19                 ',10,$a0
  743. dc.b '                  SF-65381 VASA                ',10,$a0
  744. dc.b '                      FINLAND                   ',10,$a0
  745. dc.b '                                                       '
  746. dc.b '      The music is the important thing in this demo, so theref'
  747. dc.b 'ore we didn`t spend too much time writing the loader.       '
  748. dc.b '                                             '
  749. dc.b ' If you consider this intro too lame, please also consider that we '
  750. dc.b 'both (Starray&Rozz) started learning machine-code less than '
  751. dc.b '6 weeks ago.                                               '
  752. dc.b 'Don`t panic when the screen goes black after loading a tune.  '
  753. dc.b '        It`s just the cruncher doing it`s work.               '
  754. dc.b '                                    '
  755. dc.b ' NOTE:          '
  756. dc.b ' There are some bugged versions of this disk circulating.      '
  757. dc.b '                    '
  758. dc.b ' If you ever get one of them, please send this disk to the guy'
  759. dc.b ' you got the bugged version from. OK??                        ' 
  760. dc.b '                    '
  761. dc.b ' And now...                 Let`s restart the scroller...     '
  762. dc.b '                                                              '
  763. dc.b '                        wrap                     ' 
  764. dc.b '                                                      '
  765. dc.b $00,$00
  766. Dosname:
  767.     dc.b    `dos.library`,0,0
  768.     even
  769.  
  770. wrast:    cmp.b    #$ff,$dff006
  771.     bne.S    wrast
  772.     movem.l    d0-d7/a0-a6/sp,-(a7)
  773.     jsr    mt_music
  774.     movem.l    (a7)+,d0-d7/a0-a6/sp
  775.     rts
  776.  
  777. Picloader:
  778.     move.l    Exec,a6
  779.     lea    dosname(pc),a1
  780.     jsr    openlibrary(a6)
  781.     move.l    d0,dosbase
  782.     move.l    #PicFilename,d1
  783.     move.l    #1005,d2
  784.     move.l    dosbase,a6
  785.     jsr    open(a6)
  786.     move.l    d0,Filehandle
  787.     
  788.     move.l    Filehandle,d1
  789.     move.l    #$03d4b4,d2
  790.     move.l    #64344,d3
  791.     move.l    dosbase,a6
  792.     jsr    Read(a6)
  793.     
  794.     move.l    Filehandle,d1
  795.     move.l    dosbase,a6
  796.     jsr    Close(a6)
  797.     move.l    dosbase,a1
  798.     move.l    Exec,a6
  799.     jsr    Closelibrary(a6)
  800.     jsr    Exit
  801.     jsr    $03d4b4
  802.     bra.L    LAquit    
  803.  
  804. PicFilename: dc.b `Df0:Greetload`,0
  805.     even
  806.  
  807. ; -----------------------------------------------
  808. ; ------- Soundtracker V2.4 - playroutine -------
  809. ; -----------------------------------------------
  810.  
  811. ; call 'mt_init' to initialize the playroutine
  812.  
  813. mt_init:lea    mt_data,a0
  814.     add.l    #$03b8,a0
  815.     moveq    #$7f,d0
  816.     moveq    #0,d1
  817. mt_init1:
  818.     move.l    d1,d2
  819.     subq.w    #1,d0
  820. mt_init2:
  821.     move.b    (a0)+,d1
  822.     cmp.b    d2,d1
  823.     bgt.s    mt_init1
  824.     dbf    d0,mt_init2
  825.     addq.b    #1,d2
  826.  
  827. mt_init3:
  828.     lea    mt_data,a0
  829.     lea    mt_sample1(pc),a1
  830.     asl.l    #8,d2
  831.     asl.l    #2,d2
  832.     add.l    #$438,d2
  833.     add.l    a0,d2
  834.     moveq    #$1e,d0
  835. mt_init4:
  836.     move.l    d2,(a1)+
  837.     moveq    #0,d1
  838.     move.w    42(a0),d1
  839.     asl.l    #1,d1
  840.     add.l    d1,d2
  841.     add.l    #$1e,a0
  842.     dbf    d0,mt_init4
  843.  
  844.     lea    mt_sample1(PC),a0
  845.     moveq    #0,d0
  846. mt_clear:
  847.     move.l    (a0,d0.w),a1
  848.     clr.l    (a1)
  849.     addq.w    #4,d0
  850.     cmp.w    #$7c,d0
  851.     bne.s    mt_clear
  852.  
  853.     clr.w    $dff0a8
  854.     clr.w    $dff0b8
  855.     clr.w    $dff0c8
  856.     clr.w    $dff0d8
  857.     clr.l    mt_partnrplay
  858.     clr.l    mt_partnote
  859.     clr.l    mt_partpoint
  860.     move.b    mt_data+$3b6,mt_maxpart+1
  861.     rts
  862.  
  863. ; call 'mt_end' to switch the sound off
  864.  
  865. mt_end:    clr.w    $dff0a8
  866.     clr.w    $dff0b8
  867.     clr.w    $dff0c8
  868.     clr.w    $dff0d8
  869.     move.w    #$f,$dff096
  870.     rts
  871.  
  872. ; the playroutine - call this every frame
  873.  
  874. mt_music:
  875.     addq.w    #1,mt_counter
  876. mt_cool:cmp.w    #6,mt_counter
  877.     bne.s    mt_notsix
  878.     clr.w    mt_counter
  879.     bra.L    mt_rout2
  880.  
  881. mt_notsix:
  882.     lea    mt_aud1temp(PC),a6
  883.     tst.b    3(a6)
  884.     beq.s    mt_arp1
  885.     lea    $dff0a0,a5        
  886.     bsr.s    mt_arprout
  887. mt_arp1:lea    mt_aud2temp(PC),a6
  888.     tst.b    3(a6)
  889.     beq.s    mt_arp2
  890.     lea    $dff0b0,a5
  891.     bsr.s    mt_arprout
  892. mt_arp2:lea    mt_aud3temp(PC),a6
  893.     tst.b    3(a6)
  894.     beq.s    mt_arp3
  895.     lea    $dff0c0,a5
  896.     bsr.s    mt_arprout
  897. mt_arp3:lea    mt_aud4temp(PC),a6
  898.     tst.b    3(a6)
  899.     beq.s    mt_arp4
  900.     lea    $dff0d0,a5
  901.     bra.s    mt_arprout
  902. mt_arp4:rts
  903.  
  904. mt_arprout:
  905.     move.b    2(a6),d0
  906.     and.b    #$0f,d0
  907.     tst.b    d0
  908.     beq.L    mt_arpegrt
  909.     cmp.b    #$01,d0
  910.     beq.s    mt_portup
  911.     cmp.b    #$02,d0
  912.     beq.s    mt_portdwn
  913.     cmp.b    #$0a,d0
  914.     beq.s    mt_volslide
  915.     rts
  916.  
  917. mt_portup:
  918.     moveq    #0,d0
  919.     move.b    3(a6),d0
  920.     sub.w    d0,22(a6)
  921.     cmp.w    #$71,22(a6)
  922.     bpl.s    mt_ok1
  923.     move.w    #$71,22(a6)
  924. mt_ok1:    move.w    22(a6),6(a5)
  925.     rts
  926.  
  927. mt_portdwn:
  928.     moveq    #0,d0
  929.     move.b    3(a6),d0
  930.     add.w    d0,22(a6)
  931.     cmp.w    #$538,22(a6)
  932.     bmi.s    mt_ok2
  933.     move.w    #$538,22(a6)
  934. mt_ok2:    move.w    22(a6),6(a5)
  935.     rts
  936.  
  937. mt_volslide:
  938.     moveq    #0,d0
  939.     move.b    3(a6),d0
  940.     lsr.b    #4,d0
  941.     tst.b    d0
  942.     beq.s    mt_voldwn
  943.     add.w    d0,18(a6)
  944.     cmp.w    #64,18(a6)
  945.     bmi.s    mt_ok3
  946.     move.w    #64,18(a6)
  947. mt_ok3:    move.w    18(a6),8(a5)
  948.     rts
  949. mt_voldwn:
  950.     moveq    #0,d0
  951.     move.b    3(a6),d0
  952.     and.b    #$0f,d0
  953.     sub.w    d0,18(a6)
  954.     bpl.s    mt_ok4
  955.     clr.w    18(a6)
  956. mt_ok4:    move.w    18(a6),8(a5)
  957.     rts
  958.  
  959. mt_arpegrt:
  960.     move.w    mt_counter(PC),d0
  961.     cmp.w    #1,d0
  962.     beq.s    mt_loop2
  963.     cmp.w    #2,d0
  964.     beq.s    mt_loop3
  965.     cmp.w    #3,d0
  966.     beq.s    mt_loop4
  967.     cmp.w    #4,d0
  968.     beq.s    mt_loop2
  969.     cmp.w    #5,d0
  970.     beq.s    mt_loop3
  971.     rts
  972.  
  973. mt_loop2:
  974.     moveq    #0,d0
  975.     move.b    3(a6),d0
  976.     lsr.b    #4,d0
  977.     bra.s    mt_cont
  978. mt_loop3:
  979.     moveq    #$00,d0
  980.     move.b    3(a6),d0
  981.     and.b    #$0f,d0
  982.     bra.s    mt_cont
  983. mt_loop4:
  984.     move.w    16(a6),d2
  985.     bra.s    mt_endpart
  986. mt_cont:
  987.     add.w    d0,d0
  988.     moveq    #0,d1
  989.     move.w    16(a6),d1
  990.     and.w    #$fff,d1
  991.     lea    mt_arpeggio(PC),a0
  992. mt_loop5:
  993.     move.w    (a0,d0),d2
  994.     cmp.w    (a0),d1
  995.     beq.s    mt_endpart
  996.     addq.l    #2,a0
  997.     bra.s    mt_loop5
  998. mt_endpart:
  999.     move.w    d2,6(a5)
  1000.     rts
  1001.  
  1002. mt_rout2:
  1003.     lea    mt_data,a0
  1004.     move.l    a0,a3
  1005.     add.l    #$0c,a3
  1006.     move.l    a0,a2
  1007.     add.l    #$3b8,a2
  1008.     add.l    #$43c,a0
  1009.     move.l    mt_partnrplay(PC),d0
  1010.     moveq    #0,d1
  1011.     move.b    (a2,d0),d1
  1012.     asl.l    #8,d1
  1013.     asl.l    #2,d1
  1014.     add.l    mt_partnote(PC),d1
  1015.     move.l    d1,mt_partpoint
  1016.     clr.w    mt_dmacon
  1017.  
  1018.     lea    $dff0a0,a5
  1019.     lea    mt_aud1temp(PC),a6
  1020.     bsr.L    mt_playit
  1021.     lea    $dff0b0,a5
  1022.     lea    mt_aud2temp(PC),a6
  1023.     bsr.L    mt_playit
  1024.     lea    $dff0c0,a5
  1025.     lea    mt_aud3temp(PC),a6
  1026.     bsr.L    mt_playit
  1027.     lea    $dff0d0,a5
  1028.     lea    mt_aud4temp(PC),a6
  1029.     bsr.L    mt_playit
  1030.     move.w    #$01f4,d0
  1031. mt_rls:    dbf    d0,mt_rls
  1032.  
  1033.     move.w    #$8000,d0
  1034.     or.w    mt_dmacon,d0
  1035.     move.w    d0,$dff096
  1036.  
  1037.     lea    mt_aud4temp(PC),a6
  1038.     cmp.w    #1,14(a6)
  1039.     bne.s    mt_voice3
  1040.     move.l    10(a6),$dff0d0
  1041.     move.w    #1,$dff0d4
  1042. mt_voice3:
  1043.     lea    mt_aud3temp(PC),a6
  1044.     cmp.w    #1,14(a6)
  1045.     bne.s    mt_voice2
  1046.     move.l    10(a6),$dff0c0
  1047.     move.w    #1,$dff0c4
  1048. mt_voice2:
  1049.     lea    mt_aud2temp(PC),a6
  1050.     cmp.w    #1,14(a6)
  1051.     bne.s    mt_voice1
  1052.     move.l    10(a6),$dff0b0
  1053.     move.w    #1,$dff0b4
  1054. mt_voice1:
  1055.     lea    mt_aud1temp(PC),a6
  1056.     cmp.w    #1,14(a6)
  1057.     bne.s    mt_voice0
  1058.     move.l    10(a6),$dff0a0
  1059.     move.w    #1,$dff0a4
  1060. mt_voice0:
  1061.     move.l    mt_partnote(PC),d0
  1062.     add.l    #$10,d0
  1063.     move.l    d0,mt_partnote
  1064.     cmp.l    #$400,d0
  1065.     bne.s    mt_stop
  1066. mt_higher:
  1067.     clr.l    mt_partnote
  1068.     addq.l    #1,mt_partnrplay
  1069.     moveq    #0,d0
  1070.     move.w    mt_maxpart(PC),d0
  1071.     move.l    mt_partnrplay(PC),d1
  1072.     cmp.l    d0,d1
  1073.     bne.s    mt_stop
  1074.     clr.l    mt_partnrplay
  1075. mt_stop:tst.w    mt_status
  1076.     beq.s    mt_stop2
  1077.     clr.w    mt_status
  1078.     bra.s    mt_higher
  1079. mt_stop2:
  1080.     rts
  1081.  
  1082. mt_playit:
  1083.     move.l    (a0,d1.l),(a6)
  1084.     addq.l    #4,d1
  1085.     moveq    #0,d2
  1086.     move.b    2(a6),d2
  1087.     and.b    #$f0,d2
  1088.     lsr.b    #4,d2
  1089.  
  1090.     move.b    (a6),d0
  1091.     and.b    #$f0,d0
  1092.     or.b    d0,d2
  1093.     tst.b    d2
  1094.     beq.s    mt_nosamplechange
  1095.  
  1096.     moveq    #0,d3
  1097.     lea    mt_samples(PC),a1
  1098.     move.l    d2,d4
  1099.     asl.l    #2,d2
  1100.     mulu    #$1e,d4
  1101.     move.l    (a1,d2),4(a6)
  1102.     move.w    (a3,d4.l),8(a6)
  1103.     move.w    2(a3,d4.l),18(a6)
  1104.     move.w    4(a3,d4.l),d3
  1105.     tst.w    d3
  1106.     beq.s    mt_displace
  1107.     move.l    4(a6),d2
  1108.     add.l    d3,d2
  1109.     move.l    d2,4(a6)
  1110.     move.l    d2,10(a6)
  1111.     move.w    6(a3,d4.l),8(a6)
  1112.     move.w    6(a3,d4.l),14(a6)
  1113.     move.w    18(a6),8(a5)
  1114.     bra.s    mt_nosamplechange
  1115.  
  1116. mt_displace:
  1117.     move.l    4(a6),d2
  1118.     add.l    d3,d2
  1119.     move.l    d2,10(a6)
  1120.     move.w    6(a3,d4.l),14(a6)
  1121.     move.w    18(a6),8(a5)
  1122. mt_nosamplechange:
  1123.     move.w    (a6),d0
  1124.     and.w    #$fff,d0
  1125.     tst.w    d0
  1126.     beq.s    mt_retrout
  1127.     move.w    (a6),16(a6)
  1128.     move.w    20(a6),$dff096
  1129.     move.l    4(a6),(a5)
  1130.     move.w    8(a6),4(a5)
  1131.     move.w    (a6),d0
  1132.     and.w    #$fff,d0
  1133.     move.w    d0,6(a5)
  1134.     move.w    20(a6),d0
  1135.     or.w    d0,mt_dmacon
  1136.  
  1137. mt_retrout:
  1138.     tst.w    (a6)
  1139.     beq.s    mt_nonewper
  1140.     move.w    (a6),22(a6)
  1141.  
  1142. mt_nonewper:
  1143.     move.b    2(a6),d0
  1144.     and.b    #$0f,d0
  1145.     cmp.b    #$0b,d0
  1146.     beq.s    mt_posjmp
  1147.     cmp.b    #$0c,d0
  1148.     beq.s    mt_setvol
  1149.     cmp.b    #$0d,d0
  1150.     beq.s    mt_break
  1151.     cmp.b    #$0e,d0
  1152.     beq.s    mt_setfil
  1153.     cmp.b    #$0f,d0
  1154.     beq.s    mt_setspeed
  1155.     rts
  1156.  
  1157. mt_posjmp:
  1158.     not.w    mt_status
  1159.     moveq    #0,d0
  1160.     move.b    3(a6),d0
  1161.     subq.b    #1,d0
  1162.     move.l    d0,mt_partnrplay
  1163.     rts
  1164.  
  1165. mt_setvol:
  1166.     move.b    3(a6),8(a5)
  1167.     rts
  1168.  
  1169. mt_break:
  1170.     not.w    mt_status
  1171.     rts
  1172.  
  1173. mt_setfil:
  1174.     moveq    #0,d0
  1175.     move.b    3(a6),d0
  1176.     and.b    #1,d0
  1177.     rol.b    #1,d0
  1178.     and.b    #$fd,$bfe001
  1179.     or.b    d0,$bfe001
  1180.     rts
  1181.  
  1182. mt_setspeed:
  1183.     move.b    3(a6),d0
  1184.     and.b    #$0f,d0
  1185.     beq.s    mt_back
  1186.     clr.w    mt_counter
  1187.     move.b    d0,mt_cool+3
  1188. mt_back:rts
  1189.  
  1190. mt_aud1temp:
  1191.     blk.w    10,0
  1192.     dc.w    1
  1193.     blk.w    2,0
  1194. mt_aud2temp:
  1195.     blk.w    10,0
  1196.     dc.w    2
  1197.     blk.w    2,0
  1198. mt_aud3temp:
  1199.     blk.w    10,0
  1200.     dc.w    4
  1201.     blk.w    2,0
  1202. mt_aud4temp:
  1203.     blk.w    10,0
  1204.     dc.w    8
  1205.     blk.w    2,0
  1206.  
  1207. mt_partnote:    dc.l    0
  1208. mt_partnrplay:    dc.l    0
  1209. mt_counter:    dc.w    0
  1210. mt_partpoint:    dc.l    0
  1211. mt_samples:    dc.l    0
  1212. mt_sample1:    blk.l    31,0
  1213. mt_maxpart:    dc.w    0
  1214. mt_dmacon:    dc.w    0
  1215. mt_status:    dc.w    0
  1216.  
  1217. mt_arpeggio:
  1218.     dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c
  1219.     dc.w $023a,$021a,$01fc,$01e0,$01c5,$01ac,$0194,$017d
  1220.     dc.w $0168,$0153,$0140,$012e,$011d,$010d,$00fe,$00f0
  1221.     dc.w $00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097
  1222.     dc.w $008f,$0087,$007f,$0078,$0071,$0000,$0000,$0000
  1223.  
  1224. mt_data:    blk.b    33008,0    ;the first value represents the length
  1225.                 ;of the module
  1226.  
  1227.  
  1228.  
  1229.