Endlich: Hardcopy für alle Drucker Anpassungsprobleme hin oder her: Wenn Ihr Drucker in der Lage ist, Buchstaben zu Papier zu bringen, dann wird er auch mit unserem Programm »Letterprint« zusammenarbeiten. Selbst mit einem Typenraddrucker lassen sich so Hardcopies erzeugen. Von Nikolaus M. Heusler Hardcopy-Programme für den C64 für die verschiedenen Drucker gibt es in Massen. Alle haben gemeinsam, daß die Grafik Punkt für Punkt auf dem Drucker ausgegeben wird, was wiederum druckerspezifische Steuercodes erforderlich macht. Eine Hardcopy X für den Drucker Y an den Drucker Z anzupassen, kann daher leicht zur Wochenendarbeit ausarten. Doch unser Programm »Letterprint« ist etwas Neues und Besonderes: Die Grafik wird nicht im Grafikmodus (Einzelnadelansteuerung) des Druckers zu Papier gebracht, sondern im Textmodus. Das Bild wird in Form von Buchstaben und Zeichen gedruckt, wobei 17 verschiedene Zeichen Verwendung finden, die in ihrer Helligkeit auf dem Papier so geschickt verteilt werden, daß das menschliche Auge die ursprüngliche Grafik wiederzuerkennen glaubt. Aus der Nähe betrachtet handelt es sich um einen reinen Buchstabensalat, der hauptsächlich aus Klammeraffen, Sternchen, Punkten und vielen anderen Zeichen besteht. Hält man das Bild jedoch 80 bis 150 Zentimeter von den Augen entfernt, werden die Buchstaben zur Grafik. Prinzipiell eine optische Täuschung... Das Programm »Letterprint« ist in der Lage, jede normale Hires-Grafik des Commodore 64 oder 128 als Buchstabendruck auszugeben. Da, wie gesagt, der normale Textmodus verwendet wird, arbeitet das Programm ausnahmslos mit allen Druckern, zum Beispiel auch Typenraddruckern zusammen - das ist das Besondere. Im Programm können fünf verschiedene Druckarten gewählt werden, die Wahrscheinlichkeit, daß nichts Sinnvolles auf dem Papier erscheint, geht also gegen Null, und dieses Problem kann durch Probieren gelöst werden: Eine von den fünf Einstellungen paßt garantiert für Ihren Drucker. Eine weitere Besonderheit ist der eingebaute Kontrastregler mit 33 Stufen. Hier können Sie Bilder auf dem Papier heller oder dunkler erscheinen lassen, als sie es auf dem Bildschirm waren. Obwohl das Programm aus Gründen der Geschwindigkeit und des Komforts vollständig in Maschinensprache geschrieben ist, benötigen Sie keinerlei Assemblerkenntnisse, um damit arbeiten zu können. Das Programm kann wie normales Basic geladen, gestartet und ggf. kopiert werden. Laden Sie Letterprint mit dem Befehl LOAD "LETTERPRINT 1.4",8 Dann starten Sie das Druckprogramm mit dem Befehl RUN Sofort erscheint das Hauptmenü des Programmes. Hier ist eine der Buchstabentasten bis zu drücken, je nachdem, welche Funktion aktiviert werden soll. Die Taste hat eine Doppelfunktion, sie muß zum Drucken zusammen mit gedrückt werden. Gehen wir die Funktionen der Reihe nach durch, in dieser Reihenfolge werden Sie sie später wohl auch brauchen. Grafik laden Nach dem Einschalten des C64 ist der Speicher gelöscht und enthält keine Grafik, die Sie drucken können. Also laden wir eine. Stecken Sie die Diskette in das Laufwerk, und geben in der untersten Zeile des Bildschirms den Namen des Bildes auf Diskette ein. Dabei sind auch Kennungen wie »HI.« oder ».PIC« oder ».GRA« etc. einzugeben. Beachten Sie, daß Letterprint nur Hires-Grafiken, keine Multicolorbilder verarbeitet. Bei Bedarf sind diese vorher beispielsweise mit dem Hardmaker (z.B. 64'er Sonderheft 32, dessen Befehl ) zu konvertieren. Nach der Eingabe des Namens drücken Sie . Nun wird das Bild geladen. Das Programm lädt Grafiken übrigens immer automatisch in den richtigen Bereich, auch wenn sie auf Diskette unter einer anderen Adresse abgelegt sind. Nach Beendigung des Ladevorganges, der ohne Schnelllader um die 30 Sekunden dauert, ist eine beliebige Taste zu drücken. Das Programm kann zwar theoretisch alle Grafiken des C64, die im Standardformat vorliegen, bearbeiten. Dennoch ergeben nicht alle Grafiken schöne Resultate auf dem Papier. Kleine Texte in normaler Buchstabengröße in der Grafik etwa kommen praktisch nie richtig zu Papier, da das Programm immer 4x4 Pixel zu einem Feld zusammenfaßt. Am besten geeignet sind Grafiken mit großen, ausgefüllten Flächen, und nicht zu komplex sollten sie sein, damit das Druckergebnis schön wird. Recht gut geeignet sind digitalisierte Bilder, da sie gewöhlich auch auf dem Bildschirm schon etwas unscharf aussehen. Auf der Diskette finden Sie einige Bilder, die zum Ausdruck geeignet sind. Grafik zeigen Um zu kontrollieren, wie die Grafik im Speicher aussieht, wählen Sie diese Funktion. »Letterprint« zeigt das zu druckende Bild auf dem Bildschirm an, dabei werden weiße Punkte nicht gedruckt, schwarze werden gedruckt. Ein beliebiger Tastendruck führt ins Menü zurück. invertieren Waren das Bild, das sich bei ergab, nicht zufriedenstellend, invertieren Sie es. Dabei werden alle Punkte, die vorher hell waren, dunkel und umgekehrt. Auch nach dieser Operation drücken Sie bitte eine beliebige Taste, um ins Menü zurückzukehren. Preview / Drucken Drücken Sie diese Taste ungeshiftet, so wird die Funktion »Preview« ausgeführt. Mit ihrer Hilfe können Sie sich ein ungefähres Bild davon machen, wie die Grafik später auf dem Papier aussehen wird. Der Computer rechnet das Bild dazu auf die selbe Weise in Zeichen um, wie er es später beim Drucken tun wird. Die Zeichen werden allerdings nicht gedruckt, sondern stark verkleinert in das Bild eingetragen. Auch ein eventuell veränderter Kontrast (siehe unten) wird hier bereits berücksichtigt. Wenn Sie das Bild drucken möchten, drücken Sie im Menü die Tasten und gleichzeitig. Der Drucker sollte bereits eingeschaltet und mit Papier versorgt sein. Letterprint bringt die Grafik jetzt mit dem gewünschten Kontrast zu Papier, wobei es 80 Zeilen zu je 50 Zeichen druckt. Ein Druck auf die NLQ-Taste - so vorhanden - kann eine erhebliche Verbesserung des Druckbildes bewirken. Je nach Drucker, Schriftart und Grafik dauert es nun einige Sekunden, bis das Bild fertig gedruckt ist. Dann wechselt das Programm wieder ins Hauptmenü. Die Grafik wird automatisch zentriert. Falls es Probleme mit dem Drucker gibt, sollten Sie den Ausdruck abbrechen () und einen anderen Druckertyp einstellen. Hinweise dazu finden Sie weiter unten. Kontrast Ähnlich wie bei einem Fotokopierer läßt sich hier der Kontrast (eigentlich eher die Helligkeit) des Bildes am Drucker variieren. Am Anfang erhöht jeder Tastendruck die Zahl um eins, bis sie bei +16 angelangt ist. Das ist der maximale Kontrast. Danach bewirkt jeder Tastendruck eine Verminderung bis hin zu -16, dem Minimum. Danach geht es in umgekehrter Richtung wieder von vorne los. Ist für Kontrast ein Wert unter Null (Minuszeichen) eingestellt, wird das Bild heller als im Original. Im Extremfall (-16) ist gar nichts auf dem Papier zu sehen, das Programm produziert dann nur Leerzeichen. Steht der Kontrast auf einem positiven Wert, bewirkt das, daß das Bild mehr oder weniger stark geschwärzt wird. Bei +16 wird nur eine schwarze Fläche gedruckt. Abgesehen davon, daß das nur Leuten zu empfehlen ist, die einen Farbbandhersteller in ihrer Familie haben, ist dann auch nichts zu erkennen. Gewöhnlich wird man sich für den Wert 0 entscheiden, der die Grafik unverändert weitergibt druckt. Durch Druck auf die Taste kann dieser Wert schnell wieder gewählt werden. Wenn Sie den Kontrast verändert haben, sollten Sie mit »Preview« erst einmal die Wirkung testen. So sind übrigens interessante Effekte möglich - auch ohne Drucker! Bei manchen digitalisierten Grafiken ist nicht der Wert 0 für den Kontrast optimal, sondern ein etwas kleinerer, zum Beispiel -1 oder -2. Sie erscheinen sonst zu stark, außerdem wird dadurch das Farbband etwas geschont. Drucker Das Programm arbeitet zwar mit allen Druckern zusammen, einige verlangen aber eine Spezialbehandlung. Daher lassen sich hier fünf verschiedene Druckmodi einzustellen. Jedesmal, wenn Sie die Taste drücken, wird der Typ um eins weitergeschaltet. Nach dem Start ist das Programm auf EPSON MIT LF eingestellt. Diese Einstellung eignet sich für Epson-kompatible Drucker, die sich am Zeilenende mit dem CHR$(13) begnügen und automatisch ein LF ergänzen. Das Programm verwendet folgende Steuersequenzen zur Druckeransteuerung: ESC Klammeraffe Drucker initialisieren ESC E Fettschrift einschalten ESC 0 Zeilenabstand 1/8 Zoll (bzw. inch) ESC US 16 Buchstabenabstand 1/8 Zoll (bzw. inch) Hierbei steht US für den Code 31. Um den etwas größeren Buchstabenabstand zu kompensieren, wird in Fettschrift gedruckt. Durch die Definitionen des identischen Buchstaben- und Zeilenabstandes garantiert Letterprint in dieser Einstellung, daß die Grafik unverzerrt wiedergegeben wird, d.h., Kreise erscheinen als Kreise und nicht als Ellipsen. Die Einstellung EPSON OHNE LF differiert von der vorhergehenden Einstellung nur dadurch, daß das Programm am Zeilenende nach dem CR (CHR$(13)) noch ein LF sendet (CHR$(10)). Wählen Sie diese Einstellung, falls Ihr Epson-kompatibler Drucker das gesamte Bild in eine einzige Zeile druckt. Die beiden Epson-Treiber wurden für einen Fujitsu DL 900 mit Wiesemann-Interface geschrieben, müßten jedoch tatsächlich mit allen Epson-kompatiblen Druckern arbeiten. ASCII MIT LF und ASCII OHNE LF: Diese beiden Modi sind für Drucker gedacht, die weder mit den Commodore-Codes CHR$(8) und CHR$(15) etwas anfangen können noch die ESC-Sequenzen der Epson-Drucker verarbeiten. Der Computer sendet in dieser Betriebsart am Ende einer Zeile nur ein CR (CHR$(13)). Manche Drucker verlangen danach noch ein LF (CHR$(10)), damit der Druckkopf nicht nur an den Anfang der Zeile geht, sondern das Papier auch noch um eine Zeile weitertransportiert wird. Drucker, die das automatisch machen, müssen in der Option ASCII MIT LF betrieben werden. Manche Drucker wollen aber auch nach jedem CR ein LF haben, da sonst die ganze Grafik in eine einzige Zeile gedruckt wird. In diesem Falle schalten Sie den Modus ASCII OHNE LF ein. Der Unterschied zur Epson-Betriebsart ist, daß hier keinerlei ESC-Sequenzen beim Drucker ankommen. Eventuell kann der Drucker vor dem Start von Letterprint manuell oder im Direktmodus auf den Zeilen- und Buchstabenabstand von 1/8 Zoll eingestellt werden, sonst wird die Grafik leicht verzerrt. COMMODORE MPS ist vor allem für MPS-kompatible Drucker, also die Commodore MPS 801, 803, 1515, 1525, Seikosha GP 100 VC sowie alle »größeren« Drucker geeignet, die über ihr Interface einen MPS Drucker simulieren. Hier werden nämlich die Zeilen ohne Abstand direkt aneinandergedruckt, wodurch das Bild nicht so stark verzerrt wird. Da die MPS-Drucker nicht die exakte Veränderung des Vorschubes erlauben, sollte hier mit dieser Einstellung gedruckt werden. Der Computer sendet nach jeder Zeile den Code, um die Siebennadelgrafik einzuschalten (CHR$(8)), dann erst das CR (CHR$(13)), danach noch den Code, um auf den Textmodus zurückzuschalten (CHR$(15)). Sekundäradresse Über ein Hardware-Interface angeschlossene Drucker müssen in der Betriebsart »Linearkanal« betrieben werden, die gewöhnlich mit einer besonderen Sekundäradresse (beim Wiesemann-Interface 1) gewählt wird. Vergleichen Sie dazu ggf. Ihr Interface-Handbuch. Wird mit der Druckertyp verändert, gibt das Programm automatisch die oft dazu passende Sekundäradresse vor, die dann mit noch verändert werden kann. Ende Bleibt noch der Ausgang des Programmes. Nach Druck auf diese Taste führt der Computer einen Reset aus. Das Einschaltbild erscheint wieder. Dennoch kann das Maschinenprogramm, sofern der entsprechende Speicherbereich nicht gelöscht wurde, mit SYS 49152 erneut gestartet werden. Das war die Beschreibung der Funktionen. Das Programm ist relativ einfach zu bedienen, wie sie sehen, und so programmiert, daß es eigentlich nicht abstürzen kann. Selbst bei groben Fehlbedienungen, soweit die überhaupt möglich sind, bewahrt es Ruhe. Sicherlich kann man über den Praxiswert solcher Drucke streiten, denn ein Ausdruck mit einem normalen Hardcopy-Programm sieht ohne Zweifel besser aus. Dafür arbeitet Letterprint mit allen Druckern zusammen, und es ist ganz interessant, wie aus einem zu Beginn scheinbar wirren Zeichensalat aus einiger Entfernung ein richtiges Bild wird. Ein schöner »Gag« ist es allemal. So funktioniert das Programm intern: Die Funktionen Laden, Invertieren, Zeigen usw. arbeiten nach Standardprinzipien, die hier nicht näher erläutert werden sollen. Interessant ist vor allem die Druckroutine. Der Computer beginnt am rechten oberen Bildschirmrand. Die Grafik wird in ein Raster, ein Gitter unterteilt, das aus 4000 (80 mal 50) Feldern besteht. Jedes dieser Felder ist vier Pixel hoch und viel Pixel breit und wird auf dem Papier später durch genau ein Textzeichen dargestellt. Das Feld enthält also 16 Pixel. Der Computer zählt nun ab, wie viele dieser Pixel gesetzt sind. Werte von 0 bis 16 sind möglich. Die Anzahl der gesetzten Pixel entspricht dem Helligkeitswert dieses Feldes. Zu diesem Wert wird der eingestellte Kontrast addiert. Liegt das Ergebnis nicht mehr zwischen 0 und 16, wird es in diesen Bereich gebracht. Bei der Ausgabe auf den Drucker holt sich der Computer nun aus einer 17 Byte langen Tabelle das Zeichen, das auf dem Papier ungefähr diese Helligkeit hat. Die Tabelle wird im folgenden wiedergegeben, sie wurde durch Experimentieren ermittelt und gibt auf MPS 803 Druckern ein optimales Ergebnis: . + I J L X & F Z % O M W # * {Klammeraffe} Diese Tabelle findet sich im Speicher. Das Zeichen gibt der C64 auf dem Drucker aus und bearbeitet das nächste Feld, das auf dem Bildschirm unter dem letzten Feld liegt. Diese Bearbeitung ist notwendig, da auf dem Schirm die Grafik waagerecht länger ist als senkrecht, auf dem Papier aber umgekehrt. Ist das unterste Feld einer Spalte erreicht, macht der Drucker einen Zeilenvorschub. Je nach Einstellung wird gesendet: Commodore MPS : 8, 13, 15 Ascii/Epson mit LF : 13 Ascii/Epson ohne LF: 13, 10 Der Computer macht ebenso mit der nächsten Spalte weiter, die links von der zuvor bearbeiteten liegt. Die Grafik wird von rechts nach links abgetastet, damit sie auf dem Papier nicht spiegelverkehrt erscheint. Bei der Funktion »Preview« gibt das Programm nichts auf dem Drucker aus. Stattdessen wird das gerade abgetastete (ausgezählte) 4x4 Feld nun mit einem »Punktsalat« gefüllt, der ebenfalls aus einer Tabelle gelesen wird. Er enthält wieder eine 4x4 Matrix, in der ebenso viele Punkte gesetzt sind, wie es dem Helligkeitswert dieses Feldes entspricht. Mit etwas Phantasie ist bei einigen dieser Felder der Buchstabe zu erkennen, die diese Helligkeit repräsentieren (gut zu erkennen bei »X« und »Z«). Bitte beachten Sie noch, daß Letterprint kein Interface für am Userport angeschlossene Drucker enthält. Soll der Ausdruck über ein solches Gerät erfolgen, muß vom Anwender eine geeignete Software-Schnittstelle installiert werden (zum Beispiel die Eysselle-Schnittstelle). Dafür sind alle Speicherbereiche außer dem von der Grafik belegten $2000-$3fff und außer dem Programmspeicherplatz $c000-$c66f (Version 1.4) geeignet (optimal wäre z.B. $8000). Wir wünschen Ihnen viel Spaß mit dieser neuartigen Methode, Bilder zu drucken!