User Tools

Site Tools


cdc:nos2.source:nam5871:netputs

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
  1. *DECK NETPUTS
  2. USETEXT AIPDEF
  3. USETEXT HEADER
  4. USETEXT NP$GETS
  5. USETEXT NP$GMB
  6. USETEXT NP$MODE
  7. USETEXT NP$NWL
  8. PROC NETPUTS(HA,ATA,OPTWD);
  9. #
  10. *1DC NETPUTS
  11. *
  12. * 1. PROC NAME AUTHOR DATE
  13. * NETPUTS E. GEE 01/30/85
  14. *
  15. * 2. FUNCTIONAL DESCRIPTION.
  16. * CHECK ASYNCHRONOUS SUPERVISORY MESSAGES TO SEE IF THEY
  17. * AFFECT MESSAGES IN THE UPLINE DATA QUEUE.
  18. *
  19. * 3. METHOD USED.
  20. * IF NO MESSAGE FOUND,
  21. * RETURN NULL BLOCK TO APPLICATION.
  22. * ELSE (DATA MESSAGE FOUND IN DATA BUFFER),
  23. * IF APP BUFFER IS NOT BIG ENOUGH AND TRUNCATION NOT ALLOWED,
  24. * SET IBU BIT IN ABH WORD.
  25. * ELSE ( DATA MSG CAN BE DELIVERED),
  26. * SET TRUNCATION BIT IF DATA MSG IS TRUNCATED.
  27. * IF FRAGMENTED GET REQUEST,
  28. * COPY TEXT INTO FRAGMENTED BUFFERS.
  29. * ELSE (DELIVER MSG INTO ONE BUFFER),
  30. * COPY TEXT INTO APPLICATION BUFFER.
  31. * ADJUST AIP POINTERS FOR UPLINE DATA BUFFER.
  32. *
  33. * 4. ENTRY CONDITIONS.
  34. * HA ADDR OF WORD CONTAINING ABH OF MSG
  35. * ATA ADDR OF BUFFER CONTAINING TEXT OF MSG
  36. * OPTWD ADDR OF WORD PROVIDING ADDITIONAL OPTIONS.
  37. *
  38. * 5. EXIT CONDITIONS.
  39. * NONE.
  40. *
  41. * 6. COMDECK DECKS AND SYMPL TEXT USED.
  42. * AIPDEF CONSTANT DEFINITIONS
  43. * HEADER ABH AND SUP MSG TEMPLATE
  44. * NP$GETS GLOBAL VARIABLES
  45. * NP$GMB UPLINE MESSAGE BUFFER TABLE
  46. * NP$MODE GLOBAL VARIABLES
  47. * NP$NWL NETWORK WORKLIST PROCESSING VARIABLES
  48. *
  49. * 7. PROCEDURES/FUNCTIONS CALLED.
  50. * NETPUT SEND NETWORK MSG DOWNLINE
  51. * NP$ERR ISSUE DAYFILE MSG AND ABORT APP
  52. * NP$GETQ REMOVE DATA MSGS FROM UPLINE DATA BUFFER
  53. *
  54. * 8. DAYFILE MESSAGES OR OTHER IMPORTANT INFORMATION.
  55. * * NETWORK APPLICATION ABORTED, RC = 38. *
  56. * * NETPUTS: REQUEST INVALID BEFORE NETON. *
  57.  #
  58. BEGIN
  59. #
  60.   EXTERNAL ROUTINES CALLED
  61. #
  62. XREF
  63. BEGIN
  64. PROC NP$ERR; # ISSUE ERROR MSG AND ABORT APP #
  65. PROC NP$GETQ; # REMOVE MSGS FROM DATA BUFFER #
  66. PROC NETPUT; # SEND MSG TO NETWORK #
  67. END
  68. #
  69.   INPUT VARIABLES
  70. #
  71. ITEM HA; # APPLICATION BLOCK HEADER ADDR #
  72. ITEM ATA; # APPLICATION TEXT AREA ADDRESS #
  73. ARRAY OPTWD S(1); # ADDR OF WD CONTAINING OPTIONS #
  74. BEGIN
  75. ITEM OPTWDD U(0,58,01); # GET DATA FROM QUEUE BEFORE #
  76. # GETTING SUP MSG FROM NIP #
  77. ITEM OPTWDQ U(0,59,01); # GET MSG FROM DATA QUEUE ONLY #
  78. END
  79. #
  80.   LOCAL VARIABLES
  81. #
  82. ITEM SAVEGMB B; # SAVE VALUE OF GMBUSE #
  83.  
  84. #**********************************************************************#
  85. CONTROL EJECT;
  86. #
  87.   EXECUTABLE CODE BEGINS HERE
  88. #
  89. IF NOT ACCEPTED
  90. THEN # APPLICATION HAS NOT NETTED ON #
  91. BEGIN
  92. NP$ERR("38"); # ISSUE DAYFILE MSG AND ABORT AP#
  93. END
  94. P<HEADER> = LOC(HA); # ADDR OF ABH #
  95. P<SUPMSG> = LOC(ATA); # ADDR OF TEXT #
  96. #
  97.   IF THE AIP UPLINE DATA BUFFER FEATURE IS BEING USED, THEN AIP
  98.   NEEDS TO CHECK IF THE APPLICATION IS ISSUING A CON/END, FC/BRK,
  99.   LST/OFF, LST/ON, LST/HDX, LST/FDX, OR DC/TRU ASYNCHRONOUS
  100.   SUPERVISORY MESSAGE. IF IT IS, AIP MAY HAVE TO ADJUST OR REMOVE
  101.   MESSAGES IN THE AIP UPLINE DATA BUFFER.
  102. #
  103. IF GMBUSE AND # UPLINE DATA QUEUE EXISTS #
  104. (ABHABT[0] EQ APPCMD) AND # SUPERVISORY MESSAGE #
  105. (ABHADR[0] EQ 0) # ASYNC SUPERVISORY MESSAGE #
  106. THEN # NEED TO CHECK PFC/SFC #
  107. BEGIN
  108. ACLN = SPACN[0]; # APP CONNECTION NUMBER #
  109. IF (PFCSFC[0] EQ CONEND) OR
  110. (PFCSFC[0] EQ FCBRK)
  111. THEN # APP ISSUED CON/END OR FC/BRK #
  112. BEGIN
  113. NP$GETQ(GMMDCN); # DISCARD MSG IN QUE FOR THIS CN#
  114. END
  115. ELSE # OTHER SUPERVISORY MESSAGE #
  116. BEGIN
  117. IF PFCSFC[0] EQ DCTRU
  118. THEN # TOO LARGE MSGS TO BE TRUNCATED#
  119. BEGIN
  120. GMBTRUNC = TRUE; # SET TRUNCATE TOO LARGE MSG FLG#
  121. END
  122. END
  123. END
  124. SAVEGMB = GMBUSE; # SAVE OF GMBUSE #
  125. GMBUSE = FALSE; # SO NETPUT WILL NOT ABORT APP #
  126. NETPUT(HA,ATA); # SEND MSG TO NETWORK #
  127. GMBUSE = SAVEGMB; # RESTORE VALUE OF GMBUSE #
  128. RETURN;
  129. END
  130. TERM
cdc/nos2.source/nam5871/netputs.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator