“Zücken Sie den Schraubendreher und werfen Sie Ihren Lötkolben schon mal an...” - So sollte eigentlich diese Folge der Artikelserie um die Festplatte anfangen. Da Sie dann aber noch einen Monat auf die notwendige Information zur Software hätten warten müssen, ziehe ich diese vor, damit wir uns in der nächsten (und letzten) Folge ausschließlich um den Umbau kümmern können.
In der letzten Ausgabe haben Sie die Verbindung zwischen dem ATARI-ST und der Festplatte in Form des Hostadapters kennengelernt. Damit allein läßt sich die SH-204 oder SH-205 aber nicht betreiben, da das Betriebssystem keine softwaremäßige Unterstützung bereitstellt. Hierzu wird bei den Festplatten eine Bootdiskette mitgeliefert, deren Inhalt wir uns jetzt näher ansehen wollen. Bei der SH-204 waren folgende Programme auf der Diskette:
AUTO Ordner
HDX .PRG 38036 Bytes
HDX . RSC 4576
SHIP .PRG 2292
WINCAP 1408
Bei der SH-205 sind noch einige dazugekommen, der Vollständigkeit halber liste ich sie noch einmal alle auf:
AUTO Ordner
204BOOT .IMG 512 Bytes
204ROOT .IMG 512
DIRSLEFT.PRG 357
DIRSLEFT.TOS 416
FOLDR100.PRG 820
HDX .PRG 38036
HDX .RSC 4576
HINSTALL.PRG 19847
HINSTALL.RSC 912
SHIP .PRG 206
WINCAP 1492
Im AUTO-Ordner selbst sollte sich das AHDI.PRG befinden, das in der letzten Version eine Größe von 3806 Bytes hat. Gegenüber der Programmversion, die bei der SH-204 mitgeliefert wurde, hat sich ein Byte geändert, was aber nicht durch eine andere Programmgröße erkennbar ist. Dadurch kommt es zu einer falschen Abfrage nach den zulässigen TOS-Versionen - normalerweise bereitet das aber keine Probleme.
Das AHDI.PRG ist Teil des Interfaces zwischen dem ST und dem Festplatten-Controller. Die Hardware des Hostadapters habe ich in der letzten Folge erklärt. Die Software übernimmt die Kontrolle des DMA-Chips für die Arbeit mit der Festplatte und beinhaltet noch zwei Routinen für die Formatierung. Diese Teile werden aber im normalen Betrieb nicht benutzt, entweder kommen sie speziell beim Formatkommando an die Festplatte zum Zuge, oder sie sind einfach Überbleibsel aus der Urzeit, als noch mit anderen Controllern experimentiert wurde, und man das Laufwerk (durch Formatierung) erst zum Leben erwecken mußte. Dafür spricht, daß in den ersten Listings nur der Format-und der Test-Unit-Ready-Befehl auftauchen...
Wenn das AHDI.PRG (nachfolgend der Einfachheit halber Treiber genannt) startet, fragt es als erstes an allen acht möglichen Geräten am ACSI-Port nach, ob es sich dabei vielleicht um eine Festplatte handelt. Ist dies nicht der Fall, dann installiert sich der Treiber nicht und bricht den weiteren Programmverlauf ab. Wenn eine Festplatte durch einen gemeldeten Root-Sektor erkennbar ist, werden der Treiber fest installiert und die zuständigen Systemvektoren, mit denen in Programmen dann auf solche externen Geräte zugegriffen wird, auf die jeweiligen Einstiegspunkte in den Treiber umgelenkt. Bei einem Aufruf über diese Vektoren klärt der Treiber jetzt seine Zuständigkeit ab, um im Falle der Nichtzuständigkeit die Anfrage abzuweisen und den Aufrufenden freundlich auf dem normalen Dienstweg weiterzuschicken. Im anderen Fall setzt er je nach Art der Anfrage die zuständigen Register des DMA-Chip und steuert den weiteren Datenaustausch zwischen ST und Festplatte.
Da die Festplatte vom Betriebssystem im Gegensatz zum Floppy 1 aufwerk recht stiefmütterlich behandelt wird, müssen für die notwendigen Voreinstellungen separate Programme herhalten. Das HDX.PRG mit dem zugehörigen Resource-File und dem WINCAP-File ist dabei mit das wichtigste.
Wir haben in einer der ersten Folgen meines Kurses bereits gesehen, daß die Festplatte ebenso wie eine Diskette vor Inbetriebnahme formatiert werden muß. Neben dieser Aufgabe erledigt das HDX-Programm mehr schlecht als recht noch weitere Dinge. Durch die Seelenverwandtschaft zu MS-DOS kann - nein, könnte das Betriebssystem des STs nur Partitions bis 32 MByte verwalten. Durch einen Fehler im Betriebssystem sind bei den alten ST aber nur Partition-Größen bis 16 MByte erlaubt; in den Mega-ST-Computern soll der Fehler aber behoben sein?!
Eine Partition ist ein definierter Abschnitt auf der Platte, der vom Betriebssystem als eigenständiges Laufwerk interpretiert wird - wieder vergleichbar mit einer Schallplatte, auf der z.B. eine Oper komplett enthalten ist, die einzelnen Akte durch die optische Trennung aber auffindbar sind und separat angespielt werden können.
Diese Aufteilung in Partitions übernimmt ein Menüpunkt im HDX-Programm. Dabei werden über das WINCAP-File vordefinierte Aufteilungen bereitgestellt. Dieses WIN-CAP ist so interessant, daß ich mich in einem separaten Artikel - dort aber ausführlich - damit beschäftige (wenn es in der Setzerei keine Probleme gegeben hat, müßte er eigentlich im Anschluß an diesen Artikel zu finden sein).
Sehen wir uns jetzt noch die beiden restlichen Menüpunkte an. Mit ZERO können Sie jede Partition für sich logisch löschen. Das ist deshalb interessant, weil Sie sonst nur die Möglichkeit hätten, die Platte neu zu formatieren und zu partitionieren. Allerdings habe ich persönlich diesen Programmpunkt noch kein einziges Mal benutzt...
Der letzte Menüpunkt wäre einer der wichtigsten - wäre, wenn er funktionieren würde. Ich glaube, selbst bei einem Laufwerk, aus dem man die Platten entfernt hat, würde dieser Programmteil 0 Fehler melden. Er sollte normalerweise das Laufwerk probelesen - was er auch macht - und dann bei einem auftretenden Read-Error diesen Sektor als defekt markieren und in der FAT als belegt kennzeichnen. Die Summe der Fehler sollte zusätzlich in einem Eintrag in der Spur 0 vermerkt werden, damit dem Laufwerk bei der Initialisierung diese Informationen zur Verfügung stehen. Denkste! Ich habe auf meiner Festplatte echte fehlerhafte Stellen, an denen der Kopfschlitten - natürlich nicht mechanisch - hängen bleibt; in meiner Defektliste (also die vom Laufwerk...) aber lautet der Fehlereintrag: 0 Fehler.
Fast jeder Controller stellt eine viel interessantere Fehlerbehandlung bereit. Dazu muß nach dem ersten Formatieren die Platte auf Fehler untersucht werden. Auf dem Deckel des Laufwerkes sind bereits diejenigen Defekte eingetragen, die bei der Herstellung der Platte gefunden wurden.
Freuen Sie sich, wenn dort “None” steht, dann ist Ihre Platte fehlerfrei. Ansonsten sind pro MByte Kapazität ein Fehler zulässig, bei der Bruttokapazität der TM-262 von 25 MByte wären das max. 25 fehlerhafte Stellen.
Die so definierten Fehler werden nach einem bestimmten Muster in eine Defekt-Liste eingetragen. Diese darf bis zu 1024 Bytes lang sein. Mit dieser Defekt-Liste wird ein zweites Mal formatiert. Dabei versucht der Controller, die angegebenen Fehlerstellen zu umgehen, indem er innerhalb einer Spur die Information verrückt. Reicht der Platz hierzu nicht aus, setzt der Controller alle nachfolgenden Spuren um eine logische Adresse weiter und gibt dieser Stelle jetzt die Nummer, welche vorher eigentlich den Defekt adressierte. Damit bleibt die logische Reihenfolge der Blöcke erhalten; die defekte Stelle auf der Platte ist einfach nicht mehr vorhanden. Dadurch verschiebt sich natürlich auch das logische Ende der Festplatte. Das wiederum ist durch einen Sicherheitsbereich möglich, da die Angabe über die maximale Zylinderzahl vom Hersteller sehr vorsichtig berechnet wird (kommen Ihnen da nicht schon Ideen zur Vergrößerung der Festplattenkapazität?!).
Wie aufwendig Festplattenlaufwerke aufgebaut sind, haben Sie in der ersten Folge bereits erfahren. Wenn Sie sich dabei noch an die Problematik um den Kopfschlitten und dessen Bändigung erinnern - nun, mit dem SHIP.PRG wird die Sicherstellung des Kopfschlittens vor dem Abschalten erreicht. Dazu muß aber unbedingt bemerkt werden, daß hiermit nur der Schlitten in eine Landezone außerhalb des Datenbereiches gefahren wird! Die Köpfe landen also nach wie vor auf der Platte selbst. Ein sogenannter Headlifter findet sich in der Regel nur bei teureren Laufwerken. Die Landezone bei dem TM-262 ist lt. Handbuch auf dem Zylinder #663 -zum normalen Formatbereich bis Zylinder #612 besteht also ein übergroßer Sicherheitsabstand. Wenn Sie sich noch einmal die beiden o.g. Inhalte der Boot-Disketten betrachten, wird Ihnen sicherlich die unterschiedliche Größe der SHIP-Programme auffallen - beide bewirken aber denselben Effekt! Die alte Routine war wohl noch in C geschrieben und enthält wiederum viele (unnütze) Teile aus der Entwicklungszeit. Das neue SHIP.PRG mit 206 Bytes ist ein reines Assemblerprogramm und erledigt seine Aufgabe ebenso akkurat. Diese Programme sollten normalerweise vor jedem Ausschalten und müssen vor jeder Bewegung (z.B. Transport) benutzt werden - es wäre doch zu schade, wenn Sie Ihre Festplatte nach dem Umzug nur deshalb wegschmeißen müßten, weil die Köpfe im Ausschaltmoment zufällig über Spur 0 standen und dort dann mal eben ein paar Bits abgekratzt haben...
Die Programme DIRSLEFT.TOS, DIRSLEFT.PRG und FOLDERXXX. PRG sind Hilfsprogramme, die das bekannte 40-Ordner-Problem in den Griff bekommen sollen. Doch worum geht es bei diesem Problem überhaupt? Der ATARI-ST legt sich bei einem Zugriff auf einen Datenträger in Form einer Diskette oder der Festplatte eine Tabelle an, in der nach dem jeweilig ersten Aufruf die Ordner mit ihrem zugehörigen Pfad eingetragen werden. Das ist deshalb notwendig, da ja nur die ersten Ordner im Original-Directory - also in Spur 0 der Diskette - stehen. Alle weiteren Verzweigungen befinden sich wie die anderen Daten irgendwo auf dem Datenträger. Würde der ATARI-ST jetzt ohne diese Tabelle arbeiten, müßte er für jeden Zugriff auf bestimmte, in verschlungenen Pfaden angelegte, Daten zuerst wieder in Spur 0 auf den ersten Ordner zugreifen, dann auf den zweiten usw. Mit dieser Tabelle spart er sich Arbeit und Zeit und kann sich jederzeit über die einzelnen Pfade informieren. Bei der Entwicklung ist man wohl von der Überlegung ausgegangen, daß auf einer Diskette kaum mehr als 40 Pfade notwendig wären. Deswegen wird diese Tabelle auch erst gelöscht, wenn ein Diskettenwechsel erfolgt ist, vorher oder hinterher hätte das ja auch wenig Sinn - nur, wie bitteschön wollen Sie bei der ATARI-Festplatte einen Mediawechsel bewerkstelligen? Hier haben die Herren Programmierer wohl nicht zu Ende gedacht. Aber wozu sind Programmierer sonst Programmierer, wenn sie sich nicht hinsetzten und flugs ein kleines Progrämmchen zimmerten, das das Problem an sich zwar nicht beseitigt aber doch recht geschickt vertuscht. Mit dem FOLDRXXX.PRG wird einfach ein gewisser - nicht gerade kleiner -Speicherbereich für eine größere Tabelle reserviert. Das XXX im Programmnamen können Sie selbst durch die von Ihnen gewünschte zusätzliche Anzahl von Ordnerpfaden ersetzen; wenn Sie also der Meinung sind, daß Sie mindestens 400 Ordnerpfade bei einer Sitzung am ST benötigen - bitte sehr, mit der Umbenennung in FOLDR400.PRG ist das kein Problem. Aber wie üblich kostet Sie das eine Kleinigkeit, nämlich 52800 Bytes Ihres kostbaren Speichers! Das Programm kann auch nachträglich aufgerufen werden, es muß aber im AUTO-Ordner stehen.
Wenn Sie sich nicht sicher sind, ob Sie das Programm benötigen, sehen Sie sich doch mit DIRSLEFT die verbleibende Anzahl der Ordner an. Probieren Sie ruhig ein bißchen damit herum. Sie erkennen dann selbst sehr schnell, wieviel Pfade Sie zusätzlich gebrauchen können. Um es noch einmal klarzustellen: Ordner auf der Festplatte können Sie soviel wie nötig anlegen (natürlich durch die Kapazität begrenzt) - nur wenn Sie in alle während einer Sitzung mal hineinschauen wollen...
Sollten Sie das FOLDRXXX.PRG noch nicht besitzen - dafür aber der stolze Besitzer eines Akkustikkopplers sein - so können Sie dieses Programm und auch die neuen Treiber über die ATARI-Mailbox abrufen.
Da der oben beschriebene Treiber für die Festplatte nicht im Betriebssystem Ihres STs integriert ist, muß er beim Einschalten jedesmal neu aufgerufen werden. Die normale und langsame Arbeitsweise ist das Benutzen der Boot-Diskette, in deren AUTO-Ordner sich das AHDI.PRG befinden muß. Aber warum soll - was bei der Diskette ja funktioniert - nicht auch die Platte autobootfähig sein? Sieht man sich einmal die Initialisierungsroutinen des Betriebssystem an, so findet man dort tatsächlich eine Abfrage nach einer bootbaren Festplatte. Nur - um mit der Festplatte arbeiten zu können, muß doch der Treiber installiert sein, oder?!
Die Festplatte besitzt in Spur Null -ebenso wie die Diskette - einen Bootsektor, aus dem ein Programm geladen und gestartet werden kann. Außerdem befindet sich hier noch die Information über die Aufteilung der Platte in Partitions, die Größe der Partitions mit ihren zugehörigen Startclustern, einen Vermerk über die Autoboot-Möglichkeit einer Partition (!) und die oben erwähnte, derzeit sinnlose Fehlerliste. Vor diesen ganzen Daten ist Platz für ein Progrämmchen von 448 Bytes. Findet der ATARI bei der Initialisierung hier am Anfang das berühmte magische Wort, dann verzweigt er die Startinitialisierung hierher und versucht das dort stehende Programm zu starten. Leider ist unser Treiber mit seinen 3806 Bytes aber etwas größer - was also tun?
In der Liste der Programme, die auf der Boot-Diskette für die SH-205 zu finden sind, sehen Sie zwei Files mit den Bezeichnungen 204BOOT.IMG und 204ROOT. IMG. Dabei handelt es sich um zwei Minitreiber, die durch das Programm HINSTALL auf der Festplatte in Block 0 (204ROOT.IMG) und Block 1 (204BOOT.IMG) installiert werden. Block 1 ist der erste Block der Partition 0, deswegen kann mit diesem Treiber die Festplatte auch nur für die Partition C autobootfähig gemacht werden. Jetzt installiert HINSTALL noch den Treiber als Datei mit dem Namen SH204DVR. SYS in Partition C, diese wird beim Booten dann durch die zwei Minitreiber aufgerufen, und damit wird der vollständige Treiber installiert. So einfach geht das. Berechtigterweise können Sie jetzt einwerfen, daß die beiden IMG-Files ja jeweils 512 Bytes lang sind und somit nach meiner Aussage nicht in die 448 Bytes passen - stimmt, anscheinend liest HINSTALL erst die Information zur Festplatte aus Block 0 aus, schreibt anschließend das IMG-File und überschreibt dieses File am Ende wieder mit den Daten der Festplatte. Das funktioniert, da sich am Ende der beiden Files nur eine - für den Programmablauf unnötige -Symboldatei befindet.
möchte ich noch einmal auf den nachfolgenden Artikel zum WIN-CAP-File verweisen. Nur durch dieses File sind wir in der Lage, Modifikationen an unserer Festplatte ohne großartige programmiertechnische Klimmzüge durchzuführen. In der nächsten Folge - ich verspreche es hoch und heilig - werden wir dann wirklich zum Schraubendreher greifen. Werden Sie sich aber jetzt schon darüber klar, daß Sie damit jegliche Garantieansprüche über den Haufen werfen. Sollten Sie Ihre Festplatte erst vor kurzem gekauft haben, schauen Sie lieber noch einmal auf dem Rechnungsbeleg nach, wann sie wahrscheinlich sowieso kaputt geht -lt. einem Gesetz von Murphy ist das genau ein Tag nach Ablauf der Garantiezeit...
hp
Ich habe auf der CeBIT einiges an Kritik zu meiner Grundlagenserie “Die Festplatte” gehört und möchte deshalb ein paar Erklärungen geben, da sicher auch andere Leser den gleichen Zorn haben. Hauptkritikpunkt war die ewige Hinausschieberei der Umbauanleitung. Stimmt, nur so umfangreich wie die Serie geworden ist, war sie von mir am Anfang nicht geplant (Es ist mein allererstes Werk als Schreiberling). Das hat sich erst im Laufe der Recherche so ergeben. Außerdem mußte ich jetzt noch einmal schieben, um die Software vorzuziehen - was nutzt Ihnen ein umgebautes Laufwerk, wenn die Information zur Formatierung einen Monat später kommt?! Dazu kommt noch, daß aufgrund des Platzmangels in Heft 4 mein Artikel rausgeflogen ist...(kein Kommentar).
Also - Teil 4 haben Sie jetzt vorliegen und im nächsten Heft kommt definitiv der Umbau. Apropos Umbau - da scheint irgendwo noch ein Mißverständnis zu kursieren - es wird kein zweites Laufwerk eingebaut, sondern nur das alte gegen ein neues Laufwerk mit höherer Kapazität ausgetauscht.
Wenn Sie noch am Zweifeln sind, welches Laufwerk Sie benutzen können, warten Sie den allerallerletzten Teil 6 ab! Und - im Falle von Fragen, Anregungen oder Kritik -schreiben Sie bitte an die Redaktion; damit solch Zorn nicht Ihre Energien verbraucht...
hP