Perform calculation with great number
Posted: Fri Apr 29, 2011 9:00 pm
Hello,
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.
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'