all repos — xyw @ 49018f631c7603c26ac225544fc6dc327da45ab3

A minimal virtual machine and assembler for terminals.

Keeping window width/height fixed for now.
h3rald h3rald@h3rald.com
Mon, 19 Jan 2026 13:55:31 +0100
commit

49018f631c7603c26ac225544fc6dc327da45ab3

parent

8b40e451fc046ce1eb659c98afa6f6b79fc55dba

3 files changed, 8 insertions(+), 18 deletions(-)

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

@@ -2,12 +2,10 @@ #include <stdio.h>

#include "../xyw.h" /* display device */ -#define DISPLAY_WIDTH 0x40 -#define DISPLAY_HEIGHT 0x41 -#define DISPLAY_FILL 0x42 -#define DISPLAY_X 0x43 -#define DISPLAY_Y 0x44 -#define DISPLAY_ON_RENDER 0x45 +#define DISPLAY_FILL 0x40 +#define DISPLAY_X 0x41 +#define DISPLAY_Y 0x42 +#define DISPLAY_ON_RENDER 0x43 void display_output(xyw_byte *data, xyw_byte addr, xyw_byte *error) {
M examples/window.xywexamples/window.xyw

@@ -8,7 +8,6 @@ .string "Test Program" ; title

.string "Just a test program" ; description .string "H3RALD" ; author .string "2025-12-18" ; date -.byte $ff $ff ; preferred width and height .string "---" ; metadata marker .label init
M xywrun.cxywrun.c

@@ -16,8 +16,8 @@ #define USER_STACK_START 0xfd00

#define SYSTEM_STACK_START 0xfe00 #define DEVICE_AREA_START 0xff00 -#define MAX_WIDTH 256 -#define MAX_HEIGHT 256 +#define WIDTH 256 +#define HEIGHT 256 /* system device */ #define SYSTEM_STATE 0xff00

@@ -271,7 +271,6 @@ };

// clang-format on char *title = "xyw", *description = 0, *author = 0, *date = 0; -int width = MAX_WIDTH, height = MAX_HEIGHT; static void process_metadata() {

@@ -327,12 +326,6 @@

if (p + 1 >= MEMORY_SIZE) return; p++; - width = (xyw_memory[p] > 0 && xyw_memory[p]) ? xyw_memory[p] + 1 : MAX_WIDTH; - p++; - height = (xyw_memory[p] > 0 && xyw_memory[p]) ? xyw_memory[p] + 1 : MAX_HEIGHT; - p++; - xyw_dbg("- width: %d\n", width); - xyw_dbg("- height: %d\n", height); } }

@@ -369,8 +362,8 @@ process_metadata();

// Set direct page to device page by default xyw_memory[SYSTEM_PAGE] = 0xff; // Initialize fenster - uint32_t buf[width * height * xyw_zoom * xyw_zoom]; - struct fenster f = {.title = title, .width = width * xyw_zoom, .height = height * xyw_zoom, .buf = buf}; + uint32_t buf[WIDTH * HEIGHT * xyw_zoom * xyw_zoom]; + struct fenster f = {.title = title, .width = WIDTH * xyw_zoom, .height = HEIGHT * xyw_zoom, .buf = buf}; fenster_open(&f); xyw_byte paused = 0; while (fenster_loop(&f) == 0 && xyw_memory[SYSTEM_STATE] && *pc < SYSTEM_MEMORY_START)