cdc:nos2.source:nam5871:netfunc
Table of Contents
NETFUNC
Table Of Contents
- [00007] PROC NETFUNC(FCODE,WSA)
- [00083] PROC NP$ERR
- [00084] PROC NP$SEND
- [00085] PROC NP$SN
- [00086] PROC NP$USI
Source Code
- NETFUNC.txt
- *DECK NETFUNC
- USETEXT AIPDEF
- USETEXT NP$GMB
- USETEXT NP$MODE
- USETEXT NP$NWL
- USETEXT NP$STAT
- PROC NETFUNC(FCODE,WSA);
- BEGIN
- #
- *1DC NETFUNC
- *
- * 1. PROC NAME AUTHOR DATE
- * NETFUNC E. GEE 01/30/85
- *
- * 2. FUNCTIONAL DESCRIPTION.
- * THIS ROUTINE PROCESSES AIP FUNCTION CODES. CURRENTLY THE
- * FOLLOWING FUNCTION CODES HAVE BEEN DEFINED.
- *
- * FCODE=1 SEND NETWAIT WORKLIST TO NIP EVEN IF DATA IS QUEUED
- * IN NIP AS LONG AS THAT DATA IS NOT DELIVERABLE THROUGH
- * LIST PROCESSING.
- * FCODE=2 QUEUE MULTIPLE UPLINE MESSAGES WITHIN AIP-S FIELD
- * LENGTH TO INCREASE THE THROUGHPUT FOR RECEIVING SMALL
- * MESSAGES.
- * FCODE=3 DO NOT ABORT APPLICATION PROGRAM AFTER A WORKLIST
- * TRANSFER IS ATTEMPTED AND NAM IS NOT AVAILABLE.
- * FCODE=4 QUEUE DOWNLINE MESSAGES IN AN APPLICATION-SUPPLIED
- * BUFFER TO INCREASE THE THROUGHPUT FOR SENDING
- * MULTIPLE LARGE MESSAGES TO NIP.
- *
- * 3. METHOD USED.
- * IF VALID FUNCTION CODE,
- * INDEX ACCORDING TO THE FUNCTION CODE SPECIFIED.
- * FC=1 SET ISSUE-NETWAIT-IF-NO-DELIVERABLE-DATA FLAG.
- * FC=2 SET MULTIPLE-MESSAGE-UPLINE-QUEUING FLAG.
- * FC=3 SET NO-ABORT-IF-NAM-NOT-AVAILABLE FLAG.
- * FC=4 SET MULTIPLE-MESSAGE-DOWNLINE-QUEUING FLAG.
- * ELSE (BAD FUNCTION CODE WAS SPECIFIED),
- * CALL NP$ERR TO ISSUE DAYFILE MSG AND ABORT APP.
- *
- * 4. ENTRY CONDITIONS.
- * FCODE FUNCTION CODE TO PROCESS
- * WSA ADDR OF BUFFER IF ONE IS NEEDED FOR
- * PROCESSING THE FUNCTION CODE.
- * FC=1 NOT USED.
- * FC=2 ADDR OF BUF TO HOLD UPLINE DATA
- * MESSAGES.
- * FC=3 NOT USED.
- * FC=4 ADDR OF BUF TO HOLD DOWNLINE DATA
- * MESSAGES.
- *
- * 5. EXIT CONDITIONS.
- * DOWNUSE UPDATED IF FC = 4.
- * GMBUSE UPDATED IF FC = 2.
- * WAITDEL UPDATED IF FC = 1.
- *
- * 6. COMDECKS AND SYMPL TEXT USED.
- * AIPDEF CONSTANT DEFINITIONS
- * NP$GMB UPLINE DATA BUFFER TEMPLATE
- * NP$MODE GLOBAL VARIABLES
- * NP$NWL NETWORK WORKLIST TABLE
- * NP$STAT STATISTICS TABLE
- *
- * 7. PROCEDURES/FUNCTIONS CALLED.
- * NP$ERR ISSUE ERROR MESSAGE AND ABORT APP
- * NP$SEND SEND A WORKLIST TO NIP
- * NP$SN INCREMENT AIP STATISTICS
- * NP$USI UPDATE S AND I BITS IN NSUP WORD
- *
- * 8. DAYFILE MESSAGES OR OTHER IMPORTANT INFORMATION.
- * * NETWORK APPLICATION ABORTED, RC = XX. *
- * * NETFUNC: REQUEST INVALID BEFORE NETON. * (RC=29)
- * * NETFUNC: INVALID FUNCTION CODE USED. * (RC=52)
- * * NETFUNC: DOWNLINE BUFFERING ALREADY ON. * (RC=59)
- * * NETFUNC: DOWNLINE BUFFER SIZE TOO SMALL. * (RC=60)
- * * NETFUNC: DOWNLINE BUFFERING ALREADY OFF. * (RC=61)
- #
- #
- EXTERNAL ROUTINES CALLED
- #
- XREF
- BEGIN
- PROC NP$ERR; # ISSUE ERROR MESSAGE AND ABORT APP #
- PROC NP$SEND; # SEND A WORKLIST TO NIP #
- PROC NP$SN; # INCREMENT AIP STATISTICS #
- PROC NP$USI; # UPDATE S AND I BITS IN NSUP #
- END
- #
- INPUT VARIABLES
- #
- ITEM FCODE; # AIP FUNCTION CODE #
- ITEM WSA; # ADDRESS OF BUFFER TO HOLD UPLINE DATA #
- #
- LOCAL VARIABLES
- #
- DEF MINFC#1#; # MINIMUM FUNCTION CODE VALUE #
- DEF MAXFC#4#; # MAXIMUM FUNCTION CODE VALUE #
- SWITCH SWTCH$FC ,FC$1,FC$2,FC$3,FC$4;
- #**********************************************************************#
- CONTROL EJECT;
- #
- EXECUTABLE CODE BEGINS HERE
- #
- IF NOT ACCEPTED
- THEN # APPLICATION HAS NOT NETTED ON #
- BEGIN
- NP$ERR("29"); # ISSUE DAYFILE MSG AND ABORT AP#
- END
- *IF,DEF,STAT
- NP$SN(TYPE"FUNC"); # INCREMENT AIP STATISTICS #
- *ENDIF
- IF (FCODE GQ MINFC) AND
- (FCODE LQ MAXFC)
- THEN # VALID FUNCTION CODE #
- BEGIN
- GOTO SWTCH$FC[FCODE];
- FC$1: # ISSUE NETWAIT WORKLIST EVEN IF DATA IS #
- BEGIN # AVAILABLE AS LONG AS DATA IS NOT #
- # DELIVERABLE THROUGH LIST PROCESSING #
- WAITDEL = TRUE; # SET ISSUE-NETWAIT-IF-NO-DELIVERABLE DATA#
- # FLAG #
- GOTO FC$END;
- END
- FC$2: # QUEUE MULTIPLE UPLINE MESSAGES IN AIP #
- BEGIN # FOR EITHER THE SAME CONNECTION NUMBER #
- # OR SAME LIST NUMBER #
- P<GMB> = LOC(WSA); # ADDRESS OF UPLINE DATA BUFFER #
- IF GMBFLG[0]
- THEN # TURN UPLINE DATA QUEUE PROCESSING ON #
- BEGIN
- *IF,DEF,STAT
- NP$SN(TYPE"GMR"); # INCREMENT AIP STATISTICS #
- *ENDIF
- GMBHEAD = 1; # INITIALIZE UPLINE DATA BUFFER PTRS #
- GMBFOOT = 1; # INITIALIZE UPLINE DATA BUFFER PTRS #
- GMBUSE= TRUE; # SET FLAG FOR UPLINE QUEUE PROCESSING #
- GMBLN = GMBALN[0]; # SAVE LIST NUMBER FOR AIP DATA BUFFER #
- GMBCN = GMBACN[0]; # SAVE CON NUMBER FOR AIP DATA BUFFER #
- GMBLAST = GMBSIZE[0]; #INDEX FOR LAST WORD OF AIP DATA BUF#
- GMMESIZE = GMMSIZE; # SIZE OF GMM WORKLIST ENTRY #
- END
- ELSE # TURN UPLINE DATA QUEUE PROCESSING OFF #
- BEGIN
- GMBHEAD = 1; # INITIALIZE UPLINE DATA BUFFER PTRS #
- GMBFOOT = 1; # INITIALIZE UPLINE DATA BUFFER PTRS #
- GMBUSE= FALSE; # CLEAR FLAG FOR UPLINE QUEUE PROCESSING #
- END
- GOTO FC$END;
- END
- FC$3: # DO NOT ABORT APPLICATION PROGRAM IF NAM #
- BEGIN # IS NOT AVAILABLE #
- NOABTAPP = TRUE; # SET NO-ABORT-IF-NAM-NOT-AVAILABLE FLAG #
- GOTO FC$END;
- END
- FC$4: # QUEUE DOWNLINE MESSAGES IN APPL-SUPPLIED#
- # BUFFER #
- BEGIN
- P<APPBUFHDR> = LOC(WSA); # GET BUFFER HEADER #
- IF AB$FLAG[0]
- THEN # TURN DOWNLINE BUFFERING ON #
- BEGIN
- IF DOWNUSE
- THEN # DOWNLINE FEATURE ALREADY ON #
- BEGIN
- NP$ERR("59"); # ISSUE DAYFILE MSG AND ABORT AP#
- END
- IF AB$SIZE[0] LS MINABSIZE
- THEN # BUFFER SIZE IS TOO SMALL #
- BEGIN
- NP$ERR("60"); # ISSUE DAYFILE MSG AND ABORT AP#
- END
- NP$SEND; # SEND EXISTING WORKLIST TO NIP #
- LOC$APBUF = LOC(WSA) + 1; # START OF TEXT AREA OF APP BUF #
- P<WORKLIST> = LOC$APBUF; # USE APP BUF FOR THE WORKLIST #
- NEXT = 0; # START OF APP BUFFER #
- SPACE$LEFT = AB$SIZE[0]; # SPACE LEFT IN APP BUFFER #
- DOWNUSE = TRUE; # SET FLAG FOR DWNLIN MSG QUEUE #
- END
- ELSE # TURN DOWNLINE BUFFERING OFF #
- BEGIN
- IF NOT DOWNUSE
- THEN # DOWNLINE FEATURE ALREADY OFF #
- BEGIN
- NP$ERR("61"); # ISSUE DAYFILE MSG AND ABORT AP#
- END
- NP$SEND; # CLEAR BUFFER BY SENDING TO NIP#
- # POINT WORKLIST B-ARRAY BACK TO#
- # FIXED BUFFER IN AIP'S FL #
- P<WORKLIST> = LOC(NWLBUF);
- NEXT = NHDR + 1; # RESET WORKLIST POINTERS #
- SPACE$LEFT = LWL;
- DOWNUSE = FALSE; # CLEAR FLAG FOR DWNLIN FEATURE #
- END
- NP$USI; # SET S, I BITS IN NSUP AFTER #
- # CALL TO NP$SEND #
- GOTO FC$END;
- END
- FC$END:
- END
- ELSE # BAD FUNCTION CODE SPECIFIED #
- BEGIN
- NP$ERR("52");
- END
- RETURN;
- END
- TERM
cdc/nos2.source/nam5871/netfunc.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator