HP 3000, APL\3000, the HP 2641A APL Display Station, and stuff.

Boris Gimbarzevsky boris at summitclinic.com
Sat Oct 3 02:10:08 CDT 2020

Thanks for putting this out.  Not a system I'm familiar with but did 
play around briefly with APL in 1969 on an IBM 360.

Very nice emulator and managed to get it up and running once found an 
emulated HP graphics terminal.  Pleasantly surprised that emulator 
CPU useage was very small (unlike BasiliskII which runs one CPU core 
at 100% when I run my old Mac programs) and played adventure came 
that came with it.  Last time I played an adventure game of that 
nature was in 1981 and remember thinking how neat it was back then.

>As some people here are aware, I have spent probably too much time this summer
>hacking on J. David Bryan's excellent Classic HP 3000 simulator and trying to
>build up the ultimate classic 1980s HP 3000 system (virtually speaking).
>I started with the MPE V/R KIT that's widely available and expanded 
>that into a
>5x120MB HP 7925 disc system and configured things like the system directory
>size and all the system tables to make a fully functional multi-user server.
>I then set about collecting as much old MPE software as I could find, which
>included Keven Miller's collection of the old Contributed Software 
>Library tapes
>which were conveniently available in SIMH format. This is a huge trove of cool
>stuff including most of the classic mini/mainframe games (Dungeon, Warp,
>Advent, etc., etc.) and even a little game called DRAGONS that was written in
>1980 by a guy named Bruce Nesmith when he was in college and he used it
>to get a job at TSR and went on to write parts of many classic D&D products
>and eventually landed at Bethesda where among other things he was the
>lead designer for another little game called The Elder Scrolls V: 
>Skyrim. I was
>able to track Bruce down and give him a copy of the system with his 40 year
>old game running on it. The CSL tapes also include other amazing goodies
>that people developed and gave away over the years, including a FORTH and
>LISP, as well as most of the system and utility programs that people used to
>run their 3000 shops. It's quite fun to explore.
>I was curious how far we could push the 3000 simulator, so I hacked all
>the memory bank registers to be six bits instead of four bits, and we
>now have a simulated HP 3000 Series III that supports 8MB of memory, 4x
>more than any physical system ever did. I started trying to do the same thing
>for giant disc drives, but MPE turned out to have too much knowledge of
>what the supported disc models look like to make it practical. Bummer.
>Since I met my first HP 3000 in 1980 (40 years ago this month), people would
>talk about what was probably the most rare and exotic HP software subsystem
>ever produced, APL\3000. APL on the 3000 was a project started at HP Labs
>in Palo Alto in the early 1970s. They were likely motivated by the success IBM
>was having with mainframe APL timesharing services. This would be the first
>full APL implementation on a "small" (non-mainframe) computer. It would be the
>first APL with a compiler (and a byte-code virtual machine to execute the
>compiled code), it would include an additional new language APLGOL (APL
>with ALGOL like structured control statements), and it managed to support
>APL workspaces of unlimited size through a clever set of system CPU
>microcode extensions that provided a flat 32-bit addressing capability (on
>a 16-bit machine where every other language was limited to a 64KB data
>Because APL required these extra special CPU instructions that you got as
>a set of ROM chips when you bought the $15,000 APL\3000, and because
>APL ultimately failed as a product (another story in itself) and thus HP never
>implemented these instructions on their later HP 3000 models, I never saw
>it run on a real HP 3000, but over the years we talked about wouldn't it be
>cool to find a way to get APL running again.
>With assistance and moral support from Stan Sieler and Frank McConnell
>and others, I was ultimately able to reverse-engineer the behavior of the
>undocumented ten magic APL CPU instructions needed to get it to run and
>implement them as part of the MPE unimplemented instruction trap and now
>APL\3000 runs again for the first time in ~35 years. Somewhat ironically, this
>implementation method could have been used back in 1980 as I didn't
>actually end up changing the hardware simulation code at all, and it should
>also run (if a bit slowly) on any physical classic architecture 3000.
>So that was cool and all, but what is APL without all the weird overstruck
>characters and whatnot? APL\3000 supports the use of plain ASCII terminals
>through blecherous trigraphs like "QD for the APL quad character, but this
>is hardly satisfying. So the quest was on to find a solution. Back 
>in 1976 when
>APL\3000 was released, there was a companion HP terminal in the 264x line,
>the HP 2641A APL Display Station, which was basically an HP 2645A with
>special firmware and APL character set ROMs that supported all the APL
>special characters as well as overstrikes (the terminal would take 
>and lookup to see if it had a character to represent Y overstriking X and if
>so it would show that on the display, and if that got transmitted to 
>the host it
>would convert it back into the original three character overstriking 
>I briefly looked into the idea of hacking QCTerm or Putty or something, but
>then I found out from Curious Chris that an HP 2645A emulator already existed
>in the MAME emulator system! Since the '41 is basically just a '45 
>with modified
>firmware, and Bitsavers had both the character set ROMs as well as the
>firmware ROMs from a '41, this sounded like it might be easy! There was a snag
>however in that the firmware ROM images that were allegedly from a '41 turned
>out to actually be from an ordinary '45. But we did have the 
>character sets and
>one of the ROMs from the second CTL PCA. I put out a call on the Vintage HP
>list to see if anyone might possibly have a lead on an actual HP 2641A, and
>Kyle Owen responded that not only did he have one he could also dump the
>ROMs for us. So a few days and a few hacks to F. Ulivi's MAME hp2645 driver
>later we now have a functioning MAME HP 2641A terminal emulation, so you
>can experience APL\3000 in all its original glory. I bundled up a somewhat
>stripped down MAME along with my turnkey 3000 setup so both emulated HP
>terminals are just a couple clicks away.
>So that's how I spent my summer vacation (who am I kidding, it's 
>pretty much all
>vacation these days). It has been a lot of fun revisiting all this old
>3000 stuff as
>well as the numerous people I talked to along the way including some of those
>who were around at APL\3000's birth (before my time). It was rather a lot of
>work so I'd like to feel it might be useful to someone in the future
>who is digging
>into this part of history. Because of all the usual reasons, I don't
>plan on hosting
>it permanently until and unless we maybe someday get the licensing worked out
>(the 50th anniversary of the HP 3000 will be in a couple years so maybe people
>will get interested again then) but I will offer it up here to my
>fellow computer
>history nuts if you want to help ensure that it doesn't vanish if I
>get run over by a
>bus or something :)
>This is a simulated HP 3000 Series III (circa 1980) running MPE V/R 
>(circa 1986)
>with 8MB of memory, all the language subsystems (APL, BASIC, BASICOMP, RPG,
>FORTRAN (66), SPL, PASCAL, COBOL (68), COBOL II (74)), 20 years of users group
>contributed software, many classic historical computer games, etc. Software
>archaeologists can get lost in here for years. Oh, and thanks to Dave
>Elward, the
>HP 2000 Timesharing BASIC contributed library is even included (kinda sorta
>converted to MPE BASIC) for good measure. This is a streamlined 
>turnkey edition
>that's ready to run out of the box with no assembly required (all
>batteries are included).
>Currently, I only provide executables for Windows (sorry) but am in
>the process of
>getting the 3000 simulator changes (for large memory support) and the new MAME
>hp2641 driver back upstream. Instructions and further details can be
>found in the
>README.txt hint book for this adventure. 94MB Google Drive link:
>P.S. I'm giving a talk on the history of APL\3000 and its resurrection
>to the ACM APLBUG
>group in a couple weeks. If anyone is interested I can provide more
>details when I have

More information about the cctech mailing list