Mächtige Zeichen
Vektorschriften auf dem CPC
Es war ein Problem, ein Programm zu schreiben, mit dem man einen Text in
unterschiedlichen Größen auf dem Bildschirm darstellen kann, ohne daß die
Buchstaben aus einer Matrix vergrößert werden, denn dadurch sehen sie aus, als
seien sie aus “Klötzchen“ gebaut. Was blieb einem übrig, als eine neue
Darstellungsmöglichkeit von Schriftzeichen zu finden. Ein Paradebeispiel für
unterschiedliche und schön anzuschauende Schriften ist der Aufbau auf
Vektorenbasis.
Bei einigen Spielen (zum Beispiel Elite) werden Grafiken verwendet, die
Aussehen wie ein Drahtgittermodell. Diese Grafiken sind nicht vorher gezeichnet
worden, sondern werden berechnet und dann ausgegeben. Anstatt Raumschiffen oder
ähnlichem steht hier für jedes ASCII-Zeichen von 32 bis 126 ein Buchstabe als
Liniengrafik im Speicher. Soll ein Text auf den Bildschirm geschrieben werden,
so wird die Länge für jede einzelne Linie eines Buchstabens mit dem vorher
eingestellten Vergrößerungsfaktor multipliziert und gezeichnet. Zudem kann die
Dicke, in der die Linien gezogen werden, horizontal sowie vertikal separat
eingestellt werden. Ein weiterer Pluspunkt ist, daß die Zeichenausgabe
proportional geschieht, das heißt, der Zwischenraum zweier Buchstaben ist immer
gleich groß. Das kleine “i“ zum Beispiel benötigt weniger Platz als ein “M“ auf
dem Monitor. Dadurch wird die Lesbarkeit von stark vergrößert dargestellten
Texten verbessert. Nach Einbinden der RSX-Erweiterung stehen dem Anwender
sieben neue RSX-Befehle zur Verfügung.
Befehlsübersicht
────────────────
|PRINT,@a$ (gibt die Zeichenkette a$, an der mit dem Befehl |LOCATE
eingestellten Position aus)
|LOCATE,x,y (stellt die Position ein, an der der Text geschrieben werden soll,
je nach Mode, x von 0 bis 159, 319 oder 639 und y von 0-199)
|SIZE,gr (stellt den Vergrößerungsfaktor gr ein)
|THICKNESS,x,y (stellt die Dicke der auszugebenden Zeichen in Pixel ein)
|SPACE,x,y (stellt den Zeichenabstand x und Zeilenabstand y in Pixel ein)
|COLOR,f (wählt Pen f für die Zeichenausgabe)
|LNFD (führt einen Zeilenvorschub aus)
Um die Befehle für die verschiedenen Darstellungsarten besser kennenzulernen,
sollte das Demonstrationsprogramm mit abgetippt werden. Die Demo kann unter
einem beliebigen Namen abgespeichert werden, zum Beispiel “PVS.DEM“.
Nach dem Starten der Demo wird das vorher abgespeicherte Binärprogramm
“PVS.BIN“ geladen. Anschließend können Sie sich von den Fähigkeiten der
besprochenen Befehle überzeugen. Denn das Demoprogramm veranschaulicht anhand
von Beispielen alles, was hier beschrieben ist.
Um die Erweiterung in Form eines Binärprogramms in Ihrem Programm einzubinden,
müssen Sie wie folgt vorgehen:
MEMORY &8FFF
LOAD “PVS.BIN“‚&9000
CALL &9000
(Alexander Irion/cd)