Archive for September 2018

Ein neuer Systemfont für den C64

17. September 2018

Problem-Vergleich3

(Probleme des Original-Zeichensatzes und deren Lösungen: Zeilendurchschuss, Negativ-Schrift, x-Höhe und Buchstabenformen)

Präsentiert auf der DoReCo Party 2018

Ein C64 Zeichensatz besteht aus 256 Zeichen (8 Bit). Die 128 unterschiedlichen Zeichen des Systemfonts liegen im Zeichensatz doppelt vor, einmal positiv und einmal negativ. Der C64 besitzt im ROM 2 Zeichensätze, und zwar Großschrift/Grafikzeichen (Standard) und Groß-/Kleinschrift, zwischen denen mit der Tastenkombination C=/SHIFT (oder programmgesteuert) umgeschaltet werden kann.

Ein einzelnes Zeichen hat im Hires Textmodus eine Auflösung von 8×8 Pixeln. Jeder der beiden eingebauten Zeichensätze ist 2 KB groß (8×8 Pixel × 256 Zeichen = 16.384 Bits / 8 Bit = 2.048 Bytes), insgesamt belegen sie also 4 KB von $D000 bis $DFFF im ROM (aus Sicht der CPU). Um einen Zeichensatz zu verändern, muss man ihn entweder vorher ins RAM kopieren oder den CharROM-Baustein ersetzen.

Der C64 Systemfont ist einzuordnen als nicht-proportionaler, serifenloser Bitmap-Font. Der Font (wie auch schon der vom PET) wurde in erster Linie von Leonard Tramiel (Sohn von CEO Jack Tramiel) und PET-Designer Chuck Peddle entworfen. Der Font ist NICHT einfach aus dem PET/VC20-Zeichensatz durch Pixel-Verdoppelung hervorgegangen und die Kleinbuchstaben wurden 1:1 vom deutlich früher erschienenen Atari 400/800 Font (Scott Scheiman 1979) „übernommen“.

Das Ziel meiner Überarbeitung:

  • Verringerung der Versalhöhe 
von 7 auf 6 Pixel: Bessere Lesbarkeit von mehrzeiligem Text durch größeren Zeilendurchschuss
  • Geschlossene Negativ-Darstellung
  • Besserer Lesefluss durch einheitliche x-Höhe
  • Verbesserungen von optisch problematischen Zeichenformen

Einige wenige Kleinbuchstaben (aelnovx) und sämtliche PETSCII-Grafikzeichen bleiben unangetastet, bei vielen Großbuchstaben kann einfach eine Pixelzeile entfernt werden (BEFHIKLMNOPTUVXYZ) – aber dann kommen die Problemfälle …

Im linken blauen Block sieht man die Zeichen in Ausprägungen unterschiedlicher 8-Bit-Systeme, im weißen Block sieht man die von mir ausprobierten Lösungen und ganz rechts dann die ausgewählte Variante:

Font-Vergleich-bdhk

Font-Vergleich-Smrs

Font-Vergleich-234

Font-Vergleich-@$%&

Original (rot) und meine Überarbeitung (schwarz) aller veränderbaren Zeichen:

Font-Vergleich PETSCII vs. Retrofan

Screenshot 1: Oben die Überarbeitung, unten das Original. Oben geschlossene Negativ-Schrift und ausgeglichenes Schriftbild ohne hüpfende x-Höhe.

C64-Screenshot-xHight2

Screenshot 2: Neuer Font im Basic-Listing: Größerer „Zeilendurchschuss“, dadurch bessere Lesbarkeit. Klarere Darstellung der negativen Steuerzeichen.

C64-Basic-RF

Der neue C64-Systemfont PXLfont88665-RF2.0-C64sys.bin in Gesamt-Übersicht:

PXLfont88665-RF2.0-C64sys-u+l

Der Font liegt als 4 KB Binary vor und kann direkt in Emulatoren, wie VICE, installiert oder in einen echten Commodore 64 eingebaut werden, indem man das sog. CharROM austauscht. Der Baustein liegt einzeln vor, oftmals ist er sogar gesockelt und kann einfach durch ein selbst gebranntes EPROM ersetzt werden. Gerne werden dafür auch Umschalt-Platinen verwendet.

Download: PXLfont88665b-RF2.1-C64sys.bin

Mehr Informationen zum Font kann man im Forum64 finden. Auch das Brennen von Character EPROMs ist dort Thema.