Article View: comp.sys.atari.st
Article #28211Re: Pexec() innards
From: Allan Pratt
Date: Fri, 11 Sep 1987 21:14
Date: Fri, 11 Sep 1987 21:14
31 lines
1699 bytes
1699 bytes
in article <767@saturn.ucsc.edu>, koreth@ssyx.ucsc.edu (Steven Grimm) says:
> #include <osbind.h>
>
> 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
\----------------------------------------------/
Technical Details
Message-ID:
<839@atari.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!mnetor!uunet!nbires!hao!boulder!sunybcs!rutgers!labrea!decwrl!sun!imagen!atari!aprattReferences:
<767@saturn.ucsc.edu>Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!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