Hardcopy-Routinen

»Multicolor« auf dem FX/RX-80

Hardcopy-Programme für den Epson FX gibt es viele. Doch dieses Programm ermöglicht eine Umsetzung der Farben in verschiedene Graustufen.

Die meisten Drucker-Besitzer werden sich schon geärgert haben, daß »normale« Hardcopies von Multicolor-Grafiken kaum als solche zu erkennen waren. Besitzer eines Epson-RX/FX-80 sind jetzt fein raus.

Ich habe mich geärgert, als ich das erste Mal die Hardcopy einer Strip-Poker-Grafik auf meinem FX-80 ausdrucken wollte. Als ich dann noch den Test des PRINT-64-Interfaces in der 64’er, Ausgabe 12/84, gelesen habe, das den Ausdruck von Multicolor-Grafiken mittels Grauschattierungen erlaubt, habe ich mir gedacht: Das muß doch auch softwaremäßig machbar sein.

Gesagt, getan. Eines Abends nahm ich mir eine Flasche Cola und etwas Knabberkram und fing an zu programmieren. Nach mehreren erfolglosen Anläufen und stapelweise bedrucktem Papier war ich am Ziel: »M-C-HRDCPY«lief. Doch nun zum eigentlichen Programm.

Das Prinzip

Eine Multicolor-Grafik ist ja im wesentlichen genauso wie eine normale Grafik aufgebaut, nur repräsentieren jetzt zwei statt einem Bit einen Punkt auf dem Bildschirm. In dieser Kombination aus den beiden Bits steckt jetzt noch eine Farbinformation: Sind beide Bits 0, so wird der Punkt in der Farbe des Hintergrundregisters gesetzt, sind sie jedoch 01, 10 oder 11, wird der Punkt in der Farbe aus den Registern 33 bis 36 des VIC gesetzt. .

Ich verfahre nun so, daß ich jeden Bildschirmpunkt in einer Matrix von 2x12 Punkten auf dem Drucker darstelle. Durch die Anordnung der Punkte in dieser Matrix kann ich nun verschiedene Graustufen darstellen — die Grundlage ist damit gegeben.

Die Bedienung

Die Bedienung mag auf den ersten Blick etwas kompliziert erscheinen, erlaubt dafür aber auch optimale Variationsmöglichkeiten.

Vorjeder Anwendung kommt aber leider noch das Abtippen von 438 DATAs. Wenn Sie das gemacht haben, sollten Sie das Programm vorsichtshalber vor dem Starten speichern (so mancher mußte wegen eines Tippfehlers noch einmal anfangen …). Nach dem Starten sollte sich das Programm nach zirka vier Sekunden mit der Frage »Startadresse?« melden. Geben Sie nun ein, wo Sie das Programm im Speicher haben wollen. Eine kleine Hilfe hierzu gibt die Tabelle, die günstige Startadressen für verschiedene Programme nennt.

Dann wird die Floppy anlaufen (falls Sie nur eine Datasette besitzen — bei Vorhandensein eines Epson-Druckers recht unwahrscheinlich — müssen Sie die Zeilen 1250 bis 1280 herausnehmen und zum Arbeiten immer wieder den Basic-Lader benutzen) und ein File namens »M-C-HRDCPY (Startadresse)« wird auf Diskette erzeugt. Gleichzeitig wird das Programm adressenangepaßt in den Speicher ab (Adresse) geschrieben. Wenn Sie »M-C-HRDCPY« nun noch eventuell durch POKE 55,(adresse) INT(adresse/256)*256:POKE 56,INT(adresse/256): CLR schützen, kann der erfolgreichen Hardcopy eigentlich nur noch das Dreckfuhlerteufelchen im Wege stehen.

Nun zum Aufruf der Hardcopy-Routine. Generell hat er die Form:

SYS (adresse),(filenummer),(page),a,b,c,d

