User Tools

Site Tools


cdc:nos2.source:nam5871:cssano

CSSANO

Table Of Contents

  • [00006] PROC CSSANO
  • [00007] ACQUIRE NEW OPERATOR.
  • [00010] ACQUIRE NEW OPERATOR.
  • [00029] PROC SSBCBW
  • [00030] PROC SSBSBW
  • [00031] PROC SSTAQE

Source Code

CSSANO.txt
  1. *DECK CSSANO
  2. USETEXT TEXTCS
  3. USETEXT TEXTSS
  4. USETEXT TXTAPSS
  5. USETEXT TXTSMCS
  6. PROC CSSANO;
  7. # TITLE - ACQUIRE NEW OPERATOR. #
  8. BEGIN
  9. #
  10. ** CSSANO - ACQUIRE NEW OPERATOR.
  11. *
  12. * D.K. ENDO 82/03/09
  13. *
  14. * THIS PROCEDURE, GIVEN A HOP/STRT OR A CON/REQ, INITIALIZES THE
  15. * APPROPRIATE OCB AND MAKES QUEUE ENTRIES AS NEED FOR THE OPERATOR
  16. * CONNECTION.
  17. *
  18. * ENTRY 1. ENTRIES IN THE PROTOCOL EVENT QUEUE.
  19. *
  20. * EXIT 1. APPROPRIATE OCB INITIALIZED.
  21. * 2. ENTRIES IN THE CONNECTION TRAFFIC QUEUE.
  22. *
  23. #
  24. #
  25. **** PROC CSSANO - XREF LIST BEGINS.
  26. #
  27. XREF
  28. BEGIN
  29. PROC SSBCBW; # CLEAR BIT IN WORD #
  30. PROC SSBSBW; # STORE BIT IN WORD #
  31. PROC SSTAQE; # ADD QUEUE ENTRY #
  32. END
  33. #
  34. ****
  35. #
  36. DEF INTMSG1L # 40 #; # INITIAL NOP MESSAGE LENGTH #
  37. DEF INTMSG2L # 50 #; # INITIAL DOP MESSAGE LENGTH #
  38. DEF NOP$BIT # 39 #; # NOP BIT POSITION IN AAWC WORD #
  39. DEF NTO$BIT # 49 #; # NO TIME OUT BIT POSITION IN AAWC WORD #
  40. DEF SHDMSGL # 30 #; # SHUT DOWN MESSAGE LENGTH #
  41.  
  42. ITEM HR$WC I = 4; # HISTORY REQUEST QUEUE ENTRY WORD COUNT #
  43. ITEM I; # LOOP INDUCTION VARIABLE #
  44.  
  45.  
  46. #
  47.   THE FOLLOWING BASED ARRAY IS USED TO POINT TO THE REPORT BIT
  48.   MAPS IN THE NPUCB-S
  49. #
  50. BASED ARRAY FLG$WORD [00:00] S(NPCBSZ$);
  51. BEGIN
  52. ITEM FW$WORD I(00,00,60);
  53. END
  54.  
  55.  
  56. #
  57.   THE FOLLOWING TWO ARRAYS DEFINE THE ENTRY AND HEADER OF AN ENTRY
  58.   MADE TO THE HISTORY REQUEST QUEUE WHEN A HOP/STRT REQUEST COMES
  59.   IN.
  60. #
  61. ARRAY HR$ENT [00:01] S(1);
  62. BEGIN
  63. ITEM HRE$TXT C(00,00,10) = ["HI."];
  64. ITEM HRE$VAL C(01,00,07) = ["HI0"];
  65. ITEM HRE$STYP C(01,42,03) = ["VEB"];
  66. END
  67. ARRAY HR$HDR [00:00] S(1);
  68. BEGIN
  69. ITEM HRH$SPC U(00,00,06) = [ 1 ];
  70. ITEM HRH$APC U(00,06,06) = [ 0 ];
  71. ITEM HRH$CWC U(00,12,06) = [ 1 ];
  72. ITEM HRH$OID U(00,18,12) = [ HOPORD$ ];
  73. ITEM HRH$CV C(00,30,03) = [ "HI0" ];
  74. ITEM HRH$CCC U(00,48,12) = [ 3 ];
  75. END
  76. #
  77.   THE FOLLOWING ARRAYS ARE MESSAGES THAT ARE SENT TO THE NOP WHEN
  78.   HE/SHE CONNECTS TO CS.
  79. #
  80. ARRAY INTMSG1 [00:00] S(4);
  81. BEGIN
  82. ITEM IM1$TXT C(00,00,35) =
  83. ["HELLO, YOU ARE NOW AN NPU OPERATOR."];
  84. ITEM IM1$ZBYT U(03,30,30) = [0];
  85. END
  86. ARRAY INTMSG2 [00:00] S(5);
  87. BEGIN
  88. ITEM IM2$TXT C(00,00,41) =
  89. ["HELLO, YOU ARE NOW A DIAGNOSTIC OPERATOR."];
  90. ITEM IM2$ZBYT U(04,06,54) = [0];
  91. END
  92. ARRAY SHDMSG [00:00] S(3);
  93. BEGIN
  94. ITEM SD$TXT C(00,00,28) =
  95. ["HOST IDLE DOWN IN PROGRESS."];
  96. ITEM SD$ZBYT U(02,48,12) = [0];
  97. END
  98. #
  99.   THE FOLLOWING IS USED TO POINT TO THE APPROPRIATE MESSAGE TO BE
  100.   SENT TO THE NOP
  101. #
  102. BASED ARRAY LINTXT [00:00] S(4);
  103. BEGIN
  104. ITEM LT$TXT C(00,00,40);
  105. END
  106. CONTROL EJECT;
  107. # #
  108. # CSSANO CODE BEGINS HERE #
  109. # #
  110. #
  111. * IF THIS SM IS A HOP/STRT, THEN SET THE PAGE LENGTH IN THE HOP-S
  112. * OCB THE DEFAULT K-DISPLAY VALUE, MAKE A HISTORY REQUEST QUEUE
  113. * ENTRY, SET STATE FOR HOP-S OCB, AND SET THE PROTOCOL CODE OF
  114. * THE PROTOCOL RESPONSE TO HOP/STRT/N. SEND THE PROTOCOL RESPONSE.
  115. * FOR EACH NPUCB SET THE REPORT FLAG FOR THE HOP.
  116. #
  117. IF WCB$SMID[0] EQ SMID"HOPSTRT"
  118. THEN
  119. BEGIN
  120. OC$TNAM[HOPORD$] = "HOSTCS";
  121. OC$PL[HOPORD$] = HOPLPL[0] - 1;
  122. OC$RPL[HOPORD$] = HOPRPL[0];
  123. OC$ACN[HOPORD$] = HOPORD$;
  124. OC$UNAM[HOPORD$] = " ";
  125. OC$TYPE[HOPORD$] = OPTYP"HOP";
  126. SSTAQE(P<HRQ>,HR$WC,HR$HDR,HR$ENT);
  127.  
  128. WCB$SMID[1] = SMID"HOPSRTN";
  129. WCB$WC[1] = 2;
  130. ABHWORD[1] = 0;
  131. ABHADR[1] = HOPORD$;
  132. OC$STATE[HOPORD$] = TRUE;
  133. SSTAQE(P<CNQ>,WCBUF[1],ABH[1],CSSM[1]);
  134.  
  135. P<FLG$WORD> = LOC(NPU$RFLGS[0]);
  136. FOR I=0 STEP 1 UNTIL CSNPCNT-1
  137. DO
  138. BEGIN
  139. SSBCBW(FLG$WORD[I],HOPORD$) ;
  140. END
  141. END
  142. ELSE
  143. #
  144. * IF THIS SM IS A CON/REQ, THEN SET TERMINAL NAME, USER NAME AND
  145. * PAGE LENGTH OF OCB TO CORRESPONDING FIELDS IN CON/REQ, SET THE
  146. * TIME OUT FLAG IN THE OCB ACCORDING THE CTIM BIT IN AAWC WORD.
  147. * IF CS SHUTDOWN IS IN PROGRESS, THEN SEND THE INITIAL MESSAGE WITH
  148. * THE INPUT ALLOWED FLAG CLEARED AND SEND IDLE DOWN MESSAGE WITH
  149. * THE FLAG SET, OTHERWISE JUST SEND THE INITIAL MESSAGE WITH THE
  150. * INPUT ALLOWED FLAG SET. SET THE PROTOCOL CODE OF PROTOCOL
  151. * RESPONSE TO CON/REQ/H. FOR EACH NPUB CLEAR THE REPORT FLAG FOR
  152. * THIS OPERATOR.
  153. #
  154. BEGIN
  155. OC$TNAM[CONACN[0]] = CONTNM[0];
  156. OC$ACN[CONACN[0]] = CONACN[0];
  157. OC$UNAM[CONACN[0]] = CONUSE[0];
  158. OC$PL[CONACN[0]] = CONPL[0];
  159. OC$STATE[CONACN[0]] = TRUE;
  160. IF B<NTO$BIT,1>CONAAWC[0] EQ 1
  161. THEN
  162. BEGIN
  163. OC$NTO[CONACN[0]] = TRUE;
  164. END
  165. ELSE
  166. BEGIN
  167. OC$NTO[CONACN[0]] = FALSE;
  168. END
  169. IF B<NOP$BIT,1>CONAAWC[0] EQ 1
  170. THEN
  171. BEGIN
  172. OC$TYPE[CONACN[0]] = OPTYP"NOP";
  173. END
  174. ELSE
  175. BEGIN
  176. OC$TYPE[CONACN[0]] = OPTYP"DOP";
  177. END
  178. WCB$WORD[1] = 0;
  179. WCB$SMID[1] = SMID"CONREQN";
  180. WCB$WC[1] = 2;
  181. ABHWORD[1] = 0;
  182. ABHADR[1] = ABHADR[0];
  183. SSTAQE(P<CNQ>,WCBUF[1],ABH[1],CSSM[1]);
  184. IF CSSTATE
  185. THEN # IF TRUE, THEN GRADUAL SHUT DOWN #
  186. BEGIN
  187. WCB$IAF[1] = FALSE;
  188. SSTAQE(P<CNQ>,WCBUF[1],ABH[1],LINTXT[0]);
  189. WCB$WC[1] = 2 + (SHDMSGL / 10);
  190. ABHTLC[1] = SHDMSGL;
  191. P<LINTXT> = LOC(SHDMSG);
  192. END
  193. ELSE IF OC$TYPE[CONACN[0]] EQ OPTYP"NOP"
  194. THEN
  195. BEGIN
  196. WCB$SMID[1] = SMID"TTEXT";
  197. WCB$WC[1] = 2 + (INTMSG1L / 10);
  198. ABHTLC[1] = INTMSG1L;
  199. P<LINTXT> = LOC(INTMSG1);
  200. END
  201. ELSE
  202. BEGIN
  203. WCB$SMID[1] = SMID"TTEXT";
  204. WCB$WC[1] = 2 + (INTMSG2L / 10);
  205. ABHTLC[1] = INTMSG2L;
  206. P<LINTXT> = LOC(INTMSG2);
  207. END
  208. WCB$IAF[1] = TRUE;
  209. SSTAQE(P<CNQ>,WCBUF[1],ABH[1],LINTXT[0]);
  210.  
  211. P<FLG$WORD> = LOC(NPU$RFLGS[0]);
  212. FOR I=0 STEP 1 UNTIL CSNPCNT-1
  213. DO
  214. BEGIN
  215. SSBCBW( FLG$WORD[I] , ABHADR[0] );
  216. END
  217. END
  218.  
  219. RETURN; # **** RETURN **** #
  220. END # CSSANO #
  221. TERM
cdc/nos2.source/nam5871/cssano.txt ยท Last modified: 2023/08/05 17:21 by Site Administrator