Wie super ist die Supergrafik?
Supergraphik 64 ist ein Programm, dessen Befehle sich nicht nur auf die Grafik beziehen.
Nun, gehen wir den Befehlssatz von »Supergraphik 64« mal Schritt für Schritt durch. Da wäre als erstes der GMODE-Befehl zu nennen. Er ist die Schaltzentrale der Supergraphik, denn mit ihm bestimmen Sie, was angezeigt, und was befehligt wird. Denn zusätzlich zu den beiden hochauflösenden Seiten kann in der Textseite eine 80 x 50-Blockgrafik erstellt werden, und zwar mit genau denselben Befehlen. Es ist möglich, die Grafikseite 1 anzuzeigen, während Seite 2 oder die Textseite bearbeitet wird. Natürlich wird auch der Multicolormodus unterstützt. Allerdings ist es aus syntaktischen Gründen nicht möglich, eine Seite »normal« anzuzeigen und die andere in Multicolor zu bearbeiten. Mit diesem Befehl kann auch ein Textfenster in der Grafik definiert werden, allerdings nur im Normal-, nicht im Multicolormodus. Zum Textfenster ist zu sagen, daß die obere Kante nicht ganz flimmerfrei ist, was durch die zahlreichen Umschaltungen im VIC bedingt wird.
Hat man erst einmal eine Moduswahl vorgenommen, so kann man mit dem PLOT-Befehl fleißig Punkte setzen und löschen. Hier ergeben sich zusätzlich noch die Möglichkeiten, Punkte zu invertieren, wie auch einen Grafikcursor an die entsprechende Stelle zu setzen. Dieser Grafikcursor kann dann bei weiteren Befehlen als Ausgangspunkt benutzt werden. Ebenfalls mit dem PLOT-Befehl können Linien und sogar Linienzüge gezeichnet werden. Zu den Optionen »Setzen«, »Löschen«, »Invertieren«, »Grafikcursor Bewegen«, treten nun noch »Punktieren« und »Zählen«. Beim »Zählen« wird in eine beliebige Variable die Anzahl der abgefahrenen Punkte übergeben. Auch können zwei Linien, die nirgends im selben 8 x 8-Kästchen verlaufen, verschiedene Farben haben, obwohl Sie sich im »normalen« Modus befinden. Eine Option bewirkt, daß gleichzeitig mit der Linie die entsprechenden Bytes im Farb-RAM gesetzt werden.
Nun gibt es aber nicht nur Linien, auch Kreise wollen gezeichnet sein. Der zuständige Befehl heißt (natürlich) CIRCLE. Aber CIRCLE kann noch mehr. Auch Ellipsen und Vielecke sind kein Problem, es können sogar ein Anfangs- und ein Endwinkel für das Zeichen mitgegeben werden. Natürlich funktioniert CIRCLE auch mit allen schon bei PLOT angegebenen Optionen.
Weitere Befehle sind FRAME, mit dem ein beliebig dicker, rechteckiger Rahmen gemalt werden kann, sowie FILL, das allerdings nur ausgefüllte Rechtecke zeichnen kann. Das Ausfüllen beliebiger umrandeter Flächen ist mit Supergraphik nicht möglich.
Mit TEXT kann ein Text aus einem String an eine beliebige Stelle in eine Grafik hineinkopiert werden. Im 80 x 50 Modus erhalten Sie so vierfach vergrößerte Buchstaben. Natürlich kann die so entstandene Grafik auch wieder gelöscht werden; der Befehl lautet GCLEAR.
Mit dem INVERS-Befehl kann man die beiden Grafikseiten invertieren. Hier ist die Angabe einer Bitmaske möglich, um gestreift zu invertieren. Leider ist es weder möglich, bereichsweise zu invertieren, noch kann die Textseite invertiert werden.
Mit GCOMB lassen sich die beiden Grafikseiten verknüpfen; neben dem einfachen Kopieren einer Seite in die andere kann wahlweise eine UND-, ODER- oder EXKLUSIV-ODER-Verknüpfung durchgeführt werden.
Mit dem TRANS-Befehl wird die Textseite in eine der beiden Grafikseiten kopiert. Daraus ergeben sich völlig neue Dimensionen, wenn Sie einen Sieben-Nadel-Drucker, beispielsweise den MPS 801 besitzen. Dann können Sie nämlich über den HCOPY-Befehl die original 8 x 8-Matrix der Bildschirmzeichen ausdrucken!
In dieser Übersicht der allgemeinen Befehle fehlt nur noch GMOVE. Damit ist ein Verschieben oder Scrollen von Bildschirmzeilen nach links oder rechts möglich. Welche Zeilen verschoben oder gescrollt werden sollen, kann angegeben werden. Allerdings können auch im hochauflösenden Modus nur 8 x 8-Blöcke gescrollt werden.
Kommen wir als nächstes zu den selbstdefinierbaren Figuren. In einem Definitions-String muß angegeben sein, in welcher Richtung der Grafikcursor weiterbewegt, beziehungsweise wann ein Punkt gesetzt werden soll. Die so definierte Figur kann mit dem DRAW-Befehl an jeder Stelle des Bildschirms gezeichnet werden. Auch hier dürfen sämtliche oben angesprochene Optionen verwendet werden. Mit SCALE= können Sie vorher noch übergeben, mit welchem Vergrößerungsfaktor und um welchen Winkel gedreht ihre Figur erscheinen soll. Eine Anwendung sehen Sie in der Bildschirmaufnahme.
Die nächste Gruppe von Befehlen sind die Farbbefehle. Mit COLOR= können, für jeden der drei Bildschirme einzeln, Hintergrund- und Rahmenfarbe gesetzt werden. SCOL= bestimmt die Zeichenfarbe auf der gesamten entsprechenden Seite; sie kann mit PCOL= für einzelne Bildelemente abgeändert werden, um mehrfarbige Grafiken zu erhalten. Im Multicolor-Modus werden mit SCOL= auch die zwei zusätzlichen Farben angewählt.
Dem Speichern und Laden von Grafiken dienen die Befehle GSAVE und GLOAD. Da das Format, in dem ihre Grafiken geladen oder gespeichert werden, frei wählbar ist, können Bilder der verschiedensten Malprogramme geladen und weiterverarbeitet werden. Dummerweise scheint es kein Einheitsformat zu geben, so daß Sie beim Speichern oder Laden immer eine Formatangabe machen müssen, was auf die Dauer ziemlich lästig ist.
Mit HCOPY lassen sich Grafiken zu Papier bringen. Supergraphik unterstützt hierbei die verschiedensten Druckertypen, sogar den Farbdrucker Seikosha GP-700. Um nicht zuviel Speicherplatz für die Hardcopy-Routinen in Anspruch nehmen zu müssen, werden Sie beim Laden der Erweiterung nach Ihrem Druckertyp gefragt. Sie haben die Wahl zwischen den Commodore-Druckern 1525, 1526, MPS801, den Seikosha-Druckern GP 100-VC und GP 700A sowie Epson-Druckern mit Data Becker-Interface. Die entsprechende Routine wird dann nachgeladen.
Kommen wir nun zu den Sprites. Hier liegen einige Schwachpunkte. Denn bevor Sie mit den Spritebefehlen arbeiten können, müssen Sie erst einmal ein paar Sprites haben, und zwar in Form von 63 DATAs, wie in den guten alten Zeiten, in denen Sie noch keine Supergraphik hatten. Um diesem Mißstand abzuhelfen, hat Data Becker der Supergraphik-Diskette einen relativ komfortablen Sprite-Editor beigefügt. Dieser hat allerdings drei Mängel: Er mag keine Multicolor-Sprites; er ist aufgrund von eigenen Maschinenroutinen nur dann lauffähig, wenn Supergraphik nicht geladen ist; die von ihm erzeugten Disketten-Files können immer noch nicht von Ihnen und der Supergrafik verwendet werden. Ein kleines abgedrucktes Programm liest angeblich die Files von der Diskette und gibt die entsprechenden Zahlenwerte aus. Aber: Das abgedruckte Programm funktioniert nicht! Deswegen geben wir mit dem Listing 1 allen Supergraphik-Besitzern eine Routine in die Hand, mit der Sie sehr einfach DATA-Zeilen aus SPRITEFORMER-Files erzeugen können. Alles, was Sie jetzt zu tun haben ist: Startzeilennummer und Filename eintippen, 15 Sekunden warten, HOME und 21x RETURN drücken. Haben Sie alle Sprites im Speicher, einfach die Zeilen 0 bis 9 löschen und den Rest auf Disk speichern. Wenn Sie die Sprites später brauchen, einfach mit MERGE nachladen.
Mit SREAD können die 63 Daten einer Sprite-Definition in einen String eingelesen werden. Das geht wesentlich schneller als mit einer FOR-NEXT-Schleife. Mit SDEFINE können Sie dann einem der Sprites eine der Stringdefinitionen zuteilen. Dies hat den Vorteil, daß Sie die Definition für ein einzelnes Sprite schnell wechseln und somit Spriteinterne Bewegungsabläufe auch in Basic programmieren können. Mit SMODE legen Sie die übrigen Eigenschaften eines Sprite wie Multicolor, Farben, Größe und Priorität gegenüber dem Hintergrund fest.
Und wie kriegen Sie das nun auf ihre Mattscheibe? Dazu dient der Befehl SSET. Sie können damit nicht nur Sprites setzen, sondern auch bewegen, indem Sie Start- und Zielkoordinaten sowie die Geschwindigkeit angeben. Das Sprite läuft dann von selbst, und Ihr Programm etwas langsamer, das sich das ganze interruptgesteuert abspielt. Wenn Sie auf das Eintreffen eines Sprites am Ziel warten wollen, so hilft ihnen der SWAIT-Befehl weiter.
Und nun zu den in der Werbung angekündigten 16 Sprites, die gleichzeitig auf dem Schirm erscheinen sollen. Ich halte diese Formulierung für ein wenig übertrieben, 2 mal 8 Sprites wäre wohl richtiger. Denn mit dem SPOWER-Befehl können sie ein Bildschirmfenster definieren, in dem 8 andere Sprites erscheinen können, also auf dem restlichen Bildschirm. Sie haben beispielsweise oben 8 Sprites und unten 8 Sprites.
Aber die Supergraphik bietet nicht nur Grafik-Befehle, auch die Tongeneratoren des SID können per Basic angesteuert werden. Mit VOLUME= , legen Sie erst einmal die Lautstärke fest. SOUND dient der Einstellung von Wellenform und Hüllkurve der drei Stimmen. Mit FILTER kann der Filter des SID gesteuert werden. Und als letztes gibt es TUNE, das nach Voreinstellung der oben genannten Parameter einen Ton spielt.
Supergraphik benötigt eine Menge Speicherplatz, Ihnen gehen 10 KByte Ihres Basic-Speichers und sämtliche RAM-Bereiche in der ROM-Gegend, auch der $C-Bereich verloren. Deshalb wird die Supergraphik wohl kaum mit irgendeiner anderen Basic-Erweiterung zusammenarbeiten können. Aus diesen Gründen wurden die »wichtigsten« Programmierhilfen in das Programm mit eingebaut. So bringt der Befehl DIRECTORY selbiges ohne Programmverlust auf den Bildschirm. Mit MERGE können Programme angehängt werden; so ist zum Beispiel ein komfortables Nachladen der Spritedaten möglich. RENUM ist ein Zeilennumerierungs-Befehl; er gleicht auch alle Sprungadressen hinter GOTO, GOSUB an. Ihre Funktionstasten können Sie mit KEY belegen. Sie sind relativ sinnvoll vorbelegt; so ist mit F5/F7 eine Umschaltung zwischen Textseite und Grafikseite möglich. DTASET ist ein gezieltes RESTORE; da hier auch arithmetische Ausdrücke vorkommen dürfen, ist eine Angleichung beim RENUM-Befehl nicht implementiert. Neben der Joystickabfrage ist auch eine Paddleabfrage über PADDLE realisiert worden. Als letztes noch der Befehl POS=; mit ihm kann im Textmodus der Cursor einfach auf beliebige Spalten und Zeilen gesetzt werden.
Ein anderes Detail, das mir allerdings sehr gut gefallen hat: Bei etwaigen Fehlermeldungen wird von der Grafikseite wieder automatisch auf die Textseite umgeschaltet. Das hält Sie beim Austesten eines Programms immer auf dem Laufenden.
Supergraphik 64 ist ein Programm von Data Becker für 99 Mark, das einerseits durch seine Befehlsvielfalt, andererseits durch einige kleine Details beeindruckt. Einige Mängel schwächen den positiven Eindruck allerdings ein wenig ab. Man sollte aber auf jeden Fall beim Kauf einer Grafikerweiterung Supergraphik 64 in Erwägung ziehen, insbesondere, wenn man es nicht so sehr auf komfortables Sprite-Handling, sondern eher auf ein gutes Werkzeug für hochauflösende Grafiken abgesehen hat.
(Boris Schneider/aa)