003
07.10.2016, 11:15 Uhr
volkerp
Default Group and Edit
|
Hallo Manfred, der Speicherplatz ist unter CP/M stark von der im Diskettenformat gewählten Blockgröße abhängig. Das BDOS teilt jede Diskette in Blöcke auf. Ein Block kann 1,2,4,8,16 KByte groß sein. BDOS kann Diskettenplatz nur blockweise vergeben. Nachteil dieser Aufteilung ist, das ein File immer ganze Blöcke belegt, auch wenn die tatsächliche Filelänge kleiner ist.
Eine Datei von z.B. 20 Byte belegt also immer einen ganzen Block. Der auf Diskette belegte Speicherplatz einer Datei ist immer aufgerundet auf volle Blöcke.
Welche Blöcke zu einer Datei gehören, wird im Directory der Diskette gespeichert. Ein Directory-Eintrag ist 32 Byte groß. Hier können 8 bzw. 16 Blocknummern (je nach Diskettenformat) abgelegt werden. Reicht der Platz nicht aus, wird ein weiterer Directory-Eintrag zur selben Datei angelegt, in dem weitere bis zu 8 bzw. 16 Blocknummern abgelegt werden usw.
Wenn bei > 32K Dateigröße ein weiterer Directory-Eintrag hinzukommt, kann man daraus schließen, dass ein Block entweder 2k oder 4k groß ist. (genaue Details zum Diskettenformat liefern STAT oder POWER).
Runde mal die Dateigrößen Deiner Dateien vom USB-Stick auf jeweils volle 2k- bzw. 4k-Grenzen auf. Dann sollte die Summe die Grenze von 780K-Größe Directory überschreiten und so Dein Phänomen erklären :-)
s.a. http://hc-ddr.hucki.net/wiki/doku.php/cpm:fcb, M80.COM belegt im Beispiel 2 Directory-Einträge. -- VolkerP
http://hc-ddr.hucki.net (Z9001, Z1013, LC-80, ...) Dieser Beitrag wurde am 07.10.2016 um 11:40 Uhr von volkerp editiert. |