This index contains every subroutine, entry point, variable, workspace and macro that appears in the source code for the Acorn Electron version of Elite, sorted alphabetically.
Name | Category | Description |
---|---|---|
ABORT | Dashboard | Disarm missiles and update the dashboard indicators |
ABORT-2 | Dashboard | Set the indicator to disarmed (white square) |
ABORT2 | Dashboard | Set/unset the lock target for a missile and update the dashboard |
ACT | Maths (Geometry) | Arctan table |
ADD | Maths (Arithmetic) | Calculate (A X) = (A P) + (S R) |
ALP1 | Workspace variable | Magnitude of the roll angle alpha, i.e. |alpha|, which is a positive value between 0 and 31 |
ALP2 | Workspace variable | Bit 7 of ALP2 = sign of the roll angle in ALPHA |
ALPHA | Workspace variable | The current roll angle alpha, which is reduced from JSTX to a sign-magnitude value between -31 and +31 |
ALTIT | Workspace variable | Our altitude above the surface of the planet |
ANGRY | Tactics | Make a ship hostile |
ARCTAN | Maths (Geometry) | Calculate A = arctan(P / Q) |
ASH | Workspace variable | Aft shield status |
Authors' names | Copy protection | The authors' names and a copyright notice, buried in the code |
Authors' names (Loader) | Copy protection | The authors' names, buried in the code |
AVL | Workspace variable | Market availability in the current system |
B% (Loader) | Drawing the screen | VDU commands for changing to a standard mode 4 screen |
BAD | Status | Calculate how bad we have been |
BAY | Status | Go to the docking bay (i.e. show the Status Mode screen) |
BAY2 | Market | Jump into the main loop at FRCE, setting the key "pressed" to FUNC-0 (so we show the Inventory screen) |
BEEP | Sound | Make a short, high beep |
BEGIN% (Loader) | Copy protection | Single-byte decryption and copying routine, run on the stack |
BELL | Sound | Make a standard system beep |
BET1 | Workspace variable | The magnitude of the pitch angle beta, i.e. |beta|, which is a positive value between 0 and 8 |
BET2 | Workspace variable | Bit 7 of BET2 = sign of the pitch angle in BETA |
BETA | Workspace variable | The current pitch angle beta, which is reduced from JSTY to a sign-magnitude value between -8 and +8 |
BLCNT (Loader) | Workspace variable | Stores the tape loader block count as part of the copy protection code in IRQ1 |
BLINE | Drawing circles | Draw a circle segment and add it to the ball line heap |
BLN (Loader) | Workspace variable | Gets set to &03C6 as part of the obfuscation code |
BLPTR (Loader) | Workspace variable | Gets set to &03CA as part of the obfuscation code |
BOMB | Workspace variable | Energy bomb |
BORDER | Drawing the screen | Just draw the border |
BOX | Drawing the screen | Just draw the border and (if this is a space view) the view name. This can be used to remove the border and view name, as it is drawn using EOR logic |
BPRNT | Text | Print a 32-bit number, left-padded to a specific number of digits, with an optional decimal point |
BR1 (Part 1 of 2) | Start and end | Show the "Load New Commander (Y/N)?" screen and start the game |
BR1 (Part 2 of 2) | Start and end | Show the "Press Fire or Space, Commander" screen and start the game |
BST | Workspace variable | Fuel scoops (BST stands for "barrel status") |
BULB | Dashboard | Draw an indicator bulb on the dashboard |
BULB-2 | Dashboard | Set the Y screen address |
BUMP2 | Dashboard | Bump up the value of the pitch or roll dashboard indicator |
c | Equipment | Contains an RTS |
CAPSL | Keyboard | Scan the keyboard to see if CAPS LOCK is being pressed |
CASH | Workspace variable | Our current cash pot |
CHAR | Text | Macro definition for characters in the recursive token table |
CHECK | Save and load | Calculate the checksum for the last saved commander data block |
checksum0 | Copy protection | Checksum for the entire main game code |
CHK | Save and load | First checksum byte for the saved commander data file |
CHK2 | Save and load | Second checksum byte for the saved commander data file |
CHKON | Drawing circles | Check whether any part of a circle appears on the extended screen |
CIRCLE | Drawing circles | Draw a circle for the planet |
CIRCLE2 | Drawing circles | Draw a circle (for the planet or chart) |
CLYNS | Drawing the screen | Clear the bottom three text rows of the mode 4 screen |
cmn | Status | Print the commander's name |
cmn-1 | Status | Contains an RTS |
CNT | Workspace variable | Temporary storage, typically used for storing the number of iterations required when looping |
CNT (Loader) | Drawing planets | A counter for use in drawing Saturn's planetary body |
CNT2 | Workspace variable | Temporary storage, used in the planet-drawing routine to store the segment number where the arc of a partial circle should start |
CNT2 (Loader) | Drawing planets | A counter for use in drawing Saturn's background stars |
CNT3 (Loader) | Drawing planets | A counter for use in drawing Saturn's rings |
cntr | Dashboard | Apply damping to the pitch or roll dashboard indicator |
COK | Workspace variable | Flags used to generate the competition code |
COMC | Workspace variable | The shape (i.e. thickness) of the dot on the compass |
COMPAS | Dashboard | Update the compass |
COMX | Workspace variable | The x-coordinate of the compass dot |
COMY | Workspace variable | The y-coordinate of the compass dot |
CONT | Text | Macro definition for control codes in the recursive token table |
CPIX2 | Drawing pixels | Draw a single-height dash on the dashboard |
CPIX4 | Drawing pixels | Draw a double-height dot on the dashboard |
cpl | Universe | Print the selected system name |
CRGO | Workspace variable | Our ship's cargo capacity |
crlf | Text | Tab to column 21 and print a colon |
crunchit (Loader) | Copy protection | Multi-byte decryption and copying routine |
csh | Status | Print the current amount of cash |
CTWOS | Drawing pixels | Ready-made double-pixel character row bytes for the mode 4 dashboard |
DAMP | Workspace variable | Keyboard damping configuration setting |
David23 (Loader) | Copy protection | Address pointer to the start of the 6502 stack |
David7 (Loader) | Copy protection | Part of the multi-jump obfuscation code in PROT1 |
David9 (Loader) | Copy protection | Address used as part of the stack-based decryption loop |
de | Workspace variable | Equipment destruction flag |
DEATH | Start and end | Display the death screen |
DEATH2 | Start and end | Reset most of the game and restart from the title screen |
DEL8 | Utility routines | Wait for 30 delay loops' worth of time DELAY-5 Wait for 1 delay loop's worth of time |
DELAY | Utility routines | Wait for a specified time |
DELAY-5 | Utility routines | Wait for 1 delay loop's worth of time |
DELT4 | Workspace variable | Our current speed * 64 as a 16-bit value |
DELTA | Workspace variable | Our current speed, in the range 1-40 |
DENGY | Flight | Drain some energy from the energy banks |
DIALS (Part 1 of 4) | Dashboard | Update the dashboard: speed indicator |
DIALS (Part 2 of 4) | Dashboard | Update the dashboard: pitch and roll indicators |
DIALS (Part 3 of 4) | Dashboard | Update the dashboard: four energy banks |
DIALS (Part 4 of 4) | Dashboard | Update the dashboard: shields, fuel, laser & cabin temp, altitude |
DIL | Dashboard | The range of the indicator is 0-16 (for the energy banks) |
DIL-1 | Dashboard | The range of the indicator is 0-32 (for the speed indicator) |
DIL2 | Dashboard | Update the roll or pitch indicator on the dashboard |
DILX | Dashboard | Update a bar-based indicator on the dashboard |
DILX+2 | Dashboard | The range of the indicator is 0-64 (for the fuel indicator) |
DJD | Workspace variable | Keyboard auto-recentre configuration setting |
DK4 | Keyboard | Scan for pause, configuration and secondary flight keys |
DKCMP | Workspace variable | Docking computer |
DKS2 | Keyboard | Read the joystick position |
DKS2-1 | Keyboard | Contains an RTS |
DKS3 | Keyboard | Toggle a configuration setting and emit a beep |
DKS4 | Keyboard | Scan the keyboard to see if a specific key is being pressed |
DLY | Workspace variable | In-flight message delay |
dn | Market | Print the amount of money we have left in the cash pot, then make a short, high beep and delay for 1 second |
dn2 | Text | Make a short, high beep and delay for 1 second |
DNOIZ | Workspace variable | Sound on/off configuration setting |
DOEXP | Drawing ships | Draw an exploding ship |
DOKEY | Keyboard | Scan for the seven primary flight controls |
doPROT1 (Loader) | Copy protection | Routine to self-modify the loader code |
DORND | Maths (Arithmetic) | Generate random numbers |
DORND (Loader) | Maths (Arithmetic) | Generate random numbers |
DORND2 | Maths (Arithmetic) | Make sure the C flag doesn't affect the outcome |
DOT | Dashboard | Draw a dash on the compass |
DV41 | Maths (Arithmetic) | Calculate (P R) = 256 * DELTA / A |
DV42 | Maths (Arithmetic) | Calculate (P R) = 256 * DELTA / z_hi |
DVID3B2 | Maths (Arithmetic) | Calculate K(3 2 1 0) = (A P+1 P) / (z_sign z_hi z_lo) |
DVID4 | Maths (Arithmetic) | Calculate (P R) = 256 * A / Q |
DVIDT | Maths (Arithmetic) | Calculate (P+1 A) = (A P) / Q |
E% (Loader) | Sound | Sound envelope definitions |
ECBLB | Dashboard | Light up the E.C.M. indicator bulb ("E") on the dashboard |
ECBLB2 | Dashboard | Start up the E.C.M. (light up the indicator, start the countdown and make the E.C.M. sound) |
ECBT | Dashboard | The character bitmap for the E.C.M. indicator bulb |
ECM | Workspace variable | E.C.M. system |
ECMA | Workspace variable | The E.C.M. countdown timer, which determines whether an E.C.M. system is currently operating: |
ECMOF | Sound | Switch off the E.C.M. |
ECMOF-1 | Sound | Contains an RTS |
ECMP | Workspace variable | Our E.C.M. status |
EDGE | Drawing ships | Macro definition for adding edges to ship blueprints |
ee3 | Flight | Print the hyperspace countdown in the top-left of the screen |
EE51 | Drawing ships | Remove the current ship from the screen, called from SHPPT before drawing the ship as a point |
Elite loader (Part 1 of 5) (Loader) | Loader | Include binaries for recursive tokens and images |
Elite loader (Part 2 of 5) (Loader) | Loader | Perform a number of OS calls, set up sound, push routines on stack |
Elite loader (Part 3 of 5) (Loader) | Loader | Move recursive tokens and images |
Elite loader (Part 4 of 5) (Loader) | Loader | Call part 5 of the loader now that is has been relocated |
Elite loader (Part 5 of 5) (Loader) | Loader | Set up interrupt vectors, calculate checksums, run main game code |
ENERGY | Workspace variable | Energy bank status |
ENGY | Workspace variable | Energy unit |
eq | Equipment | Subtract the price of equipment from the cash pot |
EQSHP | Equipment | Show the Equip Ship screen (FUNC-4) |
err | Equipment | Beep, pause and go to the docking bay (i.e. show the Status Mode screen) |
ESCAPE | Flight | Launch our escape pod |
ESCP | Workspace variable | Escape pod |
EV | Workspace variable | The "extra vessels" spawning counter |
ex | Text | Print a recursive token |
EXCN (Loader) | Workspace variable | Gets set to &03C2 as part of the obfuscation code |
EXNO | Sound | Make the sound of a laser strike or ship explosion |
EXNO-2 | Sound | Set X = 7 and fall through into EXNO to make the sound of a ship exploding |
EXNO2 | Status | Process us making a kill |
EXNO3 | Sound | Make an explosion sound |
FACE | Drawing ships | Macro definition for adding faces to ship blueprints |
FAROF | Maths (Geometry) | Compare x_hi, y_hi and z_hi with 224 |
FAROF2 | Maths (Geometry) | Compare x_hi, y_hi and z_hi with A |
FIST | Workspace variable | Our legal status (FIST stands for "fugitive/innocent status"): |
FLAG | Workspace variable | 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 | Workspace variable | Flashing console bars configuration setting |
FLIP | Stardust | Reflect the stardust particles in the screen diagonal and redraw the stardust field |
FLKB | Keyboard | Flush the keyboard buffer |
FMLTU | Maths (Arithmetic) | Calculate A = A * Q / 256 |
FMLTU2 | Maths (Arithmetic) | Calculate A = K * sin(A) |
FNE (Loader) | Sound | Macro definition for defining a sound envelope |
fq1 | Tactics | Used to add a cargo canister to the universe |
FR1 | Tactics | Display the "missile jammed" message |
FR1-2 | Tactics | Clear the C flag and return from the subroutine |
FRCE | Main loop | The entry point for the main game loop if we want to jump straight to a specific screen, by pretending to "press" a key, in which case A contains the internal key number of the key we want to "press" |
FRIN | Workspace variable | Slots for the ships in the local bubble of universe |
FRMIS | Tactics | Fire a missile from our ship |
FRS1 | Tactics | Launch a ship straight ahead of us, below the laser sights |
FSH | Workspace variable | Forward shield status |
fwl | Status | Print fuel and cash levels |
FX200 | Utility routines | Set the behaviour of the ESCAPE and BREAK keys |
GC2 | Maths (Arithmetic) | Calculate (Y X) = (A P) * 4 |
GCASH | Maths (Arithmetic) | Calculate (Y X) = P * Q * 4 |
GCNT | Workspace variable | The number of the current galaxy (0-7) |
Ghy | Flight | Perform a galactic hyperspace jump |
Ghy-1 | Flight | Contains an RTS |
GHYP | Workspace variable | Galactic hyperdrive |
GINF | Universe | Fetch the address of a ship's data block into INF |
GNTMP | Workspace variable | Laser temperature (or "gun temperature") |
gnum | Market | Get a number from the keyboard |
GOIN | Main loop | We jump here from part 3 of the main flight loop if the docking computer is activated by pressing "C" |
gov | Workspace variable | The current system's government type (0-7) |
GTNME | Save and load | Fetch the name of a commander file to save or load |
GVL | Universe | Calculate the availability of market items |
HFS2 | Drawing circles | Draw the launch or hyperspace tunnel |
HFX | Workspace variable | This flag is unused in this version of Elite. In the other versions, setting HFX to a non-zero value makes the hyperspace rings multi-coloured, but the Electron version is monochrome, so this has no effect |
HI1 | Tactics | Contains an RTS |
HITCH | Tactics | Work out if the ship in INWK is in our crosshairs |
HL6 | Drawing lines | Contains an RTS |
HLOIN | Drawing lines | Draw a horizontal line from (X1, Y1) to (X2, Y1) |
hm | Charts | Select the closest system and redraw the chart crosshairs |
hy5 | Universe | Contains an RTS |
hy6 | Flight | Print a message to say there is no hyperspacing allowed inside the station |
hyp | Flight | Start the hyperspace process |
hyp1 | Universe | Process a jump to the system closest to (QQ9, QQ10) |
hyp1+3 | Universe | Jump straight to the system at (QQ9, QQ10) without first calculating which system is closest. We do this if we already know that (QQ9, QQ10) points to a system |
hyR | Universe | Contains an RTS |
Ian1 (Loader) | Loader | Re-entry point following the wild goose chase obfuscation |
INF | Workspace variable | 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 | Workspace variable | The zero-page internal workspace for the current ship data block |
IRQ1 | Utility routines | The main interrupt handler (IRQ1V points here) |
ITEM | Market | Macro definition for the market prices table |
jmp | Universe | Set the current system to the selected system |
JSTE | Workspace variable | Reverse both joystick channels configuration setting |
JSTGY | Workspace variable | Reverse joystick Y-channel configuration setting |
JSTK | Workspace variable | Keyboard or joystick configuration setting |
JSTX | Workspace variable | Our current roll rate |
JSTY | Workspace variable | Our current pitch rate |
K | Workspace variable | Temporary storage, used in a number of places |
K% | Workspaces | Ship data blocks and ship line heaps |
K2 | Workspace variable | Temporary storage, used in a number of places |
K3 | Workspace variable | Temporary storage, used in a number of places |
K3 (Loader) | Workspace variable | Temporary storage, used in a number of places |
K4 | Workspace variable | Temporary storage, used in a number of places |
K5 | Workspace variable | Temporary storage used to store segment coordinates across successive calls to BLINE, the ball line routine |
K6 | Workspace variable | Temporary storage, typically used for storing coordinates during vector calculations |
KEY1 | Keyboard | The main keyboard interrupt handler (KEYV points here) |
KEYB | Workspace variable | This flag indicates whether we are currently reading from the keyboard using OSRDCH or OSWORD, so the keyboard interrupt handler at KEY1 knows whether to pass key presses on to the OS |
KILLSHP | Universe | Remove a ship from our local bubble of universe |
KL | Workspace variable | 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 |
KS1 | Universe | Remove the current ship from our local bubble of universe |
KS2 | Universe | Check the local bubble for missiles with target lock |
KS3 | Universe | Set the SLSP ship line heap pointer after shuffling ship slots |
KS4 | Universe | Remove the space station and replace with a placeholder |
KY1 | Workspace variable | "?" is being pressed |
KY12 | Workspace variable | "-" is being pressed |
KY13 | Workspace variable | ESCAPE is being pressed |
KY14 | Workspace variable | "T" is being pressed |
KY15 | Workspace variable | "U" is being pressed |
KY16 | Workspace variable | "M" is being pressed |
KY17 | Workspace variable | "E" is being pressed |
KY18 | Workspace variable | "J" is being pressed |
KY19 | Workspace variable | "C" is being pressed |
KY2 | Workspace variable | Space is being pressed |
KY3 | Workspace variable | "<" is being pressed |
KY4 | Workspace variable | ">" is being pressed |
KY5 | Workspace variable | "X" is being pressed |
KY6 | Workspace variable | "S" is being pressed |
KY7 | Workspace variable | "A" is being pressed |
KYTB | Keyboard | Contains an RTS |
KYTB | Keyboard | Lookup table for in-flight keyboard controls |
LAS | Workspace variable | 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 | Workspace variable | Laser power for the current laser |
LASCT | Workspace variable | The laser pulse count for the current laser |
LASER | Workspace variable | The specifications of the lasers fitted to each of the four space views: |
LASLI | Drawing lines | Draw the laser lines for when we fire our lasers |
LASLI-1 | Drawing lines | Contains an RTS |
LASLI2 | Drawing lines | Just draw the current laser lines without moving the centre point, draining energy or heating up. This has the effect of removing the lines from the screen |
LASX | Workspace variable | The x-coordinate of the tip of the laser line |
LASY | Workspace variable | The y-coordinate of the tip of the laser line |
LAUN | Drawing circles | Make the launch sound and draw the launch tunnel |
LCASH | Maths (Arithmetic) | Subtract an amount of cash from the cash pot |
LL10-1 | Drawing ships | Contains an RTS |
LL118 | Drawing lines | Move a point along a line until it is on-screen |
LL118-1 | Drawing lines | Contains an RTS |
LL120 | Maths (Arithmetic) | Calculate (Y X) = (S x1_lo) * XX12+2 or (S x1_lo) / XX12+2 |
LL121 | Maths (Arithmetic) | Calculate (Y X) = (S R) / Q and set the sign to the opposite of the top byte on the stack |
LL122 | Maths (Arithmetic) | Calculate (Y X) = (S R) * Q and set the sign to the opposite of the top byte on the stack |
LL123 | Maths (Arithmetic) | Calculate (Y X) = (S R) / XX12+2 or (S R) * XX12+2 |
LL128 | Maths (Arithmetic) | Contains an RTS |
LL129 | Maths (Arithmetic) | Calculate Q = XX12+2, A = S EOR XX12+3 and (S R) = |S R| |
LL133 | Maths (Arithmetic) | Negate (Y X) and return from the subroutine LL128 Contains an RTS |
LL145 (Part 1 of 4) | Drawing lines | Clip line: Work out which end-points are on-screen, if any |
LL145 (Part 2 of 4) | Drawing lines | Clip line: Work out if any part of the line is on-screen |
LL145 (Part 3 of 4) | Drawing lines | Clip line: Calculate the line's gradient |
LL145 (Part 4 of 4) | Drawing lines | Clip line: Call the routine in LL188 to do the actual clipping |
LL147 | Drawing lines | Don't initialise the values in SWAP or A |
LL164 | Drawing circles | Make the hyperspace sound and draw the hyperspace tunnel |
LL28 | Maths (Arithmetic) | Calculate R = 256 * A / Q |
LL28+4 | Maths (Arithmetic) | Skips the A >= Q check and always returns with C flag cleared, so this can be called if we know the division will work |
LL30 | Drawing lines | LL30 is a synonym for LOIN and draws a line from (X1, Y1) to (X2, Y2) |
LL31 | Maths (Arithmetic) | Skips the A >= Q check and does not set the R counter, so this can be used for jumping straight into the division loop if R is already set to 254 and we know the division will work |
LL38 | Maths (Arithmetic) | Calculate (S A) = (S R) + (A Q) |
LL5 | Maths (Arithmetic) | Calculate Q = SQRT(R Q) |
LL51 | Maths (Geometry) | Calculate the dot product of XX15 and XX16 |
LL61 | Maths (Arithmetic) | Calculate (U R) = 256 * A / Q |
LL62 | Maths (Arithmetic) | Calculate 128 - (U R) |
LL66 | Drawing ships | A re-entry point into the ship-drawing routine, used by the LL62 routine to store 128 - (U R) on the XX3 heap |
LL70+1 | Drawing ships | Contains an RTS (as the first byte of an LDA instruction) |
LL81+2 | Drawing ships | Draw the contents of the ship line heap, used to draw the ship as a dot from SHPPT |
LL9 (Part 1 of 12) | Drawing ships | Draw ship: Check if ship is exploding, check if ship is in front |
LL9 (Part 2 of 12) | Drawing ships | Draw ship: Check if ship is in field of view, close enough to draw |
LL9 (Part 3 of 12) | Drawing ships | Draw ship: Set up orientation vector, ship coordinate variables |
LL9 (Part 4 of 12) | Drawing ships | Draw ship: Set visibility for exploding ship (all faces visible) |
LL9 (Part 5 of 12) | Drawing ships | Draw ship: Calculate the visibility of each of the ship's faces |
LL9 (Part 6 of 12) | Drawing ships | Draw ship: Calculate the visibility of each of the ship's vertices |
LL9 (Part 7 of 12) | Drawing ships | Draw ship: Calculate the visibility of each of the ship's vertices |
LL9 (Part 8 of 12) | Drawing ships | Draw ship: Calculate the screen coordinates of visible vertices |
LL9 (Part 9 of 12) | Drawing ships | Draw ship: Draw laser beams if the ship is firing its laser at us |
LL9 (Part 10 of 12) | Drawing ships | Draw ship: Calculate the visibility of each of the ship's edges |
LL9 (Part 11 of 12) | Drawing ships | Draw ship: Add all visible edges to the ship line heap |
LL9 (Part 12 of 12) | Drawing ships | Draw ship: Draw all the visible edges from the ship line heap |
LO2 | Flight | Contains an RTS |
LOD | Save and load | Load a commander file |
LOIN (Part 1 of 7) | Drawing lines | Draw a line: Calculate the line gradient in the form of deltas |
LOIN (Part 2 of 7) | Drawing lines | Draw a line: Line has a shallow gradient, step right along x-axis |
LOIN (Part 3 of 7) | Drawing lines | Draw a shallow line going right and up or left and down |
LOIN (Part 4 of 7) | Drawing lines | Draw a shallow line going right and down or left and up |
LOIN (Part 5 of 7) | Drawing lines | Draw a line: Line has a steep gradient, step up along y-axis |
LOIN (Part 6 of 7) | Drawing lines | Draw a steep line going up and left or down and right |
LOIN (Part 7 of 7) | Drawing lines | Draw a steep line going up and right or down and left |
LOOK1 | Flight | Initialise the space view |
LSO | Workspace variable | This is the ship line heap for the space station (see NWSPS for details) |
LSP | Workspace variable | 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) |
LSX2 | Workspace variable | The ball line heap for storing x-coordinates (see the deep dive on "The ball line heap" for details) |
LSY2 | Workspace variable | The ball line heap for storing y-coordinates (see the deep dive on "The ball line heap" for details) |
LYN | Drawing the screen | Clear most of a row of pixels |
m | Maths (Geometry) | Do not include A in the calculation |
M% | Main loop | The entry point for the main flight loop |
MA9 | Maths (Geometry) | Contains an RTS |
MAD | Maths (Arithmetic) | Calculate (A X) = Q * A + (S R) |
Main flight loop (Part 1 of 16) | Main loop | Seed the random number generator |
Main flight loop (Part 2 of 16) | Main loop | Calculate the alpha and beta angles from the current pitch and roll of our ship |
Main flight loop (Part 3 of 16) | Main loop | Scan for flight keys and process the results |
Main flight loop (Part 4 of 16) | Main loop | For each nearby ship: Copy the ship's data block from K% to the zero-page workspace at INWK |
Main flight loop (Part 5 of 16) | Main loop | For each nearby ship: If an energy bomb has been set off, potentially kill this ship |
Main flight loop (Part 6 of 16) | Main loop | For each nearby ship: Move the ship in space and copy the updated INWK data block back to K% |
Main flight loop (Part 7 of 16) | Main loop | For each nearby ship: Check whether we are docking, scooping or colliding with it |
Main flight loop (Part 8 of 16) | Main loop | For each nearby ship: Process us potentially scooping this item |
Main flight loop (Part 9 of 16) | Main loop | For each nearby ship: If it is a space station, check whether we are successfully docking with it |
Main flight loop (Part 10 of 16) | Main loop | For each nearby ship: Remove if scooped, or process collisions |
Main flight loop (Part 11 of 16) | Main loop | For each nearby ship: Process missile lock and firing our laser |
Main flight loop (Part 12 of 16) | Main loop | For each nearby ship: Draw the ship, remove if killed, loop back |
Main flight loop (Part 13 of 16) | Main loop | Show energy bomb effect, charge shields and energy banks |
Main flight loop (Part 14 of 16) | Main loop | Spawn a space station if we are close enough to the planet |
Main flight loop (Part 15 of 16) | Main loop | Perform altitude checks with the planet |
Main flight loop (Part 16 of 16) | Main loop | Process laser pulsing, E.C.M. energy drain, call stardust routine |
Main game loop (Part 1 of 6) | Main loop | Spawn a trader (a peaceful Cobra Mk III) |
Main game loop (Part 2 of 6) | Main loop | Call the main flight loop, and potentially spawn a trader, an asteroid, or a cargo canister |
Main game loop (Part 3 of 6) | Main loop | Potentially spawn a cop, particularly if we've been bad |
Main game loop (Part 4 of 6) | Main loop | Potentially spawn a lone bounty hunter or up to four pirates |
Main game loop (Part 5 of 6) | Main loop | Cool down lasers, make calls to update the dashboard |
Main game loop (Part 6 of 6) | Main loop | Process non-flight key presses (FUNC keys, docked keys) |
MAL1 | Main loop | Marks the beginning of the ship analysis loop, so we can jump back here from part 12 of the main flight loop to work our way through each ship in the local bubble. We also jump back here when a ship is removed from the bubble, so we can continue processing from the next ship |
MANY | Workspace variable | The number of ships of each type in the local bubble of universe |
MAS1 | Maths (Geometry) | Add an orientation vector coordinate to an INWK coordinate |
MAS2 | Maths (Geometry) | Calculate a cap on the maximum distance to the planet |
MAS3 | Maths (Arithmetic) | Calculate A = x_hi^2 + y_hi^2 + z_hi^2 in the K% block |
MAS4 | Maths (Geometry) | Calculate a cap on the maximum distance to a ship |
MCASH | Maths (Arithmetic) | Add an amount of cash to the cash pot |
MCH | Workspace variable | 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 | Workspace variable | The main loop counter |
MDIALS | Dashboard | The missile indicator bitmaps for the monochrome dashboard |
me1 | Flight | Erase an old in-flight message and display a new one |
me2 | Flight | Remove an in-flight message from the space view |
me3 | Main loop | Used by me2 to jump back into the main game loop after printing an in-flight message |
mes9 | Flight | Print a text token, possibly followed by " DESTROYED" |
MESS | Flight | Display an in-flight message |
MESS1 (Loader) | Utility routines | Contains an OS command string for loading the main game code |
MHCA (Loader) | Copy protection | Used to set one of the vectors in the copy protection code |
MLOOP | Main loop | The entry point for the main game loop. This entry point comes after the call to the main flight loop and spawning routines, so it marks the start of the main game loop for when we are docked (as we don't need to call the main flight loop or spawning routines if we aren't in space) |
MLS1 | Maths (Arithmetic) | Calculate (A P) = ALP1 * A |
MLS2 | Maths (Arithmetic) | Calculate (S R) = XX(1 0) and (A P) = A * ALP1 |
MLTU2 | Maths (Arithmetic) | Calculate (A P+1 P) = (A ~P) * Q |
MLTU2-2 | Maths (Arithmetic) | Set Q to X, so this calculates (A P+1 P) = (A ~P) * X |
MLU1 | Maths (Arithmetic) | Calculate Y1 = y_hi and (A P) = |y_hi| * Q for Y-th stardust |
MLU2 | Maths (Arithmetic) | Calculate (A P) = |A| * Q |
MSAR | Workspace variable | The targeting state of our leftmost missile |
MSBAR | Dashboard | Draw a specific indicator in the dashboard's missile bar |
msblob | Dashboard | Display the dashboard's missile indicators as white squares |
MSTG | Workspace variable | The current missile lock target |
MU1 | Maths (Arithmetic) | Copy X into P and A, and clear the C flag |
MU11 | Maths (Arithmetic) | Calculate (A P) = P * X |
MU5 | Maths (Arithmetic) | Set K(3 2 1 0) = (A A A A) and clear the C flag |
MU6 | Maths (Arithmetic) | Set P(1 0) = (A A) |
MULT1 | Maths (Arithmetic) | Calculate (A P) = Q * A |
MULT12 | Maths (Arithmetic) | Calculate (S R) = Q * A |
MULT3 | Maths (Arithmetic) | Calculate K(3 2 1 0) = (A P+1 P) * Q |
MULTS-2 | Maths (Arithmetic) | Calculate (A P) = X * A |
MULTU | Maths (Arithmetic) | Calculate (A P) = P * Q |
MUT1 | Maths (Arithmetic) | Calculate R = XX and (A P) = Q * A |
MUT2 | Maths (Arithmetic) | Calculate (S R) = XX(1 0) and (A P) = Q * A |
MUT3 | Maths (Arithmetic) | An unused routine that does the same as MUT2 |
MV40 | Moving | Rotate the planet's location in space by the amount of pitch and roll of our ship |
MV40-1 | Moving | Contains an RTS |
MV45 | Moving | Rejoin the MVEIT routine after the rotation, tactics and scanner code |
MVEIT (Part 1 of 9) | Moving | Move current ship: Tidy the orientation vectors |
MVEIT (Part 2 of 9) | Moving | Move current ship: Call tactics routine, remove ship from scanner |
MVEIT (Part 3 of 9) | Moving | Move current ship: Move ship forward according to its speed |
MVEIT (Part 4 of 9) | Moving | Move current ship: Apply acceleration to ship's speed as a one-off |
MVEIT (Part 5 of 9) | Moving | Move current ship: Rotate ship's location by our pitch and roll |
MVEIT (Part 6 of 9) | Moving | Move current ship: Move the ship in space according to our speed |
MVEIT (Part 7 of 9) | Moving | Move current ship: Rotate ship's orientation vectors by pitch/roll |
MVEIT (Part 8 of 9) | Moving | Move current ship: Rotate ship about itself by its own pitch/roll |
MVEIT (Part 9 of 9) | Moving | Move current ship: Redraw on scanner, if it hasn't been destroyed |
MVS4 | Moving | Apply pitch and roll to an orientation vector |
MVS5 | Moving | Apply a 3.6 degree pitch or roll to an orientation vector |
MVT1 | Moving | Calculate (x_sign x_hi x_lo) = (x_sign x_hi x_lo) + (A R) |
MVT1-2 | Moving | Clear bits 0-6 of A before entering MVT1 |
MVT3 | Moving | Calculate K(3 2 1) = (x_sign x_hi x_lo) + K(3 2 1) |
MVT6 | Moving | Calculate (A P+2 P+1) = (x_sign x_hi x_lo) + (A P+2 P+1) |
NA% | Save and load | The data block for the last saved commander |
NEXTR | Drawing the screen | Move to the next character row in the Electron mode 4 screen |
NLIN | Drawing lines | Draw a horizontal line at pixel row 23 to box in a title |
NLIN2 | Drawing lines | Draw a screen-wide horizontal line at the pixel row in A |
NLIN3 | Drawing lines | Print a title and draw a horizontal line at row 19 to box it in |
NLIN4 | Drawing lines | Draw a horizontal line at pixel row 19 to box in a title |
NO1 | Maths (Geometry) | Contains an RTS |
NO3 | Sound | Make a sound from a prepared sound block |
NOISE | Sound | Make the sound whose number is in A |
NOMSL | Workspace variable | The number of missiles we have fitted (0-4) |
NORM | Maths (Geometry) | Normalise the three-coordinate vector in XX15 |
NOS1 | Sound | Prepare a sound block |
nWq | Stardust | Create a random cloud of stardust |
NwS1 | Universe | Flip the sign and double an INWK byte |
NWSHP | Universe | Add a new ship to our local bubble of universe |
NWSPS | Universe | Add a new space station to our local bubble of universe |
NWSTARS | Stardust | Initialise the stardust field |
OOPS | Flight | Take some damage |
OSB (Loader) | Utility routines | A convenience routine for calling OSBYTE with Y = 0 |
oscliv (Loader) | Utility routines | Contains the address of OSCLIV, for executing OS commands |
ou2 | Flight | Display "E.C.M.SYSTEM DESTROYED" as an in-flight message |
ou3 | Flight | Display "FUEL SCOOPS DESTROYED" as an in-flight message |
OUCH | Flight | Potentially lose cargo or equipment following damage |
out | Keyboard | Contains an RTS |
P | Workspace variable | Temporary storage, used in a number of places |
P (Loader) | Workspace variable | Temporary storage, used in a number of places |
PATG | Workspace variable | Configuration setting to show the author names on the start-up screen |
ping | Universe | Set the selected system to the current system |
PIX (Loader) | Drawing pixels | Draw a single pixel at a specific coordinate |
PIX-1 (Loader) | Drawing pixels | Contains an RTS |
PIX1 | Maths (Arithmetic) | Calculate (YY+1 SYL+Y) = (A P) + (S R) and draw stardust particle |
PIXEL | Drawing pixels | Draw a 1-pixel dot, 2-pixel dash or 4-pixel square |
PIXEL2 | Drawing pixels | Draw a stardust particle relative to the screen centre |
PL2 | Drawing planets | Remove the planet from the screen |
PL2-1 | Drawing planets | Contains an RTS |
PL21 | Drawing planets | Return from a planet-drawing routine with a failure flag |
PL44 | Drawing planets | Clear the C flag and return from the subroutine |
PLANET | Drawing planets | Draw the planet |
plf | Text | Print a text token followed by a newline |
plf2 | Text | Print text followed by a newline and indent of 6 characters |
PLL1 (Part 1 of 3) (Loader) | Drawing planets | Draw Saturn on the loading screen (draw the planet) |
PLL1 (Part 2 of 3) (Loader) | Drawing planets | Draw Saturn on the loading screen (draw the stars) |
PLL1 (Part 3 of 3) (Loader) | Drawing planets | Draw Saturn on the loading screen (draw the rings) |
PLS6 | Drawing planets | Calculate (X K) = (A P+1 P) / (z_sign z_hi z_lo) |
PLUT | Flight | Flip the coordinate axes for the four different views |
pr2 | Text | Print an 8-bit number, left-padded to 3 digits, and optional point |
pr2+2 | Text | Print the 8-bit number in X to the number of digits in A |
pr5 | Text | Print a 16-bit number, left-padded to 5 digits, and optional point |
pr6 | Text | Print 16-bit number, left-padded to 5 digits, no point |
pres | Equipment | Given an item number A with the item name in recursive token Y, show an error to say that the item is already present, refund the cost of the item, and then beep and exit to the docking bay (i.e. show the Status Mode screen) |
PROJ | Maths (Geometry) | Project the current ship or planet onto the screen |
prq | Text | Print a text token followed by a question mark |
prq+3 | Text | Print a question mark |
prx | Equipment | Return the price of a piece of equipment |
prx-3 | Equipment | Return the price of the item with number A - 1 c Contains an RTS |
PRXS | Equipment | Equipment prices |
PU1-1 | Flight | Contains an RTS |
PX4 | Drawing pixels | Contains an RTS |
Q | Workspace variable | Temporary storage, used in a number of places |
Q (Loader) | Workspace variable | Temporary storage, used in a number of places |
QQ0 | Workspace variable | The current system's galactic x-coordinate (0-256) |
QQ1 | Workspace variable | The current system's galactic y-coordinate (0-256) |
QQ10 | Workspace variable | The galactic y-coordinate of the crosshairs in the galaxy chart (and, most of the time, the selected system's galactic y-coordinate) |
QQ11 | Workspace variable | The type of the current view: |
QQ12 | Workspace variable | Our "docked" status |
QQ14 | Workspace variable | Our current fuel level (0-70) |
QQ15 | Workspace variable | The three 16-bit seeds for the selected system, i.e. the one in the crosshairs in the Short-range Chart |
QQ16 | Text | The two-letter token lookup table |
QQ17 | Workspace variable | Contains a number of flags that affect how text tokens are printed, particularly capitalisation: |
QQ18 | Text | The recursive token table for tokens 0-148 |
QQ19 | Workspace variable | Temporary storage, used in a number of places |
QQ2 | Workspace variable | The three 16-bit seeds for the current system, i.e. the one we are currently in |
QQ20 | Workspace variable | The contents of our cargo hold |
QQ21 | Workspace variable | The three 16-bit seeds for the current galaxy |
QQ22 | Workspace variable | The two hyperspace countdown counters |
QQ23 | Market | Market prices table |
QQ24 | Workspace variable | Temporary storage, used to store the current market item's price in routine TT151 |
QQ25 | Workspace variable | Temporary storage, used to store the current market item's availability in routine TT151 |
QQ26 | Workspace variable | A random value used to randomise market data |
QQ28 | Workspace variable | The current system's economy (0-7) |
QQ29 | Workspace variable | Temporary storage, used in a number of places |
QQ3 | Workspace variable | The selected system's economy (0-7) |
QQ4 | Workspace variable | The selected system's government (0-7) |
QQ5 | Workspace variable | The selected system's tech level (0-14) |
QQ6 | Workspace variable | The selected system's population in billions * 10 (1-71), so the maximum population is 7.1 billion |
QQ7 | Workspace variable | The selected system's productivity in M CR (96-62480) |
QQ8 | Workspace variable | The distance from the current system to the selected system in light years * 10, stored as a 16-bit number |
QQ9 | Workspace variable | The galactic x-coordinate of the crosshairs in the galaxy chart (and, most of the time, the selected system's galactic x-coordinate) |
QU5 | Start and end | Reset the current commander data block to the last saved commander |
QUS1 | Save and load | Save or load the commander file |
qv | Equipment | Print a menu of the four space views, for buying lasers |
qw | Text | Print a recursive token in the range 128-145 |
R | Workspace variable | Temporary storage, used in a number of places |
RAND | Workspace variable | Four 8-bit seeds for the random number generation system implemented in the DORND routine |
RAT | Workspace variable | Used to store different signs depending on the current space view, for use in calculating stardust movement |
RAT2 | Workspace variable | Temporary storage, used to store the pitch and roll signs when moving objects and stardust |
RDKEY | Keyboard | Scan the keyboard for key presses |
RE2+2 | Dashboard | Restore A from T and return from the subroutine |
RE3+2 | Dashboard | Auto-recentre the value in X, if keyboard auto-recentre is configured |
REDU2 | Dashboard | Reduce the value of the pitch or roll dashboard indicator |
RES2 | Start and end | Reset a number of flight variables and workspaces |
RES4 | Start and end | Reset the shields and energy banks, then fall through into RES2 to reset the stardust and the ship workspace at INWK |
RESET | Start and end | Reset most variables |
RLINE | Text | The OSWORD configuration block used to fetch a line of text from the keyboard |
ROOT (Loader) | Maths (Arithmetic) | Calculate ZP = SQRT(ZP(1 0)) |
RREN | Text | Prints the character definition pointed to by P(2 1) at the screen address pointed to by (A SC). Used by the BULB routine |
rT9 | Text | Contains an RTS |
RTOK | Text | Macro definition for recursive tokens in the recursive token table |
RTS2 | Maths (Geometry) | Contains an RTS |
S | Workspace variable | Temporary storage, used in a number of places |
S% (Part 1 of 2) | Workspaces | Vector addresses, compass shape and configuration settings |
S% (Part 2 of 2) | Workspaces | Compass shape and configuration settings |
SC | Workspace variable | Screen address (low byte) |
SC (Loader) | Workspace variable | Screen address (low byte) |
SC5 | Drawing the screen | Contains an RTS |
SCAN | Dashboard | Display the current ship on the scanner |
SCH | Workspace variable | Screen address (high byte) |
SCH (Loader) | Workspace variable | Screen address (high byte) |
SESCP | Flight | Spawn an escape pod from the current (parent) ship |
SFRMIS | Tactics | Add an enemy missile to our local bubble of universe |
SFS1 | Universe | Spawn a child ship from the current (parent) ship |
SFS1-2 | Universe | Add a missile to the local bubble that has AI enabled, is hostile, but has no E.C.M. |
SFS2 | Moving | Move a ship in space along one of the coordinate axes |
SFX | Sound | Sound data |
SFXDU | Workspace variable | The duration counter of the current sound on channel 0 |
SFXPR | Workspace variable | The priority of the current sound on channel 0 |
SHD | Flight | Charge a shield and drain some energy from the energy banks |
SHIP_ASTEROID | Drawing ships | Ship blueprint for an asteroid |
SHIP_CANISTER | Drawing ships | Ship blueprint for a cargo canister |
SHIP_COBRA_MK_3 | Drawing ships | Ship blueprint for a Cobra Mk III |
SHIP_CORIOLIS | Drawing ships | Ship blueprint for a Coriolis space station |
SHIP_ESCAPE_POD | Drawing ships | Ship blueprint for an escape pod |
SHIP_MAMBA | Drawing ships | Ship blueprint for a Mamba |
SHIP_MISSILE | Drawing ships | Ship blueprint for a missile |
SHIP_PYTHON | Drawing ships | Ship blueprint for a Python |
SHIP_SIDEWINDER | Drawing ships | Ship blueprint for a Sidewinder |
SHIP_VIPER | Drawing ships | Ship blueprint for a Viper |
SHPPT | Drawing ships | Draw a distant ship as a point rather than a full wireframe |
SIGHT | Flight | Draw the laser crosshairs |
SLSP | Workspace variable | The address of the bottom of the ship line heap |
SNE | Maths (Geometry) | Sine/cosine table |
SOLAR | Universe | Set up various aspects of arriving in a new system |
SOS1 | Universe | Update the missile indicators, set up the planet data block |
SP1 | Dashboard | Draw the space station on the compass |
SP2 | Dashboard | Draw a dot on the compass, given the planet/station vector |
SPBLB | Dashboard | Light up the space station indicator ("S") on the dashboard |
SPBT | Dashboard | The bitmap definition for the space station indicator bulb |
spc | Text | Print a text token followed by a space |
SPS1 | Maths (Geometry) | Calculate the vector to the planet and store it in XX15 |
SPS1+1 | Maths (Geometry) | A BRK instruction |
SPS2 | Maths (Arithmetic) | Calculate (Y X) = A / 10 |
SPS3 | Maths (Geometry) | Copy a space coordinate from the K% block into K3 |
SPS4 | Maths (Geometry) | Calculate the vector to the space station |
SQUA | Maths (Arithmetic) | Clear bit 7 of A and calculate (A P) = A * A |
SQUA2 | Maths (Arithmetic) | Calculate (A P) = A * A |
SQUA2 (Loader) | Maths (Arithmetic) | Calculate (A P) = A * A |
SSPR | Workspace variable | "Space station present" flag |
STARS | Stardust | The main routine for processing the stardust |
STARS1 | Stardust | Process the stardust for the front view |
STARS2 | Stardust | Process the stardust for the left or right view |
STARS6 | Stardust | Process the stardust for the rear view |
STATUS | Status | Show the Status Mode screen (FUNC-9) |
STP | Workspace variable | The step size for drawing circles |
SVC | Workspace variable | The save count |
SVE | Save and load | Save the commander file |
SWAP | Workspace variable | 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) |
swine (Loader) | Copy protection | Resets the machine if the copy protection detects a problem |
SX | Workspace variable | This is where we store the x_hi coordinates for all the stardust particles |
SXL | Workspace variable | This is where we store the x_lo coordinates for all the stardust particles |
SY | Workspace variable | This is where we store the y_hi coordinates for all the stardust particles |
SYL | Workspace variable | This is where we store the y_lo coordinates for all the stardust particles |
SZ | Workspace variable | This is where we store the z_hi coordinates for all the stardust particles |
SZL | Workspace variable | This is where we store the z_lo coordinates for all the stardust particles |
T | Workspace variable | Temporary storage, used in a number of places |
T (Loader) | Workspace variable | Temporary storage, used in a number of places |
T% | Workspaces | Current commander data and stardust data blocks |
T1 | Workspace variable | Temporary storage, used in a number of places |
T95 | Keyboard | Print the distance to the selected system |
TA2 | Maths (Geometry) | Calculate the length of the vector in XX15 (ignoring the low coordinates), returning it in Q |
TACTICS (Part 1 of 7) | Tactics | Apply tactics: Process missiles, both enemy missiles and our own |
TACTICS (Part 2 of 7) | Tactics | Apply tactics: Escape pod, station, safe-zone pirate |
TACTICS (Part 3 of 7) | Tactics | Apply tactics: Calculate dot product to determine ship's aim |
TACTICS (Part 4 of 7) | Tactics | Apply tactics: Check energy levels, maybe launch escape pod if low |
TACTICS (Part 5 of 7) | Tactics | Apply tactics: Consider whether to launch a missile at us |
TACTICS (Part 6 of 7) | Tactics | Apply tactics: Consider firing a laser at us, if aim is true |
TACTICS (Part 7 of 7) | Tactics | Apply tactics: Set pitch, roll, and acceleration |
tal | Universe | Print the current galaxy number |
TALLY | Workspace variable | Our combat rank |
TAS1 | Maths (Arithmetic) | Calculate K3 = (x_sign x_hi x_lo) - V(1 0) |
TAS2 | Maths (Geometry) | Normalise the three-coordinate vector in K3 |
TAS3 | Maths (Geometry) | Calculate the dot product of XX15 and an orientation vector |
tek | Workspace variable | The current system's tech level (0-14) |
TENS | Text | A constant used when printing large numbers in BPRNT |
TGT | Workspace variable | Temporary storage, typically used as a target value for counters when drawing explosion clouds and partial circles |
TIDY | Maths (Geometry) | Orthonormalise the orientation vectors for a ship |
TIS1 | Maths (Arithmetic) | Calculate (A ?) = (-X * A + (S R)) / 96 |
TIS2 | Maths (Arithmetic) | Calculate A = A / Q |
TIS3 | Maths (Arithmetic) | Calculate -(nosev_1 * roofv_1 + nosev_2 * roofv_2) / nosev_3 |
TITLE | Start and end | Display a title screen with a rotating ship and prompt |
tnpr | Market | Work out if we have space for a specific amount of cargo |
TP | Workspace variable | The current mission status, which is always 0 for the cassette version of Elite as there are no missions |
TR1 | Save and load | Copy the last saved commander's name from NA% to INWK |
TRNME | Save and load | Copy the last saved commander's name from INWK to NA% |
TRTB% | Workspace variable | Contains the address of the keyboard translation table, which is used to translate internal key numbers to ASCII |
TRTB% (Loader) | Workspace variable | Contains the address of the keyboard translation table, which is used to translate internal key numbers to ASCII |
TT100 | Main loop | The entry point for the start of the main game loop, which calls the main flight loop and the moves into the spawning routine |
TT102 | Keyboard | Process function key, save key, hyperspace and chart key presses and update the hyperspace counter |
TT103 | Charts | Draw a small set of crosshairs on a chart |
TT105 | Charts | Draw crosshairs on the Short-range Chart, with clipping |
TT11 | Text | Print a 16-bit number, left-padded to n digits, and optional point |
TT110 | Flight | Launch from a station or show the front space view |
TT111 | Universe | Set the current system to the nearest system to a point |
TT111-1 | Universe | Contains an RTS |
TT113 | Maths (Arithmetic) | Contains an RTS |
TT114 | Charts | Display either the Long-range or Short-range Chart |
TT123 | Charts | Move galactic coordinates by a signed delta |
TT128 | Drawing circles | Draw a circle on a chart |
TT14 | Drawing circles | Draw a circle with crosshairs on a chart |
TT146 | Universe | Print the distance to the selected system in light years |
TT147 | Flight | Print an error when a system is out of hyperspace range |
TT15 | Drawing lines | Draw a set of crosshairs |
TT151 | Market | Print the name, price and availability of a market item |
TT152 | Market | Print the unit ("t", "kg" or "g") for a market item |
TT16 | Charts | Move the crosshairs on a chart |
TT160 | Market | Print "t" (for tonne) and a space |
TT161 | Market | Print "kg" (for kilograms) |
TT162 | Text | Print a space |
TT162+2 | Text | Jump to TT27 to print the text token in A |
TT163 | Market | Print the headers for the table of market prices |
TT167 | Market | Show the Market Price screen (FUNC-8) |
TT16a | Market | Print "g" (for grams) |
TT17 | Keyboard | Scan the keyboard for cursor key movement |
TT170 | Start and end | Main entry point for the Elite game code |
TT18 | Flight | Try to initiate a jump into hyperspace |
TT180 | Charts | Contains an RTS |
TT20 | Universe | Twist the selected system's seeds four times |
TT208 | Market | Show the Sell Cargo screen (FUNC-3) |
TT210 | Market | Show a list of current cargo in our hold, optionally to sell |
TT213 | Market | Show the Inventory screen (FUNC-0) |
TT214 | Keyboard | Ask a question with a "Y/N?" prompt and return the response |
TT217 | Keyboard | Scan the keyboard until a key is pressed |
TT219 | Market | Show the Buy Cargo screen (FUNC-2) |
TT22 | Charts | Show the Long-range Chart (FUNC-5) |
TT23 | Charts | Show the Short-range Chart (FUNC-6) |
TT24 | Universe | Calculate system data from the system seeds |
TT25 | Universe | Show the Data on System screen (FUNC-7) |
TT26 | Text | Print a character at the text cursor by poking into screen memory |
TT27 | Text | Print a text token |
TT41 | Text | Print a letter according to Sentence Case |
TT42 | Text | Print a letter in lower case |
TT43 | Text | Print a two-letter token or recursive token 0-95 |
TT44 | Text | Jumps to TT26 to print the character in A (used to enable us to use a branch instruction to jump to TT26) |
TT45 | Text | Print a letter in lower case |
TT46 | Text | Print a character and switch to capitals |
TT48 | Text | Contains an RTS |
TT54 | Universe | Twist the selected system's seeds |
TT60 | Text | Print a text token and a paragraph break |
TT66 | Drawing the screen | Clear the screen and set the current view type |
TT66-2 | Drawing the screen | Call TT66 with A = 1 |
TT67 | Text | Print a newline |
TT68 | Text | Print a text token followed by a colon |
TT69 | Text | Set Sentence Case and print a newline |
TT70 | Universe | Display "MAINLY " and jump to TT72 |
TT72 | Universe | Used by TT70 to re-enter the routine after displaying "MAINLY" for the economy type |
TT73 | Text | Print a colon |
TT74 | Text | Print a character |
TT81 | Universe | Set the selected system's seeds to those of system 0 |
TTX66 | Drawing the screen | Clear the top part of the screen and draw a white border |
TTX69 | Text | Print a paragraph break |
TWOK | Text | Macro definition for two-letter tokens in the token table |
TWOS | Drawing pixels | Ready-made single-pixel character row bytes for mode 4 |
TWOS (Loader) | Drawing pixels | Ready-made single-pixel character row bytes for mode 4 |
TWOS2 | Drawing pixels | Ready-made double-pixel character row bytes for mode 4 |
TYPE | Workspace variable | The current ship type |
U | Workspace variable | Temporary storage, used in a number of places |
U% | Keyboard | Clear the key logger |
UNIV | Universe | Table of pointers to the local universe's ship data blocks |
Unused duplicate of MULTU | Maths (Arithmetic) | An unused duplicate of the MULTU routine |
UU% (Loader) | Workspaces | Marker for a block that is moved as part of the obfuscation |
V | Workspace variable | Temporary storage, typically used for storing an address pointer |
V219 (Loader) | Workspace variable | Gets set to &0218 as part of the obfuscation code |
var | Market | Calculate QQ19+3 = economy * |economic_factor| |
VERTEX | Drawing ships | Macro definition for adding vertices to ship blueprints |
VIEW | Workspace variable | The number of the current space view |
WARP | Flight | Perform an in-system jump |
WP | Workspaces | Ship slots, variables |
WP1 | Drawing planets | Reset the ball line heap |
WPLS2 | Drawing planets | Remove the planet from the screen |
WPSHPS | Dashboard | Clear the scanner and reset the ball line heap |
wW | Flight | Start a hyperspace countdown |
X1 | Workspace variable | Temporary storage, typically used for x-coordinates in line-drawing routines |
X2 | Workspace variable | Temporary storage, typically used for x-coordinates in line-drawing routines |
XC | Workspace variable | The x-coordinate of the text cursor (i.e. the text column), which can be from 0 to 32 |
XSAV | Workspace variable | Temporary storage for saving the value of the X register, used in a number of places |
XSAV2 | Workspace variable | Temporary storage, used for storing the value of the X register in the TT26 routine |
XX | Workspace variable | Temporary storage, typically used for storing a 16-bit x-coordinate |
XX0 | Workspace variable | 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 | Workspace variable | This is an alias for INWK that is used in the main ship-drawing routine at LL9 |
XX12 | Workspace variable | Temporary storage for a block of values, used in a number of places |
XX13 | Workspace variable | Temporary storage, typically used in the line-drawing routines |
XX14 | Workspace variable | This byte appears to be unused |
XX15 | Workspace variable | Temporary storage, typically used for storing screen coordinates in line-drawing routines |
XX16 | Workspace variable | Temporary storage for a block of values, used in a number of places |
XX17 | Workspace variable | 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 | Workspace variable | Temporary storage used to store coordinates in the LL9 ship-drawing routine |
XX19 | Workspace variable | XX19(1 0) shares its location with INWK(34 33), which contains the address of the ship line heap |
XX2 | Workspace variable | Temporary storage, used to store the visibility of the ship's faces during the ship-drawing routine at LL9 |
XX20 | Workspace variable | Temporary storage, used in a number of places |
XX21 | Drawing ships | Ship blueprints lookup table |
XX24 | Workspace variable | This byte appears to be unused |
XX3 | Workspaces | Temporary storage space for complex calculations |
XX4 | Workspace variable | Temporary storage, used in a number of places |
Y1 | Workspace variable | Temporary storage, typically used for y-coordinates in line-drawing routines |
Y2 | Workspace variable | Temporary storage, typically used for y-coordinates in line-drawing routines |
YC | Workspace variable | The y-coordinate of the text cursor (i.e. the text row), which can be from 0 to 23 |
ypl | Universe | Print the current system name |
ypl-1 | Universe | Contains an RTS |
YSAV | Workspace variable | Temporary storage for saving the value of the Y register, used in a number of places |
YSAV2 | Workspace variable | Temporary storage, used for storing the value of the Y register in the TT26 routine |
YY | Workspace variable | Temporary storage, typically used for storing a 16-bit y-coordinate |
YY (Loader) | Workspace variable | Temporary storage, used in a number of places |
Ze | Universe | Initialise the INWK workspace to a hostile ship |
ZERO | Utility routines | Zero-fill pages &9, &A, &B, &C and &D |
ZES1 | Utility routines | Zero-fill the page whose number is in X |
ZES2 | Utility routines | Zero-fill a specific page |
ZINF | Universe | Reset the INWK workspace and orientation vectors |
ZP | Workspaces | Lots of important variables are stored in the zero page workspace as it is quicker and more space-efficient to access memory here |
ZP (Loader) | Workspaces | Important variables used by the loader |
ZZ | Workspace variable | Temporary storage, typically used for distance values |
zZ+1 | Flight | Contains an RTS Ghy-1 Contains an RTS |