TEXT
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 (in Simons‘ Basic): POKE $A1D1, xx (wobei xx auf das Highbyte der Adresse des neuen Zeichensatzes verweist). Der Standardwert an dieser Stelle lautet $D0 (dez. 208). In TSBneo lautet die POKE-Adresse seit Version 2.31.113 $B34B (vorher $A1D2).
Die Abstands- und Größenparameter wirken auch hier
(Die Spiegelungen wurden mit DUP vorgenommen)
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]
- ↑ Siehe Diskussion zu dieser Seite
$ | % | @ | ANGL | ARC | AT | AUTO | BCKGNDS | BFLASH | BLOCK | CALL | CENTRE | CGOTO | CHAR | CHECK | CIRCLE | CMOB | COLD | COLOUR | COPY | CSET | DELAY | DESIGN | DETECT | DIR | DISABLE | DISAPA | DISK | DISPLAY | DIV | DOWN | DRAW | DUMP | DUP | ELSE | END LOOP | END PROC | ENVELOPE | ERRLN | ERRN | EXEC | EXIT | EXOR | FCHR | FCOL | FETCH | FILL | FIND | FLASH | FRAC | GLOBAL | GRAPHICS | HI COL | HIRES | HRDCPY | INKEY | INSERT | INST | INV | JOY | KEY | LEFT | LIN | LINE | LOCAL | LOOP | LOW COL | MEM | MERGE | MMOB | MOB OFF | MOB SET | MOD | MOVE | MULTI | MUSIC | NO ERROR | NRM | OFF | OLD | ON ERROR | ON KEY | OPTION | OUT | PAGE | PAINT | PAUSE | PENX | PENY | PLACE | PLAY | PLOT | POT | PROC | RCOMP | REC | RENUMBER | REPEAT | RESET | RESUME | RETRACE | RIGHT | RLOCMOB | ROT | SCRLD | SCRSV | SECURE | SOUND | TEST | TEXT | TRACE | UNTIL | UP | USE | VOL | WAVE
$$ | %% | AT | CALL | CENTER | CHECK | COLD | COLOR | COPY | CLS | CSET | D! | D!PEEK | D!POKE | DIR | DISK | DISPLAY | DIV | DO | DO NULL | DRAW TO | DUMP | DUP | ELSE | ERROR | EXEC | FETCH | FIND | GRAPHICS | INSERT | INST | JOY | KEY | KEYGET | LIN | MAP | MEMCLR | MEMCONT | MEMDEF | MEMLEN | MEMLOAD | MEMOR | MEMPEEK | MEMPOS | MEMREAD | MEMRESTORE | MEMSAVE | MERGE | MOB ON/OFF | MOBCOL | MOD | MOVE | MULTI | NRM | ON ERROR | ON KEY | OPTION | OUT | PAGE | PAINT | PAUSE | PLACE | RENUMBER | RESUME | RETRACE | SCRLD | SCRSV | SOUND | TEXT | TRACE | USE | WAVE | X!