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.
- Disassembly listing of the game.
- Explanation of the game data format and the Apple II interpreter implementation.
- Project set - project files and binaries (requires SourceGen v1.7.5 or later).
- Disk image with text adventures 1-6.
- Disk image with text adventures 7-12.
- Scott Adams' home page.
- TRS-80 BASIC source code for the original Pirate's Adventure, published in the December 1980 issue of Byte Magazine. (A minor patch was published in the April 1981 issue.)
- Interpreters for various platforms.
- Scott Adams Compiler, for generating a game database from text files.
- Solutions for a variety of Apple II games.
How to Play
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:
- I is short for INVENTORY or TAKE INVENTORY, to see what you're carrying.
- N S E W U D are short for GO <direction>, and will move you north, south, east, west, up, or down.
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.