 ________________________________________________________________________
  
  Mercury - The ultimate (?) grayscale shoot-em-up for the TI-89/92/92+!
  
                 Version 1.1 - Released April 17, 2012
                                                                     
      This program is in freely redistriutable.  There is no warranty.
  
         pad@ocf.berkeley.edu    http:///www.ocf.berkeley.edu/~pad/
 ________________________________________________________________________


 _____________________________________ TABLE OF CONTENTS

 1. Introduction ..................................................... 26  
 2a. System requirements (TI-92/TI-92 II) ............................ 41
 2b. System requirements (TI-89/89 Titanium/92+/Voyage 200) .......... 55
 3. Legal stuff ...................................................... 85 
 4. Instructions .................................................... 106
 5. Bonus Items ..................................................... 122
 6. Skill Levels .................................................... 144
 7. Contacting the Programmer ....................................... 166
 8. Acknowledgements ................................................ 190
 9. Version History ................................................. 235

 _____________________________________ INTRODUCTION

Mercury is a freely redistributable shoot-em-up style game for the TI-89,
TI-89 Titanium, TI-92, TI-92 Plus, and Voyage 200 calculators.  This game is
written completely in 68000 assembly language to fully take advantage of the
calculator's capabilities.
      
If you want to obtain other calculator programs or learn more about TI
calculators, I recommend visiting my web site listed above for my own
programs and FAQ, or going to http://www.ticalc.org/ for the largest
repository of calculator information.

Modification of this program is encouraged.  To facilitate this, full source
code is included.

 _____________________________________ SYSTEM REQUIREMENTS (TI-92)

There is a TI-92 version of Mercury.  It supports both the regular TI-92
and the TI-92 II.  This version should work on all ROM versions provided
that Fargo II is installed before running the game.

You must have enough memory to store the game file, and it also needs 15K of
free RAM when run.  Saving the high scores does not require additional
memory since the scores are stored in the game file itself.  Saved games
also require no free RAM, but they are store in a hidden place in memory
and may be overwritten by other programs if you do certain other things
with your calculator after saving the game, so saved games should be seen
as very temporary.

 _____________________________________ SYSTEM REQUIREMENTS (OTHER THAN TI-92)

SYSTEMS SUPPORTED:  There is a TI-89 version which supports the TI-89 and
TI-89 Titanium, and a TI-92 Plus version which supports the TI-92 Plus and
Voyage 200.  Users are exepected to know which calculators they have and
choose appropriately.  No patches are needed for any of these calculators.

HARDWARE VERSIONS SUPPORTED:  This game will work on hardware versions 1, 2,
and 3 (all of the versions currently known).  It is not necessary to install
HW2Patch or HW3Patch for this game.

SOFTWARE VERSIONS SUPPORTED:  Except as noted below, this game should work
on all AMS versions.  It has been tested on versions up to 3.10 with no
problems found.  It does not work on a TI-92 Plus with the very old AMS
version 1.00 so you need version 1.01 or higher if you have a TI-92 Plus.
Also, if you have AMS versions from 2.01 to 2.03, the default size limit
of 8K will prevent the program from running.  Later AMS versions have a
higher size limit that allows this program to run.  You can get the newest
version of the AMS from TI's web site.

MEMORY REQUIREMENTS:  The game file itself must, of course, fit into memory
in order to install it on the calculator.  If stored in archive memory, it
must be temporarily copied to RAM in order to run.  Additionally, you will
need about 15K of free memory for temporary storage if you have hardware
version 1, and 19K of free memory for 2 and 3.  Approximately 1.6K of memory
is needed to store the save game and high scores.

SHELLS/KERNELS REQUIRED:  No shell or kernel is required to run this game,
Unless there are problems in the shell or kernel used, the game should run
with a kernel installed and should be startable from a shell.
    
 _____________________________________ LEGAL STUFF

Since you did not pay me anything for the right to use this software, there
is no warranty of any kind.  This software has been tested, and at the time
of release the author was not aware of any serious problems with it.
However, there is still a possibility of unforeseen problems.  If you do
encounter any problems with this program, please inform me as soon as
possible (of course, I cannot guarantee that I will fix such problems).

All portions of the program made by me are copyrighted by me, but may be
freely used, copied, and/or modified with no restrictions.  There are a few
small sections based on the TIGCC library, which also may be freely
redistributed.

However, I would appreciate if you at least do the following if you are
making a modified version:

 - Don't add any restrictions to its distribution or modification
 - Supply complete source code
 - Give me a reasonable amount of credit

 _____________________________________ INSTRUCTIONS

To install the game on your calculator, you only need to send the program
file.  For the TI-89 and TI-89 Titanium Edition, this file should be called
'mercury.89z' on the computer; for the TI-92 Plus and Voyage 200 it is
'mercury.9xz', and for the TI-92 it is 'mercury.92p' (in that case be sure
you have Fargo II installed first).  Once it is installed, type mercury() on
the home screen to run the program.

This paragraph does not apply to the TI-92 version:  Additionally, the game
creates a variable called 'mercsave' when you exit which stores saved games,
high scores, and options.  You can safely delete 'mercsave' but then its
data may be lost.  All of the files can be archived, but 'mercsave' will be
saved into RAM on exit (even if it was archived before).

The in-game controls are explained by the in-game instructions.

 _____________________________________ BONUS ITEMS

The following bonus items may appear:

Heart - Regenerates your shields.

Number 2 - Supplies an enhanced weapon for your ship.

Number 3 - Supplies an enhanced weapon for your ship.

Number 4 - Supplies an enhanced weapon for your ship.

Plus Sign - Gives a bonus to your score.

Letter E - Increases rate of energy generation.  Your current energy level
is shown by the bar marked Energy.  Energy is generated at a limited rate,
and is expended when you shoot.  Higher level weapons require more energy
per shot.

Letter M - Supplies you with four missile (press diamond to launch).

 _____________________________________ SKILL LEVELS

Starting with version 0.91, Mercury allows you to play at five different
skill levels.  Higher skill levels will be harder to play, but you will get
higher scores.  Each additional difficulty level gives you 10 extra points
per enemy destroyed, and 20 extra points per score bonus collected.  Here
are the changes at different skill levels:

1 - Beginner - Damage done by enemies reduced.  Initial energy generation
increased.

2 - Intermediate - This is the same as the original difficulty of previous
versions.

3 - Advanced - Many enemies increase firing rate (by 18.2% to 28.5%).

4 - Expert - As with advanced, but enemy bullets also travel at twice the
normal speed.

5 - You asked for it - As with expert, but enemy bullets also do twice the
normal amount of damage.
                                               
 _____________________________________ CONTACTING THE PROGRAMMER

If you find any bugs in this game or have suggestions or comments about it,
please tell me in E-Mail!  If you are writing to report a bug, please be
sure to tell me exactly what the problem is and describe exactly what you
did before the problem occured.  If you don't do so, it will be very hard
for me to tell what is going wrong!  You should also tell me which version
of Mercury you have -- be sure to include the exact version number.  For best
results please send to both of these addresses:

        pad@ocf.berkeley.edu
        eeulplek@hotmail.com

If your E-Mail is set up to block all messages except those from certain
addresses, always be sure that you have un-blocked my address before
sending anything to me (best to un-block all of them, since I might answer
from a different one than you sent to).

You can always get the latest version of this game, as well as other
programs of mine, from my web page.  The addresses is:

        http://www.ocf.berkeley.edu/~pad/

 _____________________________________ ACKNOWLEDGEMENTS

This game is my own work.  However, there are a few others whose assistance
was invaluable in producing this game, and there efforts will be acknowledged
here, in no particular order:

David Ellsworth            Fargo II and the Fargo II development tools,
                           also a small bit of FLIB code I used

Olivier Lesteven           TEOS and the TEOS development tools

Brian Anderson and         The A68K assembler, used to assemble almost all
Charlie Gibbs              calculator assembly programs

Tleilax                    DB92, an amazing on-calculator debugger

Rusty Wagner of ACZ        The VTI calculator emulator, which provides the
                           ultimate testing environment on a computer

MarkuSoft                  They GrayImag image converter

Corey Taylor of the ACZ    the CalcGS map editing software

Zeljko Juric               The TI-GCC library, whose documentation helped
                           to explain some ROM functions and also showed
                           me how to do OS key-reading and HW detection, and
                           from which grayscale and file routines are used

Thomas Nussbaumer          The ExePack utilities which compress the program
                           quite a great deal

Aaron Povolish             The ever-important beta testers, who have made
Adrian Posor               sure that this program is bug-free
Nathan Ogden
Robert Chen

The inspiration for this game comes primarily from these computer games:

Battle Squadron (Amiga) - Innerprise, 1989
Deluxe Galaga (Amiga) - Edgar M. Vidgal, 1993-1994
Tyrian (PC) - Epic Megagames, 1995

Note that this does not in any way mean that Mercury is intended to be a
"clone" of any of these games; it isn't.

 _____________________________________ VERSION HISTORY

Sizes listed here are for the uncompressed TI-92 Plus version of the program.

 Version  Date       Bytes  Lines  Description

    0.01b 20-Apr-02  11749   3545  first version
                         
    0.02b 21-Apr-02  13207   3912  added save game
                                   optimized some graphics routines
                                   added some additional enemies

    0.03b  4-May-02  13207   3912  fixed a bug which crashed on startup

    0.04b  8-May-02  15283   4216  improved enemy swinging patterns
                                   added new enemies
                                   added instructions to title screen

    0.05b 17-May-02  15427   4290  bullets now go through explosions
                                   fixed 92+ title screen keys
                                   implemented player-to-background collision
    
    0.06b 26-May-02  16261   4557  implemented bonuses
                                   implemented ship power level
                                   implemented scoring

    0.07b 26-May-02  16831   4666  implemented third weapon
                                   implemented multiple levels
                                   
    0.08b  6-Jun-02  16993   4738  implemented game over screen
                                   optimized various things
                                     
    0.20b 30-Jul-02  19523   5097  slowed energy regeneration
                                   decreased bonus deployment
                                   added a cheat code
                                   lengthened second level
                                   added new enemy types

    0.27b 16-Aug-02  20837   5237  added third level
                                   added fourth weapon

    0.40   9-Sep-02  21399   5442  added scoring
           
    0.75  10-Feb-04  23381   5745  no longer stops AMS 2.08 clock
                                   optimized various things
                                   extended third level
                                   added fourth level
                                   fixed moving explosion problem
                                   added missiles
                                   refined cheating system
                                   player bullets now go through explosions
                                   game now ends on completion of last level
                                   scoring improved

    0.76   6-Apr-04  23381   5745  Now compatible with TI-89 Titanium Edition
         
    0.93   6-Sep-04  22195   5915  Optimized various routines for size
                                   Implemented multiple difficulty levels
                                   Packed the level data
                                   Small changes to levels
                                   Cheat now gives 1500 missiles

    1.0    1-Sep-05  23881   6490  Added fifth level
                                   Optimized some
                                   Added TI-92 version
                                   Added fifth weapon

    1.1   17-Apr-12  23867   6388  Enabled loading older version high scores
                                   Difficulty selection accepts function keys
                                   Some small optimizations for size
                                   Exits with ESC from title screen
                                   Exits from game if ESC held 1.5 seconds
                                   Exits from game if ESC pressed 3 times
