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

Curious Marc curiousmarc3 at gmail.com
Mon Sep 28 16:35:40 CDT 2020


> On Sep 27, 2020, at 2:22 PM, Gavin Scott via cctalk <cctalk at classiccmp.org> wrote:
> 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
> segment).
> 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 X<backspace>Y
> 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 sequence).
> 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:
> https://drive.google.com/file/d/1bmXvHkBLbUeLAid73EJ4H1yQ2uwXQuRu
> Gavin
> 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
> them.

More information about the cctech mailing list