User Tools

Site Tools


cdc:nos2.source:nam5871:ns_nss

NS$NSS

Table Of Contents

  • [00005] PROC NS$NSS((STATE),(STIMULUS),ERRCODE)
  • [00007] NS$NSS - NPU STATE TABLE PROCESSOR.
  • [00011] NPU STATE TABLE PROCESSOR.
  • [00041] PROC NS$DBG
  • [00047] PROC NDLOVLD
  • [00048] FUNC NS$FEC U
  • [00049] PROC NS$N05
  • [00050] PROC NS$N06
  • [00051] PROC NS$N08
  • [00052] PROC NS$N09
  • [00053] PROC NS$N13

Source Code

NS$NSS.txt
  1. *DECK NS$NSS
  2. USETEXT NAT$NS
  3. USETEXT ERR$NS
  4.  
  5. PROC NS$NSS((STATE),(STIMULUS),ERRCODE); # NPU STATE TABLE PROCESSOR #
  6.  
  7. # TITLE NS$NSS - NPU STATE TABLE PROCESSOR. #
  8.  
  9. BEGIN # NS$NSS #
  10. #
  11. ** NS$NSS - NPU STATE TABLE PROCESSOR.
  12. *
  13. * J.C. LEE 1981
  14. *
  15. * THIS ROUTINE IS THE NPU STATE TABLE PROCESSOR.
  16. *
  17. * PROC NS$NSS((STATE),(STIMULUS),ERRCODE)
  18. *
  19. * ENTRY:
  20. * STATE-ORDINAL.
  21. * STIMULUS-CODE.
  22. * NPU-TABLE-ORDINAL.
  23. *
  24. * EXIT:
  25. * ERRCODE.
  26. *
  27. * METHOD:
  28. * USE STATUS SWITCHES TO ROUTINE CONTROL TO APPROPRIATE
  29. * ROUTINE FOR THE SPECIFIED STATE-ORDINAL/STIMULUS-CODE
  30. * COMBINATION.
  31. *
  32. #
  33.  
  34. ITEM STATE S:NPUSTATE; # NPU CURRENT STATE #
  35. ITEM STIMULUS S:NWSTIM; # STATE TABLE STIMULUS #
  36. ITEM ERRCODE U; # ERROR CODE #
  37.  
  38. $BEGIN
  39. XREF
  40. BEGIN
  41. PROC NS$DBG; # TRACE PROCEDURE CALL #
  42. END
  43. $END
  44.  
  45. XREF
  46. BEGIN
  47. PROC NDLOVLD; # OVERLAY LOADER #
  48. FUNC NS$FEC U; # FORMAT ERROR CODE #
  49. PROC NS$N05;
  50. PROC NS$N06;
  51. PROC NS$N08;
  52. PROC NS$N09;
  53. PROC NS$N13;
  54. END
  55.  
  56. ARRAY DAR$OVLY [0:0] S(1);
  57. BEGIN # NPU/DT ABNORMAL RESPONSE PROCESSOR #
  58. ITEM DAR$NAM C(00,00,07) = ["DAROVLY"];
  59. ITEM DAR$LV1 U(00,42,09) = [4];
  60. ITEM DAR$LV2 U(00,51,09) = [0];
  61. END
  62.  
  63. ARRAY N00$OVLY [0:0] S(1);
  64. BEGIN # LOAD REQUEST PROCESSOR #
  65. ITEM N00$NAM C(00,00,07) = ["N00OVLY"];
  66. ITEM N00$LV1 U(00,42,09) = [6];
  67. ITEM N00$LV2 U(00,51,09) = [0];
  68. END
  69.  
  70. ARRAY N04$OVLY [0:0] S(1);
  71. BEGIN # NDCB RESPONSE PROCESSOR #
  72. ITEM N04$NAM C(00,00,07) = ["N04OVLY"];
  73. ITEM N04$LV1 U(00,42,09) = [7];
  74. ITEM N04$LV2 U(00,51,09) = [0];
  75. END
  76.  
  77. SWITCH STIMCASE:NWSTIM # CASES FOR STATE TABLE STIMULI #
  78. STIM0:RQ$SAMLOAD,
  79. STIM1:RQ$NPULOAD,
  80. STIM5:NR$NPUDTD,
  81. STIM6:AR$NPUDTD,
  82. STIM7:NR$NPUDTL,
  83. STIM8:AR$NPUDTL,
  84. STIM9:NR$NPUDTS,
  85. STIM10:AR$NPUDTS;
  86.  
  87. SWITCH STIM0CASE:NPUSTATE # NPU/IN/C (SAM) CASES #
  88. NSS00:IDLE,
  89. NSS15:DUMPNDCB,
  90. NSS15:LOADSUD,
  91. NSS15:STARTSUD,
  92. NSS15:DUMPSUD,
  93. NSS15:LOADNPU,
  94. NSS15:STARTNPU,
  95. NSS15:LOADNDCB,
  96. NSS15:DUMPNPU,
  97. NSS15:LOADDBS,
  98. NSS15:STARTDBS,
  99. NSS15:LOADSAM,
  100. NSS15:STARTSAM;
  101.  
  102. SWITCH STIM1CASE:NPUSTATE # NPU/IN/R (NPU) CASES #
  103. NSS00:IDLE,
  104. NSS15:DUMPNDCB,
  105. NSS15:LOADSUD,
  106. NSS15:STARTSUD,
  107. NSS15:DUMPSUD,
  108. NSS15:LOADNPU,
  109. NSS15:STARTNPU,
  110. NSS15:LOADNDCB,
  111. NSS15:DUMPNPU,
  112. NSS15:LOADDBS,
  113. NSS15:STARTDBS,
  114. NSS16:LOADSAM,
  115. NSS16:STARTSAM;
  116.  
  117. SWITCH STIM5CASE:NPUSTATE # NPU/DT/N (DUMP) CASES #
  118. NSS16:IDLE,
  119. NSS04:DUMPNDCB,
  120. NSS16:LOADSUD,
  121. NSS16:STARTSUD,
  122. NSS05:DUMPSUD,
  123. NSS16:LOADNPU,
  124. NSS16:STARTNPU,
  125. NSS16:LOADNDCB,
  126. NSS06:DUMPNPU,
  127. NSS16:LOADDBS,
  128. NSS16:STARTDBS,
  129. NSS16:LOADSAM,
  130. NSS16:STARTSAM;
  131.  
  132. SWITCH STIM6CASE:NPUSTATE # NPU/DT/A (DUMP) CASES #
  133. NSS16:IDLE,
  134. NSS07:DUMPNDCB,
  135. NSS16:LOADSUD,
  136. NSS16:STARTSUD,
  137. NSS07:DUMPSUD,
  138. NSS16:LOADNPU,
  139. NSS16:STARTNPU,
  140. NSS16:LOADNDCB,
  141. NSS07:DUMPNPU,
  142. NSS16:LOADDBS,
  143. NSS16:STARTDBS,
  144. NSS16:LOADSAM,
  145. NSS16:STARTSAM;
  146.  
  147. SWITCH STIM7CASE:NPUSTATE # NPU/DT/N (LOAD) CASES #
  148. NSS16:IDLE,
  149. NSS16:DUMPNDCB,
  150. NSS08:LOADSUD,
  151. NSS16:STARTSUD,
  152. NSS16:DUMPSUD,
  153. NSS08:LOADNPU,
  154. NSS16:STARTNPU,
  155. NSS09:LOADNDCB,
  156. NSS16:DUMPNPU,
  157. NSS08:LOADDBS,
  158. NSS16:STARTDBS,
  159. NSS08:LOADSAM,
  160. NSS16:STARTSAM;
  161.  
  162. SWITCH STIM8CASE:NPUSTATE # NPU/DT/A (LOAD) CASES #
  163. NSS16:IDLE,
  164. NSS16:DUMPNDCB,
  165. NSS10:LOADSUD,
  166. NSS16:STARTSUD,
  167. NSS16:DUMPSUD,
  168. NSS11:LOADNPU,
  169. NSS16:STARTNPU,
  170. NSS12:LOADNDCB,
  171. NSS16:DUMPNPU,
  172. NSS11:LOADDBS,
  173. NSS16:STARTDBS,
  174. NSS11:LOADSAM,
  175. NSS16:STARTSAM;
  176.  
  177. SWITCH STIM9CASE:NPUSTATE # NPU/DT/N (START) CASES #
  178. NSS16:IDLE,
  179. NSS16:DUMPNDCB,
  180. NSS16:LOADSUD,
  181. NSS13:STARTSUD,
  182. NSS16:DUMPSUD,
  183. NSS16:LOADNPU,
  184. NSS13:STARTNPU,
  185. NSS16:LOADNDCB,
  186. NSS16:DUMPNPU,
  187. NSS16:LOADDBS,
  188. NSS13:STARTDBS,
  189. NSS16:LOADSAM,
  190. NSS13:STARTSAM;
  191.  
  192. SWITCH STIM10CASE:NPUSTATE # NPU/DT/A (START) CASES #
  193. NSS16:IDLE,
  194. NSS16:DUMPNDCB,
  195. NSS16:LOADSUD,
  196. NSS10:STARTSUD,
  197. NSS16:DUMPSUD,
  198. NSS16:LOADNPU,
  199. NSS14:STARTNPU,
  200. NSS16:LOADNDCB,
  201. NSS16:DUMPNPU,
  202. NSS16:LOADDBS,
  203. NSS14:STARTDBS,
  204. NSS16:LOADSAM,
  205. NSS14:STARTSAM;
  206. CONTROL EJECT;
  207.  
  208. $BEGIN
  209. NS$DBG("NSS"); # TRACE CALL #
  210. $END
  211.  
  212.  
  213. ERRCODE = 0;
  214. GOTO STIMCASE[STIMULUS]; # CASE ON STATE TABLE STIMULUS #
  215.  
  216. STIM0: # NPU/IN/C (SAM) #
  217. GOTO STIM0CASE[STATE]; # CASE ON NPU STATE #
  218.  
  219. STIM1: # NPU/IN/R (NPU) #
  220. GOTO STIM1CASE[STATE]; # CASE ON NPU STATE #
  221.  
  222. STIM5: # NPU/DT/N (DUMP) #
  223. GOTO STIM5CASE[STATE]; # CASE ON NPU STATE #
  224.  
  225. STIM6: # NPU/DT/A (DUMP) #
  226. GOTO STIM6CASE[STATE]; # CASE ON NPU STATE #
  227.  
  228. STIM7: # NPU/DT/N (LOAD) #
  229. GOTO STIM7CASE[STATE]; # CASE ON NPU STATE #
  230.  
  231. STIM8: # NPU/DT/A (LOAD) #
  232. GOTO STIM8CASE[STATE]; # CASE ON NPU STATE #
  233.  
  234. STIM9: # NPU/DT/N (START) #
  235. GOTO STIM9CASE[STATE]; # CASE ON NPU STATE #
  236.  
  237. STIM10: # NPU/DT/A (START) #
  238. GOTO STIM10CASE[STATE]; # CASE ON NPU STATE #
  239. CONTROL EJECT;
  240.  
  241. NSS00: # PROCESS LOAD REQUEST #
  242. NDLOVLD(N00$OVLY,ERRCODE);
  243. GOTO NSSEXIT;
  244.  
  245. NSS04: # PROCESS NPU/DT/N (DUMP NDCB) #
  246. NDLOVLD(N04$OVLY,ERRCODE);
  247. GOTO NSSEXIT;
  248.  
  249. NSS05: # PROCESS NPU/DT/N (DUMP SUD) #
  250. NS$N05(ERRCODE);
  251. GOTO NSSEXIT;
  252.  
  253. NSS06: # PROCESS NPU/DT/N (DUMP) #
  254. NS$N06(ERRCODE);
  255. GOTO NSSEXIT;
  256.  
  257. NSS08: # PROCESS NPU/DT/N (LOAD) #
  258. NS$N08(ERRCODE);
  259. GOTO NSSEXIT;
  260.  
  261. NSS09: # PROCESS NPU/DT/N (LOAD NDCB) #
  262. NS$N09(ERRCODE);
  263. GOTO NSSEXIT;
  264.  
  265. NSS13: # PROCESS NPU/DT/N (START) #
  266. NS$N13(ERRCODE);
  267. GOTO NSSEXIT;
  268.  
  269. NSS07: # PROCESS NPU/DT/A(DUMP) #
  270. NSS10: # PROCESS NPU/DT/A(LOAD SUD) #
  271. NSS11: # PROCESS NPU/DT/A(LOAD) #
  272. NSS12: # PROCESS NPU/DT/A(LOAD NDCB) #
  273. NSS14: # PROCESS NPU/DT/A(START) #
  274. NDLOVLD(DAR$OVLY,ERRCODE); # CALL ABNORMAL RESPONSE PROCESSOR #
  275. GOTO NSSEXIT;
  276.  
  277. NSS15: # PREEMPT CURRENT ACTIVITY #
  278. ERRCODE = NS$FEC(EC"ERR$PREEM",0);
  279. GOTO NSSEXIT;
  280.  
  281. NSS16: # SM PROTOCAL ERROR, DISCARD SM #
  282. ERRCODE = NS$FEC(EC"ERR$NP",0);
  283. GOTO NSSEXIT;
  284.  
  285. NSSEXIT:
  286. RETURN;
  287. END # NS$NSS #
  288. TERM
cdc/nos2.source/nam5871/ns_nss.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator