Program:      Alien Breed: Tower Assault
Version:      1.4
Author:       James Vernon - TCPA
Description:  Shoot-'em-up
Machines:     TI-83, TI-83+
Platforms:    Ion, MirageOS
Language:     Z80 Assembly
Released:     June 2001
Size:         TI-83:  23658 bytes
              TI-83+: 21526 bytes


    CONTENTS
    ~~~~~~~~
- Included Files
- Installation
- Main Menu
- Playing the Game
- Miscellaneous
- Control Summary
- Source Code
- Disclaimer
- Known Bugs
- Thanks to..
- Beta Testers
- Version History
- Future Versions
- Closing Notes


####################
## Included Files ##
####################
PROGRAM FILES:
tower.83p       TI-83 Program & Data File
tower.8xp       TI-83+ Program File & Data File

DOCUMENTATION:
readme.txt      This file
source.txt      Instructions on how to compile Tower Assault properly

SOURCE CODE FILES:
tower.asm       Main source code file
towergfx.h      Graphics file
taaliens.asm    Main Alien management routines
taanim.asm      Main animation routine
tabullet.asm    Bullet managemtn routines
tacode.asm      Passcode routines
taintex.asm     Intex Console routines
tamove.asm      Player movement routines
taqueen.asm     Queen Alien routines
tascroll.asm    Screen scrolling routines
tavars.h        Variable declarations
sprite.asm      Sprite routines
huffextr.h      Huffman Extraction Routine by Jimmy Mrdell and Florent
                Dhordain
towerdat.bin    Level data file for TI-83 version
towerda_.bin    Level data file for TI-83+ version

##################
## Installation ##
##################
TI-83 USERS:
 You need Ion installed on your calculator to play this game. I recommend
using the latest version of Ion, which can be downloaded at Joe
Wingbermuehle's web page (http://joewing.calc.org). When Ion is correctly
installed, copy tower.83p to your calculator. You need an extra 1630 bytes of
free memory to play the game.

TI-83+ USERS:
 You need MirageOS installed on your calculator to play this game. I
