      LOGICAL SPACE
      INTEGER SYSIN0(13),USERI0(43)
      COMMON /LFO$CM/SYSIN0,USERI0,SPACE
      INTEGER NUSR,CPTICK,CLRATE
      INTEGER UTYPE,LIDATE,LITIME
      INTEGER NAME(16),PROJE0(16)
      INTEGER * 4 CPTIME,IOTIME
      INTEGER GETARG,CTOI
      INTEGER BUF(102)
      INTEGER I,AP,PID,CODE
      EQUIVALENCE (NUSR,SYSIN0(11)),(CPTICK,SYSIN0(12)),(CLRATE,SYSIN0(1
     *3))
      EQUIVALENCE (UTYPE,USERI0(2)),(LIDATE,USERI0(3)),(LITIME,USERI0(4)
     *),(NAME,USERI0(5)),(PROJE0,USERI0(21)),(CPTIME,USERI0(37)),(IOTIME
     *,USERI0(39))
      SPACE=.FALSE.
      CALL GMETR$(1,LOC(SYSIN0),13,CODE,0)
      IF((GETARG(1,BUF,128).NE.-1))GOTO 10000
        DO 10001 PID=1,NUSR
          CALL LISTI0(PID)
10001   CONTINUE
10002   GOTO 10003
10000   AP=1
        GOTO 10006
10004   AP=AP+(1)
10006   IF((GETARG(AP,BUF,128).EQ.-1))GOTO 10005
          I=1
          PID=CTOI(BUF,I)
          IF((PID.LT.1))GOTO 10007
          IF((PID.GT.NUSR))GOTO 10007
            CALL LISTI0(PID)
            GOTO 10008
10007       IF((PID.NE.0))GOTO 10009
              I=1
              GOTO 10012
10010         I=I+(1)
10012         IF((BUF(I).EQ.0))GOTO 10011
                BUF(I)=MAPUP(BUF(I))
              GOTO 10010
10011         CALL LISTU0(BUF)
10009     CONTINUE
10008   GOTO 10004
10005 CONTINUE
10003 CALL SWT
      END
      SUBROUTINE LISTI0(XPID)
      INTEGER XPID
      LOGICAL SPACE
      INTEGER SYSIN0(13),USERI0(43)
      COMMON /LFO$CM/SYSIN0,USERI0,SPACE
      INTEGER NUSR,CPTICK,CLRATE
      INTEGER UTYPE,LIDATE,LITIME
      INTEGER NAME(16),PROJE0(16)
      INTEGER * 4 CPTIME,IOTIME
      INTEGER I,CODE
      REAL CPUSED,IOUSED
      INTEGER BUF(102)
      INTEGER AAAAA0(27)
      INTEGER AAAAB0(3)
      INTEGER AAAAC0(3)
      INTEGER AAAAD0(3)
      EQUIVALENCE (NUSR,SYSIN0(11)),(CPTICK,SYSIN0(12)),(CLRATE,SYSIN0(1
     *3))
      EQUIVALENCE (UTYPE,USERI0(2)),(LIDATE,USERI0(3)),(LITIME,USERI0(4)
     *),(NAME,USERI0(5)),(PROJE0,USERI0(21)),(CPTIME,USERI0(37)),(IOTIME
     *,USERI0(39))
      DATA AAAAA0/170,243,160,168,170,233,169,160,227,240,160,189,160,17
     *0,242,172,160,233,239,160,189,160,170,242,170,238,0/
      DATA AAAAB0/201,196,0/
      DATA AAAAC0/200,196,0/
      DATA AAAAD0/195,196,0/
      CALL GETUPN(XPID,1,BUF,102,I,CODE)
      IF((CODE.EQ.10))GOTO 10014
      IF((CODE.EQ.166))GOTO 10014
      GOTO 10013
