|
|
PDP-8
The PDP-8 was the first successful commercial minicomputer, produced by Digital Equipment Corporation (DEC) in the 1960s. 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).
DescriptionThe PDP-8 was a 12-bit computer. In its basic configuration, it contained 4096 12-bit words of core memory but could be expanded to 32,768 words of memory. At its inception, it had only eight instructions, one full register, the accumulator (AC), and a single-bit register, the link (L) bit. The machine operated at a clock rate of 1 MHz, and took 10 clocks for each instruction, so that it ran at 0.1 MIPS. Later machines added a second register (the "MQ" Multiplier/Quotient Register), actual multiply and divide instruction options, and much faster operation.
The PDP-8 was a historically important computer because of the advances in technology, I/O, software development, and operating system design that occurred during its reign.
The earliest PDP-8 model (the so-called "Straight-8") used discrete transistor technology 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, it was smaller and 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 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 was supported called "three-cycle data break"; 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 the new "one-cycle data break" moved 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 transfered 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, source code was often stored on paper tape, read into memory, and saved to paper tape, and later assembled from paper tape into memory. Toward the end of the PDP-8 era, operating systems such as OS/8 allowed a traditional line-mode editor and command-line compiler development system using languages such as FORTRAN and BASIC in addition to assembly.
Early PDP-8 systems did not have an operating system, just a front panel and run and halt switches. Various papertape "operating systems" were developed, as were single user disk operating systems. Toward the end of the PDP-8 era, fairly modern and advanced RTOS and preemptive multitasking multi-user systems were available: a real-time system (RTS-8) was available as were multiuser commercial systems (COS-300 and COS-310) and a dedicated single-user word-processing system (WPS-8).
The instruction set:
- 000 - AND - AND the memory operand with AC.
- 001 - TAD - Twos-complement ADd the memory operand to <L,AC> (a 13 bit value).
- 010 - ISZ - Increment the memory operand and Skip next instruction if result is Zero.
- 011 - DCA - Deposit AC into the memory operand and Clear AC.
- 100 - JMS - JuMp to Subroutine (storing return address in first word of subroutine!).
- 101 - JMP - JuMP.
- 110 - IOT - Input/Output Transfer.
- 111 - OPR - microcoded OPeRations (on/using the accumuator, link, and MQ registers).
A wide variety of operations are available through the OPR microcoded instructions including most of the conditional branch (skip) instructions. In general, the operations within each Group can be combined by or'ing 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 <L,AC>
- RAR - rotate <L,AC> right
- RAL - rotate <L,AC> left
- RTR - rotate <L,AC> right twice
- RTL - rotate <L,AC> 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
ExampleHere is an example of a complete PDP-8 assembly language program – Hello, world! – 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
- [news:alt.sys.pdp8 alt.sys.pdp8 newsgroup]
- 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
- http://simh.trailing-edge.com a very portable simulator for PDP-8, works on virtually any modern OS
- dpa, a portable PDP-8 cross-assembler
This article is licensed under the GNU Free Documentation License at http://www.gnu.org/copyleft/fdl.html You may copy and modify it as long as the entire work (including additions) remains under this license. You must provide a link to http://www.gnu.org/copyleft/fdl.html
To view or edit this article at Wikipedia go to http://www.wikipedia.org/wiki/PDP-8
|
©
2005 Music
Entertainment Network. A Cyprus
Roussos Music Entertainment Company. All Rights Reserved.
Articles
from
Wikipedia
Encyclopedia
are licensed under the GNU Free Documentation License. You may copy and
modify it as long as the entire work (including additions) remains under
this license. You must provide a link to http://www.gnu.org/copyleft/fdl.html.
All text is available under the terms of the GNU Free Documentation License.
All trademarks and service marks including Napster,
Rio
MP3 Player, iRock,
Creative
MP3 Player, iRiver,
Apple iPod
Portable
MP3 Players + iTunes,
eMusic,
Guitar
Center Musicians
Friend, Zzounds
Musical Instrument Equipment Store, BMG
Music Service, Columbia
House DVD Club, eBay,
Amazon,
Netflix,
Jamster,
Gamefly,
Friendster,
Music123
Musical Instruments, Billboard,
MTV,
Yahoo
Launch, Overture
Yahoo Search Marketing, MusicMatch,
Kazaa,
Kazaa
Lite, Morpheus
software, Real
Rhapsody, Bose,
Sheet
Music Plus, Billboard
Magazine, Rolling
Stone Magazine, Walmart
Downloads, Barnes
and Noble book store, CDUniverse,
Tower
Records, MSN
Music, MySpace,
Limewire,
WinMX,
Google
Adsense, Alibris,
TicketsNow,
MusicSpace,
uBid
are property of their respective owners. Music.us has no affiliation with
MySpace
or Friendster,
but offers alternative services. Disclaimer: Uploading or downloading
of copyrighted works without permission or authorization of copyright
holders may be illegal and subject to civil or criminal liability and
penalties. Please buy
music and refrain from any illegal downloading activity. User
submitted free content, including Wikipedia encyclopedia or modification
thereof by end users, do not reflect the views and opinions of Music.us
and are for educational and research development purposes. Our website
offers advanced search for bands and artists bio and albums and browse
options for artist band biographies resources and information. We offer
blogs and community building tools for authors, bands and users. The Music.us
Entertainment Network is web's most comprehensive one-stop shopping, community
networking and education site. Find song lyrics, guitar tablature, posters,
ring tones, free MP3 downloads and hourly updating news feeds on musicians
and any genre style including rock,
pop,
hip
hop, country,
christian,
rap,
classical,
folk,
dance,
latin,
R
and B, blues,
punk,
heavy
metal, alternative,
guitar,
bass,
drums,
gospel,
wedding,
arabic,
jazz,
soundtrack,
world,
reggae,
soul
and more. Privacy Policy
- Site Map
- MP3 - Music Downloads
- Song Lyrics
| |