! *** 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 ! ! definitions for all xabs ! $xabdef ! ! the first four fields are shared in common between all xabs ! and hence are defined only once ! (the only exception is that the spare word may be used by some xabs) ! DECLARE LONG CONSTANT XAB$S_XABDEF = 20 record XABDEF BYTE XAB$B_COD ! xab id code BYTE XAB$B_BLN ! block length WORD XABDEF$$_FILL_1 ! (spare) LONG XAB$L_NXT ! xab chain link WORD XAB$W_RVN WORD XABDEF$$_FILL_2 group XAB$R_RDT_OVERLAY variant case BASIC$QUADWORD XAB$Q_RDT case group XAB$R_RDT_FIELDS LONG XAB$L_RDT0 LONG XAB$L_RDT4 ! COMMON AMONG DAT AND RDT XABS end group XAB$R_RDT_FIELDS end variant end group XAB$R_RDT_OVERLAY end record XABDEF DECLARE LONG CONSTANT XAB$S_XABDEF1 = 23 record XABDEF1 BYTE XABDEF$$_FILL_3 ( 1 to 8 ) BYTE XABDEF$$_FILL_4 ! THESE FIELDS WILL BE DEFINED LATER BYTE XABDEF$$_FILL_5 WORD XABDEF$$_FILL_6 LONG XABDEF$$_FILL_7 LONG XABDEF$$_FILL_8 WORD XABDEF$$_FILL_9 BYTE XAB$B_BKZ ! COMMON TO FHC AND ALQ XABS end record XABDEF1 DECLARE LONG CONSTANT XAB$C_CXT_VER1 = 1 ! RMS Context Extraction version 1