!
! RECORDFORMAT FOR ALL THE OPTION AND FLAG VARAIBLES
!
RECORDFORMAT  PARMF(INTEGER  BITS1,BITS2,TTOPUT,
      BYTEINTEGER  LET,DYNAMIC,LINE,TRACE,ARR,DBUG,CHK,DIAG,OPT,FREE,
      LIST,CPRMODE,COMPILER,Z,Y,PROF,INHCODE,DCOMP,FAULTY,X,STACK,MAP,S1,S2)
IF  HOST=PERQ OR  HOST=IBM OR  HOST=IBMXA START 
RECORDFORMAT  LEVELF(INTEGER  RBASE, DIAGINF, RAL, FLAG, L, M, NMDECS, ONWORD, ONINF,
         LABEL, JROUND, UNATT FORMATS, PSIZE, ENTRYAD, DISPLAY, AUXSBASE, 
         NAMES,HALFINTEGER  SNMAX,SN,RESSIZE,CLEVEL,INTEGERARRAY  AVL WSP(0:4),
         INTEGER  SET)
FINISH  ELSE  START 
RECORDFORMAT  LEVELF(INTEGER  RBASE, DIAGINF, RAL, FLAG, L, M, NMDECS, ONWORD, ONINF,
         LABEL, JROUND, UNATT FORMATS, PSIZE, ENTRYAD, DISPLAY, AUXSBASE, 
         NAMES,HALFINTEGER  SNMAX,SN,RESSIZE,CLEVEL,INTEGERARRAY  AVL WSP(0:4),
         INTEGER  SET)
FINISH 
RECORDFORMAT  WORKAF(INTEGER  NNAMES,CCSIZE,DSIZE,ASL MAX,ASL CUR BTM,
      CONST PTR,CONST BTM,LASTTRIP,WKFILEAD,WKFILEK,FILE ADDR,RELEASE,
      AASL0,CONST LIMIT,RTCOUNT,ARTOP,AMAINEP,DICTBASE,SP2,
      INTEGERNAME  LINE,STRING (9)LADATE,
      BYTEINTEGERARRAYNAME  CC,A,LETT,
      INTEGERARRAYNAME  WORD,TAGS,CTABLE,
      RECORD (LEVELF)ARRAYNAME  LEVELINF,
      INTEGERARRAY  PLABS,PLINK(0:31))

IF  HOST=PERQ OR  HOST=IBM OR  HOST=IBMXA START 
RECORDFORMAT  RD((INTEGER  S1 OR  HALF  PTYPE,BYTE  XB,FLAG),
      (LONGREAL  LR OR  (INTEGER  D OR  REAL  R),
      INTEGER  XTRA OR  HALF  H0,H1,H2,H3 OR  BYTE  B0,B1,B2,B3,B4,B5,B6,B7))
RECORDFORMAT  TAGF((HALFINTEGER  PTYPE,UIOJ,SNDISP,ACC,SLINK,KFORM OR  C 
      INTEGER  S1,S2,S3),INTEGER  LINK)
RECORDFORMAT  TRIPF(BYTE  OPERN,OPTYPE,CNT,DPTH,
      HALFINTEGER  FLAGS,PUSE,FLINK,BLINK,INTEGER  X1,
      RECORD (RD) OPND1,OPND2)
RECORDFORMAT  LISTF((HALFINTEGER  PTYPE,(HALF  UIOJ OR  BYTE  XB,FLAG),
      HALF  SNDISP,ACC,SLINK,KFORM OR   INTEGER  S1,S2,S3),INTEGER  LINK)
FINISH  ELSE  START 
RECORDFORMAT  RD((INTEGER  S1 OR  HALF  PTYPE,BYTE  XB,FLAG),
      (LONGREAL  LR OR  (INTEGER  D OR  REAL  R),
      INTEGER  XTRA OR  HALF  H0,H1,H2,H3 OR  BYTE  B0,B1,B2,B3,B4,B5,B6,B7))
RECORDFORMAT  TAGF((HALFINTEGER  PTYPE,UIOJ,SNDISP,ACC,SLINK,KFORM OR  C 
      INTEGER  S1,S2,S3),INTEGER  LINK)
RECORDFORMAT  TRIPF(BYTE  OPERN,OPTYPE,CNT,DPTH,
      HALFINTEGER  FLAGS,PUSE,FLINK,BLINK,INTEGER  X1,
      RECORD (RD) OPND1,OPND2)
RECORDFORMAT  LISTF((HALFINTEGER  PTYPE,(HALF  UIOJ OR  BYTE  XB,FLAG),
      HALF  SNDISP,ACC,SLINK,KFORM OR   INTEGER  S1,S2,S3),INTEGER  LINK)
FINISH 
!
! TRIPF_FLAGS SIGNIFY AS FOLLOWS
CONSTINTEGER  LEAVE STACKED=2****0;     ! SET LEAVE RESULT IN ESTACK
CONSTINTEGER  LOADOP1=2****1;           ! OPERAND 1 NEEDS LOADING
CONSTINTEGER  LOADOP2=2****2;           ! OPERAND 2 NEEDS LOADING
CONSTINTEGER  NOTINREG=2****3;          ! PREVENT REG OPTIMISNG
                                        ! OF TEMPS OVER LOOPS&JUMPS
CONSTINTEGER  USE ESTACK=2****4;        ! KEEP DUPLICATE IN ESTACK
CONSTINTEGER  USE MSTACK=2****5;        ! PUT DUPLICAT ON MSTACK
CONSTINTEGER  CONSTANTOP=2****6;        ! ONE OPERAND IS CONSTANT(FOR FOLDING)
CONSTINTEGER  COMMUTABLE=2****7;        ! OPERATION IS COMMUTABLE
CONSTINTEGER  ASS LEVEL=2****14;        ! ASSEMBLER LEVEL OPERATION
CONSTINTEGER  DONT OPT=2****15;         ! DONT DUPLICATE THIS RESULT
                                        ! USED FOR BYTE PTR & OTHER SODS!
!
RECORDFORMAT  EMASFHDRF(INTEGER  ENDRA,STARTRA,FBYTESIZE,W3,W4,W5,W6,W7)
                                        ! FORMAT FOR ARRAY HEADS
! %END %OF  %FILE "ERCC07.TRIMP_TFORM1S"