IDENT SLL,SLL PERIPH BASE MIXED SST *COMMENT SLL - SYSTEM LIBRARY LOADER. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. TITLE SLL - SYSTEM LIBRARY LOADER. SPACE 4 *** SLL - SYSTEM LIBRARY LOADER. * G. R. MANSFIELD. 70/12/18. * P. D. HAAS. 81/10/05. SPACE 4 *** SLL PERFORMS MANAGEMENT OF THE SYSTEM LIBRARY BY * PROCESSING THE FOLLOWING OPERATIONS - * * (1) WRITING OF THE SYSTEM LIBRARY FILE. * (2) COPYING LIBRARY TABLES FROM THE CALLING PROGRAM. * (3) CONVERSION OF RANDOM ADDRESSES TO ACTUAL MASS STORAGE * ADDRESSES. * * * THIS PROGRAM MAY BE CALLED ONLY FROM SYSTEM ORIGIN * JOBS, AND IS INTENDED TO BE USED ONLY BY THE CPU PROGRAM * *SYSEDIT*. ANY OTHER USAGE IS AT THE CALLER-S OWN RISK. * IT SHOULD ALSO BE NOTED THAT WHILE SYSEDIT AND SLL HAVE BEEN * DESIGNED TO MODIFY THE RUNNING SYSTEM IN AN ACTIVE * ENVIRONMENT THEIR OPERATION AND THE EFFECTS ON THE SYSTEM * CANNOT BE PREDICTED UNLESS THE SYSTEM IS IDLE. * THEREFORE THE USER SHOULD BEWARE............. SPACE 4 *** DAYFILE MESSAGES. * * * SYSTEM ACTIVITY PROHIBITS LIBRARY CHANGE.* = IN ORDER TO * PERFORM THE SYSEDIT IT IS NECCESARY TO MOVE THE JOB AT * CONTROL POINT 1. THE JOB THERE CANNOT BE MOVED HOWEVER. * * * SYSTEM LIBRARY CHANGE INCORRECT.* = CALLER DOES NOT HAVE * PERMISSION TO MODIFY THE SYSTEM. * * * CMR OVERFLOW.* = THE CENTRAL MEMORY LIBRARIES AND * DIRECTORIES GENERATED BY *SYSEDIT* WOULD NOT FIT WITHIN THE * FIRST MCMR*100B WORDS OF MEMORY. * * * MANY OF THE FOLLOWING MESSAGES ARE TO PROTECT THE USER IN * CASE OF ABNORMAL CONDITIONS. THUS, THERE MAY NOT BE ANY * DIRECT CORRECTIVE ACTION FOR THEM. THESE TYPES OF ERRORS * SHOULD NOT NORMALLY OCCUR. * * * SLL ARGUMENT ERROR.* = PARAMETER ADDRESS OR REQUEST WORD * ADDRESS IS OUT OF RANGE. * * * RANDOM ADDRESS ERROR.* = RANDOM ADDRESS NOT ON FILE. * * * INCORRECT SLL REQUEST.* = FUNCTION CODE UNDEFINED. * * * INCORRECT ROLLOUT REQUEST.* = *SLL* AND *SYSEDIT* MAY NOT * BE ROLLED OUT WHILE RUNNING. * * * SYSTEM TOO BIG FOR MASS STORAGE.* = NOT ENOUGH ROOM ON * MASS STORAGE FOR SYSTEM LIBRARY. * * * LIBRARY TABLE ERROR.* = BLANK ENTRY NOT FOUND IN LIBRARY * TABLE OR DIRECTORY WITHIN FL. * * * BUFFER CONTROL WORD ERROR.* = INCORRECT WORD COUNT PASSED * FROM CALLING ROUTINE. * * * SYSTEM DEVICE ERROR.* = SYSTEM DEVICE IS INACCESSIBLE. * * * SYSTEM DEVICE DOWN.* = SYSTEM DEVICE IS INACCESSIBLE. * * * SYSTEM FILE RESERVED.* = SYSTEM FILE IN USE - POSSIBLY BY * ANOTHER COPY OF SYSEDIT. * * * SYSTEM FILE DESTROYED.* = SYSTEM SECTOR FOR SYSTEM BAD. * * * SLL - LOCAL FILE LIMIT.* = CREATING THE FILES REQUIRED FOR * *SYSEDIT* WILL EXCEED THE USER-S LOCAL FILE LIMIT. SPACE 4,10 *** CALL. * * *T 18/ *SLL*, 6/ CP, 12/ DS, 6/ AB, 18/ ST * CP CONTROL POINT * DS DEADSTART STATUS (1 = DEADSTART) * AB ABORT FLAG (1 = NO ABORT ON SYSTEM FILE BUSY) * *T STAT 12/ CODE,18/,18/ ADDR,12/ ST * CODE FUNCTION CODE * ADDR ADDRESS * ST COMPLETION STATUS SPACE 4 ** ROUTINES USED. * * * 0BF - BEGIN LOCAL FILE. SPACE 4,10 ** PROGRAMS CALLED. * * * 1CK - CHECKPOINT MASS STORAGE DEVICES. SPACE 4 *CALL COMPMAC *CALL COMSCPS *CALL COMSDSL *CALL COMSHIO *CALL COMSMSC *CALL COMSMSP *CALL COMSMTR *CALL COMSPDT *CALL COMSPIM *CALL COMSSRT *CALL COMSSSD *CALL COMSSSJ *CALL COMSWEI *CALL COMSZOL SPACE 4 **** DIRECT LOCATION ASSIGNMENTS. RF EQU 15 RETURN FLAG FOR *RMT* T8 EQU 16 T9 EQU 17 FS EQU 20 - 24 FST ENTRY (5 LOCATIONS) AB EQU FS - FS+4 ROUTINE NAME (5 LOCATIONS) SE EQU 25 SECTOR COUNT EI EQU 26 EQUIPMENT INDEX CN EQU 30 - 34 CM WORD BUFFER (5 LOCATIONS) SF EQU 35 SYSTEM FILE FST INDEX PL EQU SF+1 PP LIBRARY FILE FST INDEX AL EQU SF+2 ALTERNATE LIBRARY FILE FST INDEX FN EQU 40 - 44 FILE NAME (5 LOCATIONS) PA EQU 45 - 46 PARAMETER ADDRESS (2 LOCATIONS) SL EQU 47 SLM DS EQU IR+2 DEADSTART STATUS FA EQU 57 FST ADDRESS CW EQU 60 - 66 CLD CONTROL WORD BUFFER RI EQU 65 - 66 RANDOM INDEX (2 LOCATIONS) SN EQU 65 - 66 SECTOR NUMBER (2 LOCATIONS) LE EQU 67 LAST MASS STORAGE EQUIPMENT **** TITLE MAIN PROGRAM. SLL SPACE 4 ** SLL - MAIN PROGRAM. ORG PPFW SLL RJM PRS PRESET PROGRAM * WAIT FOR CONTROL WORD REQUEST. SLL1 RJM PSE PAUSE LDD IR+3 READ CONTROL WORD SHN 6 ADD RA SHN 6 ADD IR+4 CRD CN LDD CN CHECK FUNCTION CODE ZJN SLL1 IF NO REQUEST SBN TFCNL MJN SLL2 IF LEGAL REQUEST LJM ABT * PROCESS FUNCTION REQUEST. SLL2 LDD CN+2 SET PARAMETER ADDRESS LPN 37 STD PA SHN 14 LMD CN+3 STD PA+1 SHN -6 SBD FL MJN SLL3 IF IN RANGE LDC =C* SLL ARGUMENT ERROR.* LJM ABT1 SLL3 LDM TFCN,CN SET FUNCTION PROCESSOR STM SLLA RJM * PROCESS FUNCTION SLLA EQU *-1 * SET FUNCTION COMPLETE. LDN ZERL SET REQUEST COMPLETE CRD CM AOD CM+3 STD CM+4 LDD IR+3 SHN 6 ADD RA SHN 6 ADD IR+4 CWD CM LJM SLL1 LOOP * LJM CPS (RELEASE PP AFTER LOAD COMLETION) * LJM DPP (DROP PP FOR ERROR CONDITION) SLLB EQU *-1 CPS LDM CPSA+2,DS ZJN DPP IF NO CHECKPOINT REQUEST LDD IR+1 LPN 37 SET CP NUMBER IN 1CK CALL RAM CPSA+1 LDD IA CWM CPSA,ON STORE INPUT REGISTER FOR *1CK* EXECUTE 1CK,= CPS1 LJM PPR CPSA VFD 60/0L1CK DPP BSS 0 DPPA MONITOR DPPM DROP PP UJN CPS1 EXIT TO PP RESIDENT TITLE TABLES. NSYS SPACE 4 ** FNT ENTRIES FOR SYSTEM SECTOR. NPPU VFD 42/0LPPULIB,6/1,6/SYFT,6/0 NASF VFD 42/0LALTSYS,6/1,6/LOFT,6/0 TFCN SPACE 4 ** TFCN - FUNCTION TABLE. * ENTRY = 1 WORD. * *T, 12/ ADDR * ADDR ADDRESS OF FUNCTION PROGCESSOR TFCN EQU *-1 LOC 1 CON ERD ENTER RESIDENCY DATA CON CSN CONVERT SECTOR NUMBERS CON WSF WRITE LIBRARY FILE CON WPL WRITE PPU LIBRARY CON ELD ENTER LIBRARY DIRECTORY CON EAD ENTER ALTERNATE DEVICE TABLE CON WAD WRITE ALTERNATE DEVICE CON RSE RETURN SYSTEM EST ORDINAL CON DPE DROP PP FOR ERROR CONDITION TFCNL BSS 0 LOC *O TSYD SPACE 4 ** TSYD - TABLE OF SYSTEM DEVICES. * ENTRY = 1 WORD. * *T, 12/ EQ * EQ SYSTEM DEVICE EST ORDINAL * * TABLE TERMINATOR - *T, 12/ 7777 TSYD BSS 0 DUP MXSY,1 MAXIMUM NUMBER OF SYSTEM DEVICES CON -0 CON -0 ASDE EQU *-TSYD CON 0 CON -0 TETC SPACE 4 ** TETC - TABLE OF EMPTY TRACK CHAINS. * ENTRY = 2 WORDS. * *T,TETC 12/ FT *T,TETCA 12/ CT * FT FIRST TRACK * CT CURRENT TRACK TETC BSS 0 BSSZ MXSY TETCA BSS 0 BSSZ MXSY TITLE FUNCTION PROCESSORS. ERD SPACE 4 *** FUNCTION 1. * ENTER RESIDENCY DATA IN LIST SPECIFIED BY *ADDR*. * * LIST FORMAT - 0 @ I < N. *T ADDR+I 42/ NAME,6/ RC,12/ TY *T ADDR+N 60/ 0 * NAME RECORD NAME * RC RESIDENCE CODE * TY RECORD TYPE ERD6 LDN ZERL CRD CM RJM SPA CWM TRES,T1 * CWM TRESB,T1 (IF NOT INDEPENDENT SHARED RMS) ERDC EQU *-1 CWD CM TERMINATE LIST ERD SUBR ENTRY/EXIT ERDA LDN TRESL-1 SET INITIAL WORD COUNT * LDN TRESL (IF CONCURRENT PPS PRESENT) STD T1 LDN 0 STD T5 LDN 40 CM RESIDENT FLAG STD T6 LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH STD CM LDN PPRT PP TYPE FLAG STD T7 ERRNZ LA6DI-PPRT ADJUST CODE IF VALUE CHANGES UJN ERD2 FORCE *6DI* AND OVERLAYS TO BE CM RESIDENT ERD1 AOD CM ADVANCE EST LMD LE ZJN ERD6 IF END OF MASS STORAGE DEVICES SFA EST,CM READ EST ENTRY ADK EQDE CRD CN READ EST ENTRY LDD CN CHECK EQUIPMENT SHN 21-13 PJN ERD1 IF NOT MASS STORAGE LDD CN+4 READ DRIVER NAME SHN 3 ADN MDGL CRD CN LDD CN+3 SET DRIVER INDEX LPN 7 ERD2 STD T2 LDM TADN,T2 ERD3 ZJN ERD1 IF DRIVER ALREADY ENTERED SHN 6 STD T4 LMN 1R6 SHN 6 STD T3 LDN 0 SET DRIVER ENTERED STM TADN,T2 LDM TAOT,T2 SET OVERLAY LIST ADDRESS STD CM+3 STD CM+4 ERD5 RJM ERT ENTER RESIDENCY TABLE LDI CM+3 STI CM+4 ZJN ERD3 IF END OF OVERLAY LIST SHN 6 STD T4 LMN 1R7 SET *7XX* SHN 6 STD T3 AOD CM+3 UJN ERD5 SELECT ADDITIONAL ERROR PROCESSORS ERD SPACE 4,4 ** TADN - TABLE OF DRIVER NAMES. * * ENTRY = 1 WORD. * WORD = DRIVER NAME. * * NOTE TABLES *TADN* AND *TAOT* ARE PARALLEL TABLES. ANY * CHANGES TO BE MADE SHOULD BE REFLECTED IN BOTH. ALSO, * THESE TABLES ARE SEQUENCED ACCORDINGLY TO CORRESPOND * WITH THE DRIVER INDICES FOUND IN *COMSMSP*. TADN INDEX INDEX LA6DI,2RDI INDEX LA6DJ,2RDJ INDEX LA6DP,2RDP INDEX LA6DE,2RDE INDEX LA6DX,2RDX INDEX LA6MX SPACE 4,10 ** TAOT - TABLE OF OVERLAY LIST ADDRESSES. * * ENTRY = 1 WORD. * WORD = ADDRESS OF OVERLAY LIST TABLE. * * NOTE TABLES *TADN* AND *TAOT* ARE PARALLEL TABLES. ANY * CHANGES TO BE MADE SHOULD BE REFLECTED IN BOTH. ALSO, * THESE TABLES ARE SEQUENCED ACCORDINGLY TO CORRESPOND * WITH THE DRIVER INDICES FOUND IN *COMSMSP*. ORG *-LA6DI TAOT INDEX INDEX LA6DI,TDI *6DI* ASSOCIATED OVERLAYS INDEX LA6DJ,TDI *6DJ* ASSOCIATED OVERLAYS INDEX LA6DP,TDP *6DP* ASSOCIATED OVERLAYS INDEX LA6DE,TDE *6DE* ASSOCIATED OVERLAYS INDEX LA6DX,TDX *6DX* ASSOCIATED OVERLAYS INDEX LA6MX SPACE 4,4 ** TDE - TABLE OF ASSOCIATED *DE* OVERLAYS. * * ENTRY = 1 WORD. * WORD = OVERLAY NAME. TDE BSS 0 CON 2RDE CON 0 ERD SPACE 4,4 ** TDI - TABLE OF ASSOCIATED *DI* AND *DJ* OVERLAYS. * * *6DI* AND ITS OVERLAYS MUST ALWAYS BE FORCED CM RESIDENT * BECAUSE THEY ARE NEEDED TO READ PACK SERIAL NUMBERS, FLAW * MAPS, AND FIRMWARE IDENTS FOR ALL DISK TYPES INCLUDING * BUFFERED I/O DEVICES. IN ADDITION, DISK DRIVER *6DJ* USES * THE *6DI* OVERLAYS FOR ERROR RECOVERY. * * ENTRY = 1 WORD. * WORD = OVERLAY NAME. TDI BSS 0 CON 2RDI CON 2RBI CON 2RCI CON 2REI CON 2RFI CON 2RGI CON 2RHI CON 2RII CON 2RJI CON 2RKI CON 2RLI CON 2RSI CON 2RWI CON 0 ERD SPACE 4,4 ** TDP - TABEL OF ASSOCIATED *DP* OVERLAYS. * * ENTRY = 1 WORD. * WORD = OVERLAY NAME. TDP BSS 0 CON 2RDP CON 2RMP CON 2RRP CON 2RSP CON 0 TDX SPACE 4,10 ** TDX - TABLE OF ASSOCIATED *DX* OVERLAYS. * * ENTRY = 1 WORD. * WORD = OVERLAY NAME. TDX BSS 0 CON 2RDX CON 0 CSN SPACE 4,15 *** FUNCTION 2. * CONVERT SECTOR NUMBERS FROM RANDOM INDEX TABLE STARTING * AT *ADDR*. * * I = 1,N,2 *T ADDR+I 36/,24/ RI * RI RANDOM INDEX * * CONVERSION - *T ADDR+I 36/,12/ TK,12/ SC * TK TRACK * SC SECTOR CSN SUBR ENTRY/EXIT LDD CN+1 SBN 3 PJP ABT IF INVALID FST INDEX LDM SF,CN+1 STD FA NFA FA,R READ FST CRD FS CRD T5 CSN1 LDN 0 SET RANDOM INDEX STD RI+1 STD RI STD T7 SET FIRST SECTOR LDD FS+1 SET FIRST TRACK STD T6 LDI SL SET SECTOR LIMIT STD T3 CSN2 RJM SPA READ LIST ENTRY CRD CM ADN 1 CRD CN LDD CM ADD CM+1 ADD CM+2 ADD CM+3 ADD CM+4 NJN CSN3 IF NOT END OF LIST LJM CSNX RETURN CSN3 LDD CN+3 SET SECTOR ADVANCE SBD RI MJN CSN1 IF BACKWARD STD CM LDD CN+4 SBD RI+1 STD CM+1 PJN CSN4 IF FORWARD AOD CM+1 ADJUST CARRY SOD CM PJN CSN4 IF FORWARD LJM CSN1 RESTART CSN4 LDD CM CHECK ADVANCE NJN CSN5 IF TRACK CHANGE LDD CM+1 ADD T7 SET SECTOR SBD T3 PJN CSN5 IF SECTOR LIMIT PASSED LDD CN+3 UPDATE RANDOM INDEX STD RI LDD CN+4 STD RI+1 LDD T6 SET TRACK STD CN+3 LDD CM+1 UPDATE SECTOR NUMBER RAD T7 STD CN+4 RJM SPA STORE LIST ENTRY ADN 1 CWD CN LDN 2 ADVANCE LIST RAD PA+1 SHN -14 RAD PA LJM CSN2 LOOP * ADVANCE TRACK. CSN5 LDD T3 ADVANCE RANDOM INDEX SBD T7 RAD RI+1 SHN -14 RAD RI LDN 0 SECTOR = 0 STD T7 LDD T6 CHECK NEXT TRACK SHN 6 MJN CSN6 IF NOT END OF CHAIN LDC =C* RANDOM ADDRESS ERROR.* LJM ABT1 CSN6 RJM SNT SET NEXT TRACK STD T6 STD T3 SET SECTOR LIMIT SHN 6 PJN CSN7 IF END OF CHAIN LDI SL SET SECTOR LIMIT STD T3 CSN7 LJM CSN2 LOOP WSF SPACE 4 ** FUNCTION 3. * WRITE SYSTEM FILE. WSF SUBR ENTRY/EXIT LDN 0 WRITE SYSTEM LIBRARY RJM WSL UJN WSFX RETURN WPL SPACE 4 *** FUNCTION 4. * WRITE PPU LIBRARY FILE. WPL SUBR ENTRY/EXIT LDN 1 WRITE PPU LIBRARY RJM WSL LDD FS+1 SET FIRST TRACK STM RELB UJN WPLX RETURN ELD SPACE 4 *** FUNCTION 5. * ENTER LIBRARY DIRECTORY. ELD SUBR ENTRY/EXIT LDD CN+2 SHN -6 SET CHECKPOINT REQUEST STM CPSA+2 LDD PA SET LIBRARY TABLE ADDRESS STD T1 LDD PA+1 STD T2 RJM SCL SCAN RPL STM ELDC+1 SET RCL INDEX SHN -14 RAM ELDC RJM SCL SCAN RCL ADD CN+1 NUMBER OF ALTERNATE SYSTEM PLD ENTRIES STM ELDG+1 SET PLD INDEX SHN -14 RAM ELDG LDD T2 STD T9 LDD T1 STD T8 RJM SCD SCAN PLD STM ELDF+1 SET PST INDEX SHN -14 RAM ELDF LDD T2 SET PLD LENGTH FOR PROBE TABLE SBD T9 RAM ELDA+1 SHN -14 ADD T1 SBD T8 RAM ELDA RJM SCD SCAN PST STM ELDE+1 SET EPD INDEX SHN -14 RAM ELDE RJM SCD SCAN EPD STM ELDD+1 SET LBD INDEX SHN -14 RAM ELDD RJM SCD SCAN LBD STD T7 SET LIBRARY LENGTH SHN -14 STD T6 LDN SSTL CHECK IF PROBE ENABLED CRD CM ADK RPLP-SSTL FETCH RPL POINTER CRD CN LDD CM+2 SHN 21-6 PJN ELD0 IF PROBE ENABLED LJM ELD1 PROBE NOT ENABLED ELD0 AOM ELDB FLAG PROBE ENABLED STM ELDH LDD CN+1 SET FWA OF PROBE TABLE ADD T7 STD AB+4 SHN -14 ADD CN ADD T6 STD AB+3 ELDA LDC TPRDL*2+1 SET PROBE TABLE LENGTH SHN -1 STD AB+2 SHN -14 STD AB+1 LDC 4000 CLEAR PROBE TABLE INTERLOCK STD AB LDC BIOL READ BUFFERED I/O TABLE POINTER CRD FN LDD FN+1 READ FWA OF *IOST* SHN 14 LMD FN+2 ZJN ELD0.1 IF NO BUFFER I/O DEVICES ADK PUTP BUILD *IOSP* BASED ON *PUTP* CRD CM LDD AB+4 SET FWA OF *IOST* ADD AB+2 STD CM+4 SHN -14 ADD AB+3 ADD AB+1 STD CM+3 LDD FN+1 WRITE FWA OF *IOST* SHN 14 LMD FN+2 ADK IOSP CWD CM LDD CM+2 ADJUST TABLE LENGTH TO INCLUDE *IOST* RAD AB+2 SHN -14 ADD CM+1 RAD AB+1 ELD0.1 LDD AB+2 ADJUST FOR LIBRARY LENGTH RAD T7 SHN -14 ADD AB+1 RAD T6 ELD1 LDD T6 SET NEW CMR LENGTH ADD CN SHN 14 ADD T7 ADD CN+1 ADN 77 ROUND UP SHN -6 STD CW ADC -MCMR MJN ELD1.1 IF NEW CMR LENGTH VALID LDC =C* CMR OVERFLOW.* UJN ELD1.2 DISPLAY MESSAGE AND ABORT JOB ELD1.1 LDN CMRL FETCH CMR LENGTH CRD CM LDD CM+4 CHECK FL REQUIRED SBD CW ZJN ELD2 IF NO CHANGE LDC CPAS+JCIW READ JOB CONTROL OF CP 1 CRD CM LDD CM+2 CHECK SUBSYSTEM ID LMC IFSI NJN ELD2 IF JOB MOVABLE LDC =C* SYSTEM ACTIVITY PROHIBITS LIBRARY CHANGE.* ELD1.2 LJM ABT1 ABORT *SYSEDIT* ELD2 LDN 0 * LDN 1 (PROBE ENABLED) ELDB EQU ELD2 ZJN ELD4 IF PROBE NOT ENABLED * PROBE TABLE IS LEFT INTERLOCKED BY *SET* DURING * DEADSTART LOAD. LDD DS NJN ELD4 IF DEADSTART ELD3 RJM PSE LDN 1 INTERLOCK PROBE TABLES STD CM+1 STD CM+2 LDD MA CWM ELDN,ON MONITOR UADM LDD CM+1 NJN ELD3 IF PROBE TABLE NOT INTERLOCKED ELD4 LDN 0 CLEAR *CPUMTR* TABLES RJM ICT LDC RPLP LOCK RPL CRD CM+3 LDN ZERL CRD CM ADN RPLP-ZERL STORE ZERO RPL POINTER CWD CM+3 ADN PLDP-RPLP LOCK PLD CRD CM+3 LDN ZERL CRD CM * A ZERO *PLD* POINTER IS SET TO INHIBIT PROGRAM LOADS WHILE * THE *RPL* AND *PLD* ARE BEING WRITTEN BY *SLL*. ADN PLDP-ZERL STORE ZERO PLD POINTER CWD CM+3 LDN DFPP READ FWA OF DAYFILE DUMP BUFFER CRD CM LDD CM+2 INHIBIT DAYFILE DUMP SHN 14 LMD CM+3 CWM ELDK,ON LCN 0 SBN 1 NJN *-1 ELD6 LDD CW SET NEW CMR SIZE STD CM+1 LDC 1000 SET CMR REQUEST STD CM+2 MONITOR RSTM LDD CM+1 CHECK FIELD LENGTH NJN ELD6 IF MEMORY NOT ASSIGNED RJM CLT COPY LIBRARY TABLE LDC RCLP FETCH RCL POINTER CRD CM LDD CN SET RCL ADDRESS SHN 14 ADD CN+1 ELDC ADC * STD CM+1 SHN -14 STD CM LDC RCLP STORE RCL POINTER CWD CM ADN LBDP-RCLP FETCH LBD POINTER CRD CM LDD CN SET LBD ADDRESS SHN 14 ADD CN+1 ELDD ADC * STD CM+3 SHN -14 STD CM+2 LDC LBDP STORE LBD POINTER CWD CM ADN EPDP-LBDP FETCH EPD POINTER CRD CM LDD CN SET FWA OF EPD SHN 14 ADD CN+1 ELDE ADC * STD CM+1 SHN -14 STD CM ERRNZ PSTP-EPDP POINTERS NOT IN SAME WORD LDD CN SET FWA OF PST SHN 14 ADD CN+1 ELDF ADC * STD CM+3 SHN -14 STD CM+2 LDC PSTP STORE EPD/PST POINTERS CWD CM SBN PSTP-PLDP UNLOCK LIBRARY CRD CM LDD CN SHN 14 ADD CN+1 ELDG ADC * STD CM+1 SHN -14 STD CM LDC PLDP STORE PLD POINTER CWD CM SBN PLDP-RPLP STORE RPL POINTER CWD CN LDN 1 INITIALIZE *CPUMTR* TABLES RJM ICT ELDH LDN 0 * LDN 1 (PROBE ENABLED) ZJN ELD7 IF PROBE NOT ENABLED LDD MA CLEAR PROBE TABLE CWD AB CRD CM LDD CM+1 CLEAR FUNCTION CODE LPN 77 STD CM+1 MONITOR CSTM LDN PDTL SET PACKED DATA IN PROBE TABLE CRD CM LDD AB+3 SHN 14 ADD AB+4 CWD CM LDC PRBP CLEAR PROBE TABLE INTERLOCK CWD AB ELD7 RJM LDB LOAD *1DD* BOOTSTRAP LDD PL CLEAR *PPULIB* FNT ENTRY RJM CFE STD PL SOM RELA CLEAR ERROR CONDITION FLAG LDC CPS SET MAIN LOOP EXIT ADDRESS RJM REL RELEASE PP LJM ELDX RETURN ELDK ADN 77 DISABLE DAYFILE DUMP BOOTSTRAP PJN *-1 LJM FTN-1 RE-RETURN FROM *DFMM* ELDN CON LDOS DECREMENT LOW CORE FIELD BY ONE CON PRBP WORD ADDRESS CON 59D*100B+1 BIT ADDRESS/FIELD WIDTH CON 0,0 SPACE 4 *** FUNCTION 6. * ASSEMBLE TABLE OF ALTERNATE SYSTEM DEVICES. EAD SUBR ENTRY/EXIT LDD CN+2 SHN -6 STD CN+2 LDN NOPE INITIALIZE EST ORDINAL FOR SEARCH STD T7 LDN ZERL CRD CM EAD1 SFA EST,T7 ADK EQDE CRD T1 READ EST ENTRY LDD T1 SHN 21-13 PJN EAD3 IF NOT MASS STORAGE SHN 13-12 MJN EAD3 IF SYSTEM DEVICE SHN 12-1 MJN EAD3 IF DEVICE OFF OR DOWN LDD T1+4 SHN 3 ADN STLL CRD FS READ MST LDD FS SHN 21-0 PJN EAD3 IF NOT ALTERNATE SYSTEM DEVICE LDD T1+3 EAD2 STD T7+1 SET DEVICE TYPE RJM SPA WRITE TABLE ENTRY ADD CM+4 CWD T7 AOD CM+4 ADVANCE COUNT EAD3 AOD T7 LMD LE EADA NJN EAD1 IF NOT AT LAST MASS STORAGE EQ STD T7 STM EADA STD CN ZJN EAD2 TERMINATE TABLE LDD RA ADD CN+1 SHN 6 LMD CN+2 CWD CM WRITE TABLE LENGTH LJM EADX SPACE 4 *** FUNCTION 7. * WRITE FILE ON ALTERNATE SYSTEM DEVICE. WAD8 LDN 2 SET *ALTSYS* FST INDEX STD CN+1 WADA LDC 0 STD PA+1 SET LIST ADDRESS SHN -14 STD PA RJM CSN CONVERT SECTOR NUMBERS LDD T5 SET EQUIPMENT STD CM+1 LDD FS+1 SET FIRST TRACK OF ASR FILE STD CM+2 STD T6 LDN USTS UPDATE SYSTEM TABLE TRACK STD CM+3 MONITOR SMDM AOD FA WRITE SYSTEM SECTOR SETMS IO,(NS,RW),WDSB RJM WSS ENDMS LDD AL CLEAR *ALTSYS* FNT ENTRY RJM CFE STD AL CLEAR FST POINTER LDM TSYD SET TRT ADDRESS RJM STA WAD SUBR ENTRY/EXIT LDD CN+2 SHN -6 STD CN+2 LDC NASF CREATE LOCAL FILE *ALTSYS* RJM CLF STD AL LDD CN+1 SHN 6 LMD CN+2 STM WADA+1 SAVE LIST ADDRESS SHN -14 LMC LDCI STM WADA LPN 77 SHN 6 ADD RA READ FIRST ENTRY IN LIST SHN 6 ADM WADA+1 CRD CM LDC TSYD+ASDE STM RMTA LDD CM+4 SET EST ORDINAL FROM LIST SHN -6 STM TSYD+ASDE STD FS SFA EST READ EST ENTRY ADK EQDE CRD CN LDD CN+4 GET DEVICE USAGE WORD FROM MST SHN 3 ADN DULL CRD CM LDD CM+3 STD FS+1 STD FS+2 ZJN WAD5 IF NO PREVIOUS LIBRARY ON THIS DEVICE LDN FSMS WAD5 STD FS+3 LDD FS SET TRT ADDRESS RJM STA NFA AL,R CWD FS WADB LDN 0 ZJN WAD7 IF NO PREVIOUS ALTERNATE LIBRARY SOM WADB WAD6 LDC RTCL CRD CM READ CLOCK LDD CM SBD CW SHN 14 DETERMINE ELAPSED TIME ADD CM+1 SBD CW+1 SBN 6 MJN WAD6 IF NOT SIX SECOND DELAY WAD7 LDN 2 WRITE ALTERNATE LIBRARY RJM WSL LJM WAD8 COMPLETE PROCESSING RSE SPACE 4,10 *** FUNCTION 8. * RETURN SYSTEM EST ORDINAL. RSE SUBR ENTRY/EXIT LDN ZERL CRD CM LDM TSYD SET SYSTEM DEVICE STD CM+1 RJM SPA RETURN SYSTEM DEVICE TO *SYSEDIT* CWD CM UJN RSEX RETURN DPE SPACE 4,10 *** FUNCTION 9. * DROP PP FOR ERROR CONDITION. DPE SUBR ENTRY/EXIT LDC DPP SET MAIN LOOP EXIT TO DROP PP RJM REL RELEASE SYSTEM FILES UJN DPEX RETURN TITLE MASS STORAGE I/O ROUTINES. WMS SPACE 4,10 ** WMS - WRITE MASS STORAGE. * * ENTRY (A) = BUFFER ADDRESS. * * EXIT (A) .GE. 0. * * ERROR TO *ABT1* IF WRITE ERROR. * * CALLS WDS. WMS SUBR ENTRY/EXIT RJM WDS WMSA PJN WMSX IF NO WRITE ERROR LDC UJNI-PJNI RAM WMSA DISABLE MASS STORAGE ERROR PROCESSING WMS1 LDC =C* SYSTEM DEVICE ERROR.* UJN ABT1 ABORT THE JOB TITLE SUBROUTINES. ABT SPACE 4 ** ABT - ABORT JOB. ABT LDC =C* INCORRECT SLL REQUEST.* ABT1 STM ABTA RJM DFM ABT2 LDC LDNI+ABTM CHANGE DROP TO ABORT FUNCTION STM DPPA ERRPL ABTM-100 CODE DEPENDS ON VALUE LDD DS NJN ABT4 IF DEAD START LOAD AOM RELA ABT3 RJM REL RELEASE SYSTEM FILES LJM DPP ABT4 LDN MS2W-MS1W STD T1 LDC DSCP*CPAS+MS1W CWM *,T1 ABTA EQU *-1 UJN ABT4 HANG PP CFE SPACE 4,10 ** CFE - CLEAR LOCAL FNT ENTRY. * * ENTRY (A) = RELATIVE ADDRESS OF FST IN NFL. * * EXIT (A) = 0. * * USES CM - CM+4. * * MACROS MONITOR. CFE SUBR ENTRY/EXIT ZJN CFEX IF NO FNT ENTRY ADN FSTL SET RELATIVE FNT ADDRESS STD CM+4 LDN 0 STD CM+2 STD CM+3 LDN DLFS DELETE LOCAL FNT ENTRY STD CM+1 MONITOR PLFM * LDN 0 UJN CFEX RETURN CLF SPACE 4,15 ** CLF - CREATE LOCAL FILE. * * ENTRY (A) = ADDRESS OF FILE NAME. * * EXIT (A) = NFL OFFSET OF FST ENTRY. * (FA) = NFL OFFSET OF FNT ENTRY. * (FS) = EST ORDINAL OF FIRST SYSTEM DEVICE. * * USES FN - FN+4. * * CALLS PSE, *0BF*. * * MACROS EXECUTE. CLF2 NJN CLF1 IF WAITING FOR NFL INCREASE LDM TSYD SET EST ORDINAL STD FS LDD FA NFL OFFSET TO FST INFORMATION SBN FSTL CLF SUBR ENTRY/EXIT STM CLFA CLF1 RJM PSE PAUSE FOR STORAGE MOVE LDD MA CWM *,ON CLFA EQU *-1 SBN 1 MOVE FILE NAME TO DIRECT CELLS CRD FN LDN NEEQ SELECT NO MASS STORAGE ASSIGNMENT STD FS EXECUTE 0BF,OVL UJN CLF2 FILE NOT PREVIOUSLY DEFINED CLTX EQU * HANG IF FILE PRESENT CLT SPACE 4 ** CLT - COPY LIBRARY TABLES. * * ENTRY (IR+3 - IR+4) = FWA LIBRARY TABLES. * (CN - CN+1) = FWA RPL. * (T6 - T7) = LENGTH. * * USES T1 - T3. * * CALLS SPA. CLT SUBR ENTRY/EXIT RJM SPA SET READ ADDRESS STM CLTA+1 SHN -14 LMC ADCI STM CLTA LDD CN+1 SET STORE ADDRESS STM CLTB+1 LDD CN LMC ADCI STM CLTB LDD HN SET FULL BLOCK WORD COUNT STD T1 LDN 0 CLEAR BLOCK COUNTER STD T2 LDD T6 SET BLOCK COUNT SHN 14 LMD T7 SHN -6 STD T3 ZJN CLT2 IF NO FULL BLOCKS CLT1 LDD T2 READ BLOCK SHN 6 CLTA ADC * READ BLOCK CRM BFMS,T1 LDD T2 STORE BLOCK SHN 6 CLTB ADC * CWM BFMS,T1 AOD T2 ADVANCE BLOCK SBD T3 MJN CLT1 LOOP FOR ALL BLOCKS NJN CLT3 IF SHORT BLOCK PROCESSED CLT2 LDD T7 SET SHORT COUNT LPN 77 STD T1 NJN CLT1 IF NOT EMPTY * CLEAR REMAINDER OF 100B BLOCK OF CM. CLT3 LDD CN FWA OF RPL ADD T6 ADD LENGTH SHN 14 LMD CN+1 ADD T7 SBN 1 STM CLTC+1 SET LWA+1 OF LIBRARY SHN -14 LMC ADCI STM CLTC LDM CLTC+1 ADN 1 LPN 77 ZJN CLT5 IF NO REMAINDER TO CLEAR LDK ZERL READ ZERO WORD CRM BFMS,ON LDN 0 INITIALIZE COUNTER STD T1 CLT4 AOD T1 CLTC ADC ** LWA+1 OF LIBRARY CWM BFMS,ON LPN 77 NJN CLT4 IF 100B BOUNDARY NOT REACHED CLT5 LJM CLTX RETURN ERT SPACE 4,10 ** ERT - ENTER RESIDENCY TABLE. * * ENTRY (T3 - T7) - TABLE ENTRY. * (T1) = CURRENT NUMBER OF TABLE ENTRIES. * * EXIT (T1) INCREMENTED BY ONE. ERT SUBR ENTRY/EXIT LDD T1 COMPUTE TABLE ADDRESS SHN 2 ADD T1 ADM ERDC STM ERTA LDD MA WRITE ENTRY CWD T3 CRM *,ON ERTA EQU *-1 AOD T1 UJN ERTX EXIT PSE SPACE 4 ** PSE - PAUSE. * * USES CM - CM+4. PSE SUBR ENTRY/EXIT PAUSE LDD CM+1 ZJN PSE1 IF NO ERROR FLAG LDD DS NJN * IF DEADSTART LOAD LJM ABT3 PSE1 LDD CM+2 LPN 1 ZJN PSEX IF NO ROLLOUT LDC =C* INCORRECT ROLLOUT REQUEST.* LJM ABT1 REL SPACE 4 ** REL - RELEASE PP. * * ENTRY (A) = EXIT ADDRESS FOR *SLL* MAIN LOOP. REL7 LDN FNTP FETCH SYSTEM FNT POINTER CRD T6 * RELEASE SYSTEM FILE FROM JOB. LDD T6 READ SYSTEM FILE FNT SHN 14 LMD T7 ERRNZ SYFO SYSTEM FILE ORDINAL .NE. 0 CRD FN ADN FSTG CRD CN LDD FS+1 REWIND FILE STD FS+2 STD CN+1 LDN ZERL CRD CM SOD FN+4 CLEAR SYSTEM FILE INTERLOCK LDD FS STD CN LDD T6 STORE SYSTEM FILE FNT SHN 14 LMD T7 ERRNZ SYFO SYSTEM FILE ORDINAL .NE. 0 CWD FN ADN FSTG CWD CN LDN FSMS STD FS+3 LDN 5 SET OPERATION COMPLETE STD FS+4 NFA SF,R STORE LOCAL FILE STATUS CWD FS LDD AL CLEAR *ALTSYS* FNT ENTRY RJM CFE LDD PL CLEAR *PPULIB* FNT ENTRY RJM CFE REL SUBR ENTRY/EXIT STM SLLB LDD SF ZJN RELX IF SYSTEM FILE NOT RESERVED LCN 0 STD EI NFA SF,R READ FST INFORMATION CRD FS UJN REL2 CHECK FIRST SYSTEM DEVICE * RELEASE UNUSED MASS STORAGE SPACE. REL1 LDM TETC,EI ZJN REL2 IF NO EMPTY CHAIN STD CM+2 MONITOR DTKM * LDN 0 SET EMPTY CHAIN RELEASED STM TETC,EI REL2 AOD EI ADVANCE INDEX LDM TSYD,EI SET NEXT EQUIPMENT STD CM+1 SHN 6 PJN REL1 IF MORE SYSTEM DEVICES LDC 501 STD T1 REL3 LDN 0 CLEAR SYSTEM SECTOR BUFFER STM BFMS,T1 SOD T1 NJN REL3 LOOP TO START OF BUFFER STD EI REL4 LDM TSYD,EI SET SYSTEM EQUIPMENT STD T5 SETMS IO,(NS,RW) RELA LDN 1 * LDN 0 (NO ERROR CONDITION) ZJN REL5 IF NO ERROR CONDITION RJM RSF RESTORE SYSTEM FILE * WRITE SYSTEM SECTORS. REL5 LDD FS+1 SET FIRST TRACK STD T6 LDD SF ADN FSTL STD FA LDC * SET PPU LIBRARY TRACK RELB EQU *-1 STM PLSS RJM WSS WRITE SYSTEM SECTOR LDM PLSS SET PPU LIBRARY FILE TRACK STD T6 LDD MA SET FILE NAME CWM NPPU,ON SBN 1 CRM FNSS,ON LDN 0 CLEAR FST ADDRESS STD FA STM FASS RJM WSS WRITE SYSTEM SECTOR ENDMS AOD EI ADVANCE EQUIPMENT INDEX LDM TSYD,EI SHN 6 MJN REL6 IF END OF SYSTEM EQUIPMENTS LJM REL4 LOOP REL6 LJM REL7 RELEASE SYSTEM FILE FROM JOB RMT SPACE 4 ** RMT - RESERVE MATCHING TRACK. * * ENTRY (A) = 0, TO ABORT IF TRACK UNAVAILABLE. * = 1, TO RETURN IF TRACK UNAVAILABLE. * (T6) = CURRENT TRACK. * * EXIT (A) = TRACK ASSIGNED. * .LT. 0, IF RETURN ON TRACK UNAVAILABLE. * * USES T1, T2, T9, CM - CM+4. RMT12 LDM RMTB RETURN WITH TRACK RMT SUBR ENTRY/EXIT STD RF LCN 0 INITIALIZE EQUIPMENT INDEX STD T1 RMT1 AOD T1 ADVANCE INDEX RMT2 LDM TSYD,T1 SET EST ORDINAL RMTA EQU *-1 * LDM TSYD+ASDE ALTERNATE DEVICE PROCESSING STD CM+1 SHN 6 MJN RMT12 IF END OF TABLE LDN 0 REQUEST ONE TRACK STD CM+3 STD CM+4 LDD T6 RESERVE TRACK STD CM+2 MONITOR RTCM LDD CM+4 SET TRACK ASSIGNED STM RMTB,T1 NJN RMT4 IF TRACK ASSIGNED LDD RF ZJN RMT3 IF RETURN NOT SELECTED LCN 0 FORCE TRACK MISMATCH STD CM+4 AOD RF SET TO EXIT ON TRACK LIMIT LDD T1 NJN RMT5 IF NOT FIRST EQUIPMENT LCN 1 EXIT WITH TRACK LIMIT LJM RMTX RETURN RMT3 ENDMS LDC =C* SYSTEM TOO BIG FOR MASS STORAGE.* LJM ABT1 RMT4 LDD T1 RMT5 ZJP RMT1 IF FIRST EQUIPMENT STD T2 LDM RMTB-1,T1 COMPARE WITH PREVIOUS TRACK SBD CM+4 ZJN RMT5 IF SAME TRACK PJN RMT6 IF NEW TRACK LOWER LDN 0 START WITH FIRST EQUIPMENT STD T2 RMT6 LDM TSYD,T2 DROP TRACKS FOLLOWING LAST MATCH STD CM+1 STD T9 LDM RMTB,T2 SET FIRST TRACK IN CHAIN STD CM+2 LDD T6 ZJN RMT7 IF NO INITIAL TRACK LPC 3777 STD CM+2 LDN 0 SET LAST SECTOR WRITTEN RMT7 STD CM+3 MONITOR DTKM STD CM+4 LDD T9 SET EST ORDINAL STD CM+1 LDM TETCA,T2 RESERVE SAME TRACK LINKED TO EMPTY CHAIN STD CM+2 MONITOR RTCM LDD CM+4 SET LAST TRACK IN EMPTY CHAIN STM TETCA,T2 LDM TETC,T2 NJN RMT8 IF EMPTY CHAIN STARTED LDD CM+4 START EMPTY CHAIN STM TETC,T2 RMT8 LDD T2 LMD T1 ZJN RMT11 IF LOWER TRACK PROCESSING AOD T2 ADVANCE TABLE LMD T1 ZJN RMT9 IF ALL LOWER EQUIPMENT PROCESSED LJM RMT6 RMT9 LDM TSYD,T2 DROP TRACK FOLLOWING LAST MATCH STD CM+1 LDM RMTB,T2 STD CM+2 LDD T6 ZJN RMT10 IF NO INITIAL TRACK LPC 3777 STD CM+2 LDN 0 SET LAST SECTOR WRITTEN RMT10 STD CM+3 MONITOR DTKM STD T1 CLEAR EQUIPMENT INDEX LDD RF SHN 21-1 PJN RMT11 IF NOT TRACK LIMIT PROCESSING LJM RMTX EXIT WITH TRACK LIMIT ERROR RMT11 LJM RMT2 RESTART ASSIGNMENT RMTB BSS MXSY SYSTEM DEVICE TRACKS ASSIGNED RSF SPACE 4 ** RSF - RESTORE SYSTEM FILE. * * ENTRY (T5) = EQUIPMENT. * (RSFA) = SYSTEM / PPULIB EOI TRACK. * (RSFB) = SYSTEM / PPULIB EOI SECTOR. * * CALLS WEI. * * MACROS ENDMS, MONITOR. RSF2 LDC 0 RESTORE PPU LIBRARY TRACK RSFC EQU *-1 STM RELB RSF SUBR ENTRY/EXIT LCN 0 CLEAR FILE INDEX STD CN RSF1 AOD CN ADVANCE FILE INDEX LMN 2 ZJN RSF2 IF BOTH FILES PROCESSED LDM RSFA,CN SET *EOI* TRACK ZJN RSF1 IF NO TRACK ASSIGNED STD T6 LDM RSFB,CN SET EOI SECTOR STD T7 LDM SF,CN SET FNT ADDRESS ADN FSTL STD FA RJM WEI WRITE EOI ENDMS LDD T5 SET EQUIPMENT STD CM+1 LDD T6 SET TRACK LPC 3777 STD CM+2 LDD T7 SET SECTOR STD CM+3 MONITOR DTKM DROP TRACKS LJM RSF1 LOOP RSFA CON 0,0 RSFB CON 0,0 SBP SPACE 4 ** SBP - SET BUFFER PARAMETERS. * * ENTRY (IR+3 - IR+4) = FET ADDRESS. * * EXIT BUFFER PARAMETERS SET IN *WTB*. * * USES CM - CM+4. * * CALLS SPA. SBP SUBR ENTRY/EXIT RJM SPA READ FIRST ADN 1 CRD CM LDD RA SET (RA) REFERENCES STM AB1 SHN 6 STM AB2+1 STM AB3+1 STM AB5+1 SHN -14 LMC ADCI STM AB2 STM AB3 STM AB5 LDD CM+3 FIRST + RA LPN 37 STD CM+3 SHN 6 ADD RA SHN 6 ADD CM+4 STM AB4+1 SHN -14 LMC LDCI STM AB4 LDD CM+4 FIRST STM BF2+1 LDD CM+3 LMC ADCI STM BF2 RJM SPA READ LIMIT ADN 4 CRD CM LDD CM+3 -LIMIT LPN 37 LMC ADCI+77 STM BF1 LCN 0 LMD CM+4 STM BF1+1 LJM SBPX RETURN SCD SPACE 4 ** SCD - SCAN DIRECTORY. * * ENTRY (T1 - T2) = FWA. * * EXIT (T1 - T2) ADVANCED. * (A) = INDEX OF (T1 - T2). * * USES CM - CM+4. SCD2 LDD T1 RETURN INDEX SBD PA SHN 14 ADD T1+1 SBD PA+1 SCD SUBR ENTRY/EXIT SCD1 LDD T1 READ ENTRY SHN 6 ADD RA SHN 6 ADD T2 CRD CM AOD T2 ADVANCE ADDRESS SHN -14 RAD T1 LDD CM CHECK ENTRY ADD CM+1 ADD CM+2 ADD CM+3 ADD CM+4 NJN SCD1 LOOP TO BLANK ENTRY LDD T1 CHECK ADDRESS SHN 14 LMD T2 SBN 1 SHN -6 SBD FL MJN SCD2 IF WITHIN FL LDC =C* LIBRARY TABLE ERROR.* LJM ABT1 SCL SPACE 4 ** SCL - SCAN LIBRARY. * * ENTRY (T1 - T2) = FWA. * * EXIT (T1 - T2) ADVANCED. * (A) = INDEX OF (T1 - T2). * * USES CM - CM+4. SCL SUBR ENTRY/EXIT SCL1 LDD T1 READ ENTRY SHN 6 ADD RA SHN 6 ADD T2 CRD CM LDD CM+4 ADVANCE ADDRESS RAD T2 SHN -14 ADD CM+3 LPN 37 RAD T1 LDD CM CHECK ENTRY ADD CM+1 ADD CM+2 ADD CM+3 ADD CM+4 NJN SCL1 LOOP TO BLANK ENTRY AOD T2 INCLUDE BLANK ENTRY SHN -14 RAD T1 SHN 14 CHECK ADDRESS LMD T2 SHN -6 SBD FL PJN SCL2 IF OUT OF FL LDD T1 RETURN INDEX SBD PA SHN 14 ADD T2 SBD PA+1 LJM SCLX SCL2 LDC =C* LIBRARY TABLE ERROR.* LJM ABT1 SPA SPACE 4,10 ** SPA - SET PARAMETER ADDRESS. * * ENTRY (PA - PA+1) = RELATIVE ADDRESS OF PARAMETER WORD. * * EXIT (A) = ABSOLUTE PARAMETER ADDRESS. SPA SUBR ENTRY/EXIT LDD PA SHN 6 ADD RA SHN 6 ADD PA+1 UJN SPAX RETURN STA SPACE 4,15 ** STA - SET TRT ADDRESS. * * ENTRY (A) = EST ORDINAL. * * EXIT (T5) = EST ORDINAL. * (SNTA) = *ADC TRTS*. * DRIVER LOADED. * * USES CM - CM+4. * * MACROS SETMS. STA SUBR ENTRY/EXIT STD T5 SETMS IO,(NS),WDSB LDD CM+4 SHN 3 GET TRT POINTER ADN TRLL CRD CM LDD CM+3 LPN 77 SHN 14 LMD CM+4 SBD TH 4S-2 STM SNTA+1 SHN -14 LMC ADCI STM SNTA UJN STAX RETURN SNT SPACE 4 ** SNT - SET NEXT TRACK. * * ENTRY (T6) = CURRENT TRACK. * * EXIT (A) = NEXT TRACK. SNT SUBR ENTRY/EXIT LDD T6 READ TRT WORD SHN -2 SNTA ADC TRTS CRD CM LDD T6 SET BYTE INDEX LPN 3 STD T1 LDM CM,T1 RETURN WITH TRACK UJN SNTX WEF SPACE 4 ** WEF - WRITE END OF FILE. * * ENTRY (T6) = TRACK. * (T7) = SECTOR. * * EXIT (T6) AND (T7) UPDATED. * * USES CM - CM+4. * * CALLS RMT, SNT, WEI, WMS. * * MACROS ENDMS, MONITOR. WEF SUBR ENTRY/EXIT LDN 0 CLEAR FIRST CONTROL BYTE STM BFMS LDD T7 SET NEXT SECTOR ADN 1 STM BFMS+1 LMI SL NJN WEF1 IF NOT END OF TRACK RJM SNT SET NEXT TRACK STM BFMS+1 SHN 6 MJN WEF1 IF TRACK AVAILABLE ENDMS * LDN 0 RJM RMT RESERVE TRACK STM BFMS+1 WEF1 LDC BFMS+WCSF WRITE CONSECUTIVE SECTORS RJM WMS AOD T7 INCREMENT SECTOR LMI SL NJN WEF2 IF NOT NEW TRACK STD T7 RESET TRACK AND SECTOR LDM BFMS+1 STD T6 WEF2 RJM WEI WRITE EOI SECTOR ENDMS LDD T5 SET EQUIPMENT STD CM+1 LDD T6 SET TRACK LPC 3777 STD CM+2 LDD T7 SET SECTOR STD CM+3 MONITOR DTKM DROP TRACKS LJM WEFX RETURN WTB SPACE 4 ** WTB - WRITE BUFFER. * * ENTRY (CN - CN+4) = OUT POINTER WORD. * (T6) = TRACK. * (T7) = SECTOR. * * EXIT (CN - CN+4) UPDATED. * (T6) AND (T7) UPDATED. * * ERROR TO *ABT1* IF INVALID SECTOR WORD COUNT. * * USES SE, T1, T2, T8, CM - CM+4. * * CALLS RMT, SBP, SNT, WMS. * * MACROS ENDMS. WTB SUBR ENTRY/EXIT LDD T6 NJN WTB1 IF TRACK ASSIGNED LDD FS+1 SET FIRST TRACK STD T6 AOD SE LJM WTB10 WRITE DUMMY SYSTEM SECTOR WTB1 LDD RA CHECK RA LMC * (RA) AB1 EQU *-1 ZJN WTB2 IF NO CHANGE RJM SBP SET BUFFER PARAMETERS WTB2 LDD CN+3 READ CONTROL WORD SHN 14 ADD CN+4 AB2 ADC * (RA) CRD CM AOD CM+4 SET WORD COUNT LDC 101 CHECK WORD COUNT SBD CM+4 PJN WTB3 IF LEGAL WORD COUNT LDD RA SHN 6 ADN 2 CWD CM ADN 1 CWD CN ENDMS LDC =C* BUFFER CONTROL WORD ERROR.* LJM ABT1 WTB3 LDD CN+3 CHECK OUT + WORD COUNT SHN 14 ADD CN+4 ADD CM+4 BF1 ADC -* (-LIMIT) MJN WTB6 IF LIMIT NOT REACHED * PROCESS WRAP AROUND SECTOR. STD T2 SET SECOND PART WORD COUNT LDD CM+4 SET FIRST PART WORD COUNT SBD T2 STD T1 ZJN WTB4 IF NO FIRST PART LDD CN+3 READ FIRST PART SHN 14 ADD CN+4 AB3 ADC * (RA) CRM BFMS-3,T1 WTB4 LDD T2 CHECK SECOND PART LENGTH ZJN WTB5 IF NO SECOND PART LDD T1 SET PP BUFFER ADDRESS SHN 2 ADD T1 RAM WTBA AB4 LDC * READ SECOND PART (FIRST+RA) CRM BFMS-3,T2 WTBA EQU *-1 (RESET) WTB5 LDD T2 SET OUT AFTER SECOND PART BF2 ADC * (FIRST) STD CN+4 SHN -14 STD CN+3 UJN WTB7 * PROCESS NORMAL SECTOR. WTB6 LDD CN+3 READ BUFFER SHN 14 ADD CN+4 AB5 ADC * (RA) CRM BFMS-3,CM+4 * ADVANCE OUT POINTER. LDD CM+4 RAD CN+4 SHN -14 RAD CN+3 * WRITE SECTOR. WTB7 LDC BFMS-3 RESET READ ADDRESS STM WTBA LDD T7 SET NEXT SECTOR ADN 1 STM BFMS LMI SL NJN WTB10 IF NOT END OF TRACK RJM SNT SET NEXT TRACK STM BFMS SHN 6 MJN WTB10 IF TRACK ASSIGNED LDD T6 STM WTBC ENDMS * LDN 0 RJM RMT RESERVE TRACK STM BFMS STD T6 GET ADDITIONAL TRACKS LDN 7 STD T8 WTB8 LDN 1 RESERVE TRACK CHAIN RJM RMT MJN WTB9 IF TRACK LIMIT STD T6 SOD T8 NJN WTB8 WTB9 LDC * RESTORE CURRENT TRACK WTBC EQU *-1 STD T6 WTB10 LDC WCSF+BFMS WRITE SECTOR RJM WMS AOD T7 LMI SL NJN WTB11 IF NOT NEW TRACK STD T7 RESET TRACK AND SECTOR LDM BFMS STD T6 WTB11 SOD SE ZJN WTB12 IF ALL SECTORS WRITTEN LJM WTB1 LOOP WTB12 LJM WTBX RETURN WSL SPACE 4 ** WSL - WRITE SYSTEM LIBRARY. * * ENTRY (A) = 0 IF WRITING SYSTEM FILE. * = 1 IF WRITING PP LIBRARY FILE. * = 2 IF WRITING ALTERNATE LIBRARY FILE. * (AL) = 0 IF NOT WRITING ALTERNATE LIBARY FILE. * * EXIT (T6) = LAST TRACK. * (T7) = LAST SECTOR. * (FS - FS+4) = FST ENTRY. * * USES EI, FA, SE, T5, SN - SN+1, CM - CM+4, CN - CN+4. * * CALLS PSE, RMT, SBP, SEI, SPA, WEF, WTB. * * MACROS ENDMS, SETMS. WSL11 LDN 5 SET OPERATION COMPLETE STD FS+4 NFA FA,R STORE FST INFORMATION ADN FSTL CWD FS WSL SUBR ENTRY/EXIT STD EI SET FILE INDEX LDM SF,EI READ FST ENTRY ADN FSTL STD FA NFA FA,R ADN FSTL CRD FS * INITIALIZE FILE STATUS. LDD FS+1 CHECK TRACK STD T6 NJN WSL1 IF TRACK ASSIGNED RJM RMT STD FS+1 UJN WSL2 WSL1 LDD AL NJN WSL2 IF WRITING ALTERNATE LIBRARY LDD FS STD T5 RJM SEI SEARCH FOR END OF INFORMATION LDD T6 SET NEXT TRACK STD FS+2 STM RSFA,EI SET EOI LDD T7 SET NEXT SECTOR STD FS+3 STM RSFB,EI * INITIALIZE FILE WRITE. WSL2 RJM SBP SET BUFFER PARAMETERS LDC WSL4 CLEAR EOF FLAG STM WSLA LDN 0 CLEAR SECTOR COUNT STD SN STD SN+1 * CHECK BUFFER STATUS. WSL3 LJM WSL4 (EOF FLAG) WSLA EQU *-1 WSL4 LDD AL ZJN WSL5 IF NOT WRITING ALTERNATE LIBRARY LDN ASDE WSL5 STD EI INITIALIZE EQUIPMENT INDEX RJM PSE RJM SPA READ SECTOR COUNT ADN 6 CRD CM LDD CM+3 CHECK SECTOR COUNT SBD SN SHN 14 LMD CM+4 SBD SN+1 STM WSLB SBD HN PJN WSL6 IF ENOUGH DATA IN BUFFER LDD CM ZJN WSL4 IF EOR NOT SET LDC WSL11 SET EOF STM WSLA WSL6 LDD CM+3 SET NEW SECTOR COUNT STD SN LDD CM+4 STD SN+1 * WRITE BUFFER. WSL7 RJM SPA READ OUT ADN 3 CRD CN LDM TSYD,EI SET EQUIPMENT STD T5 LDD FS+2 SET CURRENT TRACK STD T6 LDD FS+3 SET CURRENT SECTOR STD T7 SETMS POSITION LDC * SET SECTOR COUNT WSLB EQU *-1 STD SE ZJN WSL8 IF NO SECTORS IN BUFFER RJM WTB WRITE BUFFFER WSL8 LDM WSLA CHECK EOF STATUS LMC WSL4 ZJN WSL9 IF NOT SET RJM WEF WRITE END OF FILE WSL9 ENDMS AOD EI ADVANCE EQUIPMENT INDEX LDM TSYD,EI SET NEXT EQUIPMENT STD T5 SHN 6 MJN WSL10 IF END OF EQUIPMENT LJM WSL7 LOOP WSL10 LDD T6 UPDATE CURRENT TRACK STD FS+2 LDD T7 UPDATE CURRENT SECTOR STD FS+3 RJM SPA STORE OUT ADN 3 CWD CN LJM WSL3 LOOP SPACE 4 * COMMON DECKS. *CALL COMPICT *CALL COMPLDB *CALL COMPRSS QUAL WMS QUAL$ EQU 1 WDS EQU WMS *CALL COMPWEI *CALL COMPWSS QUAL * WEI EQU /WMS/WEI WSS EQU /WMS/WSS *CALL COMPSEI SPACE 4,10 USE LITERALS DUMP LITERALS BLOCK WDSB BSS 0 WRITE ERROR PROCESSING BUFFER ERRNG BFMS-WDSB-502 BUFFER OVERLAP TITLE INITIALIZATION ROUTINES. TRES SPACE 4 ** TRES - TABLE OF RECORD RESIDENCES. * ENTRY = 5 WORDS. * *T 42/ NAME,6/ RC,12/ TY * NAME RECORD NAME * RC RESIDENCE CODE * = 40 = RESIDENT IN CM. * = 77 = RESIDENT IN *SYSTEM* FILE ONLY (NOT IN *PLD*). * TY RECORD TYPE TRES BSS 0 VFD 42/0L1BP,6/40,12/PPRT VFD 42/0L1RU,6/40,12/PPRT VFD 42/0L3RU,6/40,12/PPRT VFD 42/0L3RV,6/40,12/PPRT VFD 42/0L3RW,6/40,12/PPRT VFD 42/0L3RX,6/40,12/PPRT VFD 42/0L1FA,6/40,12/PPRT TRESB EQU * TRESBL EQU *-TRES VFD 42/0L"PBK0",6/40,12/PPRT VFD 42/0L"PBK7",6/40,12/PPRT VFD 42/0L1DD,6/40,12/PPRT VFD 42/0L5ME,6/40,12/PPRT VFD 42/0L7SE,6/40,12/PPRT VFD 42/0L7EK,6/40,12/PPRT VFD 42/0L7EL,6/40,12/PPRT VFD 42/0L7EM,6/40,12/PPRT VFD 42/0L7EN,6/40,12/PPRT VFD 42/0L7EO,6/40,12/PPRT VFD 42/0L7EP,6/40,12/PPRT VFD 42/0L7EQ,6/40,12/PPRT VFD 42/0L7ER,6/40,12/PPRT VFD 42/0L7ES,6/40,12/PPRT VFD 42/0LLSL,6/77,12/PPRT VFD 42/0LBCL,6/77,12/PPRT VFD 42/0L0AV,6/40,12/PPRT VFD 42/0L0CT,6/40,12/PPRT VFD 42/0L0DF,6/40,12/PPRT VFD 42/0L0QM,6/40,12/PPRT VFD 42/0L0SD,6/40,12/PPRT VFD 42/0L1CP,6/40,12/PPRT VFD 42/0L1RO,6/40,12/PPRT VFD 42/0LSFP,6/40,12/PPRT VFD 42/0L1MA,6/40,12/PPRT TRESJ VFD 42/0L1MB,6/77,12/PPRT TRESA VFD 42/0L1MC,6/77,12/PPRT VFD 42/0L1MD,6/40,12/PPRT VFD 42/0L1MP,6/40,12/PPRT TRESC VFD 42/0L1HP,6/77,12/PPRT TRESD VFD 42/0L1XM,6/77,12/PPRT VFD 42/0L2XM,6/77,12/PPRT VFD 42/0L2XN,6/77,12/PPRT VFD 42/0L1XY,6/77,12/PPRT TRESK VFD 42/0LMA464,6/77,12/PURT TRESP VFD 42/0LMB468,6/77,12/PURT TRESF VFD 42/0L6DC,6/77,12/PPRT VFD 42/0L6DD,6/77,12/PPRT TRESG VFD 42/0L2EA,6/77,12/PPRT VFD 42/0L2EB,6/77,12/PPRT VFD 42/0L7EA,6/77,12/PPRT TRESH VFD 42/0L1HY,6/77,12/PLRT TRESI VFD 42/0L1XD,6/77,12/PLRT TRESM VFD 42/0L1DA,6/77,12/PLRT VFD 42/0L3DZ,6/77,12/PLRT TRESN VFD 42/0LWLD,6/77,12/PLRT VFD 42/0L5DA,6/77,12/PLRT VFD 42/0L5SI,6/77,12/PLRT * THE FOLLOWING ENTRY MUST BE THE LAST ENTRY IN THE TABLE * SO THAT THE TABLE CAN BE EXTENDED BY PRESET IF *2SG* IS * TO BE INITIALIZED AS CM RESIDENT. VFD 42/0L2SG,6/40,12/PPRT TRESE CON 0 .1 SET TRESE-TRES TRESL EQU .1/5 CSF SPACE 4,15 ** CSF - CLEAR SYSTEM FILE. * * ENTRY (T5) = SYSTEM EQUIPMENT (LEVEL 2 ONLY). * (T6) = FIRST TRACK OF SYSTEM FILE (LEVEL 2 ONLY). * (FS - FS+4) = SYSTEM FILE FST ENTRY. * * USES SE, T1, T6, T7, CM - CM+4. * * CALLS RSS. * * MACROS ENDMS, MONITOR, NFA. CSF SUBR ENTRY/EXIT LDD T6 ZJN CSFX IF LEVEL 0 DEADSTART LDC NSYS READ SYSTEM SECTOR RJM RSS NJN CSF1 IF ERROR LDM PLSS SET PP LIBRARY FILE TRACK STM CSFA CSF1 ENDMS * LDN 0 CLEAR EQUIPMENT INDEX STD T1 CSF2 LDM TSYD,T1 SET EQUIPMENT STD CM+1 LDD FS+1 SET TRACK STD CM+2 MONITOR DTKM DROP TRACKS LDC 0 CSFA EQU *-1 ZJN CSF3 IF PP LIBRARY FILE TRACK NOT FOUND STD CM+2 LDM TSYD,T1 DROP TRACKS STD CM+1 MONITOR DTKM CSF3 AOD T1 ADVANCE EQUIPMENT INDEX LDM TSYD,T1 SHN 6 PJN CSF2 LOOP FOR ALL EQUIPMENT LDN FNTP CRD T6 LDN ZERL CLEAR SYSTEM FST ENTRY CRD FS+1 ERRNZ FS+5-SE READ DESTROYS LOCATION IN USE LDD T6 SHN 14 LMD T7 ERRNZ SYFO SYSTEM FILE ORDINAL .NE. 0 ADN FSTG CWD FS NFA SF,R CWD FS LJM CSFX RETURN DAP SPACE 4,10 ** DAP - DISABLE ALTERNATE RESIDENT PP PROGRAMS. * * USES T1, T2, T3, T4, T5, CM - CM+4, CN - CN+4. DAP SUBR ENTRY/EXIT LDC PLDP FETCH PLD POINTER CRD T1 LCN 0 INITIALIZE PLD INDEX STD T3 DAP1 AOD T3 ADVANCE PLD ENTRY LDD T1 SHN 14 LMD T2 ADD T3 CRD CM READ PLD ENTRY LDD CM+1 ZJN DAPX IF END OF PLD LPN 77 STD T5 SAVE EQUIPMENT LPN 40 NJN DAP1 IF CM RESIDENT SFA EST,T5 CHECK EST FOR SYSTEM DEVICE ADK EQDE CRD CN LDD CN SHN 21-12 MJN DAP1 IF SYSTEM DEVICE LDN 0 INITIALIZE REPLACEMENT ENTRY INDEX STD T4 DAP2 AOD T4 ADVANCE REPLACEMENT INDEX LDD T1 SHN 14 LMD T2 SBD T4 CRD CN READ REPLACEMENT ENTRY LDD CN+1 LMD CM+1 SCN 37 NJN DAP2 IF NOT CORRECT REPLACEMENT ENTRY LDD CN LMD CM NJN DAP2 IF NOT CORRECT REPLACEMENT ENTRY LDD T1 REPLACE PLD ENTRY SHN 14 LMD T2 ADD T3 CWD CN LJM DAP1 CONTINUE CHECKING PLD SPACE 4,10 LIBN VFD 42/0LLIBD00,18/0 NSYS VFD 42/0LSYSTEM,6/1,6/LIFT,6/0 PRS SPACE 4,10 ** PRS - PRESET PROGRAM. PRS9 LDD DS ZJN PRS10 IF NOT DEADSTART RJM CSF CLEAR SYSTEM FILE LJM PRS15 * READ SYSTEM SECTOR TO LOCATE PP LIBRARY FILE. PRS10 LDC NSYS READ SYSTEM SECTOR RJM RSS ZJN PRS11 IF NO ERROR LDC =C* SYSTEM FILE DESTROYED.* LJM ABT1 PRS11 ENDMS LDM PLSS SET PP LIBRARY FILE TRACK STD FS+1 STD FS+2 STM RSFC LDN FSMS STD FS+3 NFA PL,R STORE PP LIBRARY FST CWD FS LDC EPDP GET ENTRY POINT DIRECTORY ADDRESS CRD CM LDN 0 CLEAR PROGRAM COUNT STD T2 UJN PRS14 ENTER LOOP * DISABLE ALTERNATE CP LIBRARY. PRS12 LDD CM+2 READ PST ENTRY RAD CN+3 LPN 77 SHN 14 LMD CN+4 ADD CM+3 CRD AB SBN 1 GET SYSTEM TRACK AND SECTOR CRD CW LDD AB+1 CHECK IF *ASR* RESIDENT PROGRAM LPC 4000 ZJN PRS13 IF NOT *ASR* RESIDENT LMD AB+1 CLEAR *ASR* FLAG STD CW+1 LDD AB SET FL CONTROL STD CW LDD CN+3 UPDATE PST CONTROL WORD LPN 77 SHN 14 LMD CN+4 ADD CM+3 CWD CW AOD T2 ADVANCE PROGRAM COUNT PRS13 AOD CM+1 ADVANCE EPD ADDRESS SHN -14 PRS14 RAD CM SHN 14 LMD CM+1 CRD CN READ ENTRY NAME LDD CN NJN PRS12 IF NOT END OF EPD LDD T2 ZJN PRS15 IF NO PREVIOUS ALTERNATE LIBRARY RJM DAP DISABLE ALTERNATE RESIDENT PP PROGRAMS AOM WADB LDC RTCL READ CLOCK CRD CW * SET LIBDECK RECORD NAME. PRS15 LDN DSSL CRD CM READ LIBDECK NUMBER LDD CM+4 SHN -6 STD T0 SHN 3 LMD T0 SCN 70 RAM LIBN+2 * TERMINATE INITIALIZATION PROCESS. PRS16 LDN ZERL SET RPL ADDRESS FOR SYSEDIT CRD CM-3 CRD CN ADN RPLP-ZERL CRD CM AOD CN+4 STD CN+3 LDD IR+3 RETURN PARAMETERS TO SYSEDIT SHN 6 ADD RA SHN 6 ADD IR+4 CWD CN ADN 1 CWM LIBN,ON CWD CM-3 PRS SUBR ENTRY/EXIT ERRPL *-BFMS SYSTEM SECTOR BUFFER OVERLAYS CODE * CLEAR SYSTEM AND PP LIBRARY FST ADDRESSES. NOTE THAT THE * FOLLOWING CODE ALSO CLEARS FN - FN+1. LDN ZERL CLEAR FST ADDRESSES CRD SF ERRNZ PL-SF-1 (ADJUST IF LOCATIONS CHANGE) ERRNZ AL-SF-2 (ADJUST IF LOCATIONS CHANGE) * LDN 0 * STD SF * STD PL * STD AL ADK SLM-ZERL SET SECTOR LIMIT ADDRESS STD SL ADK MMFL-SLM CRD CM LDD CM+1 SHN 21-13 MJN PRS1 IF SHARED RMS PRESENT LCN TRESBL/5 RAM ERDA LDC TRESB STM ERDC PRS1 LDD DS NJN PRS2 IF DEADSTART RJM VSC VALIDATE *SLL* CALL ZJN PRS3 IF VALID CALL LJM ABT1 ISSUE MESSAGE AND ABORT PRS2 RJM IDS INITIALIZE DEADSTART PRS3 RJM SSD SET SYSTEM DEVICES NFA LFCN CRD CM GET LOCAL FILE COUNT LDC MXLF-2-SRFE-3 SBD CM+4 CHECK LOCAL FILE LIMIT PJN PRS4 IF SYSTEM FILES WILL NOT CAUSE FILE LIMIT LDC PRSB * SLL - LOCAL FILE LIMIT.* LJM ABT1 ABORT *SYSEDIT* JOB * ENTER FNT ENTRIES FOR SYSTEM FILES. PRS4 LDC NPPU CREATE PP LIBRARY FILE RJM CLF STD PL LCN LOFT-SYFT CHANGE FILE TYPE TO *SYFT* SHN 6 RAD FN+4 NFA FA,R STORE FNT ENTRY CWD FN ADN FSTL CWD FS LDN SSTL CRD CM ADK CPPL-SSTL CRD CN GET NUMBER OF CONCURRENT PPS LDD CN+3 LPN 77 ZJN PRS5 IF NO CONCURRENT PPS LDN 40 STM TRESF+3 FORCE *6DC* CM RESIDENT STM TRESF+3+5 FORCE *6DD* CM RESIDENT STM TRESN+3+5*0 FORCE *WLD* AND OVERLAYS CM RESIDENT STM TRESN+3+5*1 STM TRESN+3+5*2 AOM ERDA FORCE *2SG* CM RESIDENT PRS5 LDC MMFL FETCH MMF STATUS WORD CRD CM LDD CM+1 SHN 21-12 PJN PRS6 IF NOT LOW SPEED PORT MMF LDN 40 FORCE *MTE* OVERLAYS CM RESIDENT STM TRESG+3+5*0 STM TRESG+3+5*1 STM TRESG+3+5*2 PRS6 LDC MABL CHECK FOR CY180 CRD CM LDD CM+1 SHN 21-13 MJN PRS7 IF NOT CME MACHINE SHN 21-6-21+13 PJN PRS7 IF 865/875 LDN 40 FORCE *1MB* CM RESIDENT STM TRESJ+3 * ATTACH SYSTEM FILE TO JOB. PRS7 LDC NSYS CREATE LOCAL COPY OF SYSTEM FILE RJM CLF STD SF LDN FNTP READ FNT POINTER CRD CM+3 LDD CM+3 READ SYSTEM FILE FST SHN 14 LMD CM+4 ERRNZ SYFO SYSTEM FILE ORDINAL .NE. 0 ADN FSTG CRD T5 LDD DS NJN PRS8 IF DEADSTART STD CM+1 MONITOR UTEM INTERLOCK SYSTEM FILE LDD CM+1 NJP REC IF FILE NOT INTERLOCKED PRS8 LDD T6 REWIND FILE FOR LOCAL FST STD FS+1 STD FS+2 LDN 5 SET OPERATION COMPLETE STD FS+4 * COMPLETE FILE INITIALIZATION. LCN LOFT-LIFT CHANGE FILE TYPE TO *LIFT* SHN 6 RAD FN+4 NFA SF,R STORE LOCAL FST INFORMATION CWD FS SBN FSTL STORE FNT ENTRY CWD FN LDM TSYD LOAD SYSTEM DEVICE DRIVER RJM STA LJM PRS9 CHECK DEADSTART PRSB DATA C* SLL - LOCAL FILE LIMIT.* REC SPACE 4,10 ** REC - RECALL PP. * * EXIT TO *PPR* IF NO ERROR FLAG IS SET IN THE CPA. * TO *ABT1* IF ERROR FLAG SET IN CPA. * * USES SF, CM - CM+4. * * CALLS CFE. * * MACROS DELAY, MONITOR, PAUSE. REC LDC ** CHECK IF *NO ABORT* OPTION SET RECA EQU *-1 SCN 77 NJN REC2 IF NO ABORT SET REC1 LDN 0 CLEAR SYSTEM FILE ASSIGNMENT STD SF LDC RECB LJM ABT1 ABORT JOB * PROCESS *SLL* RECALL. REC2 RAD IR+3 DELAY PAUSE LDD CM+1 CHECK ERROR FLAGS NJN REC1 IF ERROR FLAGS ARE SET LDD PL RELEASE PP LIBRARY FNT ENTRY RJM CFE LDD SF RELEASE SYSTEM FILE FNT ENTRY RJM CFE LDN ZERL DEFAULT TO TIMED RECALL CRD CM LDD MA CWD IR MONITOR RECM RECALL PP LJM PPR ENTER PP RESIDENT RECB DATA C* SYSTEM FILE RESERVED.* SPACE 4,10 CON 2 NO RETURN W/O FILE CREATION AND RETURN ON NFL INCREASE (*0BF* CALL) OVL BSS 0 ZERO LEVEL OVERLAY LOAD ADDRESS ERRNG 7777-OVL-ZBFL CHECK LENGTH OF *0BF* CRD SPACE 4,15 ** CRD - CHECK FOR RESIDENT DRIVER OR CONTROLWARE. * * ENTRY (CM - CM+4) = EST ENTRY. * * EXIT *1DA* AND *3DZ* CM RESIDENT IF *DAS* DRIVE. * *1HP* CM RESIDENT IF 885-42 DRIVE. * *1HY* CM RESIDENT IF 887 DRIVE. * *1XD* CM RESIDENT IF XMD DRIVE. * *1XM* AND *MA464* CM RESIDENT IF 895 DRIVE. * *1XY* AND *MA464* CM RESIDENT IF CCH 895 DRIVE. * *MB468* CM RESIDENT IF *CT* OR *AT* DRIVE. * * USES T0, T1. CRD3 LDC CRDAL SET LENGTH OF TABLE STD T1 CRD4 LCN 2 CHECK NEXT TABLE ENTRY RAD T1 MJN CRDX IF END OF TABLE LDM CRDA,T1 COMPARE DEVICE TYPES LMD CM+3 NJN CRD4 IF DEVICE TYPES DO NOT MATCH LDM CRDA+1,T1 STD T0 SET LIST ADDRESS LDN 40 STI T0 FORCE OVERLAY CM RESIDENT LDD T0 LMC TRESM+3 NJN CRDX IF NOT *DAS* DEVICE LDN 40 STM TRESM+5+3 ALSO FORCE *3DZ* CM RESIDENT CRD SUBR ENTRY/EXIT LDD CM+3 CHECK DEVICE TYPE LMC 2RDC NJN CRD3 IF NOT 895 LDN 40 STM TRESK+3 FORCE *MA464* CONTROLWARE CM RESIDENT LDN CM STD T0 CRD1 AOD T0 ADVANCE TO NEXT CHANNEL BYTE LMN CM+3 ZJN CRDX IF BOTH CHANNEL BYTES CHECKED LDI T0 ZJN CRD1 IF NO CHANNEL PRESENT LPN 40 ZJN CRD2 IF NON-CONCURRENT CHANNEL STM TRESD+3*5+3 FORCE *1XY* CM RESIDENT UJN CRD1 CHECK NEXT CHANNEL CRD2 LDN 40 FORCE *1XM* AND OVERLAYS CM RESIDENT STM TRESD+3 STM TRESD+5+3 STM TRESD+2*5+3 UJN CRD1 CHECK NEXT CHANNEL CRDA BSS 0 DEVICES WITH RESIDENT DRIVERS/CONTROLWARE CON 2RAT,TRESP+3 ACS CARTRIDGE TAPE CON 2RCT,TRESP+3 CARTRIDGE TAPE CON 2RDB,TRESC+3 885-42 DISK CON 2RDF,TRESH+3 887 (4KB SECTOR) DISK CON 2RDH,TRESH+3 887 (16KB SECTOR) DISK CON 2RDN,TRESI+3 9853 DISK CON 2REA,TRESM+3 5832 (1X SSD) DISK CON 2REB,TRESM+3 5832 (2X SSD) DISK CON 2REC,TRESM+3 5833 (1X SABRE) DISK CON 2RED,TRESM+3 5833 (1XP SABRE) DISK CON 2REE,TRESM+3 5833 (2X SABRE) DISK CON 2REF,TRESM+3 5833 (2XP SABRE) DISK CON 2REG,TRESM+3 5838 (1X ELITE) DISK CON 2REH,TRESM+3 5838 (1XP ELITE) DISK CON 2REI,TRESM+3 5838 (2X ELITE) DISK CON 2REJ,TRESM+3 5838 (2XP ELITE) DISK CON 2REK,TRESM+3 5838 (3XP ELITE) DISK CON 2REL,TRESM+3 5838 (4X ELITE) DISK CON 2REM,TRESM+3 5833 (3XP SABRE) DISK CON 2REN,TRESM+3 5833 (4X SABRE) DISK CON 2REO,TRESM+3 47444 (1X 3.5IN) DISK CON 2REP,TRESM+3 47444 (1XP 3.5IN) DISK CON 2RES,TRESM+3 47444 (2X 3.5IN) DISK CON 2REU,TRESM+3 47444 (2XP 3.5IN) DISK CON 2REV,TRESM+3 47444 (3XP 3.5IN) DISK CON 2REW,TRESM+3 47444 (4X 3.5IN) DISK CRDAL EQU *-CRDA LENGTH OF TABLE ECS SPACE 4,10 ** ECS - CHECK EXTENDED MEMORY PRESENT. * * ENTRY (CM - CM+4) = EST ENTRY. * * EXIT (A) = BYTE 0 OF EST. * *1MC* CM RESIDENT IF EXTENDED MEMORY PRESENT. ECS2 LDD CM POSITION FOR SYSTEM DEVICE CHECK SHN 21-12 ECS SUBR ENTRY/EXIT LDD CM+3 LPC 3777 LMC 2RDP CHECK FOR TYPE *DP* ECSA ZJN ECS1 IF EXTENDED MEMORY PRESENT * UJN ECS2 (IF A CYBER 176) LMN 2RDE&2RDP CHECK FOR TYPE *DE* NJN ECS2 IF NOT AN EXTENDED MEMORY TYPE OF DEVICE ECS1 LDN 40 SET *1MC* CM RESIDENT STM TRESA+3 UJN ECS2 RETURN IDS SPACE 4,10 ** IDS - INITIALIZE DEAD START. IDS SUBR ENTRY/EXIT LDN DSSL CRD CM LDD CM+4 CHECK DEADSTART FLAG LPN 4 SHN -2 STD DS NJN IDS1 IF DEADSTART INTERLOCK SET LJM ABT ISSUE MESSAGE AND ABORT IDS1 PAUSE NE LDD IR+3 READ *REC* INPUT REGISTER CRD CM LDD CM+3 CHECK RECOVERY COMPLETE FLAG LMC 7776 NJN IDS1 IF NOT SET IDS2 PAUSE LDD CM CHECK CPU STATUS SHN -11 ZJN IDS2 IF CPU NOT ACTIVE LDD RA READ (RA+3) SHN 6 ADN 3 CRD CM LDD CM+3 SET CONTROL WORD ADDRESS LPN 37 STD IR+3 SHN 14 LMD CM+4 STD IR+4 ZJN IDS2 IF NOT SET LJM IDSX RETURN SSD SPACE 4,10 ** SSD - SET SYSTEM DEVICES. * * EXIT (TSYD) PREPARED. * (LE) = LAST MASS STORAGE EST ORDINAL + 1. * * ERROR TO *ABT* IF SYSTEM DEVICE DOWN. * * USES EI, LE, T5, CM - CM+4, CN - CN+4. * * CALLS CBD, ECS. * * MACROS SFA. SSD SUBR ENTRY/EXIT LDN ESTP READ EST POINTER CRD CN ADK MABL-ESTP READ MAINFRAME TYPE CRD CM LDD CN+2 SET END OF EST STM SSDB+1 LDD CN+3 SET END OF MASS STORAGE EQUIPMENTS STD LE LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH STD T5 LDN 0 STD EI CLEAR TABLE INDEX LDD CM+1 CHECK MAINFRAME TYPE SHN -11 LMN 7 NJN SSD1 IF NOT CYBER 176 LDC * ORG *-1 LOC ECSA UJN ECS2 DISABLE CM RESIDENCY OF *1MC* ON C176 LOC *O STM ECSA SSD1 AOD T5 READ NEXT EST ENTRY SSDB LMC * (LAST EST ORDINAL+1) ZJN SSDX IF END OF EST SFA EST,T5 READ EST ENTRY ADK EQDE CRD CM RJM CRD CHECK FOR RESIDENT DRIVER OR CONTROLWARE LDD CM CHECK EQUIPMENT SHN 21-13 PJN SSD1 IF NOT MASS STORAGE RJM ECS CHECK FOR EXTENDED MEMORY PJN SSD1 IF NOT SYSTEM DEVICE LDD CM LPN 3 CHECK DEVICE STATE LMN 3 NJN SSD2 IF NOT DOWN LDC SSDA LJM ABT1 ABORT JOB SSD2 LDD EI CHECK IF SYSTEM DEVICE TABLE FULL LMN MXSY ZJN SSD3 IF MAXIMUM SYSTEM DEVICES ALREADY DEFINED LDD T5 ENTER EST ORDINAL IN TABLE STM TSYD,EI AOD EI ADVANCE TABLE INDEX SSD3 LJM SSD1 CHECK NEXT EST ENTRY SSDA DATA C* SYSTEM DEVICE DOWN.* VSC SPACE 4,15 ** VSC - VALIDATE *SLL* CALL. * * ENTRY (IR+3 - IR+4) = REQUEST WORD ADDRESS. * * EXIT (A) = 0 IF VALID *SLL* CALL. * = ADDRESS OF ERROR MESSAGE. * * ERROR TO *ABT* IF NOT *SSJ=* CALLER. * * USES IR+3, CM - CM+4, CN - CN+4. * * CALLS CUA. VSC SUBR ENTRY/EXIT LDD CP READ SPECIAL ENTRY POINTS ADK SEPW CRD CM ADK JSCW-SEPW READ JOB SECURITY WORD CRD CN LDD CM SHN 21-2 MJN VSC1 IF CALLED BY *SSJ=* JOB LJM ABT * INCORRECT SLL REQUEST.* VSC1 RJM CUA CHECK USER ACCESS NJN VSC2 IF ACCESS NOT ALLOWED LDK SSML CHECK SECURITY MODE CRD CM LDD CM LPN 7 ZJN VSC4 IF UNSECURED SYSTEM LDD CN SHN 21-13 MJN VSC4 IF SECURITY ADMINISTRATOR VSC2 LDC VSCA VSC3 UJN VSCX RETURN VSC4 LDD IR+3 CHECK REQUEST WORD ADDRESS STM RECA LPN 37 STD IR+3 SHN 14 LMD IR+4 SHN -6 SBD FL MJN VSC5 IF ADDRESS WITHIN FL LDC =C* SLL ARGUMENT ERROR.* UJN VSC3 RETURN VSC5 LDN 0 VALID *SLL* CALL UJN VSC3 RETURN VSCA DATA C* SYSTEM LIBRARY CHANGE INCORRECT.* SPACE 4,10 ** COMMON DECKS. SSJ$ EQU 1 DEFINE SSJ CHECKING IN *COMPCUA* *CALL COMPCUA SPACE 4 END