[XT] [AT]
Expects: AH    01H
Returns: ZF    ZR = no keys in buffer
NZ = key is ready
AH    (if ZR) scan code
AL    (if ZR) ASCII character code or extended ASCII keystroke
Info: Checks to see if a key is available in the keyboard buffer, and
if so, returns its keycode in AX.  It DOES NOT remove the
keystroke from the buffer.

This can be used to avoid dropping into a BIOS loop while waiting
for a keystroke.  For instance:

waitForKey: mov   ah,01H
int   16H
jnz   gotKey       ;jmp if key is ready
call  doSomething  ;do processing while waiting
jmp   waitForKey   ;loop back and check for a key

gotKey:     mov ah, 00H        ;key is ready, get it
int 16H            ;now process the key

Notes:   Extended key filtering:  For compatibility with older 83-key
'boards, this converts duplicated keys into their older
equivalent keys.  Use INT 16H 11H to get unfiltered key codes.

See Also: INT 16H (BIOS keyboard services)
- -

INT 16H 01H: Query Keyboard Status / Preview Key