Annotation of Net2/pcfs/bootsect.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  *  Written by Paul Popelka ([email protected])
                      3:  *
                      4:  *  You can do anything you want with this software,
                      5:  *    just don't say you wrote it,
                      6:  *    and don't remove this notice.
                      7:  *
                      8:  *  This software is provided "as is".
                      9:  *
                     10:  *  The author supplies this software to be publicly
                     11:  *  redistributed on the understanding that the author
                     12:  *  is not responsible for the correct functioning of
                     13:  *  this software in any circumstances and is not liable
                     14:  *  for any damages caused by this software.
                     15:  *
                     16:  *  October 1992
                     17:  *
                     18:  *     bootsect.h,v 1.2 1993/05/20 03:34:02 cgd Exp
                     19:  */
                     20: 
                     21: /*
                     22:  *  Format of a boot sector.  This is the first sector
                     23:  *  on a DOS floppy disk or the fist sector of a partition
                     24:  *  on a hard disk.  But, it is not the first sector of
                     25:  *  a partitioned hard disk.
                     26:  */
                     27: struct bootsector33 {
                     28:        char bsJump[3];         /* jump instruction E9xxxx or EBxx90    */
                     29:        char bsOemName[8];      /* OEM name and version                 */
                     30:        char bsBPB[19];         /* BIOS parameter block                 */
                     31:        char bsDriveNumber;     /* drive number (0x80)                  */
                     32:        char bsBootCode[474];   /* pad so structure is 512 bytes long   */
                     33:        u_short bsBootSectSig;
                     34: #define        BOOTSIG 0xaa55
                     35: };
                     36: 
                     37: struct bootsector50 {
                     38:        char bsJump[3];         /* jump instruction E9xxxx or EBxx90    */
                     39:        char bsOemName[8];      /* OEM name and version                 */
                     40:        char bsBPB[25];         /* BIOS parameter block                 */
                     41:        char bsDriveNumber;     /* drive number (0x80)                  */
                     42:        char bsReserved1;       /* reserved                             */
                     43:        char bsBootSignature;   /* extended boot signature (0x29)       */
                     44: #define        EXBOOTSIG       0x29
                     45:        char bsVolumeID[4];     /* volume ID number                     */
                     46:        char bsVolumeLabel[11]; /* volume label                         */
                     47:        char bsFileSysType[8];  /* file system type (FAT12 or FAT16)    */
                     48:        char bsBootCode[448];   /* pad so structure is 512 bytes long   */
                     49:        u_short bsBootSectSig;
                     50: #define        BOOTSIG 0xaa55
                     51: };
                     52: 
                     53: union bootsector {
                     54:        struct bootsector33 bs33;
                     55:        struct bootsector50 bs50;
                     56: };
                     57: 
                     58: /*
                     59:  *  Shorthand for fields in the bpb.
                     60:  */
                     61: #define        bsBytesPerSec   bsBPB.bpbBytesPerSec
                     62: #define        bsSectPerClust  bsBPB.bpbSectPerClust
                     63: #define        bsResSectors    bsBPB.bpbResSectors
                     64: #define        bsFATS          bsBPB.bpbFATS
                     65: #define        bsRootDirEnts   bsBPB.bpbRootDirEnts
                     66: #define        bsSectors       bsBPB.bpbSectors
                     67: #define        bsMedia         bsBPB.bpbMedia
                     68: #define        bsFATsecs       bsBPB.bpbFATsecs
                     69: #define        bsSectPerTrack  bsBPB.bpbSectPerTrack
                     70: #define        bsHeads         bsBPB.bpbHeads
                     71: #define        bsHiddenSecs    bsBPB.bpbHiddenSecs
                     72: #define        bsHugeSectors   bsBPB.bpbHugeSectors

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.