memxFORTH

Uživatelský avatar
gilhad
Příspěvky: 305
Registrován: 29 kvě 2015, 00:36
Kontaktovat uživatele:

Re: memxFORTH

Příspěvek od gilhad »

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: 162
Registrován: 13 čer 2023, 22:45
Kontaktovat uživatele:

Re: memxFORTH

Příspěvek od JPLABS »

Jen tak ze se zeptám: jakou roli má CPU 6309 u té ATMega? Hledal jsem na tvým Githubu více info. Po delším hledání jsem našel odkaz na schéma, ale ta stránka hlásí, že soubor byl zrušen:
https://github.com/githubgilhad/MegaHom ... HF-001.pdf
VGA se dá udělat různě. Záleží na požadovaným rozlišení. Existují hotový řešení pro FPGA. Jen je nahraješ do FPGA. Další možnost je s nějakým rychlým CPU. Okolo roku 2000 nějaký Rus udělal VGA s CPU 80C400. Bohužel ten obvod se už nevyrábí. V roce 1988 vyšlo v japonským radioamatérským časopise povídání o 6309, jak s ním udělat videoadaptér pro 8-bity. Další docela levná metoda je, že koupíš v bazaru nějaký vhodný VGA adaptér do PCčka (ISA nebo VLBUS), odpájíš z něj VGA čip :D a použiješ jej na tvým adaptéru s nějakým CPU. Jde jen o to, jak rychle dokáže ten CPU posílat data do VGA čipu. Já toto vyzkoušel s obvodem, který byl v patici na 8-bit ISA video adaptéru EGA Paradise. Obvod jsem vyndal z patice videoadaptéru, rozkreslil jsem schema EGA Paradise videoadaptéru a připojil jsem video obvod na Motorolu 6800. Fungoval spolehlivě (640x350 pixlů) s CRT monitorem.
Uživatelský avatar
JPLABS
Příspěvky: 162
Registrován: 13 čer 2023, 22:45
Kontaktovat uživatele:

Re: memxFORTH

Příspěvek od JPLABS »

A ještě jsem si teď vzpomenul, kdyby jsi chtěl něco fakt užitečnýho udělat, tak existuje mikropočítač HD64F2134FA20V. Původně od Hitachi. Japonci je používali do hracích automatů a zábavních robotů. Mám těch mikropočítačů asi 1000 kusů. Všechny fungl nové. Tak ti můžu dva kousky věnovat a mohl by jsi s nimi udělat robota s videodisplejem na kolečkách. :D Mám k nim myslím i nějaký crossassembler nebo tak něco.
V příloze je náhled na strukturu mikropočítače (v PDF). Je to 62.stránka z manuálu, který má 1030 stran (6 Mbyte v PDF).
H8S2134-overview.pdf
náhled na mikropočítač H8S2134
(42.39 KiB) Staženo 35 x
Uživatelský avatar
gilhad
Příspěvky: 305
Registrován: 29 kvě 2015, 00:36
Kontaktovat uživatele:

Re: memxFORTH

Příspěvek od gilhad »

JPLABS píše: 06 led 2026, 21:25 Jen tak ze se zeptám: jakou roli má CPU 6309 u té ATMega?
Roli má tu, že atmega je grafická karta, která se dá použít i jako samostatný počítač (což teď pro testování dělám)
6309 bude na samostatní desce jako hlavní procesor, a bude tuhle grafickou kartu (nebo spíš dvě) používat pro výstup na obrazovku (jednu MHF) a pro vstupy z klávesnice, SD karty, seriál portu a případně dalších věci (druhou MHF) protože všechno dohromady jedna MHF nestíhá (když kreslí obrazovku ztrácí packety, když stíhá packety, vypadává obrazovka, protože je prostě slabá a pomalá)
Ale ta deska s 6309 zatím ještě není ani v návrhu, odhaduju, že na tom začnu dělat tak začátkem léta. Nicméně nějaké předchozí verze mám na breadboardech a víceméně to začalo Expanduinem.
Hledal jsem na tvým Githubu více info. Po delším hledání jsem našel odkaz na schéma, ale ta stránka hlásí, že soubor byl zrušen:
https://github.com/githubgilhad/MegaHom ... HF-001.pdf
Tak to je chyba, správný odkaz je https://github.com/githubgilhad/MegaHom ... HF-001.pdf čili bez toho docs/MHF-001/ - jaká je to stránka, ať to můžu opravit?
Ale MHF-001 je už obsolete, teď mám MHF-002 (které má 75 vylepšení a líp se pájí ručně), už jsem udělal 2 desky a ozkoušel na nich kód pro všechny device, teď to dávám dohromady (je to na těch stránkách taky)


