TEXT

Aus C64-Wiki
Zur Navigation springenZur Suche springen
TEXT
Syntax: TEXT <x>,<y>,<string>,<f>,<zm>,<d>
Parameter
x: X-Koordinate des Startpunktes (0..319 / 0..159)
y: Y-Koordinate des Startpunktes (0..199)
string: Textstring
f: Farbquelle (0..2 / 0..4)
zm: Zoomfaktor (1..255)
d: Maß für die Weite bei gesperrt gedrucktem Text (0..255, normal: 8)
Einordnung
Typ: Anweisung
Kontext: Grafik
Aufgabe: Schreiben von Texten im Grafikmodus
Abkürzung: keiner (teX unter TSB)
Token: $64 $6f (100 111)
Verwandte Befehle
CHAR


Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort TEXT.

Typ: Anweisung 
Syntax: TEXT <x>,<y>,<string>,<f>,<zm>,<d> TSB-Syntax: TEXT <x>,<y>,<string>, [[[<f>,[[<zm>,[<d>]]]

TEXT schreibt eine Zeichenkette in der Farbe der angegebenen Farbquelle <f> (siehe dazu HIRES) in den Grafikbildschirm. Zulässige Werte für <x> sind 0..319 (im Hires-Modus) bzw. 0..159 (im Multicolor-Modus). Für <y> sind in beiden Fällen Werte von 0 bis 199 erlaubt. Der Punkt 0,0 ist in der linken oberen Ecke. Für <string> darf jeder gültige String-Ausdruck (sei es auch nur eine String-Variable oder Textkonstanten in Anführungszeichen) angegeben werden. Der Parameter <d> gibt die Distanz zwischen den linken Kanten zweier Zeichen des Textes an, also die Weite einer eventuellen Sperrschrift, der Wert des normalen Abstands ist 8. Mit <zm> (Zoom) kann die Schrift vergrößert werden (der Wert 2 verdoppelt somit die Größe eines Zeichens). Leider wirkt sich der Zoom nur auf die Höhe der Zeichen aus, nicht jedoch auf deren Breite. Zoom-Werte größer als 5 wirken daher bereits unansehnlich (vergleiche dazu DUP (TSB)).

Man kann innerhalb eines Strings angeben, ob die Zeichen in Groß-Grafik- oder in Groß-Klein-Schrift ausgegeben werden sollen. Zuständig dafür sind die "Umschaltzeichen" CTRL-a  (Groß-Grafik) und CTRL-b  (Groß-Klein) vor der entsprechenden Textpassage. Vorgabe-Schriftart ist Groß-Grafik.

Wird nicht die entsprechende Parameteranzahl angegeben, so erscheint die Fehlermeldung ?SYNTAX ERROR. Ist der Parameter nicht vom entsprechenden Typ, erfolgt ein Abbruch mit der Fehlermeldung ?TYPE MISMATCH ERROR. Bei einem falschen Wert erscheint ?BAD MODE ERROR. In TSB können von rechts her die letzten drei Parameter auch weggelassen werden. Sie werden dann mit den Standardwerten 1, 1 und 8 initialisiert (seit v2.30815).

Beachten: Die drei letzten Parameter dürfen unter Simons' Basic nur als Konstantwerte angegeben werden, da der Interpreter andernfalls (wegen einer zu komplexen Ausdrucksauswertung, die Speicherstellen korrumpiert) durcheinander gerät und unvorhersehbare Reaktionen zeigt (beispielsweise zu viele Zeichen, wenn eine undefinierte Variable angegeben wird, oder die Ausgabe wird auf 8 Zeichen abgeschnitten)[1]. Dieser Mangel wurde unter TSB behoben. In Simons' Basic führt ein Leerstring für den Parameter <string> zu einer bis zu 255 Bytes langen Folge von unkontrollierten Zeichen in der Grafik. Auch dieser Fehler ist in TSB behoben.

Mit einem einfachen POKE kann man TEXT (und auch CHAR) dazu bringen, einen anderen als den ROM-Zeichensatz für seine Textausgaben zu nutzen: POKE $A1D1, xx (wobei xx auf das Highbyte der Adresse des neuen Zeichensatzes verweist). Der Standardwert an dieser Stelle lautet $D0 (dez. 208). In TSB lautet die POKE-Adresse seit Version 2.31113 $B34B (vorher $A1D2).


Beispiel[Bearbeiten | Quelltext bearbeiten]

100 HIRES 11,12
110 FOR y=1 TO 8
120 TEXT 80,25*y-20,"{ctrl-b}Commodore",1,2,20
130 NEXT
140 WAIT 198,255

Das Programm zeigt ein einfaches Demo.


Quellen[Bearbeiten | Quelltext bearbeiten]