Forum: PC-Programmierung DOS <1.25, FAT12 - Erstes Byte in der 1. FAT?


von cppbert (Gast)


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 :)

von fop (Gast)


Lesenswert?

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

von checker (Gast)


Lesenswert?

Also mit xcopy wirds eher schwierig... Win11 hingegegen könnte helfen.

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


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.

: Bearbeitet durch User
von Einer (Gast)


Lesenswert?

Hänge doch mal zumindest den Anfang des Images an.
evtl. reicht es ja das Image um einen passenden BPB zu erweitern.

von Markus E. (markus_e176)


Lesenswert?

Mit Winhex von xways habe ich gute Erfahrungen gemacht. Ein sehr 
mächtiges Tool, was Datenrettung/-wiederherstellung angeht. Mit Fat12 
fehlt mir zwar die Erfahrung, aber laut Website
https://www.x-ways.net/winhex/index-d.html kann die Software auch damit 
umgehen.
Die demo-version ist kostenlos, sollte definitiv einen Versuch wert 
sein.

von Frank M. (ukw) (Moderator) Benutzerseite


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.

von archie (Gast)


Lesenswert?

> at einer von euch eine Idee wie die ersten Bytes (die ersten Cluster)
> von eine DOS-86/DOS 1.x FAT fuer einen Inhalte haben


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

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Meinst du das Descriptorbyte(Type ID)?
0xC1 war ein Häufiges ID von dem (Auch als DR-Dos bekannt) FAT12 Format

von smufte (Gast)


Lesenswert?

Ich habe meine Floppy-Images mit WinImage einsehen und entpacken können.
Vlt. hilft das weiter.

https://www.winimage.com/download.htm

von cppbert (Gast)


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

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

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.

von cppbert (Gast)


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)

von Helge (Gast)


Lesenswert?

Das schöne an einem disk image ist, daß man die Dateigröße auswerten 
kann.  Danach läßt sich aus den FAT-Einträgen rauskriegen, obs einseitig 
statt zweiseitig oder FM statt MFM ist.

von none (Gast)


Lesenswert?


von foobar (Gast)


Lesenswert?

Schon mal die mtools ausprobiert?

von Mladen G. (mgira)


Lesenswert?

CP/M wäre jetzt auch mein Tipp gewesen, mal versuchen das Image in einen 
Emulator zu mounten?

Ich meine der MSX 1 mit MSX DOS 1 hatte auch schon DD fur 3,5" 
Laufwerke, dein Image scheint von einem 5 1/4" floppy zu stammen?

von Jim M. (turboj)


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.

von cppbert3 (Gast)


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

von lagerschaden (Gast)


Lesenswert?

freedos kann mit FAT12 umgehen

von cppbert3 (Gast)


Lesenswert?

lagerschaden schrieb:
> freedos kann mit FAT12 umgehen

Wie gesagt, alle können mit FAT12 umgehen, sehr sehr wenige mit der 
Legacy Variante davon

von archie (Gast)


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.

von cppbert (Gast)


Lesenswert?

Feedback: mein Legacy FAT12 funktioniert, alle Dateien können aus dem 
Image exportiert werden

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Danke für den Feedback ;-)

Viel Erfolg weiterhin....

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.