Chapter 3

Adventure As a Video Game: Adventure for the Atari 2600



I had played the new sensation, the original Adventure, when I finished designing my first video game. The time was June l978, I worked for Atari, and my next order of business was to begin working on another game cartridge for the Atari 2600 home video game. I had a scheme for adapting the text dialogue of Adventure into a video game -- use the joystick to move around, show one room at a time on the video screen, and show objects in the room as little shapes. I hoped the program to do this might somehow fit into the tiny (4K byte) memory available in a game cartridge, and so, in spite of my boss's skepticism, my infatuation with Adventure swept me into a mad frenzy of programming.



A month later, I had a prototype: the player could move a small square "cursor" from screen to screen, and could pick up the little colored shapes that were found on some of the screens. The screens were connected edge-to-edge. And there was a bothersome dragon that chased the cursor around, trying to eat it. Exhausted, I went on vacation, and found, on my return, that Atari upper management had decided that I should turn my fledgling adventure game into a video game about Superman. Atari's parent corporation, Warner Communication, owned the soon-to-be-released Superman movie, and a Superman video game could ride on the wave of "hype." I squirmed, and soon wriggled out of that assignment: my coworker John Dunn agreed to take over the program and turn it into Superman leaving me free to develop the same program in a different direction, namely, to continue with Adventure. (This sort of contrariness later caused Atari executives to label their video game designers "a bunch of high-strung prima donnas.") I moved forward, discovering how ideas from the text adventure game could be made to work as moving shapes in a video game, and discovering what the young tradition of video games could contribute to the new genre of adventure games. The program took eight months, from start to finish; Atari marketed the cartridge, and since Woods's game was in the public domain, the video game, too, could be called Adventure.


This new video version of Adventure was a quest: the player started out beside the Yellow Castle with the goal of retrieving the Enchanted Chalice, which was out there somewhere in the network of thirty rooms. (See Figure 3-1). To make things difficult, three dragons infested the game, chasing the player from room to room, and trying to eat him. A giant bat also causes trouble, moving objects around and stealing things from the player. There were a number of useful objects. The sword killed dragons. The bridge let the player cross walls in the maze. The magnet sucked out objects which were stuck in the walls. The black, white and yellow keys each unlocked a castle of matching color. (See Figure 3-2).




Figure 3-1

Map of the Network of Rooms

in Atari 2600 Adventure




Figure 3-2

Creatures and Objects

in Atari 2600 Adventure



Each of the three castles in Adventure had interiors composed of one or more rooms. The player entered a castle by moving into the portcullis grillwork in its doorway. However, the portcullis could be raised or lowered under control of a key, and when the portcullis was down, the castle was locked. Entering or leaving a locked castle was not possible. Each of the three castles had its own key object, and all the castles were locked when the game began.


This video game, Atari 2600 Adventure, was inspired directly by Crowther and Woods' text Adventure. I tried at first to create video game counterparts of features in the text game. The magic rod can create a crystal bridge to span an impassable fissure in the text version; I tried a rod-shape which, when it touched a maze wall, caused a bridge-shape to appear. The "maze of twisty little passages, all alike" became a very confusing 8-room video maze. These direct transliterations from text to video format didn't work out very well. While the general idea of a video game with rooms and objects seemed to be a good one, the graphic language of the video game had different strengths than the verbal language of the text dialogue. Just as the art form of film slowly diverged from its parent, drama, the animated adventure game diverged from the text adventure game because of the difference between the medium of text and the medium of animated graphics.




Player Input


The adaptation of the adventure game to the video game medium required a radical change in the form of the player's commands to the game. Typing was not possible on the Atari 2600 video game; the standard input was a joystick with one "fire" button on it. The video game player could push the joystick lever in one of four directions, or press the button. The text player, on the other hand, typed in a two-word command, composed of an action verb and a noun. There were dozens of words in the text game's vocabulary, both for nouns and for verbs; in two-word combinations, there were thousands of possible commands. How could the video game player initiate the wide variety of actions that were possible in the text game?


The joystick was a natural for north-south-east-west movement. There is something satisfyingly responsive about shoving the joystick lever and thereby moving a shape on the screen in the same direction. It is important that the player can hold onto the single lever and move it in any of several different directions. The lever itself fades out of consciousness, and the player feels that he is propelling the cursor with his own muscles, as if he were scooting a brick around on a sidewalk.


