C 64/C 128
Drucker-Kurs

Kennen Sie Ihren Drucker? (Teil 4)

Haben Sie Interesse an einem Blick hinter die Kulissen eines erfolgreichen Druckerherstellers? Dann folgen Sie uns zu einem Firmenbesuch bei Seikosha. Dort hat man uns einige tolle Tips und Tricks zu Seikosha-Druckern verraten. Im Praxisteil zeigen wir Ihnen, wie Sie Ihren Drucker leicht in einen höchstauflösenden »Monitor« verwandeln können.

Wer Seikosha besuchen möchte, darf sich auf eine Reise ins schöne Hamburg freuen, denn dort hat der Generalimporteur für Seikosha-Drucker sein Domizil errichtet. Von hier aus treten die Drucker, die nun schon seit den VC 20-Zeiten auch für Commodore-Computer angeboten werden, ihre Reise zu verschiedenen Fachgeschäften und Großkaufhäusern an. Dabei haben die Drucker dann schon eine riesige Wegstrecke hinter sich, denn die Seikosha-Werke liegen in Japan, und jeder Drucker ist deshalb mit dem Schiff bereits um die halbe Welt gereist. Trotzdem gehören Seikosha-Drucker, wie zum Beispiel der berühmte GP 100 VC, aber auch der neue SP 180 VC, zu den Druckern, die man sich leisten kann.

Wirft man einen Blick auf die Firmengeschichte von Seikosha, so fällt einem zunächst auf, daß diese über weite Strecken hinweg mit der Epson-Firmengeschichte konform geht. So ist es auch kaum verwunderlich, daß beide Unternehmen zur gleichen Firmengruppe, nämlich dem Hattori-Seiko-Konzern gehören. Jetzt könnte man fragen, warum es in einer Firmengruppe zwei Unternehmen gibt, die in der gleichen Branche ähnliche Produkte anbieten und sich gegenseitig Konkurrenz machen? Nun, es gehört zum Ziel der Hattori-Führung, daß alle Tochterfirmen des Konzerns vollkommen selbständig arbeiten und eigene Entwicklungen durchführen. Die Verbindung zwischen den einzelnen Unternehmen besteht einzig darin, daß an der Firmenspitze jeder Tochtergesellschaft ein Mitglied der Hattori-Familie steht. Wie wir in der letzten Ausgabe gezeigt haben, ist Epson eine selbständige Firma mit eigener Repräsentanz in Deutschland. Bei Seikosha ist das bislang anders gelöst, denn Seikosha-Drucker werden nicht direkt vertrieben, sondern durch den Generalimporteur Microscan. Ab 1. Januar 1987 wird allerdings eine eigene »Seikosha (Europe) GmbH« mit Sitz in Hamburg diese Aufgabe übernehmen. Der Direktvertrieb von Druckern unter dem Markennamen Seikosha (Seiko ist der japanische Ausdruck für präzise, genau) ist nicht der einzige Weg, auf dem Seikosha-Drucker verkauft werden. Daneben gibt es den zweiten Vertriebsweg der sogenannten OEM-Produkte (OEM = Original Equipment Manufacturers). Auf diesem Wege hat Seikosha beispielsweise den VC 1525- und den MPS 801-Drucker an Commodore geliefert. So viel zur Vergangenheit, aber wie geht es weiter? Darüber haben wir mit Kurt Bohlien (Marketing Manager, Bild 1) gesprochen: »Für uns sind alle Systeme, an die man einen Drucker anschließen kann, wichtig. Seikosha-Drucker sollen in allen Märkten, das heißt im Heim-, Personal- und Profibereich, vertreten sein. Natürlich stellen diese Märkte verschiedene Anforderungen, deshalb bieten wir eine umfangreiche Produktpalette, vom preisgünstigen Einsteigermodell bis hin zum 800 Zeichen (ab 1987) schnellen Matrixdrucker, an. Im nächsten Jahr kommt dazu sogar noch ein Laserdrucker mit 22 Seiten pro Minute.« Mit dem Modell SP 1000 hat Seikosha einen Drucker angeboten, den es in diversen Ausführungen für die verschiedensten Computer gibt. Wird man bei zukünftigen Druckern ähnliches machen? Kurt Bohlien dazu: »Den neuen SP 180, den es zunächst nur in einer Commodore-Version gibt, wird es in Zukunft auch in einer Atari-, Schneider- und einer Centronics-Version geben. Damit haben wir einen Drucker, der zu einem sagenhaften Preis (598 Mark, Anm. der Redaktion) eine enorme Leistung bringt. Andere Modelle, wie beispielsweise den SP 1200, das Nachfolgemodell des SP 1000, wird es auch wieder in verschiedenen Ausführungen geben. Bei unseren großen Modellen, wie dem MP 1300 AI, MP 5300 AI und dem BP 5420 AI sind serienmäßig beide Schnittstellen vorhanden (seriell und parallel) und sie sind IBM- und Epson-ESC/P-kompatibel. Bislang wurden Seikosha-Drucker hauptsächlich über den Computer-Fachhandel und die großen Kauf- und Versandhäuser angeboten. Wie wird man, nachdem die neue Seikosha (Europe) GmbH gegründet ist, den Handel in Deutschland aufbauen? Kurt Bohlien dazu: »Unser Ziel ist es, ein Vertriebsnetz aufzubauen, über das man die jeweiligen Kundenschichten am effektivsten erreichen kann. Dabei ist ein gut organisiertes Distributorennetz ein wichtiges Mittel. Natürlich werden im Heim- und Personal Computer-Bereich die großen Kauf- und Versandhäuser auch weiterhin eine wichtige Rolle spielen.«

