PRINT, PRINT#
Der BASIC-Befehl PRINT dient zur Ausgabe von Daten auf den Bildschirm oder einen mit CMD festgelegten Ausgabekanal. Es können beliebige Ausdrücke wie Variablen, (Zeichenketten- oder Zahlenvariablen) oder BASIC-Funktionen genommen werden, wobei gilt, dass Zeichenketten und auch Grafik- und Sonderzeichen wie z.B. ! oder ( auf jeden Fall in Anführungszeichen (” “) stehen müssen, ansonsten kommt es mitunter zur BASIC-Fehlermeldung ?SYNTAX ERROR.
- Wird Text ohne Anführungszeichen eingegeben, wird dieser Text als Zahlenvariable interpretiert.
- Der PRINT-Befehl schließt die Ausgaben immer mit einem Zeilenwechsel ab, es sei denn, der Ausdruck endet mit einem Semikolon (;) oder Komma (,). Der PRINT-Befehl ohne Parameterangabe bewirkt nur ein Zeilenwechsel.
- Steht hinter einer Variable oder Ausdrücken ein Semikolon (;), so erfolgt die nächste Bildschirmausgabe direkt hinter dem ausgegebenen Ausdruck. Folgende zwei Ausnahmen gibt es jedoch:
- nach numerischen Ausdrücken (auch Funktionen und Zahlenvariablen) erscheint ein Leerzeichen und
- bei positiven Zahlenausdrücken erscheint vor der Zahl auch ein Leerzeichen (als Platzhalter für das Vorzeichen).
- Da eine logische Bildschirmzeile am Commodore 64 in acht Bereiche von je 10 Zeichen unterteilt ist (Tabulatorpositionen), kann mit einem Komma (,) jeweils die nächste Zone angesprungen werden. Auch hier erfolgt die nächste Bildschirmausgabe auch direkt in der gleichen Bildschirmzeile und es gelten die gleichen Ausnahmen bei den Zahlenausdrücken wie beim Semikolon.
- Das Setzen von Komma (,) oder Semikolon (;) ist nicht erforderlich um Variablen oder Ausdrücke abzutrennen. Der BASIC-Interpreter des C64 ist sehr tolerant, wenn diese fehlen. Bei fehlendem Trennzeichen tritt das Verhalten eines Semikolons (;) ein.
- Jedoch werden Leerzeichen außerhalb von Anführungszeichen (” “) ignoriert, so dass normale Zahlenvariablen auf jeden Fall mit Kommas getrennt werden müssen! Geschieht dies nicht, bilden die Zeichen dieser Zahlenvariablen einen neuen, einzigen Variablennamen.
- Die Funktionen SPC und TAB können nur hier (und bei PRINT#) verwendet werden. Sie haben am Ende eines PRINT, abgesehen ihrer eigenen Funktion, das gleiche Verhalten wie ein Semikolon (;), d.h. sie unterdrücken den Zeilenwechsel.
Hinweis: Durch den BASIC-Befehl CMD kann die Bildschirmausgabe mit PRINT auch auf ein anderes Gerät umgeleitet werden.
Beispiele
PRINT 12+2
PRINT 12-1
PRINT 12*2
PRINT 12/2
PRINT COS(2)LOG(1)
Direkte mathematische Berechnungen sind so möglich, auch aufeinanderfolgende Ausdrücke.
PRINT "VORHER"SPC(0)
PRINT "NACHHER"
verhält sich so wie
PRINT "VORHER";
PRINT "NACHHER"
SPC() wie TAB() am Ende unterdrücken den Zeilenwechsel und in beiden Fällen wir folgendes ausgegeben:
VORHERNACHHER
ABC=123: A=4: B=5: C=6
PRINT A B C: PRINT "AUSGEGEBEN WURDE 123"
PRINT A,B,C: PRINT "AUSGEGEBEN WURDE 4 5 6"
Im ersten PRINT wird der Inhalt der Zahlenvariable ABC ausgegeben.
10 A$="HALLO ": B$="WIE HEISST DU": D$="C64"
20 PRINT A$"? "B$; :INPUT C$
30 PRINT: PRINT, :PRINT A$C$
40 PRINT: PRINT "ICH HEISSE ";D$
Kombination von Ein- und Ausgabe.
10 INPUT "NAME";N$
20 PRINT "IHR NAME IST " CHR$(34) N$ CHR$(34) "!"
Bei der Ausgabe des Zeichens (“) muss man sich mit der Funktion CHR$() behelfen.
PRINT AT
Ein PRINT AT (Ausgabe an einer bestimmten Position am Bildschirm) gibt es in BASIC 2.0 nicht direkt, es lässt sich aber “nachbauen”:
PRINT LEFT$("{home}{25 x down}",Y) SPC(X);
Dabei gelten die Wertebereiche für X (Spalte) von 0 bis 39 und für Y (Zeile) von 1 bis 25.
Die letzte Bildschirmposition für X=39 und Y=25 bewirkt bei Ausgabe auch nur eines einzelnen druckbaren Zeichens das Scrollen des gesamten Bildinhalts um eine Zeile nach oben.
Ebenso lassen sich KERNAL-Routinen dazu benutzen.