Annotation of os232sdk/c386/include/dos.h, revision 1.1.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.