User Tools

Site Tools


cdc:nos2.source:nam5871:nvfumqe

NVFUMQE

Table Of Contents

  • [00008] PROC NVFUMQE(QUEUE,MTEXT,(MTYP),(MADR),(MLNGTH))
  • [00009] NVFUMQE - MAKE QUEUE ENTRY.
  • [00013] MAKE QUEUE ENTRY.
  • [00065] PROC SSTAQE

Source Code

NVFUMQE.txt
  1. *DECK NVFUMQE
  2. USETEXT TEXTNVF
  3. USETEXT TEXTSS
  4. USETEXT TXTANVF
  5. USETEXT TXTAPSS
  6. USETEXT TXTSUSS
  7.  
  8. PROC NVFUMQE(QUEUE,MTEXT,(MTYP),(MADR),(MLNGTH));
  9. # TITLE NVFUMQE - MAKE QUEUE ENTRY. #
  10.  
  11. BEGIN # NVFUMQE #
  12. #
  13. ** NVFUMQE - MAKE QUEUE ENTRY.
  14. *
  15. * E. THAVIKULWAT 81/08/28
  16. * C. BRION 82/06/01
  17. *
  18. * THIS PROCEDURE BUILDS THE WC AND HEADER WORD FOR THE SM OR TEXT
  19. * AND CALLS *SSTAQE* TO HAVE IT TRANSFERRED TO THE APPROPRIATE
  20. * QUEUE. THIS PROCEDURE IS CALLED INTO EXECUTION BY THE FOLLOWING
  21. * PROCEDURES:
  22. * *NVFSNOF* *NVFSNON* *NVFTACC* *NVFTBRK* *NVFTCRN*
  23. * *NVFTDAD* *NVFTDSP* *NVFTETC* *NVFTETI* *NVFTICR*
  24. * *NVFTILP* *NVFTINA* *NVFTITE* *NVFTPUV* *NVFTPVD*
  25. * *NVFTPVR* *NVFTRCN* *NVFTRVD* *NVFTVAA* *NVFTVVD*
  26. * *NVFOAPE*
  27. *
  28. * PROC NVFUMQE(QUEUE,MTEXT,(MTYP),(MADR),(MLNGTH))
  29. *
  30. * ENTRY:
  31. * QUEUE = DESTINATION QUEUE FOR THE SM OR TEXT.
  32. * MTEXT = FWA OF MESSAGE ARRAY.
  33. * (MTYP) = TYPE OF SM OR TEXT:
  34. * 0 = WRITE VCB FILE
  35. * 1 = READ VCB FILE
  36. * 2 = MSG DATA BLOCK
  37. * 3 = SUPERVISORY MESSAGE
  38. * 5 = COMMAND FROM THE HOP
  39. * 6 = SET HOP ALERT FLAG
  40. * 7 = TERMINAL TEXT
  41. * 8 = PROMPT TYPE TERMINAL TEXT
  42. * 9 = PROTOCOL RESPONSE
  43. * (MADR) = ADDRESSING INFORMATION.
  44. * (MLNGTH) = LENGTH OF SM OR TEXT (UNIT DEPENDS ON MTYP).
  45. *
  46. * EXIT:
  47. * SM OR TEXT TRANSFERRED TO ITS APPROPRIATE QUEUE.
  48. *
  49. * NOTES:
  50. * PROCEDURE BUILDS THE HEADER WORD USING ABH (APPLICATION BLOCK
  51. * HEADER) FORMAT. FOLLOWING FIELDS ARE SET:
  52. * ABT, ADR, ACT, AND TLC
  53. *
  54. * METHOD:
  55. * BUILD WC AND HEADER WORD FROM GIVEN INFORMATION AND CALL
  56. * *SSTAQE* TO ENTER THE SM OR TEXT IN THE GIVEN QUEUE.
  57. #
  58.  
  59. #
  60. **** PROC NVFUMQE - XREF LIST.
  61. #
  62.  
  63. XREF
  64. BEGIN
  65. PROC SSTAQE; # ACCEPT QUEUE ENTRY #
  66. END
  67.  
  68. #
  69. ****
  70. #
  71.  
  72. DEF ACTAPR$ #1#; # ACT FOR ASYNCHRONOUS PROTOCOL RESPONSE #
  73. DEF ACTSPR$ #2#; # ACT FOR SYNCHRONOUS PROTOCOL RESPONSE #
  74. DEF ACTTTX$ #4#; # ACT FOR DATA #
  75. DEF MXPR$ #12#; # MAXIMUM NUMBER OF PROTOCOL RESPONSES-1 #
  76. DEF VCBREAD$ #1#; # VCB READ REQUEST TYPE #
  77.  
  78. ITEM I I; # LOOP VARIABLE #
  79. ITEM MADR I; # ADDRESSING INFORMATION #
  80. ITEM MATCH B; # EXIT LOOP INDICATOR #
  81. ITEM MLNGTH I; # LENGTH OF MESSAGE (UNIT DEPENDS ON ACT) #
  82. ITEM MTYP I; # TYPE OF SM OR TEXT #
  83. ITEM QUEUE I; # DESTINATION QUEUE FOR MESSAGE #
  84.  
  85. ARRAY MTEXT[00:00] S(1);
  86. BEGIN
  87. ITEM MTX$PFCSFC U(00,00,16); # REFERENCES PFC/SFC #
  88. END
  89. #
  90. * THE FOLLOWING TABLE CONTAINS PFCSFC OF PROTOCOL RESPONSE SMS
  91. * DESTINED FOR THE *CTQ* QUEUE. THE VALUE OF THE LOOP VARIABLE
  92. * UPON FINDING A MATCH WILL BE THE INTERNAL ID ASSIGNED TO THE SM.
  93. * NOT FINDING A MATCH IMPLIES SM IS NOT DESTINED FOR THE *CTQ*
  94. * QUEUE AND THUS WILL NOT NEED TO BE ASSOCIATED WITH AN INTERNAL
  95. * ID.
  96. #
  97. ARRAY PRPFCSFC[0:MXPR$] S(1);
  98. BEGIN
  99. ITEM PR$PFCSFC U(00,00,16) = [CRITEA, # TERM CONN REQ AB #
  100. CRITEN, # TERM CONN REQ NOR #
  101. CRIAPN, # A-A CONN REQ NOR #
  102. CRIAPA, # A-A CONN REQ ABN #
  103. CRRAPN, # A-A REM CON REQ N #
  104. CRRAPA, # A-A REM CON REQ A #
  105. CRRCNN, # RECONN TO NVF NOR #
  106. CRRCNA, # REC/A TO NIP #
  107. CRSWH, # SWITCH CONN REQ #
  108. CRTRM, # TERMINATE CONN #
  109. FCRST, # RESET #
  110. HOPSRTN$, # HOP START NORM #
  111. HOPENDN$]; # HOP END NORM #
  112. END
  113.  
  114. WCB$WORD[0] = 0; # CLEAR WORD COUNT BUFFER #
  115. ABHWORD[0] = 0; # CLEAR ABH WORD BUFFER #
  116. ABHABT[0] = MTYP;
  117. ABHADR[0] = MADR;
  118. ABHTLC[0] = MLNGTH;
  119. IF (MTYP EQ APPPR$) OR (MTYP EQ APPCMD)
  120. THEN # PROTOCOL RESPONSE #
  121. BEGIN # SM #
  122. MATCH = FALSE;
  123. FOR I = 0 STEP 1 WHILE (NOT MATCH AND I LQ MXPR$)
  124. DO
  125. BEGIN
  126. IF PR$PFCSFC[I] EQ MTX$PFCSFC[0]
  127. THEN
  128. BEGIN
  129. WCB$SMID[0] = I;
  130. MATCH = TRUE; # END SEARCH #
  131. END
  132. END
  133. WCB$WC[0] = MLNGTH + 2; # LENGTH OF ENTRY IN WORDS #
  134. ABHACT[0] = ACTAPR$; # PRESET TO ASYNCHRONOUS PR #
  135. IF MADR NQ 0
  136. THEN # SYNCHRONOUS PROTOCOL RESPONSE #
  137. BEGIN
  138. ABHACT[0] = ACTSPR$;
  139. IF MTX$PFCSFC[0] EQ CTRCHAR # IF CTR/CHAR SM, THE LENGTH IS #
  140. THEN # NUMBER OF OCTETS (NOT WORD #
  141. BEGIN # COUNT), SO... #
  142. WCB$WC[0] = LCTRL + 2; # ADJUST WC ACCORDINGLY #
  143. END
  144. END
  145. END
  146. ELSE # NON PROTOCOL RESPONSE #
  147. BEGIN
  148. IF MTYP EQ 1
  149. THEN # READ VCB FILE #
  150. BEGIN
  151. ABHABN[0] = LOC(P<VCBRDQ>); # RETURN VCB DATA TO *VCBRDQ* #
  152. END
  153.  
  154. IF MTYP EQ 10 # IF AA VCB READ REQUEST #
  155. THEN
  156. BEGIN
  157. ABHABN[0] = LOC(P<AAVCBRDQ>);
  158. ABHABT[0] = VCBREAD$;
  159. END
  160.  
  161.  
  162. IF MTYP EQ 6
  163. THEN # SET HOP ALERT FLAG #
  164. BEGIN
  165. WCB$HAF[0] = TRUE;
  166. END
  167.  
  168. WCB$WC[0] = MLNGTH / 10 + 2;
  169. ABHACT[0] = ACTTTX$;
  170. END
  171.  
  172. SSTAQE(QUEUE,WCBUF,ABHBUF,MTEXT); # TRANSFER MESSAGE TO QUEUE #
  173. END # END NVFUMQE #
  174.  
  175. TERM
cdc/nos2.source/nam5871/nvfumqe.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator