User Tools

Site Tools


cdc:nos2.source:opl871:subsyst

SUBSYST

Table Of Contents

  • [00008] SUBSYST - SUBSYSTEM DISPLAY.
  • [00012] SUBSYSTEM DISPLAY.
  • [00147] GENERATE SUBSYSTEM TABLE.
  • [00177] ASSEMBLY CONSTANTS.
  • [00194] TABLES AND BUFFER DEFINITIONS.
  • [00264] MAIN PROGRAM.
  • [00293] SUBROUTINES.
  • [00295] ERR - ERROR PROCESSOR.
  • [00308] FDB - FORMAT DISPLAY BUFFER.
  • [00347] PKB - PROCESS KEYBOARD.
  • [00603] RSD - RETURN SUBSYSTEM DATA.
  • [00620] WSB - WRITE SUBSYSTEM INFORMATION BUFFER.
  • [00735] WSBC - PAGING CONTROL WORDS.
  • [00769] BUFFER AREA.
  • [00794] PRS - PRESET ROUTINE.
  • [00913] TLOP - TABLE OF LIST OPTIONS.
  • [00925] FNB - FIND NON-BLANK CHARACTER.
  • [00950] PRESET COMMON DECKS.

Source Code

SUBSYST.txt
  1. IDENT SUBSYST,SUB
  2. ABS
  3. SST
  4. ENTRY SUBSYST
  5. ENTRY RFL=
  6. ENTRY SSJ=
  7. SYSCOM B1
  8. TITLE SUBSYST - SUBSYSTEM DISPLAY.
  9. *COMMENT SUBSYST - SUBSYSTEM DISPLAY.
  10. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  11. SPACE 4,10
  12. *** SUBSYST - SUBSYSTEM DISPLAY.
  13. *
  14. * B. J. OLIPHANT 81/04/18.
  15. * R. C. SCHMITTER 83/09/15.
  16. * J. M. MAREK 84/05/16.
  17. SPACE 4,10
  18. *** *SUBSYST* IS A CPU UTILITY USED BY THE OPERATOR TO DISPLAY
  19. * THE STATUS OF THE SUBSYSTEMS SUPPORTED BY THE OPERATING
  20. * SYSTEM. THIS INFORMATION CAN BE DISPLAYED ON A PRINTER
  21. * LISTING OR THE *L* DISPLAY. THE STATUS OF A SUBSYSTEM
  22. * CAN BE CHANGED BY OPERATOR *L* DISPLAY COMMANDS.
  23. SPACE 4,15
  24. *** COMMAND FORMAT.
  25. *
  26. *
  27. * SUBSYST(LFN,OP) ORDER DEPENDENT PARAMETERS.
  28. * OR
  29. * SUBSYST(L=LFN,LO=OP) ORDER INDEPENDENT (KEYWORD = PARAMETER)
  30. *
  31. * WHERE
  32. *
  33. * OP = *L* FORMAT DATA FOR A LINE PRINTER.
  34. *
  35. * OP = *D* FORMAT DATA FOR THE *L* DISPLAY (DEFAULT).
  36. *
  37. * OP = *DL* OR *LD* FORMAT DATA FOR THE *L* DISPLAY AND FORMAT
  38. * IT FOR A LINE PRINTER WHEN *L.END* IS
  39. * ENTERED.
  40. *
  41. * LFN LIST OUTPUT FILE NAME (DEFAULT = OUTPUT).
  42. * THIS PARAMETER VALID ONLY WITH (LO=L).
  43. *
  44. * NOTES SPECIAL PRIVILEGES REQUIRED.
  45. * 1. USER MUST BE *SYOT* TO USE *L* DISPLAY (LO=D).
  46. * 2. USER MUST BE *SYOT* OR HAVE SYSTEM ORIGIN
  47. * PRIVILEGES TO GENERATE A LISTING (LO=L).
  48. SPACE 4,15
  49. *** DAYFILE MESSAGES.
  50. *
  51. * THESE MESSAGES ARE ISSUED TO THE JOB AND SYSTEM DAYFILES.
  52. *
  53. * *ARGUMENT ERROR.*
  54. * AN INCORRECT PARAMETER WAS ENTERED. (FATAL ERROR)
  55. *
  56. * *USER ACCESS NOT VALID.*
  57. * CALLING JOB WAS NOT SYSTEM ORIGIN. (FATAL ERROR)
  58. *
  59. * *SUBSYST UTILITY COMPLETE.*
  60. * INDICATES NORMAL COMPLETION OF PROGRAM.
  61. SPACE 4,10
  62. *** *L* DISPLAY MESSAGES.
  63. *
  64. * *COMMAND PROCESSED.*
  65. * INDICATES COMMAND IS VALID AND CHANGE HAS BEEN MADE.
  66. *
  67. * *CONTROL POINT NOT ALLOWED.*
  68. * THE SPECIFIED SUBSYSTEM DOES NOT ALLOW THE CONTROL
  69. * POINT FOR ITS EXECUTION TO BE CHANGED.
  70. *
  71. * *INCORRECT COMMAND.*
  72. * THE ENTERED COMMAND IS NOT ONE OF THE DEFINED
  73. * *SUBSYST* COMMANDS - (ENABLE, DISABLE, OUT, END).
  74. *
  75. * *INCORRECT COMMAND FORMAT.*
  76. * AN ILLEGAL SEPARATOR OR EXTRA PARAMETERS WERE
  77. * ENTERED FOR THE COMMAND.
  78. *
  79. * *INCORRECT CONTROL POINT.*
  80. * THE ENTERED CONTROL POINT NUMBER IS NOT VALID. IT
  81. * MUST BE AN OCTAL NUMBER LESS THAN THE NUMBER OF
  82. * CONTROL POINTS DEFINED IN THE SYSTEM.
  83. *
  84. * *SECURITY UNLOCK REQUIRED.*
  85. * IN A SECURED SYSTEM, SECURITY UNLOCK STATUS IS
  86. * REQUIRED TO ENABLE RDF.
  87. *
  88. * *UNKNOWN SUBSYSTEM.*
  89. * THE ENTERED SUBSYSTEM NAME IS NOT ONE DEFINED IN
  90. * *COMSSSD*.
  91. *
  92. * *UTILITY COMPLETE.*
  93. * INFORMATIVE MESSAGE ISSUED AFTER *END*.
  94. SPACE 4,25
  95. *** AVAILABLE *L* DISPLAY COMMANDS.
  96. *
  97. * L.END TERMINATES THE UTILITY. IF *OP=L* WAS
  98. * SPECIFIED, A LISTING WILL BE ROUTED TO
  99. * A PRINTER.
  100. *
  101. * L.OUT ROUTES A LISTING OF THE DISPLAY TO A
  102. * PRINTER.
  103. *
  104. * L.ENABLE,SUB. SETS STATUS OF SUBSYSTEM *SUB* TO ENABLED.
  105. * L.ENABLE,SUB,CP. ADDITIONALLY SETS THE CONTROL POINT WHERE
  106. * THE SUBSYSTEM MUST EXECUTE.
  107. *
  108. * L.DISABLE,SUB. SETS STATUS OF SUBSYSTEM *SUB* TO DISABLED
  109. * L.DISABLE,SUB,CP. ADDITONALLY SETS THE CONTROL POINT WHERE
  110. * THE SUBSYSTEM MUST EXECUTE.
  111. *
  112. * L.+ DISPLAY THE NEXT PAGE OF SUBSYSTEMS. WHEN
  113. * THE CURRENT PAGE IS THE LAST PAGE, THE
  114. * NEXT PAGE IS THE FIRST PAGE.
  115. *
  116. * L.- DISPLAY THE FIRST PAGE OF SUBSYSTEMS.
  117. SPACE 4,15
  118. *** OUTPUT FORMAT.
  119. *
  120. * SUBSYST - SUBSYSTEM STATUS. 84/05/16. 15.04.37.
  121. *
  122. * SUBSYSTEMS
  123. *
  124. * REQUIRED EJT
  125. * NAME CONTROL POINT ORDINAL STATUS
  126. *
  127. * IAF 1 10 ENABLED
  128. * RHF DISABLED
  129. *
  130. *
  131. * NOTE - THE FIRST TWO LINES ONLY APPEAR WHEN THE DATA IS
  132. * FORMATTED FOR A LISTING.
  133. SPACE 4,10
  134. *** DEFINITION COMMON DECKS.
  135. *
  136. *CALL COMCMAC
  137. *CALL COMCCMD
  138. *CALL COMCDCM
  139. *CALL COMSDSP
  140. *CALL COMSEVT
  141. *CALL COMSSFM
  142. *CALL COMSSSD
  143. *CALL COMSSSJ
  144. SPACE 4,10
  145. * MACROS.
  146. SUBSYST SPACE 4,10
  147. ** SUBSYST - GENERATE SUBSYSTEM TABLE.
  148. *
  149. * SUBSYST NAME,ID,PR,PP,AUTO,DEF,DCP,CP,PROC,ABT
  150. *
  151. * ENTRY *NAME* = THREE CHARACTER SUBSYSTEM NAME.
  152. * *ID* = SUBSYSTEM ID.
  153. * *CP* = *YES* IF CONTROL POINT ALLOWED ON *ENABLE*
  154. * AND *DISABLE*.
  155. *
  156. *T 42/ NAME (LEFT JUSTIFIED), 18/ FLAG
  157. *
  158. * FLAG = 1, IF CONTROL POINT ALLOWED ON *ENABLE/DISABLE*.
  159. * = 0, IF CONTROL POINT NOT ALLOWED.
  160.  
  161.  
  162. PURGMAC SUBSYST
  163.  
  164. SUBSYST MACRO NM,ID,PT,PP,AU,DF,DC,CP,PR,AB
  165. .SUB RMT
  166. .1 SET TSSN
  167. ORG .1+MXSI-ID
  168. LOC MXSI-ID
  169. VFD 42/3L_NM
  170. .A IFC EQ,$CP$YES$
  171. VFD 18/1
  172. .A ELSE
  173. VFD 18/0
  174. .A ENDIF
  175. .SUB RMT
  176. SUBSYST ENDM
  177. TITLE ASSEMBLY CONSTANTS.
  178. **** ASSEMBLY CONSTANTS.
  179.  
  180. CBUFL EQU 5 COMMAND BUFFER LENGTH
  181. HLIN EQU 5 NUMBER OF LINES IN HEADER
  182. INPC EQU 0 *L* DISPLAY INPUT COMPLETE STATUS
  183. LBIL EQU LCOM/2 *L* DISPLAY INPUT BUFFER LENGTH
  184. LBUFL EQU LDSY *L* DISPLAY OUTPUT BUFFER LENGTH
  185. LLIN EQU 22D NUMBER OF LINES ON *L* DISPLAY
  186. LDAT EQU LLIN-HLIN-3 NUMBER OF DATA LINES ON THE *L* DISPLAY
  187. MBUFL EQU 3 MESSAGE BUFFER LENGTH
  188. .NSS SET MXSI-LSSI MAXIMUM NUMBER OF SUBSYSTEMS SUPPORTED
  189. OBUFL EQU 101B OUTPUT BUFFER LENGTH
  190. XCDT EQU 9 X - COORDINATE FOR *L* DISPLAY
  191. YCDT EQU 2 Y - COORDINATE FOR *L* DISPLAY
  192.  
  193. ****
  194. TITLE TABLES AND BUFFER DEFINITIONS.
  195. ORG 111B
  196. SUB BSS 0
  197. SPACE 4,10
  198. * DAYFILE MESSAGES.
  199.  
  200. DASC DATA C* SUBSYST UTILITY COMPLETE.*
  201. ERAR DATA C* ARGUMENT ERROR.*
  202. ERIU DATA C* USER ACCESS NOT VALID.*
  203. SPACE 4,10
  204. * *L* DISPLAY MESSAGES.
  205.  
  206. MESA DATA 28CINCORRECT COMMAND.
  207. MESB DATA 28CUNKNOWN SUBSYSTEM.
  208. MESC DATA 28CINCORRECT CONTROL POINT.
  209. MESD DATA 28CINCORRECT COMMAND FORMAT.
  210. MESE DATA 28CCONTROL POINT NOT ALLOWED.
  211. MESF DATA 28CCOMMAND PROCESSED.
  212. MESG DATA 28CUTILITY COMPLETE.
  213. MESH DATA 28C
  214. MESI DATA 28CSECURITY UNLOCK REQUIRED.
  215. SPACE 4,10
  216. * FLAG DEFINITIONS.
  217.  
  218. LFLG CON 0 *L* DISPLAY FLAG
  219. OSSM CON 0 OPERATING SYSTEM SECURITY MODE
  220. PFLG CON 0 PRINTER OUTPUT FLAG
  221. SYOF CON 0 SYSTEM ORIGIN FLAG
  222. SPACE 4,10
  223. * *L* DISPLAY BUFFER FIRST WORD.
  224. *
  225. * T, 12/ N ,1/ S ,1/ F ,46/
  226. *
  227. * N SIZE OF DISPLAY BUFFER.
  228. * S CHARACTER SIZE.
  229. * F DATA FORMAT BIT.
  230.  
  231.  
  232. LDIW VFD 12/LBIL,48/0 INPUT BUFFER FIRST WORD
  233. LDSW VFD 12/LBUFL,48/0 OUTPUT BUFFER FIRST WORD
  234. ROLL SPACE 4,10
  235. * ROLLOUT PARAMETER BLOCK.
  236.  
  237. ROLL VFD 30/0,18/LINE,12/10
  238. ROTB SPACE 4,10
  239. * ROUTE PARAMETER BLOCK.
  240.  
  241. ROTB DATA 6LOUTPUT
  242. BSSZ DPBL-1
  243. SPACE 4,10
  244. * *SFM* PARAMETER BLOCK.
  245.  
  246.  
  247. SFMB VFD 12/RSSF,12/0,12/.NSS,6/0,18/WBUFA
  248. CON 0 END OF *SFM* PARAMETER BLOCK
  249. SPACE 4,5
  250. * SSJ= PARAMETER BLOCK.
  251.  
  252.  
  253. SSJ= BSS 0 SSJ= ENTRY POINT
  254. BSSZ SSJL SSJ= PARAMETER BLOCK
  255. FETS SPACE 4,10
  256. * FET DEFINITIONS.
  257.  
  258. O BSS 0 PRINTER OUTPUT FILE BUFFER
  259. OUTPUT FILEB OBUF,OBUFL,(FET=6)
  260. SPACE 4,10
  261. SUB$ EQU 1 ASSEMBLE *SUBSYST* MACRO CALLS
  262. *CALL COMSSSD
  263. SUBSYST TITLE MAIN PROGRAM.
  264. ** SUBSYST - MAIN PROGRAM.
  265. *
  266. * USES X - 1, 5.
  267. * A - 1.
  268. * B - 7.
  269. *
  270. * CALLS FDB, PKB, PRS, RSD.
  271. *
  272. * MACROS DSDINP, ENDRUN, MESSAGE, ROUTE, WRITER.
  273.  
  274.  
  275. SUBSYST BSS 0 ENTRY
  276. RJ PRS PRESET ROUTINE
  277. RJ RSD READ SUBSYSTEM DATA
  278. SA1 LFLG
  279. ZR X1,SUB1 IF ONLY PRINTER OUTPUT SELECTED
  280. SX5 B0+
  281. SX6 MESH BLANK MESSAGE
  282. RJ FDB FORMAT DISPLAY
  283. RJ PKB PROCESS KEYBOARD
  284. DSDINP LBFI,C DROP *L* DISPLAY
  285. EQ SUB2 COMPLETE
  286.  
  287. SUB1 SX5 O
  288. RJ FDB FORMAT LISTING
  289. WRITER O,R
  290. ROUTE ROTB,R
  291. SUB2 MESSAGE DASC,0,R * SUBSYST UTILITY COMPLETE.*
  292. ENDRUN
  293. TITLE SUBROUTINES.
  294. ERR SPACE 4,10
  295. ** ERR - ERROR PROCESSOR.
  296. *
  297. * ENTRY (X2) = ADDRESS OF ERROR MESSAGE.
  298. *
  299. * EXIT MESSAGE ISSUED IN SYSTEM AND USER DAYFILE.
  300. *
  301. * MACROS ABORT, MESSAGE.
  302.  
  303.  
  304. ERR BSS 0 ENTRY
  305. MESSAGE X2,0,R
  306. ABORT
  307. FDB SPACE 4,10
  308. ** FDB - FORMAT DISPLAY BUFFER.
  309. *
  310. * ENTRY (X5) = 0, IF FORMATTING FOR *L* DISPLAY.
  311. * .EQ. FET ADDRESS OF OUTPUT FILE IF FOR PRINTER.
  312. * (X6) = ADDRESS OF DISPLAY MESSAGE.
  313. * (HBUF) = FWA OF FORMATTED SUBSYSTEM DATA.
  314. *
  315. * USES X - 1, 2, 3, 4, 6, 7.
  316. * A - 4, 7.
  317. * B - 2, 3, 4, 6.
  318. *
  319. * CALLS FLB, WSB.
  320. *
  321. * MACROS DSDOUT.
  322.  
  323.  
  324. FDB SUBR ENTRY/EXIT
  325. RJ WSB WRITE SUBSYSTEM INFORMATION BUFFER
  326.  
  327. * SET UP PARAMETERS FOR *FLD*.
  328.  
  329. SB2 LBUF+1 FWA OF BUFFER TO RECEIVE CONVERTED DATA
  330. SB6 LBUF+LBUFL LWA+1 OF BUFFER TO RECEIVE CONVERTED DATA
  331. SX1 HBUF FWA OF UNCONVERTED DATA FOR PRINTER
  332. SX6 A0-1 LWA OF UNCONVERTED DATA
  333. NZ X5,FDB1 IF FORMATTING FOR PRINTER
  334. SA4 LDSW INITIALIZE *L* DISPLAY BUFFER
  335. SX1 HBUF1 FWA OF BUFFER FOR *L* DISPLAY
  336. BX7 X4
  337. SA7 B2-B1
  338. SB3 XCDT SET X-COORDINATE FOR *L* DISPLAY
  339. SB4 YCDT SET Y-COORDINATE FOR *L* DISPLAY
  340. FDB1 SX3 B1 *C* DISPLAY FORMAT
  341. BX2 X5
  342. RJ FLB FORMAT DATA FOR *L* DISPLAY
  343. NZ X5,FDBX IF FORMATTING FOR PRINTER
  344. DSDOUT LBUF DISPLAY *L* DISPLAY BUFFER
  345. EQ FDBX RETURN
  346. PKB SPACE 4,10
  347. ** PKB - PROCESS KEYBOARD.
  348. *
  349. * PROCESSES INPUT FROM OPERATOR UNTIL *L.END* IS ENTERED.
  350. *
  351. * USES X - ALL.
  352. * A - 1, 2, 3, 6, 7.
  353. * B - 2, 3, 7.
  354. *
  355. * CALLS DXB, FDB, POP, RSD, USB.
  356. *
  357. * MACROS DSDINP, ROLLOUT, ROUTE, SYSTEM, WRITER.
  358.  
  359.  
  360. PKB SUBR ENTRY/EXIT
  361. SA1 LDIW INITIALIZE THE INPUT BUFFER CONTROL WORD
  362. MX6 0 ENSURE AN END OF LINE IN COMMAND BUFFER
  363. SA6 LBFI+LBIL+1
  364. BX6 X1
  365. SA6 LBFI
  366. SB7 B0 CLEAR REFRESH REQUIRED
  367. PKB1 DSDINP LBFI REQUEST *L* DISPLAY INPUT
  368. SA2 LBFI CHECK FOR INPUT
  369. MX0 -12
  370. BX6 -X0*X2
  371. AX6 1 IGNORE COMPLETION BIT
  372. ZR X6,PKB3 IF INPUT
  373. ERRNZ INPC CODE DEPENDS ON VALUE
  374. ZR B7,PKB2 IF REFRESH IS NOT REQUIRED
  375. RJ RSD READ SUBSYSTEM DATA
  376. SA1 WSBE GET LAST ERROR MESSAGE
  377. SX6 X1+
  378. RJ FDB FORMAT DISPLAY BUFFER
  379. PKB2 ROLLOUT ROLL WAIT FOR INPUT
  380. SB7 B1 SET REFRESH REQUIRED
  381. EQ PKB1 INPUT COMMAND
  382.  
  383. PKB3 SX6 B0+ CLEAR STRING BUFFER
  384. SB2 80
  385. PKB4 SA6 USBB+B2
  386. SB2 B2-1
  387. PL B2,PKB4 IF MORE TO CLEAR
  388.  
  389. * DETERMINE COMMAND.
  390.  
  391. SB2 LBFI+1 UNPACK COMMAND
  392. RJ USB
  393. RJ POP GET FIRST PARAMETER
  394. ZR X6,PKB19 IF NO COMMAND VERB
  395. SB2 B0 INITIALIZE TABLE INDEX
  396. MX0 42
  397. PKB5 SA3 TLDC+B2
  398. ZR X3,PKB24 IF END OF TABLE
  399. BX2 X3-X6
  400. BX2 X0*X2
  401. SB2 B2+1 ADVANCE INDEX
  402. NZ X2,PKB5 IF NO MATCH
  403. SB3 X3+
  404. JP B3 PROCESS COMMAND
  405.  
  406. * PROCESS *ENABLE*.
  407.  
  408. PKB6 SX7 B0+ SET ENABLE STATUS
  409. EQ PKB8 CONTINUE
  410.  
  411. * PROCESS *DISABLE*.
  412.  
  413. PKB7 SX7 1 SET DISABLE STATUS
  414. PKB8 SA7 PKBB
  415. SX2 X1-1R,
  416. NZ X2,PKB21 IF SEPARATOR NOT *,*
  417.  
  418. * DETERMINE SUBSYSTEM.
  419.  
  420. RJ POP GET SUBSYSTEM NAME
  421. SB2 MXSI-LSSI-1 INITIALIZE TABLE INDEX
  422. MX0 18
  423. PKB9 NG B2,PKB22 IF END OF TABLE
  424. SA3 TSSN+B2
  425. BX4 X0*X3
  426. BX2 X4-X6
  427. SB2 B2-B1
  428. NZ X2,PKB9 IF NO MATCH
  429. SX7 MXSI-1 SAVE SUBSYSTEM ID
  430. SX2 B2
  431. IX7 X7-X2
  432. SA7 PKBA
  433. SX6 B0+
  434. SX4 X1-1R,
  435. ZR X4,PKB10 IF SEPARATOR IS A *,*
  436. SX4 X1-1R.
  437. ZR X4,PKB13 IF END OF COMMAND
  438. ZR X1,PKB13 IF END OF COMMAND
  439. EQ PKB21 PROCESS ERROR
  440.  
  441. * PROCESS CONTROL POINT.
  442.  
  443. PKB10 BX2 -X0*X3
  444. ZR X2,PKB25 IF CONTROL POINT NOT ALLOWED
  445. RJ POP GET CONTROL POINT NUMBER
  446. SX4 X1-1R.
  447. MX0 6
  448. ZR X4,PKB11 IF END OF COMMAND
  449. NZ X1,PKB21 IF ERROR
  450. PKB11 SX3 1RB APPEND *B* TO CONTROL POINT
  451. LX3 -12
  452. LX0 -12
  453. BX7 X0*X6
  454. NZ X7,PKB23 IF THREE DIGIT CONTROL POINT
  455. LX0 6
  456. BX7 X0*X6
  457. ZR X7,PKB12 IF ONE DIGIT CONTROL POINT
  458. LX3 -6
  459. PKB12 BX5 X6+X3
  460. SB7 B0 SET OCTAL CONVERSION
  461. RJ DXB CONVERT TO OCTAL
  462. NZ X4,PKB23 IF ERROR
  463. SA2 NCPT CHECK FOR VALID CONTROL POINT NUMBER
  464. IX3 X6-X2
  465. PL X3,PKB23 IF CONTROL POINT TOO LARGE
  466. SX6 X6+40B
  467. LX6 12 POSITION CONTROL POINT NUMBER
  468.  
  469. * CALL *SFM* TO CHANGE SUBSYSTEM STATUS.
  470.  
  471. PKB13 SA1 PKBA ADD SUBSYSTEM ID
  472. BX6 X1+X6
  473. SA1 PKBB ADD ENABLE/DISABLE FLAG
  474. LX1 18
  475. BX6 X1+X6
  476. SA6 PKBC SAVE *SFM* PARAMETER WORD
  477. SX1 RDSI
  478. BX1 X1-X6
  479. NZ X1,PKB13.1 IF NOT *ENABLE,RDF.*
  480. SA1 OSSM
  481. ZR X1,PKB13.1 IF SYSTEM NOT SECURED
  482. MX6 1
  483. SA6 PKBE
  484. SYSTEM RSB,R,PKBD DETERMINE SECURITY UNLOCK STATUS
  485. SA1 PKBE
  486. LX1 59-57
  487. PL X1,PKB26 IF NOT SECURITY UNLOCK
  488. PKB13.1 SYSTEM SFM,R,PKBC,SUSF*100B
  489. RJ RSD READ SUBSYSTEM DATA
  490. SX6 MESF *COMMAND PROCESSED.*
  491. EQ PKB20 WAIT FOR NEXT INPUT
  492.  
  493. * PROCESS *OUT*.
  494.  
  495. PKB14 SX3 X1-1R.
  496. ZR X3,PKB15 IF END OF COMMAND
  497. NZ X1,PKB21 IF ERROR
  498. PKB15 SX5 O FORMAT LISTING
  499. RJ FDB
  500. WRITER O,R
  501. SA1 ROTB CLEAR COMPLETE BIT
  502. MX0 42
  503. BX6 X0*X1
  504. SA6 A1
  505. ROUTE ROTB,R
  506. SX6 MESF *COMMAND PROCESSED.*
  507. EQ PKB20 WAIT FOR NEXT INPUT
  508.  
  509. * PROCESS *END*.
  510.  
  511. PKB16 SX3 X1-1R.
  512. ZR X3,PKB17 IF END OF COMMAND
  513. NZ X1,PKB21 IF ERROR
  514. PKB17 SA1 PFLG
  515. ZR X1,PKB18 IF NO PRINTER OUTPUT REQUESTED
  516. SX5 O
  517. RJ FDB FORMAT LISTING
  518. WRITER O,R
  519. SA1 ROTB CLEAR COMPLETE BIT
  520. MX0 42
  521. BX6 X0*X1
  522. SA6 A1
  523. ROUTE ROTB,R
  524. PKB18 SX5 B0+
  525. SX6 MESG *UTILITY COMPLETE.*
  526. RJ FDB
  527. EQ PKBX RETURN
  528.  
  529. * PROCESS PAGING COMMANDS.
  530.  
  531. PKB19 SB3 X1-1R+
  532. NG B3,PKB24 IF NEITHER *+* NOR *-*
  533. GT B3,B1,PKB24 IF NEITHER *+* NOR *-*
  534. SA2 WSBC ALTER PAGING CONTROL WORD
  535. LX1 59 FORM MASK TO USE OR IGNORE *NEXT* ORDINAL
  536. AX1 29
  537. UX2,B3 X2 SAVE MAXIMUM LINE COUNT
  538. BX2 X2*X1
  539. AX2 30
  540. PX6 X2,B3 RESTORE MAXIMUM LINE COUNT
  541. SA6 A2+
  542. SX6 MESH CLEAR MESSAGE LINE
  543. * EQ PKB20 WAIT FOR NEXT INPUT
  544.  
  545. * ROLLOUT UNTIL NEXT *L* DISPLAY INPUT.
  546.  
  547. PKB20 SX5 B0 FORMAT DISPLAY
  548. RJ FDB
  549. SB7 B0 CLEAR REFRESH REQUIRED
  550. EQ PKB1 CHECK FOR INPUT
  551.  
  552. PKB21 SX6 MESD *INCORRECT COMMAND FORMAT.*
  553. EQ PKB20 DISPLAY ERROR AND WAIT FOR INPUT
  554.  
  555. PKB22 SX6 MESB *UNKNOWN SUBSYSTEM.*
  556. EQ PKB20 DISPLAY ERROR AND WAIT FOR INPUT
  557.  
  558. PKB23 SX6 MESC *INCORRECT CONTROL POINT.*
  559. EQ PKB20 DISPLAY ERROR AND WAIT FOR INPUT
  560.  
  561. PKB24 SX6 MESA *INCORRECT COMMAND.*
  562. EQ PKB20 DISPLAY ERROR AND WAIT FOR INPUT
  563.  
  564. PKB25 SX6 MESE *CONTROL POINT NOT ALLOWED.*
  565. EQ PKB20 DISPLAY ERROR AND WAIT FOR INPUT
  566.  
  567. PKB26 SX6 MESI *SECURITY UNLOCK REQUIRED.*
  568. EQ PKB20 DISPLAY ERROR AND WAIT FOR INPUT
  569.  
  570.  
  571. PKBA CON 0 SUBSYSTEM ID
  572. PKBB CON 0 ENABLE/DISABLE FLAG
  573. PKBC CON 0 *SFM* PARAMETER WORD
  574. PKBD VFD 12/,12/1,18/SSTL,18/PKBE
  575. PKBE VFD 1/1,59/0 SECURITY UNLOCK STATUS
  576. NCPT VFD 1/1,59/0 NUMBER OF CONTROL POINTS
  577. TLDC SPACE 4,10
  578. ** TABLE OF *L* DISPLAY COMMANDS.
  579. *
  580. *T 42/ COMMAND, 18/ ADDRESS
  581.  
  582. TLDC BSS 0
  583. VFD 42/6LENABLE,18/PKB6
  584. VFD 42/7LDISABLE,18/PKB7
  585. VFD 42/3LOUT,18/PKB14
  586. VFD 42/3LEND,18/PKB16
  587. CON 0 END OF TABLE
  588. TSSN SPACE 4,10
  589. ** TABLE OF SUBSYSTEM NAMES.
  590. *
  591. *T 42/ NAME (LEFT JUSTIFIED), 18/ FLAG
  592. *
  593. * FLAG = 1, IF CONTROL POINT ALLOWED ON *ENABLE/DISABLE*.
  594. * = 0, IF CONTROL POINT NOT ALLOWED.
  595.  
  596.  
  597. TSSN BSS 0 TABLE OF SUBSYSTEM NAMES
  598. LIST D
  599. .SUB HERE
  600. LIST *
  601. ORG TSSN+MXSI-LSSI
  602. RSD SPACE 4,15
  603. ** RSD - RETURN SUBSYSTEM DATA.
  604. *
  605. * ENTRY (SFMB) = *SFM* PARAMETER BLOCK SET UP
  606. * FOR *RSSF* SUBFUNCTION.
  607. *
  608. * EXIT (HTIM) = THE TIME AT WHICH THE DATA WAS READ.
  609. * (WBUFA - WBUFA+.NSS-1) = SUBSYSTEM INFORMATION.
  610. *
  611. * MACROS CLOCK, DATE, SYSTEM.
  612.  
  613.  
  614. RSD SUBR ENTRY/EXIT
  615. SYSTEM SFM,R,SFMB,RSDF*100B RETURN SYSTEM DATA
  616. DATE HDAT
  617. CLOCK HTIM SET TIME IN BUFFER FOR PRINTER OUTPUT
  618. EQ RSDX RETURN
  619. WSB SPACE 4,15
  620. ** WSB - WRITE SUBSYSTEM INFORMATION BUFFER.
  621. *
  622. * ENTRY (X5) = PRINTER/*L* DISPLAY FLAG.
  623. * 0 = *L* DISPLAY FORMAT.
  624. * (X6) = ADDRESS OF DISPLAY MESSAGE.
  625. * (SFMB) = 24/, 12/NUMBER OF SUBSYSTEMS, 24/.
  626. * (WBUFA - WBUFA+.NSS-1) = SUBSYSTEM DATA FROM *SFM*.
  627. *
  628. * EXIT (A0) = LWA+1 OF DATA IN *WBUF*.
  629. * (WBUF - (A0)-1) = FORMATTED SUBSYSTEM DATA.
  630. *
  631. * USES X - 0, 1, 2, 4, 6.
  632. * A - 0, 1, 2, 4, 6.
  633. * B - 5, 6, 7.
  634. *
  635. * CALLS COD, SFN.
  636. *
  637. * MACROS MOVE.
  638.  
  639.  
  640. WSB SUBR ENTRY/EXIT
  641. SA4 WSBC GET *L* DISPLAY PAGING CONTROL WORD
  642. SA1 SFMB GET NUMBER OF WORDS RETURNED
  643. ZR X5,WSB1 IF *L* DISPLAY FORMAT
  644. SA4 A4+1 GET PRINTER PAGING CONTROL WORD
  645. WSB1 SA6 WSBE SAVE ERROR MESSAGE ADDRESS
  646. SA0 WBUF FWA TO RETURN REFORMATTED BUFFER
  647. MX0 -12
  648. LX1 11-35
  649. UX4,B7 X4 SET MAXIMUM NUMBER OF LINES - 1 TO FORMAT
  650. BX1 -X0*X1
  651. SB6 X4+ SUBSYSTEM DATA BUFFER INDEX
  652. SB5 X1+ NUMBER OF SUBSYSTEMS
  653. WSB2 SA2 TSSN+B6 GET SUBSYSTEM NAME
  654. MX0 18
  655. BX1 X0*X2
  656. ZR X1,WSB6 IF NO SUBSYSTEM NAME
  657. NG B7,WSB7 IF NO ROOM TO DISPLAY SUBSYSTEM DATA
  658. RJ SFN
  659. LX6 -12
  660. SA6 A0+
  661. SA0 A0+B1 INCREMENT RETURN BUFFER
  662. SA4 WBUFA+B6 GET REQUIRED CONTROL POINT
  663. SA2 WSBA PRESET CONTROL POINT TO BLANKS
  664. MX0 -6
  665. LX4 -12
  666. BX6 X2
  667. BX1 -X0*X4 CONTROL POINT
  668. ZR X1,WSB3 IF NO CONTROL POINT
  669. RJ COD
  670. WSB3 SA4 WBUFA+B6 GET EJTO
  671. SA2 WSBA PRESET EJTO TO BLANKS
  672. LX6 24
  673. SA6 A0 STORE REQUIRED CONTROL POINT
  674. SA0 A0+B1 INCREMENT RETURN BUFFER
  675. MX0 -12
  676. BX1 -X0*X4 EJT ORDINAL
  677. BX6 X2
  678. ZR X1,WSB4 IF NO EJT ORDINAL
  679. RJ COD
  680. WSB4 SA4 WBUFA+B6 GET ENABLE/DISABLE STATUS
  681. SA6 A0 STORE EJTO
  682. SA0 A0+B1
  683. SA1 WSBB PRESET STATUS TO *DISABLED*
  684. LX4 59-18
  685. SA2 A1+B1
  686. NG X4,WSB5 IF SUBSYSTEM DISABLED
  687. SA1 A2+B1 SET STATUS TO *ENABLED*
  688. SA2 A1+B1
  689. WSB5 BX6 X1
  690. SA6 A0
  691. SA0 A0+B1 INCREMENT RETURN BUFFER
  692. BX6 X2
  693. SA6 A0
  694. SA0 A0+B1 INCREMENT RETURN BUFFER
  695. SB7 B7-1 DECREMENT LINE LIMIT
  696. WSB6 SB6 B6+B1 INCREMENT BUFFER INDEX
  697. LT B6,B5,WSB2 IF MORE SUBSYSTEMS TO PROCESS
  698. SB6 B0 FIRST SUBSYSTEM FOR NEXT PAGE
  699. WSB7 NZ X5,WSBX IF FORMATTING FOR PRINTER
  700. SB4 B7+1 CLEAR UNUSED LINES AND *MORE* LINE
  701. WSB8 MOVE 5,WSBD,A0
  702. SB4 B4-1 DECREMENT LINE COUNT
  703. SA0 A0+5 INCREMENT RETURN BUFFER
  704. PL B4,WSB8 IF ALL DISPLAY LINES ARE NOT FILLED
  705. SA2 WSBC GET *L* DISPLAY PAGING CONTROL WORD
  706. SA1 =4AMORE
  707. SX6 B6
  708. MX0 42
  709. LX2 -30
  710. BX2 X0*X2
  711. BX6 X2+X6 SET *NEXT* ORDINAL
  712. LX6 30
  713. SA6 A2
  714. BX6 X1
  715. ZR B6,WSB9 IF LAST PAGE
  716. SA6 A0-5 SET *MORE* IN BUFFER
  717. WSB9 SA2 WSBE SET ERROR MESSAGE IN BUFFER
  718. MOVE MBUFL,X2,A0
  719. SA1 LBFI+1 SET COMMAND IN BUFFER
  720. SA0 A0+MBUFL
  721. WSB10 MX2 -12
  722. BX6 X1
  723. BX2 -X2*X1
  724. SA1 A1+B1
  725. SA6 A0
  726. SA0 A0+B1 LWA+1 OF BUFFER FOR *L* DISPLAY
  727. NZ X2,WSB10 IF NOT END OF COMMAND
  728. EQ WSBX RETURN
  729.  
  730.  
  731. WSBA CON 10H
  732. WSBB DATA C* DISABLED*
  733. DATA C* ENABLED*
  734. WSBC SPACE 4,10
  735. ** WSBC - PAGING CONTROL WORDS.
  736. *
  737. *T VFD 12/ LC ,18/ NEXT ORDINAL,30/ CURRENT ORDINAL
  738. *
  739. * LC = LINE COUNT - 1 + 2000B.
  740.  
  741.  
  742. WSBC VFD 12/1777B+LDAT,18/0,30/0 *L* DISPLAY PAGING WORD
  743. VFD 12/1777B+2000B,18/0,30/0 PRINTER PAGING WORD
  744.  
  745.  
  746. WSBD DATA 48C
  747. WSBE CON MESH TEMPORARY FOR ERROR MESSAGE ADDRESS
  748. SPACE 4,5
  749. * COMMON DECKS.
  750.  
  751. *CALL COMCCIO
  752. *CALL COMCCOD
  753. *CALL COMCCPM
  754. *CALL COMCDXB
  755. LIST X
  756. *CALL COMCFLD
  757. LIST *
  758. *CALL COMCLFM
  759. *CALL COMCMVE
  760. *CALL COMCPOP
  761. *CALL COMCSFN
  762. *CALL COMCSYS
  763. *CALL COMCUSB
  764. *CALL COMCWOD
  765. *CALL COMCWTC
  766. *CALL COMCWTO
  767. *CALL COMCWTW
  768. *CALL COMCZTB
  769. TITLE BUFFER AREA.
  770. USE BUFFERS
  771.  
  772. * BUFFER AREA.
  773.  
  774. HBUF BSS 0 HEADER FOR *SUBSYST* DISPLAY
  775.  
  776. DATA 40H SUBSYST - SUBSYSTEM STATUS.
  777. HDAT BSSZ 1
  778. HTIM BSSZ 1
  779. CON 0
  780. DATA C* *
  781. HBUF1 DATA C* SUBSYSTEMS*
  782. DATA C* *
  783. DATA C* REQUIRED EJT*
  784. DATA C* NAME CONTROL POINT ORDINAL STATUS*
  785. DATA C* *
  786.  
  787. WBUF BSS .NSS*5 WORKING BUFFER
  788. .1 MAX *,WBUF+LDAT*5+5+MBUFL+CBUFL
  789. WBUFA EQU .1 *SFM* RETURNS DATA HERE
  790. LBUF EQU WBUFA+.NSS *L* DISPLAY OUTPUT BUFFER
  791. LBFI EQU LBUF+LBUFL *L* DISPLAY INPUT BUFFER
  792. OBUF EQU LBFI+LBIL+2 OUTPUT FILE BUFFER
  793. PRS TITLE PRESET.
  794. ** PRS - PRESET ROUTINE.
  795. *
  796. * ENTRY COMMAND ARGUMENT LIST AT RA+2 (ARGR)
  797. * IN OPERATING SYSTEM FORMAT.
  798. *
  799. * EXIT (B1) = 1.
  800. * (PFLG) = 1, IF PRINT FILE REQUESTED.
  801. * (LFLG) = 1, IF *L* DISPLAY REQUESTED.
  802. *
  803. * ERROR TO *ERR*, IF ARGUMENT ERROR OR USER ACCESS NOT VALID.
  804. * (X2) = FWA ERROR MESSAGE.
  805.  
  806.  
  807. PRS9 SYSTEM RSB,R,PRSC SET NUMBER OF CONTROL POINTS
  808. SA1 NCPT
  809. MX0 -12
  810. LX1 -36
  811. BX6 -X0*X1
  812. SX6 X6+B1
  813. SA6 A1
  814. GETSSM OSSM GET SYSTEM SECURITY MODE
  815.  
  816. PRS SUBR ENTRY/EXIT
  817. SB1 1 B1 = 1.
  818. GETSPS SYOF CHECK FOR SYSTEM ORIGIN PRIVILEGES
  819. SA1 SYOF
  820. ZR X1,PRS1 IF SYSTEM ORIGIN PRIVILEGES
  821. SX2 ERIU *USER ACCESS NOT VALID.*
  822. EQ ERR ABORT
  823.  
  824. * PROCESS ARGUMENT LIST.
  825.  
  826. PRS1 SB2 CCDR UNPACK COMMAND
  827. RJ USB
  828. SA1 A6 ASSURE TERMINATOR CHARACTER
  829. SX6 1R.
  830. SA6 X1+B1
  831. SA2 PRSB SET SEPARATOR MASK
  832. SB2 60 SET MAXIMUM NON-DELIMITER DISPLAY CODE
  833. SB7 PRS8 SET EXIT FOR TERMINATOR CHARACTER
  834. RJ FNB FIND NON-BLANK CHARACTER
  835.  
  836. * SKIP PROGRAM NAME.
  837.  
  838. SB7 PRS6 SET EXIT FOR TERMINATOR CHARACTER
  839. PRS4 RJ FNB FIND NON-BLANK CHARACTER
  840. SB4 B5-B2
  841. LX4 X2,B5
  842. PL B4,PRS5 IF SEPARATOR CHARACTER
  843. PL X4,PRS4 IF NOT SEPARATOR CHARACTER
  844. PRS5 SB3 TARG FWA ARGUMENT EQUIVALENCE TABLE
  845. SB2 TARGL LENGTH ARGUMENT TABLE
  846. SB4 PRSA ADDRESS TO PLACE DATA
  847. RJ CPA CONVERT POSITIONAL ARGUMENTS
  848. NG B5,PRS8 IF ARGUMENT ERROR
  849. PL X1,PRS6 IF NO ARGUMENTS PROCESSED
  850. SX6 B5 SET LWA OF ARGUMENTS
  851. SA6 USBC
  852. SB6 PRSA FWA OF ARGUMENTS
  853. RJ ARM PROCESS ARGUMENTS
  854. NZ X1,PRS8 IF ERROR
  855. SA1 O SET FILE NAME IN ROUTE BLOCK
  856. MX0 42
  857. BX6 X0*X1
  858. SA6 ROTB
  859.  
  860. * DETERMINE LIST OPTIONS.
  861.  
  862. PRS6 SA1 LO GET LIST OPTION
  863. SA2 TLOP-1
  864. MX0 6
  865. SB4 A2+ SAVE ADDRESS OF ARGUMENT TABLE
  866. PRS7 BX3 X0*X1 PROCESS NEXT CHARACTER FROM LIST OPTION
  867. ZR X3,PRS9 IF ALL OPTIONS PROCESSED
  868. PRS7.1 SA2 A2+B1 SEARCH ARGUMENT TABLE
  869. ZR X2,PRS8 IF LIST OPTION NOT DEFINED IN TABLE
  870. BX4 X0*X2
  871. BX4 X4-X3
  872. NZ X4,PRS7.1 IF MATCH NOT FOUND
  873. SX6 B1 SET FLAG FOR THIS OPTION
  874. SA6 X2
  875. SX3 A2-TLOP
  876. LX1 6
  877. SA2 B4 INITIALIZE TABLE ADDRESS
  878. NZ X3,PRS7 IF NOT LO=D
  879. MX4 -12
  880. SA3 JOPR CHECK FOR SYSTEM ORIGIN
  881. LX3 0-24
  882. BX3 -X4*X3
  883. SX3 X3-SYOT
  884. ZR X3,PRS7 IF SYSTEM ORIGIN JOB
  885. SX2 ERIU *USER ACCESS NOT VALID.*
  886. EQ ERR ABORT
  887.  
  888. PRS8 SX2 ERAR *ARGUMENT ERROR.*
  889. EQ ERR ABORT
  890.  
  891. PRSA BSS 100
  892.  
  893. PRSB CON 40000000000033127777B SEPARATOR MASK
  894. PRSC VFD 12/,12/1,18/NCPL,18/NCPT
  895.  
  896.  
  897. ** ASSUMED VALUES FOR LIST OPTIONS.
  898.  
  899.  
  900. LO CON 0LD SELECTED LIST OPTION (DEFAULT = *D*)
  901. SPACE 4,10
  902. ** ARGUMENT EQUIVALENCE TABLE.
  903. *
  904. * THIS TABLE IS REQUIRED BY ARGUMENT PROCESSOR *COMCARM*.
  905.  
  906.  
  907. TARG BSS 0
  908. L ARG O,O,0,0 OUTPUT FILE NAME
  909. LO ARG LO,LO,0,0 LIST OPTIONS
  910. ARG END OF ARGUMENT TABLE
  911. TARGL EQU *-TARG-1 LENGTH OF ARGUMENT TABLE
  912. TLOP SPACE 4,15
  913. ** TLOP - TABLE OF LIST OPTIONS.
  914. *
  915. *T, 42/ OPTION,18/ ADDR
  916. *
  917. * (ADDR) WILL BE SET NON-ZERO BY PRS IF OPTION IS SELECTED.
  918.  
  919.  
  920. TLOP BSS 0
  921. VFD 42/0LD,18/LFLG SELECT *L* DISPLAY
  922. VFD 42/0LL,18/PFLG SELECT LINE PRINTER
  923. CON 0 END OF TABLE
  924. FNB SPACE 4,15
  925. ** FNB - FIND NON-BLANK CHARACTER.
  926. *
  927. * ENTRY (B6) = NEXT CHARACTER ADDRESS.
  928. * (B7) = EXIT ADDRESS, IF TERMINATOR ENCOUNTERED.
  929. *
  930. * EXIT (X1) = (B5) = NEXT NON-BLANK CHARACTER.
  931. * (B6) = NEXT CHARACTER ADDRESS (UPDATED).
  932. * EXIT IS MADE TO (B7), IF TERMINATOR ENCOUNTERED.
  933. *
  934. * USES X - 1, 4.
  935. * A - 1.
  936. * B - 5, 6.
  937.  
  938.  
  939. FNB SUBR ENTRY/EXIT
  940. FNB1 SA1 B6 GET NEXT CHARACTER
  941. SB6 B6+B1
  942. SX4 X1-1R
  943. ZR X4,FNB1 IF BLANK CHARACTER
  944. SB5 X1+
  945. SX4 X1-1R.
  946. ZR X4,FNB2 IF TERMINATOR CHARACTER
  947. SX4 X1-1R)
  948. NZ X4,FNBX IF NOT TERMINATOR CHARACTER, RETURN
  949. FNB2 JP B7 TERMINATOR CHARACTER
  950. TITLE PRESET COMMON DECKS.
  951. *CALL COMCARM
  952. *CALL COMCCPA
  953. SPACE 4,5
  954. SUBSYE EQU * END OF PROGRAM
  955. .RFL= MAX SUBSYE,OBUF+OBUFL
  956. RFL= EQU .RFL=
  957. SPACE 4,5
  958. END
cdc/nos2.source/opl871/subsyst.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator