The TX-0 has a class of instructions very similar to the PDP-style microprogrammed, operation instructions. Fill the opcode field with all ones, and then select which microoperations you want to execute by setting the relevant bits in the rest of the instruction word. Of interest to this question are P6H
and P7H
, or "punch six holes" and "punch seven holes".
So six spaces in the punchtape come from the accumulator, and the last space in the punchtape come from the instruction word. And for extra weirdness, the six spaces that come from the accumulator are not contiguous, but are bits 2, 5, 8, 11, 14 and 17. I happened to notice that these are shifted one to the left of the bits that are read in, so that to copy a tape, ignoring hole 7, would be something like
- until end of tape
- read a word
- rotate left
- punch six holes
So my question here is basically "what's going on"; wouldn't it make more sense to read the tape into the lowest bits of the accumulator, so that you basically get a more sensible, 6-bit datatype? Or, wouldn't it make sense to read in the same bits that get punched out? And apparently the significance of this seventh hole is that the tape reader ignores any word with the seventh hole punched out. I guess it's useful if you make a mistake, but why would you punch a word, saying "ignore this word"?