User Tools

Site Tools


cdc:nos2.source:nam5871:ssspes

SSSPES

Table Of Contents

  • [00002] PROC SSSPES
  • [01177] SSSPES - PROGRAM EXECUTION SEQUENCER.
  • [01181] PROGRAM EXECUTION SEQUENCER.
  • [01206] PROC NETCHEK
  • [01207] PROC SSCUTD
  • [01208] PROC SSSESP
  • [01209] PROC SSSEWP
  • [01210] PROC SSSWNR

Source Code

SSSPES.txt
  1. *DECK SSSPES
  2. PROC SSSPES;
  3. *IF,DEF,IMS
  4. *TEXT
  5. #
  6. ** SERVICES AND SCHEDULING OVERVIEW
  7. *
  8. *
  9. * 1.0 INTRODUCTION
  10. * 2.0 DESCRIPTION OF SERVICES
  11. * 2.1 SCHEDULING OF PROCESSES
  12. * 2.1.1 DESIGN CONSIDERATIONS/PHILOSOPHIES
  13. * 2.1.2 STATUS WORK LIST ENTRY (SWLE)
  14. * 2.1.3 WORK LIST ENTRY (WLE)
  15. * 2.2 TABLE MANAGER (QUEUE MANAGER)
  16. * 2.3 OVERLAY LOADING
  17. * 2.4 TIMER SERVICES
  18. * 2.5 UTILITIES
  19. * 2.5.1 BIT MANIPULATION
  20. * 2.5.2 CHARACTER CONVERSION
  21. * 2.5.3 FILE FUNCTIONS
  22. * 2.5.4 COMMAND PARSER/RECOGNIZER
  23. * 2.5.5 AIP INTERFACE
  24. * 3.0 DECK/ROUTINE NAMING CONVENTIONS
  25. * 4.0 STRUCTURE CHARTS
  26. * 4.1 AIP INTERFACE ROUTINE
  27. * 4.2 CLOCK/TIMER ROUTINES
  28. * 4.3 OVERLAY MANAGEMENT ROUTINES
  29. * 4.4 COMMAND RECOGNITION ROUTINES
  30. * 4.5 SEQUENCE ROUTINES
  31. * 4.6 TABLE/QUEUE MANAGER ROUTINES
  32. * 5.0 TABLE STRUCTURES
  33. * 5.1 POINTER TABLE
  34. * 5.2 WORKLIST REQUEST QUEUE
  35. * 5.3 WORKLIST DEFINITION TABLE
  36. * 5.4 QUEUE TO WORKLIST DEFINITION TABLE
  37. * 5.5 STATUS WORKLIST DEFINITION
  38. * 5.6 OVERLAY DEFINITION TABLE
  39. * 5.7 OVERLAY CONTROL ITEMS
  40. * 5.8 OVERLAY REQUEST TABLE
  41. * 5.9 ROLLOUT TABLE
  42. * 5.10 TIMER REQUEST BLOCK
  43. * 5.11 CURRENT TIME AND DATE
  44. * 5.12 TYPICAL QUEUE ENTRY
  45. * 6.0 DEBUGGING TIPS
  46. *E
  47. *
  48. *
  49. * 1.0 INTRODUCTION
  50. *
  51. * SERVICES AND SCHEDULING IS A SET OF ROUTINES THAT ACT AS THE
  52. * EXECUTIVE AND PROVIDES SERVICES/UTILITIES FOR NVF AND CS. THE
  53. * FOLLOWING IS AN OVERVIEW OF THESE SERVICES, THE CONVENTIONS USED
  54. * IN NAMING THE ROUTINES, STRUCTURE CHARTS, AND THINGS TO LOOK FOR
  55. * WHEN ANALYZING A CS OR NVF DUMP.
  56. *
  57. *
  58. * 2.0 DESCRIPTION OF SERVICES
  59. *
  60. * 2.1 SCHEDULING OF PROCESSES
  61. *
  62. * 2.1.1 DESIGN CONSIDERATIONS/PHILOSOPHIES
  63. *
  64. * THE PROGRAM (NVF OR CS) IS VIEWED BY SERVICES AND SCHEDULING AS A
  65. * SET OF INDEPENDENT PROCESSORS. PROGRAM OPERATION IS DATA DRIVEN
  66. * OR TRANSACTION DRIVEN, I.E. - THE PRESENCE OF DATA IS SUFFICIENT
  67. * TO INDICATE THAT A PROCESSOR OF THAT DATA MUST BE STARTED UP. NO
  68. * DATA MEANS THERE IS NO WORK TO DO.
  69. *
  70. * KEY TO THE UNDERSTANDING THESE PROGRAMS IS THEIR TRANSACTION
  71. * PROCESSING NATURE AND THE DECOUPLING OF PROGRAM PARTS. SERVICE
  72. * MESSAGES AND DATA ARE ROUTED TO PROCESSES VIA ENTRIES IN THE
  73. * APPROPRIATE QUEUE. THESE PROCESSES ARE PREPARED TO HANDLE THE
  74. * POSSIBILITIES AT A GIVEN POINT IN THE OVERALL PROTOCOL.
  75. *
  76. * THE SERVICE MESSAGES AND DATA FOR A PARTICULAR CONNECTION HAVE
  77. * VERY LIMITED ASSOCIATION WITH OTHER CONNECTIONS AND PROTOCOLS
  78. * (APPLICATION NETTING OFF, FAILING, ETC.) SO THIS DECOUPLING WILL
  79. * WORK. THE OVERALL PROGRAM OPERATION IS LOOSELY TIED TOGETHER.
  80. * EXAMINATION OF THE VARIOUS PROTOCOLS AND THE UNDERSTANDING OF
  81. * THEIR RELATIONSHIPS, IF ANY, AND POSSIBLE INTERACTION WAS DONE AT
  82. * DESIGN TIME TO ELIMINATE ANY PROBLEMS.
  83. *
  84. * THE SCHEDULING OF PROCESSES IS DONE BY TWO SEPERATE MECHANISMS:
  85. * STATUS WORK LIST ENTRIES AND WORK LIST ENTRIES. THESE TWO METHODS
  86. * ARE EXPLAINED IN THE NEXT TWO SECTIONS.
  87. *
  88. * 2.1.2 STATUS WORK LIST ENTRY (SWLE)
  89. *
  90. * STATUS WORK LIST ENTRIES ARE USED BY PROCESSES THAT MUST WAIT FOR
  91. * EXTERNAL REQUESTS TO COMPLETE BEFORE PROCEEDING. ONCE THE REQUEST
  92. * IS COMPLETE, A NEW REQUEST FOR THE SERVICE IS MADE, IF ONE IS
  93. * AVAILABLE. THE PROCESSES CAN BE THOUGHT OF AS SEPARATE PROGRAMS
  94. * THAT RUN CONSTANTLY ONCE THEY ARE STARTED AT INITIALIZATION TIME.
  95. * THESE PROGRAMS DETERMINE THEMSELVES WHAT INDICATES THAT A REQUEST
  96. * IS COMPLETE AND CONVEYS THIS TO THE STATUS WORK LIST PROCESSOR
  97. * WHEN IT GOES INTO A STATE OF WAITING.
  98. *
  99. * THE STATUS WORKLIST PROCESSOR DOES NOT KNOW WHAT THE PROGRAM IS
  100. * DOING. IT IS SIMPLY LOOKING FOR A CHANGE IN THE INITIAL VALUE
  101. * WHEN THE SWLE REQUEST IS MADE. A CHANGE IN THE MEMORY LOCATION
  102. * THAT IT IS MONITORING WILL PROMPT IT TO START UP THE WAITING
  103. * PROGRAM. (NOTE: CURRENTLY NO MASKING OR IGNORING PARTS OF A
  104. * WATCHED WORD IS PLANNED, BUT COULD BE IMPLEMENTED EASILY IF FOUND
  105. * NECESSARY.)
  106. *
  107. * AN EXAMPLE MIGHT BE A PROCESS THAT READS RECORDS FROM A FILE UPON
  108. * REQUEST. IN THE BEGINNING THE PROCESSOR, AT INITIALIZATION TIME,
  109. * IS CALLED AND DETERMINES THAT THERE IS NO WORK IN PROGRESS AND NO
  110. * REQUESTS TO START SO IT GOES INTO WAIT MODE AND INFORMS THE STATUS
  111. * WORKLIST PROCESSOR TO RESTART IT WHEN AN ENTRY IS PLACED IN ITS
  112. * INPUT QUEUE. AT THIS POINT IT IS NOT EXECUTING AS THE STATUS WORK
  113. * LIST PROCESSOR IS DOING THE CHECKING FOR WORK TO BE DONE. IN
  114. * PARTICULAR THE SWLP IS CHECKING THE ENTRY COUNT OF THE QUEUE TO
  115. * BE NON-ZERO. ONCE AN ENTRY IS MADE IN THE QUEUE THE COUNTER IS
  116. * BUMPED AND THE SWLP STARTS UP THE PROCESSOR. THE PROCESSOR
  117. * REALIZES THAT A REQUEST IS IN ITS INPUT QUEUE AND STARTS THE READ
  118. * REQUEST (CALLING CIO TO READ THE RECORD), GOES INTO WAIT MODE,
  119. * AND INFORMS THE SWLP TO WATCH THE FET FOR EITHER A CHANGE IN THE
  120. * *IN* POINTER OR THE COMPLETE BIT BEING SET.
  121. *
  122. * THE PROCESSOR AT THIS POINT DOES NOT CARE ABOUT ADDITIONAL
  123. * REQUESTS IN ITS INPUT QUEUE SINCE IT HAS ONE IN PROGRESS. AGAIN,
  124. * IT IS NOT EXECUTING AS THE SWLP IS CHECKING FOR CHANGES IN THE CIO
  125. * FET. THE CHECKING DONE BY THE SWLP IS DONE USING LESS RESOURCES
  126. * AND MORE EFFICIENTLY THAN IF THE PROCESSOR WAS CALLED AGAIN AND
  127. * AGAIN TO CHECK THE STATUS OF THE FET. WHEN THE READ REQUEST HAS
  128. * BEEN AT LEAST PARTIALLY PROCESSED (CIO HAS MOVED THE *IN* POINTER)
  129. * THE PROCESSOR MOVES THE DATA FROM THE CIO BUFFER AND EITHER MAKES
  130. * A NEW READ REQUEST, WAITS FOR THE ENTIRE REQUEST UNTIL CIO IS
  131. * FINISHED, OR WAITS FOR A NEW REQUEST IN ITS INPUT Q, WHICHEVER IT
  132. * DETERMINES IS THE APPROPRIATE ACTION TO TAKE.
  133. *
  134. * 2.1.3 WORK LIST ENTRY (WLE)
  135. *
  136. * WORK LIST ENTRIES PROVIDE A METHOD OF PROCESSING TRANSACTIONS THAT
  137. * ALLOW THE DECOUPLING OF VARIOUS PROCESSES AND EXTERNAL SERVICES
  138. * NEEDED TO COMPLETE A TRANSACTION. THE WHOLE PROCESS WORKS WITH
  139. * JUST A FEW RULES:
  140. *
  141. * 1. WHEN THE FIRST ENTRY IN THE QUEUE IS MADE, A WLE REQUEST IS
  142. * MADE TO CAUSE THE STARTING OF THE PROCESSOR OF THAT QUEUE.
  143. * (ONLY ONE WLE REQUEST IS NEEDED FOR A QUEUE)
  144. *
  145. * 2. A PROCESSOR OF A QUEUE MUST EITHER EMPTY ALL OF ITS INPUT QUEUE
  146. * OR MAKE ANOTHER WLE REQUEST TO RESTART ITSELF.
  147. *
  148. * 3. IF THERE ARE ANY TIMING RELATIONSHIPS BETWEEN INPUTS TO A
  149. * PROCESSOR THAT MUST BE PRESERVED, THEN THE TIME COUPLED
  150. * REQUESTS MUST BE QUEUED AND PROCESSED BY THE SAME PROCESSOR.
  151. *
  152. * 4. A PROCESSOR SHOULD ONLY RUN FOR A SHORT TIME. IF IT HAS TOO
  153. * MANY REQUESTS IN ITS QUEUE, THEN IT SHOULD STOP AND MAKE A WLE
  154. * REQUEST FOR ITSELF TO START UP AT A LATER TIME. THIS WILL
  155. * ALLOW THE PROCESSORS OF ITS OUTPUT TO RUN AND ALSO ALLOW ANY
  156. * SWLE REQUESTS TO BE COMPLETED IN A TIMELY MANNER.
  157. *
  158. * A PROCESSOR-S JOB IS TO TAKE ENTRIES FROM ITS INPUT QUEUE, PROCESS
  159. * THEM, AND PLACE THE RESULTS IN OUTPUT QUEUES. PROCESSES THAT ARE
  160. * NEAR THE OUTPUT SIDE HAVE THE HIGHEST PRIORITY. THIS IS TO FREE
  161. * UP FIELD LENGTH BY PASSING DATA OUT OF THE PROGRAM. WHEN
  162. * SELECTING THE NEXT WLE TO PROCESS THE HIGHEST PRIORITY REQUEST IS
  163. * DONE REGARDLESS OF REQUEST ARRIVAL TIME. NO PROCESS, IN MAKING
  164. * A QUEUE ENTRY FOR ADDITIONAL PROCESSING, CAN ASSUME OR REQUIRE
  165. * THAT A PROCESS RUN NEXT, JUST THAT SOMETIMES IT WILL. THE WLE
  166. * CONTAINS NO DATA, IT IS JUST A SIGNAL TO START THE PROCESS, DATA
  167. * IS IN THE QUEUE FOR THE PROCESSOR.
  168. *
  169. * 2.2 TABLE MANAGER (QUEUE MANAGER)
  170. *
  171. * THE TABLE MANAGER, WRITTEN ORIGINALLY BY R. H. GOODELL FOR USE
  172. * WITH *DDLCG*, IS A ROUGH EQUIVALENT TO THE STANDARD COMMON DECK
  173. * *COMCMTP* WHICH CONTAINS THE COMPASS MANAGED TABLES PACKAGE.
  174. * THERE IS NO QUEUE MANAGER AS SUCH IN THAT THE ONLY TASKS
  175. * IMPLEMENTED IS THE PLACING OF ENTRIES IN QUEUES, REMOVING ENTRIES
  176. * FROM QUEUES, AND REQUESTING PROCESSING OF A QUEUE VIA A WLE
  177. * REQUEST, IF NEEDED. BOTH TABLES AND QUEUES ARE MAINTAINED
  178. * BY THE TABLE MANAGER.
  179. *
  180. * BASICALLY, THE TABLE MANAGER MAINTAINS A SET OF BASED ARRAY
  181. * POINTERS WHICH ALL POINTS TO THE MANAGED TABLE AREA IN HIGH CORE.
  182. * EACH ONE POINTING TO THE WORD WHERE THE TABLE BEGINS. FOLLOWING
  183. * EACH POINTER IS A WORD CONTAINING THE NUMBER OF WORDS ALLOCATED
  184. * FOR THAT PARTICULAR TABLE. THUS, IN DEFINING THE TABLES, EACH
  185. * TABLE IS DEFINED BY A BASED ARRAY FOLLOWED BY A ITEM DECLARATION.
  186. *
  187. * A CONCERTED EFFORT WAS MADE TO USE ONLY FIXED SIZED ENTRIES IN THE
  188. * MANAGED TABLES DUE TO THE POTENTIAL MAINTENANCE PROBLEMS OF BASING
  189. * ARRAYS NECESSARY TO HANDLE VARIABLE SIZED ENTRIES.
  190. *
  191. * THE TABLE MANAGER AUTOMATICALLY KEEPS THE BASED ARRAY POINTERS
  192. * UPDATED AND IF THE ENTRY SIZE IS FIXED, THEN ALL ENTRIES CAN BE
  193. * ACCESSED SAFELY BY JUST SUBSCRIPTING AND THE PROGRAMMER NEED NOT
  194. * BE CONCERNED WITH KEEPING THE BASED ARRAY POINTED CORRECTLY.
  195. *
  196. * QUEUES ARE GENERALLY NOT FIXED ENTRY SIZE. NON-FIXED ENTRY SIZED
  197. * MANAGED TABLES MUST BE HANDLED DIFFERENTLY AND MUCH CARE MUST BE
  198. * TAKEN TO HAVE BASED ARRAYS POINTED CORRECTLY. WHERE POSSIBLE
  199. * VARIABLE ENTRY SIZED MANAGED TABLES ARE HANDLED BY USE OF AN ENTRY
  200. * SIZE WORD FOR EACH ENTRY. QUEUE ENTRIES ALL HAVE A WORD COUNT
  201. * WORD, AN APPLICATION HEADER BLOCK WORD AND THE BODY OF THE ENTRY.
  202. *
  203. * THE ONLY EXTENSION TO THE MANAGER, FROM THE ORIGINAL VERSION, IS
  204. * ADDING WORDS AND REMOVING WORDS IN THE MIDDLE OF A TABLE. THIS IS
  205. * NEEDED TO ALLOW CERTAIN TABLES TO MAINTAIN ENTRIES IN SORT ORDER,
  206. * SUCH AS TIMER REQUESTS.
  207. *
  208. * 2.3 OVERLAY LOADING
  209. *
  210. * OVERLAY LOADING IS DONE VIA CIO FROM A LOCAL FILE. THIS IS SO
  211. * LOADING CAN BE DONE WITHOUT RECALL SINCE NOS WILL NOT ALLOW LOADER
  212. * CALLS WITHOUT RECALL FROM PROGRAMS OTHER THAN SUBSYSTEMS. THE
  213. * INABILITY TO LOAD AN OVERLAY WITHOUT RECALL WOULD DISRUPT AND STOP
  214. * OTHER EXTERNAL REQUESTS THAT ARE BEING DONE WITHOUT RECALL. IN
  215. * ADDITION, DATA/TABLES WHICH ARE ONLY USED BY AN OVERLAY IS ALREADY
  216. * IN THE OVERLAY LOADED AS IT IS INSERTED AT INITIALIZATION TIME
  217. * WHEN THE OVERLAY IS WRITTEN TO THE LOCAL FILE. EXAMPLES ARE
  218. * INCALL AND OUTCALL BLOCKS IN NVF AND THE CROSS REFERENCE TABLES IN
  219. * CS.
  220. *
  221. * WHEN AN OVERLAY HAS BEEN LOADED, THE OVERLAY IS USED UNTIL ALL
  222. * WORK THAT CAN BE DONE BY IT IS COMPLETED AND A DIFFERENT OVERLAY
  223. * IS NEEDED. THE EXECUTION OF OVERLAY CODE IS DONE IN SUCH A MANNER
  224. * THAT IT DOES NOT LOCK OUT HIGHER PRIORITY ACTIVITIES.
  225. *
  226. * 2.4 TIMER SERVICES
  227. *
  228. * TIMER REQUESTS ARE DONE VIA A TIMER REQUEST BLOCK. THE BLOCK
  229. * CONTAINS SUCH INFORMATION AS HOW MANY SECONDS TO WAIT (DELAY TIME)
  230. * AND THE NUMBER OF THE QUEUE IN WHICH TO PLACE THE BLOCK ONCE THE
  231. * TIME HAS EXPIRED (PAST THE FIRE-TIME).
  232. *
  233. * THE BLOCK IS ASSIGNED A CANCELLATION NUMBER WHEN THE REQUEST IS
  234. * RECEIVED. THE NUMBER IS PASSED BACK TO THE REQUESTING PROC TO BE
  235. * USED LATER TO IDENTIFY THE ENTRY IF THE BLOCK/REQUEST IS TO BE
  236. * CANCELLED. THE BLOCK IS PLACED IN A TIMER REQUEST QUEUE. THE
  237. * QUEUE IS SORTED IN ASCENDING ORDER BY FIRE-TIME. THE FIRE TIME
  238. * IS CALCUALTED TO BE THE DELAY-TIME PLUS THE CURRENT TIME.
  239. *
  240. * AGAIN, ONCE THE FIRE TIME IS REACHED FOR A BLOCK, THE BLOCK IS
  241. * REMOVE FROM THE TIMER REQUEST QUEUE AND PLACED IN THE QUEUE
  242. * SPECIFIED IN THE BLOCK.
  243. *
  244. * THE UNUSED PORTIONS OF THE BLOCK CAN BE USED BY THE REQUESTING
  245. * PROC TO STORE SUCH THINGS AS AN ACN VALUE OR A SERVICE MESSAGE
  246. * I.D.
  247. *
  248. * 2.5 UTILITIES
  249. *
  250. * 2.5.1 BIT MANIPULATION
  251. *
  252. * THESE PROCEDURES TAKE CARE OF FUNCTIONS NEEDED AT THE BIT LEVEL.
  253. * SOME FUNCTIONS INCLUDE SETTING AND CLEARING OF FLAGS IN A BIT MAP,
  254. * STORE FIELDS THAT ARE LESS THAN SIXTY BITS OR CROSS WORD
  255. * BOUNDRIES, AND INDICATE WHICH FLAG IS SET IN A BIT MAP.
  256. *
  257. * 2.5.2 CHARACTER CONVERSION
  258. *
  259. * THESE PROCEDURES CONVERT DISPLAY CODED CHARACTERS TO ASCII
  260. * CHARACTERS AND VICE VERSA.
  261. *
  262. * 2.5.3 FILE FUNCTIONS
  263. *
  264. * THE ONLY PROCEDURE DEFINED PRESENTLY IS ONE TO DETERMINE HOW MANY
  265. * USED AND UNUSED WORDS ARE CURRENTLY CONTAINED IN A SPECIFIED CIO
  266. * BUFFER.
  267. *
  268. * 2.5.4 COMMAND PARSER/RECOGNIZER
  269. *
  270. * THE COMMAND RECOGNIZER IS USED BY NVF AND CS TO DO SYNTAX AND
  271. * SEMANTIC CHECKING OF OPERATOR COMMANDS. THE RECOGNIZER IS PASSED
  272. * A COMMAND SYNTAX TABLE, WHICH DEFINES THE LEGAL COMMANDS, AND THE
  273. * OPERATOR TYPE-IN. WHAT IT RETURNS IS AN ERROR CODE VALUE AND A
  274. * PARAMETER LIST. THE PARAMETER LIST IS THE COMMAND IN A STRUCTURED
  275. * FORMAT.
  276. *
  277. * 2.5.5 AIP INTERFACE
  278. *
  279. * THE MEANS BY WHICH DATA IS PASSED BETWEEN NAM AND NVF/CS IS TAKEN
  280. * CARE OF BY THE AIP MONITOR. THE AIP MONITOR IS A STATUS LIST
  281. * DRIVEN PROCEDURE. FOR RECEIVING DATA THE NSUP WORD IS MONITORED
  282. * AND IF IT CHANGES, THEN THE AIP MONITOR GETS THE DATA FROM NAM AND
  283. * CALLS A PROC TO DISPATCH IT TO THE APPROPRIATE NVF/CS QUEUE. FOR
  284. * SEND DATA NVF/CS MAINTAINS AN OUTGOING TRAFFIC QUEUE. ONCE THERE
  285. * ARE ONE OR MORE ENTRIES IN THE QUEUE, THE AIP MONITOR REMOVES EACH
  286. * ENTRY AND SENDS IT TO NAM.
  287. *
  288. * 3.0 DECK/ROUTINE NAMING CONVENTIONS
  289. *
  290. * SERVICES AND SCHEDULING ROUTINE NAMES ARE ALL PREFIXED BY *SS*.
  291. * THE NAMES HAVE THE FOLLOWING FORMAT:
  292. *
  293. * SSYZZZ
  294. *
  295. * WHERE:
  296. * Y = A, AIP INTERFACE ROUTINES
  297. * B, BIT MANIPULATION ROUTINES
  298. * C, CLOCK/TIMER ROUTINES
  299. * D, CHARACTER CONVERSION ROUTINES
  300. * F, FILE UTILITIES
  301. * 0, OVERLAY MANAGEMENT ROUTINES
  302. * R, COMMAND RECOGNITION ROUTINES
  303. * S, SEQUENCING ROUTINES
  304. * T, TABLE/QUEUE MANAGEMENT ROUTINES
  305. *
  306. * ZZZ = FIRST LETTER OF EACH WORD OF VERB-ADJECTIVE-NOUN DESCRIBING
  307. * THE ROUTINE.
  308. *
  309. * ONE EXAMPLE IS *SSBSBF*. THIS IS A SERVICES AND SCHEDULING BIT
  310. * MANIPULATION ROUTINE, WHERE *SBF* STANDS FOR STORE BIT FIELD.
  311. * ANOTHER EXAMPLE IS *SSTRQE*. THIS IS A SERVICES AND SCHEDULING
  312. * TABLE/QUEUE MANAGEMENT ROUTINE, WHERE *RQE* STANDS FOR REMOVE
  313. * QUEUE ENTRY.
  314. *
  315. * THE FOLLOWING IS A LIST OF ALL THE SERVICES AND SCHEDULING
  316. * ROUTINES GROUPED BY TYPE OF ROUTINE.
  317. *
  318. * AIP INTERFACE ROUTINES--
  319. *
  320. * SSACNI - CONTROL NETWORK INTERFACE
  321. *
  322. * BIT MANIPULATION ROUTINES--
  323. *
  324. * SSBCBW - CLEAR BIT IN WORD
  325. * SSBFPB - FIND PRIORITY BIT
  326. * SSBSBW - SET BIT IN WORD
  327. * SSBTBW - TEST BIT IN WORD
  328. * SSBEBF - EXTRACT BIT FIELD
  329. * SSBSBF - STORE BIT FIELD
  330. *
  331. * CLOCK/TIME ROUTINES--
  332. *
  333. * SSCATR - ACCEPT TIMER REQUEST
  334. * SSCCTR - CANCEL TIMER REQUEST
  335. * SSCRTR - RETURN TIMER REQUEST
  336. * SSCUTD - UPDATE TIME OF DAY
  337. *
  338. * CHARACTER CONVERSION ROUTINES--
  339. *
  340. * SSDCAD - CONVERT ASCII TO DISPLAY CODE
  341. * SSDCDA - CONVERT DISPLAY CODE TO ASCII.
  342. *
  343. * FILE UTILITIES--
  344. *
  345. * SSFCBS - CHECK BUFFER SPACE
  346. *
  347. * OVERLAY MANAGEMENT ROUTINES--
  348. *
  349. * SSOJOP - JUMP TO OVERLAY PROGRAM
  350. * SSOCOL - CONTROL OVERLAY LOADING
  351. * SSOEOP - EXECUTE OVERLAY PROGRAM
  352. *
  353. * COMMAND RECOGNITION ROUTINES--
  354. *
  355. * SSRGNT - GET NEXT TOKEN
  356. * SSRRCS - RECOGNIZE COMMAND STRING
  357. *
  358. * SEQUENCE ROUTINES--
  359. *
  360. * SSSCRR - CALL REQUESTED ROUTINE.
  361. * SSSPAT - PROCESS ABNORMAL TERMINATION
  362. * SSSAOR - ACCEPT OVERLAY REQUEST
  363. * SSSAWR - ACCEPT WORKLIST REQUEST
  364. * SSSESP - EXECUTE STATUS (WORKLIST) PROGRAM
  365. * SSSEWP - EXECUTE WORKLIST PROGRAM
  366. * SSSPES - PROGRAM EXECUTION SEQUENCER
  367. * SSSPSI - PREPARE STATISTICS INFORMATION.
  368. * SSSWNR - WAIT FOR NEW REQUEST
  369. *
  370. * TABLE/QUEUE MANAGEMENT ROUTINES--
  371. *
  372. * SSTRCM - REQUEST CENTRAL MEMORY
  373. * SSTAQE - ACCEPT QUEUE ENTRY
  374. * SSTRQE - REMOVE QUEUE ENTRY
  375. * SSTTMR - TABLE MANAGEMENT ROUTINES.
  376. * SSTASU - ACCUMULATE STORAGE USED
  377. * SSTATS - ALLOCATE TABLE SPACE
  378. * SSTDFL - DECREASE FIELD LENGTH
  379. * SSTETS - ENLARGE TABLE SPACE
  380. * SSTITM - INITIALIZE TABLE MANAGER
  381. * SSTRTS - REMOVE TABLE SPACE
  382. * SSTSDA - SET DYNAMIC AREA
  383. *
  384. *E
  385. * 4.0 STRUCTURE CHARTS
  386. *
  387. * THE FOLLOWING ARE STRUCTURE CHARTS FOR SERVICES AND SCHEDULING.
  388. * NOT ALL THE ROUTINES ARE SHOWN, ONLY THOSE THAT CALL OTHER
  389. * ROUTINES.
  390. *
  391. *
  392. * 4.1 AIP INTERFACE ROUTINE
  393. *
  394. *
  395. * +-------------+
  396. * I I
  397. * +----------->I CSNVDSP I
  398. * I I I
  399. * I +-------------+
  400. * I
  401. * I +-------------+
  402. * I I I
  403. * +----------->I NETGETL I
  404. * I I I
  405. * I +-------------+
  406. * I
  407. * +-----------+ I +-------------+
  408. * I I I I I
  409. * I SSACNI +--------+----------->I NETPUT I
  410. * I I I I I
  411. * +-----------+ I +-------------+
  412. * I
  413. * I +-------------+
  414. * I I I
  415. * +----------->I NETREL I
  416. * I I I
  417. * I +-------------+
  418. * I
  419. * I +-------------+
  420. * I I I
  421. * +----------->I SSTRQE I
  422. * I I
  423. * +-------------+
  424. *
  425. *
  426. *
  427. * SSACNI -- CONTROL NETWORK INTERFACE
  428. * CSNVDSP -- CS/NVF DISPATCH NETWORK TRAFFIC
  429. * NETGETL -- RECEIVE NETWORK TRAFFIC
  430. * NETPUT -- SEND NETWORK TRAFFIC
  431. * NETREL -- RELEASE DEBUG TRACE FILE
  432. * SSTRQE -- REMOVE QUEUE ENTRY
  433. *E
  434. * 4.2 CLOCK/TIMER ROUTINES
  435. *
  436. * +-------------+
  437. * I I
  438. * I SSCATR I
  439. * I I
  440. * +------+------+
  441. * I
  442. * +----------------+-----------------+
  443. * I I
  444. * +------+-----+ +------+------+
  445. * I I I I
  446. * I SSCUTD I I SSTETS I
  447. * I I I I
  448. * +------------+ +-------------+
  449. *
  450. *
  451. *
  452. *
  453. * +-------------+ +-------------+
  454. * I I I I
  455. * I SSCCTR +--------->I SSTRTS I
  456. * I I I I
  457. * +-------------+ +-------------+
  458. *
  459. *
  460. *
  461. *
  462. *
  463. * +-------------+
  464. * I I
  465. * I SSCRTR I
  466. * I I
  467. * +-------------+
  468. * I
  469. * +----------------+----------------+
  470. * I I
  471. * +------+------+ +------+------+
  472. * I I I I
  473. * I SSTAQE I I SSTRQE I
  474. * I I I I
  475. * +-------------+ +-------------+
  476. *
  477. *
  478. * SSCATR -- ACCEPT TIMER REQUEST
  479. * SSCUTD -- UPDATE TIME OF DAY
  480. * SSTETS -- ENLARGE TABLE SPACE
  481. * SSCCTR -- CANCEL TIMER REQUEST
  482. * SSCTRS -- REMOVE TABLE SPACE
  483. * SSCRTR -- RETURN TIMER REQUEST
  484. * SSTAQE -- ACCEPT QUEUE ENTRY
  485. * SSTRQE -- REMOVE QUEUE ENTRY
  486. *E
  487. *
  488. *
  489. * 4.2 CLOCK/TIMER ROUTINES (CONT.)
  490. *
  491. *
  492. *
  493. *
  494. *
  495. * +-------------+
  496. * I I
  497. * +-------------->I PDATE I
  498. * I I I
  499. * I +-------------+
  500. * I
  501. * I +-------------+
  502. * I I I
  503. * +-------------->I DATE I
  504. * I I I
  505. * I +-------------+
  506. * I
  507. * +-------------+ I +-------------+
  508. * I I I I I
  509. * I SSCUTD +-------+-------------->I CLOCK I
  510. * I I I I I
  511. * +-------------+ I +-------------+
  512. * I
  513. * I +-------------+
  514. * I I I
  515. * +-------------->I RTIME I
  516. * I I I
  517. * I +-------------+
  518. * I
  519. * I +-------------+
  520. * I I I
  521. * +-------------->I SSSAWR I
  522. * I I
  523. * +-------------+
  524. *
  525. *
  526. * SSCUTD -- UPDATE TIME OF DAY
  527. * PDATE -- GET PACKED DATE AND TIME
  528. * DATE -- GET DATE
  529. * CLOCK -- GET TIME (DISPLAY CODE)
  530. * RTIME -- GET AMOUNT OF TIME SINCE DEADSTART
  531. * SSSAWR -- ACCEPT WORKLIST REQUEST
  532. *E
  533. * 4.3 OVERLAY MANAGEMENT ROUTINES
  534. *
  535. *
  536. *
  537. * +-------------+
  538. * I I
  539. * I SSOCOL I
  540. * I I
  541. * +------+------+
  542. * I
  543. * +--------------------+-----------------------+
  544. * I I I
  545. * +------+------+ +------+------+ +------+------
  546. * I I I I I I
  547. * I READ I I SSSAWR I I SSSTSDA I
  548. * I I I I I I
  549. * +-------------+ +-------------+ +-------------+
  550. *
  551. *
  552. * +-------------+
  553. * I I
  554. * +--------->I SSBCBW I
  555. * I I I
  556. * I +-------------+
  557. * I
  558. * I +-------------+
  559. * I I I
  560. * +--------->I SSBFPB I
  561. * +-------------+ I I I
  562. * I I I +-------------+
  563. * I SSOEOP +----------+
  564. * I I I +-------------+
  565. * +-------------+ I I I
  566. * +--------->I SSOJOP I
  567. * I I I
  568. * I +-------------+
  569. * I
  570. * I +-------------+
  571. * I I I
  572. * +--------->I SSSAWR I
  573. * I I
  574. * +-------------+
  575. *
  576. *
  577. * SSOCOL -- CONTROL OVERLAY LOADING
  578. * READ -- INITIATE CIO READ ON FILE
  579. * SSSAWR -- ACCEPT WORKLIST REQUEST
  580. * SSTSDA -- SET DYNAMIC TABLE AREA
  581. * SSOEOP -- EXECUTE OVERLAY PROGRAM
  582. * SSBCBW -- CLEAR BIT IN WORD
  583. * SSBFPB -- FIND PRIORITY BIT
  584. * SSOJOP -- JUMP TO OVERLAY PROGRAM
  585. *E
  586. *
  587. *
  588. * 4.4 COMMAND RECOGNITION ROUTINES
  589. *
  590. *
  591. *
  592. *
  593. * +-------------+
  594. * I I
  595. * I SSRGNT I
  596. * I I
  597. * +------+------+
  598. * I
  599. * +---------------+---------------+
  600. * I I
  601. * +------+------+ +------+------+
  602. * I I I I
  603. * I SSBEBF I I SSBSBF I
  604. * I I I I
  605. * +-------------+ +-------------+
  606. *
  607. *
  608. *
  609. * +-------------+
  610. * I I
  611. * I SSRRCS I
  612. * I I
  613. * +------+------+
  614. * I
  615. * +-----------------+------------------+
  616. * I I I
  617. * +------+------+ +------+------+ +------+-------+
  618. * I I I I I I
  619. * I SSRGNT I I SSBEBF I I SSBSBF I
  620. * I I I I I I
  621. * +-------------+ +-------------+ +--------------+
  622. *
  623. *
  624. * SSRGNT -- GET NEXT TOKEN
  625. * SSBEBF -- EXTRACT BIT FIELD
  626. * SSBSBF -- STORE BIT FIELD
  627. * SSRRCS -- RECOGNIZE COMMAND STRING
  628. *E
  629. *
  630. *
  631. * 4.5 SEQUENCE ROUTINES
  632. *
  633. *
  634. *
  635. *
  636. * +-------------+ +-------------+
  637. * I I I I
  638. * I SSSAOR +------------>I SSBSBW I
  639. * I I I I
  640. * +-------------+ +-------------+
  641. *
  642. *
  643. *
  644. *
  645. *
  646. * +-------------+
  647. * I I
  648. * I SSSAWR I
  649. * I I
  650. * +------+------+
  651. * I
  652. * +--------------+---------------+
  653. * I I
  654. * +------+-------+ +------+------+
  655. * I I I I
  656. * I SSSAOR I I SSBSBW I
  657. * I I I I
  658. * +--------------+ +-------------+
  659. *
  660. *
  661. *
  662. *
  663. *
  664. *
  665. * +-------------+ +-------------+
  666. * I I I I
  667. * I SSSESP +--------------->I SSSCRR I
  668. * I I I I
  669. * +-------------+ +-------------+
  670. *
  671. *
  672. * SSSAOR -- ACCEPT OVERLAY REQUEST
  673. * SSSCRR -- CALL REQUESTED ROUTINE
  674. * SSSAWR -- ACCEPT WORKLIST REQUEST
  675. * SSBSBW -- SET BIT IN WORD
  676. * SSSESP -- EXECUTE STATUS WORKLIST PROGRAM
  677. *E
  678. *
  679. *
  680. * 4.5 SEQUENCE ROUTINES (CONT.)
  681. *
  682. *
  683. *
  684. *
  685. * +-------------+
  686. * I I
  687. * I SSSEWP I
  688. * I I
  689. * +------+------+
  690. * I
  691. * +-----------------+------------------+
  692. * I I I
  693. * +------+------+ +------+------+ +------+------+
  694. * I I I I I I
  695. * I SSSCRR I I SSBCBW I I SSBFBP I
  696. * I I I I I I
  697. * +-------------+ +-------------+ +-------------+
  698. *
  699. *
  700. *
  701. * +-------------+
  702. * I I
  703. * I SSSPSI I
  704. * I I
  705. * +------+------+
  706. * I
  707. * +---------------+-----------------+
  708. * I I
  709. * +------+------+ +------+------+
  710. * I I I I
  711. * I NETLGS I I XCDD I
  712. * I I I I
  713. * +-------------+ +-------------+
  714. *
  715. *
  716. * SSSEWP -- EXECUTE WORKLIST PROGRAM
  717. * SSSCRR -- CALL REQUESTED ROUTINE
  718. * SSBCBW -- CLEAR BIT IN WORD
  719. * SSBFPB -- FIND PRIORITY BIT
  720. * SSSPSI -- PREPARE STATISTICS INFORMATION
  721. * NETLGS -- LOG NETWORK STATISTICS
  722. * XCDD -- CONVERT INTEGER TO DISPLAY CODE DECIMAL
  723. *E
  724. *
  725. *
  726. * 4.5 SEQUENCE ROUTINES (CONT.)
  727. *
  728. *
  729. *
  730. *
  731. *
  732. * +-------------+
  733. * I I
  734. * +------------>I MESSAGE I
  735. * I I I
  736. * I +-------------+
  737. * I
  738. * I +-------------+
  739. * I I I
  740. * +------------>I REPRIEVE I
  741. * I I I
  742. * I +-------------+
  743. * I
  744. * +-------------+ I +-------------+
  745. * I I I I I
  746. * I SSSPAT +------+------------>I DMB I
  747. * I I I I I
  748. * +-------------+ I +-------------+
  749. * I
  750. * I +-------------+
  751. * I I I
  752. * +------------>I NETSTC I
  753. * I I I
  754. * I +-------------+
  755. * I
  756. * I +-------------+
  757. * I I I
  758. * +------------>I WRITER I
  759. * I I
  760. * +-------------+
  761. *
  762. *
  763. * SSSPAT -- PROCESS ABNORMAL TERMINATION
  764. * MESSAGE -- SEND MESSAGE TO DAYFILE
  765. * REPRIEVE -- REPRIEVE PROCESSOR
  766. * DMB -- GENERATE BINARY DUMP
  767. * NETSTC -- FLUSH NAM STATISTICS
  768. * WRITER -- FLUSH CIO BUFFER AND EOR ON FILE
  769. *E
  770. *
  771. *
  772. *
  773. * 4.5 SEQUENCE ROUTINES (CONT.)
  774. *
  775. *
  776. *
  777. *
  778. *
  779. * +-------------+
  780. * I I
  781. * +------------>I NETCHEK I
  782. * I I I
  783. * I +-------------+
  784. * I
  785. * I +-------------+
  786. * I I I
  787. * +------------>I SSCUTD I
  788. * I I I
  789. * I +-------------+
  790. * I
  791. * +-------------+ I +-------------+
  792. * I I I I I
  793. * I SSSPES +----+------------>I SSSESP I
  794. * I I I I I
  795. * +-------------+ I +-------------+
  796. * I
  797. * I +-------------+
  798. * I I I
  799. * +------------>I SSSEWP I
  800. * I I I
  801. * I +-------------+
  802. * I
  803. * I +-------------+
  804. * I I I
  805. * +------------>I SSSWNR I
  806. * I I
  807. * +-------------+
  808. *
  809. *
  810. * SSSPES -- PROGRAM EXECUTION SEQUENCE
  811. * NETCHEK - UPDATE NSUP WORD
  812. * SSCUTD -- UPDATE TIME OF DAY
  813. * SSSESP -- EXECUTE STATUS WORKLIST PROGRAM
  814. * SSSEWP -- EXECUTE WORKLIST PROGRAM
  815. * SSSWNR -- WAIT FOR NEW REQUEST
  816. *E
  817. *
  818. *
  819. * 4.5 SEQUENCE ROUTINES (CONT.)
  820. *
  821. *
  822. *
  823. *
  824. *
  825. *
  826. * +-------------+
  827. * I I
  828. * I SSSWNR I
  829. * I I
  830. * +------+------+
  831. * I
  832. * +----------------+----------------+
  833. * I I I
  834. * +------+------+ +------+------+ +------+------+
  835. * I I I I I I
  836. * I NETWAIT I I RECALL I I SSTDFL I
  837. * I I I I I I
  838. * +-------------+ +-------------+ +-------------+
  839. *
  840. *
  841. * SSSWNR -- WAIT FOR NEW REQUEST
  842. * NETWAIT -- REQUEST NAM TO ROLLOUT PROGRAM
  843. * RECALL -- RETURN CONTROL AFTER COMPLETE BIT IS SET
  844. * SSTDFL -- DECREASE FIELD LENGTH
  845. *E
  846. *
  847. *
  848. * 4.6 TABLE/QUEUE MANAGEMENT ROUTINES
  849. *
  850. *
  851. *
  852. *
  853. *
  854. * +-------------+
  855. * I I
  856. * I SSTAQE I
  857. * I I
  858. * +------+------+
  859. * I
  860. * +----------------+----------------+
  861. * I I I
  862. * +------+------+ +------+------+ +------+------+
  863. * I I I I I I
  864. * I MOVEI I I SSTATS I I SSSAWR I
  865. * I I I I I I
  866. * +-------------+ +-------------+ +-------------+
  867. *
  868. *
  869. *
  870. * +-------------+
  871. * I I
  872. * I SSTRQE I
  873. * I I
  874. * +------+------+
  875. * I
  876. * +------------+------------+
  877. * I I
  878. * +------+------+ +------+------+
  879. * I I I I
  880. * I MOVEI I I SSTRTS I
  881. * I I I I
  882. * +-------------+ +-------------+
  883. *
  884. *
  885. * SSTAQE -- ACCEPT QUEUE ENTRY
  886. * MOVEI -- MOVE WORDS (INDIRECT ADDRESSING)
  887. * SSTATS -- ALLOCATE TABLE SPACE
  888. * SSSAWR -- ACCEPT WORKLIST REQUEST
  889. * SSTRQE -- REMOVE QUEUE ENTRY
  890. * SSTRTS -- REMOVE TABLE SPACE
  891. *E
  892. *
  893. *
  894. * 4.6 TABLE/QUEUE MANAGEMENT ROUTINES (CONT.)
  895. *
  896. *
  897. *
  898. * +-------------+
  899. * I I
  900. * I SSTRTS I
  901. * I I
  902. * +------+------+
  903. * I
  904. * +------------+------------+
  905. * I I
  906. * +------+------+ +------+------+
  907. * I I I I
  908. * I MOVEI I I SSTASU I
  909. * I I I I
  910. * +-------------+ +-------------+
  911. *
  912. *
  913. *
  914. * +-------------+
  915. * I I
  916. * I SSTSDA I
  917. * I I
  918. * +------+------+
  919. * I
  920. * +-----------+------------+
  921. * I I
  922. * +------+------+ +------+------+
  923. * I I I I
  924. * I SSTASU I I RFL I
  925. * I I I I
  926. * +-------------+ +-------------+
  927. *
  928. *
  929. * SSTRTS -- REMOVE TABLE SPACE
  930. * MOVEI -- MOVE WORDS (INDIRECT ADDRESSING)
  931. * SSTASU -- ACCUMULATE STORAGE USED
  932. * SSTSDA -- SET DYNAMIC TABLE AREA
  933. * RFL -- REQUEST FIELD LENGTH
  934. *
  935. *E
  936. * 5.0 TABLE STRUCTURES
  937. *
  938. * 5.1 POINTER TABLE--
  939. *
  940. * THIS TABLE CONTAINS POINTERS TO IMPORTANT PARTS OF THE PROGRAM.
  941. *
  942. *T 42/NAME,18/ADDR
  943. *
  944. * NAME - DISPLAY CODE POINTER NAME.
  945. * ADDR - POINTER VALUE.
  946. *
  947. *
  948. * 5.2 WORKLIST REQUEST QUEUE
  949. *
  950. * THIS IS A ONE WORD ITEM THAT HAS A BIT SET FOR EACH TYPE ZERO
  951. * WORKLIST REQUEST TO BE EXECUTED.
  952. *
  953. *T 12/RES,48/BIT$MAP
  954. *
  955. * RES - UNUSED FIELD.
  956. * BIT$MAP - THE FIRST BIT ON THE LEFT CORRESPONDS TO THE FIRST
  957. * WORKLIST DEFINITION AND HAS THE HIGHEST PRIORITY, THE
  958. * SECOND BIT CORRESPONDS TO THE SECOND WORKLIST, AND SO
  959. * ON.
  960. *E
  961. * 5.3 WORKLIST DEFINITION TABLE
  962. *
  963. * THIS TABLE CONTAINS THE WORKLIST DEFINITIONS FOR THE PROGRAM.
  964. *
  965. * THERE ARE THREE FORMATS FOR AN ENTRY IN THIS TABLE. THEY ARE AS
  966. * FOLLOWS:
  967. *
  968. * WORKLIST TYPE ZERO -- RESIDENT ROUTINE
  969. *
  970. *T 12/TYPE0,30/RES,18/RADD
  971. *
  972. * TYPE0 - WORKLIST TYPE (SET TO ZERO)
  973. * RES - UNUSED FIELD
  974. * RADD - ROUTINE ENTRY POINT ADDRESS
  975. *
  976. *
  977. * WORKLIST TYPE ONE -- STATUS WORKLIST DRIVEN.
  978. *
  979. *T 12/TYPE1,30/RES,18/CADDR
  980. *
  981. * TYPE1 - WORKLIST TYPE (SET TO ONE)
  982. * RES - UNUSED FIELD
  983. * CADDR - INTERUPT CELL ADDRESS
  984. *
  985. *
  986. * WORKLIST TYPE TWO -- OVERLAY RESIDENT ROUTINE.
  987. *
  988. *T 12/TYPE2,12/OVNUM,12/OVEPT,24/RES
  989. *
  990. * TYPE2 - WORKLIST TYPE (SET TO TWO)
  991. * OVNUM - OVERLAY NUMBER
  992. * OVEPT - OVERLAY ENTRY POINT NUMBER
  993. * RES - UNUSED FIELD
  994. *E
  995. * 5.4 QUEUE TO WORKLIST DEFINITION TABLE
  996. *
  997. * EACH ENTRY IN THIS TABLE CORRESPONDS TO A TABLE/QUEUE MANAGED
  998. * BY THE TABLE MANAGER. EACH ENTRY CONTAINS A POINTER TO THE
  999. * WORKLIST DEFINITION ENTRY THAT MUST BE INVOKED WHEN AN ENTRY IS
  1000. * MADE IN THE QUEUE.
  1001. *
  1002. *T TBL1 60/WLD$NUM
  1003. *T TBL2 60/WLD$NUM
  1004. *
  1005. * WLD$NUM - WORKLIST DEFINITION NUMBER
  1006. *
  1007. *E
  1008. * 5.5 STATUS WORKLIST DEFINITION
  1009. * STATUS WORKLIST DEFINITIONS
  1010. *
  1011. * THIS TABLE CONTAINS THE CURRENT CONDITIONS TO BE WATCHED FOR,
  1012. * THE MONITORS AND THE ADDRESSES TO BE EXECUTED WHEN THE
  1013. * CONDITIONS CHANGE.
  1014. *
  1015. *T WORD1 6/RES,18/ADDR1,18/ADDR2,18/RADDR
  1016. *T WORD2 60/INIT1
  1017. *T WORD3 60/INIT2
  1018. *
  1019. * RES - UNUSED FIELD
  1020. * ADDR1 - ADDRESS OF FIRST CELL TO BE WATCHED
  1021. * ADDR2 - ADDRESS OF SECOND CELL TO BE WATCHED
  1022. * RADDR - ENTRY POINT ADDRESS OF ROUTINE TO CALL
  1023. * INIT1 - INITIAL VALUE OF FIRST CELL
  1024. * INIT2 - INITIAL VALUE OF SECOND CELL
  1025. *
  1026. *
  1027. * 5.6 OVERLAY DEFINITION TABLE
  1028. *
  1029. * THIS TABLE IS THE INDEX FOR THE OVERLAY FILE. IT CONTAINS THE
  1030. * OVERLAY NAMES, ENTRY POINTS, AND DISK ADDRESSES FOR THE
  1031. * OVERLAYS.
  1032. *
  1033. *T WORD1 42/OVNAME,18/FWA
  1034. *T WORD2 12/LEVEL,12/RES,18/PADDR,18/LWA
  1035. *
  1036. * OVNAME - OVERLAY NAME
  1037. * FWA - FIRST WORD ADDRESS OF OVERLAY
  1038. * LEVEL - OVERLAY LEVEL
  1039. * RES - UNUSED FIELD
  1040. * PADDR - RELATIVE PRU ADDRESS ON OVERLAY FILE
  1041. * LWA - LAST WORD ADDRESS OF OVERLAY
  1042. *E
  1043. * 5.7 OVERLAY CONTROL ITEMS
  1044. *
  1045. * THE FOLLOWING ITEMS ARE USED FOR LOADING AND EXECUTING OVERLAYS.
  1046. *
  1047. * OVNUM = PRIMARY LEVEL NUMBER OF OVERLAY CURRENTLY EXECUTING
  1048. * OVENUM = OVERLAY ENTRY POINT NUMBER TO EXECUTE
  1049. * OVC = NUMBER OF OVERLAY REQUESTS MADE
  1050. *
  1051. *
  1052. * 5.8 OVERLAY REQUEST TABLE
  1053. *
  1054. * THIS IS A BIT MAP WHERE EACH BIT CORRESPONDS TO AN OVERLAY THAT
  1055. * NEEDS TO BE LOADED.
  1056. *
  1057. *T 12/RES,42/BIT$MAP
  1058. *
  1059. * RES - UNUSED FIELD
  1060. * BIT$MAP - BEGINNING WITH THE LEFT MOST BIT: BIT ONE CORRESPONDS
  1061. * TO OVERLAY ONE, BIT TWO TO OVERLAY TWO, AND SO ON.
  1062. *
  1063. *
  1064. * 5.9 ROLLOUT TABLE
  1065. *
  1066. * THIS TABLE USED TO CHECK IF THERE ARE ANY OUTSTANDING EXTERNAL
  1067. * REQUESTS BEING MADE. EACH ENTRY POINTS TO A WORD AND THE BIT
  1068. * POSITION OF THE COMPLETE BIT.
  1069. *
  1070. *T WORD1 48/RES,12/ECOUNT
  1071. *T WORD2+ 30/BPOS,30/WADDR
  1072. *
  1073. * RES - UNUSED FIELD
  1074. * ECOUNT - ENTRY COUNT
  1075. * BPOS - BIT POSITION OF COMPLETE BIT
  1076. * WADDR - POINTER TO WORD CONTAINING COMPLETE BIT
  1077. *
  1078. *E
  1079. * 5.10 TIMER REQUEST BLOCK
  1080. *
  1081. * THIS IS THE FORMAT OF THE BLOCK USED WHEN MAKING A TIMER REQUEST.
  1082. *
  1083. *T WORD1 48/RES,12/ECOUNT
  1084. *T WORD2 18/RES,18/CNUM,24/RES
  1085. *T WORD3 60/RES
  1086. *T WORD4 24/FTIME,18/DELAY,18/QNUM
  1087. *
  1088. * RES - RESEVRED FOR USE BY PROGRAM (NVF/CS)
  1089. * ECOUNT - ENTRY WORD COUNT (SET TO FOUR)
  1090. * CNUM - CANCEL NUMBER
  1091. * FTIME - FIRE TIME (TIME IN WHICH TO PUT THIS BLOCK INTO A Q)
  1092. * DELAY - DELAY TIME (NUMBER OF SECONDS TO ADD TO CURRENT TIME
  1093. * TO DETERMINE THE FIRE TIME)
  1094. * QNUM - NUMBER OF THE QUEUE TO PLACE THIS BLOCK IN AFTER IT
  1095. * HAS REACHED ITS FIRE TIME
  1096. *
  1097. *
  1098. * 5.11 CURRENT TIME AND DAY
  1099. *
  1100. * THIS BLOCK CONTAINS THE CURRENT TIME AND DATE TO BE USED BY
  1101. * SERVICES AND SCHEDULING, AND BY THE PROGRAM (NVF/CS)
  1102. *
  1103. *T WORD1 30/RES,30/PDATE
  1104. *T WORD2 60/DDATE
  1105. *T WORD3 60/DTIME
  1106. *T WORD4 24/RTSEC,36/RTMIL
  1107. *T WORD5 24/FTIME,36/RES
  1108. *
  1109. * RES - UNUSED FIELD
  1110. * PDATE - PACKED DATE AND TIME
  1111. * DDATE - DISPLAY CODED DATE
  1112. * DTIME - DISPLAY CODED TIME
  1113. * RTSEC - NUMBER OF SECONDS SINCE DEADSTART
  1114. * RTMIL - MILLISECONDS
  1115. * FTIME - NEXT FIRE TIME (WITH RELATIION TO RTSEC)
  1116. *E
  1117. *
  1118. * 5.12 TYPICAL QUEUE ENTRY
  1119. *
  1120. * THE FOLLOWING IS THE FORMAT FOR A TYPICAL QUEUE ENTRY IN NVF
  1121. * OR CS.
  1122. *
  1123. *T WORD1,48/RES,12/ECOUNT
  1124. *T WORD2,60/ABHWORD
  1125. *T WORD3,60/ENTRY
  1126. *T WORD4,60/
  1127. * .
  1128. * .
  1129. * .
  1130. *T,ECOUNT,60/
  1131. *
  1132. * RES - USED BY PROGRAM
  1133. * ECOUNT - ENTRY WORD COUNT
  1134. * ABHWORD - APPLICTAION BLOCK HEADER WORD
  1135. * ENTRY - BODY OF QUEUE ENTRY
  1136. *E
  1137. * 6.0 DEBUGGING TIPS
  1138. *
  1139. * THE FOLLOWING LIST ARE THINGS TO LOOK AT OR LOOK FOR WHEN READING
  1140. * OR ANALYZING AN NVF/CS DUMP. THIS LIST IS NOT IN ANY SPECIFIC
  1141. * ORDER. THE ITEMS THAT APPLY DEPEND ON WHAT THE PROBLEM IS.
  1142. *
  1143. * 1. FOR QUICK REFERENCE TO KEY PLACES IN A DUMP USE THE POINTER
  1144. * TABLE WHICH SHOULD BE THE FIRST THING LOADED AFTER THE
  1145. * LOADER TABLE. IT WILL POINT TO SUCH THINGS AS THE NSUP WORD
  1146. * AND THE BEGINNING OF THE MANAGED TABLES POINTERS.
  1147. *
  1148. * 2. CHECK THE REPRIEVE BLOCK FOR ANY APPLICABLE INFORMATION. FOR
  1149. * THE FORMAT OF THE BLOCK SEE THE NOS VOLUME 4 REFERENCE
  1150. * MANUEL.
  1151. *
  1152. * 3. THE FIRST WORD RIGHT AFTER THE REPRIEVE BLOCK CONTAINS THE
  1153. * CONTENTS OF *SYS=* JUST AFTER THE ABORT.
  1154. *
  1155. * 4. CHECK OVNUM, OVENUM, ORQ, AND ORC FOR THE STATE OF OVERLAY
  1156. * LOADING. THESE ITEMS WILL TELL YOU SUCH THINGS AS WHAT
  1157. * OVERLAY IS LOADED, WHICH ENTRY POINT IS BEING EXECUTED, AND
  1158. * WHAT OVERLAYS STILL NEED TO BE LOADED
  1159. *
  1160. * 5. CHECK THE CONTENTS OF WCB, ABH, AND MSG BUFFERS.
  1161. *
  1162. * 6. CHECK FOR MANAGED TABLES CONTAINING DATA. THESE ARE ALL THE
  1163. * TABLES WHOSE LENGTH VALUES ARE NON-ZERO.
  1164. *
  1165. * 7. CHECK THE CONTENTS OF MEMLOC. THIS WILL TELL YOU WHERE THE
  1166. * MANAGED TABLE AREA BEGINS.
  1167. *
  1168. * 8. TO VERIFY THAT THE LOAD MAP MATCHES THE DUMP, THE BUILD DATE
  1169. * AND TIME INDICATED IN THE COMMENT PORTION OF PROC *SSSPAT*
  1170. * (IN THE LOAD MAP) SHOULD MATCH THE DATE AND TIME FOUND
  1171. * RIGHT AFTER THE POINTER TABLE.
  1172. *
  1173. *E
  1174. #
  1175. *ENDTEXT
  1176. *ENDIF
  1177. # TITLE SSSPES - PROGRAM EXECUTION SEQUENCER. #
  1178.  
  1179. BEGIN # SSSPES #
  1180. #
  1181. ** SSSPES - PROGRAM EXECUTION SEQUENCER.
  1182. *
  1183. * S. H. FISCHER. 81/08/27.
  1184. *
  1185. * THIS IS THE MAIN LOOP.
  1186. *
  1187. * PROC SSSPES
  1188. *
  1189. * ENTRY NONE.
  1190. *
  1191. * EXIT NEVER.
  1192. *
  1193. * METHOD TRY AND FIND WORK TO TO, IF NONE CALL IDLE ROUTINE
  1194. * AND REPEAT.
  1195. *
  1196. #
  1197.  
  1198.  
  1199.  
  1200.  
  1201. #
  1202. **** PROC SSSPES - XREF LIST.
  1203. #
  1204. XREF
  1205. BEGIN
  1206. PROC NETCHEK; # CHECK WORKLIST PROCESSING COMPLETION #
  1207. PROC SSCUTD; # UPDATE TIME OF DAY #
  1208. PROC SSSESP; # EXECUTE STATUS PROGRAM #
  1209. PROC SSSEWP; # EXECUTE WORKLIST PROGRAM #
  1210. PROC SSSWNR; # WAIT NEW REQUEST #
  1211. END
  1212. #
  1213. ****
  1214. #
  1215.  
  1216.  
  1217.  
  1218.  
  1219. ITEM ACTIVE B;
  1220.  
  1221.  
  1222.  
  1223.  
  1224. TOP: # TOP OF MAIN LOOP #
  1225.  
  1226. NETCHEK; # CHECK WORKLIST PROCESSING COMPLETION #
  1227.  
  1228. SSCUTD; # UPDATE TIME OF DAY #
  1229.  
  1230. SSSESP( ACTIVE ); # EXECUTE STATUS PROGRAM #
  1231. IF ACTIVE THEN GOTO TOP;
  1232.  
  1233. SSSEWP( ACTIVE ); # EXECUTE WORKLIST PROGRAM #
  1234. IF ACTIVE THEN GOTO TOP;
  1235.  
  1236. SSSWNR; # WAIT NEW REQUEST #
  1237.  
  1238. GOTO TOP;
  1239.  
  1240.  
  1241.  
  1242.  
  1243. END # SSSPES #
  1244. TERM
cdc/nos2.source/nam5871/ssspes.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator