Git Product home page Git Product logo

zork1's Introduction

Zork I Source Code Collection

Zork I is a 1980 interactive fiction game written by Marc Blank, Dave Lebling, Bruce Daniels and Tim Anderson and published by Infocom.

Further information on Zork I:

What is this Repository?

This repository is a directory of source code for the Infocom game "Zork I", including a variety of files both used and discarded in the production of the game. It is written in ZIL (Zork Implementation Language), a refactoring of MDL (Muddle), itself a dialect of LISP created by MIT students and staff.

The source code was contributed anonymously and represents a snapshot of the Infocom development system at time of shutdown - there is no remaining way to compare it against any official version as of this writing, and so it should be considered canonical, but not necessarily the exact source code arrangement for production.

Basic Information on the Contents of This Repository

It is mostly important to note that there is currently no known way to compile the source code in this repository into a final "Z-machine Interpreter Program" (ZIP) file using an official Infocom-built compiler. There is a user-maintained compiler named ZILF that has been shown to successfully compile these .ZIL files with minor issues. There are .ZIP files in some of the Infocom Source Code repositories but they were there as of final spin-down of the Infocom Drive and the means to create them is currently lost.

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.

In general, Infocom games were created by taking previous Infocom source code, copying the directory, and making changes until the game worked the way the current Implementor needed. Structure, therefore, tended to follow from game to game and may or may not accurately reflect the actual function of the code.

There are also multiple versions of the "Z-Machine" and code did change notably between the first years of Infocom and a decade later. Addition of graphics, sound and memory expansion are all slowly implemented over time.

What is the Purpose of this Repository

This collection is meant for education, discussion, and historical work, allowing researchers and students to study how code was made for these interactive fiction games and how the system dealt with input and processing. It is not considered to be under an open license.

Researchers are encouraged to share their discoveries about the information in this source code and the history of Infocom and its many innovative employees.

zork1's People

Contributors

historicalsource avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zork1's Issues

Bringing Zork home: is the Infocom Drive image available?

This is clearly an issue that's larger than just Zork 1, but it's the obvious place to start.

I'm trying to get a generic Z-Machine interpreter running on a PDP-10, so that we can once again play the games where they're developed.

My work so far is at https://github.com/athornton/gnusto-frotz-tops20 , and it pulls from https://github.com/athornton/tops20-frotz ; the "unix-orig" branch there is the "dumb-2.32r1" branch of https://gitlab.com/DavidGriffith/frotz. I'm changing that in the "unix" branch, and then running gnusto-frotz-tops20 over it to mangle the symbols so that the PDP-10 linker can cope with it. That's the "master" branch.

I'm building the PDP-version under TOPS-20, using the "kcc" compiler that is part of the "pandas" distribution (I got mine from http://panda.trailing-edge.com/). Syntactically the sources need mangling so that all symbols linked externally are 6 characters or less and case-insensitive. The rest of the problem is that char is 9 bits, and short 18 bits, on TOPS-20, and Frotz is assuming 8/16. That part, I'm still working through.

The reasons for this particular combo of tools and versions are: that release of Frotz was back before it required C99, and kcc implements a pretty complete ANSI C so I didn't need to screw around finding a way to run unprotoize in a modern environment, and I don't know much about TOPS-20, so starting with a prebuilt distribution was a good idea.

All of which is a really long-winded way of saying: there obviously was a DECSystem-20 interpreter for the Z-machine at one point; this appears in frotz.h:

#define INTERP_DEC_20 1

And indeed in the Z-machine standard (https://www.inform-fiction.org/zmachine/standards/z1point1/) we find (https://www.inform-fiction.org/zmachine/standards/z1point1/sect11.html):

11.1.3
Infocom used the interpreter numbers:

   1   DECSystem-20     5   Atari ST           9   Apple IIc
   2   Apple IIe        6   IBM PC            10   Apple IIgs
   3   Macintosh        7   Commodore 128     11   Tandy Color
   4   Amiga            8   Commodore 64
(The DECSystem-20 was Infocom's own in-house mainframe.) 

My guess is that this interpreter may appear somewhere on the Infocom Drive. If we're very lucky, its source code (no idea what language it's in) will be there too.

Now, I think we actually want to use Frotz rather than the Infocom interpreter even if we locate it, because it will run all existing Infocom games, plus all the Z-machine games from the community through the 90s and 00s (more recently everyone's moved to the glulx format which is 32- rather than 16- bit). I suspect, based on the Infocom development strategy that there isn't a single generic DEC-20 interpreter but rather a bunch of slightly hacked game-specific interpreters (although maybe not! I remember how pleasantly surprised I was when I inserted the Zork disk after getting the prompt from a more recent Apple II Infocom game I had as a kid, and not only did Zork I run, it ran in mixed case even though the terp that came with Zork I was uppercase-only).

But it sure would be handy to see how the Implementors handled emulating a 16-bit machine on a 36-bit one, and I suspect it would save me some time while poking around in the guts of Frotz.

So, that brings me to the real question: can you make an image of the Infocom Drive available somewhere, so I can grab it, mount it to my emulated PDP-10, and poke around looking for the Z-machine interpreter sources? (Or if it's already in this collection somewhere, point me to where it is?)

About sharing knowledge

What is the problem with Chinese README's

Firstly, we congratulate you for getting so much star by sharing this repository with humanity.

But it is very disappointing for non-Chinese speakers when one couldn't understand what a trending repository is about.

When we see such a repo on trending, our minds are blurring like Gollum's.

Gollum Image

There is a way you can help to solve this disappointment which I believe is experienced by many people who want to know more about your valuable work and appreciate it.

What we want:

  • Please add English translation of your README so you are sharing your work and knowledge with more people.

How this will help you:

  • More feedback to fix and improve your project.
  • New ideas about your project.
  • Greater fame.
  • SungerBob Image

“Sharing knowledge is the most fundamental act of friendship. Because it is a way you can give something without loosing something.”

— Richard Stallman

Thank you!

This issue created by us/english-please script. Please report on any error. Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.