DOS <1.25, FAT12 - Erstes Byte in der 1. FAT?

Gast #6830781
Lesenswert?

Ich hab ein altes 180kb Single-Sided Floppy Image von dem ich gerne 
Dateien kopieren würde, das FAT12 System ist noch aus der DOS-86/DOS 1.x 
Zeit d.h. alles ab DOS 2/Windows kann das nicht direkt lesen

die Original-Floppy hab ich nicht - somit fällt ein sauberes neu 
erstellen eines Floppy Images aus

In der FAT12 wird das Image "scheinbar" als Double-Sided (360kb) 
ausgezeichnet und Dosbox verweigert dann den imgmount - mit anderen 
Floppy Images funktioniert das problemlos, im Dosbox Forum konnten mir 
Dosbox-Entwickler nicht weiterhelfen - ist einfach nicht direkt 
supported - leicht falsche Images aus so alten DOSn zu laden

Jetzt möchte ich ein kleines Programm schreiben (FAT12 ist ja recht 
trivial) welches mir dieses DOS-86/DOS 1.x Dateisystem ausliest und die 
Dateien rauskopiert

ANMERKUNG: Software schreiben kann ich - egal ob in C, C++, Assembler, 
C#, Bits und Bytes, Python... - das mache ich schon sehr lange und 
ganztags - da brauche ich absolut keine Hilfe, den Export bekomme ich 
dann auch technisch problemlos hin) Mir fehlen nur ein paar Infos

Es ist schwer für genau dieses alte DOS-86/1.25 noch Beschreibungen zu 
dem leicht anderen Layout der FAT im Image zu finden - z.B. gibt es wie 
sonst ueblich bei dieser alten FAT12 keinen BIOS Parameter Block und der 
Boot-Sektor enthält auch keine zusätzlichen Informationen - das kam erst 
mit DOS 2.0

und in der FAT wird scheinbar im erste Byte definiert ob es ein Single 
oder Double-Side Format ist - das würde ich gerne genau wissen aber 
finde dazu gar nichts in meinen bisherigen Quellen (weil die alle erst 
so ab DOS 2.0 erklären)

https://www.win.tue.nl/~aeb/linux/fs/fat/fat-1.html
1
Historically this description has things backwards: DOS 1.0 did not have a BIOS Parameter Block, and the distinction between single-sided and double-sided 5.25" 360K floppies was indicated by the first byte in the FAT. DOS 2.0 introduced the BPB with media descriptor byte.

https://de.wikipedia.org/wiki/File_Allocation_Table#FAT12
1
Mit der 1980 erschienenen ersten Version von QDOS bzw. 86-DOS wurde FAT12 als Dateisystem für 8,0″- und 5,25″-Disketten eingeführt. Erst ab 86-DOS 0.42 vom Februar 1981 wiesen die internen Ordnungsstrukturen ein Format auf, das dem späteren FAT12-Format in MS-DOS und PC DOS in allen wesentlichen Punkten glich. Aufgrund abweichender logischer Geometrien und der Tatsache, dass der BIOS Parameter Block (BPB) erst mit DOS 2 eingeführt wurde, können jedoch (mit Ausnahme von SCP MS-DOS 1.25) weder MS-DOS noch PC DOS auf unter 86-DOS formatierte Medien zugreifen.

die meisten Quellen im Internet beziehen sich auf die noch gängige FAT12 
Variante - das ist kompatibel und gut genug beschrieben das mir das für 
die Implementierung reicht - nur diese ersten paar Bytes der FAT fehlen 
mir

https://www.husvedvf.de/hasw/mkp/fat/fat12.htm

https://en.wikipedia.org/wiki/Design_of_the_FAT_file_system

https://de.wikipedia.org/wiki/File_Allocation_Table#FAT12

https://github.com/microsoft/MS-DOS/blob/04a3d20ff411409ab98474892b2bb1713bde0f7f/v1.25/source/MSDOS.ASM#L99

hat einer von euch eine Idee wie die ersten Bytes (die ersten Cluster) 
von eine DOS-86/DOS 1.x FAT fuer einen Inhalte haben (und Nein, ich 
meinen nicht die Belegungs-Bedeutung FF7,FF8…FFF,002…FF6)

bitte nur posten wenn ihr gezielt zum Thema beitragen könnt
Keine Off-Topic DOS-Stories das ihr auch mal was mit XCOPY gemacht habt 
oder das das alles voll kompliziert ist und ich am besten Win11 
verwenden sollte :)
(Firma: S-C-I DATA GbR) #6830805
Lesenswert?

Wenn ich Images habe die Probleme machen,
So verrückt das auch klingt, aber die meisten kann mir 7Zip öffnen.;-)
Leider bin ich aber nicht ganz schlau geworden was du genau machen 
willst.
Habe aber für den BFM186 noch Infos der dass selbe Format verwendete wie 
du beschreibst.
Moderator Persönliche Seite #6830816
Lesenswert?

