home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 16 / 16.iso / w / w055 / 4.ddi / SOURCES.LIF / ASCII.PEL next >
Encoding:
Text File  |  1990-09-27  |  6.9 KB  |  262 lines

  1. # $Header:   P:/source/ppee/macros/ascii.pev   1.21   20 Aug 1990 15:24:42   skipr  $
  2.  
  3. ##############################################################################
  4. #
  5. #           Sage Software - POLYTRON Division
  6. #             1700 NW 167th Place
  7. #               Beaverton, OR 97006
  8. #
  9. #   Copyright 1990, Sage Software, Inc.
  10. #
  11. #   Permission is hereby granted for licensed users of Sage Professional
  12. #   Editor and PolyAwk to copy and modify this source code for their own
  13. #   personal use.  These derivative works may be distributed only to other
  14. #   licensed Sage Professional Editor and PolyAwk users.  All other usage
  15. #   is prohibited without express written permission from Sage Software.
  16. #
  17. ##############################################################################
  18.  
  19. #### $Workfile:   ascii.pel  $ Ascii Table
  20.  
  21. local    ascii_page = 0;
  22.  
  23. global function display_ascii_table() {
  24.  
  25.     local    width = 23
  26.     local    height = 18
  27.     local    flags = WINDOW_NOBORDER
  28.     local    x0 = 5,
  29.         y0 = 2
  30.     local    ch
  31.     local    ascii_to_insert
  32.  
  33.     current_window = create_window( x0, y0, width, height, flags )
  34.     init_menu_colors();
  35.     color_border    = BAR_COLOR;
  36.     color_text      = BAR_COLOR;
  37.     
  38.     # update the window until invalid key pressed
  39.     #
  40.     while (TRUE) {
  41.         window_cursor_x = window_cursor_y = 0;
  42.  
  43.         if (ascii_page == 0) {
  44.             write_window("\
  45. ╔Dec Hex Ch Ctrl Code═╗\
  46. ║  0 00      ^@   NUL ║\
  47. ║  1 01   \01  ^A   SOH ║\
  48. ║  2 02   \02  ^B   STX ║\
  49. ║  3 03   \03  ^C   ETX ║\
  50. ║  4 04   \04  ^D   EOT ║\
  51. ║  5 05   \05  ^E   ENQ ║\
  52. ║  6 06   \06  ^F   ACK ║\
  53. ║  7 07   \07  ^G   BEL ║" "\
  54. ║  8 08   \10  ^H   BS  ║\
  55. ║  9 09   \11  ^I   HT  ║\
  56. ║ 10 0a      ^J   LF  ║\
  57. ║ 11 0b   \13  ^K   VT  ║\
  58. ║ 12 0c   \14  ^L   FF  ║\
  59. ║ 13 0d   \15  ^M   CR  ║\
  60. ║ 14 0e   \16  ^N   SO  ║\
  61. ║ 15 0f   \17  ^O   SI  ║\
  62. ╚═══ I = Insert Ch. ══╝");
  63.         } else if (ascii_page == 1) {
  64.             write_window("\
  65. ╔Dec Hex Ch Ctrl Code═╗\
  66. ║ 16 10   \20  ^P   DLE ║\
  67. ║ 17 11   \21  ^Q   DC1 ║\
  68. ║ 18 12   \22  ^R   DC2 ║\
  69. ║ 19 13   \23  ^S   DC3 ║\
  70. ║ 20 14   \24  ^T   DC4 ║\
  71. ║ 21 15   \25  ^U   NAK ║\
  72. ║ 22 16   \26  ^V   SYN ║\
  73. ║ 23 17   \27  ^W   ETB ║" "\
  74. ║ 24 18   \30  ^X   CAN ║\
  75. ║ 25 19   \31  ^Y   EM  ║\
  76. ║ 26 1a   \32  ^Z   SUB ║\
  77. ║ 27 1b   \33  ^[   ESC ║\
  78. ║ 28 1c   \34  ^\\   FS  ║\
  79. ║ 29 1d   \35  ^]   GS  ║\
  80. ║ 30 1e   \36  ^^   RS  ║\
  81. ║ 31 1f   \37  ^_   US  ║\
  82. ╚═══ I = Insert Ch. ══╝");
  83.         } else if (ascii_page == 2) {
  84.             write_window("\
  85. ╔Dec Hex Ch Dec Hex Ch╗\
  86. ║ 32 20    │ 48 30  0 ║\
  87. ║ 33 21  ! │ 49 31  1 ║\
  88. ║ 34 22  \" │ 50 32  2 ║\
  89. ║ 35 23  # │ 51 33  3 ║\
  90. ║ 36 24  $ │ 52 34  4 ║\
  91. ║ 37 25  % │ 53 35  5 ║\
  92. ║ 38 26  & │ 54 36  6 ║\
  93. ║ 39 27  ' │ 55 37  7 ║" "\
  94. ║ 40 28  ( │ 56 38  8 ║\
  95. ║ 41 29  ) │ 57 39  9 ║\
  96. ║ 42 2a  * │ 58 3a  : ║\
  97. ║ 43 2b  + │ 59 3b  ; ║\
  98. ║ 44 2c  , │ 60 3c  < ║\
  99. ║ 45 2d  - │ 61 3d  = ║\
  100. ║ 46 2e  . │ 62 3e  > ║\
  101. ║ 47 2f  / │ 63 3f  ? ║\
  102. ╚═══ I = Insert Ch. ══╝");
  103.         } else if (ascii_page == 3) {
  104.             write_window("\
  105. ╔Dec Hex Ch Dec Hex Ch╗\
  106. ║ 64 40  @ │ 80 50  P ║\
  107. ║ 65 41  A │ 81 51  Q ║\
  108. ║ 66 42  B │ 82 52  R ║\
  109. ║ 67 43  C │ 83 53  S ║\
  110. ║ 68 44  D │ 84 54  T ║\
  111. ║ 69 45  E │ 85 55  U ║\
  112. ║ 70 46  F │ 86 56  V ║\
  113. ║ 71 47  G │ 87 57  W ║" "\
  114. ║ 72 48  H │ 88 58  X ║\
  115. ║ 73 49  I │ 89 59  Y ║\
  116. ║ 74 4a  J │ 90 5a  Z ║\
  117. ║ 75 4b  K │ 91 5b  [ ║\
  118. ║ 76 4c  L │ 92 5c  \\ ║\
  119. ║ 77 4d  M │ 93 5d  ] ║\
  120. ║ 78 4e  N │ 94 5e  ^ ║\
  121. ║ 79 4f  O │ 95 5f  _ ║\
  122. ╚═══ I = Insert Ch. ══╝");
  123.         } else if (ascii_page == 4) {
  124.             write_window("\
  125. ╔Dec Hex Ch Dec Hex Ch╗\
  126. ║ 96 60  ` │112 70  p ║\
  127. ║ 97 61  a │113 71  q ║\
  128. ║ 98 62  b │114 72  r ║\
  129. ║ 99 63  c │115 73  s ║\
  130. ║100 64  d │116 74  t ║\
  131. ║101 65  e │117 75  u ║\
  132. ║102 66  f │118 76  v ║\
  133. ║103 67  g │119 77  w ║" "\
  134. ║104 68  h │120 78  x ║\
  135. ║105 69  i │121 79  y ║\
  136. ║106 6a  j │122 7a  z ║\
  137. ║107 6b  k │123 7b  { ║\
  138. ║108 6c  l │124 7c  | ║\
  139. ║109 6d  m │125 7d  } ║\
  140. ║110 6e  n │126 7e  ~ ║\
  141. ║111 6f  o │127 7f   ║\
  142. ╚═══ I = Insert Ch. ══╝");
  143.         } else if (ascii_page == 5) {
  144.             write_window("\
  145. ╔Dec Hex Ch Dec Hex Ch╗\
  146. ║128 80  Ç │144 90  É ║\
  147. ║129 81  ü │145 91  æ ║\
  148. ║130 82  é │146 92  Æ ║\
  149. ║131 83  â │147 93  ô ║\
  150. ║132 84  ä │148 94  ö ║\
  151. ║133 85  à │149 95  ò ║\
  152. ║134 86  å │150 96  û ║\
  153. ║135 87  ç │151 97  ù ║" "\
  154. ║136 88  ê │152 98  ÿ ║\
  155. ║137 89  ë │153 99  Ö ║\
  156. ║138 8a  è │154 9a  Ü ║\
  157. ║139 8b  ï │155 9b  ¢ ║\
  158. ║140 8c  î │156 9c  £ ║\
  159. ║141 8d  ì │157 9d  ¥ ║\
  160. ║142 8e  Ä │158 9e  ₧ ║\
  161. ║143 8f  Å │159 9f  ƒ ║\
  162. ╚═══ I = Insert Ch. ══╝");
  163.         } else if (ascii_page == 6) {
  164.             write_window("\
  165. ╔Dec Hex Ch Dec Hex Ch╗\
  166. ║160 a0  á │176 b0  ░ ║\
  167. ║161 a1  í │177 b1  ▒ ║\
  168. ║162 a2  ó │178 b2  ▓ ║\
  169. ║163 a3  ú │179 b3  │ ║\
  170. ║164 a4  ñ │180 b4  ┤ ║\
  171. ║165 a5  Ñ │181 b5  ╡ ║\
  172. ║166 a6  ª │182 b6  ╢ ║\
  173. ║167 a7  º │183 b7  ╖ ║" "\
  174. ║168 a8  ¿ │184 b8  ╕ ║\
  175. ║169 a9  ⌐ │185 b9  ╣ ║\
  176. ║170 aa  ¬ │186 ba  ║ ║\
  177. ║171 ab  ½ │187 bb  ╗ ║\
  178. ║172 ac  ¼ │188 bc  ╝ ║\
  179. ║173 ad  ¡ │189 bd  ╜ ║\
  180. ║174 ae  « │190 be  ╛ ║\
  181. ║175 af  » │191 bf  ┐ ║\
  182. ╚═══ I = Insert Ch. ══╝");
  183.         } else if (ascii_page == 7) {
  184.             write_window("\
  185. ╔Dec Hex Ch Dec Hex Ch╗\
  186. ║192 c0  └ │208 d0  ╨ ║\
  187. ║193 c1  ┴ │209 d1  ╤ ║\
  188. ║194 c2  ┬ │210 d2  ╥ ║\
  189. ║195 c3  ├ │211 d3  ╙ ║\
  190. ║196 c4  ─ │212 d4  ╘ ║\
  191. ║197 c5  ┼ │213 d5  ╒ ║\
  192. ║198 c6  ╞ │214 d6  ╓ ║" "\
  193. ║199 c7  ╟ │215 d7  ╫ ║\
  194. ║200 c8  ╚ │216 d8  ╪ ║\
  195. ║201 c9  ╔ │217 d9  ┘ ║\
  196. ║202 ca  ╩ │218 da  ┌ ║\
  197. ║203 cb  ╦ │219 db  █ ║\
  198. ║204 cc  ╠ │220 dc  ▄ ║\
  199. ║205 cd  ═ │221 dd  ▌ ║\
  200. ║206 ce  ╬ │222 de  ▐ ║\
  201. ║207 cf  ╧ │223 df  ▀ ║\
  202. ╚═══ I = Insert Ch. ══╝");
  203.         } else if (ascii_page == 8) {
  204.             write_window("\
  205. ╔Dec Hex Ch Dec Hex Ch╗\
  206. ║224 e0  α │240 f0  ≡ ║\
  207. ║225 e1  ß │241 f1  ± ║\
  208. ║226 e2  Γ │242 f2  ≥ ║\
  209. ║227 e3  π │243 f3  ≤ ║\
  210. ║228 e4  Σ │244 f4  ⌠ ║\
  211. ║229 e5  σ │245 f5  ⌡ ║\
  212. ║230 e6  µ │246 f6  ÷ ║\
  213. ║231 e7  τ │247 f7  ≈ ║" "\
  214. ║232 e8  Φ │248 f8  ° ║\
  215. ║233 e9  Θ │249 f9  ∙ ║\
  216. ║234 ea  Ω │250 fa  · ║\
  217. ║235 eb  δ │251 fb  √ ║\
  218. ║236 ec  ∞ │252 fc  ⁿ ║\
  219. ║237 ed  φ │253 fd  ² ║\
  220. ║238 ee  ε │254 fe  ■ ║\
  221. ║239 ef  ∩ │255 ff    ║\
  222. ╚═══ I = Insert Ch. ══╝");
  223.         }    # end if-else
  224.  
  225.         display_update();
  226.  
  227.         ch = shiftr( getkey(), 8 )    # scan code to handle both keypads
  228.         if ( ch == SCANCODE_DOWN            \
  229.                 || ch == SCANCODE_RIGHT        \
  230.                 || ch == SCANCODE_PGDN ) {
  231.             ascii_page = (ascii_page + 1) % 9
  232.         } else if ( ch == SCANCODE_UP            \
  233.                 || ch == SCANCODE_LEFT        \
  234.                 || ch == SCANCODE_PGUP ) {
  235.             ascii_page = (ascii_page + 8) % 9
  236.         } else if ( ch == SCANCODE_HOME            \
  237.                 || ch == SCANCODE_CTRL_PGUP ) {
  238.             ascii_page = 0
  239.         } else if( ch == SCANCODE_END            \
  240.                 || ch == SCANCODE_CTRL_PGDN ) {
  241.             ascii_page = 8
  242.         } else if ( ch == shiftr( key_to_int( "<I>" ), 8 )) {
  243.             ascii_to_insert = 0+prompt_history(    \
  244.                     "XASCII",
  245.                     "Decimal Code of Character to Insert: ",
  246.                     ascii_to_insert )
  247.             message( "" )
  248.             if ( ascii_to_insert ){
  249.                 break
  250.             }
  251.         } else {
  252.             break;
  253.         }
  254.     } # end while
  255.  
  256.     delete_window()        # delete the ascii window
  257.  
  258.     if ( ascii_to_insert ){
  259.         insert_key( ascii_to_insert )
  260.     }
  261. }
  262.