User Tools

Site Tools


cdc:nos2.source:nam5871:cssago

CSSAGO

Table Of Contents

  • [00008] PROC CSSAGO
  • [00009] CSSAGO - ACTION GO COMMAND
  • [00014] ACTION GO COMMAND.
  • [00040] PROC SSCCTR
  • [00041] PROC SSTAQE
  • [00042] PROC MOVE

Source Code

CSSAGO.txt
  1. *DECK CSSAGO
  2. USETEXT TEXTCS;
  3. USETEXT TEXTSS;
  4. USETEXT TXTSMCS;
  5. USETEXT TXTAPSS;
  6. USETEXT TXTSUSS;
  7. USETEXT TXCMDCS;
  8. PROC CSSAGO;
  9. # TITLE CSSAGO - ACTION GO COMMAND #
  10.  
  11. BEGIN # CSSAGO #
  12.  
  13. #
  14. ** CSSAGO - ACTION GO COMMAND.
  15. *
  16. * C. BRION 82/04/15.
  17. *
  18. * THIS PROCEDURE PROCESSES THE GO COMMAND FROM AN OPERATOR.
  19. *
  20. * PROC CSSAGO
  21. *
  22. * ENTRY:
  23. * HDRCMD = COMMAND HEADER WORD.
  24. * PARMS = ARRAY THAT CONTAINS THE COMMAND TEXT, THE SYNTAX PARAM-
  25. * ETER LIST, THE ADDRESS PARAMETER LIST.
  26. *
  27. * EXIT:
  28. * A SUP/GO/N SM IS SENT TO THE APPROPRIATE NPU.
  29. * THE COMMAND TEXT IS SENT TO THE LOG FILE VIA AN EVENT TO THE
  30. * EVENT PROCESSOR QUEUE.
  31. *
  32. #
  33.  
  34. #
  35. **** PROC CSSAGO XREF LIST
  36. #
  37.  
  38. XREF
  39. BEGIN
  40. PROC SSCCTR; # SS-CANCEL TIMER REQUEST #
  41. PROC SSTAQE; # SS-ACCEPT QUEUE ENTRY #
  42. PROC MOVE; # MACREL MOVE MEMORY #
  43. END
  44.  
  45. #
  46. ****
  47. #
  48.  
  49. #
  50. * PROC CSSAGO ITEMS
  51. #
  52.  
  53. ITEM NPUORD U; # NPUCB ORDINAL #
  54. ITEM I U;
  55. ITEM BEGAPIX U; # START ADDR LIST INDEX #
  56. ITEM BEGNPU I; # START NPUCB #
  57. ITEM FINAPIX U; # END ADDR LIST INDEX #
  58. ITEM FINNPU I; # END NPUCB #
  59. ITEM SUCCESS B; # FLAG SET AFTER CANCEL TIMER #
  60.  
  61.  
  62.  
  63.  
  64.  
  65. #
  66. * PROC CSSAGO EXECUTION STARTS HERE
  67. #
  68.  
  69. #
  70. * INITIALIZE THE OUTGOING ENTRY STORAGE AREAS AND LOCAL VARS.
  71. #
  72.  
  73. WCB$WORD[1] = 0;
  74. ABHWORD[1] = 0;
  75. SPMSG0[1] = 0;
  76. NPUORD = 0;
  77.  
  78. #
  79. * SET THE ADDRESS LIST INDEX BOUNDS.
  80. #
  81.  
  82. BEGAPIX = HDR$TXWCNT[0] + HDR$SPCNT[0];
  83. FINAPIX = HDR$APCNT[0] + BEGAPIX - 1;
  84.  
  85. #
  86. * IF THIS IS JUST FOR ONE NPU, THEN...
  87. * SEARCH THE COMMAND ADDRESS PARAMETER LIST OF PARMS ARRAY FOR AN
  88. * NPU ORDINAL KEYWORD (NOR). SHOULD ALWAYS FIND THE KEYWORD.
  89. #
  90. IF BEGAPIX LQ FINAPIX
  91. THEN
  92. BEGIN
  93.  
  94. FOR I = BEGAPIX STEP 1 WHILE
  95. PAR$PCODE[I] NQ "NOR"
  96. DO
  97. BEGIN
  98. END
  99.  
  100. NPUORD = PAR$ORD[I]; # SET NPUCB ORDINAL #
  101.  
  102. BEGNPU = NPUORD;
  103. FINNPU = NPUORD;
  104. END
  105.  
  106. #
  107. * THE GO IS FOR ALL NPUS. SET THE PARAMETERS TO CHECK ALL THE
  108. * NPUCB-S.
  109. #
  110. ELSE
  111. BEGIN
  112. BEGNPU = 0;
  113. FINNPU = CSNPCNT - 1;
  114. END
  115. #
  116. * SET UP THE ABH WORD FOR THE OUTGOING SUP/GO/N SM.
  117. #
  118.  
  119. ABHABT[1] = APPSUP;
  120. ABHBT[1] = APPSUP;
  121. ABHACT[1] = ACTCSNP$;
  122. ABHTLC[1] = NSUPGO;
  123. PFCSFC[1] = SUPGON;
  124.  
  125. #
  126. * SET UP THE WORD COUNT WORD OF THE SM ENTRY TO THE OUTGOING
  127. * OPERATOR TRAFFIC QUEUE.
  128. #
  129.  
  130. WCB$SMID[1] = SMID"SUPGON";
  131. WCB$WC[1] = LSUPGO + 2;
  132.  
  133. #
  134. * SEND THE SM TO THE NPU(S).
  135. #
  136. FOR NPUORD=BEGNPU STEP 1 UNTIL FINNPU
  137. DO
  138. BEGIN
  139. IF NPU$STAT[NPUORD] EQ SUPSTAT"SUP"
  140. THEN
  141. BEGIN
  142. ABHDN[1] = NPU$NID[NPUORD];
  143. ABHSN[1] = NPU$HID[NPUORD];
  144.  
  145. SSTAQE(P<OTQ>,WCBUF[1],ABH[1],CSSM[1]);
  146.  
  147. IF NPU$GFLAG[NPUORD]
  148. THEN
  149. BEGIN
  150. #
  151. * CANCEL TIMER REQUEST AND CLEAR -NEED GO- FLAG IN THE NPUCB.
  152. #
  153. SSCCTR(NPU$CNUM[NPUORD],SUCCESS);
  154.  
  155. NPU$GFLAG[NPUORD] = FALSE;
  156. END
  157. END
  158. END
  159.  
  160. #
  161. * SET UP TO SEND THE NULL TEXT TO THE OPERATOR TO CAUSE THE
  162. * READY.. MESSAGE.
  163. #
  164.  
  165. WCB$WORD[1] = 0;
  166. ABHWORD[1] = 0;
  167. ABHADR[1] = HDR$OPORD[0];
  168. WCB$SMID[1] = SMID"TTEXT";
  169. WCB$IAF[1] = TRUE;
  170. WCB$WC[1] = 2;
  171. SSTAQE(P<CNQ>,WCBUF[1],ABH[1],CSSM[1]);
  172.  
  173. #
  174. * SET UP AND SEND THE EVENT ENTRY TO LOG THE TEXT.
  175. #
  176.  
  177. WCB$WORD[1] = 0;
  178. ABHWORD[1] = 0;
  179. WCB$SMID[1] = SMID"CMDTXT";
  180. WCB$WC[1] = HDR$TXWCNT[0] + 4;
  181. P<MSCMD> = LOC(CMD$TEXT[0]);
  182. CMD$TNAM[0] = OC$TNAM[HDR$OPORD[0]];
  183.  
  184. #
  185. * MOVE THE TEXT INTO THE TEXT BUFFER.
  186. #
  187.  
  188. MOVE(HDR$TXWCNT[0],PARMS[0],MSCMD[0]);
  189.  
  190. SSTAQE(P<EVQ>,WCBUF[1],ABH[1],CMDLINE[0]);
  191.  
  192. END #CSSAGO#
  193.  
  194. TERM
cdc/nos2.source/nam5871/cssago.txt ยท Last modified: 2023/08/05 17:21 by Site Administrator