home *** CD-ROM | disk | FTP | other *** search
/ Fujiology Archive / fujiology_archive_v1_0.iso / !FALCON / AGGRESSN / MOTION.ZIP / MOTION / WRITER3.S < prev    next >
Text File  |  1999-01-02  |  25KB  |  1,034 lines

  1. ;      /| __    _    /  __      
  2. ;     / |/ _ __| \  <  <    _   
  3. ;    /__|\ // _| / / \  \ |/ \  |
  4. ;   <   | \ \ /|< <_  >  >|\_/|\|
  5. ;    \  |    \ | \ \ / _/ |   | | 
  6. ;     \        |    /
  7. ;
  8. ; tekstiwriteri+diffusio
  9. ; 262k taulun wflowtable sorsan jalkeen.. luodaan initissa vain kerran..  
  10.  
  11. write.run    =    1
  12.  
  13.     IFNE    write.run
  14.     OPT    d+,c-,p=68030
  15.  
  16. memory    =    1500*1024
  17.  
  18. Overdose_Beyond_Braindamage
  19.     include    freeintx.s
  20.     even
  21.  
  22. DEMO:
  23.     move.w    activepoint,d0
  24.     move.l    (activelist,pc,d0.w*4),a0
  25.     jsr    (a0)
  26.     rts
  27.  
  28. viimeinen
  29.     st     Space_Pressed
  30.     rts
  31.  
  32. activepoint    dc.w    0    
  33. activelist    
  34.     DC.L    initwrite
  35.     DC.L    runwrite
  36.     DC.L    runwrite
  37. ;    dc.l    dummy
  38.     dc.l    viimeinen
  39.     ENDC
  40.  
  41. ;------------
  42. writeTV:
  43. .HHT    SET     $fe    *fe    ; Horizontal Hold Timer
  44. .HBB    SET     $a2     $cb    *cb    ; Horizontal Border Begin
  45. .HBE    SET     $20     $27-$27    *27    ; Horizontal Border End
  46. .HDB    SET     $30     $2e-40    *1c    ; Horizontal Display Begin
  47. .HDE    SET     $91     $8f+40    *7d    ; Horizontal Display End
  48. .HSS    SET     $d8    *d8    ; Horizontal Synchro Start
  49.  
  50. .VFT    SET    $271    *271    ; (31250/Hz!1) ; V FREQUENCY
  51. .VBB    SET     $227    *265    ; V BORDER BLANK
  52. .VBE    SET     $47    *2f    ; ($265-$02f)/2 = 283 LINES
  53. .VDB    SET     $47    *57    ; V DISPLAY SIZE (256 lines..)
  54. .VDE    SET     $227    *237    ; ($237-$057)/2 = 240 LINES
  55. .VSS    SET     $26b    *26b    ; V SYNCHRO START (<FREQUENCY!)
  56. .VCLK    SET    $183    *181    ; Video Clock
  57. .VCO    SET    $000        ; Video Control
  58. .WIDE    set    320        ;screen wide (words)
  59. .modulo    set    0        ;screen modulo
  60. .VMODE    set    $100        ;screen mode (true)
  61. ; Video Control TV Bits                3 2 1 0
  62. ;    Horizontal Resolution-------------------+-+ + +
  63. ;        00: LORES (320 Pixels)            | |
  64. ;        01: HIRES (640 Pixels)            | |
  65. ;        10: SUPER HIRES (1280 Pixels)        | |
  66. ;            (shires seems to work with        | |
  67. ;             16 colors only (???))        | |
  68. ;    Interlace-----------------------------------' |
  69. ;        To enable interlacing, set VFT          |
  70. ;        bit 0 to logic 0.              |
  71. ;    Vertical Resolution---------------------------'
  72. ;        0: 200 lines
  73. ;        1: 100 lines
  74.  
  75.     dc.w    .HHT&$1ff,.HBB&$1ff,.HBE&$1ff,.HDB&$1ff,.HDE&$1ff,.HSS&$1ff
  76.     dc.w    .VFT&$3ff,.VBB&$3ff,.VBE&$3ff,.VDB&$3ff,.VDE&$3ff,.VSS&$3ff
  77.     dc.w    .VCLK&$1ff,.VCO&$00f
  78.     dc.l    .wide,.modulo,.vmode
  79.  
  80.  
  81. *********************************************************************************
  82. *
  83. *********************************************************************************
  84. initwscreen:
  85.  
  86.     move.l    address.freemem,d0
  87.     add.l    #wruutu.write+255,d0
  88.     clr.b    d0
  89.     move.l    d0,adr_screen1    ;set active
  90.     MOVE.l  d0,wfalconscreen     ;used screen
  91.  
  92.     bsr    clearpaper
  93.  
  94.     move.l    #writetv,pointertv
  95.     jsr    middlesetscreen
  96.     move.w    #$2300,sr
  97.     
  98.     move.l    #writevbl,own_vbl
  99.     rts
  100. initwrite:
  101.     BSR     wexpand_ball
  102.     BSR     wmakeflowtable
  103.  
  104.     addq.w    #1,activepoint
  105.  
  106.     rts
  107. ;----------------------------------------------------
  108. writevbl:
  109.     move.l    #$0,$ffff9800.w
  110.     rts
  111.  
  112. ;---------------------------------------------
  113. runwrite
  114.     bsr    initwscreen
  115.     move.l    writetask,a1
  116.     move.l    (a1),a1
  117.     add.l    #4,writetask
  118.     BSR    wbezieri
  119.     rept    6
  120.     bsr    wasm_diffuse
  121.     endr
  122.     addq.w    #1,activepoint
  123.     rts
  124.  
  125.  
  126. writetask
  127.     dc.l    .wlist
  128. .wlist    
  129.     dc.l    waggro
  130.     dc.l    waggro_ampi
  131.     dc.l    wtest_bez
  132. ;---------------
  133. dummy
  134.     rts
  135.  
  136. ;------------------------------------
  137. clearpaper
  138.     move.l    wfalconscreen,a0
  139.     move.l    #$00000000,d1
  140.     move.w    #(320*256/16)-1,d0
  141. .wiper
  142.     move.l    d1,(a0)+
  143.     move.l    d1,(a0)+
  144.     move.l    d1,(a0)+
  145.     move.l    d1,(a0)+
  146.     move.l    d1,(a0)+
  147.     move.l    d1,(a0)+
  148.     move.l    d1,(a0)+
  149.     move.l    d1,(a0)+
  150.     dbf    d0,.wiper
  151.     rts
  152. ;*********************************************************************
  153. ;*                                                                   *
  154. ;* Performs drawing of a bezier-file found from a1 to a 320*240      *
  155. ;* screen, the address of which is stored in falconscreen-variable   *
  156. ;*                                                                   *
  157. ;*********************************************************************
  158.  
  159. wbezieri:
  160.   LEA wbeztable,a2
  161.  
  162.   MOVE.w  (a1)+,d7
  163.   SUBQ  #1,d7
  164.  
  165. wbez_main_loop:
  166.   SWAP  d7
  167.   MOVE.l  a2,a0
  168.   MOVEQ #0,d5
  169.   MOVEQ #0,d6
  170.   MOVE.w 16(a1),d5
  171.   MOVE.w 18(a1),d6
  172.   SUB.w  d5,d6
  173.   SWAP  d5            ;size
  174.   MOVE.w  #0,d5
  175.   SWAP  d6
  176.   MOVE.w  #0,d6
  177.   ASR.l #5,d6         ;sizechange
  178.  
  179.   MOVE.l  d5,wsizepos
  180.   MOVE.l  d6,wsizechange
  181.  
  182.   MOVE.l 20(a1),d3
  183.   MOVE.l 24(a1),d4
  184.  
  185. ;blue
  186.   MOVEQ   #0,d5
  187.   MOVEQ   #0,d6
  188.   MOVE.b  d3,d5
  189.   MOVE.b  d4,d6
  190.   SWAP  d5
  191.   SWAP  d6
  192.   MOVE.l  d5,wbluepos
  193.   SUB.l   d5,d6
  194.   ASR.l   #5,d6
  195.   MOVE.l  d6,wbluechange
  196.  
  197. ;green
  198.   LSR.l   #8,d3
  199.   LSR.l   #8,d4
  200.   MOVEQ   #0,d5
  201.   MOVEQ   #0,d6
  202.   MOVE.b  d3,d5
  203.   MOVE.b  d4,d6
  204.   SWAP  d5
  205.   SWAP  d6
  206.   MOVE.l  d5,wgreenpos
  207.   SUB.l   d5,d6
  208.   ASR.l   #5,d6
  209.   MOVE.l  d6,wgreenchange
  210.  
  211. ;red
  212.   LSR.l   #8,d3
  213.   LSR.l   #8,d4
  214.   MOVEQ   #0,d5
  215.   MOVEQ   #0,d6
  216.   MOVE.b  d3,d5
  217.   MOVE.b  d4,d6
  218.   SWAP  d5
  219.   SWAP  d6
  220.   MOVE.l  d5,wredpos
  221.   SUB.l   d5,d6
  222.   ASR.l   #5,d6
  223.   MOVE.l  d6,wredchange
  224.  
  225.   MOVE.w  #31,d7
  226.  
  227. wbez_loop:
  228.   MOVE.l  wsizepos,d5
  229.   MOVE.l  wsizechange,d6
  230.   MOVE.l  d5,d0
  231.   MOVE.w  #0,d0
  232.   SWAP    d0
  233.   ADD.l   d6,d5
  234.   MOVE.l  d5,wsizepos
  235.  
  236.   MOVE.w  #0,d5
  237.   ASR.l   #1,d5
  238.   NEG.l   d5
  239.   MOVE.l  d5,d6
  240.  
  241.   MOVE.l  (a0)+,d1
  242.   MOVEQ   #0,d2
  243.   MOVEQ   #0,d3
  244.   MOVE.w  12(a1),d2
  245.   MOVE.w  14(a1),d3
  246.   MULU.l  d1,d2
  247. ;  Dc.l  $4c012002
  248.   MULU.l  d1,d3
  249. ;  Dc.l  $4c013003
  250.   ADD.l  d2,d5
  251.   ADD.l  d3,d6
  252.  
  253.   MOVE.l  124(a0),d1
  254.   MOVEQ   #0,d2
  255.   MOVEQ   #0,d3
  256.   MOVE.w  8(a1),d2
  257.   MOVE.w  10(a1),d3
  258.   MULU.l  d1,d2
  259. ;  Dc.l  $4c012002
  260.   MULU.l  d1,d3
  261. ;  Dc.l  $4c013003
  262.   ADD.l  d2,d5
  263.   ADD.l  d3,d6
  264.  
  265.   MOVE.l  252(a0),d1
  266.   MOVEQ   #0,d2
  267.   MOVEQ   #0,d3
  268.   MOVE.w  4(a1),d2
  269.   MOVE.w  6(a1),d3
  270.   MULU.l  d1,d2
  271. ;  Dc.l  $4c012002
  272.   MULU.l  d1,d3
  273. ;  Dc.l  $4c013003
  274.   ADD.l  d2,d5
  275.   ADD.l  d3,d6
  276.  
  277.   MOVE.l  380(a0),d1
  278.   MOVEQ   #0,d2
  279.   MOVEQ   #0,d3
  280.   MOVE.w  0(a1),d2
  281.   MOVE.w  2(a1),d3
  282.   MULU.l  d1,d2
  283. ;  Dc.l  $4c012002
  284.   MULU.l  d1,d3
  285. ;  Dc.l  $4c013003
  286.   ADD.l  d2,d5
  287.   ADD.l  d3,d6
  288.  
  289. ;  xpos=Int(beztable(n)*bezi\x4+beztable(n+32)*bezi\x3+beztable(n+64)*bezi\x2+beztable(n+96)*bezi\x1)-size/2
  290. ;  ypos=Int(beztable(n)*bezi\y4+beztable(n+32)*bezi\y3+beztable(n+64)*bezi\y2+beztable(n+96)*bezi\y1)-size/2
  291.  
  292.   MOVEQ #0,d2
  293.   MOVEQ #0,d3
  294.  
  295.   SWAP  d5
  296.   SWAP  d6
  297.   MOVE.w  d5,d2
  298.   MOVE.w  d6,d3
  299.  
  300.   MOVE.l  wredpos,d5
  301.   MOVE.l  wredchange,d6
  302.   MOVE.l  d5,d1
  303.   MOVE.w  #0,d1
  304.   ADD.l   d6,d5
  305.   MOVE.l  d5,wredpos
  306.  
  307.   MOVE.l  wgreenpos,d5
  308.   MOVE.l  wgreenchange,d6
  309.   MOVE.l  d5,d4
  310.   MOVE.w  #0,d4
  311.   LSR.l   #8,d4
  312.   MOVE.w  d4,d1
  313.   ADD.l   d6,d5
  314.   MOVE.l  d5,wgreenpos
  315.  
  316.   MOVE.l  wbluepos,d5
  317.   MOVE.l  wbluechange,d6
  318.   MOVE.l  d5,d4
  319.   SWAP    d4
  320.   MOVE.b  d4,d1
  321.   ADD.l   d6,d5
  322.   MOVE.l  d5,wbluepos
  323.  
  324. ;* d0 - size                                                    *
  325. ;* d1 - 24-bit colour                                           *
  326. ;* d2 - x                                                       *
  327. ;* d3 - y                                                       *
  328.  
  329.   BSR wreal_ball
  330.  
  331.   DBRA  d7,wbez_loop
  332.   LEA   28(a1),a1
  333.  
  334.   SWAP  d7
  335.  
  336.   DBRA  d7,wbez_main_loop
  337.  
  338.   RTS
  339.  
  340. ;****************************************************************
  341. ;*                                                              *
  342. ;* Real ball draw, adds ball to screen.                         *
  343. ;* d0 - size                                                    *
  344. ;* d1 - 24-bit colour                                           *
  345. ;* d2 - x                                                       *
  346. ;* d3 - y                                                       *
  347. ;****************************************************************
  348.  
  349. wreal_ball:
  350.   MOVE.l  a2,wsailo
  351.  
  352.   BSR wcreate_colour_data
  353.  
  354.   LEA wrawball,a3
  355.   LEA wflowtable,a4
  356.   MOVE.l  wfalconscreen,a5
  357.   LEA wcolourtable,a2
  358.   MULU  #320*2,d3
  359.   LSL   #1,d2
  360.   ADD.l d3,d2
  361.   ADD.l d2,a5
  362.   MOVE.l  a3,a6
  363.  
  364.   MOVE.l #$400000,d2  ;decimal skip
  365.   DIVU.l  d0,d2
  366.   ;Dc.l  $4c402002
  367.  
  368.   MOVEQ #0,d1
  369.   MOVEQ #0,d3         ;xcount
  370.   MOVEQ #0,d4         ;ycount
  371.   MOVEQ #0,d5
  372.  
  373.   SUBQ  #1,d0
  374.   MOVE.w d0,d6
  375.  
  376. wrd_yloop:
  377.   SWAP  d6
  378.   MOVE.w  d0,d6
  379. wrd_xloop:
  380.   MOVE.b 0(a6,d3.w),d5
  381.   CMP.w #0,d5
  382.   BEQ   wnodraw
  383.  
  384.   LSL.w #1,d5
  385.   MOVE.w  0(a2,d5.w),d5
  386.  
  387.   MOVE.w  (a5),d1
  388.   ADD.l d1,d5
  389.   LSL.l #1,d5
  390.   MOVE.w 0(a4,d5.l),(a5)
  391. ;    move.w    #$ffff,(a5)
  392.  
  393.   MOVEQ #0,d5
  394.  
  395. wnodraw:
  396.   ADDQ  #2,a5
  397.  
  398.   SWAP  d3
  399.   ADD.l d2,d3
  400.   SWAP  d3
  401.  
  402.   DBRA  d6,wrd_xloop
  403.  
  404.   MOVEQ #0,d3
  405.  
  406.   SWAP  d4
  407.   ADD.l d2,d4
  408.   SWAP  d4
  409.  
  410.   MOVE.w d4,d5
  411.   LSL.l  #6,d5
  412.   MOVE.l  a3,a6
  413.   ADD.l   d5,a6
  414.   MOVEQ  #0,d5
  415.  
  416.   MOVE.w #319,d5
  417.   SUB.w d0,d5
  418.   LSL.w #1,d5
  419.   ADD.l d5,a5
  420.  
  421.   MOVEQ #0,d5
  422.  
  423.   SWAP  d6
  424.   DBRA  d6,wrd_yloop
  425.   MOVE.l  wsailo,a2
  426.   RTS
  427.  
  428. ;****************************************************************
  429. ;*                                                              *
  430. ;* Creates 16-bit colour fade from 0 to 24-bit colour in d1.    *
  431. ;\*                                                              *
  432. ;****************************************************************
  433.  
  434. ;don't change d0,d2,d3,d7,a0,a1,a2
  435.  
  436. wcreate_colour_data:
  437.   MOVE.l  d1,a4
  438.  
  439. ;blue
  440.   LEA wcolourtable,a3
  441.  
  442.   MOVEQ #0,d4
  443.   MOVEQ #0,d5
  444.   MOVE.b  d1,d4
  445.   LSL.w #5,d4
  446.  
  447.   MOVE.w #255,d6
  448. wcolour_b_loop:
  449.   SWAP  d5
  450.   ADD.l d4,d5
  451.   SWAP  d5
  452.   MOVE.w  d5,(a3)+
  453.   DBRA  d6,wcolour_b_loop
  454.  
  455. ; green
  456.   LEA wcolourtable,a3
  457.  
  458.   MOVEQ #0,d4
  459.   MOVEQ #0,d5
  460.   MOVE.l  a4,d4
  461.   LSL.l #3,d4
  462.   AND.l #$0007f800,d4
  463.  
  464.   MOVE.w #255,d6
  465. wcolour_g_loop:
  466.   ADD.l d4,d5
  467.   MOVE.l  d5,d1
  468.   SWAP  d1
  469.   AND.w #$07c0,d1
  470.   OR.w  d1,(a3)+
  471.   DBRA  d6,wcolour_g_loop
  472.  
  473. ; red
  474.   LEA wcolourtable,a3
  475.  
  476.   MOVEQ #0,d4
  477.   MOVEQ #0,d5
  478.   MOVE.l  a4,d4
  479.   AND.l #$00ff0000,d4
  480.  
  481.   MOVE.w #255,d6
  482. wcolour_r_loop:
  483.   ADD.l d4,d5
  484.   MOVE.l  d5,d1
  485.   SWAP  d1
  486.   AND.w #$f000,d1
  487.   OR.w  d1,(a3)+
  488.   DBRA  d6,wcolour_r_loop
  489.  
  490.   RTS
  491.  
  492. ;********************************************************************
  493. ;*                                                                  *
  494. ;* Expands incbin'ed data of one quarter of a ball to a whole ball. *
  495. ;*                                                                  *
  496. ;********************************************************************
  497. wexpand_ball:
  498.   LEA     wrawball,a0
  499.   LEA     32*63(a0),a1
  500.   LEA     32*32(a0),a0
  501.   MOVE.l  a1,a2
  502.   LEA     64(a1),a3
  503.   MOVE.l  a3,a4
  504.   MOVE.w  #31,d7
  505. wexpand_y_loop:
  506.   MOVE.w  #31,d6
  507. wexpand_x_loop:
  508.   MOVE.b  -(a0),d0
  509.   MOVE.b  d0,-(a1)
  510.   MOVE.b  d0,(a2)+
  511.   MOVE.b  d0,-(a3)
  512.   MOVE.b  d0,(a4)+
  513.   DBRA    d6,wexpand_x_loop
  514.   LEA     -32(a1),a1
  515.   LEA     -96(a2),a2
  516.   LEA     96(a3),a3
  517.   LEA     32(a4),a4
  518.   DBRA    d7,wexpand_y_loop
  519.   RTS
  520.  
  521. ;********************************************************************
  522. ;*                                                                  *
  523. ;* Creates look-up table used to avoid overflow of colours inside   *
  524. ;* true-colour word. Plotting routine does not use lowest bits of   *
  525. ;* red and green, but they are used to indicate that either green   *
  526. ;* or blue overflowed.                                              *
  527. ;*                                                                  *
  528. ;********************************************************************
  529.  
  530. wmakeflowtable:
  531.   LEA     wflowtable,a0
  532.   MOVE.l  a0,a1
  533.   ADD.l   #$20000,a0
  534.   ADD.l   #$40000,a1
  535.   MOVEQ   #0,d0
  536.   MOVEQ   #0,d1
  537.   MOVEQ   #0,d2
  538.   MOVEQ   #0,d3
  539.   MOVEQ   #-1,d7
  540. wmake_flow_loop:
  541.   MOVE.w  d7,d0
  542.   MOVE.w  d7,d1
  543.   MOVE.w  d7,d2
  544.   AND.w   #$20,d0
  545.   CMP.w   #0,d0
  546.   BEQ     wno_null_1
  547.   AND.w   #$ffdf,d2
  548.   OR.w    #$001f,d2
  549. wno_null_1:
  550.   AND.w   #$800,d1
  551.   CMP.w   #0,d1
  552.   BEQ     wno_null_2
  553.   AND.w   #$f7ff,d2
  554.   OR.w    #$07c0,d2
  555. wno_null_2:
  556.   MOVE.w  d2,-(a0)
  557.   OR.w    #$f000,d2
  558.   MOVE.w  d2,-(a1)
  559.   DBRA d7,wmake_flow_loop
  560.   RTS
  561.  
  562. ;----------------------------------
  563. ; DIFFUUSI FADE VEKE
  564. ;----------------------------------
  565. wasm_diffuse:
  566.   MOVEQ   #0,d0
  567.   MOVEQ   #0,d1
  568.   MOVEQ   #0,d2
  569.   MOVEQ   #0,d3
  570.   MOVE.l    wfalconscreen,a0
  571.  
  572.   LEA     wxtable,a1
  573.   LEA     wytable,a2
  574.   LEA     wrndxtable,a3
  575.   LEA     wrndytable,a4
  576.  
  577.   MOVE.w  #253-1,d7
  578. wdiff_yloop:
  579.   SWAP    d7
  580.   MOVE.w  #320-1,d7
  581. wdiff_xloop:
  582.   MOVE.w  0(a1,d0.w),a5       ;x offset
  583.   ADD.l   0(a2,d1.w),a5       ;y  offset
  584.   ADD.l   a0,a5               ;current point
  585.  
  586.   MOVE.l  a5,a6
  587.   MOVEQ   #0,d4
  588.   move.w  0(a3,d2.w),d4       ;x rnd offset
  589.   ADD.w   0(a4,d3.w),d4       ;y rnd offset
  590.   EXT.l      d4
  591.   ADD.l   d4,a6               ;other point
  592.  
  593.   MOVE.w  (a5),d4             ;halve current colour
  594.   LSR.w   #1,d4
  595.   AND.w   #$7bef,d4
  596.   MOVE.w  d4,(a5)
  597.  
  598.   MOVE.w  (a6),d5             ;add to other colour
  599.   LSR.w   #1,d5
  600.   AND.w   #$7bef,d5
  601.   ADD.w   d4,d5
  602.   MOVE.w  d5,(a6)
  603.  
  604.   ADDQ    #2,d0
  605.   ADDQ    #4,d1
  606.   ADDQ    #2,d2
  607.   ADDQ    #2,d3
  608.  
  609.   CMP.w   #320*2,d0
  610.   BNE     wno_xptr_loop
  611.   MOVEQ   #0,d0
  612. wno_xptr_loop
  613.   CMP.w   #253*4,d1
  614.   BNE     wno_yptr_loop
  615.   MOVEQ   #0,d1
  616. wno_yptr_loop
  617.   CMP.w   #59*2,d2
  618.   BNE     wno_xrndptr_loop
  619.   MOVEQ   #0,d2
  620. wno_xrndptr_loop
  621.   CMP.w   #53*2,d3
  622.   BNE     wno_yrndptr_loop
  623.   MOVEQ   #0,d3
  624. wno_yrndptr_loop
  625.  
  626.   DBRA    d7,wdiff_xloop
  627.   SWAP    d7
  628.   DBRA    d7,wdiff_yloop
  629.   RTS
  630.  
  631. wxtable:
  632.   IncBin "difxtabl.bin"
  633. wytable:
  634.   IncBin "difytabl.bin"
  635. wrndxtable:
  636.   IncBin "rndxtabl.bin"
  637. wrndytable:
  638.   IncBin "rndytabl.bin"
  639. ;----------------------------------
  640. ;----------------------------------
  641. ;***************************
  642. ;*                         *
  643. ;* bezier drawings here... *
  644. ;*                         *
  645. ;***************************
  646.  
  647. waggro_ampi:
  648.   Dc.w  125
  649.   Dc.w  99,106,89,111,83,115,80,126,4,8
  650.   Dc.l  $00101010,$00281A10
  651.   Dc.w  80,126,80,138,88,144,97,142,8,4
  652.   Dc.l  $00281A10,$00101010
  653.   Dc.w  115,98,99,104,93,112,90,125,4,8
  654.   Dc.l  $00101010,$00302010
  655.   Dc.w  89,125,89,139,98,147,108,144,8,4
  656.   Dc.l  $00302010,$00101010
  657.   Dc.w  131,94,112,98,103,108,100,122,4,8
  658.   Dc.l  $00101010,$00402810
  659.   Dc.w  99,122,99,139,109,148,122,146,8,4
  660.   Dc.l  $00402810,$00101010
  661.   Dc.w  152,91,130,89,120,106,117,122,4,8
  662.   Dc.l  $00101010,$00302010
  663.   Dc.w  116,122,116,138,127,148,139,146,8,4
  664.   Dc.l  $00302010,$00101010
  665.   Dc.w  193,95,182,88,172,89,162,94,4,8
  666.   Dc.l  $00101010,$00202028
  667.   Dc.w  162,93,154,98,149,105,150,115,8,4
  668.   Dc.l  $00202028,$00101010
  669.   Dc.w  186,135,199,129,188,137,198,126,4,4
  670.   Dc.l  $00181010,$00181010
  671.   Dc.w  164,114,148,118,135,121,128,124,4,8
  672.   Dc.l  $00101010,$00202028
  673.   Dc.w  127,128,127,133,131,145,135,157,8,4
  674.   Dc.l  $00202028,$00101010
  675.   Dc.w  131,158,105,159,127,157,99,153,4,4
  676.   Dc.l  $00202028,$00202028
  677.   Dc.w  170,114,161,117,155,118,153,119,4,8
  678.   Dc.l  $00101010,$00202028
  679.   Dc.w  151,122,152,126,157,140,160,153,8,4
  680.   Dc.l  $00202028,$00101010
  681.   Dc.w  159,158,148,170,157,161,143,167,4,4
  682.   Dc.l  $00202028,$00202028
  683.   Dc.w  174,114,177,116,178,117,179,117,4,8
  684.   Dc.l  $00101010,$00202028
  685.   Dc.w  179,121,180,126,180,141,182,154,8,4
  686.   Dc.l  $00202028,$00101010
  687.   Dc.w  182,156,186,163,187,158,189,169,4,4
  688.   Dc.l  $00202028,$00202028
  689.   Dc.w  202,100,201,94,206,87,216,91,4,8
  690.   Dc.l  $00101010,$00202424
  691.   Dc.w  215,91,221,93,227,96,235,106,8,4
  692.   Dc.l  $00202424,$00101010
  693.   Dc.w  222,91,227,93,234,96,242,106,8,4
  694.   Dc.l  $00202424,$00101010
  695.   Dc.w  214,106,206,101,206,102,206,102,4,4
  696.   Dc.l  $00181010,$00181010
  697.   Dc.w  212,119,204,126,223,125,258,130,6,6
  698.   Dc.l  $00282020,$00101010
  699.   Dc.w  256,127,249,116,249,116,240,109,4,8
  700.   Dc.l  $00101010,$00202028
  701.   Dc.w  176,95,146,79,134,73,99,56,4,12
  702.   Dc.l  $00202028,$00202028
  703.   Dc.w  99,56,55,32,27,18,55,59,12,4
  704.   Dc.l  $00202028,$00202028
  705.   Dc.w  174,98,106,71,97,67,63,57,4,25
  706.   Dc.l  $00202028,$00101010
  707.   Dc.w  180,90,161,73,153,67,131,51,4,12
  708.   Dc.l  $00202028,$00202028
  709.   Dc.w  131,51,104,27,86,12,103,54,12,4
  710.   Dc.l  $00202028,$00202028
  711.   Dc.w  173,88,135,66,130,62,109,51,4,25
  712.   Dc.l  $00202028,$00101010
  713.   Dc.w  26,195,0,229,14,162,30,162,5,12
  714.   Dc.l  $00102030,$00081018
  715.   Dc.w  31,162,38,162,28,187,30,204,12,5
  716.   Dc.l  $00081018,$00102030
  717.   Dc.w  28,200,2,234,16,166,32,167,5,12
  718.   Dc.l  $00302010,$00181008
  719.   Dc.w  33,167,40,167,30,192,33,209,12,5
  720.   Dc.l  $00181008,$00302010
  721.   Dc.w  12,197,12,188,14,182,17,175,2,5
  722.   Dc.l  $00303030,$00303030
  723.   Dc.w  17,175,21,168,25,165,29,162,5,2
  724.   Dc.l  $00303030,$00303030
  725.   Dc.w  33,170,32,176,30,183,30,189,2,5
  726.   Dc.l  $00303030,$00303030
  727.   Dc.w  30,189,30,194,30,199,30,205,5,2
  728.   Dc.l  $00303030,$00303030
  729.   Dc.w  16,203,16,206,16,207,16,209,8,2
  730.   Dc.l  $00000000,$00303030
  731.   Dc.w  28,161,27,164,28,165,28,167,8,2
  732.   Dc.l  $00000000,$00303030
  733.   Dc.w  56,195,30,229,44,162,60,162,5,12
  734.   Dc.l  $00102030,$00081018
  735.   Dc.w  61,162,68,162,57,187,60,204,12,5
  736.   Dc.l  $00081018,$00102030
  737.   Dc.w  60,204,63,228,64,234,41,221,5,12
  738.   Dc.l  $00102030,$00081018
  739.   Dc.w  57,199,32,234,46,166,61,167,5,12
  740.   Dc.l  $00302010,$00181008
  741.   Dc.w  63,167,70,167,59,192,62,209,12,5
  742.   Dc.l  $00181008,$00302010
  743.   Dc.w  62,209,65,233,66,239,44,225,5,12
  744.   Dc.l  $00181008,$00302010
  745.   Dc.w  42,197,42,188,44,182,47,175,2,5
  746.   Dc.l  $00303030,$00303030
  747.   Dc.w  47,175,50,168,54,165,58,162,5,2
  748.   Dc.l  $00303030,$00303030
  749.   Dc.w  62,170,61,176,60,183,60,189,2,5
  750.   Dc.l  $00303030,$00303030
  751.   Dc.w  60,189,59,194,59,199,59,205,5,2
  752.   Dc.l  $00303030,$00303030
  753.   Dc.w  61,216,63,225,61,231,54,227,2,5
  754.   Dc.l  $00303030,$00303030
  755.   Dc.w  54,227,49,225,44,223,40,220,5,2
  756.   Dc.l  $00303030,$00303030
  757.   Dc.w  46,203,45,206,46,207,46,209,8,2
  758.   Dc.l  $00000000,$00303030
  759.   Dc.w  57,161,56,164,57,165,57,167,8,2
  760.   Dc.l  $00000000,$00303030
  761.   Dc.w  47,227,46,230,47,231,47,233,8,2
  762.   Dc.l  $00000000,$00303030
  763.   Dc.w  87,196,61,230,75,162,91,162,5,12
  764.   Dc.l  $00102030,$00081018
  765.   Dc.w  92,162,99,163,88,188,91,204,12,5
  766.   Dc.l  $00081018,$00102030
  767.   Dc.w  91,204,94,229,95,235,72,222,5,12
  768.   Dc.l  $00102030,$00081018
  769.   Dc.w  88,200,63,234,77,167,92,167,5,12
  770.   Dc.l  $00302010,$00181008
  771.   Dc.w  94,167,101,168,90,193,93,209,12,5
  772.   Dc.l  $00181008,$00302010
  773.   Dc.w  93,209,96,234,97,240,75,226,5,12
  774.   Dc.l  $00181008,$00302010
  775.   Dc.w  73,197,73,189,75,183,78,176,2,5
  776.   Dc.l  $00303030,$00303030
  777.   Dc.w  78,176,81,169,85,165,89,162,5,2
  778.   Dc.l  $00303030,$00303030
  779.   Dc.w  93,171,92,177,91,184,91,190,2,5
  780.   Dc.l  $00303030,$00303030
  781.   Dc.w  91,190,90,195,90,200,90,206,5,2
  782.   Dc.l  $00303030,$00303030
  783.   Dc.w  92,217,94,226,92,232,85,228,2,5
  784.   Dc.l  $00303030,$00303030
  785.   Dc.w  85,228,80,226,75,223,71,221,5,2
  786.   Dc.l  $00303030,$00303030
  787.   Dc.w  77,204,76,206,77,208,77,209,8,2
  788.   Dc.l  $00000000,$00303030
  789.   Dc.w  88,162,87,165,88,166,88,168,8,2
  790.   Dc.l  $00000000,$00303030
  791.   Dc.w  78,227,77,230,78,232,78,234,8,2
  792.   Dc.l  $00000000,$00303030
  793.   Dc.w  106,162,117,172,107,197,108,206,12,5
  794.   Dc.l  $00081018,$00102030
  795.   Dc.w  109,200,111,185,114,145,130,172,5,12
  796.   Dc.l  $00000000,$00102030
  797.   Dc.w  111,164,122,174,112,199,113,209,12,5
  798.   Dc.l  $00181008,$00302010
  799.   Dc.w  114,206,116,187,119,148,135,174,5,12
  800.   Dc.l  $00000000,$00302010
  801.   Dc.w  109,164,112,174,111,179,109,186,2,5
  802.   Dc.l  $00303030,$00303030
  803.   Dc.w  110,186,109,192,109,198,107,205,5,2
  804.   Dc.l  $00303030,$00303030
  805.   Dc.w  107,162,106,165,107,167,107,168,8,2
  806.   Dc.l  $00000000,$00303030
  807.   Dc.w  159,192,130,225,134,190,138,177,5,12
  808.   Dc.l  $00102030,$00081018
  809.   Dc.w  138,178,144,148,180,163,150,183,12,5
  810.   Dc.l  $00081018,$00102030
  811.   Dc.w  164,194,135,226,139,193,143,179,5,12
  812.   Dc.l  $00302010,$00181008
  813.   Dc.w  142,180,149,151,185,166,151,189,12,5
  814.   Dc.l  $00181008,$00302010
  815.   Dc.w  150,162,142,164,140,169,136,179,2,5
  816.   Dc.l  $00303030,$00303030
  817.   Dc.w  136,179,135,191,133,199,140,206,5,2
  818.   Dc.l  $00303030,$00303030
  819.   Dc.w  150,181,149,184,151,188,151,189,8,2
  820.   Dc.l  $00000000,$00303030
  821.   Dc.w  156,193,155,196,155,199,155,199,8,2
  822.   Dc.l  $00000000,$00303030
  823.   Dc.w  185,168,179,153,164,165,178,183,5,12
  824.   Dc.l  $00102030,$00081018
  825.   Dc.w  177,183,190,205,170,213,161,202,12,5
  826.   Dc.l  $00081018,$00102030
  827.   Dc.w  191,169,184,155,170,167,183,185,5,12
  828.   Dc.l  $00302010,$00181008
  829.   Dc.w  182,185,196,206,176,214,167,203,12,5
  830.   Dc.l  $00181008,$00302010
  831.   Dc.w  172,167,171,174,175,181,180,190,2,5
  832.   Dc.l  $00303030,$00303030
  833.   Dc.w  179,191,184,206,174,210,163,204,5,2
  834.   Dc.l  $00303030,$00303030
  835.   Dc.w  171,162,170,165,171,167,171,169,8,2
  836.   Dc.l  $00000000,$00303030
  837.   Dc.w  215,168,209,153,194,165,208,183,5,12
  838.   Dc.l  $00102030,$00081018
  839.   Dc.w  207,183,220,205,200,213,191,202,12,5
  840.   Dc.l  $00081018,$00102030
  841.   Dc.w  221,169,214,155,200,167,213,185,5,12
  842.   Dc.l  $00302010,$00181008
  843.   Dc.w  212,185,226,206,206,214,197,203,12,5
  844.   Dc.l  $00181008,$00302010
  845.   Dc.w  202,167,201,174,205,181,210,190,2,5
  846.   Dc.l  $00303030,$00303030
  847.   Dc.w  209,191,214,206,204,210,193,204,5,2
  848.   Dc.l  $00303030,$00303030
  849.   Dc.w  201,162,200,165,201,167,201,169,8,2
  850.   Dc.l  $00000000,$00303030
  851.   Dc.w  231,170,233,190,225,195,234,207,5,12
  852.   Dc.l  $00102030,$00081018
  853.   Dc.w  238,158,233,156,232,160,234,165,2,12
  854.   Dc.l  $00000000,$00081018
  855.   Dc.w  234,173,236,193,228,197,237,210,5,12
  856.   Dc.l  $00302010,$00181008
  857.   Dc.w  241,160,236,159,235,163,237,167,2,12
  858.   Dc.l  $00000000,$00181008
  859.   Dc.w  231,172,230,179,231,183,231,189,2,5
  860.   Dc.l  $00303030,$00303030
  861.   Dc.w  230,188,229,198,230,203,236,209,5,2
  862.   Dc.l  $00303030,$00303030
  863.   Dc.w  230,157,229,160,230,161,230,163,8,2
  864.   Dc.l  $00000000,$00303030
  865.   Dc.w  268,168,255,147,244,185,247,197,5,12
  866.   Dc.l  $00102030,$00081018
  867.   Dc.w  247,197,256,219,275,186,264,172,12,5
  868.   Dc.l  $00081018,$00102030
  869.   Dc.w  271,172,260,151,248,187,252,200,5,12
  870.   Dc.l  $00302010,$00181008
  871.   Dc.w  252,199,261,223,279,189,269,174,12,5
  872.   Dc.l  $00181008,$00302010
  873.   Dc.w  254,165,250,172,248,176,247,183,2,5
  874.   Dc.l  $00303030,$00303030
  875.   Dc.w  247,181,245,188,245,196,253,205,5,2
  876.   Dc.l  $00303030,$00303030
  877.   Dc.w  257,204,261,201,263,196,265,191,2,5
  878.   Dc.l  $00303030,$00303030
  879.   Dc.w  266,191,266,186,266,181,264,174,5,2
  880.   Dc.l  $00303030,$00303030
  881.   Dc.w  283,162,288,173,283,191,281,207,12,5
  882.   Dc.l  $00081018,$00102030
  883.   Dc.w  284,167,307,148,306,184,298,207,12,5
  884.   Dc.l  $00081018,$00102030
  885.   Dc.w  288,164,293,175,288,193,286,209,12,5
  886.   Dc.l  $00181008,$00302010
  887.   Dc.w  289,169,312,150,311,186,303,209,12,5
  888.   Dc.l  $00181008,$00302010
  889.   Dc.w  283,166,285,172,285,177,284,184,2,5
  890.   Dc.l  $00303030,$00303030
  891.   Dc.w  284,183,283,192,281,197,281,205,5,2
  892.   Dc.l  $00303030,$00303030
  893.   Dc.w  302,169,304,174,304,180,303,187,2,5
  894.   Dc.l  $00303030,$00303030
  895.   Dc.w  303,186,302,195,300,199,299,205,5,2
  896.   Dc.l  $00303030,$00303030
  897.   Dc.w  293,162,292,165,293,166,293,168,8,2
  898.   Dc.l  $00000000,$00303030
  899.  
  900. waggro:
  901.   Dc.w  20
  902.   Dc.w  15,149,5,9,92,4,46,154
  903.   Dc.w  4*6,4*4
  904.   Dc.l  $ff7f3f,$7f3fff
  905.  
  906.   Dc.w  10,101,37,85,42,84,70,67
  907.   Dc.w  4*4,4*2
  908.   Dc.l  $ff7f3f,$7f3fff
  909.  
  910.   Dc.w  82,107,36,124,78,41,88,81
  911.   Dc.w  4*2,4*2
  912.   Dc.l  $ff7f3f,$7f3fff
  913.  
  914.   Dc.w  93,69,81,117,68,185,51,124
  915.   Dc.w  4*2,4*2
  916.   Dc.l  $ff7f3f,$7f3fff
  917.  
  918.   Dc.w  113,104,71,126,102,39,118,81
  919.   Dc.w  4*2,4*2
  920.   Dc.l  $ff7f3f,$7f3fff
  921.  
  922.   Dc.w  121,67,113,117,101,179,87,113
  923.   Dc.w  4*2,4*2
  924.   Dc.l  $ff7f3f,$7f3fff
  925.  
  926.   Dc.w  172,64,138,27,123,64,116,143
  927.   Dc.w  4*2,4*2
  928.   Dc.l  $ff7f3f,$7f3fff
  929.  
  930.   Dc.w  133,95,142,91,171,88,172,88
  931.   Dc.w  4*2,4*2
  932.   Dc.l  $ff7f3f,$7f3fff
  933.  
  934.   Dc.w  172,88,137,16,111,137,168,100
  935.   Dc.w  4*2,4*2
  936.   Dc.l  $ff7f3f,$7f3fff
  937.  
  938.   Dc.w  211,40,185,42,175,76,181,88
  939.   Dc.w  4*2,4*2
  940.   Dc.l  $ff7f3f,$7f3fff
  941.  
  942.   Dc.w  181,88,196,102,188,148,142,130
  943.   Dc.w  4*2,4*2
  944.   Dc.l  $ff7f3f,$7f3fff
  945.  
  946.   Dc.w  250,51,225,26,193,75,202,87
  947.   Dc.w  4*2,4*2
  948.   Dc.l  $ff7f3f,$7f3fff
  949.  
  950.   Dc.w  202,87,220,101,207,185,136,155
  951.   Dc.w  4*2,4*2
  952.   Dc.l  $ff7f3f,$7f3fff
  953.  
  954.   Dc.w  230,69,231,69,218,140,221,119
  955.   Dc.w  4*2,4*2
  956.   Dc.l  $ff7f3f,$7f3fff
  957.  
  958.   Dc.w  252,67,235,69,233,104,251,101
  959.   Dc.w  4*2,4*2
  960.   Dc.l  $ff7f3f,$7f3fff
  961.  
  962.   Dc.w  252,101,263,99,273,64,252,67
  963.   Dc.w  4*2,4*2
  964.   Dc.l  $ff7f3f,$7f3fff
  965.  
  966.   Dc.w  277,65,275,78,273,84,262,140
  967.   Dc.w  4*2,4*2
  968.   Dc.l  $ff7f3f,$7f3fff
  969.  
  970.   Dc.w  276,70,297,62,308,67,293,139
  971.   Dc.w  4*2,4*2
  972.   Dc.l  $ff7f3f,$7f3fff
  973.  
  974.   Dc.w  240,57,235,42,211,69,236,62
  975.   Dc.w  4*1,4*1
  976.   Dc.l  $ff7f3f,$7f3fff
  977.  
  978.   Dc.w  40,200,100,150,200,170,300,180
  979.   Dc.w  4*10,4*4
  980.   Dc.l  $ff7f3f,$7f3fff
  981.  
  982. wtest_bez:
  983.   Dc.w  1
  984.   Dc.w  30,30,30,240,290,240,290,30
  985.   Dc.w  60,60
  986.   Dc.l  $3f3f3f,$3f3f3f
  987.  
  988. ;***********************
  989. ;*                     *
  990. ;* Space for variables *
  991. ;*                     *
  992. ;***********************
  993.  
  994. wfalconscreen:
  995.   Dc.l  0
  996. wsizepos:
  997.   Dc.l  0
  998. wsizechange:
  999.   Dc.l  0
  1000. wredpos:
  1001.   Dc.l  0
  1002. wredchange:
  1003.   Dc.l  0
  1004. wgreenpos:
  1005.   Dc.l  0
  1006. wgreenchange:
  1007.   Dc.l  0
  1008. wbluepos:
  1009.   Dc.l  0
  1010. wbluechange:
  1011.   Dc.l  0
  1012. wsailo:
  1013.   Dc.l  0
  1014.  
  1015. ;----------------------------------------
  1016.  
  1017. wbeztable:
  1018.   IncBin    beztable.bin
  1019.  
  1020. wrawball:
  1021.   IncBin    ball2.bin
  1022.   Ds.b  3*32*32
  1023.  
  1024. wcolourtable:
  1025.   Ds.w  256
  1026. wflowtable:
  1027.         ds.b  $40000
  1028.  
  1029.     RSRESET
  1030. wqqa        RS.b 3600
  1031. wruutu.write:    RS.w    320*256+256
  1032. wqqae        RS.b 3600
  1033.  
  1034.