Atarium: Patchen um des Patchens Willen?

Ein Betriebssystem ist ein ziemlich komplexes Stück Software - insbesondere, wenn man bedenkt, auf wieviel verschiedenen Hardwareumgebungen es laufen muß. Da sind Fehler fast programmiert.

Natürlich gilt das auch für TOS: Bislang hatte noch jede Version den einen oder anderen Fehler. Damit steht Atari allerdings nicht allein. Fehler in Betriebssystemen sind also ärgerlich, aber grundsätzlich nur schwer zu vermeiden. Wenn sie dann allerdings einmal gefunden sind, sollten sie natürlich auf schnellstem Wege beseitigt werden. Dazu gibt es mehrere Ansätze:

Häufig ist es die einfachste Lösung, das betreffende fehlerhafte Verhalten einfach als »richtig« zu dokumentieren - man paßt sich also der Realität an. Das klingt haarsträubend, finden Sie? Nun, hier kommt ein gutes Beispiel für einen Fall, in dem Atari tatsächlich so verfahren ist: Bei der BIOS-Funktion »Bcostat()« sind versehentlich die Funktionsnummern für »IKBD:« und »MIDI:« vertauscht worden. Als man es merkte, war es zu spät: Viel zu viele Programmierer hatten das Problem erkannt und sich einfach an den Stand der Dinge angepaßt. Also was tun? Man dokumentiert das, was ursprünglich ein Fehler war, als das normale Verhalten. So weiß jeder Bescheid, und alle existierenden Programme laufen problemlos weiter. Dabei ist besonders wichtig, daß dadurch im Endeffekt nirgendwo Nachteile entstehen. Zwar sind nun bei einer BIOS-Funktion zwei Konstanten verdreht, doch das ist eigentlich nur ein kosmetischer Makel.

Eine andere Möglichkeit ist, den Fehler durch ein Fixprogramm zur Strecke zu bringen. Ältestes Beispiel ist »FOLDR100.PRG«, das dem berüchtigten »40-Ordner-Fehler« den Schrecken nimmt (s. [1]). Es folgt eine Übersicht bekannter TOS-Fehler und die Fixprogramme, mit denen man sie bekämpfen kann:

Der sog. 40-Ordner-Fehler ist nach dem Effekt benannt, den er unter GEM-DOS 0.19 (s. Tabelle der TOS-Versionsnummern) hervorzurufen pflegt: Nach Öffnen von mehr als etwa 40 Ordnern (oder 100 beim Blitter-TOS) erscheinen plötzlich leere Verzeichnisse, und das System beginnt sich auch ansonsten merkwürdig zu benehmen. Abhilfe schafft das Programm FOLDR100, das mit den Atari-Festplatten ausgeliefert wird und das auch jeder Händler zur Hand haben sollte.

Technischer Hintergrund: GEM-DOS organisiert seinen eigenen Speicherbedarf über einen in seiner Größe zunächst festgelegten Speicherbereich, den sog. GEMDOS-Pool. Beim GEMDOS 0.19 kommen mehrere Probleme zusammen: Jedesmal, wenn ein Ordner geöffnet wird, verbraucht GEMDOS einen Eintrag in diesem Pool, ohne ihn beim Schließen des Ordners wieder freizugeben. Nach einiger Zeit ist aller Speicher verbraucht, und Ordner werden nicht mehr korrekt geöffnet (auch einige Probleme mit der Funktion »Malloc()« sind darauf zurückzuführen). Beim Blitter-TOS hat man versucht, das Problem einfach durch einen größeren Pool in den Griff zu bekommen. Das hat den Effekt jedoch lediglich verzögert und außerdem das freie RAM empfindlich verkleinert. FOLDR100 lindert das Problem, indem es nachträglich den Pool um 100 Einträge erweitert (die Anzahl der zusätzlichen Einträge legt man mit dem Dateinamen fest). Was bleibt, ist die Begrenzung der »Malloc()«-Aufrufe. Wenn man ein Programm benutzt, das hier Probleme bereitet (mir ist eigentlich nur der Linker von Turbo-C bekannt), sollte ebenfalls FOLDR100 benutzen - ungeachtet der TOS-Version.

So traurig es ist: Auch TOS 1.04 hat Fehler. Zwei dieser Makel hat Atari schon sehr früh bemerkt, so daß es bereits seit der Atari-Messe 1989 das Programm »TOS14FIX« gibt, das diese Fehler beseitigt. Einer der beiden Fehler betrifft die Behandlung von Pfadnamen durch das AES und tritt nur unter außergewöhnlichen Bedingungen auf. Das andere Problem betrifft den nicht mehr funktionierenden RTS/CTS-Modus der seriellen Schnittstelle. Beide Macken sind für die meisten Anwender weniger ernster Natur. Nachdem keiner der weltweit testenden Entwickler einen der Fehler rechtzeitig gefunden hatte, wurde er durch Atari prompt beseitigt (sogar noch vor der eigentlichen Auslieferung!). TOS14FIX brauchen Sie nur dann, wenn Sie TOS 1.04 verwenden.

