*DECK NETWTQ
USETEXT AIPDEF
USETEXT NP$NWL
*IF,DEF,XFR
USETEXT NX$ACBX
*ENDIF
PROC NETWTQ(NQTIME);
BEGIN
#
*1DC NETWTQ
*
* 1. PROC NAME AUTHOR DATE
* NETWTQ YIU YIP 07/18/85
*
* 2. FUNCTIONAL DESCRIPTION.
* THIS ROUTINE PERFORMS TWO TWO SECONDS NETWAIT AND
* A NETWAIT FOR THE REST OF THE TIME.
*
* 3. METHOD USED.
* IF NQTIME LQ SHORT$WAIT
* THEN
* NETWAIT(NQTIME,0)
* ELSE
* BEGIN
* XFR$QB[0] = TRUE
* NETWAIT(SHORT$WAIT,0)
* IF XFR$COM2[0]
* THEN
* BEGIN
* GOTO ENDQT
* END
* IF SD$FLAG EQ 0
* THEN
* BEGIN
* IF HEAD EQ FOOT
* THEN
* BEGIN
* IF ID$FLAG EQ 0
* THEN
* BEGIN
* IF (NQTIME - SHORT$WAIT) LQ SHORT$WAIT
* THEN
* BEGIN
* NETWAIT((NQTIME - SHORT$WAIT),0)
* END
* ELSE
* BEGIN
* NETWAIT(SHORT$WAIT,0)
* IF XFR$COM2[0]
* THEN
* BEGIN
* GOTO ENDQT
* END
* IF SD$FLAG EQ 0
* THEN
* BEGIN
* IF HEAD EQ FOOT
* THEN
* BEGIN
* IF ID$FLAG EQ 0
* THEN
* BEGIN
* NETWAIT(NQTIME - SHORT$TIME2,0)
* IF XFR$COM2[0]
* THEN
* BEGIN
* GOTO ENDQT
* END
* END
* END
* END
* END
* END
*ENDQT: XFR$QBC[0] = 0
* RETURN
*
* 4. ENTRY CONDITIONS.
* NQTIME NETWAIT TIME
*
* 5. EXIT CONDITIONS.
* NONE
*
* 6. COMDECKS AND SYMPL TEXT USED.
* AIPDEF CONSTANT DEFINITIONS
* NP$NWL NETWORK WORKLIST TABLE
* NP$ACBX NETXFR COMMON BLOCK
*
*
* 8. DAYFILE MESSAGES OR OTHER IMPORTANT INFORMATION.
* NONE
#
#
EXTERNAL ROUTINES CALLED
#
XREF
BEGIN
PROC NETWAIT; # REGULAR NETWAIT #
END
#
INPUT VARIABLES
#
ITEM NQTIME; # NETWAIT TIME #
#
LOCAL VARIABLES
#
DEF SHORT$WAIT # 2 #; # SHORT NETWAIT TIME #
DEF SHORT$WAIT2 # 4 #; # FOUR SECONDS NETWAIT #
#**********************************************************************#
CONTROL EJECT;
#
EXECUTABLE CODE BEGINS HERE
#
IF NQTIME LQ SHORT$WAIT # IF NETWAIT IS LESS #
THEN # THAN OR EQUAL TO 2 SECONDS #
BEGIN
NETWAIT(NQTIME,0);
END
ELSE # NETWAIT IS MORE THAN 2 #
BEGIN # SECONDS #
*IF,DEF,XFR
XFR$QB[0] = TRUE; # CALLED THROUGH NETWTQ #
*ENDIF
NETWAIT(SHORT$WAIT,0); # FIRST 2 SECONDS NETWAIT #
*IF,DEF,XFR
IF XFR$COM2[0]
THEN
BEGIN
GOTO ENDQT; # SKIP REST OF NETWAIT TIME #
END
*ENDIF
IF SD$FLAG EQ 0 # NO SUPMSG FOR APP #
THEN
BEGIN
IF HEAD EQ FOOT # NO SM IN SM BUFFER #
THEN
BEGIN
IF ID$FLAG EQ 0 # NO DATA MSGS #
THEN
BEGIN
IF (NQTIME - SHORT$WAIT) LQ SHORT$WAIT # LESS THAN OR #
THEN # EQUAL TO 2 SECONDS LEFT #
BEGIN
NETWAIT((NQTIME - SHORT$WAIT),0); # WAIT FOR REST OF #
# TIME #
END
ELSE
BEGIN # CAN DO ANOTHER 2 SECONDS #
NETWAIT(SHORT$WAIT,0); # SHORT NETWAIT #
*IF,DEF,XFR
IF XFR$COM2[0] # FILE TRANSFER COMPLETED #
THEN
BEGIN
GOTO ENDQT; # SKIP REST OF FILE TRANSFER #
END # TIME #
*ENDIF
IF SD$FLAG EQ 0 # IF NO SUPMSG AVAILABLE #
THEN
BEGIN
IF HEAD EQ FOOT # NO SM IN SM BUFFER #
THEN
BEGIN
IF ID$FLAG EQ 0 # NO DATA AVAILABLE #
THEN
BEGIN
NETWAIT(NQTIME - SHORT$WAIT2,0);
*IF,DEF,XFR
IF XFR$COM2[0] # FILE TRANSFER COMPLETED #
THEN
BEGIN
GOTO ENDQT; # SKIP REST OF FILE XFR TIME #
END
*ENDIF
END
END
END
END
END
END
END
END
*IF,DEF,XFR
ENDQT: XFR$QBC[0] = 0; # CLEAR ENTIRE XFR COMPLETION #
# WORD #
*ENDIF
RETURN; # RETURN TO CALLER #
END # ENDOF BEGIN #
TERM