APPLICATIONSDIVERS ★ DRUCKEN IM HINTERGRUND ★

Drucken im HintergrundApplications Divers
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Viel Zeit kann man sparen, wenn der schnelle Computer keine Rücksicht auf den langsamen Drucker nehmen muß. Ein Drucker-Spooler entlastet Ihren Schneider vom Warten.

Oft wird bei Computern aller Art durch ungeschickte Programmierung und Systemgestaltung sehr viel Rechenzeit verschwendet. Das ist beispielsweise der Fall, wenn die viel schnellere Zentraleinheit auf ein langsames Peripheriegerät warten muß. Ein Schwachpunkt ist dabei der viel zu langsame Matrixdrucker. Es gibt allerdings Zusatzgeräte, die diesen Fehler beheben. Sogenannte »Spooler«, die einen schnellen Drucker simulieren. Diese Systeme speichern die auszugebenden Daten zwischen, und geben sie langsam an den Drucker weiter.

Der Hardware-Spooler

Der Hardware-Spooler ist genaugenommen ein spezieller Computer mit einem festen Programm. Er wird »hardwaremäßig« zwischen Muttergerät und Drucker eingebaut. Der Computer übermittelt dem Spooler die zu druckenden Daten über die normale Schnittstelle. Der Spooler speichert die Daten und schickt sie dann unabhängig vom Hauptgerät an den Drucker weiter. Der Vorteil liegt auf der Hand: Für den Computer verhält sich die Erweiterung wie ein echter Drucker—allerdings mit einer Übertragungsrate von 3000 Zeichen pro Sekunde und mehr. Viele Drucker haben bereits einen (allerdings kleinen) Hardware-Spooler eingebaut.

Vom Prinzip her macht der Software-Spooler genau das gleiche wie der Hardware-Spooler. Nur ist ein Software-Spooler ein Programm, das zum Speichern der Daten Platz im RAM des Computers benutzt. Um den Unterschied zu verdeutlichen, kann man sagen, daß sich der Software-Spooler zwischen den Software-Schnittstellen des Betriebssystems befindet, während der Hardware-Spooler aut die (physisch reale) Schnittstellen zwischen Computer und Drucker gesteckt wird. Der Vorteil der Softwarelösung ist der geringere Preis (hier sogar kostenlos). Der Nachteil hingegen, daß zum Zwischenspeichern der Daten Speicherplatz des Computers verbraucht wird.

Hier finden Sie nun einen Software-Spooler für den Schneider CPC 464. Sie können selbst entscheiden, wieviel Speicherplatz (zwischen 1 und 8 KByte) für den Datenbuffer reserviert werden soll.

Unser Spooler setzt sich aus zwei Programmen zusammen. Aus dem Basic-Lader »SPOOL.BAS« und der Maschinencode-Routine »SPOOL.BIN«. Zum Installieren müssen Sie das Programm »SPOOL.BAS« starten und die gewünschte Buffergröße eingeben. Der Maschinencode-Teil wird von diesem Programm in den Speicher geladen und der benötigte RAM-Be-reich wird reserviert.

Zum Generieren des Binärprogrammes ziehen Sie das Basic-Programm »B1NÄR.BAS« zu Hilfe Das Programm »SPOOL.BIN« wird automatisch erzeugt und gespeichert. Die Checksumme überprüft Ihre Eingabe auf Fehler. Benutzt man das Kassettenlaufwerk als Datenspeicher, so sollte das Binärfeld direkt hinter dem Hauptprogramm stehen.

Das Basic-Programm erklärt sich mehr oder weniger von selbst. Auch das Assembler-Listing ist leicht zu verstehen. Wirklich interessant ist das »Umbiegen« des Hardware-Interrupts. Beim CPC 464 wird am Z80-INT-Eingang des Gate-Ar-ray 300ma) in der Sekunde ein kurzer Impuls angelegt. Da der Z80 im Interrupt-Modus 1 betrieben wird, veranlaßt der Impuls. daß die CPU eine Routine anspringt, die sich an Adresse 38 hex befindet — die Interruptroutine Hier steht ein Sprungbefehl zu der Firmware-Interrupt-Routine. die sich unter anderem um die Tastatur-Abfrage kümmert. Zur Realisierung des Spoolers wird dieser Sachverhalt genutzt. Der Firmware-Interrupt-Routine wird eine Befehlsfolge »vorgeschaltet«, die dann 300mal in der Sekunde nachschaut, ob der Drucker »BUSY« ist und dem Drucker ein neues Zeichen überträgt.

Wenn man an der Adresse 38 hex den Sprung auf die neue Routine einfügt, hat das leider nicht sofort den gewünschten Effekt. Das »Patchen« ist nämlich nur im RAM erfolgreich: im parallelen ROM steht immer noch der ursprüngliche Sprungbefehl. Das bedeutet in der Praxis, daß die »vorgeschaltete« Routine nur dann benutzt wird, wenn sie von einem Basic-Programm her aufgerufen wird. Im Ready-Modus wird sie nicht aufgerufen, da hier das untere ROM freigeschaltet ist.

Für einen Spooler ist es aber unbedingt notwendig, daß er auch im Ready-Modus aufgerufen wird, damit der Ausdruck in diesem Modus korrekt erfolgt. Dieses Problem wurde hier etwas »brutal« gelöst. Die ersten Anweisungen der Firmware-Interrupt-Routine, die sich immer im RAM befindet, sind durch einen Sprung auf die neue Druck-Routine ersetzt. Der Effekt ist, daß sie in jedem Falle angesprungen wird, unabhängig davon, ob im unteren Speicherbereich das RAM oder das ROM aktiviert ist.

Die Anwendungsbereiche des Spoolers sind vielfältig. Nicht nur bei Textverarbeitungsprogrammen, sondern auch bei der Entwicklung eigener Software ist er nützlich. Nach einem LIST-Befehl steht der Computer sofort wieder zur Verfügung und ist nicht »lahmgelegt« bis das Listing ausgedruckt ist.

(Thomas Obermair/hg) , Happy Computer 1/86

★ PUBLISHER: Happy Computer
★ YEAR: 1986
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ AUTHOR: Thomas Obermair
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Drucken  im  Hintergrund    (Happy  Computer)    LISTING    GERMANDATE: 2017-02-12
DL: 204
TYPE: PDF
SiZE: 143Ko
NOTE: Uploaded by hERMOL ; 2 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Hardware Copy
» Applications » Scroll (Amstrad User)
» Applications » Formatermittlung (Schneider Magazin)
» Applications » 32-ROMs Booster
» Applications » Times Maker (CPC Amstrad International)
» Applications » RSX Supersprites Mode 0 (Pride Utilities)
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 294 millisecondes et consultée 1157 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.