Programování klávesových zkratek - Keystroke programming
Programování klávesových zkratek popisuje konkrétní způsob programování, při kterém je každé stisknutí klávesy na zařízení nebo aplikaci nějakým způsobem zaznamenáno a poté přehráno, aby bylo možné zaznamenané stisknutí kláves opakovat několikrát. Programování klávesových zkratek je nejčastěji, ale ne výlučně v programovatelné kalkulačky, ale existují například i softwarové aplikace programovatelné stiskem kláves Vim (textový editor)[1]
Příklad: Kalkulačky TI
Texaské nástroje TI-58 /TI-58C /TI-59 kalkulačky byly programovatelné a ukládání programů mělo podobu sekvence kódů, které (většinou) odpovídaly poloze kláves na klávesnici kalkulačky. Zde je zjednodušené schéma základního rozložení kláves:
X1 | X2 | X3 | X4 | X5 | |
---|---|---|---|---|---|
1X | A | B | C | D | E |
2X | 2. místo | INV | lnX | CE | CLR |
3X | LRN | x⇌t | x² | √X | 1 / x |
4X | SST | STO | RCL | SOUČET | yX |
5X | BST | EE | ( | ) | ÷ |
6X | GTO | 7 | 8 | 9 | × |
7X | SBR | 4 | 5 | 6 | - |
8X | RST | 1 | 2 | 3 | + |
9X | R / S | 0 | . | +/- | = |
Každému klíči je přiřazen dvoumístný kód; pro většinu (ale ne všechny) klíče pochází desítková číslice z čísla řádku (jak je uvedeno dole vlevo v tabulce) a jednotková číslice pochází z čísla sloupce (jak je uvedeno v horní části tabulky).
Nyní zvažte velmi jednoduchý program, který k zobrazenému číslu přidá 2 a poté se zastaví. Program se zadává od umístění programu 000 a vypadá takto:
Umístění | Obsah | Význam | Komentáře |
---|---|---|---|
000 | 85 | + | |
001 | 02 | 2 | |
002 | 95 | = | spočítat výsledek |
003 | 91 | R / S | zastavit program |
Chcete-li použít tento program, zadejte číslo n pro operaci stiskněte RST tedy zajistit, aby aktuální umístění programu bylo 000 R / S zahájit provádění. Když se program zastaví (což by se u tak jednoduchého programu mělo stát docela rychle), na displeji se zobrazí číslo n + 2.
Vidíte, že kódy 85, 95 a 91 odpovídají pozicím označených kláves + , = a R / S na mřížce výše, ale kód pro 2 není 83, jak byste očekávali od pozice mřížky, ale 02. Tento poslední kód byl vybrán, aby byl snáze srozumitelný člověku, který se pokouší přečíst program. Neexistuje žádný řádek 0, takže kódy 00 .. 09 se používají k reprezentaci klíčů 0 .. 9 .
Interpretace závislé na kontextu
Tyto kalkulačky TI umožňovaly adresovat až 100 datových paměťových míst s čísly 00 až 99 (některé modely měly nižší limit než tento). Sekvence kláves jako STO 4 2 (uložit aktuálně zobrazené číslo do paměti 42) by bylo zakódováno jako 42 42. V tomto případě je první 42 klíčový kód pro STO klíč, ale druhý 42 není klíčový kód, ale číslo paměťového registru. Kalkulačka to ví jako takové interpretovat, protože to je to, co se musí řídit kódem pro STO klíč.
Adresy programů byly 3 číslice, což potenciálně umožňovalo programům sestávat až z 1000 kroků, číslovaných od 000 do 999 (i když ve skutečnosti žádný z vyrobených modelů toto maximum neumožňoval). Například odbočka GTO 3 4 5 (bezpodmínečná větev do umístění 345) by byla zakódována jako 61 03 45. V tomto případě je stovka číslice cíle větve v jednotkové číslici druhého bajtu instrukce (po operačním kódu), s číslicí nula desítek; a zbývající číslice jsou ve třetím bajtu instrukce.
Sekvence kódu jako 61 11 na druhé straně představuje stisknutí kláves GTO A, což je větev do místa označeného symbolický štítek A. Kalkulačka může říci, že se jedná o symbolickou větev, spíše než větev na očíslované místo, protože desítková číslice bajtu bezprostředně následující po operačním kódu není nula.
Většinu kláves na klávesnici lze použít jako symbolické štítky. Například sekvence jako GTO STO a GTO GTO jsou legitimní, pokud STO a GTO byly ve skutečnosti definovány jako štítky někde v programu.
Modifikační klávesy
Většina kláves měla více funkcí, podle toho, zda INV nebo 2. místo bylo stisknuto předem. INV vyvolal „inverzní“ (cokoli to znamenalo) následující funkce a byl zaznamenán v programu jako samostatný stisk klávesy (kód 22), zatímco 2. místo vyvolal úplně jinou funkci, která byla zapsána na čelní panel klávesnice těsně nad klávesou. Například stisknutím 2. místo x² vyvolal hřích funkce, zatímco INV 2. místo x² (nebo INV hřích) vám dal arcsine.
Kód této alternativní funkce je odvozen od kódu původní klíčové funkce přidáním 5 k číslici jednotek (bez nést na desítky číslic). Klíčové kódy tedy odpovídají poloze 2. místo samotný klíč (21 a 26) se nikdy nepoužívají jako operační kódy. Zde je tabulka kódů vyrobených s 2. místo předpona:
X6 | X7 | X8 | X9 | X0 | |
---|---|---|---|---|---|
1X | A | B´ | C | D´ | E |
2X | INV | log | CP | CLR | |
3X | Pgm | P → R | hřích | cos | opálení |
4X | Ins | CM | Výborně | Prd | Ind |
5X | Del | Eng | Opravit | Int | | x | |
6X | Pauza | x = t | Nop | Op | Deg |
7X | Lbl | x≥t | ∑x | průměr (x) | Rad |
8X | St. flg | Pokud flg | D.MS | π | Grad |
9X | Psát si | Dsz | Adv | Prt | Seznam |
Sloučené stisknutí kláves
The Ind klíč umožňuje indirection: kdekoli je povolen odkaz na paměťový registr nebo umístění programu, lze tento klíč použít k načtení skutečné hodnoty z paměťového registru. Například posloupnost kláves RCL Ind 1 0 znamená načíst hodnotu v paměťovém registru 10 a použít tuto hodnotu postupně jako číslo paměťového registru, jehož obsah se má načíst jako aktuální operand. V tomto případě však Ind nelze kódovat jako kód 40, protože kódová sekvence 43 40 by byla interpretována jako RCL 4 0 , ne RCL Ind.
Ale kvůli použití kódů 00 .. 09 pro 0 .. 9 klíče, kódy 62-64, 72-74, 82-84 a 92 jsou k dispozici pro další použití. Většina z nich je tedy přerozdělena tak, aby reprezentovala op Ind sekvence:
X2 | X3 | X4 | |
---|---|---|---|
6X | Pgm Ind | Výborně Ind | Prd Ind |
7X | STO Ind | RCL Ind | SOUČET Ind |
8X | GTO Ind | Op Ind | |
9X | INV SBR |
Tedy klíčová sekvence RCL Ind 1 0 bude zakódováno jako 73 10.
Všimněte si použití kódu 92 pro INV SBR (návrat z podprogramu); to nebylo nutné z důvodu nejednoznačnosti, ale bylo to provedeno pro úsporu místa s tak běžnou posloupností.