Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
z9001:grafik [2011/08/28 08:29] – [Der Grafik-Zusatz von robotron] volkerpz9001:grafik [2022/10/28 11:57] (aktuell) – [Nutzung mit BASIC] volkerp
Zeile 3: Zeile 3:
 Der Z9001 ist im Standard-Zustand nicht vollgrafikfähig, da er lediglich Textmodus mit 40x24 bzw. 40x20 Zeichen bietet. Gleichwohl bietet das BASIC des Plotter-Moduls bzw. das im KC87.2x eingebaute BASIC86 jedoch Grafikbefehle. Allerdings sind dies nur Platzhalter in der Liste der verfügbaren BASIC-Befehle; ein vollständiger Code für diese Befehle muss außerhalb des BASIC als Treiber {{grafik.zip|}} hinzugeladen werden. Der Z9001 ist im Standard-Zustand nicht vollgrafikfähig, da er lediglich Textmodus mit 40x24 bzw. 40x20 Zeichen bietet. Gleichwohl bietet das BASIC des Plotter-Moduls bzw. das im KC87.2x eingebaute BASIC86 jedoch Grafikbefehle. Allerdings sind dies nur Platzhalter in der Liste der verfügbaren BASIC-Befehle; ein vollständiger Code für diese Befehle muss außerhalb des BASIC als Treiber {{grafik.zip|}} hinzugeladen werden.
  
