summaryrefslogtreecommitdiff
path: root/6502/src/test.c
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2026-07-10 14:48:59 -0400
committerLLLL Colonq <llll@colonq>2026-07-10 14:48:59 -0400
commitb6f00172b4e7045a14cebba0a7d4011528a28741 (patch)
tree0e5d90ea1bb56085f6b773d54f2f8fdbd90538e9 /6502/src/test.c
parent9ba3ccd51d94e2db6920351eccb9050d1a2c41e1 (diff)
6502: More Lua bindings
Diffstat (limited to '6502/src/test.c')
-rw-r--r--6502/src/test.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/6502/src/test.c b/6502/src/test.c
index 1b4e241..1497df6 100644
--- a/6502/src/test.c
+++ b/6502/src/test.c
@@ -58,14 +58,14 @@ int emu_get_flag(lua_State *l);
int emu_get_flag(lua_State *l) {
l6502_emu *e = get_emu(l);
l6502_flag f = lua_tointeger(l, 2);
- lua_pushinteger(l, l6502_flag_get(e, f));
+ lua_pushboolean(l, l6502_flag_get(e, f));
return 1;
}
int emu_set_flag(lua_State *l);
int emu_set_flag(lua_State *l) {
l6502_emu *e = get_emu(l);
l6502_flag f = lua_tointeger(l, 2);
- u8 v = (u8) lua_tointeger(l, 3);
+ bool v = lua_toboolean(l, 3);
l6502_flag_set(e, f, v);
lua_pushvalue(l, 1);
return 1;
@@ -86,6 +86,24 @@ int emu_set_pc(lua_State *l) {
return 1;
}
+int emu_read(lua_State *l);
+int emu_read(lua_State *l) {
+ l6502_emu *e = get_emu(l);
+ u16 addr = (u16) lua_tointeger(l, 2);
+ lua_pushinteger(l, l6502_read(e, addr));
+ return 1;
+}
+
+int emu_write(lua_State *l);
+int emu_write(lua_State *l) {
+ l6502_emu *e = get_emu(l);
+ u16 addr = (u16) lua_tointeger(l, 2);
+ u8 v = (u8) lua_tointeger(l, 3);
+ l6502_write(e, addr, v);
+ lua_pushvalue(l, 1);
+ return 1;
+}
+
int emu_emulate(lua_State *l);
int emu_emulate(lua_State *l) {
l6502_emu *e = get_emu(l);
@@ -106,6 +124,8 @@ int new(lua_State *l) {
lua_pushcfunction(l, emu_set_flag); lua_setfield(l, -2, "set-flag");
lua_pushcfunction(l, emu_get_pc); lua_setfield(l, -2, "pc");
lua_pushcfunction(l, emu_set_pc); lua_setfield(l, -2, "set-pc");
+ lua_pushcfunction(l, emu_read); lua_setfield(l, -2, "read");
+ lua_pushcfunction(l, emu_write); lua_setfield(l, -2, "write");
lua_pushcfunction(l, emu_emulate); lua_setfield(l, -2, "emulate");
lua_setfield(l, -2, "__index");
lua_setmetatable(l, -2);