The keyboard driver only allows one channel to be open to it at a time.
A channel can be opened by giving the device name
"KEYBOARD:"
, any filename or unit number being ignored. If
there is already a channel open to the keyboard driver then an error
(.2NDCH
) will be returned. No EXOS variables need to be set
up before opening the channel.
The keyboard device has an interrupt routine which scans the keyboard matrix every video frame (50 times per second). This detects key presses, translates them into ASCII codes, and buffers a single character.
It supports programming of the eight function keys. Each one can be programmed separately for shifted and unshifted use giving effectively sixteen function keys. If the string programmed into any one of these function keys is of zero length then instead of returning characters this function key will cause a software interrupt when it is pressed.
The eight function keys also each return a specific code if used with the CTRL or ALT keys, giving effectively another 16 functions.
The keyboard driver treats the joystick as if it were four cursor keys and provides diagonal movement by alternating two cursor codes. Autorepeat is supported on all keys. Both the delay until autorepeat begins, and the autorepeat rate can be altered.
The keyboard provides audible feedback by triggering the sound device to produce a click whenever a key is pressed. This can be disabled by the user.