Discussion:
[hercules-os380] ATL executables
kerravon86@yahoo.com.au [hercules-os380]
2018-10-17 10:08:22 UTC
Permalink
I was thinking about what issues would exist
in loading the 3 MiB GCC above the 16 MiB
line (but still below 2 GiB).

GCC, like all PDPCLIB-based programs, is
designed to switch AMODE prior to executing
an MVS I/O routine. PDPCLIB knows not to
do an AMODE switch when it detects that it
has been loaded ATL.

The I/O routines that PDPCLIB calls have
all been updated so that they can handle
being executed in AM31 and they do an
immediate switch to AM24 to protect the
rest of MVS 3.8j, and restore the caller's
AMODE (31 and 64 both work) on exit.

BFN. Paul.
kerravon86@yahoo.com.au [hercules-os380]
2018-10-17 10:26:21 UTC
Permalink
Post by ***@yahoo.com.au [hercules-os380]
The I/O routines that PDPCLIB calls have
ie the MVS I/O routines, like IGG*.
Post by ***@yahoo.com.au [hercules-os380]
.all been updated so that they can handle
being executed in AM31 and they do an
And there are a lot of limitations to ensure
the updated I/O routines are called. You
need to use disk not tape, and you have
to go SYSIN DD * /* rather than
SYSIN DD DUMMY.

But the GCC rebuild process is able to
go through even with no AMODE
switching, as I can see when I switch off
AMODE switching in PDPCLIB, by
activating ZSYS=S390 instead of the
normal S380.

BFN. Paul.
kerravon86@yahoo.com.au [hercules-os380]
2018-10-17 10:49:33 UTC
Permalink
Post by ***@yahoo.com.au [hercules-os380]
I was thinking about what issues would exist
in loading the 3 MiB GCC above the 16 MiB
line (but still below 2 GiB).
I've thought of another issue. If I define
the current LOC=ANY to mean "anywhere
including 2 GiB to 4 GiB) then I have no
way of getting storage in the 16 MiB to
2 GiB region which is a requirement for
31-bit programs that are invoked using
a BSM, because the top bit is not used
as an address.

I would need a new LOC= for 31-bit storage,
but I can't use "31" because that is expected
to generate the same code as LOC=ANY.

Or maybe I could make it a non-zero subpool
number that signifies that the storage is being
used for executables so it needs to get
storage below 2 GiB.

BFN. Paul.

Loading...