Mann in Anzug und Krawatte vor einer Weltkarte mit Fotos
Bild 1. Kurt Bohlien, Marketing Manager für Seikosha-Drucker

Ihr Mann am Telefon

Natürlich gibt es zu Druckern immer eine Menge Fragen, Weiterentwicklungen und Tips. Doch wie erfährt der Kunde was es neues über seinen Drucker gibt, beziehungsweise wie man mit bestimmten Programmen auf seinem Drucker arbeitet? Um dieses Problem zu lösen, hat man bei Seikosha eine Hotline eingerichtet. Dort erreicht man unter der Telefonnummer 040/ 63200357, Dienstags bis Donnerstags von 10:00 bis 12:00 Uhr und von 13:00 bis 16:00 Uhr, Dietrich Lehwald (Bild 2), der mit viel Sachverstand bei allen Fragen rund um Seikosha-Drucker Auskunft gibt. Natürlich kann man sich auch schriftlich an Dietrich Lehwald wenden, die Anschrift finden Sie am Ende des Artikels. So kann man beispielsweise bei Dietrich Lehwald Informationen darüber erhalten, wie man zu einem neuen Betriebssystem-ROM für den SP 1000 VC kommt. Mit diesem neuen ROM verfügt der SP 1000 VC dann über die bekannten ESC-Befehle an Stelle der manchmal etwas unhandlichen Sekundäradressen. Und auch für den GP 550 AVC mit eingebautem CBM-Interface gibt es ein neues ROM, das ihn MPS 801-kompatibel macht. Zum GP 700 VC hat Dietrich Lehwald zwei gute Tips. So kann jeder, der farbige Hardcopies machen möchte, mit dem neuen SuperPic Color (Vertrieb Rushware) und dem GP 700 VC jeden Bildschirminhalt farbig drucken. Danach sollte man aber darauf achten, daß die Tintenpatronen (Inker) des Farbbandes nicht austrocknen. Dies erreicht man am einfachsten dadurch, daß man die Inker in die Stellung »OFF« bringt, wenn man den Drucker nicht verwendet. Die Farbpatronen für den GP 700 VC gibt es übrigens in zwei verschiedenen Ausführungen, einmal mit vier verschiedenen Farben und einmal mit vier schwarzen Patronen. Beim MP 1300 AI wurde mittlerweile ein neuer, verbesserter Traktor entwickelt, der beim Fachhandel gegen den alten umgetauscht werden kann.

Mann telefoniert an einem Schreibtisch mit Computer, Monitor, Schreibtischlampe und Papierstapeln
Bild 2. Dietrich Lehwald an der Seikosha-Hotline in Hamburg

Die Sache mit der Grafik

Wußten Sie eigentlich, daß die Programmierung des Druckers fast noch mehr Spaß macht, als die Programmierung der Bildschirmausgabe? Alle Begrenzungen, an die man auf dem Bildschirm gebunden ist, sind auf einmal unwichtig. Horizontale Auflösungen bis zu 1920 Punkten und eine nahezu unbegrenzte vertikale Auflösung, wer will sogar in Farbe, mit beliebigen Farbpunkten nebeneinander und vieles mehr, sind doch Leistungen, die anspornen. Es lohnt sich also den Drucker zu anderem, als zum schnöden Anfertigen einer Hardcopy heranzuziehen. Denn wenn man schon für einen Drucker mehr als für den Computer bezahlt hat, dann sollte er sich auch auszahlen. Dazu braucht man in erster Linie die Grafikfähigkeit des Druckers. Doch Grafik ist nicht gleich Grafik. Der Epson FX-85 und der Seikosha MP 1300 AI besitzen zum Beispiel insgesamt sieben Grafikmodi und fünf verschiedene Grafikbefehle. Einer der interessantesten Grafikbefehle ist der ESC »*«-Befehl, den wir nun etwas genauer betrachten wollen. Mit diesem Befehl lassen sich nur durch Veränderung eines einzigen Parameters bis zu sieben verschiedene Grafikmodi einstellen. Der Befehl, so wie er im Handbuch steht, lautet dafür (im Commodore-Basic):

10 OPEN 1,4
20 PRINT#1,CHR$(27);"*";
CHR$(m);CHR$(n1);CHR$(n2)
30 CLOSE 1

In Zeile 10 wird ein Kanal zum Drucker geöffnet. In Zeile 20 wird zunächst der Befehlsmodus (ESC=CHR$(27)) des Druckers aktiviert. Danach folgt der eigentliche Befehl, in diesem Fall »*«. Dieser Befehl erwartet zunächst eine Angabe, welchen der sieben Grafikmodi er verwenden soll. Dazu dient der Parameter »m«, der zwischen 0 und 6 liegen kann und dem Drucker mit dem CHR$-Befehl übermittelt wird. Die verschiedenen Grafikmodi finden Sie in der Tabelle. Soll zum Beispiel in vierfacher Dichte gedruckt werden, so hat m den Wert 3, der Befehl sieht dann wie folgt aus:

m Modus Pkte. pro Zeile n1 bei ganzer Zeile n2 bei ganzer Zeile Ersatzbefehl
0 Normale Dichte 480 225 1 ESC "K"
1 Doppelte Dichte 960 195 3 ESC "L"
2 Doppelte Dichte u. Geschwindigkeit 960 195 3 ESC "Y"
3 Vierfache Dichte 1920 135 7 ESC "Z"
4 CRT-Grafik 640 130 2 —
5 Plotter-Grafik 576 66 2 —
6 CRT-Grafik II 720 210 2 —
Tabelle. Die Grafikmodi des ESC »*«-Befehls auf einen Blick
10 OPEN 1,4
20 PRINT#1,CHR$(27);"*";
CHR$(3);CHR$(n1);CHR$(n2)
30 CLOSE 1

So wie der Befehl jetzt dasteht, wird er allerdings noch nicht vom Drucker verstanden, denn die Werte n1 und n2 sind ja noch nicht definiert. Diese beiden Parameter sind aber nichts anderes, als zwei Bytes, die dem Drucker sagen, wieviele Grafikzeichen nun folgen werden. Die Berechnung der beiden Parameter ist in manchen Handbüchern leider etwas kompliziert dargestellt, beziehungsweise funktioniert nur bei einer Anzahl von Grafikwerten größer als 255. Trotzdem ist die Berechnung gar nicht so schwer. Dazu müssen wir zwei Fälle unterscheiden. Im Fall 1 sollen weniger als 255 Grafikdaten übertragen werden (zum Beispiel 200). Der Wert von n1 ist in diesem Fall immer die Anzahl der zu übertragenden Grafikdaten, das heißt in unserem Beispiel n1=200. Der Parameter n2 ist im Fall 1 immer Null, darf aber nicht ignoriert werden, sondern muß als CHR$(0) mit übertragen werden. Bei 200 Grafikdaten sieht unser Beispielprogramm so aus:

10 OPEN 1,4
20 PRINT#1,CHR$(27);"*";
CHR$(3);CHR$(200);CHR$(0)
30 CLOSE 1

Im Fall 2 sollen mehr als 255 Grafikdaten übertragen werden, zum Beispiel 320 (entspricht der horizontalen Grafikauflösung des C 64). In diesem Fall ist n1 der ganzzahlige Rest, wenn Sie die Anzahl der Grafikdaten durch 255 teilen. In unserem Beispiel errechnet sich das wie folgt:

320/255=1 Rest 65 der Rest ist das, was uns interessiert, nämlich der Wert von n1, also 65. Den zweiten Parameter n2 errechnet man, indem man die Anzahl der Grafikdaten wiederum durch 255 teilt. Der ganzzahlige Teil der Division ist dann der Wert n2. In unserem Beispiel ist:

320/255 =1,2549 das bedeutet, daß n2=1 ist. Unser Beispielprogramm lautet dann:

10 OPEN 1,4
20 PRINT#1,CHR$(27);"*";
CHR$(3);CHR$(65);CHR$(1)
30 CLOSE 1

Man könnte auch sagen, die Anzahl der Grafikdaten entspricht n2*255+n1, aber das nur am Rande. Wer will, kann die Berechnung der Parameter n1 und n2 aber auch mit dem kleinen Programm (Listing 1) durchführen

