Kody klawiszy
From Atariki
Wersja z dnia 08:19, 23 kwi 2010 KMK (Dyskusja | wkład) (Kody Klawiszy moved to Kody klawiszy: no ale dlaczego z dużej litery?) ← Previous diff |
Wersja z dnia 08:28, 23 kwi 2010 KMK (Dyskusja | wkład) (red., linki itp.) Next diff → |
||
Linia 1: | Linia 1: | ||
- | 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. | + | "Surowe" kody klawiszy generowane przez klawiaturę. W dalszej fazie obróbki system operacyjny przetwarza większość z nich na kody [[ATASCII]]. |
<table border=1 cellpadding=5> | <table border=1 cellpadding=5> | ||
Linia 69: | Linia 69: | ||
</table> | </table> | ||
- | System operacyjny bada wciśnięcie klawisza HELP i w zależności od tego ustawia flagę HLPFLG (732=$2DC; zapisywany jest tam kod kombinacji klawisza HELP z ewentualnymi klawiszami SHIFT lub CONTROL). | + | 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. |
- | Klawisze F1..F4 są dostępne w egzemplarzu 1200XL. | + | 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). |
- | 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=$2FC) 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=$208). | + | Klawisze F1..F4 są dostępne w modelu [[1200XL]]. |
- | Praktycznie użycie tej kombinacji może służyć do "oszukania" systemu i anulowania informacji o ostatnio wciśniętej kombinacji klawiszy. | + | |
- | Stan klawiszy konsoli START, SELECT i OPTION odzwierciedlany jest za pomocą bitów 0..2 w rejestrze CONSOL (53279=$D01F). | + | 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). | 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). | + | 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 [[Rejestry POKEY-a#SKSTAT|SKSTAT]] (53775, $D20F). |
+ | |||
+ | Pozostałe klawisze: patrz [[Rejestry POKEY-a#KBCODE|KBCODE]] i [[Rejestry GTIA#CONSOL|CONSOL]]. | ||
[[Kategoria:Niezb%C4%99dnik_kodera]] | [[Kategoria:Niezb%C4%99dnik_kodera]] |
Wersja z dnia 08:28, 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 | |
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).