all repos — xyw @ 9ff136a3e8bb94158c90e07cfd38fcc506af7fa0

A minimal virtual machine and assembler for terminals.

Fixes.
h3rald h3rald@h3rald.com
Wed, 03 Dec 2025 21:39:10 +0000
commit

9ff136a3e8bb94158c90e07cfd38fcc506af7fa0

parent

602f8439b7defd3cd7bb67aab7b13b81734afd55

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

jump to
M .gitignore.gitignore

@@ -1,4 +1,6 @@

xyw.exe +xyw *.o example* *.xim +
A devices/console.h

@@ -0,0 +1,13 @@

+#include "../xyw.h" + +/* console device */ +#define XYW_CONSOLE_INPUT 0x0 +#define XYW_CONSOLE_OUTPUT 0x1 +#define XYW_CONSOLE_ERROR 0x2 +#define XYW_CONSOLE_ON_KEYPRESS 0x3 + +xyw_byte console_read(xyw_byte *data, xyw_byte addr, xyw_byte *error); +void console_write(xyw_byte *data, xyw_byte addr, xyw_byte val, xyw_byte *error); +xyw_word console_readw(xyw_byte *data, xyw_byte addr, xyw_byte *error); +void console_writew(xyw_byte *data, xyw_byte addr, xyw_word val, xyw_byte *error); +
A devices/system.h

@@ -0,0 +1,7 @@

+#include "../xyw.h" + +xyw_byte system_read(xyw_byte *data, xyw_byte addr, xyw_byte *error); +void system_write(xyw_byte *data, xyw_byte addr, xyw_byte val, xyw_byte *error); +xyw_word system_readw(xyw_byte *data, xyw_byte addr, xyw_byte *error); +void system_writew(xyw_byte *data, xyw_byte addr, xyw_word val, xyw_byte *error); +
M xywrun.cxywrun.c

@@ -333,7 +333,6 @@

// clang-format on int xyw_run(const char *input) { - // Load bytecode into memory FILE *fp = fopen(input, "rb"); if (!fp)