
#ifndef	 EXEC_TYPES_H
#include "exec/types.h"
#endif



#define		GAL16V8		1		/*GAL-Typ*/
#define		GAL20V8		2

#define		IC1		3		/*IC-Nummern*/
#define		IC3		0
#define		IC4		1
#define		IC5		2
#define		IC6		0
#define		IC7		1

#define		ON		1		/*LED-Status*/
#define		OFF		0

#define		YES		1
#define		NO		0

#define		PROG		1		/*GAL-Modus*/
#define		VERIFY		0

#define		LOW		0
#define		HIGH		1
#define		EINGANG		0
#define		AUSGANG		1

#define		ASK_REQ		0		/* Requester-Typen*/
#define		SAVE_REQ	1
#define		LOAD_REQ	2
#define		INFO_REQ	3
#define		ERR_REQ		4




struct	JedecStruct { BYTE GALLogic[2560];	/*max. Größe der Fuse-Mat.*/
		      BYTE GALXOR  [8];		/*XOR-Bits*/
		      BYTE GALSig  [64];	/*Signatur*/
		      BYTE GALAC1  [8];		/*AC1-Bits*/
		      BYTE GALPT   [64];	/*Produkttermfreigabe*/
		      BYTE GALSYN;		/*SYN-Bit*/
		      BYTE GALAC0;	};	/*AC0-Bit*/


					/*GAL16V8*/
#define	LOGIC16		0		/* Positionen der Bits in der*/
#define	XOR16		2048		/* Jedec-Datei*/
#define SIG16		2056
#define AC116		2120
#define PT16		2128
#define SYN16		2192
#define AC016		2193
					/*GAL20V8*/
#define	LOGIC20		0		/* Positionen der Bits in der*/
#define	XOR20		2560		/* Jedec-Datei*/
#define SIG20		2568
#define AC120		2632
#define PT20		2640
#define SYN20		2704
#define AC020		2705

#define LOGIC16_SIZE	2048		/*Anzahl der Bits für XOR usw.*/
#define LOGIC20_SIZE	2560
#define ROW_SIZE	64
#define XOR_SIZE	8
#define SIG_SIZE	64
#define AC1_SIZE	8
#define PT_SIZE		64
#define SYN_SIZE	1
#define AC0_SIZE	1
#define ACW_SIZE	82		/*Architektur-Kontroll-Wort*/

#define	MAX_FUSE_ADR16	31		/*Adressen der GALs (für Fan-Post)*/
#define	SIG_ADR16	32
#define	MAX_FUSE_ADR20	39
#define	SIG_ADR20	40
#define ACW_ADR		60
#define SECURITY_ADR	61
#define ERASE_ADR	63

#define MAX_OR		8		/*max. Anzahl der OR-Verknüpfungen*/

/*GAL-Assembler*/


struct	Pin		{ BYTE p_Neg;		/*Pin negiert?*/
			  BYTE p_Pin; };	/*Pinnummer?*/


struct	GAL_OLMC	{ BYTE Active;		/*Ausgang negiert?*/
		  	  BYTE PinType;		/*Eingang, komb. Ausgang...*/
		  	  BYTE TriCon;		/*Tri.-Kontrolle angegeben?*/
			  int  LineNum;	};	/*falls Eingang: Zeilennummer*/

#define ACTIVE_LOW	0			/*Pin High-aktiv*/
#define ACTIVE_HIGH	1			/*Pin Low-aktiv*/
					/*PinType: */
#define NOTUSED		0			/*Pin (noch) nicht verwendet*/
#define NOTCON		0			/*Pin nicht verwendet*/
#define INPUT		2			/*Eingang*/
#define COMOUT		3			/*kombinatorischer Ausgang*/
#define TRIOUT		4			/*Tristate-Ausgang*/
#define REGOUT		5			/*Register-Ausgang*/
#define COM_TRI_OUT	6			/*entweder Tri. oder komb. Ausgang*/
					/*TriCon:*/
#define NO_TRICON	0			/*kein Tri.-Kontrolle angegeben*/
#define TRICON		1			/*Tri.-Kontrolle angegeben*/
#define TRI_VCC		2			/*ständige Tristate-Freigabe*/
#define TRI_GND		3			/*ständig hochohmig*/
#define TRI_PRO		4			/*Tristate-Kontrolle über Produktterm*/


#define	NC_PIN		30

#define MODE1		1		/*Betriebsmodi (SYN,AC0)*/
#define MODE2		2
#define MODE3		3


