Super-Basic-Retter für den deutschen QL

Dieses Programm ruft einen bereits im Basic-Job abgestürzten QL oft wieder zurück. Es muß natürlich geladen sein, und der Absturz sollte ruhig verlaufen, d.h., der Bildschirm darf nicht zu flimmern beginnen. Aus Sicht der Maschinensprache kann man folgendes sagen: Wurden beim Absturz weder der Scheduler lahmgelegt noch das Register A6 verändert, so kann das Basic restauriert werden. Dazu setzt dieses Programm in der Jobtabelle den PC des Basic-Jobs 0 auf einen festen Wert. Bei meiner Version ist dies z.B. $00004BE2 (Anfang der INPUT#0-Routine, bei der alle Register außer A6 und A7 neu gesetzt werden). So sind alle Abstürze des Basic-Interpreters, wie Aufrufe gelöschter Prozeduren und WHEN ERRor: REMark ... a=SORT(-8) usw. mit diesem Programm wieder zu reparieren.

Nach dem Start linkt eine Routine eine zusätzliche Scheduler-Schleife ins QDOS, die den 8049 ständig auf CTRL R ohne SHIFT abfragt. Ein Geschwindigkeitsverlust ist nicht zu bemerken. Bei CTRL R wird zusätzlich in der Schleife der Basic-PC auf den genannten Wert gesetzt. Oft muß man diese Tastenkombination mehrere Sekunden lang drücken, bis auch bei schwereren Abstürzen der Cursor wieder erscheint. Dann betätigt man ENTER, da diese erste Kommandozeile nicht ausgewertet wird. Nun sollte sich der QL in den meisten Fällen wieder normal verhalten. Für andere QL-Versionen müßte es auch möglich sein, entsprechende Adressen zu finden!

Geladen und ausgeführt wird das einmal erzeugte Programm mit:

c=RESPR(114): LBYTES
mdv1_RETTERMC,c:CALL c

Empfehlenswert ist es, diese Befehle in das BOOT-Programm zulegen.


Christian Peppermüller
Aus: Computer Kontakt 06 / 1987, Seite

Links

Copyright-Bestimmungen: siehe Über diese Seite