elea_tipi.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #ifndef ELEA_TIPI_INCLUSO
  2. #define ELEA_TIPI_INCLUSO
  3. #include <stdint.h>
  4. typedef uint8_t carattere;
  5. typedef int8_t segno;
  6. typedef uint8_t booleano;
  7. #define SI (1)
  8. #define NO (0)
  9. /* bit gA: valido solo se il carattere e` letto da Accumulatore.
  10. * Nelle operazioni aritmetiche le cifre che lo seguono sono zeri
  11. * Nei trasferisferimento a mem principale il bit e` ignorato i
  12. */
  13. #define gA(x) ((x >> 7) & 0x01)
  14. typedef carattere * indirizzo;
  15. struct __attribute__((packed)) istruzione_gen {
  16. carattere F; /* Tipo di funzione */
  17. carattere Tm; /* Modificatore */
  18. carattere I[4]; /* Indirizzo */
  19. carattere L[2]; /* Lunghezza */
  20. };
  21. struct __attribute__((packed)) istruzione_t {
  22. carattere F; /* Tipo di funzione */
  23. carattere Tm; /* Modificatore */
  24. carattere To; /* Indirizzo del secondo operando*/
  25. carattere L[2]; /* Lunghezza */
  26. };
  27. struct __attribute__((packed)) istruzione_c {
  28. carattere F; /* Tipo di funzione */
  29. carattere To; /* Registro operando */
  30. carattere C[5]; /* Costante */
  31. carattere X; /* Non utilizzato */
  32. };
  33. struct __attribute__((packed)) istruzione_s {
  34. carattere F; /* Tipo di funzione */
  35. carattere Tm; /* Modificatore */
  36. carattere I[4]; /* Indirizzo per il salto */
  37. carattere Ts; /* Indirizzo da cui avviene il salto */
  38. carattere E; /* Eventualita` */
  39. };
  40. struct __attribute__((packed)) istruzione_n {
  41. carattere F; /* Tipo di funzione */
  42. carattere Tm; /* Modificatore */
  43. carattere I[4]; /* Indirizzo del blocco in memoria */
  44. carattere n; /* Unita` nastro */
  45. carattere X; /* Non utilizzato */
  46. };
  47. typedef union u_istruzione {
  48. struct istruzione_gen gen;
  49. struct istruzione_t t;
  50. struct istruzione_c c;
  51. struct istruzione_s s;
  52. struct istruzione_n n;
  53. } istruzione;
  54. #endif /* ELEA_TIPI_INCLUSO */