NAT4 calls ASM routine AMODE24: CEE3191E

I created an assembler routine (GETDSN) to determine the dataset name by using the macro RDJFCB. The routine is linked in MODE AMODE(24),RMODE(24)

This routine is called by a Natural program, for example
CALL ‘GETDSN’ 'ddname ’ RDJFCB-AREA /* A176

This is working under NAT3.

Now, I tried this with NAT4 and it failed
CEE3191E An attempt was made to initialize an AMODE24 application without using the ALL31(OFF) and STACK(,BELOW) run-time options.

From compile unit NATMVS at entry point NATMVS at compile unit offset entry point NATMVS at compile unit offset -274652A6 at entry offset -274652A6 at address 0979B79A.

<> LEAID ENTERED (LEVEL 10/15/2007 AT 09.21)
<> LEAID PROCESSING COMPLETE. RC=0

ServLine24 document id 545986 points out:

"Natural Version 4.2 introduced a new option in member NATOS: LE370=AMODE24
This generates the necessary CEE runtime option:
CEEXOPT TRAP=(ON,NOSPIE),ALL31=(OFF),STACK=(,BELOW)

After re-assembly of NATOS and re-link of the batch natural nucleus the problem will be resolved."

Does anyone ran into the same problem and has experience with this new option?
Does it mean that all subprograms will run in AMODE24?

I tried to link the assembler routine in 31-bit mode but received an S0C4.

Any ideas?

Thanks,
Dieter Storr

You should be able to link it AMOD(31),RMODE(24) because DCBs still have to reside below the line, but it will take care of your AMODE=24 problem.

I changed my assembler code and now it works.

GETDSN CSECT
GETDSN AMODE ANY
GETDSN RMODE 24

Thanks,
Dieter