|
@@ -1,4 +1,14 @@
|
|
|
|
+#include <stdio.h>
|
|
#include "elea_tipi.h"
|
|
#include "elea_tipi.h"
|
|
|
|
+#include "governo.h"
|
|
|
|
+#include "memoria.h"
|
|
|
|
+
|
|
|
|
+static const carattere mappa_caratteri[64][3] = {
|
|
|
|
+ "0", "1", "~", "2", "4", "+", "#", "3", "5", "6", "/", "7", "9", "-", "÷", "8",
|
|
|
|
+ "Φ", "A", "δ", "B", "D", "=", "α", "C", "E", "F", "%", "G", "I", ",", "γ", "H",
|
|
|
|
+ ".", "S", "θ", "T", "V", "!", ")", "U", "W", "X", "?", "Y", "\'", "&", "⊗", "Z",
|
|
|
|
+ "ε", "J", "*", "K", "M", "(", "β", "L", "N", "O", "$", "η", "R", "P", "π", "Q"
|
|
|
|
+};
|
|
|
|
|
|
int op_cm(istruzione *i)
|
|
int op_cm(istruzione *i)
|
|
{
|
|
{
|
|
@@ -7,6 +17,30 @@ int op_cm(istruzione *i)
|
|
|
|
|
|
int op_ms(istruzione *i)
|
|
int op_ms(istruzione *i)
|
|
{
|
|
{
|
|
|
|
+ struct istruzione_gen *ms = &i->gen;
|
|
|
|
+ uint32_t ind;
|
|
|
|
+ int len;
|
|
|
|
+ int j;
|
|
|
|
+ int r;
|
|
|
|
+ carattere c, *stampabile;
|
|
|
|
+
|
|
|
|
+ r = estrai_cifra(ms->L[0]);
|
|
|
|
+ if (r < 0)
|
|
|
|
+ return -1; /* Errore */
|
|
|
|
+ len = r;
|
|
|
|
+ r = estrai_cifra(ms->L[1]);
|
|
|
|
+ if (r < 0)
|
|
|
|
+ return -1; /* Errore */
|
|
|
|
+ len += 10 * r;
|
|
|
|
+ len = estrai_cifra(ms->L[0]) + 10 * estrai_cifra(ms->L[1]);
|
|
|
|
+ ind = estrai_indirizzo(ms->I);
|
|
|
|
+ if (ind == (uint32_t)(-1))
|
|
|
|
+ return -1; /* Errore */
|
|
|
|
+ for (j = 0; j < len; j++) {
|
|
|
|
+ c = mem_leggi_carattere(ind + j);
|
|
|
|
+ printf("%s", mappa_caratteri[c]);
|
|
|
|
+ }
|
|
|
|
+ printf("\r\n");
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|