Erstellt: 28. Februar 2013 (zuletzt geändert: 1. Januar 2018)

Char-ROM

Das Char-ROM

Das Char-ROM (Zeichen-ROM), ist im Speicher von $d000$dfff zufinden (s. Kleine Hardwarekunde). Es teilt sich diesen dreifachbelegten Platz mit dem RAM und dem E/A-Baustein. Im Char-ROM ist das Aussehen der beiden Standardzeichensätze des C64 hinterlegt. Geben wir Zeichen direkt in den Bildschirmspeicher aus, dann müssen wir den Platz im Char-ROM verwenden und nicht die Nummer aus der PETSCII-Tabelle. Ein Vorteil bei Verwendung der Zeichen aus dem Char-ROM ist, dass wir Zugriff auf alle Zeichen haben. Unter PETSCII gibt es auch Steuerzeichen, die sich nicht darstellen lassen.

In den folgenden vier Bildern findet ihr alle Zeichen, die der 1. und 2. Zeichsatz des C64 zu bieten hat. Zum Abschluß folgt noch das BASIC-Programm, mit dem diese Ausgaben erzeugt wurden.

Zeichensatz 1 Zeichen 0 bis 127
Zeichensatz 1 (nur Großbuchstaben) : Zeichen 0 bis 127
Zeichensatz 1 mit den Zeichen 128 bis 255
Zeichensatz 1 (nur Großbuchstaben) : Zeichen 128 bis 255

 

Jetzt noch die Zeichen aus dem 2. Zeichensatz (mit Groß- und Kleinschreibung).

Zeichensatz 2 (Groß- und Kleinbuchstaben) : Zeichen 0 bis 127
Zeichensatz 2 (Groß- und Kleinbuchstaben) : Zeichen 0 bis 127
Zeichensatz 2 (Groß- und Kleinbuchstaben) : Zeichen 128 bis 255
Zeichensatz 2 (Groß- und Kleinbuchstaben) : Zeichen 128 bis 255

 

Eine häufig genutzte Funktion, ist die Möglichkeit den Zeichensatz zu ändern. Ihr könnt so z. B. die Grafik für ein Spiel (es gibt auch mehrfarbige Zeichen) oder einen eigenen Zeichensatz für eine futuristische Textausgabe erstellen.

Und zum Schluß das versprochene (optimierungsbedürftige) BASIC-Listing.
Mit SPACE schaltet ihr zwischen den Zeichen von 0-127 und 128-255 um. Drücken von 1 oder 2 bewirkt die Zeichensatzumschaltung und mit X könnt ihr das Programm beenden (dabei wird der Zeichensatz auch wieder zurück gestellt). Wer einen Emulator benutzt, ist hier im Vorteil, der Aufbau dauert immer etwas und lässt sich z. B. mit der Warp-Funktion von WinVice erträglicher gestalten.

10 t%=0:s%=0
20 print chr$(147);
30 if s%=0 then print "  char-rom (zeichensatz 1)";chr$(142)
40 if s%=1 then print "  Char-ROM (Zeichensatz 2)";chr$(14)
50 for y=0 to 21
60 for x=0 to 5
70 c%=y*6+x+t%*128
80 if c%>t%*128+127 then goto 160
90 print " ";
100 if c%<10 then print"  ";
110 if c%<100 and c%>9 then print " ";
120 print c%;
130 next x
140 print
150 next y
160 for y=0 to 21
170 for x=0 to 5
180 c%=y*6+x
190 if c%>127 then goto 230
200 poke 1024+(y+1)*40+(x*6)+6,c%+t%*128
210 next x
220 next y
230 print:print:
240 if s%=0 then print "space=blaettern : 1 o. 2 fuer zeichsatz";
250 if s%=1 then print "SPACE=blaettern : 1 o. 2 fuer Zeichsatz";
260 get a$:if a$="" then goto 260
270 if a$=" " then t%=abs(t%-1):goto 20
280 if a$="1" then if s%=1 then s%=0:goto 20
290 if a$="2" then if s%=0 then s%=1:goto 20
300 if a$<>"x" then goto 260
310 if s%=1 then print chr$(142)
320 print chr$(147)

Schrott!!Naja...Geht so...Ganz gut...SUPER! (4 Bewertungen | Ø 4,75 von 5 | 95,00%)

Loading...


Zurück

Schreibe einen Kommentar

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

Protected by WP Anti Spam