The player identifies himself with the shape he moves around on the video screen. When a player says "I ran into a wall." he means the shape he moved ran into a wall; he is that shape. In Atari 2600 Adventure, this self-shape is a little solid-colored square. It can be called a cursor, since its function as a position indicator is similar to the rectangular blinking cursor found on screens of text. I originally called it "the man."


Besides movement, picking up and dropping objects are the most important player actions in an adventure game. With the joystick lever assigned to movement, the single button on the base of the Atari joystick was the clear candidate for grappling with objects. It was not obvious exactly how the button should control taking and dropping objects. If the function of "take," for instance, was to be invoked when the button was pressed, which object should be taken? The graphical nature of the video game provided a solution to this. In the world of video games, objects on the screen usually interact only when they run into each other. This is called a "collision," and is defined as an overlap of one shape with another. The object-shape to be taken could be specified by moving the cursor to touch it. In fact, the collision itself could invoke the pick-it-up action; this left the button free for dropping. But drop what? If several objects had been picked up, a selection was again needed. And how should the carried objects be shown? Pushing the button could have called up an "inventory" screen, and the cursor could have been steered into the object to be dropped. However, a simpler solution was adopted: only one object could be carried at a time, and it was shown besides the cursor on the screen. Pushing the button dropped it.


This approach had several advantages. It was simpler, so the program was shorter. The screen always showed the room the player was in, and what he carried; the player didn't have to worry about being eaten by a dragon that came by while he was examining his inventory. Of course, time could have been suspended during inventory-view, but that didn't seem right for a real-time game. The limitation of being able to carry only one object gave the player some interesting strategic choices: which object should he carry -- the treasure or the weapon?


Since the object being carried was shown on the screen, it had a position relative to the cursor. The player could adjust the positioning of his held object. When exploring unknown dragon-infested territory, it usually made sense to have your sword out front, because simply holding a sword did not prevent a dragon from eating you -- but poking the sword into the dragon did. For a dragon which was scared of the sword, it worked better to loiter near a room boundary, with a behind-the-back sword dangling into the next room, ready to make a swift stroke when the dragon came into striking range.


What about all the other actions that a player might want to initiate in an adventure game? These, too, could be specified by touching objects together. For example, in a text game, one might command "KILL DRAGON." The corresponding action in the video game was to pick up a sword and touch it to the dragon. In a sense, the held object and the object touched were the analogs of the action verb and noun from the text adventure.


A great variety of "commands" might be given if the player had the right verb-objects at hand. Placing the bridge object across a maze wall and going across it was equivalent to "CROSS WALL." Touching a key to a castle's portcullis commanded "unlock castle." Bringing the magnet into a room to retrieve a sword stuck in the wall was like "ATTRACT SWORD." Thus, the syntax of nouns and verbs in the text adventure had an analog in a video adventure -- a "syntax" of overlapping shapes.






Objects which could be picked up, carried from place to place, and used for various tasks were described with a phrase of text in the original Adventure:


A three-foot black rod with a rusty star on the end lies nearby.


Such an object became, in the graphic language of the video adventure game, a little colored shape that appeared at some location on the screen. Each object had a location, which consisted of a room and an (X,Y) position within that room.


Each object in Atari 2600 Adventure does something. The keys open castles; the sword kills dragons; the bridge crosses walls; the magnet retrieves lost objects; and the chalice wins the game. It would be possible, of course, to have useless objects in a game, to serve as decoys or decorations, but in Adventure every object has a function. The objects are really tools, since the player can use them to cause things to happen in the game world.


Whereas the goal of the game in the original Adventure was treasure-gathering, video Adventure is defined as a quest. One single treasure, the Enchanted Chalice, must be located and brought home.
Thus, the tool-objects must contribute somehow to the overall goal of the quest. For example, if the chalice is locked inside the Black Castle, then finding the Block Key becomes a subgoal, subordinated to the primary goal of getting to the chalice . If the Black Key is found, but is inaccessible because of the dragon guarding it, then another subgoal is spawned -- find the sword so as to get past the dragon. Each tool-object is a means of getting past a certain kind of barrier. Since needed objects may be behind barriers which, in turn, require other objects, a hierarchy is created of goals and subgoals. Figure 3-3 shows the arrangements of some obstacles and their solutions.





