 SSSS      CCC            r[A]
=======   =====      ===============
0001  =   000        0000_XXXX  g[X]
0010 <->  001 BC &   100X_XXXX  s[x]
0011 +=   010 EQ ==
0100 -=   011 NE !=
0101 *=   100 GE >=
0110 /=   101 GT >
0111 %=   110 LE <=
1000 rnd  111 LT <
1001 &= 
1010 |= 
1011 ^= 

000 -- Special commands
=======================
0000_0000 0CCC_**** ****_**** AAAA_AAAA ****_**** BBBB_BBBB ****_**** ****_**** -- if (r[A] `C` r[B]) then ...
0000_0000 1CCC_**** ****_**** AAAA_AAAA DDDD_DDDD DDDD_DDDD ****_**** ****_**** -- if (r[A] `C` D) then ...

0000_0000 ****_0000 ****_**** ****_**** ****_**** ****_**** ****_**** ****_**** -- NOP
0000_0000 ****_0001 ****_**** ****_**** ****_**** ****_**** ****_**** LLLL_LLLL -- Goto L
0000_0000 ****_0010 ****_**** ****_**** ****_**** ****_**** ****_**** ****_**** -- Break
0000_0000 ****_0011 ****_**** ****_**** ****_**** ****_**** ****_PPPP LLLL_LLLL -- SetTmpPML P,L

001(0) -- Link commands
=========================
0010_**** 0CCC_**** ****_**** AAAA_AAAA ****_**** BBBB_BBBB ****_**** ****_**** -- if (r[A] `C` r[B]) then ...
0010_**** 1CCC_**** ****_**** AAAA_AAAA DDDD_DDDD DDDD_DDDD ****_**** ****_**** -- if (r[A] `C` D) then ...

0010_0000 ****_0001 -- Link by Sub-Instruction
0010_0000 ****_0001 ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_0000 -- LinkNoLink
0010_0000 ****_0001 ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_0001 -- LinkTopC
0010_0000 ****_0001 ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_0010 -- LinkNextC
0010_0000 ****_0001 ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_0011 -- LinkPrevC
0010_0000 ****_0001 ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_0101 -- LinkTopPG
0010_0000 ****_0001 ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_0110 -- LinkNextPG
0010_0000 ****_0001 ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_0111 -- LinkPrevPG
0010_0000 ****_0001 ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_1001 -- LinkTopPGC
0010_0000 ****_0001 ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_1010 -- LinkNextPGC
0010_0000 ****_0001 ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_1011 -- LinkPrevPGC
0010_0000 ****_0001 ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_1100 -- LinkGoUpPGC
0010_0000 ****_0001 ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_1101 -- LinkTailPGC
0010_0000 ****_0001 ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***1_0000 -- RSM

0010_0000 ****_0100 ****_**** ****_**** ****_**** ****_**** *NNN_NNNN NNNN_NNNN -- LinkPGCN ??
0010_0000 ****_0101 ****_**** ****_**** ****_**** ****_**** BBBB_BBNN NNNN_NNNN -- LinkPTTN ??
0010_0000 ****_0110 ****_**** ****_**** ****_**** ****_**** BBBB_BB** *NNN_NNNN -- LinkPGN ??
0010_0000 ****_0111 ****_**** ****_**** ****_**** ****_**** BBBB_BB** NNNN_NNNN -- LinkCN ??


001(1) -- Jump commands
=========================
0011_**** 0CCC_**** ****_**** ****_**** ****_**** ****_**** AAAA_AAAA BBBB_BBBB -- if (r[A] `C` r[B]) then ...
0011_**** 1CCC_**** ****_**** ****_**** ****_**** ****_**** ****_**** ****_**** -- <not allowed>

