This index contains every subroutine, entry point, variable and workspace that appears in the source code for Aviator, sorted alphabetically.

Name | Category | Description |
---|---|---|

AbortLine | Drawing lines | Abort drawing this line |

Add16x16Bit0 | Maths | Add two 16-bit numbers that have their signs in bit 0 |

AddPointToObject | 3D geometry | Add a point vector to an object's coordinates |

AddScaled | Maths | Add or subtract a scaled amount to a variable |

AddTempToPoint (Part 1 of 2) | 3D geometry | Add the xTemp1 vector to a point, store the result in another point, and set the result to hidden if it overflows |

AddTempToPoint (Part 2 of 2) | 3D geometry | Check whether the vector addition overflowed and set the point's visibility accordingly |

AdjustRotation | Flight model | Move the plane and adjust its rotation |

AdjustTurn | Flight model | Adjust the plane's turn rate |

AdjustVelocity | Flight model | Adjust the plane's velocity vector |

aileronPosition | Workspace variable | Aileron position (roll) |

alien | Workspace variable | Temporary storage, used as a flag to indicate the alien when updating the radar (shares a memory location with the objCount variable) |

AlienInAcornsville | The Theme | Move an alien towards Acornsville and check whether it has reached it yet (and if so, end the game) |

alienObjectId | The Theme | Object IDs for each of the eight aliens |

alienScore | The Theme | The scores for killing aliens in the various feeding stages |

alienSlot | The Theme | Slots for up to three aliens that are ready to start moving towards the town |

alienSpeed | Workspace variable | The speed at which the aliens move, which starts at 10 for the first wave, then 14 for the second, 18 for the third, and 22 for all subsequent waves |

alienState | The Theme | The state of each of the eight aliens |

alienStatus | The Theme | Storage for the object status bytes for the four alien objects |

alienToMove | The Theme | The number of the alien to move towards Acornsville in this iteration of the main loop |

altitudeMinutes | Dashboard | The value of the altimeter's large "minute" hand |

ApplyAerodynamics (Part 1 of 3) | Flight model | Set up various variables to use in the aerodynamics calculations |

ApplyAerodynamics (Part 2 of 3) | Flight model | Check whether the plane is stalling, and if it is, simulate one wing stalling before the other, and make the stalling sound |

ApplyAerodynamics (Part 3 of 3) | Flight model | Calculate various aerodynamic figures |

ApplyBumpyRide | Flight model | Apply a random amount of roll or bumpiness to the plane |

ApplyFlightControl | Flight model | Calculate the effects of the primary flight controls (elevator, rudder and ailerons), and implement the "instant centre" feature |

ApplyFlightModel (Part 1 of 7) | Flight model | Apply the flight model to the plane, starting by calculating the effect of gravity and the undercarriage springs |

ApplyFlightModel (Part 2 of 7) | Flight model | Convert velocity to the plane's perspective and calculate various aerodynamic forces |

ApplyFlightModel (Part 3 of 7) | Flight model | If we are near to an exploding alien, apply turbulence |

ApplyFlightModel (Part 4 of 7) | Flight model | Calculate the dxTurn and xLinear vectors, and the slipRate |

ApplyFlightModel (Part 5 of 7) | Flight model | Calculate the forces for when we are on the ground |

ApplyFlightModel (Part 6 of 7) | Flight model | Adjust the plane's velocity and turn rate, rotate the plane according to the forces on the aircraft, process landing |

ApplyFlightModel (Part 7 of 7) | Flight model | Calculate fuel usage |

ApplyTurnAndThrust (Part 1 of 2) | Flight model | Calculate the (dxTurn, dyTurn, dzTurn) vector |

ApplyTurnAndThrust (Part 2 of 2) | Flight model | Calculate the (xLinear, yLinear, zLinear) vector |

ArtificialHorizon | Dashboard | Vector line calculation for the artificial horizon on indicator 7 |

axisChangeRate | Flight model | Stores the amount by which the three axes of movement change when the aileron, elevator or rudder are moved |

axisKeyUsage | Workspace variable | The following locations are updated when keys are pressed in UpdateFlightModel: |

brakesStatus | Workspace variable | Brakes status |

CheckAlienWeakSpot | The Theme | Check whether an object is close enough to an alien's weak spot to be hitting it |

CheckBridgeAndTown | Scoring | Check whether we are safely flying under the bridge or down the main street in Acornsville |

CheckFlyingSkills (Part 1 of 2) | Scoring | Check whether we are performing one of the tests of flying skill |

CheckFlyingSkills (Part 2 of 2) | Scoring | Perform finer checks to see if we are flying under the bridge or along the main street of the town |

CheckIfAlienIsHit (Part 1 of 2) | The Theme | Extract the alien's feeding stage, ready for the hit calculations in part 2 |

CheckIfAlienIsHit (Part 2 of 2) | The Theme | Check to see whether the alien has been hit, and if so, initiate the explosion |

CheckLineDistance | Visibility | Check whether a point on a line is within the visible distance for the line |

CheckObjDistance | Visibility | Check whether an object is within the visible distance for that object, along just one axis |

CheckPlaneOnRunway | Flight model | Check whether the plane is over the runway |

CheckTimePassed | Utility routines | Flag whether 9 centiseconds have passed since the last call |

ClearCanopy | Graphics | Clear the canopy to black, leaving the canopy edges alone |

ClearRows | Graphics | Clear the specified number of rows on-screen |

ClipBestEndOfLine | Drawing lines | Clip a line at the start or end point, depending on which is best |

ClipStartOfLine (Part 1 of 5) | Drawing lines | Check whether the line is completely off-screen |

ClipStartOfLine (Part 2 of 5) | Drawing lines | Work out the deltas depending on the direction of slope |

ClipStartOfLine (Part 3 of 5) | Drawing lines | Work out the deltas depending on the steepness of slope |

ClipStartOfLine (Part 4 of 5) | Drawing lines | Calculate where to clip the line |

ClipStartOfLine (Part 5 of 5) | Drawing lines | Move the start point to the clipped position and return it |

colour1L2R | Drawing lines | Pixel bytes for drawing canopy lines left to right in colour 1 |

colour1R2L | Drawing lines | Pixel bytes for drawing canopy lines right to left in colour 1 |

colour1Row | Drawing lines | Pixel bytes for erasing canopy lines in colour 1 |

colour2L2R | Drawing lines | Pixel bytes for drawing canopy lines left to right in colour 2 |

colour2R2L | Drawing lines | Pixel bytes for drawing canopy lines right to left in colour 2 |

colour2Row | Drawing lines | Pixel bytes for erasing canopy lines in colour 2 |

colourCycle | Workspace variable | Determines which of the two canopy screens we are showing, so we can use colour cycling for smooth animation |

colourLogic | Workspace variable | Determines the logic and bit patterns used to draw the canopy view: |

CopyPointToWork | Utility routines | Copy a point from the point tables to the variable workspace |

CopyTempToPoint | Utility routines | Set a specified point to (xTemp1, yTemp1, zTemp1) |

CopyWorkToPoint | Utility routines | Copy a point from the variable workspace to the point tables |

Crash | Flight model | Make a crashing sound, flash the canopy and start a new game |

DefineEnvelope | Sound | Define a sound envelope |

Delay | Utility routines | Delay for a specified number of loops |

dialQuadrant | Dashboard | The value range of a quadrant in each indicator |

disableCursor | Setup | The VDU command for disabling the cursor |

DisplayScore | Scoring | Print the scores on-screen |

distanceFromHit | The Theme | The distance from the alien we just hit, so we can work out whether we get hit by turbulence |

DivideScaled | Maths | Divide a 16-bit number by a scaled 16-bit number |

divisionHi | Maths | Division lookup table |

divisionLo | Maths | Division lookup table |

dormantAlienScore | The Theme | The score for killing a dormant alien |

DrawCanopy | Setup | Move code around, clear the edges of the canopy view, draw the canopy edges and rivets, and jump to the main code |

DrawCanopyCorners | Graphics | Draw the diagonal corners at the top of the canopy |

DrawCanopyLine (Part 1 of 9) | Drawing lines | Draw a line in the canopy view |

DrawCanopyLine (Part 2 of 9) | Drawing lines | Modify the line drawing routine for a shallow horizontal slope |

DrawCanopyLine (Part 3 of 9) | Drawing lines | Draw a line as a shallow horizontal slope |

DrawCanopyLine (Part 4 of 9) | Drawing lines | Draw a part of the line, working down the screen |

DrawCanopyLine (Part 5 of 9) | Drawing lines | Draw a part of the line, working up the screen |

DrawCanopyLine (Part 6 of 9) | Drawing lines | Draw a part of the line, working along the screen |

DrawCanopyLine (Part 7 of 9) | Drawing lines | Modify the line drawing routine for a steep vertical slope |

DrawCanopyLine (Part 8 of 9) | Drawing lines | Draw a line as a steep vertical slope |

DrawCanopyLine (Part 9 of 9) | Drawing lines | If the line was clipped, draw a line from the clipped coordinates to the edge of the screen |

DrawCanopyView | Graphics | Draw the main view out of the canopy |

DrawClippedHorizon | Drawing lines | Set bit 1 of the line direction in V (for the horizon) |

DrawClippedLine (Part 1 of 6) | Drawing lines | Clip a line to fit on-screen, starting with the line deltas |

DrawClippedLine (Part 2 of 6) | Drawing lines | Work out whether the line's start point is on-screen |

DrawClippedLine (Part 3 of 6) | Drawing lines | Work out whether the line's end point is on-screen |

DrawClippedLine (Part 4 of 6) | Drawing lines | Calculate the starting point and direction for our clipped vector line |

DrawClippedLine (Part 5 of 6) | Drawing lines | Calculate the deltas for our clipped vector line |

DrawClippedLine (Part 6 of 6) | Drawing lines | Add the clipped line to the line buffer and draw it |

DrawFuelPixel | Dashboard | Draw or erase a pixel on the fuel gauge on the dashboard |

DrawGunSights | Graphics | Draw the canopy corners and the gun sights, if shown |

DrawHalfHorizon | Drawing lines | Draw half of the horizon line |

DrawIndicatorBar | Drawing lines | Draw a vertical bar on indicator 9 (rudder) or 11 (thrust) |

DrawIndicatorHand | Drawing lines | Apply min and max limits to an indicator value and draw a hand on the indicator |

DrawIndicatorLine | Drawing lines | Draw a line on indicators 0 to 7, i.e. a dial hand (0-6) or an artificial horizon (7) |

DrawJoystickCross | Drawing lines | Draw a cross in the joystick position display (indicator 8 or 10) |

DrawOrthoLine | Drawing lines | Draw an orthogonal line (i.e. vertical or horizontal) |

DrawRadarBlip | Dashboard | Draw a blip on the radar (runway or alien) |

DrawRivet | Graphics | Draw a square rivet (2 pixels across, 4 pixels high) |

DrawVectorLine (Part 1 of 3) | Drawing lines | Draw a line: set up pixel bytes and slope variables |

DrawVectorLine (Part 2 of 3) | Drawing lines | Calculate the coordinates of the next pixel as we step along the line by one pixel |

DrawVectorLine (Part 3 of 3) | Drawing lines | Plot a pixel at (I, J) |

dxRotationHi | Workspace variable | Rate of change of the plane's rotation in the x-axis (high byte) |

dxRotationLo | Workspace variable | Rate of change of the plane's rotation in the x-axis (low byte) |

dxTurnHi | Workspace variable | Rate of change of the plane's turn rate in the x-axis (high byte) |

dxTurnLo | Workspace variable | Rate of change of the plane's turn rate in the x-axis (low byte) |

dxTurnTop | Workspace variable | Rate of change of the plane's turn rate in the x-axis (top byte) |

dxVelocityHi | Workspace variable | Rate of change of the plane's velocity in the x-axis (high byte) |

dxVelocityLo | Workspace variable | Rate of change of the plane's velocity in the x-axis (low byte) |

dyRotationHi | Workspace variable | Rate of change of the plane's rotation in the y-axis (high byte) |

dyRotationLo | Workspace variable | Rate of change of the plane's rotation in the y-axis (low byte) |

dyTurnHi | Workspace variable | Rate of change of the plane's rate turn in the y-axis (high byte) |

dyTurnLo | Workspace variable | Rate of change of the plane's turn rate in the y-axis (low byte) |

dyTurnTop | Workspace variable | Rate of change of the plane's turn rate in the y-axis (top byte) |

dyVelocityHi | Workspace variable | Rate of change of the plane's velocity in the y-axis (high byte) |

dyVelocityLo | Workspace variable | Rate of change of the plane's velocity in the y-axis (low byte) |

dzRotationHi | Workspace variable | Rate of change of the plane's rotation in the z-axis (high byte) |

dzRotationLo | Workspace variable | Rate of change of the plane's rotation in the z-axis (low byte) |

dzTurnHi | Workspace variable | Rate of change of the plane's rate turn in the z-axis (high byte) |

dzTurnLo | Workspace variable | Rate of change of the plane's turn rate in the z-axis (low byte) |

dzTurnTop | Workspace variable | Rate of change of the plane's turn rate in the z-axis (top byte) |

dzVelocityHi | Workspace variable | Rate of change of the plane's velocity in the z-axis (high byte) |

dzVelocityLo | Workspace variable | Rate of change of the plane's velocity in the z-axis (low byte) |

elevatorPosition | Workspace variable | Elevator position (pitch) |

engineStatus | Workspace variable | Engine status |

Entry | Setup | The main entry point for the game: move code into lower memory and call it |

envelopeData | Sound | Data for two sound envelopes |

EraseCanopyLines | Drawing lines | Draw all the lines from a line buffer to erase them |

EraseOrthoLine | Drawing lines | Use the value of G instead of H (so the coordinate is G + W) and always use EOR Logic to draw the line (which will erase it if it is already on-screen) |

ExplodeAlien | The Theme | Explode an alien, making the alien split apart |

explodeFrom | The Theme | The starting point ID for exploding each of the four alien slots |

explodeTo | The Theme | The end point ID for exploding each of the four alien slots |

feedingStage | The Theme | The feeding stage of the alien we are currently processing |

FillCanopy | Graphics | Fill the canopy with a specified colour, leaving the canopy edges alone |

FillCanopyRows | Graphics | Fill multiple screen rows with a particular colour, avoiding the canopy edges |

FillUpFuelTank | Flight model | Fill up the fuel tank by 1/65th of a full tank every four iterations of the main loop |

FireGuns | The Theme | Create the bullet objects and send them on their way |

FireGuns-1 | The Theme | Contains an RTS |

firingStatus | Workspace variable | Firing status |

flapsStatus | Workspace variable | Flaps status |

FlipColours | Graphics | Flip the values of colourCycle and colourLogic to cycle to the next colour state |

forceFactor | Flight model | The factors by which the flight forces are multiplied as part of the scaling process |

