Skip to navigation

Elite on the BBC Micro

Map of the source code [Disc version]

This page contains a map of all the routines, variables and macros in the disc version of Elite. The source files are structured like this:

You can click on the links above to jump to the relevant part of the map.

Loader 1
--------

CategoryDetails

Workspaces

Workspace: ZP (Loader 1)

Important variables used by the loader

Copy protection

Subroutine: BEGIN (Loader 1)

Decrypt the loader code using a rolling EOR that uses the decryption routine itself to seed the decryption

Loader

Subroutine: Elite loader (Loader 1)

Reset vectors, change to mode 7, and load and run the ELITE3 loader

Loader

Variable: MESS2 (Loader 1)

The OS command string for loading the the ELITE3 binary

Copy protection

Subroutine: LOAD (Loader 1)

Load a hidden file from disc (not used in this version as disc protection is disabled)

Screen mode

Variable: B% (Loader 1)

VDU commands for switching to a mode 7 screen

Copy protection

Variable: PARAMS3 (Loader 1)

OSWORD parameter block for loading the ELITE3 loader file (not used in this version as disc protection is disabled)

Copy protection

Variable: PARAMS2 (Loader 1)

OSWORD parameter block for accessing a specific track on the disc (not used in this version as disc protection is disabled)

Copy protection

Variable: PARAMS1 (Loader 1)

OSWORD parameter block for accessing a specific track on the disc (not used in this version as disc protection is disabled)

Loader

Variable: MESS1 (Loader 1)

The OS command string for switching to the disc filing system

Copy protection

Variable: BLOCK (Loader 1)

These bytes are copied and decrypted by the loader routine (not used in this version as disc protection is disabled)

Loader 2
--------

CategoryDetails

Workspaces

Workspace: ZP (Loader 2)

Important variables used by the loader

Loader

Subroutine: Elite loader (Part 1 of 2) (Loader 2)

Various copy protection checks, and make sure there is no Tube

Loader

Subroutine: Elite loader (Part 2 of 2) (Loader 2)

Load and run the ELITE4 loader

Loader

Variable: MESS1 (Loader 2)

The OS command string for loading the ELITE4 loader

Utility routines

Subroutine: MPL (Loader 2)

Move two pages of memory from LOADcode to LOAD and jump to ENTRY2

Copy protection

Subroutine: LOADcode (Loader 2)

LOAD routine, bundled up in the loader so it can be moved to &0400 to be run

Copy protection

Subroutine: LOAD (Loader 2)

This code accesses the disc directly (not used in this version as disc protection is disabled)

Loader

Variable: ECHAR (Loader 2)

Character definitions for the Electron to mimic the graphics characters of the BBC Micro's mode 7 teletext screen

Loader

Variable: LOGO (Loader 2)

Tables containing the Acornsoft logo for the BBC Micro and Acorn Electron

Loader

Subroutine: PROT1 (Loader 2)

Various copy protection shenanigans in preparation for showing the Acornspft loading screen

Loader

Subroutine: LOADSCR (Loader 2)

Show the mode 7 Acornsoft loading screen

Loader

Subroutine: LOGOS (Loader 2)

Print a large Acornsoft logo as part of the loading screen

Loader

Subroutine: prstr (Loader 2)

Print the NOP-terminated string immediately following the JSR instruction that called the routine

Copy protection

Subroutine: Unused copy protection routine (Loader 2)

This code doesn't appear to be run in this version

Text tokens
-----------

CategoryDetails

Text

Macro: CHAR (Text tokens)

Macro definition for characters in the recursive token table

Text

Macro: TWOK (Text tokens)

Macro definition for two-letter tokens in the token table

Text

Macro: CONT (Text tokens)

Macro definition for control codes in the recursive token table

Text

Macro: RTOK (Text tokens)

Macro definition for recursive tokens in the recursive token table

Text

Variable: QQ18 (Text tokens)

The recursive token table for tokens 0-148

Maths (Geometry)

Variable: SNE (Text tokens)

Sine/cosine table

Maths (Geometry)

Variable: ACT (Text tokens)

Arctan table

Missile ship blueprint
----------------------

CategoryDetails

Drawing ships

Macro: VERTEX (Missile ship blueprint)

Macro definition for adding vertices to ship blueprints

Drawing ships

Macro: EDGE (Missile ship blueprint)

Macro definition for adding edges to ship blueprints

Drawing ships

Macro: FACE (Missile ship blueprint)

Macro definition for adding faces to ship blueprints

Drawing ships

Variable: SHIP_MISSILE (Missile ship blueprint)

Ship blueprint for a missile

Screen mode

Variable: VEC (Missile ship blueprint)

The original value of the IRQ1 vector

Loader 3
--------

CategoryDetails

Workspaces

Workspace: ZP (Loader 3)

Important variables used by the loader

Screen mode

Variable: B% (Loader 3)

VDU commands for setting the square mode 4 screen

Sound

Variable: E% (Loader 3)

Sound envelope definitions

Sound

Macro: FNE (Loader 3)

Macro definition for defining a sound envelope

Loader

Subroutine: Elite loader (Part 1 of 3) (Loader 3)

Set up the split screen mode, move code around, set up the sound envelopes and configure the system

Copy protection

Subroutine: CHECK (Loader 3)

Calculate a checksum from two 256-byte portions of the loader code

Loader

Subroutine: LOADcode (Loader 3)

Encrypted LOAD routine, bundled up in the loader so it can be moved to &0B00 to be run

Loader

Subroutine: LOAD (Loader 3)

Load the main docked code, set up various vectors, run a checksum and start the game

Save and load

Subroutine: CATDcode (Loader 3)

The CATD routine, bundled up in the loader so it can be moved to &0D7A to be run

Save and load

Subroutine: CATD (Loader 3)

Load disc sectors 0 and 1 to &0E00 and &0F00 respectively

Copy protection

Subroutine: PROT1 (Loader 3)

Part of the CHKSM copy protection checksum calculation

Drawing planets

Subroutine: PLL1 (Loader 3)

Draw Saturn on the loading screen

Utility routines

Subroutine: DORND (Loader 3)

Generate random numbers

Drawing planets

Variable: RAND (Loader 3)

The random number seed used for drawing Saturn

Maths (Arithmetic)

Subroutine: SQUA2 (Loader 3)

Calculate (A P) = A * A

Drawing pixels

Subroutine: PIX (Loader 3)

Draw a single pixel at a specific coordinate

Drawing pixels

Variable: TWOS (Loader 3)

Ready-made single-pixel character row bytes for mode 4

Copy protection

Subroutine: PROT2 (Loader 3)

Part of the CHKSM copy protection checksum calculation

Drawing planets

Variable: CNT (Loader 3)

A counter for use in drawing Saturn's planetary body

Drawing planets

Variable: CNT2 (Loader 3)

A counter for use in drawing Saturn's background stars

Drawing planets

Variable: CNT3 (Loader 3)

A counter for use in drawing Saturn's rings

Copy protection

Subroutine: PROT3 (Loader 3)

Part of the CHKSM copy protection checksum calculation

Maths (Arithmetic)

Subroutine: ROOT (Loader 3)

Calculate ZP = SQRT(ZP(1 0))

Utility routines

Subroutine: OSB (Loader 3)

A convenience routine for calling OSBYTE with Y = 0

Utility routines

Subroutine: MVPG (Loader 3)

Decrypt and move a page of memory

Utility routines

Subroutine: MVBL (Loader 3)

Decrypt and move a multi-page block of memory

Loader

Variable: MESS1 (Loader 3)

The OS command string for changing the disc directory to E

Loader

Subroutine: Elite loader (Part 2 of 3) (Loader 3)

Include binaries for recursive tokens, Missile blueprint and images

Copy protection

Subroutine: OSBmod (Loader 3)

Calculate a checksum on &0F00 to &0FFF (the test is disabled in this version)

Loader

Subroutine: TVT1code (Loader 3)

Code block at &1100-&11E2 that remains resident in both docked and flight mode (palettes, screen mode routine and commander data)

Screen mode

Variable: TVT1 (Loader 3)

Palette data for space and the two dashboard colour schemes

Screen mode

Subroutine: IRQ1 (Loader 3)

The main screen-mode interrupt handler (IRQ1V points here)

Save and load

Variable: S1% (Loader 3)

The drive and directory number used when saving or loading a commander file

Save and load

Variable: NA% (Loader 3)

The data block for the last saved commander

Save and load

Variable: CHK2 (Loader 3)

Second checksum byte for the saved commander data file

Save and load

Variable: CHK (Loader 3)

First checksum byte for the saved commander data file

Loader

Subroutine: BRBR1 (Loader 3)

Loader break handler: print a newline and the error message, and then hang the computer

Loader

Subroutine: Elite loader (Part 3 of 3) (Loader 3)

Include binaries for the loading screen images

Workspaces (Docked)
-------------------

CategoryDetails

Workspaces

Workspace: ZP (Docked)

Lots of important variables are stored in the zero page workspace as it is quicker and more space-efficient to access memory here

Workspaces

Workspace: XX3 (Docked)

Temporary storage space for complex calculations

Workspaces

Workspace: UP (Docked)

Ship slots, variables

Workspaces

Workspace: K% (Docked)

Ship data blocks and ship line heaps

Workspaces

Workspace: WP (Docked)

Variables

Elite A (Docked)
----------------

CategoryDetails

Workspaces

Workspace: S% (Docked)

Entry points and vector addresses in the main docked code

Loader

Subroutine: INBAY (Docked)

This routine is unused and is never run

Loader

Subroutine: DOBEGIN (Docked)

Decrypt the main docked code, initialise the configuration variables and start the game

Loader

Subroutine: scramble (Docked)

Decrypt the main docked code between &1300 and &5FFF and the main game loop

Flight

Subroutine: DOENTRY (Docked)

Dock at the space station, show the ship hanger and work out any mission progression

Loader

Subroutine: SCRAM (Docked)

Decrypt the main docked code, reset the flight variables and start the game

Save and load

Subroutine: BRKBK (Docked)

Set the standard BRKV handler for the game

Text

Subroutine: MT27 (Docked)

Print the captain's name during mission briefings

Text

Subroutine: MT28 (Docked)

Print the location hint during the mission 1 briefing

Text

Subroutine: DETOK3 (Docked)

Print an extended recursive token from the RUTOK token table

Text

Subroutine: DETOK (Docked)

Print an extended recursive token from the TKN1 token table

Text

Subroutine: DETOK2 (Docked)

Print an extended text token (1-255)

Text

Subroutine: MT1 (Docked)

Switch to ALL CAPS when printing extended tokens

Text

Subroutine: MT2 (Docked)

Switch to Sentence Case when printing extended tokens

Text

Subroutine: MT8 (Docked)

Tab to column 6 and start a new word when printing extended tokens

Text

Subroutine: MT9 (Docked)

Clear the screen and set the current view type to 1

Text

Subroutine: MT13 (Docked)

Switch to lower case when printing extended tokens

Text

Subroutine: MT6 (Docked)

Switch to standard tokens in Sentence Case

Text

Subroutine: MT5 (Docked)

Switch to extended tokens

Text

Subroutine: MT14 (Docked)

Switch to justified text when printing extended tokens

Text

Subroutine: MT15 (Docked)

Switch to left-aligned text when printing extended tokens

Text

Subroutine: MT17 (Docked)

Print the selected system's adjective, e.g. Lavian for Lave

Text

Subroutine: MT18 (Docked)

Print a random 1-8 letter word in Sentence Case

Text

Subroutine: MT19 (Docked)

Capitalise the next letter

Text

Subroutine: VOWEL (Docked)

Test whether a character is a vowel

Text

Variable: JMTB (Docked)

The extended token table for jump tokens 1-32 (DETOK)

Text

Variable: TKN2 (Docked)

The extended two-letter token lookup table

Text

Variable: QQ16 (Docked)

The two-letter token lookup table

Moving

Subroutine: MVEIT (Part 1 of 9) (Docked)

Move current ship: Tidy the orientation vectors

Moving

Subroutine: MVEIT (Part 7 of 9) (Docked)

Move current ship: Rotate ship's orientation vectors by pitch/roll

Moving

Subroutine: MVEIT (Part 8 of 9) (Docked)

Move current ship: Rotate ship about itself by its own pitch/roll

Moving

Subroutine: MVEIT (Part 9 of 9) (Docked)

Move current ship: Redraw on scanner, if it hasn't been destroyed

Moving

Subroutine: MVT1 (Docked)

Calculate (x_sign x_hi x_lo) = (x_sign x_hi x_lo) + (A R)

Moving

Subroutine: MVT3 (Docked)

Calculate K(3 2 1) = (x_sign x_hi x_lo) + K(3 2 1)

Moving

Subroutine: MVS4 (Docked)

Apply pitch and roll to an orientation vector

Moving

Subroutine: MVS5 (Docked)

Apply a 3.6 degree pitch or roll to an orientation vector

Moving

Subroutine: MVT6 (Docked)

Calculate (A P+2 P+1) = (x_sign x_hi x_lo) + (A P+2 P+1)

Universe

Variable: UNIV (Docked)

Table of pointers to the local universe's ship data blocks

Elite B (Docked)
----------------

CategoryDetails

Drawing pixels

Variable: TWOS (Docked)

Ready-made single-pixel character row bytes for mode 4

Drawing pixels

Variable: TWOS2 (Docked)

Ready-made double-pixel character row bytes for mode 4

Drawing pixels

Variable: CTWOS (Docked)

Ready-made single-pixel character row bytes for mode 5

Drawing lines

Subroutine: LOIN (Part 1 of 7) (Docked)

Draw a line: Calculate the line gradient in the form of deltas

Drawing lines

Subroutine: LOIN (Part 2 of 7) (Docked)

Draw a line: Line has a shallow gradient, step right along x-axis

Drawing lines

Subroutine: LOIN (Part 3 of 7) (Docked)

Draw a shallow line going right and up or left and down

Drawing lines

Subroutine: LOIN (Part 4 of 7) (Docked)

Draw a shallow line going right and down or left and up

Drawing lines

Subroutine: LOIN (Part 5 of 7) (Docked)

Draw a line: Line has a steep gradient, step up along y-axis

Drawing lines

Subroutine: LOIN (Part 6 of 7) (Docked)

Draw a steep line going up and left or down and right

Drawing lines

Subroutine: LOIN (Part 7 of 7) (Docked)

Draw a steep line going up and right or down and left

Keyboard

Subroutine: FLKB (Docked)

Flush the keyboard buffer

Drawing lines

Subroutine: NLIN3 (Docked)

Print a title and a horizontal line at row 19 to box it in

Drawing lines

Subroutine: NLIN4 (Docked)

Draw a horizontal line at pixel row 19 to box in a title

Drawing lines

Subroutine: NLIN (Docked)

Draw a horizontal line at pixel row 23 to box in a title

Drawing lines

Subroutine: NLIN2 (Docked)

Draw a screen-wide horizontal line at the pixel row in A

Drawing lines

Subroutine: HLOIN2 (Docked)

Remove a line from the sun line heap and draw it on-screen

Drawing lines

Subroutine: HLOIN (Docked)

Draw a horizontal line from (X1, Y1) to (X2, Y1)

Drawing lines

