1 of 18

Code Archaeology Slide: 1

Workshop Examining ZORK I (1980) Source Code

By Dr. Daniel Cox

Media Archaeology + Critical Code Studies

Slide 0.

You see the introduction.

>

1

2 of 18

Code Archaeology Slide: 2

Media Archaeology proposes three things:�

  • Present media is based on past media [See: Remediation by Bolter and Grusin (1999)]�
  • Media are built of “strata” (distinct layers) [See: The Geology of Media by Parikka (2015)]�
  • Media exist in “double articulation” where past and present meet [See: Media Archaeology by Huhtamo and Parikka (2011)]

2

3 of 18

Code Archaeology Slide: 3

Critical Code Studies supplies:

  • Code is a social text with computer and human audiences [See: Critical Code Studies by Marino (2020)]�
  • All software carry cultural values. [See: Software Takes Command by Manovich (2013)]�
  • Software is rhetorical. [See: Persuasive Games by Bogost (2007) and Rhetorical Code Studies by Brock (2019)]

3

4 of 18

Code Archaeology Slide: 4

Code Archaeology = Media Archaeology + Critical Code Studies:

  • Software is based on software. [See: The Art of Computer Programming: Volume 1 by Knuth (1968)]�
  • Look beyond the “partial” code available in any one file [See: Marino (2020) and Cox (2023)]�
  • Combine close reading with examination of “macro” patterns [See: Macroanalysis by Jockers (2013)]

4

5 of 18

Code Archaeology Slide: 5

Performing Code Archaeology:

  • Gather historical material and information.
    • What guides or commentary exists?
    • How did people describe it at the time?

  • Run and interact with software (if possible).
    • What input is needed?
    • What output does it produce?�
  • See code as developers do (if possible).
    • What keywords exist?
    • What structures occur across files?

5

6 of 18

Code Archaeology Slide: 6

Gather historical material and information:

  • What is it?
  • Who made it? (Developers, Company, and Publisher)
  • When was it made?
  • What language was the code written in?
    • What role did the language play in its development?
    • Were known tools, engines, or libraries used to create the project?

6

7 of 18

Code Archaeology Slide: 7

Zork I (1980):

Workshop Participants Answers:

Who: Tim Anderson, Marc Blanc, Bruce Daniels and Dave Lebling

When: 1980

What: Game

Publisher: Infocom

Language: Muddle (MDL), based on Lisp. (ZIL)

7

8 of 18

Code Archaeology Slide: 8

Run and interact with software (if possible).

Let’s play Zork I (1980) online.

(Alternatively, here.)

Take note of the following:

    • What input is needed?
    • What output does it produce?

8

9 of 18

Code Archaeology Slide: 9

Zork I (1980):

Tried: “go where ever”

Tried: “open mailbox”

Tried: “read leaflet”

9

10 of 18

Code Archaeology Slide: 10

See code as developers do (if possible):

  • Where can we find the code?

Zork I (1980) can be found and downloaded from GitHub.

(I recommend using Visual Studio Code to view!)

10

11 of 18

Code Archaeology Slide: 11

See code as developers do (if possible):

How do we see keywords and identify structures?

Syntax highlighters are available for most programming languages. These provide visual colors for the “syntax,” special keywords and symbols of the language.

In VS Code, these are Extensions.

11

12 of 18

Code Archaeology Slide: 12

12

13 of 18

Code Archaeology Slide: 13

The ZIL Extension will complain about the ZILF compiler not being installed. Close this message twice to get rid of future notifications for it.

13

14 of 18

Code Archaeology Slide: 14

  1. Open the downloaded code in Visual Studio Code (with the ZIL Extension installed).
  2. Click on the “zork1.zil” file.

14

15 of 18

Code Archaeology Slide: 15

See code as developers do (if possible):

    • What keywords exist?
    • What structures occur across files?

In the open “zork1.zil” file, what keywords do we see?

(Hint: keywords will be in a different color!)

What structures do we see?

(Hint: structures, like keywords, appear in different colors and usually use opening and closing symbols like parentheses, curly brackets, and square brackets.)

15

16 of 18

Code Archaeology Slide: 16

16

Question: “Is the story and game code separate?”

Question: “Can we find ‘leaflet’ in the code?”

Question: “What does OBJECT mean in this language?”

17 of 18

Code Archaeology Slide: 17

Looking for “macro” patterns:

Critical Code Studies asks us to examine single files or selection of code. A single file often acts as synecdoche: part for the whole.

Code Archaeology asks you to consider the whole in terms of metaphors: network, stack, etc.

17

18 of 18

Code Archaeology Slide: 18

Summary:

  • Gather guides, comments, and commentary, if available.
  • Play or otherwise interact with the software, if possible.
  • Examine the code as developers do, if possible.

18