Python tools for the Uxn ecosystem.
yooxnas is a fast, multi-pass assembler for the uxntal language, written in pure Python.
- Multi-pass architecture: Ensures reliable label resolution and address calculation.
- Macro support: Full support for
uxntalmacros, including nested definitions. - Sub-label scoping: Standard
@parentand&childscoping rules. - Include system: Assemble complex projects with multiple source files using
~include. - Pure Python: No external dependencies for the assembler itself.
You can install yooxn via pip:
pip install yooxnOr using uv:
uv add yooxnAfter installation, the yooxnas command will be available:
yooxnas file.talBy default, it produces output.rom. You can specify the output path with -o:
yooxnas -o project.rom main.talYou can also run it as a Python module:
python -m yooxn main.talOr directly with uv run:
uv run yooxnas file.talusage: yooxnas [-h] [-o OUTPUT] [--debug] file
positional arguments:
file tal file to assemble
options:
-h, --help show this help message and exit
-o, --output OUTPUT Output file to write
--debug Set loglevel to DEBUG
yooxn uses uv for dependency management and hatchling as the build backend.
To install in editable mode:
pip install -e .To run tests:
pytestUsing uv:
uv run pytest