If you are not sure if the website you would like to visit is secure, you can verify it here. Enter the website address of the page and see parts of its content and the thumbnail images on this site. None (if any) dangerous scripts on the referenced page will be executed. Additionally, if the selected site contains subpages, you can verify it (review) in batches containing 5 pages.
favicon.ico: aviator.bbcelite.com - Fully documented source code f.

site address: aviator.bbcelite.com

site title: Fully documented source code for Aviator on the BBC Micro

Our opinion (on Friday 23 October 2026 11:15:08 UTC):

GREEN status (no comments) - no comments
After content analysis of this website we propose the following hashtags:


page from cache:  10 secunds ago
Meta tags:
author=;
description=Fully documented source code disassembly for Acornsoft Aviator on the BBC Micro, with lots of deep dive articles explaining how every aspect of the game works.;

Headings (most frequently used words):

the, aviator, on, bbc, micro, code, for, fully, documented, source, suggestions, your, visit, if, you, want, to, play, with, similar, projects, 100, handcrafted,

Text of the page (most frequently used words):
the (575), and (140), for (136), part (134), line (70), aviator (52), code (51), indicator (47), point (46), #source (44), byte (42), high (38), alien (37), that (34), object (34), coordinates (31), main (30), screen (30), variables (28), this (28), draw (28), coordinate (28), calculate (27), game (26), process (26), are (25), update (24), from (23), start (22), set (21), bit (21), key (21), lines (20), canopy (20), low (20), check (19), points (18), whether (18), objects (18), with (17), number (17), aliens (17), calculations (17), flight (17), value (17), colour (17), plane (17), bbc (16), micro (16), subroutines (16), each (16), bytes (16), pixel (16), list (15), all (15), which (15), loop (15), storage (15), mainloop (15), updateindicator (15), how (15), runway (14), score (14), you (14), out (13), visibility (13), can (13), routines (13), sound (13), lookup (13), table (13), buffer (13), site (13), more (12), into (12), vector (12), make (12), flying (12), drawing (12), any (11), one (11), numbers (11), have (11), current (11), dashboard (11), setobjectcoords (11), end (10), move (10), matrix (10), scale (10), variable (9), random (9), working (9), when (9), feeding (9), landing (9), two (9), radar (9), right (9), using (9), apply (9), model (9), hand (9), drawcanopyline (9), project (9), fully (9), mark (8), moxon (8), every (8), used (8), its (8), down (8), next (8), four (8), forces (8), group (8), about (8), processline (7), new (7), hit (7), bullets (7), been (7), theme (7), engine (7), keys (7), multiply (7), presses (7), fuel (7), matrices (7), processlanding (7), applyflightmodel (7), slope (7), indicators (7), want (7), documented (7), software (6), archaeology (6), other (6), workspaces (6), they (6), distance (6), visible (6), linestohide (6), reset (6), horizon (6), acornsville (6), status (6), through (6), off (6), their (6), turn (6), under (6), logger (6), undercarriage (6), converting (6), graphics (6), vertical (6), clipped (6), drawclippedline (6), logic (6), pre (6), sites (5), category (5), indexes (5), workspace (5), routine (5), page (5), behind (5), processrunwayline (5), processing (5), specified (5), copy (5), tables (5), shown (5), starting (5), work (5), various (5), updatealiens (5), cycle (5), not (5), ground (5), adjust (5), vdu (5), edges (5), skills (5), display (5), multiplication (5), nibble (5), left (5), division (5), scaled (5), add (5), fire (5), joystick (5), read (5), top (5), stalling (5), rotation (5), delta (5), clipstartofline (5), checking (5), map (5), deep (5), your (5), details (4), writing (4), acorn (4), index (4), entry (4), temporary (4), linestoshow (4), moving (4), clip (4), return (4), extract (4), them (4), along (4), just (4), too (4), time (4), slots (4), dormant (4), slot (4), print (4), way (4), making (4), thrust (4), view (4), skill (4), sine (4), values (4), scaledown (4), factors (4), maths (4), stores (4), counter (4), fill (4), related (4), first (4), position (4), flaps (4), address (4), standard (4), rudder (4), updateflightmodel (4), taxiing (4), use (4), direction (4), artificial (4), deltas (4), world (4), geometry (4), files (4), original (4), dive (4), articles (4), very (4), good (4), projects (4), contact (3), land (3), lander (3), archimedes (3), sentinel (3), revs (3), elite (3), where (3), subroutine (3), jump (3), stack (3), adding (3), result (3), bullet (3), multi (3), correct (3), calculating (3), within (3), axis (3), randomnumbers (3), delay (3), call (3), message (3), stage (3), exploding (3), killing (3), turbulence (3), towards (3), eight (3), town (3), scores (3), stages (3), has (3), award (3), accordingly (3), free (3), there (3), attack (3), change (3), weak (3), create (3), see (3), pitch (3), volume (3), envelope (3), gunfire (3), command (3), most (3), clear (3), testing (3), checks (3), bridge (3), street (3), fit (3), different (3), amount (3), tank (3), keytable2 (3), keytable1 (3), keyboard (3), elevator (3), logical (3), movement (3), restrict (3), pitching (3), roll (3), then (3), over (3), velocity (3), convert (3), aerodynamic (3), applyaerodynamics (3), spitfire (3), max (3), min (3), erasing (3), modify (3), erase (3), drawvectorline (3), horizontal (3), depending (3), maximum (3), altimeter (3), slip (3), single (3), relative (3), anchor (3), projectpoint (3), exploring (3), what (3), like (3), play (3), history (3), development (3), useful (3), building (3), commentary (3), crammond (3), find (3), but (3), computers (3), handcrafted (3), 100 (3), might (3), homepage (2), tubewalker (2), tube (2), foot (2), walking (2), john (2), groats (2), travel (2), 6502 (2), cross (2), usage (2), analysis (2), click (2), show (2), important (2), blocks (2), furthest (2), aren (2), outline (2), dashes (2), onto (2), rotating (2), item (2), xtemp1 (2), centiseconds (2), since (2), late (2), explosion (2), get (2), state (2), three (2), ready (2), ids (2), air (2), wave (2), size (2), take (2), does (2), yet (2), spot (2), checkifalienishit (2), close (2), guns (2), sounds (2), data (2), airspeed (2), explosions (2), image (2), cursor (2), terminate (2), lower (2), memory (2), around (2), setting (2), zone (2), text (2), increase (2), destroying (2), remove (2), perform (2), checkflyingskills (2), times (2), shifting (2), places (2), doesn (2), bits (2), scaleup (2), sign (2), dividescaled (2), unsigned (2), signs (2), addition (2), during (2), stop (2), core (2), internal (2), priority (2), scanned (2), second (2), scan (2), axes (2), aileron (2), brakes (2), plot (2), black (2), multiple (2), rows (2), leaving (2), alone (2), pixels (2), corners (2), batch (2), level (2), going (2), faster (2), than (2), crashing (2), effects (2), iterations (2), xlinear (2), applyturnandthrust (2), dxturn (2), rate (2), aircraft (2), controls (2), centre (2), before (2), aerodynamics (2), dial (2), bar (2), our (2), steep (2), shallow (2), compass (2), range (2), minute (2), blip (2), gauge (2), cycling (2), hide (2), calculation (2), dials (2), setobjpointcoords (2), projected (2), addtemptopoint (2), hidden (2), commented (2), annotated (2), versions (2), version (2), information (2), makes (2), miscellaneous (2), secrets (2), trigonometry (2), addresses (2), smooth (2), animation (2), many (2), between (2), clock (2), wings (2), recovery (2), dives (2), works (2), hood (2), playing (2), links (2), own (2), explore (2), terminology (2), came (2), quick (2), guide (2), home (2), visit (2), tools (2), some (2), modern (2), disc (2), functionality (2), old (2), may (2), isn (2), try (2), keep (2), don (2), place (2), also (2), interested (2), repository (2), emulator (2), contains (2), buildable (2), straight (2), who (2), geoff (2), reconstructed (2), instruction, counts, stats, statistics, label, references, analyses, above, mainly, lot, zero, share, block, collections, maxobjdistance, maxlinedistance, updatelinestoshow, showorhideline, lists, resetlinelists, portion, construct, middle, projecting, processlinestoshow, unprocessed, processlinestohide, final, transforming, processhorizonline, checkobjdistance, checklinedistance, keeping, pointer, setrandomnumber, resetvariable, nextrandomnumber, loops, copyworktopoint, ytemp1, ztemp1, copytemptopoint, copypointtowork, flag, passed, last, checktimepassed, copying, generators, utility, toolatetext, hittimer, hitobjectid, currently, feedingstage, explodeto, explodefrom, dormantalienscore, distancefromhit, iteration, alientomove, alienstatus, alienstate, alienslot, alienscore, alienobjectid, updatebullets, whole, destroyed, reaches, double, waiting, promote, manage, vacancy, wake, progress, cycles, enabled, spawn, spawnalien, grows, bigger, feeds, resizefeedingalien, column, row, printtoolate, trail, gettrailvectorstep, getalienweakspot, send, fireguns, explode, split, apart, explodealien, initiate, enough, hitting, checkalienweakspot, reached, alieninacornsville, tactics, while, sounddata26, osword, sounddata, envelopes, envelopedata, toggleenginesound, resetenginesound, pressed, processvolumekeys, either, makesoundenvelope, makesound, choppiness, affected, makeenginesound, define, defineenvelope, please, wait, loads, pleasewaittext, string, loading, loaddashboard, disabling, disablecursor, terminategame, startgame, mode, load, setupscreen, prepare, resetvariables, newgame, rivets, drawcanopy, setup, sizes, zones, skillzonesize, skillzonelo, skillzonehi, scoretext, scorelo, scorehi, highscorelo, highscorehi, updatescore, updatehighscore, beep, scorepoints, required, scorehitpoints, removescore, showing, printscoretext, printscore, displayscore, finer, performing, tests, safely, checkbridgeandtown, awarding, buzzing, scoring, timestable, sinlo, sinhi, shift4right, shift4left, matrix4lo, matrix4hi, matrix3lo, matrix3hi, matrix2lo, matrix2hi, matrix1lo, matrix1hi, lownibble, highnibble, divisionlo, divisionhi, sine16bit, until, retaining, sensitivity, smaller, scalesigned, balance, results, divisions, done, negate, negate16bit, multiply8x8, multiply8x16, multiply4x16, multiply16x16mix, multiply16x16bit0, multiply16x16, divide, subtract, addscaled, add16x16bit0, subtraction, only, timely, fashion, previoustime, mainloopcounter, handle, spend, least, successful, switched, enable, increment, invaded, firing, appropriate, statuses, runs, keytable2lo, keytable2hi, keytable1lo, keytable1hi, updatekeylogger, toggle, togglejoystick, specific, scankeyboard, button, readjoystick, adc, channels, readadcchannel, processotherkeys, joysticks, ylookuplo, ylookuphi, xlookuplo, xlookuphi, vdupoint, vduplot, vdumove, vdudraw, physical, setlogicalcolour, white, setcolourtowhite, setcolourtoblack, flip, colourcycle, colourlogic, flipcolours, particular, avoiding, fillcanopyrows, fillcanopy, square, rivet, across, drawrivet, gun, sights, drawgunsights, drawcanopyview, diagonal, drawcanopycorners, clearrows, clearcanopy, general, clearing, signed, powers, scalefactor, fuelusedlo, fuelusedhi, fuellevel, multiplied, scaling, forcefactor, moved, axischangerate, brake, throttle, control, setengine, relevant, scaleflightforces, altitude, scalebyaltitude, retract, 150, mph, retractflapsiffast, successfully, touched, without, tilt, backwards, touching, emergency, bumpy, rolling, yawing, moments, due, yaw, rates, getmoments, 65th, full, fillupfueltank, flash, crash, checkplaneonrunway, ylinear, zlinear, dyturn, dzturn, rotate, according, vectors, sliprate, near, perspective, effect, gravity, springs, primary, ailerons, implement, instant, feature, applyflightcontrol, bumpiness, applybumpyride, figures, simulate, wing, adjustvelocity, adjustturn, adjustrotation, realistic, linebufferw, linebufferv, linebuffert, linebuffers, linebufferr, linebufferg, colour2row, colour2r2l, colour2l2r, colour1row, colour1r2l, colour1l2r, swaplinepoints, modifydrawroutine, erasecanopylines, step, orthogonal, drawortholine, drawjoystickcross, drawindicatorline, limits, drawindicatorhand, drawindicatorbar, half, drawhalfhorizon, was, edge, steepness, completely, best, clipbestendofline, yradarbuffer, yjoycoord, ydeltamax, xradarbuffer, xjoycoord, xdeltamax, heading, later, previouscompass, joycoord, minimum, indicatormin, indicatormax, indicatorlinev, indicatorlineu, indicatorlinet, indicatorlinej, indicatorlinei, base, indicatorbase, indicator7to11, indicator0to6, quadrant, dialquadrant, large, altitudeminutes, updateradarblip, bottom, speed, small, hour, updatefuelgauge, subsequent, updatedashboard, upside, showupsidedownbar, resetradar, indicatoru, indicatort, indicatorf, indicatorb, dot, getradarvector, gethandvector, drawradarblip, drawfuelpixel, artificialhorizon, radars, zpointhi, zobjectpoint, zobjectlo, zobjecthi, zgroupobjecthi, yobjectpoint, yobjectlo, yobjecthi, 255, xtemppoint2hi, 254, xtemppoint1hi, xpointhi, xobjectpoint, xobjectlo, xobjecthi, 252, xlinearhi, xgroupobjecthi, 253, xgravityhi, sequences, together, objectpoints, objectgroup, total, numberoflines, linestartpointid, lineendpointid, groupstart, indicate, calculated, setpointvisibility, origin, setpointtoorigin, setpointcoords, setpoint, factor, setobjecttoorigin, applicable, groups, location, setmatrixentry, setmatrices, angles, projectaxisangle, nextobjectgroup, overflowed, store, another, overflows, addpointtoobject, transformations, configuration, overview, structured, file, snippets, tell, clues, binary, sure, press, gets, recorded, loggers, generates, cosine, inside, algorithms, arithmetic, thing, scheduling, tasks, sequence, events, program, flow, task, scheduler, caching, buffers, colours, super, animated, flicker, serious, consequences, spots, detecting, hits, spawning, leave, tracer, trails, sky, planning, civilisation, life, growth, patterns, everything, tailored, fast, hard, coded, hands, bridges, behaviour, dangerous, parts, offs, landings, modelling, rip, clean, ripping, simulates, tracking, features, mentioned, manual, matching, simulation, simulating, deciding, frames, reference, translating, space, lie, heart, reconstructing, placing, manages, trees, hills, towns, fundamental, elements, discover, weaves, magic, analysed, here, 21st, century, could, benefit, website, short, giants, whose, shoulders, stands, acknowledgements, collection, pages, found, build, story, need, know, beginning, written, geoffrey, acornsoft, 1983, rights, reserved, 2021, course, built, typically, emulators, imagers, replicate, rather, providing, themselves, obviously, exist, disassemblies, hacks, love, fact, things, help, manuals, simple, environment, happy, delegate, being, honest, reason, attractions, possible, person, understand, layer, electrons, gates, ics, cpus, operating, systems, classic, games, commanders, electron, commodore, apple, nes, similar, produce, loaded, experiment, assembled, enjoy, accompanying, github, prefer, lighter, explorations, scheme, clicking, icons, corner, knows, jumping, though, explain, these, notes, lots, browser, journey, following, suggestions, note, hasn, released, instead, lovingly, disassembly, binaries, produces, identical, names, invention, itself, matches, hope, will, those, learn, tick, provided, educational, non, profit, basis, aim, helping, people, appreciate, sim, legend, gaming, simulations, epic, simulator, explained, skip, navigation,


