.TITLE USFOVR .IDENT /V7.05/ ;**************************************************************** ; ; PROCESS A "USE /FU" COMMAND REQUEST ; ; THIS OVERLAY IS LOADED AND CALLED WHEN THE LOGGING TASK ; DISPATCHER RECEIVES A REQUEST FROM ...USE FOR A "FULL" ; STATISTICS REQUEST. THESE STATISTICS ARE MAINTAINED IN ; THE DYNAMIC STORAGE REGION BY THE ACCOUNTING SYSTEM. ; ; VERSION: V6 OCTOBER 1979 ; VERSION: V7 JANUARY 1981 ; ; STEVE THOMPSON SCHOOL OF CHEMICAL ENGINEERING ; OLIN HALL ; CORNELL UNIVERSITY ; ITHACA NY 14853 ; ; ; *** W A R N I N G *** ; ; THE SUCCESSFUL OPERATION OF THIS OVERLAY DEPENDS ON THE ; ACCOUNTING SYSTEM'S DATA BASE IN POOL NOT BEING OUT OF ; ORDER DUE TO AN EDIT OF ACNODE.MAC. SEE THE COMMENTS IN THE ; SOURCE FILE FOR ACNODE.TSK ; ; REVISION HISTORY ; ---------------- ; ; SMT753 7-OCT-81 CHANGED NAMES OF CONDITIONAL ASSEMBLY ; PARAMETERS; SEE THE FILES MODIFY.TXT AND ; CONDEF.MAC FOR DETAILS. ; ; SMT762 9-OCT-81 ADDED SUPPORT FOR BATCH V3 CALLS TO THE ; "USE" COMMAND AND SUPPORT FOR THE BATCH/ ; INTERACTIVE LOAD FEATURE. ; ; SMT769 12-OCT-81 CHANGED TO CENTRALISED BATCH DEVICE NAME ; ; SMT850 24-MAY-83 ADDED "INTERACTIVE CPU" FIELD ; ;**************************************************************** .MCALL HWDDF$ HWDDF$ ; DEFINE HARDWARE PARAMETERS $USFEP:: ; OVERLAY TRANSFER ADDRESS .IF DF AA$USE ! AA$BAT MOV B.STCB(R5),R0 ; GET TCB ADDRESS OF REQUESTING TASK CLR B.ELAP(R5) ; ASSUME THAT NO DATA IS AVAILABLE CLR B.ELAP+2(R5) ; (N.B. B.STCB=B.ELAP) CALL $SWSTK,15$ ; SWITCH STACKS MOV $ACCHD,R1 ;; GET ACCOUNTING LISTHEAD ADDRESS BEQ 10$ ;; IF EQ, NO DATA IS AVAILABLE YET ADD #6,R1 ;; POINT TO BEGINNING OF DATA IN POOL ADD #B.ELAP,R5 ;; POINT R5 TO LOCATION TO RECEIVE DATA ;; (R5 RESTORED ON RETURNING TO USER STATE) MTPS #PR7 ;; LOCK OUT INTERRUPTS MOV (R1)+,(R5)+ ;;; TRANSFER TOTAL ELAPSED TIME MOV (R1)+,(R5)+ ;;; MOV (R1)+,(R5)+ ;;; TRANSFER EXECUTIVE TIME MOV (R1)+,(R5)+ ;;; MOV (R1)+,(R5)+ ;;; TRANSFER NULL TIME MOV (R1)+,(R5)+ ;;; MTPS #0 ;;; ENABLE INTERRUPTS .IF DF AA$LDR MOV (R1)+,(R5)+ ;; TRANSFER LOADER REQUESTS MOV (R1)+,(R5)+ ;; .ENDC ; DF AA$LDR .IF DF AA$QIO MOV (R1)+,(R5)+ ;; TRANSFER I/O REQUESTS MOV (R1)+,(R5)+ ;; .ENDC ; DF AA$QIO .IF DF AA$CSW MOV (R1)+,(R5)+ ;; TRANSFER CONTEXT SWITCHES MOV (R1)+,(R5)+ ;; .ENDC ; DF AA$CSW .IF DF AA$BAT MOV BATTOT,(R5)+ ;; TRANSFER TOTAL BATCH TIME (EXITED) MOV BATTOT+2,(R5)+ ;; .IFTF MOV INTTOT,(R5)+ ;; TRANSFER TOTAL INTERACTIVE TIME (EXITED) MOV INTTOT+2,(R5)+ ;; MOV $ACCHD,R2 ;; GET ACCOUNTING LISTHEAD ADDRESS BEQ 10$ ;; IF EQ THAT'S ALL WE CAN SEND 5$: MOV (R2),R2 ;; GET ADDRESS OF NEXT TASK ACCOUNTING BLOCK BEQ 10$ ;; IF EQ, END OF ACCOUNTING LIST .IFT MOV B.UCB(R2),R1 ;; GET TI: UCB FOR THIS TASK MOV U.DCB(R1),R1 ;; THEN POINT TO THE DCB CMP D.NAM(R1),BATDEV ;; TASK IN BATCH SYSTEM? BNE 6$ ;; IF NE NO MTPS #PR7 ;; YES, LOCK OUT INTERRUPTS ADD B.CPU+2(R2),-6(R5) ;;; ADD IN THE CPU TIME ADC -10(R5) ;;; ADD B.CPU(R2),-10(R5) ;;; MTPS #0 ;;; ENABLE INTERRUPTS BR 5$ ;; KEEP LOOKING 6$: ;; REF. LABEL .IFTF MTPS #PR7 ;; LOCK OUT INTERRUPTS ADD B.CPU+2(R2),-2(R5) ;;; INCREMENT INTERACTIVE TIME ADC -4(R5) ;;; ADD B.CPU(R2),-4(R5) ;;; MTPS #0 ;;; BR 5$ ;; .ENDC ; DF AA$BAT 10$: CALLR $EXRQN ;; RESTART REQUESTING TASK .ENDC ; DF AA$USE ! AA$BAT 15$: RETURN ; .END