Hardcopy mit CP80 oder ähnlichen Druckern

center Ein Manko einiger Drucker war bisher, daß sie bei der eingebauten Hardcopy-Funktion des ATARI ST nicht funktionierten. Bei Anwählen der ’Alternate Help’-Funktion sah sich der Drucker dazu veranlaßt entweder nur Zeichensalat, wildes Gepiepse und Formfeeds auf das Papier zu bringen oder eine Hardcopy auszugeben, die horizontal gestaucht war und größere Zwischenräume aufwies.

Die Ursache war klar. Diese Drucker verstehen andere Bitmap-codes als IBM oder Epson-kompatible Drucker.

Zur Anpassung gibt es verschiedene Möglichkeiten. Man kann eine neue Druckerroutine schreiben die speziell auf den verwendeten Drucker angepaßt ist. Dies ist allerdings ein komplizierter Weg, der zwar mit jedem Drucker funktioniert, sei er auch noch so ungewöhnlich. Bei den meisten Druckern ist aber ein wesentlich einfacherer Weg praktizierbar, nämlich eine Änderung im BIOS. Hierfür muß man den Teil des BIOS, der die Druckersteuerung beinhaltet, anpassen. Da das BIOS aber eine beachtliche Länge aufweist, ist dies ohne Hilfsmittel auch für den erfahrenen Assemblerprogrammierer kaum zu bewältigen.

Zweckmäßigerweise benötigt man ein dokumentiertes BIOS-Listing, wie es zum Beispiel im ’Intern’ Buch von Data Becker enthalten ist. Zwar treten aufgrund der verschiedenen TOS-Versionen einige Unterschiede zwischen Listing und der eigentlichen Version auf, in unserer Anwendung aber waren keine Unterschiede vorhanden.

Die Druckersequenzen sind im Speicherbereich von $16D5E bis $16D87 abgelegt und können auf den eigenen Drucker angepaßt werden. Entscheidend sind hierbei die Bitmapcodes ($16D6D; S16D71) und der Code zur Einstellung des Linefeeds ($16D75), da diese sich bei einigen Druckern unterscheiden.

Der CP80 zum Beispiel wird mit ’Escape 4C’ auf hohe Auflösung geschaltet. Die Hardcopy geht damit, falls die Druckeranpassung im Desktop auf 1280 gestellt wurde, über die ganze Papierseite, was der normalen Hardcopy entspricht. Wenn man die Druckeranpassung im Desktop auf 960 stellt, bekommt man einen horizontal verkleinerten Ausdruck, der dann allerdings nicht mehr maßstabsgerecht ist.

Falls man nun in die beiden Speicherzellen, die den Bitmapmodus einschalten (siehe Programm) eine ’Escape 4B’ schreibt, entstehen horizontal gedehnte Hardcopies, die sich je nach eingestellter Druckerauflösung im Desktop, unterscheiden. Eine solche Ausschnittsvergrößerung bildet dann natürlich nur noch einen Teil des linken Bildschirmes ab, ist aber für den Einzelfall recht interessant.

Auf diese Art und Weise kann man auch auf Druckern, die ohne diese Anpassung eine korrekte Hardcopy zu Papier bringen, eine Veränderung des Hardcopyformates erreichen.

Viel Erfolg beim Experimentieren.

Die Anpassung kann mit folgendem Basic Programm erfolgen:

10 ’Druckeranpassung CP 80 oder ähnliche Drucker
20 poke &h!6D76,&h3315     ’ Linefeed auf 15/216„
30 poke &h!6D72,&h4CFF     ’ Bitmap normale Größe
40 poke &h!6D6E,&h4CFF     ’ Bitmap verkleinert
50 ’ poke &h!6D6E, &h4BFF  ’ Bitmap vergrößert (Hälfte des Bildschirms)
60 ’ poke &h!6D72, 8h4BFF  ’ Bitmap vergrößert (2/3 des Bildschirms)
70 poke &h88D4,0           ’ Linefeed ausschalten
80 poke &h8924,0           ’ Linefeed ausschalten
90 print "Drucker angepasst"


Aus: ST-Computer 02 / 1986, Seite 6

Links

Copyright-Bestimmungen: siehe Über diese Seite