I was just wondering what Doors uses in terms of free RAM areas. If a program modified any of the free RAM areas while being run from Doors, would it cause crashes either immidietaly or upon return? If so, which RAM areas would be affected?
builderboy2005 wrote:
I was just wondering what Doors uses in terms of free RAM areas. If a program modified any of the free RAM areas while being run from Doors, would it cause crashes either immidietaly or upon return? If so, which RAM areas would be affected?
1) If you use no libraries, other than maybe the Ion libraries, you can do whatever you want. If you leave the stack in the proper place when you quit, Doors CS will properly recover using the DCS7 appvar, where it cached some important info.

2) If you use the Doors CS GUI or Associated Program system, then the following page from the Doors CS wiki describes your caveats:
http://dcs.cemetech.net/index.php?title=GUI_Memory_Areas

3) If you use CALCnet2.2, then StatsVars (for the interrupt vectors) and the first 570 bytes or so of SavesScreen become unavailable.
Sounds Excellent Smile
builderboy2005 wrote:
Sounds Excellent Smile
As far as Mirage's routines go, I think that only the interrupt-setup ones (and of course their associated semipermanent interrupts) take up significant memory. All the others work on registers or existing memory or do thing like re-order the VAT.

Edit: I'm curious what the end-goal of the questions is; it sounds to me like perhaps you're creating something that needs to peacefully coexist with shells?
I was doing research for a request i wanted to suggest to Axe. I was suggesting to move the User Variables into the StatsVars RAM so that SaveScreen would be open to its full 768 bytes, so if we needed we could have a 3rd buffer ^^ And from what i am hearing and from the testing i am doing with Mirage, it seems the last 56 bytes are safe all around, so it seems like its fully possible!
builderboy2005 wrote:
I was doing research for a request i wanted to suggest to Axe. I was suggesting to move the User Variables into the StatsVars RAM so that SaveScreen would be open to its full 768 bytes, so if we needed we could have a 3rd buffer ^^ And from what i am hearing and from the testing i am doing with Mirage, it seems the last 56 bytes are safe all around, so it seems like its fully possible!
Definitely! The main caveat would be an inability to use anything with interrupts if the StatsVar RAM was being used for other things, correct?
Right, but i think that since the user variables only take up 56 bytes of data, interrupts should run fine even with a little bit less of memory, although i don't pretend to be an expert when it comes to interrupts Razz
builderboy2005 wrote:
Right, but i think that since the user variables only take up 56 bytes of data, interrupts should run fine even with a little bit less of memory, although i don't pretend to be an expert when it comes to interrupts Razz
Well, part of the problem is that because interrupts indicate their address with an 8-bit value (say $MM), but addresses are two bytes (such as $SSTT), you need to have an interrupt table at some other address $NN00, containing 257 total bytes, each of then $MM. This will then lead to an interrupt stored at $MMMM (note that this address has to take the for $9898 or $8080 or the like).
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement