home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / vmsnet / sources / 483 < prev    next >
Encoding:
Internet Message Format  |  1993-01-05  |  8.5 KB

  1. Path: sparky!uunet!spool.mu.edu!sdd.hp.com!usc!news.service.uci.edu!network.ucsd.edu!mvb.saic.com!vmsnet-sources
  2. Newsgroups: vmsnet.sources
  3. From: vicente@cenaath.cena.dgac.fr (Martin VICENTE)
  4. Subject: VMS/RTL/KBD, part 03/03
  5. Date: Tue, 05 Jan 1993 00:07:29 GMT
  6. Message-ID: <9912969@MVB.SAIC.COM>
  7. Lines: 267
  8. Approved: Mark.Berryman@Mvb.Saic.Com
  9.  
  10. Submitted-by: vicente@cenaath.cena.dgac.fr (Martin VICENTE)
  11. Posting-number: Volume 4, Issue 37
  12. Archive-name: keyboard_rtl/part03
  13.  
  14. -+-+-+-+-+-+-+-+ START OF PART 3 -+-+-+-+-+-+-+-+
  15. X(**`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
  16. V`20`20`20PASCAL$KBD_ROUTINES`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
  17. V`20`20`20`20`20`20`20`20`20`20`20**)
  18. X(**`09`09`09`09`09`09`09`09`09`20`20`20`20**)
  19. X(********`20Copyright`20(C)`201992`20Centre`20d'Etudes`20de`20la`20Navigation
  20. V`20Aerienne`20*******)
  21. X(*****************************************************************************
  22. V)
  23. X
  24. X
  25. X
  26. X
  27. X(*
  28. X`20*`20Titre:`09`20`20`20PASCAL$KBD_ROUTINES
  29. X`20*
  30. X`20*`20Sujet:`09`20`20`20Declarations`20des`20routines`20KBD$xxx`20("Keyboard
  31. V`20Routines").
  32. X`20*
  33. X`20*`20Version:`09`20`20`201.0
  34. X`20*
  35. X`20*`20Description:`09`20`20`20`20`20`20`20Ce`20module`20contient`20la`20decla
  36. Vration`20de`20la`20fonction
  37. X`20*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20KBD$READ_KEYSTROKE`20pe
  38. Vrmettant`20d'attendre`20une`20action`20au
  39. X`20*`09`09`20`20`20clavier`20et`20renvoyant`20la`20sequence`20ANSI`20correspon
  40. Vdant`20a`20la
  41. X`20*`09`09`20`20`20touche`20actionnee.
  42. X`20*
  43. X`20*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Pour`20util
  44. Viser`20KBD$READ_KEYSTROKE,`20il`20necessaire
  45. X`20*`09`09`20`20`20d'appeler`20au`20prealable`20la`20fonction`20KBD$OPEN_KEYBO
  46. VARD`20et`20de
  47. X`20*`09`09`20`20`20terminer`20par`20KBD$CLOSE_KEYBOARD.
  48. X`20*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20La`20routine`20KBD$OPEN
  49. V_KEYBOARD`20permet,`20entre`20autres,`20de`20ne
  50. X`20*`09`09`20`20`20creer`20le`20tampon`20clavier`20que`20si`20l'on`20desire
  51. V`20reellement
  52. X`20*`09`09`20`20`20utiliser`20KBD$READ_KEYSTROKE.
  53. X`20*
  54. X`20*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Lorsque`20l
  55. Ve`20tampon`20est`20plein,`20l'utilisateur`20est`20prevenu
  56. X`20*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20par`20un`20beep`20sonor
  57. Ve.
  58. X`20*
  59. X`20*`09`09`20`20`20`20`20`20`20La`20fonction`20KBD$FLUSH_KEYBOARD`20permet`20d
  60. Ve`20vider`20le
  61. X`20*`09`09`20`20`20tampon`20clavier.
  62. X`20*
  63. X`20*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Afin`20de`20po
  64. Vuvoir`20recuperer`20les`20codes`20emis`20par`20CTRL/C,
  65. X`20*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20CTRL/O,`20CTRL/Q,`20CTR
  66. VL/S,`20CTRL/T,`20CTRL/X,`20CTRL/Y`20et`20F6,`20il`20est
  67. X`20*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20necessaire`20d'entrer
  68. V`20la`20commande`20DCL`20"SET`20TERMINAL/PASTHRU
  69. X`20*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/NOTTSYNC".
  70. X`20*
  71. X`20*`20Langage:`09`20`20`20PASCAL`20NON`20STANDARD
  72. X`20*
  73. X`20*`20Fichier:`09`20`20`20PASCAL$KBD_ROUTINES_V_1_0.PAS
  74. X`20*
  75. X`20*`20Module:`09`20`20`20PASCAL$KBD_ROUTINES
  76. X`20*
  77. X`20*`20Environnement:`20`20Machine`20cible:`20`20`20`20`20`20`20`20`20`20VAX
  78. X`20*`09`09`20`20`20Systeme`20d'exploitation:`20VAX/VMS`20Version`205.4-3
  79. X`20*`09`09`20`20`20Compilateur:`20`20`20`20`20`20`20`20`20`20`20`20VAX`20Pasca
  80. Vl`20Version`204.3
  81. X`20*
  82. X`20*`20Auteur:`09`20`20`20Martin`20VICENTE`20(DGAC/CENA/SID)
  83. X`20*
  84. X`20*`09`09`20`20`20E-mail:`20vicente@cenaath.cena.dgac.fr
  85. X`20*
  86. X`20*`09`09`20`20`20Mail:`20`20`20C.E.N.A.
  87. X`20*`09`09`09`20`20`20Div.`20Support`20Informatique`20`26`20Developpement
  88. X`20*`09`09`09`20`20`20Orly`20Sud`20205
  89. X`20*`09`09`09`20`20`2094`20542`20ORLY`20AEROGARE`20CEDEX,`20FRANCE
  90. X`20*
  91. X`20*
  92. X`20*`20Creation:`09`20`20`2019/05/92
  93. X`20*
  94. X`20*`20Modification:`20`20`2026/05/92
  95. X`20*
  96. X`20*)
  97. X
  98. X
  99. X
  100. X
  101. XMODULE`20`20pascal$kbd_routines;
  102. X
  103. X
  104. X
  105. X
  106. X(*===========================================================================*
  107. V)
  108. X`09`5BHIDDEN`5D`20TYPE
  109. X(*===========================================================================*
  110. V)
  111. X
  112. X
  113. X`20`20`20`20$UWORD`20=`20`5BWORD`5D`200..65535;
  114. X
  115. X
  116. X(*===========================================================================*
  117. V)
  118. X`09TYPE
  119. X(*===========================================================================*
  120. V)
  121. X
  122. X
  123. X`20`20`20`20KBD$T_ESCAPE_OVERFLOW_BUFFER`20=`20PACKED`20ARRAY`20`5B1..4`5D`20O
  124. VF`20CHAR;
  125. X
  126. X`20`20`20`20KBD$T_ANSI_SEQUENCE`20=`20PACKED`20RECORD
  127. X`09`09`20`20`20`20`20`20`20`20`20`20`20`20`20ascii`20`20`20`20`20`20`20`20`20:
  128. V`20CHAR;
  129. X`09`09`09`20`20`20`20`20escOverBuffer`20:`20KBD$T_ESCAPE_OVERFLOW_BUFFER
  130. X`09`09`20`20`20`20`20`20`20`20`20`20END;
  131. X
  132. X
  133. X(*===========================================================================*
  134. V)
  135. X(*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20C
  136. VONDITION`20VALUE`20RETURNED`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
  137. V`20`20`20`20`20`20`20`20`20`20*)
  138. X(*===========================================================================*
  139. V)
  140. X
  141. X
  142. XVAR`20`20KBD$_NORMAL,
  143. X`20`20`20`20`20KBD$_ALREADYOPEN,
  144. X`20`20`20`20`20KBD$_OPENERROR,
  145. X`20`20`20`20`20KBD$_ALREADYCLOSE,
  146. X`20`20`20`20`20KBD$_CLOSEERROR,
  147. X`20`20`20`20`20KBD$_NOTOPEN,
  148. X`20`20`20`20`20KBD$_READERROR,
  149. X`20`20`20`20`20KBD$_KEYPRESERROR,
  150. X`20`20`20`20`20KBD$_FLUSHERROR
  151. X
  152. X`20`20`20`20`20:`20`5BEXTERNAL,VALUE`5D`20UNSIGNED;
  153. X
  154. X
  155. X
  156. X
  157. X(*****************************************************************************
  158. V)
  159. X(*****************************************************************************
  160. V)
  161. X(**`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20KBD
  162. V$`20FUNCTION`20DECLARATION`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20
  163. V`20`20`20`20`20`20`20**)
  164. X(*****************************************************************************
  165. V)
  166. X(*****************************************************************************
  167. V)
  168. X
  169. X
  170. X
  171. X
  172. X(*
  173. X`20*`20KBD$CLOSE_KEYBOARD
  174. X`20*
  175. X`20*`20`20`20Libere`20la`20memoire`20des`20structures`20de`20donnees`20associe
  176. Ves`20a`20ce`20module.
  177. X`20*)
  178. X
  179. XFUNCTION`20`20kbd$close_keyboard`20:`20UNSIGNED;
  180. X
  181. XEXTERNAL;
  182. X
  183. X
  184. X(*
  185. X`20*`20KBD$CVT_ANSI_SMG
  186. X`20*
  187. X`20*`20`20`20Convertit`20la`20sequence`20ANSI`20d'une`20touche`20en`20un`20cod
  188. Ve`20SMG.
  189. X`20*
  190. X`20*`20`20`20Liste`20des`20codes`20pouvant`20etre`20renvoyes`20(ils`20sont`20d
  191. Vefinis`20dans
  192. X`20*`20`20`20SYS$LIBRARY:PASCAL$SMG_ROUTINES):
  193. X`20*
  194. X`20*`09ascii`20(0`20-`20255)`09`09SMG$K_TRM_UP`09`09SMG$K_TRM_DOWN
  195. X`20*`09SMG$K_TRM_RIGHT`09`09SMG$K_TRM_LEFT`09`09SMG$K_TRM_ENTER
  196. X`20*`09SMG$K_TRM_PF1`09`09SMG$K_TRM_PF2`09`09SMG$K_TRM_PF3
  197. X`20*`09SMG$K_TRM_PF4`09`09SMG$K_TRM_COMMA`09`09SMG$K_TRM_MINUS
  198. X`20*`09SMG$K_TRM_PERIOD`09SMG$K_TRM_KP0`09`09SMG$K_TRM_KP1
  199. X`20*`09SMG$K_TRM_KP2`09`09SMG$K_TRM_KP3`09`09SMG$K_TRM_KP4
  200. X`20*`09SMG$K_TRM_KP5`09`09SMG$K_TRM_KP6`09`09SMG$K_TRM_KP7
  201. X`20*`09SMG$K_TRM_KP8`09`09SMG$K_TRM_KP9`09`09SMG$K_TRM_FIND
  202. X`20*`09SMG$K_TRM_INSERT_HERE`09SMG$K_TRM_REMOVE`09SMG$K_TRM_SELECT
  203. X`20*`09SMG$K_TRM_PREV_SCREEN`09SMG$K_TRM_NEXT_SCREEN`09SMG$K_TRM_F6
  204. X`20*`09SMG$K_TRM_F7`09`09SMG$K_TRM_F8`09`09SMG$K_TRM_F9
  205. X`20*`09SMG$K_TRM_F10`09`09SMG$K_TRM_F11`09`09SMG$K_TRM_F12
  206. X`20*`09SMG$K_TRM_F13`09`09SMG$K_TRM_F14`09`09SMG$K_TRM_HELP
  207. X`20*`09SMG$K_TRM_DO`09`09SMG$K_TRM_F17`09`09SMG$K_TRM_F18
  208. X`20*`09SMG$K_TRM_F19`09`09SMG$K_TRM_F20`09`09SMG$K_TRM_UP
  209. X`20*`09SMG$K_TRM_DOWN`09`09SMG$K_TRM_RIGHT`09`09SMG$K_TRM_LEFT
  210. X`20*`09SMG$K_TRM_UNKNOWN
  211. X`20*)
  212. X
  213. XFUNCTION`20`20kbd$cvt_ansi_smg`20(sequence`20:`20kbd$t_ansi_sequence)`20:`20$U
  214. VWORD;
  215. X
  216. XEXTERNAL;
  217. X
  218. X
  219. X(*
  220. X`20*`20KBD$FLUSH_KEYBOARD
  221. X`20*
  222. X`20*`20`20`20Vide`20le`20tampon`20clavier.
  223. X`20*)
  224. X
  225. XFUNCTION`20`20kbd$flush_keyboard`20:`20UNSIGNED;
  226. X
  227. XEXTERNAL;
  228. X
  229. X
  230. X(*
  231. X`20*`20KBD$KEY_PRESSED
  232. X`20*
  233. X`20*`20`20`20Indique`20si`20au`20moins`20une`20touche`20est`20presente`20dans
  234. V`20le`20tampon.
  235. X`20*)
  236. X
  237. XFUNCTION`20`20kbd$key_pressed`20(VAR`20yes`20:`20BOOLEAN)`20:`20UNSIGNED;
  238. X
  239. XEXTERNAL;
  240. X
  241. X
  242. X(*
  243. X`20*`20KBD$OPEN_KEYBOARD
  244. X`20*
  245. X`20*`20`20`20Creation`20et`20initialisation`20des`20structures`20de`20donnees
  246. V`20associees`20au`20module.
  247. X`20*)
  248. X
  249. XFUNCTION`20`20kbd$open_keyboard`20:`20UNSIGNED;
  250. X
  251. XEXTERNAL;
  252. X
  253. X
  254. X(*
  255. X`20*`20KBD$READ_KEYSTROKE
  256. X`20*
  257. X`20*`20`20`20Extrait`20la`20touche`20suivante`20du`20tampon;`20si`20ce`20derni
  258. Ver`20est`20vide,`20se`20met`20en
  259. X`20*`20`20`20attente`20d'une`20action`20au`20clavier.
  260. X`20*)
  261. X
  262. XFUNCTION`20`20kbd$read_keystroke`20(VAR`20key`20:`20kbd$t_ansi_sequence)`20:
  263. V`20UNSIGNED;
  264. X
  265. XEXTERNAL;
  266. X
  267. X
  268. X
  269. X
  270. X(*****************************************************************************
  271. V)
  272. X
  273. XEND`20(*`20PASCAL$KBD_ROUTINES`20*).
  274. $ call unpack PASCAL$KBD_ROUTINES.PAS;1 1532366519 ""
  275. $ v=f$verify(v)
  276. $ exit
  277.