User Tools

Site Tools


cdc:nos2.source:nam5871:cssaso

CSSASO

Table Of Contents

  • [00007] PROC CSSASO
  • [00011] ACTION SEND TO OPERATOR.
  • [00031] PROC MOVE
  • [00032] PROC SSBSBF
  • [00033] PROC SSTAQE

Source Code

CSSASO.txt
  1. *DECK CSSASO
  2. USETEXT TEXTCS
  3. USETEXT TEXTSS
  4. USETEXT TXCMDCS
  5. USETEXT TXTAPSS
  6. USETEXT TXTSMCS
  7. PROC CSSASO;
  8. # TITLE - ACTION SEND TO OPERATOR #
  9. BEGIN
  10. #
  11. ** CSSASO - ACTION SEND TO OPERATOR.
  12. *
  13. * D.K. ENDO 83/03/22
  14. *
  15. * THIS ROUTINE SENDS MESSAGES TO OTHER OPERATORS.
  16. *
  17. * PROC CSSASO
  18. *
  19. * ENTRY 1. HDRCMD[0] = COMMAND HEADER WORD.
  20. * 2. PARMS[0] = COMMAND PARAMETER BLOCK.
  21. *
  22. * EXIT 1. MESSAGE SENT TO OPERATOR.
  23. *
  24. #
  25.  
  26. #
  27. **** CSSASO - XREF LIST
  28. #
  29. XREF
  30. BEGIN
  31. PROC MOVE; # MOVES A BLOCK OF CM WORDS #
  32. PROC SSBSBF; # STORE BIT FIELD #
  33. PROC SSTAQE; # ACCEPT QUEUE ENTRY #
  34. END
  35. #
  36. ****
  37. #
  38.  
  39. DEF FOMTXTL # 3 #; # LENGTH OF FOM MESSAGE IN CM WORDS #
  40. DEF MSINDX # HDR$TXWCNT[0]+3 #; # INDX INTO PARM LIST FOR MS #
  41. DEF TEINDX # HDR$TXWCNT[0]+2 #; # INDX INTO PARM LIST FOR TE #
  42.  
  43. ITEM CCNT; # CHARACTER COUNT #
  44. ITEM CNST1; # CONSTANT 1 #
  45. ITEM CNST2; # CONSTANT 2 #
  46. ITEM CNST3; # CONSTANT 3 #
  47. ITEM HOPFLAG B; # FLAG SET WHEN MSG IS TO BE SENT TO HOP #
  48. ITEM I; # OPERATOR CONTROL BLOCK ORDINAL #
  49. ITEM WC; # WORD COUNT #
  50.  
  51. #
  52. * FOM - *FROM OPERATOR* MESSAGE, SENT ALONG WITH THE MESSAGE TO THE
  53. * OPERATOR.
  54. #
  55. ARRAY FOM [00:00] S(FOMTXTL);
  56. BEGIN
  57. ITEM FOM$TXT1 C(00,00,14) = ["FROM OPERATOR "];
  58. ITEM FOM$TNAM C(01,24,07);
  59. ITEM FOM$TXT2 C(02,06,02) = [": "];
  60. ITEM FOM$ZBYT U(02,18,42) = [0];
  61. END
  62.  
  63.  
  64.  
  65.  
  66. #
  67. * SET UP WCB WORD. SET UP THE ABH WORD. IF THIS MESSAGE IS FOR THE
  68. * HOST, THEN SET THE ACN FOR THE HOP, OTHERWISE SEARCH THE OCB-S
  69. * FOR THE TERMINAL NAME AND SET THE ACN TO THE OCB ORDINAL WHEN
  70. * FOUND.
  71. #
  72. WCB$WORD[1] = 0;
  73. WCB$SMID[1] = SMID"TTEXT";
  74.  
  75. ABHWORD[1] = 0;
  76.  
  77. IF PAR$PCODE[TEINDX] EQ "HO0"
  78. THEN
  79. BEGIN
  80. ABHADR[1] = HOPORD$;
  81. WCB$HAF[1] = TRUE;
  82. HOPFLAG = TRUE;
  83. I = HOPORD$;
  84. END
  85.  
  86. ELSE
  87. BEGIN
  88. FOR I=HOPORD$+1 STEP 1 WHILE PAR$ELNAME[TEINDX] NQ OC$TNAM[I]
  89. AND I LQ MAXACN$
  90. DO
  91. BEGIN
  92. END
  93.  
  94. IF I LQ MAXACN$
  95. THEN
  96. BEGIN
  97. ABHADR[1] = I;
  98. HOPFLAG = FALSE;
  99. END
  100. ELSE
  101. BEGIN
  102. GOTO ENDEXIT;
  103. END
  104. END
  105.  
  106. #
  107. * ENTER NAME OF THE TERMINAL IN TEXT AND SEND THE TEXT TO THE
  108. * OPERATOR. IF THE IS MESSAGE IS TO GO TO THE HOP THEN SET THE
  109. * AUDIENCE GROUP THE HOP AND SEND IT TO THE OPERATOR RESPONSE QUEUE
  110. * TO ENTER THE MESSAGE INTO THE HISTORY QUEUE.
  111. #
  112. CNST1 = 1;
  113. CNST2 = 24;
  114. CNST3 = 42;
  115. SSBSBF(FOM,CNST1,CNST2,CNST3,B<0,42>OC$TNAM[HDR$OPORD[0]]);
  116.  
  117. WCB$WC[1] = FOMTXTL + 2;
  118.  
  119. SSTAQE(P<CNQ>,WCBUF[1],ABH[1],FOM);
  120.  
  121. IF HOPFLAG
  122. THEN
  123. BEGIN
  124. ABHADR[1] = AUDGR6$;
  125.  
  126. SSTAQE(P<ORQ>,WCBUF[1],ABH[1],FOM);
  127. ABHADR[1] = I;
  128. END
  129.  
  130. #
  131. * MOVE TEXT OF MESSAGE TO THE MSG BUFFER. SEND THE TEXT TO THE
  132. * BUFFER. IF THIS MESSAGE IS TO BE SENT TO THE HOP, THEN SEND
  133. * THE MESSAGE TO THE OPERATOR RESPONSE QUEUE TO BE PUT IN THE
  134. * HISTORY BUFFER.
  135. #
  136.  
  137. WC = (PAR$MSGCL[MSINDX] + 10) / 10;
  138. CCNT = (WC * 10) - PAR$MSGCL[MSINDX];
  139. IF CCNT LS 2
  140. THEN
  141. BEGIN
  142. WC = WC + 1;
  143. END
  144. WCB$WC[1] = WC + 2;
  145.  
  146. MOVE(WC,PARMS[MSINDX+1],CSSM[1]);
  147.  
  148. SSTAQE(P<CNQ>,WCBUF[1],ABH[1],CSSM[1]);
  149.  
  150. IF HOPFLAG
  151. THEN
  152. BEGIN
  153. ABHADR[1] = AUDGR6$;
  154. SSTAQE(P<ORQ>,WCBUF[1],ABH[1],CSSM[1]);
  155. END
  156.  
  157. #
  158. * SEND AN EMPTY TERMINAL TEXT WITH THE INPUT ALLOWED FLAG SET TO
  159. * COMPLETE THE COMMAND.
  160. #
  161. WCB$WC[1] = 2;
  162. WCB$IAF[1] = TRUE;
  163. ABHADR[1] = HDR$OPORD[0];
  164.  
  165. SSTAQE(P<CNQ>,WCBUF[1],ABH[1],CSSM[1]);
  166.  
  167.  
  168. ENDEXIT:
  169. END # CSSASO #
  170.  
  171. TERM
cdc/nos2.source/nam5871/cssaso.txt ยท Last modified: 2023/08/05 17:21 by Site Administrator