home *** CD-ROM | disk | FTP | other *** search
/ Computer Club Elmshorn Atari PD / CCE_PD.iso / pc / 0600 / CCE_0686.ZIP / CCE_0686 / SPEEDER_.U77 / ANLEITUN.G / SPEEDER4.S < prev   
Text File  |  1990-04-08  |  21KB  |  386 lines

  1.                                         Stefan Schreiber
  2.                                         Kesselweg 14
  3.                                         8650 Kulmbach
  4.  
  5.  
  6.  
  7.                             Speeder+
  8. ( Verdopplung der Schreib- und Lesegeschwindigkeit des Atari ST )
  9.  
  10. Mehr als  drei  Jahre  sind  nun  seit  Erscheinen  der  Speeder-
  11. Urversion  vergangen,  die immer noch sehr weit  verbreitet  ist. 
  12.      Zwei  in der Zwischenzeit erschienene Updates  sind   leider 
  13. nicht ganz so weit in Umlauf gekommen,  sie hatten aber auch  mit 
  14. den beiden neuesten TOS-Versionen noch Schwierigkeiten.
  15. Ich  hoffe,  daß  diese überfällige  und  hoffentlich  endgültige 
  16. Version meine und Ihre Erwartungen erfüllen wird! 
  17.  
  18. Es existieren derzeit vier offizielle TOS-Versionen für den Atari 
  19. ST,  nämlich TOS 1.0 ( das "alte" TOS vom 6.2.86 ), TOS 1.2 ( das 
  20. "Blitter-TOS"  ),  TOS 1.4 ( "Rainbow-TOS" ) und schließlich  TOS 
  21. 1.6  ( STE-TOS ).  Verkompliziert wird alles  noch  dadurch,  daß 
  22. einige  TOS-Versionen,  aber nicht alle,  auch  als  TOS.IMG-File 
  23. vorliegen und damit z.B. von Festplatte gebootet werden können.
  24.      Diese  Speeder-Version  sollte  nun endlich  mit  jedem  TOS 
  25. funktionieren, auch wenn sich dieses im RAM befinden sollte.
  26.  
  27. Hier  eine kurze Entwicklungsgeschichte des Speeders  (  ok,  das 
  28. interessiert zwar nur mich,  aber diese Anleitung soll halt alles 
  29. enthalten, auch was Sie garantiert nicht brauchen können! ):
  30.  
  31.      Bekanntlich  lief die alte Speeder-Version 1.4 nur  auf  TOS 
  32. V1.0, nicht jedoch auf neueren Betriebssystemsversionen.
  33.  
  34. Eine  Zwischenversion  (  2.0  ),  die  sich  allerdings  niemals 
  35. allzuweit  verbreitet hat,  lief zwar mit  Blitter-TOS,  aufgrund 
  36. eines minimalen, aber dennoch schwer zu entdeckenden Programmier-
  37. fehlers wurde aber bei TOS 1.4 und 1.6 kein Beschleunigungseffekt 
  38. erreicht.  Diese  Version  landete aber  immerhin   mit  leichten 
  39. Modifizierungen auf Claus Brods "Kleisterscheibe".
  40.  
  41. Update Nr. 3.0 behob diesen Fehler zwar, funktionierte allerdings 
  42. ab  TOS  V1.2  nicht,  wenn es beim Booten  aus  dem  AUTO-Ordner 
  43. heraus gestartet wurde. Und warum nicht?
  44. Weil bei neueren TOS-Versionen die Systemvariable  $4f2 (sysbase)  
  45. noch  nicht  initialisiert  ist,  wenn  Programme  im  AUTO-Orner 
  46. aufgerufen  werden,  praktisch alle anderen Systemvariablen  aber 
  47. bereits verwendet werden dürfen.
  48. Bei  TOS 1.0 trat jedenfalls diese Inkonsequenz noch  nicht  auf. 
  49. Is' ja auch logisch, oder?!
  50.      Tja,  und  da muß ich auch einige  ST-Anwender  kritisieren, 
  51. die  mich immer  ganz  entrüstet anriefen und  Ihre  Meinung  zum 
  52. Ausdruck  brachten,  was  für ein Schrott der Speeder+ doch  sei. 
  53. Diese Leute erzählten mir,  daß der Speeder+ nicht funktionierte, 
  54. und  ich  hatte ihn natürlich auf allen  TOS-Versionen  getestet, 
  55. allerdings nur per Doppelklick vom Desktop aus.  Und da lief eben 
  56. alles.
  57.       Auf jeden Fall hat mir nie jemand genau sagen  können,  was 
  58. eigentlich  nicht  klappte,  und mit ein bißchen  Mühe  hätte  es 
  59. möglich sein müssen,  festzustellen, daß besagtes Problem nur mit 
  60. AUTO-Ordner auftrat. Na gut, also Schwamm drüber!
  61.  
  62. Diese  Speeder+-Version  darf frei kopiert  werden,  sollte  aber 
  63. niemals ohne diese Anleitung weitergegeben werden!
  64. Weichen  Sie nach Möglichkeit nur in  begründeten  Ausnahmefällen 
  65. von dieser Bitte ab. Z.B. hätte ich nichts dagegen, wenn Speeder+ 
  66. als Schnellader bei Spieledisketten eingesetzt würde.  In solchen 
  67. Fällen  wird  natürlich kein Platz für  die  Anleitung  vorhanden 
  68. sein.
  69.  
  70. Sie sollten folgende Files auf dieser PD-Diskette vorfinden:
  71. 1. Speeder4.prg : Speeder+-Programm 
  72. 2. Speeder4.q   : Quelltext des Programms
  73. 3. Speeder4.doc : wenn  dieses File  nicht  vorhanden ist, können 
  74.    Sie  diesen  Text  nicht lesen / genießen /  in  den  Desktop-
  75.    Papierkorb werfen.
  76. 4. Speeder4.s: das gleiche im ASCII-Format ( ohne Schriftarten ) 
  77.  
  78.  
  79.  
  80.  
  81. II. Theoretische Grundlagen von Fastload-Utilities
  82.  
  83.      Maßgebend für die Geschwindigkeit eines Computers ist  nicht 
  84. nur  seine   Prozessorleistung,   sondern  vor  allem  auch   die 
  85. Leistungsfähigkeit  seiner  Peripherie  wie   Diskettenlaufwerke, 
  86. Festplatte und Drucker.  Bezüglich der Diskettenlaufwerke hat der 
  87. ATARI ST beim Arbeiten mit längeren Files eine  durchschnittliche 
  88. Lesegeschwindigkeit von 8 KByte/sec., bzw.  ungefähr 4 KByte/sec. 
  89. beim Schreiben.
  90. Diese Werte können durch das Ausschalten eines Verifys verdoppelt 
  91. werden.  Noch   dazu   hat  diese   Maßnahme   praktisch   keinen 
  92. gravierenden  Nachteil zur Folge,  jedenfalls hat mich noch  kein 
  93. Skeptiker vom Gegenteil überzeugen können.
  94.      Dieser  Text ist noch immer eine der  wenigen  detaillierten 
  95. und korrekten Beschreibungen dafür, was passiert, wenn das Track-
  96. Verify  beim Spurwechsel ausgeschaltet wird ( das  Prinzip  aller 
  97. Fastload-Utilities ).
  98. Eine Warnung im voraus:  Es handelt sich hierbei um keine leichte 
  99. Materie.  Ich habe mich jedoch bemüht,  diese Anleitung möglichst 
  100. leichtverständlich zu verfassen.  Wenn Sie schon im voraus  genü-
  101. gend  Vertrauen zu meinem Programm haben  sollten,  brauchen  Sie 
  102. sich mit programmtechnischen Details natürlich nicht zu belasten.       
  103.      
  104.      Was bewirkt das Programm "Speeder4.prg" nun konkret und  ist 
  105. bei der Sache nicht doch ein Haken? Um evtl. Ängste der Skeptiker 
  106. und Sicherheitsfanatiker zu zerstreuen,  möchte ich einen  kurzen 
  107. Ausflug  in die Theorie des Floppy Disc Controllers ( FDC  )  des 
  108. Atari ST unternehmen.
  109. Der FDC bietet unterschiedliche Vorkehrungen, die Datensicherheit 
  110. zu erhöhen. Es existieren hauptsächlich drei Arten eines Verifys:
  111.  
  112. 1. Lesen eines Sektors:  Der  FDC arbeitet bereits  hardwaremäßig 
  113.    mit Prüfsummen.  Wenn ein Sektor auf die Diskette  geschrieben 
  114.    wird, fügt der FDC automatisch eine 16-Bit Prüfsumme an. Diese 
  115.    Prüfsumme wird auch als "Cyclic Redudancy Check" oder kurz CRC 
  116.    bezeichnet.  Beim Lesen berechnet der FDC aus den eingelesenen 
  117.    Daten  die CRC-Prüfsumme erneut und vergleicht diese  mit  der 
  118.    auf der Diskette bereits abgespeicherten. Bei einem Lesefehler 
  119.    tritt zwischen diesen beiden Werten mit an Sicherheit grenzen-
  120.    der Wahrscheinlichkeit eine Diskrepanz auf.
  121.    
  122. 2. Schreiben eines Sektors:  Hier ist das Verifizieren nicht ganz
  123.    so  einfach.   Der  FDC  kann  jedenfalls  nicht   unmittelbar 
  124.    herausfinden, ob die Daten auf der Diskette richtig angekommen 
  125.    sind.  Die Verify-Routine des TOS verwendet hier einen kleinen 
  126.    Trick:
  127.    Alle geschriebenen Sektoren werden nach dem Schreiben in einen 
  128.    eigenen   1024  Byte-Puffer  eingelesen  (  512  Bytes   wären 
  129.    mindestens  erforderlich  ).  Wenn beim Schreiben  ein  Fehler 
  130.    aufgetreten  ist,  kann dies über die  CRC-Logik  festgestellt 
  131.    werden,  da  logischerweise nun auch ein CRC-Fehler  auftreten 
  132.    muß.  Es ist so immerhin nicht notwendig,  daß alle  geschrie-
  133.    benen  Daten  mit den im Speicher vorhandenen  Byte  für  Byte 
  134.    verglichen werden müssen.
  135.    Durch  diese Methode halbiert sich im allgemeinen die Schreib-
  136.    gegenüber  der  Lesegeschwindigkeit,   da  jeder  geschriebene 
  137.    Sektor noch einmal zum Verifizieren gelesen werden muß. Dieses 
  138.    Verify  kann  über das  Betriebssystem  ausgeschaltet  werden, 
  139.    indem  die  Systemvariable  $444 auf  einen  Wert  ungleich  0 
  140.    gesetzt  wird.  Dies ist aber aus Gründen der  Datensicherheit 
  141.    wirklich riskant. 
  142.  
  143. 3. Track-Verify nach Positionierung des Schreib/Lesekopfes: 
  144.    Nach  einer Positionierung des Schreib/Lesekopfes durch  einen 
  145.    SEEK-,  RESTORE oder STEP-Befehl des FDC besteht die  Möglich-
  146.    keit,  zu überprüfen,  ob der logische Track mit dem physikal. 
  147.    Track  auf  der  Diskette  übereinstimmt.   Es  kann   nämlich 
  148.    vorkommen,  daß  der Schrittmotor des  Diskettenlaufwerks  den 
  149.    Befehlsimpulsen zur Positionierung nicht folgen kann und  sich 
  150.    dann auf einem falschen Track befindet. Zum Verifizieren liest 
  151.    der FDC das ID-Feld des nächsten Sektors, in dem Seite, Track, 
  152.    Sektornummer und Größe als Informationen über den betreffenden 
  153.    Sektor abgelegt sind.
  154.    Die BIOS-Routine 4 ( "rwabs" ),  über die fast alle Disketten-
  155.    zugriffe  laufen,  macht von diesem Verify beim  Positionieren 
  156.    Gebrauch.  Die entsprechende Stelle liegt bei jeder  Betriebs-
  157.    systemversion  natürlich  woanders.  Bei der  TOS-Version  1.0 
  158.    liegt sie z.B. an der Addresse $FC1B8A:
  159.    $FC1B8A:    moveq.l   #$14,d6   ; SEEK mit Verify
  160.    $FC1B90:    bsr       $FC1BB6   ; an FDC schicken
  161.  
  162.    Im "Atari ST INTERN" von Data Becker wird die Routine,  in der 
  163.    diese Sequenz enthalten ist, als "go2track" bezeichnet, aller-
  164.    dings ist dieser Name nicht "offiziell".  Sie dient dazu,  wie 
  165.    bereits der Name sagt, einen bestimmten Track anzusteuern.
  166.    
  167.    Speeder+ schaltet dieses Verify aus, indem der FDC-Befehl  $14 
  168.    durch  $10  ( SEEK ohne Verify ) ersetzt wird.  Dies  hat  bei 
  169.    längeren Files eine Verdopplung der Schreib- und Lesegeschwin-
  170.    digkeit zur Folge.  Der Grund liegt in nutzloser Wartezeit des 
  171.    FDC:
  172.    Nehmen  wir  einmal an,  daß 50KByte oder  100  Sektoren,  die 
  173.    hintereinanderliegen,  gelesen werden sollen.  Nach 9 Sektoren 
  174.    (  bzw.  10  Sektoren  bei  einer  FATDISK,  11  Sektoren  bei 
  175.    'hyperformatierten'  Disketten ) muß der Schreib/Lesekopf  auf 
  176.    den  nächsten Track positioniert werden.  Bei  eingeschaltetem 
  177.    Verify holt der FDC die physik.  Tracknummer aus dem  nächsten 
  178.    ID-Feld,  das zu Sektor 1 des nächsten Tracks gehört. Sektor 1 
  179.    ist  aber  gleichzeitig derjenige  Sektor,  der  als  nächster 
  180.    gelesen  werden  muß.  Da  dessen ID-Feld soeben  am  Lesekopf 
  181.    vorbeigerauscht  ist,  muß  eine  ganze  Umdrehung  abgewartet 
  182.    werden,  bis er das nächste Mal gefunden wird.  Für das  Lesen 
  183.    eines  Tracks werden also statt einer Umdrehung  jeweils  zwei 
  184.    benötigt. Die mögliche Übertragungsrate wird dadurch halbiert!
  185.  
  186. Welche Nebenwirkungen treten bei der Ausschaltung  dieses Verifys 
  187. auf?  Überhaupt keine!  Ein Track-Verify findet nämlich auch  bei 
  188. jedem  Schreib/Lesevorgang auf Diskette statt.  Der FDC prüft bei 
  189. einem READ-SECTOR-Befehl ( bzw. WRITE-SECTOR ), ob die vorhandene 
  190. Tracknummer  im  ID-Feld  mit der gewünschten  Nummer  im  Track-
  191. Register des FDC übereinstimmt.  Ein Fehler wird über ein Status-
  192. bit  erkannt ( "Record not found" ) und auch  vom  Betriebssystem 
  193. registriert.  Wenn wirklich einmal ein falscher Track angesteuert 
  194. ist,  sucht das Betriebssystem die betreffende Spur noch einmal ( 
  195. ein "RESEEK"-Vorgang ). Technisch gelingt dies über ein RESTORE ( 
  196. Positionierung  des Lesekopfes auf Track 0 ) und einem  anschlie-
  197. ßenden  SEEK-Befehl an den FDC.  Damit wird die  gewünschte  Spur 
  198. auch bei einem Positionierungsfehler mit an Sicherheit grenzender 
  199. Wahrscheinlichkeit gefunden.
  200.  
  201. Keine Geschwindigkeitsvorteile bieten Fastload-Utilities übrigens 
  202. bei "Schnelladedisketten", die auf folgende Art formatiert worden 
  203. sind:  
  204. Track 0 beginnt mit Sektor 1 ( wie immer ).  Bei jedem  folgenden 
  205. Track rutscht der logische Sektor 1 um eine Position nach hinten, 
  206. d.h.  Track  1 beginnt mit Sektor 9 ( bzw.  Sektor 10  bei  einer 
  207. Fatdisk! ) und erst anschließend folgt Sektor 1.
  208. Auf Track 2 steht Sektor 1 schließlich erst an  3. Position, usw. 
  209. Durch  diese Methode wird auch bei  eingeschaltetem  Track-Verify 
  210. fast  eine  Verdopplung  der  Schreib-  und   Lesegeschwindigkeit 
  211. erzielt,   leider   bieten  aber  nach  wie  vor  die   wenigsten 
  212. Formatierprogramme eine Option an,  nach der Disketten mit dieser 
  213. Methode formatiert werden können. 
  214.  
  215.  
  216.  
  217. III. Mögliche Probleme mit Fastload-Utilities
  218.  
  219. Mit  dem  Laufwerkstyp NEC-1037 traten in  Einzelfällen  Probleme 
  220. beim Lesen von Daten auf.  Ab und zu werden korrekt  geschriebene 
  221. Sektoren als defekt deklariert. Bei weiteren Leseversuchen werden 
  222. sie dennoch richtig eingelesen.
  223. Ich vermute, daß es sich hierbei um ein rein mechanisches Problem 
  224. dieses  ansonsten sehr guten Laufwerks handelt.  Bei  ausgeschal-
  225. tetem  Track-Verify  wird nach einem Spurwechsel der  zu  lesende 
  226. Sektor  in der Regel viel schneller erreicht als mit Verify (  wo 
  227. meistens  bis  zum  Lesen der Daten  ein  ganzer  Diskettenumlauf 
  228. gewartet  werden  muß!  ).  Wenn der  Schreib/Lesekopf  nach  dem 
  229. Spurwechsel  noch etwas schwingt,  werden die Daten  evtl.  nicht 
  230. korrekt  eingelesen,  obwohl sie natürlich richtig  aufgezeichnet 
  231. worden  sind.  Sofern  meine Theorie stimmt,  könnten  durch  die 
  232. leichte  und flache Bauweise des NEC-1037 Laufwerks  solche  Pro-
  233. bleme unter Umständen auftreten.  Allerdings muß ich zugeben, daß 
  234. diese  Erklärung eine reine Hypothese darstellt,  die  nicht  un-
  235. bedingt zutrifft.
  236. Falls bei Ihnen dieses Problem auftauchen sollte,  empfehle  ich, 
  237. eine  Systemvariable im Betriebssystem zu verändern.  Es  handelt 
  238. sich  um die Variable in $440 (  seekrate,  Word-Format  ).  Wenn 
  239. diese  Variable auf '0' statt auf '3' gesetzt wird,  erhöht  sich 
  240. die Wartezeit,  die der FDC nach einem Step-Impuls einlegt, von 3 
  241. auf 6 ms.  Auf die Addresse $440 kann übrigens nur im Supervisor-
  242. Modus des 68000ers zugegriffen werden.
  243. Ich möchte noch einmal ausdrücklich darauf hinweisen,  daß dieser 
  244. bisher  nur  im  Zusammenhang mit Laufwerken des  Typs  NEC  1037 
  245. aufgetretene  "Fehler"  im Grunde nichts  mit  mangelnder  Daten-
  246. sicherheit  des Speeder+ oder anderer Fastload-Programme  zu  tun 
  247. hat.  Die Daten werden zumindest immer korrekt aufgezeichnet,  im 
  248. schlimmsten  Falle käme man an sie nach einem  neuen  Bootvorgang 
  249. ohne  Fastload-Programm  heran,  normalerweise aber  bereits  bei 
  250. einem weiteren Leseversuch. 
  251. Natürlich  tritt das eben erwähnte Problem nicht auf  allen  NEC-
  252. 1037  Laufwerken auf,  und selbst auf betroffenen Laufwerken  nur 
  253. höchst sporadisch.
  254.        Mit anderen Laufwerkstypen hat es bisher keine  Schwierig-
  255. keiten gegeben, auch nicht mit 5.25"-Laufwerken.
  256.  
  257. Eine weiteres häufiges Problem wird Fastload-Programmen völlig zu 
  258. unrecht zugeschrieben:
  259. Disketten  können zwar mit dem eigenen Laufwerk  korrekt  gelesen 
  260. werden, nicht jedoch auf einem anderen. Derartige Schwierigkeiten 
  261. können  nie  durch  den Speeder+  verursacht  worden  sein. 
  262. Ursache für solche Probleme sind vielmehr  z.B.  unterschiedliche 
  263. Drehzahlen  der  Laufwerke ( 300 UpM ist  die  Solldrehzahl,  die 
  264. tatsächliche  Drehzahl eines Laufwerks kann aber durchaus bis  zu 
  265. 2%  von  diesem Wert abweichen!  ),  oder  auch  ein  verstaubter 
  266. Schreib/Lesekopf  bei einem der beiden "inkompatiblen"  Laufwerke 
  267. etc.  Derartige Fehler hängen natürlich nicht mit dem Ausschalten 
  268. eines  Verifys zusammen,  da physikalische Intoleranzen  zwischen 
  269. Laufwerken  nichts  damit zu tun haben,  ob Daten mit  oder  ohne 
  270. Track-Verify aufgezeichnet worden sind.
  271.  
  272.  
  273. Die  Erfahrungen in Zusammenhang mit Fastload-Programmen  zeigen, 
  274. daß  beim weitaus größten Teil der ST-Anwender, die entsprechende
  275. Utilities verwenden,  niemals irgendwie geartete Probleme  aufge-
  276. treten sind.
  277. Und schließlich verwende ich selbst seit Jahren TOS-Versionen  im 
  278. EPROM,   in  denen  ich  das  Track-Verify  ausgeschaltet   habe. 
  279. Natürlich  fühle ich mich trotz eines Verifys weniger  in  meinem 
  280. Rechner  keineswegs bedroht ( eher schon von  der  Fileverwaltung 
  281. des GEMDOS! ).
  282.      Auch  wenn  in  (  seltenen  )  Einzelfällen  Probleme   mit  
  283. Fastload-Utilities   beim  Lesen  auftreten   können,   ist   der 
  284. wichtigsten   Forderung  bezüglich  der   Datensicherheit   immer 
  285. Rechnung getragen:
  286. Fehlerhaftes  Aufzeichnen oder Überschreiben von  Daten  aufgrund 
  287. ausgeschaltetem Track-Verify ist unmöglich.
  288. Sie  sollten  sich  also  nicht  davon  abhalten  lassen,   Ihren 
  289. Diskettenlaufwerken auf die Sprünge zu helfen!
  290.  
  291.  
  292.  
  293. III. Algorithmus von "Speeder4.prg"
  294.  
  295. Nach diesen theoretischen Vorbemerkungen können wir endlich   den 
  296. 'Speeder+'  unter die Lupe nehmen.    
  297. Fast alle Zugriffe auf die Diskettenlaufwerke laufen,  wie weiter 
  298. oben schon gesagt,  über die Funktion 4 des BIOS,  in der nur ein 
  299. einziges  Byte  geändert werden muß.  Im ROM  ist  es  allerdings 
  300. unmöglich, diese Stelle zu manipulieren ( was natürlich ärgerlich
  301. ist ). 
  302. Zum  Glück  wird diese Routine über einen Vektor  angesprungen  ( 
  303. Systemvariable  $476  ),  der auf eine eigene  Routine  umgebogen 
  304. werden kann.  Von dieser Tatsache machen  z.B. auch  Ramdisks und 
  305. Festplatten-Treiber Gebrauch.
  306.  
  307. Das  Prinzip jedes Fastload-Programms besteht darin,  daß es  als 
  308. residentes  Programm  installiert wird.  Wenn  es  nicht  bereits 
  309. selbst von der alten rwabs-Routine abgeleitet ist, wie mein alter 
  310. "Speeder", muß es diese aus dem Betriebssystem kopieren.
  311.  
  312. Leider ist die originale rwabs-Routine eine der längsten Routinen 
  313. im Betriebssystem,  zu ihr gehören beispielsweise  Unterprogramme 
  314. zur DMA-Kontrolle,    Fehlerbehandlung etc.    Zudem stehen diese 
  315. Subroutinen nicht ordentlich hintereinander,  sondern sind  recht  
  316. verstreut.
  317. Beim  Kopieren  der  originalen rwabs-Routine  ins  RAM  bestehen 
  318. deutliche Unterschiede zwischen 'Fastload' und meinem Speeder+. 
  319. Fastload-Versionen kopieren ab Beginn des Betriebssystems 8 KByte 
  320. Daten  aus dem ROM in einen programminternen Puffer,  das  reicht 
  321. bei  allen  bisherigen TOS-Versionen aus,  um  die  rwabs-Routine 
  322. komplett ins RAM abzubilden.  Anschließend werden von  "Fastload" 
  323. noch einige Sprungaddressen reloziert,  wobei je nach TOS-Version 
  324. auf eine eigene Tabelle zugegriffen wird. 
  325. Speeder+ verhält sich wesentlich intelligenter. Zunächst wird mit 
  326. Hilfe von Suchstrings  nach dem  im  Speicher am  weitesten vorne
  327. stehenden  Unterprogramm gesucht, das noch von der  rwabs-Routine
  328. aufgerufen wird. Bei allen bisherigen TOS-Versionen war dies bis-
  329. her entweder die  BIOS-Mediach-Routine  oder die  XBIOS-Flopread-
  330. Funktion.
  331. Speeder+  vergleicht  die  Startaddressen beider Routinen und ko-
  332. piert ab der niedrigeren Addresse 4 KByte aus  dem Rom  ins  RAM,
  333. damit   wird im   Vergleich   zu "Fastload"  ca.  4 KByte weniger 
  334. Speicher belegt.   
  335. Die Relozierroutine kommt ebenfalls ohne Tabellen aus.  Es müssen 
  336. lediglich   die  Sprungaddressen  einiger  jsr-Aufrufe   angepaßt 
  337. werden.  Jsr-Befehle  (  absolute Addressierung )  können  leicht 
  338. aufgefunden werden, indem nach dem Wort $4EB9 gesucht wird.
  339. Zwei Sprunaddressen,  nämlich in den 'Critical Error Handler' und 
  340. in  die Sektorkopierroutine 'fastcopy',  zeigen weiterhin in  den 
  341. ROM-Bereich.  Durch  diesen Trick,  wirklich nur die Routinen  zu 
  342. kopieren,   die  für  die  doppelte   Schreib/Lesegeschwindigkeit 
  343. relevant  sind,  ist  der Speeder+ fast so  kompakt  wie  möglich 
  344. geworden.  Lediglich der Vorläufer 'Speeder.prg' V1.4  reserviert 
  345. noch weniger Speicher ( ca. 2.5 KByte ), läuft dafür aber nur mit 
  346. TOS 1.0.
  347. Anschließend wird im Ram-Puffer noch nach der Routine  'go2track' 
  348. gesucht und der FDC-Befehl 'Seek mit Verify' ($14) in 'Seek  ohne 
  349. Verify' ($10)  umgeändert.
  350. Zuletzt wird der Vektor $476 auf eine Speeder+-Routine umgebogen, 
  351. die bei rwabs-Aufrufen erkennt, ob Laufwerk A oder B angesprochen
  352. wird.  Falls dies nicht der Fall ist,  wird die Kontrolle an  den
  353. entsprechenden Ramdisk-, Festplattentreiber etc. abgegeben.
  354.  
  355. Da  Speeder+  im Gegensatz zu 'Fastload'  keine  Reloziertabellen 
  356. verwendet,   sondern  ausschließlich  mit  Suchstrings  arbeitet, 
  357. dürfte es sogar auf zukünftigen TOS-Versionen funktionieren, wenn 
  358. für den ST das TOS überhaupt noch weiterentwickelt werden sollte.
  359.  
  360. Die Funktionsfähigkeit des Speeder+ ist zwar ( bisher ) auf allen 
  361. TOS-Versionen des Atari ST gewährleistet.  Wahrscheinlich wird er 
  362. jedoch   nicht   auf   dem   bereits   lieferbaren   'Atari   TT' 
  363. funktionieren.  Ich weiß ehrlich gesagt noch nicht einmal, ob das 
  364. TT-Tos ein Track-Verify vorsieht oder nicht.
  365.  
  366. Eine Anpassung des Speeder+ an den 'Atari  TT' würde ich auch auf
  367. keinen Fall als meine Aufgabe betrachten.  Aber schließlich  gebe 
  368. ich dafür ja auch den Quelltext meines Programms mit  heraus,  so 
  369. daß  bei  Bedarf jemand ohne zu großen  Aufwand  diese  Anpassung 
  370. erledigen könnte. 
  371.  
  372.  
  373.  
  374.      Kulmbach, den 18.10. 90
  375.           Stefan Schreiber 
  376.  
  377.  
  378. P.S.: 
  379. "Speeder+"  ist ein äußerst nützliches Utility und  steigert  die 
  380. Leistungsfähigkeit  Ihres Computersystems evtl.  ganz  erheblich. 
  381. Falls Sie dieses Programm häufig benutzen,  würde ich es für fair 
  382. halten,   wenn  Sie  mir  als  Anerkennung  dafür  einen   Betrag 
  383. zuschicken, den Sie für angemessen halten.
  384. In diesem Falle vielen Dank bereits im voraus!
  385.  
  386.