Diskettenstruktur bei DD-Disketten
Diskettenstruktur bei DD-Disketten
von mp-one » Sa 10. Apr 2010, 18:30
Hallo,
kann mir jemand eine Info geben, wie das Diskettenformat (Directory, VTOC) bei DD-Disketten (DOS 2.0D) im Vergleich zu Single und Enhanced aufgebaut ist? Besten Dank.
Gruß,
Michael/WASEO
Re: Diskettenstruktur bei DD-Disketten
von HiassofT » Sa 10. Apr 2010, 21:46
Hi!
DD (mit 720 Sektoren) ist genauso aufgebaut wie SD (mit 720 Sektoren), nur daß pro Sektor 253 statt 125 Bytes an Daten gespeichert werden. Die letzten 3 "Sektor Link" Bytes sind ebenfalls genau gleich (nur eben um 128 Bytes nach hinten verschoben), der "Byte Counter" dort darf bei DD Werte von 0-253 statt 0-125 annehmen.
Im Directory und der VTOC sind die 128 zusätzlichen Bytes ungenutzt.
so long,
Hias
Re: Diskettenstruktur bei DD-Disketten
von mp-one » Mo 12. Apr 2010, 14:44
Hallo Hias,
besten Dank für die Infos. Wir befassen und gerade mit dem Auslesen von ATR-Images. Das klappt bei SD und ED auch problemlos. Bei DD muss aber noch irgendwo ein Offsetfehler drin sein. Bisher gehe ich bei DD davon aus, dass
- der ATR-Header 16 Bytes lang ist
- die ersten 3 Sektoren (immer!?) 128 Bytes/Sektor haben
- erst ab dem 4. Sektor 256 Bytes/Sektor vorhanden sind
- die VTOC auf Sektor 360 liegt
- das Directory auf den Sektoren 361-368 liegt, hier jedoch
immer nur die erste Hälfte, also 128 Byte, für je 8 Einträge
genutzt wird = 64 Files/Disk.
Gibt es noch was zu beachten?
Gruß,
Michael
Re: Diskettenstruktur bei DD-Disketten
von HiassofT » Mo 12. Apr 2010, 14:59
Hallo Michael!
mp-one hat geschrieben:Gibt es noch was zu beachten?
Nein, wenn ich mich nicht irre hast Du die wichtigsten Punkte alle aufgezählt :-)
Die ersten 3 Sektoren sind bei DD ATRs übrigens immer 128 Bytes, wenn nicht ist das ATR kaputt.
so long,
Hias
Re: Diskettenstruktur bei DD-Disketten
von FlorianD » Mo 12. Apr 2010, 19:51
fragt mal Thomas Grasel, der kennt sich gut damit aus (wegen der Entwicklung des SIO2USB).
Re: Diskettenstruktur bei DD-Disketten
von mp-one » Di 13. Apr 2010, 10:21
Hallo,
jetzt klappt es auch mit DD, es war ein dummer "off by one"-error.
Michael/WASEO
Re: Diskettenstruktur bei DD-Disketten
von Koche » Di 13. Apr 2010, 13:03
HiassofT hat geschrieben:Hallo Michael!
mp-one hat geschrieben:Gibt es noch was zu beachten?
Nein, wenn ich mich nicht irre hast Du die wichtigsten Punkte alle aufgezählt

