diff --git a/src/main.c b/src/main.c index 8e3620f..abb73aa 100644 --- a/src/main.c +++ b/src/main.c @@ -2,13 +2,20 @@ #include "emu.h" #include "util.h" -int main() { +int main(int argc, char** argv) { + + if (argc < 2) { + fprintf(stderr, "Usage: %s \n", argv[0]); + return 1; + } + Emulator* emu = initEmulator(0x00010FFF); if (!emu) { fprintf(stderr, "emu: error: failed to allocate memory for emulator\n"); return 1; } + /* Instruction program[] = { {INST_MVI, {REG_A}, 0, true}, {INST_MVI, {REG_B}, 123, true}, @@ -19,9 +26,19 @@ int main() { RomFile* f = readProgramFromFile("../add.o"); memcpy(emu->mem + MEM_PROGRAM_START, f->instructions, sizeof(SerializedInst) * f->header.numInstructions); + memoryLoadProgram(emu->mem, program, sizeof(program)/sizeof(program[0])); + */ + + RomFile* rom = readProgramFromFile(argv[1]); + if (rom == NULL) { + fprintf(stderr, "Failed to read rom from %s\n", argv[1]); + return 1; + } + + memcpy(emu->mem + MEM_PROGRAM_START, rom->instructions, sizeof(SerializedInst) * rom->header.numInstructions); startEmulator(emu); freeEmulator(emu); return 0; -} \ No newline at end of file +}