Skip to navigation

Elite on the BBC Micro

How to compare the different versions of Elite

Elite was released for a number of different 8-bit Acorn machines, from the 1984 entry-level cassette version to the all-singing, all-dancing 1986 BBC Master version - see the versions of Elite for a quick run-down. (It was, of course, released for a number of non-Acorn machines as well, but this site is only about the original Acornsoft versions.)

Each version has its own unique twist on the game's feature-set, from extra colours to extra ships, so it's no surprise that there are lots of code differences between the versions. This section lets you explore these variations in a number of different ways.

  • The feature comparison table summarises the main differences between the versions. This is useful for a quick introduction to the variations.
  • The easiest way to view variations in the code itself is through the curated lists. Each of these will guide you through the most interesting differences between the versions, along with explanations and links to the code variations themselves. You can choose from the following:
  • Variations that aren't included in the curated lists can be found in the list of minor differences between versions. See below for details of the categorisation system that I'm using to identify all the different variations.
  • Another way to explore all the code variations is via the source code itself. When browsing the source code, you will see 'Compare versions' links in routines that contain code variations across the different versions; simply click the link to explore those code variations. For example, the docking checks in the ISDK routine appear in the source code of the cassette, disc, 6502 Second Processor and BBC Master versions, and clicking the 'Compare versions' link in any of these will show you the code variations for the ISDK routine across all the different versions, side-by-side and all in one place.
  • You can also find a comprehensive list of all code variations, broken down by category, in the "All code variations by category" section in the site navigation.
  • The index section of the site contains indexes of variations and code usage, which can be useful in seeking out variations between the versions. The index of all shared code that contains variations is a good place to start.

Code variation categories
-------------------------

Because there are so many variations between the different versions, I have categorised them all to make it easier to separate the important ones from those that have no effect in-game. When looking at code differences, each one will have one of the following categories (shown broadly in order of impact, with the most important first):

CategoryDescription
Standard featureThese variations concern features that appear in the cassette version of Elite (and, by extension, the disc, 6502 Second Processor and Master versions). See this category's curated list for details of these variations.
Enhanced featureThese variations concern the extra features that were introduced in the disc version of Elite (and which, by extension, are mostly present in the 6502 Second Processor and Master versions). See this category's curated list for details of these variations.
DiscThese variations are unique to the disc version of Elite. See this category's curated list for details of these variations.
Advanced featureThese variations concern the extra features that were introduced in the 6502 Second Processor version of Elite (and which, by extension, are mostly present in the BBC Master version). Note that this category doesn't include variations that are solely concerned with the additional colours in these versions; those are covered by the screen mode category. See this category's curated list for details of these variations.
6502SPThese variations are unique to the 6502 Second Processor version of Elite. See this category's curated list for details of these variations.
MasterThese variations are unique to the BBC Master version of Elite. See this category's curated list for details of these variations.
OtherA catch-all category for notable code variations that don't fall into one of the other categories, such as bug fixes, improvements to the arithmetic routines, optimisations and so on. See this category's curated list for details of these variations.
Platform-specificThere are lots of code variations that aren't related to differences in features, but are more to do with the way the game code is structured on the different platforms (for example, there are quite a few differences between the docked and flight code in the disc version that only exist because of their different code structures). These don't really impact the game; they're effectively implementation details. See the list of minor variations for details.
Screen modeThis category includes code variations that exist solely because of the different screen modes used in the advanced versions of Elite (i.e. modes 1/2 vs modes 4/5). This includes code to set colours in the space view, as well as the differences in the drawing routines that are due to the difference in screen memory. See the list of minor variations for details.
Tube-relatedThese differences exist because of communication across the Tube in the 6502 Second Processor version, and are caused by the code split between the parasite and I/O processor. For example, moving the text cursor by calling the DOXC routine instead of updating the XC variable would come under this category, as this has the same effect (moving the text cursor) but has to be done differently because of the way the 6502 Second Processor version is structured. See the list of minor variations for details.
MinorThese differences have the same functionality between versions but different implementations, and include things like using a JMP instead of a branch, jumping to a routine rather than falling through into it, having instructions in a different order when it makes no difference, different text token IDs that produce the same text, using CPU-specific instructions like STZ, and so on. See the list of minor variations for details.
Labels-onlyThese concern different label names, or differences in branches to locations containing RTS instructions. They jave mo effect on the functionality of the game at all. See the list of minor variations for details.
Comments-onlyA variation in the comments only, so these have no effect on the game at all and are purely differences in the documentation. See the list of minor variations for details.