Disassembly of Elite for the Apple II

Elite is a first-person spaceship simulator, featuring trading and combat. Initially published in 1984 for the BBC Micro, it was ported to multiple systems, and spawned a number of sequels. The Apple II version was published by Firebird, and is copyright 1985 by David Braben and Ian Bell.

This disassembly is based on the 4am crack. The files are essentially standard DOS 3.3 format, but parts are descrambled at load time, making direct examination of the disk files ineffective. See Generating the Binary for an explanation of how the project binary was created.

The disassembly is not fully commented. Much of the code and data in Elite is common across the various 6502 ports. While the graphics and sound code is Apple II-specific, the math routines, text tokenization, trading system, galaxy definition, and 3D meshes are nearly identical to the BBC Micro and C64 versions. While I have gone through all of the Apple II-specific code and some of the common code, the majority of the common code has not been commented. (I may get around to it eventually; for now, I've left notes with pointers to equivalent locations identified in the BBC and C64 sources. These have been included in the HTML listing.)

Related resources:

Huge thanks go to Ian Bell for posting the original BBC Micro sources, Paul Brink for commenting them, Kroc Camen for Elite Harmless, and Christian Pinder for Elite:TNK.

Software trivia: Elite has no self-modifying code, except for what appears to be a bug fix patch for an incorrect branch in the joystick code. This is very unusual for a game.


How to Play

Scans of the original manual can be found online, as can a colorful HTML version.

Apple II Controls

title screen

The controls are many, and non-obvious. My "Gold Edition" came with a C64 manual and an Apple II control sheet (which I can't find). I've had trouble finding the Apple II controls elsewhere, so here's a complete list.

While docked at a station:

Flight control keys:

Flight joystick controls (initially disabled):

Short-range / galaxy map:

Bear in mind that energy bombs, escape pods, docking computers, and intergalactic hyperdrives are optional equipment that are not installed on your initial ship. See the full manual for more information.

While in pause mode:

When you toggle a setting in pause mode you will hear a short chirp. The chirp is doubled when the mode is returned to its default state, so if you listen closely you can tell what state it's in.


Copyright 2020 by Andy McFadden

Back to list of disassembly projects