" .. například pro typický textový režim 40x25 znaků se alokuje pouze 1000 bytů paměti. "
A to byly dokonce počítače, které měly 1024 B RAM celkem ! Tedy na zdroják v BASICu, proměnné, buffer klávesnice, VideoRAM .. - např. první verze ZX81. Ty další už měly 2 kiB.
".. Některé typy osmibitových počítačů neumožňovaly práci v plnohodnotném grafickém režimu. Představitelem těchto počítačů je například známý Sinclair ZX81. Jednoduché grafické obrazce však bylo možno vytvářet ze specializovaných znaků, které se typicky nacházely mimo standardní část ASCII kódu"
Typicky např. IQ151, kde byly dodefinovány znaky "všechny kombinace rozpůleného čtverec horizontálně i vertikálně". Tím pádem pak nebylo rozlišení "jen" 32x32 ale "až" 64x64.
Ale to není vše - i na ZX81 existovaly hry (vím z doslechu o jednom leteckém simulátoru) které jistým způsobem zobrazovaly pokus o grafiku. Trik byl v tom, že se při vytváření obrazu používaly matrice znaků uložené přímo v EPROMce. No a šikovní programátoři si obsah EPROMky prošli, vybrali místa která se jim graficky hodila do krámu a při zobrazování příslušných znaků si pak jenom dočasně přepsali adresu ze které se podoba znaků načítala. Byl na to sprostý trik - aby se nekomplikoval obvod zobrazující znaky, byl na ZX-81 pro zobrazování zneužíván CPU. Max. velikost paměti totiž byla jen 32 kiB - pokud se adresovalo výš (tedy 32-64 kiB -> A15=1), pak obvod ULA zpozorněl. Nechal CPU ať si naadresuje příslušný byte (obvykle z tabulky znaků), tuto hodnotu si převzal (a pak ji sériovým registrem "vysypal" jako posloupnost bodů), ale zároveň datovou sběrnici na straně CPU uzemnil, aby CPU přečetl 00. To pro něj byla instrukce NOP, která znamenala "nic nedělej a pokračuj na další adrese" ..
Takové provázání CPU a grafiky už snad nebylo nikde jinde. Na "moderních" verzích ZX-Spectrum si obvod ULA sahal do RAM sám. Pokud zjistil kolizi (současný přístup z CPU), pak CPU "podržel" na chvíli hodinový takt na "H", protože i ten měl pod palcem. Velmi jednoduché a elegantní řešení, že ?
".. Podle rozlišovací schopnosti můžeme osmibitové počítače zhruba rozdělit do dvou skupin:
1. V první skupině se nacházejí počítače, které zobrazovaly obraz v rozlišení 256x192 pixelů...
2. Ve druhé skupině se nacházejí počítače, jejichž maximální podporované rozlišení bylo 320x192 resp. 320x200 pixelů nebo vyšší. "
Přidal bych ještě 3. skupinu - PMD-85 s rozlišením 288x243. Proč to zvláštní číslo ? Obraz se generoval tak, že čítače (sestavené poctivě a přahledně z hradel a čítačů 7493) postupně adresovaly "mikrořádek", který byl uložen v 64 B paměti. To celkem dělá 384 bodů (1 byte je 6 bodů + 2 stavové bity - blikání a intenzivní jas). Jenže díky "šikovnému" návrhu se ty čítače nedaly zastavit ani při zpětném běhu paprsku, takže i v tu chvíly běžely dál. Proto se to řešilo softwarově - prvních 48 B se využívalo jako _skutečná_ videopaměť, následujících 16 B byl nevyužitelný balast. I když po pravdě řečeno i tyto velmi krátké úseky některé programy dokázaly využívat (nějaká verze assembleru) a protože i tyto body se daly při troše pozornosti na okraji obrazu uvidět, dal se průběh překladu sledovat i v grafickém vyjádření :)
No a zbytek 243 -> 256 byly zase mikrořádky které se "naprázdno" načítaly během snímkového zpětného běhu.
".. V následujícím pokračování tohoto seriálu se budu věnovat popisu grafických subsystémů osmibitových počítačů Commodore C64 a také nezapomenu na ZX81 a ZX Spectrum."
Prvni verze ZX-81, kde ty casy jsou.... Dva kusy mam jeste doma - dokonale funkcni. Plus 16kB RAM modul. Vzpominate, jak se na ZX-81 delala "jemna" grafika ? To byla sila !! Chodilo to. Dokonce v "jemne" grafice byly na ZX-81 hry jako Manic Miner, ktere jely bez jakychkoliv hardwarovych uprav.
Dale mam 2 ks ZX Spectrum, jedno ZX Spectrum Plus, jedno ZX Spectrum 128 a 2 ks Sinclair QL. Vsechno me "ostre stroje" z te doby. Bylo by to na dlouhe povidani. Uz jsem musel reagovat na prispevek pod JirkaS, kde ocernoval ZX Spectrum :-) Byl by to dobry namet na Flame. Servali bychom se jako za starych casu v HiFiklubu :)
'Na "moderních" verzích ZX-Spectrum si obvod ULA sahal do RAM sám. Pokud zjistil kolizi (současný přístup z CPU), pak CPU "podržel" na chvíli hodinový takt na "H", protože i ten měl pod palcem. Velmi jednoduché a elegantní řešení, že ?'
jj, akorat tam byla priorita pri refreshi pameti. no a vzhledem k tomu, ze refresh delala z80 sama a dalo se ji hrabat do r-registu, dalo se tohle demonstrovat na sw rizenem rozjeti synchronizace mezi ula a paprskem na monitoru pri refreshi. :-) tenhle postup nefungoval akorat na klonu sinclaira jmenem mistrum, zverejnenem v ar a na klonech mistra -- napr. didaktiku M.