fuelLevel | Flight model | The current fuel level |

fuelUsedHi | Flight model | The high byte of the current batch of fuel used |

fuelUsedLo | Flight model | The low byte of the current batch of fuel used |

G | Workspace variable | Temporary storage, used in a number of places |

GetAlienWeakSpot | The Theme | Calculate the coordinates of an alien's weak spot |

GetHandVector | Dashboard | Vector line calculation for a hand on indicators 0 to 6 |

GetMoments | Flight model | Calculate the pitching, rolling and yawing moments due to the current pitch, roll and yaw rates |

GetMoments-1 | Flight model | Contains an RTS |

GetRadarVector | Dashboard | Calculate the radar line vector for a line (the runway) or a dot (an alien) |

GetTrailVectorStep | The Theme | Calculate 1/32 of the vector for a bullet trail |

GG | Workspace variable | Temporary storage, used in a number of places |

groupStart | 3D geometry | The starting value for each object's group number |

gunSights | Workspace variable | Gun sights status |

gunSoundCounter | Workspace variable | Counter for the number of firing sounds we make when firing our guns (which makes the sound of two shots) |

H | Workspace variable | Temporary storage, used in a number of places |

HH | Workspace variable | Temporary storage, used in a number of places |

highNibble | Maths | Lookup table for the high nibble of a value |

highScoreHi | Scoring | High score (low byte) |

highScoreLo | Scoring | High score (high byte) |

hitObjectId | The Theme | The object ID of the alien we just hit (30 to 33) |

hitTimer | The Theme | The time since we hit an alien, so we can time its explosion |

I | Workspace variable | Temporary storage, used in a number of places |

indicator0To6 | Dashboard | The first indicator counter |

indicator7To11 | Dashboard | The second indicator counter |

IndicatorB | Dashboard | Update the brakes indicator ("B") |

indicatorBase | Dashboard | The base value for each indicator |

IndicatorF | Dashboard | Update the flaps indicator ("F") and related variables |

indicatorLineI | Dashboard | Line buffer storage for the start x-coordinate for each indicator line (I) |

indicatorLineJ | Dashboard | Line buffer storage for the start y-coordinate for each indicator line (J) |

indicatorLineT | Dashboard | Line buffer storage for the indicator line's |x-delta| (T) |

indicatorLineU | Dashboard | Line buffer storage for the indicator line's |y-delta| (U) |

indicatorLineV | Dashboard | Line buffer storage for the indicator line's direction (V) |

indicatorMin | Dashboard | The minimum value shown on each indicator |

IndicatorT | Dashboard | Update the Theme indicator ("T") |

IndicatorU | Dashboard | Update the undercarriage indicator ("U") and related variables |

isObject | Workspace variable | Temporary storage, used to store the object ID when we check the visibility of an object in ProcessLine and call SetObjectCoords to set its coordinates |

J | Workspace variable | Temporary storage, used in a number of places |

joyCoord | Dashboard | Temporary storage |

K | Workspace variable | Temporary storage, used in a number of places |

keyLoggerHi | Workspace variable | Key logger (high byte) |

keyLoggerLo | Workspace variable | Key logger (low byte) |

keyTable1 | Keyboard | Internal key numbers of high priority keys that are scanned first |

keyTable1Hi | Keyboard | Key logger value (high byte) for key presses in keyTable1 |

keyTable1Lo | Keyboard | Key logger value (low byte) for key presses in keyTable1 |

keyTable2 | Keyboard | Internal key numbers of lower priority keys that are scanned second |

keyTable2Hi | Keyboard | Key logger value (high byte) for key presses in keyTable2 |

keyTable2Lo | Keyboard | Key logger value (low byte) for key presses in keyTable2 |

L | Workspace variable | Temporary storage, used in a number of places |

landingStatus | Workspace variable | The current landing status |

lineBuffer1Count | Workspace variable | Offset of the last line stored in buffer 1 |

lineBuffer2Count | Workspace variable | Offset of the last line stored in buffer 2 |

lineBufferG | Drawing lines | Line buffer storage for the max/min y-coordinate (G) |

lineBufferR | Drawing lines | Line buffer storage for the start x-coordinate (R) |

lineBufferS | Drawing lines | Line buffer storage for the start y-coordinate (S) |

lineBufferT | Drawing lines | Line buffer storage for the line's |x-delta| (T) |

lineBufferU | Workspace variable | Line buffer storage for the line's |y-delta| (U) |

lineBufferV | Drawing lines | Line buffer storage for the line direction (V) |

lineBufferW | Drawing lines | Line buffer storage for the max/min x-coordinate (W) |

lineCounter | Workspace variable | Temporary storage, typically used to loop through lines |

lineEndPointId | 3D geometry | The point ID for a line's end point |

lineId | Workspace variable | The line ID, used to pass lines to routines |

lineStartPointId | 3D geometry | The point ID for a line's start point |

linesToHide | Workspace variable | A list of line IDs for lines that are not visible |

linesToHideEnd | Workspace variable | The index of the last entry in the linesToHide list |

linesToHidePointer | Workspace variable | A pointer into the linesToHide list to keep track of where we have processed up to |

linesToShow | Workspace variable | A list of line IDs for lines that are visible |

linesToShowEnd | Workspace variable | The index of the first empty entry in the linesToShow list |

linesToShowPointer | Workspace variable | A pointer into the linesToShow list to keep track of where we have processed up to |

loadDashboard | Setup | The OS command string for loading the dashboard image |

lowNibble | Maths | Lookup table for the low nibble of a value |

M | Workspace variable | Temporary storage, used in a number of places |

Main variable workspace | Workspaces | The main block of game variables |

MainLoop (Part 1 of 15) | Main loop | Start the main loop by processing gunfire and bullets |

MainLoop (Part 2 of 15) | Main loop | Reset object statuses and related points |

MainLoop (Part 3 of 15) | Main loop | Make the sound of firing, if appropriate |

MainLoop (Part 4 of 15) | Main loop | Check whether aliens have invaded Acornsville |

MainLoop (Part 5 of 15) | Main loop | Update lines, check flying skills, increment main loop counter, update the radar |

MainLoop (Part 6 of 15) | Main loop | Check whether any aliens have been hit |

MainLoop (Part 7 of 15) | Main loop | Process the terminate key |

MainLoop (Part 8 of 15) | Main loop | If we fire the guns on the runway, enable the Theme |

MainLoop (Part 9 of 15) | Main loop | Fill up the tank if the engine is switched off, and process the volume keys |

MainLoop (Part 10 of 15) | Main loop | Award points for a successful landing |

MainLoop (Part 11 of 15) | Main loop | Process engine start and stop |

MainLoop (Part 12 of 15) | Main loop | Spend at least 9 centiseconds processing lines from the linesToHide list |

MainLoop (Part 13 of 15) | Main loop | Process more lines and update the view out of the canopy |

MainLoop (Part 14 of 15) | Main loop | Handle the score display |

MainLoop (Part 15 of 15) | Main loop | Update the status of any new line points |

mainLoopCounter | Main loop | The main loop counter |

MakeEngineSound | Sound | Make the engine sound, with the choppiness and pitch affected by thrust and airspeed |

MakeSound | Sound | Make a sound |

MakeSoundEnvelope | Sound | Either make a sound or set up an envelope |

matrix1Hi | Maths | The high bytes of matrix 1 |

matrix1Lo | Maths | The low bytes of matrix 1 |

matrix2Hi | Maths | The high bytes of matrix 2 |

