ScanCode Show delves the system BIOS for keyboard scan and ASCII codes
April 16, 2006
ScanCode Show reports scan and ASCII codes for the now-ancient DOS operating system, as returned whenever the int 16h BIOS function is invoked, as well as the value left in the keyboard BIOS, when any valid key combination is used. While not that useful to most modern programmers, it's a neat little toy for the curious, and illustrates the interaction between low-level code, hardware and operates in ways that the Windows and Mac OS's simply cannot.
ScanCode Show is an old program (I wrote it in 1995), coded in assembler, and exhibits just how light such a program can be - the calling keystroke is accurately identified; scan and ASCII codes are presented in hex and decimal, their combined AX value and the BIOS value in hex, in the form of a scrolling display that may be printed out at any time. This, in only 3042 bytes of code.
For years, ScanCode Show was bundled with editions of Scott Mueller's Upgrading and Repairing PCs (the authoratative reference on this subject, currently in its 17th edition). Amazingly, some still find it useful, whether because they're still reading this data area using some programming language or other, or because they're learning assembler ...
Feel free to examine the source code and adapt it to your own programs. Note that it won't port directly into MASM, NASM or other assemblers. It was written in WASM, the Wolfware Assember by Eric Tauck. It's a now-free assembler few people know about, and it works for small DOS-only projects ... More on it, and other assemblers, elsewhere.
Download the program from http://freeware.ars-informatica.ca/dosutil.htm