Eileen,

I don't know what is happening at your site, but on our system everything runs fine.

I was able to compile and link the source and successfully do an OBTAIN for SYS1.PARMLIB on volume Z9RES1.

I'll attach once again my source and also the SYSOUT of the "c++" so you can compare your and my settings....


Good luck!


Bye,
Michael


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html
*----------------------------------------------------------------------
R0       EQU   0
R1       EQU   1
R2       EQU   2
R3       EQU   3
R4       EQU   4        ADRESSIERUNG DER PARAMETER
R5       EQU   5
R6       EQU   6
R7       EQU   7
R8       EQU   8
R9       EQU   9
R10      EQU   10
R11      EQU   11       BASISREGISTER
R12      EQU   12       LE/370 COMMON ANCHOR AREA (CAA)
R13      EQU   13       LE/370 DYNAMIC SAVE AREA (DSA)
R14      EQU   14
R15      EQU   15
*----------------------------------------------------------------------
PARM     DSECT
PARM_FLG DS    F        FUNKTIONSCODE HEX'C1000000'
PARM_DSN DS    F        ADRESSE AUF DSN (MUSS 44 BYTES LANG SEIN)
PARM_VOL DS    F        ADRESSE AUF VOLSER (MUSS 6 BYTES LANG SEIN)
PARM_WRK DS    F        ADRESSE AUF 140 BYTE WORK/RETURN-AREA
*----------------------------------------------------------------------
*----------------------------------------------------------------------
OBTAIN   CEEENTRY PPA=MAINPPA,       ADRESSE AUF PROGRAM PROLOG AREA   X
               AUTO=WORKSIZE,        GROESSE DER DSECT (-> SAVEAREA!)  X
               NAB=NO,               NAB NICHT ZWINGEND VORHANDEN      X
               MAIN=NO,              KEIN HAUPTPROGRAMM                X
               EXPORT=NO,            ENTRYPOINT NICHT EXPORTIEREN      X
               BASE=R11              BASISREGISTER
*
         USING CEECAA,R12            COMMON ANCHOR AREA
         USING CEEDSA,R13            DSA + LOKALE (DYNAM.) VARIABLEN
*----------------------------------------------------------------------
         L     R4,0(R1)              ADRESSE AUF PARAMETER LADEN
         USING PARM,R4               PARAMETER ADRESSIEREN
*
         OBTAIN PARM                 OBTAIN AUFRUFEN
         ST    R15,RETCODE           RETURNCODE SICHERN
*
         CEETERM RC=RETCODE
*----------------------------------------------------------------------
MAINPPA  CEEPPA                      PROGRAM PROLOG AREA
         LTORG
*----------------------------------------------------------------------
         CEEDSA                      DSECT: DYNAMIC SAVE AREA
RETCODE  DS  F                       RETURNCODE
         DS  0D                      ALIGNMENT SICHERSTELLEN
WORKSIZE EQU *-CEEDSA
*----------------------------------------------------------------------
         CEECAA                      DSECT: COMMON ANCHOR AREA
         CEEEDB                      DSECT: ENCLAVE DATA BLOCK
