Gavin!? you are to be commended? for? this? project!?Will put? on? file? at? smecc museum
and at some? point? set up? a instance of it running? on a? system here.?Oddly? we? have a
laptop that? works in apl and? saves? data? to a dictation? type? mini cassette? type? of?
storage media!?side issue? ?drop me? Dave Elward's email or? have? him? contact me.?
thanks? ed#?In a message dated 9/27/2020 2:22:07 PM US Mountain Standard Time, cctalk at
classiccmp.org writes:?
As some people here are aware, I have spent probably too much time this summerhacking on
J. David Bryan's excellent Classic HP 3000 simulator and trying tobuild 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 a5x120MB HP 7925 disc system and
configured things like the system directorysize 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, whichincluded Keven Miller's collection of the old Contributed Software
Library tapeswhich were conveniently available in SIMH format. This is a huge trove of
coolstuff including most of the classic mini/mainframe games (Dungeon, Warp,Advent, etc.,
etc.) and even a little game called DRAGONS that was written in1980 by a guy named Bruce
Nesmith when he was in college and he used itto get a job at TSR and went on to write
parts of many classic D&D productsand eventually landed at Bethesda where among other
things he was thelead designer for another little game called The Elder Scrolls V: Skyrim.
I wasable to track Bruce down and give him a copy of the system with his 40 yearold game
running on it. The CSL tapes also include other amazing goodiesthat people developed and
gave away over the years, including a FORTH andLISP, as well as most of the system and
utility programs that people used torun their 3000 shops. It's quite fun to explore.?I
was curious how far we could push the 3000 simulator, so I hacked allthe memory bank
registers to be six bits instead of four bits, and wenow have a simulated HP 3000 Series
III that supports 8MB of memory, 4xmore than any physical system ever did. I started
trying to do the same thingfor giant disc drives, but MPE turned out to have too much
knowledge ofwhat 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 wouldtalk about what was
probably the most rare and exotic HP software subsystemever produced, APL\3000. APL on the
3000 was a project started at HP Labsin Palo Alto in the early 1970s. They were likely
motivated by the success IBMwas having with mainframe APL timesharing services. This would
be the firstfull APL implementation on a "small" (non-mainframe) computer. It
would be thefirst APL with a compiler (and a byte-code virtual machine to execute
thecompiled code), it would include an additional new language APLGOL (APLwith ALGOL like
structured control statements), and it managed to supportAPL workspaces of unlimited size
through a clever set of system CPUmicrocode extensions that provided a flat 32-bit
addressing capability (ona 16-bit machine where every other language was limited to a 64KB
datasegment).?Because APL required these extra special CPU instructions that you got asa
set of ROM chips when you bought the $15,000 APL\3000, and becauseAPL ultimately failed as
a product (another story in itself) and thus HP neverimplemented these instructions on
their later HP 3000 models, I never sawit run on a real HP 3000, but over the years we
talked about wouldn't it becool to find a way to get APL running again.?With
assistance and moral support from Stan Sieler and Frank McConnelland others, I was
ultimately able to reverse-engineer the behavior of theundocumented ten magic APL CPU
instructions needed to get it to run andimplement them as part of the MPE unimplemented
instruction trap and nowAPL\3000 runs again for the first time in ~35 years. Somewhat
ironically, thisimplementation method could have been used back in 1980 as I
didn'tactually end up changing the hardware simulation code at all, and it shouldalso
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 overstruckcharacters and whatnot? APL\3000 supports
the use of plain ASCII terminalsthrough blecherous trigraphs like "QD for the APL
quad character, but thisis hardly satisfying. So the quest was on to find a solution. Back
in 1976 whenAPL\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 withspecial firmware and APL
character set ROMs that supported all the APLspecial characters as well as overstrikes
(the terminal would take X<backspace>Yand lookup to see if it had a character to
represent Y overstriking X and ifso it would show that on the display, and if that got
transmitted to the host itwould convert it back into the original three character
overstriking sequence).?I briefly looked into the idea of hacking QCTerm or Putty or
something, butthen I found out from Curious Chris that an HP 2645A emulator already
existedin the MAME emulator system! Since the '41 is basically just a '45 with
modifiedfirmware, and Bitsavers had both the character set ROMs as well as thefirmware
ROMs from a '41, this sounded like it might be easy! There was a snaghowever in that
the firmware ROM images that were allegedly from a '41 turnedout to actually be from
an ordinary '45. But we did have the character sets andone of the ROMs from the second
CTL PCA. I put out a call on the Vintage HPlist to see if anyone might possibly have a
lead on an actual HP 2641A, andKyle Owen responded that not only did he have one he could
also dump theROMs for us. So a few days and a few hacks to F. Ulivi's MAME hp2645
driverlater we now have a functioning MAME HP 2641A terminal emulation, so youcan
experience APL\3000 in all its original glory. I bundled up a somewhatstripped down MAME
along with my turnkey 3000 setup so both emulated HPterminals are just a couple clicks
away.?So that's how I spent my summer vacation (who am I kidding, it's pretty much
allvacation these days). It has been a lot of fun revisiting all this old3000 stuff aswell
as the numerous people I talked to along the way including some of thosewho were around at
APL\3000's birth (before my time). It was rather a lot ofwork so I'd like to feel
it might be useful to someone in the futurewho is digginginto this part of history.
Because of all the usual reasons, I don'tplan on hostingit 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 peoplewill get interested again then) but I will offer
it up here to myfellow computerhistory nuts if you want to help ensure that it doesn't
vanish if Iget run over by abus 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 groupcontributed software, many classic historical computer games, etc.
Softwarearchaeologists can get lost in here for years. Oh, and thanks to DaveElward, theHP
2000 Timesharing BASIC contributed library is even included (kinda sortaconverted to MPE
BASIC) for good measure. This is a streamlined turnkey editionthat's ready to run out
of the box with no assembly required (allbatteries are included).Currently, I only provide
executables for Windows (sorry) but am inthe process ofgetting the 3000 simulator changes
(for large memory support) and the new MAMEhp2641 driver back upstream. Instructions and
further details can befound in theREADME.txt hint book for this adventure. 94MB Google
Drive
link:?https://drive.google.com/file/d/1bmXvHkBLbUeLAid73EJ4H1yQ2uwXQuRu?Gav….
I'm giving a talk on the history of APL\3000 and its resurrectionto the ACM
APLBUGgroup in a couple weeks. If anyone is interested I can provide moredetails when I
havethem.