Sau khi đọc được MBR, em thấy trong 512 byte của nó có dòng "Invalid partition table , error loading operating system missing operating system" Dòng này bắt đầu từ địa chỉ 139 (hay 0x8B)
Đọc MBR chính là đọc sector 0 có phải không ạ ? Còn boot sector là của từng thằng partition ? Ý em muốn hỏi về 3 khái niệm MBR, boot sector và sector 0 của thằng SD card, hàm đọc sector em gán địa chỉ là 0 thì đọc đuợc cái gì trong 3 thằng đó
Do cái em đọc được nó không có những thông tin dưới đây, nên nó ko nhảy vào được cái if này, mặc dù đã format thẻ là FAT16
Code:
#ifdef USE_16BIT
if (ReadByte( dsk->buffer, BSI_FSTYPE ) == 'F' && \
ReadByte( dsk->buffer, BSI_FSTYPE + 1 ) == 'A' && \
ReadByte( dsk->buffer, BSI_FSTYPE + 2 ) == 'T' && \
ReadByte( dsk->buffer, BSI_FSTYPE + 3 ) == '1' && \
ReadByte( dsk->buffer, BSI_BOOTSIG) == 0x29)
#else
if (BSec->FAT.FAT_16.BootSec_FSType[0] == 'F' && \
BSec->FAT.FAT_16.BootSec_FSType[1] == 'A' && \
BSec->FAT.FAT_16.BootSec_FSType[2] == 'T' && \
BSec->FAT.FAT_16.BootSec_FSType[3] == '1' && \
BSec->FAT.FAT_16.BootSec_BootSig == 0x29)
#endif
{
dsk->firsts = 0;
dsk->type = FAT16;
}