 --------------------- Dokumentation zu LESETEST.PRG -----------------------

Das hier vorliegende Programm Lesetest entstand aus der  Notwendigkeit,  die 
verschiedensten Diskettenformate auf ihre Ladetüchtigkeit, d.h. ihre Schnel 
ligkeit hin untersuchen zu können.  Als Co-Autor von Hyperformat [5] war ich 
von  jeher  darum bemüht,  die Formatierungen von Disketten  zu  optimieren, 
damit  der Endverbraucher einen auch für sein System optimalen  Diskettenzu- 
griff  bekommt.  Besonders wichtig in diesem Zusammenhang erscheint mir  die 
Tatsache,  da₧  viele Originalbetriebssysteme dahingehend verändert  wurden, 
da₧  ein  Byte  geändert  wurde;  dies führt  zu  kürzeren  Ladezeiten  beim 
Diskettenlesen,  bringt  aber  manchmal Probleme mit sich,  auf die  ich  in 
Veröffentlichungen [1] schon hingewiesen habe.
Nun aber zur

** Bedienung des Programms ** 
-----------------------------
Das Programm erlaubt Ihnen nach einer kurzen Copyrightmeldung die Bestimmung 
eines Laufwerks (Floppy A/B, Festplatte, Ramdisk,...), von woher im Anschlu₧ 
eine  bestimmte  Datenmenge  in den Speicher  Ihres  ST  geladen  wird.  Bei 
Disketten werden stets 40 Tracks geladen,  bei allen anderen Medien ist  die 
Lademenge einzig durch die Grö₧e Ihres Arbeitsspeichers begrenzt. In dem nun 
sichtbaren Fenster sehen Sie: Die Laufwerksbezeichnung, die Anzahl der Sek-
toren, die daraus resultierende Gesamtkapazität, Anzahl der Spuren, Anzahl 
der Sektoren pro Spur ( wenn nicht feststellbar: *** ) und die Kapazität des
noch freien Arbeitsspeichers. Nach dem Ladevorgang erhalten Sie die Geschwin-
digkeit des Ladevorgangs in kB/sec. und die dazu benötigte Zeit. Bei Disket-
ten werden zusätzliche Hinweise auf die Art der Formatierung ausgegeben.
Mit einem Tastendruck können Sie weitere Laufwerke selektieren. Das FULLER-
Feld rechts-oben sowie die rechte Maustaste blenden einen Copyrighthinweis 
ein, ESCAPE oder das CLOSE-Feld links oben gestatten das Programm ganz zu 
verlassen.

** Sonstiges **
---------------
Das  Interessante  an  LESETEST ist,  da₧ die damit  ermittelten  Daten  für 
Disketten  sehr gut mit den errechneten Werten übereinstimmt und  sogar  der 
Interleave und der Spiralfaktor der geprüften Diskette ausgegeben werden.
Das hat bislang noch kein Programm bewerkstelligt ! Ein kleines Beispiel:
Sie messen eine im Desktop formatierte Diskette.  Diese werden in allen TOS-
Versionen  mit 9 Sektoren pro Track formatiert,  ab TOS 1.02 aber mit  einem 
Spiralfaktor von 2 (siehe[1]).  Die gemessenene Geschwindigkeit beträgt etwa 
18,4 kB/Sekunde und stellt einen Maximalwert dar,  der nur dann auch in  der 
Praxis erreicht wird,  wenn die zu ladende Datei tatsächlich in einem  Block 
ohne Fragmente geladen werden kann.

Natürlich kann man diesen Wert auch rechnerisch ermitteln:

allgemein:  Sektoren pro Track * Sektoren pro Track * 2,5
            ----------------------------------------------
            Sektoren pro Track * Interleave + Spiralfaktor


hier:       9*9*2,5
            -------
            9*1+2      -->  18,49 kB/Sec

  
Wie  Sie  sehen,  stehen der Interleave (bei Atari=1) und  der  Spiralfaktor 
beide im Nenner des Ausdrucks, der die Ladegeschwindigkeit bestimmt.
Also  machen wir doch einfach den Spiralfaktor kleiner,  z.B.  auf  0,  dann 
erreichen wir .... 22,5 kB/Sekunde  !?

Fast !  Denn dann läuft die Diskette viel langsamer, weil der Floppycontrol- 
ler  die Spurinformation  einlesen mu₧ und einfach die Nutzdaten überliest.
Also  gibts eine Extrarunde - und die kostet Zeit.
Es  gibt  nun  aber  eine Trick,  die  Diskette  trotzdem  schneller  laufen 
zu lassen, indem man zusätzliche Informationen in die Spur hineinformatiert.
Darum brauchen Sie sich aber nicht zu kümmern,  das erledigt alles  FCOPYPRO 
für Sie. Für tiefergehende Betrachtungen verweise ich auf [1].

** Verträglichkeit, Features **
-------------------------------
Sie können das Programm (durch einfaches Umbenennen) auch als .ACC  starten, 
allerdings habe ich keine gro₧en Anstrengungen unternommen,  um  das  Redraw 
sauber  zu machen.  Eine Unverträglichkeit zeigt sich allerdings,  wenn  das 
CHAMELEON.ACC [3] im Speicher ist;  der Grund ist mir bis dato unbekannt.  
Vermeiden Sie aber bitte im ACC-Modus das Starten von Programmen, denn das
klappt noch nicht so ganz. Entweder ist es mein Compiler, der da Mist baut,
oder bei mir hat sich ein Bug eingeschlichen. (wahrscheinlich letzteres) 
Kaum Probleme  hingegen  gibts, wenn LESETEST.AC von CHAMELEON.ACC nachgela-
den wird.
Es  sollte  eigentlich  auch  Gro₧bildschirm  und  TT-tauglich  sein,  läuft 
zumindest auf BIGSCREEN [2] von Julian Reschke.
Alle verfügbaren Ramdisks konnten geprüft werden,  sogar LUFTSCHLOSS [4] von der 
Kleisterscheibe.  Die  maximalen Lesegeschwindigkeiten auf meinem  Serien-ST 
liegen  bei etwa 1875 kB/Sekunde (Ramdisk) und bei 645 kB/Sekunde  (Megafile 
60 mit ST277R) (( aber mit leicht modifiziertem Treiber.. hihi ))

** Verweise **
--------------
[1] Wie schnell sind Disketten zu laden ( Autor: J.Stessun)
    erschienen in ST-Computer 12/1989 (leider mit vielen Fehlern!)
[2] Bigscreen -  ein Programm von Julian Reschke,  das einen  Gro₧bildschirm 
    auf einem normalen ST simuliert. 
[3] Chameleon -  ein Accessory von Karsten Isakovic, gestattet das Nachladen 
    und Löschen von ACCs in/aus dem Speicher.       
[4] Luftschlo₧ - schnelle Ramdisk auf der Disk zum Buch Scheibenkleister 2
    Maxon Verlag, Autoren: Claus Brod und Anton Stepper.
[5] Hyperformat - Formatierprogramm, ebenfalls aus Scheibenkleister
    Maxon Verlag, Autoren: Claus Brod und Jürgen Stessun


** Der Artikel aus ST-Computer 12/1989 [1] ** 

Wie schnell sind Disketten zu laden ?
-------------------------------------  
Sicherlich ist dies in starkem Ma₧e abhängig von der Qualität der 
benutzten Disketten und Laufwerke, ihrer Drehzahl und Steprate; aber 
fällt Ihnen aus dem Stegreif noch mehr dazu ein ?

