Diese Prüfroutine verhindert wirkungsvoll die Fehlermeldung: DEVICE NOT PRESENT ERROR und hilft, ein Programm absturzsicher zu machen.
Bei der Prüfroutine handelt es sich um ein Unterprogramm, das mit GOSUB 10080 aufgerufen wird. Vor dem Aufruf der Routine muß festgelegt werden, welches Gerät überprüft werden soll (Gerätenummer DN%: 4 für Drucker, 8 für Floppy). Die Auswertung der Variablen DR% (0 = aus, 1 = ein) ermöglicht eine Aussage über den Einschaltzustand. Prüfroutine
Zeile 10080:
Um die Maschinenroutine nicht bei jedem Aufruf des Unterprogramms einzulesen, wird sie nur beim ersten Aufruf eingelesen.
Zeile 10090 und 10100:
In die vom Computer nicht benutzte Speicherstelle 2 der Zeropage wird die Device-Nummer DN% (4 für Drucker, 8 für Floppy) gePOKEt, das Maschinenprogramm aufgerufen und anschließend der Inhalt der Speicherstelle 2 überprüft. War das Carry-Bit gesetzt, ist das entsprechende Gerät ausgeschaltet. Die Variable DR% wird entsprechend dem Einschaltzustand 1 (= ein) oder 0 (= aus) gesetzt.
Zeile 10140 bis 10170:
Basic-Lader der Maschinenroutine
Nach dem Löschen des Bildschirms wird der Variablen DN% die entsprechende Geräte-Nummer (4 für Drucker, 8 für Floppy) zugewiesen und die Prüfroutine aufgerufen. Die Abfrage der Variablen DR% (Device ready) ermöglicht es, eine Aussage über den Einschaltzustand (0 = aus, 1 = ein) des entsprechenden Gerätes zu machen.
Wird die Prüfroutine beim Diskettenlaufwerk angewendet (DN%=8), so muß nach dem Aufruf der Routine der Fehlerkanal der Floppy gelöscht werden, da durch die Prüfung ein Syntax Error (31) vom DOS gemeldet wird (Ansprung des NMI-Vektors in Zeile 160).