// $VER: SDI_defines.h 1.12 (15.10.1995)

#ifndef SDI_DEFINES_H
#define SDI_DEFINES_H

/* ============================== History =============================== */

/* Includeheader

	Name:		SDI_defines
	Author:		SDI
	Distribution:	PD
	Description:	Standard Defines und Makros, sowie Versionsstring

 1.0	: aus ...SDI.h Files aufgebaut
 1.1	: SDI_ERROR eingefügt
 1.2	: INFO's verbessert
 1.3	: SDI_ERROR entfernt
 1.4	: INFO_ERR berichtigt
 1.5	: wenn DATE nicht definiert, dann DATE == __DATE2__
 1.6	: DEBUG Teile eingeführt
 1.7	: DEBUG's etwas geändert
 1.8	: OS_VERSION und TEST_OS eingeführt
 1.9   10.08.95 : OS_VERSION verkürzt
 1.10  18.08.95 : DEBUG_BREAKS ergänzt
 1.11  23.09.95 : NOVERSION ergänzt
 1.12  15.10.95 : jetzt STRPTR version
*/

/* ============== Defines für GetCharHEX und GetCharSTRING ============== */

#define PATTERN_BACK		351  // '_' bei Ausgabe
#define PATTERN			'?'
#define PATTERN_VORZ		92   // '\'
#define BACK_MAX		256

/* ================= Makros für Zeichenkettenbearbeitung ================ */

#define isprintSDI(c)	((c > 31 && c < 127) || c > 160)
/* Zeichen 20-7E, A1-FF */
#define isHEXNum(c)	((c>47 && c<58)||(c>64 && c<71)||(c>96 && c<103))
/* Zeichen 0 bis 9, a bis f und A bis F */

/* ========================== sonstige Makros =========================== */

// <pragmas/exec_lib.h>, <dos/dos.h> <exec/execbase.h>

#define CTRL_C		(SetSignal (0L,0L) & SIGBREAKF_CTRL_C)
#define IS_PAR_HELP	(argc > 1 && argv[1][0] == '?')
#define OS_VERSION      (SysBase->LibNode.lib_Version)
#define TEST_OS(vers)   if(OS_VERSION < vers) {				   \
       PrintFault(ERROR_INVALID_RESIDENT_LIBRARY, 0); exit(RETURN_FAIL); }

/* ===================== Makros für Infotextausgabe ===================== */

// <pragmas/dos_lib.h>, <dos/dos.h>

#define INFO_OK  {PutStr(NAME " : "); PutStr(Info_Head);		   \
		PutStr(Info_Text); exit(RETURN_FAIL);}
#define INFO_ERR {PutStr(NAME " : "); PutStr(Info_Head);		   \
		PrintFault(ERROR_REQUIRED_ARG_MISSING,0); exit(RETURN_FAIL);}

/* ======================== Zeichendefinitionen ========================= */

#define BS   8
#define ESC 27

/* ========================== Debug - Defines =========================== */

// #define DEBUG		// Standard Debugging
// #define DEBUG_NO		// kein Debugging
// #define DEBUG_NORMAL		// alle Standardausgaben
// #define DEBUG_LOOP		// innerhalb von Schleifen
// #define DEBUG_INC_FUNC	// Ausgaben der Includefunktionen
// #define DEBUG_BREAKS		// für Breakpoints mit Wait

/* =========================== Versionsstring =========================== */

#ifdef NAME

 #ifndef AUTHOR
  #define AUTHOR "by SDI"
 #endif

 #ifndef VERSION
  #define VERSION "1"
 #endif

 #ifndef REVISION
  #define REVISION "0"
 #endif

 #ifndef DATE
  #define DATE __DATE2__
 #endif

 #ifndef DISTRIBUTION
  #define DISTRIBUTION "(PD) "
 #endif

#ifndef NOVERSION
 STRPTR version = "$VER: " NAME " " VERSION "." REVISION " (" DATE ") "
 DISTRIBUTION AUTHOR;
#endif

#endif /* NAME */
#endif /* SDI_DEFINES_H */

