TIremote v1.3 (C)1998 Frank P. Westlake


TIremote.zip

TIremote operates the TI-92+ and TI-89 calculator remotely through the serial port by reading a script of TI key codes and text. Some foreseeable uses for this program are:

SYSTEM REQUIREMENTS

TIremote was written on a PC running Windows NT 4.0 and was tested with a TI-92+ v1.01 and the gray TI-GRAPH LINK cable (required). It uses the Windows API for serial communications and file input so it should work well on any PC/Windows system. Minor testing has been done with a TI-89.

OPERATION

General:

Connect the TI-GRAPH LINK interface to a serial port on the PC and to the link port on the calculator. Create a script of TI key codes (TI-92 Guidebook p484; TI-89 Guidebook p530) and save them as a DOS text file. Run the TIremote program and select the script. The key codes will be transferred to the calculator and executed.

Command Line:

TIremote com? script

For example; if you are using com1: and a script named "remote.scr" then the command line will be as follows:

TIremote com1 remote.scr

Script File:

The script file is a standard DOS text file that can be created and edited with NotePad or any word processor. If you use a word processor you must save the file as DOS text, not in the default format of the word processor.

Script commands:

All commands must be on a separate line (except plain text) and start in the first column of the line. Following is a list of the available commands then a detailed description of each command:

Text:  <text>

Plaintext to send to the calculator. This text could be numbers or letters in a menu, commands for the home screen, characters in a TEXT file, etc.

Examples:
Disp "How now brown cow"

TI Key code:  @<number>

Replace <number> with the integer value taken from pages 483-487 of the TI-92 Guidebook or pages 529-532 of the TI-89 Guidebook. The key code may be followed by a plaintext comment as long as there is a nonnumeric character immediately after the number (space, tab, letter, etc.). A key code can be repeated by using this format instead "@<multiple>*<code>", where <multiple> is the number of times to repeat <code>.

Example:
"How now brown cow"
@258 STO>
str1
@13 ENTER
Disp str1
@13 ENTER

Label:  @:<string>

Replace <string> with a 1-8 character label, the first character must not be a number. Labels are used with the Jump, Goto, and Choice commands.

Examples:
@:Top
@:Loop

Comment:  @@<text>

Any information that should not be sent to the calculator or executed on the PC. Comments are displayed in the console and can be used to give instructions or display information.

Example:
@@ Waiting for graph to display

Choice:  @c<string>

Replace <string> with a string of keyboard choices followed by corresponding labels. The keyboard choices are the keys that the user should hit to go to the corresponding label. Formatting is as follows:

@ck1k2k3...:label1:label2:label3...

Example:
@@ Menu:
@@
@@S Start over
@@E Exit
@@1 Do 1st problem again
@cse1:Top:End:Prob1

Delay:  @d<number>

Replace <number> with an integer representing the time in milliseconds to pause between commands. This slows the process so that the user can watch what the calculator is doing more carefully. If <number> is 0 or blank the default (fastest) rate will be used.

Examples:
Typing fast...
@d500
Typing slowly..
@d
Typing fast again.

Goto:  @g<string>

Replace <string> with a label name (no colon). Goto is really only useful for endless loops and temporarily skipping portions of a script.

Example:
@gTop

Input:  @i<number>

Replace <number> with the maximum number of characters to accept, the default is 8. Input will transfer up to <number> characters to the calculator when the user presses ENTER, or up to 8 characters if <number> is blank.

Example:
"How now brown
@@ Enter an animal type and press ENTER:
@i15
"
@258 STO>
@@ Enter a variable name:
@i
@13 ENTER

Jump:  @j<number>:<string>

Jump will jump to an alternate location <string> unless a key is pressed within <number> seconds. Replace <string> with a label name and <number> with the number of seconds to wait for a key press.

Example:
@@ Returning to top of script, press any key to cancel...
@j10:Top

Pause:  @p<number>

Pauses script execution for <number> seconds. A pause can be terminated by pressing any key. If <number> is not given, the script will wait until a key is pressed.

Example:
@@Waiting for graph to display...
@p6
@@Press any key to continue...
@p

Repeat:  @r<number>

Repeats the following code times until @r. Loops can be nested to 32 levels.

Example:
@r10
ans()^2
@13 ENTER
@r

EXAMPLE

This example uses each of the commands.


@:Top
@@ This loop isn't necessary, its only purpose
@@ is to demonstrate loops.
@@
@r2
@4360 QUIT
@r2
@263 CLEAR
@r
@r
FnOff:clrgraph:ZoomStd:Graph x^2
@13 ENTER
@@
@@**** Waiting for graph ****
@@
@p6
@@
@@ Apply shading to the graph?
@@ Y=Yes
@@ N=No
@@
@cyn:Shade:Nope
@@
@:Shade
@272 F5
@d400
@11*344 DOWN
@4*13 ENTER
@@
@@**** Waiting for shade ****
@@
@p8
@:Nope
@274 F7
@6*344 DOWN
@13 ENTER
@d0
@28*338 UP
@10*337 LEFT
x^2
@264 ESCAPE
@@
@@Letting this countdown expire will cause
@@the script to return to its beginning.
@@
@@Press any key to break from loop.
@@
@j10:Top
@265 APPS
@13 ENTER
@@
@@Skiping some undocumented key codes.
@@
@gName
@@
@@Press any key to turn off calculator.
@@
@p
@8459 OFF
@@
@@Press any key to turn calculator back on and continue.
@@
@p
@267 ON
@:Name
@2*263 CLEAR
Disp "Thanks for trying TIremote
@@
@@Enter your name and press ENTER:
@@
@i32
"
@13 ENTER
@:End