.TITLE HST$DE - DELETE A HISTOGRAM .IDENT /04MAY7/ ;15:20:00, EM ; .ENTRY HST$DE - DELETE A HISTOGRAM ;+ ; H S T $ D E ; ; PURPOSE: THIS ROUTINE DELETES A HISTOGRAM AND FREES ; RESOURCES ASSOCIATED WITH IT. ; ; INTERFACE: CALLING SEQUENCE: ; CALL HST$DE ; ; INPUT: R3=ADDRESS OF HDB ; ; EXIT CONDITIONS: ; HISTOGRAM IS DELETED AND HDB MEMORY IS ; RETURNED TO THE HDB POOL. ; ; UNCHANGED REGISTERS: R3,R4,45 ; CHANGED REGISTERS: R0,R1,R2 ; ; 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 ; 21-NOV-75 MK ADVANCES HDB CHAIN POINTER TO AVOID LOSING ; CHAIN ; 26-JAN-76 MK UNDO PREVIOUS REVISION (NOT NEEDED WITH NEW ; HISTDA) ; 02-FEB-77 NS CHANGE GLOBAL NAMES IN HCOM1 TO AVOID NAME ; CONFLICTS. ; HDBCHN=H.DBCH, HDBFHD=H.DBFH ; HDBPTR=H.DBPT, MAXHST=H.MXHT ; 04-MAY-77 EM UPDATED TO CONFORM TO STANDARDS ; HST$DE:: MOV #H.DBPT,R0 ;POINT TO NUMBER TABLE MOV #H.MXHT,R1 1$: CMP (R0)+,R3 ;LOOK FOR POINTER TO HDB BEQ 2$ ;FOUND SOB R1,1$ BR 3$ ;NOT FOUND 2$: CLR -(R0) ;DELETE NUMBER ENTRY 3$: CALL HST$PO ;PURGE OVERFLOWS MOV #H.DBCH,R0 ;FIND PREVIOUS HDB IN CHAIN 4$: CMP (R0),R3 BEQ 5$ MOV (R0),R0 BR 4$ 5$: MOV (R3),(R0) ;UNLINK CURRENT HDB MOV #2*HD1.SZ,R1 ;SET 1-PARAM HDB SIZE BITB #2,HDB.PA(R3) ;2-PARAM HDB? BEQ 6$ MOV #2*HD2.SZ,R1 ;SET 2-PARAM HDB SIZE 6$: MOV #H.DBFH,R0 ;GET HDB POOL HEAD MOV R3,R2 ;GET HDB ADRESS CALL $RLCB ;RELEASE HDB TO POOL RETURN .END