VGA se dá udělat různě. Záleží na požadovaným rozlišení.
Ano a já se jí rozhodl udělat pomocí "Arduina", tedy ATmega, protože jsem zatím k tomu 6309 počítači používal jako hloupý terminál AMD Ryzen 9 3900X 12-Core s 32 GB RAM a přišlo mi to tak trochu nevhodné. Rozlišení se pohybuje okolo 40x25 znaků případně 320x400 pixelů, (na každou řádku jedna barva popředí a jedna pozadí), protože s 16 MHz víc pixelů a barev prostě nestíhám. A MHF je teď tak pocitově akorát adekvátní.

Až mi MHF bude chodit k mé spokojenosti, pustím se do návrhu té hlavní desky s 6309 a ATF1504 jako GLUE (zase 10x10cm a SystemBus) a budu budovat systém pro ni. Až to budu považovat za hotové, možná zkusím udělat podobné počítače s 6502 a 8081, protože ty doma mám taky (OMEGA Aplha, Beta a Kilo od Martina Malého) a až pak budu uvažovat o dalších projektech. Jenže to ještě bude trvat léta.

Tady si užívám jednoduchosti v tom smyslu, že o každé součástce vím, proč přesně tam je, co přesně dělá a dovedu si to představit do úrovně jednotlivých instrukcí a hodinových cyklů.

Žádné out-of-order divočiny, spekulativní výpočty, multipipe, megabytové binární bloby v mnoha vrstvách nad sebou, nic takového. Atmega, 6309, ATF1504 mi svou složitostí stačí a nemám potřebu je nahrazovat ani Ryzenem, ani hrstí tranzistorů :lol:

Jinak ta 6309 bude mít taky FORTH (minimálně jako jednu z variant) a budu tam využívat RAM pro běh kódu (což atmega neumí a v tom FORTHu mě poněkud omezuje)
Uživatelský avatar
JPLABS
Příspěvky: 162
Registrován: 13 čer 2023, 22:45
Kontaktovat uživatele:

Re: memxFORTH

Příspěvek od JPLABS »

HD6309 umí (podle toho článku z japonského radioamatéra) jen 320x200 bodů, ale nepíší tam kolik barev. Schema tam v tom článku není. Teda mám jen jednu stranu z toho časáku a nevím, zda to mělo pokračování.
Myslím, že HD6309 toho neuměl o moc víc než 6800.

K té CPLD ATF 1504. Do té se toho moc nevejde. VGA určitě ne. Vejde se tam nějaká malá logika. Dají se teda spojovat, vícero ATF1504. Mám je a mám k nim také vývojovou, programovací desku. Zatím je ještě dostupná. Viz na konci tohoto článku úplně dole: http://www.jplabs.co.uk/cz/articles/bh563a.html
Existují ještě ATF1508 mysllím, které mají tuším 84 pinů nebo tak nějak. K nim se musí kupit extra programovací patice. ne zrovna levná, ale stále dostupná. Nevýhodou je zbytečně moc vývodů.

Problém je ale jinde, sice v software. Pro tyto CPLD neexistuje jeden ucelený software, nějaké IDE, jako znáš z mikropočítačů, kde by jsi celý projekt vyvinul od počátku do konce. Naopak,musíš použít tři nebo čtyři různé software, od různých výrobců. Každý má nějaké omezení. Konkrétně, pro tyto CPLD řady ATF existuje software ATMISP, dále POF2JED, WINCUPL, WinSim a ProChipDesigner. :D K tomu musíš umět VHDL nebo použiješ DEEDS, výstup ve VHDL stejně musíš upravit protože verzí VHDL je vícero. Existuje také Quartus II verze 9, ale ta nepodporuje ATF řadu (kdysi prý podporovala). Takže z Quartusu musíš návrh dostat do WinCuplu. WinSim funguje různě. Microchip chce zaplatit za licenci, ale nějak ten prodej licence moc nefunguje.
S jakoukoliv podporou ze strany výrobců oněch software vůbec nepočítej. Ta je nulová. Nezajímá je to. Poraď si sám, jak umíš. A to je přelom roku 2025/2026. Tendence výrobců hradlových polí je k FPGA, odcházejí od CPLD. řada ATF je spíše vyjímkou. Div, že to ještě vyrábějí. Jsem zvědav, jak dlouho se to udrží ve výrobě.

Existují také CPLD od Lattice, které jsou velmi rychlé (až 400 MHz). K nim je vývojový přípravek, též ne právě levný. Má to háček. Kdysi , až do roku 2001 byl vývojový software od Lattice gratis. Když se prodalo hodně vývojových destiček, tak Lattice v tichosti stahnul free licenci a za ten stejný vývojový sofware, který byl do roku 2021 gratis, chce nyní zaplatit. Asi 800 USD. :D Dost, hodně lidí tím nasral. Lattice na to odpovídá, ať lidé přejdou od CPLD k FPGA.

Existuje také Digilent, který používal velký CPLD CoolRunner II. Do těch se vejde VGA. Jenže dnes k Digilentu neseženeš vývojový software. Je to 15 let stará věc. Ale byl to pěkný CPLD a měli pěknou vývojovou desku.

Nedostatek FPGA je v tom, že výrobci (Xilinx a Atmel) to tlačí ke stále větším a větším FPGA. Což s sebou nese stále větší pouzdra se stovkami vývodů BGA. Také rosta cena. No, ano, ty obvody toho pak dokáží hodně, ale kdo to potřebuje? V souvislosti s tím stejně musíš koupit licenční software, jinak z toho nic nepoužiješ. Typicky NIOS II od Atmelu. Je v FPGA, ale dostupný jen za poplatek 500 USD. Obdobné to je u Xilinxu. Vývojový software pro staré Xilinxy je sice gratis ale umožňuje jen určitou strukturu návrhu, ne příliš komplexní a pro nové Xilinxy musíš platit licenci. Xilinx má dnes myslím Virtex 7 a další novější... Netuším k čemu bych to vůbec využil. Prostě nemám nápad. Mám v šupleti staré XC3042 a X3064, které mají ještě použitelné pouzdra do velkých PLCC patic a s jedním nebo dvěmi lze udělat VGA rozlišením až 1600x1200. Zda s jedním nebo dvěmi, záleží na úrovni návrhu, který to dovolí, software s kterým přiřazuješ piny a rovnáš strukturu do obvodu. Nelicencovaný software má omezení.
Před týdnem jsem si zažádal o novou free-licenci od Xilinxu. Kupodivu jsem ji dostal, stahl jsem si 6 GigaByte vývojový 10 let starý software :D a zjistil jsem, že z něj vyřadili XC3000 řadu :( To jsou právě ty XC3042 a XC3064. Tak existuje nobvější řada XC4000 a XC5000. A pak Virtex 5 atd. Na Virtex 5 už potřebuješ placenou licenci. Populární je Spartan, ale i ten je už dnes neuvěřitelně starý.

A potíž je ta, že než se "dokopeš" k nápadu jak a k čemu využít Spartan nebo Virtex 5 a dosáhneš na znalosti, jak pro to udělat projekt, tak utečou roky, ne měsíce, ale roky. Mezitím už Virtex 5 bude strašně starý a dávno opuštěný a nepodporovaný v té budoucí době aktuálním software. Takže ty budeš zase v "háji". Prostě dohnat tento trend a být v čase s vývojem FPGA , to je děsivě náročný na čas i na peníze.
Uživatelský avatar
gilhad
Příspěvky: 305
Registrován: 29 kvě 2015, 00:36
Kontaktovat uživatele:

Re: memxFORTH

Příspěvek od gilhad »

JPLABS píše: 07 led 2026, 21:08 HD6309 umí (podle toho článku z japonského radioamatéra) jen 320x200 bodů, ale nepíší tam kolik barev. Schema tam v tom článku není. Teda mám jen jednu stranu z toho časáku a nevím, zda to mělo pokračování.
Myslím, že HD6309 toho neuměl o moc víc než 6800.
Což je celkem jedno, protože, jak jsem psal, 6309 bude hlavní procesor, který bude používat grafickou kartu pro zobrazování. Tedy například bude chrlit nějaký text, který grafická karta převede na obraz, který prostě odjede třeba několik obrazovek. 6309 sám VGA generovat nebude. Co bude generovat bude něco jako ze do paměti zapíše :

Kód: Vybrat vše

text: Lorem ipsum .... body: 0,0; 0,319; 399,319; ... cary: 1,1-398,318; 1,318-398,1 ... text@ 200,160,"Hello world" ...
a předá tu paměť grafické kartě (MHF).
Grafická karta (MHF) to pak nějak zpracuje a zobrazí. Vypíše Lorem Ipsum od aktuální pozice kurzoru a zaláme podle šířky obrazovky a když dojde na konec obrazovky, tak ji zaskroluje. Udělá tečky v rozích, křížící se čáry přez skoro celý monitor a nakonec od prostředka vypíše Hello world. Nebo tak něco.
K té CPLD ATF 1504. Do té se toho moc nevejde. VGA určitě ne. Vejde se tam nějaká malá logika. Dají se teda spojovat, vícero ATF1504. Mám je a mám k nim také vývojovou, programovací desku. Zatím je ještě dostupná. Viz na konci tohoto článku úplně dole: http://www.jplabs.co.uk/cz/articles/bh563a.html
Což je celkem jedno, protože ATF1504 bude GLUE, které na základě adres a dalšího nastavení bude vybírat, který chip, nebo co bude právě připojen na sběrnici a jak.

V našem příkladu, až 6309 dogeneruje svůj zápis do sdílené paměti a vzdá se jí, tak GLUE zasignalizuje grafické kartě, že sdílená paměť je k dispozici. Grafická karta o ni projeví zájem a GLUE jí nastaví přístup k té zdílené paměti a všem ostatním ho odepře.

Co si grafická karta počne s tím zápisem v paměti GLUE vůbec nezajímá, to bude řešit, že procesor se rozhodnul psát do ACIA a tak mu ten chip připojí ke sběrnici. Nebo něco jiného.


Problém je ale jinde, sice v software. Pro tyto CPLD neexistuje jeden ucelený software, nějaké IDE, jako znáš z mikropočítačů, kde by jsi celý projekt vyvinul od počátku do konce. Naopak,musíš použít tři nebo čtyři různé software, od různých výrobců. Každý má nějaké omezení. Konkrétně, pro tyto CPLD řady ATF existuje software ATMISP, dále POF2JED, WINCUPL, WinSim a ProChipDesigner. :D K tomu musíš umět VHDL nebo použiješ DEEDS, výstup ve VHDL stejně musíš upravit protože verzí VHDL je vícero. Existuje také Quartus II verze 9, ale ta nepodporuje ATF řadu (kdysi prý podporovala). Takže z Quartusu musíš návrh dostat do WinCuplu. WinSim funguje různě. Microchip chce zaplatit za licenci, ale nějak ten prodej licence moc nefunguje.
S jakoukoliv podporou ze strany výrobců oněch software vůbec nepočítej. Ta je nulová. Nezajímá je to. Poraď si sám, jak umíš. A to je přelom roku 2025/2026. Tendence výrobců hradlových polí je k FPGA, odcházejí od CPLD. řada ATF je spíše vyjímkou. Div, že to ještě vyrábějí. Jsem zvědav, jak dlouho se to udrží ve výrobě.
Což je celkem jedno, WinCupl jsem si stáhnul od Microchipu už dávno a rozchodil ho pod VirtualBoxem a tu svojí ATF1504 naprogramoval, aby mi nějakým způsobem rozsvěcovala LEDky na breadboardu. Tohle mi už chodí.

Programovací patici nepotřebuju, protože mám vytažené programovací piny, přez které jsem tu ATF1504 naprogramoval přímo připájenou na PCB.
Uvidím, jestli na moje účely budou stačit nožičky a cells, když tak buď použiju dvě, nebo ty ATF1508.

Předběžný odhad mám něco jako 23 signálů pro každou kartu, 7 signálů pro CPU a RAM/ROM, 16 adresy, 8 data a něco na VIA a spol
Existují ještě ATF1508 mysllím, které mají tuším 84 pinů nebo tak nějak. K nim se musí kupit extra programovací patice. ne zrovna levná, ale stále dostupná. Nevýhodou je zbytečně moc vývodů.
Ta moje ATF1504 má 100 vývodů a nějak jsem ji zvládnul, 84 vývodů mě tedy nezastraší http://mix.gilhad.cz/Blog/Blog_2024.htm ... rd-atf1504 a jde to programovat i bez patice, respektive tady mám patici zcela vlevo, 2x5 obyčejných pinů, přesně jak to chce kabel od programátoru ATDH1150USB, který mám doma (obrázek http) http://mix.gilhad.cz/Blog/2024.05.07-Br ... 8172.s.jpg

Dělá se to takhle http://comp24.gilhad.cz/documentation/CPLD_upload.html
Existují také CPLD od Lattice, které jsou velmi rychlé (až 400 MHz). K nim je vývojový přípravek, též ne právě levný. Má to háček. Kdysi , až do roku 2001 byl vývojový software od Lattice gratis. Když se prodalo hodně vývojových destiček, tak Lattice v tichosti stahnul free licenci a za ten stejný vývojový sofware, který byl do roku 2021 gratis, chce nyní zaplatit. Asi 800 USD. :D Dost, hodně lidí tím nasral. Lattice na to odpovídá, ať lidé přejdou od CPLD k FPGA.

Existuje také Digilent, který používal velký CPLD CoolRunner II. Do těch se vejde VGA. Jenže dnes k Digilentu neseženeš vývojový software. Je to 15 let stará věc. Ale byl to pěkný CPLD a měli pěknou vývojovou desku.

Nedostatek FPGA je v tom, že výrobci (Xilinx a Atmel) to tlačí ke stále větším a větším FPGA. Což s sebou nese stále větší pouzdra se stovkami vývodů BGA. Také rosta cena. No, ano, ty obvody toho pak dokáží hodně, ale kdo to potřebuje? V souvislosti s tím stejně musíš koupit licenční software, jinak z toho nic nepoužiješ. Typicky NIOS II od Atmelu. Je v FPGA, ale dostupný jen za poplatek 500 USD. Obdobné to je u Xilinxu. Vývojový software pro staré Xilinxy je sice gratis ale umožňuje jen určitou strukturu návrhu, ne příliš komplexní a pro nové Xilinxy musíš platit licenci. Xilinx má dnes myslím Virtex 7 a další novější... Netuším k čemu bych to vůbec využil. Prostě nemám nápad. Mám v šupleti staré XC3042 a X3064, které mají ještě použitelné pouzdra do velkých PLCC patic a s jedním nebo dvěmi lze udělat VGA rozlišením až 1600x1200. Zda s jedním nebo dvěmi, záleží na úrovni návrhu, který to dovolí, software s kterým přiřazuješ piny a rovnáš strukturu do obvodu. Nelicencovaný software má omezení.
Před týdnem jsem si zažádal o novou free-licenci od Xilinxu. Kupodivu jsem ji dostal, stahl jsem si 6 GigaByte vývojový 10 let starý software :D a zjistil jsem, že z něj vyřadili XC3000 řadu :( To jsou právě ty XC3042 a XC3064. Tak existuje nobvější řada XC4000 a XC5000. A pak Virtex 5 atd. Na Virtex 5 už potřebuješ placenou licenci. Populární je Spartan, ale i ten je už dnes neuvěřitelně starý.

A potíž je ta, že než se "dokopeš" k nápadu jak a k čemu využít Spartan nebo Virtex 5 a dosáhneš na znalosti, jak pro to udělat projekt, tak utečou roky, ne měsíce, ale roky. Mezitím už Virtex 5 bude strašně starý a dávno opuštěný a nepodporovaný v té budoucí době aktuálním software. Takže ty budeš zase v "háji". Prostě dohnat tento trend a být v čase s vývojem FPGA , to je děsivě náročný na čas i na peníze.
Což je celkem jedno, protože já nechci používat na VGA nejaké FPGA, ale atmega2560 (MHF), které mi ten signál vygeneruje a do monitoru pošle kdykoli ho zapnu. Funkční příklad mám na stole viz předchozí obrázky MHF, pro testování naswičovaných jako SBC a vypisujících písmenka na monitor.

Obrázek
Uživatelský avatar
gilhad
Příspěvky: 305
Registrován: 29 kvě 2015, 00:36
Kontaktovat uživatele:

Re: memxFORTH

Příspěvek od gilhad »

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
Uživatelský avatar
gilhad
Příspěvky: 305
Registrován: 29 kvě 2015, 00:36
Kontaktovat uživatele:

Re: memxFORTH

Příspěvek od gilhad »

Tak už si na tom můžu i zahrát textového hada ( 35 sloupců x 55 řádků, 8x8 písmenka)

Obrázek

Vykreslování obrazovky zabere většinu času, tak pro náročnější věci, třeba nahrávání programů, jde dočasně vypnout slovem HEADLESS a samozřejmě zapnout jeho logickým protějškem HEADMORE :lol:
Uživatelský avatar
petr-kubac
Příspěvky: 182
Registrován: 24 úno 2013, 14:43
Bydliště: Prostřední Suchá
Kontaktovat uživatele:

Re: memxFORTH

Příspěvek od petr-kubac »

Máte můj neskutečný obdiv
Opravdu to vypadá jako 8 bit postavený na moderních součástkách ve stylu Commadner X16 nebo Aagon light.
Rozdíl je jen v tom Forthu, ačkoliv si myslím, že byl nějaký 8 bit s Forthem - i v 80. letech

Nakonec Google našel - Jupiter ACE - byl hardwarově podobný ZX81 ale měl FORTH místo Basicu.
"The best computer language is a solder" - "Nejlepší programovací jazyk je pájka" - Bob Pease
Uživatelský avatar
gilhad
Příspěvky: 305
Registrován: 29 kvě 2015, 00:36
Kontaktovat uživatele:

Re: memxFORTH

Příspěvek od gilhad »

A aby toho snad nebylo málo [strike]spřáhnul se s folkáčema[/strike],
tak jsem rozšířil obraz co to dá - 50x60 znaků 8x8 pixelů
(400x480 pixelů na displayi pro 320x480, ale můj monitor je tolerantní :) )

Obrázek
Odpovědět