XXIIVV

Drifblim is a Uxntal assembler, written in Uxntal.

The assembler is written in Uxntal itself, and is designed to help bootstrap the Uxn ecosystem. The goal is for Driflim's source code to be released as a print-friendly document, along with its assembled hexadecimal data and the napkin definition of the virtual machine.

Drifblim Standard

This styleguide specifies a restricted Uxntal target aimed at compatibility with most assemblers. To validate your own assembler, see the tests.

Beyond features support, Drifblim expects the standard notation:

Drawing by Rekka Bellum

Drifblim is strong enough to lift Pokemon or people but has no control over its flight. This causes it to drift with the wind and end up anywhere.

drifblim.tal

Since the assembler is written in the language it is assembling, you have a few choices:

  1. Download a pre-assembled drifblim.rom.
  2. Assemble your own with uxnasm.c
  3. Bootstrap from a hexdump
uxnasm drifblim.tal drifblim.rom view raw

Bootstrap Tools

If you are unable to assemble your own copy of drifblim, lost its source file, or simply want to make sure that the assembler is unaltered, you will need a copy of the hexdump:

cat drifblim.rom.txt | uxncli xh.rom > drifblim.rom view raw

This is the hexadecimal data of the drifblim assembler above, I am keeping a copy of it here just in case. Here are some easily inspectable tools to help with the bootstrapping process on non-unix systems.

xh.rom

If for some reason you do not have access to the unix xxd command, you can convert hexadecimal dump to a rom with the xh.rom. The xh rom reads a console stream of hexadecimal text and output the actual bytes through the console.

a001 0a80 1037 e001 0100 8012 1680 3019
0680 0a0b 2000 0c80 2719 0680 100b 2000
0202 0041 dc4f 2000 0480 401f 001d 8018
1700

cat drifblim.rom.txt | uxncli xh.rom > drifblim.rom

cat.rom

If for some reason you do not have access to the unix cat program, you can read files and output their content through the console with the cat.rom. The cat rom reads a file and outputs the content via the console.

a001 0780 1037 0080 1216 0680 1f0a 2000
1502 6000 1aa0 000f 13a0 0317 1608 2000
04a0 800f 1700 a000 0081 80fb 1331 00a0
0000 80a8 37a0 0001 80aa 37a0 014b 80ac
b780 a316 2000 0302 226c a000 1817 40ff
ef

uxncli cat.rom drifblim.rom.txt | uxncli xh.rom > drifblim.rom

incoming symbols uxn oscean uxntal devlog