Source:Eamon Variables List

From Eamon Wiki
Jump to navigation Jump to search
This page is a verbatim reproduction of original source material and should not be edited except for maintenance.

A list of variables used in Eamon, first published as a "Dungeon Designs" column in the September 1992 issue of the EAG newsletter, and then distributed by Zuchowski as a standalone document at Mac GUI with filename EAMON.VAR.LIST and catalog number 19410.



September 1992


Tom Zuchowski


The use of this item is permitted and constitutes fair use on the grounds that it's free or in the public domain.

Dungeon Designs

A complete listing of all variables in the MAIN PGM:

A Temporary variable and counter
A$ String read in from EAMON.DESC
Full command typed by player
Name of Art. being PUT or GIVEn
A$(*) Artifact names
A%(x,y) Artifact data; x is Art. number; (see below for values of y)
A2 Temporary variable and counter
AC Armor Class of armor brought by player from Main Hall
AE Armor Expertise; affects combat odds
AR Artifact number of ARmor being worn
B FAST.START parm byte; used to compute if FAST.START file is valid
B$ Name of Monster being GIVEn to
Name of Monster being REQUESTed from
Name of Artifact being PUT
B% Ampersand Integer array search variable used to pass the last location to be searched to the ampersand routine
Temporary variable
BA Money in BAnk
BV$(*) Attack Verbs used during melees
C Command array number of current command
C% Ampersand search routine Counter
C$(*) Command verb array
CC Line counter for printing valid commands
CH Player's CHarisma
CP Number of Columns of display (40 or 80)
CZ$ Command given in last round of play
D Temporary variable
Direction being moved (123456 = NSEWUD)
Number of dice for combat resolution
D$ CHR$(4) for DOS
D% Value to be searched for by Ampersand Integer array search routine
D2 Damage points taken by Defender in combat
D3 Counter variable
DF Monster number of DeFender in combat
DI "DIe" flag-set to 1 if player is killed
EA Armor Expertise weighting factor
ED$ String: "EAMON.DESC"
EM "EMbedded" location checked by Artifact search routine at 4800
F "Found" flag-set to 1 if a match is found by the search routines at 4700 and 4800
F(*) Total hits taken in combat:
  F(1) = enemies in room
  F(3) = player and friends in room
F1 Low byte of top of free memory before string is read in from EAMON.DESC
F2 High byte of top of free memory before string is read in from EAMON.DESC
FF$ Form Feed character CHR$(12) required by Videx 80-column cards
FR Temporary variable used to compute FRiendliness of newly met monsters
G Monster number of Guard of bound monster
GO Player's GOld
HA "HAve" (being carried) location checked by Artifact search routine at 4800
HI "HIt" flag-set to 1 if defender has been hit in combat
HM "HIMEM" variable; used to compute if FAST.START file is valid
K Temporary variable used when attacking artifacts and freeing bound monsters
L Line counter for screen pause
LA Length of records in EAMON.ARTIFACTS
LK Temporary flag variable-set to 1 if INVENTORY finds artifacts being carried or if OPEN finds artifacts in a container
LL Number of lines in string read in from EAMON.DESC
LM Length of records in EAMON.MONSTERS
LR Length of records in EAMON.ROOMS
LS Artifact number of artifact being carried that is current Light Source
LT LiT Room flag-set to 1 if room is lit
M Temporary counter variable
M$ Monster name being searched by array search routine at 4700
M$(*) Monster names
M%(x,y) Monster data; 'x' is monster number; (Monster '0' is the player)
M%(x,0) 'Seen' flag
M%(x,1) Hardiness
M%(x,2) Agility
M%(x,3) # of members in group
M%(x,4) Courage
M%(x,5) Room number
M%(x,6) Weight (not currently used)
M%(x,7) Armor thickness
M%(x,8) Weapon number
M%(x,9) Number of dice (natural weapon)
M%(x,10) No. of dice sides (natural weapons)
M%(x,11) Friendliness
M%(x,12) Original size of group
M%(x,13) Damage or hits taken
M2 Temporary variable and counter
MC Counter for group Monsters during combat
MR% Number of monsters that flee from combat
NA Number of Artifacts (including those brought by player from the Main Hall)
NC Number of valid Commands
ND Number of valid Directions
NE Number of Effects
NL Flag set to 1 if room is Naturally Lit
NM Number of Monsters
NR Number of Rooms
NX Number of eXits from room
NZ Number of artifacts in database (not including those brought by player)
OF Monster number of attacker in combat
Q Temporary variable used in GIVE, PUT
Q$ Temporary input string used in GIVE, PUT
R Record number to be read in from EAMON.DESC
Temporary random number
R2 Number of room being moved to
R3 Number of room last moved from
RB$(*) Verb that describes non-hit attack result
RD%(*) Array containing exits from room
RE REcord number of player character in CHARACTERS file on Main Hall disk
RL Temporary random number; temporary variable
RN$ Room Name of present room
RO ROom number of present room
S Number of dice Sides used to compute damage in combat
Array location of Spell data for spell being cast
S$ Subject (object) of command
S2%(*) Current level of Spell abilities
SA%(*) Absolute level of Spell abilities
SE$ SEx of player character
SH Artifact number of SHield being worn
SL Temporary variable used for S$ String Length during array searches
SM$(*) SMILE response verbs
SP SPEED spell counter until expiration
SU Flag set to 1 if spellcast was SUccessful
SX Temporary variable used when ATTACKing artifacts
SY Artifact number of SYnonym
SY$ Name of SYnonym
T(*) Total hardiness of combat groups:
  T(1) = enemies
  T(3) = friends
