After going through some of the other minigames, out of curiousity, it seems that many of the commands do switch that first byte, just like Random does. Here's a few more commands that I'm guessing at:
MPARA(bh, wid, vid, bl)
Takes what's stored in (bh)[bl] and assigns it to variable VID in the soon to be created window of id (wid). Used to print up variables in message boxes.
MPRA2(bh, wid, vid, bl(2))
Takes what's stored in the SWord(bh)[bl] and does the same as MPara.
PLUS2(bhs, bl, const(2))
Adds the number in const to SWord(bh)[bl]; bh's nibbles are switched, just like randoms.
DEC(bhs, bl)
Decreases the number stored in (bh)[bl], nibbles switched again. No idea what happens when it hits 0.
SET-WORD(bhs, bl, const(2))
Went over it before, but this is the more formal definition: stores const in SWord(bh)[bl], nibbles switched.
That's about the size of it for now. If I see anything else interesting, I'll add to it.
===============
Edit: More information on variables:
(10)[00] refers to 00DB1EC4 (v1.0?), and this byte is the plot address I talked about earlier.
(20)[00] refers to the same address. The only difference is that the (20) is associated with words rather than bytes.
(50)[00] refers to 00CB2B80 (v1.0?), and is the start of the temporary variables set aside for scripting (so they do have private addresses...) They's overwriten very often though.
(60)[00] refers to 00CB2B80, as usual, but relates to words over bytes.
I *think* (don't have concrete evidence yet but...) that the 1/2/5/6 byte doesn't count with regards to absolute addresses: it just relates to what section we need to look at and what's to be expected. (22)[58] should be offset 0x258 from 00DB1EC4, for example, and is exactly the same as (12)[58] with relates to what address we're looking at.
Keep in mind that, as stated, certain opcodes will reverse the first byte, so 62 01 will be referred to as 26 01. I've already noted a couple of opcodes that do this.
===============
2nd Edit: Update on variables.
Okay, forget what I said. It's more complicated. Much more complicated.
Right, we've got *5* numbers. 0, 1, 2, 5 and 6. They mean the following:
0: Constant
1: Permenant Plot Variable (Byte)
2: Permenant Plot Variable (Word)
5: Temporary Variable (Byte)
6: Temporary Variable (Word)
Now, here's where it gets... well... fun. Let's look at a couple of sample commands.
81 62 08 00 00: SET-WORD (62, 08, 00, 00). So, what does this mean?
It means: (6)[08] = (2)[00].
The first byte tells us 'destination type' and 'source type'.
The second byte tells us the 'destination offset'.
The third byte tells us the 'source offset' or 'constant'.
In this case, the destination is (6), so it's a temporary word variable, and the [08] means it's at Offset 0x08 in the temporary block.
The source is (2), so it's a permenant word variable, and the [00] tells us it's in Offset 0x00, which happens to point to the Plot Progression Variable.
So all in all, we've just moved the contents of a variable to another variable.
Even more fun:
88 62 08 AD 00: MINUS2 (62, 08, AD, 00)
Can you guess what this does? That's right:
(6)[08] -= (2)[AD]
On the other hand, we can also subtract constants in the same manner:
MINUS2 (60, 08, 46, 00) becomes:
(6)[08] -= 0x46 (or 70 in base 10)
It's that simple. (And that annoying.) This is also likely the source of those switched byte things... just a change between source and destination.
Enjoy.
NOTE: There are more IDs than just 0, 1, 2, 5 and 6. I know 3 and 4 exist... just haven't identified them yet.