<< Compiler
>> AmigaBasic

Warum funktioniert keine Esc-Sequenz?

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:
  1. 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:').
  2. 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