www.pudn.com > drdossrc.zip > PORTAB.H


/**************************************************************************** 
;    File              : $Workfile$ 
; 
;    Description       : 
; 
;    Original Author   : DIGITAL RESEARCH 
; 
;    Last Edited By    : $CALDERA$ 
; 
;-----------------------------------------------------------------------; 
;    Copyright Work of Caldera, Inc. All Rights Reserved. 
;       
;    THIS WORK IS A COPYRIGHT WORK AND CONTAINS CONFIDENTIAL, 
;    PROPRIETARY AND TRADE SECRET INFORMATION OF CALDERA, INC. 
;    ACCESS TO THIS WORK IS RESTRICTED TO (I) CALDERA, INC. EMPLOYEES 
;    WHO HAVE A NEED TO KNOW TO PERFORM TASKS WITHIN THE SCOPE OF 
;    THEIR ASSIGNMENTS AND (II) ENTITIES OTHER THAN CALDERA, INC. WHO 
;    HAVE ACCEPTED THE CALDERA OPENDOS SOURCE LICENSE OR OTHER CALDERA LICENSE 
;    AGREEMENTS. EXCEPT UNDER THE EXPRESS TERMS OF THE CALDERA LICENSE 
;    AGREEMENT NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED, 
;    COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, 
;    CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, 
;    TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT OF 
;    CALDERA, INC. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT 
;    AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND 
;    CIVIL LIABILITY. 
;-----------------------------------------------------------------------; 
; 
;    *** Current Edit History *** 
;    *** End of Current Edit History *** 
; 
;    $Log$ 
; 
;    ENDLOG 
* 
*	  C P / M   C   R U N   T I M E   L I B   H E A D E R   F I L E 
*	  ------------------------------------------------------------- 
* 
*	This is an include file for assisting the user to write portable 
*	programs for C.  All processor dependencies should be located here. 
* 
****************************************************************************/ 
 
#ifdef drc 
#define DRC 
#endif 
 
/* 
 *	Standard type definitions 
 */ 
#define	BYTE	char				/* Signed byte		   */ 
#ifdef DRC 
#define UBYTE	char				/* Unsigned byte 	   */ 
#else 
#define UBYTE	unsigned char			/* Unsigned byte 	   */ 
#endif 
#define BOOLEAN	int				/* 2 valued (true/false)   */ 
#define	WORD	int  				/* Signed word (16 bits)   */ 
#define	UWORD	unsigned int			/* unsigned word	   */ 
 
#define	LONG	long				/* signed long (32 bits)   */ 
#ifdef DRC 
#define	ULONG	long				/* Unsigned long	   */ 
#else 
#define	ULONG	unsigned long			/* Unsigned long	   */ 
#endif 
 
#define	REG	register			/* register variable	   */ 
#define	LOCAL	auto				/* Local var on 68000	   */ 
#define	EXTERN	extern				/* External variable	   */ 
#define	MLOCAL	static				/* Local to module	   */ 
#define	GLOBAL	/**/				/* Global variable	   */ 
#define VOID	void 
#define	DEFAULT	int				/* Default size		   */ 
#define FLOAT	float				/* Floating Point	   */ 
#define DOUBLE	double				/* Double precision	   */ 
 
#ifdef __WATCOMC__				/* Watcom C Version 7.00     */ 
/* define pragma for 'cdecl' keyword to match Microsoft conventions */ 
#pragma aux cdecl "_*" parm caller []\ 
   value struct float struct routine [ax]  modify [ax bx cx dx es]; 
 
#pragma aux pascal "*" parm routine reverse []\ 
   value struct float struct routine [ax]  modify [ax bx cx dx es]; 
/*#define WATCOMC 1				/* Watcom C v7.0	     */ 
#define	CDECL	cdecl				/* C calling convention	     */ 
#define	PASCAL	pascal				/* Pascal Calling Convention */ 
#define FAR	far				/* FAR pointer or Function   */ 
#define NEAR	near				/* NEAR pointer or Function  */ 
#define	CONST	/**/				/* CONSTANT Value	     */ 
#define	VOLATILE /**/				/* VOLATILE must Always Read */ 
 
#else 
#ifdef MSC                   
#define	CDECL	cdecl				/* C calling convention	     */ 
#define	PASCAL	pascal				/* Pascal Calling Convention */ 
#define FAR	far				/* FAR pointer or Function   */ 
#define NEAR	near				/* NEAR pointer or Function  */ 
#define	CONST	/**/				/* CONSTANT Value	     */ 
#define	VOLATILE /**/				/* VOLATILE must Always Read */ 
 
#else 
#ifdef MSC5                 
#define	CDECL	cdecl				/* C calling convention	     */ 
#define	PASCAL	pascal				/* Pascal Calling Convention */ 
#define FAR	far				/* FAR pointer or Function   */ 
#define NEAR	near				/* NEAR pointer or Function  */ 
#define	CONST	const				/* CONSTANT value -- R/O     */ 
#define	VOLATILE volatile			/* VOLATILE must always read */ 
 
