uxn

Varvara Ordinator, written in ANSI C(SDL2)
git clone https://git.eamoncaddigan.net/uxn.git
Log | Files | Refs | README | LICENSE

commit c7d574b230db74572a94368949348e3d0368641a
parent a5442ea4fd2fc44825a6f2a288b893b14932bb5e
Author: Devine Lu Linvega <aliceffekt@gmail.com>
Date:   Thu, 12 Jan 2023 18:47:19 -0800

(uxn.c) Unallow LDR/STR to reach outside of ram

Diffstat:
Msrc/uxn.c | 4++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/uxn.c b/src/uxn.c @@ -75,8 +75,8 @@ uxn_eval(Uxn *u, Uint16 pc) case 0x0f: /* STH */ POP(a) PUSH(dst, a) break; case 0x10: /* LDZ */ POP8(a) PEEK(b, a) PUSH(src, b) break; case 0x11: /* STZ */ POP8(a) POP(b) POKE(a, b) break; - case 0x12: /* LDR */ POP8(a) PEEK(b, pc + (Sint8)a) PUSH(src, b) break; - case 0x13: /* STR */ POP8(a) POP(b) c = pc + (Sint8)a; POKE(c, b) break; + case 0x12: /* LDR */ POP8(a) PEEK(b, pc + (Sint8)a & 0xffff) PUSH(src, b) break; + case 0x13: /* STR */ POP8(a) POP(b) c = pc + (Sint8)a & 0xffff; POKE(c, b) break; case 0x14: /* LDA */ POP16(a) PEEK(b, a) PUSH(src, b) break; case 0x15: /* STA */ POP16(a) POP(b) POKE(a, b) break; case 0x16: /* DEI */ POP8(a) DEVR(b, a) PUSH(src, b) break;