PETSCII

weitersagen ...
Tweet about this on TwitterShare on FacebookShare on Google+Share on LinkedIn

Der PETSCII

Computer verwenden bis heute noch (zumindest unter DOS) einen Zeichensatz der 1967 als ASCII (American Standard Code for Information Interchange) genormt wurde. Als Commodore in den Computermarkt vordrang wollten sie die Grafikfähigkeiten des Rechners durch entsprechende Symbole erhöhen und ‚verbogen‚ die Normung etwas. Der ‚eigene‚ Commodore Zeichensatz basiert auf einem früheren ASCII-Entwurf von 1963 und wird liebevoll PETSCII (nach dem 1977 erschienenen Commodore PET) genannt.

Gebt ihr unter BASIC zum Beispiel mit

oder

Zeichen auf dem Bildschirm aus, so wird dafür die PETSCII-Tabelle verwendet. In dieser finden sich neben sichtbaren Zeichen z. B. „A1!„ auch nicht darstellbare Sonderzeichen z. B.  CHR$(147)  um den Bildschirm zu löschen.

Die wichtigsten darstellbaren Zeichen findet ihr in den nächsten beiden Bildern inkl. einem kleinen Basic-Programm das genau diese Ausgabe erzeugt.

Die Angaben der Zeichen-Codes in den Bildern ist Hexadezimal (z. B. ist * = $2A = 42), bei Bedarf einfach mal die Zahlensysteme besuchen.

Zeichensatz 1 (nur Großbuchstaben)
Zeichensatz 1 (nur Großbuchstaben)

Der C64 bietet die Möglichkeit eigene Zeichensätze zu erstellen. Er liefert auch gleich einen zweiten Zeichensatz mit. Dabei werden einige grafische Symbole geopfert, um Groß- und Kleinschreibung zu ermöglichen.

Zeichensatz 2 (Groß- und Kleinbuchstaben)
Zeichensatz 2 (Groß- und Kleinbuchstaben)

 

Es gibt auch noch eine Reihe von Steuerzeichen, mit denen ihr bei der Ausgabe z. B. den Bildschirmlöschen oder die Zeichenfarbe umstellen könnt. Vom BASIC aus könnt ihr diese z. B. mit CHR$(???) oder über PRINT "<STEUERZEICHEN>" ausgeben. Ihr kennt bestimmt aus BASIC-Listings die lustigen Steuerzeichenzeilen.

Diese Zeile...
Die Zeile 10 PRINT …
... fürht zu dieser Ausgabe.
… führt zu dieser Ausgabe.

Zunächst wird der Bildschirm gelöscht, dann der Cursor um drei Zeilen nach unten und um drei Zeichen nach rechts verschoben. Zum Schluß wird HALLO ausgegeben, wobei jeder Buchstabe eine andere Farbe erhält.

Unter Assembler geht es am einfachsten, wenn ihr diese Steuerzeichen mit der Kernal-Funktion CHAROUT, die ihr bei $FFD2 findet, ausgebt.

Hier nun die Liste mit den wichtigsten Steuerzeichen…

PETSCII
dezimal
PETSCII
hex

Funktion
147$93Bildschirm löschen und Cursor links oben in die Ecke setzen
19$13Cursor nach links oben in die Ecke bewegen (home)
29$1DCursor ein Zeichen nach rechts
157$9DCursor ein Zeichen nach links
17$11Cursor eine Zeile nach unten
145$91Cursor eine Zeile nach oben
32$20Leerzeichen ausgeben
13$0DCursor an den Beginn der nächsten Zeile (Zeilenumbruch)
18$12Invertieren an
146$92Invertieren aus
14$0EGroß- & Kleinbuchstaben anschalten
142$8EGroßbuchstaben und grafische Symbole anschalten
144$90Zeichenfarbe auf schwarz setzen
Die 16 Farben des C64.
Die 16 Farben des C64.
5$05Zeichenfarbe auf weiß setzen
28$1CZeichenfarbe auf rot setzen
159$9FZeichenfarbe auf türkis setzen
156$9CZeichenfarbe auf lila setzen
30$1EZeichenfarbe auf grün setzen
31$1FZeichenfarbe auf blau setzen
158$9EZeichenfarbe auf gelb setzen
129$81Zeichenfarbe auf orange setzen
149$95Zeichenfarbe auf braun setzen
150$96Zeichenfarbe auf rosa setzen
151$97Zeichenfarbe auf dunkelgrau setzen
152$98Zeichenfarbe auf grau setzen
153$99Zeichenfarbe auf hellgrün setzen
154$9AZeichenfarbe auf hellblau setzen
155$9BZeichenfarbe auf hellgrau setzen

 

Arbeitet ihr mit Assembler (oder POKEs) direkt im Bildschirmspeicher, dann werdet ihr bestimmt darüber stolpern, dass  ihr teilweise andere Codes verwenden müsst. Außerdem funktionieren dort die Steuerzeichen nicht! An der Stelle werden nämlich direkt die Zeichen aus dem Char-ROM verwendet.

 

Hier nun, wie versprochen, das BASIC-Listing (nicht schön, aber es läuft 😉 ). Ihr könnt das direkt kopieren und z. B. im CBM prg Studio in ein Basicfile einfügen und starten.

 

 


Schrott!!Naja...Geht so...Ganz gut...SUPER! (1 Bewertungen | Ø 5,00 von 5 | 100,00%)

Loading...


 

<<<zurück |

weitersagen ...
Tweet about this on TwitterShare on FacebookShare on Google+Share on LinkedIn

2 Gedanken zu „PETSCII“

  1. Hi, ich lese gerade diverse Seiten hier durch um das Programmieren im CBM Stdio zu lernen. Coole Seiten und tlw. super Erklärungen zur Hardware. Mein Problem aktuell ist folgendes. Wie kann ich in Assembler Steuerzeichen für den C64 ausgeben. Ich habe das so gelöst:
    text“D0=U21″
    byte $9D,$9D,$9D,$9D,$9D,$9D,$11,$11
    Es soll aber möglich sein mit !pet“Hallo“,13,17,0 eine direkte Eingabe der Steuerzeichen zu machen, haut aber nicht hin bei mir (cbm stdio 3.0.0)
    Gibt es einen Tipp? Oder am Besten ein kleines Beispiel?
    Gruß und vielen Dank
    Pit

    1. Hallo,
      !pet ist ACME-Syntax, die kennt das CBM prg Studio leider nicht.

      Du kannst aber folgendes machen (CBM prg Studio 3.1.0 BETA)…

      *=$0801
      ; 2014 SYS 2062
      BYTE $0B,$08,$DE,$07,$9E,$20,$32,$30,$36,$32,$00,$00,$00

      ;*** Start des Programms
      ldx #0
      @loop
      lda test,X
      beq @exit
      jsr $FFD2
      inx
      bne @loop
      @exit
      rts

      test
      BYTE 147,"HALLO",29,17,29,18,"WELT",146,150,"!",0
      ;Bildschirm löschen (147)
      ;"HALLO"
      ;CURSOR rechts (29), unten (17), rechts (29)
      ;REVERS AN (18)
      ;"WELT"
      ;REVERS AUS (146)
      ;FARBE hellrot (150)
      ;"!"
      ;ENDE der Ausgabe (0)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Protected by WP Anti Spam