-{{uhr_4tel_grafik.jpg?100 }} Solche Treiber gibt es von Robotron für **[[z9001:plotter|]]**, den bei U. Zander beschrieben **{{http://www.sax.de/~zander/z9001/module/pixgraf.html|Grafik-Zusatz}}** sowie von mir für den **unverbauten KC87** mit einer Auflösung von 40x24 "Pixeln" und 80x48 Pixeln (Viertel-Grafik, im Bild eine Analog-Uhr mit diesem Treiber). Neu hinzugekommen ist auch ein Treiber für die [[z9001:erweiterungen:krtgrafik|]].+{{uhr_4tel_grafik.jpg?100 }} Solche Treiber gibt es  
 +  * von Robotron für [[z9001:plotter|]],  
 +  für den Grafikzusatz http://www.sax.de/~zander/z9001/module/pixgraf.html 
 +  * von mir einen **Viertel-Grafik**-Treiber für den unverbauten KC87 mit einer Auflösung von 80x48 Pixeln (, im Bild eine Analog-Uhr mit diesem Treiber).  
 +  * und einen Treiber für die [[z9001:erweiterungen:krtgrafik|]].
  
    
Zeile 16: Zeile 20:
 Im aktuellen JKCEMU von J. Müller (ab Version 0.6) http://www.jens-mueller.org/jkcemu/index.html wird der Robotron-Grafik-Zusatz emuliert: Im aktuellen JKCEMU von J. Müller (ab Version 0.6) http://www.jens-mueller.org/jkcemu/index.html wird der Robotron-Grafik-Zusatz emuliert:
  
-{{grafik_test.gif}} {{grafik_sinus.gif}}\\ Beispiel-Grafiken mit R+GRDEM2, meiner Adaption des Plotter-Demo-Programms. Das originale Testprogramm R+GRDEMO.SSS gilt als verschollen.+{{grafik_test.gif}} {{grafik_sinus.gif}}\\ Beispiel-Grafiken mit R+GRDEM2, meiner Adaption des Plotter-Demo-Programms. (Ein originales Testprogramm GRDEMO.SSS ist erst 2011 aufgetaucht)
  
 Der Grafikzusatz enthält einen externen Pixelspeicher von 6144 Byte (0..17FFh) (= 256x192 Pixel / 8 Pixel/Byte ). Der Grafikzusatz enthält einen externen Pixelspeicher von 6144 Byte (0..17FFh) (= 256x192 Pixel / 8 Pixel/Byte ).
Zeile 40: Zeile 44:
 port    0B8h            ; Farbe + Grafik ein/aus port    0B8h            ; Farbe + Grafik ein/aus
                         ; 7 6 5 4 3 2 1 0                         ; 7 6 5 4 3 2 1 0
-                        ; | | | | | | | | +                        ; | +-+-+ +-+-+ 
-                        ; | --|-- --|--+                        ; |       |
                         ; |       PAPER (BGR)                         ; |       PAPER (BGR)
                         ; |     Grafik ein/aus                         ; |     Grafik ein/aus
Zeile 74: Zeile 78:
  
    
 +<WRAP clear></WRAP>
  
 ===== Nutzung mit BASIC ===== ===== Nutzung mit BASIC =====
Zeile 81: Zeile 86:
 Folgende Grafikbefehle gibt es im BASIC:\\ PSET, LINE, CIRCLE, PAINT, LABEL, SIZE, ZERO, HOME, GCLS, SCALE, SCREEN, POINT, XPOS, YPOS. Folgende Grafikbefehle gibt es im BASIC:\\ PSET, LINE, CIRCLE, PAINT, LABEL, SIZE, ZERO, HOME, GCLS, SCALE, SCREEN, POINT, XPOS, YPOS.
  
-Im Gegensatz zur Plotter-Anleitung können auch  XPOS, YPOS und (wenig sinnvoll) PAINT und POINT genutzt werden: +Im Erweiterung zur Plotter-Anleitung können auch  XPOS, YPOS und (wenig sinnvoll) PAINT und POINT genutzt werden: 
  
   * **XPOS** liefert als Rückgabeparameter die x-Koordinate des letzten erreichten Punktes,    * **XPOS** liefert als Rückgabeparameter die x-Koordinate des letzten erreichten Punktes, 
   * **YPOS** die entsprechende y-Koordinate.    * **YPOS** die entsprechende y-Koordinate. 
-  * **POINT(x,y)** liefert als Rückgabeparameter 0, wenn der Abfragepunkt x,y die Hintergrundfarbe, und 1, wenn der Abfragepunkt die Vordergrundfarbe hat.  +  * **POINT(x,y)** liefert als Rückgabeparameter 0, wenn der Abfragepunkt x,y die Hintergrundfarbe, und 1, wenn der Abfragepunkt die Vordergrundfarbe hat. Im Plottertreiber liefert POINT immer 0.  
-  * **PAINT (x,y)[,c[,d]]** ist undokumentiert, und weder im Plotter- noch im Vollgrafiktreiber realisiert. Im Plottertreiber ist PAINT im physischen Treiber mit einem Return kurzgeschlossen, POINT liefert immer 0.  +  * **PAINT (x,y)[,c[,d]]** ist undokumentiert, und weder im Plotter- noch im Vollgrafiktreiber realisiert. Im Plottertreiber ist PAINT im physischen Treiber mit einem Return kurzgeschlossen.  
-  * **LINE** akzeptiert neben dem Parameter B auch den Parameter BF.+  * **LINE** akzeptiert neben dem Parameter B auch den Parameter BF (box filled). Das ist jedoch nicht implementiert.
  
-Für die gemeinsame Programmierung von Vollgrafik und Plotter ist der **unterschiedlich große Zeichenbereich** zu beachten: Plotter: 2550x1800, Vollgrafik: 256x192. Zur Initialisierung beider Geräte dient der Befehl **SCREEN**: SCREEN 0,0 - Standardbildschirm, SCREEN 0,1 - Plotter (am E/A-Port) aktivieren, SCREEN 1 - Vollgrafik. Ein gleichzeitiger paralleler Betrieb von Vollgrafik und Plotter funktioniert nicht; es kann aber wechselweise auf beide Geräte (mit entsprechender Skalierung) derselbe Zeichenvorgang wiederholt werden.+Für die gemeinsame Programmierung von Vollgrafik und Plotter ist der **unterschiedlich große Zeichenbereich** zu beachten:  
 +  * Plotter: 2550x1800,  
 +  * Vollgrafik: 256x192.  
 +Zur Initialisierung beider Geräte dient der Befehl **SCREEN**:  
 +  * SCREEN 0,0 - Standardbildschirm,  
 +  * SCREEN 0,1 - Plotter (am E/A-Port) aktivieren,  
 +  * SCREEN 1 - Vollgrafik.  
 +Ein gleichzeitiger paralleler Betrieb von Vollgrafik und Plotter funktioniert nicht; es kann aber wechselweise auf beide Geräte (mit entsprechender Skalierung) derselbe Zeichenvorgang wiederholt werden.
  
 Die BASIC-Befehle sind bezogen auf die Vollgrafik in z9_gbas.pdf ({{http://www.sax.de/~zander/z9001/module/pixgraf.html|Grafik-Zusatz}} bei U. Zander beschrieben. Für die Plotter stehen die Befehle in den zugehörigen Handbüchern {{xy4131.pdf}} bzw. {{xy4140.pdf}} (s.a. [[z9001:plotter|]]). Die BASIC-Befehle sind bezogen auf die Vollgrafik in z9_gbas.pdf ({{http://www.sax.de/~zander/z9001/module/pixgraf.html|Grafik-Zusatz}} bei U. Zander beschrieben. Für die Plotter stehen die Befehle in den zugehörigen Handbüchern {{xy4131.pdf}} bzw. {{xy4140.pdf}} (s.a. [[z9001:plotter|]]).
  
-Mai 2009: Vermutlich stand das MSX-BASIC Vorlage für die Grafikbefehle. Auch die Auflösung von 256x192 Pixeln entspricht dem MSX-1-Standard. Die Befehle sind offenbar genauso wie im MSX-Standard definiert. (Quelle: MSX2 TECHNICAL HANDBOOK). In der  Ergänzung zur Bedienungsanleitung des KC87.2x {{:z9001:anleitung_kc87_2x.pdf|}} steht dazu: "Die Syntax und Semantik der Grafik-Anweisungen entsprechen weitgehend dem internationalen Standard und sind im Detail den Bedienungsanleitungen der grafischen Ausgabegeräte zu entnehmen."+Mai 2009: Vermutlich stand das MSX-BASIC Vorlage für die Grafikbefehle. Auch die Auflösung von 256x192 Pixeln entspricht dem MSX-1-Standard. Die Befehle sind offenbar genauso wie im MSX-Standard definiert. (Quelle: MSX2 TECHNICAL HANDBOOK). In der  Ergänzung zur Bedienungsanleitung des KC87.2x {{:z9001:anleitung_kc87_2x.pdf|}} steht dazu: "//Die Syntax und Semantik der Grafik-Anweisungen entsprechen weitgehend dem internationalen Standard// und sind im Detail den Bedienungsanleitungen der grafischen Ausgabegeräte zu entnehmen."\ Der MSX1-Standard beschreibt folgende Befehle:
  
   * **PSET %%{(%%X,Y) | STEP(X,Y)}[, <colour>[, <logical operation>]]** Draws the dot in the coordinate specified by (X,Y) on the graphic screen.   * **PSET %%{(%%X,Y) | STEP(X,Y)}[, <colour>[, <logical operation>]]** Draws the dot in the coordinate specified by (X,Y) on the graphic screen.
  • z9001/grafik.1314520178.txt.gz
  • Zuletzt geändert: 2011/08/28 08:29
  • von volkerp