Chuck(G)
25k Member
GI did offer a 10 bit-wide ROM.
The picture is a bit more complicated--and horrifying. The first word of an instruction uses 10 bits out of 16--the unused 6 bits were apparently reserved for a coprocessor or some other function.
The second and third words are, in fact, a full 16 bits, unless they're direct jump operands--in which case they're 10 bits as well; you have a three-word instruction.
In the case of a relative (conditional) jump, a 16-bit displacement is used as the second instruction word. However, the sign of the displacement is part of the first instruction word, so if you've got a 10 bit instruction ROM, you're limited to +/- 1023 words either side of the jump, so not so bad.
However, there's a "prefix" instruction for people using 10 bit ROMs "SDBD" - set double-byte data, which allows the 16-bit operand of a non-jump instruction, such as a load/move immediate to be represented by 2 following bytes.
Bizarre, and inefficient, but this was 1975. The principal 16-bit competition was the NS PACE, which went the other way--all instructions were one word, which had problems of its own--and, like the CP1600, it was slow.
If you weren't in the defense industry, practical chips like the Fairchild 9440 were basically unobtanium.
The picture is a bit more complicated--and horrifying. The first word of an instruction uses 10 bits out of 16--the unused 6 bits were apparently reserved for a coprocessor or some other function.
The second and third words are, in fact, a full 16 bits, unless they're direct jump operands--in which case they're 10 bits as well; you have a three-word instruction.
In the case of a relative (conditional) jump, a 16-bit displacement is used as the second instruction word. However, the sign of the displacement is part of the first instruction word, so if you've got a 10 bit instruction ROM, you're limited to +/- 1023 words either side of the jump, so not so bad.
However, there's a "prefix" instruction for people using 10 bit ROMs "SDBD" - set double-byte data, which allows the 16-bit operand of a non-jump instruction, such as a load/move immediate to be represented by 2 following bytes.
Bizarre, and inefficient, but this was 1975. The principal 16-bit competition was the NS PACE, which went the other way--all instructions were one word, which had problems of its own--and, like the CP1600, it was slow.
If you weren't in the defense industry, practical chips like the Fairchild 9440 were basically unobtanium.