Variable: TWFL (Docked)

Ready-made character rows for the left end of a horizontal line in mode 4

Drawing lines

Variable: TWFR (Docked)

Ready-made character rows for the right end of a horizontal line in mode 4

Drawing pixels

Subroutine: PX3 (Docked)

Plot a single pixel at (X, Y) within a character block

Maths (Arithmetic)

Subroutine: PIX1 (Docked)

Calculate (YY+1 SYL+Y) = (A P) + (S R) and draw stardust particle

Drawing pixels

Subroutine: PIXEL2 (Docked)

Draw a stardust particle relative to the screen centre

Drawing pixels

Subroutine: PIXEL (Docked)

Draw a 1-pixel dot, 2-pixel dash or 4-pixel square

Drawing circles

Subroutine: BLINE (Docked)

Draw a circle segment and add it to the ball line heap

Stardust

Subroutine: FLIP (Docked)

Reflect the stardust particles in the screen diagonal

Equipment

Variable: PRXS (Docked)

Equipment prices

Status

Subroutine: STATUS (Docked)

Show the Status Mode screen (red key f8)

Text

Subroutine: plf2 (Docked)

Print text followed by a newline and indent of 6 characters

Text

Variable: TENS (Docked)

A constant used when printing large numbers in BPRNT

Text

Subroutine: pr2 (Docked)

Print an 8-bit number, left-padded to 3 digits, and optional point

Text

Subroutine: TT11 (Docked)

Print a 16-bit number, left-padded to n digits, and optional point

Text

Subroutine: BPRNT (Docked)

Print a 32-bit number, left-padded to a specific number of digits, with an optional decimal point

Text

Variable: DTW1 (Docked)

A mask for applying the lower case part of Sentence Case to extended text tokens

Text

Variable: DTW2 (Docked)

A flag that indicates whether we are currently printing a word

Text

Variable: DTW3 (Docked)

A flag for switching between standard and extended text tokens

Text

Variable: DTW4 (Docked)

Flags that govern how justified extended text tokens are printed

Text

Variable: DTW5 (Docked)

The size of the justified text buffer at BUF

Text

Variable: DTW6 (Docked)

A flag to denote whether printing in lower case is enabled for extended text tokens

Text

Variable: DTW8 (Docked)

A mask for capitalising the next letter in an extended text token

Text

Subroutine: FEED (Docked)

Print a newline

Text

Subroutine: MT16 (Docked)

Print the character in variable DTW7

Text

Subroutine: TT26 (Docked)

Print a character at the text cursor, with support for verified text in extended tokens

Sound

Subroutine: BELL (Docked)

Make a standard system beep

Text

Subroutine: CHPR (Docked)

Print a character at the text cursor by poking into screen memory

Dashboard

Subroutine: DIALS (Part 1 of 4) (Docked)

Update the dashboard: speed indicator

Dashboard

Subroutine: DIALS (Part 2 of 4) (Docked)

Update the dashboard: pitch and roll indicators

Dashboard

Subroutine: DIALS (Part 3 of 4) (Docked)

Update the dashboard: four energy banks

Dashboard

Subroutine: DIALS (Part 4 of 4) (Docked)

Update the dashboard: shields, fuel, laser & cabin temp, altitude

Dashboard

Subroutine: PZW (Docked)

Fetch the current dashboard colours, to support flashing

Dashboard

Subroutine: DILX (Docked)

Update a bar-based indicator on the dashboard

Dashboard

Subroutine: DIL2 (Docked)

Update the roll or pitch indicator on the dashboard

Charts

Subroutine: HME2 (Docked)

Search the galaxy for a system

Elite C (Docked)
----------------

CategoryDetails

Ship hanger

Variable: HATB (Docked)

Ship hanger group table

Ship hanger

Subroutine: HALL (Docked)

Draw the ships in the ship hanger, then draw the hanger

Ship hanger

Subroutine: HANGER (Docked)

Display the ship hanger

Ship hanger

Subroutine: HAS1 (Docked)

Draw a ship in the ship hanger

Ship hanger

Subroutine: HAS2 (Docked)

Draw a hanger background line from left to right

Ship hanger

Subroutine: HAS3 (Docked)

Draw a hanger background line from right to left

Ship hanger

Subroutine: UNWISE (Docked)

Switch the main line-drawing routine between EOR and OR logic

Drawing circles

Subroutine: LL164 (Docked)

Make the hyperspace sound and draw the hyperspace tunnel

Drawing circles

Subroutine: LAUN (Docked)

Make the launch sound and draw the launch tunnel

Drawing circles

Subroutine: HFS2 (Docked)

Draw the launch or hyperspace tunnel

Utility routines

Variable: Unused block (Docked)

These bytes appear to be unused (the same block appears in both the flight and docked code)

Maths (Arithmetic)

Subroutine: MU5 (Docked)

Set K(3 2 1 0) = (A A A A) and clear the C flGag

Maths (Arithmetic)

Subroutine: MLS2 (Docked)

Calculate (S R) = XX(1 0) and (A P) = A * ALP1

Maths (Arithmetic)

Subroutine: SQUA (Docked)

Clear bit 7 of A and calculate (A P) = A * A

Maths (Arithmetic)

Subroutine: SQUA2 (Docked)

Calculate (A P) = A * A

Maths (Arithmetic)

Subroutine: MU1 (Docked)

Copy X into P and A, and clear the C flag

Maths (Arithmetic)

Subroutine: MLU1 (Docked)

Calculate Y1 = y_hi and (A P) = |y_hi| * Q for Y-th stardust

Maths (Arithmetic)

Subroutine: MLU2 (Docked)

Calculate (A P) = |A| * Q

Maths (Arithmetic)

Subroutine: MULTU (Docked)

Calculate (A P) = P * Q

Maths (Arithmetic)

Subroutine: MU11 (Docked)

Calculate (A P) = P * X

Maths (Arithmetic)

Subroutine: MU6 (Docked)

Set P(1 0) = (A A)

Maths (Arithmetic)

Subroutine: FMLTU2 (Docked)

Calculate A = K * sin(A)

Maths (Arithmetic)

Subroutine: FMLTU (Docked)

Calculate A = A * Q / 256

Maths (Arithmetic)

Subroutine: Unused duplicate of MULTU (Docked)

Unused duplicate of the MULTU routine

Maths (Arithmetic)

Subroutine: MLTU2 (Docked)

Calculate (A P+1 P) = (A ~P) * Q

Maths (Arithmetic)

Subroutine: MUT3 (Docked)

Unused routine that does the same as MUT2

Maths (Arithmetic)

Subroutine: MUT2 (Docked)

Calculate (S R) = XX(1 0) and (A P) = Q * A

Maths (Arithmetic)

Subroutine: MUT1 (Docked)

Calculate R = XX and (A P) = Q * A

Maths (Arithmetic)

Subroutine: MULT1 (Docked)

Calculate (A P) = Q * A

Maths (Arithmetic)

Subroutine: MULT12 (Docked)

Calculate (S R) = Q * A

Maths (Geometry)

Subroutine: TAS3 (Docked)

Calculate the dot product of XX15 and an orientation vector

Maths (Arithmetic)

Subroutine: MAD (Docked)

Calculate (A X) = Q * A + (S R)

Maths (Arithmetic)

Subroutine: ADD (Docked)

Calculate (A X) = (A P) + (S R)

Maths (Arithmetic)

Subroutine: TIS1 (Docked)

Calculate (A ?) = (-X * A + (S R)) / 96

Maths (Arithmetic)

Subroutine: DV42 (Docked)

Calculate (P R) = 256 * DELTA / z_hi

Maths (Arithmetic)

Subroutine: DV41 (Docked)

Calculate (P R) = 256 * DELTA / A

Maths (Arithmetic)

Subroutine: DVID4 (Docked)

Calculate (P R) = 256 * A / Q

Maths (Arithmetic)

Subroutine: DVID3B2 (Docked)

Calculate K(3 2 1 0) = (A P+1 P) / (z_sign z_hi z_lo)

Dashboard

Subroutine: cntr (Docked)

Apply damping to the pitch or roll dashboard indicator

Dashboard

Subroutine: BUMP2 (Docked)

Bump up the value of the pitch or roll dashboard indicator

Dashboard

Subroutine: REDU2 (Docked)

Reduce the value of the pitch or roll dashboard indicator

Text

Subroutine: PDESC (Docked)

Print the system's extended description or a mission 1 directive

Missions

Subroutine: BRIEF2 (Docked)

Start mission 2

Missions

Subroutine: BRP (Docked)

Print an extended token and show the Status Mode screen

Missions

Subroutine: BRIEF3 (Docked)

Receive the briefing and plans for mission 2

Missions

Subroutine: DEBRIEF2 (Docked)

Finish mission 2

Missions

Subroutine: DEBRIEF (Docked)

Finish mission 1

Missions

Subroutine: BRIEF (Docked)

Start mission 1 and show the mission briefing

Missions

Subroutine: BRIS (Docked)

Clear the screen, display "INCOMING MESSAGE" and wait for 2 seconds

Keyboard

Subroutine: PAUSE (Docked)

Display a rotating ship, waiting until a key is pressed, then remove the ship from the screen

Text

Subroutine: MT23 (Docked)

Move to row 10, switch to white text, and switch to lower case when printing extended tokens

Text

Subroutine: MT29 (Docked)

Move to row 6, switch to white text, and switch to lower case when printing extended tokens

Keyboard

Subroutine: PAS1 (Docked)

Display a rotating ship at space coordinates (0, 112, 256) and scan the keyboard

Keyboard

Subroutine: PAUSE2 (Docked)

Wait until a key is pressed, ignoring any existing key press

Flight

Subroutine: SIGHT (Docked)

Draw the laser crosshairs

Utility routines

Subroutine: TT66 (Docked)

Clear the screen and set the current view type

Utility routines

Subroutine: TTX66 (Docked)

Clear the top part of the screen and draw a white border

Utility routines

Subroutine: DELAY (Docked)

Wait for a specified time, in 1/50s of a second

Utility routines

Subroutine: CLYNS (Docked)

Clear the bottom three text rows of the mode 4 screen

Utility routines

Subroutine: LYN (Docked)

Clear most of a row of pixels

Drawing pixels

Subroutine: CPIX4 (Docked)

Draw a double-height dot on the dashboard

Drawing pixels

Subroutine: CPIX2 (Docked)

Draw a single-height dash on the dashboard

Screen mode

Subroutine: WSCAN (Docked)

Wait for the vertical sync

Elite D (Docked)
----------------

CategoryDetails

Market

Subroutine: tnpr (Docked)

Work out if we have space for a specific amount of cargo

Universe

Subroutine: TT20 (Docked)

Twist the selected system's seeds four times

Universe

Subroutine: TT54 (Docked)

Twist the selected system's seeds

Text

Subroutine: TT146 (Docked)

Print the distance to the selected system in light years

Text

Subroutine: TT60 (Docked)

Print a text token and a paragraph break

Text

Subroutine: TTX69 (Docked)

Print a paragraph break

Text

Subroutine: TT69 (Docked)

Set Sentence Case and print a newline

Text

Subroutine: TT67 (Docked)

Print a newline

Text

Subroutine: TT70 (Docked)

Display "MAINLY " and jump to TT72

Text

Subroutine: spc (Docked)

Print a text token followed by a space

Universe

Subroutine: TT25 (Docked)

Show the Data on System screen (red key f6)

Universe

Subroutine: TT24 (Docked)

Calculate system data from the system seeds

Charts

Subroutine: TT22 (Docked)

Show the Long-range Chart (red key f4)

Drawing lines

Subroutine: TT15 (Docked)

Draw a set of crosshairs

Drawing circles

Subroutine: TT14 (Docked)

Draw a circle with crosshairs on a chart

Drawing circles

Subroutine: TT128 (Docked)

Draw a circle on a chart

Market

Subroutine: TT219 (Docked)

Show the Buy Cargo screen (red key f1)

Market

Subroutine: gnum (Docked)

Get a number from the keyboard

Market

Subroutine: NWDAV4 (Docked)

Print an "ITEM?" error, make a beep and rejoin the TT210 routine

Market

Subroutine: TT208 (Docked)

Show the Sell Cargo screen (red key f2)

Inventory

Subroutine: TT210 (Docked)

Show a list of current cargo in our hold, optionally to sell

Inventory

Subroutine: TT213 (Docked)

Show the Inventory screen (red key f9)

Inventory

Subroutine: TT214 (Docked)

Ask a question with a "Y/N?" prompt and return the response

Charts

Subroutine: TT16 (Docked)

Move the crosshairs on a chart

Charts

Subroutine: TT103 (Docked)

Draw a small set of crosshairs on a chart

Charts

Subroutine: TT123 (Docked)

Move galactic coordinates by a signed delta

Charts

Subroutine: TT105 (Docked)

Draw crosshairs on the Short-range Chart, with clipping

Charts

Subroutine: TT23 (Docked)

Show the Short-range Chart (red key f5)

Universe

Subroutine: TT81 (Docked)

Set the selected system's seeds to those of system 0

Universe

Subroutine: TT111 (Docked)

Set the current system to the nearest system to a point

Flight

Subroutine: hyp (Docked)

Start the hyperspace process

Flight

Subroutine: wW (Docked)

Start a hyperspace countdown

Flight

Subroutine: TTX110 (Docked)

Set the current system to the nearest system and return to hyp

Flight

Subroutine: Ghy (Docked)

Perform a galactic hyperspace jump

Universe

Subroutine: jmp (Docked)

Set the current system to the selected system

Text

Subroutine: ee3 (Docked)

Print the hyperspace countdown in the top-left of the screen

Text

Subroutine: pr6 (Docked)

Print 16-bit number, left-padded to 5 digits, no point

Text

Subroutine: pr5 (Docked)

Print a 16-bit number, left-padded to 5 digits, and optional point

Text

Subroutine: TT147 (Docked)

Print an error when a system is out of hyperspace range

Text

Subroutine: prq (Docked)

Print a text token followed by a question mark

Market

Subroutine: TT151 (Docked)

Print the name, price and availability of a market item

Market

Subroutine: TT152 (Docked)

Print the unit ("t", "kg" or "g") for a market item

Text

Subroutine: TT162 (Docked)

Print a space

Market

Subroutine: TT160 (Docked)

Print "t" (for tonne) and a space

Market

Subroutine: TT161 (Docked)

Print "kg" (for kilograms)

Market

Subroutine: TT16a (Docked)

Print "g" (for grams)

Market

Subroutine: TT163 (Docked)

Print the headers for the table of market prices

Market

Subroutine: TT167 (Docked)

Show the Market Price screen (red key f7)

Market

Subroutine: var (Docked)

Calculate QQ19+3 = economy * |economic_factor|

Universe

Subroutine: hyp1 (Docked)

Process a jump to the system closest to (QQ9, QQ10)

Flight

Subroutine: TT110 (Docked)

Launch from a station or show the front space view

Maths (Arithmetic)

Subroutine: LCASH (Docked)

Subtract an amount of cash from the cash pot

Maths (Arithmetic)

Subroutine: MCASH (Docked)

Add an amount of cash to the cash pot

Maths (Arithmetic)

Subroutine: GCASH (Docked)

Calculate (Y X) = P * Q * 4

Maths (Arithmetic)

Subroutine: GC2 (Docked)

Calculate (Y X) = (A P) * 4

Loader

Variable: RDLI (Docked)

The OS command string for running the flight code in file D.CODE

Equipment

Subroutine: EQSHP (Docked)

Show the Equip Ship screen (red key f3)

Text

Subroutine: dn (Docked)

Print the amount of cash and beep

Text

Subroutine: dn2 (Docked)

Make a short, high beep and delay for 1 second

Equipment

Subroutine: eq (Docked)

Subtract the price of equipment from the cash pot

Equipment

Subroutine: prx (Docked)

Return the price of a piece of equipment

Equipment

Subroutine: qv (Docked)

Print a menu of the four space views, for buying lasers

Charts

Subroutine: hm (Docked)

Select the closest system and redraw the chart crosshairs

Equipment

Subroutine: refund (Docked)

Install a new laser, processing a refund if applicable

Elite E (Docked)
----------------

CategoryDetails

Text

Subroutine: cpl (Docked)

Print the selected system name

Text

Subroutine: cmn (Docked)

Print the commander's name

Text

Subroutine: ypl (Docked)

Print the current system name

Text

Subroutine: tal (Docked)

Print the current galaxy number

Text

Subroutine: fwl (Docked)

Print fuel and cash levels

Text

Subroutine: csh (Docked)

Print the current amount of cash

Text

Subroutine: plf (Docked)

Print a text token followed by a newline

Text

Subroutine: TT68 (Docked)

Print a text token followed by a colon

Text

Subroutine: TT73 (Docked)

Print a colon

Text

Subroutine: TT27 (Docked)

Print a text token

Text

Subroutine: TT42 (Docked)

Print a letter in lower case

Text

Subroutine: TT41 (Docked)

Print a letter according to Sentence Case

Text

Subroutine: qw (Docked)

Print a recursive token in the range 128-145

Text

Subroutine: crlf (Docked)

Tab to column 21 and print a colon

Text

Subroutine: TT45 (Docked)

Print a letter in lower case

Text

Subroutine: TT46 (Docked)

Print a character and switch to capitals

Text

Subroutine: TT74 (Docked)

Print a character

Text

Subroutine: TT43 (Docked)

Print a two-letter token or recursive token 0-95

Text

Subroutine: ex (Docked)

Print a recursive token

Drawing ships

Subroutine: DOEXP (Docked)

Draw an exploding ship

Dashboard

Subroutine: WPSHPS (Docked)

Clear the scanner, reset the ball line and sun line heaps

Drawing suns

Subroutine: FLFLLS (Docked)

Reset the sun line heap

Screen mode

Subroutine: DET1 (Docked)

Show or hide the dashboard (for when we die)

Flight

Subroutine: SHD (Docked)

Charge a shield and drain some energy from the energy banks

Flight

Subroutine: DENGY (Docked)

Drain some energy from the energy banks

Maths (Geometry)

Subroutine: SPS3 (Docked)

Copy a space coordinate from the K% block into K3

Universe

Subroutine: GINF (Docked)

Fetch the address of a ship's data block into INF

Universe

Subroutine: NWSHP (Docked)

Add a new ship to our local bubble of universe

Universe

Subroutine: NwS1 (Docked)

Flip the sign and double an INWK byte

Dashboard

Subroutine: ABORT (Docked)

Disarm missiles and update the dashboard indicators

Dashboard

Subroutine: ABORT2 (Docked)

Set/unset the lock target for a missile and update the dashboard

Dashboard

Subroutine: SPBLB (Docked)

Light up the space station indicator ("S") on the dashboard

Dashboard

Subroutine: BULB (Docked)

Draw an indicator bulb on the dashboard

Dashboard

Variable: SPBT (Docked)

The bitmap definition for the space station indicator bulb

Dashboard

Subroutine: MSBAR (Docked)

Draw a specific indicator in the dashboard's missile bar

Drawing suns

Subroutine: SUN (Part 1 of 4) (Docked)

Draw the sun: Set up all the variables needed

Drawing suns

Subroutine: SUN (Part 2 of 4) (Docked)

Draw the sun: Start from bottom of screen and erase the old sun

Drawing suns

Subroutine: SUN (Part 3 of 4) (Docked)

Draw the sun: Continue to move up the screen, drawing the new sun

Drawing suns

Subroutine: SUN (Part 4 of 4) (Docked)

Draw the sun: Continue to the top of the screen, erasing old sun

Drawing circles

Subroutine: CIRCLE (Docked)

Draw a circle for the planet

Drawing circles

Subroutine: CIRCLE2 (Docked)

Draw a circle (for the planet or chart)

Drawing planets

Subroutine: WP1 (Docked)

Reset the ball line heap

Drawing suns

Subroutine: WPLS (Docked)

Remove the sun from the screen

Drawing lines

Subroutine: EDGES (Docked)

Draw a horizontal line given a centre and a half-width

Drawing planets

Subroutine: PL21 (Docked)

Return from a planet/sun-drawing routine with a failure flag

Drawing circles

Subroutine: CHKON (Docked)

Check whether any part of a circle appears on the extended screen

Keyboard

Subroutine: TT17 (Docked)

Scan the keyboard for cursor key or joystick movement

Universe

Subroutine: ping (Docked)

Set the selected system to the current system

Elite F (Docked)
----------------

CategoryDetails

Sound

Variable: SFX (Docked)

Sound data

Start and end

Subroutine: RESET (Docked)

Reset most variables

Start and end

Subroutine: RES2 (Docked)

Reset a number of flight variables and workspaces

Utility routines

Subroutine: ZINF (Docked)

Reset the INWK workspace and orientation vectors

Dashboard

Subroutine: msblob (Docked)

Display the dashboard's missile indicators in green

Text

Subroutine: me2 (Docked)

Remove an in-flight message from the space view

Universe

Subroutine: Ze (Docked)

Initialise the INWK workspace to a hostile ship

Utility routines

Subroutine: DORND (Docked)

Generate random numbers

Main loop

Subroutine: Main game loop (Part 2 of 6) (Docked)

Potentially spawn a trader, an asteroid, or a cargo canister (though this has no effect when docked)

Main loop

Subroutine: Main game loop (Part 5 of 6) (Docked)

Cool down lasers, make calls to update the dashboard

Main loop

Subroutine: Main game loop (Part 6 of 6) (Docked)

Process non-flight key presses (red function keys, docked keys)

Keyboard

Subroutine: TT102 (Docked)

Process function key, save key, hyperspace and chart key presses

Status

Subroutine: BAD (Docked)

Calculate how bad we have been

Utility routines

Variable: brkd (Docked)

The brkd counter for error handling

Utility routines

Subroutine: BRBR (Docked)

The standard BRKV handler for the game

Start and end

Subroutine: DEATH2 (Docked)

Reset most of the game and restart from the title screen

Loader

Subroutine: BEGIN (Docked)

Initialise the configuration variables and start the game

Start and end

Subroutine: TT170 (Docked)

Main entry point for the Elite game code

Start and end

Subroutine: BR1 (Part 1 of 2) (Docked)

Start or restart the game

Start and end

Subroutine: BR1 (Part 2 of 2) (Docked)

Show the "Load New Commander (Y/N)?" screen and start the game

Status

Subroutine: BAY (Docked)

Go to the docking bay (i.e. show the Status Mode screen)

Start and end

Subroutine: DFAULT (Docked)

Reset the current commander data block to the last saved commander

Start and end

Subroutine: TITLE (Docked)

Display a title screen with a rotating ship and prompt

Save and load

Subroutine: CHECK (Docked)

Calculate the checksum for the last saved commander data block

Save and load

Subroutine: TRNME (Docked)

Copy the last saved commander's name from INWK to NA%

Save and load

Subroutine: TR1 (Docked)

Copy the last saved commander's name from NA% to INWK

Save and load

Subroutine: GTNMEW (Docked)

Fetch the name of a commander file to save or load

Text

Subroutine: MT26 (Docked)

Fetch a line of text from the keyboard

Text

Variable: RLINE (Docked)

The OSWORD configuration block used to fetch a line of text from the keyboard

Utility routines

Subroutine: ZERO (Docked)

Zero-fill pages &9, &A, &B, &C and &D

Utility routines

Subroutine: ZEBC (Docked)

Zero-fill pages &B and &C

Utility routines

Subroutine: ZES1 (Docked)

Zero-fill the page whose number is in X

Utility routines

Subroutine: ZES2 (Docked)

Zero-fill a specific page

Save and load

Variable: CTLI (Docked)

The OS command string for cataloguing a disc

Save and load

Variable: DELI (Docked)

The OS command string for deleting a file

Save and load

Subroutine: CATS (Docked)

Ask for a disc drive number and print a catalogue of that drive

Save and load

Subroutine: DELT (Docked)

Catalogue a disc, ask for a filename to delete, and delete the file

Save and load

Variable: stack (Docked)

Temporary storage for the stack pointer when switching the BRKV handler between BRBR and MEBRK

Save and load

Subroutine: MEBRK (Docked)

The BRKV handler for disc access operations

Save and load

Subroutine: CAT (Docked)

Catalogue a disc, wait for a key press and display the disc access menu

Save and load

Subroutine: retry (Docked)

Scan the keyboard until a key is pressed and display the disc access menu

Save and load

Subroutine: SVE (Docked)

Save the commander file

Save and load

Subroutine: QUS1 (Docked)

Save or load the commander file

Save and load

Subroutine: GTDRV (Docked)

Get an ASCII disc drive drive number from the keyboard

Save and load

Subroutine: LOD (Docked)

Load a commander file

Utility routines

Subroutine: FX200 (Docked)

Set the behaviour of the ESCAPE and BREAK keys

Utility routines

Subroutine: Unused routine (Docked)

This code appears to be unused

Maths (Geometry)

Subroutine: SPS1 (Docked)

Calculate the vector to the planet and store it in XX15

Maths (Geometry)

Subroutine: TAS2 (Docked)

Normalise the three-coordinate vector in K3

Maths (Geometry)

Subroutine: NORM (Docked)

Normalise the three-coordinate vector in XX15

Keyboard

Subroutine: RDKEY (Docked)

Scan the keyboard for key presses

Sound

Subroutine: ECMOF (Docked)

Switch off the E.C.M.

Sound

Subroutine: EXNO3 (Docked)

Make an explosion sound

Sound

Subroutine: BEEP (Docked)

Make a short, high beep

Sound

Subroutine: EXNO2 (Docked)

Process us making a kill

Sound

Subroutine: EXNO (Docked)

Make the sound of a laser strike or ship explosion

Sound

Subroutine: NOISE (Docked)

Make the sound whose number is in A

Sound

Subroutine: NO3 (Docked)

Make a sound from a prepared sound block

Sound

Subroutine: NOS1 (Docked)

Prepare a sound block

Keyboard

Subroutine: CTRL (Docked)

Scan the keyboard to see if CTRL is currently pressed

Keyboard

Subroutine: DKS4 (Docked)

Scan the keyboard to see if a specific key is being pressed

Keyboard

Subroutine: DKS2 (Docked)

Read the joystick position

Keyboard

Subroutine: DKS3 (Docked)

Toggle a configuration setting and emit a beep

Keyboard

Subroutine: DKJ1 (Docked)

Read joystick and flight controls

Keyboard

Subroutine: DOKEY (Docked)

Scan for the joystick

Keyboard

Subroutine: DK4 (Docked)

Scan for pause, configuration and secondary flight keys

Keyboard

Subroutine: TT217 (Docked)

Scan the keyboard until a key is pressed

Text

Subroutine: me1 (Docked)

Erase an old in-flight message and display a new one

Text

Subroutine: MESS (Docked)

Display an in-flight message

Text

Subroutine: mes9 (Docked)

Print a text token, possibly followed by " DESTROYED"

Market

Macro: ITEM (Docked)

Macro definition for the market prices table

Market

Variable: QQ23 (Docked)

Market prices table

Maths (Geometry)

Subroutine: TIDY (Docked)

Orthonormalise the orientation vectors for a ship

Maths (Arithmetic)

Subroutine: TIS2 (Docked)

Calculate A = A / Q

Maths (Arithmetic)

Subroutine: TIS3 (Docked)

Calculate -(nosev_1 * roofv_1 + nosev_2 * roofv_2) / nosev_3

Maths (Arithmetic)

Subroutine: DVIDT (Docked)

Calculate (P+1 A) = (A P) / Q

Elite G (Docked)
----------------

CategoryDetails

Drawing ships

Subroutine: SHPPT (Docked)

Draw a distant ship as a point in the middle of the screen

Maths (Arithmetic)

Subroutine: LL5 (Docked)

Calculate Q = SQRT(R Q)

Maths (Arithmetic)

Subroutine: LL28 (Docked)

Calculate R = 256 * A / Q

Maths (Arithmetic)

Subroutine: LL38 (Docked)

Calculate (S A) = (S R) + (A Q)

Maths (Geometry)

Subroutine: LL51 (Docked)

Calculate the dot product of XX15 and XX16

Drawing ships

Subroutine: LL9 (Part 1 of 12) (Docked)

Draw ship: Check if ship is exploding, check if ship is in front

Drawing ships

Subroutine: LL9 (Part 2 of 12) (Docked)

Draw ship: Check if ship is in field of view, close enough to draw

Drawing ships

Subroutine: LL9 (Part 3 of 12) (Docked)

Draw ship: Set up orientation vector, ship coordinate variables

Drawing ships

Subroutine: LL9 (Part 4 of 12) (Docked)

Draw ship: Set visibility for exploding ship (all faces visible)

Drawing ships

Subroutine: LL9 (Part 5 of 12) (Docked)

Draw ship: Calculate the visibility of each of the ship's faces

Drawing ships

Subroutine: LL9 (Part 6 of 12) (Docked)

Draw ship: Calculate the visibility of each of the ship's vertices

Maths (Arithmetic)

Subroutine: LL61 (Docked)

Calculate (U R) = 256 * A / Q

Maths (Arithmetic)

Subroutine: LL62 (Docked)

Calculate 128 - (U R)

Drawing ships

Subroutine: LL9 (Part 7 of 12) (Docked)

Draw ship: Calculate the visibility of each of the ship's vertices

Drawing ships

Subroutine: LL9 (Part 8 of 12) (Docked)

Draw ship: Calculate the screen coordinates of visible vertices

Drawing ships

Subroutine: LL9 (Part 9 of 12) (Docked)

Draw ship: Draw laser beams if the ship is firing its laser at us

Drawing ships

Subroutine: LL9 (Part 10 of 12) (Docked)

Draw ship: Calculate the visibility of each of the ship's edges

Drawing lines

Subroutine: LL145 (Part 1 of 4) (Docked)

Clip line: Work out which end-points are on-screen, if any

Drawing lines

Subroutine: LL145 (Part 2 of 4) (Docked)

Clip line: Work out if any part of the line is on-screen

Drawing lines

Subroutine: LL145 (Part 3 of 4) (Docked)

Clip line: Calculate the line's gradient

Drawing lines

Subroutine: LL145 (Part 4 of 4) (Docked)

Clip line: Call the routine in LL188 to do the actual clipping

