! *** PREDECLARED TYPES %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$HFLOAT_AXP_DECLARED ) = 0 %THEN RECORD BASIC$HFLOAT_AXP LONG FILL ( 4 ) END RECORD %LET %BASIC$HFLOAT_AXP_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_FLOAT_AXP_CMPLX_DCL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX_AXP BASIC$HFLOAT_AXP REAL_PART BASIC$HFLOAT_AXP IMAGINARY_PART END RECORD %LET %BASIC$H_FLOAT_AXP_CMPLX_DCL = 1 %END %IF ! ! RMS Context XAB associated with the FAB ! $xabcxfdef ! DECLARE LONG CONSTANT XAB$C_CXF = 32 ! XABCXF id code DECLARE LONG CONSTANT XAB$M_CXFRST = x'00000001' DECLARE LONG CONSTANT XAB$S_XABCXFDEF = 60 record XABCXFDEF BYTE XABCXFDEF$$_FILL_1 ! COD - xab id code BYTE XABCXFDEF$$_FILL_2 ! BLN - block length WORD XABCXFDEF$$_FILL_3 ! (spare) LONG XABCXFDEF$$_FILL_4 ! NXT - xab chain link ! UP TILL NOW COMMON AMONG ALL XABS ! ! Following in common with the CXR block, too. ! Do not rearrange without changing both. ! LONG XAB$L_CXFSTS ! Status of the last file operation. LONG XAB$L_CXFSTV ! Status Value of the last file operation. ! ! Top four bits of the options longword are reserved for the XABCXR. These ! bits describe the version of the key buffer. ! group XAB$R_CXFCOP_OVERLAY variant case LONG XAB$L_CXFCOP ! Context Options. case group XAB$R_CXFCOP_BITS ! Restore file state - use context blk as input. BYTE CXFRST_bits ! COMMENT ADDED BY SDL - CXFRST_bits contains bits CXFRST through FILL_15_ end group XAB$R_CXFCOP_BITS end variant end group XAB$R_CXFCOP_OVERLAY LONG XAB$L_CXFBKP ! Bookkeeping bits WORD XAB$W_CXFIFI ! Internal File Identifier BYTE XAB$B_CXFVER ! prologue version num BYTE XABCXFDEF$$_FILL_5 ! spare to longword align commonality LONG XABCXFDEF$$_FILL_6 ! spare ! ! Up Till now in common with XABCXR, too. ! ! The following fields correspond to those in the FAB or IFB ! They should not be rearranged as their order is assumed for ! purposes of moving large chunks of data rather than a byte ! or word at a time. Note: ASSUME is used in the actual code ! WORD XAB$W_CXFDEQ ! Default extention quantity BYTE XAB$B_CXFFAC ! File access BYTE XAB$B_CXFSHR ! File Sharing WORD XAB$W_CXFRTE ! (Not used) BYTE XABCXFDEF$$_FILL_7 ! spare BYTE XAB$B_CXFORG ! file organization WORD XAB$W_CXFGBC ! global buffer count BYTE XAB$B_CXFRTV ! retrieval window BYTE XABCXFDEF$$_FILL_8 LONG XABCXFDEF$$_FILL_9 ( 1 to 4 ) ! spares end record XABCXFDEF ! basealign on aggregate XABCXFDEF operates after aggregate end DECLARE LONG CONSTANT XAB$K_CXFLEN = 60 ! length of xab type CXF DECLARE LONG CONSTANT XAB$C_CXFLEN = 60 ! length of xab type CXF