#ifndef __INC_POS_PEXEC_TYPES_H
#define __INC_POS_PEXEC_TYPES_H
/*******************************************************************
 Includes Release 24
 (C) Copyright 1995-1997 proDAD
     All Rights Reserved

 $AUT Holger Burkarth
 $DAT >>Types.h<<   18 Mar 1997    10:11:18 - (C) ProDAD
*******************************************************************/

#define __pOS__ 1
#define __pLIBFUNC__    /* ... is a library function */

#ifdef __cplusplus
 #define pOS_CPP 1
#endif

#define __pOS_EXECPRECODE 1 /** ExecTable über Umwege einbringen **/

/* 1978-1992 => 14*365 + 3 */
#define pOS_AMIGA_TIMEDIFF 5113




#ifdef pOS_REGPROTOS
 #define _R_A0 register __a0
 #define _R_A1 register __a1
 #define _R_A2 register __a2
 #define _R_A3 register __a3
 #define _R_A4 register __a4
/* #define _R_A5 register __a5 // Compiler - Problem */
 #define _R_A5 register __d7
 #define _R_LB register __a6

 #define _R_D0 register __d0
 #define _R_D1 register __d1
 #define _R_D2 register __d2
 #define _R_D3 register __d3
 #define _R_D4 register __d4
 #define _R_D5 register __d5
 #define _R_D6 register __d6
 #define _R_D7 register __d7

 #define _R_F0 register __d0
 #define _R_F1 register __d1
 #define _R_F2 register __d2
 #define _R_F3 register __d3
 #define _R_F4 register __d4
 #define _R_F5 register __d5
 #define _R_F6 register __d6
 #define _R_F7 register __d7
#else
 #define _R_A0
 #define _R_A1
 #define _R_A2
 #define _R_A3
 #define _R_A4
 #define _R_A5
 #define _R_LB

 #define _R_D0
 #define _R_D1
 #define _R_D2
 #define _R_D3
 #define _R_D4
 #define _R_D5
 #define _R_D6
 #define _R_D7

 #define _R_F0
 #define _R_F1
 #define _R_F2
 #define _R_F3
 #define _R_F4
 #define _R_F5
 #define _R_F6
 #define _R_F7
#endif


  #define VOID            void

  #ifndef APTR_TYPEDEF
   #define APTR_TYPEDEF
   typedef void*          APTR;
  #endif

  typedef long            SLONG;
  typedef unsigned long   ULONG;
  typedef short           SWORD;
  typedef unsigned short  UWORD;
  typedef signed char     SBYTE;
  typedef unsigned char   UBYTE;

  typedef float           FLOAT;
  typedef double          DOUBLE;
  typedef short           BOOL;
  typedef char            CHAR;       /* normales char, es darf NICHT damit gerechnet werden */
  typedef unsigned char   UCHAR;      /* nur für spezielle Chars, die unbedingt unsigned sein müssen */
  typedef signed char     SCHAR;      /* nur für spezielle Chars, die unbedingt signed sein müssen */

  #ifndef __AMIGA_TYPES__
   #define __AMIGA_TYPES__
   typedef char  BYTE; /* old Types - do not use */
   typedef short WORD;
   typedef long  LONG;
  #endif

  #ifndef _SIZE_T
   #define _SIZE_T
   typedef unsigned int size_t;
  #endif

  #ifndef NULL
   #define NULL (0L)
  #endif

  #define __CONST__
  #define TRUE  1
  #define FALSE 0

  #define __ARID__



enum pOS_DebugSysSemaphorePri /* Doc DebugDeadLock.txt */
{
  pOSd_SYSSEM_FirstApp  = 109,  /* erste Pri für Applikationen */
  pOSd_SYSSEM_LastApp   = 91,   /* letzte Pri für Applikationen */

  pOSd_SYSSEM_Unit      = 80,   /* iu_Sem */
  pOSd_SYSSEM_View      = 60,   /* pOS_View */
  pOSd_SYSSEM_ScrGad    = 50,   /* scr_GadSem */
  pOSd_SYSSEM_WinGad    = 40,   /* win_GadSem */
  pOSd_SYSSEM_LInfo     = 30,   /* pOS_LayerInfo */
  pOSd_SYSSEM_Layer     = 20    /* pOS_Layer */
};




#ifdef pOS_DEBUG
/** pOS:pOS/pOS <width> <height> debug <pOS_DEBUG_xx>  **/
enum
{
  pOS_DEBUG_Exec1  = 0x0001,    /* Libs and Devs */
  pOS_DEBUG_Dos1   = 0x0002,    /* Locks and Files */
  pOS_DEBUG_Dos2   = 0x0004,    /* Devs Procs */
  pOS_DEBUG_Exec2  = 0x0008,    /* Classes */
  pOS_DEBUG_Exec3  = 0x0010,    /* Classes-Objects */
  pOS_DEBUG_Intui1 = 0x0020,    /* Screen/Window */
  pOS_DEBUG_Gfx1   = 0x0040,    /* Font/ */
  pOS_DEBUG_Dos3   = 0x0080,    /* Segment */
  pOS_DEBUG_Config = 0x0100     /* Config-Stuff */

};
#endif


#endif
