elea9003-emu/elea.c

54 lines
1.4 KiB
C
Raw Normal View History

2019-12-24 01:26:09 +01:00
#include "elea_tipi.h"
#include "caratteri.h"
#include "telescrivente.h"
#include "memoria.h"
#include "codifica_istruzioni.h"
extern const carattere hello_world[];
extern const int hello_world_lunghezza;
extern const carattere long_division[];
extern const int long_division_lunghezza;
/* main */
int main(int argc, char *argv[])
{
2019-12-24 01:26:09 +01:00
istruzione istr;
/* TEST: memoria / phi */
/* Riempie la memoria 1:11 con "HELLO.WORLD" */
mem_scrivi_carattere(1,CAR_H);
mem_scrivi_carattere(2,CAR_E);
mem_scrivi_carattere(3,CAR_L);
mem_scrivi_carattere(4,CAR_L);
mem_scrivi_carattere(5,CAR_O);
mem_scrivi_carattere(6,CAR_PUNTO);
mem_scrivi_carattere(7,CAR_W);
mem_scrivi_carattere(8,CAR_O);
mem_scrivi_carattere(9,CAR_R);
mem_scrivi_carattere(10,CAR_L);
mem_scrivi_carattere(11,CAR_D);
/* Costruisce una istruzione MS artificiale con indirizzo 0001 e lunghezza 11
* per stampare il testo sulla telescrivente
*/
istr.gen.F = OP_MS;
istr.gen.I[0] = CAR_UNO;
istr.gen.I[1] = CAR_ZERO;
istr.gen.I[2] = CAR_ZERO;
istr.gen.I[3] = CAR_ZERO;
istr.gen.L[0] = CAR_UNO;
istr.gen.L[1] = CAR_UNO;
istr.gen.Tm = CAR_DIESIS;
/* Esegue l'istruzione phi */
op_ms(&istr);
mem_scrivi_blocco(1, hello_world, hello_world_lunghezza);
mem_scrivi_blocco(100, long_division, long_division_lunghezza);
return 0;
}