home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0010 - 0019 / ibm0010-0019 / ibm0010.tar / ibm0010 / CDOSDSK6.ZIP / CDOSDSK6.TD0 / TERM / Z29.A86 < prev   
Encoding:
Text File  |  1989-01-16  |  22.9 KB  |  984 lines

  1. ;Z29.A86
  2. ;Data file for IBM to Z29 character and attribute conversion.
  3. ;4-17-85
  4.  
  5. ; Format:    0. 256 byte preamble (may contain ASCII "sign-on").
  6.  
  7. ;        1. 256 byte CHARACTER TRANSLATE table,
  8. ;           giving the character to be used in place of the
  9. ;           corresponding IBM character.
  10.  
  11. ;        2. 256 * 2 byte (1 word per entry) table of word-pointers
  12. ;           to strings which must be output BEFORE sending the
  13. ;           character in question.  For instance, on a Z29, the
  14. ;           escape sequence to go into graphics mode must
  15. ;           precede many of the characters.
  16.  
  17. ;        3. 256 * 2 byte (1 word per entry) table of word-pointers
  18. ;           to strings which must be output AFTER sending the
  19. ;           character in question.  (e.g., to leave graphics mode).
  20.  
  21. ;        4. 256 * 2 byte (1 word per entry) ATTRIBUTE table
  22. ;           consisting of word-pointers to strings which invoke
  23. ;           terminal modes corresponding to IBM attributes (e.g.,
  24. ;           inverse-video).
  25.  
  26. ;        5. 13 * 2 byte (1 word per entry) CURSOR table, giving pointers
  27. ;           to strings which perform screen and cursor functions:
  28. ;            0. CURPOSN -- ptr. to cursor positioning string;
  29. ;            1. CLRSCRN -- ptr. to "clear-screen" string;
  30. ;            2. CLREOL  -- ptr. to "clear-to_end_of_line" string.
  31. ;            3. CLREOS  -- ptr. to "clear-to-end-of-screen" string;
  32. ;            4. WRAPON  -- ptr. to "line-wrap-on" string;
  33. ;            5. WRAPOFF -- ptr. to "line-wrap-off" string;
  34. ;            6. CURSON  -- ptr. to "turn-cursor-on" string;
  35. ;            7. CURSOFF -- ptr. to "turn-cursor_off" string;
  36. ;            8. CURSUP  -- ptr. to "move-cursor-up" string;
  37. ;            9. CURDOWN -- ptr. to "move-cursor-down" string;
  38. ;               10. CURRITE -- ptr. to "move-cursor-right" string;
  39. ;               11. CURLEFT -- ptr. to "move-cursor-left" string;
  40. ;               12. SETATTR -- ptr. to "set attribute" string.
  41. ;
  42. ;           If any of the 13 strings above are not present, indicate
  43. ;           by a pointer = 0000h.  String number 12 (SETATTR) is used
  44. ;           only if either of the "special-case" strings described
  45. ;           in paragraphs 6A or 6B below are referenced by any of the
  46. ;           pointers in this file.
  47.  
  48. ;        6. Strings, each preceded by a string-length byte.
  49. ;           Special cases:
  50.  
  51. ;           A. CURPOSN string is a special case.  The high-bit of the
  52. ;           string-length byte indicates, if RESET, row-then-column
  53. ;           order, else vice versa.  The row and column bytes, which
  54. ;           are the last 2 in the string, are initialized to move the
  55. ;           cursor to the upper left screen corner, providing a bias
  56. ;           which will thereafter be added to every row and column.
  57.  
  58. ;           B. The high-bit of the string-length bytes (except CURPOSN)
  59. ;           indicates that there are two MASK bytes following.  The
  60. ;           first will be ANDed with the last byte of the SETATTR,
  61. ;           string, the 2nd will be ORed, then the SETATTR string will
  62. ;           be issued.
  63.  
  64. ;           C. The attribute byte (last byte in the optional attribute
  65. ;           string) is initialized to the value which resets all
  66. ;           special attribute values (typ. 0h or 30h).  This initial
  67. ;           bias value will be SUBtracted before attribute manipulation
  68. ;           (as in 6B above) then ADDed to the resulting mask
  69. ;           before the string is sent.  The SET_ATTR string will only
  70. ;           be used if "special-case" strings in TERM.DAT are present.
  71.  
  72. ;        All pointers are relative to the start of PREAMBLE.  For
  73. ;        instance, if WRAP_ON = 730h, the string to turn on line wrap
  74. ;        may be found at base PREAMBLE + 730h bytes.
  75.  
  76. ;Assembly/Linkage instructions:
  77.  
  78. ;A>RASM86 TERM.A86
  79.  
  80. ;To produce a binary disk file, dynamically read by utilities or TMP:
  81.  
  82. ; A>LINK86 TERM.DAT = TERM[DATA[ORIGIN[0]]]
  83. ; A>DDT86
  84. ; -rTERM.DAT
  85. ;   START      END
  86. ; XXXX:0000 XXXX:YYYY
  87. ; -wTERM.DAT,80,YYYY
  88. ; -^c
  89. ; A>
  90. eject
  91.  
  92. DGROUP    group DATA
  93.     dseg
  94.  
  95. PUBLIC    CHARTRAN, ATTRIB, CURSOR
  96.  
  97.     ESC        equ    1Bh
  98.     PREAMBLE_SIZE    equ    256
  99.  
  100.     org    0
  101. PREAMBLE:
  102.     db    'Concurrent DOS Serial Terminal Configuration file',0dh,0ah
  103.     db    'for EDITMENU, COPYMENU, RUNMENU, and FILE-MANAGER.',0dh,0ah
  104.     db    'Digital Research, Inc., 1985.',0dh,0ah
  105.     db    'Terminal type: Zenith Z-29.'
  106.     db    1Ah
  107.  
  108.     rb    PREAMBLE_SIZE - (offset $ - offset PREAMBLE)    ;pad to end
  109. eject
  110. ;Character translate table:
  111. CHARTRAN    rb    0        ;place marker
  112.  
  113.     db ' '        ;00
  114.     db ' '        ;01 smile
  115.     db ' '        ;02 inverse smile
  116.     db ' '        ;03 heart
  117.     db ' '        ;04 diamond
  118.     db ' '        ;05 club
  119.     db ' '        ;06 spade
  120.     db '^'        ;07 dot
  121.     db ' '        ;08 inverse dot
  122.     db ' '        ;09 circle
  123.     db ' '        ;0A inverse circle
  124.     db ' '        ;0B male
  125.     db ' '        ;0C female
  126.     db ' '        ;0D quarter note
  127.     db ' '        ;0E eighth note
  128.     db ' '        ;0F sun
  129.     db '>'        ;10 right arrowhead
  130.     db '<'        ;11 left arrowhead
  131.     db ' '        ;12 up-down arrow
  132.     db ' '        ;13 double exclamation
  133.     db '~'        ;14 paragraph
  134.     db ' '        ;15 integral
  135.     db ' '        ;16 lower box
  136.     db ' '        ;17 underlined up-down arrow
  137.     db ' '        ;18 up arrow
  138.     db 'k'        ;19 down arrow
  139.     db 'h'        ;1A right arrow
  140.     db ' '        ;1B left arrow
  141.     db ' '        ;1C right angle
  142.     db ' '        ;1D left-right arrow
  143.     db ' '        ;1E up arrowhead
  144.     db ' '        ;1F down arrowhead
  145.  
  146. ;BEGIN STANDARD ASCII:
  147.     db    ' !"#$%&''()*+,-./0123456789:;<=>?'    
  148.     db    '@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_'    
  149.     db    '`abcdefghijklmnopqrstuvwxyz{|}~'    
  150.     db    '.'                    ;7F triangle
  151.  
  152. ;BEGIN UPPER 128 characters:
  153.     db ' '        ;80
  154.     db ' '        ;81
  155.     db ' '        ;82
  156.     db ' '        ;83
  157.     db ' '        ;84
  158.     db ' '        ;85
  159.     db ' '        ;86
  160.     db ' '        ;87
  161.     db ' '        ;88
  162.     db ' '        ;89
  163.     db ' '        ;8A
  164.     db ' '        ;8B
  165.     db ' '        ;8C
  166.     db ' '        ;8D
  167.     db ' '        ;8E
  168.     db ' '        ;8F
  169.  
  170.     db ' '        ;90
  171.     db ' '        ;91
  172.     db ' '        ;92
  173.     db ' '        ;93
  174.     db ' '        ;94
  175.     db ' '        ;95
  176.     db ' '        ;96
  177.     db ' '        ;97
  178.     db ' '        ;98
  179.     db ' '        ;99
  180.     db ' '        ;9A
  181.     db ' '        ;9B
  182.     db ' '        ;9C
  183.     db ' '        ;9D
  184.     db ' '        ;9E
  185.     db ':'        ;9F integral
  186.  
  187.     db ' '        ;A0
  188.     db ' '        ;A1
  189.     db ' '        ;A2
  190.     db ' '        ;A3
  191.     db ' '        ;A4
  192.     db ' '        ;A5
  193.     db ' '        ;A6
  194.     db ' '        ;A7
  195.     db ' '        ;A8
  196.     db 'f'        ;A9 upper-left corner
  197.     db 'c'        ;AA upper-right corner
  198.     db ' '        ;AB
  199.     db ' '        ;AC
  200.     db ' '        ;AD
  201.     db ' '        ;AE
  202.     db ' '        ;AF
  203.  
  204.     db ' '        ;B0 low-intens. block
  205.     db 'i'        ;B1 med-intens. block
  206.     db 'i'        ;B2 hi-intens. block
  207.     db '`'        ;B3 vert. line 1
  208.     db 't'        ;B4 left-pointing tee 1
  209.     db 't'        ;B5 left-pointing tee 2
  210.     db 't'        ;B6 left_pointing tee 3
  211.     db 'c'        ;B7 up-right corner 1
  212.     db 'c'        ;B8 up-right corner 2
  213.     db 't'        ;B9 left-pointing tee 4
  214.     db '`'        ;BA vert. line 2
  215.     db 'c'        ;BB up-right corner 3
  216.     db 'd'        ;BC low-right corner 1
  217.     db 'd'        ;BD low-right corner 2
  218.     db 'd'        ;BE low-right corner 3
  219.     db 'c'        ;BF up-right corner 4
  220.  
  221.     db 'e'        ;C0 low_left corner 1
  222.     db 'u'        ;C1 up-pointing tee 1
  223.     db 's'        ;C2 down-pointing tee 1
  224.     db 'v'        ;C3 right-pointing tee 1
  225.     db 'a'        ;C4 horizontal line 1
  226.     db 'b'        ;C5 cross 1
  227.     db 'v'        ;C6 right-pointing tee 2
  228.     db 'v'        ;C7 right-pointing tee 3
  229.     db 'e'        ;C8 low-left corner 2
  230.     db 'f'        ;C9 up-left corner 1
  231.     db 'u'        ;CA up-pointing tee 2
  232.     db 's'        ;CB down-pointing tee 2
  233.     db 'v'        ;CC right-pointing tee 4
  234.     db 'a'        ;CD horizontal line 2
  235.     db 'b'        ;CE cross 2
  236.     db 'u'        ;CF up_pointing tee 3
  237.  
  238.     db 'u'        ;D0 up_pointing tee 4
  239.     db 's'        ;D1 down-pointing tee 3
  240.     db 's'        ;D2 down-pointing tee 4
  241.     db 'e'        ;D3 low-left corner 3
  242.     db 'e'        ;D4 low-left corner 4
  243.     db 'f'        ;D5 up-left corner 2
  244.     db 'f'        ;D6 up-left corner 3
  245.     db 'b'        ;D7 cross 3
  246.     db 'b'        ;D8 cross 4
  247.     db 'd'        ;D9 low-right corner 4
  248.     db 'f'        ;DA up-left corner 4
  249.     db 'i'        ;DB block
  250.     db ' '        ;DC low block
  251.     db ' '        ;DD left block
  252.     db ' '        ;DE right block
  253.     db 'p'        ;DF high block
  254.  
  255.     db ','        ;E0 lc alpha
  256.     db '-'        ;E1 lc beta
  257.     db ' '        ;E2 uc gamma
  258.     db ' '        ;E3 lc pi
  259.     db ' '        ;E4 uc sigma
  260.     db ' '        ;E5 lc sigma
  261.     db '*'        ;E6 lc mu
  262.     db ' '        ;E7 lc tau
  263.     db ' '        ;E8 uc phi
  264.     db '/'        ;E9 lc theta
  265.     db '+'        ;EA uc omega
  266.     db ' '        ;EB lc delta
  267.     db ' '        ;EC infinity
  268.     db ' '        ;ED lc phi
  269.     db ' '        ;EE lc epsilon
  270.     db ' '        ;EF set intersection
  271.  
  272.     db ' '        ;F0 QED
  273.     db 'g'        ;F1 plus or minus
  274.     db ' '        ;F2 .gte.
  275.     db ' '        ;F3 .lte.
  276.     db ' '        ;F4 2-line integral-upper
  277.     db ' '        ;F5 2-line integral-lower
  278.     db '@'        ;F6 divided by
  279.     db ' '        ;F7 congruent
  280.     db 'o'        ;F8 degrees
  281.     db ' '        ;F9 center dot
  282.     db ' '        ;FA small center dot
  283.     db ' '        ;FB radical
  284.     db ' '        ;FC lc eta
  285.     db '2'        ;FD squared
  286.     db 'l'        ;FE low-right square
  287.     db ' '        ;FF space
  288. eject
  289.  
  290. CHAR_ON rw    0            ;place marker
  291.  
  292.     dw 0            ;00
  293.     dw 0            ;01 smile
  294.     dw 0            ;02 inverse smile
  295.     dw 0            ;03 heart
  296.     dw 0            ;04 diamond
  297.     dw 0            ;05 club
  298.     dw 0            ;06 spade
  299.     dw gr_on        ;07 dot
  300.     dw 0            ;08 inverse dot
  301.     dw 0            ;09 circle
  302.     dw 0            ;0A inverse circle
  303.     dw 0            ;0B male
  304.     dw 0            ;0C female
  305.     dw 0            ;0D quarter note
  306.     dw 0            ;0E eighth note
  307.     dw 0            ;0F sun
  308.     dw 0            ;10 right arrowhead
  309.     dw 0            ;11 left arrowhead
  310.     dw 0            ;12 up-down arrow
  311.     dw 0            ;13 double exclamation
  312.     dw gr_on        ;14 paragraph
  313.     dw 0            ;15 integral
  314.     dw 0            ;16 lower box
  315.     dw 0            ;17 underlined up-down arrow
  316.     dw 0            ;18 up arrow
  317.     dw gr_on        ;19 down arrow
  318.     dw gr_on        ;1A right arrow
  319.     dw 0            ;1B left arrow
  320.     dw 0            ;1C right angle
  321.     dw 0            ;1D left-right arrow
  322.     dw 0            ;1E up arrowhead
  323.     dw 0            ;1F down arrowhead
  324.  
  325. ;BEGIN STANDARD ASCII:
  326.     dw    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  327.     dw    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  328.     dw    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  329.     dw    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  330.     dw    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  331.     dw    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  332.     dw    alt_on            ;7F triangle
  333.  
  334.  
  335. ;BEGIN UPPER 128 characters:
  336.     dw 0                ;80
  337.     dw 0                ;81
  338.     dw 0                ;82
  339.     dw 0                ;83
  340.     dw 0                ;84
  341.     dw 0                ;85
  342.     dw 0                ;86
  343.     dw 0                ;87
  344.     dw 0                ;88
  345.     dw 0                ;89
  346.     dw 0                ;8A
  347.     dw 0                ;8B
  348.     dw 0                ;8C
  349.     dw 0                ;8D
  350.     dw 0                ;8E
  351.     dw 0                ;8F
  352.  
  353.     dw 0                ;90
  354.     dw 0                ;91
  355.     dw 0                ;92
  356.     dw 0                ;93
  357.     dw 0                ;94
  358.     dw 0                ;95
  359.     dw 0                ;96
  360.     dw 0                ;97
  361.     dw 0                ;98
  362.     dw 0                ;99
  363.     dw 0                ;9A
  364.     dw 0                ;9B
  365.     dw 0                ;9C
  366.     dw 0                ;9D
  367.     dw 0                ;9E
  368.     dw alt_on            ;9F integral
  369.  
  370.     dw 0                 ;A0
  371.     dw 0                ;A1
  372.     dw 0                ;A2
  373.     dw 0                ;A3
  374.     dw 0                ;A4
  375.     dw 0                ;A5
  376.     dw 0                ;A6
  377.     dw 0                ;A7
  378.     dw 0                ;A8
  379.     dw gr_on            ;A9 upper-left corner
  380.     dw gr_on            ;AA upper-right corner
  381.     dw 0                ;AB
  382.     dw 0                ;AC
  383.     dw 0                ;AD
  384.     dw 0                ;AE
  385.     dw 0                ;AF
  386.  
  387.     dw 0                ;B0 low-intens. block
  388.     dw gr_on            ;B1 med-intens. block
  389.     dw gr_on            ;B2 hi-intens. block
  390.     dw gr_on            ;B3 vert. line 1
  391.     dw gr_on            ;B4 left-pointing tee 1
  392.     dw gr_on            ;B5 left-pointing tee 2
  393.     dw gr_on            ;B6 left_pointing tee 3
  394.     dw gr_on            ;B7 up-right corner 1
  395.     dw gr_on            ;B8 up-right corner 2
  396.     dw gr_on            ;B9 left-pointing tee 4
  397.     dw gr_on            ;BA vert. line 2
  398.     dw gr_on            ;BB up-right corner 3
  399.     dw gr_on            ;BC low-right corner 1
  400.     dw gr_on            ;BD low-right corner 2
  401.     dw gr_on            ;BE low-right corner 3
  402.     dw gr_on            ;BF up-right corner 4
  403.  
  404.     dw gr_on            ;C0 low_left corner 1
  405.     dw gr_on            ;C1 up-pointing tee 1
  406.     dw gr_on            ;C2 down-pointing tee 1
  407.     dw gr_on            ;C3 right-pointing tee 1
  408.     dw gr_on            ;C4 horizontal line 1
  409.     dw gr_on            ;C5 cross 1
  410.     dw gr_on            ;C6 right-pointing tee 2
  411.     dw gr_on            ;C7 right-pointing tee 3
  412.     dw gr_on            ;C8 low-left corner 2
  413.     dw gr_on            ;C9 up-left corner 1
  414.     dw gr_on            ;CA up-pointing tee 2
  415.     dw gr_on            ;CB down-pointing tee 2
  416.     dw gr_on            ;CC right-pointing tee 4
  417.     dw gr_on            ;CD horizontal line 2
  418.     dw gr_on            ;CE cross 2
  419.     dw gr_on            ;CF up_pointing tee 3
  420.  
  421.     dw gr_on            ;D0 up_pointing tee 4
  422.     dw gr_on            ;D1 down-pointing tee 3
  423.     dw gr_on            ;D2 down-pointing tee 4
  424.     dw gr_on            ;D3 low-left corner 3
  425.     dw gr_on            ;D4 low-left corner 4
  426.     dw gr_on            ;D5 up-left corner 2
  427.     dw gr_on            ;D6 up-left corner 3
  428.     dw gr_on            ;D7 cross 3
  429.     dw gr_on            ;D8 cross 4
  430.     dw gr_on            ;D9 low-right corner 4
  431.     dw gr_on            ;DA up-left corner 4
  432.     dw gr_on            ;DB block
  433.     dw 0                ;DC low block
  434.     dw 0                ;DD left block
  435.     dw 0                ;DE right block
  436.     dw gr_on            ;DF high block
  437.  
  438.     dw alt_on            ;E0 lc alpha
  439.     dw alt_on            ;E1 lc beta
  440.     dw 0                ;E2 uc gamma
  441.     dw 0                ;E3 lc pi
  442.     dw 0                ;E4 uc sigma
  443.     dw 0                ;E5 lc sigma
  444.     dw alt_on            ;E6 lc mu
  445.     dw 0                ;E7 lc tau
  446.     dw 0                ;E8 uc phi
  447.     dw alt_on            ;E9 lc theta
  448.     dw alt_on            ;EA uc omega
  449.     dw 0                ;EB lc delta
  450.     dw 0                ;EC infinity
  451.     dw 0                ;ED lc phi
  452.     dw 0                ;EE lc epsilon
  453.     dw 0                ;EF set intersection
  454.  
  455.     dw 0                ;F0 QED
  456.     dw gr_on            ;F1 plus or minus
  457.     dw 0                ;F2 .gte.
  458.     dw 0                ;F3 .lte.
  459.     dw 0                ;F4 2-line integral-upper
  460.     dw 0                ;F5 2-line integral-lower
  461.     dw alt_on            ;F6 divided by
  462.     dw 0                ;F7 congruent
  463.     dw alt_on            ;F8 degrees
  464.     dw 0                ;F9 center dot
  465.     dw 0                ;FA small center dot
  466.     dw 0                ;FB radical
  467.     dw 0                ;FC lc eta
  468.     dw alt_on            ;FD squared
  469.     dw gr_on            ;FE low-right square
  470.     dw 0                ;FF space
  471. eject
  472.  
  473. CHAR_OFF rw    0            ;place marker
  474.  
  475.     dw 0            ;00
  476.     dw 0            ;01 smile
  477.     dw 0            ;02 inverse smile
  478.     dw 0            ;03 heart
  479.     dw 0            ;04 diamond
  480.     dw 0            ;05 club
  481.     dw 0            ;06 spade
  482.     dw gr_off        ;07 dot
  483.     dw 0            ;08 inverse dot
  484.     dw 0            ;09 circle
  485.     dw 0            ;0A inverse circle
  486.     dw 0            ;0B male
  487.     dw 0            ;0C female
  488.     dw 0            ;0D quarter note
  489.     dw 0            ;0E eighth note
  490.     dw 0            ;0F sun
  491.     dw 0            ;10 right arrowhead
  492.     dw 0            ;11 left arrowhead
  493.     dw 0            ;12 up-down arrow
  494.     dw 0            ;13 double exclamation
  495.     dw gr_off        ;14 paragraph
  496.     dw 0            ;15 integral
  497.     dw 0            ;16 lower box
  498.     dw 0            ;17 underlined up-down arrow
  499.     dw 0            ;18 up arrow
  500.     dw gr_off        ;19 down arrow
  501.     dw gr_off        ;1A right arrow
  502.     dw 0            ;1B left arrow
  503.     dw 0            ;1C right angle
  504.     dw 0            ;1D left-right arrow
  505.     dw 0            ;1E up arrowhead
  506.     dw 0            ;1F down arrowhead
  507.  
  508. ;BEGIN STANDARD ASCII:
  509.     dw    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  510.     dw    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  511.     dw    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  512.     dw    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  513.     dw    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  514.     dw    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  515.     dw    alt_off            ;7F triangle
  516.  
  517. ;BEGIN UPPER 128 characters:
  518.     dw 0                ;80
  519.     dw 0                ;81
  520.     dw 0                ;82
  521.     dw 0                ;83
  522.     dw 0                ;84
  523.     dw 0                ;85
  524.     dw 0                ;86
  525.     dw 0                ;87
  526.     dw 0                ;88
  527.     dw 0                ;89
  528.     dw 0                ;8A
  529.     dw 0                ;8B
  530.     dw 0                ;8C
  531.     dw 0                ;8D
  532.     dw 0                ;8E
  533.     dw 0                ;8F
  534.  
  535.     dw 0                ;90
  536.     dw 0                ;91
  537.     dw 0                ;92
  538.     dw 0                ;93
  539.     dw 0                ;94
  540.     dw 0                ;95
  541.     dw 0                ;96
  542.     dw 0                ;97
  543.     dw 0                ;98
  544.     dw 0                ;99
  545.     dw 0                ;9A
  546.     dw 0                ;9B
  547.     dw 0                ;9C
  548.     dw 0                ;9D
  549.     dw 0                ;9E
  550.     dw alt_off            ;9F integral
  551.  
  552.     dw 0                 ;A0
  553.     dw 0                ;A1
  554.     dw 0                ;A2
  555.     dw 0                ;A3
  556.     dw 0                ;A4
  557.     dw 0                ;A5
  558.     dw 0                ;A6
  559.     dw 0                ;A7
  560.     dw 0                ;A8
  561.     dw gr_off            ;A9 upper-left corner
  562.     dw gr_off            ;AA upper-right corner
  563.     dw 0                ;AB
  564.     dw 0                ;AC
  565.     dw 0                ;AD
  566.     dw 0                ;AE
  567.     dw 0                ;AF
  568.  
  569.     dw 0                ;B0 low-intens. block
  570.     dw gr_off            ;B1 med-intens. block
  571.     dw gr_off            ;B2 hi-intens. block
  572.     dw gr_off            ;B3 vert. line 1
  573.     dw gr_off            ;B4 left-pointing tee 1
  574.     dw gr_off            ;B5 left-pointing tee 2
  575.     dw gr_off            ;B6 left_pointing tee 3
  576.     dw gr_off            ;B7 up-right corner 1
  577.     dw gr_off            ;B8 up-right corner 2
  578.     dw gr_off            ;B9 left-pointing tee 4
  579.     dw gr_off            ;BA vert. line 2
  580.     dw gr_off            ;BB up-right corner 3
  581.     dw gr_off            ;BC low-right corner 1
  582.     dw gr_off            ;BD low-right corner 2
  583.     dw gr_off            ;BE low-right corner 3
  584.     dw gr_off            ;BF up-right corner 4
  585.  
  586.     dw gr_off            ;C0 low_left corner 1
  587.     dw gr_off            ;C1 up-pointing tee 1
  588.     dw gr_off            ;C2 down-pointing tee 1
  589.     dw gr_off            ;C3 right-pointing tee 1
  590.     dw gr_off            ;C4 horizontal line 1
  591.     dw gr_off            ;C5 cross 1
  592.     dw gr_off            ;C6 right-pointing tee 2
  593.     dw gr_off            ;C7 right-pointing tee 3
  594.     dw gr_off            ;C8 low-left corner 2
  595.     dw gr_off            ;C9 up-left corner 1
  596.     dw gr_off            ;CA up-pointing tee 2
  597.     dw gr_off            ;CB down-pointing tee 2
  598.     dw gr_off            ;CC right-pointing tee 4
  599.     dw gr_off            ;CD horizontal line 2
  600.     dw gr_off            ;CE cross 2
  601.     dw gr_off            ;CF up_pointing tee 3
  602.  
  603.     dw gr_off            ;D0 up_pointing tee 4
  604.     dw gr_off            ;D1 down-pointing tee 3
  605.     dw gr_off            ;D2 down-pointing tee 4
  606.     dw gr_off            ;D3 low-left corner 3
  607.     dw gr_off            ;D4 low-left corner 4
  608.     dw gr_off            ;D5 up-left corner 2
  609.     dw gr_off            ;D6 up-left corner 3
  610.     dw gr_off            ;D7 cross 3
  611.     dw gr_off            ;D8 cross 4
  612.     dw gr_off            ;D9 low-right corner 4
  613.     dw gr_off            ;DA up-left corner 4
  614.     dw gr_off            ;DB block
  615.     dw 0                ;DC low block
  616.     dw 0                ;DD left block
  617.     dw 0                ;DE right block
  618.     dw gr_off            ;DF high block
  619.  
  620.     dw alt_off            ;E0 lc alpha
  621.     dw alt_off            ;E1 lc beta
  622.     dw 0                ;E2 uc gamma
  623.     dw 0                ;E3 lc pi
  624.     dw 0                ;E4 uc sigma
  625.     dw 0                ;E5 lc sigma
  626.     dw alt_off            ;E6 lc mu
  627.     dw 0                ;E7 lc tau
  628.     dw 0                ;E8 uc phi
  629.     dw alt_off            ;E9 lc theta
  630.     dw alt_off            ;EA uc omega
  631.     dw 0                ;EB lc delta
  632.     dw 0                ;EC infinity
  633.     dw 0                ;ED lc phi
  634.     dw 0                ;EE lc epsilon
  635.     dw 0                ;EF set intersection
  636.  
  637.     dw 0                ;F0 QED
  638.     dw gr_off            ;F1 plus or minus
  639.     dw 0                ;F2 .gte.
  640.     dw 0                ;F3 .lte.
  641.     dw 0                ;F4 2-line integral-upper
  642.     dw 0                ;F5 2-line integral-lower
  643.     dw alt_off            ;F6 divided by
  644.     dw 0                ;F7 congruent
  645.     dw alt_off            ;F8 degrees
  646.     dw 0                ;F9 center dot
  647.     dw 0                ;FA small center dot
  648.     dw 0                ;FB radical
  649.     dw 0                ;FC lc eta
  650.     dw alt_off            ;FD squared
  651.     dw gr_off            ;FE low-right square
  652.     dw 0                ;FF space
  653. eject
  654.  
  655. ;Attribute table:
  656. ATTRIB    rw    0
  657.  
  658. ;The following monochrome attributes are matched:
  659. ;    1. underline
  660. ;    2. reverse video
  661. ;    3. blink
  662. ;    4. normal
  663.     
  664.      dw    normal_on
  665.      dw    under_on    ;01 under
  666.      dw    normal_on
  667.      dw    normal_on
  668.      dw    normal_on
  669.      dw    normal_on
  670.      dw    normal_on
  671.      dw    normal_on
  672.      dw    normal_on
  673.      dw    hi_under_on    ;09 HI under
  674.      dw    hi_on        ;0A-0F high intens.
  675.      dw    hi_on
  676.      dw    hi_on
  677.      dw    hi_on
  678.      dw    hi_on
  679.      dw    hi_on
  680.      dw    normal_on
  681.      dw    under_on    ;11 under
  682.      dw    normal_on
  683.      dw    normal_on
  684.      dw    normal_on
  685.      dw    normal_on
  686.      dw    normal_on
  687.      dw    normal_on
  688.      dw    hi_on        ;18 high intens.
  689.      dw    hi_under_on    ;19 HI under
  690.      dw    hi_on        ;1A-1F high intens.
  691.      dw    hi_on
  692.      dw    hi_on
  693.      dw    hi_on
  694.      dw    hi_on
  695.      dw    hi_on
  696.      dw    normal_on
  697.      dw    under_on    ;21 under
  698.      dw    normal_on
  699.      dw    normal_on
  700.      dw    normal_on
  701.      dw    normal_on
  702.      dw    normal_on
  703.      dw    normal_on
  704.      dw    hi_on        ;28 high intens.
  705.      dw    hi_under_on    ;29 HI under
  706.      dw    hi_on        ;2A-2F high intens.
  707.      dw    hi_on
  708.      dw    hi_on
  709.      dw    hi_on
  710.      dw    hi_on
  711.      dw    hi_on
  712.      dw    normal_on
  713.      dw    under_on    ;31 under
  714.      dw    normal_on
  715.      dw    normal_on
  716.      dw    normal_on
  717.      dw    normal_on
  718.      dw    normal_on
  719.      dw    normal_on
  720.      dw    hi_on        ;38 high intens.
  721.      dw    hi_under_on    ;39 HI under
  722.      dw    hi_on        ;3A-3F high intens.
  723.      dw    hi_on
  724.      dw    hi_on
  725.      dw    hi_on
  726.      dw    hi_on
  727.      dw    hi_on
  728.      dw    normal_on
  729.      dw    under_on    ;41 under
  730.      dw    normal_on
  731.      dw    normal_on
  732.      dw    normal_on
  733.      dw    normal_on
  734.      dw    normal_on
  735.      dw    normal_on
  736.      dw    hi_on        ;48 high intens.
  737.      dw    hi_under_on    ;49 HI under
  738.      dw    hi_on        ;4A-4F high intens.
  739.      dw    hi_on
  740.      dw    hi_on
  741.      dw    hi_on
  742.      dw    hi_on
  743.      dw    hi_on
  744.      dw    normal_on
  745.      dw    under_on    ;51 under
  746.      dw    normal_on
  747.      dw    normal_on
  748.      dw    normal_on
  749.      dw    normal_on
  750.      dw    normal_on
  751.      dw    normal_on
  752.      dw    hi_on        ;58 high intensity
  753.      dw    hi_under_on    ;59 HI under
  754.      dw    hi_on        ;5A-5F high intensity
  755.      dw    hi_on
  756.      dw    hi_on
  757.      dw    hi_on
  758.      dw    hi_on
  759.      dw    hi_on
  760.      dw    normal_on
  761.      dw    under_on    ;61 under
  762.      dw    normal_on
  763.      dw    normal_on
  764.      dw    normal_on
  765.      dw    normal_on
  766.      dw    normal_on
  767.      dw    normal_on
  768.      dw    hi_on        ;68 high intens.
  769.      dw    hi_under_on    ;69 HI under
  770.      dw    hi_on        ;6A-6F high intens.
  771.      dw    hi_on
  772.      dw    hi_on
  773.      dw    hi_on
  774.      dw    hi_on
  775.      dw    hi_on
  776.      dw    inv_on        ;70 inverse
  777.      dw    under_on    ;71 underline
  778.      dw    normal_on
  779.      dw    normal_on
  780.      dw    normal_on
  781.      dw    normal_on
  782.      dw    normal_on
  783.      dw    normal_on
  784.      dw    inv_on        ;78 inverse
  785.      dw    hi_under_on    ;79 HI underline
  786.      dw    hi_on        ;7A-7F high intens
  787.      dw    hi_on
  788.      dw    hi_on
  789.      dw    hi_on
  790.      dw    hi_on
  791.      dw    hi_on
  792.  
  793.      dw    normal_on    ;80 "non-display"
  794.      dw    bl_under_on    ;81 under
  795.      dw    blink_on
  796.      dw    blink_on
  797.      dw    blink_on
  798.      dw    blink_on
  799.      dw    blink_on
  800.      dw    blink_on
  801.      dw    normal_on    ;88 "non-display"
  802.      dw    bl_hi_under_on    ;89 HI under
  803.      dw    hi_blink_on    ;8A-8F high intens. blink
  804.      dw    hi_blink_on
  805.      dw    hi_blink_on
  806.      dw    hi_blink_on
  807.      dw    hi_blink_on
  808.      dw    hi_blink_on
  809.      dw    blink_on
  810.      dw    bl_under_on    ;91 under
  811.      dw    blink_on
  812.      dw    blink_on
  813.      dw    blink_on
  814.      dw    blink_on
  815.      dw    blink_on
  816.      dw    blink_on
  817.      dw    hi_blink_on    ;98 
  818.      dw    bl_hi_under_on    ;99 HI under
  819.      dw    hi_blink_on    ;9A-9F
  820.      dw    hi_blink_on
  821.      dw    hi_blink_on
  822.      dw    hi_blink_on
  823.      dw    hi_blink_on
  824.      dw    hi_blink_on
  825.      dw    blink_on
  826.      dw    bl_under_on    ;A1 under
  827.      dw    blink_on
  828.      dw    blink_on
  829.      dw    blink_on
  830.      dw    blink_on
  831.      dw    blink_on
  832.      dw    blink_on
  833.      dw    hi_blink_on    ;A8
  834.      dw    bl_hi_under_on    ;A9 HI under
  835.      dw    hi_blink_on    ;AA-AF
  836.      dw    hi_blink_on
  837.      dw    hi_blink_on
  838.      dw    hi_blink_on
  839.      dw    hi_blink_on
  840.      dw    hi_blink_on
  841.      dw    blink_on
  842.      dw    bl_under_on    ;B1 under
  843.      dw    blink_on
  844.      dw    blink_on
  845.      dw    blink_on
  846.      dw    blink_on
  847.      dw    blink_on
  848.      dw    blink_on
  849.      dw    hi_blink_on    ;B8
  850.      dw    bl_hi_under_on    ;B9 HI under
  851.      dw    hi_blink_on    ;BA-BF
  852.      dw    hi_blink_on
  853.      dw    hi_blink_on
  854.      dw    hi_blink_on
  855.      dw    hi_blink_on
  856.      dw    hi_blink_on
  857.      dw    blink_on
  858.      dw    bl_under_on    ;C1 under
  859.      dw    blink_on
  860.      dw    blink_on
  861.      dw    blink_on
  862.      dw    blink_on
  863.      dw    blink_on
  864.      dw    blink_on
  865.      dw    hi_blink_on    ;C8
  866.      dw    bl_hi_under_on    ;C9 blink HI under
  867.      dw    hi_blink_on
  868.      dw    hi_blink_on
  869.      dw    hi_blink_on
  870.      dw    hi_blink_on
  871.      dw    hi_blink_on
  872.      dw    hi_blink_on
  873.      dw    blink_on
  874.      dw    bl_under_on    ;D1 blink under
  875.      dw    blink_on
  876.      dw    blink_on
  877.      dw    blink_on
  878.      dw    blink_on
  879.      dw    blink_on
  880.      dw    blink_on
  881.      dw    hi_blink_on    ;D8
  882.      dw    bl_hi_under_on    ;D9 blink HI under
  883.      dw    hi_blink_on    ;DA-DF
  884.      dw    hi_blink_on
  885.      dw    hi_blink_on
  886.      dw    hi_blink_on
  887.      dw    hi_blink_on
  888.      dw    hi_blink_on
  889.      dw    blink_on
  890.      dw    bl_under_on    ;E1 blink under
  891.      dw    blink_on
  892.      dw    blink_on
  893.      dw    blink_on
  894.      dw    blink_on
  895.      dw    blink_on
  896.      dw    blink_on
  897.      dw    hi_blink_on    ;E8
  898.      dw    bl_hi_under_on    ;E9 HI under
  899.      dw    hi_blink_on
  900.      dw    hi_blink_on
  901.      dw    hi_blink_on
  902.      dw    hi_blink_on
  903.      dw    hi_blink_on
  904.      dw    hi_blink_on
  905.      dw    bl_inv_on    ;F0 blink inverse
  906.      dw    bl_under_on    ;F1 blink under
  907.      dw    blink_on
  908.      dw    blink_on
  909.      dw    blink_on
  910.      dw    blink_on
  911.      dw    blink_on
  912.      dw    blink_on
  913.      dw    bl_inv_on    ;F8 blink inverse
  914.      dw    bl_hi_under_on    ;F9 blink HI underline
  915.      dw    hi_blink_on
  916.      dw    hi_blink_on
  917.      dw    hi_blink_on
  918.      dw    hi_blink_on
  919.      dw    hi_blink_on
  920.      dw    hi_blink_on
  921. eject
  922.  
  923. ;Begin required screen function table:
  924. CURSOR    rw    0
  925.  
  926.     dw    cur_posn
  927.     dw    clr_scrn
  928.     dw    clr_eol
  929.     dw    clr_eos
  930.     dw    wrap_on
  931.     dw    wrap_off
  932.     dw    curs_on
  933.     dw    curs_off
  934.     dw    curs_up
  935.     dw    curs_down
  936.     dw    curs_right
  937.     dw    curs_left
  938.     dw    set_attr
  939.  
  940. ;Begin "free-form" screen control strings:
  941.  
  942. cur_posn    db    4,ESC,'Y  '
  943. clr_scrn    db    2,ESC,'E'
  944. clr_eol        db    2,ESC,'K'
  945. clr_eos        db    2,ESC,'J'
  946. wrap_on        db    2,ESC,'v'
  947. wrap_off    db    2,ESC,'w'
  948. curs_on        db    3,ESC,'y5'
  949. curs_off    db    3,ESC,'x5'
  950. set_attr    db    3,ESC,'s0'
  951. curs_up        db    2,ESC,'A'
  952. curs_down    db    2,ESC,'B'
  953. curs_right    db    2,ESC,'C'
  954. curs_left    db    2,ESC,'D'
  955.  
  956. ;Special character strings:
  957.  
  958. gr_on        db    2,ESC,'F'    ;Enter graphics mode
  959. gr_off        db    2,ESC,'G'    ;Exit graphics mode
  960.  
  961. alt_on        db    80h,11111111b, 00010000b ;Enter alt. char. set
  962. alt_off        db    80h,11101111b, 00000000b ;Exit alt. char. set
  963.  
  964. ;Attribute strings:
  965.   hi_on        rb    0    ;map hi to normal:
  966. normal_on    db    80h, 00010000b, 00000000b ;All off except possibly alt.
  967.   hi_under_on    rb    0    ;map hi to normal:
  968. under_on    db    80h, 00010000b, 00001000b ;Enter underline
  969.   hi_blink_on    rb    0    ;map hi to normal:
  970. blink_on    db    80h, 00010000b, 00000010b ;Enter blink
  971.   bl_hi_under_on rb    0    ;map hi to normal:
  972. bl_under_on    db    80h, 00010000b, 00001010b ;Blink and underline
  973.  
  974. inv_on        db    80h, 00010000b, 00000001b ;Enter inverse video
  975. bl_inv_on    db    80h, 00010000b, 00000011b ;Blink and inverse
  976.  
  977. ;These will map high to dim:
  978. ;hi_on        db    80h, 00010000b, 00000100b
  979. ;hi_blink_on    db    80h, 00010000b, 00000110b
  980. ;hi_under_on    db    80h, 00010000b, 00001100b
  981. ;bl_hi_under_on    db    80h, 00010000b, 00001110b
  982.  
  983.     end
  984.