Interrupt für die serielle Schnittstelle

CP/M ist bekanntlich ein System, dessen Ein-/Ausgabegeräte gezielt, also per Programm abgefragt werden. Dieses sogenannte „Pollen" kann nicht verhindern, dass z.B. eine Tastatureingabe verloren geht. Zwar verfügt das Amstrad-Betriebssystem über einen Interrupt-Mechanismus, jedoch wird immer nur ein Zeichen zwischengespeichert; vorherige, nicht abgefragte Eingaben gehen verloren. Als ich mit Experimenten in der DFUE anfing — hier speziell mit Kermit — wollte ich vermeiden, dass Daten der seriellen Schnittstelle verloren gehen. Ich habe dann einen eigenen, als RSX konzipierten Interrupt-Treiber geschrieben und ebenfalls einige neue BDOS Funktionen speziell für die serielle Schnittstelle definiert.

Erweiterte BDOS Funktionen
Neue BDOS FunktionBeschreibung
61Zeichen von der Schnittstelle holen
62Zeichen zur Schnittstelle senden
63Status der Schnittstelle holen
64RSX installieren
65RSX de-installieren
66Status der RSX abfragen
67XON ein- oder ausschalten

Letztlich habe ich mich aber entschlossen, den internen Interrupt-Treiber des Betriebssystems zu verwenden.

Hier mein Experimentier-Interrupt-Treiber als RSX.