all repos — xyw @ c7dfaf0efb5ee4bfe2acdb8e509387c4384505d4

A minimal virtual machine and assembler for terminals.

Added dependency to fenster.
h3rald h3rald@h3rald.com
Mon, 15 Dec 2025 08:33:06 +0100
commit

c7dfaf0efb5ee4bfe2acdb8e509387c4384505d4

parent

349578d369de909f70745a729f7387ed74993707

2 files changed, 24 insertions(+), 4 deletions(-)

jump to
M MakefileMakefile

@@ -1,18 +1,36 @@

CC = gcc CFLAGS = -Wall -Wextra -g -LDFLAGS = SOURCES = xyw.c xywasm.c xywrun.c devices/console.c devices/clock.c OBJS = xyw.o xywasm.o xywrun.o devices/console.o devices/clock.o +# Detect platform for fenster build flags +UNAME_S := $(shell uname -s 2>/dev/null) +ifeq ($(OS),Windows_NT) + PLATFORM := windows +else ifeq ($(UNAME_S),Darwin) + PLATFORM := macos +else + PLATFORM := linux +endif + +# Platform-specific flags for fenster (window + audio) +ifeq ($(PLATFORM),windows) + FENSTER_LDFLAGS := -lgdi32 -lwinmm +else ifeq ($(PLATFORM),macos) + FENSTER_LDFLAGS := -framework Cocoa -framework AudioToolbox +else + FENSTER_LDFLAGS := -lX11 -lasound +endif + .PHONY: clean xyw: $(OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) -o xyw + $(CC) $(CFLAGS) $(OBJS) -o xyw $(LDFLAGS) $(FENSTER_LDFLAGS) xyw.o: xyw.c xyw.h $(CC) $(CFLAGS) -c xyw.c -o xyw.o -xywrun.o: xywrun.c xyw.h +xywrun.o: xywrun.c xyw.h fenster.h $(CC) $(CFLAGS) -c xywrun.c -o xywrun.o xywasm.o: xywasm.c xyw.h
M xywrun.cxywrun.c

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

#include <stdio.h> +#include <stdlib.h> +#include "fenster.h" #include "xyw.h" #include "devices/console.h"

@@ -289,7 +291,7 @@ xyw_devices[i].init(xyw_devices[i].data);

} } // Set direct page to device page by default - xyw_memory[SYSTEM_PAGE] = 0xff; + xyw_memory[SYSTEM_PAGE] = 0xff; while (xyw_memory[SYSTEM_STATE] && *pc < SYSTEM_MEMORY_START) { xyw_dbg("PC: %04X -> %02X (%s) [U:%02X|S:%02X|X:%02X|Y:%02X|XW:%04X|YW:%04X]\n", *pc, xyw_memory[*pc], xyw_instructions[xyw_memory[*pc] & 0x1F], *u, *s, *x, *y, *xw, *yw);