On Fri, 24 Mar 2017 14:26:14 -0500, Joel M Ivey <[email protected]> wrote:

. . .
>+972 4140 0004 
>+976 1904 
>+978 4770 C986 <----- 
>+97C 5802 0000 
>+980 41F0 0004 
>+984 07FE 
>

I don't have the luxury of your assembly listing, but the ESTAE in the source 
code from cbttape.org looks like this:

RECOVERY DS    0H                                                       08440000
         USING *,R15              SET UP ADDRESSABILITY                 08450000
         LA    R4,4               PUT 4 IN REGISTER FOR COMPARE         08460000
         CR    R0,R4              IS SDWA PRESENT?                      08470000
         BNE   HAVESDWA           YES, BR TO PROCESS WITH SDWA          08480000
         L     R0,0(R2)           LOAD RETRY ADDRESS FROM PARAM LIST    08490000
         LA    R15,4              SET RETCODE TO RETRY ADDR IN R0       08500000
         BR    R14                RETURN TO PROCESSOR WITH RETRY ADDR   08510000
HAVESDWA DS    0H                 ENTER HERE IF SDWA PRESENT  

That code mirrors what support found, *except* it would appear that it is 
assembled from code which has the "  USING *,R15 " statement missing (in the 
object code, the BNE instruction is using R12, which is a mainline base 
register, not R15 as it should).

That makes me think that for some reason you are perhaps  *not* executing the 
version of IEFACTRT that you think you are, and that installing a new one, from 
SAMPLIB or elsewhere, is not going to help you until you figure out exactly why 
that is happening.  For a start, check your listing. You might have received a 
warning about an overlapping USING, but I think the correct code should still 
have been generated in this instance for the BNE instruction.

Over the years I saw problems like this many times when recovery (or retry) 
routines made unwarranted assumptions about the content of certain registers, 
particularly base registers, and the warning about the possibly dire 
consequences is justified. One such case is still firmly etched in my memory, 
well over ten years later - the wild branch there happened to take it part way 
into an instruction, which unfortunately was executed as a perfectly valid LCTL 
instruction. The results of loading rubbish into half of the control registers 
is not pretty.

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

Reply via email to