CDrive CD ROM-Filesystem für AMIGA Computer 1. Einführung CDrive ist ein CD-Rom-Filesystem für den Commodore Amiga und unterstützt zur Zeit ISO 9660 Level1, Level2, Rockridge und High Sierra. Durch seinen eigenen, konfigurierbaren Cache oder in Kombination mit DynamiCache wird ein sehr schneller Zugriff auf die CD-Daten ermöglicht. Da CDRoms meistens plattformübergreifend benutzt werden, wurde 1985 das High Sierra Format festgelegt und etwas später, mit einigen kleinen Veränderungen, als ISO9660 übernommmen. Dieses gängige Format ist heute weiterverbreitet, und große Mengen von Daten-CDs in diesem Format sind erhältlich. Um die Daten von einem ISO9660 CDRom lesen zu können, muß man ein Filesystem wie CDrive installieren, weil ISO9660 zu den vom Amiga bekannten Filesystem-Formaten völlig inkompatibel ist. Ein Filesystem stellt die Schnittstelle von den File/Directory-Strukturen auf einem Device zu den vom AmigaDOS bekannten File/Directory-Funktionen dar. Eine CDRom ist immer schreibgeschützt, so daß alle Lösch- oder Schreib- Operation nicht wirksam sind und ein "Disk WriteProtected"- Fehler zurückgegeben wird. 2. CDrive Installation CDRom-Laufwerk Zuerst sollte die CDRom-Laufwerk-eigene Anleitung durchlesen werden. Danach stellt man eine noch nicht von anderen Geräten am Controller benutzte SCSI- ID am CDRom-Laufwerk ein und schließt dieses unter Beachtung der Hardware- Anleitungen am Controller an. Filesystem Im Verzeichnis "CDRom" befindet sich ein Installationsscript, das nach Anklicken die notwendigen Dateien auf die Systemplatte kopiert. Die Installation kopiert die Datei CDrive in das L:-Verzeichnis und die Datei Mountlist.ZD0 in das Devs:-Verzeichnis. Zusätzlich werden verschiedene zdx: Icons in den devs:dosdrivers-Ordner kopiert. Um das zuvor angeschlossene CD-Laufwerk ansprechen zu können, muß entweder der UNIT-Eintrag in der verwendeten Mountlist auf die am CD- ROM-Laufwerk eingestellte SCSI-ID geändert werden, oder es muß, wenn Sie das CDRom automatisch beim Systemstart anmelden wollen, der UNIT und DEVICE-Eintrag eines zdx: Icons im devs:dosdrivers-Ordner auf die SCSI-ID des CDRom gesetzt werden. Um das Filesystem zu starten, gibt es drei verschiedene Möglichkeiten: a. Man ruft in der Shell das Kommando "Mount ZDx: from Mountlist.ZDx" auf b. Man fügt das Kommando "Mount ZDx: from Mountlist.ZDx" in die Datei "S:User-Startup" ein. c. Sie können das CDRom mittels Doppelklick auf eines der zdx:-Icons im devs:dosdrivers-Ordner anmelden. Befand sich das Icon schon beim Systemstart in diesem ordner, so ist das CDRom automatisch angemeldet worden. Wenn Sie das Icon in einen anderen Ordner verschieben, haben Sie die Möglichkeit, das CDRom nur bei Bedarf per Mausklick anzumelden. Für weitere Erläuterungen zum Systembefehl "Mount" schlagen Sie bitte in den System-Handbüchern nach. Eine typische Mountlist für ein CDRom-Laufwerk sieht etwa folgendermaßen aus: ZD0: Name des Handlers Device = z3scsi.device Name des SCSI Device Unit = 3 Nummer des SCSI-Devices Buffers = 40 Siehe Abschnitt über Cache Flags = 0 Siehe System Handbuch FileSystem = l:Z3-CDFS Name und Pfad des Filesystems BufMemType = 5 Siehe System Handbuch Mask = 0xfffffffc Wird nur im Cache Modus 0x0 benutzt GlobVec = -1 Siehe System Handbuch Mount = 1 Reserved = 0xffffffff Siehe Abschitt über Format LowCyl = 40 Siehe Abschnitt über Cache HighCyl = 4 Siehe Abschnitt über Cache Surfaces = 0x0 Siehe Abschnitt über Cache BlocksPerTrack = 0x1 Siehe Abschnitt über Cache Priority = 10 Siehe System Handbuch StackSize = 6000 Siehe System Handbuch # Format-Einträge für den MountEintrag "Reserved" Der Mountlist-Eintrag Reserved beinhaltet wichtige Flags, die das Rockridge- Format betreffen. Das Rockridge-Format beschreibt eine Erweiterung des ISO- Format und wurde hauptsächlich für den Unix- Bereich entwickelt. Der hauptsächliche Vorteil besteht in der Möglichkeit, einen größeren Namen, als ISO Level 1 erlaubt, mittels Rockridge-Erweiterung zu definieren. Der normale User sollte diese Flags immer auf 0xffffffff setzen, da die Funktionen nur für den erfahrenen User eine Bedeutung haben. Rockridge 0x80000000 Schaltet Rockridge Erweiterungen global an und aus. Rockridge_Name 0x00000001 Schaltet Rockridge-Name Erweiterungen an und aus. Rockridge_Date 0x00000002 Schaltet Rockridge-Datum Erweiterungen an und aus. Rockridge_OtherRights 0x00000004 Schaltet Rockridge-OtherRights Erweiterungen an und aus. Rockridge_GroupRights 0x00000008 Schaltet Rockridge-GroupRights Erweiterungen an und aus. Rockridge_OwnerRights 0x00000010 Schaltet Rockridge-OwnerRights Erweiterungen an und aus. Rockridge_UserID 0x00000020 Schaltet Rockridge-UserID Erweiterungen an und aus. Falls aus, wird die ID 0 benutzt. Rockridge_GroupID 0x00000040 Schaltet Rockridge-GroupID Erweiterungen an und aus. Falls aus, wird die ID 0 benutzt. ***** Cache-Einträge Das CDrive Filesysten bietet zur Zeit 2 verschiedene Cache-Modi an, die mittels dem Mount-Eintrag "BlocksPerTrack" eingestellt werden. -- BlocksPerTrack ist 0x0 Dies ist wohl der beste Modus für Benutzer, die das CDRom oft mittels der Shell ansprechen. Speicherverbrauch in Bytes: (Buffers + LowCyl + HighCyl) * 2048 -- Buffers bestimmt die Anzahl der gepufferten Directory Blöcken. LowCyl = 40 WB.info Block Burst bestimmt die Anzahl der Sektoren, die bei einem Zugriff auf ein .info Icon File im voraus gelesen werden sollen. Dadurch wird die Anzeige von Icons enorm beschleunigt. HighCyl = 4 SmallData Block Burst bestimmt die Anzahl der Sektoren, die bei einem Zugriff auf ein kleines Daten File, vorgelesen werden sollen. Dadurch werden kleinere File Operationen beschleunigt, z.B für Datenbanken. --- BlocksPerTrack ist 0x1 Wenn ein Lesezugriff stattfindet, wird zuerst getestet, ob der entsprechende Block schon im Cache vorhanden ist. Ist dies nicht der Fall, wird ab dem zu ladenen Block eine gewisse Anzahl von Sektoren im voraus gelesen, die mittels dem Eintrag für HighCyl bestimmt werden kann. Dies ist wohl der beste Modus für Benutzer, die das CDRom oft mittels der Workbench benutzen. Speicherverbrauch in Bytes: Buffers * HighCyl * 2048 --- Buffers bestimmt die Anzahl der statischen Cache-Blöcke. Ein Cache-Block besteht aus einer bestimmten Anzahl von Sektoren, die mittels HighCyl bestimmt wird. LowCyl hat keine Bedeutung in diesem Modus. HighCyl bestimmt die Anzahl der Sektoren, die in einem Cache-Block vorhanden sind.