home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / dse-src1.dms / in.adf / VECTORSCROLL++.S < prev   
Encoding:
Text File  |  1991-12-12  |  15.4 KB  |  691 lines

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