mirror of
https://github.com/hsoft/collapseos.git
synced 2024-11-27 15:38:05 +11:00
34 lines
653 B
C
34 lines
653 B
C
#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;
|
|
}
|
|
|