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. 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.

Beyond features support, the following general rules apply to naming conventions:

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

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