Re: A85: Tyrant ports


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

Re: A85: Tyrant ports




>Summit is a shell switcher (BETA 1-3).  BETA 4, which is what I'm working
>on now, is a shell that I'm writing as competition to Usgard.  The major
>feature of it that everyone is going to love is the way it will handle ROM
>calls.  Your program can use anything in the ROM you know the address for.

How are you going to do this ? If you look at the differnces between the ROM
version, making a function like that seems extremely hard. On the TI82 the
ROM versions are much more alike, and no shell supports all ROM function
(They support all the ones you need, but not all :-). I am guessing that you
are going to limit ROM calls to page 0, right ?

> It will be quite nice.  I've got most of the code done, except for the
>relocation.  I'm thinking about remapping instead of relocating; it poses a
>few less problems, and should be faster.

The problem with relocation (except the Usgard type) is that it makes it
very hard to have user installed interrupt routines which are able to run
all the time. If you decide to relocate the program, there are two was to do
it. Either you move the var (and change the VAT), or you leave the VAT as it
is and just make a copy of the program in a fixed location. The problem with
the last way is that the VAT is incorrect, which gives problem when you are
using VAR functions.

To relocate a var you could do the following:
Copy 1024 bytes from the var to GRAPH_MEM
Resize the var to its current size -1024
Insert 1024+2 bytes right after the shell
Copy contence of GRAPH_MEM to the new buffer
Repeat that untill the whole program has been copied
Change position of var in VAT

This way the relocation will update the VAT and work even if the mem is
full.

Dines