Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
z9001:grafik [2010/07/23 11:15] – Links to z9001:krtgrafik changed to z9001:erweiterungen:krtgrafik volkerp | z9001:grafik [2024/10/23 07:27] (aktuell) – [Grafikzusatz] volkerp | ||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
Der Z9001 ist im Standard-Zustand nicht vollgrafikfähig, | Der Z9001 ist im Standard-Zustand nicht vollgrafikfähig, | ||
- | {{uhr_4tel_grafik.jpg? | + | {{uhr_4tel_grafik.jpg? |
+ | * von Robotron für [[z9001: | ||
+ | | ||
+ | * von mir einen **Viertel-Grafik**-Treiber | ||
+ | * und einen Treiber für die [[z9001: | ||
- | + | Der Grafiktreiber wird im OS zuerst geladen (GRAF, GRAF14, ...), dann BASIC gestartet. Bei Memory end ist 32700 (oder kleiner) anzugeben. Dann kann man die Grafik-Programme laden und starten. | |
+ | |||
+ | Wird die Mega-Flash-Software genutzt, ist das analog, erst GRAF14 im OS laden, dann gleich das BASIC-Programm UHR14 laden. Die Mega-Flash-Software startet das Basic mit passendem memory end, lädt das Basic-Programm und startet es. | ||
===== Der Grafik-Zusatz von robotron ===== | ===== Der Grafik-Zusatz von robotron ===== | ||
Hinweis: der Nachbau dieser Vollgrafik ist nicht mehr empfehlenswert. Einfacher und vielseitiger ist die neu entwickelte [[z9001: | Hinweis: der Nachbau dieser Vollgrafik ist nicht mehr empfehlenswert. Einfacher und vielseitiger ist die neu entwickelte [[z9001: | ||
- | {{grafz.jpg? | + | {{:z9001:grafz.jpg? |
{{z9001_vollgrafik_robotron.jpg? | {{z9001_vollgrafik_robotron.jpg? | ||
Zeile 16: | Zeile 22: | ||
Im aktuellen JKCEMU von J. Müller (ab Version 0.6) http:// | Im aktuellen JKCEMU von J. Müller (ab Version 0.6) http:// | ||
- | {{grafik_test.gif}} {{grafik_sinus.gif}}\\ Beispiel-Grafiken mit R+GRDEM2, meiner Adaption des Plotter-Demo-Programms. | + | {{grafik_test.gif}} {{grafik_sinus.gif}}\\ Beispiel-Grafiken mit R+GRDEM2, meiner Adaption des Plotter-Demo-Programms. |
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 46: | ||
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 | ||
- | ; | | | | | | | | | + | ; | +-+-+ | +-+-+ |
- | ; | --|-- | --|-- | + | ; | |
; | | ; | | ||
; | | ; | | ||
Zeile 71: | Zeile 77: | ||
===== Der Plotter ===== | ===== Der Plotter ===== | ||
- | {{a_XY4131b.jpg? | + | {{a_XY4131b.jpg? |
+ | <WRAP clear></ | ||
===== Nutzung mit BASIC ===== | ===== Nutzung mit BASIC ===== | ||
Zeile 81: | Zeile 88: | ||
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 | + | Im Erweiterung |
+ | |||
+ | * **XPOS** liefert als Rückgabeparameter die x-Koordinate des letzten erreichten Punktes, | ||
+ | * **YPOS** die entsprechende y-Koordinate. | ||
+ | * **POINT(x, | ||
+ | * **PAINT (x, | ||
+ | * **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, | + | 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:// | Die BASIC-Befehle sind bezogen auf die Vollgrafik in z9_gbas.pdf ({{http:// | ||
- | 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 {{: | + | 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 {{: |
* **PSET %%{(%%X,Y) | STEP(X, | * **PSET %%{(%%X,Y) | STEP(X, | ||
Zeile 111: | Zeile 131: | ||
prinzipieller Aufbau des Treibers GRAF.COM: | prinzipieller Aufbau des Treibers GRAF.COM: | ||
- | Sprungverteiler physische Treiber Treiber für Plotter, im Anschluss Zeichentabelle Treiber für Vollgrafik BASIC-Erweiterung (logischer Treiber) Zeichensatztabelle f. Treiber für Vollgrafik Sprungverteiler BASIC-Erweiterung (Adresse 0A7D6h) | + | | Sprungverteiler physische Treiber |
+ | | Treiber für Plotter, im Anschluss Zeichentabelle | ||
+ | | Treiber für Vollgrafik BASIC-Erweiterung (logischer Treiber) | ||
+ | | Zeichensatztabelle f. Treiber für Vollgrafik | ||
+ | | Sprungverteiler BASIC-Erweiterung (Adresse 0A7D6h) | ||
Folgende Grafikbefehle gibt es im BASIC: PSET, LINE, CIRCLE, PAINT, LABEL, SIZE, ZERO, HOME, GCLS, SCALE, SCREEN, POINT, XPOS, YPOS. Alle diese Befehle werden vom logischen Treiber vollständig verarbeitet und führen deswegen nicht zu BASIC-Fehlern. Der BASIC-Treiber übernimmt die Analyse der Befehlszeile und die Skalierung der Koordinaten. Dann wird der Sprungverteiler für die physischen Treiber aufgerufen. | Folgende Grafikbefehle gibt es im BASIC: PSET, LINE, CIRCLE, PAINT, LABEL, SIZE, ZERO, HOME, GCLS, SCALE, SCREEN, POINT, XPOS, YPOS. Alle diese Befehle werden vom logischen Treiber vollständig verarbeitet und führen deswegen nicht zu BASIC-Fehlern. Der BASIC-Treiber übernimmt die Analyse der Befehlszeile und die Skalierung der Koordinaten. Dann wird der Sprungverteiler für die physischen Treiber aufgerufen. | ||
- | ^GRPLOT.BIN\\ Adr.^9800-A7FF\\ BASIC-Befehl->^Plotter phys. Treiber, Startcode\\ ruft Sprungverteiler | + | ^GRPLOT.BIN\\ Adr. 9800-A7FF |
|0A7D6h|pset|1| | | |0A7D6h|pset|1| | | ||
|0A7D9h|line|2|LINE kennt den BOXED-Mode BF, dieser ist aber nicht implementiert| | |0A7D9h|line|2|LINE kennt den BOXED-Mode BF, dieser ist aber nicht implementiert| |