Skip to navigation

Aviator on the BBC Micro

A-Z index of the source code

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

NameCategoryDescription
Add16x16Bit0MathsAdd two 16-bit numbers that have their signs in bit 0
AddPointToObject3D geometryAdd a point vector to an object's coordinates
AddScaledMathsAdd or subtract a scaled amount to a variable
AddTempToPoint (Part 1 of 2)3D geometryAdd 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 geometryCheck whether the vector addition overflowed and set the point's visibility accordingly
AdjustRotationFlight modelMove the plane and adjust its rotation
AdjustTurnFlight modelAdjust the plane's turn rate
AdjustVelocityFlight modelAdjust the plane's velocity vector
aileronPositionWorkspace variable Aileron position (roll)
alienWorkspace variable Temporary storage, used as a flag to indicate the alien when updating the radar (shares a memory location with the objCount variable)
AlienInAcornsvilleThe ThemeMove an alien towards Acornsville and check whether it has reached it yet (and if so, end the game)
alienObjectIdThe ThemeObject IDs for each of the eight aliens
alienScoreThe ThemeThe scores for killing aliens in the various feeding stages
alienSlotThe ThemeSlots for up to three aliens that are ready to start moving towards the town
alienSpeedWorkspace 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
alienStateThe ThemeThe state of each of the eight aliens
alienStatusThe ThemeStorage for the object status bytes for the four alien objects
alienToMoveThe ThemeThe number of the alien to move towards Acornsville in this iteration of the main loop
altitudeMinutesDashboardThe value of the altimeter's large "minute" hand
ApplyAerodynamics (Part 1 of 3)Flight modelSet up various variables to use in the aerodynamics calculations
ApplyAerodynamics (Part 2 of 3)Flight modelCheck 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 modelCalculate various aerodynamic figures
ApplyBumpyRideFlight modelApply a random amount of roll or bumpiness to the plane
ApplyFlightControlFlight modelCalculate the effects of the primary flight controls (elevator, rudder and ailerons), and implement the "instant centre" feature
ApplyFlightModel (Part 1 of 7)Flight modelApply the flight model to the plane, starting by calculating the effect of gravity and the undercarriage springs
ApplyFlightModel (Part 2 of 7)Flight modelConvert velocity to the plane's perspective and calculate various aerodynamic forces
ApplyFlightModel (Part 3 of 7)Flight modelIf we are near to an exploding alien, apply turbulence
ApplyFlightModel (Part 4 of 7)Flight modelCalculate the dxTurn and xLinear vectors, and the slipRate
ApplyFlightModel (Part 5 of 7)Flight modelCalculate the forces for when we are on the ground
ApplyFlightModel (Part 6 of 7)Flight modelAdjust 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 modelCalculate fuel usage
ApplyTurnAndThrust (Part 1 of 2)Flight modelCalculate the (dxTurn, dyTurn, dzTurn) vector
ApplyTurnAndThrust (Part 2 of 2)Flight modelCalculate the (xLinear, yLinear, zLinear) vector
ArtificialHorizonDashboardVector line calculation for the artificial horizon on indicator 7
axisChangeRateFlight modelStores the amount by which the three axes of movement change when the aileron, elevator or rudder are moved
axisKeyUsageWorkspace variable The following locations are updated when keys are pressed in UpdateFlightModel:
brakesStatusWorkspace variable Brakes status
CheckAlienWeakSpotThe ThemeCheck whether an object is close enough to an alien's weak spot to be hitting it
CheckBridgeAndTownScoringCheck whether we are safely flying under the bridge or down the main street in Acornsville
CheckFlyingSkills (Part 1 of 2)ScoringCheck whether we are performing one of the tests of flying skill
CheckFlyingSkills (Part 2 of 2)ScoringPerform 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 ThemeExtract the alien's feeding stage, ready for the hit calculations in part 2
CheckIfAlienIsHit (Part 2 of 2)The ThemeCheck to see whether the alien has been hit, and if so, initiate the explosion
CheckLineDistanceVisibilityCheck whether a point on a line is within the visible distance for the line
CheckObjDistanceVisibilityCheck whether an object is within the visible distance for that object, along just one axis
CheckPlaneOnRunwayFlight modelCheck whether the plane is over the runway
CheckTimePassedUtility routinesFlag whether 9 centiseconds have passed since the last call
ClearCanopyGraphicsClear the canopy to black, leaving the canopy edges alone
ClearRowsGraphicsClear the specified number of rows on-screen
ClipBestEndOfLineDrawing linesClip a line at the start or end point, depending on which is best
ClipStartOfLine (Part 1 of 5)Drawing linesCheck whether the line is completely off-screen
ClipStartOfLine (Part 2 of 5)Drawing linesWork out the deltas depending on the direction of slope
ClipStartOfLine (Part 3 of 5)Drawing linesWork out the deltas depending on the steepness of slope
ClipStartOfLine (Part 4 of 5)Drawing linesCalculate where to clip the line
ClipStartOfLine (Part 5 of 5)Drawing linesMove the start point to the clipped position and return it
colour1L2RDrawing linesPixel bytes for drawing canopy lines left to right in colour 1
colour1R2LDrawing linesPixel bytes for drawing canopy lines right to left in colour 1
colour1RowDrawing linesPixel bytes for erasing canopy lines in colour 1
colour2L2RDrawing linesPixel bytes for drawing canopy lines left to right in colour 2
colour2R2LDrawing linesPixel bytes for drawing canopy lines right to left in colour 2
colour2RowDrawing linesPixel bytes for erasing canopy lines in colour 2
colourCycleWorkspace variable Determines which of the two canopy screens we are showing, so we can use colour cycling for smooth animation
colourLogicWorkspace variable Determines the logic and bit patterns used to draw the canopy view:
CopyPointToWorkUtility routinesCopy a point from the point tables to the variable workspace
CopyTempToPointUtility routinesSet a specified point to (xTemp1, yTemp1, zTemp1)
CopyWorkToPointUtility routinesCopy a point from the variable workspace to the point tables
CrashFlight modelMake a crashing sound, flash the canopy and start a new game
DefineEnvelopeSoundDefine a sound envelope
DelayUtility routinesDelay for a specified number of loops
dialQuadrantDashboardThe value range of a quadrant in each indicator
disableCursorSetupThe VDU command for disabling the cursor
DisplayScoreScoringPrint the scores on-screen
distanceFromHitThe ThemeThe distance from the alien we just hit, so we can work out whether we get hit by turbulence
DivideScaledMathsDivide a 16-bit number by a scaled 16-bit number
divisionHiMathsDivision lookup table
divisionLoMathsDivision lookup table
dormantAlienScoreThe ThemeThe score for killing a dormant alien
DrawCanopySetupMove code around, clear the edges of the canopy view, draw the canopy edges and rivets, and jump to the main code
DrawCanopyCornersGraphicsDraw the diagonal corners at the top of the canopy
DrawCanopyLine (Part 1 of 9)Drawing linesDraw a line in the canopy view
DrawCanopyLine (Part 2 of 9)Drawing linesModify the line drawing routine for a shallow horizontal slope
DrawCanopyLine (Part 3 of 9)Drawing linesDraw a line as a shallow horizontal slope
DrawCanopyLine (Part 4 of 9)Drawing linesDraw a part of the line, working down the screen
DrawCanopyLine (Part 5 of 9)Drawing linesDraw a part of the line, working up the screen
DrawCanopyLine (Part 6 of 9)Drawing linesDraw a part of the line, working along the screen
DrawCanopyLine (Part 7 of 9)Drawing linesModify the line drawing routine for a steep vertical slope
DrawCanopyLine (Part 8 of 9)Drawing linesDraw a line as a steep vertical slope
DrawCanopyLine (Part 9 of 9)Drawing linesIf the line was clipped, draw a line from the clipped coordinates to the edge of the screen
DrawCanopyViewGraphicsDraw the main view out of the canopy
DrawClippedHorizonDrawing linesSet bit 1 of the line direction in V (for the horizon)
DrawClippedLine (Part 1 of 6)Drawing linesClip a line to fit on-screen, starting with the line deltas
DrawClippedLine (Part 2 of 6)Drawing linesWork out whether the line's start point is on-screen
DrawClippedLine (Part 3 of 6)Drawing linesWork out whether the line's end point is on-screen
DrawClippedLine (Part 4 of 6)Drawing linesCalculate the starting point and direction for our clipped vector line
DrawClippedLine (Part 5 of 6)Drawing linesCalculate the deltas for our clipped vector line
DrawClippedLine (Part 6 of 6)Drawing linesAdd the clipped line to the line buffer and draw it
DrawFuelPixelDashboardDraw or erase a pixel on the fuel gauge on the dashboard
DrawGunSightsGraphicsDraw the canopy corners and the gun sights, if shown
DrawHalfHorizonDrawing linesDraw half of the horizon line
DrawIndicatorBarDrawing linesDraw a vertical bar on indicator 9 (rudder) or 11 (thrust)
DrawIndicatorHandDrawing linesApply min and max limits to an indicator value and draw a hand on the indicator
DrawIndicatorLineDrawing linesDraw a line on indicators 0 to 7, i.e. a dial hand (0-6) or an artificial horizon (7)
DrawJoystickCrossDrawing linesDraw a cross in the joystick position display (indicator 8 or 10)
DrawOrthoLineDrawing linesDraw an orthogonal line (i.e. vertical or horizontal)
DrawRadarBlipDashboardDraw a blip on the radar (runway or alien)
DrawRivetGraphicsDraw a square rivet (2 pixels across, 4 pixels high)
DrawVectorLine (Part 1 of 3)Drawing linesDraw a line: set up pixel bytes and slope variables
DrawVectorLine (Part 2 of 3)Drawing linesCalculate the coordinates of the next pixel as we step along the line by one pixel
DrawVectorLine (Part 3 of 3)Drawing linesPlot a pixel at (I, J)
dxRotationHiWorkspace variable Rate of change of the plane's rotation in the x-axis (high byte)
dxRotationLoWorkspace variable Rate of change of the plane's rotation in the x-axis (low byte)
dxTurnHiWorkspace variable Rate of change of the plane's turn rate in the x-axis (high byte)
dxTurnLoWorkspace variable Rate of change of the plane's turn rate in the x-axis (low byte)
dxTurnTopWorkspace variable Rate of change of the plane's turn rate in the x-axis (top byte)
dxVelocityHiWorkspace variable Rate of change of the plane's velocity in the x-axis (high byte)
dxVelocityLoWorkspace variable Rate of change of the plane's velocity in the x-axis (low byte)
dyRotationHiWorkspace variable Rate of change of the plane's rotation in the y-axis (high byte)
dyRotationLoWorkspace variable Rate of change of the plane's rotation in the y-axis (low byte)
dyTurnHiWorkspace variable Rate of change of the plane's rate turn in the y-axis (high byte)
dyTurnLoWorkspace variable Rate of change of the plane's turn rate in the y-axis (low byte)
dyTurnTopWorkspace variable Rate of change of the plane's turn rate in the y-axis (top byte)
dyVelocityHiWorkspace variable Rate of change of the plane's velocity in the y-axis (high byte)
dyVelocityLoWorkspace variable Rate of change of the plane's velocity in the y-axis (low byte)
dzRotationHiWorkspace variable Rate of change of the plane's rotation in the z-axis (high byte)
dzRotationLoWorkspace variable Rate of change of the plane's rotation in the z-axis (low byte)
dzTurnHiWorkspace variable Rate of change of the plane's rate turn in the z-axis (high byte)
dzTurnLoWorkspace variable Rate of change of the plane's turn rate in the z-axis (low byte)
dzTurnTopWorkspace variable Rate of change of the plane's turn rate in the z-axis (top byte)
dzVelocityHiWorkspace variable Rate of change of the plane's velocity in the z-axis (high byte)
dzVelocityLoWorkspace variable Rate of change of the plane's velocity in the z-axis (low byte)
elevatorPositionWorkspace variable Elevator position (pitch)
engineStatusWorkspace variable Engine status
EntrySetupThe main entry point for the game: move code into lower memory and call it
envelopeDataSoundData for two sound envelopes
EraseCanopyLinesDrawing linesDraw all the lines from a line buffer to erase them
EraseOrthoLineDrawing linesUse 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)
ExplodeAlienThe ThemeExplode an alien, making the alien split apart
explodeFromThe ThemeThe starting point ID for exploding each of the four alien slots
explodeToThe ThemeThe end point ID for exploding each of the four alien slots
feedingStageThe ThemeThe feeding stage of the alien we are currently processing
FillCanopyGraphicsFill the canopy with a specified colour, leaving the canopy edges alone
FillCanopyRowsGraphicsFill multiple screen rows with a particular colour, avoiding the canopy edges
FillUpFuelTankFlight modelFill up the fuel tank by 1/65th of a full tank every four iterations of the main loop
FireGunsThe ThemeCreate the bullet objects and send them on their way
FireGuns-1The ThemeContains an RTS
firingStatusWorkspace variable Firing status
flapsStatusWorkspace variable Flaps status
FlipColoursGraphicsFlip the values of colourCycle and colourLogic to cycle to the next colour state
forceFactorFlight modelThe factors by which the flight forces are multiplied as part of the scaling process
fuelLevelFlight modelThe current fuel level
fuelUsedHiFlight modelThe high byte of the current batch of fuel used
fuelUsedLoFlight modelThe low byte of the current batch of fuel used
GWorkspace variable Temporary storage, used in a number of places
GetAlienWeakSpotThe ThemeCalculate the coordinates of an alien's weak spot
GetHandVectorDashboardVector line calculation for a hand on indicators 0 to 6
GetMomentsFlight modelCalculate the pitching, rolling and yawing moments due to the current pitch, roll and yaw rates
GetMoments-1Flight modelContains an RTS
GetRadarVectorDashboardCalculate the radar line vector for a line (the runway) or a dot (an alien)
GetTrailVectorStepThe ThemeCalculate 1/32 of the vector for a bullet trail
GGWorkspace variable Temporary storage, used in a number of places
groupStart3D geometryThe starting value for each object's group number
gunSightsWorkspace variable Gun sights status
gunSoundCounterWorkspace variable Counter for the number of firing sounds we make when firing our guns (which makes the sound of two shots)
HWorkspace variable Temporary storage, used in a number of places
HHWorkspace variable Temporary storage, used in a number of places
highNibbleMathsLookup table for the high nibble of a value
highScoreHiScoringHigh score (low byte)
highScoreLoScoringHigh score (high byte)
hitObjectIdThe ThemeThe object ID of the alien we just hit (30 to 33)
hitTimerThe ThemeThe time since we hit an alien, so we can time its explosion
IWorkspace variable Temporary storage, used in a number of places
indicator0To6DashboardThe first indicator counter
indicator7To11DashboardThe second indicator counter
IndicatorBDashboardUpdate the brakes indicator ("B")
indicatorBaseDashboardThe base value for each indicator
IndicatorFDashboardUpdate the flaps indicator ("F") and and related variables
indicatorLineIDashboardLine buffer storage for the start x-coordinate for each indicator line (I)
indicatorLineJDashboardLine buffer storage for the start y-coordinate for each indicator line (J)
indicatorLineTDashboardLine buffer storage for the indicator line's |x-delta| (T)
indicatorLineUDashboardLine buffer storage for the indicator line's |y-delta| (U)
indicatorLineVDashboardLine buffer storage for the indicator line's direction (V)
indicatorMinDashboardThe minimum value shown on each indicator
IndicatorTDashboardUpdate the Theme indicator ("T")
IndicatorUDashboardUpdate the undercarriage indicator ("U") and related variables
isObjectWorkspace 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
JWorkspace variable Temporary storage, used in a number of places
joyCoordDashboardTemporary storage
KWorkspace variable Temporary storage, used in a number of places
keyLoggerHiWorkspace variable Key logger (high byte)
keyLoggerLoWorkspace variable Key logger (low byte)
keyTable1KeyboardInternal key numbers of high priority keys that are scanned first
keyTable1HiKeyboardKey logger value (high byte) for key presses in keyTable1
keyTable1LoKeyboardKey logger value (low byte) for key presses in keyTable1
keyTable2KeyboardInternal key numbers of lower priority keys that are scanned second
keyTable2HiKeyboardKey logger value (high byte) for key presses in keyTable2
keyTable2LoKeyboardKey logger value (low byte) for key presses in keyTable2
LWorkspace variable Temporary storage, used in a number of places
landingStatusWorkspace variable The current landing status
lineBuffer1CountWorkspace variable Offset of the last line stored in buffer 1
lineBuffer2CountWorkspace variable Offset of the last line stored in buffer 2
lineBufferGDrawing linesLine buffer storage for the max/min y-coordinate (G)
lineBufferRDrawing linesLine buffer storage for the start x-coordinate (R)
lineBufferSDrawing linesLine buffer storage for the start y-coordinate (S)
lineBufferTDrawing linesLine buffer storage for the line's |x-delta| (T)
lineBufferUWorkspace variable Line buffer storage for the line's |y-delta| (U)
lineBufferVDrawing linesLine buffer storage for the line direction (V)
lineBufferWDrawing linesLine buffer storage for the max/min x-coordinate (W)
lineCounterWorkspace variable Temporary storage, typically used to loop through lines
lineEndPointId3D geometryThe point ID for a line's end point
lineIdWorkspace variable The line ID, used to pass lines to routines
lineStartPointId3D geometryThe point ID for a line's start point
linesToHideWorkspace variable A list of line IDs for lines that are not visible
linesToHideEndWorkspace variable The index of the last entry in the linesToHide list
linesToHidePointerWorkspace variable A pointer into the linesToHide list to keep track of where we have processed up to
linesToShowWorkspace variable A list of line IDs for lines that are visible
linesToShowEndWorkspace variable The index of the first empty entry in the linesToShow list
linesToShowPointerWorkspace variable A pointer into the linesToShow list to keep track of where we have processed up to
loadDashboardSetupThe OS command string for loading the dashboard image
lowNibbleMathsLookup table for the low nibble of a value
MWorkspace variable Temporary storage, used in a number of places
Main variable workspaceWorkspacesThe main block of game variables
MainLoop (Part 1 of 15)Main loopStart the main loop by processing gunfire and bullets
MainLoop (Part 2 of 15)Main loopReset object statuses and related points
MainLoop (Part 3 of 15)Main loopMake the sound of firing, if appropriate
MainLoop (Part 4 of 15)Main loopCheck whether aliens have invaded Acornsville
MainLoop (Part 5 of 15)Main loopUpdate lines, check flying skills, increment main loop counter, update the radar
MainLoop (Part 6 of 15)Main loopCheck whether any aliens have been hit
MainLoop (Part 7 of 15)Main loopProcess the terminate key
MainLoop (Part 8 of 15)Main loopIf we fire the guns on the runway, enable the Theme
MainLoop (Part 9 of 15)Main loopFill up the tank if the engine is switched off, and process the volume keys
MainLoop (Part 10 of 15)Main loopAward points for a successful landing
MainLoop (Part 11 of 15)Main loopProcess engine start and stop
MainLoop (Part 12 of 15)Main loopSpend at least 9 centiseconds processing lines from the linesToHide list
MainLoop (Part 13 of 15)Main loopProcess more lines and update the view out of the canopy
MainLoop (Part 14 of 15)Main loopHandle the score display
MainLoop (Part 15 of 15)Main loopUpdate the status of any new line points
mainLoopCounterMain loopThe main loop counter
MakeEngineSoundSoundMake the engine sound, with the choppiness and pitch affected by thrust and airspeed
MakeSoundSoundMake a sound
MakeSoundEnvelopeSoundEither make a sound or set up an envelope
matrix1HiMathsThe high bytes of matrix 1
matrix1LoMathsThe low bytes of matrix 1
matrix2HiMathsThe high bytes of matrix 2
matrix2LoMathsThe low bytes of matrix 2
matrix3HiMathsThe high bytes of matrix 3
matrix3LoMathsThe low bytes of matrix 3
matrix4HiMathsThe high bytes of matrix 4
matrix4LoMathsThe low bytes of matrix 4
matrixAxisWorkspace variable The axis to be processed by the matrix routines, specifically those that populate the matrices
matrixNumberWorkspace variable The matrix used in matrix operations:
maxCoordWorkspace variable Temporary storage, used to store the maximum start point coordinate when clipping lines
maxLineDistanceVisibilityThe furthest distance at which each line is visible
maxObjDistanceVisibilityThe furthest distance at which each object is visible
ModifyDrawRoutineDrawing linesModify the drawing routines to draw in the correct colour for the current colour cycle
Multiply16x16MathsMultiply two unsigned 16-bit numbers
Multiply16x16Bit0MathsMultiply two 16-bit numbers that have their signs in bit 0
Multiply16x16MixMathsMultiply 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)
Multiply4x16MathsMultiply a 4-bit and a 16-bit number
Multiply8x16MathsMultiply an 8-bit and a 16-bit number
Multiply8x16-2MathsStore X in VV before doing the calculation Multiply8x16-6 Store X in VV and calculate (G W V) = (A Y) * R
Multiply8x16-6MathsStore X in VV and calculate (G W V) = (A Y) * R
Multiply8x8MathsMultiply two unsigned 8-bit numbers
mx1HiWorkspace variable The value of mx1, used when constructing the rotation matrices (high byte)
mx1LoWorkspace variable The value of mx1, used when constructing the rotation matrices (low byte)
mx2HiWorkspace variable The value of mx2, used when constructing the rotation matrices (high byte)
mx2LoWorkspace variable The value of mx2, used when constructing the rotation matrices (low byte)
my1HiWorkspace variable The value of my1, used when constructing the rotation matrices (high byte)
my1LoWorkspace variable The value of my1, used when constructing the rotation matrices (low byte)
my2HiWorkspace variable The value of my2, used when constructing the rotation matrices (high byte)
my2LoWorkspace variable The value of my2, used when constructing the rotation matrices (low byte)
mz1HiWorkspace variable The value of mz1, used when constructing the rotation matrices (high byte)
mz1LoWorkspace variable The value of mz1, used when constructing the rotation matrices (low byte)
mz2HiWorkspace variable The value of mz2, used when constructing the rotation matrices (high byte)
mz2LoWorkspace variable The value of mz2, used when constructing the rotation matrices (low byte)
Negate16BitMathsNegate a 16-bit number
NewGameSetupStart a new game
NextObjectGroup3D geometryCycle to the next object group
NextRandomNumberUtility routinesPoint to the next item in the randomNumbers list
numberOfLines3D geometryThe total number of lines in Aviator's 3D world
objCountWorkspace variable Temporary storage, used as a loop counter in the object group visibility checks (shares a memory location with the alien variable)
objectAnchorPointWorkspace variable Used to store the anchor point of the current object
objectGroup3D geometryThe current group number for object IDs 6, 7, 8 and 9
objectIdWorkspace variable Temporary storage for an object ID (0 to 39)
objectPoints3D geometrySequences of related points that together make up objects
objectStatusWorkspace variable Each object's status byte
onGroundWorkspace variable "On the ground" status
PWorkspace variable Temporary storage, used in a number of places
pleaseWaitTextSetupThe "Please wait" message shown when the game loads
pointCountWorkspace variable Temporary storage, used as a counter in ProcessLine to check the start and end points of the line
pointIdWorkspace variable Temporary storage, used to store the ID of the current point when checking a line's visibility in the ProcessLine routine
pointStatusWorkspace variable Each point's status byte
pointsToAwardWorkspace variable Used to store the points scored from flying skills, so they can be added to the score once the task has been completed
PPWorkspace variable Temporary storage, used in a number of places
pressingTWorkspace 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
pressingTabWorkspace variable Bit 7 determines whether TAB is being pressed
pressingUFBSWorkspace variable Determines whether any of the following keys are being pressed:
previousCompassDashboardStores the value of the compass heading when we draw the runway on the radar, so we can erase the line later
previousListEndWorkspace 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
previousTimeMain loopStores the current time (low byte only), so we can process lines in a timely fashion during the main loop
PrintScoreScoringPrint a score
PrintScoreTextScoringPrint text when showing the scores on-screen
PrintTooLateThe ThemePrint the "TOO LATE!" message at column 6, row 7 on-screen
ProcessHorizonLineVisibilityCalculate coordinates for the horizon's start and end points
ProcessLanding (Part 1 of 7)Flight modelIf this is an emergency landing, make the landing a bumpy one
ProcessLanding (Part 2 of 7)Flight modelIf 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 modelIf we are taxiing, restrict the plane's vertical movement and roll
ProcessLanding (Part 4 of 7)Flight modelIf we are taxiing with the undercarriage up, restrict pitching
ProcessLanding (Part 5 of 7)Flight modelIf we are taxiing with the undercarriage down, restrict pitching and tilt the plane backwards
ProcessLanding (Part 6 of 7)Flight modelIf we are not taxiing, process the landing
ProcessLanding (Part 7 of 7)Flight modelWe have successfully touched down without crashing, so process the effects of landing on the plane
ProcessLine (Part 1 of 7)VisibilityProcess a line, rotating and transforming it to the correct coordinates and calculating its visibility
ProcessLine (Part 2 of 7)VisibilityProcess runway lines
ProcessLine (Part 3 of 7)VisibilityIf 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)VisibilityProcess bullet lines
ProcessLine (Part 5 of 7)VisibilityCalculate the object's coordinates and visibility
ProcessLine (Part 6 of 7)VisibilityCheck the visibility of all the object's points on the stack
ProcessLine (Part 7 of 7)VisibilityCheck distance and z-coordinates and return the final result
ProcessLine-1VisibilityContains an RTS
ProcessLinesToHideVisibilityProcess an unprocessed line from the linesToHide list
ProcessLinesToShowVisibilityProcess the linesToShow list, projecting all the lines onto the screen and moving any that aren't visible to the linesToHide list
ProcessOtherKeysKeyboardApply the undercarriage, brakes, flaps and fire keys
ProcessRunwayLine (Part 1 of 5)VisibilityCalculate coordinates and visibility for a runway line
ProcessRunwayLine (Part 2 of 5)VisibilityCalculate coordinates and visibility for the runway outline
ProcessRunwayLine (Part 3 of 5)VisibilityCalculate visibility for the runway dashes
ProcessRunwayLine (Part 4 of 5)VisibilityConstruct the dashes down the middle of the runway
ProcessRunwayLine (Part 5 of 5)VisibilityClip any portion of the runway outline that's behind us
ProcessVolumeKeysSoundAdjust the volume when the volume keys are pressed
ProjectAxisAngle3D geometryConvert the rotation angles of the plane into coordinates
ProjectPoint (Part 1 of 3)3D geometryProject a point onto the screen (i.e. convert from 3D coordinates to screen coordinates)
ProjectPoint (Part 2 of 3)3D geometryCalculate the screen coordinates of the projected point
ProjectPoint (Part 3 of 3)3D geometryMove the projected coordinates to the centre of the screen and update the point's status byte
propellorStatusWorkspace variable Propellor status
QWorkspace variable Temporary storage, used in a number of places
QQWorkspace variable Temporary storage, used in a number of places
RWorkspace variable Temporary storage, used in a number of places
randomNumbersUtility routinesA list for keeping a list of random numbers
reached512ftWorkspace variable Have we reached 512 feet in altitude since taking off?
ReadADCChannelKeyboardRead the joystick position from one of the ADC channels
ReadJoystickKeyboardRead the joystick axes and fire button and update the aileron, elevator and fire key values accordingly
relatedPointsWorkspace variable Contains a list, from relatedPoints+1 onwards, with the list size in relatedPoints
RemoveScoreScoringRemove the score display from the screen
ResetEngineSoundSoundReset the pitch of the engine sound
ResetLineListsVisibilityReset the line lists at linesToShow and linesToHide
ResetRadarDashboardReset the radar display
ResetVariableUtility routinesSet a 16-bit in the variable workspace to 0
ResetVariablesSetupReset most variables to prepare for a new flight
ResizeFeedingAlienThe ThemeChange the size of an alien so it grows bigger as it feeds
RetractFlapsIfFastFlight modelRetract the flaps if we are going faster than 150 mph
RRWorkspace variable Temporary storage, used in a number of places
rudderPositionWorkspace variable Rudder position (yaw)
SWorkspace variable Temporary storage, used in a number of places
ScaleByAltitudeFlight modelMultiply the high byte of the plane's altitude by a 16-bit number
ScaleByAltitude-1Flight modelContains an RTS
ScaleDown (Part 1 of 4)MathsScale down the results of divisions done using the ScaleUp and DivideScaled routines
ScaleDown (Part 2 of 4)MathsBalance the scale factors for the x- and y-coordinates
ScaleDown (Part 3 of 4)MathsScale the x-coordinate
ScaleDown (Part 4 of 4)MathsScale the y-coordinate
scaleFactorFlight modelScale factors for the flight forces (in signed powers of 2)
ScaleFlightForcesFlight modelScale the flight forces by the relevant scale factors
ScaleSignedMathsScale an indicator value by 4 or 16, retaining the sign and adding sensitivity for smaller values
ScaleUpMathsScale up a 16-bit number until it doesn't fit into 16 bits any more
ScanKeyboardKeyboardScan the keyboard for a specific key
scoreDisplayTimerWorkspace variable Counter for removing the score after displaying it for a fixed amount of time
scoreHiScoringScore (high byte)
ScoreHitPointsScoringAward points for destroying an alien, and remove the alien from its slot and the radar, if required
scoreLoScoringScore (low byte)
ScorePointsScoringIncrease the score and make a beep
scoreTextScoringThe high score text
SetColourToBlackGraphicsSet a logical colour to black
SetColourToWhiteGraphicsSet a logical colour to white
SetEngineFlight modelSet the engine status
SetLogicalColourGraphicsSet a logical colour to a physical colour
SetMatrices3D geometrySet up matrices 1 to 4
SetMatrixEntry3D geometryCalculate a matrix entry
SetMatrixEntry23D geometrySet mWrite = (S R) * mRead >> 16 and (J I) = mRead SetMatrixEntry3 Set mWrite = (J I) * -mRead >> 16 and (S R) = -mRead
SetMatrixEntry33D geometrySet mWrite = (J I) * -mRead >> 16 and (S R) = -mRead
SetObjectCoords (Part 1 of 11)3D geometryCalculate the coordinates for an object's location
SetObjectCoords (Part 2 of 11)3D geometryPre-process the bullets (objects 12, 13, 14 or 15)
SetObjectCoords (Part 3 of 11)3D geometryLogic for checking which objects to pre-process
SetObjectCoords (Part 4 of 11)3D geometryPre-process the object groups (objects 6, 7, 8 or 9)
SetObjectCoords (Part 5 of 11)3D geometryLogic for checking which objects to pre-process
SetObjectCoords (Part 6 of 11)3D geometryPre-process dormant aliens (object group 30)
SetObjectCoords (Part 7 of 11)3D geometryPre-process feeding and flying aliens (objects 31, 32 and 33)
SetObjectCoords (Part 8 of 11)3D geometryProcess the object
SetObjectCoords (Part 9 of 11)3D geometryProcess the next object in the group, if applicable, or return from the subroutine if not
SetObjectCoords (Part 10 of 11)3D geometryProcess the next dormant alien (object group 30)
SetObjectCoords (Part 11 of 11)3D geometryUpdate the object status and return from the subroutine
SetObjectToOrigin3D geometrySet an object's coordinates to (0, 0, 0)
SetObjPointCoords (Part 1 of 2)3D geometryCalculate the coordinate for a point within an object
SetObjPointCoords (Part 2 of 2)3D geometryApply the correct scale factor to the matrix multiplication
SetPoint3D geometrySet a point's coordinates to the value (a, a, a)
SetPointCoords3D geometryCalculate the coordinates for a point
SetPointToOrigin3D geometrySet a point's coordinates to the origin at (0, 0, 0)
SetPointVisibility3D geometrySet the status byte for multiple points to indicate that their coordinates and visibility have been calculated
SetRandomNumberUtility routinesSet the next item in the randomNumbers list to a new random number and update the pointer to point to it
SetupScreenSetupSet up the screen mode and load the dashboard image
shift4LeftMathsLookup table for shifting a byte four places to the left, to extract the low nibble
shift4RightMathsLookup table for shifting a byte four places to the right, to extract the high nibble
showLineWorkspace variable Determines whether a line is visible:
ShowOrHideLineVisibilityProcess a line, working out its visibility and adding it to the linesToShow or linesToHide list
showRunwayDashesWorkspace variable Determines whether the dashes down the middle of the runway are close enough to be visible:
ShowUpsideDownBarDashboardShow or hide the upside down bar in the artificial horizon indicator
Sine16BitMathsCalculate the sine of a 16-bit number
sinHiMathsHigh byte of the sine lookup table
sinLoMathsLow byte of the sine lookup table
skillZoneHiScoringHigh byte of the skill zone coordinates for testing flying skills
skillZoneLoScoringLow byte of the skill zone coordinates for testing flying skills
skillZoneSizeScoringSizes of the skill zones for testing flying skills
slipRateWorkspace variable Slip rate
soundDataSoundOSWORD blocks for making the various game sounds
soundData26SoundThe sound of us making contact with the ground while landing
SpawnAlienThe ThemeIf the Theme is enabled and the current wave does not yet have eight aliens in it, spawn a new alien
SSWorkspace variable Temporary storage, used in a number of places
Stack variablesWorkspacesVariables that share page 1 with the stack
StartGameSetupReset the high score, set up the gunfire sound envelope and start a new game
startStatusWorkspace variable Temporary storage, used to store the point status byte for the start point of a projected line
SwapLinePointsDrawing linesCopy an end point into a start point
TWorkspace variable Temporary storage, used in a number of places
TerminateGameSetupTerminate the current game
themeStatusWorkspace variable Theme status
thrustHiWorkspace variable Thrust (high byte)
thrustLoWorkspace variable Thrust (low byte)
timesTableMathsLookup table for multiplication times tables
ToggleEngineSoundSoundTurn the engine sound on or off
ToggleJoystickKeyboardToggle the joystick setting
tooLateTextThe ThemeThe "TOO LATE!" message shown when the aliens land in Acornsville
TTWorkspace variable Temporary storage, used in a number of places
UWorkspace variable Temporary storage, used in a number of places
ucStatusWorkspace variable Undercarriage status
UpdateAliens (Part 1 of 5)The ThemeUpdate the aliens so they progress through their feeding or attack cycles
UpdateAliens (Part 2 of 5)The ThemeManage 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 ThemeIf 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 ThemeWhen an alien reaches the next feeding stage, double its size
UpdateAliens (Part 5 of 5)The ThemeCheck whether the whole wave has been destroyed, and award points accordingly
UpdateBulletsThe ThemeMove the bullets through the air
UpdateDash7To11DashboardUpdate the next indicator in the range 7 to 11
UpdateDashboardDashboardUpdate 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 modelApply any axis control key presses to the current axis values
UpdateFlightModel (Part 2 of 4)Flight modelApply any throttle key presses to the current thrust value
UpdateFlightModel (Part 3 of 4)Flight modelProcess the undercarriage, brake, flaps and fire keys
UpdateFlightModel (Part 4 of 4)Flight modelSet up matrices, apply the flight model and update the dashboard
UpdateFuelGaugeDashboardUpdate the fuel gauge every 16 iterations of the main loop
UpdateHighScoreScoringIf this is a high score, update the high score
UpdateIndicator (Part 1 of 15)DashboardUpdate a single indicator on the dashboard
UpdateIndicator (Part 2 of 15)DashboardCalculations for the compass (indicator 0)
UpdateIndicator (Part 3 of 15)DashboardCalculations for the airspeed indicator (indicator 1)
UpdateIndicator (Part 4 of 15)DashboardCalculations for the altimeter's small "hour" hand (indicator 2)
UpdateIndicator (Part 5 of 15)DashboardCalculations for the altimeter's "minute" hand (indicator 3)
UpdateIndicator (Part 6 of 15)DashboardLogic for checking which indicator to update
UpdateIndicator (Part 7 of 15)DashboardCalculations for the vertical speed indicator (indicator 4)
UpdateIndicator (Part 8 of 15)DashboardLogic for checking which indicator to update
UpdateIndicator (Part 9 of 15)DashboardCalculations for the turn indicator (indicator 5), the bottom part of the slip-and-turn indicator
UpdateIndicator (Part 10 of 15)DashboardCalculations for the slip indicator (indicator 6), the top part of the slip-and-turn indicator
UpdateIndicator (Part 11 of 15)DashboardCalculations for the artificial horizon (indicator 7)
UpdateIndicator (Part 12 of 15)DashboardLogic for checking which indicator to update
UpdateIndicator (Part 13 of 15)DashboardCalculations for the rudder indicator (indicator 9)
UpdateIndicator (Part 14 of 15)DashboardCalculations for the joystick position display (indicator 8 or 10)
UpdateIndicator (Part 15 of 15)DashboardCalculations for the thrust indicator (indicator 11)
UpdateKeyLoggerKeyboardScan the keyboard for keys in the two key tables and update the key logger
UpdateLinesToShowVisibilityUpdate the linesToShow list, moving any lines that aren't visible into the linesToHide list
UpdateRadarBlipDashboardUpdate a blip on the radar (runway or alien)
UpdateScoreScoringIncrease the score by a specified number of points
UUWorkspace variable Temporary storage, used in a number of places
VWorkspace variable Temporary storage, used in a number of places
VduDrawGraphicsDraw a line using the standard VDU routines
VduMoveGraphicsMove the graphics cursor using the standard VDU routines
VduPlotGraphicsPerform a plot command the standard VDU routines
VduPointGraphicsDraw a point on-screen using the standard VDU routines
VVWorkspace variable Temporary storage, used in a number of places
WWorkspace variable Temporary storage, used in a number of places
WWWorkspace variable Temporary storage, used in a number of places
xControlsHiWorkspace variable Angular force due to the plane's controls in the x-axis (high byte)
xControlsLoWorkspace variable Angular force due to the plane's controls in the x-axis (low byte)
xControlsScHiWorkspace variable Scaled angular force due to the plane's controls in the x-axis (high byte)
xControlsScLoWorkspace variable Scaled angular force due to the plane's controls in the x-axis (low byte)
xControlsScTopWorkspace variable Scaled angular force due to the plane's controls in the x-axis (top byte)
xDashesVectorHiWorkspace variable The high byte of the xDashesVector temporary variable
xDashesVectorLoWorkspace variable The low byte of the xDashesVector temporary variable
xDeltaMaxDashboardThe maximum x-delta for the hand line in each indicator
xGravityHi3D geometryHigh byte of point 253 (x-coordinate)
xGravityLoWorkspace variable Low byte of point 253 (x-coordinate)
xGroupObjectHi3D geometryHigh byte of the x-coordinate for objects in a group (6 to 9)
xJoyCoordDashboardTemporary storage
xLiftDragHiWorkspace variable Linear force due to lift in the x-axis (high byte)
xLiftDragLoWorkspace variable Linear force due to lift in the x-axis (low byte)
xLiftDragScHiWorkspace variable Scaled linear force due to lift in the x-axis (high byte)
xLiftDragScLoWorkspace variable Scaled linear force due to lift in the x-axis (low byte)
xLiftDragScTopWorkspace variable Scaled linear force due to lift in the x-axis (top byte)
xLinearHi3D geometryHigh byte of point 252 (x-coordinate)
xLinearLoWorkspace variable Low byte of point 252 (x-coordinate)
xLookupHiGraphicsLookup table for converting pixel x-coordinate to high byte of screen address
xLookupLoGraphicsLookup table for converting pixel x-coordinate to low byte of screen address
xMomentsHiWorkspace variable Angular force due to airflow over the plane in the x-axis (high byte)
xMomentsLoWorkspace variable Angular force due to airflow over the plane in the x-axis (low byte)
xMomentsScHiWorkspace variable Scaled angular force due to forces on the plane in the x-axis (high byte)
xMomentsScLoWorkspace variable Scaled angular force due to forces on the plane in the x-axis (low byte)
xMomentsScTopWorkspace variable Scaled angular force due to forces on the plane in the x-axis (top byte)
xObjectHi3D geometryHigh byte of the x-coordinate for an object
xObjectLo3D geometryLow byte of the x-coordinate for an object
xObjectPoint3D geometryScaled x-coordinates of the points that make up objects, relative to the object's anchor point
xPlaneBotWorkspace variable The bottom byte of the plane's coordinate (x-axis)
xPlaneHiWorkspace variable Plane longitude/x-coordinate (high byte)
xPlaneLoWorkspace variable Plane longitude/x-coordinate (low byte)
xPlaneTopWorkspace variable The top byte of the plane's location, which is the byte above the high byte in xPlaneHi
xPointHi3D geometryHigh byte of the x-coordinate for a point
xPointLoWorkspace variable The low byte of the x-coordinate for the point with ID X is at xPointLo,X
xRadarBufferDashboardThe x-coordinates of the runway and alien on the radar
xRotationHiWorkspace variable Plane rotation angle around the x-axis (high byte)
xRotationLoWorkspace variable Plane rotation angle around the x-axis (low byte)
xTemp1HiWorkspace variable The high byte of the xTemp1 temporary variable
xTemp1LoWorkspace variable The low byte of the xTemp1 temporary variable
xTemp2HiWorkspace variable The high byte of the xTemp2 temporary variable
xTemp2LoWorkspace variable The low byte of the xTemp2 temporary variable
xTemp2TopWorkspace variable The top byte of the xTemp2 temporary variable
xTemp3HiWorkspace variable The high byte of the xTemp3 temporary variable
xTemp3LoWorkspace variable The low byte of the xTemp3 temporary variable
xTempPoint1Hi3D geometryHigh byte of point 254 (x-coordinate)
xTempPoint1LoWorkspace variable Low byte of point 254 (x-coordinate)
xTempPoint2Hi3D geometryHigh byte of point 255 (x-coordinate)
xTempPoint2LoWorkspace variable Low byte of point 255 (x-coordinate)
xTurnHiWorkspace variable Turn rate around the x-axis (high byte)
xTurnLoWorkspace variable Turn rate around the x-axis (low byte)
xTurnTopWorkspace variable Turn rate around the x-axis (top byte)
xVelocityHiWorkspace variable Plane velocity in the x-axis from the perspective of the outside world (high byte)
xVelocityLoWorkspace variable Plane velocity in the x-axis from the perspective of the outside world (low byte)
xVelocityPHiWorkspace variable Plane velocity along the x-axis from the perspective of the pilot (high byte)
xVelocityPLoWorkspace variable Plane velocity along the x-axis from the perspective of the pilot (low byte)
xVelocityTopWorkspace variable Plane velocity in the x-axis from the perspective of the outside world (top byte)
yControlsHiWorkspace variable Angular force due to the plane's controls in the y-axis (high byte)
yControlsLoWorkspace variable Angular force due to the plane's controls in the y-axis (low byte)
yControlsScHiWorkspace variable Scaled angular force due to the plane's controls in the y-axis (high byte)
yControlsScLoWorkspace variable Scaled angular force due to the plane's controls in the y-axis (low byte)
yControlsScTopWorkspace variable Scaled angular force due to the plane's controls in the y-axis (top byte)
yDashesVectorHiWorkspace variable The high byte of the yDashesVector temporary variable
yDashesVectorLoWorkspace variable The low byte of the yDashesVector temporary variable
yDeltaMaxDashboardThe maximum y-delta for the hand line in each indicator
yFlapsLiftHiWorkspace variable Linear force in the y-axis due to lift from the flaps (high byte)
yFlapsLiftLoWorkspace variable Linear force in the y-axis due to lift from the flaps (low byte)
yFlapsLiftScHiWorkspace variable Scaled linear force in the y-axis due to lift from the flaps (high byte)
yFlapsLiftScLoWorkspace variable Scaled linear force in the y-axis due to lift from the flaps (low byte)
yFlapsLiftScTopWorkspace variable Scaled linear force in the y-axis due to lift from the flaps (top byte)
yGravityHiWorkspace variable High byte of point 253 (y-coordinate)
yGravityLoWorkspace variable Low byte of point 253 (y-coordinate)
yJoyCoordDashboardTemporary storage
yLandingGearWorkspace variable The vertical distance between the cockpit and the lowest part of the plane
yLiftDragHiWorkspace variable Linear force due to side forces in the y-axis (high byte)
yLiftDragLoWorkspace variable Linear force due to side forces in the y-axis (low byte)
yLiftDragScHiWorkspace variable Scaled linear force due to side forces in the y-axis (high byte)
yLiftDragScLoWorkspace variable Scaled linear force due to side forces in the y-axis (low byte)
yLiftDragScTopWorkspace variable Scaled linear force due to side forces in the y-axis (top byte)
yLinearHiWorkspace variable High byte of point 252 (y-coordinate)
yLinearLoWorkspace variable Low byte of point 252 (y-coordinate)
yLookupHiGraphicsLookup table for converting pixel y-coordinate to high byte of screen address
yLookupLoGraphicsLookup table for converting pixel y-coordinate to low byte of screen address
yMomentsHiWorkspace variable Angular force due to airflow over the plane in the y-axis (high byte)
yMomentsLoWorkspace variable Angular force due to airflow over the plane in the y-axis (low byte)
yMomentsScHiWorkspace variable Scaled angular force due to forces on the plane in the y-axis (high byte)
yMomentsScLoWorkspace variable Scaled angular force due to forces on the plane in the y-axis (low byte)
yMomentsScTopWorkspace variable Scaled angular force due to forces on the plane in the y-axis (top byte)
yObjectHi3D geometryHigh byte of the y-coordinate for an object
yObjectLo3D geometryLow byte of the y-coordinate for an object
yObjectPoint3D geometryScaled y-coordinates of the points that make up objects, relative to the object's anchor point
yPlaneBotWorkspace variable The bottom byte of the plane's coordinate (y-axis)
yPlaneHiWorkspace variable Plane altitude/y-coordinate (high byte)
yPlaneLoWorkspace variable Plane altitude/y-coordinate (low byte)
yPlaneTopWorkspace variable The top byte of the plane's location, which is the byte above the high byte in yPlaneHi
yPointHiWorkspace variable The high byte of the y-coordinate for the point with ID X is at yPointHi,X
yPointLoWorkspace variable The low byte of the y-coordinate for the point with ID X is at yPointLo,X
yRadarBufferDashboardThe y-coordinates of the runway and alien on the radar
yRotationHiWorkspace variable Plane rotation angle around the y-axis (high byte)
yRotationLoWorkspace variable Plane rotation angle around the y-axis (low byte)
yTemp1HiWorkspace variable The high byte of the yTemp1 temporary variable
yTemp1LoWorkspace variable The low byte of the yTemp1 temporary variable
yTemp2HiWorkspace variable The high byte of the yTemp2 temporary variable
yTemp2LoWorkspace variable The low byte of the yTemp2 temporary variable
yTemp2TopWorkspace variable The top byte of the yTemp2 temporary variable
yTemp3HiWorkspace variable The high byte of the yTemp3 temporary variable
yTemp3LoWorkspace variable The low byte of the yTemp3 temporary variable
yTempPoint1HiWorkspace variable High byte of point 254 (y-coordinate)
yTempPoint1LoWorkspace variable Low byte of point 254 (y-coordinate)
yTempPoint2HiWorkspace variable High byte of point 255 (y-coordinate)
yTempPoint2LoWorkspace variable Low byte of point 255 (z-coordinate)
yTurnHiWorkspace variable Turn rate around the y-axis (high byte)
yTurnLoWorkspace variable Turn rate around the y-axis (low byte)
yTurnTopWorkspace variable Turn rate around the y-axis (top byte)
yVelocityHiWorkspace variable Plane velocity in the y-axis from the perspective of the outside world (high byte)
yVelocityLoWorkspace variable Plane velocity in the y-axis from the perspective of the outside world (low byte)
yVelocityPHiWorkspace variable Plane velocity along the y-axis from the perspective of the pilot (high byte)
yVelocityPLoWorkspace variable Plane velocity along the y-axis from the perspective of the pilot (low byte)
yVelocityTopWorkspace variable Plane velocity in the y-axis from the perspective of the outside world (top byte)
zControlsHiWorkspace variable Angular force due to the plane's controls in the z-axis (high byte)
zControlsLoWorkspace variable Angular force due to the plane's controls in the z-axis (low byte)
zControlsScHiWorkspace variable Scaled angular force due to the plane's controls in the z-axis (high byte)
zControlsScLoWorkspace variable Scaled angular force due to the plane's controls in the z-axis (low byte)
zControlsScTopWorkspace variable Scaled angular force due to the plane's controls in the z-axis (top byte)
zDashesVectorHiWorkspace variable The high byte of the yDashesVector temporary variable
zDashesVectorLoWorkspace variable The low byte of the yDashesVector temporary variable
Zero pageWorkspacesMainly temporary variables that are used a lot
zGravityLoWorkspace variable Low byte of point 253 (z-coordinate)
zGroupObjectHi3D geometryHigh byte of the z-coordinate for objects in a group (6 to 9)
zLiftDragHiWorkspace variable Linear force due to drag in the z-axis (high byte)
zLiftDragLoWorkspace variable Linear force due to drag in the z-axis (low byte)
zLiftDragScHiWorkspace variable Scaled linear force due to drag in the z-axis (high byte)
zLiftDragScLoWorkspace variable Scaled linear force due to drag in the z-axis (low byte)
zLiftDragScTopWorkspace variable Scaled linear force due to drag in the z-axis (top byte)
zLinearLoWorkspace variable Low byte of point 252 (z-coordinate)
zMomentsHiWorkspace variable Angular force due to airflow over the plane in the z-axis (high byte)
zMomentsLoWorkspace variable Angular force due to airflow over the plane in the z-axis (low byte)
zMomentsScHiWorkspace variable Scaled angular force due to forces on the plane in the z-axis (high byte)
zMomentsScLoWorkspace variable Scaled angular force due to forces on the plane in the z-axis (low byte)
zMomentsScTopWorkspace variable Scaled angular force due to forces on the plane in the z-axis (top byte)
zObjectHi3D geometryHigh byte of the z-coordinate for an object
zObjectLo3D geometryLow byte of the z-coordinate for an object
zObjectPoint3D geometryScaled z-coordinates of the points that make up objects, relative to the object's anchor point
zPlaneBotWorkspace variable The bottom byte of the plane's coordinate (z-axis)
zPlaneHiWorkspace variable Plane latitude/z-coordinate (high byte)
zPlaneLoWorkspace variable Plane latitude/z-coordinate (low byte)
zPlaneTopWorkspace variable The top byte of the plane's location, which is the byte above the high byte in zPlaneHi
zPointHi3D geometryHigh byte of the z-coordinate for a point
zPointLoWorkspace variable The low byte of the z-coordinate for the point with ID X is at zPointLo,X
zRotationHiWorkspace variable Plane rotation angle around the z-axis (high byte)
zRotationLoWorkspace variable Plane rotation angle around the z-axis (low byte)
zSlipMomentHiWorkspace variable Angular force in the z-axis due to aircraft slip (high byte)
zSlipMomentLoWorkspace variable Angular force in the z-axis due to aircraft slip (low byte)
zSlipMomentScHiWorkspace variable Scaled angular force in the z-axis due to aircraft slip (high byte)
zSlipMomentScLoWorkspace variable Scaled angular force in the z-axis due to aircraft slip (low byte)
zSlipMomentScTopWorkspace variable Scaled angular force in the z-axis due to aircraft slip (top byte)
zTemp1HiWorkspace variable The high byte of the zTemp1 temporary variable
zTemp1LoWorkspace variable The low byte of the zTemp1 temporary variable
zTemp2HiWorkspace variable The high byte of the zTemp2 temporary variable
zTemp2LoWorkspace variable The low byte of the zTemp2 temporary variable
zTemp2TopWorkspace variable The top byte of the zTemp2 temporary variable
zTemp3HiWorkspace variable The high byte of the zTemp3 temporary variable
zTemp3LoWorkspace variable The low byte of the zTemp3 temporary variable
zTempPoint1LoWorkspace variable Low byte of point 254 (z-coordinate)
zTempPoint2LoWorkspace variable Low byte of point 255 (z-coordinate)
zTurnHiWorkspace variable Turn rate around the z-axis (high byte)
zTurnLoWorkspace variable Turn rate around the z-axis (low byte)
zTurnTopWorkspace variable Turn rate around the z-axis (top byte)
zVelocityHiWorkspace variable Plane velocity in the z-axis from the perspective of the outside world (high byte)
zVelocityLoWorkspace variable Plane velocity in the z-axis from the perspective of the outside world (low byte)
zVelocityPHiWorkspace variable Plane velocity along the z-axis from the perspective of the pilot (high byte)
zVelocityPLoWorkspace variable Plane velocity along the a-axis from the perspective of the pilot (low byte)
zVelocityTopWorkspace variable Plane velocity in the z-axis from the perspective of the outside world (top byte)