home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / EFFO / forum5.lzh / RECHNER / GEPARD / wd2797.doc < prev    next >
Text File  |  1988-06-03  |  5KB  |  100 lines

  1.  
  2. Heinz Joachim Weil                                      Ursrainer Ring 101
  3.                                                         D - 7400  Tⁿbingen
  4.                                                         Tel. (07071) 68315
  5.  
  6.  
  7.  
  8.  
  9.                         Zum Floppytreiber wd2797
  10.                         ========================
  11.  
  12. Der Floppytreiber wd2797 fⁿr den GEPARD entspricht im wesentlichen dem
  13. entsprechenden Treiber unter GDOS 1.3 und wurde von MB an OS-9 angepa▀t. 
  14. ZusΣtzlich hat MB die M÷glichkeit eingebaut, diverse weitere
  15. Diskettenformate zu lesen. 
  16.  
  17. Mit der OS-9 Version 2.1 wurde auch eine neue Version des wd2797
  18. ausgeliefert (Rev # 3 Ed # 3), die einige weitere, bisher nur im
  19. Sourcetext dokumentierte ─nderungen enthΣlt. 
  20.  
  21.                             Der Sektorpuffer
  22.                             ----------------
  23.  
  24. Hauptkritik der GEPARD-Besitzer an OS-9 war der langsame
  25. Diskettenzugriff (besonders im Vergleich zu GDOS).  Dieser ist vor allem
  26. durch die Directory-Struktur unter OS-9 bedingt (s.a.  os9_info auf OS-9
  27. Forum 1).  Um dem abzuhelfen, wurde in den Floppytreiber die M÷glichkeit
  28. eingebaut, Diskettensektoren im Hauptspeicher zwischenzulagern. 
  29.  
  30. Wird ein Sektor von Diskette gelesen, dann legt ihn der Treiber in einen
  31. Puffer (oder Cache) ab.  Ist der Puffer voll, dann werden die Sektoren,
  32. die am lΣngsten ungenutzt zwischengespeichert waren, zuerst aus dem
  33. Puffer entfernt.  Wenn vom Betriebssystem ein Sektor angefordert wird,
  34. schaut der Treiber zunΣchst im Puffer nach, ob der Sektor dort bereits
  35. abgelegt ist; ist das der Fall, wird er von dort statt von Diskette
  36. gelesen.  Wird ein Sektor auf Diskette geschrieben, so wird er
  37. anschlie▀end aus dem Puffer entfernt; damit wird vermieden, da▀ im Fall
  38. eines Schreibfehlers verschiedene Versionen ein und desselben Sektors im
  39. Puffer und auf Diskette existieren. 
  40.  
  41. Fⁿr alle Floppy-Laufwerke wird nur ein Puffer angelegt. Bei geeigneter
  42. Gr÷▀e (z.B. 128kB bei zwei Laufwerken) ist sichergestellt, da▀ sich die
  43. Directories nach einmaligem Lesen praktisch immer im Hauptspeicher
  44. befinden. Auch Hilfstexte, Sourcetexte beim Compilerlauf etc. befinden
  45. sich hΣufig, wenn sie erneut gebraucht werden, noch im Puffer. Insgesamt
  46. ergibt sich dadurch ein deutlich schnellerer Zugriff auf alle Dateien.
  47. Nachteile ergeben sich allenfalls beim backup: hier sucht der Treiber
  48. stets vergeblich die zu kopierenden Sektoren im Hauptspeicher und
  49. verliert dadurch Zeit.
  50.  
  51. Wenn Disketten gewechselt werden, mⁿssen alle Sektoren, die dieser
  52. Diskette zugeordnet sind, aus dem Puffer entfernt werden. Leider gibt es
  53. keine zuverlΣssige Methode, einen Diskettenwechsel zu erkennen, wenn
  54. dies nicht bereits das Laufwerk tut. Daher wird ein Sektorpuffern nur
  55. dann angelegt, wenn Laufwerke mit "Tⁿrabfrage" angeschlossen sind.
  56.  
  57.                         Die Spurwechselzeiten
  58.                         ---------------------
  59.  
  60. Bisher entschied der Treiber anhand der Kennung der angeschlossenen
  61. Floppy-Controller-Karte ⁿber die Spurwechselzeiten (step rates). Nun
  62. k÷nnen die Spurwechselzeiten fⁿr jedes Laufwerk getrennt im Device
  63. Descriptor vorgegeben werden. Das ist nⁿtzlich fⁿr spezielle
  64. Kombinationen von FDC-Karte und Laufwerken (z.B. "neues" SONY-Laufwerk
  65. an umgebauter "alter" FDC-Karte [Umbau s. GDOS Forum 9; dieser Umbau
  66. wird vom Treiber unterstⁿtzt]).
  67.  
  68.                         Zum Device Descriptor
  69.                         ---------------------
  70.  
  71. Um die oben genannten Optionen zu aktivieren, mu▀ der Device
  72. Descriptor fⁿr das jeweilige Laufwerk geΣndert werden. Dabei sollte
  73. darauf verzichtet werden, die in systype.d definierten Makros zu Σndern,
  74. die quasi einen Standard darstellen; vielmehr sollte der gewⁿnschte
  75. Parameter einfach nach Aufruf des Makros gesetzt werden. Das k÷nnte
  76. beispielsweise fⁿr den Device Descriptor d0.a so aussehen:
  77.  
  78.  nam D0 Device Descriptor
  79.  use defsfile
  80.  use /DD/DEFS/rbfdesc.a
  81.  DiskD0
  82. * Hier folgen beispielhaft einige ─nderungen:
  83. StepRate     set 2      6ms Spurwechselzeit z.B. fⁿr SONY-Slimline-Laufwerke
  84. *                       Steht hier eine 7 (wie im Makro DiskD0), wird die
  85. *                       Spurwechselzeit entsprechend der FDC-Karte gewΣhlt
  86. TotalCyls    set $200   Gr÷▀e des Sektorpuffers in Sektoren (hier 512 = 128kB)
  87. *                       (TotalCyls ist eigentlich nur bei Festplatten definiert
  88. *                       und hier zweckmΣ▀ig umdefiniert). TotalCyls ist 
  89. *                       entweder 0 (default) oder $100 bis $FFFF (64kB bis
  90. *                       4MB)
  91.  ends
  92.  
  93. Achtung: Da alle Laufwerke nur einen Sektorpuffer gemeinsam benutzen,
  94. ist die Definition der Gr÷▀e des Puffers (TotalCyls) im Device Descriptor d0
  95. ausschlaggebend. Dagegen k÷nnen Spurwechselzeiten (StepRate) fⁿr jedes
  96. Laufwerk bzw. in jedem Device Descriptor einzeln definiert werden.
  97.  
  98. HJW 26.04.1988
  99.  
  100.