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

dave.g4ugm at gmail.com dave.g4ugm at gmail.com
Sun Sep 27 16:49:11 CDT 2020

I can only say "wow"... 

.... what a wonderful effort.....

Dave Wade

> -----Original Message-----
> From: cctalk <cctalk-bounces at classiccmp.org> On Behalf Of Gavin Scott via
> cctalk
> Sent: 27 September 2020 22:22
> To: cctalk at classiccmp.org
> Subject: HP 3000, APL\3000, the HP 2641A APL Display Station, and stuff.
> 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