On 29 Oct 2010 at 17:55, Roger Holmes wrote:
From: Johnny
Billquist <bqt at softjar.se>
I have not seen anyone comment any of the other things I listed as
possible firsts on the PDP-11. Can anyone come up with an earlier
machine that used condition codes?
The ICT 1301 had up to 100 'indicators' specified by two BCD digits in
the instruction. All could be tested with an unconditional jump and
some could be set and unset by program too. Number zero was always on
to give an unconditional jump. There were ones for equal, greater and
less as well as overflow, parity error, front panel switch states, as
well as various peripheral statuses. Does that count?
By "condition codes", do you mean zero, plus, greater, sense switch
1, last card, parity error, etc.? Those are ancient.
I never liked condition codes. When optimizing code and moving
instructions they're a pain in the butt. They do make some sense on
memory-to-memory architectures, of course, but on register-based
ones, they can make life needlessly difficult.
Consider, for example, which x80 or x86 instructions modify what
flags and which don't. Sure, carry and zero are easy, but try
remembering how and by which instruction the parity or auxiliary
carry flags are modified...
--Chuck