Do you speak Laser?

Nachdem der Laserdrucker in diesem Heft schon vorgestellt worden ist, wird jetzt noch ein wenig genauer auf die Dialogfähigkeit des Druckers mit dem Atari eingegangen. Im Prinzip soll erläutert werden, wie der ST sich dem Laserdrucker mitteilt, damit dieser eine Seite mit Grafik und/oder Text ausdruckt. Gegenüber bisherigen Druckern gibt es die entscheidende Veränderung, daß der Laserdrucker nicht über die Centronics Schnittstelle bedient, sondern als Gerät an der DMA Schnittstelle betrieben wird, an der auch die Harddisk angeschlossen ist. Die DMA Schnittstelle ist notwendig geworden, da der Laserdrucker sehr viele Daten benötigt, bis er eine Seite komplett aufgebaut hat. Der Laserdrucker SLM804 hat eine Standardauflösung von 3386 x 2336 Punkten sprich 7.909.696 Bildpunkten. Zum Übermitteln einer Seite sind also 988 712 Bytes notwendig, d. h. um auf die technisch möglichen 8 Seiten pro Minute zu kommen müssen rund 7.5 Megabyte pro Minute übertragen werden. Selbst die schnellste Centronics Schnittstelle würde dabei auf der Strecke bleiben.

Kurz zum Aufbau der DMA Schnittstelle. Grundsätzlich werden die Daten 8 Bit parallel übertragen, der Geschwindigkeitsvorteil gegenüber einer Centronics Schnittstelle, bei der ebenfalls 8 Bit parallel übertragen werden, ergibt sich dadurch, daß eine Anzahl von Bytes angegeben wird, die der DMA Controller automatisch hintereinander über den DMA Port sendet. Es ist nicht notwendig, daß der 68000 Prozessor sich an dieser Arbeit beteiligt. Damit die DMA Schnittstelle für mehrere Geräte gleichzeitig verfügbar ist, muß ein bestimmtes Protokoll beim Betrieb der DMA eingehalten werden. Prinzipiell können acht Geräte am DMA beteiligt sein, dabei werden zur Kennung die Nummern von 0 bis 7 benutzt. Der Laserdrucker besitzt ein kleines Kontrollerboard, in dem der gewünschte DMA Kanal eingestellt wird. Damit der Atari ST auch sicher sein kann, welches der Geräte am DMA der Laserdrucker ist, besitzt dieser einen Erkennungsbefehl, der dazu führt, daß er den Namen 'PAGE PRINTER’ zurück an den ST sendet. Nachdem der ST diese Kennung erhalten hat, wird der entsprechende DMA Kanal gesetzt und als Laserdrucker DMA Kanal benutzt. Bevor grafische Daten an den Laserdrucker gesendet werden können, sollte die interne Auflösung des Laserdruckers festgestellt werden. Dafür wird der Befehl 'Mode Sense’ an den Laserdrucker gesendet, worauf dieser ein paar seiner internen Daten preisgibt. Dazu gehören z. B. die Auflösung pro Inch (300 x 300 Punkte), sowie die Gesamtauflösung einer Din A4 Seite. Nach der Feststellung dieser Daten müssen die eigenen Grafiken entsprechend skaliert werden und können komplett als Seite jeweils zeilenweise an den Drucker gesendet werden. Durch dieses Verfahren ist gewährleistet, daß auch die ST Rechner mit 512 KByte mit dem Laserdrucker arbeiten können. Eine Einschränkung kann sich nur bei objektorientierten Grafikprogrammen ergeben, die eine komplette Seite aus mehreren Objekten aufbauen müssen und diese natürlich nur im ST selber aufbauen können. Für diesen Fall sollte eine minimale Ausstattung mit 2 Megabyte Speicher im Rechner vorhanden . sein, da eine Grafikseite allein schon 988 712 Bytes benötigt. Eine kleine Warnung zum Schluß: Wenn der Laserdrucker am Atari ST DMA Port angeschlossen, aber nicht eingeschaltet ist, kann es dazu führen, daß der Datenfluß am Floppycontroller gestört wird, so daß Daten auf Diskette zerstört werden. Die Gemeinheit besteht darin, daß keine Schreibfehler gemeldet werden, sondern einfach nur einzelne Datenbytes auf der Diskette nicht in Ordnung sind.

Kurzbeschreibung der Laserdruckerbefehie

Der Datenaustausch zwischen ST und Laserdrucker erfolgt asynchron. Das Protokoll ermöglicht eine jeweils ein Byte große Transferrate. Der Laserdrucker selbst besitzt momentan einen Befehlssatz von sechs Befehlen, die in einem 6-Byte ’Command Descriptor Block’ übergeben werden. Der 6 Byte Block wird vom ST via Controller an den Laserdrucker übermittelt.

Folgende Befehle versteht der Laserdrucker:



Aus: ST-Computer 12 / 1987, Seite 68

Links

Copyright-Bestimmungen: siehe Über diese Seite