! *** 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 RAB ! $xabcxrdef ! DECLARE LONG CONSTANT XAB$C_CXR = 33 ! XABCXR id code DECLARE LONG CONSTANT XAB$M_CXRRST = x'00000001' DECLARE LONG CONSTANT XAB$C_CXB_VER1 = 1 DECLARE LONG CONSTANT XAB$C_CXRBLEN = 512 ! Length of CXRBUF (bytes) DECLARE LONG CONSTANT XAB$S_XABCXRDEF = 84 record XABCXRDEF BYTE XABCXRDEF$$_FILL_1 ! COD - xab id code BYTE XABCXRDEF$$_FILL_2 ! BLN - block length WORD XABCXRDEF$$_FILL_3 ! (spare) LONG XABCXRDEF$$_FILL_4 ! NXT - xab chain link ! UP TILL NOW COMMON AMONG ALL XABS ! ! Following in common with the CXF block, too. ! Do not rearrange without changing it. ! LONG XAB$L_CXRSTS ! Status of the last record operation. LONG XAB$L_CXRSTV ! Status Value of the last record operation. group XAB$R_CXRCOP_OVERLAY variant case LONG XAB$L_CXRCOP ! Context Options. case group XAB$R_CXRCOP_BITS ! Restore file/record state - use context blk as input. ! Version of Key buffer LONG CXRRST_bits ! COMMENT ADDED BY SDL - CXRRST_bits contains bits CXRRST through CXRBVER end group XAB$R_CXRCOP_BITS end variant end group XAB$R_CXRCOP_OVERLAY LONG XAB$L_CXRBKP ! Bookkeeping bits WORD XAB$W_CXRISI ! Internal Record Identifier BYTE XAB$B_CXRVER ! prologue version num. BYTE XABCXRDEF$$_FILL_6 ! spare to longword align commonality LONG XABCXRDEF$$_FILL_7 ! spare ! ! Up Till now in common with XABCXF, too. ! ! ! The following elements are arranged such that large amounts of ! data can be moved at a time rather than words or bytes. Do not ! rearrange them without this consideration in mind. ! ! The following elements are stream dependent regardless of file org. ! BYTE XAB$B_CXRMBF ! Multibuffer count BYTE XAB$B_CXRMBC ! Multiblock count WORD XAB$W_CXRBFZ ! sz in byte of CXRBUF ! ! The following elements are necessary for saving the NRP context for ! Sequential and Relative files. ! LONG XAB$L_CXRVBN ! NRP VBN WORD XAB$W_CXROFF ! NRP offset in VBN WORD XAB$W_FILL_8 ! mbz - longword align ! ! The following elements are necessary for saving the NRP context for ! ISAM files. ! LONG XAB$L_CXRPOS0 ! Primary Positioning RFA WORD XAB$W_CXRPOS4 WORD XABCXRDEF$$_FILL_9 ! Spare MBZ LONG XAB$L_CXRCUR0 ! Current Positioning RFA WORD XAB$W_CXRCUR4 WORD XABCXRDEF$$_FILL_10 ! Spare MBZ LONG XAB$L_CXRSID0 ! SIDR positioning RFA WORD XAB$W_CXRSID4 WORD XABCXRDEF$$_FILL_11 ! Spare MBZ WORD XAB$W_CXRCNT ! SIDR array count BYTE XAB$B_CXRKREF ! Cur Key of Reference BYTE XAB$B_CXRKLEN ! Length of key LONG XAB$L_CXRBUF ! address of key buf LONG XABCXRDEF$$_FILL_12 ( 1 to 2 ) ! Spares end record XABCXRDEF ! basealign on aggregate XABCXRDEF operates after aggregate end DECLARE LONG CONSTANT XAB$K_CXRLEN = 84 ! Length of XAB type CXR DECLARE LONG CONSTANT XAB$C_CXRLEN = 84 ! Length of XAB type CXR