Re: A85: Tyrant ports


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

Re: A85: Tyrant ports




>The system gets a bit more complicated when the possiblity exists that any
>given program that is about to be executed _could_ work with the VAT and
>variables, which could cause the ti's auto repositioning system to move the
>program all over the place.  The tings that could do this are the delete
>command and the resize command.  The ti is a very clean device.  It likes
>all its variables to be right next to each other on ram with no gaps in
>between.  This is all fine and dandy from the ti-os point of view, but it
>is what creates all the problems with relocation on the ti-clacs.  It can
>be caused whenever someone deletes a variable, or whenever someone resizes
>a variable.  What if the programmer did that in his program?  His program
>might have moved!  How to deal with this is left as an exercise for the
>reader :)))  (the usgard crew found a way.  can you?)

First of all the TI is not as clean as you think, it moves vars around
(split stack mem mmg), stores temporary info in several different places
etc. However, due to the way the shell is started, most of this is not seen
when running normal assembly programs.

Handling the var functions is not a big problem. When ever the user wants to
call one of them, you just make him use a special call, which rerelocates
the program (rcall in usgard ?). If the program calls an external function,
it has to make sure that it its relocated first.

Dines