start screen
Asm TI-83\+ Ion teacher

Welcome to the Asm TI-83\+ Ion Teacher!

This is a first release so it isn't perfect. I do know that the title bar says weird stuff, so please ignore that. Please report any bugs to the addresses below. I should release other versions of this help file. I am not an expert, but I am learning, so we can learn together. I made this because there were no other TI-83\+ Ion teachers. And I was bored one day.

Tutorial 1

Tutorial 2

  Tutorial 3

  Tutorial 4

  Tutorial 5

My Website is: http://bapg.ticalc.org

My E-Mail is: warfreak2@juno.com

My AOL Instant Messanger is: cd141985


Tutorial 2

We are going to make our first program :) the lines of code that have a ; before them, this area is notes for the reader which will not be put in the program. I will use these to explain what certain lines of text mean. PLEASE NOTE THAT THE STANDARD ION HEADER IS IN ITALLICS AND WILL BE THE STANDARD HEADER FOR PROGRAMS. Here is the program.

        .nolist

        #include "ion.inc"  	;the area in itallics is the standard

        .list	    	;ion header. you can change the name

#ifdef TI83P	    	;displayed by ion and the 2 labels

        .org    progstart-2

        .db     $BB,6D

#else

        .org    progstart

#endif

        ret

        jr      nc,lblStart 	;jumps to the label lblstart

        .db     "Hello World",0	;The title displayed by ION

lblStart: 	;defines where lblstart is

bcall(_clrlcdf)	;Clear the screen

bcall(_homeup) 	;puts the cursor in the homerow

ld	a,0

ld	(CURCOL),a	;Loads a (which is zero) into the x coord.

ld	a,0

ld	(CURROW),a	;Loads a (which is zero) into the y coord.

ld	hl,txtHelloWorld	;Loads the text from txtHelloWorld into hl

bcall(_puts)	;Puts the text on the screen

bcall(_getkey)	;Waits for keypress before continuing

bcall(_clrlcdf)

ret	;returns to basic mode

txtHelloWorld:	;a label used for jumping and other things

.db	"This is where   " 	;if you want multiple lines, don't have

.db	"the text will be" 	;a ,0 after the "

.db	"displayed,      "

.db	"each line has to"

.db	"16 charachters  "

.db	"long, there can "

.db	"only be 7 lines ",0	;this defines the end of the text

.end	;defines the end of a program

.end

Tutorial 3


Tutorial 1

In this help file, we will be using 2 programs to compile the files we make, tasm 3.01 and devpac83. Both of these programs are avalible at ticalc.org (a highly recommended Texas Instruments Graphing Calculator website). To compile the programs, we will make a batch file called asm.bat. To do this, we can use a text editor such as notepad. Copy and paste these lines of code into the file. you can copy by highlighting the text and pressing crtl+c. then to pase, we put the cursor in notepad and press ctrl+v. here is the code:

@echo off

echo ----- Assembling %1 for the TI-83 Plus...

echo #define TI83P >temp.z80

if exist %1.z80 type %1.z80 >>temp.z80

if exist %1.asm type %1.asm >>temp.z80

tasm -80 -i -b temp.z80 %1.bin

if errorlevel 1 goto ERRORS

devpac83 %1

copy %1.83p %1.8xp >nul

echo ----- Assembling %1 for the TI-83...

echo #define TI83 >temp.z80

if exist %1.z80 type %1.z80 >>temp.z80

if exist %1.asm type %1.asm >>temp.z80

tasm -80 -i -b temp.z80 %1.bin

if errorlevel 1 goto ERRORS

devpac83 %1

echo ----- Success!

echo TI-83 version is %1.83p

echo TI-83 Plus version is %1.8xp

goto DONE

:ERRORS

echo ----- There were errors.

:DONE

del temp.z80 >nul

del %1.bin >nul

This code is also included with asm.bat in ion.zip which you can get at joewing.calc.org or ticalc.org. When we compile the files, it will make a version for the TI-83 and TI-83+. To compile the programs, you will enter dos, and go into the directory where you keep devpac83 and tasm3.01 and asm.bat. Then you just type in:

asm prgmname

DO NOT INCLUDE THE FILE EXTENSION. The files also have to be a .z80 file. To save z80 files in note pad, type the codes, then click on file, save or save as, then click the down arrow next to Text Documents, and click on All Files (*.*), then place the cursor where you put in the name of the document and type in the name of the program you want to save as, just save it as prgmname.z80. You do not have to name the files prgmname, you will replace this with what you want to call the file.

Tutorial 2


Tutorial 3

We are going to make a program that will display inverted text :) Here is the code

        .nolist

        #include "ion.inc"

        .list

#ifdef TI83P

        .org    progstart-2

        .db     $BB,6D

#else

        .org    progstart

#endif

        ret

        jr      nc,lblStart

        .db     "Inverted Text",0

lblStart:

bcall(_clrlcdf)

bcall(_homeup)

set	textInverse,(iy+textflags)	;Sets the textinverse

ld	a,0

ld	(CURCOL),a

ld	a,0

ld	(CURROW),a

ld	hl,txtHelloWorld

bcall(_puts)

res	textInverse,(iy+textflags)	;Resets the text inverse

bcall(_getkey)

bcall(_clrlcdf)

ret

txtHelloWorld:

.db	"  Hello World   ",0

.end

.end

Tutorial 4


Tutorial 4

We are going to make a program to display sprites. Sprites are pictures that are used in programs to move. here is the code

        .nolist

        #include "ion.inc"

        .list

#ifdef TI83P

        .org    progstart-2

        .db     $BB,6D

#else

        .org    progstart

#endif

        ret

        jr      nc,lblStart

        .db     "IonPutSprite Example",0	;The title displayed by ION

lblStart:

bcall(_clrlcdf)

bcall(_homeup)

bcall(_cleargbuf)	;Clears the graph buffer

ld	b,8	;Height of sprite

ld	a,5	;X coordinate

ld	l,5	;Y coordinate

ld	ix,sprBox	;Loads the sprite into ix

call	IonPutSprite	;Puts the sprite on the screen

call	IonFastCopy	;Copies the graph buffer onto the screen

bcall(_getkey)

bcall(_clrlcdf)

bcall(_cleargbuf)

ret	;Returns to ION

sprBox	;This is the sprite, 1=on;2=off

.db	%11111111

.db	%10000001

.db	%10000001

.db	%10000001

.db	%10000001

.db	%10000001

.db	%10000001

.db	%11111111

.end

.end

Tutorial 5


Tutorial 5

Here is code to make a program turn off mid-program! here is the code

        .nolist

        #include "ion.inc"

        .list

#ifdef TI83P

        .org    progstart-2

        .db     $BB,6D

#else

        .org    progstart

#endif

        ret

        jr      nc,lblStart

        .db     "Power Off Program",0

lblStart:

bcall(_clrlcdf)

bcall(_homeup)

ld	a,0

ld	(CURCOL),a

ld	a,0

ld	(CURROW),a

ld	hl,txtHelloWorld

bcall(_puts)

bcall(_getkey)

bcall(_clrlcdf)

ld	a,1	;I really don't understand what this means, but it works!

out	(3),a	;

ei	;

halt	;

ret

txtHelloWorld:

.db	"  Hello World   ",0

.end

.end