Subject: FAQ

From: [email-masked] (Douglas W. Jones,201H MLH,3193350740,3193382879)
Date: Thu, 29 Oct 1992 22:59:42 GMT

Frequently Asked Questions about the PDP-8

	By Douglas Jones, [email-masked]
	(with help from a number of others)

Contents

	What is a PDP?
	What is a PDP-8?
	What is the PDP-8 instruction set?
	What different PDP-8 models were made?
	Where can I get a PDP-8 today?
	Where can I get PDP-8 documentation?
	What operating systems were written for the PDP-8?
	What programming languages were supported on the PDP-8?
	Where can I get PDP-8 software?
	Where can I get additional information?
	What use is a PDP-8 today?

What is a PDP?

	For over a decade, all programmable digital computers sold by
	Digital Equipment Corporation were sold as Programmable Data
	Processors (PDPs) instead of computers.  I have DEC documentation
	that actually calls them "PDPs", so this is not improper usage.
	DEC's first computer, the PDP-1, had a selling price of $120,000
	at a time when competing machines were selling for over $1,000,000.
	Everyone (DEC's stockholders included) knew that computers were
	big and expensive and needed a computer center and a large staff,
	and apparently, DEC chose to avoid dealing with these stereotypes
	by entirely avoiding the term "computer".

	DEC built a number of different computers under the PDP label,
	of which the PDP-8 family machines were the smallest and least
	expensive.  The PDP-10, for example, was a large machine worthy
	of a computer center and large support staff.  The PDP-14 wasn't
	even a computer -- it was a ROM based industrial controller.
	The PDP-11, a 16 bit minicomputer/microprocessor family, is the
	only DEC product still being sold under the PDP name.

What is a PDP-8?

	The PDP-8 family of minicomputers were built by Digital Equipment
	corporation between 1965 and 1990.  These machines were
	characterized by a 12 bit word, with no hardware byte structure,
	a 4K minimum memory configuration, and an extremely simple
	instruction set.  By 1970, the PDP-8 was the best selling computer
	in the world, and many models of the PDP-8 set new records as the
	least expensive computer on the market.  The PDP-8 has been
	described as the model-T of the computer industry.

	Gordon Bell (who later was chief architect of the PDP-11 and
	who, as Vice President, oversaw the development of the VAX) says
	that the basic idea of the PDP-8 was not really original with him.
	He gives credit to Seymour Cray (of CDC and later Cray) for the
	idea of a single-accumulator 12 bit minicomputer.  Cray's CDC 160
	family, sold starting around 1959, certainly was a very similar 12
	bit architecture, and the peripheral processors of Cray's first
	supercomputer, the CDC 6600, also look very familiar to PDP-8
	programmers.

What is the PDP-8 instruction set?

	The PDP-8 word size is 12 bits, and the basic memory is 4K
	words.  The minimal CPU contained the following visible registers:

		PC - the program counter, 12 bits.
		AC - the accumulator, 12 bits.
		L  - the link, 1 bit, commonly prefixed to AC as <L,AC>.

	Instruction words are organized as follows:
                 _ _ _ _ _ _ _ _ _ _ _ _
		|_|_|_|_|_|_|_|_|_|_|_|_|
                |     | | |             |
                |  op |i|z|    addr     |

		op   - the opcode
		i    - the indirect bit (0 = direct, 1 = indirect)
		z    - the page bit (0 = page zero, 1 = current page)
		addr - the word in page.

	The top 5 bits of the 12 bit program counter give the current
	page, and memory addressing is also complicated by the fact
	that absolute memory locations 8 through 15 are used for
	auto-increment addressing -- if they are used for indirect
	addressing, they are automatically incremented prior to each use.

	The basic instructions are:

		000 - AND - and operand with AC
		001 - TAD - add operand to <L,AC> (a 13 bit value)
		010 - ISZ - increment operand and skip if result is zero
		011 - DCA - deposit AC in memory and clear AC
		100 - JMS - jump to subroutine
		101 - JMP - jump
		110 - IOT - input/output transfer
		111 - OPR - microcoded operations

	The ISZ and other skip instructions conditionally skip the
	next instruction in sequence.  The subroutine calling sequence
	involves putting the return address in word zero of the
	subroutine, with execution starting with word one.  Return from
	subroutine is done with an indirect jump through the return
	address.

	The IOT instruction has the following form:
                 _ _ _ _ _ _ _ _ _ _ _ _
		|1|1|0|_|_|_|_|_|_|_|_|_|
                |     |           |     |
                |     |   device  | op  |

	The IOT instruction specifies one of 8 operations on one of 64
	devices; typical operations were skip if device ready, or data
	from device with accumulator, and transfer data from accumulator
	to device.  IOT operations could start DMA transfers and test
	their status (DMA was called "data break" on the PDP-8 family).

	Some CPU functions are accessed only by IOT instructions.  For
	example, interrupt enable and disable are IOT instructions, as
	are instructions controlling the optional memory management and
	protection unit that is needed to address more than 4K words.

	A wide variety of operations are available through the OPR
	microcoded instructions:
                 _ _ _ _ _ _ _ _ _ _ _ _
	Group 1 |1|1|1|0|_|_|_|_|_|_|_|_|
		         1                - CLA - clear AC
		           1              - CLL - clear the L bit
	                     1            - CMA - ones complement AC
	                       1          - CML - complement L bit
	                               1  - IAC - increment <L,AC>
	                         1 0 0    - RAR - rotate <L,AC> right
	                         0 1 0    - RAL - rotate <L,AC> left
		                 1 0 1    - RAR - rotate <L,AC> right twice
		                 0 1 1    - RAL - rotate <L,AC> left twice

	In general, the above operations can be combined by oring the
	bit patterns for the desired operations into a single instruction.
	The exception to this is that IAC cannot be combined with the
	rotate operations on some models, and attempts to combine rotate
	operations have different effects from one model to another.  When
	these operations are combined, they operate top to bottom in the
	order shown above.
                 _ _ _ _ _ _ _ _ _ _ _ _
	Group 2 |1|1|1|1|_|_|_|_|_|_|_|0|
	                   1     0        - SMA - skip on AC < 0  \
	                     1   0        - SZA - skip on AC = 0   > or
	                       1 0        - SNL - skip on L /= 0  /
	                   1     1        - SPA - skip on AC >= 0 \
	                     1   1        - SNA - skip on AC /= 0  > and
	                       1 1        - SZL - skip on L = 0   /
	                 1                - CLA - clear AC
	                           1      - OSR - or switches with AC
	                             1    - HLT - halt

	The above operations may be combined by oring them together,
	except that there are two distinct incompatible groups of skip
	instructions.  When combined, SMA, SZA and SNL, skip if one or the
	other of the indicated conditions are true, while SPA, SNA and SZL
	skip if all of the indicated conditions are true (logical and).
	When combined, these operate top to bottom in the order shown.

	A third group of operate microinstructions (with a 1 in the least
	significant bit) deals with the optional extended arithmetic
	element to allow such things as hardware multiply and divide.

What different PDP-8 models were made?

	The following basic models of the PDP-8 were sold by DEC:

	MODEL	DATES	SALES   COST	TECHNOLOGY	COMPATABILITY

	PDP-5	63-65			Transistor	Limited
	PDP-8	65-68 	>1000	<$100K	Transistor	Full
	LINC-8	66-69	153	$38500 	Transistor	Full (1)
	PDP-8/S	67?	>1000?	<$10K	Transistor 	Limited and slow!
	PDP-8/I	68?	>2000?	<$100K	TTL		Full
	PDP-8/L	68?	>2000?	<$100K	TTL		Full (2)
	PDP-12	69-71	3500	<$100K	TTL		Full (3)
	PDP-8/E	70-78	>10K?	$7390	TTL MSI	Omnibus	Full (4)
	PDP-8/F	73-78?	>10K?	<$7K	TTL MSI Omnibus Full (uses 8/E CPU)
	PDP-8/M	73-78?	>10K?	<$7K	TTL MSI Omnibus Full (an OEM 8/F)
	PDP-8/A	75-84?	>10K?	<$7K	TTL LSI Omnibus Full (new CPU) (5)
	VT78	78-80	>	?	Microprocessor  Full (Intersil IM6100)
	Dm I (6)80-84			Microprocessor	Full (Intersil IM6120)
	Dm II	82-86			Microprocessor	Full (IM6120)
	Dm III	84-90			Microprocessor	Limited expansion
	Dm III+	85-90			Microprocessor	Limited expansion
			(7)

	Notes	(1) The LINC-8 combined a modified PDP-8 with a Laboratory
			Instrumentation Control Computer (developed at
			Lincoln Labs in the early 1960s).
		(2) The PDP-8/L was intended as a scaled down version of
			the PDP-8/I, and most of them had only 4K memory,
			but eventually, a full range of upgrade options
			were sold.
		(3) The PDP-12 was originally designated the LINC-8/I; it
			was a follow-on to the LINC-8; it had the most
			impressive standard control panel of any PDP-8.
		(4) The PDP-8/E is considered by many to be the definitive
			PDP-8.  If the PDP-8 was the model-T of the computer
			industry, perhaps the PDP-8/E was the model-A.
		(5) After 1978, Reuters bought almost all of the remaining
			PDP-8/A production run (5-6 years at 1000/month).
		(6) Dm stands for DECmate.
		(7) The total sales figure for the PDP-8 family is
			estimated at over 300,000 machines.  Over 8500
			of these were sold prior to 1970.

	When possible, the costs given above are for a minimal system
	consisting of 4K of main memory, a console teletype, and the
	minimal software needed to use the machine (FOCAL, BASIC, or a
	paper-tape based assembler).  Additional information on costs
	and production is needed!

	The above list does not include many PDP-8 variants sold by DEC
	to meet the needs of various special users.  For example, the
	Industrial-8 was really just a PDP-8/E with a different nameplate
	and color scheme.  Burger King had thousands of PDP-8/M based
	point-of-sale systems with no standard peripherals.  In addition,
	DEC made many peripheral controllers for the PDP-11 and PDP-15
	that used IM6100 microprocessors.

	The following PDP-8 compatable or semi-compatable machines were
	made and sold by others; very little is known about many of these:

	MODEL		DATE	MAKER, NOTES

	MP-12		6?	Fabritek
	TPA		68?	Hungarian, possibly a DEC PDP-8/L in drag
	DCC-112		70-71	Digital Computer Controls
	DCC-112H	71	Digital Computer Controls
	6100 Sampler	7?	Intersil, their IM6100 promotional kit
	Intercept	7?	Intersil, based on IM6100
	Intercept Jr	7?	Intersil, based on IM6100
	SBC-8		84-88	CESI, Based on IM6120, SCSI bus

Where can I get a PDP-8 today?

	The CESI machine may still be on the market, for a high price, but
	generally, you can't buy a new PDP-8 anymore.  There are quite a
	few PDP-8 machines to be found in odd places on the used equipment
	market.  They were widely incorporated into products such as
	computer controlled machine tools, X-ray diffraction machines, and
	other industrial and lab equipment.  Many of them were sold under
	the EduSystem marketing program to public schools and universities,
	and others were used to control laboratory instrumentation.
	Reuters bought the tail end of the production run.

	If you can't get real hardware, you can get emulators.  Over the
	years, many PDP-8 emulators have been written; the best of these
	are indistinguishable from the real machine from a software
	prespective, and on a modern high-speed RISC platform, these
	frequently outperform the hardware they are emulating.

Where can I get PDP-8 documentation?

	The 1973 Introduction to Programming was probably DEC's definitive
	manual for this family, but it is out of print, and DEC was in the
	habit of printing much of their documentation on newsprint with
	paperback bindings, which is to say, surviving copies tend to be
	yellow and brittle.

	DEC distributed huge numbers of catalogs and programming handbooks
	in this inexpensive paperback format, and these circulate widely
	on the second-hand market.  When research laboratories and
	electronics shops are being cleaned out, it is still common to
	find a few dusty, yellowed copies of these books being thrown in
	the trash.

	Maintenance manuals are harder to find, but more valuable.
	Generally, you'll need to find someone who's willing to photocopy
	one of the few surviving copies.  Fortunately, DEC has been
	friendly to collectors, granting fairly broad letters of permission
	to reprint obsolete documentation, and the network makes if fairly
	easy to find someone who has the documentation you need and can
	get copies.

What operating systems were written for the PDP-8?

	A punched paper-tape library of stand-alone programs was commonly
	used with the smallest (diskless and tapeless) configurations from
	the beginning up through the late 1970's.  Many paper tapes from
	this library survive to the present at various sites!

	The DECtape Library System was an early DECtape oriented save and
	restore system that allowed a reel of tape to hold a directory of
	named files that could be loaded and run.  Eventually, this
	supported a very limited tape-based text editor for on-line
	program development.

	The 4K Disk Monitor System provided slightly better facilities.
	This supported on-line program development and it worked with any
	device that supported 129 word blocks (DECtape, the DF32 disk, or
	the RF08 disk).

	MS/8 or the R-L Monitor System, developed starting in 1966 and
	submitted to DECUS in 1970.

	P?S/8, developed starting in 1971 from an MS/8 foundation.  Runs
	on minimal PDP-8 configurations, supports device semi-independant
	I/O and a file system on a random-access device, including DECtape.

	OS/8, developed in parallel with P?S/8, became the main PDP-8
	programming environment sold by DEC.  The minimum configuration
	required was 8K words and a random-access device to hold the
	system.

	TSS/8 was developed in 1968 as a timesharing system.  It required
	a minimum of 12K words of memory and a swapping device.  It was
	the standard operating system on the EduSystem 50 which was sold
	to many small colleges and large public school systems.

	Other timesharing systems developed for the PDP-8 include MULTI-8,
	ETOS, and OMNI-8; these were similar to TSS/8, and by the mid
	1970's, many of these were true virtual machine operating systems
	in the same spirit as IBM's VM-370.

	WPS was DEC's word processing system that was widely used on the
	1980's vintage machines with a special WPS keyboard replacing the
	standard keyboard.

	COS-310, DEC's commercial operating system for the PDP-8, supported
	the DIBOL language.  COS-310 was a derivative of OS/8, but with a
	new text file format.

What programming languages were supported on the PDP-8?

	The PAL family of assembly languages are as close to a standard
	assembly language as can be found for the PDP-8.  These produce
	absolute object code and versions of PAL will run on minimally
	configured machines.

	MACRO-8 was DEC's first macro assembly language for the PDP-8, but
	it was never used outside the paper-tape environment.  MACREL and
	SABR are assembly languages that produce relocatable output.  SABR
	is the final pass for the ALICS II FORTRAN compiler, and MACREL was
	developed in (unfulfilled) anticipation of similar use.

	A subset of FORTRAN was supported on both the PDP-5 and the
	original PDP-8.  Surviving documentation describes a DEC compiler
	from 1964 and a compiler written by Information Control Systems
	from 1968.  The latter, ALICS II FORTRAN, was originally a paper
	tape based compiler, but it forms the basis of the OS/8 8K FORTRAN
	compiler.

	RTPS FORTRAN required 8K and a floating point processor; it had
	real-time extensions and was a full implementation of FORTRAN IV
	(also known as ANSI FORTRAN 66).

	FOCAL, an interpretive language comparable to BASIC was available
	on all models of the family, including the PDP-5 and PDP-8/S.

	BASIC was also available, and was widely used on PDP-8 systems
	sold under the EduSystem marketing program.  A paper-tape version
	was available that ran in 4K, there were versions that ran under
	OS/8 and TSS/8, and there was an 8K stand-alone time-sharing
	version.

	DIBOL was DEC's attempt at competing with COBOL in the commercial
	arena.

	Algol was available from a fairly early date.

	At least two Pascal compilers were developed for the PDP-8.

	At least two LISP interpreters were written for the PDP-8; one
	runs in 4K, the other can use up to 16K.

	TECO, the text editor, is available, and is also a general purpose
	language, and someone is working on a PDP-8 C.

Where can I get PDP-8 software?

	DECUS, the DEC User Society, is still alive and well, and their
	submission form still lists PAL-8 and FOCAL as languages in which
	they accept submissions!

	There is a young but growing FTPable archive of PDP-8 software at
	ftp.telebit.com in directory /pub/pdp8.

Where can I get additional information?

	The file WHAT-IS-A-PDP8, by Charles Lasner contains considerable
	additional information; this file is included in the FTPable
	archive cited above.  This file gives details of every model
	of the PDP-8, including the small quirks and incompatabilities
	that (to be generous) allow software to determine which model it
	is running on.  These quirks also make it all too easy for
	careless programmers to write almost portable software with very
	obscure bugs.

	The mailing list [email-masked] reaches a number of PDP-8
	owners and users, not all of whom have USENET feeds.  The USENET
	newsgroup alt.sys.pdp8 is fairly new, but someday, the newsgroup
	and mailing list will be gatewayed to each other.

	Many "archival" books have included fairly complete descriptions
	of the PDP-8; among them, "Computer Architecture, Readings and
	Examples" by Gordon Bell and Allen Newell is among the most
	complete (and difficult to read).  Considering Bell's role in the
	design of the PDP-8 and the history of DEC, the description in
	this book should be accurate!

What use is a PDP-8 today?

	What use is a Model T today?  Collectors of both come in the same
	basic classes.  First, there are antiquarians who keep an old one
	in the garage, polished and restored to new condition but hardly
	ever used.  Once a year, they warm it up and use it, just to prove
	that it still works, but they don't have much practical use.

	In the second class are those who find old machines and soup them
	up, replacing major parts to make a hotrod that only looks like
	the original from the outside, or keeping the old mechanism and
	putting it to uses that were never intended.

	Last, there are the old folks who still use their old machines for
	their intended purposes long after any sane enconomic analysis
	would recommend such use.  If it ain't broke, don't fix it, and if
	it can be fixed, why bother replacing it?  Both Model T Fords and
	the classic PDP-8 machines are simple enough that end users can
	maintain and repair them indefinitely.