Kody klawiszy

Z Atariki mirror
Przejdź do nawigacjiPrzejdź do wyszukiwania

"Surowe" kody klawiszy generowane przez klawiaturę. W dalszej fazie obróbki system operacyjny przetwarza większość z nich na kody ATASCII.

Kod dec Kod hex Klawisz Klawisz
z SHIFT
Klawisz
z CONTROL
Klawisz
z SHIFT+CONTROL
0 $00 l L niedostępne
1 $01 j J niedostępne
2 $02 ; : niedostępne
3 $03 F1 - kursor w górę kursor do górnego marginesu przełączanie blokady klawiatury niedostępne
4 $04 F2 - kursor w dół kursor do dolnego marginesu przełączanie wyświetlania obrazu niedostępne
5 $05 k K niedostępne
6 $06 + \ strzałka w lewo niedostępne
7 $07 * ^ strzałka w prawo niedostępne
8 $08 o O
9 $09
10 $0a p P
11 $0b u U
12 $0c RETURN
13 $0d i I
14 $0e - _ strzałka w górę
15 $0f = strzałka w dół
16 $10 v V niedostępne
17 $11 HELP niedostępne
18 $12 c C niedostępne
19 $13 F3 - kursor w lewo kursor do lewego marginesu przełączanie kliku klawiatury niedostępne
20 $14 F4 - kursor w prawo kursor do prawego marginesu przełączanie zestawów znaków niedostępne
21 $15 b B niedostępne
22 $16 x X niedostępne
23 $17 z Z niedostępne
24 $18 4 $
25 $19
26 $1a 3 # EOF
27 $1b 6 &
28 $1c ESC
29 $1d 5 %
30 $1e 2 " BELL
31 $1f 1 ! przełączanie blokady E:
32 $20 , [
33 $21 SPACE
34 $22 . ]
35 $23 n N
36 $24
37 $25 m M
38 $26 / ?
39 $27 LOGO
40 $28 r R
41 $29
42 $2a e E
43 $2b y Y
44 $2c TAB Set - ustawienie pozycji tabulacji Clr - skasowanie pozycji tabulacji
45 $2d t T
46 $2e w W
47 $2f q Q
48 $30 9 (
49 $31
50 $32 0 )
51 $33 7 '
52 $34 BACKSPACE Delete
53 $35 8 @
54 $36 < Clear
55 $37 > Insert
56 $38 f F
57 $39 h H
58 $3a d D
59 $3b
60 $3c CAPS przełączenie uppercase ustawienie znaków kontrolnych
61 $3d g G
62 $3e s S
63 $3f a 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).

Analogicznie rzecz ma się z detekcją kombinacji CONTROL+1 zatrzymującej lub wznawiającej przewijanie zawartości edytora - w przypadku wciśnięcia tej kombinacji zmieniana jest zawartość rejestru SSFLAG (767, $02FF) z $00 na $FF i na odwrót.

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 innego przerwania IRQ, niż pozostałe klawisze. Systemowa procedura obsługi przerwania klawisza BREAK wektoryzowana przez VBRKKEY (566, $236) wpisuje wartość 0 do rejestru IRQSTAT (17, $11) zwanego również BRKKEY, procedury obsługi SIO oraz edytora ekranowego badają i modyfikują stan tego rejestru (SIO ustala $FF, zaś edytor $80), a informację o wciśnięciu klawisza BREAK zwracają za pomocą statusu operacji I/O.

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.

0 1 2 3 4 5 6 7 8 9 A B C D E F
0 L J ; F1 F2 K + * O P U RET I - =
1 V HELP C F3 F4 B X Z 4 3 6 ESC 5 2 1
2 , SPC . N M / INV R E Y TAB T W Q
3 9 0 7 BKSP 8 < > F H D CAPS G S A

Linki