fix file loading

This commit is contained in:
2026-07-16 18:41:52 +10:00
parent 9828ef2811
commit 14700bdf59
6 changed files with 5 additions and 5 deletions

BIN
add.o Normal file

Binary file not shown.

View File

@@ -17,7 +17,8 @@ int main() {
{INST_HLT, {}, 0, false}
};
memoryLoadProgram(emu->mem, program, sizeof(program)/sizeof(program[0]));
RomFile* f = readProgramFromFile("../add.o");
memcpy(emu->mem + MEM_PROGRAM_START, f->instructions, sizeof(SerializedInst) * f->header.numInstructions);
startEmulator(emu);
freeEmulator(emu);

View File

@@ -53,6 +53,7 @@ uint32_t memorySerializeInst(Memory* m, Instruction inst, uint32_t offset) {
void memoryLoadProgram(Memory* m, Instruction program[], size_t numInstructions) {
size_t offset = 0;
for (size_t i = 0; i < numInstructions; i++) {
printf("%zu. %s\n", i, instructionToCStr(program[i]));
offset = memorySerializeInst(m, program[i], offset);
}
}

View File

@@ -21,7 +21,7 @@ RomFile* readProgramFromFile(char* path) {
fclose(f);
ROMFileHeader* header = (ROMFileHeader*)buffer;
Instruction* instructions = calloc(header->numInstructions, sizeof(SerializedInst));
SerializedInst* instructions = calloc(header->numInstructions, sizeof(SerializedInst));
if (!instructions) {
free(buffer);
return NULL;

View File

@@ -13,7 +13,7 @@ typedef struct {
typedef struct {
ROMFileHeader header;
Instruction* instructions;
SerializedInst* instructions;
} RomFile;
// -- FUNCTIONS -- //

View File

@@ -1,5 +1,3 @@
dingus:
mvi a 2
mvi b 2