Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?

PDP-10 Revival 151

Lars Brinkhoff writes: "Remember the PDP-10 mainframe, the machine that ran the first version of EMACS and helped foster the Free Software movement? Now a company called XKL, LCC is funding a PDP-10 port of GCC. There's also a project to create a PDP-10 processor in an FPGA."
This discussion has been archived. No new comments can be posted.

PDP-10 Revival

Comments Filter:
  • I guess just because it's cool..?

  • The VAX11 hardware had virtual memory support. It was developed to support VMS, while PDP10 did not. The PDP10 was limited to 256K words of memory (36bit). The 11/780 had a complete 32 bit address space and similar processing speed approximately 1 MIPS.

    My question is how are they going to effectively shoehorn GCC into such a small memory machine?
  • PLUGH and XYZZY to you, eschasi. :) By the way, Compuserve was one of the big 10/20 holdouts where lots of machines ran System 1022 until the late 80's at least. Tatters of the Jupiter project were reportedly purchased and kept (briefly) alive through the financial support of the 1022 base.
  • To all those who asked "Why?" -

    If you follow the links and read the details you'll discover that a company that makes a computer compatible with the PDP-10 is funding this work. In other words they want to sell their hardware and they need more software and they think having a C compiler might help.

    That doesn't sound so crazy to me. Even if it is - it's their money.
  • ...interesting stuff isnt it ?!? If youre interested in historical stuff, check out Stephen Segallers Nerds 2.0.1 - A Brief History of the Internet, or Bruce Sterlins The Hacker Crackdown or Eric Raymonds stuff at etc. When on his site especially check out A brief history of Hackerdom and Revenge of the Hackers...all pretty well written stuff. I can also recommend Peter Wayners Free For All. Am reading it right now, very nice book indeed !!! Regards from Gemany, Thomas
  • The console of MIT-MC, on the 9th floor Tech Square, with a can of coke. pg []

    A CADR Lisp Machine spews its guts, on the 9th floor MIT AI Lab at Tech Square. []

    JSol, RMS, the gerbil, Liz, and MG, at Kabuki in Cambridge. The expression on Richard's face is saying, "I don't know, why do you wrap gerbils in duct tape?" bil-liz-mg.jpg []


  • I went to college at Indiana University Computer Science [] in the years (*cough, cough*). Professor Frank Prosser [], now Emeritus, taught a hardware design course around constructing an "LD-14", which was essentially a cleaned-up PDP-8I, out of basic NAND/NOR gates (although we got to use an ALU chip!). Part of the exam was to bring up FOCAL, which was a DEC BASIC-ish language, and calculate 300! (factorial). Loading FOCAL required fat-fingering in the primary loader, then bringing in the main loader and FOCAL off paper tape at 110.5 baud. In the later years, we had a cassette interface that loaded at 1200 baud. We considered this a huge leap forward in technology!

    As part of the course requirements, you had to extend the machine in some fashion: make an 8E, for example. I ended up adding a boot PROM, which was tricky, since all 8K (12-bit words, not bytes) were needed by FOCAL to run.

    Prosser co-wrote the textbook for the course, which described how to build the thing, with Dave Winkel. Not surprisingly, it seems to be out of print.

    Thank you for bringing back those years. That was one of the best courses I ever took!

  • Actually, it had a major part in the non-free software movement, too. Legend has it Paul Allen write an 8080 simulator on the PDP-10, and that's what he and Bill Gates used to write BASIC for the Altair.
  • I remember when you had to dial the phone and wait for the carrier signal, then slap it down on the teletypewriter and hope you logged in before the mainframe would hang up. Oh the grand evolutionary step up to the portable Silent 700 terminal. Same thing only 250 pounds lighter. Punch cards and paper tape were the shit. No typing in 500 lines of basic, Just code the cards and run em through the reader. Oregon trail was the game of choice. Too bad Apple had to come along and make life easy on everyone. Thats the way it was and we liked it! The weak and nerdy are admired for their computer programming abilities-Homer Simpson
  • Are you the real deal, or just someone posing as Don Hopkins? Not that I expect truth in the answer, anyways...
  • Wow...

    I used a LD-14 as well. And wrote my PDP-8 simulator in software. (This was at the University of Wyoming [] during '94-'96 or so)

    The classes were in undergraduate computer architectures, where the PDP-8 had a special place in one lecturer's heart as the epitome of the Von Neumann computer, with a reasonable (yet small) instruction set. I knew PDP-8 assembly very well, for the first round, and in the advanced class with the LD-14, I got to know the binary op codes pretty well too.

    I hated the PDP-8 at the time... but once I took a class that used x86 assembly, I pined for that sweet PDP-8!
  • In the words of the music group Stxy from their 1980 song...

    Well, I'm a jet fuel genius - I can solve the world's problems
    Without even trying
    I have dozens of friends and the fun never ends
    That is, as long as I'm buying
    Is it any wonder I'm not the president
    (He's not the president)
    Is it any wonder I'm null and void?
    Is it any wonder I've got

    Too much time on my hands, it's ticking away at my sanity
    I've got too much time on my hands, it's hard to believe such a calamity
    I've got too much time on my hands and it's ticking away from me
    Too much time on my hands, too much time on my hands
    Too much time on my hands

  • Absolutely not. First of all, they're not called "PDP-10"'s, they're called "DEC-10"'s. Second of all, a "PDP-11" is a TOTALLY different kind of machine than a "DEC-10", which is definitely a 36 bit mainframe.


  • Sorry, I've had a string of discussions over the past few days where nobody understood what anyone else was saying very well :)
  • Actually, both VMS (up to the current version, 7.2), and FreeBSD (believe it or not!) support CTRL-T today, as you describe. Yes, it is very useful for seeing if a program is hung.

    Of course, Linux and Windows do not support this feature (big surprise).

    I suspect that the feature has gone out of fashion as CPU speed has gotten faster and there is generally less of a need to wait for batch jobs. That's no excuse not to support it, of course.
  • ..are available at
    ... The simulator itself is in the sources directory (and this covers several of the PDP models!), and the OS choices are in the software directory.

    Possible Operating Systems include RSTS/E, Digital UNIX, etc.... :)

    Just another computer geek....
  • Here's another MIT page [] with some small B/W photos

  • Well, there's somewhat of a hierarchy for 'hating'. The top of the ladder is PDP-10/DECsystem-20 people who hate VMS. Then VMS people hate Unix. In turn, Unix people hate Linux. At the bottom of the food chain, Linux people hate Windows.

    At least some PDP-10 types bypass VMS hating and go directly to Unix hating. For example, Mark Crispin (the author of Pine) is probably the most militant Unix hater in the world, but seems to like TOPS-10/20 as well as VMS.
  • by VAXman ( 96870 ) on Wednesday January 17, 2001 @04:06PM (#500325)
    May I ask what you mean by "real OS". Could it be Windows 95?

    No, I was thinking along the lines of ITS or TOPS-10. I guess you are really new to copmputers since (a) you don't know the native software of a PDP-10 and (b) you aren't aware of any OS'es besides Linux and Windows 95.

  • by SimHacker ( 180785 ) on Wednesday January 17, 2001 @01:25PM (#500326) Homepage Journal
    "If you're not playing with 36 bits, you're not playing with a full DEC!"

    -Doug Humphrey (aka DIGEX), pissing off the Vax weenies at DECUS


  • Being ever optimistic, we're unilaterally lowering fetters constraining limitless, unrestricted systems technology, even retro-computing.

    It almost makes sense, if you read between the lines...

  • From the sponsoring company's web site, it looks like they're targetting the telecommunications industry which it appears still uses a significant number of PDP-10s as telco switches. (Perhaps "switch controllers" would be more appropriate?)

    In any case, telcos tend to be *very conservative* about introducing new hw/sw, which is why they may still be using their tried-and-true PDP-10 packages. Which is also why I don't see what the point of "new software" written in C would be: if the telcos wanted to try new stuff, they'd be trying new hardware, too. Wouldn't they?

  • On the other people are porting to the Commie64, and Amiga
    gcc (and lots of other GNU/BSD development software) has been ported to the Amiga for a long time. Check out []


  • When I was an undergrad freshman/soph. year, i worked for a small molecule x-ray crystallographer (this was like 88..,89.. (postdoc now :)).. basically my job was to write a little viewer for him in err dos on an xt (It was the new an upcoming error of pc's that were going to take the ancient beasties over !) Anyway, the cool thing about working for him was that he did his data collection (the computer that sits there hooked up to the x-ray machine and collects data) w/ a pdp-8.. the input was this teletype .. the thing was this giant monster w/ huge cards and 8" floppy disks.. even at the time it was hard to get replacement parts when things went down... dec really had the educational kids secured.. they seem to still have all the physics kids w/ their alpha workstations but it really does seem like that up and coming era of pc's really took over everything including people who like burning cpu cycles for cheap..

  • What version of Unix ran on the -10? To my knowledge, one never did. (it certainly would have been a waste of an excellent machine).
  • Doesn't include PDP-6 or PDP-10. But it does simulate all the DEC 12-bit, 18-bit, and 16-bit machines. I've run RT11 and RSTS/E on the PDP-11 simulation.

    The directory on the DEC FTP site is no longer maintained; the current simulator web page is here [].

  • I can't say I'm suprised... Microsoft probably has made use of GCC at some point for R&D.
  • I'd like to find a used copy of that book. A search didn't turn up anything matching the author's names you've given; can you provide an exact title or other details about the book?


  • I think it would only take one a couple of weeks to code up the PDP-10 architecture in VHDL and target an FPGA.
    Not bloody likely. All of the software simulators required well over a year of development time. And you're not going to convince me that implementing the same complexity in hardware (even with an HDL) is *easier* than in software.

    If you want to give it a try, get the DECsystem-10/DECSYSTEM-20 Processor Reference Manual from my web site []. Prove me wrong! Please!!

  • Would you mind letting me know what company? I know of two companies making PDP-11 performance upgrades, but I didn't think anyone still made such things for PDP-10s.


  • The VAX11 hardware had virtual memory support.
    The PDP-10 hardware had virtual memory support, in the KI10 (1972) and all following models. And in some regards, its virtual memory was better designed. But the VAX developers deliberately did NOT want to do anything the same way the PDP-10 did it, regardless of whether the PDP-10 way was good or bad.
    It was developed to support VMS, while PDP10 did not.
    PDP-10 users consider it to be a huge advantage that the PDP-10 does not run VMS.

    You could equally well say that the PDP-10 was developed to support TOPS-10 and TOPS-20, and the VAX was not.

  • Lars Brinkhoff is indeed working on a port of GCC with our backing, to run under Tops-20. Until now, we have used the old KCC compiler--but that was enough for us to port Perl 4.036, a number of X clients, and GNU Emacs 18.59, on our Toad-1 System.

    However, Hemos' posting makes it appear that Niel Franklin's FPGA implementation of the PDP-10 architecture is also supported by us; that's really a separate effort by an individual. Further, what he is interested in doing is a KI-10 processor, to run Tops-10. You can see the discussion of his project in alt.sys.pdp10 on your nearest archiving news server.
  • You misunderstand me, I didn't say it was *the* most important peice of code, I said it was probably *one of* the most important peices of code... not *the* most important peice
  • Give me a PDP-11/70
    I'm not *giving* them away, but I do have several "extra" PDP-11/70s for which I'm willing to entertain serious offers.
  • The PDP10 was limited to 256K words of memory (36bit).
    Not so. The KL10 supported 4 Mwords of physical memory, equivalent to 18 Mbytes in modern term. Quite impressive for 1975. And the per-process virtual address space was 8 Mwords.

    When the VAX-11/780 was shipped in 1978, although it had a larger address space (512 MB physical, 2 GB virtual), the maximum amount of physical RAM it could be configured with was 2 MB. This limit was later raised, but it shows that of the PDP-10s and VAXen available in the same time frame, the PDP-10 was clearly superior in most regards.

    and similar processing speed approximately 1 MIPS

    The KL10 benchmarked at more than twice the performance of an VAX-11/780 on most workloads.

    Pretty neat how the 1975 machine was a significant improvement on its 1978 "successor"!

    In fact, the VAX-11/780 performance was so disappointing that they had to cancel the PDP-11/74 (four-processor SMP version of the 11/70), because it was expected to be much more cost-effective than the VAX.

  • If you're asking what OS Brinkhoff's GCC port is for, he's writing it for Tops-20, since that's what we provide on the Toad-1 System.

    If you're asking about Franklin's FPGA implementation, he seems to be most interested in Tops-10. TENEX and ITS are remote possibilities; even more remote is Tops-20, since that was only ever run on KI-10 hardware internally at DEC (while the KL-10 processor was still being designed).
  • by Eric Smith ( 4379 ) on Wednesday January 17, 2001 @04:28PM (#500343) Homepage Journal
    they're not called "PDP-10"'s, they're called "DEC-10"'s
    The CPU is a PDP-10. Which came in several variants over the years, the KA10 (discrete transistors, 1968), the KI10 (TTL logic, 1972), the KL10 (ECL logic, 1975) and the KS10 (TTL and AMD 2900 bit slice, 1978).

    The complete system is called a DECsystem-10 or a DECSYSTEM-20, depending on whether it ran TOPS-10 or TOPS-20.

  • the PDP10 retained traditional, non-reentrant "return jump" instructions, where the first word of your subroutine was overwritten with a jump to the point following the call. To return from sub you jump (perhaps indirectly) through address 0 in your subroutine.
    Actually, the PDP-10 offered a variety of subroutine call instructions, of which that was one. The more commonly used PUSHJ and POPJ instructions implemented a stack-based calling convention, and supported full reentrancy.
    though reentrancy and auto variables generally were a novel feature.
    Only in FORTRAN.
  • PDP-10 fans (e.g. TOPS-10) are possibly the most intense Unix haters around (with possible exception of VMS). Will it have a real OS, or be stuck with Linux?
  • by Eric Smith ( 4379 ) on Wednesday January 17, 2001 @04:32PM (#500346) Homepage Journal
    she was telling me at one point about the PDP-10's they still used.
    they liked them because they were very tolerant of temperature extremes.
    Not likely to be a PDP-10, then. The PDP-10 CPUs were finicky and required cooling. And except for the KS10, they would take up about 30 square feet of floor space for the CPU alone (no memory or peripherals). And the CPU uses about 12 KW of electricity (more for the memory and peripherals).

    Your friend was much more likely talking about a small PDP-11. Even the big PDP-11s (e.g., 11/70) were not suited to running in extreme environmental conditions.

  • are doomed to live in an infinite loop.

    The PDP-10 had one of the most wonderful instruction sets imaginable. Consider:

    1. Using a single, 36 bit word, you can have the lower half-word be the address (2^18 36bit words) and the upper half composed of fields indicating byte size and offset in the current word. Combine this with wonderful instructions like Increment and LoaD Byte and you have arrays of arbitrary-sized strings.

    2. JFFO! Jump on Find First One. Although originally put in to help sell machines to the telco's (it is a really fast way to find the next available line), it is also a memory-allocator's dream.

    3. "being able to reference them as absolute memory locations is of dubious value." Use your imagination! I had a roomate that wrote an amazing search program that first built a state table and then loaded the code that executed it in the registers. It only dropped into "normal" memory when it got a hit -- blazing!

    And did you ever see a machine with a speed dial on the main console? On the KA-10, you could slow the machine's clock down to about an instruction every few seconds and watch the blink'n lights while you debugged. Especially impressive when mated to a BBN Pager Box.

    Speaking of languages created to exploit the 10's instructions, remember SAIL ... ahhhh what a language. Especially LEAP -- an associative data store that stored 3 item numbers in a word (max 4090 items). It was weird and it was fast.

    Extra point question: What does SAIL stand for? Hint: It does not stand for Stanford AI Lab/Language.

    Whew! Taking a high-speed tobagon ride down memory lane, when people wrote self-modifying code for the kernel, languages were designed at 2am on drugs and rock-and-roll (they probably still are), and the only thing you couldn't do with a computer was pick it up.

    Portability? We don't need no steekin' portability!

  • Isn't it strange to think that the computer that played a major part in starting the Free software movement never had what is probably one of the most important peices of code from that movement ported to it?

    Just thought it was kinda interesting/strange...
  • The "fast registers" were optional on both the PDP-6 (166 processor) and the KA10. Reportedly no KA10s were ever shipped without the option.
  • Can you look up the part number (probably EK-something or DEC-10-something) and date? I've got the last version scanned on my web site [], but it might be interesting to scan older ones for comparison.
  • How mant l33t cr4x0rz have tools to crack VMS boxen? Security through obscurity rules!
  • Well, since they are implementing the processor in an FPGA, I really don't think it'll come down to _really_ slow speeds or refrigerator sized casings as some have suggested.

  • The original PDP-10 architecture provides 256K 36-bit words (roughly 1.25MB) of address and 16 36-bit registers. That's on the Model 166 processor (PDP-6) and the KA-10 processor (PDP-10). Besides the OS from DEC, ITS (MIT) was developed on the PDP-6; TENEX (BBN) was developed on the PDP-10 (with a pager designed by BBN).

    The KI-10 processor (where the name changed to "DECsystem-10" and the OS got called "Tops-10") provided 22 bits of addressing (4MW) to the operating system, which limited user processes to 256KW.

    The KL-10 processor (originally planned to run *only* a version of TENEX named TOPS-20, with the computer to be called a "DECSYSTEM-20") also offered 22 bits of addressing in hardware; Tops-20 v4 offered 23 bits, v5.1 made this available in user programs.

    The XKL-1 processor (in the Toad-1 System) offers a full 30 bits of addressing (1GW = 4.5GB). Even Linux would fit, if it were needed...

    BTW, Dennis Ritchie has stated in print that the PDP-7 was not the original choice for the implementation of Unix, but he couldn't get Bell Labs to spring for a PDP-10.
  • Anyone who has a system running Tops-20--besides the Toad-1 System from XKL, there are several PDP-10 emulators being written, one of which is already running Tops-10 and dying someways into the Tops-20 boot code. That's who will use this version of gcc.
  • Just a minor correction - TENEX isn't a "UNIX-alike for PDP-10s". Actually, TENEX looks an awful lot like TOPS-20, and after DEC purchased the rights to it, became the core of what eventually became TOPS-20. TENEX itself only ever ran on the KA10 with the BBN Pager box. There was a version called "KI-TENEX" that was targetted to the KI10, but I don't remember if it was ever finished. Oh, yeah, TENEX also ran on MAXC, which was a clone of the KA10 that was done at Xerox PARC, and a modified TENEX ran on the Foonly machines (which were PDP-10 "mostly compatible" systems).

    Speaking of Foonly, it's worth pointing out that the Foonly F1 (and I do mean the F1 - only one was ever built, derived from the work of the Stanford "SuperFoonly" project) was used to generate the animation for "TRON", "Flight of the Navigator", and other movies.

    Anyway, if anyone knows the whereabouts of any copy of the TENEX software still in existence, please let me know - I've been looking for quite a while now, and everyone who I thought might have it, doesn't ...


  • The various PDP-10 CPUs did have backplanes, but not in the sense of having a general-purpose bus that you could simply plug peripheral cards into. For instance, the KL10 CPU backplane has about 54 slots, each of which is wired for a specific card.

    You're probably thinking about the KA10, which operated asynchronously. This made debugging hardware problems easier, because if a pulse got lost the machine halted and you could examing the lights to see intimate details of what it was doing at the time.

    By comparison, the KI10, KL10, and KS10 are more conventional synchronous designs. If a logic error occurs, they just keep chugging along. By the time anyone notices that something is wrong, the exact conditions that caused it are long gone. Just like your modern PC.

  • ...a 1200bd was my first. My folks wouldnt buy me a 300bd one, and by the time I had saved enough - the first 1200 came out. I was the hero of the neighborhood for a while...everyone and his brother wanted to be my friend ;-)
  • by Eric Smith ( 4379 ) on Wednesday January 17, 2001 @04:51PM (#500358) Homepage Journal
    The last PDP10 that was actually being used was removed from service 3 years ago.
    False. Al Kossow and I *personally* deinstalled one last October, which had been in active use in for school district administration until September. It's currently patiently waiting for me to win the IPO lottery so I can run it again.

    When we unloaded the machine we were somewhat pressed for time, but Mike Cheponis managed to take a few photos [].

    There's apparently another 2065 still running in a school district in or around Boston.

  • by eschasi ( 252157 ) on Wednesday January 17, 2001 @04:56PM (#500359)
    I have fond memories of the PDP-10, a machine on which I did far too much assembler hacking. Not to mention editing in TECO, debugging with DDT (dynamic debugging tool), and playing Adventure over a 300-baud line on a DECWriter (a paper trail was worth its weight in gold for that game.) A year of programming in BLISS-10 was great preparation for my first exposure to C.

    We (ADP Network Services) had a C compiler for it back in late '82 or early '83. We'd started doing some UNIX work on 8086s, liked it and C, and management wanted to know if we could back-port some of our C stuff to TOPS-10. BLISS-10 seemed kind of an existence proof that C was possible for PDP-10s. So fella named Don Wakelin ported one from (I think) a Harris mini. We picked that one because the Harris had 18-bit words and the PDP-10 had 36.

    36 bit words, 18-bit word addresses, and bit-addressable memory made for a rather, er, idiosyncratic C compiler. We chose to use 7bit characters (a stock PDP-10 type), which meant each word had one bit left over. If you think the assumption that (sizeof)* == (sizeof)int broke a lot of programs, you should *see* what happens when characters weren't 8 bits and were immutably unsigned. For the record, most ASCII data on PDP-10s was stored as 7bit characters packed five per 36-bit word with one bit left over.

    The only reason that worked well (and yes, it worked quite well) was because memory on the 10 was bit-addressable. It had these peculiar things called `byte pointers'. An 18-bit word address was stuck into a 36-bit word. The other 18 bits indicated the number of bits offset into the word, and the number of bits to be obtained on a fetch. Good byte pointer users could fetch 1 bit, then the next 5, then 3, etc, etc. Brought a whole new level of complexity to incrementing your pointers. Most folks just used them for characters, tho, setting fetch size to 7. Machine-level instructions did the heavy lifting on pointer incrementing - take code like

    char *i = "abcefg" ;
    char c;
    c = *i++ ;

    The first line caused a byte pointer to be created with the address of the word containing the start of the string. The offset was 0, the fetch size was 7. The last line was done with just two assembler instructions. One fetched 7 bits from the address pointed to into a register and incremented the offset portion of the byte pointer by seven bits; the second just stored the register contents into the variable c. After you fetch the fifth character using i, the auto-increment instruction added 1 to the 18-bit address and reset the offset to 0.

    Address zero was addressable -- it happened to be register zero. In fact, all the registers were addressable as 0-15. But when the null pointer successfully loaded and stored data, programs did a whole 'nuther set of interesting things.

    Another fellow at ADP successfully headed a project to port University Ingres to TOPS-10. He told the most amazing horror stories for years afterwards...

    And will the true story ever be told of PDP-10 follow-on machine, the Jupiter? It was supposed to be a truly huge (for the day) PDP-10, intended to compete with the IBM System 370. It was constantly started and cancelled and started and cancelled. We (ADP) finally concluded that it was just a feint so we wouldn't switch to some other hardware before DEC got the equally-late Venus project done. When Venus finally did ship, DEC called it the VAX. At an East Coast SF convention in the late '80s I bumped into someone wearing a faded `36 bits forever' t-shirt. When I asked what happened to the 10 projects, she refused to answer and looked *really* pissed.

    There have been a number of PDP-10 clones built over the years, at least two companies are still making them. One of them is the company sponsoring the port; big surprise, eh? The target customers are folks who wants to run TENEX (UNIX-alike for PDP-10s) or ITS (Incompatible Timesharing System), MIT LISP refugees, and hardcore TOPS-10/TOPS-20 sites, maybe including ADP.

  • >The PDP-10: 25 MHz in 1974! Umm... like that means that its as fast as my 486/25 from 1990, right? I mean, 25 MHz is 25Mhz, isn't it?

    No. It depends on the size of the wheels.

    >But seriously folks, anyone have any idea about the comparative speed of the PDP-10? How well did these things scale up?

    High for it's time. Particularly well for it's time

    >Anyone tried using gcc to compile a linux kernel on it? My guess would be more in the days than the hours category.

    Probably not a good guess. It has, however, been 20 years since I used one.

    Zero Sum (doesn't amount to much)

  • "Len retired and wanted to make PDP-10 computers."

    You can call Len a lot of things, but "retired" is not one of them. As for the PDP-10 comment, Len wanted to build a
    TOAD ("10 on a desktop") in the 70's, when he worked for DEC; cisco Systems' original business plan was to do just

    Len's never stopped doing what he's interested in doing.
  • the Decsystem 10 CPU (KL10 model) was a 6ft high blue cabinet 6ft wide an about 30" deep containing a 19" wide section that had the pdp-11-45 frontend/console machine and a 48" wide section that held the CPU/IO/MEM inteerface cards ( DEC hex height cards) topped b4 10" fans and an air duct that vented out the top front of the cabinet

    memory/diskcontrollers/tape controllers /asyncIO(more PDP-11/45) controllers were all in additional 6 foot high blue cabinets

    old Decsystem 10/20 service engineer

  • by Anonymous Coward
    Arcane architecure? NO SHIT!!

    Start with a 36 bit word and 18 bit addresses. Add sixteen "accumulator/index registers" and locate them at (octal) addresses 0..17 in main memory. Actually 16 GP registers is a decent complement, though being able to reference them as absolute memory locations is of dubious value.

    Could be worse. 32 bit words are great for packing that limited 6 bit character set, once so popular in the DEC world: all the letters and numbers plus (IIRC) '$' and '.'. Two words give you 12 characters, more than enough for unique identifiers in any serious programming effort. "ASCII" then was generally a 7-bit "Half-Ascii" encoding to match up with most DEC unit record equipment at the time; 5 chars per word with a bit to spare. Imagine all the applications that were tempted to muck with that spare bit! Eight bit bytes were possible but not preferred because they wasted 4 bits in each word, but that led to the obvious solution: 9 bit character codes -- seven bits plus ESC and META, thus inevitably leading to EMACS.

    Only thing that made this character endoding workable was the PDP10 had special so-called "byte" operations, where you could manipulate "byte" fields consisting of arbitrary bit ranges within a word. Further you could index bytes in packed arrays of such stuff.

    On the plus side, the PDP10 was one of the first CISC minicomputers; it had a fairly complete instruction set, including a full complement of arithmetic and test operations, plus stack maniuplations and indirect addressing modes. This is probably why many early users loved it so -- it was the first mini where assembly language programming was NOT a royal pain in the ass.

    On the other hand, the accepted wisdom these days is that nice, uniform RISC machines are a better match for compiler writers. Nevertheless, countless programmers devoted innumerable man years to compilers that tried to exploit every detail of the PDP10 instruction set.

    In particular, The '10 had instructions to push and pop PC+status to/from a stack. However, there was no dedicated stack register. Rather the language designer presumably would designate one from the GP registers.

    Further, the PDP10 retained traditional, non-reentrant "return jump" instructions, where the first word of your subroutine was overwritten with a jump to the point following the call. To return from sub you jump (perhaps indirectly) through address 0 in your subroutine. Although it makes re-entancy impossible (an infinite loop))this was a common mechanism in the old days. DEC10 Fortran compilers used this mode. Other languages used a variety of other calling conventions, though reentrancy and auto variables generally were a novel feature.

    Of course, back in those days, 99% of computer cycles and programmer energy went to noble "systems" work. Programmers generally avoided working on ucky user applications.

    Probably more than anything, the PDP-10 deserves credit for hosting a lot of the original development for the computer languages BLISS [] and BCPL [], precursors to C [praise be to Ritchie].

    For further reading, check out this PDP10 instruction reference [] in one try. Or read more about PDP10 History [] generally.

    --JayBee [still waiting for a password]

  • but I'm not sure where the money would come for such a thing, and of course we are all so paranoid with our script kiddies and suchlike that there may be no room in the world for the ITS culture anymore.

    Sad, that :-(.

    (former ITS user many years ago).

  • That's not so bad...we had to build a PDP-8 from scratch and then run DEC diagnostics on it to see if we got it right. The final exam consisted of the lab assistant breaking your machine in 5 or 6 ways and you had to fix it in 2 hours. Probably the most frustrating, but rewarding, class I ever took.
  • Because the PDP-8 was such a small machine (8bit!) ....

    The PDP-8 was a 12-bit, word-addressed machine.

  • Well, TOPS-20 probably had the most user-friendly command line around, although I understand it made even simple command line utilities a bear to program. Its cool interface lives on in Cisco routers, so you could say it's had a better run than most people remember.

    Tis true that many of the ideas were replicated in Bash and other shells, but for some reason I never felt they had as cool a feel as TOPS-20 or Cisco.

    Unix is a toy, but that's its greatest strength, actually: It can be disassembled and reassembled into anything you want. That's why it survived instead of TOPS-10, Multics or Lisp Machines, all of which I've used and (at the time, anyway) preferred to Unix.

    I actually don't quite understand Lisp machine nostalgia - when I used one in the late 70s, it was slow as a pig. I hate to be anti-trendy, but I actually preferred using the old AI PDP-10 at the time.


  • When I first wrote a computer program (c. 1975) it was hand-written on coding sheets, then punched up on cards and later entered into 'the machine' through a card reader! You got the printout back a couple of days later. If there were any errors you had to go through the whole rigmarole once again.
    This was using a version of BASIC that anyone who is used to the current Visual Basic (any version) would pull their hair out at! Variables were limited to 2 characters and you had to use "LET". The only use of windows in those days was as a useful way of passing the trays of cards from the data keying area through to the operators in the 'inner sanctum', the computer room! How things have changed in the quarter century or so since then! We had to carry the rolls of paper tape from a digitizer in one department to the computer centre where there was a tape reader. After I started work in the early 80's The Mainframe was somewhat limited. The disks were large removable hard drives holding between 5 and 30 MB) and resembled small spin dryers. They made a noise a bit like spin dryers too when you started them up!

    And do I miss any of the above - not a bit. Give me a good linux box with KDE any day!
  • NO! 25Mhz is NOT the same on all processors; you cannot compare by cycles alone! You need to take lots of things into account, like cycles per instruction (Instructions per cycle if your superscalar), memory access speeds, variety of instructions... The clock speed of a microprocessor is a wildly inaccurate way to compare different processors. Hell, it's even inaccurate in comparing Intel processors to AMD processors of the same archetecture!

    For example, a 700mhz processor that has a CPI of 10 would be slower then a 100Mhz processor with a CPI of 1, however if you had a particular operation that could be performed in one instruction on the 700Mhz Processor, but took 10 instructions on the 100Mhz processor, then the 700Mhz processor would still be faster for that particular task. It's not a simple as counting cycles.
  • Government is the abdication of your responsibility to a faceless bureaucracy. Anarchy(absence of government)is the acceptance of responsibility for yourself

    Sure, but haven't you heard that any sufficiently organized society is indistinguishable from government?

  • in their day I think the TOPs guys hated the VMS guys more - because the vax ended up killing the 10/20 line and both groups were kind of competing for DECs internal R&D attention - back then Unix was a bit of a side show - its 'rise' sort of happened just about the time the 10/20 line was axed so there wasn't a lot of overlap
  • It seems like anything anyone does these days that doesn't serve a useful purpose gets this bewildered response. I don't understand what could prompt that kind of thought. I think it is the same sort of people that run Gnome because they think Athena is "ugly" (what's ugly about it? boxes and text... how ugly can that actually be?).

    I am not saying I think this whole "why" thing is necessarily bad. I just don't get it. It sounds fun to get gcc working on a pdp. It's like Doom on a digital camera; it's funny, it's art; it's a good time.

    More, better, faster, that's cool; I like that stuff too. Still, part of me wants to write a tcp stack for my trs-80 model 100.

    Is that really so wrong? Besides, it will harm many fewer people than adding skin support to every program on the desktop.
  • Thompson and Ritchie wrote the first version of UNIX on a PDP-11. I just read the paper last week.

    You mean the paper that starts out with "There have been three versions of UNIX. The earliest version (circa 1969-70) ran on the Digital Equipment Corporation PDP-7 and PDP-9 computers."?

    The first version Ritchie was involved with might've been one of the PDP-11 versions, but the very first UNIX was on the PDP-7 (the -9 was compatible with the -7; both were 18-bit machines, along with the -15).

  • Sounds vaguely familiar.... Back in the early 80's, I had a 300 baud manual carrier modem, where you dialed the phone, waited for the carrier, and then flipped a switch to 'recieve' and hung up the phone. If you wanted to upload a file, you had to coordinate with the person on the other end and flip the switch the other way. (I don't remember the exact proceedure... A few months after that modem, I got a brand new shiny 1200 baud modem... Such blinding speed! 100k files in under two hours!)
  • They're not even really called PDP-10's: the real name is DECSYSTEM 10.

    Well, they were originally called PDP-10s; I guess the DEC marketoons (or should that be "Digital marketoons"? :-)) decided to change the name, maybe because "PDP" was what they called minicomputers, but the '10's were Systems or something such as that.

  • ITS? C'mon, that's just a bit too primitive.

    TENEX, and its twin TOPS-20, were way cool. Compared to Unix, it's like the difference between driving a Mercedes and driving a Willys Jeep.

  • There's a great Macintosh-based PDP8/e simulator here []. It even has options to slow the CPU and I/O devices down to original speed. (I used to think that the 110-baud ASR-33 was blazing - sure could type faster than me!)

    My Mac's been dead for a few weeks, but when it comes back up I plan to port the first game I ever wrote (er, ported), Lunar Lander, to it. That was back in '69...


  • You accidentally overunderstood me. What I said was a JOKE!!!

    Stallard Richman, indeed.

    It was a parody of RMS's classic "Why you should not use TCL" diatribe.


  • you'll never know...
  • Good point. I once did a contract for a UnixWare vendor, which is as close to "original ATT Unix" as you will see in the real world. Almost all their customers were Telcos who needed stuff to run on AT&T/Lucent hardware. Except this hardware was all Intel-based. When AT&T was still a monopoly, they preferred their own 3Bx CPUs. Has anybody cloned those?


  • Very serious.

    No-one thinks only Microsoft lackeys hate Unix, except for inexperienced newbie B1FF3R5 who've never used anything but Linux, so they don't have anything to compare it with.

    You shouldn't be using Linux if you don't know what sucks about it. The same goes for Windows or any other operating system. k.html [] tml [] -time.html []


  • by swinge ( 176850 ) on Wednesday January 17, 2001 @01:57PM (#500385)
    some interesting hacks on the PDP-10:

    because it was a 36bit machine, it was particularly good for LISP, or better than the alternatives. Because you could divide a 36bit word into two 18-bit pointers, you could implement a LISP cons cell in one word, and thus handle cons cells fairly quickly. The same hack with competing 32bit machines, 16bit ob references just didn't provide a big enough data space.

    The PDP-10 had its registers mapped into memory as the first 16 words starting with 0. But, being registers, they were really fast. So the text editor TECO (daddy to EMACS) would "compile" a search command into a tiny little program stored in the registers. Executing the code in the fast registers made for really quick (for the time) text searching.

  • by bpechter ( 2885 ) on Wednesday January 17, 2001 @01:43PM (#500388) Homepage
    They weren't lightening -- but they scaled well.
    They ran TOPS-10 or TOPS-20 and did real nice SMP with more than 3 cpu's supported (even back in the old days).

    I guess they were in the 1 mips range (KL10) or less (KA cpu, KI cpu, KS cpu) -- but with much more load handling than the 11/780 which really was less powerful than the KL10.

    The TOPS-10 and TOPS-20 operating systems (both were available for the PDP10) were easy to use, friendly and WAS NOT UNIX like in the slightest.

    They handled a ton of timeshared users efficiently and reliably and made IBM take notice of timeshared use. The OS was written in Macro10
    (macro assembler) and the instruction set was RISC-like.

    Microsoft did most of it's development cross developing on this CPU type. (As did DEC -- which used them for emulation of new CPU designs and for cross development of software for the PDP8 at times).

    GCC would be interesting -- remember this isn't just another a POSIX box.

    This is the CPU where EMACS really was born as editing MACROS for TECO (Tape--er Text Editor and Corrector).

    Had Kernighan, Thompson and Richie gotten one of these they wouldn't have developed Unix in the first place.

    These machines were used as some of the first machines on the internet. They were heavy crunching boxes at Western Electric for engineering time sharing.

    Rutgers University had three that I knew of,
    Columbia, Rider College, Johnson and Johnson...

    These were CLASSIC Machines.

    See alt.sys.pdp10.

  • CTRL-T was a godsend to me twenty some years ago. If you are trying to do simulations of landslides and load shearing, it's very useful to know whether the system is hung or if it's just your poorly written program that is running slowly.
  • Indeed. Linux sucks... but it sucks less than any of the other options. Depending on what you're doing, of course.

    Torrey Hoffman (Azog)
  • The machines favored by the crowd who contributed to the "UNIX Hater's Handbook" sucked in their own way. I know: I used most of them, including VMS, Symbolics, and TOPS-10. I don't want to go into a long litany of what is wrong with those other systems. But while those systems had many nice ideas, ultimately, the market decided, rightfully as I believe, that they were simply not cost-effective, efficient, or flexible enough. It may take a tough man to make a tender chicken, but the non-UNIX chickens were as tough and unsatisfying as the UNIX chicken, and a whole lot more expensive.

    Of course, UNIX does have lots of problems. Unfortunately, many of the complaints in the "UNIX Hater's Handbook" are not even particularly interesting because they reflect more the lack of experience of the contributors with UNIX than any interesting shortcomings. For insightful UNIX criticism, don't bother with the "UNIX Hater's Handbook".

    Furthermore, while the contributors to the "UNIX Hater's Handbook" like to complain a lot, I haven't seen much coming from them to actually improve the situation. Maybe Don can provide some links to that kind of work, rather than promoting his book?

  • Oh, heck, I wrote a PDP-8 emulator that ran on the PDP-11. It was faster than a PDP-5 (the PDP-8's compatible predecessor).

    I'm not kidding ... sorry, it's not available, I wrote it 28 years ago.
  • Could it be Windows 95?
    Windows 75, actually.
  • Greg Titus wrote a compiler tha ran on the decsystem 10 and DECSYSTEM 20's. Sold it to Digital back in 1985 or so for lots of software for the TOPS-20 systems we had at New Mexico Tech at the time.

    This compiler made it onto a DECUS tape. However, since it predated ANSI-C, it doesn't implement ANSI, but only K&R. Not a bad compiler for its time and it launched Greg's career. He's been a compiler guru ever since then.

    Warner Losh

  • The most important piece of code of the Free Software movement originated on the PDP-10: Emacs.

    GCC came about later as a means to compile Emacs (once it was rewritten in C instead of Teco). CGG wasn't intended to become so popular, or even to be used by human beings -- it just kind of got out of control.

    If you don't believe me, here's what Stallard Richman himself has to say:

    Why you should not use Unix []


  • There are, after all, other OSes out there.
    • The Unix-Haters [] largely come out of the community of users of Lisp machines, with a few "X haters" that preferred NeXTstep and NeWS;
    • You probably don't work with mainframe folk; they are pretty desparaging of Unix-like stuff as being "toyish;"
    • VMS users are a similarly proud (albeit seemingly fading) group that generally aren't big fans of Linux
    • Then there's Multics ... []
    • Fewer people remember GECOS, [] Stratus, and such...
    • PDP-10's ran such notable OSes as TOPS-10, ITS, all vastly not Unix.
  • But, being registers, they were really fast.

    Unless, of course, you had a KA-10 without the fast registers option, in which case the registers were in core. (Did the PDP-6 have the registers in core, or were they flip-flops?)

  • by localroger ( 258128 ) on Wednesday January 17, 2001 @02:16PM (#500409) Homepage
    Not very. The PDP-10 had magnetic core memory, which means it could not have cycled much faster than 1 MHz. It also did not have modern features like pipeline caches, etc. all of which would have required an astronomical number of the low density silicon chips available at the time. I used a DEC System 10 at university. It had a massively multiplayer (by those days' standards) Star Trek game called DECwar. If you have ever played the original text-based Star Trek game you know what this looked like, otherwise you cannot IMAGINE how primitive it was; yet the engineering students would spend hours after hours playing this thing. Simple as it was, with a few dozen users on the system the task-switching delays were *very* noticeable. IIRC the our mainframe had 256K of RAM, then considered an astronomical amount, and the 5-30 Mb "layer cake" cartridge hard drives someone else mentioned. It was in a glass room so you could ogle it and the observant priesthood of the computer dept who serviced your Hollerith card batch jobs. It was 6 or 7 cabinets, several with rows of incandescent pilot lights displaying the current address and register. You could, with practice, learn to interpret those flickers and tell how fast it was switching jobs and whether one job was hogging the machine. It was that slow. It would have been much slower if programmed in today's style. But almost all DEC software was written in a macro-assembler style language which resulted in very efficient code. Although the basic core was RISClike most of those old CPU's all supported processor extensions in the form of cards added to a rack, which could actually add microcode and new registers to the CPU. (Not at all like the FPU on an x86, which is more like an outboard processor.) Yep, those were the days; when you signed up for class you were allotted a certain number of seconds of computer time and if you used them up (difficult, but possible) your account shut down automatically. The CPU actually kept track of your real usage as tasks were swapped, and the OS bailed your app if it looked like it had gotten hung in a loop or something. And then there was the joy that is FORTRAN -- such a great language that I used to prewrite and debug everything in BASIC before converting it over. Yep, definitely memories to savor as I pat the side of my 450MHz pentium.
  • by Anonymous Coward
    The last PDP10 that was actually being used was removed from service 3 years ago. who will use this version of gcc? isn't the effort better spent somewhere else?

    on another interesting note, i saw a PDP10 programming manual direct from DEC in a used book store a while ago and couldn't resist picking it up. i'm sure i'll be able to sell it on e-bay as a collector's item in a few years. or, hey, wait. maybe i could sell it to the gcc devlopers! hmmm....
  • I'm having difficulty understanding why this project is underway. Sure I can understand doing it for nostalgic reasons, but there is'nt a market demand for it (Not to my knowledge). I havent heard of many companies running PDP-10s who need to backwards compatibility with old apps. From what I understand the PDP-10 had a rather primitive instruction set.
    Maybe Im off my rocker. On the other people are porting to the Commie64, and Amiga (of course those are brilliant platforms... Anyway
  • by FigBugDeux ( 257259 ) on Wednesday January 17, 2001 @01:06PM (#500413) Homepage
    While it isn't a PDP-10, I did help write a PDP-11 emulator, assembler and debugger.

    check it out:

    oh ya, it requires unix or linux, open source too.
  • And now somebody want to spend a bunch of money porting it to an - to my knowledge - ancient machine, why?

    Don't you get it? Let me give you an example. TWM is a perfectly good window manager. Why would anyone use anything else, and why waste developers time working on anything else? Perl is a perfectly good programming language, why are people wasting their time with Python? FreeBSD is a perfectly good OS, why waste time on Linux?

    Because it's fun. There's no better reason to do something, and of all people, I would expect the Slashbots to understand this.

  • Ah, nostalgia... You had floppy disks? I learnt to program on a PDP-8/F, which was the size of two large desktop PC cases and had an ASR-33 teletype for I/O - paper tape or typing/printing only. I was super-impressed when we got a high speed tape reader that could read yards of tape incredibly fast (probably all of hundreds of characters per second).

    It had core memory (non-volatile and you could see the bits with a naked eye), like all machines of those days. Normally this held the bootstrap program, which was all of a dozen or so 12-bit instructions, but every now and then it would get corrupted and you'd have to toggle it in by setting 12 switches on the front panel and flipping another switch to say 'deposit'.

    Compared to this, the PDP-10 was truly a mainframe - the PDP-8 could run operating systems but ours mainly ran BASIC, which ran on the the bare machine.

    I still can't quite work out why anyone is paying for porting GCC to the PDP-10 - I can understand porting GCC just for the sheer hack value, but why would a company pay for this? I don't buy the idea that telcos are still using PDP-10s somewhere - if there are any, the market must be truly tiny and most software would be written in assembler.
  • From k.html:

    "With Forward by Donald Norman, Apple Computer".

    The same people that use a UNIX variant in their new OS....Now that is irony ;)

  • This is a demo TOAD-1 from XKL, alive and well. Someone please mod down that "PDP-10S ARE DEAD WAAAAAH" guy already. kthx
  • A PDP-11 is NOTHING like a DEC-10. They're not even really called PDP-10's: the real name is DECSYSTEM 10. Sheez.

    I just used an XKL TOAD-1 a few seconds ago (but it's been a while since I last logged in, but notice how long it's been up):

    Connected to
    Escape character is '^]'.

    XKLeTen - Tops20 for the Wired World, TOPS-20 Monitor 7(102400)-1
    User Personal name Job Subsys Idle TTY Console location
    ??? 9 FINGER 25 Internet: []
    @login a2deh
    Job 9 on TTY25 17-Jan-2001 2:51PM
    Previous LOGIN: 11-Dec-1998 4:30PM
    You have mail from Mailer at 14-Dec-1998 5:04PM
    XKLeTen@ finger
    User Personal name Job Subsys Idle TTY Console location
    A2DEH 9 FINGER 25 Internet: []
    XKLeTen@ sysTAT
    Wed 17-Jan-2001 14:55:23 Up 931:34:02
    1+6 Jobs Load av 0.01 0.02 0.01

    Job Line Program User Origin
    9* 25 SYSTAT A2DEH (


    Paul Allen and Bill Gates used to hack on DEC-10's, so Paul Allen has set up a nice TOAD-1 for old times sake. Here's some more info on the TOAD-1 []: configuration [] and physical specs [].


  • Um....That's a nope. Thompson and Ritchie wrote the first version of UNIX on a PDP-11. I just read the paper [] last week. :)

    The PDP-11 is much different - it's a "mini" and was a LOT cheaper than the 10. In fact, several of the PDP-10's used 11's as front ends. (from the development site)

  • I saw about four MicroVaxen (I don't know if they were the II or not - big boxes, though) down at Apache Reclamation here in Phoenix. They were all wrapped in plastic, and looked nearly brand new. On top of each was what I guess was a system console - a TRS-80 Model IV...

    I wished I could have bought one of those, but at the time I was in an apartment, and it would've taken up my entire office. That, and the fact that I had no way to unload it off my truck...

    Worldcom [] - Generation Duh!
  • isn't the effort better spent somewhere else?

    Unless you're the one making the effort, then you have no say in where it may be better spent. Same thing we say to people who complain that we ought to be "building a copy of wind-- I mean, a better GUI" instead of porting Linux to our toasters. If you think that there's something else more worthy of work, then do it instead.

  • by ^Case^ ( 135042 )
    Lately there's been a lot of debate over RH7, and the inclusion of an unfinished gcc compiler in it. Even Linus Torvals has been bashing RedHat for doing so. RedHat's answer was, that they were trying to get an up-to-date compiler and couldn't wait for gcc 3.0 to ship. And now somebody want to spend a bunch of money porting it to an - to my knowledge - ancient machine, why?

    Wouldn't it be better pushing some money in to the development of gcc 3.0?

    Or did I miss a point somewhere? ;-)
  • by VAXman ( 96870 ) on Wednesday January 17, 2001 @01:24PM (#500456)
    The PDP-10 was most definitely a mainframe, or at least it was by far the largest computer that DEC made, and it was made expressly to compete with IBM in that space. It has nothing to do with the PDP-11 or -8, which were mini's.

Man will never fly. Space travel is merely a dream. All aspirin is alike.