0011_0000 ****_0001 ****_**** ****_**** ****_**** ****_**** ****_**** ****_**** -- Exit
0011_0000 ****_0010 ****_**** ****_**** ****_**** *TTT_TTTT ****_**** ****_**** -- JumpTT          (jump to title in vts title domain [from FP,VMGM])
0011_0000 ****_0011 ****_**** ****_**** ****_**** *TTT_TTTT ****_**** ****_**** -- JumpVTS_TT      (jump to title in same vts title domain [from VTSM,VTS])
0011_0000 ****_0101 ****_**PP PPPP_PPPP ****_**** *TTT_TTTT ****_**** ****_**** -- JumpVTS_PTT     (jump to ptt in the same vts)
0011_0000 ****_0110 ****_**** ****_**** ****_**** 00**_**** ****_**** ****_**** -- JumpSS FP_DOM   (jump to FP)                      (from FP,VMGM,VTSM)
0011_0000 ****_0110 ****_**** ****_**** ****_**** 01**_MMMM ****_**** ****_**** -- JumpSS VMGM_DOM (jump to menu in VMG)             (from FP,VTSM)
0011_0000 ****_0110 ****_**** TTTT_TTTT VVVV_VVVV 10**_MMMM ****_**** ****_**** -- JumpSS VTSM_DOM (jump to menu,title,vts in VTSM)  (from FP,VMGM)
0011_0000 ****_0110 *PPP_PPPP PPPP_PPPP ****_**** 11**_**** ****_**** ****_**** -- JumpSS VMGM_DOM (jump to pgc in VMG)              (from FP,VTSM)
0011_0000 ****_1000 ****_**** ****_**** RRRR_RRRR 00**_**** ****_**** ****_**** -- CallSS FP_DOM   (jump to FP)                      (from VTS)
0011_0000 ****_1000 ****_**** ****_**** RRRR_RRRR 01**_MMMM ****_**** ****_**** -- CallSS VMGM_DOM (jump to menu in VMG)             (from VTS) 
0011_0000 ****_1000 ****_**** ****_**** RRRR_RRRR 10**_MMMM ****_**** ****_**** -- CallSS VTSM_DOM (jump to menu in VTSM [this vts]) (from VTS)
0011_0000 ****_1000 *PPP_PPPP PPPP_PPPP RRRR_RRRR 11**_**** ****_**** ****_**** -- CallSS VMGM_DOM (jump to pgc in VMG)              (from VTS)


010 -- Set System Parameters (Can be combined with Link commands)
============================
010*_**** 0CCC_**** ****_**** ****_**** ****_**** ****_**** AAAA_AAAA BBBB_BBBB -- if (r[A] `C` r[B]) then ...
010*_**** 1CCC_**** ****_**** ****_**** ****_**** ****_**** ****_**** ****_**** -- <not allowed>

0100_0001 ****_**** ****_**** A***_XXXX B***_YYYY C***_ZZZZ ****_**** ****_**** -- SetSTN A -> s[1]=g[X] B -> s[2]=g[Y] C-> s[3]=g[Z]
0101_0001 ****_**** ****_**** AXXX_XXXX BYYY_YYYY CZZZ_ZZZZ ****_**** ****_**** -- SetSTN A -> s[1]=X    B -> s[2]=Y    C-> s[3]=Z

0100_0010 ****_**** ****_**** BBBB_BBBB ****_**** *NNN_NNNN ****_**** ****_**** -- SetNVTMR s[9]=r[B] s[10]=N ??(size of N)
0101_0010 ****_**** DDDD_DDDD DDDD_DDDD ****_**** *NNN_NNNN ****_**** ****_**** -- SetNVTMR s[9]=D    s[10]=N ??(size of N)

0100_0011 ****_**** ****_**** BBBB_BBBB ****_**** 0***_AAAA ****_**** ****_**** -- SetGPRMMD register g[A] = r[B]
0101_0011 ****_**** DDDD_DDDD DDDD_DDDD ****_**** 0***_AAAA ****_**** ****_**** -- SetGPRMMD register g[A] = D
0100_0011 ****_**** ****_**** BBBB_BBBB ****_**** 1***_AAAA ****_**** ****_**** -- SetGPRMMD counter  g[A] = r[B]
0101_0011 ****_**** DDDD_DDDD DDDD_DDDD ****_**** 1***_AAAA ****_**** ****_**** -- SetGPRMMD counter  g[A] = D

0100_0110 ****_**** ****_**** ****_**** ****_**** ****_BBBB ****_**** ****_**** -- SetHL_BTNN s[8]=g[B]
0101_0110 ****_**** ****_**** ****_**** DDDD_DDDD DDDD_DDDD ****_**** ****_**** -- SetHL_BTNN s[8]=D (button number are stored in the highest six bits)
There should also be a SetAMXMD in this group.

011 -- Set General Parameters (Can be combined with Link commands)
=============================
011*_**** 0CCC_**** AAAA_AAAA ****_**** ****_**** ****_**** ****_**** BBBB_BBBB -- if (r[A] `C` r[B]) ...
011*_**** 1CCC_**** AAAA_AAAA ****_**** ****_**** ****_**** DDDD_DDDD DDDD_DDDD -- if (r[A] `C` D)    ...

0110_SSSS ****_**** ****_**** AAAA_AAAA ****_**** BBBB_BBBB ****_**** ****_**** -- g[A] `S` r[B]
0111_SSSS ****_**** ****_**** AAAA_AAAA DDDD_DDDD DDDD_DDDD ****_**** ****_**** -- g[A] `S` D



100 -- Set, Compare -> Link Sub-Instruction
=============================
100*_**** 0CCC_AAAA ****_**** ****_**** ****_**** BBBB_BBBB ****_**** ****_**** -- ... if (g[A] `C` r[B]) ...
100*_**** 1CCC_AAAA ****_**** ****_**** DDDD_DDDD DDDD_DDDD ****_**** ****_**** -- ... if (g[A] `C` D) ...
1000_SSSS ****_AAAA ****_**** CCCC_CCCC ****_**** ****_**** ****_**** ****_**** -- ... g[A] `S` r[C] ...
1001_SSSS ****_AAAA EEEE_EEEE EEEE_EEEE ****_**** ****_**** ****_**** ****_**** -- ... g[A] `S` E ...

101 -- Compare -> (Set and Link Sub-Instruction)
110 -- Compare -> Set, always Link Sub-Instruction
=============================
1QQ0_**** 0CCC_**** ****_**** LLLL_LLLL ****_**** BBBB_BBBB ****_**** ****_**** -- ... if (g[L] `C` r[B]) ...
1QQ0_**** 1CCC_**** ****_**** LLLL_LLLL DDDD_DDDD DDDD_DDDD ****_**** ****_**** -- ... if (g[L] `C` D) ...

1QQ1_**** 0CCC_**** ****_**** ****_**** LLLL_LLLL BBBB_BBBB ****_**** ****_**** -- ... if (g[L] `C` r[B]) ...
1QQ1_**** 1CCC_**** ****_**** ****_**** ****_**** ****_**** ****_**** ****_**** -- ... -- not allowed --

1QQ0_SSSS ****_AAAA CCCC_CCCC ****_**** ****_**** ****_**** ****_**** ****_**** -- ... g[A] `S` r[C] ...
1QQ1_SSSS ****_AAAA DDDD_DDDD DDDD_DDDD ****_**** ****_**** ****_**** ****_**** -- ... g[A] `S` D ...

1QQ*_**** ****_**** ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_0000 -- ... LinkNoLink
1QQ*_**** ****_**** ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_0001 -- ... LinkTopC
1QQ*_**** ****_**** ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_0010 -- ... LinkNextC
1QQ*_**** ****_**** ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_0011 -- ... LinkPrevC
1QQ*_**** ****_**** ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_0101 -- ... LinkTopPG
1QQ*_**** ****_**** ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_0110 -- ... LinkNextPG
1QQ*_**** ****_**** ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_0111 -- ... LinkPrevPG
1QQ*_**** ****_**** ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_1001 -- ... LinkTopPGC
1QQ*_**** ****_**** ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_1010 -- ... LinkNextPGC
1QQ*_**** ****_**** ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_1011 -- ... LinkPrevPGC
1QQ*_**** ****_**** ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_1100 -- ... LinkGoUpPGC
1QQ*_**** ****_**** ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***0_1101 -- ... LinkTailPGC
1QQ*_**** ****_**** ****_**** ****_**** ****_**** ****_**** BBBB_BB** ***1_0000 -- ... RSM

111*_***  -- not allowed ? --
