43 lines
691 B
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;
|
|
}
|