!
!***********************************************************************
!*                                                                     *
!*                 Declarations for shareable basegla                  *
!*                                                                     *
!***********************************************************************
!
!
!***********************************************************************
!*                                                                     *
!*                              Constants                              *
!*                                                                     *
!***********************************************************************
!
CONSTINTEGER  MAXCONF = 96; ! This MUST be one less than some prime number.
CONSTINTEGER  MAXFD=48
CONSTINTEGER  MAXPROMPTSIZE=108
CONSTINTEGER  MAXSIGLEVEL = 7
CONSTINTEGER  PCHARLIM = 615
CONSTINTEGER  PRMLIM = 32; ! Max numbers of parameters for a command.
CONSTINTEGER  RPLIM = 512
CONSTINTEGER  SOURCE LEVELS = 15
CONSTINTEGER  STREAM MAXREC=256
!
!***********************************************************************
!*                                                                     *
!*                           Record Formats                            *
!*                                                                     *
!***********************************************************************
!
RECORDFORMAT  CONFF(STRING  (18) FILE,  C 
   INTEGER  CONAD, SIZE, HOLE, MODE, USE, FSYS)
RECORDFORMAT  DUFFGLAF(INTEGER  FROM,TO)
RECORDFORMAT  FDF(INTEGER  LINK, DSNUM,  C 
      BYTEINTEGER  STATUS, ACCESSROUTE, VALID ACTION, CUR STATE,  C 
      BYTEINTEGER  MODE OF USE, MODE, FILE ORG, DEV CODE,  C 
      BYTEINTEGER  REC TYPE, FLAGS, LM, RM,  C 
      INTEGER  ASVAR, AREC, RECSIZE, MINREC, MAXREC, MAXSIZE,  C 
      LASTREC, CONAD, CURREC, CUR, END, TRANSFERS, DARECNUM,  C 
      CURSIZE, DATASTART, C 
      (STRING  (31) IDEN OR  STRING (27) TEMPIDEN, BYTEINTEGER  F1,F2,F3,F4), C 
      INTEGER  KEYDESC0, KEYDESC1, RECSIZEDESC0, RECSIZEDESC1, C 
      BYTE  INTEGER  F77FLAG, F77FORM, F77ACCESS, F77STATUS, C 
      INTEGER  F77RECL, F77NREC, IDADDR, C 
      BYTE  INTEGER  F77BLANK, F77UFD, SPARE1, SPARE2)
RECORDFORMAT  IOSTATF(INTEGER  INPOS, STRING  (15) INTMESS)
RECORDFORMAT  ITF(INTEGER  INBASE, INLENGTH, INPOINTER, OUTBASE,  C 
   OUTLENGTH, OUTPOINTER, OUTBUSY, OMWAITING, INTTWAITING,  C 
   JNBASE, JNCUR, JNMAX, LASTFREE, SPARE5, SPARE6, SPARE7)
RECORDFORMAT  LLINFOF(INTEGER  TAB,GLA,ISTK) {Load level info held by LOADER}
RECORDFORMAT  PD(INTEGER  BOUND,ADDRESS)
RECORDFORMAT  SCTABF(STRING (31) NAME, INTEGER  I,J)
RECORDFORMAT  SD(INTEGER  BOUND, ADDRESS, CURRENT OFFSET, CLASS, C 
    INTEGER  PARM COUNT, STRING  ARRAY  NAME  KWDN, C 
    RECORD (PD) ARRAY  NAME  PARM VAL DET)
RECORDFORMAT  SDIRF(STRING (31) NAME, INTEGER  CONAD,TYPE) {While old/new}
! %RECORDFORMAT SDIRF(%STRING(31)NAME, %INTEGER CONAD)
RECORDFORMAT  SIGDATAF(INTEGER  PC, LNB, CLASS, SUBCLASS,  C 
   INTEGERARRAY  A(0 : 17))
RECORDFORMAT  SSLF(INTEGER  START,LEN)
!
!***********************************************************************
!*                                                                     *
!*                         SSOWN Record Format                         *
!*                                                                     *
!***********************************************************************
!
RECORDFORMAT  SSOWNF( C 
{>> These long integers must not be moved from here. Addresses are fixed<<} C 
LONGINTEGER  DYNDR {S#DYNAMICREF entry desc},UNSATDR {S#UNSATREF entry desc},
{..........TOTALS owns..........} C 
BYTEINTEGERARRAY  INBUFF (0 : 255),INTMESS(1 : 9),
OUTBUFF (0 : 133)     {ALLOW ROOM FOR ADDED NL},PARSTRING(0 : 255),
PCHAR (0:PCHARLIM-1),PINDEX (1 : PRMLIM)    {MAX LIKELY NO OF PARAMS},
RPS (0:RPLIM),
{**********} C 
INTEGER  ABGLA {START OF BGLA},ACTIVE { CHECKS FOR LOOPS},ADCSL,AIOSTAT,
AITBUFFER,ALLCOMMAND,ALLCONNECT,APAGETURNS,
BCIBLANKS,BCIFREE,BCIOLDEST,BOPMESSSTART,
BOPMESSLEN {FOR BROADCAST OPER MESSAGES},BROADCASTFILEBASE,CALLBCISTARTED,CONTROLMODE,
CKBITS,CURFSYS,CURLENGTH,CURPAR,CURRKI,
DATAECHO {FOR INPUT ECHO IN OBEY AND BATCH},DELIVERYCHANGED,DEVARRAYBASE,DFDFINSDC,
DFDFOUTSDC,FDLEVEL,FEPMODE,FIRST {  1 while printing first stack frame, some other value for subsequent frames},
GCSTARTED {in GETCOMMAND},GLOBPTR,GLSL,ICRSA,
ICRSE,INHIBITMESSAGES,INHIBITPSYSMES,INHIBITSPOOLER,
INITFIO1,INITFIO2,INTINPROGRESS,INTQ,
ITINLENGTH,ITOUTLENGTH,LASTEP,LASTMASTERREADCH,
LASTSWEP,LATEST {IMPOSSIBLE VALUE - What is?},LOCATE PRMS,MAXDEVARRAY,
MTCLOSEMODE {FULL UNLOAD BY DEFAULT},OLDPAGETURNS,OPERNO { NO OF OPER IN USE.  INITIAL VALUE MUST BE VALID FOR 'OR'ING FOR DPON.},
OPMODE,PCOUNT,PMAP,QPARMF,
RCHLIM,RCLB,RCLF,RPTR,
RRCBASE,RRCTOP,RSYMLIM,SAVEIDPOINTER,
SEQ {in NEXTTEMP},SESSKIC,SSADIRINF,SSARRAYDIAG,
SSDATAECHO,SSINITWORKSIZE,SSINVOCATION,SSITWIDTH,
SSJOURNAL,SSLASTDFN { Last non-zero director error number translated by DIRTOSS},
SSLDELIM,SSMONITOR,SSNOBLANKLINES {WHEN SET TO 1 SUPPRESS BLANK LINES ON I.T.},
SSNOTE,SSOPERNO {NO OF OPER STARTED FROM},SSOWNFSYS {FSYS FOR THIS USER},
SSRDELIM,SSREASON {REASON FOR STARTING 0=INTERACTIVE,1=STARTED FROM OPER,2=BATCH},SSTERMINALTYPE,
SSTTHIDE, SSTTACT, SSTTKN { Used for INT:K control - must stay together and in this order},
STARTSECS,TIDYFSTARTED,TOPFD { HIGHEST FD USED SO FAR THIS SESSION},TTYPE,
UNASSPATTERN,USEOPTSTARTED,
{**********} C 
INTEGERARRAY  GL IOCP PARM (1:3), GLOBAD(0:20), PAPTR (1:PRMLIM),
SAVEIDATA (-2:20,0:3), SSFDMAP (1:99),
{**********} C 
INTEGERNAME  ICREVS, KINSTRS, PREVIC, RCODE {POINTS TO COMREG(24) RETURN CODE},
{**********} C 
LONGINTEGER  SSINITPARMS {INITIAL PARMS OPTION}, 
{**********} C 
LONGREAL  LASTCPUTIME,OLDCPUTIME,
{**********} C 
RECORD (CONFF)ARRAY  CONF (0 : MAXCONF),
RECORD (FDF)ARRAY  FD (1 : MAXFD),
RECORD (SIGDATAF)ARRAY  SIGDATA (1 : MAXSIGLEVEL),
{**********} C 
RECORD (FDF)NAME  INF,
RECORD (IOSTATF)NAME  IOSTAT {STATUS OF INPUT FROM FEP},
RECORD (ITF)NAME  IT,
RECORD (FDF)NAME  OUTF,
{**********} C 
STRING (1)   ACTD,
STRING (31)  BASEFILE,
STRING (8)   BOUTPUTDEVICE,
STRING (255) CLICOMM,CLIPARM,CSL { CONTROL STREAM LINE},
STRING (6)   CURFOWNER,
STRING (18)  CURFILE,
STRING (11)  CURFNAME,CURMEMBER,
STRING (255) EP6S {STRING FOR ENTRY POINT 6 - COMPILER INPUT},
STRING (11)  HOLDAVD,
STRING (50)  LASTNAME,
STRING (1)   NULP,
STRING (31)  PDPREFIX,
STRING (MAXPROMPTSIZE) PROMPTTEXT,
STRING (255) RCLH,
STRING (18)  SESSMONFILE,
STRING (11)  SSCFAULTS {COMPILER FAULTS OPTION},
STRING (8)   SSSTARTTIME,
STRING (3)   SSSUFFIX {ADDED TO NAMES OF TEMP FILES},
STRING (31)  STARTFILE,
{..........TOTALS externals..........} C 
INTEGER  DIRDISCON,INDEFAULT,INITSTACKSIZE,LOADMONITOR,
OUTDEFAULT,SCARCITYFOUND,SSADEFOPT {ADDRESS OF DEFAULT OPTION FILE IN BASEFILE},
SSASESSDIR,SSASTACKSIZE,SSATEMPDIR,SSAUXDR0,SSAUXDR1,
SSCURAUX,SSCURBGLA {CURRENT TOP OF BGLA},SSDIRAD,
SSINHIBIT, SSINTCOUNT {THESE TWO MUST STAY TOGETHER},
SSMAXAUX,SSMAXBGLA {LAST BYTE OF BGLA},SSMAXFSIZE {MAXIMUM FILE SIZE ALLOWED},
SSOPENUSED,SSSCCOUNT,SSSCTABLE {ADDRESS OF SCTABLE},SSUSTACKUSED,
SSUSTACKSIZE,STOPPING,TEMPAVDSET {USED BY PLU PACKAGES},
{**********} C 
INTEGERARRAY  SSCOMREG(0:60),
{**********} C 
STRING (11) AVD { Active directory. **** N.B. Also used by SEPRTNS ****},
STRING (31) OPTIONSFILE,
STRING (40) SSFNAME {NAME FOR PSYSMES}, 
STRING (6)  SSOWNER,
{..........LOADER owns..........} C 
INTEGER  DYNDATAPC,DYNPC,EUDR0,EUDR1,LANG,
MACRODR0,MACRODR1,MAINDR1,MAXUGLA,
MONCONAD,SSDYNREFAD,SSTOPADIR,SSUGLASIZE,TEMPISTK,
TOPSCT,UNSATPC,USEFORDESCAD {Descriptor ad used by USEFOR},USERSTACKLNB,
{**********} C 
INTEGERARRAY  AREASTART(1:7) {Starting addresses of obj file areas},
NEXTAD(1:3),SSLIBERR(1:4),
{**********} C 
INTEGERARRAYNAME  RLH,PLH,TLH,SLH,
{**********} C 
INTEGERNAME  PERMOFFSET {Nextfree in perm entry table - mapped on to NEXTAD(2)},
TEMPOFFSET { Nextfree in temp entry tables - mapped on to NEXTAD(3)},
{**********} C 
LONGREAL  MONTIMEBASE,
{**********} C 
RECORD (DUFFGLAF)ARRAY  DUFFGLA(0:63),
RECORD (SDIRF)ARRAY  SSADIR(-1:16) {Search dir list},
RECORD (SSLF)ARRAY  SSLOADTAB(0:3),
{**********} C 
RECORD (SCTABF)ARRAYNAME  SCT,
{**********} C 
STRING (31) USEFORLASTNAME,
{**********} C 
STRING (31)ARRAY  PARTLOADED(0:2),
{..........LOADER externals..........} C 
INTEGER  LOADINPROGRESS,LOADLEVEL,MONFILEAD,MONFILETOP,
NOWARNINGS,PERMISTK,USTB,
{**********} C 
RECORD (LLINFOF)ARRAY  LLINFO(-1:31),
{**********} C 
STRING (31) MONFILE,
{..........FILEOP owns..........} C 
BYTEINTEGERARRAY  STINBUFF(1:Stream MAXREC) {for stream input },
STOUTBUFF (1:Stream MAXREC+2)     {for stream output},
{**********} C 
INTEGER  CURRENT FD,IRGAP {INTER-RECORD GAP},
{..........CLI owns..........} C 
INTEGER  COMMENTF,SAVE BASE,WARNING NUMBER,SAVE LIM,SAVE PTR,
ACCUMULATING,STATE,LAST PROMPT,CLI INITIALISED,
{**********} C 
STRING (5) SPECHARS,
STRING (3) CONTU,XSTMT,
STRING (1) NULLSTRING,
STRING (80) D DELIM 1, D DELIM 2,
{**********} C 
RECORD (PD) ACCUMULATION,
{..........CLI externals..........} C 
INTEGER  BRACKET FLAG,
{..........MACR owns..........} C 
INTEGER  SCADDR,SHORT CUT,LIM,SCLIM,PERMANENCE,SLVL,WSP BASE,WSP LIM,WSP PTR,
{**********} C 
RECORD (SD)ARRAY  SOURCE DETAIL (0:SOURCE LEVELS+1),
{**********} C 
INTEGERNAME  OFFSET,
{**********} C 
RECORD (SD)NAME  CURRENT IN DETAILS,
{..........MACR externals..........} C 
INTEGER  IN SOURCE,IN CHAR ADDR,LAST CHAR READ,KWD MAX SIZE,MAC INITIALISED,
{..........FDIAG owns - now spare..........} C 
INTEGERARRAY  SPARE1(0:120),
{Extra OWNS defined since format first constructed} C 
{Subsystem diagnostic monitoring owns} C 
INTEGER  SSMONAD,DIAGMON,FULLDUMP,
{Extras} C 
DYNREFSTART,DYNREFEND,PRELOADFAILED,UNSHAREDBGLA,
OLDDCPU,OLDKINS,
{SPARE FIELDS} C 
INTEGERARRAY  SPARE(0:716))
!
!
CONSTRECORD (SSOWNF)NAME  SSOWN=X'00100000';  ! In #STK
!
!