# NAT4 calls ASM routine AMODE24: CEE3191E

**URL:** <https://techcommunity.softwareag.com/t/nat4-calls-asm-routine-amode24-cee3191e/78784>\
**Category:** Forum\
**Tags:** Adabas-Natural, Natural, Natural-News-and-General-Topics\
**Created:** [August 16, 2008, 12:59am UTC](https://techcommunity.softwareag.com/t/nat4-calls-asm-routine-amode24-cee3191e/78784 "2008-08-16T00:59:25Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dieter\_W\_Storr](https://sea1.discourse-cdn.com/techcommunity/user_avatar/techcommunity.softwareag.com/dieter_w_storr/32/91_2.png) [@Dieter\_W\_Storr](https://techcommunity.softwareag.com/u/Dieter_W_Storr)\
**Post date:** [August 16, 2008, 12:59am UTC](https://techcommunity.softwareag.com/t/nat4-calls-asm-routine-amode24-cee3191e/78784/1 "2008-08-16T00:59:25Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/techcommunity/original/3X/c/d/cd19967bb605d28a72d77eb83a1cae22f3df2eb8.svg) [@system](https://techcommunity.softwareag.com/u/system)\
**Post date:** [August 16, 2008, 4:21am UTC](https://techcommunity.softwareag.com/t/nat4-calls-asm-routine-amode24-cee3191e/78784/2 "2008-08-16T04:21:17Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Dieter\_W\_Storr](https://sea1.discourse-cdn.com/techcommunity/user_avatar/techcommunity.softwareag.com/dieter_w_storr/32/91_2.png) [@Dieter\_W\_Storr](https://techcommunity.softwareag.com/u/Dieter_W_Storr)\
**Post date:** [August 27, 2008, 11:28pm UTC](https://techcommunity.softwareag.com/t/nat4-calls-asm-routine-amode24-cee3191e/78784/3 "2008-08-27T23:28:00Z")

</div>

I changed my assembler code and now it works.

GETDSN CSECT  
GETDSN AMODE ANY  
GETDSN RMODE 24

Thanks,  
Dieter

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/techcommunity/original/3X/c/d/cd19967bb605d28a72d77eb83a1cae22f3df2eb8.svg) [@system](https://techcommunity.softwareag.com/u/system)\
**Post date:** [April 2, 2021, 2:50pm UTC](https://techcommunity.softwareag.com/t/nat4-calls-asm-routine-amode24-cee3191e/78784/4 "2021-04-02T14:50:45Z")

</div>


