Tutorial 13
Using Virtual TI

    Click to return to the site's menu... or here to get back to the tutorial's menu.

Overview
    Again, this really isn't much of a Programming tutorial. But the information in this tutorial could save your calculator from crashes. Virtual TI is a TI calculator emulator made by Rusty Wagner. So far, it is the only emulator available that emulates the TI-83 Plus, not to mention about every TI calculator available. The Virtual TI readme below (included with VTI) describes the functions, keypresses, and general information about Virtual TI: (PN: The v2.5 beta 5 of VTI has been released since, its readme file is identified by the additions in grey)

Virtual TI v2.5 beta 4
Written by Rusty Wagner

Requirements
* A Pentium or better running Windows 95 or higher, or Windows NT 4.0 or higher (P.N.: You'll need administrator rights under Windows NT 4.0, 2000 and XP to allow execution of this program)

This emulator will run ROMs from the TI-82, TI-83,TI-83 Plus, TI-85, TI-86, TI-89, TI-92, TI-92 II,and/or TI-92 Plus calculators.

A menu containing the functions of the emulator can be obtained by right clicking on the LCD.

Features:
* ROM versions are automatically detected
* Switch between ROM versions without restarting the emulator
* Built-in ROM dumper with automatic error correction
* Archive memory support for TI-89 and TI-92 Plus
* Send files to the calculator
* Receive files from the virtual calculator
* Use a TI Graph-link cable or serial cable to connect to a     real calculator
* Connect two instances of the emulator with a virtual link
* Sound emulation
* Save and load the state of the calculator. Any changes to the Flash ROM (i.e. archived variables) will be included in the state.
* 4-level and 7-level grayscale support
* Full skinning system with editor
* Screenshot feature which saves to a BMP or to the clipboard
* Option to emulate at either the true speed of the calculator or the fastest the computer can handle.
* The letter keys are aliased to produce their respective letters.  No need to press the Alpha key, just type.
    * A full-featured graphical debugger
    * Code disassembly pane. ROM call addresses are replaced by the name of the ROM function.  DB92 symbol information is also used when available.
    * Code breakpoints.  Does not modify memory, so they are completely transparent.
    * Data breakpoints can be set on a single byte, word, or dword, or a range of addresses.
    * Set a breakpoint on entry to an assembly program automatically.
    * View and change the value of the registers
    * Hexadecimal memory view/edit pane with search capability
    * On the 89/92(+), a handle pane which lists all allocated handles.  Allows user to jump directly to the start of the handle within either the disassembly pane or the memory pane.
    * On the 82-86, a variable pane which lists all variables and their types.  Allows user to jump
directly to the start of the variable within either the dissassembly pane or the memory pane.
    * Real time updates to the LCD, even with grayscale
    * Log reads/writes to memory or changes to individual bits

 

Limitations of this beta 4 version:
* 8-level grayscale on the TI-86 doesn't work properly yet
* Key redefinition is not yet implemented, although the program should now work on international keyboards without it
* Receiving of backups from the virtual calculator is not implemented
* Log link port send/receive is not implemented
* TI-82 Rom dumper does not work yet
* No flash support yet for the TI-83 Plus

This emulator requires a ROM image from a real calculator that you own.  I will not send you any ROMs. You can use the built-in ROM dumper to obtain an image from your calculator.

If you already have a ROM dump, place it in the same directory as VTI.EXE (this is done automatically if you use the built-in dumper).  Make sure it has the extension .rom, .bin, or .dmp.  The file name may be anything (the calculator and version number are automatically detected).  Any .tib Flash ROM upgrades will also be recognized if placed in the same directory as VTI.EXE.  The latest version will be used by default, but you may revert to an earlier version from the emulation mode dialog. 

On the TI-92, these are the PC key equivalents that are not obvious:
F9 - Apps
; - Theta
Tab - Store
Left ctrl - Diamond
Left alt - 2nd
[ - (
] - )
Caps lock - Hand/Lock
` - Mode
\ - Ln
Ins - Sin
Home - Cos
PgUp - Tan
Del - Clear
Scroll lock - On
Num Pad Enter - Enter below cursor pad
 
On the TI-89:
F6 - Catalog
F9 - Apps
Tab - Store
Left ctrl - Diamond
Left alt - 2nd
[ - (
] - )
Caps lock - Alpha
` - Mode
\ - |
Ins - EE
Del - Clear
Scroll lock - On

On the TI-82 and TI-83:
F1 - Y=
F2 - Window
F3 - Zoom
F4 - Trace
F5 - Graph
Esc - Mode
Caps lock - Alpha
` - X,T,theta
= - Stat
F6 - Math
F7 - Matrx
F8 - Prgm
F9 - Vars
PgDn - Clear
End - x^-1
Insert - sin
Home - cos
PgUp - tan
Num lock - ^
; - x^2
[ - (
] - )
' - log
\ - ln
Tab - Store
Scroll lock - On
 
On the TI-85 and TI-86:
Esc - Exit
` - More
Caps lock - Alpha
Ctrl - x-var
F6 - Graph
F7 - Table
F8 - Prgm
F9 - Custom
PgDn - Clear
' - log
Insert - sin
Home - cos
PgUp - tan
Num lock - ^
\ - ln
End - EE
[ - (
] - )
; - x^2
Tab - Store
Scroll lock - On
 
 
To send a file to the calculator, press F10 or drag and drop from explorer. To enter the debugger, press F11. To bring up the emulation ROM version screen, press F12.
 
The debugger is for the most part the same as any other graphical debugger.  One thing to note is the color of the lines in the disassembly pane.  Red means breakpoint, green means current PC, and blue means currently selected.  If a line is in more than one state at the same time, the colors will be combined.
For example, a breakpoint that is selected will combine red and blue, making magenta.  Also, pressing G in either the disassembly or memory pane will allow you to jump to a specific address.  Registers can be changed by clicking on them.
 
The source code to the emulator can be found on the Virtual TI web page at http://vti.acz.org, and requires
C++Builder 3 to compile.  You may use the 68K and Z80 emulation core and disassembler as long as you mention its original source, the Multiple Arcade Machine Emulator, and provide the address where one can obtain the entire distribution (its web address is listed below).  The JPEG encoding/decoding code is part of the Colosseum Builders C++ Image Library.  Any of the other code can be used as long as you state that it came from this program.
 
You may not sell the binaries or source to this program. They are free and will always be free.  This program cannot be distributed with any copyrighted ROM images (independently developed replacement operating systems are OK).
 
Questions?  Comments?  Bugged?  E-mail me at rusty@acz.org
 
For updates, visit the Virtual TI web page at http://rusty.acz.org Visit the Assembly Coders Zenith web page at http://www.acz.org
 
The 68K and Z80 emulation cores are from the Multiple Arcade Machine Emulator.  The source and binaries of the entire M.A.M.E emulator can be found at http://www.retrogames.com/mame.html Hors ligne
 
Special thanks to:
Mike Heckenbach for writing and testing the parallel link support
Michael Donn for providing me with a black link cable to test with
Nick Caldwell for his scan of the 83 and 85
Matt Johnson for his info on the 86
Alan Bailey for his info on the 86 ports
Pascal Bouron for his info on the 85 link protocol
Tim Singer for his info on the 86 link protocol
Per Finander for his info on the 82/85 link protocol
David Ellsworth for his info on the 92

 

 

History:
March 18, 2000:
    Released version 2.5 beta 5
    Fixed 83+ on button
    Fixed bug which sometimes caused crashes when startup screen was visible
    Added emulation of TI-89/92+ ROM version 2.01/2.03
    Added support for .89u and .9xu Flash ROM update files
    Splash screen fade effect
    Floating skin support with updated skins for 83, 83+, 85, 86, and 89
    Added skin author information to skin files

November 2, 1999:
    Released version 2.5 beta 4
    Fixed bugs in parallel link
    Fixed bugs in ROM Wizard
    Changed startup screen and about box
    Included simple version of skin editor
    Fixed window resizing bug (hopefully)
    Fixed load state bug for TI-83(+)
    Fixed list variable saving bug on TI-82/83
    Eliminated pause after sending variable to hard drive
    Fixed screenshot saving bug

October 28, 1999:
    Released version 2.5 beta 3
    Parallel link is now supported, although it is a bit slow
    Organized list of ROMs into separate tabs for each calculator

October 11, 1999:
    Released version 2.5 beta 2
    Added support for black TI-Graph Link cable
    Fixed support for serial link cable

September 26, 1999:
    Released version 2.5 beta
    Fixed TI-89 and TI-92 Plus update bug
    Fixed ROM dumpers for 82-86
    Added ROM dumper for 83+
    Fixed file sending for 83+

August 25, 1999:
    Released version 2.5 alpha 3 (restricted).
    Fixed problems with TI-92 and TI-92 II emulation.
    Program now loads much faster after the first time.
    Set breakpoint on program entry now works on all calculators.
    Improved disassembler output for 82-86.
    Added support for TI-83 Plus

July 5, 1999:
    Released version 2.5 alpha 2 (restricted).
    Fixed bug in window resizing.
    When virtual link is enabled, the second calculator will pause when the first enters debug mode.  This prevents the second calculator from timing out when debugging link routines.
    Added "Run to cursor" (F4) in debugger.
    Added LCD update frequency option.
    Added sound support.

July 1, 1999:
   Released version 2.5 alpha 1 (restricted).
    Added skinning system.
    Window can be resized to any size, not just 1x and 2x.
    Added full screen mode.
    Added option to display percentage of actual speed.
    Added "stay on top" option.
    Built-in ROM dumper is now available for the 86.
    Improved timing, especially for the 85 and 86.
    Fixed several bugs.
    Emulation now in a thread separate from message handling, allowing for more efficient operation.
    Gigantic improvement in real/virtual link support.
    Added setup wizard and ROM wizard.
    Added support for DB92 symbol information.
    Added ability to drag and drop files.

May 1, 1999:
    Released version 2.0 alpha 4.
    Fixed bug in file sending.
    Added images for the 83 and 85, updated 86 image.
    Fixed bug in 89/92(+) exception handling.
    Fixed bugs in keyboard handling.

April 18, 1999:
    Released version 2.0 alpha 3.
    Faster than previous version.
    Added screen shot support.
    Added the ability to receive from the virtual calculator.
    Added virtual linking.
    Fixed bugs when Windows is set to use "large fonts".

February 19, 1999:
    Released version 2.0 alpha (restricted).
    Added support for TI-82, TI-83, TI-85, and TI-86.
    No longer uses DirectInput (now Windows NT 4 compatible).
    January 10, 1999:
    Released version 1.01 beta.
    Fixed ROM dump problem with COM ports other than 1.
    Added support for multiselection in send dialog box.
    Restriction to actual speed is now an option.
    Added ability to redefine keys for non-US keyboards.

December 24, 1998:
    Initial public release (version 1.0 beta).

 

Conclusion
   
Virtual TI is the next best thing to actually owning a TI calculator. You can send your assembled Asm program to the Emulator and test it there. If the progrtam has bugs in it, it will turn off and reset it self which is not half as bad as having your real calculator reset=)

 

 

Tutorial 14

 

    Click to return to the site's menu... or here to get back to the tutorial's menu.