home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / progm / pcgraphc.zip / LABELS.C < prev    next >
Text File  |  1988-11-24  |  15KB  |  298 lines

  1. /*
  2. labels.c
  3.  
  4. copyright 1988, Lantern Systems
  5.  
  6. a table of data defining stroke drawn characters for use with the
  7. label() function where label() is passed a pointer to a format string
  8. and a list of variables (very similar to printf() ).
  9.  
  10. the variables slant and a_r (aspect ratio) are external to the
  11. labeling program.  they define slant of the character and the aspect
  12. ratio of the drawn character, respectively.
  13.  
  14. need to add characters between 0 and 1fh to complete the set
  15. --they are currently defined as non-printing.  should be optional to
  16. print or not print (display functions as in HP computers)
  17. also need a character for 7fh (IBM uses delta)
  18. */
  19.  
  20.  
  21.  
  22. static char copyright[] =  "copyright 1988, Lantern Systems";
  23.  
  24. static int no_char[] =  { 0,0 };    /* non-printing character */
  25. static char no_char_p[] = { 0x0ff };    /* pen control for non-printing char */
  26.  
  27.  
  28. /*_______________________________________*/
  29.  
  30. static int spa[] = { 0,0, 0,0 };        /* 20h " " space */
  31. static char spa_p[] = { 0, 0x0fe };        /* special case of no drawing */
  32. static int excl[] = { 4,12, 4,6, 4,5, 4,4 };    /* 21h    "!" point */
  33. static char excl_p[] = {  0,1,0,0x0ff };
  34. static int dquote[] = { 4,12, 4,10, 6,12, 6,10 };    /* 22h double quote */
  35. static char dqte_p[] = {  0,1,0,0x0ff };
  36. static int sharp[] = { 3,4, 3,12, 5,12, 5,4, 7,7, 1,7, 1,9, 7,9 };    /* 23h pound sign (sharp) */
  37. static char sharp_p[] = { 0,1,0,1,0,1,0,0x0ff };
  38. static int dollar[] = { 7,10, 6,11, 2,11, 1,10, 1,9, 2,8, 4,8, 5,7, 6,7, 7,6,
  39.         7,5, 6,4, 2,4, 1,5, 4,3, 4,12 };    /* 24h "$" */
  40. static char dllr_p[] = { 0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0x0ff };
  41. static int percent[] = { 2,12, 1,11, 2,10, 3,11, 2,12, 8,12, 1,5, 6,7, 5,6, 6,5, 7,6, 6,7 };    /* 25h "%" */
  42. static char pct_p[] = { 0,1,1,1,1,0,1,0,1,1,1,0x0ff };
  43. static int amper[] = { 7,4, 1,10, 1,11, 2,12, 3,12, 4,11, 4,10, 1,7, 1,5, 2,4, 5,4, 7,6 };    /* 26h ampersand */
  44. static char amper_p[] = { 0,1,1,1,1,1,1,1,1,1,1,0x0ff };
  45. static int squote[] = { 6,12, 5,9 };    /* 27h single quote */
  46. static char sqte_p[] = { 0,0x0ff };
  47. static int lparen[] = { 5,12, 3,10, 3,6, 5,4 };    /* 28h left parenthese */
  48. static char lprn_p[] = { 0,1,1,0x0ff };
  49. static int rparen[] = { 4,12, 6,10, 6,6, 4,4 };    /* 29h    right parenthese */
  50. static char rprn_p[] = { 0,1,1,0x0ff };
  51. static int star[] = { 4,5, 4,11, 2,10, 6,6, 7,8, 1,8, 2,6, 6,10 };    /* 2ah asterisk */
  52. static char star_p[] = { 0,1,0,1,0,1,0,0x0ff };
  53. static int plus[] = { 4,10, 4,6, 2,8, 6,8 };    /* 2bh "+" */
  54. static char plus_p[] = { 0,1,0,0x0ff };
  55. static int comma[] = { 5,4, 4,4, 4,5, 5,5, 5,3, 4,2 };    /* 2ch "," */
  56. static char comma_p[] = { 0,1,1,1,1,0x0ff };
  57. static int minus[] = { 2,8, 6,8 };    /* 2dh "-" */
  58. static char minus_p[] = { 0,0x0ff };
  59. static int period[] = { 5,5, 5,4, 4,4, 4,5, 5,5 };    /* 2eh "." */
  60. static char prd_p[] = { 0,1,1,1,0x0ff };
  61. static int fract[] = { 1,5, 7,11 };    /* 2fh "/" */
  62. static char fract_p[] = { 0,0x0ff };
  63. /*______________________________________*/
  64.  
  65. static int zero[] = { 2,12, 6,12, 7,11, 7,5, 6,4, 2,4, 1,5, 1,11, 2,12, 7,11, 1,5 };    /* 30h "0" */
  66. static char zero_p[] = { 0,1,1,1,1,1,1,1,1,0,0x0ff };
  67. static int one[] = { 3,11, 4,12, 4,4, 3,4, 5,4 };    /* 31h "1" */
  68. static char one_p[] = { 0,1,1,0,0x0ff };
  69. static int two[] = { 1,11, 2,12, 6,12, 7,11, 7,9, 5,7, 3,7, 1,5, 1,4, 7,4 };    /* 32h "2" */
  70. static char two_p[] = { 0,1,1,1,1,1,1,1,1,0x0ff };
  71. static int three[] = { 1,11, 2,12, 6,12, 7,11, 7,9, 6,8, 3,8, 6,8, 7,7, 7,5, 6,4, 2,4, 1,5 };    /* 33h "3" */
  72. static char three_p[] = { 0,1,1,1,1,1,1,0,1,1,1,1,0x0ff };
  73. static int four[] = { 6,4, 6,12, 1,7, 1,6, 7,6 };    /* 34h "4" */
  74. static char four_p[] = { 0,1,1,1,0x0ff };
  75. static int five[] = { 7,12, 1,12, 1,8, 6,8, 7,6, 7,5, 6,4, 2,4, 1,5 };    /* 35h "5" */
  76. static char five_p[] = { 0,1,1,1,1,1,1,1,0x0ff };
  77. static int six[] = { 6,12, 3,12, 1,10, 1,5, 2,4, 6,4, 7,5, 7,7, 6,8, 1,8 };    /* 36h "6" */
  78. static char six_p[] = { 0,1,1,1,1,1,1,1,1,0x0ff };
  79. static int seven[] = { 1,12, 7,12, 7,10, 4,7, 4,4 };    /* 37h "7" */
  80. static char seven_p[] = { 0,1,1,1,0x0ff };
  81. static int eight[] = { 2,8, 1,9, 1,11, 2,12, 6,12, 7,11, 7,9, 6,8, 2,8, 1,7,
  82.         1,5, 2,4, 6,4, 7,5, 7,7, 6,8 };    /* 38h "8" */
  83. static char eight_p[] = { 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x0ff };
  84. static int nine[] = { 7,8, 2,8, 1,9, 1,11, 2,12, 6,12, 7,11, 7,5, 6,4, 2,4 };    /* 39h "9" */
  85. static char nine_p[] = { 0,1,1,1,1,1,1,1,1,0x0ff };
  86. /*_______________________________________*/
  87.  
  88. static int colon[] = { 5,10, 5,9, 4,9, 4,10, 5,10, 5,5, 5,4, 4,4, 4,5, 5,5 };    /* 3ah ":" */
  89. static char colon_p[] = { 0,1,1,1,1,0,1,1,1,0x0ff };
  90. static int semi[] = { 5,10, 5,9, 4,9, 4,10, 5,10, 5,4, 4,4, 4,5, 5,5, 5,3, 4,2 };    /* 3bh ';' */
  91. static char semi_p[] = { 0,1,1,1,1,0,1,1,1,1,0x0ff };
  92. static int lss[] = { 5,11, 2,8, 5,5 };    /* 3ch "less than" sign */
  93. static char lss_p[] = { 0,1,0x0ff };
  94. static int equal[] = { 1,7, 7,7, 1,9, 7,9 };    /* 3dh equal sign */
  95. static char equal_p[] = { 0,1,0,0x0ff };
  96. static int gtr[] = { 3,11, 6,8, 3,5 };    /* 3eh "greater than" sign */
  97. static char gtr_p[] = { 0,1,0x0ff };
  98. static int q_mark[] = { 1,11, 2,12, 6,12, 7,11, 7,9, 6,8, 5,8, 4,7, 4,6, 4,5, 4,4 };    /* 3fh "?" */
  99. static char q_mark_p[] = { 0,1,1,1,1,1,1,1,1,0,0x0ff };
  100. static int atsgn[] = { 6,6, 4,6, 3,7, 3,8, 4,9, 5,9, 6,8, 6,6, 7,6, 7,9,
  101.         5,11, 3,11, 1,9, 1,6, 3,4, 7,4 };    /* 40h "at" sign */
  102. static char atsgn_p[] = { 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x0ff };
  103.  
  104.  
  105. static int a_41[] = { 1,4, 1,10, 3,12, 5,12, 7,10, 7,4, 7,8, 1,8 };
  106. static char a_41p[] = { 0,1,1,1,1,1,0,0x0ff };
  107. static int b_42[] = { 2,4, 2,12, 1,12, 5,12, 6,11, 6,9, 5,8, 2,8, 4,8, 6,8, 7,7,
  108.          7,5, 6,4, 1,4 };
  109. static char b_42p[] = { 0,1,0,1,1,1,1,1,0,1,1,1,1,0x0ff };
  110. static int c_43[] = { 7,6, 5,4, 3,4, 1,6, 1,10, 3,12, 5,12, 7,10 };
  111. static char c_43p[] = { 0,1,1,1,1,1,1,0x0ff };
  112. static int d_44[] = { 2,4, 2,12, 1,12, 5,12, 7,10, 7,6, 5,4, 1,4 };
  113. static char d_44p[] = { 0,1,0,1,1,1,1,0x0ff };
  114. static int e_45[] = { 7,4, 1,4, 1,12, 7,12, 1,8, 5,8 };
  115. static char e_45p[] = { 0,1,1,1,0,0x0ff };
  116. static int f_46[] = { 1,4, 1,12, 7,12, 1,8, 5,8 };
  117. static char f_46p[] = { 0,1,1,0,0x0ff };
  118. static int g_47[] = { 5,7, 7,7, 7,5, 6,4, 3,4, 1,6, 1,10, 3,12, 5,12, 7,10 };
  119. static char g_47p[] = { 0,1,1,1,1,1,1,1,1,0x0ff };
  120. static int h_48[] = { 1,4, 1,12, 1,8, 7,8, 7,4, 7,12 };
  121. static char h_48p[] = { 0,1,0,1,0,0x0ff };
  122. static int i_49[] = { 2,4, 6,4, 4,4, 4,12, 2,12, 6,12 };
  123. static char i_49p[] = { 0,1,0,1,0,0x0ff };
  124. static int j_4a[] = { 1,6, 3,4, 5,4, 6,6, 6,12, 4,12, 8,12 };
  125. static char j_4ap[] = { 0,1,1,1,1,0,0x0ff };
  126. static int k_4b[] = { 1,4, 1,12, 1,6, 6,11, 3,8, 7,4 };
  127. static char k_4bp[] = { 0,1,0,1,0,0x0ff };
  128. static int l_4c[] = { 1,12, 1,4, 7,4 };
  129. static char l_4cp[] = { 0,1,0x0ff };
  130. static int m_4d[] = { 1,4, 1,12, 4,8, 7,12, 7,4 };
  131. static char m_4dp[] = { 0,1,1,1,0x0ff };
  132. static int n_4e[] = { 1,4, 1,12, 7,4, 7,12 };
  133. static char n_4ep[] = { 0,1,1,0x0ff };
  134. static int o_4f[] = { 5,4, 3,4, 1,6, 1,10, 3,12, 5,12, 7,10, 7,6, 5,4 };
  135. static char o_4fp[] = { 0,1,1,1,1,1,1,1,0x0ff };
  136. static int p_50[] = { 1,4, 1,12, 6,12, 7,11, 7,9, 6,8, 1,8 };
  137. static char p_50p[] = { 0,1,1,1,1,1,0x0ff };
  138. static int q_51[] = { 5,4, 3,4, 1,6, 1,10, 3,12, 5,12, 7,10, 7,6, 5,4, 5,6, 7,4 };
  139. static char q_51p[] = { 0,1,1,1,1,1,1,1,1,0,0x0ff };
  140. static int r_52[] = { 1,4, 1,12, 6,12, 7,11, 7,9, 6,8, 1,8, 4,8, 7,5, 7,4 };
  141. static char r_52p[] = { 0,1,1,1,1,1,1,0,1,0x0ff };
  142. static int s_53[] = { 7,11, 6,12, 2,12, 1,11, 1,9, 2,8, 6,8, 7,7, 7,5, 6,4, 2,4, 1,5 };
  143. static char s_53p[] = { 0,1,1,1,1,1,1,1,1,1,1,0x0ff };
  144. static int t_54[] = { 1,12, 7,12, 4,12, 4,4 };
  145. static char t_54p[] = { 0,1,0,0x0ff };
  146. static int u_55[] = { 7,12, 7,6, 5,4, 3,4, 1,6, 1,12 };
  147. static char u_55p[] = { 0,1,1,1,1,0x0ff };
  148. static int v_56[] = { 1,12, 4,4, 7,12 };
  149. static char v_56p[] = { 0,1,0x0ff };
  150. static int w_57[] = { 1,12, 1,4, 4,8, 7,4, 7,12 };
  151. static char w_57p[] = { 0,1,1,1,0x0ff };
  152. static int x_58[] = { 1,12, 1,11, 7,5, 7,4, 1,4, 1,5, 7,11, 7,12 };
  153. static char x_58p[] = { 0,1,1,1,0,1,1,0x0ff };
  154. static int y_59[] = { 1,12, 1,11, 4,8, 7,12, 7,11, 4,8, 4,4 };
  155. static char y_59p[] = { 0,1,1,0,1,1,0x0ff };
  156. static int z_5a[] = { 1,12, 7,12, 7,11, 1,5, 1,4, 7,4 };
  157. static char z_5ap[] = { 0,1,1,1,1,0x0ff };
  158. /*________________________
  159.     end of upper case letters
  160. __________________________*/
  161. static int lsqbkt[] = { 5,12, 3,12, 3,4, 5,4 };    /* 5bh left square bracket */
  162. static char lsqbkt_p[] = { 0,1,1,0x0ff };
  163. static int bslash[] = { 1,11, 7,5 };    /* 5ch back-slash */
  164. static char bslash_p[] = { 0,0x0ff };
  165. static int rsqbkt[] = { 4,12, 6,12, 6,4, 4,4 };    /* 5dh right square bracket */
  166. static char rsqbkt_p[] = { 0,1,1,0x0ff };
  167. static int carat[] = { 2,9, 4,11, 6,9 };    /* 5eh "carat" */
  168. static char carat_p[] = { 0,1,0x0ff };
  169. static int under[] = { 1,2, 6,2 };    /* 5fh underscore */
  170. static char under_p[] = { 0,0x0ff };
  171. static int pick[] = { 4,12, 5,9 };    /* 60h "pick" (accent-grave) */
  172. static char pick_p[] = { 0,0x0ff };
  173. /*________________________________________*/
  174.  
  175. static int a_61[] = { 1,8, 2,9, 5,9, 6,8, 6,5, 7,4, 6,5, 5,4, 2,4, 1,5, 1,6, 2,7, 6,7 };
  176. static char a_61p[] = { 0,1,1,1,1,1,0,1,1,1,1,1,0x0ff };
  177. static int b_62[] = { 1,4, 1,12, 1,7, 3,9, 5,9, 6,8, 6,5, 5,4, 3,4, 1,6 };
  178. static char b_62p[] = { 0,1,0,1,1,1,1,1,1,0x0ff };
  179. static int c_63[] = { 6,8, 5,9, 2,9, 1,8, 1,5, 2,4, 5,4, 6,5 };
  180. static char c_63p[] = { 0,1,1,1,1,1,1,0x0ff };
  181. static int d_64[] = { 6,6, 4,4, 2,4, 1,5, 1,8, 2,9, 4,9, 6,7, 6,12, 6,4 };
  182. static char d_64p[] = { 0,1,1,1,1,1,1,1,0,0x0ff };
  183. static int e_65[] = { 1,7, 6,7, 6,8, 5,9, 2,9, 1,8, 1,5, 2,4, 5,4, 6,5 };
  184. static char e_65p[] = { 0,1,1,1,1,1,1,1,1,0x0ff };
  185. static int f_66[] = { 2,4, 2,11, 3,12, 5,12, 6,11, 1,9, 3,9 };
  186. static char f_66p[] = { 0,1,1,1,1,0,0x0ff };
  187. static int g_67[] = { 6,6, 4,4, 2,4, 1,5, 1,8, 2,9, 5,9, 6,8, 6,2, 5,1, 2,1, 1,2 };
  188. static char g_67p[] = { 0,1,1,1,1,1,1,1,1,1,1,0x0ff };
  189. static int h_68[] = { 1,12, 1,4, 1,7, 3,9, 5,9, 6,8, 6,4 };
  190. static char h_68p[] = { 0,1,0,1,1,1,0x0ff };
  191. static int i_69[] = { 4,10, 4,10, 3,8, 4,8, 4,4 };
  192. static char i_69p[] = { 0,1,0,1,0x0ff };
  193. static int j_6a[] = { 6,10, 6,10, 5,8, 6,8, 6,2, 5,1, 2,1, 1,2 };
  194. static char j_6ap[] = { 0,1,0,1,1,1,1,0x0ff };
  195. static int k_6b[] = { 1,12, 1,4, 5,10, 1,6, 3,8, 6,5, 6,4 };
  196. static char k_6bp[] = { 0,1,0,1,0,1,0x0ff };
  197. static int l_6c[] = { 3,12, 4,12, 4,4, 3,4, 5,4 };
  198. static char l_6cp[] = { 0,1,1,0,0x0ff };
  199. static int m_6d[] = { 1,9, 1,4, 1,8, 2,9, 3,9, 4,8, 4,4, 4,8, 5,9, 6,9, 7,8, 7,4 };
  200. static char m_6dp[] = { 0,1,0,1,1,1,1,0,1,1,1,0x0ff };
  201. static int n_6e[] = { 1,9, 1,4, 1,7, 3,9, 5,9, 6,8, 6,4 };
  202. static char n_6ep[] = { 0,1,0,1,1,1,0x0ff };
  203. static int o_6f[] = { 6,8, 5,9, 2,9, 1,8, 1,5, 2,4, 5,4, 6,5, 6,8 };
  204. static char o_6fp[] = { 0,1,1,1,1,1,1,1,0x0ff };
  205. static int p_70[] = { 1,1, 1,9, 1,7, 3,9, 5,9, 6,8, 6,5, 5,4, 3,4, 1,6 };
  206. static char p_70p[] = { 0,1,0,1,1,1,1,1,1,0x0ff };
  207. static int q_71[] = { 6,1, 6,9, 6,7, 4,9, 2,9, 1,8, 1,5, 2,4, 4,4, 6,6};
  208. static char q_71p[] = { 0,1,0,1,1,1,1,1,1,0x0ff };
  209. static int r_72[] = { 1,4, 1,9, 1,7, 3,9, 5,9, 6,8 };
  210. static char r_72p[] = { 0,1,0,1,1,0x0ff };
  211. static int s_73[] = { 5,9, 2,9, 1,8, 2,7, 5,7, 6,6, 6,5, 5,4, 2,4, 1,5 };
  212. static char s_73p[] = { 0,1,1,1,1,1,1,1,1,0x0ff };
  213. static int t_74[] = { 3,12, 3,5, 4,4, 5,4, 6,5, 1,10, 5,10 };
  214. static char t_74p[] = { 0,1,1,1,1,0,0x0ff };
  215. static int u_75[] = { 1,9, 1,5, 2,4, 5,4, 6,5, 6,9, 6,4 };
  216. static char u_75p[] = { 0,1,1,1,1,0,0x0ff };
  217. static int v_76[] = { 1,9, 4,4, 7,9 };
  218. static char v_76p[] = { 0,1,0x0ff };
  219. static int w_77[] = { 1,9, 1,5, 2,4, 4,6, 4,8, 4,6, 6,4, 7,5, 7,9 };
  220. static char w_77p[] = { 0,1,1,1,1,0,1,1,0x0ff };
  221. static int x_78[] = { 1,4, 6,9, 1,9, 6,4 };
  222. static char x_78p[] = { 0,1,0,0x0ff };
  223. static int y_79[] = { 1,9, 1,5, 2,4, 4,4, 6,6, 6,9, 6,2, 5,1, 3,1 };
  224. static char y_79p[] = { 0,1,1,1,1,0,1,1,0x0ff };
  225. static int z_7a[] = { 1,9, 6,9, 1,4, 6,4 };
  226. static char z_7ap[] = { 0,1,1,0x0ff };
  227. /*-------------------------------
  228. end of lower case
  229. ---------------------------------*/
  230. static int lcbkt[] = { 4,12, 3,11, 3,9, 2,6, 3,7, 3,5, 4,4 };    /* 7bh left curly bracket */
  231. static char lcbkt_p[] = { 0,1,1,1,1,1,0x0ff };
  232. static int pipe[] = { 4,13, 4,2 };    /* 7ch vertical pipe */
  233. static char pipe_p[] = { 0,0x0ff };
  234. static int rcbkt[] = { 4,12, 5,11, 5,9, 6,8, 5,7, 5,5, 4,4 };    /* 7dh right curly bracket */
  235. static char rcbkt_p[] = { 0,1,1,1,1,1,0x0ff };
  236. static int tilde[] = { 1,10, 2,11, 3,11, 5,9, 6,9, 7,10 };    /* 7eh tilde */
  237. static char tilde_p[] = { 0,1,1,1,1,0x0ff };
  238.  
  239. static int ch_7fh[] = { 0,0 };
  240. static char ch_7fh_p[] = { 0x0ff };
  241.  
  242. /*-------------------------------------*/
  243. int * char_$_v[] = {            /* vector drawing data pointers */
  244.     no_char, no_char,        /* non-printing char's */
  245.     no_char, no_char, no_char, no_char, no_char, no_char,
  246.     no_char, no_char, no_char, no_char, no_char, no_char,
  247.     no_char, no_char, no_char, no_char, no_char, no_char,
  248.     no_char, no_char, no_char, no_char, no_char, no_char,
  249.     no_char, no_char, no_char, no_char, no_char, no_char,
  250.  
  251.     spa, excl, dquote, sharp, dollar, percent, amper, squote, lparen,
  252.         /* 20h,21h,22h,23h,24h,25h,26h,27h,28h */
  253.     rparen, star, plus, comma, minus, period, fract, zero,
  254.         /* 29h, 2ah, 2bh,2ch,2dh,2eh,2fh,30h */
  255.     one, two, three, four, five, six, seven, eight, nine,
  256.     colon, semi, lss, equal, gtr, q_mark, atsgn,
  257.         /* 3ah;3bh;3ch;3dh;3eh;3fh;40h */
  258.     a_41, b_42, c_43, d_44, e_45, f_46, g_47, h_48, i_49,
  259.     j_4a, k_4b, l_4c, m_4d, n_4e, o_4f, p_50, q_51, r_52,
  260.     s_53, t_54, u_55, v_56, w_57, x_58, y_59, z_5a,
  261.     lsqbkt, bslash, rsqbkt, carat, under, pick,
  262.         /* 5bh;5ch;5dh;5eh;5fh */
  263.     a_61, b_62, c_63, d_64, e_65, f_66, g_67, h_68, i_69,
  264.     j_6a, k_6b, l_6c, m_6d, n_6e, o_6f, p_70, q_71, r_72,
  265.     s_73, t_74, u_75, v_76, w_77, x_78, y_79, z_7a,
  266.     lcbkt, pipe, rcbkt, tilde, ch_7fh };
  267.         /* 7bh;7ch;7dh;7eh;character for 07fh */
  268.  
  269. char *char_$_p[] = {            /* pen control pointers */
  270.     no_char_p, no_char_p,        /* non-printing char's */
  271.     no_char_p, no_char_p, no_char_p, no_char_p, no_char_p, no_char_p,
  272.     no_char_p, no_char_p, no_char_p, no_char_p, no_char_p, no_char_p,
  273.     no_char_p, no_char_p, no_char_p, no_char_p, no_char_p, no_char_p,
  274.     no_char_p, no_char_p, no_char_p, no_char_p, no_char_p, no_char_p,
  275.     no_char_p, no_char_p, no_char_p, no_char_p, no_char_p, no_char_p,
  276.  
  277.     spa_p, excl_p, dqte_p, sharp_p, dllr_p, pct_p, amper_p, sqte_p,
  278.         /* 20h;21h;22h;23h;24h;25h;26h;27h */
  279.     lprn_p, rprn_p, star_p, plus_p, comma_p, minus_p, prd_p,
  280.         /* 28h;29h;2ah;2bh;2ch;2dh;2eh */
  281.     fract_p, zero_p,
  282.         /* 2fh; 30h */
  283.     one_p, two_p, three_p, four_p, five_p, six_p, seven_p, eight_p, nine_p,
  284.     colon_p, semi_p, lss_p, equal_p, gtr_p, q_mark_p, atsgn_p,
  285.         /* 39h;3ah;3bh;3ch;3dh;3eh;3fh;40h */
  286.     a_41p, b_42p, c_43p, d_44p, e_45p, f_46p, g_47p, h_48p, i_49p,
  287.     j_4ap, k_4bp, l_4cp, m_4dp, n_4ep, o_4fp, p_50p, q_51p, r_52p,
  288.     s_53p, t_54p, u_55p, v_56p, w_57p, x_58p, y_59p, z_5ap,
  289.     lsqbkt_p, bslash_p, rsqbkt_p, carat_p, under_p, pick_p,
  290.         /* 5bh;5ch;5dh;5eh;5fh */
  291.     a_61p, b_62p, c_63p, d_64p, e_65p, f_66p, g_67p, h_68p, i_69p,
  292.     j_6ap, k_6bp, l_6cp, m_6dp, n_6ep, o_6fp, p_70p, q_71p, r_72p,
  293.     s_73p, t_74p, u_75p, v_76p, w_77p, x_78p, y_79p, z_7ap,
  294.     lcbkt_p, pipe_p, rcbkt_p, tilde_p,
  295.         /* 7bh;7ch;7dh;7eh */
  296.     ch_7fh_p };    /* pen control for char at 07fh */
  297.  
  298.