diff --git a/src/bin/fdisk/main.c b/src/bin/fdisk/main.c index 8ac0f97..594b2bd 100644 --- a/src/bin/fdisk/main.c +++ b/src/bin/fdisk/main.c @@ -45,6 +45,7 @@ int main(int argc,char **argv) { FILE *fd; + FILE *mbr; struct dos_partition *d = 0x0; char *data = (char *)malloc(512); int i = 0x0; @@ -60,19 +61,38 @@ fd = fopen(argv[1],"rb"); } else { - printf("Drive Info (hd0):\n"); - fd = fopen("hd0@devfs","rb"); + printf("Drive Info (ad0):\n"); + fd = fopen("ad0@devfs","rb"); } fseek(fd,0,0); fread(data,512,1,fd); if (argc >= 3) { i = atoi(argv[2]); - printf("d[%i].dp_type = %i, ",i,d[i].dp_type); - printf("New Value: "); - gets(&buf); - d[i].dp_type = atoi(buf); - printf("d[%i].dp_type: 0x%X\n",i,d[i].dp_type); + if (i == 0) { + mbr = fopen("mbr@sys","rb"); + fseek(mbr,0,0); + fread(data,512,1,mbr); + printf("Installing Ubix MBR\n"); + } + else { + i--; + printf("d[%i].dp_type = %i, ",i,d[i].dp_type); + printf("New Value: "); + gets(&buf); + d[i].dp_type = atoi(buf); + printf("d[%i].dp_start: %i, ",i,d[i].dp_start); + printf("New Value: "); + gets(&buf); + d[i].dp_start = atoi(buf); + printf("d[%i].dp_size: %i, ",i,d[i].dp_size); + printf("New Value: "); + gets(&buf); + d[i].dp_size = atoi(buf); + printf("d[%i].dp_type: 0x%X\n",i,d[i].dp_type); + printf("d[%i].dp_start: %i\n",i,d[i].dp_start); + printf("d[%i].dp_size: %i\n",i,d[i].dp_size); + } fseek(fd,0,0); fwrite(data,512,1,fd); }