User Tools

Site Tools


cdc:nos2.source:nam5871:csoboe

CSOBOE

Table Of Contents

  • [00005] PROC CSOBOE
  • [00006] CSOBOE - BROADCAST OPERATOR EVENTS.
  • [00011] BROADCAST OPERATOR EVENTS.
  • [00037] PROC SSBTBW
  • [00038] PROC SSTAQE
  • [00039] PROC SSTRQE
  • [00040] PROC CSOAHL

Source Code

CSOBOE.txt
  1. *DECK CSOBOE
  2. USETEXT TEXTCS;
  3. USETEXT TEXTSS;
  4. USETEXT TXTAPSS;
  5. PROC CSOBOE;
  6. # TITLE CSOBOE - BROADCAST OPERATOR EVENTS. #
  7.  
  8. BEGIN # CSOBOE #
  9.  
  10. #
  11. ** CSOBOE - BROADCAST OPERATOR EVENTS.
  12. *
  13. * C. BRION 82/06/09.
  14. * D.K. ENDO 83/02/17 ADD FILTERED REPORT.
  15. *
  16. * THIS PROCEDURE EXTRACTS OPERATOR GROUP RESPONSE ENTRIES FROM
  17. * THE OPERATOR RESPONSE QUEUE (ORQ) AND GENERATES THE NEEDED
  18. * OPERATOR DIRECTED EVENT LINES DEPENDING ON THE AUDIENCE GROUP
  19. * OF THE ENTRY.
  20. *
  21. * PROC CSOBOE
  22. *
  23. * ENTRY
  24. * ENTRIES IN THE OPERATOR RESPONSE QUEUE.
  25. *
  26. * EXIT
  27. * ENTRIES IN THE ODEQ WITH THE APPROPRIATE ACN VALUE FOR EACH.
  28. *
  29. #
  30.  
  31. #
  32. **** PROC CSOBOE XREF LIST.
  33. #
  34.  
  35. XREF
  36. BEGIN
  37. PROC SSBTBW; # SS-TEST BIT IN WORD #
  38. PROC SSTAQE; # SS-ACCEPT QUEUE ENTRY #
  39. PROC SSTRQE; # SS-REMOVE QUEUE ENTRY #
  40. PROC CSOAHL; # ADD HISTORY LINES #
  41. END
  42. #
  43. ****
  44. #
  45.  
  46. #
  47. * AGSWTCH - SWITCH LIST USED TO JUMP TO THE APPROPRIATE PARAGRAPH
  48. * BASED ON AUDIENCE GROUP.
  49. #
  50. SWITCH AGSWTCH ENDCASE,
  51. AUDGR1,
  52. AUDGR2,
  53. AUDGR3,
  54. AUDGR4,
  55. ENDCASE,
  56. ENDCASE;
  57.  
  58.  
  59. #
  60. * ITEMS
  61. #
  62.  
  63. ITEM I; # LOOP VAR #
  64. ITEM NORD U; # NPU ORDINAL WORD #
  65. ITEM OORD U; # OCB ORDINAL WORD #
  66. ITEM REPORT B; # REPORT FLAG #
  67.  
  68.  
  69.  
  70. #
  71. * THE MAIN LOOP CONTINUES TO EXECUTE AS LONG AS ENTRIES EXIST IN
  72. * THE OPERATOR RESPONSE QUEUE.
  73. #
  74.  
  75. FOR I = 0 STEP 1 WHILE ORQL NQ 0
  76. DO
  77. BEGIN
  78. SSTRQE(P<ORQ>,WCBUF[0],ABH[0],MSGBUF[0]); # REMOVE ENTRY #
  79.  
  80.  
  81. WCB$WORD[1] = WCB$WORD[0];
  82. WCB$IAF[1] = FALSE;
  83. WCB$HAF[1] = FALSE;
  84. ABHWORD[1] = 0;
  85. ABHADR[1] = HOPORD$;
  86.  
  87. #
  88. * LOG THE MESSAGE IN THE HISTORY BUFFER.
  89. #
  90.  
  91. CSOAHL;
  92.  
  93. #
  94. * CASE ON THE AUDIENCE GROUP NUMBER TO DETERMINE WHO SHOULD
  95. * RECEIVE THIS MESSAGE.
  96. #
  97.  
  98. GOTO AGSWTCH[ABHADR[0]];
  99.  
  100. #
  101. * THE AUDIENCE GROUP IS ONE. IF THERE IS NO CONTROLLING NOP THEN
  102. * SET THE HOP ALERT FLAG. SEND THE MESSAGE TO THE HOP. FOR EACH
  103. * ACTIVE OPERATOR, SEND THE MESSAGE.
  104. #
  105.  
  106. AUDGR1:
  107. IF NPU$CNOP[ABHABN[0]] EQ 0
  108. THEN
  109. BEGIN
  110. WCB$HAF[1] = TRUE;
  111. END
  112.  
  113. SSTAQE(P<ODEQ>,WCBUF[1],ABH[1],MSGBUF[0]);
  114.  
  115. FOR I=MINACN$ STEP 1 UNTIL MAXACN$
  116. DO
  117. BEGIN
  118. IF OC$STATE[I]
  119. THEN
  120. BEGIN
  121. ABHADR[1] = I;
  122. SSTAQE(P<ODEQ>,WCBUF[1],ABH[1],MSGBUF[0]);
  123. END
  124. END
  125.  
  126. GOTO ENDCASE;
  127.  
  128. #
  129. * THE AUDIENCE GROUP IS TWO. SET THE HOP ALERT FLAG. SEND THE
  130. * MESSAGE TO THE HOP. FOR EACH ACTIVE NOP, SEND THE MESSAGE.
  131. #
  132.  
  133. AUDGR2:
  134. WCB$HAF[1] = TRUE;
  135.  
  136. SSTAQE(P<ODEQ>,WCBUF[1],ABH[1],MSGBUF[0]);
  137.  
  138. FOR I=MINACN$ STEP 1 UNTIL MAXACN$
  139. DO
  140. BEGIN
  141. IF OC$STATE[I] AND
  142. OC$TYPE[I] EQ OPTYP"NOP"
  143. THEN
  144. BEGIN
  145. ABHADR[1] = I;
  146. SSTAQE(P<ODEQ>,WCBUF[1],ABH[1],MSGBUF[0]);
  147. END
  148. END
  149.  
  150. GOTO ENDCASE;
  151.  
  152. #* THE AUDIENCE GROUP IS THREE. IF THIS HOP IS RECEIVING REPORTS
  153. * THEN SEND THE MESSAGE TO THE HOP WITH THE SOP ALERT FLAG SET IF
  154. * THERE IS NOP CONTROLLING NOP. FOR EACH OPERATOR RECEIVING
  155. * REPORTS FOR THIS NPU, SEND THE MESSAGE.
  156. #
  157.  
  158. AUDGR3:
  159. SSBTBW( NPU$RFLGS[ABHABN[0]] , HOPORD$ , REPORT );
  160.  
  161. IF REPORT
  162. THEN
  163. BEGIN
  164. IF NPU$CNOP[ABHABN[0]] EQ 0
  165. THEN
  166. BEGIN
  167. WCB$HAF[1] = TRUE;
  168. END
  169.  
  170. SSTAQE(P<ODEQ>,WCBUF[1],ABH[1],MSGBUF[0]);
  171. END
  172.  
  173. FOR I=MINACN$ STEP 1 UNTIL MAXACN$
  174. DO
  175. BEGIN
  176. IF OC$STATE[I]
  177. THEN
  178. BEGIN
  179. SSBTBW( NPU$RFLGS[ABHABN[0]] , I , REPORT );
  180.  
  181. IF REPORT
  182. THEN
  183. BEGIN
  184. ABHADR[1] = I;
  185. SSTAQE(P<ODEQ>,WCBUF[1],ABH[1],MSGBUF[0]);
  186. END
  187. END
  188. END
  189.  
  190. GOTO ENDCASE;
  191.  
  192. #
  193. * THE AUDIENCE GROUP IS FOUR. IF THERE IS NO CONTROLLING NOP,
  194. * THEN SET THE HOP ALERT FLAG. SEND THE MESSAGE TO THE HOP.
  195. * IF THERE IS A CONTROLLING NOP THEN SEND THE MESSAGE TO HIM.
  196. #
  197.  
  198. AUDGR4:
  199. IF NPU$CNOP[ABHABN[0]] EQ 0
  200. THEN
  201. BEGIN
  202. WCB$HAF[1] = TRUE;
  203. END
  204. ELSE
  205. BEGIN
  206. ABHADR[1] = NPU$CNOP[ABHABN[0]];
  207. SSTAQE(P<ODEQ>,WCBUF[1],ABH[1],MSGBUF);
  208. END
  209.  
  210. ABHADR[1] = HOPORD$;
  211. SSTAQE(P<ODEQ>,WCBUF[1],ABH[1],MSGBUF);
  212.  
  213. GOTO ENDCASE;
  214.  
  215. ENDCASE:
  216. END # FOR I LOOP #
  217.  
  218. END # CSOBOE #
  219.  
  220. TERM
cdc/nos2.source/nam5871/csoboe.txt ยท Last modified: 2023/08/05 17:21 by Site Administrator