home *** CD-ROM | disk | FTP | other *** search
- /***
- *general.h - definitions/declarations for general C programs
- *
- *for Public Domain, 1995, Gregg Jennings. All wrongs reserved.
- * P O Box 200, Falmouth, MA 02541-0200
- *
- *Purpose:
- * Compiler specifics.
- *
- *Notice:
- * This source file may be freely used and distributed without restriction.
- *******************************************************************************/
-
- /*
-
- Versions
-
- This will change very often (the more compiler testing
- I do, ...).
-
- Notes: I like the use of leading underscores for all
- non-ANSI library functions and typedefs. Only
- CL 7.00+ adheres to this "standard".
-
- */
-
-
- #ifndef GENERAL_H
- #define GENERAL_H
-
-
- /* compiler dependencies -- see ALLOC.H for more */
-
- #if defined(_MSC_VER)
-
- #if defined(M_I86LM) || defined(M_I86CM) /* determine memory model */
- #define __LARGE__ /* (easier to remember) */
- #endif
-
- #if _MSC_VER >= 600
- #define _ASM_DEFINED
- #endif
-
- #if _MSC_VER < 700
- #define __far _far
- #define __huge _huge
- #define _MK_FP(seg, offset) (void __far *)(((unsigned long)seg << 16) \
- + (unsigned long)(unsigned)offset)
- #endif
-
- #elif defined(__BORLANDC__) || defined(__TURBOC__)
-
- #if !defined(__BORLANDC__)
- #define __BORLANDC__ __TURBOC__ /* stupid Turbo C! */
- #endif
-
- #endif
-
-
- #if (defined(_MSC_VER) && (_MSC_VER < 700)) || !defined(_MSC_VER)
-
- #ifndef __WATCOMC__
- #define _ASM_DEFINED
- #endif
- #define __inline
- #define _chdir chdir
- #define _getcwd getcwd
- #define _intdos intdos
- #define _intdosx intdosx
- #define _int86 int86
- #define _int86x int86x
- #define _segread segread
- #ifndef _FP_OFF
- #define _FP_OFF FP_OFF
- #define _FP_SEG FP_SEG
- #endif
- #ifndef _MK_FP
- #define _MK_FP(seg, offset) (void __far *)(((unsigned long)seg << 16) \
- + (unsigned long)(unsigned)offset)
- #endif
- #define _REGS REGS
- #define _SREGS SREGS
- #define _access access
- #define _file_t file_t
- #define _find_t find_t
- #define _diskfree_t diskfree_t
- #define _open open
- #define _write write
- #define _read read
- #define _close close
- #define _filelength filelength
- #define _O_RDONLY O_RDONLY
- #define _O_BINARY O_BINARY
- #define _O_CREAT O_CREAT
- #define _O_TRUNC O_TRUNC
- #define _O_RDWR O_RDWR
- #define _S_IWRITE S_IWRITE
- #define _S_IREAD S_IREAD
-
- #endif
-
- #define OK 1
- #define FALSE 0
- #define TRUE 1
- #define ERROR (-1)
- #define ABORT (-2)
- #define ESC 0x1b
-
-
- /*
- These are for (potentially) moving to a 32-bit compiler.
- word will then have to be unsigned short (if done now,
- there will be many "integral mismatch" warnings).
- */
-
- typedef unsigned char byte;
- typedef unsigned int word;
- typedef unsigned long dword;
-
- #endif
-