telescrivente.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include <stdio.h>
  2. #include "elea_tipi.h"
  3. #include "governo.h"
  4. #include "memoria.h"
  5. static const carattere mappa_caratteri[64][3] = {
  6. "0", "1", "~", "2", "4", "+", "#", "3", "5", "6", "/", "7", "9", "-", "÷", "8",
  7. "Φ", "A", "δ", "B", "D", "=", "α", "C", "E", "F", "%", "G", "I", ",", "γ", "H",
  8. ".", "S", "θ", "T", "V", "!", ")", "U", "W", "X", "?", "Y", "\'", "&", "⊗", "Z",
  9. "ε", "J", "*", "K", "M", "(", "β", "L", "N", "O", "$", "η", "R", "P", "π", "Q"
  10. };
  11. int op_cm(istruzione *i)
  12. {
  13. return 0;
  14. }
  15. int op_ms(istruzione *i)
  16. {
  17. struct istruzione_gen *ms = &i->gen;
  18. indirizzo ind;
  19. int len;
  20. int j;
  21. int r;
  22. carattere c, *stampabile;
  23. r = estrai_cifra(ms->L[0]);
  24. if (r < 0)
  25. return -1; /* Errore */
  26. len = r;
  27. r = estrai_cifra(ms->L[1]);
  28. if (r < 0)
  29. return -1; /* Errore */
  30. len += 10 * r;
  31. ind = estrai_indirizzo(ms->I);
  32. if (ind == (indirizzo)(-1))
  33. return -1; /* Errore */
  34. for (j = 0; j < len; j++) {
  35. c = mem_leggi_carattere((uint32_t)(ind + j));
  36. printf("%s", mappa_caratteri[c]);
  37. }
  38. printf("\r\n");
  39. return 0;
  40. }