Remarks on the instruction set
In the hindsight, the instruction set might be desinge slightly different.
Load and Store
As the machine has a deposit and clear accumulator ( C
) instruction,
the B
(bring) instruction is dispensible, as the same can be achieved by
adding the memory to the cleared accumulator (see PDP-8). This does neither
cost memory nor time, unless in highly optimised programmes where there are jumps
to the addition.
The H
(hold) instruction could also be spared, as the sequence of C
and A
with the
same address do the same, but with a memory and heavy time penalty. Not only are two
words instead of one needed, the time is significantly larger, as one extra drum rotation
is needed.
A quick means to set a memory cell to zero would, however, be positive. As the only way to change a memory cell is to store the contents of the accumular, one is tempted to write two C
instructions with the same target in a row, as the first transfer to memory is harmless in so far
as it is overwritten by the next instruction, and this takes one drum rotation.
However, setting a memory cell to anything else requires to load this value before,
and that this value is zero is not very often.
While for numerical calculations, there is no need to have a conditional transfer if the accumulator
is zero, and defensive programming would anyhow not check calculations for exactly zero,
but it would be useful after the extract ( E
) instruction to check if the bit pattern is zero,
instead of subtracting the constant 1
, provided that the sign bit is clear.
Note:
In the Operations Manual for the input ( I
) instruction, it is written that
... the track portion of the address indicates the first four bits to enter the accumulator
This feature is neither understood nor seems to be present, as elsewhere always the form I000
is used.