Kramer, Riebl, Hübner Das TOS-Listing Band 1 BIOS-GEMDOS-VDI Heise Verlag, 368 Seiten DM 68,-
Das Buch besteht hauptsächlich aus dokumentierten Listings von Teilen des TOS, sowie aus einer Einführung in die Arbeitsweise des GEMDOS. Es richtet sich damit an die fortgeschrittenen Programmierer und muß sich an deren Ansprüchen messen lassen. Zu den Listings ein paar allgemeine Bemerkungen: Positiv zu bewerten ist, daß sie sich alle auf das Blitter-TOS beziehen, was sie gerade für MEGA-ST-Besitzer interessant macht. Aber auch für Benutzer des alten TOS sind sie sicher brauchbar, da damit zu rechnen ist, daß sich das neue TOS auf lange Sicht durchsetzen wird.
Die Kommentare sind zahlreich bemessen und die Listings strukturiert, d.h. der Beginn von Funktionen ist hervorgehoben, oft mit Angaben über Register oder Parameter. Ärgerlich sind nur die vielen Druckfehler, angefangen von der Rechtschreibung bis zu fehlerhaften Adressen im Disassembling (!) und vertauschten Zeichen (wie “$” und “#”), was zu großen Mißverständnissen führen kann. In den ‘C’-Listings finden sich manchmal noch direkte Adressen an Stelle von Variablennamen. Dies alles deutet darauf hin, daß die Listings nur unvollständig ediert wurden.
Bei der Bezeichnung von Funktionen und Variablen wurden schon veröffentlichte Namensgebungen übernommen, was zu loben ist. Bei den Systemvariablen (dokumentierte und undokumentierte), von denen eine -allerdings unvollständige - Liste vorhanden ist, wurden oft fantasielose Namen wie “L8846” vergeben. Ungünstig ist auch, daß oft Adressen durch symbolische Bezeichnungen ersetzt wurden, aber der Assemblercode selbst fehlt. So sind Verzweigungen öfters nicht nachvollziehbar. Es wäre sicher besser gewesen, direkte Adressen und Symbole anzugeben. Das BIOS-Listing ist der umfangreichste Teil des Buches. Deutliche Ähnlichkeiten mit einem anderen bekannten BIOS-Listing sind nicht zu verleugnen, einige der dort vorhandenen falschen Kommentare sind korrigiert, andere hingegen wortwörtlich identisch!
Praktisch ist, daß die in ‘C’ programmierten Routinen des BIOS auch als ‘C’-Listing vorhanden sind, was das Verständnis erleichtert.
Garniert ist die BIOS-Dokumentation mit einigen nützlichen Extras wie Listings des RAM-TOS-Boot-Sektors oder der Desktop-Formatierroutine. Auch eine Anleitung zur Programmierung resetresidenter Programme wurde ergänzt.
Die Einführung in GEMDOS umfaßt wesentliche, aber knappe Informationen über dessen innere Struktur. Sie ist wohl nur als Ergänzung zum eigentlichen Listing zu verstehen, dabei aber sicher hilfreich, da GEMDOS im Detail nicht so einfach zu durchschauen ist.
Bei der vorgenommenen Bewertung des GEMDOS kann ich Herrn Kramer allerdings nicht folgen. So werden GEMDOS nur wenige konzeptionelle Schwächen attestiert während den vielen Fehlern nur eine (!) Seite gewidmet wird. Über die dort behauptete Quasi-Fehlerfreiheit kann man nur staunen, wenn man seine eigenen Programmiererfahrungen mit GEMDOS betrachtet.
Das Listing ist, wie GEMDOS selbst, in ‘C’ verfaßt, d.h. es wurde per Hand “rekompiliert”. Es ist ausreichend kommentiert und hat sogar eine Referenztabelle für die einzelnen Funktionen und Variablen. Es wurden bisher keine groben Fehler festgestellt, nur wurden bei der Kommentierung oft selbst sehr offensichtliche Programmierfehler übersehen. Es dürfte einem große Einblicke in die Funktionsweise von GEMDOS geben. Das sogenannte “VDI-Listing” verdient diesen Titel nicht. Auf 40 Seiten findet sich nämlich nur das Listing (Assembler) einer guten Hälfte der “Line A-Routinen” und ganz weniger VDI-Funktionen. Darin sind zwar die neuen Blitter-Routinen enthalten, was sicher für die Blitter-Programmierung nützlich sein dürfte; das eigentliche VDI jedoch fehlt praktisch! Wie in jedem in letzter Zeit neu erschienenen Buch gibt es eine Dokumentation zum Blitter, wie gewohnt in Anlehnung an die Atari-Blitter-Dokumentation.
Ferner enthält das Buch auch ein Listing des Atari-Harddisk-Treibers, der zwar nicht zum TOS gehört, aber dessen Studium doch recht interessant und lehrreich sein kann. Obwohl am kürzesten, gefällt mir dieses Listing mit Abstand am besten. Es ist englisch, dafür aber sehr schön kommentiert und weist mit Witz auf die auch hier unvermeidbaren Programmierfehler hin. Es beinhaltet ebenfalls eine leicht verständliche Erläuterung der einzelnen Komponenten der Harddisk und deren Zusammenwirken.
Zusammenfassend ist zu sagen, daß sich das Buch wohl für jemanden lohnen könnte, der noch über kein BIOS-Listing verfügt oder besonderes Interesse am GEMDOS, dem Harddisk-Treiber oder der Blitter-Programmierung hat, vorausgesetzt, er ist in der Lage, mit den offensichtlichen Fehlem zurechtzukommen. Aufgrund der zahlreichen Ungereimtheiten sollte man jedoch nicht sein altes BIOS-Listing wegschmeißen und sich dieses kaufen, besonders nicht in Anbetracht des nicht gerade geringen Preises.
Andererseits kann man froh sein, daß es überhaupt veröffentlichte Listings vom GEMDOS und Harddisk-Treiber gibt, und das sogar für das Blitter-TOS.
Alex Esser
Batz, Huschke Sortierverfahren in Pascal Franzis’ Verlag, München 80 Seiten, 1. Auflage 1988 DM 28,-
Bei den meisten Programmieraufgaben benötigt man sortierte Daten. Dies stellt bei kleinen Datenmengen kein großes Problem dar, denn jeder wird ohne viel Nachdenken den Bubble-Sort-Algorithmus einsetzen können. Werden die Datenmengen jedoch größer, benötigt dieses Verfahren sehr viel Zeit. Abhilfe schaffen dann die effizienter arbeitenden Algorithmen wie Shell/Metzner-Sort, Heap-Sort oder der bekannte Quicksort. Das Buch beginnt mit einer kleinen Einführung über Zeiger und Re-kursion in Pascal. Danach werden die einfacheren Sortieralgorithmen vorgestellt, von denen jedoch nur der Shell-Sort sinnvoll erscheint. Interessanter sind natürlich die Versionen des Heap- und Quicksort, von denen das nächste Kapitel handelt. Leider ist jedoch die Erklärung des Quicksorts sehr kurz ausgefallen, obwohl dieses Verfahren erwiesenermaßen das schnellste ist. Apropos Geschwindigkeit, vergeblich sucht man einen Zeitvergleich der vorgestellten Programme, und auch die Berechnungsformeln für die Anzahl der Durchläufe werden nicht angegeben. Auffallend ist auch, daß die einfachen Verfahren in fast allen Variationen aufgeführt werden, bei den fortgeschrittenen jedoch optimierte wie z.B. Supershell oder das Shell-Metzner-Verfahren unerwähnt bleiben. Ähnliche Schwächen zeigt auch das abschließende Kapitel über Suchbäume auf. Die Dokumentation ist ziemlich unglücklich gewählt, außerdem fehlen hier, wie im gesamten Buch, Struktogramme der vorgestellten Routinen. Auch auf ein Beispielprogramm hat man verzichtet.
Das Buch kann nur für Einsteiger empfohlen werden, die in erster Linie einen der vorgestellten Sortier-Algorithmen in Pascal benutzen wollen, aber dafür ist das Buch zu teuer. Für Interessierte fehlen Struktogramme, Geschwindigkeitsbetrachtungen und nähere Erläuterungen zu den Algorithmen.
Markus Nerding