Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
z1013:literatur:practic-88-2-1 [2010/09/03 11:33] – angelegt volkerpz1013:literatur:practic-88-2-1 [2017/09/08 11:40] (aktuell) – [Programmbeispiel] volkerp
Zeile 20: Zeile 20:
  
 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. 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.
 +
 +{{:z1013:literatur:practic-88-22.jpg?300|}}
 +{{:z1013:literatur:practic-88-23.jpg?300|}}
  
 ===== IC im Turm ===== ===== IC im Turm =====
Zeile 33: Zeile 36:
 ===== Welche Software ===== ===== Welche Software =====
  
-Da ein Computer nur soviel Wert st, 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.+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. 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.
Zeile 42: Zeile 45:
 {{:z1013:literatur:practic-88-26.jpg?200|Bild 2}} {{:z1013:literatur:practic-88-26.jpg?200|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 dei.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.+**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.  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 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
- 
-{{:z1013:literatur:practic-88-22.jpg?400|}} 
-{{:z1013:literatur:practic-88-23.jpg?400|}} 
  
  
 +<code freebasic>
 +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
 +</code>
  
  • z1013/literatur/practic-88-2-1.1283513583.txt.gz
  • Zuletzt geändert: 2010/09/02 22:00
  • (Externe Bearbeitung)