In dieser Ausgabe der ST-Digital m”chte ich ein Formatierprogramm fr Disketten vorstellen, das es erm”glicht, auf doppelseitigen Disketten 200KB mehr an Daten unterzubringen. Dieses Programm l„uft aus sp„ter genannten Grnden aber nur mit Laufwerken, die keine allzuhohe Drehrate haben (max. ca. 302 U/Min.)! Um feststellen zu k”nnen, ob dieses Programm auch auf Ihrem ST lauff„hig ist, probieren Sie es einfach aus! Eine (einseitige) Diskette besteht im wesentlichen aus einer Magnetschicht, die beim Formatieren mit dem Computer vom Diskettenkontroller (FDC) in einzelne Spuren, sog. TRACKS, unterteilt wird. Jeder einzelne Track wiederum besteht aus einzelnen Sektoren, die vom Betriebssystem jeweils zu zweit zu einem sog. CLUSTER zusammengefažt werden, um beim Verwalten der Diskette nicht zuviel Speicher zu ben”tigen. Damit nun der FDC auch wieder einen bestimmten Sektor auf einer bestimmten Spur findet, legt er vor den eigentlichen Sektordaten noch einen Sektorheader, in dem die aktuelle Spur, der nun folgende Sektor, die aktuelle Laufwerksseite und die Sektorl„nge geschrieben steht. Da auch der schnellste Diskettencontroller eine bestimmte Zeit ben”tigt, um alle diese Daten auszuwerten, werden zwischen diese Markierung und den eigentlichen Sektordaten noch Lckenbytes (GAP-Bytes) gelegt, die eben die Aufgabe besitzen, dem FDC eine gewisse Zeit zu gew„hren, die letzten Daten zu verarbeiten. Der Controller im ST ist in dieser Hinsicht jedoch sehr flexibel und nimmt es einem nicht bel, wenn man die L„nge dieser GAP-Byte-Felder ver„ndert. Ein TRACK hat formatiert eine L„nge von ca. 6275 Bytes (je nach Drehzahl leicht verschieden). Im ST werden pro Track nur 9 Sektoren benutzt. Das macht einen Platzbedarf von 4608 Bytes. Was aber ist mit den fehlenden 1667 Bytes ? Wie oben schon genannt, wird vom Betriebssystem im ST vor jeden Sektor ein Vorspann von 59 und ein Nachspann von 40 Bytes geschrieben. Das sind dann inclusive Trackvorspann (60 Bytes) schon 5658 Bytes (622 Bytes/Sektor). Die Lckenbytes k”nnen aber noch drastisch verringert werden, ohne daž der FDC Daten durch šberlesen verliert. Der Trackvorspann kann auf 4 Bytes gekrzt, der Sektorvor- auf 3 und der Sektornachspann auf 3 Bytes gekrzt werden. Damit ensteht auf einem Track Platz fr 11 Sektoren (5632 Bytes). } Formatiert man noch zus„tlich die vom ST unbenutzen Tracks 80-81, so erh„lt man eine Gesamtkapazit„t von 902KB (923648 Bytes) gegenber 720KB (737280 Bytes) vorher. Hier eine Darstellung eines Tracks auf der Diskette: GAP1: 60 Bytes Fr jeden Sektor: GAP2: 12 Bytes SYNC: 3 Bytes Sektorvorspann: 40 Bytes Datenblock: 517 Bytes Sektornachspann: 40 Bytes Spurnachspann: Rest auf 6275 Bytes Da in jedem Sektorvorspann auch die aktuelle Seite und der aktuelle Track vermerkt ist, muž vor dem Formatieren jedes Tracks dafr gesorgt werden, daž diese Daten mit dem aktuellen Stand des Lesekopfes bereinstimmen. Um ein solch neues Format auch benutzen zu k”nnen, muž die Diskette mit 0-Bytes formatiert werden, um eine gel”schte FAT und Directory zu erhalten. Anschliežend muž ein entsprechend modifizierter Bootsektor auf den 1.Track der 1.Seite in Sektor 1 geschrieben werden. Die Abweichungen gegenber einer normalen, zweiseitigen Diskette sind (Achtung: Daten im Low-Hi Format!): Byte $13,$14 (Zahl der Sektoren auf der Diskette): 1804 statt 1440 Byte $18,$19 (Zahl der Sekotren pro Tack): 11 statt 9 Anschliežend kann die Diskette, wie jede andere Diskette auch, benutzt werden. Zu beachten ist noch, daž mit diesem Programm die Sektoren auf einem Track nicht nach der Reihe nach abgelegt werden, sondern mit einem INTERLEAVE-Faktor von 6, d.h. nach dem Sektor 1 folgt nicht 2, sondern 7. Danach kommt erst Sektor 2. Dies dient auch dazu, dem Controller etwas mehr Zeit einzur„umen, um mit seinen internen Datenschiebereien fertig zu werden (es folgen ja praktisch dann mehr als 540 Lckenbytes). Das Quellisting in GfA-Basic ist gut dokumentiert und sollte von jedem verstanden werden, der sich einigermažen mit Basic auskennt. Zur Bedienung des Programmes: Das Programm liegt in zwei Formen vor. Zum einem als normales GfA- Basic-File, zum anderen als compiliertes Programm und somit auch fr jedermann benutzbar. Die Bedienung des Programmes ist sehr einfach: Nach dem Programmstart muž nur die Zahl der Seiten eingegeben werden. Danach wird ohne weitere Warnung die eingelegte Diskette im Laufwerk A:\ formatiert. Zum Programm: Mit diesem Programm k”nnen Sie natrlich auch noch eigene Formate entwickeln, indem Sie einfach die entprechenden Bytes im Trackpuffer ver„ndern. Diese werden ber sie Routine @G(Zahl,Byte) ab der augenblicklichen Position in den Puffer geschrieben. Der oben genannte Interleave- Faktor kann in der ersten Datazeile ge„ndert werden. Hier stehen nacheinander die Sektornummern, die auf einen Track geschrieben werden. Wollen Sie alle Sektoren der Reihe nach auf die Diskette schrieben, so setzen Sie die Werte 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11 ein. Gengen ihnen nun 11 Sektoren nicht mehr (z.B. 128-Byte Sektoren), so „ndern Sie einfach den Wert des DIM adr Befehls und alle FOR-NEXT Schleifen mit dem Endwert 11 auf die gewnschte Sektorzahl pro Track um. Vergessen Sie dabei aber nicht, daž die DATA-zeile genausoviele Werte enthalten muž, wie Sektoren auf einem Track stehen sollen. MH Programme: FATDISC.BAS FATDISC.PRG