home *** CD-ROM | disk | FTP | other *** search
/ Esprit de Apple Corps / EDAC-2.iso / Graphics / Apps / Programs / SuperMagic / Real.Time / SM.LIB < prev    next >
Encoding:
Text File  |  1991-08-23  |  50.8 KB  |  2,710 lines

  1. *------------------------------------------------------
  2. *
  3. * << Super Magic 320 >>                   version 2.3B
  4. *
  5. * By: Lim Thye Chean
  6. *
  7. *
  8. * No part of Super Magic 320 library routines should
  9. * be modified without the permission of the author.
  10. *
  11. * Credit is given to FTA for the Tool 219.
  12. *
  13. *
  14. * Routines
  15. * --------
  16. * Set up the parameters required by the program before
  17. * calling. Please take note of the restrictions on
  18. * some of the parameters in certain routines.
  19. *
  20. * Please do not use Temp variables in the program. Do
  21. * not use the parameters as storage except for calling
  22. * routines. Do not modify RndFlag.
  23. *
  24. * Most routines will preserved the values of X and Y
  25. * registers. Value in accumulator will be changed.
  26. *
  27. * Some routines have two versions: a normal version
  28. * and a faster, but more restricted version.
  29. *
  30. *
  31. * Colours
  32. * -------
  33. * Where defining colours, notice that there are 3 types
  34. * of colour parameter.
  35. *
  36. * 1. Colour
  37. *    When colour is needed when calling routine,
  38. *    programmer can also use names like Red, Green,
  39. *    Blue, etc (when standard palette is used), or
  40. *    $0000, $1111, ... to represent colour 0, 1, ...
  41. *    in the palette.
  42. *
  43. * 2. Gradient colour
  44. *    Use only in Gradient Fill palette routine.
  45. *    Programmer use names like GRed, GGreen, GBlue to
  46. *    represent gradient colours.
  47. *
  48. * 3. RGB Colour
  49. *    When colour is added into the palette, programmer
  50. *    needs to specify the RGB components of the
  51. *    colours. It is a 12-bits value, 4 bits for each
  52. *    component. Programmer can use names like RRed,
  53. *    RGreen, RBlue, etc, or 12-bit values.
  54. *
  55. *------------------------------------------------------
  56.  
  57. *------------------------------------------------------
  58. *
  59. * Startup
  60. *
  61.  
  62. Startup  start
  63.  
  64.          jsr   StartMM
  65.          jsr   SHires
  66.          jsr   SetSClr
  67.          jsr   CalAddr
  68.          jsr   SetSCB0
  69.  
  70.          stz   Colour
  71.          jsr   ClrScrn
  72.  
  73.          rts
  74.  
  75.          end
  76.  
  77. *------------------------------------------------------
  78. *
  79. * Super Hires display
  80. *
  81.  
  82. SHires   start
  83.  
  84.          sep   #$20
  85.          short m
  86.  
  87.          lda   #$C1
  88.          sta   NewVideo
  89.  
  90.          rep   #$20
  91.          long  m
  92.  
  93.          jsr   ShadowOn
  94.  
  95.          rts
  96.  
  97.          end
  98.  
  99. *------------------------------------------------------
  100. *
  101. * Allocate memory
  102. *
  103. * Temp   1: useless handle
  104. *
  105.  
  106. StartMM  start
  107.          using ToolData
  108.  
  109.          phk                            Push Program Bank register to
  110.          plb                              Data Bank register
  111.  
  112.          _TLStartup                     Start Tool Locator
  113.  
  114.          wordresult
  115.  
  116.          _MMStartup                     Start Memory Manager
  117.          jsr   CheckErr
  118.          pl2   MasterID
  119.          ora   #$0100
  120.          sta   OurID
  121.  
  122.          longresult
  123.  
  124.          ph4   #32000                   Allocate memory
  125.          ph2   OurID
  126.          ph2   #$C017
  127.          ph4   #$00012000
  128.          _NewHandle
  129.          jsr   CheckErr
  130.  
  131.          pl4   Temp1
  132.  
  133.          rts
  134.  
  135.  
  136. *------------------------------------------------------
  137. *
  138. * Shut down tools
  139. *
  140.  
  141. ShutDown entry
  142.  
  143.          ph2   OurID                    Release all memory
  144.          _DisposeAll
  145.  
  146.          ph2   MasterID                 Shutdown Memory Manager
  147.          _MMShutDown
  148.  
  149.          _TLShutDown                    Shutdown Tool Locator
  150.  
  151.          rts
  152.  
  153. *------------------------------------------------------
  154. *
  155. * Tools support function and data
  156. *
  157.  
  158. CheckErr entry
  159.          bcs   Error
  160.          rts
  161.  
  162. Error    pha
  163.          ph4   #FailMsg
  164.          _SysFailMgr
  165.  
  166.          end
  167.  
  168. ToolData data
  169.  
  170. MasterID ds    2
  171. OurID    ds    2
  172.  
  173. FailMsg  dc    h'6',c'Error:'
  174.  
  175.          end
  176.  
  177. *------------------------------------------------------
  178. *
  179. * Text display
  180. *
  181.  
  182. Text     start
  183.  
  184.          sep   #$20
  185.          short m
  186.  
  187.          lda   #1
  188.          sta   NewVideo
  189.  
  190.          rep   #$20
  191.          long  m
  192.  
  193.          jsr   ShadowOff
  194.  
  195.          rts
  196.  
  197.          end
  198.  
  199. *------------------------------------------------------
  200. *
  201. * Switch on/off shadowing
  202. *
  203.  
  204. ShadowOn start
  205.  
  206.          lda   Shadow
  207.          and   #$FFF7
  208.          sta   Shadow
  209.  
  210.          rts
  211.  
  212. ShadowOff entry
  213.  
  214.          lda   Shadow
  215.          ora   #%1000
  216.          sta   Shadow
  217.  
  218.          rts
  219.  
  220.          end
  221.  
  222. *------------------------------------------------------
  223. *
  224. * Set standard colours in all palettes
  225. *
  226. * Temp   1: palette number
  227. *
  228.  
  229. SetSClr  start
  230.          using SColour
  231.  
  232.          ldx   #0
  233.          lda   #16
  234.          sta   Temp1
  235.  
  236. SSC1     ldy   #0
  237.  
  238. SSC2     lda   SColour,y
  239.          sta   PlttAddr,x
  240.          inx
  241.          inx
  242.          iny
  243.          iny
  244.          cpy   #32
  245.          bcc   SSC2
  246.  
  247.          dec   Temp1
  248.          bne   SSC1
  249.  
  250.          rts
  251.  
  252.          end
  253.  
  254. *------------------------------------------------------
  255. *
  256. * Set all SCB to palette 0
  257. *
  258.  
  259. SetSCB0  start
  260.  
  261.          ldx   #200
  262.  
  263. SS01     lda   #0
  264.          sta   SCBAddr-2,x
  265.          dex
  266.          dex
  267.          bne   SS01
  268.  
  269.          rts
  270.  
  271.          end
  272.  
  273. *------------------------------------------------------
  274. *
  275. * Set SCB to palette n
  276. *
  277. * Input  Y      : location of SCB
  278. *        Palette: palette number
  279. *
  280.  
  281. SetSCB   start
  282.  
  283.          phx
  284.  
  285.          sep   #$20
  286.          short m
  287.  
  288.          lda   Palette
  289.          ldx   Y
  290.          sta   SCBAddr,x
  291.  
  292.          rep   #$20
  293.          long  m
  294.  
  295.          plx
  296.  
  297.          rts
  298.  
  299.          end
  300.  
  301. *------------------------------------------------------
  302. *
  303. * Plot pixel
  304. *
  305. * Input  X, Y  : location of the pixel
  306. *        Colour: colour of the pixel
  307. *
  308. * Temp   1: int(X / 2)
  309. *        2: pixel mask
  310. *        3: pixel colour
  311. *
  312.  
  313. Plot     start
  314.          using Address
  315.  
  316.          phx
  317.  
  318.          lda   X                        Determine whether the pixel is
  319.          lsr   a                          even or odd
  320.          sta   Temp1
  321.          bcc   P1
  322.  
  323.          lda   #$FFF0
  324.          sta   Temp2
  325.          lda   Colour
  326.          and   #$F
  327.          bra   P2
  328.  
  329. P1       lda   #$FF0F
  330.          sta   Temp2
  331.          lda   Colour
  332.          and   #$F0
  333.  
  334. P2       sta   Temp3
  335.          lda   Y                        Calculate the address of the
  336.          asl   a                          pixel
  337.          tax
  338.          lda   Address,x
  339.          adc   Temp1
  340.          tax
  341.  
  342.          lda   SHRAddr,x
  343.          and   Temp2
  344.          ora   Temp3
  345.          sta   SHRAddr,x
  346.  
  347.          plx
  348.  
  349.          rts
  350.  
  351.          end
  352.  
  353. *------------------------------------------------------
  354. *
  355. * Erase pixel (to colour 0)
  356. *
  357. * Input  X, Y: location of the pixel
  358. *
  359. * Temp   1: int(X / 2)
  360. *
  361.  
  362. *
  363. * Erase
  364. *
  365.  
  366. Erase    start
  367.          using Address
  368.  
  369.          phx
  370.  
  371.          lda   X                        Determine whether the pixel is
  372.          lsr   a                          even or odd
  373.          sta   Temp1
  374.          bcc   P1
  375.  
  376.          lda   #$FFF0
  377.          sta   Temp2
  378.          bra   P2
  379.  
  380. P1       lda   #$FF0F
  381.          sta   Temp2
  382.  
  383. P2       lda   Y                        Calculate the address of the
  384.          asl   a                          pixel
  385.          tax
  386.          lda   Address,x
  387.          adc   Temp1
  388.          tax
  389.  
  390.          lda   SHRAddr,x
  391.          and   Temp2
  392.          sta   SHRAddr,x
  393.  
  394.          plx
  395.  
  396.          rts
  397.  
  398.          end
  399.  
  400. *
  401. * Fast erase (background destroyed)
  402. *
  403.  
  404. Erase2   start
  405.          using Address
  406.  
  407.          phx
  408.  
  409.          lda   X                        Determine whether the pixel is
  410.          lsr   a                          even or odd
  411.          sta   Temp1
  412.  
  413.          lda   Y                        Calculate the address of the
  414.          asl   a                          pixel
  415.          tax
  416.          lda   Address,x
  417.          adc   Temp1
  418.          tax
  419.  
  420.          lda   #0
  421.          sta   SHRAddr,x
  422.  
  423.          plx
  424.  
  425.          rts
  426.  
  427.          end
  428.  
  429. *------------------------------------------------------
  430. *
  431. * Display pixel
  432. *
  433. * Input  X, Y  : location of the pixel
  434. *
  435. * Temp   1: int(X/2)
  436. *
  437.  
  438. Display  start
  439.          using Address
  440.  
  441.          phx
  442.  
  443.          lda   X
  444.          lsr   a
  445.          sta   Temp1
  446.  
  447.          lda   Y                        Calculate the address of the
  448.          asl   a                          pixel
  449.          tax
  450.          lda   Address,x
  451.          adc   Temp1
  452.          tax
  453.  
  454.          lda   SHRAddr,x
  455.          sta   SHRAddr,x
  456.  
  457.          plx
  458.  
  459.          rts
  460.  
  461.          end
  462.  
  463. *------------------------------------------------------
  464. *
  465. * Horizontal line
  466. *
  467. * Input  X1, X2, Y: start and end position of the line
  468. *        Colour   : colour of the line
  469. *
  470. * Temp   1: int(X / 2)
  471. *
  472. * Note:  X1 <= X2, X1 must be even, X2 must be odd.
  473. *
  474.  
  475. HorLine  start
  476.          using Address
  477.  
  478.          phx
  479.          phy
  480.  
  481.          lda   X1
  482.          lsr   a
  483.          sta   Temp1
  484.  
  485.          lda   Y
  486.          asl   a
  487.          tax
  488.          lda   Address,x
  489.          adc   Temp1
  490.          tay
  491.  
  492.          pea   $0101
  493.          plb
  494.          plb
  495.  
  496.          lda   X2                       Convert the length of line to
  497.          sec                              number of bytes
  498.          sbc   X1
  499.          inc   a
  500.          lsr   a
  501.          tax
  502.  
  503.          sep   #$20
  504.          short m
  505.  
  506. HL1      lda   Colour
  507.          sta   |SHRAddr,y
  508.          iny
  509.          dex
  510.          bne   HL1
  511.  
  512.          rep   #$20
  513.          long  m
  514.  
  515.          phk
  516.          plb
  517.  
  518.          ply
  519.          plx
  520.  
  521.          rts
  522.  
  523.          end
  524.  
  525. *------------------------------------------------------
  526. *
  527. * Vertical line
  528. *
  529. * Input  X, Y1, Y2: start and end position of the line
  530. *        Colour   : colour of the line
  531. *
  532. * Temp   1: int(X / 2)
  533. *        2: pixel mask
  534. *        3: pixel colour
  535. *
  536. * Note:  Y1 <= Y2
  537. *
  538.  
  539. VerLine  start
  540.          using Address
  541.  
  542.          phx
  543.          phy
  544.  
  545. VL1      lda   X                        Determine whether the pixel is
  546.          lsr   a                          even or odd
  547.          sta   Temp1
  548.          bcc   VL2
  549.  
  550.          lda   #$FFF0
  551.          sta   Temp2
  552.          lda   Colour
  553.          and   #$F
  554.          bra   VL3
  555.  
  556. VL2      lda   #$FF0F
  557.          sta   Temp2
  558.          lda   Colour
  559.          and   #$F0
  560.  
  561. VL3      sta   Temp3
  562.  
  563.          lda   Y1
  564.          asl   a
  565.          tax
  566.          lda   Address,x
  567.          adc   Temp1
  568.          tay
  569.  
  570.          pea   $0101
  571.          plb
  572.          plb
  573.  
  574.          lda   Y2
  575.          sec
  576.          sbc   Y1
  577.          inc   a
  578.          tax
  579.  
  580.          clc
  581.  
  582. VL4      lda   |SHRAddr,y
  583.          and   Temp2
  584.          ora   Temp3
  585.          sta   |SHRAddr,y
  586.  
  587.          tya
  588.          adc   #160
  589.          tay
  590.  
  591.          dex
  592.          bne   VL4
  593.  
  594.          phk
  595.          plb
  596.  
  597.          ply
  598.          plx
  599.  
  600.          rts
  601.  
  602.          end
  603.  
  604. *------------------------------------------------------
  605. *
  606. * Plot shape
  607. *
  608. * Input  16-bit stack: address of shape
  609. *        16-bit stack: address of mask
  610. *        16-bit stack: address of background
  611. *        X, Y        : upper left corner of shape
  612. *        Length      : length of shape
  613. *        Height      : height of shape
  614. *
  615. * Temp   1: length / 2
  616. *        2: length / 2 - 2
  617. *
  618. * Note:  The length of the shape should be multiple of
  619. *        four, and the X value should be even.
  620. *
  621.  
  622. PlotShp  start
  623.          using AddrTbl
  624.  
  625.          pl2   Temp1
  626.          pl2   BackAddr
  627.          pl2   MaskAddr
  628.          pl2   ShpAddr
  629.  
  630.          ph2   Temp1
  631.  
  632.          phx
  633.          phy
  634.  
  635.          lda   X
  636.          lsr   a
  637.          sta   YAddr
  638.  
  639.          lda   Y
  640.          asl   a
  641.          tax
  642.          lda   AddrTbl,x
  643.          adc   YAddr
  644.          sta   YAddr
  645.  
  646.          ldx   Height
  647.  
  648.          lda   Length                   Convert length into number of
  649.          lsr   a                          bytes
  650.          sta   Temp1
  651.          dec   a
  652.          dec   a
  653.          sta   Temp2
  654.  
  655. PS1      ldy   Temp2
  656.  
  657. PS2      lda   [YAddr],y
  658.          sta   (BackAddr),y             Save the background
  659.          and   (MaskAddr),y             Mask the background
  660.          ora   (ShpAddr),y              Plot four pixels
  661.          sta   [YAddr],y
  662.          dey
  663.          dey
  664.          bpl   PS2
  665.  
  666.          lda   YAddr
  667.          adc   #160
  668.          sta   YAddr
  669.  
  670.          ldy   Temp1
  671.  
  672.          tya
  673.          adc   ShpAddr
  674.          sta   ShpAddr
  675.  
  676.          tya
  677.          adc   MaskAddr
  678.          sta   MaskAddr
  679.  
  680.          tya
  681.          adc   BackAddr
  682.          sta   BackAddr
  683.  
  684.          dex
  685.          bne   PS1
  686.  
  687.          ply
  688.          plx
  689.  
  690.          rts
  691.  
  692.          end
  693.  
  694. *------------------------------------------------------
  695. *
  696. * Fast plot shape (background not saved)
  697. *
  698. * Input  16-bit stack: address of shape
  699. *        16-bit stack: address of mask
  700. *        X, Y        : upper left corner of shape
  701. *        Length      : length of shape
  702. *        Height      : height of shape
  703. *
  704. * Temp   1: length / 2
  705. *        2: length / 2 - 2
  706. *
  707. * Note:  The length of the shape should be multiple of
  708. *        four, and the X value should be even.
  709. *
  710.  
  711. PlotShp2 start
  712.          using AddrTbl
  713.  
  714.          pl2   Temp1
  715.          pl2   MaskAddr
  716.          pl2   ShpAddr
  717.  
  718.          ph2   Temp1
  719.  
  720.          phx
  721.          phy
  722.  
  723.          lda   X
  724.          lsr   a
  725.          sta   YAddr
  726.  
  727.          lda   Y
  728.          asl   a
  729.          tax
  730.          lda   AddrTbl,x
  731.          adc   YAddr
  732.          sta   YAddr
  733.  
  734.          ldx   Height
  735.  
  736.          lda   Length                   Convert length into number of
  737.          lsr   a                          bytes
  738.          sta   Temp1
  739.          dec   a
  740.          dec   a
  741.          sta   Temp2
  742.  
  743. PS1      ldy   Temp2
  744.  
  745. PS2      lda   [YAddr],y
  746.          and   (MaskAddr),y
  747.          ora   (ShpAddr),y               Plot four pixels
  748.          sta   [YAddr],y
  749.          dey
  750.          dey
  751.          bpl   PS2
  752.  
  753.          lda   YAddr
  754.          adc   #160
  755.          sta   YAddr
  756.  
  757.          lda   ShpAddr
  758.          adc   Temp1
  759.          sta   ShpAddr
  760.  
  761.          lda   MaskAddr
  762.          adc   Temp1
  763.          sta   MaskAddr
  764.  
  765.          dex
  766.          bne   PS1
  767.  
  768.          ply
  769.          plx
  770.  
  771.          rts
  772.  
  773.          end
  774.  
  775. *------------------------------------------------------
  776. *
  777. * Erase shape
  778. *
  779. * Input  16-bit stack: address of background
  780. *        X, Y        : upper left corner of background
  781. *        Length      : length of background
  782. *        Height      : height of background
  783. *
  784. * Temp   1: length / 2
  785. *        2: length / 2 - 2
  786. *
  787. * Note:  The length of the background should be multiple
  788. *        of four, and the X value should be even.
  789. *
  790.  
  791. ErsShp   start
  792.          using AddrTbl
  793.  
  794.          pl2   Temp1
  795.          pl2   BackAddr
  796.  
  797.          ph2   Temp1
  798.          phx
  799.          phy
  800.  
  801.          lda   X
  802.          lsr   a
  803.          sta   YAddr
  804.  
  805.          lda   Y
  806.          asl   a
  807.          tay
  808.          lda   AddrTbl,y
  809.          adc   YAddr
  810.          sta   YAddr
  811.  
  812.          ldx   Height
  813.  
  814.          lda   Length                   Convert the length into number
  815.          lsr   a                          of bytes
  816.          sta   Temp1
  817.          dec   a
  818.          dec   a
  819.          sta   Temp2
  820.  
  821. ES1      ldy   Temp2
  822.  
  823. ES2      lda   (BackAddr),y             Put back the background
  824.          sta   [YAddr],y
  825.          dey
  826.          dey
  827.          bpl   ES2
  828.  
  829.          lda   YAddr
  830.          adc   #160
  831.          sta   YAddr
  832.  
  833.          lda   BackAddr
  834.          adc   Temp1
  835.          sta   BackAddr
  836.  
  837.          dex
  838.          bne   ES1
  839.  
  840.          ply
  841.          plx
  842.  
  843.          rts
  844.  
  845.          end
  846.  
  847. *------------------------------------------------------
  848. *
  849. * Fast erase shape (background destroyed)
  850. *
  851. *        X, Y  : upper left corner of background
  852. *        Length: length of background
  853. *        Height: height of background
  854. *
  855. * Temp   1: length / 2
  856. *        2: length / 2 - 2
  857. *
  858. * Note:  The length of the background should be multiple
  859. *        of four, and the X value should be even.
  860. *
  861.  
  862. ErsShp2  start
  863.          using AddrTbl
  864.  
  865.          phx
  866.          phy
  867.  
  868.          lda   X
  869.          lsr   a
  870.          sta   YAddr
  871.  
  872.          lda   Y
  873.          asl   a
  874.          tay
  875.          lda   AddrTbl,y
  876.          adc   YAddr
  877.          sta   YAddr
  878.  
  879.          ldx   Height
  880.  
  881.          lda   Length                   Convert the length into number
  882.          lsr   a                          of bytes
  883.          sta   Temp1
  884.          dec   a
  885.          dec   a
  886.          sta   Temp2
  887.  
  888. ES1      ldy   Temp2
  889.  
  890.          lda   #0
  891.  
  892. ES2      sta   [YAddr],y
  893.          dey
  894.          dey
  895.          bpl   ES2
  896.  
  897.          lda   YAddr
  898.          adc   #160
  899.          sta   YAddr
  900.  
  901.          dex
  902.          bne   ES1
  903.  
  904.          ply
  905.          plx
  906.  
  907.          rts
  908.  
  909.          end
  910.  
  911. *------------------------------------------------------
  912. *
  913. * Display shape
  914. *
  915. * Input  X, Y  : upper left corner of shape
  916. *        Length: length of shape
  917. *        Height: height of shape
  918. *
  919. * Temp   1: length / 2 - 2
  920. *
  921. * Note:  The length of the shape should be multiple of
  922. *        four, and the X value should be even.
  923. *
  924.  
  925. DsplShp  start
  926.          using AddrTbl
  927.  
  928.          phx
  929.          phy
  930.  
  931.          lda   X
  932.          lsr   a
  933.          sta   YAddr
  934.  
  935.          lda   Y
  936.          asl   a
  937.          tay
  938.          lda   AddrTbl,y
  939.          adc   YAddr
  940.          sta   YAddr
  941.  
  942.          ldx   Height
  943.  
  944.          lda   Length                   Convert length into number of
  945.          lsr   a                          bytes
  946.          dec   a
  947.          dec   a
  948.          sta   Temp1
  949.  
  950.          pea   $0101
  951.          plb
  952.          plb
  953.  
  954. DS1      ldy   Temp1
  955.  
  956. DS2      lda   (YAddr),y
  957.          sta   (YAddr),y
  958.          dey
  959.          dey
  960.          bpl   DS2
  961.  
  962.          lda   YAddr
  963.          adc   #160
  964.          sta   YAddr
  965.  
  966.          dex
  967.          bne   DS1
  968.  
  969.          phk
  970.          plb
  971.  
  972.          ply
  973.          plx
  974.  
  975.          rts
  976.  
  977.          end
  978.  
  979. *------------------------------------------------------
  980. *
  981. * Display shape (including the surrounded area)
  982. *
  983. * Input  X, Y  : upper left corner of shape
  984. *        Length: length of shape
  985. *        Height: height of shape
  986. *
  987. * Temp   1: length / 2
  988. *
  989. * Note:  The length of the shape should be multiple of
  990. *        four, and the X value should be even.
  991. *        Additional twp pixels from each side on each
  992. *        of the axis are displayed.
  993. *
  994.  
  995. DsplShp2 start
  996.          using AddrTbl
  997.  
  998.          phx
  999.          phy
  1000.  
  1001.          lda   X
  1002.          lsr   a
  1003.          dec   a
  1004.          sta   YAddr
  1005.  
  1006.          lda   Y
  1007.          dec   a
  1008.          dec   a
  1009.          asl   a
  1010.          tay
  1011.          lda   AddrTbl,y
  1012.          adc   YAddr
  1013.          sta   YAddr
  1014.  
  1015.          lda   Height
  1016.          adc   #4
  1017.          tax
  1018.  
  1019.          lda   Length                   Convert length into number of
  1020.          lsr   a                          bytes
  1021.          sta   Temp1
  1022.  
  1023.          pea   $0101
  1024.          plb
  1025.          plb
  1026.  
  1027. DS1      ldy   Temp1
  1028.  
  1029. DS2      lda   (YAddr),y
  1030.          sta   (YAddr),y
  1031.          dey
  1032.          dey
  1033.          bpl   DS2
  1034.  
  1035.          lda   YAddr
  1036.          adc   #160
  1037.          sta   YAddr
  1038.  
  1039.          dex
  1040.          bne   DS1
  1041.  
  1042.          phk
  1043.          plb
  1044.  
  1045.          ply
  1046.          plx
  1047.  
  1048.          rts
  1049.  
  1050.          end
  1051.  
  1052. *------------------------------------------------------
  1053. *
  1054. * Colour cycle (Colour 1 to 15)
  1055. *
  1056. * Input  Palette: palette number
  1057. *
  1058.  
  1059. *
  1060. * Cycle the palette colour to the left
  1061. *
  1062.  
  1063. CycLeft  start
  1064.  
  1065.          phx
  1066.          phy
  1067.  
  1068.          lda   Palette
  1069.          asl   a
  1070.          asl   a
  1071.          asl   a
  1072.          asl   a
  1073.          asl   a
  1074.          tax
  1075.          inx
  1076.          inx
  1077.  
  1078.          lda   PlttAddr,x
  1079.          pha
  1080.  
  1081.          ldy   #14
  1082.  
  1083. CL1      lda   PlttAddr+2,x
  1084.          sta   PlttAddr,x
  1085.          inx
  1086.          inx
  1087.          dey
  1088.          bne   CL1
  1089.  
  1090.          pla
  1091.          sta   PlttAddr,x
  1092.  
  1093.          ply
  1094.          plx
  1095.  
  1096.          rts
  1097.  
  1098.          end
  1099.  
  1100. *
  1101. * Cycle the palette colour to the right
  1102. *
  1103.  
  1104. CycRight start
  1105.  
  1106.          phx
  1107.          phy
  1108.  
  1109.          lda   Palette
  1110.          asl   a
  1111.          asl   a
  1112.          asl   a
  1113.          asl   a
  1114.          asl   a
  1115.          asl   a
  1116.          tax
  1117.          dex
  1118.          dex
  1119.  
  1120.          lda   PlttAddr,x
  1121.          pha
  1122.  
  1123.          ldy   #14
  1124.  
  1125. CR1      lda   PlttAddr-2,x
  1126.          sta   PlttAddr,x
  1127.          dex
  1128.          dex
  1129.          dey
  1130.          bne   CR1
  1131.  
  1132.          pla
  1133.          sta   PlttAddr,x
  1134.  
  1135.          ply
  1136.          plx
  1137.  
  1138.          rts
  1139.  
  1140.          end
  1141.  
  1142. *------------------------------------------------------
  1143. *
  1144. * Partial colour cycle
  1145. *
  1146. * Input  Palette: palette number
  1147. *        ClrNum1: first colour in the colour range
  1148. *        ClrNum2: last colour in the colour range
  1149. *
  1150. * Note: ClrNum1 < ClrNum2
  1151. *
  1152.  
  1153. *
  1154. * Partial cycle the palette colour to the left
  1155. *
  1156.  
  1157. PCycLeft start
  1158.  
  1159.          phx
  1160.          phy
  1161.  
  1162.          lda   Palette
  1163.          asl   a
  1164.          asl   a
  1165.          asl   a
  1166.          asl   a
  1167.          asl   a
  1168.          tax
  1169.  
  1170.          ldy   ClrNum1
  1171.  
  1172. PCL1     inx
  1173.          inx
  1174.          dey
  1175.          bne   PCL1
  1176.  
  1177.          lda   PlttAddr,x
  1178.          pha
  1179.  
  1180.          lda   ClrNum2
  1181.          sec
  1182.          sbc   ClrNum1
  1183.          tay
  1184.  
  1185. PCL2     lda   PlttAddr+2,x
  1186.          sta   PlttAddr,x
  1187.          inx
  1188.          inx
  1189.          dey
  1190.          bne   PCL2
  1191.  
  1192.          pla
  1193.          sta   PlttAddr,x
  1194.  
  1195.          ply
  1196.          plx
  1197.  
  1198.          rts
  1199.  
  1200.          end
  1201.  
  1202. *
  1203. * Partial cycle the palette colour to the right
  1204. *
  1205.  
  1206. PCycRight start
  1207.  
  1208.          phx
  1209.          phy
  1210.  
  1211.          lda   Palette
  1212.          asl   a
  1213.          asl   a
  1214.          asl   a
  1215.          asl   a
  1216.          asl   a
  1217.          tax
  1218.  
  1219.          ldy   ClrNum2
  1220.  
  1221. PCR1     inx
  1222.          inx
  1223.          dey
  1224.          bne   PCR1
  1225.  
  1226.          lda   PlttAddr,x
  1227.          pha
  1228.  
  1229.          lda   ClrNum2
  1230.          sec
  1231.          sbc   ClrNum1
  1232.          tay
  1233.  
  1234. PCR2     lda   PlttAddr-2,x
  1235.          sta   PlttAddr,x
  1236.          dex
  1237.          dex
  1238.          dey
  1239.          bne   PCR2
  1240.  
  1241.          pla
  1242.          sta   PlttAddr,x
  1243.  
  1244.          ply
  1245.          plx
  1246.  
  1247.          rts
  1248.  
  1249.          end
  1250.  
  1251. *------------------------------------------------------
  1252. *
  1253. * Gradient fill palette (colour 1 to 15)
  1254. *
  1255. * Input  Palette: palette number to be gradient filled
  1256. *        GColour: gradient colour
  1257. *
  1258.  
  1259. GrdFill  start
  1260.  
  1261.          phx
  1262.          phy
  1263.  
  1264.          lda   Palette
  1265.          asl   a
  1266.          asl   a
  1267.          asl   a
  1268.          asl   a
  1269.          asl   a
  1270.          tax
  1271.  
  1272.          lda   #0
  1273.          ldy   #16
  1274.  
  1275. GF1      sta   PlttAddr,x
  1276.          inx
  1277.          inx
  1278.          adc   GColour
  1279.          dey
  1280.          bne   GF1
  1281.  
  1282.          ply
  1283.          plx
  1284.  
  1285.          rts
  1286.  
  1287.          end
  1288.  
  1289. *------------------------------------------------------
  1290. *
  1291. * Set Colour
  1292. *
  1293. * Input  Palette: palette number
  1294. *        ClrNum : colour number to be set
  1295. *        RGB    : RGB component of colour to be set
  1296. *
  1297.  
  1298. SetClr   start
  1299.          using SColour
  1300.  
  1301.          phx
  1302.  
  1303.          lda   Palette
  1304.          asl   a
  1305.          asl   a
  1306.          asl   a
  1307.          asl   a
  1308.          asl   a
  1309.          adc   ClrNum
  1310.          adc   ClrNum
  1311.          tax
  1312.  
  1313.          lda   RGB
  1314.          sta   PlttAddr,x
  1315.  
  1316.          plx
  1317.  
  1318.          rts
  1319.  
  1320.          end
  1321.  
  1322. *------------------------------------------------------
  1323. *
  1324. * Print message
  1325. *
  1326. * Input  16-bit stack: address of the message
  1327. *        X           : start column (0..78)
  1328. *        Y           : line (0..199)
  1329. *        Colour      : colour of the message
  1330. *
  1331. * Temp   1: counter
  1332. *        2: Y address
  1333. *        3: Number of characters printed
  1334. *        4: current X location
  1335. *
  1336.  
  1337. *
  1338. * Print
  1339. *
  1340.  
  1341. Print    start
  1342.          using AddrTbl
  1343.          using Font
  1344.  
  1345.          pl2   Temp1
  1346.          pl2   MsgAddr
  1347.  
  1348.          ph2   Temp1
  1349.  
  1350.          phx
  1351.          phy
  1352.  
  1353.          lda   X
  1354.          sta   Temp4
  1355.  
  1356.          lda   Y                        Calculate the address of the
  1357.          asl   a                          character position
  1358.          tay
  1359.          lda   AddrTbl,y
  1360.          sta   Temp2
  1361.  
  1362.          stz   Temp3
  1363.  
  1364. P1       ldy   Temp3
  1365.          lda   (MsgAddr),y
  1366.          and   #$FF
  1367.          beq   Done
  1368.          cmp   #" "
  1369.          beq   P4
  1370.  
  1371.          sec
  1372.          sbc   #" "
  1373.          asl   a                          character in the font
  1374.          asl   a
  1375.          asl   a
  1376.          asl   a
  1377.          asl   a
  1378.          tax
  1379.  
  1380.          lda   Temp4
  1381.          asl   a
  1382.          clc
  1383.          adc   Temp2
  1384.          sta   YAddr
  1385.  
  1386.          lda   #8
  1387.          sta   Temp1
  1388.  
  1389. P2       ldy   #0
  1390.  
  1391. P3       lda   Font,x
  1392.          eor   #$FFFF
  1393.          and   [YAddr],y
  1394.          ora   Font,x
  1395.          and   Colour
  1396.          sta   [YAddr],y
  1397.          inx
  1398.          inx
  1399.          iny
  1400.          iny
  1401.          cpy   #4
  1402.          bcc   P3
  1403.          dec   Temp1
  1404.          beq   P4
  1405.  
  1406.          lda   YAddr
  1407.          clc
  1408.          adc   #160
  1409.          sta   YAddr
  1410.          bra   P2
  1411.  
  1412. P4       lda   Temp4
  1413.          clc
  1414.          adc   #2
  1415.          cmp   #79
  1416.          bcs   Done
  1417.          sta   Temp4
  1418.          inc   Temp3
  1419.          bra   P1
  1420.  
  1421. Done     ply
  1422.          plx
  1423.  
  1424.          rts
  1425.  
  1426.          end
  1427.  
  1428. *
  1429. * Print (background destroyed)
  1430. *
  1431.  
  1432. Print2   start
  1433.          using AddrTbl
  1434.          using Font
  1435.  
  1436.          pl2   Temp1
  1437.          pl2   MsgAddr
  1438.  
  1439.          ph2   Temp1
  1440.  
  1441.          phx
  1442.          phy
  1443.  
  1444.          lda   X
  1445.          sta   Temp4
  1446.  
  1447.          lda   Y                        Calculate the address of the
  1448.          asl   a                          character position
  1449.          tay
  1450.          lda   AddrTbl,y
  1451.          sta   Temp2
  1452.  
  1453.          stz   Temp3
  1454.  
  1455. P1       ldy   Temp3
  1456.          lda   (MsgAddr),y
  1457.          and   #$FF
  1458.          beq   Done
  1459.  
  1460.          sec
  1461.          sbc   #" "
  1462.          asl   a                          character in the font
  1463.          asl   a
  1464.          asl   a
  1465.          asl   a
  1466.          asl   a
  1467.          tax
  1468.  
  1469.          lda   Temp4
  1470.          asl   a
  1471.          clc
  1472.          adc   Temp2
  1473.          sta   YAddr
  1474.  
  1475.          lda   #8
  1476.          sta   Temp1
  1477.  
  1478. P2       ldy   #0
  1479.  
  1480. P3       lda   Font,x
  1481.          and   Colour
  1482.          sta   [YAddr],y
  1483.          inx
  1484.          inx
  1485.          iny
  1486.          iny
  1487.          cpy   #4
  1488.          bcc   P3
  1489.          dec   Temp1
  1490.          beq   P4
  1491.  
  1492.          lda   YAddr
  1493.          clc
  1494.          adc   #160
  1495.          sta   YAddr
  1496.          bra   P2
  1497.  
  1498. P4       lda   Temp4
  1499.          clc
  1500.          adc   #2
  1501.          cmp   #79
  1502.          bcs   Done
  1503.          sta   Temp4
  1504.          inc   Temp3
  1505.          bra   P1
  1506.  
  1507. Done     ply
  1508.          plx
  1509.  
  1510.          rts
  1511.  
  1512.          end
  1513.  
  1514. *------------------------------------------------------
  1515. *
  1516. * Music routines (Tool 219 by FTA)
  1517. *
  1518.  
  1519. *
  1520. * Start music tool
  1521. *
  1522.  
  1523. StartMsT start
  1524.          using ToolData
  1525.  
  1526.          ph2   #219
  1527.          ph2   #0
  1528.          ldx   #$0F01                   Load one tool
  1529.          jsl   $E10000
  1530.  
  1531.          ph2   OurID
  1532.          ldx   #$02DB
  1533.          jsl   $E10000
  1534.  
  1535.          rts
  1536.  
  1537. *
  1538. * Load one song
  1539. *
  1540. * Input  32-bit stack: address of song
  1541. *
  1542. * Temp   1: Return address
  1543. *
  1544.  
  1545. LoadSong entry
  1546.  
  1547.          pl2   Temp1
  1548.  
  1549.          ldx   #$09DB
  1550.          jsl   $E10000
  1551.  
  1552.          ph2   Temp1
  1553.  
  1554.          rts
  1555.  
  1556. *
  1557. * Play song
  1558. *
  1559. * Input  Loop: play the song continuously
  1560. *
  1561.  
  1562. PlaySong entry
  1563.  
  1564.          ph2   Loop
  1565.          ldx   #$0ADB
  1566.          jsl   $E10000
  1567.  
  1568.          rts
  1569.  
  1570. *
  1571. * Stop song
  1572. *
  1573.  
  1574. StopSong entry
  1575.  
  1576.          ldx   #$0BDB
  1577.          jsr   $E10000
  1578.  
  1579.          rts
  1580.  
  1581. *
  1582. * Shut down tool
  1583. *
  1584.  
  1585. ShutDMsT entry
  1586.  
  1587.          ldx   #$03DB
  1588.          jsr   $E10000
  1589.  
  1590.          rts
  1591.  
  1592.          end
  1593.  
  1594. *------------------------------------------------------
  1595. *
  1596. * Clear screen
  1597. *
  1598. * Input  Colour: colour of the screen
  1599. *
  1600.  
  1601. ClrScrn  start
  1602.  
  1603.          phx
  1604.  
  1605.          pea   $0101
  1606.          plb
  1607.          plb
  1608.  
  1609.          ldx   #32000
  1610.          sec
  1611.  
  1612. CS1      lda   Colour
  1613.          sta   |SHRAddr-2,x
  1614.          sta   |SHRAddr-4,x
  1615.          sta   |SHRAddr-6,x
  1616.          sta   |SHRAddr-8,x
  1617.          sta   |SHRAddr-10,x
  1618.          sta   |SHRAddr-12,x
  1619.          sta   |SHRAddr-14,x
  1620.          sta   |SHRAddr-16,x
  1621.          sta   |SHRAddr-18,x
  1622.          sta   |SHRAddr-20,x
  1623.          sta   |SHRAddr-22,x
  1624.          sta   |SHRAddr-24,x
  1625.          sta   |SHRAddr-26,x
  1626.          sta   |SHRAddr-28,x
  1627.          sta   |SHRAddr-30,x
  1628.          sta   |SHRAddr-32,x
  1629.          txa
  1630.          sbc   #32
  1631.          tax
  1632.          bne   CS1
  1633.  
  1634.          phk
  1635.          plb
  1636.  
  1637.          plx
  1638.  
  1639.          rts
  1640.  
  1641.          end
  1642.  
  1643. *------------------------------------------------------
  1644. *
  1645. * Clear area
  1646. *
  1647. * Input  Y1, Y2: start and end Y position of the area
  1648. *        Colour: colour of the area
  1649. *
  1650. * Temp   1: (Y2 - Y1 + 1)
  1651. *
  1652. * Note:  Y1 <= Y2
  1653. *
  1654.  
  1655. ClrArea  start
  1656.          using Address
  1657.  
  1658.          phx
  1659.          phy
  1660.  
  1661.          lda   Y2                       Amount of words to be cleared is
  1662.          sec                              (Y2 - Y1 + 1) * 160
  1663.          sbc   Y1                         Since 16 words is erased each time,
  1664.          inc   a                          Total erase operations is
  1665.          sta   Temp1                      (Y2 - Y1 + 1) * 5
  1666.          asl   a
  1667.          asl   a
  1668.          clc
  1669.          adc   Temp1
  1670.          tax
  1671.  
  1672.          lda   Y1
  1673.          asl   a
  1674.          tay
  1675.          lda   Address,y
  1676.          tay
  1677.  
  1678.          pea   $0101
  1679.          plb
  1680.          plb
  1681.  
  1682. CA1      lda   Colour
  1683.          sta   |SHRAddr,y
  1684.          sta   |SHRAddr+2,y
  1685.          sta   |SHRAddr+4,y
  1686.          sta   |SHRAddr+6,y
  1687.          sta   |SHRAddr+8,y
  1688.          sta   |SHRAddr+10,y
  1689.          sta   |SHRAddr+12,y
  1690.          sta   |SHRAddr+14,y
  1691.          sta   |SHRAddr+16,y
  1692.          sta   |SHRAddr+18,y
  1693.          sta   |SHRAddr+20,y
  1694.          sta   |SHRAddr+22,y
  1695.          sta   |SHRAddr+24,y
  1696.          sta   |SHRAddr+26,y
  1697.          sta   |SHRAddr+28,y
  1698.          sta   |SHRAddr+30,y
  1699.          tya
  1700.          adc   #32
  1701.          tay
  1702.          dex
  1703.          bne   CA1
  1704.  
  1705.          phk
  1706.          plb
  1707.  
  1708. Done     ply
  1709.          plx
  1710.  
  1711.          rts
  1712.  
  1713.          end
  1714.  
  1715. *------------------------------------------------------
  1716. *
  1717. * Get key
  1718. *
  1719.  
  1720. GetKey   start
  1721.  
  1722.          lda   #9
  1723.          sta   KeyStrb
  1724.  
  1725. GK1      lda   Keybrd
  1726.          and   #$FF
  1727.          cmp   #$80
  1728.          bcc   GK1
  1729.  
  1730.          lda   #0
  1731.          sta   KeyStrb
  1732.          rts
  1733.  
  1734.          end
  1735.  
  1736. *------------------------------------------------------
  1737. *
  1738. * Mouse routine (Not working)
  1739. *
  1740. * Output MouseX  : (-64 to 63)
  1741. *        MouseY  : (-64 to 63)
  1742. *        MouseBtn: 0 (up) or 1 (down)
  1743. *
  1744.  
  1745. GetMouse start
  1746.  
  1747.          stz   MouseX
  1748.          stz   MouseY
  1749.          stz   MouseBtn
  1750.  
  1751.          sep   #$20
  1752.          short m
  1753.  
  1754.          lda   KeyGLU                   If no data, then quit.
  1755.          bpl   Done
  1756.  
  1757.          and   #2                       If X position is lost, then
  1758.          beq   GM1                        throw away the mouse data.
  1759.  
  1760.          lda   Mouse
  1761.          bra   Done
  1762.  
  1763. GM1      lda   Mouse
  1764.          and   #$7F
  1765.          sta   MouseX
  1766.  
  1767.          lda   Mouse
  1768.          bpl   GM2
  1769.          inc   MouseBtn
  1770.  
  1771. GM2      and   #$7F
  1772.          sta   MouseY
  1773.  
  1774. Done     rep   #$20
  1775.          long  m
  1776.  
  1777.          rts
  1778.  
  1779.          end
  1780.  
  1781. *------------------------------------------------------
  1782. *
  1783. * Delay
  1784. *
  1785. * Input  Time: delay time (0..$FFFF)
  1786. *
  1787.  
  1788. Delay    start
  1789.  
  1790.          phx
  1791.  
  1792.          ldx   Time
  1793.  
  1794. D1       dex
  1795.          bne   D1
  1796.  
  1797.          plx
  1798.  
  1799.          rts
  1800.  
  1801.          end
  1802.  
  1803. *------------------------------------------------------
  1804. *
  1805. * Random number generator
  1806. *
  1807. * Output RndFlag: 0 or 1
  1808. *
  1809. * Note:  Do not modify RndFlag.
  1810. *
  1811.  
  1812. Random   start
  1813.          using SMData
  1814.  
  1815.          lda   RndFlag
  1816.          bne   R1
  1817.          clc
  1818.          bra   R2
  1819.  
  1820. R1       sec
  1821. R2       ror   RndSeed
  1822.          bcc   R3
  1823.  
  1824.          lda   #1
  1825.          sta   RndFlag
  1826.          bra   Done
  1827.  
  1828. R3       stz   RndFlag
  1829.  
  1830. Done     rts
  1831.  
  1832.          end
  1833.  
  1834. *------------------------------------------------------
  1835. *
  1836. * Calculate address for screen scanlines
  1837. *
  1838.  
  1839. CalAddr  start
  1840.          using AddrTbl
  1841.          using Address
  1842.  
  1843.          lda   #1
  1844.          sta   YAddr+2
  1845.  
  1846.          ldx   #0
  1847.          lda   #SHRAddr
  1848.          clc
  1849.  
  1850. CYA1     sta   AddrTbl,x
  1851.          adc   #160
  1852.          inx
  1853.          inx
  1854.          cpx   #400
  1855.          bcc   CYA1
  1856.  
  1857.          ldx   #0
  1858.          lda   #0
  1859.          clc
  1860.  
  1861. CYA2     sta   Address,x
  1862.          adc   #160
  1863.          inx
  1864.          inx
  1865.          cpx   #400
  1866.          bcc   CYA2
  1867.  
  1868.          rts
  1869.  
  1870.          end
  1871.  
  1872. *------------------------------------------------------
  1873. *
  1874. * Super Hires address
  1875. *
  1876.  
  1877. AddrTbl  data
  1878.  
  1879.          ds    400
  1880.  
  1881.          end
  1882.  
  1883. Address  data
  1884.  
  1885.          ds    400
  1886.  
  1887.          end
  1888.  
  1889. *------------------------------------------------------
  1890. *
  1891. * 8 x 8 font
  1892. *
  1893.  
  1894. Font     data
  1895.  
  1896.          dc    h'00000000'              Space
  1897.          dc    h'00000000'
  1898.          dc    h'00000000'
  1899.          dc    h'00000000'
  1900.          dc    h'00000000'
  1901.          dc    h'00000000'
  1902.          dc    h'00000000'
  1903.          dc    h'00000000'
  1904.  
  1905.          dc    h'00FFF000'              !
  1906.          dc    h'00FFF000'
  1907.          dc    h'00FFF000'
  1908.          dc    h'00FFF000'
  1909.          dc    h'00000000'
  1910.          dc    h'00FFF000'
  1911.          dc    h'00FFF000'
  1912.          dc    h'00000000'
  1913.  
  1914.          dc    h'0FF0FF00'              "
  1915.          dc    h'0FF0FF00'
  1916.          dc    h'0FF0FF00'
  1917.          dc    h'00000000'
  1918.          dc    h'00000000'
  1919.          dc    h'00000000'
  1920.          dc    h'00000000'
  1921.          dc    h'00000000'
  1922.  
  1923.          dc    h'0FF0FF00'              #
  1924.          dc    h'0FF0FF00'
  1925.          dc    h'FFFFFFF0'
  1926.          dc    h'0FF0FF00'
  1927.          dc    h'FFFFFFF0'
  1928.          dc    h'0FF0FF00'
  1929.          dc    h'0FF0FF00'
  1930.          dc    h'00000000'
  1931.  
  1932.          dc    h'000FF000'              $
  1933.          dc    h'00FFFFF0'
  1934.          dc    h'0F0FF000'
  1935.          dc    h'00FFFF00'
  1936.          dc    h'000FF0F0'
  1937.          dc    h'0FFFFF00'
  1938.          dc    h'000FF000'
  1939.          dc    h'00000000'
  1940.  
  1941.          dc    h'00000000'              %
  1942.          dc    h'FF000FF0'
  1943.          dc    h'FF00FF00'
  1944.          dc    h'000FF000'
  1945.          dc    h'00FF0000'
  1946.          dc    h'0FF00FF0'
  1947.          dc    h'FF000FF0'
  1948.          dc    h'00000000'
  1949.  
  1950.          dc    h'00FFFF00'              &
  1951.          dc    h'0FFF00F0'
  1952.          dc    h'00FFF000'
  1953.          dc    h'0FFF0000'
  1954.          dc    h'0FFF0FF0'
  1955.          dc    h'0FFF00F0'
  1956.          dc    h'00FFFF00'
  1957.          dc    h'00000000'
  1958.  
  1959.          dc    h'000FF000'              '
  1960.          dc    h'000FF000'
  1961.          dc    h'0000F000'
  1962.          dc    h'000F0000'
  1963.          dc    h'00000000'
  1964.          dc    h'00000000'
  1965.          dc    h'00000000'
  1966.          dc    h'00000000'
  1967.  
  1968.          dc    h'0000FF00'              (
  1969.          dc    h'000FF000'
  1970.          dc    h'00FF0000'
  1971.          dc    h'00FF0000'
  1972.          dc    h'00FF0000'
  1973.          dc    h'000FF000'
  1974.          dc    h'0000FF00'
  1975.          dc    h'00000000'
  1976.  
  1977.          dc    h'00FF0000'              )
  1978.          dc    h'000FF000'
  1979.          dc    h'0000FF00'
  1980.          dc    h'0000FF00'
  1981.          dc    h'0000FF00'
  1982.          dc    h'000FF000'
  1983.          dc    h'00FF0000'
  1984.          dc    h'00000000'
  1985.  
  1986.          dc    h'000FF000'              *
  1987.          dc    h'0F0FF0F0'
  1988.          dc    h'00FFFF00'
  1989.          dc    h'0FFFFFF0'
  1990.          dc    h'00FFFF00'
  1991.          dc    h'0F0FF0F0'
  1992.          dc    h'000FF000'
  1993.          dc    h'00000000'
  1994.  
  1995.          dc    h'00000000'              +
  1996.          dc    h'000FF000'
  1997.          dc    h'000FF000'
  1998.          dc    h'0FFFFFF0'
  1999.          dc    h'0FFFFFF0'
  2000.          dc    h'000FF000'
  2001.          dc    h'000FF000'
  2002.          dc    h'00000000'
  2003.  
  2004.          dc    h'00000000'              ,
  2005.          dc    h'00000000'
  2006.          dc    h'00000000'
  2007.          dc    h'00000000'
  2008.          dc    h'000FF000'
  2009.          dc    h'000FF000'
  2010.          dc    h'0000F000'
  2011.          dc    h'000F0000'
  2012.  
  2013.          dc    h'00000000'              -
  2014.          dc    h'00000000'
  2015.          dc    h'00000000'
  2016.          dc    h'0FFFFFF0'
  2017.          dc    h'0FFFFFF0'
  2018.          dc    h'00000000'
  2019.          dc    h'00000000'
  2020.          dc    h'00000000'
  2021.  
  2022.          dc    h'00000000'              .
  2023.          dc    h'00000000'
  2024.          dc    h'00000000'
  2025.          dc    h'00000000'
  2026.          dc    h'00000000'
  2027.          dc    h'000FF000'
  2028.          dc    h'000FF000'
  2029.          dc    h'00000000'
  2030.  
  2031.          dc    h'000000FF'              /
  2032.          dc    h'00000FF0'
  2033.          dc    h'0000FF00'
  2034.          dc    h'000FF000'
  2035.          dc    h'00FF0000'
  2036.          dc    h'0FF00000'
  2037.          dc    h'FF000000'
  2038.          dc    h'00000000'
  2039.  
  2040.          dc    h'00FFFF00'              0
  2041.          dc    h'0FFF00F0'
  2042.          dc    h'0FFF0FF0'
  2043.          dc    h'0FFFF0F0'
  2044.          dc    h'0FFF00F0'
  2045.          dc    h'0FFF00F0'
  2046.          dc    h'00FFFF00'
  2047.          dc    h'00000000'
  2048.  
  2049.          dc    h'00FFF000'              1
  2050.          dc    h'0FFFF000'
  2051.          dc    h'00FFF000'
  2052.          dc    h'00FFF000'
  2053.          dc    h'00FFF000'
  2054.          dc    h'00FFF000'
  2055.          dc    h'00FFF000'
  2056.          dc    h'00000000'
  2057.  
  2058.          dc    h'00FFFF00'              2
  2059.          dc    h'0F00FFF0'
  2060.          dc    h'0000FFF0'
  2061.          dc    h'00FFFF00'
  2062.          dc    h'0FFF0000'
  2063.          dc    h'0FFF0000'
  2064.          dc    h'0FFFFFF0'
  2065.          dc    h'00000000'
  2066.  
  2067.          dc    h'00FFFF00'              3
  2068.          dc    h'0F00FFF0'
  2069.          dc    h'0000FFF0'
  2070.          dc    h'000FFF00'
  2071.          dc    h'0000FFF0'
  2072.          dc    h'0F00FFF0'
  2073.          dc    h'00FFFF00'
  2074.          dc    h'00000000'
  2075.  
  2076.          dc    h'000FFF00'              4
  2077.          dc    h'00FFFF00'
  2078.          dc    h'0F0FFF00'
  2079.          dc    h'F00FFF00'
  2080.          dc    h'FFFFFFF0'
  2081.          dc    h'000FFF00'
  2082.          dc    h'000FFF00'
  2083.          dc    h'00000000'
  2084.  
  2085.          dc    h'0FFFFFF0'              5
  2086.          dc    h'0FF00000'
  2087.          dc    h'0FFFFF00'
  2088.          dc    h'0FFFFFF0'
  2089.          dc    h'0000FFF0'
  2090.          dc    h'0F00FFF0'
  2091.          dc    h'00FFFF00'
  2092.          dc    h'00000000'
  2093.  
  2094.          dc    h'00FFFF00'              6
  2095.          dc    h'0FFF00F0'
  2096.          dc    h'0FFF0000'
  2097.          dc    h'0FFFFF00'
  2098.          dc    h'0FFF00F0'
  2099.          dc    h'0FFF00F0'
  2100.          dc    h'00FFFF00'
  2101.          dc    h'00000000'
  2102.  
  2103.          dc    h'0FFFFFF0'              7
  2104.          dc    h'000FFF00'
  2105.          dc    h'000FFF00'
  2106.          dc    h'00FFF000'
  2107.          dc    h'00FFF000'
  2108.          dc    h'0FFF0000'
  2109.          dc    h'0FFF0000'
  2110.          dc    h'00000000'
  2111.  
  2112.          dc    h'00FFFF00'              8
  2113.          dc    h'0FFF00F0'
  2114.          dc    h'0FFF00F0'
  2115.          dc    h'00FFFF00'
  2116.          dc    h'0FFF00F0'
  2117.          dc    h'0FFF00F0'
  2118.          dc    h'00FFFF00'
  2119.          dc    h'00000000'
  2120.  
  2121.          dc    h'00FFFF00'              9
  2122.          dc    h'0F00FFF0'
  2123.          dc    h'0F00FFF0'
  2124.          dc    h'00FFFFF0'
  2125.          dc    h'0000FFF0'
  2126.          dc    h'0F00FFF0'
  2127.          dc    h'00FFFF00'
  2128.          dc    h'00000000'
  2129.  
  2130.          dc    h'00000000'              :
  2131.          dc    h'000FF000'
  2132.          dc    h'000FF000'
  2133.          dc    h'00000000'
  2134.          dc    h'000FF000'
  2135.          dc    h'000FF000'
  2136.          dc    h'00000000'
  2137.          dc    h'00000000'
  2138.  
  2139.          dc    h'00000000'              ;
  2140.          dc    h'000FF000'
  2141.          dc    h'000FF000'
  2142.          dc    h'00000000'
  2143.          dc    h'000FF000'
  2144.          dc    h'000FF000'
  2145.          dc    h'0000F000'
  2146.          dc    h'000F0000'
  2147.  
  2148.          dc    h'0000FF00'              <
  2149.          dc    h'000FFF00'
  2150.          dc    h'00FFF000'
  2151.          dc    h'0FFF0000'
  2152.          dc    h'00FFF000'
  2153.          dc    h'000FFF00'
  2154.          dc    h'0000FF00'
  2155.          dc    h'00000000'
  2156.  
  2157.          dc    h'00000000'              =
  2158.          dc    h'0FFFFFF0'
  2159.          dc    h'0FFFFFF0'
  2160.          dc    h'00000000'
  2161.          dc    h'0FFFFFF0'
  2162.          dc    h'0FFFFFF0'
  2163.          dc    h'00000000'
  2164.          dc    h'00000000'
  2165.  
  2166.          dc    h'0FF00000'              >
  2167.          dc    h'0FFF0000'
  2168.          dc    h'00FFF000'
  2169.          dc    h'000FFF00'
  2170.          dc    h'00FFF000'
  2171.          dc    h'0FFF0000'
  2172.          dc    h'0FF00000'
  2173.          dc    h'00000000'
  2174.  
  2175.          dc    h'00FFF000'              ?
  2176.          dc    h'0F0FFF00'
  2177.          dc    h'000FFF00'
  2178.          dc    h'000FFF00'
  2179.          dc    h'00FFF000'
  2180.          dc    h'00000000'
  2181.          dc    h'00FFF000'
  2182.          dc    h'00000000'
  2183.  
  2184.          ds    32
  2185.  
  2186.          dc    h'00FFFF00'              A
  2187.          dc    h'0FFFFFF0'
  2188.          dc    h'0F00FFF0'
  2189.          dc    h'0F00FFF0'
  2190.          dc    h'0FFFFFF0'
  2191.          dc    h'0F00FFF0'
  2192.          dc    h'0F00FFF0'
  2193.          dc    h'00000000'
  2194.  
  2195.          dc    h'0FFFFF00'              B
  2196.          dc    h'0FFF00F0'
  2197.          dc    h'0FFF00F0'
  2198.          dc    h'0FFFFF00'
  2199.          dc    h'0FFF00F0'
  2200.          dc    h'0FFF00F0'
  2201.          dc    h'0FFFFF00'
  2202.          dc    h'00000000'
  2203.  
  2204.          dc    h'00FFFF00'              C
  2205.          dc    h'0FFF00F0'
  2206.          dc    h'0FFF0000'
  2207.          dc    h'0FFF0000'
  2208.          dc    h'0FFF0000'
  2209.          dc    h'0FFF00F0'
  2210.          dc    h'00FFFF00'
  2211.          dc    h'00000000'
  2212.  
  2213.          dc    h'0FFFFF00'              D
  2214.          dc    h'0FFF00F0'
  2215.          dc    h'0FFF00F0'
  2216.          dc    h'0FFF00F0'
  2217.          dc    h'0FFF00F0'
  2218.          dc    h'0FFF00F0'
  2219.          dc    h'0FFFFF00'
  2220.          dc    h'00000000'
  2221.  
  2222.          dc    h'00FFFFF0'              E
  2223.          dc    h'0FFF0000'
  2224.          dc    h'0FFF0000'
  2225.          dc    h'0FFFFF00'
  2226.          dc    h'0FFF0000'
  2227.          dc    h'0FFF0000'
  2228.          dc    h'00FFFFF0'
  2229.          dc    h'00000000'
  2230.  
  2231.          dc    h'00FFFFF0'              F
  2232.          dc    h'0FFF0000'
  2233.          dc    h'0FFF0000'
  2234.          dc    h'0FFFFF00'
  2235.          dc    h'0FFF0000'
  2236.          dc    h'0FFF0000'
  2237.          dc    h'0FFF0000'
  2238.          dc    h'00000000'
  2239.  
  2240.          dc    h'00FFFF00'              G
  2241.          dc    h'0FFF00F0'
  2242.          dc    h'0FFF0000'
  2243.          dc    h'0FFF0000'
  2244.          dc    h'0FFF0FF0'
  2245.          dc    h'0FFF00F0'
  2246.          dc    h'00FFFF00'
  2247.          dc    h'00000000'
  2248.  
  2249.          dc    h'0FFF00F0'              H
  2250.          dc    h'0FFF00F0'
  2251.          dc    h'0FFF00F0'
  2252.          dc    h'0FFFFFF0'
  2253.          dc    h'0FFF00F0'
  2254.          dc    h'0FFF00F0'
  2255.          dc    h'0FFF00F0'
  2256.          dc    h'00000000'
  2257.  
  2258.          dc    h'00FFF000'              I
  2259.          dc    h'00FFF000'
  2260.          dc    h'00FFF000'
  2261.          dc    h'00FFF000'
  2262.          dc    h'00FFF000'
  2263.          dc    h'00FFF000'
  2264.          dc    h'00FFF000'
  2265.          dc    h'00000000'
  2266.  
  2267.          dc    h'0000FFF0'              J
  2268.          dc    h'0000FFF0'
  2269.          dc    h'0000FFF0'
  2270.          dc    h'0000FFF0'
  2271.          dc    h'0000FFF0'
  2272.          dc    h'0F00FFF0'
  2273.          dc    h'00FFFF00'
  2274.          dc    h'00000000'
  2275.  
  2276.          dc    h'0FFF00F0'              K
  2277.          dc    h'0FFF00F0'
  2278.          dc    h'0FFF00F0'
  2279.          dc    h'0FFFFF00'
  2280.          dc    h'0FFF00F0'
  2281.          dc    h'0FFF00F0'
  2282.          dc    h'0FFF00F0'
  2283.          dc    h'00000000'
  2284.  
  2285.          dc    h'0FFF0000'              L
  2286.          dc    h'0FFF0000'
  2287.          dc    h'0FFF0000'
  2288.          dc    h'0FFF0000'
  2289.          dc    h'0FFF0000'
  2290.          dc    h'0FFF0000'
  2291.          dc    h'0FFFFFF0'
  2292.          dc    h'00000000'
  2293.  
  2294.          dc    h'0FFFFF00'              M
  2295.          dc    h'FFFFFFF0'
  2296.          dc    h'FFF0F0F0'
  2297.          dc    h'FFF0F0F0'
  2298.          dc    h'FFF0F0F0'
  2299.          dc    h'FFF000F0'
  2300.          dc    h'FFF000F0'
  2301.          dc    h'00000000'
  2302.  
  2303.          dc    h'00FFFF00'              N
  2304.          dc    h'0FFF00F0'
  2305.          dc    h'0FFF00F0'
  2306.          dc    h'0FFF00F0'
  2307.          dc    h'0FFF00F0'
  2308.          dc    h'0FFF00F0'
  2309.          dc    h'0FFF00F0'
  2310.          dc    h'00000000'
  2311.  
  2312.          dc    h'00FFFF00'              O
  2313.          dc    h'0FFF00F0'
  2314.          dc    h'0FFF00F0'
  2315.          dc    h'0FFF00F0'
  2316.          dc    h'0FFF00F0'
  2317.          dc    h'0FFF00F0'
  2318.          dc    h'00FFFF00'
  2319.          dc    h'00000000'
  2320.  
  2321.          dc    h'0FFFFF00'              P
  2322.          dc    h'0FFF00F0'
  2323.          dc    h'0FFF00F0'
  2324.          dc    h'0FFFFF00'
  2325.          dc    h'0FFF0000'
  2326.          dc    h'0FFF0000'
  2327.          dc    h'0FFF0000'
  2328.          dc    h'00000000'
  2329.  
  2330.          dc    h'00FFFF00'              Q
  2331.          dc    h'0FFF00F0'
  2332.          dc    h'0FFF00F0'
  2333.          dc    h'0FFF00F0'
  2334.          dc    h'0FFF00F0'
  2335.          dc    h'0FFF00F0'
  2336.          dc    h'00FFFFF0'
  2337.          dc    h'000000FF'
  2338.  
  2339.          dc    h'0FFFFF00'              R
  2340.          dc    h'0FFF00F0'
  2341.          dc    h'0FFF00F0'
  2342.          dc    h'0FFFFF00'
  2343.          dc    h'0FFF00F0'
  2344.          dc    h'0FFF00F0'
  2345.          dc    h'0FFF00F0'
  2346.          dc    h'00000000'
  2347.  
  2348.          dc    h'00FFFF00'              S
  2349.          dc    h'0FF000F0'
  2350.          dc    h'0FFFF000'
  2351.          dc    h'00FFFF00'
  2352.          dc    h'000FFFF0'
  2353.          dc    h'0F000FF0'
  2354.          dc    h'00FFFF00'
  2355.          dc    h'00000000'
  2356.  
  2357.          dc    h'0FFFFF00'              T
  2358.          dc    h'00FFF000'
  2359.          dc    h'00FFF000'
  2360.          dc    h'00FFF000'
  2361.          dc    h'00FFF000'
  2362.          dc    h'00FFF000'
  2363.          dc    h'00FFF000'
  2364.          dc    h'00000000'
  2365.  
  2366.          dc    h'0FFF00F0'              U
  2367.          dc    h'0FFF00F0'
  2368.          dc    h'0FFF00F0'
  2369.          dc    h'0FFF00F0'
  2370.          dc    h'0FFF00F0'
  2371.          dc    h'0FFF00F0'
  2372.          dc    h'00FFFF00'
  2373.          dc    h'00000000'
  2374.  
  2375.          dc    h'0FFF00F0'              V
  2376.          dc    h'0FFF00F0'
  2377.          dc    h'0FFF00F0'
  2378.          dc    h'0FFF00F0'
  2379.          dc    h'0FFF00F0'
  2380.          dc    h'00FFFF00'
  2381.          dc    h'000FF000'
  2382.          dc    h'00000000'
  2383.  
  2384.          dc    h'F000FFF0'              W
  2385.          dc    h'F000FFF0'
  2386.          dc    h'F0F0FFF0'
  2387.          dc    h'F0F0FFF0'
  2388.          dc    h'F0F0FFF0'
  2389.          dc    h'FFFFFFF0'
  2390.          dc    h'0F0FFF00'
  2391.          dc    h'00000000'
  2392.  
  2393.          dc    h'0FFF00F0'              X
  2394.          dc    h'0FFF00F0'
  2395.          dc    h'0FFF00F0'
  2396.          dc    h'00FFFF00'
  2397.          dc    h'0F00FFF0'
  2398.          dc    h'0F00FFF0'
  2399.          dc    h'0F00FFF0'
  2400.          dc    h'00000000'
  2401.  
  2402.          dc    h'FFF000F0'              Y
  2403.          dc    h'FFF000F0'
  2404.          dc    h'FFF000F0'
  2405.          dc    h'0FFFFF00'
  2406.          dc    h'00FFF000'
  2407.          dc    h'00FFF000'
  2408.          dc    h'00FFF000'
  2409.          dc    h'00000000'
  2410.  
  2411.          dc    h'0FFFFFF0'              Z
  2412.          dc    h'0000FFF0'
  2413.          dc    h'0000FF00'
  2414.          dc    h'000FF000'
  2415.          dc    h'00FF0000'
  2416.          dc    h'0FFF0000'
  2417.          dc    h'0FFFFFF0'
  2418.          dc    h'00000000'
  2419.  
  2420.          ds    160
  2421.  
  2422.          dc    h'000FF000'              `
  2423.          dc    h'000FF000'
  2424.          dc    h'000F0000'
  2425.          dc    h'0000F000'
  2426.          dc    h'00000000'
  2427.          dc    h'00000000'
  2428.          dc    h'00000000'
  2429.          dc    h'00000000'
  2430.  
  2431.          dc    h'00000000'              a
  2432.          dc    h'00000000'
  2433.          dc    h'00FFFF00'
  2434.          dc    h'0000FFF0'
  2435.          dc    h'00FFFFF0'
  2436.          dc    h'0F00FFF0'
  2437.          dc    h'00FFFFF0'
  2438.          dc    h'00000000'
  2439.  
  2440.          dc    h'0FFF0000'              b
  2441.          dc    h'0FFF0000'
  2442.          dc    h'0FFFFF00'
  2443.          dc    h'0FFF00F0'
  2444.          dc    h'0FFF00F0'
  2445.          dc    h'0FFF00F0'
  2446.          dc    h'0FFFFF00'
  2447.          dc    h'00000000'
  2448.  
  2449.          dc    h'00000000'              c
  2450.          dc    h'00000000'
  2451.          dc    h'00FFFFF0'
  2452.          dc    h'0FFF0000'
  2453.          dc    h'0FFF0000'
  2454.          dc    h'0FFF0000'
  2455.          dc    h'00FFFFF0'
  2456.          dc    h'00000000'
  2457.  
  2458.          dc    h'0000FFF0'              d
  2459.          dc    h'0000FFF0'
  2460.          dc    h'00FFFFF0'
  2461.          dc    h'0F00FFF0'
  2462.          dc    h'0F00FFF0'
  2463.          dc    h'0F00FFF0'
  2464.          dc    h'00FFFFF0'
  2465.          dc    h'00000000'
  2466.  
  2467.          dc    h'00000000'              e
  2468.          dc    h'00000000'
  2469.          dc    h'00FFFF00'
  2470.          dc    h'0FFF00F0'
  2471.          dc    h'0FFFFFF0'
  2472.          dc    h'0FFF0000'
  2473.          dc    h'0FFFFFF0'
  2474.          dc    h'00000000'
  2475.  
  2476.          dc    h'000FFF00'              f
  2477.          dc    h'00FFF0F0'
  2478.          dc    h'00FFF000'
  2479.          dc    h'0FFFFFF0'
  2480.          dc    h'00FFF000'
  2481.          dc    h'00FFF000'
  2482.          dc    h'00FFF000'
  2483.          dc    h'00000000'
  2484.  
  2485.          dc    h'00000000'              g
  2486.          dc    h'00000000'
  2487.          dc    h'00FFFFF0'
  2488.          dc    h'0F00FFF0'
  2489.          dc    h'0F00FFF0'
  2490.          dc    h'00FFFFF0'
  2491.          dc    h'0000FFF0'
  2492.          dc    h'0FFFFF00'
  2493.  
  2494.          dc    h'0FFF0000'              h
  2495.          dc    h'0FFF0000'
  2496.          dc    h'0FFF0000'
  2497.          dc    h'0FFFFF00'
  2498.          dc    h'0FFF00F0'
  2499.          dc    h'0FFF00F0'
  2500.          dc    h'0FFF00F0'
  2501.          dc    h'00000000'
  2502.  
  2503.          dc    h'00FFF000'              i
  2504.          dc    h'00000000'
  2505.          dc    h'00FFF000'
  2506.          dc    h'00FFF000'
  2507.          dc    h'00FFF000'
  2508.          dc    h'00FFF000'
  2509.          dc    h'00FFF000'
  2510.          dc    h'00000000'
  2511.  
  2512.          dc    h'000FFF00'              j
  2513.          dc    h'00000000'
  2514.          dc    h'000FFF00'
  2515.          dc    h'000FFF00'
  2516.          dc    h'000FFF00'
  2517.          dc    h'000FFF00'
  2518.          dc    h'0F0FFF00'
  2519.          dc    h'00FFF000'
  2520.  
  2521.          dc    h'0FF00000'              k
  2522.          dc    h'0FF00F00'
  2523.          dc    h'0FF00F00'
  2524.          dc    h'0FFFF000'
  2525.          dc    h'0F00FF00'
  2526.          dc    h'0F00FF00'
  2527.          dc    h'0F00FF00'
  2528.          dc    h'00000000'
  2529.  
  2530.          dc    h'00FFF000'              l
  2531.          dc    h'00FFF000'
  2532.          dc    h'00FFF000'
  2533.          dc    h'00FFF000'
  2534.          dc    h'00FFF000'
  2535.          dc    h'00FFF000'
  2536.          dc    h'00FFF000'
  2537.          dc    h'00000000'
  2538.  
  2539.          dc    h'00000000'              m
  2540.          dc    h'00000000'
  2541.          dc    h'FFFFFF00'
  2542.          dc    h'FFF0F0F0'
  2543.          dc    h'FFF0F0F0'
  2544.          dc    h'FFF0F0F0'
  2545.          dc    h'FFF000F0'
  2546.          dc    h'00000000'
  2547.  
  2548.          dc    h'00000000'              n
  2549.          dc    h'00000000'
  2550.          dc    h'0FFFFF00'
  2551.          dc    h'0FFF00F0'
  2552.          dc    h'0FFF00F0'
  2553.          dc    h'0FFF00F0'
  2554.          dc    h'0FFF00F0'
  2555.          dc    h'00000000'
  2556.  
  2557.          dc    h'00000000'              o
  2558.          dc    h'00000000'
  2559.          dc    h'00FFFF00'
  2560.          dc    h'0FFF00F0'
  2561.          dc    h'0FFF00F0'
  2562.          dc    h'0FFF00F0'
  2563.          dc    h'00FFFF00'
  2564.          dc    h'00000000'
  2565.  
  2566.          dc    h'00000000'              p
  2567.          dc    h'00000000'
  2568.          dc    h'0FFFFF00'
  2569.          dc    h'0FFF00F0'
  2570.          dc    h'0FFF00F0'
  2571.          dc    h'0FFFFF00'
  2572.          dc    h'0FFF0000'
  2573.          dc    h'0FFF0000'
  2574.  
  2575.          dc    h'00000000'              q
  2576.          dc    h'00000000'
  2577.          dc    h'00FFFFF0'
  2578.          dc    h'0F00FFF0'
  2579.          dc    h'0F00FFF0'
  2580.          dc    h'00FFFFF0'
  2581.          dc    h'0000FFF0'
  2582.          dc    h'0000FFF0'
  2583.  
  2584.          dc    h'00000000'              r
  2585.          dc    h'00000000'
  2586.          dc    h'00FFFF00'
  2587.          dc    h'0FFF00F0'
  2588.          dc    h'0FFF0000'
  2589.          dc    h'0FFF0000'
  2590.          dc    h'0FFF0000'
  2591.          dc    h'00000000'
  2592.  
  2593.          dc    h'00000000'              s
  2594.          dc    h'00000000'
  2595.          dc    h'00FFFFF0'
  2596.          dc    h'0FFF0000'
  2597.          dc    h'00FFFF00'
  2598.          dc    h'0000FFF0'
  2599.          dc    h'0FFFFF00'
  2600.          dc    h'00000000'
  2601.  
  2602.          dc    h'00FFF000'              t
  2603.          dc    h'00FFF000'
  2604.          dc    h'FFFFFFF0'
  2605.          dc    h'00FFF000'
  2606.          dc    h'00FFF000'
  2607.          dc    h'00FFF0F0'
  2608.          dc    h'000FFF00'
  2609.          dc    h'00000000'
  2610.  
  2611.          dc    h'00000000'              u
  2612.          dc    h'00000000'
  2613.          dc    h'0FFF00F0'
  2614.          dc    h'0FFF00F0'
  2615.          dc    h'0FFF00F0'
  2616.          dc    h'0FFF00F0'
  2617.          dc    h'00FFFF00'
  2618.          dc    h'00000000'
  2619.  
  2620.          dc    h'00000000'              v
  2621.          dc    h'00000000'
  2622.          dc    h'0FFF00F0'
  2623.          dc    h'0FFF00F0'
  2624.          dc    h'0FFF00F0'
  2625.          dc    h'00FFFF00'
  2626.          dc    h'000FF000'
  2627.          dc    h'00000000'
  2628.  
  2629.          dc    h'00000000'              w
  2630.          dc    h'00000000'
  2631.          dc    h'F000FFF0'
  2632.          dc    h'F0F0FFF0'
  2633.          dc    h'F0F0FFF0'
  2634.          dc    h'F0F0FFF0'
  2635.          dc    h'0FFFFF00'
  2636.          dc    h'00000000'
  2637.  
  2638.          dc    h'00000000'              x
  2639.          dc    h'00000000'
  2640.          dc    h'0FFF00F0'
  2641.          dc    h'0FFF00F0'
  2642.          dc    h'00FFFF00'
  2643.          dc    h'0F00FFF0'
  2644.          dc    h'0F00FFF0'
  2645.          dc    h'00000000'
  2646.  
  2647.          dc    h'00000000'              y
  2648.          dc    h'00000000'
  2649.          dc    h'0F00FFF0'
  2650.          dc    h'0F00FFF0'
  2651.          dc    h'0F00FFF0'
  2652.          dc    h'00FFFFF0'
  2653.          dc    h'0000FFF0'
  2654.          dc    h'0FFFFF00'
  2655.  
  2656.          dc    h'00000000'              z
  2657.          dc    h'00000000'
  2658.          dc    h'0FFFFFF0'
  2659.          dc    h'000FFF00'
  2660.          dc    h'00FFF000'
  2661.          dc    h'0FFF0000'
  2662.          dc    h'0FFFFFF0'
  2663.          dc    h'00000000'
  2664.  
  2665.          end
  2666.  
  2667. *------------------------------------------------------
  2668. *
  2669. * Standard colour data
  2670. *
  2671.  
  2672. SColour  data
  2673.  
  2674.          dc    h'0000'                   0: Black
  2675.          dc    h'7707'                   1: Dark Grey
  2676.          dc    h'4108'                   2: Brown
  2677.          dc    h'2C07'                   3: Purple
  2678.          dc    h'0F00'                   4: Blue
  2679.          dc    h'8000'                   5: Dark Green
  2680.          dc    h'700F'                   6: Orange
  2681.          dc    h'000D'                   7: Red
  2682.          dc    h'A90F'                   8: Beige (meat colour)
  2683.          dc    h'F00F'                   9: Yellow
  2684.          dc    h'E000'                   A: Green
  2685.          dc    h'DF04'                   B: Light Blue
  2686.          dc    h'AF0D'                   C: Lilac (Light purple)
  2687.          dc    h'8F07'                   D: Periwinkle
  2688.          dc    h'CC0C'                   E: Light Grey
  2689.          dc    h'FF0F'                   F: White
  2690.  
  2691.          end
  2692.  
  2693. *------------------------------------------------------
  2694. *
  2695. * Super Magic parameter
  2696. *
  2697. * Note:  Not to use the following parameters in the
  2698. *        program except for calling routines.
  2699. *
  2700.  
  2701. SMData   data
  2702.  
  2703. RndFlag  dc    h"1111"
  2704. RndSeed  dc    b"0100010111000101"
  2705.  
  2706. QuitData dc    i4'0'
  2707.          dc    i'0'
  2708.  
  2709.          end
  2710.