home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / win3 / patches / symantec / rtlinc.exe / CONIO.H < prev    next >
C/C++ Source or Header  |  1993-08-13  |  9KB  |  302 lines

  1. /*_ CONIO.H   Modified by Joe Huffman October 19, 1990 */
  2. /* Copyright (C) 1988-1989 by Walter Bright    */
  3. /* All Rights Reserved                    */
  4. /* Written by Walter Bright                */
  5. /* $Revision:   1.2  $ */
  6.  
  7. #ifndef __CONIO_H
  8. #define __CONIO_H 1
  9.  
  10. #if __cplusplus
  11. extern "C" {
  12. #endif
  13.  
  14. #ifdef __STDC__
  15. #define __CDECL
  16. #define __STDCALL
  17. #else
  18. #define __CDECL __cdecl
  19. #define __STDCALL __stdcall
  20. #endif
  21.  
  22. #if __OS2__ && __INTSIZE == 4
  23. #define __CLIB    __STDCALL
  24. #else
  25. #define __CLIB    __CDECL
  26. #endif
  27.  
  28. #ifndef __STDIO_H
  29. #include <stdio.h>
  30. #endif
  31.  
  32. /****************************************************************************
  33. The return value from getch() and getche() for the second byte if the first
  34. byte is 0.
  35. ****************************************************************************/
  36. #define _KB_F1          59  /* Function key F1. */
  37. #define _KB_F2          60
  38. #define _KB_F3          61
  39. #define _KB_F4          62
  40. #define _KB_F5          63
  41. #define _KB_F6          64
  42. #define _KB_F7          65
  43. #define _KB_F8          66
  44. #define _KB_F9          67
  45. #define _KB_F10          68
  46.  
  47. #define _KB_HOME      71
  48. #define _KB_UP          72
  49. #define _KB_PGUP      73
  50. #define _KB_LEFT      75
  51. #define _KB_RIGHT     77
  52. #define _KB_END          79
  53. #define _KB_DOWN      80
  54. #define _KB_PGDN      81
  55. #define _KB_INS          82
  56. #define _KB_BACK_TAB  15
  57.  
  58. #define _KB_SF1          84  /* Shift F1. */
  59. #define _KB_SF2          85
  60. #define _KB_SF3          86
  61. #define _KB_SF4          87
  62. #define _KB_SF5          88
  63. #define _KB_SF6          89
  64. #define _KB_SF7          90
  65. #define _KB_SF8          91
  66. #define _KB_SF9          92
  67. #define _KB_SF10      93
  68.  
  69. #define _KB_CF1          94  /* Control F1. */
  70. #define _KB_CF2          95
  71. #define _KB_CF3          96
  72. #define _KB_CF4          97
  73. #define _KB_CF5          98
  74. #define _KB_CF6          99
  75. #define _KB_CF7          100
  76. #define _KB_CF8          101
  77. #define _KB_CF9          102
  78. #define _KB_CF10      103
  79.  
  80. #define _KB_AF1          104  /* Alt F1. */
  81. #define _KB_AF2          105
  82. #define _KB_AF3          106
  83. #define _KB_AF4          107
  84. #define _KB_AF5          108
  85. #define _KB_AF6          109
  86. #define _KB_AF7          110
  87. #define _KB_AF8          111
  88. #define _KB_AF9          112
  89. #define _KB_AF10      113
  90.  
  91. #define _KB_DEL          83
  92. #define _KB_CPGUP     132 /* Control PgUp */
  93. #define _KB_CLEFT     115 /* Control left cursor key. */
  94. #define _KB_CRIGHT    116 /* Control right cursor key. */
  95. #define _KB_CEND      117 /* Control End */
  96. #define _KB_CPGDN     118 /* Control PgDn */
  97. #define _KB_CHOME     119 /* Control Home */
  98. #define _KB_A1          120 /* Alt 1 */
  99. #define _KB_A2          121
  100. #define _KB_A3          122
  101. #define _KB_A4          123
  102. #define _KB_A5          124
  103. #define _KB_A6          125
  104. #define _KB_A7          126
  105. #define _KB_A8          127
  106. #define _KB_A9          128
  107. #define _KB_A0          129 /* Alt 0 */
  108. #define _KB_AMINUS    130 /* Alt keypad '-'. */
  109. #define _KB_APLUS     131 /* Alt keypad '+'. */
  110.  
  111. #if M_UNIX || M_XENIX
  112. extern char *ttyname(int file_handle);
  113.  
  114. /* Array of '\0' terminated strings for mapping function keys to strings. */
  115. /* See KEYBOARD(HW) in UNIX manual. */
  116. typedef char _strmap_t[512];
  117. extern int __cdecl _kb_getmapstr(_strmap_t dest_map);
  118. extern int __cdecl _kb_setmapstr(_strmap_t new_map);
  119.  
  120. #define MIOC    ('k'<<8)
  121.  
  122. #define GIO_KEYMAP      (MIOC | 6)    /* Get keyboard map table */
  123. #define PIO_KEYMAP      (MIOC | 7)    /* Set keyboard map table */
  124.  
  125. #define    KBIO_SETMODE    (13|MIOC)    /* Put AT keyboard into XT | AT mode */
  126. #define    KBIO_GETMODE    (14|MIOC)    /* Get the AT/XT keyboard mode */
  127.  
  128. /* keyboard mode -- set by KBIO_{S | G}ETMODE */
  129. #define    KBM_XT        0    /* XT keyboard mode    */
  130. #define    KBM_AT        1    /* AT keyboard mode    */
  131. #define    KBM_OTHER    2    /* Other keyboard mode */
  132.  
  133.  
  134. #define    KIOC        ('K' << 8)
  135. #define    KDDISPTYPE    (KIOC | 1)    /* return display type to user    */
  136. #define KDMAPDISP    (KIOC | 2)    /* map display into user space    */
  137. #define KDUNMAPDISP    (KIOC | 3)    /* unmap display from user space*/
  138. #define KDGKBMODE    (KIOC | 6)    /* get keyboard translation mode*/
  139. #define KDSKBMODE    (KIOC | 7)    /* set keyboard translation mode*/
  140. #define KBMKTONE    (KIOC | 8)    /* sound tone */
  141.  
  142. /* Used with KD{G | S}ETMODE */
  143. #define K_RAW    0            /* send raw scan codes        */
  144. #define K_XLATE    1            /* translates scan codes to ascii*/
  145.  
  146. #define KDADDIO        (KIOC | 11)    /* add I/O address to list    */
  147. #define KDDELIO        (KIOC | 12)    /* delete I/O address from list    */
  148.  
  149. #define KDDISPINFO    (KIOC | 18)    /* Get display start and size.     */
  150.  
  151. #define KIOCSOUND    (KIOC | 63)    /* start sound generation    */ 
  152. #define KDGKBTYPE    (KIOC | 64)    /* get keyboard type        */
  153. #define KDGETLED    (KIOC | 65)    /* get current led states    */
  154. #define KDSETLED    (KIOC | 66)    /* set current led states    */
  155.  
  156. /* Use with ioctl(0,KDDISPINFO,&buf) */
  157. struct kd_dispinfo
  158. {    char *vaddr;
  159.     unsigned long physaddr;
  160.     unsigned long size;
  161. };
  162.  
  163. /* Use with ioctl(0,KDDISPTYPE,&buf) */
  164. struct kd_disparam
  165. {    long type;
  166. #define KD_MONO     1   /* Possible values for type. */
  167. #define KD_HERCULES 2
  168. #define KD_CGA      3
  169. #define KD_EGA      4
  170. #define KD_VGA      5
  171.     char *addr;
  172. };
  173.  
  174. /* EGA control */
  175. #define EGAIOC    ('E' << 8)
  176. #define EGAMODE (EGAIOC | 1)
  177. #define EGAIO    (EGAIOC | 2)
  178. #define EGA_GET (EGAIOC | 3)
  179. #define EGA_IOPRIVL (EGAIOC | 4)
  180.  
  181. /* VGA control */
  182. #define VGAIOC    ('E' << 8)
  183. #define VGAMODE (VGAIOC | 65)
  184. #define VGAIO    (VGAIOC | 66)
  185. #define VGA_GET (VGAIOC | 67)
  186. #define VGA_IOPRIVL (VGAIOC | 68)
  187.  
  188. /****************************************************************************
  189. These strings are returned by default from the function keys under SCO UNIX
  190. with fgetc(stdin).  If you use getch(), getche(), or kbhit() the keyboard
  191. is put into raw mode and fgetc(stdin) should not be used.
  192.  
  193. getch() and getche() return DOS compatible sequences.  I.e. if a function
  194. key the first byte will be 0 and the next will be a number corresponding 
  195. to actual key pressed.
  196. ****************************************************************************/ 
  197.  
  198. #define _KB_F1_STR    "\033[M"      /* Key F1 */
  199. #define _KB_F2_STR    "\033[N"
  200. #define _KB_F3_STR    "\033[O"
  201. #define _KB_F4_STR    "\033[P"
  202. #define _KB_F5_STR    "\033[Q"
  203. #define _KB_F6_STR    "\033[R"
  204. #define _KB_F7_STR    "\033[S"
  205. #define _KB_F8_STR    "\033[T"
  206. #define _KB_F9_STR    "\033[U"
  207. #define _KB_F10_STR   "\033[V"
  208. #define _KB_F11_STR   "\033[W"
  209. #define _KB_F12_STR   "\033[X"
  210.  
  211. #define _KB_SF1_STR   "\033[Y"      /* Shifted Key F1 */
  212. #define _KB_SF2_STR   "\033[Z"
  213. #define _KB_SF3_STR   "\033[a"
  214. #define _KB_SF4_STR   "\033[b"
  215. #define _KB_SF5_STR   "\033[c"
  216. #define _KB_SF6_STR   "\033[d"
  217. #define _KB_SF7_STR   "\033[e"
  218. #define _KB_SF8_STR   "\033[f"
  219. #define _KB_SF9_STR   "\033[g"
  220. #define _KB_SF10_STR  "\033[h"
  221. #define _KB_SF11_STR  "\033[i"
  222. #define _KB_SF12_STR  "\033[j"
  223.  
  224. #define _KB_CF1_STR   "\033[k"      /* Control key F1 */
  225. #define _KB_CF2_STR   "\033[l"
  226. #define _KB_CF3_STR   "\033[m"
  227. #define _KB_CF4_STR   "\033[n"
  228. #define _KB_CF5_STR   "\033[o"
  229. #define _KB_CF6_STR   "\033[p"
  230. #define _KB_CF7_STR   "\033[q"
  231. #define _KB_CF8_STR   "\033[r"
  232. #define _KB_CF9_STR   "\033[s"
  233. #define _KB_CF10_STR  "\033[t"
  234. #define _KB_CF11_STR  "\033[u"
  235. #define _KB_CF12_STR  "\033[v"
  236.  
  237. #define _KB_CSF1_STR  "\033[w"      /* Control and shifted key F1 */
  238. #define _KB_CSF2_STR  "\033[x"
  239. #define _KB_CSF3_STR  "\033[y"
  240. #define _KB_CSF4_STR  "\033[z"
  241. #define _KB_CSF5_STR  "\033[@"
  242. #define _KB_CSF6_STR  "\033[["
  243. #define _KB_CSF7_STR  "\033[\\"
  244. #define _KB_CSF8_STR  "\033[]"
  245. #define _KB_CSF9_STR  "\033[^"
  246. #define _KB_CSF10_STR "\033[_"
  247. #define _KB_CSF11_STR "\033[`"
  248. #define _KB_CSF12_STR "\033[{"
  249. #define _KB_HOME_STR  "\033[H"
  250.  
  251. #define _KB_UP_STR    "\033[A"      /* Cursor key up arrow */
  252. #define _KB_PGUP_STR  "\033[I"      /* PgUp. */
  253. #define _KB_MINUS_STR "-"      /* Keypad '-' key. */
  254. #define _KB_LEFT_STR  "\033[D"      /* Cursor key left arrow */
  255. #define _KB_5_STR     "\033[E"      /* Keypad '5' key. */
  256. #define _KB_RIGHT_STR "\033[C"      /* Cursor key right arrow */
  257. #define _KB_PLUS_STR  "+"      /* Keypad '+' key. */
  258. #define _KB_END_STR   "\033[F"
  259. #define _KB_DOWN_STR  "\033[B"      /* Cursor key down arrow */
  260. #define _KB_PGDN_STR  "\033[G"      /* PgDn. */
  261. #define _KB_INS_STR   "\033[L"
  262.  
  263. #define _KB_5          76  /* Keypad 5. */
  264. #define _KB_PLUS      78  /* Keypad '+'. */
  265. #define _KB_MINUS     74  /* Keypad '-'. */
  266.  
  267. #define _KB_CSF1      104 /* Control Shift F1. */
  268. #define _KB_CSF2      105
  269. #define _KB_CSF3      106
  270. #define _KB_CSF4      107
  271. #define _KB_CSF5      108
  272. #define _KB_CSF6      109
  273. #define _KB_CSF7      110
  274. #define _KB_CSF8      111
  275. #define _KB_CSF9      112
  276. #define _KB_CSF10     113
  277.  
  278. #define _KB_F11          133 /* F11 for Extended keyboards (101-104 keys). */
  279. #define _KB_F12          134
  280. #define _KB_SF11      135 /* Shift F11 for Extended keyboards. */
  281. #define _KB_SF12      136
  282. #define _KB_CF11      137 /* Control F11 for Extended keyboards. */
  283. #define _KB_CF12      138
  284. #define _KB_CSF11     139 /* Control Shift F11 for Extended keyboards. */
  285. #define _KB_CSF12     140
  286.  
  287. #else /* M_UNIX || M_XENIX */
  288.  
  289. /* DOS only */
  290. unsigned char    __cdecl inp(unsigned);
  291. unsigned char    __cdecl outp(unsigned,char);
  292. int        __cdecl inpw(unsigned);
  293. int        __cdecl outpw(unsigned,unsigned);
  294.  
  295. #endif    /* M_UNIX || M_XENIX */
  296.  
  297. #if __cplusplus
  298. }
  299. #endif
  300. #endif /* __CONIO_H */
  301.  
  302.