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