#else 
#ifdef __TURBOC__				/* Borland TurboC Ver 1.50   */ 
#define	TURBOC	1				/* Define TURBOC	     */ 
#define	CDECL	cdecl				/* C calling convention	     */ 
#define	PASCAL	pascal				/* Pascal Calling Convention */ 
#define FAR	far				/* FAR pointer or Function   */ 
#define NEAR	near				/* NEAR pointer or Function  */ 
#define	CONST	const				/* CONSTANT value -- R/O     */ 
#define	VOLATILE volatile			/* VOLATILE must always read */ 
 
#else 
#ifdef __HIGHC__			/* MetaWare High C	     */ 
#define METAWARE 1			/* High C version 1.4		*/ 
 
#define	_PASCAL_CONV _CALLEE_POPS_STACK|_SAVE_REGS 
#define	_C_CONV _REVERSE_PARMS 
#define	FIXFUNC	pragma Global_aliasing_convention("%C%r"); 
#define	VARFUNC	pragma Global_aliasing_convention("_%a%r"); 
					/********************************/ 
#define	CDECL	_cc (_C_CONV|_SAVE_REGS)/* MS C conventions		*/ 
#define	PASCAL	_cc (_PASCAL_CONV)	/* MS Pascal conventions	*/ 
#define	FAR	_far			/* FAR pointer or function	*/ 
#define NEAR	_near			/* NEAR pointer or function 	*/ 
#define	CONST	const			/* CONSTANT value -- R/O	*/ 
#define	VOLATILE volatile		/* VOLATILE must always read	*/ 
					/********************************/ 
pragma Calling_convention (_C_CONV,_DEFAULT); 
VARFUNC					/* set default to C		*/ 
					/********************************/ 
pragma On (Optimize_for_space);		/* space, not speed		*/ 
pragma On (Quiet);			/* don't be too verbose		*/ 
pragma Off (Public_var_warnings);	/* referenced before set	*/ 
pragma Code ("_TEXT");			/* MSC compatible		*/ 
pragma Static_segment ("_DATA");	/* MSC compatible		*/ 
pragma Literals ("_DATA");		/* put constants into _DATA	*/ 
pragma On (Char_default_unsigned);	/* unsigned is safer		*/ 
pragma Off (Push_regsize);		/* push [mem] is safe		*/ 
					/********************************/ 
#ifdef QUIET				/********************************/ 
pragma On (PCC_msgs);			/* don't talk too much -	*/ 
#endif					/*   UNIX PCC errors only...	*/ 
					/********************************/ 
#ifdef REG				/* if register defined already	*/ 
#undef REG				/* redefine register variables	*/ 
#endif					/*				*/ 
#define	REG /**/			/* make it ignore register vars	*/ 
pragma Off (Use_reg_vars);		/* allocate vars to SI, DI	*/ 
pragma Off (Auto_reg_alloc);		/* HC figures out SI,DI		*/ 
					/*				*/ 
#ifndef	NOPROTO				/*				*/ 
pragma Off (Prototype_override_warnings); 
#define LINT_ARGS	YES		/* ANSI prototype checking	*/ 
#endif					/*				*/ 
					/********************************/ 
#else					/* all other compilers		*/ 
					/* (might not support ANSI)	*/ 
#define	CDECL	/**/			/* C calling convention		*/ 
#define	PASCAL	/**/			/* Pascal calling convention	*/ 
#define FAR	/**/			/* FAR pointer or function	*/ 
#define NEAR	/**/			/* NEAR pointer or function	*/ 
#define	CONST	/**/			/* CONSTANT value		*/ 
#define	VOLATILE /**/			/* VOLATILE must always read	*/ 
					/********************************/ 
#ifndef DRC				/* If DRC not specified,	*/ 
#define DRC				/*   assume it's it anyway	*/ 
#endif					/*				*/ 
					/********************************/ 
#endif					/* MetaWare C			*/ 
#endif					/* Borland TurboC		*/ 
#endif					/* MicroSoft C Version 5.00	*/ 
#endif					/* MicroSoft C Version 4.00	*/ 
#endif					/* Watcom C Version 7.00	*/ 
 
#ifndef FIXFUNC 
#define	FIXFUNC /* Nothing */ 
#define	VARFUNC /* Nothing */ 
#endif 
 
/****************************************************************************/ 
/*	Miscellaneous Definitions:					    */ 
/****************************************************************************/ 
#define	FAILURE	(-1)			/*	Function failure return val */ 
#define SUCCESS	(0)			/*	Function success return val */ 
#define	YES	1			/*	"TRUE"			    */ 
#define	NO	0			/*	"FALSE"			    */ 
#define	FOREVER	for(;;)			/*	Infinite loop declaration   */ 
#undef	NULL				/* 	Remove previous definition  */ 
#define	NULL	0			/*	Null character value	    */ 
#ifdef DRC				/************************************/ 
#define NULLPTR (BYTE *) 0		/*	Null pointer value	    */ 
#else					/************************************/ 
#define NULLPTR (VOID *) 0		/*	Null pointer value	    */ 
#endif					/************************************/ 
#define	EOF	(-1)			/*	EOF Value		    */ 
#define	TRUE	(1)			/*	Function TRUE  value	    */ 
#define	FALSE	(0)			/*	Function FALSE value	    */ 
 
/****************************************************************************/ 
/****************************************************************************/