! *** 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 ! ! Module header ! DECLARE LONG CONSTANT MHD$C_MHDID = 173 ! Value that must be in the ident DECLARE LONG CONSTANT MHD$K_REFLNG = 8 ! Length of record to end of ref count DECLARE LONG CONSTANT MHD$C_REFLNG = 8 ! Length of record to end of ref count DECLARE LONG CONSTANT MHD$K_INSTIME = 8 ! Label for start of insert time DECLARE LONG CONSTANT MHD$C_INSTIME = 8 ! Label for start of insert time DECLARE LONG CONSTANT MHD$K_USRDAT = 16 ! Start of user additional header data DECLARE LONG CONSTANT MHD$C_USRDAT = 16 ! Start of user additional header data DECLARE LONG CONSTANT MHD$K_MHDLEN = 16 ! Length of fixed part of MHD DECLARE LONG CONSTANT MHD$C_MHDLEN = 16 ! Length of fixed part of MHD DECLARE LONG CONSTANT MHD$M_SELSRC = x'00000001' DECLARE LONG CONSTANT MHD$M_OBJTIR = x'00000002' DECLARE LONG CONSTANT MHD$M_WKSYM = x'00000004' DECLARE LONG CONSTANT MHD$K_OBJIDENT = 18 ! DECLARE LONG CONSTANT MHD$C_OBJIDENT = 18 ! DECLARE LONG CONSTANT MHD$K_OREFOFFSET = 52 ! Offset of the other ref. count DECLARE LONG CONSTANT MHD$C_OREFOFFSET = 52 ! Offset of the other ref. count DECLARE LONG CONSTANT MHD$S_MHDDEF = 64 record MHDDEF BYTE MHD$B_LBRFLAG ! Librarian-controlled flag byte BYTE MHD$B_ID ! Ident WORD MHDDEF$$_FILL_1 ! Reserved word LONG MHD$L_REFCNT ! Reference count LONG MHD$L_DATIM ! Date/time inserted group MHD$R_FILL_2_OVERLAY variant case LONG MHDDEF$$_FILL_2 ! ... case group MHD$R_FILL_2_FIELDS BYTE MHDDEF$$_FILL_3 ( 1 to 4 ) STRING MHD$B_USRDAT = 0 ! Start of user additional header data end group MHD$R_FILL_2_FIELDS end variant end group MHD$R_FILL_2_OVERLAY group MHD$R_OBJSTAT_OVERLAY variant case BYTE MHD$B_OBJSTAT ! Status of object module case group MHD$R_OBJSTAT_BITS ! Selective search ! Module contains TIR records ! Module contains other non-group global symbol BYTE SELSRC_bits ! COMMENT ADDED BY SDL - SELSRC_bits contains bits SELSRC through FILL_1_ end group MHD$R_OBJSTAT_BITS end variant end group MHD$R_OBJSTAT_OVERLAY group MHD$R_OBJIDLNG_OVERLAY variant case BYTE MHD$B_OBJIDLNG ! Length of ident case group MHD$R_OBJIDLNG_FIELDS BYTE MHDDEF$$_FILL_4 STRING MHD$T_OBJIDENT = 0 ! Object module ident end group MHD$R_OBJIDLNG_FIELDS end variant end group MHD$R_OBJIDLNG_OVERLAY BYTE MHDDEF$$_FILL_5 ( 1 to 31 ) ! Object module ident data or GSMATCH area BYTE MHDDEF$$_FILL_6 ( 1 to 3 ) ! space LONG MHD$L_OTHEREFCNT ! Other reference count LONG MHD$L_MODSIZE ! Module size LONG MHD$L_FILL_7 ! part of module size. end record MHDDEF