| Keyboard Mappings&Constants | |
| Variables | |
| cpct_keyboardStatusBuffer | 10-bytes (80-bits) array containing pressed / not pressed status of all the keys / buttons the Amstrad CPC can manage (up to 80). |
| Enumerations | |
| cpct_keyID | Enumerated type with symbols for all the 80 possible Key/Joy definitions. |
extern u8 cpct_keyboardStatusBuffer[10]
10-bytes (80-bits) array containing pressed / not pressed status of all the keys / buttons the Amstrad CPC can manage (up to 80). Each bit represents 1 key, with the meaning 0=pressed, 1=not pressed. This array is filled up using cpct_scanKeyboard or cpct_scanKeyboard_f functions, and then it can be easily read with cpct_isKeyPressed function. To know more about how this 10 bytes are distributed, consult Keyboard and cpct_scanKeyboard
Enumerated type with symbols for all the 80 possible Key/Joy definitions.
Figure 1 shows the layout for an Amstrad CPC Keyboard, along with its firmware Key Codes. Firmware Key Codes (FKCs) are used in table 1 to map them to cpct_keyID enum values. Please, take into account that FKCs are not used in CPCtelera. Do not make comparisons or store values based on firmware values unless you know what you are doing. To check key / joy statuses, you should use cpct_keyID enum values from table 1.
__
| 0|
ENC* —— —— ——
AMSTRAD CPC464 RGB color | 8| 9| 1|
—— —— ——
__ __ __ __ __ __ __ __ __ __ __ __ __ __ ___ | 2|
|66|64|65|57|56|49|48|41|40|33|32|25|24|16|79 | ——
—— —— —— —— —— —— —— —— —— —— —— —— —— —— ——— —— —— ——
|68 |67|59|58|50|51|43|42|35|34|27|26|17| | |10|11| 3|
——— —— —— —— —— —— —— —— —— —— —— —— —— = 18 | —— —— ——
| 70 |69|60|61|53|52|44|45|37|36|29|28|19| | |20|12| 4|
———— —— —— —— —— —— —— —— —— —— —— —— —— ———— —— —— ——
| 21 |71|63|62|55|54|46|38|39|31|30|22| 21 | |13|14| 5|
————— —— —— —— —— —— —— —— —— —— —— —— —————— —— —— ——
| 47 |23| |15| 7| 6|
—————————————————————————— —— —— —— ——
JOY 0 ___ JOY 1 ___
| 72| | 48|
——|———————|—— ——|———————|——
|74| 76| 77|75| |50| 52| 53|51|
——|———————|—— ——|———————|——
| 73| | 49|
——— ———
====================================================================
Figure 1. Amstrad CPC Keyoard Layout with Firmware Key Codes (FKCs) FKC | cpct_keyID || FKC | cpct_keyID || FKC | cpct_keyID
--------------------------------------------------------------------
0 | Key_CursorUp || 27 | Key_P || 54 | Key_B
| || | || | Joy1_Fire3
1 | Key_CursorRight || 28 | Key_SemiColon || 55 | Key_V
2 | Key_CursorDown || 29 | Key_Colon || 56 | Key_4
3 | Key_F9 || 30 | Key_Slash || 57 | Key_3
4 | Key_F6 || 31 | Key_Dot || 58 | Key_E
5 | Key_F3 || 32 | Key_0 || 59 | Key_W
6 | Key_Enter || 33 | Key_9 || 60 | Key_S
7 | Key_FDot || 34 | Key_O || 61 | Key_D
8 | Key_CursorLeft || 35 | Key_I || 62 | Key_C
9 | Key_Copy || 36 | Key_L || 63 | Key_X
10 | Key_F7 || 37 | Key_K || 64 | Key_1
11 | Key_F8 || 38 | Key_M || 65 | Key_2
12 | Key_F5 || 39 | Key_Comma || 66 | Key_Esc
13 | Key_F1 || 40 | Key_8 || 67 | Key_Q
14 | Key_F2 || 41 | Key_7 || 68 | Key_Tab
15 | Key_F0 || 42 | Key_U || 69 | Key_A
16 | Key_Clr || 43 | Key_Y || 70 | Key_CapsLock
17 | Key_OpenBracket || 44 | Key_H || 71 | Key_Z
18 | Key_Return || 45 | Key_J || 72 | Joy0_Up
19 | Key_CloseBracket|| 46 | Key_N || 73 | Joy0_Down
20 | Key_F4 || 47 | Key_Space || 74 | Joy0_Left
21 | Key_Shift || 48 | Key_6 || 75 | Joy0_Right
| || | Joy1_Up ||
22 | Key_BackSlash || 49 | Key_5 || 76 | Joy0_Fire1
| || | Joy1_Down ||
23 | Key_Control || 50 | Key_R || 77 | Joy0_Fire2
| || | Joy1_Left || |
24 | Key_Caret || 51 | Key_T || 78 | Joy0_Fire3
| || | Joy1 Right ||
25 | Key_Hyphen || 52 | Key_G || 79 | Key_Del
| || | Joy1_Fire1 ||
26 | Key_At || 53 | Key_F ||
| || | Joy1_Fire2 ||
--------------------------------------------------------------------
Table 1. cpct_keyIDs defined for each possible key, ordered by FKCs10-bytes (80-bits) array containing pressed / not pressed status of all the keys / buttons the Amstrad CPC can manage (up to 80).
extern u8 cpct_keyboardStatusBuffer[10]