all repos — xyw @ 404c4f0a6b208b4f45d44ac4b1b96edcef2287ed

A minimal virtual machine and assembler for terminals.

Now excluding --debug, -d from arguments + removing unneeded code.
h3rald h3rald@h3rald.com
Fri, 24 Jul 2026 13:19:05 +0200
commit

404c4f0a6b208b4f45d44ac4b1b96edcef2287ed

parent

9476f27bb46d05ef27c600f03dff7cb05e4049cb

2 files changed, 12 insertions(+), 10 deletions(-)

jump to
M devices/terminal.cdevices/terminal.c

@@ -64,14 +64,9 @@

void terminal_output(xyw_byte *data, xyw_byte addr, xyw_byte *error) { (void)error; - switch (addr) - { - case TERMINAL_INPUT: - break; - case TERMINAL_OUTPUT: + if (addr == TERMINAL_OUTPUT) { fputc(data[addr], stdout); fflush(stdout); - break; } }
M xyw.cxyw.c

@@ -31,15 +31,22 @@ }

int main(int argc, char *argv[]) { - xyw_argc = argc; - - for (int i = 0; i < argc && i < 32; i++) + // First pass: detect flags + for (int i = 1; i < argc; i++) { - xyw_argv[i] = argv[i]; if (flag(argv[i], "debug")) { xyw_debug = 1; } + } + + // Second pass: copy non-flag args into xyw_argv + xyw_argc = 0; + for (int i = 0; i < argc && xyw_argc < 32; i++) + { + if (i > 0 && flag(argv[i], "debug")) + continue; + xyw_argv[xyw_argc++] = argv[i]; } for (int i = 1; i < argc; i++)