10 rem programm zur berechnung
20 rem von n1 und n2 (64'er (nj))
25 print chr$(147)
30 input "aufloesung";a
40 n2=int(a/256)
50 n1=a-n2*256
60 print "n1:";n1:rem lo-byte
70 print "n2:";n2:rem hi-byte
80 end
Listing 1. Dieses Programm berechnet die Parameter N1 und N2 für die Einstellung der Grafikauflösung

Natürlich muß man bei der Angabe der Grafikdaten darauf achten, daß man die höchstzulässige Punktezahl pro Zeile bei der gewählten Grafikdichte nicht überschreitet. Bei der gewählten vierfachen Grafikdichte sind das 1920 Punkte (n1=135; n2=7), wobei niemals zwei nebeneinanderliegende Punkte gedruckt werden dürfen. Damit ist auch schon das Wesen der Grafik bei Epson-kompatiblen Druckern beschrieben. Zusammengefaßt muß dem Drucker in jeder Zeile mitgeteilt werden, welche Grafikdichte gewählt wird und wie viele Grafikpunkte übermittelt werden sollen. Auch bei den Standardbefehlen wie ESC K, ESC L, ESC Y und ESC Z für die Grafik funktioniert dies gleich. Vergleichen wir unser Beispielprogramm des ESC "*"-Befehls mit dem ESC "K"-Befehl. Das Programm sieht dann wie folgt aus:

10 OPEN 1,4
20 PRINT#1,CHR$(27);"K";
CHR$(n1);CHR$(n2)
30 CLOSE 1

Sie sehen, der Befehl ist prinzipiell gleich, es fehlt lediglich der Parameter m zur Einstellung der Punktdichte. Dies ist auch richtig so, denn die Punktdichte ist beim ESC "K"-Befehl fest auf 480 Punkte pro Zeile (entspricht m=0) eingestellt. Die Berechnung von n1 und n2 erfolgt hier genauso wie beim ESC "*"-Befehl.

Ein interessantes Beispiel für die Grafik ist das Drucken von Grafik aus dem Speicher des C 64. Ein winziges Programm ist dabei in der Lage, Grafikdaten aus dem Speicher auszulesen und zu drucken. Damit sind faszinierende Möglichkeiten, zum Beispiel Bilder mit der drei- bis sechsfachen Auflösung des C 64 (natürlich nur auf dem Drucker) denkbar (Listing 2). Gehen wir dazu zunächst den einfachsten Weg und füllen den zu druckenden Bereich mit einem zufälligen Muster (Zeile 78 bis 86). Die Werte, die in den Speicher ab der Speicherstelle 8192 geschrieben werden, kann man während des Programmlaufes auch auf dem Bildschirm sehen (warum, erfahren Sie später). Wenn man sich nun den Speicher des C 64, wie in Bild 3 und Bild 4 gezeigt, vorstellt, hat man nichts anderes, als einen vorläufig nur drei Zeilen langen, imaginären Bildschirm mit einer horizontalen Auflösung von 960 Punkten. In der Vertikalen kann dieses Arbeitsblatt natürlich bis an die Speichergrenze verlängert werden. Jeden der Punkte auf diesem »Bildschirm« kann man nun separat ansprechen und zum Beispiel auslesen und ausdrucken. Dazu wird im Beispielprogramm zunächst der Zeilenabstand auf 24/216 eingestellt, damit die Zeilen direkt übereinanderliegen (Listingzeile 26). Danach wird eine Zeile mit 960 Punkten nach der anderen ausgelesen und mit dem ESC"*"-Befehl an den Drucker gesendet. Wir haben uns in unserem Beispielprogramm vorläufig auf drei Zeilen beschränkt, damit das Programm nicht zu lange läuft, 25 Zeilen sind aber durchaus möglich (960 Byte x 25 Zeilen = 24000 Byte). In dieses Arbeitsfeld können Sie nun hineinschreiben, was Sie möchten, Bilder, 3D-Grafiken, mathematische Formeln und vieles mehr. Die Programmierung dieses überdimensionalen »Bildschirms« ist zwar nicht eifach, das Ergebnis kann sich dafür aber sehen lassen. Probieren Sie ruhig verschiedenes aus.

Diagramm: Speicher des C 64 als Balken von 2049 bis 65535 mit Steuerprogramm und Druckerdaten; der Bereich 8192 bis 11071 ist herausvergrößert als Raster aus 3 Zeilen zu je 960 Speicherstellen
Bild 3. Der Speicher des C 64 als riesiger Bildschirm, der nur auf dem Papier sichtbar wird. Ihr Drucker wird zum Monitor.
Diagramm: Druckzeilen 1 bis 3 im Speicher ab 8192 bis 9151, links die Druckernadeln 0 bis 7 mit den Wertigkeiten 128 bis 1
Bild 4. So sieht unser Arbeitsblatt im Speicher des C 64 aus
10 rem programm epson-grafik
12 rem druckerkurs 64'er (aw)
14 print chr$(147)
16 rem*********************************
18 rem kanal zum drucker oeffnen
20 rem*********************************
22 open 1,4
24 a=8192:gosub 78
26 print#1,chr$(27);chr$(51);chr$(24)
28 rem*********************************
30 rem zeilenabstand auf 24/216
32 rem*********************************
34 for m=1 to 3:rem drei zeilen
36 rem*********************************
38 rem grafimodus esc "*" m=1 (960)
40 rem*********************************
42 print#1,chr$(27);chr$(42);chr$(1);chr$(195);chr$(3);
44 rem*********************************
46 rem eine zeile drucken (960) punkte
48 rem*********************************
50 for z=0 to 960
52 b=peek(a+z)
54 print#1,chr$(b);
56 next z
58 a=a+960
60 rem*********************************
62 rem einen zeilenvorschub
64 rem*********************************
66 print#1,chr$(13)
68 next m
70 end
72 rem*********************************
74 rem zufallsmuster ab 8192
76 rem*********************************
78 for x=0 to 2880
80 u=int(rnd(1)*255)
82 poke a+x,u:print u;
84 next x
86 return
Listing 2. Epson-Grafik. Der Drucker wird zum hochauflösenden Monitor. Beachten Sie bitte die Eingabehinweise auf Seite 99

Die Sache mit den Bits

Bei unserem Beispiel hat der Computer eigentlich nur die Aufgabe, die Daten für den Drucker zwischenzuspeichern. Man muß sich dabei von der »Bildschirm-Denkweise« trennen, denn auf dem Bildschirm ist man an die maximale Auflösung von 320 x 200 Punkten gebunden, auf dem Drucker ist man dies nicht. Hier kann der C 64 Auflösungen wie ein Proficomputer erreichen und auch realisieren. Deshalb haben wir hier auch nicht noch eine Hardcopy-Routine besprochen, davon gibt es wohl mehr als genug. Wer will, kann mit obigem Programm natürlich auch ein Grafikbild ausdrucken (einfach laden, der Speicherbereich wurde ab 8192 gewählt, also einem üblichen Platz für Bilder). Dabei wird man allerdings eine kleine Überraschung erleben, denn der Ausdruck ist gegenüber der Bildschirmdarstellung verdreht. Das hat auch seinen guten Grund, denn der C 64 speichert seine Bilder auf eine andere Weise als es für einen Epson-kompatiblen Drucker notwendig ist. Doch das nur am Rande. Für uns ist natürlich wichtig, wie ein Byte aufgebaut sein muß, damit es das gewünschte Resultat auf dem Drucker erzielt. Schauen wir uns dazu acht der neun Nadeln eines Druckers an (Bild 5). Die oberste Nadel hat den Wert 128, die nächste den Wert 64 und so weiter, bis zur untersten Nadel, die den Wert 1 hat. Will man, daß alle Nadeln anschlagen, so muß man alle Nadel-Werte addieren, also: 128+64+32+16+8+4+2+1= 255

O 0. Nadel Wert 128
O 1. Nadel Wert 64
O 2. Nadel Wert 32
O 3. Nadel Wert 16
O 4. Nadel Wert 8
O 5. Nadel Wert 4
O 6. Nadel Wert 2
O 7. Nadel Wert 1
O 8. Nadel nicht verwendet
Bild 5. Schematische Darstellung eines Druckkopfes mit der Wertigkeit der Drucknadeln

Soll keine Nadel anschlagen, so haben alle Nadeln den Wert 0 — so einfach ist das. Insgesamt gibt es also 256 verschiedene Möglichkeiten, die Nadeln zu aktivieren. Als letztes Beispiel wollen wir um unseren imaginären Bildschirm einen Rahmen ziehen. Ersetzen Sie dazu die Zeilen 78 bis 86 durch die Zeilen aus Listing 3. Starten Sie nun das Programm erneut, der Rahmen wird ausgedruckt. Zum Schluß habe ich noch eine kleine Aufgabe für Sie. Füllen Sie den Rahmen mit einer hübschen Grafik aus. Sie werden sehen, wie viel Freude die Programmierung Ihres Druckers macht.

(aw)

Info: Microscan, Überseering 31, 2000 Hamburg 60, Hotline: (040) 63200357, Dienstag bis Donnerstag, 10.00 Uhr bis 12.00 Uhr, 13.00 Uhr bis 16.00 Uhr

78 poke 8192,255
80 for x=8193 to 9150:poke x,128:next x
82 poke 9151,255
84 poke 9152,255
86 for x=9153 to 10110:poke x,0:next x
88 poke 10111,255
90 poke 10112,255
92 for x=10113 to 11070:poke x,1:next x
96 return
Listing 3. Diese Zeilen müssen anstelle der gleichen Zeilen in Listing 2 eingesetzt werden. Lesen Sie dazu bitte den Text.
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →