1 Rozcestník
| Comp24 shrnutí | HW | SW |
| http://comp24.gilhad.cz/doc/shrnuti2026.html | https://github.com/githubgilhad/MegaHomeFORTH/tree/master/HW/KiCad/MHF-002 | https://github.com/githubgilhad/memxFORTH-asm |
![]() |
![]() |
![]() |
2 Retro 8bitový počítač s moderní architekturou
2.1 Co to je?
Projekt je návrh vlastního 8bitového počítače postaveného na procesoru HD6309. Cílem je propojit klasickou architekturu 80. let s moderními principy návrhu a modularitou.
2.2 Hlavní vlastnosti
- CPU: HD6309 přetaktovaný na 4 MHz
- RAM: 128 kB (s EMS bankováním)
- Modulární architektura (samostatné karty)
- Programovatelná logika (CPLD)
- Externí grafická a I/O karta
2.3 Architektura systému
Systém je rozdělen do několika desek:
- Procesorová deska
- HD6309 CPU
- 128 kB RAM (64 kB přímo adresovatelných)
- EMS bankování paměti
- CPLD (ATF1504AS) pro mapování zařízení
- I/O karty
- VIA, PIA, ACIA
- Přímý přístup k periferiím
- Grafická a systémová karta (MHF-002)
- Samostatný mikrokontroler
- Vlastní RAM
- VGA výstup, SD karta, klávesnice
2.4 Paměťový model
Procesor přímo vidí pouze 64 kB paměti. Zbytek paměti je dostupný pomocí EMS:
- Vyhrazené paměťové okno
- Dynamické přemapování bloků
- Sdílená RAM pro komunikaci s grafikou
Tento přístup umožňuje:
- Rozšířit paměť nad limit 8bitové architektury
- Efektivně komunikovat mezi moduly
2.5 Komunikace mezi kartami
Komunikace probíhá přes sdílenou RAM:
- CPU zapíše požadavek do sdílené paměti
- Grafická karta si paměť převezme
- Zpracuje data
- Zapíše výsledek zpět
Výhody:
- Vysoká propustnost dat
- Oddělení odpovědností mezi moduly
- Překlene rozdíly v architektuře
- Oddělené čtení a zápis
- Funguje jako buffer
- Lze neomezeně rozšiřovat o nové příkazy
2.6 Proč to celé?
- Hluboké pochopení počítačů
- Experimentování s architekturou
- Kombinace starého a nového přístupu
- Plně kontrolovatelný systém
2.7 Stav projektu
- Architektura navržena
- Jednotlivé moduly ve vývoji
- MHF-002 funkční a prezentovaná
2.8 Budoucí směr
- Dokončení CPU desky
- Integrace všech modulů
- Vlastní operační systém
- Vývoj nástrojů a her
3 MHF-002 (Mega Home Forth v2)
3.1 Co to je?
MHF-002 je univerzální I/O a grafická karta pro 8bitový počítač, která může fungovat i samostatně jako SBC (Single Board Computer).
Oproti předchozí verzi přináší výrazně vyšší výkon a rozšíření.
3.2 Hardware
- MCU: ATmega2560
- RAM:
- 8kB interní RAM ATmega2560
- 128 kB lokální RAM CY7C109D
- (rozšíření RAM na 64 kB a zbytek pro externí přístup)
- 128 kB sdílená RAM (komunikace s CPU)
- Video výstup (VGA)
- PS/2 klávesnice
- SD karta
- USB-Serial (s HW řízením toku)
3.3 Architektura
Karta funguje jako samostatný počítač:
- Vlastní procesor (16 MHz)
- Přímý přístup ke sdílené paměti (bit banging)
- Řízení periferií
Díky tomu:
- Zvládá přesné časování videa
- Obsluhuje vstupy a výstupy
- Hlavní počítač se nemusí starat o detaily a časování
3.4 Sdílená paměť
Komunikace s hlavním CPU probíhá přes 128 kB RAM:
- Mapování do EMS okna
- Střídavý přístup CPU a MHF-002
- Přenos dat a příkazů
3.5 Použití
- Grafická karta
- I/O řadič
- Bootloader systému
- Samostatný počítač (SBC režim)
3.6 Software
Karta obsahuje:
- Nízkoúrovňové ovladače pro HW
- Interaktivní prostředí FORTH
- Možnost načítání programů a knihoven za běhu
FORTH umožňuje:
- Přímé ovládání hardware
- Rychlé testování
- Interaktivní vývoj
3.7 Ukázky na stánku
- Had (snake)
- Matrix screensaver
- Načítání ze SD karty
3.8 Výkon
Výkonově odpovídá přibližně:
- ZX81 s rozšířenou pamětí
- S modernějšími periferiemi (SD, video, serial)
3.9 Speciální vlastnost
Ve finálním systému bude karta:
- Inicializovat hlavní počítač
- Nahrávat operační systém do RAM
- Řídit start CPU
3.10 Budoucnost
- Plná integrace do systému
- Více specializovaných karet (video vs I/O)
- Využití FORTH pro dynamické řízení hardware
3.11 Shrnutí
MHF-002 není jen periferie.
Je to:
- Samostatný počítač
- Vývojová platforma
- Most mezi moderním a retro světem
4 Proč tam nedáš ESP32, STM32, Raspberry, Teensy, M5Stack, superpočítač ... ?
Protože je to periferie k 8bitovému počítači.
Takže by měla být
- 8bitová
- plně pochopitelná do posledních detailů
- posouvat limity toho, co jde s HW realizovat
- být výzvou a něčím, čím se můžu pochlubit
Kdyby mi šlo jen o hrubý výkon, mám doma Ryzen s 12 jádry, 32 GB RAM a pořádnou grafickou kartou a gamesku typu Had si stáhnu někde z netu. Jenže to umí každý a nic se tím nenaučí.
Inspirací mi byl projekt nazvaný "Squeezing Water from Stone 3: Arduino Nano", tedy ždímání vody z kamene, který dokázal z atmegy vyždímat plných 40x25 znaků na obrazovku.
Já z kamene ždímám syrovátku a dokážu na stejně rychlém stroji udělat 50x60 znaků, tedy plný trojnásobek.
A pořád tomu rozumím do poslední strojové instrukce, posledního logického hradla a posledního signálu.
5 MakerFaire2026_kecy
potrebuju udelat prezentaci projektu na Maker Faire.
Projekt je 8bitový "retro" počítač založený na HD6309 přetaktovaném ze 3MHz na 4MHz. Bude mít 128kB RAM CY7C109D (ze které přímo vidí jen 64 kB a ke zbytku přistupuje ve stylu EMS, tedy mapováním do vyhrazeného okna). Jako "GLUE" používá ATF1504AS pro mapování devices do paměti (VIA, PIA, ACIA), mapování EMS paměti a mapování "sdílené - shared" paměti do okna EMS. To je hlavní deska počítače.
Dále bude mít desku pro grafiku (MHF-002), která bude obsahovat shared RAM 128kB prez kterou se budou předávat data mezi procesorem HD6309 a grafickou kartou MHF-002. Procesor si namapuje tuto RAM do EMS okna, zapíše tam požadavky, pak ji uvolní. MHF-002 si ji namapuje, přečte a splní požadavky, zapíše výsledky a zase si ji odmapuje. Procesor si ji namapuje a přečte výsledky a tak se to pořád opakuje. Tímto způsobem se získá velký datový tok za cenu lagu při přepínání a řeší se tím zcela odlišný způsob práce s pamětí u procesoru (nativní přístup, 4MHz) a MHF-002 (přímá manipulace s piny a "bit banging", 16MHz).
MHF-002 je druhá iterace následníka "počítače za cenu oběda" postaveného okolo Arduino Nano (s atmega328p), který jsem prezentoval loni. MHF-001 a MHF-002 jsou postavené okolo atmega2560, kvůli větší paměti a více IO pinů.
MHF-002 obsahuje mikrokontroler atmega2560 (z Arduino Mega Pro), "shared RAM" 128kB CY7C109D pro komunikaci s HD6309, druhou 128kB RAM CY7C109D pro rozšíření RAM z 8kB na 64 kB a několik jednoduchých obvodů řady 74HC pro ovládání VGA/RSA video výstupů, PS/2 klávesnice, čtečky SD kartet a USB-Serial modulu s HW řízením toku.
Ve výsledné sestavě budou tyto karty dvě, jedna pro viodeovýstup a druhá pro všechno ostatní, protože samotné video zabírá 12/13 času ve velkých blocích a vyžaduje přesné časování, zatímco PS/2, Serial a SD vyžadují nerušené bloky času v krátkých intervalech.
Dále ve výsledné sestavě budou karty s VIA, ACIA, PIA a podobnými obvody pro přímý vstup a výstup dat.
Při startu jedna MHF-002 naplní část RAM na procesorové desce daty ("ROM část" s operačním systémem) a teprve pak nechá spustit HD6309.
---
Presentace by měla být rozdělená na dvě části, ideálně ve formě dvou RST (restructured text) souborů pro prezentaci na webu a pro vytištění na papír na stánek. Jedna část věnovaná celému projektu (který je zatím ve stavu návrhu) a druhá věnovaná MHF-002 (Mega Home Forth, verze 2) desce, kterou tam budu předvádět
MHF-002 nyní obsahuje "ovladače" pro veškerý svůj HW a pro potřeby ladění obsahuje FORTH, který umožňuje tyto ovladače používat (a testovat) a slouží jako interaktivní a programovatelný shell pro její systém. Prezentace obsahuje hru Had ("snake") a screensaver "matrix", které se načtou z SD karty. Přítomnost FORTHu v budoucnu umožní retropočítači programovat tuto kartu za běhu přesně pro potřeby aktuálních programů.
Předváděné karty jsou nakonfigurovány do režimu SBC (Single Board Computer), který umožňuje jejich nezávislý běh. Výkonově je jedna karta řádově srovnatelná s počítačem ZX 81 doplněným větší pamětí a přídavnými zařízeními, zejména SD.
MakerFaire 2026 shrnutí 







