Drifblim is a Uxntal assembler, written in Uxntal.
The assembler is written in Uxntal itself, and is designed to help bootstrap the Uxn ecosystem. Drifblim exports a symbols file that can be used with debuggers. 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.
Since the assembler is written in the language it is assembling, you have two choices, download a pre-assembled drifblim.rom(1900 bytes), or assemble it with uxnasm.c.
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 per sublabel(scope+token).
- Maximum nesting depth of 255 for lambdas.
- No nested comments
- Only one include per file, must be last token of file.
- No macros.
Beyond features support, the following general rules apply to naming conventions:
- 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.
- Device labels are capitalized.

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
drifblim.rom
This is the hexadecimal data of the drifblim assembler, I am keeping a copy of it here just in case.
a001 4d80 0637 a001 0c40 002a 8012 1680 0060 052a 2000 0100 a001 1e40 0018 8012 1680 3160 0518 2000 0100 6000 5ca0 8062 101d 800f 1700 8017 1680 031c 2000 0aa0 0748 6005 aca0 010f 1780 1037 0000 4472 6966 626c 696d 0a55 786e 7461 6c20 4173 7365 6d62 6c65 720a 4279 2044 6576 696e 6520 4c75 204c 696e 7665 6761 0a35 204f 6374 2032 3032 3300 0080 0160 0019 2000 0b80 0060 0011 2000 0340 006f a000 3280 a837 a001 a617 6c80 6311 a001 0060 0254 8000 a005 2215 a007 7860 0290 a000 0160 0004 8062 106c 80a8 37a0 0001 80aa 37a0 0000 a001 dd60 045b 2000 0921 8000 6000 1740 ffee 1d20 000f a008 a1a0 0069 6004 e0a0 07b1 6002 116c 8068 6004 4120 0001 6ca0 0069 2660 00cd 4004 d5a0 0032 80a8 3780 6630 a000 ff39 80aa 37a0 8100 80ae 37a0 0032 2660 044f a007 a127 6004 a224 80a8 37a0 09d1 a000 0280 aa37 2680 ae37 a000 0338 2660 0434 21af 80aa 3726 80ae 376f 3826 a000 0338 1420 ffda 2280 0005 0515 a004 8c34 a009 d1a1 2114 2000 2da0 0003 3894 8041 1980 1a0b 2000 1f94 8028 0820 0018 26a0 0778 6003 f820 000e a007 6c60 045d 2660 0459 a00a 1917 6003 d821 aa20 ffc5 2222 a007 7e60 0445 a000 3260 043f a007 8960 0439 8066 30a0 00ff 3960 0435 a007 8e60 0429 a004 a234 6004 28a0 0796 4004 1c94 8028 0820 002a 9480 0813 a008 a1a0 086b 9480 0008 2000 37a0 0003 38aa 20ff f122 2260 02ac 2000 c160 02bc 2000 2540 007b a003 1060 0327 2003 d1a0 0028 8920 0006 a007 f760 00ec 0109 20ff e540 03bc 2321 342c 6002 a240 00c7 2160 022e 4000 cf21 6002 2780 6430 3840 00c4 2140 0108 2160 00e4 4001 2080 8060 00a5 2160 018f 6002 2b40 009b 8080 6000 9621 6001 8034 0340 008d 80a0 6000 8821 6001 7234 4000 7c21 8020 4000 6921 8040 4000 6380 6040 005e 2106 6002 e480 0408 8050 1f80 801d 6000 5e40 0024 2140 001a 2240 0191 a1a0 08a1 af60 0327 6003 336f 40fe 1522 6c94 6000 3e21 9420 fff7 226c 0660 02ad 0680 0208 2000 0d80 0408 2000 0f22 a007 c040 0032 0260 0186 0340 0017 6001 7f40 000d 6000 0e60 00f9 3480 6430 2121 3904 6000 0006 8064 30a1 2fa0 8000 3815 6000 0d6f 8064 316c 6003 19a0 0162 116c 2000 016c 8063 1020 0001 6c80 6430 0720 0006 a007 fe60 ffe0 8066 316c 0660 023f 80c9 6002 3a18 8030 0b20 0006 a007 e740 ffc6 a000 0060 0289 a000 c96c 26a0 0099 6002 7e26 a000 c98f 6002 76a0 2f00 4f60 0208 8f31 8000 4f01 80d8 3380 6310 2000 0222 6c60 0130 2000 3060 0140 2000 2a26 6000 3421 1d20 0028 8064 30a0 09d1 af35 6161 6126 ef60 0239 6001 e16f 3821 80eb 33a0 0000 2180 fa33 6c22 a007 da40 ff58 22a0 07b6 40ff 5180 0d33 a004 8c34 a009 d1a0 0003 3826 a000 0060 01b7 2000 0e60 01a5 21aa 20ff ea22 22a0 ffff 6ca0 0003 3923 6c94 807b 0920 0004 2260 0033 8063 1020 0024 9480 2609 2000 0421 60ff 2d60 ffb5 a1a0 0000 2820 0008 a121 9401 0505 156c a007 c760 fef0 22a0 051d 6cff ff3f 0080 0081 80fb 1306 a008 d1a1 80fa 3315 4000 1280 f332 a000 0139 9460 0007 60ff 2a80 e533 6c06 8004 1f60 0176 0460 0172 800a 33a0 0557 6c6c 616d 6264 6130 3000 6000 4320 0006 a007 c040 fe9c e000 00c0 407f 9460 0134 c000 0f78 2194 20ff f022 6f6c 8063 1020 001a 3480 6430 39a0 0002 3926 a000 8038 0220 0002 036c a007 d160 fe66 2280 ff6c 2694 6000 ff01 2000 0422 8000 6c21 9420 ffef 2280 016c 2660 000d 2000 0726 a008 6840 00d1 8001 6c2f a020 0080 0007 8003 1aa0 0808 38ef 6000 bc20 000a 018a 20ff ea22 6280 006c 0306 8000 0880 701f 1d6f a000 0338 c000 9480 2007 8032 0820 0021 0618 0780 7208 2000 1806 1807 806b 0820 000f 0618 0780 0008 2000 06a0 07f0 60fd e103 0f5d 2194 20ff cd22 4f18 6c80 ac37 80a2 36a0 0000 286c 0780 210b 2000 1d90 802f 0820 0010 0f80 00cf 9018 0131 4f90 0104 1180 006c a007 e160 fda6 0390 8000 0511 6c01 9020 fffb 6c06 60ff f704 196c 2194 20ff fb6c 2660 fff7 2439 6c2f 94d4 4f89 2000 0c06 1e88 2000 0622 2161 40ff ed23 6208 6c2f d494 4f09 2000 0261 2174 346f 286c 8030 1906 800a 0b20 000d 8027 1906 8010 0b20 0003 0280 ff6c 800f 1c06 8009 0a80 271a 1880 3018 6c2f 9480 00ef 3561 2194 20ff f522 626c 8000 0505 9521 9420 fffa 156c 9480 1917 2194 20ff f722 6ca0 2710 e000 fbbb a000 0abb 3a39 4488 07cf 081c 2000 0806 8030 1880 1917 4122 a000 0a3b 4441 cf20 ffdd 6222 226c a007 a660 ffc2 60ff bfa0 2019 17a0 0069 60ff b5a0 0789 60ff b4a0 0099 60ff aea0 0a19 176c 7573 6167 653a 2064 7269 6662 6c69 6d2e 726f 6d20 696e 2e74 616c 206f 7574 2e72 6f6d 0a00 2d2d 2055 6e75 7365 643a 2000 5245 5345 5400 4173 7365 6d62 6c65 6420 0020 696e 2000 2062 7974 6573 2800 206c 6162 656c 7329 2e0a 002e 7379 6d00 2121 2045 7272 6f72 3a20 0046 696c 6500 4475 706c 6963 6174 6500 4e75 6d62 6572 0052 6566 6572 656e 6365 0044 6973 7461 6e63 6500 5379 6d62 6f6c 0054 6f6b 656e 0053 7562 6c61 6265 6c00 4f70 636f 6465 004e 6573 7465 6400 5a65 726f 2d70 6167 6500 4c49 5449 4e43 504f 504e 4950 5357 5052 4f54 4455 504f 5652 4551 554e 4551 4754 484c 5448 4a4d 504a 434e 4a53 5253 5448 4c44 5a53 545a 4c44 5253 5452 4c44 4153 5441 4445 4944 454f 4144 4453 5542 4d55 4c44 4956 414e 444f 5241 454f 5253 4654 4252 4b7c 032e 2403 3540 0340 2603 442c 034b 5f03 502e 035a 2d03 5f3b 0368 3d03 6d3f 0375 2103 7b5b 03b1 5d03 b17d 039e 2303 8622 039a 7e03 a2
incoming symbols uxn uxn devlog uxntal devlog oscean