Supergrafik ohne Erweiterungsmodul
Bekanntlich benötigt man für den VC 20 das Erweiterungsmodul, um hochauflösende Grafik darzustellen. Die Auflösung beträgt damit 160 mal 160 Punkte. Das abgedruckte Basicprogramm liefert aber eine Auflösung von 176 mal 184 Punkten.
Nun eine knappe Erläuterung des Programms:
Die Idee besteht darin, den Zugriff des Zeichengenerators in den freien RAM-Bereich zu legen. Immer wenn in eines der 22 x 23 = 506 Kästchen ein erster Punkt gesetzt werden soll, wird dieses Kästchen mit einem neuen Bildschirm-Code belegt. Damit können 256 der 506 Kästchen angesprochen werden, was wohl für die allermeisten Anwendungen ausreicht, insbesondere für das Erstellen von Funktionsgrafen. In Zeile 10 wird der neue Bereich für die Zeichen (5120 bis 7167) vor Basic geschützt. Die DATA-Zeilen 20 und 22 beinhalten ein kleines Maschinen-Programm, das den Bereich von 5120 bis 7167 vor jedem Programmlauf löscht (eine Basic-Routine würde dazu lästige Sekunden benötigen). In Zeile 135 wird nun der Zugriff des Zeichengenerators auf den freien RAM-Bereich bewerkstelligt.
In den Zeilen 300 bis 999 können Programmteile für die Bereitstellung der X und Y-Koordinaten eines Punktes untergebracht werden. Die Koordinate X darf Werte zwischen 0 und 175, die Koordinate Y Werte zwischen 0 und 183 annehmen. Das abgedruckte Programm generiert eine Sinuslinie.
Nach Ablauf des Programms wartet der VC 20 auf einen Tastendruck und schaltet dann in den Normal-Modus zurück.
Der eigentliche Grafikteil steht im Unterprogramm ab Zeile 4000. Zunächst werden aus X und Y die Koordinaten XS und YS eines der 506 Kästchen errechnet, danach das anzusprechende Byte BY und das Bit BI. Nach Feststellung des zu verwendenden Bildschirm-Codes in Zeile 4040 wird der Inhalt der entsprechenden Adresse im Zeichengeneratorbereich mit einer geeignet gewählten Zahl codiert. Dies führt dann zur Entstehung eines Punktes an der Stelle X, Y. Zusätzlichen Erweiterungen des Programms setzt nur der Speicher Grenzen.
(Rudolf Dörr)