all repos — xyw @ ffc6c6ce6c4fcc898e20a384b733b1ddb9bf565e

A minimal virtual machine and assembler for terminals.

Fixes,
h3rald h3rald@h3rald.com
Mon, 09 Feb 2026 10:25:32 +0100
commit

ffc6c6ce6c4fcc898e20a384b733b1ddb9bf565e

parent

c04aa6693cc1a052c252c28fa34f3a5202d07512

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

jump to
M xywrun.cxywrun.c

@@ -139,7 +139,7 @@ }

return xyw_memory[addr]; } -static inline void write(xyw_word addr, xyw_byte val) +static inline void writeb(xyw_word addr, xyw_byte val) { xyw_memory[addr] = val; int dev_num = get_device(addr);

@@ -359,14 +359,14 @@ xyw_dbg("Processing argument %d of %d: %s\n", i, xyw_argc, xyw_argv[i]);

const char *arg = xyw_argv[i]; for (size_t j = 0; arg[j] != '\0'; j++) { - write(TERMINAL_INPUT, (xyw_byte)arg[j]); + writeb(TERMINAL_INPUT, (xyw_byte)arg[j]); } if (i < xyw_argc - 1) { - write(TERMINAL_INPUT, XYW_ARGUMENT_SEPARATOR); + writeb(TERMINAL_INPUT, XYW_ARGUMENT_SEPARATOR); } } - write(TERMINAL_INPUT, XYW_END_OF_ARGUMENTS); + writeb(TERMINAL_INPUT, XYW_END_OF_ARGUMENTS); xyw_arguments_processed = 1; argument_processing_active = 0; }

@@ -401,8 +401,8 @@ /* LDB */ OPC_SR1(0x04, , us_push(readb(ADDR(ARG))));

/* LDB */ OPC_SR1r(0x04, us_push(readb(ADDR(ARGX))); us_push(readb(ADDR(ARGY))); ); /* LDW */ OPC_SR1(0x05, , us_pushw(readw(ADDR(ARG)) )); /* LDW */ OPC_SR1r(0x05, us_pushw(readw(ADDR(ARGX))); us_pushw(readw(ADDR(ARGY))); ); - /* STB */ OPC_SR1(0x06, xyw_word addr = ADDR(ARG); xyw_byte val = us_pop(), write( addr, val )); - /* STB */ OPC_SR1r(0x06, xyw_byte val = us_pop(); write( ADDR(ARGX), val ); write( ADDR(ARGY), val ); ); + /* STB */ OPC_SR1(0x06, xyw_word addr = ADDR(ARG); xyw_byte val = us_pop(), writeb( addr, val )); + /* STB */ OPC_SR1r(0x06, xyw_byte val = us_pop(); writeb( ADDR(ARGX), val ); writeb( ADDR(ARGY), val ); ); /* STW */ OPC_SR1(0x07, xyw_word addr = ADDR(ARG); xyw_word val = us_popw(), writew( addr, val )); /* STW */ OPC_SR1r(0x07, xyw_word val = us_popw(); writew( ADDR(ARGX), val ); writew( ADDR(ARGY), val ); ); /* INC */ OPC_SR1(0x08, , SET(ARG + 1));

@@ -500,7 +500,7 @@ {

return 0; } xyw_memory[SYSTEM_STATE] |= SYSTEM_STATE_RUNNING; - write(TERMINAL_INPUT, (xyw_byte)c); + writeb(TERMINAL_INPUT, (xyw_byte)c); } } else if (on_timer_handler)