cdc:nos2.source:opl871:resex
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
- IDENT RESEX,FETS
- ABS
- SST
- ENTRY ASSIGN
- ENTRY LABEL
- ENTRY REQUEST
- ENTRY RESOURC
- ENTRY VSN
- ENTRY LFM
- ENTRY PFM
- ENTRY REQ
- ENTRY ARG=
- ENTRY DMP=
- ENTRY RFL=
- ENTRY SDM=
- ENTRY SSJ=
- SYSCOM B1
- TITLE RESEX - RESOURCE EXECUTIVE.
- *COMMENT RESEX - RESOURCE EXECUTIVE.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4,10
- *** RESEX - RESOURCE EXECUTIVE.
- * M. E. MADDEN. 73/05/31.
- * W. E. GOEBEL. 74/05/10.
- * J. L. LARSON. 77/05/04.
- * J. L. LARSON. 82/06/24.
- SPACE 4,10
- *** RESEX PROCESSES REQUESTS FOR MAGNETIC TAPE AND
- * REMOVABLE DISK PACK RESOURCES.
- *
- *
- * THE FOLLOWING TAPE RELATED COMMANDS ARE PROCESSED -
- *
- * ASSIGN(EQ,LFN,P1,P2,...,PN)
- * LABEL(LFN,P1,P2,...,PN)
- * REQUEST(LFN,P1,P2,...,PN)
- * VSN(LFN=VSN1/VSN2=VSN3)
- *
- *
- * THE FOLLOWING COMMAND DEFINES THE MAXIMUM NUMBER
- * OF TAPE AND PACK RESOURCE UNITS THAT WILL BE IN USE
- * CONCURRENTLY -
- *
- * RESOURC(RT1=N1/AL,RT2=N2/AL,.....RTN=NN/AL)
- *
- * RT RESOURCE TYPE.
- * N NUMBER OF UNITS DEMANDED.
- * AL ACCESS LEVEL, FOR TAPE DRIVES ONLY.
- * ( SEE *COMSMLS* FOR MICRO DEFINITION.)
- *
- *
- * THE OVERCOMMITMENT ALGORITHM IS CONTAINED IN *RESEX*.
- * THE COMMANDS PROCESSED HEREIN CALL THE OVERCOMMITMENT
- * ALGORITHM DIRECTLY, IF NECESSARY.
- * USER REQUESTS FOR TAPES DONE BY MACROS, ETC. (INCLUDING
- * *NOS/BE* FORMATTED CALLS) AND ALL REMOVABLE PACK REQUESTS
- * ARE TRANSFERRED TO *RESEX* SO THAT THE OVERCOMMITMENT
- * ALGORITHM MAY BE EXERCISED.
- *
- *
- * RESEX INTERLOCKS A TAPE EQUIPMENT BY CALLING LFM VIA VSN
- * FUNCTION. THEN RESEX CALLS MAGNET TO ASSIGN THE REQUESTED
- * TAPE.
- *
- *
- *
- * LABELS WILL BE PROPERLY VERIFIED IN STANDARD LABEL
- * PROCESSING MODE BY OPEN/ALTER OR OPEN/WRITE CALLS IF
- * LABEL COMMAND IS USED.
- *
- *
- *
- * RESOURCE FILES.
- *
- * RESEX USES TWO DIRECT ACCESS PERMANENT FILES AS FAST ATTACH
- * FILES. IN EACH CASE THE *ID* SUFFIX IN THE FILE NAME IS THE
- * MACHINE ID. -
- *
- * RSXDID RESOURCE DEMAND FILE.
- * EACH ENTRY CONSISTS OF JOB IDENTIFICATION,
- * RESOURCE VALIDATION LIMITS, MAXIMUM CONCURRENT
- * DEMAND FOR EACH RESOURCE TYPE, AND A REMOVABLE
- * DISK SHARE TABLE.
- * EACH ENTRY IS TWO PRUS (200 CM WORDS) IN LENGTH.
- *
- * RSXVID VSN FILE.
- * EACH ENTRY CONSISTS OF JOB IDENTIFICATION,
- * FILE NAME, *RSXDID* ENTRY RANDOM INDEX, DEMAND
- * FILE TAPE RESOURCE INDEX AND BYTE POINTER,
- * AND THE VOLUME SERIAL NUMBER(S) ASSOCIATED
- * WITH THE NAMED FILE.
- * EACH ENTRY IS ONE PRU (100 CM WORDS).
- *
- *
- * ERROR MESSAGES.
- *
- * ARGUMENT ERROR.
- * ARGUMENTS IN COMMAND OR *DMP=* CALL INCORRECT.
- *
- * JSQN ASSIGNS EXCEED DEMANDS.
- * JOB WITH JOB SEQUENCE NUMBER JSQN HAS ASSIGN
- * COUNTS GREATER THAN DEMAND COUNTS.
- *
- * CIO ERROR.
- * REWRITE ON RESOURCE FILE RETURNED ERROR STATUS OTHER
- * THAN END-OF-DEVICE.
- *
- * CONFLICTING RESOURCE TYPES.
- * *PE*, *HD*, AND *GE* RESOURCES CANNOT BE SPECIFIED
- * CONCURRENTLY IN THE SAME JOB WITH AN *NT* RESOURCE.
- *
- * DEMAND EXCEEDED.
- * USER ATTEMPTING TO EXCEED DEMAND.
- *
- * DEMAND FILE ERROR.
- * DEMAND FILE ENTRY DOES NOT MATCH JOB IDENTIFICATION.
- *
- * DEMAND VALIDATION ERROR.
- * DEMAND EXCEEDS USER VALIDATION LIMITS.
- *
- * EQUIPMENT NOT AVAILABLE.
- * SELECTED EQUIPMENT CANNOT BE ASSIGNED TO JOB.
- *
- * FORMAT REQUIRES UNLABELED TAPE.
- * THE FORMAT SPECIFIED IS VALID ONLY FOR UNLABELED
- * TAPES.
- *
- * FRAME COUNT TOO LARGE.
- * THE TAPE BLOCK SIZE CALCULATED FROM THE SPECIFIED
- * FRAME COUNT IS LARGER THAN THE MAXIMUM BLOCK SIZE.
- *
- * FRAME COUNT TOO SMALL.
- * THE SPECIFIED FRAME COUNT IS SMALLER THAN THE MINIMUM
- * ALLOWED.
- *
- * IMPROPER ACCESSIBILITY.
- * FILE ACCESSIBILITY FIELD IN *HDR1* TAPE LABEL DOES NOT
- * ALLOW USER TO ACCESS THAT FILE.
- *
- * INCORRECT ACCESS LEVEL FOR EQUIPMENT.
- * USER HAS SPECIFIED AN ACCESS LEVEL OUTSIDE OF THE
- * ACCESS LEVEL LIMITS.
- *
- * INCORRECT COMMAND.
- * *LFM*, *PFM* OR *REQ* ENTRY POINTS EXECUTED AS A
- * COMMAND.
- *
- * INCORRECT CONVERSION MODE.
- * THE SPECIFIED CONVERSION MODE IS INCORRECT.
- *
- * INCORRECT CONVERSION MODE FOR TAPE DEVICE TYPE.
- * THE SPECIFIED CONVERSION MODE IS NOT SUPPORTED FOR THE
- * TAPE DEVICE TYPE.
- *
- * INCORRECT DENSITY.
- * THE SPCIFIED DENSITY IS INCORRECT.
- *
- * INCORRECT DENSITY FOR FORMAT.
- * THE SPECIFIED DENSITY IS NOT SUPPORTED FOR THE TAPE
- * FORMAT.
- *
- * INCORRECT DENSITY FOR TAPE DEVICE TYPE.
- * THE SPECIFIED DENSITY IS NOT SUPPORTED FOR THE TAPE
- * DEVICE TYPE.
- *
- * INCORRECT END OF TAPE OPTION FOR FORMAT.
- * THE SPECIFIED END OF TAPE OPTION IS NOT SUPPORTED FOR
- * THE TAPE FORMAT.
- *
- * INCORRECT EQUIPMENT.
- * USER SPECIFIED EQUIPMENT THAT DOES NOT EXIST OR IS
- * NOT ALLOWED.
- *
- * INCORRECT LFM CALL.
- * INCORRECT FUCTION CODE IN LFM *DMP=* CALL.
- *
- * INCORRECT RESOURCE COUNT.
- * TOTAL RESOURCE DEMAND EXCEEDS MAXIMUM ALLOWED, AS
- * DEFINED BY INSTALLATION PARAMETER *MAXD* (DEFINED
- * IN RESEX).
- *
- * INCORRECT RESOURCE TYPE.
- * RESOURCE TYPE IS NOT RECOGNIZED.
- *
- * INCORRECT TAPE FORMAT.
- * THE SPECIFIED TAPE FORMAT IS INCORRECT.
- *
- * INSUFFICIENT RESOURCES ON SYSTEM.
- * RESOURCE DEMAND EXCEEDS NUMBER OF UNITS AVAILABLE ON
- * SYSTEM.
- *
- * MAGNETIC TAPE SUBSYSTEM NOT ACTIVE.
- * RSB OR SIC CALL GETS SUB-SYSTEM MISSING STATUS.
- *
- * MISSING DEMAND FILE ENTRY.
- * OVERCOMMITMENT ALGORITHM SUBROUTINE *CRQ* IS CALLED
- * WITHOUT HAVING PREVIOUSLY BUILT A DEMAND FILE ENTRY.
- *
- * JSQN MISSING RESOURCE.
- * RESEX WAS UNABLE TO FIND A RESOURCE UNIT ASSIGNED TO
- * THE JOB WITH JOB SEQUENCE NUMBER JSQN.
- *
- * MISSING VSN OR EQUIPMENT ASSIGNMENT.
- * SUBROUTINE *CRQ* EXPECTS TO FIND AN EQUIPMENT
- * ASSIGNMENT OR A VSN, BUT DOES NOT.
- *
- * MULTIPLE END OF TAPE OPTIONS SELECTED.
- * MORE THAN ONE END OF TAPE OPTION WAS SPECIFIED.
- *
- * NOISE SIZE TOO LARGE.
- * THE SPECIFIED NOISE SIZE IS LARGER THAN THE MAXIMUM
- * ALLOWED FOR THE TAPE DEVICE TYPE.
- *
- * NOT VALIDATED FOR REQUESTED ACCESS LEVEL.
- * USER HAS SPECIFIED AN ACCESS LEVEL OUTSIDE OF THE
- * USER-S ACCESS LEVEL VALIDATIONS.
- *
- * NOT VALIDATED FOR WRITING UNLABELED TAPES.
- * USER HAS NOT BEEN VALIDATED FOR WRITING ON UNLABELED
- * TAPES. * SAV=CULT.*
- *
- * NO VSN SPECIFIED ON ACS TAPE REQUEST.
- * NO VSN WAS SPECIFIED ON A REQUEST FOR AN ACS TAPE.
- *
- * NT DENSITY CONFLICT.
- * 9-TRACK TAPE UNIT SPECIFIED BY EST ORDINAL ON *ASSIGN*
- * COMMAND DOES NOT SUPPORT THE REQUIRED DENSITY.
- *
- * NT DRIVE CONFLICT.
- * INCREASED RESOURCE DEMANDS CANNOT BE SATISFIED DUE TO
- * CONFLICTS WITH CURRENTLY ASSIGNED RESOURCES (JOB
- * WOULD DEADLOCK ITSELF). 9-TRACK TAPE UNIT SPECIFIED
- * BY EST ORDINAL ON *ASSIGN* COMMAND CONFLICTS WITH THE
- * OTHER RESOURCE REQUIREMENTS FOR THIS JOB (ASSIGNMENT
- * REJECTED TO PREVENT JOB FROM DEADLOCKING ITSELF).
- *
- * PRIOR TAPE ASSIGNMENT LOST.
- * MAGNET HAS BEEN DROPPED WITH TAPES ASSIGNED. USER
- * MUST RETURN ALL TAPE FILES AND REASSIGN.
- *
- * REMOVABLE PACKS OVERCOMMITMENT.
- * REMOVABLE PACKS REQUEST WITHOUT *NA* SELECTED
- * OVERCOMMITS.
- *
- * RESEX ABORT - INTERNAL ERROR.
- * *RESEX* HAS ABORTED WITH ONE OF THE FOLLOWING ERRORS -
- * *CPU ERROR EXIT*
- * *PP CALL ERROR*
- *
- * RESEX ABORT - OPERATOR TERMINATION.
- * ERROR FLAG SET ON *RESEX* DUE TO OPERATOR *DROP*,
- * *KILL*, OR *RERUN*. *RESEX* PERFORMS APPROPRIATE
- * CLEAN-UP BEFORE ABORTING.
- *
- * RESEX ABORT - SYSTEM RESOURCE LIMIT.
- * *RESEX* TERMINATED PREMATURELY DUE TO TIME LIMIT, SRU
- * LIMIT, OR TRACK LIMIT. *RESEX* PERFORMS APPROPRIATE
- * CLEAN-UP BEFORE ABORTING.
- *
- * RESEX ABORT - TAPE MANAGER.
- * THE TAPE MANAGER (TMS) HAS ABORTED THE TAPE REQUEST.
- *
- * RESEX ABORT - TERMINAL INTERRUPT.
- * TERMINAL USER INTERRUPTED *RESEX*. *RESEX*
- * PERFORMS APPROPRIATE CLEAN-UP BEFORE ABORTING.
- *
- * RESOURCE DEMAND ERROR.
- * RESOURCE DEMAND REQUEST CAUSES OVERCOMMITMENT OR USER
- * HAS MORE ASSIGNED UNITS THAN NEW DEMAND.
- *
- * RESOURCE ENVIRONMENT ERROR.
- * INTERNAL ENVIRONMENT BUILDING FAILS DUE TO POSSIBLE
- * MASS STORAGE TABLE (MST), UNIT DESCRIPTOR TABLE (UDT),
- * OR EST ERRORS.
- *
- * RESOURCE NEGATIVE SHARE COUNT.
- * OVERCOMMITMENT ALGORITHM RETURNS MORE SHARERS THAN
- * ARE SHARING THE REMOVABLE PACK.
- *
- * RESOURCE PF ERROR NN FFFFFF.
- * IN ATTACHING EITHER RESOURCE FILE, *PFM* ERROR *NN* IS
- * DETECTED ON FILE *FFFFFF*.
- *
- * RESOURCE SCRATCH FILE ERROR.
- * AN EMPTY ENTRY HAS BEEN FOUND ON THE OVERCOMMITMENT
- * ALGORITHM SCRATCH FILE.
- *
- * SHARE TABLE ERROR.
- * SHARE TABLE IS FULL OR THE ENTRY IS NOT FOUND DURING A
- * SHARE TABLE SEARCH.
- *
- * JSQN SHARE TABLE MISMATCH.
- * AN EXPECTED SHARE TABLE MATCH WITH EVSB DID NOT OCCUR
- * WHILE PROCESSING JOB WITH JOB SEQUENCE NUMBER JSQN.
- *
- * STAGE REQUEST FILE ERROR.
- * *RESEX* HAS DETECTED AN ERROR IN THE STAGE REQUEST
- * FILE.
- *
- * SYSTEM ERROR.
- * RESEX IS UNABLE TO COMMUNICATE WITH (SUB)SYSTEM BY
- * MONITOR CALLS *RSB* OR *SIC*.
- *
- * TAPE DEVICE TYPE CONFLICT.
- * INCONSISTENT DEVICE TYPES (MT/NT/CT/AT) SPECIFIED ON
- * ASSIGN COMMAND OR LABEL MACRO REQUEST.
- *
- * TOTAL ASSIGNED COUNT ERROR.
- * SUM OF INDIVIDUAL RESOURCE ASSIGNED COUNTS DIFFERS
- * FROM TOTAL ASSIGNED COUNT IN DEMAND ENTRY.
- *
- * TOTAL DEMAND COUNT ERROR.
- * SUM OF INDIVIDUAL RESOURCE DEMANDS DIFFERS FROM TOTAL
- * DEMAND COUNT IN DEMAND ENTRY.
- *
- * UNKNOWN ACCESS LEVEL NAME.
- * USER HAS SPECIFIED AN INCORRECT ACCESS LEVEL.
- *
- * USER ACCESS NOT VALID.
- * USER NOT VALIDATED FOR RESOURCE(S).
- *
- * VSN FILE ERROR.
- * VSN FILE ENTRY DOES NOT MATCH JOB IDENTIFICATION.
- *
- * VSN VVVVVV NOT IN REQUESTED ACS.
- * THE TAPE WITH VSN VVVVVV IS NOT IN THE ACS ACCESSIBLE
- * BY THIS SYSTEM.
- *
- * VSN VVVVVV UNREADABLE OPTICAL LABEL.
- * THE TAPE WITH VSN VVVVVV CANNOT BE ASSIGNED BECAUSE
- * THE ACS SERVER IS UNABLE TO VERIFY THE OPTICAL LABEL.
- *
- * VSN VVVVVV NOT IN ACS LIBRARY.
- * THE TAPE WITH VSN VVVVVV IS NOT IN THE ACS LIBRARY.
- *
- * WRITE ENABLE AND DISABLE OPTIONS BOTH SELECTED.
- * WRITE ENABLE AND WRITE DISABLE REQUIRED OPTIONS WERE
- * SPECIFIED SIMULTANEOUSLY.
- *
- *
- * INFORMATIVE MESSAGES TO USER DAYFILE.
- *
- *
- * WRITE DISABLE FORCED ON NON-TMS ACS TAPE REQUEST.
- * A SYSTEM ORIGIN JOB HAS REQUESTED ACCESS TO AN ACS
- * TAPE WITHOUT TMS VALIDATION AND WRITE DISABLE (PO=R)
- * WAS NOT SPECIFIED.
- *
- * WRITE DISABLE FORCED ON UNLABELED REQUEST.
- * USER IS NOT VALIDATED FOR WRITING ON UNLABELED TAPES
- * AND DID NOT SPECIFY *PO=R* ON THE COMMAND.
- *
- * TTUUU, ASSIGNED TO FFF, VSN=VVV.
- * INFORMATIVE MESSAGE INDICATING TAPE ASSIGNMENT IS
- * COMPLETE, WHERE TT = TYPE (MT, NT, CT, OR AT) OF
- * UNIT ASSIGNED, UUU = EST ORDINAL OF DRIVE ASSIGNED,
- * FFF = FILENAME, VVV = VSN OF TAPE ASSIGNED.
- *
- *
- *
- * OPERATOR MESSAGES (DISPLAYED AT CONTROL POINT).
- *
- *
- * WAITING FOR RESOURCE FILE.
- * INDICATES *RESEX* IS WAITING TO ATTACH THE DEMAND
- * FILE TO COMPLETE OPERATOR ASSIGNMENT OF TAPE
- * EQUIPMENT OR *ASSIGN* OF SPECIFIC TAPE UNIT OR TO
- * COMPLETE CLEAN-UP PROCESSING AFTER AN INTERRUPT
- * HAS BEEN DETECTED. THIS SHOULD NOT NORMALLY OCCUR,
- * SINCE SEVERAL ATTEMPTS HAVE ALREADY BEEN MADE TO
- * ATTACH THE DEMAND FILE. IF THE OPERATOR DECIDES TO
- * *OVERRIDE* AN INTERRUPTED JOB AT THIS POINT,
- * THE DEMAND FILE ENTRY AND THE *E,P* PREVIEW
- * DISPLAY WILL NOT BE CLEANED UP.
- *
- *
- * OPERATOR MESSAGES ISSUED TO LINE 2 OF CONTROL POINT
- * IMMEDIATELY PRIOR TO ROLLOUT TO INDICATE THE REASON
- * FOR ROLLOUT.
- *
- *
- * WAITING FOR MAGNET.
- * *RESEX* IS WAITING FOR THE MAGNETIC TAPE SUBSYSTEM.
- *
- * WAITING FOR RESOURCE FILE.
- * *RESEX* IS WAITING FOR THE RESOURCE DEMAND OR VSN
- * FILE TO BECOME AVAILABLE.
- *
- * WAITING FOR RESOURCES.
- * *RESEX* IS WAITING FOR SUFFICIENT RESOURCES TO
- * BECOME AVAILABLE TO ALLOW ASSIGNMENT OF THE
- * TAPE/PACK WITHOUT CAUSING A SYSTEM DEADLOCK.
- *
- * WAITING FOR PN=NNNNNNN, TTT.
- * *RESEX* IS WAITING FOR THE OPERATOR TO MOUNT
- * PACKNAME *NNNNNNN* ON DEVICE TYPE *TTT*.
- *
- * WAITING ON TRACK LIMIT.
- * *RESEX* IS WAITING FOR ADDITIONAL TRACKS TO
- * BECOME AVAILABLE ON THE FAMILY DEVICE CONTAINING
- * THE RESOURCE DEMAND AND VSN FILES.
- *
- * WAITING FOR VSN=VVVVVVV, TT.
- * *RESEX* IS WAITING FOR THE OPERATOR TO MOUNT
- * TAPE WITH VSN *VVVVVVV* ON RESOURCE TYPE *TT*.
- * *VVVVVVV* = *SCRATCH* IMPLIES ANY SCRATCH TAPE IS
- * NEEDED.
- *
- * WAITING FOR STAGING TAPE.
- * *RESEX* IS WAITING FOR THE OPERATOR TO MOUNT
- * A STAGING TAPE.
- *
- *
- *
- * *DMP=* CALL RETURN STATUS.
- *
- *
- * *RESEX* RETURNS THE FOLLOWING IN RESPONSE TO A *DMP=* CALL IN
- * THE STATUS BYTE OF *SPCW* -
- *
- * 8/ RESERVED, 1/ MV, 1/ OV, 1/ FE, 1/ OK
- *
- *
- * MV MISSING VSN OR PACKNAME
- * OV OVERCOMMITMENT REJECTION
- * FE FATAL ERROR
- * OK COMPLETED NORMALLY
- TITLE MACROS.
- CLEAR SPACE 4,10
- ** CLEAR.
- * CLEAR BUFFER.
- *
- * CLEAR BUFFER,LENGTH,MASK
- PURGMAC CLEAR
- CLEAR MACRO B,L,M
- MACREF CLEAR
- R= A2,B+L
- R= B5,L
- IFNE M,,
- MX6 M
- ELSE 1
- MX6 0
- RJ CLB
- ENDM
- ENDRI SPACE 4,10
- ** ENDRI.
- * ENTER DEMAND FILE RANDOM INDEX.
- *
- * ENDRI N
- PURGMAC ENDRI
- ENDRI MACRO N
- MACREF ENDRI
- R= X1,N
- SX2 20B
- RJ =XCPM=
- ENDM
- FATRF SPACE 4,10
- ** FATRF.
- * ATTACH RESOURCE FILE AND SET INTERLOCK.
- *
- * FATRF FILE,MODE
- PURGMAC FATRF
- FATRF MACRO F,MD
- MACREF FATRF
- R= X2,F
- * SET FILE MODE.
- A SET /COMSPFM/PTRD
- ECHO 3,B=(W,R,A,M,RM,RA,U,RU),C=(/COMSPFM/PTWR,/COMSPFM/PTRD
- ,,/COMSPFM/PTAP,/COMSPFM/PTMD,/COMSPFM/PTRM,/COMSPFM/PTRA,/COMSPFM/PTUP,
- ,/COMSPFM/PTRU)
- IFC EQ,$B$MD$,2
- STOPDUP
- A SET C
- SX6 A
- RJ CFA
- ENDM
- INTRC SPACE 4,10
- ** INTRC - INTERRUPT PROCESSING CONTROL.
- *
- * INTRC ON INTERRUPT CAN BE PROCESSED IMMEDIATELY
- *
- * INTRC OFF CONTROL RETURN IS REQUIRED
- PURGMAC INTRC
- INTRC MACRO S
- MACREF INTRC
- I1 IFC EQ,$S$ON$
- SX7 0
- I1 ELSE
- SX7 1
- I1 ENDIF
- SA7 RPVC
- ENDM
- INTRP SPACE 4,10
- ** INTRP.
- * CHECK FOR AND PROCESS INTERRUPT.
- *
- * INTRP ADDR
- PURGMAC INTRP
- INTRP MACRO A
- MACREF INTRP
- SA1 RPVA
- NZ X1,A
- ENDM
- MKTE SPACE 4,10
- ** MKTE.
- * MAKE KEYWORD TABLE ENTRY.
- *
- * KW MKTE PRAD,EQI,PARMS
- *
- * KW KEYWORD
- * PRAD PROCESSOR ADDRESS (COMPLEMENT OF PROCESSOR ADDRESS
- * IF PARAMETER MUST BE EQUIVALENCED)
- * EQI EQUIVALENT PARAMETERS INDEX
- * PARMS INDIVIDUAL PROCESSOR PARAMETERS
- *
- *T KW 18/KW, 6/EQI, 18/PARMS, 18/PRAD
- PURGMAC MKTE
- MACRO MKTE,K,A,I,P
- MACREF MKTE
- K VFD 18/0L_K
- VFD 6/I
- K1 IFC EQ,$P$$
- VFD 18/0
- K1 ELSE
- VFD P
- K1 ENDIF
- VFD 18/A
- ENDM
- ROAE SPACE 4,10
- ** ROAE.
- * REQUEST OPERATOR TO ASSIGN EQUIPMENT (FC=0).
- * REQUEST OPERATOR SELECTION ON DUPLICATE VSN (FC=1).
- *
- * ROAE FILE,FC
- PURGMAC ROAE
- ROAE MACRO F,FC
- MACREF ROAE
- R= X2,F
- SX7 26B
- R= X4,FC
- LX4 18D
- BX2 X2+X4
- RJ =XLFM=
- ENDM
- RDSB SPACE 4,10
- ** RDSB.
- * READ SUB-SYSTEM BLOCK.
- *
- * STATUS WORD *SS* IS USED.
- * RDSB PROCESSES ITS OWN ERRORS UNLESS *X* IS PRESENT.
- *
- * RDSB SID,WC,FROM,TO,X
- PURGMAC RDSB
- RDSB MACRO Q,W,F,T,X
- MACREF RDSB
- R= X5,W
- R= X6,T
- R= X7,F
- R= X1,Q
- RJ RSB
- IFC EQ,$X$$,2
- SA2 SS
- PL X2,ERR1 IF ERROR
- ENDM
- RETRF SPACE 4,10
- ** RETRF - RETURN RESOURCE FILE.
- * RETURN RESOURCE FILE AND CLEAR ITS INTERLOCK.
- *
- * RETRF F
- PURGMAC RETRF
- RETRF MACRO F
- MACREF RETRF
- RETURN F
- BX7 X7-X7 CLEAR INTERLOCK
- SA7 X2-1
- ENDM
- TMS SPACE 4,15
- ** TMS - CALL THE TAPE MANAGEMENT SYSTEM PP *TFM*.
- *
- * TMS ADDR,FUNC
- *
- * ENTRY ADDR = FET ADDRESS.
- * FUNC = SUBFUNCTION FOR *RSXF* REQUEST.
- *
- * EXIT *TFM* REQUEST PROCESSED.
- *
- * USES X - 1, 2, 6, 7.
- * A - 1, 7.
- *
- * MACROS SYSTEM.
- PURGMAC TMS
- TMS MACRO AD,FC
- MACREF TMS
- SA1 AD
- SX6 /TFM/_FC
- MX0 42
- LX6 3
- BX2 X0*X1
- BX7 X2+X6
- SA7 A1
- SYSTEM TFM,R,AD,/TFM/RSXF*100B
- ENDM
- VSN SPACE 4,10
- ** VSN.
- * BUILD VSN FNT/FST ENTRY.
- *
- * VSN F
- *
- * F+10 HAS VSN RANDOM INDEX AND EQUIPMENT IF NEEDED.
- * FET STATUS (BIT 0) GUARANTEED SET = 1.
- PURGMAC VSN
- VSN MACRO F
- MACREF VSN
- R= X2,F
- SX7 27B
- RJ =XLFM=
- ENDM
- WTSB SPACE 4,10
- ** WTSB - WRITE MAGNET SUB-SYSTEM BLOCK.
- *
- * WTSB ADDR,BUFN
- *
- * ADDR = ADDRESS OF DATA TO WRITE.
- * BUFN = MAGNET BUFFER NUMBER.
- PURGMAC WTSB
- WTSB MACRO B,N
- MACREF WTSB
- R= X6,B
- R= X7,N
- RJ WSB
- ENDM
- TITLE COMMON DECKS.
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMCMAC
- *CALL COMCCMD
- QUAL COMSEJT
- *CALL COMSEJT
- QUAL *
- QUAL COMSLFD
- *CALL COMSLFD
- QUAL *
- QUAL COMSLFM
- *CALL COMSLFM
- QUAL *
- QUAL COMSMSP
- *CALL COMSMSP
- QUAL *
- QUAL COMSMTX
- LIST X
- *CALL COMSMTX
- LIST *
- QUAL *
- QUAL COMSPFM
- *CALL COMSPFM
- QUAL *
- *CALL COMSRPV
- LIST X
- *CALL COMSRSX
- LIST *
- QUAL COMSSRU
- *CALL COMSSRU
- QUAL *
- *CALL COMSSFM
- *CALL COMSSSD
- QUAL COMSSSJ
- *CALL COMSSSJ
- QUAL MLS
- *CALL COMSMLS
- QUAL *
- QUAL *
- QUAL EVENT
- *CALL COMSEVT
- QUAL *
- *CALL COMSPRD
- QUAL TFM
- *CALL COMSTFM
- QUAL *
- TITLE SPECIAL USAGE SYMBOLS.
- SPACE 4,10
- ** FET EQUIVALENCES FOR LABEL FIELDS.
- FDTY EQU 1 DEVICE TYPE
- FRTL EQU 4 *REQ* TAPE LABELS
- FSAL EQU 4 SECURITY ACCESS LEVEL
- FRAN EQU 6 RANDOM REQUEST WORD
- FNFN EQU 6 NEW FILE NAME (RENAME)
- FCID EQU 7 CHECKPOINT ID WORD
- FESN EQU /TFM/TFES EXTERNAL SERIAL NUMBER
- FTAP EQU 10B TAPE DESCRIPTORS
- FEVE EQU 10B ENTER VSN ENTRY CONTROL WORD
- FVSN EQU 11B VOLUME SERIAL NUMBER
- FFAS EQU 11B FILE ACCESSIBILITY
- FSTN EQU 11B FILE SECTION NUMBER
- FID1 EQU 12B FILE IDENTIFIER WORD 1
- FID2 EQU 13B FILE IDENTIFIER WORD 2
- FSQN EQU 13B FILE SEQUENCE NUMBER
- FMSI EQU 14B MULTI-SET IDENTIFIER
- FGVN EQU 14B GENERATION VERSION NUMBER
- FGRN EQU 14B GENERATION NUMBER
- FRTD EQU 15B RETENTION DATE
- FCRD EQU 15B CREATION DATE
- FAUN EQU /TFM/TFUN ALTERNATE ACCESS USERNAME
- FFTO EQU /TFM/TFUN TAPE MANAGER OPTIONS
- FPSW EQU /TFM/TFPW ALTERNATE ACCESS PASSWORD
- FFAC EQU /TFM/TFPW AUDIT ACCESSIBILITY
- FFCT EQU /TFM/TFPW CATEGORY TYPE
- FFMD EQU /TFM/TFPW FILE MODE
- FMAX EQU /TFM/TFPL NUMBER OF *TMS* WORDS IN FET
- SFET EQU SPPR+1 SPECIAL CALL FET POSITION
- SPACE 4,10
- ** LFM FUNCTIONS PROCESSED BY RESEX.
- QUAL LFM
- RENAME EQU 0 RENAME (FUNCTION 0)
- LABEL EQU 24B LABEL (FUNCTION 24)
- QUAL *
- TITLE ASSEMBLY CONSTANTS.
- SPACE 4,10
- **** ASSEMBLY CONSTANTS.
- BUFL EQU RDEL SHORT BUFFER LENGTH
- IOBL EQU 1001B I/O BUFFER LENGTH
- DBMC EQU 6 DEMAND FILE BUSY MESSAGE COUNT
- DFRC EQU 12 DEMAND FILE ATTACH RETRY COUNT
- ESTEB EQU 100B/ESTE EST ENTRIES PER BLOCK
- MAXR EQU MSMX+/COMSMTX/MUNIT MAXIMUM SYSTEM RESOURCES
- EVBL EQU MAXR*2+2 ENVIRONMENT VSN BUFFER LENGTH
- MEMI EQU 100B CM FL INCREMENT TO REQUEST
- MMSD MIN RPSL,MSMX MAXIMUM USER MS DEMAND
- MMTD EQU /COMSMTX/MUNIT MAXIMUM USER MT DEMAND
- PBFL EQU LPDS-1 LENGTH OF SYSTEM PREVIEW BUFFER
- PBMX EQU PBFL/PVEL MAXIMUM PREVIEW ENTRIES
- RPBE EQU PVEL+1 *RESEX* PREVIEW ENTRY LENGTH
- RPBL EQU PBMX*RPBE+1 LENGTH OF *RESEX* PREVIEW BUFFER
- MRMX EQU 40B MAXIUM NUMBER OF ACS TAPE MOUNT REQUESTS
- RMBE EQU 2 *RESEX* MOUNT REQUEST ENTRY LENGTH
- RMBL EQU 1+/COMSMTX/MXRM*RMBE+1 LENGTH OF MOUNT REQUEST BUFFER
- RDTL EQU MMSD*2+MMTD*2 RESOURCES DEMANDED TABLE LENGTH
- RETL EQU MAXR+1 RESOURCE EQUIPMENT TABLE LENGTH
- TDDSL EQU 8+1 TABLE OF CHAINED EQUIPMENTS LENGTH
- ****
- TITLE CONSTANTS AND TEMPORARIES.
- ** FETS.
- ORG 120B
- FETS BSS 0 FILE ENVIRONMENT TABLES
- F BSS 0 REQUESTED FILE
- FILE FILEB BUF,BUFL,(FET=20B)
- ORG F
- CON 1 CLEAR REQUESTED FILE NAME
- ORG F+20B
- T BSS 0 TFM ASSIGNMENT FET
- TFM FILEB 0,0,(FET=20B),EPR
- ORG T+5
- VFD 42/0,18/EMSG ERROR MESSAGE ADDRESS
- ORG T+20B
- VF BSS 0 VSN ENTRY FILE
- VFILE FILEB BUF,BUFL,(FET=14)
- INTD CON 0 DEMAND FILE INTERLOCK
- D BSS 0 RESOURCE DEMAND FILE
- RSXD RFILEB DBUF,IOBL,(FET=14)
- ORG D+/COMSPFM/CFPW
- CON CFAA SET PF ERROR MESSAGE ADDRESS
- ORG D+14
- INTV CON 0 VSN FILE INTERLOCK
- V BSS 0 VSNFILE
- RSXV RFILEB VBUF,IOBL,(FET=14)
- ORG V+/COMSPFM/CFPW
- CON CFAA SET PF ERROR MESSAGE ADDRESS
- ORG V+14
- INTR CON 1 REQUEST FILE INTERLOCK (ZERO IF ATTACHED)
- R BSS 0 STAGE REQUEST FILE
- STRQ FILEB RBUF,IOBL,(FET=/COMSPFM/CFLM),EPR
- ORG R+/COMSPFM/CFPW
- CON CFAA SET PF ERROR MESSAGE ADDRESS
- ORG R+/COMSPFM/CFLM
- S1 BSS 0 SCRATCH 1
- RESEXS1 FILEB SBUF1,IOBL
- S2 BSS 0 SCRATCH 2
- RESEXS2 FILEB SBUF2,IOBL
- SSJ SPACE 4,10
- ** SPECIAL SYSTEM JOB PARAMETERS.
- SSJ= BSS 0 SSJ= PARAMETER BLOCK
- VFD 12/0,24/-0,12/RXCS,12/IRSI
- CON /COMSPFM/SYUI SET SYSTEM USER INDEX
- BSSZ /COMSSSJ/SSJL-2 LENGTH OF SSJ= PARAMETERS
- CPA SPACE 4,10
- ** CONTROL POINT AREA INFORMATION.
- QUAL CPA
- CPA BSS 0
- JCIW CON //JCIW JOB CONTROL INFORMATION
- PFCW CON //PFCW PERMANENT FILE CONTROL WORD
- PKNW CON //PKNW DEFAULT PACKNAME
- RFCW CON //RFCW DEMAND FILE RANDOM INDEX
- TFSW CON //TFSW JOB EJT ORDINAL
- SPCW CON //SPCW SYSTEM PROCESSOR CALL WORD
- CPAL EQU *-CPA
- QUAL *
- LWC SPACE 4,10
- ** LOW CORE INFORMATION.
- QUAL LWC
- EJTP VFD 1/1,59/0 EJT POINTER
- ESTP VFD 1/1,59/0 EST POINTER
- IPRL VFD 1/1,59/0 INSTALLATION PARAMETERS
- PFNL VFD 1/1,59/0 PERMANENT FILE CONTROL WORD
- QUAL *
- ARG= SPACE 4,10
- ** SPECIAL ENTRY POINTS.
- ARG= BSS 0 SUPPRESS ARGUMENT PROCESSING
- DMP= EQU 100000B SELECT NO DMP IF COMMAND CALL
- SDM= EQU 0 SECURE DAYFILE MESSAGE
- TEMP SPACE 4,10
- ** GLOBAL DATA.
- AA CON -1 AUTOMATIC TAPE ASSIGNMENT FLAG
- * AA = -1, IF AUTOMATIC VSN ASSIGNMENT OF TAPE.
- * AA = 0, IF OPERATOR ASSIGNMENT OF TAPE (NO VSN).
- * AA = 1, IF *ASSIGN* WITH EST ORDINAL SPECIFIED.
- AL CON 0 ACCESS LEVEL PERMISSION
- AU CON 0 ADDRESS OF UDT OF ASSIGNED VSN
- AV CON 0 ASSIGNED VSN POINTER
- CF CON 0 CALL FLAG
- CI CON 0 CHECKPOINT ID
- DFDI CON 0 DEFAULT DEMAND INDICATOR
- DFPT CON /COMSPFM/DFPT DEFAULT REMOVABLE PACK TYPE
- * (THE ACTUAL VALUE OF *DFPT* IS READ FROM *PFNL*)
- EF CON 0 END-OF-FILE FLAG
- EMSG BSS /TFM/MBML ERROR MESSAGE BUFFER
- EQ CON 0 MAGNETIC TAPE EQUIPMENT
- EVSN CON 0 EXTERNAL VSN
- FAMO CON 0 FAMILY ORDINAL
- FS CON -1 FILE STATUS
- IVSN CON 0 INTERNAL VSN
- JEEO CON 0 JOB EJT ENTRY ORDINAL
- JALA CON 0 JOB ACCESS LEVEL
- JCWA CON 0 JOB CONTROL WORD
- JSN CON 0 JOB SEQUENCE NAME
- MF CON 0 MULTI-FILE POSITIONING
- MIDI CON 0 *MAGNET* IDLEDOWN INDICATOR
- OO CON 0 OPEN OPTION
- OT CON 0 JOB ORIGIN TYPE
- OV CON 0 TAPE BLOCK OVERFLOW CHUNK COUNT
- PVDC CON 0 PREVIEW DISPLAY CLEAN-UP FLAG
- PVST CON 0 PACKED VSN OF STAGING TAPE
- RE CON 0 ROLLOUT EVENT
- RETE CON 0 RET/EVSB ENDING EQUIPMENT INDEX
- RETI CON 0 RET/EVSB MT BEGINNING INDEX
- RM CON 0 ROLLOUT MESSAGE ADDRESS
- RMN CON 0 RESOURCE TYPE MNEMONIC
- RT CON 0 REQUEST TYPE
- SS CON 0 SUB-SYSTEM COMMUNICATION STATUS WORD
- SSMA CON 0 SYSTEM SECURITY MODE
- TA CON 0 *MAGNET* TAPE ASSIGNED FLAG
- TB CON 0 TAPE BLOCK DEFINITION
- TPAL CON 0 TAPE ACCESS LEVELS
- TS CON 0 SYMBOLIC *TMS* TAPE FLAG (IF NEGATIVE)
- UCRI CON 0 INTERRUPT REQUIRES FILE UPDATE/CLEAN-UP
- VA CON 0 VSN RANDOM ADDRESS
- VC CON 0 VSN FROM *VSN* COMMAND FLAG
- SPACE 4,10
- ** TTDV - TABLE OF TAPE DEVICE TYPES.
- *
- * ENTRIES ARE IN ORDER OF *COMSMTX* TAPE DEVICE CODES.
- *
- * 42/RT,6/0,12/DM
- *
- * RT = *COMSRSX* RESOURCE TYPE.
- * DM = DEVICE MNEMONIC.
- *
- * TABLE IS TERMINATED WITH A ZERO WORD.
- TTDV IVFD
- IVFD /COMSMTX/DVMT,(42/RMTP,18/2RMT)
- IVFD /COMSMTX/DVCT,(42/RCTP,18/2RCT)
- IVFD /COMSMTX/DVNT,(42/RNTP,18/2RNT)
- IVFD /COMSMTX/DVAT,(42/RATP,18/2RAT)
- IVFD /COMSMTX/DVMX,(60/0) TABLE TERMINATOR
- IVFD /COMSMTX/DVMX+1
- TTFM SPACE 4,10
- ** TTFM - TABLE OF TAPE FORMAT CHARACTERISTICS.
- *
- * ENTRIES ARE IN ORDER OF *COMSMTX* TAPE FORMAT DEFINITIONS.
- *
- * 1/I,1/B,10/0,12/ WC, 12/ OV,6/ N7,6/ N9,12/0
- *
- * I INTERNAL FORMAT.
- * B COMPUTE BLOCK SIZE FROM FRAME COUNT.
- * WC BLOCK WORD COUNT.
- * OV LONG BLOCK OVERFLOW IN CHUNKS.
- * N7 DEFAULT 7 TRACK NOISE BLOCK DEFINITION.
- * N9 DEFAULT 9 TRACK NOISE BLOCK DEFINITION.
- TTFM BSS 0 START OF TABLE
- VFD 1/1,1/0,10/0,12/1000B,12/0,6/4,6/4,12/0 *I*
- VFD 1/1,1/0,10/0,12/1000B,12/0,6/4,6/4,12/0 *SI*
- VFD 1/0,1/1,10/0,12/0,12/0,6/11B,6/14B,12/0 *F*
- VFD 1/0,1/0,10/0,12/0,12/0,6/11B,6/14B,12/0 *S*
- VFD 1/0,1/0,10/0,12/0,12/0,6/11B,6/14B,12/0 *L*
- VFD 1/1,1/0,10/0,12/400B,12/12B,6/0,6/0,12/0 *LI*
- SPACE 4,10
- ** SCRATCH VSN EQUIVALENCES.
- BLANK VFD 36/6H ,24/0
- SCRATCH VFD 60/0LSCRATCH
- ZERO VFD 60/0L0
- RSX SPACE 4,10
- ** RESOURCE FILE IDENTIFIER TABLES.
- LIST D,E,G
- TRSL HERE *COMSRSX* TABLE OF RESOURCE LISTS
- TRID HERE *COMSRSX* TAPE/PACK RESOURCE ENTRIES
- LIST *
- EVENTS SPACE 4,10
- ** EVENT SKELETONS AND ROLLOUT MESSAGE ADDRESSES.
- MSUB VFD 30/0,18//EVENT/MTXE,12//TIMES/SUBM
- CON =C*WAITING FOR MAGNET.*
- PEMV VFD 30/0,18//EVENT/VSNE,12//TIMES/RPMS
- VFD 60/-WPKM
- PEOV VFD 30/0,18//EVENT/OVRE,12//TIMES/RPOV
- CON =C*WAITING FOR RESOURCES.*
- PFRE CON 0 PF FILE ROLLOUT (USE EVENT IN CPA *UPCW*)
- CON =C*WAITING FOR RESOURCE FILE.*
- TEMV VFD 30/0,18//EVENT/VSNE,12//TIMES/MTMS
- VFD 60/-WTPM
- TEOV VFD 30/0,18//EVENT/OVRE,12//TIMES/MTOV
- CON =C*WAITING FOR RESOURCES.*
- TLIM VFD 30/0,18/0,12//TIMES/RFTL
- CON =C*WAITING ON TRACK LIMIT.*
- WSTG VFD 30/0,18//EVENT/VSNE+7777B,12//TIMES/MTMS
- CON =C*WAITING FOR STAGING TAPE.*
- SPACE 4,10
- WTPB BSSZ 4 WAITING FOR TAPE/PACK MESSAGE BUFFER
- WPKM DATA C*WAITING FOR PN=+++++++, ---.*
- WTPM DATA C*WAITING FOR VSN=+++++++, --.*
- TMPF SPACE 4,10
- ** TAPE MANAGER PROCESSING FLAGS.
- TMPF BSS 0 TAPE MANAGER PROCESSING FLAGS
- VFD 1/1 59 - SET IF *TMS* DISABLED
- VFD 1/0 58 - SET IF *TMS* CONTROLLED REQUEST
- VFD 1/0 57 - SET IF SCRATCH TAPE ASSIGNMENT
- VFD 1/0 56 - SET IF OPERATOR VERIFY REQUIRED
- VFD 1/0 55 - SET IF RESERVE ASSIGNED SCRATCH
- VFD 1/0 54 - SET IF SYMBOLIC ACCESS
- VFD 1/0 53 - SET IF DEFAULT *TO=T*
- VFD 1/0 52 - SET IF USER OWNED TAPE
- VFD 1/0 51 - SET IF DEFAULT *TO=C*
- VFD 1/0 50 - SET IF OFFSITE TAPE
- VFD 1/0 49 - UNUSED
- VFD 1/0 48 - UNUSED
- VFD 48/0 47 TO 0 - UNUSED
- TITLE OVERVIEW DOCUMENTATION.
- *** OVERCOMMITMENT ALGORITHM DESCRIPTION.
- *
- * THE PURPOSE OF THIS DOCUMENTATION IS TO OVERVIEW HOW THE
- * EXERCISING OF THE OVERCOMMITMENT ALGORITHM IS PERFORMED.
- *
- * 9-TRACK MAGNETIC TAPE *RESOURC* IDENTIFICATION BY DENSITY
- * (*HD* = 800 BPI, *PE* = 1600 BPI, *GE* = 6250 BPI) CANNOT
- * BE SPECIFIED CONCURRENTLY IN THE SAME JOB WITH THE *NT*
- * *RESOURC* IDENTIFIER. IN THE OVERCOMMITMENT ALGORITHM,
- * UNSATISFIED *NT* DEMANDS ARE LOGICALLY SATISFIED ONLY BY
- * 800/1600 BPI DRIVES. HOWEVER, AT REQUEST TIME, IF THE
- * DESIRED 1600 BPI TAPE FOR AN *NT* DEMAND IS FOUND MOUNTED
- * ON A 1600/6250 BPI DRIVE, THE ASSIGNMENT WILL BE ALLOWED
- * IF IT DOES NOT CAUSE OVERCOMMITMENT.
- *
- * *BRE* BUILDS RESOURCE EQUIPMENT TABLE (RET) AND ENVIRONMENT
- * VSN TABLE (EVSB) FROM THE MASS STORAGE TABLES (MST),
- * *MAGNET* UNIT DESCRIPTOR TABLES (UDT) AND EQUIPMENT
- * STATUS TABLE (EST).
- *
- * *BSF* BUILDS SCRATCH FILE OF THE DEMAND FILE ENTRIES FOR
- * ALL JOBS WITH ASSIGNED RESOURCES, EXCEPT REQUESTOR.
- * BY THE RESOURCE EQUIPMENT DEFINED IN THE ENVIRONMENT.
- *
- * *CFU* REQUESTED VSN/PACKNAME IF FOUND IN EVSB IS ASSIGNED
- * TO THE REQUESTOR. IF REMOVABLE PACK, A SHARE TABLE
- * ENTRY IS BUILT. IF REQUEST IS FOR A TAPE VSN AND
- * DUPLICATE VSNS HAVE BEEN DECLARED, THEY WILL BE
- * CHECKED IF THE ORIGINAL VSN IS NOT FOUND IN EVSB.
- * IF THE REQUESTED VSN/PACKNAME IS NOT FOUND IN THE
- * EVSB, A PSUEDO EVSB ENTRY IS MADE IF THE RET
- * CONTAINS A FREE DEVICE OF THE REQUESTED TYPE.
- * (SO THAT IF OVERCOMMITMENT IS LATER DETECTED, THE
- * PREVIEW DATA WILL BE CLEARED AND THE JOB WILL ROLL
- * OUT WITH OVERCOMMITMENT STATUS RATHER THAN MISSING
- * VSN.) FOR 9-TRACK *PE* REQUESTS FOR A *SCRATCH*
- * TAPE OR FOR A VSN NOT FOUND IN THE ENVIRONMENT,
- * *CFU* WILL GUARENTEE THAT THE SELECTED DRIVE WILL
- * NOT CAUSE INTERNAL CONFLICT FOR THE JOB.
- *
- * *CIC* SETS ASSIGNED STATUS ONLY ON THOSE TAPE EQUIPMENTS
- * IN THE ENVIRONMENT CURRENTLY ASSIGNED TO THE
- * REQUESTOR AND DETERMINES THE SATISFIABILITY OF THE
- * REQUESTOR,S REMAINING DEMANDS. IF THESE DEMANDS
- * CANNOT BE SATISFIED, BUT *DEI* HAS SHOWN THAT THE
- * ENVIRONMENT CAN SATISFY THE REQUESTOR,S TOTAL
- * DEMANDS WHEN NONE ARE CURRENTLY ASSIGNED, THE JOB
- * IS IN A STATE OF DEADLOCKING ITSELF. THIS CAN OCCUR
- * WHEN THE CURRENT REQUEST IS FOR A 9-TRACK *PE* TAPE
- * THAT IS FOUND MOUNTED ON THE WRONG DRIVE TYPE, SUCH
- * THAT THE REMAINING *HD* OR *GE* DEMANDS CANNOT BE
- * SATISFIED. IN THIS CASE, THE ASSIGNMENT IS
- * REJECTED AND THE OPERATOR IS INFORMED OF THE
- * CONFLICT, SO THE TAPE CAN BE MOUNTED ON THE CORRECT
- * DRIVE TYPE. INTERNAL CONFLICT CAN ALSO OCCUR WHEN A
- * 9-TRACK *PE* TAPE IS CURRENTLY ASSIGNED TO THE JOB
- * AND AN INCREASE IN *HD* OR *GE* RESOURCE
- * REQUIREMENTS IS SPECIFIED (RECIEVES *NT DRIVE
- * CONFLICT.* ERROR).
- *
- * *CRC* DETERMINE IF REQUESTOR COMPLETES (SATISFIES ALL
- * DEMANDS) WITH THE ASSIGNMENT OF THIS RESOURCE.
- * IF SO, THERE IS NO NEED TO EXERCISE THE
- * OVERCOMMITMENT ALGORITHM.
- *
- * *CRQ* VALIDATES OPERATOR ASSIGNED EQUIPMENT, READS
- * REQUESTOR DEMAND FILE ENTRY INTO RESB BUFFER, AND
- * BUILD PREVIEW DATA FOR THIS REQUEST.
- *
- * *DDS* DETERMINES THE SATISFIABILITY OF THE RESOURCE DEMANDS.
- *
- * *DEI* DETERMINES IF RESOURCE DEMANDS ARE SATISFIABLE
- *
- * *OCA* OVERCOMMITMENT ALGORITHM IS EXERCISED. *DDS* IS USED
- * TO SATISFY ALL DEMANDS WHICH HAVE NOT BEEN MET.
- * IF ANY JOB DOES NOT COMPLETE, THEN A DEADLOCK HAS
- * OCCURRED AND THE ASSIGNMENT WILL BE PROHIBITED.
- *
- *
- *
- *
- * PP ROUTINES *0RF* AND *0RT*.
- * *0RT* CLEARS THE ASSOCIATED VSN FILE ENTRY AND UPDATES
- * THE JOB DEMAND FILE ENTRY WHEN A TAPE RESOURCE IS
- * RETURNED. *0RF* CLEARS THE SHARE TABLE ENTRY AND UPDATES
- * THE DEMAND AND ASSIGNED COUNTS IN THE JOB DEMAND FILE
- * ENTRY WHEN A REMOVABLE PACK RESOURCE IS RETURNED.
- * WHEN A TAPE FILE IS RETURNED OR WHEN THE LAST DIRECT ACCESS
- * FILE FOR THE JOB ON A REMOVABLE PACK IS RETURNED, BOTH THE
- * TOTAL ASSIGNED COUNT AND THIS RESOURCE ASSIGNED COUNT ARE
- * DECREMENTED BY ONE. IF TOTAL RESOURCE DEMANDS HAVE BEEN
- * SATISFIED, BOTH THE TOTAL DEMAND COUNT AND THE RESOURCE
- * DEMAND COUNT ARE DECREMENTED BY ONE, UNLESS *UNLOAD* WAS
- * USED TO RELEASE THE FILE.
- * *0RF* IS ALSO USED TO CLEAR THE JOB DEMAND FILE ENTRY AT
- * JOB COMPLETION.
- SPACE 4,10
- *** ENVIRONMENT TABLES AND BUFFERS.
- *
- *
- * RESOURCE EQUIPMENT TABLE CONSISTS OF A COMBINATION OF DATA
- * COLLECTED FROM THE EST, MST AND UDT TABLES.
- * EACH *RET* ENTRY IS ONE WORD IN LENGTH AND HAS THE FORMAT -
- *
- * RET 1/A, 11/DM, 6/CH1, 6/CH2, 12/NE, 12/EO, 3/CS, 3/OS, 6/FLAGS
- *
- * DT DEVICE MNEMONIC IF FLAG *A* IS NOT SET, OTHERWISE DT
- * IS AN INDEX INTO *TRSL* TABLE. EACH *TRSL* ENTRY IS A
- * LIST OF EQUIVALENT RESOURCE TYPES.
- * CH1 CHANNEL 1 FOR DISK, ACCESS LEVELS FOR TAPES
- * 3/LA, 3/UA
- * LA = LOWER ACCESS LEVEL, FOR TAPE ONLY
- * UA = UPPER ACCESS LEVEL, FOR TAPE ONLY
- * CH2 CHANNEL 2 FOR DISKS
- * NE NEXT EQUIPMENT NUMBER
- * EO EST ORDINAL
- * CS CURRENT SPINDLES
- * OS ORIGINAL SPINDLES
- * FLAGS 2/0, 1/LDAM, 1/EOC, 1/EO, 1/A
- * LDAM = LDAM EQUIPMENT
- * EOC = END OF CHAIN
- * EO = EQUIPMENT *OFF* OR *DOWN*
- * A = ASSIGNED
- *
- *
- * ENVIRONMENT VSN BUFFER CONSISTS OF DATA WHICH RELATES TO THE
- * USAGE OF MOUNTED MAGNETIC TAPES AND REMOVABLE PACKS.
- * EACH *EVSB* ENTRY, CORRESPONDING IN POSITION TO ITS
- * *RET* ENTRY, IS TWO WORDS IN LENGTH AND HAS THE FORMAT -
- *
- * EVSB 42/VSN OR PACKNAME, 6/LA, 6/UA, 6/RI
- * 12/EQ, 12/SHARERS, 6/FLAGS, 18/UDT,MST ADDRESS, 12/EJTO
- *
- * NOTE - FOR ACS TAPES *VSN* IS THE EXTERNAL VSN.
- *
- * LA LOWER ACCESS LEVEL
- * 6/0 FOR PACKS
- * 3/0, 3/LOWER ACCESS LEVEL FOR TAPES
- * UA UPPER ACCESS LEVEL
- * 6/UNIT COUNT FOR PACKS
- * 3/UPPER ACCESS LEVEL, 3/BYTE POINTER FOR TAPES
- * RI DEMAND FILE RESOURCE INDEX
- * FLAGS 1/A, 1/S, 1/U, 1/D, 1/P, 1/
- * A = ASSIGNED
- * S = SCRATCH VSN
- * U = UNLOADED PACK WITH USER COUNT
- * D = DEFAULT VSN
- * P = DEVICE SUSPECT FLAG
- * EJTO EJT ORDINAL OF ASSIGNED JOB.
- *
- *
- * RESOURCES DEMANDED TABLE CONSISTS OF A TWO WORD ENTRY FOR
- * EACH RESOURCE WHICH IS YET TO BE SATISFIED. THE FORMAT IS-
- *
- * RDT 12/RESOURCE TYPE, 6/UNIT COUNT, 6/AL, 9/E1, 9/E2, 9/E3, 9/E4,
- * 12/OE, 12/0, 9/E5, 9/E6, 9/E7, 9/E8
- * OE, E1 - E8 = *RET* ENTRY INDEX FOR EQUIPMENT
- * AL = ACCESS LEVEL, TAPES ONLY
- *
- *
- * RESOURCE TYPE NAMES ARE FOUND IN *RSXB*.
- SPACE 4,30
- *** RESOURCE REQUEST BLOCK.
- *
- * THE USER RESOURCE REQUEST BLOCK IS A COMMON REQUESTING
- * MECHANISM OF THE OVERCOMMITMENT ALGORITHM FOR BOTH TAPES AND
- * PACKS. THE USER RESOURCE REQUEST BLOCK CONSISTS OF THE JOB
- * DEMAND FILE ENTRY IN THE REQUEST DEMAND ENTRY BUFFER (RESB)
- * AND REQUEST IDENTIFICATION INFORMATION. THIS INFORMATION
- * CONSISTS OF A REQUEST WORD (RQ) HAVING FORMAT--
- *
- *T PACK 42/ PACKNAME,12/ RTYPE,6/UNITS
- * WHERE UNITS = UNIT COUNT (1-8) IN DISPLAY CODE
- * RTYPE = RESOURCE TYPE IN DISPLAY CODE
- *T TAPE 36/ VSN,6/0,12/ RTYPE,6/0
- *
- * THE REQUESTED RESOURCE INDEX (RI) HAVING FORMAT-
- *
- *T 51/0, 3/UC, 6/ RI
- * WHERE RI = DEMAND FILE RESOURCE INDEX
- * UC = UNIT COUNT FOR PACKS, BYTE POINTER FOR TAPES
- *
- * FOR 9-TRACK TAPE ASSIGNMENTS, *DD* HAS FOLLOWING FORMAT-
- *
- *T 48/ 0, 12/ DC
- * WHERE DC = DISPLAY CODE FOR 9-TRACK RESOURCE DENSITY
- *
- * FOR 9-TRACK TAPE ASSIGNMENTS, *OI* HAS FOLLOWING FORMAT-
- *
- *T 54/ 0, 6/ DI
- * WHERE DI = ORIGINAL 9-TRACK TAPE DENSITY RESOURCE INDEX
- RQ CON 0 REQUEST
- RI CON 0 REQUESTED RESOURCE INDEX
- TM CON 0 TIME OF REQUEST (ABSOLUTE SECONDS)
- OI CON 0 ORIGINAL NT TAPE DENSITY RESOURCE INDEX
- TITLE OVERCOMMITMENT ALGORITHM.
- COM SPACE 4,25
- ** COM - CHECK FOR OVERCOMMITMENT.
- *
- * ENTRY USER RESOURCE REQUEST BLOCK BUILT.
- * VSNE = VSN ENTRY FOR TAPES.
- * AT *COM4* IF ASSIGNMENT REJECTED DUE TO
- * *MAGNET* IDLEDOWN.
- * AT *COM5*, IF RE-REQUEST OPERATOR ASSIGNMENT OF
- * EQUIPMENT.
- * AT *COM6*, IF REQUEST OPERATOR SELECTION FOR
- * DUPLICATE VSN.
- *
- * EXIT (X2) = STATUS.
- *
- * ERROR TO *PER* IF NT DRIVE CONFLICT.
- *
- * USES A - 1, 2, 3, 4, 6.
- * B - 2, 3, 5.
- * X - ALL.
- *
- * CALLS BRE, BSF, CFU, CIC, CRC, CRQ, DEI, IRC, OCA, PMM, ROA,
- * SDT, SPM.
- *
- * MACROS MESSAGE, RETRF.
- COM SUBR ENTRY/EXIT
- COM1 RJ BRE BUILD RESOURCE ENVIRONMENT
- NG X0,COM4 IF SUBSYSTEM MISSING
- RJ CRQ CHECK REQUEST
- RJ DEI DEMAND EXCEEDS INSTALLATION CHECK
- RJ BSF BUILD SCRATCH FILE
- RJ CFU CHECK FOR UNIT
- SA1 TPAL TAPE ACCESS LEVEL
- SX6 ALC ACCESS LEVEL CONFLICT ERROR
- NG X1,COM8.1 IF ACCESS LEVEL CONFLICT
- RJ CIC CHECK FOR INTERNAL CONFLICT
- NZ X2,COM8 IF DEMANDS NOT SATISFIABLE
- SB2 RESB
- RJ CRC CHECK REQUESTOR COMPLETE
- ZR X5,COM2 IF REQUESTOR COMPLETES
- RJ OCA EXERCISE OVERCOMMITMENT ALGORITHM
- SX2 /STATUS/OV
- ZR X5,COM3 IF OVERCOMMITMENT
- COM2 SX2 /STATUS/OK
- COM3 SA1 AV CHECK IF VSN IN ENVIRONMENT
- NZ X1,COMX IF VSN PRESENT
- SX2 X2+/STATUS/MV SET MISSING VSN
- EQ COMX RETURN
- ** PROCESS SUBSYSTEM MISSING.
- COM4 RJ PMM PROCESS *MAGNET* MISSING
- SA1 AA
- BX6 X6-X6
- SB2 X1
- GT B2,COM4.1 IF *ASSIGN* WITH EST ORDINAL SPECIFIED
- SA6 EQ CLEAR EQUIPMENT ASSIGNMENT
- NG B2,COM1 IF AUTOMATIC ASSIGNMENT
- COM4.1 SA1 RQ CLEAR VSN
- MX6 -24
- BX6 -X6*X1
- SA6 A1
- EQ COM1 RETRY OVERCOMMITMENT CHECK
- * REQUEST OPERATOR ASSIGNMENT OF EQUIPMENT.
- COM5 SA1 RQ CLEAR VSN IN REQUEST
- MX6 -24
- BX6 -X6*X1
- SX4 B0 INDICATE OPERATOR ASSIGNMENT OF EQUIPMENT
- SA6 A1
- EQ COM7 RE-REQUEST OPERATOR ASSIGNMENT
- * REQUEST OPERATOR ASSIGNMENT ON DUPLICATE VSN OR VERIFY OF
- * NON-TMS TAPE REQUEST.
- COM6 SX4 B1+ INDICATE DUPLICATE VSN
- COM7 RETRF D RETURN DEMAND FILE AND RELEASE INTERLOCK
- RJ ROA RE-REQUEST OPERATOR ASSIGNMENT
- EQ COM1 RETRY OVERCOMMITMENT CHECK
- ** PROCESS INTERNAL CONFLICT.
- * VSN FOUND MOUNTED ON WRONG 9-TRACK DRIVE TYPE.
- COM8 SA1 OI GET ORIGINAL TAPE DENSITY INDEX
- SB2 /PER/DRC * NT DRIVE CONFLICT.*
- SX1 X1-RPEP
- NZ X1,PER IF NOT *PE* REQUEST
- SA2 AV
- ZR X2,PER IF RESEX SELECTED DRIVE TYPE
- SA3 AA
- SA4 X2
- SB3 X3
- GT B3,PER IF *ASSIGN* WITH EST ORDINAL
- RJ SDT SWITCH 9-TRACK DRIVE TYPE
- SX6 DRC SET DRIVE CONFLICT
- COM8.1 RJ SPM SET PREVIEW DISPLAY MESSAGE
- SA1 EQ
- SX2 /STATUS/MV SET MISSING VSN STATUS
- ZR X1,COMX IF NO OPERATOR ASSIGNMENT
- SB5 -1 DECREMENT TOTAL AND RESOURCE ASSIGN COUNTS
- RJ IRC
- SA1 AA
- NG X1,COM6 IF DUPLICATE VSN
- EQ COM5 RE-REQUEST OPERATOR ASSIGNMENT
- TITLE OVERCOMMITMENT ALGORITHM SUBROUTINES.
- BRE SPACE 4,25
- ** BRE - BUILD RESOURCE ENVIRONMENT.
- *
- * EXIT DEMAND FILE INTERLOCKED AND RET AND EVSB
- * TABLES BUILT.
- * (X0) .LT. 0 IF *MAGNET* MISSING.
- *
- * ERROR TO *ERR2*, IF SUBSYSTEM COMMUNICATION ERROR.
- * TO *PER*, IF RESOURCE ENVIRONMENT ERROR.
- *
- * USES A - 0, 1, 2, 3, 4, 6, 7.
- * B - 2, 3, 4, 5, 6, 7.
- * X - ALL.
- *
- * CALLS CET, CTE, DLY, GRI, GRL.
- *
- * MACROS CLEAR, FATRF, RDSB, RETRF.
- BRE17 SX6 B3+ SAVE ENDING RET/EVSB INDEX
- SA6 RETE
- BRE SUBR ENTRY/EXIT
- * INTERLOCK DEMAND FILE.
- RETRF D
- BRE0 FATRF D,M
- * CLEAR ENVIRONMENT.
- CLEAR RET,RETL+EVBL CLEAR RET AND EVSB
- SB3 B1 PRESET BEGINNING RET/EVSB INDEX
- SB5 B0 PRESET EST ORDINAL
- SA0 BUF2 TAPE EST ENTRY BUFFER
- * PROCESS REMOVABLE PACKS. SAVE EST ENTRIES FOR TAPES.
- BRE0.1 SB5 B5-B1
- RJ CET COPY EST BLOCK
- NG B6,BRE9 IF END OF EST
- SX0 B5+B1 SAVE STARTING BLOCK EST ORDINAL
- SB6 X0+B6 SAVE ENDING BLOCK EST ORDINAL
- BRE1 SB5 B5+B1 ADVANCE EST ORDINAL
- EQ B5,B6,BRE0.1 IF END OF EST BLOCK
- SX1 B5 GET NEXT EST ENTRY
- R= X2,ESTE
- IX1 X1-X0
- SX3 11B
- IX1 X1*X2
- LX3 -4
- SA4 SBUF2+EQDE+X1 GET *EQDE*
- BX5 X3*X4
- ZR X4,BRE1 IF NO ENTRY
- BX6 X5-X3
- MX2 -12
- ZR X6,BRE1.2 IF REMOVABLE PACK
- BX6 X2*X4
- LX4 -12
- BX7 -X2*X4 DEVICE CODE
- RJ CTE CHECK FOR TAPE EQUIPMENT
- ZR X2,BRE1 IF NOT TAPE DEVICE
- SA1 A4+B1
- ERRNZ EQAE-EQDE-1
- SX7 B5 SAVE EST ORDINAL AND EST ENTRY
- BX6 X6+X7
- MX2 6
- LX2 17-59
- BX1 X1*X2
- LX1 12
- LX2 12
- BX6 -X2*X6 CLEAR *AL* FIELD
- BX6 X1+X6 SAVE *AL* FIELD OF EST
- SA6 A0
- SA0 A0+B1
- EQ BRE1 CONTINUE EST SCAN
- BRE1.2 BX7 -X2*X4 MST ADDRESS
- SA7 BREA SAVE MST ADDRESS
- MX6 1
- LX7 3
- SA6 BUF
- RDSB 0,MSTL,X7,A6 READ MST
- MX2 -11
- LX4 -12
- BX7 -X2*X4 DEVICE TYPE
- MX2 -3
- SA3 BUF+DDLL NUMBER OF UNITS
- LX3 12
- BX5 -X2*X3
- LX7 6
- SX2 X5+1R1
- BX1 X7+X2
- LX1 42
- AX7 6
- RJ GRI GET RESOURCE INDEX
- ZR B2,BRE16 IF NO MATCH
- SA2 BREB MASK FOR FULL TRACK CONTROLLER
- LX4 12
- BX1 X4-X2
- SB7 X6
- BX6 X2*X1
- SA1 BUF+DILL
- LX1 59-22
- NG X1,BRE2 IF BUFFERED DEVICE
- ZR X6,BRE2 IF NOT CONNECTED TO FULL TRACK CONTROLLER
- SB4 TRSLL1
- RJ GRL GET INDEX OF RESOURCE LIST
- NG B4,BRE2 IF RESOURCE NOT FOUND
- SX7 B4+4000B SET RESOURCE LIST INDICATOR AND FLAG
- BRE2 SA3 BUF+DDLL
- SA1 BUF+PFGL
- MX2 6
- LX4 59-41
- BX2 X2*X4
- BX7 X7+X2 CHANNEL 1
- LX4 59-29-59+41
- MX2 6
- BX2 X2*X4
- LX2 -6
- BX7 X7+X2 CHANNEL 2
- LX7 0-9-12
- BX7 X7+X5
- MX2 -3
- LX3 -51
- BX5 -X2*X1 NUMBER OF MULTI-UNITS
- LX7 3
- BX6 -X2*X3 ORIGINAL NUMBER OF UNITS
- LX1 -3
- SA3 BUF+STLL
- BX7 X7+X6
- LX3 -3
- BX1 -X2*X1 RELATIVE UNIT NUMBER
- MX2 -9
- BX6 -X2*X3 NEXT EQUIPMENT
- LX4 59-54-59+29
- SX2 B5 EST ORDINAL
- LX6 12
- BX6 X6+X2
- LX6 12
- MX2 -1
- BX1 X1-X5
- LX7 6
- BX2 -X2*X4 LDAM STATUS
- BX7 X7+X6
- LX2 3
- BX7 X7+X2
- SX6 4
- BX5 X4
- NZ X1,BRE3 IF NOT END OF CHAIN
- BX7 X6+X7
- BRE3 LX3 -12+3 GET USER COUNT
- MX2 -12
- LX5 54-59+1-49
- SX6 B1+B1
- BX2 -X2*X3
- BX1 X6*X5 SAVE *OFF*/*DOWN* FLAG
- BX7 X7+X1
- BX5 -X5*X6 GET *OFF*/*DOWN* FLAG
- SA7 RET+B3 ENTER RESOURCE EQUIPMENT TABLE
- SX6 B3-RETL
- ZR X6,BRE16 IF TABLE OVERFLOW
- SB3 B3+B1
- BX1 X2+X5
- ZR X1,BRE1 IF DEVICE *OFF*/*DOWN* WITH NO USER COUNT
- SA1 BUF+MDGL CHECK FOR FAMILY DEVICE
- NG X4,BRE1 IF DEVICE UNAVAILABLE
- LX1 59-58
- MX6 1
- PL X1,BRE1 IF FAMILY DEVICE
- SA4 BUF+PFGL
- LX3 59-51+12
- SX7 B5
- ZR X5,BRE4 IF DEVICE *OFF*/*DOWN* WITH USER COUNT
- PL X3,BRE5 IF PACK NOT UNLOADED
- ZR X2,BRE1 IF NO USER COUNT
- BRE4 LX6 33-59+12 SET UNLOAD FLAG
- BX7 X7+X6
- BRE5 SA1 BUF+DALL
- LX1 59-55
- MX6 1
- BX6 X6*X1 GET SUSPECT STATUS
- LX6 31-59+12
- BX7 X6+X7 SET SUSPECT FLAG
- MX1 42
- BX4 X1*X4 PACKNAME
- SA1 BREA MST ADDRESS
- SX5 B7 UNIT COUNT
- LX7 -24
- BX6 X5+X4 PACKNAME/INDEX
- BX7 X7+X1
- LX7 12
- SB2 B3+B3
- SA6 EVSB-2+B2 ENTER EVSB WORD 1
- SA7 A6+B1 ENTER EVSB WORD 2
- ZR X2,BRE1 IF NO USERS
- MX5 1
- LX5 35-59
- BX7 X7+X5
- SA7 A7
- EQ BRE1 PROCESS NEXT EQUIPMENT
- * READ UDT,S FROM MAGNET.
- BRE7 SA4 SBUF2+/COMSMTX/UBUF INITIALIZE POINTERS TO READ UDT-S
- SB2 -100B
- ZR X4,BRE17 IF UDT POINTER ZERO
- SX6 X4
- AX4 24
- SA6 BREA
- SX7 B2+SBUF2
- SA7 A6+1
- SX7 X6+B2
- SA7 A7+B1
- SX7 X4+B1
- SA7 A7+B1
- SA1 SBUF2 SET *MAGNET* IDLEDOWN INDICATOR
- BX6 X1
- LX6 59-15
- SA6 MIDI
- EQ BRE11 READ UDT,S
- BRE8 RETRF D RETURN DEMAND FILE
- RJ DLY WAIT FOR *MAGNET* EXTERNAL CALLS
- EQ BRE0 RETRY BUILD OF ENVIRONMENT
- BRE9 SX6 B3 SAVE RET/EVSB TAPE INDEX
- BX7 X7-X7 READ FROM *MAGNET* RA+0
- SA6 RETI
- SX6 SBUF2 SET UP TO READ UDT POINTER WORD
- SA7 A0 SET END OF TAPE EST ENTRIES
- MX0 1 PRESET *MAGNET* MISSING FLAG
- SX5 /COMSMTX/UBUF+1 SET WORD COUNT
- SA7 BREA
- BRE10 RDSB MTSI,X5,X7,X6,X READ UDT WORD
- SA2 SS READ STATUS WORD
- NG X2,BRE11 IF TRANSFER COMPLETE
- LX2 1
- PL X2,ERR2 IF SYSTEM COMMUNICATION ERROR
- EQ BREX RETURN WITH *MAGNET* MISSING STATUS
- BRE11 SA2 BREA
- ZR X2,BRE7 IF POINTER READ
- SA2 A2+B1
- SA3 A2+B1
- SB2 100B
- SA4 A3+B1
- SX6 X2+B2
- SX7 X3+B2
- SA6 A2
- SA7 A3
- SB7 X7+B2
- SX5 B2
- SB5 X4
- GE B5,B7,BRE10 IF MORE THAN 100 WORD BLOCKS TO TRANSFER
- SB7 /COMSMTX/UNITL
- IX5 X4-X7
- PL X5,BRE10 IF LAST SHORT BLOCK TO TRANSFER
- SB5 -B7
- * PROCESS MAGNETIC TAPES.
- BRE12 SB5 B5+B7
- SA2 B5+SBUF2
- SX0 B1 SET ENVIRONMENT BUILD COMPLETE STATUS
- NG X2,BRE17 IF ALL UDTS PROCESSED
- SA4 B5+SBUF2+/COMSMTX/UST4
- SA3 B5+SBUF2+/COMSMTX/UST1
- MX0 -2
- LX4 0-55
- LX3 59-37
- BX4 -X0*X4 TAPE DEVICE TYPE
- SA5 TTDV+X4
- SX0 X5 SET DEVICE MNEMONIC
- SX4 X4-/COMSMTX/DVNT
- AX5 18 SET RESOURCE TYPE
- NZ X4,BRE13 IF NOT *NT* DEVICE
- SX0 TRHD+4000B SET HD, PE, NT RESOURCE LIST
- SX5 RHDP
- PL X3,BRE13 IF 800/1600 NT DRIVE
- SX0 TRGE+4000B SET PE, GE RESOURCE LIST
- SX5 RGEP
- BRE13 MX2 -12
- LX3 0-24-59+37
- BX4 -X2*X3 EST ORDINAL
- LX0 -12
- SA1 BUF2-1
- BRE13.1 SA1 A1+B1
- ZR X1,BRE16 IF EST ENTRY NOT FOUND
- BX6 -X2*X1
- BX6 X6-X4
- NZ X6,BRE13.1 IF NOT CORRECT EST ENTRY
- LX2 36
- BX6 -X2*X1 EXTRACT PRIMARY CHANNEL
- LX6 59-46
- PL X6,BRE13.3 IF PRIMARY CHANNEL UP
- LX2 -12
- BX6 -X2*X1
- ZR X6,BRE13.2 IF NO SECONDARY CHANNEL
- LX6 59-34
- PL X6,BRE13.3 IF SECONDARY CHANNEL UP
- BRE13.2 BX2 X4 ALL CHANNELS DOWN
- LX2 12
- SX7 B1+B1 SET *OFF* FLAG
- BX2 X2+X7
- EQ BRE15 TREAT AS IF UNIT *OFF*
- BRE13.3 BX2 X4
- LX4 -12
- LX1 -48 POSITION DEVICE STATE
- SX7 2
- LX2 12
- BX7 X7*X1 EXTRACT *OFF*/*DOWN* STATUS
- BX2 X2+X7
- LX1 48-30 POSITION ACCESS LEVEL
- MX3 6
- BX3 X1*X3
- LX3 -12
- BX2 X2+X3 ACCESS LEVEL
- LX3 14-59-0+12
- BX5 X3+X5 SAVE ACCESS LEVEL IN *EVSB*
- SA1 B5+SBUF2+/COMSMTX/UVRI
- MX6 12
- BX1 X6*X1 ASSIGNED JOB EJT ORDINAL
- NZ X1,BRE13.4 IF UNIT ASSIGNED
- NZ X7,BRE15 IF OFF AND NOT ASSIGNED
- BRE13.4 SA3 B5+SBUF2+/COMSMTX/UVSN
- SX6 B0+ SET NO VSN
- ZR X3,BRE13.5 IF LABELS NOT READ
- LX3 59-23
- NG X3,BRE13.5 IF LABEL CHECK IN PROGRESS
- LX3 23-23-59+23
- BX6 X3 USE INTERNAL VSN
- SA3 B5+SBUF2+/COMSMTX/UST1
- LX3 59-49
- MX7 -2
- PL X3,BRE13.5 IF NOT ACS UNIT
- SA3 B5+SBUF2+/COMSMTX/UMST
- BX6 X3 USE EXTERNAL VSN
- BX7 -X7*X3 ACS UNIT MOUNT STATUS
- SX7 X7-2
- ZR X7,BRE13.5 IF UNIT MOUNTED
- SX6 B0+ SET NO VSN
- BRE13.5 LX1 12 POSITION EJT ORDINAL
- MX7 36
- BX6 X7*X6 VSN
- BX7 X6+X1
- ZR X7,BRE15 IF NO VSN AND NOT ASSIGNED
- SA3 B5+SBUF2+/COMSMTX/UVSN GET LABEL FLAGS
- BX6 X6+X5 MERGE VSN IN EVSB WORD 1
- SX5 B1
- LX5 34
- LX3 34-22
- BX7 X5*X3
- BX4 X7+X4 MERGE SCRATCH VSN BIT
- LX3 32-14-34+22
- LX5 32-34
- BX7 X5*X3
- LX5 35-32
- SA3 BREA
- BX4 X7+X4 MERGE DEFAULT VSN BIT
- BX4 X4+X1
- SX3 X3+B5 UDT ADDRESS
- SB2 B3+B3
- SA6 EVSB+B2 ENTER EVSB WORD 1
- LX3 12
- ZR X1,BRE14 IF NOT ASSIGNED
- BX4 X4+X5 MERGE ASSIGNED BIT
- BRE14 BX7 X3+X4 MERGE UDT ADDRESS
- SA7 A6+B1 ENTER EVSB WORD 2
- BRE15 BX7 X0+X2
- SA7 RET+B3 ENTER RESOURCE EQUIPMENT TABLE
- SB3 B3+B1
- SX6 B3-RETL-1
- NZ X6,BRE12 IF NO TABLE OVERFLOW
- BRE16 SB2 /PER/REV * RESOURCE ENVIRONMENT ERROR.*
- EQ PER PROCESS ERROR
- BREA CON 0 UDT/MST ADDRESS TEMPORARY
- CON 0 SBUF2 POINTER
- CON 0 UDT POINTER
- CON 0 UDT LWA+1
- BREB VFD 12/0,12/400B,12/400B,24/0 FULL TRACK CONTROLLER MASK
- BRT SPACE 4,15
- ** BRT - BUILD RESOURCE DEMAND TABLE.
- *
- * ENTRY (B2) = FWA DEMAND FILE ENTRY.
- * (B5) = 0, IF RESOURCE DEMANDS TO BE BUILT FROM
- * REMAINING DEMANDS.
- * (B5) .NE. 0, IF RESOURCE DEMANDS TO BE BUILT FROM
- * TOTAL DEMANDS.
- *
- * EXIT (B6) = FWA RESOURCES DEMANDED TABLE.
- * (B7) = LWA+1 RESOURCES DEMANDED TABLE.
- * (X5) .LT. 0, IF TOTAL ASSIGNS EXCEED TOTAL DEMAND.
- *
- * USES A - 1, 2, 6, 7.
- * B - 2, 3, 4, 6, 7.
- * X - ALL.
- BRT6 SB7 B7-B1
- PL B7,BRT1 IF MORE TAPE/PACK RESOURCES
- SB7 A6+B1 LWA+1 RESOURCES DEMANDED TABLE
- BRT SUBR ENTRY/EXIT
- SB6 RDT INITIALIZE REGISTERS
- SB7 RRPL+RMTL-2
- SA1 B6-B1
- MX0 -6
- SA2 B2+RMTP
- BX6 X1
- MX4 12
- SA6 A1
- BX6 X6-X6
- * SEARCH DEMAND FILE ENTRY FOR RESOURCE REQUESTS.
- BRT1 SA1 A2+B7 GET DEMAND TABLE ENTRY
- SX2 B7-RMTL
- BX3 X4*X1 GET RESOURCE TYPE
- SB3 RPEW TAPE ENTRIES PER RESOURCE WORD
- SB4 B3+B3 INITIALIZE ACCESS LEVEL COUNT
- SA1 A1+B1 READ SECOND WORD
- SB2 -B1
- * SEARCH DEMAND FILE WORD FOR RESOURCE REQUESTS.
- BRT2 BX5 -X0*X1 DEMAND
- LX1 -6
- NZ B5,BRT3 IF TOTAL DEMANDS TO BE USED
- BX7 -X0*X1 ASSIGNED
- IX5 X5-X7 USE REMAINING DEMANDS
- NG X5,BRTX IF TOTAL ASSIGNS EXCEED TOTAL DEMAND
- BRT3 ZR X5,BRT5 IF DEMAND SATISFIED OR NOT SPECIFIED
- SX7 B4 NUMBER OF PHYSICAL UNITS ON DEVICE
- LX7 42
- PL X2,BRT4 IF NOT A TAPE UNIT
- SX7 B4-B1
- SX7 X7+100B
- LX7 36
- * ENTER *RDT* FOR EACH RESOURCE REQUESTED
- BRT4 BX7 X7+X3
- SX5 X5+B2
- SA7 A6+B1 ENTER RESOURCE DEMAND IN RDT
- SA6 A7+B1
- BRT5 NZ X5,BRT4 IF MORE DEMANDS FOR THIS RESOURCE
- LX1 -6 POSITION TO NEXT DEMAND FOR RESOURCE TYPE
- SB4 B4-B1 NEXT UNIT COUNT
- GT B4,B3,BRT2 IF MORE RESOURCE DEMANDS IN THIS WORD
- SB3 B0
- SA1 A2+B7 READ FIRST WORD FOR PACKS
- GT B4,B3,BRT2 IF NOT END OF PACK RESOURCES
- SB7 B7-B1
- EQ BRT6 ADVANCE TO NEXT DISK/TAPE RESOURCE
- BSF SPACE 4,15
- ** BSF - BUILD SCRATCH FILE.
- *
- * ENTRY USER RESOURCE REQUEST BLOCK BUILT.
- * DEMAND FILE INTERLOCKED.
- *
- * EXIT SCRATCH FILE BUILT WITH ALL JOBS HAVING ASSIGNED
- * RESOURCES, EXCEPT REQUESTOR.
- *
- * USES A - 1, 3, 7.
- * X - 1, 3, 4, 7.
- *
- * CALLS CAU.
- *
- * MACROS READ, READW, REWIND, WRITEW.
- BSF SUBR ENTRY/EXIT
- MX7 0
- SA7 NS1 CLEAR NUMBER OF JOBS
- REWIND D
- READ X2 READ DEMAND FILE
- REWIND S1,R
- BSF1 READW D,BUF,RDEL
- NZ X1,BSFX IF EOR
- SA3 BUF+RJID GET JOB IDENTIFICATION
- ZR X3,BSF1 IF NO JOB
- SA1 RESB+RJID CHECK IF REQUESTOR
- BX1 X1-X3
- ZR X1,BSF1 IF REQUESTOR
- SX4 A3
- RJ CAU COUNT ASSIGNED UNITS
- ZR B3,BSF1 IF NO UNITS ASSIGNED
- WRITEW S1,BUF,RDEL COPY ENTRY TO SCRATCH FILE
- SA1 NS1 INCREMENT JOB COUNT
- SX7 X1+B1
- SA7 A1
- EQ BSF1 CONTINUE PROCESSING DEMAND ENTRIES
- CFU SPACE 4,25
- ** CFU - CHECK FOR UNIT.
- *
- * ENTRY ENVIRONMENT AND USER RESOURCE REQUEST BLOCK BUILT.
- * (EQ) = EST ORDINAL IF SPECIFIED.
- * RESB = REQUESTOR DEMAND ENTRY.
- * VSNE = VSN ENTRY FOR TAPES.
- *
- * EXIT (AV) = EVSB ADDRESS OF VSN MATCH.
- * (AV) = 0 IF VSN MISSING.
- * (AU) = MAGNET UDT ADDRESS IF VSN NOT MISSING.
- * UNIT ASSIGNED TO REQUESTOR.
- * TO *COMX*, IF REQUEST NOT SATISFIABLE OR DUPLICATE
- * SHARE TABLE ENTRY ALREADY PRESENT.
- * (X2) = STATUS.
- * TO *COM5* IF OPERATOR ASSIGNMENT OF EQUIPMENT
- * NEEDED AND CAN BE SATISFIED.
- * TO *COM6*, IF OPERATOR SELECTION REQUIRED FOR
- * DUPLICATE VSN.
- * TO *COM6*, IF OPERATOR VALIDATION REQUIRED FOR *TMS*
- * REQUEST.
- *
- * ERROR TO *PER*, IF ENVIRONMENT, EQUIPMENT, SHARE TABLE,
- * INCORRECT ACCESS, OR DEMAND ERROR.
- *
- * USES A - ALL.
- * B - 2, 3, 4, 5, 6, 7.
- * X - ALL.
- *
- * CALLS CBP, CIC, CRM, DDS, IAS, IRC, SDT.
- CFU SUBR ENTRY/EXIT
- CFU1 SA4 RI PRESET RESOURCE INDEX AND UNIT COUNT
- CFU2 SA2 RI CALCULATE RESOURCE BYTE POSITION
- RJ CBP
- BX7 X7-X7
- SA7 AU CLEAR VSN AND UDT POINTERS
- SA2 B2+RESB
- SA7 AV
- AX2 B4
- MX0 -6
- BX5 -X0*X2 DEMAND COUNT
- LX2 -6
- SB7 B2-RRPP REMOVABLE PACKS FLAG
- BX3 -X0*X2 ASSIGNED COUNT
- IX6 X3-X5 POSITIVE IF DEMAND REACHED OR EXCEEDED
- SX5 B7
- BX5 -X5+X6
- SA3 B0
- SB5 B0
- SA1 RQ
- PL X5,CFU24 IF DEMAND REACHED FOR TAPE EQUIPMENT
- SA5 CFUA CHECK FOR SCRATCH VSN
- BX7 X1-X5
- SA6 A5+B1 DEMAND EXCEEDED FLAG
- AX7 17
- SB2 B1+B1
- SB6 EVSB
- SA2 RETE GET ENDING RET/EVSB INDEX
- SB3 B1
- LX2 1 2 WORDS PER ENTRY IN EVSB
- SB4 EVSB+X2
- NZ X7,CFU3 IF NOT SCRATCH REQUEST
- SA2 EQ
- NZ X2,CFU3 IF EST ORDINAL SPECIFIED
- SB3 B0
- EQ CFU4 SEARCH FOR SCRATCH VSN
- * SEARCH ENVIRONMENT FOR CORRECT VSN AND NO DUPLICATE VSN,S.
- CFU3 NZ B5,COM6 IF DUPLICATE VSN FOUND
- SB5 A3+ INDICATE VSN FOUND
- ZR B3,CFU6 IF SCRATCH REQUEST
- CFU4 EQ B6,B4,CFU6 IF END OF EVSB
- SA3 B6
- SB6 B6+B2
- ZR X3,CFU4 IF EMPTY ENTRY
- SA2 A3+B1
- BX5 X1-X3
- LX2 59-34
- AX5 18
- ZR X5,CFU5 IF MATCH
- NZ B3,CFU4 IF NOT SCRATCH VSN REQUEST
- PL X2,CFU4 IF NOT SCRATCH VSN
- CFU5 LX2 59-33-59+34
- BX0 X4
- NG X2,CFU4 IF PACK UNLOADED
- LX2 59-31-59+33
- NG X2,CFU4 IF DEVICE SUSPECT
- SX5 X3 EQUIPMENT RESOURCE INDEX AND BYTE POINTER
- SA2 OI GET ORIGINAL TAPE DENSITY INDEX
- RJ CRM CHECK FOR MATCHING RESOURCES
- NZ X7,CFU4 IF NO MATCH
- PL B7,CFU7 IF REMOVABLE PACK
- SA2 A3+B1
- MX7 -12
- BX5 -X7*X2
- SX7 A3
- NZ X5,CFU4 IF TAPE ASSIGNED
- RJ CAL CHECK ACCESS LEVEL
- NZ X5,CFU4 IF NOT CORRECT EQUIPMENT
- SA2 EQ EQUIPMENT NUMBER
- ZR X2,CFU3 IF EQUIPMENT NOT SPECIFIED
- SX7 A3
- SA1 TPAL TAPE ACCESS LEVEL
- PL X1,CFU10 IF A LEGAL ACCESS LEVEL
- SB2 /PER/IAL * INCORRECT ACCESS LEVEL FOR EQUIPMENT.*
- EQ PER PROCESS ERROR
- CFU6 ZR B5,CFU11 IF VSN NOT FOUND
- SA5 B5+B1
- SX7 B5
- LX5 59-32
- ZR B3,CFU10 IF SCRATCH VSN REQUEST
- PL X5,CFU10 IF NOT DEFAULT VSN
- SA2 OT
- SA3 SSJ=+/COMSSSJ/AACS
- SX2 X2-SYOT
- ZR X2,CFU10 IF SYSTEM ORIGIN
- LX3 59-4
- NG X3,CFU10 IF PERMITTED TO REQUEST BY DEFAULT VSN
- SB2 /PER/UAV * USER ACCESS NOT VALID.*
- EQ PER
- * PROCESS REMOVABLE PACK.
- CFU7 SB4 RRPS
- SB5 RRPS+RPSL
- SB6 B0
- SX7 A3
- SB2 RESB
- CFU8 EQ B4,B5,CFU9 IF SHARE TABLE COMPLETED
- SA4 B4+B2
- BX6 X4-X3
- SB4 B4+B1
- AX6 18
- ZR X6,CFU22 IF PACKNAME MATCH (DUPLICATE)
- NZ X4,CFU8 IF ENTRY PRESENT
- NZ B6,CFU8 IF EMPTY ALREADY FOUND
- SB6 A4
- EQ CFU8 CONTINUE SCAN OF SHARE TABLE
- CFU9 ZR B6,CFU23 IF SHARE TABLE FULL (ERROR)
- SA2 CFUB CHECK FOR DEMAND EXCEEDED
- PL X2,CFU24 IF DEMAND EXCEEDED
- BX6 X3
- SA6 B6 STORE ENTRY IN SHARE TABLE
- CFU10 SA5 TMPF CHECK VALIDATION REQUIRED FLAG
- LX5 59-56
- NG X5,COM6 IF VALIDATION REQUIRED
- SA7 AV SET ASSIGNED VSN POINTER
- SA5 X7+B1 SAVE ORIGINAL EVSB+1 ENTRY
- BX6 X5
- SB5 B0+ INCREMENT TOTAL AND RESOURCE ASSIGN COUNTS
- SA6 CFUF+1
- RJ IRC
- SX0 B1
- LX0 36-0
- IX5 X5+X0 SHARE PACK (RESERVE TAPE)
- LX0 35-0-36+0
- BX6 X0+X5 SET ASSIGNED BIT
- SA6 A5
- PL B7,CFUX IF REMOVABLE PACKS
- SA3 RESB+RJID INDICATE ASSIGNEE
- MX0 -12
- BX3 -X0*X3
- BX6 X6+X3
- SA6 A5+
- MX0 -12
- LX6 -12
- BX7 -X0*X6 UDT ADDRESS
- SA7 AU SAVE UDT ADDRESS
- * CHECK FOR INTERNAL CONFLICT ON SCRATCH REQUEST.
- NZ B3,CFUX IF NOT SCRATCH REQUEST
- MX0 -6
- BX0 -X0*X4
- SX0 X0-RPEP
- NZ X0,CFU10.1 IF NOT *PE* REQUEST
- RJ CIC CHECK FOR INTERNAL CONFLICT
- ZR X2,CFU10.1 IF DEMANDS SATISFIABLE
- SA4 CFUF+1 RESTORE ORIGINAL EVSB+1 ENTRY
- SA5 AV
- BX6 X4
- SB5 -B1 DECREMENT TOTAL AND RESOURCE ASSIGN COUNTS
- SA6 X5+B1
- RJ IRC
- SA4 X5 SWITCH 9-TRACK DRIVE TYPE
- RJ SDT
- SX6 B0+
- SA6 AU CLEAR UDT ADDRESS
- SA6 AV CLEAR ASSIGNED VSN POINTER
- EQ CFU2 RESELECT WITH CORRECT DRIVE TYPE
- * SET VSN FOR SCRATCH TAPE ASSIGNMENT.
- CFU10.1 SA1 AV GET *EVSB* POINTER
- SA1 X1+ GET VSN
- MX7 36
- BX7 X7*X1
- SA7 EVSN SET EXTERNAL VSN
- SA7 IVSN SET INTERNAL VSN
- EQ CFUX RETURN
- * PROCESS VSN/PACK NOT FOUND.
- CFU11 PL B7,CFU13 IF REMOVABLE PACK
- SA2 EQ
- NZ X2,CFU25 IF EQUIPMENT SPECIFIED
- EQ CFU14 BUILD PSEUDO EVSB ENTRY
- CFU13 SA2 CFUB CHECK FOR DEMAND EXCEEDED
- PL X2,CFU24 IF DEMAND EXCEEDED
- CFU14 SB5 B0 INCREMENT TOTAL AND RESOURCE ASSIGN COUNTS
- RJ IRC
- SA1 RQ BUILD RESOURCE DEMANDED TABLE
- MX2 -6
- BX2 -X2*X1
- SX6 X1+B1
- SA3 AL ACCESS LEVEL
- LX3 35 POSITION ACCESS LEVEL
- ZR X2,CFU15 IF TAPE RESOURCE
- SX3 B0+
- SX6 X1-1R0 SET UNIT COUNT
- CFU15 LX6 42
- BX7 X7-X7
- SB7 CFUC+2
- BX6 X6+X3
- SA6 CFUC
- BX3 X3-X3 SET IAS OPTION FOR ALL EQUIPMENTS
- SB6 A6
- SA7 A6+B1
- RJ IAS INITIALIZE ASSIGNMENTS
- RJ DDS SATISFY THIS DEMAND
- SA1 AA
- BX7 X2 SAVE SATISFIABILITY STATUS
- BX1 X1+X2
- SA2 EQ
- SA7 CFUE
- BX1 X1+X2
- CX1 X1
- ZR X1,COM5 IF OPERATOR ASSIGNMENT NEEDED
- SA4 JEEO GET REQUESTING JOB EJT ORDINAL
- SA3 CFUC BUILD WORKING TABLE ENTRIES
- SA5 RI
- LX3 -27
- MX0 -9
- BX7 -X0*X3 FIRST EQUIPMENT RET INDEX
- LX0 12
- SA2 RET+X7
- SB2 X7
- BX7 -X0*X2 EST ORDINAL
- LX7 -24
- MX6 42
- BX4 X7+X4
- SX3 B1 SET USER COUNT
- SA1 RQ
- LX3 36
- BX1 X6*X1
- BX6 X5+X1
- BX4 X4+X3
- SA6 CFUB SAVE SHARE TABLE ENTRY
- LX3 35-0-36+0 SET ASSIGNED BIT
- BX7 X4+X3
- SA3 CFUE
- NZ X3,CFU19 IF DEMAND NOT SATISFIABLE
- SB2 B2+B2 EVSB INDEX
- SA3 EVSB+B2 SAVE ORIGINAL EVSB ENTRY
- BX6 X3
- SA6 CFUF
- SA4 A3+B1
- BX6 X4
- SA6 A6+B1
- SA7 A4
- PL X2,CFU17 IF NOT LIST INDEX
- LX7 X2,B1 GET EQUIPMENT RESOURCE INDEX
- AX7 49
- SX4 X7-TRSLL1
- NG X4,CFU17 IF REMOVABLE PACK EQUIPMENT
- SX5 RHDP
- ZR X4,CFU17 IF *HD* EQUIPMENT
- SX5 RGEP
- CFU17 BX6 X1+X5
- SA1 CFUF ORIGINAL EVSB ENTRY
- MX0 6
- LX0 11-59
- BX1 X0*X1 ACCESS LEVEL RANGE
- BX6 -X0*X6 CLEAR OLD VALUE
- BX6 X1+X6
- SA6 A3
- MX6 -36
- SA1 CFUD
- MX0 -9
- BX1 -X6*X1
- NZ X1,CFU18 IF END OF CHAIN IN SECOND WORD
- SA1 A1-B1 END OF CHAIN IN FIRST WORD
- CFU18 BX5 -X0*X1
- LX1 -9
- ZR X5,CFU18 IF NOT END OF CHAIN
- SX7 B1
- LX7 2
- SA2 X5+RET SET END OF CHAIN
- BX7 X7+X2
- SA7 A2
- SA1 CFUC CHECK FOR *PE* REQUEST
- AX1 48
- SX1 X1-2RPE
- NZ X1,CFU19 IF NOT *PE* REQUEST
- * CHECK FOR INTERNAL CONFLICT ON SELECTED *PE* DRIVE.
- SX6 A3 SAVE EVSB ENTRY ADDRESS
- SA6 A1
- RJ CIC CHECK FOR INTERNAL CONFLICT
- ZR X2,CFU19 IF DEMAND SATISFIABLE
- SA5 CFUC GET EVSB ENTRY ADDRESS
- SA4 X5 GET 9-TRACK DRIVE TYPE
- SA1 CFUF RESET ORIGINAL EVSB ENTRY
- SA2 A1+B1
- BX6 X1
- LX7 X2
- SA6 X5
- SA7 X5+B1
- RJ SDT SWITCH 9-TRACK DRIVE TYPE
- LX6 6
- SX6 X6+B1
- EQ CFU15 RESELECT WITH OPPOSITE DRIVE TYPE
- CFU19 SA1 RI CHECK FOR TAPE EQUIPMENT
- MX0 -6
- BX1 -X0*X1
- SX1 X1-RRPP
- NG X1,CFU21 IF TAPE EQUIPMENT
- SB5 RESB+RRPS-1 FIND EMPTY SHARE TABLE ENTRY
- SB6 RESB+RRPS+RPSL
- CFU20 SB5 B5+B1
- EQ B5,B6,CFU23 IF END OF SHARE TABLE
- SA1 B5
- NZ X1,CFU20 IF NOT EMPTY ENTRY
- SA2 CFUB MAKE SHARE TABLE ENTRY
- BX7 X2
- SA7 B5
- CFU21 SA1 CFUE CHECK SATISFIABILITY
- ZR X1,CFUX IF SATISFIABLE
- SX2 /STATUS/OV FORCE OVERCOMMITMENT STATUS
- EQ COMX RETURN OVERCOMMITMENT STATUS
- CFU22 SX2 /STATUS/OK
- EQ COMX RETURN OK STATUS ON PACKNAME DUPLICATE
- CFU23 SB2 /PER/STE * SHARE TABLE ERROR.*
- EQ PER PROCESS ERROR
- CFU24 SB2 /PER/DEX * DEMAND EXCEEDED.*
- EQ PER PROCESS ERROR
- CFU25 SB2 /PER/EQN * EQUIPMENT NOT AVAILABLE.*
- EQ PER PROCESS ERROR
- CFUA VFD 36/6H ,24/0 SCRATCH VSN
- CFUB CON 0 DEMAND EXCEEDED FLAG/SHARE TABLE ENTRY
- CFUC CON 0 RDT ENTRY
- CFUD CON 0 RDT+1 ENTRY
- CFUE CON 0 SATISFIABILITY STATUS
- CFUF BSS 2 ORIGINAL EVSB ENTRY
- CIC SPACE 4,10
- ** CIC - CHECK FOR INTERNAL CONFLICT.
- *
- * EXIT (X2) = 0, IF DEMANDS SATISFIABLE.
- *
- * ERROR TO *PNE*, IF ASSIGNS EXCEED DEMANDS.
- *
- * USES A - 1, 3.
- * B - 2, 5.
- * X - 1, 3.
- *
- * CALLS BRT, DDS, IAS.
- CIC SUBR ENTRY/EXIT
- SA3 JEEO GET JOB EJT ORDINAL
- RJ IAS INITIALIZE ASSIGNMENTS FOR THIS JOB
- SB2 RESB BUILD RDT FROM REMAINING DEMANDS
- SB5 B0+
- RJ BRT
- SB2 /PER/AXD * JSQN ASSIGNS EXCEED DEMANDS.*
- SA1 JEEO GET JOB EJT ORDINAL
- NG X5,PNE IF ASSIGNS EXCEED DEMANDS (ERROR)
- RJ DDS DETERMINE DEMAND SATISFACTION
- EQ CICX RETURN
- COE SPACE 4,15
- ** COE - CHECK FOR *OFF* OR *DOWN* EQUIPMENT.
- *
- *
- * ENTRY (X2) = *COM* RETURN STATUS.
- *
- * EXIT (X2) = *COM* RETURN STATUS.
- * (X6) = *OFF* PREVIEW DISPLAY MESSAGE CODE IF *OFF* OR
- * *DOWN* EQUIPMENT NEEDED TO SATISFY REQUEST.
- *
- * USES X - 1, 2, 3, 5, 6, 7.
- * A - 2, 3, 6, 7.
- * B - 4, 5, 6, 7.
- *
- * CALLS DDS, IAS.
- COE SUBR ENTRY/EXIT
- SX6 X2+
- SA3 RQ BUILD RESOURCES DEMANDED TABLE
- SA6 COEA SAVE STATUS FOR LATER
- SA2 AL GET ACCESS LEVEL
- MX5 -6
- BX5 -X5*X3
- SX6 X3+B1
- ZR X5,COE1 IF TAPE REQUEST
- SX2 B0+
- SX6 X3-1R0 SET UNIT COUNT
- COE1 LX2 35 POSITION POSSIBLE ACCESS LEVEL
- LX6 42
- BX7 X7-X7
- BX6 X6+X2
- MX3 0
- SA6 COEB
- SA7 A6+B1
- SB6 A6 SET FWA OF DEMAND TABLE
- SB7 B6+2 SET LWA+1 OF DEMAND TABLE
- RJ IAS INITIALIZE ASSIGNMENTS
- SX1 B1
- SB4 RETL
- SX3 B1+B1
- SB5 B0+ CLEAR *OFF*/*DOWN* UNIT COUNT
- COE2 SA2 RET-1+B4 GET RESOURCE EQUIPMENT TABLE ENTRY
- SB4 B4-B1
- BX6 X3*X2 ISOLATE *OFF*/*DOWN* FLAG
- NG B4,COE3 IF FINISHED WITH RESOURCE EQUIPMENT TABLE
- ZR X6,COE2 IF UNIT NOT *OFF*/*DOWN*
- BX7 X2+X1 SET ASSIGNED FLAG
- SB5 B5+B1 INCREMENT COUNT OF *OFF*/*DOWN* UNITS
- SA7 A2
- EQ COE2 CONTINUE PROCESSING
- COE3 ZR B5,COE4 IF NO *OFF*/*DOWN* UNITS TO TEST
- RJ DDS DETERMINE DEMAND SATISFACTION
- SX6 B0+
- ZR X2,COE4 IF DEMAND SATISFIED WITH ON UNITS
- SX6 OFF SET *OFF*/*DOWN* EUIPMENT REQUIRED
- COE4 SA2 COEA RESTORE RETURN STATUS
- EQ COEX RETURN
- COEA CON 0 *COM* RETURN STATUS
- COEB CON 0,0 RESOURCES DEMANDED TABLE ENTRY FOR *DDS*
- CRC SPACE 4,10
- ** CRC - CHECK REQUESTOR COMPLETE.
- *
- * ENTRY (B2) = FWA DEMAND FILE ENTRY.
- *
- * EXIT (X5) = 0 IF REQUESTOR COMPLETE.
- *
- * USES A - 1.
- * X - 1, 2, 5.
- CRC SUBR ENTRY/EXIT
- SA1 B2+RVAL CHECK TOTAL DEMAND SATISFIED
- MX2 -12
- BX5 -X2*X1 TOTAL DEMAND
- LX1 -12
- BX2 -X2*X1 TOTAL ASSIGNED
- IX5 X5-X2
- EQ CRCX RETURN
- CRQ SPACE 4,25
- ** CRQ - CHECK REQUEST.
- *
- * ENTRY ENVIRONMENT AND USER RESOURCE REQUEST BLOCK BUILT.
- * (/CPA/RFCW) = DEMAND FILE INDEX.
- * (EQ) = EQUIPMENT, IF SPECIFIED.
- *
- * EXIT REQUESTOR DEMAND FILE ENTRY IN RESB BUFFER.
- * TO *COM4* IF ASSIGNMENT REJECTED DUE TO *MAGNET*
- * IDLEDOWN.
- * TO *COM6*, IF OPERATOR SELECTED WRONG UNIT ON
- * DUPLICATE VSN.
- *
- * ERROR TO *PER*, IF DEMAND FILE ENTRY MISSING, VSN/EQUIPMENT
- * ASSIGNMENT MISSING, DENSITY CONFLICT, OR
- * EQUIPMENT NOT AVAILABLE.
- *
- * USES A - 1, 2, 3, 4, 6, 7.
- * B - 2, 3, 5, 7.
- * X - ALL.
- *
- * CALLS CAU, CRM, CRV, CTA, IDE, IRC, RDF, SPI.
- *
- * MACROS MOVE.
- CRQ SUBR ENTRY/EXIT
- SA2 RI GET RESOURCE INDEX
- SA3 RQ CHECK REQUEST
- MX4 -6
- SB2 /PER/EQN * EQUIPMENT NOT AVAILABLE.*
- BX4 -X4*X2 RESOURCE DEMAND ENTRY INDEX
- MX0 42
- SX4 X4-RRPP
- BX5 X0*X3 VSN
- SA1 EQ
- ZR X1,CRQ3 IF EQUIPMENT NOT SPECIFIED
- PL X4,PER IF REMOVABLE PACKS (ERROR)
- MX0 -12
- SB3 B1+B1
- MX7 12
- SA3 RETI GET RET/EVSB BEGINNING TAPE INDEX
- LX3 1
- SA3 EVSB-2+X3
- SA4 RETE GET RET/EVSB ENDING INDEX
- LX4 1
- SB5 EVSB+X4
- CRQ1 SA3 A3+B3 FIND EQUIPMENT IN EVSB
- SB7 A3-B5
- ZR B7,CRQ10 IF END OF EVSB
- SA4 A3+B1
- ZR X3,CRQ1 IF NO ENTRY
- BX6 X1-X4
- BX6 X7*X6
- NZ X6,CRQ1 IF NO MATCH ON EST ORDINAL
- BX6 -X0*X4
- MX0 36
- ZR X5,CRQ2 IF NOT DUPLICATE VSN
- BX0 X0*X3 CHECK FOR MATCHING VSN
- BX0 X0-X5
- NZ X0,COM6 IF WRONG UNIT ASSIGNED
- CRQ2 NZ X6,CRQ9 IF ALREADY ASSIGNED
- SX0 X2
- SX5 X3
- SA2 OI GET ORIGINAL NT TAPE DENSITY INDEX
- RJ CRM CHECK FOR RESOURCE MATCH
- SB2 /PER/DEC * NT DENSITY CONFLICT.*
- NZ X7,CRQ9 IF DENSITY CONFLICT
- MX1 36
- BX6 X1*X3
- SA4 RQ ENTER DEFAULT VSN INTO REQUEST
- SA6 IVSN SET INTERNAL VSN
- SA6 EVSN SET EXTERNAL VSN
- BX4 -X1*X4
- BX6 X6+X4
- SA6 A4
- EQ CRQ4 GET DEMAND FILE ENTRY
- CRQ3 SA1 AA
- ZR X1,CRQ4 IF OPERATOR TO ASSIGN EQUIPMENT
- SB2 /PER/MVE * MISSING VSN OR EQUIPMENT ASSIGNMENT.*
- ZR X5,PER IF VSN NOT SPECIFIED (ERROR)
- CRQ4 RJ IDE INITIALIZE DEMAND ENTRY
- RJ RDF READ DEMAND FILE
- SA1 /CPA/RFCW
- SX1 X1
- SB2 /PER/MDE * MISSING DEMAND FILE ENTRY.*
- ZR X1,PER IF NO DEMAND FILE ENTRY
- MOVE RDEL,DBUF,RESB COPY DEMAND FILE ENTRY
- SA1 RESB+RVAL CHECK FOR LOST TAPES
- SX4 RESB DEMAND FILE ENTRY ADDRESS
- LX1 59-53
- PL X1,CRQ5 IF NO TAPE ASSIGNMENT LOST
- SB5 B0 GET MAGNETIC TAPE ASSIGNED COUNT
- RJ CTA
- SB2 /PER/PTL * PRIOR TAPE ASSIGNMENT LOST.*
- NZ B3,PER IF LOST TAPES NOT RETURNED
- MX2 1
- SA1 RESB+RVAL CLEAR TAPE ASSIGNMENT LOST FLAG
- LX2 53-59
- BX6 -X2*X1
- SA6 A1
- CRQ5 SA3 JEEO GET JOB EJT ORDINAL
- RJ CAU COUNT ASSIGNED UNITS
- NZ B3,CRQ6 IF RESOURCES ASSIGNED
- SA1 MIDI CHECK FOR *MAGNET* IDLEDOWN
- NG X1,COM4 IF IDLEDOWN REQUESTED
- CRQ6 NZ X7,CRQ7 IF DEMAND SPECIFIED
- SB5 B1 INCREMENT TOTAL AND RESOURCE DEMAND COUNTS
- SX7 B1 SET DEFAULT DEMAND INDICATOR
- SA7 DFDI
- RJ IRC
- RJ CRV CHECK RESOURCE VALIDATION
- CRQ7 RJ SPI SET DEMAND FILE PREVIEW INFORMATION
- EQ CRQX RETURN
- * PROCESS TAPE UNIT ALREADY ASSIGNED OR DENSITY CONFLICT.
- CRQ9 SA1 AA
- NG X1,COM6 IF DUPLICATE VSN CHOICE
- NZ X1,PER IF *ASSIGN* WITH EST ORDINAL SPECIFIED
- CRQ9.1 SX6 B0+ CLEAR OPERATOR ASSIGNED EQUIPMENT
- SA6 EQ
- EQ CRQ4 COMPLETE CHECKS BEFORE EQUIPMENT REQUEST
- * PROCESS TAPE NOT MOUNTED.
- CRQ10 SA3 AA
- ZR X3,CRQ9.1 IF OPERATOR ASSIGNMENT OF EQUIPMENT
- NG X3,COM6 IF DUPLICATE VSN CHOICE
- EQ PER ABORT WITH EQUIPMENT NOT AVAILABLE
- DEI SPACE 4,15
- ** DEI - DEMAND EXCEEDS INSTALLATION CHECK.
- *
- * ENTRY RESOURCE ENVIRONMENT BUILT.
- * USER RESOURCE REQUEST BLOCK BUILT.
- *
- * EXIT TO CALLER IF SUFFICIENT RESOURCES PRESENT.
- * TO *PER*, IF SUFFICIENT RESOURCES NOT PRESENT.
- *
- * USES B - 2, 5.
- *
- * CALLS BRT, DDS.
- DEI SUBR ENTRY/EXIT
- SB2 RESB BUILD RDT FROM TOTAL DEMANDS
- SB5 B1+
- RJ BRT BUILD RESOURCE DEMAND TABLE
- RJ DDS DETERMINE DEMAND SATISFACTION
- ZR X2,DEIX IF RESOURCE DEMAND SATISFIABLE
- SB2 /PER/IRS * INSUFFICIENT RESOURCES ON SYSTEM.*
- EQ PER PROCESS ERROR
- OCA SPACE 4,20
- ** OCA - OVERCOMMITMENT ALGORITHM.
- *
- * ENTRY ENVIRONMENT BUILT.
- * USER RESOURCE REQUEST BLOCK BUILT.
- *
- * EXIT (X5) = 0 IF OVERCOMMITMENT.
- *
- * ERROR TO *PER*, IF SCRATCH FILE ERROR OR NEGATIVE SHARE
- * COUNT.
- * TO *PNE*, IF ASSIGNS EXCEED DEMANDS OR SHARE TABLE
- * ERROR.
- *
- * USES A - 1, 2, 3, 6, 7.
- * B - 2, 3, 5, 6, 7.
- * X - ALL.
- *
- * CALLS BRT, CRC, DDS, IAS.
- *
- * MACROS READ, READW, REWIND, WRITER, WRITEW.
- OCA SUBR ENTRY/EXIT
- WRITEW S1,RESB,RDEL ENTER REQUESTOR ON SCRATCH FILE
- WRITER S1,R
- SA1 NS1 INCREMENT JOB COUNT
- SX6 X1+B1
- SA6 A1
- OCA1 SX7 B0+ CLEAR JOBS WRITTEN ON SCRATCH 2 COUNTER
- SA7 NS2
- REWIND S2
- REWIND S1
- READ X2,R
- OCA2 READW S1,BUF,RDEL READ SCRATCH 1 ENTRY
- NZ X1,OCA9 IF EOR
- SA3 BUF+RJID GET JOB EJT ORDINAL
- SB2 /PER/RSF * RESOURCE SCRATCH FILE ERROR.*
- ZR X3,PER IF NO JOB (ERROR)
- BX3 X3-X3
- RJ IAS INITIALIZE ASSIGNMENTS
- SB2 BUF
- RJ CRC CHECK REQUEST COMPLETE
- ZR X5,OCA3 IF TOTAL ASSIGNED = TOTAL DEMAND
- SB5 B0+ BUILD RDT FROM REMAINING DEMANDS
- RJ BRT
- SB2 /PER/AXD * JSQN ASSIGNS EXCEED DEMANDS.*
- NG X5,OCA8 IF ASSIGNS EXCEED DEMANDS (ERROR)
- RJ DDS DETERMINE DEMAND SATISFACTION
- ZR X2,OCA3 IF JOB COMPLETES
- WRITEW S2,BUF,RDEL COPY ENTRY TO SCRATCH 2
- SA1 NS2 ADVANCE NUMBER OF JOBS
- SX7 X1+B1
- SA7 A1
- EQ OCA2
- * ADJUST ENVIRONMENT ON COMPLETED JOB.
- * RELEASE TAPES ASSIGNED TO THIS JOB.
- OCA3 SA1 RETI GET RET/EVSB TAPE INDEX
- LX1 1
- SB3 EVSB+X1
- SA3 RETE GET RET/EVSB ENDING INDEX
- LX3 1
- SB6 EVSB+X3
- SB7 B3 END OF REMOVABLE PACK ENTRIES
- SA3 BUF+RJID GET JOB EJT ORDINAL
- MX4 -6
- SB2 /PER/REV * RESOURCE ENVIRONMENT ERROR.*
- SB5 RRPS+RPSL-1
- OCA4 EQ B3,B6,OCA5 IF END OF ENTRIES
- SA1 B3
- MX0 -12
- SB3 B3+2
- ZR X1,OCA4 IF EMPTY ENTRY
- SA2 A1+B1
- BX5 X3-X2
- BX5 -X0*X5
- NZ X5,OCA4 IF NOT ASSIGNED TO THIS JOB
- BX1 -X4*X1 GET RESOURCE INDEX
- MX0 1
- SX1 X1-RRPP
- PL X1,PER IF NOT MAGNETIC TAPE
- LX0 35-59
- BX6 -X0*X2 CLEAR PHYSICALLY ASSIGNED BIT
- SA6 A2
- EQ OCA4 CONTINUE SCAN OF ENVIRONMENT
- * CHECK REMOVABLE PACK SHARING.
- OCA5 SA1 B5+BUF
- SX5 B5-RRPS
- NG X5,OCA2 IF SHARE TABLE COMPLETE
- SB5 B5-B1
- MX0 -12
- ZR X1,OCA5 IF NO SHARED ENTRY
- SB6 EVSB
- SB2 B1+B1
- SB3 -B1
- MX7 1
- LX7 35-59
- * DECREMENT USER COUNT ON SHARED PACK.
- OCA6 EQ B6,B7,OCA7 IF NO MATCHING EVSB ENTRY
- SA3 B6
- SB6 B6+B2
- ZR X3,OCA6 IF EMPTY ENTRY
- BX5 X3-X1
- AX5 18
- NZ X5,OCA6 IF NO MATCH
- SA3 A3+B1 DECREMENT SHARE COUNT
- LX3 24
- BX5 -X0*X3
- BX6 X0*X3
- SX5 X5+B3
- BX6 X5+X6
- SB2 /PER/RNS * RESOURCE NEGATIVE SHARE COUNT.*
- NG X5,PER IF SHARE COUNT NEGATIVE
- LX6 -24
- SA6 A3
- NZ X5,OCA5 IF MORE SHARERS
- BX6 -X7*X6 CLEAR PHYSICALLY ASSIGNED BIT
- SA6 A6
- EQ OCA5 CONTINUE SCAN OF SHARE TABLE
- OCA7 SB2 /PER/STM * JSQN SHARE TABLE MISMATCH.*
- OCA8 SA1 BUF+RJID GET JOB EJT ORDINAL
- EQ PNE PROCESS NAMED ERROR
- * CLOSE SCRATCH 2 FILE.
- OCA9 SA1 NS1
- SA2 A1+B1
- IX5 X1-X2
- ZR X5,OCAX IF NO JOBS COMPLETED ON THIS PASS
- ZR X2,OCAX IF NO MORE JOBS
- * SWAP SCRATCH 1 AND SCRATCH 2.
- WRITER S2,R
- REWIND S1,R
- REWIND S2,R
- SA2 X2
- SA1 S1
- BX6 X2
- LX7 X1
- SA6 A1
- SA1 NS2
- SA7 A2
- BX7 X1
- SA7 NS1
- EQ OCA1 REPEAT LOOP
- NS1 CON 0 NUMBER OF JOBS IN SCRATCH 1
- NS2 CON 0 NUMBER OF JOBS IN SCRATCH 2
- TITLE OVERCOMMITMENT UTILITY SUBROUTINES.
- CAU SPACE 4,20
- ** CAU - COUNT ASSIGNED UNITS.
- *
- * ENTRY (X3) = 48/,12/ JOB EJT ORDINAL.
- * (X4) = DEMAND ENTRY ADDRESS.
- *
- * EXIT ASSIGNED UNITS COUNTED FOR TAPES AND PACKS.
- * (B3) = ASSIGNED COUNT.
- * (X7) = TOTAL DEMAND COUNT.
- *
- * ERROR TO *PNE*, IF INDIVIDUAL RESOURCE ASSIGNED COUNT
- * ERROR.
- *
- * USES A - 1, 2, 5, 6, 7.
- * B - 2, 3, 4, 5, 6, 7.
- * X - 0, 1, 2, 3, 5, 6, 7.
- *
- * CALLS CRM, CTA.
- CAU9 SB5 -B1 COUNT TOTAL ASSIGNS AND DEMANDS
- RJ CTA
- CAU SUBR ENTRY/EXIT
- SX6 B1
- LX6 36 POSITION RESERVATION INCREMENT
- SA2 X4+RVAL CHECK FOR LOST TAPES
- LX2 59-53
- NG X2,CAU4 IF TAPE ASSIGNMENT LOST
- SB3 RMTP+RMTL SET TAPE STARTING POSITION
- SA5 RETI GET RET/EVSB TAPE INDEX
- SA1 RETE GET RET/EVSB ENDING INDEX
- LX5 1
- LX1 1
- SB6 EVSB+X1
- SB7 EVSB+X5
- * CHECK MAGNETIC TAPES.
- CAU0 SB3 B3-B1
- SA0 B3-B1
- SB4 RPEW*2*100B RESOURCE BYTE POSITION
- SB2 6
- CAU1 SA2 X4+B3 RESOURCE DEMAND ENTRY
- MX0 -6
- AX2 B2
- BX5 -X0*X2 ASSIGNED COUNT
- ZR X5,CAU3 IF NO ASSIGN COUNT
- SX0 A0+B4
- SB5 X5
- SA5 B7-B1
- CAU2 SA1 A5+B1 READ EVSB ENTRIES
- SX7 A1-B6
- ZR X7,CAU8 IF EVSB SCAN COMPLETE
- SA5 A1+B1
- ZR X1,CAU2 IF EMPTY ENTRY
- BX7 X6*X5
- NZ X7,CAU2 IF UNIT ALREADY RESERVED
- BX7 X3-X5
- MX2 -12
- BX7 -X2*X7
- SX5 X1
- NZ X7,CAU2 IF NO MATCH ON JOB ASSIGNMENT
- SX2 RPEP FORCE *GE* EQUIPMENT MATCH FOR *NT*
- RJ CRM CHECK FOR MATCHING RESOURCES
- NZ X7,CAU2 IF WRONG RESOURCE TYPE
- SA5 A5 INDICATE RESERVED
- BX7 X5+X6
- SA7 A5
- SB5 B5-B1
- NZ B5,CAU2 IF MORE RESOURCES
- CAU3 SB4 B4-100B DECREMENT RESOURCE BYTE POSITION
- SB5 RPEW*100B
- SB2 B2+12
- ZR B4,CAU3.1 IF END OF THIS RESOURCE
- NE B4,B5,CAU1 IF CONTINUE SAME RESOURCE WORD
- SB3 B3-B1 PROCESS FIRST WORD OF RESOURCE
- SB2 6
- EQ CAU1 PROCESS RESOURCE
- CAU3.1 SB5 RMTP FIRST TAPE ENTRY
- NE B3,B5,CAU0 IF MORE TAPES TO PROCESS
- * COUNT ASSIGNED PACKS.
- CAU4 SB5 RPSL SHARE TABLE LENGTH
- SA1 RRPS-1+X4
- EQ CAU6 SCAN SHARE TABLE
- CAU5 BX7 X7-X7 CLEAR ENTRY
- SA7 A1
- CAU6 ZR B5,CAU9 IF END OF SHARE TABLE
- SA1 A1+B1
- SB5 B5-B1
- ZR X1,CAU6 IF NO ENTRY
- SA2 EVSB-2
- CAU7 SA2 A2+2
- BX7 X2-X1
- SX5 A2-B7
- ZR X5,CAU8 IF END OF EVSB
- ZR X2,CAU7 IF EMPTY ENTRY
- NZ X7,CAU7 IF NO MATCH ON PACKNAME OR RESOURCE INDEX
- SA5 A2+B1
- IX7 X5+X6 COUNT AS SHARED
- SA7 A5
- EQ CAU6 CONTINUE SCAN OF SHARE TABLE
- CAU8 SB2 /PER/MAR * JSQN MISSING RESOURCE.*
- SA1 X4+RJID GET JOB EJT ORDINAL
- EQ PNE PROCESS NAMED ERROR
- DDS SPACE 4,20
- ** DDS - DETERMINE DEMAND SATISFACTION.
- *
- * ENTRY (B6) = FWA OF RESOURCES DEMANDED TABLE (*RDT* FORMAT).
- * (B7) = LWA+1 OF RESOURCES DEMANDED TABLE.
- *
- * EXIT (X2) = 0 IF DEMAND SATISFIABLE.
- *
- * ERROR TO *PER*, IF ENVIRONMENT ERROR.
- *
- * USES A - ALL.
- * B - 2, 3, 4, 5, 6.
- * X - ALL.
- *
- * CALLS GRL.
- DDS SUBR ENTRY/EXIT
- * AN ATTEMPT IS MADE TO ASSIGN EQUIPMENTS AS FOLLOWS-
- *
- * 1. RESOURCE DEMANDS ARE SATISFIED WITH LARGER MULTI-SPINDLE
- * DEMANDS FIRST, TAPES LAST.
- *
- * 2. THE DEMAND IS SATISFIED BY A SINGLE EQUIPMENT WITH A *BEST
- * FIT* DETERMINED BY THE LARGEST SPINDLE RESIDUE.
- *
- * 3. THE DEMAND IS SATISFIED BY A CHAIN OF EQUIPMENTS WITH NO
- * REGARD TO SPINDLE OR EQUIPMENT RESIDUE AS A CRITERION FOR
- * A *BEST FIT*.
- *
- * 4. IF A RESOURCE DEMAND CANNOT BE SATISFIED, THEN THE
- * PREVIOUS DEMAND SATISFACTION IS NEGATED AND RETRIED (STEP
- * 2). THIS IS DONE UNTIL ALL POSSIBLE CHAINS HAVE BEEN
- * ATTEMPTED FOR ALL DEMANDED RESOURCES.
- SA2 RETE GET RET ENDING INDEX
- SB3 RET+X2
- DDS1 BX2 X2-X2
- SA1 B6 READ RESOURCES DEMANDED TABLE ENTRY
- EQ B6,B7,DDSX IF COMPLETED
- BX7 X1
- AX7 48
- SB4 TRSLL2
- RJ GRL GET RESOURCE LIST INDEX
- SB4 -B4
- SX7 X7-2RPE
- SA0 B1
- NZ X7,DDS2 IF NOT *PE* REQUEST
- SA0 -TRHD SATISFY WITH *HD* OR *GE* EQUIPMENT
- DDS2 SB2 RET+1 FIND SINGLE EQUIPMENT WHICH MEETS DEMAND
- SA3 A1+B1
- SX6 -B1
- BX7 X7-X7
- SA6 TDDS CLEAR TEMPORARIES
- SA7 A6+B1
- BX4 X1
- MX5 -6
- LX4 18
- BX4 -X5*X4 NUMBER OF UNITS REQUIRED
- MX5 12
- BX5 X5*X3 ORIGINAL EQUIPMENT
- ZR X5,DDS3 IF FIRST ATTEMPT TO SATISFY
- SA5 DDSA SET STARTING POSITION
- SB2 X5+RET+1
- DDS3 SA2 B2
- GE B2,B3,DDS5 IF END OF RESOURCE EQUIPMENT TABLE
- SB2 B2+B1
- LX7 X2,B1
- BX5 X1-X2
- LX2 -1
- NG X2,DDS3 IF LOGICALLY ASSIGNED
- AX5 48
- PL X5,DDS4 IF NOT RESOURCE LIST INDEX
- AX7 49
- SX5 X7+B4
- SB5 A0+
- GT B5,DDS4 IF NOT *PE* REQUEST
- ZR X5,DDS4 IF MATCH
- SX5 X7+B5
- DDS4 LX2 -5
- NZ X5,DDS3 IF NO MATCH
- SX0 B2-RET-1
- SA5 RETI TAPE BEGINNING INDEX
- IX5 X0-X5
- NG X5,DDS4.0 IF NOT A TAPE ENTRY
- RJ CLM CHECK LEVEL MATCH
- NG X0,DDS3 IF LEVELS DO NOT MATCH
- DDS4.0 MX5 -3
- BX5 -X5*X2
- SX5 X5+B1
- IX6 X5-X4
- NG X6,DDS3 IF INSUFFICIENT UNITS
- SA5 A6
- IX5 X6-X5
- NG X5,DDS3 IF NOT BEST RESIDUE
- ZR X5,DDS3 IF SAME RESIDUE
- SA6 A6 SAVE UNIT COUNT RESIDUE
- SX7 A2 SAVE RET ADDRESS
- SA7 A7
- EQ DDS3 LOOP FOR BEST RESIDUE
- DDS5 SA5 A7
- ZR X5,DDS6 IF SINGLE EQUIPMENT ENTRY NOT FOUND
- SA4 X5 LOGICALLY ASSIGN
- SX7 B1
- BX7 X7+X4
- SA7 A4
- SX6 A4-RET RET INDEX
- LX6 27
- EQ DDS18 CHECK FOR FIRST ATTEMPT TO SATISFY
- * ATTEMPT TO SATISFY DEMAND WITH CHAINED EQUIPMENT.
- DDS6 SB2 RET+1
- MX5 12
- BX5 X5*X3
- ZR X5,DDS7 IF FIRST ATTEMPT TO SATISFY
- SA5 DDSA SET STARTING POSITION
- SB2 X5+RET+1
- DDS7 LX4 X1
- BX7 X7-X7
- LX4 18
- MX2 -6
- BX4 -X2*X4 NUMBER OF UNITS REQUIRED
- SA7 DDSB CLEAR LDAM CONTROL
- CLEAR TDDS,TDDSL CLEAR EQUIPMENT CHAIN TABLE
- DDS8 SA2 B2 READ RESOURCE EQUIPMENT TABLE ENTRY
- GE B2,B3,DDS12 IF END OF TABLE
- SB2 B2+B1
- BX5 X1-X2
- LX7 X2,B1
- LX2 59-0
- NG X2,DDS8 IF LOGICALLY ASSIGNED
- AX5 48
- PL X5,DDS9 IF NOT RESOURCE LIST INDEX
- AX7 49
- SX5 X7+B4
- SB5 A0+
- GT B5,DDS9 IF NOT *PE* REQUEST
- ZR X5,DDS9 IF MATCH
- SX5 X7+B5
- DDS9 NZ X5,DDS8 IF NO MATCH
- SX0 B2-RET-1
- SA5 RETI TAPE BEGINNING INDEX
- IX5 X0-X5
- NG X5,DDS9.0 IF NOT A TAPE ENTRY
- RJ CLM CHECK LEVEL MATCH
- NG X0,DDS8 IF LEVELS DO NOT MATCH
- DDS9.0 BX7 X2
- LX7 59-3-59+0
- PL X7,DDS11 IF NOT LDAM EQUIPMENT
- LX7 12-59+3
- MX0 12
- BX7 X0*X7 CHANNELS
- SX6 B2-B1 SET STARTER
- SA5 DDSB COMPARE CHANNELS
- NZ X5,DDS10 IF STARTER CHOSEN
- BX6 X7+X6
- SA6 A5
- EQ DDS11 CHECK NUMBER OF UNITS
- DDS10 BX5 X0*X5
- BX0 X5-X7
- ZR X0,DDS11 IF CHANNELS MATCH
- MX0 6 INTERCHANGE CHANNELS
- BX6 X0*X7
- LX7 6
- BX7 X0*X7
- LX6 -6
- BX7 X7+X6
- BX0 X5-X7
- NZ X0,DDS12 IF CHANNELS DO NOT MATCH
- DDS11 LX2 -6-59+0+60 GET ORIGINAL SPINDLES
- MX5 -3
- BX5 -X5*X2
- SX5 X5+B1
- SX7 A2-RET RET INDEX
- IX4 X4-X5
- SA7 A7+B1 ENTER CHAIN
- ZR X4,DDS15 IF DEMAND SATISFIED
- NG X4,DDS15 IF DEMAND SATISFIABLE
- LX2 -30
- SA5 DDSB CHECK LDAM CONTROL
- ZR X5,DDS13 IF NOT LDAM EQUIPMENT
- DDS12 LT B2,B3,DDS8 IF NOT END OF TABLE
- SA5 DDSB CHECK LDAM CONTROL
- ZR X5,DDS21 IF STARTER NEVER SELECTED
- SB2 X5+B1 ADVANCE STARTING POSITION
- GE B2,B3,DDS21 IF TABLE EXCEEDED
- JP DDS7 CONTINUE WITH NEXT TABLE POSITION
- DDS13 MX6 12
- BX5 X6*X2 NEXT EQUIPMENT
- ZR X5,DDS7 IF END OF CHAIN
- SA2 RET
- DDS13.1 SB5 A2+B1
- EQ B5,B3,DDS25 IF EQUIPMENT NOT IN RET
- SA2 A2+B1
- LX2 -24
- BX7 X6*X2
- BX7 X7-X5
- NZ X7,DDS13.1 IF NOT MATCHING EQUIPMENT
- LX2 24
- BX5 X2-X1
- LX7 X2,B1
- AX5 48
- LX2 -1
- NG X2,DDS7 IF LOGICALLY ASSIGNED (PREMATURE ENDCHAIN)
- PL X5,DDS14 IF NOT RESOURCE LIST INDEX
- AX7 49
- SX5 X7+B4
- SB5 A0+
- GT B5,DDS14 IF NOT *PE* REQUEST
- ZR X5,DDS11 IF MATCH
- SX5 X7+B5
- DDS14 NZ X5,DDS25 IF NO MATCH (ERROR)
- EQ DDS11 CONTINUE WITH NEXT CHAINED EQUIPMENT
- DDS15 SB4 4
- SB5 B4+B4
- BX6 X6-X6
- DDS16 SB4 B4+B1
- SA4 TDDS+B4
- SX7 B1
- ZR X4,DDS17 IF NO EQUIPMENT
- SA2 RET+X4 INDICATE EQUIPMENT LOGICALLY ASSIGNED
- BX7 X2+X7
- SA7 A2
- DDS17 LX6 9
- BX6 X6+X4
- NE B4,B5,DDS16 IF MORE *RET* INDICES TO ENTER
- SB5 B5-4
- ZR B5,DDS18 IF ALL CHAINED EQUIPMENTS PROCESSED
- BX3 X3+X6
- BX6 X6-X6
- SB5 4
- SB4 B0
- EQ DDS16 CONTINUE CHAINING EQUIPMENTS
- DDS18 BX6 X1+X6 SAVE EQUIPMENT CHAIN
- LX7 X3
- SA6 A1 UPDATE RDT ENTRY
- SA7 A3
- MX4 12
- BX4 X4*X3 GET ORIGINAL EQUIPMENT
- LX6 -27 GET FIRST EQUIPMENT
- MX7 -9
- BX7 -X7*X6
- LX7 48
- NZ X4,DDS20 IF NOT FIRST ATTEMPT
- BX7 X7+X3
- SA7 A3
- DDS19 SX7 B0+ CLEAR STARTING POSITION
- SB6 B6+2 ADVANCE POINTER
- SA7 DDSA
- EQ DDS1 LOOP FOR ALL DEMANDED RESOURCES
- DDS20 BX5 X4-X7
- NZ X5,DDS19 IF NOT ORIGINAL EQUIPMENT
- * ALGORITHM MAY HAVE SELECTED A FIRST EQUIPMENT THAT CAUSES
- * UNSATISFACTION WHEN IN FACT SATISFACTION IS POSSIBLE.
- *
- * BACKUP AND TRY ANOTHER CHAIN.
- DDS21 SB4 RDT
- SA2 B6 READ CURRENT DEMANDED RESOURCE
- MX0 -9
- SB6 B6-2
- LT B6,B4,DDS24 IF FIRST RESOURCE (NO BACKUP POSSIBLE)
- SA1 B6 CHECK IF SAME EQUIPMENT
- BX5 X2-X1
- AX5 48
- NZ X5,DDS24 IF PREVIOUS RESOURCE NOT SAME TYPE
- MX4 59
- MX3 24
- BX6 X3*X1 CLEAR EQUIPMENTS
- SA6 A1
- SB4 4
- LX1 -27
- BX7 -X0*X1 FIRST EQUIPMENT INDEX
- SA7 DDSA SET STARTING POSITION
- DDS22 BX6 -X0*X1 EQUIPMENT INDEX
- ZR X6,DDS1 IF END OF EQUIPMENTS
- SB4 B4-B1
- SA2 RET+X6 GET RESOURCE EQUIPMENT TABLE ENTRY
- LX1 9
- BX6 X4*X2 CLEAR LOGICALLY ASSIGNED BIT
- SA6 A2
- NZ B4,DDS22 IF MORE ENTRIES IN FIRST WORD
- SA1 A1+B1
- BX6 X3*X1 CLEAR EQUIPMENTS
- BX1 -X3*X1
- SA6 A1
- LX1 -27
- EQ DDS22 LOOP FOR ALL CHAINED EQUIPMENTS
- DDS24 SX2 B1 SET ERROR STATUS
- EQ DDSX RETURN
- DDS25 SB2 /PER/REV * RESOURCE ENVIRONMENT ERROR.*
- EQ PER PROCESS ERROR
- DDSA CON 0 STARTING POSITION
- DDSB CON 0 LDAM CONTROL
- DLY SPACE 4,10
- ** DLY - DELAY.
- *
- * DLY DELAYS 2 SECONDS FOR MAGNET TO FINISH ACTIVE
- * OPERATIONS BEFORE CONTINUING RESEX PROCESSING.
- *
- * USES A - 1, 2.
- * X - 1, 2.
- *
- * MACROS RECALL, RTIME.
- DLY SUBR ENTRY/EXIT
- RTIME DLYB GET START TIME
- DLY1 RECALL
- RTIME DLYB+1 GET CURRENT TIME
- SA1 DLYB CHECK FOR DELAY COMPLETE
- SA2 A1+B1
- IX2 X2-X1 CALCULATE ELAPSED TIME IN MILLISECONDS
- SX2 X2-2000
- NG X2,DLY1 IF NOT SUFFICIENT DELAY
- JP DLYX RETURN
- DLYB CON 0,0 TIME TEMPORARIES
- IAS SPACE 4,15
- ** IAS - INITIALIZE ASSIGNMENTS.
- *
- * ENTRY (X3) = 0, IF ALL PHYSICALLY ASSIGNED EQUIPMENTS TO
- * BE LOGICALLY ASSIGNED.
- * (X3) = JOB EJT ORDINAL, IF PHYSICALLY ASSIGNED.
- * EQUIPMENTS FOR THIS JOB TO BE LOGICALLY ASSIGNED.
- *
- * EXIT LOGICALLY ASSIGNED BITS SET FOR PHYSICALLY ASSIGNED
- * EQUIPMENTS.
- *
- * USES A - 2, 5, 7.
- * B - 2, 3, 5.
- * X - 0, 2, 4, 5, 7.
- *
- * MACROS CLEAR.
- IAS SUBR ENTRY/EXIT
- CLEAR RET,RETL,-1 CLEAR LOGICALLY ASSIGNED BITS
- SA2 RETE GET RET/EVSB ENDING INDEX
- SB2 RET+X2
- LX2 1
- SX4 B1
- SB3 EVSB
- MX0 -12
- SB5 B3+X2
- IAS1 SA2 B3+B1
- EQ B3,B5,IASX IF END OF EVSB
- LX2 59-35
- SB3 B3+2
- ZR X2,IAS1 IF EMPTY ENTRY
- PL X2,IAS1 IF NOT PHYSICALLY ASSIGNED
- BX5 -X0*X2 GET USER COUNT
- LX2 12
- ZR X5,IAS1 IF NO USERS
- ZR X3,IAS2 IF JOB EJT ORDINAL MATCH NOT REQUIRED
- SA5 A2
- BX5 X5-X3
- BX5 -X0*X5
- NZ X5,IAS1 IF NO MATCH
- IAS2 LX2 -24
- BX5 -X0*X2 NEXT EQUIPMENT
- SA2 RET
- IAS3 SA2 A2+B1
- SX7 A2-B2
- ZR X7,IAS1 IF EQUIPMENT NOT FOUND
- LX2 -12
- BX7 -X0*X2
- BX7 X7-X5
- NZ X7,IAS3 IF NOT CORRECT ENTRY
- LX2 12
- BX7 X4+X2 MARK AS ASSIGNED
- SA7 A2
- LX7 59-2
- NG X7,IAS1 IF END OF CHAIN
- EQ IAS2 CONTINUE INITIALIZATION
- SDT SPACE 4,10
- ** SDT - SWITCH 9-TRACK DRIVE TYPE.
- *
- * ENTRY (X4) = PREVIOUS 9-TRACK DRIVE TYPE SELECTION IN
- * BITS 0 - 5.
- *
- * EXIT (X4) = NEW 9-TRACK DENSITY RESOURCE INDEX.
- * (X6) = DISPLAY CODE FOR NEW 9-TRACK DENSITY.
- *
- * USES X - 0, 1, 4, 6.
- SDT SUBR ENTRY/EXIT
- MX0 -6
- BX1 -X0*X4 GET PREVIOUS DRIVE TYPE
- SX6 2RGE
- SX1 X1-RHDP
- SX4 RGEP
- ZR X1,SDTX IF *HD* DRIVE PREVIOUSLY SELECTED
- SX6 2RHD
- SX4 RHDP
- EQ SDTX RETURN
- SPI SPACE 4,10
- ** SPI - SET PREVIEW INFORMATION IN DEMAND FILE ENTRY.
- *
- * ENTRY DEMAND FILE ENTRY IN *RESB*.
- *
- * EXIT PREVIEW INFORMATION SET IN DEMAND FILE ENTRY.
- *
- * USES X - 0, 1, 2, 3, 4, 6, 7.
- * A - 1, 2, 3, 4, 6.
- *
- * CALLS SFN.
- SPI SUBR ENTRY/EXIT
- * SET TIME OF REQUEST AND CHECK REQUEST TYPE.
- SA1 TM
- SA2 RQ
- SA3 RI
- MX0 -6
- BX6 X1
- BX3 -X0*X3
- SA6 RESB+RREQ SET REQUEST TIME
- SX3 X3-RRPP
- NG X3,SPI1 IF TAPE REQUEST
- * SET PACKNAME, PACK RESOURCE TYPE, AND UNIT COUNT.
- MX6 42
- MX7 -12
- BX6 X6*X2 PACK NAME
- LX7 6
- SA6 RESB+RQPV+PVSN SET PACK NAME
- SA6 RESB+RQPV+PVSI
- BX0 -X0*X2 DISPLAY CODE UNIT COUNT
- BX7 -X7*X2 RESOURCE MNEMONIC
- SX0 X0-1R1 UNIT COUNT - 1
- LX7 6
- LX0 9
- SX6 20B
- BX7 X7+X0 MERGE RESOURCE TYPE AND UNIT COUNT
- BX7 X6+X7 SET UNIT COUNT FLAG
- SA7 RESB+RQPV+PRES
- SX6 B0+ CLEAR FLAGS
- SA6 RESB+RQPV+PFLG
- EQ SPI4 SET USER AND JOB IDENTIFICATION
- * SET EXTERNAL VSN, RESOURCE TYPE, AND ACCESS LEVEL.
- SPI1 SA1 EVSN
- SA2 RMN
- SA3 AL
- SA4 BLANK
- BX6 X1
- LX2 12
- SA6 RESB+RQPV+PVSN SET VSN
- LX3 6
- BX4 X1-X4
- SX3 X3+10B SET ACCESS LEVEL AND FLAG
- NZ X4,SPI2 IF NOT SCRATCH REQUEST
- SX3 X3+40B SET SCRATCH VSN FLAG
- SPI2 BX6 X2+X3 MERGE RESOURCE TYPE AND FLAGS
- SA6 RESB+RQPV+PRES
- * SET INTERNAL VSN AND FLAGS.
- MX0 1
- SA1 IVSN
- SA2 TMPF
- SA3 F+FTAP
- BX7 X1
- LX2 59-58
- SA7 RESB+RQPV+PVSI SET VSN
- LX3 59-58
- BX2 X0*X2 TMS REQUEST FLAG
- BX4 X0*X3 LABELED FLAG
- LX2 21-59
- LX3 0-39-59+58
- MX0 -2
- LX4 20-59
- BX3 -X0*X3 PO = R, PO = W FLAGS
- LX3 18-0
- BX3 X2+X3 MERGE TMS AND READ/WRITE FLAGS
- BX6 X3+X4 MERGE LABELED FLAG
- SA6 RESB+RQPV+PFLG SET FLAGS
- * SET USER NAME, FAMILY ORDINAL, AND EJT ORDINAL.
- SPI4 SA1 SSJ=+/COMSSSJ/UIDS
- MX0 42
- BX1 X0*X1
- SA2 FAMO
- RJ SFN SPACE FILL USER NAME
- SA3 JEEO
- BX1 X0*X6 USER NAME
- LX2 12
- BX6 X1+X2 MERGE USER NAME AND FAMILY ORDINAL
- BX6 X6+X3 MERGE EJT ORDINAL
- SA6 RESB+RQPV+PJID SET USER AND JOB INDENTIFICATION
- EQ SPIX RETURN
- TITLE RESOURCE RESERVATION SUBROUTINES.
- RMT SPACE 4,25
- ** RMT - REQUEST MAGNETIC TAPE.
- *
- * ENTRY (FET+10B) = TAPE DESCRIPTORS.
- * (FET+11B - FET+15B) = LABEL DESCRIPTORS.
- * (VA) = VSN ENTRY RANDOM ADDRESS, IF VSN ENTRY PRESENT.
- * VSNB = VSN ENTRY FROM VSN FILE, IF (VA) .NE. 0.
- *
- * EXIT TAPE ASSIGNED AND APPROPRIATELY OPENED.
- * TO *END1*, IF LABEL COMMAND PROCESSING.
- * TO *END2*, IF NOT LABEL COMMAND PROCESSING.
- * TO *PIT*, IF INTERRUPT DETECTED.
- *
- * ERROR TO *PER*, IF CONFLICTING RESOURCE TYPES.
- *
- * USES A - 1, 2, 3, 4, 5, 6, 7.
- * B - 2.
- * X - ALL.
- *
- * CALLS BEV, BPD, COE, COM, CUP, GTM, IDE, IVE, MVE, OPN, PRO,
- * RDF, SDD, UDF, VUR.
- *
- * MACROS MOVE, RETRF, REWIND, SETFET.
- RMT BSS 0 ENTRY
- RJ SDD SET DEVICE TYPE AND DENSITY DISPLAY
- RJ IDE INITIALIZE DEMAND ENTRY
- RJ RDF READ DEMAND FILE ENTRY
- SA1 /CPA/RFCW GET DEMAND FILE RANDOM INDEX
- SA5 DBUF+RNTP GET *NT* RESOURCE DEMAND
- MX3 -6
- LX5 24
- SX6 X1
- BX5 -X3*X5
- NZ X6,RMT1 IF DEMAND ENTRY PRESENT
- SX5 B0+ PREVENT RETURN OF DEMAND FILE
- RJ UDF UPDATE DEMAND FILE
- SX5 B0+ INDICATE NO *NT* DEMAND
- RMT1 RETRF D RETURN DEMAND FILE, RELEASE INTERLOCK
- SA1 F+FTAP BUILD RESOURCE TYPE AND INDEX
- LX1 -55
- MX3 -2
- BX4 -X3*X1 DEVICE TYPE
- SA2 TTDV+X4
- SX3 X4-/COMSMTX/DVNT
- AX2 18
- SX7 X2 RESOURCE TYPE
- NZ X3,RMT3 IF NOT *NT* REQUEST
- LX1 0-51+55 GET DENSITY
- MX3 -3
- BX3 -X3*X1
- SX3 X3-/COMSMTX/D16
- SX7 RHDP INDICATE *HD* REQUEST
- NG X3,RMT2 IF *HD* REQUEST
- SX7 RPEP INDICATE *PE* REQUEST
- ZR X3,RMT2 IF *PE* REQUEST
- SB2 /PER/CRT * CONFLICTING RESOURCE TYPES.*
- NZ X5,PER IF *GE* REQUEST WITH *NT* DEMANDS
- SX7 RGEP INDICATE *GE* REQUEST
- RMT2 SA7 OI SAVE ORIGINAL NT TAPE DENSITY INDEX
- ZR X5,RMT3 IF NO *NT* DEMANDS
- SX7 RNTP INDICATE *NT* REQUEST
- RMT3 SA3 IVSN GET INTERNAL VSN
- SA2 TRID-RMTP+X7 GET RESOURCE INDEX
- SX4 X4-/COMSMTX/DVAT
- NZ X4,RMT3.1 IF NOT *AT* REQUEST
- SA3 EVSN USE EXTERNAL VSN FOR ACS REQUEST
- RMT3.1 SA1 AL REQUESTED ACCESS LEVEL
- LX2 18
- SX1 X1+B1
- LX1 6 POSITION TAPE BYTE POINTER
- BX7 X1+X7 ENTER RESOURCE INDEX (RI)
- SA7 RI ENTER RESOURCE INDEX (RI)
- SA1 F SET VSN CALL FET
- BX6 X3+X2
- SA6 RQ ENTER USER REQUEST (RQ)
- BX7 X1
- SA7 VF
- RJ GTM GET CURRENT TIME
- * GUARANTEE VSN ENTRY.
- SA1 VA CHECK ENTRY PRESENT
- NZ X1,RMT4 IF VSN ENTRY PRESENT
- SA3 F
- SB2 B1+
- RJ IVE INITIALIZE VSN ENTRY
- EQ RMT5 UPDATE VSN FILE
- RMT4 MOVE VSNL,VSNB,VSNE MOVE VSN ENTRY TO WORKING BUFFER
- RMT5 SA1 RI SET RESOURCE INDEX IN VSN ENTRY
- SA2 VSNE+VDFI
- LX1 24
- BX6 X1+X2
- SA6 A2+
- RJ MVE CREATE OR REWRITE VSN ENTRY
- * EXERCISE OVERCOMMITMENT ALGORITHM.
- RMT6 RJ COM CHECK FOR OVERCOMMITMENT
- SX5 X2-/STATUS/OK
- ZR X5,RMT12 IF PERMITTED TO ASSIGN AVAILABLE TAPE
- SX5 /STATUS/OV
- BX5 X5*X2
- NZ X5,RMT9 IF OVERCOMMITMENT REJECTION
- RJ COE CHECK *OFF*/*DOWN* EQUIPMENT
- NZ X6,RMT7 IF *OFF*/*DOWN* EQUIPMENT REQUIRED
- RJ CVA CHECK VSN AVAILABILITY
- ZR X6,RMT8 IF NO PREVIEW DISPLAY MESSAGE
- RMT7 RJ SPM SET PREVIEW DISPLAY MESSAGE
- * PROCESS MISSING VSN.
- RMT8 MX2 36
- SA1 RQ BUILD MISSING VSN EVENT
- BX1 X2*X1
- SA3 TEMV
- RJ BEV
- EQ RMT10 CLEAN UP AND ROLLOUT
- * PROCESS OVERCOMMITMENT REJECTION.
- RMT9 SA3 TEOV
- BX7 X7-X7 CLEAR MOUNT REQUEST
- LX6 X3
- SA7 RESB+RREQ
- * ROLL OUT ON MISSING VSN OR OVERCOMMITMENT.
- RMT10 SA1 A3+B1 SAVE ROLLOUT MESSAGE ADDRESS
- SA6 RE SET ROLLOUT EVENT DESCRIPTOR
- BX7 X1
- SA7 RM
- RJ CUP CLEAN UP REQUEST
- SX5 RE SET ROLLOUT DESCRIPTOR
- SA1 RM GET ROLLOUT MESSAGE ADDRESS
- RJ PRO PROCESS TIMED EVENT ROLLOUT
- * INITIALIZE TO RECHECK FOR OVERCOMMITMENT.
- RMT10.1 SA4 AA
- SB2 X4
- BX6 X6-X6
- GT B2,RMT11 IF *ASSIGN* WITH EST ORDINAL SPECIFIED
- SA6 EQ CLEAR EQUIPMENT ASSIGNMENT
- NG B2,RMT11.1 IF AUTOMATIC ASSIGNMENT
- RMT11 SA1 RQ CLEAR VSN
- MX6 -24
- BX6 -X6*X1
- SA6 A1
- RMT11.1 RJ CCV CHECK FOR CHANGE OF TMS REQUEST VSN
- EQ RMT6 CHECK FOR OVERCOMMITMENT
- * ASSIGN UNIT.
- RMT12 RJ VUR VERIFY UNIT REQUEST
- ZR X6,RMT13 IF UNIT ASSIGNED
- ZR X2,RMT9 IF OPERATOR ASSIGNMENT
- EQ RMT8 SET MISSING VSN EVENT
- RMT13 RJ BPD BUILD PREVIEW DISPLAY
- * OPEN OR REWIND FILE. MAGNET COMPLETES THE TAPE ASSIGNMENT ON
- * RECEIPT OF THE FIRST *CIO* REQUEST. IF AN UNLABELED TMS
- * SCRATCH TAPE IS BEING ASSIGNED, AN EOF WILL BE WRITTEN TO
- * PREVENT A READ OF PREVIOUSLY WRITTEN DATA.
- SA2 CF CHECK CALL TYPE
- SA1 RT CHECK COMMAND TYPE
- NZ X2,RMT14 IF *LFM* OR *REQ* CALL
- NZ X1,RMT15 IF NOT *LABEL* COMMAND
- RMT14 RJ OPN OPEN FILE
- NZ X6,END1 IF FILE OPENED
- RMT15 SETFET F,ERP=E SET ERROR PROCESSING
- SA1 TMPF
- LX1 59-57
- PL X1,RMT16 IF NOT TMS SCRATCH TAPE ASSIGNMENT
- WRITEF F,R INHIBIT READ OF UNLABELED TAPE
- RJ CER CHECK ERROR
- RMT16 REWIND F,R REWIND TO COMPLETE ASSIGNMENT
- RJ CER CHECK ERROR
- SETFET F,ERP=0 CLEAR ERROR PROCESSING
- EQ END1 PROCESS TERMINATION
- RRP SPACE 4,20
- ** RRP - REQUEST REMOVABLE PACK.
- *
- * ENTRY USER RESOURCE REQUEST WORDS ARE BUILT (RQ - TM).
- *
- * EXIT PACK ASSIGNED.
- * TO *END4*, IF NOT OVERCOMMITMENT.
- * TO *PIT*, IF INTERRUPT DETECTED.
- *
- * ERROR TO *PER*, IF PACK OVERCOMMITMENT ERROR.
- *
- * USES A - 1, 3, 6, 7.
- * B - 2.
- * X - 0, 1, 3, 5, 6, 7.
- *
- * CALLS BEV, COE, COM, CUP, IDE, PRO, RDF, SPM, UDF.
- *
- * MACROS INTRC.
- RRP BSS 0 ENTRY
- SA1 /CPA/RFCW CHECK FOR DEMAND FILE ENTRY
- SX5 X1
- NZ X5,RRP1 IF DEMAND FILE PRESENT
- RJ IDE INITIALIZE DEMAND ENTRY
- RJ RDF READ DEMAND FILE
- SX5 B1 SET RETURN DEMAND FILE FLAG
- RJ UDF UPDATE DEMAND FILE ENTRY
- * EXERCISE OVERCOMMITMENT ALGORITHM.
- RRP1 RJ COM CHECK FOR OVERCOMMITMENT
- SA1 SFET+FDTY READ FET DETAILS
- SX5 X2-/STATUS/OK
- SX4 /STATUS/OV
- ZR X5,RRP4 IF PERMITTED TO ACCESS AVAILABLE PACK
- LX1 59-44
- BX5 X4*X2
- PL X1,RRP4 IF EP BIT ZERO
- SA3 PEOV
- NZ X5,RRP2 IF OVERCOMMITMENT REJECTION
- RJ COE CHECK FOR *OFF*/*DOWN* EQUIPMENT
- ZR X6,RRP1.1 IF *OFF*/*DOWN* EQUIPMENT NOT REQUIRED
- RJ SPM SET PREVIEW DISPLAY MESSAGE
- RRP1.1 SA3 PEMV BUILD MISSING PACKNAME EVENT
- SA1 RQ
- MX0 42
- BX1 X0*X1
- RJ BEV
- EQ RRP3 CLEAN UP AND ROLLOUT
- RRP2 BX7 X7-X7 CLEAR MOUNT REQUEST
- LX6 X3
- SA7 RESB+RREQ
- RRP3 SA1 A3+B1 SAVE ROLLOUT MESSAGE ADDRESS
- SA6 RE SET ROLLOUT EVENT DESCRIPTOR
- BX7 X1
- SA7 RM
- RJ CUP CLEAN UP REQUEST
- SX5 RE SET ROLLOUT DESCRIPTOR
- SA1 RM GET ROLLOUT MESSAGE ADDRESS
- RJ PRO PROCESS TIMED EVENT ROLLOUT
- EQ RRP1 REPEAT ALGORITHM
- RRP4 LX7 X2 SET RETURN STATUS
- BX4 X4-X2
- LX7 24
- BX6 X6-X6 CLEAR MOUNT REQUEST
- SA7 SPPR
- SA6 RESB+RREQ
- SX6 -2
- NZ X4,RRP5 IF NOT ONLY OVERCOMMITMENT
- SB2 /PER/RPO * REMOVABLE PACKS OVERCOMMITMENT.*
- EQ PER PROCESS ERROR
- RRP5 INTRC OFF DISABLE INTERRUPT
- SA6 UCRI INDICATE CLEAN-UP REQUIRED IF INTERRUPT
- EQ END4 UPDATE DEMAND FILE
- RRS SPACE 4,10
- ** RRS - REQUEST RESOURCES.
- *
- * EXIT TO *END4* IF NO ERROR.
- * TO *PER* IF ERROR.
- *
- * USES X - 1, 2.
- * A - 1.
- * B - 2.
- *
- * CALLS BRE, BSF, CIC, DEI, OCA, PMM.
- RRS BSS 0 ENTRY
- RJ CRV CHECK RESOURCE VALIDATION
- RJ DEI DEMAND EXCEEDS INSTALLATION CHECK
- SA1 RESB+RVAL GET TOTAL ASSIGNED COUNT
- MX2 -12
- LX1 -12
- BX1 -X2*X1
- ZR X1,END4 IF NO ASSIGNED UNITS
- RJ CIC CHECK FOR INTERNAL CONFLICT
- SB2 /PER/DRC * NT DRIVE CONFLICT.*
- NZ X2,PER IF 9 TRACK DRIVE CONFLICT
- RJ BSF BUILD SCRATCH FILE
- RJ OCA CHECK FOR OVERCOMMITMENT
- NZ X5,END4 IF NO OVERCOMMITMENT
- SB2 /PER/RDE * RESOURCE DEMAND ERROR.*
- EQ PER PROCESS ERROR
- ROA SPACE 4,30
- ** ROA - REQUEST OPERATOR ASSIGNMENT.
- *
- * ENTRY (X4) = 0 IF REQUEST OPERATOR ASSIGNMENT OF EQUIPMENT.
- * (X4) = 1 IF REQUEST OPERATOR ASSIGNMENT ON DUPLICATE
- * VSN OR VERIFICATION OF NON-TMS TAPE REQUEST.
- *
- * TAPE DEVICE MNEMONIC IN FET+1 IF TAPE EQUIPMENT
- * REQUIRED, OTHERWISE DEVICE TYPE ZERO.
- *
- * EXIT (X4) = DEVICE TYPE OF EQUIPMENT ASSIGNED.
- * (EQ) = OPERATOR ASSIGNED EST ORDINAL, IF TAPE DEVICE.
- * OPERATOR VERIFY FLAG CLEARED IN *TMPF*.
- *
- * FOR *NT* REQUEST, DISPLAY CODE FOR DENSITY (*HD*, *PE*,
- * OR *GE*) WILL BE SET IN FET+1 BITS 24-35.
- * FET+7 BITS 54-59 IS THE CHECKPOINT ID FIELD FROM A
- * *LABEL* MACRO CALL OR IS ZERO IN ALL OTHER CASES.
- * DEVICE TYPE OF EQUIPMENT ASSIGNED IS RETURNED IN FET+1.
- * FOR TAPE EQUIPMENT ASSIGNMENTS, EQUIPMENT EST ORDINAL IS
- * RETURNED IN FET+1 BITS 24-29.
- *
- * USES A - 1, 2, 7.
- * X - 1, 2, 4, 7.
- *
- * CALLS COV, CUC.
- *
- * MACROS ROAE, SETRNR.
- ROA SUBR ENTRY/EXIT
- SA1 F+FDTY
- SA2 RMN
- MX7 48
- LX1 -24
- BX7 X7*X1
- BX7 X7+X2 SET RESOURCE MNEMONIC IN FET
- LX7 24
- SA7 A1+
- ROA2 SETRNR OPROLL ALLOW OPERATOR ROLLOUT
- SA1 SSJ=+/COMSSSJ/UIDS
- RJ CUC CHANGE USER NAME IN CONTROL POINT AREA
- ROAE F,X4 REQUEST OPERATOR ASSIGNMENT OF EQUIPMENT
- SA1 =0LSYSTEMX
- RJ CUC CHANGE USER NAME IN CONTROL POINT AREA
- SETRNR NOROLL PREVENT JOB ROLLOUT
- RJ COV CLEAR OPERATOR VERIFY FLAG
- SA1 F+FDTY GET EQUIPMENT TYPE AND EST ORDINAL
- MX2 -11
- LX1 12
- BX4 -X2*X1
- LX1 12
- MX2 12
- BX7 X2*X1
- SA7 EQ
- EQ ROAX RETURN
- SDD SPACE 4,10
- ** SDD - SET DEVICE TYPE AND DENSITY DISPLAY.
- *
- * ENTRY (F+FTAP) = CONVERTED TAPE DESCRIPTORS.
- *
- * EXIT (F+FDTY) = TAPE DEVICE TYPE SET IN BITS 48-59.
- * (RMN) = RESOURCE TYPE MNEMONIC.
- *
- * USES X - 0, 1, 2, 3, 6.
- * A - 1, 2, 3, 6.
- * B - 2.
- SDD SUBR ENTRY/EXIT
- * GET TAPE DEVICE TYPE AND SET MNEMONIC IN ASSIGNMENT FET.
- SA1 F+FTAP
- SA2 F+FDTY
- MX0 -2
- LX1 0-55
- BX6 -X0*X1 TAPE DEVICE TYPE
- SB2 X6
- SA3 TTDV+X6
- MX0 -48
- SX3 X3 DEVICE MNEMONIC
- BX2 -X0*X2
- LX3 -12
- BX6 X3+X2
- LX3 12
- SA6 A2+
- * SET RESOURCE TYPE MNEMONIC.
- LX1 0-51-0+55
- MX0 -3
- BX2 -X0*X1 DENSITY
- SX6 B2-/COMSMTX/DVNT
- NZ X6,SDD1 IF NOT *NT* DEVICE TYPE
- SA3 TSDD+X2-/COMSMTX/D08 GET *NT* DENSITY MNEMONIC
- SDD1 BX6 X3
- SA6 RMN
- EQ SDDX RETURN
- TSDD BSS 0 TABLE OF NINE TRACK DENSITY MNEMONICS
- CON 2RHD 800 CPI
- CON 2RPE 1600 CPI
- CON 2RGE 6250 CPI
- VUR SPACE 4,20
- ** VUR - VERIFY UNIT REQUEST.
- *
- * EXIT (X6) = 0 IF UNIT ASSIGNED.
- * (X6) .NE. 0 IF UNIT NOT ASSIGNED.
- * TO *PIT*, IF INTERRUPT DETECTED.
- * TO *ERR2* OR *ERR3* IF SUBSYSTEM COMMUNICATION ERROR.
- * TO *PER* IF UNIT NOT ASSIGNED AND ASSIGNMENT BY EST
- * ORDINAL.
- *
- * USES X - ALL.
- * A - 1, 2, 3, 4, 6, 7.
- * B - 2, 5.
- *
- * CALLS BTR, CUP, UDF.
- *
- * MACROS INTRC, INTRP, RDSB, RECALL, VSN, WTSB.
- VUR SUBR ENTRY/EXIT
- * CHECK UNIT AVAILABLE AND CORRECT VSN MOUNTED.
- SA1 AU
- RDSB MTSI,/COMSMTX/UNITL,X1,UDT READ UDT ENTRY
- SA1 UDT+/COMSMTX/UST1
- SA2 UDT+/COMSMTX/UVRI
- SA3 UDT+/COMSMTX/UVSN
- SA4 IVSN
- MX0 36
- LX1 59-49
- NZ X2,VUR5 IF UNIT ASSIGNED OR SELECTED FOR UNIT SWAP
- ZR X3,VUR5 IF LABELS NOT READ
- LX3 59-23
- NG X3,VUR5 IF LABEL CHECK IN PROGRESS
- LX3 23-23-59+23
- PL X1,VUR1 IF NOT ACS UNIT
- SA3 UDT+/COMSMTX/UMST GET EXTERNAL VSN
- MX7 -2
- BX7 -X7*X3 ACS UNIT MOUNT STATUS
- SX7 X7-2
- NZ X7,VUR5 IF UNIT NOT MOUNTED
- SA4 EVSN
- VUR1 BX4 X3-X4
- BX4 X0*X4
- NZ X4,VUR5 IF VSN NOT MOUNTED ON UNIT
- * RESERVE TAPE EQUIPMENT.
- MX6 12
- LX1 59-35-59+49
- BX6 X6*X1 SET EST ORDINAL
- SA6 VF+FEVE
- VSN VF RESERVE EQUIPMENT
- SA1 VF+FEVE CHECK RESERVATION
- ZR X1,VUR5 IF EQUIPMENT ALREADY RESERVED
- * SEND ASSIGN UNIT REQUEST TO MAGNET.
- RJ BTR BUILD MAGNET TAPE ASSIGNMENT REQUEST
- INTRC OFF DISABLE INTERRUPT
- WTSB BUF,0 SEND ASSIGNMENT REQUEST
- SA1 SS CHECK STATUS
- SX5 X1-1
- ZR X5,VUR2 IF TRANSFER COMPLETE
- SX5 X1-3
- INTRC ON REENABLE INTERRUPT
- INTRP PIT PROCESS INTERRUPT
- ZR X5,ERR3 IF MAGNET NOT ACTIVE
- EQ ERR2 PROCESS ERROR
- VUR2 RECALL
- SX7 /COMSMTX/RCAL ADDRESS OF CALL BUFFER 0
- RDSB MTSI,1,X7,BUF+20
- SA1 BUF+20
- NZ X1,VUR2 IF REQUEST IN PROGRESS
- SA1 AU
- RDSB MTSI,/COMSMTX/UNITL,X1,UDT READ UDT
- SA1 UDT+/COMSMTX/UVRI
- SA2 JEEO
- AX1 48
- BX1 X1-X2
- ZR X1,VUR3 IF UNIT ASSIGNED
- INTRC ON REENABLE INTERRUPT
- INTRP PIT PROCESS INTERRUPT
- SA1 VF+FEVE CLEAR EQUIPMENT ASSIGNMENT
- MX6 1
- BX6 X1+X6
- SA6 A1
- VSN VF
- EQ VUR5 PROCESS UNIT NOT ASSIGNED
- * BUILD TAPE FILE FNT/FST ENTRY AND UPDATE DEMAND FILE.
- VUR3 SA1 AU
- SA3 UDT+/COMSMTX/UST1
- MX0 12
- MX6 1
- LX3 24
- SA4 F+FTAP
- BX7 X0*X3 EST ORDINAL
- LX1 36
- MX0 4
- LX4 2
- BX7 X7+X1 MERGE EST ORDINAL AND UDT ADDRESS
- LX0 -24
- BX5 X0*X4
- BX7 X7+X5 SET FORMAT
- MX0 2
- LX4 -1 CHECK LABELED AND NON-STANDARD BITS
- BX4 X0*X4
- ZR X4,VUR4 IF NOT LABELED ACCESS
- LX6 11-59
- BX7 X7+X6 SET LABELED STATUS
- VUR4 SA7 VF+FEVE
- VSN VF ENTER EQ AND UDT ASSIGNMENT IN FST
- SX6 1
- SA6 TA SET TAPE ASSIGNED TO MAGNET FLAG
- BX6 X6-X6 CLEAR MOUNT REQUEST
- MX5 0 SET NO RETURN OF DEMAND FILE
- SA6 RESB+RREQ
- RJ UDF UPDATE DEMAND FILE
- INTRC ON REENABLE INTERRUPT
- INTRP PIT PROCESS INTERRUPT
- SX6 B0 SET UNIT ASSIGNED
- EQ VURX RETURN
- * PROCESS UNIT NOT ASSIGNED.
- VUR5 SA2 AA
- SB2 X2
- SX6 B1 SET UNIT NOT ASSIGNED
- LE B2,VURX IF NOT *ASSIGN* WITH EST ORDINAL
- SX7 B0+
- SA7 RESB+RREQ CLEAR MOUNT REQUEST
- RJ CUP CLEAN UP REQUEST
- SB2 /PER/EQN * EQUIPMENT NOT AVAILABLE.*
- EQ PER PROCESS ERROR
- TITLE RESOURCE FILE SUBROUTINES.
- MVE SPACE 4,20
- ** MVE - MAKE VSNFILE ENTRY.
- *
- * ENTRY VSNE = NEW VSN ENTRY.
- * (VA) = VSN RANDOM INDEX.
- * VSN FILE INTERLOCKED.
- *
- * EXIT ENTRY MADE INTO VSN FILE.
- * FNT/FST ENTRY FOR FILE CREATED.
- * VSN FILE INTERLOCK CLEARED.
- * TO *PIT*, IF INTERRUPT DETECTED.
- *
- * USES A - 1, 2, 6, 7.
- * X - 0, 1, 2, 5, 6, 7.
- *
- * CALLS URF.
- *
- * MACROS INTRC, INTRP, VSN.
- MVE SUBR ENTRY/EXIT
- SA1 VSNE+VLFN SET FILE NAME IN VSN FET
- SX7 1
- MX6 0
- BX7 X1+X7
- SA7 VF
- SA1 VA CHECK FOR ENTRY REWRITE
- SA6 VF+FEVE
- NZ X1,MVE1 IF REWRITE
- VSN VF RESERVE VSN FNT ENTRY
- SA1 VA
- INTRC OFF INHIBIT INTERRUPT
- MVE1 SX2 V
- SX6 VSNE
- SX7 VSNB
- SX5 B1 SET RETURN VSN FILE
- SX0 VSNL VSN ENTRY LENGTH
- RJ URF UPDATE RESOURCE FILE
- SA2 VA CHECK FOR EXISTING ENTRY
- SA1 URFA
- NZ X2,MVEX IF EXISTING ENTRY
- BX6 X1
- SA6 A2
- LX6 12
- SA6 VF+FEVE MAKE VSN FNT ENTRY
- VSN VF MAKE VSN ENTRY
- INTRC ON REENABLE INTERRUPT
- INTRP PIT PROCESS INTERRUPT
- EQ MVEX RETURN
- RDF SPACE 4,15
- ** RDF - READ DEMAND FILE.
- *
- * ENTRY (/CPA/RFCW) = DEMAND FILE INDEX IF ENTRY EXISTS.
- * (RESB+RJID) = JOB EJT ORDINAL.
- *
- * EXIT DEMAND FILE ENTRY IN DBUF.
- * DEMAND FILE INTERLOCK SET.
- *
- * ERROR TO *PER*, IF DEMAND FILE ERROR.
- *
- * USES A - 1, 3, 6.
- * B - 2.
- * X - 1, 3, 6.
- *
- * MACROS FATRF, READ, READW.
- RDF SUBR ENTRY/EXIT
- FATRF D,M ATTACH DEMAND FILE
- SA1 /CPA/RFCW CHECK DEMAND FILE RANDOM INDEX
- SX6 X1
- ZR X6,RDF2 IF NO ENTRY
- SA6 D+6
- READ X2,R RANDOM READ DEMAND FILE
- SA1 DBUF+RJID COMPARE JOB IDENTIFICATION
- SA3 RESB+RJID
- BX1 X1-X3
- ZR X1,RDFX IF CORRECT ENTRY
- RDF1 SB2 /PER/DFE *DEMAND FILE ERROR.*
- EQ PER PROCESS ERROR
- * SCAN DEMAND FILE TO VERIFY THAT NO ENTRY EXISTS.
- RDF2 READ X2,R
- RDF3 READW D,BUF,RDEL READ ENTRY
- NZ X1,RDFX IF NO DUPLICATE FOUND
- SA1 BUF+RJID COMPARE JOB IDENTIFICATION
- SA3 RESB+RJID
- BX1 X1-X3
- NZ X1,RDF3 IF ENTRY DOES NOT MATCH
- EQ RDF1 ERROR
- UDF SPACE 4,20
- ** UDF - UPDATE DEMAND FILE.
- *
- * ENTRY (/CPA/RFCW) = DEMAND FILE INDEX IF ENTRY EXISTS.
- * RESB = DEMAND ENTRY TO BE WRITTEN.
- * (X5) = 0, IF DEMAND FILE NOT TO BE RETURNED.
- * DEMAND FILE INTERLOCK SET.
- *
- * EXIT DEMAND FILE UPDATED.
- * (X6) = RANDOM INDEX.
- * (/CPA/RFCW) = DEMAND FILE RANDOM INDEX.
- * IF NEW DEMAND FILE ENTRY IS BUILT, RANDOM
- * INDEX IS ENTERED INTO CONTROL POINT WORD *RFCW*.
- * TO *PIT*, IF INTERRUPT DETECTED.
- *
- * USES A - 1, 2, 5, 6.
- * X - 0, 1, 2, 5, 6, 7.
- *
- * CALLS URF.
- *
- * MACROS ENDRI, INTRC, INTRP.
- UDF SUBR ENTRY/EXIT
- SA2 RESB+RREQ SET/CLEAR PREVIEW DISPLAY CLEAN-UP FLAG
- SA1 /CPA/RFCW GET DEMAND FILE INDEX
- BX6 X2
- SX1 X1
- SA6 PVDC
- SX2 D
- SX6 RESB
- NZ X1,UDF1 IF NOT NEW DEMAND FILE ENTRY
- INTRC OFF DISABLE INTERRUPT
- SX1 -1
- UDF1 SX7 BUF
- SX0 RDEL DEMAND ENTRY LENGTH
- RJ URF UPDATE RESOURCE FILE
- SA5 /CPA/RFCW GET DEMAND FILE INDEX
- SA1 URFA
- SX6 X5
- NZ X6,UDFX IF NOT NEW ENTRY
- BX6 X5+X1
- SA6 A5 SET NEW ENTRY
- ENDRI X1
- SA5 A5
- SX6 X5 SET RANDOM INDEX
- INTRC ON REENABLE INTERRUPT
- INTRP PIT PROCESS INTERRUPT
- EQ UDFX RETURN
- URF SPACE 4,20
- ** URF - UPDATE RESOURCE FILES.
- *
- * ENTRY (X0) = ENTRY LENGTH.
- * (X1) = RANDOM INDEX IF UPDATING EXISTING ENTRY.
- * (X1) = 0 IF TO CREATE NEW ENTRY.
- * (X2) = FET ADDRESS OF RESOURCE FILE.
- * (X5) = 0, IF RESOURCE FILE NOT TO BE RETURNED.
- * (X6) = ADDRESS OF NEW ENTRY.
- * (X7) = WORKING BUFFER ADDRESS IF ALLOCATING NEW ENTRY.
- * RESOURCE FILE INTERLOCK SET.
- *
- * EXIT (URFA) = RANDOM INDEX OF NEW ENTRY.
- * RESOURCE FILE INTERLOCK CLEARED.
- *
- * USES A - 1, 3, 6, 7.
- * B - 6.
- * X - 0, 1, 2, 3, 6, 7.
- *
- * CALLS CTL.
- *
- * MACROS FATRF, READ, READW, RECALL, RETRF, REWRITE,
- * REWRITER, WRITEW.
- URF4 REWRITER X2,R
- URF5 RJ CTL CHECK FOR TRACK LIMIT
- SA1 URFD CHECK FOR RETURN REQUIRED
- ZR X1,URFX IF NOT RETURNING RESOURCE FILE
- RETRF X2 RETURN RESOURCE FILE, RELEASE INTERLOCK
- URF SUBR ENTRY/EXIT
- SA7 URFC
- SA6 A7-B1
- BX7 X5 SAVE RETURN RESOURCE FILE INDICATOR
- SA7 A7+B1
- MX6 0
- BX7 X1
- SA7 A7+B1 SAVE INITIAL RANDOM INDEX
- SA7 A6-B1
- SA6 EF CLEAR EOR FLAG
- BX7 X0 SAVE ENTRY LENGTH
- SA7 URFF
- URF1 FATRF X2,M ATTACH RESOURCE FILE
- SA1 URFA
- SB6 X1+
- GT B6,URF3 IF UPDATING EXISTING ENTRY
- * FIND AVAILABLE ENTRY.
- READ X2
- URF2 SA1 URFA ADVANCE RANDOM INDEX
- SA3 URFF GET ENTRY LENGTH
- SB7 X3
- AX3 6
- IX7 X1+X3
- SA3 URFC
- SA7 A1
- SB6 X3+
- READW X2,B6,B7 READ FILE ENTRY
- SA3 URFC
- BX7 X1
- SA3 X3
- SA7 EF SET END OF FILE FLAG
- NZ X1,URF3 IF EOR
- NZ X3,URF2 IF ENTRY IN USE
- * WRITE ENTRY TO FILE.
- URF3 RECALL X2
- MX0 1 BUILD FET FOR REWRITE
- SA1 URFA
- LX0 30
- SX7 SBUF2
- SA7 X2+2
- SA3 A1+B1
- SA7 A7+B1
- BX6 X0+X1
- SB6 X3
- SA6 X2+6
- SA1 URFF GET ENTRY LENGTH
- SB7 X1
- WRITEW X2,B6,B7
- SA1 X2+FDTY SET USER PROCESSING
- MX0 1
- LX0 45-59
- BX6 X0+X1
- SA6 A1
- SA1 EF CHECK FILE STATUS
- NZ X1,URF4 IF EOR
- REWRITE X2,R
- EQ URF5
- URFA CON 0 RANDOM INDEX TEMPORARY
- URFB CON 0 NEW ENTRY BUFFER ADDRESS
- URFC CON 0 FILE SEARCH WORKING BUFFER ADDRESS
- URFD CON 0 RETURN RESOURCE FILE FLAG
- URFE CON 0 INITIAL RANDOM INDEX
- URFF CON 0 ENTRY LENGTH
- TITLE TAPE ALTERNATE STORAGE SUBROUTINES.
- AEV SPACE 4,15
- ** AEV - ADD ENTRY TO STAGING TAPE VSN LIST.
- *
- * ENTRY (B6) = FWA OF STAGE REQUEST BLOCK.
- *
- * EXIT ENTRY ADDED TO *STVL*.
- * (LSVL) UPDATED.
- *
- * USES X - 1, 2, 3, 4, 6, 7.
- * A - 1, 2, 3, 4, 6, 7.
- *
- * MACROS MEMORY.
- AEV SUBR ENTRY/EXIT
- SA3 B6
- AX3 54 GET FUNCTION CODE
- SX3 X3-2
- ZR X3,AEVX IF STAGE REQUEST FROM OPTICAL DISK
- SA1 B6+B1 GET PACKED VSN
- SA3 B6+7 GET RETRY INFORMATION
- MX2 -24
- SA4 STVL-1 SEARCH VSN LIST
- * SEARCH VSN LIST FOR EXISTING ENTRY WITH THIS VSN.
- AEV1 SA4 A4+B1
- ZR X4,AEV3 IF END OF LIST
- BX6 X1-X4
- BX6 -X2*X6
- NZ X6,AEV1 IF VSN DOES NOT MATCH
- * PROCESS UPDATE OF EXISTING ENTRY.
- MX2 12 GET *FCTF* FLAGS FROM STAGE REQUEST
- BX2 X2*X1
- LX2 -24
- BX4 X4+X2 MERGE *FCTF* FLAGS
- SX2 B1 GET BACKUP VSN FLAG FROM STAGE REQUEST
- LX2 39-0
- BX2 X2*X3
- BX4 X4+X2 UPDATE BACKUP VSN FLAG, IF SET
- MX7 3 CHECK RETRY COUNT
- LX7 36-57
- BX6 X7*X4 EXISTING RETRY COUNT
- BX2 X7*X3 NEW RETRY COUNT
- IX1 X2-X6
- NG X1,AEV2 IF NOT NEWER RETRY INFORMATION
- IX4 X4+X1 UPDATE RETRY COUNT
- AEV2 BX6 X4
- SA6 A4
- EQ AEVX RETURN
- * ADD NEW ENTRY TO VSN LIST.
- AEV3 MX2 -24 GET PACKED VSN
- BX4 -X2*X1
- MX2 12 GET *FCTF* FLAGS
- BX2 X2*X1
- LX2 -24
- BX4 X4+X2
- MX6 4 GET RETRY COUNT AND BACKUP VSN BIT
- LX6 36-56
- BX6 X6*X3
- BX6 X4+X6 MERGE VSN, FLAGS AND RETRY INFORMATION
- SA6 A4
- BX7 X7-X7 CLEAR LWA+1 OF TABLE
- SA7 A4+B1
- SX6 A7 SET ADDRESS+1 OF LAST ENTRY
- SA6 LSVL
- SA2 AEVA CHECK FOR MORE MEMORY NEEDED
- AX2 30
- SX3 A7+/COMSMTX/RCALL+8
- IX3 X2-X3
- PL X3,AEVX IF NOT NEAR END OF FL
- MEMORY CM,A2,R,X2+MEMI INCREASE FIELD LENGTH
- EQ AEVX RETURN
- AEVA VFD 30/RFL=,30/0 CURRENT FIELD LENGTH
- ASF SPACE 4,10
- ** ASF - ATTACH STAGE REQUEST FILE.
- *
- * EXIT STAGE REQUEST FILE ATTACHED.
- *
- * USES X - 1, 2, 6.
- * A - 1, 6.
- *
- * MACROS ATTACH, DEFINE, INTRPT, MESSAGE, RECALL, RETURN,
- * REWIND, ROLLOUT.
- ASF SUBR ENTRY/EXIT
- ASF1 ATTACH R,,,,W,,,DF,,RT ATTACH STAGE REQUEST FILE
- SA1 X2 CHECK FOR ERRORS
- MX6 -8
- AX1 10-0
- BX1 -X6*X1 EXTRACT ERROR CODE
- ZR X1,ASF5 IF FILE ATTACHED SUCCESSFULLY
- SX2 X1-/ERRMSG/FBS
- ZR X2,ASF2 IF FILE BUSY
- SX2 X1-/ERRMSG/FNF
- ZR X2,ASF3 IF FILE NOT FOUND
- SX2 X1-/ERRMSG/PFA
- NZ X2,ASF1 IF NOT PF UTILITY ACTIVE
- ASF2 INTRP PIT PROCESS INTERRUPT
- MESSAGE ASFA,2,R POST MESSAGE
- ROLLOUT ROLLOUT ON BUSY FILE
- REWIND S1,R ASSURE ROLLOUT COMPLETE
- EQ ASF1 RETRY *ATTACH*
- * DEFINE FILE IF FILE MISSING.
- ASF3 RETURN R
- ASF4 RECALL GIVE UP CPU
- DEFINE R,,,,,,,,,DF,N,L
- SA1 X2
- MX6 -8
- AX1 10-0
- BX1 -X6*X1 EXTRACT ERROR CODE
- ZR X1,ASF5 IF DEFINE SUCCESSFUL
- SX2 X1-/ERRMSG/PFA
- NZ X2,ASF4 IF NOT PF UTILITY ACTIVE
- INTRP PIT PROCESS INTERRUPT
- MESSAGE ASFA,2,R POST MESSAGE
- ROLLOUT ROLLOUT ON UTILITY ACTIVE
- EQ ASF4 RETRY *DEFINE*
- * FILE ATTACHED OR DEFINED.
- ASF5 BX6 X6-X6 SET *FILE ATTACHED* FLAG
- SA6 R-1
- EQ ASFX RETURN
- ASFA DATA C*WAITING FOR STAGE REQUEST FILE.*
- GVS SPACE 4,15
- ** GVS - GET VSN FOR STAGING TAPE.
- *
- * ENTRY FROM *LFM* WITH NO VSN SPECIFIED.
- *
- * EXIT (PVST) = PACKED VSN OF STAGING TAPE.
- * VSN ADDED TO FET.
- * TO *RMT* TO REQUEST TAPE.
- *
- * USES X - 0, 1, 2, 3, 5, 7.
- * A - 1, 2, 3, 5, 7.
- * B - 6, 7.
- *
- * CALLS ASF, BPD, BRE, COV, DXB, PRO, UVL.
- *
- * MACROS RDSB, RTRF, WRITER, WTSB.
- GVS BSS 0 ENTRY
- RJ ASF ATTACH STAGE REQUEST FILE
- BX7 X7-X7 SET *OPERATOR ASSIGNMENT* FLAG
- SA7 AA
- BX1 X1-X1 SET *REQUEST FILE NOT YET READ*
- GVS1 RJ UVL UPDATE STAGING TAPE VSN LIST
- RJ BPD BUILD PREVIEW DISPLAY
- RJ BRE BUILD RESOURCE ENVIRONMENT
- SA1 RETE
- SB6 X1
- SB6 B6+B6 INDEX INTO *EVSB* FOR LAST ENTRY
- * GET VSN OF NEXT AVAILABLE TAPE FROM *EVSB*.
- GVS2 SA5 GVSA MASK FOR SECOND WORD OF *EVSB* ENTRY
- MX0 36 MASK OF VSN/PACKNAM
- GVS3 ZR B6,GVS12 IF NO AVAILABLE STAGING TAPES IN *EVSB*
- SB6 B6-2 CHECK NEXT TAPE
- SA1 EVSB+B6 LOAD *EVSB* ENTRY
- SA2 A1+B1
- BX3 X0*X1
- BX6 X5*X2
- ZR X3,GVS3 IF NO VSN PRESENT
- NZ X6,GVS3 IF RESOURCE NOT AVAILABLE
- * CONVERT VSN TO PACKED VSN.
- LX1 12 POSITION OFFSET
- SB7 B1 ASSUME DECIMAL CONVERSION
- BX5 X0*X1 EXTRACT OFFSET
- RJ DXB CONVERT OFFSET TO BINARY
- NZ X4,GVS2 IF ERROR IN CONVERSION
- SX7 X6-5000
- MX0 12
- NG X7,GVS4 IF NOT BACKUP VSN
- BX6 X7 USE LOWER SET (0-4095) IN COMPARISION
- GVS4 SA1 A1 RELOAD VSN
- BX2 X0*X1
- LX2 -36 POSITION VSN PREFIX
- * CHECK IF A STAGING REQUEST EXISTS FOR THIS TAPE.
- SA3 STVL-1
- BX6 X2+X6 BUILD PACKED VSN ENTRY
- GVS5 SA3 A3+B1 ADVANCE TO NEXT ENTRY
- ZR X3,GVS2 IF END OF VSN LIST ENCOUNTERED
- IX7 X3-X6
- MX0 -24
- BX7 -X0*X7
- NZ X7,GVS5 IF PACKED VSN DOES NOT MATCH
- * CHECK TAPE DEVICE TYPE AGAINST REQUEST.
- MX0 -6 GET RESOURCE INDEX
- BX2 -X0*X1
- BX4 X3
- LX4 59-32
- LX3 59-30
- NG X4,GVS7 IF REQUEST FOR *AT* (ACS CARTRIDGE TAPE)
- LX4 59-31-59+32
- NG X4,GVS8 IF REQUEST FOR *CT* (CARTRIDGE TAPE)
- SX7 X2-RGEP
- ZR X7,GVS6 IF AVAILABLE TAPE IS *GE*
- SX7 X2-RPEP
- NZ X7,GVS5 IF AVAILABLE TAPE IS NOT *PE*
- * AVAILABLE *PE* TAPE FOUND WITH STAGE REQUEST OUTSTANDING.
- SX7 /COMSMTX/D16 SET 1600 CPI DENSITY
- SX4 /COMSMTX/DVNT SET *NT* DEVICE TYPE
- EQ GVS9 SET TAPE PARAMETERS INTO FET
- * AVAILABLE *GE* TAPE FOUND WITH STAGE REQUEST OUTSTANDING.
- GVS6 SX7 /COMSMTX/D62 SET 6250 CPI DENSITY
- SX4 /COMSMTX/DVNT SET *NT* DEVICE TYPE
- EQ GVS9 SET TAPE PARAMETERS INTO FET
- * AVAILABLE *AT* TAPE FOUND WITH STAGE REQUEST OUTSTANDING.
- GVS7 SX7 X2-RATP
- NZ X7,GVS5 IF AVAILABLE TAPE IS NOT *AT*
- SX7 /COMSMTX/D380 SET 38000 CPI DENSITY
- SX4 /COMSMTX/DVAT SET *AT* DEVICE TYPE
- EQ GVS9 SET TAPE PARAMETERS INTO FET
- * AVAILABLE *CT* TAPE FOUND WITH STAGE REQUEST OUTSTANDING.
- GVS8 SX7 X2-RCTP
- NZ X7,GVS5 IF AVAILABLE TAPE IS NOT *CT*
- SX7 /COMSMTX/D380 SET 38000 CPI DENSITY
- SX4 /COMSMTX/DVCT SET *CT* DEVICE TYPE
- EQ GVS9 SET TAPE PARAMETERS INTO FET
- * SET TAPE DESCRIPTORS, TAPE BLOCK DEFINITION, AND VSN.
- GVS9 SA2 GVSC GET TAPE DESCRIPTORS
- LX4 55-0
- BX2 X2+X4 SET TAPE DEVICE TYPE
- LX7 51-0
- BX2 X2+X7 SET DENSITY
- SX7 /COMSMTX/TFI
- PL X3,GVS10 IF NOT *LI* FORMAT
- SX7 /COMSMTX/TFLI
- GVS10 SA5 TTFM+X7 GET TAPE FORMAT CHARACTERISTICS
- LX7 30-0 SET TAPE FORMAT
- BX7 X2+X7
- SA2 F+FTAP GET REQUESTED OPTIONS
- MX0 12
- LX0 -12
- BX2 X0*X2 REQUESTED OPTIONS
- BX7 X2+X7 TAPE DESCRIPTORS AND REQUESTED OPTIONS
- SA7 A2 STORE TAPE DESCRIPTORS AND OPTIONS
- LX5 -24
- MX0 -24
- BX7 -X0*X5 SET BLOCK SIZE (WORD COUNT AND OVERFLOW)
- SA7 TB
- SA6 PVST SET PACKED VSN BEING ASSIGNED
- MX0 36
- BX6 X0*X1 VSN
- SA6 EVSN SET EXTERNAL VSN
- SA6 IVSN SET INTERNAL VSN
- SA6 F+FVSN SET VSN FOR POSSIBLE DUPLICATE VSN CHECK
- * CLEAR TAPE ALTERNATE STORAGE VSN LIST.
- SA2 STVL+1
- ZR X2,GVS11 IF ONLY ONE VSN WAS IN LIST
- SA1 GVSB
- SX6 B1
- LX6 36-0 POSITION *MORE VSN-S* FLAG
- BX6 X6+X1
- SA6 A1
- GVS11 WTSB GVSB,0 SEND CODE TO CLEAR VSN LIST
- WRITER R,R FLUSH BUFFER FOR REQUEST FILE
- RJ COV CLEAR OPERATOR VERIFY FLAG
- EQ RMT REQUEST MAGNETIC TAPE
- * NO STAGING TAPE AVAILABLE.
- GVS12 RETRF D DROP INTERLOCK
- SX5 WSTG SET EVENT DESCRIPTOR
- SA1 WSTG+1 *WAITING FOR STAGING TAPE.*
- RJ PRO PROCESS TIMED EVENT ROLLOUT
- SX1 B1 SET *REQUEST FILE ALREADY READ*
- EQ GVS1 TRY AGAIN
- GVSA VFD 12/,12/-0,6/-0,18/,12/-0
- GVSB VFD 12//COMSMTX/SEV,12/,18/0,18//COMSMTX/RCALL CLEAR VSNS
- DATA 0 END OF LIST MARKER
- * CONSTANT TAPE DESCRIPTORS FOR STAGING TAPE ASSIGNMENT.
- * LB=KL, CV=AS.
- GVSC VFD 6/20B,3/0,3//COMSMTX/ANS,12/0,6/0,6/0,24/0
- UVL SPACE 4,20
- ** UVL - UPDATE STAGING TAPE VSN LIST.
- *
- * ENTRY STAGE REQUEST FILE ATTACHED.
- * (X1) = 1, IF STAGE REQUEST FILE ALREADY READ.
- *
- * EXIT VSN LIST UPDATED AND TRANSMITTED TO *MAGNET*.
- *
- * USES X - 0, 1, 2, 6, 7.
- * A - 0, 1, 2, 6.
- * B - 6.
- *
- * CALLS AEV.
- *
- * MACROS MOVE, READEI, READW, RECALL, RDSB, WRITE, WRITEW, WTSB.
- UVL SUBR ENTRY/EXIT
- NZ X1,UVL2 IF REQUEST FILE ALREADY READ
- BX6 X6-X6 INITIALIZE VSN LIST
- SA6 STVL
- SA6 A6+B1
- SX6 A6-B1
- SA6 LSVL
- * READ REQUESTS FROM REQUEST FILE.
- READEI R
- UVL1 READW R,UVLA,/COMSMTX/PFTBL
- NZ X1,UVL2 IF END OF FILE
- SB6 UVLA SET ADDRESS OF ENTRY
- RJ AEV ADD ENTRY TO VSN LIST
- EQ UVL1 READ NEXT REQUEST FROM FILE
- * READ REQUESTS FROM *MAGNET*-S FL AND COPY TO REQUEST FILE.
- UVL2 WRITE R,* SET WRITE CODE
- UVL3 RJ GSR GET STAGE REQUEST FROM *MAGNET*
- NG B6,ERR3 IF CANNOT COMMUNICATE WITH *MAGNET*
- ZR B6,UVL4 IF NO REQUEST
- SA0 B6 HOLD ADDRESS
- WRITEW R,B6,/COMSMTX/PFTBL COPY REQUEST TO REQUEST FILE
- SB6 A0 ADDRESS OF STAGE REQUEST
- RJ AEV ADD ENTRY TO VSN LIST
- EQ UVL3 GET NEXT REQUEST FROM *MAGNET*
- * TRANSFER UPDATED VSN LIST TO *MAGNET*.
- UVL4 SX0 STVL
- SX6 /COMSMTX/SEV
- SA1 X0+B1
- SX7 /COMSMTX/RCALL
- LX6 48-0
- BX6 X6+X7
- ZR X1,UVL5 IF ONLY 1 VSN IN LIST
- SX1 B1
- UVL5 LX1 36-0
- BX6 X6+X1 SET MULTIPLE VSN FLAG
- SA6 UVLB SET VSN HEADER BLOCK
- UVL6 MOVE /COMSMTX/RCALL-1,X0,UVLB+1
- WTSB UVLB,0 SEND VSN LIST
- UVL7 RECALL
- RDSB MTSI,1,/COMSMTX/RCAL,UVLD
- SA1 UVLD
- NZ X1,UVL7 IF NOT PROCESSED
- SA1 UVLB
- SA2 LSVL GET LAST ENTRY+1
- SX6 /COMSMTX/RCALL-1
- IX0 X0+X6
- LX6 18
- IX6 X6+X1
- IX7 X2-X0
- SA6 A1
- PL X7,UVL6 IF MORE IN LIST
- EQ UVLX RETURN
- UVLA BSSZ /COMSMTX/PFTBL REQUEST BLOCK
- UVLB VFD 12//COMSMTX/SEV,30/**,18//COMSMTX/RCALL SET VSN
- BSSZ /COMSMTX/RCALL-1
- UVLD BSS 1 RSB TRANSFER BLOCK
- TITLE PREVIEW DISPLAY SUBROUTINES.
- BPD SPACE 4,15
- ** BPD - BUILD PREVIEW DISPLAY.
- *
- * ENTRY (RESB) = DEMAND ENTRY OF CURRENT REQUESTOR.
- *
- * EXIT PREVIEW BUFFER BUILT AND UPDATED.
- * ACS TAPE MOUNT REQUESTS SENT TO MAGNET.
- *
- * USES X - 0, 1, 2, 4, 6, 7.
- * A - 1, 2, 6.
- * B - 2, 3, 5.
- *
- * CALLS BSP, CRB, CTA, EPB, PTE.
- *
- * MACROS CLEAR, FATRF, PDATE, READ, READW, RETRF, SYSTEM, WTSB.
- BPD SUBR ENTRY/EXIT
- * CLEAR BUFFERS.
- CLEAR RPRB,RPBL
- CLEAR AMRB,RMBL
- * ATTACH DEMAND FILE AND INITIALIZE FOR PRIORITY CALCULATION.
- FATRF D,RM ATTACH DEMAND FILE
- READ X2 READ DEMAND FILE
- PDATE BPDA GET PACKED DATE AND TIME
- SA1 BPDA
- RJ PTE CONVERT TO ABSOLUTE SECONDS
- SA6 BPDA
- * CHECK DEMAND FILE ENTRY FOR MOUNT REQUEST.
- BPD1 READW D,BUF,RDEL READ DEMAND FILE ENTRY
- NZ X1,BPD4 IF END OF FILE
- SA2 BUF+RREQ
- ZR X2,BPD1 IF NO REQUEST
- * CALCULATE PRIORITY.
- *
- * PRIORITY = ((A+1)*T)/(D-A).
- *
- * A = NUMBER OF UNITS ASSIGNED.
- * T = TIME THE REQUEST HAS BEEN WAITING IN SECONDS.
- * D = TOTAL NUMBER OF UNITS DEMANDED.
- SX4 BUF
- SB5 -1 COUNT TOTAL ASSIGNS AND DEMANDS
- RJ CTA
- SX4 B3
- MX0 -10
- BX4 -X0*X4 TRUNCATE ASSIGNS TO 10 BITS
- BX0 -X0*X7 TRUNCATE DEMANDS TO 10 BITS
- NZ X0,BPD2 IF DEMAND SPECIFIED
- SX0 B1+ SET DEFAULT DEMAND
- BPD2 SA1 BPDA
- SA2 BUF+RREQ
- IX1 X1-X2 T
- IX6 X0-X4 D-A
- SX0 X4+B1 A+1
- IX0 X0*X1 (A+1)*T
- IX0 X0/X6 ((A+1)*T)/(D-A)
- NZ X0,BPD3 IF NON-ZERO PRIORITY
- SX0 1 SET PRIORITY
- BPD3 RJ EPB ENTER PREVIEW BUFFER
- EQ BPD1 CHECK NEXT ENTRY
- BPD4 RETRF D RETURN DEMAND FILE, RELEASE INTERLOCK
- * ADD STAGING TAPE REQUESTS TO PREVIEW BUFFER.
- RJ BSP BUILD STAGING TAPE PREVIEW ENTRIES
- * COMPACT AND TRANSFER REQUEST BUFFERS.
- SB2 RPRB
- SB3 RPBE
- RJ CRB COMPACT PREVIEW BUFFER
- SA1 BPDB
- SX2 B4-RPRB LENGTH OF ENTRIES
- MX6 42
- LX2 18
- LX6 18
- BX1 X6*X1
- BX6 X1+X2 SET LENGTH IN REQUEST
- SA6 A1
- SYSTEM SFM,R,RPRB,TPDF*100B TRANSFER PREVIEW REQUESTS
- WTSB BPDB,0 INDICATE PREVIEW DISPLAY UPDATED
- SB2 AMRB+1
- SB3 2
- RJ CRB COMPACT MOUNT REQUEST BUFFER
- SX7 /COMSMTX/AMR
- SX6 B4-AMRB BUFFER LENGTH
- LX7 48
- BX6 X7+X6 MERGE REQUEST CODE AND BUFFER LENGTH
- SA6 AMRB SET REQUEST HEADER
- WTSB AMRB,0 SEND MOUNT REQUESTS TO MAGNET
- EQ BPDX RETURN
- BPDA CON 0 CURRENT TIME
- BPDB VFD 12//COMSMTX/PDU,12/0,18/0,18/1
- BSP SPACE 4,10
- ** BSP - BUILD STAGING TAPE PREVIEW ENTRIES.
- *
- * USES X - ALL.
- * A - 1, 2, 4, 6, 7.
- *
- * CALLS CDD, EPB.
- *
- * MACROS RDSB.
- BSP SUBR ENTRY/EXIT
- RDSB MTSI,1,/COMSMTX/TVSP,BSPA,X GET VSN LIST POINTER
- SA1 SS
- PL X1,BSPX IF *MAGNET* IS NOT ACTIVE
- SA1 BSPA NUMBER OF STAGING VSN-S TO DISPLAY AT ONCE
- ZR X1,BSPX IF NOT DISPLAYING STAGING VSN-S
- * READ LIST OF STAGING TAPE VSN-S FROM *MAGNET*.
- SX7 X1 GET FWA OF TABLE
- AX1 30
- SX5 X1 GET WORD COUNT
- SX2 X5-BSPBL
- NG X5,BSP1 IF NOT OVER MAXIMUM
- SX5 BSPBL
- BSP1 RDSB MTSI,X5,X7,BSPB READ VSN LIST FROM *MAGNET*
- SX6 B0+
- SA6 BSPC SET CURRENT OFFSET
- * GET NEXT STAGING TAPE VSN.
- BSP2 SA1 BSPC GET OFFSET
- SA2 BSPB+X1 LOAD VSN ENTRY
- SX6 X1+1
- SA6 A1+
- ZR X2,BSPX IF ALL VSN ENTRIES PROCESSED
- * CONSTRUCT PREVIEW DATA FROM VSN WORD. THE PREVIEW ENTRY WILL
- * HAVE AN EJT ORDINAL OF ZERO AND A USER NAME OF *(STAGE)*.
- BX3 X2
- LX3 59-32
- SX7 2RAT RESOURCE TYPE FOR *AT* TAPE
- NG X3,BSP3 IF REQUEST FOR *AT* TAPE
- SX7 2RCT RESOURCE TYPE FOR *CT* TAPE
- LX3 59-31-59+32
- NG X3,BSP3 IF REQUEST FOR *CT* TAPE
- SX7 /COMSMTX/DSTD RESOURCE TYPE FOR *NT* TAPE
- BSP3 LX7 12
- SA7 BUF+RQPV+PRES SET RESOURCE TYPE
- MX7 -12
- BX1 -X7*X2 VSN ORDINAL
- LX2 0-12
- BX0 -X7*X2 VSN PREFIX
- BSP4 SX1 X1+10000 ASSURE LEADING ZEROS
- RJ CDD CONVERT ORDINAL TO DISPLAY
- MX3 4*6
- LX4 6
- BX3 X3*X4 EXTRACT DIGITS
- LX0 48-0 POSITION VSN PREFIX
- LX3 -12
- BX6 X3+X0 MERGE PREFIX AND ORDINAL
- SA6 BUF+RQPV+PVSN SET EXTERNAL VSN
- SA6 BUF+RQPV+PVSI SET INTERNAL VSN
- SA4 BSPD USER NAME = *(STAGE)*, EJT ORDINAL = ZERO
- SX6 5 SET LABELED AND READ ONLY FLAGS
- LX6 18
- BX7 X4
- SA6 BUF+RQPV+PFLG
- SA7 BUF+RQPV+PJID SET USER AND JOB IDENTIFICATION
- SX0 B1 SET SPECIAL PRIORITY
- LX0 58-0
- RJ EPB ENTER PREVIEW BUFFER
- EQ BSP2 PROCESS NEXT ENTRY
- BSPA BSS 1 STAGING TAPE VSN POINTER FROM *MAGNET*
- BSPB BSSZ /COMSMTX/SVMX VSN LIST BUFFER
- BSPBL EQU *-BSPB
- BSPC BSS 1 CURRENT OFFSET INTO *BSPB*
- BSPD VFD 42/7L(STAGE),6/0,12/0
- CRB SPACE 4,15
- ** CRB - COMPACT REQUEST BUFFER.
- *
- * ENTRY (B2) = ADDRESS OF FIRST UNCOMPACTED ENTRY.
- * (B3) = UNCOMPACTED ENTRY LENGTH.
- *
- * EXIT BUFFER ENTRIES COMPACTED (PRIORITY WORD REMOVED).
- * COMPACTED ENTRIES TERMINATED WITH ZERO WORD.
- * (B4) = ADDRESS OF TERMINATOR WORD.
- *
- * USES X - 1, 6.
- * A - 1, 6.
- * B - 2, 4, 5.
- *
- * MACROS MOVE.
- CRB SUBR ENTRY/EXIT
- SB4 B2+ INITIALIZE COMPACTED ENTRY POINTER
- SB5 B3-1 SET COMPACTED ENTRY LENGTH
- CRB1 SA1 B2
- ZR X1,CRB2 IF END OF ENTRIES
- MOVE B5,B2+B1,B4 MOVE ENTRY
- SB2 B2+B3 ADVANCE UNCOMPACTED ENTRY POINTER
- SB4 B4+B5 ADVANCE COMPACTED ENTRY POINTER
- EQ CRB1 CHECK NEXT ENTRY
- CRB2 SX6 B0
- SA6 B4 TERMINATE ENTRIES
- EQ CRBX RETURN
- EPB SPACE 4,15
- ** EPB - ENTER PREVIEW OR MOUNT REQUEST BUFFER.
- *
- * ENTRY (X0) = PRIORITY.
- * (BUF) = DEMAND FILE ENTRY.
- *
- * EXIT ENTRY ADDED TO PREVIEW BUFFER OR MOUNT REQUEST BUFFER
- * IF POSSIBLE.
- *
- * USES A - 1, 5, 6.
- * X - 1, 2, 3, 5, 6, 7.
- *
- * MACROS MOVE.
- EPB SUBR ENTRY/EXIT
- * CHECK FOR ACS TAPE REQUEST.
- SA1 BUF+RQPV+PRES
- MX6 -12
- LX1 -12
- BX1 -X6*X1 RESOURCE TYPE
- SX1 X1-2RAT
- NZ X1,EPB3 IF NOT *AT* TAPE REQUEST
- SA5 AMRB+1-RMBE
- * FIND LOCATION IN MOUNT REQUEST BUFFER.
- EPB1 SA5 A5+RMBE GET NEXT ENTRY
- IX5 X5-X0
- PL X5,EPB1 IF OLD ENTRY PRIORITY .GE. NEW
- SX6 AMRB+RMBL-1-RMBE ADDRESS OF LAST ENTRY
- SX2 A5 SET SOURCE ADDRESS
- IX1 X6-X2 SET TO MOVE ALL ENTRIES BUT LAST
- NG X1,EPB2 IF AT END OF FULL BUFFER
- SX3 A5+RMBE SET DESTINATION ADDRESS
- MOVE X1,X2,X3 MOVE LOWER PRIORITY ENTRIES
- * ENTER MOUNT REQUEST IN BUFFER.
- SA1 BUF+RQPV+PVSN GET VSN
- BX6 X0
- SA6 A5 SET PRIORITY WORD
- MX7 36
- BX6 X7*X1 VSN
- SA6 A5+1
- * CHECK FOR PREVIEW DISPLAY MESSAGE ON ACS TAPE REQUEST.
- EPB2 SA1 BUF+RQPV+PFLG
- MX7 -6
- LX1 -12
- BX1 -X7*X1 PREVIEW DISPLAY MESSAGE CODE
- ZR X1,EPBX IF NO PREVIEW DISPLAY MESSAGE
- * FIND LOCATION IN PREVIEW BUFFER.
- EPB3 SA5 RPRB-RPBE
- EPB4 SA5 A5+RPBE GET NEXT ENTRY
- IX5 X5-X0
- PL X5,EPB4 IF OLD ENTRY PRIORITY .GE. NEW
- SX6 RPRB+RPBL-1-RPBE ADDRESS OF LAST ENTRY
- SX2 A5 SET SOURCE ADDRESS
- IX1 X6-X2 SET TO MOVE ALL ENTRIES BUT LAST
- NG X1,EPBX IF AT END OF FULL BUFFER
- SX3 A5+RPBE SET DESTINATION ADDRESS
- MOVE X1,X2,X3 MOVE LOWER PRIORITY ENTRIES
- * ENTER REQUEST IN PREVIEW BUFFER.
- BX6 X0
- SA6 A5 SET PRIORITY WORD
- MOVE PVEL,BUF+RQPV,A5+B1 MOVE PREVIEW ENTRY
- EQ EPBX RETURN
- TITLE UTILITY SUBROUTINES.
- BEV SPACE 4,10
- ** BEV - BUILD EVENT.
- *
- * ENTRY (X1) = VSN OR PACKNAME.
- * (X3) = EVENT SKELETON.
- *
- * EXIT (X6) = ROLLOUT EVENT.
- *
- * USES X - 0, 1, 5, 6, 7.
- BEV SUBR ENTRY/EXIT
- MX0 -12 BUILD ROLLOUT EVENT
- LX1 12
- BX6 -X0*X1 SUM INDIVIDUAL BYTES OF VSN OR PACKNAME
- LX1 12
- BX5 -X0*X1
- IX6 X5+X6
- LX1 12
- BX5 -X0*X1
- IX6 X5+X6
- LX1 12
- BX5 -X0*X1
- IX6 X5+X6
- BX7 -X0*X6 TRUNCATE TO LOWER 12 BITS
- LX7 12
- BX6 X7+X3
- EQ BEVX RETURN
- BTR SPACE 4,10
- ** BTR - BUILD TAPE ASSIGNMENT REQUEST BLOCK.
- *
- * ENTRY UDT ENTRY IN *UDT*.
- *
- * EXIT TAPE ASSIGNMENT REQUEST IN *BUF*.
- *
- * USES X - 1, 2, 3, 4, 6, 7.
- * A - 1, 2, 3, 4, 6, 7.
- *
- * CALLS IUT.
- BTR SUBR ENTRY/EXIT
- * SET REQUEST HEADER.
- SA1 AV
- SA2 RETI
- SX6 /COMSMTX/RMA
- SX7 13B LENGTH OF REQUEST
- LX6 48 FUNCTION CODE
- SX1 X1-EVSB
- AX1 1 *EVSB* INDEX
- IX1 X1-X2 UDT ORDINAL
- LX1 36
- BX6 X6+X1
- BX6 X6+X7
- SA6 BUF SET REQUEST HEADER
- * SET *UVSN* AND *UMST* FOR VERIFICATION BY MAGNET.
- SA1 UDT+/COMSMTX/UVSN
- SA2 UDT+/COMSMTX/UMST
- BX6 X1
- BX7 X2
- SA6 A6+B1 BUF+1
- SA7 A6+B1 BUF+2
- * SET TAPE DESCRIPTORS AND BLOCK SIZE (*UST4*).
- SA1 F+FTAP GET TAPE DESCRIPTORS
- SA2 TB GET BLOCK SIZE
- MX6 30
- BX1 X6*X1
- BX6 X1+X2 MERGE TAPE DESCRIPTORS AND BLOCK SIZE
- SA6 A7+B1 BUF+3
- * SET EJT ORDINAL, VSN FILE ADDRESS, AND REEL NUMBER, (*UVRI*).
- SA1 JEEO GET EJT ORDINAL
- SA2 VA GET VSN FILE RANDOM ADDRESS
- SA3 T+FESN GET REEL NUMBER IF TMS REQUEST
- MX0 -12
- LX1 48
- LX2 24
- BX3 -X0*X3
- LX3 12
- BX1 X1+X2 MERGE EJT ORDINAL AND VSN FILE ADDRESS
- BX6 X1+X3 MERGE REEL NUMBER
- SA6 A6+B1 BUF+4
- * SET TMS FLAGS (*UTMS*).
- RJ IUT INITIALIZE *UTMS*
- SA7 BUF+5
- * SET TMS CATALOG INDEX (*UTCI*).
- SA2 T+FRAN GET CATALOG INDEX
- BX6 X2
- SA6 A7+B1 BUF+6
- * SET EXTERNAL VSN AND FLAGS (*UESN*).
- SA1 EVSN GET EXTERNAL VSN
- SA2 RESB+RQPV+PRES GET RESOURCE TYPE, ACCESS LEVEL, FLAGS
- MX0 36
- BX2 -X0*X2
- BX6 X1+X2 MERGE VSN AND PREVIEW DISPLAY DATA
- SA6 A6+B1 BUF+7
- * SET INTERNAL VSN AND FLAGS (*UISN*).
- SA1 IVSN GET INTERNAL VSN
- SA2 RESB+RQPV+PFLG GET FLAGS
- SA3 UDT+/COMSMTX/UST1
- SA4 TMPF
- BX2 -X0*X2
- LX3 59-49
- LX4 59-58
- PL X3,BTR1 IF NOT ACS UNIT REQUEST
- NG X4,BTR1 IF TMS CONTROLLED REQUEST
- SA1 UDT+/COMSMTX/UVSN USE ACTUAL VSN
- BTR1 BX1 X0*X1 VSN
- BX6 X1+X2 MERGE VSN AND FLAGS
- SA6 BUF+10B
- * SET USER NAME, FAMILY ORDINAL, AND SPECIFIED FILE
- * ACCESSIBILITY (*UUFN*).
- SA1 F+FFAS GET SPECIFIED FILE ACCESSIBILITY
- SA2 RESB+RQPV+PJID GET USER NAME AND FAMILY
- MX0 48
- SX6 7700B
- LX1 -12
- BX2 X0*X2
- BX1 X6*X1
- BX6 X1+X2 MERGE USER NAME, FAMILY, AND FILE ACCESS
- SA6 A6+B1 BUF+11B
- * SET JSN AND PACKED VSN FOR STAGING TAPE ASSIGNMENT.
- SA1 JSN
- SA2 PVST PACKED VSN, IF STAGING TAPE ASSIGNMENT
- BX6 X1+X2
- SA6 A6+B1 BUF+12B
- EQ BTRX RETURN
- BWM SPACE 4,15
- ** BWM - BUILD WAITING FOR TAPE/PACK MESSAGE.
- *
- * ENTRY (X1) = COMPLEMENT OF MESSAGE SKELETON ADDRESS.
- * PREVIEW INFORMATION IN *RESB+RQPV*.
- *
- * EXIT (X1) = ADDRESS OF UPDATED MESSAGE.
- *
- * USES X - 1, 2, 4, 6.
- * A - 1, 2, 4.
- * B - 2, 3, 5.
- *
- * CALLS SFN, SNM.
- BWM SUBR ENTRY/EXIT
- SA2 RESB+RQPV+PRES
- SB5 X1 COMPLEMENT OF MESSAGE SKELETON ADDRESS
- LX2 59-5
- SA1 SCRATCH
- NG X2,BWM1 IF SCRATCH VSN
- SA4 RESB+RQPV+PVSN GET VSN OR PACKNAME
- SA1 BLANK
- BX1 X4-X1 CONVERT TRAILING BLANKS TO ZEROS
- RJ SFN COMPUTE MASK OF NON-BLANK CHARACTERS
- BX1 X7*X4 REMOVE TRAILING BLANKS
- BWM1 SB2 1R+ REPLACEMENT CHARACTER
- SB3 WTPB SET ASSEMBLY BUFFER ADDRESS
- RJ SNM INSERT VSN OR PACKNAME INTO MESSAGE
- SA2 RESB+RQPV+PRES GET RESOURCE TYPE AND UNIT COUNT
- MX6 12
- LX2 59-23
- BX1 X6*X2 RESOURCE MNEMONIC
- LX2 59-4-59+23
- PL X2,BWM2 IF NO UNIT COUNT
- MX6 -6
- LX2 0-9-59+4+60
- BX6 -X6*X2
- SX6 X6+1R1 UNIT COUNT
- LX6 42
- BX1 X1+X6 MERGE UNIT COUNT
- BWM2 SB5 WTPB MESSAGE BUFFER
- SB2 1R- REPLACEMENT CHARACTER
- RJ SNM INSERT RESOURCE TYPE INTO MESSAGE
- SX1 WTPB ADDRESS OF NEW MESSAGE
- EQ BWMX RETURN
- CAL SPACE 4,15
- ** CAL - CHECK ACCESS LEVEL.
- *
- * ENTRY (X2) = EST ORDINAL IN BITS 59-48.
- * (X3) = *EVSB* ENTRY OF VSN TO BE CHECKED.
- * (EQ) = EST ORDINAL IF SPECIFIED.
- *
- * EXIT (TPAL) .GE. 0, IF TAPE ACCESS LEVEL WITHIN RANGE,
- * .LT. 0, IF TAPE ACCESS LEVEL OUT OF RANGE,
- * UNDEFINED, IF NOT CORRECT EQUIPMENT.
- * (X5) = 0, IF NO SPECIFIED EQUIPMENT
- * .NE. 0, IF EQUIPMENT SPECIFIED.
- *
- * USES X - 0, 2, 5, 6, 7.
- * A - 2, 5.
- CAL SUBR ENTRY/EXIT
- SA5 EQ
- ZR X5,CAL1 IF NO SPECIFIED EQUIPMENT
- BX5 X5-X2
- AX5 48
- NZ X5,CALX IF NOT CORRECT EQUIPMENT
- CAL1 SA2 SSMA SYSTEM SECURITY MODE
- BX6 X2
- ZR X6,CAL2 IF UNSECURED SYSTEM
- MX0 -3
- BX7 X3
- LX7 2-14
- BX5 -X0*X7 LOWER BOUND OF *EVSB* ENTRY
- LX7 2-11-2+14
- BX7 -X0*X7 UPPER BOUND OF *EVSB* ENTRY
- SA2 F+4
- LX2 -36
- BX2 -X0*X2 ACCESS LEVEL FROM FET
- IX6 X7-X2
- NG X6,CAL2 IF NOT WITHIN ACCESS LEVEL LIMITS
- IX6 X2-X5
- NG X6,CAL2 IF NOT WITHIN ACCESS LEVEL LIMITS
- LX5 3
- BX6 X7+X5 EQUIPMENT ACCESS LEVELS
- CAL2 SA6 TPAL
- BX5 X5-X5 SET EXIT CONDITION
- EQ CALX RETURN
- CBP SPACE 4,10
- ** CBP - CALCULATE RESOURCE BYTE POSITION.
- *
- * ENTRY (X2) = 51/0, 3/UNIT COUNT, 6/RESOURCE INDEX.
- *
- * EXIT (B2) = RESOURCE INDEX, ADJUSTED FOR CONTINUATION WORD.
- * (B4) = RIGHT SHIFT COUNT TO POSITION RESOURCE
- * ASSIGNED AND DEMAND COUNT IN LOWER 12 BITS.
- *
- * USES B - 2, 4.
- * X - 1, 2, 3, 7.
- CBP SUBR ENTRY/EXIT
- MX3 -6
- BX1 -X3*X2 GET RESOURCE INDEX
- AX2 6
- SB2 X1+B1
- SX7 RPEW*2
- IX3 X7-X2
- MX2 -2
- BX2 -X2*X3
- LX2 2
- BX3 -X3
- LX7 X2,B1
- SB4 X2
- AX3 2
- SB4 B4+X7
- SB2 B2+X3 ADJUST FOR CONTINUATION WORD
- EQ CBPX RETURN
- CCV SPACE 4,10
- ** CCV - CHECK FOR CHANGE OF TMS SCRATCH VSN.
- *
- * EXIT REQUEST PARAMETERS UPDATED IF CHANGE IN TMS SCRATCH
- * VSN.
- *
- * USES X - 0, 1, 2, 6, 7.
- * A - 1, 2, 6, 7.
- *
- * CALLS RDF.
- CCV SUBR ENTRY/EXIT
- * CHECK CHANGE OF SCRATCH *TMS* VSN.
- SA1 TMPF CHECK FOR NON-*TMS* TAPE
- LX1 59-58
- PL X1,CCVX IF NOT *TMS* CONTROLLED REQUEST
- RJ RDF READ DEMAND FILE
- SA1 DBUF+RQPV+PVSI GET INTERNAL VSN
- SA2 IVSN
- MX0 6*6
- BX2 X1-X2
- ZR X2,CCVX IF NO CHANGE IN VSN
- SA1 RQ REPLACE INTERNAL VSN
- SA7 A2 UPDATE INTERNAL VSN
- BX1 -X0*X1
- BX6 X1+X7
- SA6 A1
- SA1 DBUF+RQPV+PVSN GET NEW EXTERNAL VSN
- BX7 X1
- SA7 EVSN UPDATE EXTERNAL VSN
- EQ CCVX RETURN
- CDT SPACE 4,20
- ** CDT - CHECK DEVICE TYPE.
- *
- * ENTRY (A2) = ADDRESS OF DEVICE TYPE TABLE.
- * (X7) = DEVICE CODE RIGHT JUSTIFIED.
- *
- * EXIT (X2) = 0 IF DEVICE TYPE NOT FOUND IN TABLE.
- * (X2) = DEVICE TYPE TABLE ENTRY IF FOUND.
- * (A2) = ADDRESS OF TABLE ENTRY IF FOUND.
- *
- * USES X - 2, 7.
- * A - 2.
- *
- * DEVICE TYPE TABLE FORMAT -
- *
- * 42/ PARAMETERS,6/0,12/ DC
- *
- * DC = TWO CHARACTER DEVICE CODE.
- CDT SUBR ENTRY/EXIT
- CDT1 BX7 X7-X2
- SX7 X7
- ZR X7,CDTX IF ENTRY FOUND
- BX7 X7-X2
- SA2 A2+B1
- NZ X2,CDT1 IF MORE ENTRIES TO CHECK
- EQ CDTX RETURN WITH NOT FOUND STATUS
- CER SPACE 4,15
- ** CER - CHECK FOR *CIO* ERROR ON TAPE FILE OPERATION.
- *
- * EXIT TO CALLER IF NO ERROR.
- * TO *PER* IF ERROR.
- * ERROR PROCESSING CLEARED IF ERROR DETECTED.
- *
- * USES X - 1, 6.
- * A - 1.
- * B - 2.
- *
- * MACROS SETFET.
- CER SUBR ENTRY/EXIT
- SA1 F GET FET STATUS
- MX6 -5
- LX1 -9
- BX1 -X6*X1
- ZR X1,CERX IF NO ERROR
- SETFET F,ERP=0 CLEAR ERROR PROCESSING
- SB2 B0 SET NO MESSAGE
- EQ PER PROCESS ERROR
- CET SPACE 4,15
- ** CET - COPY EQUIPMENT STATUS TABLE (EST).
- *
- * ENTRY (B5) .LT. 0 IF INITIAL CALL.
- *
- * EXIT (B6) = NUMBER OF EST ENTRIES IN BUFFER.
- * (B6) .LT. 0 IF END OF EST.
- *
- * ERROR TO *PER*, IF ENVIRONMENT ERROR.
- *
- * USES A - 1, 2, 6, 7.
- * B - 6.
- * X - 0, 1, 2, 5, 6, 7.
- *
- * MACROS RDSB.
- CET SUBR ENTRY/EXIT
- PL B5,CET1 IF NOT INITIAL CALL
- SA1 /LWC/ESTP GET EST FWA
- MX0 -12
- LX1 24
- SX7 X1
- LX1 12
- BX6 -X0*X1 GET NUMBER OF ENTRIES IN EST
- SA7 CETA
- SA6 A7+B1
- CET1 SA1 CETA GET NEXT BLOCK EST ADDRESS
- SA2 A1+B1 GET REMAINING EST ENTRIES
- MX6 1
- SX5 ESTEB EST ENTRIES PER BLOCK
- SA6 SBUF2
- IX7 X2-X5
- PL X7,CET2 IF STILL MORE BLOCKS TO TRANSFER
- SB6 -B1
- ZR X2,CETX IF END OF EST
- BX7 X7-X7
- LX5 X2 SET REMAINING NUMBER OF ENTRIES
- CET2 SA7 A2 DECREMENT REMAINING ENTRY COUNT
- SB6 X5 NUMBER OF EST ENTRIES TO TRANSFER
- R= X2,ESTE
- IX5 X5*X2 LENGTH OF BLOCK TO TRANSFER
- IX7 X1+X5 ADVANCE EST ADDRESS
- SA7 A1
- RDSB 0,X5,X1,A6 READ EST BLOCK
- EQ CETX RETURN
- CETA CON 0 FWA EST BLOCK
- CON 0 NUMBER OF REMAINING ENTRIES IN EST
- CFA SPACE 4,15
- ** CFA - CHECK FILE ATTACH.
- *
- * ENTRY (X2) = FET ADDRESS.
- * (X6) = FILE MODE FOR ATTACH.
- * IF RESOURCE FILE IS ALREADY ATTACHED AND INTERLOCKED,
- * IT WILL BE REWOUND.
- *
- * EXIT (X2) = FET ADDRESS.
- * (CFAA) = .NE. 0, IF FILE BUSY ROLLOUT OCCURRED.
- * RESOURCE FILE ATTACHED, INTERLOCKED AND REWOUND.
- * TO *PIT*, IF INTERRUPT OCCURRED AND FILE ATTACH IS
- * NOT REQUIRED.
- * TO *PIT2*, IF RETRY COUNT ON FILE ATTACH EXHAUSTED
- * AFTER INTERRUPT HAS OCCURRED.
- *
- * ERROR TO *PER*, IF *PFM* ERROR ON RESOURCE FILE ATTACH.
- *
- * USES A - 0, 1, 6, 7.
- * B - 2, 3.
- * X - 0, 1, 2, 4, 5, 6, 7.
- *
- * CALLS PRO, SFN.
- *
- * MACROS ATTACH, INTRP, MESSAGE, RECALL, REWIND.
- CFA8 REWIND X2,R
- CFA SUBR ENTRY/EXIT
- SA6 CFAC SAVE DEMAND FILE ATTACH MODE
- SA1 X2-1 CHECK FILE INTERLOCK
- MX0 1
- NZ X1,CFA8 IF FILE ALREADY ATTACHED
- SX6 DBMC RESET MESSAGE COUNT
- SA6 CFAB
- SA1 X2+B1 SET EP BIT
- LX0 -15
- BX7 X0+X1
- SA7 A1
- EQ CFA2 ATTACH RESOURCE FILE
- CFA1 SX0 X2+
- INTRP CFA4 PROCESS INTERRUPT
- SA1 AA CHECK FOR EQUIPMENT ASSIGNMENT
- SX2 -1
- PL X1,CFA5 IF NOT AUTOMATIC TAPE ASSIGNMENT
- SX5 PFRE SET ROLLOUT EVENT DESCRIPTOR
- SA1 PFRE+1 GET ROLLOUT MESSAGE ADDRESS
- RJ PRO PROCESS TIMED EVENT ROLLOUT
- SX2 X0+
- CFA2 ATTACH X2,0,,,CFAC,,,DF,FA
- SA1 X2
- MX0 -8
- LX1 -10
- BX5 -X0*X1 ERROR STATUS
- ZR X5,CFA3 IF NO ERRORS
- SX6 X5-1
- SX7 X5-16B
- ZR X6,CFA1 IF FILE BUSY (1)
- ZR X7,CFA1 IF PF UTILITY ACTIVE (16)
- MX0 -3
- BX6 -X0*X5
- LX5 -3
- BX7 -X0*X5
- SX6 X6+2R00
- LX7 6
- MX0 7*6
- IX5 X6+X7
- LX1 10
- LX5 -12
- BX1 X0*X1
- RJ SFN SPACE FILL FILE NAME
- MX0 12
- LX6 -18
- BX6 -X0*X6
- BX6 X6+X5
- SB2 /PER/RFE *RESOURCE PF ERROR NN FILENAM.*
- SA6 B2+2 ENTER *NN FILENAM*
- MESSAGE CFAA ISSUE MESSAGE OF PF ERROR
- EQ PER PROCESS ERROR
- CFA3 MX7 1 SET RESOURCE FILE INTERLOCK
- SA7 X2-1
- SA1 X2+B1 CLEAR EP BIT
- LX7 44-59
- BX7 -X7*X1
- SA7 A1+
- SA3 CFAB
- NZ X3,CFA8 IF NO MESSAGE POSTED
- MESSAGE CFAB,2,R CLEAR MESSAGE
- EQ CFA8 REWIND FILE AND RETURN
- * PROCESS INTERRUPT. DEPENDING ON OPTION SELECTED, WILL DELAY
- * AND RETRY DEMAND FILE ATTACH UNTIL SUCCESSFUL OR FOR
- * REQUESTED NUMBER OF RETRIES. AFTER *DBMC* TRIES, AN
- * OPERATOR MESSAGE IS POSTED. IF THE OPERATOR OVERRIDES THE
- * JOB AT THIS POINT, THE DEMAND FILE ENTRY FOR THE JOB MAY BE
- * LEFT WITH INCORRECT DEMAND AND ASSIGN COUNTS WHICH MAY
- * SUBSEQUENTLY CAUSE A *0RF* HANG.
- CFA4 SA2 UCRI CHECK FOR UPDATE REQUIRED
- ZR X2,PIT IF UPDATE NOT REQUIRED
- CFA5 SA1 CFAB CHECK WAIT FOR RESOURCE FILE MESSAGE
- ZR X1,CFA6 IF MESSAGE ALREADY POSTED
- SX6 X1-1
- SA6 A1
- NZ X6,CFA6 IF WAIT COUNT NOT EXHAUSTED
- MESSAGE (=C*WAITING FOR RESOURCE FILE.*),2,R
- CFA6 NG X2,CFA7 IF UPDATE REQUIRED
- SX6 X2-1
- ZR X6,PIT2 IF NUMBER OF RETRIES EXHAUSTED
- SA6 A2+
- CFA7 RECALL DELAY
- SX2 X0
- EQ CFA2 RETRY FILE ATTACH
- CFAA BSSZ 3 PF ERROR MESSAGE BUFFER
- CFAB CON DBMC DEMAND FILE BUSY MESSAGE COUNT
- CFAC CON 0 DEMAND FILE ATTACH MODE
- CLB SPACE 4,15
- ** CLB - CLEAR BUFFER.
- *
- * ENTRY (A2) = LWA+1 OF BUFFER.
- * (B5) = LENGTH OF BUFFER.
- * (X6) = MASK.
- *
- * EXIT BUFFER CLEARED AS DIRECTED BY MASK.
- * (A7) = FWA BUFFER.
- *
- * USES X - 2, 7.
- * B - 5.
- * A - 2, 7.
- CLB SUBR ENTRY/EXIT
- CLB1 SB5 B5-B1
- NG B5,CLBX IF CLEAR COMPLETED
- SA2 A2-B1
- BX7 X6*X2
- SA7 A2
- EQ CLB1
- CLM SPACE 4,10
- ** CLM - CHECK LEVEL MATCH.
- *
- * *CLM* COMPARES THE ACCESS LEVELS OF THE *RET* TABLE AND
- * THE *RDT* TABLE.
- *
- * ENTRY (B2) = POINTER +1 TO ENTRY IN *RET* TABLE.
- * (B6) = POINTER TO ENTRY IN *RDT* TABLE.
- *
- * EXIT (X0) .LT.0, IF DEMAND OUTSIDE OF ACCESS LEVEL.
- * .GE.0, IF DEMAND WITHIN ACCESS LEVEL.
- *
- * USES X - 0, 5, 6, 7.
- * A - 5.
- CLM SUBR ENTRY/EXIT
- MX0 -3
- SA5 B2-B1 *RET* TABLE ENTRY
- LX5 0-45 POSITION ACCESS LEVEL
- BX7 -X0*X5 LOWER BOUND ACCESS LEVEL
- LX5 3
- BX6 -X0*X5 UPPER BOUND ACCESS LEVEL
- SA5 B6 *RDT* TABLE ENTRY
- LX5 0-36 POSITION ACCESS LEVEL
- BX5 -X0*X5
- IX0 X6-X5 UPPER BOUND - REQUEST
- NG X0,CLMX IF REQUEST ABOVE UPPER BOUND
- IX0 X5-X7 REQUEST - LOWER BOUND
- EQ CLMX RETURN
- COV SPACE 4,10
- ** COV - CLEAR OPERATOR VERIFY FLAG.
- *
- * EXIT OPERATOR VERIFY REQUIRED FLAG CLEARED IN *TMPF*.
- *
- * USES X - 2, 6.
- * A - 2, 6.
- COV SUBR ENTRY/EXIT
- SA2 TMPF
- SX6 B1
- LX6 56-0
- BX6 -X6*X2 CLEAR OPERATOR VERIFY FLAG
- SA6 A2
- EQ COVX RETURN
- CRM SPACE 4,10
- ** CRM - CHECK FOR RESOURCE MATCH.
- *
- * ENTRY (X0) = REQUESTED RESOURCE INDEX AND BYTE POINTER.
- * (X5) = EQUIPMENT RESOURCE INDEX AND BYTE POINTER.
- * (X2) = *PE* RESOURCE INDEX, IF *NT* REQUEST MATCH
- * WITH *GE* EQUIPMENT ALLOWED.
- *
- * EXIT (X7) = 0, IF RESOURCES MATCH.
- *
- * USES X - 5, 7.
- CRM SUBR ENTRY/EXIT
- MX7 -6
- BX5 -X7*X5
- BX0 -X7*X0
- IX7 X0-X5
- ZR X7,CRMX IF MATCH
- SX7 X0-RNTP
- ZR X7,CRM1 IF *NT* REQUEST
- SX7 X0-RPEP
- NZ X7,CRMX IF NOT *PE* REQUEST
- CRM1 SX7 X5-RHDP
- ZR X7,CRMX IF *HD* EQUIPMENT
- SX7 X5-RGEP
- NZ X7,CRMX IF NOT *GE* EQUIPMENT
- SX5 X0-RNTP
- NZ X5,CRMX IF NOT *NT* REQUEST
- SX7 X2-RPEP
- EQ CRMX RETURN
- CRV SPACE 4,10
- ** CRV - CHECK RESOURCE VALIDITY.
- *
- * ENTRY RESB = RESOURCE DEMAND ENTRY, WITH INDIVIDUAL AND
- * TOTAL DEMAND COUNTS CORRECTLY SET.
- *
- * ERROR TO *PER*, IF DEMAND VALIDATION ERROR.
- *
- * USES A - 1, 5.
- * B - 2, 3, 4.
- * X - ALL.
- CRV SUBR ENTRY/EXIT
- SB3 RMTL-1
- SB4 RESB+RMTP
- MX2 -6
- BX3 X3-X3
- SB2 /PER/DVE * DEMAND VALIDATION ERROR.*
- SX4 7 MAXIMUM VALIDATION LIMIT
- CRV1 SA1 B3+B4 COUNT TAPE DEMANDS
- SB3 B3-B1
- SB5 RPEW TAPE ENTRIES PER WORD
- LX1 24
- CRV1.0 BX5 -X2*X1
- IX3 X3+X5
- SB5 B5-B1 DECUREMENT ENTRIES PER WORD
- LX1 12
- NZ B5,CRV1.0 IF MORE ENTRIES IN WORD
- PL B3,CRV1 IF MORE TAPE ENTRIES
- MX0 3
- SA5 RESB+RVAL
- BX6 X0*X5 TAPES VALIDATION LIMIT
- MX2 -12
- LX6 3
- BX2 -X2*X5 TOTAL DEMAND COUNT
- IX1 X6-X4
- LX5 3
- IX2 X2-X3 REMOVABLE PACK DEMANDS
- BX7 X0*X5 REMOVABLE PACK VALIDATION LIMIT
- IX6 X6-X3
- LX7 3
- ZR X1,CRV2 IF UNLIMITED TAPES
- NG X6,PER IF TAPE VALIDATION EXCEEDED
- CRV2 IX1 X7-X4
- ZR X1,CRVX IF UNLIMITED PACKS
- IX7 X7-X2
- NG X7,PER IF PACK VALIDATION EXCEEDED
- EQ CRVX RETURN
- CTA SPACE 4,15
- ** CTA - COUNT TOTAL ASSIGNS AND DEMANDS.
- *
- * ENTRY (X4) = DEMAND ENTRY ADDRESS.
- * (B5) .LT. 0, IF COUNT TOTAL ASSIGNS AND DEMANDS.
- * (B5) .GE. 0, IF COUNT ONLY TAPE ASSIGNS AND DEMANDS.
- *
- * EXIT (B3) = ASSIGNED COUNT (TOTAL OR PARTIAL).
- * (X7) = DEMAND COUNT (TOTAL OR PARTIAL).
- *
- * ERROR TO *PER*, IF TOTAL DEMAND OR ASSIGNED COUNT ERROR.
- *
- * USES A - 1, 2, 5.
- * B - 2, 3, 6.
- * X - 0, 1, 2, 3, 5, 6, 7.
- CTA SUBR ENTRY/EXIT
- SA2 CTAA GET ASSIGNED COUNT MASK
- BX0 X0-X0
- LX3 X2
- BX6 X6-X6
- LX2 -6 DEMAND COUNT MASK
- SB2 RMTP
- SB6 RMTP+RMTL+RRPL
- LT B5,CTA1 IF COUNT TOTAL ASSIGNS AND DEMANDS
- SB6 RMTP+RMTL SET UP TO COUNT TAPE ASSIGNS AND DEMANDS
- CTA1 SA1 X4+B2 ADD UP MULTIPLE RESOURCE DEMANDS PER ENTRY
- BX7 X2*X1
- IX6 X6+X7
- BX1 X3*X1 ADD UP MULTIPLE RESOURCE ASSIGNS PER ENTRY
- IX0 X0+X1
- SB2 B2+B1
- LT B2,B6,CTA1 IF MORE RESOURCES TO COUNT
- SB2 RPEW
- BX7 X7-X7
- SB3 B0
- LX0 -6
- MX2 -12
- CTA2 BX1 -X2*X6 COUNT RESOURCE DEMANDS AND ASSIGNS
- BX3 -X2*X0
- IX7 X7+X1
- SB3 B3+X3
- LX6 -12
- SB2 B2-1
- LX0 -12
- NZ B2,CTA2 IF MORE ENTRIES IN MULTIPLE COUNT
- GE B5,CTAX IF COUNT ONLY TAPE ASSIGNS AND DEMANDS
- SA5 X4+RVAL CHECK TOTAL DEMAND COUNT CORRECT
- SX1 B3
- BX6 -X2*X5
- SB2 /PER/TDE * TOTAL DEMAND COUNT ERROR.*
- LX5 -12
- IX6 X6-X7
- NZ X6,PER IF TOTAL DEMAND COUNT INCORRECT
- BX2 -X2*X5 CHECK TOTAL ASSIGNED COUNT CORRECT
- IX2 X2-X1
- SB2 /PER/TAE * TOTAL ASSIGNED COUNT ERROR.*
- NZ X2,PER IF TOTAL ASSIGNED COUNT INCORRECT
- EQ CTAX RETURN
- CTAA CON 7700770077007700B MASK FOR ASSIGNED COUNTS
- CTE SPACE 4,15
- ** CTE - CHECK FOR TAPE EQUIPMENT.
- *
- * ENTRY (X7) = DEVICE CODE RIGHT JUSTIFIED.
- *
- * EXIT (X2) = 0 IF NOT TAPE DEVICE.
- * (X2) = *TTDV* ENTRY IF TAPE DEVICE.
- * (X7) = TAPE DEVICE TYPE IF TAPE DEVICE.
- *
- * USES X - 2, 7.
- * A - 2.
- *
- * CALLS CDT.
- CTE SUBR ENTRY/EXIT
- SA2 TTDV SET TO SEARCH TAPE DEVICE TABLE
- RJ CDT CHECK FOR TAPE DEVICE
- ZR X2,CTEX IF NOT TAPE DEVICE
- SX7 A2-TTDV SET DEVICE TYPE
- EQ CTEX RETURN
- CTL SPACE 4,20
- ** CTL - CHECK FOR TRACK LIMIT.
- *
- * ENTRY (X2) = FET ADDRESS.
- *
- * EXIT (X2) = FET ADDRESS.
- * TO *URF1*, IF TRACK LIMIT (AFTER TIMED/EVENT ROLLOUT
- * COMPLETED).
- * TO *PIT*, IF TRACK LIMIT DETECTED AND INTERRUPT
- * HAS OCCURRED.
- *
- * ERROR TO *PER*, IF CIO ERROR OTHER THAN TRACK LIMIT
- * DETECTED.
- *
- * USES A - 0, 1, 3, 4, 6, 7.
- * B - 2.
- * X - ALL.
- *
- * CALLS PRO.
- *
- * MACROS INTRP, RETRF, STATUS.
- CTL SUBR ENTRY/EXIT
- SA1 X2 CHECK FOR TRACK LIMIT STATUS
- MX0 -4
- LX1 -10
- BX3 -X0*X1
- MX0 -8 CLEAR STATUS
- BX6 X0*X1
- LX6 10
- SA6 A1
- SA1 X2+FDTY CLEAR USER PROCESSING
- MX0 1
- LX0 45-59
- BX6 -X0*X1
- SA6 A1
- ZR X3,CTLX IF NO ERROR STATUS
- SX5 X3-1
- NZ X5,CTL1 IF NOT TRACK LIMIT
- STATUS X2,P SET EVENT
- MX0 18
- SA4 X2+6
- LX0 -6
- SA3 TLIM
- BX4 X0*X4
- LX4 36
- BX7 X4+X3
- SA7 RE
- SA0 X2
- RETRF X2 RETURN RESOURCE FILE, RELEASE INTERLOCK
- SX5 RE SET ROLLOUT DESCRIPTOR
- INTRP PIT PROCESS INTERRUPT
- SA1 TLIM+1 GET ROLLOUT MESSAGE ADDRESS
- RJ PRO PROCESS TIMED EVENT ROLLOUT
- INTRP PIT PROCESS INTERRUPT
- SX2 A0+ RESTORE FET ADDRESS
- SA1 URFE RESET INITIAL RANDOM INDEX
- BX6 X6-X6
- LX7 X1
- SA6 EF CLEAR EOR FLAG
- SA7 URFA
- JP URF1 RETRY RESOURCE FILE UPDATE
- CTL1 SB2 /PER/CIO *CIO ERROR.*
- EQ PER PROCESS ERROR
- CUC SPACE 4,10
- ** CUC - CHANGE USER NAME IN CONTROL POINT AREA.
- *
- * ENTRY (X1) = USER NAME TO CHANGE TO.
- *
- * EXIT USER NAME SET INTO WORD *UIDW*.
- *
- * USES X - 0, 6.
- * A - 6.
- *
- * MACROS SETPFP.
- CUC SUBR ENTRY/EXIT
- SX6 B1+B1 SET USER NAME FLAG
- SA6 CUCA+0
- MX0 42 SET USER NAME
- BX6 X0*X1
- SA6 CUCA+2
- SETPFP CUCA CHANGE USER NAME
- EQ CUCX RETURN
- CUCA BSSZ 3 *SETPFP* BLOCK
- CUP SPACE 4,10
- ** CUP - CLEAN UP REQUEST.
- *
- * ERROR TO *PER*, IF SHARE TABLE ERROR.
- *
- * USES A - 1, 3, 7.
- * B - 2, 5, 6, 7.
- * X - 1, 3, 5, 7.
- *
- * CALLS BPD, IRC, UDF.
- CUP SUBR ENTRY/EXIT
- SA1 DFDI CHECK FOR DEFAULT DEMAND
- ZR X1,CUP1 IF DEFAULT DEMAND NOT SET
- SB5 B1+B1 DECREMENT TOTAL AND RESOURCE DEMAND COUNTS
- RJ IRC
- CUP1 SB5 -B1 DECREMENT TOTAL AND RESOURCE ASSIGN COUNTS
- RJ IRC
- SX5 B2-RRPP
- NG X5,CUP3 IF NOT REMOVABLE PACK
- SA1 RQ
- SB6 RRPS+RPSL
- SB7 RRPS
- CUP2 SB6 B6-1
- LT B6,B7,CUP4 IF END OF SHARE TABLE
- SA3 B6+RESB
- BX5 X3-X1
- AX5 18
- NZ X5,CUP2 IF NO MATCH
- BX7 X7-X7 CLEAR SHARE TABLE ENTRY
- SA7 A3
- CUP3 BX5 X5-X5 SET NO DEMAND FILE RETURN
- RJ UDF UPDATE DEMAND FILE
- RJ BPD BUILD PREVIEW DISPLAY
- EQ CUPX RETURN
- CUP4 SB2 /PER/STE *SHARE TABLE ERROR.*
- JP PER PROCESS ERROR
- CVA SPACE 4,10
- ** CVA - CHECK VSN AVAILABILITY.
- *
- * EXIT (X6) = PREVIEW DISPLAY MESSAGE CODE IF OFFSITE TMS
- * TAPE REQUESTED OR IF ACS MOUNT ERROR.
- *
- * USES X - 0, 1, 2, 3, 6, 7.
- * A - 1, 2.
- *
- * MACROS RDSB.
- CVA SUBR ENTRY/EXIT
- * CHECK OFFSITE TMS TAPE.
- CVA2 SA1 TMPF
- SX6 VOS SET VSN OFFSITE
- LX1 59-50
- NG X1,CVAX IF OFFSITE TMS TAPE
- * CHECK ACS MOUNT ERROR.
- SX6 B0 SET NO MESSAGE
- SA1 RESB+RQPV+PRES
- MX7 -12
- LX1 -12
- BX1 -X7*X1 RESOURCE MNEMONIC
- SX1 X1-2RAT
- NZ X1,CVAX IF NOT ACS TAPE REQUEST
- RDSB MTSI,/COMSMTX/VETL,/COMSMTX/VET,CVAA
- SA1 EVSN
- SA2 CVAA-1
- MX0 36
- SX6 B0+ SET NO MESSAGE
- CVA1 SA2 A2+B1
- ZR X2,CVAX IF END OF ENTRIES
- BX3 X1-X2
- BX3 X0*X3
- NZ X3,CVA1 IF NOT SAME VSN
- MX6 -6
- BX6 -X6*X2 PREVIEW DISPLAY MESSAGE CODE
- EQ CVAX RETURN
- CVAA BSSZ /COMSMTX/VETL+1 MOUNT ERROR TABLE AND TERMINATOR
- END SPACE 4,10
- ** END - ENDING SEQUENCES.
- END1 SA1 CF
- ZR X1,END2 IF NOT *DMP=* CALL
- SX7 /STATUS/OK RETURN OK STATUS
- LX7 24
- SA7 SPPR
- END2 SA1 CI
- ZR X1,END6 IF NO CHECKPOINT INDEX
- SETFS F,X1 SET CHECKPOINT FILE STATUS
- EQ END6 RENABLE CHARGE AND END
- END4 SX5 B0 SET NO RETURN FLAG FOR DEMAND FILE
- RJ UDF UPDATE DEMAND FILE
- INTRC ON REENABLE INTERRUPT
- INTRP PIT PROCESS INTERRUPT
- RJ BPD BUILD PREVIEW DISPLAY
- END6 SA1 R-1
- NZ X1,END7 IF STAGE REQUEST FILE NOT ATTACHED
- SETFS R,0 LEAVE FILE ATTACHED
- END7 RENSR /COMSSRU/IARX REENABLE ACCUMULATION WITH IARX CHARGE
- END ENDRUN
- ERR SPACE 4,10
- ** ERR - COMMAND ERROR PROCESSOR.
- ERR SB2 /PER/ARG *ARGUMENT ERROR.*
- EQ PER PROCESS ERROR
- ** ERROR EXIT FOR RSB CALLS.
- ERR1 LX2 1
- NG X2,ERR3 IF NO SUBSYSTEM
- * EQ ERR2 IF SYSTEM ERROR
- ** SUB-SYSTEM COMMUNICATION ERRORS.
- ERR2 SB2 /PER/SCE *SYSTEM ERROR.*
- EQ PER PROCESS ERROR
- ERR3 SB2 /PER/MAG *MAGNETIC TAPE SUBSYSTEM NOT ACTIVE.*
- EQ PER PROCESS ERROR
- ** STAGE PROCESSING ERRORS.
- ERR4 SB2 /PER/SRF *STAGE REQUEST FILE ERROR.*
- EQ PER PROCESS ERROR
- GEE SPACE 4,15
- ** GEE - GET EST ENTRY.
- *
- * ENTRY (X4) = EST ORDINAL.
- *
- * EXIT (BUF) = EST ENTRY OF LENGTH *ESTE*.
- * (A1) = BUF.
- * (X1) = FIRST WORD OF EST ENTRY.
- *
- * UESE A - 1, 6.
- * X - 1, 5, 6, 7.
- *
- * MACROS RDSB.
- GEE SUBR ENTRY/EXIT
- SA1 /LWC/ESTP GET EST FWA
- AX1 36
- R= X5,ESTE
- IX6 X4*X5
- IX7 X6+X1
- MX6 1
- SA6 BUF
- RDSB 0,X5,X7,A6 GET EST ENTY
- SA1 BUF
- EQ GEEX RETURN
- GRI SPACE 4,15
- ** GRI - GET RESOURCE INDEX.
- *
- * ENTRY (X1) = RESOURCE NAME PARAMETER.
- *
- * EXIT (B2) = RESOURCE DEMAND ENTRY PARAMETER INDEX.
- * (B2) = 0 IF ENTRY NOT FOUND.
- * (B7) = UNIT COUNT (1-8).
- * (X6) = 51/0, 3/UNIT COUNT, 6/PARAMETER INDEX.
- *
- * USES A - 3.
- * B - 2, 4, 7.
- * X - 1, 2, 3, 6.
- GRI SUBR ENTRY/EXIT
- MX3 12
- BX2 -X3*X1 NUMBER OF UNITS
- SB7 B1+
- BX1 X3*X1 RESOURCE TYPE
- LX2 18
- NZ X2,GRI2 IF NUMBER OF UNITS SPECIFIED
- SB2 RMTP-1
- SB4 RRPP
- GRI1 SB2 B2+B7
- SA3 TRID-RMTP+B2 GET RESOURCE IDENTIFIER
- BX6 X1-X3
- EQ B2,B4,GRI2 IF END OF TABLE
- NZ X6,GRI1 IF NO MATCH
- SX6 B2
- EQ B7,B1,GRIX IF TAPE ENTRY FOUND
- SA3 A3+B1 GET MAXIMUM NUMBER OF UNITS
- SB7 B1
- SX6 B2+100B
- ZR X2,GRIX IF NUMBER OF UNITS NOT SPECIFIED
- SB7 X2-1R0
- UX3 X3,B4
- SX6 B7 MERGE PARAMETER INDEX AND UNIT COUNT
- LE B7,GRI3 IF INCORRECT NUMBER OF UNITS
- GT B7,B4,GRI3 IF INCORRECT NUMBER OF UNITS
- LX6 6
- SX6 X6+B2
- EQ GRIX RETURN
- GRI2 SB4 RRPP+RRPL SET TO SEARCH REMOVABLE PACKS
- SB2 RRPP-2
- SX6 B7-B1
- SB7 B7+B7
- ZR X6,GRI1 IF NOT END OF SEARCH
- GRI3 SB2 B0
- EQ GRIX RETURN
- GRL SPACE 4,15
- ** GRL - GET RESOURCE LIST INDEX.
- *
- * ENTRY (X7) = DEVICE TYPE, 2 CHARACTERS, RIGHT-JUSTIFIED.
- * (B4) = LENGTH OF TABLE.
- *
- * EXIT (B4) .LT. 0, IF RESOURCE LIST NOT FOUND.
- * (B4) = INDEX OF RESOURCE LIST IN TRSL TABLE.
- *
- * USES A - 3.
- * B - 4.
- * X - 2, 3, 6.
- GRL SUBR ENTRY/EXIT
- MX2 -12
- SA3 TRSL+B4
- GRL1 SB4 B4-B1
- SA3 A3-B1
- NG B4,GRLX IF RESOURCE NOT FOUND IN LIST
- GRL2 LX3 12
- BX6 -X2*X3
- ZR X6,GRL1 IF END OF RESOURCES IN THIS LIST
- BX6 X6-X7
- NZ X6,GRL2 IF NO MATCH
- EQ GRLX RETURN
- GTM SPACE 4,10
- ** GTM - GET CURRENT TIME.
- *
- * EXIT (TM) = TIME IN ABSOLUTE SECONDS.
- *
- * USES X - 1.
- * A - 1, 6.
- *
- * CALLS PTE.
- *
- * MACROS PDATE.
- GTM SUBR ENTRY/EXIT
- PDATE TM GET PACKED DATE AND TIME
- SA1 TM
- RJ PTE SET ABSOLUTE SECONDS
- SA6 TM
- EQ GTMX RETURN
- IDE SPACE 4,15
- ** IDE - INITIALIZE DEMAND ENTRY.
- *
- * EXIT EJT ORDINAL, VALIDATION LIMITS, AND
- * RESOURCE IDENTIFIERS ENTERED INTO RESB BUFFER.
- * SHARE TABLE AREA OF RESB BUFFER CLEARED.
- *
- * USES A - 1, 2, 3, 6, 7.
- * B - 2, 3.
- * X - 1, 2, 3, 6, 7.
- *
- * MACROS CLEAR, MOVE.
- IDE SUBR ENTRY/EXIT
- SA2 JEEO GET JOB EJT ORDINAL
- SA3 SSJ=+/COMSSSJ/ALMS SET VALIDATION LIMITS
- BX6 X2
- LX3 12
- SA6 RESB+RJID
- MX1 6
- BX7 X1*X3
- SA7 RESB+RVAL
- MOVE RMTL+RRPL,TRID,RESB+RMTP RESOURCE IDENTIFIERS
- CLEAR RESB+RRPP+RRPL,RDEL-RRPP-RRPL CLEAR REMAINING ENTRY
- EQ IDEX RETURN
- IRC SPACE 4,25
- ** IRC - INCREMENT RESOURCE COUNT.
- *
- * ENTRY (RI) = REQUESTED RESOURCE INDEX AND BYTE POINTER.
- * (B5) = -1, IF DECREMENT TOTAL AND RESOURCE
- * ASSIGN COUNTS.
- * (B5) = 0, IF INCREMENT TOTAL AND RESOURCE ASSIGN
- * COUNTS.
- * (B5) = 1, IF INCREMENT TOTAL AND RESOURCE DEMAND
- * COUNTS.
- * (B5) = 2, IF DECREMENT TOTAL AND RESOURCE DEMAND
- * COUNTS.
- *
- * EXIT (B2) = RESOURCE INDEX INTO DEMAND ENTRY.
- * TOTAL AND RESOURCE DEMAND OR ASSIGNED COUNTS
- * FOR (RI) RESOURCE IN RESB BUFFER DECREMENTED
- * OR INCREMENTED BY 1.
- *
- * USES A - 2, 3, 6, 7.
- * X - 0, 1, 2, 3, 6, 7.
- *
- * CALLS CBP.
- IRC SUBR ENTRY/EXIT
- SA2 RI CALCULATE RESOURCE BYTE POSITION
- RJ CBP
- SA2 RESB+RVAL INCREMENT/DECREMENT TOTAL COUNT
- SA3 B2+RESB INCREMENT/DECREMENT RESOURCE COUNT
- SX0 B1
- LX1 X0,B4
- GT B5,IRC1 IF PROCESSING DEMAND COUNT
- LX0 12
- LX1 6
- IRC1 IX6 X2+X0
- IX7 X3+X1
- ZR B5,IRC2 IF INCREMENTING ASSIGN COUNTS
- EQ B5,B1,IRC2 IF INCREMENTING DEMAND COUNTS
- IX6 X2-X0 DECREMENT RESOURCE COUNTS
- IX7 X3-X1
- IRC2 SA6 A2
- SA7 A3
- EQ IRCX RETURN
- IUT SPACE 4,10
- ** IUT - INITIALIZE *UTMS*.
- *
- * EXIT (X7) = *UTMS*.
- *
- * USES X - 0, 2, 3, 7.
- * A - 2.
- IUT SUBR ENTRY/EXIT
- SA2 TMPF
- MX0 1
- LX2 59-58
- BX7 X0*X2 SET TMS CONTROL
- LX7 12
- LX2 59-57-59+58
- BX3 X0*X2
- LX3 13
- BX7 X3+X7 SET BLANK LABEL FLAG
- LX2 59-56-59+57
- BX3 X0*X2
- LX3 14
- BX7 X3+X7 SET VERIFY FLAG
- LX2 59-55-59+56
- BX3 X0*X2
- LX3 10
- BX7 X3+X7 SET RESERVE SCRATCH FLAG
- LX2 59-54-59+55
- BX3 X0*X2
- LX3 9
- BX7 X3+X7 SET SYMBOLIC ACCESS FLAG
- LX2 59-52-59+54
- BX3 X0*X2
- LX3 11
- BX7 X3+X7 SET USER OWNED FLAG
- EQ IUTX RETURN
- IVE SPACE 4,20
- ** IVE - INITIALIZE VSN ENTRY.
- *
- * ENTRY (X3) = FILE NAME IN UPPER 42 BITS.
- * (B2) = 0, IF ONLY SET UP IDENTIFICATION IN VSN ENTRY,
- * OTHERWISE INITIALIZE ENTIRE ENTRY.
- *
- * EXIT DEMAND FILE RANDOM INDEX, JOB EJT ORDINAL,
- * AND FILE NAME SET IN VSNE BUFFER.
- * AREA FOR VSN ENTRIES IN VSNE BUFFER CLEARED FOR ENTRY
- * CONDITION (B2) .NE. 0.
- *
- * USES X - 1, 2, 4, 6, 7.
- * A - 1, 2, 6, 7.
- *
- * MACROS CLEAR.
- IVE SUBR ENTRY/EXIT
- SA2 JEEO GET JOB EJT ORDINAL
- SA1 /CPA/RFCW GET DEMAND FILE RANDOM INDEX
- MX4 42
- LX2 48
- BX6 X4*X3 SET FILE NAME
- BX7 -X4*X1
- BX7 X7+X2
- SA6 VSNE+VLFN
- SA7 VSNE+VDFI
- ZR B2,IVEX IF SET UP IDENTIFICATION ONLY
- CLEAR VSNE+VRLC,VSNL-VRLC CLEAR VSN AREA
- EQ IVEX RETURN
- OPN SPACE 4,25
- ** OPN - OPEN FILE.
- *
- * ENTRY (FET+10 - FET+13) = NOS LABEL FET PARAMETERS.
- * (LABL) = NOS/BE LABEL PARAMETERS (STANDARD/EXTENDED).
- * (OO) = OPEN OPTION.
- * (RT) = REQUEST TYPE.
- * (CF) = CALL FLAG.
- *
- * EXIT (X6) .NE. 0 IF FILE OPENED.
- * (X6) = 0 IF FILE NOT OPENED.
- * TO *PER* IF ERROR.
- *
- * ON OPEN/WRITE CALLS, FIELDS WHICH ARE BINARY ZERO WILL CAUSE
- * THE TAPE EXECUTIVE TO USE DEFAULT VALUES.
- * ON ALL OTHER OPEN CALLS, BINARY ZERO FIELDS WILL CAUSE THE
- * TAPE EXECUTIVE TO SKIP THE COMPARISON BETWEEN THE TAPE LABEL
- * AND THE FIELD.
- *
- * USES X - ALL.
- * A - 1, 2, 3, 5, 6, 7.
- * B - 2, 3, 5, 6.
- *
- * CALLS CDD, CER.
- *
- * MACROS MOVE, OPEN, POSMF, SETFET, SETRNR.
- OPN SUBR ENTRY/EXIT
- SA3 F+FTAP CHECK IF OPEN REQUIRED
- SX6 B0+ SET FILE NOT OPENED
- LX3 1
- PL X3,OPNX IF UNLABELED
- LX3 1
- NG X3,OPNX IF NON-STANDARD LABELS
- SETFET F,ERP=E SET ERROR PROCESSING
- SA2 OO
- SA1 F+FDTY
- MX7 1
- LX7 -18
- NG X2,OPN7 IF STANDARD NOS/BE OPEN
- BX7 X1+X7 SET XL BIT
- SA7 A1
- NZ X2,OPN6 IF EXTENDED NOS/BE OPEN
- * TRANSLATE NOS FET TO EXTENDED LABEL.
- SA1 F+FID1 SHIFT FILE IDENTIFIER
- MX0 36
- SA5 OPNA
- BX6 X0*X1
- LX6 -24
- BX7 X5+X6
- SA7 LABL
- SA3 F+FID2
- BX6 X0*X3
- BX1 -X0*X1
- BX7 X6+X1
- LX7 36
- SA2 F+FMSI SHIFT MULTI-SET IDENTIFIER
- SA7 A7+B1
- BX2 X0*X2
- MX0 6
- LX3 36
- BX3 X0*X3
- LX2 -6
- BX7 X2+X3
- SA7 A7+B1
- MX0 30
- SA2 F+FCRD SHIFT CREATION/RETENTION DATES
- BX7 -X0*X2
- BX5 X0*X2
- MX3 0
- ZR X2,OPN2 IF NO DATES
- SA3 A5+B1 OPNB
- NZ X7,OPN1 IF CREATION DATE
- BX3 -X0*X3
- OPN1 NZ X5,OPN2 IF RETENTION DATE
- BX3 X0*X3
- OPN2 MX0 12
- LX7 18
- BX5 X0*X2
- SB6 B1+B1
- LX5 12
- BX7 X7+X5
- MX0 18
- BX7 X7+X3
- LX2 12
- SA7 A7+B6 LABL+4
- BX2 X0*X2
- MX0 6
- SA1 F+FFAS SHIFT FILE ACCESSIBILITY
- LX1 36
- BX1 X0*X1
- LX1 -18
- SA5 A5+B6 OPNC
- BX7 X1+X2
- BX6 X7+X5
- MX7 0
- SA6 A7+B1 LABL+5
- SA7 A6+B1 LABL+6
- SA7 A7+B1 LABL+7
- MX0 -15
- SA1 F+FSQN SHIFT FILE SEQUENCE NUMBER
- BX1 -X0*X1
- ZR X1,OPN3 IF NO FILE SEQUENCE NUMBER
- RJ CDD
- MX0 -24
- BX4 X0*X4
- SA3 A5+B1 OPND
- BX7 X3+X4
- LX7 X7,B2
- BX7 -X0*X7
- LX7 30
- MX0 -15
- OPN3 SA7 A6-B6 LABL+3
- SA1 F+FGRN SHIFT GENERATION NUMBER
- BX1 -X0*X1
- ZR X1,OPN4 IF NO GENERATION NUMBER
- RJ CDD
- MX0 -24
- BX4 X0*X4
- SA3 OPND
- BX7 X3+X4
- LX7 X7,B2
- SA1 LABL+3
- BX7 -X0*X7
- LX7 6
- BX7 X1+X7
- SA7 A1
- OPN4 MX0 -15
- SA1 F+FSTN SHIFT FILE SECTION NUMBER
- BX1 -X0*X1
- ZR X1,OPN5 IF NO FILE SECTION NUMBER
- RJ CDD
- MX0 -24
- BX4 X0*X4
- SA3 OPND
- BX7 X3+X4
- LX7 X7,B2
- BX7 -X0*X7
- MX0 -18
- SA1 LABL+2
- LX7 -6
- BX5 -X0*X7
- BX6 X5+X1
- SA6 A1
- MX0 6
- BX7 X0*X7
- SA1 A1+1
- BX7 X1+X7
- SA7 A1
- OPN5 MX0 -9
- SA1 F+FGVN SHIFT GENERATION VERSION NUMBER
- LX1 -15
- BX1 -X0*X1
- ZR X1,OPN6 IF NO GENERATION VERSION NUMBER
- RJ CDD
- MX0 -24
- BX4 X0*X4
- SA3 OPND
- BX7 X3+X4
- LX7 X7,B2
- MX0 -12
- BX7 -X0*X7
- SA1 LABL+3
- MX0 -6
- LX7 -6
- BX5 -X0*X7
- BX6 X5+X1
- SA6 A1
- MX0 6
- BX7 X0*X7
- SA1 A1+B1
- BX7 X1+X7
- SA7 A1
- OPN6 SX7 BUFL BUILD EXTENDED LABEL BUFFER
- SX6 BUF
- LX7 18
- BX7 X6+X7
- SA7 F+9 ENTER XL BUFFER POINTER
- SX6 80
- SA6 BUF EXTENDED LABEL CONTROL WORD
- MOVE 8,LABL,BUF+1 MOVE EXTENDED LABEL
- SX7 B0+
- SA7 BUF+9 TERMINAL CONTROL WORD
- EQ OPN8 CHECK TYPE OF OPEN
- OPN7 MOVE 4,LABL,F+11B MOVE STANDARD LABEL PARAMETERS
- OPN8 SA2 F+FTAP CHECK TYPE OF OPEN
- SA1 MF CHECK MULTI-FILE POSITIONING
- SA3 FS
- MX0 -3
- BX6 -X0*X1
- PL X2,OPN9 IF NO LABEL WRITE REQUEST
- NG X3,OPN9 IF NOT FIRST OPEN
- SX3 X1-10B
- NG X3,OPN10 IF SEQUENCE NUMBER .LE. 1
- OPN9 SX4 X6-4
- PL X4,OPN11 IF POSMF
- NG X2,OPN10 IF WRITE LABEL
- OPEN F,ALTER,R
- EQ OPN12 CHECK FOR ERROR
- OPN10 OPEN F,WRITE,R
- EQ OPN12 CHECK FOR ERROR
- OPN11 SETRNR ROLL ALLOW JOB ROLLOUT
- POSMF F,R POSITION MULTI-FILE SET TAPE
- OPN12 RJ CER CHECK ERROR
- SETFET F,ERP=0 CLEAR ERROR PROCESSING
- SX6 B1 SET FILE OPENED
- EQ OPNX RETURN
- OPNA VFD 60/0LHDR1
- OPNB VFD 6/0,6/1H ,30/0,6/1H ,12/0
- OPNC VFD 24/0,36/6H000000
- OPND VFD 36/0,24/4H0000
- LABL BSS 8 LABEL TEMPORARY
- PER SPACE 4,20
- ** PER - PROCESS ERROR.
- *
- * ENTRY (B2) = ERROR MESSAGE ADDRESS.
- * (B2) = 0 IF ERROR MESSAGE ALREADY ISSUED.
- *
- * EXIT FATAL ERROR SET IN *SPPR* RESPONSE IF *DMP=* CALL.
- * ERROR FLAG RESET IF INTERRUPT OCCURRED.
- * JOB ABORTED IF COMMAND CALL.
- * *RESEX* TERMINATED WITH *ENDRUN* IF *DMP=* CALL.
- *
- * USES A - 1, 6, 7.
- * X - 0, 1, 3, 5, 6, 7.
- *
- * CALLS TMA.
- *
- * MACROS ABORT, INTRP, MESSAGE, RENSR, REPRIEVE, RETRF,
- * UNLOAD.
- PER BSS 0 ENTRY
- SA1 D
- AX1 18
- SX1 X1
- ZR X1,PER1 IF RESOURCE FILE NAMES NOT SET
- RETRF D RETURN DEMAND FILE
- RETRF V RETURN VSN FILE
- PER1 SA1 F
- AX1 18
- ZR X1,PER2 IF REQUESTED FILE NAME NOT SET
- SA1 FS CHECK IF FILE PREVIOUSLY ASSIGNED
- NZ X1,PER2 IF FILE NOT TO BE RETURNED
- UNLOAD F
- PER2 SA1 R-1
- NZ X1,PER2.1 IF *PFM* REQUEST FILE NOT PRESENT
- UNLOAD R
- PER2.1 SX7 /STATUS/FE SET FATAL ERROR
- LX7 24
- SA7 SPPR SET *DMP=* RESPONSE
- RJ TMA PROCESS *TMS* ABORT
- ZR B2,PER2.2 IF NO MESSAGE
- MESSAGE B2 ISSUE ERROR MESSAGE TO DAYFILE
- PER2.2 RENSR /COMSSRU/IARX REENABLE ACCUMULATION WITH IARX CHARGE
- INTRP PER3 RESET ERROR IF INTERRUPT OCCURRED
- SA1 CF CHECK CALL FLAG
- NZ X1,END IF *DMP=* CALL
- ABORT
- PER3 REPRIEVE RPVB,RESET,0 RESET ERROR FLAG
- PMM SPACE 4,10
- ** PMM - PROCESS *MAGNET* MISSING.
- *
- * USES A - 1, 2.
- * X - 1, 2, 5, 6.
- *
- * CALLS PRO.
- *
- * MACROS RETRF.
- PMM SUBR ENTRY/EXIT
- RETRF D RETURN DEMAND FILE, RELEASE INTERLOCK
- SX5 MSUB SET MISSING SUBSYSTEM ROLLOUT DESCRIPTOR
- SA1 MSUB+1 GET ROLLOUT MESSAGE ADDRESS
- RJ PRO PROCESS TIMED EVENT ROLLOUT
- EQ PMMX RETURN
- PNE SPACE 4,10
- ** PNE - PROCESS NAMED ERROR.
- *
- * ENTRY (B2) = MESSAGE ADDRESS.
- * (X1) = 48/,12/ JOB EJT ORDINAL.
- *
- * EXITS TO *PER*.
- PNE BSS 0 ENTRY
- SA2 /LWC/EJTP GET FWA EJT
- MX0 -12
- BX1 -X0*X1
- SX7 EJTE
- IX7 X7*X1
- AX2 36
- IX7 X7+X2
- RDSB 0,1,X7,PNEA GET JOB SEQUENCE NUMBER
- SA1 PNEA
- MX0 24 MERGE JOB SEQUENCE NUMBER INTO MESSAGE
- SA2 B2
- BX1 X0*X1
- LX0 -6
- BX2 -X0*X2
- LX1 -6
- BX6 X1+X2
- SA6 A2
- EQ PER PROCESS ERROR
- PNEA VFD 1/1,59/0 JOB SEQUENCE NUMBER
- SPACE 4,10
- ** FATAL ERROR MESSAGES.
- QUAL PER
- ARG DATA C* ARGUMENT ERROR.*
- AXD DATA C* JJJJ ASSIGNS EXCEED DEMANDS.*
- CCI DATA C* INCORRECT COMMAND.*
- CIO DATA C* CIO ERROR.*
- CRT DATA C* CONFLICTING RESOURCE TYPES.*
- DEC DATA C* NT DENSITY CONFLICT.*
- DEX DATA C* DEMAND EXCEEDED.*
- DFE DATA C* DEMAND FILE ERROR.*
- DRC DATA C* NT DRIVE CONFLICT.*
- DVE DATA C* DEMAND VALIDATION ERROR.*
- EQN DATA C* EQUIPMENT NOT AVAILABLE.*
- FCL DATA C* FRAME COUNT TOO LARGE.*
- FCS DATA C* FRAME COUNT TOO SMALL.*
- FRU DATA C* FORMAT REQUIRES UNLABELED TAPE.*
- IAL DATA C* INCORRECT ACCESS LEVEL FOR EQUIPMENT.*
- ICD DATA C* INCORRECT CONVERSION MODE FOR TAPE DEVICE TYPE.*
- ICM DATA C* INCORRECT CONVERSION MODE.*
- IDD DATA C* INCORRECT DENSITY FOR TAPE DEVICE TYPE.*
- IDF DATA C* INCORRECT DENSITY FOR FORMAT.*
- IDN DATA C* INCORRECT DENSITY.*
- IEF DATA C* INCORRECT END OF TAPE OPTION FOR FORMAT.*
- IEQ DATA C* INCORRECT EQUIPMENT.*
- ILC DATA C* INCORRECT LFM CALL.*
- IRC DATA C* INCORRECT RESOURCE COUNT.*
- IRT DATA C* INCORRECT RESOURCE TYPE.*
- IRS DATA C* INSUFFICIENT RESOURCES ON SYSTEM.*
- ITF DATA C* INCORRECT TAPE FORMAT.*
- MAG DATA C* MAGNETIC TAPE SUBSYSTEM NOT ACTIVE.*
- MAR DATA C* JJJJ MISSING RESOURCE.*
- MDE DATA C* MISSING DEMAND FILE ENTRY.*
- MET DATA C* MULIPLE END OF TAPE OPTIONS SELECTED.*
- MVE DATA C* MISSING VSN OR EQUIPMENT ASSIGNMENT.*
- NAL DATA C* VSN ?????? NOT IN ACS LIBRARY.*
- NSL DATA C* NOISE SIZE TOO LARGE.*
- NRA DATA C* VSN ?????? NOT IN REQUESTED ACS.*
- NVA DATA C* NOT VALIDATED FOR REQUESTED ACCESS LEVEL.*
- NVS DATA C* NO VSN SPECIFIED ON ACS TAPE REQUEST.*
- NVU DATA C* NOT VALIDATED FOR WRITING UNLABELED TAPES.*
- PTL DATA C* PRIOR TAPE ASSIGNMENT LOST.*
- RDE DATA C* RESOURCE DEMAND ERROR.*
- REV DATA C* RESOURCE ENVIRONMENT ERROR.*
- RFE DATA C* RESOURCE PF ERROR NN FFFFFF.*
- RIE DATA C* RESEX ABORT - INTERNAL ERROR.*
- RNS DATA C* RESOURCE NEGATIVE SHARE COUNT.*
- ROT DATA C* RESEX ABORT - OPERATOR TERMINATION.*
- RPO DATA C* REMOVABLE PACKS OVERCOMMITMENT.*
- RRL DATA C* RESEX ABORT - SYSTEM RESOURCE LIMIT.*
- RSF DATA C* RESOURCE SCRATCH FILE ERROR.*
- RTI DATA C* RESEX ABORT - TERMINAL INTERRUPT.*
- RTM DATA C* RESEX ABORT - TAPE MANAGER.*
- SCE DATA C* SYSTEM ERROR.*
- SRF DATA C* STAGE REQUEST FILE ERROR.*
- STE DATA C* SHARE TABLE ERROR.*
- STM DATA C* JJJJ SHARE TABLE MISMATCH.*
- TAE DATA C* TOTAL ASSIGNED COUNT ERROR.*
- TDC DATA C* TAPE DEVICE TYPE CONFLICT.*
- TDE DATA C* TOTAL DEMAND COUNT ERROR.*
- UAL DATA C* UNKNOWN ACCESS LEVEL NAME.*
- UAV DATA C* USER ACCESS NOT VALID.*
- UOL DATA C* VSN ?????? UNREADABLE OPTICAL LABEL.*
- VFE DATA C* VSN FILE ERROR.*
- WED DATA C* WRITE ENABLE AND DISABLE OPTIONS BOTH SELECTED.*
- QUAL *
- PRO SPACE 4,15
- ** PRO - PROCESS TIMED EVENT ROLLOUT.
- *
- * ENTRY (X1) = ROLLOUT MESSAGE ADDRESS IF .GT. 0.
- * = COMPLEMENT OF MESSAGE ADDRESS IF WAITING FOR
- * PACK OR VSN MESSAGE.
- * (X5) = TIMED/EVENT ROLLOUT DESCRIPTOR ADDRESS.
- *
- * CALLS BWM.
- *
- * MACROS MESSAGE, REWIND, ROLLOUT.
- PRO SUBR ENTRY/EXIT
- PL X1,PRO1 IF NOT WAITING FOR TAPE/PACK MESSAGE
- RJ BWM BUILD MESSAGE
- PRO1 MESSAGE X1,2,R ISSUE ROLLOUT MESSAGE
- ROLLOUT X5 PERFORM TIMED/EVENT ROLLOUT
- REWIND S1,R GUARANTEE ROLLOUT COMPLETE
- MESSAGE PROA,2,R CLEAR ROLLOUT MESSAGE
- EQ PROX RETURN
- PROA CON 0
- PIT SPACE 4,15
- ** PIT - PROCESS INTERRUPT.
- *
- * ENTRY AT *PIT2*, IF ALL RETRIES OF DEMAND FILE ATTACH
- * FAILED.
- *
- * EXIT TO *PER*.
- *
- * USES A - 1, 6.
- * B - 2.
- * X - 1, 5, 6.
- *
- * CALLS BPD, CUP, IDE, RDF, UDF.
- *
- * MACROS INTRC, MOVE.
- PIT BSS 0 ENTRY
- INTRC OFF DISABLE INTERRUPT
- SA1 UCRI CHECK FOR DEMAND FILE CLEAN-UP REQUIRED
- SX6 X1+B1
- BX7 X7-X7
- PL X6,PIT1 IF NO DEMAND FILE CLEAN-UP REQUIRED
- * CLEAR PREVIEW DATA AND DECREMENT ASSIGN COUNT.
- SA7 RESB+RREQ CLEAR MOUNT REQUEST
- SA6 A1 INDICATE UPDATE IS REQUIRED
- RJ CUP CLEAN-UP DEMAND FILE ENTRY
- EQ PIT2 PROCESS ERROR
- PIT1 SA1 PVDC CHECK FOR PREVIEW DISPLAY CLEAN-UP
- ZR X1,PIT2 IF NO PREVIEW DATA
- * CLEAR PREVIEW DATA IN DEMAND FILE AND REBUILD PREVIEW
- * DISPLAY.
- SX6 DFRC SET RETRY COUNT FOR DEMAND FILE ATTACH
- SA6 UCRI
- RJ IDE INITIALIZE DEMAND ENTRY
- RJ RDF READ DEMAND FILE
- MOVE RDEL,DBUF,RESB COPY DEMAND FILE ENTRY
- SX6 B0 CLEAR MOUNT REQUEST
- BX5 X5-X5 SET NO DEMAND FILE RETURN
- SA6 RESB+RREQ
- RJ UDF UPDATE DEMAND FILE
- RJ BPD BUILD PREVIEW DISPLAY
- PIT2 SA1 RPVA GET REPRIEVED ERROR MESSAGE ADDRESS
- SB2 X1+
- EQ PER PROCESS ERROR
- RPV SPACE 4,15
- ** RPV - REPRIEVE PROCESSOR.
- *
- * EXIT RESUMES EXECUTION WHERE INTERRUPTED, IF TERMINAL
- * USER BREAK ONE.
- * TO *PIT* TO PROCESS ERROR, IF *CPU ERROR EXIT*
- * OR *PP CALL ERROR*.
- * TO *PIT* TO PROCESS INTERRUPT, IF INTERRUPT IS
- * ENABLED.
- * RE-ENBLES SRU ACCUMULATION AND RESETS ERROR FLAG,
- * IF *PP ABORT*.
- * RESUMES PRIOR EXECUTION IN INTERRUPT HANDLER MODE,
- * IF INTERRUPT PROCESSING IS DISABLED.
- *
- * USES A - 1, 2, 6, 7.
- * X - 1, 2, 6, 7.
- *
- * MACROS RENSR, REPRIEVE.
- RPV BSS 0 ENTRY
- * IGNORE USER BREAK ONE.
- SA1 RPVB+/COMSRPV/OSEF CHECK ERROR FLAG
- MX6 -12
- BX1 -X6*X1
- SX1 X1-TIET
- NZ X1,RPV1 IF NOT TERMINAL USER BREAK 1
- REPRIEVE RPVB,RESUME,237B RESUME PRIOR EXECUTION
- * CHECK ERROR CLASS.
- RPV1 SA1 RPVB+/COMSRPV/ERCL CHECK ERROR CLASS
- SX6 /PER/RTI SET TERMINAL INTERRUPT MESSAGE
- LX1 59-19
- MX7 18
- NG X1,RPV2 IF TERMINAL INTERRUPT
- LX1 59-15-59+19
- SX6 /PER/ROT SET OPERATOR TERMINATION MESSAGE
- NG X1,RPV2 IF OPERATOR TERMINATION
- SX6 /PER/RRL SET RESOURCE LIMIT
- LX1 59-14-59+15
- NG X1,RPV2 IF RESOURCE LIMIT
- LX1 59-16-59+14
- PL X1,RPV1.1 IF NOT PP ABORT
- RENSR /COMSSRU/IARX REENABLE SRU ACCUMULATION
- REPRIEVE RPVB,RESET,0 RESET ERROR FLAG
- * PROCESS *CPU ERROR EXIT* AND *PP CALL ERROR*.
- RPV1.1 SX6 /PER/RIE SET INTERNAL ERROR
- SA6 RPVA
- EQ RPV3 PROCESS ERROR
- * PROCESS OPERATOR INTERRUPT / RESOURCE LIMIT.
- RPV2 SA6 RPVA SET INTERRUPT INDICATOR
- SA1 RPVC CHECK FOR INTERRUPT INHIBITED
- ZR X1,RPV3 IF CONTROL RETURN NOT REQUIRED
- REPRIEVE RPVB,IRESUME,237B RESUME PRIOR EXECUTION
- RPV3 SA1 F GUARANTEE ALL FETS COMPLETE
- SX7 B1
- BX6 X1+X7
- SA2 D
- SA6 A1
- BX6 X2+X7
- SA1 V
- SA6 A2
- BX6 X1+X7
- SA2 R
- SA6 A1
- BX7 X2+X7
- SA7 A2
- EQ PIT PROCESS INTERRUPT
- RPVA CON 0 INTERRUPT FLAG (ERROR MESSAGE ADDRESS)
- RPVB BSS 0 REPRIEVE PROCESSING PARAMETER BLOCK
- VFD 36/0,12/RPVBL,12/0
- VFD 30/0,30/RPV
- BSSZ 7
- BSSZ 16 EXCHANGE PACKAGE
- RPVBL EQU *-RPVB
- RPVC CON 0 CONTROL RETURN REQUIRED INDICATOR
- RSB SPACE 4,15
- ** RSB - MAKE RSB REQUEST.
- *
- * ENTRY (X1) = SUBSYSTEM IDENTIFICATION.
- * (X5) = WORD COUNT.
- * (X6) = ADDRESS TO SEND TO.
- * (X7) = ADDRESS FROM.
- *
- * USES A - 2, 7.
- * X - 1, 2, 5, 6, 7.
- *
- * CALLS SYS=.
- RSB SUBR ENTRY/EXIT
- SA2 RSBA
- LX5 36
- BX6 X6+X5
- LX7 18
- BX7 X7+X6
- LX1 18
- BX6 X1+X2
- SA7 X6
- RJ =XSYS=
- EQ RSBX RETURN
- RSBA VFD 18/3LRSB,12/2000B,12/0,18/SS RSB CALL SKELETON
- SPM SPACE 4,10
- ** SPM - SET PREVIEW DISPLAY MESSAGE.
- *
- * ENTRY (X6) = *COMSRSX* MESSAGE CODE.
- *
- * EXIT MESSAGE CODE SET IN PREVIEW DATA.
- *
- * USES X - 1, 6, 7.
- * A - 1, 6.
- SPM SUBR ENTRY/EXIT
- SX7 X6-MXPN
- NG X7,SPM1 IF NOT EST ORDINAL MESSAGE
- SA1 AV
- SA1 X1+ GET *EVSB* ENTRY
- MX7 9
- BX1 X7*X1 EST ORDINAL
- LX1 -3
- BX6 X6+X1 MERGE ERROR CODE AND EST ORDINAL
- SPM1 SA1 RESB+RQPV+PFLG
- LX6 12
- MX7 42
- BX1 X7*X1
- BX6 X1+X6 SET ERROR AND PARAMETER
- SA6 A1+
- EQ SPMX RETURN
- TMA SPACE 4,10
- ** TMA - *TMS* ABORT PROCESSING.
- *
- * EXIT CALL *TFM* IF *TMS* IS ENABLED TO CLEAN UP
- * THE TAPE CATALOG ON INTERRUPTS OR ABORTS.
- *
- * USES X - 1.
- * A - 1.
- *
- * MACROS RECALL, TMS.
- TMA SUBR ENTRY/EXIT
- SA1 TMPF
- LX1 59-58
- PL X1,TMAX IF NOT *TMS* CONTROLLED REQUEST
- SA1 TA
- NZ X1,TMAX IF TAPE ASSIGNED TO *MAGNET*
- RECALL F WAIT FOR UNLOAD TO COMPLETE
- TMS T,RAPS CALL TAPE MANAGER
- EQ TMAX RETURN
- WSB SPACE 4,10
- ** WSB - WRITE SUBSYSTEM BLOCK TO MAGNET.
- *
- * ENTRY (X6) = BUFFER ADDRESS.
- * (X7) = MAGNET BUFFER NUMBER.
- *
- * USES A - 1, 6.
- * X - 1, 6, 7.
- *
- * CALLS SYS=.
- WSB SUBR ENTRY/EXIT
- SA1 WSBA
- LX6 18
- BX1 X1+X6 SET BUFFER ADDRESS IN CALL
- SX6 MTSI
- LX7 48
- LX6 30
- BX6 X7+X6 MERGE BUFFER NUMBER AND SUBSYSTEM ID
- SA6 X1+ INITIALIZE STATUS WORD
- BX6 X1
- RJ SYS= SEND BLOCK TO MAGNET
- EQ WSBX RETURN
- WSBA VFD 18/3RSIC,6/20B,18/0,18/SS SIC CALL SKELETON
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMCCDD
- *CALL COMCCIO
- *CALL COMCCOD
- *CALL COMCCPM
- *CALL COMCDTC
- *CALL COMCDXB
- QUAL COMSMTX
- QUAL$ EQU 1
- LIST X
- *CALL COMCSRI
- LIST *
- QUAL *
- GSR EQU /COMSMTX/GSR
- *CALL COMCLFM
- *CALL COMCMVE
- *CALL COMCPFM
- *CALL COMCRDW
- *CALL COMCSFN
- *CALL COMCSNM
- *CALL COMCSYS
- *CALL COMCWTW
- TITLE BUFFERS.
- ** BUFFERS.
- USE //
- RESB BSSZ RDEL DEMAND FILE ENTRY BUFFER
- VSNE BSSZ VSNL NEW VSN FILE ENTRY BUFFER
- RDT BSSZ RDTL RESOURCES DEMANDED TABLE
- VBUF EQU * VSN FILE (RSXVID) I/O BUFFER
- DBUF EQU * DEMAND FILE (RSXDID) I/O BUFFER
- SBUF2L MAX IOBL,/COMSMTX/MUNIT*/COMSMTX/UNITL
- SBUF2 BSSZ SBUF2L SCRATCH 2 I/O BUFFER
- BUF BSSZ BUFL SHORT SCRATCH BUFFER
- RET BSSZ RETL RESOURCE EQUIPMENT TABLE
- EVSB BSSZ EVBL ENVIRONMENT VSN BUFFER
- BUF2 EQU * SHORT SCRATCH BUFFER
- ERRNG VSNL-/COMSMTX/MUNIT*2 *BUF2* OVERFLOWS *VSNB*
- VSNB BSSZ VSNL VSN FILE ENTRY BUFFER
- UDT BSSZ /COMSMTX/UNITL MAGNET UNIT DESCRIPTOR TABLE ENTRY
- * BUFFERS OVERLAYING PRESET.
- SBUF1 BSSN IOBL SCRATCH 1 I/O BUFFER
- TDDS BSSN TDDSL TABLE OF CHAINED EQUIPMENTS
- RPRB BSSN RPBL *RESEX* FORMAT PREVIEW BUFFER
- AMRB BSSN RMBL ACS TAPE MOUNT REQUESTS BUFFER
- * TAPE ALTERNATE STORAGE PROCESSING BUFFERS.
- RBUF BSSN IOBL REQUEST FILE BUFFER
- LSVL CON STVL ADDRESS OF LAST *STVL* ENTRY+1
- * STVL - STAGING TAPE VSN LIST.
- *
- *T 20/ ,1/B,3/RTY,12/TF,24/ PACKED VSN
- *
- * B SELECT BACKUP VSN.
- * RTY RETRY COUNTER.
- * TF *FCTF* FLAGS FROM PFC.
- * PACKED VSN PACKED VSN OF STAGING TAPE.
- STVL BSSN 100B STAGING TAPE VSN LIST (CAN EXPAND)
- RFL1 EQU *+4 END OF BUFFERS
- END BSSN END TAG DEFINITION SEQUENCE
- TITLE COMMAND PRESET ROUTINES.
- ASSIGN SPACE 4,15
- *** ASSIGN,DV,F,P1,P2,...,PN.
- *
- * ASSIGN FILE *F* TO DEVICE TYPE *DV* WITH PARAMETERS P1,P2,
- * ...,PN. OPTIONAL PARAMETERS ARE APPLICABLE TO MAGNETIC TAPE
- * ONLY.
- *
- *
- * ASSIGN,N,F,P1,P2,...,PN.
- *
- * ASSIGN FILE *F* TO EST ORDINAL *N* WITH PARAMETERS P1,P2,
- * ...,PN. OPTIONAL PARAMETERS ARE APPLICABLE TO MAGNETIC TAPE
- * ONLY.
- ASSIGN BSS 0 ENTRY
- * VALIDATE COMMAND PARAMETERS.
- SX7 -1 SET REQUEST TYPE FOR *ASSIGN*
- SA7 RT
- SA7 AL ACCESS LEVEL PERMISSION
- SX5 ASSIGNC
- RJ CCP COMMAND PROCESSOR
- RJ POP PICK OUT PARAMETER
- NG B5,ERR IF NO EQUIPMENT TYPE OR EST ORDINAL
- SX1 X1-1R=
- ZR X1,ERR IF SEPARATOR IS *=*
- SA5 POPA ASSEMBLE EST ORDINAL
- SB7 B0 ASSUME OCTAL VALUE
- RJ DXB
- NZ X4,ASG1 IF NON-NUMERIC DEVICE DESIGNATION
- SA3 /LWC/ESTP CHECK FOR ORDINAL OUTSIDE EST
- LX3 24
- AX3 48
- IX3 X6-X3
- PL X3,ERR IF BEYOND LAST EST ORDINAL
- EQ ASG2 SET EQUIPMENT IN FET
- ASG1 SA5 A5 CHECK EQUIPMENT TYPE
- MX2 12
- BX7 -X2*X5
- BX6 X5
- NZ X7,ERR IF MORE THAN 2 CHARACTERS
- ASG2 SA6 ASGA SAVE EQUIPMENT TYPE/NUMBER
- RJ AFO ASSEMBLE FILE NAME AND TAPE OPTIONS
- UNLOAD F,R RETURN FILE
- SA4 ASGA
- MX2 12
- BX5 X2*X4 CHECK TYPE OF ASSIGN
- SX7 B0
- NZ X5,ASG3 IF ASSIGN BY EQUIPMENT TYPE
- LX4 -12
- ASG3 SA3 F+FDTY SET EQUIPMENT TYPE / EST ORDINAL IN FET
- SA7 VA CLEAR VSN ADDRESS
- BX6 -X2*X3
- BX6 X6+X4
- LX4 12
- SA6 A3
- ZR X5,ASG4 IF ASSIGN BY EST ORDINAL
- * ASSIGN BY EQUIPMENT TYPE.
- LX5 -48
- BX7 X5
- RJ CTE CHECK FOR TAPE DEVICE TYPE
- ZR X2,ASG6 IF NON-TAPE DEVICE SPECIFIED
- SX6 B0 SET ASSIGNMENT BY DEVICE TYPE
- EQ ASG10 ASSIGN TAPE DEVICE
- * ASSIGN BY EST ORDINAL.
- ASG4 RJ GEE GET EST ENTRY
- MX7 -12
- LX1 -12
- BX7 -X7*X1 DEVICE TYPE
- SX5 X7 SAVE DEVICE TYPE
- RJ CTE CHECK FOR TAPE EQUIPMENT
- NZ X2,ASG5 IF TAPE DEVICE SPECIFIED
- SX4 X4+7000B SET ASSIGN-BY-ORDINAL FLAG
- LX4 48
- IX6 X4+X3 RESET EST ORDINAL IN FET
- SA6 A3
- EQ ASG6 ASSIGN NON-TAPE EQUIPMENT
- ASG5 SA1 ASGA GET EST ORDINAL
- SX6 X1
- LX6 -12
- SA6 EQ SET EST ORDINAL
- SX6 1 SET ASSIGN BY EST ORDINAL
- EQ ASG10 ASSIGN TAPE DEVICE
- * ASSIGN NON-TAPE DEVICE.
- ASG6 SX1 X5-2RTT
- SX7 X5+
- NZ X1,ASG8 IF NOT *TT* DEVICE
- SA1 OT
- SX1 X1-IAOT
- ZR X1,ASG9 IF INTERACTIVE JOB
- SB2 /PER/IEQ * INCORRECT EQUIPMENT.*
- EQ PER PROCESS ERROR
- ASG8 SA2 SPVT SET TO CHECK *ASSIGN* DEVICE TYPES
- RJ CDT CHECK DEVICE TYPE
- NZ X2,ASG9 IF SPECIAL VALIDATION NOT REQUIRED
- RJ CJV CHECK JOB VALIDATION
- ASG9 REQUEST F,UNIT REQUEST NON-MAGNETIC TAPE EQUIPMENT
- EQ END2 CHECK CHECKPOINT INDEX AND END
- * ASSIGN TAPE DEVICE.
- ASG10 SA3 TT
- SA1 F+FTAP
- SA6 AA SET ASSIGNMENT TYPE
- SX6 X7-/COMSMTX/DVAT
- SB2 /PER/IEQ * INCORRECT EQUIPMENT.*
- ZR X6,PER IF *AT* DEVICE TYPE
- MX6 -2
- LX7 55
- LX6 55
- ZR X3,ASG11 IF NO OPTIONAL DEVICE TYPE PARAMETER
- BX2 X1-X7
- BX2 -X6*X2
- ZR X2,ASG12 IF SAME DEVICE TYPE
- SB2 /PER/TDC * TAPE DEVICE TYPE CONFLICT*.
- EQ PER PROCESS ERROR
- ASG11 SX6 B1
- BX7 X1+X7 SET DEVICE TYPE
- SA6 A3 SET DEVICE TYPE SPECIFIED
- SA7 A1
- ASG12 RJ VCD VERIFY COMMAND DEFAULTS
- EQ VTR VALIDATE TAPE REQUEST
- ASGA CON 0 ASSIGNED DEVICE TYPE OR EST ORDINAL
- LABEL SPACE 4,10
- *** LABEL,F,P1,P2,...,PN.
- *
- * REQUEST AUTOMATIC ASSIGNMENT OF FILE *F* TO MAGNETIC TAPE OR
- * VALIDATE OR WRITE LABELS ON ASSIGNED TAPE FILE *F* WITH
- * PARAMETERS P1,P2,...PN.
- LABEL BSS 0 ENTRY
- SX7 B0 SET REQUEST TYPE FOR *LABEL*
- SB1 1 B1=1
- MX6 1
- SA7 RT
- SA6 AL ACCESS LEVEL PERMISSION
- SX5 LABELC
- RJ CCP COMMAND PROCESSOR
- RJ AFO ASSEMBLE FILE NAME AND TAPE OPTIONS
- SA1 FS
- ZR X1,LRC IF *TE* FILE OR FILE NOT FOUND
- * PROCESS *LABEL* COMMAND ON ASSIGNED TAPE FILE.
- RJ VCD VERIFY COMMAND DEFAULTS
- SA1 F+FTAP
- RJ CTI CONVERT TAPE DESCRIPTORS
- RJ VTD VERIFY TAPE DESCRIPTORS
- NZ B2,PER IF ERROR IN TAPE DESCRIPTORS
- BX6 X1 UPDATE TAPE DESCRIPTORS
- SA6 A1
- RJ TBD BUILD TAPE BLOCK DEFINITION
- RJ MFA CHECK *TMS* MULTI-FILE ASSIGNMENT
- RJ OPN OPEN FILE
- EQ END2 CHECK CHECKPOINT INDEX AND END
- REQUEST SPACE 4,10
- *** REQUEST,F,P1,P2,...,PN.
- *
- * REQUEST AUTOMATIC ASSIGNMENT OF FILE *F* TO MAGNETIC
- * TAPE WITH PARAMETERS P1,P2,...,PN. THE TAPE MAY BE
- * LABELED, UNLABELED, OR A MULTI-FILE SET.
- REQUEST BSS 0 ENTRY
- SX7 1 SET REQUEST TYPE
- SX5 REQUESC
- SA7 RT
- MX6 1
- SA6 AL ACCESS LEVEL PERMISSION
- RJ CCP COMMAND PROCESSOR
- RJ AFO ASSEMBLE FILE NAME AND TAPE OPTIONS
- SA1 FS
- NZ X1,END2 IF EXISTING FILE NOT ASSIGNED TO *TE*
- EQ LRC PROCESS *REQUEST* COMMAND
- RESOURC SPACE 4,10
- *** RESOURC,RT1=N1/AL,RT2=N2/AL,.....RTN=NN/AL.
- *
- * SPECIFY MAXIMUM SIMULTANEOUS USAGE OF MAGNETIC TAPE AND
- * REMOVABLE DISK PACK RESOURCES.
- *
- * RT RESOURCE TYPE.
- * N NUMBER OF UNITS DEMANDED.
- * AL ACCESS LEVEL, FOR TAPE DRIVES ONLY.
- * ( SEE *COMSMLS* FOR MICRO DEFINITION.)
- RESOURC BSS 0 ENTRY
- SX5 RESOURS
- RJ CCP COMMAND PROCESSOR
- RES1 RJ BRE BUILD RESOURCE ENVIRONMENT
- PL X0,RES2 IF SUBSYSTEM NOT MISSING
- RJ PMM PROCESS *MAGNET* MISSING
- EQ RES1 RETRY BUILDING ENVIRONMENT
- RES2 RJ IDE INITIALIZE DEMAND ENTRY
- RJ RDF READ DEMAND FILE
- SA1 /CPA/RFCW
- SX1 X1+
- ZR X1,RES4 IF NO DEMAND FILE ENTRY
- * CHECK FOR LOST TAPE ASSIGNMENT AND COUNT ASSIGNED UNITS.
- MOVE RDEL,DBUF,RESB COPY DEMAND FILE ENTRY
- BX6 X6-X6 CLEAR MOUNT REQUEST
- SA6 RESB+RREQ
- SA1 RESB+RVAL CHECK FOR LOST TAPES
- SX4 RESB DEMAND FILE ENTRY ADDRESS
- LX1 59-53
- PL X1,RES3 IF NO TAPE ASSIGNMENT LOST
- SB5 B0 GET MAGNETIC TAPE ASSIGNED COUNT
- RJ CTA
- SB2 /PER/PTL * PRIOR TAPE ASSIGNMENT LOST.*
- NZ B3,PER IF LOST TAPES NOT RETURNED
- MX2 1
- SA1 RESB+RVAL CLEAR TAPE ASSIGNMENT LOST FLAG
- LX2 53-59
- BX6 -X2*X1
- SA6 A1
- RES3 SA3 JEEO GET JOB EJT ORDINAL
- RJ CAU COUNT ASSIGNED UNITS
- * PROCESS COMMAND PARAMETERS.
- RES4 SA5 AP RESET ASSEMBLY POINTERS
- SB6 X5+
- RES5 ZR B6,RES8 IF END OF COMMAND
- RJ POP CHECK TYPE OF RESOURCE
- NG B5,ERR IF COMMAND ERROR
- SX1 X1-1R=
- NZ X1,ERR IF SEPARATOR IS NOT *=*
- SA1 POPA
- RES6 RJ GRI GET RESOURCE DEMAND ENTRY INDEX
- NZ B2,RES7 IF INDEX FOUND
- SA1 POPA CHECK FOR *LO*, *HI*, *HY* IDENTIFIERS
- BX7 X1
- LX7 12
- SB4 TRSLL3
- RJ GRL
- SX1 2RMT
- SB4 B4-TRMT
- LX1 -12
- ZR B4,RES6 IF RESOURCE IDENTIFIER FOUND
- SB2 /PER/IRT * INCORRECT RESOURCE TYPE.*
- EQ PER PROCESS ERROR
- RES7 SA6 RI SAVE RESOURCE INDEX AND UNIT COUNT
- RJ POP GET NUMBER OF RESOURCE UNITS
- NG B5,ERR IF COMMAND ERROR
- SX7 X1
- SA7 SC SEPARATOR CHARACTER
- SX1 X1-1R=
- ZR X1,ERR IF SEPARATOR IS *=*
- SA5 POPA
- SB7 B1
- RJ DXB CONVERT NUMBER
- NZ X4,ERR IF ASSEMBLY ERRORS
- SA6 RESA SAVE CONVERTED UNIT COUNT
- RJ PAL PROCESS ACCESS LEVEL
- SA5 RESA CONVERTED UNIT COUNT
- BX6 X5
- MX0 54
- BX1 X0*X6
- SB2 /PER/IRC * INCORRECT RESOURCE COUNT.*
- NZ X1,PER IF DEMAND TOO LARGE
- SA2 RI CALCULATE RESOURCE BYTE POSITION
- RJ CBP
- SA3 RESB+B2 ENTER NEW DEMAND COUNT
- AX2 X3,B4 POSITION OLD COUNT
- BX6 -X0*X6 NEW DEMAND COUNT
- BX4 -X0*X2 OLD DEMAND COUNT
- SA1 RESB+RVAL ADJUST TOTAL DEMAND COUNT
- IX5 X6-X4 INCREMENT
- IX7 X1+X5
- LX5 B4 ADJUST INDIVIDUAL DEMAND COUNT
- SA7 A1
- IX7 X3+X5
- LX2 -6
- SA7 A3
- BX2 -X0*X2 ASSIGNED COUNT
- IX5 X6-X2
- PL X5,RES5 IF ASSIGNEDS .LE. NEW DEMAND
- SB2 /PER/RDE *RESOURCE DEMAND ERROR.*
- EQ PER PROCESS ERROR
- * CHECK VALIDITY OF REQUESTED RESOURCES.
- RES8 SX4 RESB COUNT TAPE DEMANDS
- SB5 B0+
- RJ CTA
- SB2 /PER/IRC * INCORRECT RESOURCE COUNT.*
- SX1 X7-MMTD-1
- PL X1,PER IF TOTAL TAPE DEMAND TOO LARGE
- SA1 RESB+RVAL CHECK REMOVABLE PACK DEMANDS
- MX0 -12
- BX6 -X0*X1 TOTAL DEMAND COUNT
- IX6 X6-X7
- SX1 X6-MMSD
- PL X1,PER IF TOTAL REMOVABLE PACK DEMAND TOO LARGE
- RJ CCR CHECK FOR CONFLICTING RESOURCES
- EQ RRS REQUEST RESOURCES
- RESA CON 0 NUMBER OF RESOURCE UNITS
- VSN SPACE 4,10
- *** VSN (F1=VSN1,F2=VSN2,...,FN=VSNN)
- *
- * ASSOCIATE MAGNETIC TAPE REELS WITH VOLUME SERIAL
- * NUMBERS TO FILE *FI*.
- VSN BSS 0 ENTRY
- SX5 VSNC
- RJ CCP COMMAND PROCESSOR
- SA1 /CPA/RFCW
- SX1 X1
- SX7 B1 INDICATE VSN ENTRY TO BE MADE
- SA7 VP
- NZ X1,VSN1 IF DEMAND ENTRY EXISTS
- RJ IDE INITIALIZE DEMAND ENTRY
- VSN1 SA1 AP
- SB6 X1 RESET ASSEMBLY POINTER
- ZR X1,END7 IF END OF COMMAND
- SX6 B0 DISABLE LITERAL PROCESSING
- MX4 -18
- SA6 LIT
- RJ POP PICK OUT PARAMETER
- NG B5,ERR IF ERROR
- GE B5,B1,ERR IF MORE THAN 1 WORD IN PARAMETER
- BX4 -X4*X6
- LX3 X6
- SX2 X1-1R=
- NZ X4,ERR IF FILE NAME ERROR
- ZR X6,ERR IF NO FILE NAME
- NZ X2,ERR IF SEPARATOR IS NOT *=*
- RJ BVE BUILD VSN ENTRY
- SA1 VSNE+VLFN
- SX6 B1
- BX6 X1+X6
- SA6 VF
- RJ FSC CHECK FOR EXISTING FILE
- NZ B7,VSN1 IF FILE ALREADY ASSIGNED
- RJ MFE MAKE VSN FILE ENTRY
- EQ VSN1 PROCESS NEXT FILE
- LRC SPACE 4,10
- ** LRC - *LABEL* AND *REQUEST* COMMAND FILE ASSIGNMENT.
- *
- * EXIT TO *VTR* TO PROCESS TAPE REQUEST.
- * TO *ROE* TO REQUEST OPERATOR EQUIPMENT ASSIGNMENT.
- *
- * USES X - 1, 6.
- * A - 1, 6.
- *
- * CALLS FRA, MFE, SVI, VCD.
- LRC BSS 0 ENTRY
- * CHECK FOR VSN SPECIFIED ON *LABEL* OR *REQUEST* COMMAND.
- RJ MFE MAKE RESOURCE FILE ENTRIES
- RJ SVI SET VSN INDEX
- RJ FRA CHECK *TMS* FIRST REEL ASSIGNMENT
- NZ X5,LRC1 IF VSN NOT FOUND
- RJ VCD VERIFY COMMAND DEFAULTS
- EQ VTR VALIDATE TAPE REQUEST
- * PROCESS *LABEL* OR *REQUEST* WITH NO VSN FOUND.
- LRC1 SX6 B0+ SET OPERATOR ASSIGNMENT FLAG
- SA6 AA
- RJ VCD VERIFY COMMAND DEFAULTS
- SA1 TT
- NZ X1,VTR IF DEVICE TYPE SPECIFIED
- * EQ ROE REQUEST OPERATOR ASSIGNMENT OF EQUIPMENT
- ROE SPACE 4,15
- ** ROE - REQUEST OPERATOR EQUIPMENT ASSIGNMENT.
- *
- * THIS ROUTINE IS CALLED WHEN THE OPERATOR MUST ASSIGN AN
- * EQUIPMENT IN RESPONSE TO A *LABEL* OR *REQUEST* COMMAND OR
- * *LABEL* MACRO WITH NO VSN SPECIFIED AND IT IS NOT KNOWN
- * WHETHER TAPE EQUIPMENT IS REQUIRED.
- *
- * EXIT TO *RMT* IF TAPE EQUIPMENT SELECTED.
- * TO *END1* IF NON-TAPE EQUIPMENT SELECTED.
- *
- * USES X - 1, 2, 4, 6, 7.
- * A - 1, 2, 6, 7.
- *
- * CALLS CJV, CTE, CTI, CTP, ROA, TBD, VTD.
- ROE BSS 0 ENTRY
- SX4 B0 SET REQUEST OPERATOR EQUIPMENT ASSIGNMENT
- RJ ROA REQUEST OPERATOR ASSIGNMENT
- BX7 X4
- RJ CTE CHECK FOR TAPE EQUIPMENT
- ZR X2,END1 IF NON-TAPE EQUIPMENT ASSIGNED
- SA7 ROEA SAVE DEVICE TYPE OF SELECTED EQUIPMENT
- SA1 F+FTAP
- RJ CTI CONVERT TAPE DESCRIPTORS
- RJ VTD VERIFY TAPE DESCRIPTORS
- NZ B2,PER IF ERROR IN TAPE DESCRIPTORS
- BX6 X1
- SA1 A1 PRESERVE UNCONVERTED TAPE DESCRIPTORS
- SA2 ROEA
- SA6 A1+ SET CONVERTED TAPE DESCRIPTORS
- SX7 B4 TAPE DEVICE TYPE
- BX4 X7-X2
- ZR X4,ROE2 IF NO DEVICE TYPE CONFLICT
- NZ B4,ROE1 IF NOT *MT* REQUEST
- ERRNZ /COMSMTX/DVMT
- LX2 55
- BX1 X1+X2 TRY SELECTED DEVICE TYPE IN DESCRIPTORS
- RJ CTI CONVERT TAPE DESCRIPTORS
- RJ VTD VERIFY TAPE DESCRIPTORS
- NZ B2,ROE1 IF CONFLICT USING SELECTED DEVICE TYPE
- BX6 X1 SET CONVERTED TAPE DESCRIPTORS
- SA6 A1
- EQ ROE2 BUILD TAPE BLOCK DEFINITION
- ROE1 SX7 B0+ REJECT OPERATOR SELECTED EQUIPMENT
- SA7 EQ
- ROE2 RJ TBD BUILD TAPE BLOCK DEFINITION
- RJ CJV CHECK JOB VALIDATION
- RJ CTP CHECK TAPE ACCESS PRIVILEGES
- EQ RMT REQUEST MAGNETIC TAPE
- ROEA CON 0 TAPE DEVICE TYPE
- VTR SPACE 4,15
- ** VTR - VALIDATE NON-TMS TAPE REQUEST.
- *
- * USES X - 1, 2, 6.
- * A - 1, 2, 6.
- *
- * CALLS CAR, COV, CJV, CTI, CTP, TBD, VTD.
- *
- * EXIT TO *RMT*.
- * OPERATOR VERIFY FLAG CLEARED IF *SYOT* JOB AND READ
- * ONLY ACCESS.
- * TO *PER* IF ACS TAPE REQUEST WITH NO VSN.
- VTR BSS 0 ENTRY
- SA1 F+FTAP
- RJ CTI CONVERT TAPE DESCRIPTORS
- RJ VTD VERIFY TAPE DESCRIPTORS
- NZ B2,PER IF ERROR IN TAPE DESCRIPTORS
- RJ CAR CHECK ACS TAPE REQUEST
- BX6 X1 UPDATE TAPE DESCRIPTORS
- SA6 F+FTAP
- SA2 OT
- LX1 59-39
- SX2 X2-SYOT
- NZ X2,VTR1 IF NOT SYSTEM ORIGIN JOB
- PL X1,VTR1 IF NOT READ ONLY ACCESS
- RJ COV CLEAR OPERATOR VERIFY FLAG
- VTR1 RJ TBD BUILD TAPE BLOCK DEFINITION
- RJ CJV CHECK JOB VALIDATION
- RJ CTP CHECK TAPE ACCESS PRIVILEGES
- EQ RMT REQUEST MAGNETIC TAPE
- TITLE PRESET UTILITY ROUTINES.
- CAR SPACE 4,20
- ** CAR - CHECK ACS TAPE REQUEST NOT UNDER TMS CONTROL.
- *
- * ENTRY (X1) = TAPE DESCRIPTORS.
- *
- * EXIT (X1) = UPDATED TAPE DESCRIPTORS.
- * READ ONLY ACCESS FORCED IF SYSTEM ORIGIN JOB, WRITE
- * ACCESS NOT REQUIRED AND NOT CALLED FROM *SSJ=*
- * PROGRAM.
- * OPERATOR VERIFY FLAG CLEARED IF WRITE ACCESS REQUIRED
- * BY SYSTEM ORIGIN *SSJ=* PROGRAM.
- * TO *PER* IF ACS TAPE REQUEST WITH NO VSN, JOB NOT
- * SYSTEM ORIGIN, OR WRITE ACCESS REQUESTED AND CALLER
- * IS NOT *SSJ=* PROGRAM.
- *
- * USES X - 1, 2, 3, 4, 6.
- * A - 2, 3, 4.
- *
- * CALLS COV.
- *
- * MACROS MESSAGE.
- CAR SUBR ENTRY/EXIT
- LX1 0-55
- MX6 -2
- BX6 -X6*X1 TAPE DEVICE TYPE
- LX1 55-55-0+55
- SX6 X6-/COMSMTX/DVAT
- NZ X6,CARX IF NOT ACS TAPE REQUEST
- SA2 OT
- SA3 AA
- SA4 /CPA/SPCW
- SB2 /PER/NVS * NO VSN SPECIFIED ON ACS TAPE REQUEST.*
- SX2 X2-SYOT
- PL X3,PER IF VSN NOT SPECIFIED
- SB2 /PER/UAV * USER ACCESS NOT VALID.*
- NZ X2,PER IF NOT SYSTEM ORIGIN JOB
- LX1 59-40
- PL X1,CAR1 IF WRITE ENABLE NOT REQUIRED
- LX4 59-36
- PL X4,PER IF NOT INTERNAL CALL FROM *SSJ=* PROGRAM
- RJ COV CLEAR OPERATOR VERIFY FLAG
- LX1 40-40-59+40
- EQ CARX RETURN
- CAR1 LX3 X1,B1
- LX1 40-40-59+40
- NG X3,CARX IF READ ONLY REQUEST
- SX6 B1
- LX6 39-0
- BX4 X1+X6 SET READ ONLY AND SAVE TAPE DESCRIPTORS
- MESSAGE CARA,3 * WRITE DISABLE FORCED ON NON-TMS ACS...*
- BX1 X4 RESTORE TAPE DESCRIPTORS
- EQ CARX RETURN
- CARA DATA C* WRITE DISABLE FORCED ON NON-TMS ACS TAPE REQUEST.*
- CCR SPACE 4,10
- ** CCR - CHECK FOR CONFLICTING RESOURCES.
- *
- * ENTRY RESB = RESOURCE DEMAND ENTRY.
- *
- * ERROR TO *PER*, IF CONFLICTING RESOURCE TYPES.
- *
- * USES X - 0, 1, 2.
- * A - 1, 2.
- * B - 2.
- CCR SUBR ENTRY/EXIT
- SA1 RESB+RNTP *NT* NOT ALLOWED WITH *HD*, *PE*, *GE*
- MX0 -48
- SA2 A1+B1 SECOND WORD OF TAPE ENTRY
- BX1 X1+X2
- BX1 -X0*X1
- ZR X1,CCRX IF NO CONFLICT
- SB2 /PER/CRT * CONFLICTING RESOURCE TYPES.*
- CCR1 SA1 A2+B1
- SA2 A1+B1
- BX1 X1+X2
- BX1 -X0*X1
- NZ X1,PER IF CONFLICT IN RESOURCE TYPES
- SX1 A1-RESB-RGEP
- NZ X1,CCR1 IF MORE 9-TRACK TAPE RESOURCES
- EQ CCRX RETURN
- CJV SPACE 4,10
- ** CJV - CHECK JOB VALIDATION.
- *
- * ENTRY (RT) = REQUEST TYPE.
- *
- * ERROR TO *PER*, IF USER ACCESS NOT VALID.
- *
- * USES A - 1, 2, 5.
- * B - 2.
- * X - 0, 1, 2, 5.
- CJV SUBR ENTRY/EXIT
- SA1 SSJ=+/COMSSSJ/AACS
- SA2 RT
- LX1 -7
- PL X2,CJV1 IF *LABEL* OR *REQUEST*
- LX1 2
- SA5 OT
- SX5 X5-SYOT
- ZR X5,CJVX IF SYSTEM ORIGIN JOB
- CJV1 NG X1,CJVX IF VALID PRIVILEGES
- SB2 /PER/UAV *USER ACCESS NOT VALID.*
- EQ PER PROCESS ERROR
- CTD SPACE 4,10
- ** CTD - CHECK *TMS* DEFAULTS.
- *
- * ENTRY (F+FTAP) = TAPE DESCRIPTOR.
- * (F+FVSN) = VSN.
- * (F+FSQN) = FILE SEQUENCE NUMBER.
- *
- * EXIT DEFAULTS SET.
- *
- * USES X - 0, 1, 2, 3, 6, 7.
- * A - 1, 2, 3, 6, 7.
- CTD SUBR ENTRY/EXIT
- SA1 F+FTAP
- SA3 F+FVSN CHECK VSN FOR SCRATCH
- SA2 BLANK
- MX0 36
- BX3 X0*X3
- BX2 X2-X3
- MX0 1
- NZ X2,CTD1 IF NOT SCRATCH
- LX0 40-59 SET *PO=W*
- BX1 X1+X0
- LX0 58-59-40+59 CHECK FOR LABEL
- BX2 X0*X1
- ZR X2,CTD1 IF NOT LABELED
- LX0 59-58
- BX1 X1+X0 SET *W*
- SA2 MF
- ZR X2,CTD1 IF NOT MULTI-FILE REQUEST
- SA2 F+FSQN CHECK IF QN=9999
- SX3 X2-9999D
- NZ X3,CTD1 IF NOT QN=9999
- MX0 42 SET QN=1
- BX2 X0*X2
- SX7 B1
- BX7 X2+X7
- SA7 A2+
- SA2 MF FLAG QN NOT .GT. 1
- SX6 X2-10
- SA6 A2
- CTD1 MX0 2 CHECK TAPE DESCRIPTORS
- LX0 40-59
- BX2 -X0*X1
- MX0 1
- LX0 40-59
- NG X1,CTD2 IF *W* OPTION SET
- BX3 X0*X1
- NZ X3,CTD2 IF *PO=W*
- LX0 39-59-40+59
- CTD2 BX6 X0+X2 SET *PO=W* OR *PO=R*
- SA6 A1
- SA1 F+FFTO SET *TO=T* FLAG IN FET
- SX6 20B
- BX6 X1+X6
- SA6 A1
- SX0 1200B CHECK IF *TO=C* OR *TO=E*
- BX6 X0*X1
- NZ X6,CTDX IF USER HAS SPECIFIED *TO=C* OR *TO=E*
- MX0 -1 GET DEFAULT FOR *TO=C*/*TO=E*
- SA2 TMPF
- LX2 0-51
- BX2 -X0*X2
- SA2 X2+CTDA
- BX6 X1+X2
- SA6 A1
- EQ CTDX RETURN
- CTDA BSS 0 BITS TO SET FOR *TO=C* OR *TO=E*
- LOC 0
- CON 200B BIT 7 FOR *TO=E*
- CON 1000B BIT 9 FOR *TO=C*
- LOC *O
- CTI SPACE 4,15
- ** CTI - CONVERT TAPE DESCRIPTORS TO INTERNAL *COMSMTX* FORMAT.
- *
- * ENTRY (X1) = UNCONVERTED TAPE DESCRIPTORS.
- *
- * EXIT (X1) = TAPE DESCRIPTORS WITH PARAMETERS DEFAULTED IF
- * NECESSARY AND CONVERTED TO *COMSMTX* FORMAT.
- * TO *PER* IF ERROR IN FET PARAMETERS.
- *
- * USES X - 0, 1, 2, 5, 6, 7.
- * B - 2.
- * A - 2, 7.
- CTI SUBR ENTRY/EXIT
- * GET DEVICE TYPE AND SET DEFAULT DENSITY AND CONVERSION MODE.
- SA2 /LWC/IPRL
- MX5 -2
- LX1 0-55
- BX5 -X5*X1 DEVICE TYPE
- MX0 -3
- SX7 /COMSMTX/D380 *CT*/*AT* DEFAULT DENSITY
- SX6 X5-/COMSMTX/DVNT
- ZR X5,CTI1 IF *MT* REQUEST
- ERRNZ /COMSMTX/DVMT
- NZ X6,CTI2 IF NOT *NT* REQUEST
- LX2 -6
- CTI1 BX7 -X0*X2 *MT* OR *NT* DEFAULT DENSITY
- LX2 6
- CTI2 SA7 CTIA+0 SET DEFAULT DENSITY
- LX2 -12
- BX7 -X0*X2
- SA7 CTIB+0 SET DEFAULT CONVERSION MODE
- * CONVERT DENSITY.
- LX1 0-51-0+55
- BX2 -X0*X1 REQUESTED DENSITY
- SX6 X2-CTIAL
- SA2 CTIA+X2 CONVERT DENSITY
- SB2 /PER/IDN
- PL X6,PER IF ERROR IN SPECIFIED DENSITY
- BX1 X0*X1
- BX1 X1+X2 MERGE CONVERTED DENSITY
- * CONVERT CONVERSION MODE.
- LX1 0-48-0+51
- BX2 -X0*X1 REQUESTED CONVERSION MODE
- NZ X5,CTI3 IF NOT *MT* REQUEST
- ERRNZ /COMSMTX/DVMT
- SB2 /PER/ICD * INCORRECT CONVERSION MODE FOR TAPE ...*
- NZ X2,PER IF 8 BIT CONVERSION MODE SPECIFIED
- SX2 /COMSMTX/BCD SET BCD CONVERSION
- EQ CTI4 SET CONVERTED MODE
- CTI3 SX6 X2-CTIBL
- SA2 CTIB+X2 CONVERT CONVERSION MODE
- SB2 /PER/ICM * INCORRECT CONVERSION MODE.*
- PL X6,PER IF ERROR IN SPECIFIED CONVERSION MODE
- CTI4 BX1 X0*X1
- BX1 X1+X2 MERGE CONVERTED CONVERSION MODE
- LX1 48
- EQ CTIX RETURN
- * DENSITY CONVERSION TABLE.
- CTIA BSS 0
- CON 0 JOB DEFAULT DENSITY
- CON /COMSMTX/D05
- CON /COMSMTX/D02
- CON /COMSMTX/D08
- CON /COMSMTX/D16
- CON /COMSMTX/D62
- CON /COMSMTX/D380
- CTIAL EQU *-CTIA
- * CONVERSION MODE CONVERSION TABLE.
- CTIB BSS 0
- CON 0 JOB DEFAULT CONVERSION MODE
- CON /COMSMTX/ANS
- CON /COMSMTX/EBC
- CTIBL EQU *-CTIB
- CTP SPACE 4,15
- ** CTP - CHECK TAPE ACCESS PRIVILEGES.
- *
- * EXIT LABEL ACCESS RESTRICTIONS (PO = X) ENFORCED IF NOT
- * SYSTEM ORIGIN JOB.
- * WRITE ACCESS DISABLED (PO = R) IF UNLABELED REQUEST,
- * WRITE ACCESS NOT REQUESTED, AND NOT PERMITTED TO
- * WRITE UNLABELED TAPES.
- * TO *PER* IF UNLABELED REQUEST, WRITE ACCESS REQUESTED,
- * AND NOT PERMITTED TO WRITE UNLABELED TAPES.
- *
- * USES X - 1, 2, 3, 6, 7.
- * A - 1, 2, 3, 7.
- *
- * MACROS MESSAGE.
- CTP SUBR ENTRY/EXIT
- SA1 OT
- SA2 F+FTAP
- SX6 B1
- SX1 X1-SYOT
- LX6 44-0
- ZR X1,CTPX IF SYSTEM ORIGIN JOB
- BX7 X2+X6 ENFORCE LABEL ACCESS RESTRICTIONS (PO = X)
- LX2 59-58
- NG X2,CTP2 IF LABELED ACCESS
- SA1 /CPA/SPCW
- SA3 JCWA
- LX2 59-40-59+58
- LX1 59-36
- LX3 59-52
- NG X1,CTP2 IF INTERNAL CALL FROM *SSJ=* PROGRAM
- NG X3,CTP2 IF PERMITTED TO WRITE UNLABELED TAPES
- PL X2,CTP1 IF WRITE ACCESS NOT REQUIRED
- SB2 /PER/NVU * NOT VALIDATED FOR WRITING UNLABELED ...*
- EQ PER PROCESS ERROR
- CTP1 LX2 59-39-59+40
- LX6 39-44
- NG X2,CTP2 IF WRITE ACCESS DISABLED
- BX7 X7+X6 DISABLE WRITE ACCESS (PO = R)
- MESSAGE CTPA,3 * WRITE DISABLE FORCED ON UNLABELED ...*
- CTP2 SA7 A2 UPDATE TAPE DESCRIPTORS
- EQ CTPX RETURN
- CTPA DATA C* WRITE DISABLE FORCED ON UNLABELED REQUEST.*
- FDF SPACE 4,10
- ** FDF - FLIP DATE FIELDS.
- *
- * EXIT CREATION AND RETENTION DATE FIELDS REVERSED IN FET.
- *
- * USES X - 0, 1, 6.
- * A - 1, 6.
- FDF SUBR ENTRY/EXIT
- MX0 30 GET RETENTION DATE
- SA1 T+FCRD
- BX6 X0*X1
- BX1 -X0*X1 GET CREATION DATE
- LX6 -30 REVERSE FIELDS
- LX1 30
- BX6 X1+X6
- SA6 A1
- EQ FDFX RETURN
- FRA SPACE 4,25
- ** FRA - FIRST REEL ASSIGNMENT.
- *
- * BUILDS THE TFM ASSIGNMENT FET AND CALLS
- * TFM TO VALIDATE USER ACCESS OR ASSIGN A
- * SCRATCH VOLUME.
- *
- * ENTRY USER OPTIONS PROCESSED.
- * (X5) = VSN FOUND STATUS SET BY *SVI*.
- *
- * EXIT ASSIGNMENT FET UPDATED FROM *TMS* CATALOG ENTRY IF
- * *TMS* CONTROLLED REQUEST.
- * (X5) = *SVI* VSN FOUND STATUS IF NOT *TMS* CONTROLLED
- * REQUEST.
- * TO *RMT* IF *TMS* CONTROLLED REQUEST.
- * TO CALLER IF NOT *TMS* CONTROLLED REQUEST.
- *
- * USES X - 0, 1, 2, 3, 5, 6, 7.
- * A - 1, 2, 6, 7.
- * B - 2.
- *
- * CALLS CJV, CTD, CTI, CTP, FDF, IDE, IVE, PRO, PVS, SFN, SMF,
- * TBD, VCD, VTD.
- *
- * MACROS MESSAGE, MOVE, TMS.
- FRA13 MX6 1 SET OPERATOR VERIFICATION FLAG
- LX6 56-59
- SA6 TMPF
- FRA SUBR ENTRY/EXIT
- SA2 TMPF
- NG X2,FRAX IF *TMS* DISABLED
- SA1 F+FFTO CHECK FOR *TO=F*
- LX1 59-1
- NG X1,FRA13 IF *TO=F*
- LX1 59-4-59+1
- NG X1,FRA1 IF *TO=T*
- LX2 59-53
- PL X2,FRA13 IF DEFAULT *TO=F*
- FRA1 SA1 CF
- NZ X1,FRA2 IF NOT COMMAND CALL
- RJ VCD VERIFY COMMAND DEFAULTS
- FRA2 SA1 F+FTAP
- RJ CTI CONVERT TAPE DESCRIPTORS
- RJ VTD VERIFY USER SPECIFIED TAPE DESCRIPTORS
- NZ B2,PER IF ERROR IN TAPE DESCRIPTORS
- BX6 X1 UPDATE TAPE DESCRIPTORS
- SA6 A1
- RJ CTD CHECK *TMS* DEFAULTS
- SA1 F SET LOCAL FILE NAME
- MX0 -18
- BX6 X0*X1
- SA6 T
- MOVE /TFM/TFPL,F+/TFM/TFFP,T+/TFM/TFFP
- SA2 T+FVSN
- SA1 CF
- NZ X1,FRA4 IF *LFM* OR *REQ* CALL
- SA1 VC
- NZ X1,FRA4 IF VSN FROM *VSN* COMMAND
- SA1 VP
- SA2 BLANK ASSUME SCRATCH
- ZR X1,FRA4 IF VSN= NOT PROCESSED
- SA2 VSNE+VVSN
- FRA4 MX0 36 CHECK FOR SCRATCH ASSIGNMENT
- BX6 X0*X2
- SA1 BLANK
- SA6 T+FESN
- BX7 X1-X6
- NZ X7,FRA5 IF NOT VSN=SCRATCH
- BX6 X7
- SA6 A6
- FRA5 SA1 T+FID1 CHECK FILE IDENTIFIER
- NZ X1,FRA6 IF FILE IDENTIFIER SPECIFIED
- NZ X6,FRA6 IF VSN SPECIFIED
- RJ SFN SPACE FILL NAME
- BX5 X6
- SA2 T USE LFN FOR FILE NAME
- MX0 -18
- BX1 X0*X2
- RJ SFN SPACE FILL NAME
- SA6 T+FID1
- SA2 A6+B1
- BX6 X0*X5
- BX3 -X0*X2
- BX7 X3+X6
- SA7 A2+
- FRA6 SA2 T+FESN GET VSN
- BX6 X2
- RJ PVS PAD VSN WITH *0*
- BX2 X6
- SA1 VP FLAG IF THE VSN PARAMETER WAS SPECIFIED
- LX1 22-0
- BX6 X2+X1 MERGE IN THE FLAG (IF SET)
- SA6 A2
- FRA7 RJ FDF FLIP DATE FIELDS
- TMS T,RFAS CALL TAPE MANAGER
- RJ FDF FLIP DATE FIELDS
- MX0 -9 CHECK FOR ERROR
- SA1 T
- LX0 17-8
- BX6 -X0*X1
- ZR X6,FRA9 IF NO ERROR
- LX6 59-17
- PL X6,FRA8 IF NON-ROLLABLE ERROR
- SX1 EMSG GET ERROR MESSAGE
- SX5 =0
- RJ PRO PROCESS ROLLOUT
- EQ FRA7 REISSUE REQUEST
- FRA8 MESSAGE EMSG,3,R ISSUE MESSAGE TO USER DAYFILE
- SB2 /PER/RTM PROCESS FATAL *TMS* ERROR
- EQ PER PROCESS ERROR AND ABORT
- FRA9 SA1 VP CHECK DEMAND FILE INITIALIZATION
- NZ X1,FRA11 IF VSN= PROCESSED
- SX6 B1 SET VSN= PROCESSED
- SA6 A1
- SA2 /CPA/RFCW
- SX1 X2
- NZ X1,FRA10 IF DEMAND FILE ENTRY EXISTS
- RJ IDE INITIALIZE DEMAND ENTRY
- FRA10 SB2 B1+ SET INITIALIZE ENTIRE ENTRY
- SA3 F
- RJ IVE INITIALIZE VSN ENTRY
- FRA11 SA1 TMPF GET TMS FLAGS
- SA2 T+FESN
- SX0 B1
- LX0 58-0
- BX6 X1+X0 SET TMS CONTROLLED REQUEST
- LX0 20-0-58+0
- BX3 X0*X2 OFFSITE FLAG
- LX0 21-0-20+0
- BX1 X0*X2 USER OWNED FLAG
- LX0 23-0-21+0
- BX2 X0*X2 ASSIGN SCRATCH TAPE FLAG
- LX3 50-20
- LX1 52-21
- LX2 57-23
- BX3 X1+X3
- BX2 X2+X3
- BX6 X6+X2 SET SCRATCH, USER OWNED, OFFSITE STATUS
- SA2 T+FFTO GET TMS OPTIONS
- SX3 14B
- BX5 X3*X2
- LX5 55-3
- BX6 X6+X5
- SA6 A1
- MOVE 6,T+FTAP,F+FTAP SET LABEL FET FROM CATALOG ENTRY
- SA1 F+FTAP
- RJ VTD VERIFY TAPE DESCRIPTORS FROM CATALOG
- NZ B2,PER IF ERROR IN TAPE DESCRIPTORS
- RJ TBD BUILD TAPE BLOCK DEFINITION
- RJ SMF SET MULTI-FILE PROCESSING FLAGS
- RJ CJV CHECK JOB VALIDATION
- RJ CTP CHECK TAPE ACCESS PRIVILEGES
- SA1 T+FESN
- SA2 F+FVSN
- MX7 36
- BX6 X7*X1
- BX7 X7*X2
- SA6 EVSN SET EXTERNAL VSN
- SA7 IVSN SET INTERNAL VSN
- EQ RMT REQUEST MAGNETIC TAPE ASSIGNMENT
- IDF SPACE 4,15
- ** IDF - ISSUE DAYFILE MESSAGE.
- *
- * ENTRY (CCDR) = COMMAND IMAGE.
- *
- * EXIT DAYFILE MESSAGE ISSUED WITH SECURED PARAMETER VALUES
- * REMOVED.
- *
- * USES X - 1, 2, 3, 4, 5, 6.
- * A - 1, 3, 4, 5, 6.
- * B - 2, 3, 4, 5, 6.
- *
- * CALLS RSP.
- *
- * MACROS MESSAGE, MOVE.
- IDF SUBR ENTRY/EXIT
- BX6 X0 SAVE X0, X3, X4, X5
- SA6 IDFD
- BX6 X3
- SA6 A6+B1
- BX6 X4
- SA6 A6+B1
- BX6 X5
- SA6 A6+B1
- MX2 -18
- SX1 A3 SAVE A3, A4, A5
- BX6 -X2*X1
- SX1 A4
- LX6 18
- BX1 -X2*X1
- BX6 X6+X1
- SX1 A5
- LX6 18
- BX1 -X2*X1
- BX6 X6+X1
- SA6 A6+B1
- SX1 B3 SAVE B3, B4, B5
- BX6 -X2*X1
- SX1 B4
- LX6 18
- BX1 -X2*X1
- BX6 X6+X1
- SX1 B5
- LX6 18
- BX1 -X2*X1
- BX6 X6+X1
- SA6 A6+B1
- MOVE 8,CCDR,IDFA SET WORKING COMMAND BUFFER
- SA4 IDFB FWA ARGUMENT TABLE
- SB6 IDFC FWA KEYWORD/POSITION TABLE
- SA5 IDFA FWA OF RELOCATED CONTROL STATEMENT
- SB2 1R, SKIP TO *,*
- RJ RSP REMOVE SECURE PARAMETERS
- MESSAGE IDFA,0,R ISSUE COMMAND TO DAYFILE
- SA1 IDFD+5 RESTORE B3, B4, B5
- SB5 X1
- LX1 -18
- SB4 X1
- LX1 -18
- SB3 X1
- SA1 A1-B1 RESTORE A3, A4, A5
- SA5 X1
- LX1 -18
- SA4 X1
- LX1 -18
- SA3 X1
- SA1 A1-B1 RESTORE X5,X4,X3,X0
- BX5 X1
- SA1 A1-B1
- BX4 X1
- SA1 A1-B1
- BX3 X1
- SA1 A1-B1
- BX0 X1
- EQ IDFX RETURN
- IDFA BSS 8 WORKING COMMAND BUFFER
- IDFB BSS 0 ARGUMENT TABLE
- FA ARG 0,0 FILE ACCESSIBILITY
- PW ARG 0,0 PASSWORD
- CON 0 END OF TABLE
- IDFC BSS 0 KEYWORD/POSITION TABLE
- VFD 42/0LFA,18/0 FILE ACCESSIBILITY
- VFD 42/0LPW,18/0 PASSWORD
- CON 0 END OF TABLE
- IDFD BSS 6 REGISTER SAVE AREA
- MFA SPACE 4,15
- ** MFA - MULTI-FILE ASSIGNMENT.
- *
- * ENTRY (TMPF) = *TMS* STATUS.
- *
- * EXIT MULTI-FILE PROCESSING FLAGS SET.
- *
- * ERROR EXIT TO *PER* IF NON-ROLLABLE *TFM* ERROR.
- *
- * USES X - 0, 1, 2, 5, 6.
- * A - 1, 2, 6.
- * B - 2.
- *
- * CALLS FDF, PRO, SMF.
- *
- * MACROS MESSAGE, MOVE, TMS.
- MFA SUBR ENTRY/EXIT
- SA1 TMPF
- NG X1,MFAX IF *TMS* DISABLED
- SA1 TS
- PL X1,MFAX IF NOT SYMBOLIC *TMS* TAPE
- SA2 F
- MX0 -18
- BX6 X0*X2
- SA6 T
- MOVE /TFM/TFPL,F+/TFM/TFFP,T+/TFM/TFFP
- MX0 59 CLEAR SYMBOLIC ACCESS FLAG
- SA1 T+FFTO
- LX0 2-0
- BX6 X0*X1
- SA6 A1
- SX0 1200B CHECK IF *TO=C* OR *TO=E*
- SA1 T+FFTO
- BX2 X0*X1
- NZ X2,MFA1 IF USER HAS SPECIFIED *TO=C* OR *TO=E*
- MX0 -1 GET DEFAULT FOR *TO=C*/*TO=E*
- SA2 TMPF
- LX2 0-51
- BX2 -X0*X2
- SA2 X2+MFAA SET DEFAULT INTO *TMS* FET
- BX6 X1+X2
- SA6 A1
- MFA1 RJ FDF FLIP DATE FIELDS
- TMS T,MFAS CALL TAPE MANAGER
- RJ FDF FLIP DATE FIELDS
- MX0 -9
- SA1 T
- LX0 17-8
- BX6 -X0*X1
- ZR X6,MFA3 IF NO ERROR
- SA6 MFAB SAVE ERROR CODE
- LX6 59-17
- PL X6,MFA2 IF NON-ROLLABLE ERROR
- SX1 EMSG GET ERROR MESSAGE
- SX5 =0
- RJ PRO PROCESS ROLLOUT
- EQ MFA1 REISSUE REQUEST
- MFA2 MESSAGE EMSG,3,R ISSUE MESSAGE TO USER DAYFILE
- SB2 /PER/RTM
- EQ PER PROCESS ERROR AND ABORT
- MFA3 SA1 T+FFTO CHECK FOR SYMBOLIC ACCESS
- LX1 59-2
- PL X1,MFA4 IF NOT SYMBOLIC ACCESS
- MOVE /TFM/TFPL,T+/TFM/TFFP,F+/TFM/TFFP
- MFA4 RJ SMF SET MULTI-FILE PROCESSING FLAGS
- EQ MFAX RETURN
- MFAA BSS 0 BITS TO SET FOR *TO=C* OR *TO=E*
- LOC 0
- CON 200B BIT 7 FOR *TO=E*
- CON 1000B BIT 9 FOR *TO=C*
- LOC *O
- MFAB CON 0 ERROR CODE FROM TFM
- PAL SPACE 4,10
- ** PAL - PROCESS ACCESS LEVEL.
- *
- * ENTRY (RI) = RESOURCE INDEX AND UNIT COUNT.
- * (RMTL) = LENGTH OF TAPE DRIVE ENTRIES.
- * (SC) = SEPARATOR CHARACTER FROM COMMAND.
- *
- * EXIT (RI) = RESOURCE INDEX AND COUNT ALTERED IF
- * MAGNETIC TAPE RESOURCE REQUEST WITH A SECURE SYSTEM.
- *
- * USES X - 0, 1, 2, 3, 5, 6, 7.
- * A - 1, 2, 5, 6, 7.
- * B - 2.
- *
- * CALLS VLC.
- PAL SUBR ENTRY/EXIT
- SA1 SC
- SX1 X1-1R/
- NZ X1,PAL1 IF ACCESS LEVEL NOT ON COMMAND
- RJ POP PICK OUT PARAMETER
- SX1 X1-1R=
- ZR X1,ERR IF SEPARATOR IS *=*
- SA2 SSMA SYSTEM SECURITY MODE
- ZR X2,PAL1 IF UNSECURED SYSTEM
- SA1 POPA
- SB2 B0
- MX0 -8
- SA5 JCWA SECURITY CONTROL WORD
- RJ VLC VALIDATE ACCESS LEVEL
- SB2 /PER/UAL * UNKNOWN ACCESS LEVEL NAME.*
- NG X2,PER IF ACCESS LEVEL NOT FOUND
- LX5 7-43 RIGHT JUSTIFY ACCESS LEVEL VALIDATIONS
- BX5 -X0*X5
- MX0 -1
- SB2 X2
- LX0 B2
- BX0 -X0*X5
- SB2 /PER/NVA NOT VALIDATED FOR ACCESS LEVEL
- ZR X0,PER IF NOT A VALIDATED ACCESS LEVEL
- EQ PAL2 CONTINUE PROCESSING
- PAL1 SA2 JALA JOB ACCESS LEVEL
- MX0 -6
- BX2 -X0*X2
- PAL2 SA1 RI
- MX0 -6
- BX3 -X0*X1
- SX3 X3-RMTL
- SX7 X2
- NG X3,PAL3 IF A TAPE UNIT
- NZ X3,PALX IF MASS STORAGE
- PAL3 SX2 X2+B1
- LX2 6
- BX6 X1+X2
- SA6 RI ADJUSTED RESOURCE INDEX
- SA7 AL
- EQ PALX RETURN
- PVS SPACE 4,20
- ** PVS - PAD VSN WITH CHARACTER *0*.
- *
- * ENTRY (X6) = LEFT JUSTIFIED UNPADDED VSN.
- *
- * EXIT (X6) = PADDED VSN. CHARACTER *0* INSERTED
- * BEFORE FIRST NUMERIC CHARACTER UNTIL
- * VSN IS SIX CHARACTERS LONG.
- *
- * USES X - 0, 1, 2, 3, 4, 6, 7.
- * A - 1, 3.
- * B - 2, 3.
- PVS SUBR ENTRY/EXIT
- SA3 =1L
- MX0 6 GET LENGTH OF UNPADDED VSN
- BX2 X6
- SX4 B0
- PVS1 BX1 X0*X6 CHECK FOR CHARACTER
- BX7 X1-X3
- ZR X7,PVS2 IF CHARACTER IS A BLANK
- ZR X1,PVS2 IF END OF CHARACTERS
- SX4 X4+B1
- LX6 6
- EQ PVS1 CONTINUE
- PVS2 ZR X4,PVSX IF NO CHARACTERS, RETURN
- SX1 6 GET CORRECT NUMBER OF ZEROS
- IX4 X1*X4
- SB2 X4
- SB3 B2-6 SET UP MASK
- AX0 B3,X0
- BX2 X0*X2
- SA1 =36R000000
- AX1 B2
- SB3 60
- MX0 -6
- SX6 B0
- PVS3 BX7 X2 SAVE END OF VSN
- LX2 6 CHECK CHARACTER
- BX3 -X0*X2
- ZR X3,PVS4 IF END OF CHARACTERS
- SX4 X3-1R0
- PL X4,PVS4 IF NUMERIC CHARACTER
- LX6 6 BUILD FIRST PART OF VSN
- BX6 X6+X3
- BX2 X0*X2
- SB3 B3-6
- EQ PVS3 CHECK NEXT CHARACTER
- PVS4 SB2 B2-36 ADD ZEROS TO VSN
- AX6 B2
- BX6 X6+X1
- BX6 X6+X7 ADD END OF VSN
- SB3 B3+B2
- LX6 B3
- EQ PVSX RETURN
- SBF SPACE 4,10
- ** SBF - SET MAXIMUM BLOCK SIZE FROM FRAME COUNT.
- *
- * ENTRY (X1) = TAPE DESCRIPTOR WORD.
- * (B2) = TAPE DEVICE TYPE.
- *
- * EXIT (X6) = 36/0,12/ WORD COUNT,12/ OVERFLOW
- * (X1) = TAPE DESCRIPTOR WORD.
- * (B2) = TAPE DEVICE TYPE.
- *
- * USES X - 2, 3, 4, 6, 7.
- SBF SUBR ENTRY/EXIT
- * SET BITS PER FRAME.
- MX7 -24
- BX2 -X7*X1 SPECIFIED FRAME COUNT
- SX6 6 7 TRACK BITS PER FRAME
- ZR B2,SBF1 IF 7 TRACK TAPE
- ERRNZ /COMSMTX/DVMT
- SX7 B2-/COMSMTX/DVNT
- SX6 8 9 TRACK BITS PER FRAME
- ZR X7,SBF1 IF 9 TRACK TAPE
- SX6 16 CARTRIDGE TAPE BITS PER FRAME
- * SET BLOCK SIZE IN CM WORDS.
- SBF1 IX2 X2*X6 MAXIMUM BLOCK SIZE IN BITS
- BX3 X2
- SX7 60
- IX6 X3/X7 WHOLE WORDS IN BLOCK
- BX3 X6
- SX7 60
- IX4 X3*X7 BITS IN WHOLE WORDS
- IX4 X2-X4
- ZR X4,SBF2 IF NO PARTIAL WORD
- SX7 B1
- IX6 X6+X7 TOTAL WORDS IN BLOCK
- * COMPUTE OVERFLOW IF BLOCK SIZE .GT. 1000B WORDS.
- SBF2 SX7 1000B
- SX2 B0 OVERFLOW = 0
- IX7 X7-X6
- PL X7,SBF3 IF BLOCK SIZE .LE. 1000B WORDS
- SX3 /COMSMTX/LBWD WORDS PER CHUNK
- BX2 X6
- IX2 X2/X3 OVERFLOW BLOCK COUNT
- SX3 /COMSMTX/LBWD
- IX3 X2*X3
- IX6 X6-X3 REMAINING WORD COUNT
- * SET WORD COUNT AND OVERFLOW FOR EXIT.
- SBF3 LX6 12
- BX6 X6+X2 MERGE WORD COUNT AND OVERFLOW
- EQ SBFX RETURN
- SMF SPACE 4,15
- ** SMF - SET MULTI-FILE PROCESSING FLAGS.
- *
- * ENTRY (F+FID1) = FILE IDENTIFIER.
- *
- * EXIT (MF) = MULTI-FILE PROCESSING FLAGS.
- * 01 - FILE IDENTIFIER PRESENT.
- * 02 - FILE SEQUENCE PRESENT.
- * 04 - MULTI-FILE POSITIONING.
- * 10 - FILE SEQUENCE .GT. 1.
- *
- * USES X - 0, 1, 2, 3, 6.
- * A - 1, 2, 3, 6.
- SMF SUBR ENTRY/EXIT
- SA1 F+FID1
- SA2 F+FID2
- SA3 F+FMSI
- SX6 B0+ INITIALIZE MULTI-FILE FLAGS
- ZR X1,SMF1 IF NO FILE IDENTIFIER (FI)
- SX6 B1+ SET FILE IDENTIFIER FLAG
- SMF1 MX0 36 CHECK SET IDENTIFIER (SI)
- BX1 X0*X3
- ZR X1,SMF2 IF NO SET IDENTIFIER
- SA1 =6L CHECK FOR SPACES
- BX1 X1-X3
- BX1 X0*X1
- ZR X1,SMF2 IF NO SET IDENTIFIER
- SX6 X6+4 SET POSITIONING FLAG
- SMF2 MX0 -18 CHECK FILE SEQUENCE (QN)
- BX1 -X0*X2
- ZR X1,SMF3 IF NO FILE SEQUENCE
- SX6 X6+2 SET SEQUENCE NUMBER FLAG
- SX2 X1-1
- ZR X2,SMF3 IF SEQUENCE = 1
- SX6 X6+10B SET SEQUENCE NUMBER .GT. 1 FLAG
- SMF3 SA6 MF SET MULTI-FILE PROCESSING FLAGS
- EQ SMFX RETURN
- SNF SPACE 4,20
- ** SNF - SET NOISE BLOCK DEFINITION FROM FRAME COUNT.
- *
- * ENTRY (X2) = SPECIFIED NOISE FRAME COUNT.
- * (X1) = TAPE DESCRIPTOR WORD.
- * (B2) = TAPE DEVICE TYPE.
- *
- * EXIT (X6) = NOISE BLOCK DEFINITION.
- * (X1) = TAPE DESCRIPTOR WORD.
- * (B2) = TAPE DEVICE TYPE.
- *
- * USES X - 3, 4, 6, 7.
- *
- * SEVEN TRACK NOISE FORMULA -
- * BYTES = (NS+1)/2.
- * FILL ALLOWED IF NS-2(BYTES) IS NEGATIVE.
- *
- * NINE TRACK NOISE FORMULA -
- * BYTES = 2(NS+1)/3.
- * FILL ALLOWED IF NS-3(BYTES)/2 IS NEGATIVE.
- SNF SUBR ENTRY/EXIT
- SX4 X2+1 (NS+1)
- NZ B2,SNF1 IF NOT SEVEN TRACK TAPE
- ERRNZ /COMSMTX/DVMT
- AX3 X4,B1 BYTES = (NS+1)/2
- LX7 X3,B1 BYTES*2
- EQ SNF2 DETERMINE FILL ALLOWED STATUS
- SNF1 LX4 1 2(NS+1)
- SX7 3
- IX3 X4/X7 BYTES = 2(NS+1)/3
- LX7 X3,B1
- IX7 X7+X3 BYTES*3
- AX7 1 (BYTES*3)/2
- SNF2 IX7 X2-X7
- MX6 1
- BX6 X7*X6 FILL ALLOWED STATUS
- LX6 5-59
- BX6 X6+X3 MERGE BYTE COUNT AND FILL STATUS
- EQ SNFX RETURN
- TBD SPACE 4,15
- ** TBD - BUILD TAPE BLOCK DEFINITION.
- *
- * ENTRY (F+FTAP) = CONVERTED TAPE DESCRIPTORS.
- *
- * EXIT (TB) = TAPE BLOCK DEFINITION PARAMETERS.
- *
- * USES X - 0, 1, 2, 5, 6, 7.
- * A - 1, 5, 6.
- * B - 2, 3.
- *
- * CALLS SBF, SNF.
- TBD SUBR ENTRY/EXIT
- SA1 F+FTAP GET TAPE DEVICE TYPE
- MX0 -2
- LX1 0-55
- BX6 -X0*X1
- LX1 0-51-0+55 GET TAPE DENSITY
- SB2 X6 TAPE DEVICE TYPE
- MX0 -3
- BX2 -X0*X1
- SB3 X2 DENSITY
- LX1 0-30-0+51
- MX0 -6
- BX6 -X0*X1 TAPE FORMAT
- LX1 59-59-0+30
- SA5 TTFM+X6 GET TAPE FORMAT CHARACTERISTICS
- * FORCE ASCII CONVERSION MODE IF UNLABELED *I*, *LI*, OR *SI*
- * FORMAT AND NOT SEVEN TRACK TAPE.
- ZR B2,TBD2 IF SEVEN TRACK TAPE
- ERRNZ /COMSMTX/DVMT
- LX2 X1,B1
- MX7 57
- NG X2,TBD2 IF LABELED TAPE REQUEST
- PL X5,TBD2 IF NOT INTERNAL TAPE FORMAT
- LX1 0-48
- SX2 /COMSMTX/ANS FORCE ASCII CONVERSION
- BX6 X7*X1
- BX6 X6+X2
- LX6 59-59-0+48
- BX1 X6 UPDATE TAPE DESCRIPTORS
- SA6 A1
- * SET MAXIMUM DATA BLOCK SIZE.
- TBD2 LX5 23-47
- MX6 -24
- BX6 -X6*X5 BLOCK SIZE AND OVERFLOW
- LX5 59-58-23+47
- PL X5,TBD3 IF NOT TO SET BLOCK SIZE FROM FRAME COUNT
- RJ SBF SET BLOCK SIZE FROM FRAME COUNT
- TBD3 SA6 TB SET WORD COUNT AND OVERFLOW
- * PROCESS NOISE SIZE.
- SX6 B3-/COMSMTX/DNMX-1
- LX5 59-59-59+58
- PL X6,TBDX IF DENSITY DOES NOT SUPPORT NOISE BLOCKS
- MX0 -6
- LX1 0-24
- NG X5,TBD4 IF INTERNAL FORMAT
- BX2 -X0*X1 SPECIFIED NOISE SIZE
- ZR X2,TBD4 IF NOISE SIZE NOT SPECIFIED
- RJ SNF SET NOISE BLOCK DEFINITION FROM FRAMES
- EQ TBD5 SET NOISE FILL
- TBD4 LX5 0-18
- BX6 -X0*X5 DEFAULT 7 TRACK NOISE BLOCK DEFINITION
- ZR B2,TBD5 IF SEVEN TRACK TAPE
- ERRNZ /COMSMTX/DVMT
- LX5 0-12-0+18
- BX6 -X0*X5 DEFAULT 9 TRACK NOISE BLOCK DEFINITION
- TBD5 SA2 TB
- LX6 24
- BX6 X2+X6 MERGE NOISE BLOCK DEFINITION
- SA6 A2 UPDATE TAPE BLOCK DESCRIPTORS
- EQ TBDX RETURN
- VCD SPACE 4,10
- ** VCD - VERIFY TAPE ASSIGNMENT COMMAND DEFAULTS.
- *
- * EXIT *F+FTAP* PARAMETERS DEFAULTED AS REQUIRED.
- * TO *PER* IF ERROR IN COMMAND DEFAULTS.
- *
- * USES X - 1, 2, 3, 4, 6, 7.
- * A - 1, 2, 3, 4, 7.
- * B - 2.
- VCD SUBR ENTRY/EXIT
- * SET IMPLICIT DEVICE TYPE IF REQUIRED.
- SA1 F+FTAP
- SA2 TT
- SA4 DM
- ZR X2,VCD1 IF DEVICE TYPE NOT EXPLICITY SPECIFIED
- ZR X4,VCD4 IF NO DENSITY SELECTION
- MX6 -2
- LX1 -55
- BX6 -X6*X1 SPECIFIED DEVICE TYPE
- SB2 X6+59-3
- LX1 55
- LX4 B2
- NG X4,VCD4 IF DENSITY VALID FOR DEVICE TYPE
- SB2 /PER/IDD * INCORRECT DENSITY FOR TAPE DEVICE TYPE.*
- EQ PER PROCESS ERROR
- VCD1 ZR X4,VCD2 IF NO DENSITY SELECTION
- CX2 X4
- LX4 47-3
- SB2 X2+ NUMBER OF DEVICE TYPES VALID FOR SELECTION
- GT B2,B1,VCD2 IF DEVICE TYPE NOT DETERMINED BY SELECTION
- NX4,B2 X4
- SX2 B2 IMPLICIT DEVICE TYPE
- EQ VCD3 SET IMPLICIT DEVICE TYPE
- VCD2 SA3 AA
- ZR X3,VCD4 IF OPERATOR TO ASSIGN EQUIPMENT
- SA2 /LWC/IPRL GET DEFAULT DEVICE TYPE
- LX2 -4
- VCD3 MX6 -2
- BX2 -X6*X2
- LX2 55
- BX1 X1+X2 SET DEVICE TYPE
- SX7 1
- SA7 TT SET TAPE DEVICE TYPE SPECIFIED
- * SET LABEL TYPE IF REQUIRED.
- VCD4 SA2 LT
- SA3 RT
- SA4 VP
- NZ X2,VCD6 IF LABEL TYPE EXPLICITLY SPECIFIED
- ZR X3,VCD5 IF *LABEL* COMMAND
- ZR X4,VCD6 IF VSN NOT SPECIFIED
- VCD5 SX7 2 SET STANDARD LABELS
- LX7 57
- BX1 X1+X7 SET LABEL TYPE
- * UPDATE FET PARAMETERS.
- VCD6 BX7 X1 UPDATE *F+FTAP*
- SA7 A1
- EQ VCDX RETURN
- VTD SPACE 4,15
- ** VTD - VERIFY TAPE DESCRIPTORS.
- *
- * ENTRY (X1) = TAPE DESCRIPTOR WORD.
- *
- * EXIT (B2) = ERROR STATUS.
- * (X1) = TAPE DESCRIPTOR WORD.
- * (B3) = TAPE FORMAT.
- * (B4) = TAPE DEVICE TYPE.
- *
- * USES X - 1, 2, 3, 4, 6, 7.
- * A - 3.
- * B - 2, 3, 4.
- VTD SUBR ENTRY/EXIT
- MX6 -6
- LX1 0-30
- MX7 -2
- BX2 -X6*X1 FORMAT
- SB2 /PER/ITF * INCORRECT TAPE FORMAT.*
- SX3 X2-/COMSMTX/TFMA
- LX1 0-39-0+30
- PL X3,VTDX IF ERROR IN FORMAT
- BX4 -X7*X1 PO=R AND PO=W FLAGS
- SB3 X2+ SAVE FORMAT
- CX4 X4
- LX1 0-45-0+39
- SX4 X4-2
- SB2 /PER/WED * WRITE ENABLE AND DISABLE OPTIONS...*
- PL X4,VTDX IF WRITE ENABLE AND DISABLE BOTH SELECTED
- MX6 -3
- BX4 -X6*X1 PO=I, PO=P, AND PO=S FLAGS
- CX3 X4
- AX4 1 REMOVE PO=S FLAG
- SX3 X3-2
- SB2 /PER/MET * MULTIPLE END OF TAPE OPTIONS SELECTED.*
- PL X3,VTDX IF MORE THAN ONE OPTION SELECTED
- SB2 B3+59-17
- SX3 160000B MASK OF FORMATS SUPPORTING PO=I OR PO=P
- LX1 59-58-0+45
- LX3 B2
- ZR X4,VTD1 IF NEITHER PO=I NOR PO=P SPECIFIED
- SB2 /PER/IEF * INCORRECT END OF TAPE OPTION FOR ...*
- PL X3,VTDX IF SELECTED OPTION NOT VALID FOR FORMAT
- VTD1 PL X1,VTD2 IF NOT LABELED TAPE
- SX3 B3-/COMSMTX/TFF
- SB2 /PER/FRU * FORMAT REQUIRES UNLABELED TAPE.*
- ZR X3,VTDX IF *F* FORMAT
- VTD2 LX1 0-48-59+58
- MX6 -3
- BX2 -X6*X1 CONVERSION MODE
- LX1 0-51-0+48
- SB2 /PER/ICM * INCORRECT CONVERSION MODE.*
- SX3 X2-/COMSMTX/MCCO
- ZR X2,VTDX IF ERROR IN CONVERSION MODE
- PL X3,VTDX IF ERROR IN CONVERSION MODE
- BX4 -X6*X1 DENSITY
- LX1 0-55-0+51
- SX3 X4-/COMSMTX/DMAX
- SB2 /PER/IDN * INCORRECT DENSITY*
- ZR X4,VTDX IF ERROR IN DENSITY
- PL X3,VTDX IF ERROR IN DENSITY
- BX7 -X7*X1 TAPE DEVICE TYPE
- LX1 55 RESTORE TAPE DESCRIPTORS
- SB4 X7+ SAVE DEVICE TYPE
- SX2 X2-/COMSMTX/BCD
- SB2 /PER/ICD * INCORRECT CONVERSION MODE FOR TAPE...*
- NZ B4,VTD3 IF NOT 7 TRACK DEVICE TYPE
- ERRNZ /COMSMTX/DVMT
- NZ X2,VTDX IF NOT 7 TRACK CONVERSION MODE
- EQ VTD4 CHECK DEVICE TYPE AND DENSITY
- VTD3 ZR X2,VTDX IF 7 TRACK CONVERSION MODE
- VTD4 SA3 VTDA GET DENSITY LIMITS
- SX2 6
- IX7 X7*X2
- SB2 X7+6
- LX3 B2 POSITION DENSITY LIMITS FOR DEVICE TYPE
- BX2 -X6*X3 MAXIMUM DENSITY
- LX3 -3
- BX3 -X6*X3 MINIMUM DENSITY
- IX2 X2-X4
- IX3 X4-X3
- SB2 /PER/IDD * INCORRECT DENSITY FOR DEVICE TYPE.*
- NG X2,VTDX IF DENSITY .GT. MAXIMUM
- NG X3,VTDX IF DENSITY .LT. MINIMUM
- SX3 610000B MASK OF INTERNAL TAPE FORMATS
- SB2 B3+59-17
- LX3 B2
- NG X3,VTD6 IF INTERNAL TAPE FORMAT
- SX3 X4-/COMSMTX/DNMX-1
- PL X3,VTD5 IF DENSITY DOES NOT SUPPORT NOISE BLOCKS
- MX6 -6
- LX1 0-24
- BX2 -X6*X1 NOISE SIZE
- LX1 24-0
- SX6 X2-31-1
- SB2 /PER/NSL * NOISE SIZE TOO LARGE.*
- PL X6,VTDX IF NOISE SIZE TOO LARGE
- VTD5 SX3 B3-/COMSMTX/TFF
- NZ X3,VTD7 IF NOT *F* FORMAT
- MX6 -24
- BX3 -X6*X1 BLOCK SIZE FRAME COUNT
- SX6 32
- IX6 X3-X6
- SB2 /PER/FCS * FRAME COUNT TOO SMALL.*
- NG X6,VTDX IF FRAME COUNT TOO SMALL
- SA2 VTDB+B4 GET MAXIMUM FRAME COUNT FOR DEVICE TYPE
- IX2 X2-X3
- SB2 /PER/FCL * FRAME COUNT TOO LARGE.*
- PL X2,VTD7 IF FRAME COUNT NOT TOO LARGE
- EQ VTDX RETURN WITH ERROR
- VTD6 SX2 B3-/COMSMTX/TFLI
- NZ X2,VTD7 IF NOT *LI* FORMAT
- SX3 X4-/COMSMTX/DLIMN
- SB2 /PER/IDF * INCORRECT DENSITY FOR FORMAT.*
- NG X3,VTDX IF DENSITY .LT. *LI* FORMAT MINIMUM
- VTD7 SB2 B0 SET NO ERROR
- EQ VTDX RETURN
- VTDA BSS 0 DENSITY LIMITS BY TAPE DEVICE TYPE
- VFD 3//COMSMTX/D7MN,3//COMSMTX/D7MX *MT* LIMITS
- VFD 3//COMSMTX/D18MN,3//COMSMTX/D18MX *CT* LIMITS
- VFD 3//COMSMTX/D9MN,3//COMSMTX/D9MX *NT* LIMITS
- VFD 3//COMSMTX/D18MN,3//COMSMTX/D18MX *AT* LIMITS
- VFD 36/0
- VTDB BSS 0 MAXIMUM FRAME COUNT BY TAPE DEVICE TYPE
- CON 377700B*60/6 MAXIMUM *MT* FRAME COUNT
- CON 377700B*60/16 MAXIMUM *CT* FRAME COUNT
- CON 377700B*60/8 MAXIMUM *NT* FRAME COUNT
- CON 377700B*60/16 MAXIMUM *AT* FRAME COUNT
- SPACE 4,10
- ** GLOBAL DATA.
- AP CON 0 ASSEMBLY POINTER
- DM CON 0 DENSITY SELECTION VALID DEVICE TYPE MASK
- LT CON 0 LABEL TYPE SPECIFIED FLAG
- RC CON 0 RETENTION CYCLE
- SC CON 0 SEPARATOR CHARACTER
- TT CON 0 TAPE DEVICE TYPE SPECIFIED FLAG
- VP CON 0 VSN PROCESSED
- TDEN SPACE 4,15
- ** TDEN - TABLE OF DENSITY OPTIONS.
- *
- * 42/ PARM,11/0,4/ TM,3/ DN
- *
- * PARM DENSITY PARAMTER (DISPLAY CODE)
- * TM TAPE TYPE MASK = *MCNA*
- * *M* BIT SET IF OPTION VALID FOR *MT* DEVICE
- * *C* BIT SET IF OPTION VALID FOR *CT* DEVICE
- * *N* BIT SET IF OPTION VALID FOR *NT* DEVICE
- * *A* BIT SET IF OPTION VALID FOR *AT* DEVICE
- *
- * DN DENSITY SELECTION (1=556,2=200,3=800,4=1600,5=6250,
- * 6=38000)
- TDEN BSS 0
- QUAL TDEN
- LOC 0
- * NUMERICAL KEYWORD ENTRIES. THE ORDER MUST BE BY DENSITY IN
- * *COMSMTX* FORMAT.
- VFD 42/0L200,11/0,4/10B,3/2 200 BPI *MT*
- VFD 42/0L556,11/0,4/10B,3/1 556 BPI *MT*
- VFD 42/0L800,11/0,4/12B,3/3 800 BPI *MT* OR *NT*
- VFD 42/0L1600,11/0,4/2,3/4 1600 CPI *NT*
- VFD 42/0L6250,11/0,4/2,3/5 6250 BPI *NT*
- VFD 42/0L38000,11/0,4/5,3/6 38000 CPI *CT* OR *AT*
- * SEVEN TRACK DENSITY MNEMONICS. THE ORDER MUST BE BY DENSITY
- * IN *COMSMTX* FORMAT.
- LO VFD 42/0LLO,11/0,4/10B,3/2 200 BPI *MT*
- HI VFD 42/0LHI,11/0,4/10B,3/1 556 BPI *MT*
- HY VFD 42/0LHY,11/0,4/10B,3/3 800 BPI *MT*
- * NINE TRACK DENSITY MNEMONICS. THE ORDER MUST BE BY DENSITY
- * IN *COMSMTX* FORMAT.
- HD VFD 42/0LHD,11/0,4/2,3/3 800 CPI *NT*
- PE VFD 42/0LPE,11/0,4/2,3/4 1600 CPI *NT*
- GE VFD 42/0LGE,11/0,4/2,3/5 6250 CPI *NT*
- * CARTRIDGE TAPE DENSITY MNEMONIC.
- CE VFD 42/0LCE,11/0,4/4,3/6 38000 CPI *CT*
- * ACS CARTRIDGE TAPE DENSITY MNEMONIC.
- AE VFD 42/0LAE,11/0,4/1,3/6 38000 CPI *AT*
- LOC *O
- QUAL *
- CON 0 END OF TABLE
- SPACE 4,10
- ** COMMON DECKS USED IN PRESET.
- RCC SET 1 DEFINE COMMAND READ AHEAD FOR *COMCPOP*
- *CALL COMCVLC
- * REDEFINE *CONTROL* MACRO TO CALL SUBROUTINE *IDF*.
- .CONTRL OPSYN CONTROL
- PURGMAC CONTROL
- CONTROL MACRO AD,RS,LF,PS
- .CONTRL AD,RS,LF,PS
- IFC EQ,$RS$$,1
- RJ IDF ISSUE DAYFILE MESSAGE
- CONTROL ENDM
- LIT CON 0 DEFINE LITERAL PROCESSING
- *CALL COMCPOP
- * RESTORE *CONTROL* MACRO.
- CONTROL OPSYN .CONTRL
- *CALL COMCRSP
- *CALL COMCUSB
- TITLE LFM *DMP=* CALL PRESET.
- LFM SPACE 4,10
- *** LFM - PROCESS CALL FROM *LFM*.
- *
- * ENTRY (SPPR) = *LFM* CALL.
- *T SPPR 18/ *LFM*, 12/, 6/ CODE, 6/, 18/ FET ADDRESS
- * CODE = LFM FUNCTION CODE
- LFM BSS 0 ENTRY
- * VALIDATE CALL.
- SB1 1 (B1) = 1
- SA1 ACTR CHECK FOR COMMAND CALL
- SB2 /PER/CCI *INCORRECT COMMAND.*
- NZ X1,PER IF COMMAND CALL
- SX7 1
- SA7 CF SET CALL FLAG
- RJ PCV PRESET CONTROL POINT VALUES
- SA1 SPPR
- MX0 -6
- SX7 B0
- LX1 -24
- BX6 -X0*X1
- SX6 X6-/LFM/RENAME
- ZR X6,LFM4 IF *RENAME*
- SX6 X6-/LFM/LABEL+/LFM/RENAME
- SB2 /PER/ILC * INCORRECT LFM CALL.*
- NZ X6,PER IF NOT *LABEL*
- * PROCESS *LABEL* REQUEST.
- SA7 FS INDICATE FILE NOT PREVIOUSLY ASSIGNED
- RJ CLF CONVERT LFM CALL TO FET
- RJ SVI SET VSN INDEX
- RJ FRA CHECK FOR *TMS* FIRST REEL ASSIGNMENT
- MX1 36
- SA5 F+FVSN CHECK FOR VSN
- MX0 -11
- BX5 X1*X5
- SX7 B0
- NZ X5,VTR IF VSN DEFINED
- * CHECK FOR SPECIAL *PFRES* INTERNAL LABEL REQUEST.
- RDSB MTSI,1,/COMSMTX/TAJP,LFMA,X READ JOB TABLE POINTER
- SA1 SS READ STATUS WORD
- SA5 LFMA
- SX7 B0+
- PL X1,LFM3 IF FAILURE IN READ
- ZR X5,LFM3 IF TAPE ALTERNATE STORAGE NOT ENABLED
- SX7 X5 SET FWA OF BLOCK
- AX5 48
- SB2 X5 NUMBER OF WORDS IN STAGING JOB TABLE
- RDSB MTSI,X5,X7,ASJT READ JOB TABLE
- SA1 JSN
- MX2 24
- SX7 B0
- LFM2 SB2 B2-B1
- SA3 ASJT+B2
- BX4 X3-X1
- BX4 X2*X4 ISOLATE JSN COMPARISION
- ZR X4,GVS IF JSN MATCHES, GET VSN FOR STAGING TAPE
- GT B2,LFM2 IF NOT END OF TABLE
- * NORMAL REQUEST WITH NO VSN - REQUEST OPERATOR ASSIGNMENT.
- LFM3 SA1 F+FDTY CHECK DEVICE TYPE
- SA7 AA SET OPERATOR ASSIGNMENT FLAG
- LX1 12
- BX7 -X0*X1
- RJ CTE CHECK FOR TAPE EQUIPMENT DEVICE CODE
- ZR X2,ROE IF TAPE DEVICE NOT SPECIFIED
- EQ VTR VALIDATE TAPE REQUEST
- * PROCESS *RENAME*.
- LFM4 SA3 SFET GET FILE NAME
- SB2 B0+ SET UP IDENTIFICATION IN VSN ENTRY
- RJ IVE
- RJ SVE
- SB2 /PER/VFE * VSN FILE ERROR.*
- NZ X5,PER IF ENTRY NOT FOUND
- MOVE VSNL,VSNB,VSNE
- SA1 SFET+FNFN READ NEW FILE NAME
- MX0 -18
- BX6 X0*X1
- SA6 VSNE+VLFN ENTER NEW FILE NAME
- BX7 -X0*X1
- BX7 X7+X6
- SA7 SFET ENTER NEW FILE NAME
- RJ MVE UPDATE VSN FILE
- EQ END1 RETURN OK STATUS AND END
- LFMA BSSZ 1 STAGE JOB TABLE POINTER
- TITLE *REQ* *DMP=* CALL PRESET.
- REQ SPACE 4,10
- *** REQ - PROCESS *NOS/BE* REQUEST BLOCK CALL.
- *
- * ENTRY (SPPR) = *REQ* CALL.
- REQ SB1 1
- SA1 ACTR CHECK FOR COMMAND CALL
- SB2 /PER/CCI *INCORRECT COMMAND.*
- NZ X1,PER IF COMMAND CALL
- SX7 1
- SA7 CF SET CALL FLAG
- RJ PCV PRESET CONTROL POINT VALUES
- RJ CSF CONVERT *NOS/BE* CALL TO FET
- RJ FSC FILE STATUS CHECK
- NG X7,REQ1 IF TAPE PRESENT
- NZ X7,END1 IF ANOTHER TYPE OF FILE PRESENT
- RJ SVI SET VSN INDEX
- RJ FRA PROCESS FIRST REEL ASSIGNMENT
- SA2 F+FVSN CHECK FOR VSN
- MX0 36
- BX7 X0*X2
- NZ X7,REQ2 IF NO VSN DEFINED
- EQ VTR VALIDATE TAPE REQUEST
- REQ1 RJ OPN OPEN TAPE FILE
- EQ END1 RETURN OK STATUS AND END
- REQ2 SA7 AA SET OPERATOR ASSIGNMENT FLAG
- EQ VTR VALIDATE TAPE REQUEST
- TITLE VSN AND DEMAND FILE PRESET SUBROUTINES.
- BVE SPACE 4,15
- ** BVE - BUILD VSN ENTRY.
- *
- * ENTRY (B6) = ASSEMBLY POINTER.
- * (X3) = FILE NAME.
- *
- * EXIT (AP) = (B6) = UPDATED ASSEMBLY POINTER.
- * VSNE = NEW VSN FILE ENTRY.
- *
- * ERROR TO *ERR*, IF COMMAND ERROR.
- *
- * USES X - 5, 6, 7.
- * A - 6, 7.
- * B - 2.
- *
- * CALLS CVS, IVE.
- BVE SUBR ENTRY/EXIT
- * INITIALIZE VSN PROCESSING.
- SB2 B1 INITIALIZE ENTIRE VSN ENTRY
- RJ IVE
- SA0 VSNE+VVSN INITIALIZE ENTRY POINTER
- SX6 B1 ENABLE LITERAL PROCESSING
- SX5 B0 INITIALIZE REEL COUNT AND FLAGS
- SA6 LIT
- * CHECK FIRST VSN.
- RJ CVS CHECK VSN
- NG B2,BVE5 IF ONE VSN SPECIFIED
- ZR X1,BVE4 IF SCRATCH VSN
- LE B2,B0,BVE1 IF VSN NOT EQUIVALENCED
- SX5 100B SET EQUIVALENCED VSN-S FLAG
- EQ BVE3 PROCESS EQUIVALENCED VSN-S
- * PROCESS NON-SCRATCH, NON-EQUIVALENCED VSN-S.
- BVE1 RJ CVS CHECK VSN
- ZR X1,ERR IF SCRATCH VSN
- NG B2,BVE5 IF END OF VSN-S
- EQ B2,B0,BVE1 IF VSN NOT EQUIVALENCED
- EQ ERR PROCESS ERROR
- * PROCESS EQUIVALENCED VSN-S.
- BVE2 RJ CVS CHECK VSN
- LE B2,B0,ERR IF VSN NOT EQUIVALENCED
- SX5 X5-1 ADJUST REEL COUNT
- BVE3 RJ CVS CHECK INTERNAL VSN
- ZR X1,ERR IF SCRATCH VSN
- NG B2,BVE5 IF END OF VSN-S
- EQ B2,B0,BVE2 IF VSN NOT EQUIVALENCED
- EQ ERR PROCESS ERROR
- * VERIFY SCRATCH VSN-S.
- BVE4 RJ CVS CHECK VSN
- NZ X1,ERR IF NOT SCRATCH VSN
- PL B2,BVE4 IF NOT END OF VSN-S
- * SAVE ASSEMBLY POINTER AND SET REEL COUNT.
- BVE5 SX6 B6 SAVE ASSEMBLY POINTER
- BX7 X5 SET REEL COUNT AND EQUIVALENCED VSN STATUS
- SA6 AP
- SA7 VSNE+VRLC
- EQ BVEX RETURN
- CVS SPACE 4,20
- ** CVS - CHECK VSN PARAMETER.
- *
- * ENTRY (A0) = *VSNE* BUFFER POINTER.
- * (X5) = REEL COUNT AND EQUIVALENCED VSN STATUS.
- *
- * EXIT (X6) = 36/ SPACE FILLED VSN,24/ 0.
- * (X1) = 0 IF SCRATCH VSN.
- * (X7) .NE. 0 IF NOT SCRATCH VSN.
- * (B2) = .LT. 0 IF END OF PARAMETER OR COMMAND.
- * (B2) = 0 IF SEPARATOR IS */*.
- * (B2) = .GT. 0 IF SEPARATOR IS *=*.
- * (A0) = UPDATED *VSNE* BUFFER POINTER.
- * (X5) = UPDATED REEL COUNT AND EQUIVALENCED VSN STATUS.
- *
- * USES X - 0, 1, 2, 3, 5, 6.
- * A - 0, 1, 2, 3, 6.
- * B - 2.
- *
- * CALLS POP, SFN.
- CVS SUBR ENTRY/EXIT
- MX0 -24
- SX5 X5+B1 ADVANCE REEL COUNT
- RJ POP PICK OUT PARAMETER
- NG B5,ERR IF ERROR
- GE B5,B1,ERR IF MORE THAN 1 WORD IN PARAMETER
- SA2 SCRATCH CHECK FOR SCRATCH VSN
- SA3 ZERO
- SX1 B0+
- BX2 X2-X6
- BX3 X3-X6
- ZR X6,CVS2 IF VSN OMITTED
- ZR X2,CVS2 IF *SCRATCH* VSN
- ZR X3,CVS2 IF *0* VSN
- CVS1 BX1 X6
- BX2 -X0*X6
- NZ X2,ERR IF VSN TOO LONG
- CVS2 RJ SFN SPACE FILL VSN
- SA2 A1 GET SEPARATOR
- SX3 A0-VSNE-VSNL
- BX6 X0*X6
- PL X3,ERR IF VSN BUFFER ALREADY FULL
- SA6 A0 STORE VSN
- SA0 A0+B1 ADVANCE BUFFER POINTER
- SB2 -1
- ZR B6,CVSX IF END OF COMMAND
- SX3 X2-1R,
- ZR X3,CVSX IF END OF PARAMETER
- SX3 X2-1R/
- SB2 B0+
- ZR X3,CVSX IF SEPARATOR IS */*
- SX3 X2-1R=
- SB2 1
- NZ X3,ERR IF SEPARATOR IS NOT *=*
- ZR X1,ERR IF SCRATCH VSN EQUIVALENCED
- EQ CVSX RETURN
- FSC SPACE 4,20
- ** FSC - FILE STATUS CHECK.
- *
- * ENTRY VF = FET.
- *
- * EXIT (B7) = (FS) = FILE STATUS.
- * = -1, IF TAPE FILE IS FOUND.
- * = 0, IF *TE* FILE IS FOUND, FILE IS NOT FOUND, OR
- * STATUS ERROR OCCURRED.
- * = 1, IF FILE FOUND IS NOT TAPE RELATED.
- * (TS) = -1 IF A SYMBOLIC *TMS* TAPE FILE.
- *
- * USES A - 1, 2, 7.
- * B - 7.
- * X - 0, 1, 2, 3, 4, 5, 7.
- *
- * CALLS CTE.
- *
- * MACROS RDSB, STATUS.
- FSC1 SA7 FS SET FILE STATUS
- SB7 X7+ SET RETURN STATUS
- FSC SUBR ENTRY/EXIT
- MX0 1 SELECT ERROR PROCESSING
- SA1 VF+FDTY
- LX0 -15
- BX7 X0+X1
- SA7 A1
- STATUS VF,P
- MX0 1 CLEAR ERROR PROCESSING
- SA1 VF+FDTY
- LX0 -15
- BX7 -X0*X1
- SA7 A1
- MX0 -8 CHECK ERROR RESPONSE
- SA2 A1-B1
- LX2 -10
- BX5 -X0*X2
- SX7 B0+
- NZ X5,FSC1 IF FILE NOT FOUND OR ERRORS
- MX0 -11
- LX1 12
- BX4 -X0*X1
- BX7 -X0*X1
- RJ CTE CHECK FOR TAPE DEVICE
- SX7 -1 SET TAPE FILE
- NZ X2,FSC0.1 IF TAPE DEVICE
- SX7 X4-2RTE
- ZR X7,FSC1 IF FILE ASSIGNED TO *TE* DEVICE
- SX7 1 SET NON-TAPE FILE FOUND
- EQ FSC1 RETURN FILE STATUS
- FSC0.1 SA1 TMPF
- NG X1,FSC1 IF *TMS* DISABLED
- MX0 -12 GET UDT ADDRESS
- SA1 VF+6
- LX1 -36
- BX1 -X0*X1
- RDSB MTSI,/COMSMTX/UNITL,X1,UDT GET UDT ENTRY
- SA1 UDT+/COMSMTX/UTMS CHECK IF SYMBOLIC *TMS* TAPE
- LX1 59-8
- BX7 X1
- SA7 TS FLAG SYMBOLIC *TMS* TAPE
- SX7 -1 SET TAPE FILE FOUND
- EQ FSC1 FLAG MAGNETIC TAPE
- MFE SPACE 4,15
- ** MFE - MAKE RESOURCE FILE ENTRIES.
- *
- * ENTRY (VP) = 0, IF NO VSN FILE ENTRY TO BE MADE.
- *
- * EXIT VSN AND DEMAND FILE ENTRIES MADE IF NEEDED.
- *
- * USES A - 1, 6.
- * X - 1, 2, 5, 6.
- *
- * CALLS MVE, RDF, SVE, UDF.
- *
- * MACROS RETRF.
- MFE2 RETRF V RETURN VSN FILE, RELEASE INTERLOCK
- MFE SUBR ENTRY/EXIT
- SA1 VP
- ZR X1,MFEX IF NO VSN ENTRY TO BE MADE
- SA1 /CPA/RFCW
- SX6 X1+
- NZ X6,MFE1 IF DEMAND FILE ENTRY EXISTS
- RJ RDF READ DEMAND FILE
- SX5 B1 SET RETURN DEMAND FILE FLAG
- RJ UDF UPDATE DEMAND FILE
- MFE1 MX2 36
- SA1 VSNE+VDFI ENTER DEMAND ENTRY RANDOM ADDRESS
- BX1 X2*X1
- BX6 X1+X6
- SA6 A1
- RJ SVE SEARCH FOR VSN ENTRY
- ZR X5,MFE2 IF DUPLICATE VSN ENTRY
- RJ MVE
- EQ MFEX RETURN
- SVE SPACE 4,15
- ** SVE - SEARCH FOR VSN FILE ENTRY.
- *
- * ENTRY VSNE = NEW VSN ENTRY.
- * VSN FILE ALREADY ATTACHED IF CALLED FROM *SVI*.
- *
- * EXIT (X5) = 0, IF ENTRY FOUND.
- * (VA) = RANDOM INDEX IF ENTRY FOUND.
- * VSNB = VSN FILE ENTRY, IF FOUND.
- * VSN FILE INTERLOCKED.
- *
- * USES A - 3, 4, 5, 7.
- * X - 1, 3, 4, 5, 6, 7.
- *
- * MACROS FATRF, READ, READW.
- SVE2 BX7 X7-X7 INDICATE ENTRY NOT FOUND
- MX5 1
- SA7 VA CLEAR RANDOM ADDRESS
- SVE SUBR ENTRY/EXIT
- FATRF V,M ATTACH VSN FILE
- READ X2,R
- SX7 B1 INITIALIZE RANDOM INDEX
- SVE1 SA7 VA SET NEXT VSN INDEX
- READW X2,VSNB,VSNL
- NZ X1,SVE2 IF END OF VSN FILE
- SA5 VA
- SA3 VSNB+VLFN COMPARE FILE NAMES
- SA4 VSNE+VLFN
- SX7 X5+B1 ADVANCE VSN FILE INDEX
- ZR X3,SVE1 IF EMPTY ENTRY
- BX1 X3-X4
- SA3 VSNB+VDFI
- SA4 VSNE+VDFI
- MX6 -36
- BX4 X3-X4 COMPARE EJT ORDINAL AND DEMAND FILE INDEX
- LX4 12
- BX4 -X6*X4
- BX1 X1+X4
- NZ X1,SVE1 IF NO MATCH
- MX5 0 INDICATE FOUND
- EQ SVEX RETURN
- SVI SPACE 4,20
- ** SVI - SET VSN INDEX.
- *
- * ENTRY FET BUILT.
- *
- * EXIT (X5) = 0, IF ENTRY FOUND.
- * (VC) = 1 IF VSN FILE ENTRY FOUND.
- * (VP) = 1 IF VSN FILE FOUND.
- * (EVSN) = EXTERNAL VSN SET FROM VSN FILE IF FOUND.
- * (IVSN) = INTERNAL VSN SET FROM VSN FILE IF FOUND.
- * (F+FVSN) = INTERNAL VSN SET FROM VSN FILE IF FOUND.
- *
- * USES A - 1, 2, 3, 4, 6, 7.
- * B - 2.
- * X - 0, 1, 2, 3, 4, 6, 7.
- *
- * CALLS IVE, SVE.
- *
- * MACROS FATRF, RETRF.
- SVI SUBR ENTRY/EXIT
- SB2 B0
- SA3 F SET UP IDENTIFICATION IN VSN ENTRY
- RJ IVE
- FATRF V,RM ATTACH VSN FILE
- RJ SVE SEARCH FOR VSN ENTRY
- RETRF V RETURN VSN FILE, RELEASE INTERLOCK
- NZ X5,SVIX IF NO VSN FILE ENTRY
- SA1 VSNB+VVSN GET EXTERNAL VSN
- SA2 A1+1
- SA4 VSNB+VRLC
- MX0 36
- LX4 59-6
- BX6 X0*X1 EXTERNAL VSN
- BX7 X0*X1 PRESET INTERNAL VSN = EXTERNAL VSN
- PL X4,SVI1 IF NOT EQUIVALENCED VSN-S
- BX7 X0*X2 INTERNAL VSN
- SVI1 SA3 F+FVSN
- SA6 EVSN SET EXTERNAL VSN
- SA7 IVSN SET INTERNAL VSN
- BX3 -X0*X3
- BX7 X3+X7
- SX6 B1
- SA7 A3 SET INTERNAL VSN IN FET
- SA6 VP SET VSN PARAMETER PROCESSED
- SA6 VC SET VSN FROM *VSN* COMMAND FLAG
- EQ SVIX RETURN
- AFO SPACE 4,10
- ** AFO - ASSEMBLE FILE NAME AND TAPE OPTIONS.
- *
- * ENTRY USBB HAS COMMAND (1 CHARACTER PER WORD).
- * (B6) = STRING BUFFER POINTER.
- *
- * EXIT PARAMETERS SET IN FET *F* FOR TAPE ASSIGNMENT.
- *
- * CALLS CLP, CRD, FID, FSC, GAL, GRD, ILF, NMD, POP, RTC, RTD,
- * SAL, SCD, SCI, SCV, SFA, SFC, SFS, SID, SLT, SNS, SPO,
- * STD, STF, STT, VSP, WRL.
- * GENERATE RETENTION DATE AND GET ACCESS LEVEL.
- AFO6 RJ GRD GENERATE RETENTION DATE
- RJ GAL GET ACCESS LEVEL
- AFO SUBR ENTRY/EXIT
- * ASSEMBLE FILE NAME.
- RJ POP PICK OUT PARAMETER
- NZ B5,ERR IF ASSEMBLY ERROR
- SA3 POPA
- ZR X3,ERR IF NO FILE NAME
- MX0 -18
- BX5 -X0*X3
- SX7 B1 COMPLETE FET
- BX6 X7+X3
- NZ X5,ERR IF FILE NAME TOO LONG
- SA6 F ENTER FILE NAME
- SA6 VF ENTER FILE NAME IN VSN FET
- * INITIALIZE TAPE OPTION PROCESSING.
- RJ FSC FILE STATUS CHECK
- RJ ILF INITIALIZE LABEL FET
- SA1 STFA
- MX0 12
- BX7 -X0*X1
- SX2 /COMSMTX/POLM DEFAULT ERROR MESSAGE PROCESSING OPTION
- SX3 /COMSMTX/POGH DEFAULT GCR WRITE CORRECTION OPTION
- LX2 43-0
- SA1 OT CHECK FOR SYSTEM ORIGIN
- LX3 42-0
- BX7 X7+X2
- SX1 X1-SYOT
- BX7 X7+X3
- SX5 B1
- SA7 F+FTAP
- LX5 41
- NZ X1,AFO1 IF NOT SYOT
- BX7 X7+X5
- SA7 A7
- * PROCESS TAPE OPTION KEYWORD.
- * REENTER HERE ON RETURN FROM KEYWORD PROCESSORS.
- AFO1 ZR B6,AFO6 IF ARGUMENTS EXHAUSTED
- SB3 TAOK-1 PARAMETER KEYWORD TABLE ADDRESS
- SX6 B0 DISABLE LITERAL PROCESSING
- SA1 B6-B1 GET LAST SEPARATOR
- SX1 X1-1R=
- ZR X1,ERR IF SEPARATOR IS *=*
- RJ CLP CALL POP
- GE B5,B1,ERR IF KEYWORD TOO LONG
- SA4 TAOS ASSEMBLY OPTION SYNTAX TABLE
- MX0 18
- BX1 X5
- NG X5,ERR IF INCORRECT FIRST CHARACTER
- AX5 56
- LX5 1
- MX3 -6
- SB2 X5
- LX5 1
- SB2 B2+X5
- AX4 X4,B2 POSITION TABLE ADDRESS
- BX4 -X3*X4
- AFO2 SA3 B3+X4
- BX7 X0*X3
- IX6 X1-X7
- SB3 B3+B1
- NG X6,/TFM/TMO IF KEYWORD NOT FOUND
- NZ X6,AFO2 IF NOT TO KEYWORD YET
- SA4 A1
- MX0 -6
- SB2 X3
- LX3 24
- BX2 -X0*X3
- SA6 A3+ CLEAR KEYWORD ENTRY
- LX3 18
- ZR X2,AFO4 IF NO EQUIVALENT PARAMETERS
- SA1 TEQP-1+X2 CLEAR EQUIVALENT KEYWORD ENTRIES
- AFO3 LX1 6
- BX2 -X0*X1
- ZR X2,AFO4 IF END OF ENTRIES
- SA6 TAOK-1+X2
- EQ AFO3 CONTINUE CLEARING EQUIVALENT ENTRIES
- AFO4 MX0 -18 EXTRACT PROCESSOR PARAMETERS
- BX7 -X0*X3
- PL B2,AFO5 IF KEYWORD VALUE NOT REQUIRED
- SX1 X4-1R=
- SB2 -B2
- NZ X1,ERR IF SEPARATOR NOT *=*
- AFO5 SA5 RT GET REQUEST TYPE
- JP B2 EXECUTE KEYWORD PROCESSOR
- AFOR EQU AFO1 KEYWORD PROCESSOR RETURN ADDRESS
- TAOK SPACE 4,10
- ** TAOK - TABLE OF ASSEMBLY OPTION KEYWORDS.
- *
- * FOR DOCUMENTATION, REFER TO *MKTE* MACRO.
- TAOK BSS 0
- QUAL TAOK
- LOC 1
- AACT BSS 0 A - C SYNTAX TABLE
- AL MKTE -SAL SECURITY ACCESS LEVEL
- C MKTE -SCD CREATION DATE/CHARACTER COUNT
- CB MKTE SCI,/TEQP/CKI,(18//COMSLFD/CBST) CHECKPOINT BOI
- CK MKTE SCI,/TEQP/CKI,(18//COMSLFD/CKST) CHECKPOINT EOI
- CR MKTE -CRD CREATION DATE
- CV MKTE -SCV,/TEQP/CVM CONVERSION MODE
- ADGT BSS 0 D - G SYNTAX TABLE
- D MKTE -STD,/TEQP/DEN TAPE DENSITY
- DT MKTE -STT,/TEQP/TDT TAPE DEVICE TYPE
- E MKTE -NMD,,(1/1,1/1,1/0,9/,6/FGVN) GENERATION VERSION
- F MKTE -STF FORMAT
- FA MKTE -SFA FILE ACCESSIBILITY
- FC MKTE -SFS FRAME SIZE
- FI MKTE -FID,/TEQP/FID FILE IDENTIFIER
- G MKTE -NMD,,(1/0,1/0,1/0,9/,6/FGRN) GENERATION NUMBER
- GE MKTE STD3,/TEQP/DEN,(18//TDEN/GE) 6250 CPI 9-TRACK
- AHKT BSS 0 H - K SYNTAX TABLE
- HD MKTE STD3,/TEQP/DEN,(18//TDEN/HD) 800 BPI 9-TRACK
- HI MKTE STD3,/TEQP/DEN,(18//TDEN/HI) 556 BPI 7-TRACK
- HY MKTE STD3,/TEQP/DEN,(18//TDEN/HY) 800 BPI 7-TRACK
- ALOT BSS 0 L - O SYNTAX TABLE
- L MKTE -FID,/TEQP/FID FILE IDENTIFIER
- LB MKTE -SLT LABEL TYPE
- LO MKTE STD3,/TEQP/DEN,(18//TDEN/LO) 200 BPI 7-TRACK
- M MKTE -SID,/TEQP/SID MULTI-FILE SET IDENTIFIER
- MT MKTE STT1,/TEQP/TDT,(18/0) 7-TRACK DEVICE TYPE
- N MKTE -SCV,/TEQP/CVM CONVERSION MODE
- NS MKTE -SNS NOISE SIZE
- NT MKTE STT1,/TEQP/TDT,(18/2) 9-TRACK DEVICE TYPE
- APST BSS 0 P - S SYNTAX TABLE
- P MKTE -NMD,/TEQP/SQN,(1/0,1/0,1/1,9/,6/FSQN) FILE SEQUENCE
- PE MKTE STD3,/TEQP/DEN,(18//TDEN/PE) 1600 CPI 9-TRACK
- PO MKTE -SPO PROCESSING OPTIONS
- QN MKTE -NMD,/TEQP/SQN,(1/0,1/0,1/1,9/,6/FSQN) FILE SEQUENCE
- R MKTE WRL,/TEQP/RWL,(1/0,17/) LABEL READ
- RT MKTE -RTD,/TEQP/RET RETENTION DATE
- SI MKTE -SID,/TEQP/SID MULTI-FILE SET IDENTIFIER
- SN MKTE -NMD,/TEQP/SCN,(1/0,1/0,1/0,9/,6/FSTN) FILE SECTION
- ATWT BSS 0 T - W SYNTAX TABLE
- T MKTE -RTC,/TEQP/RET RETENTION CYCLE
- V MKTE -NMD,/TEQP/SCN,(1/0,1/0,1/0,9/,6/FSTN) FILE SECTION
- VSN MKTE -VSP VOLUME SERIAL NUMBER
- W MKTE WRL,/TEQP/RWL,(1/1,17/) WRITE LABEL
- AXZT BSS 0 X - Z SYNTAX TABLE
- ENDT BSS 0 END OF SYNTAX TABLE
- LOC *O
- QUAL *
- CON 37777777777777777777B END OF KEYWORD TABLE
- TAOS SPACE 4,10
- ** TAOS - TABLE OF ASSEMBLY OPTION SYNTAX TABLE ADDRESSES.
- TAOS BSS 0
- VFD 6//TAOK/ENDT
- VFD 6//TAOK/ENDT
- VFD 6//TAOK/ENDT
- VFD 6//TAOK/AXZT
- VFD 6//TAOK/ATWT
- VFD 6//TAOK/APST
- VFD 6//TAOK/ALOT
- VFD 6//TAOK/AHKT
- VFD 6//TAOK/ADGT
- VFD 6//TAOK/AACT
- TEQP SPACE 4,10
- ** TEQP - TABLE OF EQUIVALENT PARAMETERS.
- *
- *T 6/P1, 6/P2, 6/P3, 6/P4, 6/P5, 6/P6, 6/P7, 6/P8, 6/P9, 6/0
- * P(I) EQUIVALENT PARAMETERS KEYWORD TABLE INDEX
- TEQP BSS 0
- QUAL TEQP
- LOC 1
- CKI VFD 6//TAOK/CB,6//TAOK/CK,48/0
- CVM VFD 6//TAOK/CV,6//TAOK/N,48/0
- DEN VFD 6//TAOK/D,6//TAOK/LO,6//TAOK/HI,6//TAOK/HY
- VFD 6//TAOK/HD,6//TAOK/PE,6//TAOK/GE,18/0
- FID VFD 6//TAOK/FI,6//TAOK/L,48/0
- RET VFD 6//TAOK/RT,6//TAOK/T,48/0
- RWL VFD 6//TAOK/R,6//TAOK/W,48/0
- SCN VFD 6//TAOK/SN,6//TAOK/V,48/0
- SID VFD 6//TAOK/SI,6//TAOK/M,48/0
- SQN VFD 6//TAOK/QN,6//TAOK/P,48/0
- TDT VFD 6//TAOK/DT,6//TAOK/MT,6//TAOK/NT,42/0
- LOC *O
- QUAL *
- TITLE OPTION PROCESSORS.
- SPACE 4,10
- ** KEYWORD PROCESSORS.
- *
- * ENTRY (X5) = REQUEST TYPE (0=LABEL, 1=REQUEST, -1=ASSIGN).
- * (X6) = 0.
- * (X7) = PROCESSOR PARAMETERS FROM KEYWORD TABLE ENTRY.
- * (B6) = STRING BUFFER POINTER.
- *
- * EXIT TO *AFOR*, TO PROCESS NEXT ARGUMENT OR IF ARGUMENTS
- * EXHAUSTED.
- * TO *ERR*, IF ARGUMENT ERROR.
- *
- * NOTE - ALL PROCESSORS MUST PRESERVE THE VALUE OF B6.
- CRD SPACE 4,10
- ** CRD - SET CREATION DATE (JULIAN FORMAT).
- *
- * CR=YYDDD.
- CRD BSS 0 ENTRY
- NZ X5,ERR IF NOT *LABEL* CALL
- RJ CLP GET PARAMETER VALUE (NO LITERALS)
- MX0 5*6
- BX4 -X0*X5
- SA2 F+FCRD READ FET WORD
- NZ X4,ERR IF PARAMETER TOO LONG
- LX5 30
- BX7 X2+X5
- SA7 A2+
- EQ AFOR PROCESS NEXT ARGUMENT
- FID SPACE 4,10
- ** FID - SET FILE IDENTIFIER.
- *
- * FI=AAAAAAAAAAAAAAAAA.
- * L=AAAAAAAAAAAAAAAAA.
- FID BSS 0 ENTRY
- NZ X5,ERR IF NOT *LABEL* CALL
- SX6 B1+ ENABLE LITERAL PROCESSING
- SA6 LIT
- RJ POP PICK OUT PARAMETER
- NG B5,ERR IF ASSEMBLY ERROR
- SA1 POPA+1
- MX0 7*6
- BX5 -X0*X1
- NZ X5,ERR IF PARAMETER TOO LONG
- RJ SFN SPACE FILL SECOND WORD OF FID
- BX5 X6
- SA1 A1-B1
- RJ SFN SPACE FILL 1ST WORD OF FID
- SA6 F+FID1 STORE FIRST WORD FID
- MX0 -18
- SA2 A6+B1 READ FET DATA TO BE MERGED
- BX7 X0*X5
- BX3 -X0*X2
- SA1 MF SET FI PROCESSED
- BX7 X7+X3
- SX6 X1+B1
- SA7 A2
- SA6 A1
- EQ AFOR PROCESS NEXT ARGUMENT
- NMD SPACE 4,10
- ** NMD - SET NUMERIC DATA FIELDS FOR LABEL.
- *
- * SN=NNNN. FILE SECTION NUMBER
- * V=NNNN.
- * QN=NNNN. FILE SEQUENCE NUMBER
- * P=NNNN.
- * E=NN. GENERATION VERSION NUMBER.
- * G=NNNN. GENERATION NUMBER.
- NMD BSS 0 ENTRY
- NZ X5,ERR IF NOT *LABEL* CALL
- SA7 NMDA SAVE PROCESSOR PARMETERS
- RJ CLP GET PARAMETER VALUE (NO LITERALS)
- SA4 NMDA
- MX0 4*6
- LX4 59-16
- SB7 B1
- PL X4,NMD1 IF FOUR DIGIT PARAMETER
- MX0 2*6
- NMD1 BX6 -X0*X5
- NZ X6,ERR IF PARAMETER TOO LONG
- RJ DXB
- NZ X4,ERR IF ASSEMBLY ERRORS
- SA4 A4
- LX4 59-15
- PL X4,NMD3 IF NOT SEQUENCE NUMBER
- SA2 MF
- SX3 X6-2
- SX7 X2+2 SET QN .LT. 2
- NG X3,NMD2 IF QN .LT. 2
- SX3 X6-9999
- SX7 X2+12B SET QN PROCESSED AND .GT. 1
- NZ X3,NMD2 IF QN .NE. 9999
- SA2 F+FTAP SET WRITE LABEL BIT
- BX3 X7
- MX7 1
- BX2 X2+X7
- LX7 40-59 SET WRITE ENABLE REQUIRED FLAG
- BX7 X7+X2
- SA7 A2
- BX7 X3
- NMD2 SA7 MF SET MULTI-FILE POSITIONING
- NMD3 MX1 -6
- SA4 A4
- BX1 -X1*X4
- AX4 17
- SX1 F+X1 ADDRESS OF FET WORD
- LX4 -1 SET FIELD POSITION
- BX1 X1+X4
- RJ ENF ENTER NUMERIC FIELD
- EQ AFOR PROCESS NEXT ARGUMENT
- NMDA CON 0 TEMPORARY FOR PROCESSOR PARAMETERS
- RTC SPACE 4,10
- ** RTC - SET RETENTION CYCLE.
- *
- * T=NNN.
- RTC BSS 0 ENTRY
- NZ X5,ERR IF NOT *LABEL* CALL
- RJ CLP GET PARAMETER VALUE (NO LITERALS)
- ZR X5,AFOR IF NO PARAMETER
- MX0 3*6
- BX6 -X0*X5
- NZ X6,ERR IF PARAMETER TOO LONG
- BX7 X5
- SA7 RC SAVE RETENTION CYCLE
- EQ AFOR PROCESS NEXT ARGUMENT
- RTD SPACE 4,10
- ** RTD - SET RETENTION DATE (JULIAN FORMAT).
- *
- * RT=YYDDD.
- RTD BSS 0 ENTRY
- NZ X5,ERR IF NOT *LABEL* CALL
- RJ CLP GET PARAMETER VALUE (NO LITERALS)
- MX0 5*6
- SA2 F+FRTD READ FET WORD
- BX6 -X0*X5
- NZ X6,ERR IF PARAMETER TOO LONG
- BX3 -X0*X2
- BX7 X3+X5
- SA7 A2
- LX0 -24
- BX0 X0*X5
- SB7 B1 ASSUME DECIMAL BASE
- ZR X0,ERR IF PARAMETER TOO SHORT
- RJ DXB CONVERT RETENTION DATE TO NUMERIC
- NZ X4,ERR IF NOT NUMERIC VALUE
- SA2 A2 CONVERT DAY OF YEAR
- MX0 18
- LX2 12
- BX5 X0*X2
- RJ DXB
- ZR X6,ERR IF INCORRECT DAY OF YEAR
- SX6 X6-367
- PL X6,ERR IF INCORRECT DAY OF YEAR
- EQ AFOR PROCESS NEXT ARGUMENT
- SAL SPACE 4,10
- ** SAL - SET ACCESS LEVEL.
- *
- * AL = NNNNNNN.
- SAL BSS 0 ENTRY
- ZR B6,AFOR IF ARGUMENTS EXHAUSTED
- SA1 AL ACCESS LEVEL PERMISSION
- ZR X1,ERR IF NOT ALLOWED ON THIS COMMAND
- RJ CLP CALL PICK OUT PARAMETER
- GE B5,B1,ERR IF PARAMETER/KEYWORD TOO LONG
- BX1 X5
- SB2 B0
- SA5 SSMA SYSTEM SECURITY MODE
- RJ VLC VALIDATE ACCESS LEVEL
- ZR X5,SAL1 IF UNSECURED SYSTEM
- SB2 /PER/UAL * UNKNOWN ACCESS LEVEL NAME.*
- NG X2,PER IF ACCESS LEVEL NOT FOUND
- MX0 -8
- SA1 JCWA SECURITY CONTROL WORD
- LX1 7-43
- BX3 -X0*X1 VALID ACCESS LEVELS
- MX0 -1
- SB2 X2
- LX0 B2
- BX0 -X0*X3
- SB2 /PER/NVA NOT VALIDATED FOR ACCESS LEVEL
- ZR X0,PER IF NOT VALIDATED FOR ACCESS LEVEL
- BX6 X2
- SA6 AL SAVE REQUESTED ACCESS LEVEL
- SX1 B1
- LX1 39 POSITION BIT FOR *AL* INDICATION FIELD
- SA3 F+1 SECOND WORD OF FET
- BX6 X1+X3
- SA6 A3 SET *AL* INDICATOR
- SA3 VF+1
- BX6 X1+X3
- SA6 A3 SET *AL* INDICATOR IN VSN FET
- LX2 36
- SA3 F+/COMSPFM/CFAL
- MX1 12
- LX1 36-48
- BX3 -X1*X3 CLEAR FILE ACCESS LEVEL
- BX6 X2+X3
- SA6 A3 SET ACCESS LEVEL IN FET
- SA3 VF+/COMSPFM/CFAL
- BX3 -X1*X3 CLEAR FILE ACCESS LEVEL IN VSN FET
- BX6 X2+X3
- SA6 A3 SET ACCESS LEVEL IN VSN FET
- EQ AFOR PROCESS NEXT ENTRY
- SAL1 SX6 B0+
- SA6 AL
- EQ AFOR PROCESS NEXT ENTRY
- SCD SPACE 4,10
- ** SCD - PROCESS *C* OPTION.
- *
- * C=NNNNNN. CHARACTER COUNT
- * C=YYDDD. CREATION DATE (*LABEL* COMMAND ONLY)
- SCD BSS 0 ENTRY
- ZR X5,SCD1 IF *LABEL* COMMAND
- SA6 TAOK-1+/TAOK/FC CLEAR FRAME COUNT PARAMETER
- EQ SFS PROCESS CHARACTER COUNT
- SCD1 SA6 TAOK-1+/TAOK/CR CLEAR CREATION DATE PARAMETER
- EQ CRD SET CREATION DATE
- SCI SPACE 4,10
- ** SCI - SET CHECKPOINT DATA.
- *
- * CB
- * CK
- SCI SA7 CI SET CHECKPOINT FILE ID
- EQ AFOR PROCESS NEXT ARGUMENT
- SCV SPACE 4,10
- ** SCV - SET CONVERSION MODE.
- *
- * CV=(AS,US,EB)
- * N=(AS,US,EB)
- SCV BSS 0 ENTRY
- SB3 SCVA SET OPTION TABLE ADDRESS
- RJ AOP ANALYZE CONVERSION OPTIONS (NO LITERALS)
- SA2 F+FTAP
- LX7 48
- BX7 X7+X2 SET CONVERSION MODE
- SA7 A2
- EQ AFOR PROCESS NEXT ARGUMENT
- SCVA VFD 42/0LAS,18/1 ASCII
- VFD 42/0LUS,18/1 USASII
- VFD 42/0LEB,18/2 EBCDIC
- CON 0
- CON 0
- SFA SPACE 4,10
- ** SFA - SET FILE ACCESSIBILITY.
- *
- * FA=A.
- SFA BSS 0 ENTRY
- NZ X5,ERR IF NOT *LABEL* CALL
- SX6 B1+ ENABLE LITERAL PROCESSING
- RJ CLP GET PARAMETER VALUE
- MX0 6
- BX6 -X0*X5
- NZ X6,ERR IF PARAMETER TOO LONG
- LX0 24
- SA2 F+FFAS READ FET WORD
- LX5 24
- BX3 -X0*X2
- BX7 X3+X5
- SA7 A2+
- EQ AFOR PROCESS NEXT ARGUMENT
- SFC SPACE 4,10
- ** SFC - SET MAXIMUM FRAME COUNT FOR TAPE BLOCK.
- *
- * FC=NNNNNN.
- * C=NNNNNN. (EXCEPT ON *LABEL* COMMAND)
- SFS BSS 0 ENTRY
- RJ CLP GET PARAMETER VALUE (NO LITERALS)
- MX0 6*6
- BX6 -X0*X5
- NZ X6,ERR IF PARAMETER TOO LONG
- SB7 B1 ASSUME DECIMAL
- RJ DXB
- NZ X4,ERR IF ASSEMBLY ERROR
- SA2 F+FTAP
- BX6 X2+X6 SET BLOCK SIZE IN FRAMES
- SA6 A2
- EQ AFOR PROCESS NEXT ARGUMENT
- SID SPACE 4,10
- ** SID - SET MULTI-SET IDENTIFIER.
- *
- * SI=AAAAAA.
- * M=AAAAAA.
- SID BSS 0 ENTRY
- NZ X5,ERR IF NOT *LABEL* CALL
- SX6 B1+ ENABLE LITERAL PROCESSING
- RJ CLP GET PARAMETER VALUE
- BX1 X5
- MX0 6*6
- BX5 -X0*X5
- NZ X5,ERR IF PARAMETER TOO LONG
- RJ SFN
- MX0 36
- SA2 F+FMSI READ FET WORD
- BX7 X0*X6
- SA1 MF
- SX6 X1+4
- BX3 -X0*X2
- SA6 A1 SET MULTI-FILE POSITIONING
- BX7 X7+X3
- SA7 A2
- EQ AFOR PROCESS NEXT ARGUMENT
- SLT SPACE 4,10
- ** SLT - SET LABEL TYPE.
- *
- * LB=(KU,KL,NS)
- *
- * TYPES ARE MUTUALLY EXCLUSIVE.
- SLT BSS 0 ENTRY
- SB3 SLTA SET OPTION TABLE ADDRESS
- RJ AOP ANALYZE LABEL OPTIONS (NO LITERALS)
- SA2 F+FTAP
- SX6 B1
- LX7 57-0
- SA6 LT SET LABEL TYPE SPECIFIED
- BX7 X2+X7 SET LABEL TYPE
- SA7 A2
- EQ AFOR PROCESS NEXT ARGUMENT
- SLTA VFD 42/0LKU,18/0 KRONOS UNLABELED
- VFD 42/0LKL,18/2 KRONOS LABELED
- VFD 42/0LNS,18/3 NON-STANDARD LABELED
- CON 0
- SNS SPACE 4,10
- ** SNS - SET NOISE SIZE.
- *
- * NS=NN. NN = NUMERIC LESS THAN 32.
- SNS BSS 0 ENTRY
- RJ CLP GET PARAMETER VALUE (NO LITERALS)
- MX0 2*6
- BX6 -X0*X5
- NZ X6,ERR IF PARAMETER TOO LONG
- SB7 B1 ASSUME DECIMAL
- RJ DXB
- NZ X4,ERR IF ASSEMBLY ERROR
- SA2 F+FTAP
- SX7 X6-32
- PL X7,ERR IF NOISE SIZE TOO LARGE
- LX6 24
- BX6 X6+X2 SET NOISE SIZE
- SA6 A2+
- EQ AFOR PROCESS NEXT ARGUMENT
- SPO SPACE 4,10
- ** SPO - SET PROCESSING OPTIONS.
- *
- * PO=(ACEFGHILMNPRSUWX)
- SPO BSS 0 ENTRY
- RJ CLP GET PARAMETER VALUE (NO LITERALS)
- MX0 -6
- SB2 10
- MX7 0
- SPO1 LX5 6
- BX3 -X0*X5
- ZR X3,SPO2 IF END OF PARAMETERS
- SB2 B2-B1
- SA4 SPOA
- SB3 X3
- AX4 X4,B3
- LX4 -1
- PL X4,ERR IF NOT LEGAL OPTION
- CX4 X4
- SA3 X4+SPOA READ OPTION BIT
- BX7 X7+X3
- NZ B2,SPO1 IF MORE PARAMETERS IN WORD
- EQ B5,B1,ERR IF IMPROPER TERMINATION
- SA5 A5+B1 READ NEXT WORD OF PARAMETERS
- SB5 B5-B1
- SB2 10
- EQ SPO1
- SPO2 MX0 24 MERGE PROCESSING OPTIONS
- SA2 F+FTAP
- BX3 -X0*X7
- BX7 X0*X7
- LX3 36
- BX7 X7+X2
- BX7 -X3*X7
- SA7 A2
- EQ AFOR PROCESS NEXT ARGUMENT
- SPOA DATA 153271752B
- DATA 1BS44 X OPTION
- DATA 1BS40 W OPTION
- DATA 1BS41 U OPTION
- DATA 1BS45 S OPTION
- DATA 1BS39 R OPTION
- DATA 1BS46 P OPTION
- DATA 1BS37 N OPTION
- DATA 1BS43 M OPTION
- DATA 1BS7 L OPTION
- DATA 1BS47 I OPTION
- DATA 1BS6 H OPTION
- DATA 1BS42 G OPTION
- DATA 1BS5 F OPTION
- DATA 1BS38 E OPTION
- DATA 1BS42 C OPTION
- DATA 1BS36 A OPTION
- STD SPACE 4,10
- ** STD - SET TAPE DENSITY.
- *
- * D=(LO,HI,HY,HD,PE,GE,CE,AE)
- * D=(200,556,800,1600,6250,38000)
- *
- * THE FOLLOWING KEYWORDS ARE OBSOLETE AND ARE SUPPORTED BY THE
- * *ASSIGN* AND *REQUEST* COMMANDS FOR COMPATIBILITY ONLY -
- *
- * LO
- * HI
- * HY
- * HD
- * PE
- * GE
- STD BSS 0 ENTRY
- SB3 TDEN SET OPTION TABLE ADDRESS
- RJ AOP ANALYZE DENSITY OPTION (NO LITERALS)
- STD1 SA2 F+FTAP
- MX0 -3
- BX6 -X0*X7 SPECIFIED DENSITY
- AX7 3
- LX6 51-0
- SA7 DM SET DEVICE TYPE VALIDATION MASK
- BX6 X2+X6 SET DENSITY
- SA6 A2
- EQ AFOR PROCESS NEXT ARGUMENT
- * ENTRY FOR *LO*, *HI*, *HY*, *HD*, *PE*, AND *GE* KEYWORDS.
- STD3 ZR X5,ERR IF *LABEL* CALL
- SA1 TDEN+X7
- BX7 X1
- EQ STD1 PROCESS DENSITY
- STF SPACE 4,10
- ** STF - SET FORMAT.
- *
- * F=(I,SI,F,S,L,LI)
- STF BSS 0 ENTRY
- SB3 STFA SET OPTION TABLE ADDRESS
- SX6 B0+ DISABLE LITERAL PROCESSING
- RJ AOP ANALYZE FORMAT OPTIONS
- SA2 F+FTAP
- LX7 30
- BX7 X2+X7 SET FORMAT
- SA7 A2
- EQ AFOR PROCESS NEXT ARGUMENT
- STFA VFD 42/0LI,18//COMSMTX/TFI INTERNAL BINARY
- VFD 42/0LSI,18//COMSMTX/TFSI SYSTEM INTERNAL
- VFD 42/0LF,18//COMSMTX/TFF FOREIGN
- VFD 42/0LS,18//COMSMTX/TFS STRANGER
- VFD 42/0LL,18//COMSMTX/TFL LONG BLOCK STRANGER
- VFD 42/0LLI,18//COMSMTX/TFLI LONG BLOCK INTERNAL
- CON 0
- STT SPACE 4,10
- ** STT - SET TAPE DEVICE TYPE.
- *
- * DT=(MT,NT,CT,AT)
- *
- * THE FOLLOWING KEYWORDS ARE OBSOLETE AND ARE SUPPORTED FOR
- * COMPATIBILITY ONLY -
- *
- * MT
- * NT
- STT BSS 0 ENTRY
- SB3 STTA SET OPTION TABLE ADDRESS
- SX6 B0+ DISABLE LITERAL PROCESSING
- RJ AOP ANALYZE DEVICE TYPE OPTIONS
- * ENTRY FOR *MT* AND *NT* KEYWORDS.
- STT1 SA1 F+FTAP
- SX6 B1
- LX7 55-0
- SA6 TT SET DEVICE TYPE SPECIFIED FLAG
- BX7 X1+X7 SET DEVICE TYPE
- SA7 A1
- EQ AFOR PROCESS NEXT ARGUMENT
- STTA BSS 0
- VFD 42/0LMT,18//COMSMTX/DVMT
- VFD 42/0LNT,18//COMSMTX/DVNT
- VFD 42/0LCT,18//COMSMTX/DVCT
- VFD 42/0LAT,18//COMSMTX/DVAT
- CON 0
- VSP SPACE 4,10
- ** VSP - SET VOLUME SERIAL NUMBERS.
- *
- * VSN=NNNN/NNNN=NNNN/NNNN=...=NNNN/NNNN.
- VSP BSS 0 ENTRY
- SA1 /CPA/RFCW GET DEMAND FILE INDEX
- SX7 B1
- SX1 X1
- SA7 VP SET VSN= PROCESSED
- NZ X1,VSP1 IF DEMAND ENTRY EXISTS
- RJ IDE INITIALIZE DEMAND ENTRY
- VSP1 SA3 F SET FILE NAME
- RJ BVE BUILD VSN ENTRY
- EQ AFOR PROCESS NEXT ARGUMENT
- WRL SPACE 4,10
- ** WRL - SET LABEL READ/WRITE.
- *
- * R
- * W
- *
- * FORCES WRITE ENABLE REQUIRED IF *W*.
- WRL BSS 0 ENTRY
- NZ X5,ERR IF NOT *LABEL* CALL
- ZR X7,AFOR IF LABEL TO BE READ
- SA2 F+FTAP SET WRITE LABELS BIT
- LX7 59-17
- BX6 X2+X7
- LX7 40-17-59+17
- BX6 X6+X7 SET WRITE ENABLE REQUIRED (PO = W)
- SA6 A2+
- EQ AFOR PROCESS NEXT ARGUMENT
- TITLE COMMAND PROCESSING SUBROUTINES.
- AOP SPACE 4,25
- ** AOP - ANALYZE OPTIONAL PARAMETERS.
- *
- * ENTRY (B6) = ADDRESS TO BEGIN PARAMETER ASSEMBLY
- * (B3) = PARAMETER OPTION TABLE ADDRESS
- * (X6) = 0, IF DISABLE LITERAL PROCESSING.
- * .NE. 0, IF ENABLE LITERAL PROCESSING.
- *
- * EXIT (X5) = SEPARATOR.
- * (X1) = OPTION TABLE ENTRY.
- * (X7) = LOWER 18 BITS OF ENTRY.
- * TO *AFOR*, IF ARGUMENTS EXHAUSTED.
- *
- * ERROR TO *ERR*, IF COMMAND ERROR.
- *
- * KEYWORDS MUST BE LESS THAN OR EQUAL TO SEVEN CHARACTERS.
- *
- * USES A - 1, 5.
- * B - 7.
- * X - 0, 1, 5, 6, 7.
- *
- * CALLS CLP.
- AOP SUBR ENTRY/EXIT
- ZR B6,AFOR IF ARGUMENTS EXHAUSTED
- RJ CLP CALL PICK OUT PARAMETER
- GE B5,B1,ERR IF PARAMETER/KEYWORD TOO LONG
- SB7 A1 RETAIN SEPARATOR ADDRESS
- MX0 7*6
- SA1 B3-1 READ OPTION TABLE
- AOP1 SA1 A1+B1
- BX6 X0*X1 KEYWORD
- ZR X1,ERR IF END OF OPTIONS
- BX6 X6-X5
- BX7 -X0*X1 SET PARAMETERS
- NZ X6,AOP1 IF NO MATCH
- SA5 B7 READ SEPARATOR
- EQ AOPX
- CLP SPACE 4,20
- ** CLP - CALL POP.
- *
- * ENTRY (B6) = ASSEMBLY POINTER.
- * (X6) = 0, IF DISABLE LITERAL PROCESSING.
- * .NE. 0, IF ENABLE LITERAL PROCESSING.
- *
- * EXIT (B6) = NEXT ASSEMBLY POINTER.
- * (X5) = FIRST PART OF PARAMETER.
- * TO *AFOR*, IF ARGUMENTS EXHAUSTED.
- *
- * ERROR TO *ERR*, IF COMMAND ERROR.
- *
- * USES A - 5, 6.
- * X - 5.
- *
- * CALLS POP.
- CLP SUBR ENTRY/EXIT
- ZR B6,AFOR IF COMMAND EXHAUSTED
- SA6 LIT SET PROPER OPTION FOR LITERAL PROCESSING
- RJ POP PICK OUT PARAMETER
- NG B5,ERR IF NO PARAMETER
- ZR X2,ERR IF INCORRECT TERMINATION
- SA5 POPA READ FIRST PART PARAMETER
- EQ CLPX EXIT
- ENF SPACE 4,15
- ** ENF - ENTER NUMERIC LABEL FIELD.
- *
- * ENTRY (X1) = FET WORD CONTROL
- * LOWER 18 BITS = FET WORD ADDRESS
- * SIGN BIT SET = FIELD BITS 23-15
- * SIGN BIT CLEAR = FIELD BITS 14-00
- * (X6) = NUMBER IN OCTAL.
- *
- * EXIT FIELD ENTERED IN FET WORD.
- *
- * ERROR TO *ERR*, IF COMMAND ERROR.
- *
- * USES A - 2, 6.
- * X - 0, 1, 5, 6.
- ENF1 SX5 X6-100
- PL X5,ERR IF VALUE TOO LARGE
- MX0 -9
- LX6 15
- LX0 15
- ENF2 SA2 X1 ENTER VALUE IN FET WORD
- BX2 X0*X2
- BX6 X6+X2
- SA6 A2
- ENF SUBR ENTRY/EXIT
- MX0 -15
- BX6 -X0*X6
- NG X1,ENF1 IF UPPER FIELD
- ZR X6,ERR IF INCORRECT VALUE
- SX5 X6-10000
- PL X5,ERR IF VALUE TOO LARGE
- EQ ENF2 ENTER VALUE IN FET WORD
- GRD SPACE 4,15
- ** GRD - GENERATE RETENTION DATE.
- *
- * ENTRY (RC) = RETENTION CYCLE (LEFT-JUSTIFIED, DISPLAY CODE)
- *
- * EXIT RETENTION DATE SET IN FET+15B.
- *
- * ERROR TO *ERR*, IF COMMAND ERROR.
- *
- * USES A - 0, 1, 2, 4, 7.
- * B - 2, 3, 4, 7.
- * X - 0, 1, 2, 4, 5, 6, 7.
- *
- * CALLS CDD, DXB.
- *
- * MACROS JDATE.
- GRD SUBR ENTRY/EXIT
- JDATE GRDA SET CURRENT DATE
- SA1 F+FCRD CHECK CREATION DATE
- ZR X1,GRD1 IF NO CREATION DATE
- BX7 X1
- SA7 GRDA
- GRD1 SA1 RC CHECK RETENTION CYCLE
- ZR X1,GRDX IF NO RETENTION CYCLE
- BX5 X1
- SB7 B1
- RJ DXB
- SX5 999 CHECK PARAMETER VALIDITY
- NZ X4,ERR IF ASSEMBLY ERRORS
- IX7 X5-X6
- SA2 GRDA
- MX0 18
- SA4 =5L99999 SET UNLIMITED EXPIRATION DATE
- ZR X7,GRD4 IF INFINITE RETENTION CYCLE
- SA0 X6 SAVE RETENTION DAYS
- LX2 42
- NG X7,ERR IF RETENTION CYCLE GREATER THAN 999
- BX5 X0*X2
- RJ DXB CONVERT CURRENT JULIAN DAYS
- SA2 GRDA
- NZ X4,ERR IF ASSEMBLY ERRORS
- MX0 12
- LX2 30
- SB4 X6+
- BX5 X0*X2
- SA0 A0+B4 EXTEND DAYS TO END OF RETENTION CYCLE
- RJ DXB CONVERT CURRENT JULIAN YEARS
- SX0 3
- NZ X4,ERR IF ASSEMBLY ERRORS
- GRD2 BX5 X0*X6
- SX6 X6+B1
- SB7 366
- ZR X5,GRD3 IF LEAP YEAR
- SB7 365
- GRD3 SA0 A0-B7
- SB2 A0
- ZR B2,GRD3.1 IF NO MORE DAYS
- PL B2,GRD2 IF MORE DAYS
- GRD3.1 SX1 X6+99 ADJUST AND BIAS TO ENSURE ENOUGH DIGITS
- RJ CDD CONVERT NEW YEAR
- MX7 -12
- BX5 -X7*X6 ISOLATE AND SAVE YEAR
- LX5 48 POSITION YEAR
- SA0 A0+B7
- SX1 A0+1000 BIAS DAYS TO ENSURE ENOUGH DIGITS
- RJ CDD CONVERT NEW DAY
- MX0 -18
- BX7 -X0*X6 ISOLATE DAY
- LX7 30 POSITION DAY
- BX4 X5+X7
- GRD4 SA2 F+FRTD ENTER RETENTION DATE
- MX0 30
- BX2 -X0*X2
- BX7 X2+X4
- SA7 A2
- EQ GRDX RETURN
- GRDA CON 0 CREATION DATE TEMPORARY
- TITLE *TMS* COMMAND PROCESSING.
- TMS SPACE 4
- QUAL TFM
- COMMON SPACE 4,10
- ** COMMON DECKS.
- *CALL COMSTCM
- FETS SPACE 4,10
- ** PASSWORD FETS.
- I BSS 0 INPUT FILE FET
- INPUT FILEC IBUF,BUFL,FET=6
- O BSS 0 OUTPUT FILE FET
- OUTPUT FILEB PMSG,PMSGL+1,FET=6
- TMO SPACE 4,15
- ** TMO - TAPE MANAGER OPTIONS.
- *
- * ENTRY USBB HAS CONTROL CARD (1 CHARACTER PER WORD).
- * (X1) = PARAMETER.
- * (A1) = ADDRESS OF SEPARATOR.
- * (B6) = STRING BUFFER POINTER.
- *
- * EXIT TO KEYWORD PROCESSOR.
- * (X5) = REQUEST TYPE.
- * (X7) = PROCESSOR PARAMETERS.
- *
- * USES X - 0, 1, 3, 4, 5, 6, 7.
- * A - 3, 4, 5, 6.
- * B - 2, 3.
- TMO BSS 0 ENTRY
- SA3 TMPF TAPE MANAGER OPTION PROCESSOR
- NG X3,ERR IF *TMS* DISABLED
- SX4 TMOA PARAMETER KEYWORD TABLE ADDRESS
- MX0 18
- SB3 B0
- TMO1 SA3 B3+X4
- BX7 X0*X3
- IX6 X1-X7
- SB3 B3+B1
- NG X6,ERR IF KEYWORD NOT FOUND
- NZ X6,TMO1 IF NOT TO KEYWORD YET
- SA4 A1
- SB2 X3
- SA6 A3+ CLEAR KEYWORD ENTRY
- LX3 42
- MX0 -18 EXTRACT PROCESSOR PARAMETERS
- BX7 -X0*X3
- PL B2,TMO2 IF KEYWORD VALUE NOT REQUIRED
- SX1 X4-1R=
- SB2 -B2
- NZ X1,ERR IF SEPARATOR NOT *=*
- TMO2 SA5 RT GET REQUEST TYPE
- JP B2 EXECUTE KEYWORD PROCESSOR
- TMOA BSS 0 TAPE MANAGER ASSEMBLY OPTIONS.
- AC MKTE -SAC AUDIT ACCESSIBILITY
- CT MKTE -SCT CATEGORY TYPE
- MD MKTE -SMD FILE MODE
- PW MKTE AUA,,(18/F+FPSW) ALTERNATE USER PASSWORD
- TO MKTE STO TAPE MANAGER OPTIONS
- UN MKTE AUA,,(18/F+FAUN) ALTERNATE USERNAME
- CON 37777777777777777777B
- EJECT
- AUA SPACE 4,10
- ** AUA - ALTERNATE USER ACCESS.
- *
- * PW.
- * PW=PASSWRD.
- * UN=USERNAM.
- AUA BSS 0 ENTRY
- SA7 AUAA SAVE ARGUMENT ADDRESS
- SX1 X4-1R=
- ZR X1,AUA1 IF KEYWORD EQUATED
- ZR B6,AUA2 IF CONTROL CARD EXHAUSTED
- SX1 X4-1R,
- ZR X1,AUA2 IF NO ARGUMENT GIVEN
- AUA1 SX6 B0+ DISABLE LITERAL PROCESSING
- RJ CLP CALL *POP*
- MX0 7*6
- BX4 -X0*X5
- NZ X4,ERR IF PARAMETER TOO LONG
- BX6 X0*X5
- EQ AUA3 STORE ARGUMENT
- AUA2 SX7 B6 SAVE (B6)
- SA7 A7+B1
- RJ ESP ENTER SECURE PASSWORD
- SA1 AUAB
- SB6 X1+ RESTORE (B6)
- AUA3 SA1 AUAA
- SA1 X1
- BX2 -X0*X1
- BX7 X2+X6
- SA7 A1
- EQ AFOR PROCESS NEXT ARGUMENT
- AUAA CON 0 TEMPORARY
- AUAB CON 0 TEMPORARY
- ESP SPACE 4,20
- ** ESP - ENTER SECURE PASSWORD.
- *
- * THIS SUBROUTINE PROCESSES SECURELY ENTERED PASSWORDS.
- * IF OUTPUT FILE IS ASSIGNED TO A TERMINAL THE MESSAGE
- * *PASSWORD:* ALONG WITH BLANK OUT CHARACTERS FOR SECURE
- * ENTRY OF PASSWORD WILL BE SENT TO THE TERMINAL.
- * FILE *INPUT* WILL THEN BE READ FOR THE PASSWORD.
- * FOR BATCH JOBS FILE *INPUT* IS READ FOR THE PASSWORD.
- *
- * EXIT (X6) = PASSWORD.
- * ABORT WITH *INCORRECT PASSWORD* IF INCORRECT PASSWORD
- * ENCOUNTERED.
- *
- * USES X - ALL.
- * A - 1, 2, 6, 7.
- * B - 2, 3, 4, 5, 6, 7.
- *
- * CALLS STF.
- *
- * MACROS CSET, MESSAGE, READSKP, WRITE.
- ESP SUBR ENTRY/EXIT
- SX2 O SET ADDRESS OF FET
- RJ STF CHECK IF OUTPUT ASSIGNED TO TERMINAL
- NZ X6,ESP1 IF OUTPUT NOT ASSIGNED TO TERMINAL
- SA1 X2+B1 SET BUFFER FULL
- SX7 X1
- SX6 X1+PMSGL
- SA6 A1+B1 SET IN BELOW DATA FOR MESSAGE
- SA7 A6+B1 SET OUT = FIRST
- WRITE X2,* FORCE WRITE BIT SET
- SA1 O
- MX0 42
- BX2 X0*X1 FILE NAME FOR OUTPUT POINTER
- SX1 A1 SET ADDRESS OF FET FOR POINTER
- BX6 X1+X2
- SA6 ARGR FORCE WRITE BEFORE READ ON ROLLOUT
- ESP1 SX2 I SET ADDRESS OF FET
- RJ STF CHECK IF INPUT ASSIGNED TO TERMINAL
- NZ X6,ESP2 IF INPUT NOT ASSIGNED TO TERMINAL
- CSET NORMAL ENSURE TERMINAL IN NORMAL MODE
- ESP2 READSKP I,,R READ INPUT FOR PASSWORD
- SA1 I+2 DETERMINE NUMBER OF WORDS READ
- SA2 A1+B1
- IX6 X1-X2
- ZR X6,ESP10 IF NO DATA ENTERED (NULL PASSWORD)
- SB5 X6
- SB3 B0
- BX5 X5-X5
- MX6 0
- SB4 60
- SB7 B0
- MX0 -6
- ESP3 SA2 IBUF+B3 PICK UP NEXT DATA WORD
- SB2 B0+
- ESP4 LX2 6
- BX1 -X0*X2 PICK UP CHARACTER TO CHECK
- NZ X1,ESP5 IF CHARACTER NOT ZERO
- NZ X5,ESP10 IF 00 ENCOUNTERED
- SX5 B1+ SET FLAG TO INDICATE 0 ENCOUNTERED
- EQ ESP9 GET NEXT CHARACTER
- ESP5 NZ X5,ESP11 IF PREVIOUS CHARACTER = COLON
- ESP6 SB6 X1-1R9
- GT B6,ESP8 IF NOT ALPHANUMERIC CHARACTER
- ESP7 SB4 B4-6
- LX7 X1,B4
- BX6 X7+X6
- SB7 B7+1
- SB6 B7-7
- GT B6,ESP11 IF PASSWORD .GT. SEVEN CHARACTERS
- EQ ESP9 GET NEXT CHARACTER
- ESP8 SX4 X1-1R*
- ZR X4,ESP7 IF CHARACTER = *
- SX3 X1-1R
- NZ X3,ESP11 IF CHARACTER NOT BLANK
- ESP9 SB2 B2+B1
- SB6 B2-10
- LT B6,ESP4 IF NOT END OF WORD
- SB3 B3+B1
- SB6 B5-B3
- EQ B6,ESP11 IF TOO MUCH DATA ENTERED
- EQ ESP3 CONTINUE PASSWORD CHECK
- ESP10 SA1 I+1
- BX7 X1
- SA7 A1+B1 SET IN = FIRST FOR INPUT BUFFER
- EQ ESPX RETURN
- ESP11 MESSAGE ESPA,3,R *INCORRECT PASSWORD.*
- SB2 /PER/ARG *ARGUMENT ERROR*
- EQ PER PROCESS ERROR
- ESPA DATA C* INCORRECT PASSWORD.*
- * MESSAGE FOR SECURE ENTRY OF PASSWORD.
- PMSG DATA 10H"EM" PASSWO
- DATA 10HRD:"NL" (((
- DATA 10H((((("CR" )
- DATA 10H)))))))"CR"
- DATA 10H MMMMMMMM
- DATA 10H"CR" QQQQQQ
- DATA 10HQQ"CR" XXXX
- DATA 10HXXXX"CR""CB""EL"
- PMSGL EQU *-PMSG
- SAC SPACE 4,10
- ** SAC - SET AUDIT CHARACTERISTIC.
- *
- * AC=ACCESSIBILITY.
- SAC BSS 0 ENTRY
- SB3 SACA SET OPTION TABLE ADDRESS
- RJ AOP ANALYZE OPTION PARAMETER
- SA1 F+FFAC
- LX7 17-5
- BX7 X1+X7
- SA7 A1
- EQ AFOR PROCESS NEXT ARGUMENT
- SACA BSS 0 AUDIT ACCESSIBILITY TABLE
- VFD 42/0LN,18//TFM/FANO
- VFD 42/0LY,18//TFM/FAYS
- CON 0 END OF TABLE
- SCT SPACE 4,10
- ** SCT - SET CATEGORY TYPE.
- *
- * CT=TYPE.
- SCT BSS 0 ENTRY
- SB3 SCTA SET OPTION TABLE ADDRESS
- RJ AOP ANALYZE OPTION PARAMETER
- SA1 F+FFCT
- LX7 11-5
- BX7 X1+X7
- SA7 A1
- EQ AFOR PROCESS NEXT ARGUMENT
- SCTA BSS 0 CATEGORY TYPE CONVERSION TABLE
- VFD 42/0LP,18//TFM/FCPR
- VFD 42/0LPR,18//TFM/FCPR
- VFD 42/0LPU,18//TFM/FCPU
- VFD 42/0LS,18//TFM/FCSP
- CON 0 END OF TABLE
- SMD SPACE 4,10
- ** SMD - SET FILE MODE.
- *
- * MD=MODE.
- SMD BSS 0 ENTRY
- SB3 SMDA SET OPTION TABLE ADDRESS
- RJ AOP ANALYZE OPTION PARAMETER
- SA1 F+FFMD
- BX7 X1+X7
- SA7 A1
- EQ AFOR PROCESS NEXT ARGUMENT
- SMDA BSS 0 FILE MODE CONVERSION TABLE
- VFD 42/0LR,18//TFM/FMRE
- VFD 42/0LW,18//TFM/FMWR
- CON 0 END OF TABLE
- STO SPACE 4,15
- ** STO - SET TAPE MANAGER OPTIONS.
- *
- * TO=(ACDEFRST)
- *
- * A = APPEND FILE (MULTI-FILE).
- * C = CHECK FOR CATALOG ERROR FLAG.
- * D = INHIBIT DEFAULTED TAPE ATTRIBUTES.
- * E = IGNORE CATALOG ERROR FLAG.
- * F = FOREIGN FILE (NON-*TMS*).
- * R = RESERVE FILE.
- * S = SYMBOLIC ACCESS TYPE.
- * T = *TMS* CONTROLLED FILE.
- STO BSS 0 ENTRY
- RJ CLP GET PARAMETER VALUE (NO LITERALS)
- MX0 -6
- SB2 10
- MX7 0
- STO1 LX5 6
- BX3 -X0*X5
- ZR X3,STO2 IF END OF PARAMETERS
- SB2 B2-B1
- SA4 STOA
- SB3 X3
- AX4 X4,B3
- LX4 -1
- PL X4,ERR IF NOT LEGAL OPTION
- CX4 X4
- SA3 X4+STOA READ OPTION BIT
- BX7 X7+X3
- NZ B2,STO1 IF MORE PARAMETERS IN WORD
- EQ B5,B1,ERR IF IMPROPER TERMINATION
- SA5 A5+B1 READ NEXT WORD OF PARAMETERS
- SB5 B5-B1
- SB2 10
- EQ STO1 CHECK NEXT OPTION
- STO2 MX0 42 MERGE TAPE MANAGER OPTIONS
- SA2 F+FFTO
- BX3 -X0*X7
- BX7 X0*X2
- BX7 X7+X3
- SA7 A2
- LX7 59-5
- PL X7,AFOR IF NOT *TO=A*
- SA2 F+FSQN SET *QN = 9999*
- MX7 46
- BX2 X7*X2
- SX7 9999D
- BX7 X2+X7
- SA7 A2
- SA2 F+FTAP SET *WRITE LABEL*
- MX7 1
- BX7 X7+X2
- SA7 A2+
- SA2 MF SET *QN .GT. 1*
- SX3 16B
- BX7 X3+X2
- SA7 A2
- EQ AFOR PROCESS NEXT ARGUMENT
- STOA DATA 7000172B VALIDATION BITS FOR OPTIONS (ACDEFRST)
- DATA 1BS4 T - *TMS* CONTROLLED FILE (SYOT)
- DATA 1BS2 S - SYMBOLIC ACCESS FILE
- DATA 1BS3 R - RESERVE TAPE FILE
- DATA 1BS1 F - FOREIGN TAPE (NOT IN *TMS*)
- DATA 1S7 E - IGNORE CATALOG ERROR FLAG
- DATA 1BS0 D - INHIBIT DEFAULTED ATTRIBUTES
- DATA 1S9 C - CHECK CATALOG ERROR FLAG
- DATA 1S5 A - APPEND FILE (MULTI-FILE)
- COMMON SPACE 4,10
- ** COMMON DECKS.
- *CALL COMCSTF
- *CALL COMCWTH
- SPACE 4,10
- *** BUFFERS.
- IBUF BSS BUFL INPUT FILE BUFFER
- SPACE 4
- QUAL *
- SPVT SPACE 4,10
- ** SPVT - SPECIAL VALIDATION TABLE.
- *
- *T 42/0,18/ DC
- *
- * DC DEVICE CODE
- SPVT BSS 0
- * SPECIAL DEVICE CODES.
- CON 2RMS
- CON 2RNE
- * MASS STORAGE DEVICE CODES.
- PURGMAC TBLM
- TBLM MACRO DC
- MACREF TBLM
- CON 2R_DC
- TBLM ENDM
- LIST G
- TBL "MSEQ"
- LIST *
- CON 0 END OF TABLE
- TITLE *PFM* *DMP=* CALL PRESET.
- PFM SPACE 4,10
- *** PFM - PROCESS CALL FROM *PFM*.
- *
- * ENTRY (SPPR) = *PFM* CALL.
- *
- * ERROR TO *PER*, IF RESOURCE TYPE ERROR OR CONTROL
- * COMMAND.
- PFM BSS 0 ENTRY
- SB1 1 (B1) = 1
- SA1 ACTR CHECK FOR COMMAND CALL
- SB2 /PER/CCI *INCORRECT COMMAND.*
- NZ X1,PER IF COMMAND CALL
- SX7 B1+
- SA7 CF SET CALL FLAG
- RJ PCV PRESET CONTROL POINT VALUES
- SA2 SFET+FDTY READ FET DETAILS
- MX0 -6
- LX2 -18
- BX5 -X0*X2
- SX5 X5+5-/COMSPFM/CFPK-1
- MX0 42
- SA3 /CPA/PKNW DEFAULT PACK NAME
- PL X5,PFM1 IF FET NOT TOO SHORT
- BX1 -X0*X3 GET DEVICE TYPE
- BX5 X0*X3
- NZ X1,PFM4 IF DEVICE TYPE SPECIFIED
- SA1 DFPT
- EQ PFM4 SET RESOURCE REQUEST BLOCK
- PFM1 SA1 SFET+/COMSPFM/CFPK READ PACK INFORMATION
- MX6 -3
- BX5 X0*X1
- BX6 -X6*X1 NUMBER OF UNITS
- NZ X5,PFM2 IF NOT USING DEFAULT PACKNAME
- BX5 X0*X3
- PFM2 LX2 18
- NZ X6,PFM3 IF NUMBER OF UNITS SPECIFIED
- SX6 B1
- PFM3 MX0 12
- SX6 X6+1R0
- BX2 X0*X2 DEVICE TYPE
- LX2 18
- BX1 X6+X2 RESOURCE TYPE
- NZ X2,PFM4 IF NOT USING DEFAULT EQUIPMENT
- MX0 -18
- BX1 -X0*X3
- NZ X1,PFM4 IF DEVICE TYPE SPECIFIED
- SA1 DFPT
- PFM4 LX6 X1
- BX6 X6+X5
- SA6 RQ ENTER USER REQUEST (RQ)
- LX1 -18
- RJ GRI GET RESOURCE INDEX
- ZR B2,PFM5 IF RESOURCE NOT FOUND
- SA6 RI ENTER RESOURCE INDEX (RI)
- RJ GTM GET CURRENT TIME
- EQ RRP REQUEST REMOVABLE PACK
- PFM5 SB2 /PER/IRT * INCORRECT RESOURCE TYPE.*
- EQ PER PROCESS ERROR
- TITLE PRESET PRE-PROCESSORS.
- CCP SPACE 4,15
- ** CCP - COMMAND PRE-PROCESSOR.
- *
- * ENTRY (X5) = ADDRESS OF PROCESSOR NAME.
- *
- * EXIT (USBB) = UNPACKED COMMAND.
- * (AP) = (B6) = ASSEMBLY POINTER.
- * (LIT) .NE. 0.
- *
- * ERROR TO *ERR*, IF COMMAND ERROR.
- *
- * USES A - 5, 7.
- * B - 1, 2.
- * X - 0, 5, 7.
- *
- * CALLS IDF, PCV, POP, USB.
- CCP SUBR ENTRY/EXIT
- SA5 X5 READ PROGRAM NAME
- SB1 1 (B1) = 1
- BX7 X5
- SA7 CCPA SAVE PROGRAM NAME
- RJ IDF ISSUE DAYFILE MESSAGE
- RJ PCV PRESET CONTROL POINT VALUES
- SB2 CCDR UNPACK COMMAND
- RJ USB
- SX7 B0+
- SA7 LIT CLEAR LITERAL PROCESSING
- CCP1 SA5 CCPA VERIFY PROGRAM NAME
- RJ POP
- NG B5,ERR IF COMMAND ERROR
- BX0 X6-X5
- SX7 B6
- NZ X0,CCP1 IF NOT CORRECT PROGRAM NAME
- SX1 X1-1R=
- ZR X1,ERR IF SEPARATOR IS *=*
- SA7 AP SAVE COMMAND ASSEMBLY POINTER
- EQ CCPX RETURN
- CCPA CON 0 PROGRAM NAME
- ** TABLE OF PROGRAM NAMES.
- ASSIGNC VFD 60/0LASSIGN
- LABELC VFD 60/0LLABEL
- REQUESC VFD 60/0LREQUEST
- RESOURS VFD 60/0LRESOURC
- VSNC VFD 60/0LVSN
- CLF SPACE 4,20
- ** CLF - CONVERT LFM CALL TO FET.
- *
- * ENTRY (SPPR) = ADDRESS OF CALLING BLOCK.
- *
- * EXIT FET AND TAPE DEFINITION BLOCK BUILT.
- * AUTOMATIC ASSIGNMENT FLAG SET WHEN NEEDED.
- *
- * ERROR TO *PER*, IF ERROR.
- *
- * USES X - ALL.
- * A - 1, 2, 3, 6, 7.
- * B - 2.
- *
- * CALLS ILF.
- *
- * MACROS MOVE.
- CLF SUBR ENTRY/EXIT
- * COPY LABEL FET.
- RJ ILF INITIALIZE LABEL FET
- SA1 SFET+FDTY COPY TAPE DESCRIPTOR AND LABEL VALUES
- MX0 -6
- LX1 -18
- BX5 -X0*X1
- SX1 X5-FCID-1+5
- NG X1,CLF2 IF FET TOO SHORT
- SA3 SFET+FTAP SET DEFAULT OR TOGGLE INSTALLTION OPTION
- SX2 /COMSMTX/POLM DEFAULT ERROR MESSAGE OPTION
- SX6 /COMSMTX/POGH DEFAULT GCR WRITE CORRECTION OPTION
- LX2 43-0
- SX5 FMAX
- LX6 42-0
- BX3 X3-X2
- SX1 X1+B1
- BX6 X3-X6
- IX4 X5-X1
- SA6 A3
- PL X4,CLF1 IF FET NOT TOO LONG
- BX1 X5
- CLF1 MOVE X1,SFET+FCID,F+FCID
- CLF2 SA1 SFET SET FILE NAME AND GUARANTEE COMPLETE FET
- MX0 12
- SA2 A1+B1
- SX7 B1
- BX7 X1+X7
- SA3 F+FDTY
- BX2 X0*X2
- SA7 A3-B1 ENTER FILE NAME
- BX3 -X0*X3
- BX7 X2+X3
- SA7 A3 ENTER DEVICE FIELD
- MX0 -11
- SA3 F+FTAP GET TAPE DESCRIPTORS
- LX2 12 CHECK DEVICE TYPE
- MX7 1 GET *OPEN/WRITE* FLAG
- BX6 X7*X3
- LX6 40-59
- BX6 X6+X3 SET WRITE ENABLE REQUIRED FOR *OPEN/WRITE*
- BX7 -X0*X2 DEVICE CODE
- LX6 -55
- MX0 -2
- ZR X7,CLF4 IF NO DEVICE CODE SPECIFIED
- RJ CTE CHECK FOR TAPE DEVICE CODE
- ZR X2,CLF4 IF NOT TAPE DEVICE CODE
- BX1 -X0*X6 SPECIFIED DEVICE TYPE
- BX0 X1-X7
- ZR X0,CLF4 IF DEVICE CODE MATCHES TAPE DEVICE TYPE
- SB2 /PER/TDC * TAPE DEVICE TYPE CONFLICT.*
- NZ X1,PER IF *MT* DEVICE TYPE NOT SPECIFIED
- ERRNZ /COMSMTX/DVMT
- BX6 X6+X7 SET DEVICE TYPE FROM DEVICE CODE
- CLF4 SA1 F+FCID GET CHECKPOINT ID FROM FET+7
- LX6 55
- SA6 A3
- MX0 -6
- LX1 6
- BX6 -X0*X1
- SX5 X6-/COMSLFM/CKID CHECK FOR SPECIAL ID = 76B
- SX6 /COMSLFD/CKST CHECKPOINT AT EOI
- ZR X5,CLF6 IF VALID ID
- SX5 X5-/COMSLFM/CBID+/COMSLFM/CKID
- SX6 /COMSLFD/CBST CHECKPOINT AT BOI
- ZR X5,CLF6 IF VALID ID
- SA1 SPPR CHECK FOR *SSJ=* CALLING PROGRAM
- SA3 /CPA/JCIW CHECK FOR PRIVACY STATUS ON NEW FILES
- LX1 59-36
- PL X1,CLF5 IF NOT *SSJ=* JOB
- LX1 59-37-59+36
- SX6 /COMSLFD/SSST SPECIAL SYSTEM JOB FILE STATUS
- NG X1,CLF6 IF *SSJ=* BLOCK DEFINED
- CLF5 SX6 /COMSLFD/UPST USER FILE PRIVACY STATUS
- LX3 59-19
- NG X3,CLF6 IF USER PRIVACY REQUESTED ON NEW FILES
- SX6 B0+
- CLF6 SA6 CI SET CHECKPOINT ID
- * CHECK FOR MULTI-FILE POSITIONING.
- SA1 F+FMSI CHECK MULTI-FILE SET ID
- MX0 36
- BX6 X6-X6
- SA3 BLANK
- BX1 X0*X1
- BX4 X3-X1
- ZR X1,CLF7 IF SET ID NOT SPECIFIED
- ZR X4,CLF7 IF BLANK SET ID SPECIFIED
- SX6 X6+4 INDICATE SET ID SPECIFIED
- CLF7 MX0 42
- BX4 X3
- SA1 F+FID1 CHECK FILE IDENTIFIER
- LX4 24
- SA2 F+FID2
- BX3 X3+X4
- BX2 X0*X2
- IX4 X1+X2
- ZR X4,CLF8 IF FILE ID NOT SPECIFIED
- IX1 X1-X3
- BX4 X0*X3
- BX2 X2-X4
- IX1 X1+X2
- ZR X1,CLF8 IF BLANK FILE ID SPECIFIED
- SX6 X6+1 INDICATE FILE ID SPECIFIED
- CLF8 SA1 F+FSQN CHECK FILE SEQUENCE NUMBER
- MX0 -15
- BX1 -X0*X1
- ZR X1,CLF9 IF SEQUENCE NUMBER NOT SPECIFIED
- SX6 X6+2 INDICATE SEQUENCE NUMBER SPECIFIED
- SX2 X1-1
- ZR X2,CLF9 IF NOT MULTI-FILE SET SEQUENCE NUMBER
- SX6 X6+10B INDICATE SEQUENCE NUMBER .GT. 1
- SX2 X1-9999
- NZ X2,CLF9 IF NOT FILE SET EXTENSION
- SA3 F+FTAP SET WRITE LABEL BIT
- MX7 1
- BX3 X3+X7
- LX7 40-59 SET WRITE ENABLE REQUIRED FLAG
- BX7 X7+X3
- SA7 A3+
- CLF9 SA6 MF SET MULTI-FILE POSITIONING FLAG
- SA1 F+FVSN GET VSN
- MX6 42
- BX6 X6*X1
- SA6 EVSN SET EXTERNAL VSN
- SA6 IVSN SET INTERNAL VSN
- EQ CLFX
- CSF SPACE 4,15
- ** CSF - CONVERT NOS/BE REQUEST BLOCK TO FET.
- *
- * ENTRY (SPPR+1 - SPPR+9) = NOS/BE REQ MACRO PARAMETER BLOCK.
- *
- * EXIT FET AND TAPE DEFINITION BLOCK BUILT.
- *
- * ERROR TO *ERR*, IF CONTENT ERROR IN *REQ* BLOCK.
- *
- * USES A - 1, 2, 3, 4, 6, 7.
- * X - ALL.
- *
- * MACROS MOVE.
- CSF SUBR ENTRY/EXIT
- SA1 SPPR+1 ENTER FILE NAME
- MX0 42
- BX1 X0*X1
- SX2 3
- BX6 X1+X2
- SA1 A1+B1
- SA6 F
- MX0 -2 BUILD TAPE DESCRIPTORS
- BX6 -X0*X1 DENSITY
- LX1 -2
- BX5 -X0*X1 LABEL
- LX1 -2
- BX4 -X0*X1 FORMAT
- MX0 -1
- LX1 -2
- BX3 -X0*X1 TRACK TYPE
- MX0 -2
- LX1 -23
- SX6 X6+B1
- BX2 -X0*X1 CONVERSION (US, EB)
- LX6 -9
- CX5 X5
- LX3 -4
- SA4 X4+CSFA
- LX5 1
- BX5 -X0*X5
- LX1 5
- MX0 -1
- ZR X2,CSF1 IF NO CONVERSION SPECIFIED
- SX2 X2-3
- ZR X2,CSF1 IGNORE IF BOTH US AND EB SPECIFIED
- BX2 -X2
- CSF1 LX5 -4
- BX7 X6+X4
- LX2 -12
- BX7 X7+X3
- BX2 X5+X2
- BX6 -X0*X1 READ LABEL (E)
- BX7 X7+X2
- LX1 1
- BX5 -X0*X1 NON-STANDARD (NS)
- LX1 1
- BX4 -X0*X1 ERROR INHIBIT (NR)
- LX1 9
- BX3 -X0*X1 INHIBIT UNLOAD (IU)
- LX6 -1
- BX7 X7+X6
- LX5 -3
- BX7 X7+X5
- LX4 -22
- BX7 X7+X4
- LX3 -19
- BX7 X7+X3
- LX1 -3
- MX0 3
- PL X1,CSF2 IF NOT SYSTEM DEFAULT DENSITY
- LX0 -6
- BX7 -X0*X7
- CSF2 SA7 F+FTAP ENTER TAPE DESCRIPTORS
- LX1 -10
- MX0 36
- PL X1,CSF3 IF NO VSN
- SA2 A1+B1 ENTER VSN
- SA3 A7+B1
- BX2 X0*X2
- BX3 -X0*X3
- BX7 X2+X3
- SA7 A3
- CSF3 LX1 -24
- SX7 B1
- NG X1,CSF4 IF EXTENDED LABELS
- SX7 -B1
- LX1 1
- PL X1,CSF5 IF NOT STANDARD LABELS
- CSF4 SA7 OO SELECT OPEN OPTION
- MOVE 5,SFET+FRTL,LABL COPY LABEL DESCRIPTORS
- CSF5 SA1 F+FTAP VALIDATE FET
- MX0 -6
- LX1 -30
- BX5 -X0*X1
- SX5 X5-/COMSMTX/TFMA
- LX1 30
- ZR X5,ERR IF INCORRECT FORMAT
- SA1 F
- BX7 X1
- SA7 VF
- EQ CSFX RETURN
- SPACE 4,10
- * TABLE OF NOS/BE TAPE FORMATS.
- CSFA VFD 30//COMSMTX/TFSI,30/5120 SYSTEM INTERNAL
- VFD 30//COMSMTX/TFMA,30/0 INCORRECT
- VFD 30//COMSMTX/TFS,30/5120 STRANGER
- VFD 30//COMSMTX/TFL,30/5120 LONG BLOCK STRANGER
- GAL SPACE 4,15
- ** GAL - GET ACCESS LEVEL.
- *
- * *GAL* CHECKS TO SEE IF AN ACCESS LEVEL HAS BEEN SET,
- * IF NOT IT WILL DEFAULT TO THE JOB ACCESS LEVEL IF A
- * SECURED SYSTEM IS ENABLED.
- *
- * ENTRY (AL) = ACCESS LEVEL REQUESTED.
- * .LT. 0, IF NO REQUEST MADE.
- *
- * EXIT (AL) = ACCESS LEVEL.
- *
- * USES X - 0, 1, 6.
- * A - 1, 6.
- GAL SUBR ENTRY/EXIT
- SA1 AL
- PL X1,GALX IF ACCESS LEVEL ENTERED
- SA1 SSMA SYSTEM SECURITY MODE
- ZR X1,GAL1 IF UNSECURED SYSTEM
- SA1 JALA JOB ACCESS LEVEL
- MX0 -6
- BX1 -X0*X1 JOB ACCESS LEVEL
- GAL1 BX6 X1
- SA6 AL SAVE ACCESS LEVEL
- EQ GALX RETURN
- ILF SPACE 4,10
- ** ILF - INITIALIZE LABEL FET.
- *
- * EXIT (FET+10B) = DEFAULT TAPE DESCRIPTORS.
- * (FET+11B - FET+17B) = 0.
- *
- * USES A - 7.
- * B - 7.
- * X - 7.
- ILF SUBR ENTRY/EXIT
- SX7 B0+
- SB7 7
- ILF1 SA7 B7+F+FTAP CLEAR FET+10B - FET+17B
- SB7 B7-1
- PL B7,ILF1 IF NOT LAST WORD
- EQ ILFX RETURN
- PCV SPACE 4,15
- ** PCV - PRESET CONTROL POINT VALUES.
- *
- * EXIT JOB AND SYSTEM CONTROL PARAMETERS SET.
- * SYSTEM RESOURCE FILE NAMES INITIALIZED.
- *
- * USES A - 1, 2, 3, 6, 7.
- * X - 0, 1, 2, 3, 6, 7.
- *
- * MACROS DISSR, GETFO, GETJAL, GETJN, GETJO, GETSSL, GETUSV,
- * MACHID, RDSB, REPRIEVE, SYSTEM.
- PCV SUBR ENTRY/EXIT
- * DISABLE SRU ACCUMULATION AND INITIALIZE REPRIVE PROCESSING.
- DISSR DISABLE SRU ACCUMULATION
- REPRIEVE RPVB,SET,237B SET EXTENDED REPRIEVE PROCESSING
- * GET JOB INFORMATION.
- RDSB 0,/CPA/CPAL,0,/CPA/CPA
- GETJO OT GET JOB ORIGIN TYPE
- GETFO FAMO GET FAMILY ORDINAL
- SA1 FAMO
- SX6 X1
- SA6 A1 SET FAMILY ORDINAL
- GETJN JSN GET JSN
- SA2 /CPA/TFSW GET JOB EJT ORDINAL
- MX0 -12
- LX2 12
- BX6 -X0*X2
- SA6 JEEO SET EJT ORDINAL
- GETJAL JALA GET JOB ACCESS LEVEL
- GETUSV JCWA GET JOB CONTROL WORD
- * GET SYSTEM INFORMATION.
- RDSB 0,1,EJTP,/LWC/EJTP EJT POINTER
- RDSB 0,1,ESTP,/LWC/ESTP EST POINTER
- RDSB 0,1,IPRL,/LWC/IPRL INSTALLATION PARAMETER
- RDSB 0,1,PFNL,/LWC/PFNL PERMANENT FILE CONTROL
- SYSTEM SFM,R,TMPF,GTSF*100B GET *TMS* STATUS
- SA2 TMPF CHECK *TMS* SYSTEM STATUS
- MX6 1
- PL X2,PCV0.1 IF *TMS* DISABLED
- LX2 59-58
- PL X2,PCV0.1 IF NO *TMS* BINARIES IN SYSTEM
- MX0 1 CHECK IF DEFAULT *TO=T* OR *TO=F*
- LX2 53-0-59+58
- LX0 53-59
- BX6 X0*X2
- BX6 X0-X6 SET DEFAULT *TO=T* OR *TO=F*
- LX0 51-53 CHECK IF DEFAULT *TO=C* OR *TO=E*
- LX2 51-1-53+0
- BX1 X0*X2
- BX1 X0-X1
- BX6 X6+X1 SET DEFAULT *TO=C* OR *TO=E*
- PCV0.1 SA6 A2
- MACHID PCVA RETRIEVE MACHINE ID
- SA3 PCVA
- SA1 D SET ID IN FILE NAMES
- SA2 V
- LX3 24
- SA4 R
- BX6 X3+X1
- SA6 A1
- BX7 X3+X2
- SA7 A2
- BX6 X3+X4
- SA6 A4
- GETSSL SSMA SYSTEM SECURITY MODE
- SA1 SSMA
- MX0 -6
- LX1 0-48
- BX6 -X0*X1
- SA6 A1 SYSTEM SECURITY MODE
- SA1 /LWC/PFNL SET SYSTEM DEFAULT PACK TYPE
- MX0 -18
- LX1 -42
- BX6 -X0*X1
- SA6 DFPT
- SA1 /CPA/PKNW SET JOB DEFAULT PACK TYPE
- BX6 -X0*X1
- ZR X6,PCVX IF PACK TYPE NOT SET IN CPA
- SA6 DFPT
- EQ PCVX RETURN
- PCVA BSSZ 1 MACHINE ID RECEIVING AREA
- SPACE 4,10
- * PRESET BUFFERS.
- ASJT BSSZ 100B ACTIVE STAGE JOB TABLE
- RFL2 EQU * END OF PRESET CODE
- .RFL MAX RFL1,RFL2
- RFL= EQU .RFL
- END
cdc/nos2.source/opl871/resex.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator