Kody klawiszy

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
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
0L
1J
2;
3
4
5K
6+
7*
8O
9
10P
11U
12RETURN
13I
14-
15=
16V
17HELP
18C
19
20
21B
22X
23Z
244
25
263
276
28ESC
295
302
311
32,
33
34
35N
36
37M
38/
39LOGO
40R
41
42E
43Y
44TAB
45T
46W
47Q
489
49
500
517
52BACKSPACE
538
54<
55>
56F
57H
58D
59
60CAPS
61G
62S
63A

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).

Pozostałe klawisze: patrz KBCODE i CONSOL.

Personal tools