#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