TI92 common files format



Release 1.0 02/10/1997
By Vincent CARON



CONTENT
[dot]'.92P' program files
[dot]'.92G' group files
[dot]'.92B' backup files


PLEASE NOTE :
 - All numbers are in HEXADECIMAL format.
 - All strings are in C format. They are arrays [1..maxsize] of char, with
   an ending zero if the actual size of the string is less than maxsize.
   In this case, any char after a #0 has no meaning and is not obviously
   equal to #0.
   It seems that the TI92 pads strings with #0 all the time.
 - These formats refer to a format version number. They come from the
   Win'Link v1.4 (08/12/96) software of TI, and are still up to date on
   the 01/25/97.




'.92P' PROGRAM FILES (v1.0)
+00    8    "**TI92**"
+08    1    format version (maj)
+09    1    format version (min)
+0A    8    directory name string
+12    28   comment string
+3A    2    number of entries (LSB first)
+3C    4    pointer to first entry (LSB first)
+40    8    variable name string
+48    1    variable type
+49    3    0  0  0
+4C    4    file size (LSB first)
+50    2    A5 5A (header end)
+52    2    0  0
+54    4    n = variable data size (MSB first) = TI Var-link's size - 2
+58    n    variable data
+58+n  2    variable data checksum (+52 to +57+n inclusive)

Remarks :
  - file size = variable data size + 5A
  - pointer to first entry = 52
  - number of entries = 1 (*.92? files are ALL *.92G files (!), except *.92B)


'.92G' GROUP FILES (v1.0)
+00        8    "**TI92**"
+08        1    format version (maj)
+09        1    format version (min)
+0A        8    0 0 0 0 0 0 0 0 (unused)
+12        28   comment string
+3A        2    n = number of entries (LSB first)
+3C             n entries (i=0..n-1) :

+3C+10*i   4    P(i) = pointer to entry data (LSB first)
+40+10*i   8    entry name string
+48+10*i   1    type
+49+10*i   3    ? ? ?

+3C+10*n   4    file size (LSB first)
+40+10*n   2    A5 5A (header end)
+P(0)           n entries (i=0..n-1) :

+P(i)      2    0 0
+P(i)+2    4    n = variable data size (MSB first)
                  = TI Var-link's size - 2
+P(i)+6    n    variable data
+P(i)+6+n  2    variable data checksum (+P(i) to +P(i)+5+n inclusive)

Remarks :
  - If the entry is a directory (type 1F), P(i) points to the first variable
    in this directory


'.92B' BACKUP FILES (v1.0)
+00    8    "**TI92**"
+08    1    format version (maj)
+09    1    format version (min)
+0A    8    0 0 0 0 0 0 0 0 (unused)
+12    28   comment string
+3A    2    number of entries (LSB first)
+3C    4    pointer to first entry (LSB first)
+40    8    ROM version string ("x.x")
+48    1    type (1D)
+49    3    0 0 0
+4C    4    file size (LSB first)
+50    2    header end (A5 5A)
+52    n    backup data (n = file_size - header_size - 2)
+52+n  2    backup data checksum (+52 to +51+n inclusive)

Remarks :
  - number of entries = 1
  - pointer to first entry = 52
  - header size = 52 (header end included)