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:
★ TAG: /RSX/PRINT/
★ LICENCE: LISTING
★ AUTHOR: Peer Marius Künstler

★ AMSTRAD CPC ★ DOWNLOAD ★

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

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

Lien(s):
» Applications » The BigDisc
» Applications » Goldmark - Utilities Disk Two
» Applications » Fastdisc
» Applications » Discmon (CPC Amstrad International)
» Applications » Nirvana (Amstrad Computer User)
» Applications » Syllogistics

QUE DIT LA LOI FRANÇAISE:

L'alinéa 8 de l'article L122-5 du Code de la propriété intellectuelle explique que « Lorsque l'œuvre a été divulguée, l'auteur ne peut interdire la reproduction d'une œuvre et sa représentation effectuées à des fins de conservation ou destinées à préserver les conditions de sa consultation à des fins de recherche ou détudes privées par des particuliers, dans les locaux de l'établissement et sur des terminaux dédiés par des bibliothèques accessibles au public, par des musées ou par des services d'archives, sous réserve que ceux-ci ne recherchent aucun avantage économique ou commercial ». Pas de problème donc pour nous!

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 801 millisecondes et consultée 199 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.