all repos — xyw @ 35c13bbce37f62686b4dc95238af12a98326d2c7

A minimal virtual machine and assembler for terminals.

Refactoring macros
h3rald h3rald@h3rald.com
Sun, 07 Dec 2025 12:54:24 +0000
commit

35c13bbce37f62686b4dc95238af12a98326d2c7

parent

bd15385cf6d3ab1fe018765812fb9028278cdef2

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

jump to
M xywrun.cxywrun.c

@@ -323,8 +323,8 @@ /* BRK */ case 0x00: return 0; // Halting execution for now

/* PSH */ OPC_PSH(0x01); /* POP */ OPC_POP(0x02); /* CLR */ OPC_SR1_new(0x03, , SET(0)); - /* LDB */ OPC_SR1(0x04, us_push(read( ADDR(a)) )); - /* LDW */ OPC_SR1(0x05, us_pushw(readw( ADDR(a)) )); + /* LDB */ OPC_SR1_new(0x04, , us_push(read( ADDR(ARG)) )); + /* LDW */ OPC_SR1_new(0x05, , us_pushw(readw( ADDR(ARG)) )); /* STB */ OPC_SR1(0x06, write( ADDR(a), us_pop() )); /* STW */ OPC_SR1(0x07, writew( ADDR(a), us_popw() )); /* INC */ OPC_SR1_new(0x08, , SET(ARG + 1));

@@ -344,7 +344,7 @@ /* IOR */ OPC_SR2(0x15, PUSH(a | b));

/* XOR */ OPC_SR2(0x16, PUSH(a ^ b)); /* NOT */ OPC_SR1_new(0x17, , SET(~ARG)); /* SWP */ OPC_SWP(0x18); - /* DUP */ OPC_SR1(0x19, PUSH(a)); + /* DUP */ OPC_SR1_new(0x19, , PUSH(ARG)); /* OVR */ OPC_SR2(0x1A, PUSH(b); PUSH(a); PUSH(b)); /* ROT */ OPC_SR2(0x1B, PUSH(b); PUSH(POP()); PUSH(a)); /* JMP */ OPC_SR1(0x1C, *pc = ADDR(a)-1;);