On Mon, 7 May 2018 07:15:23 -0500, Tom Marchant <[email protected]> 
wrote:

>>For an existing 32-bit program, being able to
>>change LOC=31 or LOC=ANY to LOC=32 is
>>the simplest change, and on an old system
>>it will still work, just obtaining LOC=31 memory
>>instead of LOC=32 memory, better than nothing.
>
>You want to change an AMODE(31) program to AMODE(64) and you 
>think that all you have to change is the GETMAIN?

That's the best case scenario, yes. It
depends on the application. As an
example I recently asked the author
of REVIEW what would be required to
make his AM31/RM24 program work as
AM64/RM24 and he didn't list much.
REVIEW is a large assembler application
that has been written over decades.

Also, the things that need to change would
also need to change if it was converted to a
64-bit application. It's a much less onerous
task to keep it as a 32-bit application.

>You haven't given it nearly enough thought

Maybe we can list the situations:

If any 31-bit addresses exist with a flag
in the top bit, it can't be cleared with LA.
You will need to do an N with X'7FFFFFFF'
to clear it before it can be used at all.

On program entry, R15 will not contain the
entry point so you need to do a BALR R15,R0.

You can't use a negative index and expect
wrapping at 32 bits.

GETMAIN R needs to change to GETMAIN RU,LOC=24


These are fairly minor things. Did I miss
something?

Oh - I'm also assuming that IBM will update
the operating system so that READ etc can
be executed in AM64. Just like they updated
READ from AM24-only to bimodal in late
MVS/ESA. But from the application side, there's
not much, and we can start making those
application changes now in anticipation of
being able to run as AM64 in the future.

BFN. Paul.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to