d9cdf192a8
Uses realpath(3) libc function to find the canonical and longest part of the pathname which exists, then checking if it starts with cwd. Prints a warning to stderr if an attempt is made to access a file outside the sandbox. |
||
---|---|---|
etc | ||
src | ||
.clang-format | ||
.gitignore | ||
LICENSE | ||
README.md | ||
build.sh |
README.md
Uxn11
An emulator for the Uxn stack-machine, written in ANSI C.
Uxn11/System
This emulator's system device supports changing a stack's location to a page of memory. The default memory mapping is as follows:
0000-ffff
, as RAM.10000-100ff
, as working stack.10100-101ff
, as return stack.
To use the last page of ram(0xff00
) to host the working stack:
#ff .System/wst DEO
The stack mapping is 254 bytes of data, a byte for the pointer and a byte for an error code.
Building
Graphical
All you need is X11.
gcc -Os -DNDEBUG -g0 -s src/uxn.c src/devices/system.c src/devices/screen.c src/devices/controller.c src/devices/mouse.c src/devices/file.c src/devices/datetime.c src/uxn11.c -o bin/uxn11 -lX11
Terminal
If you wish to build the emulator without graphics mode:
gcc -Os -DNDEBUG -g0 -s src/uxn.c src/devices/system.c src/devices/file.c src/devices/datetime.c src/uxncli.c -o bin/uxncli
Usage
The first parameter is the rom file, the subsequent arguments will be accessible to the rom, via the Console vector.
bin/uxnemu bin/polycat.rom arg1 arg2
Devices
00
system10
console20
screen30
audio(missing)70
midi(missing)80
controller90
mousea0
filec0
datetime
Emulator Controls
F2
print non-empty stacksF4
load boot.rom, or reload rom
Buttons
LCTRL
ALALT
BLSHIFT
SELHOME
START
Need a hand?
The following resources are a good place to start:
Contributing
Submit patches using git send-email
to the ~rabbits/public-inbox mailing list.