Startseite
Geschichten
HD am IBM XT/AT
Eine Platte für den IBM
Erlebnisse bei der Festplattenkonfiguration an XT und AT
von Boris Jakubaschk

Mein Einstieg in die PC-Welt erfolgte mit einem 386er. Dort musste man beim Anschluss einer Festplatte zwar noch deren Parameter von Hand eintragen, ansonsten war die Aufgabe aber vergleichsweise einfach zu meistern. Wer bisher nur an modernen PCs herumkonfiguriert hat, wird selbst dies als befremdlich empfinden. Nachdem die Hardware installiert ist, teilt man dem BIOS mit, an welchen Interfaces Platten und optische Laufwerke angeschlossen sind, der Rest wird automatisch erkannt und eingestellt. So war das aber nicht immer, wie ich anhand der beiden PC-Verteranen meiner Sammlung lernen musste:

1. Lektion: Der IBM XT 5160

Der Vorvater aller heutigen PCs, der IBM PC kannte noch kein BIOS-Setup und kein CMOS-RAM, ebenso sein direkter Nachfolger, der XT. Erschwerend kam hinzu, dass die damaligen Festplatten noch keine Auskunft über ihre Geometrie geben konnten. Diese Information war jedoch notwendig, da die Ansteuerung direkt mit Spuren, Köpfen und Sektoren erfolgte. Heute werden die Datenblöcke linear über eine einzelne Nummer adressiert, den Rest übernimmt die Festplatte selbst.

Somit bestand die Notwendigkeit, die Geometriedaten einmalig einzugeben und daraufhin abzuspeichern. Diesen Job übernimmt der Festplattencontroller. Er enthält ein ROM mit einer BIOS-Erweiterung, die den Start des Rechners von der Festplatte ermöglicht. Zudem ist normalerweise ein einfaches Einrichtungsprogramm für die Festplatte enthalten. Dieses fragt die Festplattendaten ab und legt sie in einem auf dem Controller befindlichen Speicher ab.

Das damals übliche Festplatteninterface heißt "ST-506", manchmal auch "ST-412". Beide Bezeichnungen stehen für Festplatten der Firma Seagate, in denen dieses Interface erstmalig implementiert war. Die ST-412 wurde standardmäßig im IBM XT eingesetzt und hatte 10 MB. "Erfunden" hat diese Schnittstelle Al Shugart, ein Mitbegründer von Seagate, dem auch der Shugart-Bus zu verdanken ist, mit dem bis heute alle Diskettenlaufwerke angeschlossen werden. Auch die SCSI-Schnittstelle hat er entwickelt. Das Interface ist für zwei Festplatten ausgelegt. Ein 34poliger Stecker übermittelt die Steuersignale und ist als Bus ausgeführt, d.h. es gibt nur ein Kabel, an dem beide Festplatten hintereinander angeschlossen sind. Über einen 20poligen Stecker werden die Daten übertragen. Hier hat jede Platte ein eigenes Kabel, am Controller gibt es diesen Stecker also zweimal.


oben: ST-506-Controller für XT, unten: 16-Bit-Ausführung für AT


Sobald die Festplatte richtig angeschlossen ist, kann die Einrichtung beginnen. Nun stellt sich aber die Frage, wie man an das auf dem Controller befindliche Einrichtungsprogramm herankommt. Die Antwort ist einfach: Man muss den Maschinencode direkt von einem Monitorprogramm aus starten. Freundlicherweise liefert Microsoft ein solches Programm mit dem schönen Namen "debug" bei MS-DOS mit. Man startet den Rechner mit einer MS-DOS-Diskette und ruft anschließend "debug" auf. Es meldet sich mit einem Minuszeichen als Eingabeaufforderung. Nun gibt man G=C800:5 ein und das Einrichtungsprogramm startet. Wenn nicht, stimmt die Startadresse offenbar nicht. Es gibt auch Controller, bei denen der Start über G=C800:6 oder G=C800:CCC erfolgt. Man folgt der Bedienerführung, trägt die Geometriedaten ein, markiert die fehlerhaften Sektoren gemäß der oben auf der Festplatte aufgedruckten Liste und lässt die Platte low-level-formatieren.

Dabei muss man noch einen Begriff erläutern: Das Programm fragt nach dem gewünschten "Interleave". Dabei handelt es sich um die Art und Weise, wie die Sektoren innerhalb einer Spur organisiert werden. Naheliegend wäre es, alle Daten einer Spur hintereinander weg in aufeinanderfolgende Sektoren zu schreiben. Dies entspräche einem Interleave von eins und führt dazu, dass die gesamten Daten einer Spur mit einer einzigen Umdrehung der Platte eingelesen werden können. Leider sind dazu die meisten frühen PCs zu träge. Nachdem ein Datenblock gelesen ist, benötigt der PC einen kleinen Moment, um diesen zu verarbeiten. In dieser Zeit dreht sich die Platte natürlich weiter und wenn der PC wieder lesebereit ist, hat die Übertragung des nächsten Blockes bereits begonnen. Nun muss der PC also eine volle Umdrehung warten, bis der gleiche Datenblock wieder am Lesekopf vorbeikommt. Auf diese Art eine ganze Spur mit beispielsweise 17 Sektoren einzulesen dauert folglich 17 volle Umdrehungen. Man kann dies lösen, indem man eben nicht alle Blöcke hintereinanderschreibt, sondern zunächst nur jeden zweiten Block beschreibt und mit einer weiteren Plattenumdrehung die entstandenen Lücken mit den übrigen Blöcken auffüllt. Umgekehrt kann der PC dann die gesamte Spur in zwei Umdrehungen vollständig lesen. Man nennt dies einen Interleave von zwei. Auch das ist oftmals noch zu schnell. Üblicherweise kann man den Interleave auf Werte zwischen 1 und 5, manchmal auch 6 einstellen. Je geringer der Interleave, desto schneller die Festplatte – bis zu dem Punkt, wo der PC nicht mehr mitkommt und die Performance komplett einbricht.

