Kody klawiszy
From Atariki
Wersja z dnia 20:38, 13 lis 2010 Mono (Dyskusja | wkład) (uzupełnienie niektórych kombinacji z CONTROL i SHIFT) ← Previous diff |
Wersja z dnia 17:34, 24 lis 2010 Mono (Dyskusja | wkład) Next diff → |
||
Linia 2: | Linia 2: | ||
<table border=1 cellpadding=5> | <table border=1 cellpadding=5> | ||
- | <tr><td><b>Kod dec</b></td><td><b>Kod hex</b></td><td><b>Klawisz</b></td><td><b>Klawisz z SHIFT</b></td><td><b>Klawisz z CONTROL</b></td></tr> | + | <tr><td><b>Kod dec</b></td><td><b>Kod hex</b></td><td><b>Klawisz</b></td><td><b>Klawisz<br/>z SHIFT</b></td><td><b>Klawisz<br/>z CONTROL</b></td></tr> |
<tr><td>0</td><td>$00</td><td>l</td><td>L</td><td></td></tr> | <tr><td>0</td><td>$00</td><td>l</td><td>L</td><td></td></tr> | ||
<tr><td>1</td><td>$01</td><td>j</td><td>J</td><td></td></tr> | <tr><td>1</td><td>$01</td><td>j</td><td>J</td><td></td></tr> |
Wersja z dnia 17:34, 24 lis 2010
"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 |
0 | $00 | l | L | |
1 | $01 | j | J | |
2 | $02 | ; | : | |
3 | $03 | F1 | ||
4 | $04 | F2 | ||
5 | $05 | k | K | |
6 | $06 | + | \ | strzałka w lewo |
7 | $07 | * | ^ | strzałka w prawo |
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 | |
17 | $11 | HELP | ||
18 | $12 | c | C | |
19 | $13 | F3 | ||
20 | $14 | F4 | ||
21 | $15 | b | B | |
22 | $16 | x | X | |
23 | $17 | z | Z | |
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).
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 IRQSTATS (17=$11), procedury obsługi SIO badają i zmieniają stan tego rejestru, 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).