Skip to navigation

Elite on the BBC Micro and NES

List of all variables

[BBC Master version]

This index contains every variable that appears in the source code for the BBC Master version of Elite, grouped by category. A variable is defined as a labelled memory location that is used for storing data, and this list includes both variables that are defined in workspaces, and variables that are declared within the body of the source code.

Dashboard
---------

ECBTThe character bitmap for the E.C.M. indicator bulb
SPBTThe bitmap definition for the space station indicator bulb

Drawing lines
-------------

BOMBPOSA set of x-coordinates that are used as the basis for the energy bomb's zig-zag lightning bolt
BOMBTBXThis is where we store the x-coordinates for the energy bomb's zig-zag lightning bolt
BOMBTBYThis is where we store the y-coordinates for the energy bomb's zig-zag lightning bolt
SIGHTCOLColours for the crosshair sights on the different laser types

Drawing pixels
--------------

CTWOSReady-made single-pixel character row bytes for mode 2
orangeLookup table for 2-pixel mode 1 orange pixels for the sun
PXCLA four-colour mode 1 pixel byte that represents a dot's distance
TWFLReady-made character rows for the left end of a horizontal line
TWFRReady-made character rows for the right end of a horizontal line
TWOSReady-made single-pixel character row bytes for mode 1
TWOS (Loader)Ready-made single-pixel character row bytes for mode 1
TWOS2Ready-made double-pixel character row bytes for mode 1
ylookupLookup table for converting pixel y-coordinate to page number of screen address

Drawing planets
---------------

CNT (Loader)A counter for use in drawing Saturn's planetary body
CNT2 (Loader)A counter for use in drawing Saturn's background stars
CNT3 (Loader)A counter for use in drawing Saturn's rings
RAND (Loader)The random number seed used for drawing Saturn

Drawing ships
-------------

coltablColours for ship explosions
E% (Game data)Ship blueprints default NEWB flags
exlookAn unused block of explosion data
scacolShip colours on the scanner
SHIP_ADDER (Game data)Ship blueprint for an Adder
SHIP_ANACONDA (Game data)Ship blueprint for an Anaconda
SHIP_ASP_MK_2 (Game data)Ship blueprint for an Asp Mk II
SHIP_ASTEROID (Game data)Ship blueprint for an asteroid
SHIP_BOA (Game data)Ship blueprint for a Boa
SHIP_BOULDER (Game data)Ship blueprint for a boulder
SHIP_CANISTER (Game data)Ship blueprint for a cargo canister
SHIP_COBRA_MK_1 (Game data)Ship blueprint for a Cobra Mk I
SHIP_COBRA_MK_3 (Game data)Ship blueprint for a Cobra Mk III
SHIP_COBRA_MK_3_P (Game data)Ship blueprint for a Cobra Mk III (pirate)
SHIP_CONSTRICTOR (Game data)Ship blueprint for a Constrictor
SHIP_CORIOLIS (Game data)Ship blueprint for a Coriolis space station
SHIP_COUGAR (Game data)Ship blueprint for a Cougar
SHIP_DODO (Game data)Ship blueprint for a Dodecahedron ("Dodo") space station
SHIP_ESCAPE_POD (Game data)Ship blueprint for an escape pod
SHIP_FER_DE_LANCE (Game data)Ship blueprint for a Fer-de-Lance
SHIP_GECKO (Game data)Ship blueprint for a Gecko
SHIP_KRAIT (Game data)Ship blueprint for a Krait
SHIP_MAMBA (Game data)Ship blueprint for a Mamba
SHIP_MISSILE (Game data)Ship blueprint for a missile
SHIP_MORAY (Game data)Ship blueprint for a Moray
SHIP_PLATE (Game data)Ship blueprint for an alloy plate
SHIP_PYTHON (Game data)Ship blueprint for a Python
SHIP_PYTHON_P (Game data)Ship blueprint for a Python (pirate)
SHIP_ROCK_HERMIT (Game data)Ship blueprint for a rock hermit (asteroid)
SHIP_SHUTTLE (Game data)Ship blueprint for a Shuttle
SHIP_SIDEWINDER (Game data)Ship blueprint for a Sidewinder
SHIP_SPLINTER (Game data)Ship blueprint for a splinter
SHIP_THARGOID (Game data)Ship blueprint for a Thargoid mothership
SHIP_THARGON (Game data)Ship blueprint for a Thargon
SHIP_TRANSPORTER (Game data)Ship blueprint for a Transporter
SHIP_VIPER (Game data)Ship blueprint for a Viper
SHIP_WORM (Game data)Ship blueprint for a Worm
shpcolShip colours
XX21 (Game data)Ship blueprints lookup table

