Re: A82: Re: Dines + the future of Ash (Update on Ash 4.0)
[Prev][Next][Index][Thread]
Re: A82: Re: Dines + the future of Ash (Update on Ash 4.0)
<snip>
All you really need to fix the problem with KEY_HAND and programs over 13.5k
is to have a relocation routine that updates the VAT and all memory pointers.
It should move whole programs out of the way, not just exchange bytes.
For example:
|
| Program A
| 4k in size
| starts at $0000 (just for example)
| Program B
| 3k in size
| starts at $1000
Insead of exchanging the first 3k of Program A with Program B, make it so
Program B will start at $0000 and Program A will start at $C00. And also the
VAT and memory pointers should change to reflect that. This will fix the
KEY_HAND problem because when you turn off the calc, the relocations are
recognized by the VAT. Maybe you could use some ROM functions to do this.
The problem with the old method is that if you overlap (if the program is >
13.5k) some data will be lost. I posted something to the list explaining
that, I don't know if you read it.
A built-in random routine like the one in CrASH would be nice, too.
I think you should work together with the writers of CrASH.
Just my thoughts,
~Adamman