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 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.
- Limit of 48 bytes per token.
- Limit of 48 bytes for scopes and sublabels.
- Maximum nesting depth of 255 for lambdas.
- Only one include per file, must be last token of file.
Beyond features support, Drifblim expects the standard notation:
- Routines are indicated in the
( a b -- c )
style. - Vectors are indicated with the
( -> )
spacer. - Routine definitions using shorts use asterix, like
( a* -- b* )
. - Source is indented with tabulators.
- Struct labels are capitalized.
drifblim.tal
Since the assembler is written in the language it is assembling, you have a few choices:
- Download a pre-assembled drifblim.rom.
- Assemble your own with uxnasm.c
- 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