recommend using the latest version of MirageOS, which can be downloaded at
the Detached Solutions web page (http://www.detacheds.com). When MirageOS is
correctly installed, copy tower.8xp to your calculator. You need an extra
1619 bytes of free memory to play the game.

###############
## Main Menu ##
###############
 Once you run the program, it will load the Main Menu will appear. Use the
[Up] & [Down] keys to change your selection and [2nd] to activate the
currently selected choice. If you don't press any keys for a few seconds, the
High Score table will show up. Press any key or wait for the Main Menu to
return.
START GAME      - Choose this option to start playing. If you haven't entered
                  a passcode, you will start on level one.
DIFFICULTY      - Pressing [2nd] when this is selected will toggle the
                  difficulty between Normal & Tough. Choosing Tough will
                  (obviously) make the game tougher although your score will
                  be twice that of what it would on Normal.
ENTER PASSCODE  - If you have already played and received a passcode at some
                  stage, you can choose this selection to enter the passcode
                  you received. Once this is done, choose START GAME and you
                  will go back to where you received the passcode. Note that
                  whenever you click on START GAME the last entered passcode
                  will be used (unless the game is restarted from
                  Ion/MirageOS).
QUIT            - This leaves the program and returns to Ion/MirageOS.

######################
## Playing the Game ##
######################
GETTING STARTED:
 After selecting START GAME, the Mission Objectives for the level you are up
to will appear. Read them carefully and then press any key to start the
level.
 You will appear at the beginning of the level. Some levels are different
shapes and sizes to others and you begin in a different location in each
level. Use the arrow keys to move up, down, left & right. You can also move
diagonally. The basic idea of each level is to explore, kill enemies, pick up
supplies, get better weapons and achieve the objectives stated to you at the
beginning of the level. Many of the levels will simply require you to find
the entrance to the next level (or in the case of the first level, choose one
of many entrances to other levels :)

DOORS:
 There are 3 types of doors: normal; security; and keycoded. To open a normal
door, just walk up to it. To open a Security door you must have a key. There
are a limited amount of keys but they can be found on some levels. You can
also purchase Keys from Intex Consoles (see below). To open a Keycoded door
you must have the correctly coded key. There are number 1, 2 and 3
doors/keys. Coded keys will only work on the level that you acquired them on.

ENEMIES:
 There are 4 main types of enemies that you will constantly encounter on each
level.
 The first and weakest of these enemies is the Worm, which can be found in
all 5 towers. They are relatively slow creatures.
 The second type of enemy is the Face Hugger which can be found pretty much
everywhere. They are also the first enemy you will encounter. On the earlier
levels they are weak but on later levels are a little tougher to destroy.
Generally speaking, most Face Huggers will run around pretty fast.
 The third type of enemy is the standard Alien, which can be found in all 5
towers. They range in speed from slow to fast and increase in strengh as the
game goes on.
 The final enemy is the Security Guard. These robots were originally designed
to guard the towers from security breaches but are now malfunctioning and
will be after you. They are found in the higher security areas (such as the
Science & Military towers). They move at an average speed but their main
danger is that they are all armed with a Missile Launcher on their right arm.
You would do well to stay out of the way of these Missiles. Note that the
Intex System is also programmed to beam in replacement Security Guards on a
constant basis, giving you an endless supply of enemies...

ALIEN HOLES:
 The aliens are constantly ravaging the towers and sometimes will rip holes
in the floor. Try and stay away from these holes because aliens will keep
coming out of them.

AMMO CLIPS:
 Scattered around the Towers and the surrounding grounds you will find Ammo
Clips. These will replenish your quickly dimishing ammo supply. Pick up as
many of these as you can!

KEY PASSES:
 There will be a few of these lying around in the Towers, they are used to
open Security Doors. There are also Coded Key Passes, used to open the Coded
Doors.

FIRST AID KITS:
 During your endless battle with the aliens, you will surely need to
replenish your health. You will find some First Aid Kits littered around the
area - these will help you to stay in good shape.

CREDITS:
 Used to purchase things on the Intex Consoles (see below). Very useful
indeed when you begin to need more powerful weaponry and a map to guide you
around the levels.

EXTRA LIFES:
 These are rare but very useful when the difficulty begins to increase. If
you see one make sure you pick it up, as losing lives becomes a common
occurance on some of the later levels.

INVINCIBILITY:
 The Scientists at the colony had invented a form of steroid which renders
people somewhat invincible for a small period. You might find a few of these
capsules lying around.

ATTACKING ENEMIES:
 To shoot at the aliens, press [2nd]. You can hold down [2nd] to repeatedly
shoot but remember that you can run out of ammo! Also, you can only shoot up
to 10 bullets at once but this shouldn't restrict you at all during the game.
As you progress through the game you will be able to get better weapons to
use on the stronger enemies which will save you lots of ammo.

INTEX CONSOLES:
 On some levels there are Intex Consoles which allow you to log onto the
Intex Network. At these terminals you can purchase much needed supplies, new
weapons or a Rader Scanner. To access an Intex Console, walk up to it and
press the [DEL] button. Once you are logged onto the network, use the arrow
keys and [2nd] to browse through the options. Note that you can't buy a
weapon or a Radar Scanner if you already own it.

RADAR SCANNER:
 There are two ways to view a map of the level: by accessing an Intex Console
and by using a Radar Scanner (which can be purchased from an Intex Console).
The advantage of purchasing a Radar Scanner is that you can view a map of the
level from anywhere. To access a Radar Scanner that you have purchased, press
the [GRAPH] button during gameplay.

WEAPONS:
 There are 4 different weapons that you can use in your missions. You begin
with the Laser Gun which is a weak weapon that won't pack much punch as the
levels progress. You can get better weapons by accessing Intex Consoles (see
above). The Twin Missile Launcher is the next powerful weapon that inflicts a
little more damage to the enemy but eventually will also be rendered near on
useless. Next comes the Plasma Rifle which is quite powerful and will kill
most enemies in one shot, until you get to the Main Tower. This is when you
need the Rocket Launcher, which will cause great pain to the enemies. Only
the strongest aliens will take more than one shot from this beast!
 Use [Y=], [WINDOW], [ZOOM] and [TRACE] to select your weapon.

PAUSING:
 Press the [MODE] button to bring up the Pause screen. From here you can view
your stats and continue playing or retreat. Another way to pause the game is
to press the [MATH] button. This will turn off the calculator to save power.
When you turn it back on, the game will be paused at the spot you left it :)
This can be useful if your maths teacher is coming over to see what's so
interesting on your calculator..
 Also, in the pause menu you can adjust the contrast by pressing the [Up] &
[Down] keys.

