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

TI-58C

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:

 X1X2X3X4X5
1X A B C D E
2X2. místoINVlnXCECLR
3XLRNx⇌tX1 / x
4XSSTSTORCLSOUČETyX
5XBSTEE (  )  ÷ 
6XGTO 7  8  9  × 
7XSBR 4  5  6  - 
8XRST 1  2  3  + 
9XR / 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íObsahVýznamKomentáře
00085+
001022
00295=spočítat výsledek
00391R / Szastavit 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 vyvolal hřích funkce, zatímco INV 2. místo (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:

 X6X7X8X9X0
1X A C E
2X INVlogCPCLR
3XPgmP → Rhříchcosopálení
4XInsCMVýborněPrdInd
5XDelEngOpravitInt| x |
6XPauzax = tNopOpDeg
7XLblx≥t∑xprůměr (x)Rad
8XSt. flgPokud flgD.MSπGrad
9XPsát siDszAdvPrtSeznam

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:

 X2X3X4
6XPgm IndVýborně IndPrd Ind
7XSTO IndRCL IndSOUČET Ind
8X GTO IndOp Ind
9XINV 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í.

Viz také

Reference