Große Hardcopy auf Star Gemini
Posterähnliche Hardcopies können die Star Gemini-Besitzer mit diesem Programm erzeugen.
Geben Sie das Programm genau nach Programmlisting, von Basic aus ein, vergleichen Sie es und speichern Sie es ab. Danach können Sie den Basic-Lader mit RUN starten. Das Programm sollte sich mit »Datas OK !«, »AUFRUF ; SYS 49152,ADR,FN,GN,SA,INV« melden und ist nun ab sofort startbereit.
Sollte diese Meldung nicht erscheinen und »Fehler in Datas !!!« gemeldet werden, so ist eine Diskrepanz in der Prüfsumme aufgetreten. Die DATA-Zeilen sind fehlerhaft. Kontrollieren Sie das Programm noch einmal genau anhand des Listings und starten Sie es erneut.
Ist das Programm bereit, so können Sie den Basic-Lader mit NEW aus dem Arbeitsspeicher löschen. Laden Sie nun eine bereits abgespeicherte Grafik, oder erzeugen Sie per Programm den gewünschten HiRes-Bildschirm. Zum Poster-Ausdruck starten Sie die Routine mit »SYS 49152, ADR, FN, GN, SA, INV«. ADR gibt dabei die Startadresse des 8-KByte-Bereiches an. Oft ist dies die Adresse 8192 ($2000), es ist jedoch auch möglich, Bildschirme, die unter dem ROM stehen, auszudrucken. Für Simons Basic wäre dies zum Beispiel die Adresse 57344 ($D000). Die drei nächsten Parameter entsprechen den Angaben des OPEN-Befehls. Sie beinhalten die Filenummer, eine Zahl zwischen 1 und 255, die für den Ausdruck belanglos ist, die Geräteadresse des Druckers, die im allgemeinen auf 4 eingestellt ist und die Sekundäradresse für die Drucker- beziehungsweise Interface-Ansteuerung. Für das Universal-Interface (WW Interface 92000/G, C 64/Centr.) muß diese gleich eins sein. Der letzte Parameter gibt den Druckmodus an. Eine »0« steht für normale Darstellung; eine »1« für inverse.
Das Poster kann auf beliebiges Papier gedruckt werden. Für die Verwendung von Einzelblättern wird allerdings die Papierende-Kennung ausgeschaltet, damit die gesamte Hardcopy ohne Unterbrechung ausgedruckt werden kann. Nach dem Drucken wird durchein Form-Feed das Papieraus dem Drucker geschoben, der Drucker in den Einschaltzustand versetzt und das entsprechende File geschlossen. Wird die Hardcopy mit der Stop-Taste abgebrochen, so wird ebenso ein Druckerreset ausgeführt und das Druckerfile geschlossen. Das Papier wird allerdings nicht transportiert. Der Computer sollte sich mit »BREAK«, »READY« wieder melden.

