Annotation of os232sdk/c386/include/dos.h, revision 1.1

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()

unix.superglobalmegacorp.com

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