<snip> I have been getting S0C4 on initialization to my Metal C program </snip>
Once again, you have not provided enough information for most of the readers of your post to help you. Not every "Prolog code of Metal C program" has such a store of register 0. This is easily demonstrated. Thus perhaps you in some way "told" the compiler that your linkage was such that it made sense to save register 0 into a variable called #WSA_1. And the fix will be not to do that. By the way, LOAD and BASR will not work if the target is AMODE 64. LOAD returns a value in (64-bit) register 0 that is suitable for use by BASSM. That happens to be OK for use by BASR in AMODEs 24 and 31 but not AMODE 64. Thus one approach that works regardless of AMODE is LGR 15,0 BASSM 14,15 If you know that your target is AMODE 24/31 then LR and BASSM (or BASR) is OK. Of course if you do have an AMODE 64 target, you need to make sure that you set up the interface according to its requirements, whatever they happen to be. Some AMODE 64 targets might be sensitive to "called by AMODE 24/31" and some might not; some might require 8-byte register 1, with a parameter list of 8-byte pointers. Peter Relson z/OS Core Technology Design ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN