home *** CD-ROM | disk | FTP | other *** search
/ Esprit de Apple Corps / EDAC-2.iso / Graphics / Apps / Programs / SuperMagic3 / sm.lib < prev    next >
Encoding:
Text File  |  1991-12-08  |  28.2 KB  |  1,232 lines

  1. *------------------------------------------------------
  2. *
  3. * << Super Magic 320 >>                   version 2.4B
  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. * Print message
  60. *
  61. * Input  X, Y   : start location of message
  62. *        Colour : colour of the message
  63. *        Font   : address of font (default SMFont)
  64. *        FWidth : width of font (default 8)
  65. *        FHeight: height of font (default 8)
  66. *
  67. * Temp   1: font address
  68. *        2: Y address
  69. *        3: current message address
  70. *        4: current chracter
  71. *        5: length of font / 2 (in bytes)
  72. *        6: maximum X address
  73. *
  74. * Note:  X must be even.
  75. *
  76.  
  77. *
  78. * Print
  79. *
  80.  
  81. Print1   start
  82.          using AddrTbl
  83.          using SMFont
  84.  
  85.          st2   Font,Temp1               Store font address
  86.  
  87.          lda   FWidth
  88.          lsr   a
  89.          sta   Temp5                    Store font width in byte
  90.  
  91. P1       lda   (Temp3)
  92.          and   #$FF
  93.          beq   Done
  94.  
  95.          sec
  96.          sbc   #" "
  97.          masl  a,5
  98.          adc   Temp1
  99.          sta   Temp4                    Store current character
  100.  
  101.          ldy   #0
  102.  
  103. P2       st2   Temp2,YAddr
  104.          st2   Temp4,Font
  105.  
  106.          ldx   FHeight
  107.  
  108. P3       lda   [Font],y
  109.          eor   #$FFFF
  110.          and   [YAddr]
  111.          ora   [Font],y
  112.          and   Colour
  113.          sta   [YAddr]
  114.  
  115.          lda   Font
  116.          adc   Temp5
  117.          sta   Font
  118.  
  119.          lda   YAddr                    Clip Y
  120.          cmp   #$9D00
  121.          bcs   P4
  122.          adc   #160
  123.          sta   YAddr
  124.  
  125.          dex
  126.          bne   P3
  127.  
  128. P4       inc   Temp2                    Clip X
  129.          inc   Temp2
  130.          lda   Temp2
  131.          cmp   Temp6
  132.          bcs   Done
  133.  
  134.          iny
  135.          iny
  136.          cpy   Temp5
  137.          bcc   P2
  138.  
  139.          inc   Temp3
  140.          bra   P1
  141.  
  142. Done     st2   Temp1,Font
  143.  
  144.          rts
  145.  
  146.          end
  147.  
  148. *
  149. * Print (background destroyed)
  150. *
  151.  
  152. Print2   start
  153.          using AddrTbl
  154.          using SMFont
  155.  
  156.          st2   Font,Temp1               Store font address
  157.  
  158.          lda   FWidth
  159.          lsr   a
  160.          sta   Temp5                    Store font width in byte
  161.  
  162. P1       lda   (Temp3)
  163.          and   #$FF
  164.          beq   Done
  165.  
  166.          sec
  167.          sbc   #" "
  168.          masl  a,5
  169.          adc   Temp1
  170.          sta   Temp4                    Store current character
  171.  
  172.          ldy   #0
  173.  
  174. P2       st2   Temp2,YAddr
  175.          st2   Temp4,Font
  176.  
  177.          ldx   FHeight
  178.  
  179. P3       lda   [Font],y
  180.          and   Colour
  181.          sta   [YAddr]
  182.  
  183.          lda   Font
  184.          adc   Temp5
  185.          sta   Font
  186.  
  187.          lda   YAddr                    Clip Y
  188.          cmp   #$9D00
  189.          bcs   P4
  190.          adc   #160
  191.          sta   YAddr
  192.  
  193.          dex
  194.          bne   P3
  195.  
  196. P4       inc   Temp2                    Clip X
  197.          inc   Temp2
  198.          lda   Temp2
  199.          cmp   Temp6
  200.          bcs   Done
  201.  
  202.          iny
  203.          iny
  204.          cpy   Temp5
  205.          bcc   P2
  206.  
  207.          inc   Temp3
  208.          bra   P1
  209.  
  210. Done     st2   Temp1,Font
  211.  
  212.          rts
  213.  
  214.          end
  215.  
  216. *------------------------------------------------------
  217. *
  218. * Clear screen
  219. *
  220.  
  221. ClrScrn  start
  222.  
  223.          pea   $0101
  224.          plb
  225.          plb
  226.  
  227.          ldx   #32000
  228.          sec
  229.  
  230. CS1      lda   Temp1
  231.          sta   |SHRAddr-2,x
  232.          sta   |SHRAddr-4,x
  233.          sta   |SHRAddr-6,x
  234.          sta   |SHRAddr-8,x
  235.          sta   |SHRAddr-10,x
  236.          sta   |SHRAddr-12,x
  237.          sta   |SHRAddr-14,x
  238.          sta   |SHRAddr-16,x
  239.          sta   |SHRAddr-18,x
  240.          sta   |SHRAddr-20,x
  241.          sta   |SHRAddr-22,x
  242.          sta   |SHRAddr-24,x
  243.          sta   |SHRAddr-26,x
  244.          sta   |SHRAddr-28,x
  245.          sta   |SHRAddr-30,x
  246.          sta   |SHRAddr-32,x
  247.          txa
  248.          sbc   #32
  249.          tax
  250.          bne   CS1
  251.  
  252.          phk
  253.          plb
  254.  
  255.          rts
  256.  
  257.          end
  258.  
  259. *------------------------------------------------------
  260. *
  261. * Clear area
  262. *
  263. * Input  Y1, Y2: start and end Y position of the area
  264. *        Colour: colour of the area
  265. *
  266. * Temp   1: (Y2 - Y1 + 1)
  267. *
  268. * Note:  Y1 <= Y2.
  269. *
  270.  
  271. ClrArea  start
  272.          using Address
  273.  
  274.          pea   $0101
  275.          plb
  276.          plb
  277.  
  278.          clc
  279.  
  280. CA1      lda   Colour
  281.          sta   |SHRAddr,y
  282.          sta   |SHRAddr+2,y
  283.          sta   |SHRAddr+4,y
  284.          sta   |SHRAddr+6,y
  285.          sta   |SHRAddr+8,y
  286.          sta   |SHRAddr+10,y
  287.          sta   |SHRAddr+12,y
  288.          sta   |SHRAddr+14,y
  289.          sta   |SHRAddr+16,y
  290.          sta   |SHRAddr+18,y
  291.          sta   |SHRAddr+20,y
  292.          sta   |SHRAddr+22,y
  293.          sta   |SHRAddr+24,y
  294.          sta   |SHRAddr+26,y
  295.          sta   |SHRAddr+28,y
  296.          sta   |SHRAddr+30,y
  297.          tya
  298.          adc   #32
  299.          tay
  300.          dex
  301.          bne   CA1
  302.  
  303.          phk
  304.          plb
  305.  
  306.          rts
  307.  
  308.          end
  309.  
  310. *------------------------------------------------------
  311. *
  312. * Get mouse (Not working)
  313. *
  314. * Output MouseX  : (-64 to 63)
  315. *        MouseY  : (-64 to 63)
  316. *        MouseBtn: 0 (up) or 1 (down)
  317. *
  318.  
  319. GetMouse start
  320.  
  321.          stz   MouseX
  322.          stz   MouseY
  323.          stz   MouseBtn
  324.  
  325.          short m
  326.  
  327.          lda   KeyGLU                   If no data, then quit.
  328.          bpl   Done
  329.  
  330.          and   #2                       If X position is lost, then
  331.          beq   GM1                        throw away the mouse data.
  332.  
  333.          lda   Mouse
  334.          bra   Done
  335.  
  336. GM1      lda   Mouse
  337.          and   #$7F
  338.          sta   MouseX
  339.  
  340.          lda   Mouse
  341.          bpl   GM2
  342.          inc   MouseBtn
  343.  
  344. GM2      and   #$7F
  345.          sta   MouseY
  346.  
  347. Done     long  m
  348.  
  349.          rts
  350.  
  351.          end
  352.  
  353.  
  354. *------------------------------------------------------
  355. *
  356. * Calculate address for screen scanlines
  357. *
  358.  
  359. CalAddr  start
  360.          using AddrTbl
  361.          using Address
  362.  
  363.          lda   #1
  364.          sta   YAddr+2
  365.  
  366.          ldx   #0
  367.          lda   #SHRAddr
  368.          clc
  369.  
  370. CYA1     sta   AddrTbl,x
  371.          adc   #160
  372.          inx
  373.          inx
  374.          cpx   #400
  375.          bcc   CYA1
  376.  
  377.          ldx   #0
  378.          lda   #0
  379.          clc
  380.  
  381. CYA2     sta   Address,x
  382.          adc   #160
  383.          inx
  384.          inx
  385.          cpx   #400
  386.          bcc   CYA2
  387.  
  388.          rts
  389.  
  390.          end
  391.  
  392. *------------------------------------------------------
  393. *
  394. * Super Hires address
  395. *
  396.  
  397. AddrTbl  data
  398.  
  399.          ds    400
  400.  
  401.          end
  402.  
  403. Address  data
  404.  
  405.          ds    400
  406.  
  407.          end
  408.  
  409. *------------------------------------------------------
  410. *
  411. * Super Magic Font (8 x 8)
  412. *
  413.  
  414. SMFont   data
  415.  
  416.          dc    h'00000000'              Space
  417.          dc    h'00000000'
  418.          dc    h'00000000'
  419.          dc    h'00000000'
  420.          dc    h'00000000'
  421.          dc    h'00000000'
  422.          dc    h'00000000'
  423.          dc    h'00000000'
  424.  
  425.          dc    h'00FFF000'              !
  426.          dc    h'00FFF000'
  427.          dc    h'00FFF000'
  428.          dc    h'00FFF000'
  429.          dc    h'00000000'
  430.          dc    h'00FFF000'
  431.          dc    h'00FFF000'
  432.          dc    h'00000000'
  433.  
  434.          dc    h'0FF0FF00'              "
  435.          dc    h'0FF0FF00'
  436.          dc    h'0FF0FF00'
  437.          dc    h'00000000'
  438.          dc    h'00000000'
  439.          dc    h'00000000'
  440.          dc    h'00000000'
  441.          dc    h'00000000'
  442.  
  443.          dc    h'0FF0FF00'              #
  444.          dc    h'0FF0FF00'
  445.          dc    h'FFFFFFF0'
  446.          dc    h'0FF0FF00'
  447.          dc    h'FFFFFFF0'
  448.          dc    h'0FF0FF00'
  449.          dc    h'0FF0FF00'
  450.          dc    h'00000000'
  451.  
  452.          dc    h'000FF000'              $
  453.          dc    h'00FFFFF0'
  454.          dc    h'0F0FF000'
  455.          dc    h'00FFFF00'
  456.          dc    h'000FF0F0'
  457.          dc    h'0FFFFF00'
  458.          dc    h'000FF000'
  459.          dc    h'00000000'
  460.  
  461.          dc    h'00000000'              %
  462.          dc    h'FF000FF0'
  463.          dc    h'FF00FF00'
  464.          dc    h'000FF000'
  465.          dc    h'00FF0000'
  466.          dc    h'0FF00FF0'
  467.          dc    h'FF000FF0'
  468.          dc    h'00000000'
  469.  
  470.          dc    h'00FFFF00'              &
  471.          dc    h'0FFF00F0'
  472.          dc    h'00FFF000'
  473.          dc    h'0FFF0000'
  474.          dc    h'0FFF0FF0'
  475.          dc    h'0FFF00F0'
  476.          dc    h'00FFFF00'
  477.          dc    h'00000000'
  478.  
  479.          dc    h'000FF000'              '
  480.          dc    h'000FF000'
  481.          dc    h'0000F000'
  482.          dc    h'000F0000'
  483.          dc    h'00000000'
  484.          dc    h'00000000'
  485.          dc    h'00000000'
  486.          dc    h'00000000'
  487.  
  488.          dc    h'0000FF00'              (
  489.          dc    h'000FF000'
  490.          dc    h'00FF0000'
  491.          dc    h'00FF0000'
  492.          dc    h'00FF0000'
  493.          dc    h'000FF000'
  494.          dc    h'0000FF00'
  495.          dc    h'00000000'
  496.  
  497.          dc    h'00FF0000'              )
  498.          dc    h'000FF000'
  499.          dc    h'0000FF00'
  500.          dc    h'0000FF00'
  501.          dc    h'0000FF00'
  502.          dc    h'000FF000'
  503.          dc    h'00FF0000'
  504.          dc    h'00000000'
  505.  
  506.          dc    h'000FF000'              *
  507.          dc    h'0F0FF0F0'
  508.          dc    h'00FFFF00'
  509.          dc    h'0FFFFFF0'
  510.          dc    h'00FFFF00'
  511.          dc    h'0F0FF0F0'
  512.          dc    h'000FF000'
  513.          dc    h'00000000'
  514.  
  515.          dc    h'00000000'              +
  516.          dc    h'000FF000'
  517.          dc    h'000FF000'
  518.          dc    h'0FFFFFF0'
  519.          dc    h'0FFFFFF0'
  520.          dc    h'000FF000'
  521.          dc    h'000FF000'
  522.          dc    h'00000000'
  523.  
  524.          dc    h'00000000'              ,
  525.          dc    h'00000000'
  526.          dc    h'00000000'
  527.          dc    h'00000000'
  528.          dc    h'000FF000'
  529.          dc    h'000FF000'
  530.          dc    h'0000F000'
  531.          dc    h'000F0000'
  532.  
  533.          dc    h'00000000'              -
  534.          dc    h'00000000'
  535.          dc    h'00000000'
  536.          dc    h'0FFFFFF0'
  537.          dc    h'0FFFFFF0'
  538.          dc    h'00000000'
  539.          dc    h'00000000'
  540.          dc    h'00000000'
  541.  
  542.          dc    h'00000000'              .
  543.          dc    h'00000000'
  544.          dc    h'00000000'
  545.          dc    h'00000000'
  546.          dc    h'00000000'
  547.          dc    h'000FF000'
  548.          dc    h'000FF000'
  549.          dc    h'00000000'
  550.  
  551.          dc    h'000000FF'              /
  552.          dc    h'00000FF0'
  553.          dc    h'0000FF00'
  554.          dc    h'000FF000'
  555.          dc    h'00FF0000'
  556.          dc    h'0FF00000'
  557.          dc    h'FF000000'
  558.          dc    h'00000000'
  559.  
  560.          dc    h'00FFFF00'              0
  561.          dc    h'0FFF00F0'
  562.          dc    h'0FFF0FF0'
  563.          dc    h'0FFFF0F0'
  564.          dc    h'0FFF00F0'
  565.          dc    h'0FFF00F0'
  566.          dc    h'00FFFF00'
  567.          dc    h'00000000'
  568.  
  569.          dc    h'00FFF000'              1
  570.          dc    h'0FFFF000'
  571.          dc    h'00FFF000'
  572.          dc    h'00FFF000'
  573.          dc    h'00FFF000'
  574.          dc    h'00FFF000'
  575.          dc    h'00FFF000'
  576.          dc    h'00000000'
  577.  
  578.          dc    h'00FFFF00'              2
  579.          dc    h'0F00FFF0'
  580.          dc    h'0000FFF0'
  581.          dc    h'00FFFF00'
  582.          dc    h'0FFF0000'
  583.          dc    h'0FFF0000'
  584.          dc    h'0FFFFFF0'
  585.          dc    h'00000000'
  586.  
  587.          dc    h'00FFFF00'              3
  588.          dc    h'0F00FFF0'
  589.          dc    h'0000FFF0'
  590.          dc    h'000FFF00'
  591.          dc    h'0000FFF0'
  592.          dc    h'0F00FFF0'
  593.          dc    h'00FFFF00'
  594.          dc    h'00000000'
  595.  
  596.          dc    h'000FFF00'              4
  597.          dc    h'00FFFF00'
  598.          dc    h'0F0FFF00'
  599.          dc    h'F00FFF00'
  600.          dc    h'FFFFFFF0'
  601.          dc    h'000FFF00'
  602.          dc    h'000FFF00'
  603.          dc    h'00000000'
  604.  
  605.          dc    h'0FFFFFF0'              5
  606.          dc    h'0FF00000'
  607.          dc    h'0FFFFF00'
  608.          dc    h'0FFFFFF0'
  609.          dc    h'0000FFF0'
  610.          dc    h'0F00FFF0'
  611.          dc    h'00FFFF00'
  612.          dc    h'00000000'
  613.  
  614.          dc    h'00FFFF00'              6
  615.          dc    h'0FFF00F0'
  616.          dc    h'0FFF0000'
  617.          dc    h'0FFFFF00'
  618.          dc    h'0FFF00F0'
  619.          dc    h'0FFF00F0'
  620.          dc    h'00FFFF00'
  621.          dc    h'00000000'
  622.  
  623.          dc    h'0FFFFFF0'              7
  624.          dc    h'000FFF00'
  625.          dc    h'000FFF00'
  626.          dc    h'00FFF000'
  627.          dc    h'00FFF000'
  628.          dc    h'0FFF0000'
  629.          dc    h'0FFF0000'
  630.          dc    h'00000000'
  631.  
  632.          dc    h'00FFFF00'              8
  633.          dc    h'0FFF00F0'
  634.          dc    h'0FFF00F0'
  635.          dc    h'00FFFF00'
  636.          dc    h'0FFF00F0'
  637.          dc    h'0FFF00F0'
  638.          dc    h'00FFFF00'
  639.          dc    h'00000000'
  640.  
  641.          dc    h'00FFFF00'              9
  642.          dc    h'0F00FFF0'
  643.          dc    h'0F00FFF0'
  644.          dc    h'00FFFFF0'
  645.          dc    h'0000FFF0'
  646.          dc    h'0F00FFF0'
  647.          dc    h'00FFFF00'
  648.          dc    h'00000000'
  649.  
  650.          dc    h'00000000'              :
  651.          dc    h'000FF000'
  652.          dc    h'000FF000'
  653.          dc    h'00000000'
  654.          dc    h'000FF000'
  655.          dc    h'000FF000'
  656.          dc    h'00000000'
  657.          dc    h'00000000'
  658.  
  659.          dc    h'00000000'              ;
  660.          dc    h'000FF000'
  661.          dc    h'000FF000'
  662.          dc    h'00000000'
  663.          dc    h'000FF000'
  664.          dc    h'000FF000'
  665.          dc    h'0000F000'
  666.          dc    h'000F0000'
  667.  
  668.          dc    h'0000FF00'              <
  669.          dc    h'000FFF00'
  670.          dc    h'00FFF000'
  671.          dc    h'0FFF0000'
  672.          dc    h'00FFF000'
  673.          dc    h'000FFF00'
  674.          dc    h'0000FF00'
  675.          dc    h'00000000'
  676.  
  677.          dc    h'00000000'              =
  678.          dc    h'0FFFFFF0'
  679.          dc    h'0FFFFFF0'
  680.          dc    h'00000000'
  681.          dc    h'0FFFFFF0'
  682.          dc    h'0FFFFFF0'
  683.          dc    h'00000000'
  684.          dc    h'00000000'
  685.  
  686.          dc    h'0FF00000'              >
  687.          dc    h'0FFF0000'
  688.          dc    h'00FFF000'
  689.          dc    h'000FFF00'
  690.          dc    h'00FFF000'
  691.          dc    h'0FFF0000'
  692.          dc    h'0FF00000'
  693.          dc    h'00000000'
  694.  
  695.          dc    h'00FFF000'              ?
  696.          dc    h'0F0FFF00'
  697.          dc    h'000FFF00'
  698.          dc    h'000FFF00'
  699.          dc    h'00FFF000'
  700.          dc    h'00000000'
  701.          dc    h'00FFF000'
  702.          dc    h'00000000'
  703.  
  704.          ds    32
  705.  
  706.          dc    h'00FFFF00'              A
  707.          dc    h'0FFFFFF0'
  708.          dc    h'0F00FFF0'
  709.          dc    h'0F00FFF0'
  710.          dc    h'0FFFFFF0'
  711.          dc    h'0F00FFF0'
  712.          dc    h'0F00FFF0'
  713.          dc    h'00000000'
  714.  
  715.          dc    h'0FFFFF00'              B
  716.          dc    h'0FFF00F0'
  717.          dc    h'0FFF00F0'
  718.          dc    h'0FFFFF00'
  719.          dc    h'0FFF00F0'
  720.          dc    h'0FFF00F0'
  721.          dc    h'0FFFFF00'
  722.          dc    h'00000000'
  723.  
  724.          dc    h'00FFFF00'              C
  725.          dc    h'0FFF00F0'
  726.          dc    h'0FFF0000'
  727.          dc    h'0FFF0000'
  728.          dc    h'0FFF0000'
  729.          dc    h'0FFF00F0'
  730.          dc    h'00FFFF00'
  731.          dc    h'00000000'
  732.  
  733.          dc    h'0FFFFF00'              D
  734.          dc    h'0FFF00F0'
  735.          dc    h'0FFF00F0'
  736.          dc    h'0FFF00F0'
  737.          dc    h'0FFF00F0'
  738.          dc    h'0FFF00F0'
  739.          dc    h'0FFFFF00'
  740.          dc    h'00000000'
  741.  
  742.          dc    h'00FFFFF0'              E
  743.          dc    h'0FFF0000'
  744.          dc    h'0FFF0000'
  745.          dc    h'0FFFFF00'
  746.          dc    h'0FFF0000'
  747.          dc    h'0FFF0000'
  748.          dc    h'00FFFFF0'
  749.          dc    h'00000000'
  750.  
  751.          dc    h'00FFFFF0'              F
  752.          dc    h'0FFF0000'
  753.          dc    h'0FFF0000'
  754.          dc    h'0FFFFF00'
  755.          dc    h'0FFF0000'
  756.          dc    h'0FFF0000'
  757.          dc    h'0FFF0000'
  758.          dc    h'00000000'
  759.  
  760.          dc    h'00FFFF00'              G
  761.          dc    h'0FFF00F0'
  762.          dc    h'0FFF0000'
  763.          dc    h'0FFF0000'
  764.          dc    h'0FFF0FF0'
  765.          dc    h'0FFF00F0'
  766.          dc    h'00FFFF00'
  767.          dc    h'00000000'
  768.  
  769.          dc    h'0FFF00F0'              H
  770.          dc    h'0FFF00F0'
  771.          dc    h'0FFF00F0'
  772.          dc    h'0FFFFFF0'
  773.          dc    h'0FFF00F0'
  774.          dc    h'0FFF00F0'
  775.          dc    h'0FFF00F0'
  776.          dc    h'00000000'
  777.  
  778.          dc    h'00FFF000'              I
  779.          dc    h'00FFF000'
  780.          dc    h'00FFF000'
  781.          dc    h'00FFF000'
  782.          dc    h'00FFF000'
  783.          dc    h'00FFF000'
  784.          dc    h'00FFF000'
  785.          dc    h'00000000'
  786.  
  787.          dc    h'0000FFF0'              J
  788.          dc    h'0000FFF0'
  789.          dc    h'0000FFF0'
  790.          dc    h'0000FFF0'
  791.          dc    h'0000FFF0'
  792.          dc    h'0F00FFF0'
  793.          dc    h'00FFFF00'
  794.          dc    h'00000000'
  795.  
  796.          dc    h'0FFF00F0'              K
  797.          dc    h'0FFF00F0'
  798.          dc    h'0FFF00F0'
  799.          dc    h'0FFFFF00'
  800.          dc    h'0FFF00F0'
  801.          dc    h'0FFF00F0'
  802.          dc    h'0FFF00F0'
  803.          dc    h'00000000'
  804.  
  805.          dc    h'0FFF0000'              L
  806.          dc    h'0FFF0000'
  807.          dc    h'0FFF0000'
  808.          dc    h'0FFF0000'
  809.          dc    h'0FFF0000'
  810.          dc    h'0FFF0000'
  811.          dc    h'0FFFFFF0'
  812.          dc    h'00000000'
  813.  
  814.          dc    h'0FFFFF00'              M
  815.          dc    h'FFFFFFF0'
  816.          dc    h'FFF0F0F0'
  817.          dc    h'FFF0F0F0'
  818.          dc    h'FFF0F0F0'
  819.          dc    h'FFF000F0'
  820.          dc    h'FFF000F0'
  821.          dc    h'00000000'
  822.  
  823.          dc    h'00FFFF00'              N
  824.          dc    h'0FFF00F0'
  825.          dc    h'0FFF00F0'
  826.          dc    h'0FFF00F0'
  827.          dc    h'0FFF00F0'
  828.          dc    h'0FFF00F0'
  829.          dc    h'0FFF00F0'
  830.          dc    h'00000000'
  831.  
  832.          dc    h'00FFFF00'              O
  833.          dc    h'0FFF00F0'
  834.          dc    h'0FFF00F0'
  835.          dc    h'0FFF00F0'
  836.          dc    h'0FFF00F0'
  837.          dc    h'0FFF00F0'
  838.          dc    h'00FFFF00'
  839.          dc    h'00000000'
  840.  
  841.          dc    h'0FFFFF00'              P
  842.          dc    h'0FFF00F0'
  843.          dc    h'0FFF00F0'
  844.          dc    h'0FFFFF00'
  845.          dc    h'0FFF0000'
  846.          dc    h'0FFF0000'
  847.          dc    h'0FFF0000'
  848.          dc    h'00000000'
  849.  
  850.          dc    h'00FFFF00'              Q
  851.          dc    h'0FFF00F0'
  852.          dc    h'0FFF00F0'
  853.          dc    h'0FFF00F0'
  854.          dc    h'0FFF00F0'
  855.          dc    h'0FFF00F0'
  856.          dc    h'00FFFFF0'
  857.          dc    h'000000FF'
  858.  
  859.          dc    h'0FFFFF00'              R
  860.          dc    h'0FFF00F0'
  861.          dc    h'0FFF00F0'
  862.          dc    h'0FFFFF00'
  863.          dc    h'0FFF00F0'
  864.          dc    h'0FFF00F0'
  865.          dc    h'0FFF00F0'
  866.          dc    h'00000000'
  867.  
  868.          dc    h'00FFFF00'              S
  869.          dc    h'0FF000F0'
  870.          dc    h'0FFFF000'
  871.          dc    h'00FFFF00'
  872.          dc    h'000FFFF0'
  873.          dc    h'0F000FF0'
  874.          dc    h'00FFFF00'
  875.          dc    h'00000000'
  876.  
  877.          dc    h'0FFFFF00'              T
  878.          dc    h'00FFF000'
  879.          dc    h'00FFF000'
  880.          dc    h'00FFF000'
  881.          dc    h'00FFF000'
  882.          dc    h'00FFF000'
  883.          dc    h'00FFF000'
  884.          dc    h'00000000'
  885.  
  886.          dc    h'0FFF00F0'              U
  887.          dc    h'0FFF00F0'
  888.          dc    h'0FFF00F0'
  889.          dc    h'0FFF00F0'
  890.          dc    h'0FFF00F0'
  891.          dc    h'0FFF00F0'
  892.          dc    h'00FFFF00'
  893.          dc    h'00000000'
  894.  
  895.          dc    h'0FFF00F0'              V
  896.          dc    h'0FFF00F0'
  897.          dc    h'0FFF00F0'
  898.          dc    h'0FFF00F0'
  899.          dc    h'0FFF00F0'
  900.          dc    h'00FFFF00'
  901.          dc    h'000FF000'
  902.          dc    h'00000000'
  903.  
  904.          dc    h'F000FFF0'              W
  905.          dc    h'F000FFF0'
  906.          dc    h'F0F0FFF0'
  907.          dc    h'F0F0FFF0'
  908.          dc    h'F0F0FFF0'
  909.          dc    h'FFFFFFF0'
  910.          dc    h'0F0FFF00'
  911.          dc    h'00000000'
  912.  
  913.          dc    h'0FFF00F0'              X
  914.          dc    h'0FFF00F0'
  915.          dc    h'0FFF00F0'
  916.          dc    h'00FFFF00'
  917.          dc    h'0F00FFF0'
  918.          dc    h'0F00FFF0'
  919.          dc    h'0F00FFF0'
  920.          dc    h'00000000'
  921.  
  922.          dc    h'FFF000F0'              Y
  923.          dc    h'FFF000F0'
  924.          dc    h'FFF000F0'
  925.          dc    h'0FFFFF00'
  926.          dc    h'00FFF000'
  927.          dc    h'00FFF000'
  928.          dc    h'00FFF000'
  929.          dc    h'00000000'
  930.  
  931.          dc    h'0FFFFFF0'              Z
  932.          dc    h'0000FFF0'
  933.          dc    h'0000FF00'
  934.          dc    h'000FF000'
  935.          dc    h'00FF0000'
  936.          dc    h'0FFF0000'
  937.          dc    h'0FFFFFF0'
  938.          dc    h'00000000'
  939.  
  940.          ds    160
  941.  
  942.          dc    h'000FF000'              `
  943.          dc    h'000FF000'
  944.          dc    h'000F0000'
  945.          dc    h'0000F000'
  946.          dc    h'00000000'
  947.          dc    h'00000000'
  948.          dc    h'00000000'
  949.          dc    h'00000000'
  950.  
  951.          dc    h'00000000'              a
  952.          dc    h'00000000'
  953.          dc    h'00FFFF00'
  954.          dc    h'0000FFF0'
  955.          dc    h'00FFFFF0'
  956.          dc    h'0F00FFF0'
  957.          dc    h'00FFFFF0'
  958.          dc    h'00000000'
  959.  
  960.          dc    h'0FFF0000'              b
  961.          dc    h'0FFF0000'
  962.          dc    h'0FFFFF00'
  963.          dc    h'0FFF00F0'
  964.          dc    h'0FFF00F0'
  965.          dc    h'0FFF00F0'
  966.          dc    h'0FFFFF00'
  967.          dc    h'00000000'
  968.  
  969.          dc    h'00000000'              c
  970.          dc    h'00000000'
  971.          dc    h'00FFFFF0'
  972.          dc    h'0FFF0000'
  973.          dc    h'0FFF0000'
  974.          dc    h'0FFF0000'
  975.          dc    h'00FFFFF0'
  976.          dc    h'00000000'
  977.  
  978.          dc    h'0000FFF0'              d
  979.          dc    h'0000FFF0'
  980.          dc    h'00FFFFF0'
  981.          dc    h'0F00FFF0'
  982.          dc    h'0F00FFF0'
  983.          dc    h'0F00FFF0'
  984.          dc    h'00FFFFF0'
  985.          dc    h'00000000'
  986.  
  987.          dc    h'00000000'              e
  988.          dc    h'00000000'
  989.          dc    h'00FFFF00'
  990.          dc    h'0FFF00F0'
  991.          dc    h'0FFFFFF0'
  992.          dc    h'0FFF0000'
  993.          dc    h'0FFFFFF0'
  994.          dc    h'00000000'
  995.  
  996.          dc    h'000FFF00'              f
  997.          dc    h'00FFF0F0'
  998.          dc    h'00FFF000'
  999.          dc    h'0FFFFFF0'
  1000.          dc    h'00FFF000'
  1001.          dc    h'00FFF000'
  1002.          dc    h'00FFF000'
  1003.          dc    h'00000000'
  1004.  
  1005.          dc    h'00000000'              g
  1006.          dc    h'00000000'
  1007.          dc    h'00FFFFF0'
  1008.          dc    h'0F00FFF0'
  1009.          dc    h'0F00FFF0'
  1010.          dc    h'00FFFFF0'
  1011.          dc    h'0000FFF0'
  1012.          dc    h'0FFFFF00'
  1013.  
  1014.          dc    h'0FFF0000'              h
  1015.          dc    h'0FFF0000'
  1016.          dc    h'0FFF0000'
  1017.          dc    h'0FFFFF00'
  1018.          dc    h'0FFF00F0'
  1019.          dc    h'0FFF00F0'
  1020.          dc    h'0FFF00F0'
  1021.          dc    h'00000000'
  1022.  
  1023.          dc    h'00FFF000'              i
  1024.          dc    h'00000000'
  1025.          dc    h'00FFF000'
  1026.          dc    h'00FFF000'
  1027.          dc    h'00FFF000'
  1028.          dc    h'00FFF000'
  1029.          dc    h'00FFF000'
  1030.          dc    h'00000000'
  1031.  
  1032.          dc    h'000FFF00'              j
  1033.          dc    h'00000000'
  1034.          dc    h'000FFF00'
  1035.          dc    h'000FFF00'
  1036.          dc    h'000FFF00'
  1037.          dc    h'000FFF00'
  1038.          dc    h'0F0FFF00'
  1039.          dc    h'00FFF000'
  1040.  
  1041.          dc    h'0FF00000'              k
  1042.          dc    h'0FF00F00'
  1043.          dc    h'0FF00F00'
  1044.          dc    h'0FFFF000'
  1045.          dc    h'0F00FF00'
  1046.          dc    h'0F00FF00'
  1047.          dc    h'0F00FF00'
  1048.          dc    h'00000000'
  1049.  
  1050.          dc    h'00FFF000'              l
  1051.          dc    h'00FFF000'
  1052.          dc    h'00FFF000'
  1053.          dc    h'00FFF000'
  1054.          dc    h'00FFF000'
  1055.          dc    h'00FFF000'
  1056.          dc    h'00FFF000'
  1057.          dc    h'00000000'
  1058.  
  1059.          dc    h'00000000'              m
  1060.          dc    h'00000000'
  1061.          dc    h'FFFFFF00'
  1062.          dc    h'FFF0F0F0'
  1063.          dc    h'FFF0F0F0'
  1064.          dc    h'FFF0F0F0'
  1065.          dc    h'FFF000F0'
  1066.          dc    h'00000000'
  1067.  
  1068.          dc    h'00000000'              n
  1069.          dc    h'00000000'
  1070.          dc    h'0FFFFF00'
  1071.          dc    h'0FFF00F0'
  1072.          dc    h'0FFF00F0'
  1073.          dc    h'0FFF00F0'
  1074.          dc    h'0FFF00F0'
  1075.          dc    h'00000000'
  1076.  
  1077.          dc    h'00000000'              o
  1078.          dc    h'00000000'
  1079.          dc    h'00FFFF00'
  1080.          dc    h'0FFF00F0'
  1081.          dc    h'0FFF00F0'
  1082.          dc    h'0FFF00F0'
  1083.          dc    h'00FFFF00'
  1084.          dc    h'00000000'
  1085.  
  1086.          dc    h'00000000'              p
  1087.          dc    h'00000000'
  1088.          dc    h'0FFFFF00'
  1089.          dc    h'0FFF00F0'
  1090.          dc    h'0FFF00F0'
  1091.          dc    h'0FFFFF00'
  1092.          dc    h'0FFF0000'
  1093.          dc    h'0FFF0000'
  1094.  
  1095.          dc    h'00000000'              q
  1096.          dc    h'00000000'
  1097.          dc    h'00FFFFF0'
  1098.          dc    h'0F00FFF0'
  1099.          dc    h'0F00FFF0'
  1100.          dc    h'00FFFFF0'
  1101.          dc    h'0000FFF0'
  1102.          dc    h'0000FFF0'
  1103.  
  1104.          dc    h'00000000'              r
  1105.          dc    h'00000000'
  1106.          dc    h'00FFFF00'
  1107.          dc    h'0FFF00F0'
  1108.          dc    h'0FFF0000'
  1109.          dc    h'0FFF0000'
  1110.          dc    h'0FFF0000'
  1111.          dc    h'00000000'
  1112.  
  1113.          dc    h'00000000'              s
  1114.          dc    h'00000000'
  1115.          dc    h'00FFFFF0'
  1116.          dc    h'0FFF0000'
  1117.          dc    h'00FFFF00'
  1118.          dc    h'0000FFF0'
  1119.          dc    h'0FFFFF00'
  1120.          dc    h'00000000'
  1121.  
  1122.          dc    h'00FFF000'              t
  1123.          dc    h'00FFF000'
  1124.          dc    h'FFFFFFF0'
  1125.          dc    h'00FFF000'
  1126.          dc    h'00FFF000'
  1127.          dc    h'00FFF0F0'
  1128.          dc    h'000FFF00'
  1129.          dc    h'00000000'
  1130.  
  1131.          dc    h'00000000'              u
  1132.          dc    h'00000000'
  1133.          dc    h'0FFF00F0'
  1134.          dc    h'0FFF00F0'
  1135.          dc    h'0FFF00F0'
  1136.          dc    h'0FFF00F0'
  1137.          dc    h'00FFFF00'
  1138.          dc    h'00000000'
  1139.  
  1140.          dc    h'00000000'              v
  1141.          dc    h'00000000'
  1142.          dc    h'0FFF00F0'
  1143.          dc    h'0FFF00F0'
  1144.          dc    h'0FFF00F0'
  1145.          dc    h'00FFFF00'
  1146.          dc    h'000FF000'
  1147.          dc    h'00000000'
  1148.  
  1149.          dc    h'00000000'              w
  1150.          dc    h'00000000'
  1151.          dc    h'F000FFF0'
  1152.          dc    h'F0F0FFF0'
  1153.          dc    h'F0F0FFF0'
  1154.          dc    h'F0F0FFF0'
  1155.          dc    h'0FFFFF00'
  1156.          dc    h'00000000'
  1157.  
  1158.          dc    h'00000000'              x
  1159.          dc    h'00000000'
  1160.          dc    h'0FFF00F0'
  1161.          dc    h'0FFF00F0'
  1162.          dc    h'00FFFF00'
  1163.          dc    h'0F00FFF0'
  1164.          dc    h'0F00FFF0'
  1165.          dc    h'00000000'
  1166.  
  1167.          dc    h'00000000'              y
  1168.          dc    h'00000000'
  1169.          dc    h'0F00FFF0'
  1170.          dc    h'0F00FFF0'
  1171.          dc    h'0F00FFF0'
  1172.          dc    h'00FFFFF0'
  1173.          dc    h'0000FFF0'
  1174.          dc    h'0FFFFF00'
  1175.  
  1176.          dc    h'00000000'              z
  1177.          dc    h'00000000'
  1178.          dc    h'0FFFFFF0'
  1179.          dc    h'000FFF00'
  1180.          dc    h'00FFF000'
  1181.          dc    h'0FFF0000'
  1182.          dc    h'0FFFFFF0'
  1183.          dc    h'00000000'
  1184.  
  1185.          end
  1186.  
  1187. *------------------------------------------------------
  1188. *
  1189. * Standard colour data
  1190. *
  1191.  
  1192. SColour  data
  1193.  
  1194.          dc    h'0000'                   0: Black
  1195.          dc    h'7707'                   1: Dark Grey
  1196.          dc    h'4108'                   2: Brown
  1197.          dc    h'2C07'                   3: Purple
  1198.          dc    h'0F00'                   4: Blue
  1199.          dc    h'8000'                   5: Dark Green
  1200.          dc    h'700F'                   6: Orange
  1201.          dc    h'000D'                   7: Red
  1202.          dc    h'A90F'                   8: Beige (meat colour)
  1203.          dc    h'F00F'                   9: Yellow
  1204.          dc    h'E000'                   A: Green
  1205.          dc    h'DF04'                   B: Light Blue
  1206.          dc    h'AF0D'                   C: Lilac (Light purple)
  1207.          dc    h'8F07'                   D: Periwinkle
  1208.          dc    h'CC0C'                   E: Light Grey
  1209.          dc    h'FF0F'                   F: White
  1210.  
  1211.          end
  1212.  
  1213. *------------------------------------------------------
  1214. *
  1215. * Super Magic parameter
  1216. *
  1217. * Note:  Not to use the following parameters in the
  1218. *        program except for calling routines.
  1219. *
  1220.  
  1221. SMData   data
  1222.  
  1223. MasterID ds    2
  1224. OurID    ds    2
  1225.  
  1226. FailMsg  str   'Error:'
  1227.  
  1228. QuitData dc    i4'0'
  1229.          dc    i'0'
  1230.  
  1231.          end
  1232.