Drawing ships

Subroutine: LL9 (Part 11 of 12) (Docked)

Draw ship: Add all visible edges to the ship line heap

Drawing ships

Subroutine: LL9 (Part 12 of 12) (Docked)

Draw ship: Draw all the visible edges from the ship line heap

Drawing lines

Subroutine: LL118 (Docked)

Move a point along a line until it is on-screen

Maths (Arithmetic)

Subroutine: LL120 (Docked)

Calculate (Y X) = (S x1_lo) * XX12+2 or (S x1_lo) / XX12+2

Maths (Arithmetic)

Subroutine: LL123 (Docked)

Calculate (Y X) = (S R) / XX12+2 or (S R) * XX12+2

Maths (Arithmetic)

Subroutine: LL129 (Docked)

Calculate Q = XX12+2, A = S EOR XX12+3 and (S R) = |S R|

Elite H (Docked)
----------------

CategoryDetails

Text

Macro: EJMP (Docked)

Macro definition for jump tokens in the extended token table

Text

Macro: ECHR (Docked)

Macro definition for characters in the extended token table

Text

Macro: ETOK (Docked)

Macro definition for recursive tokens in the extended token table

Text

Macro: ETWO (Docked)

Macro definition for two-letter tokens in the extended token table

Text

Macro: ERND (Docked)

Macro definition for random tokens in the extended token table

Text

Macro: TOKN (Docked)

Macro definition for standard tokens in the extended token table

Text

Variable: TKN1 (Docked)

The first extended token table for recursive tokens 0-255 (DETOK)

Text

Variable: RUPLA (Docked)

System numbers that have extended decription overrides

Text

Variable: RUGAL (Docked)

The criteria for systems with extended decription overrides

Text

Variable: RUTOK (Docked)

The second extended token table for recursive tokens 0-26 (DETOK3)

Text

Variable: MTIN (Docked)

Lookup table for random tokens in the extended token table (0-37)

Copy protection

Variable: Checksum (Docked)

Contains a checksum at &55FF that is checked by the loader

Ship hanger blueprints
----------------------

CategoryDetails

Drawing ships

Variable: XX21 (Docked)

Ship blueprints lookup table for the ship hanger

Drawing ships

Variable: E% (Docked)

Ship blueprints default NEWB flags for the ship hanger

Drawing ships

Macro: VERTEX (Docked)

Macro definition for adding vertices to ship blueprints

Drawing ships

Macro: EDGE (Docked)

Macro definition for adding edges to ship blueprints

Drawing ships

Macro: FACE (Docked)

Macro definition for adding faces to ship blueprints

Drawing ships

Variable: SHIP_CANISTER (Docked)

Ship blueprint for a cargo canister

Drawing ships

Variable: SHIP_SHUTTLE (Docked)

Ship blueprint for a Shuttle

Drawing ships

Variable: SHIP_TRANSPORTER (Docked)

Ship blueprint for a Transporter

Drawing ships

Variable: SHIP_COBRA_MK_3 (Docked)

Ship blueprint for a Cobra Mk III

Drawing ships

Variable: SHIP_PYTHON (Docked)

Ship blueprint for a Python

Drawing ships

Variable: SHIP_VIPER (Docked)

Ship blueprint for a Viper

Drawing ships

Variable: SHIP_KRAIT (Docked)

Ship blueprint for a Krait

Drawing ships

Variable: SHIP_CONSTRICTOR (Docked)

Ship blueprint for a Constrictor

Workspaces (Flight)
-------------------

CategoryDetails

Workspaces

Workspace: ZP (Flight)

Lots of important variables are stored in the zero page workspace as it is quicker and more space-efficient to access memory here

Workspaces

Workspace: XX3 (Flight)

Temporary storage space for complex calculations

Workspaces

Workspace: UP (Flight)

Ship slots, variables

Workspaces

Workspace: K% (Flight)

Ship data blocks and ship line heaps

Workspaces

Workspace: WP (Flight)

Variables

Elite A (Flight)
----------------

CategoryDetails

Workspaces

Workspace: S% (Flight)

Entry points and vector addresses in the main flight code

Loader

Subroutine: INBAY (Flight)

Load and run the main docked code in T.CODE

Loader

Variable: LTLI (Flight)

The OS command string for loading the docked code in file T.CODE

Loader

Subroutine: scramble (Flight)

Decrypt the main flight code between &1300 and &55FF and jump into the main game loop

Loader

Subroutine: DOENTRY (Flight)

Load and run the docked code

Start and end

Subroutine: DEATH2 (Flight)

Reset most of the game and restart from the title screen

Main loop

Subroutine: Main flight loop (Part 1 of 16) (Flight)

Seed the random number generator

Main loop

Subroutine: Main flight loop (Part 2 of 16) (Flight)

Calculate the alpha and beta angles from the current pitch and roll of our ship

Main loop

Subroutine: Main flight loop (Part 3 of 16) (Flight)

Scan for flight keys and process the results

Main loop

Subroutine: Main flight loop (Part 4 of 16) (Flight)

For each nearby ship: Copy the ship's data block from K% to the zero-page workspace at INWK

Main loop

Subroutine: Main flight loop (Part 5 of 16) (Flight)

For each nearby ship: If an energy bomb has been set off, potentially kill this ship

Main loop

Subroutine: Main flight loop (Part 6 of 16) (Flight)

For each nearby ship: Move the ship in space and copy the updated INWK data block back to K%

Main loop

Subroutine: Main flight loop (Part 7 of 16) (Flight)

For each nearby ship: Check whether we are docking, scooping or colliding with it

Main loop

Subroutine: Main flight loop (Part 8 of 16) (Flight)

For each nearby ship: Process us potentially scooping this item

Main loop

Subroutine: Main flight loop (Part 9 of 16) (Flight)

For each nearby ship: If it is a space station, check whether we are successfully docking with it

Main loop

Subroutine: Main flight loop (Part 10 of 16) (Flight)

For each nearby ship: Remove if scooped, or process collisions

Main loop

Subroutine: Main flight loop (Part 11 of 16) (Flight)

For each nearby ship: Process missile lock and firing our laser

Main loop

Subroutine: Main flight loop (Part 12 of 16) (Flight)

For each nearby ship: Draw the ship, remove if killed, loop back

Main loop

Subroutine: Main flight loop (Part 13 of 16) (Flight)

Show energy bomb effect, charge shields and energy banks

Main loop

Subroutine: Main flight loop (Part 14 of 16) (Flight)

Spawn a space station if we are close enough to the planet

Main loop

Subroutine: Main flight loop (Part 15 of 16) (Flight)

Perform altitude checks with the planet and sun and process fuel scooping if appropriate

Main loop

Subroutine: Main flight loop (Part 16 of 16) (Flight)

Process laser pulsing, E.C.M. energy drain, call stardust routine

Universe

Subroutine: SPIN (Flight)

Randomly spawn cargo from a destroyed ship

Elite B (Flight)
----------------

CategoryDetails

Universe

Variable: UNIV (Flight)

Table of pointers to the local universe's ship data blocks

Drawing pixels

Variable: TWOS (Flight)

Ready-made single-pixel character row bytes for mode 4

Drawing pixels

Variable: TWOS2 (Flight)

Ready-made double-pixel character row bytes for mode 4

Drawing pixels

Variable: CTWOS (Flight)

Ready-made single-pixel character row bytes for mode 5

Drawing lines

Subroutine: LOIN (Part 1 of 7) (Flight)

Draw a line: Calculate the line gradient in the form of deltas

Drawing lines

Subroutine: LOIN (Part 2 of 7) (Flight)

Draw a line: Line has a shallow gradient, step right along x-axis

Drawing lines

Subroutine: LOIN (Part 3 of 7) (Flight)

Draw a shallow line going right and up or left and down

Drawing lines

Subroutine: LOIN (Part 4 of 7) (Flight)

Draw a shallow line going right and down or left and up

Drawing lines

Subroutine: LOIN (Part 5 of 7) (Flight)

Draw a line: Line has a steep gradient, step up along y-axis

Drawing lines

Subroutine: LOIN (Part 6 of 7) (Flight)

Draw a steep line going up and left or down and right

Drawing lines

Subroutine: LOIN (Part 7 of 7) (Flight)

Draw a steep line going up and right or down and left

Keyboard

Subroutine: FLKB (Flight)

Flush the keyboard buffer

Drawing lines

Subroutine: NLIN3 (Flight)

Print a title and a horizontal line at row 19 to box it in

Drawing lines

Subroutine: NLIN4 (Flight)

Draw a horizontal line at pixel row 19 to box in a title

Drawing lines

Subroutine: NLIN (Flight)

Draw a horizontal line at pixel row 23 to box in a title

Drawing lines

Subroutine: NLIN2 (Flight)

Draw a screen-wide horizontal line at the pixel row in A

Drawing lines

Subroutine: HLOIN2 (Flight)

Remove a line from the sun line heap and draw it on-screen

Drawing lines

Subroutine: HLOIN (Flight)

Draw a horizontal line from (X1, Y1) to (X2, Y1)

Drawing lines

Variable: TWFL (Flight)

Ready-made character rows for the left end of a horizontal line in mode 4

Drawing lines

Variable: TWFR (Flight)

Ready-made character rows for the right end of a horizontal line in mode 4

Drawing pixels

Subroutine: PX3 (Flight)

Plot a single pixel at (X, Y) within a character block

Maths (Arithmetic)

Subroutine: PIX1 (Flight)

Calculate (YY+1 SYL+Y) = (A P) + (S R) and draw stardust particle

Drawing pixels

Subroutine: PIXEL2 (Flight)

Draw a stardust particle relative to the screen centre

Drawing pixels

Subroutine: PIXEL (Flight)

Draw a 1-pixel dot, 2-pixel dash or 4-pixel square

Drawing circles

Subroutine: BLINE (Flight)

Draw a circle segment and add it to the ball line heap

Stardust

Subroutine: FLIP (Flight)

Reflect the stardust particles in the screen diagonal

Stardust

Subroutine: STARS (Flight)

The main routine for processing the stardust

Stardust

Subroutine: STARS1 (Flight)

Process the stardust for the front view

Stardust

Subroutine: STARS6 (Flight)

Process the stardust for the rear view

Maths (Geometry)

Subroutine: MAS1 (Flight)

Add an orientation vector coordinate to an INWK coordinate

Maths (Geometry)

Subroutine: MAS2 (Flight)

Calculate a cap on the maximum distance to the planet or sun

Maths (Arithmetic)

Subroutine: MAS3 (Flight)

Calculate A = x_hi^2 + y_hi^2 + z_hi^2 in the K% block

Status

Subroutine: STATUS (Flight)

Show the Status Mode screen (red key f8)

Text

Subroutine: plf2 (Flight)

Print text followed by a newline and indent of 6 characters

Moving

Subroutine: MVT3 (Flight)

Calculate K(3 2 1) = (x_sign x_hi x_lo) + K(3 2 1)

Moving

Subroutine: MVS5 (Flight)

Apply a 3.6 degree pitch or roll to an orientation vector

Text

Variable: TENS (Flight)

A constant used when printing large numbers in BPRNT

Text

Subroutine: pr2 (Flight)

Print an 8-bit number, left-padded to 3 digits, and optional point

Text

Subroutine: TT11 (Flight)

Print a 16-bit number, left-padded to n digits, and optional point

Text

Subroutine: BPRNT (Flight)

Print a 32-bit number, left-padded to a specific number of digits, with an optional decimal point

Sound

Subroutine: BELL (Flight)

Make a standard system beep

Text

Subroutine: TT26 (Flight)

Print a character at the text cursor by poking into screen memory

Dashboard

Subroutine: DIALS (Part 1 of 4) (Flight)

Update the dashboard: speed indicator

Dashboard

Subroutine: DIALS (Part 2 of 4) (Flight)

Update the dashboard: pitch and roll indicators

Dashboard

Subroutine: DIALS (Part 3 of 4) (Flight)

Update the dashboard: four energy banks

Dashboard

Subroutine: DIALS (Part 4 of 4) (Flight)

Update the dashboard: shields, fuel, laser & cabin temp, altitude

Dashboard

Subroutine: PZW (Flight)

Fetch the current dashboard colours, to support flashing

Dashboard

Subroutine: DILX (Flight)

Update a bar-based indicator on the dashboard

Dashboard

Subroutine: DIL2 (Flight)

Update the roll or pitch indicator on the dashboard

Flight

Subroutine: ESCAPE (Flight)

Launch our escape pod

Elite C (Flight)
----------------

CategoryDetails

Tactics

Subroutine: TACTICS (Part 1 of 7) (Flight)

Apply tactics: Process missiles, both enemy missiles and our own

Tactics

Subroutine: TACTICS (Part 2 of 7) (Flight)

Apply tactics: Escape pod, station, lone Thargon, safe-zone pirate

Tactics

Subroutine: TACTICS (Part 3 of 7) (Flight)

Apply tactics: Calculate dot product to determine ship's aim

Tactics

Subroutine: TACTICS (Part 4 of 7) (Flight)

Apply tactics: Check energy levels, maybe launch escape pod if low

Tactics

Subroutine: TACTICS (Part 5 of 7) (Flight)

Apply tactics: Consider whether to launch a missile at us

Tactics

Subroutine: TACTICS (Part 6 of 7) (Flight)

Apply tactics: Consider firing a laser at us, if aim is true

Tactics

Subroutine: TACTICS (Part 7 of 7) (Flight)

Apply tactics: Set pitch, roll, and acceleration

Flight

Subroutine: DOCKIT (Flight)

Apply docking manoeuvres to the ship in INWK

Maths (Arithmetic)

Subroutine: VCSU1 (Flight)

Calculate vector K3(8 0) = [x y z] - coordinates of the sun or space station

Maths (Arithmetic)

Subroutine: VCSUB (Flight)

Calculate vector K3(8 0) = [x y z] - coordinates in (A V)

Maths (Arithmetic)

Subroutine: TAS1 (Flight)

Calculate K3 = (x_sign x_hi x_lo) - V(1 0)

Maths (Geometry)

Subroutine: TAS4 (Flight)

Calculate the dot product of XX15 and one of the space station's orientation vectors

Maths (Geometry)

Subroutine: TAS6 (Flight)

Negate the vector in XX15 so it points in the opposite direction

Flight

Subroutine: DCS1 (Flight)

Calculate the vector from the ideal docking position to the ship

Tactics

Subroutine: HITCH (Flight)

Work out if the ship in INWK is in our crosshairs

Tactics

Subroutine: FRS1 (Flight)

Launch a ship straight ahead of us, below the laser sights

Tactics

Subroutine: FRMIS (Flight)

Fire a missile from our ship

Tactics

Subroutine: ANGRY (Flight)

Make a ship hostile

Tactics

Subroutine: FR1 (Flight)

Display the "missile jammed" message

Flight

Subroutine: SESCP (Flight)

Spawn an escape pod from the current (parent) ship

Universe

Subroutine: SFS1 (Flight)

Spawn a child ship from the current (parent) ship

Moving

Subroutine: SFS2 (Flight)

Move a ship in space along one of the coordinate axes

Drawing circles

Subroutine: LL164 (Flight)

Make the hyperspace sound and draw the hyperspace tunnel

Drawing circles

Subroutine: LAUN (Flight)

Make the launch sound and draw the launch tunnel

Drawing circles

Subroutine: HFS2 (Flight)

Draw the launch or hyperspace tunnel

Stardust

Subroutine: STARS2 (Flight)

Process the stardust for the left or right view

Maths (Arithmetic)

Subroutine: MU5 (Flight)

Set K(3 2 1 0) = (A A A A) and clear the C flGag

Maths (Arithmetic)

Subroutine: MULT3 (Flight)

Calculate K(3 2 1 0) = (A P+1 P) * Q

Maths (Arithmetic)

Subroutine: MLS2 (Flight)

Calculate (S R) = XX(1 0) and (A P) = A * ALP1

Maths (Arithmetic)

Subroutine: MLS1 (Flight)

Calculate (A P) = ALP1 * A

Maths (Arithmetic)

Subroutine: SQUA (Flight)

Clear bit 7 of A and calculate (A P) = A * A

Maths (Arithmetic)

Subroutine: SQUA2 (Flight)

Calculate (A P) = A * A

Maths (Arithmetic)

Subroutine: MU1 (Flight)

Copy X into P and A, and clear the C flag

Maths (Arithmetic)

Subroutine: MLU1 (Flight)

Calculate Y1 = y_hi and (A P) = |y_hi| * Q for Y-th stardust

Maths (Arithmetic)

Subroutine: MLU2 (Flight)

Calculate (A P) = |A| * Q

Maths (Arithmetic)

Subroutine: MULTU (Flight)

Calculate (A P) = P * Q

Maths (Arithmetic)

Subroutine: MU11 (Flight)

Calculate (A P) = P * X

Maths (Arithmetic)

Subroutine: MU6 (Flight)

Set P(1 0) = (A A)

Maths (Arithmetic)

Subroutine: FMLTU2 (Flight)

Calculate A = K * sin(A)

Maths (Arithmetic)

Subroutine: FMLTU (Flight)

Calculate A = A * Q / 256

Maths (Arithmetic)

Subroutine: Unused duplicate of MULTU (Flight)

Unused duplicate of the MULTU routine

Maths (Arithmetic)

Subroutine: MLTU2 (Flight)

Calculate (A P+1 P) = (A ~P) * Q

Maths (Arithmetic)

Subroutine: MUT3 (Flight)

Unused routine that does the same as MUT2

Maths (Arithmetic)

Subroutine: MUT2 (Flight)

Calculate (S R) = XX(1 0) and (A P) = Q * A

Maths (Arithmetic)

Subroutine: MUT1 (Flight)

Calculate R = XX and (A P) = Q * A

Maths (Arithmetic)

Subroutine: MULT1 (Flight)

Calculate (A P) = Q * A

Maths (Arithmetic)

Subroutine: MULT12 (Flight)

Calculate (S R) = Q * A

Maths (Geometry)

Subroutine: TAS3 (Flight)

Calculate the dot product of XX15 and an orientation vector

Maths (Arithmetic)

Subroutine: MAD (Flight)

Calculate (A X) = Q * A + (S R)

Maths (Arithmetic)

Subroutine: ADD (Flight)

Calculate (A X) = (A P) + (S R)

Maths (Arithmetic)

Subroutine: TIS1 (Flight)

Calculate (A ?) = (-X * A + (S R)) / 96

Maths (Arithmetic)

Subroutine: DV42 (Flight)

Calculate (P R) = 256 * DELTA / z_hi

Maths (Arithmetic)

Subroutine: DV41 (Flight)

Calculate (P R) = 256 * DELTA / A

Maths (Arithmetic)

Subroutine: DVID4 (Flight)

Calculate (P R) = 256 * A / Q

Maths (Arithmetic)

Subroutine: DVID3B2 (Flight)

Calculate K(3 2 1 0) = (A P+1 P) / (z_sign z_hi z_lo)

Dashboard

Subroutine: cntr (Flight)

Apply damping to the pitch or roll dashboard indicator

Dashboard

Subroutine: BUMP2 (Flight)

Bump up the value of the pitch or roll dashboard indicator

Dashboard

Subroutine: REDU2 (Flight)

Reduce the value of the pitch or roll dashboard indicator

Maths (Geometry)

Subroutine: ARCTAN (Flight)

Calculate A = arctan(P / Q)

Drawing lines

Subroutine: LASLI (Flight)

Draw the laser lines for when we fire our lasers

Utility routines

Variable: Unused block (Flight)

These bytes appear to be unused (the same block appears in both the flight and docked code)

Elite D (Flight)
----------------

CategoryDetails

Market

Subroutine: tnpr1 (Flight)

Work out if we have space for one tonne of cargo

Market

Subroutine: tnpr (Flight)

Work out if we have space for a specific amount of cargo

Universe

Subroutine: TT20 (Flight)

Twist the selected system's seeds four times

Universe

Subroutine: TT54 (Flight)

Twist the selected system's seeds

Text

Subroutine: TT146 (Flight)

Print the distance to the selected system in light years

Text

Subroutine: TT60 (Flight)

Print a text token and a paragraph break

Text

Subroutine: TTX69 (Flight)

Print a paragraph break

Text

Subroutine: TT69 (Flight)

Set Sentence Case and print a newline

Text

Subroutine: TT67 (Flight)

Print a newline

Text

Subroutine: TT70 (Flight)

Display "MAINLY " and jump to TT72

Text

Subroutine: spc (Flight)

Print a text token followed by a space

Universe

Subroutine: TT25 (Flight)

Show the Data on System screen (red key f6)

Universe

Subroutine: TT24 (Flight)

Calculate system data from the system seeds

Charts

Subroutine: TT22 (Flight)

Show the Long-range Chart (red key f4)

Drawing lines

Subroutine: TT15 (Flight)

Draw a set of crosshairs

Drawing circles

Subroutine: TT14 (Flight)

Draw a circle with crosshairs on a chart

Drawing circles

Subroutine: TT128 (Flight)

Draw a circle on a chart

Inventory

Subroutine: TT210 (Flight)

Show a list of current cargo in our hold, optionally to sell

Inventory

Subroutine: TT213 (Flight)

Show the Inventory screen (red key f9)

Charts

Subroutine: TT16 (Flight)

Move the crosshairs on a chart

Charts

Subroutine: TT103 (Flight)

Draw a small set of crosshairs on a chart

Charts

Subroutine: TT123 (Flight)

Move galactic coordinates by a signed delta

Charts

Subroutine: TT105 (Flight)

Draw crosshairs on the Short-range Chart, with clipping

Charts

Subroutine: TT23 (Flight)

Show the Short-range Chart (red key f5)

Universe

Subroutine: TT81 (Flight)

Set the selected system's seeds to those of system 0

Universe

Subroutine: TT111 (Flight)

Set the current system to the nearest system to a point

Flight

Subroutine: hyp (Flight)

Start the hyperspace process

Flight

Subroutine: wW (Flight)

Start a hyperspace countdown

Flight

Subroutine: Ghy (Flight)

Perform a galactic hyperspace jump

Universe

Subroutine: jmp (Flight)

Set the current system to the selected system

Text

Subroutine: ee3 (Flight)

Print the hyperspace countdown in the top-left of the screen

Text

Subroutine: pr6 (Flight)

Print 16-bit number, left-padded to 5 digits, no point

Text

Subroutine: pr5 (Flight)

Print a 16-bit number, left-padded to 5 digits, and optional point

Text

Subroutine: TT147 (Flight)

Print an error when a system is out of hyperspace range

Text

Subroutine: prq (Flight)

Print a text token followed by a question mark

Flight

Subroutine: TTX110 (Flight)

Set the current system to the nearest system and return to hyp

Market

Subroutine: TT151 (Flight)

Print the name, price and availability of a market item

Market

Subroutine: TT152 (Flight)

Print the unit ("t", "kg" or "g") for a market item

Text

Subroutine: TT162 (Flight)

Print a space

Market

Subroutine: TT160 (Flight)

Print "t" (for tonne) and a space

Market

Subroutine: TT161 (Flight)

Print "kg" (for kilograms)

Market

Subroutine: TT16a (Flight)

Print "g" (for grams)

Market

Subroutine: TT163 (Flight)

Print the headers for the table of market prices

Market

Subroutine: TT167 (Flight)

Show the Market Price screen (red key f7)

Market

Subroutine: var (Flight)

Calculate QQ19+3 = economy * |economic_factor|

Universe

Subroutine: hyp1 (Flight)

Process a jump to the system closest to (QQ9, QQ10)

Universe

Subroutine: GVL (Flight)

Calculate the availability of market items

Universe

Subroutine: GTHG (Flight)

Spawn a Thargoid ship and a Thargon companion

Flight

Subroutine: MJP (Flight)

Process a mis-jump into witchspace

Flight

Subroutine: TT18 (Flight)

Try to initiate a jump into hyperspace

Flight

Subroutine: TT110 (Flight)

Launch from a station or show the front space view

Charts

Subroutine: TT114 (Flight)

Display either the Long-range or Short-range Chart

Maths (Arithmetic)

Subroutine: MCASH (Flight)

Add an amount of cash to the cash pot

Maths (Arithmetic)

Subroutine: GCASH (Flight)

Calculate (Y X) = P * Q * 4

Maths (Arithmetic)

Subroutine: GC2 (Flight)

Calculate (Y X) = (A P) * 4

Charts

Subroutine: hm (Flight)

Select the closest system and redraw the chart crosshairs

Elite E (Flight)
----------------

CategoryDetails

Text

Subroutine: cpl (Flight)

Print the selected system name

Text

Subroutine: cmn (Flight)

Print the commander's name

Text

Subroutine: ypl (Flight)

Print the current system name

Text

Subroutine: tal (Flight)

Print the current galaxy number

Text

Subroutine: fwl (Flight)

Print fuel and cash levels

Text

Subroutine: csh (Flight)

Print the current amount of cash

Text

Subroutine: plf (Flight)

Print a text token followed by a newline

Text

Subroutine: TT68 (Flight)

Print a text token followed by a colon

Text

Subroutine: TT73 (Flight)

Print a colon

Text

Subroutine: TT27 (Flight)

Print a text token

Text

Subroutine: TT42 (Flight)

Print a letter in lower case

Text

Subroutine: TT41 (Flight)

Print a letter according to Sentence Case

Text

Subroutine: qw (Flight)

Print a recursive token in the range 128-145

Text

Subroutine: crlf (Flight)

Tab to column 21 and print a colon

Text

Subroutine: TT45 (Flight)

Print a letter in lower case

Text

Subroutine: TT46 (Flight)

Print a character and switch to capitals

Text

Subroutine: TT74 (Flight)

Print a character

Text

Subroutine: TT43 (Flight)

Print a two-letter token or recursive token 0-95

Text

Subroutine: ex (Flight)

Print a recursive token

Drawing ships

Subroutine: DOEXP (Flight)

Draw an exploding ship

Universe

Subroutine: SOS1 (Flight)

Update the missile indicators, set up the planet data block

Universe

Subroutine: SOLAR (Flight)

Set up various aspects of arriving in a new system

Stardust

Subroutine: NWSTARS (Flight)

Initialise the stardust field

Stardust

Subroutine: nWq (Flight)

Create a random cloud of stardust

Dashboard

Subroutine: WPSHPS (Flight)

Clear the scanner, reset the ball line and sun line heaps

Drawing suns

Subroutine: FLFLLS (Flight)

Reset the sun line heap

Screen mode

Subroutine: DET1 (Flight)

Show or hide the dashboard (for when we die)

Flight

Subroutine: SHD (Flight)

Charge a shield and drain some energy from the energy banks

Flight

Subroutine: DENGY (Flight)

Drain some energy from the energy banks

Dashboard

Subroutine: COMPAS (Flight)

Update the compass

Maths (Arithmetic)

Subroutine: SPS2 (Flight)

Calculate (Y X) = A / 10

Maths (Geometry)

Subroutine: SPS4 (Flight)

Calculate the vector to the space station

Dashboard

Subroutine: SP1 (Flight)

Draw the space station on the compass

Dashboard

Subroutine: SP2 (Flight)

Draw a dot on the compass, given the planet/station vector

Dashboard

Subroutine: DOT (Flight)

Draw a dash on the compass

Drawing pixels

Subroutine: CPIX4 (Flight)

Draw a double-height dot on the dashboard

Drawing pixels

Subroutine: CPIX2 (Flight)

Draw a single-height dash on the dashboard

Flight

Subroutine: OOPS (Flight)

Take some damage

Maths (Geometry)

Subroutine: SPS3 (Flight)

Copy a space coordinate from the K% block into K3

Universe

Subroutine: GINF (Flight)

Fetch the address of a ship's data block into INF

Universe

Subroutine: NWSPS (Flight)

Add a new space station to our local bubble of universe

Universe

Subroutine: NWSHP (Flight)

Add a new ship to our local bubble of universe

Universe

Subroutine: NwS1 (Flight)

Flip the sign and double an INWK byte

Dashboard

Subroutine: ABORT (Flight)

Disarm missiles and update the dashboard indicators

Dashboard

Subroutine: ABORT2 (Flight)

Set/unset the lock target for a missile and update the dashboard

Dashboard

Subroutine: ECBLB2 (Flight)

Start up the E.C.M. (indicator, start countdown and make sound)

Dashboard

Subroutine: ECBLB (Flight)

Light up the E.C.M. indicator bulb ("E") on the dashboard

Dashboard

Subroutine: SPBLB (Flight)

Light up the space station indicator ("S") on the dashboard

Dashboard

Subroutine: BULB (Flight)

Draw an indicator bulb on the dashboard

Dashboard

Variable: ECBT (Flight)

The character bitmap for the E.C.M. indicator bulb

Dashboard

Variable: SPBT (Flight)

The bitmap definition for the space station indicator bulb

Dashboard

Subroutine: MSBAR (Flight)

Draw a specific indicator in the dashboard's missile bar

Drawing ships

Subroutine: PROJ (Flight)

Project the current ship onto the screen

Drawing planets

Subroutine: PL2 (Flight)

Remove the planet or sun from the screen

Drawing planets

Subroutine: PLANET (Flight)

Draw the planet or sun

Drawing planets

Subroutine: PL9 (Part 1 of 3) (Flight)

Draw the planet, with either an equator and meridian, or a crater

Drawing planets

Subroutine: PL9 (Part 2 of 3) (Flight)

Draw the planet's equator and meridian

Drawing planets

Subroutine: PL9 (Part 3 of 3) (Flight)

Draw the planet's crater

Drawing planets

Subroutine: PLS1 (Flight)

Calculate (Y A) = nosev_x / z

Drawing planets

Subroutine: PLS2 (Flight)

Draw a half-circle

Drawing planets

Subroutine: PLS22 (Flight)

Draw a circle or half-circle

Drawing suns

Subroutine: SUN (Part 1 of 4) (Flight)

Draw the sun: Set up all the variables needed

Drawing suns

Subroutine: SUN (Part 2 of 4) (Flight)

Draw the sun: Start from bottom of screen and erase the old sun

Drawing suns

Subroutine: SUN (Part 3 of 4) (Flight)

Draw the sun: Continue to move up the screen, drawing the new sun

Drawing suns

Subroutine: SUN (Part 4 of 4) (Flight)

Draw the sun: Continue to the top of the screen, erasing old sun

Drawing circles

Subroutine: CIRCLE (Flight)

Draw a circle for the planet

Drawing circles

Subroutine: CIRCLE2 (Flight)

Draw a circle (for the planet or chart)

Drawing planets

Subroutine: WPLS2 (Flight)

Remove the planet from the screen

Drawing planets

Subroutine: WP1 (Flight)

Reset the ball line heap

Drawing suns

Subroutine: WPLS (Flight)

Remove the sun from the screen

Drawing lines

Subroutine: EDGES (Flight)

Draw a horizontal line given a centre and a half-width

Drawing circles

Subroutine: CHKON (Flight)

Check whether any part of a circle appears on the extended screen

Drawing planets

Subroutine: PL21 (Flight)

Return from a planet/sun-drawing routine with a failure flag

Drawing planets

Subroutine: PLS3 (Flight)

Calculate (Y A P) = 222 * roofv_x / z

Drawing planets

Subroutine: PLS4 (Flight)

Calculate CNT2 = arctan(P / A) / 4

Drawing planets

Subroutine: PLS5 (Flight)

Calculate roofv_x / z and roofv_y / z

Drawing planets

Subroutine: PLS6 (Flight)

Calculate (X K) = (A P) / (z_sign z_hi z_lo)

Keyboard

Subroutine: TT17 (Flight)

Scan the keyboard for cursor key or joystick movement

Universe

Subroutine: ping (Flight)

Set the selected system to the current system

Universe

Subroutine: KS3 (Flight)

Set the SLSP ship heap pointer after shuffling ship slots

Universe

Subroutine: KS1 (Flight)

Remove the current ship from our local bubble of universe

Universe

Subroutine: KS4 (Flight)

Remove the space station and replace it with the sun

Universe

Subroutine: KS2 (Flight)

Check the local bubble for missiles with target lock

Universe

Subroutine: KILLSHP (Flight)

Remove a ship from our local bubble of universe

Elite F (Flight)
----------------

CategoryDetails

Sound

Variable: SFX (Flight)

Sound data

Missions

Subroutine: THERE (Flight)

Check whether we are in the Constrictor's system in mission 1

Start and end

Subroutine: RESET (Flight)

Reset most variables

Start and end

Subroutine: RES2 (Flight)

Reset a number of flight variables and workspaces

Utility routines

Subroutine: ZINF (Flight)

Reset the INWK workspace and orientation vectors

Dashboard

Subroutine: msblob (Flight)

Display the dashboard's missile indicators in green

Text

Subroutine: me2 (Flight)

Remove an in-flight message from the space view

Universe

Subroutine: Ze (Flight)

Initialise the INWK workspace to a hostile ship

Utility routines

Subroutine: DORND (Flight)

Generate random numbers

Main loop

Subroutine: Main game loop (Part 1 of 6) (Flight)

Spawn a trader (a Cobra Mk III, Python, Boa or Anaconda)

Main loop

Subroutine: Main game loop (Part 2 of 6) (Flight)

Call the main flight loop, and potentially spawn a trader, an asteroid, or a cargo canister

Main loop

Subroutine: Main game loop (Part 3 of 6) (Flight)

Potentially spawn a cop, particularly if we've been bad

Main loop

Subroutine: Main game loop (Part 4 of 6) (Flight)

Potentially spawn a lone bounty hunter, a Thargoid, or up to four pirates

Main loop

Subroutine: Main game loop (Part 5 of 6) (Flight)

Cool down lasers, make calls to update the dashboard

Main loop

Subroutine: Main game loop (Part 6 of 6) (Flight)

Process non-flight key presses (red function keys, docked keys)

Keyboard

Subroutine: TT102 (Flight)

Process function key, save key, hyperspace and chart key presses and update the hyperspace counter

Status

Subroutine: BAD (Flight)

Calculate how bad we have been

Maths (Geometry)

Subroutine: FAROF (Flight)

Compare x_hi, y_hi and z_hi with 224

Maths (Geometry)

Subroutine: FAROF2 (Flight)

Compare x_hi, y_hi and z_hi with A

Maths (Geometry)

Subroutine: MAS4 (Flight)

Calculate a cap on the maximum distance to a ship

Start and end

Subroutine: DEATH (Flight)

Display the death screen

Loader

Subroutine: RSHIPS (Flight)

Launch from the station, load a new set of ship blueprints and jump into the main game loop

Loader

Subroutine: LSHIPS (Flight)

Load a new ship blueprints file

Loader

Variable: SHIPI (Flight)

The OS command string for loading a ship blueprints file

Utility routines

Subroutine: ZERO (Flight)

Zero-fill pages &9, &A, &B, &C and &D

Utility routines

Subroutine: ZES1 (Flight)

Zero-fill the page whose number is in X

Utility routines

Subroutine: ZES2 (Flight)

Zero-fill a specific page

Maths (Geometry)

Subroutine: SPS1 (Flight)

Calculate the vector to the planet and store it in XX15

Maths (Geometry)

Subroutine: TAS2 (Flight)

Normalise the three-coordinate vector in K3

Maths (Geometry)

Subroutine: NORM (Flight)

Normalise the three-coordinate vector in XX15

Keyboard

Subroutine: RDKEY (Flight)

Scan the keyboard for key presses

Flight

Subroutine: WARP (Flight)

Perform an in-system jump

Sound

Subroutine: ECMOF (Flight)

Switch off the E.C.M.

Sound

Subroutine: EXNO3 (Flight)

Make an explosion sound

Sound

Subroutine: BEEP (Flight)

Make a short, high beep

Tactics

Subroutine: SFRMIS (Flight)

Add an enemy missile to our local bubble of universe

Sound

Subroutine: EXNO2 (Flight)

Process us making a kill

Sound

Subroutine: EXNO (Flight)

Make the sound of a laser strike or ship explosion

Sound

Subroutine: NOISE (Flight)

Make the sound whose number is in A

Sound

Subroutine: NO3 (Flight)

Make a sound from a prepared sound block

Sound

Subroutine: NOS1 (Flight)

Prepare a sound block

Keyboard

Variable: KYTB (Flight)

Lookup table for in-flight keyboard controls

Keyboard

Subroutine: DKS1 (Flight)

Scan the keyboard for a flight key

Keyboard

Subroutine: CTRL (Flight)

Scan the keyboard to see if CTRL is currently pressed

Keyboard

Subroutine: DKS4 (Flight)

Scan the keyboard to see if a specific key is being pressed

Keyboard

Subroutine: DKS2 (Flight)

Read the joystick position

Keyboard

Subroutine: DKS3 (Flight)

Toggle a configuration setting and emit a beep

Keyboard

Subroutine: DKJ1 (Flight)

Read joystick and flight controls

Keyboard

Subroutine: U% (Flight)

Clear the key logger

Keyboard

Subroutine: DOKEY (Flight)

Scan for the seven primary flight controls

Keyboard

Subroutine: DK4 (Flight)

Scan for pause, configuration and secondary flight keys

Text

Subroutine: me1 (Flight)

Erase an old in-flight message and display a new one

Text

Subroutine: ou2 (Flight)

Display "E.C.M.SYSTEM DESTROYED" as an in-flight message

Text

Subroutine: ou3 (Flight)

Display "FUEL SCOOPS DESTROYED" as an in-flight message

Text

Subroutine: MESS (Flight)

Display an in-flight message

Text

Subroutine: mes9 (Flight)

Print a text token, possibly followed by " DESTROYED"

Flight

Subroutine: OUCH (Flight)

Potentially lose cargo or equipment following damage

Market

Macro: ITEM (Flight)

Macro definition for the market prices table

Market

Variable: QQ23 (Flight)

Market prices table

Maths (Geometry)

Subroutine: TIDY (Flight)

Orthonormalise the orientation vectors for a ship

Maths (Arithmetic)

Subroutine: TIS2 (Flight)

Calculate A = A / Q

Maths (Arithmetic)

Subroutine: TIS3 (Flight)

Calculate -(nosev_1 * roofv_1 + nosev_2 * roofv_2) / nosev_3

Maths (Arithmetic)

Subroutine: DVIDT (Flight)

Calculate (P+1 A) = (A P) / Q

Elite G (Flight)
----------------

CategoryDetails

Drawing ships

Subroutine: SHPPT (Flight)

Draw a distant ship as a point rather than a full wireframe

Maths (Arithmetic)

Subroutine: LL5 (Flight)

Calculate Q = SQRT(R Q)

Maths (Arithmetic)

Subroutine: LL28 (Flight)

Calculate R = 256 * A / Q

Maths (Arithmetic)

Subroutine: LL38 (Flight)

Calculate (S A) = (S R) + (A Q)

Maths (Geometry)

Subroutine: LL51 (Flight)

Calculate the dot product of XX15 and XX16

Drawing ships

Subroutine: LL9 (Part 1 of 12) (Flight)

Draw ship: Check if ship is exploding, check if ship is in front

Drawing ships

Subroutine: LL9 (Part 2 of 12) (Flight)

Draw ship: Check if ship is in field of view, close enough to draw

Drawing ships

Subroutine: LL9 (Part 3 of 12) (Flight)

Draw ship: Set up orientation vector, ship coordinate variables

Drawing ships

Subroutine: LL9 (Part 4 of 12) (Flight)

Draw ship: Set visibility for exploding ship (all faces visible)

Drawing ships

Subroutine: LL9 (Part 5 of 12) (Flight)

Draw ship: Calculate the visibility of each of the ship's faces

Drawing ships

Subroutine: LL9 (Part 6 of 12) (Flight)

Draw ship: Calculate the visibility of each of the ship's vertices

Maths (Arithmetic)

Subroutine: LL61 (Flight)

Calculate (U R) = 256 * A / Q

Maths (Arithmetic)

Subroutine: LL62 (Flight)

Calculate 128 - (U R)

Drawing ships

Subroutine: LL9 (Part 7 of 12) (Flight)

Draw ship: Calculate the visibility of each of the ship's vertices

Drawing ships

Subroutine: LL9 (Part 8 of 12) (Flight)

Draw ship: Calculate the screen coordinates of visible vertices

Drawing ships

Subroutine: LL9 (Part 9 of 12) (Flight)

Draw ship: Draw laser beams if the ship is firing its laser at us

Drawing ships

Subroutine: LL9 (Part 10 of 12) (Flight)

Draw ship: Calculate the visibility of each of the ship's edges

Drawing lines

Subroutine: LL145 (Part 1 of 4) (Flight)

Clip line: Work out which end-points are on-screen, if any

Drawing lines

Subroutine: LL145 (Part 2 of 4) (Flight)

Clip line: Work out if any part of the line is on-screen

Drawing lines

Subroutine: LL145 (Part 3 of 4) (Flight)

Clip line: Calculate the line's gradient

Drawing lines

Subroutine: LL145 (Part 4 of 4) (Flight)

Clip line: Call the routine in LL188 to do the actual clipping

Drawing ships

Subroutine: LL9 (Part 11 of 12) (Flight)

Draw ship: Add all visible edges to the ship line heap

Drawing ships

Subroutine: LL9 (Part 12 of 12) (Flight)

Draw ship: Draw all the visible edges from the ship line heap

Drawing lines

Subroutine: LL118 (Flight)

Move a point along a line until it is on-screen

Maths (Arithmetic)

Subroutine: LL120 (Flight)

Calculate (Y X) = (S x1_lo) * XX12+2 or (S x1_lo) / XX12+2

Maths (Arithmetic)

Subroutine: LL123 (Flight)

Calculate (Y X) = (S R) / XX12+2 or (S R) * XX12+2

Maths (Arithmetic)

Subroutine: LL129 (Flight)

Calculate Q = XX12+2, A = S EOR XX12+3 and (S R) = |S R|

Elite H (Flight)
----------------

CategoryDetails

Moving

Subroutine: MVEIT (Part 1 of 9) (Flight)

Move current ship: Tidy the orientation vectors

Moving

Subroutine: MVEIT (Part 2 of 9) (Flight)

Move current ship: Call tactics routine, remove ship from scanner

Moving

Subroutine: MVEIT (Part 3 of 9) (Flight)

Move current ship: Move ship forward according to its speed

Moving

Subroutine: MVEIT (Part 4 of 9) (Flight)

Move current ship: Apply acceleration to ship's speed as a one-off

Moving

Subroutine: MVEIT (Part 5 of 9) (Flight)

Move current ship: Rotate ship's location by our pitch and roll

Moving

Subroutine: MVEIT (Part 6 of 9) (Flight)

Move current ship: Move the ship in space according to our speed

Moving

Subroutine: MVEIT (Part 7 of 9) (Flight)

Move current ship: Rotate ship's orientation vectors by pitch/roll

Moving

Subroutine: MVEIT (Part 8 of 9) (Flight)

Move current ship: Rotate ship about itself by its own pitch/roll

Moving

Subroutine: MVEIT (Part 9 of 9) (Flight)

Move current ship: Redraw on scanner, if it hasn't been destroyed

Moving

Subroutine: MVT1 (Flight)

Calculate (x_sign x_hi x_lo) = (x_sign x_hi x_lo) + (A R)

Moving

Subroutine: MVS4 (Flight)

Apply pitch and roll to an orientation vector

Moving

Subroutine: MVT6 (Flight)

Calculate (A P+2 P+1) = (x_sign x_hi x_lo) + (A P+2 P+1)

Moving

Subroutine: MV40 (Flight)

Rotate the planet or sun's location in space by the amount of pitch and roll of our ship

Flight

Subroutine: PU1 (Flight)

Flip the coordinate axes for the four different views

Flight

Subroutine: LOOK1 (Flight)

Initialise the space view

Flight

Subroutine: SIGHT (Flight)

Draw the laser crosshairs

Utility routines

Subroutine: TT66 (Flight)

Clear the screen and set the current view type

Utility routines

Subroutine: TTX66 (Flight)

Clear the top part of the screen and draw a white border

Utility routines

Subroutine: DELAY (Flight)

Wait for a specified time, in 1/50s of a second

Utility routines

Subroutine: CLYNS (Flight)

Clear the bottom three text rows of the mode 4 screen

Utility routines

Subroutine: LYN (Flight)

Clear most of a row of pixels

Dashboard

Subroutine: SCAN (Flight)

Display the current ship on the scanner

Screen mode

Subroutine: WSCAN (Flight)

Wait for the vertical sync

Ship blueprints A
-----------------

CategoryDetails

Drawing ships

Variable: XX21 (Ship blueprints A)

Ship blueprints lookup table for the D.MOA file

Drawing ships

Variable: E% (Ship blueprints A)

Ship blueprints default NEWB flags for the D.MOA file

Drawing ships

Macro: VERTEX (Ship blueprints A)

Macro definition for adding vertices to ship blueprints

Drawing ships

Macro: EDGE (Ship blueprints A)

Macro definition for adding edges to ship blueprints

Drawing ships

Macro: FACE (Ship blueprints A)

Macro definition for adding faces to ship blueprints

Drawing ships

Variable: SHIP_CORIOLIS (Ship blueprints A)

Ship blueprint for a Coriolis space station

Drawing ships

Variable: SHIP_ESCAPE_POD (Ship blueprints A)

Ship blueprint for an escape pod

Drawing ships

Variable: SHIP_PLATE (Ship blueprints A)

Ship blueprint for an alloy plate

Drawing ships

Variable: SHIP_CANISTER (Ship blueprints A)

Ship blueprint for a cargo canister

Drawing ships

Variable: SHIP_PYTHON (Ship blueprints A)

Ship blueprint for a Python

Drawing ships

Variable: SHIP_VIPER (Ship blueprints A)

Ship blueprint for a Viper

Drawing ships

Variable: SHIP_SIDEWINDER (Ship blueprints A)

Ship blueprint for a Sidewinder

Drawing ships

Variable: SHIP_MAMBA (Ship blueprints A)

Ship blueprint for a Mamba

Drawing ships

Variable: SHIP_KRAIT (Ship blueprints A)

Ship blueprint for a Krait

Drawing ships

Variable: SHIP_COBRA_MK_3_P (Ship blueprints A)

Ship blueprint for a Cobra Mk III (pirate)

Drawing ships

Variable: SHIP_FER_DE_LANCE (Ship blueprints A)

Ship blueprint for a Fer-de-Lance

Ship blueprints B
-----------------

CategoryDetails

Drawing ships

Variable: XX21 (Ship blueprints B)

Ship blueprints lookup table for the D.MOB file

Drawing ships

Variable: E% (Ship blueprints B)

Ship blueprints default NEWB flags for the D.MOB file

Drawing ships

Macro: VERTEX (Ship blueprints B)

Macro definition for adding vertices to ship blueprints

Drawing ships

Macro: EDGE (Ship blueprints B)

Macro definition for adding edges to ship blueprints

Drawing ships

Macro: FACE (Ship blueprints B)

Macro definition for adding faces to ship blueprints

Drawing ships

Variable: SHIP_DODO (Ship blueprints B)

Ship blueprint for a Dodecahedron ("Dodo") space station

Drawing ships

Variable: SHIP_ESCAPE_POD (Ship blueprints B)

Ship blueprint for an escape pod

Drawing ships

Variable: SHIP_PLATE (Ship blueprints B)

Ship blueprint for an alloy plate

Drawing ships

Variable: SHIP_CANISTER (Ship blueprints B)

Ship blueprint for a cargo canister

Drawing ships

Variable: SHIP_BOULDER (Ship blueprints B)

Ship blueprint for a boulder

Drawing ships

Variable: SHIP_COBRA_MK_3 (Ship blueprints B)

Ship blueprint for a Cobra Mk III

Drawing ships

Variable: SHIP_VIPER (Ship blueprints B)

Ship blueprint for a Viper

Drawing ships

Variable: SHIP_MAMBA (Ship blueprints B)

Ship blueprint for a Mamba

Drawing ships

Variable: SHIP_KRAIT (Ship blueprints B)

Ship blueprint for a Krait

Drawing ships

Variable: SHIP_ADDER (Ship blueprints B)

Ship blueprint for an Adder

Drawing ships

Variable: SHIP_WORM (Ship blueprints B)

Ship blueprint for a Worm

Ship blueprints C
-----------------

CategoryDetails

Drawing ships

Variable: XX21 (Ship blueprints C)

Ship blueprints lookup table for the D.MOC file

Drawing ships

Variable: E% (Ship blueprints C)

Ship blueprints default NEWB flags for the D.MOC file

Drawing ships

Macro: VERTEX (Ship blueprints C)

Macro definition for adding vertices to ship blueprints

Drawing ships

Macro: EDGE (Ship blueprints C)

Macro definition for adding edges to ship blueprints

Drawing ships

Macro: FACE (Ship blueprints C)

Macro definition for adding faces to ship blueprints

Drawing ships

Variable: SHIP_CORIOLIS (Ship blueprints C)

Ship blueprint for a Coriolis space station

Drawing ships

Variable: SHIP_ESCAPE_POD (Ship blueprints C)

Ship blueprint for an escape pod

Drawing ships

Variable: SHIP_CANISTER (Ship blueprints C)

Ship blueprint for a cargo canister

Drawing ships

Variable: SHIP_ASTEROID (Ship blueprints C)

Ship blueprint for an asteroid

Drawing ships

Variable: SHIP_SPLINTER (Ship blueprints C)

Ship blueprint for a splinter

Drawing ships

Variable: SHIP_COBRA_MK_3 (Ship blueprints C)

Ship blueprint for a Cobra Mk III

Drawing ships

Variable: SHIP_BOA (Ship blueprints C)

Ship blueprint for a Boa

Drawing ships

Variable: SHIP_VIPER (Ship blueprints C)

Ship blueprint for a Viper

Drawing ships

Variable: SHIP_SIDEWINDER (Ship blueprints C)

Ship blueprint for a Sidewinder

Drawing ships

Variable: SHIP_KRAIT (Ship blueprints C)

Ship blueprint for a Krait

Drawing ships

Variable: SHIP_THARGOID (Ship blueprints C)

Ship blueprint for a Thargoid mothership

Drawing ships

Variable: SHIP_THARGON (Ship blueprints C)

Ship blueprint for a Thargon

Ship blueprints D
-----------------

CategoryDetails

Drawing ships

Variable: XX21 (Ship blueprints D)

Ship blueprints lookup table for the D.MOD file

Drawing ships

Variable: E% (Ship blueprints D)

Ship blueprints default NEWB flags for the D.MOD file

Drawing ships

Macro: VERTEX (Ship blueprints D)

Macro definition for adding vertices to ship blueprints

Drawing ships

Macro: EDGE (Ship blueprints D)

Macro definition for adding edges to ship blueprints

Drawing ships

Macro: FACE (Ship blueprints D)

Macro definition for adding faces to ship blueprints

Drawing ships

Variable: SHIP_DODO (Ship blueprints D)

Ship blueprint for a Dodecahedron ("Dodo") space station

Drawing ships

Variable: SHIP_ESCAPE_POD (Ship blueprints D)

Ship blueprint for an escape pod

Drawing ships

Variable: SHIP_CANISTER (Ship blueprints D)

Ship blueprint for a cargo canister

Drawing ships

Variable: SHIP_ASTEROID (Ship blueprints D)

Ship blueprint for an asteroid

Drawing ships

Variable: SHIP_SPLINTER (Ship blueprints D)

Ship blueprint for a splinter

Drawing ships

Variable: SHIP_COBRA_MK_3 (Ship blueprints D)

Ship blueprint for a Cobra Mk III

Drawing ships

Variable: SHIP_VIPER (Ship blueprints D)

Ship blueprint for a Viper

Drawing ships

Variable: SHIP_SIDEWINDER (Ship blueprints D)

Ship blueprint for a Sidewinder

Drawing ships

Variable: SHIP_GECKO (Ship blueprints D)

Ship blueprint for a Gecko

Drawing ships

Variable: SHIP_COBRA_MK_1 (Ship blueprints D)

Ship blueprint for a Cobra Mk I

Drawing ships

Variable: SHIP_THARGOID (Ship blueprints D)

Ship blueprint for a Thargoid mothership

Drawing ships

Variable: SHIP_THARGON (Ship blueprints D)

Ship blueprint for a Thargon

Ship blueprints E
-----------------

CategoryDetails

Drawing ships

Variable: XX21 (Ship blueprints E)

Ship blueprints lookup table for the D.MOE file

Drawing ships

Variable: E% (Ship blueprints E)

Ship blueprints default NEWB flags for the D.MOE file

Drawing ships

Macro: VERTEX (Ship blueprints E)

Macro definition for adding vertices to ship blueprints

Drawing ships

Macro: EDGE (Ship blueprints E)

Macro definition for adding edges to ship blueprints

Drawing ships

Macro: FACE (Ship blueprints E)

Macro definition for adding faces to ship blueprints

Drawing ships

Variable: SHIP_CORIOLIS (Ship blueprints E)

Ship blueprint for a Coriolis space station

Drawing ships

Variable: SHIP_ESCAPE_POD (Ship blueprints E)

Ship blueprint for an escape pod

Drawing ships

Variable: SHIP_PLATE (Ship blueprints E)

Ship blueprint for an alloy plate

Drawing ships

Variable: SHIP_CANISTER (Ship blueprints E)

Ship blueprint for a cargo canister

Drawing ships

Variable: SHIP_BOULDER (Ship blueprints E)

Ship blueprint for a boulder

Drawing ships

Variable: SHIP_COBRA_MK_3 (Ship blueprints E)

Ship blueprint for a Cobra Mk III

Drawing ships

Variable: SHIP_VIPER (Ship blueprints E)

Ship blueprint for a Viper

Drawing ships

Variable: SHIP_SIDEWINDER (Ship blueprints E)

Ship blueprint for a Sidewinder

Drawing ships

Variable: SHIP_MAMBA (Ship blueprints E)

Ship blueprint for a Mamba

Drawing ships

Variable: SHIP_KRAIT (Ship blueprints E)

Ship blueprint for a Krait

Drawing ships

Variable: SHIP_GECKO (Ship blueprints E)

Ship blueprint for a Gecko

Drawing ships

Variable: SHIP_COBRA_MK_1 (Ship blueprints E)

Ship blueprint for a Cobra Mk I

Ship blueprints F
-----------------

CategoryDetails

Drawing ships

Variable: XX21 (Ship blueprints F)

Ship blueprints lookup table for the D.MOF file

Drawing ships

Variable: E% (Ship blueprints F)

Ship blueprints default NEWB flags for the D.MOF file

Drawing ships

Macro: VERTEX (Ship blueprints F)

Macro definition for adding vertices to ship blueprints

Drawing ships

Macro: EDGE (Ship blueprints F)

Macro definition for adding edges to ship blueprints

Drawing ships

Macro: FACE (Ship blueprints F)

Macro definition for adding faces to ship blueprints

Drawing ships

Variable: SHIP_DODO (Ship blueprints F)

Ship blueprint for a Dodecahedron ("Dodo") space station

Drawing ships

Variable: SHIP_ESCAPE_POD (Ship blueprints F)

Ship blueprint for an escape pod

Drawing ships

Variable: SHIP_CANISTER (Ship blueprints F)

Ship blueprint for a cargo canister

Drawing ships

Variable: SHIP_BOULDER (Ship blueprints F)

Ship blueprint for a boulder

Drawing ships

Variable: SHIP_TRANSPORTER (Ship blueprints F)

Ship blueprint for a Transporter

Drawing ships

Variable: SHIP_COBRA_MK_3 (Ship blueprints F)

Ship blueprint for a Cobra Mk III

Drawing ships

Variable: SHIP_BOA (Ship blueprints F)

Ship blueprint for a Boa

Drawing ships

Variable: SHIP_VIPER (Ship blueprints F)

Ship blueprint for a Viper

Drawing ships

Variable: SHIP_SIDEWINDER (Ship blueprints F)

Ship blueprint for a Sidewinder

Drawing ships

Variable: SHIP_GECKO (Ship blueprints F)

Ship blueprint for a Gecko

Ship blueprints G
-----------------

CategoryDetails

Drawing ships

Variable: XX21 (Ship blueprints G)

Ship blueprints lookup table for the D.MOG file

Drawing ships

Variable: E% (Ship blueprints G)

Ship blueprints default NEWB flags for the D.MOG file

Drawing ships

Macro: VERTEX (Ship blueprints G)

Macro definition for adding vertices to ship blueprints

Drawing ships

Macro: EDGE (Ship blueprints G)

Macro definition for adding edges to ship blueprints

Drawing ships

Macro: FACE (Ship blueprints G)

Macro definition for adding faces to ship blueprints

Drawing ships

Variable: SHIP_CORIOLIS (Ship blueprints G)

Ship blueprint for a Coriolis space station

Drawing ships

Variable: SHIP_ESCAPE_POD (Ship blueprints G)

Ship blueprint for an escape pod

Drawing ships

Variable: SHIP_PLATE (Ship blueprints G)

Ship blueprint for an alloy plate

Drawing ships

Variable: SHIP_CANISTER (Ship blueprints G)

Ship blueprint for a cargo canister

Drawing ships

Variable: SHIP_BOULDER (Ship blueprints G)

Ship blueprint for a boulder

Drawing ships

Variable: SHIP_COBRA_MK_3 (Ship blueprints G)

Ship blueprint for a Cobra Mk III

Drawing ships

Variable: SHIP_VIPER (Ship blueprints G)

Ship blueprint for a Viper

Drawing ships

Variable: SHIP_MAMBA (Ship blueprints G)

Ship blueprint for a Mamba

Drawing ships

Variable: SHIP_KRAIT (Ship blueprints G)

Ship blueprint for a Krait

Drawing ships

Variable: SHIP_ADDER (Ship blueprints G)

Ship blueprint for an Adder

Drawing ships

Variable: SHIP_CONSTRICTOR (Ship blueprints G)

Ship blueprint for a Constrictor

Ship blueprints H
-----------------

CategoryDetails

Drawing ships

Variable: XX21 (Ship blueprints H)

Ship blueprints lookup table for the D.MOH file

Drawing ships

Variable: E% (Ship blueprints H)

Ship blueprints default NEWB flags for the D.MOH file

Drawing ships

Macro: VERTEX (Ship blueprints H)

Macro definition for adding vertices to ship blueprints

Drawing ships

Macro: EDGE (Ship blueprints H)

Macro definition for adding edges to ship blueprints

Drawing ships

Macro: FACE (Ship blueprints H)

Macro definition for adding faces to ship blueprints

Drawing ships

Variable: SHIP_DODO (Ship blueprints H)

Ship blueprint for a Dodecahedron ("Dodo") space station

Drawing ships

Variable: SHIP_ESCAPE_POD (Ship blueprints H)

Ship blueprint for an escape pod

Drawing ships

Variable: SHIP_CANISTER (Ship blueprints H)

Ship blueprint for a cargo canister

Drawing ships

Variable: SHIP_ASTEROID (Ship blueprints H)

Ship blueprint for an asteroid

Drawing ships

Variable: SHIP_SPLINTER (Ship blueprints H)

Ship blueprint for a splinter

Drawing ships

Variable: SHIP_SHUTTLE (Ship blueprints H)

Ship blueprint for a Shuttle

Drawing ships

Variable: SHIP_PYTHON (Ship blueprints H)

Ship blueprint for a Python

Drawing ships

Variable: SHIP_VIPER (Ship blueprints H)

Ship blueprint for a Viper

Drawing ships

Variable: SHIP_SIDEWINDER (Ship blueprints H)

Ship blueprint for a Sidewinder

Drawing ships

Variable: SHIP_KRAIT (Ship blueprints H)

Ship blueprint for a Krait

Drawing ships

Variable: SHIP_COBRA_MK_3_P (Ship blueprints H)

Ship blueprint for a Cobra Mk III (pirate)

Ship blueprints I
-----------------

CategoryDetails

Drawing ships

Variable: XX21 (Ship blueprints I)

Ship blueprints lookup table for the D.MOI file

Drawing ships

Variable: E% (Ship blueprints I)

Ship blueprints default NEWB flags for the D.MOI file

Drawing ships

Macro: VERTEX (Ship blueprints I)