Schon häufiger war in Zeitschriften über den 'optimalen Interleave' zu 
lesen, bislang handelte es sich jedoch immer um Festplatten. Da nicht 
jeder ST-Benutzer ein solches Speichermedium sein eigen nennt, au₧erdem 
die Atari Festplatten lange nicht so optimierungsbedürftig sind wie 
beispielsweise Platten für PCs und Kompatibele (hihi..), habe ich eine 
lange Versuchsreihe mit Disketten angestellt; auch dort wirkt sich 
nämlich die Art der Formatierung in starkem Ma₧e auf die Geschwindigkeit 
beim Laden und Speichern aus. Um optimale Übertragungseigenschaften zu 
erreichen, machte ich Gebrauch von allen mir bekannten Möglichkeiten zur 
Formatierung. Die in manchen Punkten recht interessanten Me₧ergebnisse 
basieren auf Messungen am Atari ST mit seinen standardmä₧igen 3 1/2 Zoll 
Laufwerken, die daraus gefolgerten Ergebnisse haben jedoch 
grundsätzliche Gültigkeit. 
Besondere Rücksicht wurde auf den Umstand genommen, da₧ nicht alle ST-
Benutzer ein sog. FASTLOAD (s. Begriffserl.) eingebaut haben, denn 
gerade auf solchen Systemen kann man durch clevere Formatierung eine 
Beschleunigung des Datentransfers erreichen. Zum Formatieren wurde 
Hyperformat benutzt, ein kurzes GFA-Basic Programm ermittelte die 
Ladezeiten der Disketten; bei allen Diskettenoperationen wurde die 
Standard-Steprate von 3 ms benutzt.

Die grö₧te Ladegeschwindigkeit einer Diskette mit 512 Byte-Sektoren in 
Laufwerken mit 300 UPM kann nach folgender Formel berechnet werden:


    Speed =    SPT*SPT*2,5          Speed=kB/Sek.   SPT=Sektoren pro Track
                -----------
                SPT*IL+SPIR ü        IL=Interleave   SPIR=Spiralfaktor

    Formel 1  

Die Konstante 2,5 ergibt sich aus dem Produkt von Sektorlänge in kB und 
der Zahl der Umdrehungen pro Sekunde und mu₧ für andere Laufwerke und 
Sektorlängen entsprechend angepa₧t werden.
Die maximale Ladegeschwindigkeit einer 9-Sektor-Diskette mit Interleave 
1 und Spiralfaktor 0 ist demnach:

               9*9*2,5    =  22,5 kB pro Sekunde   
                -------               
                9*1+0    

Die Richtigkeit dieser Formel sollten Messungen bestätigen, hier zuerst 
die Ergebnisse mit Fastload:

 SPT  IL SPIR  Speed       SPT  IL SPIR  Speed      SPT  IL SPIR  Speed 
  ------------------------------------------------------------------------
   9   1   0    22,48         10  1   0    25,01       11  2   0    13,75 
   9   1   1    20,24         10  1   1    22,72       11  2   1    13,15 
   9   1   2    18,41         10  1   2    20,83       11  2   2    12,61
   9   1   3    16,87         10  1   3    19,23       11  2   3    12,12
   9   1   4    15,57         10  1   4    17,85       11  2   4    11,64

 Tabelle 1: Ladegeschw. mit Fastload  

Wie zu erwarten war, fällt die Ladegeschwindigkeit mit steigendem 
Spiralfaktor stetig ab. Für 11 Sektoren mu₧ sogar mit Interleave 2 
gearbeitet werden, da die Sektoren so eng beieinander liegen, da₧ sie 
nicht mehr in einem Rutsch gelesen werden können. 
(Interleave 2 bei 11 Sektoren = Interleave-Faktor 6 , s. Erläut.)



Wie sieht's denn aus, wenn man diese Disketten ohne Fastload einlädt ?
Bitteschön, hier die Ergebnisse:

 SPT  IL SPIR Speed        SPT  IL SPIR  Speed     SPT  IL SPIR  Speed   
  ------------------------------------------------------------------------
   9   1   0   11,31         10  1   0    12,56        11  2   0     9,21
   9   1   1   11,28         10  1   1    11,96        11  2   1     8,95
   9   1   2   18,39         10  1   2    20,79        11  2   2    12,62
   9   1   3   16,87         10  1   3    19,23        11  2   3    12,10
   9   1   4   15,57         10  1   4    17,85        11  2   4    11,63

 Tabelle 2: Ladegeschw. ohne Fastload  

