PDP-8
The PDP-8 was the first successful commercial minicomputer, produced by DEC in the 1960s. It was a 12-bit computer with 4096 words of memory. It had 8 instructions, and one register, the accumulator. It operated at a clock rate of 1MHz, and took 10 clocks for each instruction, so that it ran at 0.1MIPS. It 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 newsgroup alt.sys.pdp8 exists to discuss the PDP-8 computer.
The instruction set had only eight instructions:
- 000 - AND - and operand with AC.
- 001 - TAD - add operand to
(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.
- Group 1 operations:
- CLA - clear AC
- CLL - clear the L bit
- CMA - ones complement AC
- CML - complement L bit
- IAC - increment
- RAR - rotate
right - RAL - rotate
left - RTR - rotate
right twice - RTL - rotate
left twice
- Group 2 operations:
- SMA - skip on AC < 0 (or group)
- SZA - skip on AC = 0 (or group)
- SNL - skip on L /= 0 (or group)
- SKP - skip unconditionally
- SPA - skip on AC >= 0 (and group)
- SNA - skip on AC /= 0 (and group)
- SZL - skip on L = 0 (and group)
- CLA - clear AC
- OSR - or switches with AC
- HLT - halt
/ adapted from example in Digital PDP-8 Handbook Series, Introduction to Programming, p5-12
*200 / set assembly origin (load address)
hello, cla cll
tls / tls to set printer flag.
tad charac / set up index register
dca ir1 / for getting characters.
tad m6 / set up counter for
dca count / typing characters.
next, tad i ir1 / get a character.
jms type / type it.
isz count / done yet?
jmp next / no: type another.
hlt
type, 0 / type subroutine
tsf
jmp .-1
tls
cla
jmp i type
charac, . / used as initial value of ir1
310 / H
305 / E
314 / L
314 / L
317 / O
254 / ,
240 /
327 / W
317 / O
322 / R
314 / L
304 / D
241 / !
m6, -15
count, 0
ir1 = 10
$
External links:
- The alt.sys.pdp8 FAQ
- http://www.cs.uiowa.edu/~jones/pdp8/
- http://www.cs.uiowa.edu/~jones/pdp8/man/
- http://www.faqs.org/faqs/dec-faq/pdp8-models/preamble.html
- pdp8.net has a running PDP8 that anyone can control through a Java applet, plus a webcam to show the results
- Bernhard Baehr's slick PDP-8/E Simulator for Macintosh