A83: Re: Re: Re: Assembly-83 Digest V1 #466


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

A83: Re: Re: Re: Assembly-83 Digest V1 #466




If you write the program you know what it uses and you only back that up,
you don't back up everything, that would be stupid. Of course, I'm not sure
if the first email was or was not refering to a shell. However, even if it
was, you could have the interrupt program check if the calculator was at the
home screen and only run the program when it was, that way you wouldn't have
to back up very much at all! Only op1, currow, curcol, the registers.... not
much else I can think of, but it might take some experimenting.
Like I said before, I'm almost 100% sure it is possible.

Joe Wingbermuehle
http://www.usmo.com/~joewing/

-----Original Message-----
From: Ian Graf <ian_graf@geocities.com>
To: assembly-83@lists.ticalc.org <assembly-83@lists.ticalc.org>
Date: Thursday, September 10, 1998 11:32 PM
Subject: A83: Re: Re: Assembly-83 Digest V1 #466


>
>>I'm not 100% sure, but I think if you exchange all the registers then push
>>them all, you can run an entire program. After the program is finished,
>>simply pop all the registers. The program should do an im 1 at the
beginning
>>though to prevent it from starting more than once which would cause all
the
>>stack space to be used up. You'd also have to preserve any values the
>>program you run uses (currow, op1, etc) in case the calculator was using
>>those at the time. Probably more work that it would be worth...
>
>imho joe, like i said before, it is not possible. you have to understand
>that since there is 32k memory on the calculator (system and user ram)
>that can be altered by a running program, there is no was you can store
>it all. in other words, ANY area of memory could be altered by a
>program. and that means that in order to preserve the memory, you would
>have to back it all up (which is impossible). now don't anyone get all
>self righteous, but i am 100% sure that it is impossible. flat out,
>impossible. the only possibility would be if you ran a small assembly
>program that didn't alter any areas of memory. and that program, of
>course, could not be run using _exec_assembly. you would have to use
>relocation similar to what you use in sos.
>