Nick 2.0
Gondolkodtam hogyan lehetne továbbfejleszteni a Nick-et, úgy hogy a meglévő módokat ne változtassam.
Az egyik amire szükség van feltétlenül, hogy több mint 8 bites legyen a video memória adatbusza.
Ennek köszönhetően egy karakterszélesség alatt nem 3 byte memóriahozzáférés, hanem ennek többszöröse érhető el.
Mondjuk lehetne a nick 2.0 majd 24 adatbites.
A nick 40 karakteres "szöveges" módját ki kellene terjeszteni, hogy a 80 karakteres módot is szöveges módban támogassa. Ehhez a TEXT 40 LD2 mutatójának legfelső bitjét használnám, mert az mindig nulla.
Ha ez a bit aktív, az LD1-ről nem 40 hanem 80 karaktert olvas és a karaktermező ugyanott lenne mint text 40-nél. Az EXOS-t kell csak hozzáigazítani.
Van egy nem használt mód a nickben:
Kiterjeszteném a NICK memóriahozzáférését az EP teljes 4MB memóriájára.
Ez a nem használt mód kiterjesztett-grafikus mód lenne. Ebben a módban az LD 1 pointert és az LD2 egyik bájtját együtt kezelném. Így egy 20 bites címet alkotva ami az EP teljes memóriájában bárhova mutathat.
A színmódok közül a 4 színű mód pixelméretével lehetővé tenném a 256 szín megjelenítését.
Tegnap számolgattam graphics 4-ben a maximális képpont kb: 336x252 képpont lenne ami 256 szín esetén képpontonként 1byte, így 83KB memória kellene. Ezt csak a nick fent leírt címzés kiterjesztésével lehet elérni, tekintve hogy alapból csak 64k-et tud.
Ha egy programhoz "frambuffer" kell, ami azt jelenti, hogy az egyik képet mutatom míg a másikat rajzolom, akkor így 2*83KB=166KB fog kelleni csak a képnek.
A framebuffer támogatását úgy oldanám meg, hogy két sorparaméter tábla (LPT) lenne, és ha a Z80 jelez, hogy elkészült, akkor váltana a másikra a Nick 2.0.
Mindebből következik, hogy a Z80 memóriahozzáférése független lenne a NICK-től, nem lenne várakozás. Ezt vagy gyorsabb memóriával és időzítéssel oldanám meg, vagy kettős hozzáférésű (dual port) memóriával.
A hardveres sprite kezelésen még gondolkodom, hogyan lehetne az egész képre kialakítani. Ha lesz "frambuffer" lehet hogy nem lesz szükség nagy hardveres támogatásra, csak gyors mezőmásolásra. Tehát hogy a Z80 egy-két I/O utasítással megadja a sprite helyét a memóriában, x/y felbontását, és hogy hova kell másolni. NICK 2.0 pedig elvégzi a háttérben, majd jelez megszakítással ha kész.
Ezzel gyakorlatilag egy feturbózott Amiga környékére katapulna az Enterprise számítógép.
Ilyen szép video képességekkel már szükséges lehet a CPU-t 80 MHz környékére felhúzni.