diff options
author | Alex AUVOLAT <alex.auvolat@ens.fr> | 2014-01-03 20:41:22 +0100 |
---|---|---|
committer | Alex AUVOLAT <alex.auvolat@ens.fr> | 2014-01-03 20:41:22 +0100 |
commit | 1b32dfecc4fd1c9d9d024bb053c43ea17021cc65 (patch) | |
tree | a52a6527a6dd0f34f07f61c20b77b42c1d8ff720 /csim | |
parent | 1ff268ab13dd299c4cdc1e379df5397bd6a394e3 (diff) | |
download | SystDigit-Projet-1b32dfecc4fd1c9d9d024bb053c43ea17021cc65.tar.gz SystDigit-Projet-1b32dfecc4fd1c9d9d024bb053c43ea17021cc65.zip |
Monitor now works correctly.
Diffstat (limited to 'csim')
-rw-r--r-- | csim/load.c | 2 | ||||
-rw-r--r-- | csim/sim.c | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/csim/load.c b/csim/load.c index 485a743..e54c0f0 100644 --- a/csim/load.c +++ b/csim/load.c @@ -41,7 +41,7 @@ void add_rom(const char *prefix, FILE *file) { eat_comment(file); if (fscanf(file, "/%lu", &(rom->data[i]))) { // ok, value is read - } else if (fscanf(file, "x%x", &(rom->data[i]))) { + } else if (fscanf(file, "x%lx", &(rom->data[i]))) { // ok, value is read } else { rom->data[i] = read_bool(file, NULL); @@ -61,6 +61,7 @@ void machine_banner(t_machine *m, FILE *stream) { m->prog->vars[m->prog->inputs[i]].name); } fprintf(stream, "\n"); + fflush(stream); } void read_inputs(t_machine *m, FILE *stream) { @@ -80,6 +81,8 @@ void read_inputs(t_machine *m, FILE *stream) { fscanf(stream, " "); if (fscanf(stream, "/%lu", &(m->var_values[var]))) { // ok, value is read + } else if (fscanf(stream, "x%lx", &(m->var_values[var]))) { + // ok, value is read } else { m->var_values[var] = read_bool(stream, NULL); } @@ -223,6 +226,7 @@ void write_outputs(t_machine *m, FILE *stream) { fprintf(stream, "\t%ld\n", m->var_values[var]); } fprintf(stream, "\n"); + fflush(stream); } |