|
- #include <stdint.h>
- #include <stdio.h>
- #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;
- }
|