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| | ||