On the 8080 there are many instructions with parallel forms. Three of these are CALL, RET and JP, which all have conditional and immediate forms.
Note: I am using Z80 terminology because that is what I am familiar with.
In octal:
3p0-RET <cond>3p2-JP <cond>3p4-CALL <cond>
where p - <cond> represents a flag/value combination:
0 - NZ (Z=0, Non Zero)
1 - Z (Z=1, Zero)
2 - NC (C=0, Non Carry)
3 - C (C=1, Carry)
4 - PO (V=0, Parity Odd / non oVerflow)
5 - PE (V=1, Parity Even / oVerflow)
6 - P (S=0, Sign Plus)
7 - M (S=1, Sign Minus)
The immediate forms are:
311-RET303-JP315-CALL
All of the CALL and JP instructions take the next two bytes as the 16-bit address to go to, but that is irrelevant to my question.
The 8080 did not define instruction 313, which was later used by the Z80 to expand the instruction set. Why did the designers of the 8080 not use 313 for JumP immediate, and leave 303 undefined instead?
313might have been more sensible,303was lower. – CJ Dennis Apr 22 '18 at 14:06