/***********************************************************************
                       CSA Library, Free Evaluation Version 2.2.0 
                                           Release: June 9th 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

