home *** CD-ROM | disk | FTP | other *** search
/ Fujiology Archive / fujiology_archive_v1_0.iso / !FALCON / LINEOUT / DELTA.ZIP / DELTASRC.ZIP / DELTA.SRC / INTRO.SO < prev    next >
Text File  |  2003-01-04  |  13KB  |  677 lines

  1. ; Intro screen for 'delta'.
  2. ; Uses some 'stripes' and 3d wireframe.
  3.  
  4. ;======= OBJECT EQUATES ====================================================
  5.  
  6.             RSRESET
  7. Intro.PAL:        RS.W    256
  8. Intro.STRIPTABLE:    RS.L    320                ; start.w, width.w
  9. Intro.LOGO:        RS.W    320*200
  10. Intro.RECTBUFFER:    RS.W    100
  11. Intro.PICPAL:        RS.W    256
  12. Intro.BLOCK_SIZE:    RS.B    0
  13.  
  14. ;======= OBJECT TABLE ======================================================
  15.  
  16. ; Must be first in object!!
  17. Intro.table:
  18.     DC.L    Intro.mainLoop
  19.     DC.L    Intro.init
  20.     DC.L    rts
  21.     DC.L    Intro.setEarxLogo
  22.     DC.L    Intro.setPresentsLogo
  23.     DC.L    Intro.setDeltaRout
  24.     DC.L    0
  25.  
  26.     IFND    DEMO_SYSTEM
  27.     INCLUDE    SFLY_DSP.S
  28.     TEXT
  29.     ENDC
  30.  
  31. ;======= INIT SUBROUTINE ===================================================
  32.  
  33. ; OUTPUT:
  34. ; d0.l: =0: All clear, <0: Error, not initialized!
  35. Intro.init:
  36.     move.l    #Intro.BLOCK_SIZE,d0
  37.     bsr.l    Mem.register
  38.  
  39.     lea    sine_tbl,a1
  40.     bsr.l    Matrix.init
  41.  
  42. .success:
  43.     moveq    #0,d0
  44.     rts
  45. .error:    moveq    #-1,d0
  46.     rts
  47.  
  48. ;======= REALTIME INIT SUBROUTINE ==========================================
  49.  
  50. Intro.realtimeInit:
  51.     move.l    #rts,vbl_gfx
  52.  
  53.     bsr.l    Mem.getBlock
  54.     move.l    d0,Intro.baseAdr
  55.  
  56.     bsr.l    HumanFly.init
  57.  
  58.     lea    Viewport.settingsTable,a0
  59.     move.w    #320,Viewport.XSCREEN(a0)
  60.     move.w    #200,Viewport.YSCREEN(a0)
  61.     move.w    #0,Viewport.XSTART(a0)
  62.     move.w    #0,Viewport.YSTART(a0)
  63.     move.w    #320,Viewport.XEND(a0)
  64.     move.w    #200,Viewport.YEND(a0)
  65.     move.w    #160,Viewport.XCENTER(a0)
  66.     move.w    #100,Viewport.YCENTER(a0)
  67.     move.w    #256+32,Viewport.ASPECT(a0)
  68.     move.w    #$100,Viewport.FOCAL(a0)
  69.     bsr.l    Viewport.update
  70.  
  71.     movea.l    Intro.baseAdr,a0
  72.     adda.l    #Intro.PAL,a0
  73.     lea    Intro.flowTable,a1
  74.     bsr.l    Pal.makeGradientHc
  75.  
  76.     lea    Intro.textureTable,a0
  77.     movea.l    Intro.baseAdr,a1
  78.     adda.l    #Intro.PAL,a1
  79.     bsr.l    Polygon.init
  80.  
  81. ; Clear 2nd palette..
  82.     movea.l    Intro.baseAdr,a0
  83.     adda.l    #Intro.PAL+128*2,a0
  84.     moveq    #128/2-1,d7
  85.     clr.l    d0
  86. .clearloop:
  87.     move.l    d0,(a0)+
  88.     dbf    d7,.clearloop
  89.  
  90.     bsr.l    ObjectRegistry.clear
  91.  
  92.     lea    Intro.deltaLined,a0
  93.     move.l    #Intro.deltaLinedEnd-Intro.deltaLined,d0
  94.     bsr.l    ObjectRegistry.set
  95.  
  96.     lea    Intro.deltaShadow,a0
  97.     move.l    #Intro.deltaShadowEnd-Intro.deltaShadow,d0
  98.     bsr.l    ObjectRegistry.set
  99.  
  100.     move.w    monitormode,d0
  101.     cmpi.w    #vga60,d0
  102.     beq.s    .vga60
  103.     cmpi.w    #vga100,d0
  104.     beq.s    .vga100
  105.     cmpi.w    #rgb50,d0
  106.     beq.s    .rgb50
  107. ; Unknown monitormode..
  108.     rts
  109. .vga60:    move.l    #vga60_16bit_320_200,Intro.resRout
  110.     rts
  111. .vga100:move.l    #vga100_16bit_320_200,Intro.resRout
  112.     rts
  113. .rgb50:    move.l    #rgb50_16bit_320_200,Intro.resRout
  114.     rts
  115.  
  116. ;======= SCREENINIT SUBROUTINE =============================================
  117.  
  118. Intro.initScreen:
  119.     movea.l    scr,a0
  120.     bsr.l    CLEAR_320200TSCR
  121.     rts
  122.  
  123. ;======= MAINLOOP SUBROUTINE ===============================================
  124.  
  125. Intro.mainLoop:
  126.     move.l    frmcnt,d0
  127.     sub.l    lastframecount,d0
  128.     bne.s    .end_realtime_init
  129.     move.l    d0,-(sp)
  130.     bsr.w    Intro.realtimeInit
  131.     move.l    (sp)+,d0
  132. .end_realtime_init:
  133.     move.w    Intro.newLogo,d1
  134.     subq.w    #1,d1
  135.     bmi.s    .check_intro_start
  136.     move.w    d1,Intro.newLogo
  137.     bra.s    .end_screeninit
  138. .check_intro_start:
  139.     cmpi.l    #1,d0
  140.     bhs.s    .end_screeninit
  141.     bsr.w    Intro.initScreen
  142. .end_screeninit:
  143.  
  144.     movea.l    Intro.paintRout,a0
  145.     jsr    (a0)
  146.  
  147.     moveq    #1,d2                ; d2.w=#vbls
  148.     move.w    $0468.w,d0
  149.     cmpi.w    #vga100,monitormode
  150.     bne.s    .ck468
  151.     moveq    #2,d2                ; d2.w=#vbls
  152. .ck468:    move.w    $0468.w,d1
  153.     sub.w    d0,d1
  154.     cmp.w    d2,d1
  155.     blt.s    .ck468
  156.  
  157.     movea.l    Intro.resRout,a0
  158.     suba.l    a1,a1
  159.     movea.l    scr,a2
  160.     bsr.l    Screen.requestUpdate
  161.     clr.l    Intro.resRout
  162.     rts
  163.  
  164. ;======= OBJECT SUBROUTINES ================================================
  165.  
  166. Intro.setEarxLogo:
  167.     bsr    Intro.paintPic
  168.     bsr    Intro.initStrips
  169.     rts
  170.  
  171. Intro.setPresentsLogo:
  172.     movea.l    Intro.baseAdr,a0
  173.     adda.l    #Intro.LOGO,a0
  174.     bsr.l    CLEAR_320200TSCR
  175.     bsr    Intro.paintPresents
  176.     bsr    Intro.initStrips
  177.     rts
  178.  
  179. Intro.setDeltaRout:
  180.     move.l    #Intro.paintDelta,Intro.paintRout
  181.     move.l    frmcnt,Intro.startFrame
  182.     move.l    $04BA.w,Intro.zoomStart
  183.     rts
  184.  
  185. Intro.initStrips:
  186. ; Create strips ordered left to right.
  187.     movea.l    Intro.baseAdr,a0
  188.     adda.l    #Intro.STRIPTABLE,a0
  189.     move.l    random,d0
  190.     clr.w    d6
  191.     clr.w    d5
  192.     move.w    #320,d7
  193.  
  194. .loop:    move.l    d0,d1
  195.     mulu.w    d0,d0
  196.     rol.l    d1,d0
  197.     eor.l    d1,d0
  198.     addq.l    #5,d0
  199.     move.w    d0,d2
  200.     andi.w    #$0007,d2            ; d2.w=width-1
  201.     move.w    d5,(a0)+            ; Store start.
  202.     move.w    d2,(a0)+            ; Store width-1.
  203.     addq.w    #1,d6
  204.     addq.w    #1,d2                ; d2.w=width
  205.     add.w    d2,d5                ; d5.w=curwidth+width
  206.     sub.w    d2,d7                ; d7.w=remaining width
  207.     bgt.s    .loop
  208.  
  209.     add.w    d7,-(a0)            ; Adjust last width.
  210.     move.w    d6,Intro.numStrips        ; Store #strips.
  211.  
  212.     move.l    d0,random
  213.  
  214. ; Now mess up the ordering a bit..
  215.     moveq    #100-1,d7
  216.     movea.l    Intro.baseAdr,a0
  217.     adda.l    #Intro.STRIPTABLE,a0
  218.     move.l    random,d0
  219.  
  220. .mess_loop:
  221. ; Calc random pairs..
  222.     move.l    d0,d1
  223.     mulu.w    d0,d0
  224.     eor.l    d1,d0
  225.     rol.l    d1,d0
  226.     addq.l    #5,d0
  227.  
  228.     clr.l    d2
  229.     move.w    d0,d2
  230.     divu.w    Intro.numStrips,d2
  231.     swap    d2
  232.     move.l    d0,d3
  233.     clr.w    d3
  234.     swap    d3
  235.     divu.w    Intro.numStrips,d3
  236.     swap    d3
  237. ; d2.w=first index, d3.w=second index
  238.  
  239. ; Swap the pair.
  240.     move.l    (a0,d2.w*4),d4
  241.     move.l    (a0,d3.w*4),(a0,d2.w*4)
  242.     move.l    d4,(a0,d3.w*4)
  243.  
  244.     dbf    d7,.mess_loop
  245.  
  246.     move.l    d0,random
  247.  
  248. ; Set #strips done to zero.
  249.     clr.w    Intro.stripsDone
  250.     move.w    #1,Intro.newLogo
  251.     move.l    #Intro.paintStrips,Intro.paintRout
  252.     rts
  253.  
  254. Intro.paintPic:
  255.     lea    Intro.logoPic+20,a1
  256.     movea.l    Intro.baseAdr,a0
  257.     adda.l    #Intro.PICPAL,a0
  258.     move.w    #256,d7
  259.     bsr.l    convertTc2Hc    
  260.  
  261.     lea    Intro.logoPic+788,a1
  262.     movea.l    Intro.baseAdr,a0
  263.     movea.l    a0,a2
  264.     adda.l    #Intro.LOGO,a0
  265.     adda.l    #Intro.PICPAL,a2
  266.     move.w    #320*200/10-1,d7
  267.     clr.l    d0
  268. .loop:
  269.     REPT    10
  270.     move.b    (a1)+,d0            ; d0.l=colorindex
  271.     move.w    (a2,d0.l*2),(a0)+        ; Index and store highcolor pixel.
  272.     ENDR
  273.     dbf    d7,.loop
  274.     rts
  275.  
  276. Intro.paintPresents:
  277.     lea    Font.pic,a1
  278.     movea.l    Intro.baseAdr,a0
  279.     adda.l    #Intro.LOGO+(74*320+44)*2,a0
  280.  
  281. ; 'p'
  282.     movea.l    a1,a2
  283.     adda.l    #(130*320+4)*2,a2
  284.     moveq    #56-1,d7
  285.  
  286. .p_yloop:
  287.     moveq    #33-1,d6
  288.  
  289. .p_xloop:
  290.     move.w    (a2)+,(a0)+
  291.     dbf    d6,.p_xloop
  292.  
  293.     adda.w    #(320-33)*2,a0
  294.     adda.w    #(320-33)*2,a2
  295.     dbf    d7,.p_yloop
  296.  
  297.     adda.l    #(36-56*320)*2,a0
  298.  
  299. ; 'r'
  300.     movea.l    a1,a2
  301.     adda.w    #116*2,a2
  302.     moveq    #45-1,d7
  303.  
  304. .r_yloop:
  305.     moveq    #17-1,d6
  306.  
  307. .r_xloop:
  308.     move.w    (a2)+,(a0)+
  309.     dbf    d6,.r_xloop
  310.  
  311.     adda.w    #(320-17)*2,a0
  312.     adda.w    #(320-17)*2,a2
  313.     dbf    d7,.r_yloop
  314.  
  315.     adda.w    #(18-45*320)*2,a0
  316.  
  317. ; 'e'
  318.     movea.l    a1,a2
  319.     adda.w    #38*2,a2
  320.     moveq    #45-1,d7
  321.  
  322. .e_yloop:
  323.     moveq    #34-1,d6
  324.  
  325. .e_xloop:
  326.     move.w    (a2)+,(a0)+
  327.     dbf    d6,.e_xloop
  328.  
  329.     adda.w    #(320-34)*2,a0
  330.     adda.w    #(320-34)*2,a2
  331.     dbf    d7,.e_yloop
  332.  
  333.     adda.w    #(36-45*320)*2,a0
  334.  
  335. ; 's'
  336.     movea.l    a1,a2
  337.     adda.l    #(130*320+41)*2,a2
  338.     moveq    #45-1,d7
  339.  
  340. .s_yloop:
  341.     moveq    #23-1,d6
  342.  
  343. .s_xloop:
  344.     move.w    (a2)+,(a0)+
  345.     dbf    d6,.s_xloop
  346.  
  347.     adda.w    #(320-23)*2,a0
  348.     adda.w    #(320-23)*2,a2
  349.     dbf    d7,.s_yloop
  350.  
  351.     adda.w    #(26-45*320)*2,a0
  352.  
  353. ; 'e' (second)
  354.     movea.l    a1,a2
  355.     adda.w    #38*2,a2
  356.     moveq    #45-1,d7
  357.  
  358. .e2_yloop:
  359.     moveq    #34-1,d6
  360.  
  361. .e2_xloop:
  362.     move.w    (a2)+,(a0)+
  363.     dbf    d6,.e2_xloop
  364.  
  365.     adda.w    #(320-34)*2,a0
  366.     adda.w    #(320-34)*2,a2
  367.     dbf    d7,.e2_yloop
  368.  
  369.     adda.w    #(36-45*320)*2,a0
  370.  
  371. ; 'n'
  372.     movea.l    a1,a2
  373.     adda.l    #(130*320+70)*2,a2
  374.     moveq    #45-1,d7
  375.  
  376. .n_yloop:
  377.     moveq    #29-1,d6
  378.  
  379. .n_xloop:
  380.     move.w    (a2)+,(a0)+
  381.     dbf    d6,.n_xloop
  382.  
  383.     adda.w    #(320-29)*2,a0
  384.     adda.w    #(320-29)*2,a2
  385.     dbf    d7,.n_yloop
  386.  
  387.     adda.w    #(32-45*320)*2,a0
  388.  
  389. ; 't'
  390.     movea.l    a1,a2
  391.     adda.w    #209*2,a2
  392.     moveq    #45-1,d7
  393.  
  394. .t_yloop:
  395.     moveq    #17-1,d6
  396.  
  397. .t_xloop:
  398.     move.w    (a2)+,(a0)+
  399.     dbf    d6,.t_xloop
  400.  
  401.     adda.w    #(320-17)*2,a0
  402.     adda.w    #(320-17)*2,a2
  403.     dbf    d7,.t_yloop
  404.  
  405.     adda.w    #(20-45*320)*2,a0
  406.  
  407. ; 's' (second)
  408.     movea.l    a1,a2
  409.     adda.l    #(130*320+41)*2,a2
  410.     moveq    #45-1,d7
  411.  
  412. .s2_yloop:
  413.     moveq    #23-1,d6
  414.  
  415. .s2_xloop:
  416.     move.w    (a2)+,(a0)+
  417.     dbf    d6,.s2_xloop
  418.  
  419.     adda.w    #(320-23)*2,a0
  420.     adda.w    #(320-23)*2,a2
  421.     dbf    d7,.s2_yloop
  422.  
  423.     rts
  424.  
  425. Intro.paintStrips:
  426.     movea.l    scr,a0
  427.     movea.l    Intro.baseAdr,a1
  428.     movea.l    a1,a2
  429.     adda.l    #Intro.LOGO,a1
  430.     adda.l    #Intro.STRIPTABLE,a2
  431.     move.w    Intro.numStrips,d7
  432.     move.w    Intro.stripsDone,d0
  433.     cmp.w    d0,d7
  434.     beq.s    .end
  435.  
  436.     lea    (a2,d0.w*4),a2
  437.     move.w    (a2)+,d1            ; d1.w=start
  438.     add.w    d1,d1
  439.     adda.w    d1,a0
  440.     adda.w    d1,a1
  441.     move.w    (a2)+,d0            ; d0.w=stripwidth-1
  442.     movea.w    #320,a6
  443.     suba.w    d0,a6
  444.     subq    #1,a6
  445.     adda.l    a6,a6
  446.     move.w    #200-1,d7
  447.  
  448. .yloop:    move.w    d0,d6
  449.  
  450. .xloop:    move.w    (a1)+,(a0)+
  451.     dbf    d6,.xloop
  452.  
  453.     adda.l    a6,a0
  454.     adda.l    a6,a1
  455.     dbf    d7,.yloop
  456.  
  457.     addq.w    #1,Intro.stripsDone
  458.  
  459. .end:    rts
  460.  
  461. Intro.paintDelta:
  462. ; Swap screens.
  463.     lea    scr,a0
  464.     move.l    (a0)+,d0
  465.     move.l    (a0),-4(a0)
  466.     move.l    d0,(a0)
  467.  
  468.     movea.l    scr,a0
  469.     bsr.l    Primitive.setScreenbuffer
  470.  
  471. ; Wipe old..
  472.     move.l    frmcnt,d0
  473.     sub.l    Intro.startFrame,d0
  474.     subq.l    #1,d0
  475.     bgt.s    .clear_deltas
  476.     movea.l    scr,a0
  477.     bsr.l    CLEAR_320200TSCR
  478.     bra.s    .wiping_done
  479.  
  480. .clear_deltas:
  481.     bsr.l    PrimitiveMesh.new    
  482.  
  483.     move.w    .time+2(pc),d0
  484.     move.w    d0,d1
  485.     move.w    d0,d2
  486.     mulu.w    #3,d1
  487.     mulu.w    #7,d2
  488.     lsr.l    #2,d1
  489.     lsr.l    #2,d2
  490.     bsr.l    Matrix.generate
  491.     clr.w    d0
  492.     clr.w    d1
  493.     move.w    .time+2(pc),d2
  494.     sub.w    Intro.zoomStart+2,d2
  495.     addi.w    #200,d2
  496.     bsr.l    Matrix.translate
  497.     bsr.l    Matrix.push
  498.  
  499.     moveq    #TransformObject.BACKFACE_CULLING|TransformObject.PERSPECTIVATE,d0
  500.     moveq    #1,d1
  501.     bsr.l    TransformObject.transform
  502.  
  503.     bsr.l    Matrix.pop
  504.  
  505.     bsr.l    PrimitiveMesh.complete
  506.  
  507. ; parallel shit!
  508. ;    clr.w    Intro.pal+64*2
  509. ; end of parallel shit!
  510.     movea.l    Intro.baseAdr,a0
  511.     adda.l    #Intro.RECTBUFFER,a0
  512.     bsr.l    PrimitiveMesh.paint
  513. .wiping_done:
  514.  
  515. ; Time stuffs.
  516.     move.w    .time(pc),.time+2
  517.     move.w    $04BC.w,.time
  518.  
  519. ; Paint new..
  520.     bsr.l    PrimitiveMesh.new    
  521.  
  522.     move.w    .time(pc),d0
  523.     move.w    d0,d1
  524.     move.w    d0,d2
  525.     mulu.w    #3,d1
  526.     mulu.w    #7,d2
  527.     lsr.l    #2,d1
  528.     lsr.l    #2,d2
  529.     bsr.l    Matrix.generate
  530.     clr.w    d0
  531.     clr.w    d1
  532.     move.w    .time(pc),d2
  533.     sub.w    Intro.zoomStart+2,d2
  534.     addi.w    #200,d2
  535.     bsr.l    Matrix.translate
  536.     bsr.l    Matrix.push
  537.  
  538.     moveq    #TransformObject.BACKFACE_CULLING|TransformObject.PERSPECTIVATE,d0
  539.     moveq    #0,d1
  540.     bsr.l    TransformObject.transform
  541.  
  542.     bsr.l    Matrix.pop
  543.  
  544.     bsr.l    PrimitiveMesh.sortZ
  545.  
  546.     bsr.l    PrimitiveMesh.complete
  547.  
  548. ; parallel shit!
  549. ;    move.w    #$FFFF,Intro.pal+64*2
  550. ; end of parallel shit!
  551.  
  552.     movea.l    Intro.baseAdr,a0
  553.     adda.l    #Intro.RECTBUFFER,a0
  554.     bsr.l    PrimitiveMesh.paint
  555.     rts
  556.  
  557. .time:    DC.W    0
  558.     DC.W    0
  559.  
  560. ;======= OBJECT DATA =======================================================
  561.  
  562.     DATA
  563.  
  564. Intro.paintRout:
  565.     DC.L    rts
  566.  
  567. Intro.textureTable:
  568.     DC.L    0
  569.  
  570. Intro.deltaLined:
  571.     DC.W    18,9
  572.     DC.W    -140,128-50,0
  573.     DC.W    0,-120-50,0
  574.     DC.W    140,128-50,0
  575.     DC.W    -70,84-50,0
  576.     DC.W    0,-40-50,0
  577.     DC.W    70,84-50,0
  578.     DC.W    -100,106-50,40
  579.     DC.W    0,-80-50,40
  580.     DC.W    100,106-50,40
  581.  
  582.     DC.W    -105,+058,+000
  583.     DC.W    +000,-127,+000
  584.     DC.W    +105,+058,+000
  585.     DC.W    -052,+025,+000
  586.     DC.W    +000,-068,+000
  587.     DC.W    +052,+025,+000
  588.     DC.W    -075,+042,+030
  589.     DC.W    +000,-098,+030
  590.     DC.W    +075,+042,+030
  591.  
  592.     DC.W    0
  593.  
  594.     DC.W    18
  595.     DC.W    Primitive.LINETYPE|Polygon.PHONGSHADED,0,1,9,10
  596.     DC.W    Primitive.LINETYPE|Polygon.PHONGSHADED,1,2,10,11
  597.     DC.W    Primitive.LINETYPE|Polygon.PHONGSHADED,2,0,11,9
  598.     DC.W    Primitive.LINETYPE|Polygon.PHONGSHADED,3,4,12,13
  599.     DC.W    Primitive.LINETYPE|Polygon.PHONGSHADED,4,5,13,14
  600.     DC.W    Primitive.LINETYPE|Polygon.PHONGSHADED,5,3,14,12
  601.     DC.W    Primitive.LINETYPE|Polygon.PHONGSHADED,6,7,15,16
  602.     DC.W    Primitive.LINETYPE|Polygon.PHONGSHADED,7,8,16,17
  603.     DC.W    Primitive.LINETYPE|Polygon.PHONGSHADED,8,6,17,15
  604.     DC.W    Primitive.LINETYPE|Polygon.PHONGSHADED,0,3,9,12
  605.     DC.W    Primitive.LINETYPE|Polygon.PHONGSHADED,3,6,12,15
  606.     DC.W    Primitive.LINETYPE|Polygon.PHONGSHADED,6,0,15,9
  607.     DC.W    Primitive.LINETYPE|Polygon.PHONGSHADED,1,4,10,13
  608.     DC.W    Primitive.LINETYPE|Polygon.PHONGSHADED,4,7,13,16
  609.     DC.W    Primitive.LINETYPE|Polygon.PHONGSHADED,7,1,16,10
  610.     DC.W    Primitive.LINETYPE|Polygon.PHONGSHADED,2,5,11,14
  611.     DC.W    Primitive.LINETYPE|Polygon.PHONGSHADED,5,8,14,17
  612.     DC.W    Primitive.LINETYPE|Polygon.PHONGSHADED,8,2,17,11
  613. Intro.deltaLinedEnd:
  614.  
  615. Intro.deltaShadow:
  616.     DC.W    9,0
  617.     DC.W    -140,128-50,0
  618.     DC.W    0,-120-50,0
  619.     DC.W    140,128-50,0
  620.     DC.W    -70,84-50,0
  621.     DC.W    0,-40-50,0
  622.     DC.W    70,84-50,0
  623.     DC.W    -100,106-50,40
  624.     DC.W    0,-80-50,40
  625.     DC.W    100,106-50,40
  626.  
  627.     DC.W    0
  628.  
  629.     DC.W    18
  630.     DC.W    Primitive.LINETYPE|Polygon.FLATSHADED|1,0,1
  631.     DC.W    Primitive.LINETYPE|Polygon.FLATSHADED|1,1,2
  632.     DC.W    Primitive.LINETYPE|Polygon.FLATSHADED|1,2,0
  633.     DC.W    Primitive.LINETYPE|Polygon.FLATSHADED|1,3,4
  634.     DC.W    Primitive.LINETYPE|Polygon.FLATSHADED|1,4,5
  635.     DC.W    Primitive.LINETYPE|Polygon.FLATSHADED|1,5,3
  636.     DC.W    Primitive.LINETYPE|Polygon.FLATSHADED|1,6,7
  637.     DC.W    Primitive.LINETYPE|Polygon.FLATSHADED|1,7,8
  638.     DC.W    Primitive.LINETYPE|Polygon.FLATSHADED|1,8,6
  639.     DC.W    Primitive.LINETYPE|Polygon.FLATSHADED|1,0,3
  640.     DC.W    Primitive.LINETYPE|Polygon.FLATSHADED|1,3,6
  641.     DC.W    Primitive.LINETYPE|Polygon.FLATSHADED|1,6,0
  642.     DC.W    Primitive.LINETYPE|Polygon.FLATSHADED|1,1,4
  643.     DC.W    Primitive.LINETYPE|Polygon.FLATSHADED|1,4,7
  644.     DC.W    Primitive.LINETYPE|Polygon.FLATSHADED|1,7,1
  645.     DC.W    Primitive.LINETYPE|Polygon.FLATSHADED|1,2,5
  646.     DC.W    Primitive.LINETYPE|Polygon.FLATSHADED|1,5,8
  647.     DC.W    Primitive.LINETYPE|Polygon.FLATSHADED|1,8,2
  648. Intro.deltaShadowEnd:
  649.  
  650. Intro.flowTable:
  651.     DC.W    1
  652.     DC.W    7
  653. .start:    DC.L    $ffff00ff
  654.     DC.L    $00000000
  655. .end:
  656.  
  657. Intro.logoPic:
  658.     INCBIN    LOGO.APX
  659.  
  660. ;======= OBJECT RESERVES ===================================================
  661.  
  662.     BSS
  663.  
  664. Intro.numStrips:
  665.     DS.W    1
  666. Intro.stripsDone:
  667.     DS.W    1
  668. Intro.newLogo:
  669.     DS.W    1
  670. Intro.startFrame:
  671.     DS.L    1
  672. Intro.zoomStart:
  673.     DS.L    1
  674. Intro.baseAdr:
  675.     DS.L    1
  676. Intro.resRout:
  677.     DS.L    1