🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.amiga.tech
Article #11989

Re: Unix V7 functionality under (or along with) AmigaDOS? (*LONG*)

#11989
From: Randell Jesup
Date: Tue, 28 Mar 1989 19:24
58 lines
3332 bytes
In article <DEVEN.89Mar25023341@daniel.pawl.rpi.edu> shadow@pawl.rpi.edu (Deven T. Corzine) writes:
>In article <6389@cbmvax.UUCP> jesup@cbmvax.UUCP (Randell Jesup) writes:
>>        No, the _only_ thing he has to do is open amiga.foo.library
>>instead of foo.library.  Since all the offsets are the same, nothing
>>else need be done, and amigix.foo.library will get all calls that
>>would otherwise go to foo.library.

>Sure, changing the library opened will work for all libraries, EXCEPT
>for the exec.library...  Exec.library is accessed through ABSEXECBASE
>at memory location 4, not from a return from the OpenLibrary call.  It
>doesn't make sense to change that pointer (at ABSEXECBASE) as it would
>likely cause big troubles, so I'm left with patching all the
>exec.library functions,

	Just write your stubs/pragmas to use something other than SysBase,
then.  Note that most programs stash execbase in a variable SysBase.  This
lessens reliance on accessing chip memory in a fast-mem system.  Look at the
lattice startup code and pragmas.

>>>Also, is it legal to FreeMem a different sized block than you
>>>AllocMem()'d?  If so, how can you keep it from depending on the
>>>granularity of the memory allocators?
>
>>        Check the exec memory chapter.
>
>Didn't want to look it up yourself, huh?  :-)  Well, the Exec memory
>chapter doesn't say anything clear about it, except that you can't
>depend on the granularity being 8; only a multiple of 4.  Nowhere does
>it say anything about whether or not you can legitimately free a
>different sized memory block than you originally allocated.

	Page 1-64, White 1.1 RKMs: Partial blocks may be deallocated, but
note again that FreeMem() rounds your address down to the nearest even multiple
of MEM_BLOCKSIZE and the size up to the nearest multiple before the FreeMem()
request is performed.

	I said it was in the chapter....

>About the autodocs...  Are they the "man" type pages in Appendix A of
>the (1.1) RKM L&D manual?  Or am I missing it altogether?

	Yes, autodocs are equivalent to man pages.

> I was scanning
>that Amiga Programmer's Handbook, and it says something about every
>task having a message port an associated but separate reply port.  I
>don't understand.  I thought the same port was used to send AND
>receive the replies to a message?  Also, why would all tasks have to
>have message ports?  In short, is this true?

	A port is never "used" to send a message, only to recieve one (or
recieve a reply).  All _Processes_ have a port (pr_MsgPort) for recieving
(a) the inital WB startup message, and (b) replies to filesystem packets.
_Tasks_ do not have associated ports unless the application creating it
does so.

-- 
Randell Jesup, Commodore Engineering {uunet|rutgers|allegra}!cbmvax!jesup
Technical Details
Message-ID: <6406@cbmvax.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!iuvax!rutgers!apple!oliveb!amiga!cbmvax!jesup
References: <6389@cbmvax.UUCP> <DEVEN.89Mar25023341@daniel.pawl.rpi.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!iuvax!rutgers!apple!oliveb!amiga!cbmvax!jesup
From: jesup@cbmvax.UUCP (Randell Jesup)
Newsgroups: comp.sys.amiga.tech
Subject: Re: Unix V7 functionality under (or along with) AmigaDOS?  (*LONG*)
Message-ID: <6406@cbmvax.UUCP>
Date: 28 Mar 89 19:24:59 GMT
References: <6389@cbmvax.UUCP> <DEVEN.89Mar25023341@daniel.pawl.rpi.edu>
Reply-To: jesup@cbmvax.UUCP (Randell Jesup)
Organization: Commodore Technology, West Chester, PA
Lines: 58