.TITLE HISTFL - HISTOGRAM FLUSH .IDENT /10MAY7/ ;09:45:00 LV ; .ENTRY HISTFL - HISTOGRAM FLUSH ;+ ; H I S T F L ; ; PURPOSE: THIS ROUTINE ASSURES THAT ALL PENDING HISTOGRAM ; UPDATES ARE DONE AND THE QUEUES ARE EMPTY. ALL ; HISTOGRAM ENTRIES ARE LOCKED OUT WHILE THE QUEUES ; ARE BEING FLUSHED. ; ; INTERFACE: CALLING SEQUENCE: (FORTRAN-CALLABLE SUBROUTINE) ; CALL HISTFL ; ; EVENT FLAG 23. IS USED BY THIS SUBROUTINE. ; ; LANGUAGE: MACRO-11 ; ; REFERENCES: "HISTOGRAMMING AND HISTOGRAM PLOTTING" ;- ; REVISIONS: ; 04-JUN-75 MK WRITTEN ; 02-FEB-77 NS CHANGE GLOBAL NAMES IN HCOM1 TO AVOID NAME ; CONFLICTS. CQ=H.CORQ, CQPTR=H.CQPT, ; CUPDRQ=H.CUPQ, EFLG=H.EFLG, ENABL=H.ENBL, ; LOCK=H.LOCK. ; 10-MAY-77 LV UPDATED TO CONFORM TO STANDARDS ; .MCALL WSIG$S,CLEF$S,SDAT$C,WTSE$S ; ; CORE UPDATE MESSAGE ; CUPMSG: .BYTE 1,4 ;TYPE, COUNT .BYTE H.EFLG,0 ;EVENT FLAG QSTART: .WORD H.CORQ ;QUEUE START QLGTH: .WORD 0 ;QUEUE LENGTH ; HISTFL:: TST H.ENBL ;PACKAGE ENABLED? BEQ RTN2 ;NO CALL HST$LK ;INTERLOCK MOV #-1,H.LOCK ;SET 'HARD' LOCK 1$: TST H.CUPQ ;RUN DOWN CORE UPDATES BEQ 2$ WSIG$S BR 1$ 2$: MOV H.CQPT,R0 ;COMPUTE ENTRIES IN CORE QUEUE SUB #H.CORQ,R0 BEQ RTN1 ;NONE ASR R0 MOV R0,QLGTH ;SET UP CORE UPDATE MSG CLEF$S #H.EFLG SDAT$C HSTMGE,CUPMSG ;DO CORE UPDATE WTSE$S #H.EFLG MOV #H.CORQ,H.CQPT ;SET CORE QUEUE EMPTY RTN1: CLR H.LOCK ;RESET LOCK CALL HST$UN ;REMOVE INTERLOCK RTN2: RETURN .END