One point about "phasing in" BASSM: it does not work in general. Sure, if you "phase in" by changing all the callers at the same time, that works.
That is because the target program, if it wants to protect some potential calling possibilities needs to capture the current AMODE so that the value saved on BAKR and then used on PR returns properly. A typical protocol is this: BSM 14,0 BAKR 14,0 ... PR This works if the call is via BASR/BALR/BRAS/BRASL. This does not work if call is via BASSM. If your routine currently supports entry in AMODE 64 via BASR and uses BAKR/PR, you probably have something like this (because otherwise AMODE 64 will not return properly). The conclusion: you need to know whether the call is via BASSM (or BSM) or not. You can code for either. You cannot code for both (or perhaps you can, but it is not trivial). Peter Relson z/OS Core Technology Design