Betriebssystem-News -- CAOS 4.4
von Mario Leubner
CAOS 4.3 hat sich mittlerweile fast zum Standard-Betriebssystem des KC85/4 entwickelt. Seit 1995 wurde daran auch nichts mehr geändert. Umsomehr verwundert es, daß erst jetzt ein (wenn auch kleiner) Fehler bemerkt wurde: Der Fehler betrifft die Initialisierung der CAOS-Arbeitszellen für den Kassettenpuffer. Normalerweise steht in IX+5/6 der Wert von B700H. Bei CAOS 4.3 wurde der Wert vom Power-On-Reset (also beim Einschalten des KC) nicht auf den Wert gesetzt. Die Folge: BASIC kann mittels CLOAD keine Programme einlesen, zumindest solange der Wert nicht gesetzt ist. Bei MC-Programmen, die mit %LOAD eingelesen werden, gibt es keine Probleme da der Wert B700H jedesmal am Anfang neu gesetzt wird und. Mit D004 und Einlesen der BASIC-Programme von Diskette/Festplatte tritt der Fehler auch nicht auf, da BASEX die Routinen ersetzt.
Da die meisten inzwischen ein D004 besitzen und CAOS 4.3 auch oder vor allem wegen der fest integrierten Diskettenroutinen einsetzen, hat wohl noch niemand den Fehler ernsthaft bemerkt. Aufmerksam gemacht hat mich Frank Ludwig, der Entwickler eines KC-Emulators. Und dort tritt das Problem natürlich häufiger auf, weil der Emulator ja die Kassettenschnittstelle emuliert. An dieser Stelle noch einmal herzlichen Dank an Frank Ludwig für seinen Hinweis. Wer den Emulator nicht kennt, hier die Homepage:
Ich finde diesen Emulator wirklich gut. Er läuft unter Windows in einem DOS-Fenster, besser jedoch im reinen DOS-Modus ohne Windows im Hintergrund.
Nun habe ich den Fehler in CAOS 4.3 beseitigt. Außerdem habe ich das M051 (Enricos Scanner-Modul) in die Modul-Liste aufgenommen.
Eine weitere Verbesserung gibt es bei den V.24-Interrupt-Routinen: Bisher wurde das erste gefundene M003 eingeschalten und initialisiert. Alle Interrupt-Routinen, z.B. für die externe Tastatur gingen davon aus, daß das Modul an ist. Jetzt könnte man ja auch mehrere V.24-Module stecken und will natürlich diese auch verwenden! Frank Dachselt hat z.B. einen Koppeltreiber für CP/M geschrieben, der die 3. und 4. COM-Schnittstelle, also das 2. V.24-Modul verwendet. Dazu wird logischerweise das erste V.24-Modul abgeschalten und wenn dort eine Tastatur dran hängt, geht natürlich nichts mehr! Mit der Änderung wird jetzt ebenfalls das erste M003 gesucht, eingeschalten und initialisiert. Statt aber wie bisher auf der Adresse A800H nur einzutragen ob es ein V.24-Modul im System gibt (1) oder nicht (0), trage ich dort den Modulsteckplatz ein. Die Interrupt-Routinen des Betriebssystems können jetzt also ohne Probleme nachsehen, welches Modul benutzt wird, und schalten es bei Bedarf ein. Einziger Haken an der Sache: Wenn ein Programm die Speicherzelle A800H verändert, dann denkt CAOS natürlich das ist der Steckplatz des V.24-Moduls und schaltet innerhalb der Interrupt-Routine das Modul mit dem Steckplatz des auf A800H eingetragenen Wertes. Das dürfte hauptsächlich bei Programmen vom KC85/3 auftreten, die direkt den IRM beschreiben. (Zur Erinnerung: Beim KC85/3 beginnt der Farb-Attribut-Speicher auf A800H.)
Es sollte eigentlich noch eine weitere Ergänzung geben: Alle reden vom Euro, und ich wollte das Euro-Symbol gern im Zeichensatz des KC unterbringen. Das Zeichen ist bereits entworfen und auch die Tastenkombination, mit der das Zeichen aufgerufen wird, liegt bereits fest: ESC-E (Shift-Stop + E). Aber welchen Zeichencode verwenden wir für das Euro-Symbol? Die niedrigen Codes von 0 bis 127 (7FH) sind seit Anfang an von CAOS belegt, eine Änderung würde alte Programme beeinflussen. Im erweiterten IBM-Zeichensatz, der der Codepage PC-437 entspricht, ist das Euro-Symbol ebenfalls nicht vorgesehen. Und wie druckt man das Zeichen aus? Der beste Kompromiß ist meiner Meinung nach der Zeichencode EEh, das Zeichen sieht ja dem Euro-Symbol schon ähnlich und beim Ausdruck auf Druckern die diesen Zeichensatz verwenden, kann man zumindest ahnen was gemeint ist. Aber es ist eben zu nichts kompatibel! Man kann sich ja auch behelfen durch Ausdruck eines C oder der geöffneten Klammer und anschließend mit einem "=" überdrucken. Oder man schreibt einfach die Zeichenfolge "EUR"! Also bleibt erst einmal alles wie gehabt.
Mehr wurde nicht geändert, aber da es gegenüber CAOS 4.3 jede Menge Adressverschiebungen innerhalb des ROM-Bereiches gibt, habe ich es CAOS 4.4 genannt. Wer sich selbst EPROMs neu brennen will: Die neuen Dateien findet Ihr auf der heutigen Beilagendiskette. Zum Clubtreffen in Pechtelsgrün werde ich auf alle Fälle meinen EPROM-Brenner mitbringen.
Und noch etwas in dieser Richtung. Es wurde ebenfalls von Frank Ludwig bemerkt: Die Datei USERC34.KCC die ich weitergegeben hatte, also der Inhalt des USER-ROM-C ist fehlerhaft gewesen. Alle EPROMs, die ich direkt aus meinem KC gebrannt habe, sind in Ordnung. Aber wer mittels dieser Datei einen EPROM selbst brennen wollte, der hat kein lauffähiges BASIC erhalten. An dieser Stelle meine Entschuldigung an alle die damit Probleme hatten. Und die korrigierte, fehlerfreie Datei findet Ihr ebenfalls im Archiv von CAOS 4.4 (sie ist übrigens nicht geändert und ebenso für CAOS 4.3 und CAOS 4.4 gültig).