TE Comp Sem-I MMC Prac 3 (Boot)

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

void main()
{
    int i;
    unsigned char *buff,*ptr;
    union

    {
        char no[4];
        int num;
    }u1;
    clrscr();
    buff=(char *)malloc(512);
    asm {
        mov bx,buff;
        mov ah,0x02;
        mov al,0x01;
        mov ch,0x00;
        mov cl,0x01;
        mov dh,0x00;
        mov dl,0x00;
        int 0x13;
    }
    ptr=buff;
    printf("\n Jump to Bootstrap     :");
    for(i=0;i<3;i++)
    {
        printf(" %x",*ptr);
        ptr++;
    }

    printf("\n\n Manufacture name and version     :");
    for(i=3;i<11;i++)
    {
        printf("%c",*ptr);
        ptr++;
    }

    printf("\n\nBytes per sector       :");
    u1.no[0]=*ptr;
    u1.no[1]=*(ptr+1);
    printf("  %d",u1.num);
    ptr=ptr+2;

    printf("\n\nSectors per allocation unit    :");
    printf("  %d",*ptr);
    ptr++;

    printf("\n\nReserved sectors starting at 0                 :");
    u1.no[0]=*ptr;
    u1.no[1]=*(ptr+1);
    printf("  %d",u1.num);
    ptr=ptr+2;

    printf("\n\nNumber of FAT     :");
    printf("  %d",*ptr);
    ptr++;

    printf("\n\nNumber of root directory entry      :");
    u1.no[0]=*ptr;
    u1.no[1]=*(ptr+1);
    printf("  %d",u1.num);
    ptr=ptr+2;

    printf("\n\nTotal sector in logical volume       :");
    u1.no[0]=*ptr;
    u1.no[1]=*(ptr+1);
    printf("  %d",u1.num);
    ptr=ptr+2;

    printf("\n\nMedia descriptro typeT     :");
    printf("  %d",*ptr);
    ptr++;

    printf("\n\nNumbers of sectors per FAT        :");
    u1.no[0]=*ptr;
    u1.no[1]=*(ptr+1);
    printf("  %d",u1.num);
    ptr=ptr+2;

    printf("\n\nSectors per track        :");
    u1.no[0]=*ptr;
    u1.no[1]=*(ptr+1);
    printf("  %d",u1.num);
    ptr=ptr+2;

    printf("\n\nNumber of heads         :");
    u1.no[0]=*ptr;
    u1.no[1]=*(ptr+1);
    printf("  %d",u1.num);
    ptr=ptr+2;

    printf("\n\nNumber of hidden sectors         :");
    u1.no[0]=*ptr;
    u1.no[1]=*(ptr+1);
    u1.no[2]=*(ptr+2);
    u1.no[3]=*(ptr+3);
    printf("  %d",u1.num);
    ptr=ptr+4;

    printf("\n\nTotal sectors in logical volume          :");
    u1.no[0]=*ptr;
    u1.no[1]=*(ptr+1);
    u1.no[2]=*(ptr+2);
    u1.no[3]=*(ptr+3);
    printf("  %d",u1.num);
    ptr=ptr+4;


    printf("\n\nPhysical driver number     :");
    printf("  %d",*ptr);
    ptr++;

    printf("\n\nReserved      :");
    printf("  %d",*ptr);
    ptr++;

    printf("\n\nExpected boot sign record      :");
    printf("  %d",*ptr);
    ptr++;

    printf("\n\n32 bit binary volme ID       :");
    for(i=0;i<4;i++)
    {
        printf("  %x",*ptr);
        ptr++;
    }

    printf("\n\nVolume label        :");
    for(i=0;i<11;i++)
    {
        printf("  %c",*ptr);
        ptr++;
    }

    printf("\n\nReserved         :");
    for(i=0;i<8;i++)
    {
        printf("  %c",*ptr);
        ptr++;
    }

    getch();
}

No comments:

Post a Comment