6. Codes
Ihr Computer kann 256 verschiedene Zeichen auf dem Bildschirm darstellen und kennt 256 verschiedene String-Codes. Der Code der Zeichen im Bildschirm ist allerdings nicht identisch mit dem Code im String. Wir unterscheiden deshalb den Bildschirmcode BSC und CBM-ASCII Code ASC. Zusätzlich soll noch der ASCII Code ASCII besprochen werden, da dieser von fast allen Peripheriegeräten verstanden wird, auch wenn sie von anderen Anbietern stammen.
6.1 ASCII
Der American Standard Code for Information Interchange (Amerikanischer Standard Code für Informations Austausch) ist ein 7-Bit Code, durch ihn können also 128 verschiedene Zeichen dargestellt werden. Der ASCII-Code ist in 4 Gruppen zu je 32 Zeichen eingeteilt:
| Dezimal | Bereich |
| 0 - 31 | Steuerzeichen (nichtdruckbar) |
| 32 - 63 | Satz- und Sonderzeichen und Ziffern |
| 64 - 95 | Große Buchstaben |
| 96 - 127 | Kleine Buchstaben |
Wie bei ASC erklärt wird, verwendet Ihr Computer den Bereich von 0 bis 95 fast ohne Änderung. Auf einige Unregelmäßigkeiten, vor allem auch in Verbindung mit Druckern, die deutschen Zeichensatz haben, soll jedoch hingewiesen werden. Folgende Codes des ASCIIZeichensatzes sind u.U. mit verschiedenen Zeichen belegt:
| Code | Standardzeichen Alternativzeichen (Beispiel) |
|---|---|
| 35 | Doppelkreuz Paragraphenzeichen |
| 60 | spitze Klammer auf kein Zeichen (SPACE) |
| 62 | spitze Klammer zu kein Zeichen (SPACE) |
| 64 | Klammeraffe ß |
| 91 | eckige Klammer auf oder Ä |
| 92 | Schrägstrich Ö |
| 93 | eckige Klammer zu Ä oder 0 |
| 94 | Pfeil nach oben Abwandlungen davon oder SPACE |
| 95 | Unterstrich Pfeil nach links |
| 123 | geschweifte Klammer auf ü oder ä |
| 124 | senkrechter Strich ö |
| 125 | geschweifte Klammer zu ä oder ü |
| 126 | Schlange |
Einige Auswirkungen dieser Zeichenalternativen sehen Sie in diesem Handbuch. Das 'Doppelkreuz' (Dateinummer) wird vom Drucker als Paragraphenzeichen dargestellt und 'Pfeil nach oben' (Exponentiation) wird überhaupt nicht gedruckt. Deshalb wurde es im Text durch h ersetzt. Auch die beiden spitzen Klammern werden nicht gedruckt und deshalb durch g (größer als) und k (kleiner als) ersetzt.
6.2 ASC
[Da im Commodore-BASIC 256 verschiedene Stringcodes existieren, kann der ASCII-Code intern nur mit einer Änderung verwendet werden:
Die kleinen Buchstaben werden von den großen unterschieden, indem zum ASCII-Code der großen Buchstaben 128 addiert wird, was gleichbedeutend damit ist, dass Bit 7 gesetzt wird. Bit 7 enthält also die Information, ob die SHIFT-Taste gedrückt wurde oder nicht. Dies gilt nicht nur für die Buchstaben, sondern auch für alle Steuertasten.
Damit kann der ASC-Code folgendermaßen eingeteilt werden, was seine Darstellung auf dem Bildschirm betrifft, wenn mit PRINT gedruckt wird:
Zwischen 32 und 95 liegen die Sonderzeichen und großen Buchstaben und zwischen 160 und 223 Graphikzeichen und die kleinen Buchstaben.
Zwischen 0 und 31 liegen Steuerzeichen und zwischen 128 und 159 die entsprechenden SHIFT-Steuerzeichen.
Bleiben noch die beiden Bereiche 96-127 und 224-255. Sie enthalten, was die Darstellung auf dem Bildschirm anbelangt, keine neue Information, weil sie genauso dargestellt werden, wie die Bereiche 32-63 und 160-191. Ein Beispiel soll dies verdeutlichen: Sowohl CHR$(33) als auch CHR$(97) wird auf dem Bildschirm als '!' dargestellt.
Im ASC Code sind also 2*64=128 druckbare Codes enthalten, sowie 2*32=64 nichtdruckbare Steuerzeichen. Die restlichen 2*32=64 Codes finden beim Drucken keine Verwendung. Sie werden erst interessant, wenn ein String als Bytefeld (Binärfeld) verwendet wird.
Mit der kommerziellen Tastatur können nicht alle druckbaren Codes eingegeben werden, sondern nur 32-95 und 192-223. Die Graphikzeichen zwischen 160 und 191 können also mit dieser Tastatur nicht eingegeben werden. Durch die Steuertasten können noch einige Codes aus dem Bereich der Steuercodes eingegeben werden. Durch Revers-Darstellung innerhalb von Anführungszeichen können alle Steuercodes (0-31) und (128-159) eingegeben werden.
Einige Codes kommen sehr häufig im weiteren Text vor, oder werden allgemein oft verwendet und sollen deshalb kurz vorgestellt werden:
| Code | Name im Text | Bedeutung |
|---|---|---|
| 0 | NUL / CHR$(0) | lauter Nullen, Füllzeichen |
| 10 | LF (Line Feed) | Zeilenvorschub |
| 13 | CR (Carriage Return) | Wagenrücklauf |
| 27 | ESC (Escape) | Kommandos folgen |
| 32 | SP / BL (Space / Blank) | Leerzeichen |
| 64 | Klammeraffe | amerikanisches 'and'-Symbol |
| 141 | SH-CR | CR gleichzeitig mit SHIFT gedrückt |
| 160 | SH-BL | SP gleichzeitig mit SHIFT gedrückt |
NUL hat in der ASCII-Norm die Funktion eines Füllzeichens, das keinerlei Funktion hat. In Verbindung mit GET und INPUT bzw. mit Binärdateien hat es eine Sonderstellung (s. GET/INPUT).
CR/LF hat (historisch) die Funktion der Wagenrücklaufes bzw. Zeilenvorschubes bei Druckern / Fernschreibern. Innerhalb von Computer-Dateien hat es davon abgeleitet die Funktion eines Trennzeichens zwischen einzelnen Datensätzen oder Datenfeldern. Allerdings wird als Trennzeichen in der Regel nur CR und nicht LF verwendet. Andererseits gibt es Drucker, die entweder bei Empfang von CR automatisch auch einen zeilenvorschub machen (Auto-Linefeed) oder tatsächlich beide Steuerzeichen benötigen, um die beiden Funktionen ausführen zu können. CR/LF hat also zu tun mit Druckern einerseits und CR alleine hat zu tun mit Dateien und Ein-/Ausgabebefehlen andererseits (s. GET/INPUT/PRINT). Beachten Sie bei INPUT auch die spezielle Funktion von SH-CR.
ESC hat bei intelligenten Peripheriegeräten, die ASCII verstehen, die Funktion einer Kommando-Einleitung. D.h. nach Empfang von ESC erwartet das Gerät eine bestimmte Anzahl von Kommando-Codes, die normalerweise gedruckt werden müssten, aber nach ESC eben nur als Befehl interpretiert werden. Vor allem bei Druckern ist diese Art der Kommandoübermittlung weit verbreitet.
SP / SH-SP wird deshalb erwähnt, weil beide Codes auf dem Bildschirm das gleiche Zeichen produzieren, nämlich einen leeren Fleck, aber für die Eingabe vom Bildschirm mit INPUT trotzdem verschiedene Wirkung haben.
Klammeraffe ist ein Ausdruck aus dem Datenverarbeiter-Jargon für das kleine a mit dem Haken, der es fast ganz umschließt. Dieses Zeichen ist im deutschen Sprachraum meistens nicht bekannt auch nicht seine diversen Namen. wird aber in Zusammenhang mit der Floppy-Verwaltung evtl. gebraucht.
6.3 BSC (Bildschirmcode)
Der Vollständigkeit halber wird hier auch der BSC aufgeführt.
Der Bildschirmcode ist im Allgemeinen nur von Interesse, wenn im Assembler gearbeitet wird. Mit PEEK und POKE kann zwar auch von BASIC aus direkt auf den Bild-Wiederhol-Speicher zugegriffen werden, dann wird man aber ausschließlich im BSC arbeiten, so dass die angegebene Tabelle genügt.
Zur Tabelle muß nur noch hinzugefügt werden, dass die angegebenen Werte 128 das entsprechende Revers-Zeichen auf den Bildschirm bringen.
Der algorithmische Zusammenhang zwischen ASC- und BSC - Code, der nur aus einfachen Bitmanipulationen besteht, ist im Rahmen eines BASIC-Handbuches nicht interessant.
Die Umschaltung zwischen Graphik und Kleinschreibung kann auf folgende Weise erfolgen:
Graphik POKE 59468,12Text POKE 59468,14













