Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

FAT16, Datei- und Verzeichniseinträge, kurze Anmerkung

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
A.K.



Anmeldungsdatum: 02.05.2005
Beiträge: 467
Wohnort: HH

BeitragVerfasst am: 11.07.2006, 12:17    Titel: FAT16, Datei- und Verzeichniseinträge, kurze Anmerkung Antworten mit Zitat

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. lächeln

\root: logout A.K. /lastwords"MFG"
_________________

http://forum.IconSoft.de
http://www.pnpbb.de - hol dir jetzt dein eigenes kostenloses Forum *NEU*
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen Yahoo Messenger MSN Messenger
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 11.07.2006, 12:27    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
A.K.



Anmeldungsdatum: 02.05.2005
Beiträge: 467
Wohnort: HH

BeitragVerfasst am: 11.07.2006, 12:39    Titel: Antworten mit Zitat

Hi,

nein, sollte ein neues Posting sein und hat nüx mit laufenden Beiträgen zu tun. lächeln

MFG A.K.
_________________

http://forum.IconSoft.de
http://www.pnpbb.de - hol dir jetzt dein eigenes kostenloses Forum *NEU*
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen Yahoo Messenger MSN Messenger
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 11.07.2006, 16:35    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
A.K.



Anmeldungsdatum: 02.05.2005
Beiträge: 467
Wohnort: HH

BeitragVerfasst am: 11.07.2006, 17:38    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen Yahoo Messenger MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz