This index contains every subroutine, entry point, variable, workspace and macro that appears in the source code for the Commodore 64 version of Elite, sorted alphabetically.
Name | Category | Description |
---|---|---|
ABORT | Dashboard | Disarm missiles and update the dashboard indicators |
ABORT2 | Dashboard | Set/unset the lock target for a missile and update the dashboard |
abraxas | Drawing the screen | The value for VIC register $18 to set the screen RAM address for a raster count of 1 in the interrupt routine (i.e. the dashboard) |
ACT (Game data) | 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 or sun |
ANGRY | Tactics | Make a ship hostile |
antilog | Maths (Arithmetic) | Binary antilogarithm table |
antilogODD | Maths (Arithmetic) | Binary antilogarithm table |
april16 | Sound | Start playing the docking music, irrespective of the current configuration settings |
ARCTAN | Maths (Geometry) | Calculate A = arctan(P / Q) |
ASH | Workspace variable | Aft shield status |
auto | Workspace variable | Docking computer activation status |
AVL | Workspace variable | Market availability in the current system |
backtonormal | Utility routines | Disable the keyboard, set the SVN flag to 0, and return with A = 0 |
BAD | Status | Calculate how bad we have been |
BALI | Workspace variable | This byte appears to be unused |
basicBootstrap (Disk Loader 1) | Loader | Call the RelocateLoader routine even if the firebird file is loaded as a BASIC program |
basicVectors (Disk Loader 1) | Loader | Addresses that override the BASIC vectors for when the loader file is loaded at the address in its PRG header, $02A7 |
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 the Inventory key |
BAYSTEP | Missions | Go to the docking bay (i.e. show the Status Mode screen) |
BDBUFF | Workspace variable | The music data byte that is currently being processed, with the low nibble being processed first, and then the high nibble |
BDdataptr1 | Workspace variable | The low byte of the address of the music data pointer in BDdataptr1(1 0), which points to the end of the music data currently being processed |
BDdataptr2 | Workspace variable | The high byte of the address of the music data pointer in BDdataptr1(1 0), which points to the end of the music data currently being processed |
BDdataptr3 | Workspace variable | The low byte of the address of the music data pointer in BDdataptr3(1 0), which is a backup of the initial value of the BDdataptr1(1 0) pointer, so music can be repeated |
BDdataptr4 | Workspace variable | The high byte of the address of the music data pointer in BDdataptr3(1 0), which is a backup of the initial value of the BDdataptr1(1 0) pointer, so music can be repeated |
BDENTRY | Sound | Start playing a new tune as background music |
BDirqhere | Sound | The interrupt routine for playing background music |
BDJMPTBH | Sound | A jump table containing addresses for processing music commands 1 through 15 (high bytes) |
BDJMPTBL | Sound | A jump table containing addresses for processing music commands 1 through 15 (low bytes) |
BDlab1 | Sound | Apply vibrato before cleaning up and returning from the interrupt routine |
BDlab19 | Sound | Increment the music data pointer in BDdataptr1(1 0) and fetch the next data byte into A |
BDlab21 | Sound | Clean up and return from the interrupt routine |
BDlab23 | Sound | Apply a vibrato frequency change to voice 3 |
BDlab24 | Sound | Apply a vibrato frequency change to voice 2 |
BDlab3 | Sound | Fetch the next two music data bytes and set the frequency of voice 1 (high byte then low byte) |
BDlab4 | Sound | Set the voice control register for voice 1 to value1 |
BDlab5 | Sound | Fetch the next two music data bytes and set the frequency of voice 2 (high byte then low byte) and the vibrato variables |
BDlab6 | Sound | Set the voice control register for voice 2 to value2 |
BDlab7 | Sound | Fetch the next two music data bytes and set the frequency of voice 3 (high byte then low byte) and the vibrato variables |
BDlab8 | Sound | Set the voice control register for voice 3 to value3 |
BDRO1 | Sound | Process music command <#1 fh1 fl1> to set the frequency for voice 1 to (fh1 fl1) and the control register for voice 1 to value1 |
BDRO10 | Sound | Process music command <#10 h1 l1 h2 l2 h3 l3> to set the pulse width to all three voices |
BDRO11 | Sound | Process music command <#11>, which does the same as command <#9> and restarts the current tune |
BDRO12 | Sound | Process music command <#12 n> to set value4 = n, which sets the rest length for commands #8 and #15 |
BDRO13 | Sound | Process music command <#13 v1 v2 v3> to set value1, value2, value3 to the voice control register values for commands <#1> to <#3> |
BDRO14 | Sound | Process music command <#14 vf fc cf> to set the volume and filter modes, filter control and filter cut-off frequency |
BDRO15 | Sound | Process music command <#15> to rest for 2 * value4 interrupts |
BDRO2 | Sound | Process music command <#2 fh1 fl1> to set the frequency for voice 2 to (fh2 fl2) and the control register for voice 2 to value2 |
BDRO3 | Sound | Process music command <#3 fh1 fl1> to set the frequency for voice 3 to (fh3 fl3) and the control register for voice 3 to value3 |
BDRO4 | Sound | Process music command <#4 fh1 fl1 fh2 fl2> to set the frequencies and voice control registers for voices 1 and 2 |
BDRO5 | Sound | Process music command <#5 fh1 fl1 fh2 fl2 fh3 fl3> to set the frequencies and voice control registers for voices 1, 2 and 3 |
BDRO6 | Sound | Process music command <#6> to increment value0 and move on to the next nibble of music data |
BDRO7 | Sound | Process music command <#7 ad1 ad2 ad3 sr1 sr2 sr3> to set three voices' attack and decay length, sustain volume and release length |
BDRO8 | Sound | Process music command <#8> to rest for value4 interrupts |
BDRO9 | Sound | Process music command <#9> to restart the current tune |
BDskip1 | Sound | Process the next nibble of music data in BDBUFF |
BEEP | Sound | Make a short, high beep |
BEGIN | Loader | Initialise the configuration variables and start the game |
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 |
BLINE | Drawing circles | Draw a circle segment and add it to the ball line heap |
BLUEBAND | Drawing the screen | Clear two four-character borders along each side of the space view |
BLUEBANDS | Drawing the screen | Clear a four-character border along one side of the space view |
BOMB | Workspace variable | Energy bomb |
BOMBOFF | Drawing the screen | Switch off the energy bomb effect |
BOX | Drawing the screen | Just draw the border box along the top and sides |
BOX2 | Drawing the screen | Draw the left and right edges of the border box for the space view |
BOXS | Drawing the screen | Draw a horizontal line across the screen at pixel y-coordinate X |
BOXS2 | Drawing the screen | Draw a vertical line for the left or right border box edge |
boxsize | Workspace variable | This byte appears to be unused |
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 |
BRBR | Utility routines | The standard BRKV handler for the game |
BRIEF | Missions | Start mission 1 and show the mission briefing |
BRIEF2 | Missions | Start mission 2 |
BRIEF3 | Missions | Receive the briefing and plans for mission 2 |
BRIS | Missions | Clear the screen, display "INCOMING MESSAGE" and wait for 2 seconds |
BRKBK | Save and load | Set the standard BRKV handler for the game |
brkd | Utility routines | The brkd counter for error handling |
BRP | Missions | Print an extended token and show the Status Mode screen |
BRPS | Missions | Print the extended token in A, show the Status Mode screen and return from the subroutine |
BST | Workspace variable | Fuel scoops (BST stands for "barrel status") |
BUF | Workspace variable | The line buffer used by DASC to print justified text |
BUMP2 | Dashboard | Bump up the value of the pitch or roll dashboard indicator |
c | Equipment | Contains an RTS |
CABTMP | Workspace variable | Cabin temperature |
caravanserai | Drawing the screen | Controls whether multicolour or standard bitmap mode is used for the lower part of the screen (i.e. the dashboard) |
CASH | Workspace variable | Our current cash pot |
cdump (Game Loader) | Drawing the screen | Colour RAM colour data for the dashboard |
celllookh | Drawing pixels | Lookup table for converting a text y-coordinate to the high byte of the address of the start of the character row in screen RAM |
celllookl | Drawing pixels | Lookup table for converting a text y-coordinate to the low byte of the address of the start of the character row |
CHAR (Game data) | Text | Macro definition for characters in the recursive token table |
CHECK | Save and load | Calculate the checksum for the last saved commander data block |
CHECK2 | Save and load | Calculate the third checksum for the last saved commander data block (Commodore 64 and Apple II versions only) |
Checksum | Copy protection | Checksum the code from $1000 to $9FFF and check against S%-1 |
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 |
CHK3 | Save and load | Third checksum byte for the saved commander data file |
CHKON | Drawing circles | Check whether any part of a circle appears on the extended screen |
CHPR | Text | Print a character at the text cursor by poking into screen memory |
CHPR2 | Text | Character print vector handler |
CIRCLE | Drawing circles | Draw a circle for the planet |
CIRCLE2 | Drawing circles | Draw a circle (for the planet or chart) |
CLDELAY | Utility routines | Delay by iterating through 5 * 256 (1280) empty loops |
clss | Drawing the screen | Clear the screen, move the text cursor to the top-left corner and jump back into the CHPR routine to print the next character |
CLYNS | Drawing the screen | Clear the bottom three text rows of the space view |
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 |
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 |
cntr | Dashboard | Apply damping to the pitch or roll dashboard indicator |
coffee | Sound | Return from the interrupt routine, for when we are making sound effects |
coffeeex | Sound | Restore the memory configuration and return from the subroutine |
COK | Workspace variable | Flags used to generate the competition code |
COL | Workspace variable | Temporary storage, used to store colour information when drawing pixels in the dashboard |
COL2 | Workspace variable | The text colour of the next character to draw in CHPR |
COLD | Loader | Configure memory, set up interrupt handlers and configure the VIC-II, SID and CIA chips |
COMC | Workspace variable | The colour of the dot on the compass |
COMIRQ1 | Drawing the screen | The split screen and sound interrupt handler (the IRQ interrupt service hardware vector at $FFFE points here) |
COMPAS | Dashboard | Update the compass |
COMUDAT | Sound | Music data from the C.COMUDAT file |
COMX | Workspace variable | The x-coordinate of the compass dot |
COMY | Workspace variable | The y-coordinate of the compass dot |
CONT (Game data) | Text | Macro definition for control codes in the recursive token table |
CopyZeroPage (Disk Loader 2) | Loader | Copy a page of data in a specified direction between zero page and the page at $CE00, omitting the first two bytes |
counter | Workspace variable | The rest counter when playing music, for implementing music commands #8 and #15 |
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 |
csh | Status | Print the current amount of cash |
CTRL | Keyboard | Scan the keyboard to see if CTRL is currently pressed |
CTWOS | Drawing pixels | Ready-made double-pixel character row bytes for the dashboard |
CTWOS2 | Drawing pixels | Ready-made single-pixel character row bytes for multicolour bitmap mode |
DAMP | Workspace variable | Keyboard damping configuration setting |
DASC | Text | DASC does exactly the same as TT26 and prints a character at the text cursor, with support for verified text in extended tokens |
date (Game Loader) | Loader | A date image that is included into the source disk binaries (this is just random noise in the released game) |
DCS1 | Flight | Calculate the vector from the ideal docking position to the ship |
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 |
DEBRIEF | Missions | Finish mission 1 |
DEBRIEF2 | Missions | Finish mission 2 |
dec27 | Text | Contains an RTS |
DEEOR | Utility routines | Unscramble the main code |
DEEORS | Utility routines | Decrypt a multi-page block of memory |
DEEORS (Game Loader) | Loader | Decrypt a multi-page block of memory |
DELAY | Utility routines | Wait for a specified time, in either 1/50s of a second (on PAL systems) or 1/60s of a second (on NTSC systems) |
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 |
DET1 | Drawing the screen | Show or hide the dashboard (for when we die) |
DETOK | Text | Print an extended recursive token from the TKN1 token table |
DETOK2 | Text | Print an extended text token (1-255) |
DETOK3 | Text | Print an extended recursive token from the RUTOK token table |
DFAULT | Start and end | Reset the current commander data block to the last saved commander |
DFLAG | Workspace variable | A flag that indicates whether the dashboard is currently being shown on-screen |
DIALS (Game Loader) | Drawing the screen | The dashboard bitmap and colour data for screen RAM |
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) |
DISK | Workspace variable | Current media configuration setting |
distaway | Workspace variable | Used to store the nearest distance of the rotating ship on the title screen |
DJD | Workspace variable | Keyboard auto-recentre configuration setting |
djd1 | Dashboard | Auto-recentre the value in X, if keyboard auto-recentre is configured |
DK4 | Keyboard | Scan for pause, configuration and secondary flight keys |
DKCMP | Workspace variable | Docking computer |
DKJ1 | Keyboard | Read joystick and flight controls |
DKS2 | Keyboard | Read the joystick position |
DKS3 | Keyboard | Toggle a configuration setting and emit a beep |
DKS4 | Keyboard | Scan the keyboard to see if a specific key is being pressed |
DKSANYKEY | Keyboard | Scan a specific column in the keyboard matrix for a key press |
DL | Workspace variable | Vertical sync flag |
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 |
dockEd | Flight | Print a message to say there is no hyperspacing allowed inside the station |
DOCKIT | Flight | Apply docking manoeuvres to the ship in INWK |
DOCOL | Text | Implement the #SETCOL |
DOENTRY | Flight | Dock at the space station, show the ship hangar and work out any mission progression |
DOEXP | Drawing ships | Draw an exploding ship |
DOHFX | Drawing circles | Implement the #DOHFX |
DOKEY | Keyboard | Scan for the seven primary flight controls and apply the docking computer manoeuvring code |
dontclip | Workspace variable | A flag that controls whether the LL145 routine clips lines to the dimensions of the space view (which we want to disable in the Short-range Chart, as there is no dashboard and the chart needs to use the whole screen) |
DORND | Maths (Arithmetic) | Generate random numbers |
DORND2 | Maths (Arithmetic) | Make sure the C flag doesn't affect the outcome |
DOSVN | Save and load | Implement the #DOSVN |
DOT | Dashboard | Draw a dash on the compass |
DOVDU19 | Drawing the screen | Implement the #SETVDU19 |
DOXC | Text | Move the text cursor to a specific column |
DOYC | Text | Move the text cursor to a specific row |
DTEN | Text | Print recursive token number X from the token table pointed to by (A V), used to print tokens from the RUTOK table via calls to DETOK3 |
DTS | Text | Print a single letter in the correct case |
DTW1 | Text | A mask for applying the lower case part of Sentence Case to extended text tokens |
DTW2 | Text | A flag that indicates whether we are currently printing a word |
DTW3 | Text | A flag for switching between standard and extended text tokens |
DTW4 | Text | Flags that govern how justified extended text tokens are printed |
DTW5 | Text | The size of the justified text buffer at BUF |
DTW6 | Text | A flag to denote whether printing in lower case is enabled for extended text tokens |
DTW8 | Text | A mask for capitalising the next letter in an extended text token |
DTWOS | Drawing pixels | An unused table of ready-made double-pixel character row bytes for the dashboard |
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% (Game data) | Drawing ships | Ship blueprints default NEWB flags |
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) |
ECHR (Game data) | Text | Macro definition for characters in the extended token table |
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. |
ECMP | Workspace variable | Our E.C.M. status |
EDGE (Game data) | Drawing ships | Macro definition for adding edges to ship blueprints |
EDGES | Drawing lines | Draw a horizontal line given a centre and a half-width |
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 |
EJMP (Game data) | Text | Macro definition for jump tokens in the extended token table |
Elite GMA loader (Part 1 of 4) (Disk Loader 2) | Loader | Skip past the table of track and sector numbers if present |
Elite GMA loader (Part 2 of 4) (Disk Loader 2) | Loader | Offer the option of a fast loader and run the disk protection code in the GMA3 file |
Elite GMA loader (Part 3 of 4) (Disk Loader 2) | Loader | Run the Elite loader in the GMA4 file |
Elite GMA loader (Part 4 of 4) (Disk Loader 2) | Loader | Load the GMA5 and GMA6 binaries and start the game |
Elite loader (Part 1 of 7) (Game Loader) | Loader | Unscramble the loader code and game data |
Elite loader (Part 2 of 7) (Game Loader) | Loader | Copy the game data to their correct locations |
Elite loader (Part 3 of 7) (Game Loader) | Loader | Configure the memory layout and the CIA chips |
Elite loader (Part 4 of 7) (Game Loader) | Loader | Configure the VIC-II for screen memory and sprites |
Elite loader (Part 5 of 7) (Game Loader) | Loader | Configure the screen bitmap and copy colour data into screen RAM |
Elite loader (Part 6 of 7) (Game Loader) | Loader | Copy colour data into colour RAM and configure more screen RAM |
Elite loader (Part 7 of 7) (Game Loader) | Loader | Set up the sprite pointers, make a copy of the dashboard bitmap in DSTORE% and copy the sprite definitions to SPRITELOC% |
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 |
ERND (Game data) | Text | Macro definition for random tokens in the extended token table |
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 |
ETOK (Game data) | Text | Macro definition for recursive tokens in the extended token table |
ETWO (Game data) | Text | Macro definition for two-letter tokens in the extended token table |
EV | Workspace variable | The "extra vessels" spawning counter |
ex | Text | Print a recursive token |
exlook | Drawing ships | A table to shift X left by one place when X is 0 or 1 |
EXNO | Sound | Make the sound of a laser strike or ship explosion |
EXNO2 | Status | Process us making a kill |
EXNO3 | Sound | Make an explosion sound |
EXS1 | Drawing ships | Set (A X) = (A R) +/- random * cloud size |
F% | Utility routines | Denotes the end of the main game code, from ELITE A to ELITE K |
FACE (Game data) | 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 |
fastLoaderOffered (Disk Loader 2) | Loader | A flag to record whether we have already asked whether to use the fast loader, so we don't ask twice |
fastTrackSector (Disk Loader 2) | Loader | A track and sector table for use by the fast loader |
FEED | Text | Print a newline |
filename (Disk Loader 1) | Loader | A wildcarded filename that matches the first GMA file on disk |
filename (Disk Loader 2) | Loader | The GMA filename used to load the game files, buried in a message from GMA, the author of the loader |
FILEPR | Save and load | Display the currently selected media (disk or tape) |
filesys | Save and load | A lookup table containing the device numbers for tape and disk |
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 |
FLFLLS | Drawing suns | Reset the sun 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) |
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" |
FREEZE | Keyboard | Rejoin the pause routine after processing a screen save |
FRIN | Workspace variable | Slots for the ships in the local bubble of universe |
FRIN (Game Loader) | Loader | A temporary variable that's used for storing addresses |
FRMIS | Tactics | Fire a missile from our ship |
FRS1 | Tactics | Launch a ship straight ahead of us, below the laser sights |
frump | Workspace variable | Used to store the number of particles in the explosion cloud |
FSH | Workspace variable | Forward shield status |
fwl | Status | Print fuel and cash levels |
G% | Utility routines | Denotes the start of the main game code, from ELITE A to ELITE K |
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 |
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" |
GOPL | Tactics | Make the ship head towards the planet |
gov | Workspace variable | The current system's government type (0-7) |
GTDRV | Save and load | Get an ASCII disk drive number from the keyboard |
GTHG | Universe | Spawn a Thargoid ship and a Thargon companion |
GTNMEW | Save and load | Fetch the name of a commander file to save or load |
GVL | Universe | Calculate the availability of market items |
HFS1 | Drawing circles | Don't clear the screen, and draw 8 concentric rings with the step size in STP |
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 that effect is not used in this version |
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) |
HLOIN2 | Drawing lines | Remove a line from the sun line heap and draw it on-screen |
hm | Charts | Select the closest system and redraw the chart crosshairs |
HME2 | Charts | Search the galaxy for a system |
hy5 | Universe | Contains an RTS |
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 |
HYPNOISE | Sound | Make the sound of the hyperspace drive being engaged |
hyR | Universe | Contains an RTS |
INCYC | Text | Move the text cursor to the next row |
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 |
innersec | Drawing the screen | A table for converting the value of X from 0 to 1 or from 1 to 0, for use when flipping RASCT between 0 and 1 on each interrupt |
INWK | Workspace variable | The zero-page internal workspace for the current ship data block |
ITEM | Market | Macro definition for the market prices table |
itsoff | Maths (Arithmetic) | Contains an RTS |
JAMESON | Save and load | Restore the default JAMESON commander |
jmp | Universe | Set the current system to the selected system |
JMTB | Text | The extended token table for jump tokens 1-32 (DETOK) |
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 |
JUNK | Workspace variable | The amount of junk in the local bubble |
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 |
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 |
KERNALSETUP | Save and load | Set up memory and interrupts so we can use the Kernal functions and configure the file system device number and filename |
KEYLOOK | Keyboard | The key logger |
KILLSHP | Universe | Remove a ship from our local bubble of universe |
KL | Workspace variable | If a key is being pressed that is not in the keyboard table at KYTB, it can be stored here (as seen in routine DK4, for example) |
KLO | Workspace variable | The key logger in the BBC Micro version has a spare byte at the start for storing the last key press, so we also include a spare byte here so the KLO logger in the Commodore 64 version behaves in a similar way to the KL key logger in the BBC Micro |
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 it with the sun |
KTRAN | Keyboard | An unused key logger buffer that's left over from the 6502 Second Processor version of Elite |
KWH% (Game data) | Status | Integer number of kills awarded for destroying each type of ship |
KWL% (Game data) | Status | Fractional number of kills awarded for destroying each type of ship |
KY1 | Workspace variable | "?" is being pressed (slow down, KLO+$9) |
KY12 | Workspace variable | "C=" is being pressed (energy bomb, KLO+$3) |
KY13 | Workspace variable | Left arrow is being pressed (launch escape pod, KLO+$7) |
KY14 | Workspace variable | "T" is being pressed (target missile, KLO+$2A) |
KY15 | Workspace variable | "U" is being pressed (unarm missile, KLO+$22) |
KY16 | Workspace variable | "M" is being pressed (fire missile, KLO+$1C) |
KY17 | Workspace variable | "E" is being pressed (activate E.C.M., KLO+$32) |
KY18 | Workspace variable | "J" is being pressed (in-system jump, KLO+$1E) |
KY19 | Workspace variable | "C" is being pressed (activate docking computer, KLO+$2C) |
KY2 | Workspace variable | Space is being pressed (speed up, KLO+$4) |
KY20 | Workspace variable | "P" is being pressed (deactivate docking computer, KLO+$17) |
KY3 | Workspace variable | "<" is being pressed (roll left, KYO+$11) |
KY4 | Workspace variable | ">" is being pressed (roll right, KLO+$14) |
KY5 | Workspace variable | "X" is being pressed (pull up, KLO+$29) |
KY6 | Workspace variable | "S" is being pressed (pitch down, KLO+$33) |
KY7 | Workspace variable | "A" is being pressed (fire lasers, KLO+$36) |
KYTB | Keyboard | Lookup table for in-flight keyboard controls |
L1M | Utility routines | Temporary storage for the new value of the 6510 input/output port register |
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 |
LIJT1 | Drawing lines | Addresses for modifying the low byte of the JMP instruction at LI71 to support the unrolled algorithm in part 3 of LOIN |
LIJT2 | Drawing lines | Addresses for modifying the high byte of the JMP instruction at LI71 to support the unrolled algorithm in part 3 of LOIN |
LIJT3 | Drawing lines | Addresses for modifying the low byte of the JMP instruction at LI72 to support the unrolled algorithm in part 3 of LOIN |
LIJT4 | Drawing lines | Addresses for modifying the high byte of the JMP instruction at LI72 to support the unrolled algorithm in part 3 of LOIN |
LIJT5 | Drawing lines | Addresses for modifying the low byte of the JMP instruction at LI91 to support the unrolled algorithm in part 4 of LOIN |
LIJT6 | Drawing lines | Addresses for modifying the high byte of the JMP instruction at LI91 to support the unrolled algorithm in part 4 of LOIN |
LIJT7 | Drawing lines | Addresses for modifying the low byte of the JMP instruction at LI92 to support the unrolled algorithm in part 4 of LOIN |
LIJT8 | Drawing lines | Addresses for modifying the high byte of the JMP instruction at LI92 to support the unrolled algorithm in part 4 of LOIN |
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 |
load3 (Disk Loader 2) | Loader | Jump to the entry point in elite-loader |
loaderScreens (Disk Loader 2) | Loader | PETSCII codes for clearing the screen and displaying the fast loader prompt and loading screens |
LoadGMAFile (Disk Loader 2) | Loader | Load a specific GMA file |
LOD | Save and load | Load a commander file |
LODATA (Game Loader) | Loader | The binaries for recursive tokens and the game font |
log | Maths (Arithmetic) | Binary logarithm table (high byte) |
logL | Maths (Arithmetic) | Binary logarithm table (low byte) |
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 |
LOR | Save and load | Set the C flag and return from the subroutine |
lotus | Drawing the screen | The colour of the explosion sprite in the upper and lower parts of the screen |
LSO | Workspace variable | The ship line heap for the space station (see NWSPS) and the sun line heap (see SUN) |
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) |
LSX | Workspace variable | LSX is an alias that points to the first byte of the sun line heap at LSO |
LSX2 | Drawing lines | The ball line heap for storing x-coordinates |
LSY2 | Drawing lines | The ball line heap for storing y-coordinates |
m | Maths (Geometry) | Do not include A in the calculation |
M% | Main loop | The entry point for the main flight loop NOMVETR The re-entry point in the main game loop for when there are no sprites to move |
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 and sun and process fuel scooping if appropriate |
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 Cobra Mk III, Python, Boa or Anaconda) |
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, a Thargoid, 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 (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 or sun |
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 |
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 |
messXC | Workspace variable | 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 | Workspace variable | Are we in witchspace (i.e. have we mis-jumped)? |
MJP | Flight | Process a mis-jump into witchspace |
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 |
moonflower | Drawing the screen | Controls the energy bomb effect by switching between multicolour and standard mode |
MOS | Workspace variable | This variable appears to be unused |
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 in green |
MSTG | Workspace variable | The current missile lock target |
MT1 | Text | Switch to ALL CAPS when printing extended tokens |
MT13 | Text | Switch to lower case when printing extended tokens |
MT14 | Text | Switch to justified text when printing extended tokens |
MT15 | Text | Switch to left-aligned text when printing extended tokens |
MT16 | Text | Print the character in variable DTW7 |
MT17 | Text | Print the selected system's adjective, e.g. Lavian for Lave |
MT18 | Text | Print a random 1-8 letter word in Sentence Case |
MT19 | Text | Capitalise the next letter |
MT2 | Text | Switch to Sentence Case when printing extended tokens |
MT23 | Text | Move to row 10, switch to white text, and switch to lower case when printing extended tokens |
MT26 | Text | Fetch a line of text from the keyboard |
MT27 | Text | Print the captain's name during mission briefings |
MT28 | Text | Print the location hint during the mission 1 briefing |
MT29 | Text | Move to row 6 and switch to lower case when printing extended tokens |
MT5 | Text | Switch to extended tokens |
MT6 | Text | Switch to standard tokens in Sentence Case |
MT8 | Text | Tab to column 6 and start a new word when printing extended tokens |
MT9 | Text | Clear the screen and set the current view type to 1 |
MTIN | Text | Lookup table for random tokens in the extended token table (0-37) |
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) |
MUDOCK | Workspace variable | Docking music tune configuration setting |
MUFOR | Workspace variable | Configuration setting that controls whether the docking music can be enabled or disabled |
MULIE | Workspace variable | A flag to record whether the RESET routine is currently being run, in which case the music configuration variables may be in a state of flux |
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 |
MUPLA | Workspace variable | A flag to record whether any music is currently playing |
Music variables | Sound | Variables that are used by the music player |
MUSILLY | Workspace variable | Sounds during music configuration setting |
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 |
MUTOK | Workspace variable | Docking music configuration setting |
MUTOKCH | Sound | Process a change in the docking music configuration setting |
MUTOKOLD | Workspace variable | Used to store the previous value of MUTOK, so we can track whether the docking music configuration changes |
MV40 | Moving | Rotate the planet or sun's location in space by the amount of pitch and roll of our ship |
MV45 | Moving | Rejoin the MVEIT routine after the rotation, tactics and scanner code |
mvbllop | Utility routines | Only copy Y bytes, rather than a whole page |
mvblock (Game Loader) | Loader | Copy a number of pages in memory |
mvblockK | Utility routines | Copy a specific number of pages in memory |
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 |
mvsm (Game Loader) | Loader | Copy 280 bytes in memory |
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) |
MVTRIBS | Missions | Move the Trumble sprites around on-screen |
NA% | Save and load | The data block for the last saved commander |
NA2% | Save and load | The data block for the default commander |
NAME | Workspace variable | The current commander name |
NEWB | Workspace variable | The ship's "new byte flags" (or NEWB flags) |
newosrdch | Tube | The custom OSRDCH routine for reading characters |
newzp | Workspace variable | This is used by the STARS2 routine for storing the stardust particle's delta_x value |
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 |
NMIpissoff | Loader | Acknowledge NMI interrupts and ignore them |
NO1 | Maths (Geometry) | Contains an RTS |
NOISE | Sound | Make the sound whose number is in Y |
NOISE2 | Sound | Make a sound effect with a specific volume and release length |
NOISEOFF | Sound | Turn off a specific sound effect in whichever voice it is currently playing in |
NOMSL | Workspace variable | The number of missiles we have fitted (0-4) |
NOMVETR | Main loop | The re-entry point in the main game loop for when there are no sprites to move |
NORM | Maths (Geometry) | Normalise the three-coordinate vector in XX15 |
NOSPRITES | Missions | Disable all sprites and remove them from the screen |
NOSTM | Workspace variable | The number of stardust particles shown on screen, which is 12 (#NOST) for normal space, and 3 for witchspace |
NWDAV4 | Market | Print an "ITEM?" error, make a beep and rejoin the TT210 routine |
NWDAVxx | Market | Used to rejoin this routine from the call to NWDAV4 |
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 |
OfferFastLoader (Disk Loader 2) | Loader | Offer the option of using the fast loader, if we haven't already, and set up the fast loader if it is chosen |
oh | Universe | Contains an RTS SPIN2 Remove any randomness: spawn cargo of a specific type (given in X), and always spawn the number given in A |
oldlong | Save and load | Contains the length of the last saved commander name |
OOPS | Flight | Take some damage |
Option variables | Workspaces | Variables that are predominantly used to store the game options |
OTHERFILEPR | Save and load | Display the non-selected media (disk or tape) |
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 t As TT217 but don't preserve Y, set it to YSAV instead |
P | Workspace variable | Temporary storage, used in a number of places |
P2 | Workspace variable | Temporary storage, used in place of variable P in the line-drawing routines |
PAS1 | Missions | Display a rotating ship at space coordinates (0, conhieght, 256) and scan the keyboard |
PATG | Workspace variable | Configuration setting to show the author names on the start-up screen and enable manual hyperspace mis-jumps |
PAUSE | Missions | Display a rotating ship, waiting until a key is pressed, then remove the ship from the screen |
PAUSE2 | Keyboard | Wait until a key is pressed, ignoring any existing key press |
PDESC | Universe | Print the system's extended description or a mission 1 directive |
ping | Universe | Set the selected system to the current system |
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 or sun from the screen |
PL2-1 | Drawing planets | Contains an RTS |
PL21 | Drawing planets | Return from a planet/sun-drawing routine with a failure flag |
PL44 | Drawing planets | Clear the C flag and return from the subroutine PL6 Contains an RTS |
PL6 | Drawing planets | Contains an RTS |
PL9 (Part 1 of 3) | Drawing planets | Draw the planet, with either an equator and meridian, or a crater |
PL9 (Part 2 of 3) | Drawing planets | Draw the planet's equator and meridian |
PL9 (Part 3 of 3) | Drawing planets | Draw the planet's crater |
PLANET | Drawing planets | Draw the planet or sun |
plf | Text | Print a text token followed by a newline |
plf2 | Text | Print text followed by a newline and indent of 6 characters |
PLS1 | Drawing planets | Calculate (Y A) = nosev_x / z |
PLS2 | Drawing planets | Draw a half-ellipse |
PLS22 | Drawing planets | Draw an ellipse or half-ellipse |
PLS3 | Drawing planets | Calculate (Y A P) = 222 * roofv_x / z |
PLS4 | Drawing planets | Calculate CNT2 = arctan(P / A) / 4 |
PLS5 | Drawing planets | Calculate roofv_x / z and roofv_y / z |
PLS6 | Drawing planets | Calculate (X K) = (A P+1 P) / (z_sign z_hi z_lo) |
PLTOG | Workspace variable | Planetary details configuration setting |
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) |
PrintString (Disk Loader 2) | Loader | Print the null-terminated string at offset X in loaderScreens |
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 |
PTCLS2 | Drawing ships | Draw the explosion along with an explosion sprite |
ptg | Flight | Called when the user manually forces a mis-jump RTS111 Contains an RTS |
PULSEW | Workspace variable | The current pulse width for sound effects |
PUTBACK | Tube | Reset the OSWRCH vector in WRCHV to point to USOSWRCH |
PX4 | Drawing pixels | Contains an RTS |
PZW | Dashboard | Fetch the current dashboard colours, to support flashing |
Q | Workspace variable | Temporary storage, used in a number of places |
Q2 | Workspace variable | Temporary storage, used in place of variable Q in the line-drawing routines |
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 (Game data) | 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 | Restart the game using the last saved commander without asking whether to load a new 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 |
R% | Utility routines | Denotes the end of the first part of the main game code (CODE1), from ELITE A to ELITE C |
R2 | Workspace variable | Temporary storage, used in place of variable R in the line-drawing routines |
R5 | Text | Make a beep and jump back into the character-printing routine at CHPR |
RAND | Workspace variable | Four 8-bit seeds for the random number generation system implemented in the DORND routine |
RASTCT | Drawing the screen | The current raster count, which flips between 0 and 1 on each call to the COMIRQ1 interrupt handler (0 = space view, 1 = dashboard) |
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 |
RDLI | Loader | The OS command string for running the flight code in file D.CODE in the disc version of Elite |
RE2+2 | Dashboard | Restore A from T and return from the subroutine |
REDU2 | Dashboard | Reduce the value of the pitch or roll dashboard indicator |
refund | Equipment | Install a new laser, processing a refund if applicable |
RelocateLoader (Disk Loader 1) | Loader | Load and run the GMA1 loader file |
RES2 | Start and end | Reset a number of flight variables and workspaces |
RESET | Start and end | Reset most variables |
RLINE | Text | The OSWORD configuration block used to fetch a line of text from the keyboard |
RR4 | Text | Restore the registers and return from the subroutine RRafter A re-entry point from the clss routine to print the character in A |
RR4S | Text | A jump point that restores the registers and returns from the CHPR subroutine (so we can use a branch instruction to jump to RR4) |
RRafter | Text | A re-entry point from the clss routine to print the character in A |
RTOK (Game data) | Text | Macro definition for recursive tokens in the recursive token table |
RTS111 | Flight | Contains an RTS |
RTS2 | Drawing suns | Contains an RTS |
RUGAL (Game data) | Text | The criteria for systems with extended description overrides |
RunGMA (Disk Loader 1) | Loader | Load and run the GMA1 loader file |
RUPLA (Game data) | Text | System numbers that have extended description overrides |
RUTOK (Game data) | Text | The second extended token table for recursive tokens 0-26 (DETOK3) |
S | Workspace variable | Temporary storage, used in a number of places |
S% | Loader | Checksum, decrypt and unscramble the main game code, and start the game |
S1% | Save and load | The drive and directory number used when saving or loading a commander file |
S2 | Workspace variable | Temporary storage, used in place of variable S in the line-drawing routines |
safehouse | Workspace variable | Backup storage for the seeds for the selected system |
santana | Drawing the screen | Controls whether sprite 1 (the explosion sprite) is drawn in single colour or multicolour mode |
SC | Workspace variable | Screen address (low byte) |
scacol | Drawing ships | Ship colours on the scanner |
SCAN | Dashboard | Display the current ship on the scanner |
SCH | Workspace variable | Screen address (high byte) |
sdump (Game Loader) | Drawing the screen | Screen RAM colour data for the dashboard |
SESCP | Flight | Spawn an escape pod from the current (parent) ship |
SETL1 | Utility routines | Set the 6510 input/output port register to control the memory map |
SetUpFastLoader (Disk Loader 2) | Loader | Set up the fast loader so that calls to the Kernal's file functions use the fast loader routines instead |
SetUpGMAFile (Disk Loader 2) | Loader | Configure the filename parameters to load a specific GMA file |
SETXC | Text | An unused routine to move the text cursor to a specific column |
SETYC | Text | An unused routine to move the text cursor to a specific row |
SEVENS | Sound | A table for converting the value of Y to 7 * Y |
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 |
SFXATK | Sound | The attack and decay length (SID+$5) for each sound effect |
SFXCNT | Sound | The counter for each sound effect, which defines the duration of the effect in frames |
SFXCR | Sound | The voice control register (SID+$4) for each sound effect |
SFXFQ | Sound | The frequency (SID+$5) for each sound effect |
SFXFRCH | Sound | The frequency change to be applied to each sound effect in each frame (as a signed number) |
SFXPR | Sound | The priority level for each sound effect |
SFXSUS | Sound | The release length and sustain volume (SID+$6) for each sound effect |
SFXVCH | Sound | The volume change rate for each sound effect, i.e. how many frames need to pass before the sound effect's volume is reduced by one |
shango | Drawing the screen | The raster lines that fire the raster interrupt, so it fires at the top of the screen (51) and the top of the dashboard (51 + 143) |
SHD | Flight | Charge a shield and drain some energy from the energy banks |
SHIP_ADDER (Game data) | Drawing ships | Ship blueprint for an Adder |
SHIP_ANACONDA (Game data) | Drawing ships | Ship blueprint for an Anaconda |
SHIP_ASP_MK_2 (Game data) | Drawing ships | Ship blueprint for an Asp Mk II |
SHIP_ASTEROID (Game data) | Drawing ships | Ship blueprint for an asteroid |
SHIP_BOA (Game data) | Drawing ships | Ship blueprint for a Boa |
SHIP_BOULDER (Game data) | Drawing ships | Ship blueprint for a boulder |
SHIP_CANISTER (Game data) | Drawing ships | Ship blueprint for a cargo canister |
SHIP_COBRA_MK_1 (Game data) | Drawing ships | Ship blueprint for a Cobra Mk I |
SHIP_COBRA_MK_3 (Game data) | Drawing ships | Ship blueprint for a Cobra Mk III |
SHIP_COBRA_MK_3_P (Game data) | Drawing ships | Ship blueprint for a Cobra Mk III (pirate) |
SHIP_CONSTRICTOR (Game data) | Drawing ships | Ship blueprint for a Constrictor |
SHIP_CORIOLIS (Game data) | Drawing ships | Ship blueprint for a Coriolis space station |
SHIP_COUGAR (Game data) | Drawing ships | Ship blueprint for a Cougar |
SHIP_DODO (Game data) | Drawing ships | Ship blueprint for a Dodecahedron ("Dodo") space station |
SHIP_ESCAPE_POD (Game data) | Drawing ships | Ship blueprint for an escape pod |
SHIP_FER_DE_LANCE (Game data) | Drawing ships | Ship blueprint for a Fer-de-Lance |
SHIP_GECKO (Game data) | Drawing ships | Ship blueprint for a Gecko |
SHIP_KRAIT (Game data) | Drawing ships | Ship blueprint for a Krait |
SHIP_MAMBA (Game data) | Drawing ships | Ship blueprint for a Mamba |
SHIP_MISSILE (Game data) | Drawing ships | Ship blueprint for a missile |
SHIP_MORAY (Game data) | Drawing ships | Ship blueprint for a Moray |
SHIP_PLATE (Game data) | Drawing ships | Ship blueprint for an alloy plate |
SHIP_PYTHON (Game data) | Drawing ships | Ship blueprint for a Python |
SHIP_PYTHON_P (Game data) | Drawing ships | Ship blueprint for a Python (pirate) |
SHIP_ROCK_HERMIT (Game data) | Drawing ships | Ship blueprint for a rock hermit (asteroid) |
SHIP_SHUTTLE (Game data) | Drawing ships | Ship blueprint for a Shuttle |
SHIP_SIDEWINDER (Game data) | Drawing ships | Ship blueprint for a Sidewinder |
SHIP_SPLINTER (Game data) | Drawing ships | Ship blueprint for a splinter |
SHIP_THARGOID (Game data) | Drawing ships | Ship blueprint for a Thargoid mothership |
SHIP_THARGON (Game data) | Drawing ships | Ship blueprint for a Thargon |
SHIP_TRANSPORTER (Game data) | Drawing ships | Ship blueprint for a Transporter |
SHIP_VIPER (Game data) | Drawing ships | Ship blueprint for a Viper |
SHIP_WORM (Game data) | Drawing ships | Ship blueprint for a Worm |
SHIPS (Game Loader) | Loader | The binaries for the ship blueprints |
SHPPT | Drawing ships | Draw a distant ship as a point rather than a full wireframe |
SIGHT | Flight | Draw the laser crosshairs |
sightcol | Drawing lines | Colours for the crosshair sights on the different laser types |
SLSP | Workspace variable | The address of the bottom of the ship line heap |
SNE (Game data) | Maths (Geometry) | Sine/cosine table |
SOATK | Workspace variable | Sound buffer for attack and decay lengths |
SOCNT | Workspace variable | Sound buffer for sound effect counters |
SOCR | Workspace variable | Sound buffer for voice control register values |
SOFLG | Workspace variable | Sound buffer for sound effect flags |
SOFLUSH | Sound | Reset the sound buffers and turn off all sound channels |
SOFRCH | Workspace variable | Sound buffer for frequency change values |
SOFRQ | Workspace variable | Sound buffer for SFXFQ values |
SOINT | Sound | Process the contents of the sound buffer and send it to the sound chip, to make sound effects as part of the interrupt routine |
SOLAR | Universe | Set up various aspects of arriving in a new system |
SOPR | Workspace variable | Sound buffer for SOPR values |
SOS1 | Universe | Update the missile indicators, set up the planet data block |
SOSUS | Workspace variable | Sound buffer for release length and sustain volume |
SOUL3b | Sound | Check whether this is the last voice when making sound effects in the interrupt routine, and return from the interrupt if it is |
SOUL8 | Sound | Process the sound buffer from voice Y to 0 |
Sound variables | Sound | The sound buffer where the data to be sent to the sound chip is processed |
SOUR1 | Sound | Contains an RTS |
SOVCH | Workspace variable | Sound buffer for the volume change rate |
SP1 | Dashboard | Draw the space station on the compass |
SP2 | Dashboard | Draw a dot on the compass, given the planet/station vector |
spasto | Universe | Contains the address of the Coriolis space station's ship blueprint |
SPBLB | Dashboard | Light up the space station indicator ("S") on the dashboard |
spc | Text | Print a text token followed by a space |
SPIN | Universe | Randomly spawn cargo from a destroyed ship |
SPIN2 | Universe | Remove any randomness: spawn cargo of a specific type (given in X), and always spawn the number given in A |
SPMASK | Missions | Masks for updating sprite bits in VIC+$10 for the top bit of the 9-bit x-coordinates of the Trumble sprites |
SPRITE2 (Sprites) | Sprites | Macro definition for a two-colour sprite pixel row |
SPRITE2_BYTE (Sprites) | Sprites | Macro definition for a two-colour sprite pixel byte |
SPRITE4 (Sprites) | Sprites | Macro definition for a four-colour sprite pixel row |
SPRITE4_BYTE (Sprites) | Sprites | Macro definition for a four-colour sprite pixel byte |
spritp (Game Loader) | Drawing the screen | Sprite definitions |
spritp (Sprites) | Sprites | Sprite definitions for four laser sights, the explosion sprite and two Trumbles |
sprx | Workspace variable | Contains the x-coordinate offset for the explosion sprite, i.e. the relative position of the sprite compared to the centre of the explosion, which needs to be set according to the size of the sprite |
spry | Workspace variable | Contains the y-coordinate offset for the explosion sprite, i.e. the relative position of the sprite compared to the centre of the explosion, which needs to be set according to the size of the sprite |
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 |
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 |
startat | Sound | Start playing the title music, if configured |
startat2 | Sound | Start playing the music at address (A X) + 1 |
startbd | Sound | Start playing the docking music, if configured |
STARTUP | Loader | Set the various vectors, interrupts and timers |
STATUS | Status | Show the Status Mode screen |
stopat | Sound | Stop playing the current music coffeeex Restore the memory configuration and return from the subroutine |
stopbd | Sound | Stop playing the docking music |
STP | Workspace variable | The step size for drawing circles |
SUN (Part 1 of 4) | Drawing suns | Draw the sun: Set up all the variables needed to draw the sun |
SUN (Part 2 of 4) | Drawing suns | Draw the sun: Start from the bottom of the screen and erase the old sun line by line |
SUN (Part 3 of 4) | Drawing suns | Draw the sun: Continue to move up the screen, drawing the new sun line by line |
SUN (Part 4 of 4) | Drawing suns | Draw the sun: Continue to the top of the screen, erasing the old sun line by line |
SUNX | Workspace variable | The 16-bit x-coordinate of the vertical centre axis of the sun (which might be off-screen) |
SVC | Workspace variable | The save count |
SVE | Save and load | Display the disk access menu and process saving of commander files |
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) |
SWAPPZERO | Utility routines | A routine that swaps zero page with the page at $CE00, so that zero page changes made by Kernal functions can be reversed |
SWAPPZERO (source disk variant) | Utility routines | A routine that swaps zero page with the page at $CE00, so that zero page changes made by Kernal functions can be reversed |
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 | Keyboard | As TT217 but don't preserve Y, set it to YSAV instead |
T | Workspace variable | Temporary storage, used in a number of places |
T1 | Workspace variable | Temporary storage, used in a number of places |
T2 | Workspace variable | Temporary storage, used in place of variable T in the line-drawing routines |
T95 | Keyboard | Print the distance to the selected system |
TA151 | Tactics | Make the ship head towards the planet TA9-1 Contains an RTS |
TA2 | Maths (Geometry) | Calculate the length of the vector in XX15 (ignoring the low coordinates), returning it in Q |
TA9-1 | Tactics | Contains an RTS |
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, lone Thargon, 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 |
TALLYL | Workspace variable | Combat rank fraction |
tapeerror | Save and load | Print either "TAPE ERROR" or "DISK ERROR" |
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 |
TAS4 | Maths (Geometry) | Calculate the dot product of XX15 and one of the space station's orientation vectors |
TAS6 | Maths (Geometry) | Negate the vector in XX15 so it points in the opposite direction |
TBRIEF | Missions | Start mission 3 |
tek | Workspace variable | The current system's tech level (0-14) |
TENS | Text | A constant used when printing large numbers in BPRNT |
TGINT | Keyboard | The keys used to toggle configuration settings when the game is paused |
TGT | Workspace variable | Temporary storage, typically used as a target value for counters when drawing explosion clouds and partial circles |
THERE | Missions | Check whether we are in the Constrictor's system in mission 1 |
thiskey | Workspace variable | If a key is being pressed that is not in the keyboard table at KYTB, it can be stored in KL and thiskey (as seen in routine DK4, for example) |
thislong | Save and load | Contains the length of the most recently entered commander name |
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 |
TKN1 (Game data) | Text | The first extended token table for recursive tokens 0-255 (DETOK) |
TKN2 | Text | The extended two-letter token lookup table |
tnpr | Market | Work out if we have space for a specific amount of cargo |
tnpr1 | Market | Work out if we have space for one tonne of cargo |
TOKN (Game data) | Text | Macro definition for standard tokens in the extended token table |
TP | Workspace variable | The current mission status |
TR1 | Save and load | Copy the last saved commander's name from NA% to INWK |
trackSector (Disk Loader 2) | Loader | Track and sector numbers for all the files on the disk, for use in the fast loader |
TRADEMODE | Drawing the screen | Clear the screen and set up a trading screen |
TRANTABLE | Keyboard | Translation table from internal key number to ASCII |
TRIBBLE | Workspace variable | The number of Trumbles in the cargo hold |
TRIBCT | Workspace variable | Contains the number of Trumble sprites that we are showing on-screen, in the range 0 to 6 |
TRIBDIR | Missions | The low byte of the four 16-bit directions in which Trumble sprites can move |
TRIBDIRH | Missions | The high byte of the four 16-bit directions in which Trumble sprites can move |
TRIBMA | Missions | A table for converting the number of Trumbles in the hold into a sprite-enable flag to use with VIC register $15 |
TRIBTA | Missions | A table for converting the number of Trumbles in the hold into a number of sprites in the range 0 to 6 |
TRIBVX | Workspace variable | Contains the low byte of the 16-bit x-axis velocity of each of the Trumbles |
TRIBVXH | Workspace variable | Contains the high byte of the 16-bit x-axis velocity of each of the Trumbles |
TRIBXH | Workspace variable | Contains bit 8 of the x-coordinate for each of the Trumble sprites (as x-coordinates are 9-bit values) |
TRNME | Save and load | Copy the last saved commander's name from INWK to NA% |
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 |
TT16a | Market | Print "g" (for grams) |
TT17 | Keyboard | Scan the keyboard for cursor key or joystick 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 |
TT210 | Market | Show a list of current cargo in our hold, optionally to sell |
TT213 | Market | Show the Inventory screen |
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 |
TT22 | Charts | Show the Long-range Chart |
TT23 | Charts | Show the Short-range Chart |
TT24 | Universe | Calculate system data from the system seeds |
TT25 | Universe | Show the Data on System screen |
TT26 | Text | Print a character at the text cursor, with support for verified text in extended tokens |
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 |
TT66simp | Drawing the screen | Clear the whole screen inside the border box, and move the text cursor to the top-left corner |
TT67 | Text | Print a newline |
TT67X | 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 |
TTX110 | Flight | Set the current system to the nearest system and return to hyp |
TTX111 | Flight | Used to rejoin this routine from the call to TTX110 |
TTX66 | Drawing the screen | Clear the top part of the screen and draw a border box |
TTX66K | Drawing the screen | Clear the whole screen or just the space view (as appropriate), draw a border box, and if required, show the dashboard |
TTX69 | Text | Print a paragraph break |
TWFL | Drawing lines | Ready-made character rows for the left end of a horizontal line in the space view |
TWFR | Drawing lines | Ready-made character rows for the right end of a horizontal line in mode 4 |
TWOK (Game data) | Text | Macro definition for two-letter tokens in the token table |
TWOS | 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 and reset a number of flight variables |
UNIV | Universe | Table of pointers to the local universe's ship data blocks |
UP | Workspaces | Configuration variables |
UPO | Workspace variable | This byte appears to be unused |
V | Workspace variable | Temporary storage, typically used for storing an address pointer |
V% (Game Loader) | Utility routines | Denotes the end of the second block of loader code, as used in the encryption/decryption process |
value0 | Workspace variable | An unused counter that increments every time we process music command <#6> |
value1 | Workspace variable | Stores the voice control register for voice 1 |
value2 | Workspace variable | Stores the voice control register for voice 2 |
value3 | Workspace variable | Stores the voice control register for voice 3 |
value4 | Workspace variable | Stores the rest length for commands #8 and #15 |
value5 | Workspace variable | The address before the start of the music data for the tune that is configured to play for docking, so this can be changed to alter the docking music |
var | Market | Calculate QQ19+3 = economy * |economic_factor| |
VCSU1 | Maths (Arithmetic) | Calculate vector K3(8 0) = [x y z] - coordinates of the sun or space station |
VCSUB | Maths (Arithmetic) | Calculate vector K3(8 0) = [x y z] - coordinates in (A V) |
VERTEX (Game data) | Drawing ships | Macro definition for adding vertices to ship blueprints |
vibrato2 | Workspace variable | The vibrato counter for voice 2 |
vibrato3 | Workspace variable | The vibrato counter for voice 3 |
VIEW | Workspace variable | The number of the current space view |
voice2hi1 | Workspace variable | The low byte of the first vibrato frequency for voice 2, which contains the lower frequency |
voice2hi2 | Workspace variable | The low byte of the second vibrato frequency for voice 2, which contains the higher frequency |
voice2lo1 | Workspace variable | The high byte of the first vibrato frequency for voice 2, which contains the lower frequency |
voice2lo2 | Workspace variable | The high byte of the second vibrato frequency for voice 2, which contains the higher frequency |
voice3hi1 | Workspace variable | The low byte of the first vibrato frequency for voice 3, which contains the lower frequency |
voice3hi2 | Workspace variable | The low byte of the second vibrato frequency for voice 3, which contains the higher frequency |
voice3lo1 | Workspace variable | The high byte of the first vibrato frequency for voice 3, which contains the lower frequency |
voice3lo2 | Workspace variable | The high byte of the second vibrato frequency for voice 3, which contains the higher frequency |
VOWEL | Text | Test whether a character is a vowel |
W% (Game Loader) | Utility routines | Denotes the start of the first block of loader code, as used in the encryption/decryption process |
wantdials | Drawing the screen | Show the dashboard on-screen |
WARP | Flight | Perform an in-system jump |
welcome | Drawing the screen | The background colour for the upper and lower parts of the screen, used by the energy bomb to flash the screen's background colour |
WHITETEXT | Text | Switch to white text |
widget | Workspace variable | Temporary storage, used to store the original argument in A in the logarithmic FMLTU and LL28 routines |
WP | Workspaces | Variables |
WP1 | Drawing planets | Reset the ball line heap |
WPLS | Drawing suns | Remove the sun from the screen |
WPLS-1 | Drawing suns | Contains an RTS |
WPLS2 | Drawing planets | Remove the planet from the screen |
WPSHPS | Dashboard | Clear the scanner, reset the ball line and sun line heaps |
WSCAN | Drawing the screen | Wait for the vertical sync |
wW | Flight | Start a hyperspace countdown |
wW2 | Flight | Start the hyperspace countdown, starting the countdown from the value in A |
X% (Game Loader) | Utility routines | Denotes the end of the first block of loader code, as used in the encryption/decryption process |
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 |
XP | Workspace variable | This byte appears to be unused |
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 CHPR 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 (Game data) | 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 |
YESNO | Keyboard | Wait until either "Y" or "N" is pressed |
yetanotherrts | Tactics | Contains an RTS |
ylookuph | Drawing pixels | Lookup table for converting a pixel y-coordinate to the high byte of a screen address (within the 256-pixel-wide game screen) |
ylookupl | Drawing pixels | Lookup table for converting a pixel y-coordinate to the low byte of a screen address (within the 256-pixel-wide game screen) |
YP | Workspace variable | This byte appears to be unused |
ypl | Universe | Print the current system name |
ypl-1 | Universe | Contains an RTS |
YS | Workspace variable | This byte appears to be unused |
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 CHPR routine |
Yx2M1 | Workspace variable | 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 | Workspace variable | Temporary storage, typically used for storing a 16-bit y-coordinate |
Ze | Universe | Initialise the INWK workspace to a hostile ship |
ZEBC | Utility routines | Zero-fill pages $B and $C |
zebop | Drawing the screen | The value for VIC register $18 to set the screen RAM address for a raster count of 0 in the interrupt routine (i.e. the space view) |
ZEKTRAN | Keyboard | Clear the key logger |
ZERO | Utility routines | Reset the local bubble of universe and ship status |
ZES1 | Utility routines | Zero-fill the page whose number is in X |
ZES1k | Utility routines | Zero-fill the page whose number is in X |
ZES2 | Utility routines | Zero-fill a specific page |
ZES2k | Utility routines | Zero-fill a specific page |
ZESNEW | Utility routines | Zero-fill memory from SC(1 0) to the end of the page |
ZINF | Universe | Reset the INWK workspace and orientation vectors |
zonkscanners | Drawing the screen | Hide all ships on the scanner |
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 (Game Loader) | Workspaces | Important variables used by the loader |
ZP2 (Game Loader) | Workspace variable | Stores addresses used for moving content around |
ZZ | Workspace variable | Temporary storage, typically used for distance values |
zZ+1 | Flight | Contains an RTS |