matrix2Lo | Maths | The low bytes of matrix 2 |

matrix3Hi | Maths | The high bytes of matrix 3 |

matrix3Lo | Maths | The low bytes of matrix 3 |

matrix4Hi | Maths | The high bytes of matrix 4 |

matrix4Lo | Maths | The low bytes of matrix 4 |

matrixAxis | Workspace variable | The axis to be processed by the matrix routines, specifically those that populate the matrices |

matrixNumber | Workspace variable | The matrix used in matrix operations: |

maxCoord | Workspace variable | Temporary storage, used to store the maximum start point coordinate when clipping lines |

maxLineDistance | Visibility | The furthest distance at which each line is visible |

maxObjDistance | Visibility | The furthest distance at which each object is visible |

ModifyDrawRoutine | Drawing lines | Modify the drawing routines to draw in the correct colour for the current colour cycle |

Multiply16x16 | Maths | Multiply two unsigned 16-bit numbers |

Multiply16x16Bit0 | Maths | Multiply two 16-bit numbers that have their signs in bit 0 |

Multiply16x16Mix | Maths | Multiply two 16-bit numbers with different sign bits (one in bit 7 of the high byte, the other in bit 0 of the low byte) |

Multiply4x16 | Maths | Multiply a 4-bit and a 16-bit number |

Multiply8x16 | Maths | Multiply an 8-bit and a 16-bit number |

Multiply8x16-2 | Maths | Store X in VV before doing the calculation Multiply8x16-6 Store X in VV and calculate (G W V) = (A Y) * R |

Multiply8x16-6 | Maths | Store X in VV and calculate (G W V) = (A Y) * R |

Multiply8x8 | Maths | Multiply two unsigned 8-bit numbers |

mx1Hi | Workspace variable | The value of mx1, used when constructing the rotation matrices (high byte) |

mx1Lo | Workspace variable | The value of mx1, used when constructing the rotation matrices (low byte) |

mx2Hi | Workspace variable | The value of mx2, used when constructing the rotation matrices (high byte) |

mx2Lo | Workspace variable | The value of mx2, used when constructing the rotation matrices (low byte) |

my1Hi | Workspace variable | The value of my1, used when constructing the rotation matrices (high byte) |

my1Lo | Workspace variable | The value of my1, used when constructing the rotation matrices (low byte) |

my2Hi | Workspace variable | The value of my2, used when constructing the rotation matrices (high byte) |

my2Lo | Workspace variable | The value of my2, used when constructing the rotation matrices (low byte) |

mz1Hi | Workspace variable | The value of mz1, used when constructing the rotation matrices (high byte) |

mz1Lo | Workspace variable | The value of mz1, used when constructing the rotation matrices (low byte) |

mz2Hi | Workspace variable | The value of mz2, used when constructing the rotation matrices (high byte) |

mz2Lo | Workspace variable | The value of mz2, used when constructing the rotation matrices (low byte) |

N | Workspace variable | Temporary storage, used in a number of places |

Negate16Bit | Maths | Negate a 16-bit number |

NewGame | Setup | Start a new game |

NextObjectGroup | 3D geometry | Cycle to the next object group |

NextRandomNumber | Utility routines | Point to the next item in the randomNumbers list |

numberOfLines | 3D geometry | The total number of lines in Aviator's 3D world |

objCount | Workspace variable | Temporary storage, used as a loop counter in the object group visibility checks (shares a memory location with the alien variable) |

objectAnchorPoint | Workspace variable | Used to store the anchor point of the current object |

objectGroup | 3D geometry | The current group number for object IDs 6, 7, 8 and 9 |

objectId | Workspace variable | Temporary storage for an object ID (0 to 39) |

objectPoints | 3D geometry | Sequences of related points that together make up objects |

objectStatus | Workspace variable | Each object's status byte |

onGround | Workspace variable | "On the ground" status |

P | Workspace variable | Temporary storage, used in a number of places |

pleaseWaitText | Setup | The "Please wait" message shown when the game loads |

pointCount | Workspace variable | Temporary storage, used as a counter in ProcessLine to check the start and end points of the line |

pointId | Workspace variable | Temporary storage, used to store the ID of the current point when checking a line's visibility in the ProcessLine routine |

pointStatus | Workspace variable | Each point's status byte |

pointsToAward | Workspace variable | Used to store the points scored from flying skills, so they can be added to the score once the task has been completed |

PP | Workspace variable | Temporary storage, used in a number of places |

pressingT | Workspace variable | Set to 0 in the main loop if "T" is not being pressed, otherwise set to 1, to prevent holding down "T" from constantly switching the engine on and off |

pressingTab | Workspace variable | Bit 7 determines whether TAB is being pressed |

pressingUFBS | Workspace variable | Determines whether any of the following keys are being pressed: |

previousCompass | Dashboard | Stores the value of the compass heading when we draw the runway on the radar, so we can erase the line later |

previousListEnd | Workspace variable | Used to store the value of linesToHideEnd at the start of each iteration of the main loop, so we can refer to it at the end of the main loop to see if we have added anything to the list during the main loop |

previousTime | Main loop | Stores the current time (low byte only), so we can process lines in a timely fashion during the main loop |

PrintScore | Scoring | Print a score |

PrintScoreText | Scoring | Print text when showing the scores on-screen |

PrintTooLate | The Theme | Print the "TOO LATE!" message at column 6, row 7 on-screen |

ProcessHorizonLine | Visibility | Calculate coordinates for the horizon's start and end points |

ProcessLanding (Part 1 of 7) | Flight model | If this is an emergency landing, make the landing a bumpy one |

ProcessLanding (Part 2 of 7) | Flight model | If we are too high to be touching the ground then we can't be landing, so stop the landing checks |

ProcessLanding (Part 3 of 7) | Flight model | If we are taxiing, restrict the plane's vertical movement and roll |

ProcessLanding (Part 4 of 7) | Flight model | If we are taxiing with the undercarriage up, restrict pitching |

ProcessLanding (Part 5 of 7) | Flight model | If we are taxiing with the undercarriage down, restrict pitching and tilt the plane backwards |

ProcessLanding (Part 6 of 7) | Flight model | If we are not taxiing, process the landing |

ProcessLanding (Part 7 of 7) | Flight model | We have successfully touched down without crashing, so process the effects of landing on the plane |

ProcessLine (Part 1 of 7) | Visibility | Process a line, rotating and transforming it to the correct coordinates and calculating its visibility |

ProcessLine (Part 2 of 7) | Visibility | Process runway lines |

ProcessLine (Part 3 of 7) | Visibility | If a line is part of a multi-point object, extract the other points in the line so we can check them all |

ProcessLine (Part 4 of 7) | Visibility | Process bullet lines |

ProcessLine (Part 5 of 7) | Visibility | Calculate the object's coordinates and visibility |

ProcessLine (Part 6 of 7) | Visibility | Check the visibility of all the object's points on the stack |

ProcessLine (Part 7 of 7) | Visibility | Check distance and z-coordinates and return the final result |

ProcessLine-1 | Visibility | Contains an RTS |

ProcessLinesToHide | Visibility | Process an unprocessed line from the linesToHide list |

ProcessLinesToShow | Visibility | Process the linesToShow list, projecting all the lines onto the screen and moving any that aren't visible to the linesToHide list |

ProcessOtherKeys | Keyboard | Apply the undercarriage, brakes, flaps and fire keys |

ProcessRunwayLine (Part 1 of 5) | Visibility | Calculate coordinates and visibility for a runway line |

