|
|
1.1 ! root 1: /* ! 2: * Directory entry on an MS-DOS diskette. Used by file extraction program "dos" ! 3: * and by the MS-DOS emulator. ! 4: */ ! 5: ! 6: #ifdef _I386 ! 7: #pragma align 1 ! 8: #endif ! 9: typedef struct mdir { ! 10: unsigned char m_name[8]; /* File name */ ! 11: unsigned char m_ext[3]; /* File extension */ ! 12: unsigned char m_attr; /* File attribute */ ! 13: unsigned char m_junk[10]; /* Reserved */ ! 14: unsigned short m_time; /* Sec/Min/Hour Creation*/ ! 15: unsigned short m_date; /* Day/Month/(Year-1980)*/ ! 16: short m_cluster; /* Starting cluster */ ! 17: long m_size; /* File size in bytes */ ! 18: } MDIR; ! 19: #ifdef _I386 ! 20: #pragma align ! 21: #endif ! 22: ! 23: #define m_sec(z) (unsigned short)((unsigned short)(z->m_time ) & 0x1f) ! 24: #define m_min(z) (unsigned short)((unsigned short)(z->m_time>>5) & 0x3f) ! 25: #define m_hour(z) (unsigned short)((unsigned short)(z->m_time>>11) & 0x1f) ! 26: ! 27: #define m_day(z) (unsigned short)((unsigned short)(z->m_date ) &0x1f) ! 28: #define m_month(z) (unsigned short)((unsigned short)(z->m_date>>5) &0xf) ! 29: #define m_year(z) (unsigned short)((unsigned short)(z->m_date>>9) &0x7f) ! 30: ! 31: #define c_sec(y) (unsigned short)(y) ! 32: #define c_min(y) ((unsigned short)(y)<<5) ! 33: #define c_hour(y) ((unsigned short)(y)<<11) ! 34: ! 35: #define c_day(y) (unsigned short)(y) ! 36: #define c_month(y) ((unsigned short)(y)<<5) ! 37: #define c_year(y) ((unsigned short)(y)<<9) ! 38: ! 39: ! 40: /* Special values for m_name[0]. */ ! 41: #define MFREE (unsigned char)0x00 /* Never used */ ! 42: #define MMDIR (unsigned char)0x2E /* Directory file */ ! 43: #define MEMPTY (unsigned char)0xE5 /* Empty name */ ! 44: ! 45: /* Attributes in m_attr. */ ! 46: #define MRONLY 0x01 /* Read only */ ! 47: #define MHIDDEN 0x02 /* Hidden file */ ! 48: #define MSYSTEM 0x04 /* System file */ ! 49: #define MVOLUME 0x08 /* Volume identifier */ ! 50: #define MSUBDIR 0x10 /* Sub directory */ ! 51: #define MARCHIV 0x20 /* Archive bit */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.