https://github.com/githubgilhad/AVRemu
FORTH - první úspěchy
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Re: FORTH - první úspěchy
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
https://github.com/githubgilhad/AVRemu
Re: FORTH - první úspěchy
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)


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


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
Re: FORTH - první úspěchy
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á 

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

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

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

Na HackADay.io to má vlastní stránky https://hackaday.io/project/204418-mhf- ... home-forth
Re: FORTH - první úspěchy
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 "=".Caster píše: ↑23 kvě 2025, 21:59Pě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.
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?
S časem se vše zhoršuje (zákon prof. Parkinsona)
Re: FORTH - první úspěchy
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 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)
Re: FORTH - první úspěchy
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)

branch FORTH_c_003
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)

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