Drawing the screen
------------------

B% (Loader)VDU commands for setting the square mode 1 screen
TVT1Palette data for the mode 2 part of the screen (the dashboard)
TVT3Palette data for the mode 1 part of the screen (the top part)
VECThe original value of the IRQ1 vector
VSCANDefines the split position in the split-screen mode

Equipment
---------

PRXSEquipment prices

Keyboard
--------

IKNSLookup table for in-flight keyboard controls
KTRANThe key logger buffer that gets updated by the OSWORD 240 command
TGINTThe keys used to toggle configuration settings when the game is paused
TRTB%Translation table from internal key number to ASCII

Loader
------

Dashboard image (Game data)The binary for the dashboard image
MESS1 (Loader)The OS command string for loading the BDATA binary
MESS2 (Loader)The OS command string for loading the main game code binary
MESS3 (Loader)The OS command string for changing the disc directory to E

Market
------

QQ23Market prices table

Maths (Arithmetic)
------------------

aloghBinary antilogarithm table
logBinary logarithm table (high byte)
logLBinary logarithm table (low byte)

Maths (Geometry)
----------------

ACT (Game data)Arctan table
SNE (Game data)Sine/cosine table

Save and load
-------------

CHKFirst checksum byte for the saved commander data file
CHK2Second checksum byte for the saved commander data file
CTLIThe OS command string for cataloguing a disc
DELIThe OS command string for deleting a file
DIRIThe OS command string for changing directory on the Master Compact
lodoscThe OS command string for loading a commander file
NA%The data block for the last saved commander
NA2%The data block for the default commander
oldlongContains the length of the last saved commander name
S1%The drive and directory number used when saving or loading a commander file
savoscThe OS command string for saving a commander file
stackptTemporary storage for the stack pointer when jumping to the break handler at NEWBRK
thislongContains the length of the most recently entered commander name

Ship hangar
-----------

HANGFLAGThe number of ships being displayed in the ship hangar
HATBShip hangar group table

Sound
-----

SFXBTSound data block 2
SFXFQSound data block 3
SFXPRSound data block 1
SFXVCSound data block 4
SOFHSound chip data mask for choosing a tone channel in the range 0-2
SOFLGThe sound buffer where the data to be sent to the sound chip is processed
SOOFFSound chip data to turn the volume down on all channels and to act as a mask for choosing a tone channel in the range 0-2

Status
------

KWH% (Game data)Integer number of kills awarded for destroying each type of ship
KWL% (Game data)Fractional number of kills awarded for destroying each type of ship

Text
----

DTW1A mask for applying the lower case part of Sentence Case to extended text tokens
DTW2A flag that indicates whether we are currently printing a word
DTW3A flag for switching between standard and extended text tokens
DTW4Flags that govern how justified extended text tokens are printed
DTW5The size of the justified text buffer at BUF
DTW6A flag to denote whether printing in lower case is enabled for extended text tokens
DTW8A mask for capitalising the next letter in an extended text token
FONT%A copy of the character definition bitmap table from the MOS ROM
JMTBThe extended token table for jump tokens 1-32 (DETOK)
MTINLookup table for random tokens in the extended token table (0-37)
QQ16The two-letter token lookup table
QQ18 (Game data)The recursive token table for tokens 0-148
RLINEThe OSWORD configuration block used to fetch a line of text from the keyboard
RUGAL (Game data)The criteria for systems with extended description overrides
RUPLA (Game data)System numbers that have extended description overrides
RUTOK (Game data)The second extended token table for recursive tokens 0-26 (DETOK3)
TENSA constant used when printing large numbers in BPRNT
TKN1 (Game data)The first extended token table for recursive tokens 0-255 (DETOK)
TKN2The extended two-letter token lookup table

Universe
--------

spastoContains the address of the Coriolis space station's ship blueprint
UNIVTable of pointers to the local universe's ship data blocks

Utility routines
----------------

F%Denotes the end of the main game code, from Elite A to Elite H

Workspace variables
-------------------