Macro definition for adding vertices to ship blueprints

Drawing ships

Macro: EDGE (Ship blueprints I)

Macro definition for adding edges to ship blueprints

Drawing ships

Macro: FACE (Ship blueprints I)

Macro definition for adding faces to ship blueprints

Drawing ships

Variable: SHIP_CORIOLIS (Ship blueprints I)

Ship blueprint for a Coriolis space station

Drawing ships

Variable: SHIP_ESCAPE_POD (Ship blueprints I)

Ship blueprint for an escape pod

Drawing ships

Variable: SHIP_PLATE (Ship blueprints I)

Ship blueprint for an alloy plate

Drawing ships

Variable: SHIP_CANISTER (Ship blueprints I)

Ship blueprint for a cargo canister

Drawing ships

Variable: SHIP_VIPER (Ship blueprints I)

Ship blueprint for a Viper

Drawing ships

Variable: SHIP_SIDEWINDER (Ship blueprints I)

Ship blueprint for a Sidewinder

Drawing ships

Variable: SHIP_MAMBA (Ship blueprints I)

Ship blueprint for a Mamba

Drawing ships

Variable: SHIP_KRAIT (Ship blueprints I)

Ship blueprint for a Krait

Drawing ships

Variable: SHIP_ADDER (Ship blueprints I)

Ship blueprint for an Adder

Drawing ships

Variable: SHIP_COBRA_MK_3_P (Ship blueprints I)

Ship blueprint for a Cobra Mk III (pirate)

Drawing ships

Variable: SHIP_PYTHON_P (Ship blueprints I)

Ship blueprint for a Python (pirate)

Ship blueprints J
-----------------

CategoryDetails

Drawing ships

Variable: XX21 (Ship blueprints J)

Ship blueprints lookup table for the D.MOJ file

Drawing ships

Variable: E% (Ship blueprints J)

Ship blueprints default NEWB flags for the D.MOJ file

Drawing ships

Macro: VERTEX (Ship blueprints J)

Macro definition for adding vertices to ship blueprints

Drawing ships

Macro: EDGE (Ship blueprints J)

Macro definition for adding edges to ship blueprints

Drawing ships

Macro: FACE (Ship blueprints J)

Macro definition for adding faces to ship blueprints

Drawing ships

Variable: SHIP_DODO (Ship blueprints J)

Ship blueprint for a Dodecahedron ("Dodo") space station

Drawing ships

Variable: SHIP_ESCAPE_POD (Ship blueprints J)

Ship blueprint for an escape pod

Drawing ships

Variable: SHIP_PLATE (Ship blueprints J)

Ship blueprint for an alloy plate

Drawing ships

Variable: SHIP_CANISTER (Ship blueprints J)

Ship blueprint for a cargo canister

Drawing ships

Variable: SHIP_VIPER (Ship blueprints J)

Ship blueprint for a Viper

Drawing ships

Variable: SHIP_SIDEWINDER (Ship blueprints J)

Ship blueprint for a Sidewinder

Drawing ships

Variable: SHIP_MAMBA (Ship blueprints J)

Ship blueprint for a Mamba

Drawing ships

Variable: SHIP_KRAIT (Ship blueprints J)

Ship blueprint for a Krait

Drawing ships

Variable: SHIP_GECKO (Ship blueprints J)

Ship blueprint for a Gecko

Drawing ships

Variable: SHIP_COBRA_MK_1 (Ship blueprints J)

Ship blueprint for a Cobra Mk I

Drawing ships

Variable: SHIP_COBRA_MK_3_P (Ship blueprints J)

Ship blueprint for a Cobra Mk III (pirate)

Ship blueprints K
-----------------

CategoryDetails

Drawing ships

Variable: XX21 (Ship blueprints K)

Ship blueprints lookup table for the D.MOK file

Drawing ships

Variable: E% (Ship blueprints K)

Ship blueprints default NEWB flags for the D.MOK file

Drawing ships

Macro: VERTEX (Ship blueprints K)

Macro definition for adding vertices to ship blueprints

Drawing ships

Macro: EDGE (Ship blueprints K)

Macro definition for adding edges to ship blueprints

Drawing ships

Macro: FACE (Ship blueprints K)

Macro definition for adding faces to ship blueprints

Drawing ships

Variable: SHIP_CORIOLIS (Ship blueprints K)

Ship blueprint for a Coriolis space station

Drawing ships

Variable: SHIP_ESCAPE_POD (Ship blueprints K)

Ship blueprint for an escape pod

Drawing ships

Variable: SHIP_CANISTER (Ship blueprints K)

Ship blueprint for a cargo canister

Drawing ships

Variable: SHIP_ASTEROID (Ship blueprints K)

Ship blueprint for an asteroid

Drawing ships

Variable: SHIP_SPLINTER (Ship blueprints K)

Ship blueprint for a splinter

Drawing ships

Variable: SHIP_COBRA_MK_3 (Ship blueprints K)

Ship blueprint for a Cobra Mk III

Drawing ships

Variable: SHIP_PYTHON (Ship blueprints K)

Ship blueprint for a Python

Drawing ships

Variable: SHIP_VIPER (Ship blueprints K)

Ship blueprint for a Viper

Drawing ships

Variable: SHIP_SIDEWINDER (Ship blueprints K)

Ship blueprint for a Sidewinder

Drawing ships

Variable: SHIP_GECKO (Ship blueprints K)

Ship blueprint for a Gecko

Drawing ships

Variable: SHIP_COBRA_MK_1 (Ship blueprints K)

Ship blueprint for a Cobra Mk I

Drawing ships

Variable: SHIP_MORAY (Ship blueprints K)

Ship blueprint for a Moray

Ship blueprints L
-----------------

CategoryDetails

Drawing ships

Variable: XX21 (Ship blueprints L)

Ship blueprints lookup table for the D.MOL file

Drawing ships

Variable: E% (Ship blueprints L)

Ship blueprints default NEWB flags for the D.MOL file

Drawing ships

Macro: VERTEX (Ship blueprints L)

Macro definition for adding vertices to ship blueprints

Drawing ships

Macro: EDGE (Ship blueprints L)

Macro definition for adding edges to ship blueprints

Drawing ships

Macro: FACE (Ship blueprints L)

Macro definition for adding faces to ship blueprints

Drawing ships

Variable: SHIP_DODO (Ship blueprints L)

Ship blueprint for a Dodecahedron ("Dodo") space station

Drawing ships

Variable: SHIP_ESCAPE_POD (Ship blueprints L)

Ship blueprint for an escape pod

Drawing ships

Variable: SHIP_CANISTER (Ship blueprints L)

Ship blueprint for a cargo canister

Drawing ships

Variable: SHIP_COBRA_MK_3 (Ship blueprints L)

Ship blueprint for a Cobra Mk III

Drawing ships

Variable: SHIP_ANACONDA (Ship blueprints L)

Ship blueprint for an Anaconda

Drawing ships

Variable: SHIP_VIPER (Ship blueprints L)

Ship blueprint for a Viper

Drawing ships

Variable: SHIP_SIDEWINDER (Ship blueprints L)

Ship blueprint for a Sidewinder

Drawing ships

Variable: SHIP_MAMBA (Ship blueprints L)

Ship blueprint for a Mamba

Drawing ships

Variable: SHIP_WORM (Ship blueprints L)

Ship blueprint for a Worm

Drawing ships

Variable: SHIP_FER_DE_LANCE (Ship blueprints L)

Ship blueprint for a Fer-de-Lance

Ship blueprints M
-----------------

CategoryDetails

Drawing ships

Variable: XX21 (Ship blueprints M)

Ship blueprints lookup table for the D.MOM file

Drawing ships

Variable: E% (Ship blueprints M)

Ship blueprints default NEWB flags for the D.MOM file

Drawing ships

Macro: VERTEX (Ship blueprints M)

Macro definition for adding vertices to ship blueprints

Drawing ships

Macro: EDGE (Ship blueprints M)

Macro definition for adding edges to ship blueprints

Drawing ships

Macro: FACE (Ship blueprints M)

Macro definition for adding faces to ship blueprints

Drawing ships

Variable: SHIP_CORIOLIS (Ship blueprints M)

Ship blueprint for a Coriolis space station

Drawing ships

Variable: SHIP_CANISTER (Ship blueprints M)

Ship blueprint for a cargo canister

Drawing ships

Variable: SHIP_VIPER (Ship blueprints M)

Ship blueprint for a Viper

Drawing ships

Variable: SHIP_SIDEWINDER (Ship blueprints M)

Ship blueprint for a Sidewinder

Drawing ships

Variable: SHIP_MAMBA (Ship blueprints M)

Ship blueprint for a Mamba

Drawing ships

Variable: SHIP_KRAIT (Ship blueprints M)

Ship blueprint for a Krait

Drawing ships

Variable: SHIP_ADDER (Ship blueprints M)

Ship blueprint for an Adder

Drawing ships

Variable: SHIP_GECKO (Ship blueprints M)

Ship blueprint for a Gecko

Drawing ships

Variable: SHIP_COBRA_MK_1 (Ship blueprints M)

Ship blueprint for a Cobra Mk I

Drawing ships

Variable: SHIP_COBRA_MK_3_P (Ship blueprints M)

Ship blueprint for a Cobra Mk III (pirate)

Ship blueprints N
-----------------

CategoryDetails

Drawing ships

Variable: XX21 (Ship blueprints N)

Ship blueprints lookup table for the D.MON file

Drawing ships

Variable: E% (Ship blueprints N)

Ship blueprints default NEWB flags for the D.MON file

Drawing ships

Macro: VERTEX (Ship blueprints N)

Macro definition for adding vertices to ship blueprints

Drawing ships

Macro: EDGE (Ship blueprints N)

Macro definition for adding edges to ship blueprints

Drawing ships

Macro: FACE (Ship blueprints N)

Macro definition for adding faces to ship blueprints

Drawing ships

Variable: SHIP_DODO (Ship blueprints N)

Ship blueprint for a Dodecahedron ("Dodo") space station

Drawing ships

Variable: SHIP_ESCAPE_POD (Ship blueprints N)

Ship blueprint for an escape pod

Drawing ships

Variable: SHIP_CANISTER (Ship blueprints N)

Ship blueprint for a cargo canister

Drawing ships

Variable: SHIP_ASTEROID (Ship blueprints N)

Ship blueprint for an asteroid

Drawing ships

Variable: SHIP_SPLINTER (Ship blueprints N)

Ship blueprint for a splinter

Drawing ships

Variable: SHIP_COBRA_MK_3 (Ship blueprints N)

Ship blueprint for a Cobra Mk III

Drawing ships

Variable: SHIP_VIPER (Ship blueprints N)

Ship blueprint for a Viper

Drawing ships

Variable: SHIP_SIDEWINDER (Ship blueprints N)

Ship blueprint for a Sidewinder

Drawing ships

Variable: SHIP_KRAIT (Ship blueprints N)

Ship blueprint for a Krait

Drawing ships

Variable: SHIP_GECKO (Ship blueprints N)

Ship blueprint for a Gecko

Drawing ships

Variable: SHIP_ASP_MK_2 (Ship blueprints N)

Ship blueprint for an Asp Mk II

Ship blueprints O
-----------------

CategoryDetails

Drawing ships

Variable: XX21 (Ship blueprints O)

Ship blueprints lookup table for the D.MOO file

Drawing ships

Variable: E% (Ship blueprints O)

Ship blueprints default NEWB flags for the D.MOO file

Drawing ships

Macro: VERTEX (Ship blueprints O)

Macro definition for adding vertices to ship blueprints

Drawing ships

Macro: EDGE (Ship blueprints O)

Macro definition for adding edges to ship blueprints

Drawing ships

Macro: FACE (Ship blueprints O)

Macro definition for adding faces to ship blueprints

Drawing ships

Variable: SHIP_CORIOLIS (Ship blueprints O)

Ship blueprint for a Coriolis space station

Drawing ships

Variable: SHIP_ESCAPE_POD (Ship blueprints O)

Ship blueprint for an escape pod

Drawing ships

Variable: SHIP_PLATE (Ship blueprints O)

Ship blueprint for an alloy plate

Drawing ships

Variable: SHIP_CANISTER (Ship blueprints O)

Ship blueprint for a cargo canister

Drawing ships

Variable: SHIP_ASTEROID (Ship blueprints O)

Ship blueprint for an asteroid

Drawing ships

Variable: SHIP_SPLINTER (Ship blueprints O)

Ship blueprint for a splinter

Drawing ships

Variable: SHIP_COBRA_MK_3 (Ship blueprints O)

Ship blueprint for a Cobra Mk III

Drawing ships

Variable: SHIP_VIPER (Ship blueprints O)

Ship blueprint for a Viper

Drawing ships

Variable: SHIP_MAMBA (Ship blueprints O)

Ship blueprint for a Mamba

Drawing ships

Variable: SHIP_KRAIT (Ship blueprints O)

Ship blueprint for a Krait

Drawing ships

Variable: SHIP_COBRA_MK_1 (Ship blueprints O)

Ship blueprint for a Cobra Mk I

Drawing ships

Variable: SHIP_PYTHON_P (Ship blueprints O)

Ship blueprint for a Python (pirate)

Ship blueprints P
-----------------

CategoryDetails

Drawing ships

Variable: XX21 (Ship blueprints P)

Ship blueprints lookup table for the D.MOP file

Drawing ships

Variable: E% (Ship blueprints P)

Ship blueprints default NEWB flags for the D.MOP file

Drawing ships

Macro: VERTEX (Ship blueprints P)

Macro definition for adding vertices to ship blueprints

Drawing ships

Macro: EDGE (Ship blueprints P)

Macro definition for adding edges to ship blueprints

Drawing ships

Macro: FACE (Ship blueprints P)

Macro definition for adding faces to ship blueprints

Drawing ships

Variable: SHIP_DODO (Ship blueprints P)

Ship blueprint for a Dodecahedron ("Dodo") space station

Drawing ships

Variable: SHIP_ESCAPE_POD (Ship blueprints P)

Ship blueprint for an escape pod

Drawing ships

Variable: SHIP_PLATE (Ship blueprints P)

Ship blueprint for an alloy plate

Drawing ships

Variable: SHIP_CANISTER (Ship blueprints P)

Ship blueprint for a cargo canister

Drawing ships

Variable: SHIP_BOULDER (Ship blueprints P)

Ship blueprint for a boulder

Drawing ships

Variable: SHIP_ASTEROID (Ship blueprints P)

Ship blueprint for an asteroid

Drawing ships

Variable: SHIP_SPLINTER (Ship blueprints P)

Ship blueprint for a splinter

Drawing ships

Variable: SHIP_COBRA_MK_3 (Ship blueprints P)

Ship blueprint for a Cobra Mk III

Drawing ships

Variable: SHIP_VIPER (Ship blueprints P)

Ship blueprint for a Viper

Drawing ships

Variable: SHIP_SIDEWINDER (Ship blueprints P)

Ship blueprint for a Sidewinder

Drawing ships

Variable: SHIP_KRAIT (Ship blueprints P)

Ship blueprint for a Krait

Drawing ships

Variable: SHIP_ASP_MK_2 (Ship blueprints P)

Ship blueprint for an Asp Mk II