#ifndef ELEA_TIPI_INCLUSO #define ELEA_TIPI_INCLUSO #include typedef uint8_t carattere; typedef int8_t segno; typedef uint8_t booleano; typedef uint32_t indirizzo; #define SI (1) #define NO (0) /* bit gA: valido solo se il carattere e` letto da Accumulatore. * Nelle operazioni aritmetiche le cifre che lo seguono sono zeri * Nei trasferisferimento a mem principale il bit e` ignorato i */ #define gA(x) ((x >> 7) & 0x01) struct __attribute__((packed)) istruzione_gen { carattere F; /* Tipo di funzione */ carattere Tm; /* Modificatore */ carattere I[4]; /* Indirizzo */ carattere L[2]; /* Lunghezza */ }; struct __attribute__((packed)) istruzione_t { carattere F; /* Tipo di funzione */ carattere Tm; /* Modificatore */ carattere To; /* Indirizzo del secondo operando*/ carattere L[2]; /* Lunghezza */ }; struct __attribute__((packed)) istruzione_c { carattere F; /* Tipo di funzione */ carattere To; /* Registro operando */ carattere C[5]; /* Costante */ carattere X; /* Non utilizzato */ }; struct __attribute__((packed)) istruzione_s { carattere F; /* Tipo di funzione */ carattere Tm; /* Modificatore */ carattere I[4]; /* Indirizzo per il salto */ carattere Ts; /* Indirizzo da cui avviene il salto */ carattere E; /* Eventualita` */ }; struct __attribute__((packed)) istruzione_n { carattere F; /* Tipo di funzione */ carattere Tm; /* Modificatore */ carattere I[4]; /* Indirizzo del blocco in memoria */ carattere n; /* Unita` nastro */ carattere X; /* Non utilizzato */ }; struct __attribute__((packed)) istruzione_da { carattere F; /* Tipo di funzione */ carattere Tm; /* Modificatore */ carattere I[2]; /* Indirizzo interno dell'accumulatore */ carattere X[4]; /* Non utilizzato */ }; typedef union u_istruzione { struct istruzione_gen gen; struct istruzione_t t; struct istruzione_c c; struct istruzione_s s; struct istruzione_n n; struct istruzione_da da; } istruzione; #endif /* ELEA_TIPI_INCLUSO */