Fixing LDBx/LDBy
h3rald h3rald@h3rald.com
Tue, 09 Dec 2025 03:49:59 +0100
1 files changed,
1 insertions(+),
1 deletions(-)
jump to
M
xywrun.c
→
xywrun.c
@@ -298,7 +298,7 @@ /* BRK */ case 0x00: return 0; // Halting execution for now
/* PSH */ OPC_SR1(0x01, , if (rx||ry) { PUSH(ARG); } else { (*pc)++; PUSH(READ(*pc)); if (w) { (*pc)++; } }) /* POP */ OPC_SR1(0x02, , if (rx||ry) { SET(POP()); } else { POP(); } ); /* CLR */ OPC_SR1(0x03, , SET(0)); - /* LDB */ OPC_SR1(0x04, , us_push(read( ADDR(ARG)) )); + /* LDB */ OPC_SR1(0x04, , us_push(rx||ry ? ARG : readw(ADDR(ARG)))); /* LDW */ OPC_SR1(0x05, , us_pushw(readw( ADDR(ARG)) )); /* STB */ OPC_SR1(0x06, xyw_word addr = ADDR(ARG), write( addr, us_pop() )); /* STW */ OPC_SR1(0x07, xyw_word addr = ADDR(ARG), writew( addr, us_popw() ));