WHID 65040-032 - odpouzdřen, odhalen, zdokumentován
Tato dokumentace popisuje skutečné chování GDG chipu pozorované v gate-level HDL simulaci. Kde se liší od oficiální dokumentace (Service Manual MZ-800), je to explicitně uvedeno.
Sharp MZ-800 byla řada domácích počítačů japonské společnosti Sharp, která se dostala na trh v roce 1984. Modely řady MZ-800 pokračovaly v koncepci řady Sharp MZ a byly nástupci modelů MZ-80K (1978), MZ-80B (1981) a MZ-700 (1982). Modely řady MZ-800 umožňovaly grafické rozlišení 640 x 200 pixelů, což je výrazné zlepšení oproti řadě MZ-700, která umožňovala semigrafiku 80 x 50 v 8 barvách. Grafický výstup se parametry blížil úrovni tehdejších PC (grafika CGA). Každý pixel mohl mít vlastní barvu na rozdíl od grafických režimů v té době rozšířených 8bitových počítačů Sinclair ZX Spectrum, Atari 800XL/XE nebo Commodore C64.
Srdcem počítače MZ-800 byl bezesporu 100pinový obvod WHID 65040-032, který se na desce vyskytuje v pouzdru označeném SC65040G032 (SC - pravděpodobně znamená Sharp Custom). Poblíž tohoto chipu je na desce bílým písmem napsáno G.D.G. (Graphics Display Generator). Plný význam tohoto obvodu však není jen v generování grafického výstupu. GDG má v tomto počítači pod kontrolou krom jiného taky mapování pamětí a s tím vším spojený timing a management operačního módu MZ 800/700.
Dlouhá léta byl tento obvod opředen mlhou tajemství. Uživatelé MZ-800 sice měli k dispozici Service Manual, nicméně ten byl v mnohém poněkud strohý. Spousta emulátorů a programů pro MZ-800 tak vycházela z informací, které byly nasbírány metodou "průzkumu blackboxu".
Počátkem 21. století se česká skupina Sharpistů rozhodla, že veškerá tajemství, která GDG doposud skrýval, společnými silami odhalí. Byla to dlouhá, komplikovaná a nelehká cesta, které se zúčastnila spousta sharpistických nadšenců a jejich kamarádů. GDG tak bylo profesionálně odpouzdřeno, mnohokrát (dobře i špatně) mikroskopickou cestou nafoceno a následně podle křemíku zanalyzováno, nejen očima nadšenců, ale i několika analytickými programy, které si k tomuto účelu napsali.
Prvním skvělým výsledkem se pak stal funkční VHDL model, který byl po mnoha simulacích použit jako CPLD náhrada za skutečné GDG. A ono to fungovalo!!!
Po tomto úspěchu, kdy se shodou okolností IT svět a s ním i celá planeta Země přesunuly éry AI technologií, již zbýval pro sharpistické lidstvo jen jeden poslední krok: udělat kompletní AI simulaci, analýzu a finální zdokumentování GDG, které bude předáno dalším generacím. Nyní máte tu čest se s touto dokumentací seznámit.
Pozn.: dokumentace vznikala polo-automatickou cestou a je nejen pravděpodobné, ale i téměř jisté, že se v ní budou nějakou dobu vyskytovat drobné chyby, rozpory a nejasnosti. To vše ke GDG neoddělitelně patří! Budeme se však snažit tento dokument postupně doladit.
Toto je verze: 0.1 Datum uvedení: 2026-04-01 (ne, fakt to není aprílový žert :)
| Soubor | Téma |
|---|---|
| 01-reset-a-inicializace.md | Chování po power-on resetu, inicializace registrů |
| 02-video-timing.md | PAL/NTSC horizontální a vertikální timing |
| 03-ntpl-pal-ntsc.md | Pin NTPL - kompletní vliv na PAL/NTSC timing |
| 04-superimpose-cksw.md | Superimpose/CKSW bit - přepínání 50/60 Hz |
| 05-hbln.md | HBLN - horizontální blanking, přesné pozice a závislosti |
| Soubor | Téma |
|---|---|
| 06-memory-mapping.md | Mapování paměti a bank switching - porty E0H-E6H, VRAM organizace |
| 07-dram-address-map.md | DRAM adresové mapování CPU->RAS/CAS, WF registr, read-modify-write |
| Soubor | Téma |
|---|---|
| 08-mz700-video-system.md | MZ-700 znakový video systém - VRAM, atributy, CG, pipeline, barvy, blikání |
| 09-mz700-fetch-pipeline.md | Video fetch pipeline v MZ-700 textovém režimu, propagace změn, nCROM |
| 10-mz800-video-system.md | MZ-800 grafický video systém - režimy, roviny, paleta, pipeline, WF/RF |
| 11-paleta-a-barvy.md | Paletový systém, VRAM coldstart vzor |
| 12-hw-scroll.md | HW scroll - SOF, SSA/SEA, screen split, adresová konverze, border color |
| 13-dmd-undocumented.md | Nedokumentované DMD režimy - všech 16 kombinací, C53G zvukové maskování |
| Soubor | Téma |
|---|---|
| 14-wait-nwtgd.md | nWTGD - WAIT generování v MZ-700 režimu, mechanismus, časování |
| 15-wait-mz800.md | nWTGD - WAIT v MZ-800 grafických režimech, pipeline reset, WF/RF vliv |
| Soubor | Téma |
|---|---|
| 16-mz800-propagation.md | Propagace VRAM zápisu v MZ-800 - pipeline latence, racing the beam |
| 17-iorq-palette-border.md | Propagace změny palety a border color - mid-scanline efekty, latence |
| 18-scroll-propagation.md | Propagace scroll offset (SOF) - mid-scanline změna DRAM adres, torn line |
| 19-dmd-propagation.md | Propagace změny Display Mode Register - mid-scanline, asymetrie směru |
| Soubor | Téma |
|---|---|
| 20-extended-vram-missing.md | Chování bez rozšířené VRAM - prázdné sockety, vizuální dopady |
| 21-crs-sio-chipselect.md | Nezapojené chip-selecty nCRS (B0-B7) a nSIO (F4-F7) |
| 22-test-pin.md | Pin TEST - testovací/výrobní režim GDG |
| 23-mod7-pin.md | Pin MOD7 - pasivní status bit, Status Register bit mapa |
| 24-opravy-netlistu.md | Opravy chyb v GDG_core.vhd a VramModel |
| Soubor | Téma |
|---|---|
| mz800_pal.h | Definice video timingu PAL (NTPL=0, evropská verze) |
| mz800_ntsc.h | Definice video timingu NTSC (NTPL=1, japonská verze s evropským pxCLK) |
hdl-whid/GDG_core.vhd (gate-level, automaticky generováno z reverzního inženýrství)sim/ (cocotb testy, GHDL)docs/ (Service Manual MZ-800, mz-800.scav.cz)