Internal code | Key | Raw reading |
00 | V | @0/7 |
---|
01 | F | @0/6 |
---|
02 | R | @0/5 |
---|
03 | [\|/] | @0/4 |
---|
04 | 4 | @0/3 |
---|
05 | 1 | @0/2 |
---|
06 | 7 | @0/1 |
---|
07 | B | @1/7 |
---|
08 | G | @1/6 |
---|
09 | T | @1/5 |
---|
0A | [/|\] | @1/4 |
---|
0B | P | @1/3 |
---|
0C | , | @1/2 |
---|
0D | N | @2/7 |
---|
0E | H | @2/6 |
---|
0F | Y | @2/5 |
---|
|
Internal code | Key | Raw reading |
10 | [<-] | @2/4 |
---|
11 | O | @3/2 |
---|
12 | M | @3/7 |
---|
13 | S | @3/6 |
---|
14 | U | @3/5 |
---|
15 | [->] | @3/4 |
---|
16 | [SPC] | @4/7 |
---|
17 | K | @4/6 |
---|
18 | I | @4/5 |
---|
19 | [ENTER] | @5/7 |
---|
1A | L | @5/6 |
---|
1B | 0 | @6/7 |
---|
1C | Z | #0/7 |
---|
1D | A | #0/6 |
---|
1E | Q | #0/5 |
---|
1F | [CAL] | #0/4 |
---|
|
Internal code | Key | Raw reading |
20 | 5 | #0/3 |
---|
21 | 2 | #0/2 |
---|
22 | 8 | #0/1 |
---|
23 | [+/-] | #0/0 |
---|
24 | X | #1/7 |
---|
25 | S | #1/6 |
---|
26 | W | #1/5 |
---|
27 | [BASIC] | #1/4 |
---|
28 | 6 | #1/3 |
---|
29 | 3 | #1/2 |
---|
2A | 9 | #1/1 |
---|
2B | . | #1/0 |
---|
2C | C | #2/7 |
---|
2D | D | #2/6 |
---|
2E | E | #2/5 |
---|
2F | [DEF] | #2/4 |
---|
|
Internal code | Key | Raw reading |
30 | * | #2/3 |
---|
31 | - | #2/2 |
---|
32 | / | #2/1 |
---|
33 | + | #2/0 |
---|
34 | = | #3/7 |
---|
35 | [X->M] | #3/6 |
---|
36 | [EXP] | #3/5 |
---|
37 | [Y^X] | #3/4 |
---|
38 | [SQR] | #3/3 |
---|
39 | [X2] | #3/2 |
---|
3A | ( | #3/1 |
---|
3B | ) | #3/0 |
---|
3C | [M+] | #4/7 |
---|
3D | | ?#4/6? |
---|
3E | [HEX] | #4/5 |
---|
3F | [DEG] | #4/4 |
---|
|
Internal code | Key | Raw reading |
40 | [LN] | #4/3 |
---|
41 | [LOG] | #4/2 |
---|
42 | [1/X] | #4/1 |
---|
43 | [STAT] | #4/0 |
---|
44 | [RM] | #5/7 |
---|
45 | [SHIFT] | #5/6 |
---|
46 | [HYP] | #5/5 |
---|
47 | [SIN] | #5/4 |
---|
48 | [COS] | #5/3 |
---|
49 | [TAN] | #5/2 |
---|
4A | [F<->E] | #5/1 |
---|
4B | [C-CE] | #5/0 |
---|
4C | [BRK] | |
---|
|
Si plusieurs touches peuvent être
appuyées en même temps (par exemple dans un jeu), il
faut lire le clavier directement en utilisant les ports.
Évidement, pour diminuer le
nombre de pattes nécessaire au scrutage du clavier, une sorte
de multiplexage est utilisé : le clavier est découpé
en zones que l'on sélectionnent en activant leur bit. Ce bit
est le premier chiffre de 'Raw reading'. Un '#'
indique que le port B est utilisé
pour faire se multiplexage. Si elle contient un '@', il faudra
utiliser le port A.
Une fois le latch initialisé, on
peut lire la valeur par un INA . Si la touche est appuyée,
le bit correspondant au second chiffre sera à 1.
|
If many keys can be pressed in the same time (for example, in a game), I/O ports must be used.
To reduce the number of input chanels, the keyboard is multipexed : it's splited in areas that can be selected but setting their bit to 1. This bit is the first number of 'Raw reading'. A '#' means to use the B Port and with '@', it's the A port.
After setting the latch, the value is read by INA . If the key is pressed, the bit numbered by the second value is set.
|