The PDP-11/40 is the simplest DEC panel, and also the first I made.
The PDP-11/40 is a 16 bit machine with 18 bit addresses, so it can address 256 KBytes over a simple memory management unit. The panel shown here has different paintings and is labeled "industrial11". It was build in 1973.
The PDP-11/40 has only a core set of Lamps & switches, making it ideal for teaching and demonstration. Almost all DEC CPU panels (surely all PDP-11's) follow the same approach, so its worth to take a closer look.
Octal and binary digits
DATA display, ADDRESS Display und Data Input Switches present data as bits. Groups of three bits are optically grouped together on the panel, because three bits make one octal digit.
In case you forgot:
0 0 0 0 |
1 0 0 1 |
2 0 1 0 |
3 0 1 1 |
4 1 0 0 |
5 1 0 1 |
6 1 1 0 |
7 1 1 1 |
Basic panel controls
The larger left half of the panel is for memory address and data, the small right half for the CPU.
ADDRESS display: The upper row of LEDs displays an address up to 18bit wide. They are labeled “ADDRESS” on the panel. This the physical address loaded with the “LOAD ADDR” switch.
DATA display: The bottom row of LEDs displays a 16 bit data word. They are labeled “DATA”.
Address/Data Input Switches: The left bank of switches on the panels bottom is used to enter addresses or data words. Therefore they are vertically aligned with the “ADDRESS” and “DATA” LEDs. A switch flipped upward represents a logic “1”, a switch in normal position is a “0” (zero). (See the “bit-to-octal” table below)
Command Switches
The switches to the right are the real command center of the panel. Most switches return to their standard-position, they are called “Momentary Action Switches” by DEC.
- “LOAD ADRS” sets the current address for the next Examine/Deposit or Run Command. After you trigger it, the state of the input switches is copied to the “ADDRESS” LEDs.
- “EXAM” issues an “Examine”. The memory location shown in “ADDRESS” LEDs is read, an the result is displayed in “DATA” LEDs. If the memory adress is invalid, LED “ADDR ERR” goes ON.
- “DEP” issues a Deposit. The content of the “Data Input” switches is written into the memory location indicated by “ADDRESS” LEDs.
Since DEPOSIT changes data, it must be toggled upward. - Auto increment: If you trigger EXAM/DEPOSIT repeatedly, the “ADDRESS” LEDs are automatically incremented by 2, then the memory on the new address is read/written. You do NOT have to enter always new addresses, if you read/set a whole memory block.
Furthermore, if you’re reading a processor register R0..R7 (addresses 777700 .. .777707), the address is incremented just by one. (This is PDP-11/70 behaviour, the 11/40 increments by 2. But it is quite useful). - “CONT” resumes program execution. If “ENABLE/HALT” is in the “HALT” position, a single step is executed.
- “ENABLE/HALT” modifies “CONT” and “RUN”, see there. Flipping to “HALT” also stops a running program.
- “START” resets the processor and sets the program counter to the content of the “ADDRESS” LEDs. If “ENABLE/HALT” is in the “ENABLE” position, the program execution begins.
Operating the panel
The switches are operated by clicking with the mouse on to them. There are two stypes of switches: bi-stable and "momentary action" switches. Multiple switches can be changed by holding the mose button and moving over them. In the old days a bunch of switches was set in a similar fashion by sliding with a finger over them.
Read a memory address
- Enter the address with the Data Input Switches
- Trigger the “LOAD ADDR” switch
- The address is displayed on the “ADDRESS” LEDs
- Trigger the “EXAM” switch
- Data is displayed in the “DATA” LEDs
Read the next memory address
- Trigger the “EXAM” switch again
- The “ADDRESS” LEDs increment by 2 (or by 1, if you’re reading R0..R7).
- New data is displayed in the “DATA” LEDs
Write a memory address
- Enter the address with the Data Input Switches
- Trigger the “LOAD ADDR” switch
- The address is displayed on the “ADDRESS” LEDs
- Enter data with the “Data Input” switches.
- Trigger the “DEP” switch
- Entered data is displayed in the “DATA” LEDs
Write the next memory address
- Enter data with the “Data Input” switches.
- Trigger the “DEP” switch again
- The “ADDRESS” LEDs increment by 2 (or by 1, if you’re writing R0..R7).
- Entered data is displayed in the “DATA” LEDs
Reset the processor to a start address
- Enter the start address with the “DATA INPUT” switches.
- Trigger the “LOAD ADDR” switch
- The address is displayed on the “ADDRESS” LEDs
- Set “ENABLE/HALT” to “HALT”
- Trigger “START”
Start program execution
- Enter the start address with the “DATA INPUT” switches.
- Trigger the “LOAD ADDR” switch
- The address is displayed on the “ADDRESS” LEDs
- Set “ENABLE/HALT” to “ENABLE”
- Trigger “START”
- The “RUN” LED goes ON.
Stopping a running program
- Switch “ENABLE/HALT” to “HALT”
- The “RUN” LED goes OFF.
Continue program execution
- Switch “ENABLE/HALT” to “ENABLE”
- Trigger “CONT”
- The “RUN” LED goes ON.
Execute next instruction / Single Step
- Switch “ENABLE/HALT” to “HALT”
- Trigger “CONT”
- The “ADDRESS” LEDs show the program counter after the next instruction.