Mit Hilfe eines Monitors oder eines modifizierten Laders kann die Hardcopy auch direkt abgespeichert werden (Achtung: Der Monitor darf nicht bei 49152 ($C000) liegen). Die Adressen, die das Programm belegt, reichen von 49152 bis 49590.
Natürlich kann die Routine in eigene Grafikprogramme eingebettet werden. Die Filenummer sollte dann einen noch unbelegten Kanal verwenden.
Arbeitet man mit Simons Basic zusammen, so ist folgendes zu beachten: Simons Basic belegt den Speicherbereich von $C000 bis $C400 mit der Farbinformation der Grafik. Das heißt, unsere Routine würde durch den HiRes-Befehl gelöscht. Um trotzdem mit der Erweiterung arbeiten zu können, ist die Grafik nach Beendigung der Bilderstellung mit »CSET0« auszuschalten. Jetzt erst können wir unsere Routine mit dem Basic-Lader nach 49152 ($C000) kopieren und starten. Achtung: Durch das Kopieren und Starten der Routine geht die Farbinformation der ersten Bildhälfte verloren. Will man die Farbe wieder setzen, so muß der veränderte Bereich nach der Hardcopy wieder mit der Farbinformation gefüllt werden (FOR i=49152 TO 49600:POKE i,PEEK(49700):NEXT i).
Die Arbeit mit dem »64’er«-Programm »Hi-Eddi« ist am besten möglich, indem man die Grafikseite abspeichert und nach Verlassen des Programmes wieder lädt. Die Zusammenarbeit mit anderen professionellen Programmen sollten Sie selbst erproben.
Abschließend noch ein Wort zur Anpassung an andere Drucker. Der Drucker muß auf alle Fälle Epson- beziehungsweise Star-kompatibel sein und Blockgrafikcharakter besitzen. (Für Profis: die acht Charakter beginnen in der vorletzten Zeile, mit der vierten Zahl von hinten.)
Weiterhin ist zu beachten, daß die Sekundäradresse so gewählt werden muß, daß alle Grafikbefehle angenommen werden (beim Universal-Interface zum Beispiel 1).
Das ist doch eine Hardcopy, die wirklich Format zeigt!
(Thomas Hohenberger/rg)
100 rem" {CBM-A}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-S} 110 rem" {SHIFT--} {SHIFT--} 120 rem" {SHIFT--} super - poster 64 {SHIFT--} 130 rem" {SHIFT--} {SHIFT--} 140 rem" {SHIFT--} star gemini 10x {SHIFT--} 150 rem" {SHIFT--} & universal-interface {SHIFT--} 160 rem" {SHIFT--} {SHIFT--} 170 rem" {SHIFT--} (c) by t. hohenberger {SHIFT--} 180 rem" {SHIFT--} {SHIFT--} 190 rem" {CBM-Z}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-X} 200 : 210 restore 220 su = 0 230 : 240 for ad = 49152 to 49567 250 : read p% 260 : poke ad,p% 270 : su = su + p% 280 next ad 290 : 300 if su <> 57112 then print "fehler in datas !!!" : stop 310 : 320 print "datas ok !" 330 print 340 print "{down}aufruf : sys49152,adr,fn,gn,sa,inv" 350 : 360 end 370 : 380 : 10000 data32,253,174,32,138,173,32,247,183,140,126,193,141,127,193,32,241,183 10010 data142,128,193,32,241,183,142,129,193,32,241,183,142,130,193,32,241 10020 data183,138,41,1,10,10,141,134,193,173,128,193,174,129,193,172,130,193 10030 data32,186,255,169,0,32,189,255,32,192,255,174,128,193,32,201,255,169 10040 data63,162,1,141,132,193,142,133,193,160,0,185,137,193,240,6,32,210,255 10050 data200,208,245,32,225,255,240,87,32,105,193,32,201,192,133,2,238,131 10060 data193,32,89,193,10,5,2,13,134,193,170,189,151,193,32,210,255,238,131 10070 data193,173,131,193,201,200,208,222,173,133,193,208,5,173,132,193,240 10080 data17,173,132,193,56,233,1,141,132,193,176,3,206,133,193,76,93,192,160 10090 data0,185,146,193,240,6,32,210,255,200,208,245,173,128,193,32,195,255 10100 data32,204,255,96,174,128,193,32,201,255,169,13,32,210,255,160,1,76,164 10110 data192,173,132,193,174,133,193,133,253,134,254,172,131,193,152,41,248 10120 data141,136,193,133,251,169,0,133,252,6,251,38,252,6,251,38,252,165,251 10130 data24,109,136,193,133,251,165,252,105,0,133,252,6,251,38,252,6,251,38 10140 data252,6,251,38,252,152,41,7,24,101,251,133,251,165,252,105,0,133,252 10150 data165,253,24,41,248,101,251,133,251,165,254,101,252,133,252,173,126 10160 data193,24,101,251,133,251,173,127,193,101,252,133,252,165,253,41,7,73 10170 data7,170,169,1,202,48,3,10,208,250,141,135,193,162,52,120,134,1,160 10180 data0,177,251,162,55,134,1,88,44,135,193,208,2,160,1,152,96,165,251,24 10190 data105,1,133,251,165,252,105,0,133,252,76,66,193,169,0,141,131,193,169 10200 data13,32,210,255,160,18,169,32,32,210,255,136,208,250,96,0,32,1,4,1 10210 data0,0,0,0,0,0,27,64,15,27,51,4,27,56,0,12,27,64,0,0,231,227,225,224 10220 data224,225,227,231,0