[A82] Re: porting iondetect to the ti82


[Prev][Next][Index][Thread]

[A82] Re: porting iondetect to the ti82



> Where is ptemp?  Currently I'm guessing it's at 8D10, but I see the same 
> values at 8D12 and 8D14 as well.  That's probably the wrong address 
> anyway, so where is ptemp?
> Where is progptr?

As TI has not released much information about the TI82 lots of what is 
documentde on the TI83 is not documented on the Ti82. Most what is 
documented uses names from the TI85, but when the TI83 name has been known 
this has been used. There are several pointer to the VAT and the function 
of some of the them is not known.

The VAT starts at FE6E with variables that are not programs, after that the 
VAT for the programs is located and ends at (8D18). The TIOS stores temp 
data of some sort between (8D18) and (8D10). (8D12) point to the last byte 
of free mem.

So ptemp is probably 8D18, OPS is 8D10, and FPS is 8D12. (IIRC when you run 
an assembler program on the TI82 the operator stackis empty so (8D10) 
=(8D18), but that could be wrong).

The programs I have seen search the whole VAT when they start looking for a 
program, so I am not sure where progptr is. Based on where the other 
pointers are located 8D14 or 8D16 would be natural choices, but when the 
other three pointers are initialized these two are not changed, so it seems 
inlikely. The ROM includes a function to locate programs (not other vars) 
and I do remember ti using a special pointer.

> Is the structure of the symbol table any different on the TI82?

>From 82-var.txt:
On the TI82 the VAT has been split into three different parts, which uses
different formats for storing data. The top most part holds all types of
variables except programs. The next part holds information on programs. The
last part holds ?ANS?. As on the TI85 all data in the VAT is stored 
backwards.

The format of the top most part is shown below.

       +------+------+------+--------+--------+------+
       | Type | Adr1 | Adr2 | Token1 | Token2 | Zero |
       +------+------+------+--------+--------+------+

The type byte holds the type of veriable discreibed. Adr1 and Adr2 holds 
the
adress of the first byte of data (including the length). Token1 and Token2
holds the variables token. The last byte is almost always zero, but not
always. The function of the last byte is not known.

The next part of the Vat uses the format shown below.

       +------+------+------+---------+---------+
       | Type | Adr1 | Adr2 | NLength | Name . .|
       +------+------+------+---------+---------+

As before Type hols the type of variable and Adr1 and Adr2 holds the 
address.
Nlength holds the length of the name in bytes. After that comes the name.

The 4 MSB of the types (for both kinds of VAT) is sometimes used to store
data, which means that they are not allways zero. Therefore these bits 
should
be masked out befor the type is used. When these functions are used for Y- 
Vars
they are are used to tell what kind of graphs they affect (see the tokens
section for details). This makes it easier to use the "smart" graph 
function.

-- 
Dines Justesen




References: