Re: TI-92 file types
[Prev][Next][Index][Thread]
Re: TI-92 file types
* Format of TI-92 PIC
Example of a 103 * 239 picture :
address count description
------- ----- -----------
0000-0007 8 : "**TI92**" text
0008-0009 2 : 00 01 : seperator ???
000A-0011 8 : folder name
0012-0039 50 : "Bitmap file dated mm/dd/yy, hh:mm ^^^^^^^" text
003A-003B 2 : 0100 : seperator ???
003C-003F 4 : 52 00 00 00 : ???
0040-0047 8 : variable name
0048-004B 4 : 10 00 00 00 : ???
004C-004F 4 : file length
0050-0055 6 : A5 5A 00 00 00 00 : ???
= = = = = = = = = = = = = = = = = = = = = = = = = = = =
0056-0057 2 : size : 0C17 : 3095(d) bytes to read
0058-0059 2 : 103 : 0067 : 103(d) vertical resolution
005A-005B 2 : 239 : 00EF : 239(d) horizontal resolution
005C-0C6D 3090 : data : 103*240/8 = 3090 bytes stored in row major
NOTE : the number of bits in each row will be aligned
to a multiple of 8
0C6E-0C71 1 : DF : end mark
= = = = = = = = = = = = = = = = = = = = = = = = = = = =
0C6F-0C70 2 : checksum : from "bytes to read" to "end mark"
____________________________________________________________________________
_________________
* Format of TI-92 TEXT
Adress Count Description
0000-0007 8 "**TI92**" text
0008-0009 2 00 01 separator
000A-0011 8 Folder name
0012-0039 40 "Text file..." text
003A-003F 6 01 00 52 00 00 00 separator
0040-0047 8 Variable name
0048-004B 4 0B 00 00 00 separator
004C-004F 4 File length (ex : &97 &01 &00 &00=> &(00 00 01 97) => 407)
0050-0055 6 A5 5A 00 00 00 00 separator
=========================Data===============================================
===
0056-0057 2 Size = bytes to read
0058-0059 2 00 01 separator (?)
005A- x n Text with chr(13) as lign separator
x+1 - x+2 1 End mark = E0
============================================================================
===
x+3 - x+4 2 Checksum from "size" to "end mark" (?)
____________________________________________________________________________
__________________
* Format of TI-92 PRGM
Adress Count Description
0000-0007 8 "**TI92**" text
0008-0009 2 00 01 separator
000A-0011 8 Folder name
0012-0039 40 "Program file..." text
003A-003F 6 01 00 52 00 00 00 separator
0040-0047 8 Variable name
0048-004B 4 12 00 00 00 separator
004C-004F 4 File length (ex : &97 &01 &00 &00=> &(00 00 01 97) => 407)
0050-0055 6 A5 5A 00 00 00 00 separator
=========================Data===============================================
===
0056-0057 2 Size = bytes to read ex &02 &50 => &0250 = 592
0058-x n Program with chr(13) as lign separator
x+1 - x+ 8 7 00 19 E4 E5 00 00 08
x+8 - x+10 1 End mark = DC
============================================================================
===
x+11 - x+14 2 Checksum from ? to ?
____________________________________________________________________________
_______________________________
* Format of TI-92 Groups
NOTE: All the data is in little-endian format. That is, the least
significant
byte is written before the most significant.
offset length description
------ ------ -----------
$00 $0A The header "**TI92**" 0x01 0x00
$0A $08 Default Folder Name (zero terminated unless 8 chars)
$12 $28 Comment (blank padded)
$3A $02 Number of variables (including folders)
Next, we have a table of all the variables and folders that are stored here.
Each entry is 16 bytes long. There will be as many of these as the word
stored at $3A (the number of variables). This table contains both variables
and folders.
Here is the format of variable entries:
Variables are listed in a table. The data is later, and it is pointed to
by the offsets in the following format.
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|-----------|-----------------------|-----|-----|
A B C D
Letter Length Description
------ ------ -----------
A 0x04 Long word containing offset of the variable data
B 0x08 Name of variable (zero terminated if not 8 characters)
C 0x02 Byte containing the type of variable this is
D 0x02 Just 0's ...
Here is the format of folders:
Folder entries share the same table as variable entries.
All variables following a folder entry will be considered to be in the
given folder. This trend continues until another folder entry
replaces the first one. Then, subsequent variables are placed in that
folder. If no folder entries are included, then variables are
considered to be part of the folder named at file offset 0x0A.
If this is null, then it is considered to be in the current directory
when a link program sends it.
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|-----------|-----------------------|-----|-----|
A B C D
Letter Length Description
------ ------ -----------
A 0x04 Long word containing pointer to first var in folder
B 0x08 Name of folder (zero terminated if not 8 chars)
C 0x02 Type of var
D 0x02 Word containing number of variables in the folder
After all the headers there is one more long word containing the offset
to the first byte that is invalid (past the end of the file)... this is
the byte after the checksum.
Then there are the following bytes...
$A5 $5A
The next part is the data part of all the variables... The offset in
the table points to a structure of the following format:
00 01 02 03 04 05 06...06+(length) X X+1
|-----------|-----|----------------|-----|
A B C D
Letter Length Description
------ ------- -----------
A $04 Long word of zeros
B $02 Word telling length
C <var> Data (length is the value stored in previous word)
D $02 Checksum (word)
The checksum is obtained by adding all the data
bytes together starting from the first data byte of the variable. Then
you binary AND it with 0xFFFF. It is stored as a word after every variable
data.
Here is a list of variable types:
---------------------------------
$00 Expression
$04 list
$06 matrix
$0A Data
$0B Text
$0C String
$0D GDB
$0E FIG
$10 PIC
$12 PRGM
$13 Function
$14 Macro
$1F Folder
____________________________________________________________________________
_______________________________
MP <philhuck@club-internet.fr> <www.i-france.com/mp/index.htm> Soon for my
website.
-----Message d'origine-----
De : Jvrg Wehlend <wehlend@IAI.FZK.DE>
À : CALC-TI@LISTS.PPP.TI.COM <CALC-TI@LISTS.PPP.TI.COM>
Date : mardi 8 septembre 1998 00:52
Objet : TI-92 file types
Can anyone give me a description of TI-92 files *.92* ?
Especially I need a description for Image-Files *.92i .