Because of its prominent role in the early ARPANet and the influential operating systems developed for it, the PDP-10 remains an important fixture in hacker lore.
The PDP-10 is a word-oriented machine. All instructions are 36 bits, and all memory addresses refer to whole words. By convention, all numbers are octal unless followed by .
.
The PDP-10 instruction set is quite complex. Instructions are generally in one of these formats:
000000000 0111 1 1111 112222222222333333 012345678 9012 3 4567 890123456789012345 ________________________________________ | | | | | | | OP | AC |I| X | Y | General instructions |_________|____|_|____|__________________| 000 0000000 111 1 1111 112222222222333333 012 3456789 012 3 4567 890123456789012345 _________________________________________ | | | | | | | |111| DEV |IOP|I| X | Y | I/O instructions |___|_______|___|_|____|__________________|
These should be kept in mind, as instruction mnemonics are laid out in almost the same way: OP AC,@Y(X)
, where any zeroed fields are omitted.
As indicated in the above diagrams, bits are numbered left to right, or most significant to least significant.
All instructions use the X, Y, and I fields to calculate an effective address, which may or may not actually be an address. In the simplest case, X and I are zero, so the effective address is Y. If X is nonzero, then the referenced accumulator is used as an index register.
More complex is the case when I is 1. The result of the above step is used to fetch a word from memory. The procedure is repeated on that word, including the indirect step if its I bit is set.