home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / dse-src1.dms / in.adf / Devpac / VECTORSCROLL.ASM < prev   
Encoding:
Assembly Source File  |  1991-12-12  |  15.7 KB  |  694 lines

  1.  
  2.     section sasquatch,code_c
  3.  
  4.     jmp    rutin
  5. ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  6.  
  7.  
  8. graf:    dc.b    "graphics.library",0
  9.     even
  10. ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  11. copp:    dc.l    0
  12. grap:    dc.l    0
  13. lagr:    dc.l    0
  14. stack:    dc.l    0
  15. screen:    dc.l    0
  16. vcount:    dc.l    0
  17. bok:    dc.l    0
  18. ccount:    dc.l    0
  19. ncount:    dc.l    0
  20. bcn:    dc.l    0
  21. st:    dc.l    0
  22. bre:    dc.w    40
  23. dyk:    dc.l    0
  24. tdyk:    dc.l    0
  25. ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  26. rutin:    lea    connections,a0
  27. mulp:    move.w    (a0),d0
  28.     mulu    #6,d0
  29.     move.w    d0,(a0)
  30.     add.w    #2,a0
  31.     cmp.w    #-1,(a0)
  32.     bne    mulp
  33.     move.l    $4,a6        ; Find the Copperlist-Pointer...
  34.     jsr    -150(a6)
  35.     move.l    d0,stack
  36.     lea    graf(pc),a1
  37.     clr.l    d0
  38.     jsr    -552(a6)
  39.     move.l    d0,grap
  40.     add.l    #$32,d0
  41.     move.l    d0,copp
  42. ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  43.     move.l    copp,a5        ; Start the Copperlist
  44.     move.w  #$00a0,$dff096
  45.     move.l  (a5),lagr
  46.     move.l  #list,(a5)
  47.     move.w  #$8380,$dff096
  48.  
  49.     clr.l    d0
  50.     clr.l    d1
  51.     move.l    #$40000,a0
  52. ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  53. next:    cmp.b    #$ff,$dff006
  54.     bne    next
  55.  
  56.     jsr    cpixel
  57.     jsr    scroll
  58.     add.b    #1,st
  59.     cmp.b    #15,st
  60.     bne    n2
  61.     move.b    #0,st
  62.     bsr    let
  63. n2:    move.w    #0,my
  64.     move.w    #0,mx
  65.     move.b    $dff00a,my+1
  66.     move.b    $dff00b,mx+1
  67.     ;move.w    #180,b
  68.     add.w    #1,b
  69.     cmp.w    #360,b
  70.     blt    go
  71.     move.w    #2,b
  72. go:
  73.     ;move.w    #25,a
  74.     add.w    #2,a
  75.     cmp.w    #360,a
  76.     blt    go1
  77.     move.w    #0,a
  78. go1:
  79.     ;move.w    #293,c
  80.     add.w    #2,c
  81.     cmp.w    #360,c
  82.     blt    go2
  83.     move.w    #0,c
  84. go2:
  85.     move.w    #0,nu
  86.  
  87. ploop:    move.l    #coords,a4    ; Count all coords
  88.     move.l    #coords2,a6
  89.     move.w    nu,d2
  90.     add.l    d2,a4
  91.     add.l    d2,a6
  92.     move.w    (a4),d0
  93.     move.w    2(a4),d1
  94.     move.w    4(a4),d2
  95.     bsr    vectorcalc
  96.     move.w    x2,d0
  97.     move.w    y2,d1
  98.     move.w    z2,d2
  99.     lea    perspective,a3
  100.     add    depth,d2
  101.     add    d2,d2
  102.     cmp.w    #$8000,d2
  103.     bls    gn
  104.     moveq    #-1,d0
  105.     moveq    #-1,d0
  106.     bra    gn1
  107. gn:    move    (a3,d2),d5
  108.     muls    d5,d0
  109.     muls    d5,d1
  110.     add.l    d0,d0
  111.     add.l    d1,d1
  112.     swap    d0
  113.     swap    d1
  114.     add.w    #$b0,d0
  115.     add.w    #$70,d1
  116. gn1:    move.w    d0,(a6)
  117.     move.w    d1,2(a6)
  118.     add.w    #6,nu
  119.     move.w    no,d2
  120.     cmp.w    nu,d2
  121.     bne    ploop
  122.  
  123.     lea    connections,a4
  124.  
  125.     clr.l    d0
  126.     clr.l    d1
  127.     clr.l    d2
  128.     clr.l    d3
  129.     clr.l    d5
  130.     clr.l    d6
  131. lloop:    
  132.     lea    coords2,a6
  133.     move.w    (a4),d5
  134.     move.w    2(a4),d6
  135.     mulu    #6,d5
  136.     mulu    #6,d6
  137.     move.w    (a6,d5),d0
  138.     cmp.w    #400,d0
  139.     bhi    skip1
  140.     move.w    2(a6,d5),d1
  141.     cmp.w    #300,d1
  142.     bhi    skip1
  143.     move.w    (a6,d6),d2
  144.     cmp.w    #400,d2
  145.     bhi    skip1
  146.     move.w    2(a6,d6),d3
  147.     cmp.w    #300,d3
  148.     bhi    skip1
  149.     move.l    screen,a0
  150.     bsr    initlinedraw
  151.     bsr    linedraw
  152. skip1:    add.l    #4,a4
  153.     cmp.w    #-1,(a4)
  154.     bne.s    lloop
  155.     btst    #6,$bfe001
  156.     bne    next
  157.  
  158. ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  159.  
  160. close:    move.l    copp,a5        ; Close Copperlist
  161.     move.w  #$0080,$dff096
  162.     move.l  lagr,(a5)
  163.     move.w  #$80a0,$dff096
  164.     move.l    $4,a6
  165.     move.l    stack,d0
  166.     jsr    -156(a6)
  167.     clr.l    d0
  168.     move.l    #$00968100,dma1
  169.     move.l    #$00968100,dma2
  170.     rts
  171.  
  172. cpixel:    
  173.     move.l    bp,d0
  174.     move.w    bpls+6,d1
  175.     swap    d1
  176.     move.w    bpls+2,d1
  177.     swap    d1
  178.     move.w    d0,bpls+6
  179.     move.w    d0,bpls+14
  180.     add.w    #$28,bpls+14
  181.     swap    d0
  182.     move.w    d0,bpls+2
  183.     move.w    d0,bpls+10
  184.     move.l    d1,bp
  185.     swap     d0
  186.     move.l    d1,screen
  187.     move.l    d1,$dff054    
  188.     move.w    #16,$dff064
  189.     move.w    #16,$dff066
  190.     move.l    #$0000,$dff044
  191.     move.w    #$0100,$dff040
  192.     move.w    #$0000,$dff042
  193.     move.w    #$3bd4,$dff058
  194. ts:    btst    #14,$dff002
  195.     bne    ts
  196.     rts
  197. lo:    lea    letters,a0
  198.     bra    lbc
  199. let:    movem.l    d0-d7/a0-a6,-(a7)
  200.     lea    text,a1
  201.     add.l    bcn,a1
  202.     cmp.b    #0,(a1)
  203.     bne    lo2
  204.     lea    text,a1
  205.     move.l    #0,bcn
  206. lo2:    move.b    (a1),d0
  207.     lea    letters,a0
  208.     add.l    #1,bcn
  209.     
  210. letlp:    cmp.l    #letters+3952,a0
  211.     beq    lo
  212.     cmp.b    (a0),d0        ;   Find coordinates for 
  213.     beq    lbc        ; current letter
  214.     add.l    #76,a0
  215.     bra    letlp
  216. lbc:    lea    coords,a1    
  217.     add.l    vcount,a1    ;   Add coords offset to 
  218.     clr.l    d0        ; coords table (scroll space)
  219.     clr.l    d1        ; so that letters will be put out
  220.     move.b    1(a0),d0        ; after eachother.
  221.     move.b    d0,d1        ;  Put number of coords-1 in D0 and D1
  222.     add.l    #2,a0    
  223.  
  224. ptlop:    move.w    (a0),(a1)    ; Copy letter coords into
  225.     add.w    #240,(a1)    ; scroll space
  226.     move.w    2(a0),2(a1)
  227.     move.w    4(a0),4(a1)
  228.     add.l    #6,a0
  229.     add.l    #6,a1        ;   After this loop,A0 points at the
  230.     dbf    d0,ptlop    ; connections of the current letter.
  231.     
  232.     move.l    d1,d2        
  233.     add.w    #1,d2
  234.     add.b    #1,d1        ;   add no. of coords*6 to vcount,
  235.     mulu    #6,d1        ; so it points after current letter
  236.     add.l    d1,vcount
  237.     add.b    #1,bok
  238.  
  239.     ;add.w    #110,d6
  240.     lea    connections,a1    
  241.     add.l    ncount,a1
  242.  
  243. colp:    move.l    ccount,d0    ;   Copy letter connections into
  244.     move.w    (a0),(a1)    ; connections buffer.
  245.     add.w    d0,(a1)        ;   ncount contains previous
  246.     move.w    2(a0),2(a1)    ; number of connections,and ccount
  247.     add.w    d0,2(a1)    ; contains previous no. of coords,
  248.     add.l    #4,ncount    ; and is added to the connection
  249.     add.l    #4,a1        ; values to make a complete table.
  250.     add.l    #4,a0
  251.     cmp.w    #-1,(a0)
  252.     bne    colp
  253.     ;move.w    #-1,(a1)
  254.     ;move.w    #-1,2(a1)
  255.     add.l    d2,ccount    
  256.     move.l    ccount,d0
  257.     mulu    #6,d0
  258.     move.w    #6*7*6,no
  259. ;         ^=no.of letters
  260.     cmp.b    #6,bok        ;   Check if scroll space is full,
  261.     bne    lt2        ; in that case,clear connections
  262.     move.b    #0,bok        ; and coords offset = next letter
  263.     move.l    0,vcount    ; will be put in the beginning
  264.     move.l    0,ccount    ; of the scrollspace
  265.     move.l    0,ncount
  266. lt2:    movem.l    (a7)+,d0-d7/a0-a6
  267.     rts
  268.  
  269. scroll:    lea    coords,a1
  270.     clr.l    d0
  271. scroll2:sub.w    #8,(a1)
  272.     add.l    #6,a1
  273.     add.l    #6,d0
  274.     cmp.w    no,d0
  275.     bne    scroll2
  276. vectorcalc:
  277.     move.w    a,d6
  278.     lsl.w    #1,d6
  279.     lea    sinus(pc),a0
  280.     move.w    (a0,d6),d3
  281.     move.w    d3,d5
  282.     muls    d1,d3
  283.     lsl.l    #2,d3
  284.     swap    d3    ;d3 holds y*sin(a)
  285.  
  286.     lea    cosinus(pc),a1
  287.     move.w    (a1,d6),d4
  288.     move.w    d4,d7
  289.     muls    d0,d4
  290.     lsl.l    #2,d4
  291.     swap    d4    ;d4 holds x*cos(a)
  292.     
  293.     sub.w    d3,d4    ;d4 holds x*cos(a)-y*sin(a)=x1
  294.     move.w    d4,x1
  295.     muls    d1,d7
  296.     muls    d0,d5
  297.     lsl.l    #2,d7
  298.     swap    d7
  299.     lsl.l    #2,d5
  300.     swap    d5
  301.     add.w    d5,d7    ;d7 holds y*cos(a)-x*sin(a)=y1
  302.     move.w    d7,y1
  303.  
  304.     
  305.     move.w    b,d6
  306.     lsl.w    #1,d6
  307.     move.w    (a0,d6),d3
  308.     move.w    d3,d5
  309.     muls    d2,d3
  310.     lsl.l    #2,d3
  311.     swap    d3    ;d3 holds z*sin(b)
  312.  
  313.     move.w    (a1,d6),d4
  314.     move.w    d4,d7
  315.     muls    y1,d4
  316.     lsl.l    #2,d4
  317.     swap    d4    ;d4 holds y1*cos(b)
  318.  
  319.     sub.w    d3,d4    ;d4 holds y1*cos(b)-z*sin(b)=y2
  320.     move.w    d4,y2
  321.     muls    d2,d7
  322.     muls    y1,d5
  323.     lsl.l    #2,d7
  324.     swap    d7
  325.     lsl.l    #2,d5
  326.     swap    d5
  327.     add.w    d5,d7    ;d7 holds z*cos(b)+y1*sin(b)=z1
  328.     move.w    d7,z1
  329.  
  330.  
  331.     move.w    c,d6
  332.     lsl.w    #1,d6
  333.     move.w    (a0,d6),d3
  334.     move.w    d3,d5
  335.     muls    x1,d3
  336.     lsl.l    #2,d3
  337.     swap    d3    ;d3 holds x1*sin(c)
  338.  
  339.     move.w    (a1,d6),d4
  340.     move.w    d4,d7
  341.     muls    z1,d4
  342.     lsl.l    #2,d4
  343.     swap    d4    ;d4 holds z1*cos(c)
  344.  
  345.     sub.w    d3,d4    ;d4 holds z1*cos(c)-x1*sin(c)=z2
  346.     move.w    d4,z2
  347.     muls    x1,d7
  348.     muls    z1,d5
  349.     lsl.l    #2,d7
  350.     swap    d7
  351.     lsl.l    #2,d5
  352.     swap    d5
  353.     add.w    d5,d7    ;d7 holds x1*cos(c)+z1*sin(c)=x2
  354.     move.w    d7,x2
  355.  
  356.     rts
  357.  
  358.  
  359. ; The linedrawing routine - taken from an 'learn assembler' disk!
  360.  
  361. swid=56
  362.  
  363. linedraw:
  364.     cmp.w    d0,d2
  365.     bne.s    ld_not1pix
  366.     cmp.w    d1,d3
  367.     bne.s    ld_not1pix
  368.     rts
  369. ld_not1pix:
  370.     movem.l    d4/d7/a3-a4,-(a7)
  371.     moveq    #0,d7
  372.     sub.w    d0,d2
  373.     bge.s    ld_xok
  374.     neg.w    d2
  375.     addq.w    #2,d7
  376. ld_xok:
  377.     sub.w    d1,d3
  378.     bge.s    ld_yok
  379.     neg.w    d3
  380.     addq.w    #4,d7
  381. ld_yok:
  382.     cmp.w    d3,d2
  383.     bgt.s    ld_xyok
  384.     bne.s    ld_not45
  385.     add.w    #16,d7
  386. ld_not45:
  387.     exg    d2,d3
  388.     addq.w    #8,d7
  389. ld_xyok:
  390.     add.w    d3,d3
  391.     move.w    d3,d4
  392.     sub.w    d2,d4
  393.     add.w    d3,d3
  394.     move.w    d3,a3
  395.     add.w    d2,d2
  396.     add.w    d2,d2
  397.     sub.w    d2,d3
  398.     mulu    #swid,d1
  399.     move.l    a0,a4
  400.     add.w    d1,a4
  401.     move.w    d0,d1
  402.     lsr.w    #3,d1
  403.     add.w    d1,a4
  404.     andi.w    #$f,d0
  405.     ror.w    #4,d0
  406.     add.w    #$bc8,d0
  407.     swap    d0
  408.     move.w    (a1,d7.w),d0
  409.     lsl.w    #4,d2
  410.     addq.w    #2,d2
  411. ld_wldraw:
  412.     btst    #6,$2(a2)
  413.     bne.s    ld_wldraw
  414.     move.l    d0,$40(a2)
  415.     move.w    d3,$64(a2)
  416.     move.w    a3,$62(a2)
  417.     move.w    d4,$52(a2)
  418.     move.l    a4,$48(a2)
  419.     move.l    a4,$54(a2)
  420.     move.w    d2,$58(a2)
  421.     movem.l    (a7)+,d4/d7/a3-a4
  422.     rts
  423.  
  424. initlinedraw:
  425.     lea.l    octant(pc),a1
  426.     move.l    #$dff000,a2
  427. waitinit:
  428.     btst    #6,$2(a2)
  429.     bne.s    waitinit
  430.     move.l    #-1,$44(a2)
  431.     move.l    #$ffff8000,$72(a2)
  432.     move.w    #swid,$60(a2)
  433.     move.w    #swid,$66(a2)
  434.     rts
  435.  
  436. octant:
  437.     dc.w    $0051,$0055,$0059,$005d
  438.     dc.w    $0041,$0049,$0045,$004d
  439.     dc.w    $0011,$0015,$0019,$001d
  440.     dc.w    $0001,$0009,$0005,$000d
  441.  
  442.  
  443.  
  444. a:    dc.l    0
  445. b:    dc.l    0
  446. c:    dc.l    0
  447. x2:    dc.l    0
  448. y2:    dc.l    0
  449. z2:    dc.l    0
  450. x1:    dc.l    0
  451. y1:    dc.l    0
  452. z1:    dc.l    0
  453. mx:    dc.l    0
  454. my:    dc.l    0
  455. depth:    dc.w    $150
  456. sinus:
  457.  
  458.     dc.w    0,286,572,857,1143,1428,1713,1997,2280,2563,2845,3126
  459.     dc.w    3406,3686,3964,4240,4516,4790,5063,5334,5604,5872
  460.     dc.w    6138,6402,6664,6924,7182,7438,7692,7943,8192,8438
  461.     dc.w    8682,8923,9162,9397,9630,9860,10087,10311,10531
  462.     dc.w    10749,10963,11174,11381,11585,11786,11982,12176
  463.     dc.w    12365,12551,12733,12911,13085,13255,13421,13583
  464.     dc.w    13741,13894,14044,14189,14330,14466,14598,14726,14849
  465.     dc.w    14968,15082,15191,15296,15396,15491,15582,15668,15749
  466.     dc.w    15826,15897,15964,16026,16083,16135,16182,16225,16262
  467.     dc.w    16294,16322,16344,16362,16374,16382,16383
  468.  
  469. cosinus:
  470.     dc.w    16382,16374,16362,16344,16322,16294,16262,16225,16182
  471.     dc.w    16135,16083,16026,15964,15897,15826,15749,15668,15582
  472.     dc.w    15491,15396,15296,15191,15082,14968,14849,14726,14598
  473.     dc.w    14466,14330,14189,14044,13894,13741,13583,13421,13255
  474.     dc.w    13085,12911,12733,12551,12365,12176,11982,11786,11585
  475.     dc.w    11381,11174,10963,10749,10531,10311,10087,9860,9630
  476.     dc.w    9397,9163,8923,8682,8438,8192,7943,7692,7438,7132,6924
  477.     dc.w    6664,6402,6138,5872,5604,5334,5063,4790,4516,4240,3964
  478.     dc.w    3686,3406,3126,2845,2563,2280,1997,1713,1428
  479.     dc.w    1143,857,572,286,0
  480.     
  481.     dc.w    -286,-572,-857,-1143,-1428,-1713,-1997,-2280,-2563,-2845,-3126
  482.     dc.w    -3406,-3686,-3964,-4240,-4516,-4790,-5063,-5334,-5604,-5872
  483.     dc.w    -6138,-6402,-6664,-6924,-7182,-7438,-7692,-7943,-8192,-8438
  484.     dc.w    -8682,-8923,-9162,-9397,-9630,-9860,-10087,-10311,-10531
  485.     dc.w    -10749,-10963,-11174,-11381,-11585,-11786,-11982,-12176
  486.     dc.w    -12365,-12551,-12733,-12911,-13085,-13255,-13421,-13583
  487.     dc.w    -13741,-13894,-14044,-14189,-14330,-14466,-14598,-14726,-14849
  488.     dc.w    -14968,-15082,-15191,-15296,-15396,-15491,-15582,-15668,-15749
  489.     dc.w    -15826,-15897,-15964,-16026,-16083,-16135,-16182,-16225,-16262    
  490.     dc.w    -16294,-16322,-16344,-16362,-16374,-16382,-16383
  491.  
  492.     dc.w    -16382,-16374,-16362,-16344,-16322,-16294,-16262,-16225,-16182
  493.     dc.w    -16135,-16083,-16026,-15964,-15897,-15826,-15749,-15668,-15582
  494.     dc.w    -15491,-15396,-15296,-15191,-15082,-14968,-14849,-14726,-14598
  495.     dc.w    -14466,-14330,-14189,-14044,-13894,-13741,-13583,-13421,-13255
  496.     dc.w    -13085,-12911,-12733,-12551,-12365,-12176,-11982,-11786,-11585
  497.     dc.w    -11381,-11174,-10963,-10749,-10531,-10311,-10087,-9860,-9630
  498.     dc.w    -9397,-9163,-8923,-8682,-8438,-8192,-7943,-7692,-7438,-7132,-6924
  499.     dc.w    -6664,-6402,-6138,-5872,-5604,-5334,-5063,-4790,-4516,-4240,-3964
  500.     dc.w    -3686,-3406,-3126,-2845,-2563,-2280,-1997,-1713,-1428
  501.     dc.w    -1143,-857,-572,-286
  502.     dc.w    0,286,572,857,1143,1428,1713,1997,2280,2563,2845,3126
  503.     dc.w    3406,3686,3964,4240,4516,4790,5063,5334,5604,5872
  504.     dc.w    6138,6402,6664,6924,7182,7438,7692,7943,8192,8438
  505.     dc.w    8682,8923,9162,9397,9630,9860,10087,10311,10531
  506.     dc.w    10749,10963,11174,11381,11585,11786,11982,12176
  507.     dc.w    12365,12551,12732,12911,13085,13255,13421,13583
  508.     dc.w    13741,13894,14044,14189,14330,14466,14598,14726,14849
  509.     dc.w    14968,15082,15191,15296,15396,15491,15582,15668,15749
  510.     dc.w    15826,15897,15964,16026,16083,16135,16182,16225,16262
  511.     dc.w    16294,16322,16344,16362,16374,16382,16384
  512.  
  513. text:    dc.b    "this routine is getting better and better!  ",0
  514.  
  515.  
  516.  
  517.  
  518.     even
  519.  
  520. coords:    
  521.  
  522.     dcb.w    6*3*7,0
  523. ;    ^= number of letters
  524.  
  525. no:    dc.w    5*6*6
  526. nu:    dc.w    0
  527.  
  528. connections:
  529.  
  530.     dcb.w     6*2*7,0
  531. ;    ^= number of letters
  532.     dc.w    -1,-1
  533.  
  534. letters:
  535.  
  536.     dc.b    "a",6
  537.     dc.w    -50,-50,0,-50,50,0,50,50,0,50,-50,0,-50,0,0,50,0,0,0,0,0
  538.     dc.w    0,1,1,2,2,3,4,5,0,0,0,0,0,0,-1,-1       
  539.     dc.b    "b",6
  540.     dc.w    -50,50,0,0,50,0,50,25,0,0,0,0,50,-25,0,0,-50,0,-50,-50,0
  541.     dc.w    0,1,1,2,2,3,3,4,4,5,5,6,0,6,-1,-1    
  542.     dc.b    "z",6
  543.     dc.w    -50,50,0,50,50,0,-50,-50,0,50,-50,0,0,0,0,0,0,0,0,0,0
  544.     dc.w    0,1,1,2,2,3,0,0,0,0,0,0,0,0,-1,-1
  545.     dc.b    " ",6
  546.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  547.     dc.w    0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1
  548.     dc.b    "u",6
  549.     dc.w    -50,50,0,-50,-50,0,50,-50,0,50,50,0,0,0,0,0,0,0,0,0,0
  550.     dc.w    0,1,1,2,2,3,0,0,0,0,0,0,0,0,-1,-1
  551.     dc.b    "r",6
  552.     dc.w    -50,50,0,50,50,0,50,0,0,-50,0,0,-50,-50,0,0,0,0,50,-50,0
  553.     dc.w    0,1,1,2,2,3,0,3,3,4,5,6,0,0,-1,-1
  554.     dc.b    "e",6
  555.     dc.w    -50,-50,0,-50,50,0,50,50,0,50,-50,0,-50,0,0,50,0,0,0,0,0
  556.     dc.w    0,3,0,1,1,2,4,5,0,0,0,0,0,0,-1,-1
  557.     dc.b    "f",6
  558.     dc.w    -50,-50,0,-50,50,0,50,50,0,50,-50,0,-50,0,0,50,0,0,0,0,0
  559.     dc.w    0,0,0,1,1,2,4,5,0,0,0,0,0,0,-1,-1
  560.     dc.b    "p",6
  561.     dc.w    -50,50,0,50,50,0,50,0,0,-50,0,0,-50,-50,0,0,0,0,50,-50,0
  562.     dc.w    0,1,1,2,2,3,0,3,3,4,0,0,0,0,-1,-1
  563.     dc.b    "c",6
  564.     dc.w    -50,50,0,-50,-50,0,50,-50,0,50,50,0,0,0,0,0,0,0,0,0,0
  565.     dc.w    0,1,1,2,0,3,0,0,0,0,0,0,0,0,-1,-1
  566.     dc.b    "o",6
  567.     dc.w    -50,50,0,-50,-50,0,50,-50,0,50,50,0,0,0,0,0,0,0,0,0,0
  568.     dc.w    0,1,1,2,2,3,0,3,0,0,0,0,0,0,-1,-1
  569.     dc.b    "k",6
  570.     dc.w     -50,50,0,-50,0,0,-50,-50,0,50,50,0,50,-50,0,0,0,0,0,0,0
  571.     dc.w    0,2,1,3,1,4,0,0,0,0,0,0,0,0,-1,-1
  572.     dc.b    "d",6
  573.     dc.w    -50,50,0,50,0,0,-50,-50,0,0,0,0,0,0,0,0,0,0,0,0,0
  574.     dc.w    0,1,1,2,0,2,0,0,0,0,0,0,0,0,-1,-1
  575.     dc.b    "g",6
  576.     dc.w    -50,-50,0,-50,50,0,50,50,0,50,-50,0,0,0,0,50,0,0,0,0,0
  577.     dc.w    1,2,0,1,0,3,3,5,4,5,0,0,0,0,-1,-1
  578.     dc.b    "h",6
  579.     dc.w    -50,-50,0,-50,50,0,50,50,0,50,-50,0,-50,0,0,50,0,0,0,0,0
  580.     dc.w    0,1,0,0,2,3,4,5,0,0,0,0,0,0,-1,-1       
  581.     dc.b    "i",6
  582.     dc.w    -50,50,0,0,50,0,50,50,0,-50,-50,0,0,-50,0,50,-50,0,0,0,0
  583.     dc.w    0,2,3,5,1,4,0,0,0,0,0,0,0,0,-1,-1
  584.     dc.b    "j",6
  585.     dc.w    -50,50,0,-50,-50,0,50,-50,0,50,50,0,-50,0,0,0,0,0,0,0,0
  586.     dc.w    0,3,3,2,2,1,1,4,0,0,0,0,0,0,-1,-1
  587.     dc.b    "l",6
  588.     dc.w    -50,50,0,-50,-50,0,50,-50,0,0,0,0,0,0,0,0,0,0,0,0,0
  589.     dc.w    0,1,1,2,0,0,0,0,0,0,0,0,0,0,-1,-1
  590.     dc.b    "m",6
  591.     dc.w    -50,-50,0,-50,50,0,0,0,0,50,50,0,50,-50,0,0,0,0,0,0,0
  592.     dc.w    0,1,1,2,2,3,3,4,0,0,0,0,0,0,-1,-1
  593.     dc.b    "n",6
  594.     dc.w    -50,-50,0,-50,50,0,50,-50,0,50,50,0,0,0,0,0,0,0,0,0,0
  595.     dc.w    0,1,1,2,2,3,0,0,0,0,0,0,0,0,-1,-1
  596.     dc.b    "q",6
  597.     dc.w    -50,50,0,50,50,0,50,-25,0,0,-50,0,-50,-50,0,0,0,0,50,-50,0
  598.     dc.w    0,1,1,2,2,3,3,4,0,4,5,6,0,0,-1,-1
  599.     dc.b    "s",6
  600.     dc.w    -50,-50,0,-50,50,0,50,50,0,50,-50,0,-50,0,0,50,0,0,0,0,0
  601.     dc.w    1,2,1,4,4,5,3,5,0,3,0,0,0,0,-1,-1
  602.     dc.b    "t",6
  603.     dc.w    -50,50,0,0,50,0,50,50,0,0,-50,0,0,0,0,0,0,0,0,0,0
  604.     dc.w    0,2,1,3,0,0,0,0,0,0,0,0,0,0,-1,-1
  605.     dc.b    "v",6
  606.     dc.w    -50,50,0,0,-50,0,50,50,0,0,0,0,0,0,0,0,0,0,0,0,0
  607.     dc.w    0,1,1,2,0,0,0,0,0,0,0,0,0,0,-1,-1
  608.     dc.b    "x",6
  609.     dc.w    -50,-50,0,-50,50,0,50,-50,0,50,50,0,0,0,0,0,0,0,0,0,0
  610.     dc.w    0,3,1,2,0,0,0,0,0,0,0,0,0,0,-1,-1
  611.     dc.b    "y",6
  612.     dc.w    -50,50,0,0,0,0,50,50,0,0,-50,0,0,0,0,0,0,0,0,0,0
  613.     dc.w    0,1,1,2,1,3,0,0,0,0,0,0,0,0,-1,-1
  614.     dc.b    "0",6
  615.     dc.w    -50,-50,0,-50,50,0,50,50,0,50,-50,0,-50,0,0,50,0,0,0,0,0
  616.     dc.w    0,1,1,2,2,3,0,3,0,2,0,0,0,0,-1,-1
  617.     dc.b    "1",6
  618.     dc.w    -50,-50,0,-50,50,0,50,50,0,50,-50,0,-50,0,0,50,0,0,0,0,0
  619.     dc.w    2,3,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1
  620.     dc.b    "2",6
  621.     dc.w    -50,-50,0,-50,50,0,50,50,0,50,-50,0,-50,0,0,50,0,0,0,0,0
  622.     dc.w    1,2,2,5,4,5,0,4,0,3,0,0,0,0,-1,-1
  623.     dc.b    "3",6
  624.     dc.w    -50,-50,0,-50,50,0,50,50,0,50,-50,0,-50,0,0,50,0,0,0,0,0
  625.     dc.w    1,2,2,4,4,5,5,3,0,3,0,0,0,0,-1,-1
  626.     dc.b    "4",6
  627.     dc.w    -50,-50,0,-50,50,0,50,50,0,50,-50,0,-50,0,0,50,0,0,0,0,0
  628.     dc.w    1,4,4,5,2,3,0,0,0,0,0,0,0,0,-1,-1
  629.     dc.b    "5",6
  630.     dc.w    -50,-50,0,-50,50,0,50,50,0,50,-50,0,-50,0,0,50,0,0,0,0,0
  631.     dc.w    2,1,1,4,4,5,5,3,3,0,0,0,0,0,-1,-1
  632.     dc.b    "6",6
  633.     dc.w    -50,-50,0,-50,50,0,50,50,0,50,-50,0,-50,0,0,50,0,0,0,0,0
  634.     dc.w    1,2,1,0,0,3,3,5,5,4,0,0,0,0,-1,-1
  635.     dc.b    "7",6
  636.     dc.w    -50,-50,0,-50,50,0,50,50,0,50,-50,0,-50,0,0,50,0,0,0,0,0
  637.     dc.w    1,2,2,3,0,0,0,0,0,0,0,0,0,0,-1,-1
  638.     dc.b    "8",6
  639.     dc.w    -50,-50,0,-50,50,0,50,50,0,50,-50,0,-50,0,0,50,0,0,0,0,0
  640.     dc.w    0,1,1,2,2,3,3,0,4,5,0,0,0,0,-1,-1
  641.     dc.b    "9",6
  642.     dc.w    -50,-50,0,-50,50,0,50,50,0,50,-50,0,-50,0,0,50,0,0,0,0,0
  643.     dc.w    5,4,4,1,1,2,2,3,0,0,0,0,0,0,-1,-1
  644.     dc.b    "!",6
  645.     dc.w    0,50,0,0,-35,0,0,-40,0,0,-50,0,0,0,0,0,0,0,0,0,0
  646.     dc.w    0,1,2,3,0,0,0,0,0,0,0,0,0,0,-1,-1
  647.     dc.b    ".",6
  648.     dc.w    0,-40,0,0,-50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  649.     dc.w    0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1
  650.     dc.b    "-",6
  651.     dc.w    -50,0,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  652.     dc.w    0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1
  653.     dc.b    "(",6
  654.     dc.w    0,50,0,-50,50,0,-50,-50,0,0,-50,0,0,0,0,0,0,0,0,0,0
  655.     dc.w    0,1,1,2,2,3,0,0,0,0,0,0,0,0,-1,-1
  656.     dc.b    ")",6
  657.     dc.w    0,50,0,50,50,0,50,-50,0,0,-50,0,0,0,0,0,0,0,0,0,0
  658.     dc.w    0,1,1,2,2,3,0,0,0,0,0,0,0,0,-1,-1
  659.     dc.b    ":",6
  660.     dc.w    0,45,0,0,10,0,0,-10,0,0,-45,0,0,0,0,0,0,0,0,0,0    
  661.     dc.w    0,1,2,3,0,0,0,0,0,0,0,0,0,0,-1,-1
  662.     dc.b    "w",6
  663.     dc.w    -50,50,0,-50,-50,0,0,0,0,50,-50,0,50,50,0,0,0,0,0,0,0
  664.     dc.w    0,1,1,2,2,3,3,4,0,0,0,0,0,0,-1,-1
  665.  
  666. coords2:    dcb.b    4000,0
  667.  
  668. perspective:    incbin 'AsmDisk1:binary/perspective'
  669.  
  670. ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  671.     even
  672. bp:    dc.l    $45000
  673. list:    
  674. dma1:    dc.w     $0096,%0000000100000000
  675.     dc.l    $01800000,$01820fff
  676.     dc.l    $01840004,$01860090
  677.     dc.l    $01000000
  678.     dc.l    $3001fffe
  679.     dc.l    $01080010
  680.     dc.w     $0096,%1000000100000000
  681. bpls:    dc.l    $00e00004,$00e20000
  682.     dc.l    $00e40004,$00e60028
  683.     dc.l    $01001200,$01020000
  684.  
  685.  
  686.     dc.l    $ffddfffe,$1f01fffe
  687.     dc.l    $01000000
  688. dma2:    dc.w     $0096,%0000000100000000
  689.     dc.l    $fffffffe    
  690.  
  691.  
  692.  
  693.  
  694.