home *** CD-ROM | disk | FTP | other *** search
- // ScanCode.lib - Return the keyboard scan code for a character
- // ver.1
- //
- //**** GetScanCode(): Return scan code for any ascii character
- // SYNTAX: byte GetScanCode(byte AsciiChar)
- // WHERE: AsciiChar: ascii representation of character, such as 'A'
- // RETURN: Byte representing the scan code for that character
- //
- //
-
- gAsciiScans = "\x1E\x30\x2E\x20\x12\x21\x22\x23\x17\x24\x25\x26\x32\x31\x18\x19\x10\x13\x1F\x14\x16\x2F\x11\x2D\x15\x2C";
- gNumberScans = "\x0B\x02\x03\x04\x05\x06\x07\x08\x09\x0A";
-
- GetScanCode(pCharCode)
- {
- if ( 'A' <= toupper(pCharCode) && toupper(pCharCode) <= 'Z' )
- return gAsciiScans[toupper(pCharCode)-'A'];
- if ( '0' <= pCharCode && pCharCode <= '9' )
- return gNumberScans[pCharCode - '0'];
- switch ( pCharCode ) {
- case '\r': return '\x1C';
- case '\t': return '\x0F';
- case '\b': return '\x0E';
- case '~':
- case '`': '\x29';
- case '!': return GetScanCode('1');
- case '@': return GetScanCode('2');
- case '#': return GetScanCode('3');
- case '$': return GetScanCode('4');
- case '%': return GetScanCode('5');
- case '^': return GetScanCode('6');
- case '&': return GetScanCode('7');
- case '*': return GetScanCode('8');
- case '(': return GetScanCode('9');
- case ')': return GetScanCode('0');
- case '_':
- case '-': return '\x0C';
- case '+':
- case '=': return '\x0D';
- case '|':
- case '\\': return '\x2B';
- case '{':
- case '[': return '\x1A';
- case '}':
- case ']': return '\x1B';
- case ':'
- case ';' return '\x27';
- case '\"':
- case '\'': return '\x28';
- case '<':
- case ',': return '\x33';
- case '>':
- case '.': return '\x34';
- case '?':
- case '/': return '\x35';
- case '\033': return '\1';
- }
- return('\0');
- }
-