Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <dos.h>
- #include <memory.h>
- #include <stdlib.h>
- #include <string.h>
- struct BOOT { //for FAT16
- char jmp[3];
- char OEM[8];
- int bytes_per_sector;
- char sectors_per_cluster;
- int reserved;
- char FAT_cnt;
- int ROOT_size;
- int total_sectors;
- char media;
- int FAT_size;
- int sectors_per_track;
- int head_cnt;
- long hidden_sectors;
- long total_sectors_long;
- char unknown[3];
- long serial;
- char volume[11];
- char FAT_type[8];
- char loader[448];
- char mark[2];
- };
- struct ROOT {
- char name[8];
- char ext[3];
- char attr;
- char reserved[10];
- char time[2];
- char date[2];
- int first_cluster;
- long size;
- };
- void main()
- {
- int drive = 3; //A=0, B=1, C=2, D=3 ...
- //Reading boot sector from disk D
- BOOT boot;
- int res = absread(drive, 1, 0, &boot);
- unsigned int *fat = (unsigned int *)malloc (boot.FAT_size * boot.bytes_per_sector);
- //printing first 30 non-empty FAT cells
- printf("Content of first 30 non-empty FAT cells:");
- int i = 0, num = 0;
- int total = 30;
- while(num<total){
- if(fat[i]!=0){
- printf("%u ", fat[i]);
- num++;
- }
- i++;
- getchar();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement