Steuerzeichen
Steuerzeichen werden alle Zeichen des C64 genannt, deren Ausgabe auf dem benutzten Gerät – z.B. Bildschirm oder Drucker – eine Aktion durchführen. In BASIC wird dazu PRINT CHR$(Wert)
bzw. PRINT# CHR$(Wert)
mit dem entsprechenden PETSCII-Wert benutzt.
Werden Steuerzeichen nicht auf dem Bildschirm ausgegeben, so ist die Wirkung der Steuerzeichen vom jeweils verwendeten Gerät abhängig.
Steuerzeichenmodus[Bearbeiten | Quelltext bearbeiten]
Für die meisten Steuerzeichen gibt es eine Alternative zur Definition mit der CHR$-Funktion, den sogenannten Steuerzeichenmodus. In diesem werden alle Tastendrücke, die während des Direktmodus' zur Steuerung des Bildschirmeditors genutzt werden können, als entsprechende Zeichen, eben Steuerzeichen, festgehalten.
Das sind zum Beispiel:
- Die Cursortasten, SHIFT +CLR/HOME (Bildschirm löschen), CLR/HOME (Cursorposition nach links oben),
- SHIFT +INST/DEL (Einfügen), INST/DEL (Löschen),
- Die Farbtasten (siehe C64-Farbtabelle),
- CTRL +9 (entspricht <RVSON>, Reverse-Modus an) oder CTRL +0 (entspricht <RVS OFF>, Reverse-Modus aus).
Eine Folge solcher Zeichen kann man einer Stringvariablen zuweisen. Dies wäre heutzutage vergleichbar mit einer Makroaufzeichnung bei einer Textverarbeitung oder Tabellenkalkulation eines Office-Pakets.
Während der Interpreter beim Auflisten des Programms die Steuerzeichen – mit Ausnahme von CHR$(141) ( SHIFT+RETURN) – grafisch kodiert anzeigt, werden sie bei der Ausgabe der entsprechenden Zeichenketten mittels PRINT auf den Bildschirm entsprechend ihrer Bedeutung ausgeführt.
Dies kann man selbst ausprobieren, indem man folgendes Beispiel eingibt. Dabei die Angabe {Tasten} (in geschweiften Klammern) als Tastenabfolge Tasten drücken und nicht als Text eingeben!
S$="{clr}{10x cursor unten}{12x cursor rechts}{schwarz}COMMODORE 64{4x cursor oben}{10x cursor links}{gelb}ICH HEISSE{hellblau}{home}" PRINT S$
Vorsicht, auch während der Abarbeitung eines Programms durch den Interpreter werden Steuerzeichen gedruckt anstatt ausgeführt, sobald ein Anführungszeichen per CHR$(34) geschrieben wird. Nach dem Setzen eines 2. Anführungszeichens oder im nächsten PRINT-Befehl ist der Steuerzeichenmodus wieder deaktiviert.
Ein Wert größer als Null in der Speicherstelle 212 ($D4) zeigt an, dass der Steuerzeichenmodus eingeschaltet ist.
Er besteht aus zwei Varianten:
- Der "Gänsefüßchen-Modus" wird aktiviert durch das Setzen des 1. Anführungszeichens (Öffnen einer Zeichenkette) und mit dem Setzen des 2. Anführungszeichens (Schließen einer Zeichenkette) beendet.
- Der "Einfügemodus" wird durch – ggf. mehrmaliges – Drücken der Tastenkombination SHIFT +INST/DEL aktiviert, wodurch zunächst Leerzeichen eingefügt werden, die nun mit (Steuer-)Zeichen gefüllt werden können. Als Zähler der so reservierten Zeichen dient die Speicherstelle 216 ($D8). Sind alle reservierten Zeichen gefüllt und damit der Wert in 216 wieder 0, wird der Steuerzeichenmodus beendet.
Beide sind im Wesentlichen gleich, bis auf zwei Unterschiede:
Taste | nach Anführungszeichen | nach Einfügen |
INST/DEL | ausgeführt | angezeigt als Steuerzeichen |
SHIFT +INST/DEL | angezeigt als Steuerzeichen | ausgeführt |
Beendet wird der Steuerzeichenmodus nach RETURN .
Soll dabei die aktuelle Zeile nicht ausgeführt werden, so ist SHIFT +RETURN der Notausstieg.
Tipp zum Steuerzeichenmodus
Die Speicherstellen 212 und 216 kann man auch nutzen, um mit POKE den Steuerzeichenmodus vorübergehend „künstlich“ einzuschalten.
Beispiel: Der Inhalt der oben definierten Variable S$, nach der Ausführung vom Bildschirm verschwunden, kann wieder sichtbar gemacht werden:
POKE 212,1 : PRINT S$
Steuerzeichentabelle[Bearbeiten | Quelltext bearbeiten]
ASCII | Zeichen | Taste(nkombination) | Beschreibung | Wiki-Syntax | Vice-Tastatur (de) (positional) |
---|---|---|---|---|---|
147 | SHIFT +CLR/HOME | Löscht Bildschirm | {clear} / {clr} | shift +pos1 | |
19 | CLR/HOME oder CTRL +S | Cursor links oben positionieren | {home} | tab +s pos1 | |
29 | CRSR links/rechts bzw. CRSR ⇐ ⇒ |
Cursor eine Position nach rechts | {cursor rechts}/{crsr right} | ⇒ tab +ä | |
157 | SHIFT +CRSR links/rechts bzw. SHIFT +CRSR ⇐ ⇒ |
Cursor einen Position nach links | {cursor links}/{crsr left} | ⇐ | |
17 | CRSR oben/unten bzw. CRSR ⇑ ⇓ oder CTRL +Q |
Cursor einen Position nach unten | {cursor unten}/{crsr down} | ⇓ tab +q | |
145 | SHIFT +CRSR oben/unten bzw. SHIFT + ⇑ ⇓ |
Cursor einen Position nach oben | {cursor oben}/{crsr up} | ⇑ | |
144 | CTRL +1 | Zeichenfarbe Schwarz | {blk} / {black} / {schwarz} | tab +1 | |
5 | CTRL +2 oder CTRL +E | Zeichenfarbe Weiß | {wht} / {white} / {weiß} | tab +2 tab +e | |
28 | CTRL +3 | Zeichenfarbe Rot | {red} / {rot} | tab +3 | |
159 | CTRL +4 | Zeichenfarbe Türkis | {cyn} / {cyan} / {türkis} | tab +4 | |
156 | CTRL +5 | Zeichenfarbe Violett | {pur}/{violett} | tab +5 | |
30 | CTRL +6 | Zeichenfarbe Grün | {grn} / {green} / {grün} | tab +6 | |
31 | CTRL +7 | Zeichenfarbe Blau | {blu} / {blue} / {blau} | tab +7 | |
158 | CTRL +8 | Zeichenfarbe Gelb | {yel} / {yellow} / {gelb} | tab +8 | |
129 | C= +1 | Zeichenfarbe Orange | {orange} | strg +1 | |
149 | C= +2 | Zeichenfarbe Braun | {brown} / {braun} | strg +2 | |
150 | C= +3 | Zeichenfarbe Hellrot | {hellrot} | strg +3 | |
151 | C= +4 | Zeichenfarbe Grau 1 / Dunkelgrau | {gray1} / {dunkelgrau} | strg +4 | |
152 | C= +5 | Zeichenfarbe Grau 2 | {gray2} / {grau} | strg +5 | |
153 | C= +6 | Zeichenfarbe Hellgrün | {hellgrün} | strg +6 | |
154 | C= +7 | Zeichenfarbe Hellblau | {hellblau} | strg +7 | |
155 | C= +8 | Zeichenfarbe Grau 3 / Hellgrau | {gray3} / {hellgrau} | strg +8 | |
18 | CTRL +9 oder CTRL +R | Reverse-Modus / Inventieren AN | {rvs on} / {revers an} | tab +r tab +9 | |
146 | CTRL +0 | Reverse-Modus / Inventieren AUS | {rvs off} / {revers aus} | tab +0 | |
133 | F1 | Zeichen zur Tastaturabfrage mit GET | {f1} | f1 | |
134 | F3 | Zeichen zur Tastaturabfrage mit GET | {f3} | f3 | |
135 | F5 | Zeichen zur Tastaturabfrage mit GET | {f5} | f5 | |
136 | F7 | Zeichen zur Tastaturabfrage mit GET | {f7} | f7 | |
137 | SHIFT +F1 | Zeichen zur Tastaturabfrage mit GET | {f2} | f2 | |
138 | SHIFT +F3 | Zeichen zur Tastaturabfrage mit GET | {f4} | f4 | |
139 | SHIFT +F5 | Zeichen zur Tastaturabfrage mit GET | {f6} | f6 | |
140 | SHIFT +F7 | Zeichen zur Tastaturabfrage mit GET | {f8} | f8 | |
20 | INST/DEL oder CTRL +T | Löscht das Zeichen links vom Cursor | {del} | backspace | |
148 | SHIFT + INST/DEL | Fügt 1 Zeichen ein nach rechts | {inst} | shift +backspace | |
3 | RUN/STOP * oder CTRL +C | Zeichen zur Tastaturabfrage mit GET bei deaktiviertem RUN/STOP | {run/stop} | esc | |
8 | CTRL +H | Deaktiviert SHIFT +C= | {<shift>+<c=> off} / {ctrl+h} | tab +h | |
9 | CTRL +I an | Aktiviert SHIFT +C= | {<shift>+<c=> on} / {ctrl+i} | tab +i | |
13 | RETURN oder CTRL +M | Zeilenvorschub bzw. Eingabe-Taste aus (nicht als Zeichen darstellbar!) |
{return} | enter tab +m | |
14 | CTRL +N | Schaltet Groß-/Kleinschrift ein | {gross/klein} / {ctrl+n} | tab +n | |
142 | keine direkt; Steuerzeichen: RVS ON , SHIFT +N |
Schaltet Groß-/Grafikschrift ein | {gross/grafik} / {ctrl+/} | Steuerzeichen: tab +9 , tab +n | |
32 | SPACE | Gibt ein Leerzeichen aus | {space} | space | |
141 | SHIFT +RETURN Steuerzeichen: RVS ON , SHIFT +M |
Zeilenvorschub | {shift return} | shift +enter |
Einige Zeichen der obigen Tabelle führen zwar keine Aktion aus, sind aber dennoch mit aufgeführt:
- Die Zeichen der Funktionstasten kann man als frei programmierbare Steuerzeichen auffassen.
- Die Leertaste SPACE wird als Fülltaste im Einfügemodus benutzt.