practic 2/88, S. 87-90

Andrea und Ulf Kindermann

Vollgrafik mit dem Z1013

Eine Zusatzschaltung macht's möglich

Bei allen Möglichkeiten der Pseudografik – wer hat sich für seinen Z 1013 noch keine Vollgrafik gewünscht? Die vorliegende Schaltung ist eine Möglichkeit, sich diesen Wunsch zu erfüllen.

Die Baugruppe erzeugt alle notwendigen Synchronsignale und enthält den benötigten Video-RAM von 6 Kbyte. Bis auf den Austausch einer Lötbrücke gegen einen Schalter sind auf der Grundplatine keine Eingriffe notwendig. Die Grafik realisiert 256*192=49152 freiprogrammierbare Bildpunkte.

Der Bildwiederholspeicher beginnt bei #4000. Die Schaltung wurde nach einer Idee von Gerald Thielemann so konzipiert, daß im Interesse des Amateurs kein Abgleich für die Synchronsignale des Fernsehers notwendig ist. Der zur Takterzeugung verwendete 14 Mhz Quarz kann durch leichter zu beschaffende Funkmodellquarze 27…27,3 Mhz ersetzt werden. Dann ist eine zusätzliche Taktteilung notwendig. Dazu wird der z. Z. nicht benötigte Teil des '274 (IC 2) verwendet, indem die Leitung von Pin 3 zum Ausgang des Negators aufgetrennt, der Negatorausgang mit Pin 11, Pin 9 mit Pin 3 und Pin 8 mit Pin 12 verbunden wird. Außerdem entfallen die Leitungen nach Pin 2 und 3 des '130 (IC 6). Die Angegebenen 4,7 k und 15 pF am Quarz gelten für DL04 und 14 Mhz.

Je nach Quarz und IC-Typ (D204, 74LS04, DL000) sind diese Werte zu ändern. Experimentell ermittelte Richtwerte liegen zwischen 1 k und 4,7 k sowie 15 pF und 100 pF. Bei Einschwingproblemen hat es sich bewährt, einen der Widerstände um ca. 50 % zu verkleinern.

Mit den IC-Gattern rechts neben dem '8205 (IC 26) realisierten wir einen störfreien Zugriff durch die CPU in den Bildwiederholspeicher auch während des Bildaufbaues. Eine Maßnahme, die völlig unverständlicherweise bei unseren KCs fehlt. Das WAIT-Signal wird nur innerhalb des Bildfensters und nur solange aktiviert, bis das gerade für die Bilddarstellung benötigte Byte durch die '195 (IC 15, 16) übernommen wurde. Bis das nächste Byte benötigt wird, kann die CPU ihren Speicherzugriff durchführen, ohne das es zu Störungen auf dem Bildschirm kommt. Der Zeitverlust ist so minimal (ca. 6 %), das selbst bei direktem Einlesen vom Tonband in den Bildspeicher keine Probleme auftreten. Die Arbeit außerhalb des Bildspeichers ist unbeeinflußt. Die asynchrone Arbeitsweise- ermöglicht außerdem eine freie Wahl des CPU-Taktes. Erprobt wurden 2; 3,5 und 4 MHz.

Für den Bildspeicher verwendeten wir U 214. Um Verdrahtungsarbeit zur sparen, kann man jeweils 6 U214 als Turm übereinanderlöten. Es werden alle Pins miteinander verbunden, lediglich das /CS-Signal wird getrennt zugeführt. Es werden 2 solche Türme benötigt. Der eine für bit 0…3, der andere für bit 4…7.

Die Baugruppe wird als Zusatzmodul auf den Erweiterungsbaugruppenträger gesteckt. Dadurch ist keine Memdi-Erzeugung nötig, selbst wenn man seinen Grundrechner im RAM aufgestockt hat.

Die Verwendung der 16 Kbyte Erweiterungsmodule von ROBOTRON gleichzeitig und parallel zum Speicher der Grafikkarte ergab keine Probleme, ist aber nicht zu empfehlen (gleichzeitiges Ansprechen zweier Speicher).

Das Signal 'VIDEO Z 1013' wird direkt in den Videoeingang des Fernsehers eingespeist oder anstelle des normalen Z 1013 Signals in den HF-Teil des Rechners. Dazu wird die Brücke (E7) neben dem HF-Modulator herausgenommen und über einen Umschalter entweder das Signal der Grundplatte oder das Grafiksignal dem HF-Teil zugeführt.

Da ein Computer nur soviel Wert ist, wie seine Software zu leisten vermag, soll eine Grundidee dieser Schaltung nicht unerwähnt bleiben: Alle softwarerelevanten Parameter (Bildaufbau, Speicheraufteilung, /INT-Erzeugung) sind identisch zum Spectrum von Sinclair. Damit besteht die Möglichkeit, die Schaltung modular bis zur vollen Kompatibilität auszubauen. Nur für diese Anwendung ist die /INT-Erzeugung notwendig, kann aber auch so als CTC-Ersatz (20ms) verwendet werden.

Noch ein Wort zu den verwendeten ICs. Außer für den '274 (IC 2) und die '195 (IC 15, 16) sowie die Negatoren (IC 1) am Quarz wurden in mehreren Testschaltungen Bastlerbauelemente problemlos eingesetzt.

Bild 1 Bild 2

Bild 2 zeigt ein mit dem 10k-Basicinterpreter erzeugtes 'Seepferdchental'. Da Fraktale ausführlich in der MP 1/88 behandelt wurden, hier nur kurz die Besonderheiten des Z1013. Da kein Befehl PSET (n,m) vorhanden ist und ein MC-Programm den Rahmen dieses Beitrages sprengt, wird das Unterprogramm ab Zeile 500 benötigt: Es setzt einen Punkt entsprechend der Koordinaten (n,m), wobei 0,0 links oben liegt. Diese Routine ist auch für eigene Grafikanwendungen verwendbar. Dann ist jedoch bei Zeile 540 je nach Art des Programms eine Prüfung notwendig, ob der Punkt schon gesetzt ist. Darauf kann aus Zeitgründen verzichtet werden, doch in Geduld muß man sich trotzdem üben.

Die etwas aufwendige Mathematik in den Zeilen 510 bis 530 ist auf Grund des gewählten Bildaufbaues (Spectrum) notwendig, da die Zeilen nicht nacheinander beschrieben werden.

In Zeile 20 und 30 wird der darzustellende Bildausschnitt festgelegt. Eine Iterationstiefe von 54 (Zeile 40) ist für Bild 2 ausreichend. Bei anderen Bildausschnitten können erheblich höhere Werte notwendig werden. Experimentieren lohnt sich. Viel Vergnügen

10 CLS : REM Def. der Randwerte
20 XU=0.555382: XO=0.565382
30 YU=-0.645324:YO=-63859
40 KX=54 : REM Iterationstiefe
50 DX=(XO-XU)/255:DY=(YO-YU)/191
60 FOR M=0 TO 191
70 YC=YU+M*DY
80 FOR N=0 TO 255
90 XC=XU+N*DX
100 K=0:XZ=0:YZ=0
110 K=K+1
120 XX=XZ*XZ:YY=YZ*YZ
130 YZ=2*XZ*YZ-YC: XZ=XX-YY-XC
140 IF K=KX GOTO 160
150 IF XX+YY<100 GOTO 110
160 F=K-INT(K/2)*2
170 IF F=0 GOSUB 500
180 NEXT N
190 NEXT M
200 STOP
500 REM UP-PSET (n,m)
510 RC=INT(M/64):MM=M-RC*64
520 RB=INT(MM/8):RA=MM-RB*8
530 RD=16384+RA*256+RB*32+RC*2048+INT(N/8)
540 RE=PEEK(RD)
550 RE=RE+2^(7-(N/8-INT(N/8))*8
560 POKE(RD,RE):RETURN