Plötzlich findet sich ein Maximum der Übertragungsrate bei einem 
Spiralfaktor von 2, warum aber nicht beim Spiralfaktor 0 ?

Formen wir die Formel 1 zur Geschwindigkeitsermittlung so um, da₧ ihr 
Nenner auf einer Seite steht, dann erhalten wir im Falle von 9 Sektoren,
IL 1 und Spir 0:

    SPT*SPT*2,5                              9*9*2,5     
     -----------   = SPT*IL+SPIR               ------- = 17,90
     Speed                                     11,31   

   Formel 2  

Die Geschwindigkeit ist geringer als das errechnete Maximum, die 
Diskette hat also mehr Umdrehungen ausgeführt. Wie auch den 
Erläuterungen zu entnehmen ist, ist gerade der INTERLEAVE ein Ma₧ dafür, 
wieviele Umdrehungen die Disk machen mu₧, damit alle Sektoren der Spur 
eingelesen werden können.
Setzen wir auf der rechten Seite der Formel 2 für SPT die 9 und für SPIR 
die 1 ein, dann ist die Gleichung für IL=2 erfüllt. 
Wie Sie sehen, wirkt sich der formatierte Interleave von 1 in der Praxis 
so aus, als sei die Diskette mit Interleave 2 formatiert worden !
Je nach Geschmack kann man die Gleichung aber auch nach SPIR auflösen, 
wenn man IL mit 1 belä₧t. Es ergibt sich dann ein effektiver 
Spiralfaktor von 9 (statt des formatierten Spiralfaktors von 0), was bei 
9 Sektoren pro Track nichts anderes als eine Extraumdrehung bedeutet. 
(Die Ungenauigkeiten in den Nachkommastellen rühren daher, da₧ beim 
Lesen mehrerer Spuren nicht die gesamte letzte Spur gelesen werden mu₧, 
um die letzten 9 Sektoren zu erfassen, sondern nur die ersten ca. 90 %).
Was besagt aber nun diese Rechnung:
Ohne Fastload kann bei diesem Format eine Spur nur in 2 Umdrehungen 
komplett eingelesen werden. Das liegt eben daran, da₧ in Systemen ohne 
FASTLOAD nach einem Spurwechsel und einer Pause von 15 ms zur Beruhigung
des Kopfes erst noch die neue Spurnummer verifiziert werden mu₧, und 
diese befindet sich gerade vor dem Sektor, der eigentlich als nächster 
hätte gelesen werden sollen; also: eine Runde Pause, macht 200 ms.

Wenn Ihr Lese(r)kopf nun schon qualmt, dann gönnen Sie sich erst auch
mal 'ne Pause und lesen danach die Erläuterungen zu den wichtigsten, 
hier gebrauchten Ausdrücken!     


 Atari nimmt die Spirale  
------------------------
Auch die Atari-Entwickler haben festgestellt, da₧ die unter TOS 1.0 
formatierten Disketten - Spiralfaktor 0 - im Originalbetriebssystem ohne
Fastload nur im Schneckentempo zu laden sind, ganz zu schweigen vom 
Abspeichern, was durch das Verifizieren der gerade geschriebenen Daten 
doppelt so viel Zeit beansprucht. Seit TOS-Version 1.02 (Blittertos) wird 
daher aus dem Desktop nur noch mit Spiralfaktor 2 formatiert, in einer 
der neuen, inoffiziellen 1.04 Versionen sogar die Vorderseite mit 
Spiralfaktor 3 und die Rückseite mit Spiralfaktor 2. Die unter dieser 
TOS-Version formatierten Disketten sind daher noch etwas langsamer als 
solche von TOS 1.02. Ihre Ladegeschwindigkeit liegt bei 9-Sektor-
Disketten etwa bei 17,62 kB/Sekunde. Mit Formel 2 errechnet man hierbei 
einen effektiven Spiralfaktor von 2,5.
Aber keine Angst, in der brandneuen 1.04er Version vom 6.4.1989 benutzt 
man wieder den Spiralfaktor 2 auf beiden Seiten und erreicht damit  
18,39 kB/Sek.
 
