*DECK HUPDDAW USETEXT NIPDEF USETEXT ACB USETEXT ACNB PROC HUPDDAW(PACB,PACNB,BLKSQ,BLKDSQ); # UPDATE DATA AVAILABLE WORD # STARTIMS; # *1DC HUPDDAW * 1. PROC NAME AUTHOR DATE * HUPDDAW E. GEE 07/22/85 * * 2. FUNCTIONAL DESCRIPTION: * UPDATING INPUT AVAILABLE OR DELIVERABLE DATA FIELDS IN DATA * AVAILABLE WORD. * * 3. METHOD USED: * UPDATE NO OF DATA BLOCKS QUEUED IN ACB AND ACNB. * IF CONNECTION IS NOT LIST OFF OR TEMPORARY LIST OFF, * UPDATE NUMBER OF DELIVERABLE BLOCKS. * IF NUMBER OF DELIVERABLES BLOCKS WENT FROM ZERO TO NONZERO, * SET D BIT FLAG IN ACB. * SET FLAG TO UPDATE AIP-S DATA AVAILABLE WORD. * IF NUMBER OF DELIVERABLE BLOCKS WENT FROM NONZERO TO ZERO, * CLEAR D BIT FLAG IN ACB. * SET FLAG TO UPDATE AIP-S DATA AVAILABLE WORD. * IF NO NEED TO UPDATE AIP-S DATA AVAILABLE WORD YET, * IF NUMBER OF DATA BLOCKS QUEUED WENT FROM ZERO TO NONZERO OR * NUMBER OF DATA BLOCKS QUEUED WENT FROM NONZERO TO ZERO, * SET FLAG TO UPDATE AIP-S DATA AVAILABLE WORD. * IF AIP-S DATA AVAILABLE WORD NEEDS TO BE UPDATED, * CALL HWRAVAL TO UPDATE AIP-S DATA AVAILABLE WORD. * * 4. ENTRY PARAMETERS * PACB ADDRESS OF ACB. * PACNB ADDRESS OF ACNB. * BLKSQ VALUE FOR ADJUSTING NO OF DATA BLKS * BLKDSQ VALUE FOR ADJUSTING NO OF DELIVERABLE DATA * * 5. EXIT PARAMETERS. * NONE * * 6. COMDECKS CALLED AND SYMPL TEXT USED. * NIPDEF NIP CONSTANT DEFINITIONS * ACB APPLICATION CONTROL BLOCK TEMPLATE * ACNB APPLICATION CONNECTION BLOCK TEMPLATE * * 7. ROUTINES AND OVERLAYS CALLED. * HWRAVAL UPDATE AIP-S DATA AVAILABLE WORD * XTRACE TRACE PROCEDURE CALL. * * 8. DAYFILE MESSAGES OR OTHER IMPORTANT INFORMATION. * NONE. # STOPIMS; # INPUT VARIABLES # ITEM PACB U ; # ADDRESS OF ACB # ITEM PACNB U ; # ADDRESS OF ACNB # ITEM BLKSQ I; # VALUE FOR UPDATING NO OF DATA BLKS# ITEM BLKDSQ I; # VALUE FOR UPDATING NO OF DELIV BLK# # EXTERNAL REFERENCES # XREF PROC HWRAVAL ; # UPDATE DATA AVAILABILITY WORD # XREF PROC XTRACE ; # TRACE PROCEDURE CALL # # LOCAL VARIABLES # ITEM OLDBLKSQ U; # OLD VALUE OF ACBBLKSQ # ITEM OLDLSTBLKS U ; # OLD VALUE OF ACBLSTBLKS # ITEM UPDATEAIP B; # FLAG FOR CALLING HWRAVAL # #**********************************************************************# CONTROL EJECT; BEGIN CONTROL IFEQ DEBUG,1; XTRACE("UPDTD"); # RECORD PROCEDURE CALL # CONTROL FI; UPDATEAIP = FALSE; # INIT FLAG FOR CALLING HWRAVAL # P = PACB ; # ADDRESS OF ACB # P = PACNB ; # ADDRESS OF ACNB # OLDBLKSQ = ACBBLKSQ[0]; # CURRENT NO OF BLKS QUEUED # OLDLSTBLKS = ACBLSTBLKS[0] ; # CURRENT NO OF DELIVERABLE BLKS# ACBBLKSQ[0] = ACBBLKSQ[0] + BLKSQ; # UPDATE NO OF DATA BLKS # ACNBBLKSQ[0] = ACNBBLKSQ[0] + BLKSQ; # UPDATE NO OF BLKS QUEUED # IF (NOT ACNBLO[0] ) AND # CONNECTION NOT LIST OFF # (NOT ACNBTLO[0]) # CONNECTION NOT TEMP LIST OFF # THEN # UPDATE NO OF DELIVERABLE BLKS # BEGIN ACBLSTBLKS[0] = ACBLSTBLKS[0] + BLKDSQ; # UPDATE NO OF DELIV # IF BLKDSQ GR 0 THEN # INCREMENTED NO OF DELIVERABLES# BEGIN IF OLDLSTBLKS EQ 0 # PREVIOUS VALUE WAS ZERO # THEN # NEED TO INFORM AIP # BEGIN ACBPDATA[0] = TRUE ; # SET D BIT IN DATA AVAIL WORD # UPDATEAIP = TRUE; # SET FLAG FOR CALLING HWRAVAL # END END ELSE # DID NOT ADD DELIVERABLE DATA # BEGIN IF BLKDSQ LS 0 THEN # DECREMENTED NO OF DELIVERABLES# BEGIN IF (OLDLSTBLKS NQ 0 ) AND # PREVIOUS VALUE WAS NONZERO # (ACBLSTBLKS[0] EQ 0) # CURRENT VALUE IS NO ZERO # THEN # NEED TO INFORM AIP # BEGIN ACBPDATA[0] = FALSE; # CLEAR D BIT IN DATA AVAIL WORD# UPDATEAIP = TRUE; # SET FLAG FOR CALLING HWRAVAL # END END END END IF NOT UPDATEAIP THEN # DO NOT UPDATE D BIT IN AIP # BEGIN IF ( (OLDBLKSQ EQ 0) AND # NO DATA BLOCKS QUEUED BEFORE# (BLKSQ GR 0 ) ) OR # DATA BLOCKS QUEUED # ( (OLDBLKSQ NQ 0 ) AND # DATA BLOCKS QUEUED BEFORE # (ACBBLKSQ[0] EQ 0) ) # NO DATA BLOCKS QUEUED NOW # THEN # NEED TO INFORM AIP # BEGIN UPDATEAIP = TRUE; # SET FLAG FOR CALLING HWRAVAL # END END IF UPDATEAIP THEN # NEED TO WRITE DATA AVAIL WORD TO AIP # BEGIN HWRAVAL(P,TRUE); # WRITE DATA AVAIL WORD TO AIP # END RETURN; END TERM