>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.

The first BSM instruction switches the AMODE to 24. However,
the code is resident above the line (RMODE=ANY almost always
means the module is loaded above), so the fetch of the next
sequential instruction (NSI) (L 1,R5) propbably fails. (If 
you're unlucky, there is some storage allocated at the 
24-bit NSI address and s few more instructions might execute
before strange things happen.

Although the ASM routine was programmed to deal with different 
AMODEs, switching forth and back as needed, it is not able to
run above the line. The RMODE of any code switching to AMODE24
MUST BE 24.


Peter Hunkeler
CREDIT SUISSE

----------------------------------------------------------------------
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

Reply via email to