;X5CMD.MAC;4 6-OCT-75 15:45:23 EDIT BY PLUMMER ;1.54 ;X5CMD.MAC;3 19-SEP-75 09:41:21 EDIT BY PLUMMER ;X5CMD.MAC;2 2-JAN-75 12:26:24 EDIT BY PLUMMER ;1.53 ;X5CMD.MAC;1 2-DEC-74 10:23:02 EDIT BY PLUMMER ; 1.52 ;X5CMD.MAC;8 6-SEP-74 10:44:53 EDIT BY PLUMMER ; ADD EOL AT END ;X5CMD.MAC;7 26-JUL-74 13:19:05 EDIT BY PLUMMER ; STOBE DATA FILE WITH COPY ON WRITE IN PMAP ; ADJUST FORMAT OF DISK AV. PRINTOUT ;X5CMD.MAC;4 13-MAR-74 16:34:40 EDIT BY PLUMMER ; FLUSH OLD FORMAT COMPATIBILITY STUFF ; ADD NEW FORMAT CAPABILITY, AND DISK AVAILABILITY TYPEOUT ;X5CMD.MAC;2 11-OCT-73 12:57:50 EDIT BY PLUMMER ; ADD RFPOS AT NETL55+ ;X5CMD.MAC;5 2-OCT-73 13:14:17 EDIT BY PLUMMER ; 1.51 ; REPAIR BUGS IN GTAD TIME HANDLER ; ADD GTAD "TIME OF LAST UPDATE" PROVISIONS ; NETLOAD: BE SURE WORD-1 IS NON-ZERO OF INFO FILE ; 1.50 ; MAKE "NETLOAD" SUSPICIOUS OF FILE FORMAT ; FORMAT IMPROVEMENTS AND ADDITIONAL COMMENTS IN "NETLOAD" ; ALL NUMBER OF USERS TO "NETLOAD" TYPE OUT ; PDP-10 TENEX EXECUTIVE .DIRECTIVE XSRCVN %X5 %X5==%X5 ;CONTENTS: ; NETLOAD ;THE ROUTINES IN THIS FILE ARE ALL PART OF THE "DISTRIBUTED ; OPERATING SYSTEM" FUNCTIONS. A NORMAL EXEC MAY BE ASSEMBLED ; BY OMITTING THIS FILE. ; THIS WILL HAPPEN IF DST10X IS 0. ;NETLOAD ;PRINTS THE 5 MIN. LOAD AVERAGES FROM ; ALL COOPERATING TENEX SITES. THIS INFORMATION IS KEPT IN ; THE FILE RSYSTAT.;1 PAGE 0. ;WORD-0 OF THE PAGE RSSER VERSION # OR -1 IF BEING UPDATED ;WORD-1 IS N,,PTR WHERE N IS THE LENGTH OF THE BLOCK ASSOCIATED ; WITH EACH SITE, AND PTR IS THE RELATIVE ADDRESS OF THE FIRST ; SITE BLOCK. ;WORD-5 IS GTAD FORMAT TIME OF LAST UPDATE ;WORD-10 (IF PTR .GE. 10) HAS SIZE,,OFFSET OF SITE INFO ;EACH SITE BLOCK HAS THE FOLLOWING THINGS OF INTEREST IN IT ; (OFFSET IS 6 FOR OLD FORMAT (N .LE. 10): ;WORD-0: SITE NUMBER ;WORD-4: -1 IF DATA IS GOOD FOR THIS SITE ;WORD-(0 + OFFSET): AMOUNT OF USER CORE (IF N .GT. 10) ;WORD-(1 + OFFSET): 1 MIN. LOAD AV. ;WORD-(2 + OFFSET): 5 MIN. LOAD AV. ;WORD-(3 + OFFSET): 15 MIN. LOAD AV. ;WORD-(4 + OFFSET): NUMBER OF USERS ;WORD-(5 + OFFSET): NUMBER OF DISK PAGES IN USE ;WORD-(6 + OFFSET): NUMBER OF FREE DISK PAGES .NETLO: HRROI 2,[ASCIZ /RSYSTAT.;1/] CALL TRYGTJ ;ASSIGN AND STACK JFN NETLO0: ERROR MOVE 2,[44B5+1B19+1B25] ;READ, THAWED OPENF JRST NETLO0 ;GO TYPE ERROR HRLZS 1 ;FROM FILE PAGE 0 MOVE 2,[400000,,] ;TO ADDRESS SPACE MOVSI 3,(1B2!1B9) ;READ, COPY ON WRITE PMAP MOVES NSBUF ;MAKE PAGE PRIVATE (STROBE DATA) SKIPGE NSBUF+0 ;CHECK VERSION NUMBER UERR [ASCIZ / DATA BASE BEING UPDATED/] ; INSPECT TIME OF LAST UPDATE TO SEE IF DATA IS VALID NETLO2: GTAD ;NOW SUB 1,NSBUF+5 ;MINUS LAST UPDATE TRNE 1,1B18 ;SECONDS WRAPPED AROUND? ADD 1,[-1,,^D<24*60*60>];YES, BORROW A DAY SKIPE NSBUF+1 ;PARANOIA CAIL 1,^D<5*60> ;UPDATED WITHIN LAST 5 MINUTES? UERR [ASCIZ / SERVER DEAD/] NETLO4: HRRZ 1,NSBUF+1 ;CHECK PTR CAILE 1,10 ;TEST FOR NEW FORMAT TLOA Z,F1 ;YES, REMEMBER THAT TLZ Z,F1 ;NO NETL41: TLNE Z,F1 JRST NETL43 NETL42: TYPE < SITE LOAD USERS > JRST NETL44 NETL43: TYPE < SITE LOAD USERS DISK AV. > NETL44: HRRZ D,NSBUF+1 ;PTR TO FIRST SITE BLOCK MOVEI E,6 ;OFFSET FOR OLD FILES TLNE Z,F1 ;NEW FORMAT? HRRZ E,NSBUF+10 ;YES, USE IT ADDI E,0(D) ;D AND E DIFFER BY OFFSET NETLO5: MOVE 1,COJFN SKIPN NSBUF(D) ;END OF ALL SITES? JRST NETLOX ;YES, DONE. MOVE 3,NSBUF+4(D) CAME 3,[-1] ;DO WE HAVE GOOD DATA FOR THIS ONE? JRST NETLO9 ;NO SKIP IT MOVEI 2," " BOUT MOVE 2,NSBUF+0(D) ;GET BACK SITE NUMBER MOVEI 3,^D10 CVHST ;PRINT HOST NAME, OR ... NOUT ;NUMBER IF THAT FAILS JFCL ;BE APPROPRIATELY SUSPICIOUS OF THE FILE FORMAT NETL55: PRINT TAB RFPOS MOVEI 2,0(2) CAIG 2,^D10 ;WAS FIRST TAB ENOUGH? PRINT TAB ;NO SKIPGE 2,NSBUF+2(E) ;THAT SITE'S 5 MIN. LOAD AV JRST NETL57 ;MUST BE POSITIVE MOVE 3,2 TLZN 3,(1B1) JRST NETL56 ;LOAD LESS THAN 0.5 -- OK TLNN 3,370000 ;EXPONENT TOO BIG? TLNN 3,400 ;NOT NORMALIZED FLOATING NUMBER? JRST NETL57 ;YES. NETL56: MOVE 3,[1B4+1B6+2B23+2B29] ;FORCE, WITH ".", 2 BEFORE AND AFTER FLOUT NETL57: TYPE < ? > TYPE < > MOVE 3,[1B2+3B17+12] ;RIGHT JUST, 3 COLS, DECIMAL SKIPL 2,NSBUF+4(E) ;NUMBER OF USERS ON THAT SYSTEM NOUT TYPE < ?> NETLO6: TLNN Z,F1 JRST NETL69 ;OLD FORMAT MOVE 2,NSBUF+6(E) ;DISK SPACE AVAILABLE MOVE 3,[1B2!11B17!^D10] ;RIGHT JUSTIFIED, 9 COLS, DECIMAL NOUT CALL JERRC NETL69: PRINT EOL NETLO9: HLRZ 1,NSBUF+1 ;SITE BLOCK LENGTH ADDI D,0(1) ;BUMP TO NEXT BLOCK ADDI E,0(1) JRST NETLO5 ;AND DO IT NETLOX: SETOM 1 MOVE 2,[400000,,] PMAP ;FLUSH PAGE PRINT EOL JRST RLJFNS ;GO RELEASE THE JFN END EXEC