cppbert schrieb:
> hat einer von euch eine Idee wie die ersten Bytes (die ersten Cluster)
> von eine DOS-86/DOS 1.x FAT fuer einen Inhalte haben (und Nein, ich
> meinen nicht die Belegungs-Bedeutung FF7,FF8…FFF,002…FF6)

Schau mal hier rein:

https://www.win.tue.nl/~aeb/linux/fs/fat/fat-1.html

Dort findet man auch die möglichen Werte für das Media Descriptor Byte, 
welches Single-/Fouble-Sided unterscheidet.
Gast #6830915
Lesenswert?

fop schrieb:
> Kannst Dich ja geschichtlich gesehen mal von der anderen Seite dem
> Problem nähern und Dir anschauen, wie CP/M Disketten verwaltet hat.

hab die Info schon, aber sonst wäre ich den Weg gegangen

checker schrieb:
> Also mit xcopy wirds eher schwierig... Win11 hingegegen könnte
> helfen.

dann muss ich eben noch ein bisschen warten :)

Patrick L. schrieb:
> Wenn ich Images habe die Probleme machen,
> So verrückt das auch klingt, aber die meisten kann mir 7Zip öffnen.;-)

kenn ich, ab er an diesem Image scheitert 7Zip

Markus E. schrieb:
> Mit Winhex von xways habe ich gute Erfahrungen gemacht.

jetzt will ich schon selber programmieren :)
aber Danke für den Tip

Frank M. schrieb:
> Dort findet man auch die möglichen Werte für das Media Descriptor Byte,
> welches Single-/Fouble-Sided unterscheidet.

völlig überlesen - beim mir ist es 0xFD - also Double Sided 360kb - 
passt
Danke

archie schrieb:
> 
https://web.archive.org/web/20071225062615/http://www.patersontech.com/Dos/Byte/InsideDos.htm
> Tim Paterson, Seattle Computer Products

Das ist gut - danke

smufte schrieb:
> Ich habe meine Floppy-Images mit WinImage einsehen und entpacken
> können.

WinImage hat damit nicht funktioniert, auch nicht der DiskExplorer und 
ein paar alte Schinken - aber ich hab die Info jetzt
Gast #6830965
Lesenswert?

Patrick L. schrieb:
> Partitions-Wizzard unterstützt das Format, ich habe eine Prof.
> Version,
> soll ich es mal damit versuchen?
> Wenn du mir das File sendest kann ich es ev damit öffnen und in ein
> anderes Format umwandeln.

geht so schon, die meisten Tools scheitern aber an der Legacy FAT12 
Variante (die eben nicht zu 100% der noch genutzten FAT12 Varianten 
entspricht)
#6831133
Lesenswert?

Hol Dir beliebiges Linux auf 'nen USB Stick, versuche das mal einfach zu 
"mount" en.

Linux müsste FAT12 noch kennen, und bei Image Dateien spielt einseitig 
oder nicht keine Rolle - das kommt IMHO nur bei echten Laufwerken zum 
Zug.

Ansonsten ist das eine Aufgabe für 'nen hex Editor, denn wenn Linux das 
nicht mount-ed, dann ist was mit dem Image faul.

Windows ist mir bei solchen Sachen zu doof. Da dauert es zulange sich 
erstmal die nötige Software rauszusuchen.
Gast #6831298
Lesenswert?

Jim M. schrieb:
> Hol Dir beliebiges Linux auf 'nen USB Stick, versuche das mal
> einfach zu "mount" en.
> Linux müsste FAT12 noch kennen, und bei Image Dateien spielt einseitig
> oder nicht keine Rolle - das kommt IMHO nur bei echten Laufwerken zum
> Zug.
> Ansonsten ist das eine Aufgabe für 'nen hex Editor, denn wenn Linux das
> nicht mount-ed, dann ist was mit dem Image faul.
> Windows ist mir bei solchen Sachen zu doof. Da dauert es zulange sich
> erstmal die nötige Software rauszusuchen.

Alle Systeme kennen FAT12 weil immer noch der Standard für Floppies, 
aber wenige unterstützen die Legacy FAT12 Variante aus einer Zeit vor 
DOS 1.x
Bin aber eh gleich fertig mit meinem eigenem exporter, trotzdem Danke
Gast #6831388
Lesenswert?

cppbert3 schrieb:
> lagerschaden schrieb:
>> freedos kann mit FAT12 umgehen
>
> Wie gesagt, alle können mit FAT12 umgehen, sehr sehr wenige mit der
> Legacy Variante davon

Vlt. via bochs, alte DOS Versionen fänden sich z.B. hier
http://bitsavers.org/bits/SeattleComputerProducts/



---

aber:

https://bochs.sourceforge.io/doc/docbook/user/guest-dos.html
10.3.3. Bootdisks of early DOS versions

On the Web there are bootdisks available for most of the DOS versions 
ever released, but some of them have been reported to fail in Bochs. The 
bootdisk for MS-DOS 1.25 contains a boot sector of a newer DOS version, 
so it would fail on real hardware, too.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren