I am interested in the SKIP instructions on the PDP-8. These test the accumulator and Link bit, and they skip the next instruction if the condition holds.
The instructions are:
- OR GROUP
SMA- Skip if the Accumulator is less than zero.
SZA- Skip if the Accumulator is zero.
SNL- Skip if the Link bit is 1.
- AND GROUP
SPA- Skip if the Accumulator is zero or positive.
SNA- Skip if the Accumulator is unequal to zero.
SZL- Skip if the Link bit is 0.
And you can combine any of the three in each group into a single instruction. For example, if you wanted to skip the next instruction if the Accumulator is zero OR the Link bit is 1, then you may code
SZA SNL as a single instruction. The OR group also has a "don't skip". The AND group also has a "skip unconditionally". So as you can see, each group has the opposite conditions of the other group.
This is quite different from the conditional branching on the PDP-11 and the 6502 computers.
So why did they design the PDP-8 in this way? Is there some logic to associating
SZL with boolean AND, and
SNL with boolean OR? Or is it some artifact of the underlying electronics?