home *** CD-ROM | disk | FTP | other *** search
/ Boldly Go Collection / version40.iso / TS / 17A / DRWIN101.ZIP / KB.HPP < prev    next >
C/C++ Source or Header  |  1991-11-23  |  7KB  |  221 lines

  1. #ifndef __KB_HPP
  2. #define __KB_HPP
  3.  
  4. /****************************************************************************/
  5. /*  ASCII control characters...                                             */
  6. /****************************************************************************/
  7. #ifndef __ASCII
  8. #define __ASCII
  9. #define NUL    0x00    /*null character*/
  10. #define SOH    0x01    /*start of header*/
  11. #define STX    0x02    /*start of text*/
  12. #define ETX    0x03    /*end of text*/
  13. #define EOT    0x04    /*end of transmission*/
  14. #define ENQ    0x05    /*enquiry*/
  15. #define ACK    0x06    /*acknowledge*/
  16. #define BEL    0x07    /*bell, beep*/
  17. #define BS     0x08    /*backspace*/
  18. #define HT     0x09    /*horizontal tab*/
  19. #define TAB    0x09    /*horizontal tab, common name*/
  20. #define LF     0x0A    /*linefeed*/
  21. #define VT     0x0B    /*vertical tab*/
  22. #define FF     0x0C    /*formfeed*/
  23. #define CR     0x0D    /*carriage return, enter*/
  24. #define SO     0x0E    /*shift out*/
  25. #define SI     0x0F    /*shift in*/
  26. #define DC0    0x10    /*device control 0*/
  27. #define DLE    0x10    /*data link escape*/
  28. #define DC1    0x11    /*device control 1*/
  29. #define XON    0x11    /*transmit on*/
  30. #define DC2    0x12    /*device control 2*/
  31. #define DC3    0x13    /*device control 3*/
  32. #define XOFF   0x13    /*transmit off*/
  33. #define DC4    0x14    /*device control 4*/
  34. #define NAK    0x15    /*negative acknowledge*/
  35. #define SYN    0x16    /*synchronous idle*/
  36. #define ETB    0x17    /*end transmission block*/
  37. #define CAN    0x18    /*cancel*/
  38. #define EM     0x19    /*end of medium*/
  39. #define SUB    0x1A    /*substitute*/
  40. #define ESC    0x1B    /*escape*/
  41. #define FS     0x1C    /*file separator*/
  42. #define GS     0x1D    /*group separator*/
  43. #define RS     0x1E    /*record separator*/
  44. #define US     0x1F    /*unit separator*/
  45. #define SPC    0x20    /*space, blank*/
  46. #define DEL    0x7F    /*delete character*/
  47. #endif                                 /*if ascii not already defined*/
  48.  
  49.  
  50. /****************************************************************************/
  51. /*  The following special keys are returned by the getkey() function.       */
  52. /*  The keys are simply the second (scan) code with 256 added.              */
  53. /****************************************************************************/
  54. #ifndef __KBKEYS
  55. #define __KBKEYS
  56. #define A_ESC      (-0x01)
  57. #define A_1        (-0x78)
  58. #define A_2        (-0x79)
  59. #define A_3        (-0x7A)
  60. #define A_4        (-0x7B)
  61. #define A_5        (-0x7C)
  62. #define A_6        (-0x7D)
  63. #define A_7        (-0x7E)
  64. #define A_8        (-0x7F)
  65. #define A_9        (-0x02)  //0x80
  66. #define A_0        (-0x03)  //0x81
  67. #define A_MINUS    (-0x04)  //0x82
  68. #define A_EQUAL    (-0x05)  //0x83
  69. #define A_BS       (-0x0E)
  70. #define S_TAB      (-0x0F)
  71. #define A_Q        (-0x10)
  72. #define A_W        (-0x11)
  73. #define A_E        (-0x12)
  74. #define A_R        (-0x13)
  75. #define A_T        (-0x14)
  76. #define A_Y        (-0x15)
  77. #define A_U        (-0x16)
  78. #define A_I        (-0x17)
  79. #define A_O        (-0x18)
  80. #define A_P        (-0x19)
  81. #define A_LTBRKT   (-0x1A)
  82. #define A_RTBRKT   (-0x1B)
  83. #define A_ENTER    (-0x1C)
  84. #define A_A        (-0x1E)
  85. #define A_S        (-0x1F)
  86. #define A_D        (-0x20)
  87. #define A_F        (-0x21)
  88. #define A_G        (-0x22)
  89. #define A_H        (-0x23)
  90. #define A_J        (-0x24)
  91. #define A_K        (-0x25)
  92. #define A_L        (-0x26)
  93. #define A_SEMICOL  (-0x27)
  94. #define A_QUOTE    (-0x28)
  95. #define A_TILDE    (-0x29)
  96. #define A_BSLASH   (-0x2B)
  97. #define _F11       (-0x45)  //0xD9
  98. #define _F12       (-0x46)  //0xDA
  99. #define S_F11      (-0x07)  //0x87
  100. #define S_F12      (-0x08)  //0x88
  101. #define C_F11      (-0x09)  //0x89
  102. #define C_F12      (-0x0A)  //0x8A
  103. #define A_F11      (-0x0B)  //0x8B
  104. #define A_F12      (-0x0C)  //0x8C
  105. #define A_Z        (-0x2C)
  106. #define A_X        (-0x2D)
  107. #define A_C        (-0x2E)
  108. #define A_V        (-0x2F)
  109. #define A_B        (-0x30)
  110. #define A_N        (-0x31)
  111. #define A_M        (-0x32)
  112. #define A_COMMA    (-0x33)
  113. #define A_PERIOD   (-0x34)
  114. #define A_SLASH    (-0x35)
  115. #define A_TAB      (-0x2A)  //0xA5
  116.  
  117. #define _F1        (-0x3B)
  118. #define _F2        (-0x3C)
  119. #define _F3        (-0x3D)
  120. #define _F4        (-0x3E)
  121. #define _F5        (-0x3F)
  122. #define _F6        (-0x40)
  123. #define _F7        (-0x41)
  124. #define _F8        (-0x42)
  125. #define _F9        (-0x43)
  126. #define _F10       (-0x44)
  127. #define _HOME      (-0x47)
  128. #define _UPAR      (-0x48)
  129. #define _PGUP      (-0x49)
  130. #define _LTAR      (-0x4B)
  131. #define _RTAR      (-0x4D)
  132. #define _END       (-0x4F)
  133. #define _DNAR      (-0x50)
  134. #define _PGDN      (-0x51)
  135. #define _INS       (-0x52)
  136. #define _DEL       (-0x53)
  137. #define S_F1       (-0x54)
  138. #define S_F2       (-0x55)
  139. #define S_F3       (-0x56)
  140. #define S_F4       (-0x57)
  141. #define S_F5       (-0x58)
  142. #define S_F6       (-0x59)
  143. #define S_F7       (-0x5A)
  144. #define S_F8       (-0x5B)
  145. #define S_F9       (-0x5C)
  146. #define S_F10      (-0x5D)
  147. #define C_F1       (-0x5E)
  148. #define C_F2       (-0x5F)
  149. #define C_F3       (-0x60)
  150. #define C_F4       (-0x61)
  151. #define C_F5       (-0x62)
  152. #define C_F6       (-0x63)
  153. #define C_F7       (-0x64)
  154. #define C_F8       (-0x65)
  155. #define C_F9       (-0x66)
  156. #define C_F10      (-0x67)
  157. #define A_F1       (-0x68)
  158. #define A_F2       (-0x69)
  159. #define A_F3       (-0x6A)
  160. #define A_F4       (-0x6B)
  161. #define A_F5       (-0x6C)
  162. #define A_F6       (-0x6D)
  163. #define A_F7       (-0x6E)
  164. #define A_F8       (-0x6F)
  165. #define A_F9       (-0x70)
  166. #define A_F10      (-0x71)
  167. #define C_PRTSC    (-0x72)
  168. #define C_LTAR     (-0x73)
  169. #define C_RTAR     (-0x74)
  170. #define C_END      (-0x75)
  171. #define C_PGDN     (-0x76)
  172. #define C_HOME     (-0x77)
  173. #define C_PGUP     (-0x06)  //0x84
  174.  
  175. #define C_A        0x01
  176. #define C_B        0x02
  177. #define C_C        0x03
  178. #define C_D        0x04
  179. #define C_E        0x05
  180. #define C_F        0x06
  181. #define C_G        0x07
  182. #define C_H        0x08
  183. #define C_I        0x09
  184. #define C_J        0x0A
  185. #define C_K        0x0B
  186. #define C_L        0x0C
  187. #define C_M        0x0D
  188. #define C_N        0x0E
  189. #define C_O        0x0F
  190. #define C_P        0x10
  191. #define C_Q        0x11
  192. #define C_R        0x12
  193. #define C_S        0x13
  194. #define C_T        0x14
  195. #define C_U        0x15
  196. #define C_V        0x16
  197. #define C_W        0x17
  198. #define C_X        0x18
  199. #define C_Y        0x19
  200. #define C_Z        0x1A
  201. #endif                                 /*if keys not already defined*/
  202.  
  203.  
  204. #define KB_INT     0x16                //keyboard interrupt
  205.  
  206. class KB
  207. {
  208. public:
  209.   int hit(void);
  210.   int operator * () { return hit(); }  //non-zero if keyboard hit, else 0
  211.   int operator ! () { return !hit(); } //opposite of above operator
  212.   char Get(void);                      //get key (with codes #define'd above)
  213.   KB& operator >> (char& c) { c = Get(); return *this; }
  214.   KB& operator << (char& c);           //insert into kb buffer
  215. };   //class KB
  216.  
  217.  
  218. extern KB kbin;
  219.  
  220. #endif
  221.