Crowther's Original Adventure Source Code Found 309
drxenos writes "I don't know how many of you are fans of old-school text adventures (interactive fiction), but Will Crowther's original Fortran source code has been located in a backup of Don Woods's old student account. For fans like me, this is like finding the Holy Grail."
A good example of how coding has progressed (Score:5, Interesting)
I looked at the various FORTRAN files and am amazed at the spaghetti GOTO maze which, although messy, was probably the only way to do things in FORTRAN at the time with no structuring capability.
A random example:
IF(K.NE.1) MASK1="177*M2(K)
IF(((A(J).XOR."201004020100).AND.MASK1).EQ.0)GOTO 3
IF(S.EQ.0) GOTO 2
Wow! Is that the opposite of self-documenting code or what?
Reversed causation (Score:5, Interesting)
History - Looking for Scheme tarball 1986-87 era (Score:4, Interesting)
Re:This sounds familiar (Score:4, Interesting)
xyzzy
Re:A good example of how coding has progressed (Score:5, Interesting)
2027 is similar, there's just a lot more possible values. That rogue 1 is a continuation indicator, it would have been in column 6 on your punch card.
Re:A good example of how coding has progressed, (Score:5, Interesting)
http://www.literateprogramming.com/adventure.pdf [literateprogramming.com]
EAMON!!!! (Score:4, Interesting)
This was fun. I remember running it on a teletype terminal in programming class (damn, thats old) BANG BANG BANG BANG BANG. You couldn't do a quick CLS to hide the evidence when the instructor came by, "Do you think paper grows on trees?" he yell. Of course all was forgiven when we showed him our course work was done. Then, he made us write our own dungeon code.
Much later, Don Brown(?) came out with EAMON [wikipedia.org], with a write your own framework. Fun fun fun.
Re:Found? When was it lost? (Score:4, Interesting)
Original Zork source code in MDL (Score:5, Interesting)
Zork was the reason I got on the ARPANET, back around 1980 or so. I was using Bruce's Northstar BBS that had an adventure game that Bruce had written in Basic, and he told me how to play Zork: first, dial up the NBS TIP, connect to MIT-AI (the command was "@L 134", because the ARPANET had 8 bit host numbers, and AI was 134), and apply for an account to learn Lisp. Once that was granted, I connected to MIT-DM ("@L 70"), and logged in as URANUS, password RINGS, used :CHUNAME to change my user name, and waited until one of the two people playing Zork quit, to take their slot. Later somebody told me the magic words to use to get an account on DM, so I applied for my own account on DM, claiming that I wanted to "Learn MDL for calculus and algebraic applications". The source code to Zork was well hidden. DM ran a weird version of ITS that had some kind of file security or cloaking, it was rumored. I was always looking for the Zork sources, but never found it on DM.
Years later I googled for a unique phrase that was only in the original DM version of Zork, and this URL popped up: http://retro.co.za/adventure/zork-mdl/ [retro.co.za]
The original MDL source to Zork is really beautiful code that's almost as fun to read as it was to play. I had discovered a bug in the InfoCom version of Zork, which turned out to be in the original sources. When you're fighting the troll who's wielding an Axe, you can give anything to the troll and he will eat it. So I tried "give axe to troll" and he ate his axe, then cowered in the corner! Better yet you can go "give troll to troll" and he will eat himself and disappear, unfortunately not clearing the troll flag that is required to leave the room, so if you try to leave it prints a message saying the troll fends you off with a menacing gesture, and stops you from leaving. Sure enough, in the original sources [retro.co.za], there is a troll flag!
-Don
ancient text-based games (Score:3, Interesting)
Re:Fight the power (Score:2, Interesting)
Re:Wait for the Game... (Score:5, Interesting)
> get box
You now have the box of punchcards.
> input cards
You carefully feed the cards into the card reader.
> look terminal
The terminal says:
YOU ARE STANDING AT THE END OF A ROAD BEFORE A SMALL BRICK
BUILDING. AROUND YOU IS A FOREST. A SMALL
STREAM FLOWS OUT OF THE BUILDING AND DOWN A GULLY.
Re:A good example of how coding has progressed (Score:3, Interesting)
The TRULY calculated GOTO/GOSUB statement!
On a Beeb or Speccy, you could quite happily write stuff like
50 INPUT A
55 IF A<1 OR A>5 THEN GOTO 50
60 GOTO 900+100*A
This sort of thing didn't work on machines running Microsoft BASIC (which even used to throw a hissy fit if you tried to GOTO a non-existent line number. Beebs and Speccies just carried on from the next higher line number. Meant you could aim GOTO statements at REM statements without fear that stripping them to free up RAM later on would break things). BBC BASIC had the usual ON num_expr GOTO num_expr,num_expr,num_expr
Neither the BBC nor the Spectrum, however, had the absolutely classic feature found on the Camputers Lynx
Re:A good example of how coding has progressed (Score:4, Interesting)
Re:A good example of how coding has progressed (Score:3, Interesting)
BBC BASIC used 32-bit integers (denoted in variable names by a trailing %) and 40-bit floating point numbers, but 16-bit line numbers. Spectrum BASIC used a 40-bit internal representation for all numbers (integers -65536..+65536 were represented specially, using an exponent of -128, and a "mantissa" formed from a "sign byte" of either 0 or 255, the units, the 256es and zero; the Spectrum's internal calculator respected this special representation as far as possible and only ever converted a specially-represented integer to its floating-point representation if a calculation step exceeded the representable range) except for line numbers, which were 16-bit. Also on the Spectrum, the "reserved word" characters weren't non-printing; they just shew up as the word in full.
Anyway, integers are fixed-precision. They just go up in ones because that's convenient for people. If you want to have fractions to two places (e.g. if you're working with money), just multiply everything by 100 (and then think of it as pence as opposed to pounds). And be creative how you print it
Now I REALLY feel old... (Score:3, Interesting)
I worked down the hall from Willie Crowther when I was at BBN, and I asked him about why he wrote it ("I had some ideas on parsing response analysis I wanted to try"). I think I at least used to have a copy of the Fortran source code salted away on my account somewhere, though I'd probably have a problem laying my hands on it now. I just wasn't aware that anyone was looking for it.
Re:Yes, the famous FORTRAN computed GOTO... (Score:3, Interesting)
In fact, a switch in Java gets compiled into a computed goto in jasmin.
Re:A good example of how coding has progressed (Score:3, Interesting)