0 Members and 1 Guest are viewing this topic.
When something goes wrong, such as execution on a restricted page, what actually happens?
There's this tutorial that someone wrote on how to deal with crashes. I can't remember where it is, but it was really sophisticated, and went into everything from running out of batteries to using Calcsys. Could someone please post that link?
I don't know much more (much less the super techincal details of all of this) but I know that some people do know. One such person is Benjamin Moody, the person who made The Impossible Game and TI-Boy SE. His app, zStart, can run on RAM clear, which means that all of your defaults are automatically restored after a crash. It works because part of the OS is modified to call that code.
Now the question is why so many people who are insane at Assembly, including Ben Ryves and those previously mentioned, all have names starting with the letter "B."
What happens during a crash? The CPU executes instructions that don't make sense. For example, it places garbage on the stack, jumps into the middle of a routine, and then tries to return. The top entry on the stack is garbage, so it jumps to a random location in memory. If the location is in the 0C000h+ range, the hardware simply resets the CPU. If the top location is 0000h, it reboots. Often, the CPU will start executing data as code, placing the CPU into a random state. It might start overwriting RAM with garbage. Either way, the CPU eventually finds its way into the 0C000h range and resets, or hits the reboot code itself. If the CPU doesn't, you might get a freeze.
Quote from: Compynerd255 on March 24, 2011, 09:28:22 pmThere's this tutorial that someone wrote on how to deal with crashes. I can't remember where it is, but it was really sophisticated, and went into everything from running out of batteries to using Calcsys. Could someone please post that link?That was ClrHome methinks
Naw, the $C000+ limit is for money-sucking purposes. It used to cost money to make apps, and that was the only way to execute more code.