Skip to navigation

Revs on the BBC Micro

A-Z index of the source code

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

NameCategoryDescription
Absolute16BitMaths (Arithmetic)Calculate the absolute value (modulus) of a 16-bit number
Absolute8BitMaths (Arithmetic)Calculate the absolute value (modulus) of an 8-bit number
AddCoordsMaths (Geometry)Add to a specified coordinate variable
AddRacePointsDriversAdd the race points to the driver's total points
AddScaledVectorMaths (Geometry)Add a scaled vector to another vector, one axis at a time
AddSteeringForceDriving modelAdd the steering force to xVelocity or xTyreForceNose
AddTimeToTimerDriversAdd time to the specified timer
AddVectorsMaths (Geometry)Add two three-axis vectors together
AnimateTyresDashboardUpdate screen memory to animate the tyres
ApplyBounceDriving modelApply a bounce to the player's car when it hits the ground
ApplyDeltasDriving modelApply the deltas in the x-axis and z-axis to the player's coordinates
ApplyDrivingModelDriving modelApply the driving model to the player's car
ApplyElevation (Part 1 of 5)Driving modelCalculate changes in the car's elevation
ApplyElevation (Part 2 of 5)Driving modelCalculate the player's heading and sideways flag
ApplyElevation (Part 3 of 5)Driving modelCalculate player's elevation above the track
ApplyElevation (Part 4 of 5)Driving modelCalculate the height of the car above the track
ApplyElevation (Part 5 of 5)Driving modelCalculate the player's 3D y-coordinate and progress speed
ApplyEngineDriving modelApply the effects of the engine
ApplyGrassOrTrackDriving modelApply the effects of driving or braking on grass
ApplyLimitAndSignDriving modelApply a maximum limit and a sign to a 16-bit number
ApplyLimitThrottleDriving modelApply a maximum limit to a 16-bit number, unless the throttle is being applied
ApplySkidForcesDriving modelCalculate the tyre forces when the car is skidding
ApplySpinYawDriving modelCalculate variables based on the spin yaw angle
ApplySteeringForceDriving modelApply steering to xTyreForceNose and zTyreForceNose
ApplySteeringSpeedDriving modelApply steering to the car's speed in xVelocity and zVelocity
ApplyTyreForcesDriving modelCalculate the tyre forces on the car
ApplyTyresAndSkidsDriving modelCalculate the forces on the front or rear tyres and apply skid forces and sound effects where applicable
ApplyVergeJumpDriving modelApply a jump to the player's car when hitting the track verge
ApplyWingBalanceDriving modelApply the effect of the wing settings
arctanPMaths (Geometry)Table for arctan values when calculating pitch angles
arctanYMaths (Geometry)Table for arctan values when calculating yaw angles
AssistSteeringTacticsApply computer assisted steering (CAS) when configured
AssistSteeringKeysTacticsFor keyboard-controlled steering
AwardRacePointsDriversAward points following a race
backgroundColourScreen bufferThe background colour for each track line
backgroundLeftWorkspace variable Details of the verge colour for the left side of the verge edge we are drawing, to use as the track line's background colour
backgroundRightWorkspace variable Details of the verge colour for the right side of the verge edge we are drawing, to use as the track line's background colour
baseSpeedDriversThe base speed for each car, copied from the track data
bestLapMinutesWorkspace variable Minutes of each driver's best lap time, stored in BCD
bestLapSecondsWorkspace variable Seconds of each driver's best lap time, stored in BCD
bestLapTenthsWorkspace variable Tenths of seconds of each driver's best lap time, stored in BCD
blockCounterWorkspace variable A counter for the dash data block we are processing
blockEndHiSetupHigh byte of the end address of blocks moved by the MoveCode routine
blockEndLoSetupLow byte of the end address of blocks moved by the MoveCode routine
blockNumberWorkspace variable The dash data block number for the current edge
blockOffsetWorkspace variable The dash data offset for the current edge
blockStartHiSetupHigh byte of the start address of blocks moved by the MoveCode routine
blockStartLoSetupLow byte of the start address of blocks moved by the MoveCode routine
blockToHiSetupHigh byte of the destination address of blocks moved by the MoveCode routine
blockToLoSetupLow byte of the destination address of blocks moved by the MoveCode routine
bottomTrackLineWorkspace variable The bottom track line for the current object part
BuildCarObjects (Part 1 of 3)3D objectsCalculate the 3D coordinate of the specified car
BuildCarObjects (Part 2 of 3)3D objectsAdd the racing line to the 3D coordinate of the specified car
BuildCarObjects (Part 3 of 3)3D objectsCalculate the screen coordinates of all the objects in the specified car
BuildPlayerCar3D objectsBuild the objects for the player's car
BuildPlayerCar-13D objectsContains an RTS
BuildRoadSign3D objectsCreate an object for the road sign
BuildVisibleCar3D objectsCheck the distance to the specified car and build the car object if it is close enough
bumpyGrassHeightWorkspace variable The height of the bumps when driving over grass, which fluctuates randomly in the range 1 to 7
CalcRevsNoTorqueDriving modelCalculate the value of the rev counter according to the throttle being applied and zero the engine torque
CalcRevsNoTorque-2Driving modelSet clutchEngaged to A before running the routine
CalcSegmentVector (Brands Hatch)Extra tracksCalculate the segment vector for the current segment
CalcSegmentVector (Donington Park)Extra tracksCalculate the segment vector for the current segment
CalcSegmentVector (Nürburgring)Extra tracksCalculate the segment vector for the current segment
CalcSegmentVector (Oulton Park)Extra tracksCalculate the segment vector for the current segment
CalcSegmentVector (Snetterton)Extra tracksCalculate the segment vector for the current segment
CallTrackHookSetupThe track file's hook code
CallTrackHook (Brands Hatch)Extra tracksThe track file's hook code
CallTrackHook (Donington Park)Extra tracksThe track file's hook code
CallTrackHook (Nürburgring)Extra tracksThe track file's hook code
CallTrackHook (Oulton Park)Extra tracksThe track file's hook code
CallTrackHook (Silverstone)Track dataThe track file's hook code
CallTrackHook (Snetterton)Extra tracksThe track file's hook code
carProgressWorkspace variable Lowest byte of each car's progress through the segment it's in
carRacingLineWorkspace variable Each car's position on the track in the x-axis
carSectionSpeedWorkspace variable Set to the driver speed for the next track section, which is taken from the track data and used to set the section's maximum speed for non-player drivers
carSpeedHiWorkspace variable High byte of each car's forward speed
carSpeedLoCar geometryLow byte of each car's forward speed
carStatusWorkspace variable Each car's status byte
carSteeringWorkspace variable Contains the steering to apply to each car
ChangeDirectionCar geometryUpdate the track segment buffer when the player's car spins so it changes the direction in which it is facing along the track
ChangeDirection-1Car geometryContains an RTS
characterDefTextStorage for a character definition when printing characters
CheckDashDataScreen bufferCheck whether a dash data block index is pointing to dash data
CheckForContactCar geometryCheck to see if the object is close enough to the player car to make contact
CheckForContact-2Car geometrySet Y = 37, so we make contact if (L K) <= 37
CheckForCrashCar geometryCheck to see if we have crashed into the fence, and if so, display the fence and make the crash sound
CheckRestartKeysKeyboardIf the restart keys are being pressed, restart the game
CheckVergeOnScreenDrawing the trackCheck whether a verge coordinate is on-screen
ClearTotalRaceTimeDriversClear a specified driver's total race time following the end of an incomplete race
clockMinutesWorkspace variable Minutes for the clock timer
clockSecondsWorkspace variable Seconds for the clock timer
clockTenthsWorkspace variable Tenths of seconds for the clock timer
clutchEngagedWorkspace variable Determines whether the clutch is engaged
collisionDriverWorkspace variable The number of the driver being hit by the player's car
colourDataWorkspace variable Colour data for the current object part
colourPaletteDrawing pixelsThe main colour palette that maps logical colours 0 to 3 to physical colours
colourSchemeWorkspace variable The number of the table colour scheme passed to the SetRowColours routine:
CompareCarSegmentsCar geometryCalculate the distance between two cars, in terms of segments and progress with the current segment
CompareSegments3D objectsCalculate the distance between two objects, in terms of the difference in their segment numbers
competitionStartedDriversA flag to indicate whether or not the competition has started
configAssistWorkspace variable A key has been pressed to toggle computer assisted steering (CAS)
configJoystickWorkspace variable A key has been pressed to set joystick or keyboard
configKeysKeyboardDetails of the configuration settings that are set by the shifted configuration keys
configPauseWorkspace variable A key has been pressed to pause the game
configStopWorkspace variable A key has been pressed that stops the race
configVolumeWorkspace variable A key has been pressed to change the volume
ConvertNumberToBCDMaths (Arithmetic)Convert a number into binary coded decimal (BCD), for printing
CopyDashDataScreen bufferCopy the dash data from the main game code to screen memory, and vice versa
CopySectionDataTrack geometryCopy a 16-bit y-coordinate from the track section data
CopyTyreDashEdgesDashboardFetch the pixel bytes from the right edge of the left tyre and the right edge of the dashboard, and fill to the right of the edge
cosYawAngleHiDriving modelHigh byte of the cosine of the player's yaw angle
cosYawAngleLoDriving modelLow byte of the cosine of the player's yaw angle
crashedIntoFenceCar geometryFlag that records whether we have crashed into the fence
currentPlayerWorkspace variable The number of the current player
currentPositionWorkspace variable The position of the current player
currentPositionBCDWorkspace variable The current race position in BCD
dashData0Screen bufferContains code that gets moved into screen memory
dashData1Screen bufferContains code that gets moved into screen memory
dashData10Screen bufferContains code that gets moved into screen memory
dashData11Screen bufferContains code that gets moved into screen memory
dashData12Screen bufferContains code that gets moved into screen memory
dashData13Screen bufferContains code that gets moved into screen memory
dashData14Screen bufferContains code that gets moved into screen memory
dashData15Screen bufferContains code that gets moved into screen memory
dashData16Screen bufferContains code that gets moved into screen memory
dashData17Screen bufferContains code that gets moved into screen memory
dashData18Screen bufferContains code that gets moved into screen memory
dashData19Screen bufferContains code that gets moved into screen memory
dashData2Screen bufferContains code that gets moved into screen memory
dashData20Screen bufferContains code that gets moved into screen memory
dashData21Screen bufferContains code that gets moved into screen memory
dashData22Screen bufferContains code that gets moved into screen memory
dashData23Screen bufferContains code that gets moved into screen memory
dashData24Screen bufferContains code that gets moved into screen memory
dashData25Screen bufferContains code and part of the dashboard image that gets moved into screen memory
dashData26Screen bufferContains part of the dashboard image that gets moved into screen memory
dashData27Screen bufferContains part of the dashboard image that gets moved into screen memory
dashData28Screen bufferContains part of the dashboard image that gets moved into screen memory
dashData29Screen bufferContains part of the dashboard image that gets moved into screen memory
dashData3Screen bufferContains code that gets moved into screen memory
dashData30Screen bufferContains part of the dashboard image that gets moved into screen memory
dashData31Screen bufferContains part of the dashboard image that gets moved into screen memory
dashData32Screen bufferContains part of the dashboard image that gets moved into screen memory
dashData33Screen bufferContains part of the dashboard image that gets moved into screen memory
dashData34Screen bufferContains part of the dashboard image that gets moved into screen memory
dashData35Screen bufferContains part of the dashboard image that gets moved into screen memory
dashData36Screen bufferContains part of the dashboard image that gets moved into screen memory
dashData37Screen bufferContains part of the dashboard image that gets moved into screen memory
dashData38Screen bufferContains part of the dashboard image that gets moved into screen memory
dashData39Screen bufferContains part of the dashboard image that gets moved into screen memory
dashData4Screen bufferContains code that gets moved into screen memory
dashData40Screen bufferContains part of the dashboard image that gets moved into screen memory
dashData41Screen bufferContains part of the dashboard image that gets moved into screen memory
dashData42Screen bufferContains part of the dashboard image that gets moved into screen memory
dashData5Screen bufferContains code that gets moved into screen memory
dashData6Screen bufferContains code that gets moved into screen memory
dashData7Screen bufferContains code that gets moved into screen memory
dashData8Screen bufferContains code that gets moved into screen memory
dashData9Screen bufferContains code that gets moved into screen memory
dashDataAddressScreen bufferAddresses for copying the first block of dash data between the main game code and screen memory
dashDataOffsetScreen bufferOffset of the dash data within each dash data block
dashRightEdgeDashboardStorage for the first track pixel byte along the right edge of the dashboard
debugSpinningWorkspace variable This variable is never read, but is set to 64 and back to 0 when the car spins past the point where it changes the direction that it is facing along the track
DefineEnvelopeSoundDefine a sound envelope
DelayMain loopDelay for a specified number of loops
directionFacingWorkspace variable The direction that our car is facing
Divide8x8Maths (Arithmetic)Calculate T = 256 * A / V
DRAW_BYTEScreen bufferDraw a pixel byte as part of a horizontal line when drawing the track view
DrawCarInMirrorDashboardDraw a car in a specified segment of one of the wing mirrors, or clear a specified segment
DrawCarInPositionDrawing objectsDraw the car in a specified race position
DrawCarOrSignDrawing objectsDraw a car or sign
DrawCarsDrawing objectsDraw all the car objects, with four objects for the closest car in front of us
DrawCornerMarkersDrawing objectsDraw any visible corner markers
DrawDashboardLineDashboardDraw a hand on the rev counter or a line on the steering wheel
DrawEdgeDrawing objectsDraw an edge, overwriting whatever is already on-screen
DrawFence (Part 2 of 2)Screen bufferDraw the fence that we crash into when running off the track
DrawFence (Part 1 of 2)Screen bufferDraw the fence that we crash into when running off the track
DrawFence-1Screen bufferContains an RTS
DrawGrassLeftDrawing the trackDraw a green byte into the screen buffer in the first dash data block for the edge
DrawGrassRightDrawing the trackDraw a green byte into the screen buffer in the second dash data block for the edge
DrawObjectDrawing objectsDraw an object of a specific type
DrawObjectEdge (Part 1 of 5)Drawing objectsDraw the specified edge of an object part
DrawObjectEdge (Part 2 of 5)Drawing objectsCalculate the screen address for the edge we want to draw
DrawObjectEdge (Part 3 of 5)Drawing objectsConstruct a pixel byte for the edge we want to draw
DrawObjectEdge (Part 4 of 5)Drawing objectsDraw the edge into the screen buffer, merging with any content already in the buffer
DrawObjectEdge (Part 5 of 5)Drawing objectsFill the object if required and loop back for the next edge
DrawObjectEdge-1Drawing objectsContains an RTS
DrawObjectEdgesDrawing objectsDraw all the parts of an object by drawing edges into the screen buffer
DrawRevCounterDashboardDraw the hand on the rev counter
DrawSegmentEdge (Part 1 of 7)Drawing the trackDraw a single segment's edge as part of a whole track verge edge
DrawSegmentEdge (Part 2 of 7)Drawing the trackSet up the edge's gradient
DrawSegmentEdge (Part 3 of 7)Drawing the trackModify the drawing routines according to the edge gradient
DrawSegmentEdge (Part 4 of 7)Drawing the trackSet variables to use when updating the background colour
DrawSegmentEdge (Part 5 of 7)Drawing the trackCalculate the dash data block and screen addresses for the edge
DrawSegmentEdge (Part 6 of 7)Drawing the trackCalculate the dash data block for the edge
DrawSegmentEdge (Part 7 of 7)Drawing the trackSave the angles for the next call to DrawSegmentEdge and return from the subroutine
DrawShallowToLeftDrawing the trackDraw a verge edge with a shallow gradient from right to left
DrawShallowToRightDrawing the trackDraw a verge edge with a shallow gradient from left to right
DrawSteepToLeftDrawing the trackDraw a verge edge with a steep gradient from right to left
DrawSteepToRightDrawing the trackDraw a verge edge with a steep gradient from left to right
DrawTrackDrawing the trackDraw the track into the screen buffer
DrawTrackBytes (Part 1 of 3)Screen bufferDraw the pixel bytes that make up the track view (0 to 15)
DrawTrackBytes (Part 2 of 3)Screen bufferDraw the pixel bytes that make up the track view (16 to 39)
DrawTrackBytes (Part 3 of 3)Screen bufferReturn from the subroutine
DrawTrackLine (Part 2 of 2)Screen bufferDraw a pixel line across the screen in the track view
DrawTrackLine (Part 1 of 2)Screen bufferDraw a pixel line across the screen in the track view, broken up into bytes
DrawTrackView (Part 4 of 4)Screen bufferRevert all the code modifications made by the DrawTrackView routine
DrawTrackView (Part 1 of 4)Screen bufferDraw the top part of the track view using the data in the dash data blocks
DrawTrackView (Part 2 of 4)Screen bufferDraw the part of the track view that fits around the dashboard
DrawTrackView (Part 3 of 4)Screen bufferDraw the part of the track view that fits around the dashboard and tyres
DrawVergeByteLeftDrawing the trackDraw two bytes into the screen buffer in the first and second dash data blocks for the edge
DrawVergeByteRightDrawing the trackDraw two bytes into the screen buffer in the second and third dash data blocks for the edge
DrawVergeEdgeDrawing the trackDraw one of the four track verge edges into the screen buffer
driverGridRowWorkspace variable The grid row for each driver (0 to 9)
driverLapNumberWorkspace variable The current lap number for each driver
driverNames1TextThe first batch of driver names (1 of 5)
driverNames2TextThe second batch of driver names (2 of 5)
driverNames3TextThe third batch of driver names (3 of 5)
driverNames4TextThe fourth batch of driver names (4 of 5)
driverNames5TextThe fifth batch of driver names (5 of 5)
driverPrintedWorkspace variable The number of the driver we just printed in the PrintPositionName routine
driversInOrderWorkspace variable A list of driver numbers in order
driversInOrder2Workspace variable Used to store a copy of the driversInOrder list
driverSpeedWorkspace variable The average speed of this driver in the race (88 to 162)
edgeDistanceHiWorkspace variable High byte of the distance between the player's car and the nearest track edge
edgeDistanceLoWorkspace variable Low byte of the distance between the player's car and the nearest track edge
edgePixelWorkspace variable The current edge, as a one-pixel byte
edgePixelMaskWorkspace variable The pixel mask for the previous edge
edgeSegmentNumberWorkspace variable The number of the segment within the track segment list that is closest to the player's car
edgeSegmentPointerWorkspace variable The index of the segment within the track verge buffer that is closest to the player's car
edgeYawAngleWorkspace variable The yaw angle of the track segment that is closest to the player's car, from the point of view of the car
endChecksTextThe screen address offset of the end of each chequered header line
endMirrorDashboardThe offset from mirrorAddress for the end of each mirror segment
engineStatusWorkspace variable Whether or not the engine is on
engineTorqueWorkspace variable The power being generated by the engine
EntrySetupThe main entry point for the game: move code into upper memory and call it
envelopeDataSoundData for the sound envelope for squealing tyres
EraseRevCounterDashboardErase a line by replacing each pixel in the line with its original contents
fencePixelsGrassScreen bufferPixel bytes for the fence with green grass behind it
fencePixelsSkyScreen bufferPixel bytes for the fence with blue sky behind it
FillAfterObjectDrawing objectsFill the block to the right of an object
FillAfterObjectSupDrawing objectsFill the block to the right of an object
fillDataOffsetDashboardDash data offsets, tweaked to give bottom line values that are compatible with the process of filling blocks to the left
FillInsideObjectDrawing objectsFill the object part from the previous edge to the current edge
FinishRaceMain loopContinue running the race until all the non-player drivers have finished and we have a result
firstLapStartedDriversFlag to keep track of whether we have started the first lap of practice or qualifying
FlushSoundBufferSoundFlush the specified sound buffer
FlushSoundBuffersSoundFlush all four specified sound buffers
frontSegmentIndexWorkspace variable Used to store the index * 3 of the front track segment in the track segment buffer
frontWingSettingDriving modelThe front wing setting, as entered by the player
GWorkspace variable Temporary storage, used in a number of places
gearChangeWorkspace variable Used to store the direction of the gear change
gearChangeKeyWorkspace variable Determines whether or not a gear change key has been pressed
gearNumberWorkspace variable The current gear number
gearNumberTextTextThe character to print on the gear stick for each gear
GetADCChannelKeyboardRead the value of an ADC channel (used to read the joystick)
GetAngleInRadiansMaths (Geometry)Convert a 16-bit angle into radians, restricted to a quarter circle
GetCarInSegmentCar geometryCalculate the player car's position within the current segment
GetColour (Part 1 of 3)Screen bufferCalculate the colour of a specific pixel byte in the screen buffer
GetColour (Part 2 of 3)Screen bufferProcess the left verge
GetColour (Part 3 of 3)Screen bufferProcess the right verge
GetColourSupScreen bufferCalculate the colour of a specific pixel byte in the screen buffer
GetDriverAddressTextGet the address of the specified driver's name
GetDriverNameKeyboardFetch a player's name from the keyboard
GetFirstSegmentTrack geometryGet the track section coordinates and flags from the track data and populate the first track segment
GetMenuOptionKeyboardScan the keyboard for a menu entry number, highlight the choice, show the SPACE bar message and return the choice number
GetNumberFromTextTextConvert a two-digit string into a number
GetNumberInputKeyboardFetch a number between 0 and 40 from the keyboard
GetObjectAngles3D objectsCalculate the object's yaw and pitch angles, and set the object's visibility, scale and type
GetObjectAngles-23D objectsUse xCoord2 for the object's 3D coordinates in the call to GetObjYawAngle
GetObjectDistance3D objectsCalculate the distance between an object and the player's car, for collision purposes
GetObjPitchAngle3D objectsCalculate an object's pitch angle
GetObjPitchAngle-23D objectsUse yPlayerCoord (Y = 0)
GetObjYawAngle (Part 1 of 4)3D objectsCalculate an object's yaw angle
GetObjYawAngle (Part 2 of 4)3D objectsCalculate yaw angle for when |x-delta| > |z-delta|
GetObjYawAngle (Part 3 of 4)3D objectsCalculate yaw angle for when |x-delta| = |z-delta|
GetObjYawAngle (Part 4 of 4)3D objectsCalculate yaw angle for when |x-delta| < |z-delta|
GetObjYawAngle-23D objectsUse xPlayerCoord (Y = 0)
GetPlayerIndexTrack geometrySet the index for the player's segment in the track section buffer to be 32 segments behind the front segment
GetPositionAheadDriversDecrement X to the previous position number (from 19 to 0 and round again), which gives the position ahead of X
GetPositionBehindDriversIncrement X to the next position number (from 0 to 19 and round again), which gives the position behind X
GetRotationMatrix (Part 1 of 5)Maths (Geometry)Calculate the rotation matrix for rotating the player's yaw angle into the global 3D coordinate system
GetRotationMatrix (Part 2 of 5)Maths (Geometry)Calculate sin(H G) for smaller angles
GetRotationMatrix (Part 3 of 5)Maths (Geometry)Calculate sin(H G) for bigger angles
GetRotationMatrix (Part 4 of 5)Maths (Geometry)Loop back to calculate cos instead of sin
GetRotationMatrix (Part 5 of 5)Maths (Geometry)Apply the correct signs to the result
GetScreenAddressDrawing pixelsReturn the screen address for a specified screen coordinate
GetScreenAddress-2Drawing pixelsTreat the x-coordinate as a character column number rather than a pixel coordinate (0 to 39)
GetSectionAngles (Part 1 of 3)Track geometryGet the yaw and pitch angles for the inner and outer track sections
GetSectionAngles (Part 2 of 3)Track geometryCalculate the track section number for this track section entry
GetSectionAngles (Part 3 of 3)Track geometryCalculate the yaw and pitch angles for the track section entry that we want to update
GetSectionAngles-1Track geometryContains an RTS
GetSectionCoordTrack geometryCopy a three-part 16-bit coordinate from the track section data
GetSectionCoordsTrack geometryCopy two three-part 16-bit coordinates from the track section data
GetSectionSteeringTacticsCalculate the optimum steering for each track section
GetSectionYawAngleTrack geometryCalculate the difference in yaw angle between an object and the player
GetSegmentAngles (Part 1 of 3)Track geometryGet the yaw and pitch angles for the inner or outer track segments
GetSegmentAngles (Part 2 of 3)Track geometryProcess a segment that is not visible by trying to process a segment that's one-quarter of the size
GetSegmentAngles (Part 3 of 3)Track geometryProcess a visible segment
GetSegmentDetailsTrack geometryGet the details for the segment in front or behind
GetSegmentSteeringTacticsCalculate the optimum steering to take for the current track segment
GetSegmentVectorTrack geometryFetch a segment vector from the track data file
GetSegmentYawAngleTrack geometryCalculate the difference in yaw angle between a track segment and the player
GetSteeringAssistTacticsFetch the current computer assisted steering (CAS) status and show or hide the CAS indicator
GetTextInputKeyboardFetch a string from the keyboard, padded with spaces if required
GetTrackAndMarkersTrack geometryCalculate the 3D coordinates of the track and corner markers
GetTrackSegment (Part 1 of 3)Track geometrySet up the next track segment in the track segment buffer
GetTrackSegment (Part 2 of 3)Track geometrySet the flags for the new front segment in the track segment buffer
GetTrackSegment (Part 3 of 3)Track geometrySet the inner and outer track coordinates for the new track segment
GetTyreDashEdgeDashboardCopy the pixel bytes along the tyre and dashboard edges so they can be feathered
GetTyreDashEdgesDashboardFetch the pixel bytes from along the edge of the dashboard or tyre and fill the block to the right of the edge appropriately
GetTyreDashEdgeSupDashboardCopy the pixel bytes along the tyre and dashboard edges so they can be feathered
GetTyreForcesDriving modelCalculate the tyre forces due to the throttle or brakes
GetVergeAndMarkers (Part 1 of 4)Track geometryGet the details for a segment's corner markers and verge marks
GetVergeAndMarkers (Part 2 of 4)Track geometryCalculate the segment's verge width and outside verge coordinates
GetVergeAndMarkers (Part 3 of 4)Track geometryProcess the segment's corner markers
GetVergeAndMarkers (Part 4 of 4)Track geometryStore details of the segment's verge marks
GetWingSettingsKeyboardGet the front and rear wing settings from the player
GGWorkspace variable Temporary storage, used in a number of places
HWorkspace variable Temporary storage, used in a number of places
HalveCoordinateMaths (Geometry)Halve a coordinate with three 16-bit axes
handPixelsDashboardThe number of pixels in the longest axis for the rev counter hand at various points in a half-quadrant
headerBackgroundTextBackground colour for printing mode 7 headers
headerForegroundTextForeground colour for printing mode 7 headers
headerSpacesTextNumber of spaces for printing mode 7 headers
HeadToTrackMain LoopGet the wing settings and start a race, practice or qualifying lap
HeadToTrack+2Main LoopCalled with A = %10000000 to start a race, as opposed to practice or a qualifying lap
heightAboveTrackWorkspace variable The car's height above the track, for when it is being dropped from the crane, or jumping from hitting the verge too fast
HHWorkspace variable This byte does not appear to be used
HideAllCarsCar geometrySet all the cars to hidden
HideObject3D objectsSet an object to be hidden
Hook80Percent (Brands Hatch)Extra tracksSet the horizonTrackWidth to 80% of the width of the track on the horizon
Hook80Percent (Donington Park)Extra tracksSet the horizonTrackWidth to 80% of the width of the track on the horizon
Hook80Percent (Nürburgring)Extra tracksSet the horizonTrackWidth to 80% of the width of the track on the horizon
Hook80Percent (Oulton Park)Extra tracksSet the horizonTrackWidth to 80% of the width of the track on the horizon
Hook80Percent (Snetterton)Extra tracksSet the horizonTrackWidth to 80% of the width of the track on the horizon
HookBackground (Donington Park)Extra tracksDo not update the background colour when the track line above is showing green for the leftTrackStart verge
HookBackground (Snetterton)Extra tracksDo not update the background colour when the track line above is showing green for the leftTrackStart verge
HookDataPointers (Brands Hatch)Extra tracksIf the current section is dynamically generated, update the data pointers
HookDataPointers (Donington Park)Extra tracksIf the current section is dynamically generated, update the data pointers
HookDataPointers (Nürburgring)Extra tracksIf the current section is dynamically generated, update the data pointers
HookDataPointers (Oulton Park)Extra tracksIf the current section is dynamically generated, update the data pointers
HookDataPointers (Snetterton)Extra tracksIf the current section is dynamically generated, update the data pointers
HookFieldOfView (Brands Hatch)Extra tracksWhen populating the verge buffer in GetSegmentAngles, don't give up so easily when we get segments outside the field of view
HookFieldOfView (Donington Park)Extra tracksWhen populating the verge buffer in GetSegmentAngles, don't give up so easily when we get segments outside the field of view
HookFieldOfView (Nürburgring)Extra tracksWhen populating the verge buffer in GetSegmentAngles, don't give up so easily when we get segments outside the field of view
HookFieldOfView (Oulton Park)Extra tracksWhen populating the verge buffer in GetSegmentAngles, don't give up so easily when we get segments outside the field of view
HookFieldOfView (Snetterton)Extra tracksWhen populating the verge buffer in GetSegmentAngles, don't give up so easily when we get segments outside the field of view
HookFirstSegment (Brands Hatch)Extra tracksMove to the next to the next segment vector along the track and calculate the segment vector
HookFirstSegment (Donington Park)Extra tracksMove to the next to the next segment vector along the track and calculate the segment vector
HookFirstSegment (Nürburgring)Extra tracksMove to the next to the next segment vector along the track and calculate the segment vector
HookFirstSegment (Oulton Park)Extra tracksMove to the next to the next segment vector along the track and calculate the segment vector
HookFirstSegment (Snetterton)Extra tracksMove to the next to the next segment vector along the track and calculate the segment vector
HookFixHorizon (Brands Hatch)Extra tracksApply the horizon line in A instead of horizonLine
HookFixHorizon (Donington Park)Extra tracksApply the horizon line in A instead of horizonLine
HookFixHorizon (Nürburgring)Extra tracksApply the horizon line in A instead of horizonLine
HookFixHorizon (Oulton Park)Extra tracksApply the horizon line in A instead of horizonLine
HookFixHorizon (Snetterton)Extra tracksApply the horizon line in A instead of horizonLine
HookFlattenHills (Brands Hatch)Extra tracksFlatten any hills in the verge buffer, calculate the hill height and track width, cut objects off at the hill height
HookFlattenHills (Donington Park)Extra tracksFlatten any hills in the verge buffer, calculate the hill height and track width, cut objects off at the hill height
HookFlattenHills (Oulton Park)Extra tracksFlatten any hills in the verge buffer, calculate the hill height and track width, cut objects off at the hill height
HookFlattenHills (Part 2 of 2) (Snetterton)Extra tracksFlatten any hills in the verge buffer, calculate the hill height and track width, cut objects off at the hill height
HookFlattenHills (Part 1 of 2) (Snetterton)Extra tracksFlatten any hills in the verge buffer, calculate the hill height and track width, cut objects off at the hill height
HookFlattenHills (Part 2 of 3) (Nürburgring)Extra tracksFlatten any hills in the verge buffer, calculate the hill height and track width, cut objects off at the hill height
HookFlattenHills (Part 3 of 3) (Nürburgring)Extra tracksFlatten any hills in the verge buffer, calculate the hill height and track width, cut objects off at the hill height
HookFlattenHills (Part 1 of 3) (Nürburgring)Extra tracksFlatten any hills in the verge buffer, calculate the hill height and track width, cut objects off at the hill height
HookFlipAbsolute (Brands Hatch)Extra tracksSet the sign of A according to the direction we are facing along the track
HookFlipAbsolute (Donington Park)Extra tracksSet the sign of A according to the direction we are facing along the track
HookFlipAbsolute (Nürburgring)Extra tracksSet the sign of A according to the direction we are facing along the track
HookFlipAbsolute (Oulton Park)Extra tracksSet the sign of A according to the direction we are facing along the track
HookFlipAbsolute (Snetterton)Extra tracksSet the sign of A according to the direction we are facing along the track
HookForward (Donington Park)Extra tracksMove the player forward by an extra segment when edgeSegmentNumber is 10
HookJoystick (Brands Hatch)Extra tracksApply enhanced joystick steering to specific track sections
HookJoystick (Part 2 of 2) (Nürburgring)Extra tracksApply enhanced joystick steering to specific track sections
HookJoystick (Part 1 of 2) (Nürburgring)Extra tracksApply enhanced joystick steering to specific track sections
HookJoystick (Part 2 of 2) (Oulton Park)Extra tracksApply enhanced joystick steering to specific track sections
HookJoystick (Part 1 of 2) (Oulton Park)Extra tracksApply enhanced joystick steering to specific track sections
HookJoystick (Part 3 of 3) (Donington Park)Extra tracksApply enhanced joystick steering to specific track sections
HookJoystick (Part 1 of 3) (Donington Park)Extra tracksApply enhanced joystick steering to specific track sections
HookJoystick (Part 2 of 3) (Donington Park)Extra tracksApply enhanced joystick steering to specific track sections
HookJoystick (Part 3 of 3) (Snetterton)Extra tracksApply enhanced joystick steering to specific track sections
HookJoystick (Part 1 of 3) (Snetterton)Extra tracksApply enhanced joystick steering to specific track sections
HookJoystick (Part 2 of 3) (Snetterton)Extra tracksApply enhanced joystick steering to specific track sections
HookMoveBack (Brands Hatch)Extra tracksOnly move the player backwards if the player has not yet driven past the segment
HookMoveBack (Donington Park)Extra tracksOnly move the player backwards if the player has not yet driven past the segment
HookMoveBack (Nürburgring)Extra tracksOnly move the player backwards if the player has not yet driven past the segment
HookMoveBack (Oulton Park)Extra tracksOnly move the player backwards if the player has not yet driven past the segment
HookMoveBack (Snetterton)Extra tracksOnly move the player backwards if the player has not yet driven past the segment
HookSectionFrom (Brands Hatch)Extra tracksInitialise and calculate the current segment vector
HookSectionFrom (Donington Park)Extra tracksInitialise and calculate the current segment vector
HookSectionFrom (Nürburgring)Extra tracksInitialise and calculate the current segment vector
HookSectionFrom (Oulton Park)Extra tracksInitialise and calculate the current segment vector
HookSectionFrom (Snetterton)Extra tracksInitialise and calculate the current segment vector
HookSegmentVector (Brands Hatch)Extra tracksIf the current section is dynamically generated, move to the next segment vector, calculate it and store it
HookSegmentVector (Donington Park)Extra tracksIf the current section is dynamically generated, move to the next segment vector, calculate it and store it
HookSegmentVector (Nürburgring)Extra tracksIf the current section is dynamically generated, move to the next segment vector, calculate it and store it
HookSegmentVector (Oulton Park)Extra tracksIf the current section is dynamically generated, move to the next segment vector, calculate it and store it
HookSegmentVector (Snetterton)Extra tracksIf the current section is dynamically generated, move to the next segment vector, calculate it and store it
HookSlopeJump (Brands Hatch)Extra tracksJump the car when driving fast over sloping segments
HookSlopeJump (Donington Park)Extra tracksJump the car when driving fast over sloping segments
HookSlopeJump (Nürburgring)Extra tracksJump the car when driving fast over sloping segments
HookSlopeJump (Oulton Park)Extra tracksJump the car when driving fast over sloping segments
HookSlopeJump (Snetterton)Extra tracksJump the car when driving fast over sloping segments
HookUpdateHorizon (Brands Hatch)Extra tracksOnly update the horizon if we have found fewer than 12 visible segments
HookUpdateHorizon (Donington Park)Extra tracksOnly update the horizon if we have found fewer than 12 visible segments
HookUpdateHorizon (Nürburgring)Extra tracksOnly update the horizon if we have found fewer than 12 visible segments
HookUpdateHorizon (Oulton Park)Extra tracksOnly update the horizon if we have found fewer than 12 visible segments
HookUpdateHorizon (Snetterton)Extra tracksOnly update the horizon if we have found fewer than 12 visible segments
horizonLineWorkspace variable The track line number of the horizon
horizonListIndexWorkspace variable The track section or segment that's on the horizon, given in terms of the index within the track section list (or the track segment list)
horizonTrackWidthTrack geometryThe arc of the track at the horizon (i.e. the track width at the horizon), halved
IWorkspace variable Temporary storage, used in a number of places
IIWorkspace variable Temporary storage, used in a number of places
IncSectionPointersTrack geometryIncrement the track section list pointers following a shuffle
InitialiseDriversDriversInitialise all 20 drivers on the starting grid
irq1AddressScreen modeStores the previous value of IRQ1V before we install our custom IRQ handler
irqCounterScreen modeCounter that gets incremented every time the IRQ routine reaches section 4 of the custom screen
JWorkspace variable Temporary storage, used in a number of places
JJWorkspace variable Temporary storage, used in a number of places
jumpShallowLeftDrawing the trackBranch labels for self-modifying code in the DrawShallowToLeft routine
jumpShallowRightDrawing the trackBranch labels for self-modifying code in the DrawShallowToRight routine
jumpSteepLeftDrawing the trackBranch labels for self-modifying code in the DrawSteepToLeft routine
jumpSteepRightDrawing the trackBranch labels for self-modifying code in the DrawSteepToRight routine
KWorkspace variable Temporary storage, used in a number of places
KillCustomScreenScreen modeDisable the custom screen mode and switch to mode 7
LWorkspace variable Temporary storage, used in a number of places
lapMinutesWorkspace variable Minutes for the lap timer
lapSecondsWorkspace variable Seconds for the lap timer
lapsFromOptionKeyboardTable to convert from the option numbers in the laps menu to the actual number of laps
lapsMenuOptionDriversThe menu option chosen from the laps menu (0 to 2)
lapTenthsWorkspace variable Tenths of seconds for the lap timer
ldaDrawByteScreen bufferLow address bytes of the LDA #0 instructions in the DRAW_BYTE macros, for use when drawing track lines around the dashboard
ldaZeroSetupContains code that's used for modifying the MoveCode routine
leaveTrackTimerWorkspace variable The leave track timer
leftDashMaskDashboardPixel mask for the left edge of the dashboard
leftDashPixelsDashboardPixels along the left edge of the dashboard
leftOfEdgeWorkspace variable The fill colour to the left of the edge we are drawing
leftSegmentWorkspace variable For each track line, the index of the segment within the track segment list for the left verge
leftTrackStartWorkspace variable For each track line, the block number where the track starts (i.e. the left edge of the black track)
leftTyreMaskDashboardPixel mask for the edge of the left tyre
leftTyrePixelsDashboardPixels along the edge of the left tyre
leftVergeStartWorkspace variable For each track line, the block number where the left track verge starts
liftFromTorqueDriving modelThe lift of the front of the car caused by acceleration or braking
lineBufferAddrHiWorkspace variable The low byte of the screen address of each pixel in the line buffer
lineBufferAddrLoWorkspace variable The low byte of the screen address of each pixel in the line buffer
lineBufferPixelWorkspace variable The original screen contents of each pixel in the line buffer
lineBufferSizeWorkspace variable The size of the line buffer
LLWorkspace variable Temporary storage, used in a number of places
lowestPlayerNumberDriversThe number of the player with the lowest player number
lowestTrackLineScreen bufferUsed to prevent objects from being drawn below the horizon line
MWorkspace variable Temporary storage, used in a number of places
Main variable workspaceWorkspacesThe main block of game variables
MainDrivingLoop (Part 1 of 5)Main loopMain driving loop: Switch to the track and start the main loop
MainDrivingLoop (Part 2 of 5)Main loopMain driving loop: The body of the main loop
MainDrivingLoop (Part 3 of 5)Main loopMain driving loop: Process rejoining the race or lap after a crash
MainDrivingLoop (Part 4 of 5)Main loopMain driving loop: Leave the track
MainDrivingLoop (Part 5 of 5)Main loopMain driving loop: Process driving keys, potentially leaving the track, and loop back to part 2
MainLoop (Part 1 of 6)Main loopThe main game loop: practice laps
MainLoop (Part 2 of 6)Main loopThe main game loop: competition setup
MainLoop (Part 3 of 6)Main loopThe main game loop: qualifying laps
MainLoop (Part 4 of 6)Main loopThe main game loop: the competition race
MainLoop (Part 5 of 6)Main loopThe main game loop: the competition race
MainLoop (Part 6 of 6)Main loopThe main game loop: race points and competition results
mainLoopCounterHiMain loopHigh byte of the main loop counter, which increments on each iteration of the main driving loop
mainLoopCounterLoWorkspace variable Low byte of the main loop counter, which increments on each iteration of the main driving loop
MakeDrivingSoundsSoundMake the relevant sounds for the engine and tyres
MakeSoundSoundMake a sound
MakeSound-3SoundMake the sound at the current volume level
MakeSoundEnvelopeSoundEither make a sound or set up an envelope
MapSegmentsToLinesDrawing the trackMap verges in the track segment list to track lines in the track view
markerDataTrack geometryThe segment flags for each of the three corner markers
markerListIndexTrack geometryThe index of the corresponding entry in the track segment list for each of the three corner markers
markerNumberWorkspace variable The marker number that we are drawing in the DrawCornerMarkers routine
markersToDrawWorkspace variable The number of corner markers to draw
menuKeysKeyboardNegative inkey values for the menu keys (SPACE, "1", "2" and "3") for the Acornsoft release
menuKeysSupKeyboardNegative inkey values for the menu keys (SPACE, "1", "2" and "3") for the Superior Software release
mirrorAddressHiDashboardThe high byte of the base screen address of each mirror segment
mirrorAddressLoDashboardThe low byte of the base screen address of each mirror segment
mirrorContentsDashboardContains the size of the car in each mirror segment
mirrorSegmentDashboardLookup table for working out which mirror segment a car should appear in
MMWorkspace variable Temporary storage, used in a number of places
modifyAddressHi (Brands Hatch)Extra tracksHigh byte of the location in the main game code where we modify a two-byte address
modifyAddressHi (Donington Park)Extra tracksHigh byte of the location in the main game code where we modify a two-byte address
modifyAddressHi (Nürburgring)Extra tracksHigh byte of the location in the main game code where we modify a two-byte address
modifyAddressHi (Oulton Park)Extra tracksHigh byte of the location in the main game code where we modify a two-byte address
modifyAddressHi (Snetterton)Extra tracksHigh byte of the location in the main game code where we modify a two-byte address
modifyAddressLo (Brands Hatch)Extra tracksLow byte of the location in the main game code where we modify a two-byte address
modifyAddressLo (Donington Park)Extra tracksLow byte of the location in the main game code where we modify a two-byte address
modifyAddressLo (Nürburgring)Extra tracksLow byte of the location in the main game code where we modify a two-byte address
modifyAddressLo (Oulton Park)Extra tracksLow byte of the location in the main game code where we modify a two-byte address
modifyAddressLo (Snetterton)Extra tracksLow byte of the location in the main game code where we modify a two-byte address
ModifyGameCode (Part 3 of 3) (Brands Hatch)Extra tracksModify the game code to support the extra track data
ModifyGameCode (Part 1 of 3) (Brands Hatch)Extra tracksModify the game code to support the extra track data
ModifyGameCode (Part 2 of 3) (Brands Hatch)Extra tracksModify the game code to support the extra track data
ModifyGameCode (Part 3 of 3) (Nürburgring)Extra tracksModify the game code to support the extra track data
ModifyGameCode (Part 2 of 3) (Nürburgring)Extra tracksModify the game code to support the extra track data
ModifyGameCode (Part 3 of 3) (Oulton Park)Extra tracksModify the game code to support the extra track data
ModifyGameCode (Part 1 of 3) (Oulton Park)Extra tracksModify the game code to support the extra track data
ModifyGameCode (Part 2 of 3) (Oulton Park)Extra tracksModify the game code to support the extra track data
ModifyGameCode (Part 3 of 3) (Snetterton)Extra tracksModify the game code to support the extra track data
ModifyGameCode (Part 1 of 3) (Snetterton)Extra tracksModify the game code to support the extra track data
ModifyGameCode (Part 2 of 3) (Snetterton)Extra tracksModify the game code to support the extra track data
ModifyGameCode (Part 4 of 4) (Donington Park)Extra tracksModify the game code to support the extra track data
ModifyGameCode (Part 3 of 4) (Donington Park)Extra tracksModify the game code to support the extra track data
ModifyGameCode (Part 1 of 4) (Donington Park)Extra tracksModify the game code to support the extra track data
ModifyGameCode (Part 2 of 4) (Donington Park)Extra tracksModify the game code to support the extra track data
ModifyGameCode (Part 1 of 4) (Nürburgring)Extra tracksModify the game code to support the extra track data
MoveAndDrawCarsCar geometryMove the cars around the track and draw any that are visible, up to a maximum of five
MoveCars (Part 1 of 2)Car geometryMove the cars around the track
MoveCars (Part 2 of 2)Car geometryMove the cars forward around the track, and apply steering
MoveCars-1Car geometryContains an RTS
MoveCodeSetupMove and reset various blocks around in memory
MoveHorizonScreen modeMove the position of the horizon palette switch up or down, depending on the current track pitch angle
MoveObjectBack3D objectsMove a specified object backwards along the track by one segment
MoveObjectForward3D objectsMove a specified object forwards along the track by one segment
MovePlayerCar geometryMove the player's car forwards or backwards by one segment
MovePlayerBackCar geometryMove the player's car backwards by one track segment and update the track segment buffer
MovePlayerForwardCar geometryMove the player's car forwards by one track segment and add the segment to the track segment buffer
MovePlayerOnTrackCar geometryUpdate the position of the player's car within the current track segment
MovePlayerSegmentCar geometryMove the player's car in the correct direction
MoveToNextVector (Brands Hatch)Extra tracksMove to the next to the next segment vector along the track and update the pointers
MoveToNextVector (Donington Park)Extra tracksMove to the next to the next segment vector along the track and update the pointers
MoveToNextVector (Nürburgring)Extra tracksMove to the next to the next segment vector along the track and update the pointers
MoveToNextVector (Oulton Park)Extra tracksMove to the next to the next segment vector along the track and update the pointers
MoveToNextVector (Snetterton)Extra tracksMove to the next to the next segment vector along the track and update the pointers
Multiply16x16Maths (Arithmetic)Multiply a sign-magnitude 16-bit number and a signed 16-bit number
Multiply80Percent (Donington Park)Extra tracksCalculate (A T) = 0.80 * A
Multiply8x16Maths (Arithmetic)Multiply an 8-bit and a 16-bit number
Multiply8x16SignedMaths (Arithmetic)Multiply an 8-bit and a 16-bit number and apply a sign to the result
Multiply8x8Maths (Arithmetic)Calculate (A T) = T * U
Multiply8x8+2Maths (Arithmetic)Calculate (A T) = T * U
Multiply8x8Signed (Brands Hatch)Extra tracksMultiply two 8-bit numbers, one of which is signed
Multiply8x8Signed (Donington Park)Extra tracksMultiply two 8-bit numbers, one of which is signed
Multiply8x8Signed (Nürburgring)Extra tracksMultiply two 8-bit numbers, one of which is signed
Multiply8x8Signed (Oulton Park)Extra tracksMultiply two 8-bit numbers, one of which is signed
Multiply8x8Signed (Snetterton)Extra tracksMultiply two 8-bit numbers, one of which is signed
MultiplyBy1Point5Maths (Arithmetic)Multiply a 16-bit signed number by 1.5
MultiplyCoordsMaths (Arithmetic)Multiply a 16-bit coordinate value and a 16-bit factor, optionally tallying or changing the sign of the result
MultiplyCoords+7Maths (Arithmetic)Use the following variables instead of the above: * Y = Offset of the 16-bit signed number to multiply (instead of N)
MultiplyHeightTrack geometryMultiply the height above ground of a specified track segment by A
Negate16BitMaths (Arithmetic)Negate a 16-bit number
Negate16Bit+2Maths (Arithmetic)Set (A T) = -(U T)
newContentHi (Brands Hatch)Extra tracksHigh byte of the two-byte address that we want to poke into the main game code at the modify location
newContentHi (Donington Park)Extra tracksHigh byte of the two-byte address that we want to poke into the main game code at the modify location
newContentHi (Nürburgring)Extra tracksHigh byte of the two-byte address that we want to poke into the main game code at the modify location
newContentHi (Oulton Park)Extra tracksHigh byte of the two-byte address that we want to poke into the main game code at the modify location
newContentHi (Snetterton)Extra tracksHigh byte of the two-byte address that we want to poke into the main game code at the modify location
newContentLo (Brands Hatch)Extra tracksLow byte of the two-byte address that we want to poke into the main game code at the modify location
newContentLo (Donington Park)Extra tracksLow byte of the two-byte address that we want to poke into the main game code at the modify location
newContentLo (Nürburgring)Extra tracksLow byte of the two-byte address that we want to poke into the main game code at the modify location
newContentLo (Oulton Park)Extra tracksLow byte of the two-byte address that we want to poke into the main game code at the modify location
newContentLo (Snetterton)Extra tracksLow byte of the two-byte address that we want to poke into the main game code at the modify location
newSectionFetchedTrack geometryFlag that determines whether a new track section has been fetched
nextBlockNumberWorkspace variable The dash data block number for the next edge
nextEdgeWorkspace variable The next edge that we are drawing as part of an object part (where applicable)
nextEdgeCoordWorkspace variable The x-coordinate for the next edge
NNWorkspace variable Temporary storage, used in a number of places
numberOfLapsWorkspace variable The number of laps in the race (5, 10 or 20)
numberOfPlayersDriversThe number of players
objectBottom3D objectsScaffold measurements for the bottom of each object part
objectColour3D objectsData for the colour of each object part
objectDistanceHiWorkspace variable The high byte of the distance to the current object
objectDistanceLoWorkspace variable The low byte of the distance to the current object
objectIndex3D objectsIndex range of an object's data in the object data tables
objectLeft3D objectsScaffold measurements for the left of each object part
objectNumberWorkspace variable The object number of the four-part car we are drawing
objectPalette3D objectsThe object colour palette that maps logical colours 0 to 3 to physical colours
objectPitchAngleWorkspace variable Each object's pitch angle
objectRight3D objectsScaffold measurements for the right of each object part
objectScaffold3D objectsThe scaffold used to construct each object, in a scalable format
objectSegmentHiWorkspace variable High byte of each object's segment, i.e. its position around on the track
objectSegmentLoWorkspace variable Low byte of each object's segment, i.e. its position around on the track
objectSizeWorkspace variable The size of each of the objects (i.e. the scaled value of scaleUp for the object)
objectStatusWorkspace variable Various status flags for each object
objectTop3D objectsScaffold measurements for the top of each object part
objectTypeWorkspace variable The type of object to draw (0 to 12)
objSectionSegmtWorkspace variable Each object's segment number within the current track section, counting from the start of the section
objTrackSectionWorkspace variable The number of the track section * 8 for each object
objYawAngleHiWorkspace variable High byte of each object's yaw angle
objYawAngleLoWorkspace variable Low byte of each object's yaw angle
oddsOfEngineStartWorkspace variable The chances of the engine starting while revving the engine (the engine will start with a chance of 1 in oddsOfEngineStart)
PWorkspace variable Temporary storage, used in a number of places
paletteSection0Screen modeColour palette for screen section 0 in the custom screen mode (the mode 4 portion)
paletteSection2Screen modeColour palette for screen section 2 in the custom screen mode (part of the mode 5 portion)
paletteSection3Screen modeColour palette for screen section 3 in the custom screen mode (part of the mode 5 portion)
paletteSection4Screen modeColour palette for screen section 4 in the custom screen mode (part of the mode 5 portion)
pastHalfwayWorkspace variable Stores which half of the track the player is in
pixelByteDrawing pixelsA table of pixel bytes with individual pixels set
pixelMaskIndexWorkspace variable The index into the vergePixelMask table for the colour of the verge edge we are drawing in DrawSegmentEdge
pixelMaskNoVergeWorkspace variable Offset within the vergePixelMask table for segments that are too far away to show a verge, i.e. those outside the verge depth of field
pixelMaskVergeWorkspace variable Offset within the vergePixelMask table for segments that are close enough to show a verge, i.e. those within the verge depth of field
pixelsEdgeRightDrawing pixelsPixel byte with all the pixels to the right of position X set, plus pixel X
pixelsToLeftDrawing pixelsPixel byte with all the pixels to the left of position X set
pixelsToRightDrawing pixelsPixel byte with all the pixels to the right of position X set
PlaceCarsOnTrackCar geometryPosition the cars on the track, ready for a race or qualifying lap
playerDriftDriving modelRecords whether the player's car is moving sideways by a significant amount
playerHeadingWorkspace variable The player's yaw angle, relative to the direction of the track, where a heading of 0 means the player is pointing straight along the track
playerMovingWorkspace variable Flag to denote whether the player's car is moving
playerPastSegmentWorkspace variable Determines whether the player has gone past the closest segment to the player (i.e. whether the relative yaw angle of the segment is greater than 90 degrees)
playerPitchAngleWorkspace variable The player's pitch angle
playerSegmentIndexWorkspace variable Used to store the index * 3 of the track segment containing the player's car in the track segment buffer
playerSidewaysCar geometryContains the player's heading, for testing whether the car is pointing sideways
playerSpeedHiWorkspace variable High byte of the speed of the player's car along the track
playerSpeedLoWorkspace variable Low byte of the speed of the player's car along the track
playerYawAngleHiWorkspace variable High byte of the player's yaw angle
playerYawAngleLoWorkspace variable Low byte of the player's yaw angle
pointsForPlaceDriversThe points awarded for the top six places, plus the fastest lap
positionAheadWorkspace variable The number of the position ahead of the current player's position
positionBehindWorkspace variable The number of the position behind the current player's position
positionChangeBCDWorkspace variable The change in BCD for the player's race position
positionNumberWorkspace variable Position numbers to show in the first column of the driver table
PPWorkspace variable Temporary storage, used in a number of places
pressingShiftArrowWorkspace variable Bit 7 is set if we are pressing SHIFT and right arrow (which restarts the game)
prevBlockNumberWorkspace variable The dash data block number for the previous edge
prevDriverSpeed06Workspace variable Bits 0-6 of the previous value of trackDriverSpeed when calculating the optimum steering for a track segment
prevDriverSpeed7Workspace variable The previous value of trackDriverSpeed when calculating the optimum steering for a track segment, only used for accessing bit 7
prevEdgeInByteWorkspace variable Determines whether we are drawing two edges within the same pixel byte in DrawObjectEdge
prevHorizonIndexWorkspace variable The value of horizonListIndex from the previous call to the GetTrackAndMarkers routine
previousSignNumberTrack geometryStores the number of the sign from the previous call to the BuildRoadSign routine
previousSteeringWorkspace variable The previous value of sectionSteering when calculating the optimum steering for a track segment
prevPitchIndexWorkspace variable The index of the pitch angles in the verge buffer for the previous entry in the verge buffer when drawing the verge edges
prevSegmentIndexWorkspace variable Used to store the index * 3 of the previous track segment
prevSegmentOffsetWorkspace variable The segment coordinate offset for the previous segment when adding segments to the track segment list
prevYawIndexWorkspace variable The index of the yaw angles in the verge buffer for the previous entry in the verge buffer when drawing the verge edges
Print234DigitBCDTextPrint a specific driver's accumulated points as a padded two-, three- or four-digit number
Print2DigitBCDTextPrint a binary coded decimal (BCD) number in the specified format
Print2DigitBCD-6TextPrint the number at screen coordinate (X, Y), where X is the character column and Y is the pixel row of the bottom of the character
Print4DigitBCDTextPrint a specific driver's accumulated points as a four-digit number
Print4DigitBCD+3TextDo not print the first two digits (i.e. omit printing A)
PrintBestLapTimeTextPrint the best lap time and the current lap time at the top of the screen
PrintCharacterTextPrint a character on-screen
PrintCharacter-6TextPrint double-width character (this is used to print the double-width number on the gear stick)
PrintDriverNameTextPrint a driver's name
PrintDriverPromptTextPrint the "DRIVER ->" prompt and a driver's name, to show whose turn it is next when playing a multi-player game
PrintDriverTableTextPrint the table of drivers
PrintFirstLineTextPrints a text token on the first text line at the top of the driving screen
PrintFirstLine+2TextPrint the token on the second text line at the top of the driving screen
PrintGearNumberTextPrint the number of the current gear in double-width characters on the gear stick
PrintHeaderTextConfigure and print a double-height header in screen mode 7
PrintHeaderChecksTextPrint chequered lines above and below the header
PrintLapTimeTextPrint the current lap time at the top of the screen
PrintLapTime+2TextFormat the lap time using the format value in A (see PrintTimer for details)
printModeWorkspace variable Determines how the next character is printed on-screen:
PrintNearestDriverTextPrint a driver's name in the "In front" or "Behind" slot in the header
PrintPositionNameTextPrint the name of the driver in a specific position in the driver position list
PrintRaceClassTextPrint the race class
PrintSecondLineTextPrints a text token on the second text line at the top of the driving screen
PrintSecondLineGapTextPrints a text token on the second text line at the top of the driving screen, with an empty gap on the line above
PrintSpacesTextPrint the specified number of spaces
PrintTimerTextPrint the specified timer
PrintTokenTextPrint a recursive token
ProcessContactCar geometryProcess collosions between the player and the other cars
processContactWorkspace variable Another car is close enough to the player's car for us to process car-on-car contact
ProcessDrivingKeys (Part 1 of 6)KeyboardProcess joystick steering
ProcessDrivingKeys (Part 2 of 6)KeyboardProcess keyboard steering
ProcessDrivingKeys (Part 3 of 6)KeyboardProcess joystick brake and throttle
ProcessDrivingKeys (Part 4 of 6)KeyboardProcess keyboard brake and throttle
ProcessDrivingKeys (Part 5 of 6)KeyboardProcess joystick gear change
ProcessDrivingKeys (Part 6 of 6)KeyboardProcess keyboard gear change
ProcessEngineStartDriving modelProcess the key press for starting the engine
ProcessOvertaking (Part 1 of 3)TacticsProcess all cars for overtaking manoeuvres, checking first to see if the car has just finished overtaking the car in front
ProcessOvertaking (Part 2 of 3)TacticsThe car we are processing has not overtaken the car in front of it, so if applicable, we can keep maneouvring into position
ProcessOvertaking (Part 3 of 3)TacticsUpdate the car status (if configured) and loop back for the next car
ProcessShiftedKeysKeyboardCheck for shifted keys (i.e. those that need SHIFT holding down to trigger) and process them accordingly
ProcessTimeMain loopIncrement the timers and the main loop counter
ProtectSetupDecrypt or unprotect the game code (disabled)
PushCarOffTrackCar geometryPush a car off the track and out of the race
QWorkspace variable Temporary storage, used in a number of places
QQWorkspace variable Temporary storage, used in a number of places
qualifyingTimeDriversThe number of minutes of qualifying lap time
qualifyTimeEndingWorkspace variable Determines whether the time warnings have been shown at the end of the qualifying time:
RWorkspace variable Temporary storage, used in a number of places
raceClassDriversThe class of the current race
racePointsHiDriversHigh byte of race points calculated for each position
racePointsLoDriversUsed to store the low byte of the race points being awarded to the driver in race position X
raceStartedWorkspace variable Flag determining whether the race has started
raceStartingWorkspace variable The current stage of the starting lights at the start of the race
rearWingSettingDriving modelThe rear wing setting, as entered by the player
ResetBestLapTimeDriversReset the best lap time to 10:00.0 for a specific driver
ResetBestLapTimesDriversReset the best lap times to 10:00.0 for all drivers
resetSectionListWorkspace variable Controls whether to reset the contents of the track section list
ResetTrackLinesScreen bufferReset the track lines below the horizon in the track view
ResetVariablesMain LoopReset a number of variables for driving, and print the top two text lines
RestartGameKeyboardRestart the game, putting the C flag into bit 7 of pressingShiftArrow
revCountWorkspace variable The current rev count, as shown on the rev counter
revsOnGearChangeWorkspace variable The rev count when the gear was last changed
rightDashMaskDashboardPixel mask for the right edge of the dashboard
rightDashPixelsDashboardPixels along the right edge of the dashboard
rightGrassStartWorkspace variable For each track line, the block number where the grass starts to the right of the track
rightOfEdgeWorkspace variable The fill colour to the right of the edge we are drawing
rightSegmentWorkspace variable For each track line, the index of the segment within the track segment list for the right verge
rightTyreMaskDashboardPixel mask for the edge of the right tyre
rightTyrePixelsDashboardPixels along the edge of the right tyre
rightVergeStartWorkspace variable For each track line, the block number where the right track verge starts
RotateCarToCoordMaths (Geometry)Rotate a vector from the frame of reference of the player's car into the 3D world coordinate system
RotateCoordToCarMaths (Geometry)Rotate a vector from the 3D world coordinate system into the frame of reference of the player's car
RotateVectorMaths (Geometry)Rotate a vector by a rotation matrix
rowColoursTextThree different palettes for displaying even-odd rows in tables
rowCounterWorkspace variable The table row number when printing the driver tables
RRWorkspace variable Temporary storage, used in a number of places
SWorkspace variable Temporary storage, used in a number of places
scaffoldIndex3D objectsIndex of an object's scaffold in the objectScaffold table
Scale16BitMaths (Arithmetic)Scale up a 16-bit value by 2^5
ScaleCarInSegmentCar geometryWork out how far a car is within a segment by scaling the angle in which the car is pointing
scaleDownWorkspace variable The denominator scale factor for scaling an object scaffold (i.e. scale down)
scaledScaffold3D objectsStorage for an object's scaled scaffold
ScaleObjectDrawing objectsScale an object's scaffold by the scale factors in scaleUp and scaleDown
scaleRange3D objectsStorage for scale factors when scaling objects
ScaleTyreForcesDriving modelScale the tyre forces and calculate the combined tyre force on the player
scaleUpWorkspace variable The nominator scale factor for scaling an object scaffold (i.e. scale up)
ScaleWingSettingsDriving modelScale the wing settings and calculate the wing balance, for use in the driving model
ScanKeyboardKeyboardScan the kayboard for a specific key press
ScanKeyboard-1KeyboardContains an RTS
ScreenHandlerScreen modeThe IRQ handler for the custom screen mode
ScreenHandler-3Screen modeJump to the original IRQ handler
screenRegistersScreen modeThe 6845 registers for the custom screen mode
screenSectionScreen modeThe section of the screen that is currently being drawn by the custom screen interrupt handler (0 to 4)
screenTimer1Screen modeThe screen timer offset between the start of section 2 and the start of section 3
screenTimer2Screen modeThe screen timer offset between the start of section 3 and the start of section 4
secondAxisWorkspace variable The number of the second axis to calculate in the GetRotationMatrix routine
sectionBehindWorkspace variable Used to store the number * 8 of the track section behind us when we drive backwards along the track
sectionCounterWorkspace variable A counter for the track section we are processing
sectionListPointerWorkspace variable The index of the current entry in the track section list, as we only update one entry in the list on each iteration of the main driving loop
sectionListSizeWorkspace variable The size of the track section list that's used when calculating the positions of the track verges
sectionListStartWorkspace variable The start index of the track section list that's used when calculating the positions of the track verges
sectionListValidWorkspace variable The index of the first valid entry in the track section list
sectionSteeringTacticsThe optimum steering for each section
segmentCounterWorkspace variable A counter for the track segment we are processing
segmentDirectionWorkspace variable The relative dirction of our car, to use when processing segments in the GetSegmentAngles routine
segmentFlagMaskTrack geometryA mask for extracting bits from the segment flag byte when processing the track verge and corner markers
segmentFlagsWorkspace variable Flags for a track segment in the track segment buffer
segmentListPointerWorkspace variable The index of the current entry in the track segment list
segmentListRightWorkspace variable The index of the last entry in the track segment list for the right side of the track
segmentOffsetWorkspace variable The offset to use for the segment being processed in the GetSegmentAngles routine
segmentSlope (Brands Hatch)Extra tracksThe height above ground of the current track sub-section
segmentSlope (Donington Park)Extra tracksThe height above ground of the current track sub-section
segmentSlope (Nürburgring)Extra tracksThe height above ground of the current track sub-section
segmentSlope (Oulton Park)Extra tracksThe height above ground of the current track sub-section
segmentSlope (Snetterton)Extra tracksThe height above ground of the current track sub-section
segmentSteeringWorkspace variable The carSteering value to steer round the corner for a track segment in the track segment buffer
segmentStepTrack geometryThe number of segments we step over when working backwards through the track segment buffer in GetSegmentAngles
segmentVectorWorkspace variable The segment vector number for a track segment in the track segment buffer
SetBackgroundScreen bufferSet the background colour for any track lines that have not yet had a background colour set
SetCustomScreenScreen modeSwitch to the custom screen mode
SetDriverSpeedDriversSet the speed for a specific driver
SetEngineTorqueDriving modelSet engineTorque and soundRevTarget
SetMarkerScreen bufferInsert a marker value into a dash data block
SetMarker+3Screen bufferUse the value of A passed to the routine SetMarker+6 Use Y and V in place of A and Y
SetMarker+6Screen bufferUse Y and V in place of A and Y
SetObjectDetails3D objectsSet an object's visibility, scale and type
SetObjectStatus3D objectsSet an object's status byte
SetPlayerDriftSupCar geometryRecord player drift, but only if the player is not in the first three segments of a track section
SetPlayerPositionsDriversSet the current player's position, plus the positions behind and in front
SetRevsNoTorqueDriving modelSet the rev counter and zero the engine torque
SetRowColoursTextSet the foreground and background colorus for a table row
SetScreenMode7Screen modeChange to screen mode 7 and hide the cursor
SetSectionPointersTrack geometrySet the track section list pointer to a specific value and update the validity pointer accordingly
SetSegmentVector (Brands Hatch)Extra tracksAdd the yaw angle and height deltas to the yaw angle and height (for curved sections) and calculate the segment vector
SetSegmentVector (Donington Park)Extra tracksAdd the yaw angle and height deltas to the yaw angle and height (for curved sections) and calculate the segment vector
SetSegmentVector (Nürburgring)Extra tracksAdd the yaw angle and height deltas to the yaw angle and height (for curved sections) and calculate the segment vector
SetSegmentVector (Oulton Park)Extra tracksAdd the yaw angle and height deltas to the yaw angle and height (for curved sections) and calculate the segment vector
SetSegmentVector (Snetterton)Extra tracksAdd the yaw angle and height deltas to the yaw angle and height (for curved sections) and calculate the segment vector
setSpeedForDriverWorkspace variable The driver whose speed will be set on the next call to the SetDriverSpeed routine
SetSteeringLimitKeyboardApply a maximum limit to the amount of steering
SetupGameSetupDecrypt or unprotect the game code (disabled)
SetVergeBackgroundDrawing the trackUpdate the background colour table for any verges that overlap the left edge of the screen
shiftedKeysKeyboardNegative inkey values for the configuration keys that are pressed in combination with SHIFT
shortAxisDashboardCode modifications for the DrawDashboardLine line-drawing routine
ShowStartingLightsDashboardShow the lights at the start of the race
ShuffleSectionListTrack geometryShuffle the track section list along by one position
sinYawAngleHiDriving modelHigh byte of the sine of the player's yaw angle
sinYawAngleLoDriving modelLow byte of the sine of the player's yaw angle
SortDriversDriversCreate a sorted list of driver numbers, ordered as specified
soundBufferSoundDetails of each sound channel's buffer status
soundDataSoundOSWORD blocks for making the various game sounds
soundRevCountWorkspace variable The current pitch for the revs sound
soundRevTargetWorkspace variable The target pitch for the revs sound
spinPitchAngleWorkspace variable The amount of pitch angle spin that is being applied to the player's car
SpinTrackSectionTrack geometryApply spin to a section in the track section list
spinYawAngleHiCar geometryHigh byte of the amount of yaw angle spin that is being applied to the player's car
spinYawAngleLoCar geometryLow byte of the amount of yaw angle spin that is being applied to the player's car
spinYawAngleTopCar geometryTop byte of the amount of yaw angle spin that is being applied to the player's car
spinYawDeltaHiDriving modelHigh byte of the change in the spin yaw angle for the player's car
spinYawDeltaLoDriving modelLow byte of the change in the spin yaw angle for the player's car
SquealTyresDriving modelMake the tyres squeal
SSWorkspace variable Temporary storage, used in a number of places
Stack variablesWorkspacesVariables that share page 1 with the stack
staDrawByteScreen bufferLow address bytes of the STA instructions in the DRAW_BYTE macros, for use when drawing track lines around the dashboard
staDrawByteTyreScreen bufferLow address bytes of the STA instructions in the DRAW_BYTE macros, for use when drawing track lines around the tyres
startChecksTextThe screen address offset of the start of each chequered header line
startDialHiDrawing pixelsThe high byte of the screen address of the start of the dial hand on the rev counter
startDialLoDrawing pixelsThe low byte of the screen address of the start of the dial hand on the rev counter
startingStackWorkspace variable The value of the stack pointer when the game starts, so we can restore it when restarting the game
startMirrorDashboardThe offset from mirrorAddress for the start of each mirror segment
steeringHiDashboardThe high byte of the steering wheel position
steeringLoDashboardThe low byte of the steering wheel position
stepAxisDashboardCode modifications for the DrawDashboardLine line-drawing routine
StopDrawingEdgeDrawing the trackStop drawing the current segment's verge edge
subSection (Brands Hatch)Extra tracksThe number of the current sub-section
subSection (Donington Park)Extra tracksThe number of the current sub-section
subSection (Nürburgring)Extra tracksThe number of the current sub-section
subSection (Oulton Park)Extra tracksThe number of the current sub-section
subSection (Snetterton)Extra tracksThe number of the current sub-section
subSectionSegment (Brands Hatch)Extra tracksThe number of the segment within the current sub-section, counting from the start of the sub-section
subSectionSegment (Donington Park)Extra tracksThe number of the segment within the current sub-section, counting from the start of the sub-section
subSectionSegment (Nürburgring)Extra tracksThe number of the segment within the current sub-section, counting from the start of the sub-section
subSectionSegment (Oulton Park)Extra tracksThe number of the segment within the current sub-section, counting from the start of the sub-section
subSectionSegment (Snetterton)Extra tracksThe number of the segment within the current sub-section, counting from the start of the sub-section
SubtractCoordsMaths (Geometry)Subtract from a specified coordinate variable
SwapCodeSetupMove the track data to the right place and run a checksum on it
SwapDriverPositionDriversSwap the position for two drivers (i.e. overtake)
TWorkspace variable Temporary storage, used in a number of places
thisDriverWorkspace variable The number of the car we are currently drawing
thisDriverNumberDrawing objectsThe number of the current driver when drawing cars
thisEdgeWorkspace variable The current edge that we are drawing as part of an object part
thisObjectIndexWorkspace variable The index of the current object part's data as we work our way through an object's constituent parts
thisObjectType3D objectsThe type of object we are currently drawing
thisPitchIndexWorkspace variable The index of the pitch angle in the track segment list for the verge we are processing
thisPositionWorkspace variable The position of the car that we are analysing in the MoveAndDrawCars routine
thisSectionFlagsWorkspace variable The track section flags for the current track section
thisSectionNumberWorkspace variable The number * 8 of the current section number when calculating the track verges
thisSignNumberWorkspace variable The sign number that we are currently building
thisVectorNumberWorkspace variable The number of the segment vector for the current track segment, ready to store in the track segment buffer as segmentVector
thisYawIndexWorkspace variable The index of the yaw angle in the track segment list for the verge we are processing
ThrobRevsNoTorqueDriving modelSet the rev counter after adding a random throb and zero the engine torque
throttleBrakeWorkspace variable The amount of throttle or brake being applied
throttleBrakeStateWorkspace variable Denotes whether the throttle or brake are being applied
timeFromOptionKeyboardTable to convert from the option numbers in the qualifying lap duration menu to the actual number of minutes
timerAdjustWorkspace variable A counter for implementing the clock speed adjustment
token0TextText for recursive token 0
token1TextText for recursive token 1
token10TextText for recursive token 10
token11TextText for recursive token 11
token12TextText for recursive token 12
token13TextText for recursive token 13
token14TextText for recursive token 14
token15TextText for recursive token 15
token16TextText for recursive token 16
token17TextText for recursive token 17
token18TextText for recursive token 18
token19TextText for recursive token 19
token2TextText for recursive token 2
token20TextText for recursive token 20
token21TextText for recursive token 21
token22TextText for recursive token 22
token23TextText for recursive token 23
token24TextText for recursive token 24
token25TextText for recursive token 25
token26TextText for recursive token 26
token27TextText for recursive token 27
token28TextText for recursive token 28
token29TextText for recursive token 29
token3TextText for recursive token 3
token30TextText for recursive token 30
token31TextText for recursive token 31
token32TextText for recursive token 32
token33TextText for recursive token 33
token34TextText for recursive token 34
token35TextText for recursive token 35
token36TextText for recursive token 36
token37TextText for recursive token 37
token38TextText for recursive token 38
token39TextText for recursive token 39
token4TextText for recursive token 4
token40TextText for recursive token 40
token41TextText for recursive token 41
token42TextText for recursive token 42
token43TextText for recursive token 43
token44TextText for recursive token 44
token45TextText for recursive token 45
token46TextText for recursive token 46
token48TextText for recursive token 48
token49TextText for recursive token 49
token5TextText for recursive token 5
token50TextText for recursive token 50
token51TextText for recursive token 51
token52TextText for recursive token 52
token53TextText for recursive token 53
token6TextText for recursive token 6
token7TextText for recursive token 7
token8TextText for recursive token 8
token9TextText for recursive token 9
tokenHiTexthigh byte of the token address lookup table
tokenLoTextLow byte of the token address lookup table
topTrackLineWorkspace variable The top track line for the current object part
totalPointsHiDriversHigh byte of total accumulated points for each driver
totalPointsLoDriversLow byte of total accumulated points for each driver
totalPointsTopWorkspace variable Top byte of total accumulated points for each driver
totalRaceMinutesWorkspace variable Minutes of each driver's total race time, stored in BCD
totalRaceSecondsWorkspace variable Seconds of each driver's total race time, stored in BCD
totalRaceTenthsWorkspace variable Tenths of seconds of each driver's total race time, stored in BCD
Track section data (Part 1 of 2) (Brands Hatch)Extra tracksData for the track sections
Track section data (Part 2 of 2) (Brands Hatch)Extra tracksData for the track sections
Track section data (Part 1 of 2) (Donington Park)Extra tracksData for the track sections
Track section data (Part 2 of 2) (Donington Park)Extra tracksData for the track sections
Track section data (Part 1 of 2) (Nürburgring)Extra tracksData for the track sections
Track section data (Part 2 of 2) (Nürburgring)Extra tracksData for the track sections
Track section data (Part 1 of 2) (Oulton Park)Extra tracksData for the track sections
Track section data (Part 2 of 2) (Oulton Park)Extra tracksData for the track sections
Track section data (Part 1 of 2) (Silverstone)Track dataData for the track sections
Track section data (Part 2 of 2) (Silverstone)Track dataData for the track sections
Track section data (Part 1 of 2) (Snetterton)Extra tracksData for the track sections
Track section data (Part 2 of 2) (Snetterton)Extra tracksData for the track sections
trackBaseSpeedWorkspace variable The base speed for each race class, used when generating the best racing lines and non-player driver speeds
trackBaseSpeed (Brands Hatch)Extra tracksThe base speed for each race class, used when generating the best racing lines and non-player driver speeds
trackBaseSpeed (Donington Park)Extra tracksThe base speed for each race class, used when generating the best racing lines and non-player driver speeds
trackBaseSpeed (Nürburgring)Extra tracksThe base speed for each race class, used when generating the best racing lines and non-player driver speeds
trackBaseSpeed (Oulton Park)Extra tracksThe base speed for each race class, used when generating the best racing lines and non-player driver speeds
trackBaseSpeed (Silverstone)Track dataThe base speed for each race class, used when generating the best racing lines and non-player driver speeds
trackBaseSpeed (Snetterton)Extra tracksThe base speed for each race class, used when generating the best racing lines and non-player driver speeds
trackCarSpacingWorkspace variable The spacing between the cars at the start of a qualifying lap, in segments
trackCarSpacing (Brands Hatch)Extra tracksThe spacing between the cars at the start of a qualifying lap, in segments
trackCarSpacing (Donington Park)Extra tracksThe spacing between the cars at the start of a qualifying lap, in segments
trackCarSpacing (Nürburgring)Extra tracksThe spacing between the cars at the start of a qualifying lap, in segments
trackCarSpacing (Oulton Park)Extra tracksThe spacing between the cars at the start of a qualifying lap, in segments
trackCarSpacing (Silverstone)Track dataThe spacing between the cars at the start of a qualifying lap, in segments
trackCarSpacing (Snetterton)Extra tracksThe spacing between the cars at the start of a qualifying lap, in segments
trackChecksum (Brands Hatch)Extra tracksThe track file's checksum
trackChecksum (Donington Park)Extra tracksThe track file's checksum
trackChecksum (Nürburgring)Extra tracksThe track file's checksum
trackChecksum (Oulton Park)Extra tracksThe track file's checksum
trackChecksum (Silverstone)Track dataThe track file's checksum
trackChecksum (Snetterton)Extra tracksThe track file's checksum
trackDataTrack dataThis is where the track data gets loaded
trackDriverSpeedWorkspace variable The maximum speed for non-player drivers on this section of the track
trackGameName (Brands Hatch)Extra tracksThe game name
trackGameName (Donington Park)Extra tracksThe game name
trackGameName (Nürburgring)Extra tracksThe game name
trackGameName (Oulton Park)Extra tracksThe game name
trackGameName (Silverstone)Track dataThe game name
trackGameName (Snetterton)Extra tracksThe game name
trackGearPowerWorkspace variable The power for each gear
trackGearPower (Brands Hatch)Extra tracksThe power for each gear
trackGearPower (Donington Park)Extra tracksThe power for each gear
trackGearPower (Nürburgring)Extra tracksThe power for each gear
trackGearPower (Oulton Park)Extra tracksThe power for each gear
trackGearPower (Silverstone)Track dataThe power for each gear
trackGearPower (Snetterton)Extra tracksThe power for each gear
trackGearRatioWorkspace variable The gear ratio for each gear
trackGearRatio (Brands Hatch)Extra tracksThe gear ratio for each gear
trackGearRatio (Donington Park)Extra tracksThe gear ratio for each gear
trackGearRatio (Nürburgring)Extra tracksThe gear ratio for each gear
trackGearRatio (Oulton Park)Extra tracksThe gear ratio for each gear
trackGearRatio (Silverstone)Track dataThe gear ratio for each gear
trackGearRatio (Snetterton)Extra tracksThe gear ratio for each gear
trackLapTimeMinWorkspace variable Lap times for adjusting the race class (minutes)
trackLapTimeMin (Brands Hatch)Extra tracksLap times for adjusting the race class (minutes)
trackLapTimeMin (Donington Park)Extra tracksLap times for adjusting the race class (minutes)
trackLapTimeMin (Nürburgring)Extra tracksLap times for adjusting the race class (minutes)
trackLapTimeMin (Oulton Park)Extra tracksLap times for adjusting the race class (minutes)
trackLapTimeMin (Silverstone)Track dataLap times for adjusting the race class (minutes)
trackLapTimeMin (Snetterton)Extra tracksLap times for adjusting the race class (minutes)
trackLapTimeSecWorkspace variable Lap times for adjusting the race class (seconds)
trackLapTimeSec (Brands Hatch)Extra tracksLap times for adjusting the race class (seconds)
trackLapTimeSec (Donington Park)Extra tracksLap times for adjusting the race class (seconds)
trackLapTimeSec (Nürburgring)Extra tracksLap times for adjusting the race class (seconds)
trackLapTimeSec (Oulton Park)Extra tracksLap times for adjusting the race class (seconds)
trackLapTimeSec (Silverstone)Track dataLap times for adjusting the race class (seconds)
trackLapTimeSec (Snetterton)Extra tracksLap times for adjusting the race class (seconds)
trackLengthWorkspace variable The length of the full track in terms of segments
trackLength (Brands Hatch)Track dataThe length of the full track in terms of segments
trackLength (Donington Park)Track dataThe length of the full track in terms of segments
trackLength (Nürburgring)Track dataThe length of the full track in terms of segments
trackLength (Oulton Park)Track dataThe length of the full track in terms of segments
trackLength (Silverstone)Track dataThe length of the full track in terms of segments
trackLength (Snetterton)Track dataThe length of the full track in terms of segments
trackName (Brands Hatch)Extra tracksThe track name
trackName (Donington Park)Extra tracksThe track name
trackName (Nürburgring)Extra tracksThe track name
trackName (Oulton Park)Extra tracksThe track name
trackName (Silverstone)Track dataThe track name
trackName (Snetterton)Extra tracksThe track name
trackRaceSlowdownWorkspace variable Slowdown factor for non-player drivers in the race
trackRaceSlowdown (Brands Hatch)Extra tracksSlowdown factor for non-player drivers in the race
trackRaceSlowdown (Donington Park)Extra tracksSlowdown factor for non-player drivers in the race
trackRaceSlowdown (Nürburgring)Extra tracksSlowdown factor for non-player drivers in the race
trackRaceSlowdown (Oulton Park)Extra tracksSlowdown factor for non-player drivers in the race
trackRaceSlowdown (Silverstone)Track dataSlowdown factor for non-player drivers in the race
trackRaceSlowdown (Snetterton)Extra tracksSlowdown factor for non-player drivers in the race
trackSectionCountWorkspace variable The total number of track sections * 8
trackSectionCount (Brands Hatch)Extra tracksThe total number of track sections * 8
trackSectionCount (Donington Park)Extra tracksThe total number of track sections * 8
trackSectionCount (Nürburgring)Extra tracksThe total number of track sections * 8
trackSectionCount (Oulton Park)Extra tracksThe total number of track sections * 8
trackSectionCount (Silverstone)Track dataThe total number of track sections * 8
trackSectionCount (Snetterton)Extra tracksThe total number of track sections * 8
trackSectionDataWorkspace variable Various data for the track section:
trackSectionFlagWorkspace variable Various flags for the track section:
trackSectionFromWorkspace variable The number of the first segment vector in each section, which enables us to fetch the segment vectors for a given track section
trackSectionSizeWorkspace variable The length of each track section in terms of segments
trackSectionTurnWorkspace variable The number of the segment in the section where non-player drivers should start turning in preparation for the next section
trackSignDataWorkspace variable Base coordinates and object types for 16 road signs
trackSignData (Brands Hatch)Track dataBase coordinates and object types for 16 road signs
trackSignData (Donington Park)Track dataBase coordinates and object types for 16 road signs
trackSignData (Nürburgring)Track dataBase coordinates and object types for 16 road signs
trackSignData (Oulton Park)Track dataBase coordinates and object types for 16 road signs
trackSignData (Silverstone)Track dataBase coordinates and object types for 16 road signs
trackSignData (Snetterton)Track dataBase coordinates and object types for 16 road signs
trackSlope (Brands Hatch)Extra tracksThe slope at the start of each track section
trackSlope (Donington Park)Extra tracksThe slope at the start of each track section
trackSlope (Nürburgring)Extra tracksThe slope at the start of each track section
trackSlope (Oulton Park)Extra tracksThe slope at the start of each track section
trackSlope (Snetterton)Extra tracksThe slope at the start of each track section
trackSlopeDelta (Brands Hatch)Extra tracksThe change in the slope (i.e. the change in the gradient) over the course of each segment for each sub-section of the track
trackSlopeDelta (Donington Park)Extra tracksThe change in the slope (i.e. the change in the gradient) over the course of each segment for each sub-section of the track
trackSlopeDelta (Nürburgring)Extra tracksThe change in the slope (i.e. the change in the gradient) over the course of each segment for each sub-section of the track
trackSlopeDelta (Oulton Park)Extra tracksThe change in the slope (i.e. the change in the gradient) over the course of each segment for each sub-section of the track
trackSlopeDelta (Snetterton)Extra tracksThe change in the slope (i.e. the change in the gradient) over the course of each segment for each sub-section of the track
trackStartLineWorkspace variable The segment number of the starting line
trackStartLine (Brands Hatch)Track dataThe segment number of the starting line
trackStartLine (Donington Park)Track dataThe segment number of the starting line
trackStartLine (Nürburgring)Track dataThe segment number of the starting line
trackStartLine (Oulton Park)Track dataThe segment number of the starting line
trackStartLine (Silverstone)Track dataThe segment number of the starting line
trackStartLine (Snetterton)Track dataThe segment number of the starting line
trackStartPositionWorkspace variable The starting race position of the player during a practice or qualifying lap
trackStartPosition (Brands Hatch)Extra tracksThe starting race position of the player during a practice or qualifying lap
trackStartPosition (Donington Park)Extra tracksThe starting race position of the player during a practice or qualifying lap
trackStartPosition (Nürburgring)Extra tracksThe starting race position of the player during a practice or qualifying lap
trackStartPosition (Oulton Park)Extra tracksThe starting race position of the player during a practice or qualifying lap
trackStartPosition (Silverstone)Track dataThe starting race position of the player during a practice or qualifying lap
trackStartPosition (Snetterton)Extra tracksThe starting race position of the player during a practice or qualifying lap
trackSteeringWorkspace variable The optimum steering for non-player drivers to apply on each track section
trackSteering (Brands Hatch)Extra tracksThe optimum steering for non-player drivers on each track section
trackSteering (Donington Park)Extra tracksThe optimum steering for non-player drivers on each track section
trackSteering (Nürburgring)Extra tracksThe optimum steering for non-player drivers on each track section
trackSteering (Oulton Park)Extra tracksThe optimum steering for non-player drivers on each track section
trackSteering (Silverstone)Track dataThe optimum steering for non-player drivers on each track section
trackSteering (Snetterton)Extra tracksThe optimum steering for non-player drivers on each track section
trackSubConfig (Brands Hatch)Extra tracksConfiguration data for each section that defines the sub-section numbers, and horizon calculations
trackSubConfig (Donington Park)Extra tracksConfiguration data for each section that defines the sub-section numbers, and horizon calculations
trackSubConfig (Nürburgring)Extra tracksConfiguration data for each section that defines the sub-section numbers, and horizon calculations
trackSubConfig (Oulton Park)Extra tracksConfiguration data for each section that defines the sub-section numbers, and horizon calculations
trackSubConfig (Snetterton)Extra tracksConfiguration data for each section that defines the sub-section numbers, and horizon calculations
trackSubCount (Brands Hatch)Extra tracksThe total number of sub-sections in the track
trackSubCount (Donington Park)Extra tracksThe total number of sub-sections in the track
trackSubCount (Nürburgring)Extra tracksThe total number of sub-sections in the track
trackSubCount (Oulton Park)Extra tracksThe total number of sub-sections in the track
trackSubCount (Snetterton)Extra tracksThe total number of sub-sections in the track
trackSubSize (Brands Hatch)Extra tracksThe size of each sub-section, i.e. the number of segments in each sub-section
trackSubSize (Donington Park)Extra tracksThe size of each sub-section, i.e. the number of segments in each sub-section
trackSubSize (Nürburgring)Extra tracksThe size of each sub-section, i.e. the number of segments in each sub-section
trackSubSize (Oulton Park)Extra tracksThe size of each sub-section, i.e. the number of segments in each sub-section
trackSubSize (Snetterton)Extra tracksThe size of each sub-section, i.e. the number of segments in each sub-section
trackTimerAdjustWorkspace variable Adjustment factor for the speed of the timers to allow for fine-tuning of time on a per-track basis
trackTimerAdjust (Brands Hatch)Extra tracksAdjustment factor for the speed of the timers to allow for fine-tuning of time on a per-track basis
trackTimerAdjust (Donington Park)Extra tracksAdjustment factor for the speed of the timers to allow for fine-tuning of time on a per-track basis
trackTimerAdjust (Nürburgring)Extra tracksAdjustment factor for the speed of the timers to allow for fine-tuning of time on a per-track basis
trackTimerAdjust (Oulton Park)Extra tracksAdjustment factor for the speed of the timers to allow for fine-tuning of time on a per-track basis
trackTimerAdjust (Silverstone)Track dataAdjustment factor for the speed of the timers to allow for fine-tuning of time on a per-track basis
trackTimerAdjust (Snetterton)Extra tracksAdjustment factor for the speed of the timers to allow for fine-tuning of time on a per-track basis
trackVectorCountWorkspace variable The total number of segment vectors in the segment vector tables
trackVectorCount (Brands Hatch)Track dataThe total number of segment vectors in the segment vector tables
trackVectorCount (Donington Park)Track dataThe total number of segment vectors in the segment vector tables
trackVectorCount (Nürburgring)Track dataThe total number of segment vectors in the segment vector tables
trackVectorCount (Oulton Park)Track dataThe total number of segment vectors in the segment vector tables
trackVectorCount (Silverstone)Track dataThe total number of segment vectors in the segment vector tables
trackVectorCount (Snetterton)Track dataThe total number of segment vectors in the segment vector tables
trackYawAngleHi (Brands Hatch)Extra tracksThe high byte of the yaw angle of the start of each track section (i.e. the direction of the track at that point)
trackYawAngleHi (Donington Park)Extra tracksThe high byte of the yaw angle of the start of each track section (i.e. the direction of the track at that point)
trackYawAngleHi (Nürburgring)Extra tracksThe high byte of the yaw angle of the start of each track section (i.e. the direction of the track at that point)
trackYawAngleHi (Oulton Park)Extra tracksThe high byte of the yaw angle of the start of each track section (i.e. the direction of the track at that point)
trackYawAngleHi (Snetterton)Extra tracksThe high byte of the yaw angle of the start of each track section (i.e. the direction of the track at that point)
trackYawAngleLo (Brands Hatch)Extra tracksThe low byte of the yaw angle of the start of each track section (i.e. the direction of the track at that point)
trackYawAngleLo (Donington Park)Extra tracksThe low byte of the yaw angle of the start of each track section (i.e. the direction of the track at that point)
trackYawAngleLo (Nürburgring)Extra tracksThe low byte of the yaw angle of the start of each track section (i.e. the direction of the track at that point)
trackYawAngleLo (Oulton Park)Extra tracksThe low byte of the yaw angle of the start of each track section (i.e. the direction of the track at that point)
trackYawAngleLo (Snetterton)Extra tracksThe low byte of the yaw angle of the start of each track section (i.e. the direction of the track at that point)
trackYawDeltaHi (Brands Hatch)Extra tracksHigh byte of the change in yaw angle that we apply to each segment in the specified sub-section when building the track
trackYawDeltaHi (Donington Park)Extra tracksHigh byte of the change in yaw angle that we apply to each segment in the specified sub-section when building the track
trackYawDeltaHi (Nürburgring)Extra tracksHigh byte of the change in yaw angle that we apply to each segment in the specified sub-section when building the track
trackYawDeltaHi (Oulton Park)Extra tracksHigh byte of the change in yaw angle that we apply to each segment in the specified sub-section when building the track
trackYawDeltaHi (Snetterton)Extra tracksHigh byte of the change in yaw angle that we apply to each segment in the specified sub-section when building the track
trackYawDeltaLo (Brands Hatch)Extra tracksLow byte of the change in yaw angle that we apply to each segment in the specified sub-section when building the track
trackYawDeltaLo (Donington Park)Extra tracksLow byte of the change in yaw angle that we apply to each segment in the specified sub-section when building the track
trackYawDeltaLo (Nürburgring)Extra tracksLow byte of the change in yaw angle that we apply to each segment in the specified sub-section when building the track
trackYawDeltaLo (Oulton Park)Extra tracksLow byte of the change in yaw angle that we apply to each segment in the specified sub-section when building the track
trackYawDeltaLo (Snetterton)Extra tracksLow byte of the change in yaw angle that we apply to each segment in the specified sub-section when building the track
TTWorkspace variable Temporary storage, used in a number of places
turnCounterWorkspace variable A counter for the length of turn when calculating the optimum steering for a track segment
TurnPlayerAroundCar geometryTurn the player around and initialise the specified number of track segments in the new direction
tyreEdgeIndexDashboardIndex of the mask and pixel bytes for the tyre edges on a specific track line
tyreRightEdgeWorkspace variable Storage for the first track pixel byte along the right edge of the left tyre
tyreSquealDriving modelA flag to determine whether the front or rear tyres are squealing
tyreTravelDashboardKeeps track of how far we have travelled so we know when to animate the tyres
tyreTreadLeftDashboardTyre tread pattern for the left tyre
tyreTreadRightDashboardTyre tread pattern for the right tyre
UWorkspace variable Temporary storage, used in a number of places
UpdateBackgroundDrawing the trackUpdate the background colour table for when we draw a verge edge off the left edge of the screen
updateBackgroundWorkspace variable Flag to indicate we have changed the background colour of a track line
UpdateCurveVectorTrack geometryMove to the next segment vector along in the direction we are facing, but only for curved track sections
UpdateDashboardDashboardUpdate the rev counter and steering wheel lines on the dashboard
UpdateDataPointers (Brands Hatch)Extra tracksUpdate the sub-section and segment numbers to point to the next segment along the track in the correct direction
UpdateDataPointers (Donington Park)Extra tracksUpdate the sub-section and segment numbers to point to the next segment along the track in the correct direction
UpdateDataPointers (Nürburgring)Extra tracksUpdate the sub-section and segment numbers to point to the next segment along the track in the correct direction
UpdateDataPointers (Oulton Park)Extra tracksUpdate the sub-section and segment numbers to point to the next segment along the track in the correct direction
UpdateDataPointers (Snetterton)Extra tracksUpdate the sub-section and segment numbers to point to the next segment along the track in the correct direction
updateDriverInfoTextFlag that controls whether the driver names are updated in the information block at the top of the screen
updateDrivingInfoWorkspace variable Determines which parts of the driving information should be updated at the top of the screen
UpdateLapsDriversIncrement the lap number and lap times for a specific driver
UpdateLapTimersDriversUpdate the lap timers and display timer-related messages at the top of the screen
updateLapTimesDriversControls whether moving the car forward updates the lap number and lap times
UpdateMirrorsDashboardUpdate the wing mirrors to show any cars behind us
UpdatePositionInfoTextApply any position changes and update the position information at the top of the screen
UpdateVectorNumberTrack geometryMove to the next segment vector along the track in the direction we are facing
UpdateVelocityDriving modelUpdate the player's velocity and spin yaw angle
UUWorkspace variable Temporary storage, used in a number of places
VWorkspace variable Temporary storage, used in a number of places
vectorNumberWorkspace variable The segment vector number when building car objects in the BuildCarObjects routine
vergeBufferEndWorkspace variable The index of the last entry in the track verge buffer for the side of the track we are currently drawing in DrawTrack
vergeColourTrack geometryLookup table for converting bits 0-2 of the segment flag byte into the verge colour scheme
vergeDataLeftTrack geometryData (such as colour) for the verge marks on the left side of the track
vergeDataRightTrack geometryData (such as colour) for the verge marks on the right side of the track
vergeDepthOfFieldWorkspace variable The index into the verge buffer of the furthest verge mark, so for segments further from the player than this point, we do not draw verge marks
vergeEdgeInOutDrawing the trackTable for mapping the verge tables to the outer and inner edges of the verge marks
vergeEdgeRightDrawing the trackContain the four pixel bytes for the verge edge we are drawing, masked to only include the rightmost 4, 3, 2 and 1 pixels
vergeOnScreenEdgeWorkspace variable Determines whether the verge edge we are drawing for the current segment is partially off-screen
vergePixelMaskDrawing the trackPixel bytes for drawing track verge edges
vergeScaleTrack geometryScale factors for the track verge width for different types of verge (larger value = smaller verge width)
vergeTableHiDrawing the trackHigh bytes of the addresses of the four verge tables
vergeTableLoDrawing the trackLow bytes of the addresses of the four verge tables
vergeTopLeftWorkspace variable The track line just above the segment at vergeDepthOfField (i.e. the furthest segment that might contain a verge) when drawing the left verge
vergeTopRightWorkspace variable The track line just above the segment at vergeDepthOfField (i.e. the furthest segment that might contain a verge) when drawing the right verge
vergeTypeWorkspace variable The type of verge that is currently being drawn in the DrawTrack routine:
volumeLevelWorkspace variable The game's volume level
VVWorkspace variable Temporary storage, used in a number of places
WWorkspace variable Temporary storage, used in a number of places
WaitForSpaceKeyboardPrint a prompt, wait for the SPACE key to be released, and wait for SPACE to be pressed
WaitForSpaceReturnKeyboardPrint a prompt, wait for the SPACE key to be released, and wait for either SPACE or RETURN to be pressed
wheelPixelsDashboardThe number of pixels in the longest axis for the steering wheel line at various points in a quadrant
wingBalanceDriving modelValue used in the driving model when calculating the effect of the two wing settings
wingForceDriving modelThe downward force from the front and rear wings
wingForce95Driving model95% of the downward force from the front and rear wings
wingForceGrassDriving modelThe base downward force from the weight of the car when on grass, to which the downward force from the wings is added
wingForceTrackDriving modelThe base downward force from the weight of the car when on the track, to which the downward force from the wings is added
wingScaleFactorDriving modelScale factors for the wing settings
wingSettingDriving modelContains the scaled wing settings
WWWorkspace variable Temporary storage, used in a number of places
xAccelerationHiDriving modelHigh byte of the x-coordinate of the change in velocity of the player's car in terms of 3D world coordinates
xAccelerationLoDriving modelLow byte of the x-coordinate of the change in velocity of the player's car in terms of 3D world coordinates
xCoord1HiWorkspace variable The high byte of the x-coordinate of the temporary coordinate variable (xCoord1, yCoord1, zCoord1)
xCoord1LoWorkspace variable The low byte of the x-coordinate of the temporary coordinate variable (xCoord1, yCoord1, zCoord1)
xCoord2HiWorkspace variable The high byte of the x-coordinate of the temporary coordinate variable (xCoord2, yCoord2, zCoord2)
xCoord2LoWorkspace variable The low byte of the x-coordinate of the temporary coordinate variable (xCoord2, yCoord2, zCoord2)
xCursorTextThe cursor's x-coordinate, which can either be a pixel coordinate or a character row
xHeaderTextColumn number for printing mode 7 headers
xHelmetCoordHiWorkspace variable High byte of the x-coordinate of the body/helmet object in the four-object car
xHelmetCoordLoWorkspace variable Low byte of the x-coordinate of the body/helmet object in the four-object car
xMarkerHiTrack geometryHigh byte of the x-axis distance between the track edge and the three corner markers
xMarkerLoTrack geometryLow byte of the x-axis distance between the track edge and the three corner markers
xPixelCoordWorkspace variable The pixel x-coordinate of the centre of the current object
xPlayerAccelHiDriving modelHigh byte of the x-coordinate of the change in velocity of the player's car in the player's frame of reference
xPlayerAccelLoDriving modelLow byte of the x-coordinate of the change in velocity of the player's car in the player's frame of reference
xPlayerCoordHiCar geometryThe high byte of the x-coordinate of the player's 3D coordinates
xPlayerCoordLoCar geometryThe low byte of the x-coordinate of the player's 3D coordinates
xPlayerCoordTopCar geometryThe top byte of the x-coordinate of the player's 3D coordinates
xPlayerSpeedHiDriving modelHigh byte of the x-coordinate of the velocity vector (i.e. x-axis speed) for the player's car during this main loop iteration
xPlayerSpeedLoDriving modelLow byte of the x-coordinate of the velocity vector (i.e. x-axis speed) for the player's car during this main loop iteration
xPlayerSpeedTopDriving modelTop byte of the x-coordinate of the velocity vector (i.e. x-axis speed) for the player's car during this main loop iteration
xPrevVelocityHiWorkspace variable Used to store the high byte of the x-coordinate of the player's previous velocity vector during the driving model calculations (i.e. the velocity from the last iteration of the main loop)
xPrevVelocityLoWorkspace variable Used to store the low byte of the x-coordinate of the player's previous velocity vector during the driving model calculations (i.e. the velocity from the last iteration of the main loop)
xRoadSignCoordHi3D objectsThe high byte of the x-coordinate of the road sign's 3D coordinates
xRoadSignCoordLo3D objectsThe low byte of the x-coordinate of the road sign's 3D coordinates
xSegmentCoordIHiWorkspace variable The high byte of the 3D x-coordinate for an inner track segment in the track segment buffer
xSegmentCoordILoWorkspace variable The low byte of the 3D x-coordinate for an inner track segment in the track segment buffer
xSegmentCoordOHiWorkspace variable The high byte of the 3D x-coordinate for an outer track segment in the track segment buffer
xSegmentCoordOLoWorkspace variable The low byte of the 3D x-coordinate for an outer track segment in the track segment buffer
xSpinVelocityHiWorkspace variable Used to store the high byte of the scaled spin yaw angle during the driving model calculations
xSpinVelocityLoWorkspace variable Used to store the low byte of the scaled spin yaw angle during the driving model calculations
xSteeringForceHiDriving modelHigh byte of the sideways force applied by steering
xSteeringForceLoDriving modelLow byte of the sideways force applied by steering
xStoreDrawWorkspace variable Temporary storage for X so it can be preserved through calls to DrawCarInPosition, DrawCarOrSign and DrawSegmentEdge
xStoreSoundSoundTemporary storage for X so it can be preserved through calls to the sound routines
xTrackCurve (Brands Hatch)Extra tracksThe x-coordinate of the tangent vector (i.e. the curve direction) at 64 points on a one-eighth circle covering 0 to 45 degrees
xTrackCurve (Donington Park)Extra tracksThe x-coordinate of the tangent vector (i.e. the curve direction) at 64 points on a one-eighth circle covering 0 to 45 degrees
xTrackCurve (Nürburgring)Extra tracksThe x-coordinate of the tangent vector (i.e. the curve direction) at 64 points on a one-eighth circle covering 0 to 45 degrees
xTrackCurve (Oulton Park)Extra tracksThe x-coordinate of the tangent vector (i.e. the curve direction) at 64 points on a one-eighth circle covering 0 to 45 degrees
xTrackCurve (Snetterton)Extra tracksThe x-coordinate of the tangent vector (i.e. the curve direction) at 64 points on a one-eighth circle covering 0 to 45 degrees
xTrackSectionIHiWorkspace variable High byte of the x-coordinate of the starting point of the inner verge of each track section
xTrackSectionILoWorkspace variable Low byte of the x-coordinate of the starting point of the inner verge of each track section
xTrackSectionOHiWorkspace variable High byte of the x-coordinate of the starting point of the outside verge of each track section
xTrackSectionOLoWorkspace variable Low byte of the x-coordinate of the starting point of the outside verge of each track section
xTrackSegmentIWorkspace variable Vector x-coordinates between two consecutive segments on the inside of the track
xTrackSegmentI (Silverstone)Track dataVector x-coordinates between two consecutive segments on the inside of the track
xTrackSegmentOWorkspace variable Vector x-coordinates from the inside to the outside of the track for each segment
xTrackSegmentO (Silverstone)Track dataVector x-coordinates from the inside to the outside of the track for each segment
xTrackSignVectorWorkspace variable The x-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
xTrackSignVector (Brands Hatch)Extra tracksThe x-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
xTrackSignVector (Donington Park)Extra tracksThe x-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
xTrackSignVector (Nürburgring)Extra tracksThe x-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
xTrackSignVector (Oulton Park)Extra tracksThe x-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
xTrackSignVector (Silverstone)Track dataThe x-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
xTrackSignVector (Snetterton)Extra tracksThe x-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
xTyreForceNoseHiDriving modelHigh byte of the x-coordinate of the force vector produced by the front tyres in the nose of the car
xTyreForceNoseLoDriving modelLow byte of the x-coordinate of the force vector produced by the front tyres in the nose of the car
xTyreForceRearHiDriving modelHigh byte of the x-coordinate of the force vector produced by the rear tyres of the car
xTyreForceRearLoDriving modelLow byte of the x-coordinate of the force vector produced by the rear tyres of the car
xVelocityHiDriving modelHigh byte of the x-coordinate of the player's velocity vector, from the player's frame of reference
xVelocityLoDriving modelLow byte of the x-coordinate of the player's velocity vector, from the player's frame of reference
xVergeLeftHiTrack geometryHigh byte of segment yaw angles along the left track verge in front of the player (i.e. along the x-axis)
xVergeLeftLoTrack geometryLow byte of segment yaw angles along the left track verge in front of the player (i.e. along the x-axis)
xVergeRightHiTrack geometryHigh byte of segment yaw angles along the right track verge in front of the player (i.e. along the x-axis)
xVergeRightLoTrack geometryLow byte of segment yaw angles along the right track verge in front of the player (i.e. along the x-axis)
yawAngleHi (Brands Hatch)Extra tracksHigh byte of the current yaw angle of the track, i.e. the angle at which the track is pointing along the ground
yawAngleHi (Donington Park)Extra tracksHigh byte of the current yaw angle of the track, i.e. the angle at which the track is pointing along the ground
yawAngleHi (Nürburgring)Extra tracksHigh byte of the current yaw angle of the track, i.e. the angle at which the track is pointing along the ground
yawAngleHi (Oulton Park)Extra tracksHigh byte of the current yaw angle of the track, i.e. the angle at which the track is pointing along the ground
yawAngleHi (Snetterton)Extra tracksHigh byte of the current yaw angle of the track, i.e. the angle at which the track is pointing along the ground
yawAngleLo (Brands Hatch)Extra tracksLow byte of the current yaw angle of the track, i.e. the angle at which the track is pointing along the ground
yawAngleLo (Donington Park)Extra tracksLow byte of the current yaw angle of the track, i.e. the angle at which the track is pointing along the ground
yawAngleLo (Nürburgring)Extra tracksLow byte of the current yaw angle of the track, i.e. the angle at which the track is pointing along the ground
yawAngleLo (Oulton Park)Extra tracksLow byte of the current yaw angle of the track, i.e. the angle at which the track is pointing along the ground
yawAngleLo (Snetterton)Extra tracksLow byte of the current yaw angle of the track, i.e. the angle at which the track is pointing along the ground
yCoord1HiWorkspace variable The high byte of the y-coordinate of the temporary coordinate variable (xCoord1, yCoord1, zCoord1)
yCoord1LoWorkspace variable The low byte of the y-coordinate of the temporary coordinate variable (xCoord1, yCoord1, zCoord1)
yCoord2HiWorkspace variable The high byte of the y-coordinate of the temporary coordinate variable (xCoord2, yCoord2, zCoord2)
yCoord2LoWorkspace variable The low byte of the y-coordinate of the temporary coordinate variable (xCoord2, yCoord2, zCoord2)
yCursorTextThe cursor's pixel y-coordinate
yGravityDeltaWorkspace variable The distance in the y-axis that the car would fall if the track wasn't there, for use when calculating the outcome of jumps and being dropped from the crane
yHeaderTextRow number for printing mode 7 headers
yHelmetCoordHiWorkspace variable High byte of the y-coordinate of the body/helmet object in the four-object car
yHelmetCoordLoWorkspace variable Low byte of the y-coordinate of the body/helmet object in the four-object car
yJumpHeightWorkspace variable The height of the car's jump (or crane lift), in terms of track lines, which we use to alter the position of the horizon
yLookupHiDrawing pixelsLookup table for converting pixel y-coordinate to high byte of screen address
yLookupLoDrawing pixelsLookup table for converting pixel y-coordinate to low byte of screen address
yPixelCoordWorkspace variable The pixel y-coordinate of the centre of the current object
yPlayerCoordHiCar geometryThe high byte of the y-coordinate of the player's 3D coordinates
yPlayerCoordLoCar geometryThe low byte of the y-coordinate of the player's 3D coordinates
yPlayerCoordTopCar geometryThe top byte of the y-coordinate of the player's 3D coordinates
yRoadSignCoordHi3D objectsThe high byte of the y-coordinate of the road sign's 3D coordinates
yRoadSignCoordLo3D objectsThe low byte of the y-coordinate of the road sign's 3D coordinates
ySegmentCoordIHiWorkspace variable The high byte of the 3D y-coordinate for an inner track segment in the track segment buffer
ySegmentCoordILoWorkspace variable The low byte of the 3D y-coordinate for an inner track segment in the track segment buffer
ySegmentCoordOHiWorkspace variable The high byte of the 3D y-coordinate for an outer track segment in the track segment buffer
ySegmentCoordOLoWorkspace variable The low byte of the 3D y-coordinate for an outer track segment in the track segment buffer
yTrackSectionIHiWorkspace variable High byte of the y-coordinate of the starting point of the inner verge of each track section
yTrackSectionILoWorkspace variable Low byte of the y-coordinate of the starting point of the inner verge of each track section
yTrackSegmentIWorkspace variable Vector y-coordinates between two consecutive segments on the inside of the track
yTrackSegmentI (Silverstone)Track dataVector y-coordinates between two consecutive segments on the inside of the track
yTrackSignVectorWorkspace variable The y-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
yTrackSignVector (Brands Hatch)Extra tracksThe y-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
yTrackSignVector (Donington Park)Extra tracksThe y-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
yTrackSignVector (Nürburgring)Extra tracksThe y-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
yTrackSignVector (Oulton Park)Extra tracksThe y-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
yTrackSignVector (Silverstone)Track dataThe y-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
yTrackSignVector (Snetterton)Extra tracksThe y-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
yVergeLeftTrack geometrySegment pitch angles along the left track verge in front of the player (i.e. along the up-down y-axis)
yVergeRightTrack geometrySegment pitch angles along the right track verge in front of the player (i.e. along the up-down y-axis)
zAccelerationHiDriving modelHigh byte of the z-coordinate of the change in velocity of the player's car in terms of 3D world coordinates
zAccelerationLoDriving modelLow byte of the z-coordinate of the change in velocity of the player's car in terms of 3D world coordinates
zCoord1HiWorkspace variable The high byte of the z-coordinate of the temporary coordinate variable (xCoord1, yCoord1, zCoord1)
zCoord1LoWorkspace variable The low byte of the z-coordinate of the temporary coordinate variable (xCoord1, yCoord1, zCoord1)
zCoord2HiWorkspace variable The high byte of the z-coordinate of the temporary coordinate variable (xCoord2, yCoord2, zCoord2)
zCoord2LoWorkspace variable The low byte of the z-coordinate of the temporary coordinate variable (xCoord2, yCoord2, zCoord2)
Zero pageWorkspacesMainly temporary variables that are used a lot
ZeroEngineTorqueDriving modelZero engineTorque
zeroIfYIs55Screen bufferA lookup table for zeroing Y if and only if it is &55
ZeroTimerDriversZero the specified timer
zHelmetCoordHiWorkspace variable High byte of the z-coordinate of the body/helmet object in the four-object car
zHelmetCoordLoWorkspace variable Low byte of the z-coordinate of the body/helmet object in the four-object car
zPlayerAccelHiDriving modelHigh byte of the z-coordinate of the change in velocity of the player's car in the player's frame of reference
zPlayerAccelLoDriving modelLow byte of the z-coordinate of the change in velocity of the player's car in the player's frame of reference
zPlayerCoordHiCar geometryThe high byte of the z-coordinate of the player's 3D coordinates
zPlayerCoordLoCar geometryThe low byte of the z-coordinate of the player's 3D coordinates
zPlayerCoordTopCar geometryThe top byte of the z-coordinate of the player's 3D coordinates
zPlayerSpeedHiDriving modelHigh byte of the z-coordinate of the velocity vector (i.e. z-axis speed) for the player's car during this main loop iteration
zPlayerSpeedLoDriving modelLow byte of the z-coordinate of the velocity vector (i.e. z-axis speed) for the player's car during this main loop iteration
zPlayerSpeedTopDriving modelTop byte of the z-coordinate of the velocity vector (i.e. z-axis speed) for the player's car during this main loop iteration
zRoadSignCoordHi3D objectsThe high byte of the z-coordinate of the road sign's 3D coordinates
zRoadSignCoordLo3D objectsThe low byte of the z-coordinate of the road sign's 3D coordinates
zSegmentCoordIHiWorkspace variable The high byte of the 3D z-coordinate for an inner track segment in the track segment buffer
zSegmentCoordILoWorkspace variable The low byte of the 3D z-coordinate for an inner track segment in the track segment buffer
zSegmentCoordOHiWorkspace variable The high byte of the 3D z-coordinate for an outer track segment in the track segment buffer
zSegmentCoordOLoWorkspace variable The low byte of the 3D z-coordinate for an outer track segment in the track segment buffer
zTrackCurve (Brands Hatch)Extra tracksThe z-coordinate of the tangent vector (i.e. the curve direction) at 64 points on a one-eighth circle covering 0 to 45 degrees
zTrackCurve (Donington Park)Extra tracksThe z-coordinate of the tangent vector (i.e. the curve direction) at 64 points on a one-eighth circle covering 0 to 45 degrees
zTrackCurve (Nürburgring)Extra tracksThe z-coordinate of the tangent vector (i.e. the curve direction) at 64 points on a one-eighth circle covering 0 to 45 degrees
zTrackCurve (Oulton Park)Extra tracksThe z-coordinate of the tangent vector (i.e. the curve direction) at 64 points on a one-eighth circle covering 0 to 45 degrees
zTrackCurve (Snetterton)Extra tracksThe z-coordinate of the tangent vector (i.e. the curve direction) at 64 points on a one-eighth circle covering 0 to 45 degrees
zTrackSectionIHiWorkspace variable High byte of the z-coordinate of the starting point of the inner verge of each track section
zTrackSectionILoWorkspace variable Low byte of the z-coordinate of the starting point of the inner verge of each track section
zTrackSectionOHiWorkspace variable High byte of the z-coordinate of the starting point of the outside verge of each track section
zTrackSectionOLoWorkspace variable Low byte of the z-coordinate of the starting point of the outside verge of each track section
zTrackSegmentIWorkspace variable Vector z-coordinates between two consecutive segments on the inside of the track
zTrackSegmentI (Silverstone)Track dataVector z-coordinates between two consecutive segments on the inside of the track
zTrackSegmentOWorkspace variable Vector z-coordinates from the inside to the outside of the track for each segment
zTrackSegmentO (Silverstone)Track dataVector z-coordinates from the inside to the outside of the track for each segment
zTrackSignVectorWorkspace variable The z-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
zTrackSignVector (Brands Hatch)Extra tracksThe z-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
zTrackSignVector (Donington Park)Extra tracksThe z-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
zTrackSignVector (Nürburgring)Extra tracksThe z-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
zTrackSignVector (Oulton Park)Extra tracksThe z-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
zTrackSignVector (Silverstone)Track dataThe z-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
zTrackSignVector (Snetterton)Extra tracksThe z-coordinate of the track sign vector for each sign, to be scaled and added to the inner track section vector for the sign
zTyreForceBothDriving modelHigh byte of the z-coordinate of the force vector produced by the front and tyres combined
zTyreForceNoseHiDriving modelHigh byte of the z-coordinate of the force vector produced by the front tyres in the nose of the car
zTyreForceNoseLoDriving modelLow byte of the z-coordinate of the force vector produced by the front tyres in the nose of the car
zTyreForceRearHiDriving modelHigh byte of the z-coordinate of the force vector produced by the rear tyres
zTyreForceRearLoDriving modelLow byte of the z-coordinate of the force vector produced by the rear tyres
zVelocityHiDriving modelHigh byte of the z-coordinate of the player's velocity vector, from the player's frame of reference
zVelocityLoDriving modelLow byte of the z-coordinate of the player's velocity vector, from the player's frame of reference