!*** MODULE $XABFHCDEF *** CDEC$ OPTIONS /NOALIGN ! ++ ! file header characteristics xab definitions ! $xabfhcdef ! ! +++++***** ! the fields of this xab cannot be rearranged since ! they correspond to an on-disk structure ! PARAMETER XAB$C_FHC = '0000001D'X ! xabfhc id code PARAMETER XAB$M_FTN = '00000001'X PARAMETER XAB$M_CR = '00000002'X PARAMETER XAB$M_PRN = '00000004'X PARAMETER XAB$M_BLK = '00000008'X PARAMETER XAB$K_FHCLEN = '0000002C'X ! length of xabfhc PARAMETER XAB$C_FHCLEN = '0000002C'X ! length of xabfhc STRUCTURE /XABFHCDEF/ BYTE %FILL BYTE %FILL INTEGER*2 %FILL INTEGER*4 %FILL ! HAS SAME COD, BLN, SPARE AND NXT FIELD ! THESE 4 FIELDS ARE COMMON TO ALL XABS AND ! HAVE BEEN DEFINED BY $XABDEF BYTE XAB$B_RFO ! record format and file org UNION MAP BYTE XAB$B_ATR ! record attributes END MAP MAP PARAMETER XAB$S_FTN = 1 PARAMETER XAB$V_FTN = 0 ! fortran carriage-ctl PARAMETER XAB$S_CR = 1 PARAMETER XAB$V_CR = 1 ! lf-record-cr carriage ctl PARAMETER XAB$S_PRN = 1 PARAMETER XAB$V_PRN = 2 ! print-file carriage ctl PARAMETER XAB$S_BLK = 1 PARAMETER XAB$V_BLK = 3 ! records don't cross block boundaries BYTE %FILL (1) END MAP END UNION INTEGER*2 XAB$W_LRL ! longest record's length UNION MAP INTEGER*4 XAB$L_HBK ! hi vbn allocated END MAP ! (n.b. reversed on disk!) MAP INTEGER*2 XAB$W_HBK0 INTEGER*2 XAB$W_HBK2 END MAP END UNION UNION MAP INTEGER*4 XAB$L_EBK ! eof vbn END MAP ! (n.b. reversed on disk) MAP INTEGER*2 XAB$W_EBK0 INTEGER*2 XAB$W_EBK2 END MAP END UNION INTEGER*2 XAB$W_FFB ! first free byte in eof block BYTE %FILL ! bucket size for fhc ( note: field name is bkz, ! defined above in $xabdef, since it is shared ! by the all xab) BYTE XAB$B_HSZ ! header size for vfc INTEGER*2 XAB$W_MRZ ! max record size INTEGER*2 XAB$W_DXQ ! default extend quantity INTEGER*2 XAB$W_GBC ! global buffer count BYTE %FILL(1:8) ! spares (pad to last word) INTEGER*2 XAB$W_VERLIMIT ! version limit for file. ! -----***** INTEGER*4 XAB$L_SBN ! starting lbn if contiguous END STRUCTURE ! XABFHCDEF CDEC$ END OPTIONS