TA Flag set to 1 to tell ATTACK code that it is handling a BLAST spellcast
TP Total value of loot sold at end of game
UP Flag to increase weapon ability
V$ Command Verb
V%(*) 'Seen' flag for rooms
W Weapon number of player
Counter at end of game for player's Weapons
W2 Complexity of readied Weapon
Counter used at initialization to search for duplicate artifact names
Number of Weapons carried by player at end of game
W5 Input variable for Weapon number that player is selling at end of game
WA%(*) Player Weapon type Abilities
WD%(*,*) Weapon Data for weapons taken back to the Main Hall
WH "WHere" location checked by Artifact search routine at 4800
WM Computed odds of achieving a hit during combat
WP$(*) Names of all Weapons being carried by Player at end of game
WP%(*) Artifact number of all Weapons being carried by Player at end of game
WT Combined WeighT of all artifacts being carried by player
X Temporary variable and counter
Z Number of artifact that is being PUT

"Seen" flags

These variables tell the YOU SEE routine whether it should print the long description of the room, artifact, or monster. If the 'Seen' flag is zero, the description is printed.

Search Routine variables

The variables EM, HA and WH are used by the various command routines to pass location search parameters to the artifact array search routine at 4800 and the monster array search routine at 4700. The default values for these are:

EM <EMbedded> Room number + 200
HA <HAve it> - 1 (carried by player)
WH <WHere> Room number

For example, the EXAMINE command would use these defaults, in order to look for artifacts in the room, both seen and unseen, and carried by the player. But the DROP command will set all three of these to (-1) so that only artifacts being carried by the player will be found by the search routine. The GET routine sets HA = WH so that the player can't GET something that he is already carrying.

When the search routines at 4700 or 4800 have completed their search, they set the variable F = 1 if an artifact or monster is matched to the object specified by the player's command, but set F = 0 if no match was found;

Artifact arrays

The first five array locations of all artifacts are identical:

A%(x,0) "Seen" flag
A%(x,1) Value
A%(x,2) Type
A%(x,3) Weight
A%(x,4) Location

There are ten different formats for the next four array locations, depending on what the artifact type is:

Type 0 (Gold), 1 (Treasure):

A%(x,5) Not used
A%(x,6) Not used
A%(x,7) Not used
A%(x,8) Not used

Type 2 (Weapon), 3 (Magic Weapon)

A%(x,5) Weapon type
A%(x,6) Complexity
A%(x,7) Number of dice
A%(x,8) Number of dice sides

Type 4 (Container)

A%(x,5) Artifact number of key
A%(x,6) Strength
A%(x,7) Set to 1 if open
A%(x,8) Not used

Type 5 (Lightable)

A%(x,5) Counter until extinguished
A%(x,6) Not used
A%(x,7) Not used
A%(x,8) Not used

Type 6 (Drinkable)

A%(x,5) Healing amount
A%(x,6) Number of uses
A%(x,7) Set to 1 if open
A%(x,8) Not used

Type 7 (Readable)

A%(x,5) Record number of 1st Effect
A%(x,6) Number of Effects to print
A%(x,7) Set to 1 if open
A%(x,8) Not used

Type 8 (Door/Gate)

A%(x,5) Number of room beyond
A%(x,6) Artifact number of key
A%(x,7) Strength
A%(x,8) Set to 1 if hidden

Type 9 (Key)

A%(x,5) Not used
A%(x,6) Not used
A%(x,7) Not used
A%(x,8) Not used

Type 10 (Bound Monster)

A%(x,5) Monster number when freed
A%(x,6) Artifact number of key
A%(x,7) Monster number of Guard
A%(x,8) Not used

Type 11 (Wearable)

A%(x,5) Armor class (not implemented)
A%(x,6) Type (not implemented)
A%(x,7) Not used
A%(x,8) Not used

That pretty much covers all of the variables. See the DDD manual for more information.

ProDOS NOTE: Most of the DOS 3.3 MAIN PGM Init code at 31000 and 33000 is broken out into a separate program named MAKE.FAST.START. The MAIN.PGM uses the FAST.START VAR file generated by this program to save memory and for much faster startups. Once you have entered your data, run MAKE.FAST.START before testing the adventure.

Also note that ProDOS adventures as distributed by the EAG do not usually contain the data files EAMON.ARTIFACTS nor EAMON.MONSTERS. This data is contained in the FAST.START file. If you want to edit or list the adventure data, first run the program MAKE.ARTS.MONS to generate the two missing data files. If you make a change to the artifact or monster data, be sure to rerun MAKE.FAST.START when done to update the FAST.START file.