Drucker SPOOLER

Die englische Firma M.M.L. Systems Ltd. brachte Ende der Achtziger einen Spooler1 auf den Markt, hier die Originaldokumentation.

CP/M ist bekanntlich ein System, dessen Ein-/Ausgabe nicht interruptgesteuert ist. Wird z.B. eine Taste betätigt, so steht ein Zeichen zum Lesen zur Verfügung. Wird dieses jedoch nicht vor der nächsten Tasteneingabe gelesen, so geht es verloren. Auch der Abbruch eines Programms (über das übliche Ctrl-C) muss per Programm erfolgen. Das gilt ebenso für die Ausgabe auf einen Drucker. Ist ein Druckauftrag ausgegeben, so lassen sich keine anderen Aktivitäten durchführen.
Genau hier setzt diese RSX an. Daten, die zum Drucker geschickt werden, werden zunächst in eine Datei geschrieben, was bei Verwendung der RAM-Disk sehr schnell geht. Die RSX überwacht nun die folgenden Systemaufrufe und immer, wenn ein Zugriff auf die Tastatur erfolgt und kein Zeichen zum Lesen vorhanden ist, schickt diese ein Zeichen aus der Datei zum Drucker. Es entsteht so der Eindruck, als würden mehrere Prozesse parallel laufen.

Hier die Quelldateien:

Hauptprogramm Das Programm installiert die RSX
RSX Die RSX, die an das Hauptprogramm gebunden werden muss
Löschprogramm Das Programm deaktiviert die RSX

1. Ich habe später in einer Dutch CP/M User Group (Nr. 864) einen weiteren Spooler gefunden