Funkamateur 08/90 |
Nachdem wir im ersten Teil damit begonnen haben, die Hardware des Floppy-Controllers zu beschreiben, drucken wir in dieser Ausgabe die Listings des Laders und des BIOS vollständig ab. Anschließend folgt die komplette Bauanleitung des Grafik-Display-Controllers inklusive Grundsoftware.
...
In der Vergangenheit war der technische Aufwand für Grafikschaltungen beträchtlich.
Die modernen Bauelemente erlauben jedoch den Aufbau leistungsfähiger und trotzdem
einfacher Schaltungen, mit denen die älteren Geräte ganz wesentlich aufgewertet
werden können. Besonders vorteilhaft ist der Einsatz der Grafikschaltung bei Rechnern,
die nur einen "kleinen" Bildschirm mit 16 Zeilen zu 64 Spalten haben, weil sich aus dem
o. a. Bildschirmformat bei alphanumerischer Ausgabe 25 Zeilen zu 80 Spalten
ergeben. Die Schaltung nach Bild 5 arbeitet mit dem Grafik-Display-Controller
(GDC) U82720. Sie ist auf einer Leiterplatte mit den Maßen 95 mm x 170 mm
untergebracht und steckt im Gerät zusätzlich; der Bildschirmanschluß wird nur
umgesteckt. So läßt sich mit wenigen Handgriffen der Originalzustand wiederherstellen.
Schaltung und Leiterplatte wurden für einen Eigenbaucomputer [1] entwickelt und bereits
veröffentlicht [4], sind aber wenig bekannt und werden deshalb hier nochmals vorgestellt.
Der GDC-Schaltkreis liegt im Gerät zwischen Mikroprozessor und Bildschirm.
über das Mikroprozessorinterface gelangen Daten und Steuersignale an den Controller,
die es erlauben, die Bildschirmkennwerte in weiten Grenzen zu programmieren.
Die darzustellenden Daten werden in den Bildspeicher geschrieben und dieser dann
zur Anzeige zyklisch ausgelesen. Er liegt nicht im Speicherbereich des Mikroprozessors,
blockiert also keinen Hauptspeicherplatz bzw. muß nicht aus- und eingeschaltet werden.
Das Bildschirmformat lehnt sich mit 640 x 200 Punkten an verbreitete Geräte an und nutzt
einen Bildspeicher von 2 x 8 KByte.
Der Trend in der Entwicklung der Speicherschaltkreise erlaubt den weiteren Ausbau dieses
Bildwiederholspeichers ohne neues Leiterplatten-Layout. Zur Vereinfachung des Nachbaus und
aus Kostengründen ist die Leiterplatte einseitig ausgelegt, denn durchkontaktierte
Leiterplatten sind relativ teuer, und einige Drahtbrücken auf der Bestückungsseite bleiben
günstiger als eine zweiseitige Platine mit vielen handgelöteten "Durchkontaktierungen".
Auch die Auswahl der Bauelemente folgte teilweise diesem Prinzip. So dienen als Zwischenspeicher
für die Adressen Schieberegister, die für dieses Layout eine günstigere Anordnung der
Ein- und Ausgänge aufweisen als die üblichen Adressenlatches. Die übrige Schaltung wurde so
einfach wie möglich gehalten. Durch den Einsatz statischer RAMs ist sie leichter zu beherrschen,
und Fehler sind eher zu finden.
Das Programm initialisiert die Schaltung für Grafikbetrieb und erlaubt die Ausgabe alphanumerischer
Daten mit den beim Betriebssystem SCP üblichen Steuerzeichen.
Die Ausgabe alphanumerischer Zeichen in der Betriebsart Grafik erfolgt, indem
sie als Punktmuster in den Parameter-RAM des GDC geschrieben werden und von diesem als "Zeichnung"
in den Bildspeicher gelangen. Das Punktmuster der ASCII-Zeichen entsteht mit Hilfe eines
Unterprogramms, das in ähnlicher Weise wie die Hardware des ersetzten alphanumerischen Displays
mit einer Tabelle als Zeichengenerator zur Umwandlung arbeitet. Sie befindet sich am
Ende des GDC-Programms. Die Zeichenausgabe erfordert folgende Operationen:
Beim Bildschirmrollen ist es bei herkömmlichen Schaltungen notwendig, den Inhalt
des Bildwiederholspeichers zurückzulesen, auf die nächste (obere) Zeile zu schreiben, und die unterste
durch Löschen freizumachen. Bei Grafikbildschirmen mit größerem Speicher entsteht dabei merklicher
Zeitaufwand. Der GDC U82720 erlaubt schnelles Rollen des Bildschirms, indem man die Anfangsadresse
des Bildwiederholspeichers anders programmiert.
Das Assemblerlisting zeigt den Programmanfang mit einigen Einsprungadressen, die
von Anwenderprogrammen direkt genutzt werden können. Die eigentliche Stärke des
Controllers ist das Zeichnen von Figuren. Die Software unterstützt das nur bedingt.
"Fertig" stehen nur die Funktionen Zeichenausgabe, Punkt setzen, Linie und Rechteck zeichnen
sowie Schreiben und Zurücklesen eines Feldes mit acht Bildschirmzeilen (eine Zeichenzeile) zur
Verfügung. Die im GDC enthaltene Funktion "Kreis zeichnen" wurde zwar zunächst implementiert, ist
jedoch nicht so recht brauchbar, weil durch die ungleichmäßige Aufteilung der Bildpunkte horizontal
und vertikal die Kurven nicht kreisförmig sind. Der Kreis muß deshalb berechnet werden. Mit den
vorhandenen Funktionen kann man jedoch alle nur denkbaren Figuren zeichnen. Die Koordinaten müssen
dann in einem übergeordneten Programm berechnet werden, wodurch die "Zeichenzeile rücklesen" und
"Zeichenzeile schreiben" lassen sich Zeichnungen vom Bildschirm auf Diskette oder Drucker
und zurück bringen.
Die Grafikroutine wurde auf die Adresse F600H gelegt, weil sie länger ist als
die alphanumerische und auf diese Weise kaum zusätzlichen Speicherplatz, sondern
den des stillgelegten Bildschirms belegt. Bei Änderungen am BIOS sollten die
Einsprungtabelle und der RAM-Bereich ("GDC-RAM") beibehalten werden, damit man
Grafikprogramme untereinander austauschen kann.
[1] | Kramer, M.: Praktische Mikrocomputertechnik, Militärverlag der DDR, Berlin 1987 |
[4] | Kramer, M.: Baugruppen für Eigenbaucomputer, 4.KDT-Computerfachtagung, Frankfurt(Oder), 1987 |
147 KByte | 118 KByte |
Rückseite | Prototypen |
180 KByte | 183 KByte | 181 KByte |
Bild 5 | Bild 6 | Bild 7 |
512 KByte | 84 KByte |
Listing | Disketteninhalt |
82 KByte | 86 KByte | 70 KByte |
Grafikbeispiele |