diff --git a/src/sys/include/ubixfs/ubixfs.h b/src/sys/include/ubixfs/ubixfs.h index 69ef1a1..e9d2dc1 100755 --- a/src/sys/include/ubixfs/ubixfs.h +++ b/src/sys/include/ubixfs/ubixfs.h @@ -25,8 +25,16 @@ struct bootSect { uChar jmp[4]; uChar id[6]; - uLong version; - unsigned long fsStart; + uShort version; + uShort tmp; + uShort fsStart; + uShort tmp2; + uLong krnl_start; + uInt BytesPerSector; + uInt SectersPerTrack; + uInt TotalHeads; + uLong TotalSectors; + uChar code[479]; }; void initUbixFS(); diff --git a/src/sys/ubixfs/ubixfs.c b/src/sys/ubixfs/ubixfs.c index cdc546c..4443683 100755 --- a/src/sys/ubixfs/ubixfs.c +++ b/src/sys/ubixfs/ubixfs.c @@ -13,10 +13,27 @@ #include #include +int startSector; + void initUbixFS() { struct bootSect *bs; char data[512]; -// readBlock(0,data,1); - bs = data; - kprintf("Test: [%s]\n",bs[0].id); + readBlock(0,data,1); + bs = (void *)data; + if ((bs[0].id[0] == 'U') && (bs[0].id[1] == 'b') && (bs[0].id[2] == 'i') && (bs[0].id[3] == 'x') && (bs[0].id[4] == 'F') && (bs[0].id[5] == 'S')) { + startSector = bs[0].fsStart; + kprintf("UbixFS Initialized\n"); + } + else { + kprintf("Insert System Disk\n"); + initUbixFS(); + } + } + +int readFile(char *file) { + struct fileTable *ft; + char data[2048]; + readBlock(startSector,data,4); + ft = (void *)data; + return(0); } \ No newline at end of file