CCOM - CBM 4032 Benutzerhandbuch

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,12
Text POKE 59468,14