Scancode Processing
The scancodes for some keys do not have an ASCII equivalent. Int 09h processes such scancodes in one of the following ways, depending on the key:
- Int 09h may discard the scancode (no keycode data is entered into the keyboard input buffer). For example, if a scancode for a keyboard state-defining key ([LSHF], [RSHF], [Ctrl], [Alt], [Caps Lock], [Num Lock], or [Scroll Lock]) is received, the state of the keyboard is updated, but the scancode is discarded.
- Int 09h may enter a two-byte pair "XXh/00h" into the keyboard input buffer. "XXh" may be the original scancode, or it may be a translated hexadecimal code for the key or key combination pressed. Int 16h processes these keycodes differently depending on which service is called. If a value is returned, it will be AX = XX00h.
- Int 09h may enter a two-byte pair "XX/F0h" with XX non-zero into the keyboard input buffer. This occurs on certain ALT keycodes and Int 16h processes these keycodes differently depending on which service is called. If a value is returned, it will be AX = XX00h.
- If the [ON] key is pressed with the machine running, an ON keycode is placed into the keybuffer. The Int 16 services invoke deep sleep when the [ON] keycode is detected. No keycode is returned to the calling routine.
- There are some HP palmtop keys that are not PC Compatible. These include FILER, CCMAIL, APPT, PHONE, MEMO, 123, CALC, and MORE. There are special key codes for these keys, which are not part of the PC-compatible keycode set. These keycodes are passed on to the calling application the same as PC-compatible keycodes. See the keycode table in "Scancode Conversion Tables" for a complete list of HP palmtop keycodes.