10014   RETURN
10013 CALL GMETR$(4,LOC(USERI0),43,CODE,XPID)
      CPUSED=CPTIME*FLOAT(CPTICK)/1000000.0
      IOUSED=IOTIME/FLOAT(CLRATE)
      CALL PTOC(NAME,160,BUF,32)
      IF((.NOT.SPACE))GOTO 10015
        CALL PUTCH(138,-11)
        GOTO 10016
10015   SPACE=.TRUE.
10016 CALL PRINT(-11,AAAAA0,BUF,XPID,CPUSED,IOUSED)
      CALL LISTJ0(XPID,130,AAAAB0)
      CALL LISTJ0(XPID,129,AAAAC0)
      CALL LISTJ0(XPID,128,AAAAD0)
      DO 10017 I=0,127
        CALL ITOC(I,BUF,10)
        CALL LISTJ0(XPID,I,BUF)
10017 CONTINUE
10018 RETURN
      END
      SUBROUTINE LISTJ0(XPID,XFUNIT,XNAME)
      INTEGER XPID,XFUNIT
      INTEGER XNAME(1)
      INTEGER LEN,CODE
      INTEGER PTREE(256),TREE(256),PATH(180)
      INTEGER AAAAE0(15)
      INTEGER AAAAF0(36)
      DATA AAAAE0/160,160,160,170,173,179,243,160,189,160,170,243,170,23
     *8,0/
      DATA AAAAF0/160,160,160,170,173,179,243,160,189,160,240,225,244,23
     *2,238,225,237,229,160,238,239,244,160,239,226,244,225,233,238,225,
     *226,236,229,170,238,0/
      CALL GETUPN(XPID,XFUNIT,PTREE,256*2,LEN,CODE)
      IF((CODE.NE.0))GOTO 10019
        CALL PTOC(PTREE,160,TREE,256)
        CALL MKPA$(TREE,PATH,0)
        CALL PRINT(-11,AAAAE0,XNAME,PATH)
        GOTO 10020
10019   IF((CODE.NE.38))GOTO 10021
          CALL PRINT(-11,AAAAF0,XNAME)
10021 CONTINUE
10020 RETURN
      END
      SUBROUTINE LISTU0(XNAME)
      INTEGER XNAME(1)
      LOGICAL SPACE
      INTEGER SYSIN0(13),USERI0(43)
      COMMON /LFO$CM/SYSIN0,USERI0,SPACE
      INTEGER NUSR,CPTICK,CLRATE
      INTEGER UTYPE,LIDATE,LITIME
      INTEGER NAME(16),PROJE0(16)
      INTEGER * 4 CPTIME,IOTIME
      INTEGER I,CODE,XPID,STRCMP
      INTEGER BUF(102)
      EQUIVALENCE (NUSR,SYSIN0(11)),(CPTICK,SYSIN0(12)),(CLRATE,SYSIN0(1
     *3))
      EQUIVALENCE (UTYPE,USERI0(2)),(LIDATE,USERI0(3)),(LITIME,USERI0(4)
     *),(NAME,USERI0(5)),(PROJE0,USERI0(21)),(CPTIME,USERI0(37)),(IOTIME
     *,USERI0(39))
      XPID=1
      GOTO 10024
10022 XPID=XPID+(1)
10024 IF((XPID.GT.NUSR))GOTO 10023
        CALL GETUPN(XPID,1,BUF,102,I,CODE)
        IF((CODE.EQ.10))GOTO 10025
        IF((CODE.EQ.166))GOTO 10025
          CALL GMETR$(4,LOC(USERI0),43,CODE,XPID)
          CALL PTOC(NAME,160,BUF,32)
          IF((STRCMP(BUF,XNAME).NE.2))GOTO 10026
            CALL LISTI0(XPID)
10026   CONTINUE
10025 GOTO 10022
10023 RETURN
      END
C ---- Long Name Map ----
C listinfo                       listi0
C userinfo                       useri0
C listitem                       listj0
C project                        proje0
C listuinfo                      listu0
C sysinfo                        sysin0
