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

  1. ; Dotted galaxy. Uses random function with various spreading stuffs.
  2. ; Looks good with about 5000 stars.
  3.  
  4. ;******* OBJECT EQUATES ********
  5.  
  6. ; You can vary all of these to suit your needs.
  7. Galaxy.DISTANCE:    =    500        ; camera distance
  8. Galaxy.DENSITY:        =    2        ; sphere's density (spread)
  9. Galaxy.R_START:        =    $9000        ; startradius (endradius=startradius-$8000)
  10. Galaxy.R_DAMP_LOG:    =    9
  11. Galaxy.ARMLENGTH:    =    6
  12. Galaxy.MAX_COLOR:    =    %0110001100001100
  13.  
  14.             RSRESET
  15. Galaxy.sphereTable:    RS.W    3*100
  16. Galaxy.restoreTable1:    RS.L    10000+1
  17. Galaxy.restoreTable2:    RS.L    10000+1
  18. Galaxy.BLOCK_SIZE:    RS.B    0
  19.  
  20. ;******* OBJECT TABLE ********
  21.  
  22. ; Must be first in object!!
  23. Galaxy.table:
  24.     DC.L    Galaxy.mainLoop
  25.     DC.L    Galaxy.init
  26.     DC.L    rts
  27.     DC.L    Galaxy.setFadeIn
  28.     DC.L    Galaxy.setFadeOut
  29.     DC.L    Galaxy.setFourArm
  30.     DC.L    Galaxy.setTwoArm
  31.     DC.L    Galaxy.setWeirdFourArm
  32.     DC.L    Galaxy.setThreeArm
  33.     DC.L    Galaxy.setWeirdArm2
  34.     DC.L    Galaxy.setWeirdArm3
  35.     DC.L    Galaxy.setText
  36.     DC.L    0
  37.  
  38. ;******* INIT SUBROUTINE ********
  39.  
  40. ; OUTPUT:
  41. ; d0.l: =0 all clear, <0 error
  42. Galaxy.init:
  43.     move.l    #Galaxy.BLOCK_SIZE,d0
  44.     bsr.l    Mem.register
  45.  
  46. .success:
  47.     moveq    #0,d0
  48.     rts
  49. .error:    moveq    #-1,d0
  50.     rts
  51.  
  52. ;******* REALTIME INIT SUBROUTINE ********
  53.  
  54. Galaxy.realtimeInit:
  55.     move.l    #rts,vbl_gfx
  56.  
  57.     bsr.l    Mem.getBlock
  58.     move.l    d0,Galaxy.baseAdr
  59.  
  60.     lea    Galaxy.restoreAddress,a0
  61.     movea.l    Galaxy.baseAdr,a1
  62.     adda.l    #Galaxy.restoreTable1,a1
  63.     move.l    a1,(a0)+
  64.     clr.l    (a1)                    ; Clear dotcount!!!
  65.     movea.l    Galaxy.baseAdr,a1
  66.     adda.l    #Galaxy.restoreTable2,a1
  67.     move.l    a1,(a0)+
  68.     clr.l    (a1)                    ; Clear dotcount!!!
  69.  
  70. ; Kicks in P56 DSP-program..
  71.     move.l    #(Galaxy.p56End-Galaxy.p56)/3,d0
  72.     lea    Galaxy.p56,a0
  73.     bsr.l    Dsp.loadProgram
  74.  
  75.     move.w    #-1,Galaxy.textNum
  76.     bsr.w    Galaxy.setText
  77. ;    bsr.w    Galaxy.setFourArm
  78.  
  79.     move.w    monitormode,d0
  80.     cmpi.w    #vga60,d0
  81.     beq.s    .vga60
  82.     cmpi.w    #vga100,d0
  83.     beq.s    .vga100
  84.     cmpi.w    #rgb50,d0
  85.     beq.s    .rgb50
  86. ; Unknown monitormode..
  87.     rts
  88. .vga60:    move.l    #vga60_16bit_320_200,Galaxy.resRout
  89.     rts
  90. .vga100:move.l    #vga100_16bit_320_200,Galaxy.resRout
  91.     rts
  92. .rgb50:    move.l    #rgb50_16bit_320_200,Galaxy.resRout
  93.     rts
  94.  
  95. ;******* SCREENINIT SUBROUTINE ********
  96.  
  97. Galaxy.initScreen:
  98.     IFEQ    testmode
  99.     movea.l    scr,a0
  100.     bsr.l    CLEAR_320200TSCR
  101.     ENDC
  102.     rts
  103.  
  104. ;******* MAINLOOP SUBROUTINE ********
  105.  
  106. Galaxy.mainLoop:
  107.     move.l    frmcnt,d0
  108.     sub.l    lastframecount,d0
  109.     bne.s    .end_realtime_init
  110.     move.l    d0,-(sp)
  111.     bsr.w    Galaxy.realtimeInit
  112.     move.l    (sp)+,d0
  113. .end_realtime_init:
  114.     cmpi.l    #3,d0
  115.     bhs.s    .end_screeninit
  116.     bsr.w    Galaxy.initScreen
  117. .end_screeninit:
  118.  
  119. ; Perform fade-step if needed.
  120.     bsr.w    Galaxy.fadeIt
  121.  
  122.     movea.l    Galaxy.paintRout,a0
  123.     jsr    (a0)
  124.  
  125.     lea    scr,a0
  126.     move.l    (a0)+,d0
  127.     move.l    (a0),-4(a0)
  128.     move.l    d0,(a0)
  129.  
  130.     movea.l    Galaxy.resRout,a0
  131.     suba.l    a1,a1
  132.     movea.l    d0,a2
  133.     bsr.l    Screen.requestUpdate
  134.     clr.l    Galaxy.resRout
  135.  
  136.     move.w    $0468.w,d0
  137. .wait:    cmp.w    $0468.w,d0
  138.     beq.s    .wait
  139.     rts
  140.  
  141. ;******* OBJECT SUBROUTINES ********
  142.  
  143. Galaxy.setText:
  144.     move.l    #Galaxy.paintText,Galaxy.paintRout
  145.     addq.w    #1,Galaxy.textNum
  146.     move.w    #2,Galaxy.framesToClear
  147.     rts
  148.  
  149. Galaxy.setFadeIn:
  150.     move.w    #1,Galaxy.fade
  151.     rts
  152.  
  153. Galaxy.setFadeOut
  154.     move.w    #-1,Galaxy.fade
  155.     rts
  156.  
  157. Galaxy.setFourArm:
  158.     move.l    #Galaxy.paint3d,Galaxy.paintRout
  159.     move.w    #4,Galaxy.arms
  160.     move.w    #45,Galaxy.armSize
  161.     move.w    #10*sintbllen/9,Galaxy.angle
  162.     st    Galaxy.new            ; Indicate new galaxy pending.
  163.     rts
  164.  
  165. Galaxy.setTwoArm:
  166.     move.l    #Galaxy.paint3d,Galaxy.paintRout
  167.     move.w    #2,Galaxy.arms
  168.     move.w    #60,Galaxy.armSize
  169.     move.w    #sintbllen*5/7,Galaxy.angle
  170.     st    Galaxy.new            ; Indicate new galaxy pending.
  171.     rts
  172.  
  173. Galaxy.setWeirdFourArm:
  174.     move.l    #Galaxy.paint3d,Galaxy.paintRout
  175.     move.w    #4,Galaxy.arms
  176.     move.w    #45,Galaxy.armSize
  177.     move.w    #sintbllen/2,Galaxy.angle
  178.     st    Galaxy.new            ; Indicate new galaxy pending.
  179.     rts
  180.  
  181. Galaxy.setThreeArm:
  182.     move.l    #Galaxy.paint3d,Galaxy.paintRout
  183.     move.w    #3,Galaxy.arms
  184.     move.w    #50,Galaxy.armSize
  185.     move.w    #sintbllen/2,Galaxy.angle
  186.     st    Galaxy.new            ; Indicate new galaxy pending.
  187.     rts
  188.  
  189. Galaxy.setWeirdArm2:
  190.     move.l    #Galaxy.paint3d,Galaxy.paintRout
  191.     move.w    #4,Galaxy.arms
  192.     move.w    #45,Galaxy.armSize
  193.     move.w    #sintbllen*4/7,Galaxy.angle
  194.     st    Galaxy.new            ; Indicate new galaxy pending.
  195.     rts
  196.  
  197. Galaxy.setWeirdArm3:
  198.     move.l    #Galaxy.paint3d,Galaxy.paintRout
  199.     move.w    #3,Galaxy.arms
  200.     move.w    #50,Galaxy.armSize
  201.     move.w    #sintbllen*2/3,Galaxy.angle
  202.     st    Galaxy.new            ; Indicate new galaxy pending.
  203.     rts
  204.  
  205. Galaxy.paintText:
  206.     IFEQ    testmode
  207.     movea.l    scr,a0
  208.     bsr.l    CLEAR_320200TSCR
  209.     ENDC
  210.  
  211.     move.w    Galaxy.textNum,d0
  212.     movea.l    (Galaxy.textAdrTable,d0.w*4),a4    ; a4: text
  213.     movea.l    a4,a1
  214.     clr.w    d2
  215.  
  216. .lineloop:
  217. ; a4: linestart
  218.     movea.l    a4,a1
  219.     move.w    #320,d0
  220.  
  221. ; Get linewidth..
  222.     lea    Font.charTable,a2
  223.     clr.w    d1
  224. .charloop:
  225.     clr.l    d3
  226.     move.b    (a1)+,d3
  227.     beq.s    .linewidth_calced
  228.     subi.b    #32,d3
  229.     mulu.w    #6,d3
  230.     add.w    4(a2,d3.l),d1
  231.     addq.w    #1,d1
  232.     bra.s    .charloop
  233. .linewidth_calced:
  234.     subi.w    #320,d1
  235.     neg.w    d1
  236.     bpl.s    .ok
  237.     clr.w    d1
  238. .ok:    lsr.w    d1
  239.  
  240.     move.l    a1,-(sp)
  241.     move.w    d2,-(sp)
  242.  
  243. ; Paint line..
  244.     movea.l    scr,a0                ; a0: screen
  245.     bsr.l    Font.paintText
  246.  
  247.     move.w    (sp)+,d2
  248.     movea.l    (sp)+,a4
  249.  
  250.     addi.w    #16,d2                ; d2.w=y offset of next line
  251.     tst.b    (a4)
  252.     bne.s    .lineloop
  253.  
  254.     rts
  255.  
  256. Galaxy.fadeIt:
  257.     move.l    frmcnt,d0
  258.     move.l    d0,d1
  259.     andi.w    #%10,d0
  260.     beq.s    .right_frame
  261.     rts
  262. .right_frame:
  263.     tst.w    Galaxy.fade
  264.     bgt.s    .fade_in
  265.     bmi.s    .fade_out
  266.     rts
  267. .fade_in:
  268.     andi.w    #%01,d1
  269.     beq.s    .inc_green
  270.     addi.w    #%0000100000100001,Galaxy.color
  271.     cmpi.w    #Galaxy.MAX_COLOR,Galaxy.color
  272.     bhs.s    .ceiling
  273.     rts
  274. .inc_green:
  275.     addi.w    #%0000000000100000,Galaxy.color
  276.     cmpi.w    #Galaxy.MAX_COLOR,Galaxy.color
  277.     bhs.s    .ceiling
  278.     rts    
  279. .fade_out:
  280.     andi.w    #%01,d1
  281.     beq.s    .dec_green
  282.     subi.w    #%0000100000100001,Galaxy.color
  283.     bcs.s    .floor
  284.     rts
  285. .dec_green:
  286.     subi.w    #%0000000000100000,Galaxy.color
  287.     cmpi.w    #Galaxy.MAX_COLOR,Galaxy.color
  288.     bhs.s    .floor
  289.     rts    
  290.  
  291. .ceiling:
  292.     move.w    #Galaxy.MAX_COLOR,Galaxy.color
  293.     bra.s    .turn_off    
  294. .floor:    clr.w    Galaxy.color
  295. .turn_off:
  296.     clr.w    Galaxy.fade
  297.     rts
  298.  
  299. ; Generates a sphere of quadraticly spread 3d points.
  300. ; Linear spread looks too ordinary. Quadratic spread looks good.
  301. ; Quatric spread is okay.
  302. ; INPUT:
  303. ; d0.w=amount of points
  304. ; d1.w=radius [0..32767]
  305. ; a0: dest buffer
  306. Galaxy.calcSphere:
  307.     move.w    d0,d7            ; d7.w=points to do
  308.     move.l    random,d0
  309.  
  310. .loop:
  311. ; Calculate next random value.
  312.     move.l    d0,d2
  313.     mulu.w    d0,d0
  314.     eor.l    d2,d0
  315.     addq.l    #7,d0
  316.     move.w    d0,d3
  317.     move.l    d0,d4
  318.     swap    d4
  319.     rol.l    #8,d0
  320. ; Calculate next random value.
  321.     move.l    d0,d2
  322.     mulu.w    d0,d0
  323.     eor.l    d2,d0
  324.     addq.l    #7,d0
  325.     move.w    d0,d5
  326.     rol.l    #8,d0
  327.     movea.l    d3,a3
  328.     movea.l    d4,a4
  329.     movea.l    d5,a5
  330.     muls.w    d3,d3
  331.     muls.w    d4,d4
  332.     muls.w    d5,d5
  333.     add.l    d3,d5
  334.     add.l    d4,d5
  335.     cmpi.l    #32767*32767,d5
  336.     bhs.s    .loop
  337.  
  338.     movem.l    d0/d1,-(sp)
  339.     move.l    d5,d1
  340.     bsr.l    Math.sqrt
  341.     move.l    d0,d6
  342.     swap    d6
  343.     movem.l    (sp)+,d0/d1
  344.  
  345.     move.l    a3,d3
  346.     move.l    a4,d4
  347.     move.l    a5,d5
  348.  
  349.     REPT    Galaxy.DENSITY
  350.     muls.w    d6,d3
  351.     muls.w    d6,d4
  352.     muls.w    d6,d5
  353.     add.l    d3,d3
  354.     add.l    d4,d4
  355.     add.l    d5,d5
  356.     swap    d3
  357.     swap    d4
  358.     swap    d5
  359.     ENDR
  360.  
  361.     muls.w    d1,d3
  362.     muls.w    d1,d4
  363.     muls.w    d1,d5
  364.     add.l    d3,d3
  365.     add.l    d4,d4
  366.     add.l    d5,d5
  367.     swap    d3
  368.     swap    d4
  369.     swap    d5
  370.  
  371.     move.w    d3,(a0)+
  372.     move.w    d4,(a0)+
  373.     move.w    d5,(a0)+
  374.     subq.w    #1,d7
  375.     bne    .loop
  376.  
  377.     move.l    d0,random
  378.     rts
  379.  
  380. ; Calculates galaxy points and sends them to the dsp.
  381. ; PRE: Var values must be set:
  382. ; Galaxy.armSize, Galaxy.armPoints, Galaxy.arms
  383. Galaxy.calc:
  384.     move.w    Galaxy.armSize,d0
  385.     addq.w    #1,d0
  386.     mulu.w    Galaxy.armSize,d0
  387.     lsr.l    d0
  388.     move.w    d0,Galaxy.armPoints
  389.     move.w    Galaxy.arms,d0
  390.     mulu.w    Galaxy.armPoints,d0
  391.     move.l    d0,Galaxy.points
  392.     sendLongToDsp    Galaxy.points
  393.     lea    sine_tbl,a1
  394.     clr.w    .c                ; c = actual sphere number
  395.  
  396. .loop:    movea.w    .c(pc),a5
  397.     addq    #1,a5
  398.  
  399.     IFNE    1
  400. ; [1-cos(pi*t)]/2
  401.     move.w    .c(pc),d0
  402.     move.l    #sintbllen,d1
  403.     divu.w    Galaxy.armSize,d1
  404.     mulu.w    d1,d0
  405.     lsr.l    d0
  406. ; d0.l=c*sintbllen/(Galaxy.ARMSIZE*2)
  407.     Get_Cos    a1,d0,d0
  408.     asr.w    d0
  409.     addi.w    #$4000,d0
  410.     move.w    Galaxy.angle,d1
  411.     mulu.w    d0,d1
  412.     add.l    d1,d1
  413.     swap    d1
  414.     ELSE
  415.     move.w    .c(pc),d0
  416.     mulu.w    d0,d0
  417.     move.w    Galaxy.armSize,d1
  418.     mulu.w    d1,d1
  419.     move.l    d1,d2
  420.     sub.w    d0,d1
  421.     move.l    d1,d0
  422.     divu.w    #$7FFF/Galaxy.ARMSIZE*Galaxy.ARMSIZE,d0
  423.     mulu.w    #Galaxy.ANGLE/(Galaxy.ARMSIZE*Galaxy.ARMSIZE),d1
  424.     ENDC
  425.  
  426.     move.w    Galaxy.arms,d6
  427.     subq.w    #1,d6
  428.  
  429. .armloop:
  430. ; Add angle-step to current angle..
  431.     move.l    #sintbllen,d2
  432.     divu.w    Galaxy.arms,d2
  433.     add.w    d2,d1
  434.  
  435.     Do_SinModulo    d1
  436.     Get_SinCos    a1,d1,d2,d3
  437.     muls.w    d0,d2
  438.     muls.w    d0,d3
  439.     swap    d2
  440.     swap    d3
  441.     asr.w    #Galaxy.ARMLENGTH,d2
  442.     asr.w    #Galaxy.ARMLENGTH,d3
  443.     movem.l    d0-a6,-(sp)
  444.     movea.l    Galaxy.baseAdr,a0
  445.     adda.l    #Galaxy.sphereTable,a0
  446.     move.w    #Galaxy.R_START,d1
  447.     sub.w    d0,d1
  448.     moveq    #Galaxy.R_DAMP_LOG,d0
  449.     lsr.w    d0,d1
  450.     move.w    a5,d0
  451.     bsr.w    Galaxy.calcSphere
  452.     movem.l    (sp)+,d0-a6
  453.  
  454.     ext.l    d2
  455.     ext.l    d3
  456.     move.w    a5,d7
  457.     subq.w    #1,d7
  458.     movea.l    Galaxy.baseAdr,a2
  459.     adda.l    #Galaxy.sphereTable,a2
  460. .pointloop:
  461.     movem.w    (a2)+,d4/d5
  462.     add.l    d2,d4
  463.     add.l    d3,d5
  464.     sendLongToDsp    d4
  465.     sendLongToDsp    d5
  466.     move.w    (a2)+,d4
  467.     ext.l    d4
  468.     sendLongToDsp    d4
  469.     dbf    d7,.pointloop
  470.  
  471.     dbf    d6,.armloop
  472.  
  473.     move.w    .c(pc),d0
  474.     addq.w    #1,d0
  475.     move.w    d0,.c
  476.     cmp.w    Galaxy.armSize,d0
  477.     blt    .loop
  478.     
  479.     rts
  480.  
  481. .c:    DC.W    0
  482.  
  483. ; Paint a galaxy and possibly refresh.
  484. Galaxy.paint3d:
  485. ; Send shape (or null) to dsp.
  486.     tst.w    Galaxy.new
  487.     beq.s    .not_new
  488.     bsr.w    Galaxy.calc
  489.     bra.s    .end_transfer_shape
  490. .not_new:
  491.     sendLongToDsp    #0
  492. .end_transfer_shape:
  493.     clr.w    Galaxy.new
  494.  
  495.     move.l    Galaxy.points,d0
  496. ; Send over the amount of points to render.
  497.     tst.w    d0
  498.     bne.s    .amount_not_zero
  499.     addq.w    #1,d0
  500. .amount_not_zero:
  501.     sendLongToDsp    d0
  502.  
  503. ; First send rotation parameters to dsp..
  504.     move.w    $4bc.w,d0
  505.     lsr.w    #1,d0
  506.     move.w    d0,d2
  507.     move.w    d0,d4
  508.     mulu.w    #3,d2
  509.     lsr.l    #2,d2
  510.     mulu.w    #5,d4
  511.     lsr.l    #2,d4
  512.     Do_SinModulo    d0
  513.     Do_SinModulo    d2
  514.     Do_SinModulo    d4
  515.     lea    sine_tbl,a0
  516.     Get_SinCos    a0,d0,d0,d1
  517.     Get_SinCos    a0,d2,d2,d3
  518.     Get_SinCos    a0,d4,d4,d5
  519.     lsl.l    #8,d0
  520.     lsl.l    #8,d1
  521.     lsl.l    #8,d2
  522.     lsl.l    #8,d3
  523.     lsl.l    #8,d4
  524.     lsl.l    #8,d5
  525.     sendLongToDsp    d0
  526.     sendLongToDsp    d1
  527.     sendLongToDsp    d2
  528.     sendLongToDsp    d3
  529.     sendLongToDsp    d4
  530.     sendLongToDsp    d5
  531.  
  532. ; Send the screencenter...
  533.     movea.l    scr,a0
  534.     adda.l    #(320*100+160)*2,a0
  535.     sendLongToDsp    a0
  536.  
  537. ;- parallel cpu/dsp --------------------------------------------------------
  538.  
  539. ; Restore background..
  540.     tst.w    Galaxy.framesToClear
  541.     beq.s    .normal_restore
  542.  
  543. ; Wipe whole screen.
  544.     subq.w    #1,Galaxy.framesToClear
  545.     IFEQ    testmode
  546.     movea.l    scr,a0
  547.     bsr.l    CLEAR_320200TSCR
  548.     ENDC
  549.     bra.w    .end_restore
  550.  
  551. .normal_restore:
  552.     movea.l    Galaxy.restoreAddress,a3
  553.     move.l    (a3)+,d7
  554.     beq.w    .end_restore
  555.     move.w    d7,d1
  556.     lsr.w    #5,d7
  557.     andi.w    #(1<<5)-1,d1
  558.     neg.w    d1
  559.     clr.w    d0
  560.     jmp    (.jumpend.w,pc,d1.w*4)
  561. .restore_loop:
  562.     REPT    1<<5
  563.     movea.l    (a3)+,a0
  564.     move.w    d0,(a0)
  565.     ENDR
  566. .jumpend:
  567.     dbf    d7,.restore_loop
  568. .end_restore:
  569.  
  570. ;- end of parallel part ----------------------------------------------------
  571.  
  572. ; Receive and paint! NOTE: can only be painted to STRAM!
  573.     movea.l    Galaxy.restoreAddress,a3
  574.     moveq    #$ffffffff,d4
  575.     move.l    #$00ffffff,d5
  576.     move.w    Galaxy.color,d6
  577.     lea    $ffffa204.w,a1
  578.     clr.l    d7
  579.     receiveWordFromDsp    d7
  580.     move.l    d7,(a3)+
  581.     beq.s    .end_plot
  582.  
  583.     IFNE    1
  584. ; Unrolled version, this is just that bit faster!
  585.     move.w    d7,d1
  586.     lsr.w    #3,d7
  587.     andi.w    #(1<<3)-1,d1
  588.     mulu.w    #10,d1
  589.     neg.l    d1
  590.     jmp    (.jump.w,pc,d1.l)
  591.  
  592. .loop:
  593.     REPT    1<<3
  594.     movea.l    (a1),a0
  595.     move.l    a0,(a3)+
  596.     add.w    d6,(a0)
  597.     bcc.s    *+4        ;.next
  598.     move.w    d4,(a0)
  599.     ENDR
  600. .jump:    dbf    d7,.loop    
  601.  
  602.     ELSE
  603.  
  604. ; Simple version, just a tad too slow..
  605.     subq.w    #1,d7
  606.  
  607. .loop:    movea.l    (a1),a0
  608.     move.l    a0,(a3)+
  609.     add.w    d6,(a0)
  610.     bcc.s    .next
  611.     move.w    d4,(a0)
  612. .next:    dbf    d7,.loop
  613.  
  614.     ENDC
  615. .end_plot:
  616.  
  617. ; Swap restore table addresses.
  618.     lea    Galaxy.restoreAddress,a0
  619.     move.l    (a0)+,d0
  620.     move.l    (a0),-4(a0)
  621.     move.l    d0,(a0)
  622.     rts
  623.  
  624. ;******* OBJECT DATA ********
  625.  
  626.     DATA
  627.  
  628. Galaxy.p56:
  629.     INCBIN    GALAXY2.P56
  630. Galaxy.p56End:
  631.     EVEN
  632.  
  633. Galaxy.textAdrTable:
  634.     DC.L    Galaxy.text1
  635.     DC.L    Galaxy.text2
  636.     DC.L    Galaxy.text3
  637.     DC.L    Galaxy.text4
  638.     DC.L    Galaxy.text5
  639.     DC.L    Galaxy.text6
  640.     DC.L    Galaxy.text7
  641.  
  642. Galaxy.text1:
  643.     DC.B    " ",0," ",0," ",0," ",0," ",0
  644.     DC.B    "all these worlds are yours",0,0
  645.  
  646. ; HOLOCAUST, HEMOROIDS
  647. Galaxy.text2:
  648.     DC.B    " ",0," ",0," ",0
  649.     DC.B    "aggression  altair  art  aura  avena",0
  650.     DC.B    "blindio  checkpoint  cih  cobra  cream",0
  651.     DC.B    "deltaforce  dhs  dune  eko  ephidrena",0
  652.     DC.B    "equinox  escape  exa  fit  fun  giants",0
  653.     DC.B    "hydroxid  indus  inter  kalms  lazer",0
  654.     DC.B    "mind design  mr ni  mystic bytes  nature",0
  655.     DC.B    "newbeat  nocrew  ochrana  omega",0,0
  656.  
  657. Galaxy.text3:
  658.     DC.B    " ",0," ",0," ",0
  659.     DC.B    "overlanders  oxygene  ozk  paranoia",0
  660.     DC.B    "phf  pov  remo  reservoir gods",0
  661.     DC.B    "richard karsmakers  scoopex  sectorone",0
  662.     DC.B    "sentry  silents  st survivor  supremacy",0
  663.     DC.B    "sync  taquart  teenage  therapy  tlb",0
  664.     DC.B    "tnb  toys  tristan  tscc  ulm  wildfire",0
  665.     DC.B    "yescrew  ym rockerz  x-troll",0,0
  666.  
  667. Galaxy.text4:
  668.     DC.B    "credits for delta",0
  669.     DC.B    " ",0," ",0
  670.     DC.B    "code:",0
  671.     DC.B    "earx",0
  672.     DC.B    " ",0
  673.     DC.B    "graphics:",0
  674.     DC.B    "evl  havoc",0
  675.     DC.B    " ",0
  676.     DC.B    "music:",0
  677.     DC.B    "dforce  earx  frequent  laxical",0
  678.     DC.B    0
  679.  
  680. Galaxy.text5:
  681.     DC.B    "inspiration",0
  682.     DC.B    " ",0," ",0
  683.     DC.B    "lucky of st",0
  684.     DC.B    "newface",0
  685.     DC.B    "no",0
  686.     DC.B    "tat",0
  687.     DC.B    " ",0
  688.     DC.B    "imminent",0
  689.     DC.B    "lustmord",0
  690.     DC.B    "terror against terror",0,0
  691.  
  692. Galaxy.text6:
  693.     DC.B    " ",0," ",0," ",0
  694.     DC.B    "if you want to like this demo as much",0
  695.     DC.B    "as we liked making it...",0
  696.     DC.B    " ",0
  697.     DC.B    " ",0
  698.     DC.B    "...feel free to watch for three years",0,0
  699.  
  700. Galaxy.text7:
  701.     DC.B    " ",0," ",0," ",0," ",0
  702.     DC.B    "stay cool",0
  703.     DC.B    "stay atari",0
  704.     DC.B    " ",0
  705.     DC.B    "lineout 2002/2003",0,0
  706.  
  707.     EVEN
  708.  
  709. ;******* OBJECT RESERVES ********
  710.  
  711.     BSS
  712.  
  713. Galaxy.baseAdr:
  714.     DS.L    1
  715.  
  716. Galaxy.restoreAddress:
  717.     DS.L    2
  718.  
  719. Galaxy.arms:
  720.     DS.W    1                ; #arms in galaxy
  721. Galaxy.distance:
  722.     DS.W    1                ; camera distance
  723. Galaxy.rStart:
  724.     DS.W    1                ; startradius (endradius=startradius-$8000)
  725. Galaxy.rDampLog:
  726.     DS.W    1
  727. Galaxy.armLength:
  728.     DS.W    1
  729. Galaxy.armSize:
  730.     DS.W    1
  731. Galaxy.angle:
  732.     DS.W    1                ; arm's final angle
  733. Galaxy.armPoints:
  734.     DS.W    1
  735. Galaxy.points:
  736.     DS.L    1                ; #points in galaxy
  737.  
  738. Galaxy.startTime:
  739.     DS.W    1
  740. Galaxy.new:
  741.     DS.W    1                ; new galaxy pending?
  742.  
  743. Galaxy.fade:
  744.     DS.W    1                ; fade direction (-1,0,+1)
  745. Galaxy.color:
  746.     DS.W    1
  747. Galaxy.framesToClear:
  748.     DS.W    1
  749.  
  750. Galaxy.paintRout:
  751.     DS.L    1
  752.  
  753. Galaxy.resRout:
  754.     DS.L    1
  755.  
  756. Galaxy.textNum:
  757.     DS.W    1
  758.  
  759. ;******* END OF DEMO-EFFECT OBJECT ********