User Tools

Site Tools


cdc:nos2.source:nam5871:ns_inl

NS$INL

Table Of Contents

  • [00006] PROC NS$INL(ERRCODE)
  • [00008] NS$INL - INITIATE NPU LOAD.
  • [00012] INITIATE NPU LOAD.
  • [00047] PROC NS$DBG
  • [00053] PROC TSBINFO
  • [00054] PROC MOVEOK
  • [00055] FUNC NS$FEC U
  • [00056] PROC NS$LSN
  • [00057] PROC NS$SGT

Source Code

NS$INL.txt
  1. *DECK NS$INL
  2. USETEXT ERR$NS
  3. USETEXT NAT$NS
  4. USETEXT PIC$NS
  5.  
  6. PROC NS$INL(ERRCODE); # INITIATE NPU LOAD #
  7.  
  8. # TITLE NS$INL - INITIATE NPU LOAD. #
  9.  
  10. BEGIN # NS$INL #
  11. #
  12. ** NS$INL - INITIATE NPU LOAD.
  13. *
  14. * J.C. LEE 1981
  15. *
  16. * THIS ROUTINE INITIATES NPU LOAD.
  17. *
  18. * PROC NS$INL(ERRCODE)
  19. *
  20. * ENTRY:
  21. * NONE.
  22. *
  23. * EXIT:
  24. * ERRCODE - IF A BAD PICB RECORD FOUND.
  25. *
  26. * METHOD:
  27. * CLEAR ACTIVITY-RETRY-COUNT.
  28. * CLEAR NPU-STATE.
  29. * SET NPU-PRIMARY-STATE TO "LOADING NPU".
  30. * LOCATE PICB-TSB.
  31. * IF PICB EXISTS:
  32. * SET XPCB-DIRECTIVE-INDEX TO PICB-INDEX
  33. * OF LPCB-HEADER.
  34. * SET XPCB-END-DIRECTIVE-INDEX TO PICB-INDEX
  35. * OF LPCB END DIRECTIVE.
  36. * START GLOBAL TIMER.
  37. * ELSE
  38. * SET ERROR CODE.
  39. *
  40. #
  41.  
  42. ITEM ERRCODE U; # ERROR CODE #
  43.  
  44. $BEGIN
  45. XREF
  46. BEGIN
  47. PROC NS$DBG; # TRACE PROCEDURE CALL #
  48. END
  49. $END
  50.  
  51. XREF
  52. BEGIN
  53. PROC TSBINFO; # LOCATE TSB #
  54. PROC MOVEOK; # ALLOW TSB TO MOVE #
  55. FUNC NS$FEC U; # FORMAT ERROR CODE #
  56. PROC NS$LSN; # INCREMENT LOAD SEQUENCE NUMBER #
  57. PROC NS$SGT; # START ACTIVITY TIMER #
  58. END
  59.  
  60. ITEM I I; # PICB INDEX OF FIRST LPCB ENTRY #
  61. ITEM K I; # PICB INDEX OF LAST LPCB ENTRY #
  62. ITEM PICBTSBN U; # TSB NUMBER OF PICB #
  63. ITEM TSBFWA U; # TSB FWA #
  64. ITEM TSBSIZE U; # TSB SIZE #
  65.  
  66. CONTROL EJECT;
  67. $BEGIN
  68. NS$DBG("INL"); # TRACE CALL #
  69. $END
  70.  
  71. ERRCODE = 0;
  72. NAT$STATE[0] = 0; # CLEAR NPU STATE #
  73. NAT$PSTATE[0] = S"NPS$LNPU"; # PRIMARY STATE - LOADING NPU #
  74.  
  75. PICBTSBN = NAT$PITSBN[0]; # PICB TSB NUMBER #
  76. TSBINFO(TSBSIZE,TSBFWA,PICBTSBN); # LOCATE PICB TSB #
  77. P<PICB> = TSBFWA; # FWA OF PICB #
  78. I = PICB$HDRL + PICB$PARWL + PICB$LDPCB[PICB$HDRL]; # HEADER INDX#
  79. K = I + PICB$LLPCB[PICB$HDRL] - 1; # INDEX TO LAST LPCB DIRECTIVE#
  80.  
  81. IF PICB$PCBID[I] EQ ID$LPCB # VALID IDENTIFIER #
  82. AND K LQ PICB$BS[0] # LPCB SIZE OK #
  83. AND PICB$CODE[K] EQ DIRCODE"ENDPCB" # END DIRECTIVE EXISTS#
  84. THEN # VALID LPCB #
  85. BEGIN # INITIATE NPU LOAD PROCEDURE #
  86. NAT$PDIRI[0] = I; # CURRENT LPCB DIRECTIVE INDEX#
  87. NAT$PENDI[0] = K; # LAST LPCB DIRECTIVE INDEX #
  88. NS$LSN; # ASSIGN LSN FOR LOAD SEQUENCE #
  89. NS$SGT; # START ACTIVITY TIMER #
  90. END
  91.  
  92. ELSE # NLF ERROR-BAD LPCB #
  93. BEGIN
  94. ERRCODE = NS$FEC(EC"ERR$FILE",FEC"ERR$LPCB");
  95. END
  96.  
  97. MOVEOK(PICBTSBN); # ALLOW PICB TO MOVE #
  98.  
  99. RETURN;
  100. END # NS$INL #
  101. TERM
cdc/nos2.source/nam5871/ns_inl.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator