0 Members and 2 Guests are viewing this topic.
Let me see if i understand the concept behind the global data concept. When the program is run, it is copied to RAM somewhere safe where the TiOS can run it. After it is finished executing, it is NOT copied back, making the program effectively write protected . So all we need to do is write a little bit of code to find out where the program acualy located (the first hex code) and store it in a safe place (L4) until the end of the program where we use it. Once we get to the end, we merely copy the program right back to where it started again, so that any changes we made are permanent. We are not using any of the L1-L6 variables for anything more than a 4 byte address storage during the program execution, so there is no possibility that we could run out of memory due to large programs.(did i get that correctly?)
OK so basically it's not the entire program content that is copied to OP1, just the name, right? No data from the program where your routine is ran is copied to OP1?
wow awesome! Thanks a lot for this ^^
Nice! Thats very useful until Quigibo can get out the official version. Will this interfere with any of the L1-L6 ram areas?
true, but does Mirage use any of the same safe areas that Axe uses?
Quote from: Builderboy on March 21, 2010, 04:12:05 pmtrue, but does Mirage use any of the same safe areas that Axe uses?I think StatVars holds Mirage's interrupt vector. To disable this, you might want to put Asm(ED56) after the header to make it use the TI-OS interrupt instead.