Skip to navigation

BBC Micro Elite

List of all variables (6502SP version)

This index contains every variable that appears in the source code for the 6502 Second Processor version of BBC Micro 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
---------

Demo
----

  • acorn - The text for the demo's first scroll text
  • byian - The text for the demo's second scroll text
  • HIMCNT - Used as a loop counter for the Cobra's slow approach in the demo
  • LTDEF - Line definitions for characters in the Star Wars scroll text
  • NOFX - The x-coordinates of the scroll text letter grid
  • NOFY - The y-coordinates of the scroll text letter grid
  • true3 - The text for the demo's third scroll text

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

  • HBUF - The horizontal line buffer to send with the OSWORD 247 command
  • LBUF - The multi-segment line buffer used by LOIN
  • LSX2 - The ball line heap for storing x-coordinates
  • LSY2 - The ball line heap for storing y-coordinates
  • TABLE (I/O processor) - The line buffer for line data transmited from the parasite
  • TWFL - Ready-made character rows for the left end of a horizontal line in mode 4
  • TWFR - Ready-made character rows for the right end of a horizontal line in mode 4

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

  • CTWOS - Ready-made single-pixel character row bytes for mode 5
  • CTWOS (I/O processor) - Ready-made single-pixel character row bytes for mode 2
  • orange (I/O processor) - Lookup table for 2-pixel mode 1 orange pixels for the sun
  • PBUF - The pixel buffer to send with the OSWORD 241 command
  • PXCL (I/O processor) - A four-colour mode 1 pixel byte that represents a dot's distance
  • TWFL (I/O processor) - Ready-made character rows for the left end of a horizontal line
  • TWFR (I/O processor) - Ready-made character rows for the right end of a horizontal line
  • TWOS - Ready-made single-pixel character row bytes for mode 4
  • TWOS (I/O processor) - Ready-made single-pixel character row bytes for mode 1
  • TWOS (Loader 1) - Ready-made single-pixel character row bytes for mode 1
  • TWOS2 - Ready-made double-pixel character row bytes for mode 4
  • TWOS2 (I/O processor) - Ready-made double-pixel character row bytes for mode 1
  • ylookup (I/O processor) - Lookup table for converting pixel y-coordinate to page number of screen address

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

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

Equipment
---------

  • PRXS - Equipment prices

Keyboard
--------

  • KTRAN - The key logger buffer that gets updated by the OSWORD 240 command
  • KYTB - Lookup table for in-flight keyboard controls
  • KYTB (I/O processor) - Lookup table for in-flight keyboard controls
  • TRANTABLE - Translation table from internal key number to ASCII

Loader
------

  • MESS1 (Loader 1) - The OS command string for changing the disc directory to E
  • MESS2 (Loader 1) - The OS command string for loading and running the second part of the loader
  • MESS2 (Loader 2) - The OS command string for loading and running the I/O processor's main game code
  • MESS3 (Loader 2) - The OS command string for loading and running the parasite's main game code

Market
------

  • QQ23 - Market prices table

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

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

  • ACT - Arctan table
  • SNE - Sine/cosine table

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

  • CHK - First checksum byte for the saved commander data file
  • CHK2 - Second checksum byte for the saved commander data file
  • CTLI - The OS command string for cataloguing a disc
  • DELI - The OS command string for deleting a file
  • NA% - The data block for the last saved commander
  • oscobl - OSFILE configuration block for saving a screenshot
  • oscobl2 - Master OSFILE configuration block for saving a screenshot
  • scname - Filename to be used when saving a screenshot

Screen mode
-----------

Ship hanger
-----------

  • HATB - Ship hanger group table

Sound
-----

Text
----

  • DTW1 - A mask for applying the lower case part of Sentence Case to extended text tokens
  • DTW2 - A flag that indicates whether we are currently printing a word
  • DTW3 - A flag for switching between standard and extended text tokens
  • DTW4 - Flags that govern how justified extended text tokens are printed
  • DTW5 - The size of the justified text buffer at BUF
  • DTW6 - A flag to denote whether printing in lower case is enabled for extended text tokens
  • DTW8 - A mask for capitalising the next letter in an extended text token
  • FONT% (I/O processor) - A copy of the character definition bitmap table from the MOS ROM
  • JMTB - The extended token table for jump tokens 1-32 (DETOK)
  • MTIN - Lookup table for random tokens in the extended token table (0-37)
  • printflag - A flag that determines whether to send text output to the printer as well as the screen
  • QQ16 - The two-letter token lookup table
  • QQ18 - The recursive token table for tokens 0-148
  • RLINE - The OSWORD configuration block used to fetch a line of text from the keyboard
  • RUGAL - The criteria for systems with special extended descriptions
  • RUPLA - System numbers that have special extended decriptions
  • RUTOK - The second extended token table for recursive tokens 0-26 (DETOK3)
  • TENS - A constant used when printing large numbers in BPRNT
  • TKN1 - The first extended token table for recursive tokens 0-255 (DETOK)
  • TKN2 - The extended two-letter token lookup table

