.TITLE MONIT ; ; PROGRAM TO MONITOR AND RECORD AVAILABLE CPU TIME. MONIT RUNS AT ; MINIMUN PRIORITY (1) IN AN INFINITE COUNT LOOP. THE COUNTER IS ; RECORDED IN A DISK FILE (MONIT.DAT) AND RESET EVERY 5 MINUTES. ; ; WRITTEN 0CTOBER 1977 R B FRENCH THE BOEING COMPANY ; TASK BUILD FILE ; ; ; MONIT,MONIT/SH=MONIT ; / ; PRI=1 ; PAR=MCR ; LIBR=SYSRES:RO ; STACK=64 ; UNITS=1 ; / ; .MCALL DIR$,RDEF$,MRKT$,GTIM$,EXIT$S .MCALL FDBDF$,FDAT$A,FDRC$A,FDOP$A,NMBLK$,FSRSZ$ .MCALL OPEN$W,OPEN$A,PUT$,CLOSE$ START: SETF ;SET FLOATING POINT MODE CLRF R0 ;CLEAR COUNTER (R0) 10$: OPEN$A #FDB ;OPEN THE FILE FOR APPEND BCC 30$ ;BRANCH IF ALL OKAY CMPB #-26.,FDB+F.ERR ;IS IT NO SUCH FILE? BNE EXIT ;IF NOT, GO EXIT OPEN$W #FDB ;CREATE THE FILE BR 30$ 20$: ADDF INC,R0 ;INCREMENT THE COUNTER DIR$ #RDEF ;MARK TIME OCCURED YET? TST 0 BEQ 20$ ;IF NOT, KEEP COUNTING OPEN$A #FDB ;OPEN THE FILE FOR APPEND STF R0,DATA ;SAVE THE COUNTER CLRF R0 ;AND CLEAR IT 30$: DIR$ #GTIM ;GET TIME DATA PUT$ #FDB ;WRITE IT ALL TO DISK CLOSE$ ;AND CLOSE IT DIR$ #MRKT ;ISSUE THE MARK TIME BR 20$ ;AND GO BACK TO COUNTING EXIT: EXIT$S ; INC: .FLT2 1. DATA: .WORD 0,0 ;COUNTER RESULTS TIME: .WORD 0,0,0,0,0,0,0,0 RDEF: RDEF$ 1 MRKT: MRKT$ 1,5,3 ;MARK TIME FOR 5 MINUTES GTIM: GTIM$ TIME FSRSZ$ 1 FDB: FDBDF$ FDAT$A R.FIX,,16. FDRC$A ,DATA,16. FDOP$A 1,,NMBLK,FO.WRT NMBLK: NMBLK$ MONIT,DAT .END START