#include #include "emu.h" #include "util.h" 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}, {INST_PORT, {REG_A, REG_B, 0}, 0, false}, {INST_PORT, {REG_A, REG_B, 1}, 0, false}, {INST_HLT, {}, 0, false} }; 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->data + MEM_PROGRAM_START, rom->instructions, sizeof(SerializedInst) * rom->header.numInstructions); startEmulator(emu); freeEmulator(emu); return 0; }