cdc:nos2.source:nam5871:hupddaw
Table of Contents
HUPDDAW
Table Of Contents
- [00005] PROC HUPDDAW(PACB,PACNB,BLKSQ,BLKDSQ)
Source Code
- HUPDDAW.txt
- *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<ACB> = PACB ; # ADDRESS OF ACB #
- P<ACNB> = 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<ACB>,TRUE); # WRITE DATA AVAIL WORD TO AIP #
- END
- RETURN;
- END
- TERM
cdc/nos2.source/nam5871/hupddaw.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator