In contrast to K-PAM files, NK-PAM files do not have separate PAM keys outside the PAM pages. Depending on the block format selected for an NK-PAM file, the block-specific management information is either kept within the logical blocks or does not exist:
Block format "DATA"
This block format is generated when a file is created with the operand BLKCTRL=DATA of the FILE macro or the operand BLOCK-CONTROL-INFO=*WITHIN-DATA-BLOCK of the ADD-FILE-LINK command. The block-specific management information is kept in a part of the logical block of the file, namely in the 12-byte block control field.
In an NK-PAM file in which n 2-Kbyte blocks (standard blocks) have been grouped together using either the operand BLKSIZE=(STD,n) in the FILE or FCB macro or the operand BUFFER-LENGTH=*STD(n) in the ADD-FILE-LINK command to form a logical block, this block has the following structure:
where:
CF | Block control field, 12 bytes. |
The block control field has the following structure:
where:
CFID | Coded File IDentification: this has the same meaning as in the PAM key (see "Data block in a K-PAM file"). |
LBN | Logical Block Number: number of the standard block which contains the block control field. (Standard blocks are numbered sequentially within a file.) |
VN | Version number: this has the same meaning as in the PAM key. |
CFL | Control FLag: the control flag flags gaps within a file. This information is used primarily when copying a file from or to a tape. |
res | Bytes in the block control field which are reserved for future use. |
The 12 bytes of a logical block used for the block control field are thus not available for storing user data.
The length of the part of a logical block that can be used for user data, consisting of n standard blocks, is therefore:
Usable block length:
|
Block format "NO"
This block format is generated when a file is created with the operand BLKCTRL=NO of the FILE macro or the operand BLOCK-CONTROL-INFO=*NO of the ADD-FILE-LINK command. No block-specific management information is generated. The entire logical block is available for storing user data.
In an NK-PAM file in which n 2K blocks (standard blocks) have been grouped together using either the operand BLKSIZE=(STD,n) in the FILE or FCB macro or the operand BUFFER-LENGTH=*STD(n) in the ADD-FILE-LINK command to form a logical block, this block has the following structure:
Since the entire logical block is available for user data, the usable block length is n * 2048 bytes (for a logical block which consists of n standard blocks).
Block format “NO” is particularly suitable for files which are to contain an uninterrupted stream of data, extending beyond logical block boundaries (e.g. load modules). System functions which need block-specific management information from the PAM key or from the block control field (e.g. partial backups using ARCHIVE or HSMS) cannot be used for such files.