Table of Contents

MSI

Table Of Contents

  • [00012] MSI - MASS STORAGE DEVICE INITIALIZATION.
  • [00014] MASS STORAGE DEVICE INITIALIZATION.
  • [00018] MASS STORAGE DEVICE INITIALIZATION.
  • [00301] MACROS.
  • [00305] CLEAR - CLEAR STORAGE.
  • [00325] ERROR - DISPLAY KEYBOARD ERROR MESSAGE.
  • [00338] KEYMES - DISPLAY KEYBOARD MESSAGE.
  • [00380] ASSEMBLY CONSTANTS.
  • [00388] DISPLAY BUFFER LINE NUMBER TABLES.
  • [00390] PARAMETER HOLD AREA.
  • [00548] MAIN LOOP.
  • [00549] MAIN PROGRAM.
  • [00770] AUXILIARY PROCESSORS.
  • [00772] RERUN - RERUN *MSI*.
  • [00782] TKL - TRACK LIMIT PROCESSING.
  • [00860] MAJOR PROCESSORS.
  • [00862] REQ - REQUEST EST ORDINAL.
  • [00913] DSP - DISPLAY EST ORDINALS.
  • [00971] CPY - COPY MST PARAMETERS TO DISPLAY BLOCK.
  • [01110] PPM - PROCESS PARAMETERS.
  • [01402] CPN - CHECK PACKNAMES.
  • [01456] ALP - ALLOCATE PACKS.
  • [01565] UMS - UPDATE MASS STORAGE.
  • [01753] TUMS - TABLE OF MST UPDATING PARAMETERS.
  • [01771] EDF - SEPARATE FAMILY FROM OTHER MASS STORAGE.
  • [01828] CMS - CHECK MASK AND DEVICE NUMBER.
  • [01942] CRE - CHECK REQUIRED ENTRIES.
  • [01976] EDD - EDIT DEVICE TRTS.
  • [02019] ECT - EDIT CATALOGS.
  • [02078] ABT - ABORT JOB.
  • [02138] OCT - OPEN CATALOG.
  • [02232] ACT - ADVANCE CATALOG TRACK.
  • [02282] RDC - READ CATALOG.
  • [02314] SFF - SEARCH FOR FILES.
  • [02426] WTC - WRITE CATALOG BUFFER TO DISK.
  • [02451] SUBROUTINES.
  • [02453] ALD - ALLOCATE *LDAM* DEVICES.
  • [02556] AUL - ASSEMBLE UNIT LIST.
  • [02604] BPT - BUILD MST UPDATING PARAMETER TABLE.
  • [02675] CIR - CHECK INITIALIZATION REQUESTED.
  • [02761] CMC - CHECK MODE CHANGE.
  • [02819] DIO - DISPLAY INITIALIZE OPTIONS.
  • [02901] DTY - GET PARAMETERS FOR DEVICE TYPE.
  • [02937] ISF - INITIALIZE SPECIAL FILES.
  • [03038] MTW - MOVE THREE WORDS TO DISPLAY LINE.
  • [03077] PMC - PROCESS MODE CHANGE.
  • [03159] PTY - PROCESS TYPE.
  • [03218] SAL - SET ACCESS LEVEL DEFAULTS.
  • [03262] PRS - PRESET PROGRAM.
  • [03363] K DISPLAY KEYBOARD MESSAGES
  • [03426] KEYBOARD INPUT PROCESSOR.
  • [03428] PKI - PROCESS KEYBOARD INPUT.
  • [03528] RPT - RESTORE POINTERS.
  • [03550] SPT - SAVE POINTERS.
  • [03576] PROCESS FLAW ENTRIES
  • [03577] CFE - CHECK FOR FLAW ENTRY.
  • [03708] RPA - RETRIEVE PARAMETERS.
  • [03772] FMD - FLAW LARGE MEMORY DEVICES.
  • [03802] FRD - FLAW ROTATING MASS STORAGE DEVICES.
  • [03881] TDTY - TABLE OF DEVICE TYPE PARAMETERS.
  • [03915] TPHY - PHYSICAL DESCRIPTOR TABLE.
  • [03945] COMMON DECKS.
  • [03982] SYS= - PROCESS SYSTEM REQUEST.
  • [04013] KEYBOARD PROCESSOR.
  • [04015] KIP - KEYBOARD PROCESSOR.
  • [04119] CDC - CLEAR K-DISPLAY ENTRIES.
  • [04159] K-DISPLAY LINE NUMBERS.
  • [04256] BUFFERS AND FLAGS

Source Code

MSI.txt
  1. IDENT MSI,ORIG
  2. ABS
  3. SST
  4. ENTRY MSI
  5. ENTRY FLAW
  6. ENTRY RFL=
  7. ENTRY SSJ=
  8. ENTRY UTL=
  9. SYSCOM B1
  10. *COMMENT MSI - MASS STORAGE DEVICE INITIALIZATION.
  11. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  12. TITLE MSI - MASS STORAGE DEVICE INITIALIZATION.
  13. SPACE 4
  14. *** MSI - MASS STORAGE DEVICE INITIALIZATION.
  15. * D. A. HIVELEY. 72/09/27.
  16. * S.L. BETH. 73/01/23.
  17. SPACE 4
  18. *** MSI - MASS STORAGE DEVICE INITIALIZATION.
  19. *
  20. * THE FOLLOWING PARAMETERS MAY BE ENTERED VIA
  21. * THE K-DISPLAY.
  22. *
  23. * FM = FAMILY NAME / PACK NAME (DEPENDS ON *TY* VALUE).
  24. * PN = FAMILY NAME / PACK NAME (DEPENDS ON *TY* VALUE).
  25. * UN = USER NAME (FOR PRIVATE AUXILIARY PACK ONLY).
  26. * DM = DEVICE MASK.
  27. * SM = SECONDARY MASK.
  28. * NC = NUMBER OF CATALOG TRACKS.
  29. * NP = NUMBER OF PACKS.
  30. * DN = DEVICE NUMBER.
  31. * TY = TYPE
  32. * F = FAMILY DEVICE.
  33. * X = AUXILIARY DEVICE.
  34. * LA = LOWER BOUND ACCESS LEVEL.
  35. * UA = UPPER BOUND ACCESS LEVEL.
  36. *
  37. * ENTER XX=0. TO CLEAR ANY OF THE ENTRIES LISTED ABOVE.
  38. * ENTER XX=NULL. TO CLEAR THE FIELD IN THE MST (UN ONLY).
  39. *
  40. * EQ = EST ORDINAL. THIS OPTION IS ONLY VALID FOR *FLAW*
  41. * PROCESSING.
  42. *
  43. * NOTE IT IS NECESSARY TO USE THE DSD/EQPDECK *INITIALIZE*
  44. * ENTRY TO SELECT DEVICES AND OPTIONS TO BE INITIALIZED.
  45. * DEVICE CHARACTERISTICS CAN ONLY BE CHANGED DURING
  46. * *AL*, *FT*, OR *HT* INITIALIZATION. IF THE *FP*
  47. * OPTION IS SELECTED, INITIALIZATION WAITS FOR THE
  48. * DEVICE TO BE FORMATTED.
  49. *
  50. * THE FOLLOWING FLAW DIRECTIVES CAN ONLY BE ENTERED VIA
  51. * THE K-DISPLAY.
  52. *
  53. * SLF = SET LOGICAL TRACK FLAW ON *EQ*.
  54. * CLF = CLEAR LOGICAL TRACK FLAW ON *EQ*.
  55. * SPF = SET PHYSICAL TRACK FLAW ON *EQ*.
  56. * CPF = CLEAR PHYSICAL TRACK FLAW ON *EQ*.
  57. *
  58. * DEFAULT VALUES ARE -
  59. *
  60. * FM = NO NAME NC = (DEVICE DEPENDENT - SEE *COMSMSP*)
  61. * UN = NO NAME EQ = 0
  62. * DM = 0 NP = 0
  63. * TY = 0 DN = 1
  64. * LA = VALUE CONTAINED IN EST.
  65. * UA = VALUE CONTAINED IN EST.
  66. *
  67. * ********************
  68. *
  69. * IT SHOULD BE NOTED THAT MSI INITIALIZES WITH THE NEW
  70. * PARAMETER INPUT. THEREFORE IF A FAMILY MASK OR DEVICE
  71. * NUMBER IS CHANGED THE RESULTANT EDIT OF THE OTHER DEVICES
  72. * IN THE FAMILY MAY MISS SOME FILES LEAVING THE SPACE
  73. * RESERVED BUT WITH NO CATALOG ENTRIES POINTING TO THE FILES.
  74. * TO AVOID THIS SITUATION, FIRST PERFORM AN INITIALIZE OF THE
  75. * DEVICE WITH ITS OLD PARAMETERS TO CLEAN UP THE FAMILY,
  76. * THEN REINITIALIZE WITH THE NEW PARAMETERS.
  77. *
  78. * ********************
  79. *
  80. *
  81. *
  82. * THE *FM* PARAMETER WILL BE CONSIDERED A PACK NAME IF THE
  83. * DEVICE IS AN AUXILIARY DEVICE (*TY=X*).
  84. *
  85. * BEFORE ENTERING PARAMETERS CHECK THE K DISPLAY FOR
  86. * THE LIST OF EQUIPMENTS TO BE INITIALIZED, IF THE LIST
  87. * IS NOT COMPLETE ENTER THE INITIALIZE REQUESTS FOR THE
  88. * OTHER EQUIPMENTS AND ENTER *RERUN* TO UPDATE MSI.
  89. *
  90. * THE DEVICE WHICH IS TO BE INITIALIZED MUST FULFILL
  91. * CERTAIN REQUIRMENTS. IF THE DEVICE IS AVAILABLE AND/OR
  92. * HAS NO LABEL ERROR STATUS, IT MUST BE THE FIRST EQUIPMENT IN
  93. * THE CHAIN. *MSI* WILL NOT ALLOW A CHAINED EQUIPMENT TO BE
  94. * SPLIT IN THE MIDDLE OF THE CHAIN (SUCH AS INITIALIZING THE
  95. * THIRD UNIT IN A FOUR DEVICE CHAIN). DEVICES WHICH ARE TO BE
  96. * CHAINED TOGETHER AND ARE AVAILABLE AND/OR HAVE RECOVERED
  97. * LABELS, MUST HAVE THE INITIALIZE REQUESTS SET FOR EACH
  98. * EST ORDINAL IN THE CHAIN.
  99. *
  100. * THE INPUT TO THE FLAW ROUTINE IS CONSIDERED OCTAL
  101. * UNLESS THE DIGITS 8 OR 9 APPEAR IN THE NUMBER, OR
  102. * THE RADIX SYMBOL *D* IS APPENDED TO THE NUMBER.
  103. SPACE 4
  104. *** DAYFILE MESSAGES.
  105. *
  106. * * EQXXX, ACTIVE FILES, CANNOT INITIALIZE.*
  107. *
  108. * * EQXXX, INACTIVE QUEUES INITIALIZED.*
  109. *
  110. * * EQXXX, UNABLE TO INITIALIZE IQFT.*
  111. *
  112. * * USER ACCESS NOT VALID.*
  113. *
  114. * * INTERNAL ERROR IN MSI.*
  115. *
  116. * * IQFT FILE INTERLOCKED.*
  117. *
  118. * * LINK DEVICE CANNOT BE ALTERED.*
  119. *
  120. * * MSI ABORTED INITIALIZE MAY NOT BE COMPLETE.*
  121. *
  122. * * NO INITIALIZE REQUESTS SET FOR MSI.*
  123. *
  124. * * NO IQFT FILE FOUND.*
  125. *
  126. * * UNABLE TO READ IQFT FILE.*
  127. *
  128. * * MSI HUNG.*
  129. SPACE 4
  130. *** OPERATOR MESSAGES.
  131. *
  132. * *ENTER OLD PACK NAME* THIS INPUT MUST MATCH THE
  133. * OLD PACKNAME TO CONTINUE.
  134. *
  135. * *ENTER OLD FAMILY NAME* MUST BE ENTERED TO CONTINUE.
  136. *
  137. * *ENTER OLD USER NAME.* MUST BE ENTERED TO CONTINUE.
  138. *
  139. * *ENTER OLD DEVICE NUMBER* MUST BE ENTERED TO CONTINUE.
  140. *
  141. * *ENTER EST ORDINAL.* ENTER THE EST ORDINAL OF THE DEVICE
  142. * TO BE FLAWED OR INITIALIZED. THIS IS THE ONLY INPUT
  143. * WHICH WILL BE ACCEPTED AT THIS POINT.
  144. *
  145. * *ENTER PARAMETERS* ENTER ANY LEGAL PARAMETERS, THEN
  146. * ENTER *GO* TO PROCESS THE PARAMETERS.
  147. *
  148. * *ENTER FLAWS* ENTER ALL FLAWS FOR THE CURRENT EQUIPMENT,
  149. * ENTER *GO* TO PROCESS THE FLAWS. FLAWS MAY ALSO
  150. * BE ENTERED DURING AN INITIALIZE RUN.
  151. *
  152. * *ENTER IDENTITY OF EQXXX.* THE CURRENT DEVICE IS GOING TO
  153. * BE CHAINED TO ANOTHER DEVICE. TO VERIFY ITS
  154. * AVAILABILITY ENTER ITS (PACKNAME AND USER NAME),
  155. * (PACKNAME), (FAMILY NAME) OR (FAMILY NAME AND
  156. * DEVICE NUMBER) THE ORDER OF ENTRY IS NOT IMPORTANT.
  157. * THE ID ENTRIES MUST BE MADE TO CONTINUE PROCESSING.
  158. *
  159. * *END OF RUN* MSI COMPLETED REQUESTED FUNCTIONS.
  160. *
  161. * *ENTER CLEAR OR RERUN.* MSI WILL ONLY ACCEPT THE COMMANDS
  162. * *CLEAR* AND *RERUN* AT THIS TIME.
  163. *
  164. SPACE 4
  165. *** OPERATOR ERROR MESSAGES.
  166. *
  167. * *UN MUST BE SPECIFIED.* DEVICE IS FLAGGED AS PRIVATE
  168. * THE USER NAME MUST BE SPECIFIED OR THE
  169. * PACK NAME CLEARED.
  170. *
  171. * *NC IS NOT A POWER OF 2.* THE NUMBER OF CATALOG TRACKS
  172. * MUST BE A POWER OF 2. CORRECT AND ENTER *GO*.
  173. *
  174. * *FAMILY MASK NOT EQUAL TO 377.* THE DEVICE MASK FOR THE
  175. * FAMILY DOES NOT EQUAL 377B, CORRECT AND ENTER
  176. * *GO* OR ENTER *GO* TO OVERRIDE. THIS IS THE ONLY
  177. * INPUT ACCEPTED AT THIS TIME.
  178. *
  179. * *EQ OR DN INCORRECT.* EST ORDINAL TOO BIG, DEVICE SPECIFIED
  180. * IS NOT MASS STORAGE, OR DEVICE NUMBER .GT. 77B WAS
  181. * SPECIFIED. CORRECT AND ENTER *GO.*.
  182. *
  183. * *EQXXX, NO FULL TRACK ACCESS.* INDICATES AN ATTEMPT TO
  184. * INITIALIZE WITH *OP=FT* AND NO FULL TRACK ACCESS
  185. * EXISTS. ENTER *CLEAR* TO CLEAR THE INITIALIZE REQUEST
  186. * OR *GO* TO INITIALIZE AS A HALF TRACK DEVICE.
  187. *
  188. * *INCORRECT ENTRY.* INPUT NOT ALLOWED - INCORRECT FORMAT OF
  189. * INPUT LINE OR MODIFICATION OF A TRACK RESERVED FOR
  190. * HARDWARE TESTING WAS ATTEMPTED.
  191. *
  192. * *FM OR PN MUST BE SPECIFIED.* ENTER THE REQUIRED
  193. * PARAMETER AND ENTER *GO*.
  194. *
  195. * *NP GREATER THAN 8.* ENTER CORRECT NUMBER OF PACKS THEN
  196. * ENTER *GO*.
  197. *
  198. * *DUPLICATE PN.* ANOTHER PACK IN THE SYSTEM HAS THE SAME
  199. * NAME. CHANGE THE PACKNAM OR REMOVE THE OTHER
  200. * DEVICE FROM THE SYSTEM (IF THIS IS DONE *CMS* MUST
  201. * RUN TO UPDATE THE MST TABLES).
  202. *
  203. * *NC EXCEEDS 200B.* THE NUMBER OF CATALOG TRACKS EXCEEDS
  204. * 200B. CORRECT AND ENTER *GO*.
  205. *
  206. * *CANNOT ALLOCATE DEVICE.* CANNOT ALLOCATE A MULTI-SPINDLE
  207. * DEVICE, NOT ENOUGH SPARE EQUIPMENT OR SPARES
  208. * NOT UP AND ALLOCATABLE OR AN ATEMPT WAS MADE TO
  209. * ALLOCATE A NONREMOVABLE DEVICE. DECREASE THE PACK
  210. * COUNT AND ENTER *GO* OR ENTER *CLEAR* TO VOID MSI RUN.
  211. *
  212. * *NOT AUXILIARY PACK.* ATTEMPT TO MAKE A PRIVATE PACK OUT
  213. * OF A NONAUXILIARY DEVICE. CORRECT AND ENTER *GO*.
  214. *
  215. * *DUPLICATE DN.* DEVICE NUMBER MATCHES ANOTHER IN THE
  216. * FAMILY CORRECT AND ENTER *GO* OR OVERRIDE BY
  217. * ENTERING *GO*. THIS IS THE ONLY INPUT ACCEPTED AT
  218. * THIS TIME. THE OVERRIDE IS ONLY ALLOWED IF THE
  219. * CONFLICTING DEVICE HAS THE FULL INITIALIZE STATUS SET.
  220. *
  221. * *DEVICE NOT REMOVABLE.* A NONREMOVABLE DEVICE WAS
  222. * SELECTED FOR CHAINING IN A MULTIPACK STRING.
  223. * ENTER *CLEAR* TO VOID THE MSI RUN.
  224. *
  225. * *NP NOT ALLOWED.* THE EQUIPMENT IS NOT A PACK TYPE
  226. * DEVICE. CORRECT AND ENTER *GO*.
  227. *
  228. * *DUPLICATE BITS IN MASK.* THE MASK FOR THE FAMILY HAS
  229. * DUPLICATE BITS SET, THIS DESTROYS THE INTEGRITY OF
  230. * THE PF SYSTEM BY CREATING AN AMBIGUOUS MAPING OF THE
  231. * USER INDEX. CORRECT AND ENTER *GO* OR ENTER *GO* TO
  232. * OVERRIDE. THIS IS THE ONLY INPUT ACCEPTED AT THIS
  233. * TIME. THE OVERRIDE IS ONLY ALLOWED IF THE CONFLICTING
  234. * DEVICE HAS THE FULL INITIALIZE STATUS SET.
  235. *
  236. * *DEVICE NOT FIRST IN CHAIN.* TO PREVENT DESTROYING THE
  237. * INTEGRITY OF A LINKED DEVICE INITIALIZATION WILL ONLY
  238. * TAKE PLACE ON AN AVAILABLE DEVICE IF IT IS THE FIRST
  239. * DEVICE IN THE CHAIN. THE ONLY INPUT ACCEPTED AT THIS
  240. * TIME IS *RERUN* OR *CLEAR*.
  241. *
  242. * *EQXXX, INITIALIZE BIT NOT SET.* EQXXX IS AVAILABLE AND HAS
  243. * A GOOD LABEL, IT CANNOT BE LINKED TO ANOTHER EQUIPMENT
  244. * UNLESS THE TOTAL INITIALIZE REQUEST IS SET. ENTER DSD
  245. * COMMAND *INITIALIZE,AL,XXX.*, THEN ENTER *K.RERUN.* TO
  246. * UPDATE THE STATUS OF MSI, OR ENTER *CLEAR*
  247. * TO VOID THE MSI RUN.
  248. *
  249. * *DN CANNOT BE ZERO.* A (DN = 0) WAS ENTERED TO CLEAR A
  250. * DUPLICATE DEVICE NUMBER ERROR. THE DN CANNOT BE ZERO
  251. * FOR A FAMILY TYPE DEVICE. ENTER A NONZERO VALUE
  252. * TO CONTINUE OR ENTER *GO* TO OVERRIDE THE ERROR.
  253. *
  254. * *EQXXX, FORMAT PENDING.* EQXXX HAS THE FORMAT PENDING BIT
  255. * SET AND CANNOT BE PROCESSED UNTIL FORMATTING IS
  256. * COMPLETE.
  257. *
  258. * *DEADSTART INITIALIZE REQUIRED.* THE PENDING INITIALIZE IS
  259. * FOR A NONREMOVABLE DEVICE WITH ERROR IDLE OR A LABEL
  260. * ERROR STATUS. THIS ERROR STATUS REQUIRES A DEADSTART
  261. * INITIALIZE.
  262. *
  263. * *DEFINED DEVICE ALREADY EXISTS.* THE DEVICE AS DEFINED
  264. * ALREADY EXISTS IN THE MULTI-MAINFRAME ENVIRONMENT.
  265. * IF THIS IS AN AUXILIARY DEVICE CHANGE THE PACKNAME
  266. * OR REMOVE THE OTHER PACK FROM THE COMPLEX. IF A
  267. * FAMILY DEVICE CHANGE THE DEVICE NUMBER TO A UNIQUE
  268. * VALUE FOR THIS FAMILY.
  269. *
  270. * *FULL INITIALIZE REQUIRED.* THE PENDING INITIALIZE IS FOR
  271. * A DEVICE WITH AN ERROR STATUS SET. THIS DEVICE MUST
  272. * BE INITIALIZED WITH A FULL INITIALIZE REQUEST.
  273. *
  274. * *EQXXX, TRACK LIMIT.* INSUFFICIENT SPACE ON THE DEVICE TO
  275. * COMPLETE THE INITIALIZATION. FREE UP SPACE AND ENTER
  276. * *RERUN* OR ENTER *CLEAR*. IF THIS ERROR OCCURS
  277. * DURING DEADSTART, REDEADSTART AND CHECK EQUIPMENT
  278. * USAGE IN THE *CMRDECK*.
  279. *
  280. * *UA NOT WITHIN LIMIT.* THE UPPER BOUND ACCESS LEVEL
  281. * EXCEEDS THAT CONTAINED IN THE EST. CORRECT AND
  282. * ENTER *GO*.
  283. *
  284. * *LA NOT WITHIN LIMIT.* THE LOWER BOUND ACCESS LEVEL
  285. * IS SMALLER THAN THAT CONTAINED IN THE EST. CORRECT
  286. * AND ENTER *GO*.
  287. *
  288. * *LA GREATER THAN UA.* THE LOWER ACCESS LEVEL LIMIT
  289. * IS GREATER THAN THE UPPER LIMIT. CORRECT AND
  290. * ENTER *GO*.
  291. *
  292. * *UNKNOWN ACCESS LEVEL NAME.* THE ACCESS LEVEL NAME
  293. * ENTERED IS INCORRECT. CORRECT AND ENTER *GO*.
  294. *
  295. * TO HALT PROCESSING ON THE CURRENT EQUIPMENT ENTER *CLEAR*
  296. * THE CURRENT INITIALIZE REQUEST WILL BE CLEARED AND MSI WILL
  297. * ADVANCE TO THE NEXT DEVICE WITH AN INITIALIZE REQUEST UP.
  298. *
  299. * TO CLEAR ALL PARAMETER INPUT WITHOUT CLEARING THE INITIALIZE
  300. * REQUEST ENTER *RERUN*.
  301. TITLE MACROS.
  302. *CALL COMCMAC
  303. *CALL COMCDCM
  304. CLEAR SPACE 4
  305. ** CLEAR - CLEAR STORAGE.
  306. *
  307. * CLEAR FWA,COUNT,MASK
  308. *
  309. * IF *MASK* IS *X7* IT IS ASSUMED THAT (X7) = 0.
  310.  
  311.  
  312. PURGMAC CLEAR
  313. CLEAR MACRO L,C,M
  314. LOCAL A
  315. MACREF CLEAR
  316. IFNE M,X7,1
  317. MX7 0
  318. R= B2,L
  319. R= B3,L+C
  320. A SA7 B2
  321. SB2 B2+B1
  322. NE B2,B3,A
  323. ENDM
  324. ERROR SPACE 4
  325. ** ERROR - DISPLAY KEYBOARD ERROR MESSAGE.
  326. *
  327. * ERROR NUMBER
  328.  
  329.  
  330. PURGMAC ERROR
  331. ERROR MACRO N
  332. MACREF ERROR
  333. .N MICRO 1,,*N*
  334. SA1 ERROR".N"
  335. RJ MTW
  336. ENDM
  337. SPACE 4
  338. ** KEYMES - DISPLAY KEYBOARD MESSAGE.
  339. *
  340. * KEYMES MES
  341.  
  342.  
  343. PURGMAC KEYMES
  344. MACREF KEYMES
  345. KEYMES MACRO N
  346. SA1 N
  347. RJ MTW
  348. ENDM
  349. SPACE 4,10
  350. ** COMMON DECKS.
  351.  
  352.  
  353. *CALL COMSDSL
  354. *CALL COMSDSP
  355. *CALL COMSESS
  356. *CALL COMSIOQ
  357. *CALL COMSLSD
  358. *CALL COMSMLS
  359. LIST X
  360. *CALL COMSMSI
  361. LIST *
  362. *CALL COMSMSP
  363. *CALL COMSMST
  364. *CALL COMSPFM
  365. *CALL COMSPRD
  366. QUAL PFU
  367. *CALL COMSPFU
  368. QUAL *
  369. CTCT EQU /PFU/CTCT
  370. CTCU EQU /PFU/CTCU
  371. CTLM EQU /PFU/CTLM
  372. CTOP EQU /PFU/CTOP
  373. CTSU EQU /PFU/CTSU
  374. FTCA EQU /PFU/FTCA
  375. FTPM EQU /PFU/FTPM
  376. FTSC EQU /PFU/FTSC
  377. *CALL COMSSFM
  378. *CALL COMSSSD
  379. *CALL COMSSSJ
  380. TITLE ASSEMBLY CONSTANTS.
  381. SPACE 4,5
  382. * TABLE AND BUFFER SIZES.
  383.  
  384. PKLL EQU 10B LENGTH OF PACK LINK TABLE
  385. CATBL EQU 1011B CATALOG BUFFER LENGTH
  386. SCRBL EQU 201B SCRATCH BUFFER LENGTH
  387. PARAML EQU 40B PARAMETER AREA LENGTH
  388. TITLE DISPLAY BUFFER LINE NUMBER TABLES.
  389. SPACE 4
  390. TITLE PARAMETER HOLD AREA.
  391. ORG 106B
  392. ORIG BSS 1 COMMAND NAME (FOR *UPC*)
  393. PAR BSS PARAML PARAMETER AREA
  394. SPACE 4
  395. * OPTION TABLE.
  396.  
  397. OTBL EQU *
  398. LOC 0
  399. PMFN BSS 1 FAMILY NAME
  400. PMUN BSS 1 USER NAME
  401. PMID BSS 1 ID ENTRY
  402. BSS 1
  403. PMTY BSS 1 TYPE ENTRY
  404. PMLA BSS 1 LOWER ACCESS LEVEL
  405. PMUA BSS 1 UPPER ACCESS LEVEL
  406. NNME EQU *-PMFN
  407. PMDM BSS 1 DEVICE MASK
  408. PMSM BSS 1 SECONDARY MASK
  409. PMNC BSS 1 NUMBER CATALOG TRACKS
  410. PMNP BSS 1 NUMBER OF PACKS
  411. PMDN BSS 1 DEVICE NUMBER
  412. PMEQ BSS 1 EST ORDINAL
  413. PMOP BSS 1 OPTION
  414. PMXX BSS 1 GARBAGE INPUT
  415. NOCT EQU *-PMDM
  416. LOC *O
  417. OTBLL EQU *-OTBL OPTION TABLE LENGTH
  418. ORG OTBL
  419. SPACE 4
  420. * TENP - TABLE OF ENTERED PARAMETERS.
  421.  
  422.  
  423. TENP BSS 0
  424. BSS OTBLL
  425. SPACE 4
  426. * PARC - TABLE OF CONVERTED PARAMETERS.
  427.  
  428.  
  429. PARC BSS 0 42/FN,18/0
  430. BSSZ OTBLL 42/UI,18/0
  431. 42/ID,18/0
  432. 42/ID,18/0
  433. 06/TY,54/0
  434. 42/LA,18/0
  435. 42/UA,18/0
  436. 52/0,8/DM
  437. 52/0,8/SM
  438. 57/0,3/NC
  439. 57/0,3/NP
  440. 54/0,6/DN
  441. 54/0,6/EQ
  442. 57/0,3/OP
  443. 60/TRASH
  444. SPACE 4
  445. * TARG - ARGUMENT TABLE.
  446.  
  447.  
  448. TARG BSS 0
  449. FM ARG DARG,(TENP+PMFN),400B
  450. PN ARG DARG,(TENP+PMFN),400B
  451. UN ARG DARG,(TENP+PMUN),400B
  452. TY ARG DARG,(TENP+PMTY),400B
  453. ENLA BSS 0
  454. LA ARG DARG,(TENP+PMLA),400B
  455. ENUA BSS 0
  456. UA ARG DARG,(TENP+PMUA),400B
  457. DM ARG DARG,(TENP+PMDM),400B
  458. SM ARG DARG,(TENP+PMSM),400B
  459. NC ARG DARG,(TENP+PMNC),400B
  460. NP ARG DARG,(TENP+PMNP),400B
  461. DN ARG DARG,(TENP+PMDN),400B
  462. DARG BSSZ 1 DEFAULT ENTRY
  463. ENDP BSS 0
  464. OP ARG DARG,(TENP+PMOP),400B
  465. BSSZ 1
  466. ENEQ BSS 0
  467. EQ ARG DARG,(TENP+PMEQ),400B
  468. BSSZ 1
  469. ENMS BSS 0
  470. DM ARG DARG,(TENP+PMDM),400B
  471. NC ARG DARG,(TENP+PMNC),400B
  472. BSSZ 1
  473. ENDN BSS 0
  474. DN ARG DARG,(TENP+PMDN),400B
  475. BSSZ 1
  476. EIDS BSS 0
  477. FM ARG DARG,(TENP+PMID),400B
  478. PN ARG DARG,(TENP+PMID),400B
  479. UN ARG DARG,(TENP+PMID+1),400B
  480. DN ARG DARG,(TENP+PMID+1),400B
  481. BSSZ 1
  482. HNGP BSS 0
  483. XX ARG DARG,(TENP+PMXX),400B
  484. BSSZ 1
  485. DATB SPACE 4,10
  486. * DATB - DISPLAY ADDRESS TABLE.
  487.  
  488.  
  489. DATB BSS 0 DISPLAY ADDRESS TABLE
  490. CON FNDS+1
  491. CON UNDS+1
  492. CON SCRB
  493. CON SCRB
  494. CON TYDS+1
  495. CON LADS+1
  496. CON UADS+1
  497. CON DMDS+1
  498. CON SMDS+1
  499. CON NCDS+1
  500. CON NPDS+1
  501. CON DNDS+1
  502. CON EQDS+1
  503. CON SCRB
  504. CON SCRB
  505. DAST CON LTDS+1 LEFT SCREEN ADDRESS
  506. DASM CON LTDS+3 MATCH ADDRESS FOR TRT
  507. SPACE 4
  508. FETS SPACE 4,10
  509. * FETS.
  510.  
  511.  
  512. QFET FILEB CATB,CATBL,EPR,FET=8 *QFM* FET
  513. CATS FILEB CATB,CATBL,FET=10 *PFU* FET
  514. UIFT FILEB 0,0,FET=10 *PFU* UTILITY INTERLOCK FET
  515. OUTPUT FILEC 0,0 *ABT* PROCESSOR OUTPUT FET
  516. FLAGS SPACE 4
  517. * FLAGS (CLEARED BY *PRS*).
  518.  
  519. FLGS EQU * FWA OF FLAG BLOCK
  520. TEMP BSS 1 TEMPORARY CELL
  521. FLAG BSS 1 FLAGS NO PARAMETER INPUT NEEDED
  522. PVT BSS 1 FLAGS DEVICE IS PRIVATE PACK
  523. DSI BSS 1 FLAG DEADSTART INITIALIZE
  524. TOTL BSS 1 FLAG TOTAL INITIALIZE (NEGATIVE)
  525. PALF BSS 1 PACKS ALLOCATED FLAG 12/EQ NUMBER
  526. CNT BSS 1 PARAMETER COUNT/ CATALOG TRACK COUNT
  527. LCRC BSS 1 LOW CORE READ CONTROL WORD
  528. BUFI BSS 1 INDEX TO MST RECORDS IN BUFFER
  529. ARGP BSS 1 POINTER TO CURRENT ARGUMENT TABLE
  530. PFUF BSS 1 FLAG *PFU* ACTIVE
  531. UIFL BSS 1 UTILITY INTERLOCK FLAG (PFU)
  532. LINK BSS 1 LINK EST ORDINAL
  533. CLF BSS 1 FLAG *CLEAR* REQUEST ENTERED
  534. CLOV BSS 1 *CLEAR* OVERRIDE EST ORDINAL
  535. SSFL BSS 1 SECURE SYSTEM FLAG
  536. SSID CON MSSI SUBSYSTEM ID
  537. FLGSL EQU *-FLGS LENGTH OF FLAG BLOCK
  538. SPACE 4
  539. ** TEMPORARY CELLS.
  540.  
  541.  
  542. EQ CON 0 EST ORDINAL (DISPLAY CODE)
  543. RQ CON 0 INITIALIZE REQUESTS PROCESSED
  544.  
  545. * FLAW FLAG.
  546.  
  547. FLFG CON 0 IF SET, FLAW PROCESSING
  548. TITLE MAIN LOOP.
  549. ** MSI - MAIN PROGRAM.
  550.  
  551.  
  552. MSI SB1 1
  553. EREXIT ABT1 SET ABORT PROCESSOR ADDRESS
  554. BX6 X6-X6 CLEAR FLAW FLAG
  555. SA6 FLFG
  556. MSI1 RJ PRS PRESET
  557. RJ CIR CHECK INITIALIZATION REQUESTED
  558. SA1 RQ
  559. PL B6,MSI3 IF INITIALIZATION REQUESTED
  560. NZ X1,MSI2 IF AT LEAST ONE REQUEST PROCESSED
  561. MESSAGE MESC * NO INITIALIZE REQUESTS SET FOR MSI.*
  562. MSI2 KEYMES EDRN *END OF RUN.*
  563. SYSTEM IMS,R,,CIT CLEAR *CMS* INTERLOCK
  564. EXCST =C*CMS.* CALL *CMS* TO UPDATE SYSTEM CONFIGURATION
  565. ENDRUN
  566.  
  567. * IF EQUIPMENT AVAILABLE AND NOT DEADSTART STATUS OR
  568. * IF EQUIPMENT UNAVAILABLE AND IF THE LABEL WAS RECOVERED,
  569. * REQUEST THE VERIFICATION OF THE DEVICES PARAMETERS AND COPY
  570. * THE INFORMATION TO THE K DISPLAY. OTHERWISE GO REQUEST INPUT
  571. * OF THE NEW PARAMETERS.
  572.  
  573. MSI3 SX6 X1+B1 INCREMENT REQUESTS PROCESSED
  574. SA6 A1
  575. RJ DSP DISPLAY EQUIPMENTS TO BE PROCESSED
  576. RJ DIO DISPLAY INITIALIZE OPTIONS
  577. SA5 PARC+PMEQ
  578. R= X1,ESTE
  579. IX1 X5*X1
  580. SA1 ESTB+X1+EQDE GET EST ENTRY
  581. SX7 TARG
  582. SA4 ESTF+X5
  583. SA7 ARGP
  584. SA3 X4+STLL
  585. MX6 6
  586. LX6 -18
  587. BX7 -X6*X3 CLEAR ERROR STATUS
  588. LX1 59-54
  589. SA7 X4+STLL
  590. BX3 X6*X3
  591. LX7 59-LIAL
  592. SA2 X4+PFGL
  593. NG X7,MSI4.1 IF DEADSTART INITIALIZE
  594. LX3 24
  595. AX2 12
  596. ZR X3,MSI5 IF NO ERROR STATUS
  597. SA4 TOTL
  598. NG X4,MSI4 IF FULL INITIALIZE
  599. ERROR 25 *FULL INITIALIZE REQUIRED.*
  600. EQ MSI6 HALT PROCESSING ON CURRENT DEVICE
  601.  
  602. MSI4 NZ X2,MSI7 IF RECOVERED LABEL
  603. SX6 X3-STLE
  604. NZ X6,MSI4.1 IF NOT LABEL ERROR
  605. LX1 54-56
  606. PL X1,MSI7.1 IF NOT REMOVABLE DEVICE
  607. RJ SAL SET ACCESS LEVEL DEFAULTS
  608. EQ MSI10 PROCESS KEYBOARD INPUT
  609.  
  610. MSI4.1 NG X1,MSI5 IF EQUIPMENT UNAVAILABLE
  611.  
  612. * IF INITIALIZE SET, DEVICE AVAILABLE AND DEADSTART STATUS,
  613. * INITIALIZE AND DO NOT STOP FOR OPERATOR INTERVENTION.
  614.  
  615. MX6 1
  616. BX7 X7-X7
  617. SA6 DSI FLAG DEADSTART INITIALIZE
  618. EQ MSI9 DEADSTART INITIALIZE (COPY PARAMETERS)
  619.  
  620. MSI5 SA4 ESTF+X5
  621. SA3 X4+PFGL
  622. MX1 -3
  623. AX3 3
  624. BX1 -X1*X3
  625. BX6 -X5
  626. ZR X1,MSI7 IF ONE OF M
  627. SA6 CLOV SET OVERRIDE *CLEAR* INDICATOR
  628. ERROR 18 *DEVICE NOT FIRST IN CHAIN.*
  629. MSI6 SX6 HNGP
  630. SX7 7777B
  631. SA6 ARGP
  632. SA7 CNT
  633. RJ PKI STOP FURTHER PROCESSING
  634. KEYMES ENCL *ENTER CLEAR OR RERUN.*
  635. EQ MSI6 LOOP
  636.  
  637. MSI7 SA4 ESTF+X5 CHECK STATUS OF DEVICE
  638. SA1 X4+DULL
  639. SA2 X4+ACGL
  640. SA3 X4+MDGL
  641. SA4 X4+STLL
  642. NG X3,MSI8 IF DEVICE REMOVABLE
  643. LX2 59-4
  644. PL X2,MSI8 IF ERROR IDLE NOT SET
  645. MSI7.1 ERROR 24 *DEADSTART INITIALIZE REQUIRED.*
  646. EQ MSI6 STOP PROCESSING
  647.  
  648. MSI8 MX3 -12
  649. LX4 -12
  650. BX7 -X3*X4
  651. MX3 -11
  652. BX1 -X3*X1
  653. MX0 18
  654. LX4 59-LIPF+12
  655. BX7 X7+X1
  656. SA2 CLF CHECK *CLEAR* FLAG
  657. ZR X7,MSI9 IF NO ACTIVE FILES/USERS
  658. NZ X2,CLEAR IF *CLEAR* FLAG SET
  659. PL X4,MSI9 IF NOT INITIALIZING PF,S
  660. LX0 -18
  661. SA4 EQ
  662. LX4 42-18
  663. SA1 MESA
  664. BX7 -X0*X1
  665. BX7 X7+X4
  666. SA7 A1
  667. MESSAGE MESA * EQXXX, ACTIVE FILES, CANNOT INITIALIZE.*
  668. RJ ABT ABORT *MSI*
  669.  
  670. MSI9 SA7 CLF CLEAR *CLEAR* FLAG
  671. RJ CPY COPY PARAMETERS TO K-DISPLAY
  672. SX6 B1 ALLOW FLAW ENTRIES TO NOW BE MADE
  673. SA6 CFEB
  674. SA1 DSI
  675. SA2 TOTL
  676. MI X1,MSI12 IF DEADSTART INITIALIZE
  677. PL X2,MSI12 IF NOT TOTAL INITIALIZE
  678. MSI10 SX7 200
  679. SA7 CNT
  680. KEYMES REQPM *ENTER PARAMETERS.*
  681. MSI11 RJ PKI PROCESS KEYBOARD INPUT
  682. MSI12 RJ PPM PROCESS PARAMETERS
  683. ZR X7,MSI11 IF MORE INPUT NEEDED
  684. RJ CRE CHECK REQUIRED ENTRIES
  685. ZR X6,MSI12 IF PARAMETERS TO PROCESS
  686. SA4 TOTL
  687. SA5 PARC+PMEQ
  688. NG X4,MSI12.1 IF TOTAL INITIALIZE
  689. SA4 X5+ESTF
  690. SA4 X4+STLL
  691. LX4 59-LIPF
  692. PL X4,MSI14.1 IF NOT *PF* INITIALIZE
  693. MSI12.1 BSS 0
  694. RJ UMS UPDATE MSTS
  695. ZR X1,MSI13 IF DEVICE ALLOWED
  696. KEYMES ERROR22 *DEFINED DEVICE ALREADY EXISTS.*
  697. EQ MSI11 PROCESS NEW INPUT
  698.  
  699. MSI13 RJ EDF SEPARATE FAMILY FROM OTHER EQUIPMENTS
  700. SA1 ESTF+B7
  701. SA4 X1+MDGL
  702. LX4 59-58
  703. NG X4,MSI14 IF AUXILIARY DEVICE
  704. RJ CMS CHECK MASKS
  705. MI X7,MSI12 PROCESS NEW PARAMETERS
  706. SA5 PARC+PMEQ
  707. SA1 ESTF+X5
  708. LX1 59-54
  709. NG X1,MSI14 IF DEVICE UNAVAILABLE
  710. RJ ECT EDIT CATALOGS
  711. RJ EDD EDIT DIRECT ACCESS FILES IN FAMILY
  712. MSI14 SA5 PARC+PMEQ
  713. SYSTEM IMS,R,X5,IND INITIALIZE PERMANENT FILES
  714. MSI14.1 RJ ISF INITIALIZE SPECIAL FILES
  715. SA1 FLAI
  716. SX1 X1-TFLA
  717. ZR X1,CLEAR IF NO FLAWS
  718. SA1 TFLA
  719. BX2 X5
  720. LX2 59-35
  721. BX7 X2+X1 SET EQ NUMBER IN FLAW TABLE
  722. SA7 A1 RESET TABLE WITH EQ NUMBER ADDED
  723. SYSTEM IMS,R,TFLA,SFL SET FLAWS
  724.  
  725. * CHECK FOR MORE DEVICES TO BE INITIALIZED.
  726.  
  727. CLEAR BSS 0 CLEAR INITIALIZE REQUEST
  728. SA5 PARC+PMEQ
  729. SA4 CLOV CHECK OVERRIDE ON THIS EQUIPMENT
  730. SA2 PKL-1
  731. SA1 ESTF+X5
  732. SA1 X1+STLL
  733. SX6 B1
  734. PL X4,MSI15 IF OVERRIDE NOT SET
  735. IX6 X5+X4 CHECK EQUIPMENT
  736. MSI15 MX3 60-LIRP CLEAR CURRENT INITIALIZE REQUESTS
  737. BX1 -X3*X1
  738. MX3 48-LIMF
  739. LX3 48
  740. BX7 -X3*X1
  741. SA7 A1
  742. SA1 CLF CHECK FOR CLEAR OPERATION
  743. ZR X1,MSI16 IF NOT *CLEAR*
  744. ZR X6,MSI16 IF OVERRIDE SET FOR THIS EST ORDINAL
  745. RJ EDF SEPARATE THE FAMILY FROM OTHER DEVICES
  746. RJ CMS CHECK MASKS
  747. MI X7,MSI PROCESS NEW DATA AS A RERUN
  748. SA2 PKL-1
  749. SA5 PARC+PMEQ
  750. MSI16 ZR X5,MSI17 IF EST ORDINAL ZERO
  751. SB5 X5 SAVE EST ORDINAL
  752. SYSTEM IMS,R,X5,CIN CLEAR CURRENT INITIALIZE REQUEST
  753. SA2 A2+B1
  754. SX5 X2
  755. NZ X5,MSI16 IF LINKED PACKS CLEAR THEIR INITIALIZE
  756. REQUESTS.
  757. SA1 ESTF+B5 CHECK *ISD* INTERLOCK
  758. LX1 59-58
  759. PL X1,MSI17 IF NO INTERLOCK SET
  760. MSI16.1 SA2 PARC+PMEQ
  761. BX6 X2
  762. LX6 48
  763. SA6 CIRB
  764. SYSTEM IMS,R,CIRB,ISD CLEAR DEVICE INTERLOCK
  765. SA1 CIRB
  766. PL X1,MSI16.1 IF INTERLOCK NOT CLEAR
  767. MSI17 RJ CDS CLEAR THE DISPLAY
  768. EQ MSI1 LOOP FOR MORE EQUIPMENTS
  769.  
  770. TITLE AUXILIARY PROCESSORS.
  771. RERUN SPACE 4,10
  772. ** RERUN - RERUN *MSI*.
  773.  
  774.  
  775. RERUN RJ CDS CLEAR DISPLAY
  776. SA1 RERNA LOAD RERUN ADDRESS
  777. SB2 X1
  778. JP B2 RERUN THE SELECTED OPTION
  779.  
  780. RERNA VFD 42/0,18/MSI2
  781. TKL SPACE 4,10
  782. ** TKL - TRACK LIMIT PROCESSING.
  783.  
  784.  
  785.  
  786. TKL SA1 PARC+PMEQ SET EST ORDINAL IN TRACK LIMIT MESSAGE
  787. RJ COD
  788. SA4 ERROR26
  789. MX7 -18
  790. LX6 48-18
  791. LX7 48-18
  792. BX6 -X7*X6
  793. BX7 X7*X4
  794. BX6 X6+X7
  795. SA6 A4
  796. ERROR 26 *EQXXX, TRACK LIMIT.*
  797. EQ MSI6 STOP PROCESSING
  798. SPACE 4
  799. *** FLAW - ENTER DEVICE FLAWS.
  800.  
  801.  
  802. FLAW SX6 FLAW SET RERUN ADDRESS
  803. SA6 RERNA
  804. SB1 1
  805. SX6 B1+ SET FLAW FLAG
  806. SA6 FLFG
  807. RJ PRS
  808. MX6 60 SET OVERRIDE CONTROL
  809. SA6 CLOV
  810. SETRNR NOROLL PREVENT JOB ROLLOUT
  811. SA5 LRDS SET UP DISPLAY CONTROL WORD
  812. BX7 X5
  813. SA7 KDCW
  814. SA5 BLK CLEAR PAGE 2 OF 2 COMMENT
  815. BX7 X5
  816. SA7 LNDS+3
  817. SA5 FLAA
  818. BX7 X5
  819. SA7 LNDS+4
  820. SA5 FLAB
  821. BX7 X5
  822. SA7 L
  823. SA7 R
  824. RJ REQ REQUEST EQUIPMENT
  825. SA1 PARC+PMEQ
  826. BX6 -X1
  827. SA6 CLOV SET OVERRIDE CONTROL FOR THIS EQUIPMENT
  828. RJ COD
  829. SX6 B1 ALLOW FLAW ENTRIES TO NOW BE MADE
  830. SA6 CFEB
  831. BX6 X4
  832. SA6 INDS+1 SET EST ORDINAL
  833. KEYMES ENFLS *ENTER FLAWS.*
  834. RJ PKI PROCESS KEYBOARD
  835. SA1 PARC+PMEQ
  836. SA2 TFLA
  837. LX1 59-35
  838. BX7 X1+X2 SET EQ NUMBER IN TABLE
  839. SA7 TFLA
  840. SYSTEM IMS,R,A7,SFL
  841. ENDRUN
  842.  
  843. FLAA DATA 1L
  844. FLAB VFD 18/0,18/KDTA,24/0 DISPLAY CONTROL WORD
  845. FLAI CON TFLA
  846. SPACE 4,10
  847. ** FLAW TABLE FOR *IMS* CALL.
  848. *
  849. *T WORD1 12/ TYPE, 12/ 0, 12/ EQ, 12/ 0, 12/ TRACK
  850. *T,WORD2-N 12/ TYPE, 12/ 0, 12/ 0, 12/ 0, 12/ TRACK
  851. *
  852. * EQ = EST ORDINAL
  853. * TYPE = 0 - END TABLE
  854. * 1 - SET FLAW
  855. * 2 - CLEAR FLAW
  856. * TRACK = LOGICAL TRACK TO FLAW
  857.  
  858.  
  859. TFLA BSSZ PNFE FLAW TABLE
  860. TITLE MAJOR PROCESSORS.
  861. REQ SPACE 4,10
  862. ** REQ - REQUEST EST ORDINAL.
  863. *
  864. * EXIT (PARC+PMEQ) = EST ORDINAL.
  865. *
  866. * USES X - 1, 2, 4, 5, 6, 7.
  867. * A - 1, 2, 4, 5, 6, 7.
  868. *
  869. * CALLS PKI, COD.
  870. *
  871. * MACROS ERROR, KEYMES.
  872.  
  873.  
  874. REQ3 SA1 X4+ESTF
  875. SA1 X1+STLL
  876. MX2 1
  877. MI X1,REQ2 IF FORMAT PENDING
  878. LX2 LIAL-59
  879. BX7 X1+X2 SET INITIALIZE REQUEST IN MST IMAGE
  880. LX2 LIRP-LIAL
  881. BX7 X7+X2
  882. SA7 A1
  883.  
  884. REQ SUBR ENTRY/EXIT
  885. SX6 ENEQ
  886. SA6 ARGP
  887. KEYMES REQEQ *ENTER EST ORDINAL.*
  888. REQ1 SX7 B1+
  889. SA7 CNT
  890. RJ PKI REQUEST EQUIPMENT
  891. SA4 PARC+PMEQ
  892. R= X5,ESTE
  893. IX5 X4*X5
  894. SA5 ESTB+X5+EQDE GET EST ENTRY
  895. MI X5,REQ3 IF EQ IS MASS STORAGE DEVICE
  896. ERROR 5 *EQ OR DN INCORRECT.*
  897. EQ REQ1 SEND ERROR MESSAGE AND WAIT ON CORRECTION
  898.  
  899. REQ2 BX1 X4
  900. RJ COD
  901. MX7 -18 SET EST ORDINAL IN FORMAT PENDING MESSAGE
  902. LX6 30
  903. SA4 ERROR21
  904. LX7 30
  905. BX6 -X7*X6
  906. BX7 X7*X4
  907. BX6 X6+X7
  908. SA6 A4
  909. ERROR 21 *EQXXX, FORMAT PENDING.*
  910. EQ REQ1 WAIT ON NEW INPUT
  911.  
  912. DSP SPACE 4,10
  913. ** DSP - DISPLAY EST ORDINALS.
  914. *
  915. * USES X - 1, 2, 3, 4, 5, 7.
  916. * A - 1, 2, 7.
  917. * B - 2, 3, 4, 5, 6, 7.
  918. *
  919. * MACROS CLEAR.
  920.  
  921.  
  922. DSP SUBR ENTRY/EXIT
  923. SB4 OPDS+1
  924. SA1 BLK CLEAR THE EQUIPMENT LIST
  925. BX7 X1
  926. CLEAR B4,4,X7
  927. CLEAR INDSA+1,4,X7
  928. SB2 B0
  929. SB5 B0
  930. MX4 -3
  931. SB7 B0
  932. DSP1 SA1 ESTF+B2
  933. SB2 B2+B1
  934. SB3 B2-ESMX
  935. ZR B3,DSPX IF END OF EQUIPMENTS
  936. ZR X1,DSP1 IF EMPTY LINK
  937. SA2 X1+STLL
  938. MI X2,DSP1 IF FORMAT PENDING
  939. LX2 59-LIRP
  940. SX3 B2-B1
  941. PL X2,DSP1 IF NO INITIALIZE REQUESTS
  942. SB5 B5+B1
  943. BX5 -X4*X3
  944. AX3 3
  945. BX7 -X4*X3
  946. LX7 6
  947. BX3 X4*X3
  948. LX3 9
  949. IX7 X3+X7
  950. SA3 DSPA
  951. IX7 X7+X5
  952. IX7 X7+X3
  953. SA1 B4+B7 MERGE EQUIPMENT IN DISPLAY
  954. LX7 42
  955. EQ B5,B1,DSP2 IF FIRST EQUIPMENT IN WORD
  956. LX7 -30
  957. SB5 B0
  958. SX2 B7-3
  959. SB7 B7+B1 NEXT WORD
  960. NZ X2,DSP2 IF NOT OVERFLOW TO SECOND LINE
  961. SB6 INDSA+1
  962. EQ B4,B6,DSPX IF OVERFLOW SECOND LINE
  963. SB4 B6
  964. SB7 B0
  965. DSP2 IX7 X7+X1 SET EST ORDINAL IN MESSAGE
  966. SA7 A1
  967. EQ DSP1 LOOP
  968.  
  969. DSPA CON 3R000-3R
  970. CPY SPACE 4,10
  971. ** CPY - COPY MST PARAMETERS TO DISPLAY BLOCK.
  972. *
  973. * USES ALL REGISTERS.
  974. *
  975. * CALLS PKI, COD.
  976. *
  977. * MACROS KEYMES.
  978.  
  979.  
  980. CPY SUBR ENTRY/EXIT
  981. SA1 DSI
  982. SA5 PARC+PMEQ
  983. MX7 1
  984. SA7 FLAG FLAG NO PARAMETER INPUT NEEDED
  985. SA4 ESTF+X5 ADDRESS OF MST
  986. MI X1,CPY6 IF DEADSTART INITIALIZE
  987. SA1 X4+PUGL
  988. MX6 42
  989. BX1 X6*X1
  990. BX6 X4
  991. SA6 TEMP SAVE THE MST POINTER
  992. MX7 1
  993. ZR X1,CPY2 IF NOT PRIVATE PACK
  994. SA7 PVT SET PRIVATE PACK FLAG
  995. CPY1 KEYMES ENOUN *ENTER OLD USER NAME.*
  996. SX7 01
  997. SA7 CNT
  998. RJ PKI PROCESS KEYBOARD INPUT
  999. SA4 TEMP
  1000. SA2 PARC+PMUN
  1001. SA3 X4+PUGL
  1002. BX1 X2-X3
  1003. AX1 18
  1004. NZ X1,CPY1 IF USER NAMES DO NOT MATCH
  1005. CPY2 SA1 X4+MDGL
  1006. LX1 59-58
  1007. PL X1,CPY4 IF NOT AN AUXILIARY DEVICE
  1008. CPY3 KEYMES ENOPN *ENTER OLD PACK NAME.*
  1009. SX7 1
  1010. SA7 CNT
  1011. RJ PKI PROCESS KEYBOARD
  1012. SA4 TEMP
  1013. SA2 PARC+PMFN
  1014. SA3 X4+PFGL
  1015. BX1 X2-X3
  1016. AX1 18
  1017. NZ X1,CPY3 IF PACKNAMES DO NOT MATCH
  1018. EQ CPY6 GO TO NEXT PARAMETER
  1019.  
  1020. CPY4 SA1 X4+PFGL
  1021. MX0 42
  1022. BX1 X0*X1
  1023. ZR X1,CPY6 IF NO FAMILY NAME
  1024. CPY5 KEYMES ENOFN *ENTER OLD FAMILY NAME.*
  1025. SX7 1
  1026. SA7 CNT
  1027. RJ PKI PROCESS KEYBOARD INPUT
  1028. SA4 TEMP
  1029. SA2 PARC+PMFN
  1030. SA3 X4+PFGL
  1031. MX0 42
  1032. BX1 X2-X3
  1033. BX1 X0*X1 TEST FAMILY NAME
  1034. NZ X1,CPY5 IF FN DO NOT MATCH
  1035.  
  1036. CPY6 SB5 X4 SET MST POINTER
  1037. RJ PTY PROCESS TYPE
  1038. MX0 -18
  1039. SA1 PARC+PMEQ
  1040. SX1 X1+1000B ENSURE LEADING ZEROES
  1041. RJ COD
  1042. SA2 =7L
  1043. BX6 -X0*X6
  1044. BX6 X6+X2
  1045. LX6 -18
  1046. SA6 EQDS+1 SET EST ORDINAL
  1047. SA1 B5+ALGL
  1048. MX6 -12
  1049. LX1 59-11
  1050. BX1 -X6*X1
  1051. RJ COD CONVERT NUMBER OF CATALOG TRACKS
  1052. BX6 X4
  1053. SA6 NCDS+1
  1054. RJ SAL SET ACCESS LEVEL DEFAULTS
  1055. SA4 B5+DDLL GET PACK COUNT
  1056. MX6 -3
  1057. LX4 12
  1058. BX1 -X6*X4
  1059. SX1 X1+B1 ADJUST COUNT
  1060. RJ DTY CHECK FOR PACK TYPE DEVICE
  1061. PL X3,CPY7 IF NOT PACK DEVICE
  1062. BX6 X1
  1063. SA6 PARC+PMNP SET PACK COUNT IN PARM LIST
  1064. + RJ COD CONVERT NUMBER OF PACKS
  1065. BX6 X4
  1066. SA6 NPDS+1
  1067. CPY7 SA1 B5+MDGL
  1068. SA2 DSI
  1069. LX1 59-58
  1070. MI X1,CPY9 IF AUXILIARY PACK
  1071. SX7 B5
  1072. SA7 TEMP
  1073. SA3 B5+PFGL
  1074. MX6 -6
  1075. LX3 59-11
  1076. BX6 -X6*X3
  1077. BX7 X7-X7
  1078. SA6 PARC+PMDN SET DEVICE NUMBER IN PARAMETER BLOCK
  1079. MI X2,CPY9 IF DEADSTART INITIALIZE
  1080. ZR X6,CPY10 IF DN EQUALS ZERO
  1081. SA7 A6+ CLEAR THE DEVICE NUMBER
  1082. CPY8 KEYMES ENODN *ENTER OLD DEVICE NUMBER.*
  1083. SX7 1
  1084. SA7 CNT
  1085. RJ PKI PROCESS KEYBOARD
  1086. SA4 TEMP
  1087. SA2 PARC+PMDN
  1088. SA3 X4+PFGL
  1089. MX6 -6
  1090. LX3 59-11
  1091. BX1 -X6*X3 MASK OFF OLD DN
  1092. BX1 X1-X2
  1093. NZ X1,CPY8 IF DEVICE NUMBERS DO NOT MATCH
  1094. SB5 X4 SAVE MST ADDRESS
  1095. EQ CPY10 CLEAR *ID* AND *NC*
  1096.  
  1097. CPY9 SA1 B5+PFGL
  1098. MX6 -6
  1099. LX1 59-11
  1100. BX1 -X6*X1
  1101. RJ COD CONVERT DEVICE NUMBER
  1102. BX6 X4
  1103. SA6 DNDS+1
  1104. CPY10 BX7 X7-X7
  1105. SA7 PARC+PMID ID
  1106. SA7 A7+B1
  1107. SA7 PARC+PMNC NC
  1108. EQ CPYX RETURN
  1109. PPM SPACE 4,10
  1110. ** PPM - PROCESS PARAMETERS.
  1111. *
  1112. * EXIT (X7) = ZERO IF MORE PARAMETERS NEEDED.
  1113. * (B5) = MST POINTER.
  1114. *
  1115. * USES ALL REGISTERS.
  1116. *
  1117. * CALLS CPN, DTY, MTW, PTY, VLC.
  1118. *
  1119. * MACROS ERROR, KEYMES.
  1120.  
  1121.  
  1122. PPM SUBR ENTRY/EXIT
  1123. SB4 PARC
  1124. SB6 B0
  1125. SB3 PMEQ
  1126. SA1 PARC+PMEQ
  1127. SA1 X1+ESTF
  1128. SB5 X1 MST POINTER
  1129. PPM1 SA5 B4+B6 CHECK PARAMETER LIST
  1130. NZ X5,PPM2 IF PARAMETER ENTERED
  1131. SB6 B6+B1
  1132. NE B3,B6,PPM1 IF NOT END OF PARAMETERS
  1133. KEYMES REQPM *ENTER PARAMETERS.*
  1134. SA1 FLAG
  1135. BX7 X1
  1136. EQ PPMX EXIT PARAMETER ENTRY NEEDED
  1137.  
  1138. PPM2 RJ CMC CHECK MODE CHANGE
  1139. ZR X7,PPM23 IF NO FULL TRACK ACCESS
  1140. SA1 PARC+PMDM PROCESS MASKS
  1141. SA2 PARC+PMSM
  1142. SA3 B5+PUGL
  1143. MX0 -16
  1144. LX2 8
  1145. BX3 X0*X3 CLEAR OLD MASKS
  1146. BX6 X1+X2
  1147. BX6 X6+X3
  1148. SA6 A3
  1149. RJ PTY PROCESS TYPE
  1150. PPM3 SA1 PVT
  1151. SA2 PARC+PMFN
  1152. MX7 42
  1153. BX3 X2
  1154. SA4 PARC+PMUN
  1155. MI X1,PPM5 IF PRIVATE PACK (PVT SET)
  1156. NZ X4,PPM5 IF PRIVATE PACK (UN DEFINED)
  1157. ZR X2,PPM10 IF NO FAMILY NAME DEFINED
  1158.  
  1159. * PROCESS FAMILY NAME.
  1160.  
  1161. SA1 B5+PFGL
  1162. BX6 -X7*X1
  1163. BX6 X2+X6
  1164. SA6 A1
  1165. BX6 X6-X6
  1166. SA6 PVT CLEAR PRIVATE PACK FLAG
  1167. EQ PPM10 GO TO NEXT PARAMETER
  1168.  
  1169. * PROCESS PACK NAME AND USER NAME.
  1170.  
  1171. PPM5 SA5 B5+MDGL
  1172. SA1 B5+PFGL
  1173. SA2 B5+PUGL
  1174. BX6 X5
  1175. MX5 42
  1176. BX0 -X5*X1
  1177. LX6 59-58
  1178. BX1 X5*X1 OLD PACK NAME
  1179. BX7 -X5*X2
  1180. ZR X4,PPM7 IF NO NEW UN USE OLD ONE
  1181. SA5 NULL
  1182. BX5 X5-X4 TEST FOR *NULL*
  1183. NZ X5,PPM6 IF NOT NULL
  1184. MX6 0 CLEAR PVT
  1185. SA7 B5+PUGL
  1186. SA6 PVT
  1187. SA6 PARC+PMUN
  1188. EQ PPM3 LOOP
  1189.  
  1190. PPM6 PL X6,PPM21 IF NOT AUXILIARY DEVICE
  1191. MX6 1
  1192. BX7 X7+X4 SET NEW USER NAME
  1193. SA6 PVT
  1194. SA7 A2 UPDATE MST
  1195. LX6 1
  1196. SA6 PARC+PMNC FORCE NC TO 1
  1197. EQ PPM8 CONTINUE
  1198.  
  1199. PPM7 BX7 X5*X2 CHECK FOR OLD UN
  1200. ZR X7,PPM22 IF NO OLD UN
  1201. PPM8 NZ X3,PPM9 IF PACKNAM DEFINED
  1202. NZ X1,PPM10 GO TO NEXT PARAMETER
  1203. ERROR 7 *FN OR PN MUST BE SPECIFIED.*
  1204. MX7 0
  1205. SA7 PVT
  1206. EQ PPMX ERROR EXIT
  1207.  
  1208. PPM9 BX6 X3+X0 SET NEW PACK NAME
  1209. SA6 A1
  1210. PPM10 RJ CPN CHECK FOR DUPLICATE PACK NAME
  1211. ZR X7,PPMX IF ERROR
  1212.  
  1213. * PROCESS NUMBER OF CATALOG TRACKS.
  1214.  
  1215. SA4 B5+ALGL
  1216. MX0 -12
  1217. LX4 -12
  1218. SA3 B5+PUGL
  1219. MX1 -8
  1220. BX3 -X1*X3
  1221. BX6 X0*X4
  1222. LX6 12
  1223. ZR X3,PPM13 IF NO MASK SET - NO CATALOGS NEEDED
  1224. SA3 PARC+PMNC
  1225. SA5 PARC+PMEQ
  1226. NZ X3,PPM11 IF NC SPECIFIED
  1227. BX3 -X0*X4 DEFAULT COUNT FROM MST
  1228. PPM11 NZ X3,PPM12 IF NOT USING EQUIPMENT DEFAULT
  1229. RJ DTY GET DEFAULT FOR DEVICE
  1230. PPM12 BX1 -X0*X3 VALIDATE NC
  1231. CX6 X1
  1232. SB4 X1-201B
  1233. BX4 X0*X4 CLEAR OLD COUNT
  1234. SB6 X6
  1235. PL B4,PPM20 IF NC TOO LARGE
  1236. BX6 X4+X1 SET NEW COUNT
  1237. NE B6,B1,PPM19 IF NC NOT POWER OF 2
  1238. LX6 12
  1239.  
  1240. * PROCESS NUMBER OF PACKS.
  1241.  
  1242. PPM13 SA6 A4
  1243. SA1 PARC+PMNP
  1244. ZR X1,PPM14 IF NUMBER OF PACKS NOT SPECIFIED
  1245. SA2 B5+DDLL
  1246. MX7 -57
  1247. MX0 -3
  1248. SX1 X1-1
  1249. BX6 X0*X1
  1250. LX7 -9
  1251. BX7 -X7*X2 CLEAR CURRENT UNIT COUNT
  1252. NZ X6,PPM18 IF NP .GT. 7
  1253. LX1 -12 POSITION PACK COUNT
  1254. BX7 X7+X1
  1255. LX1 12
  1256. SA7 A2
  1257. RJ DTY
  1258. AX3 59
  1259. BX3 -X3*X1
  1260. NZ X3,PPM17 IF NOT PACK TYPE DEVICE AND NP .NE. 1
  1261. RJ ALP ALLOCATE PACKS
  1262. BX7 X7-X7
  1263. MX0 -3
  1264. PL X5,PPMX IF UNABLE TO ALLOCATE PACKS
  1265. PPM14 SA2 PARC+PMEQ RESTORE EST POINTER
  1266. SA2 X2+ESTF
  1267. SA1 X2+DDLL GET NUMBER OF PACKS
  1268. SB5 X2
  1269. LX1 12
  1270. SA2 B5+MDGL SET SECTOR LIMITS
  1271. BX1 -X0*X1
  1272. BX5 X1 SAVE PACK COUNT
  1273. SX1 X1+B1
  1274. MX0 -11
  1275. BX2 X0*X2
  1276. LX2 -36
  1277. BX6 -X0*X2
  1278. LX2 36
  1279. IX6 X1*X6
  1280. BX6 X2+X6
  1281. SA6 A2
  1282.  
  1283. * PROCESS DEVICE NUMBER.
  1284.  
  1285. SA1 PARC+PMDN
  1286. SA2 B5+PFGL
  1287. SA3 B5+MDGL
  1288. MX0 -6
  1289. BX2 X0*X2 CLEAR OLD N/M
  1290. BX2 X2+X5 SET NEW N/M
  1291. BX4 X0*X1
  1292. LX0 59-47
  1293. LX3 59-58
  1294. LX1 12
  1295. AX3 59
  1296. MX7 1
  1297. NZ X1,PPM15 IF DN SPECIFIED
  1298. BX1 -X0*X2
  1299. NZ X1,PPM15 IF OLD DN SET
  1300. SX1 10000B SET DEFAULT TO *1*
  1301. PPM15 NZ X4,PPM16 IF *DN* TOO LARGE
  1302. BX2 X0*X2 CLEAR OLD DN
  1303. BX1 -X3*X1 CLEAR DN FOR AUXILIARY DEVICE
  1304. BX6 X2+X1 ADD IN NEW DN
  1305. SA6 A2 UPDATE PFGL
  1306.  
  1307. * PROCESS DEVICE ACCESS LEVEL LIMITS. VERIFY THAT ACCESS
  1308. * LEVEL VALUES ENTERED ARE VALID ENTRIES. WHEN RUNNING IN
  1309. * UNSECURED MODE, NO VALIDATION AGAINST THE EQUIPMENT-S
  1310. * DEFAULT LIMITS (IN THE EST) IS MADE, SINCE THESE DEFAULT
  1311. * VALUES WILL ALWAYS BE ZERO.
  1312.  
  1313. SA1 PARC+PMUA DETERMINE IF KNOWN UPPER LEVEL ENTERED
  1314. SB2 B0
  1315. RJ VLC VERIFY UPPER ACCESS LEVEL
  1316. NG X2,PPM27 IF UNKNOWN VALUE ENTERED
  1317. SB4 X2 STORE VALUE
  1318. SA1 PARC+PMLA DETERMINE IF KNOWN LOWER LEVEL ENTERED
  1319. RJ VLC VERIFY LOWER ACCESS LEVEL
  1320. NG X2,PPM27 IF UNKNOWN VALUE ENTERED
  1321. SB3 X2+ STORE VALUE
  1322. SA1 SSFL
  1323. GT B3,B4,PPM26 IF LA .GT. UA
  1324. ZR X1,PPM15.1 IF UNSECURED SYSTEM
  1325. SA1 PARC+PMEQ GET DEFAULT LIMITS FROM EST
  1326. R= X4,ESTE
  1327. IX4 X1*X4
  1328. SA4 ESTB+1+X4
  1329. LX4 -12 GET UPPER LIMIT
  1330. MX0 -3
  1331. BX2 -X0*X4
  1332. SB7 X2 (B7) = UPPER LIMIT
  1333. LX4 -3 GET LOWER LIMIT
  1334. BX2 -X0*X4
  1335. SB6 X2+ (B6) = UPPER LIMIT
  1336. GT B4,B7,PPM24 IF VALUE SPECIFIED .GT. LIMIT
  1337. LT B3,B6,PPM25 IF VALUE SPECIFIED .LT. LOWER LIMIT
  1338. PPM15.1 SA1 B5+PFGL SET VALUES INTO MST
  1339. MX0 -6
  1340. LX0 6
  1341. BX2 X0*X1
  1342. SX3 B3 POSITION LOWER LEVEL
  1343. LX3 9
  1344. SX4 B4 POSITION UPPER LEVEL
  1345. LX4 6
  1346. BX3 X3+X4 SET INTO *PFGL*
  1347. BX6 X2+X3
  1348. SA6 A1
  1349. EQ PPMX RETURN
  1350.  
  1351. PPM16 ERROR 5 *EQ OR DN INCORRECT.*
  1352. MX7 0
  1353. EQ PPMX RETURN
  1354.  
  1355. PPM17 ERROR 16 *NP NOT ALLOWED.*
  1356. MX7 0
  1357. EQ PPMX RETURN
  1358.  
  1359. PPM18 ERROR 8 *NP GREATER THAN 8.*
  1360. MX7 0
  1361. EQ PPMX RETURN
  1362.  
  1363. PPM19 ERROR 2 *NC IS NOT A POWER OF 2.*
  1364. MX7 0
  1365. EQ PPMX RETURN
  1366.  
  1367. PPM20 ERROR 10 *NC EXCEEDS 200B.*
  1368. MX7 0
  1369. EQ PPMX RETURN
  1370.  
  1371. PPM21 ERROR 12 *NOT AUXILIARY PACK.*
  1372. MX7 0
  1373. EQ PPMX RETURN
  1374.  
  1375. PPM22 ERROR 1 *UN MUST BE SPECIFIED.*
  1376. MX7 0
  1377. SA7 PVT
  1378. EQ PPMX RETURN
  1379.  
  1380. PPM23 ERROR 23 * EQXXX, NO FULL TRACK ACCESS.*
  1381. BX7 X7-X7
  1382. EQ PPMX RETURN
  1383.  
  1384. PPM24 ERROR 27 *UA NOT WITHIN LIMIT.*
  1385. MX7 0
  1386. EQ PPMX RETURN
  1387.  
  1388. PPM25 ERROR 28 *LA NOT WITHIN LIMIT.*
  1389. MX7 0
  1390. EQ PPMX RETURN
  1391.  
  1392. PPM26 ERROR 29 *LA GREATER THAN UA.*
  1393. MX7 0
  1394. EQ PPMX RETURN
  1395.  
  1396. PPM27 ERROR 30 *UNKNOWN ACCESS LEVEL NAME.*
  1397. MX7 0
  1398. EQ PPMX RETURN
  1399.  
  1400. NULL DATA 4LNULL
  1401. CPN SPACE 4,10
  1402. ** CPN - CHECK PACKNAMES.
  1403. *
  1404. * ENTRY (B5) = MST POINTER OF CURRENT EQUIPMENT.
  1405. *
  1406. * EXIT (X7) = 0 IF DUPLICATES OCCURED.
  1407. *
  1408. * USES X - 1, 2, 3,4, 5, 6, 7.
  1409. * A - 1, 2, 3, 4, 5, 7.
  1410. * B - 7.
  1411. *
  1412. * MACROS ERROR.
  1413.  
  1414.  
  1415. CPN SUBR ENTRY/EXIT
  1416. SA1 B5+MDGL
  1417. SA2 ESTF-1
  1418. SA4 B5+PFGL
  1419. LX1 59-58
  1420. BX7 X1
  1421. SA7 CPNB
  1422. MX7 42
  1423. BX4 X7*X4 CURRENT PACKNAME
  1424. CPN1 SA2 A2+B1
  1425. SB7 A2-ESTF-ESMX-1
  1426. ZR B7,CPNX IF END OF EQUIPMENTS
  1427. ZR X2,CPN1 IF EMPTY LINK
  1428. SA3 X2+PFGL
  1429. BX1 X3-X4 TEST NAME
  1430. SX6 B5
  1431. BX1 X7*X1
  1432. IX6 X2-X6
  1433. NZ X1,CPN1 IF NO MATCH
  1434. ZR X6,CPN1 IF CURRENT EQUIPMENT
  1435. SA5 X2+MDGL
  1436. LX5 59-58
  1437. SA1 CPNB
  1438. NG X1,CPN2 IF CURRENT DEVICE IS AUXILIARY
  1439. PL X5,CPN1 IF PART OF SAME FAMILY
  1440. CPN2 AX3 3
  1441. SA1 CPNA
  1442. MX6 -3
  1443. SA5 X2+STLL
  1444. BX6 -X6*X3
  1445. BX5 X1*X5 CHECK ERROR STATUS AND INITIALIZE
  1446. NZ X6,CPN1 IF NOT 1 OF M PACKS
  1447. NZ X5,CPN1 IF ERROR STATUS OR INITIALIZE
  1448. ERROR 9 *DUPLICATE PN.*
  1449. MX7 0
  1450. EQ CPNX ERROR EXIT
  1451.  
  1452.  
  1453. CPNA VFD 12/3600B,12/77B,36/0 INITIALIZE/STATUS MASK
  1454. CPNB CON 0 STATUS OF CURRENT DEVICE
  1455. ALP SPACE 4,10
  1456. ** ALP - ALLOCATE PACKS.
  1457. *
  1458. * ENTRY (X1) = NUMBER OF UNITS-1 TO ALLOCATE.
  1459. *
  1460. * EXIT (X5) .LT. 0 IF ABLE TO ALLOCATE.
  1461. * TO *ABT* IF ACTIVE FILES ON LINKED EQUIPMENT.
  1462. *
  1463. * USES X - ALL.
  1464. * A - 1, 2, 3, 4, 5, 6, 7.
  1465. * B - 2.
  1466. *
  1467. * CALLS ALD, COD.
  1468. *
  1469. * MARCOS ERROR, MESSAGE.
  1470.  
  1471.  
  1472. ALP6 MX6 1 SET PACK ALLOCATED FLAG
  1473. BX7 X7-X7 SET END OF PACK EQUIPMENT LIST
  1474. SA6 A5
  1475. SA7 B2
  1476.  
  1477. ALP SUBR ENTRY/EXIT
  1478. SB2 PKL PACK EQUIPMENT LIST ADDRESS
  1479. SA5 PALF PACK ALLOCATION FLAG
  1480. NG X5,ALPX IF ALREADY ALLOCATED
  1481. SA2 PARC+PMEQ FIRST EQUIPMENT OF PACK
  1482. SA4 ESTF+X2 MST ADDRESS
  1483. R= X3,ESTE
  1484. IX3 X2*X3
  1485. SA3 ESTB+X3+EQDE GET EST ENTRY
  1486. SA4 X4+DDLL
  1487. MX0 -3
  1488. LX3 59-55
  1489. AX4 51
  1490. BX6 -X0*X4 SET ORIGINAL UNIT COUNT
  1491. SX7 X6+B1
  1492. IX5 X1-X7 UNIT COUNT-1 REMAINING TO ALLOCATE
  1493. NG X5,ALP6 IF NO MORE UNITS TO ALLOCATE
  1494. PL X3,ALP1 IF NOT *LDAM* DEVICE
  1495. RJ ALD ALLOCATE *LDAM* DEVICE
  1496. PL X5,ALP4 IF DEVICE NOT ALLOCATED
  1497. EQ ALP6 RETURN
  1498.  
  1499. ALP1 SA3 A3+ GET EST ENTRY
  1500. SA1 ALPA STATUS MASK
  1501. BX2 X1*X3 DESIRED EQUIPMENT STATUS
  1502. LX3 59-56
  1503. PL X3,ALP3 IF DEVICE NOT REMOVABLE
  1504. ALP2 SA4 ESTF+X2 READ *STLL* WORD OF MST
  1505. SA4 X4+STLL
  1506. AX4 3 POSITION EST LINK
  1507. MX6 -9
  1508. BX6 -X6*X4
  1509. LX7 39
  1510. ZR X6,ALP4 IF END OF CHAINABLE DEVICE
  1511. SA6 ALPB
  1512. R= X3,ESTE
  1513. IX3 X4*X3
  1514. SA3 ESTB+X3+EQDE GET EST ENTRY
  1515. BX6 X2-X3
  1516. SA4 ESTF+X4 MST ADDRESS
  1517. BX3 X1*X6
  1518. NZ X3,ALP4 IF STATUS NOT CORRECT
  1519. SA3 ALPB GET EST ORDINAL
  1520. BX6 X7+X3
  1521. SA6 B2 PUT IN PACK EQUIPMENT LIST
  1522. MX6 1
  1523. BX6 X6+X4
  1524. SA6 A4 FLAG EQUIPMENT AS LINKED DEVICE
  1525. MX6 -12
  1526. SA3 X4+DDLL
  1527. SA4 X4+STLL
  1528. LX4 -12
  1529. BX6 -X6*X4
  1530. NZ X6,ALP5 IF ACTIVE USERS
  1531. AX3 51
  1532. BX7 -X0*X3 SET ORIGINAL UNIT COUNT
  1533. SB2 B2+1 ADVANCE PACK EQUIPMENT LIST ADDRESS
  1534. SX7 X7+B1
  1535. IX5 X5-X7 UNIT COUNT - 1 REMAINING TO ALLOCATE
  1536. NG X5,ALP6 IF NO MORE UNITS TO ALLOCATE
  1537. EQ ALP2 PROCESS NEXT EQUIPMENT
  1538.  
  1539. ALP3 ERROR 15 *DEVICE NOT REMOVABLE.*
  1540. BX5 X5-X5
  1541. EQ ALPX ERROR EXIT
  1542.  
  1543. ALP4 ERROR 11 *CANNOT ALLOCATE DEVICE.*
  1544. BX6 X6-X6
  1545. SX5 B0
  1546. SA6 PKL CLEAR PACK EQUIPMENT LIST
  1547. EQ ALPX ERROR EXIT
  1548.  
  1549. ALP5 SA1 ALPB GET EST ORDINAL
  1550. RJ COD CONVERT EST ORDINAL TO DISPLAY CODE
  1551. MX7 -18 SET EST ORDINAL IN ACTIVE FILES MESSAGE
  1552. LX6 30
  1553. SA4 MESA
  1554. LX7 30
  1555. BX6 -X7*X6
  1556. BX7 X7*X4
  1557. BX6 X6+X7
  1558. SA6 A4
  1559. MESSAGE A4 * EQXXX, ACTIVE FILES, CANNOT INITIALIZE.*
  1560. RJ ABT ABORT *MSI*
  1561.  
  1562. ALPA VFD 6/4,6/0,12/0,3/7,9/0,12/7777B,12/0
  1563. ALPB BSS 1 EST ORDINAL
  1564. UMS SPACE 4,10
  1565. ** UMS - UPDATE MASS STORAGE.
  1566. *
  1567. * ENTRY INTERNAL EST,S AND MST,S REFLECT NEW DEVICE PARAMETERS.
  1568. * (PKL) = LIST OF EQUIPMENT MST,S TO BE MODIFIED.
  1569. *
  1570. * EXIT (X1) .NE. 0 IF DUPLICATE DAT ENTRY.
  1571. *
  1572. * USES X - ALL.
  1573. * A - ALL.
  1574. *
  1575. * CALLS COD, PKI, BPT.
  1576. *
  1577. * MACROS ERROR, KEYMES, MESSAGE, SYSTEM.
  1578.  
  1579.  
  1580. UMS11 MESSAGE MESJ *LINK DEVICE CANNOT BE ALTERED.*
  1581. BX1 X1-X1
  1582.  
  1583. UMS SUBR ENTRY/EXIT
  1584. SA1 PARC+PMEQ EQUIPMENT
  1585. SA5 PKL
  1586. RJ BPT BUILD MST UPDATING PARAMETER TABLE
  1587. SA4 LINK
  1588. SA3 DSI
  1589. BX4 X4-X1
  1590. SA1 PKL CHECK FOR LINKED DEVICE
  1591. NG X3,UMS1 IF DEADSTART INITIALIZE
  1592. ZR X4,UMS11 IF LINK DEVICE
  1593. UMS1 NZ X1,UMS2 IF CHAINED DEVICE
  1594. RJ DTY
  1595. SA4 DTYA
  1596. SX5 X4-2RDE
  1597. SX4 X4-2RDP
  1598. MX0 -2
  1599. IX4 X4*X5
  1600. NZ X4,UMS1.1 IF NOT EXTENDED MEMORY DEVICE
  1601. SA4 PARC+PMEQ EXTRACT XM SHIFT
  1602. R= X5,ESTE
  1603. IX5 X4*X5
  1604. SA5 ESTB+X5+EQAE
  1605. LX5 -30
  1606. BX2 -X0*X5
  1607. SB2 X2
  1608. MX0 -11
  1609. SX5 20B
  1610. SA4 TUMS+3 CLEAR OLD SECTOR LIMITS
  1611. LX5 B2
  1612. BX6 X0*X4
  1613. LX0 36
  1614. BX6 X0*X6
  1615. BX6 X6+X5 MERGE NEW SECTOR LIMITS
  1616. LX5 36
  1617. BX6 X6+X5
  1618. SA6 A4
  1619. UMS1.1 SYSTEM IMS,R,TUMS,MMS
  1620. SA1 TUMS+6 CHECK REPLY
  1621. EQ UMSX RETURN
  1622.  
  1623. * IF THE EQUIPMENT IN THE LINK LIST IS AVAILABLE AND HAS
  1624. * A GOOD LABEL, THE PACKNAME AND USER NAME OR FAMILY NAME
  1625. * AND DEVICE NUMBER OR JUST THE FAMILY NAME MUST BE
  1626. * VERIFIED TO INSURE THE CORRECT PACK IS BEING INITIALIZED.
  1627.  
  1628. UMS2 SA2 ESTF+X1
  1629. R= X3,ESTE
  1630. IX3 X1*X3
  1631. SA3 ESTB+X3+EQDE GET EST ENTRY
  1632. SA4 X2+STLL
  1633. MX0 -6
  1634. LX4 24
  1635. LX3 59-54
  1636. BX5 -X0*X4
  1637. SX6 A1
  1638. SA6 TEMP SAVE PKL INDEX
  1639. PL X3,UMS4 IF AVAILABLE
  1640. ZR X5,UMS4 IF NO LABEL ERRORS
  1641. SA3 ELST CHECK LABEL ERROR FOR NONRECOVERABLE TYPE
  1642. UMS3 BX6 X3-X5
  1643. SA3 A3+B1
  1644. ZR X6,UMS9 IF NONRECOVERABLE ERROR
  1645. NZ X3,UMS3 IF NOT END LIST
  1646. UMS4 SA3 X2+PFGL
  1647. SA4 X2+PUGL
  1648. SA5 X2+STLL
  1649. MX0 42
  1650. BX6 X0*X3 PACKNAME OR FAMILY NAME
  1651. LX5 59-LIRP
  1652. BX7 X0*X4 USER NAME
  1653. SX1 X1+
  1654. NG X5,UMS6 IF INITIALIZE SET
  1655. RJ COD CONVERT EST ORDINAL TO DISPLAY CODE
  1656. MX7 -18 SET EST ORDINAL IN ACTIVE FILES MESSAGE
  1657. LX6 30
  1658. SA4 ERROR19
  1659. LX7 30
  1660. BX6 -X7*X6
  1661. BX7 X7*X4
  1662. BX6 X6+X7
  1663. SA6 A4
  1664. UMS5 ERROR 19 * EQXXX, INITIALIZE BIT NOT SET.*
  1665. SX6 7777B
  1666. SX7 HNGP
  1667. SA6 CNT
  1668. SA7 ARGP
  1669. RJ PKI
  1670. EQ UMS5 LOOP
  1671.  
  1672. UMS6 NZ X7,UMS7 IF USER NAME SET
  1673. LX3 -12
  1674. MX0 -6
  1675. BX7 -X0*X3 DEVICE NUMBER
  1676. MX0 -3
  1677. ZR X7,UMS7 IF DEVICE NUMBER EQ ZERO
  1678. BX2 -X0*X7
  1679. AX7 3
  1680. SX2 X2+2R00
  1681. LX7 6
  1682. IX7 X2+X7
  1683. LX7 59-11
  1684. UMS7 SA6 SPN
  1685. SA7 SUN
  1686. SX1 X1 CLEAR PACK COUNT
  1687. MX0 1
  1688. RJ COD CONVERT EQ NUMBER
  1689. LX0 -22
  1690. BX6 X0+X4 ADD TRAILING PERIOD
  1691. SA6 ENID+2
  1692. UMS8 SX7 B1
  1693. SX6 EIDS
  1694. SA6 ARGP
  1695. SA7 CNT
  1696. KEYMES ENID *ENTER IDENTITY OF EQXXX.*
  1697. RJ PKI PROCESS KEYBOARD
  1698. SA1 PARC+PMID
  1699. SA5 PARC+PMID+1
  1700. SA2 SPN
  1701. SA3 SUN
  1702. BX4 X1-X2
  1703. BX5 X5-X3
  1704. NZ X4,UMS8 IF FN OR PN DO NOT MATCH
  1705. ZR X5,UMS9 IF UN OR DN MATCH
  1706. SA1 PARC+PMID+1
  1707. LX3 6
  1708. SX2 1R0
  1709. BX5 X3-X2
  1710. BX1 X5-X1
  1711. NZ X1,UMS8 IF NO MATCH ON DN
  1712. UMS9 SA2 TEMP
  1713. SA1 X2+B1 NEXT ENTRY IN PKL
  1714. NZ X1,UMS2 IF NOT END OF LIST
  1715. SA5 PKL START OF EQUIPMENTS
  1716.  
  1717. * UPDATE MST,S AND LINK EQUIPMENTS.
  1718.  
  1719. UMS10 BX4 X5 SAVE LINKED PACK COUNT
  1720. AX4 36
  1721. SYSTEM IMS,R,TUMS,MMS UPDATE MST
  1722. SA1 TUMS+6 CHECK REPLY
  1723. NZ X1,UMSX IF DUPLICATE DAT ENTRY
  1724. BX1 X5 SET EQUIPMENT
  1725. SA5 A5+B1 READ NEXT EQUIPMENT
  1726. ZR X4,UMSX IF END OF LIST
  1727. R= X2,ESTE
  1728. IX2 X1*X2
  1729. SA2 ESTB+X2+EQDE GET EST ENTRY
  1730. MX0 1
  1731. LX0 54-59
  1732. BX6 X0+X2
  1733. SA6 A2
  1734. SA2 ESTF+X1 SET DEVICE IN USE IN CHAIN
  1735. SA2 X2+STLL
  1736. SA3 TUMS+1 UPDATE N/M
  1737. SX4 X4
  1738. LX0 2-54
  1739. BX6 X2+X0
  1740. IX7 X4+X3 INCREMENT N/M
  1741. SA7 A2-STLL+PFGL
  1742. SA6 A2
  1743. RJ BPT BUILD PARAMETER TABLE
  1744. EQ UMS10 LOOP FOR NEXT ENTRY
  1745.  
  1746. SPN CON 0
  1747. SUN CON 0
  1748.  
  1749. ELST CON STLE LABEL ERROR
  1750. CON STNR NOT READY
  1751. CON 0
  1752. TUMS SPACE 4,15
  1753. ** TUMS - TABLE OF MST UPDATING PARAMETERS.
  1754. *
  1755. *T, TUMS 60/ EST ENTRY
  1756. *T, 60/ PFGL MST WORD
  1757. *T, 60/ PUGL MST WORD
  1758. *T, 60/ MDGL MST WORD
  1759. *T, 12/ NC,12/ EQ,12/ AI,12/ CI,12/ NE
  1760. *T, 12/ NP, 48/ UNIT LIST (*LDAM* DEVICES)
  1761. *T, 60/ REPLY WORD
  1762. * NC NUMBER OF CATALOG TRACKS.
  1763. * EQ EST ORDINAL.
  1764. * AI ALGORITHM INDEX.
  1765. * CI CLEAR IN USE AS CHAINED DEVICE.
  1766. * NE NEXT EQUIPMENT IN LINKED DEVICE.
  1767.  
  1768.  
  1769. TUMS BSSZ 7
  1770. EDF SPACE 4,10
  1771. ** EDF - SEPARATE FAMILY FROM OTHER MASS STORAGE.
  1772. *
  1773. * EXIT (B7) = EST ORDINAL.
  1774. *
  1775. * USES X - ALL.
  1776. * A - 1, 2, 4, 7.
  1777. * B - 2, 3, 7.
  1778.  
  1779.  
  1780. EDF SUBR ENTRY/EXIT
  1781. SA1 PARC+PMEQ
  1782. SB7 X1 SAVE EST ORDINAL
  1783. SA1 ESTF+X1
  1784. SA1 X1+PFGL
  1785. MX0 42
  1786. BX5 X0*X1 FAMILY NAME
  1787. SA1 ESTF-1
  1788. EDF1 SA1 A1+B1
  1789. MX3 42
  1790. MI X1,EDF5 IF LINKED EQUIPMENT
  1791. ZR X1,EDF2 IF EMPTY LINK
  1792. SA4 X1+PFGL
  1793. BX3 X0*X4
  1794. BX3 X3-X5 TEST FAMILY NAME
  1795. BX2 X1
  1796. EDF2 SB3 A1-ESTF-ESMX
  1797. ZR B3,EDFX IF END OF EST
  1798. ZR X3,EDF4 IF MATCH ON FAMILY
  1799. EDF3 MX7 0
  1800. SA7 A1 CLEAR NON FAMILY LINK
  1801. EQ EDF1 LOOP ON SEARCH
  1802.  
  1803. EDF4 SB2 A1-ESTF
  1804. EQ B2,B7,EDF1 IF CURRENT EQUIPMENT
  1805. SX4 B2
  1806. R= X3,ESTE
  1807. IX3 X4*X3
  1808. SA4 X2+STLL
  1809. SA3 ESTB+X3+EQDE GET EST ENTRY
  1810. SA2 X2+MDGL CHECK FOR AUXILIARY DEVICE
  1811. LX4 59-LDIU
  1812. LX3 59-54
  1813. LX2 59-58
  1814. NG X4,EDF3 IF DEVICE IN USE
  1815. MI X2,EDF3 IF AUXILIARY DEVICE CLEAR ENTRY
  1816. PL X3,EDF1 IF EQUIPMENT AVAILABLE LOOP FOR NEXT EQ
  1817. EQ EDF3 IF NOT AVAILABLE CLEAR LINK
  1818.  
  1819. EDF5 SA3 X1+STLL
  1820. MX6 60-LIRP
  1821. BX3 -X6*X3
  1822. MX6 48-LIMF
  1823. LX6 48
  1824. BX6 -X6*X3 CLEAR INITIALIZE REQUEST IN LINKED EQ
  1825. SA6 A3
  1826. EQ EDF3 GO CLEAR LINK
  1827. CMS SPACE 4,10
  1828. ** CMS - CHECK MASK AND DEVICE NUMBER.
  1829. *
  1830. * ENTRY (B7) = EQ NUMBER.
  1831. *
  1832. * EXIT (B6) = DEVICE NUMBER.
  1833. * (B7) = EQ NUMBER.
  1834. * (X7) .LT. 0 IF NEW PARAMETERS TO PROCESS.
  1835. *
  1836. * USES ALL REGISTERS.
  1837. *
  1838. * CALLS PKI.
  1839. *
  1840. * MACROS ERROR.
  1841.  
  1842.  
  1843. CMS11 SA1 PARC+PMEQ SET EQUIPMENT
  1844. BX7 X7-X7
  1845. SB7 X1
  1846. SA1 ESTF+X1 SET DEVICE NUMBER
  1847. SA1 X1+PFGL
  1848. MX0 -6
  1849. AX1 12
  1850. BX1 -X0*X1
  1851. SB6 X1
  1852.  
  1853. CMS SUBR ENTRY/EXIT
  1854. CMS1 SA1 ESTF-1
  1855. MX6 0
  1856. SA5 ESTF+B7
  1857. SA5 X5+PFGL
  1858. MX0 -6
  1859. AX5 12
  1860. BX4 -X0*X5
  1861. SB6 X4 SAVE DN
  1862. CMS2 SA1 A1+B1
  1863. ZR X1,CMS5 IF EMPTY LINK
  1864. MX5 -8
  1865. SA2 X1+PUGL
  1866. BX3 X6*X2
  1867. BX2 -X5*X2
  1868. IX6 X6+X2
  1869. SA2 X1+PFGL
  1870. MX7 60-LIFD
  1871. SA5 X1+STLL CHECK INITIALIZE STATUS
  1872. AX2 12
  1873. BX2 -X0*X2 DEVICE NUMBER
  1874. BX5 X7*X5 EXTRACT FULL INITIALIZE FLAGS
  1875. IX2 X2-X4 CHECK AGAINST CURRENT DEVICE NUMBER
  1876. CX5 X5
  1877. MX7 1 ALLOW *GO* IF FULL INITIALIZE SET
  1878. LX5 59
  1879. BX7 X7-X5
  1880. SA7 CMSA
  1881. ZR X2,CMS8 IF DN MATCH
  1882. CMS3 ZR X3,CMS5 IF NO DUPLICATION OF BITS IN MASK
  1883. SB3 A1-ESTF
  1884. SX7 B3-B7
  1885. NZ X7,CMS4 IF NOT CURRENT DEVICE
  1886. MX7 1
  1887. SA7 CMSA INDICATE *GO* NOT ALLOWED
  1888. CMS4 ERROR 17 *DUPLICATE BITS IN MASK.*
  1889. EQ CMS6 DISPLAY ERROR
  1890.  
  1891. CMS5 SB3 A1-ESTF-ESMX
  1892. NZ B3,CMS2 IF NOT END OF FAMILY
  1893. SX7 377B
  1894. ZR X6,CMSX IF NO MASK BITS SET
  1895. BX6 X7-X6 TEST MASK
  1896. BX7 X7*X6
  1897. ZR X7,CMSX EXIT MASK OK
  1898.  
  1899. * PROCESS MASK OVER FLOW.
  1900.  
  1901. ERROR 3 *FAMILY MASK NOT EQUAL 377.*
  1902. SX7 0
  1903. SA7 CMSA INDICATE *GO* ALLOWED FOR THIS ERROR
  1904. CMS6 MX7 1
  1905. SX6 B1
  1906. SA7 PARC+PMDM CLEAR DEVICE MASK
  1907. SA6 CNT
  1908. SX7 ENMS
  1909. SA7 ARGP
  1910. RJ PKI PROCESS MASK ERROR
  1911. SA1 PARC+PMDM
  1912. SA5 CMSA CHECK IF *GO* ALLOWED
  1913. MX7 1
  1914. PL X1,CMSX IF NOT *GO*
  1915. CMS7 ZR X5,CMS11 IF *GO* ALLOWED
  1916. EQ CMS1 LOOP
  1917.  
  1918. * PROCESS DUPLICATE DEVICE NUMBER.
  1919.  
  1920. CMS8 SB3 A1-ESTF
  1921. EQ B3,B7,CMS3 IF SAME EQUIPMENT
  1922. ERROR 13 *DUPLICATE DN.*
  1923. CMS9 MX7 1
  1924. SA7 PARC+PMDN CLEAR DEVICE NUMBER
  1925. SX6 B1
  1926. SX7 ENDN
  1927. SA6 CNT
  1928. SA7 ARGP
  1929. RJ PKI PROCESS DN ERROR
  1930. SA1 PARC+PMDN
  1931. SA5 CMSA CHECK IF *GO* ALLOWED
  1932. MI X1,CMS7 IF *GO* ENTERED
  1933. NZ X1,CMS10 IF DN NOT ZERO
  1934. ERROR 20 *DN CANNOT BE ZERO.*
  1935. EQ CMS9 PROCESS ERROR
  1936.  
  1937. CMS10 MX7 1
  1938. EQ CMSX GO PROCESS NEW DN
  1939.  
  1940. CMSA CON 0 INDICATOR FOR ALLOWING *GO* ENTRY
  1941. CRE SPACE 4,15
  1942. ** CRE - CHECK REQUIRED ENTRIES.
  1943. *
  1944. * ENTRY (B5) = ADDRESS OF MST FOR EQUIPMENT.
  1945. *
  1946. * EXIT (X6) = 0 IF NEW PARAMETERS TO PROCESS.
  1947. * (B5) = ADDRESS OF MST FOR EQUIPMENT.
  1948. *
  1949. * USES X - 0, 1, 2, 4, 6, 7.
  1950. * A - 1, 2, 4, 6, 7.
  1951. * B - 5.
  1952. *
  1953. * CALLS PKI.
  1954. *
  1955. * MACROS KEYMES.
  1956.  
  1957.  
  1958. CRE SUBR ENTRY/EXIT
  1959. MX0 42
  1960. SA1 B5+PFGL CHECK FAMILY/PACK NAME
  1961. BX6 X0*X1
  1962. NZ X6,CREX IF FAMILY/PACK NAME SPECIFIED
  1963. SX6 B5+ SAVE MST POINTER
  1964. SA6 TEMP
  1965. CRE1 KEYMES ENNFN *ENTER NEW FAMILY/PACK NAME.*
  1966. SX7 B1+
  1967. SA7 CNT
  1968. RJ PKI PROCESS KEYBOARD INPUT
  1969. SA2 PARC+PMFN
  1970. ZR X2,CRE1 IF FAMILY/PACK NAME NOT ENTERED
  1971. SA4 TEMP RESTORE MST POINTER
  1972. SB5 X4
  1973. MX6 0 NEW PARAMETERS TO PROCESS
  1974. EQ CREX RETURN
  1975. EDD SPACE 4,10
  1976. ** EDD - EDIT DEVICE TRTS.
  1977. *
  1978. * ENTRY (B6) = DEVICE NUMBER.
  1979. * (B7) = EST ORDINAL OF INITIALIZED EQUIPMENT.
  1980. *
  1981. * EXIT B6,B7 NOT CHANGED.
  1982. *
  1983. * USES X - 0, 1, 2, 4, 5, 6.
  1984. * A - 1, 2, 4, 6.
  1985. * B - 3, 4.
  1986. *
  1987. * MACROS SYSTEM.
  1988.  
  1989.  
  1990. EDD SUBR ENTRY/EXIT
  1991. SA1 ESTF+B7 SET IMS PARAMETER WORD
  1992. MX0 -8
  1993. SB3 -B1
  1994. SA4 X1+PUGL
  1995. BX0 -X0*X4 EXTRACT DEVICE MASK
  1996. LX0 59-11
  1997. ZR X0,EDDX IF NOT MASTER DEVICE
  1998. SB0 0
  1999. EDD1 SB3 B3+B1
  2000. SB4 ESMX
  2001. SX5 B3
  2002. EQ B3,B4,EDDX IF END OF EQUIPMENTS
  2003. SA1 ESTF+B3
  2004. ZR X1,EDD1 IF NO ENTRY
  2005. EQ B3,B7,EDD1 IF EQUIPMENT BEING INITIALIZED
  2006. LX5 47-11
  2007. SA2 X1+STLL
  2008. MX4 60-LIPF
  2009. BX2 X4*X2
  2010. BX6 X0+X5
  2011. NZ X2,EDD1 IF FULL OR *PF* INITIALIZE SET
  2012. SA6 EDPA
  2013. SYSTEM IMS,R,EDPA,EDT EDIT TRT ON DEVICE
  2014. EQ EDD1 LOOP FOR NEXT EQUIPMENT
  2015.  
  2016. EDPA CON 0 12/MASK, 12/EQ, 36/0
  2017.  
  2018. ECT SPACE 4,10
  2019. ** ECT - EDIT CATALOGS.
  2020. *
  2021. * ENTRY (B6) = DEVICE NUMBER.
  2022. * (B7) = EST ORDINAL.
  2023. *
  2024. * EXIT (B6) (B7) UNCHANGED.
  2025. *
  2026. * USES ALL BUT B6 AND B7
  2027. *
  2028. * CALLS OPC, RDC, SCT, SFF, WTC.
  2029. *
  2030. * MACROS CALLPFU, MESSAGE, RECALL, RETURN, SYSTEM.
  2031.  
  2032.  
  2033. ECT SUBR ENTRY/EXIT
  2034. RETURN CATS,R
  2035. SB5 ESTF-1
  2036. NZ B6,ECT1 IN DEVICE NUMBER .NE. 0
  2037. MESSAGE MESD * INTERNAL ERROR IN MSI.*
  2038. RJ ABT ABORT *MSI*
  2039.  
  2040. ECT1 SB4 B5-ESTF-ESMX+1
  2041. ZR B4,ECTX IF END FAMILY
  2042. SA1 B5+B1
  2043. SB5 B5+B1
  2044. ZR X1,ECT1 IF EMPTY LINK
  2045. SA3 X1+ALGL
  2046. SA5 X1+PUGL
  2047. MX0 -8
  2048. MX2 -12
  2049. SA4 X1+STLL
  2050. LX3 -12
  2051. BX7 -X0*X5 DEVICE MASK
  2052. MX0 60-LIPF
  2053. BX6 -X2*X3 MASK CATALOG TRACK COUNT
  2054. ZR X7,ECT1 IF NOT MASTER DEVICE
  2055. SA6 CNT SAVE CATALOG TRACK COUNT
  2056. BX4 X0*X4
  2057. SA5 X1+PFGL
  2058. NZ X4,ECT1 IF FULL OR *PF* INITIALIZE SET
  2059. RJ OCT OPEN CATALOG
  2060. ECT2 RJ RDC READ CATALOG ENTRIES
  2061. RJ SFF SEARCH FOR FILES AND DELETE
  2062. ZR X6,ECT3 IF NO FILES DELETED
  2063. RJ WTC REWRITE UPDATED CATALOG
  2064. ECT3 PL X7,ECT2 IF NOT END OF CATALOG TRACK
  2065. RJ ACT ADVANCE TO NEXT CATALOG TRACK
  2066. PL X7,ECT2 IF NOT END OF CATALOG TRACKS
  2067. SA1 CATS DROP *PFU*
  2068. SX7 10B
  2069. MX0 42
  2070. BX6 X0*X1
  2071. BX7 X7+X6 SET FUNCTION TO DROP *PFU*
  2072. SA7 A1
  2073. RECALL A1 WAIT FOR PFU TO COMPLETE
  2074. CALLPFU UIFT,CTCU,R CLEAR UTILITY INTERLOCK
  2075. RETURN CATS
  2076. EQ ECT1 LOOP FOR NEXT EQUIPMENT
  2077. ABT SPACE 4,10
  2078. ** ABT - ABORT JOB.
  2079. *
  2080. * USES X - 0, 1, 2, 6, 7.
  2081. * A - 1, 2, 6, 7.
  2082. * B - 3, 5.
  2083. *
  2084. * MACROS ABORT, CALLPFU, MESSAGE, RECALL, ROUTE, SYSTEM.
  2085.  
  2086.  
  2087. ABT SUBR ENTRY
  2088. ABT1 SA1 SSID
  2089. SX1 X1-DSSI
  2090. NZ X1,ABT2 IF NOT DEADSTART SEQUENCING
  2091. MESSAGE MESL
  2092. + EQ * HANG
  2093.  
  2094. ABT2 SYSTEM IMS,R,B1,CIT CLEAR *CMS* INTERLOCK
  2095. SB3 0
  2096. SB5 ESMX
  2097. ABT3 SA2 ESTF+B3 CHECK FOR ISD INTERLOCK
  2098. LX2 59-58
  2099. PL X2,ABT4 IF EQUIPMENT NOT INTERLOCKED
  2100. SX6 B3
  2101. LX6 48 SET EST ORDINAL
  2102. SA6 CIRB
  2103. SYSTEM IMS,R,CIRB,ISD CLEAR DEVICE INTERLOCK
  2104. SA1 CIRB
  2105. PL X1,ABT3 IF INTERLOCK NOT CLEARED
  2106. ABT4 SB3 B3+1
  2107. LT B3,B5,ABT3 IF NOT END OF EQUIPMENTS
  2108. SA2 PFUF
  2109. SA1 CATS CHECK *PFU* ACTIVITY
  2110. SX7 10B
  2111. MX0 42
  2112. ZR X2,ABT5 IF *PFU* NOT ACTIVE
  2113. BX6 X0*X1
  2114. BX7 X7+X6
  2115. SA7 A1
  2116. RECALL A1 WAIT FOR PFU TO COMPLETE
  2117. ABT5 SA1 UIFL
  2118. ZR X1,ABT6 IF UTILITY INTERLOCK NOT SET
  2119. SA1 UIFT
  2120. SX2 B1 FORCE FET COMPLETE
  2121. BX6 X1+X2
  2122. SA6 A1
  2123. CALLPFU A1,CTCU,R CLEAR UTILITY INTERLOCK
  2124. ABT6 MESSAGE MESB * MSI ABORTED INITIALIZE MAY NOT BE
  2125. * COMPLETE.*
  2126. SYSTEM DMD,R,RFL=
  2127. SETFS OUTPUT,0 CHANGE FILE STATUS FOR SSJ= OUTPUT
  2128. ROUTE ABTA,R
  2129. ABORT ABORT *MSI*
  2130.  
  2131.  
  2132. * ROUTE BLOCK FOR MEMORY DUMP.
  2133.  
  2134. ABTA VFD 42/0LOUTPUT,18/0
  2135. VFD 24/0,12/2HLP,6/0,18/FRCS+FRDC
  2136. BSS DPBL-2
  2137. OCT SPACE 4,10
  2138. ** OCT - OPEN CATALOG.
  2139. *
  2140. * ENTRY (B5) = ESTF POINTER.
  2141. * (B6) = DEVICE NUMBER.
  2142. * (B7) = EST ORDINAL.
  2143. * (X5) = *PFGL* WORD OF MST.
  2144. * (X7) = DEVICE MASK.
  2145. *
  2146. * EXIT B5, B6, B7, NOT CHANGED.
  2147. * CATALOG OPENED AND *PFU* ACTIVE.
  2148. * CATS FET NOT BUSY.
  2149. *
  2150. * USES ALL BUT B5, B6, B7.
  2151. *
  2152. * MACROS CALLPFU, RECALL.
  2153.  
  2154.  
  2155. OCT SUBR ENTRY/EXIT
  2156. MX0 -6
  2157. AX5 12
  2158. BX3 -X0*X5
  2159. SB2 X3 SAVE DN OF THIS EQIPMENT
  2160. LX5 12
  2161. SB4 7
  2162. LX7 59-7
  2163. OCT1 MI X7,OCT2 IF MASK BIT SET
  2164. LX7 1
  2165. SB4 B4-B1
  2166. EQ OCT1 FORM USER NAME FOR THIS DEVICE
  2167.  
  2168. OCT2 MX0 42
  2169. SX7 B5-ESTF EQ NUMBER
  2170. SA7 SCRB PF DESCRIPTION (42/0, 6/, 12/ EST ORDINAL)
  2171. SX6 B4 SAVE USER INDEX
  2172. SA6 A7+B1
  2173. SX1 A7 SET ADDRESS OF PF DESCRIPTION
  2174. SX2 A6 SET ADDRESS OF USER INDEX
  2175. LX1 18
  2176. BX7 X1+X2
  2177. SA7 CATS+FTPM
  2178. CALLPFU CATS,CTCT,R GET CATALOG TRACK PARAMETERS
  2179.  
  2180. * OPEN CATALOG FILE.
  2181.  
  2182. SX2 5 FILE STATUS
  2183. SA1 CATS+FTPM GET CATALOG TRACK PARAMETERS
  2184. MX0 -24
  2185. BX1 -X0*X1 SET EST ORDINAL AND FIRST TRACK
  2186. MX0 -12
  2187. BX6 -X0*X1 SET CURRENT TRACK
  2188. LX1 36
  2189. BX2 X2+X1 BUILD CATALOG TRACK FST ENTRY
  2190. LX6 24
  2191. BX7 X2+X6
  2192. SA7 A1
  2193. BX6 X6-X6 CLEAR SECTOR COUNT
  2194. SA6 CATS+FTSC
  2195. CALLPFU CATS,CTOP,R OPEN CATALOG FILE
  2196.  
  2197. * SET UTILITY INTERLOCK ON DEVICE.
  2198.  
  2199. SX7 B5-ESTF SET EQUIPMENT TO INTERLOCK
  2200. SX2 UIFL SET INTERLOCK FLAG ADDRESS
  2201. LX7 48
  2202. BX6 X7+X2
  2203. SA6 UIFT+FTPM
  2204. CALLPFU UIFT,CTSU,R SET PF UTILITY INTERLOCK
  2205.  
  2206. * ACTIVATE PFU LOAD PROCESSOR.
  2207.  
  2208. SA1 CATS CLEAR CATS FET STATUS
  2209. SX7 B2 SET MASTER DEVICE NUMBER
  2210. MX2 42
  2211. SX3 PFUF SET ADDRESS OF PFU ACTIVE FLAG
  2212. LX7 54
  2213. BX6 X7+X3
  2214. SA6 CATS+FTPM
  2215. BX1 X2*X1
  2216. SX2 B1 SET CATS FET COMPLETE
  2217. BX7 X1+X2
  2218. SA7 A1
  2219.  
  2220. * IT IS NECESSARY TO DO A SEPARATE RECALL ON CATS RATHER THAN
  2221. * CALLING THE CTLM PROCESSOR OF PFU WITH AUTO RECALL SINCE PFU
  2222. * STAYS AT THE CONTROL POINT AFTER INITIALIZING THE CTLM
  2223. * PROCESSOR AND SETTING THE FET COMPLETE BUT DOES NOT RESTART
  2224. * THE CPU.
  2225.  
  2226. CALLPFU CATS,CTLM ACTIVATE PFU LOAD PROCESSOR
  2227. RECALL CATS WAIT FOR PFU TO INITIALIZE
  2228. EQ OCTX EXIT
  2229.  
  2230.  
  2231. ACT SPACE 4,10
  2232. ** ACT - ADVANCE CATALOG TRACK.
  2233. *
  2234. * ENTRY (B5) = ESTF POINTER.
  2235. * (B6) = DEVICE NUMBER.
  2236. * (B7) = EST ORDINAL.
  2237. * CATS FET NOT BUSY.
  2238. *
  2239. * EXIT B5,B6,B7 UNCHANGED.
  2240. * (X7) = 0 CATALOG TRACK ADVANCED.
  2241. * (X7) .LT. 0 END OF CATALOG TRACKS.
  2242. * CATS FET NOT BUSY.
  2243. *
  2244. * USES X - 0, 1, 2, 3, 6, 7.
  2245. * A - 1, 2, 6, 7.
  2246. *
  2247. * MACROS RECALL.
  2248.  
  2249.  
  2250. ACT SUBR ENTRY/EXIT
  2251. SA1 CNT
  2252. SX6 X1-1
  2253. SA6 A1
  2254.  
  2255. * ADVANCE TO NEXT CATALOG TRACK
  2256.  
  2257. ACT1 SA2 SCRB+1 18/UI
  2258. SX7 X2+10B
  2259. SA7 A2 18/NEXT UI
  2260. SX0 A7-B1
  2261. SX7 A7
  2262. LX0 18
  2263. BX7 X0+X7 18/SCR,18/SCR+1
  2264. SA1 CATS+1 REWIND BUFFER
  2265. SA2 A1-B1 SET POSITION FUNCTION CODE IN FET
  2266. SA7 CATS+FTCA
  2267. MX3 42
  2268. SX6 X1
  2269. BX7 X7-X7 CLEAR SECTOR COUNTER
  2270. SA6 A1+B1
  2271. SA7 CATS+FTSC
  2272. BX7 X3*X2
  2273. SA6 A6+B1
  2274. SA7 A2 ISSUE FILE POSITION REQUEST
  2275. RECALL A2 WAIT FOR *PFU* TO PROCESS REQUEST
  2276. SA1 CNT CHECK IF END OF CATALOG TRACKS
  2277. MX7 1
  2278. ZR X1,ACTX IF END OF CATALOG TRACKS
  2279. MX7 0
  2280. EQ ACTX RETURN
  2281. RDC SPACE 4,10
  2282. ** RDC - READ CATALOG.
  2283. *
  2284. * ENTRY (B5) = ESTF POINTER.
  2285. * (B6) = DEVICE NUMBER.
  2286. * (B7) = EST ORDINAL.
  2287. *
  2288. * EXIT B5,B6,B7 UNCHANGED.
  2289. * CATALOGS READ INTO CATS BUFFER.
  2290. * CATS FET NOT BUSY.
  2291. *
  2292. * USES X - 0, 1, 2, 3, 6, 7.
  2293. * A - 1, 3, 6, 7.
  2294. *
  2295. * MACROS RECALL.
  2296.  
  2297.  
  2298. RDC SUBR ENTRY/EXIT
  2299. SA1 CATS
  2300. MX0 42
  2301. BX6 X0*X1
  2302. SX2 4 READ FUNCTION
  2303. BX6 X6+X2
  2304. SA3 A1+B1 GET FIRST
  2305. BX7 -X0*X3
  2306. SA7 A3+B1 RESET IN AND OUT
  2307. SA7 A7+B1
  2308. SA6 A1 SET FUNCTION
  2309. RECALL CATS
  2310. MX7 0
  2311. SA7 CATS+FTSC CLEAR SECTOR COUNT
  2312. EQ RDCX RETURN
  2313. SFF SPACE 4,20
  2314. ** SFF - SEARCH FOR FILES.
  2315. *
  2316. * ENTRY (B5) = ESTF POINTER.
  2317. * (B6) = DEVICE NUMBER.
  2318. * (B7) = EST ORDINAL.
  2319. *
  2320. * EXIT B5,B6,B7 UNCHANGED.
  2321. * (X6) = 0 IF CATALOG NOT CHANGED.
  2322. * (X7) .LT. 0 IF EOI ENCOUNTERED.
  2323. * CATALOG ENTRIES (PFC-S) THAT POINT TO FILES ON
  2324. * SPECIFIED DEVICE ARE CHANGED AS FOLLOWS.
  2325. * 1. IF PFC HAS VALID ALTERNATE STORAGE ADDRESS (ASA),
  2326. * THE DISK ADDRESS IS CLEARED.
  2327. * 2. IF THE PFC HAS NO ASA, THEN THE PFC IS DELETED
  2328. * BY CLEARING THE USER INDEX.
  2329. *
  2330. * USES X - 0, 1, 2, 4, 6, 7.
  2331. * A - 1, 2, 4, 7.
  2332. * B - 3, 4.
  2333.  
  2334.  
  2335. SFF SUBR ENTRY/EXIT
  2336. SX7 B0
  2337. SX6 B0
  2338. SA1 CATS+2 IN
  2339. SA2 CATS+1 FIRST
  2340. SX0 177B
  2341. SA2 X2
  2342. BX0 X0*X2 CHECK FOR EMPTY SECTOR
  2343. NZ X0,SFF1 IF NOT EMPTY
  2344. MX7 1
  2345. EQ SFFX EXIT
  2346.  
  2347. SFF1 SB4 CATB+1
  2348. SB3 X0 WORDS IN SECTOR
  2349. MX0 -6
  2350. SX1 B1 SET WRITE WITHOUT EOI FLAG
  2351. LX1 53-0
  2352. BX7 X1+X2
  2353. SA7 A2
  2354. SFF2 SA1 B4+FCEO CHECK DEVICE NUMBER
  2355. SX4 B6
  2356. LX1 59-35
  2357. BX1 -X0*X1 MASK OFF DN
  2358. IX4 X1-X4
  2359. NZ X4,SFF4 IF DN-S DO NOT MATCH
  2360.  
  2361. * CHECK ALTERNATE STORAGE COPIES OF FILE DATA. IF THE FILE
  2362. * DATA RESIDES ON TAPE OR CARTRIDGE ALTERNATE STORAGE, THE
  2363. * DISK ADDRESS AND THE DEVICE NUMBER IN THE CATALOG ENTRY
  2364. * WILL BE CLEARED TO FORCE A RESTAGE OF THE FILE ON THE NEXT
  2365. * *ATTACH*. OTHERWISE, THE CATALOG ENTRY WILL BE DELETED.
  2366.  
  2367. SA1 B4+FCTV
  2368. MX2 -24
  2369. BX7 -X2*X1
  2370. NZ X7,SFF2.1 IF TAPE ALTERNATE STORAGE COPY EXISTS
  2371. SA1 B4+FCAA
  2372. MX2 -36
  2373. BX7 -X2*X1
  2374. ZR X7,SFF3 IF NO CARTRIDGE ALTERNATE STORAGE COPY
  2375. LX1 59-48
  2376. NG X1,SFF3 IF CARTRIDGE COPY OBSOLETE
  2377. SFF2.1 SA2 B4+FCBT CLEAR DISK ADDRESS OF FILE
  2378. MX7 48
  2379. LX7 12
  2380. BX7 X7*X2
  2381. SA7 A2
  2382. SA2 B4+FCDN CLEAR DEVICE NUMBER
  2383. MX7 54
  2384. LX7 36
  2385. BX7 X7*X2
  2386. SA7 A2
  2387. SX6 B1 FORCE CATALOG UPDATE
  2388. EQ SFF4 CHECK NEXT CATALOG ENTRY
  2389.  
  2390. SFF3 SA1 B4+FCUI CLEAR USER INDEX OF FILE
  2391. MX2 42
  2392. BX7 X2*X1 CLEAR USER INDEX
  2393. SA7 A1
  2394. SX6 B1 FORCE CATALOG UPDATE
  2395.  
  2396. * PROCESS NEXT CATALOG ENTRY.
  2397.  
  2398. SFF4 SB4 B4+NWCE
  2399. SB3 B3-NWCE
  2400. NZ B3,SFF2 IF MORE ENTRIES IN THIS SECTOR
  2401. SA1 CATS+2 GET IN
  2402. SA2 CATS+FTSC
  2403. SA4 CATS+4 GET LIMIT
  2404. SB3 B0
  2405. SX7 X2+B1 BUMP SECTOR COUNT
  2406. SX2 B4+B1
  2407. IX2 X1-X2 IN - BUFFER POINTER
  2408. SA7 A2
  2409. IX4 X4-X1 LIMIT - IN
  2410. MI X2,SFFX IF POINTER .EQ. IN
  2411. SA1 B4 READ NEXT CONTROL WORD
  2412. MX2 -24
  2413. SX7 177B
  2414. BX2 -X2*X1
  2415. BX7 X7*X1
  2416. SB4 B4+B1 SET TO NEXT CATALOG ENTRY
  2417. SB3 X7 WORDS IN SECTOR
  2418. MX7 1 SET WRITE WITHOUT EOI FLAG
  2419. LX7 53-59
  2420. BX7 X7+X1
  2421. SA7 A1
  2422. NZ X2,SFF2 IF MORE DATA
  2423. MX7 1 FLAG EOI ENCOUNTERED
  2424. EQ SFFX RETURN
  2425. WTC SPACE 4,10
  2426. ** WTC - WRITE CATALOG BUFFER TO DISK.
  2427. *
  2428. * ENTRY (B5) = ESTF POINTER.
  2429. * (B6) = DEVICE NUMBER.
  2430. * (B7) = EST ORDINAL.
  2431. *
  2432. * EXIT B5,B6,B7 UNCHANGED.
  2433. * CATALOGS WRITTEN FROM CATS BUFFER.
  2434. * CATS FET NOT BUSY.
  2435. *
  2436. * USES X - 0, 1, 2, 6.
  2437. * A - 1, 6.
  2438. *
  2439. * MACROS RECALL.
  2440.  
  2441.  
  2442. WTC SUBR ENTRY/EXIT
  2443. SA1 CATS
  2444. MX0 42
  2445. SX2 2 WRITE FUNCTION
  2446. BX6 X0*X1
  2447. BX6 X6+X2
  2448. SA6 CATS WRITE CATALOG
  2449. RECALL CATS
  2450. EQ WTCX RETURN
  2451. TITLE SUBROUTINES.
  2452. ALD SPACE 4,15
  2453. ** ALD - ALLOCATE *LDAM* DEVICES.
  2454. *
  2455. * ENTRY (A3) = EST ENTRY ADDRESS.
  2456. * (A5) = *PALF* ADDRESS.
  2457. * (X2) = EST ORDINAL.
  2458. * (X5) = UNIT COUNT-1 REMAINING TO ALLOCATE.
  2459. * (X7) = ORIGINAL UNIT COUNT.
  2460. * (B2) = *PKL* INDEX.
  2461. *
  2462. * EXIT (A5) = *PALF* ADDRESS.
  2463. * (B2) = *PKL* INDEX.
  2464. * (X5) = .LT. 0 IF DEVICE ALLOCATED.
  2465. *
  2466. * USES X - ALL.
  2467. * A - 1, 2, 3, 4, 6, 7.
  2468. * B - 2, 3, 4, 5.
  2469. *
  2470. * CALLS AUL.
  2471.  
  2472.  
  2473. ALD SUBR ENTRY/EXIT
  2474. SA3 A3 GET EST ENTRY
  2475. SB3 X2 SAVE EST ORDINAL
  2476. SA1 ALDA GET ALLOCATION MASK
  2477. SB4 X2 SET SEARCH INDEX
  2478. BX0 X1
  2479. BX1 X0*X3 MATCH CRITERIA
  2480. LX3 59-56
  2481. PL X3,ALDX IF DEVICE NOT REMOVABLE
  2482. ALD1 SB4 B4+B1 INCREMENT EST ORDINAL
  2483. SX3 B4
  2484. R= X2,ESTE
  2485. IX2 X3*X2
  2486. SA2 ESTB+X2+EQDE GET EST ENTRY
  2487. SA3 B4+ESTF
  2488. SX4 B4-ESMX
  2489. PL X4,ALDX IF END OF EST ENTRIES
  2490. BX6 X0*X2 CHECK DEVICE FOR MATCH
  2491. BX6 X1-X6
  2492. SA4 X3+STLL
  2493. NZ X6,ALD1 IF NO DEVICE MATCH
  2494.  
  2495. * THE CHANNELS OF THE FIRST DEVICE ARE COMPARED WITH
  2496. * THE CHANNELS OF THE LINK CANDIDATES TO INSURE THAT ALL
  2497. * ITS CHANNELS ARE CONTAINED IN THE LINK DEVICES CHANNELS.
  2498.  
  2499. SB5 B0 INITIALIZE CHANNEL COMPARE
  2500. LX2 24 POSITION CHANNELS (B * * * * * * * A)
  2501. MX3 -12
  2502. BX6 -X3*X2 CHANNEL *A*
  2503. SA6 ALDB
  2504. LX2 12
  2505. BX6 -X3*X2 CHANNEL *B*
  2506. SA6 A6+B1
  2507. SX3 B3
  2508. R= X2,ESTE
  2509. IX3 X3*X2
  2510. SA3 ESTB+X3+EQDE GET EST ENTRY OF FIRST EQUIPMENT
  2511. LX3 24
  2512. SA2 ALDB
  2513. ALD2 MX6 -12 CHECK CHANNEL WITH LIST
  2514. BX6 -X6*X3
  2515. ZR X6,ALD3 IF CHANNEL .EQ. 0
  2516. BX2 X2-X6
  2517. ZR X2,ALD4 IF CHANNELS COMPARE
  2518. SA2 A2+B1
  2519. NZ X2,ALD2 IF MORE CHANNELS TO CHECK
  2520. EQ ALD1 LOOP FOR NEXT EQUIPMENT
  2521.  
  2522. ALD3 NZ B5,ALD4 IF NOT CHANNEL *A*
  2523. NZ X2,ALD1 IF LIST CHANNEL *A* .NE. 0
  2524. ALD4 LX3 12 TEST NEXT CHANNEL
  2525. SB5 B5+B1
  2526. SA2 ALDB
  2527. SX6 B5-2 *** TWO CHANNEL SUPPORT
  2528. NZ X6,ALD2 IF NOT END OF CHANNELS
  2529. MX6 12 CHECK FOR ACTIVE USES
  2530. SX2 B4
  2531. MX3 60-LIFD
  2532. LX6 24
  2533. BX6 X6*X4
  2534. BX3 X3*X4
  2535. NZ X6,ALD1 IF ACTIVE USERS
  2536. ZR X3,ALD1 IF TOTAL INITIALIZE NOT SET
  2537. LX7 39
  2538. LX4 0-3
  2539. BX7 X7+X2 FORM *PKL* ENTRY
  2540. MX6 -3
  2541. SA7 B2
  2542. BX7 -X6*X4
  2543. SB2 B2+B1 INCREMENT *PKL* INDEX
  2544. SX7 X7+B1 ADJUST UNIT COUNT
  2545. IX5 X5-X7
  2546. PL X5,ALD1 IF MORE UNITS TO ALLOCATE
  2547. RJ AUL ASSEMBLE UNIT LIST
  2548. EQ ALDX RETURN
  2549.  
  2550. ALDA VFD 12/5600B *MS*, SHARED, REMOVABLE, *LDAM*
  2551. VFD 24/0
  2552. VFD 12/7777B 0N/OFF AND TYPE
  2553. VFD 12/0
  2554. ALDB BSS 3 CHANNEL LIST FOR DEVICE MATCH
  2555. AUL SPACE 4,10
  2556. ** AUL - ASSEMBLE UNIT LIST.
  2557. *
  2558. * ENTRY (B3) = EST ORDINAL.
  2559. *
  2560. * EXIT *DDLL* LIST BUILT.
  2561. *
  2562. * USES X - 0, 1, 2, 3, 4, 6, 7.
  2563. * A - 1, 2, 3, 4, 7.
  2564. * B - 3, 4, 5, 6, 7.
  2565.  
  2566.  
  2567. AUL3 SA2 B3+ESTF FORM *DDLL*
  2568. MX0 -48
  2569. LX7 B5,X7
  2570. SA1 X2+DDLL
  2571. BX4 -X0*X7
  2572. BX1 X0*X1
  2573. BX7 X1+X4
  2574. SA7 X2+DDLL SET *DDLL* IMAGE IN MST
  2575.  
  2576. AUL SUBR ENTRY/EXIT
  2577. SB4 PKL INITIALIZE INDEX
  2578. SX1 B3
  2579. MX0 -6
  2580. SA4 PARC+PMNP GET UNIT COUNT
  2581. SB5 B0 INITIALIZE SHIFT INDEX
  2582. SB6 X4
  2583. AUL1 SA1 X1+ESTF
  2584. SA3 X1+DDLL
  2585. BX2 X3
  2586. MX6 -3 GET ORIGINAL UNIT COUNT
  2587. LX2 -51
  2588. SB7 6
  2589. BX6 -X6*X2
  2590. AUL2 BX4 -X0*X3 MASK UNIT
  2591. BX7 X0*X7
  2592. BX7 X4+X7 MERGE NEXT UNIT
  2593. SX6 X6-1
  2594. SB6 B6-B1
  2595. LX7 -6
  2596. AX3 6
  2597. SB5 B5+B7
  2598. ZR B6,AUL3 IF END OF ASSEMBLY
  2599. PL X6,AUL2 IF MORE UNITS TO MERGE
  2600. SA1 B4 GET NEXT EQUIPMENT
  2601. SB4 B4+B1
  2602. EQ AUL1 LOOP TO ASSEMBLE NEXT UNIT
  2603. BPT SPACE 4,10
  2604. ** BPT - BUILD MST UPDATING PARAMETER TABLE.
  2605. *
  2606. * ENTRY (X1) = EST ORDINAL.
  2607. * INTERNAL EST AND MST REFLECT NEW PARAMETERS.
  2608. * (X5) = *PKL* LIST ENTRY.
  2609. *
  2610. * EXIT *TUMS* BUILT FOR IMS FUNCTION 6.
  2611. * (X5) = UNCHANGED.
  2612. *
  2613. * USES X - 0, 2, 3, 4, 6, 7.
  2614. * A - 2, 3, 4, 6, 7.
  2615.  
  2616.  
  2617. BPT SUBR ENTRY/EXIT
  2618. SA2 X1+ESTF MST ADDRESS
  2619. R= X3,ESTE
  2620. IX3 X1*X3
  2621. SA3 ESTB+X3+EQDE GET NEW EST ENTRY
  2622. SA4 X2+PFGL GET NEW MST WORDS
  2623. BX6 X3
  2624. LX7 X4
  2625. SA3 X2+PUGL
  2626. SA6 TUMS
  2627. MX0 1 SET 16-WORD PFC FLAG
  2628. SA4 X2+MDGL
  2629. LX0 57-59
  2630. SA7 A6+B1 TUMS + 1
  2631. LX6 X3
  2632. BX7 X0+X4
  2633. SA6 A7+B1 TUMS + 2
  2634. SA7 A6+B1 TUMS + 3
  2635. MX0 -12
  2636. SA3 X2+ALGL CATALOG COUNT
  2637. AX3 12
  2638. BX6 -X0*X3
  2639. SA4 X2+DILL ALGORITHM INDEX
  2640. SA3 X2+STLL
  2641. LX6 12
  2642. MX7 LIHD-LIFD+1
  2643. BX6 X6+X1 NC, EQ
  2644. LX7 LIHD-59
  2645. BX4 -X0*X4
  2646. LX6 12
  2647. BX7 X7*X3
  2648. ZR X7,BPT1 IF NOT CHANGING ALGORITHM INDEX
  2649. BX6 X6+X4 NC, EQ, AI
  2650. BPT1 LX3 59-LDIU
  2651. LX6 24
  2652. LX0 12
  2653. BX6 -X0+X6 NC, EQ, AI, CI
  2654. SA4 X2+DDLL GET NEW DEVICES UNIT LIST
  2655. PL X3,BPT2 IF CLEARING DEVICE IN USE IN CHAIN
  2656. SA4 X2+STLL GET CURRENT UNIT COUNT
  2657. SA3 X2+DDLL GET CURRENT UNIT LIST
  2658. BX6 X0*X6
  2659. MX0 -48
  2660. LX4 59-14
  2661. MX2 3
  2662. BX7 -X0*X3
  2663. LX2 -9
  2664. BX4 X2*X4
  2665. BX4 X4+X7
  2666. BPT2 SX3 X5 SET NEXT EQUIPMENT IN CHAIN
  2667. BX6 X6+X3
  2668. SA6 A7+B1 TUMS+4
  2669. BX7 X4
  2670. MX6 0
  2671. SA7 A6+B1 TUMS+5
  2672. SA6 A7+B1 TUMS+6 = CLEAR REPLY WORD
  2673. EQ BPTX RETURN
  2674. CIR SPACE 4,10
  2675. ** CIR - CHECK INITIALIZATION REQUESTED.
  2676. *
  2677. * EXIT (B6) .LT. 0 IF NO EQUIPMENT FOUND.
  2678. * (B6) = FIRST EQUIPMENT FOUND.
  2679. *
  2680. * USES X - 0, 1, 2, 3, 4, 6, 7.
  2681. * A - 1, 2, 3, 4, 6.
  2682. * B - 4, 5, 6.
  2683. *
  2684. * MACROS SYSTEM.
  2685.  
  2686.  
  2687. CIR SUBR ENTRY/EXIT
  2688. SB3 NOPE INITIALIZE EST ORDINAL FOR SEARCH
  2689. SB6 -B1
  2690. SB5 ESMX
  2691. CIR1 EQ B3,B5,CIRX IF END OF EQUIPMENTS
  2692. SA2 ESTF+B3
  2693. SB3 B3+B1
  2694. ZR X2,CIR1 IF EMPTY LINK
  2695. SX6 B3-B1 EST ORDINAL
  2696. R= X1,ESTE
  2697. IX1 X6*X1
  2698. SA1 ESTB+X1+EQDE GET EST ENTRY
  2699. SA4 X2+STLL
  2700. NG X4,CIR2 IF FORMAT PENDING
  2701. MX3 60-LIPF
  2702. BX7 X3*X4
  2703. LX4 59-LIRP
  2704. PL X4,CIR1 IF NO INITIALIZE REQUESTS PENDING
  2705. BX3 X1
  2706. LX4 LIRP-LUNL
  2707. MI X4,CIR1 IF DEVICE UNLOADED
  2708. LX1 59-57
  2709. BX4 X3
  2710. LX4 59-49
  2711. LX3 59-52
  2712. BX1 X3+X1
  2713. LX6 48
  2714. NG X4,CIR2 IF DEVICE OFF OR DOWN
  2715. PL X1,CIR3 IF NOT SHARED DEVICE
  2716. ZR X7,CIR3 IF NOT GLOBAL INITIALIZE
  2717. SA6 CIRA
  2718. PL X3,CIR1.1 IF NOT AN ISD DEVICE
  2719. SX7 B1
  2720. BX6 X6+X7
  2721. SA6 CIRB
  2722. SYSTEM IMS,R,CIRB,ISD INTERLOCK DEVICE
  2723. SA1 CIRB
  2724. PL X1,CIR2 IF DEVICE NOT INTERLOCKED
  2725. SA2 B3+ESTF-1 SET DEVICE INTERLOCKED FLAG
  2726. MX7 1
  2727. LX7 -1
  2728. BX7 X7+X2
  2729. SA7 A2
  2730. CIR1.1 SYSTEM IMS,R,CIRA,CSD CHECK DEVICE STATUS
  2731. SA1 CIRA CHECK REPLY
  2732. NG X1,CIR3 IF DEVICE UNLOADED IN OTHER MACHINES
  2733. CIR2 SA4 A4 CLEAR INITIALIZE REQUESTS
  2734. MX3 60-LIRP
  2735. BX4 -X3*X4
  2736. MX3 48-LIMF
  2737. LX3 48
  2738. BX6 -X3*X4
  2739. SA6 A4+
  2740. EQ CIR1 LOOP ON SEARCH
  2741.  
  2742. CIR3 PL B6,CIR1 IF EQUIPMENT ALREADY FOUND
  2743. SB6 B3-B1
  2744. SX7 B3-B1 SET EQUIPMENT TO PROCESS
  2745. SX1 B3+1000B-1 ENSURE LEADING ZEROES IN CONVERSION
  2746. MX0 -18
  2747. SA7 PARC+PMEQ
  2748. RJ COD
  2749. SA2 =7L
  2750. BX6 -X0*X6
  2751. SA6 EQ
  2752. BX7 X6+X2
  2753. LX7 -18
  2754. SA7 EQDS+1 SET EST ORDINAL IN K-DISPLAY
  2755. EQ CIR1 LOOP ON SEARCH
  2756.  
  2757.  
  2758. CIRA CON 0 IMS REQUEST/REPLY AREA
  2759. CIRB CON 0 ISD INTERLOCK STATUS
  2760. CMC SPACE 4,10
  2761. ** CMC - CHECK MODE CHANGE.
  2762. *
  2763. * ENTRY (PARC+PMEQ) = EQUIPMENT TO CHECK FOR MODE CHANGE.
  2764. * (B5) = MST ADDRESS OF EQUIPMENT.
  2765. *
  2766. * EXIT (X7) = 0 IF NO FULL TRACK ACCESS WHEN REQUIRED.
  2767. * TO *ABT* IF INTERNAL ERROR DETECTED.
  2768. *
  2769. * USES X - ALL.
  2770. * A - 1, 2, 3, 4, 6, 7.
  2771. * B - 3, 6.
  2772. *
  2773. * CALLS PMC.
  2774.  
  2775.  
  2776. CMC4 SX6 -B3 SET *CLEAR* OVERRIDE
  2777. SA6 CLOV
  2778. MX0 18
  2779. SA4 EQ
  2780. SA1 ERROR23 FORM MESSAGE
  2781. LX0 -12
  2782. BX6 -X0*X1
  2783. LX4 48-18
  2784. BX6 X6+X4
  2785. SA6 A1 *EQXXX, NO FULL TRACK ACCESS.*
  2786. BX7 X7-X7
  2787.  
  2788. CMC SUBR ENTRY/EXIT
  2789. SA4 PARC+PMEQ
  2790. SX7 B1
  2791. SB3 X4
  2792. SA3 B5+STLL
  2793. LX3 59-LIHD
  2794. SB6 B0 INDICATE HALF TRACK
  2795. NG X3,CMC1 IF HALF TRACK MODE
  2796. LX3 LIHD-LIFD
  2797. PL X3,CMCX IF NO MODE CHANGE
  2798. BX3 X3-X3
  2799. CMC1 RJ PMC PROCESS MODE CHANGE
  2800. NG X5,CMC4 IF NO FULL TRACK ACCESS
  2801. SB3 NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  2802. CMC2 SB3 B3+B1 ADVANCE EST ORDINAL
  2803. SX7 B1
  2804. SB4 B3-ESMX
  2805. ZR B4,CMCX IF END OF EST
  2806. SA2 B3+ESTF
  2807. SB4 X2
  2808. EQ B4,B5,CMC2 IF CURRENT EQUIPMENT
  2809. SA3 B4+STLL
  2810. LX3 59-LIHD
  2811. SB6 B0 SET HALF TRACK MODE
  2812. NG X3,CMC3 IF HALF TRACK MODE
  2813. LX3 LIHD-LIFD
  2814. PL X3,CMC2 IF NO MODE CHANGE
  2815. BX3 X3-X3
  2816. CMC3 RJ PMC PROCESS MODE CHANGE
  2817. EQ CMC2 LOOP
  2818. DIO SPACE 4,10
  2819. ** DIO - DISPLAY INITIALIZE OPTIONS.
  2820. *
  2821. * EXIT DISPLAY UPDATED.
  2822. * (TOTL) = 0 IF NOT TOTAL INITIALIZE.
  2823. *
  2824. * USES X - 0, 2, 3, 5, 6, 7.
  2825. * A - 2, 3, 5, 6, 7.
  2826. * B - 2, 3, 4.
  2827.  
  2828.  
  2829. * DISABLE ACCESS LEVEL PARAMETER ENTRIES ON ANYTHING
  2830. * OTHER THAN A TOTAL INITIALIZE.
  2831.  
  2832. DIO2 MX7 1
  2833. SA7 ENLA DISABLE *LA* PARAMETER ENTRY
  2834. SA7 A7+B1 DISABLE *UA* PARAMETER ENTRY
  2835. ERRNZ ENUA-ENLA-1 ERROR IF WORDS NOT CONTIGUOUS
  2836. MX0 LIPF-LIQF+1 EXTRACT *PF* AND *QF* OPTIONS
  2837. LX5 LIFD-LIPF
  2838. BX3 X0*X5
  2839. MX0 48-LIMF EXTRACT DAYFILE OPTIONS
  2840. LX5 LIPF-LIDF
  2841. BX2 X0*X5
  2842. LX2 LIQF-LIFD MERGE PARTIAL INITIALIZE OPTIONS
  2843. BX5 X3+X2
  2844. SB4 TPDS+2
  2845. SA3 BLK
  2846. SB3 42
  2847. SA2 DIOB
  2848. BX7 X3
  2849. SX0 77B
  2850. DIO3 PL X5,DIO4 IF OPTION NOT SET
  2851. BX3 X0*X2
  2852. LX3 6
  2853. SX3 X3+1RF&1R
  2854. LX6 X3,B3
  2855. BX7 X6-X7
  2856. SB3 B3-18
  2857. PL B3,DIO4 IF DISPLAY WORD NOT FILLED
  2858. SA7 B4+1
  2859. SX6 A7-TPDS-4
  2860. ZR X6,DIOX IF DISPLAY LINE LIMIT
  2861. SA3 BLK
  2862. SB4 A7
  2863. BX7 X3
  2864. SB3 48 RESET SHIFT COUNT
  2865. DIO4 AX2 6
  2866. LX5 1
  2867. NZ X2,DIO3 IF ALL OPTIONS NOT CHECKED
  2868. BX6 X6-X6
  2869. SA7 B4+B1
  2870. SA6 TOTL CLEAR TOTAL INITIALIZE STATUS
  2871.  
  2872. DIO SUBR ENTRY/EXIT
  2873. SA3 PARC+PMEQ GET EST ORDINAL
  2874. SA4 ESTF+X3 GET MST ADDRESS
  2875. SA5 X4+STLL
  2876. SB2 B0
  2877. LX5 59-LIAL
  2878. NG X5,DIO1 IF INITIALIZE *AL*
  2879. SB2 B2+B1
  2880. LX5 LIAL-LIHD
  2881. NG X5,DIO1 IF INITIALIZE *HT*
  2882. SB2 B2+B1
  2883. LX5 LIHD-LIFD
  2884. DIO1 PL X5,DIO2 IF NOT INITIALIZE *FT*
  2885. SA2 B2+DIOA SET VALUE FOR INITIALIZE REQUEST
  2886. MX7 1
  2887. SA3 BLK
  2888. BX6 X2
  2889. SA7 TOTL SET TOTAL INITIALIZE INDICATOR
  2890. SA6 TPDS+3
  2891. BX7 X3
  2892. SA7 A6+B1
  2893. EQ DIOX RETURN
  2894.  
  2895.  
  2896. DIOA DATA H$ *TOTAL*$
  2897. DATA H$*TOTAL/HT*$
  2898. DATA H$*TOTAL/FT*$
  2899. DIOB VFD 24/0,36/6RMEADQP&6R
  2900. DTY SPACE 4,10
  2901. ** DTY - GET PARAMETERS FOR DEVICE TYPE.
  2902. *
  2903. * ENTRY PARC+PMEQ = EST ORDINAL.
  2904. *
  2905. * EXIT (X3) = TDTY ENTRY FOR DEVICE TYPE.
  2906. * (X3) = 0 IF EQUIPMENT NOT FOUND.
  2907. * (X5) = EST ORDINAL.
  2908. *
  2909. * USES X - 2, 3, 5, 6.
  2910. * A - 3, 5.
  2911.  
  2912.  
  2913. DTY SUBR ENTRY/EXIT
  2914. MX2 11
  2915. SA5 PARC+PMEQ GET EQUIPMENT
  2916. LX2 -1
  2917. R= X3,ESTE
  2918. IX3 X5*X3
  2919. SA3 ESTB+X3+EQDE GET EST ENTRY
  2920. LX3 36
  2921. BX2 X2*X3 DEVICE TYPE
  2922. BX6 X2 SAVE DEVICE TYPE
  2923. LX6 12
  2924. SA6 DTYA
  2925. SA3 TDTY-1
  2926. DTY1 SA3 A3+B1
  2927. BX6 X2-X3
  2928. LX6 1
  2929. AX6 48+1
  2930. ZR X6,DTYX IF DEVICE TYPE FOUND
  2931. NZ X3,DTY1 IF MORE ENTRIES
  2932. EQ DTYX RETURN
  2933.  
  2934.  
  2935. DTYA CON 0 DEVICE TYPE
  2936. ISF SPACE 4,15
  2937. ** ISF - INITIALIZE SPECIAL FILES.
  2938. *
  2939. * USES X - 0, 1, 2, 3, 4, 5, 6.
  2940. * A - 1, 2, 3, 4, 6.
  2941. *
  2942. * MACROS MESSAGE, QCALL, SYSTEM.
  2943.  
  2944.  
  2945. ISF SUBR ENTRY/EXIT
  2946. SA1 PARC+PMEQ GET MST POINTER
  2947. SA1 X1+ESTF
  2948. SB5 X1
  2949. SA3 TOTL
  2950. SA4 B5+STLL
  2951. AX3 59
  2952. BX4 X3+X4
  2953. MX5 -4
  2954. LX4 59-LIQF CHECK QUEUE FILE INITIALIZATION
  2955. PL X4,ISF5 IF NOT SELECTED
  2956.  
  2957. * INITIALIZE INACTIVE QUEUED FILES.
  2958.  
  2959. SA3 QFET
  2960. SA2 PARC+PMEQ
  2961. LX5 10
  2962. BX6 X5*X3 CLEAR ERROR CODE
  2963. LX2 48-0
  2964. SA6 A3 RESET FET+0
  2965. BX6 X2
  2966. SA6 A3+7 SET EST ORDINAL FOR *QFM*
  2967. QCALL IIQF,QFET INITIALIZE QUEUED FILES
  2968. SA1 QFET
  2969. BX5 -X5*X1 ISOLATE ERROR CODE
  2970. AX5 10D SET ERROR CODE LOWER
  2971. SA1 PARC+PMEQ
  2972. SA3 MESI * EQXXX, INACTIVE QUEUES INITIALIZED.*
  2973. SA2 TOTL
  2974. ZR X5,ISF1 IF QUEUES INITIALIZED
  2975. SA3 MESE * EQXXX, UNABLE TO INITIALIZE IQFT.*
  2976. NG X2,ISF5 IF TOTAL INITIALIZE
  2977. ISF1 SA1 EQ SET EST ORDINAL IN MESSAGE
  2978. MX0 42
  2979. LX1 42-18
  2980. LX0 42-18
  2981. BX3 X0*X3
  2982. BX6 X3+X1
  2983. SA6 A3
  2984. SX0 A3 SET MESSAGE ADDRESS
  2985. ZR X5,ISF4 IF FILE INITIALIZED
  2986. SX2 X5-FAIE
  2987. NZ X2,ISF2 IF NOT INTERLOCK ERROR
  2988. MESSAGE MESF,,R * IQFT FILE INTERLOCKED.*
  2989. EQ ISF4 SET UNABLE TO INITIALIZE IQFT FILE
  2990.  
  2991. ISF2 SX2 X5-FNFE
  2992. NZ X2,ISF3 IF FILE FOUND
  2993. MESSAGE MESG,,R * NO IQFT FILE FOUND.*
  2994. ISF3 SX2 X5-RMSE
  2995. NZ X2,ISF4 IF NOT RMS ERROR
  2996. MESSAGE MESH,,R * UNABLE TO READ IQFT FILE.*
  2997. ISF4 MESSAGE X0,,R ISSUE INITIALIZATION STATUS MESSAGE
  2998. * MESSAGE MESE,,R * EQXXX, UNABLE TO INITIALIZE IQFT.*
  2999. * MESSAGE MESI,,R * EQXXX, INACTIVE QUEUES INITIALIZED.*
  3000. ISF5 SA5 DSI
  3001. SA4 B5+STLL
  3002. NG X5,ISFX IF DEADSTART INITIALIZE
  3003. SA3 TOTL
  3004. AX3 59
  3005. SA5 PARC+PMEQ
  3006. BX4 X3+X4
  3007. LX4 59-LIDF
  3008. PL X4,ISF6 IF NOT DAYFILE INITIALIZATON
  3009.  
  3010. * INITIALIZE SYSTEM DAYFILE.
  3011.  
  3012. SYSTEM IMS,R,X5,IDF
  3013. ISF6 LX4 LIDF-LIAF
  3014. PL X4,ISF7 IF NOT ACCOUNT FILE INITIALIZATION
  3015.  
  3016. * INITIALIZE ACCOUNT FILE.
  3017.  
  3018. SYSTEM IMS,R,X5,IDF+1
  3019. ISF7 LX4 LIAF-LIEF
  3020. PL X4,ISF8 IF NOT ERRLOG INITIALIZATION
  3021.  
  3022. * INITIALIZE ERRLOG.
  3023.  
  3024. SYSTEM IMS,R,X5,IDF+2
  3025. ISF8 LX4 LIEF-LIMF
  3026. PL X4,ISF9 IF NOT MAINTENANCE LOG INITIALIZATION
  3027.  
  3028. * INITIALIZE MAINTENANCE LOG.
  3029.  
  3030. SYSTEM IMS,R,X5,IDF+3
  3031. ISF9 PL X3,ISFX IF NOT TOTAL INITIALIZE
  3032. SA1 B5+ACGL CHECK FOR LOCAL AREA SECTOR
  3033. LX1 59-GLAP
  3034. PL X1,ISFX IF LOCAL AREA SECTOR NOT DEFINED
  3035. SYSTEM IMS,R,X5,ILA INITIALIZE LOCAL AREAS
  3036. EQ ISFX RETURN
  3037. MTW SPACE 4,10
  3038. ** MTW - MOVE THREE WORDS TO DISPLAY LINE.
  3039. *
  3040. * ENTRY (A1) = MESSAGE ADDRESS.
  3041. *
  3042. * USES X - 1, 2, 5, 6, 7.
  3043. * A - 1, 2, 5, 6, 7.
  3044. * B - 2.
  3045.  
  3046.  
  3047. MTW SUBR ENTRY/EXIT
  3048. SA2 A1+B1
  3049. BX6 X1
  3050. SA1 A2+B1
  3051. LX7 X2
  3052. SA2 FLFG
  3053. NZ X2,MTW2 IF FLAW PROCESSING
  3054. SA5 PAGA
  3055. LX5 30
  3056. SB2 X5
  3057. GT B2,B1,MTW2 IF CURRENT LEFT SCREEN INDEX IS 2
  3058. SA6 MSDS1+1
  3059. MTW1 BX6 X1
  3060. SA7 A6+1
  3061. SA6 A7+B1
  3062. SA1 BLK
  3063. BX6 X1
  3064. EQ B1,B2,MTW3 IF CURRENT LEFT SCREEN INDEX IS 1
  3065. SA2 MSDS1+1
  3066. MTW1.1 SA6 A2
  3067. SA6 A2+1
  3068. SA6 A6+B1
  3069. EQ MTWX RETURN
  3070.  
  3071. MTW2 SA6 MSDS2+1 DISPLAY FLAW MESSAGE
  3072. EQ MTW1 CONTINUE
  3073.  
  3074. MTW3 SA2 MSDS2+1
  3075. EQ MTW1.1 CONTINUE
  3076. PMC SPACE 4,15
  3077. ** PMC - PROCESS MODE CHANGE.
  3078. *
  3079. * ENTRY (B3) = EST ORDINAL.
  3080. * (X3) = .LT. 0, IF HALF TRACK ACCESS.
  3081. * (B6) = 0, IF HALF TRACK MODE.
  3082. *
  3083. * EXIT (X5) .LT. 0, IF NO FULL TRACK ACCESS.
  3084. *
  3085. * USES X - ALL.
  3086. * A - 2, 4, 5, 7.
  3087. * B - 4, 6.
  3088. *
  3089. * CALLS DTY.
  3090. *
  3091. * MACROS MESSAGE.
  3092.  
  3093.  
  3094. PMC SUBR ENTRY/EXIT
  3095. MX0 -12
  3096. MX1 0
  3097. NG X3,PMC3 IF HALF TRACK ACCESS
  3098. MX1 60
  3099. SB6 12 SET FULL TRACK SHIFT COUNT
  3100.  
  3101. * ASSEMBLE EST IMAGE.
  3102.  
  3103. PMC3 SX7 B3
  3104. R= X4,ESTE
  3105. IX7 X7*X4
  3106. SA4 ESTB+X7+EQDE READ EST ENTRY
  3107. LX4 -12
  3108. BX5 -X0*X4 CURRENT DEVICE TYPE
  3109. SA2 PMCB-1
  3110. PMC4 SA2 A2+B1 READ NEXT LIST WORD
  3111. BX7 -X0*X2
  3112. ZR X2,PMC4.0 IF END OF LIST
  3113. BX6 X5-X7
  3114. NZ X6,PMC4 IF NO MATCH
  3115. AX2 12
  3116. AX2 X2,B6 POSITION NEW DEVICE TYPE
  3117. BX5 -X0*X2 NEW DEVICE TYPE
  3118. PMC4.0 BX4 X0*X4
  3119. BX7 X4+X5 MERGE NEW DEVICE TYPE
  3120. SX0 10001B SET CHANNEL ACCESS FLAGS
  3121. LX7 12
  3122. LX0 24+8
  3123. BX2 X0*X7 CHANNEL MODE FLAGS
  3124. BX2 X1-X2 SELECT MODE OF OPERATION
  3125. BX2 X0*X2 NEW CHANNEL ACCESS FLAGS
  3126. MX5 1
  3127. ZR X1,PMC4.1 IF HALF TRACK INITIALIZE
  3128. ZR X2,PMCX IF NO CHANNELS FOR ACCESS
  3129. PMC4.1 SA7 A4
  3130. RJ DTY SET SINGLE UNIT SECTOR LIMIT
  3131. MX0 12
  3132. LX0 -12
  3133. SA1 X5+ESTF
  3134. SA2 X1+MDGL
  3135. BX7 X0*X3
  3136. BX2 -X0*X2
  3137. AX3 12
  3138. BX7 X2+X7
  3139. MX0 -6
  3140. SA7 A2
  3141. SA4 X1+DILL CHANGE ALGORITHM INDEX
  3142. BX2 -X0*X3
  3143. BX4 X0*X4
  3144. BX7 X2+X4
  3145. SA7 A4
  3146. EQ PMCX RETURN
  3147.  
  3148. ** DEVICE CONVERSION TABLES.
  3149. *T PMCB 24/,12/ *FT* TYPE, 12/ *HT* TYPE, 12/OLD TYPE
  3150.  
  3151. PMCB VFD 24/,12/2RDK,12/2RDI,12/2RDI
  3152. VFD 24/,12/2RDL,12/2RDJ,12/2RDJ
  3153. VFD 24/,12/2RDK,12/2RDI,12/2RDK
  3154. VFD 24/,12/2RDL,12/2RDJ,12/2RDL
  3155. VFD 24/,12/2RDQ,12/2RDM,12/2RDM
  3156. VFD 24/,12/2RDQ,12/2RDM,12/2RDQ
  3157. CON 0 END OF TABLE
  3158. PTY SPACE 4,10
  3159. ** PTY - PROCESS TYPE.
  3160. *
  3161. * ENTRY (B5) = MST POINTER.
  3162. *
  3163. * USES X - 0, 1, 2, 3, 4, 6, 7.
  3164. * A - 1, 2, 3.
  3165. *
  3166. * CALLS COD.
  3167.  
  3168.  
  3169. PTY SUBR ENTRY/EXIT
  3170. SA1 PARC+PMTY
  3171. SA2 B5+MDGL
  3172. LX1 6
  3173. SA3 B5+PUGL
  3174. LX2 59-58
  3175. PTY1 MX0 -16
  3176. ZR X1,PTY3 IF TYPE NOT ENTERED
  3177. BX6 -X0 DEFAULT MASK FOR AUXILIARY DEVICES
  3178. MX7 1 SET AUXILIARY BIT
  3179. SX4 X1-1RX
  3180. BX2 -X7*X2
  3181. ZR X4,PTY2 IF AUXILIARY TYPE
  3182. MX7 0 CLEAR AUXILIARY BIT
  3183. BX6 -X0*X3 DEFAULT MASKS FOR FAMILY TYPE
  3184. SX1 1RF SET TO FAMILY DEVICE
  3185. PTY2 BX3 X0*X3 SET DEFAULT MASKS
  3186. BX6 X3+X6
  3187. BX7 X7+X2 MERGE NEW AUXILIARY BIT
  3188. SA6 A3
  3189. LX7 58-59
  3190. SA7 A2
  3191. LX1 -6
  3192. BX6 X1
  3193. SA6 A1 RESET TYPE
  3194. SA6 TYDS+1
  3195. SA1 B5+PUGL SET INDIRECT FILE MASK
  3196. MX0 -8
  3197. BX7 -X0*X1
  3198. BX1 -X0*X1
  3199. SA7 PARC+PMDM
  3200. RJ COD
  3201. SA1 B5+PUGL SET DIRECT ACCESS MASK
  3202. BX6 X4
  3203. AX1 8
  3204. SA6 DMDS+1
  3205. BX7 -X0*X1
  3206. BX1 -X0*X1
  3207. SA7 PARC+PMSM
  3208. RJ COD
  3209. BX6 X4
  3210. SA6 SMDS+1
  3211. EQ PTYX RETURN
  3212.  
  3213. PTY3 SX1 1RX
  3214. NG X2,PTY1 IF AUXILIARY DEVICE
  3215. SX1 1RF SET TO FAMILY DEVICE
  3216. EQ PTY1 LOOP
  3217. SAL SPACE 4,15
  3218. ** SAL - SET ACCESS LEVEL DEFAULTS.
  3219. *
  3220. * EXIT DEFAULTS SET IN THE PARAMETER LIST AND THE K-DISPLAY.
  3221. * IF THE INITIALIZE IS TOTAL, THE DEFAULTS WILL BE
  3222. * SET TO THE LOWER EQUIPMENT ACCESS LIMIT FROM THE
  3223. * EST ENTRY.
  3224. * THE DEFAULTS WILL BE SET FROM THE MST FOR DEADSTART
  3225. * INITIALIZE, AS WELL AS FOR A NON-TOTAL INITIALIZE.
  3226. *
  3227. * USES X - 0, 1, 2, 5, 6.
  3228. * A - 1, 5, 6.
  3229. * B - 3, 4.
  3230.  
  3231.  
  3232. SAL SUBR ENTRY/EXIT
  3233. SA1 TOTL
  3234. SA5 B5+PFGL READ ACCESS LEVELS FROM LABEL
  3235. SB4 51 SET SHIFT COUNTS
  3236. SB3 3
  3237. MX0 -3
  3238. PL X1,SAL1 IF NOT TOTAL INITIALIZE
  3239. SA1 DSI
  3240. NG X1,SAL1 IF DEADSTART INITIALIZE
  3241. SA5 PARC+PMEQ
  3242. R= X1,ESTE
  3243. IX1 X5*X1
  3244. SA5 ESTB+X1+EQAE READ ACCESS LEVELS FROM EST
  3245. SB4 45 SET SHIFT COUNTS
  3246. SB3 B0+
  3247. SAL1 LX5 B4 POSITION ACCESS LEVELS
  3248. BX1 -X0*X5 PROCESS LOWER ACCESS LEVEL
  3249. SA1 X1+TALV
  3250. MX2 42
  3251. BX6 X2*X1
  3252. SA6 PARC+PMLA SET LOWER LIMIT IN PARAMETER LIST
  3253. SA6 LADS+1 SET LOWER LIMIT IN DISPLAY
  3254. LX5 B3 PROCESS UPPER ACCESS LEVEL
  3255. BX1 -X0*X5
  3256. SA1 X1+TALV
  3257. BX6 X2*X1
  3258. SA6 PARC+PMUA SET UPPER LIMIT IN PARAMETER LIST
  3259. SA6 UADS+1 SET UPPER LIMIT IN DISPLAY
  3260. EQ SALX RETURN
  3261. PRS SPACE 4,15
  3262. ** PRS - PRESET PROGRAM.
  3263. *
  3264. * EXIT EST AND MST TABLE READ INTO BUFFERS.
  3265. *
  3266. * USES X - ALL.
  3267. * A - 1, 2, 5, 6, 7.
  3268. * B - 7.
  3269. *
  3270. * CALLS PRK.
  3271. *
  3272. * MACROS CLEAR, GETSSM, MESSAGE, SYSTEM.
  3273.  
  3274.  
  3275. PRS SUBR ENTRY/EXIT
  3276. SA5 JOPR CHECK JOB ORIGIN
  3277. MX0 -12
  3278. LX5 -24
  3279. BX5 -X0*X5
  3280. SB7 X5-SYOT
  3281. NZ B7,PRS3 IF NOT SYSTEM ORIGIN
  3282. SX3 KYCT
  3283. RJ PRK PRESET *K* DISPLAY
  3284. SX7 TFLA SET FLAW INDEX
  3285. SA7 FLAI
  3286. CLEAR ESTB,BUF-ESTB CLEAR *ESTB*, *ESTF*, AND *PKL*
  3287. CLEAR FLGS,FLGSL,X7 CLEAR FLAGS
  3288. CLEAR PARC+PMFN,OTBLL,X7
  3289. SA7 PREQ
  3290. SA7 CFEB PREVENT SETTING FLAWS FOR SPECIFIED DEVICE
  3291. SA1 PRSA READ EST POINTER WORD
  3292. MX6 1
  3293. BX7 X1
  3294. SA6 ESTB SET LOW CORE READ
  3295. SA7 LCRC
  3296. SYSTEM RSB,R,LCRC
  3297. SA2 ESTB SET *COMCRSB* ENTRY CONDITIONS
  3298. MX3 -12
  3299. SX1 A2 SET ADDRESS TO TRANSFER TO
  3300. AX2 12
  3301. BX7 -X3*X2
  3302. AX2 24 SET ADDRESS TO TRANSFER FROM
  3303. SA7 PRSB SAVE LAST EST ORDINAL + 1
  3304. R= X6,ESTE
  3305. IX3 X7*X6 SET WORD COUNT
  3306. SX4 B0 SET SUBSYSTEM (= *CMR*)
  3307. MX6 1
  3308. SA6 X1
  3309. RJ RSB= READ EST
  3310. GETSSID SSID GET SUBSYSTEM ID
  3311. GETSSM SSFL GET SYSTEM SECURITY MODE
  3312. SA1 PRSC READ MMFL WORD
  3313. MX6 1
  3314. BX7 X1
  3315. SA6 SCRB
  3316. SA7 LCRC
  3317. SYSTEM RSB,R,LCRC
  3318. SA1 SCRB SET LINK DEVICE
  3319. MX6 -9
  3320. LX1 59-35
  3321. BX6 -X6*X1
  3322. NZ X6,PRS1 IF LINK DEVICE DEFINED
  3323. R= X6,NEEQ
  3324. PRS1 SA6 LINK
  3325. SX6 BUF READ MST,S FOR ALL MASS STORAGE
  3326. SA6 BUFI
  3327. SX6 NOPE INITIALIZE EST ORDINAL FOR SEARCH
  3328. SA6 TEMP
  3329. PRS2 SA5 TEMP
  3330. SX7 X5+B1
  3331. SA7 A5
  3332. SA1 PRSB CHECK ORDINAL
  3333. IX6 X5-X1
  3334. R= X0,ESTE
  3335. IX7 X5*X0
  3336. SA1 ESTB+X7+EQDE GET EST ENTRY
  3337. ZR X6,PRSX IF END OF EST
  3338. PL X1,PRS2 IF NOT MASS STORAGE
  3339. MX0 -12
  3340. SX6 MSTL
  3341. SA2 BUFI
  3342. IX7 X2+X6 INCREMENT BUFFER POINTER
  3343. LX6 36
  3344. BX1 -X0*X1
  3345. SA7 A2
  3346. LX1 18+3 MST ADDRESS
  3347. BX6 X6+X2
  3348. IX6 X6+X1
  3349. SA6 LCRC
  3350. BX7 X2
  3351. MX6 1
  3352. SA7 ESTF+X5 SET MST ADDRESS IN ESTF
  3353. SA6 X2 FLAG LOW CORE READ
  3354. SYSTEM RSB,R,LCRC READ MST
  3355. EQ PRS2 LOOP FOR NEXT DEVICE
  3356.  
  3357. PRS3 MESSAGE MESK * USER ACCESS NOT VALID.*
  3358. ABORT
  3359.  
  3360. PRSA VFD 24/1,18/ESTP,18/ESTB
  3361. PRSB CON ** LAST MASS STORAGE ORDINAL + 1
  3362. PRSC VFD 24/1,18/MMFL,18/SCRB
  3363. TITLE K DISPLAY KEYBOARD MESSAGES
  3364. SPACE 4
  3365. * K-DISPLAY KEYBOARD ERROR MESSAGES.
  3366.  
  3367. ERRF BSS 1
  3368. ERROR1 DATA 30HUN MUST BE SPECIFIED.
  3369. ERROR2 DATA 30HNC IS NOT A POWER OF 2.
  3370. ERROR3 DATA 30HFAMILY MASK NOT EQUAL TO 377.
  3371. ERROR5 DATA 30HEQ OR DN INCORRECT.
  3372. ERROR6 DATA 30HINCORRECT ENTRY.
  3373. ERROR7 DATA 30HFM OR PN MUST BE SPECIFIED.
  3374. ERROR8 DATA 30HNP GREATER THAN 8.
  3375. ERROR9 DATA 30HDUPLICATE PN.
  3376. ERROR10 DATA 30HNC EXCEEDS 200B.
  3377. ERROR11 DATA 30HCANNOT ALLOCATE DEVICE.
  3378. ERROR12 DATA 30HNOT AUXILIARY PACK.
  3379. ERROR13 DATA 30HDUPLICATE DN.
  3380. ERROR15 DATA 30HDEVICE NOT REMOVABLE.
  3381. ERROR16 DATA 30HNP NOT ALLOWED.
  3382. ERROR17 DATA 30HDUPLICATE BITS IN MASK.
  3383. ERROR18 DATA 30HDEVICE NOT FIRST IN CHAIN.
  3384. ERROR19 DATA 30HEQXXX, INITIALIZE BIT NOT SET.
  3385. ERROR20 DATA 30HDN CANNOT BE ZERO.
  3386. ERROR21 DATA 30HEQXXX, FORMAT PENDING.
  3387. ERROR22 DATA 30HDEFINED DEVICE ALREADY EXISTS.
  3388. ERROR23 DATA 30HEQXXX, NO FULL TRACK ACCESS.
  3389. ERROR24 DATA 30HDEADSTART INITIALIZE REQUIRED.
  3390. ERROR25 DATA 30HFULL INITIALIZE REQUIRED.
  3391. ERROR26 DATA 30HEQXXX, TRACK LIMIT.
  3392. ERROR27 DATA 30HUA NOT WITHIN LIMIT.
  3393. ERROR28 DATA 30HLA NOT WITHIN LIMIT.
  3394. ERROR29 DATA 30HLA GREATER THAN UA.
  3395. ERROR30 DATA 30HUNKNOWN ACCESS LEVEL NAME.
  3396.  
  3397. * K-DISPLAY KEYBOARD INFORMATIVE MESSAGES.
  3398.  
  3399. REQOP DATA 30HENTER OPTION.
  3400. REQEQ DATA 30HENTER EST ORDINAL.
  3401. REQPM DATA 30HENTER PARAMETERS.
  3402. ENOFN DATA 30HENTER OLD FAMILY NAME.
  3403. ENOPN DATA 30HENTER OLD PACK NAME.
  3404. ENOUN DATA 30HENTER OLD USER NAME.
  3405. ENODN DATA 30HENTER OLD DEVICE NUMBER.
  3406. ENNFN DATA 30HENTER NEW FAMILY/PACK NAME.
  3407. ENFLS DATA 30HENTER FLAWS.
  3408. ENID DATA 30HENTER IDENTITY OF EQXXX.
  3409. EDRN DATA 30HEND OF RUN.
  3410. ENCL DATA 30HENTER CLEAR OR RERUN.
  3411.  
  3412. * DAYFILE MESSAGES.
  3413.  
  3414. MESA DATA C* EQXXX, ACTIVE FILES, CANNOT INITIALIZE.*
  3415. MESB DATA C* MSI ABORTED INITIALIZE MAY NOT BE COMPLETE.*
  3416. MESC DATA C* NO INITIALIZE REQUESTS SET FOR MSI.*
  3417. MESD DATA C* INTERNAL ERROR IN MSI.*
  3418. MESE DATA C* EQXXX, UNABLE TO INITIALIZE IQFT.*
  3419. MESF DATA C* IQFT FILE INTERLOCKED.*
  3420. MESG DATA C* NO IQFT FILE FOUND.*
  3421. MESH DATA C* UNABLE TO READ IQFT FILE.*
  3422. MESI DATA C* EQXXX, INACTIVE QUEUES INITIALIZED.*
  3423. MESJ DATA C* LINK DEVICE CANNOT BE ALTERED.*
  3424. MESK DATA C* USER ACCESS NOT VALID.*
  3425. MESL DATA C* MSI HUNG.*
  3426. TITLE KEYBOARD INPUT PROCESSOR.
  3427. PKI SPACE 4,10
  3428. ** PKI - PROCESS KEYBOARD INPUT.
  3429. *
  3430. * USES X - 1, 2, 3, 4, 5, 6, 7.
  3431. * A - 0, 1, 2, 4, 5, 6, 7.
  3432. * B - 2, 3, 4, 5, 7.
  3433. *
  3434. * CALLS ARG, CFE, DTY, DXB, RPT, SPT.
  3435.  
  3436.  
  3437. PKI SUBR ENTRY/EXIT
  3438. PKI1 EQ KIP KEYBOARD INPUT PROCESSOR
  3439.  
  3440. PKI2 ZR B6,PKI3 IF NO PARAMETERS ENTERED
  3441. KEYMES BLK BLANK MESSAGE LINE
  3442. SB4 PAR
  3443. RJ CFE CHECK FOR FLAW ENTRY
  3444. NZ X4,PKI3 IF ERROR
  3445. ZR X2,PKI1 IF FLAW ENTRY
  3446. SA4 PAR
  3447. SA2 ARGP
  3448. SB4 B6
  3449. SB5 X2
  3450. RJ ARG
  3451. ZR X1,PKI4 IF NO ARGUMENT ERRORS
  3452. PKI3 ERROR 6 *INCORRECT ENTRY.*
  3453. EQ PKI1 LOOP FOR NEW DATA
  3454.  
  3455. PKI4 BX6 X6-X6 CLEAR ERROR FLAG
  3456. SA6 ERRF
  3457. SB2 TENP SET INITIAL REGISTERS
  3458. SB4 PARC
  3459. SA0 DATB
  3460.  
  3461. * PROCESS NAMES.
  3462.  
  3463. SB3 NNME SET NUMBER OF NAMES TO PROCESS
  3464. PKI5 SA2 B2 GET NAME
  3465. ZR X2,PKI7 IF NAME NOT ENTERED
  3466. BX7 X2 SAVE CONVERTED PARAMETER
  3467. SA1 A0 DISPLAY ENTERED PARAMETER
  3468. SA7 X1
  3469. SA1 =1L0
  3470. BX1 X7-X1
  3471. NZ X1,PKI6 IF NOT *0*
  3472. BX7 X7-X7
  3473. PKI6 SA7 B4 STORE PARAMETER
  3474. PKI7 SB2 B2+B1 INCREMENT POINTERS
  3475. SB3 B3-B1
  3476. SB4 B4+B1
  3477. SA0 A0+B1
  3478. NZ B3,PKI5 IF MORE NAMES TO PROCESS
  3479.  
  3480. * PROCESS OCTAL PARAMETERS.
  3481.  
  3482. SB3 NOCT SET NUMBER OF OCTAL PARAMETERS
  3483. SB7 B0
  3484. PKI8 SA5 B2 GET OCTAL PARAMETER
  3485. ZR X5,PKI10 IF PARAMETER NOT ENTERED
  3486. RJ SPT SAVE POINTERS
  3487. RJ DXB CONVERT PARAMETER
  3488. RJ RPT RESTORE POINTERS
  3489. ZR X4,PKI9 IF NO ERROR IN CONVERSION
  3490. SX6 B1 SET ERROR FLAG
  3491. SA6 ERRF
  3492. EQ PKI10 INCREMENT POINTERS
  3493.  
  3494. PKI9 SA6 B4 SAVE CONVERTED VALUE
  3495. SA1 B2 DISPLAY ENTERED PARAMETER
  3496. BX6 X1
  3497. SA1 A0
  3498. SA6 X1
  3499. PKI10 SB2 B2+B1 INCREMENT POINTERS
  3500. SB3 B3-B1
  3501. SB4 B4+B1
  3502. SA0 A0+B1
  3503. NZ B3,PKI8 IF MORE OCTAL PARAMETERS TO PROCESS
  3504.  
  3505. * CLEAR OUT ENTRY AREA.
  3506.  
  3507. SB3 OTBLL-1 SET PARAMETER AREA LENGTH
  3508. SB2 PARE
  3509. BX6 X6-X6
  3510. PKI11 SA6 B2+B3
  3511. SB3 B3-B1
  3512. PL B3,PKI11 IF MORE TO CLEAR
  3513. RJ DTY GET FLAW PROCESSOR
  3514. AX3 18
  3515. SX6 X3
  3516. SA6 DFPR
  3517.  
  3518. * CHECK FOR ERROR CONDITION.
  3519.  
  3520. SA1 ERRF CHECK FOR ERROR IN CONVERSION
  3521. SA2 CNT
  3522. NZ X1,PKI3 DISPLAY ERROR MESSAGE
  3523. SX7 X2-1
  3524. SA7 CNT
  3525. ZR X7,PKIX IF END OF EXPECTED PARAMETERS
  3526. EQ PKI1 GO FOR NEXT PARAMETER
  3527. RPT SPACE 4,10
  3528. ** RPT - RESTORE POINTERS.
  3529. *
  3530. * ENTRY SPTA = ENTERED PARAMETER ADDRESS.
  3531. * SPTA+1 = NUMBER OF PARAMETERS TO PROCESS.
  3532. * SPTA+2 = CONVERTED PARAMETER ADDRESS.
  3533. *
  3534. * EXIT (B2), (B3) AND (B4) RESTORED.
  3535. *
  3536. * USES X - 1, 2.
  3537. * A - 1, 2.
  3538. * B - 2, 3, 4.
  3539.  
  3540.  
  3541. RPT SUBR ENTRY/EXIT
  3542. SA1 SPTA
  3543. SA2 A1+B1
  3544. SB2 X1
  3545. SB3 X2
  3546. SA1 A2+B1
  3547. SB4 X1
  3548. EQ RPTX EXIT
  3549. SPT SPACE 4,10
  3550. ** SPT - SAVE POINTERS.
  3551. *
  3552. * ENTRY (B2) = ENTERED PARAMETER ADDRESS.
  3553. * (B3) = NUMBER OF PARAMETERS LEFT TO PROCESS.
  3554. * (B4) = CONVERTED PARAMETER ADDRESS.
  3555. *
  3556. * EXIT (SPTA - SPTA+1) = (B2), (B3) AND (B4).
  3557. *
  3558. * USES X - 6, 7.
  3559. * A - 6, 7.
  3560. * B - NONE.
  3561.  
  3562.  
  3563. SPT SUBR ENTRY/EXIT
  3564. SX6 B2
  3565. SX7 B3
  3566. SA6 SPTA
  3567. SA7 A6+B1
  3568. SX6 B4
  3569. SA6 A7+B1
  3570. EQ SPTX EXIT
  3571.  
  3572.  
  3573. SPTA BSS 1 ADDRESS OF ENTERED PARAMETER
  3574. BSS 1 NUMBER OF PARAMETERS LEFT TO PROCESS
  3575. BSS 1 ADDRESS OF CONVERTED PARAMETERS
  3576. TITLE PROCESS FLAW ENTRIES
  3577. ** CFE - CHECK FOR FLAW ENTRY.
  3578. *
  3579. * ENTRY (B4) = ADDRESS OF PARAMETER.
  3580. * (B6) = PARAMETER COUNT.
  3581. *
  3582. * EXIT (X2) = 0, IF FLAW ENTRY.
  3583. * (X4) = 0, IF NO ERROR.
  3584. *
  3585. * USES X - ALL.
  3586. * A - 0, 1, 2, 3, 4, 6, 7.
  3587. * B - 2, 3, 4, 6.
  3588. *
  3589. * CALLS COD, FMD, FRD, RPA, SFN.
  3590.  
  3591.  
  3592. CFE SUBR ENTRY/EXIT
  3593. SX7 B1 SELECT *SET FLAW* AS DEFAULT
  3594. SA7 CFEA
  3595. SA1 B4
  3596. MX0 18
  3597. SX3 1R=
  3598. BX4 -X0*X1
  3599. SX2 B1
  3600. IX3 X3-X4
  3601. BX4 X4-X4
  3602. NZ X3,CFEX IF NOT EQUIVALENCED
  3603. SA3 CFEB
  3604. ZR X3,CFEX IF FLAWS NOT ALLOWED YET
  3605. SA3 =0LCPF
  3606. BX6 X0*X1
  3607. BX2 X6-X3
  3608. ZR X2,CFE2 IF CLEARING PHYSICAL FLAW
  3609. SA3 =0LSPF
  3610. BX2 X6-X3
  3611. ZR X2,CFE2.1 IF SETTING PHYSICAL FLAW
  3612. SA3 =0LSLF
  3613. BX2 X6-X3
  3614. ZR X2,CFE1 IF SETTING LOGICAL FLAW
  3615. SA3 =0LCLF
  3616. BX2 X6-X3
  3617. NZ X2,CFEX IF NOT CLEARING LOGICAL FLAW
  3618.  
  3619. * PROCESS *CLF* ENTRY.
  3620.  
  3621. SX7 B1+B1 SELECT *CLEAR FLAW* OPTION
  3622. SA7 CFEA
  3623.  
  3624. * PROCESS *SLF* ENTRY.
  3625.  
  3626. CFE1 SX4 B1 PRESET RESPONSE
  3627. SB6 B6-B1
  3628. NE B6,B1,CFEX IF INCORRECT ENTRY
  3629. SB4 B4+B1
  3630. SX1 B0
  3631. SX2 7777B LIMIT
  3632. RJ RPA RETRIEVE PARAMETER
  3633. NZ X4,CFEX IF ERROR
  3634. EQ CFER STORE ENTRY
  3635.  
  3636. * PROCESS *CPF* ENTRY.
  3637.  
  3638. CFE2 SX7 B1+B1 SELECT *CLEAR FLAW* OPTION
  3639. SA7 CFEA
  3640.  
  3641. * PROCESS *SPF* ENTRY.
  3642.  
  3643. CFE2.1 SB4 B4+B1
  3644. SB6 B6-B1
  3645. SA1 DFPR
  3646. ZR X1,FMD IF LARGE MEMORY DEVICE
  3647. SA0 X1 SET PHYSICAL DESCRIPTOR ENTRY ADDRESS
  3648. EQ FRD FLAW ROTATING MASS STORAGE DEVICE
  3649.  
  3650. CFER NZ X4,CFEX IF ERROR
  3651. SA1 FLAI
  3652. SX3 X1-TFLA-PNFE
  3653. SX4 B1 PRESET ERROR
  3654. SX7 X1+B1 INCREMENT POINTER
  3655. PL X3,CFEX IF LIMIT EXCEEDED
  3656. SA2 CFEA
  3657. SA7 A1
  3658. LX2 48
  3659. BX6 X6+X2
  3660. SA6 X1
  3661. MX0 -12 FORM MASK FOR LOGICAL ENTRY
  3662. BX1 -X0*X6 MASK OFF
  3663. BX5 X6 SAVE X6
  3664. RJ COD CONVERT TO DISPLAY CODE
  3665. SA1 DASM
  3666. SA0 X1 SAVE LAST ADDRESS
  3667. SX7 X1+6
  3668. SA7 A1
  3669. SA6 X1
  3670. SA4 DAST GET DISPLAY ADDRESS
  3671. SX7 X4+6
  3672. SA1 I DISPLAY ENTRY
  3673. SA7 A4
  3674. BX0 X4 SAVE (X4)
  3675. RJ SFN
  3676. SA6 X4
  3677. SA1 A1+B1
  3678. RJ SFN
  3679. SA6 X0+B1
  3680. SB3 A0 LAST ADDRESS OF LOGICAL TRACK
  3681. SB2 LTDS+3
  3682. SA4 STAR PRESET STAR
  3683. BX6 X4
  3684. CFE3 EQ B2,B3,CFE5 IF END OF LOOP - EXIT
  3685. SA3 B3 MORE ENTRIES
  3686. SA2 B2
  3687. IX5 X3-X2
  3688. NZ X5,CFE4 IF NOT EQUAL GO TO NEXT ENTRY
  3689. SA6 B3+2 WRITE STAR TO BOTH ENTRIES
  3690. SA6 B2+2
  3691. CFE4 SB2 B2+6 INCREMENT TO NEXT ENTRY
  3692. EQ CFE3 LOOP
  3693.  
  3694. CFE5 BX4 X4-X4 CLEAR X4
  3695. BX2 X2-X2
  3696. EQ CFEX RETURN
  3697.  
  3698. CFEA BSSZ 1 FLAW TYPE INDICATOR
  3699. CFEB CON 0 *FLAWS ALLOWED* FLAG
  3700. STAR DIS 1, *
  3701.  
  3702. LRDS VFD 24/I,18/R,18/L FLAW K-DISPLAY CONTROL WORD
  3703.  
  3704. * FLAW PROCESSOR TABLE.
  3705.  
  3706. DFPR CON 0
  3707. RPA SPACE 4,10
  3708. ** RPA - RETRIEVE PARAMETERS.
  3709. *
  3710. * ENTRY (B4) = ADDRESS OF PARAMETER.
  3711. * (X1) = 0, IF NO PARAMETER CHECK REQUIRED.
  3712. * (X1) = RIGHT JUSTIFIED CHARACTER TO CHECK FOR.
  3713. * (X2) = MAXIMUM VALUE.
  3714. *
  3715. * EXIT (X4) = 0, IF NO ERROR.
  3716. * (X6) = PARAMETER.
  3717. * (B4) = ADDRESS OF NEXT PARAMETER.
  3718. *
  3719. * USES X - 0, 1, 2, 4, 5, 6.
  3720. * A - 1, 5, 6.
  3721. * B - 4, 7.
  3722. *
  3723. * CALLS DXB.
  3724.  
  3725.  
  3726. RPA SUBR ENTRY/EXIT
  3727. SB7 B0 SET OCTAL BASE
  3728. SX6 B1
  3729. LX1 54
  3730. IX6 X2-X6 ADJUST MAXIMUM COUNT
  3731. SA5 B4 GET PARAMETER
  3732. SA6 RPAA SAVE MAXIMUM VALUE
  3733. ZR X1,RPA1 IF NO CHARACTER TO CHECK
  3734. MX0 6
  3735. BX2 X0*X5
  3736. BX4 X2-X1
  3737. NZ X4,RPAX IF INCORRECT ENTRY
  3738. LX5 6
  3739. RPA1 MX0 36 MASK OFF VALUE
  3740. BX5 X0*X5
  3741. SX6 B4 SAVE PARAMETER ADDRESS
  3742. SA6 RPAB
  3743. RJ DXB CONVERT TO OCTAL
  3744. SA1 RPAB RESTORE PARAMETER ADDRESS
  3745. SB4 X1+B1
  3746. NZ X4,RPAX RETURN - IF ERROR
  3747. SA1 RPAA
  3748. IX4 X1-X6
  3749. NG X4,RPAX IF MAXIMUM VALUE EXCEEDED
  3750. BX4 X4-X4
  3751. EQ RPAX RETURN
  3752.  
  3753. RPAA BSSZ 1 HOLD FOR MAXIMUM VALUE
  3754. RPAB BSSZ 1 HOLD FOR PARAMETER ADDRESS
  3755. SPACE 4
  3756. ** FLAW ROUTINES.
  3757. *
  3758. * ENTRY (B4) = PARAMETER ADDRESS.
  3759. * (B6) = PARAMETER COUNT.
  3760. *
  3761. * EXIT (X4) = 0, IF NO ERROR.
  3762. * = 1, IF ERROR.
  3763. * (X6) = LOGICAL TRACK TO FLAW.
  3764. *
  3765. * USES X - ALL.
  3766. * A - 0, 1, 2, 3, 5, 6.
  3767. * B - ALL.
  3768. *
  3769. * CALLS RPA.
  3770.  
  3771. FMD SPACE 4,10
  3772. ** FMD - FLAW LARGE MEMORY DEVICES.
  3773.  
  3774.  
  3775. FMD SX4 B6-B1
  3776. R= X1,1RA
  3777. NZ X4,CFER IF ERROR
  3778. SA2 =100000000
  3779. RJ RPA RETRIEVE ADDRESS
  3780. NZ X4,CFER IF ERROR
  3781. SX1 202B CONVERT TRACK ADDRESS
  3782. SA4 PARC+PMEQ EXTRACT XM SHIFT
  3783. R= X5,ESTE
  3784. IX5 X4*X5
  3785. SA5 ESTB+X5+EQAE
  3786. MX0 -2
  3787. LX5 -30
  3788. BX5 -X0*X5
  3789. SB7 X5
  3790. LX1 B7
  3791. IX6 X6/X1
  3792. NZ X5,FMD1 IF NOT DEFAULT TRACK SIZE
  3793. SX4 CETK-4000B
  3794. IX4 X6-X4
  3795. NZ X4,FMD1 IF NOT CETK
  3796. SX4 B1
  3797. EQ CFER
  3798.  
  3799. FMD1 BX4 X4-X4 SET NO ERROR RESPONSE
  3800. EQ CFER RETURN
  3801. FRD SPACE 4,10
  3802. ** FRD - FLAW ROTATING MASS STORAGE DEVICES.
  3803.  
  3804.  
  3805. * GET AND VERIFY THE CYLINDER, TRACK AND SECTOR VALUES GIVEN
  3806. * BY THE USER. FOR BUFFERED MASS STORAGE DEVICES, THE SECTOR
  3807. * NUMBER VALUE ENTERED BY THE USER MUST BE CONVERTED TO THE
  3808. * MAPPING USED BY THE OPERATING SYSTEM.
  3809.  
  3810. FRD SX4 B6-3
  3811. NZ X4,CFER IF TOO MANY PARAMETERS
  3812. SX1 1RC
  3813. SA2 A0 GET CYLINDER LIMIT FOR THIS DEVICE
  3814. MX0 -12
  3815. AX2 48
  3816. BX2 -X0*X2
  3817. RJ RPA GET CYLINDER SPECIFIED BY USER
  3818. NZ X4,CFER IF INCORRECT CYLINDER VALUE GIVEN
  3819. SA6 FRDA SAVE CYLINDER NUMBER
  3820. SX1 1RT
  3821. SA2 A0 GET TRACK LIMIT FOR THIS DEVICE
  3822. MX0 -6
  3823. AX2 42
  3824. BX2 -X0*X2
  3825. RJ RPA GET TRACK SPECIFIED BY USER
  3826. NZ X4,CFER IF INCORRECT TRACK VALUE GIVEN
  3827. SA6 FRDB SAVE TRACK NUMBER
  3828. SX1 1RS
  3829. SA2 A0 GET SECTOR LIMIT FOR THIS DEVICE
  3830. MX0 -6
  3831. AX2 36
  3832. BX2 -X0*X2
  3833. RJ RPA GET SECTOR SPECIFIED BY USER
  3834. NZ X4,CFER IF INCORRECT SECTOR VALUE GIVEN
  3835. SA3 A0
  3836. MX0 -3
  3837. LX3 -33 POSITION CONVERSION FACTOR
  3838. BX2 -X0*X3
  3839. SB7 X2
  3840. LX6 B7 CONVERT PHYSICAL TO LOGICAL SECTOR
  3841.  
  3842. * MULTIPLY THE TRACK VALUE BY THE NUMBER OF LOGICAL
  3843. * SECTORS PER PHYSICAL TRACK.
  3844.  
  3845. MX0 -6 MASK FOR PHYSICAL SECTORS/PHYSICAL TRACK
  3846. LX3 33-36
  3847. SA1 FRDB FETCH TRACK VALUE
  3848. BX2 -X0*X3
  3849. LX2 B7 CONVERT TO LOGICAL SECTORS/PHYSICAL TRACK
  3850. IX1 X2*X1 CONVERT TRACK VALUE TO LOGICAL SECTORS
  3851. LX3 36-12
  3852. IX6 X6+X1 ACCUMULATE LOGICAL SECTOR COUNT
  3853.  
  3854. * MULTIPLY THE CYLINDER VALUE BY THE NUMBER OF LOGICAL
  3855. * SECTORS PER CYLINDER.
  3856.  
  3857. SA1 FRDA FETCH CYLINDER VALUE
  3858. MX0 -12
  3859. BX2 -X0*X3 EXTRACT PHYSICAL SECTORS/CYLINDER
  3860. LX2 B7 CONVERT TO LOGICAL SECTORS/CYLINDER
  3861. IX1 X2*X1
  3862. LX3 12
  3863. IX6 X6+X1 ACCUMULATE LOGICAL SECTOR COUNT
  3864. BX3 -X0*X3
  3865.  
  3866. * DIVIDE THE ACCUMULATED LOGICAL SECTOR COUNT BY THE
  3867. * SUM OF (LOGICAL + GAP) SECTORS PER LOGICAL TRACK.
  3868.  
  3869. PX3 X3
  3870. PX6 X6
  3871. NX3 X3
  3872. FX6 X6/X3 QUOTIENT = LOGICAL TRACK NUMBER
  3873. UX6,B7 X6
  3874. LX6 B7
  3875. EQ CFER RETURN
  3876.  
  3877.  
  3878. FRDA BSS 1 CYLINDER NUMBER
  3879. FRDB BSS 1 TRACK NUMBER
  3880. TDTY SPACE 4,10
  3881. ** TDTY - TABLE OF DEVICE TYPE PARAMETERS.
  3882. *
  3883. *T, TDTY 1/ PK,11/ MN,1/ TT,11/ SL,18/ FP,6/ AI,12/ CT
  3884. *
  3885. * PK = PACK TYPE DEVICE FLAG.
  3886. * MN = DEVICE MNEMONIC.
  3887. * TT = TRACK TYPE, 0 = FULL TRACK, 1 = HALF TRACK.
  3888. * SL = SINGLE UNIT SECTOR LIMIT.
  3889. * FP = PHYSICAL DESCRIPTOR TABLE ENTRY.
  3890. * AI = *LDAM* ALGORITHM INDEX.
  3891. * CT = DEFAULT NUMBER OF CATALOG TRACKS.
  3892.  
  3893.  
  3894. PURGMAC TBLM
  3895. TBLM MACRO EQ
  3896. .A IFNE CYUN_EQ,0
  3897. VFD 1/1 SET ROTATING MASS STORAGE DEVICE
  3898. .A ELSE
  3899. VFD 1/0 SET LARGE MEMORY STORAGE DEVICE
  3900. .A ENDIF
  3901. VFD 11/2R_EQ,1/TT_EQ,11/SL_EQ
  3902. .B IFNE CYUN_EQ,0
  3903. VFD 18/PHY_EQ PHYSICAL DESCRIPTOR TABLE ENTRY
  3904. .B ELSE
  3905. VFD 18/0
  3906. .B ENDIF
  3907. VFD 6/AI_EQ,12/CT_EQ
  3908. ENDM
  3909.  
  3910. LIST G
  3911. TDTY TBL "MSEQ"
  3912. LIST -G
  3913. CON 0 END OF TABLE
  3914. TPHY SPACE 4,10
  3915. ** TPHY - PHYSICAL DESCRIPTOR TABLE.
  3916. *
  3917. *T, TPHY 12/CYPN, 6/PTCY, 6/PSPT, 3/CF, 9/UNUSED, 12/PSCY, 12/LSLT
  3918. *
  3919. * CYPN = CYLINDERS PER PARTITION.
  3920. * PTCY = PHYSICAL TRACKS PER CYLINDER.
  3921. * PSPT = PHYSICAL SECTORS PER PHYSICAL TRACK.
  3922. * CF = CONVERSION FACTOR.
  3923. * PSCY = PHYSICAL SECTORS PER CYLINDER.
  3924. * LSLT = LOGICAL SECTORS PER LOGICAL TRACK, INCLUDING
  3925. * GAP SECTORS.
  3926.  
  3927.  
  3928. PURGMAC TBLM
  3929. TBLM MACRO EQ
  3930. IFNE CYUN_EQ,0
  3931.  
  3932. PHY_EQ VFD 12/CYPN_EQ
  3933. VFD 6/PTCY_EQ
  3934. VFD 6/PSPT_EQ
  3935. VFD 3/CFS_EQ
  3936. VFD 9/0 UNUSED
  3937. VFD 12/PSPT_EQ*PTCY_EQ-SPSC_EQ
  3938. VFD 12/SL_EQ+GS_EQ
  3939. ENDIF
  3940. ENDM
  3941.  
  3942. LIST G
  3943. TPHY TBL "MSEQ"
  3944. LIST -G
  3945. TITLE COMMON DECKS.
  3946. SPACE 4
  3947. * COMMON DECKS.
  3948.  
  3949. *CALL COMCARG
  3950. *CALL COMCDCP
  3951. *CALL COMCDXB
  3952. *CALL COMCMVE
  3953. *CALL COMCSFN
  3954. *CALL COMCUPC
  3955. *CALL COMCCOD
  3956. *CALL COMCVLC
  3957.  
  3958.  
  3959. * COMMON DECKS WHICH MAKE SYSTEM REQUESTS.
  3960.  
  3961. QUAL SYSREQ
  3962. QUAL$ EQU 1
  3963. *CALL COMCCIO
  3964. *CALL COMCCPM
  3965. *CALL COMCLFM
  3966. *CALL COMCPFU
  3967. *CALL COMCQFM
  3968. *CALL COMCRSB
  3969. *CALL COMCSYS
  3970. QUAL *
  3971.  
  3972. CIO= EQU /SYSREQ/CIO=
  3973. CPM= EQU /SYSREQ/CPM=
  3974. LFM= EQU /SYSREQ/LFM=
  3975. PFU EQU /SYSREQ/PFU
  3976. QFM EQU /SYSREQ/QFM
  3977. MSG= EQU /SYSREQ/MSG=
  3978. RCL= EQU /SYSREQ/RCL=
  3979. RSB= EQU /SYSREQ/RSB=
  3980. WNB= EQU /SYSREQ/WNB=
  3981. SYS= SPACE 4,15
  3982. ** SYS= - PROCESS SYSTEM REQUEST.
  3983. *
  3984. * ENTRY (X6) = SYSTEM REQUEST.
  3985. *
  3986. * USES X - 1, 6, 7.
  3987. * A - 1, 7.
  3988. * B - 2.
  3989. *
  3990. * CALLS /SYSREQ/SYS=.
  3991.  
  3992.  
  3993. SYS= SUBR ENTRY/EXIT
  3994. RJ /SYSREQ/SYS=
  3995. SA1 PREQ
  3996. ZR X1,SYS=X IF NO PP REQUEST
  3997. BX7 X7-X7 CLEAR REQUEST WORD
  3998. SX6 X1-TPPRL-1 VERIFY REQUEST
  3999. SA7 A1
  4000. PL X6,SYS=X IF INCORRECT REQUEST
  4001. SB2 X1+TPPR-1
  4002. JP B2 EXIT TO REQUEST PROCESSOR
  4003.  
  4004.  
  4005. * TABLE OF PP REQUESTS.
  4006.  
  4007. TPPR BSS 0
  4008. + EQ CLEAR CLEAR INITIALIZATION FLAGS
  4009. + EQ RERUN PROCESS RERUN
  4010. + EQ TKL PROCESS TRACK LIMIT
  4011. BSS 0
  4012. TPPRL EQU *-TPPR
  4013. TITLE KEYBOARD PROCESSOR.
  4014. KIP SPACE 4,10
  4015. ** KIP - KEYBOARD PROCESSOR.
  4016. * *PKI* UNPACKS INPUT PARAMETERS FOR *MSI* FUNCTIONS.
  4017. *
  4018. * EXIT TO PKI2 IF NO INCORRECT FUNCTIONS ENCOUNTERED.
  4019. * TO PKIX IF *GO* ENTERED.
  4020. * TO PKI1 IF PAGING OCCURED.
  4021. * TO *CLEAR* OR *RERUN* IF APPROPRIATE COMMAND ENTERED.
  4022. * (B6) = NUMBER OF ARGUMENTS ENTERED.
  4023. * (X6) = 0 IF NO ERRORS IN UNPACKING OF ARGUMENTS.
  4024. *
  4025. * USES X - ALL.
  4026. * A - 1, 2, 3, 5, 6, 7.
  4027. * B - 2, 3, 6, 7.
  4028. *
  4029. * CALLS PGD, UPC.
  4030. *
  4031. * MACROS CONSOLE, MOVE, RECALL.
  4032.  
  4033.  
  4034. KIP BX6 X6-X6 CLEAR PARAMETER AREA
  4035. SB3 PARAML-1
  4036. KIP1 SA6 PAR+B3
  4037. SB3 B3-B1 DECREMENT COUNT
  4038. NZ B3,KIP1 IF MORE WORDS TO CLEAR
  4039. SA6 I CLEAR INPUT BUFFER
  4040. SA6 A6+B1
  4041. CONSOLE KDCW
  4042. KIP2 RECALL
  4043. SA1 I
  4044. ZR X1,KIP2 IF INPUT NOT READY
  4045. MX0 6
  4046. BX3 X1*X0 SET ENTRY CONDITIONS FOR *PGD*
  4047. SX2 PAGA
  4048. SA5 FLFG
  4049. ZR X5,KIP2.1 IF INITIALIZE PROCESSING
  4050. SX2 PAGB
  4051. KIP2.1 BX4 X4-X4
  4052. SX1 KDCW
  4053. RJ PGD PAGE DISPLAY
  4054. ZR X4,PKI1 IF PAGING OCCURRED
  4055. MOVE 4,BLK,KBDS1+1
  4056. MOVE 4,BLK,KBDS2+1
  4057. SA1 I
  4058. BX0 X1
  4059. LX0 18
  4060. SA3 FADD FLAW KEYBOARD INPUT ADDRESS
  4061. SA5 FLFG
  4062. NZ X5,KIP3 IF FLAW PROCESSING
  4063. SA5 PAGA
  4064. LX5 30
  4065. SB2 X5
  4066. NE B2,B1,KIP3 IF CURRENT LEFT SCREEN INDEX IS 2
  4067. SA3 IADD
  4068. KIP3 SX5 X0-3RGO.
  4069. NZ X5,KIP3.1 IF NOT *GO*
  4070. SA1 BLK
  4071. KIP3.1 MOVE 4,I,X3
  4072. ZR X5,PKIX IF *GO* ENTERED
  4073. SA1 CLRM
  4074. LX0 -18
  4075. BX2 X1-X0
  4076. SA1 RERN
  4077. AX2 30
  4078. SX7 B1
  4079. ZR X2,KIP4 IF *CLEAR*
  4080. BX2 X1-X0
  4081. AX2 30
  4082. ZR X2,RERUN IF *RERUN*
  4083. SA5 CARD PROCESS COMMAND
  4084. SB7 PAR-1
  4085. RJ UPC UNPACK COMMAND
  4086. SB6 B6-B1 SKIP FIRST ARGUMENT
  4087. EQ PKI2 GO PROCESS ENTRY
  4088.  
  4089. KIP4 SA7 CLF
  4090. EQ CLEAR ENTER CLEAR ROUTINE
  4091.  
  4092. CARD DATA H*MSI,* COMMAND IMAGE
  4093. I BSSZ 8 KEYBOARD INPUT BUFFER
  4094. KDCW VFD 24/I,18/R,18/O K DISPLAY CONTROL WORD
  4095. FADD VFD 42/0,18/KBDS2+1 DISPLAY ADDRESS FOR FLAWING
  4096. IADD VFD 42/0,18/KBDS1+1 DISPLAY ADDRESS FOR INITIALIZING
  4097. BLK DIS 4,
  4098. CLRM DATA 5LCLEAR
  4099. RERN DATA 5LRERUN
  4100. SPACE 4,10
  4101.  
  4102. * INITIALIZE PAGE TABLE.
  4103.  
  4104. PAGA PAGT O,MSDS1,KBDS1 LEFT SCREEN PAGE 1
  4105. PAGT L,MSDS2,KBDS2 LEFT SCREEN PAGE 2
  4106. PAGT
  4107. PAGT R RIGHT SCREEN
  4108. PAGT *
  4109.  
  4110. * FLAW PAGE TABLE.
  4111.  
  4112. PAGB PAGT L,MSDS2,KBDS2 LEFT SCREEN
  4113. PAGT
  4114. PAGT R RIGHT SCREEN
  4115. PAGT *
  4116.  
  4117. PGD HERE REMOTE BLOCK FROM *COMCDCP*
  4118. CDS SPACE 4,10
  4119. ** CDC - CLEAR K-DISPLAY ENTRIES.
  4120. *
  4121. * USES X - 0, 1, 6, 7.
  4122. * A - 1, 6, 7.
  4123. * B - 2, 3.
  4124.  
  4125.  
  4126. CDS SUBR ENTRY/EXIT
  4127. SX7 LTDS+1 RESTORE *DAST*
  4128. SA7 DAST
  4129. SX7 LTDS+3 RESTORE *DASM*
  4130. SA7 DASM
  4131. SA1 BLK
  4132. SX7 1R0-1R
  4133. SB2 20B
  4134. LX7 -6
  4135. IX7 X1+X7
  4136. BX6 X1
  4137. SA1 DATB
  4138. CDS1 SA7 X1 CLEAR DISPLAY AREA
  4139. SA1 A1+B1
  4140. SB3 A1-DAST
  4141. NZ B3,CDS1 IF NOT END OF OPTIONS
  4142. SB3 X1 SAVE ADDRESS OF FLAW DISPLAY
  4143. BX7 X6
  4144. CDS2 SA6 B3
  4145. SA7 A6+B1
  4146. SB2 B2-B1
  4147. SB3 B3+6
  4148. NZ B2,CDS2 IF NOT END OF FLAW DISPLAY
  4149. SB2 20B
  4150. SB3 LTDS+1 BLANK OUT LEFT SCREEN
  4151. CDS3 SA6 B3
  4152. SA7 A6+B1
  4153. SA7 A7+B1
  4154. SA7 A7+B1
  4155. SB2 B2-B1
  4156. SB3 B3+6 INCREMENT TO NEXT LINE
  4157. NZ B2,CDS3 IF NOT LAST LINE
  4158. EQ CDSX RETURN
  4159. TITLE K-DISPLAY LINE NUMBERS.
  4160. SPACE 4
  4161. SPACE 4,10
  4162. * K-DISPLAY FOR THE LEFT SCREEN WHEN INITIALIZING DEVICES.
  4163. * THERE IS NO RIGHT SCREEN.
  4164.  
  4165.  
  4166. * EST ORDINALS THAT ARE SITE DEPENDENT.
  4167.  
  4168. LVAL OCTMIC NOPE EST ORDINAL MINIMUM VALUE
  4169. UVAL OCTMIC ESMX-1 EST ORDINAL MAXIMUM VALUE
  4170. FVAL DECMIC PNFE FLAW ENTRIES MAXIMUM VALUE
  4171.  
  4172. O VFD 18/0,18/KDTB,24/0 DISPLAY CONTROL WORD
  4173. KDL 1,T,(MASS STORAGE DEVICE INITIALIZATION )
  4174. KDL 54,T,(PAGE 1 OF 2)
  4175. KDL 1,K,(INITIALIZE EQUIPMENT)
  4176. OPDS KDL 1,K,( )
  4177. INDSA KDL 1,K,( )
  4178. TPDS KDL 1,H,(INITIALIZE REQUEST )
  4179. KDL 1,H,( OPTION DESCRIPTION)
  4180. EQDS KDL 1,K,( EQ = 0 EST ORDINAL OF DEVICE ("LVAL"-"UVAL")
  4181. ,.)
  4182. FNDS KDL 1,K,( FM = 0 FAMILY NAME OR PACK NAME IF TY=X (1-7
  4183. , CHAR).)
  4184. DNDS KDL 1,K,( DN = 0 DEVICE NUMBER (1-77).)
  4185. UNDS KDL 1,K,( UN = 0 PRIVATE AUXILIARY DEVICE USER NAME (1
  4186. ,-7 CHAR).)
  4187. TYDS KDL 1,K,( TY = 0 ACCESS TYPE (F OR X).)
  4188. LADS KDL 1,K,( LA = 0 LOWER ACCESS LEVEL (1-7 CHAR).)
  4189. UADS KDL 1,K,( UA = 0 UPPER ACCESS LEVEL (1-7 CHAR).)
  4190. DMDS KDL 1,K,( DM = 0 DEVICE MASK (0-377).)
  4191. SMDS KDL 1,K,( SM = 0 SECONDARY MASK (0-377).)
  4192. NCDS KDL 1,K,( NC = 0 CATALOG TRACKS (0-200).)
  4193. NPDS KDL 1,K,( NP = 0 NUMBER OF PACKS (1-7).)
  4194. MSDS1 KDL 1,M,( )
  4195. KBDS1 KDL 1,I,( )
  4196. CON 0 END OF DISPLAY
  4197. SPACE 4,10
  4198. * K-DISPLAY FOR THE LEFT SCREEN WHEN FLAWING DEVICES.
  4199. * THERE IS A RIGHT SCREEN.
  4200.  
  4201.  
  4202. L VFD 18/0,18/KDTB,24/0 DISPLAY CONTROL WORD
  4203. LNDS KDL 1,T,(CURRENT FLAW ENTRIES )
  4204. KDL 54,T,(PAGE 2 OF 2)
  4205. INDS KDL 1,K,( EQ = 0 EST ORDINAL OF DEVICE. )
  4206. KDL 1,H,( NUM VALUES ENTERED TRT OCTAL VALUES * = DUPLICAT
  4207. ,E)
  4208. LTDS KDL 1,K,( 1 )
  4209. KDL 1,K,( 2 )
  4210. KDL 1,K,( 3 )
  4211. KDL 1,K,( 4 )
  4212. KDL 1,K,( 5 )
  4213. KDL 1,K,( 6 )
  4214. KDL 1,K,( 7 )
  4215. KDL 1,K,( 8 )
  4216. KDL 1,K,( 9 )
  4217. KDL 1,K,( 10 )
  4218. KDL 1,K,( 11 )
  4219. KDL 1,K,( 12 )
  4220. KDL 1,K,( 13 )
  4221. KDL 1,K,( 14 )
  4222. KDL 1,K,( )
  4223. MSDS2 KDL 1,M,( )
  4224. KBDS2 KDL 1,I,( )
  4225. CON 0 END OF DISPLAY
  4226. SPACE 4,10
  4227. * K-DISPLAY FOR THE RIGHT SCREEN WHEN FLAWING DEVICES.
  4228. * THERE IS A LEFT SCREEN.
  4229.  
  4230.  
  4231. R VFD 18/0,18/KDTB,24/0 DISPLAY CONTROL WORD
  4232. KDL 1,T,(MASS STORAGE DEVICE FLAWING)
  4233. KDL 1,H,(SLF, CLF, SPF AND CPF ENTRIES)
  4234. RTDS KDL 1,K,( )
  4235. KDL 1,K,( SLF = NNNN SET LOGICAL TRACK FLAW.)
  4236. KDL 1,K,( CLF = NNNN CLEAR LOGICAL TRACK FLAW.)
  4237. KDL 1,K,( SPF = XX SET PHYSICAL TRACK FLAW.)
  4238. KDL 1,H,( CPF = XX CLEAR PHYSICAL TRACK FLAW.)
  4239. KDL 1,K,( WHERE)
  4240. KDL 1,K,( NNNN = VALID LOGICAL TRACK NUMBER.)
  4241. KDL 1,K,( XX = C000,T00,S00 (CYLINDER,TRACK,SECTOR.)
  4242. KDL 1,H,( = A0000000 (ADDR/10B, FOR DE/DP ONLY.))
  4243. KDL 1,K,( NUMERIC VALUES ARE CONSIDERED OCTAL UNLESS THE)
  4244. KDL 1,K,( DIGITS 8 OR 9 APPEAR IN THE NUMBER, OR A *D* IS)
  4245. KDL 1,H,( APPENDED TO THE NUMBER.)
  4246. KDL 1,K,(SEE LEFT SCREEN FOR CURRENT ENTRIES,)
  4247. KDL 1,H,(UP TO "FVAL" ENTRIES ALLOWED.)
  4248. CON 0 END OF DISPLAY
  4249.  
  4250. * Y - COORDINATE TABLE.
  4251.  
  4252. KYCT KDL *
  4253. PRK HERE ASSEMBLE REMOTE BLOCK FROM COMCDCP HERE
  4254. KDTA DATA C*FLAW.* K-DISPLAY TITLE
  4255. KDTB DATA C*INITIALIZE.* K-DISPLAY TITLE
  4256. TITLE BUFFERS AND FLAGS
  4257. SPACE 4
  4258. ** TABLES AND BUFFERS.
  4259.  
  4260.  
  4261. USE BUFFERS
  4262. UTL= BSS 0 SYSTEM UTILITY SPECIAL ENTRY POINT
  4263. SSJ= BSSZ SSJL
  4264. ESTB EQU * EST TABLE
  4265. ESTF EQU ESTB+ESMX*ESTE EST MST LINK TABLE
  4266. PKL EQU ESTF+ESMX PACK LINK TABLE
  4267. BUF EQU PKL+PKLL MST BUFFER
  4268. CATB EQU BUF+ESMX*MSTL BUFFER FOR CATALOG READS
  4269. SCRB EQU CATB+CATBL SCRATCH BUFFER
  4270. RFL= EQU SCRB+SCRBL
  4271. SPACE 4
  4272. END