[A86] Re: assembly, programing and games


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

[A86] Re: assembly, programing and games




[Patrick Davidson wrote:]
> On Sun, 11 Mar 2001, Henk Poley wrote:
> > The compiler only works with Rigel,
> 
> To try to avoid confusion, note that my previous message was about the
> situation on the TI-86, and Rigel is a TI-85 shell.  On the TI-85, RAM
> pages are never switched; the 32K of RAM the TI-85 has always appears at
> addresses 80000 to FFFF.

Hmm, yes, I've got to that conclusion by myself...
I always thought that Rigel was for the Ti-86 (also that the 85 and 86 were
nearly the same, only the 86 with better assembly support) .
I don't own a 85 nor 86, so thats it... 

> > because of the relocation-table needed by the other shells, this is a
> > bit difficult to do with a compiler, the compiler also supports many
> > other platforms so we need compatibility...
> 
> Actually, PhatOS doesn't need a relocation table either.  Also, you can
> move your program to a specific address if it is written for some other
> shell.  Finally, I would have to wonder how adding relocation support
> would decrease the compatibility, as it seems to me that increasing the
> flexibility of a compiler should increase its compatibility (of course,
it
> would be *much better* if, instead of having the compiler put in Usgard
> relocation symbols, the relocation were instead handled fully by the
> assembler and linker).

Well the z88dk uses a linker, it should be 'easy' to read from the object
files created by the assembler where the call's and jump's point to and put
that into the "UsGard-header" (Ti-85...)
You will need to change the linker... But what support does that add?
Are there any other platforms/OSes that use such a system?

> > Is there any difference if we use Rigel? So is the program also loaded
> > on the last page (C000-FFFF)??? On the Ti-83 when, some shells don't
> > update the VAT-pointers when it relocates the program to 'exec_ram'.
> > Anything like this with Rigel?
> 
> As I mentioned above, Rigel is a TI-85 shell, so when using it, you don't
> need to be concerned about which pages are used.

Ah, no RAM-paging on the Ti-85 :)

> Anyway, Rigel loads the
> program starting at $9296, and the program could probably be as large as
> the remaining memory, so it could reach into the $F... range.

Almost the same as on the Ti-82/83(+)...

> Rigel does fix the VAT so that variables can be accessed.  Since the
> Rigel program is located right after Rigel in memory, it should be safe
to
> resize or delete anything other than Rigel or the program running, as
> those things won't affect the positions of Rigel or the program.  PhatOS
> does not update the VAT pointers however, so its programs  can not access
> variables easily.

If I understand it right than is Rigel located at the very begining of the
(useable) RAM, and it copies your program right after that (actualy it does
this with the whole program-variable). Your program is executed from within
the programs variable... So Rigel is the first var in memory, then comes
your program-variable, and "at last" the rest of the vars.

WTF doesn't Ion (Ti-83) do that? It makes programming file-routines much
easier...

> The TI-86, of course, is a completely different situation.  There, the
> program is always copied (by the system, when you first run it) into a
> memory area starting at $D748 in the system page of memory.  This page is
> completely separate from the memory used to hold variables, so no VAT
> adjustment is done or is necessary.

So I won't need to worry about code is paged out, because I don't need to
page in/out the last page (where the executing program is stored). Nice :)

	Henk Poley




Follow-Ups: