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
