Virtual Machine Instruction Summary

This is a list of the instructions without the operand detail, but with an explanation of the function.
Type of command
Description of command group
00 -> Flow Control  Instructions such as NOP, Goto, Break, and SetTmpPtl

– NOP does nothing.
– Goto performs a jump within the pre or post commands.
– Break will exit the pre or post command section.
– SetTmpPtl sets a new Parental Management level, the user may need to enter a password, if successful the jump is taken.

These commands can be conditional, the compare operation is performed first and determines if the command should be executed.
20 -> Link and RSM Link instructions, used for going from one video segment to another within the same domain.

The Link subset (20 01, 20 09) use pointers stored within the PGC.
RSM resumes playback from the point of interruption by a MenuCall (user interaction) or CallSS command.
Most Link commands can also specify the button that will be used as the default selected button when entering the next menu.

These commands can be conditional, the compare operation is performed first and determines if the command should be executed.
30 -> Jump, Call
and Exit
Jump and Call instructions, used for going to another domain (with certain restrictions).
CallSS commands may optionally specify a cell different from the current to be entered on RSM.
This domain also contain the Exit command, which stops playback.

These commands can be conditional, the compare operation is performed first and determines if the command should be executed.
40 - 5F -> SetSystem and SetGPRMMD
"SetSystem" group, used to set values of SPRMs (System Parameters) - for example, SetSTN (to set audio, subtitle and angle streams) and SetHLBut to set the number of the highlighted button.

Also in this group is the SetGPRMMD command, used to set a GPRM (General Parameter) to the value of another register (either GPRM or SPRM) or a 16-bit immediate value. What makes this command special compared to the Set (see below) is the ability to put the register into counter mode, incrementing once per second.

These commands may be conditional, or followed by a Link, but not both. If a compare operation is specified it is performed first and determines if the command should be executed. If a Link is specified it is performed after the set operation.
60 - 7F -> Set
Used to set a GPRM (General Parameter) to the result of the specified arithmetic or logical operation using the value of another register (either GPRM or SPRM) or a 16-bit immediate value and the destination register.
 
These commands may be conditional, or followed by a Link, but not both. If a compare operation is specified it is performed first and determines if the command should be executed. If a Link is specified it is performed after the set operation.
80 - DF -> Conditional Set and Link Various combinations of conditional Set and Link instructions
Unlike the SetSystem and Set commands (see above), all three operations may be combined.
Note that in all these instructions the individual operations are optional, if the compare is not performed that portion of the command which would be conditional is executed.
80 - 9F -> SetCLink Unconditional Set followed by Conditional Link (SetCLink)
The Set is performed, followed by the compare, which determines if the Link executes.  The compare operation uses the destination register of the Set operation as one of its operands.
A0 - BF -> CSetCLink 
Conditional Set followed by Conditional Link (CSetCLink)
One compare operation is performed, the results determine if both the Set and Link execute.
C0 - DF -> CsetLink
Conditional Set followed by unconditional Link (CSetLink)
The compare operation determines if the Set is performed, the Link is always executed.
Adapted from information supplied by MPUCoder