This index contains every variable that appears in the source code for Revs, grouped by category. A variable is defined as a labelled memory location that is used for storing data, and this list includes both variables that are defined in workspaces, and variables that are declared within the body of the source code.
- 3D objects
- Car geometry
- Dashboard
- Drawing objects
- Drawing pixels
- Drawing the track
- Drivers
- Driving model
- Extra tracks
- Keyboard
- Main loop
- Maths (Arithmetic)
- Maths (Geometry)
- Screen buffer
- Screen mode
- Setup
- Sound
- Tactics
- Text
- Track data
- Track geometry
- Workspace variables
3D objects
| |
objectBottom | Scaffold measurements for the bottom of each object part |
objectColour | Data for the colour of each object part |
objectIndex | Index range of an object's data in the object data tables |
objectLeft | Scaffold measurements for the left of each object part |
objectPalette | The object colour palette that maps logical colours 0 to 3 to physical colours |
objectRight | Scaffold measurements for the right of each object part |
objectScaffold | The scaffold used to construct each object, in a scalable format |
objectTop | Scaffold measurements for the top of each object part |
scaffoldIndex | Index of an object's scaffold in the objectScaffold table |
scaledScaffold | Storage for an object's scaled scaffold |
scaleRange | Storage for scale factors when scaling objects |
thisObjectType | The type of object we are currently drawing |
xRoadSignCoordHi | The high byte of the x-coordinate of the road sign's 3D coordinates |
xRoadSignCoordLo | The low byte of the x-coordinate of the road sign's 3D coordinates |
yRoadSignCoordHi | The high byte of the y-coordinate of the road sign's 3D coordinates |
yRoadSignCoordLo | The low byte of the y-coordinate of the road sign's 3D coordinates |
zRoadSignCoordHi | The high byte of the z-coordinate of the road sign's 3D coordinates |
zRoadSignCoordLo | The low byte of the z-coordinate of the road sign's 3D coordinates |
Car geometry
| |
carSpeedLo | Low byte of each car's forward speed |
crashedIntoFence | Flag that records whether we have crashed into the fence |
playerSideways | Contains the player's heading, for testing whether the car is pointing sideways |
spinYawAngleHi | High byte of the amount of yaw angle spin that is being applied to the player's car |
spinYawAngleLo | Low byte of the amount of yaw angle spin that is being applied to the player's car |
spinYawAngleTop | Top byte of the amount of yaw angle spin that is being applied to the player's car |
xPlayerCoordHi | The high byte of the x-coordinate of the player's 3D coordinates |
xPlayerCoordLo | The low byte of the x-coordinate of the player's 3D coordinates |
xPlayerCoordTop | The top byte of the x-coordinate of the player's 3D coordinates |
yPlayerCoordHi | The high byte of the y-coordinate of the player's 3D coordinates |
yPlayerCoordLo | The low byte of the y-coordinate of the player's 3D coordinates |
yPlayerCoordTop | The top byte of the y-coordinate of the player's 3D coordinates |
zPlayerCoordHi | The high byte of the z-coordinate of the player's 3D coordinates |
zPlayerCoordLo | The low byte of the z-coordinate of the player's 3D coordinates |
zPlayerCoordTop | The top byte of the z-coordinate of the player's 3D coordinates |
Dashboard
| |
dashRightEdge | Storage for the first track pixel byte along the right edge of the dashboard |
endMirror | The offset from mirrorAddress for the end of each mirror segment |
fillDataOffset | Dash data offsets, tweaked to give bottom line values that are compatible with the process of filling blocks to the left |
handPixels | The number of pixels in the longest axis for the rev counter hand at various points in a half-quadrant |
leftDashMask | Pixel mask for the left edge of the dashboard |
leftDashPixels | Pixels along the left edge of the dashboard |
leftTyreMask | Pixel mask for the edge of the left tyre |
leftTyrePixels | Pixels along the edge of the left tyre |
mirrorAddressHi | The high byte of the base screen address of each mirror segment |
mirrorAddressLo | The low byte of the base screen address of each mirror segment |
mirrorContents | Contains the size of the car in each mirror segment |
mirrorSegment | Lookup table for working out which mirror segment a car should appear in |
rightDashMask | Pixel mask for the right edge of the dashboard |
rightDashPixels | Pixels along the right edge of the dashboard |
rightTyreMask | Pixel mask for the edge of the right tyre |
rightTyrePixels | Pixels along the edge of the right tyre |
shortAxis | Code modifications for the DrawDashboardLine line-drawing routine |
startMirror | The offset from mirrorAddress for the start of each mirror segment |
steeringHi | The high byte of the steering wheel position |
steeringLo | The low byte of the steering wheel position |
stepAxis | Code modifications for the DrawDashboardLine line-drawing routine |
tyreEdgeIndex | Index of the mask and pixel bytes for the tyre edges on a specific track line |
tyreTravel | Keeps track of how far we have travelled so we know when to animate the tyres |
tyreTreadLeft | Tyre tread pattern for the left tyre |
tyreTreadRight | Tyre tread pattern for the right tyre |
wheelPixels | The number of pixels in the longest axis for the steering wheel line at various points in a quadrant |
Drawing objects
| |
thisDriverNumber | The number of the current driver when drawing cars |
Drawing pixels
| |
colourPalette | The main colour palette that maps logical colours 0 to 3 to physical colours |
pixelByte | A table of pixel bytes with individual pixels set |
pixelsEdgeRight | Pixel byte with all the pixels to the right of position X set, plus pixel X |
pixelsToLeft | Pixel byte with all the pixels to the left of position X set |
pixelsToRight | Pixel byte with all the pixels to the right of position X set |
startDialHi | The high byte of the screen address of the start of the dial hand on the rev counter |
startDialLo | The low byte of the screen address of the start of the dial hand on the rev counter |
yLookupHi | Lookup table for converting pixel y-coordinate to high byte of screen address |
yLookupLo | Lookup table for converting pixel y-coordinate to low byte of screen address |
Drawing the track
| |
jumpShallowLeft | Branch labels for self-modifying code in the DrawShallowToLeft routine |
jumpShallowRight | Branch labels for self-modifying code in the DrawShallowToRight routine |
jumpSteepLeft | Branch labels for self-modifying code in the DrawSteepToLeft routine |
jumpSteepRight | Branch labels for self-modifying code in the DrawSteepToRight routine |
vergeEdgeInOut | Table for mapping the verge tables to the outer and inner edges of the verge marks |
vergeEdgeRight | Contain the four pixel bytes for the verge edge we are drawing, masked to only include the rightmost 4, 3, 2 and 1 pixels |
vergePixelMask | Pixel bytes for drawing track verge edges |
vergeTableHi | High bytes of the addresses of the four verge tables |
vergeTableLo | Low bytes of the addresses of the four verge tables |
Drivers
| |
baseSpeed | The base speed for each car, copied from the track data |
competitionStarted | A flag to indicate whether or not the competition has started |
firstLapStarted | Flag to keep track of whether we have started the first lap of practice or qualifying |
lapsMenuOption | The menu option chosen from the laps menu (0 to 2) |
lowestPlayerNumber | The number of the player with the lowest player number |
numberOfPlayers | The number of players |
pointsForPlace | The points awarded for the top six places, plus the fastest lap |
qualifyingTime | The number of minutes of qualifying lap time |
raceClass | The class of the current race |
racePointsHi | High byte of race points calculated for each position |
racePointsLo | Used to store the low byte of the race points being awarded to the driver in race position X |
totalPointsHi | High byte of total accumulated points for each driver |
totalPointsLo | Low byte of total accumulated points for each driver |
updateLapTimes | Controls whether moving the car forward updates the lap number and lap times |
Driving model
| |
cosYawAngleHi | High byte of the cosine of the player's yaw angle |
cosYawAngleLo | Low byte of the cosine of the player's yaw angle |
frontWingSetting | The front wing setting, as entered by the player |
liftFromTorque | The lift of the front of the car caused by acceleration or braking |
playerDrift | Records whether the player's car is moving sideways by a significant amount |
rearWingSetting | The rear wing setting, as entered by the player |
sinYawAngleHi | High byte of the sine of the player's yaw angle |
sinYawAngleLo | Low byte of the sine of the player's yaw angle |
spinYawDeltaHi | High byte of the change in the spin yaw angle for the player's car |
spinYawDeltaLo | Low byte of the change in the spin yaw angle for the player's car |
tyreSqueal | A flag to determine whether the front or rear tyres are squealing |
wingBalance | Value used in the driving model when calculating the effect of the two wing settings |
wingForce | The downward force from the front and rear wings |
wingForce95 | 95% of the downward force from the front and rear wings |
wingForceGrass | The base downward force from the weight of the car when on grass, to which the downward force from the wings is added |
wingForceTrack | The base downward force from the weight of the car when on the track, to which the downward force from the wings is added |
wingScaleFactor | Scale factors for the wing settings |
wingSetting | Contains the scaled wing settings |
xAccelerationHi | High byte of the x-coordinate of the change in velocity of the player's car in terms of 3D world coordinates |
xAccelerationLo | Low byte of the x-coordinate of the change in velocity of the player's car in terms of 3D world coordinates |
xPlayerAccelHi | High byte of the x-coordinate of the change in velocity of the player's car in the player's frame of reference |
xPlayerAccelLo | Low byte of the x-coordinate of the change in velocity of the player's car in the player's frame of reference |
xPlayerSpeedHi | High byte of the x-coordinate of the velocity vector (i.e. x-axis speed) for the player's car during this main loop iteration |
xPlayerSpeedLo | Low byte of the x-coordinate of the velocity vector (i.e. x-axis speed) for the player's car during this main loop iteration |
xPlayerSpeedTop | Top byte of the x-coordinate of the velocity vector (i.e. x-axis speed) for the player's car during this main loop iteration |
xSteeringForceHi | High byte of the sideways force applied by steering |
xSteeringForceLo | Low byte of the sideways force applied by steering |
xTyreForceNoseHi | High byte of the x-coordinate of the force vector produced by the front tyres in the nose of the car |
xTyreForceNoseLo | Low byte of the x-coordinate of the force vector produced by the front tyres in the nose of the car |
xTyreForceRearHi | High byte of the x-coordinate of the force vector produced by the rear tyres of the car |
xTyreForceRearLo | Low byte of the x-coordinate of the force vector produced by the rear tyres of the car |
xVelocityHi | High byte of the x-coordinate of the player's velocity vector, from the player's frame of reference |
xVelocityLo | Low byte of the x-coordinate of the player's velocity vector, from the player's frame of reference |
zAccelerationHi | High byte of the z-coordinate of the change in velocity of the player's car in terms of 3D world coordinates |
zAccelerationLo | Low byte of the z-coordinate of the change in velocity of the player's car in terms of 3D world coordinates |
zPlayerAccelHi | High byte of the z-coordinate of the change in velocity of the player's car in the player's frame of reference |
zPlayerAccelLo | Low byte of the z-coordinate of the change in velocity of the player's car in the player's frame of reference |
zPlayerSpeedHi | High byte of the z-coordinate of the velocity vector (i.e. z-axis speed) for the player's car during this main loop iteration |
zPlayerSpeedLo | Low byte of the z-coordinate of the velocity vector (i.e. z-axis speed) for the player's car during this main loop iteration |
zPlayerSpeedTop | Top byte of the z-coordinate of the velocity vector (i.e. z-axis speed) for the player's car during this main loop iteration |
zTyreForceBoth | High byte of the z-coordinate of the force vector produced by the front and tyres combined |
zTyreForceNoseHi | High byte of the z-coordinate of the force vector produced by the front tyres in the nose of the car |
zTyreForceNoseLo | Low byte of the z-coordinate of the force vector produced by the front tyres in the nose of the car |
zTyreForceRearHi | High byte of the z-coordinate of the force vector produced by the rear tyres |
zTyreForceRearLo | Low byte of the z-coordinate of the force vector produced by the rear tyres |
zVelocityHi | High byte of the z-coordinate of the player's velocity vector, from the player's frame of reference |
zVelocityLo | Low byte of the z-coordinate of the player's velocity vector, from the player's frame of reference |
Extra tracks
| |
modifyAddressHi (Brands Hatch) | High byte of the location in the main game code where we modify a two-byte address |
modifyAddressHi (Donington Park) | High byte of the location in the main game code where we modify a two-byte address |
modifyAddressHi (Nürburgring) | High byte of the location in the main game code where we modify a two-byte address |
modifyAddressHi (Oulton Park) | High byte of the location in the main game code where we modify a two-byte address |
modifyAddressHi (Snetterton) | High byte of the location in the main game code where we modify a two-byte address |
modifyAddressLo (Brands Hatch) | Low byte of the location in the main game code where we modify a two-byte address |
modifyAddressLo (Donington Park) | Low byte of the location in the main game code where we modify a two-byte address |
modifyAddressLo (Nürburgring) | Low byte of the location in the main game code where we modify a two-byte address |
modifyAddressLo (Oulton Park) | Low byte of the location in the main game code where we modify a two-byte address |
modifyAddressLo (Snetterton) | Low byte of the location in the main game code where we modify a two-byte address |
newContentHi (Brands Hatch) | High byte of the two-byte address that we want to poke into the main game code at the modify location |
newContentHi (Donington Park) | High byte of the two-byte address that we want to poke into the main game code at the modify location |
newContentHi (Nürburgring) | High byte of the two-byte address that we want to poke into the main game code at the modify location |
newContentHi (Oulton Park) | High byte of the two-byte address that we want to poke into the main game code at the modify location |
newContentHi (Snetterton) | High byte of the two-byte address that we want to poke into the main game code at the modify location |
newContentLo (Brands Hatch) | Low byte of the two-byte address that we want to poke into the main game code at the modify location |
newContentLo (Donington Park) | Low byte of the two-byte address that we want to poke into the main game code at the modify location |
newContentLo (Nürburgring) | Low byte of the two-byte address that we want to poke into the main game code at the modify location |
newContentLo (Oulton Park) | Low byte of the two-byte address that we want to poke into the main game code at the modify location |
newContentLo (Snetterton) | Low byte of the two-byte address that we want to poke into the main game code at the modify location |
segmentSlope (Brands Hatch) | The height above ground of the current track sub-section |
segmentSlope (Donington Park) | The height above ground of the current track sub-section |
segmentSlope (Nürburgring) | The height above ground of the current track sub-section |
segmentSlope (Oulton Park) | The height above ground of the current track sub-section |
segmentSlope (Snetterton) | The height above ground of the current track sub-section |
subSection (Brands Hatch) | The number of the current sub-section |
subSection (Donington Park) | The number of the current sub-section |
subSection (Nürburgring) | The number of the current sub-section |
subSection (Oulton Park) | The number of the current sub-section |
subSection (Snetterton) | The number of the current sub-section |
subSectionSegment (Brands Hatch) | The number of the segment within the current sub-section, counting from the start of the sub-section |
subSectionSegment (Donington Park) | The number of the segment within the current sub-section, counting from the start of the sub-section |
subSectionSegment (Nürburgring) | The number of the segment within the current sub-section, counting from the start of the sub-section |
subSectionSegment (Oulton Park) | The number of the segment within the current sub-section, counting from the start of the sub-section |
subSectionSegment (Snetterton) | The number of the segment within the current sub-section, counting from the start of the sub-section |
Track section data (Part 1 of 2) (Brands Hatch) | Data for the track sections |
Track section data (Part 1 of 2) (Donington Park) | Data for the track sections |
Track section data (Part 1 of 2) (Nürburgring) | Data for the track sections |
Track section data (Part 1 of 2) (Oulton Park) | Data for the track sections |
Track section data (Part 1 of 2) (Snetterton) | Data for the track sections |
Track section data (Part 2 of 2) (Brands Hatch) | Data for the track sections |
Track section data (Part 2 of 2) (Donington Park) | Data for the track sections |
Track section data (Part 2 of 2) (Nürburgring) | Data for the track sections |
Track section data (Part 2 of 2) (Oulton Park) | Data for the track sections |
Track section data (Part 2 of 2) (Snetterton) | Data for the track sections |
trackBaseSpeed (Brands Hatch) | The base speed for each race class, used when generating the best racing lines and non-player driver speeds |
trackBaseSpeed (Donington Park) | The base speed for each race class, used when generating the best racing lines and non-player driver speeds |
trackBaseSpeed (Nürburgring) | The base speed for each race class, used when generating the best racing lines and non-player driver speeds |
trackBaseSpeed (Oulton Park) | The base speed for each race class, used when generating the best racing lines and non-player driver speeds |
trackBaseSpeed (Snetterton) | The base speed for each race class, used when generating the best racing lines and non-player driver speeds |
trackCarSpacing (Brands Hatch) | The spacing between the cars at the start of a qualifying lap, in segments |
trackCarSpacing (Donington Park) | The spacing between the cars at the start of a qualifying lap, in segments |
trackCarSpacing (Nürburgring) | The spacing between the cars at the start of a qualifying lap, in segments |
trackCarSpacing (Oulton Park) | The spacing between the cars at the start of a qualifying lap, in segments |
trackCarSpacing (Snetterton) | The spacing between the cars at the start of a qualifying lap, in segments |
trackChecksum (Brands Hatch) | The track file's checksum |
trackChecksum (Donington Park) | The track file's checksum |
trackChecksum (Nürburgring) | The track file's checksum |
trackChecksum (Oulton Park) | The track file's checksum |
trackChecksum (Snetterton) | The track file's checksum |
trackGameName (Brands Hatch) | The game name |
trackGameName (Donington Park) | The game name |
trackGameName (Nürburgring) | The game name |
trackGameName (Oulton Park) | The game name |
trackGameName (Snetterton) | The game name |
trackGearPower (Brands Hatch) | The power for each gear |
trackGearPower (Donington Park) | The power for each gear |
trackGearPower (Nürburgring) | The power for each gear |
trackGearPower (Oulton Park) | The power for each gear |
trackGearPower (Snetterton) | The power for each gear |
trackGearRatio (Brands Hatch) | The gear ratio for each gear |
trackGearRatio (Donington Park) | The gear ratio for each gear |
trackGearRatio (Nürburgring) | The gear ratio for each gear |
trackGearRatio (Oulton Park) | The gear ratio for each gear |
trackGearRatio (Snetterton) | The gear ratio for each gear |
trackLapTimeMin (Brands Hatch) | Lap times for adjusting the race class (minutes) |
trackLapTimeMin (Donington Park) | Lap times for adjusting the race class (minutes) |
trackLapTimeMin (Nürburgring) | Lap times for adjusting the race class (minutes) |
trackLapTimeMin (Oulton Park) | Lap times for adjusting the race class (minutes) |
trackLapTimeMin (Snetterton) | Lap times for adjusting the race class (minutes) |
trackLapTimeSec (Brands Hatch) | Lap times for adjusting the race class (seconds) |
trackLapTimeSec (Donington Park) | Lap times for adjusting the race class (seconds) |
trackLapTimeSec (Nürburgring) | Lap times for adjusting the race class (seconds) |
trackLapTimeSec (Oulton Park) | Lap times for adjusting the race class (seconds) |
trackLapTimeSec (Snetterton) | Lap times for adjusting the race class (seconds) |
trackName (Brands Hatch) | The track name |
trackName (Donington Park) | The track name |
trackName (Nürburgring) | The track name |
trackName (Oulton Park) | The track name |
trackName (Snetterton) | The track name |
trackRaceSlowdown (Brands Hatch) | Slowdown factor for non-player drivers in the race |
trackRaceSlowdown (Donington Park) | Slowdown factor for non-player drivers in the race |
trackRaceSlowdown (Nürburgring) | Slowdown factor for non-player drivers in the race |
trackRaceSlowdown (Oulton Park) | Slowdown factor for non-player drivers in the race |
trackRaceSlowdown (Snetterton) | Slowdown factor for non-player drivers in the race |
trackSectionCount (Brands Hatch) | The total number of track sections * 8 |
trackSectionCount (Donington Park) | The total number of track sections * 8 |
trackSectionCount (Nürburgring) | The total number of track sections * 8 |
trackSectionCount (Oulton Park) | The total number of track sections * 8 |
trackSectionCount (Snetterton) | The total number of track sections * 8 |
trackSlope (Brands Hatch) | The slope at the start of each track section |
trackSlope (Donington Park) | The slope at the start of each track section |
trackSlope (Nürburgring) | The slope at the start of each track section |
trackSlope (Oulton Park) | The slope at the start of each track section |
trackSlope (Snetterton) | The slope at the start of each track section |
trackSlopeDelta (Brands Hatch) | The 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) | The 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) | The 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) | The 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) | The change in the slope (i.e. the change in the gradient) over the course of each segment for each sub-section of the track |
trackStartPosition (Brands Hatch) | The starting race position of the player during a practice or qualifying lap |
trackStartPosition (Donington Park) | The starting race position of the player during a practice or qualifying lap |
trackStartPosition (Nürburgring) | The starting race position of the player during a practice or qualifying lap |
trackStartPosition (Oulton Park) | The starting race position of the player during a practice or qualifying lap |
trackStartPosition (Snetterton) | The starting race position of the player during a practice or qualifying lap |
trackSteering (Brands Hatch) | The optimum steering for non-player drivers on each track section |
trackSteering (Donington Park) | The optimum steering for non-player drivers on each track section |
trackSteering (Nürburgring) | The optimum steering for non-player drivers on each track section |
trackSteering (Oulton Park) | The optimum steering for non-player drivers on each track section |
trackSteering (Snetterton) | The optimum steering for non-player drivers on each track section |
trackSubConfig (Brands Hatch) | Configuration data for each section that defines the sub-section numbers, and horizon calculations |
trackSubConfig (Donington Park) | Configuration data for each section that defines the sub-section numbers, and horizon calculations |
trackSubConfig (Nürburgring) | Configuration data for each section that defines the sub-section numbers, and horizon calculations |
trackSubConfig (Oulton Park) | Configuration data for each section that defines the sub-section numbers, and horizon calculations |
trackSubConfig (Snetterton) | Configuration data for each section that defines the sub-section numbers, and horizon calculations |
trackSubCount (Brands Hatch) | The total number of sub-sections in the track |
trackSubCount (Donington Park) | The total number of sub-sections in the track |
trackSubCount (Nürburgring) | The total number of sub-sections in the track |
trackSubCount (Oulton Park) | The total number of sub-sections in the track |
trackSubCount (Snetterton) | The total number of sub-sections in the track |
trackSubSize (Brands Hatch) | The size of each sub-section, i.e. the number of segments in each sub-section |
trackSubSize (Donington Park) | The size of each sub-section, i.e. the number of segments in each sub-section |
trackSubSize (Nürburgring) | The size of each sub-section, i.e. the number of segments in each sub-section |
trackSubSize (Oulton Park) | The size of each sub-section, i.e. the number of segments in each sub-section |
trackSubSize (Snetterton) | The size of each sub-section, i.e. the number of segments in each sub-section |
trackTimerAdjust (Brands Hatch) | Adjustment factor for the speed of the timers to allow for fine-tuning of time on a per-track basis |
trackTimerAdjust (Donington Park) | Adjustment factor for the speed of the timers to allow for fine-tuning of time on a per-track basis |
trackTimerAdjust (Nürburgring) | Adjustment factor for the speed of the timers to allow for fine-tuning of time on a per-track basis |
trackTimerAdjust (Oulton Park) | Adjustment factor for the speed of the timers to allow for fine-tuning of time on a per-track basis |
trackTimerAdjust (Snetterton) | Adjustment factor for the speed of the timers to allow for fine-tuning of time on a per-track basis |
trackYawAngleHi (Brands Hatch) | The 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) | The 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) | The 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) | The 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) | The 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) | The 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) | The 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) | The 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) | The 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) | The 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) | High 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) | High 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) | High 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) | High byte of the change in yaw angle that we apply to each segment in the specified sub-section when building the track |
trackYawDeltaHi (Snetterton) | High 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) | Low 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) | Low 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) | Low 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) | Low byte of the change in yaw angle that we apply to each segment in the specified sub-section when building the track |
trackYawDeltaLo (Snetterton) | Low byte of the change in yaw angle that we apply to each segment in the specified sub-section when building the track |
xTrackCurve (Brands Hatch) | The 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) | The 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) | The 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) | The 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) | The x-coordinate of the tangent vector (i.e. the curve direction) at 64 points on a one-eighth circle covering 0 to 45 degrees |
xTrackSignVector (Brands Hatch) | 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 (Donington Park) | 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 (Nürburgring) | 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 (Oulton Park) | 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 (Snetterton) | 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 |
yawAngleHi (Brands Hatch) | High 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) | High 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) | High 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) | High byte of the current yaw angle of the track, i.e. the angle at which the track is pointing along the ground |
yawAngleHi (Snetterton) | High 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) | Low 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) | Low 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) | Low 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) | Low byte of the current yaw angle of the track, i.e. the angle at which the track is pointing along the ground |
yawAngleLo (Snetterton) | Low byte of the current yaw angle of the track, i.e. the angle at which the track is pointing along the ground |
yTrackSignVector (Brands Hatch) | 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 (Donington Park) | 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 (Nürburgring) | 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 (Oulton Park) | 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 (Snetterton) | 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 |
zTrackCurve (Brands Hatch) | The 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) | The 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) | The 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) | The 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) | The z-coordinate of the tangent vector (i.e. the curve direction) at 64 points on a one-eighth circle covering 0 to 45 degrees |
zTrackSignVector (Brands Hatch) | 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 (Donington Park) | 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 (Nürburgring) | 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 (Oulton Park) | 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 (Snetterton) | 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 |
Keyboard
| |
configKeys | Details of the configuration settings that are set by the shifted configuration keys |
lapsFromOption | Table to convert from the option numbers in the laps menu to the actual number of laps |
menuKeys | Negative inkey values for the menu keys (SPACE, "1", "2" and "3") for the Acornsoft release |
menuKeysSup | Negative inkey values for the menu keys (SPACE, "1", "2" and "3") for the Superior Software release |
shiftedKeys | Negative inkey values for the configuration keys that are pressed in combination with SHIFT |
timeFromOption | Table to convert from the option numbers in the qualifying lap duration menu to the actual number of minutes |
Main loop
| |
mainLoopCounterHi | High byte of the main loop counter, which increments on each iteration of the main driving loop |
Maths (Arithmetic)
| |
divideX | Division table for calculating scale factors using 1 / |x-delta| |
Maths (Geometry)
| |
arctanY | Table for arctan values when calculating yaw angles |
Screen buffer
| |
backgroundColour | The background colour for each track line |
dashData0 | Contains code that gets moved into screen memory |
dashData1 | Contains code that gets moved into screen memory |
dashData2 | Contains code that gets moved into screen memory |
dashData3 | Contains code that gets moved into screen memory |
dashData4 | Contains code that gets moved into screen memory |
dashData5 | Contains code that gets moved into screen memory |
dashData6 | Contains code that gets moved into screen memory |
dashData7 | Contains code that gets moved into screen memory |
dashData8 | Contains code that gets moved into screen memory |
dashData9 | Contains code that gets moved into screen memory |
dashData10 | Contains code that gets moved into screen memory |
dashData11 | Contains code that gets moved into screen memory |
dashData12 | Contains code that gets moved into screen memory |
dashData13 | Contains code that gets moved into screen memory |
dashData14 | Contains code that gets moved into screen memory |
dashData15 | Contains code that gets moved into screen memory |
dashData16 | Contains code that gets moved into screen memory |
dashData17 | Contains code that gets moved into screen memory |
dashData18 | Contains code that gets moved into screen memory |
dashData19 | Contains code that gets moved into screen memory |
dashData20 | Contains code that gets moved into screen memory |
dashData21 | Contains code that gets moved into screen memory |
dashData22 | Contains code that gets moved into screen memory |
dashData23 | Contains code that gets moved into screen memory |
dashData24 | Contains code that gets moved into screen memory |
dashData25 | Contains code and part of the dashboard image that gets moved into screen memory |
dashData26 | Contains part of the dashboard image that gets moved into screen memory |
dashData27 | Contains part of the dashboard image that gets moved into screen memory |
dashData28 | Contains part of the dashboard image that gets moved into screen memory |
dashData29 | Contains part of the dashboard image that gets moved into screen memory |
dashData30 | Contains part of the dashboard image that gets moved into screen memory |
dashData31 | Contains part of the dashboard image that gets moved into screen memory |
dashData32 | Contains part of the dashboard image that gets moved into screen memory |
dashData33 | Contains part of the dashboard image that gets moved into screen memory |
dashData34 | Contains part of the dashboard image that gets moved into screen memory |
dashData35 | Contains part of the dashboard image that gets moved into screen memory |
dashData36 | Contains part of the dashboard image that gets moved into screen memory |
dashData37 | Contains part of the dashboard image that gets moved into screen memory |
dashData38 | Contains part of the dashboard image that gets moved into screen memory |
dashData39 | Contains part of the dashboard image that gets moved into screen memory |
dashData40 | Contains part of the dashboard image that gets moved into screen memory |
dashData41 | Contains part of the dashboard image that gets moved into screen memory |
dashData42 | Contains part of the dashboard image that gets moved into screen memory |
dashDataAddress | Addresses for copying the first block of dash data between the main game code and screen memory |
dashDataOffset | Offset of the dash data within each dash data block |
fencePixelsGrass | Pixel bytes for the fence with green grass behind it |
fencePixelsSky | Pixel bytes for the fence with blue sky behind it |
ldaDrawByte | Low address bytes of the LDA #0 instructions in the DRAW_BYTE macros, for use when drawing track lines around the dashboard |
lowestTrackLine | Used to prevent objects from being drawn below the horizon line |
staDrawByte | Low address bytes of the STA instructions in the DRAW_BYTE macros, for use when drawing track lines around the dashboard |
staDrawByteTyre | Low address bytes of the STA instructions in the DRAW_BYTE macros, for use when drawing track lines around the tyres |
zeroIfYIs55 | A lookup table for zeroing Y if and only if it is &55 |
Screen mode
| |
irq1Address | Stores the previous value of IRQ1V before we install our custom IRQ handler |
irqCounter | Counter that gets incremented every time the IRQ routine reaches section 4 of the custom screen |
paletteSection0 | Colour palette for screen section 0 in the custom screen mode (the mode 4 portion) |
paletteSection2 | Colour palette for screen section 2 in the custom screen mode (part of the mode 5 portion) |
paletteSection3 | Colour palette for screen section 3 in the custom screen mode (part of the mode 5 portion) |
paletteSection4 | Colour palette for screen section 4 in the custom screen mode (part of the mode 5 portion) |
screenRegisters | The 6845 registers for the custom screen mode |
screenSection | The section of the screen that is currently being drawn by the custom screen interrupt handler (0 to 4) |
screenTimer1 | The screen timer offset between the start of section 2 and the start of section 3 |
screenTimer2 | The screen timer offset between the start of section 3 and the start of section 4 |
Setup
| |
blockEndHi | High byte of the end address of blocks moved by the MoveCode routine |
blockEndLo | Low byte of the end address of blocks moved by the MoveCode routine |
blockStartHi | High byte of the start address of blocks moved by the MoveCode routine |
blockStartLo | Low byte of the start address of blocks moved by the MoveCode routine |
blockToHi | High byte of the destination address of blocks moved by the MoveCode routine |
blockToLo | Low byte of the destination address of blocks moved by the MoveCode routine |
ldaZero | Contains code that's used for modifying the MoveCode routine |
Sound
| |
envelopeData | Data for the sound envelope for squealing tyres |
soundBuffer | Details of each sound channel's buffer status |
soundData | OSWORD blocks for making the various game sounds |
xStoreSound | Temporary storage for X so it can be preserved through calls to the sound routines |
Tactics
| |
sectionSteering | The optimum steering for each section |
Text
| |
characterDef | Storage for a character definition when printing characters |
driverNames1 | The first batch of driver names (1 of 5) |
driverNames2 | The second batch of driver names (2 of 5) |
driverNames3 | The third batch of driver names (3 of 5) |
driverNames4 | The fourth batch of driver names (4 of 5) |
driverNames5 | The fifth batch of driver names (5 of 5) |
endChecks | The screen address offset of the end of each chequered header line |
gearNumberText | The character to print on the gear stick for each gear |
headerBackground | Background colour for printing mode 7 headers |
headerForeground | Foreground colour for printing mode 7 headers |
headerSpaces | Number of spaces for printing mode 7 headers |
rowColours | Three different palettes for displaying even-odd rows in tables |
startChecks | The screen address offset of the start of each chequered header line |
token0 | Text for recursive token 0 |
token1 | Text for recursive token 1 |
token2 | Text for recursive token 2 |
token3 | Text for recursive token 3 |
token4 | Text for recursive token 4 |
token5 | Text for recursive token 5 |
token6 | Text for recursive token 6 |
token7 | Text for recursive token 7 |
token8 | Text for recursive token 8 |
token9 | Text for recursive token 9 |
token10 | Text for recursive token 10 |
token11 | Text for recursive token 11 |
token12 | Text for recursive token 12 |
token13 | Text for recursive token 13 |
token14 | Text for recursive token 14 |
token15 | Text for recursive token 15 |
token16 | Text for recursive token 16 |
token17 | Text for recursive token 17 |
token18 | Text for recursive token 18 |
token19 | Text for recursive token 19 |
token20 | Text for recursive token 20 |
token21 | Text for recursive token 21 |
token22 | Text for recursive token 22 |
token23 | Text for recursive token 23 |
token24 | Text for recursive token 24 |
token25 | Text for recursive token 25 |
token26 | Text for recursive token 26 |
token27 | Text for recursive token 27 |
token28 | Text for recursive token 28 |
token29 | Text for recursive token 29 |
token30 | Text for recursive token 30 |
token31 | Text for recursive token 31 |
token32 | Text for recursive token 32 |
token33 | Text for recursive token 33 |
token34 | Text for recursive token 34 |
token35 | Text for recursive token 35 |
token36 | Text for recursive token 36 |
token37 | Text for recursive token 37 |
token38 | Text for recursive token 38 |
token39 | Text for recursive token 39 |
token40 | Text for recursive token 40 |
token41 | Text for recursive token 41 |
token42 | Text for recursive token 42 |
token43 | Text for recursive token 43 |
token44 | Text for recursive token 44 |
token45 | Text for recursive token 45 |
token46 | Text for recursive token 46 |
token48 | Text for recursive token 48 |
token49 | Text for recursive token 49 |
token50 | Text for recursive token 50 |
token51 | Text for recursive token 51 |
token52 | Text for recursive token 52 |
token53 | Text for recursive token 53 |
tokenHi | high byte of the token address lookup table |
tokenLo | Low byte of the token address lookup table |
updateDriverInfo | Flag that controls whether the driver names are updated in the information block at the top of the screen |
xCursor | The cursor's x-coordinate, which can either be a pixel coordinate or a character row |
xHeader | Column number for printing mode 7 headers |
yCursor | The cursor's pixel y-coordinate |
yHeader | Row number for printing mode 7 headers |
Track data
| |
Track section data (Part 1 of 2) (Silverstone) | Data for the track sections |
Track section data (Part 2 of 2) (Silverstone) | Data for the track sections |
trackBaseSpeed (Silverstone) | The base speed for each race class, used when generating the best racing lines and non-player driver speeds |
trackCarSpacing (Silverstone) | The spacing between the cars at the start of a qualifying lap, in segments |
trackChecksum (Silverstone) | The track file's checksum |
trackGameName (Silverstone) | The game name |
trackGearPower (Silverstone) | The power for each gear |
trackGearRatio (Silverstone) | The gear ratio for each gear |
trackLapTimeMin (Silverstone) | Lap times for adjusting the race class (minutes) |
trackLapTimeSec (Silverstone) | Lap times for adjusting the race class (seconds) |
trackLength (Brands Hatch) | The length of the full track in terms of segments |
trackLength (Donington Park) | The length of the full track in terms of segments |
trackLength (Nürburgring) | The length of the full track in terms of segments |
trackLength (Oulton Park) | The length of the full track in terms of segments |
trackLength (Silverstone) | The length of the full track in terms of segments |
trackLength (Snetterton) | The length of the full track in terms of segments |
trackName (Silverstone) | The track name |
trackRaceSlowdown (Silverstone) | Slowdown factor for non-player drivers in the race |
trackSectionCount (Silverstone) | The total number of track sections * 8 |
trackSignData (Brands Hatch) | Base coordinates and object types for 16 road signs |
trackSignData (Donington Park) | Base coordinates and object types for 16 road signs |
trackSignData (Nürburgring) | Base coordinates and object types for 16 road signs |
trackSignData (Oulton Park) | Base coordinates and object types for 16 road signs |
trackSignData (Silverstone) | Base coordinates and object types for 16 road signs |
trackSignData (Snetterton) | Base coordinates and object types for 16 road signs |
trackStartLine (Brands Hatch) | The segment number of the starting line |
trackStartLine (Donington Park) | The segment number of the starting line |
trackStartLine (Nürburgring) | The segment number of the starting line |
trackStartLine (Oulton Park) | The segment number of the starting line |
trackStartLine (Silverstone) | The segment number of the starting line |
trackStartLine (Snetterton) | The segment number of the starting line |
trackStartPosition (Silverstone) | The starting race position of the player during a practice or qualifying lap |
trackSteering (Silverstone) | The optimum steering for non-player drivers on each track section |
trackTimerAdjust (Silverstone) | Adjustment factor for the speed of the timers to allow for fine-tuning of time on a per-track basis |
trackVectorCount (Brands Hatch) | The total number of segment vectors in the segment vector tables |
trackVectorCount (Donington Park) | The total number of segment vectors in the segment vector tables |
trackVectorCount (Nürburgring) | The total number of segment vectors in the segment vector tables |
trackVectorCount (Oulton Park) | The total number of segment vectors in the segment vector tables |
trackVectorCount (Silverstone) | The total number of segment vectors in the segment vector tables |
trackVectorCount (Snetterton) | The total number of segment vectors in the segment vector tables |
xTrackSegmentI (Silverstone) | Vector x-coordinates between two consecutive segments on the inside of the track |
xTrackSegmentO (Silverstone) | Vector x-coordinates from the inside to the outside of the track for each segment |
xTrackSignVector (Silverstone) | 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 |
yTrackSegmentI (Silverstone) | Vector y-coordinates between two consecutive segments on the inside of the track |
yTrackSignVector (Silverstone) | 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 |
zTrackSegmentI (Silverstone) | Vector z-coordinates between two consecutive segments on the inside of the track |
zTrackSegmentO (Silverstone) | Vector z-coordinates from the inside to the outside of the track for each segment |
zTrackSignVector (Silverstone) | 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 |
Track geometry
| |
horizonTrackWidth | The arc of the track at the horizon (i.e. the track width at the horizon), halved |
markerData | The segment flags for each of the three corner markers |
markerListIndex | The index of the corresponding entry in the track segment list for each of the three corner markers |
newSectionFetched | Flag that determines whether a new track section has been fetched |
previousSignNumber | Stores the number of the sign from the previous call to the BuildRoadSign routine |
segmentFlagMask | A mask for extracting bits from the segment flag byte when processing the track verge and corner markers |
segmentStep | The number of segments we step over when working backwards through the track segment buffer in GetSegmentAngles |
vergeColour | Lookup table for converting bits 0-2 of the segment flag byte into the verge colour scheme |
vergeDataLeft | Data (such as colour) for the verge marks on the left side of the track |
vergeDataRight | Data (such as colour) for the verge marks on the right side of the track |
vergeScale | Scale factors for the track verge width for different types of verge (larger value = smaller verge width) |
xMarkerHi | High byte of the x-axis distance between the track edge and the three corner markers |
xMarkerLo | Low byte of the x-axis distance between the track edge and the three corner markers |
xVergeLeftHi | High byte of segment yaw angles along the left track verge in front of the player (i.e. along the x-axis) |
xVergeLeftLo | Low byte of segment yaw angles along the left track verge in front of the player (i.e. along the x-axis) |
xVergeRightHi | High byte of segment yaw angles along the right track verge in front of the player (i.e. along the x-axis) |
xVergeRightLo | Low byte of segment yaw angles along the right track verge in front of the player (i.e. along the x-axis) |
yVergeLeft | Segment pitch angles along the left track verge in front of the player (i.e. along the up-down y-axis) |
yVergeRight | Segment pitch angles along the right track verge in front of the player (i.e. along the up-down y-axis) |
Workspace variables
| |
backgroundLeft | 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 |
backgroundRight | 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 |
bestLapMinutes | Minutes of each driver's best lap time, stored in BCD |
bestLapSeconds | Seconds of each driver's best lap time, stored in BCD |
bestLapTenths | Tenths of seconds of each driver's best lap time, stored in BCD |
blockCounter | A counter for the dash data block we are processing |
blockNumber | The dash data block number for the current edge |
blockOffset | The dash data offset for the current edge |
bottomTrackLine | The bottom track line for the current object part |
bumpyGrassHeight | The height of the bumps when driving over grass, which fluctuates randomly in the range 1 to 7 |
carProgress | Lowest byte of each car's progress through the segment it's in |
carRacingLine | Each car's position on the track in the x-axis |
carSectionSpeed | 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 |
carSpeedHi | High byte of each car's forward speed |
carStatus | Each car's status byte |
carSteering | Contains the steering to apply to each car |
clockMinutes | Minutes for the clock timer |
clockSeconds | Seconds for the clock timer |
clockTenths | Tenths of seconds for the clock timer |
clutchEngaged | Determines whether the clutch is engaged |
collisionDriver | The number of the driver being hit by the player's car |
colourData | Colour data for the current object part |
colourScheme | The number of the table colour scheme passed to the SetRowColours routine: |
configAssist | A key has been pressed to toggle computer assisted steering (CAS) |
configJoystick | A key has been pressed to set joystick or keyboard |
configPause | A key has been pressed to pause the game |
configStop | A key has been pressed that stops the race |
configVolume | A key has been pressed to change the volume |
currentPlayer | The number of the current player |
currentPosition | The position of the current player |
currentPositionBCD | The current race position in BCD |
debugSpinning | 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 |
directionFacing | The direction that our car is facing |
driverGridRow | The grid row for each driver (0 to 9) |
driverLapNumber | The current lap number for each driver |
driverPrinted | The number of the driver we just printed in the PrintPositionName routine |
driversInOrder | A list of driver numbers in order |
driversInOrder2 | Used to store a copy of the driversInOrder list |
driverSpeed | The average speed of this driver in the race (88 to 162) |
edgeDistanceHi | High byte of the distance between the player's car and the nearest track edge |
edgeDistanceLo | Low byte of the distance between the player's car and the nearest track edge |
edgePixel | The current edge, as a one-pixel byte |
edgePixelMask | The pixel mask for the previous edge |
edgeSegmentNumber | The number of the segment within the track segment list that is closest to the player's car |
edgeSegmentPointer | The index of the segment within the track verge buffer that is closest to the player's car |
edgeYawAngle | The yaw angle of the track segment that is closest to the player's car, from the point of view of the car |
engineStatus | Whether or not the engine is on |
engineTorque | The power being generated by the engine |
frontSegmentIndex | Used to store the index * 3 of the front track segment in the track segment buffer |
G | Temporary storage, used in a number of places |
gearChange | Used to store the direction of the gear change |
gearChangeKey | Determines whether or not a gear change key has been pressed |
gearNumber | The current gear number |
GG | Temporary storage, used in a number of places |
H | Temporary storage, used in a number of places |
heightAboveTrack | The car's height above the track, for when it is being dropped from the crane, or jumping from hitting the verge too fast |
HH | This byte does not appear to be used |
horizonLine | The track line number of the horizon |
horizonListIndex | 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) |
I | Temporary storage, used in a number of places |
II | Temporary storage, used in a number of places |
J | Temporary storage, used in a number of places |
JJ | Temporary storage, used in a number of places |
K | Temporary storage, used in a number of places |
L | Temporary storage, used in a number of places |
lapMinutes | Minutes for the lap timer |
lapSeconds | Seconds for the lap timer |
lapTenths | Tenths of seconds for the lap timer |
leaveTrackTimer | The leave track timer |
leftOfEdge | The fill colour to the left of the edge we are drawing |
leftSegment | For each track line, the index of the segment within the track segment list for the left verge |
leftTrackStart | For each track line, the block number where the track starts (i.e. the left edge of the black track) |
leftVergeStart | For each track line, the block number where the left track verge starts |
lineBufferAddrHi | The low byte of the screen address of each pixel in the line buffer |
lineBufferAddrLo | The low byte of the screen address of each pixel in the line buffer |
lineBufferPixel | The original screen contents of each pixel in the line buffer |
lineBufferSize | The size of the line buffer |
LL | Temporary storage, used in a number of places |
M | Temporary storage, used in a number of places |
mainLoopCounterLo | Low byte of the main loop counter, which increments on each iteration of the main driving loop |
markerNumber | The marker number that we are drawing in the DrawCornerMarkers routine |
markersToDraw | The number of corner markers to draw |
MM | Temporary storage, used in a number of places |
N | Temporary storage, used in a number of places |
nextBlockNumber | The dash data block number for the next edge |
nextEdge | The next edge that we are drawing as part of an object part (where applicable) |
nextEdgeCoord | The x-coordinate for the next edge |
NN | Temporary storage, used in a number of places |
numberOfLaps | The number of laps in the race (5, 10 or 20) |
objectDistanceHi | The high byte of the distance to the current object |
objectDistanceLo | The low byte of the distance to the current object |
objectNumber | The object number of the four-part car we are drawing |
objectPitchAngle | Each object's pitch angle |
objectSegmentHi | High byte of each object's segment, i.e. its position around on the track |
objectSegmentLo | Low byte of each object's segment, i.e. its position around on the track |
objectSize | The size of each of the objects (i.e. the scaled value of scaleUp for the object) |
objectStatus | Various status flags for each object |
objectType | The type of object to draw (0 to 12) |
objSectionSegmt | Each object's segment number within the current track section, counting from the start of the section |
objTrackSection | The number of the track section * 8 for each object |
objYawAngleHi | High byte of each object's yaw angle |
objYawAngleLo | Low byte of each object's yaw angle |
oddsOfEngineStart | The chances of the engine starting while revving the engine (the engine will start with a chance of 1 in oddsOfEngineStart) |
P | Temporary storage, used in a number of places |
pastHalfway | Stores which half of the track the player is in |
pixelMaskIndex | The index into the vergePixelMask table for the colour of the verge edge we are drawing in DrawSegmentEdge |
pixelMaskNoVerge | 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 |
pixelMaskVerge | Offset within the vergePixelMask table for segments that are close enough to show a verge, i.e. those within the verge depth of field |
playerHeading | 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 |
playerMoving | Flag to denote whether the player's car is moving |
playerPastSegment | 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) |
playerPitchAngle | The player's pitch angle |
playerSegmentIndex | Used to store the index * 3 of the track segment containing the player's car in the track segment buffer |
playerSpeedHi | High byte of the speed of the player's car along the track |
playerSpeedLo | Low byte of the speed of the player's car along the track |
playerYawAngleHi | High byte of the player's yaw angle |
playerYawAngleLo | Low byte of the player's yaw angle |
positionAhead | The number of the position ahead of the current player's position |
positionBehind | The number of the position behind the current player's position |
positionChangeBCD | The change in BCD for the player's race position |
positionNumber | Position numbers to show in the first column of the driver table |
PP | Temporary storage, used in a number of places |
pressingShiftArrow | Bit 7 is set if we are pressing SHIFT and right arrow (which restarts the game) |
prevBlockNumber | The dash data block number for the previous edge |
prevDriverSpeed06 | Bits 0-6 of the previous value of trackDriverSpeed when calculating the optimum steering for a track segment |
prevDriverSpeed7 | The previous value of trackDriverSpeed when calculating the optimum steering for a track segment, only used for accessing bit 7 |
prevEdgeInByte | Determines whether we are drawing two edges within the same pixel byte in DrawObjectEdge |
prevHorizonIndex | The value of horizonListIndex from the previous call to the GetTrackAndMarkers routine |
previousSteering | The previous value of sectionSteering when calculating the optimum steering for a track segment |
prevPitchIndex | The index of the pitch angles in the verge buffer for the previous entry in the verge buffer when drawing the verge edges |
prevSegmentIndex | Used to store the index * 3 of the previous track segment |
prevSegmentOffset | The segment coordinate offset for the previous segment when adding segments to the track segment list |
prevYawIndex | The index of the yaw angles in the verge buffer for the previous entry in the verge buffer when drawing the verge edges |
printMode | Determines how the next character is printed on-screen: |
processContact | Another car is close enough to the player's car for us to process car-on-car contact |
Q | Temporary storage, used in a number of places |
Temporary storage, used in a number of places | |
qualifyTimeEnding | Determines whether the time warnings have been shown at the end of the qualifying time: |
R | Temporary storage, used in a number of places |
raceStarted | Flag determining whether the race has started |
raceStarting | The current stage of the starting lights at the start of the race |
resetSectionList | Controls whether to reset the contents of the track section list |
revCount | The current rev count, as shown on the rev counter |
revsOnGearChange | The rev count when the gear was last changed |
rightGrassStart | For each track line, the block number where the grass starts to the right of the track |
rightOfEdge | The fill colour to the right of the edge we are drawing |
rightSegment | For each track line, the index of the segment within the track segment list for the right verge |
rightVergeStart | For each track line, the block number where the right track verge starts |
rowCounter | The table row number when printing the driver tables |
RR | Temporary storage, used in a number of places |
S | Temporary storage, used in a number of places |
scaleDown | The denominator scale factor for scaling an object scaffold (i.e. scale down) |
scaleUp | The nominator scale factor for scaling an object scaffold (i.e. scale up) |
secondAxis | The number of the second axis to calculate in the GetRotationMatrix routine |
sectionBehind | Used to store the number * 8 of the track section behind us when we drive backwards along the track |
sectionCounter | A counter for the track section we are processing |
sectionListPointer | 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 |
sectionListSize | The size of the track section list that's used when calculating the positions of the track verges |
sectionListStart | The start index of the track section list that's used when calculating the positions of the track verges |
sectionListValid | The index of the first valid entry in the track section list |
segmentCounter | A counter for the track segment we are processing |
segmentDirection | The relative direction of our car, to use when processing segments in the GetSegmentAngles routine |
segmentFlags | Flags for a track segment in the track segment buffer |
segmentListPointer | The index of the current entry in the track segment list |
segmentListRight | The index of the last entry in the track segment list for the right side of the track |
segmentOffset | The offset to use for the segment being processed in the GetSegmentAngles routine |
segmentSteering | The carSteering value to steer round the corner for a track segment in the track segment buffer |
segmentVector | The segment vector number for a track segment in the track segment buffer |
setSpeedForDriver | The driver whose speed will be set on the next call to the SetDriverSpeed routine |
soundRevCount | The current pitch for the revs sound |
soundRevTarget | The target pitch for the revs sound |
spinPitchAngle | The amount of pitch angle spin that is being applied to the player's car |
SS | Temporary storage, used in a number of places |
startingStack | The value of the stack pointer when the game starts, so we can restore it when restarting the game |
T | Temporary storage, used in a number of places |
thisDriver | The number of the car we are currently drawing |
thisEdge | The current edge that we are drawing as part of an object part |
thisObjectIndex | The index of the current object part's data as we work our way through an object's constituent parts |
thisPitchIndex | The index of the pitch angle in the track segment list for the verge we are processing |
thisPosition | The position of the car that we are analysing in the MoveAndDrawCars routine |
thisSectionFlags | The track section flags for the current track section |
thisSectionNumber | The number * 8 of the current section number when calculating the track verges |
thisSignNumber | The sign number that we are currently building |
thisVectorNumber | The number of the segment vector for the current track segment, ready to store in the track segment buffer as segmentVector |
thisYawIndex | The index of the yaw angle in the track segment list for the verge we are processing |
throttleBrake | The amount of throttle or brake being applied |
throttleBrakeState | Denotes whether the throttle or brake are being applied |
timerAdjust | A counter for implementing the clock speed adjustment |
topTrackLine | The top track line for the current object part |
totalPointsTop | Top byte of total accumulated points for each driver |
totalRaceMinutes | Minutes of each driver's total race time, stored in BCD |
totalRaceSeconds | Seconds of each driver's total race time, stored in BCD |
totalRaceTenths | Tenths of seconds of each driver's total race time, stored in BCD |
trackBaseSpeed | The base speed for each race class, used when generating the best racing lines and non-player driver speeds |
trackCarSpacing | The spacing between the cars at the start of a qualifying lap, in segments |
trackDriverSpeed | The maximum speed for non-player drivers on this section of the track |
trackGearPower | The power for each gear |
trackGearRatio | The gear ratio for each gear |
trackLapTimeMin | Lap times for adjusting the race class (minutes) |
trackLapTimeSec | Lap times for adjusting the race class (seconds) |
trackLength | The length of the full track in terms of segments |
trackRaceSlowdown | Slowdown factor for non-player drivers in the race |
trackSectionCount | The total number of track sections * 8 |
trackSectionData | Various data for the track section: |
trackSectionFlag | Various flags for the track section: |
trackSectionFrom | The number of the first segment vector in each section, which enables us to fetch the segment vectors for a given track section |
trackSectionSize | The length of each track section in terms of segments |
trackSectionTurn | The number of the segment in the section where non-player drivers should start turning in preparation for the next section |
trackSignData | Base coordinates and object types for 16 road signs |
trackStartLine | The segment number of the starting line |
trackStartPosition | The starting race position of the player during a practice or qualifying lap |
trackSteering | The optimum steering for non-player drivers to apply on each track section |
trackTimerAdjust | Adjustment factor for the speed of the timers to allow for fine-tuning of time on a per-track basis |
trackVectorCount | The total number of segment vectors in the segment vector tables |
TT | Temporary storage, used in a number of places |
turnCounter | A counter for the length of turn when calculating the optimum steering for a track segment |
tyreRightEdge | Storage for the first track pixel byte along the right edge of the left tyre |
U | Temporary storage, used in a number of places |
updateBackground | Flag to indicate we have changed the background colour of a track line |
updateDrivingInfo | Determines which parts of the driving information should be updated at the top of the screen |
UU | Temporary storage, used in a number of places |
V | Temporary storage, used in a number of places |
vectorNumber | The segment vector number when building car objects in the BuildCarObjects routine |
vergeBufferEnd | The index of the last entry in the track verge buffer for the side of the track we are currently drawing in DrawTrack |
vergeDepthOfField | 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 |
vergeOnScreenEdge | Determines whether the verge edge we are drawing for the current segment is partially off-screen |
vergeTopLeft | The track line just above the segment at vergeDepthOfField (i.e. the furthest segment that might contain a verge) when drawing the left verge |
vergeTopRight | The track line just above the segment at vergeDepthOfField (i.e. the furthest segment that might contain a verge) when drawing the right verge |
vergeType | The type of verge that is currently being drawn in the DrawTrack routine: |
volumeLevel | The game's volume level |
VV | Temporary storage, used in a number of places |
W | Temporary storage, used in a number of places |
WW | Temporary storage, used in a number of places |
xCoord1Hi | The high byte of the x-coordinate of the temporary coordinate variable (xCoord1, yCoord1, zCoord1) |
xCoord1Lo | The low byte of the x-coordinate of the temporary coordinate variable (xCoord1, yCoord1, zCoord1) |
xCoord2Hi | The high byte of the x-coordinate of the temporary coordinate variable (xCoord2, yCoord2, zCoord2) |
xCoord2Lo | The low byte of the x-coordinate of the temporary coordinate variable (xCoord2, yCoord2, zCoord2) |
xHelmetCoordHi | High byte of the x-coordinate of the body/helmet object in the four-object car |
xHelmetCoordLo | Low byte of the x-coordinate of the body/helmet object in the four-object car |
xPixelCoord | The pixel x-coordinate of the centre of the current object |
xPrevVelocityHi | 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) |
xPrevVelocityLo | 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) |
xSegmentCoordIHi | The high byte of the 3D x-coordinate for an inner track segment in the track segment buffer |
xSegmentCoordILo | The low byte of the 3D x-coordinate for an inner track segment in the track segment buffer |
xSegmentCoordOHi | The high byte of the 3D x-coordinate for an outer track segment in the track segment buffer |
xSegmentCoordOLo | The low byte of the 3D x-coordinate for an outer track segment in the track segment buffer |
xSpinVelocityHi | Used to store the high byte of the scaled spin yaw angle during the driving model calculations |
xSpinVelocityLo | Used to store the low byte of the scaled spin yaw angle during the driving model calculations |
xStoreDraw | Temporary storage for X so it can be preserved through calls to DrawCarInPosition, DrawCarOrSign and DrawSegmentEdge |
xTrackSectionIHi | High byte of the x-coordinate of the starting point of the inner verge of each track section |
xTrackSectionILo | Low byte of the x-coordinate of the starting point of the inner verge of each track section |
xTrackSectionOHi | High byte of the x-coordinate of the starting point of the outside verge of each track section |
xTrackSectionOLo | Low byte of the x-coordinate of the starting point of the outside verge of each track section |
xTrackSegmentI | Vector x-coordinates between two consecutive segments on the inside of the track |
xTrackSegmentO | Vector x-coordinates from the inside to the outside of the track for each segment |
xTrackSignVector | 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 |
yCoord1Hi | The high byte of the y-coordinate of the temporary coordinate variable (xCoord1, yCoord1, zCoord1) |
yCoord1Lo | The low byte of the y-coordinate of the temporary coordinate variable (xCoord1, yCoord1, zCoord1) |
yCoord2Hi | The high byte of the y-coordinate of the temporary coordinate variable (xCoord2, yCoord2, zCoord2) |
yCoord2Lo | The low byte of the y-coordinate of the temporary coordinate variable (xCoord2, yCoord2, zCoord2) |
yGravityDelta | 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 |
yHelmetCoordHi | High byte of the y-coordinate of the body/helmet object in the four-object car |
yHelmetCoordLo | Low byte of the y-coordinate of the body/helmet object in the four-object car |
yJumpHeight | 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 |
yPixelCoord | The pixel y-coordinate of the centre of the current object |
ySegmentCoordIHi | The high byte of the 3D y-coordinate for an inner track segment in the track segment buffer |
ySegmentCoordILo | The low byte of the 3D y-coordinate for an inner track segment in the track segment buffer |
ySegmentCoordOHi | The high byte of the 3D y-coordinate for an outer track segment in the track segment buffer |
ySegmentCoordOLo | The low byte of the 3D y-coordinate for an outer track segment in the track segment buffer |
yTrackSectionIHi | High byte of the y-coordinate of the starting point of the inner verge of each track section |
yTrackSectionILo | Low byte of the y-coordinate of the starting point of the inner verge of each track section |
yTrackSegmentI | Vector y-coordinates between two consecutive segments on the inside of the track |
yTrackSignVector | 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 |
zCoord1Hi | The high byte of the z-coordinate of the temporary coordinate variable (xCoord1, yCoord1, zCoord1) |
zCoord1Lo | The low byte of the z-coordinate of the temporary coordinate variable (xCoord1, yCoord1, zCoord1) |
zCoord2Hi | The high byte of the z-coordinate of the temporary coordinate variable (xCoord2, yCoord2, zCoord2) |
zCoord2Lo | The low byte of the z-coordinate of the temporary coordinate variable (xCoord2, yCoord2, zCoord2) |
zHelmetCoordHi | High byte of the z-coordinate of the body/helmet object in the four-object car |
zHelmetCoordLo | Low byte of the z-coordinate of the body/helmet object in the four-object car |
zSegmentCoordIHi | The high byte of the 3D z-coordinate for an inner track segment in the track segment buffer |
zSegmentCoordILo | The low byte of the 3D z-coordinate for an inner track segment in the track segment buffer |
zSegmentCoordOHi | The high byte of the 3D z-coordinate for an outer track segment in the track segment buffer |
zSegmentCoordOLo | The low byte of the 3D z-coordinate for an outer track segment in the track segment buffer |
zTrackSectionIHi | High byte of the z-coordinate of the starting point of the inner verge of each track section |
zTrackSectionILo | Low byte of the z-coordinate of the starting point of the inner verge of each track section |
zTrackSectionOHi | High byte of the z-coordinate of the starting point of the outside verge of each track section |
zTrackSectionOLo | Low byte of the z-coordinate of the starting point of the outside verge of each track section |
zTrackSegmentI | Vector z-coordinates between two consecutive segments on the inside of the track |
zTrackSegmentO | Vector z-coordinates from the inside to the outside of the track for each segment |
zTrackSignVector | 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 |