BranchJ [D>=16]
The BranchJ
instruction allows an "n-way" branch on the contents of the J register. A BranchJ
instruction must always be followed by a list of one or more program labels used as arguments in Target
instructions. A fatal error will occur if this instruction is executed outside of a task in the MultiTrack task queue.
Example:
BranchJ
Target Again ;target if J=0
Target More ;target if J=1
Target Orless ;target if J=2
In the example, the program will transfer to label Again if J=0, to More if J=1 and to Orless if J=2.
For any other value of J the results are unpredictable in SPLat hardware.
The BranchJ
instruction may have up to 127 Target
s following it. The SPLat/PC development environment will report an error if a BranchJ
is executed with a J value too large for the number of Target
labels provided. (The condition can only be detected by running or stepping the program within SPLat/PC, and not during translation).
Dialect exclusions: Not available in dialects before 16.