!
! FIRST THE OPERAND FLAG CONSTANTS
!
CONSTINTEGER  SCONST=0;                 ! CONST UPTO 64 BITS value is carried
                                        ! in opnd_d and opnd_xtra
CONSTINTEGER  LCONST=1;                 ! CONST LONGER THAN SCONST const can be
                                        ! found elsewhere(at top of ar) by
                                        ! meanse of base&offset inf in_d and _xtra
CONSTINTEGER  DNAME=2;                  ! NAME BY DICTIONARY NO the base and disp in
                                        ! the dictionary after adjusting by
                                        ! possible offset for item in
                                        ! in records lead to the variable
CONSTINTEGER  ARNAME=3;                 ! NAME BY AR POINTER opnd_d the ar pointer
                                        ! this form local to pass2
                                        ! and used to identify functions
                                        ! with params before the call
                                        ! is planted
CONSTINTEGER  VIAPTR=4;                 ! VIA TRIPLE WITHOFFSET TO POINTER
                                        ! At an offset(_xtra) from address in
                                        ! referenced triple can be found a
                                        ! pointer to the required operand
CONSTINTEGER  INDNAME=5;                ! INDIRECT VIA DICTIONARY base&disp
                                        ! in dictionary identify a pointer
                                        ! variable at possible offset from
                                        ! this pointer
CONSTINTEGER  INDIRECT=6;               ! INDIRECT VIA TRIPLE WITH OFFSET
                                        ! the refenced triple has computed
                                        ! the (32bit) address of an item
                                        ! an offset may have to be applied
                                        ! before the fetch or store
CONSTINTEGER  LOCALIR=7;                ! BASE DISP REF IN CURRENT STACK FRAME
                                        ! opnd_b=base<<16!offset used only for
                                        ! compiler generated temporaries
CONSTINTEGER  REFTRIP=8;                ! REFERENCE TO A TRIPLE the operand is the result of 
                                        ! triple opnd_d
CONSTINTEGER  INAREG=9;                 ! REGISTER OPERAND this form is local to the
                                        ! code generating pass(es)
