EXTERNALROUTINE  PROCLIST(STRING (255)S)
!
EXTERNALINTEGERFNSPEC  DCONNECT(STRING (31)INDEX, FILE,
      INTEGER  FSYS, MODE, APF, INTEGERNAME  SEG, GAP)
!
!<Logfile formats
constinteger  TOPLOG = 5
constinteger  TOP FE NO = 7
constinteger  NSI = 0
constinteger  X25 = 1
constinteger  FEP IO BUFF SIZE = 2048;  ! bytes in each control buffer
constinteger  MAXTCPNAME = 15    {TCP-name length}
                                 {Kent TCP names have max 15 chars).
      recordformat  c 
FEP DETAILF(integer  INPUT STREAM, OUTPUT STREAM,
      IN BUFF DISC ADDR, OUT BUFF DISC ADDR,
      IN BUFF DISC BLK LIM, OUT BUFF DISC BLK LIM,
      IN BUFF CON ADDR, OUT BUFF CON ADDR,
      IN BUFF OFFSET, OUT BUFF OFFSET, IN BUFF LENGTH, OUT BUFF LENGTH,
      INPUT CURSOR, OUTPUT CURSOR)
!
      recordformat  c 
FEPF(record (FEP DETAILF)array  FEP DETAILS(NSI:X25), integer  AVAILABLE)
!
      recordformat  c 
LF(string (11)NAME, integer  FSYS, DISC ADDR, STATE)
!
      recordformat  C 
PROCDATF(string (6)USER, string (MAXTCPNAME)TCPNAME, byteinteger  LOGKEY,
      byteinteger  INVOC, PROTOCOL, NODENO, FSYS,
      integer  LOGSNO,
      byteinteger  SITE, SP1, SP2, REASON,
      integer  ID, PROCESS, PREV WARN, SESSEND,
      byteinteger  GETMODE, PREEMPT, BLNK, LINK)
!
      recordformat  c 
LOGF HDF(integer  LOGMAPST,SPARE0,
      byteinteger  FREEHD,LIVEHD,BACKHD,SPARE,
      integer  FES FOUND,
      byteintegerarray  FE USECOUNT(0:TOP FE NO),
      record (LF)array  LOGS(0:TOPLOG),
      record (FEPF)array  FEPS(0:TOP FE NO),
      record (PROCDATF)array  PROCLIST(0:255),
      integer  LEND)
!
      recordformat  c 
TMODEF(halfinteger  FLAGS1, FLAGS2,
{.04}  byteinteger  PROMPTCHAR, ENDCHAR,
{.06}  bytearray  BREAKBIT1(0:3) {%or %halfintegerarray BREAKBIT2(0:1))} ,
{.0A}  byteinteger  PADS, RPTBUF, LINELIMIT, PAGELENG,
{.0E}  byteintegerARRAY  TABVEC(0:7),
{.16}  byteinteger  CR,ESC,DEL,CAN, SP1,SP2,SP3,SP4,SP5,SP6)
      {length of this format is X20 bytes}

!>
!
!
INTEGER  J, SEG, GAP
RECORD (LOGFHDF)NAME  LOGH
RECORD (PROCDATF)ARRAYNAME  PROCLIST
RECORD (PROCDATF)NAME  P
!
!
      SEG = 0
      GAP = 0
      J = DCONNECT("VOLUMS", "#LOGMAP", -1, 11, 0, SEG, GAP)
      RETURN  UNLESS  J = 0
!
      LOGH == RECORD(SEG << 18 + X'10000')
      PROCLIST == LOGH_PROCLIST
!
      J = LOGH_BACKHD
      WHILE  J # 255 CYCLE 
         P == PROCLIST(J)
         PRINTSTRING(P_USER)
         WRITE(P_SITE, 1)
         NEWLINE
         J = P_BLNK
      REPEAT 
END 
ENDOFFILE