cdc:nos2.source:nam5871:np_get
Table of Contents
NP$GET
Table Of Contents
- [00015] PROC NP$GET
- [00081] PROC NP$ERR
- [00082] PROC NP$GSM
- [00083] PROC NP$SEND
- [00085] PROC NP$SN
- [00087] PROC NP$UCV
- [00088] PROC NP$USI
- [00090] PROC NP$ITMG
Source Code
- NP$GET.txt
- *DECK NP$GET
- USETEXT AIPDEF
- USETEXT HEADER
- USETEXT NP$GETS
- USETEXT NP$MODE
- *IF DEF,XFR
- USETEXT NX$ACBF
- *ENDIF
- USETEXT NP$NWL
- USETEXT NP$STAT
- USETEXT NP$TAA
- *IF,DEF,DEBUG
- USETEXT NP$DB
- *ENDIF
- PROC NP$GET;
- *IF DEF,IMS
- #
- *
- * 1. PROC NAME AUTHOR DATE
- * NP$GET J.C. LEE 78/10/10
- *
- * 2. FUNCTIONAL DESCRIPTION
- * THIS ROUTINE IS CALLED BY NETGET AND NETGETF TO BUILD A GET
- * REQUEST IN THE NWL WORKLIST FOR A BLOCK FROM A SPECIFIED
- * CONNECTION OR LIST IF THERE IS DATA FOR THE APPLICATION QUEUED
- * IN NIP, OR TO DELIVER A SUPERVISORY MESSAGE IF IT
- * IS A GET REQUEST ON CONNECTION/LIST ZERO AND SMB IS NOT EMPTY.
- *
- * 3. METHOD USED
- * SEE DOCUMENTATION ON NETGET AND NETPUT.
- *
- * 4. ENTRY CONDITIONS
- * ACLN - APPLICATION CONNECTION / LIST NUMBER.
- * BS - WORKLIST ENTRY SIZE.
- * IAM - ROUTINE CURRENTLY EXECUTING.
- * LOC$HA - ADDRESS OF HEADER AREA.
- * LOC$TA - ADDRESS OF TEXT ARRAY.
- * NEXT - NEXT AVAILABLE SPACE POINTER IN WORKLIST.
- * OPCODE - OPCODE VALUE.
- * SPACE$LEFT - NUMBER OF CELLS AVAILABLE IN WORKLIST.
- *
- * 5. EXIT CONDITIONS
- * DEFER$GSM - TRUE FOR ADR=0 IF SMB IS EMPTY.
- * I$FLAG - TRUE IF INPUT DATA QUEUED IN NIP
- * S$FLAG - TRUE IF A NON-EMPTY SMB OR SM QUEUED IN NIP
- * LTAA - RESET TO ZERO.
- * NEXT - RESET TO INITIAL VALUE IF NWL IS SENT TO NIP.
- * SPACE$LEFT - RESET TO INITIAL VALUE IF NWL IS SENT TO NIP.
- *
- * 6. COMDECKS CALLED AND SYMPL TEXTS USED.
- * AIPDEF NP$CRT NP$DB NP$GETS
- * NP$MODE NP$NWL NP$STAT
- *
- * 7. ROUTINES CALLED
- * NP$ERR - ERROR PROCESSOR.
- * NP$GSM - DELIVER A SUPERVISORY MESSAGE TO APPLICATION.
- * NP$SEND - SEND NWL TO NIP.
- * NP$SN - UPDATE STATISTICS COUNTERS.
- * NP$UCV - UPDATE NWL CONTROL VARIABLES
- * NP$USI - UPDATE S AND I BITS IN NSUP WORD
- *
- * 8. DAYFILE MESSAGES
- * NETWORK APPLICATION ABORTED, RC = 31.
- * NP$GET: REQUEST INVALID BEFORE NETON.
- *
- * NETWORK APPLICATION ABORTED, RC = 42.
- * NP$GET: PREVIOUS REQUEST INCOMPLETE.
- *
- *
- #
- *ENDIF
- BEGIN
- *CALL NP$CRT
- #
- ROUTINES CALLED
- #
- XREF
- BEGIN
- PROC NP$ERR; # ERROR PROCESSOR #
- PROC NP$GSM; # DELIVER A SM TO APP #
- PROC NP$SEND; # SEND NWL TO NIP #
- *IF DEF,STAT
- PROC NP$SN; # INCREMENT STATISTICS COUNTERS#
- *ENDIF
- PROC NP$UCV; # UPDATE CONTROL VARIABLES #
- PROC NP$USI; # UPDATE S AND I BITS IN NSUP #
- *IF,DEF,XFR
- PROC NP$ITMG ; # INTERCEPT MESSAGE #
- *ENDIF
- END
- #
- LOCAL VARIABLES
- #
- ITEM I I;
- *IF,DEF,STAT
- ITEM NULLBLK B; # SEND NULL BLOCK TO APP FLAG #
- *ENDIF
- *IF,DEF,XFR
- ITEM TEMP$HA U ; # TEMP LOCATION FOR TRUE ABH #
- ITEM TEMP$TA U ; # TEMP LOACTION FOR TRUE TEXT #
- *ENDIF
- #**********************************************************************#
- #
- NP$GET EXECUTION BEGINS HERE
- #
- *IF DEF,STAT
- #
- UPDATE STATISTICS IF STAT IS TURNED ON
- #
- NP$SN(IAM); # INCREMENT STATISTICS COUNTER #
- *ENDIF
- IF NOT ACCEPTED
- THEN
- NP$ERR("31"); # REQUEST INVALID BEFORE NETON. #
- IF DEFER$PRO
- THEN
- NP$ERR("42"); # PREVIOUS REQUEST INCOMPLETE. #
- *IF DEF,DEBUG
- #
- SET UP PARAMETERS FOR DEBUG MESSAGE LOGGING
- #
- DB$OP = OPCODE; # NWL OP CODE #
- *ENDIF
- #
- HA IS INITIALIZED TO CONTAIN A NULL BLOCK HEADER
- #
- *IF,DEF,XFR
- TEMP$HA = LOC$HA ; # SAVE THE TRUE APPL ABH #
- TEMP$TA = LOC$TA ; # AND THE TRUE APPL TEXT AREA #
- MSGFORAP = FALSE; # ASSUMING MSG NOT FOR APPL. #
- FOR I = I WHILE NOT MSGFORAP # LOOP TO GET UNTIL OBTAIN A #
- DO # MESSAGE FOR APPLICATION #
- BEGIN
- *ENDIF
- I = NEXT + 1;
- ABH[I] = 0;
- ABH$ADR[I] = ACLN;
- P<HEADER> = LOC$HA; # HEADER ADDRESS #
- ABHWORD[0] = ABH[I];
- #
- IF THERE IS DATA QUEUED IN NIP FOR THIS APPLICATION, THEN
- BUILD A GET WORKLIST ENTRY FOR A NON-ZERO ACN, OR FOR A LIST
- ZERO REQUEST WHEN AIP"S SMB DOES NOT CONTAIN SUPERVISORY MSG.
- #
- IF HEAD NQ FOOT AND # AIP HAS SUP MSG QUEUED #
- ACLN EQ 0 # APP WILL ACCEPT SUP MSG #
- THEN # DELIVERED QUEUED SUP MSG #
- BEGIN
- NP$GSM; # GET SUPERVISORY MESSAGE #
- END
- ELSE # NEED TO GET MSG FROM NIP #
- BEGIN
- *IF,DEF,STAT
- NULLBLK = TRUE; # INIT FLAG TO RETURN NULL BLOCK#
- *ENDIF
- IF NOT AIPQONLY
- THEN # OKAY TO SEND WORKLIST TO NIP #
- BEGIN
- IF (ACLN EQ 0 ) AND
- (SD$FLAG NQ 0)
- THEN # SENT GETSM WORKLIST ONLY #
- BEGIN
- DEFER$GSM = TRUE; # SET DEFERRED GET SUP MSG FLAG #
- *IF,DEF,STAT
- NULLBLK = FALSE; # NOT RETURNING NULL BLOCK #
- *ENDIF
- END
- ELSE # CHECK IF NIP HAS DATA TO GET #
- BEGIN
- IF ( (LIST ) AND
- (WD$FLAG ) ) OR
- ( (NOT LIST ) AND
- (ACLN NQ 0 ) AND
- (ID$FLAG NQ 0) )
- THEN # SEND GET/GETL WORKLIST TO NIP #
- BEGIN
- N$GETAWL[0] = 1; # AWL RESPONSE TO PROCESS #
- NWL$ID[NEXT] = AWLID;
- NWL$OP[NEXT] = OPCODE;
- ABH$TLC[I] = 4095;
- IF TLMX LS 4095
- THEN # BUF LESS THAN MAXIMUM SIZE #
- BEGIN
- ABH$TLC[I] = TLMX;
- END
- #
- UPDATE NWL HEADER AND CONTROL VARIABLES
- #
- NP$UCV;
- *IF,DEF,STAT
- NULLBLK = FALSE;
- *ENDIF
- END
- END
- END
- #
- SEND WORKLIST TO NIP
- #
- NP$SEND; # SEND WORKLIST #
- *IF,DEF,STAT
- IF NULLBLK
- THEN # RETURN NULL BLOCK TO APP #
- BEGIN
- NP$SN(TYPE"INB"); # UPDATE AIP STATISTICS #
- END
- *ENDIF
- END
- #
- UPDATE I, S, AND D BITS IN NSUP WORD
- #
- NP$USI;
- *IF,DEF,XFR
- #
- IF FILE TRANSFER CONNECTION IS OUTSTANDING AND BLOCK RETURNED
- IS NOT A NULL BLOCK AND IBU BIT NOT ON, THEN INTERCEPT THIS
- BLOCK.
- #
- P<HEADER> = LOC$HA ; # HEADER OF NEW MESSAGE #
- IF NUMFILEXFR NQ 0
- AND ABHABT[0] NQ 0 # NOT A NULL BLOCK #
- AND ABHIBU[0] NQ 1 # NOT IBU #
- AND ABHADR[0] EQ 0 # SUPERVISORY MSG ONLY #
- THEN
- BEGIN
- NP$ITMG ; # INTERCEPT THIS MESSAGE #
- LOC$HA = TEMP$HA ; # RESTORE THE APPLICATION ABH #
- LOC$TA = TEMP$TA ; # RESTORE THE APPLICATION TA #
- OPCODE = OP$GET ;
- *IF DEF,STAT,1
- IAM = TYPE"GET" ;
- END
- ELSE
- MSGFORAP = TRUE ; # MSG GOTTEN IS FOR APPLICATION#
- NWL$TA[NEXT] = LOC$TA ;
- END # LOOP TO GET #
- *ENDIF
- IF NOT DEFER$GSM
- THEN
- LTAA = 0;
- RETURN;
- END # NP$GET #
- TERM
cdc/nos2.source/nam5871/np_get.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator