Steuerzeichen

Aus C64-Wiki
Zur Navigation springenZur Suche springen

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$ 
COMMODORE 64ICH HEISSE


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.

Verwandte Themen[Bearbeiten | Quelltext bearbeiten]