Robert,

I have no idea where the 0C4 points to- nor do I have your dump-


However here is code that works: I hope it is clear without explanation/comments- (otherwise you should not do that). I used it in code that intercepted execution with a TRAP instruction.


            LA    R15,TRAP_SAVE
             MVC   XTRAP_PSW+12(4),XTRAP_PSW+4  move instr adress
             NC    XTRAP_PSW+4(12),=A(X'80000000',0,X'7FFFFFFF')
*             TM    XTRAP_PSW+3,X'01'  is EA on
*             JNO   *+8
*             OI    XTRAP_PSW+4,X'80'  switch BA on as well
             LM    R0,R14,XTRAP_GREG-TRAP_SAVE(R15)   restore gregs
             LMH   R0,R14,XTRAP_GREG+16*4-TRAP_SAVE(R15) rst highgregs
             LAM   R1,R14,XTRAP_GREG_AR-TRAP_SAVE(R15) rest aregs
             RP    0(R15)
             DC    X'00',B'00000111' big psw, big register, disjoint
             DC    Y(XTRAP_PSW-TRAP_SAVE,XTRAP_AR15-TRAP_SAVE)
             DC    Y(XTRAP_GREG+15*4-TRAP_SAVE)
             DC    y(XTRAP_GREG+31*4-TRAP_SAVE)


and here are the structures referenced

  TRAP_SAVE    DC    32D'0'
TRAP_SAVE_AR DC    7D'0' save area for the AR-AT INTERCEPT
XTRAP_FLAG1   EQU   TRAP_SAVE+0,1
XTRAP_F1_EX   EQU   X'80'    TARGET OF AN EXECUTE
XTRAP_F1_T4   EQU   X'40'    TRAP IS TRAP4
XTRAP_ILC     EQU   TRAP_SAVE+1,1 ACTUAL ONLY 13 AND 14
*
XTRAP_GREG    EQU   TRAP_SAVE+32,4
XTRAP_GREG_AR EQU   TRAP_SAVE+256,60 AREGS 1 THRU 15 (15 TWICE--YES)
XTRAP_AR15    EQU   TRAP_SAVE+12,4
XTRAP_PSW     EQU   TRAP_SAVE+16,8  <---- we change it to this


Best


Martin

Am 17.10.25 um 19:18 schrieb Robert Crawford:
I've been through the POPs entry for the instruction several times.  I thought 
I understood what the parameter list but it doesn't seem to flange up with else 
is in the dump.  Unfortunately, some key pieces of storage aren't in the dump 
so I'm unable to tell how it got there.

Reply via email to