home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / cprog / lineclip.lha / CLIP.A next >
Encoding:
Text File  |  1992-02-29  |  11.9 KB  |  779 lines

  1. ; Clip.a,  Fast Clipper (FC).
  2.  
  3. ; A modified implementation of the Sobkow-Pospisil-Yang clipping algorithm.
  4. ; References: Computers & Graphics, Vol. 11. No. 4, pp. 459-467, 1987.
  5.  
  6. ; This algorithm uses line encoding as opposed to end point encoding.
  7.  
  8. ; Created 19-Nov-89
  9. ; by John C. Schultz
  10.  
  11.  
  12. ; Successfully assembled with Lattice 5.04 asm, CAPE 2.0, and Devpac 2.14.
  13.  
  14.  
  15.     section Clip,CODE
  16.  
  17.     xdef    _minX
  18.     xdef    _maxX
  19.     xdef    _minY
  20.     xdef    _maxY
  21.     xdef    _clipline
  22.  
  23. ; User definable clipping window.
  24.  
  25. _minX    dc.w    0        ; Popular defaults
  26. _maxX    dc.w    319
  27. _minY    dc.w    0
  28. _maxY    dc.w    199
  29.  
  30. ; code size can be reduced (with a loss of speed) by using
  31. ; bra's and bsr's instead of complete inline expanded macros.
  32.  
  33. ; ClipEdge: \2 = result, d0,d1 are scratched
  34. CLIPEDGE    MACRO        ; comments as per clip minX edge:
  35.     move.w    \1,d0        ;   copy p.y
  36.     sub.w    \2,d0        ;   d0 = p.y - s.y
  37.     move.w    \3,d1        ;   copy _minX(pc)
  38.     sub.w    \4,d1        ;   d1 = _minX(pc) - s.x
  39.     muls    d0,d1        ;   d1 = (p.y - s.y)*(_minX(pc) - s.x)
  40.     move.w    \5,d0        ;   copy p.x
  41.     sub.w    \4,d0        ;   d0 = p.x - s.x
  42.     divs    d0,d1        ;   d1 = deltay
  43.     add.w    d1,\2        ;   \2 = deltay + s.y
  44.         ENDM
  45.  
  46. clippmaxY    macro
  47.     CLIPEDGE d4,d2,_maxY(pc),d3,d5
  48.     move.w    _maxY(pc),d3
  49.         endm
  50.  
  51. clippminY    macro
  52.     CLIPEDGE d4,d2,_minY(pc),d3,d5
  53.     move.w    _minY(pc),d3
  54.         endm
  55.  
  56. clippmaxX    macro
  57.     CLIPEDGE d5,d3,_maxX(pc),d2,d4
  58.     move.w    _maxX(pc),d2
  59.         endm
  60.  
  61. clippminX    macro
  62.     CLIPEDGE d5,d3,_minX(pc),d2,d4
  63.     move.w    _minX(pc),d2
  64.         endm
  65.  
  66. clipqmaxY    macro
  67.     CLIPEDGE d2,d4,_maxY(pc),d5,d3
  68.     move.w    _maxY(pc),d5
  69.         endm
  70.  
  71. clipqminY    macro
  72.     CLIPEDGE d2,d4,_minY(pc),d5,d3
  73.     move.w    _minY(pc),d5
  74.         endm
  75.  
  76. clipqmaxX    macro
  77.     CLIPEDGE d3,d5,_maxX(pc),d4,d2
  78.     move.w    _maxX(pc),d4
  79.         endm
  80.  
  81. clipqminX    macro
  82.     CLIPEDGE d3,d5,_minX(pc),d4,d2
  83.     move.w    _minX(pc),d4
  84.         endm
  85.  
  86. accept    macro
  87.     movem.w    d2/d3/d4/d5,(a0)
  88.     moveq.l    #1,d0
  89.     movem.l    (sp)+,d2-d5
  90.     rts
  91.     endm
  92.  
  93. reject    macro
  94.     moveq.l    #0,d0
  95.     movem.l    (sp)+,d2-d5
  96.     rts
  97.     endm
  98.  
  99.  
  100. ; Fast Clipper (FC) line clipping algorithm.
  101. ; a0 = line pointer, format: px,py,qx,qy.
  102. ; d0 = return value, 1 = visible, 0 = invisible
  103. _clipline
  104.     movem.l    d2-d5,-(sp)
  105.  
  106.     movem.w    (a0),d2/d3/d4/d5 ; px,py,qx,qy
  107.  
  108. ; px = d2
  109. ; py = d3
  110. ; qx = d4
  111. ; qy = d5
  112.  
  113.     moveq.l    #0,d1        ; clear line code
  114.  
  115. ; There might be a way to do the following using ROXL, with no
  116. ; branches (10 cycles a pop)...
  117.  
  118. ; check qx,qy.
  119.  
  120. checkqmaxY
  121.     cmp.w    _maxY(pc),d5    ; y maxY ok?
  122.     ble.b    checkqminY    ; yes.
  123.     addq.w    #8,d1        ; else set code bit
  124.     bra.b    checkqmaxX
  125. checkqminY
  126.     cmp.w    _minY(pc),d5    ; y minY ok?
  127.     bge.b    checkqmaxX    ; yes.
  128.     addq.w    #4,d1        ; else set code bit
  129. checkqmaxX
  130.     cmp.w    _maxX(pc),d4    ; x maxX ok?
  131.     ble.b    checkqminX    ; yes
  132.     addq.w    #2,d1        ; else set code bit
  133. checkqminX
  134.     cmp.w    _minX(pc),d4    ; x minX ok?
  135.     bge.b    checkpmaxY    ; yes
  136.     addq.w    #1,d1        ; else set code bit
  137.  
  138. ; check px,py.
  139.  
  140. checkpmaxY
  141.     cmp.w    _maxY(pc),d3    ; y maxY ok?
  142.     ble.b    checkpminY    ; yes.
  143.     add.w    #128,d1        ; else set code bit
  144.     bra.b    checkpmaxX
  145. checkpminY
  146.     cmp.w    _minY(pc),d3    ; y minY ok?
  147.     bge.b    checkpmaxX    ; yes.
  148.     add.w    #64,d1        ; else set code bit
  149. checkpmaxX
  150.     cmp.w    _maxX(pc),d2    ; x maxX ok?
  151.     ble.b    checkpminX    ; yes
  152.     add.w    #32,d1        ; else set code bit
  153. checkpminX
  154.     cmp.w    _minX(pc),d2    ; x minX ok?
  155.     bge.b    checkcode    ; yes
  156.     add.w    #16,d1        ; else set code bit
  157.  
  158. checkcode
  159.     add.w    d1,d1        ; entries are 4 bytes
  160.     add.w    d1,d1
  161.     lea    casetable(pc),a1
  162.     movea.l    0(a1,d1.w),a1
  163.     jmp    (a1)        ; perform specific clipping action.
  164.  
  165. ; Specific line case functions.
  166.  
  167. ; From the Center
  168.  
  169. case00    accept
  170. case01    clipqminX
  171.     accept
  172. case02    clipqmaxX
  173.     accept
  174. case04    clipqminY
  175.     accept
  176. case05    clipqminX
  177.     cmp.w    _minY(pc),d5    ; qy < minY?
  178.     bge.b    1$
  179.     clipqminY
  180. 1$    accept
  181. case06    clipqmaxX
  182.     cmp.w    _minY(pc),d5    ; qy < minY?
  183.     bge.b    1$
  184.     clipqminY
  185. 1$    accept
  186. case08    clipqmaxY
  187.     accept
  188. case09    clipqminX
  189.     cmp.w    _maxY(pc),d5    ; qy > maxY?
  190.     ble.b    1$
  191.     clipqmaxY
  192. 1$    accept
  193. case0A    clipqmaxX
  194.     cmp.w    _maxY(pc),d5    ; qy > maxY?
  195.     ble.b    1$
  196.     clipqmaxY
  197. 1$    accept
  198.  
  199. ; From the minX
  200.  
  201. case10    clippminX
  202.     accept
  203. case11    reject
  204. case12    clippminX
  205.     clipqmaxX
  206.     accept
  207. case14    clippminX
  208.     cmp.w    _minY(pc),d3    ; py < minY?
  209.     bge.b    1$
  210.     reject
  211. 1$    clipqminY
  212.     accept
  213. case15    reject
  214. case16    clippminX
  215.     cmp.w    _minY(pc),d3    ; py < minY?
  216.     bge.b    1$
  217.     reject
  218. 1$    clipqminY
  219.     cmp.w    _maxX(pc),d4    ; qx > maxX?
  220.     ble.b    2$
  221.     clipqmaxX
  222. 2$    accept
  223. case18    clippminX
  224.     cmp.w    _maxY(pc),d3    ; py > maxY?
  225.     ble.b    1$
  226.     reject
  227. 1$    clipqmaxY
  228.     accept
  229. case19    reject
  230. case1A    clippminX
  231.     cmp.w    _maxY(pc),d3    ; py > maxY?
  232.     ble.b    1$
  233.     reject
  234. 1$    clipqmaxY
  235.     cmp.w    _maxX(pc),d4    ; qx > maxX?
  236.     ble.b    2$
  237.     clipqmaxX
  238. 2$    accept
  239.  
  240. ; From maxX
  241.  
  242. case20    clippmaxX
  243.     accept
  244. case21    clippmaxX
  245.     clipqminX
  246.     accept
  247. case22    reject
  248. case24    clippmaxX
  249.     cmp.w    _minY(pc),d3    ; py < minY?
  250.     bge.b    1$
  251.     reject
  252. 1$    clipqminY
  253.     accept
  254. case25    clippmaxX
  255.     cmp.w    _minY(pc),d3    ; py < minY?
  256.     bge.b    1$
  257.     reject
  258. 1$    clipqminY
  259.     cmp.w    _minX(pc),d4    ; qx < minX?
  260.     bge.b    2$
  261.     clipqminX
  262. 2$    accept
  263. case26    reject
  264. case28    clippmaxX
  265.     cmp.w    _maxY(pc),d3    ; py > maxY?
  266.     ble.b    1$
  267.     reject
  268. 1$    clipqmaxY
  269.     accept
  270. case29    clippmaxX
  271.     cmp.w    _maxY(pc),d3    ; py > maxY?
  272.     ble.b    1$
  273.     reject
  274. 1$    clipqmaxY
  275.     cmp.w    _minX(pc),d4    ; qx < minX?
  276.     bge.b    2$
  277.     clipqminX
  278. 2$    accept
  279. case2A    reject
  280.  
  281. ; From minY
  282.  
  283. case40    clippminY
  284.     accept
  285. case41    clippminY
  286.     cmp.w    _minX(pc),d2    ; px < minX?
  287.     bge.b    1$
  288.     reject
  289. 1$    clipqminX
  290.     cmp.w    _minY(pc),d5    ; qy < minY?
  291.     bge.b    2$
  292.     clipqminY
  293. 2$    accept
  294. case42    clippminY
  295.     cmp.w    _maxX(pc),d2    ; px > maxX?
  296.     ble.b    1$
  297.     reject
  298. 1$    clipqmaxX
  299.     accept
  300. case44    ; reject
  301. case45    ; reject
  302. case46    reject
  303. case48    clippminY
  304.     clipqmaxY
  305.     accept
  306. case49    clippminY
  307.     cmp.w    _minX(pc),d2    ; px < minX?
  308.     bge.b    1$
  309.     reject
  310. 1$    clipqminX
  311.     cmp.w    _maxY(pc),d5    ; qy > maxY?
  312.     ble.b    2$
  313.     clipqmaxY
  314. 2$    accept
  315. case4A    clippminY
  316.     cmp.w    _maxX(pc),d2    ; px > maxX?
  317.     ble.b    1$
  318.     reject
  319. 1$    clipqmaxX
  320.     cmp.w    _maxY(pc),d5    ; qy > maxY?
  321.     ble.b    2$
  322.     clipqmaxY
  323. 2$    accept
  324.  
  325. ; From Lower minX
  326.  
  327. case50    clippminX
  328.     cmp.w    _minY(pc),d3    ; py < minY?
  329.     bge.b    1$
  330.     clippminY
  331. 1$    accept
  332. case51    reject
  333. case52    clipqmaxX
  334.     cmp.w    _minY(pc),d5    ; qy < minY?
  335.     bge.b    1$
  336.     reject
  337. 1$    clippminY
  338.     cmp.w    _minX(pc),d2    ; px < minX?
  339.     bge.b    2$
  340.     clippminX
  341. 2$    accept
  342. case54  ; reject
  343. case55    ; reject
  344. case56    reject
  345. case58    clipqmaxY
  346.     cmp.w    _minX(pc),d4    ; qx < minX?
  347.     bge.b    1$
  348.     reject
  349. 1$    clippminY
  350.     cmp.w    _minX(pc),d2    ; px < minX?
  351.     bge.b    2$
  352.     clippminX
  353. 2$    accept
  354. case59    reject
  355. case5A    clippminX
  356.     cmp.w    _maxY(pc),d3    ; py > maxY?
  357.     ble.b    1$
  358.     reject
  359. 1$    clipqmaxX
  360.     cmp.w    _minY(pc),d5    ; qy < minY?
  361.     bge.b    2$
  362.     reject
  363. 2$    cmp.w    _minY(pc),d3    ; py < minY?
  364.     bge.b    3$
  365.     clippminY
  366. 3$    cmp.w    _maxY(pc),d5    ; qy > maxY?
  367.     ble.b    4$
  368.     clipqmaxY
  369. 4$    accept
  370.  
  371. ; From Lower maxX
  372.  
  373. case60    clippmaxX
  374.     cmp.w    _minY(pc),d3    ; py < minY?
  375.     bge.b    1$
  376.     clippminY
  377. 1$    accept
  378. case61    clipqminX
  379.     cmp.w    _minY(pc),d5    ; qy < minY?
  380.     bge.b    1$
  381.     reject
  382. 1$    clippminY
  383.     cmp.w    _maxX(pc),d2    ; px > maxX?
  384.     ble.b    2$
  385.     clippmaxX
  386. 2$    accept
  387. case62    ; reject
  388. case64    ; reject
  389. case65    ; reject
  390. case66    reject
  391. case68    clipqmaxY
  392.     cmp.w    _maxX(pc),d4    ; qx > maxX?
  393.     ble.b    1$
  394.     reject
  395. 1$    clippmaxX
  396.     cmp.w    _minY(pc),d3    ; py < minY?
  397.     bge.b    2$
  398.     clippminY
  399. 2$    accept
  400. case69    clipqminX
  401.     cmp.w    _minY(pc),d5    ; qy < minY?
  402.     bge.b    1$
  403.     reject
  404. 1$    clippmaxX
  405.     cmp.w    _maxY(pc),d3    ; py > maxY?
  406.     ble.b    2$
  407.     reject
  408. 2$    cmp.w    _maxY(pc),d5    ; qy > maxY?
  409.     ble.b    3$
  410.     clipqmaxY
  411. 3$    cmp.w    _minY(pc),d3    ; py < minY?
  412.     bge.b    4$
  413.     clippminY
  414. 4$    accept
  415. case6A    reject
  416.  
  417. ; From maxY
  418.  
  419. case80    clippmaxY
  420.     accept
  421. case81    clippmaxY
  422.     cmp.w    _minX(pc),d2    ; px < minX?
  423.     bge.b    1$
  424.     reject
  425. 1$    clipqminX
  426.     accept
  427. case82    clippmaxY
  428.     cmp.w    _maxX(pc),d2    ; px > maxX?
  429.     ble.b    1$
  430.     reject
  431. 1$    clipqmaxX
  432.     accept
  433. case84    clippmaxY
  434.     clipqminY
  435.     accept
  436. case85    clippmaxY
  437.     cmp.w    _minX(pc),d2    ; px < minX?
  438.     bge.b    1$
  439.     reject
  440. 1$    clipqminX
  441.     cmp.w    _minY(pc),d5    ; qy < minY?
  442.     bge.b    2$
  443.     clipqminY
  444. 2$    accept
  445. case86    clippmaxY
  446.     cmp.w    _maxX(pc),d2    ; px > maxX?
  447.     ble.b    1$
  448.     reject
  449. 1$    clipqmaxX
  450.     cmp.w    _minY(pc),d5    ; qy < minY?
  451.     bge.b    2$
  452.     clipqminY
  453. 2$    accept
  454. case88    ; reject
  455. case89    ; reject
  456. case8A    reject
  457.  
  458. ; From Upper minX
  459.  
  460. case90    clippminX
  461.     cmp.w    _maxY(pc),d3    ; py > maxY?
  462.     ble.b    1$
  463.     clippmaxY
  464. 1$    accept
  465. case91    reject
  466. case92    clipqmaxX
  467.     cmp.w    _maxY(pc),d5    ; qy > maxY?
  468.     ble.b    1$
  469.     reject
  470. 1$    clippmaxY
  471.     cmp.w    _minX(pc),d2    ; px < minX?
  472.     bge.b    2$
  473.     clippminX
  474. 2$    accept
  475. case94    clipqminY
  476.     cmp.w    _minX(pc),d4    ; qx < minX?
  477.     bge.b    1$
  478.     reject
  479. 1$    clippminX
  480.     cmp.w     _maxY(pc),d3    ; py > maxY?
  481.     ble.b    2$
  482.     clippmaxY
  483. 2$    accept
  484. case95    reject
  485. case96    clippminX
  486.     cmp.w    _minY(pc),d3    ; py < minY?
  487.     bge.b    1$
  488.     reject
  489. 1$    clipqmaxX
  490.     cmp.w    _maxY(pc),d5    ; qy > maxY?
  491.     ble.b    2$
  492.     reject
  493. 2$    cmp.w    _maxY(pc),d3    ; py > maxY?
  494.     ble.b    3$
  495.     clippmaxY
  496. 3$    cmp.w    _minY(pc),d5    ; qy < minY
  497.     bge.b    4$
  498.     clipqminY
  499. 4$    accept
  500. case98    ; reject
  501. case99    ; reject
  502. case9A    reject
  503.  
  504. ; From Upper maxX
  505.  
  506. caseA0    clippmaxX
  507.     cmp.w    _maxY(pc),d3    ; py > maxY?
  508.     ble.b    1$
  509.     clippmaxY
  510. 1$    accept
  511. caseA1    clipqminX
  512.     cmp.w    _maxY(pc),d5    ; qy > maxY?
  513.     ble.b    1$
  514.     reject
  515. 1$    clippmaxY
  516.     cmp.w    _maxX(pc),d2    ; px > maxX?
  517.     ble.b    2$
  518.     clippmaxX
  519. 2$    accept
  520. caseA2    reject
  521. caseA4    clipqminY
  522.     cmp.w    _maxX(pc),d4    ; qx > maxX?
  523.     ble.b    1$
  524.     reject
  525. 1$    clippmaxX
  526.     cmp.w    _maxY(pc),d3    ; py > maxY?
  527.     ble.b    2$
  528.     clippmaxY
  529. 2$    accept
  530. caseA5    clipqminX
  531.     cmp.w    _maxY(pc),d5    ; qy > maxY?
  532.     ble.b    1$
  533.     reject
  534. 1$    clippmaxX
  535.     cmp.w    _minY(pc),d3    ; py < minY?
  536.     bge.b    2$
  537.     reject
  538. 2$    cmp.w    _minY(pc),d5    ; qy < minY?
  539.     bge.b    3$
  540.     clipqminY
  541. 3$    cmp.w    _maxY(pc),d3    ; py > maxY?
  542.     ble.b    4$
  543.     clippmaxY
  544. 4$    accept
  545. caseA6    ; reject
  546. caseA8    ; reject
  547. caseA9    ; reject
  548. caseAA    reject
  549.  
  550. dummycase reject
  551.     
  552. casetable
  553.     dc.l    case00
  554.     dc.l    case01
  555.     dc.l    case02
  556.  
  557.     dc.l    dummycase ; 03
  558.  
  559.     dc.l    case04
  560.     dc.l    case05
  561.     dc.l    case06
  562.  
  563.     dc.l    dummycase ; 07
  564.  
  565.     dc.l    case08
  566.     dc.l    case09
  567.     dc.l    case0A
  568.  
  569.     dc.l    dummycase ; 0B 
  570.     dc.l    dummycase ; 0C
  571.     dc.l    dummycase ; 0D
  572.     dc.l    dummycase ; 0E 
  573.     dc.l    dummycase ; 0F
  574.  
  575.     dc.l    case10
  576.     dc.l    case11
  577.     dc.l    case12
  578.  
  579.     dc.l    dummycase ; 13
  580.  
  581.     dc.l    case14
  582.     dc.l    case15
  583.     dc.l    case16
  584.  
  585.     dc.l    dummycase ; 17
  586.  
  587.     dc.l    case18
  588.     dc.l    case19
  589.     dc.l    case1A
  590.  
  591.     dc.l    dummycase ; 1B 
  592.     dc.l    dummycase ; 1C
  593.     dc.l    dummycase ; 1D
  594.     dc.l    dummycase ; 1E 
  595.     dc.l    dummycase ; 1F
  596.  
  597.     dc.l    case20
  598.     dc.l    case21
  599.     dc.l    case22
  600.  
  601.     dc.l    dummycase ; 23
  602.  
  603.     dc.l    case24
  604.     dc.l    case25
  605.     dc.l    case26
  606.  
  607.     dc.l    dummycase ; 27
  608.  
  609.     dc.l    case28
  610.     dc.l    case29
  611.     dc.l    case2A
  612.  
  613.     dc.l    dummycase ; 2B 
  614.     dc.l    dummycase ; 2C
  615.     dc.l    dummycase ; 2D
  616.     dc.l    dummycase ; 2E 
  617.     dc.l    dummycase ; 2F
  618.     dc.l    dummycase ; 30 
  619.     dc.l    dummycase ; 31
  620.     dc.l    dummycase ; 32
  621.     dc.l    dummycase ; 33 
  622.     dc.l    dummycase ; 34
  623.     dc.l    dummycase ; 35 
  624.     dc.l    dummycase ; 36
  625.     dc.l    dummycase ; 37
  626.     dc.l    dummycase ; 38 
  627.     dc.l    dummycase ; 39
  628.     dc.l    dummycase ; 3A
  629.     dc.l    dummycase ; 3B 
  630.     dc.l    dummycase ; 3C
  631.     dc.l    dummycase ; 3D
  632.     dc.l    dummycase ; 3E 
  633.     dc.l    dummycase ; 3F
  634.  
  635.     dc.l    case40
  636.     dc.l    case41
  637.     dc.l    case42
  638.  
  639.     dc.l    dummycase ; 43
  640.  
  641.     dc.l    case44
  642.     dc.l    case45
  643.     dc.l    case46
  644.  
  645.     dc.l    dummycase ; 47
  646.  
  647.     dc.l    case48
  648.     dc.l    case49
  649.     dc.l    case4A
  650.  
  651.     dc.l    dummycase ; 4B 
  652.     dc.l    dummycase ; 4C
  653.     dc.l    dummycase ; 4D
  654.     dc.l    dummycase ; 4E 
  655.     dc.l    dummycase ; 4F
  656.  
  657.     dc.l    case50
  658.     dc.l    case51
  659.     dc.l    case52
  660.  
  661.     dc.l    dummycase ; 53
  662.  
  663.     dc.l    case54
  664.     dc.l    case55
  665.     dc.l    case56
  666.  
  667.     dc.l    dummycase ; 57
  668.  
  669.     dc.l    case58
  670.     dc.l    case59
  671.     dc.l    case5A
  672.  
  673.     dc.l    dummycase ; 5B 
  674.     dc.l    dummycase ; 5C
  675.     dc.l    dummycase ; 5D
  676.     dc.l    dummycase ; 5E 
  677.     dc.l    dummycase ; 5F
  678.  
  679.     dc.l    case60
  680.     dc.l    case61
  681.     dc.l    case62
  682.  
  683.     dc.l    dummycase ; 63
  684.  
  685.     dc.l    case64
  686.     dc.l    case65
  687.     dc.l    case66
  688.  
  689.     dc.l    dummycase ; 67
  690.  
  691.     dc.l    case68
  692.     dc.l    case69
  693.     dc.l    case6A
  694.  
  695.     dc.l    dummycase ; 6B 
  696.     dc.l    dummycase ; 6C
  697.     dc.l    dummycase ; 6D
  698.     dc.l    dummycase ; 6E 
  699.     dc.l    dummycase ; 6F
  700.  
  701.     dc.l    dummycase ; 70 
  702.     dc.l    dummycase ; 71
  703.     dc.l    dummycase ; 72
  704.     dc.l    dummycase ; 73 
  705.     dc.l    dummycase ; 74
  706.     dc.l    dummycase ; 75 
  707.     dc.l    dummycase ; 76
  708.     dc.l    dummycase ; 77
  709.     dc.l    dummycase ; 78 
  710.     dc.l    dummycase ; 79
  711.     dc.l    dummycase ; 7A
  712.     dc.l    dummycase ; 7B 
  713.     dc.l    dummycase ; 7C
  714.     dc.l    dummycase ; 7D
  715.     dc.l    dummycase ; 7E 
  716.     dc.l    dummycase ; 7F
  717.  
  718.     dc.l    case80
  719.     dc.l    case81
  720.     dc.l    case82
  721.  
  722.     dc.l    dummycase ; 83
  723.  
  724.     dc.l    case84
  725.     dc.l    case85
  726.     dc.l    case86
  727.  
  728.     dc.l    dummycase ; 87
  729.  
  730.     dc.l    case88
  731.     dc.l    case89
  732.     dc.l    case8A
  733.  
  734.     dc.l    dummycase ; 8B 
  735.     dc.l    dummycase ; 8C
  736.     dc.l    dummycase ; 8D
  737.     dc.l    dummycase ; 8E 
  738.     dc.l    dummycase ; 8F
  739.  
  740.     dc.l    case90
  741.     dc.l    case91
  742.     dc.l    case92
  743.  
  744.     dc.l    dummycase ; 93
  745.  
  746.     dc.l    case94
  747.     dc.l    case95
  748.     dc.l    case96
  749.  
  750.     dc.l    dummycase ; 97
  751.  
  752.     dc.l    case98
  753.     dc.l    case99
  754.     dc.l    case9A
  755.  
  756.     dc.l    dummycase ; 9B 
  757.     dc.l    dummycase ; 9C
  758.     dc.l    dummycase ; 9D
  759.     dc.l    dummycase ; 9E 
  760.     dc.l    dummycase ; 9F
  761.  
  762.     dc.l    caseA0
  763.     dc.l    caseA1
  764.     dc.l    caseA2
  765.  
  766.     dc.l    dummycase ; A3
  767.  
  768.     dc.l    caseA4
  769.     dc.l    caseA5
  770.     dc.l    caseA6
  771.  
  772.     dc.l    dummycase ; A7
  773.  
  774.     dc.l    caseA8
  775.     dc.l    caseA9
  776.     dc.l    caseAA
  777.     
  778.     END
  779.