cdc:nos2.source:nam5871:netget
Table of Contents
NETGET
Table Of Contents
Source Code
- NETGET.txt
- *DECK NETGET
- USETEXT AIPDEF
- USETEXT NP$GETS
- USETEXT NP$MODE
- USETEXT NP$NWL
- USETEXT NP$TAA
- USETEXT NP$STAT
- *IF DEF,XFR
- USETEXT NX$ACBF
- *ENDIF
- *IF,DEF,DEBUG
- USETEXT NP$DB
- *ENDIF
- PROC NETGET((ADR),HA,ATA,(TLMAX)) ;
- *IF DEF,IMS
- #
- *1DC NETGET
- *
- * 1. PROC NAME AUTHOR DATE
- * NETGET J.C. LEE 78/10/10
- * NETGETL
- *
- * 2. FUNCTIONAL DESCRIPTION
- * THIS ROUTINE BUILDS A NETGET OR A NETGETL REQUEST IN THE
- * NWL WORKLIST, FOR A BLOCK FROM A SPECIFIED CONNECTION OR
- * LIST. REQUESTS FOR SUPERVISORY MESSAGES MAY BE MADE ON
- * CONNECTION / LIST ZERO.
- *
- * 3. METHOD USED
- * IF THE APPLICATION IS USING THE UPLINE DATA QUEUE FEATURE,
- * THIS PROGRAM CANNOT BE CALLED.
- * A NETGET ENTRY IS BUILD IN THE WORKLIST FOR A NON-ZERO ACN.
- * A NETGETL ENTRY IS BUILT IN THE WORKLIST FOR ALL ALN(S). FOR
- * A GET/GETL ON A ZERO ACN/ALN, A MESSAGE IS DELIVERED FROM
- * THE SMB (SUPERVISORY MESSAGE BUFFER), VIA NP$GSM. IF THE SMB
- * IS EMPTY, THEN A GSM WORKLIST ENTRY IS SENT TO NIP. IN THIS
- * CASE IF DEFER$PRO IS TRUE, THEN DEFER$GSM IS SET TO TRUE TO
- * INDICATE THAT THE APPLICATION HAS ASKED FOR A SUPERVISORY
- * MESSAGE.
- *
- * 4. ENTRY CONDITIONS
- * ADR - APPLICATION CONNECTION NUMBER / APPLICATION LIST NUMBER.
- * HA - HEADER AREA.
- * NEXT - NEXT AVAILABLE SPACE POINTER FOR WORKLIST.
- * SPACE$LEFT - NUMBER OF CELLS AVAILABLE IN NWL.
- * ATA - APPLICATION TEXT AREA.
- * TLMAX - MAXIMUM LENGTH OF DATA BLOCK.
- *
- * 5. EXIT CONDITIONS
- * DEFER$GSM - TRUE FOR ADR = 0 IF SMB IS EMPTY.
- * NEXT - NEXT AVAILABLE SPACE POINTER, RESET TO INITIAL VALUE.
- * SPACE$LEFT - NUMBER OF CELLS AVAILABLE IN WORKLIST, RESET
- * TO INITIAL VALUE.
- *
- * 6. COMDECKS CALLED AND SYMPL TEXTS USED.
- * AIPDEF NP$CRT NP$GETS NP$NWL
- * NP$TAA NP$STAT
- * NP$MODE
- *
- * 7. ROUTINES CALLED
- * NP$GET - PROCESS A GET REQUEST.
- *
- * 8. DAYFILE MESSAGES
- * * NETWORK APPLICATION ABORTED, RC = 53. *
- * * NETGET: REQUEST INVALID FOR DATA QUEUE. *
- *
- * * NETWORK APPLICATION ABORTED, RC = 54. *
- * * NETGETL: REQUEST INVALID FOR DATA QUEUE. *
- *
- #
- *ENDIF
- BEGIN
- *CALL NP$CRT
- #
- ROUTINES CALLED
- #
- XREF
- BEGIN
- PROC NP$ERR; # ISSUE ERR MSG AND ABORT APP #
- PROC NP$GET;
- *IF,DEF,XFR
- PROC NETXFRC;
- *ENDIF
- END
- #
- LOCAL VARIABLES
- #
- ITEM
- ADR I, # APP CONNECTION / LIST NO #
- HA I, # HEADER ADDRESS #
- TLMAX I; # MAXIMUM TEXT LENGTH #
- DEF MAXTEXT #511#; # MAX MESSAGE SIZE ALLOWED #
- ARRAY ATA [0:MAXTEXT] S(1) ;
- ITEM WORD I (0);
- #**********************************************************************#
- #
- NETGET EXECUTION BEGINS HERE
- #
- OPCODE = OP$GET;
- *IF,DEF,STAT
- IAM = TYPE"GET";
- *ENDIF
- IF GMBUSE
- THEN # UPLINE DATA QUEUE BEING USED #
- BEGIN
- NP$ERR("53"); # ABORT APP WITH ERROR MESSAGE #
- END
- LIST = FALSE; # SET FLAG FOR NOT LIST PROCESS#
- GOTO NETGET1;
- ENTRY PROC NETGETL((ADR),HA,ATA,(TLMAX)) ;
- OPCODE = OP$GETL;
- *IF,DEF,STAT
- IAM = TYPE"GETL";
- *ENDIF
- IF GMBUSE
- THEN # UPLINE DATA QUEUE BEING USED #
- BEGIN
- NP$ERR("54"); # ABORT APP WITH ERROR MESSAGE #
- END
- LIST = TRUE; # SET FLAG FOR LIST PROCESSING #
- #
- STORE INPUT PARAMETERS IN COMMON BLOCK
- #
- NETGET1:
- ACLN = ADR;
- LOC$HA = LOC(HA);
- LOC$TA = LOC(ATA) ;
- TLMX = TLMAX;
- *IF DEF,DEBUG
- #
- SET UP PARAMETERS FOR DEBUG MESSAGE LOGGING
- #
- IF OPCODE EQ OP$GET
- THEN
- DB$CALL = LOC(NETGET);
- ELSE
- DB$CALL = LOC(NETGETL);
- *ENDIF
- NWL[NEXT] = 0; # CLEAR NWL OPCODE WORD #
- NWL$TA[NEXT] = LOC$TA;
- BS = OPABHSIZ; # SET NWL ENTRY SIZE #
- NP$GET; # VALIDATE CALL AND SET UP #
- *IF,DEF,XFR
- IF NUMFILEXFR NQ 0 # FILE TRANSFER OUTSTANDING #
- THEN
- NETXFRC; # CONTINUE TRANSFERRING FILE #
- *ENDIF
- RETURN;
- END # NETGET #
- TERM
cdc/nos2.source/nam5871/netget.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator