home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / diverses / him / km.h < prev    next >
Encoding:
C/C++ Source or Header  |  1988-12-01  |  10.4 KB  |  347 lines

  1. #ifndef HIMKMH
  2. #define HIMKMH 1
  3.  
  4. #ifdef AUTODOC
  5.  
  6. Include File: km.h
  7.  
  8. Description: 
  9.  
  10. Include file for HIM Keyboard Manager module
  11.  
  12. #endif
  13. /*
  14.  *
  15.  *   Copyright 1988  Allsoft (tm)
  16.  *   100 Calle Playa Del Sol NE
  17.  *   Albuquerque, NM  87109
  18.  *
  19.  *   ALL RIGHTS RESERVED.
  20.  *
  21.  *   Unauthorized distribution, adaptation or use may be 
  22.  *   subject to civil and criminal penalties.
  23.  *
  24.  */
  25. /********** Filled by Polytron Version Control System **********
  26.  
  27. $Author:   james borders  $
  28.  
  29. $Date:   28 Apr 1988 18:18:48  $
  30.  
  31. $Revision:   1.1  $
  32.  
  33. $Log:   D:/C/FMLIB/KM/VCS/KM.H  $
  34.    
  35.       Rev 1.1   28 Apr 1988 18:18:48   james borders
  36.    Format changes
  37.  
  38. ****************************************************************/
  39.  
  40. /* Constant definitions for the Keyboard Manager package */
  41.  
  42.  
  43. /* Error Codes */
  44.  
  45. #define KMMAERROR       -1      /* memory allocation error */
  46. #define KMFOERROR       -2      /* file open error */
  47. #define KMFCERROR       -3      /* file close error */
  48. #define KMFRERROR       -4      /* file read error */
  49. #define KMFWERROR       -5      /* file write error */
  50. #define KMBADUIR        -6      /* bad UIR number */
  51. #define KMBADUOR        -7      /* bad UOR number */
  52. #define KMBADIR         -8      /* bad IR number */
  53. #define KMCANTPOP       -9      /* can't pop context any more */
  54.  
  55. /* UIR function defines */
  56.  
  57. #define fuirsabort       1      /* set abort code */
  58. #define fuirqabort       2      /* abort code pending ?? */
  59. #define fuirchavail      3      /* character available?? */
  60. #define fuirgetch        4      /* return a character */
  61.  
  62. /* 
  63.     Background routine parameter.  Indicates to your background routine 
  64.     which input source is currently active.  A positive number means one
  65.     of your User Input Routines (UIR) is active.
  66. */
  67.  
  68. #define KFILE       -1
  69. #define KKBD        -2
  70. #define KNONE        0
  71.  
  72. /* function declarations */
  73.  
  74. /* multiplexer */
  75. int kmminit(int (*)(),int (*)(), int);
  76. int kmmclear(void);
  77. int kmmkbhit(void);
  78. int kmmgetch(void);
  79. void kmmungetch(int c);
  80. int kmmopen(char *filename);
  81. int kmmclose(void);
  82. void kmmsuspendf(void);
  83. void kmmresumef(void);
  84. int kmmfstat(void);
  85. void (cdecl *kmmsbg(void (cdecl *ptr)()))();
  86. void (cdecl *kmmgbg(void))();
  87. void kmmdbg(void);
  88. void kmmsuspendbg(void);
  89. void kmmresumebg(void);
  90. int kmmbgstat(void);
  91. int kmmsuir(int (cdecl *ptr)());
  92. int (cdecl *kmmguir(int unum))();
  93. int kmmduir(int unum);
  94. int kmmsuspenduir(int unum);
  95. int kmmresumeuir(int unum);
  96. int kmmuirstat(int unum);
  97. void kmmsinput(int inum);
  98. int kmmginput(void);
  99. void kmmsabort(int acode);
  100. int kmmgabort(void);
  101. int kmmpush(int);
  102. int kmmpop(int);
  103. int fcharavail(void);
  104. int kbcharavail(void);
  105. int uircharavail(int num);
  106. int anyaborts(void);
  107. int getfilech(void);
  108. int getkbch(void);
  109. int getuirch(int num);
  110. int ungetfilech(int c);
  111. void ungetkbch(int c);
  112. void ungetuirch(int num,int c);
  113. void bumpinsource(void);
  114. FILE *kmmopenpfile(char *);
  115.  
  116. /* filter */
  117.  
  118. int kmfinit(int (*)(),int (*)(), int);
  119. void kmfclear(void);
  120. int kmfsesc(int code);
  121. int kmfgesc(void);
  122. int kmfkbhit(void);
  123. int kmfgetch(void);
  124. void kmfungetch(int c);
  125. void kmfsuspend(void);
  126. void kmfresume(void);
  127. int kmfstat(void);
  128. int kmfpush(int);
  129. int kmfpop(int);
  130. void processchar(int c);
  131. int escinbuf(void);
  132.  
  133. /* redirector */
  134.  
  135. int kmrinit(int (*)(),int (*)(), int);
  136. int kmrclear(void);
  137. int kmrkbhit(void);
  138. int kmrgetch(void);
  139. void kmrungetch(int c);
  140. int kmropen(char *filename);
  141. int kmrclose(void);
  142. void kmrsuspendf(void);
  143. void kmrresumef(void);
  144. int kmrfstat(void);
  145. int kmrsuor(void (cdecl *ptr)());
  146. void (cdecl *kmrguor(int unum))();
  147. int kmrduor(int unum);
  148. int kmrsuspenduor(int unum);
  149. int kmrresumeuor(int unum);
  150. int kmruorstat(int unum);
  151. int kmrpush(int);
  152. int kmrpop(int);
  153.  
  154. /* intercept processor */
  155.  
  156. int kmpinit(int (*)(),int (*)(), int);
  157. int kmpclear(void);
  158. int kmpkbhit(void);
  159. int kmpgetch(void);
  160. void kmpungetch(int c);
  161. int kmpsipr(int c,int (cdecl *ptr)());
  162. int (cdecl *kmpgipr(int unum))();
  163. int kmpdipr(int unum);
  164. int kmpsuspendipr(int unum);
  165. int kmpresumeipr(int unum);
  166. int kmpiprstat(int unum);
  167. int kmppush(int);
  168. int kmppop(int);
  169.  
  170. /* Routine Macros */
  171. /*
  172.     The high level Keyboard Manager functions are really just calls to
  173.     one or more of the individual modules as described in the documentation.
  174.     If you have no need for the Filter module or the redirector, you could
  175.     alter the defines below to bypass those modules.
  176. */
  177.  
  178. /*
  179.     The kminit is an example.  Notice how it initializes each of the four
  180.     modules; multiplexer, redirector, filter, and intercept processor by
  181.     passing the previous module's kbhit and getch routines.  If you just
  182.     wanted to use the intercept processor and the multiplexer you would:
  183.  
  184.         1. Initialize the multiplexer.  (kmminit(kbhit,getch))
  185.         2. Initialize the intercept processor by telling it to use the
  186.            multiplexer's input routines instead of the redirector.
  187.            (kmpinit(kmmkbhit,kmmgetch,0)).
  188. */
  189.     
  190.  
  191. #define kminit(a,b)     kmminit(a,b,kmfinit(kmmkbhit,kmmgetch,\
  192.                                     kmrinit(kmfkbhit,kmfgetch,\
  193.                                     kmpinit(kmrkbhit,kmrgetch,0))))
  194. #define kmkbhit         kmpkbhit
  195. #define kmgetch         kmpgetch
  196. #define kmungetch(a)    kmpungetch(a)
  197. #define kmopeni(a)      kmmopen(a)
  198. #define kmopeno(a)      kmropen(a)
  199. #define kmclosei()      kmmclose()
  200. #define kmcloseo()      kmrclose()
  201. #define kmsuspendi()    kmmsuspendf()
  202. #define kmsuspendo()    kmrsuspendf()
  203. #define kmresumei()     kmmresumef()
  204. #define kmresumeo()     kmrresumef()
  205. #define kmsbgr(a)       kmmsbg(a)
  206. #define kmgbgr()        kmmgbg()
  207. #define kmdbgr()        kmmdbg()
  208. #define kmsuspendbgr()  kmmsuspendbg()
  209. #define kmresumebgr()   kmmresumebg()
  210. #define kmsuir(a)       kmmsuir(a)
  211. #define kmguir(a)       kmmguir(a)
  212. #define kmduir(a)       kmmduir(a)
  213. #define kmsuspenduir(a) kmmsuspenduir(a)
  214. #define kmresumeuir(a)  kmmresumeuir(a)
  215. #define kmsuor(a)       kmrsuor(a)
  216. #define kmguor(a)       kmrguor(a)
  217. #define kmduor(a)       kmrduor(a)
  218. #define kmsuspenduor(a) kmrsuspenduor(a)
  219. #define kmresumeuor(a)  kmrresumeuor(a)
  220. #define kmsir(a,b)      kmpsipr(a,b)
  221. #define kmgir(a)        kmpgipr(a)
  222. #define kmdir(a)        kmpdipr(a)
  223. #define kmsuspendir(a)  kmpsuspendipr(a)
  224. #define kmresumeir(a)   kmpresumeipr(a)
  225. #define kmsesc(a)       kmfsesc(a)
  226. #define kmgesc()        kmfgesc()
  227. #define kmpush()        kmmpush(kmfpush(kmrpush(kmppush(0))))
  228. #define kmpop()         kmmpop(kmfpop(kmrpop(kmppop(0))))
  229.  
  230.  
  231. /* Keycode definitions */
  232.  
  233. #define KBELL           7       /* ctrl - g */
  234. #define KBS             8       /* back space */
  235. #define KTAB            9       /* tab */
  236. #define KLF             10      /* line feed */
  237. #define KFF             12      /* form feed */
  238. #define KCR             13      /* enter */
  239. #define KESC            27      /* escape */
  240. #define KBTAB           315     /* shift tab */
  241. #define KAA             330     /* alt - a   */
  242. #define KAB             348
  243. #define KAC             346
  244. #define KAD             332
  245. #define KAE             318
  246. #define KAF             333
  247. #define KAG             334
  248. #define KAH             335
  249. #define KAI             336
  250. #define KAJ             337
  251. #define KAK             338
  252. #define KAL             339
  253. #define KAM             350
  254. #define KAN             349
  255. #define KAO             324
  256. #define KAP             325
  257. #define KAQ             316
  258. #define KAR             319
  259. #define KAS             331
  260. #define KAT             320
  261. #define KAU             322
  262. #define KAV             347
  263. #define KAW             317
  264. #define KAX             345
  265. #define KAY             321
  266. #define KAZ             344
  267. #define KF1             359     /* Function key 1 */
  268. #define KF2             360
  269. #define KF3             361
  270. #define KF4             362
  271. #define KF5             363
  272. #define KF6             364
  273. #define KF7             365
  274. #define KF8             366
  275. #define KF9             367
  276. #define KF10            368
  277. #define KHOME           371     /* home */
  278. #define KUP             372     /* up arrow */
  279. #define KPGUP           373     /* page up */
  280. #define KLEFT           375     /* left arrow */
  281. #define KRIGHT          377     /* right arrow */
  282. #define KEND            379     /* end */
  283. #define KDOWN           380     /* down arrow */
  284. #define KPGDN           381     /* page down */
  285. #define KINS            382     /* Ins */
  286. #define KDEL            383     /* Del */
  287. #define KSF1            384     /* Shift F1 */
  288. #define KSF2            385
  289. #define KSF3            386
  290. #define KSF4            387
  291. #define KSF5            388
  292. #define KSF6            389
  293. #define KSF7            390
  294. #define KSF8            391
  295. #define KSF9            392
  296. #define KSF10           393
  297. #define KCF1            394     /* Ctrl - F1 */
  298. #define KCF2            395
  299. #define KCF3            396
  300. #define KCF4            397
  301. #define KCF5            398
  302. #define KCF6            399
  303. #define KCF7            400
  304. #define KCF8            401
  305. #define KCF9            402
  306. #define KCF10           403
  307. #define KAF1            404     /* Alt - F1 */
  308. #define KAF2            405
  309. #define KAF3            406
  310. #define KAF4            407
  311. #define KAF5            408
  312. #define KAF6            409
  313. #define KAF7            410
  314. #define KAF8            411
  315. #define KAF9            412
  316. #define KAF10           413
  317. #define KCPRTSC         414     /* ctrl - print screen */     
  318. #define KCLEFT          415     /* ctrl - left arrow */
  319. #define KCRIGHT         416     /* ctrl - right arrow */
  320. #define KCEND           417     /* ctrl - end */
  321. #define KCPGDN          418     /* ctrl - pgdn */
  322. #define KCHOME          419     /* ctrl - home */
  323. #define KA1             420     /* alt 1  (top of keyboard) */
  324. #define KA2             421
  325. #define KA3             422
  326. #define KA4             423
  327. #define KA5             424
  328. #define KA6             425
  329. #define KA7             426
  330. #define KA8             427
  331. #define KA9             428
  332. #define KA0             429
  333. #define KAMINUS         430     /* alt - (top of keyboard) */
  334. #define KAEQUAL         431     /* alt = */
  335. #define KCPGUP          432     /* ctrl - pgup */
  336. #define KF11            433     /* Function key 11 */
  337. #define KF12            434     
  338. #define KSF11           435     /* Shift F11 */
  339. #define KSF12           436
  340. #define KCF11           437     /* ctrl - F11 */
  341. #define KCF12           438
  342. #define KAF11           439     /* alt - F11 */
  343. #define KAF12           440
  344.  
  345. #endif  /* HIMKMH */
  346.  
  347.