Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!uwvax!uwmacc!uwmcsd1!marque!joeb From: joeb@marque.UUCP (Bronikowski) Newsgroups: comp.sys.atari.st Subject: Re: Mac Emulator (idea!) Message-ID: <37@marque.UUCP> Date: Fri, 26-Dec-86 18:42:05 EST Article-I.D.: marque.37 Posted: Fri Dec 26 18:42:05 1986 Date-Received: Mon, 5-Jan-87 22:10:53 EST References: <870@ark.cs.vu.nl> Reply-To: joeb@marque.UUCP (Joe Bronikowski) Distribution: na Organization: Marquette University, Milwaukee, WI Lines: 30 Keywords: Preventing bus errors In article <870@ark.cs.vu.nl> Patrick@ark.cs.vu.nl (Patrick van Kleef) writes: > >People tell me there is a way of preventing bus errors on the ST. This >type of error is generated by one line of the Glue chip, the so called >BERR line. > >Now what if we disconnected that line? In theory bus errors would be >impossible. Would it affect 'normal programs'? Will more Macintosh programs >run? Is there anyone who can figure this out? I know nothing about the internal architecture of the ST or Mac, but from my experience with 68000's I can tell you this much: The Bus Error signal (BERR) is generated when no device on the bus responds to the address strobe with a data-tranfer acknowledge signal (DTACK). It is usually generated by some sort of timer circuit that watches the DTACK line; the system designer sets the timer to a little longer than the maximum acknowledge time of all the devices in his system (perhaps 1 - 2 micro seconds maximum, for some slow I/O devices). Thus if you disable the BERR signal by pulling the pin from wherever it is generated, the micro will essentially wait FOREVER for that memory access to finish! Any programs which cause bus errors would now hang the system. A better way to go might be writing your own exception handler and storing its address in the bus error exception vector (hopefully the ST's vectors are in RAM and not ROM!). It probably would be impossible to make the programs run correctly, but at least you could handle the errors more gracefully. Joe Bronikowski