#include #include #include "../emul.h" /* runbin loads binary from stdin directly in memory address 0 then runs it * until it halts. The return code is the value of the register A at halt time. */ static void iowr_stderr(uint8_t val) { fputc(val, stderr); } int main() { Machine *m = emul_init(); m->iowr[0] = iowr_stderr; // read stdin in mem int i = 0; int c = getchar(); while (c != EOF) { m->mem[i] = c & 0xff; i++; c = getchar(); } if (!i) { fprintf(stderr, "No input, aborting\n"); return 1; } emul_loop(); return m->cpu.R1.br.A; }