BIOS Keyboard Functions

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search

Keyboard Manager

 BB00 KM_INITIALIZE
 BB03 KM_RESET

Keyboard Queue

 BB06 KM_WAIT_CHAR     out: A=char (waits until valid char)  ;\function keys
 BB09 KM_READ_CHAR     out: A=char, or cy=0=none             ;/expanded
 BB0C KM_CHAR_RETURN   in: A=char (writeback max one char to keybuf)
 BB18 KM_WAIT_KEY      out: A=char (waits until key pressed) ;\function keys
 BB1B KM_READ_KEY      out: A=char, or cy=0=none             ;/not expanded
 BD3D KM_FLUSH_664     calls KM_READ_CHAR until cy=0 (664 and up only)

Keyboard Key States

 BB1E KM_TEST_KEY      in: A=keyno, out: nz=pressed, C=ctrl/shift flags
 BB24 KM_GET_JOYSTICK  out: H=joystick 0, L=joystick 1
 BB21 KM_GET_LOCKS     out: H=caps lock (caps), L=shift lock (ctrl+caps)
 BD3A KM_SET_LOCKS_664 in: H=caps lock (caps), L=shift lock (664 and up only)

Keyboard Character Translation

 BB27 KM_SET_TRANSLATE in: A=keyno, B=char (normal)
 BB2A KM_GET_TRANSLATE in: A=keyno, out: A=char (normal)
 BB2D KM_SET_SHIFT     in: A=keyno, B=char (with shift)
 BB30 KM_GET_SHIFT     in: A=keyno, out: A=char (with shift)
 BB33 KM_SET_CTRL      in: A=keyno, B=char (with control)
 BB36 KM_GET_CTRL      in: A=keyno, out: A=char (with control)

Keyboard Function Key Translation

 BB0F KM_SET_EXPAND    in: B=code, HL=ptr to new string, C=length
 BB12 KM_GET_EXPAND    in: A=code (0-1F,80-9F), L=index, out:A=char, cy,zf
 BB15 KM_EXP_BUF_RESET in: de=begin, hl=length of buffer, out: cy: 1=okay

Keyboard Repeat Enable/Delay

 BB39 KM_SET_REPEAT    in: A=keyno, B=repeat flag (FFh=on)
 BB3C KM_GET_REPEAT    in: A=keyno, out: nz=repeat
 BB3F KM_SET_DELAY     in: H=1st delay, L=repeat delay  ;HL=1E02h=default
 BB42 KM_GET_DELAY     out: H=1st delay, L=repeat delay

Keyboard Break

 BB45 KM_ARM_BREAK     in: de=procedure, c=ROM config
 BB48 KM_DISARM_BREAK  in: none
 BB4B KM_BREAK_EVENT
 BDEE HOOK_KM_TEST_BREAK
 BDF4 HOOK_KM_SCAN_KEYS_664 (664 and up only)