home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / Source / pheno.lha / pha / HalvKlot.s < prev    next >
Encoding:
Text File  |  1987-12-17  |  13.5 KB  |  598 lines

  1. ;------------------------------------------------------------------------
  2. ;-                                    -
  3. ;-                 Vector-Stars                -
  4. ;-                                    -
  5. ;------------------------------------------------------------------------
  6.  
  7. org    $20000
  8. load    $20000
  9.  
  10. >EXTERN        'Perspektiv',Per
  11. >EXTERN        'VectorBob.RB',Bob
  12.  
  13. ;------------------------------------------------------------------------
  14.  
  15. S:        movem.l    d0-d7/a0-a6,-(sp)
  16.         lea.l    $dff000,a6
  17.         bsr.S    Startup
  18.         bsr    InitRutin
  19.         bsr    BlitWait
  20.         bsr.S    StartCop
  21.         bsr    MainLoop
  22.         bsr.S    RestoreCop
  23.         movem.l    (sp)+,d0-d7/a0-a6
  24.         rts
  25.  
  26. Startup:    moveq    #15,d1
  27.         lea    OldDma(pc),a2
  28.         move.w    2(a6),d0
  29.         bset    d1,d0
  30.         move.w    d0,(a2)+
  31.         move.w    $1c(a6),d0
  32.         bset    d1,d0
  33.         move.w    d0,(a2)+
  34.         move.l    $4.W,a6
  35.         lea.l    Lib(pc),a1
  36.         moveq    #0,d0
  37.         jsr    -408(a6)
  38.         move.l    d0,a0
  39.         move.l    $26(a0),(a2)+
  40.         lea.l    $dff000,a6
  41.         rts
  42.  
  43. StartCop:    lea    CopperList(pc),a0
  44.         move.l    a0,$80(a6)
  45.         tst.w    $88(a6)
  46.         move.w    #$7fff,d0
  47.         move.w    d0,$96(a6)
  48.         move.w    d0,$9a(a6)
  49.         move.w    #$87c0,$96(a6)
  50.         move.w    #$c000,$9a(a6)
  51.         rts
  52.  
  53. RestoreCop:    lea    OldDma(pc),a0
  54.         move.w    (a0)+,$96(a6)
  55.         move.w    (a0)+,$9a(a6)
  56.         move.l    (a0)+,$80(a6)
  57.         tst.w    $88(a6)
  58.         rts
  59.  
  60.     ;-----------------------------------------------------
  61.         OldDma:        dc.w    0
  62.         OldIrq:        dc.w    0
  63.         OldCop:        dc.l    0
  64.         Lib:        dc.b    'graphics.library',0
  65.                 even
  66.     ;-----------------------------------------------------
  67.  
  68. ;------------------------------------------------------------------------
  69.  
  70. BlitWait:    btst    #14,2(a6)
  71.         bne.S    BlitWait
  72.         rts
  73.  
  74. ClearScreen:    bsr.S    BlitWait
  75.         move.l    #-1,$44(a6)
  76.         move.l    #$01000000,$40(a6)
  77.         move.w    d2,$66(a6)
  78.         move.l    d0,$54(a6)
  79.         move.w    d1,$58(a6)
  80.         rts
  81.  
  82. ;------------------------------------------------------------------------
  83.  
  84. InitRutin:    lea    Screen(pc),a0
  85.         move.l    (a0)+,d0
  86.         move.w    #280*2*64+24,d1
  87.         moveq    #0,d2
  88.         bsr.S    ClearScreen
  89.         move.l    (a0)+,d0
  90.         bsr.S    ClearScreen
  91.  
  92.         lea    Cols+2(pc),a0
  93.         lea    Bob,a1
  94.         moveq    #8-1,d7
  95. CLoop:        move.w    (a1)+,(a0)
  96.         addq.l    #4,a0
  97.         dbra    d7,CLoop
  98.         lea    BobAdr(pc),a4
  99.         move.l    a1,(a4)
  100.  
  101.         lea.l    MulsList,a0
  102.         moveq    #0,d0
  103.         moveq    #256-[44*3],d1
  104.         neg.b    d1
  105.         move.w    #300-1,d7
  106. MulsLoop:    move.w    d0,(a0)+
  107.         add.w    d1,d0
  108.         dbra    d7,MulsLoop
  109.         moveq    #0,d0
  110.         move.w    #300,d7
  111. AndLoop:    move.w    d0,d1
  112.         move.w    d1,d2
  113.         lsr.w    #3,d1
  114.         and.w    #$f,d2
  115.         ror.w    #4,d2
  116.         move.w    d1,(a0)+
  117.         move.w    d2,(a0)+
  118.         addq.w    #1,d0
  119.         dbf    d7,AndLoop
  120.  
  121.         move.l    #BobAdress,d0
  122.         move.l    #MaskAdr,d1
  123.         move.l    (a4),d2
  124.         move.l    d2,d3
  125.         moveq    #15*2*3,d5
  126.         add.l    d5,d3
  127.         move.w    #15*64*3+1,d4
  128.         bsr    BlitWait
  129.         move.l    #-1,$44(a6)
  130.         clr.l    $64(a6)
  131.         move.l    #$09f00000,$40(a6)
  132.         move.w    #150-1,d7
  133. BobLoop1:    btst    #14,$2(a6)
  134.         bne.S    BobLoop1
  135.         move.l    d0,$54(a6)
  136.         move.l    d2,$50(a6)
  137.         move.w    d4,$58(a6)
  138.         add.l    d5,d0
  139.         dbf    d7,BobLoop1
  140.         move.w    #150-1,d7
  141. BobLoop2:    btst    #14,$2(a6)
  142.         bne.S    BobLoop2
  143.         move.l    d1,$54(a6)
  144.         move.l    d3,$50(a6)
  145.         move.w    d4,$58(a6)
  146.         add.l    d5,d1
  147.         dbf    d7,BobLoop2
  148.         lea    MainList(pc),a1
  149.         move.w    #300-1,d7
  150. CLLoop:        move.l    a1,(a1)+
  151.         clr.l    (a1)+
  152.         dbra    d7,CLLoop
  153.  
  154.         lea    ObjX(pc),a0
  155.         lea    ObjY(pc),a1
  156.         lea    ObjZ(pc),a5
  157.         lea    Sinus(pc),a2
  158.         lea    Sinus+180(pc),a3
  159.         moveq    #100,d0
  160.         moveq    #0,d1
  161.         moveq    #0,d5
  162.         moveq    #6-1,d6
  163. CalcLoop2:    moveq    #18-1,d7
  164.         moveq    #0,d1
  165. CalcLoop:    move.w    (a2,d1.W),d3
  166.         move.w    (a3,d1.W),d4
  167.         move.w    (a2,d5.W),d0
  168.         neg.w    d0
  169.         muls    #100,d0
  170.         asl.l    #2,d0
  171.         clr.w    d0
  172.         swap    d0
  173.         muls    d0,d3
  174.         muls    d0,d4
  175.         asl.l    #2,d3
  176.         asl.l    #2,d4
  177.         swap    d3
  178.         swap    d4
  179.         move.w    d3,(a0)+
  180.         move.w    d4,(a1)+
  181.         move.w    (a3,d5.W),d0
  182.         muls    #100,d0
  183.         asl.l    #2,d0
  184.         swap    d0
  185.         move.w    d0,(a5)+
  186.         add.w    #40,d1
  187.         dbra    d7,CalcLoop
  188.         add.w    #30,d5
  189.         dbra    d6,CalcLoop2
  190.         rts
  191.  
  192. MulsList:    =    $6d000
  193. BobAdress:    =    $67000
  194. MaskAdr:    =    $77000
  195.  
  196. ;------------------------------------------------------------------------
  197.  
  198. MainLoop:    cmp.b    #-1,$6(a6)
  199.         bne.S    MainLoop
  200.  
  201.         ;move.w    #$4,$180(a6)
  202.         bsr.S    VectorBobs
  203.         ;move.w    #$40,$180(a6)
  204.  
  205.         btst    #6,$bfe001
  206.         bne.S    MainLoop
  207.         rts
  208.  
  209. ;------------------------------------------------------------------------
  210.  
  211. Vectorbobs:    bsr.S    Buffra
  212.         bsr    Rensa
  213.         bsr    VinkelAdd
  214.         ;move.w    #$060,$180(a6)
  215.         bsr    Rakna
  216.         ;move.w    #$006,$180(a6)
  217.         bsr.S    Sortera
  218.         ;move.w    #$600,$180(a6)
  219.         bsr    Plotta
  220.         ;move.w    #$060,$180(a6)
  221.         rts
  222.  
  223. Sortera:    lea    Posses+4(pc),a0
  224.         lea    ExtraList(pc),a2
  225.         lea    MainList+[300*8+4](pc),a1
  226.         moveq    #0,d0
  227.         move.w    #300,d4
  228.         move.w    AntBobs(pc),d7
  229. SortLoop:    move.w    (a0),d0
  230.         lsl.w    #2,d0
  231.         move.l    a1,a3
  232.         sub.l    d0,a3
  233.         tst.w    (a3)
  234.         bne.S    UseExtra
  235.         move.l    -4(a0),(a3)
  236.         addq.l    #6,a0
  237.         dbra    d7,SortLoop
  238.         rts
  239. UseExtra:    move.l    -4(a3),(a2)
  240.         move.l    a2,-4(a3)
  241.         move.l    -4(a0),4(a2)
  242.         addq.l    #8,a2
  243.         addq.l    #6,a0
  244.         dbra    d7,SortLoop
  245.         rts
  246.  
  247. Buffra:        lea    Screen(pc),a0
  248.         move.l    (a0),d0
  249.         move.l    4(a0),(a0)+
  250.         move.l    d0,(a0)
  251.         lea.l    BMap(pc),a0
  252.         moveq    #44,d1
  253.         moveq    #3-1,d7
  254. BMapLoop:    swap    d0
  255.         move.w    d0,2(a0)
  256.         swap    d0
  257.         move.w    d0,6(a0)
  258.         addq.l    #8,a0
  259.         add.l    d1,d0
  260.         dbra    d7,BMapLoop
  261.         rts
  262.  
  263. Rensa:        move.l    Screen(pc),d0
  264.         moveq    #44-40,d2
  265.         move.w    #200*64*3+20,d1
  266.         bsr    ClearScreen
  267.         rts
  268.  
  269. VinkelAdd:    lea.l    Vinklar(pc),a0
  270.         lea.l    VAdds(pc),a1
  271.         move.w    #720,d1
  272.         moveq    #3-1,d7
  273. VAddLoop:    move.w    (a0),d0
  274.         add.w    (a1)+,d0
  275.         cmp.w    d1,d0
  276.         bls.S    Nothing
  277.         sub.w    d1,d0
  278. Nothing:    move.w    d0,(a0)+
  279.         dbra    d7,VAddLoop
  280.         rts
  281.  
  282. Rakna:        lea.l    Sinus+180(pc),a1
  283.         lea.l    Sinus(pc),a2
  284.         lea.l    Vinklar(pc),a3
  285.         lea.l    Posses(pc),a4
  286.         lea.l    Per,a5
  287.  
  288.         lea.l    CalcUp(pc),a6
  289.         move.w    (a3),d0
  290.         move.w    (a1,d0.W),(a6)+
  291.         move.w    (a2,d0.W),(a6)+
  292.         move.w    4(a3),d0
  293.         move.w    (a1,d0.W),(a6)+
  294.         move.w    (a2,d0.W),(a6)+
  295.         move.w    2(a3),d0
  296.         move.w    (a1,d0.W),(a6)+
  297.         move.w    (a2,d0.W),(a6)+
  298.  
  299.         lea.l    CalcUp(pc),a1
  300.         lea.l    MulsList,a6
  301.         move.l    a7,SPSave
  302.         lea.l    ObjX(pc),a0
  303.         lea.l    ObjY(pc),a2
  304.         lea.l    ObjZ(pc),a7
  305.         move.w    AntBobs(pc),d7
  306.  
  307. RakneLoop:    move.w    (a1)+,d1
  308.         move.w    (a1)+,d2
  309.         move.w    (a2),d3
  310.         muls    d2,d3
  311.         move.w    (a7),d4
  312.         muls    d1,d4
  313.         sub.l    d4,d3
  314.         lsl.l    #2,d3
  315.         swap    d3        ;Y
  316.         muls    (a2)+,d1
  317.         muls    (a7)+,d2
  318.         add.l    d1,d2
  319.         lsl.l    #2,d2
  320.         swap    d2        ;Z
  321.  
  322.         move.w    (a1)+,d1
  323.         move.w    (a1)+,d4
  324.         move.w    (a0),d5
  325.         muls    d4,d5
  326.         move.w    d3,d6
  327.         muls    d1,d6
  328.         sub.l    d6,d5
  329.         lsl.l    #2,d5
  330.         swap    d5        ;X
  331.         muls    (a0)+,d1
  332.         muls    d4,d3
  333.         add.l    d1,d3
  334.         lsl.l    #2,d3
  335.         swap    d3        ;Y
  336.  
  337.         move.w    (a1)+,d1
  338.         move.w    (a1)+,d4
  339.         move.w    d5,d0
  340.         muls    d4,d0
  341.         move.w    d2,d6
  342.         muls    d1,d6
  343.         sub.l    d6,d0
  344.         lsl.l    #2,d0
  345.         swap    d0        ;X
  346.         muls    d1,d5
  347.         muls    d4,d2
  348.         add.l    d5,d2
  349.         lsl.l    #2,d2
  350.         swap    d2        ;Z
  351.  
  352.         add.w    (a1)+,d2
  353.         add.w    d2,d2
  354.         move.w    (a5,d2.W),d4
  355.         muls    d4,d0
  356.         muls    d4,d3
  357.         moveq    #5,d6
  358.         lsl.l    d6,d0
  359.         lsl.l    d6,d3
  360.         swap    d0
  361.         swap    d3
  362.         add.w    (a1)+,d0
  363.         add.w    (a1)+,d3
  364.         add.w    d3,d3
  365.         move.w    (a6,d3.W),d3
  366.         lsl.w    #2,d0
  367.         add.w    (a6,d0.W),d3
  368.         move.w    d3,(a4)+
  369.         move.w    2(a6,d0.W),(a4)+
  370.         move.w    d2,(a4)+
  371.         lea    -18(a1),a1
  372.         dbra    d7,RakneLoop
  373.  
  374.         lea.l    $dff000,a6
  375.         move.l    SPSave(pc),a7
  376.         rts
  377.  
  378. SPSave:        dc.l    0
  379.  
  380. Plotta:        lea    MainList+4(pc),a0
  381.         move.l    Screen(pc),d0
  382.         move.w    #15*64*3+2,d4
  383.         move.w    #$fca,d6
  384.  
  385.         bsr    BlitWait
  386.         move.l    #$ffff0000,$44(a6)
  387.         moveq    #2-4,d1
  388.         move.w    d1,$62(a6)
  389.         move.w    d1,$64(a6)
  390.         moveq    #44-4,d1
  391.         move.w    d1,$60(a6)
  392.         move.w    d1,$66(a6)
  393.         move.l    d0,$48(a6)
  394.         move.l    d0,$54(a6)
  395.         move.l    #BobAdress,$4c(a6)
  396.         move.l    #MaskAdr,$50(a6)
  397.  
  398.         lea.l    $40(a6),a1
  399.         lea.l    $42(a6),a3
  400.         lea.l    $4a(a6),a2
  401.         lea.l    $56(a6),a5
  402.         lea.l    ExtraList(pc),a6
  403.         move.l    a7,SPSave
  404.         move.l    a0,a7
  405.  
  406.         move.w    #300-1,d7
  407.  
  408. PlotLoop:    tst.w    (a0)
  409.         beq.S    NoBobby
  410.         subq.l    #4,a0
  411.         move.l    a0,a7
  412. JumpIn:        move.w    4(a0),d3
  413.         move.w    6(a0),d5
  414.         move.w    d5,(a3)
  415.         add.w    d6,d5
  416.         move.w    d5,(a1)
  417.         move.w    d3,(a2)
  418.         movem.w    d3-d4,(a5)
  419.         cmp.l    (a0),a7
  420.         beq.S    NoBobby2
  421.         move.l    (a0),a0
  422.         bra.S    JumpIn
  423. NoBobby2:    move.l    a7,a0
  424.         move.l    a0,(a0)+
  425.         clr.l    (a0)
  426. NoBobby:    addq.l    #8,a0
  427.         dbra    d7,PlotLoop
  428.         lea.l    $dff000,a6
  429.         move.l    SPSave(pc),a7
  430.         rts
  431.  
  432.     ;--------------------------------------------------
  433.  
  434.         Screen:        dc.l    $60000
  435.                 dc.l    $70000
  436.  
  437.         BMapSize:    =    280*44
  438.  
  439.         Posses:        blk.w    400*3,0
  440.         MainList:    blk.l    300*2,0
  441.         ExtraList:    blk.l    108*2,0
  442.         CalcUp:        blk.w    3*2,0
  443.                 dc.w    150,326,100
  444.         BobAdr:        dc.l    0
  445.  
  446.         Vinklar:    dc.w    0
  447.                 dc.w    0
  448.                 dc.w    0
  449.  
  450.         VAdds:        dc.w    6
  451.                 dc.w    8
  452.                 dc.w    4
  453.  
  454.     ;--------------------------------------------------
  455.  
  456. ObjX:
  457. blk.w    18*6,0
  458. dc.w    0
  459.  
  460. ObjY:
  461. blk.w    18*6,0
  462. dc.w    0
  463.  
  464. ObjZ:
  465. blk.w    18*6,0
  466. dc.w    -100
  467.  
  468. AntBobs:    dc.w    109-1
  469.  
  470. ;------------------------------------------------------------------------
  471.  
  472. CopperList:    dc.l    $008e4866,$009010c6,$00920030,$009400d8
  473.         dc.l    $01020000,$01040000,$01080058,$010a0058
  474.  
  475. Cols:        dc.l    $01800000,$01820000,$01840000,$01860000
  476.         dc.l    $01880000,$018a0000,$018c0000,$018e0000
  477. BMap:        dc.l    $00e00000,$00e20000,$00e40000,$00e60000
  478.         dc.l    $00e80000,$00ea0000
  479.         dc.l    $01003000
  480.  
  481.         dc.l    $c007fffe,$01800100
  482.         dc.l    $c207fffe,$01800200
  483.         dc.l    $c507fffe,$01800300
  484.         dc.l    $c907fffe,$01800400
  485.         dc.l    $cf07fffe,$01800500
  486.         dc.l    $d607fffe,$01800600
  487.         dc.l    $de07fffe,$01800700
  488.         dc.l    $e707fffe,$01800800
  489.         dc.l    $f007fffe,$01800900
  490.         dc.l    $fb07fffe,$01800a00,$ffddfffe
  491.         dc.l    $0607fffe,$01800b00
  492.         dc.l    $1207fffe,$01800c00
  493.         dc.l    $1f07fffe,$01800d00
  494.         dc.l    $2b07fffe,$01800e00
  495.         dc.l    $3707fffe,$01800f00
  496.  
  497.         dc.l    -2
  498.  
  499. ;------------------------------------------------------------------------
  500.  
  501. Per:        =    $30000
  502. Bob:        =    $33000
  503.  
  504. Sinus:    dc.w    16384,16382,16374,16362,16344,16322,16294,16262
  505.     dc.w    16225,16182,16135,16083,16026,15964,15897,15826
  506.     dc.w    15749,15668,15582,15491,15396,15296,15191,15082
  507.     dc.w    14967,14849,14726,14598,14466,14330,14189,14044
  508.     dc.w    13894,13741,13583,13421,13255,13085,12911,12733
  509.     dc.w    12551,12365,12176,11982,11786,11585,11381,11174
  510.     dc.w    10963,10749,10531,10311,10087,9860,9630,9397
  511.     dc.w    9162,8923,8682,8438,8192,7943,7692,7438
  512.     dc.w    7182,6924,6664,6401,6137,5871,5603,5334
  513.     dc.w    5063,4790,4516,4240,3963,3685,3406,3126
  514.     dc.w    2845,2563,2280,1996,1712,1427,1142,857
  515.     dc.w    571,285,0,-285,-571,-857,-1142,-1428
  516.     dc.w    -1712,-1996,-2280,-2563,-2845,-3126,-3406,-3685
  517.     dc.w    -3963,-4240,-4516,-4790,-5063,-5334,-5603,-5871
  518.     dc.w    -6137,-6401,-6664,-6924,-7182,-7438,-7692,-7943
  519.     dc.w    -8192,-8438,-8682,-8923,-9162,-9397,-9630,-9860
  520.     dc.w    -10087,-10311,-10531,-10749,-10963,-11174,-11381,-11585
  521.     dc.w    -11786,-11982,-12176,-12365,-12551,-12733,-12911,-13085
  522.     dc.w    -13255,-13421,-13583,-13741,-13894,-14044,-14189,-14330
  523.     dc.w    -14466,-14598,-14726,-14849,-14967,-15082,-15191,-15296
  524.     dc.w    -15396,-15491,-15582,-15668,-15749,-15826,-15897,-15964
  525.     dc.w    -16026,-16083,-16135,-16182,-16225,-16262,-16294,-16322
  526.     dc.w    -16344,-16362,-16374,-16382,-16384,-16382,-16374,-16362
  527.     dc.w    -16344,-16322,-16294,-16262,-16225,-16182,-16135,-16083
  528.     dc.w    -16026,-15964,-15897,-15826,-15749,-15668,-15582,-15491
  529.     dc.w    -15396,-15296,-15191,-15082,-14968,-14849,-14726,-14598
  530.     dc.w    -14466,-14330,-14189,-14044,-13894,-13741,-13583,-13421
  531.     dc.w    -13255,-13085,-12911,-12733,-12551,-12365,-12176,-11982
  532.     dc.w    -11786,-11585,-11381,-11174,-10963,-10749,-10531,-10311
  533.     dc.w    -10087,-9860,-9630,-9397,-9162,-8923,-8682,-8438
  534.     dc.w    -8192,-7943,-7692,-7438,-7182,-6924,-6664,-6402
  535.     dc.w    -6137,-5871,-5604,-5334,-5063,-4790,-4516,-4240
  536.     dc.w    -3963,-3685,-3406,-3126,-2845,-2563,-2280,-1996
  537.     dc.w    -1712,-1428,-1143,-857,-572,-286,0,285
  538.     dc.w    571,857,1142,1427,1712,1996,2280,2562
  539.     dc.w    2844,3126,3406,3685,3963,4240,4515,4790
  540.     dc.w    5062,5334,5603,5871,6137,6401,6663,6924
  541.     dc.w    7182,7438,7691,7943,8192,8438,8682,8923
  542.     dc.w    9161,9397,9630,9860,10087,10310,10531,10748
  543.     dc.w    10963,11173,11381,11585,11785,11982,12175,12365
  544.     dc.w    12551,12732,12910,13085,13255,13421,13583,13740
  545.     dc.w    13894,14044,14189,14330,14466,14598,14726,14849
  546.     dc.w    14967,15081,15191,15296,15396,15491,15582,15668
  547.     dc.w    15749,15826,15897,15964,16026,16083,16135,16182
  548.     dc.w    16224,16262,16294,16322,16344,16361,16374,16382
  549.  
  550.     dc.w    16384,16382,16374,16362,16344,16322,16294,16262
  551.     dc.w    16225,16182,16135,16083,16026,15964,15897,15826
  552.     dc.w    15749,15668,15582,15491,15396,15296,15191,15082
  553.     dc.w    14967,14849,14726,14598,14466,14330,14189,14044
  554.     dc.w    13894,13741,13583,13421,13255,13085,12911,12733
  555.     dc.w    12551,12365,12176,11982,11786,11585,11381,11174
  556.     dc.w    10963,10749,10531,10311,10087,9860,9630,9397
  557.     dc.w    9162,8923,8682,8438,8192,7943,7692,7438
  558.     dc.w    7182,6924,6664,6401,6137,5871,5603,5334
  559.     dc.w    5063,4790,4516,4240,3963,3685,3406,3126
  560.     dc.w    2845,2563,2280,1996,1712,1427,1142,857
  561.     dc.w    571,285,0,-285,-571,-857,-1142,-1428
  562.     dc.w    -1712,-1996,-2280,-2563,-2845,-3126,-3406,-3685
  563.     dc.w    -3963,-4240,-4516,-4790,-5063,-5334,-5603,-5871
  564.     dc.w    -6137,-6401,-6664,-6924,-7182,-7438,-7692,-7943
  565.     dc.w    -8192,-8438,-8682,-8923,-9162,-9397,-9630,-9860
  566.     dc.w    -10087,-10311,-10531,-10749,-10963,-11174,-11381,-11585
  567.     dc.w    -11786,-11982,-12176,-12365,-12551,-12733,-12911,-13085
  568.     dc.w    -13255,-13421,-13583,-13741,-13894,-14044,-14189,-14330
  569.     dc.w    -14466,-14598,-14726,-14849,-14967,-15082,-15191,-15296
  570.     dc.w    -15396,-15491,-15582,-15668,-15749,-15826,-15897,-15964
  571.     dc.w    -16026,-16083,-16135,-16182,-16225,-16262,-16294,-16322
  572.     dc.w    -16344,-16362,-16374,-16382,-16384,-16382,-16374,-16362
  573.     dc.w    -16344,-16322,-16294,-16262,-16225,-16182,-16135,-16083
  574.     dc.w    -16026,-15964,-15897,-15826,-15749,-15668,-15582,-15491
  575.     dc.w    -15396,-15296,-15191,-15082,-14968,-14849,-14726,-14598
  576.     dc.w    -14466,-14330,-14189,-14044,-13894,-13741,-13583,-13421
  577.     dc.w    -13255,-13085,-12911,-12733,-12551,-12365,-12176,-11982
  578.     dc.w    -11786,-11585,-11381,-11174,-10963,-10749,-10531,-10311
  579.     dc.w    -10087,-9860,-9630,-9397,-9162,-8923,-8682,-8438
  580.     dc.w    -8192,-7943,-7692,-7438,-7182,-6924,-6664,-6402
  581.     dc.w    -6137,-5871,-5604,-5334,-5063,-4790,-4516,-4240
  582.     dc.w    -3963,-3685,-3406,-3126,-2845,-2563,-2280,-1996
  583.     dc.w    -1712,-1428,-1143,-857,-572,-286,0,285
  584.     dc.w    571,857,1142,1427,1712,1996,2280,2562
  585.     dc.w    2844,3126,3406,3685,3963,4240,4515,4790
  586.     dc.w    5062,5334,5603,5871,6137,6401,6663,6924
  587.     dc.w    7182,7438,7691,7943,8192,8438,8682,8923
  588.     dc.w    9161,9397,9630,9860,10087,10310,10531,10748
  589.     dc.w    10963,11173,11381,11585,11785,11982,12175,12365
  590.     dc.w    12551,12732,12910,13085,13255,13421,13583,13740
  591.     dc.w    13894,14044,14189,14330,14466,14598,14726,14849
  592.     dc.w    14967,15081,15191,15296,15396,15491,15582,15668
  593.     dc.w    15749,15826,15897,15964,16026,16083,16135,16182
  594.     dc.w    16224,16262,16294,16322,16344,16361,16374,16382
  595.  
  596.  
  597.  
  598.