Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!nbires!hao!boulder!sunybcs!rutgers!labrea!decwrl!sun!imagen!atari!apratt From: apratt@atari.UUCP (Allan Pratt) Newsgroups: comp.sys.atari.st Subject: Re: Pexec() innards Message-ID: <839@atari.UUCP> Date: Fri, 11-Sep-87 17:14:21 EDT Article-I.D.: atari.839 Posted: Fri Sep 11 17:14:21 1987 Date-Received: Sun, 13-Sep-87 20:00:21 EDT References: <767@saturn.ucsc.edu> Organization: Atari Corp., Sunnyvale CA Lines: 31 in article <767@saturn.ucsc.edu>, koreth@ssyx.ucsc.edu (Steven Grimm) says: > #include > > main() > { > long basepage; > > basepage = Pexec(3, "test.tos", "", 0L); > printf("basepage = %08lx\n", basepage); > Pexec(4, 0L, 0L, basepage); > printf("done\n"); > } The correct call for Pexec type 4 is "Pexec(4,0L,basepage,0L);" The combination of load/nogo plus just-go does not work reliably. There are bugs in Pexec relating to memory ownership which cause trouble. You should be able to determine something about where the bombs are, though: is the PC in ROM, or less than "basepage" (i.e. in the parent), or greater than basepage (i.e. in the child)? I have a trick which *does* work for fooling with a child before it has started executing, but it is ugly. I use it in my debugger. What are you trying to do? Maybe the same trick would work for you. Mail me more explanation. /----------------------------------------------\ | Opinions expressed above do not necessarily | -- Allan Pratt, Atari Corp. | reflect those of Atari Corp. or anyone else. | ...lll-lcc!atari!apratt \----------------------------------------------/