(adresse) ist die Startadresse des Programms — die, die Sie auf die Frage »Startadresse?« eingegeben haben —, für

(filenummer) setzen Sie eine 0 ein, falls Sie Ihren Drucker am User-Port angeschlossen haben oder die Filenummer eines Files, das Sie vorher auf den Drucker zur Übergabe von Grafikdaten geöffnet haben.

(page) ist die Speicherseite, auf der die Grafik beginnt — also INT(Adresse der Grafik/256) und

a,b,c,d sind die Masken für die Graustufen der Hardcopy.

Wie bereits erwähnt, kennt der VIC vier Möglichkeiten für die Darstellung eines Punktes, nämlich die Kombinationen 00, 01, 10 oder 11. Andererseits kennt die Hardcopy-Routine vier Graustufen. Die Parameter a, b, c und d geben nun an, wie die Bitkombinationen den Graustufen zugeordnet werden. a gibt an, welche Bitkombination auf dem Drucker ganz hell, b, welche hellgrau, c, welche dunkelgrau und d, welche schwarz dargestellt werden, a, b, c und d müssen dabei den dezimalen Wert der Bitkombinationen annehmen, das heißt, 0 für 00, 1 für 01, 2 für 10 und 3 für 11. Ein Beispiel hierzu gibt der Hardcopy-Ausdruck.

Hier noch einmal zur Übung:

Angenommen, Sie haben eine Simons Basic-Multicolor-Grafik und wollen diese so ausdrucken, daß die 00-Punkte Schwarz, die 01-Punkte hellgrau, die 10-Punkte weiß und die 11-Punkte dunkelgrau dargestellt werden.

Also laden Sie den Basic-Lader, sehen in der Tabelle nach, welche Startadresse günstig ist, geben diese ein und tippen dann, nachdem sich der Computer wieder mit READY gemeldet hat, ein:

POKE 55,44:POKE 56,126:CLR

um M-C-HRDCPY vor dem Überschreiben zu schützen und dann weiter:

SYS 32300,0,224,2,1,3,0

falls Sie den Drucker am User-Port betreiben beziehungsweise

OPEN xx,(Druckeradresse),(Grafiksekundäradresse)

SYS 32300,xx,224,2,1,3,0

falls Sie ein Hardware-Interface besitzen.

Das Programm wurde auf einem FX-80 sowohl mit Software- als auch mit Data-Becker- und Görlitz-Hardwareinterface und auf einem RX-80 mit Software- und Görlitz-Hardwareinterface getestet und lief in allen Fällen problemlos. Vermutlich ist das Programm auch auch dem MX-80 und anderen Epson- und Epson-kompatiblen Druckern lauffähig. Im Zweifelsfall müssen Sie daher ausprobieren, ob auch Ihr Drucker für dieses Programm geeignet ist, kaputt kann eigentlich nichts gehen. Benutzt werden folgende Steuersequenzen: ESC 1, um den Drucker auf 7/72 Inch Zeilenvorschub zu schalten, ESC (Klammeraffe), um ihn zu initialisieren und ESC Z, um ihn in 1920 Punkte/Zeile-Grafikmodus zu bringen.

Die Kompatibilität

Da das Programm also recht viele Drucker unterstützt, frei verschiebbar ist, den Ausdruck von Grafiken aus den versteckten RAMs erlaubt und sowohl Hard- als auch Software-Interfaces unterstützt, sollte meiner Meinung nach ein Höchstmaß an Kompatibilität gewährleistet sein.

Ansonsten viel Spaß und gut Druck!

