(*---------------------------------------------------------------------------
    :Program.    PrinterSupport.doc
    :Author.     Fridtjof Siebert
    :Address.    Nobileweg 67, D-7-Stgt-40
    :Phone.      0711/822509
    :Shortcut.   [fbs]
    :Version.    1.0
    :Date.       31-Jul-88
    :Copyright.  PD
    :Language.   Modula-II
    :Translator. M2Amiga
    :Imports.    none.
    :UpDate.     none.
    :Contents.   PROCEDUREs für Druckerhandling (Open, Write, Close etc.)
    :Remark.     Ähnlich wie die Prozeduren des Libraries&Devices Manual.
---------------------------------------------------------------------------*)


PrinterSupport Unterstützt die Bedienung des Printer.device. Es exportiert
Prozeduren zum Öffnen, Schließen, Senden von Zeichen und Kommandos und
Drucken von Grafiken.


Die Proceduren von PrinterSupport entsprechen grob denen des Libraries &
Devices Manuals. Der PrinterRequestBlock ist eine interne Variable, da der
Drucker normalerweise nur einmal geöffnet wird. Sie muß also nicht
übergeben werden und CreatePort() und CreatExtIO() wird von PrinterSupport
aufgerufen.


------  Open Printer:  ------

PROCEDURE OpenPrinter();

Dies muß am Anfang aufgerufen werden, um das Printer.device zu öffnen.
Schlägt OpenDevice fehl oder ist zu wenig Speicher frei (200 Bytes genügen
wohl), wird der Fehler nicht bemerk, da OpenDevice keinen Fehler
zurückgibt.

------  WritePrinter:  ------

PROCEDURE WritePrinter(Buffer: ADDRESS; Length: LONGINT);

WritePrinter() schickt ähnlich wie Dos.Write Length Zeichen zum Drucker.
Der Buffer braucht nicht im Chip-Speicher zu liegen.

------  PrintCommand:  ------

PROCEDURE PrintCommand(Command: CARDINAL; p0,p1,p2,p3: UByte);

Sendet ein Druckerkommando. Die Kommandos können von Printer importiert
werden und sind dort auch documentiert.

------  DumpRPort:  ------

PROCEDURE DumpRPort(RP: RastPortPtr; ColorMap: ColorMapPtr;
                    Modes: ViewModeSet; sx,sy,sw,sh: CARDINAL;
                    dc,dr: LONGINT; s: SpecialSet);

Druckt einen RastPort (eine Grafik) aus. Im Library & Devices Manual stehen
weitere Informationen hierzu. Ich selbst habe DumpRPort noch nicht
gebraucht, es also auch nicht getestet. Es dürften jedoch keine Probleme
auftreten.

------  Close Printer:  ------

PROCEDURE ClosePrinter();

ClosePrinter muß am Ende des Programms aufgerufen werden, um das
Printer.device zu schließen und etwas Speicher freizugeben.

END PrinterSupport.