PASSCODES:
 At the beginning of some levels you will receive a passcode which will allow
you to restart from your current position. The passcode also remembers how
much ammo, keys, etc. you had including which weapons you had and whether or
not you owned a Radar Scanner. The only disadvantage of using a passcode is
that your score is reset to 0 so if you want a high score, play as much of
the game as you can without dying.

QUEEN ALIEN:
 When you reach the top of the Main Tower, you will encounter the Queen
Alien. This fierce creature will soak up your ammo like you wouldn't believe.
It's recommended you have good firepower before attempting to take on this
mean mutha, as basic weapons probably won't even scratch it!

HIGH SCORES:
 If when you die you have qualified for the High Score table, you will be
prompted to enter your name. Do so by pressing the keys corresponding to the
letters you want to enter and using [DEL] to backspace and [ENTER] to finish.
You can enter up to 10 characters.

###################
## Miscellaneous ##
###################
- If the game is paused or waiting for you to do something and it turns off
  there is quite likely nothing to worry about. The game has built-in APD
  (sort of) and will automatically turn off after it's been inactive for a
  little while. Some examples of this are when the game's paused, or when
  you're logged onto an Intex Console.

- Yes, I know this game is rather large for a calculator but there wasn't
  really much I could do about that without removing some of it's great
  features or reducing the amount of levels. The way I see it, the more
  enjoyable gameplay the better ;)

- Also, due to the size of the game and how programs need to be loaded, it
  will take a few seconds to start and end the game from the shell whilst the
  calculators contents are rearranged. Sorry about that..

#####################
## Control Summary ##
#####################
MAIN MENU:
[Up] & [Down]   - Change selection
[2nd]           - Activate selection

HIGH SCORE TABLE:
Any Key         - Back to Main Menu

IN-GAME:
Keypad          - Move
[2nd]           - Shoot
[MODE]          - Pause
[MATH]          - Teacher key
[Y=]            - Select Laser Gun
[WINDOW]        - Select Twin Missile Launcher (if you have one)
[ZOOM]          - Select Plasma Rifle (if you have one)
[TRACE]         - Select Rocket Launcher (if you have one)
[GRAPH]         - View Map (if you have one)
[DEL]           - Access Intex Console (if facing one)

INTEX CONSOLE:
[Up] & [Down]   - Change selection
[2nd]           - Activate selection

PAUSED:
[ENTER]         - Continue
[CLEAR]         - Retreat
[Up] & [Down]   - Adjust contrast

NEW HIGH SCORE/ENTER PASSCODE:
Any Letter      - Enter that character
[DEL]           - Backspace on TI-83
[Left]          - Backspace on TI-83+
[ENTER]         - End

#################
## Source Code ##
#################
 I've released the source code to Tower Assault for your enjoyment, including
the passcode encoding/decoding routines. I'll trust you not to hack into them
although I'm sure someone will :) They aren't that hard to crack. I've tried
to group the various routines into separate files so that I didn't have one
big hunk of code all in one file. Note that the main file is still quite
large though.
 For instructions on how to compile it, see the file source.txt. It's a
little complicated due to the face that the file towerdat.bin is appended
onto the end after compilation but before linking. Sounds fun, doesn't it? :P

################
## Disclaimer ##
################
 This program is programmed in Assembly Code and therefore could harm your
calculator, although it shouldn't. It has been tested numerous times on both
the TI-83 & TI-83+ calculators and no problems have been encountered in this
build. I take no responsibility for whatever using this program may do to
your calculator, remember, it's freeware!

################
## Known Bugs ##
################
 There aren't really any bugs in this version (that I know of). There is one
small occurance that occasionally happens and that is two (or more but it's
highly unlikely) aliens getting stuck inside each other. I know how to fix
this but it would slow the game down (a lot) and seeing as it doesn't happen
very often I decided to leave it. Rather then considering this a bug, think
of it as a feature ;)
 As far as I can tell, there is no reason why this game should crash your
calculator, although if you think you have found a bug, please contact me
with the details of what happened so I can check it out.

#################
## Thanks to.. ##
#################
 There are many people that need to be thanked because without them this game
probably wouldn't be nearly as good as it is. Many thanks to the following
people:

- Everyone that emailed me about the passcode bug in v1.0 and v1.1.
- Everett (saggitar710@hotmail.com) for the idea to improve high
  score/passcode entering on both versions.
- Dan Englender for extensive help in getting this to work on the TI-83+!
  Without Dan, there would be no TI-83+ version!!
- My beta testers (listed below).
- Jimmy Mardell for the Huffman (De)Compression routines - this game wouldn't
  have nearly as many levels without them being compressed!
- Florent Dhordain for porting the Advanced Sprite Clipping Routines by Jimmy
  Mardell.
- Patrick Davidson for ideas used from Phoenix for the 83 versions high score
  entering routine.
- Ahmed ElHelw for some of the stuff out of ZTetris that deals with the high
  scores.
- Detached Solutions for MirageOS & the useful library routines - without
  these, there would be no TI-83+ version!
- Joe Wingbermuehle for Ion.
- Hannes 'Movax' Edfeldt for Devpac83.
- Scott Dial for Devpac8x.
- Everyone at the TCPA for their ideas and encouragement.
- Everyone else that has encouraged me to get this great game finished!
- Team 17 for the original Alien Breed: Tower Assault which had over 50
  levels and over 250 ways to complete the game :P
- You for playing this game.

##################
## Beta Testers ##
##################
 There are a few people that have done quite a bit of testing for me during
the production of this game. Here are the people that have tested beta
versions for me at some stage or another (in alphabetical order):

- Matt B. <pokemaniac_75116@yahoo.com>, ICQ#: 85052788,
  http://angelfire.lycos.com/tx4/alienbreed
- Dan Englender <dan@calc.org>, http://tcpa.calc.org
- Xavier LaRue <paxl@caramail.com>
- Brian Nyhuis <blackknight34@hotmail.com>
- Joel Seligstein <joel@basm.org>, ICQ#: 97608176, AIM: Soccerk121,
  http://www.basm.org
- Doug Stofer <phreak144@hotmail.com>, ICQ#: 91412156
- Mark <MiamiFusionFan@go.com>

#####################
## Version History ##
#####################
v0.1 <> August 2000
 TI-83 Size:  9712 bytes
 TI-83+ Size: 9812 bytes
  - First release
  - Demo version (includes 1 level)
  - Smooth scrolling

v1.0 <> December 2000
 TI-83 Size:  23981 bytes
 TI-83+ Size: 21741 bytes
  - First full version release
  - 20 levels
  - 4 different possible paths to take
  - Source code included!
  - No TI-83+ Ion version but MirageOS version instead

v1.1 <> March 2001
 TI-83 Size:  23884 bytes
 TI-83+ Size: 21737 bytes
  - Proper Program Image for MirageOS
  - Shaved some bytes off here and there, mainly off the TI-83 version ;)

v1.2 <> March 2001
 TI-83 Size:  23882 bytes
 TI-83+ Size: 21735 bytes
  - Fixed a bug that meant that you would never get a passcode if you take
    the Science Tower route
  - Fixed the passcode bug!!

v1.3 <> April 2001
 TI-83 Size:  23705 bytes
 TI-83+ Size: 21522 bytes
  - More optimisation to both TI-83 & TI-83+ versions :)
  - Better high score name entering on both TI-83 and TI-83+ versions
  - Better passcode entering on the TI-83 version
  - Documented source code a bit more
  - Now only 15 aliens can be active at once, this is to try to stop the game
    from slowing down too much when there are heaps of aliens

v1.4 <> June 2001
 TI-83 Size:  23658 bytes
 TI-83+ Size: 21526 bytes
  - More optimisation for size/speed by using sprite.asm include file
  - TI-83+ version now has masked player sprites

#####################
## Future Versions ##
#####################
 At the moment, I'm developing the final Alien Breed game, which will combine
the finer features of both Alien Breed II and Alien Breed: Tower Assault. For
more information, check my site.
 As for Alien Breed: Tower Assault, I can't really think of any new ideas,
and seeings as it only just fits on to the TI-83+ I can't really add more
anyways. However, I'll probably try and optimise it even more one day if I
get bored :P

###################
## Closing Notes ##
###################
 You are welcome to add Alien Breed: Tower Assault to your web page but
please make sure that none of the files in the zip file are separated. For
more great TI calculator programs, go to the TCPA page (http://tcpa.calc.org)
and to the Detached Solutions page (http://www.detacheds.com).


Alien Breed: Tower Assault v1.4
Copyright (c)2000-2001 TI-Calculator Programming Alliance
Written and Programmed by James Vernon <james@calc.org>
http://tcpa.calc.org
ICQ#: 71589304
