Autor Thema: FAT12 Problem  (Gelesen 2801 mal)

Tobsn

  • Beiträge: 11
    • Profil anzeigen
Gespeichert
« am: 11. August 2004, 22:52 »
Morgen!

Ich hab ein Problem mit der Implämentierung von FAT12 in meinen RM Kernel.
Ich verwende das Tutorial und den Bootloader von TeeJay!
Ich Lade mit:

mov     ax,0x8FE0                      ;segemntadresse
push    ax
mov     ax,0x00                         ;Logische Sektornummer
push    ax
call    _ReadSector
add     sp,0x04

den Bootsector in den Speicher

und mit:

mov     ax,0x8FE0
mov     es,ax
mov     ax,0x8EC0       ; Segmentadresse

mov     si,[RsvdSecCnt]
xor     bx,bx
mov     bl,[es:si]              ; Startsektor

mov     si,[FATSize]
xor     cx,cx
mov     cl,[es:si]    ; Größe der FATabelle

IDMoreSectors:

push    ax
push    bx

call    _ReadSector
add     sp,0x04            ; Alte Paramerter vom Stack löschen
inc     bx              ; Nächster Sektor
add     ax,0x20

loop    IDMoreSectors

die FAT.

_ReadSector ist im Prinzip die gleiche funktion wie im Bootloader von TeeJay

Weil ich wissen wollte ob die Daten stimmen habe ich den Bootsektor ausgelesen, und alle Daten stimmen bis auf den "OSName" eintrag dort erhalte ich statt "JAY-OS" "+{vtklIHC".
Und auch aus den Daten die in der FAT stehen werde ich nicht schlau:

FFF0
00FF
0000
0000
0000
0000
0000
0000
0000
0000
0000
0100
0FFF
0000

was aufgeschlüsselt folgendes ist:

FFF 000 FF0 000 000 000 000 000 000 000 000 000 000 000 000 000 100 0FF F00

Daraus werde ich nicht schlau weil erstens kein FFF vorkommt also kein Dateiende, und zweitens bei einer frisch vormatierten Diskette, die nur eine Datei enthält 0x100 eine eher ungewönliche startsektornummer zu sein scheint.

Ich hoffe ihr werdet schlau daraus!
Danke!

Tobsn

  • Beiträge: 11
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 12. August 2004, 10:42 »
Hallo nochmal!

Ich hab jetztw as ausprobiert: Wenn ich den Bootloader mit rawwrite auf die diskette schreibe, und dann ein image von der diskette lesen steht im OSName feld "Jay-OS" aber wenn ich dann eine Datei auf der diskette speichere und wieder ein image lese, steht ""+{vtklIHC" in dem Feld!
Find ich ziemlich seltsam!
Ich hoffe ihr könnt mir helfen!
Danke!

gurru

  • Beiträge: 42
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 12. August 2004, 12:51 »
hallo
Der erste Fat-Eintrag ennthält den WErt 0xF00 + mediatype;
der zweite Eintrage enthält einen EOF-marker -- daher die Werte

mfg gurru

 

Einloggen