Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!sri-spam!ames!amdcad!sun!imagen!atari!apratt From: apratt@atari.UUCP Newsgroups: comp.sys.atari.st Subject: Re: RAM locations for safe use Message-ID: <738@atari.UUCP> Date: Tue, 26-May-87 16:14:27 EDT Article-I.D.: atari.738 Posted: Tue May 26 16:14:27 1987 Date-Received: Thu, 28-May-87 05:40:23 EDT References: <381@uhnix2.UUCP> Organization: Atari Corp., Sunnyvale CA Lines: 34 in article <381@uhnix2.UUCP>, uace0@uhnix2.UUCP (Univ ATARI Comp Enthusiasts) says: > > In response to Moshe Braner's questions concerning a safe place in > memory, I can only think of one location that is safe. Actually, it is > a series of a few longwords that are only safe until the system crashes. > That's right, the register save area used after a crash. As far as I > know, these memory locations are only used on a system crash, so should > be free to use while the system is operating normally. > > - Mike This turns out not to be the case. The "bomb handler" gets control from a bus error, address error, etc. It puts bombs on the screen, DUMPS INFO INTO THE REGISTER SAVE AREA, then attempts a Pterm0() for the current process. This often works: a simple program dereferencing a null (zero) pointer will give bombs and terminate normally. The times when bombs combine with a total system crash are times when a Pterm0() can't get rid of the offending program: for instance, a rogue interrupt handler, or trashed internal GEMDOS state. In any case, the register save area of memory is overwritten by any bombs, not just the ones resulting in a total crash. If you want a safe place in memory, use your own BSS and execute Ptermres() to leave your program. If you want someplace that'll survive a reset, I can't think of a reliable one. /----------------------------------------------\ | Opinions expressed above do not necessarily | -- Allan Pratt, Atari Corp. | reflect those of Atari Corp. or anyone else. | ...lll-lcc!atari!apratt \----------------------------------------------/