#ifndef __STDTYPES_H
#define __STDTYPES_H

#ifndef DBG
#ifndef NDEBUG
#define DBG
#endif
#endif

#define pure =0

#define HIDDEN static

#define EOL             -1
#define NOERR   0


// @doc EXTERNAL

// @type bool | Tipo booleano che puo' assumere i valori TRUE (definito come 1)
//    e FALSE (definito come 0).

#ifdef __cplusplus
  #ifndef FALSE
    #define FALSE false
    #define TRUE  true
  #endif
#else
  typedef unsigned short bool;
  #ifndef FALSE
    #define FALSE 0
    #define TRUE  1
  #endif
#endif

// @doc EXTERNAL

// @type word | Tipo per la definizione di tipi di lunghezza pari a due byte
typedef unsigned short word;
// @doc EXTERNAL

// @type dword | Tipo per la definizione di tipi di lunghezza pari a quattro byte
typedef unsigned int dword;
// @doc EXTERNAL

// @type byte | Tipo per la definizione di tipi di lunghezza pari ad un byte
typedef unsigned char byte;
// @doc EXTERNAL

// @type KEY | Tipo per la definizione di variabili destinati a contenere i caratteri
//    immessi da tastiera
typedef unsigned short KEY;

#define UNDEFINED -32767


#endif // __STDTYPES_H