Additional specs for 32 bit usecode:

Function header:
this usually is:
<16 bit: function id><16 bit: function length><16 bit: data length>

for 32 bit usecode this is: (marked by the 'extended' flag in Usecode_function)
<16: 0xFFFF><16: function id><32: function length><32: data length>



Extra opcodes: (0x80 + old opcode. See original opcodes for details)

0x84: CONV32
0x84 <32 bit rel. code offset>

0x85: JNE32
0x85 <32 bit rel. code offset>

0x86: JMP32
0x86 <32 bit rel. code offset>

0x87: CMPS32
0x87: <16 bit string count><32 bit rel. code offset>

0x9C: ADDSI32
0x9C <32 bit data offset>

0x9D: PUSHS32
0x9D <32 bit data offset>

0x9F: PUSHI32
0x9F <32 bit immediate>

0xAE 0x82: LOOP
0xAE 0x82 <4 16-bit local var indices><32 bit rel. code offset>

0xB1: ....32
0xB1 <16 bit unknown><32 bit rel. code offset>

0xCD: INIT32
0xCD <32 bit data offset><32 bit data offset>



Changes to ucxt/wuc:

wuc will output an extended function header if there is a '.ext32' keyword
directly between the .funcnumber and .data lines.
ucxt will output this keyword automatically if asked to.
