Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!lll-lcc!ames!ucbcad!ucbvax!decvax!decwrl!sun!imagen!atari!apratt From: apratt@atari.UUCP (Allan Pratt) Newsgroups: comp.sys.atari.st Subject: Re: Problem doing screen dump (BUCKET) Message-ID: <526@atari.UUCP> Date: Tue, 20-Jan-87 14:48:49 EST Article-I.D.: atari.526 Posted: Tue Jan 20 14:48:49 1987 Date-Received: Wed, 21-Jan-87 22:04:14 EST References: <2065@batcomputer.tn.cornell.edu> Organization: Atari Corp., Sunnyvale CA Lines: 29 > As usual, mysterious problems are caused by undocumented features of TOS. > (The following IS known to many, but I couldn't find it in the Megamax > nor the 'ST Internals' documentation for Ptermres()!) > > The Ptermres() function (GEMDOS $31) cannot leave your program with more > memory than it already has. Please don't blast Atari for not belaboring the obvious: when you don't own memory (i.e. when you gave it up with a Mshrink (Setblock?) call), it's not yours to "keep" with a Ptermres() call. It belongs to the system, not to you. If your compiler provides only one startup module, and doesn't provide source to it, it is an incomplete compiler. The Atari compiler comes with source to the startup (GEMSTART), and (now) it is trivial to choose a memory model for a given application. Desk accessories need to do no Mshrink call at all (they don't get all of memory to begin with), GEM programs need to return only about 8K to the OS, and TSR programs should do their shrinking at Ptermres() time, not startup time. Furthermore, programs which Pexec() other programs should shrink down to only as much as they need (possbly half or 1/4 of available memory), to leave room for their children. All these options are easily available in the configurable GEMDOS which I wrote when I came to Atari last July. /----------------------------------------------\ | Opinions expressed above do not necessarily | -- Allan Pratt, Atari Corp. | reflect those of Atari Corp. or anyone else. | ...lll-lcc!atari!apratt \----------------------------------------------/