Wir haben nun schon die erste Möglichkeit kennengelernt, um Disketten 
ohne Fastload etwas schneller zu machen - die Spiralisierung. Sie wird 
nur indirekt von der Formatier-Routine des Xbios unterstützt; man kann 
seit TOS-Version 1.02 einen Zeiger auf die selbstkonstruierte Tabelle der 
Sektornummern übergeben. 
Hinzu kommt das Interleaving, was von allen TOS-Versionen  unterstützt 
wird; wo es jedoch erst wichtig wird, nämlich bei 11-Sektor-Disketten, 
da macht TOS nicht mehr mit und verschwendet den Platz für den 11. 
Sektor in den anderen Sektorzwischenräumen. Maximal 10 Sektoren passen 
daher auf 'Desktop-formatierte' Disketten. 

Mit Köpfchen gehts besser  
-------------------------
Es gibt aber noch den 'zusätzlichen Header', der (wahrscheinlich 
ungewollt) sogar mit einem kleinen Trick unter TOS erzeugt werden kann. 
Wenn Sie sich die Sektorfolgen ansehen, die das abgebildete GFA-Basic 
Programm generiert, können Sie erkennen, da₧ bei einer 9-Sektor-Diskette 
und Interleave-Faktor 11 genau 11 Sektoren erzeugt werden. Zwar ist der 
11. Sektor um seinen Dateninhalt beschnitten, der wichtige 
Sektorvorspann - der Header - ist aber allemale noch mit drauf auf der 
Spur. Lädt man eine solche Diskette ohne Fastload ein, ergibt sich - oh 
Wunder - eine Lesegeschwindigkeit von 22,49 kB/Sekunde, also genauso 
schnell wie mit Fastload. Schuld daran ist nur der Header des 11. 
Sektors, der genau dann zur Stelle ist, wenn der Floppycontroller die 
aktuelle Spur verifizieren will. Bei 10 Sektoren und Interleave 11 
klappt das nicht mehr, weil der Kopf auf der alten Spur noch den 10. 
Sektor lesen mu₧ und gerade dann in die nächste Spur hochfährt, wenn der 
Header des 11. Sektors unter ihm vorbeirauscht. Moral von der Geschicht': 
Extrarunde !


Wo sollte der zusätzliche Header stehen ?  
-----------------------------------------
Welche Schlüsse kann man daraus ziehen ? Der zusätzliche Header sollte 
so dicht wie eben möglich vor dem ersten auf der neuen Spur zu ladenden 
Sektor stehen; und das ist eben der Sektor Numero 1. Versuche ergaben, 
da₧ das Ende dieses zusätzlichen Headers mindestens 10 Bytes vor dem 
Anfang des Sektorvorspanns vom 1. Sektor liegen mu₧, da sonst der 1. 
Sektor überlesen wird. 
Als 'dicht' kann man auch das Ende des Tracks bezeichnen, wenn zuvor der 
Sektor mit der höchsten Nummer residiert. Von dieser Lösung machen viele
Kopier- und Formatierprogramme Gebrauch.

Zunehemend an Beliebtheit gewonnen hat die 10-Sektor-Diskette, viele 
Public-Domain Disketten sind derart formatiert. 25 kB/Sek. mit und 20,79 
kB/Sek. Ladegeschwindigkeit ohne Fastload tragen mit dazu bei. Ohne 
Fastload klappt das aber nur beim Spiralfaktor 2 (siehe Tabelle 2). Und 
dieser Faktor 2 lie₧ mich noch eine Steigerung der Geschwindigkeit 
vermuten....  
 

