von HiassofT » So 30. Nov 2003, 01:53
Kurzes Status-Update:
erstmal vielen Dank an Bernhard für die Infos per email! Du hast mir viel weitergeholfen!
Mein Plan für MyPicoDos ist nun, die Dichte-Erkennung folgendermassen umzubauen (zZt verwendet MyPicoDos per GetPercom-Befehl, falls die Disk über 1024 Sektoren hat - mit Ausnahme von 1040 Sektoren/ED - werden die FileNumber Bits ignoriert und als Sektor-Link verwendet):
Zuerst Sektor 4 lesen (Länge dabei auf 0), kurze Zeit warten, danach GetStatus Abfrage. Damit lässt sich die Dichte (128 oder 256 Bytes per Sektor) ermitteln.
Als nächstes: VTOC lesen und Anzahl der insgesamt verfügbaren Sektoren auf der Disk ermitteln.
Hier stellt sich die erste Frage: Ab welcher Disk-Grösse verwendet MyDos die FileNumber Bits für\'s Sector-Linking, stellt Enhanced Density evtl. eine Ausnahme dar? Im Zweifelsfall kann ich versuchen in den MyDos Sourcecode zu schauen.
Für den 64/128 Files Unterschied zwischen MyDos und BiboDos habe ich mir folgendes ausgedacht:
Bei Single Density gibt\'s ohnehin maximal 8 Files pro Directory-Sector -> fertig.
Bei Double Density: Enthält der erste Directory-Sektor mehr als 8 Files (d.h. ist das Status-Byte des 9. Files ungleich null), werden pro Sektor 16 (statt 8 Files) ausgelesen.
Der (meiner Meinung nach) einzige Sonderfall ist, dass man eine BiboDos formatierte Disk hat, bei der der Status des 9. Files auf Null steht. Der Status 0 signalisiert allerdings das Ende des Directories, also bedeutet das, dass die Disk insgesamt maximal 8 Files enthält. Dementsprechend muss auch das 1. File des 2. Directory-Sektors (entsprechend dem 17. File) Status 0 enthalten, sodass es wieder passt

Ich hoffe, dass ich nächste Woche dazukomme, das ganze mal auszuprobieren. Ich halte euch auf jeden Fall auf dem Laufenden!
so long,
Hias