Figure 3-3

Hierarchy of Goals and Subgoals

in Atari 2600 Adventure




A creature in an adventure game is an object that moves around on its own, initiating actions. It is best to consider a creature as a special type of object so that the creature can inherit the traits already defined for objects: shape, color, location and ability to be picked up. Each type of creature has some special rules that specifies how it behaves, what it responds to, and what actions it can take. These special rules are defined by a part of the game program, usually a subroutine, that corresponds to the creature type. There are two species of creature in Adventure: dragon and bat.


Dragons are the main villains in the game. There are three of them, and they chase the player around, trying to eat him. If the player's reflexes are too slow, or if he gets cornered, the dragon swallows him. Once eaten, the player can be "reincarnated" to get out of the dragon's belly, but as penalty he goes back to the starting location, loses whatever he was carrying, and any dragons he may have killed are reincarnated, too. (Having killed dragons is like being vulnerable in the game of bridge: there is more to lose in the battle with the third dragon. Getting eaten means that the two dead dragons will come back to life.)


There are four states that a dragon can be in, each shown on the screen by a different dragon-image: chasing the player, biting him, having swallowed him, and being dead. The state diagram of Figure 3-4 shows the conditions in the game that cause transition from one dragon-state to another. In a typical interaction between player and dragon, the dragon goes back and forth between the biting and chase states several times as it tries to eat the player, and then either the player gets away, gets eaten, or kills the dragon with the sword. The dragon graphics change rapidly, mirroring the state changes. Not only is this interesting animation, but it also gives the player valuable visual feedback about which state the dragon is in at any given moment.




Figure 3-4

State Diagram of Dragon



For the dragon to succeed in swallowing the player's cursor, it must collide once with the cursor (entering biting state), and after a fraction of a second, collide again. This brief delay gives the player time to recoil, and if his reflexes are fast enough, then he avoids being swallowed and the dragon resumes chasing him. As the player and dragon go repeatedly through this chase-bite cycle, neither has the advantage. The dragon wins the battle if it can swallow the player; the player wins if he can get to a sword and use it to kill the dragon.


It is significant that it takes two collisions with the dragon, not one, for the cursor to be swallowed. Merely colliding with the dragon is not fatal. Thus the interesting chase-bite cycle is made possible. Most video games define simple one-time collision with enemies as fatal and irrevocable, and thereby miss a chance to create a more interesting interaction.


The length of the recoil interval between biting and swallowing is quite important. If it is too long, it is trivial to avoid being eaten, and the player can ignore the dragon and do whatever he wants. If the interval is too short, the player never succeeds in recoiling, and gets eaten every time. There is a middle ground between "trivial" and "impossible" called "challenging." Trying out the game with various players and watching how well they do is the best way to adjust a game's timing. This process is called "tuning" the game. Varying the length of the recoil interval turned out to be an effective means of varying the game's difficulty. It ranges from around a tenth of a second at the most difficult, to about three seconds at the easiest.


The bat is the second species of creature in Adventure. The bat flaps from room to room carrying along an object, and periodically, he tires of his current trinket, and discards it in favor of a new object to carry off. Without the bat, non-creature objects would never move from the spots where the player dropped them. The effect of the bat is to move objects around, to disturb the predictability of the game. The bat is the game's confusion factor.


As detailed in Figure 3-5, the bat has two states: seeking a new object to pick up, and carrying off a newly acquired object, ignoring all other objects. This ignore-state, which lasts for about ten seconds after a new object is picked up, was needed to make sure the bat would carry its new trinket off to another room. In an early version of the game, the bat reentered seek-state immediately after picking up a new object; in a room containing two objects (plus the one carried by the bat) the bat would ferry objects back and forth between the two positions forever, never leaving the room.


The bat can carry dragons. It sometimes happens that the bat will appear carrying a dragon, steal the player's sword and fly off with it, leaving the disarmed player to deal with the left-behind dragon.




Figure 3-5

State Diagram of Bat





In a text adventure, a room is a single location. Although there are passages to other rooms, the room itself has no internal structure. A video adventure, by comparison, allows the player to have a position within a room, shown on the screen by the cursor's position. A single room can show a simple maze on the screen, with passages going off the screen to other (as yet unseen) maze-rooms. The walls of the maze, of course, block the cursor's movement. A 4- or 5-room maze can be quite complicated.


Besides forming mazes, walls prevent the player from leaving a room in certain directions, and thus help form the overall layout of the network of rooms. In some rooms in Woods's text adventure, typing "GO EAST" would produce this response:


There is no way to go that direction.


Walls perform the analogous function in a graphical adventure game.


A maze is a geometric construction in space; the positioning of its walls defines a maze. Video graphics do an excellent job of capturing the geometry of a maze. By contrast, using sentences to describe a maze is inefficient and piecemeal. A player lost in the maze of "twisty little passages" in Woods's text adventure invariably draws a map if he wants to get out by understanding the maze, rather than by just the luck of random wandering. The verbal representation of a maze is abstract, whereas the graphical representation is concrete and therefore less confusing. Five-year-olds learn the path to the Black Castle through the five maze rooms of the Blue Labyrinth in Adventure. Moving through the visual depiction of each room lets the child remember his path in the same way that he remembers the route from living room to bathroom in a friend's house.


One leaves a room in video Adventure by driving off the edge of the screen. Since the screen has four edges (top, bottom, left and right), every room has four links to other rooms (to the north, south, west and east). Going from one room to another in an adventure game is like using a Star Trek transporter. ("Beam me up, Scottie!") The player vanishes from one place and materializes in another place. The two places are not necessarily "near" each other: they are merely connected. It is often impossible to draw a map of an adventure game's network of rooms so that all linked rooms are side by side. The map of Adventure (Figure 3-l) is an example of that; although small groups of rooms can show links among each other by adjacency, there are leftover links that must be shown explicitly with lines running between the two connected places. If a map, which is a shrunken replica of a region's geometry, cannot be constructed, then that region cannot be built full-sized, either. In other words, these places are impossible. Adventure games simulate spaces that can't exist in the physical world. But it doesn't really matter that a map or scale model of these places cannot be built; the player can still move from room to room in the game. As in the Bugs Bunny cartoon with the vast volume inside the tiny tent, these impossible spaces have surprising properties.


A network of rooms, depending on how the rooms are interconnected, can have inconsistent geometry. One might assume that a lot of square screens connected edge-to-edge could be thought of as a big array of screens, arranged as rows and columns in a plane, just like the square tiles on a kitchen's linoleum floor. However, rooms can be interconnected in a way that is inconsistent with plane geometry, and with common-sense expectations about moving through space. Three inconsistencies that occur are non-retracible paths, non-unique diagonal rooms, and wrap-around paths. (See Figure 3-6).




Figure 3-6

Consistent versus Inconsistent Geometry



In moving through space, common sense suggests that the space passed through is still there, and that, if necessary, one should be able to turn around and retrace one's path back through that space. Of course, this is not always true in real life: there are one-way doors that swing shut and lock, and trap-doors that one can fall through and not be able to climb out of. If the player can go one room north, then go south from that room and be back where he started, he has retraced his path. However, if the room-to-room south link doesn't take him back where he started, there is no backing up -- he is on a one-way, non-retracible path. This non-retracability is a device the designer may use to construct a trickier, more confusing maze. Confusing the player to a certain degree is a quite proper objective for the game designer, because it is essential that a game be challenging. However, too much illogical trickiness can frustrate and irritate the player. In the video game Adventure, I chose to let the player be always able to retrace his path.


Does going one room north, then one room east get to the same place as east-then-north? The answer is either yes or no, depending on how the rooms are linked.


On a flat plane, going east forever will never bring one back to his starting point. However, the mathematical idea of an infinite plane implies infinite area, and it is hard to find truly infinite things in the real world. The surface of the earth, which is pretty flat, wraps around to meet itself eventually. The limited memory of a computer would have difficulty representing an infinite number of rooms. In a finite network of rooms, any path must eventually return (wrap around) to some previously encountered room, assuming the path is never blocked by walls.


The pattern of interconnection within a network of rooms is called topology. Topology has to do with what is connected to what. The four mazes of Adventure are all unrealizable in the flat. They wrap around in various strange ways (See Figure 3-7), and thus have interesting topologies.




Figure 3-7

Comparison of the Room Topologies

of the Four Mazes in Atari 2600 Adventure



The Blue Labyrinth


