Trailing-Edge
-
PDP-10 Archives
-
bb-x130a-sb
-
users.mac
There are 5 other files named users.mac in the archive. Click here to see a list.
TITLE USERS - TYPE OUT WHO'S ON THE SYSTEM %1(3)
SUBTTL R.CLEMENTS/RCC/PFC/DRL 1-JAN-80
;***COPYRIGHT 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.***
SEARCH UUOSYM
LOC 137
BYTE (3)0(9)1(6)0(18)6
RELOC
;1 SKIP [OPR] JOBS
;2 SKIP JOBS UNDER PTY'S, SKIP [SELF]
;3 SKIP REMOTE OPR JOBS
;4 DO 1 BIG OUTSTR
;5 OUTPUT NODE_TTY
;6 ADD Jnn= to display
F=0
A=1
B=2
C=3
D=4
T=5
T1=6
T2=7
N=10
N1=11
CH=12
WD=13
BP=14
CT=15
J=16
P=17
PDLL=30
DEFINE GET (A,B,C)<
XLIST
MOVE T,[XWD A,B]
GETTAB T,
MOVEI T,0
IFNB <C>< MOVEM T,C>
LIST
>
R.REPT==400000
JNA==40000
USRMAX==^D512
OUTSIZ==^D4000
USERS: JFCL
RESET
MOVE P,[IOWD PDLL,PDL]
MOVE F,BFCTIN ;[4]
MOVEM F,BUFCNT ;[4]
MOVE F,BFPTIN ;[4]
MOVEM F,BUFPNT ;[4]
MOVEI F,0
GETPPN T, ;GET MY PPN [2]
JFCL ; [2]
MOVEM T,MYPPN# ; [2]
GET 22,11 ;GET PTY RANGE [2]
JUMPE T,[SETOM FIRPTY ; [2]
JRST .+2] ; [2]
HLRZM T,FIRPTY# ; [2]
MOVEI T,-1(T) ; [2]
ADD T,FIRPTY ; [2]
MOVEM T,LASPTY# ; [2]
GET 2,16 ;IDENTIFY OPERATOR [3]
SKIPN T ;SEE IF KNOWN [3]
MOVE T,[1,,2] ;DEFAULT [3]
MOVEM T,OPRPPN# ;STORE FOR LATER [3]
GET 15,11,SEGPTR
MOVNI T,(T) ;-NUMBER OF JOBS
MOVEM T,MJOBN
MOVSI A,(T) ;AOBJN COUNTER
LOOP1: MOVSI T,(A)
GETTAB T,
MOVEI T,0
MOVEM T,JBTSTS(A)
MOVSI T,(A)
HRRI T,2 ;JBTPPN
GETTAB T,
MOVEI T,0
MOVEM T,JBTPPN(A)
MOVSI T,(A)
HRRI T,3 ;JBTPRG
GETTAB T,
MOVEI T,0
MOVEM T,JBTPRG(A)
MOVSI T,(A)
HRRI T,31
GETTAB T,
MOVEI T,0
MOVEM T,JBTNM1(A)
MOVSI T,(A)
HRRI T,32
GETTAB T,
MOVEI T,0
MOVEM T,JBTNM2(A)
MOVSI T,(A)
HRRI T,10
GETTAB T,
MOVEI T,0
HRRZS T
SKIPE T
PEEK T,
MOVEM T,JBTTTY(A)
HLRZ T1,T ;GET GENERIC [2]
CAIE T1,'TTY' ;SEE IF ATTACHED TTY [2]
JRST LOOPOK ;NO--OK [2]
SKIPGE FIRPTY ;SEE IF PTYS [2]
JRST LOOPOK ;NO--MUST BE OK [2]
HRLZ T1,T ;GET OCTAL PART [2]
MOVEI T,0 ;CLEAR RESULT [2]
LOOPX1: JUMPE T1,LOOPXX ;ALL DONE [2]
LSH T1,3 ;DROP OCTAL [2]
LSHC T,3 ;GET DIGIT [2]
JRST LOOPX1 ;LOOP FOR ALL [2]
LOOPXX: CAML T,FIRPTY ;IS .LT. FIRST PTY [2]
CAMLE T,LASPTY ;OR .GT. LAST [2]
JRST LOOPOK ;THEN OK [2]
SETZM JBTPPN(A) ;ELSE, BATCH OR OPSER--KILL [2]
LOOPOK: AOBJN A,LOOP1
;NOW CLEAR OUT UNDEFINED JOBS
HRLZ A,MJOBN
LOOP2: MOVE T,JBTSTS(A)
TLNN T,JNA
SETZM JBTPPN(A)
AOBJN A,LOOP2
;NOW DUMP THE DATA
HRLZ A,MJOBN
LOOP3: SKIPE C,JBTPPN(A)
CAMN C,MYPPN ;SKIP SELF [2]
JRST NEXT3
XOR C,OPRPPN ;COMPARE WITH OPERATOR [1]
JUMPE C,NEXT3 ; [1]
HLL C,JBTPPN(A) ;REFETCH PROJECT [3]
TLC C,100 ;SEE IF [100+S,,2] [3]
TLZE C,77 ;(CLEAR S) [3]
JUMPE C,NEXT3 ;SKIP IF REMOTE [3]
HLRZ N,JBTPPN(A)
PUSHJ P,OCT6
PUSHJ P,COMMA
HRRZ N,JBTPPN(A)
PUSHJ P,OCTTAB
MOVE T,JBTNM1(A)
PUSHJ P,SIXALL
MOVE T,JBTNM2(A)
PUSHJ P,SIXSP
MOVE T,JBTPRG(A)
PUSHJ P,SIXSP
HRLZ B,MJOBN ;FIND ALL WITH THAT PPN
TRZ F,R.REPT
MOVE C,JBTPPN(A) ;RESTORE TARGET PPN [3]
LOOP4: CAME C,JBTPPN(B)
JRST NEXT4
TROE F,R.REPT ; [2]
PUSHJ P,COMMA
MOVEI CH,"J" ;PUT OUT JOB FIELD [6]
PUSHJ P,TYO ; [6]
HRRZ N,B ;JOB NUMBER [6]
PUSHJ P,DECP ;OUT IT [6]
MOVEI CH,"=" ;BREAK FIELD [6]
PUSHJ P,TYO ; [6]
HLRZ T,JBTTTY(B) ;GET TTY [5]
JUMPE T,[MOVEI CH,"D" ; DETATCHED [5]
JRST DOTTY] ; [5]
CAIE T,'TTY' ;SEE IF REAL TTY [5]
JRST NOTTTY ;NO--OUTPUT LITERAL [5]
MOVEI CH,"T" ;TTY [5]
DOTTY: PUSHJ P,TYO ; [5]
HRLZ T,JBTTTY(B) ;GET NUMBER [5]
SKIPA ; [5]
NOTTTY: MOVE T,JBTTTY(B) ;GET LITERAL VALUE [5]
PUSHJ P,SIXSS ; [5]
MOVE T,JBTTTY(B)
GTNTN. T,
JRST NEXT5
MOVEI CH,"="
PUSHJ P,TYO
HLRZ N,T
PUSHJ P,OCTP
MOVEI CH,"_"
PUSHJ P,TYO
HRRZ N,T
PUSHJ P,OCTP
NEXT5: SETZM JBTPPN(B)
NEXT4: AOBJN B,LOOP4
PUSHJ P,CRLF
NEXT3: AOBJN A,LOOP3
MOVEI 1,0 ;[4]
IDPB 1,BUFPNT ;[4]
OUTSTR BUFFER ;[4]
CALLI 1,12
CALLI 12
OCTTAB: PUSHJ P,OCTP
TAB: MOVEI CH,11
JRST TYO
OCT6: CAIG N,77777
PUSHJ P,SPACE
CAIG N,7777
PUSHJ P,SPACE
CAIG N,777
PUSHJ P,SPACE
CAIG N,77
PUSHJ P,SPACE
CAIG N,7
PUSHJ P,SPACE
OCTP: IDIVI N,10
HRLM N1,0(P)
SKIPE N
PUSHJ P,OCTP
HLRZ CH,0(P)
ADDI CH,"0"
JRST TYO
SPACE: MOVEI CH,40
JRST TYO
SIXALL: MOVE T1,[440600,,T]
SIXAL: ILDB CH,T1
ADDI CH,40
PUSHJ P,TYO
TLNE T1,770000
JRST SIXAL
POPJ P,0
SIXSP: PUSHJ P,SIXALL
JRST SPACE
DECP: IDIVI N,12
HRLM N1,0(P)
SKIPE N
PUSHJ P,DECP
HLRZ CH,0(P)
ADDI CH,"0"
JRST TYO
;SUBRS
CRLF: MOVEI T,[ASCIZ /
/]
MSG: HRLI T,440700
MSGL: ILDB CH,T
JUMPE CH,CPOPJ
PUSHJ P,TYO
JRST MSGL
COMMA: MOVEI CH,","
JRST TYO
CPOPJ: POPJ P,0
SIXSS: MOVE T1,[440600,,T]
SIXSL: ILDB CH,T1
JUMPE CH,CPOPJ
ADDI CH,40
PUSHJ P,TYO
TLNE T1,770000
JRST SIXSL
POPJ P,0
TYO: SOSE BUFCNT ;[4]
JRST TYOI ;[4]
MOVEI J,0 ;[4]
IDPB J,BUFPNT ;[4]
OUTSTR BUFFER ;[4]
MOVE J,BFCTIN ;[4]
MOVEM J,BUFCNT ;[4]
MOVE J,BFPTIN ;[4]
MOVEM J,BUFPNT ;[4]
TYOI: IDPB CH,BUFPNT ;[4]
POPJ P,
SEGPTR: 0
MJOBN: 0
BUFFER: BLOCK <OUTSIZ+1>/5 ;[4]
BFPTIN: POINT 7,BUFFER ;[4]
BUFPNT: BLOCK 1 ;[4]
BFCTIN: OUTSIZ ;[4]
BUFCNT: BLOCK 1 ;[4]
JBTSTS: BLOCK USRMAX
JBTPPN: BLOCK USRMAX
JBTNM1: BLOCK USRMAX
JBTNM2: BLOCK USRMAX
JBTPRG: BLOCK USRMAX
JBTTTY: BLOCK USRMAX
PDL: BLOCK PDLL
END USERS