cdc:nos2.source:nam5871:netputs
Table of Contents
NETPUTS
Table Of Contents
- [00008] PROC NETPUTS(HA,ATA,OPTWD)
- [00064] PROC NP$ERR
- [00065] PROC NP$GETQ
- [00066] PROC NETPUT
Source Code
- NETPUTS.txt
- *DECK NETPUTS
- USETEXT AIPDEF
- USETEXT HEADER
- USETEXT NP$GETS
- USETEXT NP$GMB
- USETEXT NP$MODE
- USETEXT NP$NWL
- PROC NETPUTS(HA,ATA,OPTWD);
- #
- *1DC NETPUTS
- *
- * 1. PROC NAME AUTHOR DATE
- * NETPUTS E. GEE 01/30/85
- *
- * 2. FUNCTIONAL DESCRIPTION.
- * CHECK ASYNCHRONOUS SUPERVISORY MESSAGES TO SEE IF THEY
- * AFFECT MESSAGES IN THE UPLINE DATA QUEUE.
- *
- * 3. METHOD USED.
- * IF NO MESSAGE FOUND,
- * RETURN NULL BLOCK TO APPLICATION.
- * ELSE (DATA MESSAGE FOUND IN DATA BUFFER),
- * IF APP BUFFER IS NOT BIG ENOUGH AND TRUNCATION NOT ALLOWED,
- * SET IBU BIT IN ABH WORD.
- * ELSE ( DATA MSG CAN BE DELIVERED),
- * SET TRUNCATION BIT IF DATA MSG IS TRUNCATED.
- * IF FRAGMENTED GET REQUEST,
- * COPY TEXT INTO FRAGMENTED BUFFERS.
- * ELSE (DELIVER MSG INTO ONE BUFFER),
- * COPY TEXT INTO APPLICATION BUFFER.
- * ADJUST AIP POINTERS FOR UPLINE DATA BUFFER.
- *
- * 4. ENTRY CONDITIONS.
- * HA ADDR OF WORD CONTAINING ABH OF MSG
- * ATA ADDR OF BUFFER CONTAINING TEXT OF MSG
- * OPTWD ADDR OF WORD PROVIDING ADDITIONAL OPTIONS.
- *
- * 5. EXIT CONDITIONS.
- * NONE.
- *
- * 6. COMDECK DECKS AND SYMPL TEXT USED.
- * AIPDEF CONSTANT DEFINITIONS
- * HEADER ABH AND SUP MSG TEMPLATE
- * NP$GETS GLOBAL VARIABLES
- * NP$GMB UPLINE MESSAGE BUFFER TABLE
- * NP$MODE GLOBAL VARIABLES
- * NP$NWL NETWORK WORKLIST PROCESSING VARIABLES
- *
- * 7. PROCEDURES/FUNCTIONS CALLED.
- * NETPUT SEND NETWORK MSG DOWNLINE
- * NP$ERR ISSUE DAYFILE MSG AND ABORT APP
- * NP$GETQ REMOVE DATA MSGS FROM UPLINE DATA BUFFER
- *
- * 8. DAYFILE MESSAGES OR OTHER IMPORTANT INFORMATION.
- * * NETWORK APPLICATION ABORTED, RC = 38. *
- * * NETPUTS: REQUEST INVALID BEFORE NETON. *
- #
- BEGIN
- #
- EXTERNAL ROUTINES CALLED
- #
- XREF
- BEGIN
- PROC NP$ERR; # ISSUE ERROR MSG AND ABORT APP #
- PROC NP$GETQ; # REMOVE MSGS FROM DATA BUFFER #
- PROC NETPUT; # SEND MSG TO NETWORK #
- END
- #
- INPUT VARIABLES
- #
- ITEM HA; # APPLICATION BLOCK HEADER ADDR #
- ITEM ATA; # APPLICATION TEXT AREA ADDRESS #
- ARRAY OPTWD S(1); # ADDR OF WD CONTAINING OPTIONS #
- BEGIN
- ITEM OPTWDD U(0,58,01); # GET DATA FROM QUEUE BEFORE #
- # GETTING SUP MSG FROM NIP #
- ITEM OPTWDQ U(0,59,01); # GET MSG FROM DATA QUEUE ONLY #
- END
- #
- LOCAL VARIABLES
- #
- ITEM SAVEGMB B; # SAVE VALUE OF GMBUSE #
- #**********************************************************************#
- CONTROL EJECT;
- #
- EXECUTABLE CODE BEGINS HERE
- #
- IF NOT ACCEPTED
- THEN # APPLICATION HAS NOT NETTED ON #
- BEGIN
- NP$ERR("38"); # ISSUE DAYFILE MSG AND ABORT AP#
- END
- P<HEADER> = LOC(HA); # ADDR OF ABH #
- P<SUPMSG> = LOC(ATA); # ADDR OF TEXT #
- #
- IF THE AIP UPLINE DATA BUFFER FEATURE IS BEING USED, THEN AIP
- NEEDS TO CHECK IF THE APPLICATION IS ISSUING A CON/END, FC/BRK,
- LST/OFF, LST/ON, LST/HDX, LST/FDX, OR DC/TRU ASYNCHRONOUS
- SUPERVISORY MESSAGE. IF IT IS, AIP MAY HAVE TO ADJUST OR REMOVE
- MESSAGES IN THE AIP UPLINE DATA BUFFER.
- #
- IF GMBUSE AND # UPLINE DATA QUEUE EXISTS #
- (ABHABT[0] EQ APPCMD) AND # SUPERVISORY MESSAGE #
- (ABHADR[0] EQ 0) # ASYNC SUPERVISORY MESSAGE #
- THEN # NEED TO CHECK PFC/SFC #
- BEGIN
- ACLN = SPACN[0]; # APP CONNECTION NUMBER #
- IF (PFCSFC[0] EQ CONEND) OR
- (PFCSFC[0] EQ FCBRK)
- THEN # APP ISSUED CON/END OR FC/BRK #
- BEGIN
- NP$GETQ(GMMDCN); # DISCARD MSG IN QUE FOR THIS CN#
- END
- ELSE # OTHER SUPERVISORY MESSAGE #
- BEGIN
- IF PFCSFC[0] EQ DCTRU
- THEN # TOO LARGE MSGS TO BE TRUNCATED#
- BEGIN
- GMBTRUNC = TRUE; # SET TRUNCATE TOO LARGE MSG FLG#
- END
- END
- END
- SAVEGMB = GMBUSE; # SAVE OF GMBUSE #
- GMBUSE = FALSE; # SO NETPUT WILL NOT ABORT APP #
- NETPUT(HA,ATA); # SEND MSG TO NETWORK #
- GMBUSE = SAVEGMB; # RESTORE VALUE OF GMBUSE #
- RETURN;
- END
- TERM
cdc/nos2.source/nam5871/netputs.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator