Seit Version 2.20515 ist TSB in der Lage, mit einigen verbreiteten Bildformaten umgehen zu können: Standard-Bitmap, Doodle und Hi-Eddi im Hires-Bereich und Blazing Paddles sowie Artist64 im Multicolor-Bereich. Damit können sowohl gängige Bilder nach TSB importiert, wie auch TSB-generierte Bilder in gängige Formate exportiert werden, was vielleicht einen belebenden Effekt auf den Austausch zwischen Programmiersprachen und Bildeditoren haben könnte.
Verantwortlich dafür sind die beiden Befehle SCRLD und SCRSV, sowie deren "Zulieferer" SCRLD DEF und SCRSV DEF.
Vorgeschichte:
Ursprünglich waren SCRSV und SCRLD in Simons' Basic Befehle, die dazu dienten, Textbildschirme und deren Farben (sogenannte Bildschirmmasken) abzuspeichern bzw. zu laden. Sehr früh schon veröffentlichte dann Hans Haberl (der Autor von Print- und Pagefox) einen Patch für die Befehle, der es erlaubte. auch Bitmaps (ohne Farben) auf Diskette zu bringen. Dieser Patch wurde in TSB übernommen.
Dann tat sich lange Zeit nichts, bis ich auf die Idee kam, mit ein paar POKEs die Eigenschaften der gespeicherten bzw. geladenen Daten zu modifizieren (siehe die drei Möglichkeiten bei den Tipps zu Zeichensätzen). Schließlich ergänzte Peter Hagemann den Reigen an zusätzlichen SCRSV-Fähigkeiten mit der Einführung der Sekundäradresse 5 für das Speichern von Bitmaps einschließlich ihrer Farben.
Nicht überschaubare POKE-Wüsten würden den Spaß an diesen neuen Fähigkeiten sicherlich verderben, daher setzte Peter Hagemann schließlich noch zwei neue TSB-Befehle oben drauf, die dem Programmierer die POKEerei abnehmen: eben SCRSV/SCRLD DEF und SCRSV/SCRLD RESTORE.
Und damit zu den Tipps:
Mit SCRSV kann man nun Bilder in einigen der gängigen Dateiformate abspeichern. Dabei muss man wissen, dass SCRSV die Daten pageweise (in Blöcken zu je 256 Bytes) verarbeitet. Daher fällt leider das wichtigste C64-Bildformat heraus (Koala), denn dort werden nur die tatsächlich erforderlichen Daten gespeichert (die sich am 40×25 (gleich 1000) Kacheln großen Bildschirm orientieren).
Wichtig: Alle mit SCRSV/SCRLD DEF vorgenommenen Einstellungen müssen nach Ausführung des zugehörigen SCRSV/SCRLD mit dem Befehl SCRSV/SCRLD RESTORE wieder auf die Vorgabewerte zurückgestellt werden. Die SCR-Befehle können alle - anders als LOAD - mitten im laufenden Programm verwendet werde, ohne den Programmlauf damit zu beenden oder zu unterbrechen.
Hires-Formate | Laden | Speichern |
TSB-Format | SCRLD 1,dr,5,"name" | SCRSV 1,dr,5,"name,p,w" |
Bitmap (monochrom) | SCRLD 1,dr,3,"name" | SCRSV 1,dr,3,"name,p,w" |
Zeichensätze nach MEM (2048 Bytes lang, nach $E000) |
SCRLD DEF $E0,8,0,3 SCRLD 1,dr,3,"name" |
SCRSV DEF $E0,8,0,3 SCRSV 1,dr,3,"name,p,w" |
Hi-Eddi | SCRLD DEF $C0,4,1,2 SCRLD 1,dr,5,"name" |
SCRSV DEF $C0,4,1,2 SCRSV 1,dr,5,"name,p,w" |
Doodle | Doodle laden mit SCRLD nicht möglich |
SCRSV DEF $C0,4,1,2 SCRSV 1,dr,2,"name,p,w" SCRSV DEF $E0,32,2,3 SCRSV 1,dr,3,"name,p,a" |
Multicolor-Formate | Laden | Speichern |
TSB-Format | SCRLD 1,dr,5,"name" (Hintergrundfarbe aus dem Namen oder aus der Datei auslesen) |
SCRSV 1,dr,5,"name,p,w" (Hintergrundfarbe im Namen oder im Dateiraum vermerken) |
Bitmap (Multicolor) | SCRLD 1,dr,3,"name" | SCRSV 1,dr,3,"name,p,w" |
Blazing Paddles (auch Artist64) |
Blazing Paddles laden mit SCRLD nicht möglich |
SCRSV DEF $C0,4,1,2 SCRSV 1,dr,5,"name,p,w" SCRSV DEF $D8,4,2,2 SCRSV 1,dr,2,"name,p,a" |
Beliebige Daten | Laden | Speichern |
eine Page (256 Bytes, hier: ab $C000) |
SCRLD DEF $C0,1,0,3 SCRSV 1,dr,3,"name" |
SCRSV DEF $C0,1,0,3 SCRSV 1,dr,3,"name,p,w" |
Basic-Programm (hier: 3 KB lang) |
SCRLD DEF $08,12,0,3 SCRSV 1,dr,3,"name" |
SCRSV DEF $08,12,0,3 SCRSV 1,dr,3,"name,p,w" |