IGGCSI00



High Level Assembler(HLASM) for MVS & VM & VSE

IGGCSI00

Postby sensuixel » Fri Jun 17, 2011 12:33 pm

Hi everyone,

I'm currently working on invoking IGGCSI00 to retrieve various info from VS and Non-VS file.
I started from the SYS1.SAMPLIB(IGG*) sample and it works fine ... until i find my first multi-volume file.

I retrieve the following fields

CSIFLDNM    DC CL8'CATTR   '  FIELD NAME                   
           DC CL8'HARBADS '  HI-RBA                       
           DC CL8'PHYBLKSZ'  BLOCKSIZE                   
           DC CL8'VOLSER  '  VOLSER                       

Through the following DSECTs statement

........
EDATALN  DS    XL2 
EFLD1LN  DS    XL2   Lenght of field CATTR
EFLD2LN  DS    XL2   Length of field HA-RBA
EFLD3LN  DS    XL2   Length of field PHYBLK
EFLD4LN  DS    XL2   Length of field VOLSER 
ECATTR   DS    XL1 
EHARBA   DS    XL4 
EPHYBLK  DS    XL4 
EVOLSER  DS    XL6 
...........


But for some reason VOLSER is empty on multi-volume file
I found a way to retrieve the info by performing the following address calculation

          L     R11,LN_TOT                                 
          A     R11,EFLD1LN     compute  LENGTH of FIELD 1 +                           
          A     R11,EFLD2LN                   LENGTH of FIELD 2 +                                                           
          A     R11,EFLD3LN                   LENGTH of FIELD 3 +                                                           
          A     R11,EFLD4LN                   LENGTH of FIELD 4                                                               
          ST    R11,LN_TOT                                 
          MVC  ADDR+2(2),LN_TOT                           
          LA    R11,ECATTR                  Then Add id to the address of the first field CATTR                                 
          L     R10,ADDR                                   
          AR    R11,R10                                     
          LA    R10,VOLSER               
          MVC   0(6,R10),0.(R11)         To get the first volume of the file         

I iterate the last MVC until i retrieve all the volume occupied by the file.
It works fine but I didn't find in CSI documentation (managing catalog) the proper way to retrieve this field, I mean without performing address calculation ?

It's kind of an issue to me since my source tends to reach the limit of adressability of m two bases registers.
sensuixel
 
Posts: 58
Joined: Mon Feb 21, 2011 8:55 pm
Has thanked: 0 time
Been thanked: 0 time

Re: IGGCSI00

 

Re: IGGCSI00

Postby sensuixel » Thu Jun 30, 2011 12:19 am

Hello,

I asked around in my shop but it seems that IGGCSI is seldom used, anyway ...

To solve my issue on adressability i've created a sub-program to deal with sequential file while the rest of the progamm
take care of VSAMs files.

But i still haven't found the way to deal with multi-volume file without performing adress calculation.
sensuixel
 
Posts: 58
Joined: Mon Feb 21, 2011 8:55 pm
Has thanked: 0 time
Been thanked: 0 time

Re: IGGCSI00

Postby steve-myers » Thu Jun 30, 2011 3:06 am

sensuixel wrote:...... But i still haven't found the way to deal with multi-volume file without performing adress calculation.
You're going to have to do address arithmetic.

One issue I see in your code is you are doing a fullword add instruction on halfword data. This is a recipe for disaster!

Unfortunately the machine where I stored the listing of my IGGCSI00 program died a couple of weeks ago, so I don't have it readily available.

I agree there aren't very many IGGCSI00 programs around to copy from.
steve-myers
Global moderator
 
Posts: 1886
Joined: Thu Jun 03, 2010 6:21 pm
Has thanked: 4 times
Been thanked: 197 times

Re: IGGCSI00

Postby sensuixel » Tue Jul 05, 2011 1:40 pm

steve-myers wrote:
sensuixel wrote:...... But i still haven't found the way to deal with multi-volume file without performing adress calculation.
You're going to have to do address arithmetic.

One issue I see in your code is you are doing a fullword add instruction on halfword data. This is a recipe for disaster!

Unfortunately the machine where I stored the listing of my IGGCSI00 program died a couple of weeks ago, so I don't have it readily available.

I agree there aren't very many IGGCSI00 programs around to copy from.


thanks for you reply, i'll fix the add instruction.

I'll stick with the adress arithmetic, it seems to work fine with all the files i tried.
sensuixel
 
Posts: 58
Joined: Mon Feb 21, 2011 8:55 pm
Has thanked: 0 time
Been thanked: 0 time


Return to Assembler