! *** 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 ! ! These are the record types defined for VAX and EVAX object records. ! Some types are only recognized in one format of object file, but ! the types must be a single set of distinct codes. ! DECLARE LONG CONSTANT EOBJ$C_EMH = 8 ! EVAX module header record DECLARE LONG CONSTANT EOBJ$C_EEOM = 9 ! EVAX end of module record DECLARE LONG CONSTANT EOBJ$C_EGSD = 10 ! EVAX global symbol definition record DECLARE LONG CONSTANT EOBJ$C_ETIR = 11 ! EVAX text information record DECLARE LONG CONSTANT EOBJ$C_EDBG = 12 ! EVAX Debugger information record DECLARE LONG CONSTANT EOBJ$C_ETBT = 13 ! EVAX Traceback information record DECLARE LONG CONSTANT EOBJ$C_MAXRECTYP = 13 ! Last assigned record type DECLARE LONG CONSTANT EOBJ$K_SUBTYP = 4 DECLARE LONG CONSTANT EOBJ$C_SUBTYP = 4 DECLARE LONG CONSTANT EOBJ$C_MAXRECSIZ = 8192 ! Maximum legal record size DECLARE LONG CONSTANT EOBJ$C_STRLVL = 2 ! Structure level DECLARE LONG CONSTANT EOBJ$C_STRLVL64 = 3 ! Structure level DECLARE LONG CONSTANT EOBJ$C_SYMSIZ = 64 ! Maximum symbol length DECLARE LONG CONSTANT EOBJ$C_STOREPLIM = -1 ! Maximum repeat count on store commands DECLARE LONG CONSTANT EOBJ$C_PSCALILIM = 16 ! Maximum p-sect alignment DECLARE LONG CONSTANT EOBJ$S_EOBJRECDEF = 10 record EOBJRECDEF ! ! These are the record types defined for VAX object records. ! WORD EOBJ$W_RECTYP ! First byte always record type WORD EOBJ$W_SIZE ! Second is always record size ! Permissable record types WORD EOBJ$W_SUBTYP ! Record sub-type byte BYTE EOBJ$B_MHD_STRLV ! Structure level BYTE EOBJ$B_MHD_HOLD ! alignment temp group EOBJ$R_MHD_RECSZ_OVERLAY variant case WORD EOBJ$W_MHD_RECSZ ! Maximum record size case group EOBJ$R_MHD_RECSZ_FIELDS BYTE EOBJRECDEF$$_FILL_1 ( 1 to 2 ) STRING EOBJ$T_MHD_NAME = 0 ! Module name field ! Misc. constants end group EOBJ$R_MHD_RECSZ_FIELDS end variant end group EOBJ$R_MHD_RECSZ_OVERLAY end record EOBJRECDEF