Im Falles des 8563 Video Controllers, seinerzeit eingesetzt im C128,
zeigt sich einmal mehr, zu welch' schlimmen mentalen Verwüstungen der
unkontrollierte Konsum Bewusstseins-verändernder Drogen während des
Designprozesses führen kann.
Der 8563 besaß 16KiB (konnte bis zu 64KiB) eigenständiges, von außen
nicht adressierbares RAM, welches indirekt über einen Satz von 37
Registern angesteuert wurden.
Aber bei dieser ersten Indirektion beließ man es natürlich nicht. In
typischer ›Hold my beer‹ Manier kam man auf die verwegene Idee, diese 37
Register lieber noch durch eine zweite Indirektionsebene zu schleusen.
Und so findet man 2 (zwei!) direkt adressierbare Register, durch den der
Prozessor das gesamte Geraffel steuert.
Nach Einnahme mehrerer Blättchen Löschpapiers besann man sich zudem auf
eine in seiner Cleverness schon richtungweisende Arbeitsweise.
Man muss in kontinuierlich pollender Weise die Fertigmeldungen jeder
Registermanipulation des Video Controllers abfragen. Schließlich wären
Interrupts ja doch nur Teufelszeug.
Aber schließlich zählt nur das Ergebnis.
* Es sollte umständlich sein. CHECK
* Es sollte langsam sein. CHECK
* Es sollte RGB (Richtig Geil Bunt) können. CHECK
Angehängt ein kleines Stück Assembler-Code (schlechtes Wetter und
Langeweile) zur Demonstration. Teile hätte man evtl. auch in BASIC
schreiben können, aber wie aus gewöhnlich gut unterrichteten Quellen zu
hören war, wird sich unsere Sonne in geschätzten fünf Milliarden Jahren
zu einem roten Riesen aufblähen. Also bleibt für BASIC nicht genug Zeit.
1 | $ make clean && make
|
2 | rm -f *.o *.hex *.prg
|
3 | ca65 -t none -o col80.o col80.s
|
4 | ld65 -t none -o col80.prg col80.o
|
5 | -rw------- 1 norbert norbert 113 11. Okt 15:26 col80.prg
|
6 | rm col80.o
|
7 | $
|
Das ›col80.prg‹ habe ich mal zur Bequemlichkeit (für die ›nicht selber
Bauer‹) mit angehängt.
Kann man in ›vice‹ mit Alt-A … select col80.prg … Autostart testen.