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