undar-lang/arch/web/tui/main.c

43 lines
691 B
C

#include "../../../vm/vm.h"
#undef true
#undef false
#include <stdio.h>
#include <string.h>
#include <emscripten.h>
#include <emscripten/html5.h>
#define CODE_SIZE 8192
#define MEMORY_SIZE 65536
u8 lmem[MEMORY_SIZE] = {0};
u32 lcode[CODE_SIZE] = {0};
bool init_vm() {
mem = lmem;
memset(mem, 0, MEMORY_SIZE*sizeof(u8));
code = lcode;
mp = 0;
cp = 0;
pc = 0;
interrupt = 0;
return true;
}
u32 syscall(u32 id, u32 args, u32 mem_ptr) {
return 0; // success
}
void mainloop(void) {
if (!step_vm()) {
emscripten_cancel_main_loop();
return;
}
}
i32 main(void) {
printf("VM loaded successfully\n");
emscripten_set_main_loop(mainloop, 0, 1);
return 0;
}