#if !defined( _types_h )
#define _types_h

#include <limits.h>

typedef unsigned word;

typedef unsigned char byte;

#if 0
#define bool byte
#define true 1
#define false 0
#endif

typedef unsigned char word8;
typedef signed char int8;

typedef signed short int16;
typedef unsigned short  word16;

#if ( ULONG_MAX > 0xFFFFFFFFUL )
    #define word64_t
    typedef signed int int32;
    typedef unsigned int word32;
    typedef signed long int64;
    typedef unsigned long word64;
#else
    typedef unsigned long word32;
    typedef signed long int32;

    #if defined( __GNUC__ )
        #define word64_t
        typedef signed long long int64;
        typedef unsigned long long word64;
    #endif

#endif

#endif
