84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
-
+
-
+
|
By this point, you'll be wondering how a PDP-8 can be expanded beyond its stock 4 kW of core to its maximum of 32 kW, and why is that the limit anyway?
The answer to both questions is that the PDP-8 has a pair of 3-bit registers for setting the instruction field and the data field. 2³ = 8, and 8 fields × 4 kW = 32 kW.
Thus, when a program is currently executing code in field 0 but wants to address data in field 1, it sets the data field (DF) register to 1, and now all data fetches pull data from field 1. Likewise, to jump to an address in field 1 from field 0, it sets the instruction field (IF) register to 1.
This is also why your PDP-8/I has two sets of 3 switches on the front and a set of indicator lights labeled "Data Field" and "Instruction Field." Together, this gives you a combined 15-bit extended address. A jump or fetch between fields thus takes two instructions, rather than the indirect addressing for in-field operations or the direct addressing of in-page operations. This gives a hierarchy of expense: a diligent PDP-8 programmer tries to keep data and instructions close together and logically bunched to avoid needless page and field transitions.
This is also why your PDP-8/I has two sets of 3 switches associated indicator lights on its front panel labeled "Data Field" and "Inst Field." Together, this gives you a combined 15-bit extended address. A jump or fetch between fields thus takes two instructions, rather than the indirect addressing for in-field operations or the direct addressing of in-page operations. This gives a hierarchy of expense: a diligent PDP-8 programmer tries to keep data and instructions close together and logically bunched to avoid needless page and field transitions.
# Conclusion
I hope you've found this overview interesting and enlightening. If you would like more on this topic, the various versions of DEC's Small Computer Handbook for the PDP-8 cover this in more detail and take you beyond it, into actual programming of a PDP-8:
* The [1967-1968 edition](http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/pdp8/handbooks/SmallComputerHandbook_67-68.pdf) was first published before the PDP-8/I was formally released, so its first drafts must have been written with reference to a pre-production unit. (PDF, 21 MB.)
A telltale of this is that the machines pictured on the front are an original PDP-8 (a.k.a. the "Straight 8") and a PDP-8/S. I have here in my possession a paper copy of a later edition, also labelled as the "1967-1968" edition but with an actual PDP-8/I on the front. You can quickly tell the difference between these two editions by the green background behind the machine, as compared to the orange background behind the older machines. Unfortunately, I'm not aware of a PDF source of the newer edition.
A telltale of this is that the machines pictured on the front cover of that edition are an original PDP-8 (a.k.a. the "Straight 8") and a PDP-8/S. I have here in my possession a paper copy of a later edition, also labelled as the "1967-1968" edition but with an actual PDP-8/I on the front. You can quickly tell the difference between these two editions by the green background behind the machine, as compared to the orange background behind the older machines. Unfortunately, I'm not aware of a PDF source of the newer edition.
* The 1973 edition for the [PDP-8/e, PDP-8/f, and PDP-8/m](https://archive.org/details/bitsavers_decpdp8hanHandbook1973_79671711) is not entirely relevant to the PDP-8/I we're primarily concerned with here on this web site, but they did refine the tutorial material quite a bit over the earlier editions, so it is sometimes helpful to read the equivalent material in this newer edition when trying to figure something out. Just be aware that not everything applies to a PDP-8/I. (PDF, 76 MB.)
---------------------
**Footnotes and Digressions**
|