ProcessRunwayLine (Part 2 of 5) | Visibility | Calculate coordinates and visibility for the runway outline |

ProcessRunwayLine (Part 3 of 5) | Visibility | Calculate visibility for the runway dashes |

ProcessRunwayLine (Part 4 of 5) | Visibility | Construct the dashes down the middle of the runway |

ProcessRunwayLine (Part 5 of 5) | Visibility | Clip any portion of the runway outline that's behind us |

ProcessVolumeKeys | Sound | Adjust the volume when the volume keys are pressed |

ProjectAxisAngle | 3D geometry | Convert the rotation angles of the plane into coordinates |

ProjectPoint (Part 1 of 3) | 3D geometry | Project a point onto the screen (i.e. convert from 3D coordinates to screen coordinates) |

ProjectPoint (Part 2 of 3) | 3D geometry | Calculate the screen coordinates of the projected point |

ProjectPoint (Part 3 of 3) | 3D geometry | Move the projected coordinates to the centre of the screen and update the point's status byte |

propellorStatus | Workspace variable | Propellor status |

Q | Workspace variable | Temporary storage, used in a number of places |

Workspace variable | Temporary storage, used in a number of places | |

R | Workspace variable | Temporary storage, used in a number of places |

randomNumbers | Utility routines | A list for keeping a list of random numbers |

reached512ft | Workspace variable | Have we reached 512 feet in altitude since taking off? |

ReadADCChannel | Keyboard | Read the joystick position from one of the ADC channels |

ReadJoystick | Keyboard | Read the joystick axes and fire button and update the aileron, elevator and fire key values accordingly |

relatedPoints | Workspace variable | Contains a list, from relatedPoints+1 onwards, with the list size in relatedPoints |

RemoveScore | Scoring | Remove the score display from the screen |

ResetEngineSound | Sound | Reset the pitch of the engine sound |

ResetLineLists | Visibility | Reset the line lists at linesToShow and linesToHide |

ResetRadar | Dashboard | Reset the radar display |

ResetVariable | Utility routines | Set a 16-bit in the variable workspace to 0 |

ResetVariables | Setup | Reset most variables to prepare for a new flight |

ResizeFeedingAlien | The Theme | Change the size of an alien so it grows bigger as it feeds |

RetractFlapsIfFast | Flight model | Retract the flaps if we are going faster than 150 mph |

RR | Workspace variable | Temporary storage, used in a number of places |

rudderPosition | Workspace variable | Rudder position (yaw) |

S | Workspace variable | Temporary storage, used in a number of places |

ScaleByAltitude | Flight model | Multiply the high byte of the plane's altitude by a 16-bit number |

ScaleByAltitude-1 | Flight model | Contains an RTS |

ScaleDown (Part 1 of 4) | Maths | Scale down the results of divisions done using the ScaleUp and DivideScaled routines |

ScaleDown (Part 2 of 4) | Maths | Balance the scale factors for the x- and y-coordinates |

ScaleDown (Part 3 of 4) | Maths | Scale the x-coordinate |

ScaleDown (Part 4 of 4) | Maths | Scale the y-coordinate |

scaleFactor | Flight model | Scale factors for the flight forces (in signed powers of 2) |

ScaleFlightForces | Flight model | Scale the flight forces by the relevant scale factors |

ScaleSigned | Maths | Scale an indicator value by 4 or 16, retaining the sign and adding sensitivity for smaller values |

ScaleUp | Maths | Scale up a 16-bit number until it doesn't fit into 16 bits any more |

ScanKeyboard | Keyboard | Scan the keyboard for a specific key |

scoreDisplayTimer | Workspace variable | Counter for removing the score after displaying it for a fixed amount of time |

scoreHi | Scoring | Score (high byte) |

ScoreHitPoints | Scoring | Award points for destroying an alien, and remove the alien from its slot and the radar, if required |

scoreLo | Scoring | Score (low byte) |

ScorePoints | Scoring | Increase the score and make a beep |

scoreText | Scoring | The high score text |

SetColourToBlack | Graphics | Set a logical colour to black |

SetColourToWhite | Graphics | Set a logical colour to white |

SetEngine | Flight model | Set the engine status |

SetLogicalColour | Graphics | Set a logical colour to a physical colour |

SetMatrices | 3D geometry | Set up matrices 1 to 4 |

SetMatrixEntry | 3D geometry | Calculate a matrix entry |

SetMatrixEntry2 | 3D geometry | Set mWrite = (S R) * mRead >> 16 and (J I) = mRead SetMatrixEntry3 Set mWrite = (J I) * -mRead >> 16 and (S R) = -mRead |

SetMatrixEntry3 | 3D geometry | Set mWrite = (J I) * -mRead >> 16 and (S R) = -mRead |

SetObjectCoords (Part 1 of 11) | 3D geometry | Calculate the coordinates for an object's location |

SetObjectCoords (Part 2 of 11) | 3D geometry | Pre-process the bullets (objects 12, 13, 14 or 15) |

SetObjectCoords (Part 3 of 11) | 3D geometry | Logic for checking which objects to pre-process |

SetObjectCoords (Part 4 of 11) | 3D geometry | Pre-process the object groups (objects 6, 7, 8 or 9) |

SetObjectCoords (Part 5 of 11) | 3D geometry | Logic for checking which objects to pre-process |

SetObjectCoords (Part 6 of 11) | 3D geometry | Pre-process dormant aliens (object group 30) |

SetObjectCoords (Part 7 of 11) | 3D geometry | Pre-process feeding and flying aliens (objects 31, 32 and 33) |

SetObjectCoords (Part 8 of 11) | 3D geometry | Process the object |

SetObjectCoords (Part 9 of 11) | 3D geometry | Process the next object in the group, if applicable, or return from the subroutine if not |

SetObjectCoords (Part 10 of 11) | 3D geometry | Process the next dormant alien (object group 30) |

SetObjectCoords (Part 11 of 11) | 3D geometry | Update the object status and return from the subroutine |

SetObjectToOrigin | 3D geometry | Set an object's coordinates to (0, 0, 0) |

SetObjPointCoords (Part 1 of 2) | 3D geometry | Calculate the coordinate for a point within an object |

SetObjPointCoords (Part 2 of 2) | 3D geometry | Apply the correct scale factor to the matrix multiplication |

SetPoint | 3D geometry | Set a point's coordinates to the value (a, a, a) |

SetPointCoords | 3D geometry | Calculate the coordinates for a point |

SetPointToOrigin | 3D geometry | Set a point's coordinates to the origin at (0, 0, 0) |

SetPointVisibility | 3D geometry | Set the status byte for multiple points to indicate that their coordinates and visibility have been calculated |

SetRandomNumber | Utility routines | Set the next item in the randomNumbers list to a new random number and update the pointer to point to it |

SetupScreen | Setup | Set up the screen mode and load the dashboard image |

shift4Left | Maths | Lookup table for shifting a byte four places to the left, to extract the low nibble |

shift4Right | Maths | Lookup table for shifting a byte four places to the right, to extract the high nibble |

showLine | Workspace variable | Determines whether a line is visible: |

ShowOrHideLine | Visibility | Process a line, working out its visibility and adding it to the linesToShow or linesToHide list |

showRunwayDashes | Workspace variable | Determines whether the dashes down the middle of the runway are close enough to be visible: |

ShowUpsideDownBar | Dashboard | Show or hide the upside down bar in the artificial horizon indicator |

Sine16Bit | Maths | Calculate the sine of a 16-bit number |

sinHi | Maths | High byte of the sine lookup table |

