Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
A.K.
Anmeldungsdatum: 02.05.2005 Beiträge: 467 Wohnort: HH
|
Verfasst am: 11.07.2006, 13:17 Titel: FAT16, Datei- und Verzeichniseinträge, kurze Anmerkung |
|
|
Hi zusammen,
hier nochmal ein Datei/Verzeichniseintrag wie er bei FAT16 verwendet wird:
Zitat: |
Das ROOT/Directory-Table ist das allererste Verzeichnis einer Diskette.
Quasi sowas wie "A:\". Die Anzahl der Verzeichnisse hier drin ist durch den Wert 18-19 im BootRecord hinterlegt.
Der Aufbau selber ist natürlich auch standardisiert und sieht wie folgt aus:
Byte-Nummer Bedeutung
1-8..................Dateiname
9-11................Dateinamens-Erweiterung
12...................Attribut
......................00h - normales File, Lesen und Schreiben erlaubt
......................01h - nur Lesen erlaubt
......................02h - versteckt
......................04h - System-Datei
......................08h - Volume-Label (z.B. Laufwerkbezeichnung)
......................10h - Verzeichnis
......................20h - Archiv
13-22..............Reserviert (für Windows z.B. letzter Zugriff...
23-24..............Zeit des letzten Schreibzugriffs
......................Bits 0-4 Sekunden
......................Bits 5-10 Minuten
......................Bits 11-15 Stunden
25-26..............Datum des letzten Schreibzugriffs
......................Bits 0-4 Tag
......................Bits 5-8 Monat
......................Bits 9-15 Jahr ( + 1980)
27-28..............Nummer des ersten Clusters
29-32..............Größe der Datei in Byte
Wie man sieht hat jeder Eintrag eines Verzeichnisses oder Datei 32Byte. Dies bedeutet das in einen Verzeichnis-Sektor immer 16 Verzeichnisse/Dateien hineinpassen.
Alles andere sollte hier selbsterklärend sein.
|
In den Bytes 23-24 wird ja die Uhrzeit der Datei/des Verzeichnisses dargestellt.
Nun ist mir aufgefallen das für die Sekunden ja nur 5 Bit reserviert sind (0-4). Dies bedeutet das jede eingetragene Uhrzeit nur maximal 31 Sekunden haben kann.
Grund ist klar: Ein Bit gespart und es muß kein weiteres Byte verwendet werden.
Auswirkungen: Keine, da z.B. der NortonCommander und der m$-Explorer die Sekunden eh nicht anzeigen.
Den Leuten die sich mit solchen Sachen beschäftigen sollte dies denke ich mal bereits bekannt sein.
Die Info ist auch nur nach dem Motto: 1000mal benutzt und beim 1001. Mal aufgefallen.
\root: logout A.K. /lastwords"MFG" _________________
http://forum.IconSoft.de
http://www.pnpbb.de - hol dir jetzt dein eigenes kostenloses Forum *NEU* |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 11.07.2006, 13:27 Titel: |
|
|
könnte es sein, dass du statt antworten ausversehen auf neues posting geklickt hast? ;p _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
A.K.
Anmeldungsdatum: 02.05.2005 Beiträge: 467 Wohnort: HH
|
Verfasst am: 11.07.2006, 13:39 Titel: |
|
|
Hi,
nein, sollte ein neues Posting sein und hat nüx mit laufenden Beiträgen zu tun.
MFG A.K. _________________
http://forum.IconSoft.de
http://www.pnpbb.de - hol dir jetzt dein eigenes kostenloses Forum *NEU* |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 11.07.2006, 17:35 Titel: |
|
|
Zum Thread-Thema: Ich hatte früher einmal ein Beispiel zum Auslesen und Setzen des Modifikationsdatums unter
http://beilagen.dreael.ch/QB/DATDEMO.BAS
veröffentlicht. Hellen Köpfe müsste nun folgendes auffallen: Die Werte in CX und DX sind von der Struktur her exakt identisch wie von A.K. beschrieben aufgebaut! Das heisst, dass der MS-DOS-Kernel beim Aufruf dieser Interrupts praktisch nichts weiteres tun muss, als diesen Eintrag 1:1 weiterreichen bzw. niederschreiben.
Übrigens bei den Attributen wie Hidden, Read Only, System, Archived usw. ist es genau gleich, siehe dazu Demo unter
http://beilagen.dreael.ch/QB/DAT_ATTR.BAS
Auch hier muss der MS-DOS-Kernel überhaupt keine "schwerstarbeit" verrichten, sondern einfach 1:1 das Richtige weitergeben. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
A.K.
Anmeldungsdatum: 02.05.2005 Beiträge: 467 Wohnort: HH
|
Verfasst am: 11.07.2006, 18:38 Titel: |
|
|
Hi,
Dreael hat Folgendes geschrieben: | Die Werte in CX und DX sind von der Struktur her exakt identisch wie von A.K. beschrieben aufgebaut! Das heisst, dass der MS-DOS-Kernel beim Aufruf dieser Interrupts praktisch nichts weiteres tun muss, als diesen Eintrag 1:1 weiterreichen bzw. niederschreiben.
|
Das gleiche gilt auch für DOS-Funktionen die im Grunde genommen die BIOS-Interrupte benutzen. Sprich der Disk-Int 13h, der Video-Int 10h, die Pheripherie-Interrupte 11h, 14h, 16h, 17h und 1Ah.
Und bei diesen Interrupten besonders oft der Status von Hardware oder Fehlercodes.
Der Int 21h ist meist ja auch nur ein Überleit-Interrupt.
MFG A.K. _________________
http://forum.IconSoft.de
http://www.pnpbb.de - hol dir jetzt dein eigenes kostenloses Forum *NEU* |
|
Nach oben |
|
|
|