"Sněžení" nebylo bezdůvodně. Umožňovalo použít paměti jen s jedním portem (pouze jedno souběžné čtení/zápis v jednu chvíli). Pozdější klony CGA už využívaly, že paměti mezitím zlevnily, takže měly dvojportové paměti a problém se sněžením nebyl (posílání pixelů na monitor bylo souběžně s čtením/zápisem z programu).
Zobrazení CGA na Hercules grafice (a monitoru) rezidentním programem bylo velmi pomalé - na hry nepoužitelné. Brácha měl doma na test úplně první grafiku od ATI, která uměla jak Hercules, tak CGA - tu dokázala posílat na MDA/Hercules monitor. Nějak si s tím pohráli, aby ten monitor nezničili - i když se říkalo, že se ten monitor namáhá. Na monitoru to bylo vizuálně standardní CGA (stupně šedi, ne dithering; všechny pixely stejné rozměry).
Re jednoportové paměti - ano, to je pravda. byly vlastně čtyři řešení:
1) nechat to tak, jak to udělalo IBM
2) aspoň vyvést IRQ, aby programátor mohl překreslovat v blank/syncech
3) dvouportové paměti
4) mít paměti tak rychlé, že by se o přístup mohl GPU a 6854 dělit. To měl právě BBC Micro, kde měli 6502 s 2MHz a museli použít (dražší) paměti zvládající 4MHz. Potom se přistupovalo k Video RAM režimem sudá-lichá.
Nebo samozřejmě double buffering, ale to je taky drahé (tedy bylo).
23. 12. 2021, 08:51 editováno autorem komentáře
U AT to nebylo o moc lepsi. Musel bych zapatrat v analech, ale pamatuji uz z docky z jednoho JZD že další irq se řešilo naretezenim dvou svabu - nějaké intel 8272 asi. Pricemz ten co měl napojeni na cpu se retezil přes IRQ 2 s tím dalším.
Tohle byl strašný prasokockohadopes. Ale to nesmi brát clovek optikou dnešní doby, kdy si kdejaký rozmazaný embedak ztěžuje na nevyhovující instrukci nebo flagy.
Dělalo se za úplně jiných technologických a finančních omezení.
Pokud si pamatuju, tak jako řadič přerušení se používal I8259 a ten se dal rozšířit. S 9ks se dalo mít až 64 úrovní přerušení... Ale musely být k dispozici signály CAS[2..0] - https://pdos.csail.mit.edu/6.828/2014/readings/hardware/8259A.pdf Figure 11