Skip to navigation

Elite on the BBC Micro and NES

Different variants of the BBC Master version

This site contains the source code for two different variants of the BBC Master version of Elite:

  • The variant on the official Acornsoft SNG47 release, which was the first appearance of BBC Master Elite, and the variant included on all subsequent discs (such as the Superior Software discs)
  • The variant that was released for the Master Compact

See below for comprehensive details of the differences between the variants, along with links to the relevant bits of the source code.

All these differences are implemented within the source code using BeebAsm IF statements, which determine which variant is compiled. These IF statements check the values of the relevant source code variables (_SNG47 and _COMPACT), which are themselves set by parameters to the build command (such as variant=compact). See the associated repository for more about building different variants from the source.

To play Elite with an SSD disc image, load the disc image into drive 0 and press SHIFT-BREAK.

The official Acornsoft SNG47 release

The Acornsoft SNG47 release was the first official release of BBC Master Elite.

Default build in repositoryYes
Product detailsAcornsoft SNG47
Build command parametervariant=sng47 (optional)
Source code variable_SNG47
Verification checksums (crc32)See the GitHub repository
Download SSD disc imageOriginal, Flicker-free planets
Play this variant onlineOriginal, Flicker-free planets

The Master Compact release

The Superior Software variant for the Master Compact is essentially BBC Master Elite, just tweaked for the Compact's digital joystick and ADFS disc drive.

Default build in repositoryNo
Product detailsSuperior Software
Build command parametervariant=compact
Source code variable_COMPACT
Verification checksums (crc32)See the GitHub repository
Download SSD disc image (for DFS)Original, Flicker-free planets
Download ADL disc image (for ADFS)Original, Flicker-free planets
Play this variant onlineOriginal, Flicker-free planets

It has the following features that differentiate it from the other variants:

  • Support for the Compact's digital joystick (see DOKEY, DJOY, IRQ1, RDJOY, RDFIRE, TITLE, TT17, TT17X)
  • Support for ADFS instead of DFS, including asking for a directory rather than a drive number (see CATS, CTLI, DELI, DELT, DIRI, GTDIR, LDLI, LOAD, SAVE, SVLI, TKN1)
  • The contents of the ADFS disc catalogue wrap on-screen, rather than having a column removed from the middle, like the DFS catalogue (see CHPR)
  • SHIFT-n characters (where n is a numeric key) are valid in commander filenames, directory names, filenames for deletion, and system search (see MT26)
  • The NMI workspace needs to be claimed and released for ADFS (see NMI, NMICLAIM, NMIRELEASE)
  • The zero page swap workspace is different for ADFS than for DFS (see SAVEZP, SWAPZP, SWAPZP2)
  • The addresses of numerous workspace variables are different (see WP, ZP, DOEXP)
  • There is code to check whether this is a Master Compact (see Elite loader, MOS)
  • The Compact has a different keyboard to the Master, so the keyboard routines are different (see CTRLmc, DKS4mc, hyp, RETURN, SHIFT, TT18)
  • The main game binary is called ELITE rather than BCODE (see MESS2)
  • There are some other minor code differences, such as different label names or rolled-up routines (ECMOF, MSBAR, HANGER, SFRMIS, TTX66)