CONSTINTEGER  developped=10;            ! also local to generator
CONSTINTEGER  BTREFMASK=1<<REFTRIP!1<<INDIRECT!1<<VIAPTR
!
! NOW THE DEFINITIONS OF ONE OPERAND TRIPLES <128
!
CONSTINTEGER  RTHD=1;                   ! ROUTINE-BLOCK HEADING
CONSTINTEGER  RDSPY=2;                  ! ROUTINE ENTRY SET DISPLAY
CONSTINTEGER  RDAREA=3;                 ! ROUTINE LEAVE DIAGNOSTIC SPACE
CONSTINTEGER  RDPTR=4;                  ! SET DIAGNOSTIC POINTER
CONSTINTEGER  RTBAD=5;                  ! ROUTINE-FN BAD EXIT
CONSTINTEGER  RTXIT=6;                  ! "%RETURN"
CONSTINTEGER  XSTOP=7;                  ! EXECUTE "%STO"
CONSTINTEGER  NOTL=10;                  ! LOGICAL NOT
CONSTINTEGER  LNEG=11;                  ! LOGICAL NEGATE
CONSTINTEGER  IFLOAT=12;                ! CONVERT INTEGER TO REAL
CONSTINTEGER  MODULUS=13;               ! AS USED BY IMOD&RMOD
CONSTINTEGER  SHRTN=14;                 ! SHORTEN TO LOWER PRECISION
CONSTINTEGER  LNGTHN=15;                ! LENGTHEN TO HIGHER PRECISION
CONSTINTEGER  JAMSHRTN=16;              ! SHORTEN FOR JAM TRANSFER
CONSTINTEGER  NULLT=18;                 ! FOR REDUNDANT TRIPLES
CONSTINTEGER  PRELOAD=19;               ! PREFETCH FOR OPTIMISATION REASONS
CONSTINTEGER  SSPTR=21;                 ! STORE STACK POINTER
CONSTINTEGER  RSPTR=22;                 ! RESTORE STACK POINTER
CONSTINTEGER  ASPTR=23;                 ! ADVANCE STACK PTR
CONSTINTEGER  DARRAY=24;                ! DECLARE ARRAY(IE STORE HD)
CONSTINTEGER  SLINE=25;                 ! UPDATE LINE NO
CONSTINTEGER  STPCK=26;                 ! CHECK FOR ZERO STEPS
CONSTINTEGER  FORPRE=27;                ! PREAMBLE FOR "FOR"
CONSTINTEGER  FORPOST=28;               ! POSTAMBLE FOR "FOR"
CONSTINTEGER  FORPR2=29;                ! FOR SECOND PREAMBLE
CONSTINTEGER  PRECL=30;                 ! PREPARATION FOR CALL
CONSTINTEGER  RCALL=31;                 ! THE CALL
CONSTINTEGER  RCRFR=32;                 ! RECOVER FN RESULT
CONSTINTEGER  RCRMR=33;                 ! RECOVER MAP RESULT
CONSTINTEGER  GETAD=35;                 ! GET ADDRESS OF NAME
CONSTINTEGER  RTOI1=36;                 ! REAL TO INTEGER AS INT
CONSTINTEGER  RTOI2=37;                 ! REAL TO INTEGER INTPT
CONSTINTEGER  ITOS1=38;                 ! INTEGER TO STRING AS TOSTRING
CONSTINTEGER  MNITR=39;                 ! %MONITOR
CONSTINTEGER  PPROF=40;                 ! PRINT PROFILE
CONSTINTEGER  RTFP=41;                  ! TURN RT INTO FORMAL PARAMETER
CONSTINTEGER  ONEV1=42;                 ! ON EVENT 1 PRIOR TO TRAP
CONSTINTEGER  ONEV2=43;                 ! ON EVENT 2 AFTER TRAP
CONSTINTEGER  DVSTT=44;                 ! START OF DOPE VECTOR
CONSTINTEGER  DVEND=45;                 ! END OF DV EVALUATE TOTSIZE ETC
CONSTINTEGER  FOREND=46;                ! END OF FOR LOOP
!
! CODES FOR USER WRITTEN ASSEMBLER. NATURALLY THESE ARE NOT
! MACHINE INDEPENDENT
!
CONSTINTEGER  UCNOP=50;                 ! FOR CNOPS
CONSTINTEGER  UCB1=51;                  ! ONE BYTE OPERATIONS
CONSTINTEGER  UCB2=52;                  ! FOR 2 BYTE OPERATIONE
CONSTINTEGER  UCB3=53;                  ! FOR 3 BYTE OPERATIONS
CONSTINTEGER  UCW=54;                   ! FOR WORD OPERATIONS
CONSTINTEGER  UCBW=55;                  ! FOR OPC,BYTEWORD OPERATIONE
CONSTINTEGER  UCWW=56;                  ! FOR OPC,WORD,WORD OPERAIONS
CONSTINTEGER  UCLW=57;                  ! FOR LONGWORD OPERATIONS
CONSTINTEGER  UCB2W=58;                 ! FOR OPC,B1,B2,WORD OPERATIONS
CONSTINTEGER  UCNAM=59;                 ! FOR ACESS TO NAMES FROM ASSEMBLER
!
! NOW THE BINARY OPERATIONS
!
CONSTINTEGER  ADD=128;                  ! ADDITION
CONSTINTEGER  SUB=129;                  ! SUBTRACTION
CONSTINTEGER  NONEQ=130;                ! INTEGER NONEQUIVALENCE
CONSTINTEGER  ORL=131;                  ! LOGICAL OR
CONSTINTEGER  MULT=132;                 ! MULTIPLICATION
CONSTINTEGER  INTDIV=133;               ! INTEGER DIVISION
CONSTINTEGER  REALDIV=134;              ! REAL DIVISION
CONSTINTEGER  ANDL=135;                 ! LOGICAL AND
CONSTINTEGER  RSHIFT=136;               ! LOGICAL RIGHT SHIFT
CONSTINTEGER  LSHIFT=137;               ! LOGICAL LEFT SHIFT
CONSTINTEGER  REXP=138;                 ! REAL EXPONENTIATION
CONSTINTEGER  COMP=139;                 ! COMPARISONS
CONSTINTEGER  DCOMP=140;                ! FIRST PART OF DSIDED(NEEDED?)
CONSTINTEGER  VMY=141;                  ! VECTOR MULTIPLY
CONSTINTEGER  COMB=142;                 ! COMBINE (IE ADD OF LA) ON VMY RESULTS
CONSTINTEGER  VASS=143;                 ! VARAIABLE ASSIGN WITH CHECKING
CONSTINTEGER  VJASS=144;                ! VARIABLE JAMMED ASSIGN
CONSTINTEGER  IEXP=145;                 ! INTEGER EXPONENTIAITION
CONSTINTEGER  BADJ=146;                 ! BASE ADJUST ARRAY INDEX
CONSTINTEGER  AINDX=147;                ! INDEX ARRAY(COMBINE BS&IX)
CONSTINTEGER  IFETCH=148;               ! INDEXED FETCH
CONSTINTEGER  LASS=149;                 ! ASSIGN LOCAL TEMPORARY
CONSTINTEGER  FORCK=150;                ! VALIDATE FOR
CONSTINTEGER  PRECC=151;                ! PRELIMINARY CONNCATENATION
CONSTINTEGER  CONCAT=152;               ! CONCATENATION
CONSTINTEGER  IOCPC=153;                ! CALL IOCP
CONSTINTEGER  PASS1=154;                ! PRIMARY PARAMETER ASSIGNMENT
CONSTINTEGER  PASS2=155;                ! PARAMETER PASSING POINTER PARAMS
CONSTINTEGER  PASS3=156;                ! PARAMETERPASSING ARRAY PARAMETERS
CONSTINTEGER  PASS4=157;                ! PASS A FORMAL PROCEDURE
CONSTINTEGER  PASS5=158;                ! PASS AN UNTYPE(%NAME) PARAMETER
CONSTINTEGER  PASS6=159;                ! PASS STRFN OR RECFN RESULT AREA
CONSTINTEGER  BJUMP=160;                ! BACKWARDS JUMPS
CONSTINTEGER  FJUMP=161;                ! FORWARD JUMPS
CONSTINTEGER  REMLB=162;                ! REMOVE LAB FROM LABELIST
                                        ! NEEDS TO BE TRIPLE IF COMBINED
                                        ! LABEL LIST IS USED
