#define signum(wert) ((wert)<0?-1:1)
#define xVerschiebung  50
#define yVerschiebung  40
#define xSize         640
#define ySize         512
#define xOffset        20
#define yOffset        20
#define MGVersion       2
#define MGRevision      4

typedef struct MatrixGenType {
	UBYTE Version;
	UBYTE Revision;
	UWORD xLength;
	UWORD yLength;
	UBYTE Speak;
	int cBitmaps;
	int AnzahlKnoten;
	int AusgangsKnoten;
	int AnzahlWichtigeDaten;
	int Stufenwert;
	int MaxSAN;
	int AusgangsWichtigeDaten;
	UBYTE MaxFarben;
	UBYTE OutputType;
	BOOL CPUInSystem;
	BOOL Beenden;
	BOOL RandomDSValue;
	BOOL Zufallsstufen;
	BOOL KeineDatenspeicher;
	BOOL StatusFile;
	BOOL PrefsFile;
	BOOL BlaueKnoten;
	BOOL Schatten;
	BOOL SaveDatenfeld;
	BOOL InstallNoIC;
	BOOL AlwaysICInfo;
	BOOL AlwaysICDS;
	};
typedef struct BitMapHeader {
	UWORD w,h;
	WORD x,y;
	UBYTE nPlanes;
	UBYTE masking;
	UBYTE compression;
	UBYTE pad1;
	UWORD transparentColor;
	UBYTE xAspect,yAspect;
	WORD Width,Height;
	};
typedef struct ColorRegister{
	UBYTE rot;
	UBYTE gruen;
	UBYTE blau;
	};
typedef struct CommodoreAmiga{
	UWORD PadWord;
	UWORD ViewModes;
	};
typedef struct MatrixKomponenten{
	BOOL Belegt;
	UBYTE Type;
	UBYTE Nummer;
	UBYTE Secure;
	UBYTE Stufe;
	BOOL WichtigeDaten;
	UBYTE WDICType;
	UBYTE WDICArt;
	UBYTE WDICStufe;
	ULONG Datenwert;
	UBYTE Datensize;
	UBYTE ICType;
	UBYTE ICArt;
	UBYTE ICStufe;
	BOOL N;
	BOOL NO;
	BOOL O;
	BOOL SO;
	BOOL S;
	BOOL SW;
	BOOL W;
	BOOL NW;
	};

/* ICTyp 1 weiß */
/* ICTyp 2 grau */
/* ICTyp 3 schwarz */
/* ICProgramm weiß 1 Falle */
/*                 2 Zugang */
/*                 3 Barriere */
/*                 4 Falle */
/* ICProgramm grau 1 Blaster */
/*   ICStufe       2 Aufspüren */
/*                 3 Killer */
/*                 4 Teerbaby */
/*                 5 Teergrube */
