User Tools

Site Tools


cdc:nos2.source:nam5871:hsfcack

HSFCACK

Table Of Contents

  • [00011] PROC HSFCACK(PSUEDONH,ACNBADDR)
  • [00059] PROC BLINK
  • [00060] PROC MGETS
  • [00061] PROC MRELS
  • [00062] PROC OSCHAPP
  • [00063] PROC XTRACE
  • [00123] PROC BLDMSG

Source Code

HSFCACK.txt
  1. *DECK HSFCACK
  2. USETEXT ACB
  3. USETEXT ACNB
  4. USETEXT ACNT
  5. USETEXT AT
  6. USETEXT DRHDR
  7. USETEXT PARAMS
  8. USETEXT NIPDEF
  9. USETEXT SUPMSG
  10.  
  11. PROC HSFCACK(PSUEDONH,ACNBADDR);
  12. STARTIMS;
  13. #
  14. *1DC HSFCACK
  15. *
  16. * 1. PROC NAME AUTHOR DATE
  17. * HSFCACK E. GEE 85/05/05
  18. *
  19. * 2. FUNCTIONAL DESCRIPTION :
  20. * SEND FC/ACK AND/OR FC/NAK SUPERVISORY MESSAGES TO THE
  21. * APPLICATION.
  22. *
  23. * 3. METHOD USED:
  24. * IF ONLY QUEUEING FC/ACK FOR APPLICATION,
  25. * CALL BLDMSG TO BUILD AND QUEUE FC/ACK FOR APPLICATION.
  26. * ELSE (QUEUING ONE OR MORE FC/NAKS AND FC/ACK FOR APPL),
  27. * CALL BLDMSG TO BUILD AND QUEUE FC/ACK OR FC/NAK FOR EACH
  28. * ENTRY IN NAK/ACK BUFFER.
  29. * 4. ENTRY PARAMS:
  30. * PSUEDONH ADDR OF NAK/ACK BUFFER.
  31. * ACNBADDR ACNB ADDRESS .
  32. *
  33. * 5. EXIT PARAMS:
  34. * NONE.
  35. *
  36. * 6. COMDECKS CALLED
  37. * NIPDEF SUPMSG ACB ACNB
  38. * ACNT AT
  39. * DRHDR PARAMS
  40. *
  41. * 7. ROUTINES CALLED:
  42. * BLINK LINK MESSAGE TO ACB OF APPLICATION.
  43. * OSCHAPP SCHEDULER FOR APPLICATION.
  44. * MGETS GET BUFFER FOR FC/ACK OR FC/NAK
  45. * MRELS RELEASE BUFFER
  46. *
  47. * 8. NOTE:
  48. * THIS PROCEDURE IS CALLED BY HBSTTP.
  49. *
  50. *
  51.  #
  52. STOPIMS;
  53.  
  54. #
  55.   EXTERNAL REF
  56. #
  57. XREF
  58. BEGIN
  59. PROC BLINK ;
  60. PROC MGETS ;
  61. PROC MRELS; # RELEASE BUFFER #
  62. PROC OSCHAPP ;
  63. PROC XTRACE ;
  64. END
  65.  
  66. #
  67.   INPUT PARAMETERS
  68. #
  69. ITEM PSUEDONH; # ADDR OF BUF CONTAINING ACK/NAK#
  70. ITEM ACNBADDR; # ADDRESS OF ACNB #
  71. #
  72.   INTERNAL VARIABLES
  73. #
  74. ITEM ACNTIND ; # INDEX OF ACNT #
  75. ITEM BUFADDR ; # BUFFER ADDRESS OF SM #
  76. ITEM BUFSIZE ; # SIZE OF PSUEDO BUFFER #
  77. ITEM I ;
  78.  
  79. #**********************************************************************#
  80. #
  81.   EXECUTABLE CODE BEGINS HERE
  82. #
  83. BEGIN # BEGIN HSFCACK #
  84. CONTROL IFEQ DEBUG,1;
  85. XTRACE("HSACK") ;
  86. CONTROL FI ;
  87.  
  88. P<ACNB> = ACNBADDR; # ADDRESS OF ACNB #
  89. BUFADDR = PSUEDONH; # ADDR OF BUFFER TO HOLD FC/ACK #
  90. P<DRHDRWD> = PSUEDONH;
  91. BUFSIZE = DRBS[0] - BLKHSIZE; # NUMBER OF FC/ACKS/NAKS TO SEND#
  92. P<SUPMSG> = P<DRHDRWD> + BLKHSIZE; # ADDR OF WORD CONTAINING PFC #
  93. FCACN[0] = ACNBACN[0]; # APPLICATION CONNECTION NUMBER #
  94. P<ACB> = ATACBA[ACNBAN[0]];
  95. P<ACNT> = ACBACNT[0] ;
  96.  
  97. ACNTIND = ACNBACN[0] - ACNTMINACN[0] + ACNTHSIZE ;
  98.  
  99. IF PFCSFC[0] EQ FCACK
  100. THEN # ONLY QUEUE FC/ACK FOR APP #
  101. BEGIN
  102. BLDMSG;
  103. END
  104. ELSE # ONE OR MORE NAK FOLLOWED BY AK#
  105. BEGIN
  106. FOR I = BLKHSIZE STEP 1 WHILE I LQ BUFSIZE
  107. DO
  108. BEGIN # CREATE FC/ACK OR NAK #
  109. # ENTRY BY ENTRY #
  110. P<SUPMSG> = PSUEDONH + I ;
  111. FCACN[0] = ACNBACN[0]; # APPLICATION CONNECTION NUMBER #
  112. MGETS(LFCACK + BLKHSIZE + ABHSIZE,BUFADDR,TRUE) ;
  113. P<DRHDRWD> = BUFADDR;
  114. BLDMSG;
  115. END # CREAT FC/ACK OR NAK #
  116.  
  117. MRELS(PSUEDONH);
  118. END
  119. OSCHAPP(P<ACB>);
  120.  
  121. RETURN ;
  122. CONTROL EJECT;
  123. PROC BLDMSG;
  124. STARTIMS;
  125. #
  126. *1DC BLDMSG
  127. *
  128. * 1. PROC NAME AUTHOR DATE
  129. * BLDMSG E. GEE 02/26/85
  130. *
  131. * 2. FUNCTIONAL DESCRIPTION.
  132. * BUILD AND QUEUE FC/ACK OR FC/NAK SUPERVISORY MESSAGE FOR
  133. * APPLICATION.
  134. *
  135. * 3. METHOD USED.
  136. * COMPLETE BUILDING SUPERVISORY MESSAGE.
  137. * BUILD APPLICATION BLOCK HEADER WORD.
  138. * CALL BLINK TO QUEUE SUPERVISORY MESSAGE.
  139. *
  140. * 4. ENTRY PARAMS.
  141. * BUFADDR ADDR OF BUFFER TO HOLD APPL ACK/NAK SUP MSG
  142. * P<ACB> ADDR OF ACB TO QUEUE SUP MSG TO
  143. * ACNTIND ACNT TABLE INDEX FOR CONNECTION NUMBER
  144. * P<ACNT> ADDR OF ACNT FOR APP
  145. * P<DRHDRWD> ADDR OF WORD TO HOLD ABH WORD
  146. * P<SUPMSG> ADDR OF WORD CONTAINING NETWORK ACK/NAKS
  147. *
  148. * 5. EXIT PARAMS.
  149. * NONE.
  150. *
  151. * 6. COMMON DECKS AND SYMPL TEXT USED.
  152. * NONE.
  153. *
  154. * 7. ROUTINES CALLED.
  155. * BLINK LINK MESSAGE TO ACB OF APPLICATION.
  156. * OSCHAPP ISSUE SWAPIN FOR APPL IF NECESSARY
  157. *
  158. * 8. DAYFILE MESSAGES OR OTHER IMPORTANT INFORMATION.
  159. *
  160. * THIS PROCEDURE IS A INTERNAL PROCEDURE OF HSFCACK.
  161. *
  162. *
  163.  #
  164. STOPIMS;
  165. CONTROL EJECT;
  166. BEGIN
  167. #
  168.   INTERNAL VARIABLES
  169. #
  170. ARRAY ABH$ S(1); # APP BLOCK HEADER FOR SUP MSG #
  171. BEGIN
  172. ITEM ABH$ABT U(00,00,06) = [APPCMD]; # APP BLOCK TYPE #
  173. ITEM ABH$ADR U(00,06,12) = [0]; # APP CON NUMBER #
  174. ITEM ABH$ABN U(00,18,18) = [0]; # APP BLOCK NUMBER #
  175. ITEM ABH$ACT U(00,36,04) = [CT60TRANS]; # APP CHAR TYPE #
  176. ITEM ABH$DBC U(00,40,08) = [0]; # DATA BLOCK CLARIFIER#
  177. ITEM ABH$TLC U(00,48,12) = [LFCACK]; # TEXT LENGTH IN CHARS#
  178. ITEM ABH$WORD U(00,00,60); # APP BLOCK HEADER WD #
  179. END
  180.  
  181. #**********************************************************************#
  182. #
  183.   EXECUTABLE CODE BEGINS HERE
  184. #
  185. CMWORD[BLKHSIZE+ABHSIZE] = SPMSG0[0]; # COPY SUP MSG #
  186. CMWORD[ABHSIZE] = ABH$WORD[0]; # CREATE APP BLOCK HEADER WORD #
  187.  
  188. BLINK(BUFADDR,P<ACB>); # LINK TO APPL ACB #
  189. ACNTABO[ACNTIND] = ACNTABO[ACNTIND] - 1; # DECREM BLKS OUT #
  190. END # END BLDMSG #
  191. END # END HSFCACK #
  192. TERM
  193.  
cdc/nos2.source/nam5871/hsfcack.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator