Metropoli BBS
VIEWER: general.h MODE: TEXT (ASCII)
/***
*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
[ RETURN TO DIRECTORY ]