%IF %DECLARED ( %BASIC$QUADWORD_DECLARED ) = 0 %THEN RECORD BASIC$QUADWORD LONG FILL ( 2 ) END RECORD %LET %BASIC$QUADWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$OCTAWORD_DECLARED ) = 0 %THEN RECORD BASIC$OCTAWORD LONG FILL ( 4 ) END RECORD %LET %BASIC$OCTAWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$F_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$F_FLOATING_COMPLEX SINGLE REAL_PART SINGLE IMAGINARY_PART END RECORD %LET %BASIC$F_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$D_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$D_FLOATING_COMPLEX DOUBLE REAL_PART DOUBLE IMAGINARY_PART END RECORD %LET %BASIC$D_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$G_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$G_FLOATING_COMPLEX GFLOAT REAL_PART GFLOAT IMAGINARY_PART END RECORD %LET %BASIC$G_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$H_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX HFLOAT REAL_PART HFLOAT IMAGINARY_PART END RECORD %LET %BASIC$H_FLOATING_COMPLEX_DECL = 1 %END %IF ! ++ ! file header characteristics xab definitions ! $xabfhcdef ! ! +++++***** ! the fields of this xab cannot be rearranged since ! they correspond to an on-disk structure ! DECLARE LONG CONSTANT XAB$C_FHC = 29 ! xabfhc id code DECLARE LONG CONSTANT XAB$M_FTN = x'00000001' DECLARE LONG CONSTANT XAB$M_CR = x'00000002' DECLARE LONG CONSTANT XAB$M_PRN = x'00000004' DECLARE LONG CONSTANT XAB$M_BLK = x'00000008' DECLARE LONG CONSTANT XAB$K_FHCLEN = 44 ! length of xabfhc DECLARE LONG CONSTANT XAB$C_FHCLEN = 44 ! length of xabfhc DECLARE LONG CONSTANT XAB$S_XABFHCDEF = 44 record XABFHCDEF BYTE XABFHCDEF$$_FILL_1 BYTE XABFHCDEF$$_FILL_2 WORD XABFHCDEF$$_FILL_3 LONG XABFHCDEF$$_FILL_4 ! 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 group XAB$r_fill_6 variant case BYTE XAB$B_ATR ! record attributes case group XAB$r_fill_7 ! fortran carriage-ctl ! lf-record-cr carriage ctl ! print-file carriage ctl ! records don't cross block boundaries BYTE FTN_bits ! COMMENT ADDED BY SDL - FTN_bits contains bits FTN through fill_8 end group XAB$r_fill_7 end variant end group XAB$r_fill_6 WORD XAB$W_LRL ! longest record's length group XAB$R_HBK_OVERLAY variant case LONG XAB$L_HBK ! hi vbn allocated ! (n.b. reversed on disk?) case group XAB$R_HBK_FIELDS WORD XAB$W_HBK0 WORD XAB$W_HBK2 end group XAB$R_HBK_FIELDS end variant end group XAB$R_HBK_OVERLAY group XAB$R_EBK_OVERLAY variant case LONG XAB$L_EBK ! eof vbn ! (n.b. reversed on disk) case group XAB$R_EBK_FIELDS WORD XAB$W_EBK0 WORD XAB$W_EBK2 end group XAB$R_EBK_FIELDS end variant end group XAB$R_EBK_OVERLAY WORD XAB$W_FFB ! first free byte in eof block BYTE XABFHCDEF$$_FILL_5 ! 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 WORD XAB$W_MRZ ! max record size WORD XAB$W_DXQ ! default extend quantity WORD XAB$W_GBC ! global buffer count BYTE XABFHCDEF$$_FILL_6 ( 1 to 8 ) ! spares (pad to last word) WORD XAB$W_VERLIMIT ! version limit for file. ! -----***** LONG XAB$L_SBN ! starting lbn if contiguous end record XABFHCDEF