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 SPA
SNA
SZL
with boolean AND, and SMA
SZA
SNL
with boolean OR? Or is it some artifact of the underlying electronics?