PETSCII
PETSCII steht für "PET Standard Code of Information Interchange" und wird manchmal auch als CBM-ASCII bezeichnet. PETSCII basiert zu einem Teil auf dem ASCII-Standard, enthält aber zusätzliche Zeichen, z.B. Grafikzeichen zum Erstellen von Blockgrafik oder weitere Steuerzeichen. Jedes PETSCII-Byte (0-255) kodiert entweder ein Steuerzeichen (0-31 und 128-159) oder ein darstellbares Zeichen.
PETSCII ist zu unterscheiden vom Bildschirmcode; letzterer kodiert alle darstellbaren Zeichen ohne Steuerzeichen, aber inklusive der inversen Zeichen.
ASCII (englische Abkürzung für American Standard Code for Information Interchange) ist die Bezeichnung, die im Commodore 64 Bedienerhandbuch für den hier beschriebenen Code benutzt wird. Der Begriff PETSCII kommt dort nicht vor. Deshalb kann dieser Artikel auch unter "ASCII" aufgerufen werden. Der Commodore ASCII-Code beruht auf der 1963er-Version von ASCII, nicht auf der von fast allen anderen ASCII-Computern verwendeten 1967er-Version. Dies äußert sich u. a. in den Zeichen „Pfeil nach Oben“ (↑) und „Pfeil nach Links“ (←) sowie in dem Nur-Großbuchstaben-Modus, die in ASCII 1967 nicht mehr vorgesehen waren.
Von BASIC aus können Zeichen anhand ihres PETSCII-Codes per CHR$-Befehl ausgegeben werden. PRINT CHR$(65) gibt z.B. ein A aus.
Neben der Nutzung in BASIC-Zeichenketten wird PETSCII auch für den Tastaturpuffer und in der internen Darstellung von BASIC-Programmen benutzt, dazu siehe Artikel Speicherbelegung (BASIC).
Die PETSCII-Code-Tabelle des C64[Bearbeiten | Quelltext bearbeiten]
Die Tabelle wird in 6 Spalten angezeigt. Links steht in jeder Spalte der PETSCII-Code, dahinter das zugehörige Zeichen des Groß-/Grafik-Modus bzw. bei Steuerzeichen die Bedeutung. Rechts daneben folgt das entsprechende Zeichen des Groß-/Klein-Modus, falls es sich von dem ersten Zeichen unterscheidet.
Aufgeführt sind hier nur die Codes bis 191, denn ab Code 192 wiederholen sich die Zeichen:
Codes 192-223 wie Codes 96-127 Codes 224-254 wie Codes 160-190 Code 255 wie Code 126
Eine vollständige Tabelle mit allen PETSCII-Codes, korrespondierenden ASCII- und Bildschirmcodes sowie Beschreibungen findet man unter PETSCII-Tabelle.
Umwandlungsroutinen[Bearbeiten | Quelltext bearbeiten]
Von PETSCII nach Bildschirmcode.
CMP #$FF BEQ .pi PHA LSR LSR LSR LSR LSR TAX PLA EOR tab,X RTS .pi: LDA #$5E RTS tab: .byte $80,$00,$40,$20,$40,$c0,$80,$80
In Python[2]:
sc = ([0x80, 0x20, 0x00, 0x40, 0xC0, 0x60, 0x40, 0x60][c >> 5] + (c & 0x1f)) if c != 255 else 94
In Java[3]:
int sc = c!=255?(new int[]{0x80, 0x20, 0x00, 0x40, 0xC0, 0x60, 0x40, 0x60}[c >> 5] + (c & 0x1f)):94;
Verwandte Themen[Bearbeiten | Quelltext bearbeiten]
Weblinks[Bearbeiten | Quelltext bearbeiten]
Wikipedia: CBM-ASCII |
Wikipedia: ASCII |
Wikipedia: PETSCII |
- PETSCII zu C64-Characters bei sta.C64.org
- PETSCII zu C64-Keycodes bei sta.C64.org
- PETSCII Reference bei style64.org
- Character Set/PETSCII/Keyboard in Ultimate Commodore 64 Reference
- "PETSCII Codes in Listings" bei C64-Wiki.com]
- PETSCII Grafik-Wettbewerb mit über 100 Beiträgen auf der CSDb
- PETSCII Grafiken
Quellen[Bearbeiten | Quelltext bearbeiten]
- ↑ Thema: Screencodes vs. PetASCII auf Forum64.de
- ↑ github.com/c1570/CrankThePRINT
- ↑ Thema: Darstellung von String-Zeichen im Basic Listing auf Forum64.de