<< Compiler
>> AmigaBasic
Viele Drucker kommen mit einem Handbuch, das erklärt, welche
Esc-Sequenzen welche Funktion auslösen. Aber wenn man diese Sequenzen
dann einmal ausprobiert, passieren oft merkwürdige Sachen, nämlich entweder
gar nichts oder etwas ganz anderes, als geplant war. Und das hat auch
einen Grund, nämlich die Amiga-Druckertreiber. Diese Treiber sind so
gebaut, daß sie nur einen bestimmten Satz ANSI-Esc-Sequenzen
verstehen, nicht die (verschiedenen) druckereigenen, von den verschiedenen
Druckerherstellern definierten. Der Sinn dabei ist, daß jede Anwendung
auf dem Amiga nur diesen einen Standardsatz an Sequenzen verwendet und
so nicht zu wissen braucht, welcher Drucker tatsächlich angeschloßen
ist. Der Druckertreiber übersetzt dann diese Standardsequenzen in die
druckereigenen. Eine Liste der verfügbaren ANSI-Esc-Sequenzen findet
sich im aktuellen Workbench-Handbuch (oder in älteren
AmigaDOS-Handbüchern). Wenn Du nun eine Steuersequenz an den Drucker schicken
willst, die es nicht als ANSI-Sequenz gibt, so hast Du zwei Möglichkeiten,
dies doch zu erreichen:
- Umgeh den Druckertreiber (der erfolglos versuchen würde, die Sequenz
zu interpretieren oder zu übersetzen) und sende die Ausgabe nur
für die Länge dieser Sequenz an `PAR:' (bzw. `SER:'). Dabei
muß man die Druckerausgabekanäle umständlich oft umschalten, und man muß
wissen, wo der Drucker angeschlossen ist (`PAR:' oder `SER:').
- Benutze eine spezielle ANSI-Sequenz, genau für diesen Fall gedacht:
`Esc[<n>"<x>'
wobei `<n>' die dezimal geschriebene Anzahl an Bytes in der Sequenz
`<x>' ist, die gerade die spezielle Drucker-Sequenz enthält. Diese
ANSI-Sequenz sagt dem Druckertreiber, daß er die nächsten `<n>' Bytes
nicht interpretieren oder übersetzen soll.
Aber beide Methoden haben einen grossen Nachteil, wenn sie in einem
Anwendungsprogramm verwendet werden: Man verliert die
Druckerunabhängigkeit! Solange man sich an die ANSI-Sequenzen hält, kann
man jeden Drucker
der Welt ansteuern, solange es einen Amiga-Druckertreiber für ihn gibt.
Wenn man anfängt, druckereigene Sequenzen zu verwenden, ist das Programm
an diesen einen Druckertyp gebunden und mit keinem anderen benutzbar
(oder man müßte einige dutzend neue Druckertreiber für dieses Programm
erstellen).
Dr. Peter Kittel, peterk@cbmger.de.so.commodore.com
<< Compiler
>> AmigaBasic