Kody klawiszy
From Atariki
Wersja z dnia 08:28, 23 kwi 2010 KMK (Dyskusja | wkład) (red., linki itp.) ← Previous diff |
Wersja z dnia 11:56, 23 kwi 2010 Mono (Dyskusja | wkład) (spacja i .) Next diff → |
||
Linia 36: | Linia 36: | ||
<tr><td>31</td><td>1</td></tr> | <tr><td>31</td><td>1</td></tr> | ||
<tr><td>32</td><td>,</td></tr> | <tr><td>32</td><td>,</td></tr> | ||
- | <tr><td>33</td><td></td></tr> | + | <tr><td>33</td><td>SPACE</td></tr> |
- | <tr><td>34</td><td></td></tr> | + | <tr><td>34</td><td>.</td></tr> |
<tr><td>35</td><td>N</td></tr> | <tr><td>35</td><td>N</td></tr> | ||
<tr><td>36</td><td></td></tr> | <tr><td>36</td><td></td></tr> |
Wersja z dnia 11:56, 23 kwi 2010
"Surowe" kody klawiszy generowane przez klawiaturę. W dalszej fazie obróbki system operacyjny przetwarza większość z nich na kody ATASCII.
Kod (dec) | Klawisz |
0 | L |
1 | J |
2 | ; |
3 | |
4 | |
5 | K |
6 | + |
7 | * |
8 | O |
9 | |
10 | P |
11 | U |
12 | RETURN |
13 | I |
14 | - |
15 | = |
16 | V |
17 | HELP |
18 | C |
19 | |
20 | |
21 | B |
22 | X |
23 | Z |
24 | 4 |
25 | |
26 | 3 |
27 | 6 |
28 | ESC |
29 | 5 |
30 | 2 |
31 | 1 |
32 | , |
33 | SPACE |
34 | . |
35 | N |
36 | |
37 | M |
38 | / |
39 | LOGO |
40 | R |
41 | |
42 | E |
43 | Y |
44 | TAB |
45 | T |
46 | W |
47 | Q |
48 | 9 |
49 | |
50 | 0 |
51 | 7 |
52 | BACKSPACE |
53 | 8 |
54 | < |
55 | > |
56 | F |
57 | H |
58 | D |
59 | |
60 | CAPS |
61 | G |
62 | S |
63 | A |
Wciśnięcie odpowiedniego klawisza z klawiszem SHIFT zwiększa kod o 64 ($40), a z klawiszem CONTROL o 128 ($80). Niektóre klawisze są niedostępne w kombinacji z SHIFT+CONTROL wciśniętymi równocześnie.
System operacyjny bada wciśnięcie klawisza HELP i w zależności od tego ustawia flagę HLPFLG (732, $02DC; zapisywany jest tam kod kombinacji klawisza HELP z ewentualnymi klawiszami SHIFT lub CONTROL).
Klawisze F1..F4 są dostępne w modelu 1200XL.
Układ sprzętowy rozpoznaje wciśnięcie kombinacji klawiszy SHIFT+CONTROL+A, aczkolwiek system operacyjny rezerwuje jej kod (255, $FF) dla oznaczenia w rejestrze KBCODES (764, $02FC) stanu, kiedy żaden klawisz nie został wciśnięty. W konsekwencji wciśnięcie tej kombinacji może być wykrywane jedynie bezpośrednio w rejestrze KBCODE (53769, $D209) lub przez własny handler przerwania klawiatury wektoryzowany przez VKEY (520, $0208). Praktycznie użycie tej kombinacji może służyć do "oszukania" systemu i anulowania informacji o ostatnio wciśniętej kombinacji klawiszy.
Wciśnięcie klawisza BREAK powoduje wygenerowanie przerwania IRQ ze skasowanym bitem B w rejestrze stanu procesora (analogiczne przerwanie generowane jest za pomocą rozkazu procesora BRK, lecz bit B jest wtedy ustawiony). Systemowa procedura obsługi przerwania klawisza BREAK wektoryzowana przez VBRKKEY (566=$236) ustawia bit 7 w rejestrze IRQSTATS (17=$11). Przerwanie rozkazu BRK jest wektoryzowane przez VBREAK (518=$206).
Dodatkowa informacja o wciśnięciu bądź zwolnieniu klawisza SHIFT lub dowolnego innego klawisza (prócz BREAK, CONTROL i klawiszy konsoli) może być sprawdzana w rejestrze SKSTAT (53775, $D20F).