MDPAGE.MAC;2/AU/-BF=MDPAGE.VGN;1 \ -2,2 .IDENT /V01.03/ -9,9 ; VERSION: 1.03 -11 ; ; MODIFICATIONS: ; ; AG039 SKIP FIRST PCB IF RESIDENT LOADER ; ; LMB004 DISPLAY UP TIME FOR ALL SYSTEMS ; ; RVT01 DISPLAY % IDLE TIME (ONLY IF SYSLOG IS RUNNING) % -196,,/;LMB004/ .IFF ;DF R$$MPL MOV $ABTIM,-(SP) ;; PUT CURRENT TIME ON STACK CMP (SP),$MDBUF+ABTIM ;; DID IT OVERFLOW? BHIS 97$ ;; NO, WE'RE STILL GOING UP INC $MDBUF+ABTIM-2 ;; ADD ONE TO HIGH ORDER TIMER 97$: MOV (SP)+,$MDBUF+ABTIM ;; AND STORE NEW LOW ORDER -272,273,/;AG039/ 140$: MOV $PARHD,R5 ;; STORE ADDRESS OF FIRST 141$: MOV P.REL(R5),R4 ;; PARTITION BNE 142$ ;; NOT LOADER MOV (R5),R5 ;; SKIP LOADER BR 141$ ;; USE NEXT PCB (ASSUME ONE THERE) 142$: -290,,/;AG039/ TST P.REL(R4) ;; IS IT THE LOADER? BEQ 145$ ;; YES, SKIP IT -/OUT:/,,/;RVT01/ NULTIM=0342 ; SEE SYSLOG FOR THIS OFFSET .MCALL QIOW$S,MRKT$S,WTSE$S ; THESE ARE OFFSETS INTO $MDBUF PNULL=500. PTIME=PNULL+2 MOV $ACCHD,R2 ; GET NODE BLOCK BEQ 99$ ; NONE ; FIND DELTA NULL TIME MOV NULTIM+2(R2),R1 ; LOW ORDER MOV R1,R2 SUB PNULL+$MDBUF,R1 BPL 1$ ADD #100000,R1 ; OVERFLOW 1$: MOV R2,PNULL+$MDBUF ; FIND DELTA TOTAL-TIME MOV $TIMEX,R2 MOV R2,R3 SUB PTIME+$MDBUF,R2 BPL 2$ ADD #100000,R2 2$: MOV R3,PTIME+$MDBUF MUL #100.,R1 ; 100 * NULL-TIME / TOTAL-TIME CLR R0 DIV R2,R0 MOV R0,R1 ; CONVERT & PRINT MOV #EDTBUF,R0 MOV #13012,R2 CALL $CBTA MVN #EDTBUF,$MDIDL,2. 99$: -504,521,/;LMB004/ .IF DF R$$EIS RL = R1 ; LOW ORDER DIVIDEND RH = R0 ; HIGH ORDER DIVIDEND RD = R2 ; DIVISOR .MACRO DIVIDE DIV RD,RH .ENDM .IFF ;DF R$$EIS RL = R2 ; LOW ORDER DIVIDEND RH = R1 ; HIGH ORDER DIVIDEND RD = R0 ; DIVISOR .MACRO DIVIDE CALL $DDIV .ENDM .ENDC ;DF R$$EIS TST $MDALV+2 BEQ 20$ MOV $MDBUF+ABTIM,RL ; CURRENT TIME SUB $MDBTM,RL ; LOW ORDER DIFFERENCE MOV $MDBUF+ABTIM-2,RH SBC RH ; BORROW FROM LOW ORDER SUB SUB $MDBTM-2,RH MOV #K$$TPS*60.,RD ;mov #10.,rd ;;;;;;;; temp ; IF WE ARE CLEVER, SYSLOG & ACC ARE KEEPING THE TIME IN A ; DOUBLE WORD, SO WE CAN USE THAT AS THE "UP" TIME. .IF DF S$$ACC ; SYSLOG USES "T$$ACC" MOV $TIMEX,RL MOV $TIMEX+2,RH .ENDC ; T$$ACC DIVIDE ; IN MINUTES MOV RH,RL CLR RH MOV #60.,RD DIVIDE ; NOW IN HOURS MOV RL,MIN ; REMAINDER IS MINUTES MOV RH,RL CLR RH MOV #24.,RD DIVIDE ; NOW IN DAYS MOV RL,HOUR ; REMAINDER IS HOURS MOV RH,DAY -535,535,/;LMB004/ /