Re: A86: Where's the RAM Table?


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

Re: A86: Where's the RAM Table?




> At 09:21 PM 1/14/98 -0600, you wrote:
> >
> >I was flipping through the ti info about variables on their asm page.
> Using my
> >memory viewer I flipped to RAM page 1 at a few bytes after $8000 . I saw some
> >program entries (like ti described them) $12 (for program) followed my length
> >of name followed by name. I then used my memedit to change the $12 to $0C (I
> >wanted to make it a string). But It didn't work, it just changed back to a
> $12
> >. What's up with that? I'm just starting out asm programming and I heard
> >something about a RAM table ..? Any way, if you know why this isn't working,
> >please reply.
> >--
> Well, it's more complicated than that. Actually, I didn't know there was
> variable stuff on page 1. The VAT (Variable Access Table) starts at the end
> of RAM page 7, and builds down. It tells where the variables are, their
> names, etc. The stuff on page 0 and 1 is mostly OS data and other system
> stuff. What you're seeing might be name of the currently running program or
> something.
> 
> Anyway, where the program data is, there is also a length and a type byte
> (type of program var) so you might not just be able to change the VAT entry
> to change it to a string...Oops, I was wrong, I just tried it, it works.
> 
> --Joshua
> 
> Oh yeah, I wasn't sure if there was any documentation for the VAT, so I
> just wrote a doc file, here it is.


Also, I posted a big message on ti's discussion board under I think 
assembly programming.. Here's the address:

http://www-s.ti.com/cgi-bin/discuss/sdbmessage.cgi?databasetoopen=cal
culators&topicarea=Assembly+Programming&do_2=1

Also I'll put my main message(there are a couple) right in this 
message, right here:
_____________________________________________________________
Assembly Programming
[14:06, 1/1/98] Re: General format of VAT? (a 1.5K message) by Jim
Alverson


I a couple hours studying the VAT(It's part of the 7th RAM page). The
way I see it is that it starts at the end of the PAGE ($BFFF) and
works backwards. Right now I know how to change the name(if it's the
same length) and a couple other things. Starting from $BFFF on page 7
in RAM, you have a varible identifier. The first varible is always
xStat in the VAT. xStat is a List so it's Varible identifier is 04.
Before I go any farther I'll give you the whole list of varible
identifiers:

OBJECT TYPE VALUE OBJECT TYPE
----------------- -----------
00 REAL
01 COMPLEX
02 VECTOR - REAL
03 VECTOR -COMPLEX
04 LIST - REAL
05 LIST - COMPLEX
06 MATRIX - REAL
07 MATRIX - COMPLEX
08 CONSTANT - REAL
09 CONSTANT - COMPLEX
0A EQUATION
0B system use
0C STRING
0D GRAPH DATABASE - STANDARD
0E GRAPH DATABASE - POLAR
0F GRAPH DATABASE - PARAMETRIC
10 GRAPH DATABASE - DIFFERENTIAL EQUATION
11 PICTURE
12 PROGRAM
13 CONVERSION
14 system use
15 system use
16 system use
17 system use
18 system use
19 system use
1A system use
1B system use
1C system use
1D system use
1E system use
1F system use

Long list eh?

Anyway, that's just to identify which type of varible it is(ie. 04
would be a list). Directly after that is a 3 byte absolute
address(almost positive, just trust me) starting at $BFFC and going to
$BFFE. There is a ram call to convert into a 16bit address in case you
want to know where the varible is stored. The next byte is at $BFFB..
I have been told that it is for linking equations to varibles. I'm not
sure how it works but it will be 00 if it's not linked to any
equation. After that, at $BFFA is the length of the name of the
varible. It is 05 for xStat. Following that is the name starting at
$BFF9. It's in a reverse order though. $BFF9 is 'x', $BFF8 is 'S',
$BFF7 is 't', $BFF6 is 'a', and $BFF5 is 't'. So if you read the vat
entry for xStat starting from $BFF5, it would read:

HEX ASCII
74 t (The name backwards)
61 a
74 t
53 S
78 x
05 (symbol) (Length of name)
00 (null) (Linking value)
01 (first byte of absolute addr)
40 (second byte)
00 (third byte)
04 (type of var. -list-)

I've probably confused you all by now.. but it's not very hard.. The
next entry starts at $BFF4, one byte before the end of xStat's entry.
Each entry is one after another. I'm not really sure which way you are
supposed to read it but it makes some sense to read it from the back
to front. Post anymore questions and I'll probably be able to answer.
You'll probably need questions because I'm not very good at
explaining.. hehe :) Hope some of this helps. And get a memory
edit/viewer so you can see what I'm showing here. 




References: