I inherited a set of programs one of which is assembler and runs as a
subroutine which is called by a COBOL main program. Here is a snippet from
the assembler routine which is linkied AMODE(31) RMODE(24) -
L R4,CZW3IOAA ...SETUP ADDR OF IOAREA
L R5,CZW3DCBA ...SETUP ADDR OF DCB
LA R8,DOGETS SET UP 24 BIT ADDRESS
LA R9,DOGETE STORE CURR AMODE AND RET ADDR
BSM R9,R8 SWITCH AMODE TO 24 BIT
DOGETS GET (R5),(R4)
+DOGETS LR 1,R5 LOAD PARAMETER REG
+ LR 0,R4 LOAD PARAMETER REG
+ SLR 15,15 CLEAR REGISTER @
+ ICM 15,7,49(1) LOAD GET ROUTINE ADDR @
+ BALR 14,15 LINK TO GET ROUTINE
BSM 0,R9 SWITCH AMODE BACK TO 31 BIT
DOGETE EQU *
When the COBOL program is linked AMODE(ANY) RMODE(24) it runs fine, but when
the COBOL program is linked AMODE(31) RMODE(ANY) the assembler subroutine
abends with a 0C4 abend on the first BSM instruction above.
Jim McAlpine
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html