====== PDP-10 ====== 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. ===== Instruction set ===== ==== Conventions ==== 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. ==== Effective addresses ==== 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.