Re: TIB: Sending basic from an 86 to an 85


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

Re: TIB: Sending basic from an 86 to an 85




> Yeah, sure, I'll take what I can get

Okay, the VAT is the Variable Allocation Table.  It just tells
the calculator the name, type, and address of every variable.
The format is simple.  Each variable gets an entry that is from
6 to 14 bytes long.  The first byte is the type of variable it is.
The only ones I have memorized are $0C, string, and $12,
editable program, but there are like 20 others (even some
TI doesn't tell you about).  The next three bytes are the
address of the variable in AHL format.  Don't ask me to
explain that because it's very complicated and you don't need
to know it.  There's docs on ticalc.org about it if you are
interested.  The next byte is used for linking equations and
graph settings and stuff and nobody really knows or cares
how to work it.  The sixth byte is the length of the name of
the variable.  Bytes 7-x are the name of the variable.  The
end of the name of the variable is the end of it's entry in the
VAT.

Now that you know all that, you can probably guess that
if you find and edit a variable's VAT entry, you could change
it's name or change it's type or do a bunch of other more
dangerous things.  Since you can send strings to the 85
but not programs, it follows that if you changed a program
into a string manually, it would send to the 85 fine.  And
it does.  Now, finding and editing a variable's VAT entry
is no easy task.  You will need to download memview
and medit86 from ticalc.org to continue (last I checked,
memview crashes ROM 1.3, ask Bryan Rabeler if he knows
of something compatible or just us medit86 for everything
if you have 1.3).  Load memview and go to roughly $BE00
on RAM page 7.  You are now looking at roughly the middle
of the VAT.  Oops, something I didn't mention earlier, the
VAT is stored perfectly upside-down, starting at $C000
and working it's way up.  Find the name of your program
in the VAT by scrolling up and down a few pages (remember,
the name is backwards, I.E., tatSx or llehSA).  Now, scroll
downwards (toward the beginning of the VAT) until you find
the end of the name of the next variable.  Remember, the
last character of the name is the end of a variable's entry.
Therefore, the byte after the end of the name of the variable
before (below) your program is the type byte of your program.
Copy the address of that byte down and go into medit86.

Go to that byte and RAM page 7 in medit86.  It should be
a $12, meaning editable program.  Simply change it to a
$0C.  When you get it to the 85, just recall it into a new
program and delete the quotes at the beginning and end 
(so you don't have to worry about changing it back on the
85, since the 85's VAT is different).  To change it back to
a program on the 86, just open medit86, return to the
same spot, and change the $0C to a $12.

If you didn't follow this or if you have any further questions
or anything else, please reply, I will be happy to explain
further/again.