TELL "\"It is pitch black. You are likely to be eaten by a grue."
April 16, 2019 7:26 AM   Subscribe

<SETG SCORE <+ ,SCORE 25>> <SETG MARVIN-COUNTER 4> <MOVE ,MARVIN ,PANTRY> <MOVE ,TOOL-REQUIRED ,MARVIN> <TELL "Marvin fiddles inside the " D ,MECHANISM " with the " D ,TOOL-REQUIRED " for about three-tenths of a second. He limps away. \"And me,\" you hear him mutter ashe goes, \"with this terrible pain in all the diodes down my left side.\"" CR>)
A whole bunch of Infocom's original source code is now available on github.

Throughout its history, Infocom used a TOPS20 mainframe with a compiler (ZILCH) to create and edit language files - this repository is a mirror of the source code directory archive of Infocom but could represent years of difference from what was originally released.

Available here is:
Arthur
Zork Zero
Shogun
Sherlock
Zork 3
Zork 2
Zork 1
Witness
Trinity
Suspended
Planetfall
Leather Goddesses of Phobos
Hitchhikers Guide to the Galaxy
Stationfall

and many others.
posted by jenkinsEar (76 comments total) 62 users marked this as a favorite
 
Learning ZIL is the handbook for making sense of it all. (via)
posted by jenkinsEar at 7:37 AM on April 16, 2019 [14 favorites]


The nested if statement to end all nested if statements:

https://github.com/historicalsource/hitchhikersguide/blob/master/vogon.zil#L176
posted by CaseyB at 7:39 AM on April 16, 2019 [17 favorites]


I still think that I had more fun playing those command-line games in the '80s than I have had playing the fanciest, most graphically sophisticated games recently.
posted by octothorpe at 7:40 AM on April 16, 2019 [19 favorites]


The Infocom era was back when I allowed myself to actually play video games instead of just watching videos online. The Zork trilogy in particular was oddly like living in a novel. My mind filled in so much that was never in the game, and worked really hard on what was actually in the game, and it's left an indelible mark on me.

Between those and Choose Your Own Adventure books (which had an awesome backup feature called "bookmarks"), having non-graphical adventures that fed my imagination was a major part of my school years.
posted by hippybear at 7:43 AM on April 16, 2019 [9 favorites]


Also, Fuck Hitchhiker's Guide for the goddamned babel fish puzzle.
posted by hippybear at 7:45 AM on April 16, 2019 [26 favorites]


I doubt this is unknown by most of the people reading this thread, but for your listening pleasure while browsing the code: It is Pitch Black
posted by mcstayinskool at 7:45 AM on April 16, 2019 [6 favorites]


It's worth noting that there's source code for an unreleased Restaurant At The End Of The Universe game here.
posted by Catblack at 7:47 AM on April 16, 2019 [14 favorites]


I still think that I had more fun playing those command-line games in the '80s than I have had playing the fanciest, most graphically sophisticated games recently.

I'm just gonna keep linking Richard Bartle over and over until the end of time.
posted by ragtag at 7:47 AM on April 16, 2019 [6 favorites]


I do remember working on the maze of twisty tunnels, all alike with graph paper at one point.
posted by hippybear at 7:48 AM on April 16, 2019 [3 favorites]


(<NOT ,EARTH-DEMOLISHED>
<COND (<AND <L? ,DRUNK-LEVEL 3>
<EQUAL? ,HERE ,PUB>>
<TELL "\"Shut up and drink your beer. You're going to need it.\"" CR>)
posted by RobotVoodooPower at 7:48 AM on April 16, 2019 [8 favorites]


The nested if statement to end all nested if statements:

Ah, yes, the first time I ever rage-quit a video game. Also probably the second, third, fourth, fifth times I ever rage quit a video game.
posted by loquacious at 7:54 AM on April 16, 2019 [10 favorites]


I'm impressed this is legit.
posted by ardgedee at 7:57 AM on April 16, 2019


AAAAAAAAAAA!!!!

omigod omigod omigod

AAAAAAA!!!!!!!

> It's worth noting that there's source code for an unreleased Restaurant At The End Of The Universe game here.

omigod omigod omigod omigod omigod omigod omigod omigod

SQUEE.
posted by Reclusive Novelist Thomas Pynchon at 7:59 AM on April 16, 2019 [9 favorites]


TOPS20 was an operating system for the PDP-10, which was explicitly a "minicomputer", which was the enemy of the "mainframe". The distinction is largely academic these days, but try explaining the difference between a laptop and a PC to someone who grew up on mobile phones.
posted by rum-soaked space hobo at 8:06 AM on April 16, 2019 [2 favorites]


Also it is crucial to note that no version of ZILCH survives to this day. It's possible someone may have a binary on a magtape somewhere, but we do not currently have any tools for compiling these games to Z-machine bytecode.

This is partly why Inform (v6 and before) has its own Pascal-inspired syntax, instead of the SGML-ish s-expression syntax informed by LISP that gets used in these games.
posted by rum-soaked space hobo at 8:08 AM on April 16, 2019 [3 favorites]


So how difficult would it be to turn this into zcode?
posted by corb at 8:10 AM on April 16, 2019


Not entirely true. Zilf will compile at least some of these games.
posted by pharm at 8:19 AM on April 16, 2019 [4 favorites]


> So how difficult would it be to turn this into zcode?

If I didn't have to work for a living I'd be rewriting Restaurant in Inform 6 right now.
posted by Reclusive Novelist Thomas Pynchon at 8:19 AM on April 16, 2019 [5 favorites]


(And, yes: Inform was developed from scratch to target the z-machine by Graham Nelson back in the early 90s, which is why Inform is so different syntactically.)
posted by pharm at 8:20 AM on April 16, 2019


Also, Fuck Hitchhiker's Guide for the goddamned babel fish puzzle.

Would you say, fuck it right in the ear?
posted by sgranade at 8:29 AM on April 16, 2019 [23 favorites]


Andrew Plotkin, Z-Machine Hero, discusses that this may not be entirely legal so get while the getting is good:
The point is that a great deal of historical information about Infocom has been preserved -- but it's not publicly archived. You can't go research it anywhere. Nobody admits to having it, because it's "proprietary IP", and you're not supposed to trade in that stuff because companies like Activision make the rules.

So when Jason [Scott] puts this information online, he's taking a stance. The stance is: history matters. Copyright is a balance between the rights of the owner to profit and the rights of the public to investigate, discuss, and increase the sphere of culture. Sometimes the balance needs a kick.

Quite possibly all these repositories will be served with takedown requests tomorrow. I'm downloading local copies for myself tonight, just in case.
posted by ragtag at 8:29 AM on April 16, 2019 [16 favorites]


“The crater lip continues north-east and north-west.
Below you is a build-your-own-dead-whale kit (glue not included).”

"This is the whale crater, liberally supplied with whale.”
Ouch.
posted by pharm at 8:37 AM on April 16, 2019 [9 favorites]


Thanks for additional information and context, ragtag. I was going to specifically ask about the legality of this release of code.
posted by ElKevbo at 8:47 AM on April 16, 2019


I'm a little confused why "there is currently no known way to compile the source code in this repository into a final 'Z-machine Interpreter Program' (ZIP) file." I thought Z-machine compilers existed? I'm pretty sure I've seen (and played) 3rd-party Infocom-style games that were compiled to Z-machine code.

What's the missing link in the toolchain? It would be cool to get the entire thing working on a modern architecture (or emulated TOPS20)... and yeah about 50% of my interest is so that someone can make that stupid Babelfish puzzle a little less ridiculous.
posted by Kadin2048 at 8:51 AM on April 16, 2019 [1 favorite]


There are compilers which target the Z machine Kadin2048, but they don’t understand the ZIL language (which is a Lisp derivative by way of MDL). Graham Nelson’s Inform compiler parses a language which is much more Pascal-ish in syntax.
posted by pharm at 8:58 AM on April 16, 2019 [3 favorites]


nb. The missing link in the toolchain is the Zilch compiler binary and/or sources. Nobody seems to have a copy. Presumably it wasn’t on the Infocom drive that these files come from (maybe that was user data only?)
posted by pharm at 8:59 AM on April 16, 2019


Many of us were also BASIC programmers, so playing text adventures was similar but often less frustrating.
posted by RobotVoodooPower at 9:32 AM on April 16, 2019 [14 favorites]


Ah, got it. I didn't realize that Zilch hadn't survived.

I was going to point to the ZIL language documentation and suggest that it doesn't seem totally out of range for someone looking to build a compiler for fun (which is not really my cup of tea but there are weirder hobbies)... but then I realized that's exactly what Zilf, which pharm linked-to above, is.

Zilf itself is a bit thin on documentation—but seems to be in active development as of last month. I gather there's still work to do on the library that's assumed as part of the ZIL documentation.

Also, sorta interesting to think that, since Zilch is written in C# .Net, which runs on Mono (well technically 'runs on' the CLR), which if I were going to use it would be in a Windows VM... I'd bet that compiling Colossal Cave would probably consume more computer power than existed in the world at the time it was first written.
posted by Kadin2048 at 9:36 AM on April 16, 2019 [8 favorites]


I am amazed at the patience of you folks who actually played text adventure games. I always gave up on them, there seemed to be a lot of guessing and brute force invovled.

It was that or play Hard Hat Mack or Chopper Command again. And again. And again. And again. Or BOLO, which has to be one of the hardest top down maze based shoot 'em ups ever made.'

Or I could try typing in all 5,000ish lines the code listing for the Star Trek BASIC game, again, but it won't run because there's an error in the listing somewhere.

I think a lot of people conflate boredom with patience through the lenses of nostalgia.
posted by loquacious at 9:37 AM on April 16, 2019 [12 favorites]


Quite possibly all these repositories will be served with takedown requests tomorrow. I'm downloading local copies for myself tonight, just in case.

Here's an easy way to download local copies of all of these repos, if you're so inclined:

curl "https://api.github.com/users/historicalsource/repos?page=1&per_page=100" | grep -e 'git_url*' | cut -d \" -f 4 | xargs -L1 git clone
posted by bradf at 9:48 AM on April 16, 2019 [8 favorites]


There's almost nothing to Restaurant, unfortunately. It's mostly a skeleton with many of the files just copied wholesale from HHTtG.
posted by phooky at 9:48 AM on April 16, 2019 [2 favorites]


Looks like there's also a semi-complete adaptation of James Cameron's The Abyss. Haven't read through it, so it may be a hacked-up copy of Seastalker or Cutthroats, but there are some graphics in ILBM (Amiga?) format in there.
posted by RobotVoodooPower at 10:16 AM on April 16, 2019 [2 favorites]


Looks like ImageMagick groks it. There are a bunch of life support control panels, I guess for a submersible. There's also a robot arm control panel thingie.
posted by RobotVoodooPower at 10:23 AM on April 16, 2019 [3 favorites]


On Richard Bartle's MUD website, which is worth a good look around, is a paper from exactly 40 years ago that has some more details about, and internals from, Zork:

Zork: A Computerized Fantasy Simulation Game
Lebling, P. D., Blank, M. S. & Anderson, T. A.
IEEE Computers Magazine, pages 51 to 59, April, 1979.
"An immensely influential paper on Adventure games, and many of the principles it describes are directly applicable to MUDs..."
posted by Wordshore at 10:25 AM on April 16, 2019 [2 favorites]


Most of the repos include ZIP files which are not ZIPs but playable Z-Machine blorbs. Restaurant has one too, but it's just a couple of rooms.
posted by RobotVoodooPower at 10:33 AM on April 16, 2019 [1 favorite]


TOPS20 was an operating system for the PDP-10, which was explicitly a "minicomputer", which was the enemy of the "mainframe". The distinction is largely academic these days, but try explaining the difference between a laptop and a PC to someone who grew up on mobile phones.
I am not sure upon which planet the PDP-10 was a minicomputer, but it wasn't this Earth. The Wikipedia article on the PDP-10 agrees within the first paragraph. Also, note the photo of a KL-10 "with six memory modules." Perhaps you are thinking of the PDP-8 or PDP-11.
posted by Gilgamesh's Chauffeur at 11:25 AM on April 16, 2019 [1 favorite]


that stupid Babelfish puzzle

That is, without a doubt, the most frustrating, entertaining and ultimately fulfilling task in gaming history. It was legendary: in a time where there were no print-on-demand shops like Cafe Press, people were selling t-shirts that said "I got the babelfish."
posted by Johnny Wallflower at 11:42 AM on April 16, 2019 [6 favorites]


Gilgamer's Chauffeur: There's an old joke that defines the various grades of computer something like:
A microcomputer is one you can throw across the room.
A workstation is too heavy to throw, but can be dropped out the window.
A minicomputer is too big to get out the window, but you can lower its casters and push it down the stairwell.
A mainframe can't be pushed. It may even be bolted to the floor. This is why you should avoid working with them: they have no reason to fear you.

Obviously this would need some adjustment to account for laptops and mobile devices.
posted by baf at 11:48 AM on April 16, 2019 [16 favorites]


A phone is a supercomputer that you can throw against a wall.
posted by el io at 12:16 PM on April 16, 2019 [3 favorites]


After an exhaustive several minutes looking at those ZIL files, it doesn't look as though it would be much work to parse them and once parsed, emit them in some other form. A 25-line elisp function ingested Starcross's actions.zil file. Someone would have to puzzle out the sematics of ZIL, but it doesn't look *hard*, just *tedious*.

Speaking of tedious, I recall trying to play Starcross on a Commodore 64 just before my first daughter was born (god, thirty-five years ago). I did not finish, and in fact I think I gave up after around four hours. Life is too short to try out every conceivable verb/noun combination before stumbling on "lick the airlock" or whatever.

Baf, I am not sure if you are agreeing or disagreeing on the categorization of PDP-10 as a mainframe, but I assure you you were not going to push one down the hall or the stairwell.
posted by Gilgamesh's Chauffeur at 12:27 PM on April 16, 2019 [2 favorites]


Yeah, even though Adams and Infocom were originally contracted for a six-game (!) partnership, Restaurant never got off the ground, for two reasons. One of them is that Infocom itself was having pretty serious cashflow and management problems. But the other was that, having been through two product developments with him, nobody there was all that enthusiastic about going another round with Douglas Adams as their copilot.

Everyone who ever worked with Douglas Adams, in any medium, eventually discovered to their dismay that he was a terrible procastinator, but he seemed to have saved an especially infuriating form of sloth for interactive-fiction development, basically requiring Steve Meretzky stand behind his chair forcing him to write the structure of Hitchhiker's (not the text, for the most part. Almost all the language in the game that's not a literal recapitulation of text from the book or radio show is written by Meretzky). For Bureaucracy he was apparently even worse, coming up with vague puzzle or plot ideas that the actual Implementors couldn't really figure out how to make work, and being dissatisfied when they said as much.
posted by jackbishop at 12:42 PM on April 16, 2019 [12 favorites]


I am amazed at the patience of you folks who actually played text adventure games. I always gave up on them, there seemed to be a lot of guessing and brute force involved.

InvisiClues!
posted by octothorpe at 12:57 PM on April 16, 2019 [4 favorites]


Yeah, the PDP-10 was a mainframe, though I think people can be forgiven for not realizing that, because their nomenclature was... less than obvious. PDP-6? Mainframe! PDP-7? 18 bit Mini! PDP-8? 12 bit mini! PDP-9? 18-bit mini! PDP-10? 36 bit mainframe! PDP-11? 16 bit mini! Their marketing department must have hated them for that.

Towards the end of its life I think they rechristened the PDP-10 the DECsystem-10 as a way of distinguishing the two lines.

Anyway, there were orders of magnitude more DEC minis in the world than big iron, and in retrospect they probably are what DEC should be remembered for.

Also... you can now buy the best part of a PDP-11, the front panel with all the blinky lights and switches, without the 2kW space heater behind it. It uses a Raspberry Pi running some sort of an emulator, so it really is a totally functional unit. I honestly think I may not be able to resist buying one.
posted by Kadin2048 at 1:17 PM on April 16, 2019 [7 favorites]


I still think that I had more fun playing those command-line games in the '80s than I have had playing the fanciest, most graphically sophisticated games recently.

I don't know that I'd go that far, but when I'm idly jawing about what my favorite games are, Trinity inevitably comes up. It'll probably always be in my personal top 10.
posted by Lentrohamsanin at 1:41 PM on April 16, 2019 [3 favorites]


when I'm idly jawing about what my favorite games are, Trinity inevitably comes up

I didn't think there were many of us that liked Trinity.

Although, my favorite is A Mind Forever Voyaging.
posted by hanov3r at 1:44 PM on April 16, 2019 [4 favorites]


The future of A Mind Forever Voyaging has become depressingly real.
posted by Chrysostom at 1:50 PM on April 16, 2019 [5 favorites]


I didn't think there were many of us that liked Trinity.

It did amazing things with both game mechanics and storytelling that I still think about. And it was educational too!
posted by Lentrohamsanin at 1:51 PM on April 16, 2019 [2 favorites]


The future of A Mind Forever Voyaging has become depressingly real.

I carry a small shred of hope because I have not yet been torn to pieces by feral dogs.
posted by hanov3r at 2:05 PM on April 16, 2019 [4 favorites]


Trinity is in the top tier of those played by the You Have Been Eaten By A Grue Podcast. Starcross is near the bottom, along with Nord And Bert and Seastalker.
posted by rum-soaked space hobo at 2:27 PM on April 16, 2019


Kadin2048: to me the definition of "mainframe" was "computer focused on I/O over all other considerations", while the PDP-10 had a powerful CPU in its own right. I suppose this is as arbitrary a razor as most of the others, I guess.
posted by rum-soaked space hobo at 2:29 PM on April 16, 2019 [1 favorite]


The nested if statement to end all nested if statements:

I never did solve that damned babel fish. To this day, I still want to play the rest of the game, but it makes me so so angry that the idea of trying again - even with typing in the exact right thing by cheating - is giving me agita. Why can the things we love most also hurt us the worst?
posted by Mchelly at 3:41 PM on April 16, 2019


I wish I'd never given up my VT100. Authenticity counts.
posted by bendy at 5:09 PM on April 16, 2019


Trinity was amazing. It just had such atmosphere.

Many of us were also BASIC programmers, so playing text adventures was similar but often less frustrating.

I didn't grow up to be a programmer, but I always thought that was really the point? "Given a limited vocabulary of commands, how do I get this f&*(&(*ing thing to do this other f*(&*(*&$ thing?"
posted by praemunire at 5:38 PM on April 16, 2019


I'm just gonna keep linking Richard Bartle over and over until the end of time.

I think of this clip all the time. It’s true. Get Lamp is great for a lot of reasons, but that insight into what the technology of text represents is maybe the greatest keeper, at least for me. I’ve never felt so immersed in a world as I have in text adventures and MUDs.
posted by Miko at 6:24 PM on April 16, 2019 [2 favorites]


I loved Trinity and remember it to this day, but I still feel bad about the lizard.
posted by Joe in Australia at 6:28 PM on April 16, 2019 [1 favorite]


> It uses a Raspberry Pi running some sort of an emulator, so it really is a totally functional unit.

You can also run some computers from that family on an FPGA, for a slightly more faithful experience than emulation. Porting between PDP-1 and PDP-11 is left as an exercise for the reader.
posted by Phssthpok at 6:38 PM on April 16, 2019


There’s a PDP-11/70 VHDL implementation, too.
posted by bradf at 6:59 PM on April 16, 2019 [1 favorite]


Speaking of tedious, I recall trying to play Starcross on a Commodore 64 just before my first daughter was born (god, thirty-five years ago). I did not finish, and in fact I think I gave up after around four hours. Life is too short to try out every conceivable verb/noun combination before stumbling on "lick the airlock" or whatever.

