I'm currently working on a progam which calculate VSAM file size using IGGCSI then TRKCALC.

I, first, retrieve H-A-RBA and BLOCKSIZE from IGGCSI then I use TRKCALC to calculate the number of Block per track.

Then I do H-A-RBA / (BLOCKSIZE * NUMBER OF BLOCK per track) to get the track allocation of my file.

Unfortunately, on "great" file I get incorrect result, here is an example :

- I have a VSAM File with H-A-RBA = 3,510,190,080 wich i get as X'D1394000'

- Blocksize = 4096 as X'1000'

- I get 12 as number of block per track after TRKCALC (UTYPE = 3390)

I first try to display the H-A-RBA using CVD and ED and I get 784,777,216 (which is wrong), so the rest of my calculation goes wrong.

Here after is a portion of my code.

*

L 2,EHARBA

CVD 2,DEC_RBA

*

MVC OUTPUT+45(18),PATTERN1

ED OUTPUT+45(18),DEC_RBA+1

PUT PUTDCB,OUTPUT

**

EHARBA DS XL4 * got from IGGSI result

DEC_RBA DS PL8

PATTERN1 DC XL18'40206B2020206B2020206B2020206B202120'

L 2,EHARBA

CVD 2,DEC_RBA

*

MVC OUTPUT+45(18),PATTERN1

ED OUTPUT+45(18),DEC_RBA+1

PUT PUTDCB,OUTPUT

**

EHARBA DS XL4 * got from IGGSI result

DEC_RBA DS PL8

PATTERN1 DC XL18'40206B2020206B2020206B2020206B202120'