User Tools

Site Tools


cdc:nos2.source:nam5871:nvftina

NVFTINA

Table Of Contents

  • [00006] PROC NVFTINA
  • [00007] NVFTINA - PROCESS TIMER EXPIRED CONDITION (FC/INACT SM)
  • [00011] PROCESS TIMER EXPIRED CONDITION (FC/INACT SM)
  • [00048] PROC NVFTETC
  • [00049] PROC NVFTDAD
  • [00050] PROC NVFTDSP
  • [00051] PROC NVFUMQE
  • [00052] PROC NVFTILP
  • [00053] PROC NVFSCAD

Source Code

NVFTINA.txt
  1. *DECK NVFTINA
  2. USETEXT TEXTNVF
  3. USETEXT TXTANVF
  4. USETEXT TXTAPSS
  5.  
  6. PROC NVFTINA;
  7. # TITLE NVFTINA - PROCESS TIMER EXPIRED CONDITION (FC/INACT SM) #
  8.  
  9. BEGIN # NVFTINA #
  10. #
  11. ** NVFTINA - PROCESS TIMER EXPIRED CONDITION (FC/INACT SM)
  12. *
  13. * E. THAVIKULWAT 81/09/24
  14. * C. BRION 83/04/11
  15. *
  16. * THIS PROCEDURE WILL EITHER TERMINATE A LOGIN SESSION OR REATTEMPT
  17. * A SWITCH TO AN APPLICATION. THIS ACTION IS DUE TO EXPIRATION OF
  18. * NVF'S TIMER. THIS ROUTINE IS CALLED INTO EXECUTION BY PROCEDURE
  19. * *NVFTDQE*.
  20. *
  21. * PROC NVFTINA
  22. *
  23. * ENTRY:
  24. * ABH IN *ABHBUF*
  25. * FC/INACT SM IN *MSGBUF*
  26. *
  27. * EXIT:
  28. * ONE OF TWO CONDITIONS:
  29. * - A NEW ATTEMPT IS MADE TO SWITCH TO AN APPLICATION, OR
  30. * - "TIMEOUT" MESSAGE ISSUED TO THE TERMINAL AND LOGIN SESSION
  31. * TERMINATED. A CTR/CHAR MAY BE SENT TO FORCE THE TERMINAL
  32. * TO NON-TRANSPARENT INPUT MODE.
  33. *
  34. * METHOD:
  35. * SEARCH PTAC TABLE FOR ENTRY THAT MATCHES THIS TERMINAL'S ACN
  36. * AND TIMER CANCELLATION NUMBER. IF ENTRY FOUND, EITHER SEND
  37. * "TIMEOUT" MESSAGE AND TERMINATE CONNECTION, OR CALL *NVFTDSP* TO
  38. * ATTEMPT TO SWITCH TO THE APPLICATION. IF NO PTAC ENTRY IS
  39. * FOUND, IGNORE THE SM.
  40. #
  41.  
  42. #
  43. **** PROC NVFTINA - XREF LIST.
  44. #
  45.  
  46. XREF
  47. BEGIN
  48. PROC NVFTETC; # END TERMINAL CONNECTION #
  49. PROC NVFTDAD; # DETERMINE ADDITIONAL DIALOGUE #
  50. PROC NVFTDSP; # DETERMINE SWITCH POSSIBILITY #
  51. PROC NVFUMQE; # TRANSFER TEXT TO QUEUE #
  52. PROC NVFTILP; # ISSUE LOGIN PROMPT #
  53. PROC NVFSCAD; # COMPLETE APPLICATION DEPARTURE #
  54. END
  55.  
  56. #
  57. ****
  58. #
  59.  
  60. *CALL TMSGNVF
  61.  
  62. *CALL TERMCLS
  63.  
  64. ITEM ADDR I; # ADDRESSING INFORMATION FOR ABH #
  65. ITEM MATCH B; # EXIT LOOP VARIABLE #
  66. ITEM MATCH2 B; # AST MATCH FLAG #
  67. ITEM MATCH3 B; # SEC AST ENTRY MATCH FLAG #
  68. ITEM NENTRY I; # NUMBER OF ENTRIES IN TABLE #
  69. ITEM PT I; # SUBSCRIPT FOR ARRAY PTAC #
  70. ITEM SORD I; # SECONDARY AST ORDINAL #
  71. ITEM PORD I; # PRIMARY AST ORDINAL #
  72. ITEM ERRCOD I; # ERROR CODE FOR NVFTDAD CALL #
  73. ITEM ASENTRY I; # NUMBER AST ENTRIES #
  74.  
  75. #
  76. * DETERMINE NUMBER OF AST ENTRIES.
  77. #
  78. ASENTRY = ASTLNGTH/ASTSIZ$;
  79. #
  80. * SEARCH PTAC TABLE FOR ENTRY THAT MATCHES THIS TERMINAL'S ACN
  81. * AND TIMER CANCELLATION NUMBER. IF NO MATCH, IGNORE SM.
  82. #
  83. MATCH = FALSE;
  84. MATCH3 = FALSE;
  85. MATCH2 = FALSE;
  86. NENTRY = PTALNGTH / PTACSIZ$;
  87. FOR PT = 0 STEP 1 WHILE (NOT MATCH AND PT LS NENTRY)
  88. DO
  89. BEGIN
  90. IF (PTA$ACN[PT] EQ FCACN[0])
  91. AND (PTA$CNUM[PT] EQ ABHABN[0])
  92. THEN
  93. BEGIN # PTAC ENTRY FOUND #
  94. MATCH = TRUE;
  95.  
  96. #
  97. * CHECK IF TIMEOUT FOR APPLICATION NOT NETTING ON. IF SO, LOCATE THE
  98. * PRIMARY AST ENTRY.
  99. * CALL NVFSCAD TO COMPLETE APPLICATION DEPARTURE FOR BOTH ENTRIES.
  100. #
  101. IF PTA$STATE[PT] EQ PTACST"AWTNETP"
  102. THEN
  103. BEGIN
  104. #
  105. * LOCATE THE PRIMARY AST ENTRY FOR THIS PTAC ENTRY.
  106. #
  107. FOR PORD = 0 STEP 1 WHILE
  108. ((PORD LS ASENTRY) AND
  109. ((NOT MATCH2 AND NOT MATCH3) OR
  110. (MATCH2 AND NOT MATCH3) OR
  111. (NOT MATCH2 AND MATCH3)))
  112. DO
  113. BEGIN
  114. IF ((AST$PANAM[PORD] EQ PTA$SWTAPP[PT]) AND
  115. (AST$PANAM[PORD] EQ AST$SANAM[PORD]))
  116. THEN
  117. #
  118. * PRIMARY AST ENTRY FOUND.
  119. #
  120.  
  121. BEGIN
  122. NVFSCAD(PORD);
  123. MATCH2 = TRUE;
  124. END
  125.  
  126. IF ((AST$SANAM[PORD] EQ PTA$SWTAPP[PT]) AND
  127. (AST$SANAM[PORD] NQ AST$PANAM[PORD]))
  128. THEN
  129. #
  130. * SECONDARY AST ENTRY FOUND.
  131. #
  132. BEGIN
  133. NVFSCAD(PORD);
  134. MATCH3 = TRUE;
  135. END
  136. END
  137. END
  138. #
  139. * CHECK IF TIMEOUT FOR REATTEMPTING TO SWITCH TO AN APPLICATION.
  140. * IF SO, CALL NVFTDSP TO DETERMINE THE SWITCH POSSIBILITY.
  141. #
  142. IF PTA$STATE[PT] EQ PTACST"AWTAPPL"
  143. THEN
  144. BEGIN
  145. PTA$STATE[PT] = PTACST"AWTVAA";
  146. NVFTDSP(PT,0);
  147. GOTO ENDEXIT;
  148. END
  149. #
  150. * CHECK TERMINAL CLASS TO SEE IF NVF SHOULD SEND A CTR/CHAR.
  151. #
  152. ADDR = PTA$ACN[PT];
  153. GOTO TERMCLS [PTA$TC[PT]];
  154.  
  155. SENDCTRCHAR:
  156.  
  157. #
  158. * SEND CTR/CHAR TO FORCE TERMINAL TO BE IN NON-TRANSPARENT INPUT
  159. * MODE.
  160. #
  161. PFCSFC[1] = CTRCHAR;
  162. CTRSTR[1] = 0; # CLEAR REST OF WORD 0 #
  163. B<0,16>CTRSTR[1] = NOXPAR$; # ADD FN/FV PAIR FOR NON-XPARENT#
  164. NVFUMQE(P<CTQ>,APSM[1],APPPR$,ADDR,LCTRLO$); # TRANSFER TO Q #
  165.  
  166. NOCTRCHAR:
  167.  
  168. #
  169. * SEND "TIMEOUT" MESSAGE AND TERMINATE CONNECTION.
  170. #
  171. NVFUMQE(P<CTQ>,TOUTBUF[0],APPTTX$,ADDR,LMSG20$); # TXT TO Q #
  172.  
  173. #
  174. * IF NETON PENDING TYPE OF TIMEOUT, SET UP APPLICATION NOT PRESENT
  175. * ERROR CODE AND CALL NVFTDAD TO DETERMINE NEXT DIALOGUE. OTHER-
  176. * WISE, END THE CONNECTION.
  177. #
  178.  
  179. IF PTA$STATE EQ PTACST"AWTNETP"
  180. THEN
  181. BEGIN
  182. ERRCOD = ECANP$;
  183. NVFTDAD(PT,ERRCOD);
  184. #
  185. * IF CONNECTION AWAITING PROMPT, CALL NVFTILP TO ISSUE PROMPT.
  186. #
  187. IF PTA$STATE[PT] EQ PTACST"AWTPRMT"
  188. THEN
  189. NVFTILP(PT);
  190. END
  191. ELSE
  192. NVFTETC(PT); # END TERMINAL CONNECTION #
  193. END
  194. END
  195.  
  196. ENDEXIT:
  197. END # END NVFTINA #
  198.  
  199. TERM
cdc/nos2.source/nam5871/nvftina.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator