|
|
1.1 ! root 1: /*** ! 2: *dos.h - definitions for MS-DOS interface routines ! 3: * ! 4: * Copyright (c) 1985-1990, Microsoft Corporation. All rights reserved. ! 5: * ! 6: *Purpose: ! 7: * Defines the structs and unions used for the direct DOS interface ! 8: * routines; includes macros to access the segment and offset ! 9: * values of far pointers, so that they may be used by the routines; and ! 10: * provides function prototypes for direct DOS interface functions. ! 11: * ! 12: ****/ ! 13: ! 14: ! 15: /* ensure proper alignment of struct fields */ ! 16: ! 17: #pragma pack(4) ! 18: ! 19: ! 20: #ifndef _REGS_DEFINED ! 21: ! 22: /* word registers */ ! 23: ! 24: struct WORDREGS { ! 25: unsigned int eax; ! 26: unsigned int ebx; ! 27: unsigned int ecx; ! 28: unsigned int edx; ! 29: unsigned int esi; ! 30: unsigned int edi; ! 31: unsigned int cflag; ! 32: }; ! 33: ! 34: ! 35: /* byte registers */ ! 36: ! 37: struct BYTEREGS { ! 38: unsigned short aw; /* high 16-bits of eax */ ! 39: unsigned char al, ah; ! 40: unsigned short bw; /* high 16-bits of ebx */ ! 41: unsigned char bl, bh; ! 42: unsigned short cw; /* high 16-bits of ecx */ ! 43: unsigned char cl, ch; ! 44: unsigned short dw; /* high 16-bits of edx */ ! 45: unsigned char dl, dh; ! 46: }; ! 47: ! 48: ! 49: /* general purpose registers union - ! 50: * overlays the corresponding word and byte registers. ! 51: */ ! 52: ! 53: union REGS { ! 54: struct WORDREGS x; ! 55: struct BYTEREGS h; ! 56: }; ! 57: ! 58: ! 59: /* segment registers */ ! 60: ! 61: struct SREGS { ! 62: unsigned int es; ! 63: unsigned int cs; ! 64: unsigned int ss; ! 65: unsigned int ds; ! 66: }; ! 67: ! 68: #define _REGS_DEFINED ! 69: ! 70: #endif ! 71: ! 72: ! 73: /* _dos_getdate/_dossetdate and _dos_gettime/_dos_settime structures */ ! 74: ! 75: #ifndef _DATETIME_T_DEFINED ! 76: ! 77: struct dosdate_t { ! 78: unsigned char day; /* 1-31 */ ! 79: unsigned char month; /* 1-12 */ ! 80: unsigned int year; /* 1980-2099 */ ! 81: unsigned char dayofweek; /* 0-6, 0=Sunday */ ! 82: }; ! 83: ! 84: struct dostime_t { ! 85: unsigned char hour; /* 0-23 */ ! 86: unsigned char minute; /* 0-59 */ ! 87: unsigned char second; /* 0-59 */ ! 88: unsigned char hsecond; /* 0-99 */ ! 89: }; ! 90: ! 91: #define _DATETIME_T_DEFINED ! 92: ! 93: #endif ! 94: ! 95: ! 96: /* manifest constants for _hardresume result parameter */ ! 97: ! 98: #define _HARDERR_IGNORE 0 /* Ignore the error */ ! 99: #define _HARDERR_RETRY 1 /* Retry the operation */ ! 100: #define _HARDERR_ABORT 2 /* Abort program issuing Interrupt 23h */ ! 101: #define _HARDERR_FAIL 3 /* Fail the system call in progress */ ! 102: /* _HARDERR_FAIL is not supported on DOS 2.x */ ! 103: ! 104: /* File attribute constants */ ! 105: ! 106: #define _A_NORMAL 0x00 /* Normal file - No read/write restrictions */ ! 107: #define _A_RDONLY 0x01 /* Read only file */ ! 108: #define _A_HIDDEN 0x02 /* Hidden file */ ! 109: #define _A_SYSTEM 0x04 /* System file */ ! 110: #define _A_VOLID 0x08 /* Volume ID file */ ! 111: #define _A_SUBDIR 0x10 /* Subdirectory */ ! 112: #define _A_ARCH 0x20 /* Archive file */ ! 113: ! 114: ! 115: /* external variable declarations */ ! 116: ! 117: extern unsigned int _cdecl _osversion; ! 118: ! 119: ! 120: /* function prototypes */ ! 121: ! 122: void _cdecl segread(struct SREGS *); ! 123: ! 124: ! 125: /* restore default alignment */ ! 126: ! 127: #pragma pack()
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.