home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / Source / ANALECTS.LHA / Analect / Includes / Main_Include.S < prev    next >
Encoding:
Text File  |  1980-01-08  |  17.7 KB  |  1,051 lines

  1. openlibrary    =    -408
  2. closelibrary    =    -414
  3. execbase    =    4
  4. reservemem    =    -198
  5. freemem        =    -210
  6.  
  7. disable        =    -120
  8. enable        =    -126
  9.  
  10. io        =    -462 
  11.  
  12. numberofbobs    =    54
  13.  
  14. bds        =    44
  15.  
  16. mouseymax    =    options*8 
  17.  
  18. bobwidth    =    8
  19.  
  20. imagepointer    =    4
  21. width        =    8
  22. height        =    12
  23. xpos        =    16
  24. ypos        =    20
  25. wxpos        =    24
  26. shift        =    28
  27. sinepointer    =    40
  28.  
  29. wtl        =    1
  30.  
  31. numberofstars    =    102
  32.  
  33. wb:    macro
  34.     btst    #14,$dff002.l
  35. ..ty    btst    #14,$dff002.l
  36.     bne    ..ty
  37.     endm
  38.  
  39. getbob:    macro
  40.     move.l    bd,a6
  41.     move.l    bobnum,d0
  42.     mulu.w    #bds,d0
  43.     adda.l    d0,a6
  44.     endm
  45.     
  46. start:
  47.     jsr    setup
  48.     jsr    mainloop
  49.     jsr    closedown
  50.     jsr    mt_end
  51.  
  52.     move.l    #50,d0
  53. waiting:
  54.     cmp.b    #200,$dff006
  55.     bne.s    waiting
  56. waiting2:
  57.     cmp.b    #201,$dff006
  58.     bne.s    waiting2
  59.     dbra    d0,waiting
  60.  
  61.     lea    dosname,a1
  62.     moveq.l    #0,d0
  63.     move.l    execbase,a6
  64.     jsr    openlibrary(a6)
  65.     move.l    d0,dosbase
  66.  
  67.     moveq.l    #0,d0
  68.     move.w    ycount,d0
  69.     divu    #8,d0
  70.     and.l    #$0000ffff,d0
  71.     lea    filenames,a0
  72.     mulu    #4,d0
  73.     
  74.     lea    (a0,d0),a0
  75.     
  76.     move.l    (a0),d1
  77.     moveq.l    #0,d2
  78.     moveq.l    #0,d3
  79.     
  80.     move.l    dosbase,a6
  81.     jsr    -222(a6)
  82.  
  83.     move.l    execbase,a6
  84.     move.l    dosbase,a1
  85.     jsr    closelibrary(a6)
  86.     moveq.l    #0,d0
  87.     rts
  88.  
  89. setup:
  90.     move.l    execbase,a6
  91.     
  92.     lea    gfxname,a1
  93.     moveq.l    #0,d0
  94.     jsr    openlibrary(a6)
  95.     move.l    d0,a1    
  96.     move.l    d0,gfxbase
  97.     move.l    38(a1),systemcop
  98.  
  99.     jsr    reservebobdatas
  100.  
  101.     move.l    execbase,a6
  102.  
  103.     move.l    #280*40,d0
  104.     move.l    #$10002,d1
  105.     jsr    reservemem(a6)
  106.     move.l    d0,plane
  107.     
  108.     move.l    #280*40,d0
  109.     move.l    #$10002,d1
  110.     jsr    reservemem(a6)
  111.     move.l    d0,plane2
  112.  
  113.     move.l    #280*40,d0
  114.     move.l    #$10002,d1
  115.     jsr    reservemem(a6)
  116.     move.l    d0,transplane
  117.  
  118.     move.l    #280*40,d0
  119.     move.l    #$10002,d1
  120.     jsr    reservemem(a6)
  121.     move.l    d0,transplane2
  122.  
  123.     move.l    #280*40,d0
  124.     move.l    #$10002,d1
  125.     jsr    reservemem(a6)
  126.     move.l    d0,transplane3
  127.  
  128.     move.l    #280*40,d0
  129.     move.l    #$10002,d1
  130.     jsr    reservemem(a6)
  131.     move.l    d0,transplane4
  132.     
  133.     move.l    plane,destination
  134.  
  135.     move.l    transplane,a0
  136.     move.l    transplane2,a1
  137.     add.l    #120,a0
  138.     move.l    #205,d1
  139.     adda.l    #141,a1
  140. .anotherline
  141.     move.b    #$80,(a1)
  142.     move.b    #1,18(a1)
  143.     adda.l    #40,a1
  144.     adda.l    #21,a0
  145.     move.l    #18,d0
  146. .anotherbyte:
  147.     move.b    #$ff,(a0)+
  148.     dbra    d0,.anotherbyte
  149.     dbra    d1,.anotherline
  150.     
  151.     move.l    #18,d0
  152. .a:
  153.     move.b    #$ff,(a1)+
  154.     dbra    d0,.a
  155.  
  156.     move.l    transplane2,a1
  157.     add.l    #101,a1
  158.     move.l    #18,d0
  159. .by:    move.b    #$ff,(a1)+
  160.     dbra    d0,.by
  161.  
  162.     jsr    drawoptions
  163.  
  164.     move.l    #sprite0,d0
  165.     move.w    d0,sprites+6
  166.     swap    d0
  167.     move.w    d0,sprites+2
  168.  
  169.     lea    planes,a0
  170.     move.l    plane2,d0
  171.     move.w    d0,6(a0)
  172.     swap    d0
  173.     move.w    d0,2(a0)
  174.  
  175.     lea    8(a0),a0
  176.  
  177.     move.l    transplane,d0
  178.     lea    planes+10,a0
  179.     move.w    d0,4(a0)
  180.     swap    d0
  181.     move.w    d0,(a0)
  182.  
  183.     move.l    transplane2,d0
  184.     lea    planes+18,a0
  185.     move.w    d0,4(a0)
  186.     swap    d0
  187.     move.w    d0,(a0)
  188.  
  189.     move.l    transplane3,d0
  190.     lea    planes+26,a0
  191.     move.w    d0,4(a0)
  192.     swap    d0
  193.     move.w    d0,(a0)
  194.     
  195.     move.l    transplane4,d0
  196.     lea    planes+34,a0
  197.     move.w    d0,4(a0)
  198.     swap    d0
  199.     move.w    d0,(a0)
  200.  
  201.     move.l    bobdata_1,bd
  202.  
  203.     move.l    #numberofbobs-1,d6
  204. .another2:
  205.     getbob
  206.     jsr    getoffset
  207.     dbra    d6,.another2
  208.  
  209.     lea    picplanes+2,a0
  210.     lea    plist,a1
  211.     move.l    #3,d0
  212. .anotherplane:
  213.     move.l    (a1)+,d1
  214.     move.w    d1,4(a0)
  215.     swap    d1
  216.     move.w    d1,(a0)
  217.     addq.l    #8,a0
  218.     dbra    d0,.anotherplane
  219.  
  220.     move.l    execbase,a6
  221.  
  222.     jsr    disable(a6)
  223.  
  224.     move.w    $dff01c,oldint
  225.     move.w    $dff01e,intreqr
  226.     move.w    $dff002,olddma
  227.  
  228.     move.w    #$7fff,$dff096
  229.     move.w    #$7fff,$dff09a
  230.     move.w    #$7fff,$dff09c
  231. ;    move.b    $bfed01,oldcia
  232.     move.b    #$7f,$bfed01
  233.  
  234.     move.l    $6c,oldinterrupt
  235.     move.l    #newint,$6c
  236.     move.l    $68,old2
  237.     move.l    #new2,$68
  238.     
  239.     move.w    #$C028,$dff09a
  240.  
  241.     move.l    #copperlist,$dff080
  242.  
  243.     move.w    #%1000011111100000,$dff096
  244.  
  245.     rts    
  246.  
  247. waitsec:
  248. .w1:    cmp.b    #200,$dff006
  249.     bne    .w1
  250. .w2:    cmp.b    #201,$dff006
  251.     bne    .w2
  252.     dbra    d0,.w1
  253.     rts
  254.     
  255. reservebobdatas:
  256.     move.l    execbase,a6
  257.     move.l    #bobdataend-bobdatastart,d0
  258.     move.l    #$10002,d1
  259.     jsr    reservemem(a6)
  260.  
  261.     move.l    d0,bobdata_1
  262.     move.l    #bobdataend-bobdatastart,d0
  263.     move.l    #$10002,d1
  264.     jsr    reservemem(a6)
  265.     move.l    d0,bobdata_2
  266.     
  267.     move.l    bobdata_1,a0
  268.     move.l    bobdata_2,a1
  269.     Lea    bobdatastart,a2
  270.     move.l    #bobdataend-bobdatastart,d0
  271.     subq.l    #1,d0
  272. .another:
  273.     move.b    (a2),(a0)+
  274.     move.b    (a2)+,(a1)+
  275.     dbra    d0,.another
  276.     rts
  277.  
  278. drawmaintext:
  279.     cmp.l    #0,clearflag
  280.     bne    .finished
  281.     add.l    #1,waittime
  282.     cmp.l    #wtl,waittime
  283.     blt    .finished
  284.     move.l    #0,waittime
  285.     move.l    transplane4,a0
  286.     adda.l    texty,a0
  287.     adda.l    textx,a0
  288.     adda.l    #120,a0
  289.     lea    maintxt,a1
  290.     adda.l    letter,a1
  291.     add.l    #1,letter
  292.     moveq.l    #0,d1
  293. .anotherletter:
  294.     moveq.l    #0,d0
  295.     move.b    (a1)+,d0
  296.     cmp.b    #13,d0
  297.     beq    .return
  298.     cmp.b    #0,d0
  299.     beq    .resettxt
  300.     cmp.b    #8,d0
  301.     beq    .setclearflag
  302.     cmp.b    #65,d0
  303.     blt    .normal
  304. .normal:
  305.     sub.b    #32,d0
  306.     lea    bigfont,a2
  307.     adda.l    d0,a2
  308.     move.l    #15,d0
  309.     add.l    #1,d1
  310. .anotherline:
  311.     move.b    (a2),(a0)
  312. ;    move.b    58(a2),(a0)
  313.     adda.l    #80,a2
  314.     adda.l    #40,a0
  315.     dbra    d0,.anotherline
  316.     suba.l    #639,a0
  317.     add.l    #1,textx
  318.     bra    .finished
  319. .return:suba.l    d1,a0
  320.     moveq.l    #0,d1
  321.     adda.l    #640,a0
  322.     move.l    #0,textx
  323.     add.l    #640,texty
  324. .finished:
  325.     rts
  326.  
  327. .setclearflag:
  328.     move.l    #1,clearflag
  329.     move.l    #0,textx
  330.     move.l    #0,texty
  331.     rts
  332.  
  333. .resettxt:
  334.     move.l    #0,letter
  335.     move.l    #0,textx
  336.     move.l    #0,texty
  337.     move.l    #0,clearflag
  338.     rts
  339.     
  340. drawoptions:
  341.     move.l    transplane3,a0
  342.     adda.l    #222,a0
  343.     lea    opstxt,a1
  344. .anotherletter:
  345.     moveq.l    #0,d0
  346.     move.b    (a1)+,d0
  347.     cmp.b    #13,d0
  348.     beq    .return
  349.     cmp.b    #0,d0
  350.     beq    .finished
  351.     cmp.b    #65,d0
  352.     blt    .normal
  353. .normal:
  354.     sub.b    #32,d0
  355.     lea    font,a2
  356.     adda.l    d0,a2
  357.     move.l    #7,d0
  358. .anotherline:
  359.     move.b    (a2),(a0)
  360.     adda.l    #80,a2
  361.     adda.l    #40,a0
  362.     dbra    d0,.anotherline
  363.     suba.l    #319,a0
  364.     bra    .anotherletter
  365. .return:adda.l    #303,a0
  366.     bra    .anotherletter
  367. .finished:
  368.     jsr    mt_init
  369.     rts
  370.     
  371. new2:
  372.     move.w    #$8,$dff09c
  373.     rte
  374.  
  375. switchscreens:
  376.     btst    #0,flag    
  377.     bne    .drawonsecond
  378.     move.l    plane,d0
  379.     move.l    plane2,destination
  380.     move.l    bobdata_2,bd
  381.     bra    .done
  382. .drawonsecond:    
  383.     move.l    plane2,d0    
  384.     move.l    plane,destination
  385.     move.l    bobdata_1,bd
  386. .done
  387.     move.w    d0,planes+6
  388.     swap    d0
  389.     move.w    d0,planes+2
  390.     rts
  391.  
  392. newint:
  393.     movem.l    d0-d7/a0-a6,-(sp)
  394.     move.b    #$ff,vbl
  395.     move.w    #$20,$dff09c
  396.     movem.l    (sp)+,d0-d7/a0-a6
  397.     rte
  398.     
  399. doflash:
  400.     move.l    #options-1,d0
  401.     lea    flashlist,a0
  402. .anotheroption:
  403.     move.l    (a0)+,a1
  404.     move.w    #nsel,6(a1)
  405.     move.w    #nsel,$A(a1)
  406.     dbra    d0,.anotheroption    
  407.     moveq.l    #0,d0
  408.     move.w    ycount,d0
  409.     divu    #8,d0
  410.     and.w    #$ffff,d0
  411.     lea    flashlist,a0
  412.     mulu    #4,d0
  413.     adda.l    d0,a0
  414.     move.l    (a0),a0
  415.     lea    flashcolors,a1
  416.     cmp.l    #30,flashcount
  417.     bne    .dontresetcolour
  418.     move.l    #-1,flashcount
  419. .dontresetcolour:
  420.     add.l    #1,flashcount
  421.     move.l    flashcount,d0
  422.     mulu    #2,d0
  423.     adda.l    d0,a1
  424.     move.w    (a1),6(a0)
  425.     move.w    (a1),10(a0)
  426.     rts
  427. vbl:    dc.w    0
  428.  
  429.     
  430. mainloop:
  431. .main:
  432.     jsr    selectoption
  433.     cmp.b    #$ff,vbl
  434.     bne    .main
  435.     btst    #2,$dff016
  436.     beq.s    .skiptext
  437.     jsr    drawmaintext
  438.     jsr    scrollofftext
  439. .skiptext
  440.     move.l    #$ffffffff,$dff044
  441.     move.w    #0,$dff042
  442.     bsr.w    restorebobs
  443.     bsr.w    updateoffsets
  444.     bsr.w    newoffset
  445.     bsr.w    switchscreens
  446.     jsr    doflash
  447.     jsr    movestars
  448.     jsr    mt_music
  449.     move.b    #0,vbl
  450.     eor.b    #1,flag
  451.     btst    #6,$bfe001
  452.     bne    .main
  453.     rts
  454.  
  455. scrollofftext:
  456.     cmp.l    #0,clearflag
  457.     beq    .finished
  458.     add.l    #1,cleartime
  459.     cmp.l    #100,cleartime
  460.     blt    .finished
  461.     cmp.l    #150,cleartime
  462.     beq    .doneclearing
  463.     move.l    transplane4,a0
  464.     adda.l    #8020,a0
  465.     wb
  466.     move.l    #$0fffFFe0,$dff044
  467.     move.w    #$2,$dff042
  468.     move.w    #56,$dff064    
  469.     move.w    #56,$dff066    
  470.     move.l    a0,$dff054    
  471.     move.l    a0,$dff050    
  472.     move.w    #%0100100111110000,$dff040
  473.     move.w    #%0001100100001100,$dff058
  474.     ;      fedcba9876543210
  475.     move.l    transplane4,a0
  476.     adda.l    #40,a0
  477.     btst    #14,$dff002
  478. .wa:    btst    #14,$dff002
  479.     bne    .wa
  480.     move.l    #$00,$dff044
  481.     move.w    #0,$dff042
  482.     move.w    #58,$dff064
  483.     move.w    #58,$dff066
  484.     move.l    a0,$dff054
  485.     move.l    a0,$dff050
  486.     move.w    #%0100100111110000,$dff040
  487.     move.w    #%0001100100001011,$dff058
  488. ;.wa2:    btst    #14,$dff002
  489. ;    bne    .wa2
  490. .finished:
  491.     rts
  492.  
  493. .doneclearing:
  494.     move.l    #0,cleartime
  495.     move.l    #0,clearflag
  496.     rts
  497.  
  498. updateoffsets:
  499.     btst    #0,flag
  500.     beq    .not1
  501.     bra    old2new
  502. .not1:    bra    new2old
  503.  
  504. old2new:
  505.     move.l    bobdata_1,a0
  506.     move.l    bobdata_2,a1
  507.     move.l    #numberofbobs-1,d0
  508.     moveq.l    #0,d2
  509. .another:
  510.     move.l    (a0,d2),(a1,d2)
  511.     add.l    #bds,d2
  512.     dbra    d0,.another
  513.     rts
  514.  
  515. new2old:
  516.     move.l    bobdata_1,a0
  517.     move.l    bobdata_2,a1
  518.     move.l    #numberofbobs-1,d0
  519.     moveq.l    #0,d2
  520. .another:
  521.     move.l    (a1,d2),(a0,d2)
  522.     add.l    #bds,d2
  523.     dbra    d0,.another
  524.     rts
  525.  
  526.  
  527. restorebobs:
  528.     jsr    rest
  529.     rts
  530.     move.l    #numberofbobs-1,d6
  531. .an1
  532.     move.l    d6,bobnum
  533.     jsr    restorebackground
  534.     dbra    d6,.an1
  535.     rts
  536.  
  537. newoffset:
  538.     move.l    #numberofbobs-1,d6
  539. .an3:
  540.     move.l    d6,bobnum
  541.     getbob
  542.     jsr    getoffset
  543.     jsr    blitbox
  544.     dbra    d6,.an3
  545.     rts
  546.  
  547. clears:    dc.l    0
  548.  
  549. rest:
  550.     wb
  551.     move.l    #blank,$dff050    
  552.     move.l    destination,a0
  553.     adda.l    #6,a0
  554.     move.l    a0,$dff054    
  555.     move.w    #12,$dff066        
  556.     move.w    #0,$dff064        
  557.     move.w    #%0000100111110000,$dff040
  558.     move.w    #0,$dff042
  559.     move.w    #%0011010011001110,$dff058
  560.     ;         fedcba9876543210
  561.     rts
  562.     
  563. restorebackground:
  564.     getbob
  565.     move.l    destination,a0
  566.     adda.l    ypos(a6),a0
  567.     adda.l    wxpos(a6),a0
  568.     move.l    width(a6),d0
  569.     move.l    height(a6),d1
  570.     lsl.w    #6,d1
  571.     or.w    d1,d0
  572.     wb
  573.     move.l    a0,$dff054    
  574.     move.w    #36,$dff066    
  575.     move.l    #backdat,$dff050
  576.     move.w    #0,$dff064    
  577.     move.w    #%0000100111110000,$dff040
  578.     move.w    d0,$dff058    
  579.     rts
  580.             
  581. getoffset:
  582.     add.l    #1,(a6)
  583.     cmp.l    #180,(a6)
  584.     blt    .noreset
  585.     move.l    #0,(a6)
  586. .noreset:
  587.     move.l    sinepointer(a6),a0
  588.     move.l    (a6),d0
  589.     mulu    #4,d0
  590.     adda.l    d0,a0
  591.     moveq.l    #0,d0
  592.     moveq.l    #0,d1
  593.     move.w    (a0)+,d0
  594.     move.w    (a0)+,d1
  595.     add.w    #680,d1
  596.     move.w    d1,ypos+2(a6)
  597.     move.w    d0,xpos+2(a6)
  598.     move.l    xpos(a6),d0
  599.     lsr.w    #3,d0
  600.     move.w    d0,wxpos+2(a6)
  601.     move.l    xpos(a6),d0
  602.     divu    #16,d0
  603.     and.w    #$ffff,d0
  604.     swap    d0
  605.     move.l    d0,shift(a6)
  606. .done:
  607.     rts
  608.     
  609. blitbox:
  610.     move.w    #%0000101111111010,d3
  611.     move.l    shift(a6),d0
  612.     rol.w    #8,d0
  613.     rol.w    #4,d0
  614.     or.w    d0,d3
  615.     move.l    width(a6),d0
  616.     move.l    height(a6),d1
  617.     lsl.w    #6,d1
  618.     or.w    d1,d0
  619.     Move.l    destination,a0
  620.     adda.l    ypos(a6),a0
  621.     adda.l    wxpos(a6),a0
  622.     wb
  623.     move.l    a0,$dff054    
  624.     move.l    imagepointer(a6),$dff050    
  625.     move.l    a0,$dff048    
  626.     move.w    #36,$dff060
  627.     move.w    #36,$dff066
  628.     move.w    d3,$dff040
  629.     move.w    d0,$dff058
  630.     rts
  631.  
  632. closedown:
  633.     move.w    #$7fff,$dff096
  634.     move.w    #$7fff,$dff09a
  635.     move.w    #$7fff,$dff09c
  636.  
  637.     move.l    oldinterrupt,$6c
  638.     move.l    old2,$68
  639.  
  640.     wb
  641.  
  642.     move.w    olddma,d0
  643.     or.w    #$8000,d0
  644.     move.w    d0,$dff096
  645.     
  646.     move.w    oldint,d0
  647.     or.w    #$8000,d0
  648.     move.w    d0,$dff09a
  649.  
  650.     move.w    intreqr,d0
  651.     or.w    #$8000,d0
  652.     move.w    d0,$dff09c
  653.  
  654.     move.l    execbase,a6
  655.  
  656.     btst    #14,$dff002
  657. .wb:    btst    #14,$dff002
  658.     bne.s    .wb
  659.  
  660. ;    move.b    oldcia,$bfed01    
  661.     
  662.     move.b    #$9b,$bfed01
  663.     
  664.     jsr    enable(a6)
  665.  
  666.     move.l    execbase,a6
  667.  
  668.     move.l    #280*40,d0
  669.     move.l    plane,a1
  670.     jsr    freemem(a6)
  671.     
  672.     move.l    #280*40,d0
  673.     move.l    plane2,a1
  674.     jsr    freemem(a6)
  675.  
  676.     move.l    #280*40,d0
  677.     move.l    transplane,a1
  678.     jsr    freemem(a6)
  679.  
  680.     move.l    #280*40,d0
  681.     move.l    transplane2,a1
  682.     jsr    freemem(a6)
  683.  
  684.     move.l    #280*40,d0
  685.     move.l    transplane3,a1
  686.     jsr    freemem(a6)
  687.  
  688.     move.l    #280*40,d0
  689.     move.l    transplane4,a1
  690.     jsr    freemem(a6)
  691.  
  692.     move.l    bobdata_1,a1
  693.     move.l    #bobdataend-bobdatastart,d0
  694.     jsr    freemem(a6)
  695.     
  696.     move.l    bobdata_2,a1
  697.     move.l    #bobdataend-bobdatastart,d0
  698.     jsr    freemem(a6)
  699.  
  700.     move.l    gfxbase,a1
  701.     moveq.l    #0,d0
  702.     jsr    closelibrary(a6)
  703.     
  704.     move.l    execbase,a6
  705.     
  706.     move.l    systemcop,$dff080
  707.  
  708.     rts
  709.     even
  710.  
  711. flashlist:dc.l    op1,op2,op3,op4,op5,op6,op7,op8
  712.  
  713. gfxname:dc.b    'graphics.library',0
  714.     even
  715. systemcop:dc.l    0                
  716.  
  717. oldint:    dc.w    0
  718. intreqr:dc.w    0
  719. olddma:    dc.w    0
  720.  
  721. oldinterrupt:dc.l    0
  722. old2:    dc.l    0
  723.  
  724. gfxbase:dc.l    0
  725.  
  726. plane:    dc.l    0
  727. plane2:    dc.l    0
  728. transplane:dc.l    0
  729. transplane2:dc.l    0
  730. transplane3:dc.l    0
  731. transplane4:dc.l    0
  732. destination:    dc.l    0
  733.  
  734. sdat:    incbin    "bin/circle.dat"
  735. sdat2:    incbin    "bin/circle2.dat"
  736. sdat3:    incbin    "bin/circle3.dat"
  737. sdat4:    incbin    "bin/circle4.dat"
  738.  
  739. sincount:dc.l    0
  740.  
  741. box:    
  742.     dc.l    %00000111110000000000000000000000
  743.     dc.l    %00011111111100000000000000000000
  744.     dc.l    %00111111111110000000000000000000
  745.     dc.l    %01111111111111000000000000000000
  746.     dc.l    %01111111111111000000000000000000
  747.     dc.l    %11111111111111100000000000000000
  748.     dc.l    %11111111111111100000000000000000
  749.     dc.l    %11111111111111100000000000000000
  750.     dc.l    %11111111111111100000000000000000
  751.     dc.l    %01111111111111000000000000000000
  752.     dc.l    %01111111111111000000000000000000
  753.     dc.l    %00111111111110000000000000000000
  754.     dc.l    %00011111111100000000000000000000
  755.     dc.l    %00000111110000000000000000000000
  756.  
  757.     even
  758.  
  759. bobdata_1:dc.l    0
  760. bobdata_2:dc.l    0
  761.  
  762. bobdatastart:
  763.     dc.l    0,box
  764.     dc.l    2,14,0,0,0,0,0,0,sdat
  765.  
  766.     dc.l    20,box
  767.     dc.l    2,14,0,0,0,0,0,0,sdat
  768.  
  769.     dc.l    40,box
  770.     dc.l    2,14,0,0,0,0,0,0,sdat
  771.  
  772.     dc.l    60,box
  773.     dc.l    2,14,0,0,0,0,0,0,sdat
  774.  
  775.     dc.l    80,box
  776.     dc.l    2,14,0,0,0,0,0,0,sdat
  777.  
  778.     dc.l    100,box
  779.     dc.l    2,14,0,0,0,0,0,0,sdat
  780.  
  781.     dc.l    120,box
  782.     dc.l    2,14,0,0,0,0,0,0,sdat
  783.  
  784.     dc.l    140,box
  785.     dc.l    2,14,0,0,0,0,0,0,sdat
  786.     
  787.     dc.l    160,box
  788.     dc.l    2,14,0,0,0,0,0,0,sdat
  789.  
  790.     dc.l    0,box
  791.     dc.l    2,14,0,0,0,0,0,0,sdat2
  792.  
  793.     dc.l    20,box
  794.     dc.l    2,14,0,0,0,0,0,0,sdat2
  795.  
  796.     dc.l    40,box
  797.     dc.l    2,14,0,0,0,0,0,0,sdat2
  798.  
  799.     dc.l    60,box
  800.     dc.l    2,14,0,0,0,0,0,0,sdat2
  801.  
  802.     dc.l    80,box
  803.     dc.l    2,14,0,0,0,0,0,0,sdat2
  804.  
  805.     dc.l    100,box
  806.     dc.l    2,14,0,0,0,0,0,0,sdat2
  807.  
  808.     dc.l    120,box
  809.     dc.l    2,14,0,0,0,0,0,0,sdat2
  810.  
  811.     dc.l    140,box
  812.     dc.l    2,14,0,0,0,0,0,0,sdat2
  813.     
  814.     dc.l    160,box
  815.     dc.l    2,14,0,0,0,0,0,0,sdat2
  816.  
  817.     dc.l    0,box
  818.     dc.l    2,14,0,0,0,0,0,0,sdat3
  819.  
  820.     dc.l    10,box
  821.     dc.l    2,14,0,0,0,0,0,0,sdat3
  822.  
  823.     dc.l    20,box
  824.     dc.l    2,14,0,0,0,0,0,0,sdat3
  825.  
  826.     dc.l    30,box
  827.     dc.l    2,14,0,0,0,0,0,0,sdat3
  828.  
  829.     dc.l    40,box
  830.     dc.l    2,14,0,0,0,0,0,0,sdat3
  831.  
  832.     dc.l    50,box
  833.     dc.l    2,14,0,0,0,0,0,0,sdat3
  834.  
  835.     dc.l    60,box
  836.     dc.l    2,14,0,0,0,0,0,0,sdat3
  837.  
  838.     dc.l    70,box
  839.     dc.l    2,14,0,0,0,0,0,0,sdat3
  840.  
  841.     dc.l    80,box
  842.     dc.l    2,14,0,0,0,0,0,0,sdat3
  843.  
  844.     dc.l    90,box
  845.     dc.l    2,14,0,0,0,0,0,0,sdat3
  846.  
  847.     dc.l    100,box
  848.     dc.l    2,14,0,0,0,0,0,0,sdat3
  849.  
  850.     dc.l    110,box
  851.     dc.l    2,14,0,0,0,0,0,0,sdat3
  852.  
  853.     dc.l    120,box
  854.     dc.l    2,14,0,0,0,0,0,0,sdat3
  855.  
  856.     dc.l    130,box
  857.     dc.l    2,14,0,0,0,0,0,0,sdat3
  858.  
  859.     dc.l    140,box
  860.     dc.l    2,14,0,0,0,0,0,0,sdat3
  861.  
  862.     dc.l    150,box
  863.     dc.l    2,14,0,0,0,0,0,0,sdat3
  864.     
  865.     dc.l    160,box
  866.     dc.l    2,14,0,0,0,0,0,0,sdat3
  867.  
  868.     dc.l    170,box
  869.     dc.l    2,14,0,0,0,0,0,0,sdat3
  870.  
  871.     dc.l    0,box
  872.     dc.l    2,14,0,0,0,0,0,0,sdat4
  873.  
  874.     dc.l    10,box
  875.     dc.l    2,14,0,0,0,0,0,0,sdat4
  876.  
  877.     dc.l    20,box
  878.     dc.l    2,14,0,0,0,0,0,0,sdat4
  879.  
  880.     dc.l    30,box
  881.     dc.l    2,14,0,0,0,0,0,0,sdat4
  882.  
  883.     dc.l    40,box
  884.     dc.l    2,14,0,0,0,0,0,0,sdat4
  885.  
  886.     dc.l    50,box
  887.     dc.l    2,14,0,0,0,0,0,0,sdat4
  888.  
  889.     dc.l    60,box
  890.     dc.l    2,14,0,0,0,0,0,0,sdat4
  891.  
  892.     dc.l    70,box
  893.     dc.l    2,14,0,0,0,0,0,0,sdat4
  894.  
  895.     dc.l    80,box
  896.     dc.l    2,14,0,0,0,0,0,0,sdat4
  897.  
  898.     dc.l    90,box
  899.     dc.l    2,14,0,0,0,0,0,0,sdat4
  900.  
  901.     dc.l    100,box
  902.     dc.l    2,14,0,0,0,0,0,0,sdat4
  903.  
  904.     dc.l    110,box
  905.     dc.l    2,14,0,0,0,0,0,0,sdat4
  906.  
  907.     dc.l    120,box
  908.     dc.l    2,14,0,0,0,0,0,0,sdat4
  909.  
  910.     dc.l    130,box
  911.     dc.l    2,14,0,0,0,0,0,0,sdat4
  912.  
  913.     dc.l    140,box
  914.     dc.l    2,14,0,0,0,0,0,0,sdat4
  915.  
  916.     dc.l    150,box
  917.     dc.l    2,14,0,0,0,0,0,0,sdat4
  918.     
  919.     dc.l    160,box
  920.     dc.l    2,14,0,0,0,0,0,0,sdat4
  921.  
  922.     dc.l    170,box
  923.     dc.l    2,14,0,0,0,0,0,0,sdat4
  924.  
  925.  
  926. bobdataend:
  927.  
  928. bobnum:    dc.l    1
  929.  
  930. temp:    dc.l    0
  931.  
  932. movestars:            
  933.     lea    sprite0+1,a0
  934.     lea    speeds,a1
  935.     move.l    #numberofstars-1,d1
  936.     moveq.l    #0,d0
  937. ssd1:    
  938.     move.b    (a0),d0
  939.     add.w    (a1)+,d0
  940.     cmp.w    #$dd,d0
  941.     blt    sc
  942.     move.b    #$14,d0
  943. sc:    move.b    d0,(a0)
  944.     lea    8(a0),a0
  945.     dbra    d1,ssd1    
  946.     rts
  947.  
  948. oldcia:    dc.w    0
  949.  
  950. sprite0:
  951.     dc.w    $5850,$5900,$1000,$0000,$5A6A,$5B00,$1000,$0000
  952.     dc.w    $5CA5,$5D00,$1000,$0000,$5E46,$5F00,$1000,$0000
  953.     dc.w    $606A,$6100,$1000,$0000,$62A0,$6300,$1000,$0000
  954.     dc.w    $6437,$6500,$1000,$0000,$667C,$6700,$1000,$0000
  955.     dc.w    $68C4,$6900,$1000,$0000,$6AC0,$6B00,$1000,$0000
  956.     dc.w    $6C4A,$6D00,$1000,$0000,$6E6A,$6F00,$1000,$0000
  957.     dc.w    $7047,$7100,$1000,$0000,$7243,$7300,$1000,$0000
  958.     dc.w    $74A2,$7500,$1000,$0000,$7699,$7700,$1000,$0000
  959.     dc.w    $7872,$7900,$1000,$0000,$7A77,$7B00,$1000,$0000
  960.     dc.w    $7CC2,$7D00,$1000,$0000,$7E56,$7F00,$1000,$0000
  961.     dc.w    $805A,$8100,$1000,$0000,$82CC,$8300,$1000,$0000
  962.     dc.w    $848F,$8500,$1000,$0000,$8688,$8700,$1000,$0000
  963.     dc.w    $88B9,$8900,$1000,$0000,$8AAF,$8B00,$1000,$0000
  964.     dc.w    $8C48,$8D00,$1000,$0000,$8E68,$8F00,$1000,$0000
  965.     dc.w    $906F,$9100,$1000,$0000,$924F,$9300,$1000,$0000
  966.     dc.w    $9424,$9500,$1000,$0000,$96D7,$9700,$1000,$0000
  967.     dc.w    $9859,$9900,$1000,$0000,$9A4F,$9B00,$1000,$0000
  968.     dc.w    $9C4A,$9D00,$1000,$0000,$9E5C,$9F00,$1000,$0000
  969.     dc.w    $A046,$A100,$1000,$0000,$A2A6,$A300,$1000,$0000
  970.     dc.w    $A423,$A500,$1000,$0000,$A61A,$A700,$1000,$0000
  971.     dc.w    $A86C,$A900,$1000,$0000,$AA44,$AB00,$1000,$0000
  972.     dc.w    $AC88,$AD00,$1000,$0000,$AE9A,$AF00,$1000,$0000
  973.     dc.w    $B06C,$B100,$1000,$0000,$B264,$B300,$1000,$0000
  974.     dc.w    $B42A,$B500,$1000,$0000,$B636,$B700,$1000,$0000
  975.     dc.w    $B875,$B900,$1000,$0000,$BA89,$BB00,$1000,$0000
  976.     dc.w    $BC45,$BD00,$1000,$0000,$BE24,$BF00,$1000,$0000
  977.     dc.w    $C0A3,$C100,$1000,$0000,$C29D,$C300,$1000,$0000        
  978.     dc.w    $C43F,$C500,$1000,$0000,$C634,$C700,$1000,$0000        
  979.     dc.w    $C87C,$C900,$1000,$0000,$CA1D,$CB00,$1000,$0000        
  980.     dc.w    $CC6B,$CD00,$1000,$0000,$CEAC,$CF00,$1000,$0000        
  981.     dc.w    $D0CF,$D100,$1000,$0000,$D23F,$D300,$1000,$0000        
  982.     dc.w    $D4A5,$D500,$1000,$0000,$D646,$D700,$1000,$0000        
  983.     dc.w    $D84F,$D900,$1000,$0000,$DA51,$DB00,$1000,$0000
  984.     dc.w    $DC39,$DD00,$1000,$0000,$DEA6,$DF00,$1000,$0000        
  985.     dc.w    $E055,$E100,$1000,$0000,$E237,$E300,$1000,$0000        
  986.     dc.w    $E47D,$E500,$1000,$0000,$E62E,$E700,$1000,$0000        
  987.     dc.w    $E8AF,$E900,$1000,$0000,$EA46,$EB00,$1000,$0000
  988.     dc.w    $EC65,$ED00,$1000,$0000,$EE87,$EF00,$1000,$0000
  989.     dc.w    $F044,$F100,$1000,$0000,$F255,$F300,$1000,$0000
  990.     dc.w    $F47A,$F500,$1000,$0000,$F62C,$F700,$1000,$0000
  991.     dc.w    $F84D,$F900,$1000,$0000,$FAAC,$FB00,$1000,$0000
  992.     dc.w    $FCB2,$FD00,$1000,$0000,$FE9A,$FF00,$1000,$0000
  993.     dc.w    $009A,$0106,$1000,$0000,$02DF,$0306,$1000,$0000
  994.     dc.w    $0446,$0506,$1000,$0000,$0688,$0706,$1000,$0000
  995.     dc.w    $0CaE,$0D06,$1000,$0000,$0E77,$0F06,$1000,$0000
  996.     dc.w    $10CD,$1106,$1000,$0000,$1267,$1306,$1000,$0000
  997.     dc.w    $1443,$1506,$1000,$0000,$1664,$1706,$1000,$0000
  998.     dc.w    $1823,$1906,$1000,$0000,$1A6D,$1B06,$1000,$0000
  999.     dc.w    $1C4F,$1D06,$1000,$0000,$1E5F,$1F06,$1000,$0000
  1000.     dc.w    $2055,$2106,$1000,$0000,$2267,$2306,$1000,$0000
  1001.     dc.w    $2445,$2506,$1000,$0000,$2623,$2706,$1000,$0000
  1002.     dc.w    0,0
  1003.  
  1004. speeds:    dc.w    3,1,3,1,2
  1005.     dc.w    1,2,3,1,2,3,1,2,3,2,1,2,2,2,1,2,3,3,2,2,1,2,3,2,1,2,2,3,2,1
  1006.     dc.w    2,3,2,1,2,3,2,2,3,2,1,2,3,2,1,1,1,1,2,1,2,3,2,3,2,2,1,2,3,2
  1007.     dc.w    3,2,1,2,3,2,1,2,2,3,2,2,1,1,1,1,2,3,2,2,1,2,3,3,2,2,3,2,1,2
  1008.     dc.w    2,2,1,3,2,2,2,3,2,1,2,3,2,1,2,3,1,1,2,3,2,1,2,2,2,2,1,2,3,2
  1009.     dc.w    3,2,1,2,3,2,1,2,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,2,1,3,2
  1010.     dc.w    1,3,2,3,1,2,3,2,1,3,2,2,3,2,1,2,2,1,1,3,1,2,1,3,2,1,2,3,2,2
  1011.  
  1012. blank:    dcb.b    18000,$0
  1013.     
  1014.     include    "includes/ycounter.s"
  1015.     even
  1016.  
  1017.     include    "includes/protracker.s"
  1018.     even
  1019.     
  1020. mt_data:dc.l    music
  1021. backdat:ds.l    15
  1022. bd:    dc.l    0
  1023.  
  1024. font:    incbin    "fonts/fontsize8"
  1025.     dc.l    0,0,0,0
  1026. bigfont:incbin    "fonts/fontsize16"
  1027.     even
  1028. dosname:dc.b    'dos.library',0
  1029.     even
  1030. dosbase:dc.l    0
  1031.  
  1032. slidecounter:dc.l    0
  1033.  
  1034. textx:    dc.l    0
  1035. texty:    dc.l    0
  1036. letter:    dc.l    0
  1037. waittime:dc.l    0
  1038. clearflag:dc.l    0
  1039. cleartime:dc.l    0
  1040.  
  1041. flashcolors:dc.w    $fff,$eee,$ddd,$ccc,$bbb,$aaa,$999,$888,$777
  1042.     dc.w    $666,$555,$444,$333,$222,$111,$000
  1043.     dc.w    $111,$222,$333,$444,$555,$666,$777,$888,$999,$aaa,$bbb
  1044.     dc.w    $ccc,$ddd,$eee,$fff
  1045.  
  1046. flag:    dc.w    $0000
  1047.  
  1048. flashcount:dc.l    0
  1049.  
  1050. offset:dc.l    0
  1051.