TI59R revival - upgrade kalkulátoru TI-59
>>> NEODLADĚNO <<<
Upgrade kalkulátoru
TI-59 s procesorem ATmega644P.
Přesnost výpočtů na 19 platných číslic, exponent 4 číslice.
EDIT: Pokračováním vývoje je kalkulačka ET-58.
TI59R je dalším mezikrokem ve vývoji kalkulátoru, pokračováním po předešlém kalkulátoru TI58T. Jedná se opět o vývojový meziprototyp, není proto řešena hardwarová stránka (řeším software), dokonce jsem využil krabičku z předešlého TI58T včetně nevzhledného potisku ;-) . Snahou bylo maximálně napodobit funkci originálního TI-59 a jeho funkce rozšířit, aniž by byla původní funkčnost dotčena. Vývoj tohoto prototypu je zhruba dokončený, plánovaná funkčnost je implementována, ovšem kalkulátor nebyl důkladně testován a některé funkce mohou být chybné. S důkladným testováním se počítá až u koncové verze kalkulátoru. Poté plánuji doladění i meziprototypů, aby mohly být používány jako odlehčené funkční kalkulátory. K tomuto projektu se později plánuji opět vrátit. Dále pokračuji prototypem s procesorem STM32, jako další mezikrok.
Tento prototyp používá procesor ATmega644P s 64 KB ROM (software používá 50 KB ROM, zbytek ROM je použit k uložení knihovního modulu). EEPROM o velikosti 2 KB je z poloviny využita pro uživatelský program (1000 kroků), druhá polovina slouží k uchování buď uživatelského programu nebo uživatelských registrů (pomocí funkce Write). RAM 4 KB je využita 1 KB pro uživatelské registry (100 registrů, každý registr 10 bajtů), 3/4 KB pro diskové buffery a část RAM je využita pro konstanty. Zbylých asi 700 bajtů RAM je plánováno využít pro generátor obrazovky (výstup tiskárny na televizor nebo monitor), ale tato funkce zatím nebyla implementována.
Kalkulátor byl programován v C (WinAVR). Stejný kód je použit jednak u emulátoru a jednak bude použit i u koncové verze kalkulačky, proto už zdrojový kód nemůže být poskytnutý veřejně, ale jen jako přeložený binární soubor (firmware).
Pozn.: Některé obrázky zde uvedené zvětšíte kliknutím
Vlastnosti:
Na rozdíl od originálního kalkulátoru bylo dosaženo podstatně vyšší přesnosti a rozsahu exponentu (originální kalkulátor počítá na 13 platných číslic s exponentem 2 číslice). Některé funkce byly vylepšené - např. tlačítkem '=' se opakuje poslední aritmetická operace. Program je uložen v paměti EEPROM (1000 bajtů) a tak je uchován i po vypnutí napájení. Paměť RAM (4 KB) je využita z části pro uživatelské paměťové buňky. Paměťové buňky nesdílí prostor s pamětí programu a proto není třeba měnit mezi nimi rozdělení (vždy je přístupné vše). Každá paměťová buňka má 10 bajtů, z toho 8 bajtů je mantisa se znaménkem a 2 bajty exponent s biasem 0x8000. Displej lze snadno vyměnit buď za modrý, nebo zelený.
Kalkulátor je k dispozici též ve formě emulátoru (používá stejný firmware):
Displej:
Displej je dvouřádkový. V dolním řádku probíhá výpočet a programování, horní řádek slouží k indikaci přepínačů a k zobrazení sousedních kroků paměti během programování. Zobrazené přepínače: Deg/Rad/Grd úhlová míra (Deg se nezobrazuje), DEC/HEX/OCT/BIN číselná soustava (DEC se nezobrazuje), Fx pevná desetinná místa 0..8 (9 vypnuto se nezobrazuje), Eng/EE exponenciální mód (Eng technický mód, kdy je exponent násobkem 3), 2n/3r přepínač funkcí, Inv inverzní operace. Na poslední pozici 1. řádku se zobrazuje aktuálně prováděná aritmetická operace.
Zapojení:
Konektor USB je využit pouze k napájení kalkulačky +5V. Výstup probíhá na 2-řádkový LCD displej. V této verzi není počítáno s baterií, proto displej používá podsvícení. SD karta je připojena přes odpory sloužící jako převodník mezi úrovněmi +5V a +3.3V. Je připravena podpora mono výstupu na televizor přes cinch konektor (signály VIDEO a SYN), video výstup nebyl zatím implementován softwarem.
Konstrukce:
Pro maximální zjednodušení konstrukce byly jako tlačítka využity mikrospínače bez hmatníku, pouze vystupující nad plochu kalkulátoru. Displej se připojuje přes pinovou lištu, aby byl snadný přístup k desce. Umožňuje to snadnou výměnu displeje - byl testován modrý i zelený LCD displej. Plošný spoj stačí jednostranný, s několika drátovými propojkami. Velikost plošného spoje je podřízena omezení rozměru Eagle Free a použitému plošnému spoji 10x7.5 cm.
dolní strana:
horní strana (stačí drátové propojky):
osazení:
potisk:
štítky pod tlačítky - lze použít klávesnici emulátoru:
osazený plošný spoj:
Deska je přišroubována ke spodnímu dílu krabičky:
displej je do desky připojen pomocí konektoru a připevněn distančním sloupkem:
Následující popis platí jak pro reálný kalkulátor, tak i pro emulátor. U emulátoru je namísto SD karty použita aktuální složka. Emulátor proto musí být používán ve složce, do které bude mít povolena zápisová práva.
Po zapnutí kalkulátoru (po spuštění emulátoru) se do paměti zavede knihovní modul se jménem MODULE.LIB. Ve složce je k dispozici 9 originálních knihovních modulů. Přejmenováním (kopií) jednoho z nich do jména MODULE.LIB se zajistí zavedení do paměti. Moduly jsou v binárním formátu, vzniknou konverzí knihovních souborů z textového tvaru pomocí konverzního programu TI59_module.
Na SD kartu (do složky emulátoru) probíhá též tisk - do souboru se jménem PRINT.TXT. Programy se ukládají do souborů 1.LIB až 9.LIB příkazem Write.
V následujícím seznamu tlačítek je uveden HEX kód použitý v programu a symbol na kalkulátoru. Alternativní funkce tlačítek (uvedené nad tlačítkem) se vyvolají po stisku tlačítka 2nd. Kalkulátor má i druhou sadu alternativních funkcí, na klávesnici označeno červeně, které se vyvolají po dvojím stisku tlačítka 2nd. Mnohé z funkcí mají ještě inverzní funkci, která se aktivuje po stisku tlačítka INV. Tlačítko INV je vždy nutné stisknout přes stiskem tlačítka 2nd (obrácený postup aktivuje alternativní funkce tlačítka INV). Na klávesnici emulátoru jsou zelenou barvou uvedeny kódy kláves k vyvolání tlačítka z PC klávesnice.
Vznikne-li v průběhu výpočtu nebo běhu programu chyba, kalkulátor ji indikuje blikáním displeje. Znakem 'E' indikuje "měkkou" chybu, po které může probíhat výpočet dál - např. dělení nulou. Nastavení přepínače (StFlg) číslo 8 určuje, zda se kalkulátor po vzniku měkké chyby zastaví. Při implicitním nastavení (přepínač vypnutý) se kalkulátor nezastaví. Znak 'F' označuje "tvrdou" chybu, po které kalkulátor vždy zastaví všechny operace - např. přetečení počtu úrovní výpočtu.
00..09, 0..9: zadání číslice 0..9
0A..0F, 0A..0F: Zadání hexadecimální číslice (pouze v HEX módu)
10..1E, A..E'': Zkratkové klávesy sloužící k rychlému vyvolání podprogramů. Podpogramy jsou označeny návěštím Lbl následovaným kódem klávesy A...E''
20, 25, CLR: Vymazání výpočtů. Přeruší se započaté operace a vynuluje se registr X. Registr T ani paměťové registry se nenulují.
21, 2A, 2nd, 3rd: Alternativní funkce. Po stisku 2nd a stisku tlačítka se aktivuje alternativní funkce uvedená nad tlačítkem. Po dvojím stisku 2nd se aktivuje druhá alternativní funkce.
22, INV: Inverzní funkce. Mnohé funkce mají i inverzní funkci, která se vyvolá po stisku tlačítka INV. Má-li být současně vyvolána alternativní funkce tlačítkem 2nd, je nutno tlačítko 2nd stisknout až po stisku tlačítka INV.
23, ln x: Přirozený logaritmus (základ Eulerova konstanta e). Po stisku INV se vypočte přirozená exponenciální funkce.
24, CE: Vymazání chyby. Tlačítko slouží jednak ke zrušení indikace chybového stavu (displej bliká) a jednak k vymazání poslední číslice během zadávání čísla. Další funkcí tlačítka CE je validace registru X. To lze využít např. po otevření výpočtu závorkou '(', kdy se obsah displeje označí jako platný operand, v opačném případě by byla indikována chyba operací. Pozn.: U původního kalkulátoru TI-59 se tlačítkem CE vymaže celé zadávané číslo.
26, SBR Ind (SB*): Vyvolání podprogramu podle indexu v registru. Funkce se vyvolá stiskem tlačítek SBR Ind, po kterých následuje 2-místné číslo registru, obsahující cílové číslo kroku 0..1000 nebo HEX kód návěští * 256.
28, log: Dekadický logaritmus (základ 10). Po stisku INV se vypočte dekadická exponenciální funkce.
29, CP: Vymazání programové paměti a registru T. Paměť se vyplní hodnotou FF, která indikuje prázdný nepoužitý programový krok. Je-li funkce CP vyvolána za běhu programu, programová paměť se nevymaže, pouze se vymaže registr T.
2B, key: Zadání kódu tlačítka. Po vyvolání funkce následuje zadání 2 číslic. Následně se provede funkce, která odpovídá zadanému kódu. Jako číslice lze použít i HEX číslice.
2C, lg2: Dvojkový logaritmus (základ 2). Po stisku INV se vypočte dvojková exponenciální funkce.
2D, rnd: Generátor náhody. Vygeneruje se náhodné číslo v rozsahu 0 (včetně) až 1 (vyjma). Po stisku INV se vypočte náhodné číslo v rozsahu 0 až číslo zadané na displeji - tj. vygenerované náhodné číslo se vynásobí číslem na displeji. Generátor náhody používá 32-bitový generátor pseudonáhodných čísel. Při každém zapnutí kalkulátoru se do EEPROM paměti ukládá nová východí hodnota generátoru a tak je zajištěno, že posloupnost generátoru je vždy jiná.
30, tan: Vypočte tangens pro aktuálně zvolenou úhlovou míru. Po stisku INV se vypočte obrácená funkce, arcus tangens.
31, LRN: Aktivace programovacího módu. V programovacím módu lze zapisovat kódy tlačítek do programu v EEPROM. Na začátku 2. řádku se zobrazuje adresa (číslo programového kroku 000..999), za kterou následuje HEX kód tlačítka a textové označení tlačítka. Na 1. řádku displeje se zobrazuje obsah 5 kroků paměti kolem aktuálního místa. Programem lze listovat tlačítky SST a BST. Skok na danou adresu v programu lze provést tak, že se vypne programový mód, tlačítkem GTO se provede skok na danou adresu nebo návěští, a opět se aktivuje programový mód.
32, x<>t: Záměna registrů X a T. Registr T je pomocný přechodný registr, používaný též u některých speciálních operací (např. převod souřadnic s P->R).
33, x2: Druhá mocnina čísla X.
34, Vx: Druhá odmocnina čísla X.
35, 1/x: Převrácená hodnota čísla X.
36, Pgm: Volba programu. Po stisku tlačítka následuje zadání 2-místného čísla programu z aktuálně zavedeného programového modulu. Program modulu nelze prohlížet v editoru, ale po stisku A..E' nebo SBR se vyvolá program z aktuálně zvoleného programu programového modulu. Zvolením čísla 00 se vybere zpět uživatelský program v EEPROM, programy budou nadále spouštěné z uživatelského programu. Vybraný program z modulu lze načíst do paměti EEPROM pomocí Op 09 a následně prohlížet či upravovat. Je-li funkce použita v programu, nedojde k trvalému přepnutí programu, ale pouze se zavolá jeden následující podprogram ze zadaného programu.
37, P->R: Převod polárních souřadnic na kartézské. Na displeji se zadá radius (poloměr), stiskem x<>t se uloží do pomocného registru T a zadá se úhel (v aktuálně vybrané úhlové míře). Po stisku 2nd P->R se na displeji objeví souřadnice Y, stiskem x<>t se zobrazí souřadnice X. Po stisku INV se provede opačná funkce, převod kartézských souřadnic na polární. Nejdříve se zadá souřadnice X, stiskem x<>t se uloží do registru T a zadá se souřadnice Y. Po stisku INV 2nd P->R se na displeji zobrazí úhel (v aktuálně zvolené úhlové míře) a po stisku x<>t se zobrazí radius (poloměr).
38, sin: Vypočte sinus pro aktuálně zvolenou úhlovou míru. Po stisku INV se vypočte obrácená funkce, arcus sinus.
39, cos: Vypočte cosinus pro aktuálně zvolenou úhlovou míru. Po stisku INV se vypočte obrácená funkce, arcus cosinus.
3B, x<>y: Zamění registry X a Y použité v aktuálně otevřené výpočtové operaci.
3C, snh: Vypočte hyperbolický sinus. Po stisku INV se vypočte obrácená funkce.
3D, csh: Vypočte hyperbolický cosinus. Po stisku INV se vypočte obrácená funkce.
3E, tah: Vypočte hyperbolický tangens. Po stisku INV se vypočte obrácená funkce.
40, Ind: Index. Mnoho funkcí umožňuje používat indexové operace, kdy se parametr operace nepoužije z programu, ale z registru. Tlačítko se stiskne po vyvolání funkce, ale před zadáním dalších parametrů. Po stisku tlačítka následuje 2-místný kód, představující číslo registru 00..99 s parametrem operace (číslo registru, adresu skoku, číslo přepínače).
41, SST: Krok vpřed při procházení programové paměti. Je-li vypnut programový mód, provede se 1 instrukce podle aktuálně nastaveného ukazatele programu.
42, STO: Uložení obsahu dispeje do registru. Následuje 2-místný kód s číslem registru 00..99. Tlačítkem Ind lze registr adresovat indexově.
43, RCL: Vyvolání čísla z registru. Následuje 2-místný kód s číslem registru 00..99. Tlačítkem Ind lze registr adresovat indexově.
44, SUM: Přičtení čísla k registru. Následuje 2-místný kód s číslem registru 00..99. Tlačítkem Ind lze registr adresovat indexově.
45, yx: Mocnina. První číslo se umocní druhým číslem. Po stisku INV se provede inverzní operace, odmocnina.
46, Ins: Vložení prázdného místa do programu. Po stisku tlačítka, během módu programování, se na aktuální pozici vloží kód FF, označující prázdný nepoužitý krok. Následující kód programu se odsune o 1 pozici. Na rozdíl od původního kalkulátoru TI-59 se neodsouvá celá zbylá paměť programu, ale pouze úsek až do příštího kroku s volným místem FF. Tím je umožněno mít program rozdělený na úseky, oddělené prázdným místem FF, a upravovat aktuální úsek bez ovlivnění následujících úseků. Po vložení kroku do programu je nutné opravit případné absolutní adresy skoků, které mohly být operací ovlivněny, kalkulátor adresy sám neopravuje.
47, CMs: Vymazání paměťových buněk (vymazání číselných registrů). Po stisku INV se provede pomocná alternativní funkce ClrSta - vymažou se pouze registry 01 až 06, používané ve statistických operacích, a registry X a T.
48, Exc: Záměna registrů. Obsah displeje se zamění se zadaným registrem. Následuje 2-místný kód s číslem registru 00..99. Tlačítkem Ind lze registr adresovat indexově.
49, Prd: Vynásobení registru číslem. Následuje 2-místný kód s číslem registru 00..99. Tlačítkem Ind lze registr adresovat indexově. Po stisku INV se provede inverzní funkce - vydělení registru číslem.
4B, n!: Vypočte faktoriál. Faktoriál se vypočte aproximační funkcí a proto lze zadávat i desetinná čísla. Lze zadat faktoriál až do hodnoty zhruba 3000.
4C, lnn!: Vypočte přirozený logaritmus faktoriálu. Lze zadávat i desetinná čísla. Výpočet není omezen rozsahem celočíselného faktoriálu 3000.
4D, lgn!: Vypočte dekadický logaritmus faktoriálu. Lze zadávat i desetinná čísla. Výpočet není omezen rozsahem celočíselného faktoriálu 3000.
4E, mod2: Operace modulo, tj. zbytek po dělení. Na rozdíl od varianty mod, tato operace zaokrouhluje podíl směrem dolů, což má za následek zachování znaménka dělitele.
50, IxI: Absolutní hodnota čísla.
51, BST: Krok zpět při procházení programové paměti.
52, EE: Zadání exponentu čísla. Po stisku tlačítka lze zadat dekadický exponent editovaného čísla v rozsahu až 4 číslic. Čísla se nadále budou zobrazovat s exponentem, až do stisku tlačítka CLR, který mód exponentu zruší. Mód zobrazení s exponentem lze zrušit i stiskem INV EE. Tlačítko EE lze též využít k zahájení editace čísla na displeji. Po stisku EE lze měnit exponent čísla, po stisku tlačítka tečky lze měnit čísla mantisy.
53, (: Otevření závorkové operace. Závorky lze použít až do úrovně 15.
54, ): Uzavření závorkové operace.
55, :: Vydělení dvou čísel.
56, Del: Smazání kroku programu. Následující kód programu se přisune o 1 pozici. Na rozdíl od původního kalkulátoru TI-59 se nepřisouvá celá zbylá paměť programu, ale pouze úsek až do příštího kroku s volným místem FF. Tím je umožněno mít program rozdělený na úseky, oddělené prázdným místem FF, a upravovat aktuální úsek bez ovlivnění následujících úseků. Po zrušení kroku programu je nutné opravit případné absolutní adresy skoků, které mohly být operací ovlivněny, kalkulátor adresy sám neopravuje.
57, Eng: Zapnutí technického (inženýrského) exponentu. Čísla se budou zobrazovat s exponentem v násobcích 3. Na rozdíl od módu EE, tento mód se nevypne stiskem CLR, ale pouze zadáním INV 2nd Eng.
58, Fix: Nastavení počtu zobrazených desetinných míst. Po stisku tlačítka se zadá počet desetinných míst v rozsahu 0 až 8. Číslo 9 vypne režim omezeného počtu desetinných míst, stejně jako stisk INV 2nd Fix. Nastavení počtu desetinných míst neovlivní přesnost výpočtů, ty probíhají neustále s maximálním přesností (19 číslic). Nezobrazené číslice lze oříznout stiskem EE, kdy se přejde do módu editace a budou platné pouze číslice zobrazené na displeji.
59, Int: Celé číslo. Číslo na displeji se zaokrouhlí směrem k nule, tj. oříznou se desetinná místa. Po stisku INV se provede opačná operace, ponechají se pouze desetinná místa, se zachováním původního znaménka.
5B, SHL: Posun čísla o 1 bit doleva. Odpovídá to vynásobení čísla číslem 2.
5C, SHR: Posun čísla o 1 bit doprava. Odpovídá to vydělení čísla číslem 2.
5D, round: Zaokrouhlení. Číslo na displeji se zaokrouhlí na nejbližší celé číslo. Po stisku INV se ponechá desetinná část s modulem 1. Např. 5.2 se změní na 0.2 (odpovídá funkci INV Int), zatímco -5.2 se změní na 0.8 (odpovídá INV Int + 1). Tuto funkci lze využít např. k zarovnání intervalů do platného rozsahu, jako je zarovnání úhlů do rozsahu 0..360°.
5E, mod: Operace modulo, tj. zbytek po dělení. Na rozdíl od varianty mod2, tato operace zaokrouhluje podíl směrem k nule, což má za následek zachování znaménka dělence.
60, Deg: Přepnutí úhlové míry na stupně.
61, GTO: Skok na adresu v programu. Jako parametr lze zadat 3-místné číslo adresy. Stiskem jiného tlačítka, než číslice, se kód tlačítka použije jako návěští. V tom případě se skočí na místo označené v programu návěštím Lbl. Následuje-li tlačítko Ind, lze zadat 2-místné číslo registru s adresou skoku. Obsahem registru může být buď číslo adresy v rozsahu 000..999, nebo může obsahovat HEX kód tlačítka návěští vynásobený 256. Běží-li program, lze držením tlačítka GTO zobrazit aktuální stav běžícího programu.
62, Pgm Ind: Volba programu jako u funkce Pgm, ale číslo programu se převezme z indexového registru.
63, Exc Ind: Záměna registrů jako u funkce Exc, ale číslo registru se převezme z indexového registru.
64, Prd Ind: Vynásobení/vydělení registru jako u funkce Prd, ale číslo registru se převezme z indexového registru.
65, x: Vynásobení dvou čísel.
66, Pause: Pozastavení programu na krátký okamžik a zobrazení obsahu displeje.
67, x=t: Podmíněný skok. Jsou-li obsahy registrů X a T shodné, provede se skok na následující adresu nebo návěští. Následuje-li kód tlačítka Ind, převezme se adresa z indexového registru. Po stisku INV se provede inverzní funkce, skok se provede při neshodě registrů.
68, Nop: Prázdný příkaz, žádná operace.
69, Op: Speciální operace. Tisk probíhá do souboru PRINT.TXT na SD kartě (nebo do adresáře emulátoru). Následuje 2-místný kód s číslem operace:
6A, JRF: Relativní skok vpřed. Následuje zadání 2-místného čísla, představující offset skoku (00..99), kolik následujících programových kroků má istrukce přeskočit. Relativní skok má přednost v tom, že není ovlivněn posouváním programu v paměti. Lze použít též indexový registr s Ind.
6E, AND: Bitový součin.
70, Rad: Přepnutí úhlové míry na radiány.
71, SBR: Vyvolání podprogramu. Jako parametr lze zadat 3-místné číslo adresy. Stiskem jiného tlačítka, než číslice, se kód tlačítka použije jako návěští. V tom případě se skočí na místo označené v programu návěštím Lbl. Následuje-li tlačítko Ind, lze zadat 2-místné číslo registru s adresou skoku. Obsahem registru může být buď číslo adresy v rozsahu 000..999, nebo může obsahovat HEX kód tlačítka návěští vynásobený 256. Uvede-li se před funkcí příkaz Pgm, zavolá se podprogram ze zvoleného modulového programu. Stiskem INV se provede opačná funkce - návrat z probíhajícího programu (kód 92, RTN).
72, STO Ind: Uložení čísla do registru jako u funkce STO, ale číslo registru se převezme z indexového registru.
73, RCL Ind: Načtení čísla z registru jako u funkce RCL, ale číslo registru se převezme z indexového registru.
74, SUM Ind: Přičtení čísla k registru jako u funkce SUM, ale číslo registru se převezme z indexového registru.
75, -: Odečtení čísel.
76, Lbl: Label, návěští. Následuje tlačítko označující jméno návěští. Na toto návěští mohou skákat funkce GTO, SBR atd.
77, x>=t: Podmíněný skok. Je-li obsah registru X větší nebo roven T, provede se skok na následující adresu nebo návěští. Následuje-li kód tlačítka Ind, převezme se adresa z indexového registru. Po stisku INV se provede inverzní funkce, skok se provede je-li obsah X menší než T.
78, Sta+: Statistická funkce. Zadá se číslo X, stiskem x<>t se přesune do registru T a zadá se Y. Stiskem Sta+ se tato dvojice čísel uloží do statistických registrů 01..06. Na displeji se objeví počet už vložených párů hodnot a hodnota X v registru T se automaticky zvýší o 1 - to umožňuje zadávat pouze hodnoty Y. Po zadání všech hodnot lze volat funkce jako výpočet průměru či koeficienty regresní přímky. Před zahájením zadávání je potřeba statistické registry vynulovat - to lze buď podprogramem CE programu 1 knihovního modulu ML, nebo stiskem tlačítek INV 2nd CMs. Po stisku INV se provede opačná funkce - zadané číslo se odečte, čímž lze provádět opravy chybně zadaných hodnot.
79, Avr: Vypočte průměr ze zadaných statistických hodnot. Na displeji bude průměr hodnot Y, v registru T bude průměr hodnot X.
7A, JRB: Relativní skok zpět. Následuje zadání 2-místného čísla, představující offset skoku (00..99), o kolik programových kroků se má ukazatel posunout zpět. Offset je relativní k adrese následující za koncem instrukce JRB, tj. hodnota 0 znamená pokračovat dál beze změny. Relativní skok má přednost v tom, že není ovlivněn posouváním programu v paměti. Lze použít též indexový registr s Ind.
7B, XOR: Bitový exkluzivní součet.
80, Grad: Přepnutí úhlové míry na grady.
81, RST: Reset ukazatele instrukcí na 0. Současně se vynulují přepínače a ukazatel zásobníku podprogramů. Při běhu programu z programového modulu se program zastaví.
82, HIR: Speciální interní funkce pracující se zásobníkem registrů operací. Následuje 2-místný číslený kód:
83, GTO Ind: Skok v programu jako u funkce GTO, ale adresa/label se převezme z indexového registru.
84, Op Ind: Speciální operace jako u funkce Op, ale číslo funkce se převezme z indexového registru.
85, +: Součet čísel.
86, StFlg: Nastavení přepínače. Následuje 1-místný kód přepínače 0..0F (lze použít 16 přepínačů). Číslo přepínače může být načteno též z indexového registru pomocí prefixu Ind. Nastavení přepínače 8 způsobí zastavení programu při chybě.
87, IfFlg: Podmíněný skok. Následuje 1-místný kód s číslem přepínače 0..0F a adresa skoku ve formě 3-místného čísla nebo návěští. Lze použít též indexové registry. Je-li přepínač nastavený, provede se skok na danou adresu. Po stisku INV se provede opačná funkce - skok se provede není-li přepínač nastaven.
88, D.MS: Převod úhlového nebo časového údaje vyjádřeného v minutách a sekundách na desetinný údaj. Zadá se číslo, jehož celá část představuje počet stupňů nebo počet hodin. Za desetinnou tečkou následují 2 číslice představující počet minut a 2 (nebo více) číslic představujících počet sekund (vteřin). Zadaný údaj se funkcí převede na desetinné vyjádření. Po stisku INV se provede opačný výpočet - stupně nebo hodiny v desetinném vyjádření se převedou na minuty a sekundy/vteřiny (4 číslice za desetinnou tečkou).
89, pi: Číslo Pi = 3.1415926535898. Po stisku INV se zobrazí Eulerova konstanta e = 2.7182818284590.
8A, Inc Ind: Inkrementace čísla jako u funkce Inc, ale číslo registru se převezme z indexového registru.
8B, HEX: Přepnutí displeje na hexadecimální soustavu.
8C, BIN: Přepnutí displeje na binární soustavu.
8D, OCT: Přepnutí displeje na oktalovou soustavu.
8E, OR: Bitový součet.
90, List: Tisk programu. Obsah uživatelského programu se vytiskne do tiskového souboru PRINT.TXT. Tisk probíhá od aktuálně nastavené adresy. Stiskem R/S lze tisk předčasně ukončit. Po stisku INV se tisknou uživatelské registry (paměťové buňky), počínaje registrem podle čísla na displeji.
91, R/S: Start/stop programu.
92, RTN: Návrat z programu (= INV SBR).
93, .: Desetinná tečka. V módu editace čísla slouží též k přepnutí z editace exponentu na editaci mantisy.
94, +/-: Změna znaménka čísla nebo exponentu. Po stisku INV se provede alternativní funkce - obsah displeje se změní na -1, 0 nebo +1, podle znaménka čísla. Stejnou funkci lze dosáhnout přes Op 10.
95, = : Provedení výpočtu. Kalkulátor si pamatuje poslední prováděnou operaci - je-li tlačítko = stisknuto bez zadání nové operace, opakuje se naposledny prováděná operace, např. opakované přičítání čísla, násobení číslem. Stiskem x<>y lze operandy zaměnit.
96, Write: Uložení programu či registrů. Operaci určuje číslo na displeji. Stiskem INV se provede opačná operace, tj. načtení. Je-li na překážku, že se na SD kartu ukládá program spolu s registry, lze to ošetřit kombinací s uložením a navrácením ze záložní EEPROM.
97, Dsz: Opakovací smyčka "decrement and skip if zero". Následuje 1-místný kód s číslem registru čítače 0..0F a adresa skoku ve formě 3-místného čísla nebo návěští. Lze použít též indexové registry. Registr čítače se dekrementuje směrem k nule (platí i pro záporná čísla) a pokud nedosáhne nuly, provede se skok na danou adresu (začátek smyčky). Dosáhne-li se nuly, program pokračuje následující instrukcí. Po stisku INV se provede opačná operace - skok se provede naopak v případě dosažení nuly čítače.
98, Adv: Odřádkování tisku, výstup 1 prázdného řádku do tiskového souboru PRINT.TXT.
99, Prt: Vytištění registru X do tiskového souboru PRINT.TXT.
9B, DEC: Přepnutí displeje na dekadickou soustavu.
9C, Inc: Inkrementace registru. Zvýší obsah registru, zadaného následujícím 2-místným číslem, o 1. Po stisku INV se provede inverzní funkce, snížení obsahu registru o 1 (dekrementace). Lze použít též indexový registr s Ind.
9D, NOT: Bitová inverze čísla.
9E, %: Procenta. Funkce se zadává během aritmetických operací, po zadání druhého čísla. Význam závisí na prováděné operaci:
Stisknutím tlačítka procent mezi 2 čísly se vypočte počet procent ze základu, jako u funkce násobení (1000 % 23 = 230).
Firmware TI59R (nastavení pojistek: low 0xE7, high 0xD7, ext 0xFF)
TI59_module - Konverze knihovných modulů do binárního tvaru
Grafické podklady (schéma a plošný spoj)
Kompletní download podkladů (včetně www stránky)
Součet ceny za vše asi 550 Kč.
Miroslav Němeček