Code: Select all
struct diskinfo_FAT12
{
uint8_t jmp1;
uint8_t jmp2;
uint8_t jmp3;
uint8_t OEM_Name[8];
uint16_t BytesPerSector;
uint8_t SectorsPerCluster;
uint16_t ReservedSectors;
uint8_t FATCount;
uint16_t RootEntries;
uint16_t TotalSectors;
uint8_t MediaType;
uint16_t SectorsPerFAT;
uint16_t SectorsPerTrack;
uint16_t HeadsPerCylinder;
uint32_t HiddenSectors;
uint32_t SectorCountLarge;
uint8_t DriveNumber;
uint8_t Unused;
uint8_t ExtBootSig;
uint32_t SerialNumber;
uint8_t VolumeLabel[11];
uint8_t FileSystem[8];
};
void LoadFile (char *filename)
{
int root_size = (diskdat->RootEntries * 32) / diskdat->BytesPerSector;
int root_location = (diskdat->FATCount * diskdat->SectorsPerFAT) + diskdat->ReservedSectors;
char buffer[7186] = "";
for (int i = 0; i < root_size; i++)
{
uint8_t *transfer = flpydsk_read_sector (root_location+i);
for (int j = 0; j < diskdat->BytesPerSector; j++)
buffer[(i*diskdat->BytesPerSector)+j] = (char) *transfer++;
}
printf ("\nI managed to load the root directory!\n");
for (int a = 0; a < 7186; a += 32)
{
char *temp1 = filename, *temp2 = buffer;
int i = 0;
while ((*temp2++ == *temp1++) && i < 11)
i++;
if (i >= 11)
{
printf ("\nFile found!!!\n");
return;
}
*buffer += 32;
}
printf ("\nI couldn't find your file, sorry!!!\n");
}
Code: Select all
kernel.obj : error LNK2019: unresolved external symbol __chkstk referenced in function "void __cdecl LoadFile(char *)" (?LoadFile@@YAXPAD@Z)
kernel.obj : error LNK2019: unresolved external symbol _memcpy referenced in function "void __cdecl LoadFile(char *)" (?LoadFile@@YAXPAD@Z)
kernel.obj : error LNK2019: unresolved external symbol _memset referenced in function "void __cdecl LoadFile(char *)" (?LoadFile@@YAXPAD@Z)
Code: Select all
while ((*temp2++ == *temp1++) && i < 11)