From 2bdcaf319b1d74ffbaccf08a58336f804761beab Mon Sep 17 00:00:00 2001 From: LLLL Colonq Date: Thu, 9 Jul 2026 23:51:55 -0400 Subject: Refactor into monorepo --- 6502/include/lcq/6502.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 6502/include/lcq/6502.h (limited to '6502/include/lcq/6502.h') diff --git a/6502/include/lcq/6502.h b/6502/include/lcq/6502.h new file mode 100644 index 0000000..cb3b1fa --- /dev/null +++ b/6502/include/lcq/6502.h @@ -0,0 +1,37 @@ +#ifndef LCOLONQ_6502_H +#define LCOLONQ_6502_H + +#include + +typedef enum { + L6502_FLAG_CARRY = 1 << 1, + L6502_FLAG_ZERO = 1 << 2, + L6502_FLAG_INTERRUPT_DISABLE = 1 << 3, + L6502_FLAG_DECIMAL = 1 << 4, + L6502_FLAG_BREAK_COMMAND = 1 << 5, + L6502_FLAG_OVERFLOW = 1 << 6, + L6502_FLAG_NEGATIVE = 1 << 7, +} l6502_flag; + +typedef struct { + u16 pc; + u8 sp, a, x, y, flags; +} l6502_regs; + +typedef u8 (*l6502_mem_read_handler)(void *data, u16 addr); +typedef void (*l6502_mem_write_handler)(void *data, u16 addr, u8 val); +typedef struct { + l6502_mem_read_handler rh; + l6502_mem_write_handler wh; + void *data; +} l6502_mem; +void l6502_mem_basic_new(l6502_mem *m); + +typedef struct { + l6502_regs regs; + l6502_mem mem; +} l6502_emu; + +void l6502_emulate(l6502_emu *e); + +#endif -- cgit v1.3.1