ENCYCLOPEDIA 4U .com



Encyclopedia Home Page

Google
  Web Encyclopedia4u.com

 

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.

A wide variety of operations are available through the OPR microcoded instructions. In general, the operations within each Group can be combined by oring the bit patterns for the desired operations into a single instruction. If none of the bits are set, the result is the NOP instruction.
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

Here is an example of a complete PDP-8 assembly language program, written for the PAL-III assembler.

/ 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:




Content on this web site is provided for informational purposes only. We accept no responsibility for any loss, injury or inconvenience sustained by any person resulting from information published on this site. We encourage you to verify any critical information with the relevant authorities.



Copyright © 2005 Par Web Solutions All Rights reserved.
| Privacy

This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article "PDP-8".