The Blue Labyrinth in Adventure has two features which make it different from mazes printed on paper: inconsistent geometry and partial view. Figure 3-8 shows how the five rooms are interconnected to form the Blue Labyrinth. The maze is more confusing than the diagrams suggest because only a part of the maze (one room) can be seen at any one time. Viewing the diagram, the eye can rapidly follow maze paths and identify deadends; but in playing the game, the cursor must move along each path to explore it, and laboriously retrace from deadends. Exploring is not only slower, but the explorer must rely on his memory of the maze-rooms he has passed through in order to form a mental model of the whole maze. Players find the Blue Labyrinth quite confusing at first -- more so than would be expected from the number of its forks and different passages -- and the principal source of this confusion is that the player gets only a partial view of the maze, never seeing the whole. One is reminded of the story of four blind men examining an elephant, forming different conclusions about what kind of beast it was from feeling its trunk, tusk, foot and tail. It is hard to reconcile several partial views of something into a coherent global picture.




Figure 3-8

Room Topology of the Blue Labyrinth in Atari 2600 Adventure



To add to the confusion, unless normal assumptions about spaces are abandoned, no coherent model of the Blue Labyrinth exists. This is because the Blue Labyrinth has several wrap-around paths and non-unique diagonal rooms. A player remarked that he could learn paths through the maze from place to place, but could never get a picture of the whole thing in his mind.


These inconsistent maze geometries are confusing because the player's experience with mazes (usually printed on flat pages) leads him to expect more flat mazes. He attempts to make a mental model which incorporates the maze rooms he has seen into a flat map. As he explores, contradictions occur in his mental flat map, but the assumption that maps are flat surfaces is very deep and hard to challenge. Experience exploring real-world mazes at least offers a clue -- the slope changes -- when surfaces are not flat. But the Blue Labyrinth offers no such clue.




The Red Maze


Inside the White Castle lies the Red Maze. (See Figure 3-9). The distinguishing feature of this maze is that it is composed of two disjoint sets of passages that are intertwined with each other, but do not connect. The player enters Section l of the maze through the door to the castle, and to be able to get into Section 2, he must bring the bridge object into the castle and use it to cross one of the maze-walls which separate the two sections.




Figure 3-9

Room Topology of the Red Maze

Inside the White Castle



Section l extends through only three of the four rooms of the Red Maze; without using the bridge, the player cannot get a glimpse of the fourth room and whatever useful objects it might contain. In Game 2 of Adventure, the key to the Black Castle starts out in this hard-to-get-to place.


The topology of the Red Maze is simpler than that of the Blue Labyrinth. The Red Maze wraps around in the horizontal dimension, and going down from either of the two lower rooms exits from the castle. One of these exits is the normal one through the door of the castle, but the other exit, from the hard-to-get-to room in Section 2, leads to the "balcony" of the White Castle. The link from the Red Maze to the balcony is one-way, however; it is not possible to go back into the Red Maze from the balcony. This violates my principle of making all paths retracible, and was a mistake -- a rejected earlier idea that was never expunged. (Once a product is released, harmless bugs like this one are often redefined by the marketing people as "features." The manual for Adventure explains away its bugs under the heading "Bad Magic.")






In the original text Adventure, once the player got a couple of rooms into the cave, he got this message:


It is now pitch dark. If you proceed you will likely

fall into a pit.


The solution was to light the "shiny brass lamp" picked up earlier. Atari 2600 Adventure has a maze which works in analogous fashion: orange lamp-glow penetrates a short distance into the surrounding gloom to expose nearby maze walls. Mazes of this type are called catacombs. Figure 3-l0a diagrams the walls of a typical maze-room in the catacombs, and the dotted line around the cursor shows how far the lamp-glow reaches. This illuminated area around the cursor is equivalent to the circle of radiance thrown out by a lantern, but in this case, a smooth circle being impossible, the circle of radiance is square. Beyond the illuminated area near the cursor, walls cannot be distinguished from passages. Figure 3-l0b shows the screen image resulting from the maze position diagrammed above it. The static image does a poor job of conveying the feel of being in the catacombs; the cursor can move about the screen, bumping into unsuspected walls, and the orange firelight surrounds the cursor wherever it goes. It is like shining a flashlight around in a cave.



(a) diagram of invisible part of maze


(b) actual screen image


Figure 3-10

One Maze-Room in the Catacombs



Just as seeing a single room of the Blue Labyrinth is a partial view of its 5-room entirety, the image of the maze-walls near the cursor is a partial view of a single catacomb room. The lamp-glow covers about a tenth of the screen . The two catacomb mazes in the game consist of three rooms and four rooms. So, in the catacombs, a partially viewed room, if the player could imagine it entire, is itself only a partial view of a multi-room maze. The smaller the individual views are relative to the whole, the greater the difficulty in assembling them into an overall picture. The Blue Labyrinth, with its five rooms viewed one at a time, has a fractional view ratio of l:5. By comparison, the 3-room catacombs near the White Castle, with each room seen one tenth at a time, compounds fractional views of l:3 and l:l0 to yield an overall ratio of l:30. Thirty different images must be remembered (or sketched) and joined together correctly to get a picture of the entire maze.


The interconnections among the three rooms of this maze are shown in Figure 3-ll.




Figure 3-11

Room Topology of the Catacombs Near the White Castle



The Catacombs Inside the Black Castle


The maze inside the Black Castle is a tricky one. It is a catacomb-type maze, with the lamp-glow surrounding the cursor allowing only a partial view of each room. Four rooms compose the maze, yielding a view ratio of l:40. In addition, the topology of the maze is complicated. (See Figure 3-l2.) Like the Red Maze, this maze has two disjoint parts: the bridge is needed to get from one section to the other. But unlike the Red Maze, where the two sections were of similar size, in this maze the isolated section is a tiny little chamber at the bottom of one room. The existence of this chamber is not obvious because when the player's cursor is beside the chamber, but not in it, the orange lamp-glow does not extend far enough for the player to see that the chamber is surrounded by maze-walls on four sides. The chamber (partially viewed) seems to be just the deadend of one of the other passages. And yes, there is an interesting object -- the Gray Dot -- hidden within this chamber.




Figure 3-12

Room Topology of the Catacombs

Inside the Black Castle



The dot was not needed in the normal play of the game. Being gray, it was invisible until it was picked up. It was not mentioned in the game's manual because Steve Harding, who wrote the manual, didn't know it existed. The dot's purpose which had to be discovered by trial and error, was to allow passage through a certain side-wall into a secret room. In this deviously hidden secret room, I affixed my signature, in flashing lights: "Created by Warren Robinett."


I did this in the tradition of artists, down through the centuries, identifying themselves as the authors of their own works. Atari imposed an irksome anonymity upon its designers, so subterfuge was required to put one's mark upon a game. I kept the secret of the signature room to myself for a year (not an easy thing to do) in order to avoid being forced to expunge it from the program, and also to test experimentally whether anyone could, on his own, discover such an obscure thing. I really wasn't sure that it would be discovered, but thought that if several hundred thousand cartridges were manufactured, then someone, somewhere, would find the dot and the secret room. I remembered, from when I was in high school, the rumors that Paul McCartney was dead, and how people played Beatle records backwards, searching for secret messages.


The Adventure cartridge was manufactured and marketed, and the secret room was discovered. A l5-year-old from Salt Lake City wrote to Atari, explaining with a detailed diagram how to get into the secret room. By then, I no longer worked for Atari, so they had a couple of their designers track down the part of the game program that produced the secret room. Brad Stewart, who located the offending code, said that if he was assigned to change the program, he would replace "Created by Warren Robinett" with "Fixed by Brad Stewart." Ultimately, Atari blessed the whole idea, referring to hidden surprises in their games as "Easter eggs."


The major innovation of Atari 2600 Adventure is the idea of moving a cursor through a network of screens connected edge-to-edge. This idea made it possible to make a video game which was at the same time an adventure game, by identifying the network of screens with the adventure game's network of rooms. The action of the game could therefore take place in a much larger and more interesting space than the single screen of most of the then-current video games. It was natural to adopt the small movable shapes provided for in the video game hardware to be adventure game objects. Woods had established in his text adventure that objects were tools for getting past obstacles. My idea for a sequel to Adventure was to allow tools to be combined in order to solve more complex problems. I thought of this as building machines. The idea evolved as I worked on it. The end result, three years later, was a game in which tool-objects (sensors, logic gates and others) could be combined to make machines which made things happen in the game in response to conditions detected by the sensors. This game was called Rocky's Boots.




Copyright 1983 Warren Robinett. All Rights Reserved.