sinLo | Maths | Low byte of the sine lookup table |

skillZoneHi | Scoring | High byte of the skill zone coordinates for testing flying skills |

skillZoneLo | Scoring | Low byte of the skill zone coordinates for testing flying skills |

skillZoneSize | Scoring | Sizes of the skill zones for testing flying skills |

slipRate | Workspace variable | Slip rate |

soundData | Sound | OSWORD blocks for making the various game sounds |

soundData26 | Sound | The sound of us making contact with the ground while landing |

SpawnAlien | The Theme | If the Theme is enabled and the current wave does not yet have eight aliens in it, spawn a new alien |

SS | Workspace variable | Temporary storage, used in a number of places |

Stack variables | Workspaces | Variables that share page 1 with the stack |

StartGame | Setup | Reset the high score, set up the gunfire sound envelope and start a new game |

startStatus | Workspace variable | Temporary storage, used to store the point status byte for the start point of a projected line |

SwapLinePoints | Drawing lines | Copy an end point into a start point |

T | Workspace variable | Temporary storage, used in a number of places |

TerminateGame | Setup | Terminate the current game |

themeStatus | Workspace variable | Theme status |

thrustHi | Workspace variable | Thrust (high byte) |

thrustLo | Workspace variable | Thrust (low byte) |

timesTable | Maths | Lookup table for multiplication times tables |

ToggleEngineSound | Sound | Turn the engine sound on or off |

ToggleJoystick | Keyboard | Toggle the joystick setting |

tooLateText | The Theme | The "TOO LATE!" message shown when the aliens land in Acornsville |

TT | Workspace variable | Temporary storage, used in a number of places |

U | Workspace variable | Temporary storage, used in a number of places |

ucStatus | Workspace variable | Undercarriage status |

UpdateAliens (Part 1 of 5) | The Theme | Update the aliens so they progress through their feeding or attack cycles |

UpdateAliens (Part 2 of 5) | The Theme | Manage alien slots 31 and 32, and if there's a vacancy, wake up a dormant alien, move it into the slot and start its feeding cycle |

UpdateAliens (Part 3 of 5) | The Theme | If alien slot 33 is free and there's an alien waiting to take off, promote it into slot 33 |

UpdateAliens (Part 4 of 5) | The Theme | When an alien reaches the next feeding stage, double its size |

UpdateAliens (Part 5 of 5) | The Theme | Check whether the whole wave has been destroyed, and award points accordingly |

UpdateBullets | The Theme | Move the bullets through the air |

UpdateDash7To11 | Dashboard | Update the next indicator in the range 7 to 11 |

UpdateDashboard | Dashboard | Update two indicators on the dashboard, one from 0-6, one from 7-11, cycling through them with each subsequent call |

UpdateFlightModel (Part 1 of 4) | Flight model | Apply any axis control key presses to the current axis values |

UpdateFlightModel (Part 2 of 4) | Flight model | Apply any throttle key presses to the current thrust value |

UpdateFlightModel (Part 3 of 4) | Flight model | Process the undercarriage, brake, flaps and fire keys |

UpdateFlightModel (Part 4 of 4) | Flight model | Set up matrices, apply the flight model and update the dashboard |

UpdateFuelGauge | Dashboard | Update the fuel gauge every 16 iterations of the main loop |

UpdateHighScore | Scoring | If this is a high score, update the high score |

UpdateIndicator (Part 1 of 15) | Dashboard | Update a single indicator on the dashboard |

UpdateIndicator (Part 2 of 15) | Dashboard | Calculations for the compass (indicator 0) |

UpdateIndicator (Part 3 of 15) | Dashboard | Calculations for the airspeed indicator (indicator 1) |

UpdateIndicator (Part 4 of 15) | Dashboard | Calculations for the altimeter's small "hour" hand (indicator 2) |

UpdateIndicator (Part 5 of 15) | Dashboard | Calculations for the altimeter's "minute" hand (indicator 3) |

UpdateIndicator (Part 6 of 15) | Dashboard | Logic for checking which indicator to update |

UpdateIndicator (Part 7 of 15) | Dashboard | Calculations for the vertical speed indicator (indicator 4) |

UpdateIndicator (Part 8 of 15) | Dashboard | Logic for checking which indicator to update |

UpdateIndicator (Part 9 of 15) | Dashboard | Calculations for the turn indicator (indicator 5), the bottom part of the slip-and-turn indicator |

UpdateIndicator (Part 10 of 15) | Dashboard | Calculations for the slip indicator (indicator 6), the top part of the slip-and-turn indicator |

UpdateIndicator (Part 11 of 15) | Dashboard | Calculations for the artificial horizon (indicator 7) |

UpdateIndicator (Part 12 of 15) | Dashboard | Logic for checking which indicator to update |

UpdateIndicator (Part 13 of 15) | Dashboard | Calculations for the rudder indicator (indicator 9) |

UpdateIndicator (Part 14 of 15) | Dashboard | Calculations for the joystick position display (indicator 8 or 10) |

UpdateIndicator (Part 15 of 15) | Dashboard | Calculations for the thrust indicator (indicator 11) |

UpdateKeyLogger | Keyboard | Scan the keyboard for keys in the two key tables and update the key logger |

UpdateLinesToShow | Visibility | Update the linesToShow list, moving any lines that aren't visible into the linesToHide list |

UpdateRadarBlip | Dashboard | Update a blip on the radar (runway or alien) |

UpdateScore | Scoring | Increase the score by a specified number of points |

UU | Workspace variable | Temporary storage, used in a number of places |

V | Workspace variable | Temporary storage, used in a number of places |

VduDraw | Graphics | Draw a line using the standard VDU routines |

VduMove | Graphics | Move the graphics cursor using the standard VDU routines |

VduPlot | Graphics | Perform a plot command using the standard VDU routines |

VduPoint | Graphics | Draw a point on-screen using the standard VDU routines |

VV | Workspace variable | Temporary storage, used in a number of places |

W | Workspace variable | Temporary storage, used in a number of places |

WW | Workspace variable | Temporary storage, used in a number of places |

xControlsHi | Workspace variable | Angular force due to the plane's controls in the x-axis (high byte) |

xControlsLo | Workspace variable | Angular force due to the plane's controls in the x-axis (low byte) |

xControlsScHi | Workspace variable | Scaled angular force due to the plane's controls in the x-axis (high byte) |

xControlsScLo | Workspace variable | Scaled angular force due to the plane's controls in the x-axis (low byte) |

xControlsScTop | Workspace variable | Scaled angular force due to the plane's controls in the x-axis (top byte) |

xDashesVectorHi | Workspace variable | The high byte of the xDashesVector temporary variable |

xDashesVectorLo | Workspace variable | The low byte of the xDashesVector temporary variable |

xDeltaMax | Dashboard | The maximum x-delta for the hand line in each indicator |

xGravityHi | 3D geometry | High byte of point 253 (x-coordinate) |

xGravityLo | Workspace variable | Low byte of point 253 (x-coordinate) |

xGroupObjectHi | 3D geometry | High byte of the x-coordinate for objects in a group (6 to 9) |

xJoyCoord | Dashboard | Temporary storage |

xLiftDragHi | Workspace variable | Linear force due to lift in the x-axis (high byte) |

xLiftDragLo | Workspace variable | Linear force due to lift in the x-axis (low byte) |

xLiftDragScHi | Workspace variable | Scaled linear force due to lift in the x-axis (high byte) |

xLiftDragScLo | Workspace variable | Scaled linear force due to lift in the x-axis (low byte) |

xLiftDragScTop | Workspace variable | Scaled linear force due to lift in the x-axis (top byte) |

xLinearHi | 3D geometry | High byte of point 252 (x-coordinate) |

xLinearLo | Workspace variable | Low byte of point 252 (x-coordinate) |

xLookupHi | Graphics | Lookup table for converting pixel x-coordinate to high byte of screen address |

xLookupLo | Graphics | Lookup table for converting pixel x-coordinate to low byte of screen address |

xMomentsHi | Workspace variable | Angular force due to airflow over the plane in the x-axis (high byte) |

xMomentsLo | Workspace variable | Angular force due to airflow over the plane in the x-axis (low byte) |

xMomentsScHi | Workspace variable | Scaled angular force due to forces on the plane in the x-axis (high byte) |

xMomentsScLo | Workspace variable | Scaled angular force due to forces on the plane in the x-axis (low byte) |

xMomentsScTop | Workspace variable | Scaled angular force due to forces on the plane in the x-axis (top byte) |

xObjectHi | 3D geometry | High byte of the x-coordinate for an object |

xObjectLo | 3D geometry | Low byte of the x-coordinate for an object |

xObjectPoint | 3D geometry | Scaled x-coordinates of the points that make up objects, relative to the object's anchor point |

xPlaneBot | Workspace variable | The bottom byte of the plane's coordinate (x-axis) |

xPlaneHi | Workspace variable | Plane longitude/x-coordinate (high byte) |

xPlaneLo | Workspace variable | Plane longitude/x-coordinate (low byte) |

xPlaneTop | Workspace variable | The top byte of the plane's location, which is the byte above the high byte in xPlaneHi |

xPointHi | 3D geometry | High byte of the x-coordinate for a point |

xPointLo | Workspace variable | The low byte of the x-coordinate for the point with ID X is at xPointLo,X |

xRadarBuffer | Dashboard | The x-coordinates of the runway and alien on the radar |

xRotationHi | Workspace variable | Plane rotation angle around the x-axis (high byte) |

xRotationLo | Workspace variable | Plane rotation angle around the x-axis (low byte) |

xTemp1Hi | Workspace variable | The high byte of the xTemp1 temporary variable |

xTemp1Lo | Workspace variable | The low byte of the xTemp1 temporary variable |

xTemp2Hi | Workspace variable | The high byte of the xTemp2 temporary variable |

xTemp2Lo | Workspace variable | The low byte of the xTemp2 temporary variable |

xTemp2Top | Workspace variable | The top byte of the xTemp2 temporary variable |

xTemp3Hi | Workspace variable | The high byte of the xTemp3 temporary variable |

xTemp3Lo | Workspace variable | The low byte of the xTemp3 temporary variable |

xTempPoint1Hi | 3D geometry | High byte of point 254 (x-coordinate) |

xTempPoint1Lo | Workspace variable | Low byte of point 254 (x-coordinate) |

xTempPoint2Hi | 3D geometry | High byte of point 255 (x-coordinate) |

xTempPoint2Lo | Workspace variable | Low byte of point 255 (x-coordinate) |

xTurnHi | Workspace variable | Turn rate around the x-axis (high byte) |

xTurnLo | Workspace variable | Turn rate around the x-axis (low byte) |

xTurnTop | Workspace variable | Turn rate around the x-axis (top byte) |

xVelocityHi | Workspace variable | Plane velocity in the x-axis from the perspective of the outside world (high byte) |

xVelocityLo | Workspace variable | Plane velocity in the x-axis from the perspective of the outside world (low byte) |

xVelocityPHi | Workspace variable | Plane velocity along the x-axis from the perspective of the pilot (high byte) |

xVelocityPLo | Workspace variable | Plane velocity along the x-axis from the perspective of the pilot (low byte) |

xVelocityTop | Workspace variable | Plane velocity in the x-axis from the perspective of the outside world (top byte) |

yControlsHi | Workspace variable | Angular force due to the plane's controls in the y-axis (high byte) |

yControlsLo | Workspace variable | Angular force due to the plane's controls in the y-axis (low byte) |

yControlsScHi | Workspace variable | Scaled angular force due to the plane's controls in the y-axis (high byte) |

yControlsScLo | Workspace variable | Scaled angular force due to the plane's controls in the y-axis (low byte) |

yControlsScTop | Workspace variable | Scaled angular force due to the plane's controls in the y-axis (top byte) |

yDashesVectorHi | Workspace variable | The high byte of the yDashesVector temporary variable |

yDashesVectorLo | Workspace variable | The low byte of the yDashesVector temporary variable |

yDeltaMax | Dashboard | The maximum y-delta for the hand line in each indicator |

yFlapsLiftHi | Workspace variable | Linear force in the y-axis due to lift from the flaps (high byte) |

yFlapsLiftLo | Workspace variable | Linear force in the y-axis due to lift from the flaps (low byte) |

yFlapsLiftScHi | Workspace variable | Scaled linear force in the y-axis due to lift from the flaps (high byte) |

yFlapsLiftScLo | Workspace variable | Scaled linear force in the y-axis due to lift from the flaps (low byte) |

yFlapsLiftScTop | Workspace variable | Scaled linear force in the y-axis due to lift from the flaps (top byte) |

yGravityHi | Workspace variable | High byte of point 253 (y-coordinate) |

yGravityLo | Workspace variable | Low byte of point 253 (y-coordinate) |

yJoyCoord | Dashboard | Temporary storage |

yLandingGear | Workspace variable | The vertical distance between the cockpit and the lowest part of the plane |

yLiftDragHi | Workspace variable | Linear force due to side forces in the y-axis (high byte) |

yLiftDragLo | Workspace variable | Linear force due to side forces in the y-axis (low byte) |

yLiftDragScHi | Workspace variable | Scaled linear force due to side forces in the y-axis (high byte) |

yLiftDragScLo | Workspace variable | Scaled linear force due to side forces in the y-axis (low byte) |

yLiftDragScTop | Workspace variable | Scaled linear force due to side forces in the y-axis (top byte) |

yLinearHi | Workspace variable | High byte of point 252 (y-coordinate) |

yLinearLo | Workspace variable | Low byte of point 252 (y-coordinate) |

yLookupHi | Graphics | Lookup table for converting pixel y-coordinate to high byte of screen address |

yLookupLo | Graphics | Lookup table for converting pixel y-coordinate to low byte of screen address |

yMomentsHi | Workspace variable | Angular force due to airflow over the plane in the y-axis (high byte) |

yMomentsLo | Workspace variable | Angular force due to airflow over the plane in the y-axis (low byte) |

yMomentsScHi | Workspace variable | Scaled angular force due to forces on the plane in the y-axis (high byte) |

yMomentsScLo | Workspace variable | Scaled angular force due to forces on the plane in the y-axis (low byte) |

yMomentsScTop | Workspace variable | Scaled angular force due to forces on the plane in the y-axis (top byte) |

yObjectHi | 3D geometry | High byte of the y-coordinate for an object |

yObjectLo | 3D geometry | Low byte of the y-coordinate for an object |

yObjectPoint | 3D geometry | Scaled y-coordinates of the points that make up objects, relative to the object's anchor point |

yPlaneBot | Workspace variable | The bottom byte of the plane's coordinate (y-axis) |

yPlaneHi | Workspace variable | Plane altitude/y-coordinate (high byte) |

yPlaneLo | Workspace variable | Plane altitude/y-coordinate (low byte) |

yPlaneTop | Workspace variable | The top byte of the plane's location, which is the byte above the high byte in yPlaneHi |

yPointHi | Workspace variable | The high byte of the y-coordinate for the point with ID X is at yPointHi,X |

yPointLo | Workspace variable | The low byte of the y-coordinate for the point with ID X is at yPointLo,X |

yRadarBuffer | Dashboard | The y-coordinates of the runway and alien on the radar |

yRotationHi | Workspace variable | Plane rotation angle around the y-axis (high byte) |

yRotationLo | Workspace variable | Plane rotation angle around the y-axis (low byte) |

yTemp1Hi | Workspace variable | The high byte of the yTemp1 temporary variable |

yTemp1Lo | Workspace variable | The low byte of the yTemp1 temporary variable |

yTemp2Hi | Workspace variable | The high byte of the yTemp2 temporary variable |

yTemp2Lo | Workspace variable | The low byte of the yTemp2 temporary variable |

yTemp2Top | Workspace variable | The top byte of the yTemp2 temporary variable |

yTemp3Hi | Workspace variable | The high byte of the yTemp3 temporary variable |

yTemp3Lo | Workspace variable | The low byte of the yTemp3 temporary variable |

yTempPoint1Hi | Workspace variable | High byte of point 254 (y-coordinate) |

yTempPoint1Lo | Workspace variable | Low byte of point 254 (y-coordinate) |

yTempPoint2Hi | Workspace variable | High byte of point 255 (y-coordinate) |

yTempPoint2Lo | Workspace variable | Low byte of point 255 (z-coordinate) |

yTurnHi | Workspace variable | Turn rate around the y-axis (high byte) |

yTurnLo | Workspace variable | Turn rate around the y-axis (low byte) |

yTurnTop | Workspace variable | Turn rate around the y-axis (top byte) |

yVelocityHi | Workspace variable | Plane velocity in the y-axis from the perspective of the outside world (high byte) |

yVelocityLo | Workspace variable | Plane velocity in the y-axis from the perspective of the outside world (low byte) |

yVelocityPHi | Workspace variable | Plane velocity along the y-axis from the perspective of the pilot (high byte) |

yVelocityPLo | Workspace variable | Plane velocity along the y-axis from the perspective of the pilot (low byte) |

yVelocityTop | Workspace variable | Plane velocity in the y-axis from the perspective of the outside world (top byte) |

zControlsHi | Workspace variable | Angular force due to the plane's controls in the z-axis (high byte) |

zControlsLo | Workspace variable | Angular force due to the plane's controls in the z-axis (low byte) |

zControlsScHi | Workspace variable | Scaled angular force due to the plane's controls in the z-axis (high byte) |

zControlsScLo | Workspace variable | Scaled angular force due to the plane's controls in the z-axis (low byte) |

zControlsScTop | Workspace variable | Scaled angular force due to the plane's controls in the z-axis (top byte) |

zDashesVectorHi | Workspace variable | The high byte of the yDashesVector temporary variable |

zDashesVectorLo | Workspace variable | The low byte of the yDashesVector temporary variable |

Zero page | Workspaces | Mainly temporary variables that are used a lot |

zGravityLo | Workspace variable | Low byte of point 253 (z-coordinate) |

zGroupObjectHi | 3D geometry | High byte of the z-coordinate for objects in a group (6 to 9) |

zLiftDragHi | Workspace variable | Linear force due to drag in the z-axis (high byte) |

zLiftDragLo | Workspace variable | Linear force due to drag in the z-axis (low byte) |

zLiftDragScHi | Workspace variable | Scaled linear force due to drag in the z-axis (high byte) |

zLiftDragScLo | Workspace variable | Scaled linear force due to drag in the z-axis (low byte) |

zLiftDragScTop | Workspace variable | Scaled linear force due to drag in the z-axis (top byte) |

zLinearLo | Workspace variable | Low byte of point 252 (z-coordinate) |

zMomentsHi | Workspace variable | Angular force due to airflow over the plane in the z-axis (high byte) |

zMomentsLo | Workspace variable | Angular force due to airflow over the plane in the z-axis (low byte) |

zMomentsScHi | Workspace variable | Scaled angular force due to forces on the plane in the z-axis (high byte) |

zMomentsScLo | Workspace variable | Scaled angular force due to forces on the plane in the z-axis (low byte) |

zMomentsScTop | Workspace variable | Scaled angular force due to forces on the plane in the z-axis (top byte) |

zObjectHi | 3D geometry | High byte of the z-coordinate for an object |

zObjectLo | 3D geometry | Low byte of the z-coordinate for an object |

zObjectPoint | 3D geometry | Scaled z-coordinates of the points that make up objects, relative to the object's anchor point |

zPlaneBot | Workspace variable | The bottom byte of the plane's coordinate (z-axis) |

zPlaneHi | Workspace variable | Plane latitude/z-coordinate (high byte) |

zPlaneLo | Workspace variable | Plane latitude/z-coordinate (low byte) |

zPlaneTop | Workspace variable | The top byte of the plane's location, which is the byte above the high byte in zPlaneHi |

zPointHi | 3D geometry | High byte of the z-coordinate for a point |

zPointLo | Workspace variable | The low byte of the z-coordinate for the point with ID X is at zPointLo,X |

zRotationHi | Workspace variable | Plane rotation angle around the z-axis (high byte) |

zRotationLo | Workspace variable | Plane rotation angle around the z-axis (low byte) |

zSlipMomentHi | Workspace variable | Angular force in the z-axis due to aircraft slip (high byte) |

zSlipMomentLo | Workspace variable | Angular force in the z-axis due to aircraft slip (low byte) |

zSlipMomentScHi | Workspace variable | Scaled angular force in the z-axis due to aircraft slip (high byte) |

zSlipMomentScLo | Workspace variable | Scaled angular force in the z-axis due to aircraft slip (low byte) |

zSlipMomentScTop | Workspace variable | Scaled angular force in the z-axis due to aircraft slip (top byte) |

zTemp1Hi | Workspace variable | The high byte of the zTemp1 temporary variable |

zTemp1Lo | Workspace variable | The low byte of the zTemp1 temporary variable |

zTemp2Hi | Workspace variable | The high byte of the zTemp2 temporary variable |

zTemp2Lo | Workspace variable | The low byte of the zTemp2 temporary variable |

zTemp2Top | Workspace variable | The top byte of the zTemp2 temporary variable |

zTemp3Hi | Workspace variable | The high byte of the zTemp3 temporary variable |

zTemp3Lo | Workspace variable | The low byte of the zTemp3 temporary variable |

zTempPoint1Lo | Workspace variable | Low byte of point 254 (z-coordinate) |

zTempPoint2Lo | Workspace variable | Low byte of point 255 (z-coordinate) |

zTurnHi | Workspace variable | Turn rate around the z-axis (high byte) |

zTurnLo | Workspace variable | Turn rate around the z-axis (low byte) |

zTurnTop | Workspace variable | Turn rate around the z-axis (top byte) |

zVelocityHi | Workspace variable | Plane velocity in the z-axis from the perspective of the outside world (high byte) |

zVelocityLo | Workspace variable | Plane velocity in the z-axis from the perspective of the outside world (low byte) |

zVelocityPHi | Workspace variable | Plane velocity along the z-axis from the perspective of the pilot (high byte) |

zVelocityPLo | Workspace variable | Plane velocity along the a-axis from the perspective of the pilot (low byte) |

zVelocityTop | Workspace variable | Plane velocity in the z-axis from the perspective of the outside world (top byte) |