! *** 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 ! ! Text, information and relocation record (TIR) ! DECLARE LONG CONSTANT TIR$C_STA_GBL = 0 ! Stack global symbol value DECLARE LONG CONSTANT TIR$C_STA_SB = 1 ! Stack signed byte DECLARE LONG CONSTANT TIR$C_STA_SW = 2 ! Stack signed word DECLARE LONG CONSTANT TIR$C_STA_LW = 3 ! Stack longword DECLARE LONG CONSTANT TIR$C_STA_PB = 4 ! Stack psect base plus byte offset DECLARE LONG CONSTANT TIR$C_STA_PW = 5 ! Stack psect base plus word offset DECLARE LONG CONSTANT TIR$C_STA_PL = 6 ! Stack psect base plus longword offset DECLARE LONG CONSTANT TIR$C_STA_UB = 7 ! Stack unsigned byte DECLARE LONG CONSTANT TIR$C_STA_UW = 8 ! Stack unsigned word DECLARE LONG CONSTANT TIR$C_STA_BFI = 9 ! Stack byte from image DECLARE LONG CONSTANT TIR$C_STA_WFI = 10 ! Stack word from image DECLARE LONG CONSTANT TIR$C_STA_LFI = 11 ! Stack longword from image DECLARE LONG CONSTANT TIR$C_STA_EPM = 12 ! Stack entry point mask DECLARE LONG CONSTANT TIR$C_STA_CKARG = 13 ! Stack result of argument checking (true or false) DECLARE LONG CONSTANT TIR$C_STA_WPB = 14 ! Stack psect base plus byte offset -- word psect number DECLARE LONG CONSTANT TIR$C_STA_WPW = 15 ! Stack psect base plus word offset -- word psect number DECLARE LONG CONSTANT TIR$C_STA_WPL = 16 ! Stack psect base plus longword offset -- word of psect number DECLARE LONG CONSTANT TIR$C_STA_LSY = 17 ! Stack local symbol value DECLARE LONG CONSTANT TIR$C_STA_LIT = 18 ! Stack literal DECLARE LONG CONSTANT TIR$C_STA_LEPM = 19 ! Stack local symbol entry point mask DECLARE LONG CONSTANT TIR$C_MAXSTACOD = 19 ! Last assigned code of stack group DECLARE LONG CONSTANT TIR$C_MINSTOCOD = 20 ! First assigned store command code DECLARE LONG CONSTANT TIR$C_STO_SB = 20 ! Store signed byte DECLARE LONG CONSTANT TIR$C_STO_SW = 21 ! Store signed word DECLARE LONG CONSTANT TIR$C_STO_L = 22 ! Store longword DECLARE LONG CONSTANT TIR$C_STO_BD = 23 ! Store byte displaced DECLARE LONG CONSTANT TIR$C_STO_WD = 24 ! Store word displaced DECLARE LONG CONSTANT TIR$C_STO_LD = 25 ! Store longword displaced DECLARE LONG CONSTANT TIR$C_STO_LI = 26 ! Store short literal DECLARE LONG CONSTANT TIR$C_STO_PIDR = 27 ! Store pos. indep. data reference DECLARE LONG CONSTANT TIR$C_STO_PICR = 28 ! Store pos. indep. code reference DECLARE LONG CONSTANT TIR$C_STO_RSB = 29 ! Store repeated signed byte DECLARE LONG CONSTANT TIR$C_STO_RSW = 30 ! Store repeated signed word DECLARE LONG CONSTANT TIR$C_STO_RL = 31 ! Store repeated longword DECLARE LONG CONSTANT TIR$C_STO_VPS = 32 ! Store arbitrary field DECLARE LONG CONSTANT TIR$C_STO_USB = 33 ! Store unsigned byte DECLARE LONG CONSTANT TIR$C_STO_USW = 34 ! Store unsigned word DECLARE LONG CONSTANT TIR$C_STO_RUB = 35 ! Store repeated unsigned byte DECLARE LONG CONSTANT TIR$C_STO_RUW = 36 ! Store repeated unsigned word DECLARE LONG CONSTANT TIR$C_STO_B = 37 ! Store byte DECLARE LONG CONSTANT TIR$C_STO_W = 38 ! Store word DECLARE LONG CONSTANT TIR$C_STO_RB = 39 ! Store repeated byte DECLARE LONG CONSTANT TIR$C_STO_RW = 40 ! Store repeated word DECLARE LONG CONSTANT TIR$C_STO_RIVB = 41 ! Store repeated immediate variable bytes DECLARE LONG CONSTANT TIR$C_STO_PIRR = 42 ! Store pos. indep. relative reference DECLARE LONG CONSTANT TIR$C_MAXSTOCOD = 42 ! Last assigned store command code DECLARE LONG CONSTANT TIR$C_MINOPRCOD = 50 ! First assigned operator command code DECLARE LONG CONSTANT TIR$C_OPR_NOP = 50 ! No-op DECLARE LONG CONSTANT TIR$C_OPR_ADD = 51 ! Add DECLARE LONG CONSTANT TIR$C_OPR_SUB = 52 ! Subtract DECLARE LONG CONSTANT TIR$C_OPR_MUL = 53 ! Multiply DECLARE LONG CONSTANT TIR$C_OPR_DIV = 54 ! Divide DECLARE LONG CONSTANT TIR$C_OPR_AND = 55 ! Logical AND DECLARE LONG CONSTANT TIR$C_OPR_IOR = 56 ! Logical inclusive OR DECLARE LONG CONSTANT TIR$C_OPR_EOR = 57 ! Logical exclusive OR DECLARE LONG CONSTANT TIR$C_OPR_NEG = 58 ! Negate DECLARE LONG CONSTANT TIR$C_OPR_COM = 59 ! Complement DECLARE LONG CONSTANT TIR$C_OPR_INSV = 60 ! Insert bit field DECLARE LONG CONSTANT TIR$C_OPR_ASH = 61 ! Arithmetic shift DECLARE LONG CONSTANT TIR$C_OPR_USH = 62 ! Unsigned shift DECLARE LONG CONSTANT TIR$C_OPR_ROT = 63 ! Rotate DECLARE LONG CONSTANT TIR$C_OPR_SEL = 64 ! Select one of three longwords on top of stack DECLARE LONG CONSTANT TIR$C_OPR_REDEF = 65 ! Redefine this symbol after pass 2 DECLARE LONG CONSTANT TIR$C_OPR_DFLIT = 66 ! Define a literal DECLARE LONG CONSTANT TIR$C_MAXOPRCOD = 66 ! Last assigned operator command code DECLARE LONG CONSTANT TIR$C_MINCTLCOD = 80 ! First assigned control command code DECLARE LONG CONSTANT TIR$C_CTL_SETRB = 80 ! Set relocation base DECLARE LONG CONSTANT TIR$C_CTL_AUGRB = 81 ! Augment relocation base DECLARE LONG CONSTANT TIR$C_CTL_DFLOC = 82 ! Define debug location DECLARE LONG CONSTANT TIR$C_CTL_STLOC = 83 ! Set debug location DECLARE LONG CONSTANT TIR$C_CTL_STKDL = 84 ! Stack debug location DECLARE LONG CONSTANT TIR$C_MAXCTLCOD = 84 ! Last assigned control command code DECLARE LONG CONSTANT TIR$S_TIRDEF = 1 record TIRDEF variant case BYTE TIR$B_RECTYP ! Record type (OBJ$C_TIR) ! Define relocation commands end variant end record TIRDEF ! ! EVAX dependent structures start here !