I guess here is where I report that, as a kid, I entirely completed Starcross without help... and liked it.
posted by JHarris at 8:43 PM on April 16, 2019


The response time on a commodore 64 was pretty hellish. On the plus side, you knew you'd done something new when the disk drive kicked in with a vibrating whirr in order to load some more text for display ten seconds later.

128k Macs, on the other hand, played Infocom games like a dream.
posted by Sparx at 9:11 PM on April 16, 2019 [3 favorites]


Here's an easy way to download local copies of all of these repos, if you're so inclined:

curl "https://api.github.com/users/historicalsource/repos?page=1&per_page=100" | grep -e 'git_url*' | cut -d \" -f 4 | xargs -L1 git clone


(Just a note that this works and is not nefarious, but will download every repo from that account, including the source of several versions of Doom & Quake, Jedi Academy PC, and several Atari 7800 games. Which might be fun! But you may get more than you bargained for.)
posted by Barking Frog at 10:42 PM on April 16, 2019 [2 favorites]


Here's an easy way to download local copies of all of these repos, if you're so inclined:

curl "https://api.github.com/users/historicalsource/repos?page=1&per_page=100" | grep -e 'git_url*' | cut -d \" -f 4 | xargs -L1 git clone
You'll want to run that a second time with page=2
posted by krisjohn at 12:17 AM on April 17, 2019 [3 favorites]


Infocom's software runs slowly on the C64 because of the infamous 1541, one of the biggest design fiascos of the 8-bit era, a floppy drive that's scarcely faster than cassette tape because of an error that they didn't solve in time for the drive's release. The error could easily be corrected by fast load software, but Infocom's games didn't use one, and as a result they all play like a snail climbing a hill on a Commodore 64.
posted by JHarris at 5:34 AM on April 17, 2019 [1 favorite]


Starcross is near the bottom, along with Nord And Bert and Seastalker.

I loved Nord and Bert. There aren't anywhere near enough games out there that are almost entirely pun-driven.
posted by Mchelly at 6:09 AM on April 17, 2019 [1 favorite]


(Just a note that this works and is not nefarious, but will download every repo from that account, including the source of several versions of Doom & Quake, Jedi Academy PC, and several Atari 7800 games. Which might be fun! But you may get more than you bargained for.)

You'll want to run that a second time with page=2

Hmm. There were only 45 repos there when I posted that yesterday, and 131 now. If you're copy/pasting command line stuff from internet strangers, be careful.
posted by bradf at 7:18 AM on April 17, 2019


Fastload could also be added via a cartridge, but also the 1571 drive that came with the C128 had that bug fixed.

One novel thing about the 1541 and its ilk is that it had the same processor and amount of RAM as the C64 itself. A lot of demos make use of this by offloading processing to the diskette drive to generate streams of data that the main computer doesn't have the bandwidth to generate.
posted by rum-soaked space hobo at 8:53 AM on April 17, 2019 [4 favorites]


I used to have a PDP 8/A that ran TOPS20 off twin Decassettes. Real core store, but it was absolutely a minicomputer. Just think, I could probably compile those sources on an original platform if I still had it.

Which I don't, because life, unlike adventure games, cannot be saved and reloaded if you fuck up.

Bah.
posted by Devonian at 9:22 AM on April 17, 2019 [1 favorite]


I still have a working VT100. I just wish I had the time to replay these.
posted by phooky at 10:28 AM on April 17, 2019


There were only 45 repos there when I posted that yesterday, and 131 now

It was originally just the new infocom sources, but jason scott decided to use the opportunity to consolidate all the other historical source code releases he's done under one roof.

You can search for just the infocom releases but I don't know how to adapt that to the API URL
posted by vibratory manner of working at 10:57 AM on April 17, 2019 [1 favorite]


It was originally just the new infocom sources, but jason scott decided to use the opportunity to consolidate all the other historical source code releases he's done under one roof.

You can search for just the infocom releases but I don't know how to adapt that to the API URL


