var8x - Variable packager for TI-82 / 83 / 83+ / 84+ / 85 / 86 calculators
by Patrick Davidson pad@ocf.berkeley.edu http://www.ocf.berkeley.edu/~pad
Version 2 released August 18, 2011

-------------------------------------- OVERVIEW

Var8x is a tool to create variable files for the TI-82, TI-83, TI-83 Plus,
TI-84 Plus, TI-85, and TI-86 calculators containing programs in machine
code or raw data.  It should be able to replace ACE82, Devpac8x, STRING85
(for both ZShell and Usagrd), and PRGM86.

Unlike the original tools, Var8x is released as both 16-bit DOS and 32-bit
Windows executables, and includes source code so it can be recompiled for
other platforms.  Var8x is also the only tool that can build Usgard
executables using listing files from SPASM and Brass (but Var8x will also
use listing files from TASM).

-------------------------------------- USAGE

VAR8X.EXE is the 16-bit DOS version, compiled with Turbo C
VAR8XW.EXE is the 32-bit Windows console version, compiled with MinGW

Command line usage: VAR8X infile outfile [headertype] [listingfile]

infile is the input file which should be the raw binary data you want to
store in the calculator variable.

outfile is the output file which will contain the calculator variable.
The extension of the file name is used to determine which calculator and
variable type is created.  Valid extensions are listed below.

headertype determines the type of header that will be included inside the
variable.  This parameter is optional.  Some shells use the header to
identify program files.  Valid header types are listed below.

listingfile is the listing file, used only for Usgard programs to build
relocation tables.  Var8x looks for R_ labels just like the original Usgard
STRING85.  To generate the needed listing file, use the following switches:
-ll for TASM, -L for SPASM, and -l for Brass.

-------------------------------------- EXTENSIONS

.82P generates an edit-locked TI-82 program.  Default header type is 'ace'.

.83P generates an edit-locked TI-83 program.  Var8x will only generates
programs in the compacted binary format (sometimes misleadingly referred to
as 'hex').  The default header type is 'raw' because TI-83 programs normally
have the header bytes included in their source code.

.8XP generates an edit-locked TI-83 Plus program, which is also usable on the
TI-83 Plus Silver Edition, TI-84 Plus, and TI-84 Plus Silver Edition.  As
with the TI-83 programs will be in compacted binary format and the default
header type is 'raw'.

.85S generates a TI-85 string which is also the typeo used to contain a
machine code program.  Default header type is 'zshell4'.

.86P generates TI-86 programs.  Default header type is '86asm'.

-------------------------------------- HEADER TYPES.

raw - Only the raw data from the input file will be included in the
variable on the calculator.  Var8x will only generate the variable header
allowing the file to be sent to the calculator.  This type is used for
programs that don't need any header (such as TI-86 programs) or when the
binary input already contains the header (such as TI-83 Ion programs).

86asm - Generates the header identifying the file as an assembly program.
Note that this does not include any shell-specific header but only the
header bytes identifying the program type.

ace - Generates the header to run a program on Ace beta 4 on the TI-82.
When this header type is used a special character will be added to the
beginning of the variable name as is standard for Ace programs.

usgard - Generates an Usgard 1.4 program.  Var8x will build a relocation
table from the specified listing file in the same way the original STRING85
for Usgard did so, but supports both TASM and SPASM listing files.

zshell - Generates the header to run a program ZShell 4.0 (or any of the
numerous compatible shells) on the TI-85.
