Application Variables!

Application variables, or AppVars, are variables that assembly programs and the TI-OS can use to store ANY kind of data!

These are often used to store information that is to be used later in some shape or form.

While it is easy to make them using the C(++) toolchain, sometimes you might want that an external program be used to create data that one of your programs can use.

This guide is here to help you do that!

This guide is here so that there is no ambiguity on how you and your program should read and write to an AppVar file.

The following sections are provided to make your life easier:

  1. The .8xv file
  2. The variable data section
  3. Variable entries

The .8xv file

".8xv" is the extension used for TI-84 variable files. This file type can hold many kinds of variables, including AppVars!

In order to read from it, you have to know how the data is arranged, which the table below will show you.

All 2-byte values are stored in Intel-style little-endian notation, which just means that they're stored from least significant to most significant.

Example: 0x2949 would be stored as 49 29.

.8xv file specification (for AppVars)

Offset Length Description
0 8 bytes File signature. This is always **TI83F*
8 3 bytes Further signature. This is always 0x1A, 0x0A, and 0x00 (26,10,0).
11 42 bytes File comment. Padded with null characters if it takes up less than 42 bytes.
53 2 bytes Length in bytes of the data section. This is 57 bytes less than the total file size (not of the data section!).
55 n bytes The data section. In an AppVar file this contains all of the AppVar data.
55+n 2 bytes File checksum. This is basically the lower 16 bits of the sum of all the bytes in the data section.

Don't forget that the data section has its own specification!

The variable data section

Don't make the mistake I made and forget that the data here needs to be formatted too!

Your AppVar file will not work if you just dump your data in here. (You have to look at some more info before you can just do that!)

Anyway, every variable in an .8xv file is contained in this section. For us, we will be fitting one AppVar into this file,

so we shouldn't worry about figuring out how to put multiple variables in here.

Each variable entry is formatted like this:

Offset Length Description
0 2 bytes Storage type? Always has a value of 0x0B (11) or 0x0D (13).
2 2 bytes Length in bytes of the variable data (Should be the length of the entire data secion minus 17).
4 1 byte Variable type ID byte. The type ID for an AppVar is 0x15 (21)
5 8 bytes Variable name as it shows up on your calculator. Padded with null characters on the right.
13 1 byte Version. Normally set to 0. This parameter exists if "Storage type" is 0x0D (13).
14 1 byte Flag. Set to 0x80 (128) if archived, otherwise 0. Exists if "Storage type" is 0x0D (13).
15 2 bytes Length in bytes of the variable data (this is a copy of offset 2).
17 n bytes Entry data. Specified below.

Entry data

Offset Length Description
0 2 bytes Length of the entry data
2 n bytes The data.

And that's that! I hope this guide helps you all learn how to create and read AppVar files on your computer!

Thanks go to Merthsoft for providing information about .8xv files!