1 \fTITLE SYSTAT - V410
\r
2 SUBTTL R CLEMENTS /CHW DEC 24 69
\r
32 IFNDEF STANSW,< STANSW==0>
\r
34 IFNDEF HACKSW,< HACKSW==0>
\r
36 IFNDEF JIFSEC,<JIFSEC==^D60>
\r
38 L.BDO="B"-"A" ;B WAS TYPED
\r
39 L.DSO="D"-"A" ;D " "
\r
40 L.FSO="F"-"A" ;F " "
\r
41 L.SSO="S"-"A" ;S " "
\r
42 L.JSO="J"-"A" ;J " "
\r
43 L.EJS="H"-"A" ;H " "
\r
46 FL.HGH==1 ;HIGH SEG PARAGRAPH NEEDED
\r
47 FL.DEV==2 ;DEVICE HEADER OUTPUT
\r
48 FL.GOD==4 ;I AM [1,N]
\r
49 FL.LGI==10 ;I AM LOGGED IN
\r
50 FL.DTJ==20 ;THIS JOB DETACHED
\r
51 FL.DOR==40 ;DORMANT SEG TABLE BEING PRINTED
\r
52 FL.BRK==SIGN ;NO MORE CHS. TO I/P OR BREAK CH. SEEN
\r
54 ;STUFF WHICH HAS TO AGREE WITH MONITOR, ASIDE FROM GETTAB DEFNS
\r
88 EXTERN JOBDDT,JOBREL,JOBSYM,JOBFF
\r
91 SYSTAT: CALLI CI.RES
\r
92 MOVE P,PDP ;SETUP STACK PNTR.
\r
98 MOVE A,[SIXBIT /SYSTAT/]
\r
99 MOVSI B,(SIXBIT /TXT/)
\r
100 SETZB C,D ;CLEAR DATE & PPN
\r
104 MOVE A,XSTATS ;MY STATUS
\r
112 DNTSTO: MOVE A,XSEGPT ;READ TTY STATUS DATA
\r
125 SYS0A: HRRZ A,JOBSYM
\r
131 SETO B, ;NON DISK SYSTEM-FLAG AS UNGODLY
\r
132 TLNE A,JLOG ;LOGGED IN?
\r
133 TLO M,FL.LGI ;YES-REMEMBER IT
\r
134 TLNN B,-2 ;PROJECT 1?
\r
135 TLNN A,JLOG ;YES-LOGGED IN?
\r
137 TLO M,FL.GOD ;WE'RE GOD
\r
153 \fSYS0X: MOVN A,MTTY ;GET NUMBER OF JOBS
\r
154 ADDB A,FREE ;ADVANCE POINTER
\r
155 HRRM A,.TTY ;SETUP TABLE OF LINE NUMBERS
\r
159 LDB J,[POINT 8,B,11]
\r
164 SYS0Z: AOBJN N,SYS0Y
\r
165 SUBTTL READ JOB AND SEGMENT STATUS
\r
168 MOVE B,[XWD -NTAB,TABPTR]
\r
206 MOVE A,XCORMX ;GET SIZE OF USER CORE
\r
224 MOVEI F,[ASCIZ / at /]
\r
229 MOVEI F,[ASCIZ / on /]
\r
231 MOVE A,XDATE ;GET TODAY'S DATE
\r
243 PUSHJ P,DECPRT ;PRINT MESSAGE FOLLOWED BY DECIMAL NO.
\r
245 \f MOVEI F,[ASCIZ /Uptime /]
\r
248 PUSHJ P,GETA ;GET UPTIME
\r
251 MOVEI F,[ASCIZ /, /]
\r
254 MOVE A,@.TIM ;GET NULL TIME
\r
256 POP P,N ;SAVE FOR COMPUTING IDLE & LOST TIME
\r
257 IDIV A,N ;COMPUTE % NULL TIME
\r
259 PUSHJ P,DECPRT ;PRINT MESSAGE FOLLOWED BY DECIMAL NO.
\r
260 MOVEI F,[ASCIZ /% Null time
\r
262 Job Who Where What Size State Runtime
\r
268 SETZM CORUSE ;CLEAR TOTAL VIRT. CORE USED
\r
269 \fSYSL1: MOVE JS,@.STS
\r
275 AOS @.SEGCT ;INCREMENT HISEG USE COUNT
\r
283 SKIPA A,[SIXBIT /DET/]
\r
289 SYSL1C: MOVE A,@.PPN ;
\r
291 PUSHJ P,OCTPRT ;PRINT PRJ-PRG #
\r
292 \fSYSL1D: PUSHJ P,COMMA
\r
297 PUSHJ P,SIXBP ;PRINT SIXBIT MSG FOLLOWED BY TAB
\r
300 PUSHJ P,SIXBP ;PRINT SIXBIT MSG FOLLOWED BY TAB
\r
316 MOVEI F,[ASCIZ /K /]
\r
318 MOVSI A,(SIXBIT /^C/)
\r
323 MOVSI A,(SIXBIT /SW/)
\r
325 SYS7: LDB B,[POINT 4,JS,14]
\r
327 TSTATE: PUSHJ P,SIXBP
\r
328 PUSHJ P,TAB ;PRINT STATE AND "SW"/"SF" IF SWAPPED/& FRAGMENTED
\r
332 DUNJOB: AOBJN J,SYSL1
\r
335 \fHIGH: MOVEI F,[ASCIZ /
\r
338 Program Owner High K Users
\r
343 HIGH00: MOVE JS,@.STS
\r
347 JRST [MOVE A,[SIXBIT /(PRIV)/]
\r
349 MOVE A,[SIXBIT /(OBS)/]
\r
351 HIGH01: PUSHJ P,SIXBP
\r
352 HIGH1A: PUSHJ P,TAB
\r
356 \f;SUBROUTINE TO FIND 1ST. JOB USING A SEGMENT
\r
357 ;CALL MOVE J,SEGMENT NO.
\r
359 ; NONE FOUND RETURN
\r
361 ;AC'S B & C DESTROYED
\r
364 SEGSCN: MOVN B,JOBN
\r
366 HRR B,.SGN ;PREPARE AOBJN PTR. FOR SCANNING JBTSGN
\r
368 HRRZ C,(B) ;GET SEGMENT NO.
\r
369 HIGH06: CAIN C,(J) ;DOES IT MATCH WITH CURRENT ONE?
\r
371 AOBJN B,HIGH04 ;NO-DO AGAIN
\r
373 JUMPE A,[ MOVEI F,[ASCIZ /Job /]
\r
386 HIGH07: PUSHJ P,SIXBP
\r
387 HIGH08: PUSHJ P,TAB
\r
392 HIGH09: MOVE A,@.SWP
\r
394 HIGH10: TLNE A,1777
\r
402 MOVEI F,[ASCIZ /K /]
\r
409 DUNHGH: AOBJN J,HIGH00
\r
410 DORMNT: MOVE N,CORMAX
\r
416 MOVEI F,[ASCIZ /K Core left,/]
\r
424 MOVEI F,[ASCIZ /K,/]
\r
426 HIGH13: MOVEI F,[ASCIZ / Virt. core left = /]
\r
431 \fDEVQ: MOVE D,XDVLST
\r
439 TRNE B,ASSCON+ASSPRG
\r
446 MOVEI F,[ASCIZ /Busy devices:
\r
453 PUSHJ P,SIXBP ;PRINT SIXBIT MSG FOLLOWED BY TAB
\r
455 LDB N,[POINT 6,C,5]
\r
458 MOVEI F,[ASCIZ /AS/]
\r
466 MOVEI F,[ASCIZ /INIT/]
\r
468 DVCRLF: PUSHJ P,CRLF
\r
469 NXTDEV: MOVEI D,DEVSER(D)
\r
473 \fDEVEND: MOVEI F,[ASCIZ /No busy devices
\r
478 FINIS: JRST KILL ;YES-GO SEE IF WE SHOULD EXIT OR INTERPRET MORE CHS.
\r
482 NOCOR: MOVEI F,[ASCIZ /?NEED MORE CORE FOR DATA
\r
486 KILL: TLNE M,FL.LGI
\r
487 CALLI 0,CI.EXI ;MONRET
\r
492 KJMSG: ASCII /.KJOB/
\r
493 BYTE (7) 15,12,".",4,0
\r
494 \fGETAJ: HRLI A,(J)
\r
495 GETA: CALLI A,CI.GET
\r
501 NOWHO: TLNE M,FL.GOD
\r
502 JRST SYSL1C ;SKIP RETURN ONLY IF GOD
\r
503 MOVE A,[SIXBIT /**,**/]
\r
507 CRLF2: PUSHJ P,CRLF
\r
508 CRLF: MOVEI F,[ASCIZ /
\r
516 COLON: MOVEI CH,":"
\r
518 COMMA: MOVEI CH,","
\r
521 ;SIXTAB: PUSHJ P,SIXBP
\r
529 \fTCKTIM: IDIV A,TCKSEC ;JUNK JIFFIES
\r
540 SIXBP: MOVE BP,[XWD 440600,A]
\r
548 DECPR2: MOVEI CH,60
\r
552 RDXPRT: MOVEI CH,"-"
\r
556 RADIX1: IDIVI N,(R)
\r
565 \f;CONSTANTS FOR GETTAB UUO
\r
593 MONTAB: ASCII /-Jan-/
\r
605 \fTABPTR: XWD SIGN+0,.STS
\r
656 XLIST ;AVOID PRINTING LITERALS
\r