FORTH - první úspěchy

Wiring, C++, C, Java, ...
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Uživatelský avatar
gilhad
Příspěvky: 876
Registrován: 07 bře 2018, 11:22

Re: FORTH - první úspěchy

Příspěvek od gilhad » 18 lis 2025, 01:07

Tak jsem za [strike]dnešek[/strike] včerejšek zvládnul najít na webu disassembler na AVR chipy (i když jen ty malé, a navíc na něj nikdo nesáhnul 7 let) a dopsat si tam i ten svůj chip ATmega2560 a ještě významně vylepšit výstup :)

https://github.com/githubgilhad/AVRemu

Uživatelský avatar
gilhad
Příspěvky: 876
Registrován: 07 bře 2018, 11:22

Re: FORTH - první úspěchy

Příspěvek od gilhad » 19 lis 2025, 01:04

Tak jsem za 14.41 Kč koupil na aliku tenhle bazmek a udělal si gheto powerbanku z baterek vytěžených z jednorázových vapek (e-cigaret)

Obrázek

Obrázek
Kromě jiného tím zvládám pohánět svůj jednodeskový počítač https://hackaday.io/project/204418-mhf- ... home-forth
EDIT: bez klávesnice to spadlo ze 4 čárek na 2 po asi 8 hodinách :)

Uživatelský avatar
gilhad
Příspěvky: 876
Registrován: 07 bře 2018, 11:22

Re: FORTH - první úspěchy

Příspěvek od gilhad » 28 pro 2025, 20:04

Tak desky dorazily, dvě už jsem osadil a rozchodil, zatím jsem teda jen otestoval funkčnost každého modulu a bude to chtít sesadit dohromady a učesat, ale už to něco dělá :)

Obrázek

Debugovací LEDky hrajou všema barvama, ostatní svítí podle potřeby :)

Obrázek

Na HackADay.io to má vlastní stránky https://hackaday.io/project/204418-mhf- ... home-forth

Uživatelský avatar
JPLABS
Příspěvky: 27
Registrován: 28 pro 2025, 16:52
Bydliště: Praha
Kontaktovat uživatele:

Re: FORTH - první úspěchy

Příspěvek od JPLABS » 29 pro 2025, 11:15

Caster píše:
23 kvě 2025, 21:59
Pěkné. Na VŠ jsem kdysi používal alfanumerickou kalkulačku HP41-CV, kterou používali američtí astronauti jako zálohu, pokud by jim přestaly fungovat palubní počítače. I dnes ji mám jako Android aplikaci na mobilu. Používá RPN tj. obrácenou polskou logiku, tlačítko "=" na ni nenajdete. Pracuje se 4 úrovňovým zásobníkem X, Y, Z a T. Návod k použití zde.
Na VŠ jsem používal HP-33C. Má též RPN nez tlačítka "=". Tenkrát ještě HP41CV nebyla, přišla až později. Dnes mám obě a nejraději, z praktických důvodů, používám HP32SII, také s RPN bez "=".
Rád bych viděl, který programátor Arduina dokáže napsat program pro Arduino, aby z Arduina udělal kalkulačku na úrovni HP32SII. Nebo, abych nebyl tak náročnej, alespoň, aby Arduino umělo počítat tak přesně, jako stará dobrá HP9815 z první poloviny 70-tých let minulýho století.
http://www.hp9825.com/html/9815.html
Zkoušel jsem už různé mikropočítače, dokonce i 16-bitové, zmermomocnit k počítání na úroveň HP9815, ale zatím bez šance. Na přesnost výpočtů jako má HP9815 jsem se dosud nedostal. Přitom ta "stará dobrá" HP9815 měla jen pomalý 8-bitový mikroprocesor Motorola 6800 s několika registry a velmi omezenou paměť.
Zpět k HP41CV. Mám emulátor v PCčku, napsaný asi v Javě (můžu poslat, je to freeware). Zjistil jsem, že emulátor v PCčku počítá ne tak přesně jako skutečná HP41CV. Je také zajímavé porovnat přesnost výpočtů fyzické HP41CV s HP32SII a proti stejným výpočtům na Arduinu.

Projekt:
Připojit na Arduino floppy, k tomu ještě 16-místný LED displej a napsat pro Arduino interpret HP Basicu? :D Šílený nápad, co? Zatím mám zprovozněný ten displej, 64-tlačítkovou klávesnice http://www.jplabs.co.uk/projects/bh205b1.html a pracuju na interface pro 3.5" floppy. Software vázne na přesnosti výpočtů. Dosahuju tak 8 až 10 desetiných míst. Na přesnost HP9815 jsem se zatím u většiny funkcí nedostal. Typicky transcendentní funkce. Navíc jsou výpočty na Arduinu ve srovnání s Motorola 6800 pomalé, což je téměř jistě mým programem než hardware. :D
S časem se vše zhoršuje (zákon prof. Parkinsona)

Uživatelský avatar
gilhad
Příspěvky: 876
Registrován: 07 bře 2018, 11:22

Re: FORTH - první úspěchy

Příspěvek od gilhad » 29 pro 2025, 16:24

Poměrně brzo na starých Arduinech (tím myslím atmegy, nikoli nejnovější linuxové mašiny) narazíš na omezenou paměť RAM, ve které navíc nemůžeš spouštět programy = stroják jede jen z FLASH.

U mě je to jeden z důvodů, proč můj FORTH je ITC (a některé DOES> a podobně nejdou použít v nových uživatelských slovech)

Uživatelský avatar
gilhad
Příspěvky: 876
Registrován: 07 bře 2018, 11:22

Re: FORTH - první úspěchy

Příspěvek od gilhad » 06 úno 2026, 09:54

Tak už má můj FORTH i TUI (Text User Interface) - dá se v něm editovat příkazová řádka a spouštět všechna známá slova :)
Jinými slovy - už se s ním dá normálně uživatelsky komunikovat příčetným způsobem.
A celé to uživatelské rozhraní je napsané ve FORTHu (asi 25 "slov", jak říká funkcím, které se přeloží na asi 500 buněk (po 3bytech) plus hlavičky)
Celkově to má asi 2.5k řádků v asembleru s výrazným použitím maker a asi 300 řádků v C, kde tomu převážně nastavuju počáteční stav a vypisuju nějaké debugy.

Běží to na ATmega2560 mikrokontroleru (Arduino Mega) a zvládá to interpretovat asi 100.000 příkazů za sekundu
celkově to přeložené má asi 11kB kódu, používá to 1.355 bytů RAM a má to asi 100 "slov", 25 ve FORTHu a zbytek v asembleru

Tímhle jsem definitivně překročil hranici, mezi tím kdy si jen něco píšu a ono se to třeba i přeloží a mezi tím, kdy mám něco, co se dá ukazovat lidem a ono to počítá a poslouchá a píše po obrazovce :)

20 0 10 13 NEXTcounter CLS .h .h EMIT EMIT WORDS CURSOR_XY NEXTcounter .h .h


20 0 - souradnice pro CURSOR_XY
10 13 - odradkovani pro EMIT
NEXTcounter - pocet provedenych slov
CLS - smazani obrazovky (zbavim se ladicich vypisu pro cisla)
.h .h - vypis poctu provedenych slov
EMIT EMIT - odradkovani
WORDS - vypis znamych slov
CURSOR_XY - posun nahoru a doprava
NEXTcounter .h .h - vypis slov podruhe (mezitim co se prekladalo a ve slovniku hledalo vse od minuleho vypisu)

Obrázek
branch FORTH_c_003

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti