Table of Contents

CONFIG

Table Of Contents

  • [00341] CALL1RM - CALL *1RM* TO PERFORM SPECIFIED FUNCTION.
  • [00357] GETLCW - GET LOW CORE WORDS.
  • [00377] KEYWORD - DEFINE COMMAND AND PARAMETER ENTRY POINTS.
  • [00400] MOVEDL - MOVE DISPLAY LINE.
  • [00424] KEYWORD DEFINITION FOR *CONFIG* COMMANDS.
  • [00435] RESERVED LOCATIONS AND FETS.
  • [00501] CONFIG - MAIN LOOP.
  • [00502] MAIN LOOP.
  • [00559] *1RM* COMMAND DEFINITIONS.
  • [00561] ABORT - ABORT THE CURRENT COMMAND SEQUENCE.
  • [00566] IGNORE - IGNORE CURRENT ERROR CONDITION.
  • [00571] NEXT - PROCEED TO NEXT UNIT.
  • [00576] RECHECK - RETRY PROCESS GIVING ERROR.
  • [00580] CLC - *CLEAR* COMMAND PROCESSOR.
  • [00581] CLC - *CLEAR* COMMAND PROCESSOR.
  • [00601] END - END COMMAND PROCESSOR.
  • [00602] END - *END* COMMAND PROCESSOR.
  • [00631] GOC - *GO* COMMAND PROCESSOR.
  • [00632] GOC - *GO* COMMAND PROCESSOR.
  • [00655] RRC - *RERUN* COMMAND PROCESSOR.
  • [00656] RRC - *RERUN* COMMAND PROCESSOR.
  • [00709] RSC - *RESET* COMMAND PROCESSOR.
  • [00710] RSC - *RESET* COMMAND PROCESSOR.
  • [00739] SSP - *SUSPEND* COMMAND PROCESSOR.
  • [00740] SSP - *SUSPEND* COMMAND PROCESSOR.
  • [00766] CHP - *CH* PARAMETER PROCESSOR.
  • [00767] CHP - *CH* PARAMETER PROCESSOR.
  • [00850] EQP - *EQ* PARAMETER PROCESSOR.
  • [00851] EQP - *EQ* PARAMETER PROCESSOR.
  • [00889] ULP - UNIT LIST PARAMETER PROCESSOR.
  • [00890] ULP - *UL=* PARAMETER PROCESSOR.
  • [00976] URP - *UR=* PARAMETER PROCESSOR.
  • [01021] UTILITY SUBROUTINES.
  • [01023] ASC - ASSEMBLE CHARACTERS.
  • [01094] BCL - BUILD CURRENT CONFIGURATION LIST.
  • [01136] BED - BUILD EQUIPMENT DISPLAY LINE.
  • [01265] CAE - CLEAR ALL EQUIPMENT IDLE STATUS.
  • [01280] CCH - CHECK FOR MATCHING CHANNELS.
  • [01319] CHA - CHECK CHANNEL AVAILABLE.
  • [01380] CLD - CHECK LEGALITY OF DEVICE.
  • [01415] CRM - CALL *1RM* TO PROCESSES FUNCTION.
  • [01479] EST - READ EST INTO *ESTB*.
  • [01510] FUM - FIND REPLACEMENT UNIT IN MST-S.
  • [01600] GLC - GET LOW CORE WORDS.
  • [01630] IDE - ISSUE INPUT DATA ERROR MESSAGE TO K-DISPLAY.
  • [01652] ISB - INPUT STRING BUFFER.
  • [01700] MPL - MOVE AND POSITION LINE.
  • [01733] RMT - READ MST FOR EQUIPMENT.
  • [01756] SEQ - SET EQUIPMENT PARAMETERS IN DISPLAY.
  • [01815] SPT - SEARCH PARAMETER TABLE.
  • [01844] SML - SEARCH EST FOR MASS STORAGE *LDAM* DEVICES.
  • [01881] S2L - SET 2 DIGITS IN DISPLAY LINE.
  • [01906] UKD - UPDATE K-DISPLAY INFORMATION.
  • [01977] VON - VALIDATE OCTAL NUMBERS.
  • [02036] ERROR MESSAGES.
  • [02054] TKEY - TABLE OF KEYWORDS.
  • [02071] DISPLAY BUFFER.
  • [02124] COMMON DECKS.
  • [02140] BUFFERS.
  • [02156] PRS - PRESET.

Source Code

CONFIG.txt
  1. IDENT CONFIG,FWA
  2. ABS
  3. SST
  4. ENTRY CONFIG
  5. ENTRY RFL=
  6. ENTRY SSJ=
  7. SYSCOM B1
  8. CONFIG TITLE CONFIG - CONFIGURE MASS STORAGE.
  9. *COMMENT CONFIG - CONFIGURE MASS STORAGE.
  10. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  11. CONFIG SPACE 4,10
  12. ***** CONFIG - CONFIGURE MASS STORAGE.
  13. *
  14. * A. J. BEEKMAN. 77/04/25.
  15. * W. E. GOEBEL 80/02/29.
  16. *
  17. * *CONFIG* PROVIDES THE CAPABILITY TO REPAIR OR RECONFIGURE
  18. * 844 OR 885 DEVICES ON-LINE.
  19. SPACE 4,10
  20. *** *CONFIG* ACCEPTS OPERATOR INPUT THROUGH A K-DISPLAY, VERIFIES
  21. * THE ENTERED PARAMETERS AND THEN USES THESE PARAMETERS WHILE
  22. * CALLING THE PP PROGRAM *1RM* TO RECONFIGURE OR SUSPEND
  23. * 844 OR 885 TYPE RMS DEVICES.
  24. SPACE 4,10
  25. *** COMMAND.
  26. *
  27. * CONFIG. *CONFIG* IS INITIATED BY *CMS* WHEN AN IDLED
  28. * DEVICE IS FOUND.
  29. SPACE 4,10
  30. *** K-DISPLAY INPUT DATA.
  31. *
  32. * DATA ITEMS ARE PARTITIONED WITH SEPARATOR CHARACTERS, I.E.,
  33. * ANY NON-ALPHANUMERIC CHARACTER EXCEPT *=*. EACH VALUE
  34. * MUST BE PRECEDED BY A PARAMETER AND SEPARATED FROM THE
  35. * PARAMETER BY AN *=*. ONLY ONE DATA ITEM (PARAMETER=
  36. * VALUE OR COMMAND) MAY BE ENTERED ON A LINE OF INPUT AND NO
  37. * LINE TERMINATOR IS NECESSARY.
  38. *
  39. * THE FOLLOWING IS A DESCRIPTION OF PARAMETERS.
  40. *
  41. * EQ=EEE EST ORDINAL *EEE* IS TO BE PROCESSED.
  42. * THIS PARAMETER IS ENTERED WHEN THE PROCESSING
  43. * OF EQUIPMENTS IS ORDER-DEPENDENT. THIS IS
  44. * NEEDED, FOR EXAMPLE, WHEN A UNIT MUST FIRST BE
  45. * FREED UP TO REPLACE A FAILING UNIT. IN THIS
  46. * CASE A UNIT IS DELETED FROM AN EQUIPMENT WHERE
  47. * IT IS NOT IN USE SO THAT IT CAN REPLACE A UNIT
  48. * WHICH IS FAILING.
  49. *
  50. * CH=C1,C2 CHANNEL(S) TO BE USED UNDER NEW DEVICE
  51. * DEFINITION. THIS PARAMETER IS USED WHEN THE
  52. * ENTIRE DEVICE IS TO BE REDEFINED TO AN ALTERNATE
  53. * CHANNEL STRING. IT CAN ALSO BE USED TO ADD OR
  54. * DELETE CHANNELS FROM AN EQUIPMENT DEFINITION.
  55. *
  56. * UL=U1,U2,... UN UNIT LIST FOR NEW CONFIGURATION. WHEN
  57. * A UNIT IS TO BE REPLACED, ADDED OR DELETED
  58. * THE ENTIRE UNIT CONFIGURATION MUST BE ENTERED
  59. * WITH THIS PARAMETER. IF A UNIT IS TO BE
  60. * ADDED OR DELETED THE EQUIPMENT MUST BE GLOBALLY
  61. * UNLOADED IF SHARED OR HAVE UNAVAILABLE STATUS
  62. * OTHERWISE.
  63. *
  64. * UR=UU UNIT *UU* IS TO BE RECABLED. THIS OPTION IS USED
  65. * WHEN A UNIT IS TO BE REPLACED BY A NEW UNIT WITH
  66. * THE SAME UNIT NUMBER. THIS IS DONE BY PHYSICALLY
  67. * DISCONNECTING THE OLD UNIT AND RECABLING IN THE
  68. * REPLACEMENT UNIT. MULTIPLE UNITS MAY BE
  69. * SPECIFIED FOR RECABLING.
  70. SPACE 4,10
  71. *** K-DISPLAY COMMANDS.
  72. *
  73. * GO. INITIATE PROCESSING OF RECONFIGURATION RUN USING
  74. * PARAMETERS ENTERED. THE K-DISPLAY PARAMETERS WILL BE
  75. * SET TO THE DEFAULT VALUES WHEN CONTROL IS RETURNED.
  76. *
  77. * SUSPEND. ALL REQUESTS TO CURRENT EQUIPMENT ARE SUSPENDED.
  78. * THIS IS DONE SO THAT THE DRIVE MAY BE REPAIRED
  79. * ON LINE. MULTIPLE EQUIPMENTS MAY BE SUSPENDED
  80. * CONCURRENTLY.
  81. *
  82. * CLEAR. CLEARS THE SUSPEND AND IDLE STATUS FOR CURRENT
  83. * EQUIPMENT. THIS IS ENTERED WHEN THE EQUIPMENT IS
  84. * TO BE RETURNED FOR NORMAL SYSTEM USE.
  85. *
  86. * END. ENDS *CONFIG* PROCESSING.
  87. *
  88. * RERUN. SET THE PARAMETERS TO THEIR DEFAULT VALUES AND UPDATE
  89. * THE LIST OF EQUIPMENTS TO BE RECONFIGURED.
  90. *
  91. * RESET. RESET THE PARAMETERS TO THEIR DEFAULT VALUES.
  92. *
  93. *
  94. * THE FOLLOWING COMMANDS ARE ENTERED IN RESPONSE TO AN
  95. * ERROR CONDITION DETECTED BY *1RM*.
  96. *
  97. * ABORT. THIS COMMAND IS ENTERED TO DISCONTINUE PROCESSING
  98. * OF THE CURRENT COMMAND IN PROGRESS.
  99. *
  100. * IGNORE. THE ERROR CONDITION DETECTED BY *1RM* IS TO
  101. * BE IGNORED. THIS COMMAND SHOULD BE USED WITH
  102. * DISCRETION. IT SHOULD BE USED ONLY WHEN THE
  103. * ERROR BEING POSTED IS WELL UNDERSTOOD AND
  104. * CAN LEGITIMATELY BE IGNORED.
  105. *
  106. * NEXT. THIS COMMAND IS ENTERED IN RESPONSE TO AN
  107. * 885 SERVO TIMING CHECK WHEN THE TIMING DATA
  108. * IS IN THE REQUIRED RANGE. ENTRY OF THIS
  109. * COMMAND WILL CAUSE PROCESSING TO CONTINUE
  110. * WITH EITHER THE NEXT UNIT OR THE NEXT STEP
  111. * OF PROCESSING.
  112. *
  113. * RECHECK. THIS COMMAND IS ENTERED TO RETRY A PROCESS
  114. * WHICH PREVIOUSLY GAVE AN ERROR. IF THE ERROR
  115. * PERSISTS THE MESSAGE WILL BE POSTED AGAIN
  116. * WITH ANOTHER OPPORTUNITY FOR OPERATOR ACTION.
  117. SPACE 4,10
  118. *** OPERATIONAL CONSIDERATIONS.
  119. *
  120. * WHEN REPLACING A FAILING UNIT WITH A NEW UNIT THE
  121. * NEW UNIT MUST NOT BE DEFINED IN THE EST. IF THE
  122. * REPLACEMENT UNIT IS DEFINED IN THE EST IT MUST
  123. * FIRST BE DELETED FROM THE EQUIPMENT IN WHICH IT IS
  124. * DEFINED.
  125. * WHEN ADDING OR DELETING A UNIT FROM AN EQUIPMENT
  126. * THE EQUIPMENT MUST BE UNLOADED.
  127. *
  128. *
  129. * WHEN RUNNING IN A MMF ENVIRONMENT CERTAIN PROBLEMS ARISE.
  130. * THEY ARE AS FOLLOWS -
  131. *
  132. * 1) WHEN A UNIT IS INTRODUCED INTO AN EQUIPMENT
  133. * *CONFIG* WILL CHECK IF THE REPLACEMENT UNIT IS NOT IN
  134. * USE IN THE MACHINE INITIATING THE RECONFIGURATION, BUT IT
  135. * CANNOT CHECK IF IT IS IN USE BY THE OTHER MACHINES. THE
  136. * DESIGN OF THIS PROGRAM DOES NOT SOLVE THIS PROBLEM AND IT
  137. * IS LEFT TO THE OPERATORS TO ENSURE THAT THE REPLACEMENT
  138. * UNIT IS TRULY FREE IN THE MMF COMPLEX.
  139. *
  140. * 2) WHEN REPLACING A UNIT WITH A NEW UNIT, *CONFIG*
  141. * WILL CHECK FOR ALL MACHINES ACCESSING THE DEVICE TO COMPLY
  142. * WITH THE RECONFIGURATION. HOWEVER, IF THE MACHINE DOES NOT
  143. * HAVE THE DEVICE LOADED THERE IS NO WAY TO CHECK FOR ITS
  144. * COMPLIANCE. IN THIS CASE THE RECONFIGURATION WILL PROCEED
  145. * ON THE MACHINES WITH THE DEVICE LOADED AND THE OTHER
  146. * MACHINES WILL NOT BE ABLE TO USE THIS DEVICE.
  147. *
  148. * 3) THE ADDITION AND DELETION OF A UNIT IS INTENDED
  149. * FOR LOCAL MACHINE USE. WHEN AN ADD OR DELETE IS COMPLETED
  150. * ON ONE MACHINE, THE REDEFINITION REQUESTED BIT WILL BE
  151. * CLEARED FOR THAT EQUIPMENT. THUS, NO OTHER MACHINE WILL
  152. * RECOGNIZE THE REQUEST FOR RECONFIGURATION ON THIS EQUIPMENT.
  153. * IF MORE THAN ONE MACHINE IN THE COMPLEX WISHES TO ADD OR
  154. * DELETE UNITS FROM THE SAME SHARED EQUIPMENT, *IDLE,EQXXX.*
  155. * WILL HAVE TO BE ENTERED FROM EACH MACHINE.
  156. SPACE 4,10
  157. *** ROUTINES CALLED.
  158. *
  159. * *1RM*, *CMS*.
  160. SPACE 4,10
  161. *** DAYFILE MESSAGES.
  162. *
  163. *
  164. * * INCORRECT COMMAND.* = INCORRECT ARGUMENTS WERE ENTERED
  165. * ON THE *CONFIG* COMMAND.
  166. *
  167. * * USER ACCESS NOT VALID.* = *CONFIG* WAS CALLED FROM A NON-
  168. * SYSTEM ORIGIN JOB OR WITHOUT MASS STORAGE SUBSYSTEM ID.
  169. *
  170. * * CONFIG UTILITY COMPLETE.* = ALL IDLED EQUIPMENTS HAVE
  171. * BEEN PROCESSED.
  172. SPACE 4,10
  173. *** OPERATOR MESSAGES.
  174. *
  175. * IF ONE OF THE ERRORS BELOW IS ENCOUNTERED, THE OPERATOR WILL
  176. * BE ABLE TO CORRECT THE ERROR VIA THE K-DISPLAY. ALL
  177. * PARAMETERS OR COMMANDS AFTER THE ONE IN ERROR WILL BE
  178. * IGNORED.
  179. *
  180. *
  181. * **** DEVICE NOT FIRST IN CHAIN.
  182. * AN EQUIPMENT OTHER THAN THE FIRST EQUIPMENT IN A
  183. * LINKED DEVICE WAS ENTERED TO BE RECONFIGURED. THIS
  184. * IS NOT ALLOWED IN ORDER TO PREVENT DESTROYING THE
  185. * INTEGRITY OF A LINKED DEVICE RECONFIGURATION.
  186. *
  187. * **** EQUIPMENT STATUS INCORRECT.
  188. * THE EQUIPMENT BEING REDEFINED IS NOT UNLOADED AND
  189. * AS SUCH THE NUMBER OF UNITS CANNOT BE CHANGED.
  190. *
  191. * **** ERROR IN CHANNEL NUMBER.
  192. * MAY INDICATE -
  193. * 1) IF .LE. 10 PP-S, NOT WITHIN RANGE OF 0-13B.
  194. * 2) IF .GT. 10 PP-S, NOT WITHIN RANGES OF 0 - 13B
  195. * OR 20B-33B.
  196. * 3) 1 (OR MORE) OF CHANNELS SPECIFIED IS DOWN.
  197. *
  198. * **** ERROR IN EST ORDINAL.
  199. * MAY INDICATE -
  200. * 1) EQUIPMENT NOT MASS STORAGE.
  201. * 2) EQUIPMENT IS NOT *844* OR *885*.
  202. *
  203. * **** ERROR IN UNIT LIST.
  204. * MAY INDICATE -
  205. * 1) A UNIT NUMBER WAS DUPLICATED IN THE UNIT LIST.
  206. * 2) MORE THAN 3 UNITS WERE SPECIFIED FOR AN *885*.
  207. *
  208. * **** INCORRECT ENTRY.
  209. * 1) A KEYWORD WAS NOT FOUND.
  210. * 2) TOO MANY DIGITS WERE ENTERED AS A PARAMETER.
  211. * 3) A NON-DIGIT CHARACTER WAS FOUND IN A
  212. * PARAMETER.
  213. * 4) A CHARACTER WAS FOUND AFTER THE POST RADIX.
  214. * 5) AN 8 OR 9 WAS FOUND WITH A *B* POST RADIX.
  215. *
  216. * **** INCORRECT SEPARATOR.
  217. * A *=* SEPARATOR WAS FOUND FOLLOWING A PARAMETER
  218. * VALUE OR COMMAND IN THE INPUT STRING.
  219. *
  220. * **** INTRODUCED UNIT IN USE.
  221. * MAY INDICATE -
  222. * A UNIT BEING INTRODUCED INTO AN EQUIPMENT IS
  223. * DEFINED ON ANOTHER EQUIPMENT.
  224. *
  225. *
  226. * THE FOLLOWING COMMANDS ARE POSTED ON THE K-DISPLAY BY
  227. * *1RM*. WHEN *1RM* DETECTS A CONDITION WHICH MAY BE
  228. * RESPONDED TO BY THE OPERATOR, A MESSAGE IS POSTED AND
  229. * THE LEGAL COMMANDS ARE POSTED ON THE K-DISPLAY. THE
  230. * FOLLOWING LIST OF ERROR MESSAGES LISTS THOSE LEGAL
  231. * COMMANDS AND INDICATES IF AN OPERATOR RESPONSE IS
  232. * REQUIRED OR OPTIONAL.
  233. *
  234. *
  235. * UNIT XX, CHYY WRITE/READ VERIFY ERROR.
  236. * PART OF THE VALIDATION PROCEDURE WHEN RETURNING
  237. * AN EQUIPMENT FOR SYSTEM USE (CLEAR COMMAND) IS
  238. * TO WRITE A SECTOR OF DATA TO THE DEVICE, READ IT
  239. * BACK AND VERIFY THE DATA. WHEN THIS VERIFICATION
  240. * FAILS THE ABOVE MESSAGE APPEARS.
  241. * COMMANDS - REQUIRED.
  242. * ABORT, IGNORE, RECHECK.
  243. *
  244. *
  245. * ERROR IN PERFORMING SERVO CHECK ON UNIT XX.
  246. * THE SERVO ADJUSTMENT PROCEDURE HAS ENCOUNTERED
  247. * A DISK ERROR CONDITION.
  248. * COMMANDS - REQUIRED.
  249. * ABORT, IGNORE, RECHECK.
  250. *
  251. *
  252. * UNIT XX SERVO TIMING= XXX. ACCEPTABLE RANGE IS 325 TO 345.
  253. * WHEN RECONFIGURING AN 885 HDA A SERVO ADJUSTMENT
  254. * PROCEDURE IS EXECUTED. THIS PROCEDURE MEASURES
  255. * SERVO TIMING CHARACTERISTICS WHICH MUST BE IN THE
  256. * SPECIFIED RANGE. A DRIVE ADJUSTMENT MUST BE MADE
  257. * BY A CE UNTIL THE TIMING IS IN THE SPECIFIED
  258. * RANGE.
  259. * COMMANDS - REQUIRED.
  260. * ABORT, RECHECK.
  261. * NEXT. ONLY IF TIMING IS IN RANGE.
  262. * IGNORE. ONLY IF TIMING IS NOT IN RANGE.
  263. *
  264. *
  265. * ERROR ON LINK DEVICE.
  266. * WHEN A DEVICE IS SHARED BETWEEN MAINFRAMES THE
  267. * LINK DEVICE IS READ TO SYNCHRONIZE PROCESSING
  268. * BETWEEN MACHINES. WHEN AN ERROR OCCURS IN
  269. * READING THE LINK DEVICE THIS ERROR MESSAGE
  270. * IS ISSUED.
  271. * COMMANDS - REQUIRED.
  272. * ABORT, IGNORE.
  273. *
  274. *
  275. * SPIN DOWN UNIT XX.
  276. * THIS IS A DIRECTIVE TO THE OPERATOR OR CE TO
  277. * SPIN DOWN THE SPECIFIED UNIT IN PREPARATION
  278. * FOR MOVING THE PACK OR HDA.
  279. * COMMAND - OPTIONAL.
  280. * ABORT, IGNORE.
  281. *
  282. *
  283. * MOVE PACK FROM UNIT XX TO UNIT YY AND SPIN UP.
  284. * THIS DIRECTIVE IS ISSUED TO THE OPERATOR FOR
  285. * EACH UNIT TO BE MOVED DURING A RECONFIGURATION.
  286. * UNIT XX HAS PREVIOUSLY BEEN DIRECTED TO BE
  287. * SPUN DOWN AND ITS PACK OR HDA IS NOW TO BE
  288. * MOVED TO UNIT YY.
  289. * COMMANDS - OPTIONAL.
  290. * ABORT, IGNORE.
  291. *
  292. *
  293. * UNIT XX, CHYY LABEL READ ERROR.
  294. * IN VERIFYING THAT THE CORRECT LABEL IS PRESENT
  295. * ON UNIT XX A DISK ERROR OCCURRED WHICH PREVENTED
  296. * THE LABEL FROM BEING READ SUCCESSFULLY.
  297. * THE CHANNEL IS SPECIFIED IN THE MESSAGE AND
  298. * MAY BE HELPFUL IF THE VERIFY ERROR OCCURS
  299. * ONLY FROM A SINGLE CHANNEL IN A DUAL ACCESS
  300. * CONFIGURATION.
  301. * COMMANDS - REQUIRED.
  302. * ABORT, IGNORE, RECHECK.
  303. *
  304. *
  305. * UNIT XX, CHYY LABEL VERIFICATION ERROR.
  306. * THE LABEL SECTOR WAS READ BUT THE DATA IN THE
  307. * LABEL SECTOR IS NOT CORRECT.
  308. * COMMANDS - REQUIRED.
  309. * ABORT, IGNORE, RECHECK.
  310. *
  311. *
  312. * WAITING FOR MACHINE ID=XX.
  313. * A SHARED DEVICE IS BEING PROCESSED AND IT HAS
  314. * BEEN DETECTED THAT MACHINE IDXX IS NOT AT THE
  315. * SAME STAGE OF PROCESSING AS THIS MACHINE.
  316. * COMMANDS - REQUIRED.
  317. * ABORT, IGNORE.
  318. SPACE 4,10
  319. **** ASSEMBLY CONSTANTS.
  320.  
  321.  
  322. OBUFL EQU 1001B OUTPUT BUFFER LENGTH
  323. KCML EQU 12 COMMAND LINES IN K-DISPLAY
  324. KEQL EQU 7 MAX NUMBER OF IDLED EQUIPMENTS DISPLAYED
  325. KLNL EQU 7 K-DISPLAY LINE LENGTH INCLUDING HEADER
  326. NSCI EQU 80 NUMBER OF CHARACTERS TO SCAN ON INPUT
  327.  
  328.  
  329. ****
  330. SPACE 4,10
  331. *CALL COMCMAC
  332. *CALL COMCDCM
  333. *CALL COMCDCP
  334. *CALL COMSSSD
  335. *CALL COMSSSJ
  336. LIST G,X
  337. *CALL COMS1RM
  338. LIST *
  339. MACROS TITLE MACROS.
  340. CALL1RM SPACE 4,10
  341. ** CALL1RM - CALL *1RM* TO PERFORM SPECIFIED FUNCTION.
  342. *
  343. * CALL1RM F
  344. * F = FUNCTION CODE AS DEFINED IN *COMS1RM*.
  345. *
  346. * USES X - 6.
  347. *
  348. * CALLS CRM.
  349.  
  350.  
  351. CALL1RM MACRO F
  352. MACREF CALL1RM
  353. SX6 F*2+1
  354. RJ CRM
  355. CALL1RM ENDM
  356. GETLCW SPACE 4,10
  357. ** GETLCW - GET LOW CORE WORDS.
  358. *
  359. * GETLCW WC,LC,AD
  360. * WC = WORD COUNT OF LOW CORE WORDS TO READ.
  361. * LC = ADDRESS OF LOW CORE WORDS.
  362. * AD = ADDRESS TO STORE LOW CORE WORDS.
  363. *
  364. * USES X - 1, 2, 3.
  365. *
  366. * CALLS GLC.
  367.  
  368.  
  369. GETLCW MACRO WC,FR,AD
  370. MACREF GETLCW
  371. R= X1,WC
  372. R= X2,FR
  373. R= X3,AD
  374. RJ GLC
  375. GETLCW ENDM
  376. KEYWORD SPACE 4,10
  377. ** KEYWORD - DEFINE COMMAND AND PARAMETER ENTRY POINTS.
  378. *
  379. * KEYWORD E
  380. * E = KEYBOARD KEYWORD SYNTAX.
  381. * AN *=* IS APPENDED TO THE KEYWORD OF AN EQUIVALENCED
  382. * PARAMETER. THIS MACRO DEFINES BOTH COMMAND AND
  383. * PARAMETER KEYWORDS.
  384.  
  385.  
  386. KEYWORD MACRO KEYWRD,PR
  387. MACREF KEYWORD
  388. KYMX SET KYMX+1
  389. IFC NE,*PR*0*,1
  390. PR SUBR
  391. KEY RMT
  392. A MICRO 1,,=KEYWRD=
  393. ORG TKEY+."A"
  394. VFD 42/0L_KEYWRD,18/PR
  395. KEY RMT
  396. KEYWORD ENDM
  397.  
  398. KYMX SET 0 INITIALIZE KEYWORD COUNT
  399. MOVEDL SPACE 4,15
  400. ** MOVEDL - MOVE DISPLAY LINE.
  401. *
  402. * *MOVEDL* IS USED TO MOVE A DISPLAY LINE TO A K-DISPLAY
  403. * BUFFER WHICH HAS THE X,Y COORDINATES IN THE FIRST 24 BITS
  404. * OF EACH LINE.
  405. *
  406. * MOVEDL COUNT,FROM,TO
  407. *
  408. * COUNT = WORD COUNT OF BLOCK TO BE MOVED.
  409. * FROM = ADDRESS OF FIRST WORD OF SOURCE.
  410. * TO = ADDRESS OF FIRST WORD OF DESTINATION.
  411. *
  412. * USES X - 1, 2, 3.
  413. *
  414. * CALLS MPL.
  415.  
  416.  
  417. MOVEDL MACRO COUNT,FROM,TO
  418. MACREF MOVEDL
  419. R= X1,COUNT
  420. R= X2,FROM
  421. R= X3,TO
  422. RJ MPL
  423. MOVEDL ENDM
  424. TITLE KEYWORD DEFINITION FOR *CONFIG* COMMANDS.
  425. CDEF CLEAR,(CLEAR IDLE AND SUSPEND ON CURRENT EQUIPMENT.)
  426. CDEF END,(CLEAR ALL DEVICE IDLES AND END *CONFIG*.)
  427. CDEF GO,(INITIATE PROCESSING OF ENTERED CONFIGURATION.)
  428. CDEF RERUN,(RESTART *CONFIG* UTILITY PROCESSING.)
  429. CDEF RESET,(RESET CURRENT EQUIPMENT TO DEFAULT PARAMETERS.)
  430. CDEF SUSPEND,(SUSPEND SYSTEM OPERATION ON CURRENT EQUIPMENT.)
  431. CDEF (CH=C1,C2),(C1 AND OPTIONALLY C2 ARE NEW ACCESS CHANNELS.)
  432. CDEF (EQ=EEE),(SET EST ORDINAL EEE TO BE PROCESSED.)
  433. CDEF (UL=U1,U2,...),(SET UNIT LIST AS SPECIFIED.)
  434. CDEF (UR=UU),(UNIT UU IS TO BE RECABLED WITH A NEW DRIVE.)
  435. TITLE RESERVED LOCATIONS AND FETS.
  436. ORG 102B
  437.  
  438. * RESERVED LOCATIONS.
  439.  
  440.  
  441. FWA BSS 0
  442. ESTA CON 0 EST ADDRESS
  443. LMSO CON 0 LAST MASS STORAGE EST ORDINAL + 1
  444. MMFF CON 0 MULTI-MAINFRAME FLAG
  445. NPPU CON 0 NUMBER OF PPU-S IN SYSTEM
  446. SLMP CON 0 STRING BUFFER LIMIT POINTER
  447. SPTR CON 0 STRING BUFFER POINTER
  448. TEMP CON 0 TEMPORARY
  449. SPACE 4,10
  450. * *1RM* CALL BLOCK.
  451.  
  452.  
  453. B1RM BSS 0 *1RM* CALL BLOCK
  454.  
  455. LOC 0
  456.  
  457. * WHILE *1RM* IS ACTIVE K-DISPLAY INPUT IS INTERPRETED BY
  458. * *CONFIG* AND THE COMMAND CODE PASSED TO *1RM*. THE
  459. * COMMANDS WHICH ARE LEGAL FOR *1RM* TO ACCEPT ARE SET IN
  460. * THE CALL BLOCK BY *1RM* IN THE FORM OF A BIT MAP. THIS
  461. * BIT MAP IS ALSO USED TO GENERATE A DESCRIPTION OF LEGAL
  462. * COMMANDS IN THE DISPLAY.
  463.  
  464. RFNB VFD 48/0
  465. VFD 11/0 *1RM* FUNCTION CODE
  466. VFD 1/0 FUNCTION IN PROGRESS BIT
  467.  
  468. TPAR BSS 0 TABLE OF LEGAL PARAMETERS
  469. POS .CLEAR
  470. VFD 1/1
  471. POS .END
  472. VFD 1/1
  473. POS .GO
  474. VFD 1/1
  475. POS .RERUN
  476. VFD 1/1
  477. POS .RESET
  478. VFD 1/1
  479. POS .SUSPEND
  480. VFD 1/1
  481. POS .CH
  482. VFD 1/1
  483. POS .EQ
  484. VFD 1/1
  485. POS .UL
  486. VFD 1/1
  487. POS .UR
  488. VFD 1/1
  489. TCOM CON 0 COMMANDS TO PASS TO *1RM*
  490. CUEQ CON 0 CURRENT EQUIPMENT
  491. URCD CON 0 UNITS TO RECONFIGURE OR RECABLE
  492. ESTD CON 0 NEW EST ENTRY FOR CURRENT EQUIPMENT
  493. MSTD BSS MSTL NEW MST FOR CURRENT EQUIPMENT
  494. LOC *O
  495. SPACE 4,10
  496. * FETS.
  497.  
  498.  
  499. O BSS 0 OUTPUT FILE
  500. OUTPUT FILEB OBUF,OBUFL,(FET=7)
  501. TITLE CONFIG - MAIN LOOP.
  502. ** CONFIG - MAIN LOOP.
  503.  
  504.  
  505. CONFIG SB1 1
  506. RJ PRS PRESET
  507. RJ BCL OUTPUT INITIAL CONFIGURATION
  508.  
  509. * INITIATE K-DISPLAY.
  510.  
  511. SA1 MMFF
  512. ZR X1,CON1 IF NOT MMF MODE
  513. CALL1RM RCDF CLEAR DAT INTERLOCK
  514. CON1 RJ RRC SET VALUES ON K-DISPLAY
  515. MX6 -5
  516. SA6 TEMP
  517. CONSOLE KL
  518. CON2 RJ UKD UPDATE K-DISPLAY
  519. RECALL
  520. SA1 B1RM+CUEQ CHECK FOR EQUIPMENT PRESENT
  521. NZ X1,CON3 IF EQUIPMENT PRESENT
  522. SA1 TEMP
  523. ZR X1,CON1 IF TIME TO CHECK FOR EQUIPMENT
  524. SX6 X1+B1
  525. SA6 A1
  526.  
  527. * CHECK FOR INPUT.
  528.  
  529. CON3 SA1 KBUF
  530. ZR X1,CON2 IF NO INPUT
  531. RJ ISB INPUT STRING BUFFER
  532. SX7 B0 ASSEMBLE KEYWORD
  533. RJ ASC
  534. ZR X4,CON3 IF NO DATA ASSEMBLED
  535. SB4 1R=
  536. NE B4,B5,CON4 IF NOT *=* SEPARATOR
  537. SX1 6
  538. IX1 X1*X4
  539. SX5 B5
  540. SB4 X1-54
  541. AX5 B4
  542. BX6 X6+X5
  543. CON4 RJ SPT
  544. NZ X5,CON5 IF PARAMETER NOT FOUND
  545. SA1 CONA SIMULATE RETURN JUMP
  546. SB4 X3
  547. BX6 X1
  548. SA6 B4
  549. JP B4+1 JUMP TO PROCESSOR
  550.  
  551. * RETURN FROM PARAMETER PROCESSING.
  552.  
  553. CON5 ZR X5,CON3 IF NO ERROR
  554. RJ IDE PROCESSES ERROR
  555. EQ CON3 LOOP FOR MORE INPUT
  556.  
  557.  
  558. CONA EQ CON5 SIMULATED RETURN JUMP TO PROCESSOR
  559. TITLE *1RM* COMMAND DEFINITIONS.
  560. ABORT SPACE 4,10
  561. ** ABORT - ABORT THE CURRENT COMMAND SEQUENCE.
  562.  
  563.  
  564. KEYWORD ABORT,0
  565. IGNORE SPACE 4,10
  566. ** IGNORE - IGNORE CURRENT ERROR CONDITION.
  567.  
  568.  
  569. KEYWORD IGNORE,0
  570. NEXT SPACE 4,10
  571. ** NEXT - PROCEED TO NEXT UNIT.
  572.  
  573.  
  574. KEYWORD NEXT,0
  575. RECHECK SPACE 4,10
  576. ** RECHECK - RETRY PROCESS GIVING ERROR.
  577.  
  578.  
  579. KEYWORD RECHECK,0
  580. TITLE CLC - *CLEAR* COMMAND PROCESSOR.
  581. ** CLC - *CLEAR* COMMAND PROCESSOR.
  582. *
  583. * ENTRY (CUEQ) = CURRENT EQUIPMENT TO RECONFIGURE.
  584. *
  585. * EXIT REDEFINITION REQUEST CLEARED FOR CURRENT EQUIPMENT.
  586. *
  587. * USES A - 1, 6.
  588. * X - 1, 5, 6.
  589. *
  590. * MACRO CALL1RM.
  591.  
  592.  
  593. KEYWORD CLEAR,CLP
  594. SA1 B1RM+CUEQ
  595. ZR X1,CLPX IF NO EQUIPMENT
  596. RJ FUM CHECK FOR UNIT IN USE
  597. NZ X5,CLPX IF ERROR DETECTED
  598. CALL1RM RCLF
  599. RJ RRC SET NEW EQUIPMENT
  600. EQ CLPX RETURN
  601. TITLE END - END COMMAND PROCESSOR.
  602. ** END - *END* COMMAND PROCESSOR.
  603. *
  604. * COMPLETE RECONFIGURATION RUN.
  605. *
  606. * USES X - 1, 5.
  607. * A - 1.
  608. * B - 0.
  609. *
  610. * CALLS CAE.
  611. *
  612. * MACROS CALL1RM, EXCST, KEYWORD, MESSAGE, SETFS.
  613.  
  614.  
  615. KEYWORD END,END
  616. END1 RJ CAE CLEAR ALL EQUIPMENT IDLE REQUESTS
  617. SA1 MMFF
  618. ZR X1,END2 IF NOT MMF MODE
  619. CALL1RM RCDF CLEAR DAT INTERLOCK
  620. END2 SA1 B1RM+RFNB
  621. SX5 B0+ INDICATE NO ERROR
  622. NZ X1,ENDX IF *1RM* STILL ATTACHED
  623. MESSAGE ENDA * CONFIG UTILITY COMPLETE.*
  624. SETFS O,0
  625. EXCST ENDB FORCE CALL TO *CMS*
  626. ENDRUN
  627.  
  628.  
  629. ENDA DATA C* CONFIG UTILITY COMPLETE.*
  630. ENDB DATA 4LCMS.
  631. TITLE GOC - *GO* COMMAND PROCESSOR.
  632. ** GOC - *GO* COMMAND PROCESSOR.
  633. *
  634. * ENTRY (CUEQ) = CURRENT EQUIPMENT TO RECONFIGURE.
  635. *
  636. * EXIT (X5) = ERROR MESSAGE ADDRESS.
  637. *
  638. * USES A - 1, 2, 3, 4, 6, 7.
  639. * X - ALL.
  640. *
  641. * CALLS BCL, CLD, FUM.
  642. *
  643. * MACROS CALL1RM, KEYWORD.
  644.  
  645.  
  646. KEYWORD GO,GOC
  647. RJ CLD CHECK FOR LEGAL DEVICE
  648. NZ X5,GOCX IF INCORRECT DEVICE
  649. RJ FUM FIND UNIT IN OTHER MST
  650. NZ X5,GOCX IF ERROR IN CONFIGURATION
  651. CALL1RM RDDF
  652. RJ BCL BUILD CONFIGURATION LIST
  653. RJ RRC RESET NEW EQUIPMENT
  654. EQ GOCX RETURN
  655. TITLE RRC - *RERUN* COMMAND PROCESSOR.
  656. ** RRC - *RERUN* COMMAND PROCESSOR.
  657. *
  658. * ENTRY (ESTA) = EST ADDRESS.
  659. * (MMFF) .NE. 0 IF MMF MODE.
  660. *
  661. * EXIT (X1) = CURRENT EQUIPMENT.
  662. * (X5) = ERROR MESSAGE.
  663. * (CUEQ) = CURRENT EQUIPMENT TO RECONFIGURE.
  664. * (CUEQ), (ESTB), (MSTD), AND K-DISPLAY RESET.
  665. *
  666. * USES A - 1, 2, 5, 6, 7.
  667. * B - 5, 6.
  668. * X - 0, 1, 2, 5, 6, 7.
  669. *
  670. * CALLS EST, RSC, SML.
  671. *
  672. * MACROS CALL1RM, GETLCW, KEYWORD.
  673.  
  674.  
  675. KEYWORD RERUN,RRC
  676. CALL1RM RUMF
  677. RJ EST READ EST INTO *ESTB*
  678.  
  679. * SEARCH FOR EQUIPMENT TO RECONFIGURE.
  680.  
  681. SX5 NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  682. SB5 B0 SET EQUIPMENT NOT FOUND
  683. BX6 X6-X6 CLEAR CURRENT EQUIPMENT
  684. SB6 B0 SET SHARED EST ORDINAL
  685. SA6 B1RM+CUEQ
  686. SA6 B1RM+URCD CLEAR UNITS TO RECONFIGURE
  687. RRC1 RJ SML FIND EQUIPMENT
  688. ZR X5,RRC3 IF END OF EQUIPMENTS
  689. PL X1,RRC1 IF DEVICE IDLE BIT NOT SET
  690. NZ B5,RRC2 IF EQUIPMENT PREVIOUSLY FOUND
  691. SB5 X5
  692. RRC2 R= X1,ESTE CHECK FOR SHARED DEVICE
  693. IX1 X5*X1
  694. SA1 ESTB+X1+EQDE READ EST ENTRY
  695. LX1 59-57
  696. PL X1,RRC1 IF NOT SHARED
  697. NZ B6,RRC1 IF SHARED EQUIPMENT FOUND
  698. SB6 X5
  699. EQ RRC1 NEXT EQUIPMENT
  700.  
  701. RRC3 SX6 B6
  702. NZ B6,RRC4 IF SHARED EQUIPMENT FOUND
  703. SX6 B5
  704. RRC4 SA6 B1RM+CUEQ
  705. RJ RSC RESET PARAMETERS
  706. SA1 B1RM+CUEQ
  707. SX5 B0
  708. EQ RRCX RETURN
  709. TITLE RSC - *RESET* COMMAND PROCESSOR.
  710. ** RSC - *RESET* COMMAND PROCESSOR.
  711. *
  712. * ENTRY (CUEQ) = CURRENT EQUIPMENT.
  713. *
  714. * EXIT (X5) = 0.
  715. *
  716. * USES A - 1, 2, 6, 7.
  717. * B - 2, 3, 5, 6, 7.
  718. * X - 0, 1, 2, 4, 5, 6, 7.
  719. *
  720. * CALLS COD, ZTB.
  721. *
  722. * MACROS KEYWORD, MOVE.
  723.  
  724.  
  725. KEYWORD RESET,RSC
  726. SA5 B1RM+CUEQ
  727. R= X1,ESTE
  728. IX1 X5*X1
  729. SA1 ESTB+X1+EQDE RESET EST ENTRY
  730. BX6 X1
  731. BX7 X7-X7
  732. SA6 B1RM+ESTD
  733. SA7 B1RM+URCD CLEAR UNITS TO RECONFIGURE
  734. RJ RMT READ CURRENT EQUIPMENT MST
  735. MOVE MSTL,MSTB,MSTC
  736. MOVE MSTL,MSTB,B1RM+MSTD
  737. RJ UKD UPDATE K-DISPLAY INFORMATION
  738. EQ RSCX RETURN
  739. TITLE SSP - *SUSPEND* COMMAND PROCESSOR.
  740. ** SSP - *SUSPEND* COMMAND PROCESSOR.
  741. * ONLY 885 AND 844 TYPE DEVICES ARE ALLOWED FOR THIS
  742. * COMMAND. THIS IS BECAUSE THE *6DI* DRIVER IS THE
  743. * ONLY ONE TO DETECT AND HONOR THE SUSPEND STATUS.
  744. *
  745. * ENTRY (CUEQ) = CURRENT EQUIPMENT.
  746. *
  747. * EXIT (X5) = ERROR MESSAGE ADDRESS.
  748. *
  749. * USES X - 1, 5.
  750. * A - 1.
  751. *
  752. * CALLS EQP.
  753. *
  754. * MACROS CALL1RM, KEYWORD.
  755.  
  756.  
  757. KEYWORD SUSPEND,SSP
  758. SA1 B1RM+CUEQ
  759. ZR X1,SSPX IF NO EQUIPMENT
  760. SA1 B1RM+ESTD CHECK FOR 885 OR 844
  761. LX1 59-55
  762. SX5 EREN **** ERROR IN EST ORDINAL.
  763. PL X1,SSPX IF NOT *LDAM*
  764. CALL1RM RSPF
  765. EQ SSPX RETURN
  766. TITLE CHP - *CH* PARAMETER PROCESSOR.
  767. ** CHP - *CH* PARAMETER PROCESSOR.
  768. *
  769. * ENTRY (SPTR) = STRING BUFFER ADDRESS OF PREVIOUS CHARACTER.
  770. * (SLMP) = STRING BUFFER LIMIT POINTER.
  771. *
  772. * EXIT (X5) = 0 IF NO ERROR.
  773. * = ERROR MESSAGE ADDRESS IF ERROR.
  774. * (SPTR) = UPDATED STRING BUFFER POINTER.
  775. * VALUE SET IN K-DISPLAY AND PARAMETER TABLE.
  776. *
  777. * USES X - 0, 1, 2, 5, 6.
  778. * A - 1, 2, 6.
  779. * B - 1, 2.
  780. *
  781. * CALLS CCH, CHA, VON.
  782.  
  783.  
  784. KEYWORD CH=,CHP
  785. SX0 3 VALIDATE CHANNEL NUMBER
  786. RJ VON
  787. NZ X5,CHPX IF ERROR
  788. SX0 1S11 ACCESS PATH ENABLED FLAG
  789. SX2 X6
  790. BX6 X0+X6
  791.  
  792. * CHECK THAT CHANNELS ARE AVAILABLE.
  793.  
  794. RJ CHA
  795. NZ X5,CHPX IF ERROR IN CHANNEL NUMBER
  796. PL X1,CHP1 IF CHANNEL IS UP
  797. SX0 3000B MARK CHANNEL DOWN
  798. BX6 X0+X6
  799. CHP1 LX6 12 SAVE CHANNEL
  800. SA6 CHPA
  801.  
  802. * CHECK FOR SECOND CHANNEL.
  803.  
  804. SX0 3
  805. RJ VON
  806. NZ X5,CHPX IF ERROR
  807. ZR X4,CHP3 IF NO SECOND CHANNEL
  808. SX0 1S11 ACCESS PATH ENABLED FLAG
  809. SA1 CHPA SAVE CHANNEL NUMBER
  810. SX2 X6+
  811. BX6 X0+X6
  812. BX6 X1+X6
  813. RJ CHA
  814. NZ X5,CHPX IF ERROR IN CHANNEL NUMBER
  815. PL X1,CHP2 IF CHANNEL IS UP
  816. SX0 3000B MARK CHANNEL DOWN
  817. BX6 X0+X6
  818. CHP2 SA6 CHPA SAVE CHANNEL
  819. CHP3 SA1 B1RM+ESTD INSERT CHANNELS IN REPLACEMENT ENTRY
  820. SA2 CHPA
  821. MX0 24
  822. LX2 24
  823. LX0 -12
  824. BX6 -X0*X1 CLEAR CHANNEL FIELD
  825. BX6 X2+X6
  826. SA6 A1
  827. RJ CCH CHECK FOR MATCHING CHANNELS
  828. NZ X1,CHP4 IF AT LEAST ONE CHANNEL MATCHES
  829.  
  830. * SET *URCD* TO INDICATE ALL UNITS CHANGED.
  831.  
  832. SA1 B1RM+MSTD+DDLL GET UNIT COUNT
  833. AX1 48
  834. MX0 -3
  835. BX1 -X0*X1
  836. SB2 X1
  837. MX6 1
  838. AX6 B2
  839. SB2 B2+B1
  840. LX6 B2
  841. SA1 B1RM+URCD MERGE CHANGED UNITS
  842. BX6 X1+X6
  843. SA6 A1
  844. CHP4 RJ SEQ SET EQUIPMENT PARAMETERS IN K-DISPLAY
  845. BX5 X5-X5 CLEAR ERROR STATUS
  846. EQ CHPX RETURN
  847.  
  848.  
  849. CHPA CON 0 TEMPORARY
  850. TITLE EQP - *EQ* PARAMETER PROCESSOR.
  851. ** EQP - *EQ* PARAMETER PROCESSOR.
  852. * ANY MASS STORAGE DEVICE IS ALLOWED FOR THIS COMMAND.
  853. * THIS IS BECAUSE DEVICE IDLE MAY BE SET FOR ANY MASS
  854. * STORAGE DEVICE.
  855. *
  856. * ENTRY (CUEQ) = CURRENT EQUIPMENT.
  857. * (SPTR) = STRING BUFFER ADDRESS OF PREVIOUS CHARACTER.
  858. * (SLMP) = STRING BUFFER LIMIT POINTER.
  859. *
  860. * EXIT (X5) = 0 IF NO ERROR.
  861. * = ERROR MESSAGE ADDRESS IF ERROR.
  862. * (SPTR) = UPDATED STRING BUFFER POINTER.
  863. * K-DISPLAY UPDATED TO SHOW NEW EQUIPMENT.
  864. *
  865. * USES X - 0, 4, 5, 6.
  866. * A - 6.
  867. * B - 0.
  868. *
  869. * CALLS CLD, RSC, VON.
  870.  
  871.  
  872. KEYWORD EQ=,EQP
  873. SX0 3+1 VALIDATE EST ORDINAL
  874. RJ VON
  875. NZ X5,EQPX IF ERROR
  876. ZR X4,EQP1 IF NO EQUIPMENT ENTERED
  877. SA6 B1RM+CUEQ SET EQUIPMENT
  878. EQP1 RJ CLD CHECK FOR LEGAL DEVICE
  879. NZ X5,EQP2 IF ERROR IN EQUIPMENT
  880. RJ RSC RESET PARAMETERS
  881. SX5 B0
  882. EQ EQPX RETURN
  883.  
  884. EQP2 SX6 B0 CLEAR CURRENT EQUIPMENT
  885. SX5 EREN **** ERROR IN EST ORDINAL.
  886. SA6 B1RM+CUEQ
  887. RJ RSC RESET PARAMETERS
  888. EQ EQPX RETURN
  889. TITLE ULP - UNIT LIST PARAMETER PROCESSOR.
  890. ** ULP - *UL=* PARAMETER PROCESSOR.
  891. *
  892. * ENTRY (CUEQ) = CURRENT EQUIPMENT.
  893. *
  894. * EXIT (MSTD) UPDATED WITH NEW UNIT LIST.
  895. * K-DISPLAY UPDATED WITH NEW CONFIGURATION.
  896. *
  897. * USES X - 0, 1, 2, 3, 4, 5, 6, 7.
  898. * A - 1, 6.
  899. * B - 3, 4, 5.
  900. *
  901. * CALLS SEQ, VON.
  902. *
  903. * MACRO KEYWORD.
  904.  
  905.  
  906. ULP8 SX5 ERUN **** ERROR IN UNIT LIST.
  907.  
  908. KEYWORD UL=,ULP
  909. BX6 X6-X6 CLEAR ASSEMBLY
  910. PX6 X6
  911. SA6 ULPA
  912. ULP1 SX0 3 VALIDATE UNIT NUMBERS
  913. RJ VON
  914. NZ X5,ULPX IF ERROR IN ASSEMBLY
  915. ZR X4,ULP4 IF NO DIGITS
  916. SA1 ULPA
  917. UX1,B4 X1
  918. SB3 B4+B4 COMPUTE SHIFT COUNT FOR NEW UNIT
  919. SB3 B3+B4
  920. SB3 B3+B3
  921. SB4 B4+B1
  922. LX4 X6,B3 POSITION NEW UNIT
  923. BX6 X1+X4
  924. PX6 X6,B4
  925. SA6 ULPA
  926. SA2 B1RM+ESTD CHECK FOR 885
  927. MX0 -11
  928. LX2 -12
  929. BX2 -X0*X2
  930. SX3 X2-2RDM
  931. SX2 X2-2RDQ
  932. ZR X3,ULP2 IF 885
  933. NZ X2,ULP3 IF NOT 885
  934. ULP2 AX4 B3 CHECK NUMBER OF UNITS AND UNIT NUMBER
  935. SB3 3
  936. LX4 59-5
  937. GT B4,B3,ULP8 IF MORE THAN 3 UNITS
  938. PL X4,ULP8 IF UNIT NUMBER NOT 4X OR 5X
  939. LX4 59-4-59+5
  940. NG X4,ULP8 IF UNIT NUMBER NOT 4X OR 5X
  941. ULP3 SX1 B5-1R,
  942. ZR X1,ULP1 IF MORE UNITS
  943. SX1 B5-1R.
  944. SX5 ERIS **** ERROR IN SEPARATOR.
  945. NZ X1,ULPX IF NOT END OF LINE
  946. ULP4 SA1 ULPA BUILD DDLL WORD
  947. UX1,B4 X1
  948. ZR B4,ULP5 IF NULL EQUIPMENT
  949. SB4 B4-2000B
  950. ULP5 PX6 X6,B4
  951. SA1 B1RM+MSTD+DDLL
  952. SA6 A1
  953. MX0 -6
  954. MX3 1 INITIALIZE LOOP PARAMETERS
  955. BX4 X4-X4
  956. MX2 -8 LOOP COUNTER
  957. ULP6 ZR X2,ULP7 IF END OF LOOP
  958. BX7 X1-X6
  959. BX7 -X0*X7
  960. LX0 6 ADVANCE UNIT
  961. AX2 1
  962. LX3 1
  963. ZR X7,ULP6 IF NO CHANGE IN UNIT NUMBER
  964. BX4 X4+X3
  965. EQ ULP6 CHECK NEXT UNIT
  966.  
  967. ULP7 SA1 B1RM+URCD MERGE BITS IN CALL BLOCK
  968. BX6 X1+X4
  969. SA6 A1
  970. RJ SEQ SET EQUIPMENT PARAMETERS IN DISPLAY
  971. EQ ULPX RETURN
  972.  
  973.  
  974. ULPA CON 0 SCRATCH LOCATION
  975. URP TITLE URP - UNITS FOR RECABLING PARAMETER PROCESSOR.
  976. ** URP - *UR=* PARAMETER PROCESSOR.
  977. *
  978. * ENTRY (URCD) = CURRENT LIST OF UNITS.
  979. * (MSTD) = CURRENT REDEFINITION PARAMETERS.
  980. *
  981. * EXIT (X5) = ERROR MESSAGE ADDRESS.
  982. *
  983. * USES X - 0, 1, 2, 3, 5, 6.
  984. * A - 1, 6.
  985. * B - 1, 2.
  986. *
  987. * CALLS VON.
  988. *
  989. * MACRO KEYWORD.
  990.  
  991.  
  992. URP2 SA1 B1RM+URCD ADD UNIT TO LIST
  993. BX6 X1+X3
  994. SA6 A1
  995. RJ SEQ SET EQUIPMENT PARAMETERS IN K-DISPLAY
  996.  
  997. KEYWORD UR=,URP ENTRY/EXIT
  998. SX0 3 ASSEMBLE UNIT NUMBER
  999. RJ VON
  1000. NZ X5,URPX IF ERROR IN ASSEMBLY
  1001.  
  1002. * FIND UNIT IN CURRENT UNIT LIST.
  1003.  
  1004. SA1 B1RM+MSTD+DDLL
  1005. MX0 -6
  1006. MX2 -3
  1007. LX1 -48
  1008. BX2 -X2*X1
  1009. LX1 48
  1010. SB2 X2 SET UNIT COUNT
  1011. SX3 B1 SET UNIT MASK
  1012. URP1 BX5 X6-X1 CHECK FOR UNIT NUMBER MATCH
  1013. BX5 -X0*X5
  1014. ZR X5,URP2 IF MATCH
  1015. SB2 B2-B1 ADVANCE UNIT NUMBER
  1016. AX1 6
  1017. LX3 1
  1018. PL B2,URP1 IF MORE UNITS TO CHECK
  1019. SX5 ERUN **** ERROR IN UNIT LIST.
  1020. EQ URPX RETURN
  1021. TITLE UTILITY SUBROUTINES.
  1022. ASC SPACE 4,20
  1023. ** ASC - ASSEMBLE CHARACTERS.
  1024. *
  1025. * ENTRY (SPTR) = STRING BUFFER ADDRESS OF PREVIOUS CHARACTER.
  1026. * (SLMP) = STRING BUFFER LIMIT POINTER.
  1027. * (X7) = 1 IF IGNORE LEADING ZEROES.
  1028. *
  1029. * EXIT (X4) = NUMBER OF CHARACTERS ASSEMBLED.
  1030. * (X5) = RIGHT JUSTIFIED ASSEMBLED CHARACTERS.
  1031. * (X6) = LEFT JUSTIFIED ASSEMBLED CHARACTERS.
  1032. * (B5) = SEPARATOR.
  1033. * (SPTR) = UPDATED STRING BUFFER ADDRESS.
  1034. *
  1035. * USES A - 1, 4, 6, 7.
  1036. * X - 1, 2, 3, 4, 5, 6, 7.
  1037. * B - 2, 3, 4, 5, 7.
  1038.  
  1039.  
  1040. * PROCESS END OF BUFFER.
  1041.  
  1042. ASC3 SA4 SLMP SET STRING BUFFER EMPTY
  1043. SB2 X4+
  1044. SB5 1R. SET TERMINATOR
  1045.  
  1046. * SET ASSEMBLED CHARACTERS.
  1047.  
  1048. ASC4 SX4 10 CALCULATE NUMBER OF CHARACTERS
  1049. SX3 B4
  1050. IX4 X4-X3
  1051. SX6 B2 SET BUFFER POINTER
  1052. SA6 SPTR
  1053. BX6 X6-X6
  1054. ZR X4,ASCX IF NO CHARACTERS ASSEMBLED
  1055. SX2 6 LEFT JUSTIFY CHARACTERS
  1056. IX3 X3*X2
  1057. SB4 X3
  1058. LX6 X5,B4
  1059.  
  1060. ASC SUBR ENTRY/EXIT
  1061. SA7 ASCA INITIALIZE IGNORE ZEROES FLAG
  1062. BX5 X5-X5
  1063. SB4 10
  1064. SA1 SPTR SET STRING POINTER
  1065. SB2 X1
  1066. SA1 SLMP SET MAXIMUM CHARACTER SCAN
  1067. SB3 X1
  1068.  
  1069. * ASSEMBLE CHARACTERS FROM BUFFER.
  1070.  
  1071. ASC1 SB2 B2+B1
  1072. GE B2,B3,ASC3 IF END OF STRING BUFFER
  1073. SA1 B2
  1074. SB5 X1 SET SEPARATOR
  1075. SB7 X1-1R
  1076. ZR B7,ASC1 IF BLANK
  1077. SB7 X1-1R+
  1078. PL B7,ASC4 IF SEPARATOR
  1079. SA4 ASCA
  1080. ZR X4,ASC2 IF NOT TO IGNORE ZEROES
  1081. SB7 X1-1R0
  1082. ZR B7,ASC1 IF LEADING ZERO
  1083. SX7 B0 CLEAR IGNORE ZEROES FLAG
  1084. SA7 A4
  1085. ASC2 LX5 6 ASSEMBLE CHARACTER
  1086. SB4 B4-1 DECREMENT COUNT
  1087. BX5 X5+X1
  1088. NZ B4,ASC1 IF MORE CHARACTERS TO ASSEMBLE
  1089. EQ ASC4 SET ASSEMBLED CHARACTERS
  1090.  
  1091.  
  1092. ASCA CON 0 IGNORE LEADING ZEROES FLAG
  1093. BCL SPACE 4,20
  1094. ** BCL - BUILD CURRENT CONFIGURATION LIST.
  1095. *
  1096. * EXIT CURRENT MASS STORAGE CONFIGURATION ON OUTPUT.
  1097. *
  1098. * USES A - 1, 2.
  1099. * X - 1, 2, 5, 6.
  1100. *
  1101. * CALLS BED, EST, RMT.
  1102. *
  1103. * MACROS CLOCK, DATE, GETLCW, WRITEC, WRITER.
  1104.  
  1105.  
  1106. BCL2 WRITER O,R FLUSH BUFFER
  1107.  
  1108. BCL SUBR ENTRY/EXIT
  1109. RJ EST READ EST INTO *ESTB*
  1110. DATE BCLA+3 PUT DATE AND TIME IN HEADER
  1111. CLOCK BCLA+4
  1112. WRITEC O,BCLA WRITE HEADER
  1113. WRITEC X2,BCLB WRITE DESCRIPTION LINE
  1114. WRITEC X2,(=C* *) WRITE BLANK LINE
  1115.  
  1116. * SEARCH FOR MASS STORAGE EQUIPMENTS.
  1117.  
  1118. SX5 NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  1119. BCL1 SX5 X5+B1 INCREMENT EST ORDINAL
  1120. SA1 LMSO
  1121. IX1 X1-X5
  1122. ZR X1,BCL2 IF END OF MASS STORAGE DEVICES
  1123. R= X1,ESTE
  1124. IX1 X5*X1
  1125. SA1 ESTB+X1+EQDE READ EST ENTRY
  1126. PL X1,BCL1 IF NOT MASS STORAGE
  1127. RJ RMT READ MST
  1128. RJ BED BUILD EQUIPMENT DISPLAY LINE
  1129. WRITEC O,BEDB,BEDBL WRITE DISPLAY LINE TO BUFFER
  1130. EQ BCL1 DISPLAY NEXT MS EQUIPMENT
  1131.  
  1132.  
  1133. BCLA DATA C*1 MASS STORAGE CONFIGURATION. 00/00/00. 00.00.00.*
  1134. BCLB DATA C*0 ORD TYPE CHANNELS UNITS*
  1135. BED SPACE 4,10
  1136. ** BED - BUILD EQUIPMENT DISPLAY LINE.
  1137. *
  1138. * ENTRY (X5) = EST ORDINAL.
  1139. * (MSTB) = MST FOR EQUIPMENT.
  1140. *
  1141. * EXIT (BEDC) = DISPLAY LINE FOR EQUIPMENT.
  1142. * (BEDB) = DISPLAY LINE PRECEDED BY BLANK WORD.
  1143. *
  1144. * USES A - 0, 1, 2, 3, 6.
  1145. * X - 0, 1, 2, 3, 6.
  1146. * B - 4, 5, 6, 7.
  1147. *
  1148. * CALLS COD, S2L.
  1149. *
  1150. * MACROS MOVE.
  1151.  
  1152.  
  1153. BED SUBR ENTRY/EXIT
  1154. MOVE BEDAL,BEDA,BEDC
  1155. SX1 X5+ CONVERT EST ORDINAL
  1156. NZ X5,BED1 IF NOT REDEFINITION EQUIPMENT
  1157. SA1 B1RM+CUEQ
  1158. BED1 SA0 BEDC DISPLAY WORD ADDRESS
  1159. SX1 X1+1000B ENSURE THREE DIGITS
  1160. RJ COD CONVERT EST ORDINAL
  1161. MX1 -18
  1162. BX6 -X1*X6
  1163. SA2 A0
  1164. LX1 42 POSITION MASK
  1165. LX6 42
  1166. BX2 X1*X2
  1167. BX3 X2+X6 MERGE EST ORDINAL INTO LINE
  1168. R= X2,ESTE
  1169. IX2 X5*X2
  1170. SA2 ESTB+X2+EQDE MERGE EQUIPMENT TYPE
  1171. LX2 -12
  1172. MX0 -11
  1173. BX1 -X0*X2
  1174. LX0 24
  1175. BX3 X0*X3
  1176. LX1 24
  1177. BX6 X1+X3
  1178. SA6 A0
  1179. SA3 MSTB+DDLL MERGE UNIT COUNT
  1180. MX0 -3
  1181. LX3 -48
  1182. BX1 -X0*X3
  1183. LX3 59-58+48
  1184. NG X3,BED2 IF NULL EQUIPMENT
  1185. SX1 X1+B1
  1186. BED2 SX6 X1+2R-0
  1187. MX0 -12
  1188. SB5 X1 SAVE UNIT COUNT FOR UNIT LIST PROCESSING
  1189. LX0 12
  1190. LX6 12
  1191. SA3 A0
  1192. BX3 X0*X3
  1193. BX6 X6+X3
  1194. SA6 A0
  1195. SA0 A0+B1 NEXT DISPLAY WORD
  1196. MX0 -6 MERGE CHANNELS IN DISPLAY LINE
  1197. LX2 -24
  1198. BX1 -X0*X2
  1199. SB7 36
  1200. RJ S2L
  1201. R= X1,ESTE
  1202. IX1 X5*X1
  1203. SA1 ESTB+X1+EQDE CONVERT SECOND CHANNEL
  1204. LX1 -24
  1205. MX0 -6
  1206. BX1 -X0*X1
  1207. ZR X1,BED3 IF NO SECOND CHANNEL
  1208. SB7 18
  1209. RJ S2L SET SECOND CHANNEL IN DISPLAY WORD
  1210. SA1 A0 INSERT COMMA
  1211. SX6 1R,-1R
  1212. LX6 30
  1213. IX6 X1+X6
  1214. SA6 A0
  1215. BED3 SA0 A0+B1 NEXT DISPLAY WORD
  1216. SB7 36 INITIALIZE UNIT POSITION IN DISPLAY WORD
  1217. SB6 B0 LOGICAL UNIT NUMBER
  1218. BED4 GE B6,B5,BED5 IF END OF UNITS
  1219. SA1 MSTB+DDLL
  1220. SB4 B6+B6 COMPUTE SHIFT COUNT
  1221. SB4 B4+B6
  1222. SB4 B4+B4
  1223. AX1 B4
  1224. MX0 -6
  1225. BX1 -X0*X1
  1226. RJ S2L SET UNIT NUMBER IN DISPLAY LINE
  1227. SB6 B6+B1 INCREMENT UNIT COUNT
  1228. SB7 B7-18
  1229. PL B7,BED4 IF NOT NEW DISPLAY WORD
  1230. SB7 B7+60
  1231. SA0 A0+B1
  1232. EQ BED4 NEXT UNIT
  1233.  
  1234. BED5 SA1 MSTB+ACGL SET STATUSES IN DISPLAY LINE
  1235. BX6 X6-X6
  1236. LX1 59-11
  1237. PL X1,BED6 IF NOT DEVICE IDLE
  1238. SX6 1RI&1R-
  1239. BED6 SA1 MSTB+DALL
  1240. AX1 56
  1241. LX6 6
  1242. SX2 3
  1243. BX1 X2-X1
  1244. NZ X1,BED7 IF NOT DOWN
  1245. SX6 X6+1RS&1R-
  1246. BED7 LX6 12
  1247.  
  1248. * MERGE STATUS BITS IN DISPLAY LINE.
  1249.  
  1250. SA1 BEDC+5
  1251. LX6 18
  1252. BX6 X1-X6
  1253. SA6 A1
  1254. EQ BEDX RETURN
  1255.  
  1256.  
  1257. BEDA DATA L* 1. DQ CH00 UL=-- -- -- -- -- -- -- -- ST =
  1258. ,----*
  1259. BEDAL EQU *-BEDA
  1260. ERRNZ BEDAL+1-KLNL LINE LENGTH ERROR
  1261. BEDB DATA 10H BLANK SPACING FOR OUTPUT
  1262. BEDC BSS BEDAL DISPLAY LINE BUFFER
  1263. BEDBL EQU *-BEDB LENGTH OF OUTPUT LINE
  1264. CAE SPACE 4,10
  1265. ** CAE - CLEAR ALL EQUIPMENT IDLE STATUS.
  1266. *
  1267. * EXIT (X5) = ERROR MESSAGE ADDRESS.
  1268. * = 0 IF NO EQUIPMENT FOUND.
  1269. *
  1270. * CALLS CLP, RRC.
  1271.  
  1272.  
  1273. CAE SUBR ENTRY/EXIT
  1274. CAE1 RJ RRC
  1275. ZR X5,CAEX IF NO EQUIPMENT FOUND
  1276. RJ CLP
  1277. NZ X5,CAEX IF ERROR IN CLEAR REQUEST
  1278. EQ CAE1 CHECK FOR NEXT EQUIPMENT
  1279. CCH SPACE 4,10
  1280. ** CCH - CHECK FOR MATCHING CHANNELS.
  1281. *
  1282. * ENTRY (X1) = EST TO CHECK.
  1283. * (ESTD) = NEW EST ENTRY.
  1284. *
  1285. * EXIT (X1) = 0 IF NO CHANNEL MATCH.
  1286. *
  1287. * USES A - 2, 4.
  1288. * X - 0, 1, 2, 3, 4.
  1289. * B - 2.
  1290.  
  1291.  
  1292. CCH SUBR ENTRY/EXIT
  1293. SA4 B1RM+ESTD
  1294. LX1 -24
  1295. LX4 24
  1296. MX0 -6
  1297. BX3 -X0*X1 BUILD CHANNEL MASK FOR NEW EQUIPMENT
  1298. LX1 -12
  1299. BX2 -X0*X1
  1300. SX1 B1
  1301. SB2 X2
  1302. LX2 X1,B2
  1303. SB2 X3
  1304. ZR X3,CCH1 IF NO SECOND CHANNEL
  1305. LX3 X1,B2
  1306. BX2 X2+X3
  1307. CCH1 BX3 -X0*X4 BUILD CHANNEL MASK FOR COMPARE EQUIPMENT
  1308. SB2 X3
  1309. LX4 12
  1310. LX3 X1,B2
  1311. BX4 -X0*X4
  1312. SB2 X4
  1313. ZR X4,CCH2 IF NO SECOND CHANNEL
  1314. LX4 X1,B2
  1315. BX3 X3+X4
  1316. CCH2 BX1 X2*X3 NON-ZERO IF ANY CHANNEL MATCHES
  1317. EQ CCHX RETURN
  1318. CHA SPACE 4,10
  1319. ** CHA - CHECK CHANNEL AVAILABLE.
  1320. *
  1321. * ENTRY (X2) = CHANNEL NUMBER.
  1322. * (NPPU) = NUMBER OF PP-S.
  1323. *
  1324. * EXIT (X5) = 0 IF CHANNEL AVAILABLE.
  1325. * = ERROR MESSAGE ADDRESS IF ERROR.
  1326. * (X1) .LT. 0 IF CHANNEL AVAILABLE ((X5) = 0)) BUT DOWN.
  1327. * (X6) = RESTORED TO ENTRY VALUE.
  1328. *
  1329. * USES A - 1, 5, 6, 7.
  1330. * X - 1, 3, 4, 5, 6, 7.
  1331. * B - 2, 3.
  1332. *
  1333. * MACROS GETLCW.
  1334.  
  1335.  
  1336. CHA4 SX5 ERCN **** ERROR IN CHANNEL NUMBER.
  1337.  
  1338. CHA SUBR ENTRY/EXIT
  1339. SX7 13B SET UPPER CHANNEL OF LOWER BANK
  1340. IX1 X7-X2
  1341. BX5 X5-X5 SET CHANNEL AVAILABLE
  1342. PL X1,CHA0 IF CHANNEL IN LOWER BANK
  1343. SA1 NPPU NUMBER OF PP-S
  1344. SX5 X1-11
  1345. NG X5,CHA4 IF ONLY CHANNELS 0 - 13
  1346. SX3 20B LOWER CHANNEL IN UPPER BANK
  1347. SX4 33B UPPER CHANNEL IN UPPER BANK
  1348. IX5 X2-X3
  1349. NG X5,CHA4 IF NOT IN UPPER BANK
  1350. IX5 X4-X2 CHECK UPPER LIMIT
  1351. NG X5,CHA4 IF ERROR
  1352. CHA0 BX7 X2 SAVE CHANNEL NUMBER
  1353. SA7 CHAA
  1354. BX7 X6 PRESERVE X6
  1355. GETLCW 1,CHTP,CHTB
  1356. BX2 X1 FWA OF CHANNEL STATUS TABLE
  1357. LX2 0-12 POSITION CHANNEL STATUS TABLE ADDRESS
  1358. SX2 X2
  1359. GETLCW CTALL,X2,CHTB
  1360. BX6 X7 RESTORE X6
  1361. SA5 CHAA DETERMINE CHANNEL TABLE WORD INDEX
  1362. SB2 B0
  1363. CHA1 SX5 X5-5 DIVIDE BY 5 LOOP
  1364. NG X5,CHA2 IF DIVIDE COMPLETE
  1365. SB2 B2+B1
  1366. EQ CHA1 CONTINUE DIVIDE
  1367.  
  1368. CHA2 SA1 CHTB+B2
  1369. SB3 X5+6
  1370. CHA3 LX1 12 POSITION CHANNEL BYTE
  1371. SB3 B3-B1
  1372. NZ B3,CHA3 IF CHANNEL NOT IN CORRECT POSITION
  1373. LX1 59-5 SET POSSIBLE CHANNEL DOWN FLAG
  1374. SX5 B0 SET CHANNEL AVAILABLE
  1375. EQ CHAX RETURN
  1376.  
  1377.  
  1378. CHAA CON 0 TEMPORARY CHANNEL STORAGE BUFFER
  1379. CLD SPACE 4,20
  1380. ** CLD - CHECK LEGALITY OF DEVICE.
  1381. * DEVICE MUST BE MASS STORAGE, IDLED, AND
  1382. * FIRST IN CHAIN IF LINKED DEVICE.
  1383. *
  1384. * ENTRY (CUEQ) = CURRENT EQUIPMENT.
  1385. *
  1386. * EXIT (X5) = ERROR MESSAGE ADDRESS.
  1387. * = 0 IF LEGAL DEVICE.
  1388. *
  1389. * USES A - 1, 5.
  1390. * X - 1, 5.
  1391. *
  1392. * CALLS RMT.
  1393.  
  1394.  
  1395. CLD SUBR ENTRY/EXIT
  1396. SA5 B1RM+CUEQ
  1397. R= X1,ESTE
  1398. IX1 X5*X1
  1399. SA1 ESTB+X1+EQDE READ EST ENTRY
  1400. PL X1,CLD1 IF NOT MASS STORAGE
  1401. RJ RMT READ MST TO *MSTB*
  1402. SA1 MSTB+ACGL CHECK FOR IDLED DEVICE
  1403. LX1 59-11
  1404. PL X1,CLD1 IF NOT IDLED DEVICE
  1405. SA1 MSTB+STLL
  1406. SX5 7774B MASK FOR CHAINED EST ORDINAL, FLAG
  1407. BX5 X5*X1
  1408. ZR X5,CLDX IF LEGAL DEVICE
  1409. SX5 ERDF **** DEVICE NOT FIRST IN CHAIN.
  1410. EQ CLDX RETURN
  1411.  
  1412. CLD1 SX5 EREN **** ERROR IN EST ORDINAL.
  1413. EQ CLDX RETURN
  1414. CRM SPACE 4,10
  1415. ** CRM - CALL *1RM* TO PROCESSES FUNCTION.
  1416. *
  1417. * ENTRY (X6) = FUNCTION REQUEST.
  1418. * (TPAR) = CURRENT PARAMETER LEGALITY TABLE.
  1419. * (CUEQ) = EQUIPMENT IF APPLICABLE TO FUNCTION.
  1420. * (URCD) = UNITS TO BE RECONFIGURED.
  1421. * (ESTD) = EST WITH RECONFIGURATION CHANGES.
  1422. * (MSTD) = MST WITH RECONFIGURATION CHANGES.
  1423. *
  1424. * USES A - 1, 2, 5, 6, 7.
  1425. * X - 1, 2, 5, 6, 7.
  1426. * B - 6.
  1427. *
  1428. * CALLS ASC, IDE, ISB, SPT, UKD.
  1429. *
  1430. * MACROS RECALL, SYSTEM.
  1431.  
  1432.  
  1433. CRM3 SA1 CRMB RESTORE PARAMETER LIST
  1434. BX7 X1
  1435. SA7 B1RM+TPAR
  1436. RJ UKD UPDATE K-DISPLAY
  1437.  
  1438. CRM SUBR ENTRY/EXIT
  1439. SA2 B1RM+TPAR SAVE LEGAL PARAMETERS
  1440. SA1 B1RM+RFNB CHECK FOR *1RM* ACTIVE
  1441. BX7 X2
  1442. SA6 A1
  1443. SA7 CRMB
  1444. BX6 X6-X6 CLEAR LEGAL PARAMETERS
  1445. SA6 A2
  1446. SA6 B1RM+TCOM CLEAR COMMAND PASSING AREA
  1447. NZ X1,CRM1 IF *1RM* ACTIVE
  1448. SA1 CRMC
  1449. BX6 X1
  1450. SA6 CRMA
  1451. SYSTEM SPC,R,CRMA
  1452. CRM1 RECALL
  1453. SA1 B1RM+RFNB
  1454. LX1 59-0
  1455. PL X1,CRM3 IF FUNCTION COMPLETE
  1456. RJ UKD UPDATE K-DISPLAY
  1457. SA5 KBUF CHECK FOR INPUT ENTERED
  1458. ZR X5,CRM1 IF NO INPUT DATA
  1459. RJ ISB INPUT STRING BUFFER
  1460. SX7 B0 ASSEMBLE KEYWORD
  1461. RJ ASC
  1462. ZR X4,CRM1 IF NO DATA ASSEMBLED
  1463. RJ SPT SEARCH PARAMETER TABLE
  1464. ZR X5,CRM2 IF NO ERROR
  1465. RJ IDE PROCESS ERROR
  1466. EQ CRM1 RECHECK FUNCTION
  1467.  
  1468. CRM2 SB6 A3-TKEY PASS PARAMETER TO *1RM*
  1469. MX6 1
  1470. LX6 B6
  1471. SA6 B1RM+TCOM
  1472. EQ CRM1 CHECK FOR FUNCTION COMPLETE
  1473.  
  1474.  
  1475. CRMA CON 0 *1RM* CALL BUFFER
  1476. CRMB CON 0 PARAMETER TABLE SAVE AREA
  1477. CRMC VFD 18/0L1RM,6/,18/MSG1,18/B1RM *1RM* CALL
  1478. EST SPACE 4,10
  1479. ** EST - READ EST INTO *ESTB*.
  1480. *
  1481. * ENTRY NONE.
  1482. *
  1483. * EXIT *ESTB* = EST ENTRIES (THROUGH LAST MASS STORAGE + 1).
  1484. * (LMSO) = LAST MASS STORAGE EST ORDINAL + 1.
  1485. *
  1486. * CALLS RSB=.
  1487. *
  1488. * USES X - 1, 2, 3, 4, 6, 7.
  1489. * A - 2, 6, 7.
  1490. * B - NONE.
  1491.  
  1492.  
  1493. EST SUBR ENTRY/EXIT
  1494. SA2 ESTA SET *COMCRSB* ENTRY CONDITIONS
  1495. SX1 ESTB SET ADDRESS TO TRANSFER TO
  1496. MX3 -12
  1497. AX2 12
  1498. BX3 -X3*X2
  1499. SX7 X3
  1500. AX2 24 SET ADDRESS TO TRANSFER FROM
  1501. R= X6,ESTE
  1502. IX3 X3*X6 SET WORD COUNT
  1503. SX4 B0 SET SUBSYSTEM (= *CMR*)
  1504. MX6 1
  1505. SA6 X1
  1506. SA7 LMSO SAVE EST SIZE TO SEARCH
  1507. RJ RSB= READ EST
  1508. EQ ESTX RETURN
  1509. FUM SPACE 4,20
  1510. ** FUM - FIND REPLACEMENT UNIT IN MST-S.
  1511. *
  1512. * ENTRY (CUEQ) = CURRENT EQUIPMENT.
  1513. *
  1514. * EXIT (X5) = ERROR MESSAGE ADDRESS.
  1515. * (B5) = UNIT POSITION IF UNIT IN MST.
  1516. *
  1517. * USES A - 1, 2, 4.
  1518. * X - 0, 1, 2, 3, 4, 5, 6, 7.
  1519. * B - 2, 3, 4, 5, 6.
  1520. *
  1521. * CALLS CCH, SML.
  1522.  
  1523.  
  1524. FUM6 SX5 ERSI **** EQUIPMENT STATUS INCORRECT.
  1525. EQ FUMX RETURN
  1526.  
  1527. FUM7 SX5 ERIU **** INTRODUCED UNIT IN USE.
  1528.  
  1529. FUM SUBR ENTRY/EXIT
  1530. SA1 B1RM+ESTD CHECK FOR SHARED DEVICES
  1531. SX5 B0
  1532. LX1 59-57
  1533. PL X1,FUM1 IF DEVICE NOT SHARED
  1534. SA2 MSTC+ACGL CHECK FOR GLOBAL UNLOAD
  1535. LX2 59-5
  1536. NG X2,FUM3 IF GLOBAL UNLOAD SET
  1537. EQ FUM2 CHECK UNIT NUMBER
  1538.  
  1539. FUM1 LX1 57-54
  1540. NG X1,FUM3 IF NON-SHARED DEVICE UNAVAILABLE
  1541. FUM2 SA1 MSTC+DDLL CHECK FOR UNIT NUMBER CHANGE
  1542. SA2 B1RM+MSTD+DDLL
  1543. BX1 X1-X2
  1544. MX0 -3
  1545. AX1 48
  1546. BX1 -X0*X1
  1547. NZ X1,FUM6 IF CHANGE IN NUMBER OF UNITS
  1548. FUM3 RJ SML SEARCH FOR MASS STORAGE, *LDAM* DEVICES
  1549. ZR X5,FUMX IF ALL MS EQUIPMENTS CHECKED
  1550.  
  1551. * CHECK THAT CHANNELS ARE THE SAME.
  1552.  
  1553. R= X1,ESTE
  1554. IX1 X5*X1
  1555. SA1 ESTB+X1+EQDE READ EST ENTRY
  1556. RJ CCH COMPARE CHANNELS
  1557. ZR X1,FUM3 IF NO CHANNEL MATCHES
  1558. SA1 MSTB+STLL
  1559. LX1 59-2
  1560. NG X1,FUM3 IF DEVICE IN USE IN CHAIN
  1561.  
  1562. * SEARCH FOR MATCHING UNIT NUMBER.
  1563.  
  1564. SA2 B1RM+MSTD+DDLL
  1565. SA4 MSTB+DDLL
  1566. BX3 X4+X2
  1567. LX3 59-58
  1568. SA1 MSTB+DALL
  1569. SX6 3
  1570. AX1 56
  1571. BX1 X6-X1
  1572. ZR X1,FUM3 IF DEVICE DOWN
  1573. NG X3,FUM3 IF EITHER EQUIPMENT IS NULL
  1574. LX2 12 EXTRACT CURRENT UNIT COUNT
  1575. MX6 -3
  1576. LX4 12
  1577. BX1 -X6*X4 EXTRACT UNIT COUNT FOR COMPARISON UNIT
  1578. SB5 B0 INITIALIZE UNIT POSITION IN ERROR
  1579. LX4 -12
  1580. BX7 -X6*X2
  1581. LX2 -12
  1582. SB2 B0 INITIALIZE COMPARISON LOOP
  1583. MX6 -6 SET UNIT MASK
  1584. SB4 6
  1585. FUM4 SB3 B0
  1586. AX0 X2,B2 EXTRACT UNIT TO CHECK
  1587. SB6 X1 SET COMPARISON UNIT COUNT
  1588. BX0 -X6*X0
  1589. FUM5 AX3 X4,B3 POSITION COMPARISON EQUIPMENT UNIT
  1590. BX3 -X6*X3
  1591. SB3 B3+B4
  1592. BX3 X3-X0
  1593. ZR X3,FUM7 IF UNIT NUMBER MATCH
  1594. SB6 B6-B1
  1595. PL B6,FUM5 IF MORE UNITS TO CHECK
  1596. SX7 X7-1
  1597. PL X7,FUM4 IF MORE UNITS TO CHECK
  1598. EQ FUM3 CHECK NEXT EQUIPMENT
  1599. GLC SPACE 4,10
  1600. ** GLC - GET LOW CORE WORDS.
  1601. *
  1602. * ENTRY (X1) = WORD COUNT.
  1603. * (X2) = LOW CORE ADDRESS.
  1604. * (X3) = ADDRESS TO STORE WORDS.
  1605. *
  1606. * EXIT (X1) = FIRST LOW CORE WORD.
  1607. * LOW CORE WORD(S) RETURNED.
  1608. *
  1609. * USES A - 1, 6.
  1610. * X - 1, 2, 6.
  1611. *
  1612. * MACROS SYSTEM.
  1613.  
  1614.  
  1615. GLC SUBR ENTRY/EXIT
  1616. MX6 42
  1617. LX1 36
  1618. SA6 X3
  1619. LX2 18
  1620. BX6 X1+X3
  1621. BX6 X2+X6
  1622. SA6 GLCA
  1623. SYSTEM RSB,,A6
  1624. SA1 X3
  1625. EQ GLCX RETURN
  1626.  
  1627.  
  1628. GLCA CON 0 *RSB* STATUS WORD
  1629. IDE SPACE 4,10
  1630. ** IDE - ISSUE INPUT DATA ERROR MESSAGE TO K-DISPLAY.
  1631. *
  1632. * ENTRY (SLMP) = STRING BUFFER LIMIT POINTER.
  1633. * (X5) = ADDRESS OF ERROR MESSAGE.
  1634. *
  1635. * EXIT ERROR MESSAGE SET IN K-DISPLAY.
  1636. * STRING BUFFER SET EMPTY.
  1637. *
  1638. * USES A - 5, 6.
  1639. * X - 5, 6.
  1640. *
  1641. * MACROS MOVE, WRITEC.
  1642.  
  1643.  
  1644. IDE SUBR ENTRY/EXIT
  1645. MOVE 6,ERR+X5,MSG1 MOVE MESSAGE TO BUFFER
  1646. SA5 SLMP SET BUFFER EMPTY
  1647. BX6 X5
  1648. SA6 SPTR
  1649. WRITEC O,MSG1,6 RECORD ERROR ON OUTPUT FILE
  1650. EQ IDEX RETURN
  1651. ISB SPACE 4,20
  1652. ** ISB - INPUT STRING BUFFER.
  1653. *
  1654. * ENTRY (SPTR) = STRING BUFFER ADDRESS.
  1655. * (SLMP) = STRING BUFFER LIMIT.
  1656. *
  1657. * EXIT (SPTR) = UPDATED STRING BUFFER.
  1658. * (SLMP) = LWA+1 OF STRING BUFFER.
  1659. *
  1660. * USES A - 4, 5, 6, 7.
  1661. * X - 4, 5, 6, 7.
  1662. * B - 2.
  1663. *
  1664. * CALLS USB.
  1665. *
  1666. * MACROS MESSAGE, MOVE, RECALL, WRITEC.
  1667.  
  1668.  
  1669. * MOVE INPUT TO STRING BUFFER.
  1670.  
  1671. ISB2 MOVE 6,A5,MSG2 MOVE INPUT TO DISPLAY
  1672. MOVE 6,ERR+ERBL,MSG1 CLEAR MESSAGE LINE
  1673. MESSAGE A5,3,R ENTER DIRECTIVES IN CONTROL POINT DAYFILE
  1674. WRITEC O,KBUF-1,6 RECORD INPUT DIRECTIVES ON OUTPUT
  1675. SB2 A5 MOVE INPUT TO STRING BUFFER
  1676. RJ USB
  1677. SX6 X6+B1 SET LWA+1 OF CHARACTER STRING
  1678. SA6 SLMP
  1679. SX7 B6-B1
  1680. BX6 X6-X6 CLEAR INPUT BUFFER
  1681. SA6 A5
  1682. SA7 SPTR
  1683.  
  1684. ISB SUBR ENTRY/EXIT
  1685. SA4 SPTR
  1686. SA5 SLMP
  1687. BX7 X5-X4
  1688. NZ X7,ISBX IF BUFFER NOT EMPTY
  1689.  
  1690. * WAIT FOR INPUT.
  1691.  
  1692. ISB1 SA5 KBUF
  1693. NZ X5,ISB2 IF INPUT ENTERED
  1694. RECALL
  1695. EQ ISB1 LOOP FOR INPUT
  1696.  
  1697.  
  1698. USBB BSS NSCI+10 STRING BUFFER
  1699. MPL SPACE 4,15
  1700. ** MPL - MOVE AND POSITION LINE.
  1701. *
  1702. * *MPL* IS USED TO MOVE A DISPLAY LINE TO A K-DISPLAY
  1703. * BUFFER WHICH HAS THE X,Y COORDINATES IN THE FIRST 24 BITS
  1704. * OF EACH LINE.
  1705. *
  1706. * ENTRY (X1) = WORD COUNT OF BLOCK TO BE MOVED.
  1707. * (X2) = ADDRESS OF FIRST WORD OF SOURCE.
  1708. * (X3) = ADDRESS OF FIRST WORD OF DESTINATION.
  1709. *
  1710. * USES X - 1, 2, 3, 4, 6, 7.
  1711. * A - 2, 4, 6.
  1712.  
  1713.  
  1714. MPL SUBR ENTRY/EXIT
  1715. SA4 X3 GET X,Y COORDINATES FROM DESTINATION
  1716. MX7 24
  1717. SA2 X2+ GET FIRST WORD FROM ORIGIN
  1718. MPL1 BX4 X7*X4
  1719. LX2 36
  1720. BX6 -X7*X2
  1721. BX6 X6+X4
  1722. SX1 X1-1 DECREMENT COUNT
  1723. SA6 X3 STORE WORD IN DESTINATION
  1724. BX4 X2 PARTIAL WORD FROM SOURCE
  1725. SX3 X3+B1 ADDRESS OF NEXT DESTINATION LOCATION
  1726. SA2 A2+B1 GET NEXT FULL SOURCE WORD
  1727. NZ X1,MPL1 IF MORE TO MOVE
  1728. BX6 X7*X4
  1729. ZR X6,MPLX IF LAST PARTIAL WORD IS EMPTY
  1730. SA6 X3 STORE LAST PARTIAL WORD
  1731. EQ MPLX RETURN
  1732. RMT SPACE 4,10
  1733. ** RMT - READ MST FOR EQUIPMENT.
  1734. *
  1735. * ENTRY (X5) = EST ORDINAL.
  1736. *
  1737. * EXIT (MSTB) = MST FOR EQUIPMENT.
  1738. * MST READ INTO SPECIFIED BUFFER.
  1739. *
  1740. * USES A - 1.
  1741. * X - 1, 6.
  1742. *
  1743. * MACROS GETLCW.
  1744.  
  1745.  
  1746. RMT SUBR ENTRY/EXIT
  1747. R= X1,ESTE
  1748. IX1 X5*X1
  1749. SA1 ESTB+X1+EQDE READ EST ENTRY FOR MST ADDRESS
  1750. MX6 -12
  1751. BX6 -X6*X1
  1752. LX6 3
  1753. GETLCW MSTL,X6,MSTB
  1754. EQ RMTX RETURN
  1755. SEQ SPACE 4,10
  1756. ** SEQ - SET EQUIPMENT PARAMETERS IN DISPLAY.
  1757. *
  1758. * ENTRY (CUEQ) = CURRENT EQUIPMENT.
  1759. * (MSTC) = MST FOR CURRENT EQUIPMENT.
  1760. * (MSTD) = CHANGED MST PARAMETERS.
  1761. *
  1762. * EXIT PARAMETERS SET IN DISPLAY BUFFER.
  1763. *
  1764. * USES A - 0, 1, 4, 5, 6.
  1765. * X - 0, 1, 3, 4, 5, 6, 7.
  1766. *
  1767. * CALLS BED, RMT.
  1768. *
  1769. * MACROS MOVE, MOVEDL.
  1770.  
  1771.  
  1772. SEQ3 MOVEDL BEDAL,NONE,DSCC CLEAR CURRRENT EQUIP CONFIGURATION
  1773. MOVEDL BEDAL,BLKL,DSRC CLEAR REQUESTED EQUIP CONFIGURATION
  1774. MOVEDL SEQAL,BLKL,DSAB CLEAR CHANGED UNITS LINE
  1775.  
  1776. SEQ SUBR ENTRY/EXIT
  1777. SA5 B1RM+CUEQ
  1778. ZR X5,SEQ3 IF NO EQUIPMENT PRESENT
  1779. RJ RMT READ MST
  1780. RJ BED BUILD DISPLAY LINE
  1781. MOVEDL BEDAL,BEDC,DSCC SET CURRENT EQUIPMENT CONFIGURATION
  1782. MOVE MSTL,B1RM+MSTD,MSTB USE CHANGED PARAMETERS
  1783. MOVE 1,B1RM+ESTD,ESTB
  1784. BX5 X5-X5
  1785. RJ BED BUILD DISPLAY LINE
  1786. MOVEDL BEDAL,BEDC,DSRC SET REQUESTED EQUIP CONFIGURATION
  1787.  
  1788. * INDICATE CHANGED UNITS ON K-DISPLAY.
  1789.  
  1790. MOVEDL SEQAL,SEQA,DSAB SET CHANGED UNITS
  1791. SA0 DSAB+1
  1792. SA4 B1RM+URCD GET CHANGED UNITS
  1793. SX7 1R*
  1794. MX0 -6
  1795. MX3 1
  1796. SEQ1 ZR X4,SEQX IF END OF UNITS
  1797. LX4 -1
  1798. SX1 X0
  1799. LX7 -18
  1800. ZR X1,SEQ2 IF NOT NEW WORD
  1801. SA0 A0+B1
  1802. SEQ2 LX0 -18
  1803. PL X4,SEQ1 IF NOT THIS UNIT
  1804. SA1 A0 MERGE * IN UNIT POSITION
  1805. BX4 -X3*X4
  1806. BX1 X0*X1
  1807. BX6 X1+X7
  1808. SA6 A1
  1809. EQ SEQ1 LOOP FOR NEXT UNIT
  1810.  
  1811.  
  1812. SEQA DATA L* CHANGED UNITS *
  1813. SEQAL EQU *-SEQA
  1814. SPT SPACE 4,20
  1815. ** SPT - SEARCH PARAMETER TABLE.
  1816. *
  1817. * ENTRY (X6) = SEARCH ELEMENT.
  1818. * (TPAR) = PARAMETER LEGALITY MASK
  1819. *
  1820. * EXIT (X3) = PARAMETER TABLE ENTRY.
  1821. * (X5) = ERROR MESSAGE ADDRESS.
  1822. * = 0 ON CLEAR ERROR STATUS.
  1823. * (A3) = PARAMETER TABLE ADDRESS.
  1824. *
  1825. * USES A - 1, 3.
  1826. * X - 0, 1, 3, 4, 5.
  1827.  
  1828.  
  1829. SPT SUBR ENTRY/EXIT
  1830. SA1 B1RM+TPAR LEGAL PARAMETER DESCRIPTION
  1831. MX0 42
  1832. SA3 TKEY INITIALIZE PARAMETER SEARCH
  1833. SX5 ERIE **** INCORRECT ENTRY.
  1834. SPT1 SA3 A3+B1
  1835. BX4 X0*X3
  1836. ZR X3,SPTX IF END OF TABLE
  1837. BX4 X6-X4
  1838. LX1 59-0
  1839. NZ X4,SPT1 IF NO MATCH
  1840. PL X1,SPTX IF COMMAND NOT LEGAL
  1841. SX5 B0 CLEAR ERROR STATUS
  1842. EQ SPTX RETURN
  1843. SML SPACE 4,20
  1844. ** SML - SEARCH EST FOR MASS STORAGE *LDAM* DEVICES.
  1845. *
  1846. * ENTRY (X5) = PREVIOUS EST ORDINAL.
  1847. * (ESTB) = EST BUFFER INITIALIZED.
  1848. *
  1849. * EXIT (X5) = 0 IF ALL EQUIPMENTS CHECKED.
  1850. * (X5) = EST ORDINAL FOR REDEFINITION.
  1851. * (X1) .LT. 0 IF IDLED DEVICE.
  1852. * (MSTB) = MST FOR EQUIPMENT.
  1853. *
  1854. * USES A - 1, 2.
  1855. * X - 1, 2, 5, 6.
  1856. *
  1857. * CALLS RMT.
  1858.  
  1859. SML2 SX5 0 RETURN END OF EST STATUS
  1860.  
  1861.  
  1862. SML SUBR ENTRY/EXIT
  1863. SML1 SA1 LMSO
  1864. SX5 X5+B1
  1865. IX1 X1-X5
  1866. ZR X1,SML2 IF END OF MASS STORAGE DEVICES
  1867. R= X1,ESTE
  1868. IX1 X5*X1
  1869. SA1 ESTB+X1+EQDE READ EST ENTRY
  1870. PL X1,SML1 IF NOT MASS STORAGE
  1871. SA2 B1RM+CUEQ
  1872. LX1 59-55
  1873. PL X1,SML1 IF NOT *LDAM*
  1874. BX6 X2-X5
  1875. ZR X6,SML1 IF CURRENT EQUIPMENT
  1876. RJ RMT READ MST
  1877. SA1 MSTB+ACGL CHECK REDEFINITION STATUS
  1878. LX1 59-11
  1879. EQ SMLX RETURN
  1880. S2L SPACE 4,10
  1881. ** S2L - SET 2 DIGITS IN DISPLAY LINE.
  1882. *
  1883. * ENTRY (B7) = SHIFT COUNT.
  1884. * (A0) = DISPLAY LINE ADDRESS.
  1885. * (X1) = DIGITS TO DISPLAY.
  1886. *
  1887. * USES A - 2, 6.
  1888. * X - 1, 2, 6.
  1889. *
  1890. * CALLS COD.
  1891.  
  1892.  
  1893. S2L SUBR ENTRY/EXIT
  1894. SX1 X1+100B INSURE TWO DIGITS
  1895. RJ COD CONVERT TO DISPLAY CODE
  1896. MX1 -12
  1897. BX6 -X1*X6
  1898. SA2 A0
  1899. LX1 B7
  1900. LX6 B7
  1901. BX2 X1*X2
  1902. BX6 X2+X6
  1903. SA6 A0
  1904. EQ S2LX RETURN
  1905. UKD SPACE 4,10
  1906. ** UKD - UPDATE K-DISPLAY INFORMATION.
  1907. *
  1908. * ENTRY (TPAR) CONTAINS LEGAL PARAMETERS.
  1909. *
  1910. * EXIT K-DISPLAY UPDATED.
  1911. *
  1912. * USES A - 4, 5, 6.
  1913. * X - 4, 5, 6.
  1914. * B - 5, 6.
  1915. *
  1916. * CALLS BED, SEQ, SML.
  1917. *
  1918. * MACROS MOVEDL.
  1919.  
  1920.  
  1921. UKD SUBR ENTRY/EXIT
  1922. SA5 B1RM+TPAR COPY LEGAL PARAMETER DEFINITION TO DISPLAY
  1923. SB5 B0
  1924. SB6 B0
  1925. UKD1 ZR X5,UKD2 IF END OF PARAMETERS
  1926. SB5 B5+KLNL
  1927. LX5 -1
  1928. PL X5,UKD1 IF NOT LEGAL PARAMETER
  1929. MX6 1 CLEAR PARAMETER BIT
  1930. BX5 -X6*X5
  1931. MOVEDL KLNL,UKDC-KLNL+B5,DSAA+B6 MOVE DESCRIPTION
  1932. SB6 B6+KLNL
  1933. NZ X5,UKD1 IF MORE LEGAL PARAMETERS
  1934. UKD2 SB5 KLNL*KCML CLEAR REMAINDER OF PARAMETER DESCRIPTIONS
  1935. GE B6,B5,UKD4 IF PARAMETER AREA FULL
  1936. UKD3 MOVEDL KLNL,BLKL,DSAA+B6
  1937. SB6 B6+KLNL
  1938. LT B6,B5,UKD3 IF MORE TO CLEAR
  1939.  
  1940. * SET OTHER EQUIPMENTS TO RECONFIGURE IN DISPLAY.
  1941.  
  1942. UKD4 SX6 B0 SAVE POSITION
  1943. SX5 B0 INITIALIZE EQUIPMENT SEARCH LOOP
  1944. SA6 UKDB
  1945. UKD5 RJ SML FIND EQUIPMENT
  1946. ZR X5,UKD6 IF END OF EQUIPMENTS
  1947. PL X1,UKD5 IF DEVICE IDLE BIT NOT SET
  1948. RJ BED BUILD EQUIPMENT DISPLAY LINE
  1949. SA4 UKDB
  1950. MOVEDL BEDAL,BEDC,DSAE+X4
  1951. SA4 UKDB INCREMENT DISPLAY LINE
  1952. SX6 X4+KLNL
  1953. SA6 A4
  1954. SB5 X6
  1955. SB6 KLNL*KEQL
  1956. LT B5,B6,UKD5 IF NOT END OF DISPLAY LINES
  1957. EQ UKD8 COMPLETE PROCESSING
  1958.  
  1959. UKD6 SA4 UKDB
  1960. SB6 KLNL*KEQL
  1961. SB5 X4+
  1962. NZ X4,UKD7 IF AN EQUIPMENT ALREADY ENTERED
  1963. SB5 KLNL
  1964. MOVEDL BEDAL,NONE,DSAE
  1965. UKD7 MOVEDL BEDAL,BLKL,DSAE+B5 MOVE BLANK LINES
  1966. SB5 B5+KLNL
  1967. LT B5,B6,UKD7 IF NOT END OF DISPLAY LINES
  1968. UKD8 RJ SEQ SET PARAMETERS FOR CURRENT EQUIPMENT
  1969. EQ UKDX RETURN
  1970.  
  1971.  
  1972. UKDB CON 0 TEMPORARY
  1973.  
  1974. UKDC BSS 0 PARAMETER DESCRIPTIONS
  1975. COMMAND HERE
  1976. VON SPACE 4,20
  1977. ** VON - VALIDATE OCTAL NUMBERS.
  1978. *
  1979. * ENTRY (X0) = MAXIMUM NUMBER OF CHARACTERS + 1 ALLOWED.
  1980. * (SPTR) = STRING BUFFER ADDRESS OF PREVIOUS CHARACTER.
  1981. * (SLMP) = STRING BUFFER LIMIT POINTER.
  1982. *
  1983. * EXIT (X4) = NUMBER OF CHARACTERS ASSEMBLED.
  1984. * (X5) = ERROR MESSAGE ADDRESS.
  1985. * (X6) = BINARY VALUE OF NUMBER.
  1986. * (B5) = SEPARATOR.
  1987. * (SPTR) = UPDATED STRING BUFFER POINTER.
  1988. *
  1989. * USES A - 1, 2, 4, 6.
  1990. * X - 1, 2, 4, 5, 6, 7.
  1991. * B - 7.
  1992. *
  1993. * CALLS ASC, DXB.
  1994.  
  1995.  
  1996. VON3 SX5 ERIE **** INCORRECT ENTRY.
  1997.  
  1998. VON SUBR ENTRY/EXIT
  1999.  
  2000. * CHECK SYNTAX OF VALUE.
  2001.  
  2002. SX7 B0
  2003. RJ ASC
  2004. SA2 SPTR CHECK FOR POST RADIX
  2005. SA1 X2-1
  2006. SX2 X1-1R0
  2007. PL X2,VON2 IF NO POST RADIX
  2008. SX7 X1-1RB
  2009. ZR X7,VON1 IF OCTAL POST RADIX
  2010. SX2 X1-1RD
  2011. NZ X2,VON3 IF NOT DECIMAL POST RADIX
  2012. VON1 SX4 X4-1 DECREMENT NUMBER OF CHARACTERS
  2013. VON2 IX7 X4-X0
  2014. PL X7,VON3 IF TOO MANY DIGITS
  2015. SX5 ERIS **** INCORRECT SEPARATOR.
  2016. SX2 B5-1R=
  2017. ZR X2,VONX IF INCORRECT SEPARATOR
  2018. BX5 X5-X5
  2019. ZR X4,VONX IF NO CHARACTERS
  2020.  
  2021. * CHECK BINARY VALUES.
  2022.  
  2023. BX5 X6 CONVERT TO BINARY
  2024. SB7 B0
  2025. PX6 X4,B5
  2026. SA6 VONA
  2027. RJ DXB
  2028. NZ X4,VON3 IF ERROR IN CONVERSION
  2029. SA4 VONA RESTORE CHARACTER COUNT
  2030. UX4,B5 X4
  2031. BX5 X5-X5 CLEAR ERROR
  2032. EQ VONX RETURN
  2033.  
  2034.  
  2035. VONA CON 0 SCRATCH LOCATION
  2036. TITLE ERROR MESSAGES.
  2037. * ERROR MESSAGES.
  2038.  
  2039.  
  2040. ERR BSS 0 ERROR MESSAGE FIRST WORD ADDRESS
  2041. LOC 0
  2042. ERBL DIS 6,
  2043. ERCN DIS 6,**** ERROR IN CHANNEL NUMBER.
  2044. ERDF DIS 6,**** DEVICE NOT FIRST IN CHAIN.
  2045. EREN DIS 6,**** ERROR IN EST ORDINAL.
  2046. ERIE DIS 6,**** INCORRECT ENTRY.
  2047. ERIS DIS 6,**** INCORRECT SEPARATOR.
  2048. ERSI DIS 6,**** EQUIPMENT STATUS INCORRECT.
  2049. ERIU DIS 6,**** INTRODUCED UNIT IN USE.
  2050. ERUN DIS 6,**** ERROR IN UNIT LIST.
  2051. LOC *O
  2052. ERRNZ ERBL
  2053. TKEY SPACE 4,10
  2054. ** TKEY - TABLE OF KEYWORDS.
  2055. *
  2056. * ENTRY 42/ KEYWORD,18/ PRO
  2057. * KEYWORD =
  2058. * PRO = PROCESSOR ADDRESS.
  2059.  
  2060.  
  2061. TKEY EQU *-1
  2062.  
  2063. DUP KYMX+1,1
  2064. CON 0
  2065.  
  2066. LIST G
  2067. KEY HERE
  2068. LIST *
  2069. ORG TKEY+KYMX+1
  2070. CON 0 END OF TABLE
  2071. TITLE DISPLAY BUFFER.
  2072. * DISPLAY AREA DATA.
  2073.  
  2074.  
  2075. KL VFD 24/KBUF,18/DSB,18/DSA SCREEN CONTROL WORD
  2076. DATA 10H
  2077. KBUF BSSZ 8 KEYBOARD BUFFER
  2078. NOREF K
  2079. SPACE 4,10
  2080. * LEFT SCREEN DISPLAY BUFFER.
  2081.  
  2082.  
  2083. DSA VFD 10/0,1/0,1/0,48/0 64 CHARACTERS/LINE, FORMATTED
  2084.  
  2085.  
  2086. KDL 18,T,(MASS STORAGE FAILURE RECOVERY)
  2087. KDL 1,K,(CURRENT EQUIPMENT CONFIGURATION)
  2088. DSCC EQU *
  2089. KDL 4,K,(12. DQ-3 CH20,21 UL= 40 41 42 -- -- -- -- -- ST = ----)
  2090. K SET K+2 SKIP TWO LINES
  2091. KDL 1,K,(REQUESTED EQUIPMENT CONFIGURATION)
  2092. DSRC EQU *
  2093. KDL 4,K,(12. DQ-3 CH20,21 UL= 47 41 42 -- -- -- -- -- ST = ----)
  2094. DSAB EQU *
  2095. KDL 8,K,( CHANGED UNITS * )
  2096. K SET K+2 SKIP TWO LINES
  2097. KDL 1,K,(IDLED EQUIPMENTS)
  2098. DSAE EQU *
  2099. DUP KEQL,1
  2100. KDL 4,K,( )
  2101. MSG1 EQU *+1
  2102. KDL 1,M,( )
  2103. MSG2 EQU *+1
  2104. KDL 1,I,( )
  2105. CON 0 END OF DISPLAY
  2106. DSB SPACE 4,10
  2107. * RIGHT SCREEN DISPLAY BUFFER.
  2108.  
  2109.  
  2110. DSB VFD 10/0,1/0,1/0,48/0 64 CHARACTERS/LINE, FORMATTED
  2111.  
  2112. KDL 1,T,(K DISPLAY COMMANDS)
  2113. DSAA EQU *
  2114. DUP KCML,1
  2115. KDL 1,K,(
  2116. , )
  2117. CON 0 END OF DISPLAY
  2118. SPACE 4,10
  2119. * LINE SKELETONS.
  2120.  
  2121.  
  2122. NONE DATA 10HNONE.
  2123. BLKL DATA 64L
  2124. TITLE COMMON DECKS.
  2125. ** COMMON DECKS.
  2126.  
  2127.  
  2128. *CALL COMCCIO
  2129. *CALL COMCCOD
  2130. *CALL COMCCPM
  2131. *CALL COMCDXB
  2132. *CALL COMCLFM
  2133. *CALL COMCMVE
  2134. *CALL COMCRSB
  2135. *CALL COMCSYS
  2136. *CALL COMCUSB
  2137. *CALL COMCWTC
  2138. *CALL COMCWTW
  2139. *CALL COMCZTB
  2140. TITLE BUFFERS.
  2141. USE LITERALS
  2142.  
  2143.  
  2144. * BUFFERS.
  2145.  
  2146.  
  2147. SSJ= BSSZ SSJL
  2148. CHTB EQU * CHANNEL STATUS TABLE BUFFER
  2149. ESTB EQU CHTB+CTALL EST BUFFER
  2150. MSTC EQU ESTB+ESTE*ESMX CURRENT EQUIPMENT MST
  2151. MSTB EQU MSTC+MSTL MST READ BUFFER
  2152. OBUF EQU MSTB+MSTL OUTPUT BUFFER
  2153. BUFL EQU OBUF+OBUFL END OF BUFFERS
  2154. RFL= EQU BUFL+10B
  2155. PRS TITLE PRESET.
  2156. ** PRS - PRESET.
  2157. *
  2158. * EXIT (NPPU) = NUMBER OF PPUS.
  2159. * (ESTA) = EST ADDRESS.
  2160. * (MMFF) .NE. 0 IF MMF MODE.
  2161. *
  2162. * USES A - 1, 6.
  2163. * X - 0, 1, 2, 3, 5, 6.
  2164. *
  2165. * CALLS PRK.
  2166. *
  2167. * MACROS ABORT, EREXIT, GETLCW, MESSAGE.
  2168.  
  2169.  
  2170. PRS SUBR ENTRY/EXIT
  2171. EREXIT END1
  2172.  
  2173. * CHECK NUMBER OF ARGUMENTS.
  2174.  
  2175. SX5 PRSA * USER ACCESS NOT VALID.*
  2176. SA1 SSJ= CHECK SUBSYSTEM ID
  2177. MX0 -12
  2178. BX1 -X0*X1
  2179. SX6 X1-MSSI
  2180. NZ X6,PRS1 IF USER ACCESS NOT VALID
  2181. SA1 ACTR CHECK NUMBER OF ARGUMENTS
  2182. SX5 PRSB * INCORRECT COMMAND.*
  2183. MX0 -18
  2184. BX2 -X0*X1
  2185. ZR X2,PRS2 IF NO ARGUMENTS
  2186. PRS1 MESSAGE X5
  2187. ABORT
  2188.  
  2189. * GET NUMBER OF PPUS IN SYSTEM.
  2190.  
  2191. PRS2 GETLCW 1,PPUL,NPPU
  2192. MX0 -12
  2193. LX1 -24
  2194. BX6 -X0*X1
  2195. SA6 A1
  2196.  
  2197. * GET NUMBER OF MASS STORAGE EQUIPMENTS AND SET EST ADDRESS.
  2198.  
  2199. GETLCW 1,ESTP,ESTA
  2200.  
  2201. * SET MULTI-MAINFRAME STATUS.
  2202.  
  2203. GETLCW 1,MMFL,MMFF
  2204. AX1 36
  2205. BX6 -X0*X1
  2206. SA6 A1+
  2207. SX3 PRSD
  2208. RJ PRK PRESET K-DISPLAY BUFFER
  2209. EQ PRSX RETURN
  2210.  
  2211. PRSA DATA C* USER ACCESS NOT VALID.*
  2212. PRSB DATA C* INCORRECT COMMAND.*
  2213. PRSC CON 0 *GETQP* BUFFER WORD
  2214. PRSD KDL * Y-COORDINATE TABLE
  2215.  
  2216. PRK HERE REMOTE BLOCK FROM *COMCDCP*
  2217. SPACE 4
  2218. END