Currently, MESS emulation of PDP-1 supports
* a perforated tape reader - "punchtape1" (ptap1) device, supporting .tap and .rim tapes, for input
* a perforated tape punch - "punchtape2" (ptap2) device, supporting .tap and .rim tapes, for output
* a typewriter - "printer" (prin) device
The simplest way to load and run software is to insert a read-in mode tape (.rim file) in the perforated tape reader and press the read-in switch once, i.e. press simultaneously the "Control Panel" key (mapped by default to Left Control) and the "Read In" key (mapped by default to main keypad Return).
MESS also supports, to some extent, .drm files using "cylinder" (cyln) device. Misc
Three Dip Switches ("RAM size", "Hardware multiply" and "Hardware divide") enable or disable computer extensions. These switches are only read at reset. Therefore, if you edit them, you must reset the emulator (press F3 in partial keyboard emulation mode) for the changes to be taken into account.
The "RAM size" switch installs and removes type 15 memory expansion control: it is disabled when set on 4kw, enabled with 15-bit addresses when set on 32kw, and enabled with 16-bit addresses when set on 64kw. All known programs work well whether memory expansion control is installed or not. Only LISP can take advantage of the extra RAM.
The "Hardware multiply" and "Hardware divide" switches enable or disable the automatic multiply/divide extension. When they are enabled, two PDP-1 machine instructions (namely MUS and DIS) are replaced with two other, incompatible, instructions (MUL and DIV, respectively).
Therefore, programs which use the former variant of these instructions require automatic multiply/divide to be disabled, whereas programs which use the latter require it to be enabled. In practice, Spacewar! requires automatic multiply and divide to be DISABLED (i.e. both switches OFF), whereas LISP requires automatic multiply and divide to be ENABLED (i.e. both switches ON).
For information on PDP-1 operation, you may have a look at: http://www.dbit.com/~greeng3/pdp1/pdp1.html -- http://www.dbit.com/~greeng3/pdp1/pdp1.html. Keyboard
This system requires full keyboard emulation to work correctly. At startup, full keyboard emulation mode is enabled by default. Whilst in full keyboard emulation mode, some key associated functionality may be disabled (like the ESC key for EXIT). The keyboard emulation mode is toggled using the "Scroll Lock" key (by default).
MESS currently supports three images: Spacewar! (first computer-based video game), Munching Squares (minimalistic yet beautiful graphic demo) and LISP (programming language). I have OCR'ed and assembled the source code of DDT (debugger), but I am still looking for bugs in this program.
No other images are known at the time of writing: I know there were a text editor (Expensive Typewriter), an assembler/linker (MACRO), and even a multi-user, multi-tasking operating system (MIT PDP-1 Timesharing System), but I have no idea where a copy of these programs could be found (except for macro1, which is should be OCR'ed soon).
This driver emulates a complete PDP-1 system, including
* operator control panel
* perforated tape reader and punch
* typewriter for keyboard input and printer output
* optional type 30 precision CRT display
* optional type 15 memory expansion control, with 64kwords of RAM (16 type 12 memory modules)
* optional type 10 automatic multiply and divide
The internals of the sequence break (i.e. interrupt) system are implemented, but no device has been set up to trigger an interrupt.
History and Trivia
In 1957, Kenneth Olsen and Harlan Anderson founded a society called Digital Equipment Corporation (DEC).
In 1960, they started selling the PDP-1. This was a very interesting computer for its time.
First of all it was cheap and fast for its time: about 100,000 dollars, and a theoretical maximum of 0.1 MIPS. It included 4 kWords of RAM, expandable to 64 kWord (as word size is 18 bits, this makes from 9 to 144 kBytes, which is HUGE for this time): this is an important detail, since, at this time, cheap computers (e.g. IBM 650) often had no RAM, and used a magnetic drum instead, which implied extremely long memory access times.
What made it even more interesting was that it was designed to be operated interactively. It featured an on-line typewriter (i.e. keyboard and printer), and a CRT (which was seldom used as a computer device at this time). You could even buy an optional light-pen (this device was the closest equivalent to today's mouse). Along with its simplicity, this made the PDP-1 quite user-friendly for its time.
The PDP-1 may be regarded as one of the first personal computers, since one person was quite enough to run and operate it (although, needless to say, its price was not the kind of price you would expect from a personal computer today).
The PDP-1 attracted the attention of various hackers in MIT. This resulted into the creation of Spacewar!, which was the first computer-based videogame, but this is another story.
The PDP-1 was a reasonably successful machine: 49 units were sold, which was not as bad as it sounds for this time. DEC intended to sell variants of PDP-1 with a bigger word size (PDP-3 with 36-bit words, and possibly other variants (PDP-2???) with 24-bit or 30-bit words), but it eventually did not. However, it later replaced PDP-1 with other models, including the first minicomputer (the PDP-8 in 1965), and, by the early 1970's, it had become a major computer manufacturer, second only to IBM.
* PDP-1 Handbook -- http://www.dbit.com/~greeng3/pdp1/pdp1.html
* PDP-1 information on bitsavers.org -- http://www.bitsavers.org/pdf/dec/pdp1/
* PDP-1 paper tape images -- http://www.bitsavers.org/bits/DEC/pdp1/papertapeImages/ including SpaceWar.
* SIMH -- http://simh.trailing-edge.com/ can emulate a PDP1 as well as others PDP's and has software kits (DDT and lisp) for the PDP-1.
* DEC XY Display Simulator -- http://www.ultimate.com/phil/xy/ for SIMH (in case you want to play SpaceWar :)