The reason for asking the question about bytes on a track is that I am writing 
programs to report on all disk datasets.
The first program looks at all on-line disk packs and extracts all format 1, 3, 
8 and 9 DSCBs while also providing a summary of space available/used on each 
disk (similar to VTOC on CBT file 112).
The second program produces information for all datasets. If the secondary 
allocation is in blocks then that means the primary was also and I want to 
output the allocation like this BLK(00060,00020).
To do this I subtract the block size from 56664 repeatedly until the remainder 
is less than the block size which gives me the number of blocks in a track, 
multiply this by the primary allocation in tracks should give me the figure I 
want.
Except it doesn't.

For the format 1 DSCB below ISPF 3;4 reports BLK(00060,00020) and my program 
BLK(00072,00020).
With a blocksize of 3120 there are 18 blocks per track and 4 tracks are in use. 
3 of them must be full so that gives 54 blocks meaning there are only 6 on the 
final track.

The dataset is not extended format, PDSE, HFS or VSAM so I think I need to look 
at DS1TRBAL, I subtracted 32266 from 56664 and worked out how many blocks would 
fit, I get 7 not 6.

Alternatively, if I use 55996 I get 17 blocks per track meaning there are 9 on 
the last track and I get 7.

I'm obviously missing something, and I am hoping someone can tell me what?

DS1DSNAM  DSN1.SRCLIB.DATA    
DS1FMTID  1                   
DS1DSSN   DB2C06              
DS1VOLSQ  0001                
DS1CREDT  78003A              
DS1EXPDT  000000              
DS1NOEPV  01                  
DS1NOBDB  00                  
DS1FLAG1  00                  
DS1SYSCD  IBMOSVS2            
DS1REFD   7A0148              
DS1SMSFG  80                  
DS1SCXTF  80                  
DS1SCXTV  0FA0                4000
DS1DSORG  0200                
DS1RECFM  90                  
DS1OPTCD  00                  
DS1BLKL   0C30                
DS1LRECL  0050                
DS1KEYL   00                  
DS1RKP    0000                
DS1DSIND  80                  
DS1SCAL1  50                  
DS1SCAL3  000014              
DS1LSTAR  000015              
DS1TRBAL  7E0A                32266
DS1TTTHI  00                  
DS1EXT1   0100000C000B000C000E
DS1EXT2   00000000000000000000
DS1EXT3   00000000000000000000
DS1PTRDS  0000000000          

Data Set Name . . . . : DSN1.SRCLIB.DATA                               
                                                                       
General Data                          Current Allocation               
 Management class . . :                Allocated blocks  . : 60        
 Storage class  . . . :                Allocated extents . : 1         
  Volume serial . . . : DB2C06         Maximum dir. blocks : 20        
  Device type . . . . : 3390                                           
 Data class . . . . . :                                                
  Organization  . . . : PO            Current Utilization              
  Record format . . . : FB             Used blocks . . . . : 7         
  Record length . . . : 80             Used extents  . . . : 1         
  Block size  . . . . : 3120           Used dir. blocks  . : 1         
  1st extent blocks . : 60             Number of members . : 0         
  Secondary blocks  . : 20                                             
  Data set name type  : PDS           Dates                            
  Data set encryption : NO             Creation date . . . : 2020/02/27
                                       Referenced date . . : 2022/11/24
                                       Expiration date . . : ***None***

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

Reply via email to