! ! FIRST THE OPERAND FLAG CONSTANTS ! %CONSTINTEGER SCONST=0; ! CONST UPTO 64 BITS %CONSTINTEGER LCONST=1; ! CONST LONGER THAN SCONST %CONSTINTEGER DNAME=2; ! NAME BY DICTIONARY NO %CONSTINTEGER ADDRNAME=5; ! ADDRESS AS NAME %CONSTINTEGER LOCALIR=7; ! BASE DISP REF IN CURRENT STACK FRAME %CONSTINTEGER REFTRIP=8; ! REFERENCE TO A TRIPLE ! ! 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 FLOAT=12; ! CONVERT INTEGER TO REAL %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 GETAD=20; ! GET ADDRESS OF NAME %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 ! ! CODES FOR USER WRITTEN ASSEMBLER. NATURALLY THESE ARE NOT ! MACHINE INDEPENDENT ! %CONSTINTEGER UCNOP=40; ! FOR CNOPS %CONSTINTEGER UCB1=41; ! ONE BYTE OPERATIONS %CONSTINTEGER UCB2=42; ! FOR 2 BYTE OPERATIONE %CONSTINTEGER UCB3=43; ! FOR 3 BYTE OPERATIONS %CONSTINTEGER UCW=44; ! FOR WORD OPERATIONS %CONSTINTEGER UCBW=45; ! FOR OPC,BYTEWORD OPERATIONE %CONSTINTEGER UCWW=46; ! FOR OPC,WORD,WORD OPERAIONS %CONSTINTEGER UCLW=47; ! FOR LONGWORD OPERATIONS %CONSTINTEGER UCB2W=48; ! FOR OPC,B1,B2,WORD OPERATIONS ! ! 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 IDIV=133; ! INTEGER DIVISION %CONSTINTEGER RDIV=134; ! REAL DIVISION %CONSTINTEGER ANDL=135; ! LOGICAL AND %CONSTINTEGER LSHIFT=136; ! LOGICAL LEFT SHIFT %CONSTINTEGER RSHIFT=137; ! LOGICAL RIGHT 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 BSADD=147; ! ADD IN ARRAYBASE %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 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 %ENDOFFILE