fd(7) (Nur RM400) fd(7)
NAME
fd - Diskettentreiber
BESCHREIBUNG
Disketten kommen im RM400-System hauptsächlich als Key-Disketten bei
der Installation von Software-Paketen zum Einsatz.
Der Zugriff auf die Disketten erfolgt über die Gerätedateien im Ver-
zeichnis /dev/at/flp (siehe DATEIEN).
Es werden Gerätenamen in folgendem Format unterstützt:
[r]fx3d[t] Diese Gerätenamen sind Disketten doppelter Dichte mit 9
Sektoren pro Spur zugeordnet; über die mit t abge-
schlossenen Gerätenamen wird dabei auf die gesamte Dis-
kette (720 Kilobyte formatierter Speicherplatz) zuge-
griffen, über die nicht mit t abgeschlossenen Gerätena-
men auf die gesamte Diskette mit Ausnahme des ersten
Zylinders (711 Kilobyte formatierter Speicherplatz).
[r]fx3h[t] Diese Gerätenamen sind Disketten hoher Dichte mit 18
Sektoren pro Spur zugeordnet. Über die mit t abge-
schlossenen Gerätenamen wird dabei auf die gesamte Dis-
kette (1,44 Megabyte formatierter Speicherplatz) zuge-
griffen, über die nicht mit t abgeschlossenen Gerätena-
men auf die gesamte Diskette mit Ausnahme des ersten
Zylinders (1,422 Megabyte formatierter Speicherplatz).
[r]f0[t] Hierbei handelt es sich um Namen für Geräte mit automa-
tischer Formatermittlung, die selbsttätig das Format
der im Laufwerk eingelegten Diskette feststellen. Auch
hier wird über die mit t abgeschlossenen Gerätenamen
auf die gesamte Diskette (720 Kilobyte bzw. 1,44 Mega-
byte formatierter Speicherplatz) zugegriffen, über die
nicht mit t abgeschlossenen Gerätenamen auf die gesamte
Diskette mit Ausnahme des ersten Zylinders (711 Kilo-
byte bzw. 1,422 Megabyte formatierter Speicherplatz).
Diese Gerätenamen können selbstverständlich nur benutzt
werden, wenn die im Laufwerk eingelegte Diskette
bereits formatiert ist.
Bei sämtlichen mit t abgeschlossenen Gerätenamen wird von 80 Zylin-
dern, 2 Schreib-/Leseköpfen und 512 Byte pro Sektor ausgegangen.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
fd(7) (Nur RM400) fd(7)
GERÄTE- UND GERÄTEKLASSENNUMMER
Geräteklassennummer
Beim Diskettentreiber fd wird sowohl block- als auch zeichenorien-
tierten Geräten die Geräteklassennummer 23 zugeordnet.
Gerätenummer
Über die Gerätenummer wird eines der Aufzeichnungsformate sowie der
Bereich der Diskette ausgewählt, auf den der Benutzer zugreifen
möchte. Derzeit werden folgende Aufzeichnungsformate unterstützt:
6: Für Disketten doppelter Dichte ([r]fx3d[t])
7: Für Disketten hoher Dichte ([r]fx3h[t])
8: Für die automatische Formatermittlung ([r]f0[t])
Derzeit werden die folgenden Bereiche unterstützt:
0: Für den Zugriff auf die gesamte Diskette (auf alle 80 Zylinder
bei mit t abgeschlossenen Gerätenamen)
2: Für den Zugriff auf die gesamte Diskette mit Ausnahme des
ersten Zylinders (d. h. auf die Zylinder 1 bis 79 bei nicht
mit t abgeschlossenen Gerätenamen)
Die Gerätenummer kann durch die Formel "format * 16 + bereich * 2"
errechnet werden.
IOCTL-Funktionsaufrufe
ioctl(2)-Funktionsaufrufe haben folgendes Format:
ioctl(fd, command, arg)
int fd, command;
/* arg siehe unten */
Der Diskettentreiber fd unterstützt derzeit fünf ioctl-Funktionsauf-
rufe:
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
fd(7) (Nur RM400) fd(7)
VGETPARMS
Geräteparameter abfragen (Gerätetyp, Anzahl der Schreib-
/Leseköpfe, Anzahl der Zylinder, Anzahl der Sektoren pro Spur
usw.). arg ist dabei ein Zeiger auf die folgende Struktur:
struct diskparms
{
char dptype; /* Diskettentyp (siehe unten) */
unchar dpheads; /* Anzahl der Schreib-/Leseköpfe */
ushort dpcyls; /* Anzahl der Zylinder */
ushort dpsectors; /* Anzahl der Sektoren pro Spur */
ushort dpsecsiz; /* Anzahl der Bytes pro Sektor für diesen
Bereich */
ushort dpptag; /* Bereichs-Kennung */
ushort dppflag; /* Bereichs-Flag */
daddrt dppstartsec; /* Absolute Nummer des ersten Sektors */
daddrt dppnumsec; /* Anzahl der Sektoren */
}
Der Diskettentreiber setzt dptype in jedem Fall auf DPT_FLOPPY
(für Diskettenlaufwerk). Derzeit wird dpheads vom Diskettentrei-
ber auf 2 eingestellt, fdcyls auf 80, dpsecsiz entweder auf 9
(doppelte Dichte) oder 18 (hohe Dichte) und dpsecsiz auf 512.
dpptag und dppflag sind derzeit unbenutzt und auf 0 gesetzt.
dpstartsec und dpnumsec werden dem gewählten Bereich entspre-
chend eingestellt.
Die Gesamtgröße des Bereichs errechnet sich aus der Formel:
"arg->dpsecsiz * arg->dppnumsec".
VFORMAT
Ein oder mehrere Spuren mit einem bestimmten Verzahnungs-
(Interleave)-Faktor formatieren (diese Funktion wird von Geräten
mit automatischer Formatermittlung (f0, rf0, f0t und rf0t) nicht
unterstützt). arg ist dabei ein Zeiger auf die folgende Struktur:
struct iafmt
{
ushort starttrk; /* Nummer der ersten Spur */
ushort numtrks; /* Anzahl der zu formatierenden Spuren */
ushort intlv; /* Verzahnungs-Faktor */
};
Um die Kompatibilität mit den PCs nach dem Industriestandard her-
zustellen, werden die Sektoren in jeder Spur durchnumeriert,
wobei der erste Sektor die Nummer 1 erhält.
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
fd(7) (Nur RM400) fd(7)
FDOR
Diskettenlaufwerk auf bekannten Zustand zurücksetzen. arg ist
dabei ein Zeiger auf ein Zeichen. Wenn das drittniedrigste Bit
dieses Zeichens zurückgesetzt ist, wird das Diskettenlaufwerk
zurückgesetzt.
FFCR
Datenübertragungsgeschwindigkeit ändern. arg ist dabei ein Zeiger
auf ein Zeichen. Über die zwei niedrigstwertigen Bits können drei
verschiedene Übertragungsgeschwindigkeiten eingestellt werden:
0 stellt die Übertragungsgeschwindigkeit auf 500 Kilobit pro
Sekunde ein
1 stellt die Übertragungsgeschwindigkeit auf 500 Kilobit pro
Sekunde ein
2 stellt die Übertragungsgeschwindigkeit auf 250 Kilobit pro
Sekunde ein
3 stellt die Übertragungsgeschwindigkeit auf 125 Kilobit pro
Sekunde ein (dieser Wert wird derzeit nicht unterstützt).
FDTYP
Stellt den Gerätetyp fest. arg ist dabei ein Zeiger auf ein Zei-
chen ohne Vorzeichen, das auf den Wert 4 (für 3,5 Zoll-
Diskettenlaufwerk) gesetzt wird.
DATEIEN
/dev/at/flp/f0
/dev/at/flp/rf0
/dev/at/flp/f0t
/dev/at/flp/rf0t
/dev/at/flp/fx3d
/dev/at/flp/rfx3d
/dev/at/flp/fx3dt
/dev/at/flp/rfx3dt
/dev/at/flp/fx3h
/dev/at/flp/rfx3h
/dev/at/flp/fx3ht
/dev/at/flp/rfx3ht
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
fd(7) (Nur RM400) fd(7)
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98