.TITLE HST$CL - ROUTINE TO CLEAR A HISTOGRAM .IDENT /04MAY7/ ;15:00:00, EM ; .ENTRY HST$CL - ROUTINE TO CLEAR A HISTOGRAM ;+ ; H S T $ C L ; ; PURPOSE: THIS ROUTINE CLEARS A HISTOGRAM TO ZEROS. ; OVERFLOW ENTRIES ASSOCIATED WITH THE HISTOGRAM ARE ; REMOVED FROM THE OVERFLOW TABLE. ; ; INTERFACE: CALLING SEQUENCE: ; CALL HST$CL ; ; INPUT: R3=ADDRESS OF HDB ; EXIT CONDITIONS: ; UNCHANGED REGISTERS: R3,R4,R5 ; CHANGED REGISTERS: R0,R1,R2 ; ; EVENT FLAG 23. IS USED BY THIS SUBROUTINE. ; ; LANGUAGE: MACRO-11 ; ; RESTRICTIONS: NOT FORTRAN-CALLABLE. THIS ROUTINE IS AN ; INTERNAL ROUTINE TO THE HISTOGRAM PACKAGE ; AND IS NOT INTENDED FOR GENERAL USE. ;- ; REVISIONS: ; 01-JUN-75 MK WRITTEN ; 14-DEC-76 MK TRY TO REPEAT SEND IF OUT OF NODES ; 02-FEB-77 NS CHANGE GLOBAL NAMES IN HCOM1 TO AVOID NAME ; CONFLICTS. EFLG=H.EFLG ; 04-MAY-77 EM UPDATED TO CONFORM TO STANDARDS ; .MCALL CLEF$S,SDAT$C,WTSE$S,WSIG$S ; MSG: .BYTE 0,4 ;CLEAR MSG FOR HSTMGE .BYTE H.EFLG,0 START: .WORD 0 SIZE: .WORD 0 ; .ENABL LSB HST$CL:: MOV HDB.ST(R3),START ;SET START MOV HDB.SZ(R3),SIZE ;SET SIZE MOVB #7,MSG ;SET TO CLEAR CORE BITB #HFL.DK,HDB.FL(R3) ;CORE OR DISK? BEQ 1$ ;CORE INCB MSG ;SET TO CLEAR DISK 1$: BISB #HFL.IN,HDB.FL(R3) ;SET INHIBIT CLEF$S #H.EFLG 2$: SDAT$C HSTMGE,MSG ;SEND CLEAR MSG TO HSTMGE BCC 3$ ;DID IT GO? WSIG$S ;NO - WAIT AND TRY AGAIN BR 2$ 3$: WTSE$S #H.EFLG CALL HST$PO ;PURGE OVERFLOWS CLR HDB.RJ(R3) ;CLEAR REJ EVENT COUNT CLRB HDB.RJ+2(R3) BICB #HFL.IN,HDB.FL(R3) ;RESET INHIBIT RETURN .END