Text of the page (random words):
process landing applyflightmodel part 7 of 7 calculate fuel usage applyturnandthrust part 1 of 2 calculate the dxturn dyturn dzturn vector applyturnandthrust part 2 of 2 calculate the xlinear ylinear zlinear vector checkplaneonrunway check whether the plane is over the runway crash make a crashing sound flash the canopy and start a new game fillupfueltank fill up the fuel tank by 1 65th of a full tank every four iterations of the main loop getmoments calculate the pitching rolling and yawing moments due to the current pitch roll and yaw rates processlanding part 1 of 7 if this is an emergency landing make the landing a bumpy one processlanding part 2 of 7 if we are too high to be touching the ground then we can t be landing so stop the landing checks processlanding part 3 of 7 if we are taxiing restrict the plane s vertical movement and roll processlanding part 4 of 7 if we are taxiing with the undercarriage up restrict pitching processlanding part 5 of 7 if we are taxiing with the undercarriage down restrict pitching and tilt the plane backwards processlanding part 6 of 7 if we are not taxiing process the landing processlanding part 7 of 7 we have successfully touched down without crashing so process the effects of landing on the plane retractflapsiffast retract the flaps if we are going faster than 150 mph scalebyaltitude multiply the high byte of the plane s altitude by a 16 bit number scaleflightforces scale the flight forces by the relevant scale factors setengine set the engine status updateflightmodel part 1 of 4 apply any axis control key presses to the current axis values updateflightmodel part 2 of 4 apply any throttle key presses to the current thrust value updateflightmodel part 3 of 4 process the undercarriage brake flaps and fire keys updateflightmodel part 4 of 4 set up matrices apply the flight model and update the dashboard variables axischangerate stores the amount by which the three axes of movement change when the aileron elevator or rudder are moved forcefactor the factors by which the flight forces are multiplied as part of the scaling process fuellevel the current fuel level fuelusedhi the high byte of the current batch of fuel used fuelusedlo the low byte of the current batch of fuel used scalefactor scale factors for the flight forces in signed powers of 2 graphics general graphics routines for drawing the canopy clearing the screen and so on subroutines clearcanopy clear the canopy to black leaving the canopy edges alone clearrows clear the specified number of rows on screen drawcanopycorners draw the diagonal corners at the top of the canopy drawcanopyview draw the main view out of the canopy drawgunsights draw the canopy corners and the gun sights if shown drawrivet draw a square rivet 2 pixels across 4 pixels high fillcanopy fill the canopy with a specified colour leaving the canopy edges alone fillcanopyrows fill multiple screen rows with a particular colour avoiding the canopy edges flipcolours flip the values of colourcycle and colourlogic to cycle to the next colour state setcolourtoblack set a logical colour to black setcolourtowhite set a logical colour to white setlogicalcolour set a logical colour to a physical colour vdudraw draw a line using the standard vdu routines vdumove move the graphics cursor using the standard vdu routines vduplot perform a plot command using the standard vdu routines vdupoint draw a point on screen using the standard vdu routines variables xlookuphi lookup table for converting pixel x coordinate to high byte of screen address xlookuplo lookup table for converting pixel x coordinate to low byte of screen address 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 keyboard processing key presses and joysticks subroutines processotherkeys apply the undercarriage brakes flaps and fire keys readadcchannel read the joystick position from one of the adc channels readjoystick read the joystick axes and fire button and update the aileron elevator and fire key values accordingly scankeyboard scan the keyboard for a specific key togglejoystick toggle the joystick setting updatekeylogger scan the keyboard for keys in the two key tables and update the key logger variables keytable1 internal key numbers of high priority keys that are scanned first keytable1hi key logger value high byte for key presses in keytable1 keytable1lo key logger value low byte for key presses in keytable1 keytable2 internal key numbers of lower priority keys that are scanned second keytable2hi key logger value high byte for key presses in keytable2 keytable2lo key logger value low byte for key presses in keytable2 main loop the core game loop that runs aviator subroutines mainloop part 1 of 15 start the main loop by processing gunfire and bullets mainloop part 2 of 15 reset object statuses and related points mainloop part 3 of 15 make the sound of firing if appropriate mainloop part 4 of 15 check whether aliens have invaded acornsville mainloop part 5 of 15 update lines check flying skills increment main loop counter update the radar mainloop part 6 of 15 check whether any aliens have been hit mainloop part 7 of 15 process the terminate key mainloop part 8 of 15 if we fire the guns on the runway enable the theme mainloop part 9 of 15 fill up the tank if the engine is switched off and process the volume keys mainloop part 10 of 15 award points for a successful landing mainloop part 11 of 15 process engine start and stop mainloop part 12 of 15 spend at least 9 centiseconds processing lines from the linestohide list mainloop part 13 of 15 process more lines and update the view out of the canopy mainloop part 14 of 15 handle the score display mainloop part 15 of 15 update the status of any new line points variables mainloopcounter the main loop counter previoustime stores the current time low byte only so we can process lines in a timely fashion during the main loop maths addition subtraction multiplication division subroutines add16x16bit0 add two 16 bit numbers that have their signs in bit 0 addscaled add or subtract a scaled amount to a variable dividescaled divide a 16 bit number by a scaled 16 bit number multiply16x16 multiply two unsigned 16 bit numbers multiply16x16bit0 multiply two 16 bit numbers that have their signs in bit 0 multiply16x16mix multiply two 16 bit numbers with different sign bits one in bit 7 of the high byte the other in bit 0 of the low byte multiply4x16 multiply a 4 bit and a 16 bit number multiply8x16 multiply an 8 bit and a 16 bit number multiply8x8 multiply two unsigned 8 bit numbers negate16bit negate a 16 bit number scaledown part 1 of 4 scale down the results of divisions done using the scaleup and dividescaled routines scaledown part 2 of 4 balance the scale factors for the x and y coordinates scaledown part 3 of 4 scale the x coordinate scaledown part 4 of 4 scale the y coordinate scalesigned scale an indicator value by 4 or 16 retaining the sign and adding sensitivity for smaller values scaleup scale up a 16 bit number until it doesn t fit into 16 bits any more sine16bit calculate the sine of a 16 bit number variables divisionhi division lookup table divisionlo division lookup table highnibble lookup table for the high nibble of a value lownibble lookup table for the low nibble of a value matrix1hi the high bytes of matrix 1 matrix1lo the low bytes of matrix 1 matrix2hi the high bytes of matrix 2 matrix2lo the low bytes of matrix 2 matrix3hi the high bytes of matrix 3 matrix3lo the low bytes of matrix 3 matrix4hi the high bytes of matrix 4 matrix4lo the low bytes of matrix 4 shift4left lookup table for shifting a byte four places to the left to extract the low nibble shift4right lookup table for shifting a byte four places to the right to extract the high nibble sinhi high byte of the sine lookup table sinlo low byte of the sine lookup table timestable lookup table for multiplication times tables scoring awarding points for flying under the bridge buzzing the town and killing aliens subroutines checkbridgeandtown check whether we are safely flying under the bridge or down the main street in acornsville checkflyingskills part 1 of 2 check whether we are performing one of the tests of flying skill checkflyingskills part 2 of 2 perform finer checks to see if we are flying under the bridge or along the main street of the town displayscore print the scores on screen printscore print a score printscoretext print text when showing the scores on screen removescore remove the score display from the screen scorehitpoints award points for destroying an alien and remove the alien from its slot and the radar if required scorepoints increase the score and make a beep updatehighscore if this is a high score update the high score updatescore increase the score by a specified number of points variables highscorehi high score low byte highscorelo high score high byte scorehi score high byte scorelo score low byte scoretext the high score text skillzonehi high byte of the skill zone coordinates for testing flying skills skillzonelo low byte of the skill zone coordinates for testing flying skills skillzonesize sizes of the skill zones for testing flying skills setup moving code around and setting up the game subroutines drawcanopy move code around clear the edges of the canopy view draw the canopy edges and rivets and jump to the main code entry the main entry point for the game move code into lower memory and call it newgame start a new game resetvariables reset most variables to prepare for a new flight setupscreen set up the screen mode and load the dashboard image startgame reset the high score set up the gunfire sound envelope and start a new game terminategame terminate the current game variables disablecursor the vdu command for disabling the cursor loaddashboard the os command string for loading the dashboard image pleasewaittext the please wait message shown when the game loads sound gunfire explosions engine sounds and more subroutines defineenvelope define a sound envelope makeenginesound make the engine sound with the choppiness and pitch affected by thrust and airspeed makesound make a sound makesoundenvelope either make a sound or set up an envelope processvolumekeys adjust the volume when the volume keys are pressed resetenginesound reset the pitch of the engine sound toggleenginesound turn the engine sound on or off variables envelopedata data for two sound envelopes sounddata osword blocks for making the various game sounds sounddata26 the sound of us making contact with the ground while landing the theme alien tactics feeding stages bullets and guns subroutines alieninacornsville move an alien towards acornsville and check whether it has reached it yet and if so end the game checkalienweakspot check whether an object is close enough to an alien s weak spot to be hitting it checkifalienishit part 1 of 2 extract the alien s feeding stage ready for the hit calculations in part 2 checkifalienishit part 2 of 2 check to see whether the alien has been hit and if so initiate the explosion explodealien explode an alien making the alien split apart fireguns create the bullet objects and send them on their way getalienweakspot calculate the coordinates of an alien s weak spot gettrailvectorstep calculate 1 32 of the vector for a bullet trail printtoolate print the too late message at column 6 row 7 on screen resizefeedingalien change the size of an alien so it grows bigger as it feeds spawnalien if the theme is enabled and the current wave does not yet have eight aliens in it spawn a new alien updatealiens part 1 of 5 update the aliens so they progress through their feeding or attack cycles updatealiens part 2 of 5 manage alien slots 31 and 32 and if there s a vacancy wake up a dormant alien move it into the slot and start its feeding cycle updatealiens part 3 of 5 if alien slot 33 is free and there s an alien waiting to take off promote it into slot 33 updatealiens part 4 of 5 when an alien reaches the next feeding stage double its size updatealiens part 5 of 5 check whether the whole wave has been destroyed and award points accordingly updatebullets move the bullets through the air variables alienobjectid object ids for each of the eight aliens alienscore the scores for killing aliens in the various feeding stages alienslot slots for up to three aliens that are ready to start moving towards the town alienstate the state of each of the eight aliens alienstatus storage for the object status bytes for the four alien objects alientomove the number of the alien to move towards acornsville in this iteration of the main loop distancefromhit the distance from the alien we just hit so we can work out whether we get hit by turbulence dormantalienscore the score for killing a dormant alien explodefrom the starting point id for exploding each of the four alien slots explodeto the end point id for exploding each of the four alien slots feedingstage the feeding stage of the alien we are currently processing hitobjectid the object id of the alien we just hit 30 to 33 hittimer the time since we hit an alien so we can time its explosion toolatetext the too late message shown when the aliens land in acornsville utility routines copying routines delay routines random number generators subroutines checktimepassed flag whether 9 centiseconds have passed since the last call copypointtowork copy a point from the point tables to the variable workspace copytemptopoint set a specified point to xtemp1 ytemp1 ztemp1 copyworktopoint copy a point from the variable workspace to the point tables delay delay for a specified number of loops nextrandomnumber point to the next item in the randomnumbers list resetvariable set a 16 bit in the variable workspace to 0 setrandomnumber set the next item in the randomnumbers list to a new random number and update the pointer to point to it variables randomnumbers a list for keeping a list of random numbers visibility processing the on screen visibility of 3d objects subroutines checklinedistance check whether a point on a line is within the visible distance for the line checkobjdistance check whether an object is within the visible distance for that object along just one axis processhorizonline calculate coordinates for the horizon s start and end points processline part 1 of 7 process a line rotating and transforming it to the correct coordinates and calculating its visibility processline part 2 of 7 process runway lines processline part 3 of 7 if a line is part of a multi point object extract the other points in the line so we can check them all processline part 4 of 7 process bullet lines processline part 5 of 7 calculate the object s coordinates and visibility processline part 6 of 7 check the visibility of all the object s points on the stack processline part 7 of 7 check distance and z coordinates and return the final result proces...
Images from subpage: "aviator.bbcelite.com/source/main/subroutine/fillcanopy.html... " Verify
Images from subpage: "aviator.bbcelite.com/source/main/subroutine/fillcanopyrows.h... " Verify
Images from subpage: "aviator.bbcelite.com/source/main/subroutine/flipcolours.html... " Verify
Images from subpage: "aviator.bbcelite.com/source/main/subroutine/setcolourtoblack... " Verify
Images from subpage: "aviator.bbcelite.com/source/main/subroutine/setcolourtowhite... " Verify

Verified site has: 432 subpage(s). Do you want to verify them? Verify pages:

1-5 6-10 11-15 16-20 21-25 26-30 31-35 36-40 41-45 46-50
51-55 56-60 61-65 66-70 71-75 76-80 81-85 86-90 91-95 96-100
101-105 106-110 111-115 116-120 121-125 126-130 131-135 136-140 141-145 146-150
151-155 156-160 161-165 166-170 171-175 176-180 181-185 186-190 191-195 196-200
201-205 206-210 211-215 216-220 221-225 226-230 231-235 236-240 241-245 246-250
251-255 256-260 261-265 266-270 271-275 276-280 281-285 286-290 291-295 296-300
301-305 306-310 311-315 316-320 321-325 326-330 331-335 336-340 341-345 346-350
351-355 356-360 361-365 366-370 371-375 376-380 381-385 386-390 391-395 396-400
401-405 406-410 411-415 416-420 421-425 426-430 431-432


Top 50 hastags from of all verified websites.

Supplementary Information (add-on for SEO geeks)*- See more on header.verify-www.com

Header

HTTP/2 200
content-encoding gzip
vary Accept-Encoding,User-Agent,Origin
cache-control max-age=600, private, must-revalidate
expires Fri, 23 Oct 2026 11:24:58 GMT
strict-transport-security max-age=31536000
content-length 21292
content-type text/html; charset=UTF-8
date Fri, 23 Oct 2026 11:14:58 GMT
server Apache

Meta Tags

title="Fully documented source code for Aviator on the BBC Micro"
charset="utf-8"
name="viewport" content="width=device-width, initial-scale=1"
name="author" content="Mark Moxon"
name="description" content="Fully documented source code disassembly for Acornsoft Aviator on the BBC Micro, with lots of deep dive articles explaining how every aspect of the game works." data-section="home" data-page="home"
name="robots" content="noodp,noydir"
name="twitter:card" content="summary_large_image"
name="twitter:creator" content="@markmoxon"
name="twitter:title" content="Fully documented source code for Aviator on the BBC Micro"
name="twitter:image" content="htt????/aviator.bbcelite.com/images/github/github-social-preview.png"
name="og:title" content="Fully documented source code for Aviator on the BBC Micro"
name="og:image" content="htt????/aviator.bbcelite.com/images/github/github-social-preview.png"

Load Info

page size135394
load time (s)0.619604
redirect count0
speed download34397
server IP 67.205.6.143
* all occurrences of the string "http://" have been changed to "htt???/"