CONSTINTEGER  TLAB=163;                 ! TO ENTER A LABEL
CONSTINTEGER  DCLSW=164;                ! DECLARE A SWITCH ARRAY
CONSTINTEGER  SETSW=165;                ! SET A SWITCH TO "CA"
CONSTINTEGER  GOTOSW=166;               ! GO TO A SWITCH LABEL
CONSTINTEGER  STRASS1=167;              ! STRING GENERAL ASSIGNMET
CONSTINTEGER  STRASS2=168;              ! STRING FIXED LENGTH ASSNMENT
CONSTINTEGER  STRJT=169;                ! STRING JAM TRANSFER
CONSTINTEGER  AHASS=170;                ! ASSIGNMENT OF ARRAYHEADS
CONSTINTEGER  PTRAS=171;                ! ASSIGNMENT OF POINTERS
CONSTINTEGER  MAPRES=172;               ! ASSIGN MAPPING FN RESULT
CONSTINTEGER  FNRES=173;                ! ASSIGN FN RESULT
CONSTINTEGER  SCOMP=174;                ! STRING COMPARISON
CONSTINTEGER  SDCMP=175;                ! FIRST PART OF STRING D-SIDED
CONSTINTEGER  PRES1=176;                ! PRE RESOLUTION 1
CONSTINTEGER  PRES2=177;                ! PRE RESOLUTION 2
CONSTINTEGER  RESLN=178;                ! STRING RESOLUTION
CONSTINTEGER  RESFN=179;                ! RESOLUTION FINALE
CONSTINTEGER  SIGEV=180;                ! SIGNAL EVENT
CONSTINTEGER  RECASS=181;               ! WHOLE RECORD ASSIGNMENT
CONSTINTEGER  AAINC=182;                ! ARRAY ADDRESS ADJUST FOR
                                        ! RECORD RELATIVE TO ABSOLUTE
CONSTINTEGER  AHADJ=183;                ! MODIFY HEAD FOR MAPPING
CONSTINTEGER  CTGEN=184;                ! CREATE TYPE GENERAL PARAMETER
CONSTINTEGER  GETPTR=185;               ! POINTER FOR PASSING BY NAME
CONSTINTEGER  SINDX=186;                ! INDEX STRING IE CHARNO
                                        ! SAME AS AINDX FOR ALL TARGETS
                                        ! BUT PNX !
CONSTINTEGER  ZCOMP=187;                ! COMPARISONS WITH ZERO
                                        ! GENERATED BY OPTIMISER
CONSTINTEGER  CLSHIFT=188;              ! CONSTANT LOGICAL SHIFT
                                        ! GENERATED BY OPTIMISER
CONSTINTEGER  CASHIFT=189;              ! CONSTANT ARITHMETIC SHIFT
                                        ! GENERATED BYOPTIMISER
CONSTINTEGER  DVBPR=190;                ! GENERATE DV ENTRY FOR BOUND PAIR
CONSTINTEGER  RSTORE=191;               ! REGISTER TO STORE OPERATION
CONSTINTEGER  MULTX=192;                ! MULTIPLY AND EXTEND PRECISION
ENDOFFILE