Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!cs.utexas.edu!uunet!mcvax!ukc!tcdcs!vax1!rwallace From: rwallace@vax1.tcd.ie Newsgroups: comp.sys.amiga.tech Subject: Re: ExecBase Message-ID: <44325@vax1.tcd.ie> Date: 31 May 89 15:45:12 GMT References: <8905242209.AA20811@postgres.Berkeley.EDU> Organization: Computer Laboratory, Trinity College Dublin Lines: 26 In article <8905242209.AA20811@postgres.Berkeley.EDU>, dillon@POSTGRES.BERKELEY.EDU (Matt Dillon) writes: > As people have already noted, the pointer to ExecBase can be > found at location 4. > > assembly: > move.l 4,A6 > > C: > SysBase = *(struct ExecBase **)4; > > I strongly suggest though that people who write programs or > assembly routines NOT always get execbase from location 4. The reason is > simply that from what I can tell location 4 is in CHIP memory and thus > subject to fetch delays when one is in a high bandwidth video mode. You WHAT? How long is one instruction going to take no matter how high bandwidth a video mode you're using? If you're accessing ExecBase at all it means you're calling a ROM routine and those are so bloody inefficient the execution time will far outweigh the time it'll take to fetch the longword from location 4. Not to mention the fact that Exec routines (Alloc/FreeMem, Open/CloseLibrary, FindTask etc.) are usually called only at the beginning and end of the program. "To summarize the summary of the summary: people are a problem" Russell Wallace, Trinity College, Dublin rwallace@vax1.tcd.ie