name mode size
..
audio.usm 100644 1.95kB
console.lib.usm 100644 1.62kB
console.usm 100644 221B
controller.buttons.usm 100644 1.91kB
controller.keys.usm 100644 3.65kB
datetime.usm 100644 5.01kB
file.load.usm 100644 5.22kB
file.save.usm 100644 900B
file.usm 100644 1.36kB
mouse.usm 100644 2.96kB
screen.usm 100644 2.22kB
README.md
# Uxn An [8-bit stack-based computer](https://wiki.xxiivv.com/site/uxn.html), written in ANSI C. ## Build ### Linux To build the Uxn emulator on Linux, you must have [SDL2](https://wiki.libsdl.org/). ```sh ./build.sh --debug # Add debug flags to compiler --cli # Run rom without graphics ``` ### Plan 9 To build the Uxn emulator on [9front](http://9front.org/), via [npe](https://git.sr.ht/~ft/npe): ```rc mk ``` If the build fails on 9front because of missing headers or functions, try again after `rm -r /sys/include/npe`. ## Getting Started Begin by building the assembler and emulator by running the build script. ``` ./build.sh ``` You now have the assembler(`uxnasm`) and the emulator(`uxnemu`). To create a rom, from a [usm file](https://wiki.xxiivv.com/site/uxambly.html), use the following command. This example will create the `life.rom` from the `life.usm` uxambly file, point to a different file or folder to assemble a different rom. You can find additional roms [here](https://sr.ht/~rabbits/uxn/sources). ``` bin/uxnasm projects/demos/life.usm bin/life.rom ``` To launch the rom: ``` bin/uxnemu bin/life.rom ``` ## Emulator Controls - `ctrl+h` toggle debugger - `alt+h` toggle zoom ## Uxambly Read more in the [Uxambly Guide](https://wiki.xxiivv.com/site/uxambly.html). ``` ( dev/console ) %RTN { JMP2r } ( devices ) |10 @Console [ &pad $8 &char $1 ] ( init ) |0100 ( -> ) ,hello-word &loop ( send ) LDRk .Console/char DEO ( incr ) #01 ADD ( loop ) DUP ,&loop JCN POP BRK @hello-word "hello 20 "World! ``` ## TODOs - Shortcut to export/import disk state ## Palettes - `#6a03` `#4a0d` `#aa0c`, purple/cyan - `#a1f3` `#a14d` `#a16c`, grey-pink/teal - `#8c4b` `#884b` `#e8bb`, commodore64 ## Convert audio for Unx ```sox sub202_C.wav -b 8 -c 1 -e signed output.raw``` ## Refs https://code.9front.org/hg/plan9front/file/a7f9946e238f/sys/src/games/nes/cpu.c http://www.w3group.de/stable_glossar.html http://www.emulator101.com/6502-addressing-modes.html http://forth.works/8f0c04f616b6c34496eb2141785b4454 https://justinmeiners.github.io/lc3-vm/