Die ersten 3 Sektoren sind bei DD ATRs übrigens immer 128 Bytes, wenn nicht ist das ATR kaputt.
Hallo Hias,
Gilt das und obiges (VTOC) auch für die Megaimages >= 1MByte ???
Viele Grüße
Alexander
so long,
Hias
Re: Diskettenstruktur bei DD-Disketten
von HiassofT » Di 13. Apr 2010, 13:46
Hallo Alexander!
Koche hat geschrieben:HiassofT hat geschrieben:Die ersten 3 Sektoren sind bei DD ATRs übrigens immer 128 Bytes, wenn nicht ist das ATR kaputt.
Gilt das und obiges (VTOC) auch für die Megaimages >= 1MByte ???
Das mit den ersten 3 Sektoren gilt für alle ATRs - die sind immer 128 Bytes gross.
Bei "grossen" MyDos Images (ab 1024 Sektoren) ändert sich aber ein wenig was in der Disk-Struktur:
In den Sektor-Link-Bytes fällt die 6-bit File-Nummer weg, stattdessen werden 16 (statt 10) Bits für die "nächste Sektor Nummer" verwendet.
Die "normale" VTOC in Sektor 360 ist natürlich auch zu klein für die grossen Images. Im Gegensatz zu DOS 2.5 (das ja eine weitere VTOC in Sektor 1024 ablegt) verwendet MyDos dafür die Sektoren 359 abwärts. Das hat den Vorteil, daß VTOC und Directory "nahe beieinander liegen".
Im DD Format wird einfach pro 8*256=2048 weiterer Sektoren ein zusätzlicher VTOC Sektor angelegt. Das erste Byte in der VTOC (üblicherweise 2) wird dann auf "2 plus Anzahl der VTOCs" gesetzt.
Bei SD ist's ein klein wenig anders: MyDos rechnet hier auch mit 256 Byte pro VTOC "Block" und speichert im ersten Byte der VTOC wieder "2 + Anzahl der VTOC Blöcke", nur, daß ein VTOC "Block" nun 2 SD Sektoren entspricht.
so long,
Hias
Re: Diskettenstruktur bei DD-Disketten
von Mathy » Di 13. Apr 2010, 19:55
Hallo Leute
HiassofT hat geschrieben:Bei "grossen" MyDos Images (ab 1024 Sektoren) ändert sich aber ein wenig was in der Disk-Struktur:
In den Sektor-Link-Bytes fällt die 6-bit File-Nummer weg, stattdessen werden 16 (statt 10) Bits für die "nächste Sektor Nummer" verwendet.
Das ist aber ziemlich einfach zu erkennen. Vorm Dateinamen stehen noch fünf Bytes. Das allererste Byte ist normalerweise Inverse B. Wenn 16 Bits für die "nächste Sektornummer" benutzt werden, ist das erste Byte ein Inverse F. (Ist mir auch erst aufgefallen, als ich "normale" Disketten benutzt habe.)
Tschüß
Mathy
Re: Diskettenstruktur bei DD-Disketten
von HiassofT » Di 13. Apr 2010, 22:16
Mathy hat geschrieben:Das ist aber ziemlich einfach zu erkennen. Vorm Dateinamen stehen noch fünf Bytes. Das allererste Byte ist normalerweise Inverse B. Wenn 16 Bits für die "nächste Sektornummer" benutzt werden, ist das erste Byte ein Inverse F. (Ist mir auch erst aufgefallen, als ich "normale" Disketten benutzt habe.)
Yup, das stimmt. MyDos setzt bei Files die 16 Bit Links verwenden das Bit 2 im Directory Status Byte.
Das ist besonders beim Lesen von Files wichtig, ein File auf der Disk könnte ja zB von einem anderen Dos mit 10-Bit Links angelegt worden sein.
Wenn MyDos Files auf eine "grosse" Disk schreibt verwendet es aber immer 16-Bit Links und setzt dann auch Bit 2 im Directory Status Byte.
so long,
Hias
Re: Diskettenstruktur bei DD-Disketten
von matti1104 » Do 21. Okt 2010, 12:46
HiassofT hat geschrieben:Das mit den ersten 3 Sektoren gilt für alle ATRs - die sind immer 128 Bytes gross.
Hias
Hi Hias,
bist du denn ganz sicher, das die ersten 3 Sektoren eines ATR-Images immer 128 Bytes groß sind? Ich habe mal probehalber verschiedenen ATR-Image mit verschiedenen DOS-Versionen in Double Desity formatiert und dann die DOS.SYS und DUP.SYS darauf angelegt und mit einem HEX-Viewer analysiert.
Ergebnis:
Die Dateien sind jedesmal im Sektor 4 ab Byte-Adresse 310Hex geschrieben worden. 310Hex = 784Dec = 3*256+16. Das bedeutet doch, das die ersten drei Sektoren beim DD-Format 256 Byte Größe haben und nicht 126 Byte. Das Direktory befindet sich an Byte-Adresse 16810Hex = 92176Dec = 360*256+16. Auch das spricht dafür, das die ersten drei Byte des Image 256 Byte groß ist. Ich habe bisher kein DOS gefunden, das im DD-Format die ersten drei Sektorn mit nur 128 Bytes belegt.
Und doch habe ich auch DD-Images, bei denen Daten schon ab Byte-Adresse 190Hex angelegt sind. Ich habe aber keine Ahnung, mit welchem Tool diese erstellt und mit welchem DOS diese formatiert wurden.
Weiss evtl. jemand, wie es kommen kann, das es DD-Images gibt, bei den die ersten 3 Sektoren 256 Bytes groß sind und andere mit einer Größe von 128 Byte? Kaputt können die doch nicht sein, habe sie ja neu angelegt...
Gruß,
Mathias
Re: Diskettenstruktur bei DD-Disketten
von HiassofT » Do 21. Okt 2010, 13:14
Hi!
Matti1104 hat geschrieben:bist du denn ganz sicher, das die ersten 3 Sektoren eines ATR-Images immer 128 Bytes groß sind?
Sagen wir so: sie sollten 128 Bytes gross sein, es sind aber einige kaputte Programme im Umlauf die ATRs mit 256 Bytes in den ersten 3 Sektoren erstellen. Diese ATRs sind dann aber defekt und laufen dementsprechend nicht mit jeder Soft/Hardware.
Ich habe mal probehalber verschiedenen ATR-Image mit verschiedenen DOS-Versionen in Double Desity formatiert und dann die DOS.SYS und DUP.SYS darauf angelegt und mit einem HEX-Viewer analysiert.
Welche Programme hast Du dazu genommen, bzw. mit welchem Programm hast Du die ATRs erstellt? Wie gesagt, es gibt da leider einige kaputte Programme...
so long,
Hias
Re: Diskettenstruktur bei DD-Disketten
von matti1104 » Do 21. Okt 2010, 14:38
HiassofT hat geschrieben:Hi!
Matti1104 hat geschrieben:bist du denn ganz sicher, das die ersten 3 Sektoren eines ATR-Images immer 128 Bytes groß sind?
Sagen wir so: sie sollten 128 Bytes gross sein, es sind aber einige kaputte Programme im Umlauf die ATRs mit 256 Bytes in den ersten 3 Sektoren erstellen. Diese ATRs sind dann aber defekt und laufen dementsprechend nicht mit jeder Soft/Hardware.
Ich habe mal probehalber verschiedenen ATR-Image mit verschiedenen DOS-Versionen in Double Desity formatiert und dann die DOS.SYS und DUP.SYS darauf angelegt und mit einem HEX-Viewer analysiert.
Welche Programme hast Du dazu genommen, bzw. mit welchem Programm hast Du die ATRs erstellt? Wie gesagt, es gibt da leider einige kaputte Programme...
so long,
Hias
Hi Hias,
alles klar! Du hast vollkommen recht!!
Ich hatte eine längst veralterte Version von MakeATR benutzt, die einen falschen Header schreibt. Mit der aktuellen wird ein korrekter Header geschrieben und das Schreiben der Daten beginnt ab Byte-Adresse 190Hex.
Danke für Deine rasche Antwort und ich hoffe ich sehe Dich am WE auf der JHV.
Gruß,
Mathias