¿ªÔÆÌåÓý

Re: TXTLIB and Stack Question


 

¿ªÔÆÌåÓý

I will need to read the old CMS books, but for MVS you¡¯ll need the list-versions of the macro¡¯s (MF=L) and map a getmained chunk of memory. Mike¡¯s original Rex interpreter code was reentrant assembler and had to deal with paging drums etc.

I am glad you found where the problem is, because its non-predictabilty nearly drove me crazy.

I wonder if, short of a compiler that generates reentrant code, the brexx interpreter cannot just be reloaded after external calls. PC DOS batch had a stub that reloaded the command processor if it was overwritten, for example; that only needs to be done when non-statically linked code overlays Brexx, like external commands. The part that implements ADDRESS maybe can do that.

best regards,

¸é±ð²Ô¨¦.



On 25 Feb 2020, at 17:20, gdblodgett <gdblodgett@...> wrote:

My guess would be local as I don't see anything in the code to indicate that would be re-entrant or designed to be loaded resident, but I will defer to the current maintainers.? A shared stack is usually created via a "GETMAIN" type call with uses memory outside of program storage with its address stored in a Control Block type construct.

Gary

On 2/25/20 10:53 AM, adriansutherland67 wrote:
On Tue, Feb 25, 2020 at 12:09 PM, gdblodgett wrote:
The DS in the MAINSTK statement means Define Storage.? The 32000F states that variable 32000 "F"s in size.? With "F" meaning a full word (4 bytes) aligned on a full word boundary.? So it's 32000 x 4 = 128000 bytes long, aligned on a full word boundary.?
So does this mean that the stack is local to each instance of the program? I.e. if 2 programs link with GCCLIB will they have the same stack, or not??

Presumably if the stack was defined as part of the GCCLIB loaded resident then they would indeed share the same stack - disastrously!

Thanks for any hints!

Join [email protected] to automatically receive all group messages.