~d6
df51651789
Previously, writing to the stat port would produce a line of text similar to the listing used when reading a directory. This did not match the documentation around the stat port. After the change, writing an address to the stat port will fill that address with bytes equal to the length parameter. These will either be a hexadecimal file size, or else the same character repeated N times according to the following logic: - path is a directory ? file size of path does not fit in N hexadecimal characters ! path is not readable Note that unlike when reading a directory, the string will not include the requested path, a newline, or a null terminator. |
||
---|---|---|
etc | ||
projects | ||
src | ||
.build.yml | ||
.clang-format | ||
.gitignore | ||
.wallpaper | ||
LICENSE | ||
README.md | ||
boot.rom | ||
build.sh | ||
mkfile |
README.md
Uxn
An assembler and emulator for the Uxn stack-machine, written in ANSI C.
Download binaries
Binaries are available for 64-bit x86 computers running Linux, Windows and macOS.
Build
Linux/OS X
To build the Uxn emulator, you must install SDL2 for your distro. If you are using a package manager:
sudo pacman -Sy sdl2 # Arch
sudo apt install libsdl2-dev # Ubuntu
sudo xbps-install SDL2-devel # Void Linux
brew install sdl2 # OS X
Build the assembler and emulator by running the build.sh
script. The assembler(uxnasm
) and emulator(uxnemu
) are created in the ./bin
folder.
./build.sh
--debug # Add debug flags to compiler
--format # Format source code
--install # Copy to ~/bin
If you wish to build the emulator without graphics mode:
cc src/devices/datetime.c src/devices/system.c src/devices/console.c src/devices/file.c src/uxn.c -DNDEBUG -Os -g0 -s src/uxncli.c -o bin/uxncli
Plan 9
To build and install the Uxn emulator on 9front, via npe:
mk install
If the build fails on 9front because of missing headers or functions, try again after rm -r /sys/include/npe
.
Windows
Uxn can be built on Windows with MSYS2. Install by downloading from their website or with Chocolatey with choco install msys2
. In the MSYS shell, type:
pacman -S git mingw-w64-x86_64-gcc mingw64/mingw-w64-x86_64-SDL2
export PATH="${PATH}:/mingw64/bin"
git clone https://git.sr.ht/~rabbits/uxn
cd uxn
./build.sh
If you'd like to work with the Console device in uxnemu.exe
, run ./build.sh --console
instead: this will bring up an extra window for console I/O unless you run uxnemu.exe
in Command Prompt or PowerShell.
Getting Started
Emulator
To launch a .rom
in the emulator, point the emulator to the target rom file:
bin/uxnemu bin/piano.rom
You can also use the emulator without graphics by using uxncli
. You can find additional roms here, you can find prebuilt rom files here.
Assembler
The following command will create an Uxn-compatible rom from an uxntal file. Point the assembler to a .tal
file, followed by and the rom name:
bin/uxnasm projects/examples/demos/life.tal bin/life.rom
I/O
You can send events from Uxn to another application, or another instance of uxn, with the Unix pipe. For a companion application that translates notes data into midi, see the shim.
uxnemu orca.rom | shim
GUI Emulator Options
-2x
Force medium scale-3x
Force large scale-f
Force fullscreen mode--
Force next argument to be read as ROM name. (This is useful if your ROM file is named-v
,-2x
, and so forth.)
GUI Emulator Controls
F1
toggle zoomF2
toggle debuggerF3
quitF4
rebootF5
reboot(soft)F11
toggle fullscreenF12
toggle decorations
GUI 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.