--- mstools/h/dos.h 2018/08/09 18:20:01 1.1 +++ mstools/h/dos.h 2018/08/09 18:21:09 1.1.1.3 @@ -1,7 +1,7 @@ /*** *dos.h - definitions for MS-DOS interface routines * -* Copyright (c) 1985-1991, Microsoft Corporation. All rights reserved. +* Copyright (c) 1985-1992, Microsoft Corporation. All rights reserved. * *Purpose: * Defines the structs and unions used for the direct DOS interface @@ -18,12 +18,40 @@ extern "C" { #endif -#if (_MSC_VER <= 600) -#define __cdecl _cdecl +/* + * Conditional macro definition for function calling type and variable type + * qualifiers. + */ +#if ( (_MSC_VER >= 800) && (_M_IX86 >= 300) ) + +/* + * Definitions for MS C8-32 (386/486) compiler + */ +#define _CRTAPI1 __cdecl +#define _CRTAPI2 __cdecl + +#elif ( _MSC_VER == 600 ) + +/* + * Definitions for old MS C6-386 compiler + */ +#define _CRTAPI1 _cdecl +#define _CRTAPI2 _cdecl +#define _M_IX86 300 + +#else + +/* + * Other compilers (e.g., MIPS) + */ +#define _CRTAPI1 +#define _CRTAPI2 + #endif + /* _getdiskfree structure (duplicated in DIRECT.H) */ #ifndef _DISKFREE_T_DEFINED @@ -52,17 +80,49 @@ struct _diskfree_t { /* external variable declarations */ -extern unsigned int _osversion; +#if defined(_WIN32_) || defined(_POSIX_) + +#ifdef _DLL +#define _osversion (*_osversion_dll) +#define _osmajor (*_osmajor_dll) +#define _osminor (*_osminor_dll) +#define _baseversion (*_baseversion_dll) +#define _basemajor (*_basemajor_dll) +#define _baseminor (*_baseminor_dll) +#define _pgmptr (*_pgmptr_dll) + +extern unsigned int * _osversion_dll; +extern unsigned int * _osmajor_dll; +extern unsigned int * _osminor_dll; +extern unsigned int * _baseversion_dll; +extern unsigned int * _basemajor_dll; +extern unsigned int * _baseminor_dll; +extern char ** _pgmptr_dll; + +#else + + +extern unsigned int _osversion; extern unsigned int _osmajor; extern unsigned int _osminor; extern unsigned int _baseversion; extern unsigned int _basemajor; extern unsigned int _baseminor; +extern char * _pgmptr; + +#endif + +#else /* ndef (_WIN32_ || _POSIX_) */ + +extern unsigned int _osversion; + +#endif /* _WIN32_ */ + /* function prototypes */ -unsigned _getdiskfree(unsigned, struct _diskfree_t *); +unsigned _CRTAPI1 _getdiskfree(unsigned, struct _diskfree_t *); #if !__STDC__ /* Non-ANSI name for compatibility */