1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #ifndef ELEA_TIPI_INCLUSO
- #define ELEA_TIPI_INCLUSO
- #include <stdint.h>
- typedef uint8_t carattere;
- typedef int8_t segno;
- typedef uint8_t booleano;
- #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)
- typedef carattere * indirizzo;
- 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 */
- };
- typedef union u_istruzione {
- struct istruzione_gen gen;
- struct istruzione_t t;
- struct istruzione_c c;
- struct istruzione_s s;
- struct istruzione_n n;
- } istruzione;
- #endif /* ELEA_TIPI_INCLUSO */
|