C Language and Libraries Help (clang.hlp) (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
Keyboard Scan Codes (SCAN.H)
                                             Up Contents Index Back
─────C/C++ Language─────────────────────────────────────────────────────────
 
  /* SCAN.H - Constants for keyboard scan codes. They can be
   * processed by:
   *    AH returned by BIOS function 16h, services 00h, 01h, 10h, 11h
   *    High byte returned by DOS _bios_keybrd( _KEYBRD_READY );
   *                              _bios_keybrd( _NKEYBRD_READY );
   *                              _bios_keybrd( _KEYBRD_READ );
   *                              _bios_keybrd( _NKEYBRD_READ );
   */
 
  enum SCAN
  {
 
      /* Scan numbers follow keyboard layout of original PC. */
 
      /* Top row of keys */
      scanESC = 0x01,
      scan1, scan2, scan3, scan4, scan5, scan6, scan7, scan8, scan9, scan0,
      scanMINUS, scanEQUAL, scanBKSP,
 
      /* Second row of keys */
      scanTAB = 0x0F,
      scanQ, scanW, scanE, scanR, scanT, scanY, scanU, scanI, scanO, scanP,
      scanLBRACKET, scanRBRACKET, scanENTER,
 
      /* Third row of keys */
      scanCTRL = 0x1D,
      scanA, scanS, scanD, scanF, scanG, scanH, scanJ, scanK,
      scanSEMICOLON, scanFQUOTE, scanBQUOTE,
 
      /* Fourth row of keys */
      scanLSHIFT = 0x2A, scanBACKSLASH,
      scanZ, scanX, scanC, scanV, scanB, scanN, scanM,
      scanCOMMA, scanPERIOD, scanSLASH, scanRSHIFT, scanPRTSC,
 
      /* Fifth row of keys */
      scanALT = 0x38, scanSPACE, scanCAPS,
 
      /* Function keys */
      scanF1 = 0x3B, scanF2, scanF3, scanF4, scanF5,
      scanF6,        scanF7, scanF8, scanF9, scanF10,
 
      /* Numeric keypad */
      scanNUM = 0x45,  scanSCROLL,
      scanHOME, scanUP,     scanPGUP,  scanGMINUS,
      scanLEFT, scanCENTER, scanRIGHT, scanGPLUS,
      scanEND,  scanDOWN,   scanPGDN,
      scanINS,  scanDEL,
 
      /* 84-key and 101-key keyboards only */
      scanSYSREQ = 0x54,
 
      /* 101-key keyboard only */
      scanF11 = 0x57, scanF12,
 
      /* Introductory values to test whether scan is for function key */
      scanINTRO  = 0,         // For keys common to all keyboards
      scanINTRO2 = 0xE0       // For keypad and other keys unique to
                              //   101-key keyboard
  };
                                    -♦-