User Tools

Site Tools


cdc:nos2.source:nam5871:cscant

CSCANT

Table Of Contents

  • [00005] PROC CSCANT
  • [00006] CSCANT - ACCEPT NOP TYPEIN.
  • [00010] ACCEPT NOP TYPEIN.
  • [00045] PROC SSTAQE

Source Code

CSCANT.txt
  1. *DECK CSCANT
  2. USETEXT TEXTCS
  3. USETEXT TEXTSS
  4. USETEXT TXTAPSS
  5. PROC CSCANT;
  6. # TITLE CSCANT - ACCEPT NOP TYPEIN. #
  7.  
  8. BEGIN # CSCANT #
  9. #
  10. ** CSCANT - ACCEPT NOP TYPEIN.
  11. *
  12. * D. G. DEPEW. 81/06/05.
  13. *
  14. * THIS PROCEDURE HANDLES INBOUND DATA (SYNCHRONOUS) BLOCKS FROM THE
  15. * NETWORK. ITS FUNCTION IS TO FORWARD THE TYPEIN TO THE I-LAYER
  16. * (FOR COMMAND PROCESSING) OR DISCARD IT, AS APPROPRIATE.
  17. *
  18. * ENTRY WCBUF[0] = WORD COUNT WORD FROM ORIGINAL CONNECTION
  19. * TRAFFIC QUEUE (*CNQ*) ENTRY.
  20. * ABHBUF[0] = APPLICATION BLOCK (EVENT) HEADER FOR THE DATA
  21. * (BASED ARRAY *ABH* IN *TXTAPSS* POINTS HERE).
  22. * MSGBUF[0] = DISPLAY CODED TEXT LINE (BASED ARRAY *APSM*
  23. * IN *TXTAPSS* POINTS HERE).
  24. *
  25. * EXIT ONE OF THE FOLLOWING:
  26. * - AN ENTRY FOR THE TYPEIN IS PLACED IN THE OPERATOR
  27. * TYPEIN QUEUE (*OPTQ*) AND THE STATE IS UPDATED.
  28. * - THE TYPEIN IS IGNORED.
  29. * - THE TYPEIN IS DISGARDED AND A TERMINAL TEXT ENTRY
  30. * CONTAINING THE MESSAGE *INPUT IGNORED..* IS PLACED IN
  31. * CONNECTION TRAFFIC QUEUE (*CNQ*).
  32. *
  33. * NOTES 1. CS ONLY PROCESSES *MSG* TYPE NETWORK BLOCKS. ANY
  34. * OTHER TYPE OF SYNCHRONOUS INBOUND DATA (*BLK* BLOCKS
  35. * AND TRANSPARENT MODE INPUT) IS IGNORED AND THE MESSAGE
  36. * *INPUT IGNORED..* IS SENT TO THE TERMINAL.
  37. * 2. THE PROCESSING IS DEFINED BY THE CS/NOP C-LAYER STATE
  38. * DIAGRAM.
  39. #
  40.  
  41. #
  42. **** PROC CSCANT - XREF LIST.
  43. #
  44. XREF
  45. PROC SSTAQE; # ACCEPT QUEUE ENTRY #
  46. #
  47. ****
  48. #
  49.  
  50.  
  51. DEF IGTLW$ #2#; # *INPUT IGNORED..* TEXT LENGTH IN WORDS #
  52.  
  53.  
  54. ITEM NACN; # NOP ACN = ORDINAL OF ACN LIST ENTRY #
  55.  
  56.  
  57. #
  58. * ABH AND SM BODY ARRAYS FOR LST/ON/SM.
  59. #
  60. ARRAY LONABH [00:00] S(1);
  61. BEGIN
  62. ITEM LOH$ABT U(00,00,06) = [APPCMD]; # BLOCK TYPE #
  63. ITEM LOH$ADRABN U(00,06,30) = [0]; # ADDR, BLOCK NR #
  64. ITEM LOH$ACT U(00,36,04) = [CT60TRANS]; # CHARACTER TYPE #
  65. ITEM LOH$DBC U(00,40,08) = [0]; # CLARIFIER #
  66. ITEM LOH$TLC U(00,48,12) = [LLST]; # TEXT LENGTH #
  67. END
  68.  
  69. ARRAY LONSM [00:00] S(1);
  70. BEGIN
  71. ITEM LOM$PSFC U(00,00,16) = [LSTON]; # PFC/SFC #
  72. ITEM LOM$RES1 U(00,16,08) = [0]; # RESERVED #
  73. ITEM LOM$ACN U(00,24,12); # CONNECTION NUM #
  74. ITEM LOM$RES2 U(00,36,24) = [0]; # RESERVED #
  75. END
  76.  
  77. ARRAY IGNORE [00:00] S(IGTLW$);
  78. BEGIN
  79. ITEM I$TEXT C(00,00,15) = ["INPUT IGNORED.."];
  80. ITEM I$ZERO U(01,30,30) = [0];
  81. END
  82.  
  83.  
  84.  
  85.  
  86.  
  87. #
  88. * SAVE THE NOP'S ACN NUMBER. TAKE A MAIN BRANCH DEPENDING UPON THE
  89. * APPLICATION BLOCK TYPE.
  90. #
  91. NACN = ABHADR[0];
  92.  
  93.  
  94.  
  95. IF ABHABT[0] EQ APMSG
  96. THEN # MUST PROCESS THIS BLOCK #
  97. BEGIN
  98.  
  99.  
  100. #
  101. * IF THE CONNECTION IS ACTIVE, FORWARD THE TYPEIN TO THE I-LAYER
  102. * AND SET THE STATE OF THE CONNECTION TO INDICATE THAT A COMMAND
  103. * IS IN PROGRESS. HOWEVER, IF THE CANCEL INPUT FLAG IS SET,
  104. * IGNORE THE TYPEIN AND ISSUE A LST/ON/SM TO TURN AROUND THE
  105. * HALF DUPLEX OPERATION. DISCARD THE TEXT FOR ANY OTHER STATE.
  106. #
  107. IF ACN$NOPST[NACN] EQ S"ACTIVE"
  108. THEN # ALL IS WELL #
  109. BEGIN
  110. IF ABHCAN[0] NQ 0
  111. THEN # HOP HAS CANCELLED TYPEIN #
  112. BEGIN
  113. WCB$WORD[1] = LLST + 2;
  114. LOM$ACN[0] = NACN;
  115. SSTAQE (P<OTQ>, WCBUF[1], LONABH[0], LONSM[0]);
  116. END
  117. ELSE
  118. BEGIN
  119. SSTAQE (P<OPTQ>, WCBUF[0], ABHBUF[0], MSGBUF[0]);
  120. ACN$NOPST[NACN] = S"COMMAND";
  121. END
  122. END
  123.  
  124. #
  125. * IF THE CONNECTION IS IN THE CLEAR INPUT STATE, THEN SEND A
  126. * LST/ON/R TO GET THE NEXT MSG BLOCK.
  127. #
  128. ELSE IF ACN$NOPST[NACN] EQ S"CLEARI"
  129. THEN
  130. BEGIN
  131. WCB$WORD[1] = LLST + 2;
  132. LOM$ACN[0] = NACN;
  133.  
  134. SSTAQE(P<OTQ>, WCBUF[1], LONABH[0], LONSM[0]);
  135. END
  136.  
  137. END # *MSG* BLOCK #
  138.  
  139.  
  140.  
  141. ELSE # UNACCEPTABLE INPUT #
  142. BEGIN
  143.  
  144.  
  145. #
  146. * DISCARD THE INPUT BLOCK. IF IT IS A *BLK* BLOCK OR TRANSPARENT
  147. * INPUT, AND THE CONNECTION IS ACTIVE, SEND THE *INPUT IGNORED..*
  148. * MESSAGE. (I.E., DON'T SEND THE MESSAGE FOR OTHER CONDITIONS
  149. * SUCH AS A NULL BLOCK WITH THE BREAK OCCURRED FLAG SET.)
  150. #
  151. IF ACN$NOPST[NACN] EQ S"ACTIVE"
  152. AND (ABHABT[0] EQ APPBLK OR ABHXPT[0] EQ 1)
  153. THEN
  154. BEGIN
  155. WCB$WORD[1] = IGTLW$ + 2; # TERM TEXT NTRY SIZ, IAF=FALSE #
  156. WCB$SMID[1] = SMID"TTEXT";
  157. SSTAQE (P<CNQ>, WCBUF[1], ABHBUF[0], IGNORE);
  158. END
  159.  
  160. END # UNACCEPTABLE INPUT #
  161.  
  162. END # CSCANT #
  163.  
  164. TERM
cdc/nos2.source/nam5871/cscant.txt ยท Last modified: 2023/08/05 17:21 by Site Administrator