Tube
----

Universe
--------

  • UNIV - Table 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 J
  • RDLI - The OS command string for loading the docked code in the disc version of Elite

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

  • ALP1 - Magnitude of the roll angle alpha, i.e. |alpha|, which is a positive value between 0 and 31
  • ALP1 (I/O processor) - 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
  • ALP2 (I/O processor) - 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
  • ALTIT (I/O processor) - Our altitude above the surface of the planet or sun
  • ASH - Aft shield status
  • ASH (I/O processor) - Aft shield status
  • auto - Docking computer activation status
  • AVL - Market availability in the current system
  • BALI - The progress of the Star Wars scroll text as it scrolls, from 254 (off the bottom of the screen) to 2 (fully scrolled). Can also be thought of as a measure of how much of the scroll text has yet to appear on-screen
  • BET1 - The magnitude of the pitch angle beta, i.e. |beta|, which is a positive value between 0 and 8
  • BET1 (I/O processor) - 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
  • BETA (I/O processor) - The current pitch angle beta, which is reduced from JSTY to a sign-magnitude value between -8 and +8
  • BOMB - Energy bomb
  • BST - Fuel scoops (BST stands for "barrel status")
  • BUF - The line buffer used by DASC to print justify text
  • CABTMP - Cabin temperature
  • CABTMP (I/O processor) - Cabin temperature
  • CASH - Our current cash pot
  • CATF (I/O processor) - 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
  • COL (I/O processor) - Temporary storage, used to store colour information when drawing pixels in the dashboard
  • COMX - The x-coordinate of the compass dot
  • COMY - The y-coordinate of the compass dot
  • CRGO - Our ship's cargo capacity
  • de - Equipment destruction flag
  • DELT4 - Our current speed * 64 as a 16-bit value
  • DELTA - Our current speed, in the range 1-40
  • DELTA (I/O processor) - Our current speed, in the range 1-40
  • DKCMP - Docking computer
  • DL - Vertical sync flag
  • DL (I/O processor) - Vertical sync flag
  • DLY - In-flight message delay
  • 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
  • ENERGY (I/O processor) - Energy bank status
  • ENGY - Energy unit
  • ESCP - Escape pod
  • ESCP (I/O processor) - 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 (I/O processor) - Flashing console bars configuration setting
  • FRIN - Slots for the ships in the local bubble of universe
  • FSH - Forward shield status
  • FSH (I/O processor) - Forward shield status
  • GCNT - The number of the current galaxy (0-7)
  • GHYP - Galactic hyperdrive
  • GNTMP - Laser temperature (or "gun temperature")
  • GNTMP (I/O processor) - Laser temperature (or "gun temperature")
  • gov - The current system's government type (0-7)
  • HBUP - The size of the horizontal line buffer at HBUF (including the two OSWORD size bytes)
  • HFX - A flag that toggles the hyperspace colour effect
  • HFX (I/O processor) - 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
  • 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
  • K (I/O processor) - 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
  • K3 (I/O processor) - 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
  • LBUP - The size of the multi-segment line buffer at LBUF
  • LINMAX (I/O processor) - The number of points in the line currently being transmitted from the parasite using the OSWRCH 129 and 130 commands
  • LINTAB (I/O processor) - The offset of the first free byte in the TABLE buffer, which stores bytes in the current line as they are transmitted from the parasite using the OSWRCH 129 and 130 commands
  • LSO - This space has two uses:
  • 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 is an alias that points to the first byte of the sun line heap at LSO
  • 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
  • MCNT (I/O processor) - 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)?
  • MSAR - The targeting state of our leftmost missile
  • MSTG - The current missile lock target
  • NAME - The current commander name
  • NEEDKEY - Flag to ask the I/O processor to update the key logger buffer at KTRAN
  • NOMSL - The number of missiles we have fitted (0-4)
  • NOSTM - The number of stardust particles shown on screen, which is 18 (#NOST) for normal space, and 3 for witchspace
  • OSSC (I/O processor) - When the parasite sends an OSWORD command to the I/O processor (i.e. an OSWORD with A = 240 to 255), then the relevant handler routine in the I/O processor is called with OSSC(1 0) pointing to the OSWORD parameter block (i.e. OSSC(1 0) = (Y X) from the original call in the I/O processor)
  • P - Temporary storage, used in a number of places
  • P (I/O processor) - Temporary storage, used in a number of places
  • PARAMS (I/O processor) - PARAMS points to the start of the dashboard parameter block that is populated by the parasite when it sends the #RDPARAMS and OSWRCH 137 commands
  • PARANO (I/O processor) - PARANO points to the last free byte in PARAMS, which is used as a buffer for bytes sent from the parasite by the #RDPARAMS and OSWRCH 137 commands when updating the dashboard
  • PBUP - The size of the pixel buffer at PBUF (including the two OSWORD size bytes)
  • Q - Temporary storage, used in a number of places
  • Q (I/O processor) - 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 number of the current view:
  • QQ12 - Our "docked" status
  • QQ14 - Our current fuel level (0-70)
  • QQ14 (I/O processor) - 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 - Temporary storage, used to store the economy byte of the current system in routine var
  • 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
  • R (I/O processor) - 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
  • S (I/O processor) - Temporary storage, used in a number of places
  • safehouse - Backup storage for the seeds for the selected system
  • SC - Screen address (low byte)
  • SC (I/O processor) - Screen address (low byte)
  • SCH - Screen address (high byte)
  • SCH (I/O processor) - 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
  • svn (I/O processor) - "Saving in progress" flag
  • 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)
  • SWAP (I/O processor) - 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 (I/O processor) - Temporary storage, used in a number of places
  • T1 - Temporary storage, used in a number of places
  • T1 (I/O processor) - Temporary storage, used in a number of places
  • TALLY - Our combat rank
  • 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:
  • TYPE - The current ship type
  • U - Temporary storage, used in a number of places
  • U (I/O processor) - Temporary storage, used in a number of places
  • UPO - Used as an index into the UB tables when projecting the scroll text lines onto the Star Wars perspective view and then onto the screen
  • V - Temporary storage, typically used for storing an address pointer
  • VEC (I/O processor) - VEC = &7FFE
  • VIEW - The number of the current space view
  • 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
  • X1 (I/O processor) - Temporary storage, typically used for x-coordinates in line-drawing routines
  • X1TB - The x-coordinates of the start points for character lines in the scroll text (as space coordinates)
  • X1UB - The x-coordinates of the start points for character lines in the scroll text (as projected screen coordinates)
  • X1VB - The x-coordinates of the start points for the previous set of character lines in the scroll text (as projected screen coordinates) so they can be erased
  • X2 - Temporary storage, typically used for x-coordinates in line-drawing routines
  • X2 (I/O processor) - Temporary storage, typically used for x-coordinates in line-drawing routines
  • X2TB - The x-coordinates of the end points for character lines in the scroll text
  • X2UB - The x-coordinates of the end points for character lines in the scroll text (as projected screen coordinates)
  • X2VB - The x-coordinates of the end points for the previous set of character lines in the scroll text (as projected screen coordinates) so they can be erased
  • XC - The x-coordinate of the text cursor (i.e. the text column), which can be from 0 to 32
  • XC (I/O processor) - The x-coordinate of the text cursor (i.e. the text column), set to an initial value of 1
  • XP - The x-coordinate of the current character as we construct the lines for the Star Wars scroll text
  • XSAV - Temporary storage for saving the value of the X register, used in a number of places
  • XSAV2 - This byte is unused in this version of Elite
  • 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
  • XX14 - This byte is unused
  • XX15 - Temporary storage, typically used for storing screen coordinates in line-drawing routines
  • XX15 (I/O processor) - 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 is unused
  • XX4 - Temporary storage, used in a number of places
  • Y1 - Temporary storage, typically used for y-coordinates in line-drawing routines
  • Y1 (I/O processor) - Temporary storage, typically used for y-coordinates in line-drawing routines
  • Y1TB - The y-coordinates of the start points for character lines in the scroll text
  • Y1UB - The y-coordinates of the start points for character lines in the scroll text (as projected screen coordinates)
  • Y1VB - The y-coordinates of the start points for the previous set of character lines in the scroll text (as projected screen coordinates) so they can be erased
  • Y2 - Temporary storage, typically used for y-coordinates in line-drawing routines
  • Y2 (I/O processor) - Temporary storage, typically used for y-coordinates in line-drawing routines
  • Y2TB - The y-coordinates of the end points for character lines in the scroll text
  • Y2UB - The y-coordinates of the end points for character lines in the scroll text (as projected screen coordinates)
  • Y2VB - The y-coordinates of the end points for the previous set of character lines in the scroll text (as projected screen coordinates) so they can be erased
  • YC - The y-coordinate of the text cursor (i.e. the text row), which can be from 0 to 23
  • YC (I/O processor) - The y-coordinate of the text cursor (i.e. the text row), set to an initial value of 1
  • YP - The y-coordinate of the current character as we construct the lines for the Star Wars scroll text
  • YS - Temporary storage for saving the index into the TB tables in the SLIDE routine
  • YSAV - Temporary storage for saving the value of the Y register, used in a number of places
  • YSAV (I/O processor) - Temporary storage for saving the value of the Y register, used in a number of places
  • YSAV2 - This byte is unused in this version of Elite
  • YY - Temporary storage, typically used for storing a 16-bit y-coordinate
  • ZZ - Temporary storage, typically used for distance values