I am trying to use the SPMs to construct the following:
If A or ((B or C) and D) Do stuff
But I can't seem to get the right combination of ORs, ANDs, and ORIFs to
make this work.
The closest thing to working and what seems to me like it should work is:
IF (A),OR, (B),ORIF, (C),AND, (D)
A positive result for checking 'A' causes the code inside the 'IF' to run
(which I want), but after the check for 'B', it jumps down into the code
without checking 'D' like I want.
The order of the tests is important, too. 'A' is a TM, 'B' is an ICM and if
it's negative, 'C' is an LCR for the register. If the resulting LCR is positive
(or 'B' was positive to start with), then I do 'D', an ICM for a non-zero value.
The resulting code should look like:
TM A,BIT JO DOSTUFF ICM R1,15,CtlBlk JP DOTEST LCR
R1,R1 JZ DONTDOSTUFFDOTEST DS 0H ICM R1,15,FIELD(R1) JZ
DONTDOSTUFFDOSTUFF DS 0H...DONTDOSTUFF DS 0H
I've tried everything I can think of without splitting the 'IF' statement
up, but thought I would ask here before doing that.