THE DISCOVERY INCIDENT
By David Woolley
You awake suddenly, and find
yourself with slight amnesia. The
only thing you can remember is that
you are captain of the starship
Discovery, which should be on a
direct course from the star system
Nu Draconis to Earth. But what has
happened while you were unconcious?
Why has the crew mysteriously
disappeared? And does the strange,
alien cannister in the launch bay
have anything to do with it?
XXX
Your job is to find out what went
wrong aboard the Discovery, and, if
possible, correct the situation.
You use one- and two-word commands,
with the basic sentence structure
of a verb and a noun. In this
adventure, you use the standard
commands of GO (followed by a
direction), GET (followed by an
object), and INVENTORY (which
displays a list of your current
objects) and others.
XXX
You'll find The Discovery Incident
on disk as ADVENT.BAS. You can run
this game directly from the disk,
but it you want to SAVE your games
you MUST copy this program to
another disk containing the DOS.SYS
file.
When you first RUN the game the
menu will appear, with options 0-4:
0- PLAY GAME
1- LOAD GAME
2- SAVE GAME
3- SWAP SETS
4- LEAVE
XXX
Option 0 starts the game where you
left it. To return to the menu
during the game, simply type MENU.
Option 1 loads a saved game, and
option 2 saves the game in
progress. If you are using a
cassette data recorder, add these
lines:
9155 OPEN #A2,A8,O,"C:"
9185 OPEN #A2,A4,O,"C:"
This will SAVE and LOAD from tape
instead of disk.
XXX
Option 3, swap sets, toggles
between the special character set I
designed, and the standard Atari
character set.
Option 4 returns you to BASIC,
clearing all variables.
XXX
Playing the Game
Select option 0. The screen turns
black, and at the top of the screen
is a short description of your
present location, including any
nearby objects that you could
carry. Note: the items listed
beside OBJECTS are not the only
objects in that location, just the
ones that you can pick up. You can
still manipulate other objects
described in the text.
XXX
When referring to items you can
pick up, always use the name that
is listed under OBJECTS, but when
referring to items listed in the
description, use only one word.
So, when you are talking about the
alien cannister, use CANNISTER.
You can use several commands to
move in a certain direction. For
instance, to go up a ladder you
could type GO UP, UP, U, or CLIMB
LADDER. Other commands you will
use frequently are GET, DROP and
INVENTORY. To repeat your last
command, just press [RETURN].
XXX
Program Take-Apart
All verbs and nouns are assigned a
number. This is done in the
subroutines from 8030 to 8060. The
program finds the number by sorting
through either the ACT$ string for
verbs, or the OBJ$ string for
nouns. The number of the command
is its starting position in the
string. So, the number for the
verb INVENTORY is 13, because
ACT$(13,15)="INV". Note that only
the first three letters are used.
The variables VB and NN are made
equal to these 'command numbers'.
XXX
A set of variables, A0-A9, O, and
LI, are established in the first
line, and are used in places to
refer to numbers. This is to save
memory. So, instead of using 0, we
use O(see line 3), A0 instead of
10(as in line 9077), and LI to
refer to line 52, which is often
used.
XXX
The custom character set was
designed to add "character" to the
game. Lines 9036 to 9045 contain
data for numbers 0-9, and lines
9046 to 9071 contains data for
letters A-Z.Line 9072 contains data
for the ? character, and lines
9073-9074 contains data for
characters ( and ). If you have no
experience with custom character
sets, try reading the article
Ultrafont (Antic August 1986), or
take a look at Instedit(AP0117)
from The Catalog.
XXX
Which line the object is on depends
upon its position in the OBJ$
string. So, WATCH is at line
11019, because WAT holds the
positions 19-21 in OBJ$. The
coordinates of each object that can
be picked up and moved are
contained in the two-dimensional
array OBJECTS, which is DIMed to a
maximum of (11,3) because there are
11 objects that can be TAKEn, and
there 3 coordinates. So,
OBJECTS(3,x) would refer to the
Manual, because it is the third
object in the OBJ$ string. Take a
look at this:
XXX
OBJECTS(3,1)=7
OBJECTS(3,2)=4
OBJECTS(3,3)=3
This means that the Manual's
coordinates are (7,4,3).If the
player was carring the Manual, then
three zeros would be placed into
OBJECTS(3,1-3). The starting
position of each object is placed
into the array at lines 9900 to
9925.