curl "https://api.github.com/search/repositories?q=infocom+user:historicalsource&page=1&per_page=100" | grep -e 'git_url*' | cut -d\" -f 4 | xargs -L1 git clone
posted by bradf at 2:00 PM on April 17, 2019


*scratches at own fingers*

Okay okay I can't resist!

curl "https://api.github.com/search/repositories?q=infocom+user:historicalsource&page=1&per_page=100" | awk -F\" '$2 == "git_url" {print $4}' | xargs -n 1 git clone

every time I see a grep and a cut I think "that's probably a single awk" and can't rest until I've tried it.
posted by rum-soaked space hobo at 3:42 PM on April 17, 2019 [2 favorites]


And GitHub just added syntax highlighting support for ZIL files, announced the GitHub CEO on Twitter!
posted by skynxnex at 5:36 PM on April 17, 2019 [2 favorites]


One novel thing about the 1541 and its ilk is that it had the same processor and amount of RAM as the C64 itself.

Not true. It used a 6502 processor, which is almost the same as the C64's 6510 but not quite. That's mostly just a pedantic distinction, however, the drive had nowhere near as much RAM as the Commodore 64. It only had 2K.
posted by JHarris at 2:23 AM on April 18, 2019 [2 favorites]


I was going to apologise again for the shell golf, but it seems Jason Scott went with my version as well!
posted by rum-soaked space hobo at 6:42 AM on April 18, 2019


Andrew Plotkin writes “What is ZIL anyway?
posted by pharm at 11:17 AM on April 18, 2019 [2 favorites]


A mainframe can't be pushed.

People tend to think of the mainframe/mini divide as one of size, but it may make more sense to think of it in terms of goals and use case.

A mainframe occupies the building's Hallowed Place where it descended from heaven (allegedly) at the behest of IBM. It is surrounded by priests who administer to its needs. When a lowly supplicant wishes to petition the Computer, they approach the priesthood and submit their offering in the form of a deck of punched cards. The priest will then place the card deck in the (physical) queue where the Computer will receive it in its own time. If the offering is considered acceptable, the Computer will reward the supplicant with a printout containing the Most Holy Results. If not... well, there may be an error report of some kind. In this way doth the Engine of Computation run continuously such that none of the Computer's precious time is wasted.

A minicomputer, on the other hand, is a piece of gear that you yell at with a teletype. It may have multiple teletypes and multiple users; if one of them hangs at the machine, you yell at them. If it sits idle as everybody ponders their code or reads a manual, no biggie. Mini time is cheap. And if it's not, we'll act like it is because human time is worth more.

In fact, there were very "small", "cheap" programmable calculators (i.e. proto-minis) available in the fifties and IBM killed them by convincing the users' bosses that what everyone really wanted was a small mainframe with punched cards (and presumably, a very short priesthood).

Which is why the early PDPs were not called computers in the marketing literature. They were data collection hardware for laboratory use. If someone used the C word near the Priesthood, there would be a Summoning of IBM Salesmen and that would be the end of things and good luck transcribing your experiment results to a card deck.

And so when these "data collectors" got renamed "minicomputers", it became possible to sell them as computers without attracting the Priesthood's attention. And that's why the PDP-10 is a minicomputer.

(Also: the primary engineering goal of a mainframe is reliability--the payroll job absolutely, positively must go through--while minis prioritized performance and ease of use.)

</derail>
posted by suetanvil at 11:18 AM on April 18, 2019 [5 favorites]


Since this is a thread about IF and I just dropped some awk in that many people may be using right now, Here's an awk implementation of the Cloak of Darkness IF implementation exercise. It's just designed to show how a given programming model might work.

In this case I used AWK's main loop to parse input flat out, and parallel associative arrays for the database. I had a system for save and restore in mind once, but lost interest.

It's one of those things I can drag back out and amuse myself with occasionally, writing silly little games in it.
posted by rum-soaked space hobo at 11:40 AM on April 18, 2019 [1 favorite]


« Older Face the ball to be the ball to be above the ball   |   "Viewers 'don’t want to hear about science from a... Newer »


This thread has been archived and is closed to new comments