fnt-Descriptor (Font Descriptor)

v1.00 30.09.21


Font Descriptor

Font Descriptor Eingabe

Font Descriptor Fehlermeldung
Bild 1: Nach dem Laden einer fnt-Datei (Impact).
Bild 2: Der Eingabemodus (für die fiktive Datei "Neuer Font".
Bild 3: Fehlermeldungen sind auch vorgesehen.

Das GoDot-Zusatzprogramm Font Descriptor dient dazu, die Verwaltungsdaten der GoDot-Fonts anzuzeigen bzw. diese auf bequeme Weise eingeben zu können (d.h. also, die Font-Beschreibungsdatei zu editieren).

Um den Font Descriptor zu starten, benötigt man die Basic-Erweiterung TSB, die auf der vierten GoDot-Diskette (godot_d.d64) enthalten ist. Sie wird aktiviert mit LOAD "tsb", drive und <Return>. In TSB angekommen, lädt man den Font Descriptor mit LOAD "fnt-Descriptor" und <Return>. Nach einer kurzen Initialisierung (in der u.a. der GoDot-Zeichensatz in der Ausführung von Retrofan installiert wird), landet man im Editor-Bildschirm (der im Wesentlichen so aussieht wie Bild 3, natürlich noch ohne Font-Namen und ohne die Fehlermeldung).

Wie man unschwer erkennen kann, wird hier die GUI-Engine von GoDot selbst verwendet (allerdings in BASIC nachgebildet), aber ohne Mausbedienung und natürlich im Ablauf etwas behäbiger.

Anlass zum Programmieren des Font Descriptors war die mühselige bisherige Erstellungsprozedur einer solchen Font-Beschreibungsdatei. Man musste sie mittels eines Disk-Monitors Byte für Byte von Hand erstellen, dazu durfte man sich bei den vier Sections (General, Lower, Upper und Extra) nicht verzählen, zumal die Daten in der Anordnung den Anzeige-Panels des Modul-Requesters folgen (das große "F" z.B. ist im zugehörigen Diskblock an Position 58/$3a). Da es aber zuviel Aufwand bedeutet hätte, hierfür ein eigenes GoDot-Modul zu schreiben, ist eben dieses Zusatzprogramm entstanden.

Lower
Upper
Extra
Bild 4: Die Eingabe-Sections

Will man einen neuen Zeichensatz eingeben, beginnt man mit dem Header. Die Gadgets dort erreicht man mit den dunkel gefärbten Hotkeys, also "n" für den Font-Namen, "w" für die generelle Zeichenbreite, "h" für deren Höhe (beides in Kacheln) und "b" für die Pixelposition der Basislinie. Wo Zahlen verlangt werden, kann man ausschließlich (Dezimal-) Ziffern eingeben, und jede Eingabe muss mit <Return> abgeschlossen werden. Drückt man nur <Return>, bleibt der alte Wert der jeweiligen Zelle erhalten.

In die eigentliche Eingabe im Bereich der Sections gelangt man mit <Return> (Bild 2, dort Section "Lower"). In der ersten Eingabezelle erscheint dann ein Block-Cursor (in Bild 2 bereits beim Buchstaben "v") und man gibt seine Daten ein. Hat man sich mit einem Wert vertan, aber bereits <Return> gedrückt, kommt man mit "" (Shift-Plus und <Return>) eine Zelle zurück und kann sie erneut bearbeiten. Hat man sich ganz und gar vertan und wollte gar keine Daten eingeben, verlässt man den Eingabemodus mit <STOP> und <Return>. Ist ein Zeichen nicht im Zeichensatz enthalten, gibt man eine 0 (Null) ein.

Wie man an den Bildern hier erkennen kann, sind die Sections im Font Descriptor anders aufgebaut als im GoDot-Modul (wie in Bild 4 zu sehen). Sie folgen hier der Reihenfolge im zugrunde liegenden Zeichensatz des C64. Das bedeutet, dass in man Section 3 (Digits) und 4 (Extra) ein bisschen aufpassen muss, nicht einen falschen Wert zuzuordnen. Man wechselt die Sections mit einer der Tasten F1 bis F4.

Einen fertigen Zeichensatz speichert man mit der Taste F6. Die fnt-Datei wird dabei auf dieselbe Diskette geschrieben, auf der sich auch der Font Descriptor befindet. Sollte es dabei zu einem Diskettenfehler kommen, meldet das Programm einen "Error on Save". Sollten noch Daten im Header fehlen, meldet es "Header incomplete". Man kann daraufhin ändern und es noch einmal versuchen.

Wer den Font Descriptor nur zur Informationsgewinnung verwenden will (welche Daten sind bei welchem Zeichensatz eingegeben worden), lädt einfach die entsprechende Font-Beschreibungsdatei in den Editor. Dazu legt man zuerst eine Font-Diskette in ein beliebiges Laufwerk (8 bis 11, wie unter GoDot üblich), gibt dann mit "n" den gewünschten Font-Namen ein (den man aber kennen muss, denn eine Directory-Funktion ist nicht eingebaut) und drückt schließlich auf F5. Das Programm sucht nun alle angeschlossenen Drives nach der angegebenen Datei ab und lädt sie, wenn vorhanden in den Speicher. Alle Daten sind dann sofort verfügbar. Findet Font Descriptor die Datei nicht, meldet es "File not found" (wie in Bild 3 zu sehen).

Man kann jetzt natürlich auch Werte verändern bzw. korrigieren. Dazu ist es allerdings erforderlich, dass alle (!) Daten von Hand bestätigt werden. Das ist etwas umständlich, aber im Moment die einfachste Lösung. Tut man das nicht, meldet der Font Descriptor sich mit "Edit all sections!" und speichert nicht.

Mit F7 verlässt man (ohne Nachfrage) das Programm. Danach ist TSB weiterhin aktiv. Um nach GoDot zurückzukehren, ist daher in Emulatoren ein Hard-Reset erforderlich. Die echte Maschine muss man aus- und wieder einschalten (oder - wenn man das vermeiden will - man gibt den Befehl POKE $8004,0 ein und löst mit SYS $fce2 einen Soft-Reset aus).

Abgespeicherte fnt-Dateien kopiert man am Ende auf die zugehörige Font-Disk und kann dann gleich mit dem Titler loslegen.


zurück - zum Menü für nicht zuzuordnende Module

Arndt Dettke
support@godot64.de