home *** CD-ROM | disk | FTP | other *** search
- iPRN (C) Peter Missel 1994, 1995
-
- "Gähn, schon wieder ein Beschleuniger für die Druckausgabe!"
-
- Jawohl, schon wieder einer. Aber einer mit Statusüberwachung per Interrupt.
-
- "Und was heißt das?"
-
- Nun, ganz einfach: Zusätzlich zur bei Druckbeschleunigern üblichen
- Beschleunigung des Druckens kann iPRN unterscheiden, ob der Drucker
- nur beschäftigt oder in einem Fehlerzustand ist (offline, ausgeschaltet,
- kein Papier, nicht angeschlossen...). So weiß das System im voraus, ob es
- möglich ist, Zeichen an den Drucker zu senden oder nicht.
- Dadurch entfällt die lästige Gedenkminute, wenn man drucken will und
- der Drucker nicht bereit ist. Die Fehlermeldung erscheint sofort.
-
-
- iPRN ist Shareware. Die Versionen bis einschließlich 0.99 sind Demoversionen
- und können frei verbreitet werden.
-
- Einschränkungen der Demoversion:
- - Die Statusüberwachung funktioniert pro Sitzung nur einmal:
- Wenn der Drucker einmal Offline war und wieder Online gesetzt
- wird, deaktiviert sich die Statusüberwachung selbst. Dann läuft
- alles normal weiter, nur halt wieder mit Gedenkminute bei Druckerfehler.
- Die Beschleunigungswirkung bleibt erhalten.
- - Kein Kontrollfeldmodul:
- - Timeouts nicht konfigurierbar
- - Statusüberwachung nicht abschaltbar (schaltet sich sowieso von selber ab)
- - keine Deskjet-Weckfunktion
-
-
- Die registrierten Versionen 1.00 und höher kosten in Deutschland DM 25,-
- und US$ 20 im Ausland.
-
-
- Registrierung
- =============
- DM 25,- / US$ 20 überweisen an:
-
- Peter Missel, Stadtsparkasse Augsburg, BLZ 72050000, Kto. 1301522.
- Als Verwendungszweck "iPRN Vorname Nachname" angeben.
-
- UK: Scheck oder Postal Order über 13 Pounds Sterling, zahlbar an
- Denesh Bhabuta, senden an:
-
- CyberSTrider,
- 203 Parr Lane,
- Unsworth,
- Bury,
- Lancashire,
- BL9 8JW
-
- Bitte nicht vergessen, Name und Adresse anzugeben.
-
- Denesh kann auch über E-mail erreicht werden:
- dbhabuta@cix.compulink.co.uk
- danny@micros.hensa.ac.uk
-
- Zur eindeutigen Identifizierung zusätzlich eine Postkarte schicken an:
- Peter Missel, Greiffstraße 11, 86157 Augsburg, Deutschland.
-
- Oder eMail an Peter Missel @ LL im Mausnetz.
- (Peter_Missel@ll.maus.de für Benutzer anderer Netze)
-
-
- Wirkung (Zeichen pro Sekunde)
- =============================
-
- Rechner ohne mit iPRN
- -------------------------------------------------
- ST, 8 MHz, TOS 2.06 1800 13531
- ST, 16 MHz, TOS 1.04 3200 >17200
- Falcon030, TOS 4.04 3500 bis 36100 *
- Falcon030, TOS 4.04, Bild aus 4500 >39370 *
- Falcon030/32 MHz, Bild aus 4835 >39370 *
- TT030 ohne FastRAM, TOS 3.06 5600 bis 34100 *
- TT030 mit FastRAM, TOS 3.06 ? ?*
-
- (Die "größer als"-Werte sind aus Benchmarks, bei denen der Rechner schneller
- senden konnte, der Drucker aber nicht schnell genug war.)
-
- * Bei 68030-Rechnern schwanken die Meßwerte mit der Lage von
- Treiber und Software im CPU-Cache. Im schlechtesten Fall erhält man
- etwa 20% weniger Durchsatz, "normal" etwa 5% weniger als die angegebenen
- Maximalwerte.
-
-
- Installation
- ============
- IPRN.PRG gehört in den AUTO-Ordner, und zwar so weit hinten wie möglich.
- MiNT-Anwender müssen es hinter MINT.PRG in den AUTO-Ordner stecken. Dann
- kann unter MiNT ein XDD-Treiber für den Drucker benutzt werden (weil sich
- IPRN.PRG dann nicht installiert), und ohne MiNT startet IPRN.PRG.
-
- Wer keinen XDD-Treiber hat, kann iPRN auch mit MiNT benutzen. Vor MiNT
- gestartet ist die Beschleunigung wegen des Overheads von MiNT allerdings
- eher gering; wer Geschwindigkeit vor Kompatibilität setzt, kann IPRN.PRG
- auch nach MiNT starten, dann ist die Geschwindigkeitssteigerung besser.
- (Umleitung der Druckausgabe wird dann nicht funktionieren.)
-
- IPRN.CPX ist das Kontrollfeldmodul und gehört in den Ordner, in dem die
- schon vorhandenen Moduln auch schon sind. Normalerweise ist das C:\CPX\.
- Es ist allerdings nur in der registrierten Version dabei.
-
-
- Bedienung
- =========
- An IPRN.PRG gibt es nichts zu bedienen. Es wird im AUTO-Ordner automatisch
- gestartet und installiert sich. Falls die Installation unmöglich ist, wird
- eine Fehlermeldung ausgegeben: "already installed" oder "Printer port
- already in use", wenn das Programm bereits installiert ist bzw. wenn bereits
- ein anderes Programm den Interrupt der Druckerschnittstelle belegt hat.
-
- Das Kontrollfeld-Modul dient zur Konfiguration des Programms:
- - "Offline Timeout" ist die maximale Zeit in Sekunden, die vor dem Absenden
- eines Zeichens gewartet wird, bevor der Drucker für abwesend erklärt und
- eine Fehlermeldung erzeugt wird.
- - "End-of-job delay" ist die Zeit, die nach dem letzten gedruckten Zeichen
- verstreichen muß, bevor die Zustandsüberwachung wieder wirksam wird.
- - "Printer state watchdog": Zustandsüberwachung des Druckers per Interrupt.
- Kann jederzeit an- und ausgeschaltet werden. Ausschalten empfiehlt sich
- vor der Benutzung eines Programms, das selbst die Hardware direkt benutzt.
- - Nebenbei kann man durch Druck auf "OK" oder "Save" auch eingeschlafene
- Deskjets wieder zum Leben erwecken.
-
- Das Kontrollfeldmodul ist nur in den registrierten Versionen enthalten;
- in den Demoversionen ist "Offline Timeout" auf 30, "End-of-job delay" auf 3
- Sekunden fest eingestellt, und der "Printer state watchdog" deaktiviert sich
- nach dem ersten Druckerfehler von selbst.
-
-
- Die erwünschten Nebenwirkungen von iPRN sind:
-
- - Die Erzeugung des STROBE-Signals funktioniert unabhängig von der
- Geschwindigkeit des Rechners. Auch Besitzer ultraschneller Geräte
- jenseits des TT können iPRN benutzen.
-
- - Auch bei der Hardcopy entfällt die lästige Pause bei abwesendem Drucker.
- Der Druckvorgang wird auch hier beschleunigt.
-
- - Beim Reset des Rechners wird statt eines undefinierten Müllzeichens
- ein definiertes Müllzeichen gesendet, nämlich ein Nullbyte.
- Daß es gesendet wird, ist im TOS so festgenagelt (zumindest bis TOS 1.04)
- und läßt sich nicht vermeiden.
-
-
- Unerwünschte Nebenwirkungen:
-
- - Programme, die die Druckausgabe direkt auf die Hardware machen (anstatt
- über GEMDOS oder BIOS), lösen damit pro Byte zwei Interrupts aus, was
- _diese_ Druckvorgänge langsamer macht als vorher. (Aber zum Glück nicht
- viel.) Das betrifft allerdings auch nur solche Oldies wie Calamus 1.x
- oder Signum!Zwei. Besitzer einer registrierten Version von iPRN können
- vor dem Ausdruck mit solchen Programmen die Druckerstatusüberwachung
- über das Kontrollfeld deaktivieren.
-
- - Schließlich berücksichtigen viele Programme nicht, daß die Zeichenausgabe-
- funktion des BIOS einen Fehlercode zurückliefert, so daß man den Drucker
- nicht während des Drucks offline schalten kann. iPRN ignoriert deswegen
- den Offline-Zustand innerhalb 3 Sekunden nach dem letzten gesendeten
- Zeichen (in den registrierten Versionen konfigurierbar).
- Spätestens nach dem "großen" Timeout (normalerweise 30 Sekunden,
- in der registrierten Version konfigurierbar) gehen dann trotzdem Zeichen
- verloren, und der Ausdruck bekommt ein paar Spezialeffekte dazu.
- Das passiert allerdings auch mit der normalen Druckfunktion des TOS
- und hat mit iPRN nichts zu tun.
-
-
- Kontraindikationen:
-
- - Nicht anwenden bei hardwaremäßiger Inkompatibilität des Druckerausgangs,
- etwa bei GEMulator- oder JANUS-Steckkarten für DOS-PCs oder Mag!C Mac.
-
- ==============================================================================
-
- Für die Techniker: iPRN hängt im BIOS-Trap (mit XBRA-Kennung "iPRN")
- und fängt Bconout( 0, ... ) und Bcostat( 0 ) ab. Zusätzlich installiert es
- sich in den Vektoren xconout0, xcostat0, prv_lst, prv_lsto und resvector.
- Es aktiviert und benutzt MFP Interrupt I0. Ein Cookie "iPRN" wird eingetragen,
- dessen Wert ein Zeiger auf Konfigurationswerte ist; diese wiederum können mit
- dem Kontrollfeldmodul verändert werden. (Nur in den registrierten Versionen,
- in den Demoversionen zeigt der Zeiger auf Müll.)
-
- Bcostat( 0 ) liefert im Unterschied zur Originalfunktion im TOS auch mitten
- im Druckvorgang einen aussagekräftigen Wert, weil unterschieden wird, ob
- der Drucker wegen eines gerade gesendeten Zeichens busy ist, oder von sich
- aus die BUSY-Leitung gesetzt hat (etwa weil ein Fehler aufgetreten ist oder
- der Drucker offline geschaltet ist). Das Ergebnis ist wie gewohnt -1 für
- "ready" und 0 für "not ready", nur daß ein gewöhnlicher Busy-Zustand auch
- als "ready" gemeldet wird.
-
- ==============================================================================
-
- Dank geht an:
-
- Thomas Fladerer (mein mutiges Dauer-Versuchskaninchen)
-
- Die Betatester: Franz Blaha, Thomas Fladerer, Robert Federle, Andreas Kohout,
- Heinz Lütkebohmert, Michael Nolte.
-
- Die unfreiwilligen Tester: Werner Deinböck, Michael Ruge, Walter Vieser.
-
- Atari für die Hardware-Dokumentation, einige kleine Codefetzen zum
- Thema Interrupthandling und Programmstart, und die Tools zum Erzeugen
- von Kontrollfeld-Moduln;
-
- Julian F. Reschke fürs geduldige Verwalten der XBRA-Liste.
-
- Besonderer Dank an Thomas Fladerer, Andreas Kohout und Michael Kunert,
- die mir ihre Drucker samt Tinte öfters mal geborgt haben.
-
-
- Peter Missel, im Juni 1995