|
|
1.1 ! root 1: /* ! 2: * msdos common header file ! 3: * [obtained from mtools -wfj] ! 4: * how to decipher DOS disk structures in coexisting with DOS ! 5: */ ! 6: ! 7: #define MSECTOR_SIZE 512 /* MSDOS sector size in bytes */ ! 8: #define MDIR_SIZE 32 /* MSDOS directory size in bytes */ ! 9: #define MAX_CLUSTER 8192 /* largest cluster size */ ! 10: #define MAX_PATH 128 /* largest MSDOS path length */ ! 11: #define MAX_DIR_SECS 64 /* largest directory (in sectors) */ ! 12: ! 13: #define NEW 1 ! 14: #define OLD 0 ! 15: ! 16: struct directory { ! 17: unsigned char name[8]; /* file name */ ! 18: unsigned char ext[3]; /* file extension */ ! 19: unsigned char attr; /* attribute byte */ ! 20: unsigned char reserved[10]; /* ?? */ ! 21: unsigned char time[2]; /* time stamp */ ! 22: unsigned char date[2]; /* date stamp */ ! 23: unsigned char start[2]; /* starting cluster number */ ! 24: unsigned char size[4]; /* size of the file */ ! 25: }; ! 26: ! 27: struct bootsector { ! 28: unsigned char jump[3]; /* Jump to boot code */ ! 29: unsigned char banner[8]; /* OEM name & version */ ! 30: unsigned char secsiz[2]; /* Bytes per sector hopefully 512 */ ! 31: unsigned char clsiz; /* Cluster size in sectors */ ! 32: unsigned char nrsvsect[2]; /* Number of reserved (boot) sectors */ ! 33: unsigned char nfat; /* Number of FAT tables hopefully 2 */ ! 34: unsigned char dirents[2]; /* Number of directory slots */ ! 35: unsigned char psect[2]; /* Total sectors on disk */ ! 36: unsigned char descr; /* Media descriptor=first byte of FAT */ ! 37: unsigned char fatlen[2]; /* Sectors in FAT */ ! 38: unsigned char nsect[2]; /* Sectors/track */ ! 39: unsigned char nheads[2]; /* Heads */ ! 40: unsigned char nhs[4]; /* number of hidden sectors */ ! 41: unsigned char bigsect[4]; /* big total sectors */ ! 42: unsigned char junk[476]; /* who cares? */ ! 43: }; ! 44: ! 45: /* DOS partition table -- located in boot block */ ! 46: ! 47: #define DOSBBSECTOR 0 /* DOS boot block relative sector number */ ! 48: #define DOSPARTOFF 446 ! 49: #define NDOSPART 4 ! 50: ! 51: struct dos_partition { ! 52: unsigned char dp_flag; /* bootstrap flags */ ! 53: unsigned char dp_shd; /* starting head */ ! 54: unsigned char dp_ssect; /* starting sector */ ! 55: unsigned char dp_scyl; /* starting cylinder */ ! 56: unsigned char dp_typ; /* partition type */ ! 57: #define DOSPTYP_386BSD 0xa5 /* 386BSD partition type */ ! 58: unsigned char dp_ehd; /* end head */ ! 59: unsigned char dp_esect; /* end sector */ ! 60: unsigned char dp_ecyl; /* end cylinder */ ! 61: unsigned long dp_start; /* absolute starting sector number */ ! 62: unsigned long dp_size; /* partition size in sectors */ ! 63: } dos_partitions[NDOSPART];
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.