APPLICATIONSDIVERS ★ Ein Spooler für den CPC ★

Druckerspooler (CPC Amstrad International)Applications 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 ★ 

Time is Cash

Es sollen eine Menge Daten auf einen Drucker ausgegeben werden, der nicht gerade der schnellste ist, aber man will schnell fertig sein, um das Programm noch weiter zu verbessern. Oder inan möchte eine Hardcopy machen und dann das Bild weiter verändern. Aber bis alles gedruckt ist, dauert es eben seine Zeit. Damit ist jetzt Schluß! Ein Spooler muß her - aber Moment mal!

Der CPC-6128 hat doch 64 kByte, die meist ungenutzt bleiben. Dieses Programm benutzt die zweiten 64 kByte des CPC-6128 als Zwischenspeicher und versucht, jede Dreihundertstelsekunde ein Zeichen an den Drucker auszugeben. Das Programm ist als RSX-Befehlserweiterung aufgebaut und wird normalerweise in den Speicher ab &A000 geladen. Um eine andere Startadresse zu erreichen, muß man im Sourcecode, der auf der Databox-Diskette vorhanden ist, nur die ORG-Anweisung auf eine andere Adresse setzen. Diese muß aber außerhalb des Bereichs von &4000 bis &8000 sein, da an diese Adresse die Bänke des Speichers geklappt werden. Vor der ersten Benutzung muß das Programm mit CALL &A000 (beziehungsweise der entsprechenden anderen Adresse) aufgerufen werden. Von nun an stehen dem Programmierer folgende neue RSX-Befehle zur Verfügung:

|INIT: Löscht den Zwischenspeicher, lenkt den Drucker auf den Spooler um (wird beim ersten Aufruf automatisch ausgeführt).
|EXIT: Stoppt die Ausgabe des Spoolers, der Drucker ist wieder direkt über BASIC zu bedienen.
|CONT: Setzt eine mit EXIT abgebrochene Ausgabe fort -es geht kein Byte verloren.

Nach einem |INIT beziehungsweise |CONT -Befehl wird bei einem PRINT #8,“...“ oder einem ähnlichen Befehl das Zeichen nun zuerst einmal in den Spoolerbuffer geschrieben. Außerdem wird an die Adresse &B942 ein Vektor geschrieben, der nun alle 1/300 Sekunden versucht, ein Zeichen zum

Drucker zu schicken. Hat das Programm es nun geschafft, dem Drucker alle Zeichen zu übergeben, so klinkt es sich aus dem Interruptvektor in &B942 wieder aus, um keine unnütze Zeit zu kosten.

Ist der Zwischenspeicher einmal voll, zum Beispiel weil der Drucker zu langsam ist, so versucht das Programm ununterbrochen, ein Zeichen auf den Drucker auszugeben, bevor es aus einem PRINT # 8 zurückkehrt — es geht also kein Zeichen verloren.

Dieses Programm “verbiegt“ den RAM-Vektor &BD2B (MC Print Char) und den Anfang der Interruptbearbeitung im RAM ab &B942. Bei einem EXIT-Befehl wird wieder der Urzustand hergestellt. Auch bei laufendem Druckerspooler werden die normalen Interrupts des AMSDOS bearbeitet. Der Zwischenspeicher des Spoolers ist als Ringbuffer nach dem FIFO-Prinzip aufgebaut. Die beiden benötigten Zeiger belegen die vier letzten Byte des Programms. Sie können zum Auslesen der noch zu druckenden Zeichen verwendet werden.

Peer Marius Künstler/rs, CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1990
★ CONFIG: 128K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC AMSTRAD INTERNATIONAL 1990
★ AUTHOR: Peer Marius Künstler

 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Druckerspooler    (Peer  Marius  Kunstler)    (CPC  Amstrad  International)    GERMANDATE: 2020-04-22
DL: 200
TYPE: ZIP
SiZE: 4Ko
NOTE: 40 Cyls
.HFE: Χ

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

Lien(s):
» Applications » Scrunch - Frequency
» Applications » Disc (Amstrad Action)
» Applications » Ascii - Read
» Applications » Discology v6
» Applications » Multiple Renaming
» Applications » Discshow (Compute Mit)
Je participe au site:
» 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 410 millisecondes et consultée 895 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.