*----------------------------------------------------------------------
         END

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html
//* c++ ------------------------------------------------------------------------
//COMPILE   EXEC  PGM=CCNDRVR,
//  PARM='POSIX(OFF) ABT(RETCODE) ENVAR("PDFDIR=./", __CBC_EXTENDED=9)/
//  "./" "./ctoasm.c" "*.c" 
//  CMDOPTS(OE,NOLSEARCH,
//  START,LONGNAME,RENT,TERMINAL,
//  OBJECT(ctoasm.o),
//  HALT(16),NOMARGINS,NESTINC(255),NOSEQUENCE,NOSSCOM,
//  NOEVENTS,NOALIAS,TARGET(LE),NOEXPORTALL,
//  ARGPARSE,EXECOPS,PLIST(HOST),REDIR,
//  LOCALE(POSIX),
//  LANGLVL(ANSI),NOUPCONV,NOLIBANSI,ANSIALIAS,
//  NOINLINE(AUTO,NOREPORT,100,1000),MEMORY,MAXMEM(*),SPILL(128),
//  NODEBUG,NOTEST,NOGONUMBER,
//  NOLIST(/dev/fd1),NOSOURCE(/dev/fd1),
//  NOAGGREGATE,NOEXPMAC,NOOFFSET,NOSHOWINC,NOXREF,
//  NOINFO,FLAG(W),NOIPA),
//  DEFINE(errno=™™(*__errno™™(™™)™™)),
//  DEFINE(_OPEN_DEFAULT=1),
//  NOSEARCH,SEARCH(/usr/include/,
//    /usr/lpp/cbclib/include/,
//    //''CEE.SCEEH.+'',
//    //''CBC.SCLBH.+''),
//  NOPPONLY(NOCOMMENTS,NOLINES,/dev/fd1,2048),
//  OPTIMIZE(0)'
//*STEPLIB DD  DSN=CEE.SCEERUN,DISP=SHR
//*        DD  DSN=CBC.SCCNCMP,DISP=SHR
//* c++ ------------------------------------------------------------------------
//ASSEMBLE  EXEC  PGM=ASMA90,
//  PARM='NODECK,OBJECT,TERM,
//  NOLIST,NOESD,NORLD,NOXREF,FLAG(4)'
//SYSLIB   DD  DSN='CEE.SCEEMAC',DISP=SHR,DCB=DSORG=DIR
//         DD  DSN='SYS1.MACLIB',DISP=SHR,DCB=DSORG=DIR
//         DD  DSN='SYS1.MODGEN',DISP=SHR,DCB=DSORG=DIR
//SYSPUNCH DD  DUMMY
//SYSUT1   DD  UNIT=SYSDA,SPACE=(32000,(30,30)),
//             STORCLAS=,MGMTCLAS=,DATACLAS=,DSNTYPE=,
//             DCB=(RECFM=F,LRECL=4088,BLKSIZE=4088)
//SYSPRIN2 DD  PATH='/dev/fd1',
//             PATHOPTS=(ORDWR,OCREAT,OAPPEND),
//             PATHMODE=(SIROTH,SIRGRP,SIRUSR,SIWOTH,SIWGRP,SIWUSR)
//SYSTERM2 DD  PATH='/dev/fd2',
//             PATHOPTS=(ORDWR,OCREAT,OAPPEND),
//             PATHMODE=(SIROTH,SIRGRP,SIRUSR,SIWOTH,SIWGRP,SIWUSR)
//SYSPRINT DD  DISP=(NEW,DELETE),UNIT=SYSDA,SPACE=(32000,(30,30)),
//             STORCLAS=,MGMTCLAS=,DATACLAS=,DSNTYPE=,
//             DCB=(RECFM=FBM,LRECL=133,BLKSIZE=3990)
//SYSTERM  DD  DISP=(NEW,DELETE),UNIT=SYSDA,SPACE=(32000,(30,30)),
//             STORCLAS=,MGMTCLAS=,DATACLAS=,DSNTYPE=,
//             DCB=(RECFM=FBM,LRECL=133,BLKSIZE=3990)
//SYSIN2   DD  PATH='obtasm.s',PATHOPTS=(ORDONLY)
//SYSIN    DD  DISP=(NEW,DELETE),UNIT=SYSDA,SPACE=(32000,(30,30)),
//             STORCLAS=,MGMTCLAS=,DATACLAS=,DSNTYPE=,
//             DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
//SYSLIN2  DD  PATH='obtasm.o',
//             PATHOPTS=(OWRONLY,OCREAT,OTRUNC),
//             PATHMODE=(SIROTH,SIRGRP,SIRUSR,SIWOTH,SIWGRP,SIWUSR)
//SYSLIN   DD  DISP=(NEW,DELETE),UNIT=SYSDA,SPACE=(32000,(30,30)),
//             STORCLAS=,MGMTCLAS=,DATACLAS=,DSNTYPE=,
//             DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
//* c++ ------------------------------------------------------------------------
//LINKEDIT  EXEC  PGM=LINKEDIT,
//  PARM='AMODE=31,RMODE=ANY,TERM=YES,
//  DYNAM=DLL,ALIASES=NO,UPCASE=NO,
//  LIST=OFF,MAP=NO,XREF=NO,INFO=NO,MSGLEVEL=4,
//  REUS=RENT,EDIT=YES,AC=0,CALL=YES,CASE=MIXED'
//SYSLIB   DD  DSN='CEE.SCEELKEX',DISP=SHR,DCB=DSORG=DIR
//         DD  DSN='CEE.SCEELKED',DISP=SHR,DCB=DSORG=DIR
//         DD  DSN='CBC.SCCNOBJ',DISP=SHR,DCB=DSORG=DIR
//         DD  DSN='SYS1.CSSLIB',DISP=SHR,DCB=DSORG=DIR
//C8920    DD  UNIT=SYSDA,SPACE=(32000,(30,30)),
//             STORCLAS=,MGMTCLAS=,DATACLAS=,DSNTYPE=,
//             DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
//C8961    DD  DSN='CEE.SCEEOBJ',DISP=SHR,DCB=DSORG=DIR
//C8962    DD  DSN='CEE.SCEECPP',DISP=SHR,DCB=DSORG=DIR
//C8921    DD  DSN='CEE.SCEELIB(C128)',DISP=SHR,DCB=DSORG=NOTDIR
//C8922    DD  DSN='CBC.SCLBSID',DISP=SHR,DCB=DSORG=DIR
//SYSPRINT DD  PATH='/dev/fd1',
//             PATHOPTS=(ORDWR,OCREAT,OAPPEND),FILEDATA=TEXT,
//             PATHMODE=(SIROTH,SIRGRP,SIRUSR,SIWOTH,SIWGRP,SIWUSR)
//SYSTERM  DD  PATH='/dev/fd2',
//             PATHOPTS=(ORDWR,OCREAT,OAPPEND),FILEDATA=TEXT,
//             PATHMODE=(SIROTH,SIRGRP,SIRUSR,SIWOTH,SIWGRP,SIWUSR)
//SYSLMOD  DD  PATH='ctoasm',
//             PATHOPTS=(OWRONLY,OCREAT),
//             PATHMODE=(SIRWXO,SIRWXG,SIRWXU)
//SYSDEFSD DD  DUMMY,
//             DCB=(RECFM=F,LRECL=80,BLKSIZE=80)
//SYSLIN   DD  *
  INCLUDE C8920
  INCLUDE './ctoasm.o'                                                          
  INCLUDE './obtasm.o'                                                          
  AUTOCALL C8961
  AUTOCALL C8962
  INCLUDE C8921
  INCLUDE C8922(IOSTREAM)
  INCLUDE C8922(COMPLEX)
/*

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html
#include <stdio.h>

int OBTAIN(unsigned long[]);

#pragma linkage(OBTAIN, OS)

#pragma pack(1) /* 1 byte alignment */
typedef struct
{
char           Ds1FmtId;
char           Ds1Dssn[6];
unsigned short Ds1VolSq;
char           Ds1CreDt[3];
char           Ds1ExpDt[3];
unsigned char  Ds1NoEpv;
unsigned char  Ds1NoBdb;
unsigned char  Ds1Flag1;
char           Ds1SysCd[13];
char           Ds1RefDt[3];
unsigned char  Ds1SmsFg;
unsigned char  Ds1ScXft;
unsigned short Ds1ScXtv;
unsigned char  Ds1DsOrg[2];
unsigned char  Ds1RecFm;
unsigned char  Ds1OptCd;
unsigned short Ds1BlkL;
unsigned short Ds1LrecL;
unsigned char  Ds1KeyL;
unsigned short Ds1Rkp;
unsigned char  Ds1DsInd;
unsigned char  Ds1ScAl1;
unsigned char  Ds1ScAl3[3];
unsigned char  Ds1LstAr[3];
unsigned short Ds1TrBal;
unsigned char  Reserved;
unsigned char  Ds1Tthi;
unsigned char  Ds1Ext1[10];
unsigned char  Ds1Ext2[10];
unsigned char  Ds1Ext3[10];
unsigned char  Ds1PtrDs[5];
char           Filler[44];
} DSCB;
#pragma pack() /* default alignment */


int call_obtain(char *Dsn, char *VolSer)
{
    int            Rc;
    unsigned long  Parm[4];
    char           ParmDsn[44];
    char           ParmVolSer[6];
    DSCB           Dscb;

    memset(ParmDsn, ' ', 44);
    memcpy(ParmDsn, Dsn, strlen(Dsn));
    memset(ParmVolSer, ' ', 6);
    memcpy(ParmVolSer, VolSer, strlen(VolSer));

    Parm[0] = 0xC1000000;
    Parm[1] = (unsigned long) ParmDsn;
    Parm[2] = (unsigned long) ParmVolSer;
    Parm[3] = (unsigned long) &Dscb;

    if((Rc = OBTAIN(&Parm[0])) != 0)
       return(Rc);

    /* do something with DSCB */
    return(0);
}

int main()
{
   printf("RC=%d\n", call_obtain("SYS1.PARMLIB", "Z9RES1"));
}


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to