7
« 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!