[spacing did not come out right; here's a retry]

On 12/16/2014 1:14 PM, Steve Comstock wrote:
On 12/16/2014 12:45 PM, Cali zMan wrote:



    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    DONTDOSTUFF
DOTEST  DS    0H
    ICM   R1,15,FIELD(R1)
    JZ    DONTDOSTUFF
DOSTUFF  DS    0H
    ...
DONTDOSTUFF DS  0H

Well, why don't you forget the Structure Program Macros
and just code it as above?

-Steve Comstock







    I've tried everything I can think of without splitting the 'IF'
statement up, but thought I would ask here before doing that.



Reply via email to