*DECK CSOAHL USETEXT TEXTCS; USETEXT TEXTSS; USETEXT TXTAPSS PROC CSOAHL; # TITLE CSOAHL - ADD HISTORY LINES # BEGIN # CSOAHL # # ** CSOAHL - ADD HISTORY LINES. * * C. BRION 82/05/19. * D.K. ENDO 83/02/17 ADD FILTERED HISTORY. * * THIS PROCEDURE RECEIVES HISTORY EVENT LINES AND ADDS THEM TO THE * THE HISTORY BUFFER. * * PROC CSOAHL * * ENTRY * WCBWORD[0] = ENTRY WORD COUNT * MSGBUF[0] = TEXT LINE TO ADDED TO THE HISTORY BUFFER. * * EXIT * HISTORY BUFFER UPDATED WITH NEW TEXT LINE. * # # **** PROC CSOAHL XREF LIST. # XREF BEGIN PROC SSTETS; # SS-ENLARGE TABLE SPACE # PROC SSTRTS; # SS-RELEASE TABLE SPACE # PROC MOVE; # MACREL-MOVE MEMORY # END # **** # # * PROC CSOAHL ITEMS. # ITEM ENTCNT I; # ENTRY COUNT # ITEM NENTLOC U; # LOC OF NEXT ENTRY INTO BUF # ITEM NENTSIZ U; # NUM WORDS IN NEW ENTRY LINE# # * PROC CSOAHL EXECUTION STARTS HERE # # * HISTORY BUFFER MAY BE FULL. IF SO, REMOVE THE OLDEST EVENT LINE * ENTRY FROM THE BUFFER. # ENTCNT = HBFQL/HBFESIZ$; IF ENTCNT EQ MXHSBLCNT$ THEN BEGIN # * BUFFER FULL. REMOVE THE FIRST ENTRY. # SSTRTS(P,0,HBFESIZ$); # RELEASE OLDEST ENTRY # ENTCNT = ENTCNT - 1; END # * NOW MUST ADD EVENT LINE IN MSGBUF TO THE HISTORY BUFFER. * ALLOCATE EXTRA SPACE FOR NEXT ENTRY. # NENTLOC = HBFQL; SSTETS(P,NENTLOC,HBFESIZ$); # * MOVE NEXT ENTRY LINE INTO BUFFER. # NENTSIZ = WCB$WC[0] - 2; ENTCNT = ENTCNT + 1; MOVE(NENTSIZ,MSGBUF[0],HBFQ[ENTCNT]); # * SAVE THE AUDIENCE GROUP NUMBER, THE NPUCB ORDINAL, AND THE WORD * COUNT IN THE ENTRY. # HBF$AGRP[ENTCNT] = ABHADR[0]; HBF$NORD[ENTCNT] = ABHABN[0]; HBF$WC[ENTCNT] = NENTSIZ; END # CSOAHL # TERM