Rekordverdächtig: 10-Sektor-Disketten ohne Fastload  
---------------------------------------------------
Tatsächlich ist es mir gelungen ein 10-Sektor-Format zu generieren, das 
bisherige Formate in puncto Geschwindigkeit schlägt. Dabei wurden die 10 
Sektoren eines Tracks mit Interleave 1 und Spiralfaktor 1 auf eine 
einseitige Diskette formatiert, insbesondere aber vor jedem Sektor mit 
der Nummer 1 ein zusätzlicher Header geschrieben. Da nach dem Lesen des 
letzten Sektors (Nummer 10) der Lesekopf einen Schritt nach innen fährt, 
versucht das System ohne Fastload erst einmal die Spurnummer 
festzustellen. Der Spiralfaktor von eins sorgt nun dafür, da₧ der Kopf 
etwa am Ende des 10. Sektors der neuen Spur landet. Er findet sodann den 
  zusätzlichen Header, der das Bedürfnis des Betriebssystems nach 
Trackverify erfolgreich befriedigt. Sofort nach dem Header kann dann mit 
dem Lesen des 1. Sektors der neuen Spur begonnen werden. Die so 
erreichbaren Ladegeschwindigkeiten bewegen sich um die 22,7 kB/Sek. und 
stellen für Betriebssysteme ohne Fastload den absoluten Spitzenwert dar. 
Die schnellsten 10er Disketten konnten bisher mit 20,79 kB/Sek. geladen 
werden (siehe Tabelle); Steigerung: 9,2%. Leider existiert meines 
Wissens nach (bisher!) kein Formatierprogramm, das automatisch auch bei 
spiralisierten Disketten den zusätzlichen Header mit-spiralisiert. 
Die erste derartige Diskette erzeugte ich in 'Handarbeit', inzwischen 
kanns aber auch mein 'Formatierer'. 


Und wie schnell sind Hyper-Density Disketten ?  
----------------------------------------------
Das sind solche Disketten, die mit höherer Datenrate formatiert wurden
- siehe ST Computer 7/8-89 - und dadurch bis zu 1,2 MB Datenkapazität 
vertragen. Aber sie sind auch noch mit Abstand die schnellsten; hier die 
Ladegeschwindigkeiten, links mit Fastload, rechts ohne Fastload, aber 
mit den Ihnen nun bekannten Mitteln optimiert:

    SPT  IL SPIR Speed                       SPT  IL SPIR Speed 
     ------------------------------------------------------------
     11   1   0   27,51                        11   1   0   27,50  
     12   1   0   30,02                        12   1   0   29,87 !
     13   1   0   32,49                        13   1   1   30,16 !
     14   2   0   17,49                        

 Tabelle 3: Hyper-Density Disketten  

Weniger ist manchmal mehr  
-------------------------
Nur bedingt kann man die schnellste Formatierung auch als die optimale 
bezeichnen, speziell bei eingebautem Fastload.  Besonders bei den 
schnellen 10er Disketten (IL 1,SPIR 0) und den 13er Hyper-Density 
Disketten (IL 1,SPIR 0) entstehen beim Schreiben auf einigen Laufwerken 
(auch auf meiner SF314) gelegentlich Fehler. Schuld daran ist das 
Schwingverhalten des Schreib/Lesekopfes, der bei einem
Spiralfaktor von 0 praktisch keine Beruhigungszeit mehr hat. Ein 
sicheres Zeichen dafür sind fehlerhafte Sektoren mit Nummer 1. Deswegen 
rate ich bei 10er und 13er Disketten auf den Spiralfaktor 1 
auszuweichen, weil damit dem Kopf eine Sektorlänge mehr Zeit gegeben 
wird. Die Geschwindigkeitseinbu₧e hält sich dabei in Grenzen (etwa 6-
9%). Dies scheint wohl auch der Hauptgrund dafür zu sein, weswegen die 
Atari-Entwickler im Desktop mit Spiralfaktor 2 formatieren, werden doch 
die verschiedensten Laufwerke für den ST angeboten.
Ein nützlicher Nebeneffekt ist die Tatsache, da₧ 5 1/4 Zoll 
Laufwerke bei 6 ms Steprate und Spiralfaktor 1 in den meisten Fällen 
gleiche Lesegeschwindigkeiten erreichen wie ihre kleinen 3 1/2 Zoll 
Pendants. 
 