(Karsten Klenz/rg)
Programm Startadresse page poke 55, poke 56,
Dia-Show 49152 32 - -
Simons Basic 32300 224 44 126
Paint Magic
(Grafik laden + starten)
49152 64 - -
Supergrafik 64 26666 160 + 224 42 104
Screen Graphics 64 32300 160 44 126
Tabelle. Günstige Startadresse und Werte für (page) für verschiedene Programme und Werte für POKE 55,x:POKE 56,y:CLR
Eine Hardcopy, bei der die Farben durch verschiedene Graustufen dargestellt werden.
20 rem=================================
30 rem=     multi-color-hardcopy      =
40 rem=                               =
50 rem= fuer c-64 und epson fx/rx-80  =
60 rem=                               =
70 rem=karsten klenz,harburger str. 24=
80 rem=2105 seevetal 1,tel.:04105/2695=
90 rem=================================
1000 dim a%(422)
1010  
1020 for t=1 to 422
1030   read a%(t)
1040   s=s+a%(t)
1050 next t
1060  
1070 if s<>43018 then print"fehler in datas !":stop
1080  
1090 input"startadresse ";ad
1100 for t=1 to 16
1110   read b
1120    a=a%(b+2)+a%(b+3)*256+ad
1130    a%(b+2)=a-int(a/256)*256:a%(b+3)=int(a/256)
1140 next t
1200  
1210 for t=1 to 422
1220   poke ad+t-1,a%(t)
1230 next t
1240  
1250 open1,8,14,"@:m-c-hrdcpy"+str$(ad)+",p,w"
1260 print#1,chr$(ad-int(ad/256)*256)chr$(int(ad/256));
1270 for t=1 to 422:print#1,chr$(a%(t));:next t
1280 close 1
1290 end
1300 rem= programm-datas ==============
3681 data32,253,174,32,158,183,134,2,240,5,32,201,255,208,0,32,253,174,32
3682 data158,183,134,21,169,0,133,20,32,253,174,32,158,183,134,87,32,253,174
3683 data32,158,183,134,88,32,253,174,32,158,183,134,89,32,253,174,32,158
3684 data183,134,90,169,255,141,3,221,173,2,221,9,4,141,2,221,160,1,185,114
3685 data1,32,79,1,136,16,247,169,0,133,98,169,0,133,99,32,228,255,240,3,76
3686 data59,1,160,3,185,110,1,32,79,1,136,16,247,169,0,133,97,165,20,164,21
3687 data133,34,132,35,164,99,162,0,120,169,53,133,1,177,34,149,100,200,232
3688 data224,4,208,246,169,55,133,1,88,169,3,133,96,162,3,181,100,164,96,240
3689 data6,74,74,136,76,156,0,24,41,3,149,91,202,16,236,160,0,162,3,169,0
3690 data133,95,169,3,133,104,181,91,197,87,208,6,185,118,1,24,144,23,197
3691 data88,208,6,185,130,1,24,144,13,197,89,208,6,185,142,1,24,144,3,185
3692 data154,1,37,104,5,95,133,95,24,38,104,24,38,104,24,202,16,205,32,79
3693 data1,200,192,12,208,187,166,96,202,134,96,16,156,24,165,34,105,8,133
3694 data34,165,35,105,0,133,35,166,97,232,134,97,224,40,240,3,76,122,0,166
3695 data99,232,232,232,232,134,99,224,8,240,3,76,91,0,24,165,20,105,64,133
3696 data20,165,21,105,1,133,21,166,98,232,134,98,224,25,240,3,76,87,0,160
3697 data1,185,116,1,32,79,1,136,16,247,32,204,255,165,2,32,195,255,96,166
3698 data2,240,3,76,210,255,141,1,221,169,16,44,13,221,240,251,173,0,221
3699 data9,4,141,0,221,41,251,141,0,221,96,7,128,90,27,49,27,64,27,0,0,0,0
3700 data0,0,0,0,0,0,0,0,170,0,85,0,170,0,85,0,170,0,85,0,170,0,0,0,85,0,0
3701 data0,170,0,0,0,170,85,170,85,170,85,170,85,170,85,170,85
5000 rem= relative adressen ===========
5010 data 74,77,96,101,104,161,190,200,210,216,235,272,287,312,317,320
Listing »M-C-Hardcopy«.
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →