Background Info (Ripped from Wikipedia)
The PDP-8 was the first successful commercial minicomputer, produced by Digital Equipment Corporation (DEC) in the 1960s. It was introduced on March 22, 1965  and was the first widely sold computer in the DEC PDP series of computers (the PDP-5 was not originally intended to be a general-purpose computer).
The PDP-8 is a 12-bit computer that can directly address 4K of 12 bit words. In its basic configuration it had a main memory of 4,096 twelve-bit words (that is, 4 kilo words, equivalent to 6 kilobytes), expandable to 32,768 words (32K words / 48KB). At its inception, the PDP-8 had eight instruction groups and only three registers, a 12-bit program counter, PC, a 12-bit accumulator, AC, and a single-bit "link register", L. There are also two three-bit memory bank values, one corresponding to the active instruction segment and one corresponding to the active data segment. If both bank values are the same then instructions and data are in the same 4K segment.
Each of the first six instruction groups correspond to a single instruction that manipulates PC or AC. AC manipulation may affect L. The seventh instruction group is for I/O to a physical maximum of 64 devices. The eight instruction group allows for the manipulation and testing of registers and in later machines, hardware assisted multiply and divide.
The machine used a magnetic core memory system that operated at a cycle time of 1.5 microseconds, so that a typical two-cycle (Fetch, Execute) memory-reference instruction ran at a speed of 0.333 MIPS. Later machines added a second register (the "MQ" Multiplier/Quotient Register), RAM memory, up to 128K, actual multiply and divide instruction options, and faster operation.
The PDP-8 was an historically important computer because of the advances in technology, I/O, software development, and operating system design that occurred during its reign. Until the rise of the generally available microcomputer, specifically the Apple II, it was most likely the best-selling computer in the world.
The earliest PDP-8 model (the so-called "Straight-8") used discrete transistor technology, packaged on flip chip cards, and was approximately the size of a compact refrigerator. This was followed by the PDP-8/S. By using a one-bit serial ALU implementation, the PDP-8/S was smaller, less expensive, but vastly slower than the original PDP-8. Intermediate systems (the PDP-8/I and /L, the PDP-8/E, /F, and /M, and the PDP-8/A) returned to a fully-parallel implementation and used TTL MSI logic. The last revisions of PDP-8 models used single custom CMOS microprocessors. There was never a historical "system on a chip". However, in recent years enthusiasts have created entire PDP-8 systems using single FPGA devices. (This is possible because an entire PDP-8, its main memory system, and its I/O equipment is collectively much less complex than even the cache memories used in most modern microprocessors.)
The I/O systems underwent huge changes during the PDP-8 era. Early PDP-8 models used a front panel interface, a paper-tape reader and a teletype printer with an optional paper-tape punch. Over time I/O systems such as magnetic tape, RS-232 and current loop dumb terminals, punched card readers, and fixed-head disks were added. Toward the end of the PDP-8 era, floppy disks and moving-head cartridge disk drives were popular I/O devices. Modern enthusiasts have created standard PC style IDE hard disk adapters for real and simulated PDP-8 computers.
I/O was supported through several different methods:
- In-backplane dedicated slots for I/O controllers
- A "Negative" I/O bus (using negative voltage signalling)
- A "Positive" I/O bus (the same architecture using TTL signalling)
- The Omnibus (a backplane of undedicated slots)
A rudimentary form of DMA called "three-cycle data break" was supported; this required the assistance of the processor. Essentially, "data break" moved some of common logic (needed to implement the I/O device) from each I/O device into one common copy of the logic within the processor, placing the processor in charge of maintaining the DMA address and word count registers. In three successive memory cycles, the processor would update the word count, update the transfer address, and finally store or retrieve the actual I/O data word. By the time the PDP-8/E was introduced, this logic had become cheap and "one-cycle data break" became more popular, moving back to the individual I/O devices all the responsibility for maintaining the word count and transfer address registers; this effectively tripled the DMA transfer rate because only the target data needed to be transferred to/from the core memory.
Software development systems for the PDP-8 series began with the most basic front panel entry of raw binary machine code. In the middle era, PAL-8 assembly language source code was often stored on paper tape, read into memory, and saved to paper tape, and later assembled from paper tape into memory. Paper tape versions of a number of programming languages were available, including DEC's FOCAL interpreter and a 4K FORTRAN compiler and runtime. Toward the end of the PDP-8 era, operating systems such as OS/8 and COS-310 allowed a traditional line-mode editor and command-line compiler development system using languages such as PAL-III assembly language, FORTRAN, BASIC, and DIBOL.
A time-sharing system, TSS-8, was also available. TSS-8 allowed multiple users to log into the system via 110-baud terminals, and edit/compile/debug programs. Languages included a special version of BASIC, a FORTRAN subset similar to FORTRAN-1 (no user-written subroutines or functions), an ALGOL subset, FOCAL, and an assembler called PAL-D.
A fair amount of user-donated software for the PDP-8 was available from DECUS, the Digital Equipment Corporation User Society, and often came with full source listings and documentation. Unforutuantely, much of this software was lost when DECUS abandoned its PDP-8 archive in the late 1980s, although bits and pieces of the collection from various site pop up every now and then.
As the PDP-8 was the first true mini-computer and was used by millions (or at least hundreds of thousands) of fledgling computer nerds, the PDP-8 is well-emulated and plenty of software is available in the form of disk and tape images. You can even get detailed documentation scanned from the original decades-old books. With all this available material, it's actually pretty easy to get started with PDP-8 emulation.
Setting Up Your (Virtual) PDP
Your first task should be to get a PDP-8 emulator. Probably the most popular and versatile emulator is called simply pdp8 and is a part of the wonderful SIMH collection. While other PDP-8 Emulators exist, SIMH is certain to be available on just about any computer you're using and thus will be used in the tutorial. Before doing anything, you should get and install SIMH. See SIMH's entry for details.
Now you need to create your "virtual machine room". This should take the form of a folder dedicated soley to PDP-8 stuff somewhere on your hard drive. You can either put everything straight into this folder or you can create seperate subfolders for various things like paper tapes, magtapes, disk images and documentation. Personally, I reccomend creating at least a documentation folder and copying SIMH's PDP-8 simulator (called pdp8 in Unix-like OSes and pdp8.exe in Win32, DOS and VMS) and into this folder.
Next, you need some software to run on your virtual PDP-8. The best place to get software is http://www.pdp8.net/ in order to explore just what was available for the average PDP-8, you should download a few files from the os8 directory of pdp8.net's software archive, namely:
Put these files in your "machine room" and you're almost ready to go.
Now it's time to use your virtual PDP for the first time. The basic process for doing this consists of the following steps:
- Open up a CLI/shell window and cd into your "machine room"
- Run the PDP-8 simulator
- Set up your virtual hardware. To do this, you have to set up the tape drives so that dt is disabled and td is enabled.
- Mount your disks and tapes in their proper places. rk0 should be diag-games-kermit.rk05, rk1 should be dewar-editor.rk05 and td0 should be foc71-omsi.tu56
- Boot your PDP-8 from rl0
The various commands you need to perform tasks in SIMH can be found in this guide|.
Please view Exploring Your PDP-8 Environment to continue.
- pdp8.netThe leading PDP-8 site online. Hosts a huge archive of documents and software as well a Java applet that lets you control a REAL PDP-8 over the 'Net.
- the alt.sys.pdp8 FAQ
- Bernhard Baehr's slick PDP-8/E Simulator for Macintosh
- http://simh.trailing-edge.com The SIMH emulator collection
- dpa, a portable PDP-8 cross-assembler
- Spare Time Gizmos' SBC6120 PDP-8 compatible computer (current manufacture, with optional front panel!)
- The Digital Equipment Corporation PDP-8, 1965 - Computer History Collection from the Smithsonian