GDG Project - Sharp MZ-800 @ GDG - Fully Undressed
WHID 65040-032 - odpouzdřen, odhalen, zdokumentován

Sharp MZ-800, GDG - Dokumentace chování z HDL simulace

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.

Úvod

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 :)

Obsah

Základy a timing

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

Paměťový systém

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

Video systém

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í

CPU synchronizace

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

Mid-scanline efekty (propagace)

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

Speciální témata

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

Dodatky

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)

Zdroje