KEYS.BAS
Library to check for keys being pressed. It provide functions which are much faster than INKEY$, take less memory and does not require the Sinclair ROM to be present.
Functions
Functions provided in this library:
Scan codes
This library define some global constants named Scan codes which are just UInteger constant.
Each key has assigned a unique Scan code. The ZX Spectrum Keyboard is divided in 8 Rows half. Each Row half comprises 5 keys (from the left or right side of the speccy QWERTY keyboard).
For example letters H, J, K L and ENTER belong to row half #2 (see below).
It is possible, for some routines, to use more than one scan code simultaneously, with bOR
operator.
For example KEYH bOR KEYL
means Key H and/or Key L.
The only restriction is that both keys must be in the same Row Half.
These are all the scan codes available and their values.
Scan Codes
1st Keyboard ROW half
const KEYB AS UInteger = 07F10h
const KEYN AS UInteger = 07F08h
const KEYM AS UInteger = 07F04h
const KEYSYMBOL AS UInteger = 07F02h
const KEYSPACE AS UInteger = 07F01h
2nd Keyboard ROW half
const KEYH AS UInteger = 0BF10h
const KEYJ AS UInteger = 0BF08h
const KEYK AS UInteger = 0BF04h
const KEYL AS UInteger = 0BF02h
const KEYENTER AS UInteger = 0BF01h
REM 3rd Keyboard ROW half
const KEYY AS UInteger = 0DF10h
const KEYU AS UInteger = 0DF08h
const KEYI AS UInteger = 0DF04h
const KEYO AS UInteger = 0DF02h
const KEYP AS UInteger = 0DF01h
REM 4th Keyboard ROW half
const KEY6 AS UInteger = 0EF10h
const KEY7 AS UInteger = 0EF08h
const KEY8 AS UInteger = 0EF04h
const KEY9 AS UInteger = 0EF02h
const KEY0 AS UInteger = 0EF01h
REM 5th Keyboard ROW half
const KEY5 AS UInteger = 0F710h
const KEY4 AS UInteger = 0F708h
const KEY3 AS UInteger = 0F704h
const KEY2 AS UInteger = 0F702h
const KEY1 AS UInteger = 0F701h
REM 6th Keyboard ROW half
const KEYT AS UInteger = 0FB10h
const KEYR AS UInteger = 0FB08h
const KEYE AS UInteger = 0FB04h
const KEYW AS UInteger = 0FB02h
const KEYQ AS UInteger = 0FB01h
REM 7th Keyboard ROW half
const KEYG AS UInteger = 0FD10h
const KEYF AS UInteger = 0FD08h
const KEYD AS UInteger = 0FD04h
const KEYS AS UInteger = 0FD02h
const KEYA AS UInteger = 0FD01h
REM 8th Keyboard ROW half
const KEYV AS UInteger = 0FE10h
const KEYC AS UInteger = 0FE08h
const KEYX AS UInteger = 0FE04h
const KEYZ AS UInteger = 0FE02h
const KEYCAPS AS UInteger = 0FE01h