PROGRAM: Maths Pack
VERSION: 1.0
AUTHOR: James Vernon - TCPA
DESCRIPTION: Compilation of maths functions
MACHINES: TI-83, TI-83+
PLATFORMS: Ion
LANGUAGE: Z80 Assembly
RELEASED: April 2001
SIZE: TI-83 Size:  2194 bytes
TI-83+ Size: 2199 bytes




##############
## Contents ##
##############

Introduction
Installation
Main Menu
Function 1: Surd Simplifier
Function 2: Quadratic Equation Solver
Function 3: Vector Magnitude Finder
Function 4: Angle Between 2 Vectors
Adding Functions
Version History
Thanks to...


##################
## Introduction ##
##################
Welcome to Maths Pack, my first (and probably only) maths program in assembly for TI-calculators. This program is simply a small compilation of useful maths functions that I have programmed. It is also made so that it's easy for people to write and add their own functions to it (as long as they know ASM for the TI-83/TI-83+ calculators).


##################
## Installation ##
##################
You must have Ion installed on your calculator, preferably the latest version (available at http://joewing.calc.org). The latest version of Ion at time of release was v1.6.

TI-83
Copy the file mathpack.83p to your calculator.

TI-83+
Copy the file mathpack.8xp to your calculator.

Run Ion and select Maths Pack from the menu.


###############
## Main Menu ##
###############
When you run Maths Pack, you will come to the Main Menu. Here you can browse through all the available functions and choose the one you want to use. Use the right and left arrow keys to browse through the functions and press [2nd] to run one of them. When you are finished in the function, you will return to the Main Menu.


#################################
## Function 1: Surd Simplifier ##
#################################
This function is for simplifying surds. You will be prompted to enter the value of the surd. Do so with the number keys and press [ENTER] when you're finished. Use [DEL] to backspace.

The surd will then be shown in it's most simple form. Press any key to return to the Main Menu.


###########################################
## Function 2: Quadratic Equation Solver ##
###########################################
This function takes an equation of the form AX˛+BX+C and solves for X. You will be promted to enter the values for A, B and C then the program will show you the value(s) of X.


#########################################
## Function 3: Vector Magnitude Finder ##
#########################################
This function takes a Vector in I, J, K form and calculates is magitude for you. Simply enter the I, J & K values and the magnitude will be displayed.


#########################################
## Function 4: Angle Between 2 Vectors ##
#########################################
This function takes two Vectors in I, J, K form and calculates the angle between them. Enter the I, J & K values for Vectors a & b and the angle between them will be calculated and displayed.


######################
## Adding Functions ##
######################
One nice feature of Maths Pack is that with basic knowledge of Z80 Assembly and the Floating Point Math routines on the TI-83/TI-83+ calculators, it's simple to create your own functions. Here you will find the basic steps of doing so.

Only a couple of things need to be changed/added in the main source file, "mathpack.asm". Near the top in the section marked Constants, is the value called "NUM_FUNCTIONS". This is the total number of functions currently contained in Maths Pack. Add 1 to this value, then proceed to the end of the source file. The last two sections contain firstly the name of the files that contain the functions, then 2 pointers for each function. In the "Function files" section, add the following line:

#include "myfile.asm"

where "myfile" is the name of the file you will write the function in. Finally, in the "Pointers" section, add the following line:

.dw namePtr,functionPtr

where "namePtr" is the label where a description of the function can be found and "functionPtr" is the label at the beginning of the actual function. If what I have said so far confuses you, take a look at "mathpack.asm" and also the beginning of "surd.asm" to see how they go together.

After that you write the actual code for the function. A number of useful routines have been included for you to use in any functions you write, if you look in the file "routines.asm" you will find these routines and a brief description of what they do and how to use them.

You'll notice in the file "routines.asm" that there are a number of routines dealing with "pushing" and "popping" op vars. The functions "pushOpx" save a copy of the specified op variable. Note that each time you call one of these routines is overwrites the last saved copy of the op var. To get the last saved op value, use the required "popOpx" routine.

There are also two routines "pushOp" and "popOp" which copy the contents of a specified op var to a specified location. There are 10 spare buffers you can use for this, labelled "float1" - "float10". These are used in a few of the functions contained in the package so have a look to see how it works if you understand.

If you have any questions about writing your own functions or you've written one that you'd like me to include in a public release of Maths Pack, email me and I'll get back to you :)


#####################
## Version History ##
#####################
v1.0 <> April 2001
 TI-83 Size:  2194 bytes
 TI-83+ Size: 2199 bytes
  - First release
  - 4 functions


##################
## Thanks to... ##
##################
- Everyone at the TCPA for their help and encouragement.
- Everyone at the #tcpa channel on IRC for some ideas for functions.
- Joe Wingbermuehle for Ion.
- Detached Solutions for MirageOS.



Maths Pack v1.0
Copyright (c)2001 TI-Calculator Programming Alliance
Written and Programmed by James Vernon
ICQ#: 71589304
http://tcpa.calc.org