Im TOS 1.06 des STE sind die beiden oben genannten Fehler von TOS 1.04 natürlich getilgt. Dummerweise hat sich allerdings ein neuer Fehler eingeschlichen, der dazu führt, daß sich der Desktop bei »Arbeit sichern« nicht richtig merkt, ob nun in geringer oder in mittlerer Auflösung gearbeitet werden soll. Diese Schwäche (die es nur im TOS 1.06, nicht aber im TOS 1.62 oder TOS 2.05 des STE gibt) wird durch das Programm »STE_FIX« behoben.

Bei der Verwaltung des GEMDOS-Pools gibt es allerdings noch ein weiteres Problem, das eng mit dem 40-Ordner-Problem (siehe oben) verbunden ist. TOS 1.04 und neuere TOS-Versionen verwalten den GEMDOS-Pool intelligenter; dazu gehört unter anderem die automatische Reorganisation dieses Speichers. Letztere geht dummerweise unter sehr selten auftretenden Umständen in die Hose: TOS meldet sich dann mit »OUT OF INTERNAL MEMORY, USE FOLDR100 TO GET MORE, SYSTEM HALTED«. Eine Bruchstelle, die das Programm »POOLFIX3« (für TOS 1.04 und TOS 1.06) beseitigt (das im übrigen selbst feststellt, ob man es braucht oder nicht).

Dann gibt es noch den sog. »VDI-Handle-Fehler«. Dieser wurde erst im Herbst 1989 entdeckt (siehe [2]) und tritt pikanterweise in allen TOS-Versionen bis auf das Blitter-TOS und das TT-TOS auf. Er führt dazu, daß das VDI mit seinen Workstation-Attributen durcheinander kommt und sich die Programme gegenseitig ihre Parameter verstellen. Man erkennt das meistens daran, daß plötzlich völlig unmotiviert Zeichen im falschen Zeichensatz oder falsch positioniert ausgegeben werden. Wenn das passiert, sollten Sie sich das Programm »VDI_FIX« von Karsten Isakovic besorgen (kein offizielles Atari-Programm!).

So viel zu den Fehlern in den TOS-Versionen der STs und STEs. Tatsächlich gibt es natürlich noch eine Reihe anderer Probleme, die allerdings für die meisten Anwender kaum von Interesse sind (Ein- und Ausgabeumlenkung). Seit TOS 1.04 gibt es keine bekannten Fehler mehr, die zu Datenverlusten auf Diskette oder Festplatte führen können!

Wenn man Atari Vorwürfe machen muß, dann folgende:

Seit dem letzten Jahr hat sich bei Atari vieles zum Besseren hin verändert. Zu den bekannten Problemen im TOS 3.01 gehört der »PTSIN-Fehler«, den wir in [3] beschrieben haben. Zum Glück tritt er nur in Zusammenhang mit einigen speziellen Programmen auf. Auch hier die Kritik an Atari: Es gibt kein offizielles Fixprogramm von Atari, das man beim Fachhändler um die Ecke bekommen könnte. Diese und andere Schwächen sind im TOS 3.05 beseitigt worden. Leider sucht man es zur Zeit in ausgelieferten TTs vergeblich - wie lange noch?

Vielen Atari-Anwendern scheint der Gedanke, daß TOS nicht perfekt ist, erhebliches Kopfzerbrechen zu bereiten - selbst dann, wenn sie die Probleme mit Hilfe der Fixprogramme kurieren können. Resultat (oder etwa Ursache?) sind die sog. TOS-Patches, wie man sie immer wieder in Fachzeitschriften entdecken kann. Die Theorie ist eigentlich einfach: Wenn man den Fehler direkt im Betriebssystemcode beseitigt und in EPROMs brennt, braucht man sich nicht mehr den Kopf über Fixprogramme zu zerbrechen. Die Realität sieht allerdings häufig ganz anders aus: Oft haben die vorgenommenen Änderungen Nebeneffekte, an die der Autor nicht gedacht hat (oder die ihm möglicherweise nicht wichtig waren). Häufige Folge ist, daß Programme nicht genau das tun, was sie sollen oder gar abstürzen. Mit einem solchen Problem steht man dann plötzlich ziemlich allein da: Der Softwarehersteller kann den Fehler nicht nachvollziehen und wird ihn deshalb wahrscheinlich nicht beseitigen können (oder wollen) - wenn es nicht gar ein Fehler im Patch ist. Um es noch einmal klar zu sagen: Wer ein gepatchtes TOS im Rechner hat, muß damit rechnen, daß im Fehlerfall keine Hotline weit und breit helfen wird!

Sind die Patches nicht im ROM, sondern in AUTO-Ordner-Programmen untergebracht, sieht's gleich ganz anders aus: Man kann jedes einzelne Patch-Programm wieder entfernen (oder durch eine korrigierte Version ersetzen). Mein Rat lautet: Finger weg von gepatchten TOS-Versionen! Die Probleme können ebensogut mit den (vorhandenen!) Fixprogrammen beseitigt werden.

