Kody klawiszy
From Atariki
| Wersja z dnia 13:14, 30 kwi 2010 0xF (Dyskusja | wkład) (to kompletna bzdura, że klawisz BREAK ma coś wspólnego z rozkazem BRK - kiedyś ją czytałem chyba w Zientarze) ← Previous diff |
Wersja z dnia 13:15, 30 kwi 2010 0xF (Dyskusja | wkład) (jak już piszemy o F1-F4, to warto podać ich kody) Next diff → |
||
| Linia 6: | Linia 6: | ||
| <tr><td>1</td><td>$01</td><td>J</td></tr> | <tr><td>1</td><td>$01</td><td>J</td></tr> | ||
| <tr><td>2</td><td>$02</td><td>;</td></tr> | <tr><td>2</td><td>$02</td><td>;</td></tr> | ||
| - | <tr><td>3</td><td>$03</td><td></td></tr> | + | <tr><td>3</td><td>$03</td><td>F1</td></tr> |
| - | <tr><td>4</td><td>$04</td><td></td></tr> | + | <tr><td>4</td><td>$04</td><td>F2</td></tr> |
| <tr><td>5</td><td>$05</td><td>K</td></tr> | <tr><td>5</td><td>$05</td><td>K</td></tr> | ||
| <tr><td>6</td><td>$06</td><td>+</td></tr> | <tr><td>6</td><td>$06</td><td>+</td></tr> | ||
| Linia 22: | Linia 22: | ||
| <tr><td>17</td><td>$11</td><td>HELP</td></tr> | <tr><td>17</td><td>$11</td><td>HELP</td></tr> | ||
| <tr><td>18</td><td>$12</td><td>C</td></tr> | <tr><td>18</td><td>$12</td><td>C</td></tr> | ||
| - | <tr><td>19</td><td>$13</td><td></td></tr> | + | <tr><td>19</td><td>$13</td><td>F3</td></tr> |
| - | <tr><td>20</td><td>$14</td><td></td></tr> | + | <tr><td>20</td><td>$14</td><td>F4</td></tr> |
| <tr><td>21</td><td>$15</td><td>B</td></tr> | <tr><td>21</td><td>$15</td><td>B</td></tr> | ||
| <tr><td>22</td><td>$16</td><td>X</td></tr> | <tr><td>22</td><td>$16</td><td>X</td></tr> | ||
Wersja z dnia 13:15, 30 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 | Kod hex | Klawisz |
| 0 | $00 | L |
| 1 | $01 | J |
| 2 | $02 | ; |
| 3 | $03 | F1 |
| 4 | $04 | F2 |
| 5 | $05 | K |
| 6 | $06 | + |
| 7 | $07 | * |
| 8 | $08 | O |
| 9 | $09 | |
| 10 | $0a | P |
| 11 | $0b | U |
| 12 | $0c | RETURN |
| 13 | $0d | I |
| 14 | $0e | - |
| 15 | $0f | = |
| 16 | $10 | V |
| 17 | $11 | HELP |
| 18 | $12 | C |
| 19 | $13 | F3 |
| 20 | $14 | F4 |
| 21 | $15 | B |
| 22 | $16 | X |
| 23 | $17 | Z |
| 24 | $18 | 4 |
| 25 | $19 | |
| 26 | $1a | 3 |
| 27 | $1b | 6 |
| 28 | $1c | ESC |
| 29 | $1d | 5 |
| 30 | $1e | 2 |
| 31 | $1f | 1 |
| 32 | $20 | , |
| 33 | $21 | SPACE |
| 34 | $22 | . |
| 35 | $23 | N |
| 36 | $24 | |
| 37 | $25 | M |
| 38 | $26 | / |
| 39 | $27 | LOGO |
| 40 | $28 | R |
| 41 | $29 | |
| 42 | $2a | E |
| 43 | $2b | Y |
| 44 | $2c | TAB |
| 45 | $2d | T |
| 46 | $2e | W |
| 47 | $2f | Q |
| 48 | $30 | 9 |
| 49 | $31 | |
| 50 | $32 | 0 |
| 51 | $33 | 7 |
| 52 | $34 | BACKSPACE |
| 53 | $35 | 8 |
| 54 | $36 | < |
| 55 | $37 | > |
| 56 | $38 | F |
| 57 | $39 | H |
| 58 | $3a | D |
| 59 | $3b | |
| 60 | $3c | CAPS |
| 61 | $3d | G |
| 62 | $3e | S |
| 63 | $3f | 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).
