From 3bf340d9f27e02d1fba20d81eda8c4406e624c26 Mon Sep 17 00:00:00 2001 From: Maxwell Jeffress Date: Thu, 16 Jul 2026 19:04:36 +1000 Subject: [PATCH] stuffs --- src/assembler/assemble.c | 27 ++++++++------------------- src/main.c | 2 ++ tests/add.asm | 3 ++- 3 files changed, 12 insertions(+), 20 deletions(-) diff --git a/src/assembler/assemble.c b/src/assembler/assemble.c index cefc25d..9e4847a 100644 --- a/src/assembler/assemble.c +++ b/src/assembler/assemble.c @@ -9,6 +9,7 @@ #include #include "../instruction.h" +#include "../util.h" // Table of strings to instructions struct _stringToInstructionOpcodeTable {char* str; InstructionOpcode opcode;} stringToInstructionOpcodeTable[] = { @@ -212,27 +213,15 @@ void serializeProgramToFile(Program* program, const char* outputFileName) { } // Write magic header - size_t written = fwrite("mlc\0", 4, 1, fp); - if (written != 1) { - fprintf(stderr, "failed to write magic header into file %s\n", outputFileName); - fclose(fp); - exit(1); - } + ROMFileHeader header = { + .magic = "mlc\0", + .version = 1, + .numInstructions = program->len + }; - // Write program version - uint8_t version = 1; - written = fwrite(&version, sizeof(uint8_t), 1, fp); + size_t written = fwrite(&header, sizeof(ROMFileHeader), 1, fp); if (written != 1) { - fprintf(stderr, "failed to write version header into file %s\n", outputFileName); - fclose(fp); - exit(1); - } - - // Write instruction count - uint32_t instCount = program->len; - written = fwrite(&instCount, sizeof(uint32_t), 1, fp); - if (written != 1) { - fprintf(stderr, "failed to write instruction count header into file %s\n", outputFileName); + fprintf(stderr, "failed to write file header into file %s\n", outputFileName); fclose(fp); exit(1); } diff --git a/src/main.c b/src/main.c index abb73aa..b28c5f3 100644 --- a/src/main.c +++ b/src/main.c @@ -37,6 +37,8 @@ int main(int argc, char** argv) { memcpy(emu->mem + MEM_PROGRAM_START, rom->instructions, sizeof(SerializedInst) * rom->header.numInstructions); + printf("hi i exist\n"); + startEmulator(emu); freeEmulator(emu); diff --git a/tests/add.asm b/tests/add.asm index c0ee31a..168ad17 100644 --- a/tests/add.asm +++ b/tests/add.asm @@ -2,4 +2,5 @@ mvi a 2 mvi b 2 add a b -hlt \ No newline at end of file +hlt +hlt