ALP1 Magnitude of the roll angle alpha, i.e. |alpha|, which is a positive value between 0 and 31
ALP2 Bit 7 of ALP2 = sign of the roll angle in ALPHA
ALPHA The current roll angle alpha, which is reduced from JSTX to a sign-magnitude value between -31 and +31
ALTIT Our altitude above the surface of the planet or sun
ASH Aft shield status
auto Docking computer activation status
AVL Market availability in the current system
BALI This byte appears to be unused
BET1 The magnitude of the pitch angle beta, i.e. |beta|, which is a positive value between 0 and 8
BET2 Bit 7 of BET2 = sign of the pitch angle in BETA
BETA The current pitch angle beta, which is reduced from JSTY to a sign-magnitude value between -8 and +8
BOMB Energy bomb
boxsize This byte appears to be unused
BST Fuel scoops (BST stands for "barrel status")
BSTK Bitstik configuration setting
BUF The line buffer used by DASC to print justified text
CABTMP Cabin temperature
CASH Our current cash pot
CATF The disc catalogue flag
CNT Temporary storage, typically used for storing the number of iterations required when looping
CNT2 Temporary storage, used in the planet-drawing routine to store the segment number where the arc of a partial circle should start
COK Flags used to generate the competition code
COL Temporary storage, used to store colour information when drawing pixels in the dashboard
COMC The colour of the dot on the compass
COMX The x-coordinate of the compass dot
COMY The y-coordinate of the compass dot
CRGO Our ship's cargo capacity
DAMP Keyboard damping configuration setting
de Equipment destruction flag
DELT4 Our current speed * 64 as a 16-bit value
DELTA Our current speed, in the range 1-40
DFLAG This byte appears to be unused
dialc These bytes appear to be unused
dials These bytes appear to be unused
DISK The configuration setting for toggle key "T", which isn't actually used but is still updated by pressing "T" while the game is paused. This is a configuration option from some non-BBC versions of Elite that lets you switch between tape and disc
distaway Used to store the nearest distance of the rotating ship on the title screen
DJD Keyboard auto-recentre configuration setting
DKCMP Docking computer
DL Vertical sync flag
DLY In-flight message delay
DNOIZ Sound on/off configuration setting
dontclip This is set to 0 in the RES2 routine, but the value is never actually read
ECM E.C.M. system
ECMA The E.C.M. countdown timer, which determines whether an E.C.M. system is currently operating:
ECMP Our E.C.M. status
ENERGY Energy bank status
ENGY Energy unit
ESCP Escape pod
EV The "extra vessels" spawning counter
FIST Our legal status (FIST stands for "fugitive/innocent status"):
FLAG A flag that's used to define whether this is the first call to the ball line routine in BLINE, so it knows whether to wait for the second call before storing segment data in the ball line heap
FLH Flashing console bars configuration setting
FRIN Slots for the ships in the local bubble of universe
frump Used to store the number of particles in the explosion cloud, though the number is never actually used
FSH Forward shield status
GCNT The number of the current galaxy (0-7)
GHYP Galactic hyperdrive
GNTMP Laser temperature (or "gun temperature")
gov The current system's government type (0-7)
HFX A flag that toggles the hyperspace colour effect
INF Temporary storage, typically used for storing the address of a ship's data block, so it can be copied to and from the internal workspace at INWK
INWK The zero-page internal workspace for the current ship data block
JOPOS Contains the high byte of the latest value from ADC channel 1 (the joystick X value), which gets updated regularly by the IRQ1 interrupt handler
JSTE Reverse both joystick channels configuration setting
JSTGY Reverse joystick Y-channel configuration setting
JSTK Keyboard or joystick configuration setting
JSTX Our current roll rate
JSTY Our current pitch rate
JUNK The amount of junk in the local bubble
K Temporary storage, used in a number of places
K2 Temporary storage, used in a number of places
K3 Temporary storage, used in a number of places
K4 Temporary storage, used in a number of places
K5 Temporary storage used to store segment coordinates across successive calls to BLINE, the ball line routine
K6 Temporary storage, typically used for storing coordinates during vector calculations
KL The following bytes implement a key logger that enables Elite to scan for concurrent key presses of the primary flight keys, plus a secondary flight key
KY1 "?" is being pressed
KY12 TAB is being pressed
KY13 ESCAPE is being pressed
KY14 "T" is being pressed
KY15 "U" is being pressed
KY16 "M" is being pressed
KY17 "E" is being pressed
KY18 "J" is being pressed
KY19 "C" is being pressed
KY2 Space is being pressed
KY20 "P" is being pressed
KY3 "<" is being pressed
KY4 ">" is being pressed
KY5 "X" is being pressed
KY6 "S" is being pressed
KY7 "A" is being pressed
LAS Contains the laser power of the laser fitted to the current space view (or 0 if there is no laser fitted to the current view)
LAS2 Laser power for the current laser
LASCT The laser pulse count for the current laser
LASER The specifications of the lasers fitted to each of the four space views:
LASX The x-coordinate of the tip of the laser line
LASY The y-coordinate of the tip of the laser line
LATCH (Loader) The RAM copy of the currently selected paged ROM/RAM in SHEILA &30
LSNUM The pointer to the current position in the ship line heap as we work our way through the new ship's edges (and the corresponding old ship's edges) when drawing the ship in the main ship-drawing routine at LL9
LSNUM2 The size of the existing ship line heap for the ship we are drawing in LL9, i.e. the number of lines in the old ship that is currently shown on-screen and which we need to erase
LSO The ship line heap for the space station (see NWSPS) and the sun line heap (see SUN)
LSP The ball line heap pointer, which contains the number of the first free byte after the end of the LSX2 and LSY2 heaps (see the deep dive on "The ball line heap" for details)
LSX LSX contains the status of the sun line heap at LSO
LSX2 The ball line heap for storing x-coordinates (see the deep dive on "The ball line heap" for details)
LSY2 The ball line heap for storing y-coordinates (see the deep dive on "The ball line heap" for details)
MANY The number of ships of each type in the local bubble of universe
MCH The text token number of the in-flight message that is currently being shown, and which will be removed by the me2 routine when the counter in DLY reaches zero
MCNT The main loop counter
messXC Temporary storage, used to store the text column of the in-flight message in MESS, so it can be erased from the screen at the correct time
MJ Are we in witchspace (i.e. have we mis-jumped)?
MOS Determines whether we are running on a Master Compact
MOS (Loader) Determines whether we are running on a Master Compact
MSAR The targeting state of our leftmost missile
mscol This byte appears to be unused
MSTG The current missile lock target
NAME The current commander name
NEWB The ship's "new byte flags" (or NEWB flags)
newzp This is used by the STARS2 routine for storing the stardust particle's delta_x value
NMI Used to store the ID of the current owner of the NMI workspace in the NMICLAIM routine, so we can hand it back to them in the NMIRELEASE routine once we are done using it
NOMSL The number of missiles we have fitted (0-4)
NOSTM The number of stardust particles shown on screen, which is 20 (#NOST) for normal space, and 3 for witchspace
P Temporary storage, used in a number of places
P (Loader) Temporary storage, used in a number of places
PATG Configuration setting to show the author names on the start-up screen and enable manual hyperspace mis-jumps
Q Temporary storage, used in a number of places
Q (Loader) Temporary storage, used in a number of places
QQ0 The current system's galactic x-coordinate (0-256)
QQ1 The current system's galactic y-coordinate (0-256)
QQ10 The galactic y-coordinate of the crosshairs in the galaxy chart (and, most of the time, the selected system's galactic y-coordinate)
QQ11 The type of the current view:
QQ12 Our "docked" status
QQ14 Our current fuel level (0-70)
QQ15 The three 16-bit seeds for the selected system, i.e. the one in the crosshairs in the Short-range Chart
QQ17 Contains a number of flags that affect how text tokens are printed, particularly capitalisation:
QQ19 Temporary storage, used in a number of places
QQ2 The three 16-bit seeds for the current system, i.e. the one we are currently in
QQ20 The contents of our cargo hold
QQ21 The three 16-bit seeds for the current galaxy
QQ22 The two hyperspace countdown counters
QQ24 Temporary storage, used to store the current market item's price in routine TT151
QQ25 Temporary storage, used to store the current market item's availability in routine TT151
QQ26 A random value used to randomise market data
QQ28 The current system's economy (0-7)
QQ29 Temporary storage, used in a number of places
QQ3 The selected system's economy (0-7)
QQ4 The selected system's government (0-7)
QQ5 The selected system's tech level (0-14)
QQ6 The selected system's population in billions * 10 (1-71), so the maximum population is 7.1 billion
QQ7 The selected system's productivity in M CR (96-62480)
QQ8 The distance from the current system to the selected system in light years * 10, stored as a 16-bit number
QQ9 The galactic x-coordinate of the crosshairs in the galaxy chart (and, most of the time, the selected system's galactic x-coordinate)
R Temporary storage, used in a number of places
RAND Four 8-bit seeds for the random number generation system implemented in the DORND routine
RAT Used to store different signs depending on the current space view, for use in calculating stardust movement
RAT2 Temporary storage, used to store the pitch and roll signs when moving objects and stardust
S Temporary storage, used in a number of places
safehouse Backup storage for the seeds for the selected system
SC Screen address (low byte)
SCH Screen address (high byte)
SLSP The address of the bottom of the ship line heap
SSPR "Space station present" flag
STP The step size for drawing circles
SUNX The 16-bit x-coordinate of the vertical centre axis of the sun (which might be off-screen)
SVC The save count
SWAP Temporary storage, used to store a flag that records whether or not we had to swap a line's start and end coordinates around when clipping the line in routine LL145 (the flag is used in places like BLINE to swap them back)
SX This is where we store the x_hi coordinates for all the stardust particles
SXL This is where we store the x_lo coordinates for all the stardust particles
SY This is where we store the y_hi coordinates for all the stardust particles
SYL This is where we store the y_lo coordinates for all the stardust particles
SZ This is where we store the z_hi coordinates for all the stardust particles
SZL This is where we store the z_lo coordinates for all the stardust particles
T Temporary storage, used in a number of places
T (Loader) Temporary storage, used in a number of places
T1 Temporary storage, used in a number of places
T2 This byte appears to be unused
T3 This byte appears to be unused
T4 This byte appears to be unused
TALLY Our combat rank
TALLYL Combat rank fraction
tek The current system's tech level (0-14)
TGT Temporary storage, typically used as a target value for counters when drawing explosion clouds and partial circles
TP The current mission status
TRIBBLE The number of Trumbles in the cargo hold
TYPE The current ship type
U Temporary storage, used in a number of places
UPO This byte appears to be unused
UPTOG The configuration setting for toggle key "U", which isn't actually used but is still updated by pressing "U" while the game is paused. This is a configuration option from some non-BBC versions of Elite that lets you switch between lower-case and upper-case text
V Temporary storage, typically used for storing an address pointer
VIEW The number of the current space view
VOL The volume level for the game's sound effects (0-7)
W Temporary storage, used in a number of places
widget Temporary storage, used to store the original argument in A in the logarithmic FMLTU and LL28 routines
X1 Temporary storage, typically used for x-coordinates in line-drawing routines
X2 Temporary storage, typically used for x-coordinates in line-drawing routines
XC The x-coordinate of the text cursor (i.e. the text column), which can be from 0 to 32
XP This byte appears to be unused
XSAV Temporary storage for saving the value of the X register, used in a number of places
XSAV2 This byte appears to be unused
XX Temporary storage, typically used for storing a 16-bit x-coordinate
XX0 Temporary storage, used to store the address of a ship blueprint. For example, it is used when we add a new ship to the local bubble in routine NWSHP, and it contains the address of the current ship's blueprint as we loop through all the nearby ships in the main flight loop
XX1 This is an alias for INWK that is used in the main ship-drawing routine at LL9
XX12 Temporary storage for a block of values, used in a number of places
XX13 Temporary storage, typically used in the line-drawing routines
XX15 Temporary storage, typically used for storing screen coordinates in line-drawing routines
XX16 Temporary storage for a block of values, used in a number of places
XX17 Temporary storage, used in BPRNT to store the number of characters to print, and as the edge counter in the main ship-drawing routine
XX18 Temporary storage used to store coordinates in the LL9 ship-drawing routine
XX19 XX19(1 0) shares its location with INWK(34 33), which contains the address of the ship line heap
XX2 Temporary storage, used to store the visibility of the ship's faces during the ship-drawing routine at LL9
XX20 Temporary storage, used in a number of places
XX24 This byte appears to be unused
XX4 Temporary storage, used in a number of places
Y1 Temporary storage, typically used for y-coordinates in line-drawing routines
Y2 Temporary storage, typically used for y-coordinates in line-drawing routines
YC The y-coordinate of the text cursor (i.e. the text row), which can be from 0 to 23
YP This byte appears to be unused
YS This byte appears to be unused
YSAV Temporary storage for saving the value of the Y register, used in a number of places
YSAV2 This byte appears to be unused
Yx2M1 This is used to store the number of pixel rows in the space view minus 1, which is also the y-coordinate of the bottom pixel row of the space view (it is set to 191 in the RES2 routine)
YY Temporary storage, typically used for storing a 16-bit y-coordinate
YY (Loader) Temporary storage, used in a number of places
ZZ Temporary storage, typically used for distance values