Begriffserläuterungen  
=====================
Ich wei₧, viele Leser haben sie nicht mehr nötig, aber im Interesse 
aller anderen mögen Sie mir die Wiederholung der Erläuterung verzeihen !

Fastload, Trackverify:
----------------------
Alle originalen, unveränderten Betriebssystemversionen des Atari ST 
arbeiten ohne Fastload. Dadurch wird das Schreiben und Lesen von 
Diskette verlangsamt, weil nach einem Spurwechsel erst einmal eine Pause 
von 15 ms zur Kopfberuhigung eingelegt wird, und danach die Information 
darüber verlangt wird, ob die erreichte Spur die richtige ist. Vor jedem 
Sektor steht diese Information und wird auch für dieses 'Trackverify' 
benutzt. Da aber diese Information - der Sektorheader - auch zum Lesen 
des eigentlichen Sektorinhalts benötigt wird, kann der Kopf den Sektor, 
über dem er sich gerade befindet, nicht mehr lesen und mu₧ daher eine 
ganze Diskettenumdrehung auf ihn warten.
Um dieses Trackverify abzuschalten, mu₧ ein Byte (eigentlich nur 1 Bit) 
im Betriebssystem geändert werden. Derart geänderte Eproms kann man für 
etwa 20.- bis 30.- DM kaufen und kommt dadurch in den Genu₧ der höheren 
Lese- und Schreibgeschwindigkeiten (siehe Tabelle). Zum Selbermachen die 
Patchadressen in den verschiedenen Betriebssystem-Versionen (jeweils das 
Byte $14 ändern in $10):

 Version      Datum      Offset U7  im Speicher   
  ----------------------------------------------
  TOS 1.0    06.02.1986    $0DC7      $FC1B8F
  TOS 1.2    22.04.1987    $0EC7      $FC1D8F
  TOS 1.4    18.05.1988    $0AE9      $FC15D3    inoffiziell !
  TOS 1.4    22.02.1989    $0A8E      $FC151D    inoffiziell !
  TOS 1.4    06.04.1989    $0A8B      $FC1517     

 Version       Datum    File-Offset  im Speicher   
  -----------------------------------------------
  RAMTOS 1.0  06.02.1986   $1A1D       $7A1D
  RAMTOS 1.4  18.05.1988   $13D5       $BED5     inoffiziell !
  RAMTOS 1.4  08.08.1988   $13B1       $BFB1     inoffiziell !

 Tabelle 4: Fastload Patchadressen  


Spiralfaktor, SPIR:  
-------------------
Die Sektoren einer Diskette sind dann spiralisiert, wenn zwar die 
Reihenfolge der Sektoren auf allen Spuren erhalten bleibt, jedoch jede 
Spur mit einer anderen Nummer dieser Reihenfolge beginnt. Verbindet man 
im Gedanken von au₧en alle Sektoren der Diskette, die die Nummer 1 
haben, so beschreibt diese Kurve eine Spirale, die im Zentrum der 
Diskette enden würde. Nach einem Spurwechsel hat der Lesekopf dadurch 
mehr Zeit, weil der nächste zu bearbeitende Sektor aufgrund der 
Spiralisierung etwas später erscheint als ohne Spiralisierung. Bei 
Systemen ohne Fastload scheint der Spir-Faktor von 2 optimal zu sein, da 
der Kopf nach dem  Spurwechsel erst noch sein Trackverify  ausführen 
kann und danach sofort auf den richtigen Sektor stö₧t.
  
  Beispiel: Track 17, Sektorfolge 1 2 3 4 5 6 7 8 9
            Track 18, Sektorfolge 8 9 1 2 3 4 5 6 7    >> Spiralfaktor 2

