all repos — xyw @ 7ab9cd29e108cb9c97d7318c7a7f8b34b831c744

A minimal virtual machine and assembler for terminals.

Fixing LDBx/LDBy
h3rald h3rald@h3rald.com
Tue, 09 Dec 2025 03:49:59 +0100
commit

7ab9cd29e108cb9c97d7318c7a7f8b34b831c744

parent

ca15c1d9da2f541927648bdb313bf1081f87bd63

1 files changed, 1 insertions(+), 1 deletions(-)

jump to
M xywrun.cxywrun.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() ));