	IMPLICIT INTEGER (A-Z)
	INTEGER*2 UIC(2),FUIC(2)
	BYTE IDEV(16),CHR,UNITRM(64),BUSRNM(14)
	CHARACTER DEVNAM*16,CHAR*1,USERS(128)*14,CUSRNM*14,TERM(64)*29
	CHARACTER FMT1*60,FMT2*60
	DIMENSION UICS(128),JPIBUF(4)
	EQUIVALENCE (CHAR,CHR),(UIC(1),IUIC),(FUIC(1),JUIC)
	EQUIVALENCE (BUSRNM(1),CUSRNM(1:1))
	DATA FMT1/
     1	       56H(1X,I2,1X,AX,I1,3X,Z8,2X,'[',O3,',',O3,']',2X,A14,2X,A)/
	DATA FMT2/
     1	       56H(1X,I2,1X,AX,I2,2X,Z8,2X,'[',O3,',',O3,']',2X,A14,2X,A)/
	OPEN(UNIT=10,NAME='DBA0:[BORNEMAN]LOC.TXT',TYPE='OLD',READONLY)
	USER=0
	JNDX=1
	DO 3 I=1,64
	READ(10,1005,END=4,ERR=3)TERM(JNDX)(1:3),UNITRM(JNDX),TERM(JNDX)(4:29)
1005	FORMAT(A3,I1,20X,A26)
	IF(TERM(JNDX)(1:3).EQ.'   ') GOTO 3
	JNDX=JNDX+1
3	CONTINUE
4	CLOSE(UNIT=10)
	OPEN(UNIT=10,NAME='DBA0:[SYSMGR]USERS.DAT',TYPE='OLD',READONLY)
	INDEX=1
5	READ(10,1002,END=7)USERS(INDEX),FUIC(2),FUIC(1)
1002	FORMAT(A14,1X,O3,1X,O3)
	UICS(INDEX)=JUIC
	INDEX=INDEX+1
	GOTO 5
7	CALL DEVINI
10	CALL DEVLST(IDEV,UNIT,PID,IUIC,EOF)
	IF(EOF.NE.0) GOTO 100
	IF(PID.EQ.0) GOTO 10
	LSTCHR=0
	DO 20 I=1,16
	CHR=IDEV(I)
	IF(IDEV(I).EQ.' ') GOTO 30
	IF(IDEV(I).LT.' ') GOTO 20
	LSTCHR=LSTCHR+1
	IF(LSTCHR.EQ.1) DEVNAM(1:1)=CHAR
	IF(LSTCHR.GT.1) DEVNAM(1:LSTCHR)=DEVNAM(1:LSTCHR-1)//CHAR
20	CONTINUE
	LSTCHR=16
30	IF(DEVNAM(1:2).NE.'TT'.AND.DEVNAM(1:2).NE.'OP') GOTO 10
	LNDX=1
	DO 35 I=1,JNDX
	IF(DEVNAM(1:3).EQ.TERM(I)(1:3).AND.UNIT.EQ.UNITRM(I)) LNDX=I
35	CONTINUE
	IF(IUIC.NE.'00080020'X) GOTO 37
	CUSRNM(1:14)='login'
	GOTO 50
37	JPIBUF(1)='031C000F'X		!CODE & LENGTH
	JPIBUF(2)=%LOC(BUSRNM)		!WHERE TO PUT NAME
	JPIBUF(3)=%LOC(JPIBUF(3))	!WHERE TO PUT LENGTH OF NAME
	JPIBUF(4)=0			!THAT'S IT
	STS=SYS$GETJPI(,%REF(PID),%VAL(0),%REF(JPIBUF),
     1		        %VAL(0),%VAL(0),%VAL(0))
	IF((STS.AND.1).NE.1) CALL EXIT(STS)
	DO 38 K=JPIBUF(3)+1,14
	CUSRNM(K:K)=' '
38	CONTINUE
	IF(CUSRNM(1:1).NE.'_') GOTO 50
	CUSRNM(1:14)=' '
	DO 40 I=1,INDEX-1
	IF(IUIC.NE.UICS(I)) GOTO 40
	CUSRNM(1:14)=USERS(I)(1:14)
	GOTO 50
40	CONTINUE
50	USER=USER+1
	DO 60 I=29,4,-1
	IF(TERM(LNDX)(I:I).LE.' ') GOTO 60
	LSTRMC=I
	GOTO 70
60	CONTINUE
	LSTRMC=4
70	ENCODE(1,1005,FMT1(12:12))LSTCHR
	ENCODE(1,1005,FMT2(12:12))LSTCHR
1005	FORMAT(I1)
	IF(UNIT.LE.9) WRITE(6,FMT1)USER,DEVNAM(1:LSTCHR),
     1			        UNIT,PID,UIC(2),UIC(1),CUSRNM(1:14),
     2				TERM(LNDX)(4:LSTRMC)
	IF(UNIT.GT.9) WRITE(6,FMT2)USER,DEVNAM(1:LSTCHR),
     1			        UNIT,PID,UIC(2),UIC(1),CUSRNM(1:14),
     2				TERM(LNDX)(4:LSTRMC)
	GOTO 10
100	CONTINUE
	END
