Table of Contents

RESEX

Table Of Contents

  • [00018] RESEX - RESOURCE EXECUTIVE.
  • [00022] RESOURCE EXECUTIVE.
  • [00428] MACROS.
  • [00486] INTRC - INTERRUPT PROCESSING CONTROL.
  • [00584] RETRF - RETURN RESOURCE FILE.
  • [00598] TMS - CALL THE TAPE MANAGEMENT SYSTEM PP *TFM*.
  • [00644] WTSB - WRITE MAGNET SUB-SYSTEM BLOCK.
  • [00660] COMMON DECKS.
  • [00709] SPECIAL USAGE SYMBOLS.
  • [00753] ASSEMBLY CONSTANTS.
  • [00783] CONSTANTS AND TEMPORARIES.
  • [00925] TTDV - TABLE OF TAPE DEVICE TYPES.
  • [00945] TTFM - TABLE OF TAPE FORMAT CHARACTERISTICS.
  • [01026] OVERVIEW DOCUMENTATION.
  • [01224] OVERCOMMITMENT ALGORITHM.
  • [01226] COM - CHECK FOR OVERCOMMITMENT.
  • [01335] OVERCOMMITMENT ALGORITHM SUBROUTINES.
  • [01337] BRE - BUILD RESOURCE ENVIRONMENT.
  • [01722] BRT - BUILD RESOURCE DEMAND TABLE.
  • [01796] BSF - BUILD SCRATCH FILE.
  • [01834] CFU - CHECK FOR UNIT.
  • [02203] CIC - CHECK FOR INTERNAL CONFLICT.
  • [02228] COE - CHECK FOR *OFF* OR *DOWN* EQUIPMENT.
  • [02291] CRC - CHECK REQUESTOR COMPLETE.
  • [02310] CRQ - CHECK REQUEST.
  • [02441] DEI - DEMAND EXCEEDS INSTALLATION CHECK.
  • [02463] OCA - OVERCOMMITMENT ALGORITHM.
  • [02619] OVERCOMMITMENT UTILITY SUBROUTINES.
  • [02621] CAU - COUNT ASSIGNED UNITS.
  • [02731] DDS - DETERMINE DEMAND SATISFACTION.
  • [03041] DLY - DELAY.
  • [03066] IAS - INITIALIZE ASSIGNMENTS.
  • [03123] SDT - SWITCH 9-TRACK DRIVE TYPE.
  • [03145] SPI - SET PREVIEW INFORMATION IN DEMAND FILE ENTRY.
  • [03245] RESOURCE RESERVATION SUBROUTINES.
  • [03247] RMT - REQUEST MAGNETIC TAPE.
  • [03431] RRP - REQUEST REMOVABLE PACK.
  • [03509] RRS - REQUEST RESOURCES.
  • [03538] ROA - REQUEST OPERATOR ASSIGNMENT.
  • [03594] SDD - SET DEVICE TYPE AND DENSITY DISPLAY.
  • [03643] VUR - VERIFY UNIT REQUEST.
  • [03780] RESOURCE FILE SUBROUTINES.
  • [03782] MVE - MAKE VSNFILE ENTRY.
  • [03831] RDF - READ DEMAND FILE.
  • [03873] UDF - UPDATE DEMAND FILE.
  • [03922] URF - UPDATE RESOURCE FILES.
  • [04021] TAPE ALTERNATE STORAGE SUBROUTINES.
  • [04023] AEV - ADD ENTRY TO STAGING TAPE VSN LIST.
  • [04103] ASF - ATTACH STAGE REQUEST FILE.
  • [04159] GVS - GET VSN FOR STAGING TAPE.
  • [04333] UVL - UPDATE STAGING TAPE VSN LIST.
  • [04413] PREVIEW DISPLAY SUBROUTINES.
  • [04415] BPD - BUILD PREVIEW DISPLAY.
  • [04519] BSP - BUILD STAGING TAPE PREVIEW ENTRIES.
  • [04601] CRB - COMPACT REQUEST BUFFER.
  • [04631] EPB - ENTER PREVIEW OR MOUNT REQUEST BUFFER.
  • [04705] UTILITY SUBROUTINES.
  • [04707] BEV - BUILD EVENT.
  • [04735] BTR - BUILD TAPE ASSIGNMENT REQUEST BLOCK.
  • [04853] BWM - BUILD WAITING FOR TAPE/PACK MESSAGE.
  • [04899] CAL - CHECK ACCESS LEVEL.
  • [04943] CBP - CALCULATE RESOURCE BYTE POSITION.
  • [04973] CCV - CHECK FOR CHANGE OF TMS SCRATCH VSN.
  • [05007] CDT - CHECK DEVICE TYPE.
  • [05035] CER - CHECK FOR *CIO* ERROR ON TAPE FILE OPERATION.
  • [05058] CET - COPY EQUIPMENT STATUS TABLE (EST).
  • [05108] CFA - CHECK FILE ATTACH.
  • [05229] CLB - CLEAR BUFFER.
  • [05251] CLM - CHECK LEVEL MATCH.
  • [05281] COV - CLEAR OPERATOR VERIFY FLAG.
  • [05297] CRM - CHECK FOR RESOURCE MATCH.
  • [05328] CRV - CHECK RESOURCE VALIDITY.
  • [05377] CTA - COUNT TOTAL ASSIGNS AND DEMANDS.
  • [05440] CTE - CHECK FOR TAPE EQUIPMENT.
  • [05461] CTL - CHECK FOR TRACK LIMIT.
  • [05527] CUC - CHANGE USER NAME IN CONTROL POINT AREA.
  • [05550] CUP - CLEAN UP REQUEST.
  • [05589] CVA - CHECK VSN AVAILABILITY.
  • [05635] END - ENDING SEQUENCES.
  • [05663] ERR - COMMAND ERROR PROCESSOR.
  • [05694] GEE - GET EST ENTRY.
  • [05720] GRI - GET RESOURCE INDEX.
  • [05772] GRL - GET RESOURCE LIST INDEX.
  • [05798] GTM - GET CURRENT TIME.
  • [05817] IDE - INITIALIZE DEMAND ENTRY.
  • [05843] IRC - INCREMENT RESOURCE COUNT.
  • [05886] IUT - INITIALIZE *UTMS*.
  • [05922] IVE - INITIALIZE VSN ENTRY.
  • [05953] OPN - OPEN FILE.
  • [06174] PER - PROCESS ERROR.
  • [06223] PMM - PROCESS *MAGNET* MISSING.
  • [06240] PNE - PROCESS NAMED ERROR.
  • [06340] PRO - PROCESS TIMED EVENT ROLLOUT.
  • [06364] PIT - PROCESS INTERRUPT.
  • [06414] RPV - REPRIEVE PROCESSOR.
  • [06502] RSB - MAKE RSB REQUEST.
  • [06530] SPM - SET PREVIEW DISPLAY MESSAGE.
  • [06557] TMA - *TMS* ABORT PROCESSING.
  • [06578] WSB - WRITE SUBSYSTEM BLOCK TO MAGNET.
  • [06629] BUFFERS.
  • [06676] COMMAND PRESET ROUTINES.
  • [07036] LRC - *LABEL* AND *REQUEST* COMMAND FILE ASSIGNMENT.
  • [07067] ROE - REQUEST OPERATOR EQUIPMENT ASSIGNMENT.
  • [07122] VTR - VALIDATE NON-TMS TAPE REQUEST.
  • [07153] PRESET UTILITY ROUTINES.
  • [07155] CAR - CHECK ACS TAPE REQUEST NOT UNDER TMS CONTROL.
  • [07213] CCR - CHECK FOR CONFLICTING RESOURCES.
  • [07241] CJV - CHECK JOB VALIDATION.
  • [07265] CTD - CHECK *TMS* DEFAULTS.
  • [07340] CTI - CONVERT TAPE DESCRIPTORS TO INTERNAL *COMSMTX* FORMAT.
  • [07427] CTP - CHECK TAPE ACCESS PRIVILEGES.
  • [07475] FDF - FLIP DATE FIELDS.
  • [07494] FRA - FIRST REEL ASSIGNMENT.
  • [07659] IDF - ISSUE DAYFILE MESSAGE.
  • [07750] MFA - MULTI-FILE ASSIGNMENT.
  • [07828] PAL - PROCESS ACCESS LEVEL.
  • [07887] PVS - PAD VSN WITH CHARACTER *0*.
  • [07945] SBF - SET MAXIMUM BLOCK SIZE FROM FRAME COUNT.
  • [08004] SMF - SET MULTI-FILE PROCESSING FLAGS.
  • [08043] SNF - SET NOISE BLOCK DEFINITION FROM FRAME COUNT.
  • [08085] TBD - BUILD TAPE BLOCK DEFINITION.
  • [08166] VCD - VERIFY TAPE ASSIGNMENT COMMAND DEFAULTS.
  • [08233] VTD - VERIFY TAPE DESCRIPTORS.
  • [08379] TDEN - TABLE OF DENSITY OPTIONS.
  • [08459] LFM *DMP=* CALL PRESET.
  • [08556] *REQ* *DMP=* CALL PRESET.
  • [08587] VSN AND DEMAND FILE PRESET SUBROUTINES.
  • [08589] BVE - BUILD VSN ENTRY.
  • [08659] CVS - CHECK VSN PARAMETER.
  • [08717] FSC - FILE STATUS CHECK.
  • [08784] MFE - MAKE RESOURCE FILE ENTRIES.
  • [08819] SVE - SEARCH FOR VSN FILE ENTRY.
  • [08863] SVI - SET VSN INDEX.
  • [08911] AFO - ASSEMBLE FILE NAME AND TAPE OPTIONS.
  • [09022] TAOK - TABLE OF ASSEMBLY OPTION KEYWORDS.
  • [09094] TAOS - TABLE OF ASSEMBLY OPTION SYNTAX TABLE ADDRESSES.
  • [09109] TEQP - TABLE OF EQUIVALENT PARAMETERS.
  • [09131] OPTION PROCESSORS.
  • [09146] CRD - SET CREATION DATE (JULIAN FORMAT).
  • [09163] FID - SET FILE IDENTIFIER.
  • [09195] NMD - SET NUMERIC DATA FIELDS FOR LABEL.
  • [09251] RTC - SET RETENTION CYCLE.
  • [09267] RTD - SET RETENTION DATE (JULIAN FORMAT).
  • [09298] SAL - SET ACCESS LEVEL.
  • [09353] SCD - PROCESS *C* OPTION.
  • [09367] SCI - SET CHECKPOINT DATA.
  • [09376] SCV - SET CONVERSION MODE.
  • [09398] SFA - SET FILE ACCESSIBILITY.
  • [09418] SFC - SET MAXIMUM FRAME COUNT FOR TAPE BLOCK.
  • [09437] SID - SET MULTI-SET IDENTIFIER.
  • [09463] SLT - SET LABEL TYPE.
  • [09487] SNS - SET NOISE SIZE.
  • [09508] SPO - SET PROCESSING OPTIONS.
  • [09565] STD - SET TAPE DENSITY.
  • [09601] STF - SET FORMAT.
  • [09625] STT - SET TAPE DEVICE TYPE.
  • [09659] VSP - SET VOLUME SERIAL NUMBERS.
  • [09675] WRL - SET LABEL READ/WRITE.
  • [09693] COMMAND PROCESSING SUBROUTINES.
  • [09695] AOP - ANALYZE OPTIONAL PARAMETERS.
  • [09734] CLP - CALL POP.
  • [09760] ENF - ENTER NUMERIC LABEL FIELD.
  • [09795] GRD - GENERATE RETENTION DATE.
  • [09875] *TMS* COMMAND PROCESSING.
  • [09893] TMO - TAPE MANAGER OPTIONS.
  • [09946] AUA - ALTERNATE USER ACCESS.
  • [09983] ESP - ENTER SECURE PASSWORD.
  • [10092] SAC - SET AUDIT CHARACTERISTIC.
  • [10112] SCT - SET CATEGORY TYPE.
  • [10134] SMD - SET FILE MODE.
  • [10153] STO - SET TAPE MANAGER OPTIONS.
  • [10239] SPVT - SPECIAL VALIDATION TABLE.
  • [10266] *PFM* *DMP=* CALL PRESET.
  • [10329] PRESET PRE-PROCESSORS.
  • [10331] CCP - COMMAND PRE-PROCESSOR.
  • [10382] CLF - CONVERT LFM CALL TO FET.
  • [10531] CSF - CONVERT NOS/BE REQUEST BLOCK TO FET.
  • [10644] GAL - GET ACCESS LEVEL.
  • [10671] ILF - INITIALIZE LABEL FET.
  • [10689] PCV - PRESET CONTROL POINT VALUES.

Source Code

RESEX.txt
  1. IDENT RESEX,FETS
  2. ABS
  3. SST
  4. ENTRY ASSIGN
  5. ENTRY LABEL
  6. ENTRY REQUEST
  7. ENTRY RESOURC
  8. ENTRY VSN
  9. ENTRY LFM
  10. ENTRY PFM
  11. ENTRY REQ
  12. ENTRY ARG=
  13. ENTRY DMP=
  14. ENTRY RFL=
  15. ENTRY SDM=
  16. ENTRY SSJ=
  17. SYSCOM B1
  18. TITLE RESEX - RESOURCE EXECUTIVE.
  19. *COMMENT RESEX - RESOURCE EXECUTIVE.
  20. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  21. SPACE 4,10
  22. *** RESEX - RESOURCE EXECUTIVE.
  23. * M. E. MADDEN. 73/05/31.
  24. * W. E. GOEBEL. 74/05/10.
  25. * J. L. LARSON. 77/05/04.
  26. * J. L. LARSON. 82/06/24.
  27. SPACE 4,10
  28. *** RESEX PROCESSES REQUESTS FOR MAGNETIC TAPE AND
  29. * REMOVABLE DISK PACK RESOURCES.
  30. *
  31. *
  32. * THE FOLLOWING TAPE RELATED COMMANDS ARE PROCESSED -
  33. *
  34. * ASSIGN(EQ,LFN,P1,P2,...,PN)
  35. * LABEL(LFN,P1,P2,...,PN)
  36. * REQUEST(LFN,P1,P2,...,PN)
  37. * VSN(LFN=VSN1/VSN2=VSN3)
  38. *
  39. *
  40. * THE FOLLOWING COMMAND DEFINES THE MAXIMUM NUMBER
  41. * OF TAPE AND PACK RESOURCE UNITS THAT WILL BE IN USE
  42. * CONCURRENTLY -
  43. *
  44. * RESOURC(RT1=N1/AL,RT2=N2/AL,.....RTN=NN/AL)
  45. *
  46. * RT RESOURCE TYPE.
  47. * N NUMBER OF UNITS DEMANDED.
  48. * AL ACCESS LEVEL, FOR TAPE DRIVES ONLY.
  49. * ( SEE *COMSMLS* FOR MICRO DEFINITION.)
  50. *
  51. *
  52. * THE OVERCOMMITMENT ALGORITHM IS CONTAINED IN *RESEX*.
  53. * THE COMMANDS PROCESSED HEREIN CALL THE OVERCOMMITMENT
  54. * ALGORITHM DIRECTLY, IF NECESSARY.
  55. * USER REQUESTS FOR TAPES DONE BY MACROS, ETC. (INCLUDING
  56. * *NOS/BE* FORMATTED CALLS) AND ALL REMOVABLE PACK REQUESTS
  57. * ARE TRANSFERRED TO *RESEX* SO THAT THE OVERCOMMITMENT
  58. * ALGORITHM MAY BE EXERCISED.
  59. *
  60. *
  61. * RESEX INTERLOCKS A TAPE EQUIPMENT BY CALLING LFM VIA VSN
  62. * FUNCTION. THEN RESEX CALLS MAGNET TO ASSIGN THE REQUESTED
  63. * TAPE.
  64. *
  65. *
  66. *
  67. * LABELS WILL BE PROPERLY VERIFIED IN STANDARD LABEL
  68. * PROCESSING MODE BY OPEN/ALTER OR OPEN/WRITE CALLS IF
  69. * LABEL COMMAND IS USED.
  70. *
  71. *
  72. *
  73. * RESOURCE FILES.
  74. *
  75. * RESEX USES TWO DIRECT ACCESS PERMANENT FILES AS FAST ATTACH
  76. * FILES. IN EACH CASE THE *ID* SUFFIX IN THE FILE NAME IS THE
  77. * MACHINE ID. -
  78. *
  79. * RSXDID RESOURCE DEMAND FILE.
  80. * EACH ENTRY CONSISTS OF JOB IDENTIFICATION,
  81. * RESOURCE VALIDATION LIMITS, MAXIMUM CONCURRENT
  82. * DEMAND FOR EACH RESOURCE TYPE, AND A REMOVABLE
  83. * DISK SHARE TABLE.
  84. * EACH ENTRY IS TWO PRUS (200 CM WORDS) IN LENGTH.
  85. *
  86. * RSXVID VSN FILE.
  87. * EACH ENTRY CONSISTS OF JOB IDENTIFICATION,
  88. * FILE NAME, *RSXDID* ENTRY RANDOM INDEX, DEMAND
  89. * FILE TAPE RESOURCE INDEX AND BYTE POINTER,
  90. * AND THE VOLUME SERIAL NUMBER(S) ASSOCIATED
  91. * WITH THE NAMED FILE.
  92. * EACH ENTRY IS ONE PRU (100 CM WORDS).
  93. *
  94. *
  95. * ERROR MESSAGES.
  96. *
  97. * ARGUMENT ERROR.
  98. * ARGUMENTS IN COMMAND OR *DMP=* CALL INCORRECT.
  99. *
  100. * JSQN ASSIGNS EXCEED DEMANDS.
  101. * JOB WITH JOB SEQUENCE NUMBER JSQN HAS ASSIGN
  102. * COUNTS GREATER THAN DEMAND COUNTS.
  103. *
  104. * CIO ERROR.
  105. * REWRITE ON RESOURCE FILE RETURNED ERROR STATUS OTHER
  106. * THAN END-OF-DEVICE.
  107. *
  108. * CONFLICTING RESOURCE TYPES.
  109. * *PE*, *HD*, AND *GE* RESOURCES CANNOT BE SPECIFIED
  110. * CONCURRENTLY IN THE SAME JOB WITH AN *NT* RESOURCE.
  111. *
  112. * DEMAND EXCEEDED.
  113. * USER ATTEMPTING TO EXCEED DEMAND.
  114. *
  115. * DEMAND FILE ERROR.
  116. * DEMAND FILE ENTRY DOES NOT MATCH JOB IDENTIFICATION.
  117. *
  118. * DEMAND VALIDATION ERROR.
  119. * DEMAND EXCEEDS USER VALIDATION LIMITS.
  120. *
  121. * EQUIPMENT NOT AVAILABLE.
  122. * SELECTED EQUIPMENT CANNOT BE ASSIGNED TO JOB.
  123. *
  124. * FORMAT REQUIRES UNLABELED TAPE.
  125. * THE FORMAT SPECIFIED IS VALID ONLY FOR UNLABELED
  126. * TAPES.
  127. *
  128. * FRAME COUNT TOO LARGE.
  129. * THE TAPE BLOCK SIZE CALCULATED FROM THE SPECIFIED
  130. * FRAME COUNT IS LARGER THAN THE MAXIMUM BLOCK SIZE.
  131. *
  132. * FRAME COUNT TOO SMALL.
  133. * THE SPECIFIED FRAME COUNT IS SMALLER THAN THE MINIMUM
  134. * ALLOWED.
  135. *
  136. * IMPROPER ACCESSIBILITY.
  137. * FILE ACCESSIBILITY FIELD IN *HDR1* TAPE LABEL DOES NOT
  138. * ALLOW USER TO ACCESS THAT FILE.
  139. *
  140. * INCORRECT ACCESS LEVEL FOR EQUIPMENT.
  141. * USER HAS SPECIFIED AN ACCESS LEVEL OUTSIDE OF THE
  142. * ACCESS LEVEL LIMITS.
  143. *
  144. * INCORRECT COMMAND.
  145. * *LFM*, *PFM* OR *REQ* ENTRY POINTS EXECUTED AS A
  146. * COMMAND.
  147. *
  148. * INCORRECT CONVERSION MODE.
  149. * THE SPECIFIED CONVERSION MODE IS INCORRECT.
  150. *
  151. * INCORRECT CONVERSION MODE FOR TAPE DEVICE TYPE.
  152. * THE SPECIFIED CONVERSION MODE IS NOT SUPPORTED FOR THE
  153. * TAPE DEVICE TYPE.
  154. *
  155. * INCORRECT DENSITY.
  156. * THE SPCIFIED DENSITY IS INCORRECT.
  157. *
  158. * INCORRECT DENSITY FOR FORMAT.
  159. * THE SPECIFIED DENSITY IS NOT SUPPORTED FOR THE TAPE
  160. * FORMAT.
  161. *
  162. * INCORRECT DENSITY FOR TAPE DEVICE TYPE.
  163. * THE SPECIFIED DENSITY IS NOT SUPPORTED FOR THE TAPE
  164. * DEVICE TYPE.
  165. *
  166. * INCORRECT END OF TAPE OPTION FOR FORMAT.
  167. * THE SPECIFIED END OF TAPE OPTION IS NOT SUPPORTED FOR
  168. * THE TAPE FORMAT.
  169. *
  170. * INCORRECT EQUIPMENT.
  171. * USER SPECIFIED EQUIPMENT THAT DOES NOT EXIST OR IS
  172. * NOT ALLOWED.
  173. *
  174. * INCORRECT LFM CALL.
  175. * INCORRECT FUCTION CODE IN LFM *DMP=* CALL.
  176. *
  177. * INCORRECT RESOURCE COUNT.
  178. * TOTAL RESOURCE DEMAND EXCEEDS MAXIMUM ALLOWED, AS
  179. * DEFINED BY INSTALLATION PARAMETER *MAXD* (DEFINED
  180. * IN RESEX).
  181. *
  182. * INCORRECT RESOURCE TYPE.
  183. * RESOURCE TYPE IS NOT RECOGNIZED.
  184. *
  185. * INCORRECT TAPE FORMAT.
  186. * THE SPECIFIED TAPE FORMAT IS INCORRECT.
  187. *
  188. * INSUFFICIENT RESOURCES ON SYSTEM.
  189. * RESOURCE DEMAND EXCEEDS NUMBER OF UNITS AVAILABLE ON
  190. * SYSTEM.
  191. *
  192. * MAGNETIC TAPE SUBSYSTEM NOT ACTIVE.
  193. * RSB OR SIC CALL GETS SUB-SYSTEM MISSING STATUS.
  194. *
  195. * MISSING DEMAND FILE ENTRY.
  196. * OVERCOMMITMENT ALGORITHM SUBROUTINE *CRQ* IS CALLED
  197. * WITHOUT HAVING PREVIOUSLY BUILT A DEMAND FILE ENTRY.
  198. *
  199. * JSQN MISSING RESOURCE.
  200. * RESEX WAS UNABLE TO FIND A RESOURCE UNIT ASSIGNED TO
  201. * THE JOB WITH JOB SEQUENCE NUMBER JSQN.
  202. *
  203. * MISSING VSN OR EQUIPMENT ASSIGNMENT.
  204. * SUBROUTINE *CRQ* EXPECTS TO FIND AN EQUIPMENT
  205. * ASSIGNMENT OR A VSN, BUT DOES NOT.
  206. *
  207. * MULTIPLE END OF TAPE OPTIONS SELECTED.
  208. * MORE THAN ONE END OF TAPE OPTION WAS SPECIFIED.
  209. *
  210. * NOISE SIZE TOO LARGE.
  211. * THE SPECIFIED NOISE SIZE IS LARGER THAN THE MAXIMUM
  212. * ALLOWED FOR THE TAPE DEVICE TYPE.
  213. *
  214. * NOT VALIDATED FOR REQUESTED ACCESS LEVEL.
  215. * USER HAS SPECIFIED AN ACCESS LEVEL OUTSIDE OF THE
  216. * USER-S ACCESS LEVEL VALIDATIONS.
  217. *
  218. * NOT VALIDATED FOR WRITING UNLABELED TAPES.
  219. * USER HAS NOT BEEN VALIDATED FOR WRITING ON UNLABELED
  220. * TAPES. * SAV=CULT.*
  221. *
  222. * NO VSN SPECIFIED ON ACS TAPE REQUEST.
  223. * NO VSN WAS SPECIFIED ON A REQUEST FOR AN ACS TAPE.
  224. *
  225. * NT DENSITY CONFLICT.
  226. * 9-TRACK TAPE UNIT SPECIFIED BY EST ORDINAL ON *ASSIGN*
  227. * COMMAND DOES NOT SUPPORT THE REQUIRED DENSITY.
  228. *
  229. * NT DRIVE CONFLICT.
  230. * INCREASED RESOURCE DEMANDS CANNOT BE SATISFIED DUE TO
  231. * CONFLICTS WITH CURRENTLY ASSIGNED RESOURCES (JOB
  232. * WOULD DEADLOCK ITSELF). 9-TRACK TAPE UNIT SPECIFIED
  233. * BY EST ORDINAL ON *ASSIGN* COMMAND CONFLICTS WITH THE
  234. * OTHER RESOURCE REQUIREMENTS FOR THIS JOB (ASSIGNMENT
  235. * REJECTED TO PREVENT JOB FROM DEADLOCKING ITSELF).
  236. *
  237. * PRIOR TAPE ASSIGNMENT LOST.
  238. * MAGNET HAS BEEN DROPPED WITH TAPES ASSIGNED. USER
  239. * MUST RETURN ALL TAPE FILES AND REASSIGN.
  240. *
  241. * REMOVABLE PACKS OVERCOMMITMENT.
  242. * REMOVABLE PACKS REQUEST WITHOUT *NA* SELECTED
  243. * OVERCOMMITS.
  244. *
  245. * RESEX ABORT - INTERNAL ERROR.
  246. * *RESEX* HAS ABORTED WITH ONE OF THE FOLLOWING ERRORS -
  247. * *CPU ERROR EXIT*
  248. * *PP CALL ERROR*
  249. *
  250. * RESEX ABORT - OPERATOR TERMINATION.
  251. * ERROR FLAG SET ON *RESEX* DUE TO OPERATOR *DROP*,
  252. * *KILL*, OR *RERUN*. *RESEX* PERFORMS APPROPRIATE
  253. * CLEAN-UP BEFORE ABORTING.
  254. *
  255. * RESEX ABORT - SYSTEM RESOURCE LIMIT.
  256. * *RESEX* TERMINATED PREMATURELY DUE TO TIME LIMIT, SRU
  257. * LIMIT, OR TRACK LIMIT. *RESEX* PERFORMS APPROPRIATE
  258. * CLEAN-UP BEFORE ABORTING.
  259. *
  260. * RESEX ABORT - TAPE MANAGER.
  261. * THE TAPE MANAGER (TMS) HAS ABORTED THE TAPE REQUEST.
  262. *
  263. * RESEX ABORT - TERMINAL INTERRUPT.
  264. * TERMINAL USER INTERRUPTED *RESEX*. *RESEX*
  265. * PERFORMS APPROPRIATE CLEAN-UP BEFORE ABORTING.
  266. *
  267. * RESOURCE DEMAND ERROR.
  268. * RESOURCE DEMAND REQUEST CAUSES OVERCOMMITMENT OR USER
  269. * HAS MORE ASSIGNED UNITS THAN NEW DEMAND.
  270. *
  271. * RESOURCE ENVIRONMENT ERROR.
  272. * INTERNAL ENVIRONMENT BUILDING FAILS DUE TO POSSIBLE
  273. * MASS STORAGE TABLE (MST), UNIT DESCRIPTOR TABLE (UDT),
  274. * OR EST ERRORS.
  275. *
  276. * RESOURCE NEGATIVE SHARE COUNT.
  277. * OVERCOMMITMENT ALGORITHM RETURNS MORE SHARERS THAN
  278. * ARE SHARING THE REMOVABLE PACK.
  279. *
  280. * RESOURCE PF ERROR NN FFFFFF.
  281. * IN ATTACHING EITHER RESOURCE FILE, *PFM* ERROR *NN* IS
  282. * DETECTED ON FILE *FFFFFF*.
  283. *
  284. * RESOURCE SCRATCH FILE ERROR.
  285. * AN EMPTY ENTRY HAS BEEN FOUND ON THE OVERCOMMITMENT
  286. * ALGORITHM SCRATCH FILE.
  287. *
  288. * SHARE TABLE ERROR.
  289. * SHARE TABLE IS FULL OR THE ENTRY IS NOT FOUND DURING A
  290. * SHARE TABLE SEARCH.
  291. *
  292. * JSQN SHARE TABLE MISMATCH.
  293. * AN EXPECTED SHARE TABLE MATCH WITH EVSB DID NOT OCCUR
  294. * WHILE PROCESSING JOB WITH JOB SEQUENCE NUMBER JSQN.
  295. *
  296. * STAGE REQUEST FILE ERROR.
  297. * *RESEX* HAS DETECTED AN ERROR IN THE STAGE REQUEST
  298. * FILE.
  299. *
  300. * SYSTEM ERROR.
  301. * RESEX IS UNABLE TO COMMUNICATE WITH (SUB)SYSTEM BY
  302. * MONITOR CALLS *RSB* OR *SIC*.
  303. *
  304. * TAPE DEVICE TYPE CONFLICT.
  305. * INCONSISTENT DEVICE TYPES (MT/NT/CT/AT) SPECIFIED ON
  306. * ASSIGN COMMAND OR LABEL MACRO REQUEST.
  307. *
  308. * TOTAL ASSIGNED COUNT ERROR.
  309. * SUM OF INDIVIDUAL RESOURCE ASSIGNED COUNTS DIFFERS
  310. * FROM TOTAL ASSIGNED COUNT IN DEMAND ENTRY.
  311. *
  312. * TOTAL DEMAND COUNT ERROR.
  313. * SUM OF INDIVIDUAL RESOURCE DEMANDS DIFFERS FROM TOTAL
  314. * DEMAND COUNT IN DEMAND ENTRY.
  315. *
  316. * UNKNOWN ACCESS LEVEL NAME.
  317. * USER HAS SPECIFIED AN INCORRECT ACCESS LEVEL.
  318. *
  319. * USER ACCESS NOT VALID.
  320. * USER NOT VALIDATED FOR RESOURCE(S).
  321. *
  322. * VSN FILE ERROR.
  323. * VSN FILE ENTRY DOES NOT MATCH JOB IDENTIFICATION.
  324. *
  325. * VSN VVVVVV NOT IN REQUESTED ACS.
  326. * THE TAPE WITH VSN VVVVVV IS NOT IN THE ACS ACCESSIBLE
  327. * BY THIS SYSTEM.
  328. *
  329. * VSN VVVVVV UNREADABLE OPTICAL LABEL.
  330. * THE TAPE WITH VSN VVVVVV CANNOT BE ASSIGNED BECAUSE
  331. * THE ACS SERVER IS UNABLE TO VERIFY THE OPTICAL LABEL.
  332. *
  333. * VSN VVVVVV NOT IN ACS LIBRARY.
  334. * THE TAPE WITH VSN VVVVVV IS NOT IN THE ACS LIBRARY.
  335. *
  336. * WRITE ENABLE AND DISABLE OPTIONS BOTH SELECTED.
  337. * WRITE ENABLE AND WRITE DISABLE REQUIRED OPTIONS WERE
  338. * SPECIFIED SIMULTANEOUSLY.
  339. *
  340. *
  341. * INFORMATIVE MESSAGES TO USER DAYFILE.
  342. *
  343. *
  344. * WRITE DISABLE FORCED ON NON-TMS ACS TAPE REQUEST.
  345. * A SYSTEM ORIGIN JOB HAS REQUESTED ACCESS TO AN ACS
  346. * TAPE WITHOUT TMS VALIDATION AND WRITE DISABLE (PO=R)
  347. * WAS NOT SPECIFIED.
  348. *
  349. * WRITE DISABLE FORCED ON UNLABELED REQUEST.
  350. * USER IS NOT VALIDATED FOR WRITING ON UNLABELED TAPES
  351. * AND DID NOT SPECIFY *PO=R* ON THE COMMAND.
  352. *
  353. * TTUUU, ASSIGNED TO FFF, VSN=VVV.
  354. * INFORMATIVE MESSAGE INDICATING TAPE ASSIGNMENT IS
  355. * COMPLETE, WHERE TT = TYPE (MT, NT, CT, OR AT) OF
  356. * UNIT ASSIGNED, UUU = EST ORDINAL OF DRIVE ASSIGNED,
  357. * FFF = FILENAME, VVV = VSN OF TAPE ASSIGNED.
  358. *
  359. *
  360. *
  361. * OPERATOR MESSAGES (DISPLAYED AT CONTROL POINT).
  362. *
  363. *
  364. * WAITING FOR RESOURCE FILE.
  365. * INDICATES *RESEX* IS WAITING TO ATTACH THE DEMAND
  366. * FILE TO COMPLETE OPERATOR ASSIGNMENT OF TAPE
  367. * EQUIPMENT OR *ASSIGN* OF SPECIFIC TAPE UNIT OR TO
  368. * COMPLETE CLEAN-UP PROCESSING AFTER AN INTERRUPT
  369. * HAS BEEN DETECTED. THIS SHOULD NOT NORMALLY OCCUR,
  370. * SINCE SEVERAL ATTEMPTS HAVE ALREADY BEEN MADE TO
  371. * ATTACH THE DEMAND FILE. IF THE OPERATOR DECIDES TO
  372. * *OVERRIDE* AN INTERRUPTED JOB AT THIS POINT,
  373. * THE DEMAND FILE ENTRY AND THE *E,P* PREVIEW
  374. * DISPLAY WILL NOT BE CLEANED UP.
  375. *
  376. *
  377. * OPERATOR MESSAGES ISSUED TO LINE 2 OF CONTROL POINT
  378. * IMMEDIATELY PRIOR TO ROLLOUT TO INDICATE THE REASON
  379. * FOR ROLLOUT.
  380. *
  381. *
  382. * WAITING FOR MAGNET.
  383. * *RESEX* IS WAITING FOR THE MAGNETIC TAPE SUBSYSTEM.
  384. *
  385. * WAITING FOR RESOURCE FILE.
  386. * *RESEX* IS WAITING FOR THE RESOURCE DEMAND OR VSN
  387. * FILE TO BECOME AVAILABLE.
  388. *
  389. * WAITING FOR RESOURCES.
  390. * *RESEX* IS WAITING FOR SUFFICIENT RESOURCES TO
  391. * BECOME AVAILABLE TO ALLOW ASSIGNMENT OF THE
  392. * TAPE/PACK WITHOUT CAUSING A SYSTEM DEADLOCK.
  393. *
  394. * WAITING FOR PN=NNNNNNN, TTT.
  395. * *RESEX* IS WAITING FOR THE OPERATOR TO MOUNT
  396. * PACKNAME *NNNNNNN* ON DEVICE TYPE *TTT*.
  397. *
  398. * WAITING ON TRACK LIMIT.
  399. * *RESEX* IS WAITING FOR ADDITIONAL TRACKS TO
  400. * BECOME AVAILABLE ON THE FAMILY DEVICE CONTAINING
  401. * THE RESOURCE DEMAND AND VSN FILES.
  402. *
  403. * WAITING FOR VSN=VVVVVVV, TT.
  404. * *RESEX* IS WAITING FOR THE OPERATOR TO MOUNT
  405. * TAPE WITH VSN *VVVVVVV* ON RESOURCE TYPE *TT*.
  406. * *VVVVVVV* = *SCRATCH* IMPLIES ANY SCRATCH TAPE IS
  407. * NEEDED.
  408. *
  409. * WAITING FOR STAGING TAPE.
  410. * *RESEX* IS WAITING FOR THE OPERATOR TO MOUNT
  411. * A STAGING TAPE.
  412. *
  413. *
  414. *
  415. * *DMP=* CALL RETURN STATUS.
  416. *
  417. *
  418. * *RESEX* RETURNS THE FOLLOWING IN RESPONSE TO A *DMP=* CALL IN
  419. * THE STATUS BYTE OF *SPCW* -
  420. *
  421. * 8/ RESERVED, 1/ MV, 1/ OV, 1/ FE, 1/ OK
  422. *
  423. *
  424. * MV MISSING VSN OR PACKNAME
  425. * OV OVERCOMMITMENT REJECTION
  426. * FE FATAL ERROR
  427. * OK COMPLETED NORMALLY
  428. TITLE MACROS.
  429. CLEAR SPACE 4,10
  430. ** CLEAR.
  431. * CLEAR BUFFER.
  432. *
  433. * CLEAR BUFFER,LENGTH,MASK
  434.  
  435. PURGMAC CLEAR
  436.  
  437. CLEAR MACRO B,L,M
  438. MACREF CLEAR
  439. R= A2,B+L
  440. R= B5,L
  441. IFNE M,,
  442. MX6 M
  443. ELSE 1
  444. MX6 0
  445. RJ CLB
  446. ENDM
  447. ENDRI SPACE 4,10
  448. ** ENDRI.
  449. * ENTER DEMAND FILE RANDOM INDEX.
  450. *
  451. * ENDRI N
  452.  
  453. PURGMAC ENDRI
  454.  
  455. ENDRI MACRO N
  456. MACREF ENDRI
  457. R= X1,N
  458. SX2 20B
  459. RJ =XCPM=
  460. ENDM
  461. FATRF SPACE 4,10
  462. ** FATRF.
  463. * ATTACH RESOURCE FILE AND SET INTERLOCK.
  464. *
  465. * FATRF FILE,MODE
  466.  
  467. PURGMAC FATRF
  468.  
  469. FATRF MACRO F,MD
  470. MACREF FATRF
  471. R= X2,F
  472.  
  473. * SET FILE MODE.
  474.  
  475. A SET /COMSPFM/PTRD
  476. ECHO 3,B=(W,R,A,M,RM,RA,U,RU),C=(/COMSPFM/PTWR,/COMSPFM/PTRD
  477. ,,/COMSPFM/PTAP,/COMSPFM/PTMD,/COMSPFM/PTRM,/COMSPFM/PTRA,/COMSPFM/PTUP,
  478. ,/COMSPFM/PTRU)
  479. IFC EQ,$B$MD$,2
  480. STOPDUP
  481. A SET C
  482. SX6 A
  483. RJ CFA
  484. ENDM
  485. INTRC SPACE 4,10
  486. ** INTRC - INTERRUPT PROCESSING CONTROL.
  487. *
  488. * INTRC ON INTERRUPT CAN BE PROCESSED IMMEDIATELY
  489. *
  490. * INTRC OFF CONTROL RETURN IS REQUIRED
  491.  
  492.  
  493. PURGMAC INTRC
  494. INTRC MACRO S
  495. MACREF INTRC
  496. I1 IFC EQ,$S$ON$
  497. SX7 0
  498. I1 ELSE
  499. SX7 1
  500. I1 ENDIF
  501. SA7 RPVC
  502. ENDM
  503. INTRP SPACE 4,10
  504. ** INTRP.
  505. * CHECK FOR AND PROCESS INTERRUPT.
  506. *
  507. * INTRP ADDR
  508.  
  509. PURGMAC INTRP
  510.  
  511. INTRP MACRO A
  512. MACREF INTRP
  513. SA1 RPVA
  514. NZ X1,A
  515. ENDM
  516. MKTE SPACE 4,10
  517. ** MKTE.
  518. * MAKE KEYWORD TABLE ENTRY.
  519. *
  520. * KW MKTE PRAD,EQI,PARMS
  521. *
  522. * KW KEYWORD
  523. * PRAD PROCESSOR ADDRESS (COMPLEMENT OF PROCESSOR ADDRESS
  524. * IF PARAMETER MUST BE EQUIVALENCED)
  525. * EQI EQUIVALENT PARAMETERS INDEX
  526. * PARMS INDIVIDUAL PROCESSOR PARAMETERS
  527. *
  528. *T KW 18/KW, 6/EQI, 18/PARMS, 18/PRAD
  529.  
  530. PURGMAC MKTE
  531.  
  532. MACRO MKTE,K,A,I,P
  533. MACREF MKTE
  534. K VFD 18/0L_K
  535. VFD 6/I
  536. K1 IFC EQ,$P$$
  537. VFD 18/0
  538. K1 ELSE
  539. VFD P
  540. K1 ENDIF
  541. VFD 18/A
  542. ENDM
  543. ROAE SPACE 4,10
  544. ** ROAE.
  545. * REQUEST OPERATOR TO ASSIGN EQUIPMENT (FC=0).
  546. * REQUEST OPERATOR SELECTION ON DUPLICATE VSN (FC=1).
  547. *
  548. * ROAE FILE,FC
  549.  
  550. PURGMAC ROAE
  551.  
  552. ROAE MACRO F,FC
  553. MACREF ROAE
  554. R= X2,F
  555. SX7 26B
  556. R= X4,FC
  557. LX4 18D
  558. BX2 X2+X4
  559. RJ =XLFM=
  560. ENDM
  561. RDSB SPACE 4,10
  562. ** RDSB.
  563. * READ SUB-SYSTEM BLOCK.
  564. *
  565. * STATUS WORD *SS* IS USED.
  566. * RDSB PROCESSES ITS OWN ERRORS UNLESS *X* IS PRESENT.
  567. *
  568. * RDSB SID,WC,FROM,TO,X
  569.  
  570. PURGMAC RDSB
  571.  
  572. RDSB MACRO Q,W,F,T,X
  573. MACREF RDSB
  574. R= X5,W
  575. R= X6,T
  576. R= X7,F
  577. R= X1,Q
  578. RJ RSB
  579. IFC EQ,$X$$,2
  580. SA2 SS
  581. PL X2,ERR1 IF ERROR
  582. ENDM
  583. RETRF SPACE 4,10
  584. ** RETRF - RETURN RESOURCE FILE.
  585. * RETURN RESOURCE FILE AND CLEAR ITS INTERLOCK.
  586. *
  587. * RETRF F
  588.  
  589.  
  590. PURGMAC RETRF
  591. RETRF MACRO F
  592. MACREF RETRF
  593. RETURN F
  594. BX7 X7-X7 CLEAR INTERLOCK
  595. SA7 X2-1
  596. ENDM
  597. TMS SPACE 4,15
  598. ** TMS - CALL THE TAPE MANAGEMENT SYSTEM PP *TFM*.
  599. *
  600. * TMS ADDR,FUNC
  601. *
  602. * ENTRY ADDR = FET ADDRESS.
  603. * FUNC = SUBFUNCTION FOR *RSXF* REQUEST.
  604. *
  605. * EXIT *TFM* REQUEST PROCESSED.
  606. *
  607. * USES X - 1, 2, 6, 7.
  608. * A - 1, 7.
  609. *
  610. * MACROS SYSTEM.
  611.  
  612.  
  613. PURGMAC TMS
  614.  
  615. TMS MACRO AD,FC
  616. MACREF TMS
  617. SA1 AD
  618. SX6 /TFM/_FC
  619. MX0 42
  620. LX6 3
  621. BX2 X0*X1
  622. BX7 X2+X6
  623. SA7 A1
  624. SYSTEM TFM,R,AD,/TFM/RSXF*100B
  625. ENDM
  626. VSN SPACE 4,10
  627. ** VSN.
  628. * BUILD VSN FNT/FST ENTRY.
  629. *
  630. * VSN F
  631. *
  632. * F+10 HAS VSN RANDOM INDEX AND EQUIPMENT IF NEEDED.
  633. * FET STATUS (BIT 0) GUARANTEED SET = 1.
  634.  
  635. PURGMAC VSN
  636.  
  637. VSN MACRO F
  638. MACREF VSN
  639. R= X2,F
  640. SX7 27B
  641. RJ =XLFM=
  642. ENDM
  643. WTSB SPACE 4,10
  644. ** WTSB - WRITE MAGNET SUB-SYSTEM BLOCK.
  645. *
  646. * WTSB ADDR,BUFN
  647. *
  648. * ADDR = ADDRESS OF DATA TO WRITE.
  649. * BUFN = MAGNET BUFFER NUMBER.
  650.  
  651.  
  652. PURGMAC WTSB
  653.  
  654. WTSB MACRO B,N
  655. MACREF WTSB
  656. R= X6,B
  657. R= X7,N
  658. RJ WSB
  659. ENDM
  660. TITLE COMMON DECKS.
  661. SPACE 4,10
  662. ** COMMON DECKS.
  663.  
  664.  
  665. *CALL COMCMAC
  666. *CALL COMCCMD
  667. QUAL COMSEJT
  668. *CALL COMSEJT
  669. QUAL *
  670. QUAL COMSLFD
  671. *CALL COMSLFD
  672. QUAL *
  673. QUAL COMSLFM
  674. *CALL COMSLFM
  675. QUAL *
  676. QUAL COMSMSP
  677. *CALL COMSMSP
  678. QUAL *
  679. QUAL COMSMTX
  680. LIST X
  681. *CALL COMSMTX
  682. LIST *
  683. QUAL *
  684. QUAL COMSPFM
  685. *CALL COMSPFM
  686. QUAL *
  687. *CALL COMSRPV
  688. LIST X
  689. *CALL COMSRSX
  690. LIST *
  691. QUAL COMSSRU
  692. *CALL COMSSRU
  693. QUAL *
  694. *CALL COMSSFM
  695. *CALL COMSSSD
  696. QUAL COMSSSJ
  697. *CALL COMSSSJ
  698. QUAL MLS
  699. *CALL COMSMLS
  700. QUAL *
  701. QUAL *
  702. QUAL EVENT
  703. *CALL COMSEVT
  704. QUAL *
  705. *CALL COMSPRD
  706. QUAL TFM
  707. *CALL COMSTFM
  708. QUAL *
  709. TITLE SPECIAL USAGE SYMBOLS.
  710. SPACE 4,10
  711. ** FET EQUIVALENCES FOR LABEL FIELDS.
  712.  
  713.  
  714. FDTY EQU 1 DEVICE TYPE
  715. FRTL EQU 4 *REQ* TAPE LABELS
  716. FSAL EQU 4 SECURITY ACCESS LEVEL
  717. FRAN EQU 6 RANDOM REQUEST WORD
  718. FNFN EQU 6 NEW FILE NAME (RENAME)
  719. FCID EQU 7 CHECKPOINT ID WORD
  720. FESN EQU /TFM/TFES EXTERNAL SERIAL NUMBER
  721. FTAP EQU 10B TAPE DESCRIPTORS
  722. FEVE EQU 10B ENTER VSN ENTRY CONTROL WORD
  723. FVSN EQU 11B VOLUME SERIAL NUMBER
  724. FFAS EQU 11B FILE ACCESSIBILITY
  725. FSTN EQU 11B FILE SECTION NUMBER
  726. FID1 EQU 12B FILE IDENTIFIER WORD 1
  727. FID2 EQU 13B FILE IDENTIFIER WORD 2
  728. FSQN EQU 13B FILE SEQUENCE NUMBER
  729. FMSI EQU 14B MULTI-SET IDENTIFIER
  730. FGVN EQU 14B GENERATION VERSION NUMBER
  731. FGRN EQU 14B GENERATION NUMBER
  732. FRTD EQU 15B RETENTION DATE
  733. FCRD EQU 15B CREATION DATE
  734. FAUN EQU /TFM/TFUN ALTERNATE ACCESS USERNAME
  735. FFTO EQU /TFM/TFUN TAPE MANAGER OPTIONS
  736. FPSW EQU /TFM/TFPW ALTERNATE ACCESS PASSWORD
  737. FFAC EQU /TFM/TFPW AUDIT ACCESSIBILITY
  738. FFCT EQU /TFM/TFPW CATEGORY TYPE
  739. FFMD EQU /TFM/TFPW FILE MODE
  740. FMAX EQU /TFM/TFPL NUMBER OF *TMS* WORDS IN FET
  741.  
  742. SFET EQU SPPR+1 SPECIAL CALL FET POSITION
  743. SPACE 4,10
  744. ** LFM FUNCTIONS PROCESSED BY RESEX.
  745.  
  746.  
  747. QUAL LFM
  748.  
  749. RENAME EQU 0 RENAME (FUNCTION 0)
  750. LABEL EQU 24B LABEL (FUNCTION 24)
  751.  
  752. QUAL *
  753. TITLE ASSEMBLY CONSTANTS.
  754. SPACE 4,10
  755. **** ASSEMBLY CONSTANTS.
  756.  
  757.  
  758.  
  759. BUFL EQU RDEL SHORT BUFFER LENGTH
  760. IOBL EQU 1001B I/O BUFFER LENGTH
  761.  
  762. DBMC EQU 6 DEMAND FILE BUSY MESSAGE COUNT
  763. DFRC EQU 12 DEMAND FILE ATTACH RETRY COUNT
  764. ESTEB EQU 100B/ESTE EST ENTRIES PER BLOCK
  765. MAXR EQU MSMX+/COMSMTX/MUNIT MAXIMUM SYSTEM RESOURCES
  766. EVBL EQU MAXR*2+2 ENVIRONMENT VSN BUFFER LENGTH
  767. MEMI EQU 100B CM FL INCREMENT TO REQUEST
  768. MMSD MIN RPSL,MSMX MAXIMUM USER MS DEMAND
  769. MMTD EQU /COMSMTX/MUNIT MAXIMUM USER MT DEMAND
  770. PBFL EQU LPDS-1 LENGTH OF SYSTEM PREVIEW BUFFER
  771. PBMX EQU PBFL/PVEL MAXIMUM PREVIEW ENTRIES
  772. RPBE EQU PVEL+1 *RESEX* PREVIEW ENTRY LENGTH
  773. RPBL EQU PBMX*RPBE+1 LENGTH OF *RESEX* PREVIEW BUFFER
  774. MRMX EQU 40B MAXIUM NUMBER OF ACS TAPE MOUNT REQUESTS
  775. RMBE EQU 2 *RESEX* MOUNT REQUEST ENTRY LENGTH
  776. RMBL EQU 1+/COMSMTX/MXRM*RMBE+1 LENGTH OF MOUNT REQUEST BUFFER
  777. RDTL EQU MMSD*2+MMTD*2 RESOURCES DEMANDED TABLE LENGTH
  778. RETL EQU MAXR+1 RESOURCE EQUIPMENT TABLE LENGTH
  779. TDDSL EQU 8+1 TABLE OF CHAINED EQUIPMENTS LENGTH
  780.  
  781.  
  782. ****
  783. TITLE CONSTANTS AND TEMPORARIES.
  784. ** FETS.
  785.  
  786. ORG 120B
  787.  
  788. FETS BSS 0 FILE ENVIRONMENT TABLES
  789.  
  790. F BSS 0 REQUESTED FILE
  791. FILE FILEB BUF,BUFL,(FET=20B)
  792. ORG F
  793. CON 1 CLEAR REQUESTED FILE NAME
  794. ORG F+20B
  795.  
  796. T BSS 0 TFM ASSIGNMENT FET
  797. TFM FILEB 0,0,(FET=20B),EPR
  798. ORG T+5
  799. VFD 42/0,18/EMSG ERROR MESSAGE ADDRESS
  800. ORG T+20B
  801.  
  802. VF BSS 0 VSN ENTRY FILE
  803. VFILE FILEB BUF,BUFL,(FET=14)
  804.  
  805. INTD CON 0 DEMAND FILE INTERLOCK
  806. D BSS 0 RESOURCE DEMAND FILE
  807. RSXD RFILEB DBUF,IOBL,(FET=14)
  808. ORG D+/COMSPFM/CFPW
  809. CON CFAA SET PF ERROR MESSAGE ADDRESS
  810. ORG D+14
  811.  
  812.  
  813. INTV CON 0 VSN FILE INTERLOCK
  814. V BSS 0 VSNFILE
  815. RSXV RFILEB VBUF,IOBL,(FET=14)
  816. ORG V+/COMSPFM/CFPW
  817. CON CFAA SET PF ERROR MESSAGE ADDRESS
  818. ORG V+14
  819.  
  820. INTR CON 1 REQUEST FILE INTERLOCK (ZERO IF ATTACHED)
  821. R BSS 0 STAGE REQUEST FILE
  822. STRQ FILEB RBUF,IOBL,(FET=/COMSPFM/CFLM),EPR
  823. ORG R+/COMSPFM/CFPW
  824. CON CFAA SET PF ERROR MESSAGE ADDRESS
  825. ORG R+/COMSPFM/CFLM
  826.  
  827.  
  828. S1 BSS 0 SCRATCH 1
  829. RESEXS1 FILEB SBUF1,IOBL
  830.  
  831.  
  832. S2 BSS 0 SCRATCH 2
  833. RESEXS2 FILEB SBUF2,IOBL
  834. SSJ SPACE 4,10
  835. ** SPECIAL SYSTEM JOB PARAMETERS.
  836.  
  837.  
  838. SSJ= BSS 0 SSJ= PARAMETER BLOCK
  839. VFD 12/0,24/-0,12/RXCS,12/IRSI
  840. CON /COMSPFM/SYUI SET SYSTEM USER INDEX
  841. BSSZ /COMSSSJ/SSJL-2 LENGTH OF SSJ= PARAMETERS
  842. CPA SPACE 4,10
  843. ** CONTROL POINT AREA INFORMATION.
  844.  
  845.  
  846. QUAL CPA
  847. CPA BSS 0
  848. JCIW CON //JCIW JOB CONTROL INFORMATION
  849. PFCW CON //PFCW PERMANENT FILE CONTROL WORD
  850. PKNW CON //PKNW DEFAULT PACKNAME
  851. RFCW CON //RFCW DEMAND FILE RANDOM INDEX
  852. TFSW CON //TFSW JOB EJT ORDINAL
  853. SPCW CON //SPCW SYSTEM PROCESSOR CALL WORD
  854. CPAL EQU *-CPA
  855. QUAL *
  856. LWC SPACE 4,10
  857. ** LOW CORE INFORMATION.
  858.  
  859.  
  860. QUAL LWC
  861. EJTP VFD 1/1,59/0 EJT POINTER
  862. ESTP VFD 1/1,59/0 EST POINTER
  863. IPRL VFD 1/1,59/0 INSTALLATION PARAMETERS
  864. PFNL VFD 1/1,59/0 PERMANENT FILE CONTROL WORD
  865. QUAL *
  866. ARG= SPACE 4,10
  867. ** SPECIAL ENTRY POINTS.
  868.  
  869.  
  870. ARG= BSS 0 SUPPRESS ARGUMENT PROCESSING
  871. DMP= EQU 100000B SELECT NO DMP IF COMMAND CALL
  872. SDM= EQU 0 SECURE DAYFILE MESSAGE
  873. TEMP SPACE 4,10
  874. ** GLOBAL DATA.
  875.  
  876.  
  877. AA CON -1 AUTOMATIC TAPE ASSIGNMENT FLAG
  878.  
  879. * AA = -1, IF AUTOMATIC VSN ASSIGNMENT OF TAPE.
  880. * AA = 0, IF OPERATOR ASSIGNMENT OF TAPE (NO VSN).
  881. * AA = 1, IF *ASSIGN* WITH EST ORDINAL SPECIFIED.
  882.  
  883. AL CON 0 ACCESS LEVEL PERMISSION
  884. AU CON 0 ADDRESS OF UDT OF ASSIGNED VSN
  885. AV CON 0 ASSIGNED VSN POINTER
  886. CF CON 0 CALL FLAG
  887. CI CON 0 CHECKPOINT ID
  888. DFDI CON 0 DEFAULT DEMAND INDICATOR
  889. DFPT CON /COMSPFM/DFPT DEFAULT REMOVABLE PACK TYPE
  890. * (THE ACTUAL VALUE OF *DFPT* IS READ FROM *PFNL*)
  891. EF CON 0 END-OF-FILE FLAG
  892. EMSG BSS /TFM/MBML ERROR MESSAGE BUFFER
  893. EQ CON 0 MAGNETIC TAPE EQUIPMENT
  894. EVSN CON 0 EXTERNAL VSN
  895. FAMO CON 0 FAMILY ORDINAL
  896. FS CON -1 FILE STATUS
  897. IVSN CON 0 INTERNAL VSN
  898. JEEO CON 0 JOB EJT ENTRY ORDINAL
  899. JALA CON 0 JOB ACCESS LEVEL
  900. JCWA CON 0 JOB CONTROL WORD
  901. JSN CON 0 JOB SEQUENCE NAME
  902. MF CON 0 MULTI-FILE POSITIONING
  903. MIDI CON 0 *MAGNET* IDLEDOWN INDICATOR
  904. OO CON 0 OPEN OPTION
  905. OT CON 0 JOB ORIGIN TYPE
  906. OV CON 0 TAPE BLOCK OVERFLOW CHUNK COUNT
  907. PVDC CON 0 PREVIEW DISPLAY CLEAN-UP FLAG
  908. PVST CON 0 PACKED VSN OF STAGING TAPE
  909. RE CON 0 ROLLOUT EVENT
  910. RETE CON 0 RET/EVSB ENDING EQUIPMENT INDEX
  911. RETI CON 0 RET/EVSB MT BEGINNING INDEX
  912. RM CON 0 ROLLOUT MESSAGE ADDRESS
  913. RMN CON 0 RESOURCE TYPE MNEMONIC
  914. RT CON 0 REQUEST TYPE
  915. SS CON 0 SUB-SYSTEM COMMUNICATION STATUS WORD
  916. SSMA CON 0 SYSTEM SECURITY MODE
  917. TA CON 0 *MAGNET* TAPE ASSIGNED FLAG
  918. TB CON 0 TAPE BLOCK DEFINITION
  919. TPAL CON 0 TAPE ACCESS LEVELS
  920. TS CON 0 SYMBOLIC *TMS* TAPE FLAG (IF NEGATIVE)
  921. UCRI CON 0 INTERRUPT REQUIRES FILE UPDATE/CLEAN-UP
  922. VA CON 0 VSN RANDOM ADDRESS
  923. VC CON 0 VSN FROM *VSN* COMMAND FLAG
  924. SPACE 4,10
  925. ** TTDV - TABLE OF TAPE DEVICE TYPES.
  926. *
  927. * ENTRIES ARE IN ORDER OF *COMSMTX* TAPE DEVICE CODES.
  928. *
  929. * 42/RT,6/0,12/DM
  930. *
  931. * RT = *COMSRSX* RESOURCE TYPE.
  932. * DM = DEVICE MNEMONIC.
  933. *
  934. * TABLE IS TERMINATED WITH A ZERO WORD.
  935.  
  936.  
  937. TTDV IVFD
  938. IVFD /COMSMTX/DVMT,(42/RMTP,18/2RMT)
  939. IVFD /COMSMTX/DVCT,(42/RCTP,18/2RCT)
  940. IVFD /COMSMTX/DVNT,(42/RNTP,18/2RNT)
  941. IVFD /COMSMTX/DVAT,(42/RATP,18/2RAT)
  942. IVFD /COMSMTX/DVMX,(60/0) TABLE TERMINATOR
  943. IVFD /COMSMTX/DVMX+1
  944. TTFM SPACE 4,10
  945. ** TTFM - TABLE OF TAPE FORMAT CHARACTERISTICS.
  946. *
  947. * ENTRIES ARE IN ORDER OF *COMSMTX* TAPE FORMAT DEFINITIONS.
  948. *
  949. * 1/I,1/B,10/0,12/ WC, 12/ OV,6/ N7,6/ N9,12/0
  950. *
  951. * I INTERNAL FORMAT.
  952. * B COMPUTE BLOCK SIZE FROM FRAME COUNT.
  953. * WC BLOCK WORD COUNT.
  954. * OV LONG BLOCK OVERFLOW IN CHUNKS.
  955. * N7 DEFAULT 7 TRACK NOISE BLOCK DEFINITION.
  956. * N9 DEFAULT 9 TRACK NOISE BLOCK DEFINITION.
  957.  
  958.  
  959. TTFM BSS 0 START OF TABLE
  960. VFD 1/1,1/0,10/0,12/1000B,12/0,6/4,6/4,12/0 *I*
  961. VFD 1/1,1/0,10/0,12/1000B,12/0,6/4,6/4,12/0 *SI*
  962. VFD 1/0,1/1,10/0,12/0,12/0,6/11B,6/14B,12/0 *F*
  963. VFD 1/0,1/0,10/0,12/0,12/0,6/11B,6/14B,12/0 *S*
  964. VFD 1/0,1/0,10/0,12/0,12/0,6/11B,6/14B,12/0 *L*
  965. VFD 1/1,1/0,10/0,12/400B,12/12B,6/0,6/0,12/0 *LI*
  966. SPACE 4,10
  967. ** SCRATCH VSN EQUIVALENCES.
  968.  
  969.  
  970. BLANK VFD 36/6H ,24/0
  971. SCRATCH VFD 60/0LSCRATCH
  972. ZERO VFD 60/0L0
  973. RSX SPACE 4,10
  974. ** RESOURCE FILE IDENTIFIER TABLES.
  975.  
  976.  
  977. LIST D,E,G
  978. TRSL HERE *COMSRSX* TABLE OF RESOURCE LISTS
  979.  
  980. TRID HERE *COMSRSX* TAPE/PACK RESOURCE ENTRIES
  981. LIST *
  982. EVENTS SPACE 4,10
  983. ** EVENT SKELETONS AND ROLLOUT MESSAGE ADDRESSES.
  984.  
  985.  
  986. MSUB VFD 30/0,18//EVENT/MTXE,12//TIMES/SUBM
  987. CON =C*WAITING FOR MAGNET.*
  988. PEMV VFD 30/0,18//EVENT/VSNE,12//TIMES/RPMS
  989. VFD 60/-WPKM
  990. PEOV VFD 30/0,18//EVENT/OVRE,12//TIMES/RPOV
  991. CON =C*WAITING FOR RESOURCES.*
  992. PFRE CON 0 PF FILE ROLLOUT (USE EVENT IN CPA *UPCW*)
  993. CON =C*WAITING FOR RESOURCE FILE.*
  994. TEMV VFD 30/0,18//EVENT/VSNE,12//TIMES/MTMS
  995. VFD 60/-WTPM
  996. TEOV VFD 30/0,18//EVENT/OVRE,12//TIMES/MTOV
  997. CON =C*WAITING FOR RESOURCES.*
  998. TLIM VFD 30/0,18/0,12//TIMES/RFTL
  999. CON =C*WAITING ON TRACK LIMIT.*
  1000. WSTG VFD 30/0,18//EVENT/VSNE+7777B,12//TIMES/MTMS
  1001. CON =C*WAITING FOR STAGING TAPE.*
  1002. SPACE 4,10
  1003. WTPB BSSZ 4 WAITING FOR TAPE/PACK MESSAGE BUFFER
  1004.  
  1005. WPKM DATA C*WAITING FOR PN=+++++++, ---.*
  1006.  
  1007. WTPM DATA C*WAITING FOR VSN=+++++++, --.*
  1008. TMPF SPACE 4,10
  1009. ** TAPE MANAGER PROCESSING FLAGS.
  1010.  
  1011.  
  1012. TMPF BSS 0 TAPE MANAGER PROCESSING FLAGS
  1013. VFD 1/1 59 - SET IF *TMS* DISABLED
  1014. VFD 1/0 58 - SET IF *TMS* CONTROLLED REQUEST
  1015. VFD 1/0 57 - SET IF SCRATCH TAPE ASSIGNMENT
  1016. VFD 1/0 56 - SET IF OPERATOR VERIFY REQUIRED
  1017. VFD 1/0 55 - SET IF RESERVE ASSIGNED SCRATCH
  1018. VFD 1/0 54 - SET IF SYMBOLIC ACCESS
  1019. VFD 1/0 53 - SET IF DEFAULT *TO=T*
  1020. VFD 1/0 52 - SET IF USER OWNED TAPE
  1021. VFD 1/0 51 - SET IF DEFAULT *TO=C*
  1022. VFD 1/0 50 - SET IF OFFSITE TAPE
  1023. VFD 1/0 49 - UNUSED
  1024. VFD 1/0 48 - UNUSED
  1025. VFD 48/0 47 TO 0 - UNUSED
  1026. TITLE OVERVIEW DOCUMENTATION.
  1027. *** OVERCOMMITMENT ALGORITHM DESCRIPTION.
  1028. *
  1029. * THE PURPOSE OF THIS DOCUMENTATION IS TO OVERVIEW HOW THE
  1030. * EXERCISING OF THE OVERCOMMITMENT ALGORITHM IS PERFORMED.
  1031. *
  1032. * 9-TRACK MAGNETIC TAPE *RESOURC* IDENTIFICATION BY DENSITY
  1033. * (*HD* = 800 BPI, *PE* = 1600 BPI, *GE* = 6250 BPI) CANNOT
  1034. * BE SPECIFIED CONCURRENTLY IN THE SAME JOB WITH THE *NT*
  1035. * *RESOURC* IDENTIFIER. IN THE OVERCOMMITMENT ALGORITHM,
  1036. * UNSATISFIED *NT* DEMANDS ARE LOGICALLY SATISFIED ONLY BY
  1037. * 800/1600 BPI DRIVES. HOWEVER, AT REQUEST TIME, IF THE
  1038. * DESIRED 1600 BPI TAPE FOR AN *NT* DEMAND IS FOUND MOUNTED
  1039. * ON A 1600/6250 BPI DRIVE, THE ASSIGNMENT WILL BE ALLOWED
  1040. * IF IT DOES NOT CAUSE OVERCOMMITMENT.
  1041. *
  1042. * *BRE* BUILDS RESOURCE EQUIPMENT TABLE (RET) AND ENVIRONMENT
  1043. * VSN TABLE (EVSB) FROM THE MASS STORAGE TABLES (MST),
  1044. * *MAGNET* UNIT DESCRIPTOR TABLES (UDT) AND EQUIPMENT
  1045. * STATUS TABLE (EST).
  1046. *
  1047. * *BSF* BUILDS SCRATCH FILE OF THE DEMAND FILE ENTRIES FOR
  1048. * ALL JOBS WITH ASSIGNED RESOURCES, EXCEPT REQUESTOR.
  1049. * BY THE RESOURCE EQUIPMENT DEFINED IN THE ENVIRONMENT.
  1050. *
  1051. * *CFU* REQUESTED VSN/PACKNAME IF FOUND IN EVSB IS ASSIGNED
  1052. * TO THE REQUESTOR. IF REMOVABLE PACK, A SHARE TABLE
  1053. * ENTRY IS BUILT. IF REQUEST IS FOR A TAPE VSN AND
  1054. * DUPLICATE VSNS HAVE BEEN DECLARED, THEY WILL BE
  1055. * CHECKED IF THE ORIGINAL VSN IS NOT FOUND IN EVSB.
  1056. * IF THE REQUESTED VSN/PACKNAME IS NOT FOUND IN THE
  1057. * EVSB, A PSUEDO EVSB ENTRY IS MADE IF THE RET
  1058. * CONTAINS A FREE DEVICE OF THE REQUESTED TYPE.
  1059. * (SO THAT IF OVERCOMMITMENT IS LATER DETECTED, THE
  1060. * PREVIEW DATA WILL BE CLEARED AND THE JOB WILL ROLL
  1061. * OUT WITH OVERCOMMITMENT STATUS RATHER THAN MISSING
  1062. * VSN.) FOR 9-TRACK *PE* REQUESTS FOR A *SCRATCH*
  1063. * TAPE OR FOR A VSN NOT FOUND IN THE ENVIRONMENT,
  1064. * *CFU* WILL GUARENTEE THAT THE SELECTED DRIVE WILL
  1065. * NOT CAUSE INTERNAL CONFLICT FOR THE JOB.
  1066. *
  1067. * *CIC* SETS ASSIGNED STATUS ONLY ON THOSE TAPE EQUIPMENTS
  1068. * IN THE ENVIRONMENT CURRENTLY ASSIGNED TO THE
  1069. * REQUESTOR AND DETERMINES THE SATISFIABILITY OF THE
  1070. * REQUESTOR,S REMAINING DEMANDS. IF THESE DEMANDS
  1071. * CANNOT BE SATISFIED, BUT *DEI* HAS SHOWN THAT THE
  1072. * ENVIRONMENT CAN SATISFY THE REQUESTOR,S TOTAL
  1073. * DEMANDS WHEN NONE ARE CURRENTLY ASSIGNED, THE JOB
  1074. * IS IN A STATE OF DEADLOCKING ITSELF. THIS CAN OCCUR
  1075. * WHEN THE CURRENT REQUEST IS FOR A 9-TRACK *PE* TAPE
  1076. * THAT IS FOUND MOUNTED ON THE WRONG DRIVE TYPE, SUCH
  1077. * THAT THE REMAINING *HD* OR *GE* DEMANDS CANNOT BE
  1078. * SATISFIED. IN THIS CASE, THE ASSIGNMENT IS
  1079. * REJECTED AND THE OPERATOR IS INFORMED OF THE
  1080. * CONFLICT, SO THE TAPE CAN BE MOUNTED ON THE CORRECT
  1081. * DRIVE TYPE. INTERNAL CONFLICT CAN ALSO OCCUR WHEN A
  1082. * 9-TRACK *PE* TAPE IS CURRENTLY ASSIGNED TO THE JOB
  1083. * AND AN INCREASE IN *HD* OR *GE* RESOURCE
  1084. * REQUIREMENTS IS SPECIFIED (RECIEVES *NT DRIVE
  1085. * CONFLICT.* ERROR).
  1086. *
  1087. * *CRC* DETERMINE IF REQUESTOR COMPLETES (SATISFIES ALL
  1088. * DEMANDS) WITH THE ASSIGNMENT OF THIS RESOURCE.
  1089. * IF SO, THERE IS NO NEED TO EXERCISE THE
  1090. * OVERCOMMITMENT ALGORITHM.
  1091. *
  1092. * *CRQ* VALIDATES OPERATOR ASSIGNED EQUIPMENT, READS
  1093. * REQUESTOR DEMAND FILE ENTRY INTO RESB BUFFER, AND
  1094. * BUILD PREVIEW DATA FOR THIS REQUEST.
  1095. *
  1096. * *DDS* DETERMINES THE SATISFIABILITY OF THE RESOURCE DEMANDS.
  1097. *
  1098. * *DEI* DETERMINES IF RESOURCE DEMANDS ARE SATISFIABLE
  1099. *
  1100. * *OCA* OVERCOMMITMENT ALGORITHM IS EXERCISED. *DDS* IS USED
  1101. * TO SATISFY ALL DEMANDS WHICH HAVE NOT BEEN MET.
  1102. * IF ANY JOB DOES NOT COMPLETE, THEN A DEADLOCK HAS
  1103. * OCCURRED AND THE ASSIGNMENT WILL BE PROHIBITED.
  1104. *
  1105. *
  1106. *
  1107. *
  1108. * PP ROUTINES *0RF* AND *0RT*.
  1109. * *0RT* CLEARS THE ASSOCIATED VSN FILE ENTRY AND UPDATES
  1110. * THE JOB DEMAND FILE ENTRY WHEN A TAPE RESOURCE IS
  1111. * RETURNED. *0RF* CLEARS THE SHARE TABLE ENTRY AND UPDATES
  1112. * THE DEMAND AND ASSIGNED COUNTS IN THE JOB DEMAND FILE
  1113. * ENTRY WHEN A REMOVABLE PACK RESOURCE IS RETURNED.
  1114. * WHEN A TAPE FILE IS RETURNED OR WHEN THE LAST DIRECT ACCESS
  1115. * FILE FOR THE JOB ON A REMOVABLE PACK IS RETURNED, BOTH THE
  1116. * TOTAL ASSIGNED COUNT AND THIS RESOURCE ASSIGNED COUNT ARE
  1117. * DECREMENTED BY ONE. IF TOTAL RESOURCE DEMANDS HAVE BEEN
  1118. * SATISFIED, BOTH THE TOTAL DEMAND COUNT AND THE RESOURCE
  1119. * DEMAND COUNT ARE DECREMENTED BY ONE, UNLESS *UNLOAD* WAS
  1120. * USED TO RELEASE THE FILE.
  1121. * *0RF* IS ALSO USED TO CLEAR THE JOB DEMAND FILE ENTRY AT
  1122. * JOB COMPLETION.
  1123. SPACE 4,10
  1124. *** ENVIRONMENT TABLES AND BUFFERS.
  1125. *
  1126. *
  1127. * RESOURCE EQUIPMENT TABLE CONSISTS OF A COMBINATION OF DATA
  1128. * COLLECTED FROM THE EST, MST AND UDT TABLES.
  1129. * EACH *RET* ENTRY IS ONE WORD IN LENGTH AND HAS THE FORMAT -
  1130. *
  1131. * RET 1/A, 11/DM, 6/CH1, 6/CH2, 12/NE, 12/EO, 3/CS, 3/OS, 6/FLAGS
  1132. *
  1133. * DT DEVICE MNEMONIC IF FLAG *A* IS NOT SET, OTHERWISE DT
  1134. * IS AN INDEX INTO *TRSL* TABLE. EACH *TRSL* ENTRY IS A
  1135. * LIST OF EQUIVALENT RESOURCE TYPES.
  1136. * CH1 CHANNEL 1 FOR DISK, ACCESS LEVELS FOR TAPES
  1137. * 3/LA, 3/UA
  1138. * LA = LOWER ACCESS LEVEL, FOR TAPE ONLY
  1139. * UA = UPPER ACCESS LEVEL, FOR TAPE ONLY
  1140. * CH2 CHANNEL 2 FOR DISKS
  1141. * NE NEXT EQUIPMENT NUMBER
  1142. * EO EST ORDINAL
  1143. * CS CURRENT SPINDLES
  1144. * OS ORIGINAL SPINDLES
  1145. * FLAGS 2/0, 1/LDAM, 1/EOC, 1/EO, 1/A
  1146. * LDAM = LDAM EQUIPMENT
  1147. * EOC = END OF CHAIN
  1148. * EO = EQUIPMENT *OFF* OR *DOWN*
  1149. * A = ASSIGNED
  1150. *
  1151. *
  1152. * ENVIRONMENT VSN BUFFER CONSISTS OF DATA WHICH RELATES TO THE
  1153. * USAGE OF MOUNTED MAGNETIC TAPES AND REMOVABLE PACKS.
  1154. * EACH *EVSB* ENTRY, CORRESPONDING IN POSITION TO ITS
  1155. * *RET* ENTRY, IS TWO WORDS IN LENGTH AND HAS THE FORMAT -
  1156. *
  1157. * EVSB 42/VSN OR PACKNAME, 6/LA, 6/UA, 6/RI
  1158. * 12/EQ, 12/SHARERS, 6/FLAGS, 18/UDT,MST ADDRESS, 12/EJTO
  1159. *
  1160. * NOTE - FOR ACS TAPES *VSN* IS THE EXTERNAL VSN.
  1161. *
  1162. * LA LOWER ACCESS LEVEL
  1163. * 6/0 FOR PACKS
  1164. * 3/0, 3/LOWER ACCESS LEVEL FOR TAPES
  1165. * UA UPPER ACCESS LEVEL
  1166. * 6/UNIT COUNT FOR PACKS
  1167. * 3/UPPER ACCESS LEVEL, 3/BYTE POINTER FOR TAPES
  1168. * RI DEMAND FILE RESOURCE INDEX
  1169. * FLAGS 1/A, 1/S, 1/U, 1/D, 1/P, 1/
  1170. * A = ASSIGNED
  1171. * S = SCRATCH VSN
  1172. * U = UNLOADED PACK WITH USER COUNT
  1173. * D = DEFAULT VSN
  1174. * P = DEVICE SUSPECT FLAG
  1175. * EJTO EJT ORDINAL OF ASSIGNED JOB.
  1176. *
  1177. *
  1178. * RESOURCES DEMANDED TABLE CONSISTS OF A TWO WORD ENTRY FOR
  1179. * EACH RESOURCE WHICH IS YET TO BE SATISFIED. THE FORMAT IS-
  1180. *
  1181. * RDT 12/RESOURCE TYPE, 6/UNIT COUNT, 6/AL, 9/E1, 9/E2, 9/E3, 9/E4,
  1182. * 12/OE, 12/0, 9/E5, 9/E6, 9/E7, 9/E8
  1183. * OE, E1 - E8 = *RET* ENTRY INDEX FOR EQUIPMENT
  1184. * AL = ACCESS LEVEL, TAPES ONLY
  1185. *
  1186. *
  1187. * RESOURCE TYPE NAMES ARE FOUND IN *RSXB*.
  1188. SPACE 4,30
  1189. *** RESOURCE REQUEST BLOCK.
  1190. *
  1191. * THE USER RESOURCE REQUEST BLOCK IS A COMMON REQUESTING
  1192. * MECHANISM OF THE OVERCOMMITMENT ALGORITHM FOR BOTH TAPES AND
  1193. * PACKS. THE USER RESOURCE REQUEST BLOCK CONSISTS OF THE JOB
  1194. * DEMAND FILE ENTRY IN THE REQUEST DEMAND ENTRY BUFFER (RESB)
  1195. * AND REQUEST IDENTIFICATION INFORMATION. THIS INFORMATION
  1196. * CONSISTS OF A REQUEST WORD (RQ) HAVING FORMAT--
  1197. *
  1198. *T PACK 42/ PACKNAME,12/ RTYPE,6/UNITS
  1199. * WHERE UNITS = UNIT COUNT (1-8) IN DISPLAY CODE
  1200. * RTYPE = RESOURCE TYPE IN DISPLAY CODE
  1201. *T TAPE 36/ VSN,6/0,12/ RTYPE,6/0
  1202. *
  1203. * THE REQUESTED RESOURCE INDEX (RI) HAVING FORMAT-
  1204. *
  1205. *T 51/0, 3/UC, 6/ RI
  1206. * WHERE RI = DEMAND FILE RESOURCE INDEX
  1207. * UC = UNIT COUNT FOR PACKS, BYTE POINTER FOR TAPES
  1208. *
  1209. * FOR 9-TRACK TAPE ASSIGNMENTS, *DD* HAS FOLLOWING FORMAT-
  1210. *
  1211. *T 48/ 0, 12/ DC
  1212. * WHERE DC = DISPLAY CODE FOR 9-TRACK RESOURCE DENSITY
  1213. *
  1214. * FOR 9-TRACK TAPE ASSIGNMENTS, *OI* HAS FOLLOWING FORMAT-
  1215. *
  1216. *T 54/ 0, 6/ DI
  1217. * WHERE DI = ORIGINAL 9-TRACK TAPE DENSITY RESOURCE INDEX
  1218.  
  1219.  
  1220. RQ CON 0 REQUEST
  1221. RI CON 0 REQUESTED RESOURCE INDEX
  1222. TM CON 0 TIME OF REQUEST (ABSOLUTE SECONDS)
  1223. OI CON 0 ORIGINAL NT TAPE DENSITY RESOURCE INDEX
  1224. TITLE OVERCOMMITMENT ALGORITHM.
  1225. COM SPACE 4,25
  1226. ** COM - CHECK FOR OVERCOMMITMENT.
  1227. *
  1228. * ENTRY USER RESOURCE REQUEST BLOCK BUILT.
  1229. * VSNE = VSN ENTRY FOR TAPES.
  1230. * AT *COM4* IF ASSIGNMENT REJECTED DUE TO
  1231. * *MAGNET* IDLEDOWN.
  1232. * AT *COM5*, IF RE-REQUEST OPERATOR ASSIGNMENT OF
  1233. * EQUIPMENT.
  1234. * AT *COM6*, IF REQUEST OPERATOR SELECTION FOR
  1235. * DUPLICATE VSN.
  1236. *
  1237. * EXIT (X2) = STATUS.
  1238. *
  1239. * ERROR TO *PER* IF NT DRIVE CONFLICT.
  1240. *
  1241. * USES A - 1, 2, 3, 4, 6.
  1242. * B - 2, 3, 5.
  1243. * X - ALL.
  1244. *
  1245. * CALLS BRE, BSF, CFU, CIC, CRC, CRQ, DEI, IRC, OCA, PMM, ROA,
  1246. * SDT, SPM.
  1247. *
  1248. * MACROS MESSAGE, RETRF.
  1249.  
  1250.  
  1251. COM SUBR ENTRY/EXIT
  1252. COM1 RJ BRE BUILD RESOURCE ENVIRONMENT
  1253. NG X0,COM4 IF SUBSYSTEM MISSING
  1254. RJ CRQ CHECK REQUEST
  1255. RJ DEI DEMAND EXCEEDS INSTALLATION CHECK
  1256. RJ BSF BUILD SCRATCH FILE
  1257. RJ CFU CHECK FOR UNIT
  1258. SA1 TPAL TAPE ACCESS LEVEL
  1259. SX6 ALC ACCESS LEVEL CONFLICT ERROR
  1260. NG X1,COM8.1 IF ACCESS LEVEL CONFLICT
  1261. RJ CIC CHECK FOR INTERNAL CONFLICT
  1262. NZ X2,COM8 IF DEMANDS NOT SATISFIABLE
  1263. SB2 RESB
  1264. RJ CRC CHECK REQUESTOR COMPLETE
  1265. ZR X5,COM2 IF REQUESTOR COMPLETES
  1266. RJ OCA EXERCISE OVERCOMMITMENT ALGORITHM
  1267. SX2 /STATUS/OV
  1268. ZR X5,COM3 IF OVERCOMMITMENT
  1269. COM2 SX2 /STATUS/OK
  1270. COM3 SA1 AV CHECK IF VSN IN ENVIRONMENT
  1271. NZ X1,COMX IF VSN PRESENT
  1272. SX2 X2+/STATUS/MV SET MISSING VSN
  1273. EQ COMX RETURN
  1274.  
  1275.  
  1276. ** PROCESS SUBSYSTEM MISSING.
  1277.  
  1278.  
  1279. COM4 RJ PMM PROCESS *MAGNET* MISSING
  1280. SA1 AA
  1281. BX6 X6-X6
  1282. SB2 X1
  1283. GT B2,COM4.1 IF *ASSIGN* WITH EST ORDINAL SPECIFIED
  1284. SA6 EQ CLEAR EQUIPMENT ASSIGNMENT
  1285. NG B2,COM1 IF AUTOMATIC ASSIGNMENT
  1286. COM4.1 SA1 RQ CLEAR VSN
  1287. MX6 -24
  1288. BX6 -X6*X1
  1289. SA6 A1
  1290. EQ COM1 RETRY OVERCOMMITMENT CHECK
  1291.  
  1292. * REQUEST OPERATOR ASSIGNMENT OF EQUIPMENT.
  1293.  
  1294. COM5 SA1 RQ CLEAR VSN IN REQUEST
  1295. MX6 -24
  1296. BX6 -X6*X1
  1297. SX4 B0 INDICATE OPERATOR ASSIGNMENT OF EQUIPMENT
  1298. SA6 A1
  1299. EQ COM7 RE-REQUEST OPERATOR ASSIGNMENT
  1300.  
  1301. * REQUEST OPERATOR ASSIGNMENT ON DUPLICATE VSN OR VERIFY OF
  1302. * NON-TMS TAPE REQUEST.
  1303.  
  1304. COM6 SX4 B1+ INDICATE DUPLICATE VSN
  1305. COM7 RETRF D RETURN DEMAND FILE AND RELEASE INTERLOCK
  1306. RJ ROA RE-REQUEST OPERATOR ASSIGNMENT
  1307. EQ COM1 RETRY OVERCOMMITMENT CHECK
  1308.  
  1309.  
  1310. ** PROCESS INTERNAL CONFLICT.
  1311. * VSN FOUND MOUNTED ON WRONG 9-TRACK DRIVE TYPE.
  1312.  
  1313.  
  1314. COM8 SA1 OI GET ORIGINAL TAPE DENSITY INDEX
  1315. SB2 /PER/DRC * NT DRIVE CONFLICT.*
  1316. SX1 X1-RPEP
  1317. NZ X1,PER IF NOT *PE* REQUEST
  1318. SA2 AV
  1319. ZR X2,PER IF RESEX SELECTED DRIVE TYPE
  1320. SA3 AA
  1321. SA4 X2
  1322. SB3 X3
  1323. GT B3,PER IF *ASSIGN* WITH EST ORDINAL
  1324. RJ SDT SWITCH 9-TRACK DRIVE TYPE
  1325. SX6 DRC SET DRIVE CONFLICT
  1326. COM8.1 RJ SPM SET PREVIEW DISPLAY MESSAGE
  1327. SA1 EQ
  1328. SX2 /STATUS/MV SET MISSING VSN STATUS
  1329. ZR X1,COMX IF NO OPERATOR ASSIGNMENT
  1330. SB5 -1 DECREMENT TOTAL AND RESOURCE ASSIGN COUNTS
  1331. RJ IRC
  1332. SA1 AA
  1333. NG X1,COM6 IF DUPLICATE VSN
  1334. EQ COM5 RE-REQUEST OPERATOR ASSIGNMENT
  1335. TITLE OVERCOMMITMENT ALGORITHM SUBROUTINES.
  1336. BRE SPACE 4,25
  1337. ** BRE - BUILD RESOURCE ENVIRONMENT.
  1338. *
  1339. * EXIT DEMAND FILE INTERLOCKED AND RET AND EVSB
  1340. * TABLES BUILT.
  1341. * (X0) .LT. 0 IF *MAGNET* MISSING.
  1342. *
  1343. * ERROR TO *ERR2*, IF SUBSYSTEM COMMUNICATION ERROR.
  1344. * TO *PER*, IF RESOURCE ENVIRONMENT ERROR.
  1345. *
  1346. * USES A - 0, 1, 2, 3, 4, 6, 7.
  1347. * B - 2, 3, 4, 5, 6, 7.
  1348. * X - ALL.
  1349. *
  1350. * CALLS CET, CTE, DLY, GRI, GRL.
  1351. *
  1352. * MACROS CLEAR, FATRF, RDSB, RETRF.
  1353.  
  1354.  
  1355. BRE17 SX6 B3+ SAVE ENDING RET/EVSB INDEX
  1356. SA6 RETE
  1357.  
  1358. BRE SUBR ENTRY/EXIT
  1359.  
  1360. * INTERLOCK DEMAND FILE.
  1361.  
  1362. RETRF D
  1363. BRE0 FATRF D,M
  1364.  
  1365. * CLEAR ENVIRONMENT.
  1366.  
  1367. CLEAR RET,RETL+EVBL CLEAR RET AND EVSB
  1368. SB3 B1 PRESET BEGINNING RET/EVSB INDEX
  1369. SB5 B0 PRESET EST ORDINAL
  1370. SA0 BUF2 TAPE EST ENTRY BUFFER
  1371.  
  1372. * PROCESS REMOVABLE PACKS. SAVE EST ENTRIES FOR TAPES.
  1373.  
  1374. BRE0.1 SB5 B5-B1
  1375. RJ CET COPY EST BLOCK
  1376. NG B6,BRE9 IF END OF EST
  1377. SX0 B5+B1 SAVE STARTING BLOCK EST ORDINAL
  1378. SB6 X0+B6 SAVE ENDING BLOCK EST ORDINAL
  1379. BRE1 SB5 B5+B1 ADVANCE EST ORDINAL
  1380. EQ B5,B6,BRE0.1 IF END OF EST BLOCK
  1381. SX1 B5 GET NEXT EST ENTRY
  1382. R= X2,ESTE
  1383. IX1 X1-X0
  1384. SX3 11B
  1385. IX1 X1*X2
  1386. LX3 -4
  1387. SA4 SBUF2+EQDE+X1 GET *EQDE*
  1388. BX5 X3*X4
  1389. ZR X4,BRE1 IF NO ENTRY
  1390. BX6 X5-X3
  1391. MX2 -12
  1392. ZR X6,BRE1.2 IF REMOVABLE PACK
  1393. BX6 X2*X4
  1394. LX4 -12
  1395. BX7 -X2*X4 DEVICE CODE
  1396. RJ CTE CHECK FOR TAPE EQUIPMENT
  1397. ZR X2,BRE1 IF NOT TAPE DEVICE
  1398. SA1 A4+B1
  1399. ERRNZ EQAE-EQDE-1
  1400. SX7 B5 SAVE EST ORDINAL AND EST ENTRY
  1401. BX6 X6+X7
  1402. MX2 6
  1403. LX2 17-59
  1404. BX1 X1*X2
  1405. LX1 12
  1406. LX2 12
  1407. BX6 -X2*X6 CLEAR *AL* FIELD
  1408. BX6 X1+X6 SAVE *AL* FIELD OF EST
  1409. SA6 A0
  1410. SA0 A0+B1
  1411. EQ BRE1 CONTINUE EST SCAN
  1412.  
  1413. BRE1.2 BX7 -X2*X4 MST ADDRESS
  1414. SA7 BREA SAVE MST ADDRESS
  1415. MX6 1
  1416. LX7 3
  1417. SA6 BUF
  1418. RDSB 0,MSTL,X7,A6 READ MST
  1419. MX2 -11
  1420. LX4 -12
  1421. BX7 -X2*X4 DEVICE TYPE
  1422. MX2 -3
  1423. SA3 BUF+DDLL NUMBER OF UNITS
  1424. LX3 12
  1425. BX5 -X2*X3
  1426. LX7 6
  1427. SX2 X5+1R1
  1428. BX1 X7+X2
  1429. LX1 42
  1430. AX7 6
  1431. RJ GRI GET RESOURCE INDEX
  1432. ZR B2,BRE16 IF NO MATCH
  1433. SA2 BREB MASK FOR FULL TRACK CONTROLLER
  1434. LX4 12
  1435. BX1 X4-X2
  1436. SB7 X6
  1437. BX6 X2*X1
  1438. SA1 BUF+DILL
  1439. LX1 59-22
  1440. NG X1,BRE2 IF BUFFERED DEVICE
  1441. ZR X6,BRE2 IF NOT CONNECTED TO FULL TRACK CONTROLLER
  1442. SB4 TRSLL1
  1443. RJ GRL GET INDEX OF RESOURCE LIST
  1444. NG B4,BRE2 IF RESOURCE NOT FOUND
  1445. SX7 B4+4000B SET RESOURCE LIST INDICATOR AND FLAG
  1446. BRE2 SA3 BUF+DDLL
  1447. SA1 BUF+PFGL
  1448. MX2 6
  1449. LX4 59-41
  1450. BX2 X2*X4
  1451. BX7 X7+X2 CHANNEL 1
  1452. LX4 59-29-59+41
  1453. MX2 6
  1454. BX2 X2*X4
  1455. LX2 -6
  1456. BX7 X7+X2 CHANNEL 2
  1457. LX7 0-9-12
  1458. BX7 X7+X5
  1459. MX2 -3
  1460. LX3 -51
  1461. BX5 -X2*X1 NUMBER OF MULTI-UNITS
  1462. LX7 3
  1463. BX6 -X2*X3 ORIGINAL NUMBER OF UNITS
  1464. LX1 -3
  1465. SA3 BUF+STLL
  1466. BX7 X7+X6
  1467. LX3 -3
  1468. BX1 -X2*X1 RELATIVE UNIT NUMBER
  1469. MX2 -9
  1470. BX6 -X2*X3 NEXT EQUIPMENT
  1471. LX4 59-54-59+29
  1472. SX2 B5 EST ORDINAL
  1473. LX6 12
  1474. BX6 X6+X2
  1475. LX6 12
  1476. MX2 -1
  1477. BX1 X1-X5
  1478. LX7 6
  1479. BX2 -X2*X4 LDAM STATUS
  1480. BX7 X7+X6
  1481. LX2 3
  1482. BX7 X7+X2
  1483. SX6 4
  1484. BX5 X4
  1485. NZ X1,BRE3 IF NOT END OF CHAIN
  1486. BX7 X6+X7
  1487. BRE3 LX3 -12+3 GET USER COUNT
  1488. MX2 -12
  1489. LX5 54-59+1-49
  1490. SX6 B1+B1
  1491. BX2 -X2*X3
  1492. BX1 X6*X5 SAVE *OFF*/*DOWN* FLAG
  1493. BX7 X7+X1
  1494. BX5 -X5*X6 GET *OFF*/*DOWN* FLAG
  1495. SA7 RET+B3 ENTER RESOURCE EQUIPMENT TABLE
  1496. SX6 B3-RETL
  1497. ZR X6,BRE16 IF TABLE OVERFLOW
  1498. SB3 B3+B1
  1499. BX1 X2+X5
  1500. ZR X1,BRE1 IF DEVICE *OFF*/*DOWN* WITH NO USER COUNT
  1501. SA1 BUF+MDGL CHECK FOR FAMILY DEVICE
  1502. NG X4,BRE1 IF DEVICE UNAVAILABLE
  1503. LX1 59-58
  1504. MX6 1
  1505. PL X1,BRE1 IF FAMILY DEVICE
  1506. SA4 BUF+PFGL
  1507. LX3 59-51+12
  1508. SX7 B5
  1509. ZR X5,BRE4 IF DEVICE *OFF*/*DOWN* WITH USER COUNT
  1510. PL X3,BRE5 IF PACK NOT UNLOADED
  1511. ZR X2,BRE1 IF NO USER COUNT
  1512. BRE4 LX6 33-59+12 SET UNLOAD FLAG
  1513. BX7 X7+X6
  1514. BRE5 SA1 BUF+DALL
  1515. LX1 59-55
  1516. MX6 1
  1517. BX6 X6*X1 GET SUSPECT STATUS
  1518. LX6 31-59+12
  1519. BX7 X6+X7 SET SUSPECT FLAG
  1520. MX1 42
  1521. BX4 X1*X4 PACKNAME
  1522. SA1 BREA MST ADDRESS
  1523. SX5 B7 UNIT COUNT
  1524. LX7 -24
  1525. BX6 X5+X4 PACKNAME/INDEX
  1526. BX7 X7+X1
  1527. LX7 12
  1528. SB2 B3+B3
  1529. SA6 EVSB-2+B2 ENTER EVSB WORD 1
  1530. SA7 A6+B1 ENTER EVSB WORD 2
  1531. ZR X2,BRE1 IF NO USERS
  1532. MX5 1
  1533. LX5 35-59
  1534. BX7 X7+X5
  1535. SA7 A7
  1536. EQ BRE1 PROCESS NEXT EQUIPMENT
  1537.  
  1538. * READ UDT,S FROM MAGNET.
  1539.  
  1540. BRE7 SA4 SBUF2+/COMSMTX/UBUF INITIALIZE POINTERS TO READ UDT-S
  1541. SB2 -100B
  1542. ZR X4,BRE17 IF UDT POINTER ZERO
  1543. SX6 X4
  1544. AX4 24
  1545. SA6 BREA
  1546. SX7 B2+SBUF2
  1547. SA7 A6+1
  1548. SX7 X6+B2
  1549. SA7 A7+B1
  1550. SX7 X4+B1
  1551. SA7 A7+B1
  1552. SA1 SBUF2 SET *MAGNET* IDLEDOWN INDICATOR
  1553. BX6 X1
  1554. LX6 59-15
  1555. SA6 MIDI
  1556. EQ BRE11 READ UDT,S
  1557.  
  1558. BRE8 RETRF D RETURN DEMAND FILE
  1559. RJ DLY WAIT FOR *MAGNET* EXTERNAL CALLS
  1560. EQ BRE0 RETRY BUILD OF ENVIRONMENT
  1561.  
  1562. BRE9 SX6 B3 SAVE RET/EVSB TAPE INDEX
  1563. BX7 X7-X7 READ FROM *MAGNET* RA+0
  1564. SA6 RETI
  1565. SX6 SBUF2 SET UP TO READ UDT POINTER WORD
  1566. SA7 A0 SET END OF TAPE EST ENTRIES
  1567. MX0 1 PRESET *MAGNET* MISSING FLAG
  1568. SX5 /COMSMTX/UBUF+1 SET WORD COUNT
  1569. SA7 BREA
  1570. BRE10 RDSB MTSI,X5,X7,X6,X READ UDT WORD
  1571. SA2 SS READ STATUS WORD
  1572. NG X2,BRE11 IF TRANSFER COMPLETE
  1573. LX2 1
  1574. PL X2,ERR2 IF SYSTEM COMMUNICATION ERROR
  1575. EQ BREX RETURN WITH *MAGNET* MISSING STATUS
  1576.  
  1577. BRE11 SA2 BREA
  1578. ZR X2,BRE7 IF POINTER READ
  1579. SA2 A2+B1
  1580. SA3 A2+B1
  1581. SB2 100B
  1582. SA4 A3+B1
  1583. SX6 X2+B2
  1584. SX7 X3+B2
  1585. SA6 A2
  1586. SA7 A3
  1587. SB7 X7+B2
  1588. SX5 B2
  1589. SB5 X4
  1590. GE B5,B7,BRE10 IF MORE THAN 100 WORD BLOCKS TO TRANSFER
  1591. SB7 /COMSMTX/UNITL
  1592. IX5 X4-X7
  1593. PL X5,BRE10 IF LAST SHORT BLOCK TO TRANSFER
  1594. SB5 -B7
  1595.  
  1596. * PROCESS MAGNETIC TAPES.
  1597.  
  1598. BRE12 SB5 B5+B7
  1599. SA2 B5+SBUF2
  1600. SX0 B1 SET ENVIRONMENT BUILD COMPLETE STATUS
  1601. NG X2,BRE17 IF ALL UDTS PROCESSED
  1602. SA4 B5+SBUF2+/COMSMTX/UST4
  1603. SA3 B5+SBUF2+/COMSMTX/UST1
  1604. MX0 -2
  1605. LX4 0-55
  1606. LX3 59-37
  1607. BX4 -X0*X4 TAPE DEVICE TYPE
  1608. SA5 TTDV+X4
  1609. SX0 X5 SET DEVICE MNEMONIC
  1610. SX4 X4-/COMSMTX/DVNT
  1611. AX5 18 SET RESOURCE TYPE
  1612. NZ X4,BRE13 IF NOT *NT* DEVICE
  1613. SX0 TRHD+4000B SET HD, PE, NT RESOURCE LIST
  1614. SX5 RHDP
  1615. PL X3,BRE13 IF 800/1600 NT DRIVE
  1616. SX0 TRGE+4000B SET PE, GE RESOURCE LIST
  1617. SX5 RGEP
  1618. BRE13 MX2 -12
  1619. LX3 0-24-59+37
  1620. BX4 -X2*X3 EST ORDINAL
  1621. LX0 -12
  1622. SA1 BUF2-1
  1623. BRE13.1 SA1 A1+B1
  1624. ZR X1,BRE16 IF EST ENTRY NOT FOUND
  1625. BX6 -X2*X1
  1626. BX6 X6-X4
  1627. NZ X6,BRE13.1 IF NOT CORRECT EST ENTRY
  1628. LX2 36
  1629. BX6 -X2*X1 EXTRACT PRIMARY CHANNEL
  1630. LX6 59-46
  1631. PL X6,BRE13.3 IF PRIMARY CHANNEL UP
  1632. LX2 -12
  1633. BX6 -X2*X1
  1634. ZR X6,BRE13.2 IF NO SECONDARY CHANNEL
  1635. LX6 59-34
  1636. PL X6,BRE13.3 IF SECONDARY CHANNEL UP
  1637. BRE13.2 BX2 X4 ALL CHANNELS DOWN
  1638. LX2 12
  1639. SX7 B1+B1 SET *OFF* FLAG
  1640. BX2 X2+X7
  1641. EQ BRE15 TREAT AS IF UNIT *OFF*
  1642.  
  1643. BRE13.3 BX2 X4
  1644. LX4 -12
  1645. LX1 -48 POSITION DEVICE STATE
  1646. SX7 2
  1647. LX2 12
  1648. BX7 X7*X1 EXTRACT *OFF*/*DOWN* STATUS
  1649. BX2 X2+X7
  1650. LX1 48-30 POSITION ACCESS LEVEL
  1651. MX3 6
  1652. BX3 X1*X3
  1653. LX3 -12
  1654. BX2 X2+X3 ACCESS LEVEL
  1655. LX3 14-59-0+12
  1656. BX5 X3+X5 SAVE ACCESS LEVEL IN *EVSB*
  1657. SA1 B5+SBUF2+/COMSMTX/UVRI
  1658. MX6 12
  1659. BX1 X6*X1 ASSIGNED JOB EJT ORDINAL
  1660. NZ X1,BRE13.4 IF UNIT ASSIGNED
  1661. NZ X7,BRE15 IF OFF AND NOT ASSIGNED
  1662. BRE13.4 SA3 B5+SBUF2+/COMSMTX/UVSN
  1663. SX6 B0+ SET NO VSN
  1664. ZR X3,BRE13.5 IF LABELS NOT READ
  1665. LX3 59-23
  1666. NG X3,BRE13.5 IF LABEL CHECK IN PROGRESS
  1667. LX3 23-23-59+23
  1668. BX6 X3 USE INTERNAL VSN
  1669. SA3 B5+SBUF2+/COMSMTX/UST1
  1670. LX3 59-49
  1671. MX7 -2
  1672. PL X3,BRE13.5 IF NOT ACS UNIT
  1673. SA3 B5+SBUF2+/COMSMTX/UMST
  1674. BX6 X3 USE EXTERNAL VSN
  1675. BX7 -X7*X3 ACS UNIT MOUNT STATUS
  1676. SX7 X7-2
  1677. ZR X7,BRE13.5 IF UNIT MOUNTED
  1678. SX6 B0+ SET NO VSN
  1679. BRE13.5 LX1 12 POSITION EJT ORDINAL
  1680. MX7 36
  1681. BX6 X7*X6 VSN
  1682. BX7 X6+X1
  1683. ZR X7,BRE15 IF NO VSN AND NOT ASSIGNED
  1684. SA3 B5+SBUF2+/COMSMTX/UVSN GET LABEL FLAGS
  1685. BX6 X6+X5 MERGE VSN IN EVSB WORD 1
  1686. SX5 B1
  1687. LX5 34
  1688. LX3 34-22
  1689. BX7 X5*X3
  1690. BX4 X7+X4 MERGE SCRATCH VSN BIT
  1691. LX3 32-14-34+22
  1692. LX5 32-34
  1693. BX7 X5*X3
  1694. LX5 35-32
  1695. SA3 BREA
  1696. BX4 X7+X4 MERGE DEFAULT VSN BIT
  1697. BX4 X4+X1
  1698. SX3 X3+B5 UDT ADDRESS
  1699. SB2 B3+B3
  1700. SA6 EVSB+B2 ENTER EVSB WORD 1
  1701. LX3 12
  1702. ZR X1,BRE14 IF NOT ASSIGNED
  1703. BX4 X4+X5 MERGE ASSIGNED BIT
  1704. BRE14 BX7 X3+X4 MERGE UDT ADDRESS
  1705. SA7 A6+B1 ENTER EVSB WORD 2
  1706. BRE15 BX7 X0+X2
  1707. SA7 RET+B3 ENTER RESOURCE EQUIPMENT TABLE
  1708. SB3 B3+B1
  1709. SX6 B3-RETL-1
  1710. NZ X6,BRE12 IF NO TABLE OVERFLOW
  1711. BRE16 SB2 /PER/REV * RESOURCE ENVIRONMENT ERROR.*
  1712. EQ PER PROCESS ERROR
  1713.  
  1714.  
  1715. BREA CON 0 UDT/MST ADDRESS TEMPORARY
  1716. CON 0 SBUF2 POINTER
  1717. CON 0 UDT POINTER
  1718. CON 0 UDT LWA+1
  1719.  
  1720. BREB VFD 12/0,12/400B,12/400B,24/0 FULL TRACK CONTROLLER MASK
  1721. BRT SPACE 4,15
  1722. ** BRT - BUILD RESOURCE DEMAND TABLE.
  1723. *
  1724. * ENTRY (B2) = FWA DEMAND FILE ENTRY.
  1725. * (B5) = 0, IF RESOURCE DEMANDS TO BE BUILT FROM
  1726. * REMAINING DEMANDS.
  1727. * (B5) .NE. 0, IF RESOURCE DEMANDS TO BE BUILT FROM
  1728. * TOTAL DEMANDS.
  1729. *
  1730. * EXIT (B6) = FWA RESOURCES DEMANDED TABLE.
  1731. * (B7) = LWA+1 RESOURCES DEMANDED TABLE.
  1732. * (X5) .LT. 0, IF TOTAL ASSIGNS EXCEED TOTAL DEMAND.
  1733. *
  1734. * USES A - 1, 2, 6, 7.
  1735. * B - 2, 3, 4, 6, 7.
  1736. * X - ALL.
  1737.  
  1738.  
  1739. BRT6 SB7 B7-B1
  1740. PL B7,BRT1 IF MORE TAPE/PACK RESOURCES
  1741. SB7 A6+B1 LWA+1 RESOURCES DEMANDED TABLE
  1742.  
  1743. BRT SUBR ENTRY/EXIT
  1744. SB6 RDT INITIALIZE REGISTERS
  1745. SB7 RRPL+RMTL-2
  1746. SA1 B6-B1
  1747. MX0 -6
  1748. SA2 B2+RMTP
  1749. BX6 X1
  1750. MX4 12
  1751. SA6 A1
  1752. BX6 X6-X6
  1753.  
  1754. * SEARCH DEMAND FILE ENTRY FOR RESOURCE REQUESTS.
  1755.  
  1756. BRT1 SA1 A2+B7 GET DEMAND TABLE ENTRY
  1757. SX2 B7-RMTL
  1758. BX3 X4*X1 GET RESOURCE TYPE
  1759. SB3 RPEW TAPE ENTRIES PER RESOURCE WORD
  1760. SB4 B3+B3 INITIALIZE ACCESS LEVEL COUNT
  1761. SA1 A1+B1 READ SECOND WORD
  1762. SB2 -B1
  1763.  
  1764. * SEARCH DEMAND FILE WORD FOR RESOURCE REQUESTS.
  1765.  
  1766. BRT2 BX5 -X0*X1 DEMAND
  1767. LX1 -6
  1768. NZ B5,BRT3 IF TOTAL DEMANDS TO BE USED
  1769. BX7 -X0*X1 ASSIGNED
  1770. IX5 X5-X7 USE REMAINING DEMANDS
  1771. NG X5,BRTX IF TOTAL ASSIGNS EXCEED TOTAL DEMAND
  1772. BRT3 ZR X5,BRT5 IF DEMAND SATISFIED OR NOT SPECIFIED
  1773. SX7 B4 NUMBER OF PHYSICAL UNITS ON DEVICE
  1774. LX7 42
  1775. PL X2,BRT4 IF NOT A TAPE UNIT
  1776. SX7 B4-B1
  1777. SX7 X7+100B
  1778. LX7 36
  1779.  
  1780. * ENTER *RDT* FOR EACH RESOURCE REQUESTED
  1781.  
  1782. BRT4 BX7 X7+X3
  1783. SX5 X5+B2
  1784. SA7 A6+B1 ENTER RESOURCE DEMAND IN RDT
  1785. SA6 A7+B1
  1786. BRT5 NZ X5,BRT4 IF MORE DEMANDS FOR THIS RESOURCE
  1787. LX1 -6 POSITION TO NEXT DEMAND FOR RESOURCE TYPE
  1788. SB4 B4-B1 NEXT UNIT COUNT
  1789. GT B4,B3,BRT2 IF MORE RESOURCE DEMANDS IN THIS WORD
  1790. SB3 B0
  1791. SA1 A2+B7 READ FIRST WORD FOR PACKS
  1792. GT B4,B3,BRT2 IF NOT END OF PACK RESOURCES
  1793. SB7 B7-B1
  1794. EQ BRT6 ADVANCE TO NEXT DISK/TAPE RESOURCE
  1795. BSF SPACE 4,15
  1796. ** BSF - BUILD SCRATCH FILE.
  1797. *
  1798. * ENTRY USER RESOURCE REQUEST BLOCK BUILT.
  1799. * DEMAND FILE INTERLOCKED.
  1800. *
  1801. * EXIT SCRATCH FILE BUILT WITH ALL JOBS HAVING ASSIGNED
  1802. * RESOURCES, EXCEPT REQUESTOR.
  1803. *
  1804. * USES A - 1, 3, 7.
  1805. * X - 1, 3, 4, 7.
  1806. *
  1807. * CALLS CAU.
  1808. *
  1809. * MACROS READ, READW, REWIND, WRITEW.
  1810.  
  1811.  
  1812. BSF SUBR ENTRY/EXIT
  1813. MX7 0
  1814. SA7 NS1 CLEAR NUMBER OF JOBS
  1815. REWIND D
  1816. READ X2 READ DEMAND FILE
  1817. REWIND S1,R
  1818. BSF1 READW D,BUF,RDEL
  1819. NZ X1,BSFX IF EOR
  1820. SA3 BUF+RJID GET JOB IDENTIFICATION
  1821. ZR X3,BSF1 IF NO JOB
  1822. SA1 RESB+RJID CHECK IF REQUESTOR
  1823. BX1 X1-X3
  1824. ZR X1,BSF1 IF REQUESTOR
  1825. SX4 A3
  1826. RJ CAU COUNT ASSIGNED UNITS
  1827. ZR B3,BSF1 IF NO UNITS ASSIGNED
  1828. WRITEW S1,BUF,RDEL COPY ENTRY TO SCRATCH FILE
  1829. SA1 NS1 INCREMENT JOB COUNT
  1830. SX7 X1+B1
  1831. SA7 A1
  1832. EQ BSF1 CONTINUE PROCESSING DEMAND ENTRIES
  1833. CFU SPACE 4,25
  1834. ** CFU - CHECK FOR UNIT.
  1835. *
  1836. * ENTRY ENVIRONMENT AND USER RESOURCE REQUEST BLOCK BUILT.
  1837. * (EQ) = EST ORDINAL IF SPECIFIED.
  1838. * RESB = REQUESTOR DEMAND ENTRY.
  1839. * VSNE = VSN ENTRY FOR TAPES.
  1840. *
  1841. * EXIT (AV) = EVSB ADDRESS OF VSN MATCH.
  1842. * (AV) = 0 IF VSN MISSING.
  1843. * (AU) = MAGNET UDT ADDRESS IF VSN NOT MISSING.
  1844. * UNIT ASSIGNED TO REQUESTOR.
  1845. * TO *COMX*, IF REQUEST NOT SATISFIABLE OR DUPLICATE
  1846. * SHARE TABLE ENTRY ALREADY PRESENT.
  1847. * (X2) = STATUS.
  1848. * TO *COM5* IF OPERATOR ASSIGNMENT OF EQUIPMENT
  1849. * NEEDED AND CAN BE SATISFIED.
  1850. * TO *COM6*, IF OPERATOR SELECTION REQUIRED FOR
  1851. * DUPLICATE VSN.
  1852. * TO *COM6*, IF OPERATOR VALIDATION REQUIRED FOR *TMS*
  1853. * REQUEST.
  1854. *
  1855. * ERROR TO *PER*, IF ENVIRONMENT, EQUIPMENT, SHARE TABLE,
  1856. * INCORRECT ACCESS, OR DEMAND ERROR.
  1857. *
  1858. * USES A - ALL.
  1859. * B - 2, 3, 4, 5, 6, 7.
  1860. * X - ALL.
  1861. *
  1862. * CALLS CBP, CIC, CRM, DDS, IAS, IRC, SDT.
  1863.  
  1864.  
  1865. CFU SUBR ENTRY/EXIT
  1866. CFU1 SA4 RI PRESET RESOURCE INDEX AND UNIT COUNT
  1867.  
  1868. CFU2 SA2 RI CALCULATE RESOURCE BYTE POSITION
  1869. RJ CBP
  1870. BX7 X7-X7
  1871. SA7 AU CLEAR VSN AND UDT POINTERS
  1872. SA2 B2+RESB
  1873. SA7 AV
  1874. AX2 B4
  1875. MX0 -6
  1876. BX5 -X0*X2 DEMAND COUNT
  1877. LX2 -6
  1878. SB7 B2-RRPP REMOVABLE PACKS FLAG
  1879. BX3 -X0*X2 ASSIGNED COUNT
  1880. IX6 X3-X5 POSITIVE IF DEMAND REACHED OR EXCEEDED
  1881. SX5 B7
  1882. BX5 -X5+X6
  1883. SA3 B0
  1884. SB5 B0
  1885. SA1 RQ
  1886. PL X5,CFU24 IF DEMAND REACHED FOR TAPE EQUIPMENT
  1887. SA5 CFUA CHECK FOR SCRATCH VSN
  1888. BX7 X1-X5
  1889. SA6 A5+B1 DEMAND EXCEEDED FLAG
  1890. AX7 17
  1891. SB2 B1+B1
  1892. SB6 EVSB
  1893. SA2 RETE GET ENDING RET/EVSB INDEX
  1894. SB3 B1
  1895. LX2 1 2 WORDS PER ENTRY IN EVSB
  1896. SB4 EVSB+X2
  1897. NZ X7,CFU3 IF NOT SCRATCH REQUEST
  1898. SA2 EQ
  1899. NZ X2,CFU3 IF EST ORDINAL SPECIFIED
  1900. SB3 B0
  1901. EQ CFU4 SEARCH FOR SCRATCH VSN
  1902.  
  1903. * SEARCH ENVIRONMENT FOR CORRECT VSN AND NO DUPLICATE VSN,S.
  1904.  
  1905. CFU3 NZ B5,COM6 IF DUPLICATE VSN FOUND
  1906. SB5 A3+ INDICATE VSN FOUND
  1907. ZR B3,CFU6 IF SCRATCH REQUEST
  1908. CFU4 EQ B6,B4,CFU6 IF END OF EVSB
  1909. SA3 B6
  1910. SB6 B6+B2
  1911. ZR X3,CFU4 IF EMPTY ENTRY
  1912. SA2 A3+B1
  1913. BX5 X1-X3
  1914. LX2 59-34
  1915. AX5 18
  1916. ZR X5,CFU5 IF MATCH
  1917. NZ B3,CFU4 IF NOT SCRATCH VSN REQUEST
  1918. PL X2,CFU4 IF NOT SCRATCH VSN
  1919. CFU5 LX2 59-33-59+34
  1920. BX0 X4
  1921. NG X2,CFU4 IF PACK UNLOADED
  1922. LX2 59-31-59+33
  1923. NG X2,CFU4 IF DEVICE SUSPECT
  1924. SX5 X3 EQUIPMENT RESOURCE INDEX AND BYTE POINTER
  1925. SA2 OI GET ORIGINAL TAPE DENSITY INDEX
  1926. RJ CRM CHECK FOR MATCHING RESOURCES
  1927. NZ X7,CFU4 IF NO MATCH
  1928. PL B7,CFU7 IF REMOVABLE PACK
  1929. SA2 A3+B1
  1930. MX7 -12
  1931. BX5 -X7*X2
  1932. SX7 A3
  1933. NZ X5,CFU4 IF TAPE ASSIGNED
  1934. RJ CAL CHECK ACCESS LEVEL
  1935. NZ X5,CFU4 IF NOT CORRECT EQUIPMENT
  1936. SA2 EQ EQUIPMENT NUMBER
  1937. ZR X2,CFU3 IF EQUIPMENT NOT SPECIFIED
  1938. SX7 A3
  1939. SA1 TPAL TAPE ACCESS LEVEL
  1940. PL X1,CFU10 IF A LEGAL ACCESS LEVEL
  1941. SB2 /PER/IAL * INCORRECT ACCESS LEVEL FOR EQUIPMENT.*
  1942. EQ PER PROCESS ERROR
  1943.  
  1944. CFU6 ZR B5,CFU11 IF VSN NOT FOUND
  1945. SA5 B5+B1
  1946. SX7 B5
  1947. LX5 59-32
  1948. ZR B3,CFU10 IF SCRATCH VSN REQUEST
  1949. PL X5,CFU10 IF NOT DEFAULT VSN
  1950. SA2 OT
  1951. SA3 SSJ=+/COMSSSJ/AACS
  1952. SX2 X2-SYOT
  1953. ZR X2,CFU10 IF SYSTEM ORIGIN
  1954. LX3 59-4
  1955. NG X3,CFU10 IF PERMITTED TO REQUEST BY DEFAULT VSN
  1956. SB2 /PER/UAV * USER ACCESS NOT VALID.*
  1957. EQ PER
  1958.  
  1959. * PROCESS REMOVABLE PACK.
  1960.  
  1961. CFU7 SB4 RRPS
  1962. SB5 RRPS+RPSL
  1963. SB6 B0
  1964. SX7 A3
  1965. SB2 RESB
  1966. CFU8 EQ B4,B5,CFU9 IF SHARE TABLE COMPLETED
  1967. SA4 B4+B2
  1968. BX6 X4-X3
  1969. SB4 B4+B1
  1970. AX6 18
  1971. ZR X6,CFU22 IF PACKNAME MATCH (DUPLICATE)
  1972. NZ X4,CFU8 IF ENTRY PRESENT
  1973. NZ B6,CFU8 IF EMPTY ALREADY FOUND
  1974. SB6 A4
  1975. EQ CFU8 CONTINUE SCAN OF SHARE TABLE
  1976.  
  1977. CFU9 ZR B6,CFU23 IF SHARE TABLE FULL (ERROR)
  1978. SA2 CFUB CHECK FOR DEMAND EXCEEDED
  1979. PL X2,CFU24 IF DEMAND EXCEEDED
  1980. BX6 X3
  1981. SA6 B6 STORE ENTRY IN SHARE TABLE
  1982. CFU10 SA5 TMPF CHECK VALIDATION REQUIRED FLAG
  1983. LX5 59-56
  1984. NG X5,COM6 IF VALIDATION REQUIRED
  1985. SA7 AV SET ASSIGNED VSN POINTER
  1986. SA5 X7+B1 SAVE ORIGINAL EVSB+1 ENTRY
  1987. BX6 X5
  1988. SB5 B0+ INCREMENT TOTAL AND RESOURCE ASSIGN COUNTS
  1989. SA6 CFUF+1
  1990. RJ IRC
  1991. SX0 B1
  1992. LX0 36-0
  1993. IX5 X5+X0 SHARE PACK (RESERVE TAPE)
  1994. LX0 35-0-36+0
  1995. BX6 X0+X5 SET ASSIGNED BIT
  1996. SA6 A5
  1997. PL B7,CFUX IF REMOVABLE PACKS
  1998. SA3 RESB+RJID INDICATE ASSIGNEE
  1999. MX0 -12
  2000. BX3 -X0*X3
  2001. BX6 X6+X3
  2002. SA6 A5+
  2003. MX0 -12
  2004. LX6 -12
  2005. BX7 -X0*X6 UDT ADDRESS
  2006. SA7 AU SAVE UDT ADDRESS
  2007.  
  2008. * CHECK FOR INTERNAL CONFLICT ON SCRATCH REQUEST.
  2009.  
  2010. NZ B3,CFUX IF NOT SCRATCH REQUEST
  2011. MX0 -6
  2012. BX0 -X0*X4
  2013. SX0 X0-RPEP
  2014. NZ X0,CFU10.1 IF NOT *PE* REQUEST
  2015. RJ CIC CHECK FOR INTERNAL CONFLICT
  2016. ZR X2,CFU10.1 IF DEMANDS SATISFIABLE
  2017. SA4 CFUF+1 RESTORE ORIGINAL EVSB+1 ENTRY
  2018. SA5 AV
  2019. BX6 X4
  2020. SB5 -B1 DECREMENT TOTAL AND RESOURCE ASSIGN COUNTS
  2021. SA6 X5+B1
  2022. RJ IRC
  2023. SA4 X5 SWITCH 9-TRACK DRIVE TYPE
  2024. RJ SDT
  2025. SX6 B0+
  2026. SA6 AU CLEAR UDT ADDRESS
  2027. SA6 AV CLEAR ASSIGNED VSN POINTER
  2028. EQ CFU2 RESELECT WITH CORRECT DRIVE TYPE
  2029.  
  2030. * SET VSN FOR SCRATCH TAPE ASSIGNMENT.
  2031.  
  2032. CFU10.1 SA1 AV GET *EVSB* POINTER
  2033. SA1 X1+ GET VSN
  2034. MX7 36
  2035. BX7 X7*X1
  2036. SA7 EVSN SET EXTERNAL VSN
  2037. SA7 IVSN SET INTERNAL VSN
  2038. EQ CFUX RETURN
  2039.  
  2040. * PROCESS VSN/PACK NOT FOUND.
  2041.  
  2042. CFU11 PL B7,CFU13 IF REMOVABLE PACK
  2043. SA2 EQ
  2044. NZ X2,CFU25 IF EQUIPMENT SPECIFIED
  2045. EQ CFU14 BUILD PSEUDO EVSB ENTRY
  2046.  
  2047. CFU13 SA2 CFUB CHECK FOR DEMAND EXCEEDED
  2048. PL X2,CFU24 IF DEMAND EXCEEDED
  2049. CFU14 SB5 B0 INCREMENT TOTAL AND RESOURCE ASSIGN COUNTS
  2050. RJ IRC
  2051. SA1 RQ BUILD RESOURCE DEMANDED TABLE
  2052. MX2 -6
  2053. BX2 -X2*X1
  2054. SX6 X1+B1
  2055. SA3 AL ACCESS LEVEL
  2056. LX3 35 POSITION ACCESS LEVEL
  2057. ZR X2,CFU15 IF TAPE RESOURCE
  2058. SX3 B0+
  2059. SX6 X1-1R0 SET UNIT COUNT
  2060. CFU15 LX6 42
  2061. BX7 X7-X7
  2062. SB7 CFUC+2
  2063. BX6 X6+X3
  2064. SA6 CFUC
  2065. BX3 X3-X3 SET IAS OPTION FOR ALL EQUIPMENTS
  2066. SB6 A6
  2067. SA7 A6+B1
  2068. RJ IAS INITIALIZE ASSIGNMENTS
  2069. RJ DDS SATISFY THIS DEMAND
  2070. SA1 AA
  2071. BX7 X2 SAVE SATISFIABILITY STATUS
  2072. BX1 X1+X2
  2073. SA2 EQ
  2074. SA7 CFUE
  2075. BX1 X1+X2
  2076. CX1 X1
  2077. ZR X1,COM5 IF OPERATOR ASSIGNMENT NEEDED
  2078. SA4 JEEO GET REQUESTING JOB EJT ORDINAL
  2079. SA3 CFUC BUILD WORKING TABLE ENTRIES
  2080. SA5 RI
  2081. LX3 -27
  2082. MX0 -9
  2083. BX7 -X0*X3 FIRST EQUIPMENT RET INDEX
  2084. LX0 12
  2085. SA2 RET+X7
  2086. SB2 X7
  2087. BX7 -X0*X2 EST ORDINAL
  2088. LX7 -24
  2089. MX6 42
  2090. BX4 X7+X4
  2091. SX3 B1 SET USER COUNT
  2092. SA1 RQ
  2093. LX3 36
  2094. BX1 X6*X1
  2095. BX6 X5+X1
  2096. BX4 X4+X3
  2097. SA6 CFUB SAVE SHARE TABLE ENTRY
  2098. LX3 35-0-36+0 SET ASSIGNED BIT
  2099. BX7 X4+X3
  2100. SA3 CFUE
  2101. NZ X3,CFU19 IF DEMAND NOT SATISFIABLE
  2102. SB2 B2+B2 EVSB INDEX
  2103. SA3 EVSB+B2 SAVE ORIGINAL EVSB ENTRY
  2104. BX6 X3
  2105. SA6 CFUF
  2106. SA4 A3+B1
  2107. BX6 X4
  2108. SA6 A6+B1
  2109. SA7 A4
  2110. PL X2,CFU17 IF NOT LIST INDEX
  2111. LX7 X2,B1 GET EQUIPMENT RESOURCE INDEX
  2112. AX7 49
  2113. SX4 X7-TRSLL1
  2114. NG X4,CFU17 IF REMOVABLE PACK EQUIPMENT
  2115. SX5 RHDP
  2116. ZR X4,CFU17 IF *HD* EQUIPMENT
  2117. SX5 RGEP
  2118. CFU17 BX6 X1+X5
  2119. SA1 CFUF ORIGINAL EVSB ENTRY
  2120. MX0 6
  2121. LX0 11-59
  2122. BX1 X0*X1 ACCESS LEVEL RANGE
  2123. BX6 -X0*X6 CLEAR OLD VALUE
  2124. BX6 X1+X6
  2125. SA6 A3
  2126. MX6 -36
  2127. SA1 CFUD
  2128. MX0 -9
  2129. BX1 -X6*X1
  2130. NZ X1,CFU18 IF END OF CHAIN IN SECOND WORD
  2131. SA1 A1-B1 END OF CHAIN IN FIRST WORD
  2132. CFU18 BX5 -X0*X1
  2133. LX1 -9
  2134. ZR X5,CFU18 IF NOT END OF CHAIN
  2135. SX7 B1
  2136. LX7 2
  2137. SA2 X5+RET SET END OF CHAIN
  2138. BX7 X7+X2
  2139. SA7 A2
  2140. SA1 CFUC CHECK FOR *PE* REQUEST
  2141. AX1 48
  2142. SX1 X1-2RPE
  2143. NZ X1,CFU19 IF NOT *PE* REQUEST
  2144.  
  2145. * CHECK FOR INTERNAL CONFLICT ON SELECTED *PE* DRIVE.
  2146.  
  2147. SX6 A3 SAVE EVSB ENTRY ADDRESS
  2148. SA6 A1
  2149. RJ CIC CHECK FOR INTERNAL CONFLICT
  2150. ZR X2,CFU19 IF DEMAND SATISFIABLE
  2151. SA5 CFUC GET EVSB ENTRY ADDRESS
  2152. SA4 X5 GET 9-TRACK DRIVE TYPE
  2153. SA1 CFUF RESET ORIGINAL EVSB ENTRY
  2154. SA2 A1+B1
  2155. BX6 X1
  2156. LX7 X2
  2157. SA6 X5
  2158. SA7 X5+B1
  2159. RJ SDT SWITCH 9-TRACK DRIVE TYPE
  2160. LX6 6
  2161. SX6 X6+B1
  2162. EQ CFU15 RESELECT WITH OPPOSITE DRIVE TYPE
  2163.  
  2164. CFU19 SA1 RI CHECK FOR TAPE EQUIPMENT
  2165. MX0 -6
  2166. BX1 -X0*X1
  2167. SX1 X1-RRPP
  2168. NG X1,CFU21 IF TAPE EQUIPMENT
  2169. SB5 RESB+RRPS-1 FIND EMPTY SHARE TABLE ENTRY
  2170. SB6 RESB+RRPS+RPSL
  2171. CFU20 SB5 B5+B1
  2172. EQ B5,B6,CFU23 IF END OF SHARE TABLE
  2173. SA1 B5
  2174. NZ X1,CFU20 IF NOT EMPTY ENTRY
  2175. SA2 CFUB MAKE SHARE TABLE ENTRY
  2176. BX7 X2
  2177. SA7 B5
  2178. CFU21 SA1 CFUE CHECK SATISFIABILITY
  2179. ZR X1,CFUX IF SATISFIABLE
  2180. SX2 /STATUS/OV FORCE OVERCOMMITMENT STATUS
  2181. EQ COMX RETURN OVERCOMMITMENT STATUS
  2182.  
  2183. CFU22 SX2 /STATUS/OK
  2184. EQ COMX RETURN OK STATUS ON PACKNAME DUPLICATE
  2185.  
  2186. CFU23 SB2 /PER/STE * SHARE TABLE ERROR.*
  2187. EQ PER PROCESS ERROR
  2188.  
  2189. CFU24 SB2 /PER/DEX * DEMAND EXCEEDED.*
  2190. EQ PER PROCESS ERROR
  2191.  
  2192. CFU25 SB2 /PER/EQN * EQUIPMENT NOT AVAILABLE.*
  2193. EQ PER PROCESS ERROR
  2194.  
  2195.  
  2196. CFUA VFD 36/6H ,24/0 SCRATCH VSN
  2197. CFUB CON 0 DEMAND EXCEEDED FLAG/SHARE TABLE ENTRY
  2198. CFUC CON 0 RDT ENTRY
  2199. CFUD CON 0 RDT+1 ENTRY
  2200. CFUE CON 0 SATISFIABILITY STATUS
  2201. CFUF BSS 2 ORIGINAL EVSB ENTRY
  2202. CIC SPACE 4,10
  2203. ** CIC - CHECK FOR INTERNAL CONFLICT.
  2204. *
  2205. * EXIT (X2) = 0, IF DEMANDS SATISFIABLE.
  2206. *
  2207. * ERROR TO *PNE*, IF ASSIGNS EXCEED DEMANDS.
  2208. *
  2209. * USES A - 1, 3.
  2210. * B - 2, 5.
  2211. * X - 1, 3.
  2212. *
  2213. * CALLS BRT, DDS, IAS.
  2214.  
  2215.  
  2216. CIC SUBR ENTRY/EXIT
  2217. SA3 JEEO GET JOB EJT ORDINAL
  2218. RJ IAS INITIALIZE ASSIGNMENTS FOR THIS JOB
  2219. SB2 RESB BUILD RDT FROM REMAINING DEMANDS
  2220. SB5 B0+
  2221. RJ BRT
  2222. SB2 /PER/AXD * JSQN ASSIGNS EXCEED DEMANDS.*
  2223. SA1 JEEO GET JOB EJT ORDINAL
  2224. NG X5,PNE IF ASSIGNS EXCEED DEMANDS (ERROR)
  2225. RJ DDS DETERMINE DEMAND SATISFACTION
  2226. EQ CICX RETURN
  2227. COE SPACE 4,15
  2228. ** COE - CHECK FOR *OFF* OR *DOWN* EQUIPMENT.
  2229. *
  2230. *
  2231. * ENTRY (X2) = *COM* RETURN STATUS.
  2232. *
  2233. * EXIT (X2) = *COM* RETURN STATUS.
  2234. * (X6) = *OFF* PREVIEW DISPLAY MESSAGE CODE IF *OFF* OR
  2235. * *DOWN* EQUIPMENT NEEDED TO SATISFY REQUEST.
  2236. *
  2237. * USES X - 1, 2, 3, 5, 6, 7.
  2238. * A - 2, 3, 6, 7.
  2239. * B - 4, 5, 6, 7.
  2240. *
  2241. * CALLS DDS, IAS.
  2242.  
  2243.  
  2244. COE SUBR ENTRY/EXIT
  2245. SX6 X2+
  2246. SA3 RQ BUILD RESOURCES DEMANDED TABLE
  2247. SA6 COEA SAVE STATUS FOR LATER
  2248. SA2 AL GET ACCESS LEVEL
  2249. MX5 -6
  2250. BX5 -X5*X3
  2251. SX6 X3+B1
  2252. ZR X5,COE1 IF TAPE REQUEST
  2253. SX2 B0+
  2254. SX6 X3-1R0 SET UNIT COUNT
  2255. COE1 LX2 35 POSITION POSSIBLE ACCESS LEVEL
  2256. LX6 42
  2257. BX7 X7-X7
  2258. BX6 X6+X2
  2259. MX3 0
  2260. SA6 COEB
  2261. SA7 A6+B1
  2262. SB6 A6 SET FWA OF DEMAND TABLE
  2263. SB7 B6+2 SET LWA+1 OF DEMAND TABLE
  2264. RJ IAS INITIALIZE ASSIGNMENTS
  2265. SX1 B1
  2266. SB4 RETL
  2267. SX3 B1+B1
  2268. SB5 B0+ CLEAR *OFF*/*DOWN* UNIT COUNT
  2269. COE2 SA2 RET-1+B4 GET RESOURCE EQUIPMENT TABLE ENTRY
  2270. SB4 B4-B1
  2271. BX6 X3*X2 ISOLATE *OFF*/*DOWN* FLAG
  2272. NG B4,COE3 IF FINISHED WITH RESOURCE EQUIPMENT TABLE
  2273. ZR X6,COE2 IF UNIT NOT *OFF*/*DOWN*
  2274. BX7 X2+X1 SET ASSIGNED FLAG
  2275. SB5 B5+B1 INCREMENT COUNT OF *OFF*/*DOWN* UNITS
  2276. SA7 A2
  2277. EQ COE2 CONTINUE PROCESSING
  2278.  
  2279. COE3 ZR B5,COE4 IF NO *OFF*/*DOWN* UNITS TO TEST
  2280. RJ DDS DETERMINE DEMAND SATISFACTION
  2281. SX6 B0+
  2282. ZR X2,COE4 IF DEMAND SATISFIED WITH ON UNITS
  2283. SX6 OFF SET *OFF*/*DOWN* EUIPMENT REQUIRED
  2284. COE4 SA2 COEA RESTORE RETURN STATUS
  2285. EQ COEX RETURN
  2286.  
  2287.  
  2288. COEA CON 0 *COM* RETURN STATUS
  2289. COEB CON 0,0 RESOURCES DEMANDED TABLE ENTRY FOR *DDS*
  2290. CRC SPACE 4,10
  2291. ** CRC - CHECK REQUESTOR COMPLETE.
  2292. *
  2293. * ENTRY (B2) = FWA DEMAND FILE ENTRY.
  2294. *
  2295. * EXIT (X5) = 0 IF REQUESTOR COMPLETE.
  2296. *
  2297. * USES A - 1.
  2298. * X - 1, 2, 5.
  2299.  
  2300.  
  2301. CRC SUBR ENTRY/EXIT
  2302. SA1 B2+RVAL CHECK TOTAL DEMAND SATISFIED
  2303. MX2 -12
  2304. BX5 -X2*X1 TOTAL DEMAND
  2305. LX1 -12
  2306. BX2 -X2*X1 TOTAL ASSIGNED
  2307. IX5 X5-X2
  2308. EQ CRCX RETURN
  2309. CRQ SPACE 4,25
  2310. ** CRQ - CHECK REQUEST.
  2311. *
  2312. * ENTRY ENVIRONMENT AND USER RESOURCE REQUEST BLOCK BUILT.
  2313. * (/CPA/RFCW) = DEMAND FILE INDEX.
  2314. * (EQ) = EQUIPMENT, IF SPECIFIED.
  2315. *
  2316. * EXIT REQUESTOR DEMAND FILE ENTRY IN RESB BUFFER.
  2317. * TO *COM4* IF ASSIGNMENT REJECTED DUE TO *MAGNET*
  2318. * IDLEDOWN.
  2319. * TO *COM6*, IF OPERATOR SELECTED WRONG UNIT ON
  2320. * DUPLICATE VSN.
  2321. *
  2322. * ERROR TO *PER*, IF DEMAND FILE ENTRY MISSING, VSN/EQUIPMENT
  2323. * ASSIGNMENT MISSING, DENSITY CONFLICT, OR
  2324. * EQUIPMENT NOT AVAILABLE.
  2325. *
  2326. * USES A - 1, 2, 3, 4, 6, 7.
  2327. * B - 2, 3, 5, 7.
  2328. * X - ALL.
  2329. *
  2330. * CALLS CAU, CRM, CRV, CTA, IDE, IRC, RDF, SPI.
  2331. *
  2332. * MACROS MOVE.
  2333.  
  2334.  
  2335. CRQ SUBR ENTRY/EXIT
  2336. SA2 RI GET RESOURCE INDEX
  2337. SA3 RQ CHECK REQUEST
  2338. MX4 -6
  2339. SB2 /PER/EQN * EQUIPMENT NOT AVAILABLE.*
  2340. BX4 -X4*X2 RESOURCE DEMAND ENTRY INDEX
  2341. MX0 42
  2342. SX4 X4-RRPP
  2343. BX5 X0*X3 VSN
  2344. SA1 EQ
  2345. ZR X1,CRQ3 IF EQUIPMENT NOT SPECIFIED
  2346. PL X4,PER IF REMOVABLE PACKS (ERROR)
  2347. MX0 -12
  2348. SB3 B1+B1
  2349. MX7 12
  2350. SA3 RETI GET RET/EVSB BEGINNING TAPE INDEX
  2351. LX3 1
  2352. SA3 EVSB-2+X3
  2353. SA4 RETE GET RET/EVSB ENDING INDEX
  2354. LX4 1
  2355. SB5 EVSB+X4
  2356. CRQ1 SA3 A3+B3 FIND EQUIPMENT IN EVSB
  2357. SB7 A3-B5
  2358. ZR B7,CRQ10 IF END OF EVSB
  2359. SA4 A3+B1
  2360. ZR X3,CRQ1 IF NO ENTRY
  2361. BX6 X1-X4
  2362. BX6 X7*X6
  2363. NZ X6,CRQ1 IF NO MATCH ON EST ORDINAL
  2364. BX6 -X0*X4
  2365. MX0 36
  2366. ZR X5,CRQ2 IF NOT DUPLICATE VSN
  2367. BX0 X0*X3 CHECK FOR MATCHING VSN
  2368. BX0 X0-X5
  2369. NZ X0,COM6 IF WRONG UNIT ASSIGNED
  2370. CRQ2 NZ X6,CRQ9 IF ALREADY ASSIGNED
  2371. SX0 X2
  2372. SX5 X3
  2373. SA2 OI GET ORIGINAL NT TAPE DENSITY INDEX
  2374. RJ CRM CHECK FOR RESOURCE MATCH
  2375. SB2 /PER/DEC * NT DENSITY CONFLICT.*
  2376. NZ X7,CRQ9 IF DENSITY CONFLICT
  2377. MX1 36
  2378. BX6 X1*X3
  2379. SA4 RQ ENTER DEFAULT VSN INTO REQUEST
  2380. SA6 IVSN SET INTERNAL VSN
  2381. SA6 EVSN SET EXTERNAL VSN
  2382. BX4 -X1*X4
  2383. BX6 X6+X4
  2384. SA6 A4
  2385. EQ CRQ4 GET DEMAND FILE ENTRY
  2386.  
  2387. CRQ3 SA1 AA
  2388. ZR X1,CRQ4 IF OPERATOR TO ASSIGN EQUIPMENT
  2389. SB2 /PER/MVE * MISSING VSN OR EQUIPMENT ASSIGNMENT.*
  2390. ZR X5,PER IF VSN NOT SPECIFIED (ERROR)
  2391. CRQ4 RJ IDE INITIALIZE DEMAND ENTRY
  2392. RJ RDF READ DEMAND FILE
  2393. SA1 /CPA/RFCW
  2394. SX1 X1
  2395. SB2 /PER/MDE * MISSING DEMAND FILE ENTRY.*
  2396. ZR X1,PER IF NO DEMAND FILE ENTRY
  2397. MOVE RDEL,DBUF,RESB COPY DEMAND FILE ENTRY
  2398. SA1 RESB+RVAL CHECK FOR LOST TAPES
  2399. SX4 RESB DEMAND FILE ENTRY ADDRESS
  2400. LX1 59-53
  2401. PL X1,CRQ5 IF NO TAPE ASSIGNMENT LOST
  2402. SB5 B0 GET MAGNETIC TAPE ASSIGNED COUNT
  2403. RJ CTA
  2404. SB2 /PER/PTL * PRIOR TAPE ASSIGNMENT LOST.*
  2405. NZ B3,PER IF LOST TAPES NOT RETURNED
  2406. MX2 1
  2407. SA1 RESB+RVAL CLEAR TAPE ASSIGNMENT LOST FLAG
  2408. LX2 53-59
  2409. BX6 -X2*X1
  2410. SA6 A1
  2411. CRQ5 SA3 JEEO GET JOB EJT ORDINAL
  2412. RJ CAU COUNT ASSIGNED UNITS
  2413. NZ B3,CRQ6 IF RESOURCES ASSIGNED
  2414. SA1 MIDI CHECK FOR *MAGNET* IDLEDOWN
  2415. NG X1,COM4 IF IDLEDOWN REQUESTED
  2416. CRQ6 NZ X7,CRQ7 IF DEMAND SPECIFIED
  2417. SB5 B1 INCREMENT TOTAL AND RESOURCE DEMAND COUNTS
  2418. SX7 B1 SET DEFAULT DEMAND INDICATOR
  2419. SA7 DFDI
  2420. RJ IRC
  2421. RJ CRV CHECK RESOURCE VALIDATION
  2422. CRQ7 RJ SPI SET DEMAND FILE PREVIEW INFORMATION
  2423. EQ CRQX RETURN
  2424.  
  2425. * PROCESS TAPE UNIT ALREADY ASSIGNED OR DENSITY CONFLICT.
  2426.  
  2427. CRQ9 SA1 AA
  2428. NG X1,COM6 IF DUPLICATE VSN CHOICE
  2429. NZ X1,PER IF *ASSIGN* WITH EST ORDINAL SPECIFIED
  2430. CRQ9.1 SX6 B0+ CLEAR OPERATOR ASSIGNED EQUIPMENT
  2431. SA6 EQ
  2432. EQ CRQ4 COMPLETE CHECKS BEFORE EQUIPMENT REQUEST
  2433.  
  2434. * PROCESS TAPE NOT MOUNTED.
  2435.  
  2436. CRQ10 SA3 AA
  2437. ZR X3,CRQ9.1 IF OPERATOR ASSIGNMENT OF EQUIPMENT
  2438. NG X3,COM6 IF DUPLICATE VSN CHOICE
  2439. EQ PER ABORT WITH EQUIPMENT NOT AVAILABLE
  2440. DEI SPACE 4,15
  2441. ** DEI - DEMAND EXCEEDS INSTALLATION CHECK.
  2442. *
  2443. * ENTRY RESOURCE ENVIRONMENT BUILT.
  2444. * USER RESOURCE REQUEST BLOCK BUILT.
  2445. *
  2446. * EXIT TO CALLER IF SUFFICIENT RESOURCES PRESENT.
  2447. * TO *PER*, IF SUFFICIENT RESOURCES NOT PRESENT.
  2448. *
  2449. * USES B - 2, 5.
  2450. *
  2451. * CALLS BRT, DDS.
  2452.  
  2453.  
  2454. DEI SUBR ENTRY/EXIT
  2455. SB2 RESB BUILD RDT FROM TOTAL DEMANDS
  2456. SB5 B1+
  2457. RJ BRT BUILD RESOURCE DEMAND TABLE
  2458. RJ DDS DETERMINE DEMAND SATISFACTION
  2459. ZR X2,DEIX IF RESOURCE DEMAND SATISFIABLE
  2460. SB2 /PER/IRS * INSUFFICIENT RESOURCES ON SYSTEM.*
  2461. EQ PER PROCESS ERROR
  2462. OCA SPACE 4,20
  2463. ** OCA - OVERCOMMITMENT ALGORITHM.
  2464. *
  2465. * ENTRY ENVIRONMENT BUILT.
  2466. * USER RESOURCE REQUEST BLOCK BUILT.
  2467. *
  2468. * EXIT (X5) = 0 IF OVERCOMMITMENT.
  2469. *
  2470. * ERROR TO *PER*, IF SCRATCH FILE ERROR OR NEGATIVE SHARE
  2471. * COUNT.
  2472. * TO *PNE*, IF ASSIGNS EXCEED DEMANDS OR SHARE TABLE
  2473. * ERROR.
  2474. *
  2475. * USES A - 1, 2, 3, 6, 7.
  2476. * B - 2, 3, 5, 6, 7.
  2477. * X - ALL.
  2478. *
  2479. * CALLS BRT, CRC, DDS, IAS.
  2480. *
  2481. * MACROS READ, READW, REWIND, WRITER, WRITEW.
  2482.  
  2483.  
  2484. OCA SUBR ENTRY/EXIT
  2485. WRITEW S1,RESB,RDEL ENTER REQUESTOR ON SCRATCH FILE
  2486. WRITER S1,R
  2487. SA1 NS1 INCREMENT JOB COUNT
  2488. SX6 X1+B1
  2489. SA6 A1
  2490. OCA1 SX7 B0+ CLEAR JOBS WRITTEN ON SCRATCH 2 COUNTER
  2491. SA7 NS2
  2492. REWIND S2
  2493. REWIND S1
  2494. READ X2,R
  2495.  
  2496. OCA2 READW S1,BUF,RDEL READ SCRATCH 1 ENTRY
  2497. NZ X1,OCA9 IF EOR
  2498. SA3 BUF+RJID GET JOB EJT ORDINAL
  2499. SB2 /PER/RSF * RESOURCE SCRATCH FILE ERROR.*
  2500. ZR X3,PER IF NO JOB (ERROR)
  2501. BX3 X3-X3
  2502. RJ IAS INITIALIZE ASSIGNMENTS
  2503. SB2 BUF
  2504. RJ CRC CHECK REQUEST COMPLETE
  2505. ZR X5,OCA3 IF TOTAL ASSIGNED = TOTAL DEMAND
  2506. SB5 B0+ BUILD RDT FROM REMAINING DEMANDS
  2507. RJ BRT
  2508. SB2 /PER/AXD * JSQN ASSIGNS EXCEED DEMANDS.*
  2509. NG X5,OCA8 IF ASSIGNS EXCEED DEMANDS (ERROR)
  2510. RJ DDS DETERMINE DEMAND SATISFACTION
  2511. ZR X2,OCA3 IF JOB COMPLETES
  2512. WRITEW S2,BUF,RDEL COPY ENTRY TO SCRATCH 2
  2513. SA1 NS2 ADVANCE NUMBER OF JOBS
  2514. SX7 X1+B1
  2515. SA7 A1
  2516. EQ OCA2
  2517.  
  2518. * ADJUST ENVIRONMENT ON COMPLETED JOB.
  2519. * RELEASE TAPES ASSIGNED TO THIS JOB.
  2520.  
  2521. OCA3 SA1 RETI GET RET/EVSB TAPE INDEX
  2522. LX1 1
  2523. SB3 EVSB+X1
  2524. SA3 RETE GET RET/EVSB ENDING INDEX
  2525. LX3 1
  2526. SB6 EVSB+X3
  2527. SB7 B3 END OF REMOVABLE PACK ENTRIES
  2528. SA3 BUF+RJID GET JOB EJT ORDINAL
  2529. MX4 -6
  2530. SB2 /PER/REV * RESOURCE ENVIRONMENT ERROR.*
  2531. SB5 RRPS+RPSL-1
  2532. OCA4 EQ B3,B6,OCA5 IF END OF ENTRIES
  2533. SA1 B3
  2534. MX0 -12
  2535. SB3 B3+2
  2536. ZR X1,OCA4 IF EMPTY ENTRY
  2537. SA2 A1+B1
  2538. BX5 X3-X2
  2539. BX5 -X0*X5
  2540. NZ X5,OCA4 IF NOT ASSIGNED TO THIS JOB
  2541. BX1 -X4*X1 GET RESOURCE INDEX
  2542. MX0 1
  2543. SX1 X1-RRPP
  2544. PL X1,PER IF NOT MAGNETIC TAPE
  2545. LX0 35-59
  2546. BX6 -X0*X2 CLEAR PHYSICALLY ASSIGNED BIT
  2547. SA6 A2
  2548. EQ OCA4 CONTINUE SCAN OF ENVIRONMENT
  2549.  
  2550. * CHECK REMOVABLE PACK SHARING.
  2551.  
  2552. OCA5 SA1 B5+BUF
  2553. SX5 B5-RRPS
  2554. NG X5,OCA2 IF SHARE TABLE COMPLETE
  2555. SB5 B5-B1
  2556. MX0 -12
  2557. ZR X1,OCA5 IF NO SHARED ENTRY
  2558. SB6 EVSB
  2559. SB2 B1+B1
  2560. SB3 -B1
  2561. MX7 1
  2562. LX7 35-59
  2563.  
  2564. * DECREMENT USER COUNT ON SHARED PACK.
  2565.  
  2566. OCA6 EQ B6,B7,OCA7 IF NO MATCHING EVSB ENTRY
  2567. SA3 B6
  2568. SB6 B6+B2
  2569. ZR X3,OCA6 IF EMPTY ENTRY
  2570. BX5 X3-X1
  2571. AX5 18
  2572. NZ X5,OCA6 IF NO MATCH
  2573. SA3 A3+B1 DECREMENT SHARE COUNT
  2574. LX3 24
  2575. BX5 -X0*X3
  2576. BX6 X0*X3
  2577. SX5 X5+B3
  2578. BX6 X5+X6
  2579. SB2 /PER/RNS * RESOURCE NEGATIVE SHARE COUNT.*
  2580. NG X5,PER IF SHARE COUNT NEGATIVE
  2581. LX6 -24
  2582. SA6 A3
  2583. NZ X5,OCA5 IF MORE SHARERS
  2584. BX6 -X7*X6 CLEAR PHYSICALLY ASSIGNED BIT
  2585. SA6 A6
  2586. EQ OCA5 CONTINUE SCAN OF SHARE TABLE
  2587.  
  2588. OCA7 SB2 /PER/STM * JSQN SHARE TABLE MISMATCH.*
  2589. OCA8 SA1 BUF+RJID GET JOB EJT ORDINAL
  2590. EQ PNE PROCESS NAMED ERROR
  2591.  
  2592. * CLOSE SCRATCH 2 FILE.
  2593.  
  2594. OCA9 SA1 NS1
  2595. SA2 A1+B1
  2596. IX5 X1-X2
  2597. ZR X5,OCAX IF NO JOBS COMPLETED ON THIS PASS
  2598. ZR X2,OCAX IF NO MORE JOBS
  2599.  
  2600. * SWAP SCRATCH 1 AND SCRATCH 2.
  2601.  
  2602. WRITER S2,R
  2603. REWIND S1,R
  2604. REWIND S2,R
  2605. SA2 X2
  2606. SA1 S1
  2607. BX6 X2
  2608. LX7 X1
  2609. SA6 A1
  2610. SA1 NS2
  2611. SA7 A2
  2612. BX7 X1
  2613. SA7 NS1
  2614. EQ OCA1 REPEAT LOOP
  2615.  
  2616.  
  2617. NS1 CON 0 NUMBER OF JOBS IN SCRATCH 1
  2618. NS2 CON 0 NUMBER OF JOBS IN SCRATCH 2
  2619. TITLE OVERCOMMITMENT UTILITY SUBROUTINES.
  2620. CAU SPACE 4,20
  2621. ** CAU - COUNT ASSIGNED UNITS.
  2622. *
  2623. * ENTRY (X3) = 48/,12/ JOB EJT ORDINAL.
  2624. * (X4) = DEMAND ENTRY ADDRESS.
  2625. *
  2626. * EXIT ASSIGNED UNITS COUNTED FOR TAPES AND PACKS.
  2627. * (B3) = ASSIGNED COUNT.
  2628. * (X7) = TOTAL DEMAND COUNT.
  2629. *
  2630. * ERROR TO *PNE*, IF INDIVIDUAL RESOURCE ASSIGNED COUNT
  2631. * ERROR.
  2632. *
  2633. * USES A - 1, 2, 5, 6, 7.
  2634. * B - 2, 3, 4, 5, 6, 7.
  2635. * X - 0, 1, 2, 3, 5, 6, 7.
  2636. *
  2637. * CALLS CRM, CTA.
  2638.  
  2639.  
  2640. CAU9 SB5 -B1 COUNT TOTAL ASSIGNS AND DEMANDS
  2641. RJ CTA
  2642.  
  2643. CAU SUBR ENTRY/EXIT
  2644. SX6 B1
  2645. LX6 36 POSITION RESERVATION INCREMENT
  2646. SA2 X4+RVAL CHECK FOR LOST TAPES
  2647. LX2 59-53
  2648. NG X2,CAU4 IF TAPE ASSIGNMENT LOST
  2649. SB3 RMTP+RMTL SET TAPE STARTING POSITION
  2650. SA5 RETI GET RET/EVSB TAPE INDEX
  2651. SA1 RETE GET RET/EVSB ENDING INDEX
  2652. LX5 1
  2653. LX1 1
  2654. SB6 EVSB+X1
  2655. SB7 EVSB+X5
  2656.  
  2657. * CHECK MAGNETIC TAPES.
  2658.  
  2659. CAU0 SB3 B3-B1
  2660. SA0 B3-B1
  2661. SB4 RPEW*2*100B RESOURCE BYTE POSITION
  2662. SB2 6
  2663. CAU1 SA2 X4+B3 RESOURCE DEMAND ENTRY
  2664. MX0 -6
  2665. AX2 B2
  2666. BX5 -X0*X2 ASSIGNED COUNT
  2667. ZR X5,CAU3 IF NO ASSIGN COUNT
  2668. SX0 A0+B4
  2669. SB5 X5
  2670. SA5 B7-B1
  2671. CAU2 SA1 A5+B1 READ EVSB ENTRIES
  2672. SX7 A1-B6
  2673. ZR X7,CAU8 IF EVSB SCAN COMPLETE
  2674. SA5 A1+B1
  2675. ZR X1,CAU2 IF EMPTY ENTRY
  2676. BX7 X6*X5
  2677. NZ X7,CAU2 IF UNIT ALREADY RESERVED
  2678. BX7 X3-X5
  2679. MX2 -12
  2680. BX7 -X2*X7
  2681. SX5 X1
  2682. NZ X7,CAU2 IF NO MATCH ON JOB ASSIGNMENT
  2683. SX2 RPEP FORCE *GE* EQUIPMENT MATCH FOR *NT*
  2684. RJ CRM CHECK FOR MATCHING RESOURCES
  2685. NZ X7,CAU2 IF WRONG RESOURCE TYPE
  2686. SA5 A5 INDICATE RESERVED
  2687. BX7 X5+X6
  2688. SA7 A5
  2689. SB5 B5-B1
  2690. NZ B5,CAU2 IF MORE RESOURCES
  2691. CAU3 SB4 B4-100B DECREMENT RESOURCE BYTE POSITION
  2692. SB5 RPEW*100B
  2693. SB2 B2+12
  2694. ZR B4,CAU3.1 IF END OF THIS RESOURCE
  2695. NE B4,B5,CAU1 IF CONTINUE SAME RESOURCE WORD
  2696. SB3 B3-B1 PROCESS FIRST WORD OF RESOURCE
  2697. SB2 6
  2698. EQ CAU1 PROCESS RESOURCE
  2699.  
  2700. CAU3.1 SB5 RMTP FIRST TAPE ENTRY
  2701. NE B3,B5,CAU0 IF MORE TAPES TO PROCESS
  2702.  
  2703. * COUNT ASSIGNED PACKS.
  2704.  
  2705. CAU4 SB5 RPSL SHARE TABLE LENGTH
  2706. SA1 RRPS-1+X4
  2707. EQ CAU6 SCAN SHARE TABLE
  2708.  
  2709. CAU5 BX7 X7-X7 CLEAR ENTRY
  2710. SA7 A1
  2711. CAU6 ZR B5,CAU9 IF END OF SHARE TABLE
  2712. SA1 A1+B1
  2713. SB5 B5-B1
  2714. ZR X1,CAU6 IF NO ENTRY
  2715. SA2 EVSB-2
  2716. CAU7 SA2 A2+2
  2717. BX7 X2-X1
  2718. SX5 A2-B7
  2719. ZR X5,CAU8 IF END OF EVSB
  2720. ZR X2,CAU7 IF EMPTY ENTRY
  2721. NZ X7,CAU7 IF NO MATCH ON PACKNAME OR RESOURCE INDEX
  2722. SA5 A2+B1
  2723. IX7 X5+X6 COUNT AS SHARED
  2724. SA7 A5
  2725. EQ CAU6 CONTINUE SCAN OF SHARE TABLE
  2726.  
  2727. CAU8 SB2 /PER/MAR * JSQN MISSING RESOURCE.*
  2728. SA1 X4+RJID GET JOB EJT ORDINAL
  2729. EQ PNE PROCESS NAMED ERROR
  2730. DDS SPACE 4,20
  2731. ** DDS - DETERMINE DEMAND SATISFACTION.
  2732. *
  2733. * ENTRY (B6) = FWA OF RESOURCES DEMANDED TABLE (*RDT* FORMAT).
  2734. * (B7) = LWA+1 OF RESOURCES DEMANDED TABLE.
  2735. *
  2736. * EXIT (X2) = 0 IF DEMAND SATISFIABLE.
  2737. *
  2738. * ERROR TO *PER*, IF ENVIRONMENT ERROR.
  2739. *
  2740. * USES A - ALL.
  2741. * B - 2, 3, 4, 5, 6.
  2742. * X - ALL.
  2743. *
  2744. * CALLS GRL.
  2745.  
  2746.  
  2747. DDS SUBR ENTRY/EXIT
  2748.  
  2749. * AN ATTEMPT IS MADE TO ASSIGN EQUIPMENTS AS FOLLOWS-
  2750. *
  2751. * 1. RESOURCE DEMANDS ARE SATISFIED WITH LARGER MULTI-SPINDLE
  2752. * DEMANDS FIRST, TAPES LAST.
  2753. *
  2754. * 2. THE DEMAND IS SATISFIED BY A SINGLE EQUIPMENT WITH A *BEST
  2755. * FIT* DETERMINED BY THE LARGEST SPINDLE RESIDUE.
  2756. *
  2757. * 3. THE DEMAND IS SATISFIED BY A CHAIN OF EQUIPMENTS WITH NO
  2758. * REGARD TO SPINDLE OR EQUIPMENT RESIDUE AS A CRITERION FOR
  2759. * A *BEST FIT*.
  2760. *
  2761. * 4. IF A RESOURCE DEMAND CANNOT BE SATISFIED, THEN THE
  2762. * PREVIOUS DEMAND SATISFACTION IS NEGATED AND RETRIED (STEP
  2763. * 2). THIS IS DONE UNTIL ALL POSSIBLE CHAINS HAVE BEEN
  2764. * ATTEMPTED FOR ALL DEMANDED RESOURCES.
  2765.  
  2766. SA2 RETE GET RET ENDING INDEX
  2767. SB3 RET+X2
  2768. DDS1 BX2 X2-X2
  2769. SA1 B6 READ RESOURCES DEMANDED TABLE ENTRY
  2770. EQ B6,B7,DDSX IF COMPLETED
  2771. BX7 X1
  2772. AX7 48
  2773. SB4 TRSLL2
  2774. RJ GRL GET RESOURCE LIST INDEX
  2775. SB4 -B4
  2776. SX7 X7-2RPE
  2777. SA0 B1
  2778. NZ X7,DDS2 IF NOT *PE* REQUEST
  2779. SA0 -TRHD SATISFY WITH *HD* OR *GE* EQUIPMENT
  2780. DDS2 SB2 RET+1 FIND SINGLE EQUIPMENT WHICH MEETS DEMAND
  2781. SA3 A1+B1
  2782. SX6 -B1
  2783. BX7 X7-X7
  2784. SA6 TDDS CLEAR TEMPORARIES
  2785. SA7 A6+B1
  2786. BX4 X1
  2787. MX5 -6
  2788. LX4 18
  2789. BX4 -X5*X4 NUMBER OF UNITS REQUIRED
  2790. MX5 12
  2791. BX5 X5*X3 ORIGINAL EQUIPMENT
  2792. ZR X5,DDS3 IF FIRST ATTEMPT TO SATISFY
  2793. SA5 DDSA SET STARTING POSITION
  2794. SB2 X5+RET+1
  2795. DDS3 SA2 B2
  2796. GE B2,B3,DDS5 IF END OF RESOURCE EQUIPMENT TABLE
  2797. SB2 B2+B1
  2798. LX7 X2,B1
  2799. BX5 X1-X2
  2800. LX2 -1
  2801. NG X2,DDS3 IF LOGICALLY ASSIGNED
  2802. AX5 48
  2803. PL X5,DDS4 IF NOT RESOURCE LIST INDEX
  2804. AX7 49
  2805. SX5 X7+B4
  2806. SB5 A0+
  2807. GT B5,DDS4 IF NOT *PE* REQUEST
  2808. ZR X5,DDS4 IF MATCH
  2809. SX5 X7+B5
  2810. DDS4 LX2 -5
  2811. NZ X5,DDS3 IF NO MATCH
  2812. SX0 B2-RET-1
  2813. SA5 RETI TAPE BEGINNING INDEX
  2814. IX5 X0-X5
  2815. NG X5,DDS4.0 IF NOT A TAPE ENTRY
  2816. RJ CLM CHECK LEVEL MATCH
  2817. NG X0,DDS3 IF LEVELS DO NOT MATCH
  2818. DDS4.0 MX5 -3
  2819. BX5 -X5*X2
  2820. SX5 X5+B1
  2821. IX6 X5-X4
  2822. NG X6,DDS3 IF INSUFFICIENT UNITS
  2823. SA5 A6
  2824. IX5 X6-X5
  2825. NG X5,DDS3 IF NOT BEST RESIDUE
  2826. ZR X5,DDS3 IF SAME RESIDUE
  2827. SA6 A6 SAVE UNIT COUNT RESIDUE
  2828. SX7 A2 SAVE RET ADDRESS
  2829. SA7 A7
  2830. EQ DDS3 LOOP FOR BEST RESIDUE
  2831.  
  2832. DDS5 SA5 A7
  2833. ZR X5,DDS6 IF SINGLE EQUIPMENT ENTRY NOT FOUND
  2834. SA4 X5 LOGICALLY ASSIGN
  2835. SX7 B1
  2836. BX7 X7+X4
  2837. SA7 A4
  2838. SX6 A4-RET RET INDEX
  2839. LX6 27
  2840. EQ DDS18 CHECK FOR FIRST ATTEMPT TO SATISFY
  2841.  
  2842.  
  2843. * ATTEMPT TO SATISFY DEMAND WITH CHAINED EQUIPMENT.
  2844.  
  2845. DDS6 SB2 RET+1
  2846. MX5 12
  2847. BX5 X5*X3
  2848. ZR X5,DDS7 IF FIRST ATTEMPT TO SATISFY
  2849. SA5 DDSA SET STARTING POSITION
  2850. SB2 X5+RET+1
  2851. DDS7 LX4 X1
  2852. BX7 X7-X7
  2853. LX4 18
  2854. MX2 -6
  2855. BX4 -X2*X4 NUMBER OF UNITS REQUIRED
  2856. SA7 DDSB CLEAR LDAM CONTROL
  2857. CLEAR TDDS,TDDSL CLEAR EQUIPMENT CHAIN TABLE
  2858. DDS8 SA2 B2 READ RESOURCE EQUIPMENT TABLE ENTRY
  2859. GE B2,B3,DDS12 IF END OF TABLE
  2860. SB2 B2+B1
  2861. BX5 X1-X2
  2862. LX7 X2,B1
  2863. LX2 59-0
  2864. NG X2,DDS8 IF LOGICALLY ASSIGNED
  2865. AX5 48
  2866. PL X5,DDS9 IF NOT RESOURCE LIST INDEX
  2867. AX7 49
  2868. SX5 X7+B4
  2869. SB5 A0+
  2870. GT B5,DDS9 IF NOT *PE* REQUEST
  2871. ZR X5,DDS9 IF MATCH
  2872. SX5 X7+B5
  2873. DDS9 NZ X5,DDS8 IF NO MATCH
  2874. SX0 B2-RET-1
  2875. SA5 RETI TAPE BEGINNING INDEX
  2876. IX5 X0-X5
  2877. NG X5,DDS9.0 IF NOT A TAPE ENTRY
  2878. RJ CLM CHECK LEVEL MATCH
  2879. NG X0,DDS8 IF LEVELS DO NOT MATCH
  2880. DDS9.0 BX7 X2
  2881. LX7 59-3-59+0
  2882. PL X7,DDS11 IF NOT LDAM EQUIPMENT
  2883. LX7 12-59+3
  2884. MX0 12
  2885. BX7 X0*X7 CHANNELS
  2886. SX6 B2-B1 SET STARTER
  2887. SA5 DDSB COMPARE CHANNELS
  2888. NZ X5,DDS10 IF STARTER CHOSEN
  2889. BX6 X7+X6
  2890. SA6 A5
  2891. EQ DDS11 CHECK NUMBER OF UNITS
  2892.  
  2893. DDS10 BX5 X0*X5
  2894. BX0 X5-X7
  2895. ZR X0,DDS11 IF CHANNELS MATCH
  2896. MX0 6 INTERCHANGE CHANNELS
  2897. BX6 X0*X7
  2898. LX7 6
  2899. BX7 X0*X7
  2900. LX6 -6
  2901. BX7 X7+X6
  2902. BX0 X5-X7
  2903. NZ X0,DDS12 IF CHANNELS DO NOT MATCH
  2904. DDS11 LX2 -6-59+0+60 GET ORIGINAL SPINDLES
  2905. MX5 -3
  2906. BX5 -X5*X2
  2907. SX5 X5+B1
  2908. SX7 A2-RET RET INDEX
  2909. IX4 X4-X5
  2910. SA7 A7+B1 ENTER CHAIN
  2911. ZR X4,DDS15 IF DEMAND SATISFIED
  2912. NG X4,DDS15 IF DEMAND SATISFIABLE
  2913. LX2 -30
  2914. SA5 DDSB CHECK LDAM CONTROL
  2915. ZR X5,DDS13 IF NOT LDAM EQUIPMENT
  2916. DDS12 LT B2,B3,DDS8 IF NOT END OF TABLE
  2917. SA5 DDSB CHECK LDAM CONTROL
  2918. ZR X5,DDS21 IF STARTER NEVER SELECTED
  2919. SB2 X5+B1 ADVANCE STARTING POSITION
  2920. GE B2,B3,DDS21 IF TABLE EXCEEDED
  2921. JP DDS7 CONTINUE WITH NEXT TABLE POSITION
  2922.  
  2923. DDS13 MX6 12
  2924. BX5 X6*X2 NEXT EQUIPMENT
  2925. ZR X5,DDS7 IF END OF CHAIN
  2926. SA2 RET
  2927. DDS13.1 SB5 A2+B1
  2928. EQ B5,B3,DDS25 IF EQUIPMENT NOT IN RET
  2929. SA2 A2+B1
  2930. LX2 -24
  2931. BX7 X6*X2
  2932. BX7 X7-X5
  2933. NZ X7,DDS13.1 IF NOT MATCHING EQUIPMENT
  2934. LX2 24
  2935. BX5 X2-X1
  2936. LX7 X2,B1
  2937. AX5 48
  2938. LX2 -1
  2939. NG X2,DDS7 IF LOGICALLY ASSIGNED (PREMATURE ENDCHAIN)
  2940. PL X5,DDS14 IF NOT RESOURCE LIST INDEX
  2941. AX7 49
  2942. SX5 X7+B4
  2943. SB5 A0+
  2944. GT B5,DDS14 IF NOT *PE* REQUEST
  2945. ZR X5,DDS11 IF MATCH
  2946. SX5 X7+B5
  2947. DDS14 NZ X5,DDS25 IF NO MATCH (ERROR)
  2948. EQ DDS11 CONTINUE WITH NEXT CHAINED EQUIPMENT
  2949.  
  2950. DDS15 SB4 4
  2951. SB5 B4+B4
  2952. BX6 X6-X6
  2953. DDS16 SB4 B4+B1
  2954. SA4 TDDS+B4
  2955. SX7 B1
  2956. ZR X4,DDS17 IF NO EQUIPMENT
  2957. SA2 RET+X4 INDICATE EQUIPMENT LOGICALLY ASSIGNED
  2958. BX7 X2+X7
  2959. SA7 A2
  2960. DDS17 LX6 9
  2961. BX6 X6+X4
  2962. NE B4,B5,DDS16 IF MORE *RET* INDICES TO ENTER
  2963. SB5 B5-4
  2964. ZR B5,DDS18 IF ALL CHAINED EQUIPMENTS PROCESSED
  2965. BX3 X3+X6
  2966. BX6 X6-X6
  2967. SB5 4
  2968. SB4 B0
  2969. EQ DDS16 CONTINUE CHAINING EQUIPMENTS
  2970.  
  2971. DDS18 BX6 X1+X6 SAVE EQUIPMENT CHAIN
  2972. LX7 X3
  2973. SA6 A1 UPDATE RDT ENTRY
  2974. SA7 A3
  2975. MX4 12
  2976. BX4 X4*X3 GET ORIGINAL EQUIPMENT
  2977. LX6 -27 GET FIRST EQUIPMENT
  2978. MX7 -9
  2979. BX7 -X7*X6
  2980. LX7 48
  2981. NZ X4,DDS20 IF NOT FIRST ATTEMPT
  2982. BX7 X7+X3
  2983. SA7 A3
  2984. DDS19 SX7 B0+ CLEAR STARTING POSITION
  2985. SB6 B6+2 ADVANCE POINTER
  2986. SA7 DDSA
  2987. EQ DDS1 LOOP FOR ALL DEMANDED RESOURCES
  2988.  
  2989. DDS20 BX5 X4-X7
  2990. NZ X5,DDS19 IF NOT ORIGINAL EQUIPMENT
  2991.  
  2992.  
  2993. * ALGORITHM MAY HAVE SELECTED A FIRST EQUIPMENT THAT CAUSES
  2994. * UNSATISFACTION WHEN IN FACT SATISFACTION IS POSSIBLE.
  2995. *
  2996. * BACKUP AND TRY ANOTHER CHAIN.
  2997.  
  2998.  
  2999. DDS21 SB4 RDT
  3000. SA2 B6 READ CURRENT DEMANDED RESOURCE
  3001. MX0 -9
  3002. SB6 B6-2
  3003. LT B6,B4,DDS24 IF FIRST RESOURCE (NO BACKUP POSSIBLE)
  3004. SA1 B6 CHECK IF SAME EQUIPMENT
  3005. BX5 X2-X1
  3006. AX5 48
  3007. NZ X5,DDS24 IF PREVIOUS RESOURCE NOT SAME TYPE
  3008. MX4 59
  3009. MX3 24
  3010. BX6 X3*X1 CLEAR EQUIPMENTS
  3011. SA6 A1
  3012. SB4 4
  3013. LX1 -27
  3014. BX7 -X0*X1 FIRST EQUIPMENT INDEX
  3015. SA7 DDSA SET STARTING POSITION
  3016. DDS22 BX6 -X0*X1 EQUIPMENT INDEX
  3017. ZR X6,DDS1 IF END OF EQUIPMENTS
  3018. SB4 B4-B1
  3019. SA2 RET+X6 GET RESOURCE EQUIPMENT TABLE ENTRY
  3020. LX1 9
  3021. BX6 X4*X2 CLEAR LOGICALLY ASSIGNED BIT
  3022. SA6 A2
  3023. NZ B4,DDS22 IF MORE ENTRIES IN FIRST WORD
  3024. SA1 A1+B1
  3025. BX6 X3*X1 CLEAR EQUIPMENTS
  3026. BX1 -X3*X1
  3027. SA6 A1
  3028. LX1 -27
  3029. EQ DDS22 LOOP FOR ALL CHAINED EQUIPMENTS
  3030.  
  3031. DDS24 SX2 B1 SET ERROR STATUS
  3032. EQ DDSX RETURN
  3033.  
  3034. DDS25 SB2 /PER/REV * RESOURCE ENVIRONMENT ERROR.*
  3035. EQ PER PROCESS ERROR
  3036.  
  3037.  
  3038. DDSA CON 0 STARTING POSITION
  3039. DDSB CON 0 LDAM CONTROL
  3040. DLY SPACE 4,10
  3041. ** DLY - DELAY.
  3042. *
  3043. * DLY DELAYS 2 SECONDS FOR MAGNET TO FINISH ACTIVE
  3044. * OPERATIONS BEFORE CONTINUING RESEX PROCESSING.
  3045. *
  3046. * USES A - 1, 2.
  3047. * X - 1, 2.
  3048. *
  3049. * MACROS RECALL, RTIME.
  3050.  
  3051.  
  3052. DLY SUBR ENTRY/EXIT
  3053. RTIME DLYB GET START TIME
  3054. DLY1 RECALL
  3055. RTIME DLYB+1 GET CURRENT TIME
  3056. SA1 DLYB CHECK FOR DELAY COMPLETE
  3057. SA2 A1+B1
  3058. IX2 X2-X1 CALCULATE ELAPSED TIME IN MILLISECONDS
  3059. SX2 X2-2000
  3060. NG X2,DLY1 IF NOT SUFFICIENT DELAY
  3061. JP DLYX RETURN
  3062.  
  3063.  
  3064. DLYB CON 0,0 TIME TEMPORARIES
  3065. IAS SPACE 4,15
  3066. ** IAS - INITIALIZE ASSIGNMENTS.
  3067. *
  3068. * ENTRY (X3) = 0, IF ALL PHYSICALLY ASSIGNED EQUIPMENTS TO
  3069. * BE LOGICALLY ASSIGNED.
  3070. * (X3) = JOB EJT ORDINAL, IF PHYSICALLY ASSIGNED.
  3071. * EQUIPMENTS FOR THIS JOB TO BE LOGICALLY ASSIGNED.
  3072. *
  3073. * EXIT LOGICALLY ASSIGNED BITS SET FOR PHYSICALLY ASSIGNED
  3074. * EQUIPMENTS.
  3075. *
  3076. * USES A - 2, 5, 7.
  3077. * B - 2, 3, 5.
  3078. * X - 0, 2, 4, 5, 7.
  3079. *
  3080. * MACROS CLEAR.
  3081.  
  3082.  
  3083. IAS SUBR ENTRY/EXIT
  3084. CLEAR RET,RETL,-1 CLEAR LOGICALLY ASSIGNED BITS
  3085. SA2 RETE GET RET/EVSB ENDING INDEX
  3086. SB2 RET+X2
  3087. LX2 1
  3088. SX4 B1
  3089. SB3 EVSB
  3090. MX0 -12
  3091. SB5 B3+X2
  3092. IAS1 SA2 B3+B1
  3093. EQ B3,B5,IASX IF END OF EVSB
  3094. LX2 59-35
  3095. SB3 B3+2
  3096. ZR X2,IAS1 IF EMPTY ENTRY
  3097. PL X2,IAS1 IF NOT PHYSICALLY ASSIGNED
  3098. BX5 -X0*X2 GET USER COUNT
  3099. LX2 12
  3100. ZR X5,IAS1 IF NO USERS
  3101. ZR X3,IAS2 IF JOB EJT ORDINAL MATCH NOT REQUIRED
  3102. SA5 A2
  3103. BX5 X5-X3
  3104. BX5 -X0*X5
  3105. NZ X5,IAS1 IF NO MATCH
  3106. IAS2 LX2 -24
  3107. BX5 -X0*X2 NEXT EQUIPMENT
  3108. SA2 RET
  3109. IAS3 SA2 A2+B1
  3110. SX7 A2-B2
  3111. ZR X7,IAS1 IF EQUIPMENT NOT FOUND
  3112. LX2 -12
  3113. BX7 -X0*X2
  3114. BX7 X7-X5
  3115. NZ X7,IAS3 IF NOT CORRECT ENTRY
  3116. LX2 12
  3117. BX7 X4+X2 MARK AS ASSIGNED
  3118. SA7 A2
  3119. LX7 59-2
  3120. NG X7,IAS1 IF END OF CHAIN
  3121. EQ IAS2 CONTINUE INITIALIZATION
  3122. SDT SPACE 4,10
  3123. ** SDT - SWITCH 9-TRACK DRIVE TYPE.
  3124. *
  3125. * ENTRY (X4) = PREVIOUS 9-TRACK DRIVE TYPE SELECTION IN
  3126. * BITS 0 - 5.
  3127. *
  3128. * EXIT (X4) = NEW 9-TRACK DENSITY RESOURCE INDEX.
  3129. * (X6) = DISPLAY CODE FOR NEW 9-TRACK DENSITY.
  3130. *
  3131. * USES X - 0, 1, 4, 6.
  3132.  
  3133.  
  3134. SDT SUBR ENTRY/EXIT
  3135. MX0 -6
  3136. BX1 -X0*X4 GET PREVIOUS DRIVE TYPE
  3137. SX6 2RGE
  3138. SX1 X1-RHDP
  3139. SX4 RGEP
  3140. ZR X1,SDTX IF *HD* DRIVE PREVIOUSLY SELECTED
  3141. SX6 2RHD
  3142. SX4 RHDP
  3143. EQ SDTX RETURN
  3144. SPI SPACE 4,10
  3145. ** SPI - SET PREVIEW INFORMATION IN DEMAND FILE ENTRY.
  3146. *
  3147. * ENTRY DEMAND FILE ENTRY IN *RESB*.
  3148. *
  3149. * EXIT PREVIEW INFORMATION SET IN DEMAND FILE ENTRY.
  3150. *
  3151. * USES X - 0, 1, 2, 3, 4, 6, 7.
  3152. * A - 1, 2, 3, 4, 6.
  3153. *
  3154. * CALLS SFN.
  3155.  
  3156.  
  3157. SPI SUBR ENTRY/EXIT
  3158.  
  3159. * SET TIME OF REQUEST AND CHECK REQUEST TYPE.
  3160.  
  3161. SA1 TM
  3162. SA2 RQ
  3163. SA3 RI
  3164. MX0 -6
  3165. BX6 X1
  3166. BX3 -X0*X3
  3167. SA6 RESB+RREQ SET REQUEST TIME
  3168. SX3 X3-RRPP
  3169. NG X3,SPI1 IF TAPE REQUEST
  3170.  
  3171. * SET PACKNAME, PACK RESOURCE TYPE, AND UNIT COUNT.
  3172.  
  3173. MX6 42
  3174. MX7 -12
  3175. BX6 X6*X2 PACK NAME
  3176. LX7 6
  3177. SA6 RESB+RQPV+PVSN SET PACK NAME
  3178. SA6 RESB+RQPV+PVSI
  3179. BX0 -X0*X2 DISPLAY CODE UNIT COUNT
  3180. BX7 -X7*X2 RESOURCE MNEMONIC
  3181. SX0 X0-1R1 UNIT COUNT - 1
  3182. LX7 6
  3183. LX0 9
  3184. SX6 20B
  3185. BX7 X7+X0 MERGE RESOURCE TYPE AND UNIT COUNT
  3186. BX7 X6+X7 SET UNIT COUNT FLAG
  3187. SA7 RESB+RQPV+PRES
  3188. SX6 B0+ CLEAR FLAGS
  3189. SA6 RESB+RQPV+PFLG
  3190. EQ SPI4 SET USER AND JOB IDENTIFICATION
  3191.  
  3192. * SET EXTERNAL VSN, RESOURCE TYPE, AND ACCESS LEVEL.
  3193.  
  3194. SPI1 SA1 EVSN
  3195. SA2 RMN
  3196. SA3 AL
  3197. SA4 BLANK
  3198. BX6 X1
  3199. LX2 12
  3200. SA6 RESB+RQPV+PVSN SET VSN
  3201. LX3 6
  3202. BX4 X1-X4
  3203. SX3 X3+10B SET ACCESS LEVEL AND FLAG
  3204. NZ X4,SPI2 IF NOT SCRATCH REQUEST
  3205. SX3 X3+40B SET SCRATCH VSN FLAG
  3206. SPI2 BX6 X2+X3 MERGE RESOURCE TYPE AND FLAGS
  3207. SA6 RESB+RQPV+PRES
  3208.  
  3209. * SET INTERNAL VSN AND FLAGS.
  3210.  
  3211. MX0 1
  3212. SA1 IVSN
  3213. SA2 TMPF
  3214. SA3 F+FTAP
  3215. BX7 X1
  3216. LX2 59-58
  3217. SA7 RESB+RQPV+PVSI SET VSN
  3218. LX3 59-58
  3219. BX2 X0*X2 TMS REQUEST FLAG
  3220. BX4 X0*X3 LABELED FLAG
  3221. LX2 21-59
  3222. LX3 0-39-59+58
  3223. MX0 -2
  3224. LX4 20-59
  3225. BX3 -X0*X3 PO = R, PO = W FLAGS
  3226. LX3 18-0
  3227. BX3 X2+X3 MERGE TMS AND READ/WRITE FLAGS
  3228. BX6 X3+X4 MERGE LABELED FLAG
  3229. SA6 RESB+RQPV+PFLG SET FLAGS
  3230.  
  3231. * SET USER NAME, FAMILY ORDINAL, AND EJT ORDINAL.
  3232.  
  3233. SPI4 SA1 SSJ=+/COMSSSJ/UIDS
  3234. MX0 42
  3235. BX1 X0*X1
  3236. SA2 FAMO
  3237. RJ SFN SPACE FILL USER NAME
  3238. SA3 JEEO
  3239. BX1 X0*X6 USER NAME
  3240. LX2 12
  3241. BX6 X1+X2 MERGE USER NAME AND FAMILY ORDINAL
  3242. BX6 X6+X3 MERGE EJT ORDINAL
  3243. SA6 RESB+RQPV+PJID SET USER AND JOB INDENTIFICATION
  3244. EQ SPIX RETURN
  3245. TITLE RESOURCE RESERVATION SUBROUTINES.
  3246. RMT SPACE 4,25
  3247. ** RMT - REQUEST MAGNETIC TAPE.
  3248. *
  3249. * ENTRY (FET+10B) = TAPE DESCRIPTORS.
  3250. * (FET+11B - FET+15B) = LABEL DESCRIPTORS.
  3251. * (VA) = VSN ENTRY RANDOM ADDRESS, IF VSN ENTRY PRESENT.
  3252. * VSNB = VSN ENTRY FROM VSN FILE, IF (VA) .NE. 0.
  3253. *
  3254. * EXIT TAPE ASSIGNED AND APPROPRIATELY OPENED.
  3255. * TO *END1*, IF LABEL COMMAND PROCESSING.
  3256. * TO *END2*, IF NOT LABEL COMMAND PROCESSING.
  3257. * TO *PIT*, IF INTERRUPT DETECTED.
  3258. *
  3259. * ERROR TO *PER*, IF CONFLICTING RESOURCE TYPES.
  3260. *
  3261. * USES A - 1, 2, 3, 4, 5, 6, 7.
  3262. * B - 2.
  3263. * X - ALL.
  3264. *
  3265. * CALLS BEV, BPD, COE, COM, CUP, GTM, IDE, IVE, MVE, OPN, PRO,
  3266. * RDF, SDD, UDF, VUR.
  3267. *
  3268. * MACROS MOVE, RETRF, REWIND, SETFET.
  3269.  
  3270.  
  3271. RMT BSS 0 ENTRY
  3272. RJ SDD SET DEVICE TYPE AND DENSITY DISPLAY
  3273. RJ IDE INITIALIZE DEMAND ENTRY
  3274. RJ RDF READ DEMAND FILE ENTRY
  3275. SA1 /CPA/RFCW GET DEMAND FILE RANDOM INDEX
  3276. SA5 DBUF+RNTP GET *NT* RESOURCE DEMAND
  3277. MX3 -6
  3278. LX5 24
  3279. SX6 X1
  3280. BX5 -X3*X5
  3281. NZ X6,RMT1 IF DEMAND ENTRY PRESENT
  3282. SX5 B0+ PREVENT RETURN OF DEMAND FILE
  3283. RJ UDF UPDATE DEMAND FILE
  3284. SX5 B0+ INDICATE NO *NT* DEMAND
  3285. RMT1 RETRF D RETURN DEMAND FILE, RELEASE INTERLOCK
  3286. SA1 F+FTAP BUILD RESOURCE TYPE AND INDEX
  3287. LX1 -55
  3288. MX3 -2
  3289. BX4 -X3*X1 DEVICE TYPE
  3290. SA2 TTDV+X4
  3291. SX3 X4-/COMSMTX/DVNT
  3292. AX2 18
  3293. SX7 X2 RESOURCE TYPE
  3294. NZ X3,RMT3 IF NOT *NT* REQUEST
  3295. LX1 0-51+55 GET DENSITY
  3296. MX3 -3
  3297. BX3 -X3*X1
  3298. SX3 X3-/COMSMTX/D16
  3299. SX7 RHDP INDICATE *HD* REQUEST
  3300. NG X3,RMT2 IF *HD* REQUEST
  3301. SX7 RPEP INDICATE *PE* REQUEST
  3302. ZR X3,RMT2 IF *PE* REQUEST
  3303. SB2 /PER/CRT * CONFLICTING RESOURCE TYPES.*
  3304. NZ X5,PER IF *GE* REQUEST WITH *NT* DEMANDS
  3305. SX7 RGEP INDICATE *GE* REQUEST
  3306. RMT2 SA7 OI SAVE ORIGINAL NT TAPE DENSITY INDEX
  3307. ZR X5,RMT3 IF NO *NT* DEMANDS
  3308. SX7 RNTP INDICATE *NT* REQUEST
  3309. RMT3 SA3 IVSN GET INTERNAL VSN
  3310. SA2 TRID-RMTP+X7 GET RESOURCE INDEX
  3311. SX4 X4-/COMSMTX/DVAT
  3312. NZ X4,RMT3.1 IF NOT *AT* REQUEST
  3313. SA3 EVSN USE EXTERNAL VSN FOR ACS REQUEST
  3314. RMT3.1 SA1 AL REQUESTED ACCESS LEVEL
  3315. LX2 18
  3316. SX1 X1+B1
  3317. LX1 6 POSITION TAPE BYTE POINTER
  3318. BX7 X1+X7 ENTER RESOURCE INDEX (RI)
  3319. SA7 RI ENTER RESOURCE INDEX (RI)
  3320. SA1 F SET VSN CALL FET
  3321. BX6 X3+X2
  3322. SA6 RQ ENTER USER REQUEST (RQ)
  3323. BX7 X1
  3324. SA7 VF
  3325. RJ GTM GET CURRENT TIME
  3326.  
  3327. * GUARANTEE VSN ENTRY.
  3328.  
  3329. SA1 VA CHECK ENTRY PRESENT
  3330. NZ X1,RMT4 IF VSN ENTRY PRESENT
  3331. SA3 F
  3332. SB2 B1+
  3333. RJ IVE INITIALIZE VSN ENTRY
  3334. EQ RMT5 UPDATE VSN FILE
  3335.  
  3336. RMT4 MOVE VSNL,VSNB,VSNE MOVE VSN ENTRY TO WORKING BUFFER
  3337. RMT5 SA1 RI SET RESOURCE INDEX IN VSN ENTRY
  3338. SA2 VSNE+VDFI
  3339. LX1 24
  3340. BX6 X1+X2
  3341. SA6 A2+
  3342. RJ MVE CREATE OR REWRITE VSN ENTRY
  3343.  
  3344. * EXERCISE OVERCOMMITMENT ALGORITHM.
  3345.  
  3346. RMT6 RJ COM CHECK FOR OVERCOMMITMENT
  3347. SX5 X2-/STATUS/OK
  3348. ZR X5,RMT12 IF PERMITTED TO ASSIGN AVAILABLE TAPE
  3349. SX5 /STATUS/OV
  3350. BX5 X5*X2
  3351. NZ X5,RMT9 IF OVERCOMMITMENT REJECTION
  3352. RJ COE CHECK *OFF*/*DOWN* EQUIPMENT
  3353. NZ X6,RMT7 IF *OFF*/*DOWN* EQUIPMENT REQUIRED
  3354. RJ CVA CHECK VSN AVAILABILITY
  3355. ZR X6,RMT8 IF NO PREVIEW DISPLAY MESSAGE
  3356. RMT7 RJ SPM SET PREVIEW DISPLAY MESSAGE
  3357.  
  3358. * PROCESS MISSING VSN.
  3359.  
  3360. RMT8 MX2 36
  3361. SA1 RQ BUILD MISSING VSN EVENT
  3362. BX1 X2*X1
  3363. SA3 TEMV
  3364. RJ BEV
  3365. EQ RMT10 CLEAN UP AND ROLLOUT
  3366.  
  3367. * PROCESS OVERCOMMITMENT REJECTION.
  3368.  
  3369. RMT9 SA3 TEOV
  3370. BX7 X7-X7 CLEAR MOUNT REQUEST
  3371. LX6 X3
  3372. SA7 RESB+RREQ
  3373.  
  3374. * ROLL OUT ON MISSING VSN OR OVERCOMMITMENT.
  3375.  
  3376. RMT10 SA1 A3+B1 SAVE ROLLOUT MESSAGE ADDRESS
  3377. SA6 RE SET ROLLOUT EVENT DESCRIPTOR
  3378. BX7 X1
  3379. SA7 RM
  3380. RJ CUP CLEAN UP REQUEST
  3381. SX5 RE SET ROLLOUT DESCRIPTOR
  3382. SA1 RM GET ROLLOUT MESSAGE ADDRESS
  3383. RJ PRO PROCESS TIMED EVENT ROLLOUT
  3384.  
  3385. * INITIALIZE TO RECHECK FOR OVERCOMMITMENT.
  3386.  
  3387. RMT10.1 SA4 AA
  3388. SB2 X4
  3389. BX6 X6-X6
  3390. GT B2,RMT11 IF *ASSIGN* WITH EST ORDINAL SPECIFIED
  3391. SA6 EQ CLEAR EQUIPMENT ASSIGNMENT
  3392. NG B2,RMT11.1 IF AUTOMATIC ASSIGNMENT
  3393. RMT11 SA1 RQ CLEAR VSN
  3394. MX6 -24
  3395. BX6 -X6*X1
  3396. SA6 A1
  3397. RMT11.1 RJ CCV CHECK FOR CHANGE OF TMS REQUEST VSN
  3398. EQ RMT6 CHECK FOR OVERCOMMITMENT
  3399.  
  3400. * ASSIGN UNIT.
  3401.  
  3402. RMT12 RJ VUR VERIFY UNIT REQUEST
  3403. ZR X6,RMT13 IF UNIT ASSIGNED
  3404. ZR X2,RMT9 IF OPERATOR ASSIGNMENT
  3405. EQ RMT8 SET MISSING VSN EVENT
  3406.  
  3407. RMT13 RJ BPD BUILD PREVIEW DISPLAY
  3408.  
  3409. * OPEN OR REWIND FILE. MAGNET COMPLETES THE TAPE ASSIGNMENT ON
  3410. * RECEIPT OF THE FIRST *CIO* REQUEST. IF AN UNLABELED TMS
  3411. * SCRATCH TAPE IS BEING ASSIGNED, AN EOF WILL BE WRITTEN TO
  3412. * PREVENT A READ OF PREVIOUSLY WRITTEN DATA.
  3413.  
  3414. SA2 CF CHECK CALL TYPE
  3415. SA1 RT CHECK COMMAND TYPE
  3416. NZ X2,RMT14 IF *LFM* OR *REQ* CALL
  3417. NZ X1,RMT15 IF NOT *LABEL* COMMAND
  3418. RMT14 RJ OPN OPEN FILE
  3419. NZ X6,END1 IF FILE OPENED
  3420. RMT15 SETFET F,ERP=E SET ERROR PROCESSING
  3421. SA1 TMPF
  3422. LX1 59-57
  3423. PL X1,RMT16 IF NOT TMS SCRATCH TAPE ASSIGNMENT
  3424. WRITEF F,R INHIBIT READ OF UNLABELED TAPE
  3425. RJ CER CHECK ERROR
  3426. RMT16 REWIND F,R REWIND TO COMPLETE ASSIGNMENT
  3427. RJ CER CHECK ERROR
  3428. SETFET F,ERP=0 CLEAR ERROR PROCESSING
  3429. EQ END1 PROCESS TERMINATION
  3430. RRP SPACE 4,20
  3431. ** RRP - REQUEST REMOVABLE PACK.
  3432. *
  3433. * ENTRY USER RESOURCE REQUEST WORDS ARE BUILT (RQ - TM).
  3434. *
  3435. * EXIT PACK ASSIGNED.
  3436. * TO *END4*, IF NOT OVERCOMMITMENT.
  3437. * TO *PIT*, IF INTERRUPT DETECTED.
  3438. *
  3439. * ERROR TO *PER*, IF PACK OVERCOMMITMENT ERROR.
  3440. *
  3441. * USES A - 1, 3, 6, 7.
  3442. * B - 2.
  3443. * X - 0, 1, 3, 5, 6, 7.
  3444. *
  3445. * CALLS BEV, COE, COM, CUP, IDE, PRO, RDF, SPM, UDF.
  3446. *
  3447. * MACROS INTRC.
  3448.  
  3449.  
  3450. RRP BSS 0 ENTRY
  3451. SA1 /CPA/RFCW CHECK FOR DEMAND FILE ENTRY
  3452. SX5 X1
  3453. NZ X5,RRP1 IF DEMAND FILE PRESENT
  3454. RJ IDE INITIALIZE DEMAND ENTRY
  3455. RJ RDF READ DEMAND FILE
  3456. SX5 B1 SET RETURN DEMAND FILE FLAG
  3457. RJ UDF UPDATE DEMAND FILE ENTRY
  3458.  
  3459. * EXERCISE OVERCOMMITMENT ALGORITHM.
  3460.  
  3461. RRP1 RJ COM CHECK FOR OVERCOMMITMENT
  3462. SA1 SFET+FDTY READ FET DETAILS
  3463. SX5 X2-/STATUS/OK
  3464. SX4 /STATUS/OV
  3465. ZR X5,RRP4 IF PERMITTED TO ACCESS AVAILABLE PACK
  3466. LX1 59-44
  3467. BX5 X4*X2
  3468. PL X1,RRP4 IF EP BIT ZERO
  3469. SA3 PEOV
  3470. NZ X5,RRP2 IF OVERCOMMITMENT REJECTION
  3471. RJ COE CHECK FOR *OFF*/*DOWN* EQUIPMENT
  3472. ZR X6,RRP1.1 IF *OFF*/*DOWN* EQUIPMENT NOT REQUIRED
  3473. RJ SPM SET PREVIEW DISPLAY MESSAGE
  3474. RRP1.1 SA3 PEMV BUILD MISSING PACKNAME EVENT
  3475. SA1 RQ
  3476. MX0 42
  3477. BX1 X0*X1
  3478. RJ BEV
  3479. EQ RRP3 CLEAN UP AND ROLLOUT
  3480.  
  3481. RRP2 BX7 X7-X7 CLEAR MOUNT REQUEST
  3482. LX6 X3
  3483. SA7 RESB+RREQ
  3484. RRP3 SA1 A3+B1 SAVE ROLLOUT MESSAGE ADDRESS
  3485. SA6 RE SET ROLLOUT EVENT DESCRIPTOR
  3486. BX7 X1
  3487. SA7 RM
  3488. RJ CUP CLEAN UP REQUEST
  3489. SX5 RE SET ROLLOUT DESCRIPTOR
  3490. SA1 RM GET ROLLOUT MESSAGE ADDRESS
  3491. RJ PRO PROCESS TIMED EVENT ROLLOUT
  3492. EQ RRP1 REPEAT ALGORITHM
  3493.  
  3494. RRP4 LX7 X2 SET RETURN STATUS
  3495. BX4 X4-X2
  3496. LX7 24
  3497. BX6 X6-X6 CLEAR MOUNT REQUEST
  3498. SA7 SPPR
  3499. SA6 RESB+RREQ
  3500. SX6 -2
  3501. NZ X4,RRP5 IF NOT ONLY OVERCOMMITMENT
  3502. SB2 /PER/RPO * REMOVABLE PACKS OVERCOMMITMENT.*
  3503. EQ PER PROCESS ERROR
  3504.  
  3505. RRP5 INTRC OFF DISABLE INTERRUPT
  3506. SA6 UCRI INDICATE CLEAN-UP REQUIRED IF INTERRUPT
  3507. EQ END4 UPDATE DEMAND FILE
  3508. RRS SPACE 4,10
  3509. ** RRS - REQUEST RESOURCES.
  3510. *
  3511. * EXIT TO *END4* IF NO ERROR.
  3512. * TO *PER* IF ERROR.
  3513. *
  3514. * USES X - 1, 2.
  3515. * A - 1.
  3516. * B - 2.
  3517. *
  3518. * CALLS BRE, BSF, CIC, DEI, OCA, PMM.
  3519.  
  3520.  
  3521. RRS BSS 0 ENTRY
  3522. RJ CRV CHECK RESOURCE VALIDATION
  3523. RJ DEI DEMAND EXCEEDS INSTALLATION CHECK
  3524. SA1 RESB+RVAL GET TOTAL ASSIGNED COUNT
  3525. MX2 -12
  3526. LX1 -12
  3527. BX1 -X2*X1
  3528. ZR X1,END4 IF NO ASSIGNED UNITS
  3529. RJ CIC CHECK FOR INTERNAL CONFLICT
  3530. SB2 /PER/DRC * NT DRIVE CONFLICT.*
  3531. NZ X2,PER IF 9 TRACK DRIVE CONFLICT
  3532. RJ BSF BUILD SCRATCH FILE
  3533. RJ OCA CHECK FOR OVERCOMMITMENT
  3534. NZ X5,END4 IF NO OVERCOMMITMENT
  3535. SB2 /PER/RDE * RESOURCE DEMAND ERROR.*
  3536. EQ PER PROCESS ERROR
  3537. ROA SPACE 4,30
  3538. ** ROA - REQUEST OPERATOR ASSIGNMENT.
  3539. *
  3540. * ENTRY (X4) = 0 IF REQUEST OPERATOR ASSIGNMENT OF EQUIPMENT.
  3541. * (X4) = 1 IF REQUEST OPERATOR ASSIGNMENT ON DUPLICATE
  3542. * VSN OR VERIFICATION OF NON-TMS TAPE REQUEST.
  3543. *
  3544. * TAPE DEVICE MNEMONIC IN FET+1 IF TAPE EQUIPMENT
  3545. * REQUIRED, OTHERWISE DEVICE TYPE ZERO.
  3546. *
  3547. * EXIT (X4) = DEVICE TYPE OF EQUIPMENT ASSIGNED.
  3548. * (EQ) = OPERATOR ASSIGNED EST ORDINAL, IF TAPE DEVICE.
  3549. * OPERATOR VERIFY FLAG CLEARED IN *TMPF*.
  3550. *
  3551. * FOR *NT* REQUEST, DISPLAY CODE FOR DENSITY (*HD*, *PE*,
  3552. * OR *GE*) WILL BE SET IN FET+1 BITS 24-35.
  3553. * FET+7 BITS 54-59 IS THE CHECKPOINT ID FIELD FROM A
  3554. * *LABEL* MACRO CALL OR IS ZERO IN ALL OTHER CASES.
  3555. * DEVICE TYPE OF EQUIPMENT ASSIGNED IS RETURNED IN FET+1.
  3556. * FOR TAPE EQUIPMENT ASSIGNMENTS, EQUIPMENT EST ORDINAL IS
  3557. * RETURNED IN FET+1 BITS 24-29.
  3558. *
  3559. * USES A - 1, 2, 7.
  3560. * X - 1, 2, 4, 7.
  3561. *
  3562. * CALLS COV, CUC.
  3563. *
  3564. * MACROS ROAE, SETRNR.
  3565.  
  3566.  
  3567. ROA SUBR ENTRY/EXIT
  3568. SA1 F+FDTY
  3569. SA2 RMN
  3570. MX7 48
  3571. LX1 -24
  3572. BX7 X7*X1
  3573. BX7 X7+X2 SET RESOURCE MNEMONIC IN FET
  3574. LX7 24
  3575. SA7 A1+
  3576. ROA2 SETRNR OPROLL ALLOW OPERATOR ROLLOUT
  3577. SA1 SSJ=+/COMSSSJ/UIDS
  3578. RJ CUC CHANGE USER NAME IN CONTROL POINT AREA
  3579. ROAE F,X4 REQUEST OPERATOR ASSIGNMENT OF EQUIPMENT
  3580. SA1 =0LSYSTEMX
  3581. RJ CUC CHANGE USER NAME IN CONTROL POINT AREA
  3582. SETRNR NOROLL PREVENT JOB ROLLOUT
  3583. RJ COV CLEAR OPERATOR VERIFY FLAG
  3584. SA1 F+FDTY GET EQUIPMENT TYPE AND EST ORDINAL
  3585. MX2 -11
  3586. LX1 12
  3587. BX4 -X2*X1
  3588. LX1 12
  3589. MX2 12
  3590. BX7 X2*X1
  3591. SA7 EQ
  3592. EQ ROAX RETURN
  3593. SDD SPACE 4,10
  3594. ** SDD - SET DEVICE TYPE AND DENSITY DISPLAY.
  3595. *
  3596. * ENTRY (F+FTAP) = CONVERTED TAPE DESCRIPTORS.
  3597. *
  3598. * EXIT (F+FDTY) = TAPE DEVICE TYPE SET IN BITS 48-59.
  3599. * (RMN) = RESOURCE TYPE MNEMONIC.
  3600. *
  3601. * USES X - 0, 1, 2, 3, 6.
  3602. * A - 1, 2, 3, 6.
  3603. * B - 2.
  3604.  
  3605.  
  3606. SDD SUBR ENTRY/EXIT
  3607.  
  3608. * GET TAPE DEVICE TYPE AND SET MNEMONIC IN ASSIGNMENT FET.
  3609.  
  3610. SA1 F+FTAP
  3611. SA2 F+FDTY
  3612. MX0 -2
  3613. LX1 0-55
  3614. BX6 -X0*X1 TAPE DEVICE TYPE
  3615. SB2 X6
  3616. SA3 TTDV+X6
  3617. MX0 -48
  3618. SX3 X3 DEVICE MNEMONIC
  3619. BX2 -X0*X2
  3620. LX3 -12
  3621. BX6 X3+X2
  3622. LX3 12
  3623. SA6 A2+
  3624.  
  3625. * SET RESOURCE TYPE MNEMONIC.
  3626.  
  3627. LX1 0-51-0+55
  3628. MX0 -3
  3629. BX2 -X0*X1 DENSITY
  3630. SX6 B2-/COMSMTX/DVNT
  3631. NZ X6,SDD1 IF NOT *NT* DEVICE TYPE
  3632. SA3 TSDD+X2-/COMSMTX/D08 GET *NT* DENSITY MNEMONIC
  3633. SDD1 BX6 X3
  3634. SA6 RMN
  3635. EQ SDDX RETURN
  3636.  
  3637.  
  3638. TSDD BSS 0 TABLE OF NINE TRACK DENSITY MNEMONICS
  3639. CON 2RHD 800 CPI
  3640. CON 2RPE 1600 CPI
  3641. CON 2RGE 6250 CPI
  3642. VUR SPACE 4,20
  3643. ** VUR - VERIFY UNIT REQUEST.
  3644. *
  3645. * EXIT (X6) = 0 IF UNIT ASSIGNED.
  3646. * (X6) .NE. 0 IF UNIT NOT ASSIGNED.
  3647. * TO *PIT*, IF INTERRUPT DETECTED.
  3648. * TO *ERR2* OR *ERR3* IF SUBSYSTEM COMMUNICATION ERROR.
  3649. * TO *PER* IF UNIT NOT ASSIGNED AND ASSIGNMENT BY EST
  3650. * ORDINAL.
  3651. *
  3652. * USES X - ALL.
  3653. * A - 1, 2, 3, 4, 6, 7.
  3654. * B - 2, 5.
  3655. *
  3656. * CALLS BTR, CUP, UDF.
  3657. *
  3658. * MACROS INTRC, INTRP, RDSB, RECALL, VSN, WTSB.
  3659.  
  3660.  
  3661. VUR SUBR ENTRY/EXIT
  3662.  
  3663. * CHECK UNIT AVAILABLE AND CORRECT VSN MOUNTED.
  3664.  
  3665. SA1 AU
  3666. RDSB MTSI,/COMSMTX/UNITL,X1,UDT READ UDT ENTRY
  3667. SA1 UDT+/COMSMTX/UST1
  3668. SA2 UDT+/COMSMTX/UVRI
  3669. SA3 UDT+/COMSMTX/UVSN
  3670. SA4 IVSN
  3671. MX0 36
  3672. LX1 59-49
  3673. NZ X2,VUR5 IF UNIT ASSIGNED OR SELECTED FOR UNIT SWAP
  3674. ZR X3,VUR5 IF LABELS NOT READ
  3675. LX3 59-23
  3676. NG X3,VUR5 IF LABEL CHECK IN PROGRESS
  3677. LX3 23-23-59+23
  3678. PL X1,VUR1 IF NOT ACS UNIT
  3679. SA3 UDT+/COMSMTX/UMST GET EXTERNAL VSN
  3680. MX7 -2
  3681. BX7 -X7*X3 ACS UNIT MOUNT STATUS
  3682. SX7 X7-2
  3683. NZ X7,VUR5 IF UNIT NOT MOUNTED
  3684. SA4 EVSN
  3685. VUR1 BX4 X3-X4
  3686. BX4 X0*X4
  3687. NZ X4,VUR5 IF VSN NOT MOUNTED ON UNIT
  3688.  
  3689. * RESERVE TAPE EQUIPMENT.
  3690.  
  3691. MX6 12
  3692. LX1 59-35-59+49
  3693. BX6 X6*X1 SET EST ORDINAL
  3694. SA6 VF+FEVE
  3695. VSN VF RESERVE EQUIPMENT
  3696. SA1 VF+FEVE CHECK RESERVATION
  3697. ZR X1,VUR5 IF EQUIPMENT ALREADY RESERVED
  3698.  
  3699. * SEND ASSIGN UNIT REQUEST TO MAGNET.
  3700.  
  3701. RJ BTR BUILD MAGNET TAPE ASSIGNMENT REQUEST
  3702. INTRC OFF DISABLE INTERRUPT
  3703. WTSB BUF,0 SEND ASSIGNMENT REQUEST
  3704. SA1 SS CHECK STATUS
  3705. SX5 X1-1
  3706. ZR X5,VUR2 IF TRANSFER COMPLETE
  3707. SX5 X1-3
  3708. INTRC ON REENABLE INTERRUPT
  3709. INTRP PIT PROCESS INTERRUPT
  3710. ZR X5,ERR3 IF MAGNET NOT ACTIVE
  3711. EQ ERR2 PROCESS ERROR
  3712.  
  3713. VUR2 RECALL
  3714. SX7 /COMSMTX/RCAL ADDRESS OF CALL BUFFER 0
  3715. RDSB MTSI,1,X7,BUF+20
  3716. SA1 BUF+20
  3717. NZ X1,VUR2 IF REQUEST IN PROGRESS
  3718. SA1 AU
  3719. RDSB MTSI,/COMSMTX/UNITL,X1,UDT READ UDT
  3720. SA1 UDT+/COMSMTX/UVRI
  3721. SA2 JEEO
  3722. AX1 48
  3723. BX1 X1-X2
  3724. ZR X1,VUR3 IF UNIT ASSIGNED
  3725. INTRC ON REENABLE INTERRUPT
  3726. INTRP PIT PROCESS INTERRUPT
  3727. SA1 VF+FEVE CLEAR EQUIPMENT ASSIGNMENT
  3728. MX6 1
  3729. BX6 X1+X6
  3730. SA6 A1
  3731. VSN VF
  3732. EQ VUR5 PROCESS UNIT NOT ASSIGNED
  3733.  
  3734. * BUILD TAPE FILE FNT/FST ENTRY AND UPDATE DEMAND FILE.
  3735.  
  3736. VUR3 SA1 AU
  3737. SA3 UDT+/COMSMTX/UST1
  3738. MX0 12
  3739. MX6 1
  3740. LX3 24
  3741. SA4 F+FTAP
  3742. BX7 X0*X3 EST ORDINAL
  3743. LX1 36
  3744. MX0 4
  3745. LX4 2
  3746. BX7 X7+X1 MERGE EST ORDINAL AND UDT ADDRESS
  3747. LX0 -24
  3748. BX5 X0*X4
  3749. BX7 X7+X5 SET FORMAT
  3750. MX0 2
  3751. LX4 -1 CHECK LABELED AND NON-STANDARD BITS
  3752. BX4 X0*X4
  3753. ZR X4,VUR4 IF NOT LABELED ACCESS
  3754. LX6 11-59
  3755. BX7 X7+X6 SET LABELED STATUS
  3756. VUR4 SA7 VF+FEVE
  3757. VSN VF ENTER EQ AND UDT ASSIGNMENT IN FST
  3758. SX6 1
  3759. SA6 TA SET TAPE ASSIGNED TO MAGNET FLAG
  3760. BX6 X6-X6 CLEAR MOUNT REQUEST
  3761. MX5 0 SET NO RETURN OF DEMAND FILE
  3762. SA6 RESB+RREQ
  3763. RJ UDF UPDATE DEMAND FILE
  3764. INTRC ON REENABLE INTERRUPT
  3765. INTRP PIT PROCESS INTERRUPT
  3766. SX6 B0 SET UNIT ASSIGNED
  3767. EQ VURX RETURN
  3768.  
  3769. * PROCESS UNIT NOT ASSIGNED.
  3770.  
  3771. VUR5 SA2 AA
  3772. SB2 X2
  3773. SX6 B1 SET UNIT NOT ASSIGNED
  3774. LE B2,VURX IF NOT *ASSIGN* WITH EST ORDINAL
  3775. SX7 B0+
  3776. SA7 RESB+RREQ CLEAR MOUNT REQUEST
  3777. RJ CUP CLEAN UP REQUEST
  3778. SB2 /PER/EQN * EQUIPMENT NOT AVAILABLE.*
  3779. EQ PER PROCESS ERROR
  3780. TITLE RESOURCE FILE SUBROUTINES.
  3781. MVE SPACE 4,20
  3782. ** MVE - MAKE VSNFILE ENTRY.
  3783. *
  3784. * ENTRY VSNE = NEW VSN ENTRY.
  3785. * (VA) = VSN RANDOM INDEX.
  3786. * VSN FILE INTERLOCKED.
  3787. *
  3788. * EXIT ENTRY MADE INTO VSN FILE.
  3789. * FNT/FST ENTRY FOR FILE CREATED.
  3790. * VSN FILE INTERLOCK CLEARED.
  3791. * TO *PIT*, IF INTERRUPT DETECTED.
  3792. *
  3793. * USES A - 1, 2, 6, 7.
  3794. * X - 0, 1, 2, 5, 6, 7.
  3795. *
  3796. * CALLS URF.
  3797. *
  3798. * MACROS INTRC, INTRP, VSN.
  3799.  
  3800.  
  3801. MVE SUBR ENTRY/EXIT
  3802. SA1 VSNE+VLFN SET FILE NAME IN VSN FET
  3803. SX7 1
  3804. MX6 0
  3805. BX7 X1+X7
  3806. SA7 VF
  3807. SA1 VA CHECK FOR ENTRY REWRITE
  3808. SA6 VF+FEVE
  3809. NZ X1,MVE1 IF REWRITE
  3810. VSN VF RESERVE VSN FNT ENTRY
  3811. SA1 VA
  3812. INTRC OFF INHIBIT INTERRUPT
  3813. MVE1 SX2 V
  3814. SX6 VSNE
  3815. SX7 VSNB
  3816. SX5 B1 SET RETURN VSN FILE
  3817. SX0 VSNL VSN ENTRY LENGTH
  3818. RJ URF UPDATE RESOURCE FILE
  3819. SA2 VA CHECK FOR EXISTING ENTRY
  3820. SA1 URFA
  3821. NZ X2,MVEX IF EXISTING ENTRY
  3822. BX6 X1
  3823. SA6 A2
  3824. LX6 12
  3825. SA6 VF+FEVE MAKE VSN FNT ENTRY
  3826. VSN VF MAKE VSN ENTRY
  3827. INTRC ON REENABLE INTERRUPT
  3828. INTRP PIT PROCESS INTERRUPT
  3829. EQ MVEX RETURN
  3830. RDF SPACE 4,15
  3831. ** RDF - READ DEMAND FILE.
  3832. *
  3833. * ENTRY (/CPA/RFCW) = DEMAND FILE INDEX IF ENTRY EXISTS.
  3834. * (RESB+RJID) = JOB EJT ORDINAL.
  3835. *
  3836. * EXIT DEMAND FILE ENTRY IN DBUF.
  3837. * DEMAND FILE INTERLOCK SET.
  3838. *
  3839. * ERROR TO *PER*, IF DEMAND FILE ERROR.
  3840. *
  3841. * USES A - 1, 3, 6.
  3842. * B - 2.
  3843. * X - 1, 3, 6.
  3844. *
  3845. * MACROS FATRF, READ, READW.
  3846.  
  3847.  
  3848. RDF SUBR ENTRY/EXIT
  3849. FATRF D,M ATTACH DEMAND FILE
  3850. SA1 /CPA/RFCW CHECK DEMAND FILE RANDOM INDEX
  3851. SX6 X1
  3852. ZR X6,RDF2 IF NO ENTRY
  3853. SA6 D+6
  3854. READ X2,R RANDOM READ DEMAND FILE
  3855. SA1 DBUF+RJID COMPARE JOB IDENTIFICATION
  3856. SA3 RESB+RJID
  3857. BX1 X1-X3
  3858. ZR X1,RDFX IF CORRECT ENTRY
  3859. RDF1 SB2 /PER/DFE *DEMAND FILE ERROR.*
  3860. EQ PER PROCESS ERROR
  3861.  
  3862. * SCAN DEMAND FILE TO VERIFY THAT NO ENTRY EXISTS.
  3863.  
  3864. RDF2 READ X2,R
  3865. RDF3 READW D,BUF,RDEL READ ENTRY
  3866. NZ X1,RDFX IF NO DUPLICATE FOUND
  3867. SA1 BUF+RJID COMPARE JOB IDENTIFICATION
  3868. SA3 RESB+RJID
  3869. BX1 X1-X3
  3870. NZ X1,RDF3 IF ENTRY DOES NOT MATCH
  3871. EQ RDF1 ERROR
  3872. UDF SPACE 4,20
  3873. ** UDF - UPDATE DEMAND FILE.
  3874. *
  3875. * ENTRY (/CPA/RFCW) = DEMAND FILE INDEX IF ENTRY EXISTS.
  3876. * RESB = DEMAND ENTRY TO BE WRITTEN.
  3877. * (X5) = 0, IF DEMAND FILE NOT TO BE RETURNED.
  3878. * DEMAND FILE INTERLOCK SET.
  3879. *
  3880. * EXIT DEMAND FILE UPDATED.
  3881. * (X6) = RANDOM INDEX.
  3882. * (/CPA/RFCW) = DEMAND FILE RANDOM INDEX.
  3883. * IF NEW DEMAND FILE ENTRY IS BUILT, RANDOM
  3884. * INDEX IS ENTERED INTO CONTROL POINT WORD *RFCW*.
  3885. * TO *PIT*, IF INTERRUPT DETECTED.
  3886. *
  3887. * USES A - 1, 2, 5, 6.
  3888. * X - 0, 1, 2, 5, 6, 7.
  3889. *
  3890. * CALLS URF.
  3891. *
  3892. * MACROS ENDRI, INTRC, INTRP.
  3893.  
  3894.  
  3895. UDF SUBR ENTRY/EXIT
  3896. SA2 RESB+RREQ SET/CLEAR PREVIEW DISPLAY CLEAN-UP FLAG
  3897. SA1 /CPA/RFCW GET DEMAND FILE INDEX
  3898. BX6 X2
  3899. SX1 X1
  3900. SA6 PVDC
  3901. SX2 D
  3902. SX6 RESB
  3903. NZ X1,UDF1 IF NOT NEW DEMAND FILE ENTRY
  3904. INTRC OFF DISABLE INTERRUPT
  3905. SX1 -1
  3906. UDF1 SX7 BUF
  3907. SX0 RDEL DEMAND ENTRY LENGTH
  3908. RJ URF UPDATE RESOURCE FILE
  3909. SA5 /CPA/RFCW GET DEMAND FILE INDEX
  3910. SA1 URFA
  3911. SX6 X5
  3912. NZ X6,UDFX IF NOT NEW ENTRY
  3913. BX6 X5+X1
  3914. SA6 A5 SET NEW ENTRY
  3915. ENDRI X1
  3916. SA5 A5
  3917. SX6 X5 SET RANDOM INDEX
  3918. INTRC ON REENABLE INTERRUPT
  3919. INTRP PIT PROCESS INTERRUPT
  3920. EQ UDFX RETURN
  3921. URF SPACE 4,20
  3922. ** URF - UPDATE RESOURCE FILES.
  3923. *
  3924. * ENTRY (X0) = ENTRY LENGTH.
  3925. * (X1) = RANDOM INDEX IF UPDATING EXISTING ENTRY.
  3926. * (X1) = 0 IF TO CREATE NEW ENTRY.
  3927. * (X2) = FET ADDRESS OF RESOURCE FILE.
  3928. * (X5) = 0, IF RESOURCE FILE NOT TO BE RETURNED.
  3929. * (X6) = ADDRESS OF NEW ENTRY.
  3930. * (X7) = WORKING BUFFER ADDRESS IF ALLOCATING NEW ENTRY.
  3931. * RESOURCE FILE INTERLOCK SET.
  3932. *
  3933. * EXIT (URFA) = RANDOM INDEX OF NEW ENTRY.
  3934. * RESOURCE FILE INTERLOCK CLEARED.
  3935. *
  3936. * USES A - 1, 3, 6, 7.
  3937. * B - 6.
  3938. * X - 0, 1, 2, 3, 6, 7.
  3939. *
  3940. * CALLS CTL.
  3941. *
  3942. * MACROS FATRF, READ, READW, RECALL, RETRF, REWRITE,
  3943. * REWRITER, WRITEW.
  3944.  
  3945.  
  3946. URF4 REWRITER X2,R
  3947. URF5 RJ CTL CHECK FOR TRACK LIMIT
  3948. SA1 URFD CHECK FOR RETURN REQUIRED
  3949. ZR X1,URFX IF NOT RETURNING RESOURCE FILE
  3950. RETRF X2 RETURN RESOURCE FILE, RELEASE INTERLOCK
  3951.  
  3952. URF SUBR ENTRY/EXIT
  3953. SA7 URFC
  3954. SA6 A7-B1
  3955. BX7 X5 SAVE RETURN RESOURCE FILE INDICATOR
  3956. SA7 A7+B1
  3957. MX6 0
  3958. BX7 X1
  3959. SA7 A7+B1 SAVE INITIAL RANDOM INDEX
  3960. SA7 A6-B1
  3961. SA6 EF CLEAR EOR FLAG
  3962. BX7 X0 SAVE ENTRY LENGTH
  3963. SA7 URFF
  3964. URF1 FATRF X2,M ATTACH RESOURCE FILE
  3965. SA1 URFA
  3966. SB6 X1+
  3967. GT B6,URF3 IF UPDATING EXISTING ENTRY
  3968.  
  3969. * FIND AVAILABLE ENTRY.
  3970.  
  3971. READ X2
  3972. URF2 SA1 URFA ADVANCE RANDOM INDEX
  3973. SA3 URFF GET ENTRY LENGTH
  3974. SB7 X3
  3975. AX3 6
  3976. IX7 X1+X3
  3977. SA3 URFC
  3978. SA7 A1
  3979. SB6 X3+
  3980. READW X2,B6,B7 READ FILE ENTRY
  3981. SA3 URFC
  3982. BX7 X1
  3983. SA3 X3
  3984. SA7 EF SET END OF FILE FLAG
  3985. NZ X1,URF3 IF EOR
  3986. NZ X3,URF2 IF ENTRY IN USE
  3987.  
  3988. * WRITE ENTRY TO FILE.
  3989.  
  3990. URF3 RECALL X2
  3991. MX0 1 BUILD FET FOR REWRITE
  3992. SA1 URFA
  3993. LX0 30
  3994. SX7 SBUF2
  3995. SA7 X2+2
  3996. SA3 A1+B1
  3997. SA7 A7+B1
  3998. BX6 X0+X1
  3999. SB6 X3
  4000. SA6 X2+6
  4001. SA1 URFF GET ENTRY LENGTH
  4002. SB7 X1
  4003. WRITEW X2,B6,B7
  4004. SA1 X2+FDTY SET USER PROCESSING
  4005. MX0 1
  4006. LX0 45-59
  4007. BX6 X0+X1
  4008. SA6 A1
  4009. SA1 EF CHECK FILE STATUS
  4010. NZ X1,URF4 IF EOR
  4011. REWRITE X2,R
  4012. EQ URF5
  4013.  
  4014.  
  4015. URFA CON 0 RANDOM INDEX TEMPORARY
  4016. URFB CON 0 NEW ENTRY BUFFER ADDRESS
  4017. URFC CON 0 FILE SEARCH WORKING BUFFER ADDRESS
  4018. URFD CON 0 RETURN RESOURCE FILE FLAG
  4019. URFE CON 0 INITIAL RANDOM INDEX
  4020. URFF CON 0 ENTRY LENGTH
  4021. TITLE TAPE ALTERNATE STORAGE SUBROUTINES.
  4022. AEV SPACE 4,15
  4023. ** AEV - ADD ENTRY TO STAGING TAPE VSN LIST.
  4024. *
  4025. * ENTRY (B6) = FWA OF STAGE REQUEST BLOCK.
  4026. *
  4027. * EXIT ENTRY ADDED TO *STVL*.
  4028. * (LSVL) UPDATED.
  4029. *
  4030. * USES X - 1, 2, 3, 4, 6, 7.
  4031. * A - 1, 2, 3, 4, 6, 7.
  4032. *
  4033. * MACROS MEMORY.
  4034.  
  4035.  
  4036. AEV SUBR ENTRY/EXIT
  4037. SA3 B6
  4038. AX3 54 GET FUNCTION CODE
  4039. SX3 X3-2
  4040. ZR X3,AEVX IF STAGE REQUEST FROM OPTICAL DISK
  4041. SA1 B6+B1 GET PACKED VSN
  4042. SA3 B6+7 GET RETRY INFORMATION
  4043. MX2 -24
  4044. SA4 STVL-1 SEARCH VSN LIST
  4045.  
  4046. * SEARCH VSN LIST FOR EXISTING ENTRY WITH THIS VSN.
  4047.  
  4048. AEV1 SA4 A4+B1
  4049. ZR X4,AEV3 IF END OF LIST
  4050. BX6 X1-X4
  4051. BX6 -X2*X6
  4052. NZ X6,AEV1 IF VSN DOES NOT MATCH
  4053.  
  4054. * PROCESS UPDATE OF EXISTING ENTRY.
  4055.  
  4056. MX2 12 GET *FCTF* FLAGS FROM STAGE REQUEST
  4057. BX2 X2*X1
  4058. LX2 -24
  4059. BX4 X4+X2 MERGE *FCTF* FLAGS
  4060. SX2 B1 GET BACKUP VSN FLAG FROM STAGE REQUEST
  4061. LX2 39-0
  4062. BX2 X2*X3
  4063. BX4 X4+X2 UPDATE BACKUP VSN FLAG, IF SET
  4064. MX7 3 CHECK RETRY COUNT
  4065. LX7 36-57
  4066. BX6 X7*X4 EXISTING RETRY COUNT
  4067. BX2 X7*X3 NEW RETRY COUNT
  4068. IX1 X2-X6
  4069. NG X1,AEV2 IF NOT NEWER RETRY INFORMATION
  4070. IX4 X4+X1 UPDATE RETRY COUNT
  4071. AEV2 BX6 X4
  4072. SA6 A4
  4073. EQ AEVX RETURN
  4074.  
  4075. * ADD NEW ENTRY TO VSN LIST.
  4076.  
  4077. AEV3 MX2 -24 GET PACKED VSN
  4078. BX4 -X2*X1
  4079. MX2 12 GET *FCTF* FLAGS
  4080. BX2 X2*X1
  4081. LX2 -24
  4082. BX4 X4+X2
  4083. MX6 4 GET RETRY COUNT AND BACKUP VSN BIT
  4084. LX6 36-56
  4085. BX6 X6*X3
  4086. BX6 X4+X6 MERGE VSN, FLAGS AND RETRY INFORMATION
  4087. SA6 A4
  4088. BX7 X7-X7 CLEAR LWA+1 OF TABLE
  4089. SA7 A4+B1
  4090. SX6 A7 SET ADDRESS+1 OF LAST ENTRY
  4091. SA6 LSVL
  4092. SA2 AEVA CHECK FOR MORE MEMORY NEEDED
  4093. AX2 30
  4094. SX3 A7+/COMSMTX/RCALL+8
  4095. IX3 X2-X3
  4096. PL X3,AEVX IF NOT NEAR END OF FL
  4097. MEMORY CM,A2,R,X2+MEMI INCREASE FIELD LENGTH
  4098. EQ AEVX RETURN
  4099.  
  4100.  
  4101. AEVA VFD 30/RFL=,30/0 CURRENT FIELD LENGTH
  4102. ASF SPACE 4,10
  4103. ** ASF - ATTACH STAGE REQUEST FILE.
  4104. *
  4105. * EXIT STAGE REQUEST FILE ATTACHED.
  4106. *
  4107. * USES X - 1, 2, 6.
  4108. * A - 1, 6.
  4109. *
  4110. * MACROS ATTACH, DEFINE, INTRPT, MESSAGE, RECALL, RETURN,
  4111. * REWIND, ROLLOUT.
  4112.  
  4113.  
  4114. ASF SUBR ENTRY/EXIT
  4115. ASF1 ATTACH R,,,,W,,,DF,,RT ATTACH STAGE REQUEST FILE
  4116. SA1 X2 CHECK FOR ERRORS
  4117. MX6 -8
  4118. AX1 10-0
  4119. BX1 -X6*X1 EXTRACT ERROR CODE
  4120. ZR X1,ASF5 IF FILE ATTACHED SUCCESSFULLY
  4121. SX2 X1-/ERRMSG/FBS
  4122. ZR X2,ASF2 IF FILE BUSY
  4123. SX2 X1-/ERRMSG/FNF
  4124. ZR X2,ASF3 IF FILE NOT FOUND
  4125. SX2 X1-/ERRMSG/PFA
  4126. NZ X2,ASF1 IF NOT PF UTILITY ACTIVE
  4127. ASF2 INTRP PIT PROCESS INTERRUPT
  4128. MESSAGE ASFA,2,R POST MESSAGE
  4129. ROLLOUT ROLLOUT ON BUSY FILE
  4130. REWIND S1,R ASSURE ROLLOUT COMPLETE
  4131. EQ ASF1 RETRY *ATTACH*
  4132.  
  4133. * DEFINE FILE IF FILE MISSING.
  4134.  
  4135. ASF3 RETURN R
  4136. ASF4 RECALL GIVE UP CPU
  4137. DEFINE R,,,,,,,,,DF,N,L
  4138. SA1 X2
  4139. MX6 -8
  4140. AX1 10-0
  4141. BX1 -X6*X1 EXTRACT ERROR CODE
  4142. ZR X1,ASF5 IF DEFINE SUCCESSFUL
  4143. SX2 X1-/ERRMSG/PFA
  4144. NZ X2,ASF4 IF NOT PF UTILITY ACTIVE
  4145. INTRP PIT PROCESS INTERRUPT
  4146. MESSAGE ASFA,2,R POST MESSAGE
  4147. ROLLOUT ROLLOUT ON UTILITY ACTIVE
  4148. EQ ASF4 RETRY *DEFINE*
  4149.  
  4150. * FILE ATTACHED OR DEFINED.
  4151.  
  4152. ASF5 BX6 X6-X6 SET *FILE ATTACHED* FLAG
  4153. SA6 R-1
  4154. EQ ASFX RETURN
  4155.  
  4156.  
  4157. ASFA DATA C*WAITING FOR STAGE REQUEST FILE.*
  4158. GVS SPACE 4,15
  4159. ** GVS - GET VSN FOR STAGING TAPE.
  4160. *
  4161. * ENTRY FROM *LFM* WITH NO VSN SPECIFIED.
  4162. *
  4163. * EXIT (PVST) = PACKED VSN OF STAGING TAPE.
  4164. * VSN ADDED TO FET.
  4165. * TO *RMT* TO REQUEST TAPE.
  4166. *
  4167. * USES X - 0, 1, 2, 3, 5, 7.
  4168. * A - 1, 2, 3, 5, 7.
  4169. * B - 6, 7.
  4170. *
  4171. * CALLS ASF, BPD, BRE, COV, DXB, PRO, UVL.
  4172. *
  4173. * MACROS RDSB, RTRF, WRITER, WTSB.
  4174.  
  4175.  
  4176. GVS BSS 0 ENTRY
  4177. RJ ASF ATTACH STAGE REQUEST FILE
  4178. BX7 X7-X7 SET *OPERATOR ASSIGNMENT* FLAG
  4179. SA7 AA
  4180. BX1 X1-X1 SET *REQUEST FILE NOT YET READ*
  4181. GVS1 RJ UVL UPDATE STAGING TAPE VSN LIST
  4182. RJ BPD BUILD PREVIEW DISPLAY
  4183. RJ BRE BUILD RESOURCE ENVIRONMENT
  4184. SA1 RETE
  4185. SB6 X1
  4186. SB6 B6+B6 INDEX INTO *EVSB* FOR LAST ENTRY
  4187.  
  4188. * GET VSN OF NEXT AVAILABLE TAPE FROM *EVSB*.
  4189.  
  4190. GVS2 SA5 GVSA MASK FOR SECOND WORD OF *EVSB* ENTRY
  4191. MX0 36 MASK OF VSN/PACKNAM
  4192. GVS3 ZR B6,GVS12 IF NO AVAILABLE STAGING TAPES IN *EVSB*
  4193. SB6 B6-2 CHECK NEXT TAPE
  4194. SA1 EVSB+B6 LOAD *EVSB* ENTRY
  4195. SA2 A1+B1
  4196. BX3 X0*X1
  4197. BX6 X5*X2
  4198. ZR X3,GVS3 IF NO VSN PRESENT
  4199. NZ X6,GVS3 IF RESOURCE NOT AVAILABLE
  4200.  
  4201. * CONVERT VSN TO PACKED VSN.
  4202.  
  4203. LX1 12 POSITION OFFSET
  4204. SB7 B1 ASSUME DECIMAL CONVERSION
  4205. BX5 X0*X1 EXTRACT OFFSET
  4206. RJ DXB CONVERT OFFSET TO BINARY
  4207. NZ X4,GVS2 IF ERROR IN CONVERSION
  4208. SX7 X6-5000
  4209. MX0 12
  4210. NG X7,GVS4 IF NOT BACKUP VSN
  4211. BX6 X7 USE LOWER SET (0-4095) IN COMPARISION
  4212. GVS4 SA1 A1 RELOAD VSN
  4213. BX2 X0*X1
  4214. LX2 -36 POSITION VSN PREFIX
  4215.  
  4216. * CHECK IF A STAGING REQUEST EXISTS FOR THIS TAPE.
  4217.  
  4218. SA3 STVL-1
  4219. BX6 X2+X6 BUILD PACKED VSN ENTRY
  4220. GVS5 SA3 A3+B1 ADVANCE TO NEXT ENTRY
  4221. ZR X3,GVS2 IF END OF VSN LIST ENCOUNTERED
  4222. IX7 X3-X6
  4223. MX0 -24
  4224. BX7 -X0*X7
  4225. NZ X7,GVS5 IF PACKED VSN DOES NOT MATCH
  4226.  
  4227. * CHECK TAPE DEVICE TYPE AGAINST REQUEST.
  4228.  
  4229. MX0 -6 GET RESOURCE INDEX
  4230. BX2 -X0*X1
  4231. BX4 X3
  4232. LX4 59-32
  4233. LX3 59-30
  4234. NG X4,GVS7 IF REQUEST FOR *AT* (ACS CARTRIDGE TAPE)
  4235. LX4 59-31-59+32
  4236. NG X4,GVS8 IF REQUEST FOR *CT* (CARTRIDGE TAPE)
  4237. SX7 X2-RGEP
  4238. ZR X7,GVS6 IF AVAILABLE TAPE IS *GE*
  4239. SX7 X2-RPEP
  4240. NZ X7,GVS5 IF AVAILABLE TAPE IS NOT *PE*
  4241.  
  4242. * AVAILABLE *PE* TAPE FOUND WITH STAGE REQUEST OUTSTANDING.
  4243.  
  4244. SX7 /COMSMTX/D16 SET 1600 CPI DENSITY
  4245. SX4 /COMSMTX/DVNT SET *NT* DEVICE TYPE
  4246. EQ GVS9 SET TAPE PARAMETERS INTO FET
  4247.  
  4248. * AVAILABLE *GE* TAPE FOUND WITH STAGE REQUEST OUTSTANDING.
  4249.  
  4250. GVS6 SX7 /COMSMTX/D62 SET 6250 CPI DENSITY
  4251. SX4 /COMSMTX/DVNT SET *NT* DEVICE TYPE
  4252. EQ GVS9 SET TAPE PARAMETERS INTO FET
  4253.  
  4254. * AVAILABLE *AT* TAPE FOUND WITH STAGE REQUEST OUTSTANDING.
  4255.  
  4256. GVS7 SX7 X2-RATP
  4257. NZ X7,GVS5 IF AVAILABLE TAPE IS NOT *AT*
  4258. SX7 /COMSMTX/D380 SET 38000 CPI DENSITY
  4259. SX4 /COMSMTX/DVAT SET *AT* DEVICE TYPE
  4260. EQ GVS9 SET TAPE PARAMETERS INTO FET
  4261.  
  4262. * AVAILABLE *CT* TAPE FOUND WITH STAGE REQUEST OUTSTANDING.
  4263.  
  4264. GVS8 SX7 X2-RCTP
  4265. NZ X7,GVS5 IF AVAILABLE TAPE IS NOT *CT*
  4266. SX7 /COMSMTX/D380 SET 38000 CPI DENSITY
  4267. SX4 /COMSMTX/DVCT SET *CT* DEVICE TYPE
  4268. EQ GVS9 SET TAPE PARAMETERS INTO FET
  4269.  
  4270. * SET TAPE DESCRIPTORS, TAPE BLOCK DEFINITION, AND VSN.
  4271.  
  4272. GVS9 SA2 GVSC GET TAPE DESCRIPTORS
  4273. LX4 55-0
  4274. BX2 X2+X4 SET TAPE DEVICE TYPE
  4275. LX7 51-0
  4276. BX2 X2+X7 SET DENSITY
  4277. SX7 /COMSMTX/TFI
  4278. PL X3,GVS10 IF NOT *LI* FORMAT
  4279. SX7 /COMSMTX/TFLI
  4280. GVS10 SA5 TTFM+X7 GET TAPE FORMAT CHARACTERISTICS
  4281. LX7 30-0 SET TAPE FORMAT
  4282. BX7 X2+X7
  4283. SA2 F+FTAP GET REQUESTED OPTIONS
  4284. MX0 12
  4285. LX0 -12
  4286. BX2 X0*X2 REQUESTED OPTIONS
  4287. BX7 X2+X7 TAPE DESCRIPTORS AND REQUESTED OPTIONS
  4288. SA7 A2 STORE TAPE DESCRIPTORS AND OPTIONS
  4289. LX5 -24
  4290. MX0 -24
  4291. BX7 -X0*X5 SET BLOCK SIZE (WORD COUNT AND OVERFLOW)
  4292. SA7 TB
  4293. SA6 PVST SET PACKED VSN BEING ASSIGNED
  4294. MX0 36
  4295. BX6 X0*X1 VSN
  4296. SA6 EVSN SET EXTERNAL VSN
  4297. SA6 IVSN SET INTERNAL VSN
  4298. SA6 F+FVSN SET VSN FOR POSSIBLE DUPLICATE VSN CHECK
  4299.  
  4300. * CLEAR TAPE ALTERNATE STORAGE VSN LIST.
  4301.  
  4302. SA2 STVL+1
  4303. ZR X2,GVS11 IF ONLY ONE VSN WAS IN LIST
  4304. SA1 GVSB
  4305. SX6 B1
  4306. LX6 36-0 POSITION *MORE VSN-S* FLAG
  4307. BX6 X6+X1
  4308. SA6 A1
  4309. GVS11 WTSB GVSB,0 SEND CODE TO CLEAR VSN LIST
  4310. WRITER R,R FLUSH BUFFER FOR REQUEST FILE
  4311. RJ COV CLEAR OPERATOR VERIFY FLAG
  4312. EQ RMT REQUEST MAGNETIC TAPE
  4313.  
  4314. * NO STAGING TAPE AVAILABLE.
  4315.  
  4316. GVS12 RETRF D DROP INTERLOCK
  4317. SX5 WSTG SET EVENT DESCRIPTOR
  4318. SA1 WSTG+1 *WAITING FOR STAGING TAPE.*
  4319. RJ PRO PROCESS TIMED EVENT ROLLOUT
  4320. SX1 B1 SET *REQUEST FILE ALREADY READ*
  4321. EQ GVS1 TRY AGAIN
  4322.  
  4323.  
  4324. GVSA VFD 12/,12/-0,6/-0,18/,12/-0
  4325. GVSB VFD 12//COMSMTX/SEV,12/,18/0,18//COMSMTX/RCALL CLEAR VSNS
  4326. DATA 0 END OF LIST MARKER
  4327.  
  4328. * CONSTANT TAPE DESCRIPTORS FOR STAGING TAPE ASSIGNMENT.
  4329. * LB=KL, CV=AS.
  4330.  
  4331. GVSC VFD 6/20B,3/0,3//COMSMTX/ANS,12/0,6/0,6/0,24/0
  4332. UVL SPACE 4,20
  4333. ** UVL - UPDATE STAGING TAPE VSN LIST.
  4334. *
  4335. * ENTRY STAGE REQUEST FILE ATTACHED.
  4336. * (X1) = 1, IF STAGE REQUEST FILE ALREADY READ.
  4337. *
  4338. * EXIT VSN LIST UPDATED AND TRANSMITTED TO *MAGNET*.
  4339. *
  4340. * USES X - 0, 1, 2, 6, 7.
  4341. * A - 0, 1, 2, 6.
  4342. * B - 6.
  4343. *
  4344. * CALLS AEV.
  4345. *
  4346. * MACROS MOVE, READEI, READW, RECALL, RDSB, WRITE, WRITEW, WTSB.
  4347.  
  4348.  
  4349. UVL SUBR ENTRY/EXIT
  4350. NZ X1,UVL2 IF REQUEST FILE ALREADY READ
  4351. BX6 X6-X6 INITIALIZE VSN LIST
  4352. SA6 STVL
  4353. SA6 A6+B1
  4354. SX6 A6-B1
  4355. SA6 LSVL
  4356.  
  4357. * READ REQUESTS FROM REQUEST FILE.
  4358.  
  4359. READEI R
  4360. UVL1 READW R,UVLA,/COMSMTX/PFTBL
  4361. NZ X1,UVL2 IF END OF FILE
  4362. SB6 UVLA SET ADDRESS OF ENTRY
  4363. RJ AEV ADD ENTRY TO VSN LIST
  4364. EQ UVL1 READ NEXT REQUEST FROM FILE
  4365.  
  4366. * READ REQUESTS FROM *MAGNET*-S FL AND COPY TO REQUEST FILE.
  4367.  
  4368. UVL2 WRITE R,* SET WRITE CODE
  4369. UVL3 RJ GSR GET STAGE REQUEST FROM *MAGNET*
  4370. NG B6,ERR3 IF CANNOT COMMUNICATE WITH *MAGNET*
  4371. ZR B6,UVL4 IF NO REQUEST
  4372. SA0 B6 HOLD ADDRESS
  4373. WRITEW R,B6,/COMSMTX/PFTBL COPY REQUEST TO REQUEST FILE
  4374. SB6 A0 ADDRESS OF STAGE REQUEST
  4375. RJ AEV ADD ENTRY TO VSN LIST
  4376. EQ UVL3 GET NEXT REQUEST FROM *MAGNET*
  4377.  
  4378. * TRANSFER UPDATED VSN LIST TO *MAGNET*.
  4379.  
  4380. UVL4 SX0 STVL
  4381. SX6 /COMSMTX/SEV
  4382. SA1 X0+B1
  4383. SX7 /COMSMTX/RCALL
  4384. LX6 48-0
  4385. BX6 X6+X7
  4386. ZR X1,UVL5 IF ONLY 1 VSN IN LIST
  4387. SX1 B1
  4388. UVL5 LX1 36-0
  4389. BX6 X6+X1 SET MULTIPLE VSN FLAG
  4390. SA6 UVLB SET VSN HEADER BLOCK
  4391. UVL6 MOVE /COMSMTX/RCALL-1,X0,UVLB+1
  4392. WTSB UVLB,0 SEND VSN LIST
  4393. UVL7 RECALL
  4394. RDSB MTSI,1,/COMSMTX/RCAL,UVLD
  4395. SA1 UVLD
  4396. NZ X1,UVL7 IF NOT PROCESSED
  4397. SA1 UVLB
  4398. SA2 LSVL GET LAST ENTRY+1
  4399. SX6 /COMSMTX/RCALL-1
  4400. IX0 X0+X6
  4401. LX6 18
  4402. IX6 X6+X1
  4403. IX7 X2-X0
  4404. SA6 A1
  4405. PL X7,UVL6 IF MORE IN LIST
  4406. EQ UVLX RETURN
  4407.  
  4408.  
  4409. UVLA BSSZ /COMSMTX/PFTBL REQUEST BLOCK
  4410. UVLB VFD 12//COMSMTX/SEV,30/**,18//COMSMTX/RCALL SET VSN
  4411. BSSZ /COMSMTX/RCALL-1
  4412. UVLD BSS 1 RSB TRANSFER BLOCK
  4413. TITLE PREVIEW DISPLAY SUBROUTINES.
  4414. BPD SPACE 4,15
  4415. ** BPD - BUILD PREVIEW DISPLAY.
  4416. *
  4417. * ENTRY (RESB) = DEMAND ENTRY OF CURRENT REQUESTOR.
  4418. *
  4419. * EXIT PREVIEW BUFFER BUILT AND UPDATED.
  4420. * ACS TAPE MOUNT REQUESTS SENT TO MAGNET.
  4421. *
  4422. * USES X - 0, 1, 2, 4, 6, 7.
  4423. * A - 1, 2, 6.
  4424. * B - 2, 3, 5.
  4425. *
  4426. * CALLS BSP, CRB, CTA, EPB, PTE.
  4427. *
  4428. * MACROS CLEAR, FATRF, PDATE, READ, READW, RETRF, SYSTEM, WTSB.
  4429.  
  4430.  
  4431. BPD SUBR ENTRY/EXIT
  4432.  
  4433. * CLEAR BUFFERS.
  4434.  
  4435. CLEAR RPRB,RPBL
  4436. CLEAR AMRB,RMBL
  4437.  
  4438. * ATTACH DEMAND FILE AND INITIALIZE FOR PRIORITY CALCULATION.
  4439.  
  4440. FATRF D,RM ATTACH DEMAND FILE
  4441. READ X2 READ DEMAND FILE
  4442. PDATE BPDA GET PACKED DATE AND TIME
  4443. SA1 BPDA
  4444. RJ PTE CONVERT TO ABSOLUTE SECONDS
  4445. SA6 BPDA
  4446.  
  4447. * CHECK DEMAND FILE ENTRY FOR MOUNT REQUEST.
  4448.  
  4449. BPD1 READW D,BUF,RDEL READ DEMAND FILE ENTRY
  4450. NZ X1,BPD4 IF END OF FILE
  4451. SA2 BUF+RREQ
  4452. ZR X2,BPD1 IF NO REQUEST
  4453.  
  4454. * CALCULATE PRIORITY.
  4455. *
  4456. * PRIORITY = ((A+1)*T)/(D-A).
  4457. *
  4458. * A = NUMBER OF UNITS ASSIGNED.
  4459. * T = TIME THE REQUEST HAS BEEN WAITING IN SECONDS.
  4460. * D = TOTAL NUMBER OF UNITS DEMANDED.
  4461.  
  4462. SX4 BUF
  4463. SB5 -1 COUNT TOTAL ASSIGNS AND DEMANDS
  4464. RJ CTA
  4465. SX4 B3
  4466. MX0 -10
  4467. BX4 -X0*X4 TRUNCATE ASSIGNS TO 10 BITS
  4468. BX0 -X0*X7 TRUNCATE DEMANDS TO 10 BITS
  4469. NZ X0,BPD2 IF DEMAND SPECIFIED
  4470. SX0 B1+ SET DEFAULT DEMAND
  4471. BPD2 SA1 BPDA
  4472. SA2 BUF+RREQ
  4473. IX1 X1-X2 T
  4474. IX6 X0-X4 D-A
  4475. SX0 X4+B1 A+1
  4476. IX0 X0*X1 (A+1)*T
  4477. IX0 X0/X6 ((A+1)*T)/(D-A)
  4478. NZ X0,BPD3 IF NON-ZERO PRIORITY
  4479. SX0 1 SET PRIORITY
  4480. BPD3 RJ EPB ENTER PREVIEW BUFFER
  4481. EQ BPD1 CHECK NEXT ENTRY
  4482.  
  4483. BPD4 RETRF D RETURN DEMAND FILE, RELEASE INTERLOCK
  4484.  
  4485. * ADD STAGING TAPE REQUESTS TO PREVIEW BUFFER.
  4486.  
  4487. RJ BSP BUILD STAGING TAPE PREVIEW ENTRIES
  4488.  
  4489. * COMPACT AND TRANSFER REQUEST BUFFERS.
  4490.  
  4491. SB2 RPRB
  4492. SB3 RPBE
  4493. RJ CRB COMPACT PREVIEW BUFFER
  4494. SA1 BPDB
  4495. SX2 B4-RPRB LENGTH OF ENTRIES
  4496. MX6 42
  4497. LX2 18
  4498. LX6 18
  4499. BX1 X6*X1
  4500. BX6 X1+X2 SET LENGTH IN REQUEST
  4501. SA6 A1
  4502. SYSTEM SFM,R,RPRB,TPDF*100B TRANSFER PREVIEW REQUESTS
  4503. WTSB BPDB,0 INDICATE PREVIEW DISPLAY UPDATED
  4504. SB2 AMRB+1
  4505. SB3 2
  4506. RJ CRB COMPACT MOUNT REQUEST BUFFER
  4507. SX7 /COMSMTX/AMR
  4508. SX6 B4-AMRB BUFFER LENGTH
  4509. LX7 48
  4510. BX6 X7+X6 MERGE REQUEST CODE AND BUFFER LENGTH
  4511. SA6 AMRB SET REQUEST HEADER
  4512. WTSB AMRB,0 SEND MOUNT REQUESTS TO MAGNET
  4513. EQ BPDX RETURN
  4514.  
  4515.  
  4516. BPDA CON 0 CURRENT TIME
  4517. BPDB VFD 12//COMSMTX/PDU,12/0,18/0,18/1
  4518. BSP SPACE 4,10
  4519. ** BSP - BUILD STAGING TAPE PREVIEW ENTRIES.
  4520. *
  4521. * USES X - ALL.
  4522. * A - 1, 2, 4, 6, 7.
  4523. *
  4524. * CALLS CDD, EPB.
  4525. *
  4526. * MACROS RDSB.
  4527.  
  4528.  
  4529. BSP SUBR ENTRY/EXIT
  4530. RDSB MTSI,1,/COMSMTX/TVSP,BSPA,X GET VSN LIST POINTER
  4531. SA1 SS
  4532. PL X1,BSPX IF *MAGNET* IS NOT ACTIVE
  4533. SA1 BSPA NUMBER OF STAGING VSN-S TO DISPLAY AT ONCE
  4534. ZR X1,BSPX IF NOT DISPLAYING STAGING VSN-S
  4535.  
  4536. * READ LIST OF STAGING TAPE VSN-S FROM *MAGNET*.
  4537.  
  4538. SX7 X1 GET FWA OF TABLE
  4539. AX1 30
  4540. SX5 X1 GET WORD COUNT
  4541. SX2 X5-BSPBL
  4542. NG X5,BSP1 IF NOT OVER MAXIMUM
  4543. SX5 BSPBL
  4544. BSP1 RDSB MTSI,X5,X7,BSPB READ VSN LIST FROM *MAGNET*
  4545. SX6 B0+
  4546. SA6 BSPC SET CURRENT OFFSET
  4547.  
  4548. * GET NEXT STAGING TAPE VSN.
  4549.  
  4550. BSP2 SA1 BSPC GET OFFSET
  4551. SA2 BSPB+X1 LOAD VSN ENTRY
  4552. SX6 X1+1
  4553. SA6 A1+
  4554. ZR X2,BSPX IF ALL VSN ENTRIES PROCESSED
  4555.  
  4556. * CONSTRUCT PREVIEW DATA FROM VSN WORD. THE PREVIEW ENTRY WILL
  4557. * HAVE AN EJT ORDINAL OF ZERO AND A USER NAME OF *(STAGE)*.
  4558.  
  4559. BX3 X2
  4560. LX3 59-32
  4561. SX7 2RAT RESOURCE TYPE FOR *AT* TAPE
  4562. NG X3,BSP3 IF REQUEST FOR *AT* TAPE
  4563. SX7 2RCT RESOURCE TYPE FOR *CT* TAPE
  4564. LX3 59-31-59+32
  4565. NG X3,BSP3 IF REQUEST FOR *CT* TAPE
  4566. SX7 /COMSMTX/DSTD RESOURCE TYPE FOR *NT* TAPE
  4567. BSP3 LX7 12
  4568. SA7 BUF+RQPV+PRES SET RESOURCE TYPE
  4569. MX7 -12
  4570. BX1 -X7*X2 VSN ORDINAL
  4571. LX2 0-12
  4572. BX0 -X7*X2 VSN PREFIX
  4573. BSP4 SX1 X1+10000 ASSURE LEADING ZEROS
  4574. RJ CDD CONVERT ORDINAL TO DISPLAY
  4575. MX3 4*6
  4576. LX4 6
  4577. BX3 X3*X4 EXTRACT DIGITS
  4578. LX0 48-0 POSITION VSN PREFIX
  4579. LX3 -12
  4580. BX6 X3+X0 MERGE PREFIX AND ORDINAL
  4581. SA6 BUF+RQPV+PVSN SET EXTERNAL VSN
  4582. SA6 BUF+RQPV+PVSI SET INTERNAL VSN
  4583. SA4 BSPD USER NAME = *(STAGE)*, EJT ORDINAL = ZERO
  4584. SX6 5 SET LABELED AND READ ONLY FLAGS
  4585. LX6 18
  4586. BX7 X4
  4587. SA6 BUF+RQPV+PFLG
  4588. SA7 BUF+RQPV+PJID SET USER AND JOB IDENTIFICATION
  4589. SX0 B1 SET SPECIAL PRIORITY
  4590. LX0 58-0
  4591. RJ EPB ENTER PREVIEW BUFFER
  4592. EQ BSP2 PROCESS NEXT ENTRY
  4593.  
  4594.  
  4595. BSPA BSS 1 STAGING TAPE VSN POINTER FROM *MAGNET*
  4596. BSPB BSSZ /COMSMTX/SVMX VSN LIST BUFFER
  4597. BSPBL EQU *-BSPB
  4598. BSPC BSS 1 CURRENT OFFSET INTO *BSPB*
  4599. BSPD VFD 42/7L(STAGE),6/0,12/0
  4600. CRB SPACE 4,15
  4601. ** CRB - COMPACT REQUEST BUFFER.
  4602. *
  4603. * ENTRY (B2) = ADDRESS OF FIRST UNCOMPACTED ENTRY.
  4604. * (B3) = UNCOMPACTED ENTRY LENGTH.
  4605. *
  4606. * EXIT BUFFER ENTRIES COMPACTED (PRIORITY WORD REMOVED).
  4607. * COMPACTED ENTRIES TERMINATED WITH ZERO WORD.
  4608. * (B4) = ADDRESS OF TERMINATOR WORD.
  4609. *
  4610. * USES X - 1, 6.
  4611. * A - 1, 6.
  4612. * B - 2, 4, 5.
  4613. *
  4614. * MACROS MOVE.
  4615.  
  4616.  
  4617. CRB SUBR ENTRY/EXIT
  4618. SB4 B2+ INITIALIZE COMPACTED ENTRY POINTER
  4619. SB5 B3-1 SET COMPACTED ENTRY LENGTH
  4620. CRB1 SA1 B2
  4621. ZR X1,CRB2 IF END OF ENTRIES
  4622. MOVE B5,B2+B1,B4 MOVE ENTRY
  4623. SB2 B2+B3 ADVANCE UNCOMPACTED ENTRY POINTER
  4624. SB4 B4+B5 ADVANCE COMPACTED ENTRY POINTER
  4625. EQ CRB1 CHECK NEXT ENTRY
  4626.  
  4627. CRB2 SX6 B0
  4628. SA6 B4 TERMINATE ENTRIES
  4629. EQ CRBX RETURN
  4630. EPB SPACE 4,15
  4631. ** EPB - ENTER PREVIEW OR MOUNT REQUEST BUFFER.
  4632. *
  4633. * ENTRY (X0) = PRIORITY.
  4634. * (BUF) = DEMAND FILE ENTRY.
  4635. *
  4636. * EXIT ENTRY ADDED TO PREVIEW BUFFER OR MOUNT REQUEST BUFFER
  4637. * IF POSSIBLE.
  4638. *
  4639. * USES A - 1, 5, 6.
  4640. * X - 1, 2, 3, 5, 6, 7.
  4641. *
  4642. * MACROS MOVE.
  4643.  
  4644.  
  4645. EPB SUBR ENTRY/EXIT
  4646.  
  4647. * CHECK FOR ACS TAPE REQUEST.
  4648.  
  4649. SA1 BUF+RQPV+PRES
  4650. MX6 -12
  4651. LX1 -12
  4652. BX1 -X6*X1 RESOURCE TYPE
  4653. SX1 X1-2RAT
  4654. NZ X1,EPB3 IF NOT *AT* TAPE REQUEST
  4655. SA5 AMRB+1-RMBE
  4656.  
  4657. * FIND LOCATION IN MOUNT REQUEST BUFFER.
  4658.  
  4659. EPB1 SA5 A5+RMBE GET NEXT ENTRY
  4660. IX5 X5-X0
  4661. PL X5,EPB1 IF OLD ENTRY PRIORITY .GE. NEW
  4662. SX6 AMRB+RMBL-1-RMBE ADDRESS OF LAST ENTRY
  4663. SX2 A5 SET SOURCE ADDRESS
  4664. IX1 X6-X2 SET TO MOVE ALL ENTRIES BUT LAST
  4665. NG X1,EPB2 IF AT END OF FULL BUFFER
  4666. SX3 A5+RMBE SET DESTINATION ADDRESS
  4667. MOVE X1,X2,X3 MOVE LOWER PRIORITY ENTRIES
  4668.  
  4669. * ENTER MOUNT REQUEST IN BUFFER.
  4670.  
  4671. SA1 BUF+RQPV+PVSN GET VSN
  4672. BX6 X0
  4673. SA6 A5 SET PRIORITY WORD
  4674. MX7 36
  4675. BX6 X7*X1 VSN
  4676. SA6 A5+1
  4677.  
  4678. * CHECK FOR PREVIEW DISPLAY MESSAGE ON ACS TAPE REQUEST.
  4679.  
  4680. EPB2 SA1 BUF+RQPV+PFLG
  4681. MX7 -6
  4682. LX1 -12
  4683. BX1 -X7*X1 PREVIEW DISPLAY MESSAGE CODE
  4684. ZR X1,EPBX IF NO PREVIEW DISPLAY MESSAGE
  4685.  
  4686. * FIND LOCATION IN PREVIEW BUFFER.
  4687.  
  4688. EPB3 SA5 RPRB-RPBE
  4689. EPB4 SA5 A5+RPBE GET NEXT ENTRY
  4690. IX5 X5-X0
  4691. PL X5,EPB4 IF OLD ENTRY PRIORITY .GE. NEW
  4692. SX6 RPRB+RPBL-1-RPBE ADDRESS OF LAST ENTRY
  4693. SX2 A5 SET SOURCE ADDRESS
  4694. IX1 X6-X2 SET TO MOVE ALL ENTRIES BUT LAST
  4695. NG X1,EPBX IF AT END OF FULL BUFFER
  4696. SX3 A5+RPBE SET DESTINATION ADDRESS
  4697. MOVE X1,X2,X3 MOVE LOWER PRIORITY ENTRIES
  4698.  
  4699. * ENTER REQUEST IN PREVIEW BUFFER.
  4700.  
  4701. BX6 X0
  4702. SA6 A5 SET PRIORITY WORD
  4703. MOVE PVEL,BUF+RQPV,A5+B1 MOVE PREVIEW ENTRY
  4704. EQ EPBX RETURN
  4705. TITLE UTILITY SUBROUTINES.
  4706. BEV SPACE 4,10
  4707. ** BEV - BUILD EVENT.
  4708. *
  4709. * ENTRY (X1) = VSN OR PACKNAME.
  4710. * (X3) = EVENT SKELETON.
  4711. *
  4712. * EXIT (X6) = ROLLOUT EVENT.
  4713. *
  4714. * USES X - 0, 1, 5, 6, 7.
  4715.  
  4716.  
  4717. BEV SUBR ENTRY/EXIT
  4718. MX0 -12 BUILD ROLLOUT EVENT
  4719. LX1 12
  4720. BX6 -X0*X1 SUM INDIVIDUAL BYTES OF VSN OR PACKNAME
  4721. LX1 12
  4722. BX5 -X0*X1
  4723. IX6 X5+X6
  4724. LX1 12
  4725. BX5 -X0*X1
  4726. IX6 X5+X6
  4727. LX1 12
  4728. BX5 -X0*X1
  4729. IX6 X5+X6
  4730. BX7 -X0*X6 TRUNCATE TO LOWER 12 BITS
  4731. LX7 12
  4732. BX6 X7+X3
  4733. EQ BEVX RETURN
  4734. BTR SPACE 4,10
  4735. ** BTR - BUILD TAPE ASSIGNMENT REQUEST BLOCK.
  4736. *
  4737. * ENTRY UDT ENTRY IN *UDT*.
  4738. *
  4739. * EXIT TAPE ASSIGNMENT REQUEST IN *BUF*.
  4740. *
  4741. * USES X - 1, 2, 3, 4, 6, 7.
  4742. * A - 1, 2, 3, 4, 6, 7.
  4743. *
  4744. * CALLS IUT.
  4745.  
  4746.  
  4747. BTR SUBR ENTRY/EXIT
  4748.  
  4749. * SET REQUEST HEADER.
  4750.  
  4751. SA1 AV
  4752. SA2 RETI
  4753. SX6 /COMSMTX/RMA
  4754. SX7 13B LENGTH OF REQUEST
  4755. LX6 48 FUNCTION CODE
  4756. SX1 X1-EVSB
  4757. AX1 1 *EVSB* INDEX
  4758. IX1 X1-X2 UDT ORDINAL
  4759. LX1 36
  4760. BX6 X6+X1
  4761. BX6 X6+X7
  4762. SA6 BUF SET REQUEST HEADER
  4763.  
  4764. * SET *UVSN* AND *UMST* FOR VERIFICATION BY MAGNET.
  4765.  
  4766. SA1 UDT+/COMSMTX/UVSN
  4767. SA2 UDT+/COMSMTX/UMST
  4768. BX6 X1
  4769. BX7 X2
  4770. SA6 A6+B1 BUF+1
  4771. SA7 A6+B1 BUF+2
  4772.  
  4773. * SET TAPE DESCRIPTORS AND BLOCK SIZE (*UST4*).
  4774.  
  4775. SA1 F+FTAP GET TAPE DESCRIPTORS
  4776. SA2 TB GET BLOCK SIZE
  4777. MX6 30
  4778. BX1 X6*X1
  4779. BX6 X1+X2 MERGE TAPE DESCRIPTORS AND BLOCK SIZE
  4780. SA6 A7+B1 BUF+3
  4781.  
  4782. * SET EJT ORDINAL, VSN FILE ADDRESS, AND REEL NUMBER, (*UVRI*).
  4783.  
  4784. SA1 JEEO GET EJT ORDINAL
  4785. SA2 VA GET VSN FILE RANDOM ADDRESS
  4786. SA3 T+FESN GET REEL NUMBER IF TMS REQUEST
  4787. MX0 -12
  4788. LX1 48
  4789. LX2 24
  4790. BX3 -X0*X3
  4791. LX3 12
  4792. BX1 X1+X2 MERGE EJT ORDINAL AND VSN FILE ADDRESS
  4793. BX6 X1+X3 MERGE REEL NUMBER
  4794. SA6 A6+B1 BUF+4
  4795.  
  4796. * SET TMS FLAGS (*UTMS*).
  4797.  
  4798. RJ IUT INITIALIZE *UTMS*
  4799. SA7 BUF+5
  4800.  
  4801. * SET TMS CATALOG INDEX (*UTCI*).
  4802.  
  4803. SA2 T+FRAN GET CATALOG INDEX
  4804. BX6 X2
  4805. SA6 A7+B1 BUF+6
  4806.  
  4807. * SET EXTERNAL VSN AND FLAGS (*UESN*).
  4808.  
  4809. SA1 EVSN GET EXTERNAL VSN
  4810. SA2 RESB+RQPV+PRES GET RESOURCE TYPE, ACCESS LEVEL, FLAGS
  4811. MX0 36
  4812. BX2 -X0*X2
  4813. BX6 X1+X2 MERGE VSN AND PREVIEW DISPLAY DATA
  4814. SA6 A6+B1 BUF+7
  4815.  
  4816. * SET INTERNAL VSN AND FLAGS (*UISN*).
  4817.  
  4818. SA1 IVSN GET INTERNAL VSN
  4819. SA2 RESB+RQPV+PFLG GET FLAGS
  4820. SA3 UDT+/COMSMTX/UST1
  4821. SA4 TMPF
  4822. BX2 -X0*X2
  4823. LX3 59-49
  4824. LX4 59-58
  4825. PL X3,BTR1 IF NOT ACS UNIT REQUEST
  4826. NG X4,BTR1 IF TMS CONTROLLED REQUEST
  4827. SA1 UDT+/COMSMTX/UVSN USE ACTUAL VSN
  4828. BTR1 BX1 X0*X1 VSN
  4829. BX6 X1+X2 MERGE VSN AND FLAGS
  4830. SA6 BUF+10B
  4831.  
  4832. * SET USER NAME, FAMILY ORDINAL, AND SPECIFIED FILE
  4833. * ACCESSIBILITY (*UUFN*).
  4834.  
  4835. SA1 F+FFAS GET SPECIFIED FILE ACCESSIBILITY
  4836. SA2 RESB+RQPV+PJID GET USER NAME AND FAMILY
  4837. MX0 48
  4838. SX6 7700B
  4839. LX1 -12
  4840. BX2 X0*X2
  4841. BX1 X6*X1
  4842. BX6 X1+X2 MERGE USER NAME, FAMILY, AND FILE ACCESS
  4843. SA6 A6+B1 BUF+11B
  4844.  
  4845. * SET JSN AND PACKED VSN FOR STAGING TAPE ASSIGNMENT.
  4846.  
  4847. SA1 JSN
  4848. SA2 PVST PACKED VSN, IF STAGING TAPE ASSIGNMENT
  4849. BX6 X1+X2
  4850. SA6 A6+B1 BUF+12B
  4851. EQ BTRX RETURN
  4852. BWM SPACE 4,15
  4853. ** BWM - BUILD WAITING FOR TAPE/PACK MESSAGE.
  4854. *
  4855. * ENTRY (X1) = COMPLEMENT OF MESSAGE SKELETON ADDRESS.
  4856. * PREVIEW INFORMATION IN *RESB+RQPV*.
  4857. *
  4858. * EXIT (X1) = ADDRESS OF UPDATED MESSAGE.
  4859. *
  4860. * USES X - 1, 2, 4, 6.
  4861. * A - 1, 2, 4.
  4862. * B - 2, 3, 5.
  4863. *
  4864. * CALLS SFN, SNM.
  4865.  
  4866.  
  4867. BWM SUBR ENTRY/EXIT
  4868. SA2 RESB+RQPV+PRES
  4869. SB5 X1 COMPLEMENT OF MESSAGE SKELETON ADDRESS
  4870. LX2 59-5
  4871. SA1 SCRATCH
  4872. NG X2,BWM1 IF SCRATCH VSN
  4873. SA4 RESB+RQPV+PVSN GET VSN OR PACKNAME
  4874. SA1 BLANK
  4875. BX1 X4-X1 CONVERT TRAILING BLANKS TO ZEROS
  4876. RJ SFN COMPUTE MASK OF NON-BLANK CHARACTERS
  4877. BX1 X7*X4 REMOVE TRAILING BLANKS
  4878. BWM1 SB2 1R+ REPLACEMENT CHARACTER
  4879. SB3 WTPB SET ASSEMBLY BUFFER ADDRESS
  4880. RJ SNM INSERT VSN OR PACKNAME INTO MESSAGE
  4881. SA2 RESB+RQPV+PRES GET RESOURCE TYPE AND UNIT COUNT
  4882. MX6 12
  4883. LX2 59-23
  4884. BX1 X6*X2 RESOURCE MNEMONIC
  4885. LX2 59-4-59+23
  4886. PL X2,BWM2 IF NO UNIT COUNT
  4887. MX6 -6
  4888. LX2 0-9-59+4+60
  4889. BX6 -X6*X2
  4890. SX6 X6+1R1 UNIT COUNT
  4891. LX6 42
  4892. BX1 X1+X6 MERGE UNIT COUNT
  4893. BWM2 SB5 WTPB MESSAGE BUFFER
  4894. SB2 1R- REPLACEMENT CHARACTER
  4895. RJ SNM INSERT RESOURCE TYPE INTO MESSAGE
  4896. SX1 WTPB ADDRESS OF NEW MESSAGE
  4897. EQ BWMX RETURN
  4898. CAL SPACE 4,15
  4899. ** CAL - CHECK ACCESS LEVEL.
  4900. *
  4901. * ENTRY (X2) = EST ORDINAL IN BITS 59-48.
  4902. * (X3) = *EVSB* ENTRY OF VSN TO BE CHECKED.
  4903. * (EQ) = EST ORDINAL IF SPECIFIED.
  4904. *
  4905. * EXIT (TPAL) .GE. 0, IF TAPE ACCESS LEVEL WITHIN RANGE,
  4906. * .LT. 0, IF TAPE ACCESS LEVEL OUT OF RANGE,
  4907. * UNDEFINED, IF NOT CORRECT EQUIPMENT.
  4908. * (X5) = 0, IF NO SPECIFIED EQUIPMENT
  4909. * .NE. 0, IF EQUIPMENT SPECIFIED.
  4910. *
  4911. * USES X - 0, 2, 5, 6, 7.
  4912. * A - 2, 5.
  4913.  
  4914.  
  4915. CAL SUBR ENTRY/EXIT
  4916. SA5 EQ
  4917. ZR X5,CAL1 IF NO SPECIFIED EQUIPMENT
  4918. BX5 X5-X2
  4919. AX5 48
  4920. NZ X5,CALX IF NOT CORRECT EQUIPMENT
  4921. CAL1 SA2 SSMA SYSTEM SECURITY MODE
  4922. BX6 X2
  4923. ZR X6,CAL2 IF UNSECURED SYSTEM
  4924. MX0 -3
  4925. BX7 X3
  4926. LX7 2-14
  4927. BX5 -X0*X7 LOWER BOUND OF *EVSB* ENTRY
  4928. LX7 2-11-2+14
  4929. BX7 -X0*X7 UPPER BOUND OF *EVSB* ENTRY
  4930. SA2 F+4
  4931. LX2 -36
  4932. BX2 -X0*X2 ACCESS LEVEL FROM FET
  4933. IX6 X7-X2
  4934. NG X6,CAL2 IF NOT WITHIN ACCESS LEVEL LIMITS
  4935. IX6 X2-X5
  4936. NG X6,CAL2 IF NOT WITHIN ACCESS LEVEL LIMITS
  4937. LX5 3
  4938. BX6 X7+X5 EQUIPMENT ACCESS LEVELS
  4939. CAL2 SA6 TPAL
  4940. BX5 X5-X5 SET EXIT CONDITION
  4941. EQ CALX RETURN
  4942. CBP SPACE 4,10
  4943. ** CBP - CALCULATE RESOURCE BYTE POSITION.
  4944. *
  4945. * ENTRY (X2) = 51/0, 3/UNIT COUNT, 6/RESOURCE INDEX.
  4946. *
  4947. * EXIT (B2) = RESOURCE INDEX, ADJUSTED FOR CONTINUATION WORD.
  4948. * (B4) = RIGHT SHIFT COUNT TO POSITION RESOURCE
  4949. * ASSIGNED AND DEMAND COUNT IN LOWER 12 BITS.
  4950. *
  4951. * USES B - 2, 4.
  4952. * X - 1, 2, 3, 7.
  4953.  
  4954.  
  4955. CBP SUBR ENTRY/EXIT
  4956. MX3 -6
  4957. BX1 -X3*X2 GET RESOURCE INDEX
  4958. AX2 6
  4959. SB2 X1+B1
  4960. SX7 RPEW*2
  4961. IX3 X7-X2
  4962. MX2 -2
  4963. BX2 -X2*X3
  4964. LX2 2
  4965. BX3 -X3
  4966. LX7 X2,B1
  4967. SB4 X2
  4968. AX3 2
  4969. SB4 B4+X7
  4970. SB2 B2+X3 ADJUST FOR CONTINUATION WORD
  4971. EQ CBPX RETURN
  4972. CCV SPACE 4,10
  4973. ** CCV - CHECK FOR CHANGE OF TMS SCRATCH VSN.
  4974. *
  4975. * EXIT REQUEST PARAMETERS UPDATED IF CHANGE IN TMS SCRATCH
  4976. * VSN.
  4977. *
  4978. * USES X - 0, 1, 2, 6, 7.
  4979. * A - 1, 2, 6, 7.
  4980. *
  4981. * CALLS RDF.
  4982.  
  4983.  
  4984. CCV SUBR ENTRY/EXIT
  4985.  
  4986. * CHECK CHANGE OF SCRATCH *TMS* VSN.
  4987.  
  4988. SA1 TMPF CHECK FOR NON-*TMS* TAPE
  4989. LX1 59-58
  4990. PL X1,CCVX IF NOT *TMS* CONTROLLED REQUEST
  4991. RJ RDF READ DEMAND FILE
  4992. SA1 DBUF+RQPV+PVSI GET INTERNAL VSN
  4993. SA2 IVSN
  4994. MX0 6*6
  4995. BX2 X1-X2
  4996. ZR X2,CCVX IF NO CHANGE IN VSN
  4997. SA1 RQ REPLACE INTERNAL VSN
  4998. SA7 A2 UPDATE INTERNAL VSN
  4999. BX1 -X0*X1
  5000. BX6 X1+X7
  5001. SA6 A1
  5002. SA1 DBUF+RQPV+PVSN GET NEW EXTERNAL VSN
  5003. BX7 X1
  5004. SA7 EVSN UPDATE EXTERNAL VSN
  5005. EQ CCVX RETURN
  5006. CDT SPACE 4,20
  5007. ** CDT - CHECK DEVICE TYPE.
  5008. *
  5009. * ENTRY (A2) = ADDRESS OF DEVICE TYPE TABLE.
  5010. * (X7) = DEVICE CODE RIGHT JUSTIFIED.
  5011. *
  5012. * EXIT (X2) = 0 IF DEVICE TYPE NOT FOUND IN TABLE.
  5013. * (X2) = DEVICE TYPE TABLE ENTRY IF FOUND.
  5014. * (A2) = ADDRESS OF TABLE ENTRY IF FOUND.
  5015. *
  5016. * USES X - 2, 7.
  5017. * A - 2.
  5018. *
  5019. * DEVICE TYPE TABLE FORMAT -
  5020. *
  5021. * 42/ PARAMETERS,6/0,12/ DC
  5022. *
  5023. * DC = TWO CHARACTER DEVICE CODE.
  5024.  
  5025.  
  5026. CDT SUBR ENTRY/EXIT
  5027. CDT1 BX7 X7-X2
  5028. SX7 X7
  5029. ZR X7,CDTX IF ENTRY FOUND
  5030. BX7 X7-X2
  5031. SA2 A2+B1
  5032. NZ X2,CDT1 IF MORE ENTRIES TO CHECK
  5033. EQ CDTX RETURN WITH NOT FOUND STATUS
  5034. CER SPACE 4,15
  5035. ** CER - CHECK FOR *CIO* ERROR ON TAPE FILE OPERATION.
  5036. *
  5037. * EXIT TO CALLER IF NO ERROR.
  5038. * TO *PER* IF ERROR.
  5039. * ERROR PROCESSING CLEARED IF ERROR DETECTED.
  5040. *
  5041. * USES X - 1, 6.
  5042. * A - 1.
  5043. * B - 2.
  5044. *
  5045. * MACROS SETFET.
  5046.  
  5047.  
  5048. CER SUBR ENTRY/EXIT
  5049. SA1 F GET FET STATUS
  5050. MX6 -5
  5051. LX1 -9
  5052. BX1 -X6*X1
  5053. ZR X1,CERX IF NO ERROR
  5054. SETFET F,ERP=0 CLEAR ERROR PROCESSING
  5055. SB2 B0 SET NO MESSAGE
  5056. EQ PER PROCESS ERROR
  5057. CET SPACE 4,15
  5058. ** CET - COPY EQUIPMENT STATUS TABLE (EST).
  5059. *
  5060. * ENTRY (B5) .LT. 0 IF INITIAL CALL.
  5061. *
  5062. * EXIT (B6) = NUMBER OF EST ENTRIES IN BUFFER.
  5063. * (B6) .LT. 0 IF END OF EST.
  5064. *
  5065. * ERROR TO *PER*, IF ENVIRONMENT ERROR.
  5066. *
  5067. * USES A - 1, 2, 6, 7.
  5068. * B - 6.
  5069. * X - 0, 1, 2, 5, 6, 7.
  5070. *
  5071. * MACROS RDSB.
  5072.  
  5073.  
  5074. CET SUBR ENTRY/EXIT
  5075. PL B5,CET1 IF NOT INITIAL CALL
  5076. SA1 /LWC/ESTP GET EST FWA
  5077. MX0 -12
  5078. LX1 24
  5079. SX7 X1
  5080. LX1 12
  5081. BX6 -X0*X1 GET NUMBER OF ENTRIES IN EST
  5082. SA7 CETA
  5083. SA6 A7+B1
  5084. CET1 SA1 CETA GET NEXT BLOCK EST ADDRESS
  5085. SA2 A1+B1 GET REMAINING EST ENTRIES
  5086. MX6 1
  5087. SX5 ESTEB EST ENTRIES PER BLOCK
  5088. SA6 SBUF2
  5089. IX7 X2-X5
  5090. PL X7,CET2 IF STILL MORE BLOCKS TO TRANSFER
  5091. SB6 -B1
  5092. ZR X2,CETX IF END OF EST
  5093. BX7 X7-X7
  5094. LX5 X2 SET REMAINING NUMBER OF ENTRIES
  5095. CET2 SA7 A2 DECREMENT REMAINING ENTRY COUNT
  5096. SB6 X5 NUMBER OF EST ENTRIES TO TRANSFER
  5097. R= X2,ESTE
  5098. IX5 X5*X2 LENGTH OF BLOCK TO TRANSFER
  5099. IX7 X1+X5 ADVANCE EST ADDRESS
  5100. SA7 A1
  5101. RDSB 0,X5,X1,A6 READ EST BLOCK
  5102. EQ CETX RETURN
  5103.  
  5104.  
  5105. CETA CON 0 FWA EST BLOCK
  5106. CON 0 NUMBER OF REMAINING ENTRIES IN EST
  5107. CFA SPACE 4,15
  5108. ** CFA - CHECK FILE ATTACH.
  5109. *
  5110. * ENTRY (X2) = FET ADDRESS.
  5111. * (X6) = FILE MODE FOR ATTACH.
  5112. * IF RESOURCE FILE IS ALREADY ATTACHED AND INTERLOCKED,
  5113. * IT WILL BE REWOUND.
  5114. *
  5115. * EXIT (X2) = FET ADDRESS.
  5116. * (CFAA) = .NE. 0, IF FILE BUSY ROLLOUT OCCURRED.
  5117. * RESOURCE FILE ATTACHED, INTERLOCKED AND REWOUND.
  5118. * TO *PIT*, IF INTERRUPT OCCURRED AND FILE ATTACH IS
  5119. * NOT REQUIRED.
  5120. * TO *PIT2*, IF RETRY COUNT ON FILE ATTACH EXHAUSTED
  5121. * AFTER INTERRUPT HAS OCCURRED.
  5122. *
  5123. * ERROR TO *PER*, IF *PFM* ERROR ON RESOURCE FILE ATTACH.
  5124. *
  5125. * USES A - 0, 1, 6, 7.
  5126. * B - 2, 3.
  5127. * X - 0, 1, 2, 4, 5, 6, 7.
  5128. *
  5129. * CALLS PRO, SFN.
  5130. *
  5131. * MACROS ATTACH, INTRP, MESSAGE, RECALL, REWIND.
  5132.  
  5133.  
  5134. CFA8 REWIND X2,R
  5135.  
  5136. CFA SUBR ENTRY/EXIT
  5137. SA6 CFAC SAVE DEMAND FILE ATTACH MODE
  5138. SA1 X2-1 CHECK FILE INTERLOCK
  5139. MX0 1
  5140. NZ X1,CFA8 IF FILE ALREADY ATTACHED
  5141. SX6 DBMC RESET MESSAGE COUNT
  5142. SA6 CFAB
  5143. SA1 X2+B1 SET EP BIT
  5144. LX0 -15
  5145. BX7 X0+X1
  5146. SA7 A1
  5147. EQ CFA2 ATTACH RESOURCE FILE
  5148.  
  5149. CFA1 SX0 X2+
  5150. INTRP CFA4 PROCESS INTERRUPT
  5151. SA1 AA CHECK FOR EQUIPMENT ASSIGNMENT
  5152. SX2 -1
  5153. PL X1,CFA5 IF NOT AUTOMATIC TAPE ASSIGNMENT
  5154. SX5 PFRE SET ROLLOUT EVENT DESCRIPTOR
  5155. SA1 PFRE+1 GET ROLLOUT MESSAGE ADDRESS
  5156. RJ PRO PROCESS TIMED EVENT ROLLOUT
  5157. SX2 X0+
  5158. CFA2 ATTACH X2,0,,,CFAC,,,DF,FA
  5159. SA1 X2
  5160. MX0 -8
  5161. LX1 -10
  5162. BX5 -X0*X1 ERROR STATUS
  5163. ZR X5,CFA3 IF NO ERRORS
  5164. SX6 X5-1
  5165. SX7 X5-16B
  5166. ZR X6,CFA1 IF FILE BUSY (1)
  5167. ZR X7,CFA1 IF PF UTILITY ACTIVE (16)
  5168. MX0 -3
  5169. BX6 -X0*X5
  5170. LX5 -3
  5171. BX7 -X0*X5
  5172. SX6 X6+2R00
  5173. LX7 6
  5174. MX0 7*6
  5175. IX5 X6+X7
  5176. LX1 10
  5177. LX5 -12
  5178. BX1 X0*X1
  5179. RJ SFN SPACE FILL FILE NAME
  5180. MX0 12
  5181. LX6 -18
  5182. BX6 -X0*X6
  5183. BX6 X6+X5
  5184. SB2 /PER/RFE *RESOURCE PF ERROR NN FILENAM.*
  5185. SA6 B2+2 ENTER *NN FILENAM*
  5186. MESSAGE CFAA ISSUE MESSAGE OF PF ERROR
  5187. EQ PER PROCESS ERROR
  5188.  
  5189. CFA3 MX7 1 SET RESOURCE FILE INTERLOCK
  5190. SA7 X2-1
  5191. SA1 X2+B1 CLEAR EP BIT
  5192. LX7 44-59
  5193. BX7 -X7*X1
  5194. SA7 A1+
  5195. SA3 CFAB
  5196. NZ X3,CFA8 IF NO MESSAGE POSTED
  5197. MESSAGE CFAB,2,R CLEAR MESSAGE
  5198. EQ CFA8 REWIND FILE AND RETURN
  5199.  
  5200. * PROCESS INTERRUPT. DEPENDING ON OPTION SELECTED, WILL DELAY
  5201. * AND RETRY DEMAND FILE ATTACH UNTIL SUCCESSFUL OR FOR
  5202. * REQUESTED NUMBER OF RETRIES. AFTER *DBMC* TRIES, AN
  5203. * OPERATOR MESSAGE IS POSTED. IF THE OPERATOR OVERRIDES THE
  5204. * JOB AT THIS POINT, THE DEMAND FILE ENTRY FOR THE JOB MAY BE
  5205. * LEFT WITH INCORRECT DEMAND AND ASSIGN COUNTS WHICH MAY
  5206. * SUBSEQUENTLY CAUSE A *0RF* HANG.
  5207.  
  5208. CFA4 SA2 UCRI CHECK FOR UPDATE REQUIRED
  5209. ZR X2,PIT IF UPDATE NOT REQUIRED
  5210. CFA5 SA1 CFAB CHECK WAIT FOR RESOURCE FILE MESSAGE
  5211. ZR X1,CFA6 IF MESSAGE ALREADY POSTED
  5212. SX6 X1-1
  5213. SA6 A1
  5214. NZ X6,CFA6 IF WAIT COUNT NOT EXHAUSTED
  5215. MESSAGE (=C*WAITING FOR RESOURCE FILE.*),2,R
  5216. CFA6 NG X2,CFA7 IF UPDATE REQUIRED
  5217. SX6 X2-1
  5218. ZR X6,PIT2 IF NUMBER OF RETRIES EXHAUSTED
  5219. SA6 A2+
  5220. CFA7 RECALL DELAY
  5221. SX2 X0
  5222. EQ CFA2 RETRY FILE ATTACH
  5223.  
  5224.  
  5225. CFAA BSSZ 3 PF ERROR MESSAGE BUFFER
  5226. CFAB CON DBMC DEMAND FILE BUSY MESSAGE COUNT
  5227. CFAC CON 0 DEMAND FILE ATTACH MODE
  5228. CLB SPACE 4,15
  5229. ** CLB - CLEAR BUFFER.
  5230. *
  5231. * ENTRY (A2) = LWA+1 OF BUFFER.
  5232. * (B5) = LENGTH OF BUFFER.
  5233. * (X6) = MASK.
  5234. *
  5235. * EXIT BUFFER CLEARED AS DIRECTED BY MASK.
  5236. * (A7) = FWA BUFFER.
  5237. *
  5238. * USES X - 2, 7.
  5239. * B - 5.
  5240. * A - 2, 7.
  5241.  
  5242.  
  5243. CLB SUBR ENTRY/EXIT
  5244. CLB1 SB5 B5-B1
  5245. NG B5,CLBX IF CLEAR COMPLETED
  5246. SA2 A2-B1
  5247. BX7 X6*X2
  5248. SA7 A2
  5249. EQ CLB1
  5250. CLM SPACE 4,10
  5251. ** CLM - CHECK LEVEL MATCH.
  5252. *
  5253. * *CLM* COMPARES THE ACCESS LEVELS OF THE *RET* TABLE AND
  5254. * THE *RDT* TABLE.
  5255. *
  5256. * ENTRY (B2) = POINTER +1 TO ENTRY IN *RET* TABLE.
  5257. * (B6) = POINTER TO ENTRY IN *RDT* TABLE.
  5258. *
  5259. * EXIT (X0) .LT.0, IF DEMAND OUTSIDE OF ACCESS LEVEL.
  5260. * .GE.0, IF DEMAND WITHIN ACCESS LEVEL.
  5261. *
  5262. * USES X - 0, 5, 6, 7.
  5263. * A - 5.
  5264.  
  5265.  
  5266. CLM SUBR ENTRY/EXIT
  5267. MX0 -3
  5268. SA5 B2-B1 *RET* TABLE ENTRY
  5269. LX5 0-45 POSITION ACCESS LEVEL
  5270. BX7 -X0*X5 LOWER BOUND ACCESS LEVEL
  5271. LX5 3
  5272. BX6 -X0*X5 UPPER BOUND ACCESS LEVEL
  5273. SA5 B6 *RDT* TABLE ENTRY
  5274. LX5 0-36 POSITION ACCESS LEVEL
  5275. BX5 -X0*X5
  5276. IX0 X6-X5 UPPER BOUND - REQUEST
  5277. NG X0,CLMX IF REQUEST ABOVE UPPER BOUND
  5278. IX0 X5-X7 REQUEST - LOWER BOUND
  5279. EQ CLMX RETURN
  5280. COV SPACE 4,10
  5281. ** COV - CLEAR OPERATOR VERIFY FLAG.
  5282. *
  5283. * EXIT OPERATOR VERIFY REQUIRED FLAG CLEARED IN *TMPF*.
  5284. *
  5285. * USES X - 2, 6.
  5286. * A - 2, 6.
  5287.  
  5288.  
  5289. COV SUBR ENTRY/EXIT
  5290. SA2 TMPF
  5291. SX6 B1
  5292. LX6 56-0
  5293. BX6 -X6*X2 CLEAR OPERATOR VERIFY FLAG
  5294. SA6 A2
  5295. EQ COVX RETURN
  5296. CRM SPACE 4,10
  5297. ** CRM - CHECK FOR RESOURCE MATCH.
  5298. *
  5299. * ENTRY (X0) = REQUESTED RESOURCE INDEX AND BYTE POINTER.
  5300. * (X5) = EQUIPMENT RESOURCE INDEX AND BYTE POINTER.
  5301. * (X2) = *PE* RESOURCE INDEX, IF *NT* REQUEST MATCH
  5302. * WITH *GE* EQUIPMENT ALLOWED.
  5303. *
  5304. * EXIT (X7) = 0, IF RESOURCES MATCH.
  5305. *
  5306. * USES X - 5, 7.
  5307.  
  5308.  
  5309. CRM SUBR ENTRY/EXIT
  5310. MX7 -6
  5311. BX5 -X7*X5
  5312. BX0 -X7*X0
  5313. IX7 X0-X5
  5314. ZR X7,CRMX IF MATCH
  5315. SX7 X0-RNTP
  5316. ZR X7,CRM1 IF *NT* REQUEST
  5317. SX7 X0-RPEP
  5318. NZ X7,CRMX IF NOT *PE* REQUEST
  5319. CRM1 SX7 X5-RHDP
  5320. ZR X7,CRMX IF *HD* EQUIPMENT
  5321. SX7 X5-RGEP
  5322. NZ X7,CRMX IF NOT *GE* EQUIPMENT
  5323. SX5 X0-RNTP
  5324. NZ X5,CRMX IF NOT *NT* REQUEST
  5325. SX7 X2-RPEP
  5326. EQ CRMX RETURN
  5327. CRV SPACE 4,10
  5328. ** CRV - CHECK RESOURCE VALIDITY.
  5329. *
  5330. * ENTRY RESB = RESOURCE DEMAND ENTRY, WITH INDIVIDUAL AND
  5331. * TOTAL DEMAND COUNTS CORRECTLY SET.
  5332. *
  5333. * ERROR TO *PER*, IF DEMAND VALIDATION ERROR.
  5334. *
  5335. * USES A - 1, 5.
  5336. * B - 2, 3, 4.
  5337. * X - ALL.
  5338.  
  5339.  
  5340. CRV SUBR ENTRY/EXIT
  5341. SB3 RMTL-1
  5342. SB4 RESB+RMTP
  5343. MX2 -6
  5344. BX3 X3-X3
  5345. SB2 /PER/DVE * DEMAND VALIDATION ERROR.*
  5346. SX4 7 MAXIMUM VALIDATION LIMIT
  5347. CRV1 SA1 B3+B4 COUNT TAPE DEMANDS
  5348. SB3 B3-B1
  5349. SB5 RPEW TAPE ENTRIES PER WORD
  5350. LX1 24
  5351. CRV1.0 BX5 -X2*X1
  5352. IX3 X3+X5
  5353. SB5 B5-B1 DECUREMENT ENTRIES PER WORD
  5354. LX1 12
  5355. NZ B5,CRV1.0 IF MORE ENTRIES IN WORD
  5356. PL B3,CRV1 IF MORE TAPE ENTRIES
  5357. MX0 3
  5358. SA5 RESB+RVAL
  5359. BX6 X0*X5 TAPES VALIDATION LIMIT
  5360. MX2 -12
  5361. LX6 3
  5362. BX2 -X2*X5 TOTAL DEMAND COUNT
  5363. IX1 X6-X4
  5364. LX5 3
  5365. IX2 X2-X3 REMOVABLE PACK DEMANDS
  5366. BX7 X0*X5 REMOVABLE PACK VALIDATION LIMIT
  5367. IX6 X6-X3
  5368. LX7 3
  5369. ZR X1,CRV2 IF UNLIMITED TAPES
  5370. NG X6,PER IF TAPE VALIDATION EXCEEDED
  5371. CRV2 IX1 X7-X4
  5372. ZR X1,CRVX IF UNLIMITED PACKS
  5373. IX7 X7-X2
  5374. NG X7,PER IF PACK VALIDATION EXCEEDED
  5375. EQ CRVX RETURN
  5376. CTA SPACE 4,15
  5377. ** CTA - COUNT TOTAL ASSIGNS AND DEMANDS.
  5378. *
  5379. * ENTRY (X4) = DEMAND ENTRY ADDRESS.
  5380. * (B5) .LT. 0, IF COUNT TOTAL ASSIGNS AND DEMANDS.
  5381. * (B5) .GE. 0, IF COUNT ONLY TAPE ASSIGNS AND DEMANDS.
  5382. *
  5383. * EXIT (B3) = ASSIGNED COUNT (TOTAL OR PARTIAL).
  5384. * (X7) = DEMAND COUNT (TOTAL OR PARTIAL).
  5385. *
  5386. * ERROR TO *PER*, IF TOTAL DEMAND OR ASSIGNED COUNT ERROR.
  5387. *
  5388. * USES A - 1, 2, 5.
  5389. * B - 2, 3, 6.
  5390. * X - 0, 1, 2, 3, 5, 6, 7.
  5391.  
  5392.  
  5393. CTA SUBR ENTRY/EXIT
  5394. SA2 CTAA GET ASSIGNED COUNT MASK
  5395. BX0 X0-X0
  5396. LX3 X2
  5397. BX6 X6-X6
  5398. LX2 -6 DEMAND COUNT MASK
  5399. SB2 RMTP
  5400. SB6 RMTP+RMTL+RRPL
  5401. LT B5,CTA1 IF COUNT TOTAL ASSIGNS AND DEMANDS
  5402. SB6 RMTP+RMTL SET UP TO COUNT TAPE ASSIGNS AND DEMANDS
  5403. CTA1 SA1 X4+B2 ADD UP MULTIPLE RESOURCE DEMANDS PER ENTRY
  5404. BX7 X2*X1
  5405. IX6 X6+X7
  5406. BX1 X3*X1 ADD UP MULTIPLE RESOURCE ASSIGNS PER ENTRY
  5407. IX0 X0+X1
  5408. SB2 B2+B1
  5409. LT B2,B6,CTA1 IF MORE RESOURCES TO COUNT
  5410. SB2 RPEW
  5411. BX7 X7-X7
  5412. SB3 B0
  5413. LX0 -6
  5414. MX2 -12
  5415. CTA2 BX1 -X2*X6 COUNT RESOURCE DEMANDS AND ASSIGNS
  5416. BX3 -X2*X0
  5417. IX7 X7+X1
  5418. SB3 B3+X3
  5419. LX6 -12
  5420. SB2 B2-1
  5421. LX0 -12
  5422. NZ B2,CTA2 IF MORE ENTRIES IN MULTIPLE COUNT
  5423. GE B5,CTAX IF COUNT ONLY TAPE ASSIGNS AND DEMANDS
  5424. SA5 X4+RVAL CHECK TOTAL DEMAND COUNT CORRECT
  5425. SX1 B3
  5426. BX6 -X2*X5
  5427. SB2 /PER/TDE * TOTAL DEMAND COUNT ERROR.*
  5428. LX5 -12
  5429. IX6 X6-X7
  5430. NZ X6,PER IF TOTAL DEMAND COUNT INCORRECT
  5431. BX2 -X2*X5 CHECK TOTAL ASSIGNED COUNT CORRECT
  5432. IX2 X2-X1
  5433. SB2 /PER/TAE * TOTAL ASSIGNED COUNT ERROR.*
  5434. NZ X2,PER IF TOTAL ASSIGNED COUNT INCORRECT
  5435. EQ CTAX RETURN
  5436.  
  5437.  
  5438. CTAA CON 7700770077007700B MASK FOR ASSIGNED COUNTS
  5439. CTE SPACE 4,15
  5440. ** CTE - CHECK FOR TAPE EQUIPMENT.
  5441. *
  5442. * ENTRY (X7) = DEVICE CODE RIGHT JUSTIFIED.
  5443. *
  5444. * EXIT (X2) = 0 IF NOT TAPE DEVICE.
  5445. * (X2) = *TTDV* ENTRY IF TAPE DEVICE.
  5446. * (X7) = TAPE DEVICE TYPE IF TAPE DEVICE.
  5447. *
  5448. * USES X - 2, 7.
  5449. * A - 2.
  5450. *
  5451. * CALLS CDT.
  5452.  
  5453.  
  5454. CTE SUBR ENTRY/EXIT
  5455. SA2 TTDV SET TO SEARCH TAPE DEVICE TABLE
  5456. RJ CDT CHECK FOR TAPE DEVICE
  5457. ZR X2,CTEX IF NOT TAPE DEVICE
  5458. SX7 A2-TTDV SET DEVICE TYPE
  5459. EQ CTEX RETURN
  5460. CTL SPACE 4,20
  5461. ** CTL - CHECK FOR TRACK LIMIT.
  5462. *
  5463. * ENTRY (X2) = FET ADDRESS.
  5464. *
  5465. * EXIT (X2) = FET ADDRESS.
  5466. * TO *URF1*, IF TRACK LIMIT (AFTER TIMED/EVENT ROLLOUT
  5467. * COMPLETED).
  5468. * TO *PIT*, IF TRACK LIMIT DETECTED AND INTERRUPT
  5469. * HAS OCCURRED.
  5470. *
  5471. * ERROR TO *PER*, IF CIO ERROR OTHER THAN TRACK LIMIT
  5472. * DETECTED.
  5473. *
  5474. * USES A - 0, 1, 3, 4, 6, 7.
  5475. * B - 2.
  5476. * X - ALL.
  5477. *
  5478. * CALLS PRO.
  5479. *
  5480. * MACROS INTRP, RETRF, STATUS.
  5481.  
  5482.  
  5483. CTL SUBR ENTRY/EXIT
  5484. SA1 X2 CHECK FOR TRACK LIMIT STATUS
  5485. MX0 -4
  5486. LX1 -10
  5487. BX3 -X0*X1
  5488. MX0 -8 CLEAR STATUS
  5489. BX6 X0*X1
  5490. LX6 10
  5491. SA6 A1
  5492. SA1 X2+FDTY CLEAR USER PROCESSING
  5493. MX0 1
  5494. LX0 45-59
  5495. BX6 -X0*X1
  5496. SA6 A1
  5497. ZR X3,CTLX IF NO ERROR STATUS
  5498. SX5 X3-1
  5499. NZ X5,CTL1 IF NOT TRACK LIMIT
  5500. STATUS X2,P SET EVENT
  5501. MX0 18
  5502. SA4 X2+6
  5503. LX0 -6
  5504. SA3 TLIM
  5505. BX4 X0*X4
  5506. LX4 36
  5507. BX7 X4+X3
  5508. SA7 RE
  5509. SA0 X2
  5510. RETRF X2 RETURN RESOURCE FILE, RELEASE INTERLOCK
  5511. SX5 RE SET ROLLOUT DESCRIPTOR
  5512. INTRP PIT PROCESS INTERRUPT
  5513. SA1 TLIM+1 GET ROLLOUT MESSAGE ADDRESS
  5514. RJ PRO PROCESS TIMED EVENT ROLLOUT
  5515. INTRP PIT PROCESS INTERRUPT
  5516. SX2 A0+ RESTORE FET ADDRESS
  5517. SA1 URFE RESET INITIAL RANDOM INDEX
  5518. BX6 X6-X6
  5519. LX7 X1
  5520. SA6 EF CLEAR EOR FLAG
  5521. SA7 URFA
  5522. JP URF1 RETRY RESOURCE FILE UPDATE
  5523.  
  5524. CTL1 SB2 /PER/CIO *CIO ERROR.*
  5525. EQ PER PROCESS ERROR
  5526. CUC SPACE 4,10
  5527. ** CUC - CHANGE USER NAME IN CONTROL POINT AREA.
  5528. *
  5529. * ENTRY (X1) = USER NAME TO CHANGE TO.
  5530. *
  5531. * EXIT USER NAME SET INTO WORD *UIDW*.
  5532. *
  5533. * USES X - 0, 6.
  5534. * A - 6.
  5535. *
  5536. * MACROS SETPFP.
  5537.  
  5538.  
  5539. CUC SUBR ENTRY/EXIT
  5540. SX6 B1+B1 SET USER NAME FLAG
  5541. SA6 CUCA+0
  5542. MX0 42 SET USER NAME
  5543. BX6 X0*X1
  5544. SA6 CUCA+2
  5545. SETPFP CUCA CHANGE USER NAME
  5546. EQ CUCX RETURN
  5547.  
  5548. CUCA BSSZ 3 *SETPFP* BLOCK
  5549. CUP SPACE 4,10
  5550. ** CUP - CLEAN UP REQUEST.
  5551. *
  5552. * ERROR TO *PER*, IF SHARE TABLE ERROR.
  5553. *
  5554. * USES A - 1, 3, 7.
  5555. * B - 2, 5, 6, 7.
  5556. * X - 1, 3, 5, 7.
  5557. *
  5558. * CALLS BPD, IRC, UDF.
  5559.  
  5560.  
  5561. CUP SUBR ENTRY/EXIT
  5562. SA1 DFDI CHECK FOR DEFAULT DEMAND
  5563. ZR X1,CUP1 IF DEFAULT DEMAND NOT SET
  5564. SB5 B1+B1 DECREMENT TOTAL AND RESOURCE DEMAND COUNTS
  5565. RJ IRC
  5566. CUP1 SB5 -B1 DECREMENT TOTAL AND RESOURCE ASSIGN COUNTS
  5567. RJ IRC
  5568. SX5 B2-RRPP
  5569. NG X5,CUP3 IF NOT REMOVABLE PACK
  5570. SA1 RQ
  5571. SB6 RRPS+RPSL
  5572. SB7 RRPS
  5573. CUP2 SB6 B6-1
  5574. LT B6,B7,CUP4 IF END OF SHARE TABLE
  5575. SA3 B6+RESB
  5576. BX5 X3-X1
  5577. AX5 18
  5578. NZ X5,CUP2 IF NO MATCH
  5579. BX7 X7-X7 CLEAR SHARE TABLE ENTRY
  5580. SA7 A3
  5581. CUP3 BX5 X5-X5 SET NO DEMAND FILE RETURN
  5582. RJ UDF UPDATE DEMAND FILE
  5583. RJ BPD BUILD PREVIEW DISPLAY
  5584. EQ CUPX RETURN
  5585.  
  5586. CUP4 SB2 /PER/STE *SHARE TABLE ERROR.*
  5587. JP PER PROCESS ERROR
  5588. CVA SPACE 4,10
  5589. ** CVA - CHECK VSN AVAILABILITY.
  5590. *
  5591. * EXIT (X6) = PREVIEW DISPLAY MESSAGE CODE IF OFFSITE TMS
  5592. * TAPE REQUESTED OR IF ACS MOUNT ERROR.
  5593. *
  5594. * USES X - 0, 1, 2, 3, 6, 7.
  5595. * A - 1, 2.
  5596. *
  5597. * MACROS RDSB.
  5598.  
  5599.  
  5600. CVA SUBR ENTRY/EXIT
  5601.  
  5602. * CHECK OFFSITE TMS TAPE.
  5603.  
  5604. CVA2 SA1 TMPF
  5605. SX6 VOS SET VSN OFFSITE
  5606. LX1 59-50
  5607. NG X1,CVAX IF OFFSITE TMS TAPE
  5608.  
  5609. * CHECK ACS MOUNT ERROR.
  5610.  
  5611. SX6 B0 SET NO MESSAGE
  5612. SA1 RESB+RQPV+PRES
  5613. MX7 -12
  5614. LX1 -12
  5615. BX1 -X7*X1 RESOURCE MNEMONIC
  5616. SX1 X1-2RAT
  5617. NZ X1,CVAX IF NOT ACS TAPE REQUEST
  5618. RDSB MTSI,/COMSMTX/VETL,/COMSMTX/VET,CVAA
  5619. SA1 EVSN
  5620. SA2 CVAA-1
  5621. MX0 36
  5622. SX6 B0+ SET NO MESSAGE
  5623. CVA1 SA2 A2+B1
  5624. ZR X2,CVAX IF END OF ENTRIES
  5625. BX3 X1-X2
  5626. BX3 X0*X3
  5627. NZ X3,CVA1 IF NOT SAME VSN
  5628. MX6 -6
  5629. BX6 -X6*X2 PREVIEW DISPLAY MESSAGE CODE
  5630. EQ CVAX RETURN
  5631.  
  5632.  
  5633. CVAA BSSZ /COMSMTX/VETL+1 MOUNT ERROR TABLE AND TERMINATOR
  5634. END SPACE 4,10
  5635. ** END - ENDING SEQUENCES.
  5636.  
  5637.  
  5638. END1 SA1 CF
  5639. ZR X1,END2 IF NOT *DMP=* CALL
  5640. SX7 /STATUS/OK RETURN OK STATUS
  5641. LX7 24
  5642. SA7 SPPR
  5643.  
  5644. END2 SA1 CI
  5645. ZR X1,END6 IF NO CHECKPOINT INDEX
  5646. SETFS F,X1 SET CHECKPOINT FILE STATUS
  5647. EQ END6 RENABLE CHARGE AND END
  5648.  
  5649. END4 SX5 B0 SET NO RETURN FLAG FOR DEMAND FILE
  5650. RJ UDF UPDATE DEMAND FILE
  5651. INTRC ON REENABLE INTERRUPT
  5652. INTRP PIT PROCESS INTERRUPT
  5653. RJ BPD BUILD PREVIEW DISPLAY
  5654.  
  5655. END6 SA1 R-1
  5656. NZ X1,END7 IF STAGE REQUEST FILE NOT ATTACHED
  5657. SETFS R,0 LEAVE FILE ATTACHED
  5658.  
  5659. END7 RENSR /COMSSRU/IARX REENABLE ACCUMULATION WITH IARX CHARGE
  5660.  
  5661. END ENDRUN
  5662. ERR SPACE 4,10
  5663. ** ERR - COMMAND ERROR PROCESSOR.
  5664.  
  5665.  
  5666. ERR SB2 /PER/ARG *ARGUMENT ERROR.*
  5667. EQ PER PROCESS ERROR
  5668.  
  5669.  
  5670. ** ERROR EXIT FOR RSB CALLS.
  5671.  
  5672.  
  5673. ERR1 LX2 1
  5674. NG X2,ERR3 IF NO SUBSYSTEM
  5675. * EQ ERR2 IF SYSTEM ERROR
  5676.  
  5677.  
  5678. ** SUB-SYSTEM COMMUNICATION ERRORS.
  5679.  
  5680.  
  5681. ERR2 SB2 /PER/SCE *SYSTEM ERROR.*
  5682. EQ PER PROCESS ERROR
  5683.  
  5684. ERR3 SB2 /PER/MAG *MAGNETIC TAPE SUBSYSTEM NOT ACTIVE.*
  5685. EQ PER PROCESS ERROR
  5686.  
  5687.  
  5688. ** STAGE PROCESSING ERRORS.
  5689.  
  5690.  
  5691. ERR4 SB2 /PER/SRF *STAGE REQUEST FILE ERROR.*
  5692. EQ PER PROCESS ERROR
  5693. GEE SPACE 4,15
  5694. ** GEE - GET EST ENTRY.
  5695. *
  5696. * ENTRY (X4) = EST ORDINAL.
  5697. *
  5698. * EXIT (BUF) = EST ENTRY OF LENGTH *ESTE*.
  5699. * (A1) = BUF.
  5700. * (X1) = FIRST WORD OF EST ENTRY.
  5701. *
  5702. * UESE A - 1, 6.
  5703. * X - 1, 5, 6, 7.
  5704. *
  5705. * MACROS RDSB.
  5706.  
  5707.  
  5708. GEE SUBR ENTRY/EXIT
  5709. SA1 /LWC/ESTP GET EST FWA
  5710. AX1 36
  5711. R= X5,ESTE
  5712. IX6 X4*X5
  5713. IX7 X6+X1
  5714. MX6 1
  5715. SA6 BUF
  5716. RDSB 0,X5,X7,A6 GET EST ENTY
  5717. SA1 BUF
  5718. EQ GEEX RETURN
  5719. GRI SPACE 4,15
  5720. ** GRI - GET RESOURCE INDEX.
  5721. *
  5722. * ENTRY (X1) = RESOURCE NAME PARAMETER.
  5723. *
  5724. * EXIT (B2) = RESOURCE DEMAND ENTRY PARAMETER INDEX.
  5725. * (B2) = 0 IF ENTRY NOT FOUND.
  5726. * (B7) = UNIT COUNT (1-8).
  5727. * (X6) = 51/0, 3/UNIT COUNT, 6/PARAMETER INDEX.
  5728. *
  5729. * USES A - 3.
  5730. * B - 2, 4, 7.
  5731. * X - 1, 2, 3, 6.
  5732.  
  5733.  
  5734. GRI SUBR ENTRY/EXIT
  5735. MX3 12
  5736. BX2 -X3*X1 NUMBER OF UNITS
  5737. SB7 B1+
  5738. BX1 X3*X1 RESOURCE TYPE
  5739. LX2 18
  5740. NZ X2,GRI2 IF NUMBER OF UNITS SPECIFIED
  5741. SB2 RMTP-1
  5742. SB4 RRPP
  5743. GRI1 SB2 B2+B7
  5744. SA3 TRID-RMTP+B2 GET RESOURCE IDENTIFIER
  5745. BX6 X1-X3
  5746. EQ B2,B4,GRI2 IF END OF TABLE
  5747. NZ X6,GRI1 IF NO MATCH
  5748. SX6 B2
  5749. EQ B7,B1,GRIX IF TAPE ENTRY FOUND
  5750. SA3 A3+B1 GET MAXIMUM NUMBER OF UNITS
  5751. SB7 B1
  5752. SX6 B2+100B
  5753. ZR X2,GRIX IF NUMBER OF UNITS NOT SPECIFIED
  5754. SB7 X2-1R0
  5755. UX3 X3,B4
  5756. SX6 B7 MERGE PARAMETER INDEX AND UNIT COUNT
  5757. LE B7,GRI3 IF INCORRECT NUMBER OF UNITS
  5758. GT B7,B4,GRI3 IF INCORRECT NUMBER OF UNITS
  5759. LX6 6
  5760. SX6 X6+B2
  5761. EQ GRIX RETURN
  5762.  
  5763.  
  5764. GRI2 SB4 RRPP+RRPL SET TO SEARCH REMOVABLE PACKS
  5765. SB2 RRPP-2
  5766. SX6 B7-B1
  5767. SB7 B7+B7
  5768. ZR X6,GRI1 IF NOT END OF SEARCH
  5769. GRI3 SB2 B0
  5770. EQ GRIX RETURN
  5771. GRL SPACE 4,15
  5772. ** GRL - GET RESOURCE LIST INDEX.
  5773. *
  5774. * ENTRY (X7) = DEVICE TYPE, 2 CHARACTERS, RIGHT-JUSTIFIED.
  5775. * (B4) = LENGTH OF TABLE.
  5776. *
  5777. * EXIT (B4) .LT. 0, IF RESOURCE LIST NOT FOUND.
  5778. * (B4) = INDEX OF RESOURCE LIST IN TRSL TABLE.
  5779. *
  5780. * USES A - 3.
  5781. * B - 4.
  5782. * X - 2, 3, 6.
  5783.  
  5784.  
  5785. GRL SUBR ENTRY/EXIT
  5786. MX2 -12
  5787. SA3 TRSL+B4
  5788. GRL1 SB4 B4-B1
  5789. SA3 A3-B1
  5790. NG B4,GRLX IF RESOURCE NOT FOUND IN LIST
  5791. GRL2 LX3 12
  5792. BX6 -X2*X3
  5793. ZR X6,GRL1 IF END OF RESOURCES IN THIS LIST
  5794. BX6 X6-X7
  5795. NZ X6,GRL2 IF NO MATCH
  5796. EQ GRLX RETURN
  5797. GTM SPACE 4,10
  5798. ** GTM - GET CURRENT TIME.
  5799. *
  5800. * EXIT (TM) = TIME IN ABSOLUTE SECONDS.
  5801. *
  5802. * USES X - 1.
  5803. * A - 1, 6.
  5804. *
  5805. * CALLS PTE.
  5806. *
  5807. * MACROS PDATE.
  5808.  
  5809.  
  5810. GTM SUBR ENTRY/EXIT
  5811. PDATE TM GET PACKED DATE AND TIME
  5812. SA1 TM
  5813. RJ PTE SET ABSOLUTE SECONDS
  5814. SA6 TM
  5815. EQ GTMX RETURN
  5816. IDE SPACE 4,15
  5817. ** IDE - INITIALIZE DEMAND ENTRY.
  5818. *
  5819. * EXIT EJT ORDINAL, VALIDATION LIMITS, AND
  5820. * RESOURCE IDENTIFIERS ENTERED INTO RESB BUFFER.
  5821. * SHARE TABLE AREA OF RESB BUFFER CLEARED.
  5822. *
  5823. * USES A - 1, 2, 3, 6, 7.
  5824. * B - 2, 3.
  5825. * X - 1, 2, 3, 6, 7.
  5826. *
  5827. * MACROS CLEAR, MOVE.
  5828.  
  5829.  
  5830. IDE SUBR ENTRY/EXIT
  5831. SA2 JEEO GET JOB EJT ORDINAL
  5832. SA3 SSJ=+/COMSSSJ/ALMS SET VALIDATION LIMITS
  5833. BX6 X2
  5834. LX3 12
  5835. SA6 RESB+RJID
  5836. MX1 6
  5837. BX7 X1*X3
  5838. SA7 RESB+RVAL
  5839. MOVE RMTL+RRPL,TRID,RESB+RMTP RESOURCE IDENTIFIERS
  5840. CLEAR RESB+RRPP+RRPL,RDEL-RRPP-RRPL CLEAR REMAINING ENTRY
  5841. EQ IDEX RETURN
  5842. IRC SPACE 4,25
  5843. ** IRC - INCREMENT RESOURCE COUNT.
  5844. *
  5845. * ENTRY (RI) = REQUESTED RESOURCE INDEX AND BYTE POINTER.
  5846. * (B5) = -1, IF DECREMENT TOTAL AND RESOURCE
  5847. * ASSIGN COUNTS.
  5848. * (B5) = 0, IF INCREMENT TOTAL AND RESOURCE ASSIGN
  5849. * COUNTS.
  5850. * (B5) = 1, IF INCREMENT TOTAL AND RESOURCE DEMAND
  5851. * COUNTS.
  5852. * (B5) = 2, IF DECREMENT TOTAL AND RESOURCE DEMAND
  5853. * COUNTS.
  5854. *
  5855. * EXIT (B2) = RESOURCE INDEX INTO DEMAND ENTRY.
  5856. * TOTAL AND RESOURCE DEMAND OR ASSIGNED COUNTS
  5857. * FOR (RI) RESOURCE IN RESB BUFFER DECREMENTED
  5858. * OR INCREMENTED BY 1.
  5859. *
  5860. * USES A - 2, 3, 6, 7.
  5861. * X - 0, 1, 2, 3, 6, 7.
  5862. *
  5863. * CALLS CBP.
  5864.  
  5865.  
  5866. IRC SUBR ENTRY/EXIT
  5867. SA2 RI CALCULATE RESOURCE BYTE POSITION
  5868. RJ CBP
  5869. SA2 RESB+RVAL INCREMENT/DECREMENT TOTAL COUNT
  5870. SA3 B2+RESB INCREMENT/DECREMENT RESOURCE COUNT
  5871. SX0 B1
  5872. LX1 X0,B4
  5873. GT B5,IRC1 IF PROCESSING DEMAND COUNT
  5874. LX0 12
  5875. LX1 6
  5876. IRC1 IX6 X2+X0
  5877. IX7 X3+X1
  5878. ZR B5,IRC2 IF INCREMENTING ASSIGN COUNTS
  5879. EQ B5,B1,IRC2 IF INCREMENTING DEMAND COUNTS
  5880. IX6 X2-X0 DECREMENT RESOURCE COUNTS
  5881. IX7 X3-X1
  5882. IRC2 SA6 A2
  5883. SA7 A3
  5884. EQ IRCX RETURN
  5885. IUT SPACE 4,10
  5886. ** IUT - INITIALIZE *UTMS*.
  5887. *
  5888. * EXIT (X7) = *UTMS*.
  5889. *
  5890. * USES X - 0, 2, 3, 7.
  5891. * A - 2.
  5892.  
  5893.  
  5894. IUT SUBR ENTRY/EXIT
  5895. SA2 TMPF
  5896. MX0 1
  5897. LX2 59-58
  5898. BX7 X0*X2 SET TMS CONTROL
  5899. LX7 12
  5900. LX2 59-57-59+58
  5901. BX3 X0*X2
  5902. LX3 13
  5903. BX7 X3+X7 SET BLANK LABEL FLAG
  5904. LX2 59-56-59+57
  5905. BX3 X0*X2
  5906. LX3 14
  5907. BX7 X3+X7 SET VERIFY FLAG
  5908. LX2 59-55-59+56
  5909. BX3 X0*X2
  5910. LX3 10
  5911. BX7 X3+X7 SET RESERVE SCRATCH FLAG
  5912. LX2 59-54-59+55
  5913. BX3 X0*X2
  5914. LX3 9
  5915. BX7 X3+X7 SET SYMBOLIC ACCESS FLAG
  5916. LX2 59-52-59+54
  5917. BX3 X0*X2
  5918. LX3 11
  5919. BX7 X3+X7 SET USER OWNED FLAG
  5920. EQ IUTX RETURN
  5921. IVE SPACE 4,20
  5922. ** IVE - INITIALIZE VSN ENTRY.
  5923. *
  5924. * ENTRY (X3) = FILE NAME IN UPPER 42 BITS.
  5925. * (B2) = 0, IF ONLY SET UP IDENTIFICATION IN VSN ENTRY,
  5926. * OTHERWISE INITIALIZE ENTIRE ENTRY.
  5927. *
  5928. * EXIT DEMAND FILE RANDOM INDEX, JOB EJT ORDINAL,
  5929. * AND FILE NAME SET IN VSNE BUFFER.
  5930. * AREA FOR VSN ENTRIES IN VSNE BUFFER CLEARED FOR ENTRY
  5931. * CONDITION (B2) .NE. 0.
  5932. *
  5933. * USES X - 1, 2, 4, 6, 7.
  5934. * A - 1, 2, 6, 7.
  5935. *
  5936. * MACROS CLEAR.
  5937.  
  5938.  
  5939. IVE SUBR ENTRY/EXIT
  5940. SA2 JEEO GET JOB EJT ORDINAL
  5941. SA1 /CPA/RFCW GET DEMAND FILE RANDOM INDEX
  5942. MX4 42
  5943. LX2 48
  5944. BX6 X4*X3 SET FILE NAME
  5945. BX7 -X4*X1
  5946. BX7 X7+X2
  5947. SA6 VSNE+VLFN
  5948. SA7 VSNE+VDFI
  5949. ZR B2,IVEX IF SET UP IDENTIFICATION ONLY
  5950. CLEAR VSNE+VRLC,VSNL-VRLC CLEAR VSN AREA
  5951. EQ IVEX RETURN
  5952. OPN SPACE 4,25
  5953. ** OPN - OPEN FILE.
  5954. *
  5955. * ENTRY (FET+10 - FET+13) = NOS LABEL FET PARAMETERS.
  5956. * (LABL) = NOS/BE LABEL PARAMETERS (STANDARD/EXTENDED).
  5957. * (OO) = OPEN OPTION.
  5958. * (RT) = REQUEST TYPE.
  5959. * (CF) = CALL FLAG.
  5960. *
  5961. * EXIT (X6) .NE. 0 IF FILE OPENED.
  5962. * (X6) = 0 IF FILE NOT OPENED.
  5963. * TO *PER* IF ERROR.
  5964. *
  5965. * ON OPEN/WRITE CALLS, FIELDS WHICH ARE BINARY ZERO WILL CAUSE
  5966. * THE TAPE EXECUTIVE TO USE DEFAULT VALUES.
  5967. * ON ALL OTHER OPEN CALLS, BINARY ZERO FIELDS WILL CAUSE THE
  5968. * TAPE EXECUTIVE TO SKIP THE COMPARISON BETWEEN THE TAPE LABEL
  5969. * AND THE FIELD.
  5970. *
  5971. * USES X - ALL.
  5972. * A - 1, 2, 3, 5, 6, 7.
  5973. * B - 2, 3, 5, 6.
  5974. *
  5975. * CALLS CDD, CER.
  5976. *
  5977. * MACROS MOVE, OPEN, POSMF, SETFET, SETRNR.
  5978.  
  5979.  
  5980. OPN SUBR ENTRY/EXIT
  5981. SA3 F+FTAP CHECK IF OPEN REQUIRED
  5982. SX6 B0+ SET FILE NOT OPENED
  5983. LX3 1
  5984. PL X3,OPNX IF UNLABELED
  5985. LX3 1
  5986. NG X3,OPNX IF NON-STANDARD LABELS
  5987. SETFET F,ERP=E SET ERROR PROCESSING
  5988. SA2 OO
  5989. SA1 F+FDTY
  5990. MX7 1
  5991. LX7 -18
  5992. NG X2,OPN7 IF STANDARD NOS/BE OPEN
  5993. BX7 X1+X7 SET XL BIT
  5994. SA7 A1
  5995. NZ X2,OPN6 IF EXTENDED NOS/BE OPEN
  5996.  
  5997. * TRANSLATE NOS FET TO EXTENDED LABEL.
  5998.  
  5999. SA1 F+FID1 SHIFT FILE IDENTIFIER
  6000. MX0 36
  6001. SA5 OPNA
  6002. BX6 X0*X1
  6003. LX6 -24
  6004. BX7 X5+X6
  6005. SA7 LABL
  6006. SA3 F+FID2
  6007. BX6 X0*X3
  6008. BX1 -X0*X1
  6009. BX7 X6+X1
  6010. LX7 36
  6011. SA2 F+FMSI SHIFT MULTI-SET IDENTIFIER
  6012. SA7 A7+B1
  6013. BX2 X0*X2
  6014. MX0 6
  6015. LX3 36
  6016. BX3 X0*X3
  6017. LX2 -6
  6018. BX7 X2+X3
  6019. SA7 A7+B1
  6020. MX0 30
  6021. SA2 F+FCRD SHIFT CREATION/RETENTION DATES
  6022. BX7 -X0*X2
  6023. BX5 X0*X2
  6024. MX3 0
  6025. ZR X2,OPN2 IF NO DATES
  6026. SA3 A5+B1 OPNB
  6027. NZ X7,OPN1 IF CREATION DATE
  6028. BX3 -X0*X3
  6029. OPN1 NZ X5,OPN2 IF RETENTION DATE
  6030. BX3 X0*X3
  6031. OPN2 MX0 12
  6032. LX7 18
  6033. BX5 X0*X2
  6034. SB6 B1+B1
  6035. LX5 12
  6036. BX7 X7+X5
  6037. MX0 18
  6038. BX7 X7+X3
  6039. LX2 12
  6040. SA7 A7+B6 LABL+4
  6041. BX2 X0*X2
  6042. MX0 6
  6043. SA1 F+FFAS SHIFT FILE ACCESSIBILITY
  6044. LX1 36
  6045. BX1 X0*X1
  6046. LX1 -18
  6047. SA5 A5+B6 OPNC
  6048. BX7 X1+X2
  6049. BX6 X7+X5
  6050. MX7 0
  6051. SA6 A7+B1 LABL+5
  6052. SA7 A6+B1 LABL+6
  6053. SA7 A7+B1 LABL+7
  6054. MX0 -15
  6055. SA1 F+FSQN SHIFT FILE SEQUENCE NUMBER
  6056. BX1 -X0*X1
  6057. ZR X1,OPN3 IF NO FILE SEQUENCE NUMBER
  6058. RJ CDD
  6059. MX0 -24
  6060. BX4 X0*X4
  6061. SA3 A5+B1 OPND
  6062. BX7 X3+X4
  6063. LX7 X7,B2
  6064. BX7 -X0*X7
  6065. LX7 30
  6066. MX0 -15
  6067. OPN3 SA7 A6-B6 LABL+3
  6068. SA1 F+FGRN SHIFT GENERATION NUMBER
  6069. BX1 -X0*X1
  6070. ZR X1,OPN4 IF NO GENERATION NUMBER
  6071. RJ CDD
  6072. MX0 -24
  6073. BX4 X0*X4
  6074. SA3 OPND
  6075. BX7 X3+X4
  6076. LX7 X7,B2
  6077. SA1 LABL+3
  6078. BX7 -X0*X7
  6079. LX7 6
  6080. BX7 X1+X7
  6081. SA7 A1
  6082. OPN4 MX0 -15
  6083. SA1 F+FSTN SHIFT FILE SECTION NUMBER
  6084. BX1 -X0*X1
  6085. ZR X1,OPN5 IF NO FILE SECTION NUMBER
  6086. RJ CDD
  6087. MX0 -24
  6088. BX4 X0*X4
  6089. SA3 OPND
  6090. BX7 X3+X4
  6091. LX7 X7,B2
  6092. BX7 -X0*X7
  6093. MX0 -18
  6094. SA1 LABL+2
  6095. LX7 -6
  6096. BX5 -X0*X7
  6097. BX6 X5+X1
  6098. SA6 A1
  6099. MX0 6
  6100. BX7 X0*X7
  6101. SA1 A1+1
  6102. BX7 X1+X7
  6103. SA7 A1
  6104. OPN5 MX0 -9
  6105. SA1 F+FGVN SHIFT GENERATION VERSION NUMBER
  6106. LX1 -15
  6107. BX1 -X0*X1
  6108. ZR X1,OPN6 IF NO GENERATION VERSION NUMBER
  6109. RJ CDD
  6110. MX0 -24
  6111. BX4 X0*X4
  6112. SA3 OPND
  6113. BX7 X3+X4
  6114. LX7 X7,B2
  6115. MX0 -12
  6116. BX7 -X0*X7
  6117. SA1 LABL+3
  6118. MX0 -6
  6119. LX7 -6
  6120. BX5 -X0*X7
  6121. BX6 X5+X1
  6122. SA6 A1
  6123. MX0 6
  6124. BX7 X0*X7
  6125. SA1 A1+B1
  6126. BX7 X1+X7
  6127. SA7 A1
  6128. OPN6 SX7 BUFL BUILD EXTENDED LABEL BUFFER
  6129. SX6 BUF
  6130. LX7 18
  6131. BX7 X6+X7
  6132. SA7 F+9 ENTER XL BUFFER POINTER
  6133. SX6 80
  6134. SA6 BUF EXTENDED LABEL CONTROL WORD
  6135. MOVE 8,LABL,BUF+1 MOVE EXTENDED LABEL
  6136. SX7 B0+
  6137. SA7 BUF+9 TERMINAL CONTROL WORD
  6138. EQ OPN8 CHECK TYPE OF OPEN
  6139.  
  6140. OPN7 MOVE 4,LABL,F+11B MOVE STANDARD LABEL PARAMETERS
  6141. OPN8 SA2 F+FTAP CHECK TYPE OF OPEN
  6142. SA1 MF CHECK MULTI-FILE POSITIONING
  6143. SA3 FS
  6144. MX0 -3
  6145. BX6 -X0*X1
  6146. PL X2,OPN9 IF NO LABEL WRITE REQUEST
  6147. NG X3,OPN9 IF NOT FIRST OPEN
  6148. SX3 X1-10B
  6149. NG X3,OPN10 IF SEQUENCE NUMBER .LE. 1
  6150. OPN9 SX4 X6-4
  6151. PL X4,OPN11 IF POSMF
  6152. NG X2,OPN10 IF WRITE LABEL
  6153. OPEN F,ALTER,R
  6154. EQ OPN12 CHECK FOR ERROR
  6155.  
  6156. OPN10 OPEN F,WRITE,R
  6157. EQ OPN12 CHECK FOR ERROR
  6158.  
  6159. OPN11 SETRNR ROLL ALLOW JOB ROLLOUT
  6160. POSMF F,R POSITION MULTI-FILE SET TAPE
  6161. OPN12 RJ CER CHECK ERROR
  6162. SETFET F,ERP=0 CLEAR ERROR PROCESSING
  6163. SX6 B1 SET FILE OPENED
  6164. EQ OPNX RETURN
  6165.  
  6166.  
  6167. OPNA VFD 60/0LHDR1
  6168. OPNB VFD 6/0,6/1H ,30/0,6/1H ,12/0
  6169. OPNC VFD 24/0,36/6H000000
  6170. OPND VFD 36/0,24/4H0000
  6171.  
  6172. LABL BSS 8 LABEL TEMPORARY
  6173. PER SPACE 4,20
  6174. ** PER - PROCESS ERROR.
  6175. *
  6176. * ENTRY (B2) = ERROR MESSAGE ADDRESS.
  6177. * (B2) = 0 IF ERROR MESSAGE ALREADY ISSUED.
  6178. *
  6179. * EXIT FATAL ERROR SET IN *SPPR* RESPONSE IF *DMP=* CALL.
  6180. * ERROR FLAG RESET IF INTERRUPT OCCURRED.
  6181. * JOB ABORTED IF COMMAND CALL.
  6182. * *RESEX* TERMINATED WITH *ENDRUN* IF *DMP=* CALL.
  6183. *
  6184. * USES A - 1, 6, 7.
  6185. * X - 0, 1, 3, 5, 6, 7.
  6186. *
  6187. * CALLS TMA.
  6188. *
  6189. * MACROS ABORT, INTRP, MESSAGE, RENSR, REPRIEVE, RETRF,
  6190. * UNLOAD.
  6191.  
  6192.  
  6193. PER BSS 0 ENTRY
  6194. SA1 D
  6195. AX1 18
  6196. SX1 X1
  6197. ZR X1,PER1 IF RESOURCE FILE NAMES NOT SET
  6198. RETRF D RETURN DEMAND FILE
  6199. RETRF V RETURN VSN FILE
  6200. PER1 SA1 F
  6201. AX1 18
  6202. ZR X1,PER2 IF REQUESTED FILE NAME NOT SET
  6203. SA1 FS CHECK IF FILE PREVIOUSLY ASSIGNED
  6204. NZ X1,PER2 IF FILE NOT TO BE RETURNED
  6205. UNLOAD F
  6206. PER2 SA1 R-1
  6207. NZ X1,PER2.1 IF *PFM* REQUEST FILE NOT PRESENT
  6208. UNLOAD R
  6209. PER2.1 SX7 /STATUS/FE SET FATAL ERROR
  6210. LX7 24
  6211. SA7 SPPR SET *DMP=* RESPONSE
  6212. RJ TMA PROCESS *TMS* ABORT
  6213. ZR B2,PER2.2 IF NO MESSAGE
  6214. MESSAGE B2 ISSUE ERROR MESSAGE TO DAYFILE
  6215. PER2.2 RENSR /COMSSRU/IARX REENABLE ACCUMULATION WITH IARX CHARGE
  6216. INTRP PER3 RESET ERROR IF INTERRUPT OCCURRED
  6217. SA1 CF CHECK CALL FLAG
  6218. NZ X1,END IF *DMP=* CALL
  6219. ABORT
  6220.  
  6221. PER3 REPRIEVE RPVB,RESET,0 RESET ERROR FLAG
  6222. PMM SPACE 4,10
  6223. ** PMM - PROCESS *MAGNET* MISSING.
  6224. *
  6225. * USES A - 1, 2.
  6226. * X - 1, 2, 5, 6.
  6227. *
  6228. * CALLS PRO.
  6229. *
  6230. * MACROS RETRF.
  6231.  
  6232.  
  6233. PMM SUBR ENTRY/EXIT
  6234. RETRF D RETURN DEMAND FILE, RELEASE INTERLOCK
  6235. SX5 MSUB SET MISSING SUBSYSTEM ROLLOUT DESCRIPTOR
  6236. SA1 MSUB+1 GET ROLLOUT MESSAGE ADDRESS
  6237. RJ PRO PROCESS TIMED EVENT ROLLOUT
  6238. EQ PMMX RETURN
  6239. PNE SPACE 4,10
  6240. ** PNE - PROCESS NAMED ERROR.
  6241. *
  6242. * ENTRY (B2) = MESSAGE ADDRESS.
  6243. * (X1) = 48/,12/ JOB EJT ORDINAL.
  6244. *
  6245. * EXITS TO *PER*.
  6246.  
  6247.  
  6248. PNE BSS 0 ENTRY
  6249. SA2 /LWC/EJTP GET FWA EJT
  6250. MX0 -12
  6251. BX1 -X0*X1
  6252. SX7 EJTE
  6253. IX7 X7*X1
  6254. AX2 36
  6255. IX7 X7+X2
  6256. RDSB 0,1,X7,PNEA GET JOB SEQUENCE NUMBER
  6257. SA1 PNEA
  6258. MX0 24 MERGE JOB SEQUENCE NUMBER INTO MESSAGE
  6259. SA2 B2
  6260. BX1 X0*X1
  6261. LX0 -6
  6262. BX2 -X0*X2
  6263. LX1 -6
  6264. BX6 X1+X2
  6265. SA6 A2
  6266. EQ PER PROCESS ERROR
  6267.  
  6268.  
  6269. PNEA VFD 1/1,59/0 JOB SEQUENCE NUMBER
  6270. SPACE 4,10
  6271. ** FATAL ERROR MESSAGES.
  6272.  
  6273.  
  6274. QUAL PER
  6275.  
  6276. ARG DATA C* ARGUMENT ERROR.*
  6277. AXD DATA C* JJJJ ASSIGNS EXCEED DEMANDS.*
  6278. CCI DATA C* INCORRECT COMMAND.*
  6279. CIO DATA C* CIO ERROR.*
  6280. CRT DATA C* CONFLICTING RESOURCE TYPES.*
  6281. DEC DATA C* NT DENSITY CONFLICT.*
  6282. DEX DATA C* DEMAND EXCEEDED.*
  6283. DFE DATA C* DEMAND FILE ERROR.*
  6284. DRC DATA C* NT DRIVE CONFLICT.*
  6285. DVE DATA C* DEMAND VALIDATION ERROR.*
  6286. EQN DATA C* EQUIPMENT NOT AVAILABLE.*
  6287. FCL DATA C* FRAME COUNT TOO LARGE.*
  6288. FCS DATA C* FRAME COUNT TOO SMALL.*
  6289. FRU DATA C* FORMAT REQUIRES UNLABELED TAPE.*
  6290. IAL DATA C* INCORRECT ACCESS LEVEL FOR EQUIPMENT.*
  6291. ICD DATA C* INCORRECT CONVERSION MODE FOR TAPE DEVICE TYPE.*
  6292. ICM DATA C* INCORRECT CONVERSION MODE.*
  6293. IDD DATA C* INCORRECT DENSITY FOR TAPE DEVICE TYPE.*
  6294. IDF DATA C* INCORRECT DENSITY FOR FORMAT.*
  6295. IDN DATA C* INCORRECT DENSITY.*
  6296. IEF DATA C* INCORRECT END OF TAPE OPTION FOR FORMAT.*
  6297. IEQ DATA C* INCORRECT EQUIPMENT.*
  6298. ILC DATA C* INCORRECT LFM CALL.*
  6299. IRC DATA C* INCORRECT RESOURCE COUNT.*
  6300. IRT DATA C* INCORRECT RESOURCE TYPE.*
  6301. IRS DATA C* INSUFFICIENT RESOURCES ON SYSTEM.*
  6302. ITF DATA C* INCORRECT TAPE FORMAT.*
  6303. MAG DATA C* MAGNETIC TAPE SUBSYSTEM NOT ACTIVE.*
  6304. MAR DATA C* JJJJ MISSING RESOURCE.*
  6305. MDE DATA C* MISSING DEMAND FILE ENTRY.*
  6306. MET DATA C* MULIPLE END OF TAPE OPTIONS SELECTED.*
  6307. MVE DATA C* MISSING VSN OR EQUIPMENT ASSIGNMENT.*
  6308. NAL DATA C* VSN ?????? NOT IN ACS LIBRARY.*
  6309. NSL DATA C* NOISE SIZE TOO LARGE.*
  6310. NRA DATA C* VSN ?????? NOT IN REQUESTED ACS.*
  6311. NVA DATA C* NOT VALIDATED FOR REQUESTED ACCESS LEVEL.*
  6312. NVS DATA C* NO VSN SPECIFIED ON ACS TAPE REQUEST.*
  6313. NVU DATA C* NOT VALIDATED FOR WRITING UNLABELED TAPES.*
  6314. PTL DATA C* PRIOR TAPE ASSIGNMENT LOST.*
  6315. RDE DATA C* RESOURCE DEMAND ERROR.*
  6316. REV DATA C* RESOURCE ENVIRONMENT ERROR.*
  6317. RFE DATA C* RESOURCE PF ERROR NN FFFFFF.*
  6318. RIE DATA C* RESEX ABORT - INTERNAL ERROR.*
  6319. RNS DATA C* RESOURCE NEGATIVE SHARE COUNT.*
  6320. ROT DATA C* RESEX ABORT - OPERATOR TERMINATION.*
  6321. RPO DATA C* REMOVABLE PACKS OVERCOMMITMENT.*
  6322. RRL DATA C* RESEX ABORT - SYSTEM RESOURCE LIMIT.*
  6323. RSF DATA C* RESOURCE SCRATCH FILE ERROR.*
  6324. RTI DATA C* RESEX ABORT - TERMINAL INTERRUPT.*
  6325. RTM DATA C* RESEX ABORT - TAPE MANAGER.*
  6326. SCE DATA C* SYSTEM ERROR.*
  6327. SRF DATA C* STAGE REQUEST FILE ERROR.*
  6328. STE DATA C* SHARE TABLE ERROR.*
  6329. STM DATA C* JJJJ SHARE TABLE MISMATCH.*
  6330. TAE DATA C* TOTAL ASSIGNED COUNT ERROR.*
  6331. TDC DATA C* TAPE DEVICE TYPE CONFLICT.*
  6332. TDE DATA C* TOTAL DEMAND COUNT ERROR.*
  6333. UAL DATA C* UNKNOWN ACCESS LEVEL NAME.*
  6334. UAV DATA C* USER ACCESS NOT VALID.*
  6335. UOL DATA C* VSN ?????? UNREADABLE OPTICAL LABEL.*
  6336. VFE DATA C* VSN FILE ERROR.*
  6337. WED DATA C* WRITE ENABLE AND DISABLE OPTIONS BOTH SELECTED.*
  6338. QUAL *
  6339. PRO SPACE 4,15
  6340. ** PRO - PROCESS TIMED EVENT ROLLOUT.
  6341. *
  6342. * ENTRY (X1) = ROLLOUT MESSAGE ADDRESS IF .GT. 0.
  6343. * = COMPLEMENT OF MESSAGE ADDRESS IF WAITING FOR
  6344. * PACK OR VSN MESSAGE.
  6345. * (X5) = TIMED/EVENT ROLLOUT DESCRIPTOR ADDRESS.
  6346. *
  6347. * CALLS BWM.
  6348. *
  6349. * MACROS MESSAGE, REWIND, ROLLOUT.
  6350.  
  6351.  
  6352. PRO SUBR ENTRY/EXIT
  6353. PL X1,PRO1 IF NOT WAITING FOR TAPE/PACK MESSAGE
  6354. RJ BWM BUILD MESSAGE
  6355. PRO1 MESSAGE X1,2,R ISSUE ROLLOUT MESSAGE
  6356. ROLLOUT X5 PERFORM TIMED/EVENT ROLLOUT
  6357. REWIND S1,R GUARANTEE ROLLOUT COMPLETE
  6358. MESSAGE PROA,2,R CLEAR ROLLOUT MESSAGE
  6359. EQ PROX RETURN
  6360.  
  6361.  
  6362. PROA CON 0
  6363. PIT SPACE 4,15
  6364. ** PIT - PROCESS INTERRUPT.
  6365. *
  6366. * ENTRY AT *PIT2*, IF ALL RETRIES OF DEMAND FILE ATTACH
  6367. * FAILED.
  6368. *
  6369. * EXIT TO *PER*.
  6370. *
  6371. * USES A - 1, 6.
  6372. * B - 2.
  6373. * X - 1, 5, 6.
  6374. *
  6375. * CALLS BPD, CUP, IDE, RDF, UDF.
  6376. *
  6377. * MACROS INTRC, MOVE.
  6378.  
  6379.  
  6380. PIT BSS 0 ENTRY
  6381. INTRC OFF DISABLE INTERRUPT
  6382. SA1 UCRI CHECK FOR DEMAND FILE CLEAN-UP REQUIRED
  6383. SX6 X1+B1
  6384. BX7 X7-X7
  6385. PL X6,PIT1 IF NO DEMAND FILE CLEAN-UP REQUIRED
  6386.  
  6387. * CLEAR PREVIEW DATA AND DECREMENT ASSIGN COUNT.
  6388.  
  6389. SA7 RESB+RREQ CLEAR MOUNT REQUEST
  6390. SA6 A1 INDICATE UPDATE IS REQUIRED
  6391. RJ CUP CLEAN-UP DEMAND FILE ENTRY
  6392. EQ PIT2 PROCESS ERROR
  6393.  
  6394. PIT1 SA1 PVDC CHECK FOR PREVIEW DISPLAY CLEAN-UP
  6395. ZR X1,PIT2 IF NO PREVIEW DATA
  6396.  
  6397. * CLEAR PREVIEW DATA IN DEMAND FILE AND REBUILD PREVIEW
  6398. * DISPLAY.
  6399.  
  6400. SX6 DFRC SET RETRY COUNT FOR DEMAND FILE ATTACH
  6401. SA6 UCRI
  6402. RJ IDE INITIALIZE DEMAND ENTRY
  6403. RJ RDF READ DEMAND FILE
  6404. MOVE RDEL,DBUF,RESB COPY DEMAND FILE ENTRY
  6405. SX6 B0 CLEAR MOUNT REQUEST
  6406. BX5 X5-X5 SET NO DEMAND FILE RETURN
  6407. SA6 RESB+RREQ
  6408. RJ UDF UPDATE DEMAND FILE
  6409. RJ BPD BUILD PREVIEW DISPLAY
  6410. PIT2 SA1 RPVA GET REPRIEVED ERROR MESSAGE ADDRESS
  6411. SB2 X1+
  6412. EQ PER PROCESS ERROR
  6413. RPV SPACE 4,15
  6414. ** RPV - REPRIEVE PROCESSOR.
  6415. *
  6416. * EXIT RESUMES EXECUTION WHERE INTERRUPTED, IF TERMINAL
  6417. * USER BREAK ONE.
  6418. * TO *PIT* TO PROCESS ERROR, IF *CPU ERROR EXIT*
  6419. * OR *PP CALL ERROR*.
  6420. * TO *PIT* TO PROCESS INTERRUPT, IF INTERRUPT IS
  6421. * ENABLED.
  6422. * RE-ENBLES SRU ACCUMULATION AND RESETS ERROR FLAG,
  6423. * IF *PP ABORT*.
  6424. * RESUMES PRIOR EXECUTION IN INTERRUPT HANDLER MODE,
  6425. * IF INTERRUPT PROCESSING IS DISABLED.
  6426. *
  6427. * USES A - 1, 2, 6, 7.
  6428. * X - 1, 2, 6, 7.
  6429. *
  6430. * MACROS RENSR, REPRIEVE.
  6431.  
  6432.  
  6433. RPV BSS 0 ENTRY
  6434.  
  6435. * IGNORE USER BREAK ONE.
  6436.  
  6437. SA1 RPVB+/COMSRPV/OSEF CHECK ERROR FLAG
  6438. MX6 -12
  6439. BX1 -X6*X1
  6440. SX1 X1-TIET
  6441. NZ X1,RPV1 IF NOT TERMINAL USER BREAK 1
  6442. REPRIEVE RPVB,RESUME,237B RESUME PRIOR EXECUTION
  6443.  
  6444. * CHECK ERROR CLASS.
  6445.  
  6446. RPV1 SA1 RPVB+/COMSRPV/ERCL CHECK ERROR CLASS
  6447. SX6 /PER/RTI SET TERMINAL INTERRUPT MESSAGE
  6448. LX1 59-19
  6449. MX7 18
  6450. NG X1,RPV2 IF TERMINAL INTERRUPT
  6451. LX1 59-15-59+19
  6452. SX6 /PER/ROT SET OPERATOR TERMINATION MESSAGE
  6453. NG X1,RPV2 IF OPERATOR TERMINATION
  6454. SX6 /PER/RRL SET RESOURCE LIMIT
  6455. LX1 59-14-59+15
  6456. NG X1,RPV2 IF RESOURCE LIMIT
  6457. LX1 59-16-59+14
  6458. PL X1,RPV1.1 IF NOT PP ABORT
  6459. RENSR /COMSSRU/IARX REENABLE SRU ACCUMULATION
  6460. REPRIEVE RPVB,RESET,0 RESET ERROR FLAG
  6461.  
  6462. * PROCESS *CPU ERROR EXIT* AND *PP CALL ERROR*.
  6463.  
  6464. RPV1.1 SX6 /PER/RIE SET INTERNAL ERROR
  6465. SA6 RPVA
  6466. EQ RPV3 PROCESS ERROR
  6467.  
  6468. * PROCESS OPERATOR INTERRUPT / RESOURCE LIMIT.
  6469.  
  6470. RPV2 SA6 RPVA SET INTERRUPT INDICATOR
  6471. SA1 RPVC CHECK FOR INTERRUPT INHIBITED
  6472. ZR X1,RPV3 IF CONTROL RETURN NOT REQUIRED
  6473. REPRIEVE RPVB,IRESUME,237B RESUME PRIOR EXECUTION
  6474.  
  6475. RPV3 SA1 F GUARANTEE ALL FETS COMPLETE
  6476. SX7 B1
  6477. BX6 X1+X7
  6478. SA2 D
  6479. SA6 A1
  6480. BX6 X2+X7
  6481. SA1 V
  6482. SA6 A2
  6483. BX6 X1+X7
  6484. SA2 R
  6485. SA6 A1
  6486. BX7 X2+X7
  6487. SA7 A2
  6488. EQ PIT PROCESS INTERRUPT
  6489.  
  6490.  
  6491. RPVA CON 0 INTERRUPT FLAG (ERROR MESSAGE ADDRESS)
  6492.  
  6493. RPVB BSS 0 REPRIEVE PROCESSING PARAMETER BLOCK
  6494. VFD 36/0,12/RPVBL,12/0
  6495. VFD 30/0,30/RPV
  6496. BSSZ 7
  6497. BSSZ 16 EXCHANGE PACKAGE
  6498. RPVBL EQU *-RPVB
  6499.  
  6500. RPVC CON 0 CONTROL RETURN REQUIRED INDICATOR
  6501. RSB SPACE 4,15
  6502. ** RSB - MAKE RSB REQUEST.
  6503. *
  6504. * ENTRY (X1) = SUBSYSTEM IDENTIFICATION.
  6505. * (X5) = WORD COUNT.
  6506. * (X6) = ADDRESS TO SEND TO.
  6507. * (X7) = ADDRESS FROM.
  6508. *
  6509. * USES A - 2, 7.
  6510. * X - 1, 2, 5, 6, 7.
  6511. *
  6512. * CALLS SYS=.
  6513.  
  6514.  
  6515. RSB SUBR ENTRY/EXIT
  6516. SA2 RSBA
  6517. LX5 36
  6518. BX6 X6+X5
  6519. LX7 18
  6520. BX7 X7+X6
  6521. LX1 18
  6522. BX6 X1+X2
  6523. SA7 X6
  6524. RJ =XSYS=
  6525. EQ RSBX RETURN
  6526.  
  6527.  
  6528. RSBA VFD 18/3LRSB,12/2000B,12/0,18/SS RSB CALL SKELETON
  6529. SPM SPACE 4,10
  6530. ** SPM - SET PREVIEW DISPLAY MESSAGE.
  6531. *
  6532. * ENTRY (X6) = *COMSRSX* MESSAGE CODE.
  6533. *
  6534. * EXIT MESSAGE CODE SET IN PREVIEW DATA.
  6535. *
  6536. * USES X - 1, 6, 7.
  6537. * A - 1, 6.
  6538.  
  6539.  
  6540. SPM SUBR ENTRY/EXIT
  6541. SX7 X6-MXPN
  6542. NG X7,SPM1 IF NOT EST ORDINAL MESSAGE
  6543. SA1 AV
  6544. SA1 X1+ GET *EVSB* ENTRY
  6545. MX7 9
  6546. BX1 X7*X1 EST ORDINAL
  6547. LX1 -3
  6548. BX6 X6+X1 MERGE ERROR CODE AND EST ORDINAL
  6549. SPM1 SA1 RESB+RQPV+PFLG
  6550. LX6 12
  6551. MX7 42
  6552. BX1 X7*X1
  6553. BX6 X1+X6 SET ERROR AND PARAMETER
  6554. SA6 A1+
  6555. EQ SPMX RETURN
  6556. TMA SPACE 4,10
  6557. ** TMA - *TMS* ABORT PROCESSING.
  6558. *
  6559. * EXIT CALL *TFM* IF *TMS* IS ENABLED TO CLEAN UP
  6560. * THE TAPE CATALOG ON INTERRUPTS OR ABORTS.
  6561. *
  6562. * USES X - 1.
  6563. * A - 1.
  6564. *
  6565. * MACROS RECALL, TMS.
  6566.  
  6567.  
  6568. TMA SUBR ENTRY/EXIT
  6569. SA1 TMPF
  6570. LX1 59-58
  6571. PL X1,TMAX IF NOT *TMS* CONTROLLED REQUEST
  6572. SA1 TA
  6573. NZ X1,TMAX IF TAPE ASSIGNED TO *MAGNET*
  6574. RECALL F WAIT FOR UNLOAD TO COMPLETE
  6575. TMS T,RAPS CALL TAPE MANAGER
  6576. EQ TMAX RETURN
  6577. WSB SPACE 4,10
  6578. ** WSB - WRITE SUBSYSTEM BLOCK TO MAGNET.
  6579. *
  6580. * ENTRY (X6) = BUFFER ADDRESS.
  6581. * (X7) = MAGNET BUFFER NUMBER.
  6582. *
  6583. * USES A - 1, 6.
  6584. * X - 1, 6, 7.
  6585. *
  6586. * CALLS SYS=.
  6587.  
  6588.  
  6589. WSB SUBR ENTRY/EXIT
  6590. SA1 WSBA
  6591. LX6 18
  6592. BX1 X1+X6 SET BUFFER ADDRESS IN CALL
  6593. SX6 MTSI
  6594. LX7 48
  6595. LX6 30
  6596. BX6 X7+X6 MERGE BUFFER NUMBER AND SUBSYSTEM ID
  6597. SA6 X1+ INITIALIZE STATUS WORD
  6598. BX6 X1
  6599. RJ SYS= SEND BLOCK TO MAGNET
  6600. EQ WSBX RETURN
  6601.  
  6602.  
  6603. WSBA VFD 18/3RSIC,6/20B,18/0,18/SS SIC CALL SKELETON
  6604. SPACE 4,10
  6605. ** COMMON DECKS.
  6606.  
  6607.  
  6608. *CALL COMCCDD
  6609. *CALL COMCCIO
  6610. *CALL COMCCOD
  6611. *CALL COMCCPM
  6612. *CALL COMCDTC
  6613. *CALL COMCDXB
  6614. QUAL COMSMTX
  6615. QUAL$ EQU 1
  6616. LIST X
  6617. *CALL COMCSRI
  6618. LIST *
  6619. QUAL *
  6620. GSR EQU /COMSMTX/GSR
  6621. *CALL COMCLFM
  6622. *CALL COMCMVE
  6623. *CALL COMCPFM
  6624. *CALL COMCRDW
  6625. *CALL COMCSFN
  6626. *CALL COMCSNM
  6627. *CALL COMCSYS
  6628. *CALL COMCWTW
  6629. TITLE BUFFERS.
  6630. ** BUFFERS.
  6631.  
  6632.  
  6633. USE //
  6634.  
  6635. RESB BSSZ RDEL DEMAND FILE ENTRY BUFFER
  6636. VSNE BSSZ VSNL NEW VSN FILE ENTRY BUFFER
  6637. RDT BSSZ RDTL RESOURCES DEMANDED TABLE
  6638. VBUF EQU * VSN FILE (RSXVID) I/O BUFFER
  6639. DBUF EQU * DEMAND FILE (RSXDID) I/O BUFFER
  6640. SBUF2L MAX IOBL,/COMSMTX/MUNIT*/COMSMTX/UNITL
  6641. SBUF2 BSSZ SBUF2L SCRATCH 2 I/O BUFFER
  6642. BUF BSSZ BUFL SHORT SCRATCH BUFFER
  6643. RET BSSZ RETL RESOURCE EQUIPMENT TABLE
  6644. EVSB BSSZ EVBL ENVIRONMENT VSN BUFFER
  6645. BUF2 EQU * SHORT SCRATCH BUFFER
  6646. ERRNG VSNL-/COMSMTX/MUNIT*2 *BUF2* OVERFLOWS *VSNB*
  6647. VSNB BSSZ VSNL VSN FILE ENTRY BUFFER
  6648. UDT BSSZ /COMSMTX/UNITL MAGNET UNIT DESCRIPTOR TABLE ENTRY
  6649.  
  6650. * BUFFERS OVERLAYING PRESET.
  6651.  
  6652. SBUF1 BSSN IOBL SCRATCH 1 I/O BUFFER
  6653. TDDS BSSN TDDSL TABLE OF CHAINED EQUIPMENTS
  6654. RPRB BSSN RPBL *RESEX* FORMAT PREVIEW BUFFER
  6655. AMRB BSSN RMBL ACS TAPE MOUNT REQUESTS BUFFER
  6656.  
  6657. * TAPE ALTERNATE STORAGE PROCESSING BUFFERS.
  6658.  
  6659. RBUF BSSN IOBL REQUEST FILE BUFFER
  6660. LSVL CON STVL ADDRESS OF LAST *STVL* ENTRY+1
  6661.  
  6662. * STVL - STAGING TAPE VSN LIST.
  6663. *
  6664. *T 20/ ,1/B,3/RTY,12/TF,24/ PACKED VSN
  6665. *
  6666. * B SELECT BACKUP VSN.
  6667. * RTY RETRY COUNTER.
  6668. * TF *FCTF* FLAGS FROM PFC.
  6669. * PACKED VSN PACKED VSN OF STAGING TAPE.
  6670.  
  6671. STVL BSSN 100B STAGING TAPE VSN LIST (CAN EXPAND)
  6672.  
  6673. RFL1 EQU *+4 END OF BUFFERS
  6674.  
  6675. END BSSN END TAG DEFINITION SEQUENCE
  6676. TITLE COMMAND PRESET ROUTINES.
  6677. ASSIGN SPACE 4,15
  6678. *** ASSIGN,DV,F,P1,P2,...,PN.
  6679. *
  6680. * ASSIGN FILE *F* TO DEVICE TYPE *DV* WITH PARAMETERS P1,P2,
  6681. * ...,PN. OPTIONAL PARAMETERS ARE APPLICABLE TO MAGNETIC TAPE
  6682. * ONLY.
  6683. *
  6684. *
  6685. * ASSIGN,N,F,P1,P2,...,PN.
  6686. *
  6687. * ASSIGN FILE *F* TO EST ORDINAL *N* WITH PARAMETERS P1,P2,
  6688. * ...,PN. OPTIONAL PARAMETERS ARE APPLICABLE TO MAGNETIC TAPE
  6689. * ONLY.
  6690.  
  6691.  
  6692. ASSIGN BSS 0 ENTRY
  6693.  
  6694. * VALIDATE COMMAND PARAMETERS.
  6695.  
  6696. SX7 -1 SET REQUEST TYPE FOR *ASSIGN*
  6697. SA7 RT
  6698. SA7 AL ACCESS LEVEL PERMISSION
  6699. SX5 ASSIGNC
  6700. RJ CCP COMMAND PROCESSOR
  6701. RJ POP PICK OUT PARAMETER
  6702. NG B5,ERR IF NO EQUIPMENT TYPE OR EST ORDINAL
  6703. SX1 X1-1R=
  6704. ZR X1,ERR IF SEPARATOR IS *=*
  6705. SA5 POPA ASSEMBLE EST ORDINAL
  6706. SB7 B0 ASSUME OCTAL VALUE
  6707. RJ DXB
  6708. NZ X4,ASG1 IF NON-NUMERIC DEVICE DESIGNATION
  6709. SA3 /LWC/ESTP CHECK FOR ORDINAL OUTSIDE EST
  6710. LX3 24
  6711. AX3 48
  6712. IX3 X6-X3
  6713. PL X3,ERR IF BEYOND LAST EST ORDINAL
  6714. EQ ASG2 SET EQUIPMENT IN FET
  6715.  
  6716. ASG1 SA5 A5 CHECK EQUIPMENT TYPE
  6717. MX2 12
  6718. BX7 -X2*X5
  6719. BX6 X5
  6720. NZ X7,ERR IF MORE THAN 2 CHARACTERS
  6721. ASG2 SA6 ASGA SAVE EQUIPMENT TYPE/NUMBER
  6722. RJ AFO ASSEMBLE FILE NAME AND TAPE OPTIONS
  6723. UNLOAD F,R RETURN FILE
  6724. SA4 ASGA
  6725. MX2 12
  6726. BX5 X2*X4 CHECK TYPE OF ASSIGN
  6727. SX7 B0
  6728. NZ X5,ASG3 IF ASSIGN BY EQUIPMENT TYPE
  6729. LX4 -12
  6730. ASG3 SA3 F+FDTY SET EQUIPMENT TYPE / EST ORDINAL IN FET
  6731. SA7 VA CLEAR VSN ADDRESS
  6732. BX6 -X2*X3
  6733. BX6 X6+X4
  6734. LX4 12
  6735. SA6 A3
  6736. ZR X5,ASG4 IF ASSIGN BY EST ORDINAL
  6737.  
  6738. * ASSIGN BY EQUIPMENT TYPE.
  6739.  
  6740. LX5 -48
  6741. BX7 X5
  6742. RJ CTE CHECK FOR TAPE DEVICE TYPE
  6743. ZR X2,ASG6 IF NON-TAPE DEVICE SPECIFIED
  6744. SX6 B0 SET ASSIGNMENT BY DEVICE TYPE
  6745. EQ ASG10 ASSIGN TAPE DEVICE
  6746.  
  6747. * ASSIGN BY EST ORDINAL.
  6748.  
  6749. ASG4 RJ GEE GET EST ENTRY
  6750. MX7 -12
  6751. LX1 -12
  6752. BX7 -X7*X1 DEVICE TYPE
  6753. SX5 X7 SAVE DEVICE TYPE
  6754. RJ CTE CHECK FOR TAPE EQUIPMENT
  6755. NZ X2,ASG5 IF TAPE DEVICE SPECIFIED
  6756. SX4 X4+7000B SET ASSIGN-BY-ORDINAL FLAG
  6757. LX4 48
  6758. IX6 X4+X3 RESET EST ORDINAL IN FET
  6759. SA6 A3
  6760. EQ ASG6 ASSIGN NON-TAPE EQUIPMENT
  6761.  
  6762. ASG5 SA1 ASGA GET EST ORDINAL
  6763. SX6 X1
  6764. LX6 -12
  6765. SA6 EQ SET EST ORDINAL
  6766. SX6 1 SET ASSIGN BY EST ORDINAL
  6767. EQ ASG10 ASSIGN TAPE DEVICE
  6768.  
  6769. * ASSIGN NON-TAPE DEVICE.
  6770.  
  6771. ASG6 SX1 X5-2RTT
  6772. SX7 X5+
  6773. NZ X1,ASG8 IF NOT *TT* DEVICE
  6774. SA1 OT
  6775. SX1 X1-IAOT
  6776. ZR X1,ASG9 IF INTERACTIVE JOB
  6777. SB2 /PER/IEQ * INCORRECT EQUIPMENT.*
  6778. EQ PER PROCESS ERROR
  6779.  
  6780. ASG8 SA2 SPVT SET TO CHECK *ASSIGN* DEVICE TYPES
  6781. RJ CDT CHECK DEVICE TYPE
  6782. NZ X2,ASG9 IF SPECIAL VALIDATION NOT REQUIRED
  6783. RJ CJV CHECK JOB VALIDATION
  6784. ASG9 REQUEST F,UNIT REQUEST NON-MAGNETIC TAPE EQUIPMENT
  6785. EQ END2 CHECK CHECKPOINT INDEX AND END
  6786.  
  6787. * ASSIGN TAPE DEVICE.
  6788.  
  6789. ASG10 SA3 TT
  6790. SA1 F+FTAP
  6791. SA6 AA SET ASSIGNMENT TYPE
  6792. SX6 X7-/COMSMTX/DVAT
  6793. SB2 /PER/IEQ * INCORRECT EQUIPMENT.*
  6794. ZR X6,PER IF *AT* DEVICE TYPE
  6795. MX6 -2
  6796. LX7 55
  6797. LX6 55
  6798. ZR X3,ASG11 IF NO OPTIONAL DEVICE TYPE PARAMETER
  6799. BX2 X1-X7
  6800. BX2 -X6*X2
  6801. ZR X2,ASG12 IF SAME DEVICE TYPE
  6802. SB2 /PER/TDC * TAPE DEVICE TYPE CONFLICT*.
  6803. EQ PER PROCESS ERROR
  6804.  
  6805. ASG11 SX6 B1
  6806. BX7 X1+X7 SET DEVICE TYPE
  6807. SA6 A3 SET DEVICE TYPE SPECIFIED
  6808. SA7 A1
  6809. ASG12 RJ VCD VERIFY COMMAND DEFAULTS
  6810. EQ VTR VALIDATE TAPE REQUEST
  6811.  
  6812.  
  6813. ASGA CON 0 ASSIGNED DEVICE TYPE OR EST ORDINAL
  6814. LABEL SPACE 4,10
  6815. *** LABEL,F,P1,P2,...,PN.
  6816. *
  6817. * REQUEST AUTOMATIC ASSIGNMENT OF FILE *F* TO MAGNETIC TAPE OR
  6818. * VALIDATE OR WRITE LABELS ON ASSIGNED TAPE FILE *F* WITH
  6819. * PARAMETERS P1,P2,...PN.
  6820.  
  6821.  
  6822. LABEL BSS 0 ENTRY
  6823. SX7 B0 SET REQUEST TYPE FOR *LABEL*
  6824. SB1 1 B1=1
  6825. MX6 1
  6826. SA7 RT
  6827. SA6 AL ACCESS LEVEL PERMISSION
  6828. SX5 LABELC
  6829. RJ CCP COMMAND PROCESSOR
  6830. RJ AFO ASSEMBLE FILE NAME AND TAPE OPTIONS
  6831. SA1 FS
  6832. ZR X1,LRC IF *TE* FILE OR FILE NOT FOUND
  6833.  
  6834. * PROCESS *LABEL* COMMAND ON ASSIGNED TAPE FILE.
  6835.  
  6836. RJ VCD VERIFY COMMAND DEFAULTS
  6837. SA1 F+FTAP
  6838. RJ CTI CONVERT TAPE DESCRIPTORS
  6839. RJ VTD VERIFY TAPE DESCRIPTORS
  6840. NZ B2,PER IF ERROR IN TAPE DESCRIPTORS
  6841. BX6 X1 UPDATE TAPE DESCRIPTORS
  6842. SA6 A1
  6843. RJ TBD BUILD TAPE BLOCK DEFINITION
  6844. RJ MFA CHECK *TMS* MULTI-FILE ASSIGNMENT
  6845. RJ OPN OPEN FILE
  6846. EQ END2 CHECK CHECKPOINT INDEX AND END
  6847. REQUEST SPACE 4,10
  6848. *** REQUEST,F,P1,P2,...,PN.
  6849. *
  6850. * REQUEST AUTOMATIC ASSIGNMENT OF FILE *F* TO MAGNETIC
  6851. * TAPE WITH PARAMETERS P1,P2,...,PN. THE TAPE MAY BE
  6852. * LABELED, UNLABELED, OR A MULTI-FILE SET.
  6853.  
  6854.  
  6855. REQUEST BSS 0 ENTRY
  6856. SX7 1 SET REQUEST TYPE
  6857. SX5 REQUESC
  6858. SA7 RT
  6859. MX6 1
  6860. SA6 AL ACCESS LEVEL PERMISSION
  6861. RJ CCP COMMAND PROCESSOR
  6862. RJ AFO ASSEMBLE FILE NAME AND TAPE OPTIONS
  6863. SA1 FS
  6864. NZ X1,END2 IF EXISTING FILE NOT ASSIGNED TO *TE*
  6865. EQ LRC PROCESS *REQUEST* COMMAND
  6866. RESOURC SPACE 4,10
  6867. *** RESOURC,RT1=N1/AL,RT2=N2/AL,.....RTN=NN/AL.
  6868. *
  6869. * SPECIFY MAXIMUM SIMULTANEOUS USAGE OF MAGNETIC TAPE AND
  6870. * REMOVABLE DISK PACK RESOURCES.
  6871. *
  6872. * RT RESOURCE TYPE.
  6873. * N NUMBER OF UNITS DEMANDED.
  6874. * AL ACCESS LEVEL, FOR TAPE DRIVES ONLY.
  6875. * ( SEE *COMSMLS* FOR MICRO DEFINITION.)
  6876.  
  6877.  
  6878. RESOURC BSS 0 ENTRY
  6879. SX5 RESOURS
  6880. RJ CCP COMMAND PROCESSOR
  6881. RES1 RJ BRE BUILD RESOURCE ENVIRONMENT
  6882. PL X0,RES2 IF SUBSYSTEM NOT MISSING
  6883. RJ PMM PROCESS *MAGNET* MISSING
  6884. EQ RES1 RETRY BUILDING ENVIRONMENT
  6885.  
  6886. RES2 RJ IDE INITIALIZE DEMAND ENTRY
  6887. RJ RDF READ DEMAND FILE
  6888. SA1 /CPA/RFCW
  6889. SX1 X1+
  6890. ZR X1,RES4 IF NO DEMAND FILE ENTRY
  6891.  
  6892. * CHECK FOR LOST TAPE ASSIGNMENT AND COUNT ASSIGNED UNITS.
  6893.  
  6894. MOVE RDEL,DBUF,RESB COPY DEMAND FILE ENTRY
  6895. BX6 X6-X6 CLEAR MOUNT REQUEST
  6896. SA6 RESB+RREQ
  6897. SA1 RESB+RVAL CHECK FOR LOST TAPES
  6898. SX4 RESB DEMAND FILE ENTRY ADDRESS
  6899. LX1 59-53
  6900. PL X1,RES3 IF NO TAPE ASSIGNMENT LOST
  6901. SB5 B0 GET MAGNETIC TAPE ASSIGNED COUNT
  6902. RJ CTA
  6903. SB2 /PER/PTL * PRIOR TAPE ASSIGNMENT LOST.*
  6904. NZ B3,PER IF LOST TAPES NOT RETURNED
  6905. MX2 1
  6906. SA1 RESB+RVAL CLEAR TAPE ASSIGNMENT LOST FLAG
  6907. LX2 53-59
  6908. BX6 -X2*X1
  6909. SA6 A1
  6910. RES3 SA3 JEEO GET JOB EJT ORDINAL
  6911. RJ CAU COUNT ASSIGNED UNITS
  6912.  
  6913. * PROCESS COMMAND PARAMETERS.
  6914.  
  6915. RES4 SA5 AP RESET ASSEMBLY POINTERS
  6916. SB6 X5+
  6917. RES5 ZR B6,RES8 IF END OF COMMAND
  6918. RJ POP CHECK TYPE OF RESOURCE
  6919. NG B5,ERR IF COMMAND ERROR
  6920. SX1 X1-1R=
  6921. NZ X1,ERR IF SEPARATOR IS NOT *=*
  6922. SA1 POPA
  6923. RES6 RJ GRI GET RESOURCE DEMAND ENTRY INDEX
  6924. NZ B2,RES7 IF INDEX FOUND
  6925. SA1 POPA CHECK FOR *LO*, *HI*, *HY* IDENTIFIERS
  6926. BX7 X1
  6927. LX7 12
  6928. SB4 TRSLL3
  6929. RJ GRL
  6930. SX1 2RMT
  6931. SB4 B4-TRMT
  6932. LX1 -12
  6933. ZR B4,RES6 IF RESOURCE IDENTIFIER FOUND
  6934. SB2 /PER/IRT * INCORRECT RESOURCE TYPE.*
  6935. EQ PER PROCESS ERROR
  6936.  
  6937. RES7 SA6 RI SAVE RESOURCE INDEX AND UNIT COUNT
  6938. RJ POP GET NUMBER OF RESOURCE UNITS
  6939. NG B5,ERR IF COMMAND ERROR
  6940. SX7 X1
  6941. SA7 SC SEPARATOR CHARACTER
  6942. SX1 X1-1R=
  6943. ZR X1,ERR IF SEPARATOR IS *=*
  6944. SA5 POPA
  6945. SB7 B1
  6946. RJ DXB CONVERT NUMBER
  6947. NZ X4,ERR IF ASSEMBLY ERRORS
  6948. SA6 RESA SAVE CONVERTED UNIT COUNT
  6949. RJ PAL PROCESS ACCESS LEVEL
  6950. SA5 RESA CONVERTED UNIT COUNT
  6951. BX6 X5
  6952. MX0 54
  6953. BX1 X0*X6
  6954. SB2 /PER/IRC * INCORRECT RESOURCE COUNT.*
  6955. NZ X1,PER IF DEMAND TOO LARGE
  6956. SA2 RI CALCULATE RESOURCE BYTE POSITION
  6957. RJ CBP
  6958. SA3 RESB+B2 ENTER NEW DEMAND COUNT
  6959. AX2 X3,B4 POSITION OLD COUNT
  6960. BX6 -X0*X6 NEW DEMAND COUNT
  6961. BX4 -X0*X2 OLD DEMAND COUNT
  6962. SA1 RESB+RVAL ADJUST TOTAL DEMAND COUNT
  6963. IX5 X6-X4 INCREMENT
  6964. IX7 X1+X5
  6965. LX5 B4 ADJUST INDIVIDUAL DEMAND COUNT
  6966. SA7 A1
  6967. IX7 X3+X5
  6968. LX2 -6
  6969. SA7 A3
  6970. BX2 -X0*X2 ASSIGNED COUNT
  6971. IX5 X6-X2
  6972. PL X5,RES5 IF ASSIGNEDS .LE. NEW DEMAND
  6973. SB2 /PER/RDE *RESOURCE DEMAND ERROR.*
  6974. EQ PER PROCESS ERROR
  6975.  
  6976. * CHECK VALIDITY OF REQUESTED RESOURCES.
  6977.  
  6978. RES8 SX4 RESB COUNT TAPE DEMANDS
  6979. SB5 B0+
  6980. RJ CTA
  6981. SB2 /PER/IRC * INCORRECT RESOURCE COUNT.*
  6982. SX1 X7-MMTD-1
  6983. PL X1,PER IF TOTAL TAPE DEMAND TOO LARGE
  6984. SA1 RESB+RVAL CHECK REMOVABLE PACK DEMANDS
  6985. MX0 -12
  6986. BX6 -X0*X1 TOTAL DEMAND COUNT
  6987. IX6 X6-X7
  6988. SX1 X6-MMSD
  6989. PL X1,PER IF TOTAL REMOVABLE PACK DEMAND TOO LARGE
  6990. RJ CCR CHECK FOR CONFLICTING RESOURCES
  6991. EQ RRS REQUEST RESOURCES
  6992.  
  6993.  
  6994. RESA CON 0 NUMBER OF RESOURCE UNITS
  6995. VSN SPACE 4,10
  6996. *** VSN (F1=VSN1,F2=VSN2,...,FN=VSNN)
  6997. *
  6998. * ASSOCIATE MAGNETIC TAPE REELS WITH VOLUME SERIAL
  6999. * NUMBERS TO FILE *FI*.
  7000.  
  7001.  
  7002. VSN BSS 0 ENTRY
  7003. SX5 VSNC
  7004. RJ CCP COMMAND PROCESSOR
  7005. SA1 /CPA/RFCW
  7006. SX1 X1
  7007. SX7 B1 INDICATE VSN ENTRY TO BE MADE
  7008. SA7 VP
  7009. NZ X1,VSN1 IF DEMAND ENTRY EXISTS
  7010. RJ IDE INITIALIZE DEMAND ENTRY
  7011. VSN1 SA1 AP
  7012. SB6 X1 RESET ASSEMBLY POINTER
  7013. ZR X1,END7 IF END OF COMMAND
  7014. SX6 B0 DISABLE LITERAL PROCESSING
  7015. MX4 -18
  7016. SA6 LIT
  7017. RJ POP PICK OUT PARAMETER
  7018. NG B5,ERR IF ERROR
  7019. GE B5,B1,ERR IF MORE THAN 1 WORD IN PARAMETER
  7020. BX4 -X4*X6
  7021. LX3 X6
  7022. SX2 X1-1R=
  7023. NZ X4,ERR IF FILE NAME ERROR
  7024. ZR X6,ERR IF NO FILE NAME
  7025. NZ X2,ERR IF SEPARATOR IS NOT *=*
  7026. RJ BVE BUILD VSN ENTRY
  7027. SA1 VSNE+VLFN
  7028. SX6 B1
  7029. BX6 X1+X6
  7030. SA6 VF
  7031. RJ FSC CHECK FOR EXISTING FILE
  7032. NZ B7,VSN1 IF FILE ALREADY ASSIGNED
  7033. RJ MFE MAKE VSN FILE ENTRY
  7034. EQ VSN1 PROCESS NEXT FILE
  7035. LRC SPACE 4,10
  7036. ** LRC - *LABEL* AND *REQUEST* COMMAND FILE ASSIGNMENT.
  7037. *
  7038. * EXIT TO *VTR* TO PROCESS TAPE REQUEST.
  7039. * TO *ROE* TO REQUEST OPERATOR EQUIPMENT ASSIGNMENT.
  7040. *
  7041. * USES X - 1, 6.
  7042. * A - 1, 6.
  7043. *
  7044. * CALLS FRA, MFE, SVI, VCD.
  7045.  
  7046.  
  7047. LRC BSS 0 ENTRY
  7048.  
  7049. * CHECK FOR VSN SPECIFIED ON *LABEL* OR *REQUEST* COMMAND.
  7050.  
  7051. RJ MFE MAKE RESOURCE FILE ENTRIES
  7052. RJ SVI SET VSN INDEX
  7053. RJ FRA CHECK *TMS* FIRST REEL ASSIGNMENT
  7054. NZ X5,LRC1 IF VSN NOT FOUND
  7055. RJ VCD VERIFY COMMAND DEFAULTS
  7056. EQ VTR VALIDATE TAPE REQUEST
  7057.  
  7058. * PROCESS *LABEL* OR *REQUEST* WITH NO VSN FOUND.
  7059.  
  7060. LRC1 SX6 B0+ SET OPERATOR ASSIGNMENT FLAG
  7061. SA6 AA
  7062. RJ VCD VERIFY COMMAND DEFAULTS
  7063. SA1 TT
  7064. NZ X1,VTR IF DEVICE TYPE SPECIFIED
  7065. * EQ ROE REQUEST OPERATOR ASSIGNMENT OF EQUIPMENT
  7066. ROE SPACE 4,15
  7067. ** ROE - REQUEST OPERATOR EQUIPMENT ASSIGNMENT.
  7068. *
  7069. * THIS ROUTINE IS CALLED WHEN THE OPERATOR MUST ASSIGN AN
  7070. * EQUIPMENT IN RESPONSE TO A *LABEL* OR *REQUEST* COMMAND OR
  7071. * *LABEL* MACRO WITH NO VSN SPECIFIED AND IT IS NOT KNOWN
  7072. * WHETHER TAPE EQUIPMENT IS REQUIRED.
  7073. *
  7074. * EXIT TO *RMT* IF TAPE EQUIPMENT SELECTED.
  7075. * TO *END1* IF NON-TAPE EQUIPMENT SELECTED.
  7076. *
  7077. * USES X - 1, 2, 4, 6, 7.
  7078. * A - 1, 2, 6, 7.
  7079. *
  7080. * CALLS CJV, CTE, CTI, CTP, ROA, TBD, VTD.
  7081.  
  7082.  
  7083. ROE BSS 0 ENTRY
  7084. SX4 B0 SET REQUEST OPERATOR EQUIPMENT ASSIGNMENT
  7085. RJ ROA REQUEST OPERATOR ASSIGNMENT
  7086. BX7 X4
  7087. RJ CTE CHECK FOR TAPE EQUIPMENT
  7088. ZR X2,END1 IF NON-TAPE EQUIPMENT ASSIGNED
  7089. SA7 ROEA SAVE DEVICE TYPE OF SELECTED EQUIPMENT
  7090. SA1 F+FTAP
  7091. RJ CTI CONVERT TAPE DESCRIPTORS
  7092. RJ VTD VERIFY TAPE DESCRIPTORS
  7093. NZ B2,PER IF ERROR IN TAPE DESCRIPTORS
  7094. BX6 X1
  7095. SA1 A1 PRESERVE UNCONVERTED TAPE DESCRIPTORS
  7096. SA2 ROEA
  7097. SA6 A1+ SET CONVERTED TAPE DESCRIPTORS
  7098. SX7 B4 TAPE DEVICE TYPE
  7099. BX4 X7-X2
  7100. ZR X4,ROE2 IF NO DEVICE TYPE CONFLICT
  7101. NZ B4,ROE1 IF NOT *MT* REQUEST
  7102. ERRNZ /COMSMTX/DVMT
  7103. LX2 55
  7104. BX1 X1+X2 TRY SELECTED DEVICE TYPE IN DESCRIPTORS
  7105. RJ CTI CONVERT TAPE DESCRIPTORS
  7106. RJ VTD VERIFY TAPE DESCRIPTORS
  7107. NZ B2,ROE1 IF CONFLICT USING SELECTED DEVICE TYPE
  7108. BX6 X1 SET CONVERTED TAPE DESCRIPTORS
  7109. SA6 A1
  7110. EQ ROE2 BUILD TAPE BLOCK DEFINITION
  7111.  
  7112. ROE1 SX7 B0+ REJECT OPERATOR SELECTED EQUIPMENT
  7113. SA7 EQ
  7114. ROE2 RJ TBD BUILD TAPE BLOCK DEFINITION
  7115. RJ CJV CHECK JOB VALIDATION
  7116. RJ CTP CHECK TAPE ACCESS PRIVILEGES
  7117. EQ RMT REQUEST MAGNETIC TAPE
  7118.  
  7119.  
  7120. ROEA CON 0 TAPE DEVICE TYPE
  7121. VTR SPACE 4,15
  7122. ** VTR - VALIDATE NON-TMS TAPE REQUEST.
  7123. *
  7124. * USES X - 1, 2, 6.
  7125. * A - 1, 2, 6.
  7126. *
  7127. * CALLS CAR, COV, CJV, CTI, CTP, TBD, VTD.
  7128. *
  7129. * EXIT TO *RMT*.
  7130. * OPERATOR VERIFY FLAG CLEARED IF *SYOT* JOB AND READ
  7131. * ONLY ACCESS.
  7132. * TO *PER* IF ACS TAPE REQUEST WITH NO VSN.
  7133.  
  7134.  
  7135. VTR BSS 0 ENTRY
  7136. SA1 F+FTAP
  7137. RJ CTI CONVERT TAPE DESCRIPTORS
  7138. RJ VTD VERIFY TAPE DESCRIPTORS
  7139. NZ B2,PER IF ERROR IN TAPE DESCRIPTORS
  7140. RJ CAR CHECK ACS TAPE REQUEST
  7141. BX6 X1 UPDATE TAPE DESCRIPTORS
  7142. SA6 F+FTAP
  7143. SA2 OT
  7144. LX1 59-39
  7145. SX2 X2-SYOT
  7146. NZ X2,VTR1 IF NOT SYSTEM ORIGIN JOB
  7147. PL X1,VTR1 IF NOT READ ONLY ACCESS
  7148. RJ COV CLEAR OPERATOR VERIFY FLAG
  7149. VTR1 RJ TBD BUILD TAPE BLOCK DEFINITION
  7150. RJ CJV CHECK JOB VALIDATION
  7151. RJ CTP CHECK TAPE ACCESS PRIVILEGES
  7152. EQ RMT REQUEST MAGNETIC TAPE
  7153. TITLE PRESET UTILITY ROUTINES.
  7154. CAR SPACE 4,20
  7155. ** CAR - CHECK ACS TAPE REQUEST NOT UNDER TMS CONTROL.
  7156. *
  7157. * ENTRY (X1) = TAPE DESCRIPTORS.
  7158. *
  7159. * EXIT (X1) = UPDATED TAPE DESCRIPTORS.
  7160. * READ ONLY ACCESS FORCED IF SYSTEM ORIGIN JOB, WRITE
  7161. * ACCESS NOT REQUIRED AND NOT CALLED FROM *SSJ=*
  7162. * PROGRAM.
  7163. * OPERATOR VERIFY FLAG CLEARED IF WRITE ACCESS REQUIRED
  7164. * BY SYSTEM ORIGIN *SSJ=* PROGRAM.
  7165. * TO *PER* IF ACS TAPE REQUEST WITH NO VSN, JOB NOT
  7166. * SYSTEM ORIGIN, OR WRITE ACCESS REQUESTED AND CALLER
  7167. * IS NOT *SSJ=* PROGRAM.
  7168. *
  7169. * USES X - 1, 2, 3, 4, 6.
  7170. * A - 2, 3, 4.
  7171. *
  7172. * CALLS COV.
  7173. *
  7174. * MACROS MESSAGE.
  7175.  
  7176.  
  7177. CAR SUBR ENTRY/EXIT
  7178. LX1 0-55
  7179. MX6 -2
  7180. BX6 -X6*X1 TAPE DEVICE TYPE
  7181. LX1 55-55-0+55
  7182. SX6 X6-/COMSMTX/DVAT
  7183. NZ X6,CARX IF NOT ACS TAPE REQUEST
  7184. SA2 OT
  7185. SA3 AA
  7186. SA4 /CPA/SPCW
  7187. SB2 /PER/NVS * NO VSN SPECIFIED ON ACS TAPE REQUEST.*
  7188. SX2 X2-SYOT
  7189. PL X3,PER IF VSN NOT SPECIFIED
  7190. SB2 /PER/UAV * USER ACCESS NOT VALID.*
  7191. NZ X2,PER IF NOT SYSTEM ORIGIN JOB
  7192. LX1 59-40
  7193. PL X1,CAR1 IF WRITE ENABLE NOT REQUIRED
  7194. LX4 59-36
  7195. PL X4,PER IF NOT INTERNAL CALL FROM *SSJ=* PROGRAM
  7196. RJ COV CLEAR OPERATOR VERIFY FLAG
  7197. LX1 40-40-59+40
  7198. EQ CARX RETURN
  7199.  
  7200. CAR1 LX3 X1,B1
  7201. LX1 40-40-59+40
  7202. NG X3,CARX IF READ ONLY REQUEST
  7203. SX6 B1
  7204. LX6 39-0
  7205. BX4 X1+X6 SET READ ONLY AND SAVE TAPE DESCRIPTORS
  7206. MESSAGE CARA,3 * WRITE DISABLE FORCED ON NON-TMS ACS...*
  7207. BX1 X4 RESTORE TAPE DESCRIPTORS
  7208. EQ CARX RETURN
  7209.  
  7210.  
  7211. CARA DATA C* WRITE DISABLE FORCED ON NON-TMS ACS TAPE REQUEST.*
  7212. CCR SPACE 4,10
  7213. ** CCR - CHECK FOR CONFLICTING RESOURCES.
  7214. *
  7215. * ENTRY RESB = RESOURCE DEMAND ENTRY.
  7216. *
  7217. * ERROR TO *PER*, IF CONFLICTING RESOURCE TYPES.
  7218. *
  7219. * USES X - 0, 1, 2.
  7220. * A - 1, 2.
  7221. * B - 2.
  7222.  
  7223.  
  7224. CCR SUBR ENTRY/EXIT
  7225. SA1 RESB+RNTP *NT* NOT ALLOWED WITH *HD*, *PE*, *GE*
  7226. MX0 -48
  7227. SA2 A1+B1 SECOND WORD OF TAPE ENTRY
  7228. BX1 X1+X2
  7229. BX1 -X0*X1
  7230. ZR X1,CCRX IF NO CONFLICT
  7231. SB2 /PER/CRT * CONFLICTING RESOURCE TYPES.*
  7232. CCR1 SA1 A2+B1
  7233. SA2 A1+B1
  7234. BX1 X1+X2
  7235. BX1 -X0*X1
  7236. NZ X1,PER IF CONFLICT IN RESOURCE TYPES
  7237. SX1 A1-RESB-RGEP
  7238. NZ X1,CCR1 IF MORE 9-TRACK TAPE RESOURCES
  7239. EQ CCRX RETURN
  7240. CJV SPACE 4,10
  7241. ** CJV - CHECK JOB VALIDATION.
  7242. *
  7243. * ENTRY (RT) = REQUEST TYPE.
  7244. *
  7245. * ERROR TO *PER*, IF USER ACCESS NOT VALID.
  7246. *
  7247. * USES A - 1, 2, 5.
  7248. * B - 2.
  7249. * X - 0, 1, 2, 5.
  7250.  
  7251.  
  7252. CJV SUBR ENTRY/EXIT
  7253. SA1 SSJ=+/COMSSSJ/AACS
  7254. SA2 RT
  7255. LX1 -7
  7256. PL X2,CJV1 IF *LABEL* OR *REQUEST*
  7257. LX1 2
  7258. SA5 OT
  7259. SX5 X5-SYOT
  7260. ZR X5,CJVX IF SYSTEM ORIGIN JOB
  7261. CJV1 NG X1,CJVX IF VALID PRIVILEGES
  7262. SB2 /PER/UAV *USER ACCESS NOT VALID.*
  7263. EQ PER PROCESS ERROR
  7264. CTD SPACE 4,10
  7265. ** CTD - CHECK *TMS* DEFAULTS.
  7266. *
  7267. * ENTRY (F+FTAP) = TAPE DESCRIPTOR.
  7268. * (F+FVSN) = VSN.
  7269. * (F+FSQN) = FILE SEQUENCE NUMBER.
  7270. *
  7271. * EXIT DEFAULTS SET.
  7272. *
  7273. * USES X - 0, 1, 2, 3, 6, 7.
  7274. * A - 1, 2, 3, 6, 7.
  7275.  
  7276.  
  7277. CTD SUBR ENTRY/EXIT
  7278. SA1 F+FTAP
  7279. SA3 F+FVSN CHECK VSN FOR SCRATCH
  7280. SA2 BLANK
  7281. MX0 36
  7282. BX3 X0*X3
  7283. BX2 X2-X3
  7284. MX0 1
  7285. NZ X2,CTD1 IF NOT SCRATCH
  7286. LX0 40-59 SET *PO=W*
  7287. BX1 X1+X0
  7288. LX0 58-59-40+59 CHECK FOR LABEL
  7289. BX2 X0*X1
  7290. ZR X2,CTD1 IF NOT LABELED
  7291. LX0 59-58
  7292. BX1 X1+X0 SET *W*
  7293. SA2 MF
  7294. ZR X2,CTD1 IF NOT MULTI-FILE REQUEST
  7295. SA2 F+FSQN CHECK IF QN=9999
  7296. SX3 X2-9999D
  7297. NZ X3,CTD1 IF NOT QN=9999
  7298. MX0 42 SET QN=1
  7299. BX2 X0*X2
  7300. SX7 B1
  7301. BX7 X2+X7
  7302. SA7 A2+
  7303. SA2 MF FLAG QN NOT .GT. 1
  7304. SX6 X2-10
  7305. SA6 A2
  7306. CTD1 MX0 2 CHECK TAPE DESCRIPTORS
  7307. LX0 40-59
  7308. BX2 -X0*X1
  7309. MX0 1
  7310. LX0 40-59
  7311. NG X1,CTD2 IF *W* OPTION SET
  7312. BX3 X0*X1
  7313. NZ X3,CTD2 IF *PO=W*
  7314. LX0 39-59-40+59
  7315. CTD2 BX6 X0+X2 SET *PO=W* OR *PO=R*
  7316. SA6 A1
  7317. SA1 F+FFTO SET *TO=T* FLAG IN FET
  7318. SX6 20B
  7319. BX6 X1+X6
  7320. SA6 A1
  7321. SX0 1200B CHECK IF *TO=C* OR *TO=E*
  7322. BX6 X0*X1
  7323. NZ X6,CTDX IF USER HAS SPECIFIED *TO=C* OR *TO=E*
  7324. MX0 -1 GET DEFAULT FOR *TO=C*/*TO=E*
  7325. SA2 TMPF
  7326. LX2 0-51
  7327. BX2 -X0*X2
  7328. SA2 X2+CTDA
  7329. BX6 X1+X2
  7330. SA6 A1
  7331. EQ CTDX RETURN
  7332.  
  7333.  
  7334. CTDA BSS 0 BITS TO SET FOR *TO=C* OR *TO=E*
  7335. LOC 0
  7336. CON 200B BIT 7 FOR *TO=E*
  7337. CON 1000B BIT 9 FOR *TO=C*
  7338. LOC *O
  7339. CTI SPACE 4,15
  7340. ** CTI - CONVERT TAPE DESCRIPTORS TO INTERNAL *COMSMTX* FORMAT.
  7341. *
  7342. * ENTRY (X1) = UNCONVERTED TAPE DESCRIPTORS.
  7343. *
  7344. * EXIT (X1) = TAPE DESCRIPTORS WITH PARAMETERS DEFAULTED IF
  7345. * NECESSARY AND CONVERTED TO *COMSMTX* FORMAT.
  7346. * TO *PER* IF ERROR IN FET PARAMETERS.
  7347. *
  7348. * USES X - 0, 1, 2, 5, 6, 7.
  7349. * B - 2.
  7350. * A - 2, 7.
  7351.  
  7352.  
  7353. CTI SUBR ENTRY/EXIT
  7354.  
  7355. * GET DEVICE TYPE AND SET DEFAULT DENSITY AND CONVERSION MODE.
  7356.  
  7357. SA2 /LWC/IPRL
  7358. MX5 -2
  7359. LX1 0-55
  7360. BX5 -X5*X1 DEVICE TYPE
  7361. MX0 -3
  7362. SX7 /COMSMTX/D380 *CT*/*AT* DEFAULT DENSITY
  7363. SX6 X5-/COMSMTX/DVNT
  7364. ZR X5,CTI1 IF *MT* REQUEST
  7365. ERRNZ /COMSMTX/DVMT
  7366. NZ X6,CTI2 IF NOT *NT* REQUEST
  7367. LX2 -6
  7368. CTI1 BX7 -X0*X2 *MT* OR *NT* DEFAULT DENSITY
  7369. LX2 6
  7370. CTI2 SA7 CTIA+0 SET DEFAULT DENSITY
  7371. LX2 -12
  7372. BX7 -X0*X2
  7373. SA7 CTIB+0 SET DEFAULT CONVERSION MODE
  7374.  
  7375. * CONVERT DENSITY.
  7376.  
  7377. LX1 0-51-0+55
  7378. BX2 -X0*X1 REQUESTED DENSITY
  7379. SX6 X2-CTIAL
  7380. SA2 CTIA+X2 CONVERT DENSITY
  7381. SB2 /PER/IDN
  7382. PL X6,PER IF ERROR IN SPECIFIED DENSITY
  7383. BX1 X0*X1
  7384. BX1 X1+X2 MERGE CONVERTED DENSITY
  7385.  
  7386. * CONVERT CONVERSION MODE.
  7387.  
  7388. LX1 0-48-0+51
  7389. BX2 -X0*X1 REQUESTED CONVERSION MODE
  7390. NZ X5,CTI3 IF NOT *MT* REQUEST
  7391. ERRNZ /COMSMTX/DVMT
  7392. SB2 /PER/ICD * INCORRECT CONVERSION MODE FOR TAPE ...*
  7393. NZ X2,PER IF 8 BIT CONVERSION MODE SPECIFIED
  7394. SX2 /COMSMTX/BCD SET BCD CONVERSION
  7395. EQ CTI4 SET CONVERTED MODE
  7396.  
  7397. CTI3 SX6 X2-CTIBL
  7398. SA2 CTIB+X2 CONVERT CONVERSION MODE
  7399. SB2 /PER/ICM * INCORRECT CONVERSION MODE.*
  7400. PL X6,PER IF ERROR IN SPECIFIED CONVERSION MODE
  7401. CTI4 BX1 X0*X1
  7402. BX1 X1+X2 MERGE CONVERTED CONVERSION MODE
  7403. LX1 48
  7404. EQ CTIX RETURN
  7405.  
  7406.  
  7407. * DENSITY CONVERSION TABLE.
  7408.  
  7409. CTIA BSS 0
  7410. CON 0 JOB DEFAULT DENSITY
  7411. CON /COMSMTX/D05
  7412. CON /COMSMTX/D02
  7413. CON /COMSMTX/D08
  7414. CON /COMSMTX/D16
  7415. CON /COMSMTX/D62
  7416. CON /COMSMTX/D380
  7417. CTIAL EQU *-CTIA
  7418.  
  7419. * CONVERSION MODE CONVERSION TABLE.
  7420.  
  7421. CTIB BSS 0
  7422. CON 0 JOB DEFAULT CONVERSION MODE
  7423. CON /COMSMTX/ANS
  7424. CON /COMSMTX/EBC
  7425. CTIBL EQU *-CTIB
  7426. CTP SPACE 4,15
  7427. ** CTP - CHECK TAPE ACCESS PRIVILEGES.
  7428. *
  7429. * EXIT LABEL ACCESS RESTRICTIONS (PO = X) ENFORCED IF NOT
  7430. * SYSTEM ORIGIN JOB.
  7431. * WRITE ACCESS DISABLED (PO = R) IF UNLABELED REQUEST,
  7432. * WRITE ACCESS NOT REQUESTED, AND NOT PERMITTED TO
  7433. * WRITE UNLABELED TAPES.
  7434. * TO *PER* IF UNLABELED REQUEST, WRITE ACCESS REQUESTED,
  7435. * AND NOT PERMITTED TO WRITE UNLABELED TAPES.
  7436. *
  7437. * USES X - 1, 2, 3, 6, 7.
  7438. * A - 1, 2, 3, 7.
  7439. *
  7440. * MACROS MESSAGE.
  7441.  
  7442.  
  7443. CTP SUBR ENTRY/EXIT
  7444. SA1 OT
  7445. SA2 F+FTAP
  7446. SX6 B1
  7447. SX1 X1-SYOT
  7448. LX6 44-0
  7449. ZR X1,CTPX IF SYSTEM ORIGIN JOB
  7450. BX7 X2+X6 ENFORCE LABEL ACCESS RESTRICTIONS (PO = X)
  7451. LX2 59-58
  7452. NG X2,CTP2 IF LABELED ACCESS
  7453. SA1 /CPA/SPCW
  7454. SA3 JCWA
  7455. LX2 59-40-59+58
  7456. LX1 59-36
  7457. LX3 59-52
  7458. NG X1,CTP2 IF INTERNAL CALL FROM *SSJ=* PROGRAM
  7459. NG X3,CTP2 IF PERMITTED TO WRITE UNLABELED TAPES
  7460. PL X2,CTP1 IF WRITE ACCESS NOT REQUIRED
  7461. SB2 /PER/NVU * NOT VALIDATED FOR WRITING UNLABELED ...*
  7462. EQ PER PROCESS ERROR
  7463.  
  7464. CTP1 LX2 59-39-59+40
  7465. LX6 39-44
  7466. NG X2,CTP2 IF WRITE ACCESS DISABLED
  7467. BX7 X7+X6 DISABLE WRITE ACCESS (PO = R)
  7468. MESSAGE CTPA,3 * WRITE DISABLE FORCED ON UNLABELED ...*
  7469. CTP2 SA7 A2 UPDATE TAPE DESCRIPTORS
  7470. EQ CTPX RETURN
  7471.  
  7472.  
  7473. CTPA DATA C* WRITE DISABLE FORCED ON UNLABELED REQUEST.*
  7474. FDF SPACE 4,10
  7475. ** FDF - FLIP DATE FIELDS.
  7476. *
  7477. * EXIT CREATION AND RETENTION DATE FIELDS REVERSED IN FET.
  7478. *
  7479. * USES X - 0, 1, 6.
  7480. * A - 1, 6.
  7481.  
  7482.  
  7483. FDF SUBR ENTRY/EXIT
  7484. MX0 30 GET RETENTION DATE
  7485. SA1 T+FCRD
  7486. BX6 X0*X1
  7487. BX1 -X0*X1 GET CREATION DATE
  7488. LX6 -30 REVERSE FIELDS
  7489. LX1 30
  7490. BX6 X1+X6
  7491. SA6 A1
  7492. EQ FDFX RETURN
  7493. FRA SPACE 4,25
  7494. ** FRA - FIRST REEL ASSIGNMENT.
  7495. *
  7496. * BUILDS THE TFM ASSIGNMENT FET AND CALLS
  7497. * TFM TO VALIDATE USER ACCESS OR ASSIGN A
  7498. * SCRATCH VOLUME.
  7499. *
  7500. * ENTRY USER OPTIONS PROCESSED.
  7501. * (X5) = VSN FOUND STATUS SET BY *SVI*.
  7502. *
  7503. * EXIT ASSIGNMENT FET UPDATED FROM *TMS* CATALOG ENTRY IF
  7504. * *TMS* CONTROLLED REQUEST.
  7505. * (X5) = *SVI* VSN FOUND STATUS IF NOT *TMS* CONTROLLED
  7506. * REQUEST.
  7507. * TO *RMT* IF *TMS* CONTROLLED REQUEST.
  7508. * TO CALLER IF NOT *TMS* CONTROLLED REQUEST.
  7509. *
  7510. * USES X - 0, 1, 2, 3, 5, 6, 7.
  7511. * A - 1, 2, 6, 7.
  7512. * B - 2.
  7513. *
  7514. * CALLS CJV, CTD, CTI, CTP, FDF, IDE, IVE, PRO, PVS, SFN, SMF,
  7515. * TBD, VCD, VTD.
  7516. *
  7517. * MACROS MESSAGE, MOVE, TMS.
  7518.  
  7519.  
  7520. FRA13 MX6 1 SET OPERATOR VERIFICATION FLAG
  7521. LX6 56-59
  7522. SA6 TMPF
  7523.  
  7524. FRA SUBR ENTRY/EXIT
  7525. SA2 TMPF
  7526. NG X2,FRAX IF *TMS* DISABLED
  7527. SA1 F+FFTO CHECK FOR *TO=F*
  7528. LX1 59-1
  7529. NG X1,FRA13 IF *TO=F*
  7530. LX1 59-4-59+1
  7531. NG X1,FRA1 IF *TO=T*
  7532. LX2 59-53
  7533. PL X2,FRA13 IF DEFAULT *TO=F*
  7534. FRA1 SA1 CF
  7535. NZ X1,FRA2 IF NOT COMMAND CALL
  7536. RJ VCD VERIFY COMMAND DEFAULTS
  7537. FRA2 SA1 F+FTAP
  7538. RJ CTI CONVERT TAPE DESCRIPTORS
  7539. RJ VTD VERIFY USER SPECIFIED TAPE DESCRIPTORS
  7540. NZ B2,PER IF ERROR IN TAPE DESCRIPTORS
  7541. BX6 X1 UPDATE TAPE DESCRIPTORS
  7542. SA6 A1
  7543. RJ CTD CHECK *TMS* DEFAULTS
  7544. SA1 F SET LOCAL FILE NAME
  7545. MX0 -18
  7546. BX6 X0*X1
  7547. SA6 T
  7548. MOVE /TFM/TFPL,F+/TFM/TFFP,T+/TFM/TFFP
  7549. SA2 T+FVSN
  7550. SA1 CF
  7551. NZ X1,FRA4 IF *LFM* OR *REQ* CALL
  7552. SA1 VC
  7553. NZ X1,FRA4 IF VSN FROM *VSN* COMMAND
  7554. SA1 VP
  7555. SA2 BLANK ASSUME SCRATCH
  7556. ZR X1,FRA4 IF VSN= NOT PROCESSED
  7557. SA2 VSNE+VVSN
  7558. FRA4 MX0 36 CHECK FOR SCRATCH ASSIGNMENT
  7559. BX6 X0*X2
  7560. SA1 BLANK
  7561. SA6 T+FESN
  7562. BX7 X1-X6
  7563. NZ X7,FRA5 IF NOT VSN=SCRATCH
  7564. BX6 X7
  7565. SA6 A6
  7566. FRA5 SA1 T+FID1 CHECK FILE IDENTIFIER
  7567. NZ X1,FRA6 IF FILE IDENTIFIER SPECIFIED
  7568. NZ X6,FRA6 IF VSN SPECIFIED
  7569. RJ SFN SPACE FILL NAME
  7570. BX5 X6
  7571. SA2 T USE LFN FOR FILE NAME
  7572. MX0 -18
  7573. BX1 X0*X2
  7574. RJ SFN SPACE FILL NAME
  7575. SA6 T+FID1
  7576. SA2 A6+B1
  7577. BX6 X0*X5
  7578. BX3 -X0*X2
  7579. BX7 X3+X6
  7580. SA7 A2+
  7581. FRA6 SA2 T+FESN GET VSN
  7582. BX6 X2
  7583. RJ PVS PAD VSN WITH *0*
  7584. BX2 X6
  7585. SA1 VP FLAG IF THE VSN PARAMETER WAS SPECIFIED
  7586. LX1 22-0
  7587. BX6 X2+X1 MERGE IN THE FLAG (IF SET)
  7588. SA6 A2
  7589. FRA7 RJ FDF FLIP DATE FIELDS
  7590. TMS T,RFAS CALL TAPE MANAGER
  7591. RJ FDF FLIP DATE FIELDS
  7592. MX0 -9 CHECK FOR ERROR
  7593. SA1 T
  7594. LX0 17-8
  7595. BX6 -X0*X1
  7596. ZR X6,FRA9 IF NO ERROR
  7597. LX6 59-17
  7598. PL X6,FRA8 IF NON-ROLLABLE ERROR
  7599. SX1 EMSG GET ERROR MESSAGE
  7600. SX5 =0
  7601. RJ PRO PROCESS ROLLOUT
  7602. EQ FRA7 REISSUE REQUEST
  7603.  
  7604. FRA8 MESSAGE EMSG,3,R ISSUE MESSAGE TO USER DAYFILE
  7605. SB2 /PER/RTM PROCESS FATAL *TMS* ERROR
  7606. EQ PER PROCESS ERROR AND ABORT
  7607.  
  7608. FRA9 SA1 VP CHECK DEMAND FILE INITIALIZATION
  7609. NZ X1,FRA11 IF VSN= PROCESSED
  7610. SX6 B1 SET VSN= PROCESSED
  7611. SA6 A1
  7612. SA2 /CPA/RFCW
  7613. SX1 X2
  7614. NZ X1,FRA10 IF DEMAND FILE ENTRY EXISTS
  7615. RJ IDE INITIALIZE DEMAND ENTRY
  7616. FRA10 SB2 B1+ SET INITIALIZE ENTIRE ENTRY
  7617. SA3 F
  7618. RJ IVE INITIALIZE VSN ENTRY
  7619. FRA11 SA1 TMPF GET TMS FLAGS
  7620. SA2 T+FESN
  7621. SX0 B1
  7622. LX0 58-0
  7623. BX6 X1+X0 SET TMS CONTROLLED REQUEST
  7624. LX0 20-0-58+0
  7625. BX3 X0*X2 OFFSITE FLAG
  7626. LX0 21-0-20+0
  7627. BX1 X0*X2 USER OWNED FLAG
  7628. LX0 23-0-21+0
  7629. BX2 X0*X2 ASSIGN SCRATCH TAPE FLAG
  7630. LX3 50-20
  7631. LX1 52-21
  7632. LX2 57-23
  7633. BX3 X1+X3
  7634. BX2 X2+X3
  7635. BX6 X6+X2 SET SCRATCH, USER OWNED, OFFSITE STATUS
  7636. SA2 T+FFTO GET TMS OPTIONS
  7637. SX3 14B
  7638. BX5 X3*X2
  7639. LX5 55-3
  7640. BX6 X6+X5
  7641. SA6 A1
  7642. MOVE 6,T+FTAP,F+FTAP SET LABEL FET FROM CATALOG ENTRY
  7643. SA1 F+FTAP
  7644. RJ VTD VERIFY TAPE DESCRIPTORS FROM CATALOG
  7645. NZ B2,PER IF ERROR IN TAPE DESCRIPTORS
  7646. RJ TBD BUILD TAPE BLOCK DEFINITION
  7647. RJ SMF SET MULTI-FILE PROCESSING FLAGS
  7648. RJ CJV CHECK JOB VALIDATION
  7649. RJ CTP CHECK TAPE ACCESS PRIVILEGES
  7650. SA1 T+FESN
  7651. SA2 F+FVSN
  7652. MX7 36
  7653. BX6 X7*X1
  7654. BX7 X7*X2
  7655. SA6 EVSN SET EXTERNAL VSN
  7656. SA7 IVSN SET INTERNAL VSN
  7657. EQ RMT REQUEST MAGNETIC TAPE ASSIGNMENT
  7658. IDF SPACE 4,15
  7659. ** IDF - ISSUE DAYFILE MESSAGE.
  7660. *
  7661. * ENTRY (CCDR) = COMMAND IMAGE.
  7662. *
  7663. * EXIT DAYFILE MESSAGE ISSUED WITH SECURED PARAMETER VALUES
  7664. * REMOVED.
  7665. *
  7666. * USES X - 1, 2, 3, 4, 5, 6.
  7667. * A - 1, 3, 4, 5, 6.
  7668. * B - 2, 3, 4, 5, 6.
  7669. *
  7670. * CALLS RSP.
  7671. *
  7672. * MACROS MESSAGE, MOVE.
  7673.  
  7674.  
  7675. IDF SUBR ENTRY/EXIT
  7676. BX6 X0 SAVE X0, X3, X4, X5
  7677. SA6 IDFD
  7678. BX6 X3
  7679. SA6 A6+B1
  7680. BX6 X4
  7681. SA6 A6+B1
  7682. BX6 X5
  7683. SA6 A6+B1
  7684. MX2 -18
  7685. SX1 A3 SAVE A3, A4, A5
  7686. BX6 -X2*X1
  7687. SX1 A4
  7688. LX6 18
  7689. BX1 -X2*X1
  7690. BX6 X6+X1
  7691. SX1 A5
  7692. LX6 18
  7693. BX1 -X2*X1
  7694. BX6 X6+X1
  7695. SA6 A6+B1
  7696. SX1 B3 SAVE B3, B4, B5
  7697. BX6 -X2*X1
  7698. SX1 B4
  7699. LX6 18
  7700. BX1 -X2*X1
  7701. BX6 X6+X1
  7702. SX1 B5
  7703. LX6 18
  7704. BX1 -X2*X1
  7705. BX6 X6+X1
  7706. SA6 A6+B1
  7707. MOVE 8,CCDR,IDFA SET WORKING COMMAND BUFFER
  7708. SA4 IDFB FWA ARGUMENT TABLE
  7709. SB6 IDFC FWA KEYWORD/POSITION TABLE
  7710. SA5 IDFA FWA OF RELOCATED CONTROL STATEMENT
  7711. SB2 1R, SKIP TO *,*
  7712. RJ RSP REMOVE SECURE PARAMETERS
  7713. MESSAGE IDFA,0,R ISSUE COMMAND TO DAYFILE
  7714. SA1 IDFD+5 RESTORE B3, B4, B5
  7715. SB5 X1
  7716. LX1 -18
  7717. SB4 X1
  7718. LX1 -18
  7719. SB3 X1
  7720. SA1 A1-B1 RESTORE A3, A4, A5
  7721. SA5 X1
  7722. LX1 -18
  7723. SA4 X1
  7724. LX1 -18
  7725. SA3 X1
  7726. SA1 A1-B1 RESTORE X5,X4,X3,X0
  7727. BX5 X1
  7728. SA1 A1-B1
  7729. BX4 X1
  7730. SA1 A1-B1
  7731. BX3 X1
  7732. SA1 A1-B1
  7733. BX0 X1
  7734. EQ IDFX RETURN
  7735.  
  7736. IDFA BSS 8 WORKING COMMAND BUFFER
  7737.  
  7738. IDFB BSS 0 ARGUMENT TABLE
  7739. FA ARG 0,0 FILE ACCESSIBILITY
  7740. PW ARG 0,0 PASSWORD
  7741. CON 0 END OF TABLE
  7742.  
  7743. IDFC BSS 0 KEYWORD/POSITION TABLE
  7744. VFD 42/0LFA,18/0 FILE ACCESSIBILITY
  7745. VFD 42/0LPW,18/0 PASSWORD
  7746. CON 0 END OF TABLE
  7747.  
  7748. IDFD BSS 6 REGISTER SAVE AREA
  7749. MFA SPACE 4,15
  7750. ** MFA - MULTI-FILE ASSIGNMENT.
  7751. *
  7752. * ENTRY (TMPF) = *TMS* STATUS.
  7753. *
  7754. * EXIT MULTI-FILE PROCESSING FLAGS SET.
  7755. *
  7756. * ERROR EXIT TO *PER* IF NON-ROLLABLE *TFM* ERROR.
  7757. *
  7758. * USES X - 0, 1, 2, 5, 6.
  7759. * A - 1, 2, 6.
  7760. * B - 2.
  7761. *
  7762. * CALLS FDF, PRO, SMF.
  7763. *
  7764. * MACROS MESSAGE, MOVE, TMS.
  7765.  
  7766.  
  7767. MFA SUBR ENTRY/EXIT
  7768. SA1 TMPF
  7769. NG X1,MFAX IF *TMS* DISABLED
  7770. SA1 TS
  7771. PL X1,MFAX IF NOT SYMBOLIC *TMS* TAPE
  7772. SA2 F
  7773. MX0 -18
  7774. BX6 X0*X2
  7775. SA6 T
  7776. MOVE /TFM/TFPL,F+/TFM/TFFP,T+/TFM/TFFP
  7777. MX0 59 CLEAR SYMBOLIC ACCESS FLAG
  7778. SA1 T+FFTO
  7779. LX0 2-0
  7780. BX6 X0*X1
  7781. SA6 A1
  7782. SX0 1200B CHECK IF *TO=C* OR *TO=E*
  7783. SA1 T+FFTO
  7784. BX2 X0*X1
  7785. NZ X2,MFA1 IF USER HAS SPECIFIED *TO=C* OR *TO=E*
  7786. MX0 -1 GET DEFAULT FOR *TO=C*/*TO=E*
  7787. SA2 TMPF
  7788. LX2 0-51
  7789. BX2 -X0*X2
  7790. SA2 X2+MFAA SET DEFAULT INTO *TMS* FET
  7791. BX6 X1+X2
  7792. SA6 A1
  7793. MFA1 RJ FDF FLIP DATE FIELDS
  7794. TMS T,MFAS CALL TAPE MANAGER
  7795. RJ FDF FLIP DATE FIELDS
  7796. MX0 -9
  7797. SA1 T
  7798. LX0 17-8
  7799. BX6 -X0*X1
  7800. ZR X6,MFA3 IF NO ERROR
  7801. SA6 MFAB SAVE ERROR CODE
  7802. LX6 59-17
  7803. PL X6,MFA2 IF NON-ROLLABLE ERROR
  7804. SX1 EMSG GET ERROR MESSAGE
  7805. SX5 =0
  7806. RJ PRO PROCESS ROLLOUT
  7807. EQ MFA1 REISSUE REQUEST
  7808.  
  7809. MFA2 MESSAGE EMSG,3,R ISSUE MESSAGE TO USER DAYFILE
  7810. SB2 /PER/RTM
  7811. EQ PER PROCESS ERROR AND ABORT
  7812.  
  7813. MFA3 SA1 T+FFTO CHECK FOR SYMBOLIC ACCESS
  7814. LX1 59-2
  7815. PL X1,MFA4 IF NOT SYMBOLIC ACCESS
  7816. MOVE /TFM/TFPL,T+/TFM/TFFP,F+/TFM/TFFP
  7817. MFA4 RJ SMF SET MULTI-FILE PROCESSING FLAGS
  7818. EQ MFAX RETURN
  7819.  
  7820. MFAA BSS 0 BITS TO SET FOR *TO=C* OR *TO=E*
  7821. LOC 0
  7822. CON 200B BIT 7 FOR *TO=E*
  7823. CON 1000B BIT 9 FOR *TO=C*
  7824. LOC *O
  7825.  
  7826. MFAB CON 0 ERROR CODE FROM TFM
  7827. PAL SPACE 4,10
  7828. ** PAL - PROCESS ACCESS LEVEL.
  7829. *
  7830. * ENTRY (RI) = RESOURCE INDEX AND UNIT COUNT.
  7831. * (RMTL) = LENGTH OF TAPE DRIVE ENTRIES.
  7832. * (SC) = SEPARATOR CHARACTER FROM COMMAND.
  7833. *
  7834. * EXIT (RI) = RESOURCE INDEX AND COUNT ALTERED IF
  7835. * MAGNETIC TAPE RESOURCE REQUEST WITH A SECURE SYSTEM.
  7836. *
  7837. * USES X - 0, 1, 2, 3, 5, 6, 7.
  7838. * A - 1, 2, 5, 6, 7.
  7839. * B - 2.
  7840. *
  7841. * CALLS VLC.
  7842.  
  7843.  
  7844. PAL SUBR ENTRY/EXIT
  7845. SA1 SC
  7846. SX1 X1-1R/
  7847. NZ X1,PAL1 IF ACCESS LEVEL NOT ON COMMAND
  7848. RJ POP PICK OUT PARAMETER
  7849. SX1 X1-1R=
  7850. ZR X1,ERR IF SEPARATOR IS *=*
  7851. SA2 SSMA SYSTEM SECURITY MODE
  7852. ZR X2,PAL1 IF UNSECURED SYSTEM
  7853. SA1 POPA
  7854. SB2 B0
  7855. MX0 -8
  7856. SA5 JCWA SECURITY CONTROL WORD
  7857. RJ VLC VALIDATE ACCESS LEVEL
  7858. SB2 /PER/UAL * UNKNOWN ACCESS LEVEL NAME.*
  7859. NG X2,PER IF ACCESS LEVEL NOT FOUND
  7860. LX5 7-43 RIGHT JUSTIFY ACCESS LEVEL VALIDATIONS
  7861. BX5 -X0*X5
  7862. MX0 -1
  7863. SB2 X2
  7864. LX0 B2
  7865. BX0 -X0*X5
  7866. SB2 /PER/NVA NOT VALIDATED FOR ACCESS LEVEL
  7867. ZR X0,PER IF NOT A VALIDATED ACCESS LEVEL
  7868. EQ PAL2 CONTINUE PROCESSING
  7869.  
  7870. PAL1 SA2 JALA JOB ACCESS LEVEL
  7871. MX0 -6
  7872. BX2 -X0*X2
  7873. PAL2 SA1 RI
  7874. MX0 -6
  7875. BX3 -X0*X1
  7876. SX3 X3-RMTL
  7877. SX7 X2
  7878. NG X3,PAL3 IF A TAPE UNIT
  7879. NZ X3,PALX IF MASS STORAGE
  7880. PAL3 SX2 X2+B1
  7881. LX2 6
  7882. BX6 X1+X2
  7883. SA6 RI ADJUSTED RESOURCE INDEX
  7884. SA7 AL
  7885. EQ PALX RETURN
  7886. PVS SPACE 4,20
  7887. ** PVS - PAD VSN WITH CHARACTER *0*.
  7888. *
  7889. * ENTRY (X6) = LEFT JUSTIFIED UNPADDED VSN.
  7890. *
  7891. * EXIT (X6) = PADDED VSN. CHARACTER *0* INSERTED
  7892. * BEFORE FIRST NUMERIC CHARACTER UNTIL
  7893. * VSN IS SIX CHARACTERS LONG.
  7894. *
  7895. * USES X - 0, 1, 2, 3, 4, 6, 7.
  7896. * A - 1, 3.
  7897. * B - 2, 3.
  7898.  
  7899.  
  7900. PVS SUBR ENTRY/EXIT
  7901. SA3 =1L
  7902. MX0 6 GET LENGTH OF UNPADDED VSN
  7903. BX2 X6
  7904. SX4 B0
  7905. PVS1 BX1 X0*X6 CHECK FOR CHARACTER
  7906. BX7 X1-X3
  7907. ZR X7,PVS2 IF CHARACTER IS A BLANK
  7908. ZR X1,PVS2 IF END OF CHARACTERS
  7909. SX4 X4+B1
  7910. LX6 6
  7911. EQ PVS1 CONTINUE
  7912.  
  7913. PVS2 ZR X4,PVSX IF NO CHARACTERS, RETURN
  7914. SX1 6 GET CORRECT NUMBER OF ZEROS
  7915. IX4 X1*X4
  7916. SB2 X4
  7917. SB3 B2-6 SET UP MASK
  7918. AX0 B3,X0
  7919. BX2 X0*X2
  7920. SA1 =36R000000
  7921. AX1 B2
  7922. SB3 60
  7923. MX0 -6
  7924. SX6 B0
  7925. PVS3 BX7 X2 SAVE END OF VSN
  7926. LX2 6 CHECK CHARACTER
  7927. BX3 -X0*X2
  7928. ZR X3,PVS4 IF END OF CHARACTERS
  7929. SX4 X3-1R0
  7930. PL X4,PVS4 IF NUMERIC CHARACTER
  7931. LX6 6 BUILD FIRST PART OF VSN
  7932. BX6 X6+X3
  7933. BX2 X0*X2
  7934. SB3 B3-6
  7935. EQ PVS3 CHECK NEXT CHARACTER
  7936.  
  7937. PVS4 SB2 B2-36 ADD ZEROS TO VSN
  7938. AX6 B2
  7939. BX6 X6+X1
  7940. BX6 X6+X7 ADD END OF VSN
  7941. SB3 B3+B2
  7942. LX6 B3
  7943. EQ PVSX RETURN
  7944. SBF SPACE 4,10
  7945. ** SBF - SET MAXIMUM BLOCK SIZE FROM FRAME COUNT.
  7946. *
  7947. * ENTRY (X1) = TAPE DESCRIPTOR WORD.
  7948. * (B2) = TAPE DEVICE TYPE.
  7949. *
  7950. * EXIT (X6) = 36/0,12/ WORD COUNT,12/ OVERFLOW
  7951. * (X1) = TAPE DESCRIPTOR WORD.
  7952. * (B2) = TAPE DEVICE TYPE.
  7953. *
  7954. * USES X - 2, 3, 4, 6, 7.
  7955.  
  7956.  
  7957. SBF SUBR ENTRY/EXIT
  7958.  
  7959. * SET BITS PER FRAME.
  7960.  
  7961. MX7 -24
  7962. BX2 -X7*X1 SPECIFIED FRAME COUNT
  7963. SX6 6 7 TRACK BITS PER FRAME
  7964. ZR B2,SBF1 IF 7 TRACK TAPE
  7965. ERRNZ /COMSMTX/DVMT
  7966. SX7 B2-/COMSMTX/DVNT
  7967. SX6 8 9 TRACK BITS PER FRAME
  7968. ZR X7,SBF1 IF 9 TRACK TAPE
  7969. SX6 16 CARTRIDGE TAPE BITS PER FRAME
  7970.  
  7971. * SET BLOCK SIZE IN CM WORDS.
  7972.  
  7973. SBF1 IX2 X2*X6 MAXIMUM BLOCK SIZE IN BITS
  7974. BX3 X2
  7975. SX7 60
  7976. IX6 X3/X7 WHOLE WORDS IN BLOCK
  7977. BX3 X6
  7978. SX7 60
  7979. IX4 X3*X7 BITS IN WHOLE WORDS
  7980. IX4 X2-X4
  7981. ZR X4,SBF2 IF NO PARTIAL WORD
  7982. SX7 B1
  7983. IX6 X6+X7 TOTAL WORDS IN BLOCK
  7984.  
  7985. * COMPUTE OVERFLOW IF BLOCK SIZE .GT. 1000B WORDS.
  7986.  
  7987. SBF2 SX7 1000B
  7988. SX2 B0 OVERFLOW = 0
  7989. IX7 X7-X6
  7990. PL X7,SBF3 IF BLOCK SIZE .LE. 1000B WORDS
  7991. SX3 /COMSMTX/LBWD WORDS PER CHUNK
  7992. BX2 X6
  7993. IX2 X2/X3 OVERFLOW BLOCK COUNT
  7994. SX3 /COMSMTX/LBWD
  7995. IX3 X2*X3
  7996. IX6 X6-X3 REMAINING WORD COUNT
  7997.  
  7998. * SET WORD COUNT AND OVERFLOW FOR EXIT.
  7999.  
  8000. SBF3 LX6 12
  8001. BX6 X6+X2 MERGE WORD COUNT AND OVERFLOW
  8002. EQ SBFX RETURN
  8003. SMF SPACE 4,15
  8004. ** SMF - SET MULTI-FILE PROCESSING FLAGS.
  8005. *
  8006. * ENTRY (F+FID1) = FILE IDENTIFIER.
  8007. *
  8008. * EXIT (MF) = MULTI-FILE PROCESSING FLAGS.
  8009. * 01 - FILE IDENTIFIER PRESENT.
  8010. * 02 - FILE SEQUENCE PRESENT.
  8011. * 04 - MULTI-FILE POSITIONING.
  8012. * 10 - FILE SEQUENCE .GT. 1.
  8013. *
  8014. * USES X - 0, 1, 2, 3, 6.
  8015. * A - 1, 2, 3, 6.
  8016.  
  8017.  
  8018. SMF SUBR ENTRY/EXIT
  8019. SA1 F+FID1
  8020. SA2 F+FID2
  8021. SA3 F+FMSI
  8022. SX6 B0+ INITIALIZE MULTI-FILE FLAGS
  8023. ZR X1,SMF1 IF NO FILE IDENTIFIER (FI)
  8024. SX6 B1+ SET FILE IDENTIFIER FLAG
  8025. SMF1 MX0 36 CHECK SET IDENTIFIER (SI)
  8026. BX1 X0*X3
  8027. ZR X1,SMF2 IF NO SET IDENTIFIER
  8028. SA1 =6L CHECK FOR SPACES
  8029. BX1 X1-X3
  8030. BX1 X0*X1
  8031. ZR X1,SMF2 IF NO SET IDENTIFIER
  8032. SX6 X6+4 SET POSITIONING FLAG
  8033. SMF2 MX0 -18 CHECK FILE SEQUENCE (QN)
  8034. BX1 -X0*X2
  8035. ZR X1,SMF3 IF NO FILE SEQUENCE
  8036. SX6 X6+2 SET SEQUENCE NUMBER FLAG
  8037. SX2 X1-1
  8038. ZR X2,SMF3 IF SEQUENCE = 1
  8039. SX6 X6+10B SET SEQUENCE NUMBER .GT. 1 FLAG
  8040. SMF3 SA6 MF SET MULTI-FILE PROCESSING FLAGS
  8041. EQ SMFX RETURN
  8042. SNF SPACE 4,20
  8043. ** SNF - SET NOISE BLOCK DEFINITION FROM FRAME COUNT.
  8044. *
  8045. * ENTRY (X2) = SPECIFIED NOISE FRAME COUNT.
  8046. * (X1) = TAPE DESCRIPTOR WORD.
  8047. * (B2) = TAPE DEVICE TYPE.
  8048. *
  8049. * EXIT (X6) = NOISE BLOCK DEFINITION.
  8050. * (X1) = TAPE DESCRIPTOR WORD.
  8051. * (B2) = TAPE DEVICE TYPE.
  8052. *
  8053. * USES X - 3, 4, 6, 7.
  8054. *
  8055. * SEVEN TRACK NOISE FORMULA -
  8056. * BYTES = (NS+1)/2.
  8057. * FILL ALLOWED IF NS-2(BYTES) IS NEGATIVE.
  8058. *
  8059. * NINE TRACK NOISE FORMULA -
  8060. * BYTES = 2(NS+1)/3.
  8061. * FILL ALLOWED IF NS-3(BYTES)/2 IS NEGATIVE.
  8062.  
  8063.  
  8064. SNF SUBR ENTRY/EXIT
  8065. SX4 X2+1 (NS+1)
  8066. NZ B2,SNF1 IF NOT SEVEN TRACK TAPE
  8067. ERRNZ /COMSMTX/DVMT
  8068. AX3 X4,B1 BYTES = (NS+1)/2
  8069. LX7 X3,B1 BYTES*2
  8070. EQ SNF2 DETERMINE FILL ALLOWED STATUS
  8071.  
  8072. SNF1 LX4 1 2(NS+1)
  8073. SX7 3
  8074. IX3 X4/X7 BYTES = 2(NS+1)/3
  8075. LX7 X3,B1
  8076. IX7 X7+X3 BYTES*3
  8077. AX7 1 (BYTES*3)/2
  8078. SNF2 IX7 X2-X7
  8079. MX6 1
  8080. BX6 X7*X6 FILL ALLOWED STATUS
  8081. LX6 5-59
  8082. BX6 X6+X3 MERGE BYTE COUNT AND FILL STATUS
  8083. EQ SNFX RETURN
  8084. TBD SPACE 4,15
  8085. ** TBD - BUILD TAPE BLOCK DEFINITION.
  8086. *
  8087. * ENTRY (F+FTAP) = CONVERTED TAPE DESCRIPTORS.
  8088. *
  8089. * EXIT (TB) = TAPE BLOCK DEFINITION PARAMETERS.
  8090. *
  8091. * USES X - 0, 1, 2, 5, 6, 7.
  8092. * A - 1, 5, 6.
  8093. * B - 2, 3.
  8094. *
  8095. * CALLS SBF, SNF.
  8096.  
  8097.  
  8098. TBD SUBR ENTRY/EXIT
  8099. SA1 F+FTAP GET TAPE DEVICE TYPE
  8100. MX0 -2
  8101. LX1 0-55
  8102. BX6 -X0*X1
  8103. LX1 0-51-0+55 GET TAPE DENSITY
  8104. SB2 X6 TAPE DEVICE TYPE
  8105. MX0 -3
  8106. BX2 -X0*X1
  8107. SB3 X2 DENSITY
  8108. LX1 0-30-0+51
  8109. MX0 -6
  8110. BX6 -X0*X1 TAPE FORMAT
  8111. LX1 59-59-0+30
  8112. SA5 TTFM+X6 GET TAPE FORMAT CHARACTERISTICS
  8113.  
  8114. * FORCE ASCII CONVERSION MODE IF UNLABELED *I*, *LI*, OR *SI*
  8115. * FORMAT AND NOT SEVEN TRACK TAPE.
  8116.  
  8117. ZR B2,TBD2 IF SEVEN TRACK TAPE
  8118. ERRNZ /COMSMTX/DVMT
  8119. LX2 X1,B1
  8120. MX7 57
  8121. NG X2,TBD2 IF LABELED TAPE REQUEST
  8122. PL X5,TBD2 IF NOT INTERNAL TAPE FORMAT
  8123. LX1 0-48
  8124. SX2 /COMSMTX/ANS FORCE ASCII CONVERSION
  8125. BX6 X7*X1
  8126. BX6 X6+X2
  8127. LX6 59-59-0+48
  8128. BX1 X6 UPDATE TAPE DESCRIPTORS
  8129. SA6 A1
  8130.  
  8131. * SET MAXIMUM DATA BLOCK SIZE.
  8132.  
  8133. TBD2 LX5 23-47
  8134. MX6 -24
  8135. BX6 -X6*X5 BLOCK SIZE AND OVERFLOW
  8136. LX5 59-58-23+47
  8137. PL X5,TBD3 IF NOT TO SET BLOCK SIZE FROM FRAME COUNT
  8138. RJ SBF SET BLOCK SIZE FROM FRAME COUNT
  8139. TBD3 SA6 TB SET WORD COUNT AND OVERFLOW
  8140.  
  8141. * PROCESS NOISE SIZE.
  8142.  
  8143. SX6 B3-/COMSMTX/DNMX-1
  8144. LX5 59-59-59+58
  8145. PL X6,TBDX IF DENSITY DOES NOT SUPPORT NOISE BLOCKS
  8146. MX0 -6
  8147. LX1 0-24
  8148. NG X5,TBD4 IF INTERNAL FORMAT
  8149. BX2 -X0*X1 SPECIFIED NOISE SIZE
  8150. ZR X2,TBD4 IF NOISE SIZE NOT SPECIFIED
  8151. RJ SNF SET NOISE BLOCK DEFINITION FROM FRAMES
  8152. EQ TBD5 SET NOISE FILL
  8153.  
  8154. TBD4 LX5 0-18
  8155. BX6 -X0*X5 DEFAULT 7 TRACK NOISE BLOCK DEFINITION
  8156. ZR B2,TBD5 IF SEVEN TRACK TAPE
  8157. ERRNZ /COMSMTX/DVMT
  8158. LX5 0-12-0+18
  8159. BX6 -X0*X5 DEFAULT 9 TRACK NOISE BLOCK DEFINITION
  8160. TBD5 SA2 TB
  8161. LX6 24
  8162. BX6 X2+X6 MERGE NOISE BLOCK DEFINITION
  8163. SA6 A2 UPDATE TAPE BLOCK DESCRIPTORS
  8164. EQ TBDX RETURN
  8165. VCD SPACE 4,10
  8166. ** VCD - VERIFY TAPE ASSIGNMENT COMMAND DEFAULTS.
  8167. *
  8168. * EXIT *F+FTAP* PARAMETERS DEFAULTED AS REQUIRED.
  8169. * TO *PER* IF ERROR IN COMMAND DEFAULTS.
  8170. *
  8171. * USES X - 1, 2, 3, 4, 6, 7.
  8172. * A - 1, 2, 3, 4, 7.
  8173. * B - 2.
  8174.  
  8175.  
  8176. VCD SUBR ENTRY/EXIT
  8177.  
  8178. * SET IMPLICIT DEVICE TYPE IF REQUIRED.
  8179.  
  8180. SA1 F+FTAP
  8181. SA2 TT
  8182. SA4 DM
  8183. ZR X2,VCD1 IF DEVICE TYPE NOT EXPLICITY SPECIFIED
  8184. ZR X4,VCD4 IF NO DENSITY SELECTION
  8185. MX6 -2
  8186. LX1 -55
  8187. BX6 -X6*X1 SPECIFIED DEVICE TYPE
  8188. SB2 X6+59-3
  8189. LX1 55
  8190. LX4 B2
  8191. NG X4,VCD4 IF DENSITY VALID FOR DEVICE TYPE
  8192. SB2 /PER/IDD * INCORRECT DENSITY FOR TAPE DEVICE TYPE.*
  8193. EQ PER PROCESS ERROR
  8194.  
  8195. VCD1 ZR X4,VCD2 IF NO DENSITY SELECTION
  8196. CX2 X4
  8197. LX4 47-3
  8198. SB2 X2+ NUMBER OF DEVICE TYPES VALID FOR SELECTION
  8199. GT B2,B1,VCD2 IF DEVICE TYPE NOT DETERMINED BY SELECTION
  8200. NX4,B2 X4
  8201. SX2 B2 IMPLICIT DEVICE TYPE
  8202. EQ VCD3 SET IMPLICIT DEVICE TYPE
  8203.  
  8204. VCD2 SA3 AA
  8205. ZR X3,VCD4 IF OPERATOR TO ASSIGN EQUIPMENT
  8206. SA2 /LWC/IPRL GET DEFAULT DEVICE TYPE
  8207. LX2 -4
  8208. VCD3 MX6 -2
  8209. BX2 -X6*X2
  8210. LX2 55
  8211. BX1 X1+X2 SET DEVICE TYPE
  8212. SX7 1
  8213. SA7 TT SET TAPE DEVICE TYPE SPECIFIED
  8214.  
  8215. * SET LABEL TYPE IF REQUIRED.
  8216.  
  8217. VCD4 SA2 LT
  8218. SA3 RT
  8219. SA4 VP
  8220. NZ X2,VCD6 IF LABEL TYPE EXPLICITLY SPECIFIED
  8221. ZR X3,VCD5 IF *LABEL* COMMAND
  8222. ZR X4,VCD6 IF VSN NOT SPECIFIED
  8223. VCD5 SX7 2 SET STANDARD LABELS
  8224. LX7 57
  8225. BX1 X1+X7 SET LABEL TYPE
  8226.  
  8227. * UPDATE FET PARAMETERS.
  8228.  
  8229. VCD6 BX7 X1 UPDATE *F+FTAP*
  8230. SA7 A1
  8231. EQ VCDX RETURN
  8232. VTD SPACE 4,15
  8233. ** VTD - VERIFY TAPE DESCRIPTORS.
  8234. *
  8235. * ENTRY (X1) = TAPE DESCRIPTOR WORD.
  8236. *
  8237. * EXIT (B2) = ERROR STATUS.
  8238. * (X1) = TAPE DESCRIPTOR WORD.
  8239. * (B3) = TAPE FORMAT.
  8240. * (B4) = TAPE DEVICE TYPE.
  8241. *
  8242. * USES X - 1, 2, 3, 4, 6, 7.
  8243. * A - 3.
  8244. * B - 2, 3, 4.
  8245.  
  8246.  
  8247. VTD SUBR ENTRY/EXIT
  8248. MX6 -6
  8249. LX1 0-30
  8250. MX7 -2
  8251. BX2 -X6*X1 FORMAT
  8252. SB2 /PER/ITF * INCORRECT TAPE FORMAT.*
  8253. SX3 X2-/COMSMTX/TFMA
  8254. LX1 0-39-0+30
  8255. PL X3,VTDX IF ERROR IN FORMAT
  8256. BX4 -X7*X1 PO=R AND PO=W FLAGS
  8257. SB3 X2+ SAVE FORMAT
  8258. CX4 X4
  8259. LX1 0-45-0+39
  8260. SX4 X4-2
  8261. SB2 /PER/WED * WRITE ENABLE AND DISABLE OPTIONS...*
  8262. PL X4,VTDX IF WRITE ENABLE AND DISABLE BOTH SELECTED
  8263. MX6 -3
  8264. BX4 -X6*X1 PO=I, PO=P, AND PO=S FLAGS
  8265. CX3 X4
  8266. AX4 1 REMOVE PO=S FLAG
  8267. SX3 X3-2
  8268. SB2 /PER/MET * MULTIPLE END OF TAPE OPTIONS SELECTED.*
  8269. PL X3,VTDX IF MORE THAN ONE OPTION SELECTED
  8270. SB2 B3+59-17
  8271. SX3 160000B MASK OF FORMATS SUPPORTING PO=I OR PO=P
  8272. LX1 59-58-0+45
  8273. LX3 B2
  8274. ZR X4,VTD1 IF NEITHER PO=I NOR PO=P SPECIFIED
  8275. SB2 /PER/IEF * INCORRECT END OF TAPE OPTION FOR ...*
  8276. PL X3,VTDX IF SELECTED OPTION NOT VALID FOR FORMAT
  8277. VTD1 PL X1,VTD2 IF NOT LABELED TAPE
  8278. SX3 B3-/COMSMTX/TFF
  8279. SB2 /PER/FRU * FORMAT REQUIRES UNLABELED TAPE.*
  8280. ZR X3,VTDX IF *F* FORMAT
  8281. VTD2 LX1 0-48-59+58
  8282. MX6 -3
  8283. BX2 -X6*X1 CONVERSION MODE
  8284. LX1 0-51-0+48
  8285. SB2 /PER/ICM * INCORRECT CONVERSION MODE.*
  8286. SX3 X2-/COMSMTX/MCCO
  8287. ZR X2,VTDX IF ERROR IN CONVERSION MODE
  8288. PL X3,VTDX IF ERROR IN CONVERSION MODE
  8289. BX4 -X6*X1 DENSITY
  8290. LX1 0-55-0+51
  8291. SX3 X4-/COMSMTX/DMAX
  8292. SB2 /PER/IDN * INCORRECT DENSITY*
  8293. ZR X4,VTDX IF ERROR IN DENSITY
  8294. PL X3,VTDX IF ERROR IN DENSITY
  8295. BX7 -X7*X1 TAPE DEVICE TYPE
  8296. LX1 55 RESTORE TAPE DESCRIPTORS
  8297. SB4 X7+ SAVE DEVICE TYPE
  8298. SX2 X2-/COMSMTX/BCD
  8299. SB2 /PER/ICD * INCORRECT CONVERSION MODE FOR TAPE...*
  8300. NZ B4,VTD3 IF NOT 7 TRACK DEVICE TYPE
  8301. ERRNZ /COMSMTX/DVMT
  8302. NZ X2,VTDX IF NOT 7 TRACK CONVERSION MODE
  8303. EQ VTD4 CHECK DEVICE TYPE AND DENSITY
  8304.  
  8305. VTD3 ZR X2,VTDX IF 7 TRACK CONVERSION MODE
  8306. VTD4 SA3 VTDA GET DENSITY LIMITS
  8307. SX2 6
  8308. IX7 X7*X2
  8309. SB2 X7+6
  8310. LX3 B2 POSITION DENSITY LIMITS FOR DEVICE TYPE
  8311. BX2 -X6*X3 MAXIMUM DENSITY
  8312. LX3 -3
  8313. BX3 -X6*X3 MINIMUM DENSITY
  8314. IX2 X2-X4
  8315. IX3 X4-X3
  8316. SB2 /PER/IDD * INCORRECT DENSITY FOR DEVICE TYPE.*
  8317. NG X2,VTDX IF DENSITY .GT. MAXIMUM
  8318. NG X3,VTDX IF DENSITY .LT. MINIMUM
  8319. SX3 610000B MASK OF INTERNAL TAPE FORMATS
  8320. SB2 B3+59-17
  8321. LX3 B2
  8322. NG X3,VTD6 IF INTERNAL TAPE FORMAT
  8323. SX3 X4-/COMSMTX/DNMX-1
  8324. PL X3,VTD5 IF DENSITY DOES NOT SUPPORT NOISE BLOCKS
  8325. MX6 -6
  8326. LX1 0-24
  8327. BX2 -X6*X1 NOISE SIZE
  8328. LX1 24-0
  8329. SX6 X2-31-1
  8330. SB2 /PER/NSL * NOISE SIZE TOO LARGE.*
  8331. PL X6,VTDX IF NOISE SIZE TOO LARGE
  8332. VTD5 SX3 B3-/COMSMTX/TFF
  8333. NZ X3,VTD7 IF NOT *F* FORMAT
  8334. MX6 -24
  8335. BX3 -X6*X1 BLOCK SIZE FRAME COUNT
  8336. SX6 32
  8337. IX6 X3-X6
  8338. SB2 /PER/FCS * FRAME COUNT TOO SMALL.*
  8339. NG X6,VTDX IF FRAME COUNT TOO SMALL
  8340. SA2 VTDB+B4 GET MAXIMUM FRAME COUNT FOR DEVICE TYPE
  8341. IX2 X2-X3
  8342. SB2 /PER/FCL * FRAME COUNT TOO LARGE.*
  8343. PL X2,VTD7 IF FRAME COUNT NOT TOO LARGE
  8344. EQ VTDX RETURN WITH ERROR
  8345.  
  8346. VTD6 SX2 B3-/COMSMTX/TFLI
  8347. NZ X2,VTD7 IF NOT *LI* FORMAT
  8348. SX3 X4-/COMSMTX/DLIMN
  8349. SB2 /PER/IDF * INCORRECT DENSITY FOR FORMAT.*
  8350. NG X3,VTDX IF DENSITY .LT. *LI* FORMAT MINIMUM
  8351. VTD7 SB2 B0 SET NO ERROR
  8352. EQ VTDX RETURN
  8353.  
  8354.  
  8355. VTDA BSS 0 DENSITY LIMITS BY TAPE DEVICE TYPE
  8356. VFD 3//COMSMTX/D7MN,3//COMSMTX/D7MX *MT* LIMITS
  8357. VFD 3//COMSMTX/D18MN,3//COMSMTX/D18MX *CT* LIMITS
  8358. VFD 3//COMSMTX/D9MN,3//COMSMTX/D9MX *NT* LIMITS
  8359. VFD 3//COMSMTX/D18MN,3//COMSMTX/D18MX *AT* LIMITS
  8360. VFD 36/0
  8361.  
  8362. VTDB BSS 0 MAXIMUM FRAME COUNT BY TAPE DEVICE TYPE
  8363. CON 377700B*60/6 MAXIMUM *MT* FRAME COUNT
  8364. CON 377700B*60/16 MAXIMUM *CT* FRAME COUNT
  8365. CON 377700B*60/8 MAXIMUM *NT* FRAME COUNT
  8366. CON 377700B*60/16 MAXIMUM *AT* FRAME COUNT
  8367. SPACE 4,10
  8368. ** GLOBAL DATA.
  8369.  
  8370.  
  8371. AP CON 0 ASSEMBLY POINTER
  8372. DM CON 0 DENSITY SELECTION VALID DEVICE TYPE MASK
  8373. LT CON 0 LABEL TYPE SPECIFIED FLAG
  8374. RC CON 0 RETENTION CYCLE
  8375. SC CON 0 SEPARATOR CHARACTER
  8376. TT CON 0 TAPE DEVICE TYPE SPECIFIED FLAG
  8377. VP CON 0 VSN PROCESSED
  8378. TDEN SPACE 4,15
  8379. ** TDEN - TABLE OF DENSITY OPTIONS.
  8380. *
  8381. * 42/ PARM,11/0,4/ TM,3/ DN
  8382. *
  8383. * PARM DENSITY PARAMTER (DISPLAY CODE)
  8384. * TM TAPE TYPE MASK = *MCNA*
  8385. * *M* BIT SET IF OPTION VALID FOR *MT* DEVICE
  8386. * *C* BIT SET IF OPTION VALID FOR *CT* DEVICE
  8387. * *N* BIT SET IF OPTION VALID FOR *NT* DEVICE
  8388. * *A* BIT SET IF OPTION VALID FOR *AT* DEVICE
  8389. *
  8390. * DN DENSITY SELECTION (1=556,2=200,3=800,4=1600,5=6250,
  8391. * 6=38000)
  8392.  
  8393.  
  8394. TDEN BSS 0
  8395. QUAL TDEN
  8396. LOC 0
  8397.  
  8398. * NUMERICAL KEYWORD ENTRIES. THE ORDER MUST BE BY DENSITY IN
  8399. * *COMSMTX* FORMAT.
  8400.  
  8401. VFD 42/0L200,11/0,4/10B,3/2 200 BPI *MT*
  8402. VFD 42/0L556,11/0,4/10B,3/1 556 BPI *MT*
  8403. VFD 42/0L800,11/0,4/12B,3/3 800 BPI *MT* OR *NT*
  8404. VFD 42/0L1600,11/0,4/2,3/4 1600 CPI *NT*
  8405. VFD 42/0L6250,11/0,4/2,3/5 6250 BPI *NT*
  8406. VFD 42/0L38000,11/0,4/5,3/6 38000 CPI *CT* OR *AT*
  8407.  
  8408. * SEVEN TRACK DENSITY MNEMONICS. THE ORDER MUST BE BY DENSITY
  8409. * IN *COMSMTX* FORMAT.
  8410.  
  8411. LO VFD 42/0LLO,11/0,4/10B,3/2 200 BPI *MT*
  8412. HI VFD 42/0LHI,11/0,4/10B,3/1 556 BPI *MT*
  8413. HY VFD 42/0LHY,11/0,4/10B,3/3 800 BPI *MT*
  8414.  
  8415. * NINE TRACK DENSITY MNEMONICS. THE ORDER MUST BE BY DENSITY
  8416. * IN *COMSMTX* FORMAT.
  8417.  
  8418. HD VFD 42/0LHD,11/0,4/2,3/3 800 CPI *NT*
  8419. PE VFD 42/0LPE,11/0,4/2,3/4 1600 CPI *NT*
  8420. GE VFD 42/0LGE,11/0,4/2,3/5 6250 CPI *NT*
  8421.  
  8422. * CARTRIDGE TAPE DENSITY MNEMONIC.
  8423.  
  8424. CE VFD 42/0LCE,11/0,4/4,3/6 38000 CPI *CT*
  8425.  
  8426. * ACS CARTRIDGE TAPE DENSITY MNEMONIC.
  8427.  
  8428. AE VFD 42/0LAE,11/0,4/1,3/6 38000 CPI *AT*
  8429.  
  8430. LOC *O
  8431. QUAL *
  8432. CON 0 END OF TABLE
  8433. SPACE 4,10
  8434. ** COMMON DECKS USED IN PRESET.
  8435.  
  8436.  
  8437. RCC SET 1 DEFINE COMMAND READ AHEAD FOR *COMCPOP*
  8438. *CALL COMCVLC
  8439.  
  8440. * REDEFINE *CONTROL* MACRO TO CALL SUBROUTINE *IDF*.
  8441.  
  8442. .CONTRL OPSYN CONTROL
  8443. PURGMAC CONTROL
  8444. CONTROL MACRO AD,RS,LF,PS
  8445. .CONTRL AD,RS,LF,PS
  8446. IFC EQ,$RS$$,1
  8447. RJ IDF ISSUE DAYFILE MESSAGE
  8448. CONTROL ENDM
  8449.  
  8450. LIT CON 0 DEFINE LITERAL PROCESSING
  8451. *CALL COMCPOP
  8452.  
  8453. * RESTORE *CONTROL* MACRO.
  8454.  
  8455. CONTROL OPSYN .CONTRL
  8456.  
  8457. *CALL COMCRSP
  8458. *CALL COMCUSB
  8459. TITLE LFM *DMP=* CALL PRESET.
  8460. LFM SPACE 4,10
  8461. *** LFM - PROCESS CALL FROM *LFM*.
  8462. *
  8463. * ENTRY (SPPR) = *LFM* CALL.
  8464. *T SPPR 18/ *LFM*, 12/, 6/ CODE, 6/, 18/ FET ADDRESS
  8465. * CODE = LFM FUNCTION CODE
  8466.  
  8467.  
  8468. LFM BSS 0 ENTRY
  8469.  
  8470. * VALIDATE CALL.
  8471.  
  8472. SB1 1 (B1) = 1
  8473. SA1 ACTR CHECK FOR COMMAND CALL
  8474. SB2 /PER/CCI *INCORRECT COMMAND.*
  8475. NZ X1,PER IF COMMAND CALL
  8476. SX7 1
  8477. SA7 CF SET CALL FLAG
  8478. RJ PCV PRESET CONTROL POINT VALUES
  8479. SA1 SPPR
  8480. MX0 -6
  8481. SX7 B0
  8482. LX1 -24
  8483. BX6 -X0*X1
  8484. SX6 X6-/LFM/RENAME
  8485. ZR X6,LFM4 IF *RENAME*
  8486. SX6 X6-/LFM/LABEL+/LFM/RENAME
  8487. SB2 /PER/ILC * INCORRECT LFM CALL.*
  8488. NZ X6,PER IF NOT *LABEL*
  8489.  
  8490. * PROCESS *LABEL* REQUEST.
  8491.  
  8492. SA7 FS INDICATE FILE NOT PREVIOUSLY ASSIGNED
  8493. RJ CLF CONVERT LFM CALL TO FET
  8494. RJ SVI SET VSN INDEX
  8495. RJ FRA CHECK FOR *TMS* FIRST REEL ASSIGNMENT
  8496. MX1 36
  8497. SA5 F+FVSN CHECK FOR VSN
  8498. MX0 -11
  8499. BX5 X1*X5
  8500. SX7 B0
  8501. NZ X5,VTR IF VSN DEFINED
  8502.  
  8503. * CHECK FOR SPECIAL *PFRES* INTERNAL LABEL REQUEST.
  8504.  
  8505. RDSB MTSI,1,/COMSMTX/TAJP,LFMA,X READ JOB TABLE POINTER
  8506. SA1 SS READ STATUS WORD
  8507. SA5 LFMA
  8508. SX7 B0+
  8509. PL X1,LFM3 IF FAILURE IN READ
  8510. ZR X5,LFM3 IF TAPE ALTERNATE STORAGE NOT ENABLED
  8511. SX7 X5 SET FWA OF BLOCK
  8512. AX5 48
  8513. SB2 X5 NUMBER OF WORDS IN STAGING JOB TABLE
  8514. RDSB MTSI,X5,X7,ASJT READ JOB TABLE
  8515. SA1 JSN
  8516. MX2 24
  8517. SX7 B0
  8518. LFM2 SB2 B2-B1
  8519. SA3 ASJT+B2
  8520. BX4 X3-X1
  8521. BX4 X2*X4 ISOLATE JSN COMPARISION
  8522. ZR X4,GVS IF JSN MATCHES, GET VSN FOR STAGING TAPE
  8523. GT B2,LFM2 IF NOT END OF TABLE
  8524.  
  8525. * NORMAL REQUEST WITH NO VSN - REQUEST OPERATOR ASSIGNMENT.
  8526.  
  8527. LFM3 SA1 F+FDTY CHECK DEVICE TYPE
  8528. SA7 AA SET OPERATOR ASSIGNMENT FLAG
  8529. LX1 12
  8530. BX7 -X0*X1
  8531. RJ CTE CHECK FOR TAPE EQUIPMENT DEVICE CODE
  8532. ZR X2,ROE IF TAPE DEVICE NOT SPECIFIED
  8533. EQ VTR VALIDATE TAPE REQUEST
  8534.  
  8535. * PROCESS *RENAME*.
  8536.  
  8537. LFM4 SA3 SFET GET FILE NAME
  8538. SB2 B0+ SET UP IDENTIFICATION IN VSN ENTRY
  8539. RJ IVE
  8540. RJ SVE
  8541. SB2 /PER/VFE * VSN FILE ERROR.*
  8542. NZ X5,PER IF ENTRY NOT FOUND
  8543. MOVE VSNL,VSNB,VSNE
  8544. SA1 SFET+FNFN READ NEW FILE NAME
  8545. MX0 -18
  8546. BX6 X0*X1
  8547. SA6 VSNE+VLFN ENTER NEW FILE NAME
  8548. BX7 -X0*X1
  8549. BX7 X7+X6
  8550. SA7 SFET ENTER NEW FILE NAME
  8551. RJ MVE UPDATE VSN FILE
  8552. EQ END1 RETURN OK STATUS AND END
  8553.  
  8554.  
  8555. LFMA BSSZ 1 STAGE JOB TABLE POINTER
  8556. TITLE *REQ* *DMP=* CALL PRESET.
  8557. REQ SPACE 4,10
  8558. *** REQ - PROCESS *NOS/BE* REQUEST BLOCK CALL.
  8559. *
  8560. * ENTRY (SPPR) = *REQ* CALL.
  8561.  
  8562.  
  8563. REQ SB1 1
  8564. SA1 ACTR CHECK FOR COMMAND CALL
  8565. SB2 /PER/CCI *INCORRECT COMMAND.*
  8566. NZ X1,PER IF COMMAND CALL
  8567. SX7 1
  8568. SA7 CF SET CALL FLAG
  8569. RJ PCV PRESET CONTROL POINT VALUES
  8570. RJ CSF CONVERT *NOS/BE* CALL TO FET
  8571. RJ FSC FILE STATUS CHECK
  8572. NG X7,REQ1 IF TAPE PRESENT
  8573. NZ X7,END1 IF ANOTHER TYPE OF FILE PRESENT
  8574. RJ SVI SET VSN INDEX
  8575. RJ FRA PROCESS FIRST REEL ASSIGNMENT
  8576. SA2 F+FVSN CHECK FOR VSN
  8577. MX0 36
  8578. BX7 X0*X2
  8579. NZ X7,REQ2 IF NO VSN DEFINED
  8580. EQ VTR VALIDATE TAPE REQUEST
  8581.  
  8582. REQ1 RJ OPN OPEN TAPE FILE
  8583. EQ END1 RETURN OK STATUS AND END
  8584.  
  8585. REQ2 SA7 AA SET OPERATOR ASSIGNMENT FLAG
  8586. EQ VTR VALIDATE TAPE REQUEST
  8587. TITLE VSN AND DEMAND FILE PRESET SUBROUTINES.
  8588. BVE SPACE 4,15
  8589. ** BVE - BUILD VSN ENTRY.
  8590. *
  8591. * ENTRY (B6) = ASSEMBLY POINTER.
  8592. * (X3) = FILE NAME.
  8593. *
  8594. * EXIT (AP) = (B6) = UPDATED ASSEMBLY POINTER.
  8595. * VSNE = NEW VSN FILE ENTRY.
  8596. *
  8597. * ERROR TO *ERR*, IF COMMAND ERROR.
  8598. *
  8599. * USES X - 5, 6, 7.
  8600. * A - 6, 7.
  8601. * B - 2.
  8602. *
  8603. * CALLS CVS, IVE.
  8604.  
  8605.  
  8606. BVE SUBR ENTRY/EXIT
  8607.  
  8608. * INITIALIZE VSN PROCESSING.
  8609.  
  8610. SB2 B1 INITIALIZE ENTIRE VSN ENTRY
  8611. RJ IVE
  8612. SA0 VSNE+VVSN INITIALIZE ENTRY POINTER
  8613. SX6 B1 ENABLE LITERAL PROCESSING
  8614. SX5 B0 INITIALIZE REEL COUNT AND FLAGS
  8615. SA6 LIT
  8616.  
  8617. * CHECK FIRST VSN.
  8618.  
  8619. RJ CVS CHECK VSN
  8620. NG B2,BVE5 IF ONE VSN SPECIFIED
  8621. ZR X1,BVE4 IF SCRATCH VSN
  8622. LE B2,B0,BVE1 IF VSN NOT EQUIVALENCED
  8623. SX5 100B SET EQUIVALENCED VSN-S FLAG
  8624. EQ BVE3 PROCESS EQUIVALENCED VSN-S
  8625.  
  8626. * PROCESS NON-SCRATCH, NON-EQUIVALENCED VSN-S.
  8627.  
  8628. BVE1 RJ CVS CHECK VSN
  8629. ZR X1,ERR IF SCRATCH VSN
  8630. NG B2,BVE5 IF END OF VSN-S
  8631. EQ B2,B0,BVE1 IF VSN NOT EQUIVALENCED
  8632. EQ ERR PROCESS ERROR
  8633.  
  8634. * PROCESS EQUIVALENCED VSN-S.
  8635.  
  8636. BVE2 RJ CVS CHECK VSN
  8637. LE B2,B0,ERR IF VSN NOT EQUIVALENCED
  8638. SX5 X5-1 ADJUST REEL COUNT
  8639. BVE3 RJ CVS CHECK INTERNAL VSN
  8640. ZR X1,ERR IF SCRATCH VSN
  8641. NG B2,BVE5 IF END OF VSN-S
  8642. EQ B2,B0,BVE2 IF VSN NOT EQUIVALENCED
  8643. EQ ERR PROCESS ERROR
  8644.  
  8645. * VERIFY SCRATCH VSN-S.
  8646.  
  8647. BVE4 RJ CVS CHECK VSN
  8648. NZ X1,ERR IF NOT SCRATCH VSN
  8649. PL B2,BVE4 IF NOT END OF VSN-S
  8650.  
  8651. * SAVE ASSEMBLY POINTER AND SET REEL COUNT.
  8652.  
  8653. BVE5 SX6 B6 SAVE ASSEMBLY POINTER
  8654. BX7 X5 SET REEL COUNT AND EQUIVALENCED VSN STATUS
  8655. SA6 AP
  8656. SA7 VSNE+VRLC
  8657. EQ BVEX RETURN
  8658. CVS SPACE 4,20
  8659. ** CVS - CHECK VSN PARAMETER.
  8660. *
  8661. * ENTRY (A0) = *VSNE* BUFFER POINTER.
  8662. * (X5) = REEL COUNT AND EQUIVALENCED VSN STATUS.
  8663. *
  8664. * EXIT (X6) = 36/ SPACE FILLED VSN,24/ 0.
  8665. * (X1) = 0 IF SCRATCH VSN.
  8666. * (X7) .NE. 0 IF NOT SCRATCH VSN.
  8667. * (B2) = .LT. 0 IF END OF PARAMETER OR COMMAND.
  8668. * (B2) = 0 IF SEPARATOR IS */*.
  8669. * (B2) = .GT. 0 IF SEPARATOR IS *=*.
  8670. * (A0) = UPDATED *VSNE* BUFFER POINTER.
  8671. * (X5) = UPDATED REEL COUNT AND EQUIVALENCED VSN STATUS.
  8672. *
  8673. * USES X - 0, 1, 2, 3, 5, 6.
  8674. * A - 0, 1, 2, 3, 6.
  8675. * B - 2.
  8676. *
  8677. * CALLS POP, SFN.
  8678.  
  8679.  
  8680. CVS SUBR ENTRY/EXIT
  8681. MX0 -24
  8682. SX5 X5+B1 ADVANCE REEL COUNT
  8683. RJ POP PICK OUT PARAMETER
  8684. NG B5,ERR IF ERROR
  8685. GE B5,B1,ERR IF MORE THAN 1 WORD IN PARAMETER
  8686. SA2 SCRATCH CHECK FOR SCRATCH VSN
  8687. SA3 ZERO
  8688. SX1 B0+
  8689. BX2 X2-X6
  8690. BX3 X3-X6
  8691. ZR X6,CVS2 IF VSN OMITTED
  8692. ZR X2,CVS2 IF *SCRATCH* VSN
  8693. ZR X3,CVS2 IF *0* VSN
  8694. CVS1 BX1 X6
  8695. BX2 -X0*X6
  8696. NZ X2,ERR IF VSN TOO LONG
  8697. CVS2 RJ SFN SPACE FILL VSN
  8698. SA2 A1 GET SEPARATOR
  8699. SX3 A0-VSNE-VSNL
  8700. BX6 X0*X6
  8701. PL X3,ERR IF VSN BUFFER ALREADY FULL
  8702. SA6 A0 STORE VSN
  8703. SA0 A0+B1 ADVANCE BUFFER POINTER
  8704. SB2 -1
  8705. ZR B6,CVSX IF END OF COMMAND
  8706. SX3 X2-1R,
  8707. ZR X3,CVSX IF END OF PARAMETER
  8708. SX3 X2-1R/
  8709. SB2 B0+
  8710. ZR X3,CVSX IF SEPARATOR IS */*
  8711. SX3 X2-1R=
  8712. SB2 1
  8713. NZ X3,ERR IF SEPARATOR IS NOT *=*
  8714. ZR X1,ERR IF SCRATCH VSN EQUIVALENCED
  8715. EQ CVSX RETURN
  8716. FSC SPACE 4,20
  8717. ** FSC - FILE STATUS CHECK.
  8718. *
  8719. * ENTRY VF = FET.
  8720. *
  8721. * EXIT (B7) = (FS) = FILE STATUS.
  8722. * = -1, IF TAPE FILE IS FOUND.
  8723. * = 0, IF *TE* FILE IS FOUND, FILE IS NOT FOUND, OR
  8724. * STATUS ERROR OCCURRED.
  8725. * = 1, IF FILE FOUND IS NOT TAPE RELATED.
  8726. * (TS) = -1 IF A SYMBOLIC *TMS* TAPE FILE.
  8727. *
  8728. * USES A - 1, 2, 7.
  8729. * B - 7.
  8730. * X - 0, 1, 2, 3, 4, 5, 7.
  8731. *
  8732. * CALLS CTE.
  8733. *
  8734. * MACROS RDSB, STATUS.
  8735.  
  8736.  
  8737. FSC1 SA7 FS SET FILE STATUS
  8738. SB7 X7+ SET RETURN STATUS
  8739.  
  8740. FSC SUBR ENTRY/EXIT
  8741. MX0 1 SELECT ERROR PROCESSING
  8742. SA1 VF+FDTY
  8743. LX0 -15
  8744. BX7 X0+X1
  8745. SA7 A1
  8746. STATUS VF,P
  8747. MX0 1 CLEAR ERROR PROCESSING
  8748. SA1 VF+FDTY
  8749. LX0 -15
  8750. BX7 -X0*X1
  8751. SA7 A1
  8752. MX0 -8 CHECK ERROR RESPONSE
  8753. SA2 A1-B1
  8754. LX2 -10
  8755. BX5 -X0*X2
  8756. SX7 B0+
  8757. NZ X5,FSC1 IF FILE NOT FOUND OR ERRORS
  8758. MX0 -11
  8759. LX1 12
  8760. BX4 -X0*X1
  8761. BX7 -X0*X1
  8762. RJ CTE CHECK FOR TAPE DEVICE
  8763. SX7 -1 SET TAPE FILE
  8764. NZ X2,FSC0.1 IF TAPE DEVICE
  8765. SX7 X4-2RTE
  8766. ZR X7,FSC1 IF FILE ASSIGNED TO *TE* DEVICE
  8767. SX7 1 SET NON-TAPE FILE FOUND
  8768. EQ FSC1 RETURN FILE STATUS
  8769.  
  8770. FSC0.1 SA1 TMPF
  8771. NG X1,FSC1 IF *TMS* DISABLED
  8772. MX0 -12 GET UDT ADDRESS
  8773. SA1 VF+6
  8774. LX1 -36
  8775. BX1 -X0*X1
  8776. RDSB MTSI,/COMSMTX/UNITL,X1,UDT GET UDT ENTRY
  8777. SA1 UDT+/COMSMTX/UTMS CHECK IF SYMBOLIC *TMS* TAPE
  8778. LX1 59-8
  8779. BX7 X1
  8780. SA7 TS FLAG SYMBOLIC *TMS* TAPE
  8781. SX7 -1 SET TAPE FILE FOUND
  8782. EQ FSC1 FLAG MAGNETIC TAPE
  8783. MFE SPACE 4,15
  8784. ** MFE - MAKE RESOURCE FILE ENTRIES.
  8785. *
  8786. * ENTRY (VP) = 0, IF NO VSN FILE ENTRY TO BE MADE.
  8787. *
  8788. * EXIT VSN AND DEMAND FILE ENTRIES MADE IF NEEDED.
  8789. *
  8790. * USES A - 1, 6.
  8791. * X - 1, 2, 5, 6.
  8792. *
  8793. * CALLS MVE, RDF, SVE, UDF.
  8794. *
  8795. * MACROS RETRF.
  8796.  
  8797.  
  8798. MFE2 RETRF V RETURN VSN FILE, RELEASE INTERLOCK
  8799.  
  8800. MFE SUBR ENTRY/EXIT
  8801. SA1 VP
  8802. ZR X1,MFEX IF NO VSN ENTRY TO BE MADE
  8803. SA1 /CPA/RFCW
  8804. SX6 X1+
  8805. NZ X6,MFE1 IF DEMAND FILE ENTRY EXISTS
  8806. RJ RDF READ DEMAND FILE
  8807. SX5 B1 SET RETURN DEMAND FILE FLAG
  8808. RJ UDF UPDATE DEMAND FILE
  8809. MFE1 MX2 36
  8810. SA1 VSNE+VDFI ENTER DEMAND ENTRY RANDOM ADDRESS
  8811. BX1 X2*X1
  8812. BX6 X1+X6
  8813. SA6 A1
  8814. RJ SVE SEARCH FOR VSN ENTRY
  8815. ZR X5,MFE2 IF DUPLICATE VSN ENTRY
  8816. RJ MVE
  8817. EQ MFEX RETURN
  8818. SVE SPACE 4,15
  8819. ** SVE - SEARCH FOR VSN FILE ENTRY.
  8820. *
  8821. * ENTRY VSNE = NEW VSN ENTRY.
  8822. * VSN FILE ALREADY ATTACHED IF CALLED FROM *SVI*.
  8823. *
  8824. * EXIT (X5) = 0, IF ENTRY FOUND.
  8825. * (VA) = RANDOM INDEX IF ENTRY FOUND.
  8826. * VSNB = VSN FILE ENTRY, IF FOUND.
  8827. * VSN FILE INTERLOCKED.
  8828. *
  8829. * USES A - 3, 4, 5, 7.
  8830. * X - 1, 3, 4, 5, 6, 7.
  8831. *
  8832. * MACROS FATRF, READ, READW.
  8833.  
  8834.  
  8835. SVE2 BX7 X7-X7 INDICATE ENTRY NOT FOUND
  8836. MX5 1
  8837. SA7 VA CLEAR RANDOM ADDRESS
  8838.  
  8839. SVE SUBR ENTRY/EXIT
  8840. FATRF V,M ATTACH VSN FILE
  8841. READ X2,R
  8842. SX7 B1 INITIALIZE RANDOM INDEX
  8843. SVE1 SA7 VA SET NEXT VSN INDEX
  8844. READW X2,VSNB,VSNL
  8845. NZ X1,SVE2 IF END OF VSN FILE
  8846. SA5 VA
  8847. SA3 VSNB+VLFN COMPARE FILE NAMES
  8848. SA4 VSNE+VLFN
  8849. SX7 X5+B1 ADVANCE VSN FILE INDEX
  8850. ZR X3,SVE1 IF EMPTY ENTRY
  8851. BX1 X3-X4
  8852. SA3 VSNB+VDFI
  8853. SA4 VSNE+VDFI
  8854. MX6 -36
  8855. BX4 X3-X4 COMPARE EJT ORDINAL AND DEMAND FILE INDEX
  8856. LX4 12
  8857. BX4 -X6*X4
  8858. BX1 X1+X4
  8859. NZ X1,SVE1 IF NO MATCH
  8860. MX5 0 INDICATE FOUND
  8861. EQ SVEX RETURN
  8862. SVI SPACE 4,20
  8863. ** SVI - SET VSN INDEX.
  8864. *
  8865. * ENTRY FET BUILT.
  8866. *
  8867. * EXIT (X5) = 0, IF ENTRY FOUND.
  8868. * (VC) = 1 IF VSN FILE ENTRY FOUND.
  8869. * (VP) = 1 IF VSN FILE FOUND.
  8870. * (EVSN) = EXTERNAL VSN SET FROM VSN FILE IF FOUND.
  8871. * (IVSN) = INTERNAL VSN SET FROM VSN FILE IF FOUND.
  8872. * (F+FVSN) = INTERNAL VSN SET FROM VSN FILE IF FOUND.
  8873. *
  8874. * USES A - 1, 2, 3, 4, 6, 7.
  8875. * B - 2.
  8876. * X - 0, 1, 2, 3, 4, 6, 7.
  8877. *
  8878. * CALLS IVE, SVE.
  8879. *
  8880. * MACROS FATRF, RETRF.
  8881.  
  8882.  
  8883. SVI SUBR ENTRY/EXIT
  8884. SB2 B0
  8885. SA3 F SET UP IDENTIFICATION IN VSN ENTRY
  8886. RJ IVE
  8887. FATRF V,RM ATTACH VSN FILE
  8888. RJ SVE SEARCH FOR VSN ENTRY
  8889. RETRF V RETURN VSN FILE, RELEASE INTERLOCK
  8890. NZ X5,SVIX IF NO VSN FILE ENTRY
  8891. SA1 VSNB+VVSN GET EXTERNAL VSN
  8892. SA2 A1+1
  8893. SA4 VSNB+VRLC
  8894. MX0 36
  8895. LX4 59-6
  8896. BX6 X0*X1 EXTERNAL VSN
  8897. BX7 X0*X1 PRESET INTERNAL VSN = EXTERNAL VSN
  8898. PL X4,SVI1 IF NOT EQUIVALENCED VSN-S
  8899. BX7 X0*X2 INTERNAL VSN
  8900. SVI1 SA3 F+FVSN
  8901. SA6 EVSN SET EXTERNAL VSN
  8902. SA7 IVSN SET INTERNAL VSN
  8903. BX3 -X0*X3
  8904. BX7 X3+X7
  8905. SX6 B1
  8906. SA7 A3 SET INTERNAL VSN IN FET
  8907. SA6 VP SET VSN PARAMETER PROCESSED
  8908. SA6 VC SET VSN FROM *VSN* COMMAND FLAG
  8909. EQ SVIX RETURN
  8910. AFO SPACE 4,10
  8911. ** AFO - ASSEMBLE FILE NAME AND TAPE OPTIONS.
  8912. *
  8913. * ENTRY USBB HAS COMMAND (1 CHARACTER PER WORD).
  8914. * (B6) = STRING BUFFER POINTER.
  8915. *
  8916. * EXIT PARAMETERS SET IN FET *F* FOR TAPE ASSIGNMENT.
  8917. *
  8918. * CALLS CLP, CRD, FID, FSC, GAL, GRD, ILF, NMD, POP, RTC, RTD,
  8919. * SAL, SCD, SCI, SCV, SFA, SFC, SFS, SID, SLT, SNS, SPO,
  8920. * STD, STF, STT, VSP, WRL.
  8921.  
  8922.  
  8923. * GENERATE RETENTION DATE AND GET ACCESS LEVEL.
  8924.  
  8925. AFO6 RJ GRD GENERATE RETENTION DATE
  8926. RJ GAL GET ACCESS LEVEL
  8927.  
  8928. AFO SUBR ENTRY/EXIT
  8929.  
  8930. * ASSEMBLE FILE NAME.
  8931.  
  8932. RJ POP PICK OUT PARAMETER
  8933. NZ B5,ERR IF ASSEMBLY ERROR
  8934. SA3 POPA
  8935. ZR X3,ERR IF NO FILE NAME
  8936. MX0 -18
  8937. BX5 -X0*X3
  8938. SX7 B1 COMPLETE FET
  8939. BX6 X7+X3
  8940. NZ X5,ERR IF FILE NAME TOO LONG
  8941. SA6 F ENTER FILE NAME
  8942. SA6 VF ENTER FILE NAME IN VSN FET
  8943.  
  8944. * INITIALIZE TAPE OPTION PROCESSING.
  8945.  
  8946. RJ FSC FILE STATUS CHECK
  8947. RJ ILF INITIALIZE LABEL FET
  8948. SA1 STFA
  8949. MX0 12
  8950. BX7 -X0*X1
  8951. SX2 /COMSMTX/POLM DEFAULT ERROR MESSAGE PROCESSING OPTION
  8952. SX3 /COMSMTX/POGH DEFAULT GCR WRITE CORRECTION OPTION
  8953. LX2 43-0
  8954. SA1 OT CHECK FOR SYSTEM ORIGIN
  8955. LX3 42-0
  8956. BX7 X7+X2
  8957. SX1 X1-SYOT
  8958. BX7 X7+X3
  8959. SX5 B1
  8960. SA7 F+FTAP
  8961. LX5 41
  8962. NZ X1,AFO1 IF NOT SYOT
  8963. BX7 X7+X5
  8964. SA7 A7
  8965.  
  8966. * PROCESS TAPE OPTION KEYWORD.
  8967. * REENTER HERE ON RETURN FROM KEYWORD PROCESSORS.
  8968.  
  8969. AFO1 ZR B6,AFO6 IF ARGUMENTS EXHAUSTED
  8970. SB3 TAOK-1 PARAMETER KEYWORD TABLE ADDRESS
  8971. SX6 B0 DISABLE LITERAL PROCESSING
  8972. SA1 B6-B1 GET LAST SEPARATOR
  8973. SX1 X1-1R=
  8974. ZR X1,ERR IF SEPARATOR IS *=*
  8975. RJ CLP CALL POP
  8976. GE B5,B1,ERR IF KEYWORD TOO LONG
  8977. SA4 TAOS ASSEMBLY OPTION SYNTAX TABLE
  8978. MX0 18
  8979. BX1 X5
  8980. NG X5,ERR IF INCORRECT FIRST CHARACTER
  8981. AX5 56
  8982. LX5 1
  8983. MX3 -6
  8984. SB2 X5
  8985. LX5 1
  8986. SB2 B2+X5
  8987. AX4 X4,B2 POSITION TABLE ADDRESS
  8988. BX4 -X3*X4
  8989. AFO2 SA3 B3+X4
  8990. BX7 X0*X3
  8991. IX6 X1-X7
  8992. SB3 B3+B1
  8993. NG X6,/TFM/TMO IF KEYWORD NOT FOUND
  8994. NZ X6,AFO2 IF NOT TO KEYWORD YET
  8995. SA4 A1
  8996. MX0 -6
  8997. SB2 X3
  8998. LX3 24
  8999. BX2 -X0*X3
  9000. SA6 A3+ CLEAR KEYWORD ENTRY
  9001. LX3 18
  9002. ZR X2,AFO4 IF NO EQUIVALENT PARAMETERS
  9003. SA1 TEQP-1+X2 CLEAR EQUIVALENT KEYWORD ENTRIES
  9004. AFO3 LX1 6
  9005. BX2 -X0*X1
  9006. ZR X2,AFO4 IF END OF ENTRIES
  9007. SA6 TAOK-1+X2
  9008. EQ AFO3 CONTINUE CLEARING EQUIVALENT ENTRIES
  9009.  
  9010. AFO4 MX0 -18 EXTRACT PROCESSOR PARAMETERS
  9011. BX7 -X0*X3
  9012. PL B2,AFO5 IF KEYWORD VALUE NOT REQUIRED
  9013. SX1 X4-1R=
  9014. SB2 -B2
  9015. NZ X1,ERR IF SEPARATOR NOT *=*
  9016. AFO5 SA5 RT GET REQUEST TYPE
  9017. JP B2 EXECUTE KEYWORD PROCESSOR
  9018.  
  9019.  
  9020. AFOR EQU AFO1 KEYWORD PROCESSOR RETURN ADDRESS
  9021. TAOK SPACE 4,10
  9022. ** TAOK - TABLE OF ASSEMBLY OPTION KEYWORDS.
  9023. *
  9024. * FOR DOCUMENTATION, REFER TO *MKTE* MACRO.
  9025.  
  9026.  
  9027. TAOK BSS 0
  9028. QUAL TAOK
  9029. LOC 1
  9030.  
  9031. AACT BSS 0 A - C SYNTAX TABLE
  9032. AL MKTE -SAL SECURITY ACCESS LEVEL
  9033. C MKTE -SCD CREATION DATE/CHARACTER COUNT
  9034. CB MKTE SCI,/TEQP/CKI,(18//COMSLFD/CBST) CHECKPOINT BOI
  9035. CK MKTE SCI,/TEQP/CKI,(18//COMSLFD/CKST) CHECKPOINT EOI
  9036. CR MKTE -CRD CREATION DATE
  9037. CV MKTE -SCV,/TEQP/CVM CONVERSION MODE
  9038.  
  9039. ADGT BSS 0 D - G SYNTAX TABLE
  9040.  
  9041. D MKTE -STD,/TEQP/DEN TAPE DENSITY
  9042. DT MKTE -STT,/TEQP/TDT TAPE DEVICE TYPE
  9043. E MKTE -NMD,,(1/1,1/1,1/0,9/,6/FGVN) GENERATION VERSION
  9044. F MKTE -STF FORMAT
  9045. FA MKTE -SFA FILE ACCESSIBILITY
  9046. FC MKTE -SFS FRAME SIZE
  9047. FI MKTE -FID,/TEQP/FID FILE IDENTIFIER
  9048. G MKTE -NMD,,(1/0,1/0,1/0,9/,6/FGRN) GENERATION NUMBER
  9049. GE MKTE STD3,/TEQP/DEN,(18//TDEN/GE) 6250 CPI 9-TRACK
  9050.  
  9051. AHKT BSS 0 H - K SYNTAX TABLE
  9052.  
  9053. HD MKTE STD3,/TEQP/DEN,(18//TDEN/HD) 800 BPI 9-TRACK
  9054. HI MKTE STD3,/TEQP/DEN,(18//TDEN/HI) 556 BPI 7-TRACK
  9055. HY MKTE STD3,/TEQP/DEN,(18//TDEN/HY) 800 BPI 7-TRACK
  9056.  
  9057. ALOT BSS 0 L - O SYNTAX TABLE
  9058.  
  9059. L MKTE -FID,/TEQP/FID FILE IDENTIFIER
  9060. LB MKTE -SLT LABEL TYPE
  9061. LO MKTE STD3,/TEQP/DEN,(18//TDEN/LO) 200 BPI 7-TRACK
  9062. M MKTE -SID,/TEQP/SID MULTI-FILE SET IDENTIFIER
  9063. MT MKTE STT1,/TEQP/TDT,(18/0) 7-TRACK DEVICE TYPE
  9064. N MKTE -SCV,/TEQP/CVM CONVERSION MODE
  9065. NS MKTE -SNS NOISE SIZE
  9066. NT MKTE STT1,/TEQP/TDT,(18/2) 9-TRACK DEVICE TYPE
  9067.  
  9068. APST BSS 0 P - S SYNTAX TABLE
  9069.  
  9070. P MKTE -NMD,/TEQP/SQN,(1/0,1/0,1/1,9/,6/FSQN) FILE SEQUENCE
  9071. PE MKTE STD3,/TEQP/DEN,(18//TDEN/PE) 1600 CPI 9-TRACK
  9072. PO MKTE -SPO PROCESSING OPTIONS
  9073. QN MKTE -NMD,/TEQP/SQN,(1/0,1/0,1/1,9/,6/FSQN) FILE SEQUENCE
  9074. R MKTE WRL,/TEQP/RWL,(1/0,17/) LABEL READ
  9075. RT MKTE -RTD,/TEQP/RET RETENTION DATE
  9076. SI MKTE -SID,/TEQP/SID MULTI-FILE SET IDENTIFIER
  9077. SN MKTE -NMD,/TEQP/SCN,(1/0,1/0,1/0,9/,6/FSTN) FILE SECTION
  9078.  
  9079. ATWT BSS 0 T - W SYNTAX TABLE
  9080.  
  9081. T MKTE -RTC,/TEQP/RET RETENTION CYCLE
  9082. V MKTE -NMD,/TEQP/SCN,(1/0,1/0,1/0,9/,6/FSTN) FILE SECTION
  9083. VSN MKTE -VSP VOLUME SERIAL NUMBER
  9084. W MKTE WRL,/TEQP/RWL,(1/1,17/) WRITE LABEL
  9085.  
  9086. AXZT BSS 0 X - Z SYNTAX TABLE
  9087. ENDT BSS 0 END OF SYNTAX TABLE
  9088.  
  9089. LOC *O
  9090. QUAL *
  9091.  
  9092. CON 37777777777777777777B END OF KEYWORD TABLE
  9093. TAOS SPACE 4,10
  9094. ** TAOS - TABLE OF ASSEMBLY OPTION SYNTAX TABLE ADDRESSES.
  9095.  
  9096.  
  9097. TAOS BSS 0
  9098. VFD 6//TAOK/ENDT
  9099. VFD 6//TAOK/ENDT
  9100. VFD 6//TAOK/ENDT
  9101. VFD 6//TAOK/AXZT
  9102. VFD 6//TAOK/ATWT
  9103. VFD 6//TAOK/APST
  9104. VFD 6//TAOK/ALOT
  9105. VFD 6//TAOK/AHKT
  9106. VFD 6//TAOK/ADGT
  9107. VFD 6//TAOK/AACT
  9108. TEQP SPACE 4,10
  9109. ** TEQP - TABLE OF EQUIVALENT PARAMETERS.
  9110. *
  9111. *T 6/P1, 6/P2, 6/P3, 6/P4, 6/P5, 6/P6, 6/P7, 6/P8, 6/P9, 6/0
  9112. * P(I) EQUIVALENT PARAMETERS KEYWORD TABLE INDEX
  9113.  
  9114.  
  9115. TEQP BSS 0
  9116. QUAL TEQP
  9117. LOC 1
  9118. CKI VFD 6//TAOK/CB,6//TAOK/CK,48/0
  9119. CVM VFD 6//TAOK/CV,6//TAOK/N,48/0
  9120. DEN VFD 6//TAOK/D,6//TAOK/LO,6//TAOK/HI,6//TAOK/HY
  9121. VFD 6//TAOK/HD,6//TAOK/PE,6//TAOK/GE,18/0
  9122. FID VFD 6//TAOK/FI,6//TAOK/L,48/0
  9123. RET VFD 6//TAOK/RT,6//TAOK/T,48/0
  9124. RWL VFD 6//TAOK/R,6//TAOK/W,48/0
  9125. SCN VFD 6//TAOK/SN,6//TAOK/V,48/0
  9126. SID VFD 6//TAOK/SI,6//TAOK/M,48/0
  9127. SQN VFD 6//TAOK/QN,6//TAOK/P,48/0
  9128. TDT VFD 6//TAOK/DT,6//TAOK/MT,6//TAOK/NT,42/0
  9129. LOC *O
  9130. QUAL *
  9131. TITLE OPTION PROCESSORS.
  9132. SPACE 4,10
  9133. ** KEYWORD PROCESSORS.
  9134. *
  9135. * ENTRY (X5) = REQUEST TYPE (0=LABEL, 1=REQUEST, -1=ASSIGN).
  9136. * (X6) = 0.
  9137. * (X7) = PROCESSOR PARAMETERS FROM KEYWORD TABLE ENTRY.
  9138. * (B6) = STRING BUFFER POINTER.
  9139. *
  9140. * EXIT TO *AFOR*, TO PROCESS NEXT ARGUMENT OR IF ARGUMENTS
  9141. * EXHAUSTED.
  9142. * TO *ERR*, IF ARGUMENT ERROR.
  9143. *
  9144. * NOTE - ALL PROCESSORS MUST PRESERVE THE VALUE OF B6.
  9145. CRD SPACE 4,10
  9146. ** CRD - SET CREATION DATE (JULIAN FORMAT).
  9147. *
  9148. * CR=YYDDD.
  9149.  
  9150.  
  9151. CRD BSS 0 ENTRY
  9152. NZ X5,ERR IF NOT *LABEL* CALL
  9153. RJ CLP GET PARAMETER VALUE (NO LITERALS)
  9154. MX0 5*6
  9155. BX4 -X0*X5
  9156. SA2 F+FCRD READ FET WORD
  9157. NZ X4,ERR IF PARAMETER TOO LONG
  9158. LX5 30
  9159. BX7 X2+X5
  9160. SA7 A2+
  9161. EQ AFOR PROCESS NEXT ARGUMENT
  9162. FID SPACE 4,10
  9163. ** FID - SET FILE IDENTIFIER.
  9164. *
  9165. * FI=AAAAAAAAAAAAAAAAA.
  9166. * L=AAAAAAAAAAAAAAAAA.
  9167.  
  9168.  
  9169. FID BSS 0 ENTRY
  9170. NZ X5,ERR IF NOT *LABEL* CALL
  9171. SX6 B1+ ENABLE LITERAL PROCESSING
  9172. SA6 LIT
  9173. RJ POP PICK OUT PARAMETER
  9174. NG B5,ERR IF ASSEMBLY ERROR
  9175. SA1 POPA+1
  9176. MX0 7*6
  9177. BX5 -X0*X1
  9178. NZ X5,ERR IF PARAMETER TOO LONG
  9179. RJ SFN SPACE FILL SECOND WORD OF FID
  9180. BX5 X6
  9181. SA1 A1-B1
  9182. RJ SFN SPACE FILL 1ST WORD OF FID
  9183. SA6 F+FID1 STORE FIRST WORD FID
  9184. MX0 -18
  9185. SA2 A6+B1 READ FET DATA TO BE MERGED
  9186. BX7 X0*X5
  9187. BX3 -X0*X2
  9188. SA1 MF SET FI PROCESSED
  9189. BX7 X7+X3
  9190. SX6 X1+B1
  9191. SA7 A2
  9192. SA6 A1
  9193. EQ AFOR PROCESS NEXT ARGUMENT
  9194. NMD SPACE 4,10
  9195. ** NMD - SET NUMERIC DATA FIELDS FOR LABEL.
  9196. *
  9197. * SN=NNNN. FILE SECTION NUMBER
  9198. * V=NNNN.
  9199. * QN=NNNN. FILE SEQUENCE NUMBER
  9200. * P=NNNN.
  9201. * E=NN. GENERATION VERSION NUMBER.
  9202. * G=NNNN. GENERATION NUMBER.
  9203.  
  9204.  
  9205. NMD BSS 0 ENTRY
  9206. NZ X5,ERR IF NOT *LABEL* CALL
  9207. SA7 NMDA SAVE PROCESSOR PARMETERS
  9208. RJ CLP GET PARAMETER VALUE (NO LITERALS)
  9209. SA4 NMDA
  9210. MX0 4*6
  9211. LX4 59-16
  9212. SB7 B1
  9213. PL X4,NMD1 IF FOUR DIGIT PARAMETER
  9214. MX0 2*6
  9215. NMD1 BX6 -X0*X5
  9216. NZ X6,ERR IF PARAMETER TOO LONG
  9217. RJ DXB
  9218. NZ X4,ERR IF ASSEMBLY ERRORS
  9219. SA4 A4
  9220. LX4 59-15
  9221. PL X4,NMD3 IF NOT SEQUENCE NUMBER
  9222. SA2 MF
  9223. SX3 X6-2
  9224. SX7 X2+2 SET QN .LT. 2
  9225. NG X3,NMD2 IF QN .LT. 2
  9226. SX3 X6-9999
  9227. SX7 X2+12B SET QN PROCESSED AND .GT. 1
  9228. NZ X3,NMD2 IF QN .NE. 9999
  9229. SA2 F+FTAP SET WRITE LABEL BIT
  9230. BX3 X7
  9231. MX7 1
  9232. BX2 X2+X7
  9233. LX7 40-59 SET WRITE ENABLE REQUIRED FLAG
  9234. BX7 X7+X2
  9235. SA7 A2
  9236. BX7 X3
  9237. NMD2 SA7 MF SET MULTI-FILE POSITIONING
  9238. NMD3 MX1 -6
  9239. SA4 A4
  9240. BX1 -X1*X4
  9241. AX4 17
  9242. SX1 F+X1 ADDRESS OF FET WORD
  9243. LX4 -1 SET FIELD POSITION
  9244. BX1 X1+X4
  9245. RJ ENF ENTER NUMERIC FIELD
  9246. EQ AFOR PROCESS NEXT ARGUMENT
  9247.  
  9248.  
  9249. NMDA CON 0 TEMPORARY FOR PROCESSOR PARAMETERS
  9250. RTC SPACE 4,10
  9251. ** RTC - SET RETENTION CYCLE.
  9252. *
  9253. * T=NNN.
  9254.  
  9255.  
  9256. RTC BSS 0 ENTRY
  9257. NZ X5,ERR IF NOT *LABEL* CALL
  9258. RJ CLP GET PARAMETER VALUE (NO LITERALS)
  9259. ZR X5,AFOR IF NO PARAMETER
  9260. MX0 3*6
  9261. BX6 -X0*X5
  9262. NZ X6,ERR IF PARAMETER TOO LONG
  9263. BX7 X5
  9264. SA7 RC SAVE RETENTION CYCLE
  9265. EQ AFOR PROCESS NEXT ARGUMENT
  9266. RTD SPACE 4,10
  9267. ** RTD - SET RETENTION DATE (JULIAN FORMAT).
  9268. *
  9269. * RT=YYDDD.
  9270.  
  9271.  
  9272. RTD BSS 0 ENTRY
  9273. NZ X5,ERR IF NOT *LABEL* CALL
  9274. RJ CLP GET PARAMETER VALUE (NO LITERALS)
  9275. MX0 5*6
  9276. SA2 F+FRTD READ FET WORD
  9277. BX6 -X0*X5
  9278. NZ X6,ERR IF PARAMETER TOO LONG
  9279. BX3 -X0*X2
  9280. BX7 X3+X5
  9281. SA7 A2
  9282. LX0 -24
  9283. BX0 X0*X5
  9284. SB7 B1 ASSUME DECIMAL BASE
  9285. ZR X0,ERR IF PARAMETER TOO SHORT
  9286. RJ DXB CONVERT RETENTION DATE TO NUMERIC
  9287. NZ X4,ERR IF NOT NUMERIC VALUE
  9288. SA2 A2 CONVERT DAY OF YEAR
  9289. MX0 18
  9290. LX2 12
  9291. BX5 X0*X2
  9292. RJ DXB
  9293. ZR X6,ERR IF INCORRECT DAY OF YEAR
  9294. SX6 X6-367
  9295. PL X6,ERR IF INCORRECT DAY OF YEAR
  9296. EQ AFOR PROCESS NEXT ARGUMENT
  9297. SAL SPACE 4,10
  9298. ** SAL - SET ACCESS LEVEL.
  9299. *
  9300. * AL = NNNNNNN.
  9301.  
  9302.  
  9303. SAL BSS 0 ENTRY
  9304. ZR B6,AFOR IF ARGUMENTS EXHAUSTED
  9305. SA1 AL ACCESS LEVEL PERMISSION
  9306. ZR X1,ERR IF NOT ALLOWED ON THIS COMMAND
  9307. RJ CLP CALL PICK OUT PARAMETER
  9308. GE B5,B1,ERR IF PARAMETER/KEYWORD TOO LONG
  9309. BX1 X5
  9310. SB2 B0
  9311. SA5 SSMA SYSTEM SECURITY MODE
  9312. RJ VLC VALIDATE ACCESS LEVEL
  9313. ZR X5,SAL1 IF UNSECURED SYSTEM
  9314. SB2 /PER/UAL * UNKNOWN ACCESS LEVEL NAME.*
  9315. NG X2,PER IF ACCESS LEVEL NOT FOUND
  9316. MX0 -8
  9317. SA1 JCWA SECURITY CONTROL WORD
  9318. LX1 7-43
  9319. BX3 -X0*X1 VALID ACCESS LEVELS
  9320. MX0 -1
  9321. SB2 X2
  9322. LX0 B2
  9323. BX0 -X0*X3
  9324. SB2 /PER/NVA NOT VALIDATED FOR ACCESS LEVEL
  9325. ZR X0,PER IF NOT VALIDATED FOR ACCESS LEVEL
  9326. BX6 X2
  9327. SA6 AL SAVE REQUESTED ACCESS LEVEL
  9328. SX1 B1
  9329. LX1 39 POSITION BIT FOR *AL* INDICATION FIELD
  9330. SA3 F+1 SECOND WORD OF FET
  9331. BX6 X1+X3
  9332. SA6 A3 SET *AL* INDICATOR
  9333. SA3 VF+1
  9334. BX6 X1+X3
  9335. SA6 A3 SET *AL* INDICATOR IN VSN FET
  9336. LX2 36
  9337. SA3 F+/COMSPFM/CFAL
  9338. MX1 12
  9339. LX1 36-48
  9340. BX3 -X1*X3 CLEAR FILE ACCESS LEVEL
  9341. BX6 X2+X3
  9342. SA6 A3 SET ACCESS LEVEL IN FET
  9343. SA3 VF+/COMSPFM/CFAL
  9344. BX3 -X1*X3 CLEAR FILE ACCESS LEVEL IN VSN FET
  9345. BX6 X2+X3
  9346. SA6 A3 SET ACCESS LEVEL IN VSN FET
  9347. EQ AFOR PROCESS NEXT ENTRY
  9348.  
  9349. SAL1 SX6 B0+
  9350. SA6 AL
  9351. EQ AFOR PROCESS NEXT ENTRY
  9352. SCD SPACE 4,10
  9353. ** SCD - PROCESS *C* OPTION.
  9354. *
  9355. * C=NNNNNN. CHARACTER COUNT
  9356. * C=YYDDD. CREATION DATE (*LABEL* COMMAND ONLY)
  9357.  
  9358.  
  9359. SCD BSS 0 ENTRY
  9360. ZR X5,SCD1 IF *LABEL* COMMAND
  9361. SA6 TAOK-1+/TAOK/FC CLEAR FRAME COUNT PARAMETER
  9362. EQ SFS PROCESS CHARACTER COUNT
  9363.  
  9364. SCD1 SA6 TAOK-1+/TAOK/CR CLEAR CREATION DATE PARAMETER
  9365. EQ CRD SET CREATION DATE
  9366. SCI SPACE 4,10
  9367. ** SCI - SET CHECKPOINT DATA.
  9368. *
  9369. * CB
  9370. * CK
  9371.  
  9372.  
  9373. SCI SA7 CI SET CHECKPOINT FILE ID
  9374. EQ AFOR PROCESS NEXT ARGUMENT
  9375. SCV SPACE 4,10
  9376. ** SCV - SET CONVERSION MODE.
  9377. *
  9378. * CV=(AS,US,EB)
  9379. * N=(AS,US,EB)
  9380.  
  9381.  
  9382. SCV BSS 0 ENTRY
  9383. SB3 SCVA SET OPTION TABLE ADDRESS
  9384. RJ AOP ANALYZE CONVERSION OPTIONS (NO LITERALS)
  9385. SA2 F+FTAP
  9386. LX7 48
  9387. BX7 X7+X2 SET CONVERSION MODE
  9388. SA7 A2
  9389. EQ AFOR PROCESS NEXT ARGUMENT
  9390.  
  9391.  
  9392. SCVA VFD 42/0LAS,18/1 ASCII
  9393. VFD 42/0LUS,18/1 USASII
  9394. VFD 42/0LEB,18/2 EBCDIC
  9395. CON 0
  9396. CON 0
  9397. SFA SPACE 4,10
  9398. ** SFA - SET FILE ACCESSIBILITY.
  9399. *
  9400. * FA=A.
  9401.  
  9402.  
  9403. SFA BSS 0 ENTRY
  9404. NZ X5,ERR IF NOT *LABEL* CALL
  9405. SX6 B1+ ENABLE LITERAL PROCESSING
  9406. RJ CLP GET PARAMETER VALUE
  9407. MX0 6
  9408. BX6 -X0*X5
  9409. NZ X6,ERR IF PARAMETER TOO LONG
  9410. LX0 24
  9411. SA2 F+FFAS READ FET WORD
  9412. LX5 24
  9413. BX3 -X0*X2
  9414. BX7 X3+X5
  9415. SA7 A2+
  9416. EQ AFOR PROCESS NEXT ARGUMENT
  9417. SFC SPACE 4,10
  9418. ** SFC - SET MAXIMUM FRAME COUNT FOR TAPE BLOCK.
  9419. *
  9420. * FC=NNNNNN.
  9421. * C=NNNNNN. (EXCEPT ON *LABEL* COMMAND)
  9422.  
  9423.  
  9424. SFS BSS 0 ENTRY
  9425. RJ CLP GET PARAMETER VALUE (NO LITERALS)
  9426. MX0 6*6
  9427. BX6 -X0*X5
  9428. NZ X6,ERR IF PARAMETER TOO LONG
  9429. SB7 B1 ASSUME DECIMAL
  9430. RJ DXB
  9431. NZ X4,ERR IF ASSEMBLY ERROR
  9432. SA2 F+FTAP
  9433. BX6 X2+X6 SET BLOCK SIZE IN FRAMES
  9434. SA6 A2
  9435. EQ AFOR PROCESS NEXT ARGUMENT
  9436. SID SPACE 4,10
  9437. ** SID - SET MULTI-SET IDENTIFIER.
  9438. *
  9439. * SI=AAAAAA.
  9440. * M=AAAAAA.
  9441.  
  9442.  
  9443. SID BSS 0 ENTRY
  9444. NZ X5,ERR IF NOT *LABEL* CALL
  9445. SX6 B1+ ENABLE LITERAL PROCESSING
  9446. RJ CLP GET PARAMETER VALUE
  9447. BX1 X5
  9448. MX0 6*6
  9449. BX5 -X0*X5
  9450. NZ X5,ERR IF PARAMETER TOO LONG
  9451. RJ SFN
  9452. MX0 36
  9453. SA2 F+FMSI READ FET WORD
  9454. BX7 X0*X6
  9455. SA1 MF
  9456. SX6 X1+4
  9457. BX3 -X0*X2
  9458. SA6 A1 SET MULTI-FILE POSITIONING
  9459. BX7 X7+X3
  9460. SA7 A2
  9461. EQ AFOR PROCESS NEXT ARGUMENT
  9462. SLT SPACE 4,10
  9463. ** SLT - SET LABEL TYPE.
  9464. *
  9465. * LB=(KU,KL,NS)
  9466. *
  9467. * TYPES ARE MUTUALLY EXCLUSIVE.
  9468.  
  9469.  
  9470. SLT BSS 0 ENTRY
  9471. SB3 SLTA SET OPTION TABLE ADDRESS
  9472. RJ AOP ANALYZE LABEL OPTIONS (NO LITERALS)
  9473. SA2 F+FTAP
  9474. SX6 B1
  9475. LX7 57-0
  9476. SA6 LT SET LABEL TYPE SPECIFIED
  9477. BX7 X2+X7 SET LABEL TYPE
  9478. SA7 A2
  9479. EQ AFOR PROCESS NEXT ARGUMENT
  9480.  
  9481.  
  9482. SLTA VFD 42/0LKU,18/0 KRONOS UNLABELED
  9483. VFD 42/0LKL,18/2 KRONOS LABELED
  9484. VFD 42/0LNS,18/3 NON-STANDARD LABELED
  9485. CON 0
  9486. SNS SPACE 4,10
  9487. ** SNS - SET NOISE SIZE.
  9488. *
  9489. * NS=NN. NN = NUMERIC LESS THAN 32.
  9490.  
  9491.  
  9492. SNS BSS 0 ENTRY
  9493. RJ CLP GET PARAMETER VALUE (NO LITERALS)
  9494. MX0 2*6
  9495. BX6 -X0*X5
  9496. NZ X6,ERR IF PARAMETER TOO LONG
  9497. SB7 B1 ASSUME DECIMAL
  9498. RJ DXB
  9499. NZ X4,ERR IF ASSEMBLY ERROR
  9500. SA2 F+FTAP
  9501. SX7 X6-32
  9502. PL X7,ERR IF NOISE SIZE TOO LARGE
  9503. LX6 24
  9504. BX6 X6+X2 SET NOISE SIZE
  9505. SA6 A2+
  9506. EQ AFOR PROCESS NEXT ARGUMENT
  9507. SPO SPACE 4,10
  9508. ** SPO - SET PROCESSING OPTIONS.
  9509. *
  9510. * PO=(ACEFGHILMNPRSUWX)
  9511.  
  9512. SPO BSS 0 ENTRY
  9513. RJ CLP GET PARAMETER VALUE (NO LITERALS)
  9514. MX0 -6
  9515. SB2 10
  9516. MX7 0
  9517. SPO1 LX5 6
  9518. BX3 -X0*X5
  9519. ZR X3,SPO2 IF END OF PARAMETERS
  9520. SB2 B2-B1
  9521. SA4 SPOA
  9522. SB3 X3
  9523. AX4 X4,B3
  9524. LX4 -1
  9525. PL X4,ERR IF NOT LEGAL OPTION
  9526. CX4 X4
  9527. SA3 X4+SPOA READ OPTION BIT
  9528. BX7 X7+X3
  9529. NZ B2,SPO1 IF MORE PARAMETERS IN WORD
  9530. EQ B5,B1,ERR IF IMPROPER TERMINATION
  9531. SA5 A5+B1 READ NEXT WORD OF PARAMETERS
  9532. SB5 B5-B1
  9533. SB2 10
  9534. EQ SPO1
  9535.  
  9536. SPO2 MX0 24 MERGE PROCESSING OPTIONS
  9537. SA2 F+FTAP
  9538. BX3 -X0*X7
  9539. BX7 X0*X7
  9540. LX3 36
  9541. BX7 X7+X2
  9542. BX7 -X3*X7
  9543. SA7 A2
  9544. EQ AFOR PROCESS NEXT ARGUMENT
  9545.  
  9546.  
  9547. SPOA DATA 153271752B
  9548. DATA 1BS44 X OPTION
  9549. DATA 1BS40 W OPTION
  9550. DATA 1BS41 U OPTION
  9551. DATA 1BS45 S OPTION
  9552. DATA 1BS39 R OPTION
  9553. DATA 1BS46 P OPTION
  9554. DATA 1BS37 N OPTION
  9555. DATA 1BS43 M OPTION
  9556. DATA 1BS7 L OPTION
  9557. DATA 1BS47 I OPTION
  9558. DATA 1BS6 H OPTION
  9559. DATA 1BS42 G OPTION
  9560. DATA 1BS5 F OPTION
  9561. DATA 1BS38 E OPTION
  9562. DATA 1BS42 C OPTION
  9563. DATA 1BS36 A OPTION
  9564. STD SPACE 4,10
  9565. ** STD - SET TAPE DENSITY.
  9566. *
  9567. * D=(LO,HI,HY,HD,PE,GE,CE,AE)
  9568. * D=(200,556,800,1600,6250,38000)
  9569. *
  9570. * THE FOLLOWING KEYWORDS ARE OBSOLETE AND ARE SUPPORTED BY THE
  9571. * *ASSIGN* AND *REQUEST* COMMANDS FOR COMPATIBILITY ONLY -
  9572. *
  9573. * LO
  9574. * HI
  9575. * HY
  9576. * HD
  9577. * PE
  9578. * GE
  9579.  
  9580.  
  9581. STD BSS 0 ENTRY
  9582. SB3 TDEN SET OPTION TABLE ADDRESS
  9583. RJ AOP ANALYZE DENSITY OPTION (NO LITERALS)
  9584. STD1 SA2 F+FTAP
  9585. MX0 -3
  9586. BX6 -X0*X7 SPECIFIED DENSITY
  9587. AX7 3
  9588. LX6 51-0
  9589. SA7 DM SET DEVICE TYPE VALIDATION MASK
  9590. BX6 X2+X6 SET DENSITY
  9591. SA6 A2
  9592. EQ AFOR PROCESS NEXT ARGUMENT
  9593.  
  9594. * ENTRY FOR *LO*, *HI*, *HY*, *HD*, *PE*, AND *GE* KEYWORDS.
  9595.  
  9596. STD3 ZR X5,ERR IF *LABEL* CALL
  9597. SA1 TDEN+X7
  9598. BX7 X1
  9599. EQ STD1 PROCESS DENSITY
  9600. STF SPACE 4,10
  9601. ** STF - SET FORMAT.
  9602. *
  9603. * F=(I,SI,F,S,L,LI)
  9604.  
  9605.  
  9606. STF BSS 0 ENTRY
  9607. SB3 STFA SET OPTION TABLE ADDRESS
  9608. SX6 B0+ DISABLE LITERAL PROCESSING
  9609. RJ AOP ANALYZE FORMAT OPTIONS
  9610. SA2 F+FTAP
  9611. LX7 30
  9612. BX7 X2+X7 SET FORMAT
  9613. SA7 A2
  9614. EQ AFOR PROCESS NEXT ARGUMENT
  9615.  
  9616.  
  9617. STFA VFD 42/0LI,18//COMSMTX/TFI INTERNAL BINARY
  9618. VFD 42/0LSI,18//COMSMTX/TFSI SYSTEM INTERNAL
  9619. VFD 42/0LF,18//COMSMTX/TFF FOREIGN
  9620. VFD 42/0LS,18//COMSMTX/TFS STRANGER
  9621. VFD 42/0LL,18//COMSMTX/TFL LONG BLOCK STRANGER
  9622. VFD 42/0LLI,18//COMSMTX/TFLI LONG BLOCK INTERNAL
  9623. CON 0
  9624. STT SPACE 4,10
  9625. ** STT - SET TAPE DEVICE TYPE.
  9626. *
  9627. * DT=(MT,NT,CT,AT)
  9628. *
  9629. * THE FOLLOWING KEYWORDS ARE OBSOLETE AND ARE SUPPORTED FOR
  9630. * COMPATIBILITY ONLY -
  9631. *
  9632. * MT
  9633. * NT
  9634.  
  9635.  
  9636. STT BSS 0 ENTRY
  9637. SB3 STTA SET OPTION TABLE ADDRESS
  9638. SX6 B0+ DISABLE LITERAL PROCESSING
  9639. RJ AOP ANALYZE DEVICE TYPE OPTIONS
  9640.  
  9641. * ENTRY FOR *MT* AND *NT* KEYWORDS.
  9642.  
  9643. STT1 SA1 F+FTAP
  9644. SX6 B1
  9645. LX7 55-0
  9646. SA6 TT SET DEVICE TYPE SPECIFIED FLAG
  9647. BX7 X1+X7 SET DEVICE TYPE
  9648. SA7 A1
  9649. EQ AFOR PROCESS NEXT ARGUMENT
  9650.  
  9651.  
  9652. STTA BSS 0
  9653. VFD 42/0LMT,18//COMSMTX/DVMT
  9654. VFD 42/0LNT,18//COMSMTX/DVNT
  9655. VFD 42/0LCT,18//COMSMTX/DVCT
  9656. VFD 42/0LAT,18//COMSMTX/DVAT
  9657. CON 0
  9658. VSP SPACE 4,10
  9659. ** VSP - SET VOLUME SERIAL NUMBERS.
  9660. *
  9661. * VSN=NNNN/NNNN=NNNN/NNNN=...=NNNN/NNNN.
  9662.  
  9663.  
  9664. VSP BSS 0 ENTRY
  9665. SA1 /CPA/RFCW GET DEMAND FILE INDEX
  9666. SX7 B1
  9667. SX1 X1
  9668. SA7 VP SET VSN= PROCESSED
  9669. NZ X1,VSP1 IF DEMAND ENTRY EXISTS
  9670. RJ IDE INITIALIZE DEMAND ENTRY
  9671. VSP1 SA3 F SET FILE NAME
  9672. RJ BVE BUILD VSN ENTRY
  9673. EQ AFOR PROCESS NEXT ARGUMENT
  9674. WRL SPACE 4,10
  9675. ** WRL - SET LABEL READ/WRITE.
  9676. *
  9677. * R
  9678. * W
  9679. *
  9680. * FORCES WRITE ENABLE REQUIRED IF *W*.
  9681.  
  9682.  
  9683. WRL BSS 0 ENTRY
  9684. NZ X5,ERR IF NOT *LABEL* CALL
  9685. ZR X7,AFOR IF LABEL TO BE READ
  9686. SA2 F+FTAP SET WRITE LABELS BIT
  9687. LX7 59-17
  9688. BX6 X2+X7
  9689. LX7 40-17-59+17
  9690. BX6 X6+X7 SET WRITE ENABLE REQUIRED (PO = W)
  9691. SA6 A2+
  9692. EQ AFOR PROCESS NEXT ARGUMENT
  9693. TITLE COMMAND PROCESSING SUBROUTINES.
  9694. AOP SPACE 4,25
  9695. ** AOP - ANALYZE OPTIONAL PARAMETERS.
  9696. *
  9697. * ENTRY (B6) = ADDRESS TO BEGIN PARAMETER ASSEMBLY
  9698. * (B3) = PARAMETER OPTION TABLE ADDRESS
  9699. * (X6) = 0, IF DISABLE LITERAL PROCESSING.
  9700. * .NE. 0, IF ENABLE LITERAL PROCESSING.
  9701. *
  9702. * EXIT (X5) = SEPARATOR.
  9703. * (X1) = OPTION TABLE ENTRY.
  9704. * (X7) = LOWER 18 BITS OF ENTRY.
  9705. * TO *AFOR*, IF ARGUMENTS EXHAUSTED.
  9706. *
  9707. * ERROR TO *ERR*, IF COMMAND ERROR.
  9708. *
  9709. * KEYWORDS MUST BE LESS THAN OR EQUAL TO SEVEN CHARACTERS.
  9710. *
  9711. * USES A - 1, 5.
  9712. * B - 7.
  9713. * X - 0, 1, 5, 6, 7.
  9714. *
  9715. * CALLS CLP.
  9716.  
  9717.  
  9718. AOP SUBR ENTRY/EXIT
  9719. ZR B6,AFOR IF ARGUMENTS EXHAUSTED
  9720. RJ CLP CALL PICK OUT PARAMETER
  9721. GE B5,B1,ERR IF PARAMETER/KEYWORD TOO LONG
  9722. SB7 A1 RETAIN SEPARATOR ADDRESS
  9723. MX0 7*6
  9724. SA1 B3-1 READ OPTION TABLE
  9725. AOP1 SA1 A1+B1
  9726. BX6 X0*X1 KEYWORD
  9727. ZR X1,ERR IF END OF OPTIONS
  9728. BX6 X6-X5
  9729. BX7 -X0*X1 SET PARAMETERS
  9730. NZ X6,AOP1 IF NO MATCH
  9731. SA5 B7 READ SEPARATOR
  9732. EQ AOPX
  9733. CLP SPACE 4,20
  9734. ** CLP - CALL POP.
  9735. *
  9736. * ENTRY (B6) = ASSEMBLY POINTER.
  9737. * (X6) = 0, IF DISABLE LITERAL PROCESSING.
  9738. * .NE. 0, IF ENABLE LITERAL PROCESSING.
  9739. *
  9740. * EXIT (B6) = NEXT ASSEMBLY POINTER.
  9741. * (X5) = FIRST PART OF PARAMETER.
  9742. * TO *AFOR*, IF ARGUMENTS EXHAUSTED.
  9743. *
  9744. * ERROR TO *ERR*, IF COMMAND ERROR.
  9745. *
  9746. * USES A - 5, 6.
  9747. * X - 5.
  9748. *
  9749. * CALLS POP.
  9750.  
  9751. CLP SUBR ENTRY/EXIT
  9752. ZR B6,AFOR IF COMMAND EXHAUSTED
  9753. SA6 LIT SET PROPER OPTION FOR LITERAL PROCESSING
  9754. RJ POP PICK OUT PARAMETER
  9755. NG B5,ERR IF NO PARAMETER
  9756. ZR X2,ERR IF INCORRECT TERMINATION
  9757. SA5 POPA READ FIRST PART PARAMETER
  9758. EQ CLPX EXIT
  9759. ENF SPACE 4,15
  9760. ** ENF - ENTER NUMERIC LABEL FIELD.
  9761. *
  9762. * ENTRY (X1) = FET WORD CONTROL
  9763. * LOWER 18 BITS = FET WORD ADDRESS
  9764. * SIGN BIT SET = FIELD BITS 23-15
  9765. * SIGN BIT CLEAR = FIELD BITS 14-00
  9766. * (X6) = NUMBER IN OCTAL.
  9767. *
  9768. * EXIT FIELD ENTERED IN FET WORD.
  9769. *
  9770. * ERROR TO *ERR*, IF COMMAND ERROR.
  9771. *
  9772. * USES A - 2, 6.
  9773. * X - 0, 1, 5, 6.
  9774.  
  9775.  
  9776. ENF1 SX5 X6-100
  9777. PL X5,ERR IF VALUE TOO LARGE
  9778. MX0 -9
  9779. LX6 15
  9780. LX0 15
  9781. ENF2 SA2 X1 ENTER VALUE IN FET WORD
  9782. BX2 X0*X2
  9783. BX6 X6+X2
  9784. SA6 A2
  9785.  
  9786. ENF SUBR ENTRY/EXIT
  9787. MX0 -15
  9788. BX6 -X0*X6
  9789. NG X1,ENF1 IF UPPER FIELD
  9790. ZR X6,ERR IF INCORRECT VALUE
  9791. SX5 X6-10000
  9792. PL X5,ERR IF VALUE TOO LARGE
  9793. EQ ENF2 ENTER VALUE IN FET WORD
  9794. GRD SPACE 4,15
  9795. ** GRD - GENERATE RETENTION DATE.
  9796. *
  9797. * ENTRY (RC) = RETENTION CYCLE (LEFT-JUSTIFIED, DISPLAY CODE)
  9798. *
  9799. * EXIT RETENTION DATE SET IN FET+15B.
  9800. *
  9801. * ERROR TO *ERR*, IF COMMAND ERROR.
  9802. *
  9803. * USES A - 0, 1, 2, 4, 7.
  9804. * B - 2, 3, 4, 7.
  9805. * X - 0, 1, 2, 4, 5, 6, 7.
  9806. *
  9807. * CALLS CDD, DXB.
  9808. *
  9809. * MACROS JDATE.
  9810.  
  9811.  
  9812. GRD SUBR ENTRY/EXIT
  9813. JDATE GRDA SET CURRENT DATE
  9814. SA1 F+FCRD CHECK CREATION DATE
  9815. ZR X1,GRD1 IF NO CREATION DATE
  9816. BX7 X1
  9817. SA7 GRDA
  9818. GRD1 SA1 RC CHECK RETENTION CYCLE
  9819. ZR X1,GRDX IF NO RETENTION CYCLE
  9820. BX5 X1
  9821. SB7 B1
  9822. RJ DXB
  9823. SX5 999 CHECK PARAMETER VALIDITY
  9824. NZ X4,ERR IF ASSEMBLY ERRORS
  9825. IX7 X5-X6
  9826. SA2 GRDA
  9827. MX0 18
  9828. SA4 =5L99999 SET UNLIMITED EXPIRATION DATE
  9829. ZR X7,GRD4 IF INFINITE RETENTION CYCLE
  9830. SA0 X6 SAVE RETENTION DAYS
  9831. LX2 42
  9832. NG X7,ERR IF RETENTION CYCLE GREATER THAN 999
  9833. BX5 X0*X2
  9834. RJ DXB CONVERT CURRENT JULIAN DAYS
  9835. SA2 GRDA
  9836. NZ X4,ERR IF ASSEMBLY ERRORS
  9837. MX0 12
  9838. LX2 30
  9839. SB4 X6+
  9840. BX5 X0*X2
  9841. SA0 A0+B4 EXTEND DAYS TO END OF RETENTION CYCLE
  9842. RJ DXB CONVERT CURRENT JULIAN YEARS
  9843. SX0 3
  9844. NZ X4,ERR IF ASSEMBLY ERRORS
  9845. GRD2 BX5 X0*X6
  9846. SX6 X6+B1
  9847. SB7 366
  9848. ZR X5,GRD3 IF LEAP YEAR
  9849. SB7 365
  9850. GRD3 SA0 A0-B7
  9851. SB2 A0
  9852. ZR B2,GRD3.1 IF NO MORE DAYS
  9853. PL B2,GRD2 IF MORE DAYS
  9854. GRD3.1 SX1 X6+99 ADJUST AND BIAS TO ENSURE ENOUGH DIGITS
  9855. RJ CDD CONVERT NEW YEAR
  9856. MX7 -12
  9857. BX5 -X7*X6 ISOLATE AND SAVE YEAR
  9858. LX5 48 POSITION YEAR
  9859. SA0 A0+B7
  9860. SX1 A0+1000 BIAS DAYS TO ENSURE ENOUGH DIGITS
  9861. RJ CDD CONVERT NEW DAY
  9862. MX0 -18
  9863. BX7 -X0*X6 ISOLATE DAY
  9864. LX7 30 POSITION DAY
  9865. BX4 X5+X7
  9866. GRD4 SA2 F+FRTD ENTER RETENTION DATE
  9867. MX0 30
  9868. BX2 -X0*X2
  9869. BX7 X2+X4
  9870. SA7 A2
  9871. EQ GRDX RETURN
  9872.  
  9873.  
  9874. GRDA CON 0 CREATION DATE TEMPORARY
  9875. TITLE *TMS* COMMAND PROCESSING.
  9876. TMS SPACE 4
  9877. QUAL TFM
  9878. COMMON SPACE 4,10
  9879. ** COMMON DECKS.
  9880.  
  9881.  
  9882. *CALL COMSTCM
  9883. FETS SPACE 4,10
  9884. ** PASSWORD FETS.
  9885.  
  9886.  
  9887. I BSS 0 INPUT FILE FET
  9888. INPUT FILEC IBUF,BUFL,FET=6
  9889.  
  9890. O BSS 0 OUTPUT FILE FET
  9891. OUTPUT FILEB PMSG,PMSGL+1,FET=6
  9892. TMO SPACE 4,15
  9893. ** TMO - TAPE MANAGER OPTIONS.
  9894. *
  9895. * ENTRY USBB HAS CONTROL CARD (1 CHARACTER PER WORD).
  9896. * (X1) = PARAMETER.
  9897. * (A1) = ADDRESS OF SEPARATOR.
  9898. * (B6) = STRING BUFFER POINTER.
  9899. *
  9900. * EXIT TO KEYWORD PROCESSOR.
  9901. * (X5) = REQUEST TYPE.
  9902. * (X7) = PROCESSOR PARAMETERS.
  9903. *
  9904. * USES X - 0, 1, 3, 4, 5, 6, 7.
  9905. * A - 3, 4, 5, 6.
  9906. * B - 2, 3.
  9907.  
  9908.  
  9909. TMO BSS 0 ENTRY
  9910. SA3 TMPF TAPE MANAGER OPTION PROCESSOR
  9911. NG X3,ERR IF *TMS* DISABLED
  9912. SX4 TMOA PARAMETER KEYWORD TABLE ADDRESS
  9913. MX0 18
  9914. SB3 B0
  9915. TMO1 SA3 B3+X4
  9916. BX7 X0*X3
  9917. IX6 X1-X7
  9918. SB3 B3+B1
  9919. NG X6,ERR IF KEYWORD NOT FOUND
  9920. NZ X6,TMO1 IF NOT TO KEYWORD YET
  9921. SA4 A1
  9922. SB2 X3
  9923. SA6 A3+ CLEAR KEYWORD ENTRY
  9924. LX3 42
  9925. MX0 -18 EXTRACT PROCESSOR PARAMETERS
  9926. BX7 -X0*X3
  9927. PL B2,TMO2 IF KEYWORD VALUE NOT REQUIRED
  9928. SX1 X4-1R=
  9929. SB2 -B2
  9930. NZ X1,ERR IF SEPARATOR NOT *=*
  9931. TMO2 SA5 RT GET REQUEST TYPE
  9932. JP B2 EXECUTE KEYWORD PROCESSOR
  9933.  
  9934. TMOA BSS 0 TAPE MANAGER ASSEMBLY OPTIONS.
  9935.  
  9936. AC MKTE -SAC AUDIT ACCESSIBILITY
  9937. CT MKTE -SCT CATEGORY TYPE
  9938. MD MKTE -SMD FILE MODE
  9939. PW MKTE AUA,,(18/F+FPSW) ALTERNATE USER PASSWORD
  9940. TO MKTE STO TAPE MANAGER OPTIONS
  9941. UN MKTE AUA,,(18/F+FAUN) ALTERNATE USERNAME
  9942.  
  9943. CON 37777777777777777777B
  9944. EJECT
  9945. AUA SPACE 4,10
  9946. ** AUA - ALTERNATE USER ACCESS.
  9947. *
  9948. * PW.
  9949. * PW=PASSWRD.
  9950. * UN=USERNAM.
  9951.  
  9952.  
  9953. AUA BSS 0 ENTRY
  9954. SA7 AUAA SAVE ARGUMENT ADDRESS
  9955. SX1 X4-1R=
  9956. ZR X1,AUA1 IF KEYWORD EQUATED
  9957. ZR B6,AUA2 IF CONTROL CARD EXHAUSTED
  9958. SX1 X4-1R,
  9959. ZR X1,AUA2 IF NO ARGUMENT GIVEN
  9960. AUA1 SX6 B0+ DISABLE LITERAL PROCESSING
  9961. RJ CLP CALL *POP*
  9962. MX0 7*6
  9963. BX4 -X0*X5
  9964. NZ X4,ERR IF PARAMETER TOO LONG
  9965. BX6 X0*X5
  9966. EQ AUA3 STORE ARGUMENT
  9967.  
  9968. AUA2 SX7 B6 SAVE (B6)
  9969. SA7 A7+B1
  9970. RJ ESP ENTER SECURE PASSWORD
  9971. SA1 AUAB
  9972. SB6 X1+ RESTORE (B6)
  9973. AUA3 SA1 AUAA
  9974. SA1 X1
  9975. BX2 -X0*X1
  9976. BX7 X2+X6
  9977. SA7 A1
  9978. EQ AFOR PROCESS NEXT ARGUMENT
  9979.  
  9980. AUAA CON 0 TEMPORARY
  9981. AUAB CON 0 TEMPORARY
  9982. ESP SPACE 4,20
  9983. ** ESP - ENTER SECURE PASSWORD.
  9984. *
  9985. * THIS SUBROUTINE PROCESSES SECURELY ENTERED PASSWORDS.
  9986. * IF OUTPUT FILE IS ASSIGNED TO A TERMINAL THE MESSAGE
  9987. * *PASSWORD:* ALONG WITH BLANK OUT CHARACTERS FOR SECURE
  9988. * ENTRY OF PASSWORD WILL BE SENT TO THE TERMINAL.
  9989. * FILE *INPUT* WILL THEN BE READ FOR THE PASSWORD.
  9990. * FOR BATCH JOBS FILE *INPUT* IS READ FOR THE PASSWORD.
  9991. *
  9992. * EXIT (X6) = PASSWORD.
  9993. * ABORT WITH *INCORRECT PASSWORD* IF INCORRECT PASSWORD
  9994. * ENCOUNTERED.
  9995. *
  9996. * USES X - ALL.
  9997. * A - 1, 2, 6, 7.
  9998. * B - 2, 3, 4, 5, 6, 7.
  9999. *
  10000. * CALLS STF.
  10001. *
  10002. * MACROS CSET, MESSAGE, READSKP, WRITE.
  10003.  
  10004.  
  10005. ESP SUBR ENTRY/EXIT
  10006. SX2 O SET ADDRESS OF FET
  10007. RJ STF CHECK IF OUTPUT ASSIGNED TO TERMINAL
  10008. NZ X6,ESP1 IF OUTPUT NOT ASSIGNED TO TERMINAL
  10009. SA1 X2+B1 SET BUFFER FULL
  10010. SX7 X1
  10011. SX6 X1+PMSGL
  10012. SA6 A1+B1 SET IN BELOW DATA FOR MESSAGE
  10013. SA7 A6+B1 SET OUT = FIRST
  10014. WRITE X2,* FORCE WRITE BIT SET
  10015. SA1 O
  10016. MX0 42
  10017. BX2 X0*X1 FILE NAME FOR OUTPUT POINTER
  10018. SX1 A1 SET ADDRESS OF FET FOR POINTER
  10019. BX6 X1+X2
  10020. SA6 ARGR FORCE WRITE BEFORE READ ON ROLLOUT
  10021. ESP1 SX2 I SET ADDRESS OF FET
  10022. RJ STF CHECK IF INPUT ASSIGNED TO TERMINAL
  10023. NZ X6,ESP2 IF INPUT NOT ASSIGNED TO TERMINAL
  10024. CSET NORMAL ENSURE TERMINAL IN NORMAL MODE
  10025. ESP2 READSKP I,,R READ INPUT FOR PASSWORD
  10026. SA1 I+2 DETERMINE NUMBER OF WORDS READ
  10027. SA2 A1+B1
  10028. IX6 X1-X2
  10029. ZR X6,ESP10 IF NO DATA ENTERED (NULL PASSWORD)
  10030. SB5 X6
  10031. SB3 B0
  10032. BX5 X5-X5
  10033. MX6 0
  10034. SB4 60
  10035. SB7 B0
  10036. MX0 -6
  10037. ESP3 SA2 IBUF+B3 PICK UP NEXT DATA WORD
  10038. SB2 B0+
  10039. ESP4 LX2 6
  10040. BX1 -X0*X2 PICK UP CHARACTER TO CHECK
  10041. NZ X1,ESP5 IF CHARACTER NOT ZERO
  10042. NZ X5,ESP10 IF 00 ENCOUNTERED
  10043. SX5 B1+ SET FLAG TO INDICATE 0 ENCOUNTERED
  10044. EQ ESP9 GET NEXT CHARACTER
  10045.  
  10046. ESP5 NZ X5,ESP11 IF PREVIOUS CHARACTER = COLON
  10047. ESP6 SB6 X1-1R9
  10048. GT B6,ESP8 IF NOT ALPHANUMERIC CHARACTER
  10049. ESP7 SB4 B4-6
  10050. LX7 X1,B4
  10051. BX6 X7+X6
  10052. SB7 B7+1
  10053. SB6 B7-7
  10054. GT B6,ESP11 IF PASSWORD .GT. SEVEN CHARACTERS
  10055. EQ ESP9 GET NEXT CHARACTER
  10056.  
  10057. ESP8 SX4 X1-1R*
  10058. ZR X4,ESP7 IF CHARACTER = *
  10059. SX3 X1-1R
  10060. NZ X3,ESP11 IF CHARACTER NOT BLANK
  10061. ESP9 SB2 B2+B1
  10062. SB6 B2-10
  10063. LT B6,ESP4 IF NOT END OF WORD
  10064. SB3 B3+B1
  10065. SB6 B5-B3
  10066. EQ B6,ESP11 IF TOO MUCH DATA ENTERED
  10067. EQ ESP3 CONTINUE PASSWORD CHECK
  10068.  
  10069. ESP10 SA1 I+1
  10070. BX7 X1
  10071. SA7 A1+B1 SET IN = FIRST FOR INPUT BUFFER
  10072. EQ ESPX RETURN
  10073.  
  10074. ESP11 MESSAGE ESPA,3,R *INCORRECT PASSWORD.*
  10075. SB2 /PER/ARG *ARGUMENT ERROR*
  10076. EQ PER PROCESS ERROR
  10077.  
  10078. ESPA DATA C* INCORRECT PASSWORD.*
  10079.  
  10080. * MESSAGE FOR SECURE ENTRY OF PASSWORD.
  10081.  
  10082. PMSG DATA 10H"EM" PASSWO
  10083. DATA 10HRD:"NL" (((
  10084. DATA 10H((((("CR" )
  10085. DATA 10H)))))))"CR"
  10086. DATA 10H MMMMMMMM
  10087. DATA 10H"CR" QQQQQQ
  10088. DATA 10HQQ"CR" XXXX
  10089. DATA 10HXXXX"CR""CB""EL"
  10090. PMSGL EQU *-PMSG
  10091. SAC SPACE 4,10
  10092. ** SAC - SET AUDIT CHARACTERISTIC.
  10093. *
  10094. * AC=ACCESSIBILITY.
  10095.  
  10096.  
  10097. SAC BSS 0 ENTRY
  10098. SB3 SACA SET OPTION TABLE ADDRESS
  10099. RJ AOP ANALYZE OPTION PARAMETER
  10100. SA1 F+FFAC
  10101. LX7 17-5
  10102. BX7 X1+X7
  10103. SA7 A1
  10104. EQ AFOR PROCESS NEXT ARGUMENT
  10105.  
  10106.  
  10107. SACA BSS 0 AUDIT ACCESSIBILITY TABLE
  10108. VFD 42/0LN,18//TFM/FANO
  10109. VFD 42/0LY,18//TFM/FAYS
  10110. CON 0 END OF TABLE
  10111. SCT SPACE 4,10
  10112. ** SCT - SET CATEGORY TYPE.
  10113. *
  10114. * CT=TYPE.
  10115.  
  10116.  
  10117. SCT BSS 0 ENTRY
  10118. SB3 SCTA SET OPTION TABLE ADDRESS
  10119. RJ AOP ANALYZE OPTION PARAMETER
  10120. SA1 F+FFCT
  10121. LX7 11-5
  10122. BX7 X1+X7
  10123. SA7 A1
  10124. EQ AFOR PROCESS NEXT ARGUMENT
  10125.  
  10126.  
  10127. SCTA BSS 0 CATEGORY TYPE CONVERSION TABLE
  10128. VFD 42/0LP,18//TFM/FCPR
  10129. VFD 42/0LPR,18//TFM/FCPR
  10130. VFD 42/0LPU,18//TFM/FCPU
  10131. VFD 42/0LS,18//TFM/FCSP
  10132. CON 0 END OF TABLE
  10133. SMD SPACE 4,10
  10134. ** SMD - SET FILE MODE.
  10135. *
  10136. * MD=MODE.
  10137.  
  10138.  
  10139. SMD BSS 0 ENTRY
  10140. SB3 SMDA SET OPTION TABLE ADDRESS
  10141. RJ AOP ANALYZE OPTION PARAMETER
  10142. SA1 F+FFMD
  10143. BX7 X1+X7
  10144. SA7 A1
  10145. EQ AFOR PROCESS NEXT ARGUMENT
  10146.  
  10147.  
  10148. SMDA BSS 0 FILE MODE CONVERSION TABLE
  10149. VFD 42/0LR,18//TFM/FMRE
  10150. VFD 42/0LW,18//TFM/FMWR
  10151. CON 0 END OF TABLE
  10152. STO SPACE 4,15
  10153. ** STO - SET TAPE MANAGER OPTIONS.
  10154. *
  10155. * TO=(ACDEFRST)
  10156. *
  10157. * A = APPEND FILE (MULTI-FILE).
  10158. * C = CHECK FOR CATALOG ERROR FLAG.
  10159. * D = INHIBIT DEFAULTED TAPE ATTRIBUTES.
  10160. * E = IGNORE CATALOG ERROR FLAG.
  10161. * F = FOREIGN FILE (NON-*TMS*).
  10162. * R = RESERVE FILE.
  10163. * S = SYMBOLIC ACCESS TYPE.
  10164. * T = *TMS* CONTROLLED FILE.
  10165.  
  10166.  
  10167. STO BSS 0 ENTRY
  10168. RJ CLP GET PARAMETER VALUE (NO LITERALS)
  10169. MX0 -6
  10170. SB2 10
  10171. MX7 0
  10172. STO1 LX5 6
  10173. BX3 -X0*X5
  10174. ZR X3,STO2 IF END OF PARAMETERS
  10175. SB2 B2-B1
  10176. SA4 STOA
  10177. SB3 X3
  10178. AX4 X4,B3
  10179. LX4 -1
  10180. PL X4,ERR IF NOT LEGAL OPTION
  10181. CX4 X4
  10182. SA3 X4+STOA READ OPTION BIT
  10183. BX7 X7+X3
  10184. NZ B2,STO1 IF MORE PARAMETERS IN WORD
  10185. EQ B5,B1,ERR IF IMPROPER TERMINATION
  10186. SA5 A5+B1 READ NEXT WORD OF PARAMETERS
  10187. SB5 B5-B1
  10188. SB2 10
  10189. EQ STO1 CHECK NEXT OPTION
  10190.  
  10191. STO2 MX0 42 MERGE TAPE MANAGER OPTIONS
  10192. SA2 F+FFTO
  10193. BX3 -X0*X7
  10194. BX7 X0*X2
  10195. BX7 X7+X3
  10196. SA7 A2
  10197. LX7 59-5
  10198. PL X7,AFOR IF NOT *TO=A*
  10199. SA2 F+FSQN SET *QN = 9999*
  10200. MX7 46
  10201. BX2 X7*X2
  10202. SX7 9999D
  10203. BX7 X2+X7
  10204. SA7 A2
  10205. SA2 F+FTAP SET *WRITE LABEL*
  10206. MX7 1
  10207. BX7 X7+X2
  10208. SA7 A2+
  10209. SA2 MF SET *QN .GT. 1*
  10210. SX3 16B
  10211. BX7 X3+X2
  10212. SA7 A2
  10213. EQ AFOR PROCESS NEXT ARGUMENT
  10214.  
  10215.  
  10216. STOA DATA 7000172B VALIDATION BITS FOR OPTIONS (ACDEFRST)
  10217. DATA 1BS4 T - *TMS* CONTROLLED FILE (SYOT)
  10218. DATA 1BS2 S - SYMBOLIC ACCESS FILE
  10219. DATA 1BS3 R - RESERVE TAPE FILE
  10220. DATA 1BS1 F - FOREIGN TAPE (NOT IN *TMS*)
  10221. DATA 1S7 E - IGNORE CATALOG ERROR FLAG
  10222. DATA 1BS0 D - INHIBIT DEFAULTED ATTRIBUTES
  10223. DATA 1S9 C - CHECK CATALOG ERROR FLAG
  10224. DATA 1S5 A - APPEND FILE (MULTI-FILE)
  10225. COMMON SPACE 4,10
  10226. ** COMMON DECKS.
  10227.  
  10228.  
  10229. *CALL COMCSTF
  10230. *CALL COMCWTH
  10231. SPACE 4,10
  10232. *** BUFFERS.
  10233.  
  10234.  
  10235. IBUF BSS BUFL INPUT FILE BUFFER
  10236. SPACE 4
  10237. QUAL *
  10238. SPVT SPACE 4,10
  10239. ** SPVT - SPECIAL VALIDATION TABLE.
  10240. *
  10241. *T 42/0,18/ DC
  10242. *
  10243. * DC DEVICE CODE
  10244.  
  10245.  
  10246. SPVT BSS 0
  10247.  
  10248. * SPECIAL DEVICE CODES.
  10249.  
  10250. CON 2RMS
  10251. CON 2RNE
  10252.  
  10253. * MASS STORAGE DEVICE CODES.
  10254.  
  10255. PURGMAC TBLM
  10256. TBLM MACRO DC
  10257. MACREF TBLM
  10258. CON 2R_DC
  10259. TBLM ENDM
  10260.  
  10261. LIST G
  10262. TBL "MSEQ"
  10263. LIST *
  10264.  
  10265. CON 0 END OF TABLE
  10266. TITLE *PFM* *DMP=* CALL PRESET.
  10267. PFM SPACE 4,10
  10268. *** PFM - PROCESS CALL FROM *PFM*.
  10269. *
  10270. * ENTRY (SPPR) = *PFM* CALL.
  10271. *
  10272. * ERROR TO *PER*, IF RESOURCE TYPE ERROR OR CONTROL
  10273. * COMMAND.
  10274.  
  10275.  
  10276. PFM BSS 0 ENTRY
  10277. SB1 1 (B1) = 1
  10278. SA1 ACTR CHECK FOR COMMAND CALL
  10279. SB2 /PER/CCI *INCORRECT COMMAND.*
  10280. NZ X1,PER IF COMMAND CALL
  10281. SX7 B1+
  10282. SA7 CF SET CALL FLAG
  10283. RJ PCV PRESET CONTROL POINT VALUES
  10284. SA2 SFET+FDTY READ FET DETAILS
  10285. MX0 -6
  10286. LX2 -18
  10287. BX5 -X0*X2
  10288. SX5 X5+5-/COMSPFM/CFPK-1
  10289. MX0 42
  10290. SA3 /CPA/PKNW DEFAULT PACK NAME
  10291. PL X5,PFM1 IF FET NOT TOO SHORT
  10292. BX1 -X0*X3 GET DEVICE TYPE
  10293. BX5 X0*X3
  10294. NZ X1,PFM4 IF DEVICE TYPE SPECIFIED
  10295. SA1 DFPT
  10296. EQ PFM4 SET RESOURCE REQUEST BLOCK
  10297.  
  10298. PFM1 SA1 SFET+/COMSPFM/CFPK READ PACK INFORMATION
  10299. MX6 -3
  10300. BX5 X0*X1
  10301. BX6 -X6*X1 NUMBER OF UNITS
  10302. NZ X5,PFM2 IF NOT USING DEFAULT PACKNAME
  10303. BX5 X0*X3
  10304. PFM2 LX2 18
  10305. NZ X6,PFM3 IF NUMBER OF UNITS SPECIFIED
  10306. SX6 B1
  10307. PFM3 MX0 12
  10308. SX6 X6+1R0
  10309. BX2 X0*X2 DEVICE TYPE
  10310. LX2 18
  10311. BX1 X6+X2 RESOURCE TYPE
  10312. NZ X2,PFM4 IF NOT USING DEFAULT EQUIPMENT
  10313. MX0 -18
  10314. BX1 -X0*X3
  10315. NZ X1,PFM4 IF DEVICE TYPE SPECIFIED
  10316. SA1 DFPT
  10317. PFM4 LX6 X1
  10318. BX6 X6+X5
  10319. SA6 RQ ENTER USER REQUEST (RQ)
  10320. LX1 -18
  10321. RJ GRI GET RESOURCE INDEX
  10322. ZR B2,PFM5 IF RESOURCE NOT FOUND
  10323. SA6 RI ENTER RESOURCE INDEX (RI)
  10324. RJ GTM GET CURRENT TIME
  10325. EQ RRP REQUEST REMOVABLE PACK
  10326.  
  10327. PFM5 SB2 /PER/IRT * INCORRECT RESOURCE TYPE.*
  10328. EQ PER PROCESS ERROR
  10329. TITLE PRESET PRE-PROCESSORS.
  10330. CCP SPACE 4,15
  10331. ** CCP - COMMAND PRE-PROCESSOR.
  10332. *
  10333. * ENTRY (X5) = ADDRESS OF PROCESSOR NAME.
  10334. *
  10335. * EXIT (USBB) = UNPACKED COMMAND.
  10336. * (AP) = (B6) = ASSEMBLY POINTER.
  10337. * (LIT) .NE. 0.
  10338. *
  10339. * ERROR TO *ERR*, IF COMMAND ERROR.
  10340. *
  10341. * USES A - 5, 7.
  10342. * B - 1, 2.
  10343. * X - 0, 5, 7.
  10344. *
  10345. * CALLS IDF, PCV, POP, USB.
  10346.  
  10347.  
  10348. CCP SUBR ENTRY/EXIT
  10349. SA5 X5 READ PROGRAM NAME
  10350. SB1 1 (B1) = 1
  10351. BX7 X5
  10352. SA7 CCPA SAVE PROGRAM NAME
  10353. RJ IDF ISSUE DAYFILE MESSAGE
  10354. RJ PCV PRESET CONTROL POINT VALUES
  10355. SB2 CCDR UNPACK COMMAND
  10356. RJ USB
  10357. SX7 B0+
  10358. SA7 LIT CLEAR LITERAL PROCESSING
  10359. CCP1 SA5 CCPA VERIFY PROGRAM NAME
  10360. RJ POP
  10361. NG B5,ERR IF COMMAND ERROR
  10362. BX0 X6-X5
  10363. SX7 B6
  10364. NZ X0,CCP1 IF NOT CORRECT PROGRAM NAME
  10365. SX1 X1-1R=
  10366. ZR X1,ERR IF SEPARATOR IS *=*
  10367. SA7 AP SAVE COMMAND ASSEMBLY POINTER
  10368. EQ CCPX RETURN
  10369.  
  10370.  
  10371. CCPA CON 0 PROGRAM NAME
  10372.  
  10373.  
  10374. ** TABLE OF PROGRAM NAMES.
  10375.  
  10376. ASSIGNC VFD 60/0LASSIGN
  10377. LABELC VFD 60/0LLABEL
  10378. REQUESC VFD 60/0LREQUEST
  10379. RESOURS VFD 60/0LRESOURC
  10380. VSNC VFD 60/0LVSN
  10381. CLF SPACE 4,20
  10382. ** CLF - CONVERT LFM CALL TO FET.
  10383. *
  10384. * ENTRY (SPPR) = ADDRESS OF CALLING BLOCK.
  10385. *
  10386. * EXIT FET AND TAPE DEFINITION BLOCK BUILT.
  10387. * AUTOMATIC ASSIGNMENT FLAG SET WHEN NEEDED.
  10388. *
  10389. * ERROR TO *PER*, IF ERROR.
  10390. *
  10391. * USES X - ALL.
  10392. * A - 1, 2, 3, 6, 7.
  10393. * B - 2.
  10394. *
  10395. * CALLS ILF.
  10396. *
  10397. * MACROS MOVE.
  10398.  
  10399.  
  10400. CLF SUBR ENTRY/EXIT
  10401.  
  10402. * COPY LABEL FET.
  10403.  
  10404. RJ ILF INITIALIZE LABEL FET
  10405. SA1 SFET+FDTY COPY TAPE DESCRIPTOR AND LABEL VALUES
  10406. MX0 -6
  10407. LX1 -18
  10408. BX5 -X0*X1
  10409. SX1 X5-FCID-1+5
  10410. NG X1,CLF2 IF FET TOO SHORT
  10411. SA3 SFET+FTAP SET DEFAULT OR TOGGLE INSTALLTION OPTION
  10412. SX2 /COMSMTX/POLM DEFAULT ERROR MESSAGE OPTION
  10413. SX6 /COMSMTX/POGH DEFAULT GCR WRITE CORRECTION OPTION
  10414. LX2 43-0
  10415. SX5 FMAX
  10416. LX6 42-0
  10417. BX3 X3-X2
  10418. SX1 X1+B1
  10419. BX6 X3-X6
  10420. IX4 X5-X1
  10421. SA6 A3
  10422. PL X4,CLF1 IF FET NOT TOO LONG
  10423. BX1 X5
  10424. CLF1 MOVE X1,SFET+FCID,F+FCID
  10425. CLF2 SA1 SFET SET FILE NAME AND GUARANTEE COMPLETE FET
  10426. MX0 12
  10427. SA2 A1+B1
  10428. SX7 B1
  10429. BX7 X1+X7
  10430. SA3 F+FDTY
  10431. BX2 X0*X2
  10432. SA7 A3-B1 ENTER FILE NAME
  10433. BX3 -X0*X3
  10434. BX7 X2+X3
  10435. SA7 A3 ENTER DEVICE FIELD
  10436. MX0 -11
  10437. SA3 F+FTAP GET TAPE DESCRIPTORS
  10438. LX2 12 CHECK DEVICE TYPE
  10439. MX7 1 GET *OPEN/WRITE* FLAG
  10440. BX6 X7*X3
  10441. LX6 40-59
  10442. BX6 X6+X3 SET WRITE ENABLE REQUIRED FOR *OPEN/WRITE*
  10443. BX7 -X0*X2 DEVICE CODE
  10444. LX6 -55
  10445. MX0 -2
  10446. ZR X7,CLF4 IF NO DEVICE CODE SPECIFIED
  10447. RJ CTE CHECK FOR TAPE DEVICE CODE
  10448. ZR X2,CLF4 IF NOT TAPE DEVICE CODE
  10449. BX1 -X0*X6 SPECIFIED DEVICE TYPE
  10450. BX0 X1-X7
  10451. ZR X0,CLF4 IF DEVICE CODE MATCHES TAPE DEVICE TYPE
  10452. SB2 /PER/TDC * TAPE DEVICE TYPE CONFLICT.*
  10453. NZ X1,PER IF *MT* DEVICE TYPE NOT SPECIFIED
  10454. ERRNZ /COMSMTX/DVMT
  10455. BX6 X6+X7 SET DEVICE TYPE FROM DEVICE CODE
  10456. CLF4 SA1 F+FCID GET CHECKPOINT ID FROM FET+7
  10457. LX6 55
  10458. SA6 A3
  10459. MX0 -6
  10460. LX1 6
  10461. BX6 -X0*X1
  10462. SX5 X6-/COMSLFM/CKID CHECK FOR SPECIAL ID = 76B
  10463. SX6 /COMSLFD/CKST CHECKPOINT AT EOI
  10464. ZR X5,CLF6 IF VALID ID
  10465. SX5 X5-/COMSLFM/CBID+/COMSLFM/CKID
  10466. SX6 /COMSLFD/CBST CHECKPOINT AT BOI
  10467. ZR X5,CLF6 IF VALID ID
  10468. SA1 SPPR CHECK FOR *SSJ=* CALLING PROGRAM
  10469. SA3 /CPA/JCIW CHECK FOR PRIVACY STATUS ON NEW FILES
  10470. LX1 59-36
  10471. PL X1,CLF5 IF NOT *SSJ=* JOB
  10472. LX1 59-37-59+36
  10473. SX6 /COMSLFD/SSST SPECIAL SYSTEM JOB FILE STATUS
  10474. NG X1,CLF6 IF *SSJ=* BLOCK DEFINED
  10475. CLF5 SX6 /COMSLFD/UPST USER FILE PRIVACY STATUS
  10476. LX3 59-19
  10477. NG X3,CLF6 IF USER PRIVACY REQUESTED ON NEW FILES
  10478. SX6 B0+
  10479. CLF6 SA6 CI SET CHECKPOINT ID
  10480.  
  10481. * CHECK FOR MULTI-FILE POSITIONING.
  10482.  
  10483. SA1 F+FMSI CHECK MULTI-FILE SET ID
  10484. MX0 36
  10485. BX6 X6-X6
  10486. SA3 BLANK
  10487. BX1 X0*X1
  10488. BX4 X3-X1
  10489. ZR X1,CLF7 IF SET ID NOT SPECIFIED
  10490. ZR X4,CLF7 IF BLANK SET ID SPECIFIED
  10491. SX6 X6+4 INDICATE SET ID SPECIFIED
  10492. CLF7 MX0 42
  10493. BX4 X3
  10494. SA1 F+FID1 CHECK FILE IDENTIFIER
  10495. LX4 24
  10496. SA2 F+FID2
  10497. BX3 X3+X4
  10498. BX2 X0*X2
  10499. IX4 X1+X2
  10500. ZR X4,CLF8 IF FILE ID NOT SPECIFIED
  10501. IX1 X1-X3
  10502. BX4 X0*X3
  10503. BX2 X2-X4
  10504. IX1 X1+X2
  10505. ZR X1,CLF8 IF BLANK FILE ID SPECIFIED
  10506. SX6 X6+1 INDICATE FILE ID SPECIFIED
  10507. CLF8 SA1 F+FSQN CHECK FILE SEQUENCE NUMBER
  10508. MX0 -15
  10509. BX1 -X0*X1
  10510. ZR X1,CLF9 IF SEQUENCE NUMBER NOT SPECIFIED
  10511. SX6 X6+2 INDICATE SEQUENCE NUMBER SPECIFIED
  10512. SX2 X1-1
  10513. ZR X2,CLF9 IF NOT MULTI-FILE SET SEQUENCE NUMBER
  10514. SX6 X6+10B INDICATE SEQUENCE NUMBER .GT. 1
  10515. SX2 X1-9999
  10516. NZ X2,CLF9 IF NOT FILE SET EXTENSION
  10517. SA3 F+FTAP SET WRITE LABEL BIT
  10518. MX7 1
  10519. BX3 X3+X7
  10520. LX7 40-59 SET WRITE ENABLE REQUIRED FLAG
  10521. BX7 X7+X3
  10522. SA7 A3+
  10523. CLF9 SA6 MF SET MULTI-FILE POSITIONING FLAG
  10524. SA1 F+FVSN GET VSN
  10525. MX6 42
  10526. BX6 X6*X1
  10527. SA6 EVSN SET EXTERNAL VSN
  10528. SA6 IVSN SET INTERNAL VSN
  10529. EQ CLFX
  10530. CSF SPACE 4,15
  10531. ** CSF - CONVERT NOS/BE REQUEST BLOCK TO FET.
  10532. *
  10533. * ENTRY (SPPR+1 - SPPR+9) = NOS/BE REQ MACRO PARAMETER BLOCK.
  10534. *
  10535. * EXIT FET AND TAPE DEFINITION BLOCK BUILT.
  10536. *
  10537. * ERROR TO *ERR*, IF CONTENT ERROR IN *REQ* BLOCK.
  10538. *
  10539. * USES A - 1, 2, 3, 4, 6, 7.
  10540. * X - ALL.
  10541. *
  10542. * MACROS MOVE.
  10543.  
  10544.  
  10545. CSF SUBR ENTRY/EXIT
  10546. SA1 SPPR+1 ENTER FILE NAME
  10547. MX0 42
  10548. BX1 X0*X1
  10549. SX2 3
  10550. BX6 X1+X2
  10551. SA1 A1+B1
  10552. SA6 F
  10553. MX0 -2 BUILD TAPE DESCRIPTORS
  10554. BX6 -X0*X1 DENSITY
  10555. LX1 -2
  10556. BX5 -X0*X1 LABEL
  10557. LX1 -2
  10558. BX4 -X0*X1 FORMAT
  10559. MX0 -1
  10560. LX1 -2
  10561. BX3 -X0*X1 TRACK TYPE
  10562. MX0 -2
  10563. LX1 -23
  10564. SX6 X6+B1
  10565. BX2 -X0*X1 CONVERSION (US, EB)
  10566. LX6 -9
  10567. CX5 X5
  10568. LX3 -4
  10569. SA4 X4+CSFA
  10570. LX5 1
  10571. BX5 -X0*X5
  10572. LX1 5
  10573. MX0 -1
  10574. ZR X2,CSF1 IF NO CONVERSION SPECIFIED
  10575. SX2 X2-3
  10576. ZR X2,CSF1 IGNORE IF BOTH US AND EB SPECIFIED
  10577. BX2 -X2
  10578. CSF1 LX5 -4
  10579. BX7 X6+X4
  10580. LX2 -12
  10581. BX7 X7+X3
  10582. BX2 X5+X2
  10583. BX6 -X0*X1 READ LABEL (E)
  10584. BX7 X7+X2
  10585. LX1 1
  10586. BX5 -X0*X1 NON-STANDARD (NS)
  10587. LX1 1
  10588. BX4 -X0*X1 ERROR INHIBIT (NR)
  10589. LX1 9
  10590. BX3 -X0*X1 INHIBIT UNLOAD (IU)
  10591. LX6 -1
  10592. BX7 X7+X6
  10593. LX5 -3
  10594. BX7 X7+X5
  10595. LX4 -22
  10596. BX7 X7+X4
  10597. LX3 -19
  10598. BX7 X7+X3
  10599. LX1 -3
  10600. MX0 3
  10601. PL X1,CSF2 IF NOT SYSTEM DEFAULT DENSITY
  10602. LX0 -6
  10603. BX7 -X0*X7
  10604. CSF2 SA7 F+FTAP ENTER TAPE DESCRIPTORS
  10605. LX1 -10
  10606. MX0 36
  10607. PL X1,CSF3 IF NO VSN
  10608. SA2 A1+B1 ENTER VSN
  10609. SA3 A7+B1
  10610. BX2 X0*X2
  10611. BX3 -X0*X3
  10612. BX7 X2+X3
  10613. SA7 A3
  10614. CSF3 LX1 -24
  10615. SX7 B1
  10616. NG X1,CSF4 IF EXTENDED LABELS
  10617. SX7 -B1
  10618. LX1 1
  10619. PL X1,CSF5 IF NOT STANDARD LABELS
  10620. CSF4 SA7 OO SELECT OPEN OPTION
  10621.  
  10622. MOVE 5,SFET+FRTL,LABL COPY LABEL DESCRIPTORS
  10623.  
  10624.  
  10625. CSF5 SA1 F+FTAP VALIDATE FET
  10626. MX0 -6
  10627. LX1 -30
  10628. BX5 -X0*X1
  10629. SX5 X5-/COMSMTX/TFMA
  10630. LX1 30
  10631. ZR X5,ERR IF INCORRECT FORMAT
  10632. SA1 F
  10633. BX7 X1
  10634. SA7 VF
  10635. EQ CSFX RETURN
  10636. SPACE 4,10
  10637. * TABLE OF NOS/BE TAPE FORMATS.
  10638.  
  10639. CSFA VFD 30//COMSMTX/TFSI,30/5120 SYSTEM INTERNAL
  10640. VFD 30//COMSMTX/TFMA,30/0 INCORRECT
  10641. VFD 30//COMSMTX/TFS,30/5120 STRANGER
  10642. VFD 30//COMSMTX/TFL,30/5120 LONG BLOCK STRANGER
  10643. GAL SPACE 4,15
  10644. ** GAL - GET ACCESS LEVEL.
  10645. *
  10646. * *GAL* CHECKS TO SEE IF AN ACCESS LEVEL HAS BEEN SET,
  10647. * IF NOT IT WILL DEFAULT TO THE JOB ACCESS LEVEL IF A
  10648. * SECURED SYSTEM IS ENABLED.
  10649. *
  10650. * ENTRY (AL) = ACCESS LEVEL REQUESTED.
  10651. * .LT. 0, IF NO REQUEST MADE.
  10652. *
  10653. * EXIT (AL) = ACCESS LEVEL.
  10654. *
  10655. * USES X - 0, 1, 6.
  10656. * A - 1, 6.
  10657.  
  10658.  
  10659. GAL SUBR ENTRY/EXIT
  10660. SA1 AL
  10661. PL X1,GALX IF ACCESS LEVEL ENTERED
  10662. SA1 SSMA SYSTEM SECURITY MODE
  10663. ZR X1,GAL1 IF UNSECURED SYSTEM
  10664. SA1 JALA JOB ACCESS LEVEL
  10665. MX0 -6
  10666. BX1 -X0*X1 JOB ACCESS LEVEL
  10667. GAL1 BX6 X1
  10668. SA6 AL SAVE ACCESS LEVEL
  10669. EQ GALX RETURN
  10670. ILF SPACE 4,10
  10671. ** ILF - INITIALIZE LABEL FET.
  10672. *
  10673. * EXIT (FET+10B) = DEFAULT TAPE DESCRIPTORS.
  10674. * (FET+11B - FET+17B) = 0.
  10675. *
  10676. * USES A - 7.
  10677. * B - 7.
  10678. * X - 7.
  10679.  
  10680.  
  10681. ILF SUBR ENTRY/EXIT
  10682. SX7 B0+
  10683. SB7 7
  10684. ILF1 SA7 B7+F+FTAP CLEAR FET+10B - FET+17B
  10685. SB7 B7-1
  10686. PL B7,ILF1 IF NOT LAST WORD
  10687. EQ ILFX RETURN
  10688. PCV SPACE 4,15
  10689. ** PCV - PRESET CONTROL POINT VALUES.
  10690. *
  10691. * EXIT JOB AND SYSTEM CONTROL PARAMETERS SET.
  10692. * SYSTEM RESOURCE FILE NAMES INITIALIZED.
  10693. *
  10694. * USES A - 1, 2, 3, 6, 7.
  10695. * X - 0, 1, 2, 3, 6, 7.
  10696. *
  10697. * MACROS DISSR, GETFO, GETJAL, GETJN, GETJO, GETSSL, GETUSV,
  10698. * MACHID, RDSB, REPRIEVE, SYSTEM.
  10699.  
  10700.  
  10701. PCV SUBR ENTRY/EXIT
  10702.  
  10703. * DISABLE SRU ACCUMULATION AND INITIALIZE REPRIVE PROCESSING.
  10704.  
  10705. DISSR DISABLE SRU ACCUMULATION
  10706. REPRIEVE RPVB,SET,237B SET EXTENDED REPRIEVE PROCESSING
  10707.  
  10708. * GET JOB INFORMATION.
  10709.  
  10710. RDSB 0,/CPA/CPAL,0,/CPA/CPA
  10711. GETJO OT GET JOB ORIGIN TYPE
  10712. GETFO FAMO GET FAMILY ORDINAL
  10713. SA1 FAMO
  10714. SX6 X1
  10715. SA6 A1 SET FAMILY ORDINAL
  10716. GETJN JSN GET JSN
  10717. SA2 /CPA/TFSW GET JOB EJT ORDINAL
  10718. MX0 -12
  10719. LX2 12
  10720. BX6 -X0*X2
  10721. SA6 JEEO SET EJT ORDINAL
  10722. GETJAL JALA GET JOB ACCESS LEVEL
  10723. GETUSV JCWA GET JOB CONTROL WORD
  10724.  
  10725. * GET SYSTEM INFORMATION.
  10726.  
  10727. RDSB 0,1,EJTP,/LWC/EJTP EJT POINTER
  10728. RDSB 0,1,ESTP,/LWC/ESTP EST POINTER
  10729. RDSB 0,1,IPRL,/LWC/IPRL INSTALLATION PARAMETER
  10730. RDSB 0,1,PFNL,/LWC/PFNL PERMANENT FILE CONTROL
  10731. SYSTEM SFM,R,TMPF,GTSF*100B GET *TMS* STATUS
  10732. SA2 TMPF CHECK *TMS* SYSTEM STATUS
  10733. MX6 1
  10734. PL X2,PCV0.1 IF *TMS* DISABLED
  10735. LX2 59-58
  10736. PL X2,PCV0.1 IF NO *TMS* BINARIES IN SYSTEM
  10737. MX0 1 CHECK IF DEFAULT *TO=T* OR *TO=F*
  10738. LX2 53-0-59+58
  10739. LX0 53-59
  10740. BX6 X0*X2
  10741. BX6 X0-X6 SET DEFAULT *TO=T* OR *TO=F*
  10742. LX0 51-53 CHECK IF DEFAULT *TO=C* OR *TO=E*
  10743. LX2 51-1-53+0
  10744. BX1 X0*X2
  10745. BX1 X0-X1
  10746. BX6 X6+X1 SET DEFAULT *TO=C* OR *TO=E*
  10747. PCV0.1 SA6 A2
  10748. MACHID PCVA RETRIEVE MACHINE ID
  10749. SA3 PCVA
  10750. SA1 D SET ID IN FILE NAMES
  10751. SA2 V
  10752. LX3 24
  10753. SA4 R
  10754. BX6 X3+X1
  10755. SA6 A1
  10756. BX7 X3+X2
  10757. SA7 A2
  10758. BX6 X3+X4
  10759. SA6 A4
  10760. GETSSL SSMA SYSTEM SECURITY MODE
  10761. SA1 SSMA
  10762. MX0 -6
  10763. LX1 0-48
  10764. BX6 -X0*X1
  10765. SA6 A1 SYSTEM SECURITY MODE
  10766. SA1 /LWC/PFNL SET SYSTEM DEFAULT PACK TYPE
  10767. MX0 -18
  10768. LX1 -42
  10769. BX6 -X0*X1
  10770. SA6 DFPT
  10771. SA1 /CPA/PKNW SET JOB DEFAULT PACK TYPE
  10772. BX6 -X0*X1
  10773. ZR X6,PCVX IF PACK TYPE NOT SET IN CPA
  10774. SA6 DFPT
  10775. EQ PCVX RETURN
  10776.  
  10777.  
  10778. PCVA BSSZ 1 MACHINE ID RECEIVING AREA
  10779. SPACE 4,10
  10780. * PRESET BUFFERS.
  10781.  
  10782.  
  10783. ASJT BSSZ 100B ACTIVE STAGE JOB TABLE
  10784.  
  10785.  
  10786. RFL2 EQU * END OF PRESET CODE
  10787.  
  10788. .RFL MAX RFL1,RFL2
  10789. RFL= EQU .RFL
  10790. END