/***********************************************************************
                       CSA Library, Free Evaluation Version 2.0.5 
                                       Release: January 22th 1997 


       Defining platform independent types.


                                           Copyright(c) 1994-1997 
                                                          ComBits 
                                                  The Netherlands 
***********************************************************************/



#ifndef __CSTYPES_H
#define __CSTYPES_H


#include "cscmplr.h"


//////////////////////////////////////////////////////////////////////
//////////////////////// The Borland C++ DOS/WINDOWS Compiler ////////
//////////////////////////////////////////////////////////////////////

#if (defined(_CP_001a) || defined(_CP_001c))


#include "limits.h"

typedef  unsigned char   U8;

typedef  signed char     S8;

typedef  unsigned int    U16;

typedef  int             S16;

typedef  unsigned long   U32;

typedef  long            S32;

typedef  unsigned long   ulong;

typedef  unsigned int    uint;

typedef  unsigned char   uchar;

typedef    signed char   schar;

typedef  const char *    CSCCP;

typedef  char            csCHAR;




#define S8_MIN        SCHAR_MIN

#define S8_MAX        SCHAR_MAX

#define U8_MAX        UCHAR_MAX

#define S16_MIN       INT_MIN

#define S16_MAX       INT_MAX

#define U16_MAX       UINT_MAX

#define S32_MIN       LONG_MIN

#define S32_MAX       LONG_MAX

#define U32_MAX       ULONG_MAX





#endif




//////////////////////////////////////////////////////////////////////
//////////////////////// The Borland C++ OS2 Compiler ////////////////
//////////////////////////////////////////////////////////////////////

#ifdef _CP_001b

#include "limits.h"

typedef  unsigned char   U8;

typedef  signed char     S8;

typedef  unsigned short  U16;

typedef  signed short    S16;

typedef  unsigned int    U32;

typedef  signed int      S32;

typedef  unsigned long   ulong;

typedef  unsigned int    uint;

typedef  unsigned char   uchar;

typedef  signed char     schar;

typedef  const char *    CSCCP;

typedef  char            csCHAR;


#define S8_MIN        SCHAR_MIN

#define S8_MAX        SCHAR_MAX

#define U8_MAX        UCHAR_MAX

#define S16_MIN       SHRT_MIN

#define S16_MAX       SHRT_MAX

#define U16_MAX       USHRT_MAX

#define S32_MIN       INT_MIN

#define S32_MAX       INT_MAX

#define U32_MAX       UINT_MAX


#endif




//////////////////////////////////////////////////////////////////////
//////////////////////// The Borland C++ 32 Window  //////////////////
//////////////////////////////////////////////////////////////////////

#ifdef _CP_001d

#include "limits.h"

typedef  unsigned char   U8;

typedef  signed char     S8;

typedef  unsigned short  U16;

typedef  signed short    S16;

typedef  unsigned int    U32;

typedef  signed int      S32;

typedef  unsigned long   ulong;

typedef  unsigned int    uint;

typedef  unsigned char   uchar;

typedef  signed char     schar;

typedef  const char *    CSCCP;

typedef  char            csCHAR;


#define S8_MIN        SCHAR_MIN

#define S8_MAX        SCHAR_MAX

#define U8_MAX        UCHAR_MAX

#define S16_MIN       SHRT_MIN

#define S16_MAX       SHRT_MAX

#define U16_MAX       USHRT_MAX

#define S32_MIN       INT_MIN

#define S32_MAX       INT_MAX

#define U32_MAX       UINT_MAX


#endif







//////////////////////////////////////////////////////////////////////
//////////////////////// Watcom C++ Dos Win16 Compiler ///////////////
//////////////////////////////////////////////////////////////////////

#if (defined(_CP_004a) || defined(_CP_004b))

#include "limits.h"

typedef  unsigned char   U8;

typedef  signed char     S8;

typedef  unsigned int    U16;

typedef  signed int      S16;

typedef  unsigned long   U32;

typedef  signed long     S32;

typedef  unsigned long   ulong;

typedef  unsigned int    uint;

typedef  unsigned char   uchar;

typedef  signed char     schar;

typedef  const char *    CSCCP;

typedef  char            csCHAR;


#define S8_MIN        SCHAR_MIN

#define S8_MAX        SCHAR_MAX

#define U8_MAX        UCHAR_MAX

#define S16_MIN       INT_MIN

#define S16_MAX       INT_MAX

#define U16_MAX       UINT_MAX

#define S32_MIN       LONG_MIN

#define S32_MAX       LONG_MAX

#define U32_MAX       ULONG_MAX


#endif






//////////////////////////////////////////////////////////////////////
//////////////////////// Watcom C++ NT Compiler //////////////////////
//////////////////////////////////////////////////////////////////////

#ifdef _CP_004c

#include "limits.h"

typedef  unsigned char   U8;

typedef  signed char     S8;

typedef  unsigned short  U16;

typedef  signed short    S16;

typedef  unsigned int    U32;

typedef  signed int      S32;

typedef  unsigned long   ulong;

typedef  unsigned int    uint;

typedef  unsigned char   uchar;

typedef  signed char     schar;

typedef  const char *    CSCCP;

typedef  char            csCHAR;


#define S8_MIN        SCHAR_MIN

#define S8_MAX        SCHAR_MAX

#define U8_MAX        UCHAR_MAX

#define S16_MIN       SHRT_MIN

#define S16_MAX       SHRT_MAX

#define U16_MAX       USHRT_MAX

#define S32_MIN       INT_MIN

#define S32_MAX       INT_MAX

#define U32_MAX       UINT_MAX


#endif









//////////////////////////////////////////////////////////////////////
//////////////////////// Watcom C++ OS2 Compiler /////////////////////
//////////////////////////////////////////////////////////////////////

#ifdef _CP_004d

#include "limits.h"

typedef  unsigned char   U8;

typedef  signed char     S8;

typedef  unsigned short  U16;

typedef  signed short    S16;

typedef  unsigned int    U32;

typedef  signed int      S32;

typedef  unsigned long   ulong;

typedef  unsigned int    uint;

typedef  unsigned char   uchar;

typedef  signed char     schar;

typedef  const char *    CSCCP;

typedef  char            csCHAR;


#define S8_MIN        SCHAR_MIN

#define S8_MAX        SCHAR_MAX

#define U8_MAX        UCHAR_MAX

#define S16_MIN       SHRT_MIN

#define S16_MAX       SHRT_MAX

#define U16_MAX       USHRT_MAX

#define S32_MIN       INT_MIN

#define S32_MAX       INT_MAX

#define U32_MAX       UINT_MAX


#endif





//////////////////////////////////////////////////////////////////////
////////////////////////// Microsoft C++ 16 bit //////////////////////
//////////////////////////////////////////////////////////////////////

#if (defined(_CP_002a) || defined(_CP_002c))



typedef  unsigned char   U8;

typedef  signed char     S8;

typedef  unsigned int    U16;

typedef  signed int      S16;

typedef  unsigned long   U32;

typedef  signed long     S32;

typedef  unsigned long   ulong;

typedef  unsigned int    uint;

typedef  unsigned char   uchar;

typedef  signed char     schar;

typedef  const char *    CSCCP;

typedef  char            csCHAR;




#define S8_MIN        SCHAR_MIN

#define S8_MAX        SCHAR_MAX

#define U8_MAX        UCHAR_MAX

#define S16_MIN       INT_MIN

#define S16_MAX       INT_MAX

#define U16_MAX       UINT_MAX

#define S32_MIN       LONG_MIN

#define S32_MAX       LONG_MAX

#define U32_MAX       ULONG_MAX





#endif




//////////////////////////////////////////////////////////////////////
////////////////////////// Microsoft C++ 32 bit //////////////////////
//////////////////////////////////////////////////////////////////////

#ifdef _CP_002b



#include <limits.h>



typedef  unsigned char   U8;

typedef  signed char     S8;

typedef  unsigned short  U16;

typedef  signed short    S16;

typedef  unsigned int    U32;

typedef  signed int      S32;

typedef  unsigned long   ulong;

typedef  unsigned int    uint;

typedef  unsigned char   uchar;

typedef  signed char     schar;

typedef  const char *    CSCCP;

typedef  char            csCHAR;





#define S8_MIN        SCHAR_MIN

#define S8_MAX        SCHAR_MAX

#define U8_MAX        UCHAR_MAX

#define S16_MIN       SHRT_MIN

#define S16_MAX       SHRT_MAX

#define U16_MAX       USHRT_MAX

#define S32_MIN       INT_MIN

#define S32_MAX       INT_MAX

#define U32_MAX       UINT_MAX





#endif







//////////////////////////////////////////////////////////////////////
////////////////////////////// The GNU Compiler //////////////////////
//////////////////////////////////////////////////////////////////////

#ifdef _CP_003


#include <limits.h>



typedef  unsigned char   U8;

typedef  signed char     S8;

typedef  unsigned short  U16;

typedef  signed short    S16;

typedef  unsigned int    U32;

typedef  signed int      S32;

typedef  unsigned long long int  U64;

typedef  signed long long int    S64;



typedef  unsigned long   ulong;

typedef  unsigned int    uint;

typedef  unsigned char   uchar;

typedef  signed char     schar;

typedef  const char *    CSCCP;

typedef  char            csCHAR;





#define S8_MIN        SCHAR_MIN

#define S8_MAX        SCHAR_MAX

#define U8_MAX        UCHAR_MAX

#define S16_MIN       SHRT_MIN

#define S16_MAX       SHRT_MAX

#define U16_MAX       USHRT_MAX

#define S32_MIN       INT_MIN

#define S32_MAX       INT_MAX

#define U32_MAX       UINT_MAX







#endif


//////////////////////////////////////////////////////////////////////
/////////////////////////// Pointer types ////////////////////////////
//////////////////////////////////////////////////////////////////////


#ifndef _CP_100

///////////////////////////////////////////
// Not a flat memory model.

  #ifndef NEAR
  #define NEAR near
  #endif

  #ifndef HUGE
  #define HUGE huge
  #endif

  #ifndef FAR
  #define FAR far
  #endif


#else

///////////////////////////////////////////
// The flat memory model.

  #ifndef NEAR
  #define NEAR
  #endif

  #ifndef HUGE
  #define HUGE
  #endif

  #ifndef FAR
  #define FAR
  #endif

#endif




#endif

