All,

since about 4 days I’m trying to get a simple ASM-Prog running under Java – in 
vain…. I hope someone can help me or bring me in the right direction…

I need to get all Data Set Names that are allocated to a DD. So I step down the 
TIOT and get al SVA addresses for a DD. Then I try to call a C-Module (“the 
glue”) that calls a ASM-Prog that issues SWAREQ. Everything is working – but 
not the SWAREQ. The ASM-Prog runs fine if I run it (called by a C-dummy) in MVS 
environment. Everything works as expected.

But when I

-   build the same sources under USS into a shared library,

-   load this shared library from my Java code,

-   invoke the C-Code that will call my ASM-Module “SWAREQ”


than my module SWAREQ will crash with a S0C4. The CEEDUMP ist weired:

Location:
  Program Unit: SWAREQ Entry: SWAREQ Statement:  Offset: -1E3F943A
  Possible Bad Branch:  Statement:   Offset: -E1C06BBA

I could imagine that something is wrong with the R13 back chain and my module 
dies when “the macro SWAREQ returns”. But when I got the IBM manuals right, 
then the CEEENTRY Makro provides a Sava-Area and R13 will point to it.

I hope someone has an idea… I’ll attach my code – maybe I did something 
completely wrong….


Bye & thanks for any hint!
Michael


R0       EQU   0
R1       EQU   1
R2       EQU   2
R3       EQU   3
R4       EQU   4
R5       EQU   5
R6       EQU   6
R7       EQU   7
R8       EQU   8
R9       EQU   9                     ADDR OF PARM FROM CALLER
R10      EQU   10
R11      EQU   11                    BASE
R12      EQU   12                    COMMON ANCHOR AREA
R13      EQU   13                    DSA
R14      EQU   14
R15      EQU   15
*--------------------------------------------------------------------
*---- PARAMETERS (GETS ALLOCATED AMODE31 BY THE CALLER) -------------
*--------------------------------------------------------------------
PARM           DSECT
PARM_SVA_ADDR  DS  F                 INPUT: 24 BIT SVA
PARM_REAL_ADDR DS  F                 OUTPUT: REAL 31 BIT ADDR
PARM_RC        DS  F                 OUTPUT: RC FROM SWAREQ
PARM_EPA_PTR   DS  F                 WORK: ADDRESS OF EPA
PARM_EPA       DS  XL28              WORK: EPA
PARM_SWAPARMS  DS  XL8               WORK: PARMS FOR SWAREQ
*--------------------------------------------------------------------
*---- ENTRY-POINT ---------------------------------------------------
*--------------------------------------------------------------------
SWAREQ   CEEENTRY PPA=MAINPPA,NAB=NO,MAIN=NO,EXPORT=NO,BASE=R11
*
         USING CEECAA,R12            COMMON ANCHOR AREA
         USING CEEDSA,R13            DYNAMIC STORAGE AREA
*
         L     R9,0(R1)              LOAD ADDR OF PARMS TO R9
         USING PARM,R9               ADDRESS PRAMS USING R9
*
         LA    R7,PARM_EPA           LOAD ADDR OF EPA TO R7
         ST    R7,PARM_EPA_PTR       SAVE ADDRESS TO PARM_EPA_PTR
         USING ZB505,R7              ADDRESS EPA
         XC    SWAEPA,SWAEPA         INITIALIZE EPA
         L     R6,PARM_SVA_ADDR      LOAD 24 BIT SVA IN R6
         STCM  R6,B'0111',SWVA       STORE 3 RIGHT BYTES TO SWVA
*
         SWAREQ FCODE=RL,                                              X
               UNAUTH=YES,                                             X
               EPA=PARM_EPA_PTR,                                       X
               MF=(E,PARM_SWAPARMS)
*
         ST    R15,PARM_RC           SAVE RETURN CODE
         LTR   R15,R15               IS RC ZERO
         BNZ   EXITERR               OH NO.....
*
         MVC   PARM_REAL_ADDR,SWBLKPTR     SAVE REAL 31 BIT ADDR
         B     EXIT                        GO HOME...
*
EXITERR  DS    0H
         MVC   PARM_REAL_ADDR,=F'0'  SET 31 BIT ADDR TO ZERO
         B     EXIT                  GO HOME
*
EXIT     DS    0H
         CEETERM RC=PARM_RC          BACK TO CALLER....
*
*--------------------------------------------------------------------
*---- CONSTANTS -----------------------------------------------------
*--------------------------------------------------------------------
         LTORG
*
MAINPPA  CEEPPA                      PROGRAM PROLOG AREA
*
*--------------------------------------------------------------------
*---- DSECTS --------------------------------------------------------
*--------------------------------------------------------------------
         CEEDSA                      DSECT: DYNAMIC SAVE AREA
         CEECAA                      DSECT: COMMON ANCHOR AREA
         CEEEDB                      DSECT: ENCLAVE DATA BLOCK
*
         CVT DSECT=YES               DSECT: COMM. VECTOR TABLE
         IEFZB505 LOCEPAX=YES        DSECT: ZB505 (EPA)
         IEFJESCT                    DESCT: JES CONTROL TABLE
*
         END SWAREQ


Mit freundlichen Grüßen

Michael Knigge
Software Engineer

SET GmbH
Lister Straße 15
30163 Hannover

phone: +49 511 39780-23
fax: +49 511 39780-65

www.set.de
[email protected]

Handelsregister: HRB52778 Amtsgericht Hannover
Geschäftsführer: Till Dammermann, Dr. Bernd Huber

Weitere Informationen finden Sie auf unserer Homepage...<http://www.set.de>


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to