(back to project list)

Disassembly of Scott Adams Adventures for the Apple II

In 1978, Scott Adams created a text adventure game called Adventureland for the TRS-80. This was one of the first text adventure games written for a microcomputer (games like Colossal Cave were written for larger systems). By 1981 his company, Adventure International, had published an even dozen adventure games for multiple platforms.

All of the games used a common interpreter, similar in concept to the Infocom Z-machine (for which there exists a converter). Using an interpreter allowed the games to be run on systems with very little RAM; the first games were sold to run on a machine with 16KB. The game database was not stored in quite the same way on every platform, though, so many of the game tools people have written to work with the games target specific systems.

In 1982, the games were re-released with graphics, as Scott Adams Graphic Adventures (SAGA).

The game disassembled here is text adventure #12, Golden Voyage. The interpreter code should be interchangeable with any of the others. I picked #12 on the assumption that it would include any bug fixes made along the way.

Golden Voyage is copyright 1981 by Adventure International.

Related resources:

How to Play

intro_msg playing

As with many adventure games of the era, you interact with the game using simple one- or two-word commands, like "GET LAMP" or "EXAMINE TABLET". Only the first few letters of each word matter, though the specific limit can vary from game to game between 3, 4, or 5 letters.

Some abbreviations are allowed:

Exits via the six primary directions are noted in the room description. Other movement options are possible, such as GO PALACE to enter the nearby palace, or GO OCEAN to go for a swim.

Some games are won by acquiring treasures, some by performing a specific task. In Adventureland, the goal is to gather all objects whose names begin with an asterisk, drop them in the designated treasure room, and then type "SCORE". In Golden Voyage, your goal is to save the king, who will die in 3 days without help.

Patches & Tweaks

The interpreter was written for upper-case only output, but the data file was generated for mixed-case. You can disable the upper-case conversion by setting 0be1:0 after loading the game. The command prompt, error messages, and parts of the room description are generated by the interpreter, and only exist in upper case.

You can enable debug messages by entering "T", "P", or "X" as a command. "T" enables a "DID" message that shows which action is being executed. "P" mode also shows a "PSBL" message that shows the conditions being tested for an action. "X" turns the messages off. The messages tend to get overwritten by the command prompt, but you can prevent that by putting them on separate lines: 1ff0:0d and 20c7:0d.