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