Re: exotische Disketten und dd

From: Joerg Wunsch <j(at)uriah.heep.sax.de>
Date: Mon, 17 Sep 2001 19:17:32 +0200

As Marc Santhoff wrote:

> Ein Programm, dem man die Lesereihenfolge der Sektoren und
> Spuren vorgeben kann gibt es nicht auch noch?

Das gibt es nicht. Allerdings ist die Sektorreihenfolge auch egal, Du
verlierst halt u. U. nur Umdrehungen, wenn Du einen Sektor ,,zur
falschen Zeit'' lesen willst. Normalerweise ist der Interleave nur
beim Formatieren wichtig (und kann dort auch eingestellt werden).

Mit Spur-Interleaves kann ich derzeit nicht dienen, lediglich die
Doppelschritte sind implementiert (40 Zylinder Floppy im 80 Zylinder
Laufwerk).

> Gnlmpfh, leider nicht. Es werden immer noch die
> Adreßmarken nicht gefunden:
>
> fd0c: hard error reading fsbn 0 (ST0 40<abnrml> ST1 1<no_am> ST2 0 cyl 0 hd 0 sec 1)

Seltsam.

Kannst Du Dir FreeBSD-current auf der Maschine leisten? Dort gibt es
fdread mit der Option -I; damit kann man sich den Inhalt der
Sektor-ID-Felder einer Spur ansehen. Ich habe die Funktionalität
intern für die automatische Formaterkennung gebraucht, fand es aber
ganz nützlich, sie auch in ein Userland-Kommando zu verdrahten, um
eben derartige Analysen vornehmen zu können.

> Und zum CP/Mulator: nach Auskunft eines wissenden
> Greises aus der Zeit, als die Maschine noch lebte,
> haben die Disketten eine sehr seltsame Spur/Sektor
> Reihenfolge, die mit keinem bekannten CP/M-Format
> zu erschlagen ist. Also müßte im Emulator diese
> Abbildung geändert werden.

Diese Aussage trifft praktisch auf jede CP/M-Diskette zu. ;-)
Es gab dazumals 1001 verschiedene Formate, so daß ein
vernünftiger Emulator das auch einstellbar haben sollte.

> Muß es statt
> ...,80,800,... nicht eigentlich ...80,2560,... heißen?

Im -current gibt's die Angabe nicht mehr, sie ist eigentlich redundant
und wird von fdcontrol intern errechnet. (Der Kernel benutzt in
seiner Tabelle den Parameter, damit er schnell feststellen kann, ob
eine gewünschte Anforderung innerhalb der Limits liegt, das spart es,
die Berechnung für jeden gewünschten read(2) vorzunehmen.)

> Es sind doch 2*80*16 Sektoren?

Ich bin mir jetzt gar nicht sicher, ob die Angabe nicht in DEV_BSIZE
gemeint ist, dann wären es 1280. Aber Du hast Recht, man muß das
anpassen. Sollte aber nicht die Ursache Deines Problems sein,
zumindest die ersten Spuren müssen sich immer lesen lassen.

> Und: mit 3 als letztem Parameter für d. interleave
> --> geht nicht,immer noch keine Adreßmarken in allen
> Kombinationen.

Ja, der Wert wird wie geschrieben nur von fdformat ausgewertet.

-- 
cheers, J"org               .-.-.   --... ...--   -.. .  DL8DTL
http://www.sax.de/~joerg/                        NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 17 Sep 2001 - 19:20:33 CEST

search this site