mod.PrintTo4Bit

v1.10 29.03.18


PRINT konvertieren

Hires 1×1-Font

Hires 2×2-Font

Multi 2×2-Font
oben: Modul zum Konvertieren von PRINT-Screens
unten: Zeichensätze aus der Anzeige mit "Show Font":
("5×5" Hires, "Broadway" Hires, "Chrome" Multi)

PrintTo4Bit verwandelt die Bildschirmausgabe eines (speziell vorbereiteten) BASIC-Programms in ein 4Bit-Bild oder in die Beschriftung eines im 4Bit-Speicher bereits vorhandenen Bildes.

Dieser Modifier soll dazu dienen, Blockgrafikbilder, in BASIC programmierte Bedienungsoberflächen oder Spiele-Bildschirme (die sich allerdings auf PRINT-bare Zeichen beschränken müssen) auf relativ einfache Weise für eine Begutachtung bei der Programmentwicklung oder bei der Veröffentlichung von Informationsmaterial zur Verfügung zu stellen.


Bedienung des Moduls:

Zuerst ein BASIC-Programm wie unten beschrieben vorbereiten und auf einen Datenträger speichern.

Replace öffnet GoDots Filerequester zum Auswählen dieses BASIC-Programms. Vor dem Laden löscht GoDot den 4Bit-Speicher in der Farbe schwarz. Danach wird das geladene BASIC-Programm in den nun leeren Bildspeicher hineinkonvertiert.

Auch mit Overlay wird ein BASIC-Programm geladen, GoDot schreibt aber direkt dessen PRINT-Anweisungen in ein vorhandenes Bild im 4Bit-Speicher hinein ("beschriftet" das Bild damit, s. Beispiele 1 und 2). Stellen, die per Steuerzeichen übersprungen werden, bleiben unberührt. Hinweis: Wenn das BASIC-Programm den Bildschirm nicht löscht, wird der aktuelle Inhalt des GoDot-Bildschirms mitkonvertiert (also der Bildschirm mit dem PrintTo4Bit-Requester).

Mit dem Font-Gadget (steht hier auf "GoDot Font") wählt man einen der drei in GoDot "festverdrahteten" Zeichensätze aus: den GoDot-Font mit allen Umlauten und den Rahmenzeichen für die Gadgets, den C64-Zeichensatz mit den Grafikzeichen (heißt hier: "C64 Upper") oder den C64-Zeichensatz mit den Kleinbuchstaben (heißt hier: "C64 Lower").

Mit Get aktiviert man diesen Zeichensatz für PrintTo4Bit. Er wird dabei an die Speicheradressse $2000 transferiert (in die GoDot-Bildanzeige also, die dadurch zerstört wird) und dann oben im Requester namentlich ausgewiesen (hier: "chrome 2×2").

Über das Ld-Font-Gadget lädt man einen systemfremden, neuen Zeichensatz nach GoDot (ebenfalls an die Adresse $2000; Beispiele dafür siehe Bilder oben rechts).

In diesem nun aktivierten Zeichensatz werden die Zeichen des BASIC-Programms dann dargestellt. Der Name des geladenen Sets wird oben angezeigt (hier also "chrome 2×2"). Da es bei diesem Modifier um PRINT-Anweisungen geht, sind Zeichen, die mit PRINT nicht darstellbar sind (z.B. Zeichen, die von der Tastatur aus nicht eingegeben werden können), für PrintTo4Bit unbrauchbar. Bei Spiele-Zeichensätzen kommt das z.B. häufiger vor, da die meisten Zeichen dort oft für andere Zwecke verwendet werden (Hintergrund-"Grafik" u.ä.) PrintTo4Bit kann BASIC-Programme mit solchen Zeichen also nicht immer zufriedenstellend verarbeiten.

Der geladene Zeichensatz bleibt so lange erhalten, wie nicht neu gerendert wurde (wenn man zwischendurch das Modul verlässt und nicht neu rendert, bleibt zur Erinnerung die Anzeige des Zeichensatznamens bestehen).

Mit dem Modus-Gadget (es zeigt entweder Multi oder Hires an, hier: Multi) legt man fest, in welchem Modus der nachgeladene Zeichensatz ins 4Bit-Bild eingearbeitet wird. Der Modifier startet bei Multi beim ersten Aufruf des Modifiers mit einer Farbvorgabe, von der wir meinen, dass sie Multi-Fonts gut zur Geltung bringen kann (siehe Bild oben und Beispiel 1). Die Farben können aber individuell gesetzt werden, indem man die jeweilige Farbe in der Anzeige hinter MC1, MC2 und FGr anklickt (dabei wechselt die Farbe zyklisch). Auch BGr ist anwählbar (für die Darstellung bei "Show Font"), der Hintergrund wird jedoch in jedem Fall beim Auslösen des Modifiers (mit Replace oder Overlay) transparent gerendert. Im Modus Hires ist keine Farbwahl möglich und die Gadget-Beschriftung wird ausgegraut.

Der "Show Font"-Button schaltet um auf die Grafikanzeige, damit man sich den Zeichensatz vor dem Konvertieren des BASIC-Programms ansehen kann. Die Zeichendaten befinden sich ausschließlich im oberen Teil des Bildschirms (mal mehr, mal weniger umfangreich, s. Bilder rechts oben). Show Font beachtet bei der Darstellung den gewählten Grafikmodus.

Leave verlässt das Modul. Wenn man nicht neu rendert, bleibt der zuvor geladene Zeichensatz erhalten.


Informationen zum Erstellen der BASIC-Programme:

Damit GoDot die Screen-Ausgabe eines BASIC-Programms bearbeiten kann, muss das Programm auf die PRINT-Befehle reduziert werden. Es darf ausschließlich aus PRINT-Anweisungen mit nachfolgenden Textkonstanten (Text in Anführungszeichen) bestehen. Die Textkonstanten dürfen dabei beliebige Bildschirmsteuerzeichen zur Positionierung der Schrift oder zur Farbgebung enthalten. Zusätzlich sind die Einrückungsfunktionen TAB und SPC sowie das Tabulatorkomma erlaubt. Ein Semikolon am Ende einer PRINT-Anweisung verhält sich genauso wie in BASIC (der Cursor bleibt in der Zeile). Beispiel:

100 PRINT "Dies ist ein Beispiel."
110 PRINT "Dies steht eine Zeile tiefer."

Der Text wird (mit den Zeichen des gewählten Zeichensatzes) genauso in die Grafik "geschrieben", wie der BASIC-Interpreter das Programm ausführen würde.

Für besondere Fälle haben wir die REM-Anweisung mit zusätzlichen Features versehen, z.B. um das Zeichen in der rechten unteren Ecke (das man sonst mit POKE setzen müsste) zu erreichen (s. Beispiel 2). Das geht wie folgt:

Nach einem REM und folgendem Anführungszeichen setzt man zuerst drei Ziffern, die sich so verstehen:

Ziffer 1

Ausrichtung

0 = linksbündig (Vorgabe)
1 = rechtsbündig
2 = zentriert

Ziffer 2

Vordergrundfarbe

0 bis f (Vorgabe: 1 = weiß)

Ziffer 3

Hintergrundfarbe

0 bis f (Vorgabe: transparent)
(transparent: alles außer 0 bis f, z.B. "t")

Darauf folgt ein Doppelpunkt. Er hat nur den Zweck, die Codes optisch vom Text zu trennen. Damit GoDot weiß, in welche Bildschirmzeile der Text hinter REM geschrieben werden soll, nimmt es dazu die BASIC-Zeilennummer her. Für eine Ausgabe eines Sterns in Zeile 24 (unterste Bildschirmzeile), ganz rechts (die Stelle, die von PRINT nicht erreicht werden kann, ohne den Bildschirm zu verschieben), schreibt man also:

24 REM"1e6:*"

Dies erzeugt einen hellblauen Stern auf dunkelblauem Hintergrund in der rechten unteren Ecke.

Hinweise:
· Die Einstellung Multi wirkt nicht auf die Angaben bei REM.
· PRINT und REM können im Basicprogramm beliebig gemischt auftreten (aber den Sinn der Zeilennummern bei REM beachten!)
· Der GoDot-Bildschirm wird für die Konvertierung gelöscht und der Fortschritt der Bearbeitung durch hellblaue Punkte auf dem Screen markiert.


Beispiele:

Zuerst Beschriftungen: In Multi...

Zeichensatz

Programm
Beispiel 1: Dieses Programm schreibt den Text "GODOT" im
2x2-Multicolor-Zeichensatz "Chrome" von Subchrist unten rechts
in die Ecke des Bildes. Die Doppelzeichen stehen in den BASIC-
Zeilen 140 und 160.
Ergebnis
Beschriftet! (Dies ist ein AFLI-Bild aus dem Demo "Recycle" von Focus, hier von GoDot gerendert in Multicolor.)

...und Hires

Zeichensatz

Programm
Beispiel 2: Die Texte "FRANQUIN" (der Name des Urhebers, Zeilen
125 und 140) und "GASTON" (der Name des Bildes, Zeilen 135 und
160) im 2x2-Hires-Zeichensatz "Broadway" von Subchrist sollen
unten ins Bild geschrieben werden.
Ergebnis
Ebenfalls beschriftet! (Dies ist ein Art-Studio-Bild, gerendert in Hires.)

Tipps:

· Bei 2×2-Zeichensätzen (wie in Beispiel 1 und 2) ist das Leerzeichen meistens anderweitig belegt und dessen Inhalt muss vor dem Auslösen von Replace bzw. Overlay im Zeichensatz an eine andere Stelle verschoben werden, weil sonst alle Leerzeichen auf dem BASIC-Bildschirm mit diesem Zeichen beschrieben würden. Dazu muss man PrintTo4Bit verlassen, EditMask aufrufen, dort in das Editierfenster klicken, mit CBM t in die rechte obere Ecke des Bildes wechseln und viermal CBM CRSR← eingeben. Das Zeichen in der jetzt sichtbaren linken oberen Ecke des Editierfensters ist das Leerzeichen eines normalen Zeichensatzes (also die achtletzte Kachel der obersten Kachelzeile an Position X: 32 Y: 0). Dieses Zeichen wird mit CBM + aufgenommen und danach mit CBM £ gelöscht (ggf. erst CBM m, um auf "Erase" umzuschalten). Damit ist dieses Zeichen jetzt wirklich leer. Im nächsten Schritt tippen wir CBM h (für Home) und fügen dort das eben aufgenommene Zeichen mit CBM - wieder ein, damit es nicht verloren geht.
· Beim Beschriften im Hires-Modus sollte man darauf achten, dass an der Stelle, an der der Text im Bild eingefügt wird, ein einfarbiger Hintergrund vorherrscht, sonst sieht das Ergebnis wegen der Farbbeschränkungen des C64 weniger gut aus.


Dann ganze Bilder: Replace...

Programm
Beispiel 3: Dieses BASIC-Programm war einmal 2. Sieger in einem
Blockgrafikwettbewerb des 64'erMagazins.
Anzeige
Und dies kommt mit PrintTo4Bit dabei heraus: exakt wie das Original, nur als Hires-Grafik.

...und Overlay

Programm
Beispiel 4: Der erste Preis sah als Programm so aus.
Anzeige
Und als Bild genau wie hier, in GoDot. Beachten Sie die REM-Zeile, sie füllt das 1000. Byte rechts unten.
Für dieses Bild wurde der 4Bit-Speicher zunächst mit Weiß gelöscht (ClipWorks/ClrClp) und das BASIC-
Programm dann als Overlay geladen.

Ein starkes Werkzeug!


zurück - zum Standardmodifier-Menü

Arndt Dettke
support@godot64.de