Autor Thema: fragen zur FAT12 und zu Dos Inerrupt.  (Gelesen 3374 mal)

Hauke

  • Beiträge: 113
    • Profil anzeigen
Gespeichert
« am: 06. October 2004, 16:27 »
Zu erst einmal eine Frage in Bezug auf die Dos Inerrupts. Bedeuten die Dos Inerrupts dass diese Inerrupts Dos brauchen oder was bedeuten sie? Und jetzt eine Frage zu einem Dos Inerrupt nämlich 39h (mit dem man Unterverzeichnisse erstellen kann). Was bedeutet Adresse ASCII Pfadname bedeutet es "A:\Test\" um Test zu erstellen oder was bedeutet es. (Im Klartext wie erstelle ich einen Unterordner) und mit welcher Datei kann ich Dateien erstellen z. B. eine txt Datei.


Und jetzt noch eine Frage zum Fat12 Dateisystem

Zum Testen habe ich auf eine Formatierte Diskette mit Label Beschriftung "Hauke". Ich habe auf der Diskette eine 860 Byte große txt Datei gespeichert mit Name "Super Text.txt". In der FAT Tabelle steht dann das aus dem ich nicht schlau werde. Erst einmal sind hier 4 einträge obwohl doch nur 2 sein dürften und die anderen Werte ergeben für mich irgendwie keinen Sinn.


F0 FF FF 03 F0 FF 00   (Adresse 0200h oder 1400h)


Und dann noch zum Root Directory.
Warum sind hir 4 Einträge. Der erste Eintrag ist doch der "Haupt Order" also "A:\" und der letzte Eintrag ist doch für die txt Datei was dazwischen ist weiß ich nicht was das bedeuten soll. Hängt es vielleicht mit der Länge des Dateinamen zusammen?


(In Hex) (Adresse 2600h)
48 41 55 4B 45 20 20 20  20 20 20 08 00 00 00 00
00 00 00 00 00 00 2A 6A 46 31 00 00 00 00 00 00
42 74 00 00 00 FF FF FF FF FF FF 0F 00 67 FF FF
FF FF FF FF FF FF FF FF FF FF 00 00 FF FF FF FF
01 53 00 75 00 70 00 65 00 72 00 0F 00 67 20 00
54 00 65 00 78 00 74 00 2E 00 00 00 74 00 78 00
53 55 50 45 52 54 7E 31 54 58 54 20 00 9D 42 6B
46 31 46 31 00 00 2F 6B 46 31 02 00 5C 03 00 00

(In ASII nicht komplett)
HAUKE      

Bt
ÿÿÿÿÿÿÿÿÿÿ
S
T
SUPERT~1TXT
F1F1

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #1 am: 06. October 2004, 18:54 »
du kannst in deinem OS nicht mit DOS-Ints arbeiten. also auch net int 39h benutzen!
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

gurru

  • Beiträge: 42
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 06. October 2004, 23:06 »
hallo

Zitat
Hauke postete
...
Und jetzt noch eine Frage zum Fat12 Dateisystem
...
F0 FF FF 03 F0 FF 00   (Adresse 0200h oder 1400h)
Der Cluster null enthält in der Fat table den Wert des Mediatypes, der 1. Cluster enthält eine EOF-Marke, deshalb die ersten 3-Byte.
Die nächsten 3 Byte sind dann die Einträge für die Datei

Zu der anderen Frage: Der Dateiname passt nicht zu den 8.3 Namesnkonventionen für Fat, deshalb wird der Name noch anders gespeichert (Hab aber keine Ahnung wie)

mfg
gurru

Hauke

  • Beiträge: 113
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 07. October 2004, 13:14 »
Mit den Dos Inerrupts ist das dann ja geklärt und mit dem Root Directory wohl leider auch, wenn keiner etwas über lange Pfadnamen weiß. Aber bei der FAT Tabelle verstehe ich noch etwas nicht nämlich dort steht, dass die txt Datei 03F Anfängt, dass ist aber nicht wahr, denn die txt Datei fängt im erst
möglichen Sektor an also 003 oder wie hat man das zu deuten?

gurru

  • Beiträge: 42
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 07. October 2004, 23:05 »
hi

Du interprtierst den Wert falsch.
Die Datei fängt bei 003 an.
Der Prozesor speichert die Bytes umgekehrt ihrerer WErtigkeit (zuerst das niederwertige, dann das höherewrtige Byte), weshalb beim Lesen Eines Words vom Offset 0x02 (hinter F0 FF FF) im Register dann der Wert 0xF003 steht, woraus dann durch und-Verknüpfen der richtige Wert entsteht. (Wenn du einen ungeraden Cluster einlesen willst, musst du den WErt 4 nach rechts schiften)

Ich hoffe, du verstehts, was ich meine

mfg
  gurru

 

Einloggen