23/05/13 17:53
LittleHacker
Salve a tutti, nel mio ultimo topic ho chiesto come fare ad implementare un filesystem senza l'uso del floppy(perché non ho questo dispositivo a disposizione)...ma poi mi sono ricordato che posso usare la macchina virtuale che mi mette a disposizione un floppy drive virtuale, e così ho fatto, sono riuscito ad implementare un driver in C per dialogare con il floppy drive, e dopo di che ho implementato anche il filesystem FAT, grazie a: brokenthorn.com/Resources/…, ma come mi capita sempre il fs non funziona...cioè se io nella mia img inserisco un file di testo "fil.txt" con contenuto "ciao ", dopo di che vado ad avviare la macchina, ed inserisco il nome del file(anche con /…), il programma mi ritorna a video "0@P`p", ed è da 3 giorni che continuo a rovellarmi il cervello senza uscirne fuori, ho provato anche a stampare la dimensione del settore letto, e mi ritorna 4096bit(cioè 512byte a settore, che è giusto)! E quindi ho cercato nel codice del FAT, e tutti i valori della struct _BIOS_PARAMATER_BLOCK:
Mi ritornano tutti 0! Ma non capisco, ho seguito la guida, ho cambiato solo:
Come mai?
Grazie
P.S: Ho usato anche VirtualBox. E mentre "leggo" il file, lampeggia la lucina verde, che vuol dire che sta leggendo dal floppy!
N.B: Nel mio github(link nella firma) c'è il codice!
p_bs_t bootsector = (p_bs_t)flp_read_sector(0); _MountInfo.numSectors = bootsector->Bpb.NumSectors; // Questo _MountInfo.fatOffset = 1; _MountInfo.fatSize = bootsector->Bpb.SectorsPerFat; // Questo _MountInfo.fatEntrySize = 8; _MountInfo.numRootEntries = bootsector->Bpb.NumDirEntries; // Questo _MountInfo.rootOffset = (bootsector->Bpb.NumberOfFats * bootsector->Bpb.SectorsPerFat) + 1; // Questo _MountInfo.rootSize = ( bootsector->Bpb.NumDirEntries * 32 ) / bootsector->Bpb.BytesPerSector; // Questo
Mi ritornano tutti 0! Ma non capisco, ho seguito la guida, ho cambiato solo:
unsigned -> size_t unsigned char -> uint8_t unsigned short -> uint16_t unsigned long -> unit32_t
Come mai?
Grazie
P.S: Ho usato anche VirtualBox. E mentre "leggo" il file, lampeggia la lucina verde, che vuol dire che sta leggendo dal floppy!
N.B: Nel mio github(link nella firma) c'è il codice!
Ultima modifica effettuata da LittleHacker 30/05/13 16:21
aaa