Das Thema ist echt problematisch da man nicht einmal weiss wo die BAM oder das Directory genau auf der Diskette liegt wenn man nicht weiß um welches Format es sich handelt.
Beiträge von Natas im Thema „Bytes aus File und Diskettengröße auslesen“
-
-
Wie wäre es denn mit der BAM? Dort sind alle Blöcke vermerkt, volle wie leere. Also kannst du die Gesamtzahl ermitteln und auch anzeigen wie viel belegt ist.
Ist die Disk manipuliert, kannst du das nicht ändern. Aber auf irgendwas musst du dich verlassen. Wenn in der BAM alles als "belegt" markiert ist wird ja auch die Floppy nichts mehr speichern. Sie schaut auch nur in die BAM.
Das Problem ist, das jedes Laufwerk sein eigenes BAM Format hat.
Schlimmer noch Dophin DOS, Prologic DOS etc. hat auch noch abweichende BAMs für >35 Tracks.
Kann man sicher alles lösen aber wenn man dafür schon eine eigene Datenbank benötigt wird das sicher kein kompaktes Programm.
-
Leider gibt es nicht wie bei MSDOS (FAT) einen Bootsektor mit einem Media Informationen Block.
Auch ist das DOS in der Floppy welches nur sehr wenige Typen unterscheiden muss.
Ich fürchte von der Idee einer Füllstandsanzeige musst du dich verabschieden.
-
Oder man holt sich das Directory und zählt die belegten Blöcke und die freien zusammen?
Dazu bin ich zu faul. Außerdem bin ich nicht sicher, ob man dem dann auch trauen kann.
das Floppy-ROM auf ein paar typische Bytefolgen hin zu untersuchen und damit das Laufwerk zu identifizieren.
Ja, das geht z.B. so relativ zuverlässig:
Code
Alles anzeigen100 a=65331:dt$="unknown" 110 hi=int(a/256) 120 lo=a-256*hi 130 open1,8,15 140 print#1,"m-r";chr$(lo);chr$(hi) 150 get#1,a$ 160 t=asc(a$) 170 ift=108thendt$="1581" 180 ift=173thendt$="1571" 190 ift=170thendt$="1541" 200 ift=76thendt$="1541-ii" 210 print"drive type:";dt$; 220 close1Hab ich aus dem Forum von lemon64.com kopiert. Hatte nur gehofft, dass die Größe irgendwo hinterlegt ist. Du hast mir die Frage beantwortet: Nein. Vielen Dank dafür.
Bei 1541 Disketten würde ich mich nicht darauf verlassen, das belegte + freie Blöcke die Gesamtzahl ergeben. Dafür waren die Leute viel zu kreativ in der Manipulation der Directories.
Bei Festplatten oder ähnlichem gehe ich davon aus das es stimmt. Wäre interessant ob Drive Emulatoren die mehre Formate unterstützen (z.B. D64, D81, D71) diese auch korrekt zurück geben.