Codex

Programmed By:	Justin Wales
Language:		TI83 plus no-shell assembly 
Size on calc:		846 bytes
Completion Date:	December 2, 2003

Programming Groups associated with:

Maxcoderz Programming Member - www.maxcoderz.com
United TI Administrator - www.unitedti.org

Introduction:

Hello users. Codex is a multipurpose asm utility for basic programmers. With a few simple inputs this program can do wonders for your basic programs. For the most part this program is directed at the graphics end of programming, but contains various other system functions as well. In total I have packed in 30 asm functions for your programming pleasure.

How it works:

By taking advantage of the fact that the Ans variable can become nearly any data type I use it as the main input, meaning it takes less space for input commands.

Disclaimer:

	You are free to use this program in any way you like. If it is for a game or program that is to be released to the public, I ask that you give me credit. As this is an asm utility, it will have full control of your calc for it's duration of execution. I have fully tested it in every last detail and therefore I do not accept responsibility if misuse ensues.
There are specific guidelines in the proceeding readme. Fail to follow these guidelines, and the consequences are yours to deal with.


Contents:
	The contents are split up into 3 different sections. The 3 different sections represent the 3 different syntaxes for inputting the prefixes to each individual command.

	1) Real Variable Inputs
	2) List Format Inputs
	3) String Format Inputs

1) Real Variable Inputs

The input for these commands is very simple. All the commands in this section follow this format.

N:Asm(prgmCODEX

Where N is any number between 0 and 20

The functions for each numerical prefix is as follows.

0=Scroll Graph Screen Right
	*Scrolls the graph screen one pixel to the right

1=Scroll Graph Screen Left
	*Scrolls the graph screen one pixel to the left

2=Scroll Graph Screen Up
	*Scrolls the graph screen one pixel up

3=Scroll Graph Screen Down
	*Scrolls the graph screen one pixel down

4=Scroll the Graph Screen Up and Right
	*Scrolls the graph screen one pixel up and one pixel to the right

5=Scroll the Graph Screen Up and Left
	*Scrolls the graph screen one pixel up and one pixel to the left

6=Scroll the Graph Screen Down and Right
	*Scrolls the graph screen one pixel down and one pixel to the right

7=Scroll the Graph Screen Down and Left
	*Scrolls the graph screen one pixel down and one pixel to the left

8=Enable Reverse Video Text
	*Write with inverted text (Black backgroud and white text)

9=Disable Reverse Video Text
	*Return back to the normal text format (White background and black text)

10=Enable Alpha Lock
	*Turn the alpha lock on without have to make the keypresses
	*great for Input command like string Input

11=Enable Lowercase Text
	*Allows user to use the lowercase characers on calc
	*they can be accessed by pressing Alpha, Alpha

12=Power Down
	*Turn off the LCD
	*Caution: Do not remove a battery while in this mode

13=Super Fast Graph Screen Clear
	*Clears the graph very fast
	*Must be used if you use the sprite routine included in this program

14=Fast Black Graph Screen
	*Makes the entire graph screen black

15=Increase the Contrast
	*Adjust the system contrast to make it darker

16=Decrease the Contrast
	*Adjust the system contrast to make it lighter

17=Get Amount of Free Ram
	*Gets the amount of free ram and stores it as a string into Str0

18=Get Amount of Free ROM
	*Gets the amount of free rom and stores it as a string into Str0

19=Turn The Run Indicator Off
	*Turns the run indicator off

20=Turn The Run Indicator On
	*Turns the run indicator on 

2) List Format Inputs

Rectangles:
	Pixel Row Coordinates=0-63
	Pixel Column Coordinates=0-95

Upper Left Pixel Row must be Less then or equal to Lower Right Pixel Row
Upper Left Pixel Column must be Less then or equal to Lower Right Pixel Column

Input Format:
{N,Upper Left Pixel Row,Upper Left Pixel Column,Lower Right Pixel Row,Lower Right Pixel Column:Asm(prgmCODEX
Where N = a number between 0 and 4 as defined below.

0=Filled Black Rectangle
1=Filles White Rectangle
2=White Rectangle Border
3=Black Rectangle Border
4=Inverted Rectangle

Example:
{4,0,0,63,95:Asm(prgmCODEX

This would invert the entire screen

Sprite 8 pixel by 8 pixel:

Input:
	Pic0 contains the sprites

Sprite Row: 0-11
Sprite Column: 0-7
X-Coordinate for display 0-88
Y-Coordinate for display 0-56	
Inputs:	{5,Sprite Row,Sprite Column, x coordinate for display, y coordinate of display:Asm(prgmCODEX

Example:

{5,0,0,20,20:Asm(prgmCODEX

Displays a sprite at pixel row 20, pixel column 20

Sprite displayed is the Top left 8*8 sprite on Pic0

3) String Format Inputs

These are realatively easy to use.

Archive Program

"A" is the prefix

Example:
"ATEST:Asm(prgmCODEX

This would archive the program TEST



Unarchive Program:

"U" is the prefix

Example:
"UTEST:Asm(prgmCODEX

This would unarchive the program TEST



Delete Program:

"D" is the prefix

Example:
"DTEST:Asm(prgmCODEX

This would delete the program TEST regardless whether it was archived or not.

Lock Program:

"L" is the prefix

Example:
"LTEST:Asm(prgmCODEX

This would edit lock the program TEST

Unlock Program:

"O" is the prefix

Example:
"OTEST:Asm(prgmCODEX

This would edit unlock the program TEST
("O" stands for open, as each function has a single character prefix to keep input small and program size down)


Bugs/Comments:

All bugs and comments can be directed to this address

biggamer99ca@yahoo.com
