
Zdroj: www.sapi.cz
Klávesnica
Klávesnica PP 01 je umiestnená na samostatnej doske SM 2257. Tá okrem obvodov klávesnice obsahuje aj indikačné LED žiadostí o prerušenie a RUN LED, zvukový výstup (akustický menič - reproduktor) a obvody pre tlačidlá pre vyvolanie prerušení INT0
a INT3
.
Klávesnica je riešená ako matica spínačov s organizáciou 16 stĺpcov a 6 riadkov. Je pripojená na systémový (služobný) PIO, kde sa výber stĺpca klávesnice robí prostredníctvom dekodéra 74154 zápisom na port PC (0C2h). Zapisované číslo stĺpca musí byť zvýšené o 16, čo vypne akustický výstup. Stav klávesov pre vybraný stĺpec sa testuje čítaním portu PB (0C1h) - ak je nejaký kláves stlačený, je príslušný bit vynulovaný. Klávesy SHIFT
a CTRL
sú pripojené samostatne na bity PB7 a PB6, takže nezáleží na vybranom stĺpci klávesnice. Špeciálne klávesy [-]
a [\]
sa musia stláčať spolu s klávesom LOCK
.
Výber stĺpca (OUT 0C2h) |
Čítanie stavu zvoleného stĺpca (IN 0C1h) | |||||||
---|---|---|---|---|---|---|---|---|
PB7 | PB6 | PB5 | PB4 | PB3 | PB2 | PB1 | PB0 | |
16+0=16 | SHIFT | CTRL | P | ` @ | 0 | NUM0 | F0 | SPACE |
16+1=17 | SHIFT | CTRL | Q | A | 1 | NUM1 | F1 | F2 |
16+2=18 | SHIFT | CTRL | R | B | 2 | NUM2 | F3 | F4 |
16+3=19 | SHIFT | CTRL | S | C | 3 | NUM3 | F5 | F6 |
16+4=20 | SHIFT | CTRL | T | D | 4 | NUM4 | F7 | F8 |
16+5=21 | SHIFT | CTRL | U | E | 5 | NUM5 | F9 | F10 |
16+6=22 | SHIFT | CTRL | V | F | 6 | NUM6 | F11 | F12 |
16+7=23 | SHIFT | CTRL | W | G | 7 | NUM7 | F13 | F14 |
16+8=24 | SHIFT | CTRL | X | H | 8 | NUM8 | RIGHT | LEFT |
16+9=25 | SHIFT | CTRL | Y | I | 9 | NUM9 | NUM+ | TAB |
16+10=26 | SHIFT | CTRL | Z | J | : * | UP | LF | |
16+11=27 | SHIFT | CTRL | [ { | K | ; + | ADR | DOWN | |
16+12=28 | SHIFT | CTRL | | \ | L | , < | NUM- | NUM* | |
16+13=29 | SHIFT | CTRL | ] } | M | - = | HOME | CR | |
16+14=30 | SHIFT | CTRL | ^ ~ | N | . > | NUM. | LOCK + [-] | NUM/ |
16+15=31 | SHIFT | CTRL | _ | O | / ? | LOCK + [\] | DEL |
Pár príkladov testu klávesov:
PP 01 ROM poskytuje rutinu pre test klávesnice bez čakania na adrese 0C05Eh
(E_InKeyV
). Rutina vráti CY=1
, ak nebol stlačený žiaden kláves. V opačnom prípade je CY=0
a v akumulátore je kód stlačeného klávesu. Písmená, číslice a symboly majú obvyklý kód podľa ASCII. Kláves CTRL
stlačený s písmenom A
až Z
vráti kód 01h
až 1Ah
. Riadiace a funkčné klávesy majú kódy podľa nasledujúcej tabuľky:
Kláves | Kód |
---|---|
LEFT | 08h |
TAB | 09h |
LF | 0Ah |
DOWN | 0Bh |
CR | 0Dh |
RIGHT | 18h |
UP | 1Ah |
ADR | 1Bh |
HOME | 1Dh |
LOCK + RIGHT | 1Eh |
LOCK + RIGHT-DOWN | 1Fh |
DEL | 7Fh |
F0 | 81h |
F1 | 0F1h |
F2 | 0F2h |
F3 | 0F3h |
F4 | 0F4h |
F5 | 0F5h |
F6 | 0F6h |
F7 | 0F7h |
F8 | 0F8h |
F9 | 0F9h |
F10 | 0FAh |
F11 | 0FBh |
F12 | 0FCh |
F13 | 0FDh |
F14 | 0FEh |
SHIFT + F1 | 0E1h |
SHIFT + F2 | 0E2h |
SHIFT + F3 | 0E3h |
SHIFT + F4 | 0E4h |
SHIFT + F5 | 0E5h |
SHIFT + F6 | 0E6h |
SHIFT + F7 | 0E7h |
SHIFT + F8 | 0E8h |
SHIFT + F9 | 0E9h |
SHIFT + F10 | 0EAh |
SHIFT + F11 | 0EBh |
SHIFT + F12 | 0ECh |
SHIFT + F13 | 0EDh |
SHIFT + F14 | 0EEh |