 _______________________________________________________________________
  
  Monster - The ultimate (?) grayscale breakout-like game for TI-89/92+!

                    Version 1.0 - released September 16, 2004
                                                                       
        This program is in the public domain.  There is no warranty.
  
         pad@ocf.berkeley.edu     http://www.ocf.berkeley.edu/~pad/
 ________________________________________________________________________


 _____________________________________ TABLE OF CONTENTS

 1. Introduction ..................................................... 25  
 2. System requirements .............................................. 46
 3. Legal stuff ...................................................... 96
 4. Instructions .................................................... 116 
 5. Bonus Items ..................................................... 161
 6. Contacting the Programmer ....................................... 181
 7. Acknowledgements ................................................ 210
 8. Version History ................................................. 245
 9. The Future ...................................................... 280

 _____________________________________ INTRODUCTION

Monster is a free/open source breakout-like game for the TI-89, TI-89
Titanium, TI-92 Plus, and Voyage 200 calculators.  This program 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 would suggest visiting the web sites listed below.  They all
have large archives as well as help sections.  If you don't know how to
transfer programs to your calculator, or how to run them once you've
transferred them, you should read the help sections on these sites, or the
FAQ on my web page.

    http://www.ticalc.org/       
    http://www.calc.org/        
    http://www.calcgames.org/    

Modification of this program is encouraged.  To facilitate this, I have
placed the program in public domain.

 _____________________________________ SYSTEM REQUIREMENTS 

CALCULATOR:  TI-89, TI-89 Titanium, TI-92 Plus, or Voyage 200

This program has been extensively tested on both the TI-89 and TI-92 Plus
calculators.  It is supplied in different versions for each calculator;
you must use the version for your calculator.  Although this has not been
tested as thoroughly, the TI-89 version should work on the TI-89 Titanium
and the TI-92 Plus version should work on the Voyage 200.

HARDWARE (HW) VERSION:  HW1 or HW2 (and probably beyond)

This program has been extensively tested under hardware version 1 and 2 and
is fully compatible with both of them.  If any other versions are ever
released, this program may or may not be compatible.

AMS VERSION:  Any (except the very old 1.00 for the TI-92 Plus)

This program has been tested extensively with AMS versions from 1.00 up to
2.09 and is compatible with all of them.  This program should also work on
future AMS versions as well, though it is possible that unexpected changes
to the AMS will cause the program to fail.

The only exception is the very old AMS 1.00 for the TI-92 Plus.  This
program (along with many others) will not work on this AMS version; you need
to use AMS version 1.01 or later.  Note that this affects only the TI-92
Plus; there are no problems with AMS 1.00 on the TI-89.  When using AMS
version 2.03, the size limit will be a problem.  You can overcome this
either by installing a newer AMS version, installing an older AMS version,
or using one of the various programs that circumvents this limit, such
as the ttstart launcher (available from http://tict.ticalc.org/).
problems.

MEMORY:  Less than 50K is needed, and files can be archived

You can see the amount of memory needed by examining the file size.  Note
that if you are running an archived program, it must be copied to RAM
to run.  The program must allocate 4K (under HW1) or 8K (under HW2) of
additional RAM when run, and 2K more of free RAM is needed to save the game.

KERNEL / SHELL:  None needed

This is a nostub program, so no shell or kernel is required to run it.
However, it generally can be run from a shell or with a kernel installed.
If it does not, this is probably due to a bug in the shell or kernel (in
particular, one very old version of Universal OS had a bug that prevented
running nostub programs from kernel-based shells; however, all recent
versions are OK).

 _____________________________________ 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, this file should be called
'monster.89z' on the computer; for the TI-92 Plus and Voyage 200 it is
'monster.9xz'.  Once it is installed, type monster() on the home screen
to run the program.

Additionally, the game creates a variable called 'mnstdata' when you exit
which stores saved games, high scores, and options.  You can safely delete
'mnstdata' but then its data may be lost.  All of the files can be archived,
but 'mnstdata' will be saved into RAM on exit (even if it was archived
before).

You also must have at least one level file on the calculator to play the
game.  These are supplied in the 'levels' directory and 'levels2'
directories.

Running it normally will show you the title screen, which lists the keys to
press to start playing or view more information.  Since you can read it
(I hope) I won't describe it again here.  Note that you will get higher
scores for choosing higher speeds (you get a speed bonus which increases
somewhat for higher speeds; in addition, the victory bonus which is given
only if you when depends on the speed as well).

If you have more than one level file, the level selector will appear after
you select the speed.  Use the up and down arrows to select a level, and
press enter to begin.

The gameplay is like breakout.  I hope you know the basic idea.  The controls
for the gameplay are:

Left and right arrow keys       Move paddle
2nd (or LOCK/hand on 92+)       Release ball
                                (and slow down while moving)
                                (and fire lasers, if you have them)
. (dot)                         Quit game
+ and -                         Adjust contrast
APPS                            Save game and exit
P                               Pause game (press F1 to resume)                              

If you save the game, gameplay will resume immediately at the point you left
off the next time you run the program.  The level file you selected before
must still be on your calculator.

 _____________________________________ BONUS ITEMS

Each brick destroyed will deploy a bonus approximately 10% of the time.
Bonuses will not be dropped from where they cannot be collected, and only
one can be on screen at a time.  The bonuses appear as follows:

Expand paddle           Line with arrows pointing outward at ends

Extra life              Heart followed by plus sign

Slow balls              Ball with parentheses around it

Multi-ball              Three balls in a row

Brickthru               Ball with an arrow through it

Increase score          Number 500

Two blasts              Laser weapon (20 shots per collection of this)

 _____________________________________ 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 Monster you have and which calulator you use in any mail you send me.
My main E-Mail address is:

        pad@calc.org

I will usually answer my E-Mail within a week.  If you don't get any answer
in two weeks, you can try sending to the following backup addresses:

        pad@ocf.berkeley.edu
        pad@davnet.org

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 are:

        http://www.ocf.berkeley.edu/~pad/
        http://www.calc.org/~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

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

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

Adrian Posor               The ever-important beta testers, who have made
Aaron Povolish             sure that this program is bug-free
Jacob P.
Paul Griffin

Bhunavesh Bhatt            Testing on the TI-89 Titanium

 _____________________________________ VERSION HISTORY

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

 Version  Date       Bytes  Lines  Description

    0.10  31-Oct-01   8859   3200  First version 

    0.26   6-Dec-01  11579   3893  Added scoring and high score table
                                   Improved ball trail
                                   Implemented speed selection
                                   Implemented slow paddle movement
                                   Added 4 more levels
                                   Implemented flashing when round lost
                                   Added score and brickthru bonuses

    0.66   2-Feb-02  11463   4431  Fixed title screen contrast change
                                   Implemented external level support
                                   Improved random bounce adjustments
                                   Implemented lasers
                                   Improved scoring
                                   Added pause feature

    0.82  30-Mar-02  11379   4465  Redesigned bouncing control
                                   Increase block/screen size on TI-92 Plus

    0.83   4-Jul-02  11379   4465  Updated PPG launcher for AMS 2.07

    0.99  30-Apr-04  11341   4563  No longer stops clock on AMS 2.08
                                   Optimized grayscale routines
                                   Added to default levels
                                   Compatible with TI-89 Titanium

    1.0   16-Sep-04  11287   4582  Optimized for size

 ______________________________________ THE FUTURE

I don't plan to make any further changes to this game.