Nachdem der Kopf den Sektor 9 auf Spur 17 gelesen hat, fährt er auf Spur 
18 und landet dort irgendwo in Sektor 8. Den Header von Sektor 9, Spur 
18 benutzt er zum Trackverify und kann sodann mit dem Laden des Sektors 
1 beginnen.


Interleave, Interleave-Faktor:  
------------------------------
Aufgepa₧t: Interleave bezeichnet man als den Zwischenraum zwischen 2 
numerisch aufeinanderfolgenden Sektoren. Oder: So viele 
Diskettenumdrehungen sind notwendig, um alle Sektoren des Tracks zu 
lesen.

  Sektorfolge: 1 6 2 7 3 8 4 9 5   >> Interleave 2

Zwischen Sektor 1 und 2 liegen 2 Zwischenräume (1-6 und 6-2)

aber ...
Interleave-Faktor bezeichnet die Zahl, die auf eine Sektornummer 
aufaddiert wird, um auf die Nummer des nachfolgenden Sektors zu kommen.

  Sektorfolge: 1 7 2 8 3 9 4 10 5 11 6 >> Interleave-Faktor 6
                                       >> Interleave 2

*** Folgendes Gfa-Basic Programm demonstriert die Arbeitsweise des TOS
*** beim Konstruieren der Sektorfolgen mit Interleave-Faktor

 1: FOR spt%=9 TO 11         ! 9 bis 11 Sekt. pro Track
 2:   FOR ilf%=1 TO 11       ! Interl.-Faktor 1 bis 11
 3:     @makesecs(spt%,ilf%) ! Sektorfolgen konstruieren
 4:     PRINT                ! neue Zeile
 5:   NEXT ilf%              ! Nächster IL-Faktor
 6: NEXT spt%                ! Nächstes Trackformat
 7: END
 8: PROCEDURE makesecs(spt%,ilf%)
 9:   lauf%=1
10:   PRINT spt%;"/";ilf%;"= ";
11:   REPEAT
12:     secnr%=lauf%
13:     REPEAT
14:       PRINT secnr%;" ";  ! hier ensteht der Sektor
15:       ADD secnr%,ilf%
16:     UNTIL secnr%>spt%
17:     INC lauf%
18:   UNTIL lauf%>ilf%
19: RETURN

Die Formatier-Routine (XBIOS 10) des Atari ST erwartet auf dem Stack 
einen  Interleave-Faktor   und führt damit obige Rechnung aus.

Wem es noch nicht kompliziert genug ist, hier der mathematische 
Zusammenhang zwischen Interleave (IL) und Interleave-Faktor (ILF):

      Bedingung:  0<ILF<SPT  und  1<IL<SPT

       ILF*IL=SPT+1                        SPT=Sektoren pro Track

 Formel 3   

Zur Beurteilung der Ladegeschwindigkeiten und deshalb auch in meiner 
Formel wird hingegen der  Interleave   (IL) benutzt, weil er diesbezüglich 
aussagekräftiger ist und unabhängig von der Anzahl der Sektoren 
pro Track (SPT) Auskunft über die minimale Anzahl von 
Diskettenumdrehungen gibt, die zum Lesen aller Sektoren nötig sind.
 

Zusätzlicher Header, Sektorvorspann:  
------------------------------------
So nennt man den Teil eines Sektors, in dem Auskunft über Tracknummer, 
Seite, Sektornummer und Sektorgrö₧e gegeben wird, dem aber nicht wie 
normalerweise das 512 Byte lange Datenfeld des Sektors folgt. Dieser 
Sektorvorspann wird alleine geschrieben, belegt insgesamt 10 Bytes auf 
der Diskette und seine einzige Aufgabe ist, dem System Auskunft über die 
Tracknummer zu geben, in der die gerade gelesene Information steht. 
Durch diesen Trick wird dem Trackverify (s. dort) Rechnung getragen.

