Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!columbia!caip!cbmvax!bpa!burdvax!sdcrdcf!ism780c!tim From: tim@ism780c.UUCP (Tim Smith) Newsgroups: net.micro.atari16,net.micro.amiga,net.micro.68k Subject: Re: 68000 Memory Managment Message-ID: <3260@ism780c.UUCP> Date: Tue, 19-Aug-86 17:40:32 EDT Article-I.D.: ism780c.3260 Posted: Tue Aug 19 17:40:32 1986 Date-Received: Thu, 21-Aug-86 02:18:34 EDT References: <508@elmgate.UUCP> <767@ark.UUCP> Reply-To: tim@ism780c.UUCP (Tim Smith) Organization: Interactive Systems Corp., Santa Monica, CA Lines: 26 Keywords: 68000 atari amiga 68k mmu Xref: mnetor net.micro.atari16:1657 net.micro.amiga:4344 net.micro.68k:1147 In article <767@ark.UUCP> gijs@vu44.UUCP (Mos Gijs) writes: > ... > Although this information is not sufficient in general to effect full > recovery from the bus error, it does allow software diagnosis. > ... >You cannot do virtual memory, you cannot auto-allocate stack space, but you >*can* do multitasking. > Actually, with a small compiler hack, you *can* auto-allocate stack space. The trick is that while in general you can't restart, there are specific instructions that can be restarted. tstb is one such instruction. The hack to the compiler is to make it generate a tstb in the function entry code to access the lowest stack address that the function will use. I have heard people claim that there is enough information around after a bus error ( or address error ) to restart most instructions, if the bus error handler is willing to be clever. However, I haven't seen any actual code... Anyone know if this is true? If so, what are the instructions that can't be restarted? -- "I *DO* believe in Mary Worth" Tim Smith USENET: sdcrdcf!ism780c!tim || ima!ism780!tim Compuserve: 72257,3706 Delphi || GEnie: mnementh