Bob goes into detail about the rise of the integrated circuit versions of the PDP-11 & VAX processors, the challenges of how Digital was spiraling out of control, and how he was the one that not only championed the Alpha, but had to make the difficult decisions that if the Alpha succeeded that many people were now out of a job, and many directions had to be closed off.
He goes into great detail how the Alpha was basically out maneuvered politically and how the PC business had not only dragged them down by management not embracing the Alpha but how trying to pull a quick one on Intel led to their demise.
Also of interest was his time in research witnessing the untapped possibilities of AltaVista, and how Compaq had bogged it down, and ceded the market to the upstart Google, the inability to launch a portable MP3 player (Although to be fair the iPod wasn’t first to market by a long shot, it was the best user experience by far).
What was also interesting was his last job, working at Unisys and getting them out of the legacy mainframe hardware business and into emulation on x86, along with the lesson that if you can run your engine in primary CPU cache it’s insanely fast (in GCC land -Os is better than -O9).
The most significant part towards the end of course is where he ‘rewinds’ his story to go into his interest in simulations, and of course how he started SIMH when he had some idle time in the early 90’s. SIMH of course has done an incredible amount of work to preserve computing history of many early computers. He also touches on working with the Warren’s TUHS to get Unix v0 up and running on a simulated PDP-7 and what would have been a challenge in the day using an obscure Burroughs disk & controller modified from the PDP-9.
So I woke up to this incredible news. Jason Scott at the most excellent archive.org had just uploaded the old Infocom source code to github. It’s from the infamous ‘found hard disk’ that has been mentioned going back to the failed game ‘The restaurant at the end of the universe’.
So looking at the repos here, you can see the latest ones are all Infocom. It’s best to get them all via git for reason below:
The reason being of course that if there are multiple versions they are stacked. Now why is this important? Who cares? it’s all in ZILL which there is no compiler for, as the TOPS-20 tools are still lost?
The source for the Final version won’t build with ZILF. However the Revision 37 source will!
$ git checkout 281bd3417faada8011397244d4bfaad562cb7bfc
Note: checking out '281bd3417faada8011397244d4bfaad562cb7bfc'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b
HEAD is now at 281bd34... Revision 37 (Original Source)
Ok, now let’s trash the directory! (you did backup the repo first, right?)
ZILF 0.8 built 3/19/2017 1:34:17 PM
[warning MDL0417] C:\temp\zilf\zilf-0.8\planetfall\MISC.zil:509: ROUTINE: only 3 routine arguments allowed in V3, so last 2 "OPT" arguments will never be passed
in INSERT-FILE called at planetfall.zil:14
in IFILE called at planetfall.zil:25
[warning ZIL0208] C:\temp\zilf\zilf-0.8\planetfall\SYNTAX.zil:143: preaction routine mismatch for 'V?ZAP': using PRE-ZAP as before
[error ZIL0113] C:\temp\zilf\zilf-0.8\planetfall\MISC.zil:150: SETG: argument 1: bare atom argument must be a variable name
[error ZIL0113] C:\temp\zilf\zilf-0.8\planetfall\MISC.zil:315: SETG: argument 1: bare atom argument must be a variable name
[error ZIL0113] C:\temp\zilf\zilf-0.8\planetfall\MISC.zil:317: SETG: argument 1: bare atom argument must be a variable name
[error ZIL0113] C:\temp\zilf\zilf-0.8\planetfall\MISC.zil:319: SETG: argument 1: bare atom argument must be a variable name
[warning ZIL0504] C:\temp\zilf\zilf-0.8\planetfall\PARSER.zil:244: treating SET to 0 as true here
[warning ZIL0502] C:\temp\zilf\zilf-0.8\planetfall\VERBS.zil:156: RETURN value ignored: block is in void context
[warning ZIL0204] C:\temp\zilf\zilf-0.8\planetfall\VERBS.zil:1879: no such global variable 'WHERE', using the local instead
[warning ZIL0505] C:\temp\zilf\zilf-0.8\planetfall\COMPTWO.zil:3035: COND: clauses after else part will never be evaluated
[warning ZIL0308] : too many parts of speech for 'PORT': Object (C:\temp\zilf\zilf-0.8\planetfall\GLOBALS.zil:78), Adjective (C:\temp\zilf\zilf-0.8\planetfall\GLOBALS.zil:224), Direction (C:\temp\zilf\zilf-0.8\planetfall\GLOBALS.zil:11)
[warning ZIL0306] C:\temp\zilf\zilf-0.8\planetfall\GLOBALS.zil:224: discarding the Adjective part of speech for 'PORT'
[warning ZIL0308] : too many parts of speech for 'BRUSH': Object (C:\temp\zilf\zilf-0.8\planetfall\GLOBALS.zil:548), Adjective (C:\temp\zilf\zilf-0.8\planetfall\GLOBALS.zil:549), Verb (C:\temp\zilf\zilf-0.8\planetfall\SYNTAX.zil:283)
[warning ZIL0306] C:\temp\zilf\zilf-0.8\planetfall\GLOBALS.zil:549: discarding the Adjective part of speech for 'BRUSH'
Volume in drive C is BOOTCAMP
Volume Serial Number is 903B-72D4
Directory of C:\temp\zilf\zilf-0.8\planetfall
04/17/2019 08:32 PM 247,803 planetfall.zap
04/17/2019 08:32 PM 162,476 planetfall_data.zap
04/17/2019 08:32 PM 1,336 planetfall_freq.zap
04/17/2019 08:32 PM 40,495 planetfall_str.zap
4 File(s) 452,110 bytes
0 Dir(s) 238,542,704,640 bytes free
Wrote 121952 bytes to planetfall.z3
Sure it said 4 errors, but it compiled! Using a z3 or higher interpreter we can load up Planetfall
At first glance it may look the same, but check the serial number. 190417. That’s today!
Years and years ago I had bought this copy of Language Systems Fortran for MacOS with the intention of using my Quadra to build Dungeon for MacOS. Except I couldn’t figure out the first thing about MPW, and life was always busy and I never did figure it out. Well after getting GCC to compile something on MacOS, I thought I’d dig up some images I made of the disks, and without the benefit of having the manuals anymore see if I could figure it out.
FORTRAN Dungeon 2.5.6 on MacOS
And much to my amazement it compiled without any real issues. All the EOF markers in the files had to be fixed up, and gdt.f for some reason was mangled at the end, but it was trivial to repair. I didn’t bother trying to integrate the gettime call, so the clock and any clock events don’t work correctly. I guess I should make the seconds increment by 15 between calls, or something. Oh well I don’t think anyone will really care. I compiled it for the 68020 with 68881 hooks, although I doubt it even makes any calls. It runs for me.
I don’t know how I missed this, but there is a MDL interpreter that can run MDL Zork!
This Zork created December 2, 2015.
West of House
This is an open field west of a white house, with a boarded front door.
There is a small mailbox here.
A rubber mat saying ‘Welcome to Zork!’ lies by the door.
> open mailbox
Opening the mailbox reveals a leaflet.
> take leaflet
> read leaflet
WELCOME TO ZORK
ZORK is a game of adventure, danger, and low cunning. In it you
will explore some of the most amazing territory ever seen by mortal
man. Hardened adventurers have run screaming from the terrors
In ZORK the intrepid explorer delves into the forgotten secrets
of a lost labyrinth deep in the bowels of the earth, searching for
vast treasures long hidden from prying eyes, treasures guarded by
fearsome monsters and diabolical traps!
No PDP-10 should be without one!
ZORK was created at the MIT Laboratory for Computer Science, by
Tim Anderson, Marc Blank, Bruce Daniels, and Dave Lebling. It was
inspired by the ADVENTURE game of Crowther and Woods, and the long
tradition of fantasy and science fiction adventure. ZORK is written
in MDL (alias MUDDLE).
On-line information may be available using the HELP and INFO
commands (most systems).
So with all the excitement with jsDOSBox it was about time I tried to get something from my old java dosbox stuff running again.
As a quick note, as of right now, you cannot boot into a disk image… Nor can you really run bat files, or any kind of drivers beforehand. It’s basically either use a script that adds files one by one, or use an image file which gets mounted, and you run your exe/com file from that.
So here we go, back again is the old Fortran Dungeon (zork) compiled with QuickC for Windows, running on the working model version of Windows 3.0.
Using an FPGA I created a hardware implementation of the Infocom Z-Machine virtual machine (presumably a world’s first as I can’t imagine anyone else being crazy enough to do it). The instruction set is Z-Machine version 3 which means all the “standard” Infocom games should run. Only change was a few extra opcodes for implementing the BIOS (which provides the terminal).
The Verilog code for the Z-machine CPU is available at https://github.com/charcole/Z3 along with the code for the BIOS and a hacked version of Inform 6 which allows the use of the extra opcodes.