Die Low-Level-Formatierung kann eine ganze Weile dauern. Irgendwann ist sie abgeschlossen und der Rechner wird neu gestartet. Noch einmal muss von Diskette gebootet werden, da auf der Platte kein Betriebssystem enthalten ist. Ab MS-DOS 5 geht der Rest der Installation interaktiv und ist kaum erklärungsbedürftig. Bei früheren DOSen muss man die Installation von Hand erledigen: Zunächst muss eine oder mehrere Partitionen erstellt werden. Dazu dient das Programm "fdisk", auf dessen Bedienung hier nicht weiter eingegangen werden soll. Im Zweifel erstellt man eine einzige primäre Partition und lässt diese auf maximale Größe einstellen. Den Rest macht fdisk dann automatisch. Ein Reboot später kann die Platte dann formatiert und startfähig gemacht werden. Dazu dient der Befehl "format c: /s". Nun sollte noch der übrige Disketteninhalt auf die Platte geschrieben werden. Ein minimales Prozedere dazu wäre das folgende:
c:
md dos
cd dos
xcopy a:*.* .

Nun kann der Rechner ohne DOS-Diskette neu gestartet werden und sollte von der Festplatte booten.

Lektion 2: Der IBM AT 5170

Mit dem IBM AT führte IBM neben dem schnelleren 80286-Prozessor eine ganze Reihe weiterer Neuerungen ein. Eine davon ist ein kleiner Speicher, CMOS-RAM genannt, der grundlegende Systemeinstellungen aufnehmen kann und dessen Inhalt auch nach dem Ausschalten erhalten bleibt. Dafür sorgt eine Batterie.

Durch dieses CMOS-RAM kann nun die Festplattenkonfiguration direkt gespeichert werden, der Controller benötigt weder ROM noch eine eigene Speichermöglichkeit. Dies macht die Controller einfacher und preiswerter im Aufbau.

Leider hat IBM dem AT noch kein Einstellprogramm im ROM spendiert. Es wurde auf Diskette mitgelifert und kann heute noch vom FTP-Server der IBM heruntergeladen werden: ftp://ftp.pc.ibm.com/pub/pccbbs/refdisks/atdg207.exe.

Andere Hersteller hatten teilweise bereits ein Einstellprogramm im ROM oder arbeiteten wie z.B. Compaq ebenfalls mit Setup-Disketten.

Das CMOS-RAM ist leider sehr klein, weshalb sich IBM entschlossen hat, dort nicht die ganze Laufwerksgeometrie abzuspeichern sondern nur einen Zeiger auf eine Tabelle mit den Angaben verschiedener Laufwerke, welche wiederum fest im BIOS hinterlegt ist. Dies hat den Nachteil, dass der Reschner nur Festplatten nutzen kann, die zu einer der hinterlegten Geometrien passen. Kompatible PCs hatten noch lange im BIOS-Setup die Möglichkeit, aus den vorgefertigten Platten zu wählen. Zusätzlich konnte aber auch die Geometrie direkt eingestellt werden. Diese Möglichkeit fehlte dem IBM AT noch. Fast alle Hersteller hielten sich an die ersten 14 Einträge der einst von IBM definierten Liste, die übrigen der insgesamt 47 Einträge wurden herstellerspezifisch belegt. Hier deswegen nur die ersten 14:

Typ-Nr. Spuren Köpfe WPC ab Spur Landezone Sektoren / Spur MB verwendbar für
1 306 4 128 305 17 10.16 Seagate ST-412
2 615 4 300 615 17 20.42 Seagate ST-225, fast alle anderen 20MB-Platten
3 615 6 300 615 17 30.63  
4 940 8 512 940 17 62.42  
5 940 6 512 940 17 46.82  
6 615 4 aus 615 17 20.42  
7 462 8 256 511 17 30.68  
8 733 5 aus 733 17 30.42  
9 900 15 aus 901 17 112.06  
10 820 3 aus 820 17 20.42  
11 855 5 aus 855 17 35.49  
12 855 7 aus 855 17 49.68  
13 306 8 128 319 17 20.32  
14 733 7 aus 733 17 42.59  


Nach der Festlegung der Einstellungen muss die Platte zunächst low-level-formatiert werden. Leider enthält die oben genannte Reference Disk kein solches Programm. Der Festplatten-Hersteller Seagate hält aber ein sehr schönes Programm dieser Art auf dem firmeneigenen FTP-Server bereit. Es ist unter ftp://ftp.seagate.com/techsuppt/seagate_utils/sgatfmt4.zip zu finden. Es läuft angeblich auch mit Festplatten anderer Hersteller. Das übrige Prozedere ist gleich wie beim XT.