Womit wir bei einem Thema angelangt sind, daß das ST-Magazin seit Monaten in Atem hält: »KAOS«. KAOS ist eine Modifikation von TOS 1.04, die bekannte Fehler zu beseitigen verspricht und über eine gehörige Zahl von Verbesserungen verfügen soll. Ein paar technische Bemerkungen:

Doch Schluß mit der technischen Diskussion (die ich gerne fortsetze, sobald eine vollständige und exakte Dokumentation der am TOS 1.04 vorgenommenen Änderungen vorliegt). Zunächst muß man feststellen, daß KAOS eine Modifikation von TOS 1.04 ist und daher auf STE, Mega STE und TT nicht eingesetzt werden kann. Wer also noch eine ältere TOS-Version hat, muß sowieso TOS 1.04 für 198 DM erwerben (was übrigens sowieso eine gute Idee ist!). Wer KAOS einsetzen will, muß zusätzlich 65 DM (ab 1. Juli: 89 DM) für das Patch-Programm und etwa 60 DM für EPROMs auf den Tisch legen, die damit natürlich noch längst nicht eingebaut sind.

Wer KAOS installiert hat, sollte TOS 1.04 besser behalten - nicht nur, weil ein eventueller Weiterverkauf der ROMs eine Urheberrechtsverletzung wäre. Nein auch bei eventuellen Problemen sollte man das Originalbetriebssystem wieder installieren können. Während der CeBIT hat sich gezeigt, daß die meisten Softwarehersteller ein gehöriges Maß Skepsis gegenüber KAOS hegen. Der Grund: Probleme mit Inkompatibilitäten sind bereits jetzt vorauszusehen. Manche Entwickler spielten sogar mit dem Gedanken, unter KAOS zu Programmstart eine entsprechende Alert-Box erscheinen zu lassen. Soll das nun heißen, daß man am TOS gar nichts ändern kann und auf Gedeih und Verderb auf die Produkte aus Sunnyvale angewiesen ist? Mitnichten!

Wer einen neuen TOS-Fehler gefunden zu haben glaubt, sollte sich zunächst beim Software-Support von Atari Deutschland melden. Falls der Fehler tatsächlich einer ist, wird er mit einiger Wahrscheinlichkeit in künftigen TOS-Versionen beseitigt werden. Ist er ernsthafter Natur, wird es ein Fixprogramm geben. Wer auch nach mehrmaliger Nachfrage den Eindruck hat, daß bei Atari nichts unternommen wird, kann sich immer noch an eine der Fachzeitschriften wenden. Wer lieber einen Schnitt machen und komplette Betriebssystemteile ersetzen möchte, kann auch dies problemlos tun. Ein paar Beispiele:

Alle diese Betriebssystemmodifikationen haben eines gemeinsam: Man kann sie im Zweifelsfall leicht entfernen (und Softwareentwickler können sie zu Testzwecken mal eben schnell installieren). Das geht mit KAOS leider nicht. Sieht man KAOS als Patch für TOS 1.04, muß man sich die Frage stellen, warum man es dann nicht als KAOS.PRG in den AUTO-Ordner kopieren kann. Rechtliche Probleme mit Atari: definitiv nicht!

Nun hört man, KAOS verbessere einige Betriebssystemschichten in einem Maß, das über einen Patch hinausgeht. Dabei wird in erster Linie das stark verbesserte GEM-DOS genannt. Daher meine Frage: Warum kein KAOS-DOS.PRG für den AUTO-Ordner? Kurz vor Redaktionsschluß hat uns noch folgende Nachricht erreicht: TOS 3.01 und TOS 3.05 weisen bei der Behandlung des RTS/CTS-Protokolls einen Fehler auf, der eigentlich nur bei Betrieb von High-Speed-Modems oder Druckern auftritt. Er wird durch das Programm »SERPTCH.PRG« behoben, das Interessierte bei Atari-Händlern und in Mailboxen bekommen können.

(uw)

os-version alt neu Name GEMDOS Datum
0x0100 1.0 1.00

altes TOS

0.19 06.02.1986
0x0102 1.2 1.02

Blitter-TOS

0.19 22.04.1987
0x0104 1.4 1.04

Rainbow-TOS

0.21 06.04.1989
0x0106 1.6 1.06

STE-TOS

0.21 29.07.1989
0X0162 1.62

STE-TOS

0.23
0x0205 2.05

Mega STE-TOS

0.25 05.12.1990
0x0301 3.1 3.01

TOS 030

0.25 29.08.1990

Liste der offiziellen TOS- Versionen

Quellennachweis:

[1] Julian F. Reschke, »TOS-Probleme: Fix as fix can«, ST-Magazin 7/1991, Seite 107

[2] Julian F. Reschke, »Zum 25, Mal: unser Atarium«, ST-Magazin 1/1990, Seite 56

[3] Julian F. Reschke, »Accessories - Programme zweiter Klasse«, ST-Magazin 3/1991, Seite 58

[4] Egbert Meyer, »Kaos 1.4.2: Nachbrenner für GEM-Dialoge«, ST-Magazin 1/1991, S. 48


Julian F. Reschke
Aus: ST-Magazin 06 / 1991, Seite

Links

Copyright-Bestimmungen: siehe Über diese Seite