IDENT SET,0 PERIPH J BASE MIXED SST LA,MA,.EST,DLYA *COMMENT SET - INITIALIZE SYSTEM. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. TITLE SET - INITIALIZE SYSTEM. SPACE 4 *** SET - INITIALIZE SYSTEM. * * G. R. MANSFIELD. 70/12/13. * D. A. HIVELEY. 72/07/01. * J. L. WARDELL. 73/01/15. * P. D. HAAS. 74/07/24. SPACE 4 *** *SET* PERFORMS SYSTEM INITIALIZATION BY PROCESSING * TEXT DECKS ON THE DEAD START TAPE. THE TEXT RECORDS * MAY CONSIST OF ANY NUMBER OF LOGICAL GROUPINGS WITH A * PROCESSING OVERLAY. THE ASSEMBLY PROCESS REQUIRES 2 TEXT * RECORDS, THE FIRST CONTAINS INSTRUCTIONS FOR THE OPERATOR, * AND THE SECOND CONTAINS THE ACTUAL TEXT. NEITHER OF THESE * RECORDS SHOULD BE LONGER THAN ONE TAPE PRU. THE PROCESS OF * ASSEMBLY CONTINUES UNTIL THE RECORD *PP/PPR* IS READ AS * AN OVERLAY. * * EXAMPLE - THE FOLLOWING RECORDS ARE PRESENT. * CMR CENTRAL MEMORY INITIALIZER * CMRINST INSTRUCTIONS FOR USE * CMRDECK TEXT FOR ASSEMBLY SPACE 4,10 *CALL COMPMAC *CALL COMDMAC QUAL BIO *CALL COMSBIO QUAL * *CALL COMSDFT LIST X *CALL COMSDSL LIST * *CALL COMSDST *CALL COMSESS *CALL COMSHIO QUAL IOU *CALL COMSIOU QUAL * *CALL COMSLSD *CALL COMSMSC *CALL COMS176 *CALL COMPCHM *CALL COMSCPS *CALL COMSEJT *CALL COMSMLS *CALL COMSMMF *CALL COMSMSP *CALL COMSMST QUAL PFM *CALL COMSPFM QUAL * *CALL COMSPIM *CALL COMSREM QUAL SCR *CALL COMSSCR QUAL * *CALL COMSSRU *CALL COMSSSD *CALL COMSSSJ *CALL COMS1DS SPACE 4 TITLE DIRECT LOCATION ASSIGNMENTS. **** DIRECT LOCATION ASSIGNMENTS. ORG 0 T0 CON PRS-1 TRANSFER ADDRESS T1 CON 0 T2 CON 0 *SCD* PP NUMBER ON ENTRY T3 CON 0 T4 CON 0 DEADSTART CHANNEL ON ENTRY T5 CON 0 INTERCOMMUNICATIONS CHANNEL ON ENTRY T6 CON 0 T7 CON 77 CM VFD 60/0 CM WORD BUFFER TA CON 0 TABLE ADDRESS NC EQU TA NUMBER OF CONTROL POINTS + 1 ID CON 2RAA DEFAULT MACHINE ID LD CON 0 1/ISD FLAG, 11/MMF LINK DEVICE CN VFD 60/0 CM WORD BUFFER CA CON 0,1 CENTRAL ADDRESS ES CON /EQP/EBUT EQUIPMENT STATUS ADDRESS EB CON 0 *EBUF* POINTER ET CON 0 *TDDB* POINTER MS CON 0 *TMSD* POINTER SET BY */EQ1/SMD* * *TETY* POINTER SET BY */EQ2/EQM*. EQ CON 0 EST ORDINAL LA CON OVL OVERLAY LOAD ADDRESS RS CON 0 RECOVERY STATUS KB CON 0 KEYBOARD BUFFER ADDRESS ST CON 0 SYNTAX TABLE ADDRESS DP CON 0 DISPLAY CONTROL (IPRDECK) MZ CON 0,0 TOTAL CENTRAL MEMORY SIZE/100B RM CON 0 RECOVERY MODE DI CON -0 TEXT DECK INDEX DF CON 0 DEADSTART FUNCTION DH CON DC DEADSTART CHANNEL * *HO* BIT DEFINITIONS (SAME AS MABL) - * * 0001 - CPU0 NOT PRESENT * 0002 - CPU1 NOT PRESENT * 0004 - IF 865/875, 0=865, 1=875 * 0010 - CMU NOT PRESET * 0020 - CPU0 DOES NOT HAVE A STACK * 0040 - RESERVED * 0100 - NOT A CYBER 170 (NO SCR PRESENT) * 0200 - NOT A CYBER 70 (NO I/L REGISTER PRESENT) * 0400 - NOT A CYBER 170-700 * 3000 - 0 IF NOT 7000-TYPE CPU * - 1 IF CYBER 76 MODEL A * - 2 IF CYBER 76 MODEL B * - 3 IF CYBER 176 * 4000 - NOT A CYBER 170-800 HO CON 0 HARDWARE OPTIONS AB VFD 60/0 ASSEMBLY BUFFER PD CON 0 POSSIBLE LINK DEVICE (=5 IF EST 5 IS ESM) FL CON 0,1770 DEFAULT EXECUTION MEMORY SIZE DS CON 0 DISPLAY STATUS KI CON 0 KEYBOARD INDEX KM CON 0 KEYBOARD MESSAGE KA CON 0 CHARACTER ADDRESS NS CON 0 NUMBER OF SHARED MS DEVICES XC CON CH01 X-COORDINATE YC CON 0 Y-COORDINATE AM CON 0 ASSEMBLY MODE ON CON 1 CONSTANT 1 HN CON 100 CONSTANT 100 TH CON 1000 CONSTANT 1000 TR CON 3 CONSTANT 3 EN CON 0 EXTENDED MEMORY CPU ACCESS EST ORDINAL DV CON TDDCL MASS STORAGE DESCRIPTOR TABLE LENGTH LE CON NOPE LAST EST ORDINAL ZR VFD 60/0 ZERO WORD **** TITLE ASSEMBLY CONSTANTS. SPACE 4,10 * ASSEMBLY CONSTANTS. BC EQU 1 BUFFER PP CHANNEL XPC EQU 100 C176 EXCHANGE PACKAGE SIZE MEBF EQU DSDL+12 MICROCODE/EI BUFFER ERRNZ CPAS-3-MEBF BBFL EQU CPML+PRSL BASIC BUFFER LENGTH EBFL EQU BBFL+5000/100 EXTENDED BUFFER LENGTH EDBL EQU 44 EXTENDED MEMORY DISPLAY BUFFER LENGTH LDEQ EQU 5 DEFAULT LINK DEVICE EQUIPMENT NUMBER DBPS EQU 2*400-3*3-2*1 PP SAVE AREA CONSTANT PSAL EQU PPFW/5 *SCI* PP RESIDENT SAVE AREA LENGTH QUAL$ EQU 1 YCPH EQU LN02 Y-COORDINATE - PRIMARY HEADER LINE YCSH EQU LN04 Y-COORDINATE - SECONDARY HEADER LINE SPACE 4,10 * BUFFER PP FUNCTIONS. TBPF BSS 0 LOC 0 RSBF BSS 1 RESET BUFFER PP IFBF BSS 1 INPUT FIRST BUFFER ISBF BSS 1 INPUT SECOND BUFFER DDDF BSS 1 DISPLAY BUFFER UECF BSS 1 UPDATE EQUIPMENT COUNT ONLF BSS 1 OUTPUT NEXT LINE RCLF BSS 2 REPLACE CURRENT LINE ANLF EQU RCLF+1 ADD NEXT LINE ADBF BSS 1 ADVANCE BUFFER ADDF BSS 1 ADVANCE DISPLAY RPSF BSS 1 RESET SECOND BUFFER SPACE 4,10 * MASS STORAGE DESCRIPTOR TABLE TAGS. BSS 0 LOC 0 DVFA BSS 1 FILE ALLOCATION FLAGS DVNT BSS 1 NUMBER OF TRACKS DVPR BSS 1 3/ CN, 3/ C2, 1/ F2, 3/ 0,1/ CD, 1/ PF * CN = CONTROLLER NUMBER * C2 = CONTROLLER NUMBER, SECOND CHANNEL * F2 = SECOND CONTROLLER NUMBER FLAG * CD = SYSTEM CHECKPOINT DEVICE * PF = ISD PRESET FLAG DVPF BSS 2 8/ NC,8/ SM,8/ DM * NC = NUMBER OF CATALOG TRACKS * SM = SECONDARY MASK * DM = DEVICE MASK DVNM BSS 3 FAMILY OR PACK NAME DVDN BSS 1 DEVICE NUMBER DVAP BSS 1 APRDECK NUMBER DVED BSS 1 EQUIPMENT DESCRIPTION DVES BSS 0 1000B WORD BLOCKS OF EM (2 LOCATIONS) DVUN BSS 4 UNIT LIST DVUNL EQU *-DVUN LENGTH OF UNIT LIST DVTH BSS 0 DEVICE THRESHOLD WORD DVVF BSS 1 VALIDATION FAILURE THRESHOLD DVRA BSS 1 RESTRICT ACTIVITY TRACK THRESHOLD DVLS BSS 1 LOW SPACE TRACK THRESHOLD DVRE BSS 1 RECOVERED ERROR THRESHOLD DVUE BSS 1 UNRECOVERED ERROR THRESHOLD DVCT BSS 1 1/ SHARED DEVICE FLAG, * 11/ DEFAULT NUMBER OF CATALOG TRACKS DVAI BSS 1 6/ CONTROLWARE LOAD, 6/ ALGORITHM INDEX DVDI BSS 1 6/ DRIVER INDEX, 6/ UNUSED DVSL BSS 1 1/ FULL TRACK FLAG, * 11/ SECTOR LIMIT + MAX PARTITION NO. DVCO BSS 1 12/ CYLINDER OFFSET FOR THIS PARTITION TDDEL BSS 0 LENGTH OF MS DESCRIPTOR TABLE ENTRY ERRNZ TDDEL/5*5-TDDEL TABLE LENGTH MUST BE MULTIPLE OF 5 TDDCL EQU TDDEL/5 CM WORD LENGTH OF TABLE ERRNZ TDDCL-5 DV VALUE DEPENDS ON LENGTH OF TABLE .TDDB EQU TDDCL*ESMX+77 CM BUFFER SIZE PLUS ROUNDING FACTOR TDDBL EQU .TDDB/100 CM BUFFER LENGTH/100B FOR TABLE SPACE 4,10 * DEFAULT MASS STORAGE ERROR THRESHOLDS. ORG AB AB INDEX INDEX DVVF-DVTH,1 INDEX DVRA-DVTH,0 TRACK COUNT / 8 INDEX DVRE-DVTH,50 INDEX DVLS-DVTH,0 TRACK COUNT / 16 INDEX DVUE-DVTH,1 ORG TBPF SPACE 4,10 ** MACRO SUBROUTINES FOR ASSEMBLING DIRECTIVE VALUES AND NAMES. AODSUB MACRO LIST G AOD SPACE 4 ** AOD - ASSEMBLE OCTAL DIGITS. * * ENTRY (KA) = ADDRESS OF CHARACTER STRING. * * EXIT (A) = LOWER ASSEMBLY. * (AB - AB+4) = ASSEMBLED VALUE. * ERROR IF SEPARATOR NOT *,* OR *.*. * * CALLS CDR. AOD1 LDD AB+4 RETURN WITH LOWER ASSEMBLY AOD SUBR ENTRY/EXIT RJM CDR LMN 1R, CHECK SEPARATOR ZJN AOD1 IF *,* LMN 1R.&1R, ZJN AOD1 IF *.* JMP ILL PROCESS INCORRECT ENTRY LIST * AODSUB ENDM ASDSUB MACRO LIST G ASD SPACE 4,10 ** ASD - ASSEMBLE DIGITS. * * ENTRY (KA) = ADDRESS OF CHARACTER STRING. * * EXIT (AB - AB+4) = ASSEMBLED DIGITS. * ERROR EXIT IF NO *.*. * * CALLS CDR. ASD1 LDD AB+4 RETURN WITH LOWER ASSEMBLY ASD SUBR ENTRY/EXIT RJM CDR LMN 1R. ZJN ASD1 IF *.* JMP ILL PROCESS INCORRECT ENTRY LIST * ASDSUB ENDM ASNSUB MACRO LIST G ASN SPACE 4,10 ** ASN - ASSEMBLE NAME. * * ENTRY (A) = NUMBER OF CHARACTERS TO ASSEMBLE. * (KA) = ADDRESS OF CHARACTER STRING. * * EXIT (CM - CM+4) = ASSEMBLED NAME. * (A) = 0 IF ASSEMBLY TERMINATED ON *,* OR *.*. * (T0) = NUMBER OF CHARACTERS ASSEMBLED. * * USES T1, T2. ASN2 AOD T0 ADVANCE CHARACTER COUNT SBN 1 SHN 21-0 FORM BUFFER ADDRESS ADN CM STD T1 LMD T1 CLEAR ADDRESS LMI KA INSERT CHARACTER MJN ASN3 IF CHARACTER PACKED LOW SHN 6 POSITION CHARACTER HIGH ASN3 RAI T1 ASSEMBLE BYTE AOD KA ADVANCE CHARACTER BUFFER SOD T2 DECREMENT CHARACTER COUNT NJN ASN1 IF NOT END OF ASSEMBLY LDD T0 ASN SUBR ENTRY/EXIT STD T2 SET CHARACTER COUNT LDN 0 CLEAR ASSEMBLY BUFFER STD T0 CRD CM AOD KA SKIP SEPARATOR ASN1 LDI KA CHECK NEXT CHARACTER SBN 1R9+1 MJN ASN2 IF ALPHANUMERIC SBN 1R,-1R9-1 ZJN ASNX IF *,* SBN 1R.-1R, ZJN ASNX IF *.* JMP ILL PROCESS INCORRECT ENTRY LIST * ASNSUB ENDM CDRSUB MACRO LIST G CDR SPACE 4,10 ** CDR - CONVERT DIGITS RIGHT ADJUSTED. * * ENTRY (KA) = ADDRESS OF CHARACTER STRING. * * EXIT (A) = SEPARATOR CHARACTER. * (AB - AB+4) = ASSEMBLY. * * USES T1, T2. CDR4 SBN 1R -1R8 ZJN CDR3 IF SPACE CDR5 LDI KA RETURN WITH CHARACTER CDR SUBR ENTRY/EXIT LDN ZERL CLEAR ASSEMBLY BUFFER CRD AB CDR1 LDI KA CHECK CHARACTER SBN 1R0 MJN CDR5 IF ALPHA SBN 1R8-1R0 PJN CDR4 IF NOT OCTAL DIGIT ADN 10 STORE DIGIT STD T1 LDN AB+4 SET BYTE ADDRESS STD T2 CDR2 LDI T2 LOAD BYTE SHN 3 LMD T1 ADD NEW DIGIT STI T2 STORE SHN -14 SAVE OVERFLOW STD T1 SOD T2 ADVANCE BYTE ADDRESS LMN AB-1 NJN CDR2 IF NOT FINISHED CDR3 AOD KA ADVANCE CHARACTER UJN CDR1 PROCESS NEXT CHARACTER LIST * CDRSUB ENDM SPACE 4,10 ** CHKAPE - CHECK ALTERNATE PP ERROR. * * CALLS *DSE* IF THE *A* REGISTER .NE. 0. CHKAPE MACRO LOCAL CHK1 ZJN CHK1 IF NO ERROR RETURNED JMP DSE DISPLAY ERROR AND HANG CHK1 BSS 0 ENDM SPACE 4 ** JMP - THREADED JUMP. * * * JMP ADDR * ENTRY *ADDR* = JUMP ADDRESS. JMP MACRO ADDR IF -DEF,.ADDR,2 NOREF .ADDR .ADDR MAX ADDR,*-40 IFGT .ADDR,*-40 UJN .ADDR .ADDR SET *-1 ELSE 2 .ADDR SET * LJM ADDR ENDM SCLASS SPACE 4,15 ** SCLASS - DEFINE SERVICE CLASS TABLE. * * SCLASS NM,MN,DF,ST,TX * * ENTRY *NM* = SERVICE CLASS NAME. * *MN* = TWO CHARACTER MNEMONIC. * *DF* = DAYFILE MESSAGE CHARACTER. * *ST* = SHORT TEXT FOR *QFTLIST*. * *TX* = TEXT OF SERVICE CLASS NAME FOR BANNER PAGE. * * NOTE - THE CALL TO *COMSSCD* MUST FOLLOW THE DEFINITION OF * THIS MACRO. PURGMAC SCLASS SCLASS MACRO NM,MN,DF,ST,TX .A IFC NE,$NM$SSSC$ .SCL RMT INDEX /SCD/NM,/SCD/MN_MK TX .SCL RMT .A ENDIF SCLASS ENDM SCL$ EQU 0 ONLY PROCESS CLASSES WITH JCB-S QUAL SCD *CALL COMSSCD QUAL * * DEFINE UNQUALIFIED *COMSSCD* SYMBOLS. MXJC EQU /SCD/MXJC MXSC EQU /SCD/MXSC SUBSYST SPACE 4,10 ** SUBSYST - GENERATE SUBSYSTEM TABLE. * * SUBSYST NAME,ID,PR,PP,AUTO,DEF,DCP,CP,PROC,ABT * * ENTRY *NAME* = 3 CHARACTER SUBSYSTEM NAME. * *ID* = SUBSYSTEM ID. * *DCP* = DEFAULT CONTROL POINT. * *CP* = *YES* IF A CONTROL POINT IS ALLOWED. * *DEF* = *ENABLE* IF SUBSYSTEM ENABLED BY DEFAULT. PURGMAC SUBSYST SUBSYST MACRO NM,ID,PT,PP,AU,DF,DC,CP,PR,AB .A IFC NE,$NM$CMS$ .SUB1 RMT ENABLE/DISABLE CODE .B IFC EQ,$CP$YES$ NM DATA C*NM* .B ELSE NM DATA C*NM_.* .B ENDIF .1 SET MXSI-ID .2 SET .1/12D .3 SET 4-.2 *SSSL* BYTE .4 DECMIC .1-12D*.2 .5 SET 1S".4" *SSSL* MASK LDK .3*10000B+.5 JMP CSB .SUB1 RMT * SET UP DEFAULT *SSSL*. .C IFC EQ,$DF$ENABLE$ .1 SET MXSI-ID .2 SET .1/12D .3 SET 4-.2 .4 DECMIC .1-12D*.2 .5 SET 1S".4" .6 DECMIC .3 SSSL.".6" SET SSSL.".6"-.5 .C ENDIF .SUB RMT ENABLE/DISABLE SYNTAX INDEX MXSI-ID,NM .SUB RMT .A ENDIF .D IFC NE,$DC$$ DEFAULT SSCT TABLE .SUB2 RMT INDEX MXSI-ID,DC .SUB2 RMT .D ENDIF SUBSYST ENDM TITLE CMR TABLE ORGANIZATION. SPACE 4,10 ** LIST OF *SET* GENERATED TABLES. * * SYMBOLS IN THIS LIST DEFINE THE ORDER IN WHICH TABLES * IN CMR ARE ALLOCATED BY *SET*. TABLES MUST BE * CREATED AND RECOVERED IN THE SAME SEQUENCE. BSS 0 LOC 0 ESTO BSS 1 EQUIPMENT STATUS TABLE EXPO BSS 1 C176 (AND 819) EXCHANGE PACKAGES MCTO BSS 1 MEMORY CONTROL TABLE SCDO BSS 1 *SCD* PARAMETER TABLE RPTO BSS 1 RING PORT TABLE CHTO BSS 1 CHANNEL TABLES ECBO BSS 1 *EICB* TABLES EMBO BSS 1 ERROR MESSAGE BUFFER EVTO BSS 1 EVENT TABLE SCTO BSS 1 SUBSYSTEM CONTROL TABLES SITO BSS 1 *SECDED* ID TABLE SABO BSS 1 SYSTEM ATTRIBUTE BLOCK JCAO BSS 1 JOB CONTROL BLOCK TABLE MSAO BSS 1 MASS STORAGE ALLOCATION AREA ODBO BSS 1 OPERATOR DISPLAY BUFFER LDBO BSS 1 *L* DISPLAY BUFFER PDBO BSS 1 PREVIEW DISPLAY BUFFER DFBO BSS 1 DAYFILE BUFFERS PSVO BSS 1 PP SAVE AREAS MSTO BSS 1 MASS STORAGE TABLES TRTO BSS 1 TRACK RESERVATION TABLES EXMO BSS 1 EXTENDED MEMORY BUFFERS INBO BSS 1 INSTALLATION BLOCK SDAO BSS 1 STATISTICAL DATA AREA FOTO BSS 1 FAMILY ORDINAL TABLE FNTO BSS 1 FILE NAME TABLE EJTO BSS 1 EXECUTING JOB TABLE QFTO BSS 1 QUEUE FILE TABLE CLTO BSS 1 COMMON LIBRARIES TABLE LIDO BSS 1 *LID* TABLE OSTO BSS 1 OPTICAL DISK STATUS TABLE ORTO BSS 1 OPTICAL DISK REQUEST TABLE BSTO BSS 1 BUFFER STATUS TABLES BDTO BSS 1 BUFFERED DEVICE CONTROL TABLES TSGTE BSS 0 END OF TABLES GENERATED BY *SET* ERRNZ BDTO+1-TSGTE BUFFERED DEVICE TABLES MUST BE LAST TITLE MAIN PROGRAM. SET SPACE 4 ** SET - MAIN PROGRAM. ORG TBPF SET LDN 0 LOAD TEXT DECK RJM RTD RJM ATD ASSEMBLE TEXT DECK RJM 3,LA PROCESS ASSEMBLY VALUES SET1 RJM ROV LOAD TEXT PROCESSOR AOD DI ADVANCE TEXT DECK INDEX LMN TTXCL NJN SET IF NOT END OF TEXT DECKS TO ASSEMBLE RJM ROV SKIP *RCT* LDN RSBF TERMINATE BUFFER PP PROGRAM RJM IBF SET2 RJM ROV LOAD *SCP* RJM SCP SETUP CONTROL POINTS RJM ROV LOAD *PPR* * PP RESIDENT (PPR) NOW LOADED. LDC PPFW-1 SET START ADDRESS STM OVL LDD DH SET DEADSTART CHANNEL STM OVL+T1 LDD RS SET RECOVERY STATUS STM OVL+T2 LDD DF SET DEADSTART EQUIPMENT STM OVL+DRSW LDC 0 SET DEADSTART OPTIONS DSTO EQU *-1 STM OVL+CM LDC 0 SET FIRST TRACK OF RMS DEADSTART FILE SETE EQU *-1 STM OVL+DRSW+1 LDC PPFW OUTPUT *PPR* TO PP 2 CC1 OAM. OVL,2 RJM ROV LDD T3 OUTPUT *STL* TO PP2 CC2 OAM. OVL,2 CC3 DCN. 2 CC4 ACN. 0 INPUT *MTR* LCN 0 CC5 IAM. 0,0 DSTO SPACE 4,10 ** DSTO - DEADSTART OPTIONS. * * DSTO = 8/0,2/RA,1/A,1/G * A = 0 IF AUTOLOADING ENABLED. * = 1 IF AUTOLOADING DISABLED. * G = 0 IF NO GRENADE AFTER CONTROLLER AUTOLOAD. * 1 IF GRENADE AFTER CONTROLLER AUTOLOAD. * RA = 0, ALLOW RECOVERY. * RA = 1, CHECKPOINT ALL DEVICES, ABORT LEVEL 3. * RA = 2 OR 3, CHECKPOINT NON-BUFFERED DEVICES, * ABORT LEVEL 3 RECOVERY. DSTO EQU DSTO DEADSTART OPTIONS TTXC SPACE 4,10 ** TTXC - TABLE OF TEXT DECK COUNTS. * ENTRY = 1 WORD. * *T, 12/ N * N TEXT DECK NUMBER TTXC BSS 0 LOC 0 CMRD CON 0 CMRDECK NUMBER EQPD CON 0 EQPDECK NUMBER APRD CON 0 APRDECK NUMBER IPRD CON 0 IPRDECK NUMBER TTXCL BSS 0 END OF PROCESSED TEXT DECKS LIBD CON 0 LIBDECK NUMBER LOC *O DATA SPACE 4 ** CONFIGURATION DATA. .CCHN CON 0 CONCURRENT CHANNEL/PP COUNT .CPPL CON 0 LOGICAL CONCURRENT PP STATUS .CPU CON 0,0 CPU STATUS (PHYSICAL, LOGICAL) .CHN CON 20 CHANNEL COUNT .PPN CON 0 PP COUNT .PPS CON 0,0 PPU STATUS .PPL CON 0,0 LOGICAL PP STATUS .PPU CON 10D PP CONFIGURATION .CEL CON 0 CRITICAL ERROR LOG STATUS .DSD CON 0 DEADSTART DEVICE DATA .DCS CON 0 DISPLAY CONSOLE STATUS .APP CON 0 NEW ALTERNATE PP NUMBER .MDD CON 0 *MDD* PP NUMBER .NCP CON 11D NUMBER OF CONTROL POINTS + 1 .NPCP CON 0 NUMBER OF PSEUDO CONTROL POINTS BSPT CON 0 BUILD *SCI* PARAMETER TABLE FLAG CMCC CON /IOU/MRRD MAINTENANCE CHANNEL READ FUCTION CMDL CON 0 MODEL NUMBER C8XX CON 1 0 = CYBER 800 TYPE MAINFRAME C9LM CON 0 1 = CYBER 990 LARGE MEMORY DCPC CON 0 NONZERO IF DUAL 170-STATE CPUS WITH CACHE DCPN CON 0 NONZERO IF *DUALCPU=N* SPECIFIED DCPS CON 0 NONZERO IF DUAL-NOS-CPU SELECTED IN *CIP* DLYA CON SBNI+4 DELAY CONSTANT FOR *COMPAPP* DSFL CON 0,0 FL ADJUSTMENT FOR DSCB EMAF CON 0 EXTENDED ADDRESS MODE FLAG EMTY BSSZ 5 EXTENDED MEMORY TYPE EMFL EQU EMTY+1 EXTENDED MEMORY FIELD LENGTH / *EMBS* EMSC EQU EMTY+2 EXTENDED MEMORY SHIFT COUNT UEMZ EQU EMTY+3 UEM SIZE/100B (2 LOCATIONS) ISPF CON -1 SET POSITIVE IF CYBER 810/815/825/830 LDSH CON 0 XM SHIFT COUNT FOR LINK DEVICE MDDP CON 0 TWO PORT MUX PORT FOR *MDD* MSBD CON 0 MAXIMUM SHARED BUFFERED DEVICE COUNT MSDC CON 0 MAXIMUM SHARED DEVICE COUNT NSBD CON 0 NUMBER OF SHARED BUFFERED DEVICES PRSF CON 0 MMF *PRESET* FLAG P2CC CON 0 CPU-1 CONNECT CODE SCIP CON 0 TWO PORT MUX PORT FOR CDC 721 CONSOLE SPPC CON 2 SYSTEM CONTROL POINT PP COUNT UESC CON 0 USER EXTENDED MEMORY SHIFT COUNT VEFL CON 0 4000B IF *VE=* SPECIFIED VEMZ CON 0,0 NVE CM BLOCK SIZE/100B SPACE 4,10 ** *DFT* ALLOCATION DATA. * *T, 6/ N, 6/ M, 1/ D, 1/ T, 10/ SIZE * N = NUMBER OF MAINTENANCE REGISTER BUFFERS. * M = SIZE OF EACH M/R BUFFER. * D = 1, IF *DFT* WILL BE DEDICATED. * T = 1, IF MODEL 990. * SIZE = TOTAL SIZE OF M/R BUFFERS (N*M). DFTA VFD 6/NUMR+1,6/0 VFD 1/0,1/0,10/0 DFSZ CON 0 SIZE OF *DFT/OS* BUFFER * *DFT* DESCRIPTOR OBTAINED FROM *CTI*. DFTV CON 0 DEFAULT = *DFT* LEVEL 3, OS INITIALIZATION * CON N *DFT* VERSION (0 = VERSION 3) * (1 = VERSION 4) * (2 = VERSION 5) TITLE SUBROUTINES. IBF SPACE 4,10 ** IBF - INITIATE BUFFER PP FUNCTION. * * ENTRY (A) = FUNCTION CODE. * (T5) = PARAMETER FOR FUNCTION. * * EXIT (A) = RESPONSE FROM BUFFER PP WHERE APPLICABLE. IBF SUBR ENTRY/EXIT LMN DDDF STM AKLA SET REFRESH STATUS LMN DDDF IBFA ACN BC * UJN IBFX (RETURN ON LEVEL 3 RECOVERY) OAN BC OUTPUT REQUEST FJM *,BC WAIT FUNCTION ACCEPT LDD T5 OUTPUT PARAMETER OAN BC FJM *,BC WAIT PARAMETER ACCEPT IBFB IAN BC INPUT RESPONSE UJN IBFX RETURN IDF SPACE 4,10 ** IDF - ISSUE *DIO* REQUEST. * * ENTRY (A) = FUNCTION CODE. IDF SUBR ENTRY/EXIT ACN TC OAN TC OUTPUT REQUEST FJM *,TC WAIT FUNCTION ACCEPT UJN IDFX RETURN RTB SPACE 4,10 ** RTB - READ TAPE BLOCK. RTB SUBR ENTRY/EXIT LDN RTBF INITIATE TAPE BLOCK READ ACN TC OAN TC AJM *,TC WAIT FUNCTION ACCEPT UJN RTBX RETURN RTD SPACE 4,10 ** RTD - READ TEXT DECKS. * * ENTRY (A) = 0 TO LOAD INSTRUCTION DECK AND TEXT DECK. * .NE. 0 TO LOAD TEXT DECK ONLY. * * EXIT TO *DSE* IF CORRECT TEXT DECK NOT FOUND. * * CALLS IBF, IDF, RTB. RTD SUBR ENTRY/EXIT NJN RTD1 IF LOADING TEXT DECK ONLY RJM RTB LDD DI TRANSMIT DECK TYPE TO BUFFER PP STD T5 LDN IFBF LOAD INSTRUCTION DECK RJM IBF RTD1 LDN LTDF INITIATE SEARCH FOR TEXT DECK RJM IDF LDM TTXC,DI TRANSMIT DECK NUMBER OAN TC AJM *,TC WAIT SEARCH COMPLETE LDN ISBF LOAD TEXT DECK RJM IBF NJN RTDX IF TEXT DECK FOUND RTD2 LDD DI SET TEXT DECK NAME SHN 1 STD DI LDM RTDB,DI STM RTDC LDM RTDB+1,DI STM RTDC+1 LDC RTDC LJM DSE RTDB BSS 0 DATA 4RCMRD DATA 4REQPD DATA 4RAPRD DATA 4RIPRD RTDC DATA C*CMRDECK NOT ON TAPE.* ROV SPACE 4,10 ** ROV - READ OVERLAY. * * EXIT (T3) = BYTE COUNT FOR DATA. * (LA) = LOAD ADDRESS. * * USES T4, T6, CM - CM+4. * * CALLS IDF, RTB. ROV SUBR ENTRY/EXIT ORG ROV CON RCM EXIT TO *RCM* ON CM RECOVERY ROV1 LDN LNOF INITIATE OVERLAY LOAD RJM IDF ACN TC IAN TC INPUT WORD COUNT SBN 20 STD T3 SET BYTE COUNT SHN 2 RAD T3 LMC MXRL SET EOR STATUS STD T4 LDN 20 STD T6 ROV2 LDN 5 SKIP *PRFX* TABLE IAM CM,TC SOD T6 NJN ROV2 IF NOT *6PPM* TABLE LDN 5 ADD CM+2 SET LOAD ADDRESS STD LA LDD LA ROVB NJN ROV3 IF NOT PP RESIDENT LDN PSNI STM ROVB LDC OVL ROV3 STM ROVC SET LOAD ADDRESS ADC MXRL STM ROVD LDD T3 IAM OVL,TC INPUT DATA BLOCK ROVC EQU *-1 LDD T4 NJN ROV4 IF EOR RJM RTB READ REMAINDER OF RECORD ACN TC IAN TC INPUT WORD COUNT STD T4 ZJN ROV4 IF EMPTY BLOCK SHN 2 RAD T4 RAD T3 ADD TO TOTAL BYTE COUNT LDD T4 INPUT REMAINDER OF RECORD IAM OVL+MXRL,TC ROVD EQU *-1 ROV4 LJM ROVX RETURN CLS SPACE 4,10 ** CLS - CLEAR STORAGE. * * ENTRY (A) = WORD COUNT. * (CA - CA+1) = CM ADDRESS. * * EXIT (A) .NE. 0. * (CA - CA+1) ADVANCED. * * USES T1, T2. CLS SUBR ENTRY/EXIT SBN 1 MJN CLSX IF NULL WORD COUNT STD T2 SHN -14 SET WORD COUNT STD T1 CLS1 LDD CA CLEAR WORD SHN 14 ADD CA+1 CWD ZR AOD CA+1 ADVANCE CENTRAL ADDRESS SHN -14 RAD CA SOD T2 DECREMENT PJN CLS1 IF NO BORROW FROM NEXT BYTE AOD T2 SOD T1 PJN CLS1 IF NOT END OF CLEAR UJN CLSX RETURN DSE SPACE 4,10 ** DSE - DISPLAY ERROR. * * ENTRY (A) BITS 13 - 00 = MESSAGE ADDRESS. * BITS 15 - 14 = CC545 CHARACTER SIZE FLAGS. * * EXIT NO EXIT. * * USES T1, T2. * * MACROS CFNC, DFIM. DSE SBN 1 SET MESSAGE ADDRESS STD T1 SHN -14 LMC SLMF SELECT LEFT SCREEN CFNC DSE1 LDD T1 SET MESSAGE ADDRESS STD T2 LDN 2 OUTPUT COORDINATES OAM DSEA,CH DSE2 AOD T2 DISPLAY MESSAGE LDI T2 OAN CH NJN DSE2 CFNC THVF TRANSFER HIDDEN TO VISIBLE LDC SBNI+1 DELAY NJN *-1 DFIM (UJN *) UJN DSE1 LOOP DFIM (CON LN15) DSEA CON LN25,CH01 SPACE 4,10 ** DISPLAY SUBROUTINES. FNC DSUB SME SPACE 4,10 ** SME - SEARCH EST FOR MASS STORAGE EQUIPMENT. * * ENTRY (EQ) = PREVIOUS EST ORDINAL. * (LE) = NUMBER OF EST ENTRIES. * * EXIT (A) = BYTE 0 OF ENTRY WITH BIT 13 IN SIGN POSITION. * = 0 IF END OF EST. * (EQ) = CURRENT EST ORDINAL. * (AB - AB+4) = EST ENTRY. * * MACROS SFA. SME SUBR ENTRY/EXIT SME1 AOD EQ LMD LE ZJN SMEX IF END OF EST SFA EST,EQ CRD AB READ EST ENTRY LDD AB SHN 21-13 PJN SME1 IF NOT MASS STORAGE UJN SMEX RETURN SPACE 4,10 ** COMMON DECKS. QUAL GFP EST$ EQU 0 DEFINE *COMPGFP* ACCESS TO EST *CALL COMPGFP QUAL * .EST EQU /GFP/.EST SPACE 4,10 **** SYSTEM STATUS AND CONTROL WORDS. SPACE 4,10 .SSML BSS 0 MULTI-LEVEL SECURITY WORD VFD 3/0 RESERVED VFD 3/0 OUTPUT QUEUE SPECIAL HANDLING LEVEL VFD 3/0 RESERVED VFD 3/0 OPERATING SYSTEM SECURITY MODE VFD 16/0 RESERVED VFD 32/-0 SYSTEM ACCESS CATEGORIES SPACE 4,10 .INWL BSS 0 INTERLOCK WORD VFD 12/0 RESERVED FOR CDC VFD 12/0 RESERVED FOR CDC VFD 12/0 RESERVED FOR CDC VFD 6/0 ACTIVE *MREC* COUNT VFD 2/0 RESERVED FOR CDC VFD 1/1 DEADSTART JOB FLAG (JOB NOT COMPLETE) VFD 1/0 JOB SCHEDULER (DISABLED) VFD 1/1 DISABLE JOB SCHEDULING VFD 1/0 RESERVED FOR CDC VFD 6/0 RESERVED FOR CDC VFD 1/0 *MCH* ERROR IN PROGRESS FLAG VFD 1/0 CHECKPOINT IN PROGRESS FLAG VFD 1/0 WALL CLOCK CHIP RESET VFD 1/0 *CPD* DROP FLAG VFD 1/0 FATAL MAINFRAME ERROR VFD 1/0 SUBSYSTEM ABORT INTERLOCK SPACE 4,10 .PFNL BSS 0 PERMANENT FILE CONTROL VFD 18//PFM/DFPT DEFAULT REMOVABLE PACK TYPE VFD 18/0 RESERVED VFD 12/0 DEFAULT FAMILY EST ORDINAL VFD 12//PFM/CPTT CPU TRANSFER THRESHOLD FOR INDIRECT FILE **** TITLE ASSEMBLE TEXT DECK. ATD SPACE 4 ** ATD - ASSEMBLE TEXT DECK. * * ENTRY AT *ATD3* TO FORCE DISPLAY OF TEXT DECK FOLLOWING * A POST PROCESSING ERROR. ATD6 LDD DS ZJN ATD3 IF DISPLAY REQUESTED ATD SUBR ENTRY/EXIT ATD1 LDN 0 CLEAR KEYBOARD ASSEMBLY STD AM ATD2 RJM ROL READ 1 LINE LDD KI ZJN ATD6 IF END OF DATA RJM AKL ASSEMBLE KEYBOARD LINE LDD KM CHECK ERROR MESSAGE ZJN ATD2 LOOP IF NO ERROR LDN 1 SET KEYBOARD ASSEMBLY STD AM LDN 0 FORCE TEXT DECK DISPLAY STD DS STD DP RJM AKL ASSEMBLE KEYBOARD LINE LDN RCLF UJN ATD5 ADD CORRECTED LINE TO PP BUFFER * ENTER HERE TO FORCE DISPLAY OF TEXT DECK FOLLOWING A * POST PROCESSING ERROR. ATD3 LDN 2 SET KEYBOARD ASSEMBLY STD AM LDM 1,LA ADD *GO.* STD T1 LDC GGO STI T1 ATD4 RJM AKL ASSEMBLE KEYBOARD LINE LDD KI ZJN ATD4 IF NO ENTRY LINE LDN ANLF ADD NEW LINE ATD5 RJM IBF LDN KBUFL+1 TRANSMIT KEYBOARD BUFFER OAM KBUF,BC RJM CKB CLEAR KEYBOARD BUFFER LDD AM LMN 2 ZJN ATD4 ASSEMBLE NEXT KEYBOARD LINE LJM ATD1 PROCESS REST OF TEXT DECK ILL SPACE 4 ** ILL - INCORRECT ENTRY RETURN. ILL LDC AKLD MESSAGE = *INCORRECT ENTRY.* ILL1 STD KM * UJN ERR ERR SPACE 4,10 ** ERR - ERROR RETURN. * * ENTRY (KM) = ADDRESS OF ERROR MESSAGE. ERR LDD AM NJN AKL1 IF ERROR NOT IN TEXT DECK * UJN AKLX KBR SPACE 4 ** KBR - NORMAL KEYBOARD RETURN. KBR BSS 0 NORMAL RETURN FROM OVERLAY * UJN AKLX AKL SPACE 4 ** AKL - ASSEMBLE KEYBOARD LINE. AKL SUBR ENTRY/EXIT LDD AM CHECK ASSEMBLY MODE ZJN AKL5 IF NOT KEYBOARD DFIM (CON LDCI) AKL1 UJN AKL2 DISPLAY BUFFER AKLA CON 1 ZJN AKL3 IF NOT TIME TO REFRESH AKL2 LDN DDDF DISPLAY BUFFER STD KB RJM IBF * RJM /RCM/DRB (DISPLAY LEVEL 3 RECOVERY OPTIONS) AKLB EQU *-1 AKL3 RJM DKB DISPLAY KEYBOARD BUFFER RJM KBI CHECK KEYBOARD INPUT UJN AKL4 NORMAL RETURN - *CR* NOT ENTERED UJN AKL5 PROCESS *CR* AKL4 LDD KI NJN AKL1 IF LINE NOT EMPTY AKL5 LDD KI ZJN AKLX RETURN IF NO ENTRY LDI LA SET SYNTAX TABLE ADDRESS STD ST LDC KBUF SET KEYBOARD BUFFER ADDRESS STD KB STD T3 STD KA LDI KB LMN 1R* ZJN AKLX IF COMMENT LINE AKLC UJN *+2 SEARCH FOR MATCH * RJM /EQP/LOV LOAD CORRECT *EQP* OVERLAY CON /EQP/LOV AKL6 LDD KB RESET CHARACTER ADDRESS STD KA AKL7 AOD ST ADVANCE TABLE ADDRESS LDI ST NJN AKL8 IF NOT END OF TABLE JMP ILL PROCESS INCORRECT ENTRY AKL8 STD T2 SET TABLE ENTRY AKL9 LDI T2 COMPARE UPPER SHN -6 ZJN AKL10 IF COMPARE COMPLETE LMI KA NJN AKL6 IF NO MATCH AOD KA LDI T2 COMPARE LOWER LPN 77 ZJN AKL10 IF COMPARE COMPLETE LMI KA NJN AKL6 IF NO MATCH AOD KA AOD T2 UJN AKL9 CONTINUE COMPARE AKL10 CRD AB CLEAR ASSEMBLY BUFFER STD KM CLEAR KEYBOARD MESSAGE LDD KA (A) = CHARACTER ADDRESS LJM 1,T2 EXIT TO PROCESSOR AKLD DATA C*INCORRECT ENTRY.* CKB SPACE 4,10 ** CKB - CLEAR KEYBOARD BUFFER. * * ENTRY (KM) = KEYBOARD MESSAGE ADDRESS. * * EXIT (KI) = 0. * * USES T1. CKB SUBR ENTRY/EXIT LDD KM NJN CKBX RETURN IF MESSAGE SET STD KI CLEAR KEYBOARD INDEX STD T1 CKB1 LDN 0 CLEAR BUFFER STM KBUF,T1 AOD T1 LMN KBUFL NJN CKB1 UJN CKBX RETURN DKB SPACE 4,10 ** DKB - DISPLAY KEYBOARD BUFFER. * * ENTRY (KM) = KEYBOARD MESSAGE ADDRESS. * (KB) = KEYBOARD BUFFER REFRESH STATUS. * * USES T1, T2, YC. * * MACROS CFNC, DFIM. DKBX DCN. CH LJM * ENTRY/EXIT DKB EQU *-1 LDD KB ZJN DKBX IF NO KEYBOARD BUFFER REFRESH DFIM (CON LN50),*+1 LDC LN48 STD YC CFNC SLPF SELECT LEFT SCREEN - PRIORITY OUTPUT LDN 2 OAM. XC,CH OUTPUT COORDINATES LDD KM ZJN DKB2 IF NO MESSAGE SBN 1 SET MESSAGE ADDRESS STD T1 DKB1 AOD T1 DISPLAY MESSAGE LDI T1 OAN CH NJN DKB1 DKB2 LCN YINC ADJUST Y-COORDINATE RAD YC DFIM (CFNC EELF) ERASE TO END OF LINE DFIM (UJN DKB3) LDN 1 STD T2 LDD KI CHECK KEYBOARD INDEX ZJN DKBX IF EMPTY LINE SBN 40 PJN DKB3 IF > 32 CHARACTERS DCN. CH CFNC SLMF SELECT LEFT SCREEN - MEDIUM CHARACTERS LCN 4 DECREMENT Y RAD YC LDN 2 ADVANCE COUNT RAD T2 DKB3 LDN 2 OUTPUT COORDINATES OAM XC,CH LCN 1 SET INDEX STD T1 DKB4 LDN 2 ADVANCE INDEX RAD T1 LDM KBUF,T1 DISPLAY 2 CHARACTERS ZJN DKB5 IF END OF KEYBOARD LINE SHN 6 ADM KBUF+1,T1 OAN CH LPN 77 NJN DKB4 LOOP DKB5 CFNC EELF ERASE TO END OF LINE LDD KM ZJN DKB7 IF NO KEYBOARD MESSAGE LDD KA SET CHARACTER COUNT ADC -KBUF SHN 3 STD T1 LDD KI DFIM (CFNC BIVF) BEGIN INVERSE VIDEO SBN 40 PJN DKB6 IF > 32 CHARACTERS LDD T1 RAD T1 DKB6 LDC LN51 OAN. CH LDC CH01 RAD T1 OAN CH DFIM (LDI KA) LDN 1RA DISPLAY CURSOR SHN 6 OAN CH LDD T1 DFIM (CFNC EIVF) END INVERSE VIDEO DFIM (UJN DKB8) OAN CH LDN 1RI SHN 6 OAN CH DKB7 SOD T2 MJN DKB8 IF DISPLAY CYCLE COMPLETE LJM DKB3 LOOP DKB8 LJM DKBX RETURN KBI SPACE 4,20 *** KBI - KEYBOARD INPUT. * ALL ENTRIES ARE DISPLAYED AT THE BOTTOM OF THE LEFT SCREEN. * AS THEY ARE ENTERED. * * *CR* MUST FOLLOW ALL ENTRIES BEFORE ACTION IS TAKEN. * *BKSP* DELETES THE PREVIOUS CHARACTER TYPED. * *LEFT BLANK* DELETES THE CURRENT LINE BEING ENTERED. * *RIGHT BLANK* TOGGLES THE DISPLAY. * * ABOVE THE ENTRY DISPLAY, THE FOLLOWING MESSAGE MAY * APPEAR - * *INCORRECT ENTRY.* = ENTRY IS UNRECOGNIZABLE. * * EXIT ADVANCED IF *CR* ENTERED. * (A) = (KB) = -1 IF *LEFT BLANK* OR *BKSP* ENTERED. * (KB) = CHARACTER IF DATA ADDED TO KEYBOARD BUFFER. * * USES T1. * * CALLS CKB, IBF. * * MACROS CFNC, DFIM. KBI12 AOM AKLA FORCE DISPLAY REFRESH KBI SUBR ENTRY/EXIT LDN 0 STD KB CFNC SKIF SELECT KEYBOARD INPUT IAN CH DCN CH DFIM (UJN KBI1) ZJN KBI1 IF NO INPUT LMC 60 (PRESET CR) KBIA EQU *-1 ZJN KBIX IF SAME INPUT LMM KBIA STORE NEW INPUT KBI1 STM KBIA ZJN KBIX RETURN IF NO INPUT SBD HN PJN KBI12 IF SPECIAL CHARACTER ADD HN STD T1 LDD KI NJN KBI3 IF NOT FIRST CHARACTER LDD T1 LMN 61 ZJN KBIX RETURN IF *BKSP* LMN 1R+&61 NJN KBI3 IF NOT *+* LDN ADBF ADVANCE BUFFER KBI2 RJM IBF JMP KBIX RETURN KBI3 LDD T1 CHECK CHARACTER LMN 53 NJN KBI5 IF NOT *LEFT BLANK* STD KM CLEAR KEYBOARD MESSAGE RJM CKB CLEAR KEYBOARD BUFFER KBI4 SOD KB JMP KBIX RETURN KBI5 LMN 55&53 NJN KBI6 IF NOT *RIGHT BLANK* LDN ADDF ADVANCE DISPLAY UJN KBI2 ISSUE BUFFER PP FUNCTION KBI6 LMN 60&55 NJN KBI7 IF NOT *CR* AOM KBI ADVANCE EXIT JMP KBIX RETURN KBI7 LMN 61&60 NJN KBI8 IF NOT *BKSP* STD KM CLEAR KEYBOARD MESSAGE STM KBUF-1,KI CLEAR PREVIOUS ENTRY SOD KI JMP KBI4 RETURN KBI8 LMN 62&61 NJN KBI9 IF NOT *SPACE* LDN 1R SUBSTITUTE * * STD T1 KBI9 LDD KI NJN KBI10 IF NOT FIRST CHARACTER STD KM KBI10 LMN KBUFL ZJN KBI11 IF BUFFER FULL LDD T1 STORE CHARACTER STM KBUF,KI STD KB AOD KI KBI11 JMP KBIX RETURN ROL SPACE 4,10 ** ROL - READ ONE LINE. * * EXIT (KI) = KEYBOARD INDEX. * * CALLS CKB, IBF. ROL1 SHN 14 UNPACK DATA STM KBUF,KI SHN -14 STM KBUF+1,KI LDN 2 ADVANCE BUFFER INDEX RAD KI IAN BC ROL2 NJN ROL1 IF NOT END OF LINE OR DATA DCN BC ROL SUBR ENTRY/EXIT RJM CKB CLEAR KEYBOARD BUFFER LDN ONLF SELECT NEXT LINE INPUT RJM IBF UJN ROL2 CHECK NEXT LINE PRESENT KBUF SPACE 4 ** KBUF - KEYBOARD BUFFER. KBUF BSS 60D KBUFL EQU *-KBUF CON 0 INSURE END OF LINE TITLE PROCESSING ROUTINES. GO SPACE 4 *** GO. * CONTINUE WITH LOAD. GGO DATA C*GO.* AOD DP DISABLE *IPRDECK* DISPLAY GGO0 LDD KM NJN NXT1 IF ERROR MESSAGE LDN 1 SET NO DISPLAY STD DS GGO1 LJM ATDX EXIT FROM ASSEMBLY IPR SPACE 4,10 *** IPR. * CONTINUE LOAD WITH NO DISPLAY UNTIL *IPRDECK*. IPR DATA C*IPR.* LDN 0 SET DISPLAY FOR *IPRDECK* STD DP UJN GGO0 CHECK ERROR MESSAGE NEXT SPACE 4 *** NEXT. * CONTINUE TO NEXT ASSEMBLY. NEXT DATA C*NEXT.* LDD KM ZJN GGO1 IF NO ERROR MESSAGE NXT1 JMP KBR RETURN SPACE 4 ** OVL - OVERLAY ORIGIN. * WORD 1 OF OVERLAY = ADDRESS OF SYNTAX TABLE. * WORD 2 OF OVERLAY = ADDRESS OF SYNTAX TABLE END. * * WORD 4 = ENTRY TO PROCESSOR. OVL BSS 0 TITLE PRESET PROGRAM. PRS SPACE 4,10 ** PRS - PRESET PROGRAM. * * ENTRY (T4) = DEADSTART CHANNEL. * (T5) = INTERCOMMUNICATIONS CHANNEL. PRS BSS 0 LDN ZERL ZERO OUT ZERO WORD CWD ZR RJM CDD CHECK DISPLAY DRIVER LDN 40 EXIT *IBF* ON INACTIVE CHANNEL RAM IBFB LDD T5 BUFFER PP COMMUNICTAION CHANNEL SHN 14 ADC CTTC MODIFY CHANNEL INSTRUCTIONS RJM MCI LDM APPC ALTERNATE PP LOCATION/CHANNEL LPN 77 SHN 14 ADC CTAC MODIFY ALTERNATE PP CHANNEL INSTRUCTIONS RJM MCI LDN DPIS REQUEST DEADSTART PANEL RJM IAF LDM DBUF+DPW13 WORD 13 OF DEADSTART PANEL STD T1 LPN 77 STM TTXC+CMRD STM TTXC+EQPD SET DEFAULT EQPDECK NUMBER LMD T1 SHN 6+3 EXTRACT RECOVERY MODE SCN 4 STD RM SHN 3 SET DISPLAY STATUS LPN 1 LMN 1 STD DS STD DP LDM DBUF+DPW6 WORD 6 OF DEADSTART PANEL STD DF LDN CPTS REQUEST COMMON POINTER AREA RJM IAF LDM DBUF+CIDP+3 GET CRITICAL ERROR LOG FLAG LPN 20 STM .CEL LDD DF DEADSTART FUNCTION LPC 700 SBK 300 MJN PRS1 IF DEADSTART FROM TAPE LDD DF LPN 77 SET DISK DEADSTART STD DF LDM DBUF+OSRP FIRST TRACK OF DEADSTART FILE STM SETE PRS1 LDD T4 SET DEADSTART CHANNEL STD DH LDM TRCO,RM SET RECOVERY STATUS STD RS LPN SYMK LMN SYCM ZJN PRS2 IF CM RECOVERY LDC CPAS-1 RJM CLS LDN MSCL PRESERVE DEFAULT ERROR THRESHOLDS CWD AB PRS2 LDN EMDS REQUEST EI/MICROCODE DESCRIPTOR RJM IAF LDM MBUF ZJN PRS3 IF NO DESCRIPTOR RETURNED LDM DBUF+EINM STM DBUF+EIDT+3 MOVE EI SPECIFICATION SOM C8XX STM DBUF+EIDT+4 LDM DBUF+MNLF CLEAR MICROCODE LOADED FLAG SCN 1 STM DBUF+MNLF LDC MEBF SAVE MICROCODE/EI INFORMATION CWM DBUF+MCNM,TR PRS3 LDN 0 SELECT FIRST PROCESSOR STM MBUF LDN CPDS REQUEST CPU DESCRIPTOR RJM IAF LDM DBUF+CPOA LPN 1 SET CYBER 990 LARGE MEMORY OPTION STM C9LM LDN CMDS REQUEST CM DESCRIPTOR RJM IAF LDM DBUF+LCMS SET CM SIZE STD MZ STD CM+2 LDM DBUF+LCMS+1 STD MZ+1 STD CM+3 LDM DBUF+MCTC SAVE MEMORY CONNECT CODE RAM CMCC RJM SHO SET HARDWARE OPTIONS ZJP PRS5 IF CM RECOVERY OR CYBER 180 LDM DBUF+OPTN SET MAINFRAME OPTIONS LPC 5700 LMD TH INVERT CYBER 176 FLAG STD HO LPC 1000 DUPLICATE CYBER 176 FLAG SHN 1 RAD HO LDN 0 SELECT FIRST PROCESSOR STM MBUF LDN CPDS REQUEST CPU DESCRIPTOR RJM IAF LDM DBUF+CPOP LPN 37 EXTRACT PROCESSOR OPTIONS RAD HO LPN 7 SET PROCESSOR AVAILABLE STATUS STM .CPU LPN 4 ZJN PRS4 IF CEJ / MEJ ENABLED LDC =C*CEJ/MEJ DISABLED.* JMP DSE DISPLAY ERROR AND HANG PRS4 LDD HO LPC 4100 NJN PRS5 IF NOT CYBER 865 / 875 LDK /SCR/FCRD+/SCR/M875 OAN CHSC IAN CHSC LPN 2 SET 865/875 STATUS SHN 2-1 ADC -400 RAD HO PRS5 LDD HO CHECK CPU STATUS LPN 3 LMN 3 ZJN PRS5.1 IF NO 170 STATE CPU(S) ON LPN 1 NJN PRS6 IF CPU0 ON LDM DCPC ZJN PRS6 IF NOT DUAL 170-STATE CPUS WITH CACHE PRS5.1 LDC =C*NO CPU AVAILABLE.* JMP DSE DISPLAY ERROR AND HANG PRS6 LDN IUDS REQUEST IOU DESCRIPTOR RJM IAF LDM DBUF+PPSD SET PP SPEED STD CM+4 RAM IBUF+/BPP/CDPA LDN CSWL SAVE *MABL* DATA CWD CM * SET PP STATUS. LDM DBUF+LPP0 SET LOGICAL PP STATUS STM .PPL LDM DBUF+LPP1 STM .PPL+1 LDM DBUF+LPC1 SET LOGICALLY ON CONCURRENT PP-S STM .CPPL LDC 6000 SET PHYSICAL PP COUNT RAM DBUF+PPP0 RJM CSB STM .PPN LDC 6000 CHECK UPPER BANK RAM DBUF+PPP1 RJM CSB ZJN PRS7 IF .LE. 10 PP-S LDN 10D RAM .PPN LDN 10D ADJUST PP CONFIGURATION RAM .PPU * SET CHANNEL STATUS. LDN 34 SET CHANNEL COUNT STM .CHN PRS7 LDM C8XX NJN PRS8 IF NOT CYBER 800 TYPE MAINFRAME LDM DBUF+CHP1 RJM CSB ADN 20 ADJUST CHANNEL COUNT STM .CHN LDC 6000 SET PHYSICAL CONCURRENT CHANNEL/PP COUNT RAM DBUF+PPC1 RJM CSB STM .CCHN ZJN PRS8 IF NO CONCURRENT CHANNELS ADN 40 UJN PRS8.1 SET MAX CHANNELS FOR FIRMWARE DISPLAY PRS8 LDM .CHN SET COUNT FOR BUFFER PP PRS8.1 RAM IBUF+/BPP/GCLA * SET *MDD* STATUS. LDN CIDS REQUEST CONSOLE DESCRIPTOR RJM IAF LDM MBUF ZJN PRS9 IF NO DESCRIPTOR RETURNED LDM DBUF+SMPP SHN -6 SET *MDD* PP NUMBER STM .MDD LDM DBUF+MDDF SAVE *MDD* LOADED FLAG AND PORT STM MDDP PRS9 RJM CLK PROCESS CTI CLOCK RJM DDV DETERMINE *DFT* VERSION LDD DH LMN 2 NJN PRS10 IF DEADSTART NOT FROM CHANNEL 2 LDN 12-2 SET CHANNEL 12 FOR *STL* LOAD RAM CC1 STM CC2 LDN 12-2 RAM CC3 PRS10 LDD DH NJN PRS11 IF DEADSTART NOT ON CHANNEL 0 LDN 12-0 SET *MTR* LOAD FROM CHANNEL 12 RAM CC4 LDN 12-0 RAM CC5 PRS11 LDD DH LMN BC NJN PRS12 IF DEADSTART NOT ON BUFFER PP CHANNEL LDC 12S12+CTBC RJM MCI MODIFY BUFFER PP CHANNEL INSTRUCTIONS * MOVE ALTERNATE PP. PRS12 LDN DIDS GET DEADSTART DISK INFORMATION RJM IAF LDM DBUF+DDCH LPN 37 SHN 14 LMM DBUF+DDEU SHN 6 STM .DSD RJM EPP EXCLUDE D/S DISK CHANNEL PP LDD DH RJM EPP EXCLUDE D/S TAPE CHANNEL PP LDM .PPL LMC 6407 REMOVE PP-S 0, 1, 2, 10 PRSC EQU *-1 RJM MSB PJN PRS15 IF PP FOUND LDM .PPL+1 LMC 6000 CHECK UPPER BANK PRSD EQU *-1 RJM MSB PJN PRS14 IF PP FOUND LDC =C* NOT ENOUGH PP-S FOR DEADSTART.* JMP DSE DISPLAY ERROR AND HANG PRS14 ADN 20 SET NEW ALTERNATE PP NUMBER PRS15 STM .APP ADC MAPS*10000 MOVE PP FUNCTION RJM APM CHKAPE CHECK ALTERNATE PP ERROR * IDLE CPU(S) AWAY FROM LOCATION 0. PRS16 LDN 20 EXCHANGE PACKAGE LENGTH STD T1 LDD HN SAVE EXCHANGE PACKAGE AREA CRM MBUF,T1 LDN CPSL STORE CPU IDLE PROGRAM CWM PRSA,ON LDD HO CHECK CPU TYPE SHN 21-11 MJN PRS18 IF CYBER 176 (CPU STOPPED) LDD HO LPN 2 NJN PRS17 IF CPU 1 OFF / NON-EXISTENT LDM DCPC NJN PRS17 IF DUAL 170-STATE CPUS WITH CACHE LDD HN STORE EXCHANGE PACKAGE CWM PRSB,T1 SBN 20 EXN 1 EXCHANGE CPU 1 SBN 1 WAIT EXCHANGE COMPLETE NJN *-1 LDD HO LPN 1 NJN PRS18 IF CPU 0 OFF PRS17 LDD HN STORE EXCHANGE PACKAGE CWM PRSB,T1 SBN 20 EXCHANGE CPU 0 EXN 0 SBN 1 WAIT EXCHANGE COMPLETE NJN *-1 PRS18 LDD HN RESTORE EXCHANGE PACKAGE AREA CWM MBUF,T1 LDN 0 CLEAR LOCATION 0 CWD ZR * START BUFFER PP. RJM DCB DEFINE CM BUFFER SPACE STM IBUF+/BPP/EA .ESBL EQU ESTE*ESMX+77 CM BUFFER SIZE PLUS ROUNDING FACTOR ESTBL EQU .ESBL/100 CM BUFFER LENGTH/100B FOR EST ADK ESTBL RA/100 OF *TDDB* TABLE STD ET STM IBUF+/BPP/MA .CTBL EQU 3*CTALL+77 CM BUFFER SIZE PLUS ROUNDING FACTOR CTABL EQU .CTBL/100 CM BUFFER LENGTH/100 FOR CHANNEL TABLES ADK TDDBL+CTABL STM IBUF+/BPP/FA LDC IBUFL TRANSMIT PP BUFFER PROGRAM OAM IBUF,BC FJM *,BC WAIT OUTPUT COMPLETE DCN BC LDD EB CLEAR EST ASSEMBLY BUFFER SHN 6 STD CA+1 SHN -14 STD CA LDC ESTBL*100+TDDBL*100+CTABL*100 RJM CLS LDD LE ENTER EST CONSTANTS SHN 1 STD T1 LDD EB SHN 6 CWM EBTA,T1 LDN CFGL SET EXTENDED MEMORY MODE INTO *CFGL* CRD AB LDD HO LPC 4100 NJN PRS19 IF NOT CYBER 865/875 LDN 1 FORCE ESM MODE UJN PRS20 SET MODE IN *CFGL* PRS19 IJM SET1,CHSC IF SCR CHANNEL INACTIVE LDN /SCR/FCRD+/SCR/ESMM/14 READ SCR EXTENDED MEMORY MODE OAN CHSC IAN CHSC SHN -/SCR/ESMM+/SCR/ESMM/14*14 LPN 1 PRS20 SHN 12-0 RAD AB+3 INSERT MODE BIT LDN CFGL CWD AB LJM SET1 PROCESS TEXT DECKS SPACE 4,10 * SCRATCH BUFFER. MBUFL MAX MLED,CTALL*5,100*5 MBUF EQU 7777-MBUFL DBUF EQU MBUF+APDL CDD SPACE 4,10 ** CDD - CHECK DISPLAY DRIVER. * * ENTRY (T2) = *SCD* PP NUMBER IF CDC721 CONSOLE. * (T7) = 77. * (CM - CM+4) = 0. * * MACROS MDIN. CDD SUBR ENTRY/EXIT LDD T2 LPN 1 SET PORT NUMBER IN EST ENTRY RAM EBTA+5*DSEQ*ESTE+5*EQDE+4 LPN 1 SHN 4 STM SCIP LDD T2 EXTRACT *SCD* PP NUMBER SHN -6 STM .DCS CDD1 ZJN CDDX IF DEADSTART FROM CC545 CONSOLE RAM CDDA LPN 37 MODIFY CHANNEL INSTRUCTIONS RAM CDDB LDN 3 INITIALIZE *SCD* CDDA OAM. T7,0 CDDB DCN. 0 AOM EBTA+5*DSEQ*ESTE+5*EQAE+2 MDIN MODIFY DISPLAY GENERATORS UJP CDD1 RETURN CLK SPACE 4,10 ** CLK - PROCESS CTI CLOCK. * * EXIT (DTEL) = CTI-SUPPLIED DATE. * (TIML) = CTI-SUPPLIED TIME. * (PDTL) = CTI-SUPPLIED *FRC* VALUE. * * CALLS IAF. CLK SUBR ENTRY/EXIT LDM C8XX CHECK MAINFRAME TYPE NJN CLKX IF NOT CYBER 180 LDN CLKS REQUEST CTI CLOCK INFORMATION RJM IAF LDN PDTL CWM MBUF+10,ON WRITE CTI-SUPPLIED *FRC* VALUE ADK TIML-PDTL-1 CWM MBUF+3,ON WRITE CTI-SUPPLIED TIME ADK DTEL-TIML-1 CWM MBUF,ON WRITE CTI-SUPPLIED DATE UJN CLKX RETURN CSB SPACE 4,10 ** CSB - COUNT SET BITS. * * ENTRY (A) = COMPLEMENT OF BYTE TO COUNT. * * EXIT (A) = NUMBER OF ZERO BITS IN LOWER 12 BITS. * * USES T1, T2. CSB2 LDD T2 NUMBER OF BITS SET CSB SUBR ENTRY/EXIT LMC 7777 COMPLEMENT ENTRY STD T1 SAVE ENTRY CONDITION LDN 0 STD T2 RESET COUNTER CSB1 LDD T1 ZJN CSB2 IF NO MORE BITS SET SHN 21-0 SHIFT OFF LAST BIT STD T1 SHN 0-21 INCREMENT COUNTER RAD T2 UJN CSB1 LOOP FOR NEXT BIT DCB SPACE 4,15 ** DCB - DEFINE CM BUFFER SPACE. * * EXIT (A) = (EB) = RA/100 FOR EST BUFFER. * * USES T1, AB - AB+4. * * CALLS API, IDF. * * MACROS CFNC, CHKAPE, DFIM. DCB2 LDN CSWL FETCH *MABL* DATA CRD AB CWD ZR ADN MABL-CSWL STORE *MABL* WORD CWD AB LDD AB+2 SET BUFFER LIMIT SHN 14 LMD AB+3 MJN DCB3 IF MEMORY SIZE .GT. 64 MBYTES SBK 4001 MJN DCB4 IF MEMORY SIZE .LE. 131K WORDS DCB3 LCN 1 DCB4 ADC 4001 STM IBUF+/BPP/BL SBK EBFL SET RA FOR *EBUT* TABLE STD EB DCB SUBR ENTRY/EXIT LDD RS LPN SYMK LMN SYCM NJN DCB2 IF SYSTEM NOT RECOVERED FROM CM LDN LROF RJM IDF INITIATE SEARCH FOR *RCM* CFNC SLMF SELECT LEFT SCREEN - MEDIUM CHARACTERS DCB1 LDN DCBAL DISPLAY MESSAGE OAM DCBA,CH CFNC THCF TRANSFER HIDDEN AND CLEAR LDC SBNI+1 DELAY NJN *-1 AJM DCB1,TC IF *DIO* BUSY DCN CH * SUSPEND ALTERNATE PP. LDM .APP MODIFY *APP* CHANNEL INSTRUCTIONS SHN 14 LMC CTAC RJM MCI LDK ZERL CLEAR *DSCL* CRD CM LDK DSCL CWD CM LDK RPCS*10000+DSCL REMOVE PP FROM CHANNEL RJM APM CHKAPE CHECK ALTERNATE PP ERROR LJM ROV1 LOAD AND EXECUTE *RCM* DFIM (CON LN12) DCBA CON LN19,CH06 DATA C*RECOVERY IN PROGRESS.* DCBAL EQU *-DCBA DDV SPACE 4,10 ** DDV - DETERMINE *DFT* VERSION. * * EXIT (DFTV) = 0, IF VERSION 3 *DFT* PRESENT. * (DFSZ) = SIZE OF *DFT/OS* BUFFER, IF VERSION 4 OR * ABOVE *DFT* PRESENT. * * TO *DSE* IF THE SIZE OF THE *DFT/OS* BUFFER FROM THE * DESCRIPTOR IS GREATER THAN 7777B. * * CALLS IAF. DDV SUBR ENTRY/EXIT LDM C8XX NJN DDVX IF NOT CYBER 180 LDN DFTS GET *DFT* DESCRIPTOR RJM IAF ISSUE ALTERNATE PP FUNCTION LDM MBUF ZJN DDVX IF NO DESCRIPTOR RETURNED LDM DBUF+DFVR SAVE *DFT* VERSION SHN 21-0 PJN DDVX IF VERSION 3 *DFT* SHN 0-5 LPN 77 NJN DDV0 IF NOT *DFT* VERSION 4 LDN 4 DDV0 SBN 3 *DFT* VERISON 3 = 0 STM DFTV LDM DBUF+DFSI SAVE *DFT/OS* BUFFER SIZE NJN DDV1 IF *DFT/OS* BUFFER SIZE TOO LARGE LDM DBUF+DFSI+1 STM DFSZ UJN DDVX RETURN DDV1 LDC DDVA *DFT BUFFER TOO LARGE* LJM DSE DISPLAY ERROR AND HANG DDVA DATA C*DFT BUFFER TOO LARGE* EPP SPACE 4,10 ** EPP - EXCLUDE PP FROM THOSE TO WHICH *APP* MAY BE MOVED. * * ENTRY (A) = 7/, 5/CHANNEL. * * USES T1. EPP SUBR ENTRY/EXIT LPN 37 SHN 22-4 STD T1 SHN 4-22 LMD TH ERRNZ SHNI-1000 CODE ASSUMES *SHNI* = 1000 STM EPPA LDN 1 SET PP MASK EPPA SHN ** STM EPPB STM EPPC LDM .PPL,T1 LPC ** EPPB EQU *-1 EPP1 NJN EPPX IF PP OFF LDM EPPD,T1 STD T1 LDI T1 LPC ** EPPC EQU *-1 NJN EPP1 IF PP ALREADY DESELECTED LDM EPPC DESELECT PP RAI T1 UJN EPP1 RETURN EPPD CON PRSC,PRSD IAF SPACE 4,10 ** IAF - ISSUE FUNCTION TO ALTERNATE PP. * * ENTRY (A) = FUNCTION CODE. * * EXIT (A) = 0. * * ERROR TO *DSE* IF ALTERNATE PP ERROR. * * CALLS API. IAF SUBR ENTRY/EXIT SHN 14 LMC MBUF APPEND BUFFER ADDRESS TO REQUEST RJM API ZJN IAFX IF NO ERROR JMP DSE DISPLAY ERROR AND HANG MCI SPACE 4,10 ** MCI - MODIFY CHANNEL INSTRUCTIONS. * * ENTRY (A) = 6/ CHANNEL NUMBER, * 12/ ADDRESS OF INSTRUCTION LIST. * * USES T0, T1, T2. MCI1 STD T2 SET INSTRUCTION ADDRESS LDI T2 MODIFY INSTRUCTION SCN 37 LMD T0 STI T2 AOD T1 ADVANCE LIST ADDRESS MCI2 LDI T1 NJN MCI1 IF NOT END OF LIST MCI SUBR ENTRY/EXIT STD T1 SET LIST ADDRESS SHN -14 STD T0 SET CHANNEL UJN MCI2 ENTER LOOP MSB SPACE 4,10 ** MSB - DETERMINE MOST SIGNIFICANT BIT. * * ENTRY (A) = COMPLEMENT OF BYTE TO CHECK. * * EXIT (A) = NUMBER OF MOST SIGNIFICANT BIT, IF FOUND. * (A) .LT. 0 IF ALL BITS ARE ZERO. * * USES T1, T2, T3. MSB2 SOD T2 MOST SIGNIFICANT BIT MSB SUBR ENTRY/EXIT LMC 7777 COMPLEMENT ENTRY STD T1 SAVE ENTRY CONDITION LDN 0 STD T2 RESET MOST SIGNIFICANT BIT STD T3 RESET BIT COUNTER MSB1 AOD T3 INCREMENT BIT COUNTER LDD T1 ZJN MSB2 IF NO MORE BITS ARE SET SHN 21-0 SHIFT OFF LEAST SIGNIFICANT BIT STD T1 PJN MSB1 IF BIT IS NOT SET LDD T3 UPDATE MOST SIGNIFICANT BIT STD T2 UJN MSB1 LOOP FOR NEXT BIT RWR SPACE 4,10 ** READ / WRITE ENVIRONMENTAL CONTROL REGISTER. * * ENTRY (A) = *RMRF* TO READ REGISTER, * = *WMRF* TO WRITE REGISTER. * * EXIT (RBUF) = REGISTER CONTENTS. RWR SUBR ENTRY/EXIT LMM CMCC FAN. MR FUNCTION MAINTENANCE CHANNEL LPN 20 ERRNZ RMRF+20-WMRF CODE DEPENDS ON VALUE SHN 3 LMC IAMI+MR FORM I/O INSTRUCTION STM RWRA ACN. MR LDN 0 OAN. MR SEND MEMORY *EC* REGISTER NUMBER LDK /IOU/ECMR OAN. MR FJM. *,MR IF CHANNEL BUSY, WAIT DCN. MR ACN. MR READ / WRITE REGISTER LDN 10 RWRA IAM. RBUF,MR UJP RWRX RETURN RBUF EQU MBUF+500-10 SHO SPACE 4,15 ** SHO - SET HARDWARE OPTIONS. * * EXIT (A) = 0 IF CYBER 180 MAINFRAME OR CM RECOVERY. * (HO) = HARDWARE OPTIONS. * (DFTA) = DEFAULT *DFT* VALUES SET. * (DCPC) .NE. 0, IF DUAL-NOS-CPU CACHE MACHINE. * (DCPS) .NE. 0, IF DUAL-NOS-CPU SELECTED IN *CIP*. * CYBER 180 CPU(S) STARTED. * * ERROR TO *DSE* IF CPU MODEL NOT FOUND. * * USES HO, T2, T4, AB - AB+4. * * CALLS IAF. SHO7 LDN PMNTL SEARCH TABLE OF PROCESSOR MODELS STD T2 SHO8 SOD T2 PJN SHO9 IF NOT END OF TABLE LDC SHOH *CPU MODEL NOT FOUND* LJM DSE DISPLAY ERROR AND HANG SHO9 LDM PMNT,T2 CHECK NEXT TABLE ENTRY LPC 377 EXTRACT MODEL NUMBER STM CMDL LMC 0 PROCESSOR MODEL NUMBER SHOF EQU *-1 NJN SHO8 IF NO MATCH LDD T2 SET DEFAULT DEDICATED *DFT* STATUS SBN PMNTA SHN 0-21 SHN 13-0 RAM DFTA+1 LDM PMNT,T2 SET 990 FLAG IF 990 PROCESSOR SCN 77 SHN 12-6 RAM DFTA+1 SHN 6-12-10 STD T2 SHN 2 MULTIPLY BY 5 RAD T2 RAM DFTA LPN 77 ERRNZ NUMR-20 CODE ASSUMES *NUMR* = 20 SHN 4 MULTIPLY BY *NUMR*+1 RAD T2 RAM DFTA+1 SET DEFAULT TOTAL SIZE OF M/R BUFFERS SHOJ UJN SHO11 RETURN * PSN (IF CM RECOVERY) RJM VCC VERIFY CPU CONFIGURATION UJN SHO11 RETURN SHO10 STM SHOJ SET *PSN* LDK MABL FETCH MAINFRAME ATTRIBUTE INFORMATION CRD AB LDD AB+1 RECOVER HARDWARE OPTIONS STM VCCA STD HO LDM C8XX ZJP SHO1 IF CYBER 180 MAINFRAME SHO11 LDN 0 SHO SUBR ENTRY/EXIT LDN GPDS REQUEST GLOBAL PROCESSOR DESCRIPTOR RJM IAF LDM DBUF+CPSF CHECK FOR DUAL-NOS-CPU SELECTED LPN 10 RAM SHOB LDN MFDS REQUEST MAINFRAME DESCRIPTOR RJM IAF LDM DBUF+PCPF LPN 3 STM .CPU STM .CPU+1 PRESET LOGICAL STATUS = PHYSICAL STATUS LDD RS LPN SYMK CHECK DEADSTART LEVEL LMN SYCM ZJP SHO10 IF CM RECOVERY LDM C8XX NJN SHOX IF NOT CYBER 180 MAINFRAME STM SHOE LDM .CPU ADC 720 APPEND CME, NO STACK, CMU STATUS STD HO * START CYBER 180 CPU(S). SHO1 LDN 0 STORE IDLE PROGRAM AT LOCATION ZERO CWM SHOC,ON SHO2 AOM SHOA ADVANCE PROCESSOR MASK LMN 3 LPN 3 ZJP SHO7 IF TWO PROCESSORS CHECKED LDD HO LMN 3 CHECK HARDWARE OPTIONS SHOA LPN 0 * LPN 1 (CPU 0) * LPN 2 (CPU 1) ZJN SHO2 IF CPU NOT PRESENT STD T4 SHN -1 SET PROCESSOR NUMBER STM MBUF LDN CPDS REQUEST CPU DESCRIPTOR RJM IAF LDM DBUF+PSTA CHECK PROCESSOR STATUS LPC 1001 CHECK FOR OFF AND/OR DOWN ZJN SHO3 IF PROCESSOR ON AND UP SHO2.1 LDD T4 UPDATE CPU ON/OFF STATUS RAM .CPU+1 LDD T4 DISABLE PROCESSOR RAD HO UJP SHO2 CHECK NEXT PROCESSOR * SET UP TO START SECOND CPU ON CACHE MACHINE. SHO3 LDM DBUF+HDMN SET PROCESSOR MODEL NUMBER SHN -4 STM SHOF SHN -4 LMN 0#1 NJN SHO3.2 IF NOT P1 PROCESSOR STM ISPF SET ISMD-CAPABLE PROCESSOR FLAG SHO3.1 LJM SHO4 START CPU SHO3.2 LDM SHOA LPN 2 ZJN SHO3.1 IF NOT PROCESSING CPU 1 LDM SHOF CHECK PROCESSOR MODEL NUMBER LMC 0#3A ZJN SHO3.5 IF 960-32 LMN 0#32&0#3A ZJN SHO3.3 IF 870 LMC 0#41&0#32 ZJN SHO3.3 IF 990 MODEL B LMN 0#44&0#41 NJN SHO3.4 IF NOT 994, DO NOT START CPU SHO3.3 LDN 0 * LDN 10 (DUAL-NOS-CPU SELECTED IN *CIP*) SHOB EQU *-1 STM DCPS SET DUAL-NOS-CPU SELECTED FLAG NJN SHO3.5 IF DUAL-NOS-CPU SELECTED SHO3.4 LJM SHO2.1 DO NOT START SECOND CPU SHO3.5 LDN CPSL SET IDLE PROGRAM FOR CPU1 OF CACHE MACHINE CWM PRSA,ON STM DCPC SET DUAL 170-STATE CPUS WITH CACHE FLAG SCF. *,MR GET MAINTENANCE CHANNEL LDK RMRF READ ENVIRONMENTAL CONTROL REGISTER RJM RWR DCN. MR LDM RBUF+4 ENABLE PORT TO SECOND CPU SCN 40 STM RBUF+4 LDK WMRF WRITE *EC* REGISTER RJM RWR FJM. *,MR IF CHANNEL BUSY, WAIT DCN. MR CCF. *,MR RELEASE CHANNEL * START CPU. SHO4 LDM DBUF+MCTC START CPU STM P2CC SCF. SHO4,MR REQUEST CHANNEL FLAG LMN /IOU/MRSP FAN. MR START CPU CCF. *+2,MR UJN SHO6 CHECK NEXT PROCESSOR * PSN (NON - CM RECOVERY) SHOE EQU *-1 LDD HO LPN 10 NJN SHO6 IF CMU SIMULATION OFF LDM DBUF+CPOP LPN 10 ADJUST CMU STATUS RAD HO SHO6 LJM SHO2 CHECK NEXT PROCESSOR SHOC VFD 12/0400,18/0,15/61000,15/46000 PMNT SPACE 4,20 ** PMNT - TABLE OF PROCESSOR MODEL NUMBERS. * *T, 4/ E, 8/ M. * * E = ENTRIES PER MAINTENANCE REGISTER BUFFER. * M = PROCESSOR MODEL NUMBER. * * MODELS WHICH REQUIRE DEDICATED *DFT* STATUS AS THE DEFAULT * MUST APPEAR AT THE START OF THE TABLE. THIS INCLUDES MODELS * 96X AND 99X. PMNT BSS 0 VFD 4/6,8/0#40 CYBER 180-990 VFD 4/6,8/0#41 CYBER 180-990 MODEL B VFD 4/6,8/0#44 CYBER 180-994 VFD 4/6,8/0#3B CYBER 180-960-11 VFD 4/6,8/0#3A CYBER 180-960-31/32 PMNTA EQU *-PMNT END OF DEFAULT DEDICATED *DFT* MODELS VFD 4/5,8/0#34 CYBER 180-840 VFD 4/5,8/0#37 CYBER 180-840S VFD 4/5,8/0#33 CYBER 180-850 VFD 4/5,8/0#32 CYBER 180-860 VFD 4/5,8/0#31 CYBER 180-845 VFD 4/5,8/0#35 CYBER 180-845S VFD 4/5,8/0#30 CYBER 180-855 VFD 4/5,8/0#36 CYBER 180-855S VFD 4/3,8/0#20 CYBER 180-835 VFD 4/3,8/0#14 CYBER 180-810 VFD 4/3,8/0#13 CYBER 180-830 VFD 4/3,8/0#12 CYBER 180-825 VFD 4/3,8/0#16 CYBER 180-825S VFD 4/3,8/0#11 CYBER 180-815 VFD 4/3,8/0#15 CYBER 180-815S PMNTL EQU *-PMNT LENGTH OF TABLE SHOH DATA C*CPU MODEL NOT FOUND* VCC SPACE 4,10 ** VCC - VERIFY CPU CONFIGURATION. * * ENTRY (VCCA) = ORIGINAL (HO) FROM PRIOR DEADSTART. * * EXIT (A) = ORIGINAL (HO). * * ERROR TO *DSE* IF CPU STATE CHANGE. * * USES CM - CM+4. VCC2 LDM VCCA CHECK CPU STATE CHANGE LMD HO LPN 3 ZJN VCC3 IF CPU STATUS HAS NOT CHANGED LMN 3 NJN VCC1 IF CPU STATUSES HAVE NOT SWAPPED VCC3 LDC ** RESTORE (HO) VCCA EQU *-1 STD HO VCC SUBR ENTRY/EXIT LDN SSTL CHECK NOS/VE STATUS CRD CM LDD CM+3 SHN 0-13 NJN VCC2 IF NOS/VE DISABLED LDM VCCA CHECK CPU STATE CHANGE FOR CPU 0 LMD HO LPN 1 ZJN VCC3 IF CPU 0 AVAILABLE VCC1 LDC VCCB *CPU STATE CHANGE.* JMP DSE DISPLAY ERROR AND HANG VCCB DATA C*CPU STATE CHANGE.* SPACE 4,10 ** COMMON DECKS. QUAL API$ SET 1 SELECT ALTERNATE PP REQUEST INTERFACE APM$ SET 1 SELECT ALTERNATE PP MANAGEMENT ROUTINE QUAL * *CALL COMPAPI TRCO SPACE 4,10 ** TRCO - TABLE OF RECOVERY OPTIONS. * ENTRY = 1 WORD. * INDEXED WITH RECOVERY MODE. * *T, 12/ RO * RO RECOVERY OPTIONS TRCO BSS 0 LOC 0 CON 0 CON FLTB+SYTB CON FLTB CON JBCM+FLCM+SYCM LOC *O EBTA CON 0,0,0,2RRD,0 *RD* CON 0,0,0,0,0 CON 0,CH+4000,0,2RDS,7000 *DS* CON 0,0,0,0,0 CON 2000,0,0,2RNE,0 *NE* CON 0,0,0,7,0 CON 2000,0,0,2RTE,0 *TE* CON 0,0,0,7,0 CON 2000,0,0,2RTT,NIAC *TT* CON 0,0,0,7,0 NIAC EQU 200 DEFAULT NUMBER OF NETWORK CONNECTIONS SPACE 4,10 ERRZR BC-12 INCORRECT CHANNEL DEFINITION SPACE 4,10 ** CPU IDLE PROGRAMS. PRSA VFD 12/0400,18/CPSL,30/0 SPACE 4,10 ** EXCHANGE PACKAGE. PRSB VFD 6/0,18/CPSL,36/0 VFD 60/0 VFD 6/0,18/200,36/0 VFD 60/0 VFD 60/0 VFD 60/0 VFD 60/0 USE LITERALS TITLE PP BUFFER IDLER PROGRAM. IBUF BSS 0 QUAL BPP MACROS SPACE 4,10 ** MACRO DEFINITIONS. ** TBLM = GENERATE TABLE OF DEFAULT CONTROLWARE TYPES * TO LOAD. * * TBLM EQ * EQ = MASS STORAGE EQUIPMENT MNEMONIC. TBLM MACRO EQ VFD 12/2R_EQ VFD 12/C"FW_EQ" ENDM SPACE 4,10 ** ASSEMBLY CONSTANTS. Y545 EQU //Y545-YINC BOTTOM OF SCREEN - CC545 Y721 EQU //Y721-YINC BOTTOM OF SCREEN - CDC721 SPACE 4,10 **** DIRECT LOCATION ASSIGNMENTS. LOC 0 CON IDL-1 START ADDRESS - 1 BSS 2 CB BSS 5 DAYFILE AND SYSTEM DEFAULT FAMILY BUFFER WB BSS 5 CM WORD BUFFER BA CON 0 BUFFER ADDRESS BL CON 0 BUFFER LIMIT DB CON 0 DISPLAY BUFFER INDEX LN CON 0 LINE NUMBER LL CON 0 LINE LIMIT WC CON 0 PRU WORD COUNT SX CON 6 CONSTANT SIX DV CON TDDCL MASS STORAGE DESCRIPTOR TABLE LENGTH ON CON 1 CONSTANT ONE PA CON 0 PROCESSOR ADDRESS FD CON 0 FULL DISPLAY STATUS FP CON 0 FUNCTION PARAMETER SN CON 0 SCREEN NUMBER DN CON -0 DECK NUMBER TDBP BSS 0 TABLE OF DISPLAY BUFFER PARAMETERS CON GDH INSTRUCTION DECK DISPLAY FA CON 0 FIRST BUFFER ADDRESS FW CON 0 FIRST BUFFER LINE COUNT FI CON 0 DISPLAY INDEX CON RTL TEXT DECK DISPLAY SA CON 0 SECOND BUFFER ADDRESS SW CON 0 SECOND BUFFER LINE COUNT SI CON 0 DISPLAY INDEX CON 0 EST DISPLAY EA CON 0 EST BUFFER ADDRESS EW CON NOPE EST EQUIPMENT COUNT EI CON 0 DISPLAY INDEX CON GMD MASS STORAGE DISPLAY MA CON 0 MST PARAMETER BUFFER ADDRESS MW CON NOPE DISPLAY CONTROL CON 0 DISPLAY INDEX CON GID MASS STORAGE INITIALIZATION DISPLAY CON 0 MST PARAMETER BUFFER ADDRESS IW CON NOPE DISPLAY CONTROL CON 0 DISPLAY INDEX CON GTD MASS STORAGE ERROR THRESHOLD DISPLAY CON 0 MST PARAMETER BUFFER ADDRESS TW CON NOPE DISPLAY CONTROL CON 0 DISPLAY INDEX CON GCD CONTROLWARE STATUS DISPLAY CON 0 BUFFER ADDRESS CW CON 0 DISPLAY CONTROL CON 0 DISPLAY INDEX CON 0 END OF DISPLAYS CV CON 0 CLOCK VALUE ET CON 0 ELAPSED TIME BSS 77-* YY CON YCSH Y-COORDINATE XX CON CH01 X-COORDINATE LBUF EQU YY+2 LINE BUFFER BSS KBUFL/2 CON 0 **** IDL SPACE 4,10 ** IDL - IDLER. IDL IAN BC INPUT FUNCTION REQUEST STD T1 LDM TFCN,T1 PROCESS FUNCTION STM IDLA IAN BC INPUT PARAMETER LJM * IDLA EQU *-1 TFCN SPACE 4 ** TFCN - FUNCTION PROCESSORS. TFCN BSS 0 LOC 0 DFIM (CON RSP1) CON RSP RESET PP CON IFB INPUT FIRST BUFFER CON ISB INPUT SECOND BUFFER CON DDD DISPLAY BUFFER DATA CON UEC UPDATE EQUIPMENT COUNT CON ONL OUTPUT NEXT LINE CON RCL REPLACE CURRENT LINE CON ANL ADD NEXT LINE CON ADB ADVANCE BUFFER CON ADD ADVANCE DISPLAY CON RPS RESET POINTERS ON SECOND BUFFER LOC *L+TFCN TIDP SPACE 4,10 ** TIDP - TABLE OF INITIAL DISPLAY PROCESSORS. TIDP BSS 0 LOC 0 CMRD CON GDH CMRDECK EQPD CON EQP EQPDECK APRD CON ADP APRDECK IPRD CON GDH IPRDECK LOC *L+TIDP SPACE 4,10 ** DISPLAY SUBROUTINES. FNC DSUB RSP SPACE 4 ** RSP - RESET PP. RSP1 CFNC SLSF SELECT LEFT SCREEN - SMALL CHARACTERS DISPLA CH20,LN15,(INITIALIZING SYSTEM LOAD.) CFNC THCF TRANSFER HIDDEN AND CLEAR DFIM (CON SDCF),*+1 RSP LDC DDCF CLEAR DISPLAY CONTROLLER CFNC LDC 1000 OAN BC SBN 1 NJN *-1 DCN CH IAM 0,BC IFB SPACE 4 ** IFB - INPUT FIRST BUFFER. IFB STD DN SET DECK TYPE LDN FA UNPACK INSTRUCTION DECK RJM UTD ADN 7 SET SECOND BUFFER ADDRESS SHN -3 ADD FA STD SA LDN 0 SET DISPLAY POINTER TO FIRST BUFFER STD DB STD EA-1 DISABLE EQPDECK DISPLAYS LDM TIDP,DN SET INITIAL DISPLAY PROCESSOR STD SA-1 JMP IDL RETURN ISB SPACE 4 ** ISB - INPUT SECOND BUFFER. ISB LDN SA UNPACK TEXT DECK RJM UTD JMP IDL RETURN DDD SPACE 4,10 ** DDD - DISPLAY DEADSTART DATA. DDD LDM TDBP+3,DB SET BUFFER INDEX STD T1 LDN 1 STD SN IAN. 14 SET INITIAL CLOCK VALUE STD CV LDC SLSF SELECT LEFT SCREEN - SMALL CHARACTERS DDD1 CFNC LDM TDBP,DB SET PROCESSOR ADDRESS STD PA LDC BL01 SET Y-COORDINATE STD YY DDD3 RJM 0,PA FETCH DISPLAY LINE MJN DDD9 IF FORMAT EFFECTOR ENCOUNTERED NJN DDD6 IF NOT END OF DISPLAY DDD4 STD FD DDD5 RJM CDP COMPLETE DISPLAY PROCESSING DCN BC JMP IDL RETURN DDD6 OAM. YY,CH OUTPUT DISPLAY LINE DFIM (UJN DDD8) IAN. 14 READ CLOCK STD T0 SBD CV PJN DDD7 IF NO OVERFLOW ADC 10000 DDD7 SHN -11 ZJN DDD8 IF NOT HALF MILLISECOND ELAPSED RAD ET LDD T0 STD CV SET NEW CLOCK VALUE DDD8 AOD T1 STD FD ADVANCE FULL DISPLAY STATUS LMM TDBP+2,DB ZJN DDD4 IF END OF DATA IN BUFFER LCN YINC RAD YY ADVANCE Y-COORDINATE DFIM (ADC -Y721) ADC -Y545 PJN DDD3 IF NOT BOTTOM OF SCREEN DDD9 SOD SN MJN DDD5 IF RIGHT SCREEN DISPLAYED FJM. *,CH DCN. CH LDC SRSF SELECT RIGHT SCREEN LJM DDD1 DISPLAY RIGHT SCREEN UEC SPACE 4,10 ** UEC - UPDATE EQUIPMENT COUNT. UEC STD EW UPDATE EQUIPMENT LIMIT DCN BC STD MW STD IW STD TW JMP IDL RETURN ONL SPACE 4 ** ONL - OUTPUT NEXT LINE. ONL AOD LN ADVANCE LINE NUMBER LMD SW ZJN ONL1 IF END OF DATA LDD SA SHN 3 ADD LN READ NEXT LINE SHN 3 ONL1 CRM LBUF,SX LDN LBUFL+1 OUTPUT LINE OAM LBUF,BC AJM *,BC WAIT OUTPUT COMPLETE JMP IDL RETURN RCL SPACE 4,10 ** RCL - REPLACE CURRENT LINE. RCL LDD LN REPLACE LINE RJM ADL JMP IDL RETURN ANL SPACE 4 ** ANL - ADD NEXT LINE. ANL LDD SW ADD LINE RJM ADL ZJN ANL1 IF BUFFER FULL AOD SW ADVANCE LINE COUNT ANL1 JMP IDL RETURN ADB SPACE 4,10 ** ADB - ADVANCE BUFFER. ADB LDD FD ZJN ADB1 IF NOT FULL DISPLAY LMM TDBP+2,DB ZJN ADB1 IF END OF BUFFER LDD FD ADB1 STM TDBP+3,DB RESET BUFFER INDEX ADB2 DCN BC JMP IDL RETURN ADD SPACE 4,10 ** ADD - ADVANCE DISPLAY. ADD LDN SA-FA ADVANCE DISPLAY POINTER RAD DB LDM TDBP,DB NJN ADD1 IF NOT END OF DISPLAYS STD DB RESET FIRST DISPLAY ADD1 JMP ADB2 RETURN RPS SPACE 4,10 ** RPS - RESET POINTERS ON SECOND BUFFER. RPS STD FP LDN 0 RESET LINE NUMBER STD LN JMP ADB2 RETURN ADL SPACE 4,10 ** ADL - ADD DISPLAY LINE. * * ENTRY (A) = LINE NUMBER. * * EXIT (A) = FIRST BYTE OF NEW LINE. * * USES T1, T2. * * CALLS CLB. ADL1 IAN BC INPUT CHARACTER SHN 6 STI T2 ASSEMBLE DISPLAY LINE ADL2 IAN BC ZJN ADL3 IF END OF DATA RAI T2 AOD T2 ADVANCE LINE ADDRESS LMC LBUF+LBUFL NJN ADL1 IF LINE NOT COMPLETE ADL3 DCN BC LDD T1 CHECK LINE LIMIT LMD LL ZJN ADLX IF BUFFER FULL LDD SA SHN 3 ADD T1 STORE NEW LINE SHN 3 CWM LBUF,SX LDM LBUF ADL SUBR ENTRY/EXIT STD T1 SAVE LINE NUMBER OAN BC RJM CLB CLEAR LINE BUFFER UJN ADL2 ASSEMBLE LINE ADP SPACE 4,10 ** ADP - INITIAL APRDECK DISPLAY PROCESSOR. * * ENTRY (FP) = EST ORDINAL. * * EXIT SEE *RTL*. * (PA) = RTL. * (YY) = COORDINATE FOR NEXT TEXT DECK LINE. * * CALLS GEL, RTL. ADP SUBR ENTRY/EXIT LCN YINC RAD YY LDN EDHAA OUTPUT DISPLAY HEADER OAM EDHA,CH LDD FP GENERATE EQUIPMENT DISPLAY LINE STD T1 RJM GEL OAM YY,CH DISPLAY EQUIPMENT STATUS LCN 2*YINC RAD YY LDD SI RESTORE TEXT DECK LINE NUMBER STD T1 LDC RTL CHANGE DISPLAY PROCESSOR STD PA RJM RTL READ TEXT LINE UJN ADPX RETURN CCD SPACE 4,10 ** CCD - CONVERT CHANNEL FOR DISPLAY. * * ENTRY (A) = CHANNEL DATA. * (WB - WB+4) = EST DATA. * * EXIT (A) = (T2) = LINE ADDRESS ADJUSTED. * * USES BA. * * CALLS C2D. CCD SUBR ENTRY/EXIT STD BA LPN 40 ZJN CCD1 IF NOT A CONCURRENT CHANNEL LDN 1R &1RC CCD1 LMC 2R STI T2 AOD T2 LDD BA CONVERT CHANNEL NUMBER LPN 37 RJM C2D SOD T2 LDD BA CHECK TYPE OF CHANNEL LPN 40 ZJN CCD2 IF NOT CONCURRENT CHANNEL LDD BA SHN 0-7 EXTRACT PORT NUMBER LPN 1 ADC 2R-A CONVERT TO A OR B STI T2 AOD T2 LDC 2R. ADJUST SEPARATOR STI T2 CCD2 LDD BA CHECK CHANNEL STATE SHN 21-12 PJN CCD3 IF CHANNEL IS NOT DOWN LDC 2R* INDICATE CHANNEL DOWN STI T2 CCD3 AOD T2 ADVANCE ADDRESS UJP CCDX EXIT CDI SPACE 4,10 ** CDI - CHECK DISPLAY INDEX. * * ENTRY (T1) = DISPLAY INDEX. * (EW) = CURRENT EQUIPMENT COUNT. CDI SUBR ENTRY/EXIT LDD T1 SBD EW MJN CDIX IF INDEX BELOW LIMIT LDN 0 STD T1 SET INDEX TO FIRST PAGE OF DISPLAY STM TDBP+3,DB UJN CDIX RETURN CDP SPACE 4,10 ** CDP - COMPLETE DISPLAY PROCESSING. * * ENTRY (ET) = ELAPSED TIME FOR DISPLAY GENERATION. * * EXIT (ET) = 0. * * MACROS CFNC, DFIM. CDP SUBR ENTRY/EXIT CFNC THCF DCN. CH DFIM (UJN CDPX) LDN 21DS1 CALCULATE REFRESH DELAY SBD ET PJN CDP1 IF REFRESH TIME NOT EXCEEDED LDN 0 CDP1 SHN 10-1 POSITION DELAY VALUE CDPA EQU CDP1 ZJN CDP2 IF REFRESH CYCLE AT LIMIT SBN 1 NJN *-1 DELAY CDP2 STD ET UJN CDPX RETURN CLB SPACE 4,10 ** CLB - CLEAR LINE BUFFER. * * EXIT (T2) = LBUF. CLB SUBR ENTRY/EXIT LDN 0 CRM LBUF,SX LDC LBUF SET BUFFER ADDRESS STD T2 UJN CLBX RETURN C1D SPACE 4,10 ** C1D - CONVERT ONE DIGIT. * * ENTRY (A) = VALUE TO CONVERT. * (T2) = ADDRESS TO STORE CONVERSION. * * EXIT (A) = (T2) ADVANCED. C1D SUBR ENTRY/EXIT LPN 7 ADC 2R 0 CONVERT DIGIT STI T2 AOD T2 ADVANCE ADDRESS LDC 2R. STI T2 STORE SEPARATOR AOD T2 UJN C1DX RETURN C2D SPACE 4,10 ** C2D - CONVERT TWO DIGITS. * * ENTRY (A) = VALUE TO CONVERT. * (T2) = ADDRESS TO STORE CONVERSION. * * EXIT (A) = (T2) ADVANCED. C2D SUBR ENTRY/EXIT LPN 77 STD T0 CONVERT DIGITS SHN 3 LMD T0 SCN 70 ADC 2R00 STORE CONVERSION STI T2 AOD T2 ADVANCE ADDRESS LDC 2R. STI T2 STORE SEPARATOR AOD T2 UJN C2DX RETURN D4S SPACE 4,10 ** D4S - DISPLAY 4 DIGITS WITH LEADING ZERO SUPPRESSION. * ROUTINE ADAPTED FROM *COMDDIS*. * * ENTRY (A) = VALUE TO BE CONVERTED. * (T2) = BUFFER INDEX. * * EXIT (T2) ADVANCED. * * USES T2. D4S SUBR ENTRY/EXIT STD T0 SHN -6 ZJN D4S2 IF FIRST TWO DIGITS ARE ZERO SHN -3 ZJN D4S1 IF FIRST DIGIT IS ZERO ADN 1R0 SHN 14 D4S1 ADD T0 SHN -6 SCN 70 ADN 1R0 D4S2 STI T2 STORE UPPER DIGIT(S) AOD T2 LDD T0 ZJN D4S4 IF ALL FOUR DIGITS ARE ZERO SHN -3 ZJN D4S3 IF FIRST THREE DIGITS ARE ZERO LPN 7 ADN 1R0 SHN 6 D4S3 LMD T0 SCN 7 LMD T0 D4S4 ADN 1R0 STORE LOWER DIGIT(S) STI T2 AOD T2 LDC 2R. STORE SEPARATOR STI T2 AOD T2 LJM D4SX RETURN EQP SPACE 4,10 ** EQP - INITIAL EQPDECK DISPLAY PROCESSOR. * * EXIT SEE *GDH*. * EST DISPLAY ENABLED. * * CALLS GDH. EQP SUBR ENTRY/EXIT LDC GED ENABLE EQPDECK DISPLAYS STD EA-1 LDC GDH CHANGE PROCESSOR ADDRESS STD SA-1 RJM GDH UJN EQPX RETURN GCD SPACE 4,15 ** GCD - INITIATE CONTROLWARE STATUS DISPLAY. * * ENTRY (T1) = CHANNEL NUMBER. * (EW) = CURRENT EQUIPMENT COUNT. * * EXIT SEE *GCL*. * (A) = 0 IF NO MORE CHANNELS * (PA) = GCL. * (YY) = COORDINATE FOR NEXT DISPLAY. * * USES FP, PA, T0, T1, T2. * * CALLS GCL, REP, SCT. GCD6 RJM GCL GENERATE CONTROLWARE STATUS LINE ZJN GCDX IF NO MORE CHANNELS STD T2 LCN YINC ADJUST Y-COORDINATE RAD YY LDN EDHDA OUTPUT DISPLAY HEADER OAM EDHD,CH LDC GCL CHANGE PROCESSOR ADDRESS STD PA LDD T2 GCD SUBR ENTRY/EXIT LDD T1 NJN GCD6 IF CONTROLWARE TABLE PROCESSED GCD1 LDN CTALL STD FP LDD MA READ CONTROLWARE STATUSES ADN TDDBL SHN 6 CRM TCCS,FP GCD2 RJM REP READ EQUIPMENT PARAMETERS ZJN GCD5 IF NOT MASS STORAGE LDD WB+1 LMN 37 ZJN GCD5 IF ISMD CHANNELS NOT YET SPECIFIED LDD WB+3 RJM SCT SEARCH CONTROLWARE TABLE ZJN GCD5 IF NOT FOUND LDD WB+1 SET CHANNEL LPN 77 GCD3 STD FP LDI T2 DEFAULT CONTROLWARE FOR LOAD SBM TCCS,FP MJN GCD4 IF OTHER DEFAULT HAS PRIORITY RAM TCCS,FP GCD4 LDD WB+2 LPN 77 SHN 14 STD WB+2 SHN 6 NJN GCD3 IF NOT END OF CHANNELS GCD5 AOD T1 LMD EW NJN GCD2 IF MORE EQUIPMENT TO CHECK STD T1 SET CHANNEL NUMBER LJM GCD6 GENERATE CONTROLWARE STATUS LINE GCL SPACE 4,15 ** GCL - GENERATE CONTROLWARE STATUS DISPLAY LINE. * * ENTRY (T1) = CHANNEL NUMBER. * * EXIT (A) = 0 IF NO MORE CHANNELS. * = LENGTH OF DISPLAY LINE (INCLUDING COORDINATES). * (T1) = CHANNEL NUMBER. * (LBUF) = DISPLAY LINE. * * USES FP, T1, T2, YY. * * CALLS CLB. GCL4 AOD T2 INCREMENT ASSEMBLY ADDRESS LDD T1 LPN 40 ZJN GCL5 IF NOT A CONCURRENT CHANNEL LDN 1R &1RC GCL5 LMC 2R STI T2 AOD T2 LDD T1 CONVERT CHANNEL NUMBER LPN 37 RJM C2D LDN 4 INCREMENT POSITION RAD T2 LDM TLCS-1,FP SET CONTROLWARE RECORD TYPE STI T2 AOD T2 ADJUST POSITION LDD T2 SET LENGTH OF DISPLAY LINE SBN YY GCL SUBR ENTRY/EXIT RJM CLB CLEAR LINE BUFFER LDD T1 UJN GCL2 CONTINUE GCL1 AOD T1 GCLA LMN 0 GCL2 EQU GCLA NJN GCL3 IF MORE TO DISPLAY STM GCLB UJN GCLX RETURN GCL3 LDM TCCS,T1 ZJN GCL1 IF CONTROLWARE NOT SPECIFIED LPN 77 STD FP AOM GCLB SBN 22 NJP GCL4 IF NOT END OF LEFT SCREEN DFIM (LDC Y721) LDC Y545 ADJUST Y-COORDINATE FOR BLANK LINE STD YY SOD T1 LDN 3 UJN GCLX RETURN GCLB CON 0 TDCW SPACE 4,10 ** TDCW - TABLE OF DEFAULT CONTROLWARE. TDCW BSS 0 LIST G TBL "MSEQ" LIST * PURGMAC TBLM CON 0 END OF TABLE TLCS SPACE 4,10 ** TLCS - TABLE OF CONTROLWARE RECORD TYPES TO LOAD. TLCS BSS 0 LOC CLHT CLHT CON 2RHT LOAD HALF TRACK CONTROLWARE CNHT CON 2RNH NO LOAD HALF TRACK CONTROLWARE CLFT CON 2RFT LOAD FULL TRACK CONTROLWARE CNFT CON 2RNF NO LOAD FULL TRACK CONTROLWARE CLFM CON 2RFM LOAD FMD CONTROLWARE CNFM CON 2RNM NO LOAD FMD CONTROLWARE CLAD CON 2RAD LOAD FSC ADAPTOR CONTROLWARE CNAD CON 2RNA NO LOAD FSC ADAPTOR CONTROLWARE CLPH CON 2RPH LOAD DEMA/PFMD CONTROLWARE CNPH CON 2RNP NO LOAD DEMA/PFMD CONTROLWARE CLID CON 2RID LOAD 7255 ADAPTOR CONTROLWARE CNID CON 2RNI NO LOAD 7255 ADAPTOR CONTROLWARE CLCC CON 2RCC LOAD 7165 ADAPTOR CONTROLWARE CNCC CON 2RCN NO LOAD 7165 ADAPTOR CONTROLWARE CLND CON 2R LOAD NAD CONTROLWARE CNND CON 2RNN NO LOAD NAD CONTROLWARE CON 2R (LOAD CONTROL MODULE - N/A) CON 2R (NO LOAD CONTROL MODULE - N/A) CLM8 CON 2RM8 LOAD 7990 CONTROLWARE CNM8 CON 2RN8 NO LOAD 7990 CONTROLWARE CLCX CON 2R LOAD CCC/NIP CONTROLWARE CNCX CON 2RNX NO LOAD CCC/NIP CONTROLWARE CLCT CON 2R LOAD CCC/698 CONTROLWARE CNCT CON 2RNT NO LOAD CCC/698 CONTROLWARE LOC *L+TLCS-1 GDH SPACE 4,10 ** GDH - GENERATE DISPLAY HEADER. * * ENTRY (T1) = LINE NUMBER. * * EXIT SEE *RTL*. * (PA) = RTL. * * CALLS RTL. GDH SUBR ENTRY/EXIT LDM TDBP+1,DB SHN 6 FETCH DECK NAME CRM DHDR+2,ON LDN DHDRL DISPLAY NAME OAM. DHDR,CH LDD T1 NJN GDH1 IF NOT FIRST PAGE OF DECK AOD T1 GDH1 LDC RTL CHANGE PROCESSOR ADDRESS STD PA RJM RTL UJN GDHX RETURN GED SPACE 4,10 ** GED - INITIATE EST DISPLAY. * * EXIT SEE *GEL*. * (PA) = GEL. * (YY) = COORDINATE FOR NEXT DISPLAY LINE. * * CALLS CDI, GEL. GED SUBR ENTRY/EXIT RJM CDI CHECK DISPLAY INDEX LCN YINC RAD YY LDN EDHAA OUTPUT DISPLAY HEADER OAM EDHA,CH LDC GEL CHANGE PROCESSOR ADDRESS STD PA RJM GEL GENERATE EST DISPLAY LINE UJN GEDX RETURN GEL SPACE 4,10 ** GEL - GENERATE EST DISPLAY LINE. * * ENTRY (T1) = EST ORDINAL. * * EXIT (A) = LENGTH OF DISPLAY LINE (INCLUDING COORDINATES). * (LBUF) = DISPLAY LINE. * * USES BA, T2. * * CALLS CCD, C1D, C2D, IEL, REP. GEL5 LDD T2 SET LENGTH OF DISPLAY LINE SBN YY GEL SUBR ENTRY/EXIT RJM REP READ EQUIPMENT PARAMETERS RJM IEL INITIALIZE DISPLAY LINE ZJN GEL5 IF EQUIPMENT UNDEFINED LDD WB LPN 3 EXTRACT EQUIPMENT STATUS SHN 1 STD BA SET INDEX LDM GELA,BA STI T2 AOD T2 LDM GELA+1,BA SET STATUS IN DISPLAY LINE STI T2 AOD T2 LDD WB SHN 0-13 NJN GEL2 IF MASS STORAGE LDD WB+4 SHN -11 RJM C1D CONVERT EQUIPMENT (CONTROLLER) NUMBER AOD T2 LDD WB+4 LPN 77 UJN GEL3 CONVERT UNIT NUMBER GEL2 LDM MSTB+DVPR CONTROLLER NUMBER SHN -11 RJM C1D SOD T2 BACK UP FOR SECOND CONTROLLER DISPLAY LDM MSTB+DVPR SHN 21-5 PJN GEL2.1 IF NO SECOND CONTROLLER RJM C1D CONVERT SECOND CHANNEL CONTROLLER NUMBER UJN GEL2.2 CONVERT UNIT NUMBER GEL2.1 LDN 2 SKIP SECOND CONTROLLER FIELD RAD T2 GEL2.2 LDM MSTB+DVUN+3 CONVERT UNIT NUMBER GEL3 RJM C2D LDD WB+1 CONVERT PRIMARY CHANNEL LMN 37 ZJN GEL4 IF CHANNEL NOT SPECIFIED LDD WB+1 RJM CCD CONVERT CHANNEL NUMBER LDD WB+2 ZJN GEL4 IF NO 2ND CHANNEL RJM CCD GEL4 LJM GEL5 SET LENGTH OF DISPLAY LINE GELA SPACE 4,10 * EQUIPMENT STATUS. GELA DATA 4H ON DATA 4HIDLE DATA 4H OFF DATA 4HDOWN GID SPACE 4,10 ** GID - INITIATE MASS STORAGE INITIALIZATION DISPLAY. * * EXIT SEE *GIL*. * (A) = 0 IF END OF MASS STORAGE EQUIPMENT. * (PA) = GIL. * (YY) = COORDINATE FOR NEXT DISPLAY LINE. * * USES PA, T2, YY. * * CALLS CDI, GIL. GID SUBR ENTRY/EXIT LDN EDHCA OUTPUT DISPLAY HEADER OAM EDHC,CH RJM CDI CHECK DISPLAY INDEX RJM GIL GENERATE LINE ZJN GIDX IF NO MORE MASS STORAGE STD T2 LCN YINC ADJUST Y-COORDINATE RAD YY LDC GIL CHANGE PROCESSOR ADDRESS STD PA LDD T2 UJN GIDX RETURN GIL SPACE 4,15 ** GIL - GENERATE MASS STORAGE INITIALIZATION LINE. * * ENTRY (T1) = EST ORDINAL. * (EW) = CURRENT EQUIPMENT COUNT. * * EXIT (A) = 0 IF NO MORE MASS STORAGE EQUIPMENT. * = LENGTH OF DISPLAY LINE (INCLUDING COORDINATES). * (T1) = MASS STORAGE EST ORDINAL. * (LBUF) = DISPLAY LINE. * * USES FP, T0, T2. * * CALLS C1D, C2D, IML, SBS. GIL SUBR ENTRY/EXIT RJM IML ZJN GILX IF NO MORE MASS STORAGE EQUIPMENT LDD WB+4 SET INITIALIZATION OPTIONS LPC 7760 ZJN GIL2 IF INITIALIZATION NOT SPECIFIED STD T0 FTPQSAEB LDC GILA RJM SBS DISPLAY BIT STATUS UJN GIL3 CHECK *PF* ENTRY GIL2 LDN 4 ADVANCE POSITION RAD T2 GIL3 LDM MSTB+DVNM DETERMINE IF *PF* ENTRY ENTERED NJN GIL4 IF ENTERED LJM GIL9 SET LENGTH OF DISPLAY LINE GIL4 AOD T2 LDD WB DETERMINE DEVICE TYPE LPN 4 ZJN GIL5 IF FAMILY DEVICE LDC 2RX &2RF GIL5 LMC 2RF SET *F* OR *X* STI T2 AOD T2 LDM MSTB+DVPF+1 SET DEVICE MASK SHN -6 LPN 3 RJM C1D SOD T2 BACKSPACE OVER SEPARATOR LDM MSTB+DVPF+1 RJM C2D LDM MSTB+DVPF SET SECONDARY MASK SHN -2 LPN 3 RJM C1D SOD T2 BACKSPACE OVER SEPARATOR LDM MSTB+DVPF LPN 3 SHN 14 LMM MSTB+DVPF+1 SHN -10 RJM C2D LDC MSTB+DVNM SET FAMILY OR PACKNAME STD FP AOD T2 GIL6 LDI FP STI T2 AOD T2 AOD FP LMC MSTB+DVNM+3 NJN GIL6 IF MORE CHARACTERS TO CHECK LDM MSTB+DVNM+3 SET SEVENTH CHARACTER SCN 77 CLEAR DEVICE NUMBER STI T2 AOD T2 LDD WB DETERMINE IF FAMILY OR AUXILARY DEVICE LPN 4 ZJN GIL7 IF FAMILY DEVICE LDN 2 ADVANCE POSITION RAD T2 UJN GIL8 SET NUMBER OF CATALOG TRACKS GIL7 LDM MSTB+DVDN SET DEVICE NUMBER RJM C2D GIL8 LDM MSTB+DVPF SET NUMBER OF CATALOG TRACKS SHN -12 RJM C1D SOD T2 BACKSPACE OVER SEPARATOR LDM MSTB+DVPF SHN -4 RJM C2D GIL9 LDD T2 SET LENGTH OF DISPLAY LINE SBN YY LJM GILX RETURN GILA SPACE 4,10 * OPTION MASK. GILA CON 2RFT&2R-- CON 2RPQ&2R-- CON 2RSA&2R-- CON 2REB&2R-- CON 0 GMD SPACE 4,10 ** GMD - INITIATE MST DISPLAY. * * EXIT SEE *GML*. * (A) = 0 IF END OF MASS STORAGE EQUIPMENT. * (PA) = GML. * (YY) = COORDINATE FOR NEXT DISPLAY LINE. * * USES T2. * * CALLS CDI, GML. GMD SUBR ENTRY/EXIT LDN EDHBA OUTPUT DISPLAY HEADER OAM EDHB,CH LDD MA GET DAYFILE AND DEFAULT FAMILY EQUIPMENTS SHN 6 ADN NEEQ*TDDCL CRD CB RJM CDI CHECK DISPLAY INDEX RJM GML ZJN GMDX IF NO MORE MASS STORAGE STD T2 LCN YINC ADJUST Y-COORDINATE RAD YY LDC GML CHANGE PROCESSOR ADDRESS STD PA LDD T2 UJN GMDX RETURN GML SPACE 4,15 ** GML - GENERATE MST DISPLAY LINE. * * ENTRY (T1) = EST ORDINAL. * (EW) = CURRENT EQUIPMENT COUNT. * * EXIT (A) = 0 IF NO MORE MASS STORAGE EQUIPMENT. * = LENGTH OF DISPLAY LINE (INCLUDING COORDINATES). * (T1) = MASS STORAGE EST ORDINAL. * (LBUF) = DISPLAY LINE. * * USES BA, T2. * * CALLS IML, SBS. GML SUBR ENTRY/EXIT RJM IML ZJN GMLX IF NO MORE MASS STORAGE EQUIPMENT LDD WB LPC 3400 SET S, M, R SHN 1 STD T0 SMR......... LDD WB LPN 20 SET N SHN 10-4 RAD T0 SMRN........ LDD WB+4 LPN 10 SET A SHN 7-3 RAD T0 SMRNA....... LDD WB+4 SCN 17 ZJN GML2 IF NO INITIALIZE PENDING LDC 100 SET I RAD T0 SMRNAI...... GML2 LDM MSTB+DVPR SET P LPN 1 SHN 5 RAD T0 SMRNAIP..... LDN 4 STD BA GML3 LDM CB,BA DETERMINE DAYFILE AND FAMILY RESIDENCE LPC 777 LMD T1 NJN GML4 IF NO RESIDENCE LDM GMLC,BA SET D, C, E, B, AND/OR F RAD T0 GML4 SOD BA PJN GML3 IF MORE TO CHECK LDC GMLA RJM SBS DISPLAY BIT STATUS LDM MSTB+DVPR SET G LPN 2 SHN 12 STD T0 LDC GMLB RJM SBS DISPLAY BIT STATUS LDN 2 RAD T2 LDM MSTB+DVFA SET FILE TYPE BITS SHN 3 ADN 4 SET UNUSED BIT STD T0 LDC GMLD RJM SBS DISPLAY BIT STATUS LDD T2 SET LENGTH OF DISPLAY LINE SBN YY LJM GMLX RETURN GMLA SPACE 4,10 * STATUS MASKS. GMLA CON 2RSM&2R-- CON 2RRN&2R-- CON 2RAI&2R-- CON 2RPD&2R-- CON 2RCE&2R-- CON 2RBF&2R-- CON 0 GMLB CON 2RG-&2R-- CON 0 GMLC CON 20 CON 10 CON 4 CON 2 CON 1 * FILES MASK. GMLD CON 2RSB&2R-- CON 2RLP&2R-- CON 2RDR&2R-- CON 2ROI&2R-- CON 2RT &2R-- CON 0 GTD SPACE 4,10 ** GTD - INITIATE MASS STORAGE ERROR THRESHOLD DISPLAY. * * EXIT SEE *GTL*. * (A) = 0 IF END OF MASS STORAGE EQUIPMENT. * (PA) = GTL. * (YY) = COORDINATE FOR NEXT DISPLAY LINE. * * USES T2. * * CALLS CDI, GTL. GTD SUBR ENTRY/EXIT LDN EDHEA OUTPUT DISPLAY HEADER OAM. EDHE,CH RJM CDI CHECK DISPLAY INDEX RJM GTL GENERATE LINE ZJN GTDX IF NO MORE MASS STORAGE STD T2 LCN YINC ADJUST Y-COORDINATE RAD YY LDC GTL CHANGE PROCESSOR ADDRESS STD PA LDD T2 UJN GTDX RETURN GTL SPACE 4,15 ** GTL - GENERATE MASS STORAGE ERROR THRESHOLD LINE. * * ENTRY (T1) = EST ORDINAL. * (EW) = CURRENT EQUIPMENT COUNT. * * EXIT (A) = 0 IF NO MORE MASS STORAGE EQUIPMENT. * = LENGTH OF DISPLAY LINE (INCLUDING COORDINATES). * (T1) = MASS STORAGE EST ORDINAL. * (LBUF) = DISPLAY LINE. * * USES BA. * * CALLS D4S, IML. GTL SUBR ENTRY/EXIT RJM IML ZJN GTLX IF NO MORE MASS STORAGE EQUIPMENT LDM MSTB+DVNT RJM D4S CONVERT TRACK COUNT LDN 0 STD BA GTL1 LDM MSTB+DVTH,BA CONVERT THRESHOLD VALUE RJM D4S AOD BA ADVANCE INDEX LMN 5 NJN GTL1 IF MORE ERROR LIMITS LDD T2 SBN YY UJP GTLX RETURN IEL SPACE 4,10 ** IEL - INITIALIZE EQUIPMENT DISPLAY LINE. * * ENTRY (T1) = EST ORDINAL. * (WB - WB+4) = EST DATA. * * EXIT (A) = 0 IF EQUIPMENT UNDEFINED. * (T2) = *LBUF* ADDRESS FOR CONTINUED ASSEMBLY. * * CALLS CLB, D4S. IEL3 LDN 2 ADVANCE PAST PARTITION FIELD RAD T2 IEL SUBR ENTRY/EXIT RJM CLB LDD T1 CONVERT EST ORDINAL RJM D4S LDD WB+3 SET EQUIPMENT MNEMONIC ZJN IELX IF EQUIPMENT UNDEFINED STI T2 LDN 2 ADVANCE ASSEMBLY ADDRESS RAD T2 LDD WB SHN 21-13 PJN IEL3 IF NOT MASS STORAGE SHN 21-5-21+13 PJN IEL3 IF NOT BUFFERED DEVICE LDM ESTB+3 SHN 21-13 PJN IEL3 IF NO PARTITION NUMBER SHN 21-11-21+13 MJN IEL2 IF DOUBLE DIGIT PARTITION NUMBER SHN 0-16 RJM C1D CONVERT 1 OCTAL DIGIT IEL1 UJN IELX RETURN IEL2 SHN 4 LPN 17 RJM C2D DISPLAY 2 OCTAL DIGITS UJN IEL1 RETURN IML SPACE 4,10 ** IML - INITIALIZE MASS STORAGE DISPLAY LINE. * * ENTRY (T1) = EST ORDINAL. * (EW) = CURRENT EQUIPMENT COUNT. * * EXIT (A) = 0 IF NO MORE MASS STORAGE EQUIPMENT. * (T1) = MASS STORAGE EST ORDINAL. * * CALLS IEL, REP. IML2 RJM IEL INITIALIZE DISPLAY LINE IML SUBR ENTRY/EXIT IML1 RJM REP NJN IML2 IF MASS STORAGE EQUIPMENT FOUND AOD T1 LMD EW NJN IML1 IF MORE EQUIPMENT TO CHECK * LDN 0 UJN IMLX RETURN REP SPACE 4,10 ** REP - READ EQUIPMENT PARAMETERS. * * ENTRY (T1) = EST ORDINAL. * * EXIT (A) = 0 IF NOT MASS STORAGE. * (WB - WB+4) = EST DATA. * (MSTB) = MST DATA IF MASS STORAGE. REP SUBR ENTRY/EXIT LDD EA SHN 5 ADD T1 FETCH EST DATA SHN 1 ADK EQDE CRD WB ADK EQAE-EQDE CRM ESTB,ON LDD WB SHN 0-13 ZJN REPX IF NOT MASS STORAGE LDD MA SHN 4 ADD T1 SHN 2 ADD T1 ERRNZ TDDCL-5 CODE DEPENDS ON VALUE OF TAG CRM MSTB,DV UJN REPX RETURN RNB SPACE 4,10 ** RNB - READ NEXT BLOCK. * * ENTRY (A) = 0 IF READ INITIATED. * (WC) = WORD COUNT OF PREVIOUS BLOCK. * * EXIT (A) = (WC) = BLOCK SIZE (CM WORD COUNT). RNB2 LDN 0 INDICATE EOR RNB SUBR ENTRY/EXIT ZJN RNB1 IF READ INITIATED LDD WC LMC TPLN/5 NJN RNB2 IF EOR ACN TC LDN RTBF INITIATE READ OAN TC AJM *,TC WAIT FUNCTION ACCEPT RNB1 ACN TC IAN TC INPUT WORD COUNT STD WC UJN RNBX RETURN RTL SPACE 4,10 ** RTL - READ TEXT LINE. * * ENTRY (T1) = LINE NUMBER. * (DB) = DISPLAY BUFFER INDEX. * (YY) = Y-COORDINATE FOR LINE. * * EXIT (A) = LINE LENGTH (INCLUDING COORDINATES) * .LT. 0 IF FORMAT EFFECTOR ENCOUNTERED. * (LBUF) = LINE IMAGE. RTL1 LDN 1R -1R1 REMOVE FORMAT EFFECTOR SHN 6 RAM LBUF RTL2 LDN LBUFL+1+2 SET LINE LENGTH RTL SUBR ENTRY/EXIT LDM TDBP+1,DB SHN 3 ADD T1 READ REQUEST LINE SHN 3 CRM LBUF,SX LDD DB NJN RTL2 IF NOT INSTRUCTION DISPLAY LDM LBUF SHN -6 CHECK LINE LMN 1R1 NJN RTL2 IF NO FORMAT EFFECTOR LDD YY SBK BL01 ZJN RTL1 IF TOP OF DISPLAY * LCN 0 UJN RTLX RETURN SBS SPACE 4,10 ** SBS - SET BIT STATUS. * * ENTRY DISPLAY HARDWARE POSTIIONED AT DESIRED LOCATION. * (A) = ADDRESS OF LETTER TABLE. TABLE MUST BE * TERMINATED BY A ZERO WORD. * (T0) = BIT STATUS LEFT JUSTIFIED. * (T2) = ADDRESS TO STORE BIT STATUS. * * USES BA, FP, T0, T2. SBS1 LPC 0 SBSA EQU *-1 LMC 2R-- FORM LETTER IF BIT ON OR *-* IF BIT OFF STI T2 AOD FP ADVANCE BIT INDEX AOD T2 ADVANCE ADDRESS SBS2 LDD T0 POSITION NEXT 2 BITS SHN 2 STD T0 SHN -14 GET NEXT 2 BITS STD BA LDM SBSB,BA GET MASK STM SBSA LDI FP NJN SBS1 IF NOT END OF TABLE SBS SUBR ENTRY/EXIT STD FP SAVE TABLE ADDRESS UJN SBS2 POSITION BITS SBSB CON 0000 -- CON 0077 -X CON 7700 X- CON 7777 XX SCT SPACE 4,10 ** SCT - SEARCH CONTROLWARE TABLE. * * ENTRY (A) = EQUIPMENT TYPE (DEVICE MNEMONIC). * * EXIT (A) = (T2) = CONTROLWARE TYPE ADDRESS IN *TDCW*. * = 0 IF ENTRY NOT FOUND. * * USES T2. SCT1 LDN 2 ADVANCE TABLE ADDRESS RAD T2 SCT2 LDI T2 CHECK ENTRY ZJN SCTX IF END OF TABLE LMD T0 COMPARE DEVICE TYPE NJN SCT1 IF NO MATCH AOD T2 SCT SUBR ENTRY/EXIT STD T0 LDC TDCW SET TABLE ADDRESS STD T2 UJN SCT2 ENTER LOOP UTD SPACE 4,15 ** UTD - UNPACK TEXT DECK. * * ENTRY (A) = ADDRESS OF BUFFER POINTER. * * EXIT (A) = LINE COUNT FOR DECK. * (LL) = LINE LIMIT FOR BUFFER. * (LN) = 0. * * USES BA, T1, T2, WC, WB - WB+4. * * CALLS RNB. UTD1 LDD WB+4 NJN UTD5 IF NOT END OF LINE CRD WB UTD2 LDI T1 CHECK LINE COUNT LMD LL ZJN UTD5 IF BUFFER FULL LDI BA SHN 3 ADI T1 STORE WORD SHN 3 ADD T2 CWD WB AOD T2 ADVANCE WORD COUNT LMN 6 NJN UTD1 IF NOT SIX WORDS STD T2 AOI T1 ADVANCE LINE COUNT LDD WB+4 ZJN UTD5 IF END OF LINE UTD3 LDN 5 SKIP NEXT WORD IAM WB,TC ZJN UTD4 IF NOT END OF DATA RJM RNB UTD4 LDD WB+4 NJN UTD3 IF NOT END OF LINE UTD5 LDN 5 INPUT NEXT WORD IAM WB,TC ZJN UTD2 IF NOT END OF DATA UTD6 RJM RNB NJN UTD5 IF NOT EMPTY PRU LDI T1 OAN BC OUTPUT LINE COUNT FOR DECK DCN BC UTD SUBR ENTRY/EXIT STD BA ADN FW-FA SET LINE COUNTER ADDRESS STD T1 LDD BL SET LINE LIMIT FOR BUFFER SBI BA SHN 3 STD LL LDN 0 CLEAR LINE COUNT STD T2 STI T1 STD WB+4 STM FI-FW,T1 CLEAR BUFFER INDEX STD LN UJN UTD6 ENTER LOOP SPACE 4,10 ** DISPLAY HEADERS. DHDR CON HL03,CH01 BSS 5 DHDRL EQU *-DHDR EDHA CON YCPH,CH02 DATA H*EQUIPMENT STATUS* CON YCSH,CH02 DATA H*EST TYPE PN ST EQ UN CHANNELS-PORTS* EDHAA EQU *-EDHA EDHB CON YCPH,CH02 DATA H*MASS STORAGE STATUS* CON YCSH,CH02 DATA H*EST TYPE PN STATUS FILES* EDHBA EQU *-EDHB EDHC CON YCPH,CH02 DATA H*MASS STORAGE INITIALIZATION STATUS* CON YCSH,CH02 DATA H*EST TYPE PN OPTIONS T IAM DAM FM/PK* DATA H* DN NC* EDHCA EQU *-EDHC EDHD CON YCPH,CH02 DATA H*CONTROLWARE STATUS* CON YCSH,CH02 DATA H*CHANNEL CONTROLWARE* EDHDA EQU *-EDHD EDHE CON YCPH,CH02 DATA H*MASS STORAGE ERROR THRESHOLDS* CON YCSH,CH02 DATA H*EST TYPE PN NT VF RA LS RE UE* EDHEA EQU *-EDHE SPACE 4,10 * DISPLAY BUFFERS. DIS HERE ESTB EQU * SECOND WORD OF EST ENTRY FOR DISPLAY MSTB EQU ESTB+5 MASS STORAGE DESCRIPTOR TABLE BUFFER TCCS EQU MSTB+TDDEL CONTROLWARE TYPES TO LOAD SPACE 4,10 LBUFL EQU KBUFL/2 LINE BUFFER LENGTH ERRNZ KBUFL-60D CODE DEPENDS ON VALUE LOC *O QUAL * IBUFL EQU *-IBUF SPACE 4,10 * CHANNEL TABLES. CHTB TC CHTB BC CHTB AC SPACE 4,10 * INSTRUCTION MODIFICATION BLOCK. DIMB SPACE 4,10 ERRNG MBUF-* *SET* OVERFLOWS INTO MOVE BUFFER SPACE 4,10 * RESTORE I/O INSTRUCTIONS. RSTC SPACE 4,10 .DSE SET 0 .ILL SET 0 .KBR SET 0 TTL SET/CMR - SET SYSTEM CONFIGURATION. TITLE IDENT CMR,OVL QUAL CMR ORG OVL *COMMENT SET - SET SYSTEM CONFIGURATION. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. MACROS SPACE 4,10 ** MACRO DEFINITIONS. MTLN SPACE 4,10 ** MTLN - GENERATE TAGGED LIST OF MANAGED TABLE ENTRY COUNTS. * *N MTLN I,L * N = TABLE NAME. * I = MANAGED TABLE IDENTIFIER. * L = DEFAULT NUMBER OF ENTRIES. MACRO MTLN,N,I,L .A IFC NE,*N** N BSS 0 .2 SET N TT MICRO 1,3, N .A ELSE .B IFC NE,*I** .I EQU *-.2 CON L ENDIF ENDM SPACE 4,10 ** MAINTENANCE REGISTER REQUEST CODE SYMBOLS. QUAL RMRF EQU /IOU/MRRD-/IOU/MRRD READ WMRF EQU /IOU/MRWT-/IOU/MRRD WRITE QUAL * NVECPU SPACE 4,10 ** NVECPU - SUBROUTINES TO RESERVE CPU1 FOR NOS/VE. * * THIS MACRO PROVIDES COMMON CODE FOR *CMR* AND *RCM*. NVECPU MACRO LIST G ** RESERVE PROCESSOR FOR NOS/VE. * * USES T5, CM - CM+4. * * CALLS RWR. RPN4 CCF. *+2,MR CLEAR CHANNEL FLAG RPN SUBR ENTRY/EXIT LDM .CPU RPN1 LPN 2 ADM C8XX NJN RPNX IF NOT DUAL STATE DUAL CPU MAINFRAME SCF. RPN1,MR SET CHANNEL FLAG LDM ISPF SHN 0-13 STD T5 FORM REGISTER INDEX SHN 1 RAD T5 ZJN RPN1.1 IF CYBER 180 - 810/815/825/830 * PROCESS LEVEL 3 DEADSTART. .RCM IF DEF,RCM LDC EIBP CRD CM LDD CM SHN 21-12 PJN RPN2 IF NOT DUAL 170-STATE CPUS WITH CACHE LDD CM LPC 2177 CLEAR MONITOR, NVE AND CACHE PURGE FLAGS STD CM LDC EIBP CWD CM UJN RPN3 CLEAR CHANNEL FLAG AND RETURN RPN1.1 LDD HO LPN 1 NJN RPN3 IF FIRST CPU OFF LDN SSTL PROCESS LEVEL 3 DEADSTART CRD CM LDD CM+3 SHN 0-13 NJN RPN3 IF NOS/VE DISABLED * PROCESS LEVEL 0, 1 OR 2 DEADSTART. .RCM ELSE LDM DCPC ZJN RPN2 IF NOT DUAL 170-STATE CPUS WITH CACHE LDM DCPN NJN RPN4 IF SECOND CPU DEDICATED TO NOS RPN1.1 LDD HO LPN 1 NJN RPN4 IF FIRST CPU OFF LDM VEFL ZJN RPN3 IF NOS/VE MEMORY SPACE UNDECLARED LDD HO LPN 2 NJN RPN3 IF SECOND CPU OFF LDM P2CC LMK /IOU/MRHP HALT PROCESSOR FAN. MR LDN 2 RAD HO .RCM ENDIF * DISABLE PORT TO SECOND CPU. RPN2 LDK RMRF READ ENVIRONMENTAL CONTROL REGISTER RJM RWR DCN. MR LDM RBUF+1,T5 DISABLE PORT TO SECOND CPU SCN 40 LMN 40 STM RBUF+1,T5 LDK WMRF WRITE *EC* REGISTER RJM RWR FJM. *,MR WAIT CHANNEL EMPTY DCN. MR RPN3 LJM RPN4 CLEAR CHANNEL FLAG AND RETURN ** READ / WRITE ENVIRONMENTAL CONTROL REGISTER. * * ENTRY (A) = *RMRF* TO READ REGISTER, * = *WMRF* TO WRITE REGISTER. * * EXIT (RBUF) = REGISTER CONTENTS. RWR SUBR ENTRY/EXIT LMM CMCC FAN. MR FUNCTION MAINTENANCE CHANNEL LPN 20 ERRNZ RMRF+20-WMRF CODE DEPENDS ON VALUE SHN 3 LMC IAMI+MR FORM I/O INSTRUCTION STM RWRA ACN. MR LDN 0 OAN. MR SEND MEMORY *EC* REGISTER NUMBER LDK /IOU/ECMR OAN. MR FJM. *,MR WAIT CHANNEL BUSY DCN. MR ACN. MR READ / WRITE REGISTER LDN 10 RWRA IAM. RBUF,MR UJP RWRX RETURN RBUF EQU MBUF+500-10 LIST * ENDM ENTRY SPACE 4,10 ** ENTRY POINTS. CON TSYN-1 ADDRESS OF SYNTAX TABLE CON TSYNA ADDRESS OF END OF SYNTAX TABLE CMR SPACE 4,10 ** CMR - INITIALIZE CENTRAL MEMORY. CMR SUBR ENTRY/EXIT RJM CCP COMPLETE *CMR* PROCESSING UJN CMRX RETURN QUAL SPACE 4,10 **** ASSEMBLED VALUES. * CM TABLE LENGTHS. MTBL MTLN MTLN FOT,10 FAMILY ORDINAL TABLE MTLN FNT,23 FILE NAME TABLE MTLN EJT,620 EXECUTING JOB TABLE MTLN QFT,620 QUEUE FILE TABLE MTLN CLT,0 COMMON LIBRARIES TABLE MTLN LID,DFLDT LOGICAL ID TABLE MTLN MLS,MLTLD NOS/VE MESSAGE LINK STATUS TABLE MTLN ORT,100B MTLN EMB,EMBMN ERROR MESSAGE BUFFER MTLN * MISCELLANEOUS. INBS CON 0 INSTALLATION BLOCK SIZE **** TAXM SPACE 4,10 ** TAXM - EXTENDED MEMORY ALLOCATION TABLE. * ENTRY = 5 BYTES. * FIRST ENTRY IS FOR THIS MACHINE. * *T, TAXM 12/ID, 12/FU, 12/UEC, 12/IOBT, 12/IOB * * ID = MACHINE ID. * FU = 0 IF USER ECS TO RESIDE IN EXTENDED MEMORY EQUIPMENT. * .NE. 0 IF INTERNAL USER EXTENDED MEMORY IN UEM. * UEC = AMOUNT OF USER XM/*EMBS* TO ALLOCATE TO * MACHINE *ID*. * IOBT = TRACKS NEEDED FOR I/O BUFFERS. * IOB = AMOUNT OF SPACE/*EMBS* TO ALLOCATE TO DEMA/819/895 * BUFFERS. TAXM BSSZ 4*5 ALLOW 4 MACHINES WITH CPU ACCESS TO EM TAXML EQU *-TAXM TAXXL EQU *-TAXM EXTENDED *TAXM* LENGTH CFT SPACE 4,10 ** CFT - CONVERT EXTENDED MEMORY FL TO TRACK COUNT. * * ENTRY (A) = EXTENDED MEMORY FL/*EMBS*. * * EXIT (A) = DESIRED SPACE IN TRACKS. * (T0) = DESIRED SPACE IN TRACKS. * * USES T6, T7. CFT SUBR ENTRY/EXIT SHN 5 STD T7 SET EXTENDED MEMORY FL SHN -14 STD T6 LCN 0 TRACK COUNT = (FL * 40) / 101 STD T0 CFT1 AOD T0 ADVANCE TRACK COUNT LDC -101 RAD T7 PJN CFT1 IF NOT UNDERFLOW AOD T7 SOD T6 PJN CFT1 IF NOT END OF CONVERSION LDD T0 UJN CFTX RETURN CMS SPACE 4,20 ** CMS - CHECK MEMORY SIZES. * * CHECKS THAT CM, USER XM AND I/O BUFFER BLOCKS WILL ALL FIT * INTO THE MEMORIES DEFINED TO HOLD THEM. * * ENTRY (A) = 0 IF CHECK TO INCLUDE *XM* ALLOCATION DATA. * (PD) = 5, IF EST ORDINAL 5 DEFINED AS EXTERNAL XM. * (EN) = CPU ACCESS EXTENDED MEMORY EST ORDINAL. * (FL - FL+1) = MINIMUM CM REQUIRED. * (MZ - MZ+1) = MEMORY SIZE (FROM CTI). * (UEMZ - UEMZ+1) = UEM REQUIRED/100B. * (VEMZ - VEMZ+1) = NVE BLOCK REQUIRED/100B. * TAXM = TABLE OF EXTENDED MEMORY ALLOCATIONS. * * EXIT (A) = 0 IF NO ERRORS. * (KM) = MESSAGE ADDRESS IF ERROR. * * USES CN - CN+4, T1 - T5. * * CALLS CFT, VDA. CMS SUBR ENTRY/EXIT NJP CMS10 IF NOT CHECKING *XM* ALLOCATION DATA CRD T1 CRD CN LDD PD ZJN CMS3 IF NO POSSIBLE LINK DEVICE ADD EN SBN 2*LDEQ+1 MJN CMS3 IF NOT BOTH A LINK DEVICE AND A CPU DEVICE AOD CN UJN CMS3 ENTER LOOP * ACCUMULATE TOTALS FOR USER XM AND I/O BUFFERS. * IF BOTH A LINK DEVICE AND A CPU ACCESS EXTENDED MEMORY DEVICE * ARE DEFINED, THE TOTALS MUST BE KEPT SEPARATE. ALL *XM* * ENTRIES FOR OTHER MACHINES ARE DEFINING SPACE IN THE LINK * DEVICE. CMS1 LDD T2 NJN CMS2 IF NOT THIS MACHINE-S ENTRY LDD CN ZJN CMS2 IF NOT TWO EXTENDED MEMORY EQUIPMENTS LDD T4 SAVE USER XM TRACK COUNT FOR THIS MACHINE STD CN+1 LDN ZERL CLEAR TOTALS FOR LINK DEVICE CRD T1 CMS2 LDN 5 ADVANCE INDEX RAD T2 LMN TAXML ZJN CMS7 IF END OF ALLOCATION TABLE CMS3 LDM TAXM,T2 CMS4 ZJN CMS2 IF EMPTY ENTRY LDM TAXM+1,T2 NJN CMS5 IF USER XM IN UEM WITH NO EST ENTRY LDM TAXM+2,T2 RJM CFT CONVERT TO TRACK COUNT RAD T4 ACCUMULATE USER XM TRACKS NEEDED SHN -13 NJN CMS6 IF TOO MUCH DEFINED CMS5 LDM TAXM+3,T2 ACCUMULATE TOTAL I/O BUFFER TRACKS NEEDED RAD T1 LDM TAXM+4,T2 ACCUMULATE TOTAL I/O BUFFER SPACE NEEDED RAD T3 SHN -14 ZJP CMS1 IF NO OVERFLOW CMS6 LDC 2RXM *XM ALLOCATION ERROR.* LJM CMS14 SET MESSAGE ADDRESS * CHECK EXTENDED MEMORY FIT. CMS7 LDD HO SHN 21-11 PJN CMS8 IF NOT CYBER 176 AOD T5 COUNT 176 TRACK CMS8 LDD PD NJN CMS9 IF EQUIPMENT 5 EM DEVICE LDD EN ZJN CMS10 IF NO EST ENTRY CMS9 RJM VDA VERIFY DEVICE ALLOCATION MJN CMS6 IF INSUFFICIENT SPACE LDD CN ZJN CMS10 IF NOT TWO EXTENDED MEMORY EQUIPMENTS LDM TAXM+3 TRACK COUNT FOR I/O BUFFER SPACE STD T1 LDD CN+1 TRACK COUNT FOR USER XM STD T4 LDD EN RJM VDA VERIFY DEVICE ALLOCATION MJN CMS6 IF INSUFFICIENT SPACE * CHECK MAIN MEMORY FIT. CMS10 LDM UEMZ+1 ADM UEMZ ZJN CMS11 IF NO UEM DEFINED LDD MZ+1 ADJUST CM SIZE FOR 1000B WORD UEM BOUNDARY LPN 7 CMS11 ADM VEMZ+1 ACCUMULATE TOTAL MAIN MEMORY REQUIRED ADM UEMZ+1 ADD FL+1 STD T2 SHN -14 ADM VEMZ ADM UEMZ ADD FL STD T1 LDD MZ+1 CHECK AGAINST SIZE RETURNED BY *CTI* SBD T2 PJN CMS12 IF NO BORROW AOD T1 PROPAGATE BORROW CMS12 LDD MZ SBD T1 SHN -21 ZJN CMS15 IF IT ALL FITS LDC 2RCM CMS14 STM CMSA LDC CMSA STD KM SET MESSAGE ADDRESS CMS15 LJM CMSX RETURN CMSA DATA C*CM ALLOCATION ERROR.* VDA SPACE 4,10 ** VDA - VALIDATE DEVICE ALLOCATION. * * ENTRY (A) = EST ORDINAL TO VALIDATE. * (T1) = TRACKS OF I/O BUFFERS DEFINED. * (T4) = TRACKS OF USER EXTENDED MEMORY DEFINED. * (T5) = 1, IF MACHINE IS 176. * * EXIT (A) .LT. 0 IF DEFINED TRACKS WILL NOT FIT. * * CALLS STA. VDA SUBR ENTRY/EXIT RJM /EQP/STA LDD T4 ZJN VDA2 IF NO EXTERNAL USER XM DEFINED AOD T4 COUNT USER XM SYSTEM SECTOR TRACK VDA2 LDM /EQP/TDDB+DVNT SBD T1 TRACK COUNT FOR I/O BUFFER SPACE SBD T4 TRACK COUNT FOR USER XM SPACE SBD T5 176 SPACE SBN 2 LABEL AND CE TRACKS UJN VDAX RETURN EQPL BSS 0 *EQP* LOAD ADDRESS QUAL * SPACE 4,10 ** TSYN - SYNTAX TABLE. TSYN BSS 0 CON BSP CON CLT CON DFT CON DUALCPU CON EJE CON EMB CON EQP CON FNE CON FOE CON INB CON IPD CON LIB CON LIE CON MID CON MCM CON MLS CON NAME CON NCP CON OPS CON ORT CON PCP CON PPU CON QFE CON VEE CON VERSION TSYNA CON 0 CON NEXT CON IPR CON 0 END OF TABLE CCP SPACE 4,10 ** CCP - COMPLETE *CMR* PROCESSING. * * SYSTEM NAME AND VERSION ARE SAVED IN CENTRAL MEMORY NOW, * INSTEAD OF WAITING UNTIL *ICM*, TO MAKE ROOM IN *EQP*. * THE *NOS/VE* PROCESSOR IS RESERVED IF REQUIRED, AND THE * *EQP* OVERLAYS ARE READ IN AND WRITTEN TO CENTRAL MEMORY. CCP SUBR ENTRY/EXIT LDN 6 STD T1 LDN SYTL STORE SYSTEM NAME, VERSION CWM .NME,T1 LDC RJMI FORCE OVERLAY LOADS FOR *EQPDECK* ENTRIES STM AKLC RJM RPN RESERVE PROCESSOR FOR *NVE* LDN 3*EQXL LOAD *EQ1*, *EQ2* AND *EQ3* STD T5 LDC EQXL*100 SET NUMBER OF WORDS TO READ STD T7 CCP1 RJM ROV LDD EB SBD T5 SHN 6 CWM EQXO,T7 LDD T5 SBN EQXL STD T5 NJN CCP1 IF MORE OVERLAYS UJN CCPX RETURN **** OPERATING SYSTEM NAME AND VERSION. .NME DATA C* CDC NETWORK OPERATING SYSTEM.* BSSZ .NME+24-* VER170 MICRO 2,18,$"VER170"$ REMOVE LEADING/TRAILING SPACES .VER DATA C*"VER170"* BSSZ .VER+12-* **** ERRNG /EQP/EQXO-* OVERFLOW INTO *EQ1*/*EQ2*/*EQ3* OVERLAYS SPACE 4,10 ** COMMON SUBROUTINES. AODSUB ASDSUB ASNSUB CDRSUB NVECPU TITLE CM TABLE PROCESSORS. EJE SPACE 4,10 *** EJT=XXXX. * SET NUMBER OF EJT ENTRIES = XXXX. * DEFAULT = VALUE ASSEMBLED WITH TAG *.EJT*. EJE DATA C*EJT=* LDN .EJT UJN QFE1 PROCESS EJT DEFINITION FOE SPACE 4,10 *** FOT=XXX. * SET NUMBER OF FOT ENTRIES = XXX. * DEFAULT = VALUE ASSEMBLED WITH TAG *.FOT*. FOE DATA C*FOT=* LDN .FOT UJN QFE1 PROCESS FOT DEFINITION FNE SPACE 4,10 *** FNT=XXXX. * SET NUMBER OF FNT ENTRIES = XXXX. * DEFAULT = VALUE ASSEMBLED WITH TAG *.FNT*. FNE DATA C*FNT=* LDN .FNT UJN QFE1 PROCESS FNT DEFINITION ORT SPACE 4,16 *** ORT=XXX. * SET NUMBER OF ORT ENTRIES = XXX. * DEFAULT = VALUE ASSEMBLED WITH TAG *.ORT*. ORT DATA C*ORT=* LDN .ORT UJN QFE1 PROCESS ORT DEFINITION QFE SPACE 4,10 *** QFT=XXXX. * SET NUMBER OF QFT ENTRIES = XXXX. * DEFAULT = VALUE ASSEMBLED WITH TAG *.QFT*. QFE DATA C*QFT=* LDN .QFT QFE1 STD T7 SAVE INDEX RJM ASD ASSEMBLE NUMBER OF TABLE ENTRIES SBN 3 MJN QFE2 IF INCORRECT VALUE SBN 101-3 MJN QFE3 IF CORRECT VALUE FOR ALL TABLES LDD T7 LMK .FOT NJN QFE3 IF NOT DEFINING FOT QFE2 JMP ILL PROCESS INCORRECT ENTRY QFE3 LDD AB+4 SET ENTRY COUNT STM MTBL,T7 JMP KBR RETURN CLT SPACE 4,10 *** CLT=XXX. * SET NUMBER OF CLT ENTRIES = XXX. * DEFAULT = VALUE ASEMBLED WITH TAG *.CLT*. CLT DATA C*CLT=* LDN .CLT UJN QFE1 PROCESS CLT DEFINITION BSP SPACE 4,10 *** BSP=X. * SPECIFIES WHETHER OR NOT TO BUILD THE *SCI* PARAMETER * TABLE. FOR COMPATIBILITY REASONS, *BSP=N.* MUST BE * SPECIFIED WHEN RUNNING A DUAL STATE ENVIRONMENT IN * WHICH THE NOS/VE PSR LEVEL IS 688 OR EARLIER. * DEFAULT = BUILD *SCI* PARAMETER TABLE. BSP DATA C*BSP=* LDM C8XX NJN BSP1 IF NOT DUAL STATE MAINFRAME LDI KA SHN 6 LMM 1,KA LMC 2RY. ZJN BSP3 IF BUILD TABLE SPECIFIED LMC 2RN.&2RY. ZJN BSP2 IF DO NOT BUILD SPECIFIED BSP1 JMP ILL PROCESS INCORRECT ENTRY BSP2 LDN 1 SET FLAG TO NOT BUILD TABLE BSP3 STM BSPT JMP KBR RETURN DFT SPACE 4,10 *** DFT=X. * SET/CLEAR *DFT* DEDICATED MODE. * * X = *N* TO CLEAR DEDICATED MODE, * X = *D* TO SET DEDICATED MODE. * * DEFAULT IS NON-DEDICATED MODE, UNLESS THE *VE* ENTRY IS * SPECIFIED. DFT DATA C*DFT=* LDI KA GET FIRST CHARACTER LMN 1RN ZJN DFT1 IF NOT DEDICATED MODE LMN 1RN&1RD NJN DFT2 IF INCORRECT ENTRY LDC 4000 DFT1 STD T3 AOD KA GET NEXT CHARACTER LDI KA LMN 1R. NJN DFT2 IF NOT TERMINATED BY A *.* LDM DFTA+1 LPC 3777 LMD T3 SAVE DEDICATED MODE STM DFTA+1 JMP KBR RETURN DFT2 JMP ILL PROCESS INCORRECT ENTRY DUALCPU SPACE 4,10 *** DUALCPU=X. * SET DUAL CPU OPERATING MODE FOR DUAL STATE. * * X = *N* TO DEDICATE SECOND CPU TO *NOS*. * X = *V* TO DEDICATE SECOND CPU TO *NOS/VE*. * * DEFAULT IS TO DEDICATE SECOND CPU TO *NOS/VE*. THE FIRST * CPU IS ALWAYS SHARED. ONLY ALLOWED ON CY960-32. DUALCPU DATA C*DUALCPU=* LDM CMDL CHECK CPU MODEL NUMBER LMC 0#3A NJN DUA2 IF NOT 960/970 LDD HO LPN 2 NJN DUA2 IF CPU 1 OFF / NONEXISTANT LDI KA GET FIRST CHARACTER LMN 1RV ZJN DUA1 IF *DUALCPU=V* LMN 1RN&1RV NJN DUA2 IF NOT *DUALCPU=N* LDN 1 DUA1 STD T3 SAVE DUAL CPU FLAG AOD KA GET NEXT CHARACTER LDI KA LMN 1R. NJN DUA2 IF NOT TERMINATED BY A *.* LDD T3 SET DUAL CPU FLAG STM DCPN JMP KBR RETURN DUA2 JMP ILL PROCESS INCORRECT ENTRY EMB SPACE 4,16 *** EMB=XXXX. * SET NUMBER WORDS FOR EMB = XXXX. * DEFAULT = VALUE ASSEMBLED WITH TAG *.EMB*. * MINIMUM = VALUE DEFINED IN *PPCOM* AS *EMBMN*. * MAXIMUM = VALUE DEFINED IN *PPCOM* AS *EMBMX* (7777B). EMB DATA C*EMB=* RJM ASD ASSEMBLE DIGITS ADC -EMBMN MJN EMB1 IF TABLE LENGTH .LT. *PPCOM* MINIMUM LDD AB ADD AB+1 ADD AB+2 ADD AB+3 NJN EMB1 IF TABLE LENGTH .GT. 7777B LDD AB+4 STM .EMB+MTBL SET TABLE LENGTH JMP KBR RETURN EMB1 JMP ILL PROCESS INCORRECT ENTRY EQP SPACE 4,10 *** EQP=NN. * * BUILD SYSTEM WITH SPECIFIED EQPDECK. * OMITTED. USE EQPDNN, WHERE NN IS THE SAME NUMBER * AS THE CMRDECK USED. * EQP=NN. USE RECORD NAMED EQPDNN. EQP DATA C*EQP=* LDN EQPD UJN IPD1 SET DECK NUMBER IPD SPACE 4,10 *** IPD=NN. * ASSEMBLE INSTALLATION PARAMETER DECK NN. * DEFAULT = ASSEMBLE FIRST IPRDECK RECOGNIZED. IPD DATA C*IPD=* LDN IPRD IPD1 STD T7 SET TABLE INDEX RJM ASD ASSEMBLE DECK NUMBER SHN -6 ZJN IPD2 IF VALID DECK NUMBER JMP ILL PROCESS INCORRECT ENTRY IPD2 LDD AB+4 SET DECK NUMBER STM TTXC,T7 IPD3 JMP KBR RETURN INB SPACE 4,10 *** INB=NNNN. * SET THE LENGTH OF THE INSTALLATION BLOCK. * DEFAULT = 0. * MAXIMUM = 7777B. INB DATA C*INB=* RJM ASD ASSEMBLE DIGITS STM INBS JMP KBR RETURN LIB SPACE 4,10 *** LIB=NN. * BUILD SYSTEM WITH SPECIFIED LIBDECK. * OMITTED. USE RECORD NAMED *LIBD00*. * LIB=NN. USE RECORD NAMED *LIBDNN*. LIB DATA C*LIB=* LDN LIBD UJN IPD1 SET DECK NUMBER LIE SPACE 4,10 *** LDT=NNNN. * * SET THE LENGTH OF THE LID TABLE, NOT INCLUDING THE HEADER. * THE NUMBER OF WORDS MUST BE .LE. MXLDT, AND .GE. MNLDT. LIE DATA C*LDT=* RJM ASD ASSEMBLE DIGITS SBK MNLDT MJN LIE1 IF TABLE LENGTH TOO SMALL SBK MXLDT+1-MNLDT PJN LIE1 IF TABLE LENGTH TOO LARGE AOD AB+4 ADD A WORD FOR TABLE HEADER STM .LID+MTBL SET TABLE LENGTH JMP KBR RETURN LIE1 JMP ILL PROCESS INCORRECT ENTRY MID SPACE 4,10 *** MID=XX. * * SET MACHINE IDENTIFICATION MNEMONIC = XX. * XX MUST BE 2 ALPHANUMERIC CHARACTERS. * DEFAULT VALUE = AA. MID DATA C*MID=* SOD KA LDN 3 ASSEMBLE ID RJM ASN LDD T0 SBN 2 NJN MID1 IF .NE. 2 CHARACTERS LDI KA CHECK END OF ENTRY LMN 1R. ZJN MID2 IF TERMINATOR FOUND MID1 JMP ILL PROCESS INCORRECT ENTRY MID2 LDD CM SET MACHINE ID STD ID JMP KBR RETURN MCM SPACE 4,10 *** MINCM=XXXX. * SET THE MINIMUM REQUIRED AMOUNT OF CM FL TO XXXX HUNDRED * WORDS. THIS AMOUNT OF CM + UEM SIZE + NVE SIZE MUST BE * .LE. THE PHYSICAL MEMORY AVAILABLE (FROM *CTI*). THE * ACTUAL AMOUNT OF MEMORY USED AS CM WILL BE PHYSICAL SIZE - * UEM SIZE - NVE SIZE. FOR NON-CME MAINFRAMES, UEM SIZE * IS ZERO. MCM DATA C*MINCM=* RJM ASD ASSEMBLE SIZE LDD FL SAVE PREVIOUS VALUE STD AB LDD FL+1 STD AB+1 LDD AB+3 SET MINCM SIZE STD FL LDD AB+4 STD FL+1 LDN 1 RJM CMS CHECK MEMORY SIZES ZJN MCM2 IF VALID MCM1 LDD AB RESTORE PREVIOUS VALUE STD FL LDD AB+1 STD FL+1 JMP ERR DISPLAY ERROR MCM2 LDD AB+3 CHECK FOR MINCM .LT. ABSOLUTE MINIMUM SHN 14 LMD AB+4 ADC -MEMS PJN MCM3 IF CORRECT MEMORY SIZE LDC CMSA *CM ALLOCATION ERROR.* STD KM SET ERROR MESSAGE UJN MCM1 ERROR EXIT MCM3 JMP KBR RETURN SPACE 4,10 *** MLST=NN. * SET SIZE OF MESSAGE LINK STATUS TABLE. THE *MLST* IS USED * TO COMMUNICATE MESSAGE LINK INTERFACE (*MLI*) STATUS FROM * *NOS/VE* TO *NVE*. SIZE MAY RANGE FROM 0 TO MLTLM. MLS DATA C*MLST=* RJM ASD ASSEMBLE DIGITS SBK MLTLM+1 MJN MLS1 IF TABLE LENGTH IN RANGE JMP ILL PROCESS INCORRECT ENTRY MLS1 LDD AB+4 STM .MLS+MTBL SET TABLE LENGTH JMP KBR RETURN NAME SPACE 4,10 *** NAME=CCC-CCC * SET SYSTEM DATE LINE NAME = CCC-CCC. * (MAXIMUM OF 38 CHARACTERS ALLOWED.) NAME DATA C*NAME=* LDC 2*19DS12+.NME NME1 STD T3 SET BUFFER ADDRESS SHN -14 STD T1 SHN -1 SET BUFFER LIMIT ADD T3 STD T2 LDD KI SET KEYBOARD BUFFER LIMIT RAD KB NME2 SOD KB CHECK LAST CHARACTER LDI KB ZJN NME2 IF NULL LMN 1R ZJN NME2 IF BLANK LMN 1R.&1R ZJN NME3 IF *.* AOD KB LDN 1R. STI KB NME3 AOD KB CHECK COMMAND LENGTH SBD KA SBD T1 MJN NME5 IF .LT. LIMIT ZJN NME5 IF .EQ. LIMIT NME4 JMP ILL PROCESS INCORRECT ENTRY NME5 LDI KA PACK CHARACTER DATA SHN 6 LMM 1,KA MOVE COMMAND TO BUFFER STI T3 LDN 2 ADVANCE KEYBOARD BUFFER ADDRESS RAD KA AOD T3 ADVANCE BUFFER ADDRESS LMD T2 NJN NME5 IF NOT COMMAND LIMIT JMP KBR RETURN NCP SPACE 4,10 *** NCP=X. * SET NUMBER OF CONTROL POINTS = X. (X = 2 - NCPS-1) * DEFAULT = 12B. NCP DATA C*NCP=* RJM ASD ASSEMBLE DIGITS SBN MNCP MJN NME4 IF .LT. 2 CONTROL POINTS SBN NCPS-MNCP+1 PJN NME4 IF .GT. MAXIMUM ALLOWED ADN NCPS+2 SET NUMBER OF CONTROL POINTS STM .NCP NCP1 JMP KBR RETURN OPS SPACE 4,10 *** OPSECM=N. * SELECTS SECURITY MODE OF SYSTEM. * N SECURITY MODE (0-3). * DEFAULT = 0. OPS DATA C*OPSECM=* RJM ASD ASSEMBLE DIGITS SBN 4 PJN OPS1 IF INCORRECT VALUE LDM .SSML SET NEW SECURITY MODE SCN 7 LMD AB+4 STM .SSML JMP KBR RETURN OPS1 JMP ILL PROCESS INCORRECT ENTRY PCP SPACE 4,10 *** PCP=XXX. * SET NUMBER OF PSEUDO CONTROL POINTS = XXX. * DEFAULT = 0. PCP DATA C*PCP=* RJM ASD ASSEMBLE PCP COUNT SBK NPPS+1 MJN PCP1 IF .LE. MAXIMUM ALLOWED JMP ILL PROCESS INCORRECT ENTRY PCP1 LDD AB+4 SET PCP COUNT STM .NPCP JMP KBR RETURN PPU SPACE 4,10 *** PPU=* * TOGGLE STATUS OF UPPER 10 PPU. * DEFAULT = SET STATUS TO OFF. PPU SPACE 4,10 *** PPU=X,Y,...,Z. * TOGGLE STATUS OF PPU X,Y,...,Z. * PP-S 0, 1, 2, 10 AND *APP* PP ARE INVALID ENTRIES. PPU DATA C*PPU=* LDM .PPS COPY PPU STATUS STD T6 LDM .PPS+1 STD T6+1 LDI KA CHECK NEXT CHARACTER LMN 1R* NJN PPU3 IF NOT (*) LDM .APP SBN 20 PJN PPU4 IF ALTERNATE PP IN UPPER BANK LCN 0 TOGGLE UPPER BANK LMM .PPS+1 STM .PPS+1 PPU1 JMP KBR RETURN PPU3 RJM AOD ASSEMBLE PPU NUMBER SBN 3 MJN PPU4 IF PPU = 0, 1, 2 SBN 10-3 ZJN PPU4 IF PPU = 10 ADN 10 LMM .APP ZJN PPU4 IF ALTERNATE PP LDD AB+4 SET BANK SHN -4 STD T1 ZJN PPU5 IF LOWER BANK SCN 1 NJN PPU4 IF ABOVE 20 LDM .PPU CHECK PPU COUNT SBN 20D PJN PPU5 IF .GT. 10 PPU-S SENSED PPU4 JMP ILL PROCESS INCORRECT ENTRY PPU5 LDD AB+4 SET PPU NUMBER LPN 17 SBN 12 PJN PPU4 IF OUT OF RANGE ADN 12 FORM SHN INSTRUCTION LMC SHNI STM PPUA LDN 1 SHIFT PPU BIT PPUA SHN ** LMM T6,T1 TOGGLE STATUS BIT STM T6,T1 LDI KA CHECK CHARACTER LMN 1R. ZJN PPU6 IF *.* AOD KA SKIP SEPARATOR LJM PPU3 LOOP PPU6 LDD T6 SET NEW STATUS STM .PPS LDD T6+1 STM .PPS+1 JMP KBR RETURN VEE SPACE 4,10 *** VE=XXXXXXX. * BUILD THE *EICB* AND SET THE MAXIMUM NOS/VE BLOCK SIZE TO * XXXXXXX THOUSAND WORDS. XXXXXXX MUST BE AN EVEN NUMBER. * THE SUM OF UEM SIZE + NVE SIZE + MINCM SIZE (65K USED IF * MINCM NOT SPECIFIED) MUST BE .LE. THE PHYSICAL MEMORY * AVAILABLE (FROM *CTI*). IF *VE=0* IS SPECIFIED, * NOS/VE WILL DYNAMICALLY REQUEST MEMORY FROM NOS AT * NOS/VE INITIATION. NOTE THAT UEM MAY NOT BE DEFINED * IF *VE=0* HAS BEEN SPECIFIED. * * VE=*. * THIS KEYBOARD ONLY ENTRY CLEARS *VE* SPECIFICATION. VEE DATA C*VE=* LDM C8XX NJN VEE0 IF ENTRY INCORRECT FOR MAINFRAME TYPE LDM DCPS NJN VEE0 IF DUAL-NOS-CPU SELECTED IN *CIP* LDD AM ZJN VEE1 IF NOT KEYBOARD ASSEMBLY LDI KA SHN 6 LMM 1,KA CHECK *VE* PARAMETER LMC 2R*. NJN VEE1 IF NOT /VE=*/ STM VEFL CLEAR PREVIOUS SPECIFICATION STM VEMZ STM VEMZ+1 JMP KBR RETURN VEE0 JMP ILL PROCESS INCORRECT ENTRY VEE1 RJM ASD ASSEMBLE MAXIMUM BLOCK SIZE LPN 1 NJN VEE0 IF NOT EVEN NUMBER LDD AB+3 SHN 0-11 ADD AB+2 ADD AB+1 ADD AB NJN VEE0 IF BLOCK SIZE .GT. 4 GIGABYTES LDM VEMZ SAVE PREVIOUS VALUE STD AB LDM VEMZ+1 STD AB+1 LDD AB+4 CONVERT FROM WORDS/1000B TO WORDS/100B SHN 3 STM VEMZ+1 SHN -14 SHN 17 LMD AB+3 SHN 3 STM VEMZ LDN 1 RJM CMS CHECK MEMORY SIZES ZJN VEE2 IF VALID LDD AB RESTORE PREVIOUS VALUE STM VEMZ LDD AB+1 STM VEMZ+1 JMP ERR DISPLAY ERROR VEE2 LDC 4000 SET *VE* ENTRY PRESENT FLAG STM VEFL JMP KBR RETURN VERSION SPACE 4,10 *** VERSION=CCC-CCC. * SET VERSION NAME = CCC-CCC. * (MAXIMUM OF 18 CHARACTERS ALLOWED.) VERSION DATA C*VERSION=* LDC 2*9DS12+.VER LJM NME1 PROCESS VERSION NAME ERRNG 7777-*-4 IF OVERFLOW QUAL * TTL SET/EQP - PROCESS EQUIPMENT PARAMETERS. TITLE IDENT EQP,EQPL QUAL EQP ORG EQPL *COMMENT SET - PROCESS EQUIPMENT PARAMETERS. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. SPACE 4,10 ** MACRO DEFINITIONS. KWDF SPACE 4,15 ** KWDF - KEYWORD DEFINITIONS. * * THIS MACRO GENERATES A TABLE WHICH HAS A BIT SET FOR EACH * KEYWORD SPECIFIED. *KWOF* IS DEFINED AS THE WORD OFFSET * AND *KWBT* IS DEFINED AS THE BIT NUMBER TO BE SET FOR THE * KEYWORD *KW*. IF *EM* IS SPECIFIED, A WORD CONTAINING THE * 2 CHARACTER EQUIPMENT MNEMONIC IS DEFINED. * * KWDF EM,(KW) * * ENTRY (EM) = EQUIPMENT MNEMONIC. * (KW) = KEYWORD LIST. PURGMAC KWDF KWDF MACRO EM,KW IFC NE,+EM++,1 VFD 12/2R_EM .A SET 0 DUP KTWC .B DECMIC .A .".B" SET 0 .A SET .A+1 ENDD IRP KW .D SET 1 .B SET -1 .C ECHO ,P=("KWM") IFC EQ,*P*KW*,2 .D SET 0 STOPDUP .B SET .B+1 .C ENDD IFNE .D,0,1 ERR INCORRECT KEYWORD - KW .A SET .B/12D .B SET .B-.A*12D KW_BT EQU 11D-.B KW_OF EQU .A .C DECMIC .A .B DECMIC KW_BT .".C" SET .".C"+1S".B" IRP DUP KTWC .A DECMIC .D VFD 12/.".A" .D SET .D+1 NOREF .".A" ENDD NOREF .A,.B,.D KWDF ENDM TBKP SPACE 4,10 ** TBKP - GENERATE TABLE OF KEYWORD PARAMETERS. * * TBKP KW,V,W,SC,M * * ENTRY (KW) = KEYWORD. * (V) = 1 IF NULL KEYWORD VALUE ALLOWED. * = 0 IF NULL KEYWORD VALUE INCORRECT. * (W) = PP WORD OFFSET INTO EST TO STORE VALUE. * (SC) = SHIFT COUNT TO POSITION VALUE. * (M) = MASK. PURGMAC TBKP TBKP MACRO KW,V,W,SC,M PL_KW CON P_KW VFD 6/KW_BT,6/KW_OF+1 VFD 6/SC,1/V,5/W VFD 12/M TBKP ENDM TBKW SPACE 4,10 ** TBKW - GENERATE TABLE OF VALID AND REQUIRED KEYWORDS. * * TBKW EQ,(V1,...,VN),(R1,...,RN) * * ENTRY (EQ) = EQUIPMENT MNEMONIC. * (VN) = KEYWORD WHICH IS VALID FOR THE EQUIPMENT. * (RN) = KEYWORD WHICH IS REQUIRED FOR THE EQUIPMENT. PURGMAC TBKW TBKW MACRO EQ,VK,RK KWDF EQ,(VK) KWDF ,(RK) TBKW ENDM TEQP SPACE 4,10 ** TEQP - DEFINE EQUIPMENT PROCESSING. * * NAME TEQP PROC,MUN,MCH * * PROC = PROCESSOR. * MUN = MAXIMUM UNIT NUMBER. * MCH = MAXIMUM NUMBER OF CHANNELS. PURGMAC TEQP TEQP MACRO NAME,PROC,MUN,MCH VFD 12/2R_NAME,12/PROC,6/MUN,6/MCH ENDM SPACE 4,10 ** ENTRY POINTS. CON /EQ3/TSYN-1 ADDRESS OF SYNTAX TABLE CON LOVB+1 INSTRUCTION TO CHANGE END OF SYNTAX TABLE EQP SPACE 4,10 ** EQP - INITIALIZE CENTRAL MEMORY. EQP SUBR ENTRY/EXIT LDC EQ3L-77 READ *EQ3* FROM CM STD T7 LDD EB SBN EQXL SHN 6 CRM EQXO,T7 RJM /EQ3/VCD VALIDATE *CM*/ISMD ENTRIES RJM /EQ3/SDF SET DEFAULT MASS STORAGE DEVICE RJM /EQ3/CME CHECK MMF ENVIRONMENT RJM /EQ3/SDS SEARCH FOR DEADSTART DEVICE LDC UJNI+2 DISABLE *EQP* OVERLAY LOADS STM AKLC LDD AB+4 SET DEADSTART EQUIPMENT STD DF MCMS RJM /EQ3/ACM ADJUST CENTRAL MEMORY *MCMS CON 0,0 (MINCM VALUE AFTER *ACM* CALL) RJM ROV READ NEXT OVERLAY RJM /ICM/ICM INITIALIZE CENTRAL MEMORY RJM ROV READ NEXT OVERLAY RJM /ICT/ICT INITIALIZE CENTRAL MEMORY TABLES RJM ROV READ NEXT OVERLAY RJM /APR/MSF PROCESS FLAW DECKS LJM EQPX RETURN TITLE RESIDENT SUBROUTINES. EEB SPACE 4,10 ** EEB - ENTER EQUIPMENT BUFFER. * * ENTRY (EBUT) = EQUIPMENT EST ENTRY. * (TDDB) = MST ENTRY IF MASS STORAGE. * (EB) = EBUF ADDRESS. * (EQ) = DEVICE ENTRY TABLE NUMBER. * (ET) = TDDE ADDRESS. * * EXIT (EBUT) ENTRY IN EBUF. * (TDDB) ENTRY IN TDDE IF MASS STORAGE. EEB SUBR ENTRY/EXIT LDD EB (EBUF ADDRESS) SHN 5 ADD EQ SHN 1 CWM EBUT,ON CWM EBUT+5,ON LDI ES SHN -13 ZJN EEBX IF NOT MASS STORAGE LDD ET SHN 4 ADD EQ SHN 2 ADD EQ ERRNZ TDDCL-5 CODE DEPENDS ON VALUE OF TAG CWM TDDB,DV UJN EEBX RETURN STA SPACE 4,10 ** STA - SET DESCRIPTION TABLE ADDRESS. * * ENTRY (A) = EST ORDINAL. * * EXIT (A) = 0 IF NOT MASS STORAGE. * (EQ) = EST ORDINAL. * (EBUT) = EST ENTRY. * (TDDB) = DEVICE DESCRIPTION IF MASS STORAGE. STA1 LDD ET READ IN *TDDB* ENTRY SHN 4 ADD EQ SHN 2 ADD EQ ERRNZ TDDCL-5 CODE DEPENDS ON VALUE OF TAG CRM TDDB,DV STA SUBR ENTRY/EXIT STD EQ SHN 22-5 ADD EB (EBUF ADDRESS) SHN 6 CRM EBUT,ON READ EQUIPMENT ENTRY CRM EBUT+5,ON LDI ES SHN -13 ZJN STAX IF NOT A MASS STORAGE DEVICE UJN STA1 READ IN *TDDB* ENTRY QUAL SPACE 4,10 **** ASSEMBLED VALUES. * SYSTEM DEVICE VALUES. SYDC CON 0 SYSTEM DEVICE COUNT SYDT CON 0 SYSTEM DEVICE TYPE SYNU CON 0 NUMBER OF UNITS * CM BUFFER LENGTHS. .DFB CON 400+MCML+1 SYSTEM DAYFILE BUFFER .ACF CON 400+MCML+1 ACCOUNT FILE BUFFER .ERL CON 200+MCML+1 ERROR LOG BUFFER .BML CON 400+MBML+1 MAINTENANCE LOG BUFFER * DAYFILE RESIDENCE EST ORDINALS. DFBF BSS 0 CON 4000+NEEQ SYSTEM DAYFILE CON 4000+NEEQ ACCOUNT DAYFILE CON 4000+NEEQ ERRLOG DAYFILE CON 4000+NEEQ MAINTENANCE LOG DAYFILE DFBFL EQU *-DFBF * MISCELLANEOUS. DFMS CON 0 DEFAULT MASS STORAGE DEVICE MDLL EQU *-DFMS MSLM CON MSMX MASS STORAGE LIMIT SPSA CON 0,0 *SCI* PP RESIDENT SAVE AREA FWA **** TCST SPACE 4,10 ** TCST - CHANNEL STATUS TABLE. * ENTRY = 1 WORD. * *T, TCST 6/ 0, 1/ S, 5/ 0 * S = UP/DOWN STATUS - 0 = UP, 1 = DOWN. TCSTL EQU CTALL*5 TCST BSSZ TCSTL TCHS SPACE 4,10 ** TCHS - TABLE OF CONTROLWARE TYPES TO LOAD. * ENTRY = 1 WORD. * *T, TCHS 12/ CT+100 * CT = CONTROLWARE TYPE AS DEFINED IN *COMSDSL* TCHSL EQU CTALL*5 TCHS BSSZ TCHSL QUAL * EBUF SPACE 4,40 ** EBUF - EQUIPMENT STATUS TABLE BUFFER. * ENTRY = 2 CENTRAL MEMORY WORDS. * *T EBUF 60/EST WORD 0 *T EBUF+1 60/EST WORD 1 * * EBUF BIT 51 IS USED AS A PSEUDO EQUIPMENT INTERLOCK. WHEN * SET, THE ENTRY CANNOT BE CHANGED OR REDEFINED. * * FOR MASS STORAGE EQUIPMENT, EBUF BIT 50 AND BITS 11-0 * ARE USED BY *SET* TO INDICATE THE FOLLOWING - * * BIT 50 = AUXILIARY DEVICE * * BITS 11-0 * *T, 1/F,1/T,1/P,1/Q,1/D,1/A,1/E,1/M,1/L,3/NU * * F = FORMAT PACK (844 ONLY) * T = INITIALIZE ALL * P = INITIALIZE PERMANENT FILES * Q = INITIALIZE QUEUED FILES * D = INITIALIZE SYSTEM DAYFILE * A = INITIALIZE ACCOUNT DAYFILE * E = INITIALIZE ERRLOG DAYFILE * M = INITIALIZE MAINTENANCE LOG * L = ALTERNATE SYSTEM LIBRARY RESIDENCE * NU = NUMBER OF UNITS-1 EBUT BSSZ ESTE*5 EBUF BUILD TABLE TDDE SPACE 4,15 ** TDDE - TABLE OF DEVICE DESCRIPTIONS. * * ENTRY = TDDEL WORDS. * NO ENTRY IS PRESENT FOR EQUIPMENT ZERO. TDDB BSSZ TDDEL SPACE 4,10 APRL BSS 0 LOAD ADDRESS FOR *ICM*, *ICT* AND *APR* RMD SPACE 4,10 ** RMD - RESET MASS STORAGE DEVICE INFORMATION. * * ENTRY (EQ) = EST ORDINAL OF EQUIPMENT. * (EBUT) = EQUIPMENT EST ENTRY. * (CN - CN+4) = EST ENTRY IF (EBUT) = 0. * (TDDB) = DEVICE DESCRIPTION. * * USES T1. RMD6 LDD CN CHECK NEW DEFINITION SHN 0-13 ZJN RMDX IF NOT MASS STORAGE * RESET DEFAULT ERROR THRESHOLD VALUES. RMD7 LDN MSCL FETCH DEFAULT VALUES CRM TDDB+DVTH,ON LDD CN+3 LMK 2RDE ZJN RMDX IF EXTENDED MEMORY EQUIPMENT LMK 2RDP&2RDE ZJN RMDX IF EXTENDED MEMORY EQUIPMENT LDM TDDB+DVNT SHN 0-3 RESTRICTED = TRACK COUNT / 8 STM TDDB+DVRA SHN 3-4 LOW SPACE = TRACK COUNT / 16 STM TDDB+DVLS RMD SUBR ENTRY/EXIT LDI ES ZJN RMD6 IF EQUIPMENT NOT PREVIOUSLY DEFINED SHN 21-13 PJN RMDX IF NOT MASS STORAGE SHN 21-11-21+13 PJN RMD1 IF NOT SHARED DEVICE SHN 21-5-21+11 PJN RMD0 IF NOT SHARED BUFFERED DEVICE SOM NSBD DECREMENT SHARED BUFFERED DEVICE COUNT RMD0 SOD NS DECREMENT SHARED DEVICE COUNT NJN RMD1 IF MORE SHARED DEVICES STD LD CLEAR ISD FLAG/LINK DEVICE NUMBER RMD1 LDI ES SHN 21-12 PJN RMD2 IF NOT SYSTEM DEVICE SOM SYDC DECREMENT SYSTEM DEVICE COUNT NJN RMD2 IF MORE SYSTEM DEVICES STM SYDT CLEAR SYSTEM DEVICE TYPE STM SYNU CLEAR NUMBER OF UNITS RMD2 LDM .PFNL+3 SBD EQ NJN RMD3 IF NOT DEFAULT FAMILY EQUIPMENT STM .PFNL+3 CLEAR DEFAULT FAMILY EST ORDINAL RMD3 LDN 4 SET DAYFILE INDEX STD T1 RMD4 LDM DFBF-1,T1 LPC 3777 SBD EQ NJN RMD5 IF NOT A MATCH LDC 4000+NEEQ STM DFBF-1,T1 RESET DEFAULT RESIDENCE RMD5 SOD T1 NJN RMD4 IF MORE DAYFILES LDD ET SHN 6 ADN NEEQ*TDDCL CWM DFBF,ON LJM RMD7 SET DEFAULT ERROR THRESHOLDS SCC SPACE 4,10 ** SCC - SET CONTROLWARE TABLE IN CM. * * EXIT CONTROLWARE TYPES SET IN CM. * * USES T1. SCC SUBR ENTRY/EXIT LDN CTALL STD T1 LDD ET SET TABLE IN CM ADN TDDBL CM BUFFER SIZE/100 SHN 6 CWM TCHS,T1 UJN SCCX RETURN SFE SPACE 4,10 ** SFE - SEARCH FOR SPECIFIED EQUIPMENT TYPE. * * ENTRY (A) = 1/1,17/MNEMONIC, IF INITIAL CALL. * (LE) = LAST EST ORDINAL. * * EXIT (A) .LT. 0, IF SPECIFIED EQUIPMENT NOT FOUND. * = BYTE 4 OF EST ENTRY, IF EQUIPMENT FOUND. * (EQ) = EST ORDINAL. * * CALLS STA. SFE SUBR ENTRY/EXIT PJN SFE1 IF NOT INITIAL CALL STM SFEA LDD LE INITIALIZE EST INDEX ADN 1 STD EQ SFE1 SOD EQ DECREMENT EST INDEX MJN SFEX IF END OF EST RJM STA LDM EBUT+3 LMC 0 SFEA EQU *-1 NJN SFE1 IF NO MATCH LDM EBUT+4 UJN SFEX RETURN SID SPACE 4,10 ** SID - SEARCH FOR *ISMD* DEVICE. * * ENTRY (A) .LT. 0 IF INITIAL CALL. * (T4) = *TFSD* INDEX IF NOT INITIAL CALL. * * EXIT SEE *SFE*. * (T4) = *TFSD* INDEX. * * CALLS SFE. SID1 LMC 1S17 SET INITIAL CALL SID2 RJM SFE PJN SIDX IF DEVICE FOUND AOD T4 SID3 LDM TFSD,T4 NJN SID1 IF NOT END OF TABLE LCN 0 SID SUBR ENTRY/EXIT PJN SID2 IF NOT INITIAL CALL LDN 0 STD T4 UJN SID3 ENTER SEARCH LOOP TFSD SPACE 4,10 ** TFSD - TABLE OF *ISMD* DEVICE TYPES. * *T 12/ DEVICE MNEMONIC TFSD CON 2RDD CON 2RDG CON 0 TENB SPACE 4,10 ** TENB - TABLE OF *CM* EST ORDINALS. * *T 12/ EST ORDINAL TENB BSSZ 8D SPE SPACE 4,20 ** SPE - SYNCHRONIZE PARTITIONS AND ENTER EQUIPMENT. * * ENTRY (EBUT) = EQUIPMENT EST ENTRY. * (TDDB) = MST ENTRY IF MASS STORAGE. * (EB) = EBUF ADDRESS. * (EQ) = DEVICE ENTRY TABLE NUMBER. * (ET) = TDDE ADDRESS. * * EXIT (EBUT) ENTRY IN EBUF. * (TDDB) ENTRY IN TDDE IF MASS STORAGE. * TO *ILL* IF CHANNEL MISMATCH. * * USES CM, T1. * * CALLS EEB. SPE11 RJM EEB ENTER EQUIPMENT INTO BUFFER SPE SUBR ENTRY/EXIT LDI ES SHN 21-13 PJN SPE11 IF NOT MASS STORAGE SHN 21-5-21+13 PJN SPE11 IF NOT A BUFFERED DEVICE LDM EBUT+10 SHN 21-13 PJN SPE11 IF NOT A PARTITIONED DEVICE LDD LE STD T1 * CHECK NEXT EST ENTRY. SPE1 SOD T1 ZJN SPE11 IF SEARCH COMPLETED SHN -5+22 ADD EB (EBUF ADDRESS) SHN 6 CRM SPEA,ON READ EQUIPMENT ENTRY LDM EBUT+3 LMM SPEA+3 NJN SPE1 IF NOT THE SAME DEVICE TYPE * CHECK IF TWO PARTITIONS ARE PART OF THE SAME DEVICE. LDM SPEA+1 COMPARE CHANNELS LMM EBUT+1 ZJN SPE2 IF FIRST CHANNEL MATCHES LDM SPEA+1 LMM EBUT+2 ZJN SPE2 IF FIRST CHANNEL MATCHES SECOND CHANNEL LDM SPEA+2 LMM EBUT+2 NJN SPE1 IF SECOND CHANNEL DOES NOT MATCH SPE2 LDD ET READ *TDDB* ENTRY SHN 4 ADD T1 SHN 2 ADD T1 CRM SPEB,DV LDM TDDB+DVPR COMPARE EQUIPMENT NUMBER LMM SPEB+DVPR SHN -11 NJN SPE3 IF EQUIPMENT NUMBER DOES NOT MATCH LDM TDDB+DVUN+3 COMPARE UNIT NUMBER LMM SPEB+DVUN+3 ZJN SPE4 IF UNIT NUMBER MATCHES SPE3 LJM SPE1 CHECK NEXT EST ENTRY * VERIFY THAT SAME CHANNEL PAIR DEFINED FOR BOTH PARTITIONS. SPE4 LDM SPEA+1 COMPARE CHANNELS LMM EBUT+1 NJN SPE6 IF FIRST CHANNEL DOES NOT MATCH LDM SPEA+2 LMM EBUT+2 ZJN SPE7 IF SECOND CHANNEL MATCHES SPE5 JMP ILL PROCESS INCORRECT ENTRY SPE6 LDM SPEA+1 LMM EBUT+2 NJN SPE5 IF FIRST CHANNEL DOES NOT MATCH SECOND LDM SPEA+2 LMM EBUT+1 NJN SPE5 IF SECOND CHANNEL DOES NOT MATCH FIRST * SYNCHRONIZE *INITIALIZE,FP* FOR BOTH PARTITIONS. SPE7 LDM EBUT+4 LMM SPEA+4 LPC MLFPR ZJN SPE8 IF *INITIALIZE,FP* FLAGS ARE THE SAME AOM SPEC FORCE *EBUF* UPDATE LDM EBUT+4 SET *INITIALIZE,FP* FOR BOTH PARTITIONS LPN 17 LMC MLFPR+MLIAL STM EBUT+4 LDM SPEA+4 LPN 17 LMC MLFPR+MLIAL STM SPEA+4 * SYNCHRONIZE *SHARE* FOR BOTH PARTITIONS. SPE8 LDI ES LMM SPEA LPC 1000 ZJN SPE9 IF *SHARE* FLAGS ARE THE SAME AOM SPEC FORCE *EBUF* UPDATE AOD NS INCREMENT SHARED DEVICE COUNT AOM NSBD INCREMENT SHARED BUFFERED DEVICE COUNT LDI ES SET *SHARE* FLAG FOR BOTH PARTITIONS LPC 6777 LMD TH STI ES LDM SPEA LPC 6777 LMD TH STM SPEA LDM TDDB+DVFA CLEAR TEMP, NONSHARED FOR BOTH PARTITIONS LPC -4000 STM TDDB+DVFA LDM SPEB+DVFA LPC -4000 STM SPEB+DVFA * UPDATE *EBUF*, IF REQUIRED. SPE9 LDC ** (NONZERO IF *EBUF* UPDATE REQUIRED) SPEC EQU *-1 ZJN SPE10 IF *EBUF* UPDATE NOT REQUIRED LDN 0 CLEAR FLAG FOR NEXT EST ENTRY STM SPEC LDD T1 SHN 22-5 ADD EB (EBUF ADDRESS) SHN 6 CWM SPEA,ON SPE10 LJM SPE1 CHECK NEXT EST ENTRY SPEA BSS 5 TEMPORARY EBUF ENTRY SPEB BSS TDDCL*5 TEMPORARY TDDE ENTRY LOV SPACE 4,10 ** LOV - LOAD *EQP* OVERLAYS. * * ENTRY AT *LOV1* WITH (A) = -EQXL TO LOAD *EQ2*. LOV SUBR ENTRY/EXIT LDC EQML STD T7 LDM KBUF CHECK INITIAL KEYWORD SHN 6 LMM KBUF+1 LMC 2REQ STM LOVA+1 ZJN LOV1 IF *EQXXX=* ENTRY, LOAD *EQ1* LCN 2*EQXL LOAD *EQ3* LOV1 ADN 3*EQXL (ENTRY FROM */EQ1/EQM* TO LOAD *EQ2*) STD T6 LDD EB SBD T6 SHN 6 CRM EQXO,T7 LOVA LDC * ZJN LOV2 IF *EQXXX=* ENTRY LOVB LDC 0 SET *TSYNA* VALUE * LDC GGO (IF PROCESSING KEYBOARD ENTRY) STM /EQ3/TSYNA LOV2 BSS 0 EQXO BSS 0 ORIGIN FOR *EQ1*/*EQ2*/*EQ3* SPACE 4,10 * DEFINE UNQUALIFIED (RESIDENT) TAGS FOR *EQP*. QUAL * EEB EQU /EQP/EEB RMD EQU /EQP/RMD SCC EQU /EQP/SCC SFE EQU /EQP/SFE SID EQU /EQP/SID SPE EQU /EQP/SPE STA EQU /EQP/STA APRL EQU /EQP/APRL EBUT EQU /EQP/EBUT EQXO EQU /EQP/EQXO MCMS EQU /EQP/MCMS TDDB EQU /EQP/TDDB TENB EQU /EQP/TENB TFSD EQU /EQP/TFSD TTL SET/EQ1 - PROCESS MASS STORAGE *EQXXX=* ENTRY. TITLE IDENT EQ1,/EQ1/EQM QUAL EQ1 ORG EQXO *COMMENT SET - PROCESS MASS STORAGE *EQXXX=* ENTRY. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. SPACE 4,10 ** MICRO DEFINITIONS. KWM MICRO 1,,*AP,CH,EQ,ET,IB,MA,MC,PN,ST,SZ,TS,UN* .A MICCNT KWM .A SET .A+1 KWMC EQU .A/3 KEYWORD COUNT .A SET KWMC+11D KTWC EQU .A/12D KEYWORD TABLE WORD COUNT TITLE EQUIPMENT DEFINITIONS. EQM SPACE 4,10 *** EQXXX=TY-N,P1=V1,...,PI=VN. * * SET MASS STORAGE EQUIPMENT XXX WITH: * * TY = TYPE (2 CHARACTERS) * N = NUMBER OF PARTITIONS (PARTITIONED DEVICES ONLY). * PARTITIONED DEVICES ARE NOTED IN THE LIST BELOW. * * DEVICE TYPES SUPPORTED - * * DA = FSC 33502 DISK SUBSYSTEM. * DB = 885-42 DEMA. * DC = 895 DISK SUBSYSTEM. * DD = 834 DISK SUBSYSTEM. * DE = EXTENDED MEMORY. * DF = 887 DISK SUBSYSTEM (4KB SECTORS). * DG = 836 DISK SUBSYSTEM. * DH = 887 DISK SUBSYSTEM (16KB SECTORS). * DI = 844-21 DISK SUBSYSTEM (HALF TRACK). * DJ = 844-4X DISK SUBSYSTEM (HALF TRACK). * DK = 844-21 DISK SUBSYSTEM (FULL TRACK). * DL = 844-4X DISK SUBSYSTEM (FULL TRACK). * DM = 885 DISK SUBSYSTEM (HALF TRACK). * DN = 9853 XMD DISK SUBSYSTEM. * DP = EXTENDED MEMORY WITH DDP/LSP. * DQ = 885 DISK SUBSYSTEM (FULL TRACK). * DR = CDSS II DISK SUBSYSTEM. * DV = 819 DISK SUBSYSTEM (SINGLE DENSITY). * DW = 819 DISK SUBSYSTEM (DOUBLE DENSITY). * DX = FSC 3330-01 DISK SUBSYSTEM. * DY = FSC 3330-11 DISK SUBSYSTEM. * DZ = FSC 3350 DISK SUBSYSTEM. * EA = 5830 DISK ARRAY SUBSYSTEM; 5832 (1X SSD) DISK. * EB = 5830 DISK ARRAY SUBSYSTEM; 5832 (2X SSD) DISK. * EC = 5830 DISK ARRAY SUBSYSTEM; 5833 (1X SABRE) DISK. * ED = 5830 DISK ARRAY SUBSYSTEM; 5833 (1P SABRE) DISK. * EE = 5830 DISK ARRAY SUBSYSTEM; 5833 (2X SABRE) DISK. * EF = 5830 DISK ARRAY SUBSYSTEM; 5833 (2P SABRE) DISK. * EM-2 = 5830 DISK ARRAY SUBSYSTEM; 5833 (3P SABRE) DISK. * EN-2 = 5830 DISK ARRAY SUBSYSTEM; 5833 (4X SABRE) DISK. * EG = 5830 DISK ARRAY SUBSYSTEM; 5838 (1X ELITE) DISK. * EH = 5830 DISK ARRAY SUBSYSTEM; 5838 (1P ELITE) DISK. * EI-2 = 5830 DISK ARRAY SUBSYSTEM; 5838 (2X ELITE) DISK. * EJ-2 = 5830 DISK ARRAY SUBSYSTEM; 5838 (2P ELITE) DISK. * EK-3 = 5830 DISK ARRAY SUBSYSTEM; 5838 (3P ELITE) DISK. * EL-4 = 5830 DISK ARRAY SUBSYSTEM; 5838 (4X ELITE) DISK. * EO = 5830 DISK ARRAY SUBSYSTEM; 47444 (1X 3.5IN) DISK. * EP = 5830 DISK ARRAY SUBSYSTEM; 47444 (1P 3.5IN) DISK. * ES-2 = 5830 DISK ARRAY SUBSYSTEM; 47444 (2X 3.5IN) DISK. * EU-2 = 5830 DISK ARRAY SUBSYSTEM; 47444 (2P 3.5IN) DISK. * EV-3 = 5830 DISK ARRAY SUBSYSTEM; 47444 (3P 3.5IN) DISK. * EW-4 = 5830 DISK ARRAY SUBSYSTEM; 47444 (4X 3.5IN) DISK. * * * AND PARAMETERS WHERE P1,...,PI ARE THE FOLLOWING KEYWORDS * * AP = APRDECK (FLAW DECK) NUMBER. * CH = CHANNEL NUMBER(S). * EQ = EQUIPMENT (CONTROLLER) NUMBER. * ET = MT/PT/CT. * MT = EXTENDED MEMORY TYPE. * PT = PATH TYPE. * CT = CPU TYPE. * IB = INSTALLATION BYTE. * MA = MAINTENANCE MODE (EM HALF SIZE). * MC = ESM SIDE DOOR MAINTENANCE PORT CHANNEL NUMBER. * PN = PARTITION NUMBER. * ST = STATUS. * SZ = EXTENDED MEMORY SIZE. * TS = EXTENDED MEMORY TRACK SIZE. * UN = UNIT NUMBER(S). EQM BSS 0 LDN 2 ADVANCE CHARACTER ADDRESS RAD KA RJM CDR ASSEMBLE DIGITS LMN 1R= ZJN EQM2 IF *=* EQM1 JMP ILL PROCESS INCORRECT ENTRY EQM2 AOD KA SKIP CHARACTER LDD AB+4 CHECK EST ORDINAL SBN NOPE MJN EQM1 IF PSEUDO EQUIPMENT SBK ESMX-NOPE PJN EQM1 IF EST ORDINAL EXCEEDS MAXIMUM LDD AB+4 SET EST ORDINAL RJM STA READ EBUF ENTRY RJM CDR LMN 1R. NJP EQM5 IF NOT *EQXXX=.* LDD AB+4 NJN EQM1 IF *EQXXX = N.* RJM CDC CLEAR ISMD CHANNELS LDN 0 CRD CN CLEAR DEVICE DESCRIPTION CRM EBUT+5,ON ERRNG 5-TDDCL CODE DEPENDS ON VALUE CRM TDDB,DV LDD EQ LMD EN NJN EQM4 IF NOT EXTENDED MEMORY EQUIPMENT STD EN CLEAR EST ORDINAL STM EMSC DE/DP SHIFT COUNT LDN TAXXL CLEAR EXTENDED MEMORY ALLOCATION TABLES STD T1 LDD EQ LMN LDEQ NJN EQM3 IF NOT LINK DEVICE STD PD EQM3 LDN 0 STM TAXM-1,T1 SOD T1 NJN EQM3 IF MORE TO CLEAR CRM EMTY,ON EQM4 LJM EQM19 CLEAR EST * PROCESS TYPE. EQM5 LDI KA ASSEMBLE TYPE SHN 6 LMM 1,KA STD AB+4 LDM EBUT+3 ZJN EQM7 IF EMPTY ENTRY LMD AB+4 ZJN EQM8 IF NO CHANGE IN DEVICE TYPE LDD AB+4 LMC 2R** ZJN EQM8 IF NONSTANDARD EQUIPMENT ENTRY RJM CDC CLEAR ISMD CHANNELS EQM7 LDN 0 CLEAR DEVICE DESCRIPTION CRD CN CRM EBUT+5,ON ERRNG 5-TDDCL CODE DEPENDS ON VALUE CRM TDDB,DV LDD AB+4 STD CN+3 AOM TRQP SET INITIAL ENTRY FLAG UJN EQM9 SEARCH FOR DEVICE EQM8 LDN JSNL MOVE EST ENTRY TO DIRECT CELLS CWM EBUT,ON SBN 1 CRD CN * SEARCH FOR DEVICE IN MASS STORAGE TABLE. EQM9 LDD AB+4 RJM SMD SEARCH MASS STORAGE DEVICE TABLE NJN EQM10 IF MASS STORAGE DEVICE * EQUIPMENT IS NOT MASS STORAGE - LOAD *EQ2* TO PROCESS ENTRY. LDD KB RESET CHARACTER ADDRESS STD KA LCN EQXL LJM /EQP/LOV1 FORCE LOAD OF *EQ2* EQM10 LDM TRQP ZJP EQM14 IF NOT INITIAL ENTRY LDC 4100 SET MASS STORAGE AND UNAVAILABLE STD CN LDI MS SET SHARED DEVICE, DEFAULT CATALOG TRACKS LPC 4000 LMM MSCT,MS STM TDDB+DVCT LDM MSNT,MS SET NUMBER OF TRACKS LPC 3777 STM TDDB+DVNT LDM MSAI,MS SET CONTROLWARE LOAD, ALGORITHM INDEX STM TDDB+DVAI LDM MSDI,MS SET DRIVER INDEX STM TDDB+DVDI LDM MSSL,MS SET MAXIMUM PARTITION NUMBER STM TDDB+DVSL LDM MSUL,MS SET BUFFERED DEVICE FLAGS IN MST LPC 6000 STM TDDB+DVED SHN 5-12 SET BUFFERED DEVICE FLAG IN EST LPN 40 RAD CN EQM14 LDN 2 SKIP EQUIPMENT MNEMONIC RAD KA LDM MSPR,MS STD T1 LDC TVRK-TVRKL SET TABLE OF VALID KEYWORDS STD TA EQM16 LDN TVRKL ADVANCE TABLE ADDRESS RAD TA LDI TA ZJN EQM21 IF END OF TABLE LMD AB+4 NJN EQM16 IF NO MATCH LDM TRQP ** EXIT TO PROCESSOR WITH - * * (A) = (TRQP) = PREVIOUS DEFINITION STATUS. * (CN - CN+4) = WORD TO BUILD EST ENTRY. * (TDDB) = BUFFER TO BUILD *TDDE* ENTRY. * (MS) = *TMSD* ADDRESS IF MASS STORAGE. * (TA) = *TVRK* ENTRY ADDRESS. RJM 0,T1 LDM EBUT+3 LMD CN+3 ZJN EQM20 IF NOT INITIAL ENTRY EQM19 RJM CML CHECK MASS STORAGE LIMIT RJM RMD RESET MASS STORAGE DEVICE EQM20 LDN JSNL CWD CN MOVE EST ENTRY TO BUFFER CRM EBUT,ON RJM EEB ENTER EQUIPMENT DEFINITION RJM EDC ENTER ISMD CHANNELS RJM CLE CHECK LAST EQUIPMENT JMP KBR RETURN EQM21 JMP ILL PROCESS INCORRECT ENTRY TITLE EQUIPMENT DEFINITION PROCESSORS. ECS SPACE 4,10 *** EQXXX=DE. * EQXXX=DP. ECS SUBR ENTRY/EXIT ZJN ECS1 IF NOT INITIAL ENTRY LDC 4112 STM TDDB+DVED ECS1 LDN BMLL SAVE CURRENT PARAMETERS CWM EMTY,ON RJM KWP PROCESS KEYWORDS LDD CN+3 LMC 2RDP ZJN ECS2 IF TYPE *DP* LDM TDDB+DVED SCN 7 SET NO DDP PATH FOR *DE* STM TDDB+DVED * PROCESS EXTENDED MEMORY SIZE. ECS2 LDM EBUT+7 PRESET SHIFT TO *EMBS* BLOCKS SHN -6 LPN 3 STD T5 LMC SHNI+77 STM ECSA LDN 0 STD T1 LDM TDDB+DVED CHECK DEVICE TYPE SHN -6 LPN 7 LMN 1 NJN ECS4 IF NOT ECS 1 LDM TDDB+DVES ZJN ECS3 IF NOT 2 MILLION WORDS LMN 1 ADM TDDB+DVES+1 NJP ILL IF .GT. 2M WORDS LDC 2015232D/1000 UJN ECS5 SET DEVICE SIZE ECS3 LDM TDDB+DVES+1 ADJUST ECS 1 SIZE FOR FLAWED AREA SHN 2 ADM TDDB+DVES+1 SHN -7 STD T1 SIZE*5/200B ECS4 LDM TDDB+DVES SHN 14 LMM TDDB+DVES+1 ECS5 SBD T1 ECSA SHN 0 * SHN -EMSC (CONVERT TO *EMBS*-WORD BLOCKS) RJM CFT STM TDDB+DVNT LDM TDDB+DVED SHN 21-11 PJN ECS6 IF NOT IN MAINTENANCE MODE SHN 12-6 LPN 7 SBN 5 MJP ILL IF NOT ESM/STORNET EQUIPMENT TYPE LDM TDDB+DVNT SHN -1 REDUCE PHYSICAL EM SIZE BY ONE HALF STM TDDB+DVNT ECS6 LDD EQ RESET EXTENDED MEMORY PARAMETERS LMD EN NJN ECS7 IF REDEFINING EXTENDED MEMORY STD EN CRM EMTY,ON * MEMORY TYPE DEPENDENT PROCESSING. ECS7 LDM TDDB+DVED LPN 70 ZJP ECS10 IF NO CPU PATH LMN 40 NJN ECS8 IF NOT UEM LDM TDDB+DVES SET UEM SIZE/100B SHN 14 LMM TDDB+DVES+1 SHN 3 STM UEMZ+1 SHN -14 STM UEMZ LDN 1 RJM CMS CHECK MEMORY SIZE ZJN ECS8 IF NO MEMORY SIZE CONFLICTS LDN BMLL RESTORE PREVIOUS PARAMETERS CRM EMTY,ON JMP ERR DISPLAY ERROR ECS8 LDD EN NJN ECS9 IF CPU PATH EQUIPMENT PREVIOUSLY SET LDD EQ STD EN ECS9 LDM TDDB+DVED SHN -6 LPN 7 STM EMTY LDD T5 SET XM SHIFT COUNT STM EMSC LDM TDDB+DVNT COMPUTE FIELD LENGTH SHN 6 ADM TDDB+DVNT ADN 37 ROUND UP SHN -5 STM EMFL XM FL / *EMBS* ECS10 LDD EQ LMN LDEQ NJN ECS11 IF NOT POSSIBLE LINK DEVICE LDD T5 STM LDSH LDM TDDB+DVED LPN 70 LMN 40 ZJN ECS11 IF UEM LDN LDEQ SET POSSIBLE LINK DEVICE STD PD ECS11 LJM ECSX RETURN PDE EQU ECS *DE* PROCESSOR PDP EQU ECS *DP* PROCESSOR PDC SPACE 4,10 *** EQXXX=DC. PDC1 RJM KWP PROCESS KEYWORDS PDC SUBR ENTRY/EXIT LDC MABL CHECK PP SPEED CRD CM LDD CM+4 SBN 2 PJN PDC1 IF 4X PP SPEED JMP ILL PROCESS KEYWORDS PDD SPACE 4,10 *** EQXXX=DD. * EQXXX=DG. PDD1 LDN 37 PRESET NO CHANNELS SPECIFIED STD CN+1 LDN 4 SET LIMIT TEST FOR DRIVE NUMBER RAM SUNB RJM KWP PROCESS KEYWORDS PDD SUBR ENTRY/EXIT LDM ISPF SHN 21-13 PJN PDD1 IF CYBER 810/815/825/830 JMP ILL PROCESS INCORRECT ENTRY PDG EQU PDD *DG* PROCESSOR PDF SPACE 4,10 *** EQXXX=DF. * EQXXX=DH. * EQXXX=DN. * EQXXX=EA. * EQXXX=EB. * EQXXX=EC. * EQXXX=ED. * EQXXX=EE. * EQXXX=EF. * EQXXX=EG. * EQXXX=EH. * EQXXX=EO. * EQXXX=EP. PDF1 LDC PCC SET CHANNEL PROCESSOR STM TKWPA LDM TKWPB+2 *EQ* DEFINITION PARAMETERS SCN 37 LMN TDDB-EBUT+DVPR SET LOCATION FOR CONTROLLER NUMBER STM TKWPB+2 RJM KWP PROCESS KEYWORDS PDF SUBR ENTRY/EXIT LDM .CCHN NJN PDF1 IF *I4* IOU JMP ILL PROCESS INCORRECT ENTRY PDH EQU PDF *DH* PROCESSOR PDN EQU PDF *DN* PROCESSOR PEA EQU PDF *EA* PROCESSOR PEB EQU PDF *EB* PROCESSOR PEC EQU PDF *EC* PROCESSOR PED EQU PDF *ED* PROCESSOR PEE EQU PDF *EE* PROCESSOR PEF EQU PDF *EF* PROCESSOR PEG EQU PDF *EG* PROCESSOR PEH EQU PDF *EH* PROCESSOR PEO EQU PDF *EO* PROCESSOR PEP EQU PDF *EP* PROCESSOR PEI SPACE 4,10 *** EQXXX=EI-2. (MULTIPLE PARTITION DEVICES) * EQXXX=EJ-2. * EQXXX=EK-3. * EQXXX=EL-4. * EQXXX=EM-2. * EQXXX=EN-2. * EQXXX=ES-2. * EQXXX=EU-2. * EQXXX=EV-3. * EQXXX=EW-4. PEI SUBR ENTRY/EXIT LDI KA CHECK SEPARATOR LMN 1R, ZJN PEI2 IF *,* LMN 1R-&1R, NJN PEI1 IF NOT *-* AOD KA RJM CDR ASSEMBLE NUMBER OF PARTITIONS LMN 1R, NJN PEI1 IF INCORRECT SEPARATOR LDD AB+4 ZJN PEI1 IF NULL PARTITION COUNT STM PEIB LDM MSSL,MS LPN 17 ADN 1 SBD AB+4 PJN PEI3 IF PARTITION COUNT OK PEI1 JMP ILL PROCESS INCORRECT ENTRY PEI2 AOM PEIB INDICATE ONLY ONE PARTITION PEI3 NJN PEI4 IF NOT MAXIMUM PARTITONS AOM PEIA MAKE *PN=* NOT REQUIRED PEI4 RJM PDF PROCESS BASIC DAS SETUP PEIA LDN ** *PN=* PROCESSED INDICATOR ZJN PEI1 IF REQUIRED *PN=* NOT PROCESSED LDC 0 NUMBER OF PARTITIONS PEIB EQU *-1 ADD EQ SBN 1 STD T7 LDC 0 FIRST PARTITION NUMBER PEIC EQU *-1 STD T6 PEI5 STD T0 PRESET CYLINDER CALCULATION LDM EBUT+10 SET EST PARTITION NUMBER SHN 14 SCN 57 LMD T6 LMN 40 MARK AS A PARTITIONED DEVICE SHN 6 STM EBUT+10 LDN 0 CLEAR MST CYLINDER OFFSET STM TDDB+DVCO PEI6 SOD T0 CALCULATE CYLINDER OFFSET MJN PEI7 IF CALCULATION IS COMPLETE LDM MSCP,MS RAM TDDB+DVCO UJN PEI6 CHECK FOR COMPLETION PEI7 LDD EB READ ORIGINAL EQUIPMENT ENTRY SHN 5 ADD EQ SHN 1 CRM EBUT,ON LDD EQ LMD T7 ZJP PEIX IF THIS IS THE LAST PARTITION LDM EBUT+3 LMD CN+3 ZJN PEI8 IF NOT INITIAL ENTRY RJM CML CHECK MASS STORAGE LIMIT RJM RMD RESET MASS STORAGE DEVICE PEI8 LDN JSNL CWD CN MOVE EST ENTRY TO BUFFER CRM EBUT,ON RJM SPE ENTER EQUIPMENT DEFINITION LDM EBUT+4 UPDATE INITIALIZATION FLAGS STM CN+4 RJM CLE CHECK LAST EQUIPMENT AOD T6 INCREMENT PARTITION NUMBER UJP PEI5 PROCESS NEXT PARTITION PEJ EQU PEI *EJ* PROCESSOR PEK EQU PEI *EK* PROCESSOR PEL EQU PEI *EL* PROCESSOR PEM EQU PEI *EM* PROCESSOR PEN EQU PEI *EN* PROCESSOR PES EQU PEI *ES* PROCESSOR PEU EQU PEI *EU* PROCESSOR PEV EQU PEI *EV* PROCESSOR PEW EQU PEI *EW* PROCESSOR KWP SPACE 4,10 ** KWP - KEYWORD MAIN PROCESSOR. * * ENTRY (KA) = ADDRESS OF SEPARATOR CHARACTER. * (TA) = *TVRK* ENTRY ADDRESS. KWP SUBR ENTRY/EXIT KWP1 AOD KA LDI KA ASSEMBLE KEYWORD SHN 6 LMM 1,KA STD AB LDN 2 ADVANCE KEYBOARD BUFFER ADDRESS RAD KA LDI KA LMN 1R= NJN KWP3 IF INCORRECT SEPARATOR AOD KA LDC TKWP-TKWPL STD T3 KWP2 LDN TKWPL RAD T3 LDI T3 NJN KWP4 IF NOT END OF TABLE KWP3 JMP ILL PROCESS INCORRECT ENTRY KWP4 STD T2 LDD AB LMI T2 NJN KWP2 IF NOT MATCH RJM VKW VALIDATE KEYWORD * EXIT TO KEYWORD PROCESSOR. * (T3) = ADDRESS OF *TKWP* ENTRY. * (KA) = ADDRESS OF KEYWORD VALUE FIRST CHARACTER. LJM 1,T2 EXIT TO PROCESSOR * RETURN FROM KEYWORD PROCESSOR. * (KA) = ADDRESS OF SEPARATOR CHARACTER. KWP5 LDI KA CHECK SEPARATOR LMN 1R, ZJN KWP1 IF NOT END OF ENTRY LMN 1R.&1R, NJN KWP3 IF INCORRECT SEPARATOR LDM TRQP ZJN KWP7 IF NOT INITIAL ENTRY LDN KTWC STD T2 LDN TVRKL RAD TA KWP6 SOD TA LDI TA STM KWPA LDM TRQP,T2 LPC ** KWPA EQU *-1 LMI TA NJN KWP3 IF REQUIRED KEYWORD NOT SPECIFIED SOD T2 NJN KWP6 IF MORE KEYWORDS TO CHECK KWP7 LDD CN LPN 3 LMN 3 ZJN KWP9 IF DEVICE IS DOWN LDD CN+1 CHECK PRIMARY CHANNEL SHN 21-13 PJN KWP9 IF NO PRIMARY CHANNEL SHN 21-12-21+13 PJN KWP9 IF CHANNEL IS UP LDD CN+2 CHECK SECONDARY CHANNEL SHN 21-13 PJN KWP8 IF NO SECONDARY CHANNEL SHN 21-12-21+13 PJN KWP9 IF CHANNEL IS UP KWP8 JMP ILL PROCESS INCORRECT ENTRY KWP9 LJM KWPX RETURN PDI EQU KWP *DI* PROCESSOR PDJ EQU KWP *DJ* PROCESSOR PDM EQU KWP *DM* PROCESSOR PDK EQU KWP *DK* PROCESSOR PDL EQU KWP *DL* PROCESSOR PDQ EQU KWP *DQ* PROCESSOR PDR EQU KWP *DR* PROCESSOR PDB EQU KWP *DB* PROCESSOR PDX EQU KWP *DX* PROCESSOR PDY EQU KWP *DY* PROCESSOR PDZ EQU KWP *DZ* PROCESSOR PDA EQU KWP *DA* PROCESSOR PDV EQU KWP *DV* PROCESSOR PDW EQU KWP *DW* PROCESSOR TITLE MISCELLANEOUS EQUIPMENT DEFINITION SUBROUTINES. CDC SPACE 4,15 ** CDC - CLEAR ISMD CHANNELS. * * ENTRY (EBUT) = PREVIOUS EBUT *CM* EQUIPMENT ENTRY. * * EXIT CHANNEL NUMBERS ARE CLEARED IN ALL ISMD DEVICE ENTRIES * WHICH HAVE THE FIRST UNIT ON THIS *CM* EQUIPMENT. * * USES T1, T2, T3. * * CALLS SDC. CDC SUBR ENTRY/EXIT LDM EBUT+4 SAVE EQUIPMENT NUMBER SHN -11 STD T1 LDM EBUT+3 LMC 2RCM NJN CDCX IF NOT CONTROL MODULE STM TENB,T1 CLEAR EST ORDINAL STD T3 LDN 37 SET NO CHANNEL SPECIFIED STD T2 RJM SDC SET ISMD CHANNELS UJN CDCX RETURN CLE SPACE 4,15 ** CLE - CHECK LAST EQUIPMENT. * * ENTRY (EQ) = CURRENT EST ORDINAL. * (LE) = LAST EQUIPMENT DEFINED. * (CN - CN+4) = CURRENT EQUIPMENT DEFINITION. * * EXIT (LE) = CURRENT LAST EQUIPMENT. * (EQ) = CURRENT EST ORDINAL + 1. * * USES T5, CN - CN+4. * * CALLS IBF. CLE3 AOD EQ CHECK NEW EQUIPMENT DEFINITION SBD LE PJN CLE2 IF ORDINAL .GE. PREVIOUS HIGH CLE SUBR ENTRY/EXIT LDD CN+3 NJN CLE3 IF DEFINING EQUIPMENT AOD EQ LMD LE NJN CLEX IF NOT CLEARING LAST EQUIPMENT CLE1 SOD LE SHN 14+1 ADD EB SEARCH FOR LAST EQUIPMENT SHN 6 CRD CN LDD CN+3 ZJN CLE1 IF EQUIPMENT UNDEFINED LDN 1 CLE2 RAD LE UPDATE LAST EQUIPMENT STD T5 LDN UECF SEND COUNT TO BUFFER PP RJM IBF UJN CLEX RETURN CML SPACE 4,10 ** CML - CHECK MASS STORAGE LIMIT. * * ENTRY (CN - CN+4) = CURRENT EQUIPMENT DEFINITION. * (EBUT - EBUT+4) = PREVIOUS EQUIPMENT DEFINITION. CML2 SOM MSLM CML SUBR ENTRY/EXIT LDI ES LMD CN CHECK REDEFINITION SHN 0-13 ZJN CMLX IF NO CHANGE IN STATUS LDD CN CHECK MASS STORAGE SHN 0-13 ZJN CML1 IF NOT MASS STORAGE LDM MSLM NJN CML2 IF NOT MASS STORAGE LIMIT LDC CMLB SET ERROR MESSAGE JMP ILL1 DISPLAY ERROR CML1 AOM MSLM ADVANCE MASS STORAGE LIMIT UJN CMLX RETURN CMLB DATA C*MS LIMIT EXCEEDED.* EDC SPACE 4,20 ** EDC - ENTER ISMD CHANNELS. * * ENTRY (CN - CN+4) = EQUIPMENT ENTRY. * (EQ) = CURRENT EST ORDINAL. * * EXIT (EQ) = CURRENT EST ORDINAL. * IF DEVICE IS AN ISMD, A SEARCH IS MADE FOR THE *CM* * EQUIPMENT WHICH CORRESPONDS TO THE FIRST UNIT - IF * FOUND, THE CHANNEL NUMBERS ARE SET IN THE ISMD * ENTRY. * * USES T1, T2, T3, CM - CM+4. * * CALLS EEB. EDC SUBR ENTRY/EXIT LCN 0 STD T5 EDC1 AOD T5 ADVANCE INDEX LDM TFSD,T5 ZJN EDCX IF END OF TABLE LMD CN+3 NJN EDC1 IF NOT MATCHING DEVICE TYPE LDM TDDB+DVUN+3 SAVE FIRST UNIT EQUIPMENT NUMBER LPN 70 SHN -3 STD T3 LDM TENB,T3 ZJN EDCX IF NO *CM* DEFINED SHN 22-5 ADD EB SHN 6 READ CONTROL MODULE EST ENTRY CRD CM LDD CM+1 SET CHANNEL(S) INTO ISMD ENTRY STM EBUT+1 LDD CM+2 STM EBUT+2 RJM EEB ENTER EQUIPMENT ENTRY LJM EDCX RETURN SDC SPACE 4,15 ** SDC - SET ISMD CHANNELS. * * ENTRY (T1) = *CM* EQUIPMENT NUMBER. * (T2) = FIRST CHANNEL. * (T3) = SECOND CHANNEL. * * EXIT CHANNEL NUMBERS ARE SET IN ALL ISMD DEVICE ENTRIES * WHICH HAVE THE FIRST UNIT ON THIS *CM* EQUIPMENT. * * USES T5. * * CALLS EEB, SID, STA. SDC2 LDD T5 RESTORE *EQ* CONTENTS RJM STA SDC SUBR ENTRY/EXIT LDD EQ SAVE CONTENTS OF *EQ* STD T5 RJM EEB SAVE *EBUT* LCN 0 SDC1 RJM SID SEARCH FOR ISMD DEVICE MJN SDC2 IF NONE FOUND LDM TDDB+DVUN+3 GET FIRST UNIT EQUIPMENT NUMBER LPN 70 SHN -3 LMD T1 NJN SDC1 IF NOT THIS *CM* EQUIPMENT NUMBER LDD T2 SET CHANNEL NUMBERS STM EBUT+1 LDD T3 STM EBUT+2 RJM EEB ENTER EQUIPMENT ENTRY UJN SDC1 FIND NEXT ISMD ENTRY SMD SPACE 4,10 ** SMD - SEARCH MASS STORAGE DEVICE TABLE *TMSD*. * * ENTRY (A) = EQUIPMENT TYPE (DEVICE MNEMONIC). * * EXIT (A) = (MS) = *TMSD* TABLE ADDRESS. * = 0 IF ENTRY NOT FOUND. * * USES MS. SMD1 LDN TMSDL ADVANCE TABLE ADDRESS RAD MS SMD2 LDI MS CHECK ENTRY ZJN SMDX IF END OF TABLE LMD T0 COMPARE DEVICE TYPE LPC 3777 NJN SMD1 IF NO MATCH LDD MS SMD SUBR ENTRY/EXIT STD T0 LDC TMSD SET TABLE ADDRESS STD MS UJN SMD2 ENTER LOOP VKW SPACE 4,10 ** VKW - VALIDATE KEYWORD. * * ENTRY (TA) = *TVRK* ENTRY ADDRESS. * (T3) = *TKWP* ENTRY ADDRESS. * (KA) = CHARACTER ADDRESS OF KEYWORD VALUE. * * EXIT (A) = (AB+4) = 0, IF NULL VALUE SPECIFIED. * TO *ILL* IF INCORRECT KEYWORD OR NULL VALUE SPECIFIED * AND NULL VALUE NOT ALLOWED. * * USES T5, T6, T7, AB+4. * * CALLS CSC. VKW SUBR ENTRY/EXIT LDM 1,T3 GET KEYWORD BIT POSITION SHN 14 LMD TH ERRNZ 1000-SHNI ADJUST IF VALUE CHANGES STM VKWA SHN -14 GET KEYWORD WORD OFFSET STD T6 ADD TA ADDRESS OF *TVRK* WORD STD T5 LDN 1 GENERATE KEYWORD BIT MASK VKWA SHN ** STD T7 STM VKWB STM VKWC LDI T5 CHECK IF KEYWORD ALLOWED LPC 0 VKWB EQU *-1 NJN VKW2 IF KEYWORD IS ALLOWED VKW1 JMP ILL PROCESS INCORRECT ENTRY VKW2 LDC TRQP SET KEYWORD SPECIFIED BIT RAD T6 LDI T6 LPC 0 VKWC EQU *-1 NJN VKW1 IF KEYWORD ALREADY PROCESSED LDD T7 RAI T6 RJM CSC CHECK FOR NULL VALUE NJN VKW3 IF NOT NULL VALUE LDM 2,T3 CHECK *TKWP* SHN 21-5 PJN VKW1 IF NULL VALUE NOT ALLOWED LDN 0 CLEAR VALUE STD AB+4 VKW3 LJM VKWX RETURN STV SPACE 4,10 ** STV - STORE KEYWORD VALUE. * * ENTRY (AB+4) = KEYWORD VALUE. * (T3) = ADDRESS OF KEYWORD PARAMETERS. * (CN - CN+4) = *EQDE* EST WORD. * (EBUT+5 - EBUT+11) = *EQAE* EST WORD. * * EXIT KEYWORD VALUE STORED IN EST ENTRY. STV SUBR ENTRY/EXIT LDM 2,T3 SHN 14 SET SHIFT COUNT LMD TH ERRNZ 1000-SHNI ADJUST IF VALUE CHANGES STM STVB SHN -14 SET EST ENTRY LOCATION LPN 37 STD T0 SBN 5 MJN STV1 IF IN *EQDE* WORD LDC EBUT UJN STV2 PROCESS DATA STV1 LDN CN STV2 ADD T0 STD T7 LDM 3,T3 SET MASK STM STVA LDI T7 UPDATE EST ENTRY LPC ** STVA EQU *-1 STI T7 LDD AB+4 STVB SHN ** POSITION KEYWORD VALUE RAI T7 STORE KEYWORD VALUE UJN STVX RETURN TITLE KEYWORD PROCESSORS. AOK SPACE 4,10 ** AOK - ASSEMBLE OCTAL KEYWORD VALUE. * * ENTRY (A) = 6/MINIMUM VALUE, 12/MAXIMUM VALUE+1 * * EXIT TO *KWP5*, KEYWORD VALUE STORED. * TO *ILL* IF INCORRECT VALUE. * * USES T6, T7. * * CALLS CDR, STV. AOK BSS 0 STD T7 SAVE MAXIMUM VALUE+1 SHN -14 STD T6 SAVE MINIMUM VALUE RJM CDR ASSEMBLE KEYWORD VALUE LDD AB+4 SBD T6 PJN AOK2 IF VALUE .GE. MINIMUM AOK1 JMP ILL PROCESS INCORRECT ENTRY AOK2 LDD AB+4 SBD T7 PJN AOK1 IF VALUE .GT. MAXIMUM RJM STV STORE VALUE JMP KWP5 RETURN PAP SPACE 4,10 *** AP=N. * * APRDECK NUMBER. * N = 0-77B. PAP DATA H*AP* ZJN PAP1 IF NULL VALUE RJM CDR ASSEMBLE APRDECK NUMBER LDD AB+4 SHN -6 ZJN PAP1 IF .LE. 77B JMP ILL PROCESS INCORRECT ENTRY PAP1 LDD AB+4 SET APRDECK NUMBER STM TDDB+DVAP JMP KWP5 RETURN PCC SPACE 4,10 *** CH=C1N/C2N. * * CONCURRENT CHANNEL + PORT NUMBER. * C1 = PRIMARY CHANNEL. * C2 = SECONDARY CHANNEL. * N = A FOR PORT A. * = B FOR PORT B. PCC DATA H*CH* LDN 0 PRESET PORT A DEFINITIONS STD CN+1 STD CN+2 LDN CN+1 PRESET CHANNEL INDEX STD T4 PCC1 RJM CDR ASSEMBLE CHANNEL NUMBER LMN 1RA ZJN PCC2 IF PORT A SPECIFIED LMN 1RB&1RA NJN PCC3 IF NOT PORT B (DEFAULT TO A) LDC 200 SET PORT B INDICATOR STI T4 PCC2 AOD KA ADVANCE CHARACTER ADDRESS PCC3 LDN 40 MARK CHANNEL CONCURRENT RAD AB+4 LMC 4000 MARK CHANNEL ACCESSIBLE RAI T4 SET CHANNEL ENTRY LPN 37 SBM .CCHN MJN PCC5 IF VALID CHANNEL NUMBER PCC4 JMP ILL PROCESS INCORRECT ENTRY PCC5 LDM TCST,AB+4 ZJN PCC6 IF CHANNEL IS NOT DOWN LDC 3000 MARK CHANNEL DOWN RAI T4 PCC6 RJM CSC CHECK SEPARATOR CHARACTER NJN PCC7 IF NOT VALID KEYWORD SEPARATOR LDD CN+1 PRIMARY CHANNEL LMD CN+2 SECONDARY CHANNEL LPN 77 ZJN PCC4 IF DUPLICATE CHANNELS JMP KWP5 RETURN PCC7 LMN 1R/&1R, NJN PCC4 IF NO OTHER CHANNEL AOD KA AOD T4 LMN CN+3 ZJN PCC4 IF MORE THAN TWO CHANNELS SPECIFIED LJM PCC1 PROCESS SECOND CHANNEL PCH SPACE 4,10 *** CH=C1/C2. * * CHANNEL NUMBER. * CN = 2, 4 OR 6, IF EQUIPMENT TYPE IS *DV* OR *DW*. * CN = 0-13B, 20-33B, FOR ALL OTHER EQUIPMENT TYPES. * CN = C0-C11B FOR CONCURRENT CHANNELS 0-11B. PCH DATA H*CH* LDN CN+1 SET CHANNEL BYTE ADDRESS STD T4 LDN CN+1+2 SET MAXIMUM NUMBER OF CHANNELS ALLOWED STD T3 LDN 0 CLEAR CHANNEL BUFFER STD CN+1 STD CN+2 LDD CN+3 LMC 2RRM NJN PCH3 IF NOT TYPE *RM* RJM CDR LDD AB+4 SBN 15 NJN PCH6 IF INCORRECT CHANNEL NUMBER LDC 4000+CHMX LJM PCH9 SET CHANNEL DATA PCH3 LMC 2RDV&2RRM ZJN PCH4 IF TYPE *DV* LMN 1RW&1RV ZJN PCH4 IF TYPE *DW* LDC LDNI SET FIRST CHANNEL STM VCNA UJN PCH7 ASSEMBLE FIRST CHANNEL NUMBER PCH4 LDC VCP STM PCHA PCH5 LDD T4 SBD T3 MJN PCH7 IF MORE CHANNELS ALLOWED PCH6 JMP ILL PROCESS INCORRECT ENTRY PCH7 LDC 4000 SET CHANNEL ACCESSIBLE STI T4 LDI KA CHECK SEPARATOR SBN 1R8 PJN PCH6 IF NULL CHANNEL PARAMETER ADN 1R8-1RC NJN PCH8 IF NOT A CONCURRENT CHANNEL LDN 40 RAI T4 SET CONCURRENCY ATTRIBUTE AOD KA PCH8 RJM CDR ASSEMBLE CHANNEL NUMBER RJM VCN VALIDATE CHANNEL NUMBER * RJM VCP (VALIDATE CHANNEL PAIR) PCHA EQU *-1 LDD AB+4 APPEND CHANNEL NUMBER PCH9 RAI T4 LPN 77 CHECK CHANNEL DATA STD AB+4 SBN 40 MJN PCH11 IF NOT A CONCURRENT CHANNEL SBM .CCHN MJN PCH11 IF VALID CHANNEL NUMBER PCH10 JMP ILL PROCESS INCORRECT ENTRY PCH11 LDM TCST,AB+4 ZJN PCH12 IF CHANNEL IS NOT DOWN LDC 3000 MARK CHANNEL DOWN RAI T4 PCH12 RJM CSC CHECK SEPARATOR CHARACTER NJN PCH13 IF INVALID KEYWORD SEPARATOR JMP KWP5 RETURN PCH13 LMN 1R/&1R, NJN PCH10 IF INVALID SEPARATOR AOD T4 AOD KA LJM PCH5 PROCESS NEXT CHANNEL PEQ SPACE 4,10 *** EQ=N. * * EQUIPMENT (CONTROLLER) NUMBER. * N = 0-7. PEQ DATA H*EQ* LDN 10 SET MAXIMUM VALUE + 1 JMP AOK ASSEMBLE KEYWORD VALUE PET SPACE 4,20 *** ET=MT. * ET=MT/PT. (*DP* TYPE EQUIPMENT ONLY). * ET=MT/PT/CT. (*DP* TYPE EQUIPMENT ONLY). * * EXTENDED MEMORY TYPE (DEFAULT = E1,D1). * MT = MEMORY TYPE. * E1 - ECS 1. * E2 - ECS 2. * LE - LCME. * EM - UEM. * ES - ESM. * SN - STORNET. * PT = PATH TYPE. * D1 - DC135 DDP (DEFAULT FOR MT = E1/E2). * D2 - DC145 PARITY ENHANCED DDP OR ESM LOW SPEED PORT. * (DEFAULT FOR MT = ES OR SN). * CT = CPU TYPE. * NC - NO CPU COUPLER. * (DEFAULT FOR MT = SN). PET DATA H*ET* LDN CFGL GET HARDWARE MODE CRD CM LDD CM+3 SHN 4-12 LPN 20 ADC 4511 4531 = EXTENDED, 4511 = ECS ADDRESSING STM TMTO+ESMP+2 LDC TMTOL*10000+TMTO CHECK MEMORY TYPE RJM CET RJM CSC CHECK SEPARATOR CHARACTER ZJN PET3 IF NO PATH TYPE/CPU TYPE SPECIFIED LMN 1R/&1R, ZJN PET2 IF CORRECT SEPARATOR PET1 JMP ILL PROCESS INCORRECT ENTRY PET2 LDD CN+3 LMC 2RDP NJN PET1 IF NOT TYPE *DP* AOD KA LDI KA LMN 1R/ ZJN PET4 IF NULL PATH TYPE LDC TPTOL*10000+TPTO CHECK PATH TYPE RJM CET RJM CSC CHECK SEPARATOR CHARACTER PET3 ZJN PET5 IF NO CPU TYPE LMN 1R/&1R, NJN PET1 IF NOT CORRECT SEPARATOR PET4 AOD KA LDC TCTOL*10000+TCTO CHECK CPU TYPE RJM CET PET5 JMP KWP5 RETURN SPACE 4,10 ** EXTENDED MEMORY TYPE OPTION TABLES. * * ENTRY = 3 WORDS *T, 12/ OP,12/ MASK,1/D,2/ R,3/ MT,3/ CT,3/ PT * * OP = MNEMONIC. * MASK = *DILL* BYTE 3 MASK. * R = RESERVED. * D = DEVICE SUPPORTS DIRECT TRANSFER. * MT = MEMORY TYPE. * 0 = RESERVED. * 1 = E1 (ECS 1). * 2 = E2 (ECS 2). * 3 = LE (LCME). * 4 = EM (UEM). * 5 = ES (ESM). * 6 = SN (STORNET). * 7 = RESERVED. * * CT = CPU TYPE * 0 = NO CPU PATH. * 1 = ECS MODE. * 2 = LCME. * 3 = ESM MODE. * 4 = UEM CPU INTERFACE. * 5 - 7 = RESERVED. * * PT = PP PATH TYPE. * 0 = NO DDP. * 1 = DC145 PARITY ENHANCED DDP * OR ESM LOW SPEED PORT. * 2 = DC135 DDP. * 3-7 = RESERVED TMTO BSS 0 TABLE OF MEMORY TYPE OPTIONS CON 2RE1,0,4112 ECS 1, DC135 DDP CON 2RE2,0,4212 ECS 2, DC135 DDP CON 2RLE,0,4320 LCME CON 2REM,0,4440 UEM ESMP EQU *-TMTO POINTER FOR ESM ENTRY CON 2RES,0,4511 ESM, LSP CON 2RSN,0,0601 STORNET TMTOL EQU *-TMTO TPTO BSS 0 TABLE OF PATH TYPE OPTIONS CON 2RD1,-7,2 DC135 DDP CON 2RD2,-7,1 DC145 PARITY ENHANCED DDP TPTOL EQU *-TPTO TCTO BSS 0 TABLE OF CPU TYPE OPTIONS CON 2RNC,-4077,1 NO CPU COUPLER TCTOL EQU *-TCTO PIB SPACE 4,10 *** IB=N. * * INSTALLATION BYTE. * N = 0B - 7777B. PIB DATA H*IB* RJM AOD ASSEMBLE INSTALLATION BYTE VALUE STM EBUT+5 JMP KWP5 RETURN PMA SPACE 4,10 *** MA=STATUS. * * EXTENDED MEMORY MAINTENANCE MODE. * STATUS = *ON* OR *OFF*. PMA DATA H*MA* RJM AST ASSEMBLE MAINTENANCE MODE STATUS SHN 21-0 PJN PMA1 IF *ON* OR *OFF* JMP ILL PROCESS INCORRECT ENTRY PMA1 LDM TDDB+DVED SET STATUS SHN 23-11 SCN 2 LMD AB+4 LMN 2 SHN 11-1 STM TDDB+DVED JMP KWP5 RETURN PMC SPACE 4,10 *** MC=N. * * ESM SIDE DOOR PORT CHANNEL NUMBER. * N = 0-13B, 20B-33B. PMC DATA H*MC* RJM CDR ASSEMBLE CHANNEL NUMBER LDC LDNI SET FIRST CHANNEL STM VCNA RJM VCN VALIDATE CHANNEL NUMBER RJM STV STORE VALUE JMP KWP5 RETURN PPN SPACE 4,10 *** PN=N. * * PARTITION NUMBER. * PN = 1-17B PPN DATA H*PN* RJM AOD ASSEMBLE PARTITION NUMBER LDM MSSL,MS LPN 17B ADN 1 SBD AB+4 SBM PEIB CHECK NUMBER OF PARTITIONS MJN PPN1 IF PARTITION OUT OF RANGE LDD AB+4 SAVE FIRST PARTITION NUMBER STM PEIC AOM PEIA INDICATE *PN* PARAMETER PROCESSED. JMP KWP5 RETURN PPN1 JMP ILL PROCESS INCORRECT ENTRY PST SPACE 4,10 *** ST=STATUS. * * DEVICE STATUS. * STATUS = *ON* OR *IDLE* OR *OFF* OR *DOWN*. * * *ON* OR *IDLE* = EQUIPMENT AVAILABLE FOR ACCESS. * *OFF* OR *DOWN* = EQUIPMENT UNAVAILABLE FOR ACCESS. * * *OFF* OR *DOWN* IS NOT VALID FOR AN EQUIPMENT WHICH IS * DEFINED AS A SYSTEM, FAMILY, OR CHECKPOINT DEVICE. PST DATA H*ST* RJM AST ASSEMBLE STATUS ZJN PST3 IF *ON* LPN 2 NJN PST2 IF *OFF* OR *DOWN* UJN PST3 PROCESS *IDLE* PST1 JMP ILL PROCESS INCORRECT ENTRY PST2 LDD CN SHN 21-12 MJN PST1 IF SYSTEM DEVICE LDM .PFNL+3 SBD EQ ZJN PST1 IF FAMILY EQUIPMENT LDM TDDB+DVPR LPN 2 NJN PST1 IF CHECKPOINT DEVICE PST3 RJM STV STORE VALUE JMP KWP5 RETURN PSZ SPACE 4,10 *** SZ=N. * * SIZE OF EXTENDED MEMORY. * N = VALUE (ECS 1 AVAILABLE) (ECS 2, ESM, OR LCME AVAILABLE) * 400B (125K) (131K) * 1000B (250K) (262K) * 2000B (500K) (524K) * 4000B (1000K) (1048K) * 10000B (2000K) (2096K) * * N = 10B (4K) THROUGH 10000B-MINCM (2000K-MINCM) FOR UEM. * * FOR UEM, ECS 2, LCM AND ESM, SZ MAY BE ANY VALUE BETWEEN AND * INCLUDING 10B (4K WORDS) AND 10000B (2M WORDS). THE SUM OF * UEM SIZE + NVE SIZE + MINCM SIZE (65K USED IF NOT SPECIFIED) * MUST BE .LE. THE PHYSICAL MAIN MEMORY SIZE RETURNED BY *CTI*. * * FOR UEM AND ESM, *SZ* MAY BE UP TO 100000B (16M WORDS). PSZ DATA H*SZ* RJM AOD ASSEMBLE SIZE STM TDDB+DVES+1 LDD AB+3 STM TDDB+DVES SCN 17 NJN PSZ1 IF TOO MANY DIGITS LDM EBUT+7 LPC 300 STD T1 SAVE PREVIOUS XM SHIFT LDD AB+3 SHN 14 LMD AB+4 SBN 10 PJN PSZ2 IF .GE. 10K PSZ1 JMP ILL PROCESS INCORRECT ENTRY PSZ2 ADN 10-1 SHN -14 ZJN PSZ5 IF .LE. 2M WORDS SHN -1 ZJN PSZ4 IF .LE. 4M WORDS SHN -1 ZJN PSZ3 IF .LE. 8M WORDS SHN -1 NJN PSZ1 IF .GT. 16M WORDS LDN 1 PSZ3 ADN 1 PSZ4 ADN 1 PSZ5 SHN 6 SBD T1 MJN PSZ6 IF PREVIOUS SHIFT OKAY RAM EBUT+7 PSZ6 JMP KWP5 RETURN PTS SPACE 4,10 *** TS=N. * * TRACK SIZE FOR EXTENDED MEMORY. * N = VALUE (TRACK SIZE IN SECTORS) * 20 (20B) * 40 (40B) * 100 (100B) * 200 (200B) * * EXTENDED MEMORY MAY BE ALLOCATED IN TRACKS OF 20B, 40B, 100B * AND 200B SECTORS, ALLOWING THE SIZE OF EXTENDED MEMORY TO * EXCEED THE PREVIOUS 2M WORD LIMIT AND EXTEND TO 16MW. PTS DATA H*TS* LDM EBUT+7 SAVE PREVIOUS XM SHIFT LPC 300 STD T3 RJM AOD ASSEMBLE TRACK SIZE SBN 20 ZJN PTS3 IF 20B SBN 40-20 ZJN PTS2 IF 40B SBN 100-40 ZJN PTS1 IF 100B SBD HN NJN PTS4 IF NOT 200B LDN 1 PTS1 ADN 1 PTS2 ADN 1 SHN 6 SBD T3 MJN PTS3 IF PREVIOUS SHIFT OKAY RAM EBUT+7 PTS3 JMP KWP5 RETURN PTS4 JMP ILL PROCESS INCORRECT ENTRY PUN SPACE 4,10 *** UN=U1. * UN=U1/.../UN. * UN=U1-UN. (HORIZONTALLY CONTIGUOUS UNITS) * * UNIT NUMBER. * UN = 0-77B (MAXIMUM UNIT NUMBER AND NUMBER OF UNITS * ALLOWED ARE DEVICE TYPE DEPENDENT.) PUN DATA H*UN* LDI KA SBN 1R8 PJN PUN1 IF NULL UNIT PARAMETER RJM CDR ASSEMBLE UNIT NUMBER RJM CSC ZJN PUN3 IF SINGLE UNIT SPECIFIED LMN 1R/&1R, ZJN PUN3 IF MULTIPLE UNITS SPECIFIED LMN 1R-&1R/ NJN PUN1 IF INCORRECT SEPARATOR LDD AB+4 SAVE FIRST UNIT NUMBER STD T6 AOD KA RJM CDR ASSEMBLE LAST UNIT NUMBER RJM CSC ZJN PUN2 IF NOT INCORRECT SEPARATOR PUN1 JMP ILL PROCESS INCORRECT ENTRY PUN2 LDD AB+4 SET LAST UNIT NUMBER RAM SUNA LDD T6 SBD AB+4 PJN PUN1 IF INCORRECT RANGE RAD AB+4 RESET FIRST UNIT NUMBER PUN3 LDM MSUL,MS SET UP MAXIMUM UNIT NUMBER LPN 77 RAM SUNC LDC DVUNL*10000B+TDDB+DVUN DESCRIPTOR TABLE WORD/COUNT RJM SUL SET UNIT LIST LDM MSUL,MS CHECK UNIT COUNT SHN -6 LPN 7 SBD T6 MJN PUN1 IF INCORRECT UNIT COUNT LDD T6 SAVE UNIT COUNT-1 STD CN+4 LDM MSNT,MS SHN 0-13 ZJN PUN4 IF NOT *LDAM* TYPE DEVICE LDD CN SET *LDAM* STATUS IN EST LPC 7577 ADC 200 STD CN PUN4 JMP KWP5 RETURN TITLE MISCELLANEOUS KEYWORD SUBROUTINES. AODSUB AST SPACE 4,15 ** AST - ASSEMBLE STATUS. * * EXIT (A) = (AB+4) = STATUS. * 0 = ON. * 1 = IDLE. * 2 = OFF. * 3 = DOWN. * * USES KB, ST. * * CALLS AKL7. AST1 DATA C*DOWN* LDN 3 UJN AST5 SET *DOWN* STATUS AST2 DATA C*OFF* LDN 2 UJN AST5 SET *OFF* STATUS AST3 DATA C*IDLE* LDN 1 UJN AST5 SET *IDLE* STATUS AST4 DATA C*ON* LDN 0 AST5 STD AB+4 SET STATUS AST SUBR ENTRY/EXIT LDC ASTA-1 STD ST SET SYNTAX TABLE ADDRESS LDD KA STD KB LJM AKL7 ASSEMBLE STATUS ASTA CON AST4 CON AST2 CON AST1 CON AST3 CON 0 END OF STATUS SYNTAX TABLE CDRSUB CET SPACE 4,10 ** CET - CHECK EXTENDED MEMORY TYPE. * * ENTRY (A) = 6/TL,12/TA. * TL = TABLE LENGTH. * TA = FWA OF TABLE. * * EXIT OPTION MERGED INTO *DILL* BYTE 3. * TO *ILL* IF ERROR. * (KA) ADVANCED. * * USES AB, T1, T7. CET SUBR ENTRY/EXIT STD T7 SHN -14 ADD T7 SET LWA+1 OF TABLE STD T1 LDI KA ASSEMBLE NAME SHN 6 LMM 1,KA STD AB LDN 2 ADVANCE CHARACTER ADDRESS RAD KA CET1 LCN 3 SEARCH OPTION TABLE RAD T1 SBD T7 PJN CET3 IF MORE OPTIONS CET2 JMP ILL PROCESS INCORRECT ENTRY CET3 LDI T1 LMD AB NJN CET1 IF OPTION NOT FOUND LDM 2,T1 CHECK MAINFRAME REQUIREMENTS SHN -6 LPN 7 SBN 3 MJN CET6 IF ECS OR PATH TYPE/CPU TYPE OPTION ZJN CET4 IF LCME SBN 4-3 NJN CET6 IF NOT UEM LDD CN+3 LMC 2RDE NJN CET2 IF UEM AND NOT TYPE *DE* LDD HO SHN 21-13 PJN CET6 IF CM EXTENSION ON MAINFRAME UJN CET2 PROCESS INCORRECT ENTRY CET4 LDD HO SHN 21-11 PJN CET2 IF NOT CYBER 176 CET6 LDM 1,T1 SET MASK STM CETA LDM TDDB+DVED MERGE NEW OPTION INTO *DILL* BYTE 3 LPC ** CETA EQU *-1 LMM 2,T1 STM TDDB+DVED LJM CETX RETURN CSC SPACE 4,10 ** CSC - CHECK SEPARATOR CHARACTER. * * ENTRY (KA) = ADDRESS OF SEPARATOR CHARACTER * * EXIT (A) = 0 IF SEPARATOR CHARACTER IS *,* OR *.*. CSC SUBR ENTRY/EXIT LDI KA LMN 1R. ZJN CSCX IF *.* LMN 1R,&1R. UJN CSCX RETURN SUL SPACE 4,10 ** SUL - SET UNIT LIST. * * ENTRY (A) = 6/LIST WORD COUNT, 12/ LIST WORD ADDRESS. * (AB+4) = FIRST UNIT NUMBER. * * EXIT (T6) = UNIT COUNT - 1. * UNIT LIST SET IN SPECIFIED ADDRESS. * * USES T0, T5, T6. * * CALLS SUN. SUL SUBR ENTRY/EXIT STM SULA FWA OF LIST STD T5 SHN -14 NUMBER OF WORDS RAD T5 LWA+1 OF LIST LDN 0 INITIALIZE UNIT COUNT STD T6 SUL1 SOD T5 SBM SULA MJP ILL IF TOO MANY ENTRIES FOR LIST LDD AB+4 STI T5 SET LOWER UNIT RJM SUN GET NEXT UNIT MJN SUL2 IF END OF LIST SHN 6 SET UPPER ENTRY RAI T5 RJM SUN GET NEXT UNIT PJN SUL1 IF NOT END OF LIST SUL2 SOD T5 SBM SULA MJN SULX IF ALL DONE WITH LIST LDN 0 CLEAR EMPTY LIST ENTRIES STI T5 UJN SUL2 CHECK IF DONE SULA BSS 1 TABLE ADDRESS STORAGE SUN SPACE 4,20 ** SUN - SET UNIT NUMBER. * * ENTRY (MS) = *TMSD* ADDRESS. * (AB+4) = CURRENT UNIT NUMBER. * * EXIT (A) = (AB+4) = NEXT UNIT NUMBER. * = -1 IF END OF UNITS. * (T6) = (T6) + 1 IF NEXT UNIT FOUND. * TO *ILL* IF ERROR. * * USES AB+4, KA, T6. * * CALLS CDR, CSC. SUN3 SBD AB+4 ZJN SUN4 IF END OF ENTRIES AOD T6 AOD AB+4 ADN 1 SUN4 SBN 1 SUN SUBR ENTRY/EXIT LDD AB+4 SUNB LPN 0 NJN SUN1 IF NUMBER OUT OF RANGE SUNC LDN 0 MAXIMUM VALUE SBD AB+4 MJN SUN1 IF NUMBER .GT. LIMIT SUNA LDN 0 NJN SUN3 IF RANGE OF ENTRIES RJM CSC ZJN SUN4 IF END OF ENTRIES LMN 1R/&1R, ZJN SUN2 IF MORE ENTRIES SUN1 JMP ILL PROCESS INCORRECT ENTRY SUN2 AOD KA LDI KA SBN 1R8 PJN SUN1 IF NULL ENTRY RJM CDR ASSEMBLE NEXT ENTRY AOD T6 LDD AB+4 UJN SUNX RETURN VCP SPACE 4,10 ** VCP - VALIDATE CHANNEL PAIR. * * ENTRY (AB+4) = CHANNEL PAIR NUMBER. * * EXIT TO *ILL* IF INCORRECT CHANNEL NUMBER. * * USES T1. VCP2 LDD T1 SHN 1 SBD AB+4 NJN VCP1 IF NOT VALID CHANNEL PAIR NUMBER VCP SUBR ENTRY/EXIT LDN 4 STD T1 VCP1 SOD T1 NJN VCP2 IF MORE VALID CHANNEL PAIRS JMP ILL PROCESS INCORRECT ENTRY VCN SPACE 4,10 ** VCN - VALIDATE CHANNEL NUMBER. * * ENTRY (AB+4) = CHANNEL NUMBER. * * EXIT TO *ILL* IF INCORRECT CHANNEL NUMBER. VCN2 ADN 20 SBM .CHN PJN VCN1 IF NOT LEGAL CHANNEL VCN SUBR ENTRY/EXIT VCNA LDN 0 ZJN VCN0 IF FIRST CHANNEL LDD AB+4 ZJN VCN1 IF .EQ. 0 VCN0 AOM VCNA LDD AB+4 GET CHANNEL NUMBER SBN 14 MJN VCNX IF .LE. 13B SBN 20-14 PJN VCN2 IF .GE. 20B VCN1 JMP ILL PROCESS INCORRECT ENTRY TVRK SPACE 4,10 **** TVRK - TABLE OF VALID AND REQUIRED KEYWORDS. TVRK BSS 0 TBKW DA,(ST,UN,CH,AP,IB),(UN,CH) TVRKL EQU *-TVRK TBKW DB,(ST,UN,CH,AP,IB),(UN,CH) TBKW DC,(ST,UN,CH,AP,IB),(UN,CH) TBKW DD,(ST,UN,AP,IB),(UN) TBKW DE,(ST,MA,ET,SZ,AP,MC,TS,IB),(SZ) TBKW DF,(ST,UN,CH,AP,IB),(UN,CH) TBKW DG,(ST,UN,AP,IB),(UN) TBKW DH,(ST,UN,CH,AP,IB),(UN,CH) TBKW DI,(ST,UN,CH,AP,IB),(UN,CH) TBKW DJ,(ST,UN,CH,AP,IB),(UN,CH) TBKW DK,(ST,UN,CH,AP,IB),(UN,CH) TBKW DL,(ST,UN,CH,AP,IB),(UN,CH) TBKW DM,(ST,UN,CH,AP,IB),(UN,CH) TBKW DN,(ST,EQ,UN,CH,AP,IB),(UN,CH) TBKW DP,(ST,MA,ET,SZ,CH,AP,MC,TS,IB),(SZ,CH) TBKW DQ,(ST,UN,CH,AP,IB),(UN,CH) TBKW DR,(ST,UN,CH,AP,IB),(UN,CH) TBKW DV,(ST,UN,CH,AP,IB),(UN,CH) TBKW DW,(ST,UN,CH,AP,IB),(UN,CH) TBKW DX,(ST,UN,CH,AP,IB),(UN,CH) TBKW DY,(ST,UN,CH,AP,IB),(UN,CH) TBKW DZ,(ST,UN,CH,AP,IB),(UN,CH) TBKW EA,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH) TBKW EB,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH) TBKW EC,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH) TBKW ED,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH) TBKW EE,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH) TBKW EF,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH) TBKW EG,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH) TBKW EH,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH) TBKW EI,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) TBKW EJ,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) TBKW EK,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) TBKW EL,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) TBKW EM,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) TBKW EN,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) TBKW EO,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH) TBKW EP,(ST,EQ,UN,CH,AP,IB),(EQ,UN,CH) TBKW ES,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) TBKW EU,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) TBKW EV,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) TBKW EW,(ST,EQ,UN,CH,AP,IB,PN),(EQ,UN,CH) CON 0 END OF TABLE **** TKWP SPACE 4,10 **** TKWP - TABLE OF KEYWORD PARAMETERS. TKWP BSS 0 TBKP AP,1,DVAP,00B,0000B APRDECK NUMBER TKWPL EQU *-TKWP TKWPA TBKP CH,0,1,00B,7777B CHANNEL(S) TKWPB TBKP EQ,0,4,11B,0777B EQUIPMENT (CONTROLLER) NUMBER TBKP ET,0,DVED,00B,7777B EXTENDED MEMORY TYPE TBKP IB,0,5,00B,0000B INSTALLATION BYTE TBKP MA,0,DVED,11B,6777B MAINTENANCE MODE TBKP MC,0,7,00B,7700B MAINTENANCE CHANNEL TBKP PN,0,10B,6,6077B PARTITION NUMBER TBKP ST,0,0,0,7774B STATUS TBKP SZ,0,DVNT,00B,0000B EXTENDED MEMORY SIZE TBKP TS,0,0,00B,0000B EXTENDED MEMORY TRACK SIZE TBKP UN,0,4,00B,7777B UNIT NUMBER(S) CON 0 END OF TABLE **** TRQP SPACE 4,10 ** TRQP - TABLE OF REQUIRED PARAMETERS. * * (TRQP) .NE. 0 IF INITIAL ENTRY OF THIS EQUIPMENT. * (TRQP+1)-(TRQP+KTWC) = REQUIRED KEYWORDS - BIT CORRESPONDING * TO *TVRK* BITS SET WHEN KEYWORD IS SPECIFIED. TRQP BSSZ KTWC+1 TBLM SPACE 4,10 ** TBLM - GENERATE TABLE OF MASS STORAGE PROCESSING PARAMETERS. * * TBLM EQ * * ENTRY (EQ) = MASS STORAGE EQUIPMENT MNEMONIC. PURGMAC TBLM TBLM MACRO EQ DT_EQ VFD 1/SD_EQ,11/2R_EQ CON /EQ1/P_EQ VFD 1/LDAM_EQ,11/NT_EQ VFD 3/BF_EQ,3/PK_EQ-1,6/NU_EQ-1 CON CT_EQ VFD 1/TT_EQ,11/SL_EQ+PNUN_EQ-1 VFD 6/DI_EQ,6/2R"DRN_EQ"-1RD*100 VFD 6/C"FW_EQ",6/AI_EQ CON CYPN_EQ TBLM ENDM TMSD SPACE 4,10 ** TMSD - TABLE OF MASS STORAGE DEVICES. * ENTRY = TMSDL WORDS. * THE ENTRIES IN *TMSD* ARE REFERENCED WITH THE FOLLOWING TAGS. TMSD BSS 0 LOC 0 BSS 1 1/ SHARED FLAG, 11/ DEVICE MNEMONIC MSPR BSS 1 12/ PROCESSOR ADDRESS MSNT BSS 1 1/ LDAM FLAG, 11/ NUMBER OF TRACKS MSUL BSS 1 3/ FLAGS, 3/ MAX PACKS, 6/ MAX UNIT NO. MSCT BSS 1 12/ DEFAULT NUMBER OF CATALOG TRACKS MSSL BSS 1 1/ FULL TRACK FLAG, * 11/ SECTOR LIMIT + MAX PARTITION NO. MSDI BSS 1 6/ DRIVER INDEX, * 6/ DRIVER NAME (LAST CHARACTER) MSAI BSS 1 6/ CONTROLWARE LOAD, 6/ ALGORITHM INDEX MSCP BSS 1 12/ CYLINDERS PER PARTITION TMSDL BSS 0 TABLE LENGTH ORG TMSD LIST G TBL "MSEQ" PURGMAC TBLM LIST * CON 0 END OF TABLE SPACE 4,10 QUAL * EQ1S EQU *+4-EQXO *EQ1* SIZE EQ1L EQU EQ1S/5+77 *EQ1* OVERLAY LENGTH ERRNG 7777-*-4 OVERFLOW WHEN LOADING *EQ1* TTL SET/EQ2 - PROCESS NON-MASS STORAGE *EQXXX=* ENTRY. TITLE IDENT EQ2,/EQ2/EQM QUAL EQ2 ORG EQXO *COMMENT SET - PROCESS NON-MASS STORAGE *EQXXX=* ENTRY. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. SPACE 4,10 ** MICRO DEFINITIONS. KWM MICRO 1,,*CH,CW,DR,EQ,FC,IB,ID,LS,ND,NT,PA,PI,PS,PT,SA,ST,TF, ,TN,UN,W0,W1* .A MICCNT KWM .A SET .A+1 KWMC EQU .A/3 KEYWORD COUNT .A SET KWMC+11D KTWC EQU .A/12D KEYWORD TABLE WORD COUNT TITLE EQUIPMENT DEFINITIONS. EQM SPACE 4,10 *** EQXXX=TY,P1=V1,...,PN=VN. * * SET NON MASS STORAGE EQUIPMENT XXX WITH * * TY = TYPE (2 CHARACTERS) * * DEVICE TYPES SUPPORTED - * * AT = ACS CARTRIDGE MAGNETIC TAPE DRIVE. * CC = 6683 SATELLITE COUPLER. * CI = *CYBIS* DEVICE. * CM = CONTROL MODULE. * CP = 415 CARD PUNCH. * CR = 405 CARD READER. * CT = CARTRIDGE MAGNETIC TAPE DRIVE. * D1 = *CYBIS* DEVICE. * D2 = *CYBIS* DEVICE. * D3 = *CYBIS* DEVICE. * D4 = *CYBIS* DEVICE. * LQ = 512 LINE PRINTER. * LR = 580-12 LINE PRINTER. * LS = 580-16 LINE PRINTER. * LT = 580-20 LINE PRINTER. * LX = 5870 NON-IMPACT PRINTER. * LY = 5970 NON-IMPACT PRINTER. * MP = MAP III. * MT = 7-TRACK MAGNETIC TAPE DRIVE. * NC = NAD. * ND = CDNA MAINFRAME INTERFACE (MDI). * NI = *CYBIS* DEVICE. * NO = *CYBIS* DEVICE. * NP = 255X NETWORK PROCESSING UNIT. * NT = 9-TRACK MAGNETIC TAPE DRIVE. * OD = OPTICAL DISK * RM = TWO PORT MULTIPLEXER. * RP = RING PORT. * SP = *CYBIS* DEVICE. * SS = MSE M860 CONTROLLER. * TT = TIME-SHARING MULTIPLEXER. * NOTE - THE TERMINAL DRIVER SCANS ONLY THE FIRST * *N* NUMBER OF PORTS (ZERO THRU *N*) * SPECIFIED BY THE *PT=* KEYWORD WHEN THE * DEVICE TYPE (TY) IS *TT*. IF NO *PT=* * KEYWORD IS GIVEN, ALL 64 PORTS ARE * SCANNED. * ** = NONSTANDARD EQUIPMENT ENTRY. * * AND PARAMETERS WHERE P1,...,PN ARE THE FOLLOWING KEYWORDS * * CH = CHANNEL NUMBER(S). * CW = CONTROL MODULE CONTROLWARE. * DR = ACS DRIVE INDEX (WITHIN PANEL). * EQ = EQUIPMENT (CONTROLLER) NUMBER. * FC = FORMS CODE. * IB = INSTALLATION BYTE. * ID = UNIT RECORD ID. * LS = ACS LSM INDEX (WITHIN ACS). * ND = NPU NODE NUMBER. * NT = MDI NODE NUMBER. * PA = ACS PANEL INDEX (WITHIN LSM). * PI = PIP INDEX. * PS = PAPER SIZE. * PT = PORT NUMBER OR NUMBER OF PORTS. * SA = 255X SAM (SYSTEM AUTOSTART MODULE) STATUS. * ST = STATUS. * TF = TAPE FLAGS. * TN = PRINT TRAIN. * UN = UNIT NUMBER. * W0 = OCTAL VALUE OF EST ENTRY - WORD ZERO. * W1 = OCTAL VALUE OF EST ENTRY - WORD ONE. EQM BSS 0 LDN 2 ADVANCE CHARACTER ADDRESS RAD KA RJM CDR ASSEMBLE DIGITS LMN 1R= ZJN EQM2 IF *=* EQM1 JMP ILL PROCESS INCORRECT ENTRY EQM2 AOD KA SKIP CHARACTER LDD AB+4 CHECK EST ORDINAL SBN NOPE MJN EQM1 IF PSEUDO EQUIPMENT SBK ESMX-NOPE PJN EQM1 IF EST ORDINAL EXCEEDS MAXIMUM LDD AB+4 SET EST ORDINAL RJM STA READ EBUF ENTRY RJM CDR LMN 1R. NJP EQM5 IF NOT *EQXXX=.* LDD AB+4 NJN EQM1 IF *EQXXX = N.* RJM CDC CLEAR ISMD CHANNELS LDN 0 CRD CN CLEAR DEVICE DESCRIPTION CRM EBUT+5,ON ERRNG 5-TDDCL CODE DEPENDS ON VALUE CRM TDDB,DV LDD EQ LMD EN NJN EQM4 IF NOT EXTENDED MEMORY EQUIPMENT STD EN CLEAR EST ORDINAL STM EMSC DE/DP SHIFT COUNT LDN TAXXL CLEAR EXTENDED MEMORY ALLOCATION TABLES STD T1 LDD EQ LMN LDEQ NJN EQM3 IF NOT LINK DEVICE STD PD EQM3 LDN 0 STM TAXM-1,T1 SOD T1 NJN EQM3 IF MORE TO CLEAR CRM EMTY,ON EQM4 LJM EQM19 CLEAR EST * PROCESS TYPE. EQM5 LDI KA ASSEMBLE TYPE SHN 6 LMM 1,KA STD AB+4 LDM EBUT+3 ZJN EQM7 IF EMPTY ENTRY LMD AB+4 ZJN EQM8 IF NO CHANGE IN DEVICE TYPE LDD AB+4 LMC 2R** ZJN EQM8 IF NONSTANDARD EQUIPMENT ENTRY RJM CDC CLEAR ISMD CHANNELS EQM7 LDN 0 CLEAR DEVICE DESCRIPTION CRD CN CRM EBUT+5,ON ERRNG 5-TDDCL CODE DEPENDS ON VALUE CRM TDDB,DV LDD AB+4 STD CN+3 AOM TRQP SET INITIAL ENTRY FLAG UJN EQM10 SEARCH FOR DEVICE EQM8 LDN JSNL MOVE EST ENTRY TO DIRECT CELLS CWM EBUT,ON SBN 1 CRD CN * SEARCH FOR DEVICE IN EQUIPMENT TYPE TABLE. EQM10 LDC TETY-TETYL SET EQUIPMENT TYPE TABLE STD MS EQM11 LDN TETYL ADVANCE TABLE ADDRESS RAD MS LDI MS NJN EQM13 IF NOT END OF TABLE EQM12 JMP ILL PROCESS INCORRECT ENTRY EQM13 LMD AB+4 CHECK TYPE NJN EQM11 IF NO MATCH LDN 2 SKIP EQUIPMENT MNEMONIC RAD KA LDM EQPR,MS STD T1 LDC TVRK-TVRKL SET TABLE OF VALID KEYWORDS STD TA EQM16 LDN TVRKL ADVANCE TABLE ADDRESS RAD TA LDI TA ZJN EQM12 IF END OF TABLE LMD AB+4 NJN EQM16 IF NO MATCH LDM TRQP ** EXIT TO PROCESSOR WITH - * * (A) = (TRQP) = PREVIOUS DEFINITION STATUS. * (CN - CN+4) = WORD TO BUILD EST ENTRY. * (TDDB) = BUFFER TO BUILD *TDDE* ENTRY. * (MS) = *TETY* ADDRESS. * (TA) = *TVRK* ENTRY ADDRESS. RJM 0,T1 LDM TRQP ZJN EQM20 IF NOT INITIAL ENTRY EQM19 RJM CML CHECK MASS STORAGE LIMIT RJM RMD RESET MASS STORAGE DEVICE EQM20 LDN JSNL CWD CN MOVE EST ENTRY TO BUFFER CRM EBUT,ON RJM EEB ENTER EQUIPMENT DEFINITION RJM EDC ENTER ISMD CHANNELS RJM CLE CHECK LAST EQUIPMENT JMP KBR RETURN TETY SPACE 4,10 **** TETY - TABLE OF EQUIPMENT TYPES. * ENTRY = 3 WORDS. * * 12/ NAME, 12/ ADDR, 6/ UN, 6/ CH * NAME EQUIPMENT MNEMONIC * ADDR ADDRESS OF PROCESSOR * UN MAXIMUM UNIT NUMBER ALLOWED (2**N-1). * CH MAXIMUM CHANNELS ALLOWED * * NOTE - MASS STORAGE DEVICES ARE IN TABLE *TMSD*. TETY BSS 0 EQPR EQU 1 PROCESSOR ADDRESS * UNIT RECORD DEVICES. TEQP CP,KWP,0,1 TETYL EQU *-TETY TEQP CR,KWP,0,1 TEQP LQ,LPT,0,1 TEQP LR,LPT,0,1 TEQP LS,LPT,0,1 TEQP LT,LPT,0,1 TEQP LX,LXT,0,1 TEQP LY,LXT,0,1 * COMMUNICATIONS / NETWORK DEVICES. TEQP CC,ALD,0,1 TEQP NC,NAD,17,1 TEQP ND,KWP,0,1 TEQP NP,KWP,0,1 TEQP NQ,KWP,0,1 TEQP RM,ALD,1,1 TEQP TT,ALD,10,1 * *CYBIS* DEVICES. TEQP CI,KWP,7,2 TEQP D1,KWP,7,2 TEQP D2,KWP,7,2 TEQP D3,KWP,7,2 TEQP D4,KWP,7,2 TEQP NI,KWP,7,2 TEQP NO,KWP,7,2 TEQP SP,KWP,7,2 * MAGNETIC TAPE DEVICES. TEQP AT,MMT,17,2 TEQP CT,MMT,17,2 TEQP MT,MMT,17,2 TEQP NT,MMT,17,2 * MISCELLANEOUS DEVICES. TEQP CM,CMD,0,2 TEQP MP,KWP,0,1 TEQP OD,ALD,17,1 OPTICAL DISK TEQP RP,KWP,0,1 TEQP SS,KWP,17,2 * INSTALLATION DEFINED DEVICES. TEQP **,KWP,0,0 CON 0 END OF TABLE **** TITLE EQUIPMENT DEFINITION PROCESSORS. ALD SPACE 4,10 ** ALD - PROCESS ALLOCATABLE DEVICE. ALD SUBR ENTRY/EXIT ZJN ALD1 IF NOT INITIAL EQUIPMENT ENTRY LDC 2000 SET ALLOCATABLE DEVICE RAD CN ALD1 RJM KWP PROCESS KEYWORDS UJN ALDX RETURN CMD SPACE 4,10 *** EQXXX=CM. CMD SUBR ENTRY/EXIT LDM ISPF SHN 21-13 PJN CMD2 IF CYBER 810/815/825/830 CMD1 JMP ILL PROCESS INCORRECT ENTRY CMD2 LDM TRQP ZJN CMD3 IF NOT INITIAL ENTRY LDN CMCW SET DEFAULT CONTROLWARE STD AB+4 LDC PLCW SET KEYWORD PARAMETER ADDRESS STD T3 RJM STV STORE KEYWORD VALUE CMD3 RJM KWP PROCESS KEYWORDS LDD CN+4 GET EQUIPMENT NUMBER SHN -11 STD T6 LDM TENB,T6 ZJN CMD4 IF UNIQUE EQUIPMENT NUMBER LMD EQ NJN CMD1 IF NOT CURRENT EST ORDINAL CMD4 RJM CDC CLEAR ISMD CHANNELS LDD EQ SET EST ORDINAL STM TENB,T6 LJM CMDX RETURN LPT SPACE 4,10 *** EQXXX=LQ. * EQXXX=LR-P. * EQXXX=LS-P. * EQXXX=LT-P. * * IF *-P* IS PRESENT, SPECIFIES 580 PFC PRINTER. LPT1 AOD KA LDC 200 SET 580 PFC BIT RAD CN LPT2 RJM KWP PROCESS KEYWORDS LPT SUBR ENTRY/EXIT LDD CN CLEAR 580 PFC BIT LPC 7577 STD CN LDI KA CHECK SEPARATOR LMN 1R- NJN LPT2 IF NOT *-* AOD KA SKIP *-* LDI KA CHECK FOR 580 PFC LMN 1RP ZJN LPT1 IF 580 PFC JMP ILL PROCESS INCORRECT ENTRY LXT SPACE 4,10 *** EQXXX=LX. * EQXXX=LY. LXT1 RJM KWP PROCESS KEYWORDS LDD CN+1 LPN 37 STD T1 LDN CNCX SET NO LOAD OF NIP CONTROLWARE STM TCHS,T1 RJM SCC UPDATE CONTROLWARE TABLE LXT SUBR ENTRY/EXIT LDD CN LPN 57 LMN 20 SET CONTROLWARE LOAD REQUIRED STD CN LDC 700 FORCE TRAIN = 7 STD CN+4 UJN LXT1 COMPLETE PROCESSING MMT SPACE 4,20 *** EQXXX=MT-N. * EQXXX=NT-N. * EQXXX=CT-N. * EQXXX=AT-N. * * *N* CONSECUTIVE EST ENTRIES ARE GENERATED BEGINNING AT *XXX*. * * THE *N* UNITS BEGIN WITH THE UNIT NUMBER SPECIFIED BY *UN=* * AND MUST BE NUMBERED CONSECUTIVELY. * * FOR *AT* UNITS, THE ACS DRIVE INDEXES FOR THE *N* UNITS * BEGIN WITH THE DRIVE INDEX SPECIFIED BY *DR=* AND MUST BE * NUMBERED CONSECUTIVELY. * * FOR *CT* AND *AT* UNITS DEFINED WITH DUAL CHANNEL ACCESS, * THE PRIMARY AND SECONDARY CHANNELS WILL BE REVERSED FOR EACH * CONSECUTIVE EST ENTRY GENERATED. MMT CON 0 ENTRY LDI KA CHECK SEPARATOR LMN 1R, ZJN MMT1 IF *,* LMN 1R-&1R, NJN MMT2 IF NOT *-* AOD KA RJM CDR ASSEMBLE NUMBER OF UNITS LMN 1R, NJN MMT2 IF INCORRECT SEPARATOR LDD AB+4 ZJN MMT2 IF NULL UNIT COUNT SBN 21 PJN MMT2 IF UNIT COUNT TOO LARGE ADN 20 MMT1 ADN 1 SET UNIT COUNT STM MMTA ADD EQ SBK ESMX+1 MJN MMT3 IF LAST UNIT DOES NOT EXCEED MAXIMUM MMT2 JMP ILL PROCESS INCORRECT ENTRY MMT3 RJM KWP PROCESS KEYWORDS LDD CN+4 LPN 17 ADM MMTA SBN 21 PJN MMT2 IF UNIT NUMBER OVERFLOW LDD CN+3 LMC 2RAT NJN MMT3.1 IF NOT *AT* DEVICE LDM EBUT+5+2 LPN 7 ADM MMTA SBN 5 PJN MMT2 IF ACS DRIVE INDEX OVERFLOW MMT3.1 LDD EQ STD T6 ADM MMTA SET NEXT EST ORDINAL STD T7 MMT4 LDD EB READ PREVIOUS EQUIPMENT DEFINITION SHN 5 ADD T6 SHN 1 CRD AB LDD AB CHECK ORIGINAL EQUIPMENT STATUS SHN 21-13 MJP MMT2 IF REDEFINING MS AOD T6 LMD T7 NJN MMT4 IF NOT END OF UNITS RJM CHD CHECK ISMT DUAL CHANNEL ERROR LDD CN+1 FIRST CHANNEL RJM CHN CHECK ISMT DUPLICATE CHANNEL ERROR LDD CN+2 SECOND CHANNEL ZJN MMT5 IF NO SECOND CHANNEL RJM CHN CHECK ISMT DUPLICATE CHANNEL ERROR MMT5 LDD EB SHN 5 ADD EQ ENTER TAPE DEFINITION IN EST BUFFER SHN 1 CWD CN ADN 1 CWM EBUT+5,ON AOD CN+4 ADVANCE UNIT NUMBER LDD CN+3 LMC 2RAT NJN MMT5.1 IF NOT *AT* DEVICE AOM EBUT+5+2 ADVANCE ACS DRIVE INDEX MMT5.1 AOD EQ LMD T7 ZJN MMT6 IF ALL UNITS DEFINED RJM RCC REVERSE CHANNELS FOR CARTRIDGE TAPE UJN MMT5 DEFINE REMAINING UNITS MMT6 SOD EQ RJM CLE CHECK LAST EQUIPMENT JMP KBR RETURN MMTA CON 0 UNIT COUNT NAD SPACE 4,15 ** EQXXX=NC. NAD SUBR ENTRY/EXIT ZJN NAD1 IF NOT INITIAL EQUIPMENT ENTRY LDC 3000 SET ALLOCATABLE, CONTROLWARE NOT LOADED RAD CN NAD1 RJM KWP LDD CN+1 CHANNEL NUMBER LPN 37 STD T1 LDN CNND SET NO LOAD OF NAD CONTROLWARE STM TCHS,T1 RJM SCC UJN NADX RETURN KWP SPACE 4,10 ** KWP - KEYWORD MAIN PROCESSOR. * * ENTRY (KA) = ADDRESS OF SEPARATOR CHARACTER. * (TA) = *TVRK* ENTRY ADDRESS. KWP SUBR ENTRY/EXIT KWP1 AOD KA LDI KA ASSEMBLE KEYWORD SHN 6 LMM 1,KA STD AB LDN 2 ADVANCE KEYBOARD BUFFER ADDRESS RAD KA LDI KA LMN 1R= NJN KWP3 IF INCORRECT SEPARATOR AOD KA LDC TKWP-TKWPL STD T3 KWP2 LDN TKWPL RAD T3 LDI T3 NJN KWP4 IF NOT END OF TABLE KWP3 JMP ILL PROCESS INCORRECT ENTRY KWP4 STD T2 LDD AB LMI T2 NJN KWP2 IF NOT MATCH RJM VKW VALIDATE KEYWORD * EXIT TO KEYWORD PROCESSOR. * (T3) = ADDRESS OF *TKWP* ENTRY. * (KA) = ADDRESS OF KEYWORD VALUE FIRST CHARACTER. LJM 1,T2 EXIT TO PROCESSOR * RETURN FROM KEYWORD PROCESSOR. * (KA) = ADDRESS OF SEPARATOR CHARACTER. KWP5 LDI KA CHECK SEPARATOR LMN 1R, ZJN KWP1 IF NOT END OF ENTRY LMN 1R.&1R, NJN KWP3 IF INCORRECT SEPARATOR LDM TRQP ZJN KWP7 IF NOT INITIAL ENTRY LDN KTWC STD T2 LDN TVRKL RAD TA KWP6 SOD TA LDI TA STM KWPA LDM TRQP,T2 LPC ** KWPA EQU *-1 LMI TA NJN KWP3 IF REQUIRED KEYWORD NOT SPECIFIED SOD T2 NJN KWP6 IF MORE KEYWORDS TO CHECK KWP7 LDD CN LPN 3 LMN 3 ZJN KWP9 IF DEVICE IS DOWN LDD CN+1 CHECK PRIMARY CHANNEL SHN 21-13 PJN KWP9 IF NO PRIMARY CHANNEL SHN 21-12-21+13 PJN KWP9 IF CHANNEL IS UP LDD CN+2 CHECK SECONDARY CHANNEL SHN 21-13 PJN KWP8 IF NO SECONDARY CHANNEL SHN 21-12-21+13 PJN KWP9 IF CHANNEL IS UP KWP8 JMP ILL PROCESS INCORRECT ENTRY KWP9 LJM KWPX RETURN TITLE MISCELLANEOUS EQUIPMENT DEFINITION SUBROUTINES. CDC SPACE 4,15 ** CDC - CLEAR ISMD CHANNELS. * * ENTRY (EBUT) = PREVIOUS EBUT *CM* EQUIPMENT ENTRY. * * EXIT CHANNEL NUMBERS ARE CLEARED IN ALL ISMD DEVICE ENTRIES * WHICH HAVE THE FIRST UNIT ON THIS *CM* EQUIPMENT. * * USES T1, T2, T3. * * CALLS SDC. CDC SUBR ENTRY/EXIT LDM EBUT+4 SAVE EQUIPMENT NUMBER SHN -11 STD T1 LDM EBUT+3 LMC 2RCM NJN CDCX IF NOT CONTROL MODULE STM TENB,T1 CLEAR EST ORDINAL STD T3 LDN 37 SET NO CHANNEL SPECIFIED STD T2 RJM SDC SET ISMD CHANNELS UJN CDCX RETURN CLE SPACE 4,15 ** CLE - CHECK LAST EQUIPMENT. * * ENTRY (EQ) = CURRENT EST ORDINAL. * (LE) = LAST EQUIPMENT DEFINED. * (CN - CN+4) = CURRENT EQUIPMENT DEFINITION. * * EXIT (LE) = CURRENT LAST EQUIPMENT. * (EQ) = CURRENT EST ORDINAL + 1. * * USES T5, CN - CN+4. * * CALLS IBF. CLE3 AOD EQ CHECK NEW EQUIPMENT DEFINITION SBD LE PJN CLE2 IF ORDINAL .GE. PREVIOUS HIGH CLE SUBR ENTRY/EXIT LDD CN+3 NJN CLE3 IF DEFINING EQUIPMENT AOD EQ LMD LE NJN CLEX IF NOT CLEARING LAST EQUIPMENT CLE1 SOD LE SHN 14+1 ADD EB SEARCH FOR LAST EQUIPMENT SHN 6 CRD CN LDD CN+3 ZJN CLE1 IF EQUIPMENT UNDEFINED LDN 1 CLE2 RAD LE UPDATE LAST EQUIPMENT STD T5 LDN UECF SEND COUNT TO BUFFER PP RJM IBF UJN CLEX RETURN CML SPACE 4,10 ** CML - CHECK MASS STORAGE LIMIT. * * ENTRY (CN - CN+4) = CURRENT EQUIPMENT DEFINITION. * (EBUT - EBUT+4) = PREVIOUS EQUIPMENT DEFINITION. CML SUBR ENTRY/EXIT LDI ES LMD CN CHECK REDEFINITION SHN 0-13 ZJN CMLX IF NO CHANGE IN STATUS AOM MSLM ADVANCE MASS STORAGE LIMIT UJN CMLX RETURN EDC SPACE 4,20 ** EDC - ENTER ISMD CHANNELS. * * ENTRY (CN - CN+4) = EQUIPMENT ENTRY. * (EQ) = CURRENT EST ORDINAL. * * EXIT (EQ) = CURRENT EST ORDINAL. * IF DEVICE TYPE = *CM*, THE CHANNEL NUMBERS ARE SET IN * ALL ISMD ENTRIES WHICH HAVE THE FIRST UNIT ON THIS * *CM* EQUIPMENT. * * USES T1, T2, T3, CM - CM+4. * * CALLS SDC. EDC SUBR ENTRY/EXIT LDD CN+3 LMC 2RCM NJN EDCX IF NOT *CM* DEVICE LDD CN+4 SET EQUIPMENT NUMBER SHN -11 STD T1 LDD CN+1 SET CHANNEL NUMBERS STD T2 LDD CN+2 STD T3 RJM SDC SET ISMD CHANNELS UJN EDCX RETURN RCC SPACE 4,10 ** RCC - REVERSE CHANNELS FOR CARTRIDGE TAPE. * * IF *CT* OR *AT* DEVICE WITH DUAL CHANNEL ACCESS DEFINED, * REVERSE THE PRIMARY AND SECONDARY CHANNELS. * * ENTRY (CN - CN+4) = FIRST WORD OF EST ENTRY. * * EXIT (CN - CN+4) = UPDATED FIRST WORD OF EST ENTRY. * * USES CN+1, CN+2, T1. RCC SUBR ENTRY/EXIT LDD CN+3 LMC 2RCT ZJN RCC1 IF *CT* EQUIPMENT LMC 2RAT&2RCT NJN RCCX IF NOT *AT* EQUIPMENT RCC1 LDD CN+2 ZJN RCCX IF NO SECOND CHANNEL STD T1 LDD CN+1 REVERSE CHANNELS STD CN+2 LDD T1 STD CN+1 UJN RCCX RETURN SDC SPACE 4,15 ** SDC - SET ISMD CHANNELS. * * ENTRY (T1) = *CM* EQUIPMENT NUMBER. * (T2) = FIRST CHANNEL. * (T3) = SECOND CHANNEL. * * EXIT CHANNEL NUMBERS ARE SET IN ALL ISMD DEVICE ENTRIES * WHICH HAVE THE FIRST UNIT ON THIS *CM* EQUIPMENT. * * USES T5. * * CALLS EEB, SID, STA. SDC2 LDD T5 RESTORE *EQ* CONTENTS RJM STA SDC SUBR ENTRY/EXIT LDD EQ SAVE CONTENTS OF *EQ* STD T5 RJM EEB SAVE *EBUT* LCN 0 SDC1 RJM SID SEARCH FOR ISMD DEVICE MJN SDC2 IF NONE FOUND LDM TDDB+DVUN+3 GET FIRST UNIT EQUIPMENT NUMBER LPN 70 SHN -3 LMD T1 NJN SDC1 IF NOT THIS *CM* EQUIPMENT NUMBER LDD T2 SET CHANNEL NUMBERS STM EBUT+1 LDD T3 STM EBUT+2 RJM EEB ENTER EQUIPMENT ENTRY UJN SDC1 FIND NEXT ISMD ENTRY VKW SPACE 4,10 ** VKW - VALIDATE KEYWORD. * * ENTRY (TA) = *TVRK* ENTRY ADDRESS. * (T3) = *TKWP* ENTRY ADDRESS. * (KA) = CHARACTER ADDRESS OF KEYWORD VALUE. * * EXIT (A) = (AB+4) = 0, IF NULL VALUE SPECIFIED. * TO *ILL* IF INCORRECT KEYWORD OR NULL VALUE SPECIFIED * AND NULL VALUE NOT ALLOWED. * * USES T5, T6, T7, AB+4. * * CALLS CSC. VKW SUBR ENTRY/EXIT LDM 1,T3 GET KEYWORD BIT POSITION SHN 14 LMD TH ERRNZ 1000-SHNI ADJUST IF VALUE CHANGES STM VKWA SHN -14 GET KEYWORD WORD OFFSET STD T6 ADD TA ADDRESS OF *TVRK* WORD STD T5 LDN 1 GENERATE KEYWORD BIT MASK VKWA SHN ** STD T7 STM VKWB STM VKWC LDI T5 CHECK IF KEYWORD ALLOWED LPC 0 VKWB EQU *-1 NJN VKW2 IF KEYWORD IS ALLOWED VKW1 JMP ILL PROCESS INCORRECT ENTRY VKW2 LDC TRQP SET KEYWORD SPECIFIED BIT RAD T6 LDI T6 LPC 0 VKWC EQU *-1 NJN VKW1 IF KEYWORD ALREADY PROCESSED LDD T7 RAI T6 RJM CSC CHECK FOR NULL VALUE NJN VKW3 IF NOT NULL VALUE LDM 2,T3 CHECK *TKWP* SHN 21-5 PJN VKW1 IF NULL VALUE NOT ALLOWED LDN 0 CLEAR VALUE STD AB+4 VKW3 LJM VKWX RETURN STV SPACE 4,10 ** STV - STORE KEYWORD VALUE. * * ENTRY (AB+4) = KEYWORD VALUE. * (T3) = ADDRESS OF KEYWORD PARAMETERS. * (CN - CN+4) = *EQDE* EST WORD. * (EBUT+5 - EBUT+11) = *EQAE* EST WORD. * * EXIT KEYWORD VALUE STORED IN EST ENTRY. STV SUBR ENTRY/EXIT LDM 2,T3 SHN 14 SET SHIFT COUNT LMD TH ERRNZ 1000-SHNI ADJUST IF VALUE CHANGES STM STVB SHN -14 SET EST ENTRY LOCATION LPN 37 STD T0 SBN 5 MJN STV1 IF IN *EQDE* WORD LDC EBUT UJN STV2 PROCESS DATA STV1 LDN CN STV2 ADD T0 STD T7 LDM 3,T3 SET MASK STM STVA LDI T7 UPDATE EST ENTRY LPC ** STVA EQU *-1 STI T7 LDD AB+4 STVB SHN ** POSITION KEYWORD VALUE RAI T7 STORE KEYWORD VALUE UJN STVX RETURN TITLE KEYWORD PROCESSORS. AOK SPACE 4,10 ** AOK - ASSEMBLE OCTAL KEYWORD VALUE. * * ENTRY (A) = 6/MINIMUM VALUE, 12/MAXIMUM VALUE+1 * * EXIT TO *KWP5*, KEYWORD VALUE STORED. * TO *ILL* IF INCORRECT VALUE. * * USES T6, T7. * * CALLS CDR, STV. AOK BSS 0 STD T7 SAVE MAXIMUM VALUE+1 SHN -14 STD T6 SAVE MINIMUM VALUE RJM CDR ASSEMBLE KEYWORD VALUE LDD AB+4 SBD T6 PJN AOK2 IF VALUE .GE. MINIMUM AOK1 JMP ILL PROCESS INCORRECT ENTRY AOK2 LDD AB+4 SBD T7 PJN AOK1 IF VALUE .GT. MAXIMUM RJM STV STORE VALUE JMP KWP5 RETURN PCH SPACE 4,10 *** CH=C1/C2. * * CHANNEL NUMBER. * CN = 15B, IF EQUIPMENT TYPE IS *RM*. * CN = 0-13B, 20-33B, FOR ALL OTHER EQUIPMENT TYPES. PCH DATA H*CH* LDN CN+1 SET CHANNEL BYTE ADDRESS STD T4 LDM 2,MS LPN 77 MAXIMUM CHANNELS ALLOWED ADN CN+1 STD T3 LDN 0 CLEAR CHANNEL BUFFER STD CN+1 STD CN+2 LDD CN+3 LMC 2RRM NJN PCH7 IF NOT TYPE *RM* RJM CDR LDD AB+4 SBN 15 NJN PCH6 IF INCORRECT CHANNEL NUMBER LDC 4000+CHMX LJM PCH9 SET CHANNEL DATA PCH5 LDD T4 SBD T3 MJN PCH7 IF MORE CHANNELS ALLOWED PCH6 JMP ILL PROCESS INCORRECT ENTRY PCH7 LDC 4000 SET CHANNEL ACCESSIBLE STI T4 LDI KA CHECK SEPARATOR SBN 1R8 PJN PCH6 IF NULL CHANNEL PARAMETER RJM CDR ASSEMBLE CHANNEL NUMBER RJM VCN VALIDATE CHANNEL NUMBER LDD AB+4 APPEND CHANNEL NUMBER PCH9 RAI T4 LPN 77 CHECK CHANNEL DATA STD AB+4 LDM TCST,AB+4 ZJN PCH12 IF CHANNEL IS NOT DOWN LDC 3000 MARK CHANNEL DOWN RAI T4 PCH12 RJM CSC CHECK SEPARATOR CHARACTER NJN PCH13 IF INVALID KEYWORD SEPARATOR JMP KWP5 RETURN PCH13 LMN 1R/&1R, NJN PCH6 IF INVALID SEPARATOR AOD T4 AOD KA LJM PCH5 PROCESS NEXT CHANNEL PCW SPACE 4,10 *** CW=CC. * * CONTROL MODULE CONTROLWARE. * CC = *CM*, *NCM*, *C2*, OR *NC2*. PCW DATA H*CW* LDN TCMCL INITIALIZE TABLE OFFSET STD T7 SOD KA LDN 4 RJM ASN NJN PCW2 IF ERROR IN ASSEMBLY PCW1 LCN 3 RAD T7 PJN PCW3 IF NOT END OF TABLE PCW2 JMP ILL PROCESS INCORRECT ENTRY PCW3 LDM TCMC,T7 LMD CM NJN PCW1 IF NO MATCH LDM TCMC+1,T7 LMD CM+1 NJN PCW1 IF NO MATCH LDM TCMC+2,T7 STD AB+4 RJM STV STORE VALUE JMP KWP5 RETURN TCMC SPACE 4,10 * TCMC - TABLE OF CONTROL MODULE CONTROLWARE TYPES. TCMC BSS 0 VFD 24/0LCM,12/CMCW VFD 24/0LNCM,12/CMCW+40 VFD 24/0LC2,12/C2CW VFD 24/0LNC2,12/C2CW+40 TCMCL EQU *-TCMC TABLE LENGTH PDR SPACE 4,10 *** DR=N. * * ACS DRIVE INDEX. * N = 0-3. PDR DATA H*DR* LDN 4 SET MAXIMUM VALUE + 1 JMP AOK ASSEMBLE KEYWORD VALUE PEQ SPACE 4,10 *** EQ=N. * * EQUIPMENT (CONTROLLER) NUMBER. * N = 0-7. PEQ DATA H*EQ* LDN 10 SET MAXIMUM VALUE + 1 JMP AOK ASSEMBLE KEYWORD VALUE PFC SPACE 4,10 *** FC=XX. * * FORMS CODE. * XX = 2 ALPHANUMERIC CHARACTERS IN THE RANGE AA-99. PFC DATA H*FC* ZJN PFC3 IF NULL VALUE SOD KA LDN 3 ASSEMBLE FORMS CODE RJM ASN NJN PFC1 IF INCORRECT FORMS CODE LDD T0 SBN 2 ZJN PFC2 IF 2 CHARACTERS PFC1 JMP ILL PROCESS INCORRECT ENTRY PFC2 LDD CM STD AB+4 PFC3 RJM STV STORE VALUE JMP KWP5 RETURN PIB SPACE 4,10 *** IB=N. * * INSTALLATION BYTE. * N = 0B - 7777B. PIB DATA H*IB* RJM AOD ASSEMBLE INSTALLATION BYTE VALUE STM EBUT+5 JMP KWP5 RETURN PID SPACE 4,10 *** ID=N. * * UNIT RECORD ID. * N = 0-67B. PID DATA H*ID* ZJN PID1 IF NULL VALUE RJM CDR ASSEMBLE ID LDD AB+4 SBN IDLM MJN PID1 IF VALID ID JMP ILL PROCESS INCORRECT ENTRY PID1 RJM STV STORE VALUE JMP KWP5 RETURN PLS SPACE 4,10 *** LS=N. * * ACS LSM INDEX. * N = 0-17B. PLS DATA H*LS* LDN 20 SET MAXIMUM VALUE + 1 JMP AOK ASSEMBLE KEYWORD VALUE PND SPACE 4,10 *** ND=N. * * NPU NODE NUMBER. * N = 1-377B. PND DATA H*ND* LDC 1S12+400 SET MINIMUM VALUE, MAXIMUM VALUE+1 JMP AOK ASSEMBLE KEYWORD VALUE PNT SPACE 4,10 *** NT=N. * * MDI NODE NUMBER. * N = 1-377B. PNT DATA H*NT* LDC 1S12+400 SET MINIMUM VALUE, MAXIMUM VALUE+1 JMP AOK ASSEMBLE KEYWORD VALUE PPA SPACE 4,10 *** PA=N. * * ACS PANEL INDEX. * N = 0-23B. PPA DATA H*PA* LDN 24 SET MAXIMUM VALUE + 1 JMP AOK ASSEMBLE KEYWORD VALUE PPI SPACE 4,10 *** PI=N. * * PIP INDEX. * N = 1-4. PPI DATA H*PI* LDC 1S12+5 SET MINIMUM VALUE, MAXIMUM VALUE+1 JMP AOK ASSEMBLE KEYWORD VALUE PPS SPACE 4,10 *** PS=X. * * PAPER SIZE. * X = *S* (SHORT) OR *L* (LONG). PPS DATA H*PS* LDI KA LMN 1RL ZJN PPS2 IF LONG PAPER LMN 1RS&1RL ZJN PPS1 IF SHORT PAPER JMP ILL PROCESS INCORRECT ENTRY PPS1 LDD CN SHN -7 USE PFC FLAG TO SET LAST PFC LOADED FLAG LPN 1 LMN 2 SET SHORT PAPER FLAG PPS2 STD AB+4 RJM STV STORE VALUE AOD KA JMP KWP5 RETURN PPT SPACE 4,10 *** PT=N. * * PORT NUMBER OR NUMBER OF PORTS. * N = 0 OR 1 (MULTIPLEXER PORT NUMBER) IF *RM* EQUIPMENT TYPE. * = 1-1000B (NUMBER OF PORTS) IF *TT* STIMULATOR. PPT DATA H*PT* RJM CDR ASSEMBLE PORT NUMBER LDD CN+3 LMC 2RTT ZJN PPT5 IF *TT* STIMULATOR EQUIPMENT TYPE LDD AB+4 MULTIPLEXER PORT NUMBER SHN -1 ZJN PPT2 IF .LE. 1 PPT1 JMP ILL PROCESS INCORRECT ENTRY PPT2 LCN 1 SET MASK IN *TKWP* ENTRY PPT3 STM 3,T3 RJM STV STORE VALUE JMP KWP5 RETURN PPT5 LDD AB+4 NUMBER OF PORTS TO STIMULATE ZJN PPT1 IF .EQ. 0 SBN 1 SHN -11 NJN PPT1 IF .GT. 1000B LDD AB+4 LPC 777 STD AB+4 LDC 7000 UJN PPT3 SET MASK PSA SPACE 4,10 *** SA=STATUS. * * 255X SYSTEM AUTOSTART MODULE (SAM) FLAG. * STATUS = *ON* OR *OFF*. * * *ON* = *SAM* IS PRESENT. * *OFF* = *SAM* IS ABSENT. PSA DATA H*SA* RJM AST ASSEMBLE *SAM* STATUS SHN 21-0 PJN PSA2 IF *ON* OR *OFF* JMP ILL PROCESS INCORRECT ENTRY PSA2 LMN 1 COMPLEMENT FLAG STD AB+4 RJM STV STORE VALUE JMP KWP5 RETURN PST SPACE 4,10 *** ST=STATUS. * * DEVICE STATUS. * STATUS = *ON* OR *OFF* OR *DOWN*. * * *ON* = EQUIPMENT AVAILABLE FOR ACCESS. * *OFF* OR *DOWN* = EQUIPMENT UNAVAILABLE FOR ACCESS. PST DATA H*ST* RJM AST ASSEMBLE STATUS RJM STV STORE VALUE JMP KWP5 RETURN PTF SPACE 4,10 *** TF=XXX. * * TAPE FLAG. * XXX = ATS - DEVICE IS 67X (ATS) UNIT. * FSC - DEVICE IS FSC UNIT. * MTS - DEVICE IS 66X (MTS) UNIT. * IST - DEVICE IS ISMT UNIT. * CMTGE - DEVICE IS 698 (CMTS) UNIT. * ATSGE - ATS UNIT WITH GE (6250 CPI) CAPABILITY. * FSCGE - FSC UNIT WITH GE (6250 CPI) CAPABILITY. PTF DATA H*TF* LDI KA ASSEMBLE TAPE FLAG SHN 6 LMM 1,KA STD AB LDN 2 RAD KA LDI KA SHN 6 STD AB+1 AOD KA LDC TTFO-3 SEARCH TAPE FLAG OPTION TABLE STD T1 PTF1 LDN 3 RAD T1 LDI T1 COMPARE FIRST 2 CHARACTERS ZJN PTF2 IF END OF TABLE LMD AB NJN PTF1 IF NOT MATCH LDM 1,T1 COMPARE NEXT CHARACTER SCN 77 LMD AB+1 NJN PTF1 IF NOT MATCH LDM 2,T1 SET TAPE FLAG VALUE STD AB+4 RJM CIT CHECK ISMT DEVICES RJM CSC CHECK SEPARATOR CHARACTER ZJN PTF4 IF *,* OR *.* LDM 1,T1 SHN 21-5 MJN PTF3 IF *GE* ALLOWED PTF2 JMP ILL PROCESS INCORRECT ENTRY PTF3 LDI KA SHN 6 LMM 1,KA LMC 2RGE NJN PTF2 IF NOT *GE* LDN 2 RAD KA LDN 4 RAD AB+4 PTF4 RJM STV STORE VALUE JMP KWP5 RETURN TTFO SPACE 4,10 ** TTFO - TABLE OF TAPE FLAG OPTIONS. * ENTRY = 3 WORDS. * *T, 18/ TO, 1/ GE, 5/, 12/ OV * TO = 3 CHARACTER TAPE FLAG OPTION. * GE = GE (6250 CPI) CAPABILITIES ALLOWED. * OV = OPTION VALUE. TTFO BSS 0 VFD 18/3LATS,1/1,5/0,12/40 VFD 18/3LFSC,1/1,5/0,12/60 VFD 18/3LMTS,1/0,5/0,12/100 TTFOA VFD 18/3LIST,1/1,5/0,12/42 VFD 18/3LCMT,1/1,5/0,12/41 CON 0 PTN SPACE 4,10 *** TN=N. * * PRINTER WITH TRAIN CARTRIDGE N. * N = 0-7. * 0-3 = CDC GRAPHIC 64-CHARACTER SET. * 4-5 = ASCII GRAPHIC 64-CHARACTER SET. * 6 = ASCII GRAPHIC 95-CHARACTER SET. * 7 = ASCII GRAPHIC 95-CHARACTER SET USED AS AN * ASCII 64-CHARACTER SET. PTN DATA H*TN* LDN 10 SET MAXIMUM VALUE+1 JMP AOK ASSEMBLE KEYWORD VALUE PUN SPACE 4,10 *** UN=U1. * * UNIT NUMBER. * UN = 0-77B (MAXIMUM UNIT NUMBER IS DEVICE DEPENDENT). PUN DATA H*UN* LDI KA SBN 1R8 PJN PUN1 IF NULL UNIT PARAMETER RJM CDR ASSEMBLE UNIT NUMBER RJM CSC NJN PUN1 IF INCORRECT SEPARATOR LDM 2,MS SHN -6 STM PUNA SBD AB+4 PJN PUN2 IF UNIT NUMBER .LE. LIMIT PUN1 JMP ILL PROCESS INCORRECT ENTRY PUN2 LDD CN+4 SET UNIT NUMBER LPC * MASK EXISTING UNIT NUMBER PUNA EQU *-1 LMD CN+4 CLEAR OLD UNIT NUMBER LMD AB+4 ADD NEW UNIT NUMBER STD CN+4 JMP KWP5 RETURN PW0 SPACE 4,10 *** W0=N. * * EST ENTRY WORD 0. * N = OCTAL VALUE OF EST ENTRY WORD 0 (20 DIGIT MAXIMUM). PW0 DATA H*W0* RJM AOD ASSEMBLE OCTAL DIGITS LDN JSNL CWD AB CRD CN JMP KWP5 RETURN PW1 SPACE 4,10 *** W1=N. * * EST ENTRY WORD 1. * N = OCTAL VALUE OF EST ENTRY WORD 1 (20 DIGIT MAXIMUM). PW1 DATA H*W1* RJM AOD ASSEMBLE OCTAL DIGITS LDN JSNL CWD AB CRM EBUT+5,ON JMP KWP5 RETURN TITLE MISCELLANEOUS KEYWORD SUBROUTINES. AODSUB ASNSUB AST SPACE 4,15 ** AST - ASSEMBLE STATUS. * * EXIT (A) = (AB+4) = STATUS. * 0 = ON. * 2 = OFF. * 3 = DOWN. * * USES KB, ST. * * CALLS AKL7. AST1 DATA C*DOWN* LDN 3 UJN AST5 SET *DOWN* STATUS AST2 DATA C*OFF* LDN 2 UJN AST5 SET *OFF* STATUS AST4 DATA C*ON* LDN 0 AST5 STD AB+4 SET STATUS AST SUBR ENTRY/EXIT LDC ASTA-1 STD ST SET SYNTAX TABLE ADDRESS LDD KA STD KB LJM AKL7 ASSEMBLE STATUS ASTA CON AST4 CON AST2 CON AST1 CON 0 END OF STATUS SYNTAX TABLE CDRSUB CIT SPACE 4,10 ** CIT - CHECK ISMT DEVICES. * * ENTRY (T1) = TAPE FLAG. * (MMTA) = UNIT COUNT. * * * EXIT TO *ILL* IF ERROR. CIT SUBR ENTRY/EXIT LDD T1 TAPE FLAG LMC TTFOA NJN CITX IF NOT ISMT DEVICE LDM ISPF SHN 21-13 MJN CIT1 IF NOT CYBER 170-810/815/825/830 LDM MMTA UNIT COUNT SBN 1 ZJN CITX IF VALID UNIT COUNT CIT1 JMP ILL PROCESS INCORRECT ENTRY CHN SPACE 4,10 ** CHN - CHECK ISMT DUPLICATE CHANNEL ERROR. * * ENTRY (A) = TAPE CHANNEL. * (CN - CN+4) = EST ENTRY. * (EB) = *EBUF* POINTER. * * USES T1, T2, AB - AB+4. * * CALLS CKC. CHN SUBR ENTRY/EXIT LPN 37 STD T2 LDD LE SET START OF SEARCH STD T1 CHN1 SOD T1 DECREMENT EST ORDINAL SBN NOPE MJN CHNX IF NO MORE TO CHECK LDD EB READ EST ENTRY SHN 5 ADD T1 SHN 1 ADK EQDE CRD AB LDD AB+3 ZJN CHN1 IF EMPTY ENTRY LMC 2RDE ZJN CHN1 IF TYPE *DE* LDD AB+1 RJM CKC CHECK FIRST CHANNEL LDD AB+2 ZJN CHN1 IF NO SECOND CHANNEL RJM CKC CHECK SECOND CHANNEL UJN CHN1 GET NEXT EST ENTRY CKC SPACE 4,10 ** CKC - CHECK CHANNELS. * * ENTRY (A) = CHANNEL DATA. * (T1) = EST ORDINAL TO CHECK. * (T2) = CHANNEL TO COMPARE AGAINST. * (EQ) = CURRENT EST ORDINAL. * (CN - CN+4) = CURRENT EST ENTRY. * (AB - AB+4) = EST ENTRY TO COMPARE AGAINST. * * EXIT TO *ILL* IF ISMT DUPLICATE CHANNEL ERROR. CKC SUBR ENTRY/EXIT LPN 77 LMD T2 NJN CKCX IF NOT SAME CHANNEL LDD EQ CURRENT EST ORDINAL LMD T1 ZJN CKCX IF SAME EST ORDINAL LDD CN SHN 21-3 MJN CKC2 IF ISMT LDD AB SHN 21-3 PJN CKCX IF NOT ISMT ENTRY CKC2 JMP ILL PROCESS ERROR CHD SPACE 4,10 ** CHD - CHECK ISMT DUAL CHANNEL ERROR. * * ENTRY (CN - CN+4) = EST ENTRY. * * EXIT TO *ILL* IF ISMT DUAL CHANNEL ERROR. CHD SUBR ENTRY/EXIT LDD CN SHN 21-3 PJN CHDX IF NOT ISMT LDD CN+2 ZJN CHDX IF SECOND CHANNEL DOES NOT EXIST JMP ILL PROCESS ERROR CSC SPACE 4,10 ** CSC - CHECK SEPARATOR CHARACTER. * * ENTRY (KA) = ADDRESS OF SEPARATOR CHARACTER * * EXIT (A) = 0 IF SEPARATOR CHARACTER IS *,* OR *.*. CSC SUBR ENTRY/EXIT LDI KA LMN 1R. ZJN CSCX IF *.* LMN 1R,&1R. UJN CSCX RETURN VCN SPACE 4,10 ** VCN - VALIDATE CHANNEL NUMBER. * * ENTRY (AB+4) = CHANNEL NUMBER. * * EXIT TO *ILL* IF INCORRECT CHANNEL NUMBER. VCN2 ADN 20 SBM .CHN PJN VCN1 IF NOT LEGAL CHANNEL VCN SUBR ENTRY/EXIT VCNA LDN 0 ZJN VCN0 IF FIRST CHANNEL LDD AB+4 ZJN VCN1 IF .EQ. 0 VCN0 AOM VCNA LDD AB+4 GET CHANNEL NUMBER SBN 14 MJN VCNX IF .LE. 13B SBN 20-14 PJN VCN2 IF .GE. 20B VCN1 JMP ILL PROCESS INCORRECT ENTRY TVRK SPACE 4,10 **** TVRK - TABLE OF VALID AND REQUIRED KEYWORDS. TVRK BSS 0 * UNIT RECORD DEVICES. TBKW CP,(ST,EQ,CH,ID,FC,IB),(EQ,CH) TVRKL EQU *-TVRK TBKW CR,(ST,EQ,CH,ID,IB),(EQ,CH) TBKW LQ,(ST,EQ,CH,ID,FC,TN,PS,IB),(EQ,CH) TBKW LR,(ST,EQ,CH,ID,FC,TN,PS,IB),(EQ,CH) TBKW LS,(ST,EQ,CH,ID,FC,TN,PS,IB),(EQ,CH) TBKW LT,(ST,EQ,CH,ID,FC,TN,PS,IB),(EQ,CH) TBKW LX,(ST,EQ,CH,ID,FC,IB),(EQ,CH) TBKW LY,(ST,EQ,CH,ID,FC,IB),(EQ,CH) * COMMUNICATIONS / NETWORK DEVICES. TBKW CC,(ST,EQ,CH,IB),(EQ,CH) TBKW NC,(ST,CH,IB),(CH) TBKW ND,(ST,EQ,CH,PI,ND,NT,IB),(EQ,CH,PI,ND,NT) TBKW NP,(ST,EQ,CH,PI,ND,SA,IB),(EQ,CH,PI,ND,SA) TBKW NQ,(ST,EQ,CH,PI,ND,SA,IB),(EQ,CH,PI,ND,SA) TBKW RM,(ST,CH,PT,IB),(CH,PT) TBKW TT,(ST,EQ,CH,PT,IB),(EQ,CH) * *CYBIS* DEVICES. TBKW CI,(CH,EQ,UN,ST,IB),(CH) TBKW D1,(CH,EQ,UN,ST,IB),(CH) TBKW D2,(CH,EQ,UN,ST,IB),(CH) TBKW D3,(CH,EQ,UN,ST,IB),(CH) TBKW D4,(CH,EQ,UN,ST,IB),(CH) TBKW NI,(CH,EQ,UN,ST,IB),(CH) TBKW NO,(CH,EQ,UN,ST,IB),(CH) TBKW SP,(CH,EQ,UN,ST,IB),(CH) * MAGNETIC TAPE DEVICES. TBKW AT,(ST,UN,CH,LS,PA,DR,IB),(UN,CH,LS,PA,DR) TBKW CT,(ST,UN,CH,IB),(UN,CH) TBKW MT,(ST,EQ,UN,CH,TF,IB),(EQ,UN,CH,TF) TBKW NT,(ST,EQ,UN,CH,TF,IB),(EQ,UN,CH,TF) * MISCELLANEOUS DEVICES. TBKW CM,(EQ,CH,CW,IB),(EQ,CH) TBKW MP,(ST,CH,IB),(CH) TBKW OD,(ST,EQ,UN,CH,IB),(ST,EQ,UN,CH) TBKW RP,(ST,CH,IB),(CH) TBKW SS,(ST,EQ,UN,CH,IB),(EQ,UN,CH) * INSTALLATION DEFINED DEVICES. TBKW **,(W0,W1),(W0) CON 0 END OF TABLE **** TKWP SPACE 4,10 **** TKWP - TABLE OF KEYWORD PARAMETERS. TKWP BSS 0 TBKP CH,0,1,00B,7777B CHANNEL(S) TKWPL EQU *-TKWP TBKP CW,0,7,00B,0000B CONTROLWARE TBKP DR,0,7,00B,7770B ACS DRIVE INDEX TBKP EQ,0,4,11B,0777B EQUIPMENT (CONTROLLER) NUMBER TBKP FC,1,7,00B,0000B FORMS CODE TBKP IB,0,5,00B,0000B INSTALLATION BYTE TBKP ID,1,4,00B,7700B UNIT RECORD ID TBKP LS,0,7,10B,0377B ACS LSM INDEX TBKP ND,0,4,00B,7400B NODE NUMBER TBKP NT,0,7,00B,7400B MDI NODE NUMBER TBKP PA,0,7,03B,7407B ACS PANEL INDEX TBKP PI,0,7,11B,0777B PIP INDEX TBKP PS,0,0,10B,6377B PAGE SIZE TBKP PT,0,4,00B,7777B PORT / PORT COUNT TBKP SA,0,0,11B,6777B *SAM* FLAG TBKP ST,0,0,0,7774B STATUS TBKP TF,0,0,02B,7043B TAPE FLAGS TBKP TN,1,4,06B,7077B PRINT TRAIN TBKP UN,0,4,00B,7777B UNIT NUMBER TBKP W0,0,0,00B,0000B WORD 0 (FOR **) TBKP W1,0,0,00B,0000B WORD 1 (FOR **) CON 0 END OF TABLE **** TRQP SPACE 4,10 ** TRQP - TABLE OF REQUIRED PARAMETERS. * * (TRQP) .NE. 0 IF INITIAL ENTRY OF THIS EQUIPMENT. * (TRQP+1)-(TRQP+KTWC) = REQUIRED KEYWORDS - BIT CORRESPONDING * TO *TVRK* BITS SET WHEN KEYWORD IS SPECIFIED. TRQP BSSZ KTWC+1 SPACE 4,10 QUAL * EQ2S EQU *+4-EQXO *EQ2* SIZE EQ2L EQU EQ2S/5+77 *EQ2* OVERLAY LENGTH ERRNG 7777-*-4 OVERFLOW WHEN LOADING *EQ2* TTL SET/EQ3 - PROCESS MISCELLANEOUS *EQPDECK* ENTRY. TITLE IDENT EQ3,/EQ3/EQ3 QUAL EQ3 ORG EQXO *COMMENT SET - PROCESS MISCELLANEOUS *EQPDECK* ENTRY. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. SPACE 4,10 .ILL SET 0 .KBR SET 0 EQ3 SPACE 4,10 ** EQ3 - PROCESS MISCELLANEOUS *EQPDECK* ENTRY. EQ3 UJN /EQP/LOVX RETURN TO SYNTAX PROCESSOR SPACE 4,10 ** TSYN - SYNTAX TABLE. TSYN BSS 0 CON ACC CON ACF CON ASR CON AXM CON BML CON CKP CON DFL CON DWN CON ERL CON FAM CON ISH CON LBC CON MSF CON MXS CON PFS CON REM CON SHD CON SYS CON THD CON UEM CON UPC TSYNA CON 0 CON NEXT CON IPR CON AUT CON GRN CON RST CON INI CON PRS CON 0 END OF TABLE TITLE CM TABLE AND BUFFER PROCESSORS. ACF SPACE 4,10 *** ACCOUNT=EQ,BL. * DEFINE ACCOUNT DAYFILE RESIDENCE AND CM BUFFER SIZE. * * EQ EST ORDINAL, IF FILE IS NOT RECOVERED. * DEVICE CANNOT BE DEFINED AS REMOVABLE. * BL CM BUFFER LENGTH, MUST BE A MULTIPLE OF 100B, * DEFAULT = 400B. ACF DATA C*ACCOUNT=* LDN 1 UJN ERL1 PROCESS ACCOUNT LOG DEFINITION BML SPACE 4,10 *** MAINLOG=EQ,BL. * DEFINE MAINTENANCE LOG RESIDENCE AND CM BUFFER SIZE. * * EQ EST ORDINAL, IF FILE IS NOT RECOVERED. * DEVICE CANNOT BE DEFINED AS REMOVABLE. * BL CM BUFFER LENGTH, MUST BE A MULTIPLE OF 100B, * DEFAULT = 0. BML DATA C*MAINLOG=* LDN 3 UJN ERL1 PROCESS MAINTENANCE LOG DEFINITION DFL SPACE 4,10 *** DAYFILE=EQ,BL. * DEFINE SYSTEM DAYFILE RESIDENCE AND CM BUFFER SIZE. * * EQ EST ORDINAL, IF FILE IS NOT RECOVERED. * DEVICE CANNOT BE DEFINED AS REMOVABLE. * BL CM BUFFER LENGTH, MUST BE A MULTIPLE OF 100B, * DEFAULT = 400B. DFL DATA C*DAYFILE=* LDN 0 UJN ERL1 PROCESS DAYFILE LOG DEFINITION ERL SPACE 4,10 *** ERRLOG=EQ,BL. * DEFINE ERRLOG DAYFILE RESIDENCE AND CM BUFFER SIZE. * * EQ EST ORDINAL, IF FILE IS NOT RECOVERED. * DEVICE CANNOT BE DEFINED AS REMOVABLE. * BL CM BUFFER LENGTH, MUST BE A MULTIPLE OF 100B, * DEFAULT = 200B. ERL DATA C*ERRLOG=* LDN 2 ERL1 STD T3 LDN NEEQ PRESET DEFAULT EQUIPMENT STD T7 LDI KA LMN 1R, ZJN ERL4 IF DEFAULT EQUIPMENT LMN 1R.&1R, ZJN ERL2 IF ZERO LENGTH BUFFER SOD KA RJM CEM CHECK FOR MASS STORAGE EQUIPMENT SHN 13-10 PJN ERL3 IF NOT REMOVABLE DEVICE ERL2 JMP ILL PROCESS INCORRECT ENTRY ERL3 LDD AB+4 SET EST ORDINAL STD T7 LDI KA LMN 1R. ZJN ERL6 IF DEFAULT (PREVIOUS) BUFFER LENGTH ERL4 AOD KA RJM ASD ZJN ERL2 IF ZERO LENGTH BUFFER LPN 77 NJN ERL2 IF NOT MULTIPLE OF 100B LDD AB+4 ADC -MXDB-1 PJN ERL2 IF ENTRY .GT. SYSTEM DEFINED MAXIMUM LDM .DFB,T3 SET BUFFER LENGTH LPN 77 LMD AB+4 STM .DFB,T3 ERL6 LDD T7 SET DAYFILE EQUIPMENT LMC 4000 STM DFBF,T3 * ENTRY FROM *FAMILY = N* PROCESSOR. ERL7 LDD ET SHN 6 ADN NEEQ*TDDCL CWM DFBF,ON JMP KBR RETURN TITLE EQUIPMENT DEFINITION ENTRIES. SPACE 4,10 *** THESE ENTRIES MUST BE MADE AFTER EQUIPMENT HAS BEEN DEFINED. * THESE DEFINITIONS ARE CLEARED BY *RESET*, AND IF THE * EQUIPMENT IS REDEFINED OR DELETED (EQXXX=0.). ACC SPACE 4,10 *** ACCESS,LL,UL,X1,X2,...,XN. * * SETS UPPER AND LOWER SECURITY ACCESS LEVEL LIMITS FOR * EQUIPMENTS X1,X2,...,XN. THIS ENTRY IS VALID ONLY FOR * MASS STORAGE, UNIT RECORD, MAGNETIC TAPE AND MULTIPLEXOR * EQUIPMENTS. THIS ENTRY WILL BE IGNORED ON AN UNSECURE * SYSTEM. * * XN = EST ORDINAL. * LL = LOWER ACCESS LEVEL LIMIT. * UL = UPPER ACCESS LEVEL LIMIT. ACC DATA C*ACCESS,* LDN AB STD T5 SOD KA LDM .SSML LPN 7 NJN ACC1 IF SECURE SYSTEM ACC0 JMP KBR RETURN ACC1 LDN 10 RJM ASN ASSEMBLE ACCESS LEVEL LIMIT NJN ACC2 IF MORE THAN 7 CHARACTERS LDN CM CHECK FOR VALID ACCESS LEVEL RJM VAL MJN ACC2 IF NO MATCH STI T5 LDI KA LMN 1R, NJN ACC2 IF INCORRECT SEPARATOR AOD T5 SBN AB+2 NJN ACC1 IF NOT END OF LIMITS LDD AB+1 SBD AB PJN ACC3 IF LOWER LIMIT .LE. UPPER LIMIT ACC2 JMP ILL PROCESS INCORRECT ENTRY ACC3 LDD AB SAVE ACCESS LEVELS SHN 3 ADD AB+1 STD CM ACC4 RJM GNE GET NEXT EST ORDINAL ZJN ACC0 IF END OF EST MJN ACC9 IF MASS STORAGE LDN 0 CHECK EQUIPMENT TYPE STD T5 ACC8 AOD T5 LDM TVEQ-1,T5 ZJN ACC10 IF END OF TABLE LMM EBUT+3 NJN ACC8 IF NOT MATCH ACC9 LDM EBUT+10 SCN 77 LMD CM STM EBUT+10 RJM EEB UPDATE EQUIPMENT ENTRY UJN ACC4 CHECK NEXT EQUIPMENT ACC10 RJM IRE PROCESS RANGE ERROR TVEQ SPACE 4,10 ** TVEQ - TABLE OF VALID EQUIPMENT TYPES FOR ACCESS LEVELS. TVEQ BSS 0 CON 2RAT CON 2RCP CON 2RCR CON 2RCT CON 2RLQ CON 2RLR CON 2RLS CON 2RLT CON 2RLX CON 2RLY CON 2RMT CON 2RNT CON 2ROD DEVICE TYPE OPTICAL DISK CON 2RRM CON 2RTT CON 0 END OF EQUIPMENT TYPES ASR SPACE 4,10 *** ASR=X,Y,...,Z. * * DEFINE EQ X,Y,...,Z AS ALTERNATE SYSTEM DEVICES. * X - Z EST ORDINALS MUST BE .LT. 40. * * NOTE THE FOLLOWING SPECIFICATIONS ARE NOT ALLOWED FOR ASR * DEVICES AND IF SPECIFIED PREVIOUSLY WILL CAUSE * *INCORRECT ENTRY* FOR THIS ENTRY. * *SYSTEM* * *REMOVE* ASR DATA C*ASR=* SOD KA ASR1 RJM GNE GET NEXT EST ORDINAL NJN ASR2 IF MORE EQUIPMENT JMP KBR RETURN ASR2 PJN ASR3 IF NOT MASS STORAGE SHN 21-12-21+13 MJN ASR3 IF SYSTEM DEVICE SHN 12-10 PJN ASR4 IF NOT REMOVABLE DEVICE ASR3 RJM IRE PROCESS INCORRECT RANGE ASR4 LDM EBUT+4 SET *ASR* STATUS SCN 10 LMN 10 STM EBUT+4 LDD EQ SHN -5 NJN ASR3 IF EQUIPMENT OUT OF RANGE RJM EEB ENTER EQUIPMENT IN TABLES UJN ASR1 PROCESS NEXT EQUIPMENT DWN SPACE 4,10 *** DOWN,CH=C1,C2,...,CN. * * DOWN SPECIFIED CHANNELS. * * C1 - CN = CHANNEL NUMBER TO BE DOWNED. A PREFIX OF * *C* DESIGNATES A CONCURRENT CHANNEL. DWN DATA C*DOWN,* LDN 40 INDICATE *DOWN* PROCESSING * ENTRY FROM *UPC* FOR COMMON * PROCESSING OF *UP* AND *DOWN*. DWN1 STD T6 SAVE UP/DOWN INDICATOR LDC DWNA RJM SOT SEARCH OPTION TABLE LDI KA LMN 1R= NJN DWN5 IF INCORRECT SEPARATOR STD T5 CLEAR THE UNDO FLAG STD T4 CLEAR ERROR COUNT DWN2 STD T3 ASSUME NORMAL CHANNEL AOD KA STM DWNB SAVE COMMAND STRING POINTER LDI KA LMN 1RC NJN DWN3 IF NOT *C* FOR CONCURRENT CHANNEL LDN 40 INDICATE CONCURRENT CHANNEL STD T3 AOD KA SKIP PAST THE *C* DWN3 RJM AOD ASSEMBLE CHANNEL NUMBER ADD T3 STD AB+4 SBN TCSTL PJN DWN4 IF CHANNEL NUMBER TOO HIGH LDD AB+4 LMD DH ZJN DWN4 IF DEADSTART CHANNEL LDM .DSD LMD AB+4 LPN 77 NJN DWN6 IF NOT DISK DEADSTART (CIP) CHANNEL DWN4 LDM DWNB POSITION COMMAND LINE POINTER STD KA DWN5 LJM ILL RETURN ERROR DWN6 LDM TCST,AB+4 LMN 40 LMD T6 ZJN DWN9 IF NOT ALREADY IN REQUESTED STATE DWN7 LDI KA LMN 1R, ZJP DWN2 IF NOT LAST CHANNEL LJM KBR RETURN DWN8 LDD T4 ZJN DWN7 IF NO ERRORS LDD T5 NJN DWN4 IF UNDO PASS AOD T5 FLAG UNDO PASS LDN 40 REVERSE THE PROCESSING DWN9 LMD T6 STD T6 STM TCST,AB+4 LDN NOPE-1 INITIALIZE *EST* SEARCH ORDINAL STD EQ DWN10 AOD EQ INCREMENT *EST* ORDINAL SBD LE PJN DWN8 IF END OF *EST* LDD EQ RJM STA GET *EST* ENTRY LDM EBUT+3 ZJN DWN10 IF NULL ENTRY LMC 2RDE ZJN DWN10 IF *DE* EQUIPMENT LDN 40 SET *NO CHANGE* FLAG STD AB LDD ES STD T3 DWN11 AOD T3 LMC EBUT+3 NJN DWN12 IF ANOTHER CHANNEL TO CHECK LDD AB NJN DWN10 IF ACCESSIBLE OR NOT CHANGED LDI ES LPN 3 LMN 3 ZJN DWN10 IF EQUIPMENT IS DOWN AOD T4 INCREMENT ERROR COUNT UJP DWN10 CONTINUE SCAN OF *EST* DWN12 LDI T3 ZJN DWN11 IF NO CHANNEL PRESENT LMD AB+4 CHANNEL NUMBER LPN 77 NJN DWN13 IF NOT THIS CHANNEL LDC 3000 DOWN/UP CHANNEL STATUS LMI T3 STI T3 RJM EEB UPDATE *EST* ENTRY LDD AB CLEAR *NO CHANGE* FLAG LPN 37 STD AB DWN13 LDI T3 SHN 21-12 MJN DWN11 IF THIS CHANNEL IS DOWN AOD AB INCREMENT ACCESS COUNT UJP DWN11 CHECK NEXT CHANNEL DWNA CON 2RCH CON 0 DWNB CON 0 FAM SPACE 4,10 *** FAMILY=NN. * * SET DEFAULT FAMILY NAME TO NAME ON EQUIPMENT NN. * ALL PERMANENT FILE REQUESTS WILL GO TO THIS FAMILY UNLESS * USER HAS INDICATED HE IS USER OF ALTERNATE FAMILY. * NOTE THE FOLLOWING SPECIFICATIONS ARE NOT ALLOWED FOR * DEFAULT FAMILY DEVICE AND IF SPECIFIED PREVIOUSLY WILL * CAUSE *INCORRECT ENTRY* FOR THIS ENTRY. * *REMOVE* * ST = *OFF* FAM DATA C*FAMILY=* SOD KA RJM CEM CHECK IF MASS STORAGE EQUIPMENT LPC 402S6 ZJN FAM2 IF NOT OFF/DOWN/REMOVABLE FAM1 JMP ILL PROCESS INCORRECT ENTRY FAM2 LDI KA LMN 1R. NJN FAM1 IF NOT *.* LDD AB+4 SET DEFAULT FAMILY EQUIPMENT STM .PFNL+3 LJM ERL7 SET FAMILY NUMBER INI SPACE 4,25 *** INITIALIZE,OP,X1,X2,...,XN. * INITIALIZE MASS STORAGE EQUIPMENT *XN* BASED * ON THE OPTION *OP*. * OP FUNCTION * * AL TOTAL INITIALIZE. * PF INITIALIZE PERMANENT FILES. * QF INITIALIZE QUEUED FILES. * DF INITIALIZE SYSTEM DAYFILE. * AF INITIALIZE ACCOUNT DAYFILE. * EF INITIALIZE ERRLOG DAYFILE. * MF INITIALIZE MAINTENANCE LOG. * FP FORMAT PACK (AUTOMATIC SELECTION OF *AL*). * * THIS ENTRY IS ONLY ALLOWED FROM THE KEYBOARD AND WHEN * LEVEL 0 RECOVERY IS SELECTED. * * USE *DSD* ONLINE INITIALIZATION COMMANDS FOR ALL * OTHER SITUATIONS. * * FOR OP=AL THE PARAMETERS ON THE *PF* ENTRY WILL * BE USED TO DESCRIBE THE DEVICE. INI DATA C*INITIALIZE,* LDD RS NJN INI2 IF NOT LEVEL 0 STD T4 LDC TINO SEARCH OPTION TABLE RJM SOT STD T6 SAVE INDEX SBN TINOA SHN 4-22 NJN INI1 IF FULL INITIALIZE OPTION LDC 1777 STD T4 LMM TINF,T6 SET MASK INI1 STM INIA LDI KA CHECK SEPARATOR LMN 1R, ZJN INI6 IF VALID SYNTAX INI2 JMP ILL PROCESS INCORRECT ENTRY * SET EQUIPMENTS TO INITIALIZE. INI6 RJM CEM CHECK FOR MASS STORAGE EQUIPMENT RJM CDD CHECK DEADSTART DEVICE ADD T4 ZJN INI2 IF FULL INITIALIZE OF DEADSTART DEVICE LDI ES LPN 3 CHECK DEVICE STATE LMN 3 ZJN INI2 IF EQUIPMENT *DOWN* * SET INITIALIZE OPTION. LDM EBUT+4 LPC ** CLEAR BIT TO BE SET INIA EQU *-1 LMM TINF,T6 APPEND NEW OPTION FLAG(S) STM EBUT+4 RJM SPE ENTER EQUIPMENT IN TABLES LDI KA LMN 1R, ZJN INI6 IF MORE EQUIPMENTS JMP KBR RETURN SPACE 4,10 ** TINO - TABLE OF INITIALIZE OPTIONS. TINO BSS 0 CON 2RAL FULL INITIALIZE CON 2RFP FORMAT PACK TINOA EQU *-TINO CON 2RPF PERMANENT FILES CON 2RQF QUEUE FILES CON 2RDF DAYFILE CON 2RAF ACCOUNT FILE CON 2REF ERRORLOG CON 2RMF MAINTENANCE LOG CON 0 TINF SPACE 4,10 ** TINF - TABLE OF INITIALIZE FLAGS. TINF BSS 0 CON MLIAL CON MLFPR+MLIAL CON MLIPF*4 CON MLIQF*4 CON MLIDF/20 CON MLIAF/20 CON MLIEF/20 CON MLIMF/20 ISHARE SPACE 4,10 *** ISHARE=X1,X2,...,XN. * * DEFINE X1,X2,...,XN AS INDEPENDENT SHARED DEVICES. * XN MUST BE MASS STORAGE AND OF TYPE FLAGGED IN *TMSD*. * ISH DATA C*ISHARE=* LDD LD LPC -4000 ZJN ISH1 IF NO *SHARE=* ENTRIES JMP ILL PROCESS INCORRECT ENTRY ISH1 SOD KA CHARACTER STRING ADDRESS LDC 1020 SET INDEPENDENT SHARED DEVICE FLAG RJM DSC DEVICE STATUS CHECK LDC 4000 STD LD JMP KBR RETURN MSF SPACE 4,10 *** MSAL,X=E1,E2,... EN. * * ALLOW ALLOCATION TYPE *X* ON EQUIPMENTS *E1* TO *EN*. * * X = T FOR TEMPORARY FILES. * I FOR INPUT FILES. * O FOR OUTPUT FILES. * R FOR ROLLOUT FILES. * D FOR USER DAYFILES. * P FOR PRIMARY FILES. * L FOR LOCAL FILES. * B FOR *LGO* FILES. * S FOR SECONDARY ROLLOUT FILES. * * NOTE THIS ENTRY IS NOT ALLOWED FOR REMOVABLE EQUIPMENT. * EST ORDINALS *EN* MUST BE .LT. 60. MSF DATA C*MSAL,* LDN MXRS-1 STD T1 MSF1 LDM TMSF,T1 FIND FILE TYPE LMI KA ZJN MSF3 IF FOUND SOD T1 PJN MSF1 IF NOT END OF TABLE MSF2 JMP ILL PROCESS INCORRECT ENTRY MSF3 AOD KA CHECK SEPARATOR LDI KA LMN 1R= NJN MSF2 IF INCORRECT SEPARATOR AOD KA LDD T1 SET BIT ADD TH ERRNZ 1000-SHNI ADJUST IF VALUE CHANGES STM MSFA LDN 1 MSFA SHN ** MSF4 STD T7 SET MASKS LMC -0 STM MSFB LDC TDDB+DVFA STD T6 SOD KA MSF5 RJM GNE GET NEXT EST ORDINAL NJN MSF6 IF MORE EQUIPMENT JMP KBR RETURN MSF6 PJN MSF7 IF NOT MASS STORAGE SHN 21-10-21+13 PJN MSF8 IF NOT REMOVABLE DEVICE MSF7 RJM IRE PROCESS INCORRECT RANGE MSF8 LDN 57 SBD EQ MJN MSF7 IF EQUIPMENT OUT OF RANGE LDI T6 LPC 0 MSFB EQU *-1 LMD T7 STI T6 LPN 1 ZJN MSF9 IF NOT TEMPORARY FILES LDI ES SHN 21-11 MJN MSF9 IF SHARED DEVICE LDI T6 LPC -4000 LMC 4000 STI T6 MSF9 RJM SPE UPDATE EQUIPMENT DEFINITION UJN MSF5 PROCESS NEXT EQUIPMENT TMSF INDEX ALLOCATION TYPE TABLE INDEX TMPS,1RT TEMPORARY FILES INDEX INPS,1RI INPUT FILES INDEX OUTS,1RO OUTPUT FILES INDEX ROLS,1RR ROLLOUT FILES INDEX DAYS,1RD USER DAYFILES INDEX PRIS,1RP PRIMARY FILES INDEX LOCS,1RL LOCAL FILES INDEX LGOS,1RB *LGO* FILES INDEX SROS,1RS SECONDARY ROLLOUT FILES INDEX MXRS MXS SPACE 4,10 *** MAXSHARE=N,B. * * DEFINE MAXIMUM NUMBER OF SHARED DEVICES, IF *PRESET* MAY BE * PERFORMED AND NOT ALL SHARED DEVICES ARE DEFINED ON THIS * MAINFRAME. * * N = MAXIMUM TOTAL NUMBER OF SHARED DEVICES (N < 377B). * B = OPTIONAL PARAMETER SPECIFYING MAXIMUM NUMBER OF SHARED * DEVICES WHICH ARE BUFFERED DEVICES (B .LE. N; B < 377B). MXS DATA C*MAXSHARE=* RJM AOD ASSEMBLE OCTAL DIGITS SBK 377 PJN MXS1 IF DEVICE COUNT TOO LARGE LDD AB+4 STD T3 SBD NS PJN MXS2 IF .GE. NUMBER OF SHARED DEVICES MXS1 JMP ILL PROCESS INCORRECT ENTRY MXS2 LDI KA CHECK SEPARATOR LMN 1R. ZJN MXS3 IF NO OPTIONAL PARAMETER SPECIFIED AOD KA SKIP SEPARATOR RJM ASD ASSEMBLE DIGITS SBK 377 PJN MXS1 IF DEVICE COUNT TOO LARGE LDD AB+4 SBM NSBD MJN MXS1 IF .LT. NUMBER OF SHARED DEVICES LDD T3 SBD AB+4 MJN MXS1 IF MORE SHARED BUFFERED THAN TOTAL SHARED LDD AB+4 SET MAXIMUM SHARED BUFFERED DEVICE COUNT STM MSBD MXS3 LDD T3 SET MAXIMUM SHARED DEVICE COUNT STM MSDC JMP KBR RETURN PFS SPACE 4,30 *** PF=NNN,TY,DM,SM,FM,DN,NC. * * DEFINE PERMANENT FILE FAMILY DEVICE PARAMETERS (TY=F). * * PF=NNN,TY,FM,NC. * * DEFINE AUXILIARY PERMANENT FILE DEVICE PARAMETERS (TY = X). * * ALL PARAMETERS ARE ORDER DEPENDENT. * THIS ENTRY IS REQUIRED ONLY IF DEVICE IS TO BE INITIALIZED. * PF DESCRIPTIONS WILL BE RECOVERED FROM LABEL IF INITIALIZE * IS NOT SPECIFIED. * * NNN EST ORDINAL. * * TY TYPE OF PERMANENT FILE RESIDENCE. * *F* = DEVICE IS A FAMILY DEVICE. * *X* = DEVICE IS AUXILIARY (BOTH DIRECTS AND INDIRECTS * ALLOWED) IF TX = X THEN ONLY FM PARAMETER * IS REQUIRED * * DM DEVICE MASK - THIS DEFINES WHICH USERS CATALOGS RESIDE * ON THIS DEVICE. 0 < DM < 377. * THIS IS NOT ENTERED FOR AUXILIARY DEVICE. * A BIT SET IN DM FIELD DIRECTS TO THIS * DEVICE ALL CATALOGS WHOSE LAST DIGIT * CORRESPONDS TO BIT POSITION. * EXAMPLE DM = 132 CONTAINS USERS WITH USER * INDEX - * XXX1 * XXX3 * XXX4 * XXX6 * * SM SECONDARY MASK THIS DEFINES WHICH USERS MAY DEFINE * DIRECT ACCESS PERMANENT FILES ON THIS * DEVICE. THE VALIDATION IS PERFORMED * IN THE SAME MANNER AS FOR THE * DEVICE MASK. * * FM FAMILY NAME (1 - 7 CHARACTERS) THIS SHOULD * BE THE SAME FOR ALL DEVICES IN * THE FAMILY. * THIS IS PACK NAME IF TY = X. * * DN DEVICE NUMBER THIS DEFINES UNIQUE DESCRIPTION OF * DEVICE IN FAMILY. ALL DEVICES IN FAMILY * SHOULD HAVE DIFFERENT DN SPECIFIED. * DN = 1-77. THIS IS NOT ENTERED FOR * AUXILIARY DEVICE. * * NC NUMBER OF CATALOG TRACKS THIS PARAMETER MUST * BE A POWER OF 2 AND NOT GREATER THAN * 200B. THIS PARAMETER IS OPTIONAL WITH * THE DEFAULT BASED ON EQUIPMENT TYPE. * THIS ENTRY IS MEANINGLESS IF *DM* IS NOT * DEFINED. PFS DATA C*PF=* SOD KA RJM CEM CHECK IF EQUIPMENT MASS STORAGE LDI KA CHECK SEPARATOR LMN 1R, NJN PFS1 IF NOT *,* AOD KA SKIP *,* * PROCESS *TY*. LDI KA LMN 1RF ZJN PFS3 IF FAMILY DEVICE LMN 1RX&1RF ZJN PFS2 IF *X* PFS1 JMP ILL PROCESS INCORRECT ENTRY PFS2 LDN 4 SET AUXILIARY STATUS PFS3 STD T4 AOD KA ADVANCE CHARACTER LDI KA LMN 1R, NJN PFS1 IF SEPARATOR NOT *,* LDD T4 ZJN PFS4 IF NOT AUXILIARY DEVICE LDC 377S8 SET DEFAULT MASKS UJN PFS5 PROCESS PACK NAME * PROCESS *DM*. PFS4 AOD KA ASSEMBLE DEVICE MASK RJM AOD SHN -10 NJN PFS6 IF OUT OF RANGE LDD AB+4 SET IN DEVICE DESCRIPTION *TDDE* STD T7 * PROCESS *SM*. AOD KA ASSEMBLE *SM* RJM AOD SHN -10 NJN PFS6 IF OUT OF RANGE LDD AB+4 SHN 10 ADD T7 PFS5 STD T7 SHN -14 STD T6 * PROCESS FAMILY OR PACKNAME. LDN 10 ASSEMBLE NAME RJM ASN NJN PFS6 IF .GT. 7 CHARACTERS LDD CM CHECK NAME ZJN PFS6 IF NO CHARACTERS ASSEMBLED LMC 1R0*100 NJN PFS7 IF NOT *0* PFS6 JMP ILL PROCESS INCORRECT ENTRY * PROCESS *DN*. PFS7 LDD T4 NJN PFS8 IF AUXILIARY DEVICE AOD KA ASSEMBLE DEVICE NUMBER RJM AOD LPN 77 ZJN PFS6 IF INCORRECT DEVICE NUMBER RAD CM+3 * PROCESS *NC*. PFS8 LDI KA LMN 1R. ZJN PFS9 IF DEFAULT USED AOD KA RJM ASD SHN 4 PFS9 RAD T6 STM TDDB+DVPF SAVE PARAMETERS SHN -14 PFS10 NJN PFS6 IF *NC* .GT. 200B LDD T7 STM TDDB+DVPF+1 LDD T6 SHN -4 ZJN PFS11 IF *NC* = ZERO LDD AB+4 SHN 21-10 SHN 1 PJN *-1 IF BIT NOT DETECTED LPC 376000 NJN PFS10 IF *NC* NOT A POWER OF 2 PFS11 LDI ES SCN 4 LMD T4 SET *X* STATUS STI ES LDD CM MOVE NAME TO *TDDE* STM TDDB+DVNM LDD CM+1 STM TDDB+DVNM+1 LDD CM+2 STM TDDB+DVNM+2 LDD CM+3 STM TDDB+DVDN RJM SPE UPDATE TABLE IN CM LJM KBR RETURN PRS SPACE 4,10 *** PRESET. * * PRESET LINK DEVICE FOR MULTI-MAINFRAME OPERATION. * * PRESET=X,Y,...,Z. * PRESET=X-Z. * * PRESET TABLES ON INDEPENDENT SHARED DEVICES X,Y,...,Z. * * THIS ENTRY IS ALLOWED ONLY FROM THE KEYBOARD. PRS DATA C*PRESET* LDD RS NJN PRS1 IF NOT LEVEL 0 DEADSTART LDI KA LMN 1R= ZJN PRS5 IF PRESETTING ISHARED DEVICES RJM CLD ASSURE LINK DEVICE DEFINED ZJN PRS1 IF NO SHARED DEVICES LDI KA LMN 1R. ZJN PRS3 IF NO PARAMETER PRS1 JMP ILL PROCESS INCORRECT ENTRY PRS3 LDN 1 SET *PRESET* FLAG STM PRSF PRS4 JMP KBR RETURN PRS5 LDD LD SHN 0-13 ZJN PRS1 IF NOT ISHARED ENVIRONMENT PRS6 RJM GNE GET NEXT EST ORDINAL ZJN PRS4 IF END OF COMMAND PJN PRS1 IF NOT MASS STORAGE SHN 13-4 PJN PRS1 IF NOT ISHARED DEVICES LDM DVPR+TDDB SCN 1 LMN 1 SET PRESET FLAG STM DVPR+TDDB RJM SPE RETURN EQUIPMENT ENTRIES UJN PRS6 NEXT ORDINAL REM SPACE 4,10 *** REMOVE=X,Y,...,Z. * * DEFINE EQUIPMENTS X,Y,...,Z AS REMOVABLE DEVICES. * THESE EQUIPMENTS WILL BE AVAILABLE TO REMOVE OR INTRODUCE * DEVICES DURING OPERATION OF SYSTEM. * * NOTE THIS DIRECTIVE MUST BE ENTERED BEFORE A MASS STORAGE * DEVICE CAN BE SPECIFIED AS *DOWN* SUCCESSFULLY. * DEVICES *DE*, *DP*, *DV* AND *DW* CANNOT BE REMOVABLE. * THE FOLLOWING SPECIFICATIONS ARE NOT ALLOWED FOR * REMOVABLE DEVICES AND IF SPECIFIED PREVIOUSLY WILL * CAUSE *INCORRECT ENTRY* FOR THIS ENTRY. * * *ASR* * *SYSTEM* * *TEMP* * *FAMILY* * *DAYFILE* * *ACCOUNT* * *ERRLOG* * *SCKP* REM DATA C*REMOVE=* SOD KA REM1 RJM GNE GET NEXT EST ORDINAL NJN REM2 IF MORE EQUIPMENT JMP KBR RETURN REM2 PJN REM3 IF NOT MASS STORAGE LPC 2000S6 ADM TDDB+DVFA ZJN REM4 IF NOT SYSTEM OR FILE ALLOCATION DEVICE REM3 RJM IRE PROCESS INCORRECT RANGE REM4 LDM TDDB+DVPR CHECK CHECKPOINT DEVICE LPN 2 NJN REM3 IF SYSTEM CHECKPOINT DEVICE LDM EBUT+4 LPN 10 NJN REM3 IF ALTERNATE SYSTEM DEVICE LDD AB+4 LMM .PFNL+3 ZJN REM3 IF DEFAULT FAMILY DEVICE LDN DFBFL-1+MDLL STD T1 REM5 LDM DFBF,T1 LPC 777 LMD AB+4 ZJN REM3 IF DAYFILE DEVICE SOD T1 PJN REM5 IF NOT END OF DAYFILES LDN REML-1 CHECK TABLE OF NON-REMOVABLE DEVICES STD T1 REM6 LDM REMA,T1 CHECK NEXT TABLE ENTRY LMM EBUT+3 ZJN REM3 IF DEVICE CANNOT BE REMOVABLE SOD T1 PJN REM6 IF NOT END OF TABLE LDI ES LPC 7377 LMC 400 STI ES RJM SPE RETURN EQUIPMENT ENTRY TO TABLES LJM REM1 MORE EQUIPMENT TO PROCESS REMA BSS 0 DEVICES THAT CANNOT BE REMOVABLE CON 2RDE CON 2RDP CON 2RDV CON 2RDW REML EQU *-REMA LENGTH OF TABLE CKP SPACE 4,10 *** SCKP=X,Y,...,Z. * * *CKP* ASSIGNS THE CHECKPOINT ATTRIBUTE TO DEVICES WITH EST * ORDINALS X, Y, ..., Z. CHECKPOINT DEVICES MUST BE * NON-REMOVABLE AND CANNOT BE EXTENDED MEMORY DEVICES. CKP DATA C*SCKP=* SOD KA CKP1 RJM GNE GET NEXT EST ORDINAL NJN CKP2 IF MORE EQUIPMENT JMP KBR RETURN CKP2 PJN CKP3 IF NOT MASS STORAGE DEVICE SHN 13-10 MJN CKP3 IF REMOVABLE DEVICE LDM EBUT+3 LMC 2RDE ZJN CKP3 IF EM DEVICE LMK 2RDP&2RDE ZJN CKP3 IF EM DEVICE LDM TDDB+DVPR SET CHECKPOINT DEVICE BIT IN SKELETAL MST SCN 2 LMN 2 STM TDDB+DVPR BACK INTO MST BUFFER RJM SPE UPDATE EQUIPMENT DEFINITION UJN CKP1 CHECK FOR MORE EQUIPMENT CKP3 RJM IRE PROCESS INCORRECT ENTRY SHD SPACE 4,10 *** SHARE=X1,X2,...,XN. * * DEFINE X1,X2,...,XN AS SHARED DEVICES. * XN MUST BE MASS STORAGE AND OF TYPE FLAGGED IN *TMSD*. * * NOTE THIS ENTRY IS NOT ALLOWED FOLLOWING *PRESET*. SHD DATA C*SHARE=* LDD LD SHN 0-13 NJN SHD2 IF ISD PRESENT LDM PRSF NJN SHD2 IF LINK DEVICE PRESET SOD KA LDD TH RJM DSC DEVICE STATUS CHECK LDN LDEQ SET LINK DEVICE NUMBER STD LD JMP KBR RETURN SHD2 JMP ILL PROCESS INCORRECT ENTRY SYSTEM SPACE 4,10 *** SYSTEM=X,Y,...,Z. * SET SYSTEM DEVICES TO X, Y, ..., Z. * X - Z MAY BE ANY NON REMOVABLE MASS STORAGE DEVICE. * IF NONE IS SPECIFIED, THE FIRST MASS STORAGE * DEVICE IS USED AS A DEFAULT. * ALL EQUIPMENTS SPECIFIED MUST BE OF SAME TYPE. * X - Z EST ORDINALS MUST BE .LT. 40. * * ENTRY IS NOT ALLOWED IF * ST = *OFF* * *REMOVE* * *ASR* SYS DATA C*SYSTEM=* SOD KA SYS1 RJM GNE GET NEXT EST ORDINAL NJN SYS2 IF MORE EQUIPMENT JMP KBR RETURN SYS2 PJN SYS3 IF NOT MASS STORAGE SHN 21-12-21+13 MJN SYS1 IF ALREADY SYSTEM DEVICE LPC 402S7 NJN SYS3 IF OFF/DOWN/REMOVABLE LDM EBUT+4 SHN 21-3 MJN SYS3 IF ALTERNATE SYSTEM DEVICE LDD EQ SHN -5 NJN SYS3 IF EQUIPMENT OUT OF RANGE LDM SYDC ZJN SYS4 IF NO PREVIOUS SYSTEM DEVICES LMN MXSY ZJN SYS3 IF MAXIMUM SYSTEM DEVICE COUNT LDM EBUT+3 LMM SYDT NJN SYS3 IF NOT SAME DEVICE TYPE LDM EBUT+4 LMM SYNU LPN 7 ZJN SYS5 IF SAME UNIT COUNT SYS3 RJM IRE PROCESS INCORRECT RANGE SYS4 LDM EBUT+3 SET SYSTEM DEVICE TYPE STM SYDT LDM EBUT+4 STM SYNU SYS5 LDC 2000 SET SYSTEM DEVICE STATUS RAI ES LDN 1 SET *TSDS* ALLOCATION STATUS SHN TSDS RAM TDDB+DVFA RJM SPE RETURN EQUIPMENT ENTRIES AOM SYDC INCREMENT SYSTEM DEVICE COUNT LJM SYS1 CHECK FOR ADDITIONAL SYSTEM DEVICES THD SPACE 4,10 *** THRESHOLD,OP=XXXX,X1,X2,...,XN. * * OP = VF TO SET VALIDATION FAILURE THRESHOLD. * RA TO SET RESTRICT ACTIVITY THRESHOLD. * LS TO SET LOW SPACE THRESHOLD. * RE TO SET RECOVERED ERROR THRESHOLD. * UE TO SET UNRECOVERED ERROR THRESHOLD. * XXXX = THRESHOLD VALUE. * X1,X2,...,XN = EST ORDINALS OF MS DEVICES. THD DATA C*THRESHOLD,* LDC TTHD RJM SOT SEARCH TABLE FOR THRESHOLD OPTION STD T6 LDI KA CHECK SEPARATOR LMN 1R= NJN THD1 IF NOT *=* AOD KA RJM AOD ASSEMBLE THRESHOLD VALUE STD T7 SHN 0-13 NJN THD1 IF VALUE TOO LARGE LDI KA CHECK NEXT SEPARATOR LMN 1R, ZJN THD3 IF VALID SYNTAX THD1 JMP ILL INCORRECT ENTRY THD2 PJN THD1 IF NOT MASS STORAGE DEVICE LDD T7 SET ERROR THRESHOLD STM TDDB+DVTH,T6 RJM SPE UPDATE EQUIPMENT DEFINITION THD3 RJM GNE CHECK NEXT EST ORDINAL NJN THD2 IF ANOTHER DEVICE SPECIFIED JMP KBR RETURN ** TTHD - TABLE OF THRESHOLD IDENTIFIERS. TTHD INDEX INDEX DVVF-DVTH,2RVF VERIFICATION FAILURES INDEX DVRA-DVTH,2RRA RESTRICTED ACTIVITY INDEX DVLS-DVTH,2RLS LOW SPACE INDEX DVRE-DVTH,2RRE RECOVERED ERRORS INDEX DVUE-DVTH,2RUE UNRECOVERED ERRORS INDEX 5 CON 0 UEM SPACE 4,10 *** UEMIN. * * TOGGLE FULL INITIALIZE STATUS FOR *UEM* EQUIPMENT * ON LEVEL 0 DEADSTART. UEM DATA C*UEMIN.* LDD EN CHECK FOR UEM PRESENT RJM STA ZJN UEM1 IF EXTENDED MEMORY EQUIPMENT UNDEFINED LDM EMTY LMN 4 ZJN UEM2 IF MEMORY TYPE *UEM* UEM1 JMP ILL PROCESS INCORRECT ENTRY UEM2 LDD RS NJN UEM3 IF RECOVERY DEADSTART LDM EBUT+4 LPC MLIAL+17 LMC MLIAL SET FULL INITIALIZE REQUESTED STM EBUT+4 RJM EEB UPDATE EQUIPMENT SPECIFICATION UEM3 JMP KBR RETURN UPC SPACE 4,10 *** UP,CH=C1,C2,...,CN. * * UP SPECIFIED CHANNELS PREVIOUSLY DOWNED. * * C1 - CN = CHANNEL NUMBER TO BE UPPED. A PREFIX OF * *C* DESIGNATES A CONCURRENT CHANNEL. UPC DATA C*UP,* LDN 0 INDICATE *UP* PROCESSING UJP DWN1 JOIN COMMON *UP*/*DOWN* PROCESSING XM SPACE 4,20 *** XM=MID,IIII,UUUUU,EM. * ALLOCATE EXTENDED MEMORY WHERE - * * MID = MACHINE ID. * IIII = NUMBER OF WORDS/1000B TO ALLOCATE FOR 819/DEMA/895 * BUFFERS. MINIMUM = 40B (16K WORDS). * MAXIMUM = 37770B (8M WORDS). * = 0 IF NO BUFFERS DESIRED. * UUUUU = NUMBER OF WORDS/1000B TO ALLOCATE FOR USER XM. * MAXIMUM = 77740B. * EM = IF PRESENT, FORCE USER EXTENDED MEMORY TO UEM. * * XM=MID. * CLEAR ALLOCATION FOR MACHINE *ID*. AXM DATA C*XM=* LDC SHNI+3 PRESET SHIFT INSTRUCTION ADM EMSC STM AXMA LDN ZERL INITIALIZE TABLE ENTRY CRD CN SOD KA RJM A2C ASSEMBLE MACHINE ID AXM0 ZJP .ILL IF NOT SPECIFIED STD CN LDN 1 RJM AVS ASSEMBLE IOB SIZE ZJN AXM1 IF NO IOB SIZE SPECIFIED STD CN+4 RJM CFT CONVERT TO TRACK COUNT SHN 6 ADD T0 SHN -5 SBD CN+4 SHN 0-21 RAD T0 STD CN+3 AXM1 LDN 0 RJM AVS ASSEMBLE USER XM SIZE STD CN+2 ZJN AXM1.1 IF VALUE NOT SPECIFIED LDM VEFL ZJN AXM1.1 IF *VE* NOT SPECIFIED LDM VEMZ ADM VEMZ+1 ZJN AXM0 IF *VE=.* SPECIFIED AXM1.1 RJM A2C ASSEMBLE OPTIONAL *EM* PARAMETER LMC 2REM NJN AXM2 IF NO *EM* PARAMETER LDM EMTY LMN 4 ZJN AXM2 IF UEM EST ENTRY PRESENT AOD CN+1 SET USER XM IN UEM * VALIDATE ENTRIES ARE CONSISTENT FOR MAINFRAME AND EM TYPE. AXM2 LDD ID LMD CN NJN AXM6 IF NOT FOR THIS MACHINE * *EM* REQUIRES CME MACHINE. LDD CN+1 ZJN AXM3 IF NOT *EM* LDD HO SHN 21-13 MJN AXM5 IF NOT CME * I/O BUFFERS REQUIRE CPU ACCESS EQUIPMENT. AXM3 LDD CN+4 ZJN AXM4 IF NO I/O BUFFERS LDD EN ZJN AXM5 IF NO CPU ACCESS EQUIPMENT * USER XM REQUIRES CPU ACCESS, UNLESS IT-S IN UEM WITH NO EST. AXM4 LDD CN+2 ZJN AXM8 IF NO USER XM LDD EN NJN AXM8 IF CPU ACCESS EQUIPMENT LDD CN+1 NJN AXM8 IF *EM* AXM5 JMP ILL * VALIDATE ENTRIES FOR ANOTHER MACHINE. * I/O BUFFERS OR USER XM REQUIRES LINK DEVICE. AXM6 LDD CN+4 ADD CN+2 ZJN AXM7 IF NO I/O BUFFERS OR USER XM LDD PD ZJN AXM5 IF NO LINK DEVICE LDN 0 AXM7 STD CN+1 CLEAR POSSIBLE USER XM IN UEM FLAG * LOCATE PROPER ENTRY IN TABLE. AXM8 LDN 0 STD T3 CLEAR POINTER TO EMPTY SLOT STD T4 LDD CN LMD ID ZJN AXM11 IF ENTRY FOR THIS MACHINE, USE FIRST SLOT * SEARCH EXTENDED MEMORY ALLOCATION TABLE FOR MATCHING ID * OR EMPTY SLOT. AXM9 LDN 5 RAD T4 ADVANCE SEARCH ADK -TAXML MJN AXM10 IF NOT END OF TABLE LDD T3 ZJN AXM5 IF NO FREE ENTRY STD T4 LJM AXM15 MOVE ENTRY TO TABLE AXM10 LDM TAXM,T4 LMD CN ZJN AXM15 IF MATCHING ENTRY FOUND LMD CN NJN AXM9 IF SLOT USED LDD T3 NJN AXM9 IF FREE ENTRY FOUND LDD T4 STD T3 SAVE POINTER TO EMPTY SLOT UJN AXM9 LOOP * PROCESS ENTRY FOR THIS MACHINE. AXM11 LDD T5 SET SHIFT COUNT FROM *AVS* STM UESC LDM EMTY LMN 4 ZJN AXM15 IF UEM PRESENT, PRESERVE ITS SIZE LDD CN+1 NJN AXM13 IF INTERNAL USER EXTENDED MEMORY SPECIFIED LDM TAXM+1 CHECK PRIOR *XM* ENTRY ZJN AXM15 IF NO PRIOR INTERNAL USER EM DEFINITION LDN 0 UJN AXM14 CLEAR UEM SIZE AXM13 LDD CN+2 GET USER EXTENDED MEMORY SIZE AXMA SHN 3 CONVERT BACK TO 100B WORD BLOCKS * SHN 3+EMSC (EMSC = EXTENDED MEMORY SHIFT COUNT) AXM14 STM UEMZ+1 SET/CLEAR UEM REQUIRED SIZE SHN -14 STM UEMZ * ENTER *XM* ENTRY IN *TAXM* TABLE. AXM15 LDN CN STD T1 LDD CN+2 ADD CN+4 NJN AXM16 IF NOT CLEARING ENTRY STD CN CLEAR MACHINE ID AXM16 LDI T1 MOVE ENTRY TO *TAXM* TABLE STM TAXM,T4 AOD T4 AOD T1 SBN CN+5 NJN AXM16 IF MORE BYTES TO MOVE RJM CMS ZJN AXM17 IF NO ERROR JMP ERR ERROR EXIT AXM17 JMP KBR RETURN TITLE MISCELLANEOUS SUBROUTINES. ACM SPACE 4,10 ** ACM - ADJUST CENTRAL MEMORY. * * EXIT (FL - FL+1) = EXECUTION FIELD LENGTH. * * USES T1 - T4. ACM SUBR ENTRY/EXIT LDD FL STM MCMS LDD FL+1 SAVE MINCM VALUE STM MCMS+1 LCN 0 SET MAXIMUM NOS FL TO 2097088 STD T2 LPN 7 STD T1 LDM UEMZ+1 ADM UEMZ ZJN ACM1 IF NO UEM DEFINED LDD MZ+1 LPN 7 ADJUST FOR 1000B WORD UEM BOUNDARY ACM1 STD T4 LDM VEMZ+1 FIND MEMORY NOT ALLOCATED TO VE OR UEM ADM UEMZ+1 RAD T4 SHN -14 ADM VEMZ ADM UEMZ STD T3 LDD MZ+1 SBD T4 STD FL+1 PJN ACM1.1 IF NO BORROW AOD T3 ADJUST FOR BORROW AOD FL+1 ACM1.1 LDD MZ SBD T3 STD FL LDD T1 COMPARE WITH MAXIMUM USABLE NOS FL STD T3 LDD FL+1 SBD T2 STD T4 PJN ACM2 IF NO BORROW AOD T3 ADJUST FOR BORROW AOD T4 ACM2 LDD FL SBD T3 STD T3 MJN ACM4 IF NO UNUSED MEMORY AVAILABLE FOR NOS/VE LDM VEFL ZJN ACM3 IF NOS/VE NOT DEFINED LDD T4 RAM VEMZ+1 ADJUST NOS/VE MEMORY SIZE SHN -14 ADD T3 RAM VEMZ ACM3 LDD T1 ADJUST NOS MEMORY SIZE STD FL LDD T2 STD FL+1 ACM4 LDD FL ZJN ACM5 IF MACHINE FL .LT. 262K LDD HO SHN 0-13 ZJN ACM5 IF CME MAINFRAME LCN 0 SET NOS MEMORY SIZE TO 262K - 100B STD FL+1 LDN 0 STD FL ACM5 LDD FL+1 ADM UEMZ+1 SHN -14 ADD FL ADM UEMZ SHN -3 NJN ACM6 IF EXPANDED MODE NEEDED LDM EMSC ADD TH ERRNZ SHNI-1000 STM ACMB LDM EMFL ZJN ACM7 IF EXPANDED MODE NOT NEEDED ACMB SHN 0 * SHN EMSC SBN 1 SHN -14 CHECK FOR EMFL GT 2MW ZJN ACM7 IF EXPANDED MODE NOT NEEDED ACM6 LDK PSNI STM ACMD LDM CMDL GET MODEL NUMBER SBN 40 ZJP ACM11 IF CYBER 835 SBN 77-40 PJN ACM10 IF CYBER 990 LDM C8XX ZJN ACM8 IF CYBER 800 TYPE MAINFRAME LDD HO SHN 21-13 PJN ACM8 IF CYBER 865/875 LDC PJNI+ACM13-ACMC STM ACMC ERROR, IF ECS AND .GT. 2MW XM ACM7 LDM CMDL SBN 77 PJN ACM10 IF CYBER 990 LDD HO LPC 100 CHECK FOR A CYBER 170 TYPE MAINFRAME NJN ACM9 IF NOT A CYBER 170 TYPE MAINFRAME LDN CFGL CRD CM LDD CM+3 SHN 21-12 GET ESM MODE BIT ACMC PJN ACM9 IF ECS AND NOT ESM * PJN ACM13 (IF ECS MODE AND .GT. 2MW) ACM8 LDN 1 SET EXPANDED ADDRESSING MODE STM EMAF ACM9 LJM ACMX RETURN ACM10 LDM C9LM NJN ACM15 IF LARGE CYBER 990 ACMD UJN ACM9 RETURN * PSN (IF .GE. 2MW CM) ACM11 LDD FL SUBTRACT UEM FROM CM SBM UEMZ STD FL SBM MCMS CHECK FOR TOO LITTLE MEMORY AVAILABLE MJN ACM13 IF MORE XM REQUESTED THAN AVAILABLE LDD FL SHN 14 ADD FL+1 SBM UEMZ+1 STD FL+1 SHN -14 STD FL SHN 14 ADD FL+1 SBM MCMS+1 CHECK FOR TOO LITTLE MEMORY AVAILABLE ACM12 PJN ACM9 IF VALID MEMORY SIZE REMAINING ACM13 LDC 2RXM STM CMSA LDC CMSA ACM14 LJM DSE DISPLAY ERROR MESSAGE AND HANG ACM15 LDM TAXM+2 NJN ACM12 IF USER XM PRESENT LDC ACME UJN ACM14 DISPLAY ERROR MESSAGE ACME DATA C*USER XM REQUIRED.* ERRPL ACM13-ACMC-40 JUMP OUT OF RANGE AODSUB ASDSUB ASNSUB AVS SPACE 4,10 ** AVS - ASSEMBLE AND VALIDATE SIZE PARAMETER. * * ENTRY (A) = 0 IF PROCESSING USER EM SIZE. * = 1 IF PROCESSING IO BUFFER SIZE. * (KA) = CURRENT CHARACTER STRING ADDRESS. * * EXIT (A) = 0 IF END OF STRING, ELSE ASSEMBLED SIZE/*EMBS*. * (T5) = USER EM SHIFT COUNT REQUIRED FOR USER EM SIZE * TO FIT IN 11 BITS. * * ERROR TO *ILL* IF INCORRECT SIZE ENTRY. * * CALLS AOD. AVS6 LDD LD LPC 777 NJN AVS7 IF LINK DEVICE DEFINED LDM EMSC STM LDSH USE EM DEVICE WITH CPU ACCESS AVS7 LDC SHNI+3 SBM EMSC STM AVSA LDD AB+3 RETURN SIZE PARAMETER VALUE SHN 14 LMD AB+4 AVSA SHN 3 ALLOW FOR BLOCKING FACTOR * SHN 3-EMSC ADN 7 SHN -3 STD T0 SHN -14 NJN AVS1 IF VALUE TOO LARGE LDD T0 AVS SUBR ENTRY/EXIT STD T5 LDI KA SBN 1R. ZJN AVSX IF NO ENTRY AOD KA ADVANCE CHARACTER ADDRESS RJM AOD ASSEMBLE SIZE PARAMETER LDD AB+3 VALIDATE SIZE PARAMETER SCN 7 NJN AVS1 IF SIZE TOO LARGE LDD T5 ZJN AVS2 IF PROCESSING USER XM SIZE LDD AB+3 SHN 14 LMD AB+4 ZJN AVSX IF NO IOB SIZE SPECIFIED SBN 40 MJN AVS1 IF IOB SIZE .LT. 16K WORDS SBK 37771-40 MJN AVS5 IF IOB SIZE .LT. 8M WORDS AVS1 JMP ILL PROCESS INCORRECT ENTRY AVS2 LDD AB+3 SHN 14 LMD AB+4 ADC -77741 PJN AVS1 IF USER XM SIZE .GT. MAXIMUM ADC 77741 SHN -13 ZJN AVS4 IF .LE. 1M WORDS AVS3 STD T0 AOD T5 INCREASE EM SHIFT COUNT LDD T0 SHN -1 NJN AVS3 IF XM SIZE NOT YET DETERMINED AVS4 LDD EN NJN AVS5 IF XM DEVICE DEFINED LDD T5 ZJN AVS5 IF NO SHIFT REQUIRED SBN 1 STM EMSC AVS5 UJP AVS6 RETURN SIZE PARAMETER VALUE A2C SPACE 4,10 ** A2C - ASSEMBLE TWO CHARACTER VALUE. * * ENTRY KA = CURRENT CHARACTER STRING ADDRESS. * * EXIT (A) = VALUE ASSEMBLED. * TO *ILL* IF SEPARATOR NOT *.* OR *,* OR IF * VALUE LONGER THAN TWO CHARACTERS. * * CALLS ASN. A2C1 LDD CM RETURN VALUE A2C SUBR LDI KA SBN 1R. ZJN A2CX IF NOTHING TO ASSEMBLE LDN 3 RJM ASN ASSEMBLE VALUE ZJN A2C1 IF .LE. 2 CHARACTERS AND PROPER SEPARATOR JMP ILL PROCESS INCORRECT ENTRY CDD SPACE 4,10 ** CDD - CHECK DEADSTART DISK. * * ENTRY (DF) = DEADSTART FUNCTION. * (DH) = DEADSTART CHANNEL. * * EXIT (A) = 0 IF DEADSTART DEVICE. CDD SUBR ENTRY/EXIT LDD DF LPC 700 NJN CDDX IF NOT DISK DEADSTART LDI ES SHN -6 LPN 42 CDD1 LMN 42 NJN CDDX IF NOT MASS STORAGE / *LDAM* DEVICE LDM EBUT+1 LMD DH LPN 77 ZJN CDD2 IF MATCH ON PRIMARY CHANNEL LDM EBUT+2 ZJN CDD1 IF NO SECONDARY CHANNEL LMD DH LPN 77 NJN CDDX IF NO MATCH ON SECONDARY CHANNEL CDD2 LDD DF LPN 77 LMM TDDB+DVUN+3 UJN CDDX RETURN CDRSUB CDT SPACE 4,10 ** CDT - CHECK DEADSTART TAPE. * * ENTRY (DF) = DEADSTART FUNCTION. * (DH) = DEADSTART CHANNEL. * * EXIT (A) = 0 IF DEADSTART DEVICE. CDT SUBR ENTRY/EXIT LDM EBUT+3 CHECK EQUIPMENT TYPE SHN 14 LMC 1LT+1RN ZJN CDT2 IF *NT* CDT1 LMN 1RM&1RN NJN CDTX IF NOT *MT* CDT2 LDM EBUT+4 LMD DF CHECK CONNECT CODE LPC 7017 NJN CDTX IF NO MATCH ON EQUIPMENT AND UNIT LDM EBUT+1 CHECK 1ST CHANNEL LMD DH LPN 37 ZJN CDTX IF MATCH ON 1ST CHANNEL LDM EBUT+2 ZJN CDT1 IF NO SECOND CHANNEL LMD DH LPN 37 UJN CDTX RETURN CEM SPACE 4,10 ** CEM - CHECK FOR MASS STORAGE. * * EXIT (A) = (EBUT) WITH BIT 13 SHIFTED TO SIGN POSITION. * (MS) = *TMSD* TABLE ADDRESS. * (AB+4) = EST ORDINAL. CEM2 LDD AB+4 FETCH EQUIPMENT DEFINITION RJM STA LDI ES SHN 21-13 PJN CEM1 IF NOT MASS STORAGE CEM SUBR ENTRY/EXIT AOD KA RJM AOD ASSEMBLE EST ORDINAL SBD LE MJN CEM2 IF VALID EST ORDINAL CEM1 JMP ILL PROCESS INCORRECT ENTRY CLD SPACE 4,10 ** CLD - CHECK LINK DEVICE DEFINED FOR MMF OPERATION. * * EXIT (A) = 0 IF NO SHARED DEVICES. * * ERROR TO *DDE*. * * NOTES IF (NS) .NE. 0 AND A LINK DEVICE IS DEFINED * CORRECTLY, SHARED STATUS WILL BE SET IF THE * LINK DEVICE IS NOT ALREADY SHARED. * * CALLS EEB, STA. CLD SUBR ENTRY/EXIT LDD LD LMC 4000 ZJN CLDX IF ISD PRESENT LDD NS ZJN CLDX IF NO SHARED DEVICES LDN LDEQ CHECK LINK DEVICE TYPE RJM STA ZJN CLD4 IF NO EQUIPMENT DEFINED LDM TDDB+DVED CHECK EXTENDED MEMORY TYPE SHN -6 LPN 7 ZJN CLD3 IF NOT EXTENDED MEMORY SBN 3 ZJN CLD3 IF LCME LDI ES SHN 21-1 MJN CLD3 IF DEVICE *OFF* OR *DOWN* SHN 2+21-11 MJN CLDX IF SHARED STATUS SET PREVIOUSLY LDD TH SET SHARED STATUS RAI ES RJM EEB RETURN EQUIPMENT ENTRY AOD NS ADVANCE SHARED DEVICE COUNT UJP CLDX RETURN CLD3 LDN CLDB-CLDA SET ERROR MESSAGE ADDRESS CLD4 ADC CLDA LJM DDE DISPLAY DEADSTART ERROR CLDA DATA C*NO LINK DEVICE DEFINED.* CLDB DATA C*LINK DEVICE INCORRECTLY DEFINED.* CME SPACE 4,10 ** CME - CHECK *MMF* ENVIRONMENT. * * ERROR TO *DDE*. * * CALLS CLD. CME SUBR ENTRY/EXIT RJM CLD ZJN CMEX IF NOT ECS MMF ENVIRONMENT LDM EBUT+4 SCN 17 ZJN CMEX IF LINK DEVICE NOT BEING INITIALIZED LDM PRSF NJN CMEX IF PRESET SPECIFIED LDC CMEA LJM DDE DISPLAY DEADSTART ERROR CMEA DATA C*INITIALIZE OF LINK DEVICE REQUIRES PRESET.* COD SPACE 4,10 ** COD - CONVERT OCTAL TO DISPLAY CODE. * * ENTRY (A) = FWA OF ERROR MESSAGE. * (EQ) = EST ORDINAL OF INCORRECT EQUIPMENT. * * EXIT (KM) = ERROR MESSAGE ADDRESS. COD SUBR ENTRY/EXIT STD KM LDD EQ UNPACK FIRST TWO DIGITS SHN -3 STD T0 SHN 3 LMD T0 SCN 70 ADC 2R00 CONVERT DIGIT STM 1,KM LDD EQ UNPACK THIRD DIGIT LPN 7 SHN 6 ADC 2R0 CONVERT DIGIT STM 2,KM UJN CODX RETURN DCM SPACE 4,10 ** DCM - DISPLAY CONVERTED MESSAGE. * * ENTRY (A) = ADDRESS OF ERROR MESSAGE. * (EQ) = EST ORDINAL OF INCORRECT EQUIPMENT. * * EXIT TO *DDE*. * * CALLS COD. DCM RJM COD CONVERT OCTAL TO DISPLAY LDD KM * UJN DDE ERRNZ DDE-* IF CODE NOT CONTIGUOUS DDE SPACE 4,10 ** DDE - DISPLAY DEADSTART ERROR. * * ENTRY (A) = ADDRESS OF ERROR MESSAGE. * * EXIT TO *ATD3*. DDE STD KM SET MESSAGE ADDRESS LDN 0 STD DS FORCE DISPLAY STD DP LJM ATD3 PROCESS KEYBOARD ASSEMBLY DSC SPACE 4,10 ** DSC - DEVICE STATUS CHECK. * * ENTRY (A) = BITS TO SET IN BYTE 0 OF EST ENTRY. * * EXIT (MS) = *TMSD* BUFFER ADDRESS IF MASS STORAGE. * (AB+4) = EST ORDINAL. * * USES NS, T7. * * CALLS GNE, IRE, SPE. DSC SUBR ENTRY/EXIT STD T7 DSC1 RJM GNE GET NEXT EST ORDINAL ZJN DSCX IF NO MORE EQUIPMENT PJN DSC3 IF NOT MASS STORAGE SHN 21-11-21+13 MJN DSC1 IF ALREADY DEFINED AS SHARED LDM TDDB+DVCT CHECK FOR VALID DEVICE TYPE SHN 21-13 PJN DSC3 IF INCORRECT DEVICE TYPE LDD T7 RAI ES LPN 20 ZJN DSC4 IF NOT INDEPENDENT SHARED DEVICE LDM EBUT+3 LMC 2RDE ZJN DSC3 IF EXTENDED MEMORY LMK 2RDP&2RDE NJN DSC4 IF NOT EXTENDED MEMORY DSC3 RJM IRE PROCESS INCORRECT RANGE DSC4 AOD NS INCREMENT SHARED DEVICE COUNT LDI ES LPN 40 ZJN DSC5 IF NOT BUFFERED DEVICE AOM NSBD INCREMENT SHARED BUFFERED DEVICE COUNT DSC5 LDM TDDB+DVFA CLEAR TEMP - NONSHARED STATUS LPC -4000 STM TDDB+DVFA RJM SPE SYNCHRONIZE PARTITIONS AND ENTER EQUIPMENT UJP DSC1 PROCESS NEXT EQUIPMENT GNE SPACE 4,15 ** GNE - GET NEXT EST ORDINAL. * * ENTRY (KA) = ADDRESS OF SEPARATOR. * * EXIT (A) = (EBUT) WITH BIT 13 SHIFTED TO SIGN POSITION, * IF MASS STORAGE EQUIPMENT. * = 1, IF NOT MASS STORAGE EQUIPMENT. * = 0, IF NO MORE EQUIPMENTS. * (EQ) = EST ORDINAL. * * USES AB+3, AB+4, EQ, KA. * * CALLS AOD, CDR, STA. GNE6 LDD AB+4 STD EQ SBD LE MJN GNE7 IF VALID EST ORDINAL RJM IRE PROCESS INCORRECT RANGE GNE7 LDD AB+4 RJM STA LDM EBUT+3 NJN GNE8 IF ENTRY NOT NULL LDM GNEA NJN GNE1 IF PROCESSING A RANGE OF ORDINALS JMP ILL PROCESS INCORRECT ENTRY GNE8 LDI ES SHN 21-13 MJN GNEX IF MASS STORAGE LDN 1 GNE SUBR ENTRY/EXIT LDM GNEA ZJN GNE2 IF NOT PROCESSING RANGE GNE1 AOD AB+4 LDM GNEA SBD AB+4 PJN GNE3 IF NOT END OF RANGE LDN 0 STM GNEA GNE2 LDI KA LMN 1R. CHECK SEPARATOR ZJN GNEX IF *.* AOD KA RJM CDR ASSEMBLE EST ORDINAL LMN 1R, CHECK SEPARATOR ZJN GNE3 IF *,* LMN 1R.&1R, ZJN GNE3 IF *.* LMN 1R-&1R. NJN GNE4 IF NOT *-* LDD AB+4 SAVE EST ORDINAL STD EQ AOD KA RJM AOD ASSEMBLE LAST EST ORDINAL STM GNEA SAVE LAST EST ORDINAL SBK ESMX PJN GNE4 IF EST ORDINAL EXCEEDS MAXIMUM LDD EQ STD AB+4 RESTORE CURRENT EST ORDINAL SBM GNEA PJN GNE4 IF INCORRECT RANGE GNE3 LJM GNE6 READ EST ENTRY GNE4 JMP ILL PROCESS INCORRECT ENTRY GNEA CON 0 LAST EST ORDINAL IN RANGE IRE SPACE 4,10 ** IRE - INCORRECT RANGE ERROR. * * ENTRY (EQ) = EST ORDINAL OF INCORRECT EQUIPMENT. * * EXIT TO *ERR*. * * CALLS COD. IRE EQU *-1 LDC IREA RJM COD JMP ERR IREA DATA C*EQXXX - INCORRECT ENTRY* SDF SPACE 4,10 ** SDF - SET DEFAULT MASS STORAGE DEVICE. * * EXIT (DFMS) = FIRST NONREMOVABLE MASS STORAGE DEVICE. * * ERROR TO *DDE*. * * USES EQ. * * CALLS STA. SDF3 LPC 402S6 NJN SDF2 IF OFF/DOWN/REMOVABLE LDM EBUT+3 LMC 2RDE ZJN SDF2 IF EXTENDED MEMORY LMK 2RDP&2RDE ZJN SDF2 IF EXTENDED MEMORY LDD EQ SBN 40 PJN SDF2 IF ORDINAL OUT OF RANGE ADN 40 STM DFMS SET DEFAULT DEVICE SDF SUBR ENTRY/EXIT LDN NOPE STD EQ SDF1 LDD EQ FETCH EQUIPMENT ENTRY RJM STA LDI ES SHN 21-13 MJN SDF3 IF MASS STORAGE SDF2 AOD EQ INCREMENT ORDINAL LMD LE NJN SDF1 IF NOT END OF EST LDC SDFA LJM DDE DISPLAY DEADSTART ERROR SDFA DATA C*NO SYSTEM DEVICE DEFINED.* SDS SPACE 4,10 ** SDS - SEARCH FOR DEADSTART DEVICE. * * EXIT (AB+4) = EST ORDINAL OF DEADSTART DEVICE. * * ERROR TO *DDE*. * * USES AB+4. * * CALLS CDD, CDT, STA. SDS SUBR ENTRY/EXIT LDN NOPE STD AB+4 SDS1 LDD AB+4 READ EQUIPMENT ENTRY RJM STA LDI ES LPN 3 LMN 3 ZJN SDS2 IF DEVICE *DOWN* RJM CDD CHECK DEADSTART DISK ZJN SDSX IF MS DEVICE IDENTIFIED RJM CDT CHECK DEADSTART TAPE ZJN SDSX IF TAPE UNIT FOUND SDS2 AOD AB+4 ADVANCE EST ORDINAL LMD LE NJN SDS1 IF NOT END OF EST LDC SDSA LJM DDE DISPLAY DEADSTART ERROR SDSA DATA C*DEADSTART DEVICE UNDEFINED.* SOT SPACE 4,15 ** SOT - SEARCH OPTION TABLE. * * ENTRY (A) = FWA OF PARAMETER TABLE. * ((KA - KA+1)) = PARAMETER NAME. * * EXIT (A) = INDEX OF ENTRY FOUND. * (T2) = TABLE ADDRESS OF ENTRY FOUND. * (T1) = ((T2)) = PARAMETER NAME. * (KA) = KEYBOARD BUFFER ADDRESS ADVANCED. * * USES T3. SOT2 LDN 2 ADVANCE BUFFER ADDRESS RAD KA LDD T2 RETURN WITH INDEX SBD T3 SOT SUBR ENTRY/EXIT STD T2 STD T3 SAVE FWA OF TABLE LDI KA SHN 6 LMM 1,KA ASSEMBLE PARAMETER NAME STD T1 LDI T2 SOT1 LMD T1 ZJN SOT2 IF MATCH FOUND AOD T2 LDI T2 NJN SOT1 IF NOT END OF TABLE JMP ILL INCORRECT ENTRY TITLE MISCELLANEOUS ENTRIES. AUT SPACE 4,10 *** AUTOLOAD. * TOGGLE SELECTION OF AUTOLOADING OF MASS STORAGE CONTROLLERS. * INITIALLY AUTOLOADING IS SELECTED FOR ALL LEVELS OF * DEADSTART. * * THIS ENTRY IS ONLY ALLOWED FROM THE KEYBOARD. AUT DATA C*AUTOLOAD.* LDN 2 UJN GRN1 TOGGLE AUTOLOAD STATUS GRN SPACE 4,10 *** GRENADE. * TOGGLE SELECTION OF THE GRENADE OPERATION FOR MASS STORAGE * CONTROLLERS THAT ARE AUTOLOADED. INITIALLY THE GRENADE * OPERATION IS NOT SELECTED. * * THIS ENTRY IS ONLY ALLOWED FROM THE KEYBOARD. * * THE GRENADE OPERATION CAN INTERRUPT ACTIVITY ON A DRIVE * WHICH IS BEING ACCESSED FROM ANOTHER CONTROLLER. GRN DATA C*GRENADE.* LDN 1 TOGGLE GRENADE OPTION BIT GRN1 LMM DSTO STM DSTO JMP KBR RETURN LBC SPACE 4,10 *** LBC,AA,C1,C2,...,CN. * * LOAD CONTROLWARE RECORD TYPE *AA* ON CHANNELS C1 TO CN. LBC DATA C*LBC,* LDC TLBC RJM SOT SEARCH TABLE FOR CONTROLWARE OPTION STD T6 LDI KA CHECK SEPARATOR LMN 1R, ZJN LBC3 IF VALID SYNTAX LBC2 JMP ILL PROCESS INCORRECT ENTRY LBC3 STD T3 CLEAR CONCURRENT CHANNEL FLAG AOD KA LDI KA CHECK FOR *C* PREFIX SBN 1RC NJN LBC4 IF NOT A CONCURRENT CHANNEL LDN 40 SET CONCURRENT CHANNEL FLAG STD T3 AOD KA ADVANCE PAST *C* LBC4 RJM AOD CONVERT DIGITS SBN TCHSL PJN LBC2 IF INCORRECT CHANNEL LDD T3 MERGE CCH FLAG WITH CHANNEL NUMBER RAD AB+4 LDD T6 ZJN LBC5 IF NULL CONTROLWARE SBK CNSD ZJN LBC4.1 IF SUPPRESSED CONTROLWARE ADK CNSD LBC4.1 LMD HN LBC5 STM TCHS,AB+4 LDI KA CHECK SEPARATOR LMN 1R, ZJN LBC3 IF NOT END OF CHANNELS RJM SCC SET CONTROLWARE TABLE IN CM JMP KBR RETURN SPACE 4,10 ** TLBC - TABLE OF CONTROLWARE RECORD TYPES TO LOAD. TLBC BSS 0 DUP MXCLO,1 CON 6060 ORG TLBC TLBC INDEX INDEX CNNC,2RNC NULL CONTROLWARE INDEX CLHT,2RHT LOAD HALF TRACK CONTROLWARE INDEX CNHT,2RNH NO LOAD HALF TRACK CONTROLWARE INDEX CLFT,2RFT LOAD FULL TRACK CONTROLWARE INDEX CNFT,2RNF NO LOAD FULL TRACK CONTROLWARE INDEX CLFM,2RFM LOAD FMD CONTROLWARE INDEX CNFM,2RNM NO LOAD FMD CONTROLWARE INDEX CLAD,2RAD LOAD FSC ADAPTOR CONTROLWARE INDEX CNAD,2RNA NO LOAD FSC ADAPTOR CONTROLWARE INDEX CLPH,2RPH LOAD DEMA/PFMD CONTROLWARE INDEX CNPH,2RNP NO LOAD DEMA/PFMD CONTROLWARE INDEX CLID,2RID LOAD 7255 ADAPTOR CONTROLWARE INDEX CNID,2RNI NO LOAD 7255 ADAPTOR CONTROLWARE INDEX CLCC,2RCC LOAD 7165 ADAPTOR CONTROLWARE INDEX CNCC,2RCN NO LOAD 7165 ADAPTOR CONTROLWARE INDEX CNND,2RNN NO LOAD NAD CONTROLWARE INDEX CLM8,2RM8 LOAD M860 FSC CONTROLWARE INDEX CNM8,2RN8 NO LOAD M860 FSC CONTROLWARE INDEX CNCX,2RNX NO LOAD CCC/NIP CONTROLWARE INDEX CNCT,2RNT NO LOAD CCC/698 CONTROLWARE INDEX CNSD,2RSD SUPPRESS DEFAULT CONTROLWARE INDEX MXCLO CON 0 END OF TABLE RST SPACE 4,10 *** RESET=X1,X2,...,XN. * * RESET CHARACTERISTICS FOR EQUIPMENTS X1, X2, ... ,XN. * ONLY THE INFORMATION ENTERED VIA THE *EQXXX=* COMMAND * WILL BE RETAINED. * * THIS ENTRY IS ONLY ALLOWED FROM THE KEYBOARD. RST DATA C*RESET=* SOD KA RST1 AOD KA RJM AOD ASSEMBLE EST ORDINAL ZJN RST2 IF EQUIPMENT ZERO SBD LE PJN RST2 IF INCORRECT EST ORDINAL LDD AB+4 RJM STA SET TABLE ADDRESS LDM EBUT+3 ZJN RST2 IF NULL ENTRY LDI ES SHN 21-3 PJN RST3 IF NOT PSEUDO EQUIPMENT RST2 JMP ILL PROCESS INCORRECT ENTRY RST3 SHN 22+21-13+3-21 PJN RST4 IF NOT MASS STORAGE DEVICE RJM RMD RESET MASS STORAGE DEVICE LDN 0 CLEAR *TDDB* INFORMATION STM TDDB+DVFA STM TDDB+DVDN CRM TDDB+DVPF,ON LDM TDDB+DVPR SCN 3 STM TDDB+DVPR LDM EBUT+4 CLEAR EST INFORMATION LPN 7 STM EBUT+4 LDI ES LPC 4352 STI ES RST4 LDI ES RESET *ON* STATUS SCN 3 STI ES LDM EBUT+10 CLEAR ACCESS LEVELS SCN 77 STM EBUT+10 RJM EEB UPDATE EQUIPMENT ENTRY LDI KA LMN 1R. ZJN RST5 IF END OF LIST LJM RST1 PROCESS NEXT ENTRY RST5 JMP KBR RETURN CCN SPACE 4,10 ** CCN - CHECK CHANNEL NUMBERS. * * (EBUT - EBUT+4) = FIRST UNIT EST ENTRY. * (CN+1 - CN+2) = CONTROL MODULE CHANNEL(S). * * ERROR TO *DCM*. * * USES T7, CN+1. CCN2 LMD CN+1 REVERSE CHANNELS LMD CN+2 NJN CCN1 IF NO CHANNEL MATCH LDD CN+1 LMM EBUT+2 NJN CCN1 IF NO CHANNEL MATCH CCN SUBR ENTRY/EXIT LDM EBUT+1 LMD CN+1 NJN CCN2 IF NO CHANNEL MATCH LDM EBUT+2 LMD CN+2 ZJN CCNX IF THE CHANNELS MATCH CCN1 LDC CCNA JMP DCM DISPLAY CONVERTED MESSAGE CCNA DATA C*EQXXX UNITS SPAN DIFFERENT CHANNELS* DDV SPACE 4,10 ** DDV - DOWN ISMD DEVICE. * * ENTRY (EBUT) = EBUF EQUIPMENT ENTRY. * * EXIT DEVICE DOWN AND OFF IF VALID FOR THIS DEVICE. * * ERROR TO *DCM*. * * CALLS CDD, EEB. DDV2 SHN 11-10 PJN DDV1 IF NOT REMOVABLE LDM EBUT+4 SCN 17 NJN DDV1 IF INITIALIZATION REQUESTED RJM CDD ZJN DDV1 IF DEADSTART DEVICE LDI ES SCN 3 LMN 3 SET DEVICE *OFF* AND *DOWN* STI ES RJM EEB ENTER EQUIPMENT ENTRY DDV SUBR ENTRY/EXIT LDI ES SHN 21-11 PJN DDV2 IF NOT SHARED DDV1 LDC DDVA JMP DCM DISPLAY CONVERTED MESSAGE DDVA DATA C*EQXXX CAN NOT BE DOWNED* VCD SPACE 4,30 ** VCD - VALIDATE *CM* AND ISMD ENTRIES. * * ENTRY (ISPF) .LT. 0, IF NOT CYBER 810/815/825/830. * * EXIT (ISPF) = COUNT OF CONTROL MODULES DEFINED. * *CM* AND ISMD TYPE ENTRIES VALIDATED. * IF A *CM* DEVICE IS DEFINED AS DOWN, ALL CORRESPONDING * ISMD DEVICES ARE ALSO DOWNED. * * ERROR TO *DCM* IF ANY OF THE FOLLOWING IS TRUE. * * 1) NO *CM* ENTRY EXISTS FOR AN ISMD DEVICE. * 2) NO ISMD ENTRY EXISTS FOR A *CM* DEVICE. * 3) A MULTI-UNIT ISMD DEVICE SPANS *CM* DEVICES ON * DIFFERENT CHANNEL(S). * 4) UNIT NUMBERS FOR A GIVEN *CM* ARE NOT UNIQUE. * 5) A *CM* DEVICE IS DEFINED AS DOWN BUT A * CORRESPONDING ISMD DEVICE CAN NOT BE * DOWNED. * 6) AN ISMD DEVICE IS DEFINED WITH AN INCOMPATIBLE * CONTROL MODULE. * * USES T2, T5. * * CALLS SID, VUN. VCD SUBR ENTRY/EXIT LDM ISPF SHN 0-13 NJN VCDX IF NOT CYBER 810/815/825/830 STM ISPF CLEAR ISMD PRESENT FLAG CRM TUNB,ON CLEAR TABLE OF UNIT NUMBERS CRM TUNB+3,ON LDC ATD3 PRESET ERROR RETURN ADDRESS STM AKL LCN 0 SEARCH FOR ISMD DEVICE VCD1 RJM SID MJN VCD3 IF NO MORE FOUND LPN 7 SAVE NUMBER OF UNITS IN THIS DEVICE ADN 1 STD T5 LDC TDDB+DVUN+3 INITIALIZE UNIT LIST OFFSET STD T2 VCD2 LDI T2 VALIDATE LOWER UNIT NUMBER LPN 77 RJM VUN ZJN VCD1 IF END OF UNIT LIST FOR THIS DEVICE LDI T2 VALIDATE UPPER UNIT NUMBER SHN -6 RJM VUN ZJN VCD1 IF END OF UNIT LIST FOR THIS DEVICE SOD T2 UJN VCD2 PROCESS NEXT UNIT VCD3 LDN 8D CHECK *CM* ENTRIES STD T2 VCD4 SOD T2 MJP VCDX IF ALL *CM* ENTRIES CHECKED LDM TENB,T2 ZJN VCD4 IF THIS *CM* NOT DEFINED STD EQ AOM ISPF LDM TUNB,T2 NJN VCD4 IF AT LEAST ONE DRIVE DEFINED ON THIS *CM* LDC VCDA JMP DCM DISPLAY CONVERTED MESSAGE VCDA DATA C*EQXXX HAS NO DRIVE DEFINED* VUN SPACE 4,20 ** VUN - VALIDATE UNIT NUMBER. * * ENTRY (A) = UNIT NUMBER. * (T4) = *TFSD* INDEX SET BY *SID*. * (T5) = NUMBER OF UNITS LEFT TO PROCESS. * * EXIT (T5) DECREMENTED. * (A) = (T5). * CORRESPONDING *TUNB* ENTRY UPDATED. * ISMD DEVICE DOWNED IF *CM* IS DOWN. * * ERROR TO *DCM*. * * USES T1, T6, CM - CM+4, CN - CN+4. * * CALLS CCN, DDV. VUN3 RAM TUNB,T6 RJM CCN ENSURE CHANNELS OF ALL UNITS MATCH LDD CN LPN 3 LMN 3 NJN VUN4 IF NOT *DOWN* RJM DDV VUN4 SOD T5 DECREMENT UNIT COUNT VUN SUBR ENTRY/EXIT SHN 21-2 SAVE *CM* NUMBER STD T6 SHN 2-21 SAVE DRIVE NUMBER STD T1 LDM TENB,T6 ZJN VUN1 IF NO *CM* FOR THIS UNIT EXISTS SHN 22-5 ADD EB SHN 6 CRD CN FETCH EST ENTRY FOR CONTROL MODULE ADN EQAE CRD CM LDD CM+2 LPN 37 LMM VUNB,T4 ZJN VUN2 IF *CM* TYPE CORRECT FOR THIS UNIT VUN1 LDC VUNC JMP DCM DISPLAY CONVERTED MESSAGE VUN2 LDM TUNB,T6 VERIFY THAT UNIT NUMBER IS UNIQUE LMM VUNA,T1 SBM TUNB,T6 PJP VUN3 IF UNIQUE UNIT NUMBER FOR THIS *CM* LDM TENB,T6 GET *CM* EST ORDINAL FOR MESSAGE STD EQ LDC VUND JMP DCM DISPLAY CONVERTED MESSAGE VUNA BSS 0 TABLE OF DRIVE NUMBER MASKS CON 1 CON 2 CON 4 CON 10 VUNB BSS 0 CON CMCW CON C2CW VUNC DATA C/EQXXX UNIT DEFINED ON WRONG *CM*/ VUND DATA C/EQXXX HAS DUPLICATE UNIT NUMBER/ QUAL VAL$ EQU 1 SCH$ EQU 1 QUAL * *CALL COMSMLS *CALL COMPVLC TUNB SPACE 4,10 ** TUNB - TABLE OF UNIQUE ISMD UNIT NUMBERS. * * ENTRY = 1 WORD. TUNB BSS 0 ERRPL TUNB+10-10001 TABLE WRAPS PP MEMORY SPACE 4,10 QUAL * EQ3S EQU *+4-EQXO *EQ3* SIZE EQ3L EQU EQ3S/5+77 *EQ3* OVERLAY LENGTH ERRNG 7777-*-4 OVERFLOW WHEN LOADING *EQ3* .EQXL MAX EQ1L/100,EQ2L/100,EQ3L/100 MAXIMUM OVERLAY LENGTH EQXL EQU .EQXL .EQML MAX EQ1L-77,EQ2L-77,EQ3L-77 MAXIMUM OVERLAY ACTUAL LENGTH EQML EQU .EQML TTL SET/ICM - INITIALIZE CENTRAL MEMORY. TITLE IDENT ICM,/ICM/ICMX QUAL ICM ORG APRL *COMMENT SET - INITIALIZE CENTRAL MEMORY. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. SPACE 4,10 ** COMMON ROUTINES FOR *ICM* AND *RCM*. * * THESE MACROS PROVIDE COMMON CODE FOR *ICM* AND *RCM*. SPACE 4,10 ** IPPSUB - SUBROUTINES COMMON TO PP INITIALIZATION. IPPSUB MACRO LIST G APP SPACE 4,10 ** APP - ASSIGN PP-S. * * ENTRY (NC) = SYSTEM CP NUMBER. * (CN+4) = FWA OF PP COMMUNICATIONS AREA. * * USES T5, AB - AB+4, CM - CM+4. APP1 LDM APPA,AB+2 SET PP PACKAGE NAME STD AB LDM APPA+1,AB+2 LMD NC ASSIGN TO SYSTEM CP STD AB+1 LDM APPA+2,AB+2 EXTRACT STATUS WORD STD T0 LDI T0 ZJN APP3 IF PROGRAM NOT ACTIVE SBN 12 MJN APP2 IF PP IN LOWER BANK SBN 20-12 APP2 ADN 12 ASSIGN *CTI* INITIATED PP STI T5 SHN 3 ADD CN+4 CWD AB AOM SPPC ADJUST PP-S ASSIGNED TO SYSTEM CP APP3 AOD T5 LDN 3 ADVANCE INDEX RAD AB+2 LMN APPAL APP4 NJN APP1 IF NOT END OF LIST LDM .CEL STD CM+3 SET CRITICAL ERROR LOG STATUS LDM .DSD STD CM+4 SET DEADSTART CHANNEL LDK DSAL CWD CM STORE POINTER WORD APP SUBR ENTRY/EXIT LDN ZERL CRD AB CRD CM LDC 2RDS SET DEADSTART INDICATOR STD AB+4 LDN CM STD T5 UJN APP4 ENTER LOOP APPA VFD 24/3LAPP,12/.APP VFD 24/3LSCI,12/.DCS VFD 24/3LMDD,12/.MDD APPAL EQU *-APPA LENGTH OF LIST HPP SPACE 4,10 ** HPP - HANG PP. * * ENTRY (A) = CHANNEL NUMBER. * (DH) = DEADSTART CHANNEL. HPP SUBR ENTRY/EXIT LMD DH NJN HPP1 IF NOT DEADSTART CHANNEL LDD DH LMN 12 DEADSTART CHANNEL PP ON CHANNEL 12 HPP1 LMD DH LMC OAMI SET CHANNEL INSTRUCTIONS STM HPPA LMC DCNI&OAMI STM HPPB LDN 2 HANG PP HPPA OAM HPPC,0 HPPB DCN 0 UJN HPPX RETURN HPPC CON 0 UJN * HANG PP LIST * IPPSUB ENDM SPACE 4,10 ** SCSSUB - SUBROUTINE FOR SETTING CPU STATUS WORD. SCSSUB MACRO LIST G SCS SPACE 4,10 ** SCS - SET CPU STATUS. * * USES T1. SCS SUBR ENTRY/EXIT LDN ACPL-1 STD T0 LDD HO EXTRACT CPU STATUS LPN 3 SCS1 SHN 21-0 EXTRACT CPU FLAG STD T1 SHN 13-21 POSITION ON/OFF BIT STD ZR AOD T0 STORE CPU STATUS WORD CWD ZR LDD T1 NJN SCS1 IF CPU 1 UNAVAILABLE STD ZR UJN SCSX RETURN LIST * SCSSUB ENDM SPACE 4,10 ** COMMON ROUTINES FOR *ICM* AND *ICT*. * * THESE MACROS PROVIDE COMMON CODE FOR *ICM* AND *ICT*. SPACE 4,10 ** SPWSUB - SUBROUTINE FOR SETTING UP POINTER WORDS. SPWSUB MACRO LIST G SPW SPACE 4,10 ** SPW - SET UP POINTER WORD. * * ENTRY (A) BITS 0 - 11 = POINTER WORD ADDRESS. * BITS 12 - 14 = BYTE INDEX. * (CA - CA+1) = CURRENT CM ADDRESS. * * EXIT (T5) = POINTER WORD ADDRESS. * (CM - CM+4) = POINTER WORD. * * USES T4. SPW SUBR ENTRY/EXIT STD T5 SAVE POINTER WORD ADDRESS SHN -14 ADN CM SET BYTE ADDRESS WITHIN POINTER WORD STD T4 LDD T5 FETCH POINTER WORD CRD CM LDD CA INSERT TABLE ADDRESS STI T4 LDD CA+1 STM 1,T4 LDD T5 STORE POINTER WORD CWD CM UJN SPWX RETURN LIST * SPWSUB ENDM TITLE MAIN ROUTINE. ICM SPACE 4,10 ** ICM - INITIALIZE CENTRAL MEMORY. ICM SUBR ENTRY/EXIT RJM PTR PROCESS POINTERS RJM IPS INITIALIZE PPU STATUS LDN 50 ALLOCATE PP BREAKPOINT DISPLAY BUFFER RJM CLS * DEFINE DAYFILE POINTER AREA. LDN DFPP STORE POINTER WORD RJM SPW LDN EXDF*3 RAD CA+1 SHN -14 RAD CA RJM PMS PROCESS MS CHANNELS AND SYSTEM UJP ICMX RETURN TITLE SUBROUTINES. IPS SPACE 4,10 ** IPS - INITIALIZE PPU STATUS. * * ENTRY (NC) = SYSTEM CONTROL POINT NUMBER. * * EXIT (CA - CA+1) = NEXT CM ADDRESS. * * USES CA, CA+1, T1, T2, T3, T6, T7, CM - CM+4, CN - CN+4. * * CALLS APP, CLS, HPP. IPS SUBR ENTRY/EXIT * ALLOCATE PP COMMUNICATION AREAS. LDN PPCP READ PPU COMMUNICATION AREA POINTER CRD CN LDD NC SET FWA = SYSTEM CP AREA END ADN 1 SHN 7 STD CN+4 STD CA+1 STD T7 SHN -14 STD CA LDM .PPU CLEAR PP COMMUNICATIONS AREA STD T6 ADM .CCHN STD T3 ADN 1 ALLOW FOR PSEUDO PP SHN 3 RJM CLS CLEAR PP COMMUNICATION AREA LDD CA SET EXTENDED PP COMMUNICATION AREA FWA STD CN SHN 14 ADD CA+1 STD CN+1 SBD CN+4 SHN PPXES-PPCES LENGTH OF EXTENDED PP COMMUNICATION AREA RJM CLS CLEAR EXTENDED PP COMMUNICATION AREA LDN PPCP STORE PPU COMMUNICATION AREA POINTER CWD CN * CHECK FOR DISABLED PP-S. LDD NC INSERT SYSTEM CP INTO DISABLED PP IR RAM IPSA+1 LDD T3 STORE PSEUDO PP INDICATOR SHN 3 ADD CN+4 CWM IPSA+2,ON LDN 0 CLEAR CHANNEL COUNT STD T1 STD T2 CLEAR CHANNEL STATUS INDEX IPS1 LDM .PPS,T2 CHECK PP N ON/OFF STATUS LPC 1 (MASK FOR PP N) IPSB EQU *-1 STD T3 LDM .PPL,T2 CHECK PP STATUS RETURNED BY *CTI* LPC 1 (MASK FOR PP N) IPSC EQU *-1 NJN IPS3 IF PP DISABLED BY CTI LDD T3 ZJN IPS4 IF PP NOT OFF VIA CMRDECK ENTRY RAM .PPL,T2 UPDATE PP OFF DATA LDD T2 CALCULATE CHANNEL NUMBER SHN 4 LMD T1 RJM HPP HANG PP IPS3 LDD T7 STORE INPUT REGISTER CWM IPSA,ON IPS4 LDN 10 ADVANCE INPUT REGISTER ADDRESS RAD T7 LDM IPSB ADVANCE PP MASK RAM IPSB STM IPSC AOD T1 COUNT CHANNEL LMN 10D NJN IPS5 IF PPS BANK NOT PROCESSED STD T1 AOD T2 ADVANCE STATUS INDEX * LDN 1 REINITIALIZE MASK STM IPSB STM IPSC LCN 10D DECREMENT PPU COUNT RAD T6 ZJN IPS6 IF ALL PP-S CHECKED IPS5 LJM IPS1 PROCESS NEXT PP IPS6 LDM .CCHN CHECK FOR CPP-S ZJN IPS9 IF NO CPP-S STD T3 IPS7 LDM .CPPL SHN 21-0 REMOVE CPP STATUS STM .CPPL PJN IPS8 IF CPP ON LDD T7 CWM IPSA,ON STORE INPUT REGISTER IPS8 LDN 10 ADVANCE INPUT REGISTER ADDRESS RAD T7 SOD T3 NJN IPS7 IF MORE CPP-S OFF * ASSIGN *CTI* PP-S AND STORE PP CONFIGURATION. IPS9 RJM APP ASSIGN PP-S LDN PPUL CRD CM LDM .PPN SET PP COUNT STD CM+2 LDN PPUL STORE PPU CONFIGURATION CWD CM LJM IPSX RETURN IPSA VFD 18/3R***,6/**,36/ VFD 24/3RCIO PMS SPACE 4,10 ** PMS - PROCESS MASS STORAGE CHANNELS TO LOAD CONTROLWARE * AND VALIDATE SYSTEM DEVICES. * PMS WILL ALSO ENSURE THAT AT LEAST ONE CHECKPOINT DEVICE * HAS BEEN DEFINED. IF ONE HAS NOT *PMS* WILL ASSIGN THE * FIRST VALID AVAILABLE DEVICE AS A CHECKPOINT DEVICE. * * EXIT (TCHS) = DEFAULT FIRMWARE RECORD TYPES. * * USES T0 - T4, EQ, CM - CM+4. * * CALLS EEB, SMT, STA. PMS5 LDD T1 NJN PMS6 IF SYSTEM DEVICE DEFINED LDM DFMS RJM STA LDC 2000 SET SYSTEM DEVICE FLAG RAI ES LDM EBUT+4 CLEAR ALTERNATE SYSTEM STATUS SCN 10 STM EBUT+4 RJM EEB RETURN EQUIPMENT ENTRIES PMS6 LDD T3 NJN PMSX IF CHECKPOINT DEVICE DEFINED LDM DFMS RJM STA LDN 2 SET DEFAULT RMS AS CHECKPOINT DEVICE RAM TDDB+DVPR RJM EEB UPDATE EQUIPMENT STATUS PMS SUBR ENTRY/EXIT LDN 0 CRD T0 LDN NOPE-1 INITIALIZE EST SCAN STD EQ PMS1 AOD EQ LMD LE ZJP PMS5 IF ALL EQUIPMENTS PROCESSED LDD EQ RJM STA SET TABLE ADDRESSES LDI ES SHN 21-13 PJN PMS1 IF NOT MASS STORAGE LDN 2 STD T4 INITIALIZE CHANNEL INDEX PMS2 LDM EBUT,T4 ZJN PMS3 IF NULL CHANNEL LPN 77 STD T2 LDM TDDB+DVAI DEFAULT CONTROLWARE FOR LOAD SHN -6 SBM TCHS,T2 MJN PMS3 IF OTHER DEFAULT HAS PRIORITY RAM TCHS,T2 PMS3 SOD T4 NJN PMS2 IF NOT END OF CHANNELS LDI ES SHN -12 LPN 1 RAD T1 LDM TDDB+DVPR LPN 2 RAD T3 UPDATE CHECKPOINT DEVICE FOUND FLAG LJM PMS1 PROCESS NEXT EQUIPMENT PTR SPACE 4,10 ** PTR - PROCESS POINTER AREA. * * EXIT (NC) = SYSTEM CONTROL POINT NUMBER. * * USES LD, NC, T1, AB - AB+4, CM - CM+4, CN - CN+4. * * CALLS SEC, SCS, STA. PTR SUBR ENTRY/EXIT LDC SHNI+73 ADM EMSC ADJUST SHIFT STM PTRA LDC SHNI+77 SBM EMSC ADJUST SHIFT STM PTRC LDN 17 PTRA SHN -4 * SHN -4+EMSC RAM PTRB RJM SEC INITIALIZE *ECRL* LDN DSSL CRD CM LDM TTXC+LIBD SET LIBDECK NUMBER SHN 6 LMD RM APPEND RECOVERY MODE LMN 4 STD CM+4 LDN DSSL STORE DEADSTART STATUS CWD CM LDN DSCL SET MMF *PRESET* COUNTS CRD CM LDN 0 STD CM+3 STD CM+4 LDM PRSF ZJN PTR0 IF *PRESET* NOT ENTERED LDD NS NUMBER OF SHARED DEVICES STD CM+3 LDM NSBD NUMBER OF SHARED BUFFERED DEVICES STD CM+4 LDM MSDC ZJN PTR0 IF *MAXSHARE* NOT ENTERED STD CM+3 NUMBER OF SHARED DEVICES LDM MSBD ZJN PTR0 IF NO SECOND PARAMETER ON *MAXSHARE* STD CM+4 NUMBER OF SHARED BUFFERED DEVICES PTR0 LDN DSCL STORE MMF *PRESET* COUNTS CWD CM LDN ZERL CRD CM CRD AB LDC 4000 SET INTERLOCK STD CM LDN 2 STD T2 LDN JSNL STORE INITIAL SEQUENCE NUMBER CWM .JSN,ON LDM C8XX CHECK MAINFRAME TYPE ZJN PTR1 IF CYBER 180 LDN TIML STORE TIME/DATE CWM .TIM,T2 ERRNZ TIML+1-DTEL CODE DEPENDS ON VALUE PTR1 AOD CM+4 SET MAINTENANCE LOG MESSAGE LINK LDN BMLL STORE MAINTENANCE LOG CONTROL WORD CWD CM ADN RTCL-BMLL STORE REAL TIME CLOCK CWM .RTC,ON SOD CM+4 LDN TAXML/5 STD T1 LDC SCRL SET *1MB* (ERROR LOGGING) CWD CM ADN DSDL-SCRL STORE *DSD* BUFFER INTERLOCK CWD CM ADN 1 STORE *TAXM* IN DSD/1DS BUFFER CWM TAXM,T1 LCN 0 INITIALIZE FLAG REGISTER STATUS STD AB+3 LDD LD LPC 777 ZJN PTR2 IF NO LINK EQUIPMENT RJM STA LDM TDDB+DVED LPN 30 NJN PTR2 IF CPU PATH PRESENT (NOT UEM) LDC 2000 SET LSP MMF FLAG RAD LD LDM NSBD ZJN PTR2 IF NO SHARED BUFFERED DEVICES LDD TH SET SHARED BUFFERED DEVICES FLAG RAD LD PTR2 LDN ZERL CRD CN ADN MMFL-ZERL STORE MMF STATUS CWD ID ADN EFRL-MMFL CWD AB * ENTER CONFIGURATION. LDN NCPL SET NUMBER OF CONTROL POINTS CRD CM LDM .NCP STD NC SBN 1 STD CM+1 LDM .CHN SET CHANNEL COUNT STD CM ERRNZ NCPL-NCHL CODE DEPENDS ON VALUE ERRNZ NCPL-CPPL LDM .CCHN SET NUMBER OF PHYSICALLY PRESENT CPP-S RAD CM+3 LDN NCPL CWD CM ADN MABL-NCPL CRD CM LDM UESC SET USER XM SHIFT COUNT SHN 2 LMM EMAF SET EXPANDED ADDRESSING FLAG SHN 2 LMM EMSC SET XM SHIFT COUNT SHN 5 STD CN+2 LDM EMFL SET XM FIELD LENGTH/*EMBS* STD CN+3 LDK MEFL CWD CN LDN ZERL CRD AB LDD HO SET HARDWARE OPTIONS STD CM+1 LDM UEMZ SHN 14 ADM UEMZ+1 ZJN PTR3 IF UEM NOT PRESENT SHN -3 UEM FL / 1000B PTRB ADN 0 * ADN (EMBS - 1000B) / 1000B PTRC SHN 0 * SHN -EMSC STD AB+1 LDD FL SHN 14 LMD FL+1 SHN -3 SET UEM BASE ADDRESS/1000B STD AB SHN 3 ADJUST EXECUTION MEMORY SIZE STD FL+1 SHN -14 STD FL LDN 2 STD AB+4 SET UEM PRESENT FLAG LDM EMTY LMN 4 NJN PTR3 IF NO UEM EQUIPMENT LDD EN SET USER EM EQUIPMENT STD AB+2 PTR3 LDD FL SET EXECUTION MEMORY SIZE STD CM+2 LDD FL+1 STD CM+3 LDC MABL CWD CM LDN EXML CRD CM LDD EN STD CM+4 LDN EXML STORE EXTENDED MEMORY CONFIGURATION CWD CM LDM TAXM+2 ZJN PTR4 IF NO USER EXTENDED MEMORY LDM TAXM+1 NJN PTR4 IF USER EM IN UEM LDD EN SET USER EM EQUIPMENT STD AB+2 PTR4 LDK UEML STORE MAINFRAME ATTRIBUTES CWD AB RJM SCS SET CPU STATUS LJM PTRX RETURN .JSN VFD 12/0,12/0,12/PQFT,24/0LAAAA .TIM VFD 60/10H 00.00.00. VFD 60/10H"DATE" .RTC VFD 12/0037,12/7777,36/0 SEC SPACE 4,10 ** SEC - SETUP POINTER WORD *ECRL*. * * USES AB - AB+4. SEC SUBR ENTRY/EXIT LDM EMSC PRESET SHIFT INSTRUCTIONS SBM UESC LPN 77 RAM SECA LDN ZERL INITIALIZE *ECRL* CRD AB LDN 0 STD T1 LDM TAXM+2 ZJN SEC1 IF NO USER XM FOR THIS MACHINE SECA SHN 0 * SHN EMSC-UESC STD AB+1 LDN ECSY ADM C9LM APPEND LARGE MEMORY OPTION STD AB+4 LDM TAXM+1 ZJN SEC2 IF NO USER EXTENDED MEMORY LDM EMTY LMN 4 ZJN SEC2 IF UEM EQUIPMENT - HAVE *REC* ALLOCATE LDN 0 STM TAXM+2 CLEAR USER EM IN UEM FOR *REC* SEC1 LDN 5 RAD T1 SBN TAXML PJN SEC3 IF END OF TABLE LDM TAXM+2,T1 CHECK FOR USER EXTENDED MEMORY ZJN SEC1 IF NO USER EXTENDED MEMORY SEC2 LDD EN SET EXTENDED MEMORY EQUIPMENT FOR *REC* STD AB SEC3 LDN ECRL STORE *ECRL* CWD AB LJM SECX RETURN TITLE COMMON SUBROUTINES. SPACE 4,10 ** COMMON SUBROUTINES. IPPSUB SCSSUB SPWSUB SPACE 4,10 QUAL * SPACE 4,10 ERRNG 7777-*-4 IF OVERFLOW TTL SET/ICT - INITIALIZE CENTRAL MEMORY TABLES. TITLE IDENT ICT,/ICT/ICTX QUAL ICT ORG APRL *COMMENT SET - INITIALIZE CENTRAL MEMORY. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. SPACE 4,10 ** COMMON - COMMON ROUTINES FOR *ICT* AND *RCT*. * * THIS MACRO PROVIDES COMMON CODE FOR *ICT* AND *RCT*. QUAL COMMON MACRO LIST G TCTP SPACE 4,10 ** TCTP - TABLE OF CMR TABLE PROCESSORS. TCTP BSS 0 DUP TSGTE,1 CON SIE ORG TCTP TCTP INDEX INDEX ESTO,EST EQUIPMENT STATUS TABLE INDEX EXPO,EXP C176 (AND 819) EXCHANGE PACKAGES INDEX MCTO,MCT MEMORY CONTROL TABLE INDEX SCDO,SCD *SCD* PARAMETER TABLE INDEX RPTO,RPT RING PORT TABLE INDEX CHTO,CHT CHANNEL TABLES INDEX ECBO,ECB *EICB* TABLES INDEX EMBO,EMB ERROR MESSAGE BUFFER INDEX EVTO,EVT EVENT TABLE INDEX SCTO,SCT SUBSYSTEM CONTROL TABLES INDEX SITO,SIT *SECDED* ID TABLE INDEX SABO,SAB SYSTEM ATTRIBUTE BLOCK INDEX JCAO,JCA JOB CONTROL BLOCK TABLE INDEX MSAO,MSA MASS STORAGE ALLOCATION AREA INDEX ODBO,ODB OPERATOR DISPLAY BUFFER INDEX LDBO,LDB *L* DISPLAY BUFFER INDEX PDBO,PDB PREVIEW DISPLAY BUFFER INDEX DFBO,DFB DAYFILE BUFFERS INDEX PSVO,PSV PP SAVE AREAS INDEX MSTO,MST MASS STORAGE TABLES INDEX TRTO,TRT TRACK RESERVATION TABLES INDEX EXMO,EXM EXTENDED MEMORY BUFFERS INDEX INBO,INB INSTALLATION BLOCK INDEX SDAO,SDA STATISTICAL DATA AREA INDEX FOTO,FOT FAMILY ORDINAL TABLE INDEX FNTO,FNT FILE NAME TABLE INDEX EJTO,EJT EXECUTING JOB TABLE INDEX QFTO,QFT QUEUE FILE TABLE INDEX CLTO,CLT COMMON LIBRARIES TABLE INDEX LIDO,LID LOGICAL ID TABLE INDEX OSTO,OST OPTICAL DISK STATUS TABLES INDEX ORTO,ORT OPTICAL DISK REQUEST TABLE INDEX BSTO,BST BUFFER STATUS TABLES INDEX BDTO,BDT BUFFERED DEVICE CONTROL TABLES INDEX TSGTE CDL SPACE 4,10 ** CDL - COMPUTE DEVICE LENGTH. * * ENTRY (AB) = BYTE 0 OF EST ENTRY. * (CM+2) = TRT LENGTH. * * EXIT (A) = TOTAL LENGTH OF DEVICE TABLES (TRT+MRT+DIT). CDL SUBR ENTRY/EXIT LDD AB LPC 1020 ZJN CDL2 IF STAND ALONE DEVICE LPN 20 ZJN CDL1 IF NOT INDEPENDENT SHARED DEVICE * LDN DITL ADD LENGTH OF DIT ERRNZ MMPF-20 CDL1 STD T0 LDD CM+2 COMPUTE LENGTH OF MRT ADN 7 SHN -3 ADD T0 CDL2 ADD CM+2 ADD LENGTH OF TRT UJN CDLX RETURN PBD SPACE 4,10 ** PBD - PROCESS BUFFERED DEVICE CHANNELS. * * ENTRY (AB+1 - AB+2) = CHANNEL BYTES FROM EST ENTRY. * * EXIT (KI) = CUMULATIVE 819 COUNT. * * USES T1, T4. PBD2 LDI T1 SET 819 CHANNEL IN TABLE LPN 37 SHN -1 STD T4 RAM TFMC,T4 AOD T1 LMN AB+3 NJN PBD2 IF ANOTHER CHANNEL AOD KI PBD SUBR LDN AB+1 STD T1 LDD HO SHN -11 LMN 7 ZJN PBD2 IF C176 SYSTEM PBD1 LDI T1 ZJN PBDX IF CHANNEL NOT DEFINED LPN 77 STD T4 AOM KBUF,T4 COUNT CHANNEL USAGE AOD T1 LMN AB+3 NJN PBD1 IF POSSIBLE SECOND CHANNEL UJN PBDX RETURN RCA SPACE 4,10 ** RCA - ROUND CM ADDRESS TO NEXT MULTIPLE OF 10B. * * ENTRY (CA - CA+1) = CURRENT CM ADDRESS. * * EXIT (A) = ROUNDED CM ADDRESS / 10B. * (CA - CA+1) = ROUNDED CM ADDRESS. RCA SUBR ENTRY/EXIT LDD CA+1 ADN 7 SCN 7 STD CA+1 SHN -14 RAD CA SHN 14 LMD CA+1 SHN -3 UJN RCAX RETURN SBB SPACE 4,10 ** SBB - SET BUFFER BIAS. * * ENTRY (A) = STARTING BIT VALUE + FUNCTION CODE. * (T1) = VALUE TO SET. * * USES T1. SBB SUBR ENTRY/EXIT STD T0 SAVE STARTING VALUE SBB1 LDD T1 ZJN SBBX IF NO BITS TO SET SHN 21 STD T1 PJN SBB2 IF BIAS BIT NOT TO BE SET LDD T0 OAN SC+40 IAN SC+40 SBB2 AOD T0 ADVANCE BIT NUMBER UJN SBB1 LOOP SPT SPACE 4,10 ** SPT - SETUP *SCD* PARAMETER TABLE. * * ENTRY (CM+2 - CM+3) = FWA OF *SCD* PARAMETER TABLE. * * USES CM - CM+4. * * CALLS CLS. SPT1 STM SPTA+3 CLEAR *SCD* DATA LDN 3 SET PARAMETER TABLE LENGTH SHN 10 STM SPTA+2 LDN 3 CLEAR TABLE RJM CLS LDM .MDD SET POSSIBLE *MDD* PP NUMBER RAM SPTA+1 * SET *MDD* INFORMATION. SPT2 LDM MDDP SHN 21-3 PJN SPT3 IF *MDD* NOT LOADED SHN -16 LPN 7 SET *MDD* PORT NUMBER LMN 40 SET *MDD* ACTIVE BIT SHN 6 STM SPTA+4 SPT3 LDD CM+2 STORE PARAMETER TABLE FIRST WORD SHN 14 LMD CM+3 CWM SPTA,ON SPT SUBR ENTRY/EXIT LDM .DCS ZJP SPT1 IF NOT 721 CONSOLE * SET *SCD* INFORMATION. RAM SPTA+1 SET *SCD* PP NUMBER LDM SCIP RAM SPTA+3 SET *SCD* PORT NUMBER LDD CM+3 ADN 4 STM SPTB+4 SET FWA OF DISPLAY BUFFER SHN -14 ADD CM+2 STM SPTB+3 LDC SCDCL+4 CLEAR TABLE AND BUFFER RJM CLS LDD CM+2 STORE DISPLAY BUFFER POINTER SHN 14 LMD CM+3 ADN 3 CWM SPTB,ON UJP SPT2 SET AND STORE FIRST WORD SPTA VFD 12/0,16/140004,4/0,1/1,2/1,3/1,3/1,3/0,16/0 SPTB VFD 3/2,9/0,16/SCDCL,32/0 SSESUB SXA SPACE 4,10 ** SXA - SET EXCHANGE AREA FOR CYBER 176. * * ENTRY (KI) = NUMBER 0F 819 EQUIPMENTS. * * USES T1, T3. * * CALLS CLS, SBB. SXA SUBR ENTRY/EXIT LDD CA RESERVE SPACE FOR 176 EXCHANGE PACKAGES SHN 14 ADD CA+1 ADC 777 ROUND TO NEXT MULTIPLE OF 1000B LPC 17000 STD CA+1 SHN -11 STD T1 STD T3 SHN -3 STD CA LDC /SCR/FCSB+/SCR/EXBB SET EXCHANGE PACKAGE BIAS RJM SBB LDD HN ALLOCATE BASIC 176 EXCHANGE PACKAGES RJM CLS LDD KI ZJN SXAX IF NO 819-S DEFINED LDC 300 ALLOCATE 819 EXCHANGE PACKAGES RJM CLS LDD T3 SET CHANNELS 2 - 3 BUFFER BIAS STD T1 LDC /SCR/FCSB+/SCR/C2BB RJM SBB LDC 400 ALLOCATE CHANNELS 2 - 3 BUFFER RJM CLS LDM TFMC+2 ADM TFMC+3 ZJN SXA1 IF CHANNELS 4 - 7 NOT PRESENT AOD T3 SET CHANNELS 4 - 7 BUFFER BIAS STD T1 LDC /SCR/FCSB+/SCR/C4BB RJM SBB LDC 400 ALLOCATE CHANNELS 4 - 5 BUFFER RJM CLS LDM TFMC+3 ZJN SXA1 IF CHANNELS 6 - 7 NOT PRESENT LDC 400 ALLOCATE CHANNELS 6 - 7 BUFFER RJM CLS SXA1 LJM SXAX RETURN TFMC EQU KBUF FLPP MUX CHANNEL STATUS TABLE LIST * ENDM SPACE 4,10 ** SSESUB - SUBROUTINE TO SEARCH FOR SELECTED EQUIPMENT. SSESUB MACRO LIST G SSE SPACE 4,10 ** SSE - SEARCH FOR SELECTED EQUIPMENT TYPE. * * ENTRY (A) = 1/1,17/MNEMONIC IF INITIAL ENTRY. * = POSITIVE IF SUBSEQUENT ENTRY. * * EXIT (A) = 0 IF EQUIPMENT TYPE FOUND. * (EQ) = EST ORDINAL. * (AB - AB+4) = WORD *EQDE* OF EST ENTRY. * * MACROS SFA. SSE1 SOD EQ MJN SSEX IF END OF EST SFA EST ADK EQDE CRD AB LDD AB+3 CHECK MNEMONIC LMC 0 SSEA EQU *-1 NJN SSE1 IF NOT FOUND SSE SUBR ENTRY/EXIT PJN SSE1 IF NOT INITIAL ENTRY STM SSEA LDN ESTP CRD AB LDD AB+2 INITIALIZE EST ORDINAL STD EQ UJN SSE1 SEARCH EST LIST * SSESUB ENDM QUAL * TITLE MAIN ROUTINE. ICT SPACE 4 ** ICT - INITIALIZE CENTRAL MEMORY TABLES. ICT SUBR ENTRY/EXIT RJM INO INITIALIZE OVERLAY * ALLOCATE CMR TABLES AND BUFFERS. LDN 0 STD LA ICT1 LDM TCTP,LA SET PROCESSOR ADDRESS STD T1 RJM 0,T1 DEFINE TABLE AOD LA LMN TSGTE NJN ICT1 IF NOT END OF TABLES * COMPLETE TABLES. LDC BIOL CRD CN LDN CMRL CRD CM LDD CA SET CM ADDRESS STD CN+3 SHN 14 LMD CA+1 STD CN+4 ADN 77 SHN -6 STD CM+4 LDD FL SHN 14 LMD FL+1 SBK 4001 MJN ICT2 IF EXECUTION MEMORY SIZE .LE. 131K LCN 1 ICT2 ADC 4001-CPML-PRSL STD CN SET LOAD ADDRESS FOR *CPUMLD* SBD CM+4 PJN ICT3 IF NO CMR OVERFLOW LDC =C*CMR OVERFLOW.* JMP DSE DISPLAY ERROR AND HANG ICT3 LDC BIOL STORE *CPUMTR* LOAD ADDRESS CWD CN LDN CMRL STORE CMR LENGTH CWD CM LJM ICTX RETURN ICTA VFD 42/0LSYSTEM,6/0,6/LIFT,6/1 ICTB VFD 24/4L"SJSN",36/0 ICTC VFD 6//SCD/SYSC,54/0 TITLE TABLE ALLOCATION PROCESSORS. BDT SPACE 4,10 ** BDT - ALLOCATE BUFFERED DEVICE CONTROL TABLES. * * ENTRY (EN) = EXTENDED MEMORY EST ORDINAL. * * USES T1, T4. * * CALLS CLS, SPW. BDT SUBR ENTRY/EXIT LDM .PUTP ZJN BDTX IF NO BUFFERED DEVICES DEFINED STM .FTTP LDD EN NJN BDT1 IF EXTENDED MEMORY DEFINED LDC BDTB *XX REQUIRES DE/DP WITH CPU PORT.* JMP DSE DISPLAY ERROR AND HANG BDT1 LDN PUTL RAM .PUTP+2 COUNT DEAD ENTRY ZERO SHK FTTLS-PUTLS STM .FTTP+2 LDM EMSC ACCOUNT FOR XM BLOCK SIZE SBN 2 LPN 77 RAM BDTC LDC 1S12+BIOL RJM SPW LDM TAXM NJN BDT2 IF XM ALLOCATED FOR THIS MACHINE LDC =C*XM ENTRY NEEDED.* JMP DSE DISPLAY ERROR AND HANG BDT2 LDM TAXM+4 BUFFER SPACE DEFINED FOR THIS MACHINE NJN BDT3 IF SPACE DEFINED LDC =C*NO IO BUFFERS DEFINED.* JMP DSE DISPLAY ERROR AND HANG * SET UP *CBTP*. BDT3 SHN 0 BUFFERS = (SPACE/1000B)/4 BDTC EQU BDT3 * SHN EMSC-2 ERRNZ PSLB-4 STM .CBTP NUMBER OF CONTROL BUFFER TABLE ENTRIES ADN 1 COUNT DEAD ENTRY ZERO SHN CBTLS STM .CBTP+2 TOTAL CBT LENGTH SHN -14 RAM .CBTP+1 ADM .HATP+1 LPN 77 SHN 14 ADM .CBTP+2 COMPUTE TOTAL IO TABLE SPACE ADN BDTL+IBSL+PLTL ADM .CCTP+2 ADM .PUTP+2 ADM .FTTP+2 ADM .HATP+2 RJM CLS CLEAR BUFFERED IO TABLE SPACE LDN BDTAL/5 STD T1 LDD CM+1 STORE BDT SHN 14 ADD CM+2 CWM BDTA,T1 LJM BDTX RETURN BDTA BSS 0 BDT TABLE SKELETON .IBSP VFD 12/IBSL,6/1,18/IBSL,6/0,18/0 .PLTP VFD 12/PLTL,6/1,18/PLTL,6/0,18/0 .CCTP VFD 12/0,6/CCTL,18/0,6/0,18/0 .PUTP VFD 12/0,6/PUTL,18/0,6/0,18/0 .FTTP VFD 12/0,6/FTTL,18/0,6/0,18/0 .HATP VFD 12/0,6/10,18/0,6/0,18/0 .CBTP VFD 12/0,6/CBTL,18/0,6/0,18/0 .IOSP VFD 12/0,6/0,18/0,6/0,18/0 BDTAL EQU *-BDTA BDT LENGTH (BYTES) BDTB DATA C*XX REQUIRES DE/DP WITH CPU PORT.* BST SPACE 4,10 ** BST - DEFINE BUFFER STATUS TABLES. * * EXIT (A) = 0. * * USES EQ, CM - CM+4. * * CALLS CLS, SME. BST SUBR ENTRY/EXIT LDM NSBD ZJN BSTX IF NO SHARED BUFFERED DEVICES LDN NOPE STD EQ * PROCESS NEXT EQUIPMENT. BST1 RJM SME SEARCH FOR MASS STORAGE EQUIPMENT ZJN BSTX IF END OF MS EST ENTRIES SHN 21-11-21+13 PJN BST1 IF NOT SHARED DEVICE SHN 21-5-21+11 PJN BST1 IF NOT BUFFERED DEVICE LDD AB+4 SHN 3 ADK BDLL CRD CM LDD CA SET BST ADDRESS INTO *BDLL* STD CM+1 LDD CA+1 STD CM+2 LDD CM+3 SET *BST/BAT PROCESSING DISABLED* FLAG LPC 3777 LMC 4000 STD CM+3 LDD AB+4 SHN 3 ADK BDLL CWD CM LDK BSTL ALLOCATE AND CLEAR BST RJM CLS UJP BST1 PROCESS NEXT EQUIPMENT CHT SPACE 4,10 ** CHT - DEFINE CHANNEL TABLES. * * USES T1. * * CALLS CLS, SPW. CHT SUBR ENTRY/EXIT LDC 2S12+CHTP RJM SPW LDN CTALL*3 CLEAR TABLE RJM CLS LDN CTALL SET LENGTH OF SINGLE TABLE STD T1 LDD CM+2 STORE CHANNEL STATUS TABLE SHN 14 LMD CM+3 CWM TCST,T1 ADN CTALL STORE FIRMWARE LOAD TABLE CWM TCHS,T1 UJN CHTX RETURN CLT SPACE 4,10 ** CLT - DEFINE COMMON LIBRARIES TABLE. * * USES CM+2. * * CALLS CLS, LST, SPW. * * MACROS CFI. CLT SUBR ENTRY/EXIT LDC CLTP RJM SPW LDM .CLT+MTBL SET CLT ENTRY COUNT STD CM+2 ZJN CLTX IF EMPTY TABLE CFI CLT,,CM+2 CLEAR TABLE RJM CLS LDN CLTE LINK CLT RJM LST UJN CLTX RETURN DFB SPACE 4,10 ** DFB - DEFINE DAYFILE BUFFERS. * * USES T3, T6, T7, CM - CM+4. * * CALLS CLS, IDB. DFB SUBR ENTRY/EXIT LDN DFPP SET FWA OF DAYFILE POINTERS CRD T6 LDN 0 SET SYSTEM DAYFILE BUFFER NUMBER STD T3 DFB1 RJM IDB LDN 3 ADVANCE DAYFILE POINTER ADDRESS RAD T7 SHN -14 RAD T6 AOD T3 ADVANCE DAYFILE NUMBER LMN EXDF NJN DFB1 IF NOT END OF EXCESS DAYFILES LDC 2S12+DFPP STORE POINTER WORD RJM SPW LDN 1 SET PP DUMP BUFFER NOT BUSY STD CM+4 LDN DFPP STORE POINTER CWD CM LDC DFDS+3 CLEAR DUMP BUFFER RJM CLS LDD CM SHN 14 LMD CM+1 CRD CM LDD CM PASS DAYFILE RESIDENCE OPTIONS TO *RMS* SHN 14 LMD CM+1 CWM DFBF,ON LJM DFBX RETURN ECB SPACE 4,10 ** ECB - DEFINE *EICB* TABLES. * * ENTRY (DFTA - DFTA+1) = *DFT* ALLOCATION DATA. * (DFTV) = *DFT* VERSION. * (DFSZ) = TOTAL SIZE OF *DFT/OS* BUFFER, IF *DFT* * VERSION 4 OR ABOVE. * * USES T1, T6. * * CALLS CLS, SPW. ECB SUBR ENTRY/EXIT LDM C8XX NJN ECBX IF NOT LOWER 800 SERIES MAINFRAME LDC 3S12+EIBP RJM SPW * CALCULATE TOTAL SIZE OF *EICB* TABLES. * THE *EICB* TABLES INCLUDE THE *EICB*, THE *MLST* AND THE * *DFT/OS* BUFFER. ONE EXTRA WORD IS ALLOCATED TO ALLOW FOR * ADJUSTING THE START OF THE *DFT/OS* BUFFER, SINCE IT CANNOT * BEGIN ON THE LAST WORD OF A SECTOR. * * FOR *DFT* VERSION 4 AND ABOVE, THE *DFT/OS* BUFFER IS BUILT * BY *DFT*. THE TOTAL SIZE IS OBTAINED FROM THE *DFT* * DESCRIPTOR IN THE *HDT*. THE NOS REQUEST AREA SIZE (*RQBL* * WORDS) AND THE *PPR* SAVE AREA SIZE (*DFPSL* WORDS) MUST BE * ADDED TO THIS TO DETERMINE THE AMOUNT OF SPACE TO ALLOCATE. * * FOR *DFT* VERSION 3, THE *DFT/OS* BUFFER CONSISTS OF THE * FOLLOWING. * 1. CONTROL WORD AND POINTERS (*DFHL* WORDS). * 2. M/R BUFFER CONTROL WORDS (*NUMR*+1 WORDS). * 3. ELEMENT COUNTER BUFFER (*MECB* WORDS). * 4. SECDED ID TABLE (*SIDL* WORDS - CORR. MEMORY THRESHOLD). * 5. M/R BUFFERS (*NUMR*+1 BUFFERS OF MODEL-DEPENDENT LENGTH). * 6. CYBER 990 BUFFER (*M9DB* WORDS, IF CYBER 990). * 7. PP RESIDENT SAVE AREA (*DFPSL* WORDS). * 8. NOS REQUEST AREA (*RQBL* WORDS). LDN 0 STD T6 LDM VEFL ZJN ECB0 IF *VE* ENTRY NOT SPECIFIED LDM DFTA+1 LPC 3777 ADC 4000 SET DEDICATED *DFT* STM DFTA+1 LDM .MLS+MTBL ALLOW SPACE FOR *MLST* STD T6 LDM DCPN ZJN ECB1 IF *DUALCPU=N* NOT SPECIFIED ECB0 LDM DCPC ZJN ECB1 IF NOT DUAL 170-STATE CPUS WITH CACHE LDC 2000 SET *CPU1 ON CACHE MACHINE IN C170 MODE* STD CM LDN EIBP CWD CM ECB1 LDK DSCBL+1 ALLOW PAD FOR *DFT/OS* BUFFER ADJUSTMENT RAD T6 LDK RQBL+1 ADD NOS REQUEST AREA SIZE RAD T6 LDM DFTA+1 SHN 21-13 MJN ECB2 IF DEDICATED *DFT* LDK DFPSL ADD *PPR* SAVE AREA SIZE RAD T6 ECB2 LDM DFTV ZJN ECB3 IF *DFT* VERSION 3 LDM DFSZ COMPUTE TOTAL *DFT/OS* BUFFER SIZE UJN ECB5 CLEAR TABLE ECB3 LDM DFTA+1 SHN 21-12 PJN ECB4 IF NOT CYBER 990 LDC M9DB ADD FOR CYBER 990 BUFFER RAD T6 LDM .CPU+1 CHECK FOR DUAL CPU LPN 2 NJN ECB4 IF CPU-1 *OFF* OR NOT PRESENT LDC M9DB DOUBLE CYBER 990 BUFFER SIZES RAD T6 ECB4 LDM DFTA+1 ADD M/R BUFFER SIZE LPC 1777 RAD T6 LDM DFTA ADD M/R BUFFER CONTROL WORD SIZE SHN -6 ADK DFHL+MECB+SIDL ADD *DFT* HEADER/SECDED/ELEMENT ECB5 ADD T6 RJM CLS CLEAR TABLE LJM ECBX RETURN EJT SPACE 4,10 ** EJT - DEFINE EXECUTING JOB TABLE. * * CALLS CLS, LST, SPW. * * MACROS CFI. EJT SUBR ENTRY/EXIT LDN EJTP RJM SPW LDM .EJT+MTBL SET EJT ENTRY COUNT STD CM+2 CFI EJT,,CM+2 CLEAR TABLE RJM CLS LDN EJTE LINK EJT RJM LST LDN EXJS*2 STM ICTB+4 LDD CM STORE SYSTEM EJT ENTRY SHN 14 LMD CM+1 CWM ICTB,ON ADN SCLE-JSNE-1 CWM ICTC,ON UJN EJTX RETURN EMB SPACE 4,10 ** EMB - DEFINE ERROR MESSAGE BUFFER. * * CALLS CLS, SPW. EMB SUBR ENTRY/EXIT LDC 1S12+EMBP RJM SPW LDM .EMB+MTBL CLEAR BUFFER RJM CLS LDN ZERL SET UP INTERLOCK WORD CRD AB CRD CN AOD AB LDM .EMB+MTBL ESTABLISH *LIMIT* SBN 2 ALLOW FOR HEADER STD CN+4 LDD CM+1 STORE BUFFER INTERLOCK/*IN* WORD SHN 14 LMD CM+2 CWD AB ADN 1 STORE BUFFER *OUT*/*LIMIT* WORD CWD CN UJN EMBX RETURN EST SPACE 4,10 ** EST - DEFINE EQUIPMENT STATUS TABLE. * * EXIT (KI) = NUMBER OF 819 DEVICES. * * USES T1, T2, T5, AB+1 - AB+2, CM - CM+4. * * CALLS CKB, PBD, SPW, STA. * * MACROS CFI, SFA. EST1 RJM STA FETCH EST ENTRY ZJN EST5 IF NOT MASS STORAGE * SET HALF/FULL TRACK FLAGS. LDN AB+1 STD T1 EST2 LDM EBUT-AB,T1 EXTRACT CHANNEL STI T1 ZJN EST4 IF SINGLE ACCESS DEVICE LPN 77 STD CM LDI ES CHECK DEVICE TYPE SHN 21-7 PJN EST3 IF NOT *LDAM* DEVICE LPN 2 LMC SCNI+77 SET DRIVER INSTRUCTION STM EBUT+5+2 LDM TCHS,CM SBN CLFT SHN -21 SHN 10-0 RAM EBUT-AB,T1 EST3 AOD T1 ADVANCE CHANNEL BYTE INDEX LMN AB+3 NJN EST2 IF ANOTHER CHANNEL TO PROCESS EST4 LDM TDDB+DVED SHN 21-12 EST5 PJN EST6 IF NOT BUFFERED DEVICE RJM PBD PROCESS BUFFERED DEVICE EST6 SFA EST,T5 CWM EBUT,T2 STORE EST ENTRY EST7 SOD T5 PJP EST1 IF NOT END OF EST * SET UP CHANNEL TABLE POINTER WORD. LDN CTALL*5 INITIALIZE CHANNEL LIST INDEX STD T5 EST8 LDM KBUF,T5 ZJN EST9 IF NOT BUFFERED DEVICE AOM .CCTP SHN 2 COUNT USAGE STM .CCTP+2 ERRNZ CCTL-4 CODE DEPENDS ON VALUE EST9 SOD T5 PJN EST8 IF MORE CHANNELS TO SCAN LDD HO CHECK MAINFRAME TYPE SHN -11 SBN 7 NJN ESTX IF NOT CYBER 176 * SET UP CHANNEL TABLE POINTER FOR CYBER 176/819. LDN 4 SET NUMBER OF ENTRIES STM .CCTP SHN CCTLS SET TABLE LENGTH STM .CCTP+2 EST SUBR ENTRY/EXIT LDN ESTP RJM SPW LDD LE SET LAST EQUIPMENT + 1 STD CM+2 STD T5 CFI EST,,LE ADVANCE CENTRAL ADDRESS RAD CA+1 SHN -14 RAD CA RJM CKB LDN ESTP STORE EST POINTER CWD CM LDN ESTE SET EST ENTRY LENGTH STD T2 LJM EST7 PROCESS EST EVT SPACE 4,10 ** EVT - DEFINE EVENT TABLE. * * CALLS CLS, SPW. EVT SUBR ENTRY/EXIT LDC EVTP RJM SPW LDN EVTLL CLEAR TABLE RJM CLS UJN EVTX RETURN EXM SPACE 4,10 ** EXM - DEFINE EXTENDED MEMORY BUFFERS. * * ENTRY (EN) = EXTENDED MEMORY CPU ACCESS EST ORDINAL. * * USES T3, AB - AB+4, CN - CN+4. * * CALLS CLS, SPW. * * MACROS SFA. EXM SUBR ENTRY/EXIT LDK UEML CRD AB LDD AB+4 LPN 2 ADD EN ADD LD LPC 777 ZJN EXMX IF NO EXTENDED MEMORY DEFINED LDC EDBP RJM SPW LDN EDBL CLEAR DISPLAY BUFFER RJM CLS LDD EN ZJN EXMX IF NO EXTENDED MEMORY EQUIPMENT SFA EST,,EN CRD CN LDM TAXM+3 ZJN EXM1 IF NO SPACE RESERVED FOR I/O BUFFERS LDM .PPU SBN 2 SHN -1 EXM1 STD T3 SHN -1 RAD T3 LDD CN+3 CHECK EXTENDED MEMORY ACCESS LPN 77 LMN 1RP ZJN EXM2 IF DDP AOD T3 EXM2 LDC 3S12+EPBP RJM SPW LDD T3 SET BUFFER COUNT ZJN EXM4 IF NO I/O BUFFERS DEFINED SHN 6 RAD CM+3 LDD T5 STORE EXTENDED MEMORY BUFFER POINTER CWD CM EXM3 LDC ECBL CLEAR BUFFER RJM CLS SOD T3 NJN EXM3 IF ALL BUFFERS NOT ALLOCATED EXM4 LJM EXMX RETURN EXP SPACE 4,10 ** EXP - DEFINE C176 EXCHANGE PACKAGES. * * CALLS SXA. EXP SUBR ENTRY/EXIT LDD HO SHN -11 LMN 7 NJN EXPX IF NOT C176 RJM SXA UJN EXPX RETURN FNT SPACE 4,10 ** FNT - DEFINE FILE NAME TABLE. * * CALLS CLS, LST, SPW. * * MACROS CFI. FNT SUBR ENTRY/EXIT LDN FNTP RJM SPW LDM .FNT+MTBL SET FNT ENTRY COUNT STD CM+2 CFI FNT,,CM+2 CLEAR TABLE RJM CLS LDN FNTE LINK FNT RJM LST LDD CM STORE SYSTEM FILE FNT ENTRY SHN 14 LMD CM+1 ERRNZ SYFO SYSTEM FILE ORDINAL .NE. 0 CWM ICTA,ON UJN FNTX RETURN FOT SPACE 4,10 ** FOT - DEFINE FAMILY ORDINAL TABLE. * * CALLS CLS, LST, SPW. FOT SUBR ENTRY/EXIT LDC FOTP RJM SPW LDM .FOT+MTBL SET FOT ENTRY COUNT STD CM+2 RJM CLS LDN 1 LINK FOT RJM LST LDD CM STORE SYSTEM FOT ENTRY SHN 14 LMD CM+1 CWM ICTB,ON UJN FOTX RETURN INB SPACE 4,10 ** INB - DEFINE INSTALLATION BLOCK. * * CALLS SPW. INB SUBR ENTRY/EXIT LDC 2S12+INBP RJM SPW LDM INBS SET TABLE LENGTH STD CM+4 RJM CLS CLEAR THE BLOCK LDD T5 STORE POINTER WORD CWD CM UJN INBX RETURN JCA SPACE 4,10 ** JCA - DEFINE JOB CONTROL BLOCK TABLE (*JCB*). * * USES T1. * * CALLS SPW. JCA SUBR ENTRY/EXIT LDK JBCP RJM SPW LDN 0 STD T1 LDN JCBE SET WORD COUNT STD T2 LDD CA INITIALIZE SCT (JCB ORDINAL ZERO) SHN 14 ADD CA+1 CWM JCAC,T2 UJN JCA2 PROCESS NEXT BLOCK JCA1 LDD CA STORE JCB ENTRY FOR NEXT SERVICE CLASS SHN 14 ADD CA+1 CWM JCAB,T2 JCA2 STD CA+1 SHN -14 STD CA AOD T1 COUNT JCB ENTRY SBN MXJC MJN JCA1 IF MORE SERVICE CLASSES TO PROCESS UJN JCAX RETURN JCAB BSS 0 DEFAULT JCB (JCB ORDINAL .GT. 0) CON 0,100,7000,1,0 INPUT FILE CONTROL CON 700,100,7000,1,7000 EXECUTING JOB CONTROL CON 0,100,7000,1,0 OUTPUT FILE CONTROL CON 0,4,20,-0,341 SERVICE CONTROL CON 6760,4004,3777,7,7777 CON 0,0,3777,0,-0 CON 0,0,0,0,/SCD/DISC CON 30,10,20,4,20 BSS 4*5 .L SET *-JCAB JCABL EQU .L/5 LENGTH OF ENTRY ERRNZ JCABL-JCBE ERROR IN LENGTH JCAC BSS 0 DEFAULT SCT (JCB ORDINAL 0) CON 0,0,0,/SCD/A2MK,/SCD/A1MK+/SCD/SSMK CON 0,0,0,0,/SCD/BCMK CON 0,0,0,0,/SCD/RBMK CON 0,0,0,0,/SCD/DIMK+/SCD/TSMK CON 0,0,0,0,0 CON 0,0,0,0,0 CON 0,0,0,0,0 CON 0,0,0,0,0 CON 0,0,0,0,0 CON 0,0,0,0,0 CON 0,0,0,0,0 CON 0,0,0,0,0 .L SET *-JCAC JCACL EQU .L/5 LENGTH OF ENTRY ERRNZ JCACL-JCBE ERROR IN LENGTH LDB SPACE 4,10 ** LDB - DEFINE *L* DISPLAY BUFFER. * * CALLS CLS, SPW. LDB SUBR ENTRY/EXIT LDC 2S12+LDSP RJM SPW LDC LDSY+LCOM+5 CLEAR BUFFER RJM CLS UJN LDBX RETURN LID SPACE 4,10 ** LID - DEFINE LOGICAL ID TABLE. * * USES T7. * * CALLS CLS, SPW. LID SUBR ENTRY/EXIT LDC LIDP RJM SPW LDM .LID+MTBL SET LID ENTRY COUNT STD CM+2 RJM CLS LDD T5 STORE POINTER WORD CWD CM UJN LIDX RETURN MCT SPACE 4,10 ** MCT - DEFINE MEMORY CONTROL TABLE. * * USES CM+2, T3. * * CALLS CLS, SPW. MCT SUBR ENTRY/EXIT LDC MCTP RJM SPW LDM .NPCP PSEUDO CONTROL POINT COUNT STD T3 ADD NC FORM MCT ENTRY COUNT ADN 1 STD CM+2 SHN 1 CLEAR TABLE RJM CLS LDD T5 UPDATE POINTER WORD CWD CM LDD T3 ZJN MCTX IF NO PCP-S LDC 3S12+PCPP RJM SPW LDD T3 CLEAR PCP AREA SHN 7 RJM CLS UJP MCTX RETURN MSA SPACE 4,10 ** MSA - DEFINE MASS STORAGE ALLOCATION TABLE. * * USES EQ, T2, T3, T5, CM - CM+4, CN - CN+4. * * CALLS CLS, EEB, SME, SPW, STA. MSA5 LDD CM WRITE ALLOCATION WORD SHN 14 LMD CM+1 ADD T3 CWD CN LDM MSAA ADVANCE ALLOCATION MASK RAM MSAA AOD T3 LMN MXRS NJN MSA2 IF NOT END OF ALLOCATION TYPES MSA SUBR ENTRY/EXIT LDC MSAP RJM SPW LDN MXRS CLEAR TABLE RJM CLS LDN 0 STD T3 STD T5 UJN MSA2 ENTER LOOP MSA1 LDD T5 NJN MSA5 IF NO DEFAULT TO SET LDM DFMS RJM STA AOM TDDB+DVFA UPDATE EQUIPMENT DEFINITION RJM EEB MSA2 LDN NOPE-1 INITIALIZE EQUIPMENT SEARCH LOOP STD EQ LDN ZERL CRD CN MSA3 RJM SME ZJN MSA1 IF END OF ALLOCATION TYPE LDD EQ STD T2 RJM STA FETCH DEVICE DESCRIPTION LDM TDDB+DVFA LPC 1 MSAA EQU *-1 ZJN MSA3 IF SELECTION NOT SET FOR THIS EQUIPMENT AOD T5 LDN CN STD T0 MSA4 AOD T0 DIVIDE BY 12 LCN 12D RAD T2 PJN MSA4 IF NOT COMPLETE LMC 777777-SHNI SBN 1 STM MSAB LDN 1 MSAB SHN 0 RAI T0 LDC 2000 STD CN UJN MSA3 CHECK NEXT EQUIPMENT MST SPACE 4,10 ** MST - DEFINE MASS STORAGE TABLES. * * EXIT (LE) = LAST MASS STORAGE EQUIPMENT + 1. * * USES EQ, T3, AB - AB+4, CM - CM+4. * * CALLS EEB, RMM, SME, SMT, STA. * * MACROS SFA. MST2 RJM RMM RECOVER MSTS FROM MS * PROCESS NEXT EQUIPMENT. LDD EQ SET LAST DEVICE STD T3 RJM SME ZJN MST3 IF END OF MS EST ENTRIES LDD EQ RJM STA NJN MST2 IF A MASS STORAGE DEVICE LDC =C*INCORRECT DEVICE TYPE.* JMP DSE MST3 SFA EST,.PFNL+3 CHECK DEFAULT FAMILY EQUIPMENT CRD AB LDD AB SHN 21-13 MJN MST4 IF DEFINED LDM DFMS SET DEFAULT FAMILY STM .PFNL+3 MST4 LDN ESTP CRD CM AOD T3 SET LAST MASS STORAGE EQUIPMENT + 1 STD CM+3 STD LE LDN ESTP CWD CM MST SUBR ENTRY/EXIT LDD ID SET MACHINE ID IN DEFAULT FAMILY NAME STM DEFM+2 LDN RDEQ STD EQ SFA EST,,EQ FETCH EST ENTRY FOR *RD* DEVICE CRD AB LJM MST2 ENTER LOOP ODB SPACE 4,10 ** ODB - DEFINE OPERATOR DISPLAY BUFFER. * * USES CM - CM+4. * * CALLS CLS. ODB SUBR ENTRY/EXIT LDN ZERL CRD CM AOD CM SET UP INTERLOCK WORD LDD CA SHN 14 LMD CA+1 STORE INTERLOCK WORD CWD CM AOD CA+1 ADVANCE CENTRAL ADDRESS SHN -14 RAD CA LDN LODS-1 CLEAR BUFFER RJM CLS UJN ODBX RETURN ORT SPACE 4,10 ** ORT - DEFINE OPTICAL DISK REQUEST TABLE. * * CALLS CLS, LST, SPW. * * MACROS CFI. ORT SUBR ENTRY/EXIT LDC ORTP RJM SPW LDM .ORT+MTBL SET ORT ENTRY COUNT STD CM+2 CFI ORT,,CM+2 CLEAR TABLE RJM CLS LDN ORTE LINK ORT RJM LST UJN ORTX RETURN OST SPACE 4,10 ** OST - DEFINE OPTICAL DISK STATUS TABLES. * * USES EQ, T4, T5, AB - AB+4, CM - CM+4. * * CALLS CLS, SPW. * * MACROS SFA. OST2 LDC OSTP SET NUMBER OF ENTRIES IN OST POINTER WORD CRD CM LDD T4 SHN -2 STD CM+2 LDC OSTP CWD CM LDD T4 SET LENGTH OF TABLE RJM CLS OST SUBR ENTRY/EXIT LDC OSTP RJM SPW LDN 0 STD EQ SET INITIAL EST ORDINAL STD T4 SET INITIAL TABLE INDEX LDN ESTP CRD CM LDD CM+2 SET MAXIMUM EST ORDINAL STD T5 OST1 AOD EQ ADVANCE EST ENTRY LMD T5 ZJN OST2 IF END OF EST SFA EST,EQ READ EST ENTRY ADK EQDE CRD CM LDD CM+3 LMC 2ROD NJN OST1 IF NOT OPTICAL DISK LDN ZERL CRD AB LDD T4 SHN -2 SET OST ENTRY ORDINAL IN EST ERRNZ OSTE-4 CODE DEPENDS ON VALUE STD AB+2 SFA EST,EQ ADN EQAE CWD AB UPDATE EST ENTRY LDN OSTE ADVANCE TABLE ADDRESS RAD T4 UJN OST1 PROCESS NEXT EST ENTRY PDB SPACE 4,10 ** PDB - DEFINE PREVIEW DISPLAY BUFFER. * * USES CA, CA+1. * * CALLS CLS. PDB SUBR ENTRY/EXIT LDD CA SET INTERLOCK WORD ADDRESS SHN 14 ADD CA+1 CWM PDBA,ON INITIALIZE INTERLOCK WORD STD CA+1 ADVANCE CENTRAL ADDRESS SHN -14 STD CA LDC LPDS-1 RJM CLS CLEAR PREVIEW DISPLAY BUFFER UJN PDBX RETURN PDBA VFD 12/7777B,12/0,12/0,12/0,12/0 PSV SPACE 4,10 ** PSV - DEFINE PP SAVE AREAS. * * USES CM - CM+4. * * CALLS CLS, SPW. PSV SUBR ENTRY/EXIT LDD LD SHN 0-13 ZJN PSVX IF NO ISHARED DEVICES LDC 2S12+PPSP RJM SPW LDM .PPN COMPUTE NUMBER OF SAVE AREAS SBN 2 STD CM+4 SBD NS MJN PSV1 IF FEWER PP-S THAN ISHARED DEVICES LDD NS STD CM+4 PSV1 LDD T5 CWD CM * ALLOCATE SAVE AREAS. PSV2 SOD CM+4 MJN PSVX IF NO MORE TO ALLOCATE LDC PPSA CLEAR SAVE AREA RJM CLS UJN PSV2 ALLOCATE NEXT SAVE AREA QFT SPACE 4,10 ** QFT - DEFINE QUEUE FILE TABLE. * * CALLS CLS, LST, SPW. * * MACROS CFI. QFT SUBR ENTRY/EXIT LDN QFTP RJM SPW LDM .QFT+MTBL SET QFT ENTRY COUNT STD CM+2 CFI QFT,,CM+2 CLEAR TABLE RJM CLS LDN QFTE LINK QFT RJM LST LDN 0 STM ICTB+4 LDD CM STORE SYSTEM QFT ENTRY SHN 14 LMD CM+1 CWM ICTB,ON ADN SCLQ-JSNQ-1 CWM ICTC,ON UJN QFTX RETURN RPT SPACE 4,10 ** RPT - DEFINE RING PORT TABLE. * * ENTRY (CA - CA+1) = CURRENT CM ADDRESS. * * USES T4, EQ, AB - AB+4. * * CALLS CLS, DSE, SSE. RPT2 LDD CA SET ADDRESS INTO EST ENTRY SHN 14 LMD CA+1 ADN 1S"RPTSM"-1 ADD T4 SHN -RPTAS STD AB+4 SHN -14 NJN RPT1 IF ADDRESS TOO LARGE SFA EST,EQ ADK EQDE CWD AB LDN RPTL INCREMENT ADDRESS OFFSET RAD T4 RPT3 RJM SSE SEARCH FOR *RP* EQUIPMENT ZJN RPT2 IF FOUND LDD T4 ZJN RPTX IF NO TABLE SPACE RESERVED LDD CA+1 LPN 1S"RPTSM"-1 ADD T4 RJM CLS CLEAR STORAGE RPT SUBR ENTRY/EXIT LDN 0 STD T4 LDC 1S17+2RRP UJN RPT3 SEARCH FOR EQUIPMENT RPT1 LDC =C*RING PORT TABLE OVERFLOW.* JMP DSE DISPLAY ERROR SAB SPACE 4,10 ** SAB - DEFINE SYSTEM ATTRIBUTE BLOCK. * * USES CM - CM+4. * * CALLS CLS, SPW. SAB SUBR ENTRY/EXIT LDC SABL RJM SPW SETUP POINTER WORD LDN ELDWL SBM C8XX SET BASE DESCRIPTOR BLOCK LENGTH STD CM+2 LDD EN ADM UEMZ ADM UEMZ+1 ZJN SAB2 IF NO EXTENDED MEMORY DESCRIPTOR REQUIRED AOD CM+2 ADVANCE DESCRIPTOR LENGTH SAB2 LDM .CPU ADD SECOND CPU DESCRIPTOR LMN 2 ERRNZ CPDWL-4 CODE DEPENDS ON VALUE LPN 2 SHN 1 LENGTH = 4 WORDS RAD CM+2 LDD HO APPEND FLPP DESCRIPTOR WORD SHN 0-11 LPN 1 RAD CM+2 CLEAR ELEMENT DESCRIPTOR BLOCK RJM CLS LDD T5 STORE POINTER WORD CWD CM UJP SABX RETURN SCD SPACE 4,10 ** SCD - DEFINE *SCD* PARAMETER TABLE. * * CALLS CLS, SPT, SPW. SCD2 LDD CA SET SAVE AREA FWA STM SPSA LDD CA+1 STM SPSA+1 LDC PSAL CLEAR SAVE AREA RJM CLS SCD SUBR ENTRY/EXIT LDM C8XX NJN SCDX IF NOT DUAL STATE MAINFRAME LDM BSPT ZJN SCD1 IF TABLE SHOULD BE CREATED LDM .DCS ZJN SCD2 IF DEADSTART FROM CC545 SCD1 LDC 2S12+SCDP RJM SPW RJM SPT SET UP PARAMETER TABLE UJN SCD2 RESERVE PP RESIDENT SAVE AREA SCT SPACE 4,10 ** SCT - DEFINE SUBSYSTEM CONTROL TABLE. * * CALLS CLS, SPW. SCT SUBR ENTRY/EXIT LDC 2S12+SSCP RJM SPW LDN SSCTL*2 CLEAR TABLE RJM CLS UJN SCTX RETURN SDA SPACE 4,10 ** SDA - DEFINE STATISTICAL DATA AREA. * * CALLS CLS, SPW. SDA SUBR ENTRY/EXIT LDC SDAP SET STATISTICAL AREA POINTER RJM SPW LDN SDAL CLEAR TABLE RJM CLS UJN SDAX RETURN SIE SPACE 4,10 ** SIE - *SET* INTERNAL ERROR. * * ENTRY TABLE VERIFICATION PROCESSOR MISSING. * * EXIT TO *DSE*. SIE CON 0 ENTRY LDC =C+*SET* INTERNAL ERROR IN *ICM*.+ JMP DSE DISPLAY ERROR AND HANG SIT SPACE 4,10 ** SIT - DEFINE *SECDED* ID TABLE. * * CALLS CLS, SPW. SIT SUBR ENTRY/EXIT LDM C8XX ZJN SITX IF LOWER 800 SERIES MAINFRAME LDC SCRL RJM SPW LDC 4000 SET *1MB* (ERROR LOGGING) ACTIVE RAD CM LDD T5 STORE POINTER WORD CWD CM LDK 2*/SCR/UIDL CLEAR TABLE RJM CLS UJN SITX RETURN TRT SPACE 4,10 ** TRT - ALLOCATE TRT SPACE. * * USES EQ, CM - CM+4, CN - CN+4. * * CALLS CDL, CLS, SME. TRT1 LDD AB+4 FETCH TRT LENGTH SHN 3 ADK TDGL CRD CM ADN TRLL-TDGL READ TRT ADDRESS WORD CRD CN LDD CA SET TRT ADDRESS RAD CN+3 LDD CA+1 STD CN+4 LDD AB+4 STORE TRT ADDRESS SHN 3 ADN TRLL CWD CN RJM CDL RJM CLS CLEAR TRT SPACE TRT2 RJM SME NJN TRT1 IF NOT END OF MASS STORAGE EST TRT SUBR ENTRY/EXIT LDN NOPE-1 STD EQ UJN TRT2 BEGIN EST SEARCH TITLE PRIMARY SUBROUTINES. LST SPACE 4,10 ** LST - LINK SYSTEM TABLE. * * ENTRY (A) = LENGTH OF TABLE ENTRY. * (T5) = POINTER WORD ADDRESS. * (CM - CM+4) = POINTER WORD. * * EXIT (A) .NE. 0 IF RECOVERY DEADSTART. * * USES T3, AB - AB+4, CN - CN+4. LST2 LDD T3 ADVANCE TABLE ADDRESS RAD AB+1 SHN -14 RAD AB SHN 14 STORE TABLE LINKAGE LMD AB+1 CWD CN LST3 AOD CN+4 ADVANCE LINKAGE LMD CM+2 NJN LST2 IF NOT END OF TABLE LST SUBR ENTRY/EXIT STD T3 SAVE LENGTH OF ENTRY LDD RS NJN LST1 IF RECOVERY DEADSTART CRD CN AOD CN+4 SET FIRST AVAILABLE ORDINAL STD CM+4 LDD CM+2 NUMBER OF FREE ENTRIES SBN 1 STD CM+3 LST1 LDD T5 UPDATE POINTER WORD CWD CM CRD AB LSTA UJN LST3 LINK TABLE * UJN LSTX (RECOVERY DEADSTART) TITLE COMMON SUBROUTINES. SPACE 4,10 ** COMMON SUBROUTINES. COMMON SPWSUB TITLE SUBROUTINES. IDB SPACE 4,15 ** IDB - INITIALIZE DAYFILE BUFFER. * * ENTRY (T3) = BUFFER NUMBER. * (T6 - T7) = FWA OF DAYFILE POINTERS. * (CA - CA+1) = ADDRESS OF NEXT BUFFER. * * EXIT (CA - CA+1) ADVANCED. * * USES AB - AB+4, CM - CM+4, CN - CN+4. * * CALLS CLS. IDB SUBR ENTRY/EXIT LDN ZERL CRD CM CRD AB CRD CN LDD CA SET BUFFER ADDRESS STD CM LDD CA+1 STD CM+1 LDM .DFB,T3 SET BUFFER LENGTH STD AB+3 SCN 77 NJN IDB1 IF NOT ZERO LENGTH BUFFER STD AB+3 IDB1 LDD T3 SET BUFFER INDEX SHN 6 ADC 103 APPEND NOT BUSY / NOT INTERLOCKED STATUS STD CN+4 LDD T6 STORE DAYFILE BUFFER POINTERS SHN 14 LMD T7 CWD CM ADN 1 CWD AB ADN 1 STORE DAYFILE FST CWD CN LDD AB+3 CLEAR BUFFER RJM CLS LJM IDBX RETURN RMM SPACE 4,10 ** RMM - RECOVER MST-S FROM MASS STORAGE. RMM SUBR ENTRY/EXIT LDD AB SCN 14 STD AB LDM TDDB+DVPR LPN 2 SHN 1 RAD AB RJM RCA SET MST POINTER STD AB+4 SHN -14 ZJN RMM1 IF TABLE WITHIN LIMIT LDC =C*MASS STORAGE TABLE OVERFLOW.* LJM DSE RMM1 STM RMMC CLEAR PARTITION LINK STORAGE SFA EST,EQ STORE EST ENTRY CWD AB LDN MSTXL CLEAR MST SPACE (INCLUDING EXTENSION) RJM CLS LDD EQ ZJN RMMX IF EQUIPMENT ZERO LMN LDEQ NJN RMM2 IF NOT LINK DEVICE SBM TAXM+3+5*1 SBM TAXM+3+5*2 SUBTRACT I/O BUFFERS FOR OTHER MACHINES SBM TAXM+3+5*3 RAM TDDB+DVNT RMM2 LDD EN LMD EQ NJN RMM3 IF NOT XM EQUIPMENT WITH I/O BUFFERS SBM TAXM+3 RAM TDDB+DVNT SUBTRACT I/O BUFFERS FOR THIS MACHINE RMM3 RJM SHS SET *HAT* AND *PUT* TABLE SIZES * PRESET MASS STORAGE TABLE WORDS. LDM TDDB+DVNT SET NUMBER OF TRACKS STD CM STD CM+4 ADN 3 SHN -2 STD CM+2 LDN 0 STD CM+1 STD CM+3 LDD AB+4 STORE *TDGL* SHN 3 ADK TDGL CWD CM * SDGL - SHARED DEVICE STATUS WORD. LDN ZERL CRD CM LDD AB SET ISD FLAG IN *SDGL* LPN 20 SHN 13-4 STD CM LDD AB+4 SHN 3 ADN SDGL CWD CM * ACGL - DEVICE GLOBAL INFORMATION WORD. LDD AB SET GLOBAL UNLOAD IF *OFF* OR *DOWN* LPN 2 SHN GUNL-GUNL/12D*12D-1 STD CM+4 LDN 0 STD CM LDM TDDB+DVPR LPN 1 APPEND PRESET STATUS FOR ISD SHN GPRS-GPRS/12D*12D RAD CM+4 LDD AB+4 STORE *ACGL* SHN 3 ADN ACGL CWD CM * DALL - DRIVER ACTIVITY WORD. LDN ZERL CRD CM LDD AB LPN 3 SHN 11-1 STD CM LDD AB+4 SHN 3 ADN DALL CWD CM * DILL - DRIVER INTERLOCK WORD. LDM TDDB+DVFA SET FILE ALLOCATION STATUS STD CM LDD EQ SET EST ORDINAL STD CM+1 LDC ** SET PRIOR PARTITION EST ORDINAL RMMC EQU *-1 STD CM+2 LDM TDDB+DVED SET EQUIPMENT PARAMETERS STD CM+3 LDM TDDB+DVAI SET ALGORITHM INDEX LPN 77 STD CM+4 ALGORITHM INDEX TO BYTE 4 LDD AB+4 WRITE *DILL* SHN 3 ADN DILL CWD CM * ALGL - DEVICE ALLOCATION INFORMATION WORD. LDC TDDB+DVNM STD T3 SET POINTER TO PF DEVICE NAME STM RMMA LDD RS NJN RMM7 IF RECOVERY DEADSTART CRD CM LDI T3 NJN RMM4 IF PF ENTRY PRESENT LDD EQ LMM DFMS NJN RMM5 IF NOT DEFAULT EQUIPMENT LDN 1 UJN RMM6 SET CATALOG TRACK COUNT TO 1 RMM4 LDM TDDB+DVPF SHN -4 NJN RMM6 IF CATALOG TRACK COUNT SPECIFIED RMM5 LDM TDDB+DVCT GET DEFAULT CATALOG TRACK COUNT LPC 3777 RMM6 STD CM+3 SET CATALOG TRACK COUNT LDD AB+4 SHN 3 ADN ALGL STORE *ALGL* CWD CM * MDGL - MASS STORAGE DRIVER WORD. RMM7 LDM TDDB+DVSL SET SINGLE UNIT SECTOR LIMIT STD CM+1 LPC 3777 STD CM+4 LDD AB LPN 40 ZJN RMM7.1 IF NOT A BUFFERED DEVICE LDD CM+1 REMOVE PARTITION NUMBER SCN 17 STD CM+1 RMM7.1 LDM TDDB+DVDI SET DRIVER INDEX SHN 14 STD CM+3 SHN -14 LMC 1RD*100 STD CM+2 LDD AB+3 CHECK *EST* MNEMONIC LMC 2RDP ZJN RMM8 IF TYPE *DP* LMK 2RDE&2RDP NJN RMM9 IF NOT TYPE *DE* LDM TDDB+DVED LPN 70 LMN 40 NJN RMM8 IF NOT UEM LDC 2RDX CHANGE DRIVER NAME TO *DX* STD CM+2 LDN LA6DX RESET DRIVER INDEX STD CM+3 RMM8 LDM EBUT+7 UPDATE SECTOR LIMIT TO REFLECT XM SHIFT SHN -6 LPN 3 ADD TH ERRNZ SHNI-1000 STM RMMB LDN 20 MINIMUM SECTOR LIMIT RMMB SHN 0 * SHN EMSC STD CM+4 ADC 4000 MAINTAIN FULL-TRACK FLAG STD CM+1 RMM9 LDI ES LPC 404 SHN 12-2 STD CM SET AUXILIARY STATUS SHN 13-20 SCN 77 RAD CM SET REMOVABLE STATUS LDD AB+4 STORE DRIVER WORD SHN 3 ADN MDGL CWD CM * STLL - DEVICE STATUS WORD. LDN ZERL CRD CM LDD ID ADD MACHINE ID STD CM+2 AOD CM+4 LDM EBUT+4 CHECK FOR INITIALIZE REQUEST SCN 17 ZJN RMM11 IF NO INITIALIZE OPTIONS STD T0 LPC MLFPR+MLIAL NJN RMM10 IF FULL INITIALIZE SPECIFIED LDD T0 SHN 4 STD CM+1 SET DAYFILE OPTIONS SHN -6 LPC MLIPF+MLIQF RMM10 LMN MLIRP ADD INITIALIZE PENDING FLAG STD CM RMM11 STD T1 LDM EBUT+4 SET ALTERNATE DEVICE STATUS SHN RASD-RASD/12D*12D-3 LPN MRASD RAD CM LDD AB SET UNLOAD REQUESTED IF *OFF* OR *DOWN* LPN 2 SHN LUNL-LUNL/12D*12D-1 STD T0 SHN LDUL-LUNL SET LOCAL UNLOAD IF *OFF* OR *DOWN* LMD T0 RAD CM LDD AB+4 STORE DEVICE STATUS SHN 3 ADN STLL CWD CM * SCYL - STARTING CYLINDER OF PARTITION. LDN ZERL CRD CM LDM TDDB+DVCO SET STARTING CYLINDER STD CM+2 LDD AB+4 STORE STARTING CYLINDER SHN 3 ADN SCYL CWD CM * DDLL - DEVICE DEFINITION WORD (WITH UNIT LIST). LDM EBUT+4 SET NUMBER OF UNITS LPN 7 STM TDDB+DVED SHN 3 RAM TDDB+DVED LDM TDDB+DVPR SET EQUIPMENT (CONTROLLER) NUMBER SHN -11 SHN 6 RAM TDDB+DVED LDD AB+4 STORE DEVICE DEFINITION SHN 3 ADN DDLL CWM TDDB+DVED,ON * THLL - DEVICE ERROR THRESHOLD WORD. ADN THLL-DDLL-1 STORE THRESHOLD VALUES CWM TDDB+DVTH,ON LDD T1 LPC MLIAL ZJP RMMX IF FULL INITIALIZE NOT SPECIFIED * PUGL - PERMANENT FILE USER DESCRIPTION. LDN 0 CLEAR USER DESCRIPTION CRD CM LDI T3 NJN RMM14 IF PF DESCRIPTION LDD EQ LMM DFMS NJN RMM16 IF NOT DEFAULT EQUIPMENT LDC 177777 UJN RMM15 SET DEFAULT MASKS RMM14 LDM TDDB+DVPF SET MASKS LPN 17 SHN 14 LMM TDDB+DVPF+1 RMM15 STD CM+4 SHN -14 STD CM+3 LDD AB+4 STORE *PUGL* SHN 3 ADN PUGL CWD CM * PFGL - PERMANENT FILE DESCRIPTION WORD. RMM16 LDI T3 NJN RMM17 IF PF DESCRIPTION AOM DEFN LDC DEFM STM RMMA STD T3 RMM17 SFA EST,EQ SET DEVICE ACCESS LEVELS IN PFGL ADK EQAE CRD CM LDD CM+3 SHN 6 STM 4,T3 LDM TDDB+DVED SET UNIT COUNTS IN PFGL LPN 77 RAM 4,T3 LDD AB+4 STORE PF DESCRIPTOR WORD SHN 3 ADN PFGL CWM **,ON RMMA EQU *-1 LJM RMMX RETURN DEFM DATA 6LSYSTEM DEFAULT FAMILY NAME DEFN CON 0 DEFAULT DEVICE NUMBER CON 0 UNIT COUNT SHS SPACE 4,10 ** SHS - SET HASH TABLE SIZE. * UPDATE .HATP AND .PUTP FOR BUFFERED DISKS. * * ENTRY EBUT = EST ENTRY BUILT BY *CMR*. * TDDB = MST PARAMETERS FROM *CMR*. * * USES T2. SHS SUBR ENTRY/EXIT LDM TDDB+DVED SHN 21-12 PJN SHSX IF NOT BUFFERED DEVICE LDD AB+3 SAVE EQUIPMENT MNEMONIC IN MESSAGE STM BDTB LDM EBUT+4 LPN 7 ADN 1 STD T2 SAVE UNIT COUNT RJM SPP SEARCH FOR PRIOR PARTITIONS ZJN SHS1 IF A PRIOR PARTITION WAS FOUND RAM .PUTP UPDATE NUMBER OF *PUT* ENTRIES NEEDED SHN PUTLS STM .PUTP+2 ADVANCE TABLE LENGTH SHS1 SOD T2 MJN SHSX IF NO MORE UNITS LDK HATLE/10B RAM .HATP ACCUMULATE HASH TABLE LENGTHS SHN 3 STM .HATP+2 UPDATE TOTAL LENGTH SHN -14 LMD TH STM .HATP+1 LPN 70 ZJN SHS1 IF NO OVERFLOW LDC =C*HASH TABLE OVERFLOW.* LJM DSE ERROR HALT SPP SPACE 4,10 ** SPP - SEARCH FOR PRIOR PARTITIONS. * * ENTRY (EQ) = CURRENT EST ORDINAL. * (T2) = NUMBER OF UNITS. * (AB)-(AB+4) = CURRENT EST ENTRY. * * EXIT (A) = NUMBER OF UNITS IF NO PRIOR PARTITION. * (A) = 0 IF PRIOR PARTITION FOUND. * (RMMC) = (T1) = EST ORDINAL IF PRIOR PARTITION FOUND. * * USES T1, CM - CM+4. * * MACROS SFA. SPP6 STM RMMC CLEAR PRIOR PARTITION LINK LDD T2 GET NUMBER OF UNITS SPP SUBR ENTRY/EXIT LDD EQ STD T1 SPP1 SOD T1 ZJN SPP6 IF END OF EST - NO PRIOR PARTITION FOUND SFA EST,T1 CRD CM READ EST ENTRY LDD CM SHN 21-13 PJN SPP1 IF NOT MASS STORAGE LDD AB+3 LMD CM+3 SPP2 NJN SPP1 IF NOT THE SAME DEVICE TYPE LDN CM COMPARE CHANNEL ENTRIES STD CM SPP3 AOD CM SBN CM+3 ZJN SPP1 IF ALL PRIOR DEVICE CHANNELS CHECKED LDN AB STD T0 SPP4 AOD T0 SBN AB+3 ZJN SPP3 IF ALL CURRENT DEVICE CHANNELS CHECKED LDI T0 CURRENT CHANNEL ZJN SPP4 IF NO CHANNEL ENTRY LMI CM PRIOR DEVICE CHANNEL LPC 4277 NJN SPP4 IF CHANNELS ARE NOT THE SAME LDD CM+4 GET EQUIPMENT/UNIT FROM PRIOR DEVICE MST SHN 3 ADN DDLL CRD CM LDM TDDB+DVUN+3 COMPARE UNIT NUMBER LMD CM+4 SPP5 NJN SPP2 IF NO MATCH LDM TDDB+DVPR COMPARE EQUIPMENT NUMBER SHN -3 LMD CM SHN -6 NJN SPP5 IF NO MATCH LDD T1 SET LINK TO PRIOR PARTITION STM RMMC LDN 0 INDICATE PRIOR PARTITION FOUND UJP SPPX RETURN SPACE 4,10 USE LITERALS DUMP LITERALS BLOCK INO SPACE 4,10 ** INO - INITIALIZE OVERLAY. INO SUBR ENTRY/EXIT LDD RS ZJN INOX IF NOT RECOVERY DEADSTART LDC * ORG *-1 LOC LSTA UJN LSTX RETURN LOC *O STM LSTA UJN INOX RETURN SPACE 4,10 QUAL * SPACE 4,10 ERRNG 7777-*-4 IF OVERFLOW TTL SET/APR - AUXILIARY MASS STORAGE PARAMETERS. TITLE IDENT APR,APRL QUAL APR ORG APRL *COMMENT SET - AUXILIARY MASS STORAGE PARAMETERS. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. SPACE 4,10 ** TBLM - GENERATE TABLE OF MASS STORAGE FLAWING PARAMETERS. * * TBLM EQ * EQ = MASS STORAGE EQUIPMENT MNEMONIC. TBLM MACRO EQ MS_EQ VFD 12/2R_EQ .A IFNE CYUN_EQ,0 CON CYPN_EQ CYLINDERS/PARTITION CON PTCY_EQ PHYSICAL TRACKS/CYLINDER CON PSPT_EQ PHYSICAL SECTORS/PHYSICAL TRACK CON CFS_EQ CONVERSION FACTOR SHIFT COUNT .B SET PSPT_EQ*PTCY_EQ-SPSC_EQ .C SET .B*LSPS_EQ .D SET .C/10000 .E SET .D*10000 CON .D UPPER LOGICAL SECTORS/CYLINDER CON .C-.E LOWER LOGICAL SECTORS/CYLINDER CON LSPT_EQ LOGICAL SECTORS/PHYSICAL TRACK CON SL_EQ+GS_EQ LOGICAL SECTORS/LOGICAL TRACK CON FRD FLAW ROTATING MASS STORAGE DEVICE .A ELSE BSS 10B DUMMY TABLE ENTRIES CON FMD FLAW LARGE MEMORY DEVICE .A ENDIF ENDM SPACE 4,10 ** ENTRY POINTS. CON TSYN-1 ADDRESS OF SYNTAX TABLE CON TSYNA ADDRESS OF END OF SYNTAX TABLE MSF SPACE 4,10 ** MSF - PROCESS MASS STORAGE FLAWS. MSF1 RJM PDF PROCESS DISK FLAWS RJM PTL PROCESS TRT LENGTHS MSF4 RJM CMC CHECK MACHINE CONFIGURATION RJM ECT DEFINE *EICB* TABLES. RJM BVS BUILD VARIABLE *SAB* TABLE LDD DP SET DISPLAY CONTROL FOR *IPRDECK* STD DS MSF SUBR ENTRY/EXIT AOD DI ADVANCE DECK INDEX LDD RS NJN MSF4 IF NOT A LEVEL 0 DEADSTART * LDN 0 RJM RTD LOAD *APRINST* AND *APRD00* LMN 1 ZJN MSF1 IF TEXT DECK EMPTY LDC MSFA JMP DSE DISPLAY MESSAGE AND HANG MSFA DATA C+*APRD00* MUST BE EMPTY.+ SMF SPACE 4,10 ** SMF - SEARCH MASS STORAGE FLAW TABLE *TMSF*. * * ENTRY (A) = EQUIPMENT TYPE (DEVICE MNEMONIC). * * EXIT (A) = (T3) = ADDRESS OF ENTRY. * (A) = 0, IF ENTRY NOT FOUND. * * USES T0, T3. SMF1 LDN TMSFL ADVANCE TABLE ADDRESS RAD T3 SMF2 LDI T3 CHECK ENTRY ZJN SMFX IF END OF TABLE LMD T0 COMPARE DEVICE TYPE NJN SMF1 IF NO MATCH LDD T3 EXIT WITH ADDRESS OF ENTRY SMF SUBR ENTRY/EXIT STD T0 LDC TMSF SET TABLE ADDRESS STD T3 UJN SMF2 ENTER LOOP TMSF SPACE 4,10 ** TMSF - TABLE OF MASS STORAGE DEVICES. * * ENTRY = TMSFL WORDS. * THE ENTRIES IN *TMSF* ARE REFERENCED WITH THE FOLLOWING TAGS. TMSF BSS 0 LOC 0 BSS 1 DEVICE MNEMONIC CYUN BSS 1 CYLINDERS/UNIT TKCY BSS 1 PHYSICAL TRACKS/CYLINDER PSPT BSS 1 PHYSICAL SECTORS/PHYSICAL TRACK CVNF BSS 1 CONVERSION FACTOR LSCY BSS 2 LOGICAL SECTORS/CYLINDER LSPT BSS 1 LOGICAL SECTORS/PHYSICAL TRACK LSLT BSS 1 LOGICAL SECTORS/LOGICAL TRACK PADR BSS 1 PROCESSOR ADDRESS TMSFL BSS 0 TABLE ENTRY LENGTH ORG TMSF LIST G TBL "MSEQ" LIST * PURGMAC TBLM CON 0 END OF TABLE TSYN SPACE 4,10 ** TSYN - SYNTAX TABLE. TSYN BSS 0 CON SPF SET PHYSICAL DEVICE FLAW CON CPF CLEAR PHYSICAL DEVICE FLAW CON SLF SET LOGICAL TRACK FLAW CON CLF CLEAR LOGICAL TRACK FLAW CON CAF CLEAR ALL DEVICE FLAWS TSYNA CON 0 CON NEXT CON IPR CON 0 END OF TABLE TITLE TRACK FLAWS. CAF SPACE 4,10 *** CAF. * CLEAR ALL FLAWS PREVIOUSLY SET FOR THIS EQUIPMENT. CAF DATA C*CAF.* LDD T7 GET TRT LENGTH SHN 3 ADK TDGL CRD CN ADN TRLL-TDGL CRD CM LDD CM+4 SET TRT ADDRESS STD CA+1 LDD CM+3 LPN 77 STD CA LDD CN+2 CLEAR TRT RJM CLS LDD CN RESET TRACK COUNT STD CN+4 LDD T7 SHN 3 ADK TDGL CWD CN JMP KBR RETURN CLF SPACE 4,10 *** CLF=XXXX. * CLEAR FLAW ON LOGICAL TRACK XXXX. CLF DATA C*CLF=* LDN 1 PRESET TO CLEAR FLAW UJN SLF1 ENTER PROCESSING SLF SPACE 4,10 *** SLF=XXXX. * SET FLAW ON LOGICAL TRACK XXXX. SLF DATA C*SLF=* LDN 0 PRESET TO SET FLAW SLF1 STD T4 SET *PTF* OPTION RJM ASD ASSEMBLE DIGITS RJM PTF PROCESS TRACK FLAW JMP KBR KEYBOARD RETURN CPF SPACE 4,10 *** CPF=CAAAA,TBB,SCC. * CLEAR FLAW ON CYLINDER AAAA, TRACK BB, AND SECTOR CC. * * CPF=AIIIIIII. * CLEAR FLAW ON EXTENDED MEMORY BLOCK STARTING AT * ADDRESS IIIIIII. * * CPF=AIIIIIII-AJJJJJJJ. * CLEAR FLAW ON EXTENDED MEMORY BLOCK FROM ADDRESS IIIIIII * THROUGH ADDRESS JJJJJJJ. CPF DATA C*CPF=* LDN 1 UJN SPF1 CLEAR LOGICAL TRACK FLAW SPF SPACE 4,10 *** SPF=CAAAA,TBB,SCC. * SET FLAW ON CYLINDER AAAA, TRACK BB, AND SECTOR CC. * * SPF=AIIIIIIII. * SET FLAW ON EXTENDED MEMORY BLOCK STARTING AT * ADDRESS IIIIIIII. * * SPF=AIIIIIIII-AJJJJJJJJ. * SET FLAW ON EXTENDED MEMORY BLOCK FROM ADDRESS IIIIIIII * THROUGH ADDRESS JJJJJJJJ. SPF DATA C*SPF=* LDN 0 PRESET FOR TRACK FLAWING SPF1 STD T4 LDC ** SEARCH FOR ENTRY IN *TMSF* SPFA EQU *-1 RJM SMF SEARCH MASS STORAGE FLAW PROCESSOR TABLE NJN SPF2 IF ENTRY FOUND JMP ILL PROCESS INCORRECT ENTRY SPF2 LDM PADR,T3 PROCESS ENTRY STD T2 LJM 0,T2 ENTER PROCESSOR FMD SPACE 4,10 ** FMD - SET/CLEAR FLAW ON LARGE MEMORY DEVICE. FMD LDI KA CHECK CHARACTER LMN 1RA NJN FMD2 IF NOT *A* AOD KA ASSEMBLE ADDRESS RJM CDR RJM CET CONVERT ADDRESS TO TRACK STD T5 SET FIRST TRACK LDI KA CHECK SEPARATOR LMN 1R. ZJN FMD1 IF PERIOD TERMINATOR (NO RANGE) LMN 1R-&1R. NJN FMD2 IF INCORRECT SEPARATOR AOD KA LDI KA LMN 1RA NJN FMD2 IF NOT AN *A* AOD KA RJM ASD ASSEMBLE SECOND ADDRESS RJM CET CONVERT EXTENDED MEMORY ADDRESS TO TRACK FMD1 LDD T5 STD AB+4 SET FIRST TRACK TO FLAW SBD T3 ZJN FMD3 IF ONE TRACK (FIRST = LAST) MJN FMD3 IF FIRST .LE. LAST TRACK FMD2 JMP ILL PROCESS INCORRECT ENTRY FMD3 LDM /EQP/EBUT+7 LPC 300 NJN FMD4 IF NOT DEFAULT TRACK SIZE LDD AB+4 LMN CETK-4000B ZJN FMD2 IF *CETK* FMD4 RJM PTF PROCESS TRACK FLAW AOD AB+4 SBD T3 MJN FMD3 IF MORE TRACKS TO FLAW ZJN FMD3 IF MORE TRACKS TO FLAW JMP KBR RETURN FRD SPACE 4,10 ** FRD - SET/CLEAR FLAW ON ROTATING MASS STORAGE DEVICE. * * *FRD* CONVERTS A PHYSICAL DISK ADDRESS INTO A LOGICAL TRACK * NUMBER AND THEN SETS OR CLEARS THE FLAW ON THAT TRACK. * * ENTRY (T3) = ADDRESS OF DEVICE DESCRIPTOR ENTRIES. * (T4) = 0, IF A FLAW IS TO BE SET. * 1, IF A FLAW IS TO BE CLEARED. FRD5 JMP ILL PROCESS INCORRECT ENTRY FRD LDM /EQP/TDDB+DVCO BASE CYLINDER FOR PARTITION ADM CYUN,T3 CHECK FOR VALID CYLINDER ADDRESS SBN 1 LMC 1LC RJM CTE SBM /EQP/TDDB+DVCO BASE CYLINDER FOR PARTITION MJN FRD5 IF CYLINDER NOT IN THIS PARTITION STD CM SAVE RELATIVE CYLINDER LDM CVNF,T3 ERRNZ SHNI-1000 CODE DEPENDS ON VALUE LMD TH STM FRDA SET PHYSICAL SECTOR CONVERSION LDC 1LT LMM TKCY,T3 CHECK FOR VALID TRACK ADDRESS RJM CTE STD CM+1 SAVE TRACK LDM PSPT,T3 LMC 1LS CHECK FOR A VALID SECTOR ADDRESS RJM CTE FRDA SHN 0 CONVERT PHYSICAL TO LOGICAL SECTOR STD AB+1 SHN -14 STD AB LCN 0 INITIALIZE LOGICAL TRACK CALCULATION STD AB+4 * MULTIPLY THE TRACK VALUE BY THE NUMBER OF LOGICAL * SECTORS PER PHYSICAL TRACK. FRD1 SOD CM+1 MJN FRD3 IF END OF CONVERSION LDM LSPT,T3 RAD AB+1 ADVANCE LOGICAL SECTOR COUNT SHN -14 RAD AB UJN FRD1 LOOP ON CONVERSION * MULTIPLY THE CYLINDER VALUE BY THE NUMBER OF LOGICAL * SECTORS PER CYLINDER. FRD2 LDM LSCY+1,T3 ADVANCE LOGICAL SECTOR COUNT RAD AB+1 SHN -14 ADM LSCY,T3 RAD AB FRD3 SOD CM PJN FRD2 IF NOT END OF CONVERSION * DIVIDE THE ACCUMULATED LOGICAL SECTOR COUNT BY THE * SUM OF (LOGICAL + GAP) SECTORS PER LOGICAL TRACK. FRD4 AOD AB+4 ADVANCE LOGICAL TRACK NUMBER LDN 0 SBM LSLT,T3 DIVIDE BY ITERATIVE SUBTRACTION RAD AB+1 PJN FRD4 IF NO UNDERFLOW AOD AB+1 SOD AB PJN FRD4 IF DIVISION INCOMPLETE RJM PTF PROCESS TRACK FLAW JMP KBR RETURN CTE SPACE 4,10 ** CTE - CHECK TRACK ENTRY. * * ENTRY (A) 12 - 17 = CHARACTER OF NEXT ENTRY. * (A) 0 - 11 = LIMIT FOR NUMBER. * (KA) = NEXT CHARACTER ADDRESS. * * CALLS AOD. CTE2 AOD KA SKIP PREFIX CHARACTER RJM AOD LDI KA CHECK SEPARATOR LMN 1R. ZJN CTE3 IF END OF ENTRY AOD KA CTE3 LDC * CHECK ASSEMBLY CTEA EQU *-1 SBD AB+4 MJN CTE1 IF OUT OF RANGE LDD AB+4 RETURN WITH ASSEMBLY CTE SUBR ENTRY/EXIT SBN 1 SET LIMIT STM CTEA SHN -14 CHECK NEXT CHARACTER LMI KA ZJN CTE2 IF PROPER CHARACTER CTE1 JMP ILL PROCESS INCORRECT ENTRY AJT SPACE 4,10 ** AJT - ADJUST TRT FOR UNUSED TRACKS. * * ENTRY (T7) = MST ADDRESS / 10B. * (T4) = 0 (SET FLAW REQUEST FOR *PTF*). * * USES AB+4, CN - CN+4. * * CALLS PTF. AJT SUBR ENTRY/EXIT LDD T7 READ *TDGL* SHN 3 ADK TDGL CRD CN LDD CN SET LAST TRACK STD AB+4 AJT1 LPN 3 ZJN AJTX IF END OF TRT RJM PTF PROCESS TRACK FLAW AOD CN+4 RESET TRACK COUNT LDD T7 RESTORE *TDGL* SHN 3 ADK TDGL CWD CN AOD AB+4 ADVANCE TRACK UJN AJT1 LOOP FOR NEXT TRACK CET SPACE 4,10 ** CET - CONVERT EXTENDED MEMORY ADDRESS TO TRACK NUMBER. * * ENTRY (AB+3 - AB+4) = EXTENDED MEMORY ADDRESS. * * EXIT (A) = (T3) = TRACK NUMBER. * * USES T1 - T3. CET2 JMP ILL ADDRESS TOO LARGE CET SUBR LDD AB+4 CETA SHN -3 * SHN -3-EMSC (EMSC = EXTENDED MEMORY SHIFT COUNT) STD T2 LDD AB+3 CHECK ASSEMBLY CETB SHN -11 * SHN -11-EMSC (EMSC = EXTENDED MEMORY SHIFT COUNT) NJN CET2 IF OUT OF RANGE LDD AB+3 CETC SHN 17 * SHN 17-EMSC (EMSC = EXTENDED MEMORY SHIFT COUNT) STD T1 SHN -6 RAD T2 LCN 0 CLEAR TRACK STD T3 CET1 AOD T3 LDC -202 RAD T2 PJN CET1 IF TRACK NOT FOUND AOD T2 SOD T1 PJN CET1 IF TRACK NOT FOUND LDD T3 UJN CETX RETURN PDF SPACE 4,10 ** PDF - PROCESS DISK FLAWS. * * USES EQ, T5, T7, CM - CM+4, CN - CN+4. * * CALLS ATD, IBF, RTD, SME, /EQP/STA. PDF9 LDC 0 PDFD EQU *-1 ZJN PDFX IF NO MORE FLAW DECKS TO PROCESS STM TTXC+APRD RJM RTD LOAD NEXT DECK LDN 0 STM PDFD UJN PDF1 FIND EQUIPMENT ENTRY TO MATCH APRDECK PDF SUBR ENTRY/EXIT PDF1 LDN NOPE-1 INITIALIZE EQUIPMENT SEARCH STD EQ PDF2 RJM SME ZJN PDF9 IF EST SCAN COMPLETE LDD AB+4 STD T7 SHN 3 ADN STLL CRD CM LDD CM CHECK FOR INITIALIZE SET LPC MLIAL ZJN PDF2 IF NOT INITIALIZED * PROCESS EXTENDED MEMORY. LDD AB+3 LMC 2RDE ZJN PDF3 IF EXTENDED MEMORY LMK 2RDP&2RDE NJP PDF5 IF NOT EXTENDED MEMORY PDF3 LDD AB+2 SHN -6 LPN 3 STD T0 LDC SHNI+77-3 SBD T0 STM CETA PRESET EXTENDED MEMORY SHIFTS SBN 6 STM CETB ADK 11+17-77 STM CETC LDD T0 NJN PDF4 IF NOT DEFAULT TRACK SIZE LDC CETK SET *CETK* TRACK FLAW STD AB+4 LDN 0 PROCESS TRACK FLAW STD T4 RJM PTF PDF4 LDK BIOL CHECK IF BUFFERED I/O PRESENT CRD CM LDD CM+1 ADD CM+2 ZJN PDF5 IF NO BUFFERED I/O DEFINED LDD T7 SHN 3 ADN DILL CRD CN LDD CN+3 CHECK FOR LCME LPN 70 LMN 20 NJN PDF5 IF NOT LCME LDC LCTK RESERVE 176/BUFFERED I/O TRACK STD AB+4 RJM PTF PROCESS TRACK FLAW PDF5 LDD EQ RJM /EQP/STA FETCH DEVICE PARAMETERS LDM /EQP/TDDB+DVAP STD CN+4 SAVE APRDECK NUMBER SBM TTXC+APRD NJN PDF6 IF NOT APRDECK MATCH LDD EQ STD T5 LDN RPSF RESET SECOND BUFFER RJM IBF LDD AB+3 SAVE EQUIPMENT MNEMONIC STM SPFA RJM ATD ASSEMBLE TEXT UJN PDF8 CHECK NEXT ORDINAL PDF6 MJN PDF8 IF SMALLER APRDECK NUMBER LDM PDFD ZJN PDF7 IF FIRST DECK ON THIS EST PASS LDD CN+4 FIND NEXT LARGEST APRDECK SBM PDFD PJN PDF8 IF NOT A SMALLER APRDECK NUMBER PDF7 LDD CN+4 SET NEXT DECK NUMBER STM PDFD PDF8 LJM PDF2 CHECK NEXT ORDINAL PTF SPACE 4,10 ** PTF - PROCESS TRACK FLAW. * * ENTRY (T4) = 0, IF SET FLAW REQUEST. * 1, IF CLEAR FLAW REQUEST. * (T7) = MST ADDRESS / 10B. * (AB+4) = TRACK NUMBER. * * EXIT (CA - CA+1) = TRT ADDRESS. * * USES T1 - T2, CM - CM+4, CN - CN+4. PTF SUBR ENTRY/EXIT LDD AB+4 UNPACK TRACK LPC 3777 SHN 21-1 SET WORD INDEX STD T1 SHN 1-21 SET BYTE INDEX ADN CM STD T2 LMC SHNI+77-CM FORM SHIFT INSTRUCTION STM PTFA STM PTFB LDD T7 READ MST TRACK COUNT SHN 3 ADK TDGL CRD CN ADN TRLL-TDGL CRD CM LDD CM+3 SET TRT ADDRESS LPN 77 STD CA SHN 14 READ TRT WORD LMD CM+4 STD CA+1 ADD T1 CRD CM LDD CN+2 CHECK TRACK SHN 2 SBD T1 SBN 1 PJN PTF1 IF TRACK WITHIN TRT JMP ILL PROCESS INCORRECT ENTRY PTF1 LDD T4 ZJN PTF4 IF SET FLAW OPTION LDI T2 ZJN PTF3 IF TRACK NOT RESERVED AOD CN+4 INCREMENT AVAILABLE TRACK COUNT LDN 10 RESERVE TRACK PTFA SHN -** LMD CM+4 CLEAR RESERVATION STD CM+4 LDN 0 CLEAR BYTE PTF3 STI T2 LDD T7 UPDATE TRACK COUNT IN MST SHN 3 ADK TDGL CWD CN LDD CA STORE TRT WORD SHN 14 LMD CA+1 ADD T1 CWD CM LJM PTFX RETURN PTF4 LDN 10 PTFB SHN -** STD T0 LMC 7777 STM PTFC LDD CM+4 SET TRACK RESERVATION LPC 0 PTFC EQU *-1 LMD T0 STD CM+4 LDI T2 NJN PTF5 IF TRACK ALREADY FLAWED SOD CN+4 DECREMENT TRACK COUNT PTF5 LDC 3777 UJN PTF3 SET TRACK BYTE PTL SPACE 4,10 ** PTL - PROCESS TRT LENGTH. * * USES EQ, T4, T7, CM - CM+4. * * CALLS AJT, SME. PTL1 LDD AB+4 SET MST POINTER STD T7 SHN 3 ADN STLL CRD CM LDD CM CHECK FOR INITIALIZE SET LPC MLIAL ZJN PTL2 IF INITIALIZE NOT SET RJM AJT PTL2 RJM SME NJN PTL1 IF NOT END OF EST PTL SUBR ENTRY/EXIT LDN 0 STD T4 SELECT SET FLAW PROCESSING STD EQ UJN PTL2 CHECK TRT LENGTHS TITLE SUBROUTINES. AODSUB ASDSUB CDRSUB CMC SPACE 4,10 ** CMC - CHECK MACHINE CONFIGURATION. * * ENTRY (EP) = EST ADDRESS. * (LD) = LINK DEVICE DEFINITION. * * USES AB - AB+4, CM - CM+4, T1 - T7. CMC SUBR ENTRY/EXIT LDD LD LPC 777 ZJN CMCX IF NOT MMF ENVIRONMENT SFA EST CRD CM READ EST ENTRY FOR LINK DEVICE LDN ZERL CRD T0 CRD AB LCN 0 INITIALIZE FLAG REGISTER STATUS STD AB+3 LDD CM+4 GET MST STATUS WORD SHN 3 ADN STLL CRD CM ADN TRLL-STLL FETCH TRT ADDRESS CRD T7-4 LDD CM EXTRACT INITIALIZE FLAG SHN -6 LPN 20 RAD AB+2 LDM PRSF CHECK PRESET STATUS ZJN CMC7 IF PRESET NOT SPECIFIED LDN 40 SET *PRESET* SELECTED RAD AB+2 UJN CMC7 FIND POTENTIAL LABEL TRACK CMC4 LDC =C*LINK DEVICE LABEL TRACK ERROR.* LJM DSE GO DISPLAY ERROR * LOCATE FIRST AVAILABLE TRACK AS POSSIBLE LABEL TRACK. CMC6 AOD T1 ADVANCE TRT INDEX SHN 2 SBN LTKL-4000 PJN CMC4 IF AT LABEL TRACK LIMIT CMC7 LDD T6 LPN 77 SHN 14 READ TRT WORD LMD T7 ADD T1 CRD CM LDD CM+4 CHECK FOR UNASSIGNED TRACK LPN 17 LMN 17 ZJN CMC6 IF THESE 4 TRACKS RESERVED LMN 17 SHN 13-3 STD T2 LDN 0 INITIALIZE BYTE INDEX STD T0 CMC8 RAD T0 ADVANCE BYTE INDEX LDD T2 CHECK NEXT TRACK SHN 1 STD T2 SHN -14 NJN CMC8 IF TRACK RESERVED LDD T1 FORM TRACK NUMBER LMD TH SHN 2 LMD T0 CMC9 STD AB+4 LDC EFRL STORE STATUS FOR *CPUMTR*/*MTE* CWD AB LJM CMCX RETURN ECT SPACE 4,10 ** ECT - DEFINE *EICB* TABLES. * * USES AB - AB+4, CA - CA+1, CM - CM+4, CN - CN+4. * * CALLS DFO, DML. ECT SUBR ENTRY/EXIT LDM C8XX NJN ECTX IF NOT LOWER 800 SERIES MAINFRAME CRD CN CRD AB LDK EIBP READ *EICB* POINTER WORD CRD CM LDM VEMZ SET WORD *D7CM* LPN 7 SHN 14 ADM VEMZ+1 SHN -3 FORM BLOCK SIZE/1000B STD CN+4 LDM VEMZ SHN -3 STD CN+3 LDM /EQP/MCMS FORM MINCM/1000 SHN 14 LMM /EQP/MCMS+1 ADN 7 SHN -3 STD CN+2 SHN -14 STD CN+1 LDD MZ SET WORD *D7CM+1* LPN 7 SHN 14 LMD MZ+1 ADN 7 SHN -3 STD AB+2 STD AB+4 SHN -14 STD CM LDD MZ SHN -3 ADD CM STD AB+1 STD AB+3 LDD CM+3 WRITE WORD *D7TY* SHN 14 LMD CM+4 ADK D7TY CWM ECTA,ON ADN D7CM-D7TY-1 WRITE WORD *D7CM CWD CN ADN 1 WRITE WORD *D7CM+1* CWD AB ADN DSCBL-D7CM-1 SAVE DFT/OS BUFFER FWA STD CA+1 SHN -14 STD CA RJM DML DEFINE *MLST* BUFFER RJM DFO DEFINE DFT/OS BUFFER LJM ECTX RETURN ECTA BSS 0 WORD *D7TY* VFD 6/0 RESERVED VFD 18/DTEL DATE WORD ADDRESS VFD 18/TIML TIME WORD ADDRESS VFD 6/1 OS TYPE VFD 6/5 *EICB* INTERFACE VERSION VFD 6/1 INTERFACE LEVEL DML SPACE 4,10 ** DML - DEFINE *MLST* BUFFER. * * ENTRY (CA - CA+1) = FWA OF *MLST* BUFFER IF VE DEFINED. * (CM+3 - CM+4) = *EICB* POINTER. * * EXIT (CA - CA+1) ADVANCED. * * USES CN - CN+4. DML SUBR ENTRY/EXIT LDN ZERL CLEAR FOR *MLST* POINTER CRD CN LDC 4000 STD CN LDM VEFL ZJN DML1 IF NOS/VE NOT DEFINED LDD CA SHN 14 LMD CA+1 *MLST* ADDRESS (BITS 35-17 OF *D7ST*) SHN 14 STD CN+2 LDD CA+1 SHN 6 LMM .MLS+MTBL *MLST* SIZE STD CN+3 LPN 77 RAD CA+1 ADVANCE PAST *MLST* SHN -14 RAD CA DML1 LDD CM+3 WRITE STATUS AND *MLST* POINTER SHN 14 LMD CM+4 ADN D7ST CWD CN UJP DMLX RETURN DFO SPACE 4,10 ** DFO - DEFINE *DFT/OS* BUFFER. * * ENTRY (CA - CA+1) = FWA OF *DFT/OS* BUFFER. * (CM+3 - CM+4) = *EICB* POINTER WORD. * (DFTA) = *DFT* ALLOCATION DATA. * * EXIT *DFT/OS* BUFFER INITIALIZED. * * USES AB - AB+4, CM - CM+1, CN - CN+4, T1 - T6. * BUILD *DFT/OS* INTERFACE HANDOFF FOR VERSION 4 AND ABOVE. * * NOTE - THE *DFT/OS* BUFFER CANNOT START ON THE LAST WORD OF * A SECTOR. THIS IS TO ENSURE A NON-ZERO VALUE FOR THE * *OFFSET* FIELD OF THE *DFT/OS* BUFFER POINTER WORD IN THE * *EICB*. THIS POINTER POINTS TO THE *DFT* CONTROL WORD, * WHICH IS THE SECOND WORD OF THE BUFFER. DFO10 LDM DFTV DETERMINE LOWEST *DFT* LEVEL SBN DIRL-3 CURRENT OS *DFT* LEVEL MJN DFO10.1 IF OS IS NOT LOWEST LEVEL LDN 0 DFO10.1 ADN DIRL RESTORE LEVEL NUMBER SHN 4 STD CN+1 SET LEVEL FOR *DFT* LDM DFSZ SAVE TOTAL SIZE FROM DESCRIPTOR STD AB+4 STD T3 LDM DFTA+1 SAVE DEDICATED MODE FLAG SHN 0-13 LMN 1 STD T6 ZJN DFO11 IF DEDICATED *DFT* LDN 24 SET *C* AND *D* FLAGS IN CONTROL WORD DFO11 LMN 10 SET *L* FLAG STD CN+4 AOD CA+1 ENSURE *DFT/OS* BUFFER STARTS ON EVEN WORD SCN 1 STD CA+1 SHN -14 RAD CA LDD CA CONSTRUCT POINTER TO *DFT/OS* BUFFER STD CM SHN 14 LMD CA+1 STD CM+1 CWD AB WRITE TOTAL SIZE TO FIRST WORD ADN 1 ADVANCE POINTER TO CONTROL WORD CWD CN WRITE *DFT* CONTROL WORD STD T1 SAVE OFFSET SHN -6 SHN 4 STD AB+3 R-LOWER SHN -14 STD AB+2 R-UPPER LDD T1 LPN 77 STD AB OFFSET * WRITE THE *PPR* SAVE AREA POINTER AND THE NOS OS REQUEST * HEADER POINTER TO THE *DFT/OS* HANDOFF INTERFACE. ALSO * WRITE THE NOS REQUEST HEADER WORD. LDN 0 CLEAR *DFT* LEVEL FIELD STD CN+1 LDN 2 SET ADDRESS OF POINTER WORD TO WRITE RAD CA+1 SHN -14 RAD CA LDD T6 ZJN DFO12 IF DEDICATED *DFT* LDK DFPSL SIZE OF *PPR* SAVE AREA STD T6 STD CN+4 DFO12 RJM PWP WRITE *PPR* SAVE AREA POINTER LDD T6 SET OFFSET TO NOS REQUEST HEADER RAD T3 SHN -14 RAD T2 LDN 1 SET NUMBER OF NOS REQUEST BUFFERS STD CN+4 RJM PWP WRITE NOS REQUEST HEADER POINTER LDD T3 SET ADDRESS OF NOS REQUEST HEADER ADD CM+1 STD CA+1 SHN -14 ADD T2 ADD CM STD CA AOD T3 SET OFFSET TO NOS REQUEST AREA SHN -14 RAD T2 LDN STIN SET STATUS = *INACTIVE* STD CN+4 LDN 1 INSURE POINTER WRITTEN RJM PWP WRITE NOS REQUEST HEADER WORD * CALCULATE TOTAL SIZE OF THE *DFT/OS* BUFFER. LDM DFSZ GET SIZE FROM DESCRIPTOR ADK RQBL+1 ADD NOS REQUEST AREA SIZE ADD T6 ADD *PPR* SAVE AREA SIZE STD AB+4 SHN -14 RAD AB+3 LDD CM+3 WRITE *DFT/OS* POINTER WITH TOTAL SIZE SHN 14 LMD CM+4 ADK DSCM+3 CWD AB * COPY THE *PPR* SAVE AREA POINTER AND THE NOS REQUEST * HEADER POINTER TO THEIR PROPER POSITIONS. THIS IS REQUIRED * FOR *MTR* PRESET AND *1MB*, WHICH NEED THEM PRIOR TO *DFT* * BUILDING THE COMPLETE *DFT/OS* BUFFER. LDD CM SHN 14 LMD CM+1 ADN 2 CRD CN READ *PPR* SAVE AREA POINTER ADN 1 CRD AB READ NOS REQUEST HEADER POINTER ADN 3 CWD CN WRITE *PPR* SAVE AREA POINTER ADN 1 CWD AB WRITE NOS REQUEST HEADER POINTER DFO SUBR ENTRY/EXIT LDN ZERL CLEAR ASSEMBLY BUFFER CRD CN CRD AB CRD T1 LDM DFTV NJP DFO10 IF NOT *DFT* VERSION 3 * CONSTRUCT *DFT/OS* BUFFER FOR *DFT* VERSION 3. LDD CA SHN 14 LMD CA+1 STD T1 SAVE OFFSET SHN -6 SHN 4 STD AB+3 R-LOWER SHN -14 STD AB+2 R-UPPER LDD T1 LPN 77 STD AB LDN DFHL SET NUMBER OF HEADER WORDS SHN 14-4 STD CN LDN 3*20 SET *DFT* REVISION LEVEL TO 3 STD CN+1 LDM DFTA GET MAINTENANCE REGISTER BUFFER DATA STD T1 SHN -6 STD T5 SAVE NUMBER OF BUFFERS SHN 4 STD CN+3 SET *NBUF* IN *DFT* CONTROL WORD LDD T1 LPN 77 STD CN+2 SET *LBUF* IN *DFT* CONTROL WORD STD T4 LDM DFTA+1 CHECK DEDICATED FLAG STD T1 SHN -13 NJN DFO1 IF DEDICATED DFT LDN 24 SET *C* AND *D* FLAGS IN CONTROL WORD STD CN+4 DFO1 LDN 10 SET *L* FLAG RAD CN+4 LDD CA WRITE *DFT* CONTROL WORD STD CM SHN 14 LMD CA+1 STD CM+1 CWD CN AOD CA+1 ADVANCE ADDRESS SHN -14 RAD CA LDN ZERL CLEAR ASSEMBLY BUFFER CRD CN LDD T1 SHN 0-12 LPN 1 ZJN DFO2 IF NOT 990 LDM .CPU+1 CHECK FOR DUAL CPU CYBER 990 LPN 2 ZJN DFO1.1 IF CPU-1 *OFF* OR NOT PRESENT LDC -M9DB REDUCE BUFFER FOR SINGLE CPU CYBER 990 DFO1.1 ADC M9DB*2 SET MODEL DEPENDENT BUFFER SIZE DFO2 STD T6 * WRITE POINTER WORDS. LDN SIDL LENGTH OF SECDED ID TABLE STD CN+4 LDN DFHL+MECB HEADER + COUNTER BUFFER SIZE ADD T5 M/R BUFFER COUNT +1 STD T3 RJM PWP WRITE SECDED ID TABLE POINTER LDD T1 LENGTH OF M/R BUFFERS LPC 1777 STD T1 STD CN+4 LDN SIDL OFFSET OF M/R BUFFERS RAD T3 RJM PWP WRITE M/R BUFFER POINTER LDD T1 OFFSET OF MODEL DEPENDENT BUFFER RAD T3 LDD T6 MODEL DEPENDENT BUFFER SIZE ZJN DFO3 IF NOT 990 STD CN+4 LDD T3 DFO3 RJM PWP WRITE MODEL DEPENDENT BUFFER POINTER LDN 0 RJM PWP WRITE NOS/VE BUFFER POINTER LDC DFPSL LENGTH OF PP RESIDENT SAVE AREA STD CN+4 STD T7 SAVE LENGTH OF PP RESIDENT SAVE AREA LDD T6 OFFSET OF NEXT ELEMENT RAD T3 LDM DFTA+1 SHN 21-13 MJN DFO4 IF DEDICATED DFT LDD T3 UJN DFO5 WRITE POINTER DFO4 LDN 0 STD T7 CLEAR LENGTH OF PP RESIDENT SAVE AREA DFO5 RJM PWP WRITE PP RESIDENT POINTER LDD T7 OFFSET OF NOS REQUEST AREA POINTER RAD T3 LDN 1 NUMBER OF NOS REQUEST BUFFERS STD CN+4 RJM PWP WRITE NOS REQUEST AREA POINTER AOD T3 * CALCULATE TOTAL LENGTH OF DFT/OS BUFFER. LDK MECB+SIDL MAINFRAME ELEMENT COUNTERS, SECDED ADD T1 M/R BUFFER SIZE ADD T6 MODEL DEPENDENT BUFFER SIZE ADD T7 PP RESIDENT SAVE AREA STD T0 SAVE POINTER OFFSET ADD T5 M/R CONTROL WORDS ADN DFHL+RQBL+1 CONTROL WORD, POINTERS, NOS REQUEST AREA STD AB+4 LDD CM+3 WRITE DFT/OS POINTER = SIZE SHN 14 LMD CM+4 ADN DSCM+3 CWD AB * ADD OFFSET FIELD TO BUFFER CONTROL WORDS. LDN ZERL CRD CN DFO6 SOD T5 ZJN DFO7 IF NO MORE CONTROL WORDS TO PROCESS LDD T4 RAD CN+4 LDD CA SHN 14 LMD CA+1 ADN 1 ADVANCE ADDRESS CWD CN STD CA+1 SHN -14 STD CA UJN DFO6 PROCESS NEXT ENTRY * POST REQUEST TO *DFT* TO UPDATE ERROR THRESHOLDS. DFO7 AOD T0 ADVANCE TO NOS REQUEST HEADER RAD CA+1 SHN -14 RAD CA LDM .CPU CHECK CPU CONFIGURATION LPN 2 ZJN DFO8 IF CPU-1 PRESENT LDN ZERL CLEAR THRESHOLDS FOR CPU-1 CRM DFOB,ON DFO8 LDN STRY SET STATUS = *READY* STD CN+4 RJM PWP WRITE NOS REQUEST HEADER LDN DFOAL/5 SET WORD COUNT STD CN LDD CA WRITE THRESHOLD REQUEST TO BUFFER SHN 14 LMD CA+1 CWM DFOA,CN LJM DFOX RETURN * *DFT* THRESHOLD REQUEST INFORMATION. DFOA VFD 4/,8/RQTH,8/0,8/7,8/0,8/0,8/THCI,8/THUE IOU VFD 4/,8/RQTH,8/0,8/7,8/1,8/0,8/THCM,8/THUE MEMORY VFD 4/,8/RQTH,8/0,8/7,8/2,8/0,8/THCP,8/THUE CPU-0 DFOB VFD 4/,8/RQTH,8/0,8/7,8/2,8/1,8/THCP,8/THUE CPU-1 VFD 60/0 TERMINATOR DFOAL EQU *-DFOA LENGTH OF THRESHOLD DATA (PP WORDS) PWP SPACE 4,10 ** PWP - POSITION AND WRITE POINTER. * * ENTRY (A) = 0 IF A ZERO POINTER WORD IS TO BE WRITTEN. * (T2 - T3) = OFFSET FROM FWA OF THE DFT/OS BUFFER OF * THE BUFFER FOR WHICH THE POINTER IS TO * BE WRITTEN. * (CN+4) = LENGTH OF BUFFER FOR WHICH POINTER IS TO * BE WRIITEN. * (CM - CM+1) = FWA OF DFT/OS BUFFER. * (CA - CA+1) = ADDRESS TO WRITE. * * EXIT (CA - CA+1) ADVANCED. * * USES CN - CN+4. PWP1 LDN ZERL CLEAR POINTER CRD CN PWP2 LDD CA ADVANCE POINTER WORD SHN 14 LMD CA+1 CWD CN WRITE POINTER WORD AOD CA+1 ADVANCE ADDRESS SHN -14 RAD CA PWP SUBR ENTRY/EXIT ZJN PWP1 IF ZERO WORD TO BE WRITTEN LDD CM ADD T2 SHN 14 LMD CM+1 ADD T3 ADDRESS OF POINTER WORD STD CN SAVE OFFSET SHN -6 SHN 4 STD CN+3 SAVE R-LOWER SHN -14 STD CN+2 LDD CN OFFSET LPN 77 STD CN UJN PWP2 WRITE AND ADVANCE POINTER WORD TITLE BUILD SAB TABLE. BVS SPACE 4,10 ** BVS - BUILD VARIABLE SIZE SYSTEM ATTRIBUTE BLOCK. * * USES KB, CM - CM+4, CN - CN+4, T1 - T7. * * CALLS APM, CDS, CMN, GPD, IAF, PRS, SDA. * * MACROS CHKAPE. BVS SUBR ENTRY/EXIT LDM .APP MODIFY *APP* CHANNEL INSTRUCTIONS RJM PRS LDK TSABL LENGTH OF SAB BLOCK STD T6 BVS1 LDN 0 CLEAR SAB BLOCK STM TSAB-1,T6 SOD T6 NJN BVS1 IF NOT FINISHED LDK TEABL STD T7 BVS2 LDN 0 CLEAR EABL BLOCK STM TEAB-1,T7 SOD T7 NJN BVS2 IF NOT FINISHED LDK SABL CRD CN LDD CN+2 SET ELEMENT DESCRIPTOR BLOCK LENGTH STM TEAB+5*MFEI+3 * LDN 0 INITIALIZE INDICES * STD T6 *TSAB* INDEX * STD T7 *EABL* INDEX * BUILD MAINFRAME DESCRIPTOR. LDC MEBF+2 FETCH EI SPECIFICATION CRM DBUF+5,ON LDN MFDS REQUEST MAINFRAME DESCRIPTOR RJM IAF STM DBUF+4 LDD HO SET HARDWARE OPTIONS STM DBUF+OPTN LDN MFEI*5 SET MAINFRAME DESCRIPTOR ADDRESS RJM SDA LDN MFDSL COPY DESCRIPTOR TO SAB RJM CDS LDM TSAB+HDID LPN 77 LMC MFDWL*100B APPEND DESCRIPTOR LENGTH TO HEADER STM TSAB+HDID BVS3 RJM CMN CALCULATE MODEL NUMBERS * PROCESSOR DESCRIPTOR(S). LDN CPEI*5 SET CPU 0 DESCRIPTOR ADDRESS RJM SDA LDN 0 GENERATE CPU 0 DESCRIPTOR STD T5 RJM GPD LDM .CPU CHECK CPU STATUS LPN 2 NJN BVS4 IF CPU 1 NOT PRESENT LCN 5*CPEI+2 SET CPU 1 DESCRIPTOR ADDRESS RJM SDA AOD T5 GENERATE CPU 1 DESCRIPTOR RJM GPD * CENTRAL MEMORY DESCRIPTOR. BVS4 LDN CMDS REQUEST CM DESCRIPTOR RJM IAF LDN CMEI*5 SET CM DESCRIPTOR ADDRESS RJM SDA LDM DBUF+MCTC SET CONNECT CODE STM TEAB+5*CMEI+3 LDM DBUF+HDID LPN 77 LMC CMDWL*100B APPEND DESCRIPTOR LENGTH TO HEADER STM DBUF+HDID LDD T6 ADC TSAB+2*5-2 LOCATION OF *CTI CM DIRECTORY* POINTER STD KB LDM C8XX ZJN BVS5 IF C180 MAINFRAME LDD CM+2 SHN 4 SET MEMORY MODEL NUMBER STM DBUF+HDMN BVS5 LDN CMDSL COPY DESCRIPTOR TO SAB RJM CDS * IOU DESCRIPTOR. LDN IUDS REQUEST IOU DESCRIPTOR RJM IAF LDM .PPL GET CTI/SET PP00 - PP11 OFF DATA STM DBUF+LPP0 UPDATE *SAB* TABLE LDM .PPL+1 GET CTI/SET PP20 - PP31 OFF DATA STM DBUF+LPP1 UPDATE *SAB* TABLE LDM DBUF+HDID LPN 77 ADC IUDWL*100B APPEND DESCRIPTOR LENGTH TO HEADER STM DBUF+HDID LDM DBUF+MCTC SET CONNECT CODE STM TEAB+5*IOEI+3 LDN IOEI*5 SET IOU DESCRIPTOR ADDRESS RJM SDA LDM C8XX ZJN BVS6 IF C180 MAINFRAME LDD CM+3 SHN 4 SET I/O SUBSYSTEM MODEL NUMBER STM DBUF+HDMN BVS6 LDN IUDSL COPY DESCRIPTOR TO SAB RJM CDS LDM C8XX NJN BVS7 IF NOT CYBER 800 TYPE MAINFRAME * CONSOLE DESCRIPTOR. LDN CIDS REQUEST CONSOLE DESCRIPTOR RJM IAF LDM DBUF+HDID LPN 77 LMD HN APPEND DESCRIPTOR LENGTH TO HEADER STM DBUF+HDID LCN 5*DCEI+2 SET DISPLAY CONSOLE DESCRIPTOR ADDRESS RJM SDA LDN CIDSL COPY DESCRIPTOR TO SAB RJM CDS BVS7 LDD HO SHN 21-11 PJN BVS8 IF NOT CYBER 176 * FLPP DESCRIPTOR. LDN FLPS REQUEST FLPP DESCRIPTOR RJM IAF LDM DBUF+HDID LPN 77 LMD HN APPEND DESCRIPTOR LENGTH TO HEADER STM DBUF+HDID LDN FLPSL COPY DESCRIPTOR TO SAB RJM CDS * SET ISD SUBSYSTEM STATUS. BVS8 LDN CFGL CRD CM LDM ISPF SHN 21-13 MJN BVS9 IF NOT CYBER 810/815/825/830 ZJN BVS9 IF ISD SUBSYSTEM NOT PRESENT LDD TH SET ISD SUBSYSTEM PRESENT RAD CM+3 BVS9 LDN CFGL CWD CM * EXTENDED MEMORY DESCRIPTOR. LDD EN NJN BVS10 IF CPU ACCESS EQUIPMENT DEFINED LDM UEMZ ADM UEMZ+1 ZJP BVS13 IF NO USER EXTENDED MEMORY DEFINED LDC 440 SET FLAGS / MEMORY TYPE / PATH TYPE UJN BVS12 COMPLETE DESCRIPTOR BVS10 SFA EST ADK EQDE CRD CM LDD CM+4 GET EM TYPE PARAMETERS SHN 3 ADN DILL CRD CM LDD CM+3 SET MAINTENANCE MODE FLAG SHN 0-11 LPN 1 LMN 1 SHN 10-0 RAM BVSA LDD CM+3 SET EXTENDED ADDRESSING FLAG LPN 70 LMN 30 NJN BVS11 IF NOT EXTENDED ADDRESSING LDD HN RAM BVSA BVS11 LDD CM+3 SET PP PATH TYPE AND MEMORY TYPE LPN 77 LMC 200 BVSA EQU *-1 BVS12 STM DBUF+1 LDN ECRL CRD CM LDM UESC PRESET SHIFT INSTRUCTIONS RAM BVSB LDM EMSC RAM BVSC LDD CM+1 SET USER XM / 1000 BVSB SHN 14 * SHN 14+UESC STM DBUF+2 SHN -6 SCN 7 STM DBUF+3 LDM EMFL SET TOTAL XM / 1000 BVSC SHN 0 * SHN EMSC STM DBUF+4 SHN -14 RAM DBUF+3 LDC 1S6+77 SET LENGTH AND ID STM DBUF+HDID LCN 5*CMEI+2 SET EXTENDED MEMORY DESCRIPTOR ADDRESS RJM SDA LDN 5 COPY DESCRIPTOR TO SAB RJM CDS * COPY *EABL* INTO PLACE. BVS13 LDK EABLL LENGTH OF TABLE STD T3 LDK EABL CM ADDRESS CWM TEAB,T3 * COPY SAB INTO PLACE. LDD CN SHN 14 LMD CN+1 CWM TSAB,CN+2 * SUSPEND ALTERNATE PP. LDK RPCS*10000+DSCL REMOVE PP FROM CHANNEL RJM APM CHKAPE CHECK ALTERNATE PP ERROR * UPDATE *EI* COMMUNICATION BLOCK. LDC EIBP FETCH *EI* BLOCK POINTER CRD CN ADN SCDP-EIBP GET FWA OF *SCDPT* CRD T4 LDN 0 STD CM+4 CRD T1 LDM 4,KB GET OFFSET OF *CTI CM DIRECTORY* STD CM LDM 3,KB GET R-LOWER SHN 4 STD CM+3 SHN -14 SHN 12 ADM 2,KB ADD R-UPPER SHN 10 STD CM+2 SHN -14 STD CM+1 LDD CN+3 SHN 14 LMD CN+4 ZJP BVSX IF NOT DUAL STATE MAINFRAME ADN D7RS+2 CWD T3 ADN DSCM+2-D7RS-2 WRITE *DSCM+2* CWD CM LDN 0 SET UP WORD *D7RS* CRD CM LDM MDDP LPN 10 SHN 13-3 SET *MDD* ACTIVE STATUS STD CM+1 BVS14 LDM .DCS ZJN BVS15 IF NOT 721 CONSOLE LDC 1S10 SET NOS *SCD* ACTIVE RAD CM+1 BVS15 LDC PSAL SET PP RESIDENT SAVE LENGTH STD CM+2 LDM SPSA SET SAVE AREA FWA STD CM+3 LDM SPSA+1 STD CM+4 LDD CN+3 WRITE *D7RS* SHN 14 LMD CN+4 ADN D7RS CWD CM BVS16 LJM BVSX RETURN CDS SPACE 4,10 ** CDS - COPY DATA TO SAB BLOCK. * * ENTRY (A) = LENGTH OF DATA. * (T6) = CURRENT DATA BYTE INDEX. * (T7) = CURRENT DATA WORD INDEX. * * EXIT (T6) = (T6) + (A) ON ENTRY, ROUNDED TO WORD BOUNDARY. * (T7) = (T6)/5. * * USES T3, T4. CDS SUBR ENTRY/EXIT STD T4 SAVE ENTRY LDN 0 INITIALIZE INDEX STD T3 CDS1 LDM DBUF,T3 MOVE DATA STM TSAB,T6 AOD T6 INCREMENT POINTER AOD T3 INCREMENT INDEX SOD T4 DECREMENT COUNTER NJN CDS1 IF MORE DATA TO MOVE CDS2 AOD T7 INCREMENT WORD INDEX LCN 5 RAD T3 ZJN CDSX IF ALL DATA ACCOUNTED FOR PJN CDS2 IF MORE DATA LMC -0 ACCOUNT FOR A PARTIAL LAST WORD RAD T6 UJN CDSX RETURN CMN SPACE 4,10 ** CMN - CALCULATE MODEL NUMBERS (NON C180 MAINFRAMES). * * ENTRY (HO) = HARDWARE OPTIONS. * * EXIT (CM) = CPU 0 MODEL NUMBER. * (CM+1) = CPU 1 MODEL NUMBER. * (CM+2) = MEMORY MODEL NUMBER. * (CM+3) = I/O SUBSYSTEM MODEL NUMBER. * * USES T1, T2. CMN13 STD T1 SAVE MODEL INDICES SHN -10 STD T2 LDM PMVT,T2 SET CPU 0 MODEL NUMBER STD CM LDM PMVT,CM+1 SET CPU 1 MODEL NUMBER STD CM+1 LDD T1 EXTRACT MEMORY TYPE INDEX SHN -4 LPN 17 STD T2 LDM MMVT,T2 SET MEMORY MODEL NUMBER STD CM+2 LDD T1 EXTRACT I/O SUBSYSTEM TYPE INDEX LPN 17 STD T2 LDM IMVT,T2 SET I/O SUBSYSTEM MODEL NUMBER STD CM+3 CMN SUBR ENTRY/EXIT LDM C8XX ZJN CMNX IF C180 MAINFRAME CRD CM LDD HO CHECK HARDWARE OPTIONS SHN 21-11 PJN CMN4 IF NOT C176 * PROCESS CYBER 176 SERIES MAINFRAME. LDC PMVF*400+MMVE*20+IMVD JMP CMN13 SET MODEL INDICES * PROCESS CYBER 170-865/875 SERIES MAINFRAME. CMN1 SHN 13-1 MJN CMN2 IF SECOND CPU NOT PRESENT LDN PMVI STD CM+1 CMN2 LDD HO EXTRACT 875 TYPE FLAG LPN 4 SHN 4-2 ERRNZ MMVH+1-MMVI CODE DEPENDS ON VALUE ADC PMVI*400+MMVH*20+IMVF JMP CMN13 SET MODEL INDICES * PROCESS CYBER 700 SERIES MAINFRAME. CMN4 SHN 11-10 MJN CMN7 IF NOT MODEL D PPS SHN 11+21-13 PJN CMN1 IF C170-865/875 SHN 13-1 MJN CMN5 IF SECOND CPU NOT PRESENT LDN PMVG STD CM+1 CMN5 LDD HO CHECK HARDWARE OPTIONS LPN 20 ZJN CMN6 IF CPU 0 HAS STACK LDC PMVG*400+MMVF*20-PMVH*400-MMVG*20 CMN6 ADC PMVH*400+MMVG*20+IMVE JMP CMN13 SET MODEL INDICES CMN7 SHN 10-6 MJN CMN9 IF S/C REGISTER NOT PRESENT * PROCESS CYBER 170 SERIES MAINFRAME. SHN 6-1 MJN CMN8 IF SECOND CPU NOT PRESENT LDN PMVD STD CM+1 CMN8 LDD HO EXTRACT STACK CPU STATUS LPN 20 LMN 20 SHN 10-4 ERRNZ PMVD+1-PMVE CODE DEPENDS ON VALUE ADC PMVD*400+MMVE*20+IMVD JMP CMN13 SET MODEL INDICES CMN9 SHN 7+21-7 MJN CMN11 IF I/L REGISTER NOT PRESENT * PROCESS CYBER 70 SERIES MAINFRAME. SHN 7-1 MJN CMN10 IF SECOND CPU NOT PRESENT LDN PMVA STD CM+1 CMN10 LDD HO EXTRACT STACK CPU STATUS LPN 20 LMN 20 SHN 10-4 ERRNZ PMVA+1-PMVB CODE DEPENDS ON VALUE ADC PMVA*400+MMVC*20+IMVC JMP CMN13 SET MODEL INDICES * PROCESS 6000 SERIES MAINFRAME. CMN11 SHN 7-1 MJN CMN12 IF SECOND CPU NOT PRESENT LDN PMVA STD CM+1 CMN12 LDD HO EXTRACT STACK CPU STATUS LPN 20 LMN 20 SHN 10-4 ERRNZ PMVA+1-PMVB CODE DEPENDS ON VALUE ADC PMVA*400+MMVA*20+IMVA JMP CMN13 SET MODEL INDICES PMVT BSS 0 PROCESSOR MODEL TABLE LOC 0 CON 0 UNDEFINED PMVA CON 2 6200, 6400, C71, C72, C73 PMVB CON 3 6600, C74 PMVD CON 22D C171ABC, C172ABC, C173ABC, C174ABC PMVE CON 25D C175ABC PMVF CON 42D C176AB PMVG CON 52D C720, C730 PMVH CON 54D C740, C750, C760 PMVI CON 55D C865, C875 LOC *O MMVT BSS 0 MEMORY MODEL TABLE LOC 0 CON 0 UNDEFINED MMVA CON 102D 6200, 6400, 6600 MMVC CON 113D C71, C72, C73, C74 MMVE CON 123D C171ABC - C175ABC, C176AB MMVF CON 152D C720, C730 MMVG CON 154D C740, C750, C760 MMVH CON 155D C865 MMVI CON 156D C875 LOC *O IMVT BSS 0 I/O SUBSYSTEM MODEL TABLE LOC 0 CON 0 UNDEFINED IMVA CON 202D 6200, 6400, 6600 IMVC CON 213D C71, C72, C73, C74 IMVD CON 223D C171ABC - C175ABC, C176AB IMVE CON 252D C720 - C760 IMVF CON 255D C865, C875 LOC *O GPD SPACE 4,10 ** GPD - GENERATE PROCESSOR DESCRIPTOR. * * ENTRY (A) = (T5) = PROCESSOR NUMBER. * (T6) = TSAB INDEX. * (T7) = SAB INDEX. * * EXIT (T6) = INDEX ADVANCED. * (T7) = INDEX ADVANCED. * * CALLS CDS, IAF. GPD SUBR ENTRY/EXIT STM MBUF LDN CPDS REQUEST CPU DESCRIPTOR RJM IAF LDM DBUF+5*1+4 MOVE MICROCODE LOADED FLAG STM DBUF+5*3+4 LDN 0 CLEAR UNUSED BYTES STM DBUF+5*1+4 STM DBUF+5*2+4 LDM DBUF+MCTC SET CONNECT CODE STM TEAB+5*CPEI+3,T5 LDM DBUF+HDID LPN 77 LMC CPDWL*100B APPEND DESCRIPTOR LENGTH TO HEADER STM DBUF+HDID LDM C8XX ZJN GPD1 IF C180 MAINFRAME LDM CM,T5 SHN 4 SET CPU MODEL NUMBER STM DBUF+HDMN GPD1 LDN 4*5 COPY DESCRIPTOR TO SAB RJM CDS UJP GPDX RETURN IAF SPACE 4,10 ** IAF - ISSUE FUNCTION TO ALTERNATE PP. * * ENTRY (A) = FUNCTION CODE. * * EXIT (A) = 0. * * ERROR TO *DSE* IF ALTERNATE PP ERROR. * * CALLS API. IAF SUBR ENTRY/EXIT SHN 14 LMC MBUF APPEND BUFFER ADDRESS TO REQUEST RJM API ZJN IAFX IF NO ERROR JMP DSE DISPLAY ERROR AND HANG SDA SPACE 4,10 ** SDA - SET DESCRIPTOR ADDRESS. * * ENTRY (A) = INDEX INTO TEAB. * IF (A) .GE. 0, ADDRESS ASSEMBLED INTO (A) + 1. * IF (A) .LT. 0, ADDRESS ASSEMBLED INTO (A) - 1. * (T7) = CURRENT SAB INDEX. * (CN - CN+1) = FWA OF ELEMENT DESCRIPTOR BLOCK. * * USES T3. SDA1 LMC -0 COMPLEMENT INDEX STD T3 SAVE ENTRY LDD CN SHN 14 LMD CN+1 ADD T7 ADD CURRENT SAB INDEX STM TEAB,T3 SET BITS 0-11 SHN -14 RAM TEAB-1,T3 SET BITS 12-17 SDA SUBR ENTRY/EXIT MJN SDA1 IF ENTRY .LT. 0 STD T3 SAVE ENTRY LDD CN SHN 14 LMD CN+1 ADD T7 ADD CURRENT SAB INDEX SHN 14 STM TEAB,T3 SET BITS 6-17 SHN 6-14 SCN 77 RAM TEAB+1,T3 SET BITS 0-5 UJN SDAX RETURN SPACE 4,10 ** COMMON DECKS. *CALL COMPCHM QUAL PRS$ SET 0 SELECT COMMON DECK PRESET CODE QUAL * LIST X *CALL COMPAPI LIST * SPACE 4,10 ** BUFFER DEFINITIONS. TSAB EQU .OVL SAB BLOCK TSABL EQU SABML*5 BLOCK LENGTH TEAB EQU TSAB+TSABL *EABL* BLOCK TEABL EQU 5*MFEI+5 BLOCK LENGTH ERRPL TEAB+TEABL-MBUF BUFFER OVERLAP SPACE 4,10 RSTC RESTORE I/O INSTRUCTIONS TTL SET/IPR - PROCESS INSTALLATION PARAMETERS. TITLE IDENT IPR,OVL QUAL IPR ORG OVL *COMMENT SET - INSTALLATION PARAMETERS. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. MACROS SPACE 4,10 ** MACRO DEFINITIONS. TBLM SPACE 4,10 ** TBLM = GENERATE TABLE OF MASS STORAGE DEVICE TYPES. * * TBLM EQ * EQ = MASS STORAGE EQUIPMENT MNEMONIC. TBLM MACRO EQ CON 2R_EQ ENDM SPACE 4,10 ** ENTRY POINTS. CON TSYN-1 ADDRESS OF SYNTAX TABLE CON TSYNA ADDRESS OF END OF SYNTAX TABLE SPACE 4,10 * INITIALIZE SUBSYSTEM STATUS VALUES IN *SSSL* TO *DISABLED*. SSSL.0 SET -0 SSSL.1 SET -0 SSSL.2 SET -0 SSSL.3 SET -0 SSSL.4 SET -0 SPACE 4,10 * COMMON DECKS. *CALL COMSMLS SUB$ EQU 1 ASSEMBLE *SUBSYST* MACRO *CALL COMSSSD IPR SPACE 4 ** IPR - PROCESS INSTALLATION PARAMETERS. IPR SUBR ENTRY/EXIT RJM PMP PROCESS MICROCODE/EI PARAMTERS RJM ESS COPY SUBSYSTEM TABLE TO CMR LDN IPPL STORE INSTALLATION PAGE PARAMETERS CWM .IPPL,ON LDN SSML STORE SYSTEM SECURITY MODE CWM .SSML,ON LDN IPRL STORE INSTALLATION PARAMETERS CWM .IPRL,ON LDM VEFL STORE *VE=* FLAG RAM .SSTL+3 LDM .SSTL+2 ISOLATE *TRACE* STATUS LPN 40 NJN IPR1 IF TRACE DISABLED LDM .SSTL+2 UPDATE *PROBE* STATUS LPC 7677 STM .SSTL+2 IPR1 LDN SSTL STORE SYSTEM STATUS FLAGS CWM .SSTL,ON LDN SSSL STORE SUBSYSTEM STATUS FLAGS CWM .SSSL,ON LDN MSCL STORE MONITOR SCAN VALUES CWM .MSCL,ON LDN JSCL STORE JOB SCHEDULER CONTROL CWM .JSCL,ON ADK INWL-JSCL-1 STORE SCHEDULER INTERLOCK CWM .INWL,ON ADK PFNL-INWL-1 STORE PERMANENT FILE PARAMETERS CWM .PFNL,ON UJP IPRX RETURN TSYN SPACE 4 ** TSYN - SYNTAX TABLE. TSYN BSS 0 CON DIS CON ENA CON CLA CON CML CON CPM CON CPTT CON CSM CON DEBUG CON DELAY CON DFPT CON DSD CON EIN CON KEYPM CON MICRO CON UNL+1 LOCK CON NIF CON OQS CON PCL CON QUEUE CON SCU CON SSC CON SERVICE CON SPC CON SPD CON SPL CON SPW CON SSR CON TCVM CON TDEN CON TDTY CON UNL UNLOCK CON VEB TSYNA CON 0 CON 0 END OF TABLE TCOM SPACE 4,10 ** TCOM - TABLE OF ENABLE/DISABLE COMMANDS. TCOM BSS 0 DUP MXSI-LSSI,1 CON NOP ORG TCOM TCOM INDEX LIST D .SUB HERE LIST * INDEX MXSI-LSSI * ENABLE/DISABLE NON-SUBSYSTEM ATTRIBUTES. CON APS CON ARS CON CPS CON DDP CON DKV CON ENG CON ESP CON FMP CON FOF CON HFI CON LOG CON MCL CON MMA CON MMS CON MSV CON PAM CON PFV CON PRB CON PRM CON REM CON RRM CON SCP CON SCRSIM CON SPI CON SUBCP CON SUC CON SYD CON TMS CON TPS CON TRA CON UEC CON 0 END OF TABLE SPACE 4,10 **** SYSTEM STATUS AND CONTROL WORDS. .IPPL BSS 0 INSTALLATION PAGE PARAMETER WORD VFD 12//BIO/PL6L LINES CHARGED PER PRINT PAGE AT 6 LPI VFD 12//BIO/PL8L LINES CHARGED PER PRINT PAGE AT 8 LPI VFD 4/0 RESERVED FOR CDC VFD 4//BIO/PDSD SYSTEM PRINT DENSITY VFD 8//BIO/PSSD SYSTEM PAGE LENGTH VFD 8//BIO/PWSD SYSTEM PRINT WIDTH VFD 12/0 RESERVED SPACE 4,10 .IPRL BSS 0 INSTALLATION PARAMETER WORD VFD 6/0 INDEX FOR CPU 1 MULTIPLIER VFD 6/0 INDEX FOR CPU 0 MULTIPLIER VFD 12/0 SECONDARY ROLLOUT SECTOR THRESHOLD VFD 1/0 KEYPUNCH MODE (O26) VFD 10/0 RESERVED VFD 1/1 CHARACTER SET (64) VFD 12/2 TAPE CONVERSION MODE (ASCII/USASI) VFD 6/4 NINE TRACK TAPE DENSITY (1600 CPI) VFD 2/2 DEFAULT TAPE DEVICE TYPE (9 TRACK) VFD 4/3 SEVEN TRACK TAPE DENSITY (800 BPI) .SSTL BSS 0 SYSTEM STATUS WORD VFD 1/0 AUTORESTART (ENABLED) VFD 1/1 MEMORY CLEARING (DISABLED) VFD 1/0 SECURITY LOCK STATUS (LOCKED) VFD 1/0 CONSOLE LOCK STATUS (LOCKED) VFD 1/1 MASTER MSS (DISABLED) VFD 1/1 CARTRIDGE PF STAGING (DISABLED) VFD 1/1 USER EXTENDED MEMORY (DISABLED) VFD 1/1 PF VALIDATION (DISABLED) VFD 2/3 MS VALIDATION (DISABLED) VFD 1/1 MSE MASTER MODE (DISABLED) VFD 1/1 SPINDOWN (DISABLED) VFD 1/0 RESERVED VFD 1/0 FORCED FORMATTING (ENABLED) VFD 1/1 ACS TAPE PF STAGING (DISABLED) VFD 1/1 HARDWARE FAULT INJECTION (DISABLED) VFD 1/1 TAPE PF STAGING (DISABLED) VFD 1/0 REMOVABLE PACKS (ENABLED) VFD 1/0 DISK VALIDATION (ENABLED) VFD 1/1 SECONDARY USER COMMANDS (DISABLED) VFD 1/1 SCP FACILITY (DISABLED) VFD 3/0 RESERVED VFD 1/1 SUB-CONTROL POINTS (DISABLED) VFD 4/0 RESERVED VFD 1/1 PROBE (DISABLED) VFD 1/1 TRACE (DISABLED) VFD 4/0 RESERVED VFD 1/1 TMS (DISABLED) VFD 1/1 VIRTUAL ENVIRONMENT (DISABLED) VFD 1/0 FLEXIBLE MEMORY PARTITIONS (ENABLED) VFD 1/1 DDP ROLLOUT PATH (DISABLED) VFD 1/1 RESIDENT RDF (DISABLED) VFD 1/1 PRIVILEGED RDF (DISABLED) VFD 1/1 PRIVILEGED ANALYST MODE (DISABLED) VFD 1/1 EXTENDED STACK PURGING (DISABLED) VFD 1/1 LOGGING (DISABLED) VFD 1/1 C70 SCR SIMULATION (DISABLED) VFD 1/1 ENGINEERING MODE (DISABLED) VFD 1/1 SYSTEM DEBUG (DISABLED) VFD 1/0 DEBUG SWITCH (OFF) VFD 12/0 RESERVED SSSL SPACE 4,10 .SSSL BSS 0 SUBSYSTEM STATUS WORD CON SSSL.0 CON SSSL.1 CON SSSL.2 CON SSSL.3 CON SSSL.4 SPACE 4,10 .MSCL BSS 0 MONITOR SCAN CONTROL VFD 12/0 RECALL DELAY REDUCTION LIMIT VFD 12/30 CPU RECALL DELAY VFD 12/1000D PP AUTO RECALL DELAY VFD 12/0 RESERVED VFD 12/0 MEMORY PAD FOR *RSTM* SPACE 4,10 .JSCL BSS 0 JOB SCHEDULER CONTROL VFD 1/1 SCHEDULER ACTIVE FLAG VFD 11/0 RESERVED VFD 12/2 EJT/QFT SCHEDULING INTERVAL VFD 12/1 SCHEDULER CYCLE INTERVAL VFD 24/0 SCHEDULER RECALL TIME **** SPACE 4,10 .SSCT INDEX LIST D .SUB2 HERE DEFAULT .SSCT TABLE LIST * INDEX SSCTL*5 TITLE SUBROUTINES. CSB SPACE 4,10 ** CSB - CHANGE SYSTEM STATUS BIT. * * ENTRY (A) BITS 0 - 11 = BIT(S) TO CHANGE. * BITS 12 - 17 = BYTE NUMBER. * (NC) = SYSTEM CONTROL POINT NUMBER. * (T3) = 0 IF SYSTEM ATTRIBUTE ENABLED. * (ST) = COMMAND TABLE ADDRESS. * * EXIT TO *KBR*. * * USES T5 - T7. CSB STD T7 SAVE BITS SHN -14 ADC .SSTL SET BYTE ADDRESS STD T6 LDI KA ZJN CSB1 IF END OF COMMAND SBN 1RZ+1 MJP AKL6 IF NOT END OF KEYWORD CSB1 LDD ST SBK TCOM PJN CSB3 IF POSSIBLE SUBSYSTEM COMMAND CSB2 LJM CSB7 CHANGE SYSTEM STATUS BIT CSB3 SBK MXSI-LSSI PJN CSB2 IF NOT SUBSYSTEM COMMAND STD T5 LDK .SSSL-.SSTL ADJUST WORD ADDRESS RAD T6 LDM -1,KA LMN 1R. ZJN CSB7 IF SYNTAX TERMINATION WITH *.* LDI KA LMN 1R. ZJN CSB7 IF NO OPTIONAL PARAMETER LMN 1R,&1R. NJN CSB4 IF INVALID SEPARATOR AOD KA LDI KA CHECK CONTROL POINT VALUE LMN 1R- NJN CSB5 IF NOT RELATIVE TO SYSTEM CONTROL POINT AOD KA RJM ASD ASSEMBLE RELATIVE NUMBER LDD NC SBD AB+4 COMPUTE ACTUAL CONTROL POINT STD AB+4 PJN CSB6 IF VALID CONTROL POINT CSB4 JMP ILL PROCESS INCORRECT ENTRY CSB5 RJM ASD ASSEMBLE CONTROL POINT NUMBER CSB6 SBD NC PJN CSB4 IF VALUE TOO LARGE LDD AB+4 ENTER CP NUMBER IN SUBSYSTEM TABLE STM .SSCT+MXSI-LSSI,T5 CSB7 LCN 0 SET BIT MASK LMD T7 STM CSBA LDD T3 NJN CSB8 IF NOT *ENABLE* COMMAND STD T7 CSB8 LDI T6 SET/CLEAR STATUS BIT LPC * CSBA EQU *-1 LMD T7 STI T6 JMP KBR RETURN PMP SPACE 4,10 ** PMP - PROCESS MICROCODE/EI PARAMETERS. * * EXIT SABB BUFFER UPDATED FOR *CSAB* MACRO, IF * CYBER 170-815/825/835/855 MAINFRAME. * TO *KBR* IF MICROCODE OR EI MISMATCHES. * * USES KM, T1 - T5. PMP SUBR ENTRY/EXIT LDM C8XX NJN PMPX IF NOT CYBER 800 TYPE MAINFRAME PMPA ADN 1 MJN PMPX IF VALID MICRO AND EI ENTRIES FOUND LDC 0 PMPB EQU *-1 (FLAGS MICRO/EI ENTRIES) LMN 1 STM PMPB ZJN PMPX IF MESSAGE TO BE SUPPRESSED LDC 0 PMPD EQU *-1 (FLAGS PRESENCE OF MICRO OR EI ENTRY) ZJN PMP1 IF MICRO OR EI ENTRIES ARE NOT SPECIFIED LDC PMPC ISSUE MESSAGE STD KM LDN 0 STD DS LJM ATD3 RETURN PMP1 LDN DSSL CRD T1 LDN 10 SET MICROCODE/EI MISMATCH FLAG RAD T1+4 LDN DSSL CWD T1 UJP PMPX RETURN PMPC DATA C*MICROCODE/EI MISMATCH - MAY CAUSE SYSTEM HANG.* VMN SPACE 4,10 ** VMN - VERIFY MICROCODE/EI NAMES. * * ENTRY (A) = 0 IF MICROCODE ENTRY. * = 4 IF EI ENTRY. * (T4) = NUMBER OF CHARACTERS TO ASSEMBLE. * * EXIT TO PROCESSOR IF COMPARISON FOUND. * TO *ILL* IF INCORRECT ENTRY. * TO *KBR* IF NO MATCH FOUND OR NOT CYBER * 170-815/825/835/855 MAINFRAME. * * USES T1, T2, T3, T5, KA, CN - CN+4. * * CALLS ASN. VMN SUBR ENTRY/EXIT STD T5 LDM C8XX NJN VMN2 IF NOT CYBER 800 TYPE MAINFRAME LDN 6 SET MAXIMUM NUMBER OF ENTRIES PER LINE STM PMPD SET MICRO/EI PRESENT FLAG STD T3 LDC MEBF GET MICROCODE/EI NAMES STM PMPB CRD CN SOD KA VMN1 SOD T3 MJN VMN2 IF NO MORE ENTRIES MAY BE CHECKED LDI KA LMN 1R. NJN VMN3 IF NOT TERMINATOR VMN2 LDD AM NJN VMN4 IF KEYBOARD ASSEMBLY JMP KBR PROCESS KEYBOARD VMN3 LDD T4 RJM ASN ASSEMBLE NAME ZJN VMN5 IF VALID ENTRY VMN4 JMP ILL PROCESS INCORRECT ENTRY VMN5 STD T1 SET LOOP INDICES LDD T5 STD T2 VMN6 LDM CN,T2 COMPARE VALUES LMM CM,T1 NJN VMN1 IF VALUES DO NOT COMPARE AOD T2 INCREMENT POINTERS AOD T1 SHN 1 LMD T4 SHN -1 NJN VMN6 IF COMPARISON NOT COMPLETE SOM PMPA LJM VMNX RETURN TITLE SUBROUTINES. TJB SPACE 4,10 ** TJB - TOGGLE JOB SCHEDULER BITS. * * ENTRY (A) BITS 0 - 11 = BIT(S) TO TOGGLE. * BITS 12 - 17 = BYTE NUMBER. * * EXIT TO *KBR*. * * USES T2. TJB STD T2 SAVE BITS SHN -14 SET BYTE ADC .INWL UJN TSB1 TOGGLE SCHEDULER BITS TSB SPACE 4,10 ** TSB - TOGGLE SYSTEM STATUS BIT. * * ENTRY (A) BITS 0 - 11 = BIT(S) TO TOGGLE. * BITS 12 - 17 = BYTE NUMBER. * * EXIT TO *KBR*. * * USES T1, T2. TSB STD T2 SAVE BITS SHN -14 SET BYTE NUMBER ADC .SSTL TSB1 STD T1 LDI T1 TOGGLE STATUS BITS LMD T2 ENTER STATUS STI T1 JMP KBR RETURN TITLE SYNTAX PROCESSORS. ACCOUNT SPACE 4,10 *** INSTALLATION PARAMETERS. * * CERTAIN INSTALLATION PARAMETERS REFER TO THE JOB SERVICE * CLASS *SC*. *SC* MAY BE REPLACED BY THE FOLLOWING - * SC SERVICE CLASS * * SY SYSTEM * BC BATCH * RB REMOTE BATCH * TS INTERACTIVE * DI DETACHED INTERACTIVE * SS SUBSYSTEM * MA MAINTENANCE * CT COMMUNICATION TASK * NS NETWORK * I0 INSTALLATION CLASS 0 * I1 INSTALLATION CLASS 1 * I2 INSTALLATION CLASS 2 * I3 INSTALLATION CLASS 3 DISABLE SPACE 4,10 *** DISABLE,SA. *** DISABLE,SA,CP. (SUBSYSTEMS ONLY) * SA = SYSTEM ATTRIBUTE OR FUNCTION. * CP = CONTROL POINT NUMBER. DIS DATA C*DISABLE,* DIS1 LDC TCOM-1 SET COMMAND TABLE ADDRESS STD ST LDD KA SET KEYBOARD BUFFER ADDRESS STD KB LJM AKL7 RESUME COMMAND CRACKING ENABLE SPACE 4,10 *** ENABLE,SA. *** ENABLE,SA,CP. (SUBSYSTEMS ONLY) * SA = SYSTEM ATTRIBUTE OR FUNCTION. * CP = CONTROL POINT NUMBER. ENA DATA C*ENABLE,* LDN 0 SET *ENABLE* COMMAND PROCESSED STD T3 UJN DIS1 CONTINUE COMMAND CRACKING SPACE 4,10 LIST G .SUB1 HERE CODE FOR *ENABLE/DISABLE* SUBSYSTEMS LIST * APS SPACE 4,10 *** ACS TAPE PF STAGING. * ENABLE/DISABLE STAGING OF PERMANENT FILES FROM ACS TAPE. * DEFAULT = ACS TAPE PF STAGING DISABLED. APS DATA C*ACS TAPE PF STAGING.* LDC 11000 JMP CSB CHANGE STATUS BIT ARS SPACE 4,10 *** AUTORESTART. * ENABLE/DISABLE AUTORESTART. * DEFAULT = AUTORESTART ENABLED. ARS DATA C*AUTORESTART.* LDC 4000 JMP CSB CHANGE STATUS BIT CLA SPACE 4,10 *** CLASS,OT,C1,C2,...,CN. * * SET SERVICE CLASS VALIDATION MASK FOR SPECIFIED ORIGIN TYPE. * * OT ORIGIN TYPE. (BC, EI, IA, RB, TX) * CI TWO CHARACTER SERVICE CLASS MNEMONIC. * *ALL* OR *NUL* ARE ALSO ACCEPTED. CLA DATA C*CLASS,* LDM 2,KA LMN 1R, ZJN CLA2 IF VALID SEPARATOR CLA1 JMP ILL PROCESS INCORRECT ENTRY CLA2 LDC TJOT+2 SEARCH FOR VALID ORIGIN TYPE RJM SPT SHN -1 ADN 1 STD T4 LDN 0 READ SCT ENTRY SFA JCB ADD T4 CRD CN LDM 3,KA CHECK FOR *ALL* OR *NUL* SHN 6 LMM 4,KA LMC 2RL. NJN CLA3 IF NOT *ALL* OR *NUL* LDM 1,KA SHN 6 LMM 2,KA LMC 2RNU ZJP CLA6 IF *NUL* SELECTED LMC 2RAL&2RNU ZJP CLA7 IF *ALL* SELECTED * PROCESS SERVICE CLASS PARAMETERS. CLA3 AOD KA SKIP SEPARATOR LDC TJSC RJM SPT SEARCH FOR VALID SERVICE CLASS STD T2 SAVE SERVICE CLASS VALUE LDM TSCM,T2 GET SERVICE CLASS VALIDATION BIT ZJP CLA1 IF INCORRECT SERVICE CLASS STD T3 LDN CN+5 DETERMINE BYTE NUMBER TO TOGGLE BIT IN STD T1 CLA4 SOD T1 LCN 12D RAD T2 PJN CLA4 IF NOT CORRECT BYTE LDI T1 TOGGLE VALIDATION BIT LMD T3 STI T1 LDI KA LMN 1R, ZJN CLA3 IF NOT END OF ENTRY LMN 1R.&1R, NJP CLA1 IF NOT VALID TERMINATOR CLA5 LDN 0 STORE SCT ENTRY SFA JCB ADD T4 CWD CN JMP KBR RETURN CLA6 STD CN+3 UJN CLA8 CLEAR ALL MASK BITS CLA7 LDK /SCD/A2MK SET ALL MASK BITS STD CN+3 LDK /SCD/A1MK CLA8 STD CN+4 UJN CLA5 STORE SCT ENTRY CML SPACE 4,10 *** COMLIB,XXXXXXX,YYYYYYY. * COMLIB,XXXXXXX,YYYYYYY,D. * WHERE XXXXXXX = USER NAME AND YYYYYYY = FAMILY. CML DATA C*COMLIB,* LDD RS CMLA ZJN CML0 IF LEVEL ZERO DEADSTART * ZJN CML1 (AFTER INITIAL CALL) JMP KBR RETURN CML0 SFA CLT INITIALIZE *COMPGFP* ISTORE CMLA,(ZJN CML1) BYPASS *SFA* CALL CML1 SOD KA LDN 10 SET CHARACTER COUNT RJM AUN ASSEMBLE USER NAME NJN CML2 IF MORE THAN 7 CHARACTERS LDD CM ZJN CML2 IF NO USER NAME LDI KA LMN 1R, ZJN CML3 IF *,* CML2 JMP ILL PROCESS INCORRECT ENTRY CML3 LDN IPRL SAVE USER NAME CWD CM CRD AB LDN 10 SET CHARACTER COUNT RJM ASN ASSEMBLE FAMILY NJN CML2 IF MORE THAN 7 CHARACTERS LDD CM ZJN CML2 IF NO FAMILY LDI KA LMN 1R. ZJN CML4 IF ADDING AN ENTRY LMN 1R.&1R, NJN CML2 IF INCORRECT ENTRY AOD KA LDI KA LMN 1RD NJN CML2 IF INCORRECT ENTRY AOD KA GET TERMINATING CHARACTER LDI KA LMN 1R. NJN CML2 IF INCORRECT ENTRY LDN 1 CML4 STD T7 SET ADD/DELETE KEY LDN 0 STD CA LDK CLTP FETCH COMMON LIBRARIES TABLE POINTER CRD T2 LDD T4 NJN CML6 IF TABLE DEFINED CML5 LDC CMLB JMP ILL1 DISPLAY ERROR MESSAGE CML6 SBD T5 SET NUMBER OF ENTRIES IN USE SBN 1 ZJN CML8 IF TABLE EMPTY STD CA+1 CML7 AOD CA READ TABLE ENTRY SFA CLT CRD CN LDD CN ZJN CML7 IF EMPTY ENTRY LDN AB COMPARE WITH USER NAME RJM CPN ZJN CML10 IF MATCHING USER NAME SOD CA+1 NJN CML7 IF NOT END OF ASSIGNED ENTRIES CML8 LDD T7 NJN CML11 IF DELETING ENTRY SOD T5 MJN CML5 IF TABLE FULL LDD T6 SET ORDINAL OF EMPTY SLOT STD CA SFA CLT FETCH LINK TO NEXT EMPTY SLOT CRD CN LDD CN+4 SET NEXT AVAILABLE ORDINAL STD T6 CML9 SFA CLT,CA STORE/CLEAR USER NAME CWD AB ADN CLTF-CLTU STORE/CLEAR FAMILY NAME CWD CM LDK CLTP UPDATE POINTER WORD CWD T2 JMP KBR RETURN CML10 LDD T7 NJN CML12 IF DELETING ENTRY CML11 JMP ILL PROCESS INCORRECT ENTRY CML12 SFA CLT,CA FETCH FAMILY NAME FROM TABLE ADN CLTF-CLTU CRD CN LDN CM COMPARE WITH ENTERED VALUE RJM CPN NJN CML11 IF NO MATCH CRD AB CRD CM CRD CN LDD T6 SET UP EMPTY SLOT LINKAGE STD AB+4 ZJN CML13 IF TABLE FULL SBD CA MJN CML15 IF ENTRY BEYOND NEXT AVAILABLE CML13 LDD CA STD T6 CML14 AOD T5 LJM CML9 CLEAR TABLE ENTRY/UPDATE POINTER CML15 LDD AB+4 SAVE LINK ORDINAL STD T1 SFA CLT PICK UP NEXT LINKED ENTRY CRD AB LDD AB+4 ZJN CML18 IF LAST ENTRY SBD CA MJN CML15 IF DELETE BEYOND CURRENT LINK CML18 LDD CA LINK TO NEW FREE ENTRY STD CN+4 SFA CLT,T1 CWD CN LDN 0 STD CN+4 UJN CML14 UPDATE FREE COUNT CMLB DATA C*ENTRY IGNORED--TABLE FULL.* CPM SPACE 4,10 *** CPM,N=X,N=X. * * USE XX AS INDEX TO DETERMINE CP TIME MULTIPLIER * FOR CPU N. * * N CPU (0 OR 1) * X TABLE INDEX (1 - 45) CPM DATA C*CPM,* SOD KA CPM1 AOD KA LDC TCPM SEARCH FOR PARAMETER RJM SPT ZJN CPM2 IF ORDINAL ZERO LDC SHNI+6 STM CPMB ADN 6 UJN CPM3 CPM2 LDC SHNI STM CPMB CPM3 STM CPMA RJM AOD ASSEMBLE CHARACTERS OF PARAMETER VALUE ZJN CPM4 IF ZERO VALUE SBN TIPRL MJN CPM5 IF VALID INDEX VALUE CPM4 JMP ILL PROCESS INCORRECT ENTRY CPM5 LDM .IPRL CPMA SHN 0 * SHN 14 IF UPPER HALF OF BYTE (CPU 1) SCN 77 LMD AB+4 INSERT INDEX VALUE CPMB SHN 0 * SHN 6 IF UPPER HALF OF BYTE (CPU 1) STM .IPRL LDI KA CHECK FOR END OF COMMAND LMN 1R, NJN CPM6 IF NO MORE ENTRIES LJM CPM1 CPM6 JMP KBR RETURN CPS SPACE 4,10 *** CARTRIDGE PF STAGING. * ENABLE/DISABLE STAGING OF *MSS*/*MSE* RESIDENT FILES. * DEFAULT = CARTRIGE PF STAGING DISABLED. CPS DATA C*CARTRIDGE PF STAGING.* LDC 100 JMP CSB CHANGE STATUS BIT CPTT SPACE 4,10 ** CPTT=NNNN. * SET CPU TRANSFER THRESHOLD FOR INDIRECT ACCESS FILES. CPTT DATA C*CPTT=* RJM AOD ASSEMBLE DIGITS LDD AB+3 NJN CPT1 IF VALUE TOO LARGE LDD AB+4 STM .PFNL+4 JMP KBR RETURN CPT1 JMP ILL PROCESS INCORRECT ENTRY CSM SPACE 4,15 ** CSM=CC. * SET SYSTEM CHARACTER SET MODE ACCORDING TO *CC*. * CC CHARACTER SET. * * 63 63 CHARACTER SET. * 64 64 CHARACTER SET. * DEFAULT = 64 CHARACTER SET. CSM DATA C*CSM=* LDC TCSM RJM SPT STD T2 LDM .IPRL+2 SCN 1 LMD T2 NEW CHARACTER SET SETTING STM .IPRL+2 JMP KBR RETURN DDP SPACE 4,10 *** DDP ROLLOUT PATH. * ENABLE/DISABLE DDP ROLLOUT PATH. * DEFAULT = DDP ROLLOUT PATH DISABLED. DDP DATA C*DDP ROLLOUT PATH.* LDC 31000 JMP CSB CHANGE STATUS BIT DEBUG SPACE 4 *** DEBUG. * TOGGLE DEBUG SWITCH. * DEFAULT = DEBUG SWITCH OFF. * THIS ENTRY IS IGNORED ON A SECURE SYSTEM. DEBUG DATA C*DEBUG.* LDM .SSML LPN 7 ZJN DEB1 IF NOT SECURE SYSTEM JMP KBR RETURN DEB1 LDC 30001 TOGGLE DEBUG BIT JMP TSB TOGGLE SYSTEM STATUS BIT DELAY SPACE 4,10 *** DELAY,T1XXX,T2XXX,...TNXXX. * SET SCAN VALUE *TN* = XXX. * TN DELAY * * JQ EJT/QFT SCHEDULING INTERVAL (2**JQ SECONDS) * JS JOB SCHEDULER (SECONDS) * RL RECALL DELAY REDUCTION LIMIT (MILLISECONDS) * CR CPU PROGRAM RECALL (MILLISECONDS) * AR PP AUTO RECALL (MILLISECONDS) * MP MEMORY PAD FOR *RSTM* (100B WORD BLOCKS). DELAY DATA C*DELAY,* SOD KA DLY1 AOD KA SKIP SEPARATOR LDC TDLP RJM SPT SEARCH DELAY PARAMETERS STD T4 LDM TDLY,T4 SET CONTROL WORD ADDRESS STD T6 RJM AOD CONVERT DELAY TIME LJM DLYA,T4 CHECK FOR VALID DELAY TIME DLYA UJN DLY4 JQXX UJN DLY2 JSXXXX UJN DLY7 RLXX UJN DLY2 CRXXXX UJN DLY2 ARXXXX UJN DLY6 MPXXX DLY2 ZJN DLY5 IF INVALID DELAY TIME DLY3 LDD AB+4 STI T6 LDI KA CHECK SEPARATOR LMN 1R. NJN DLY1 IF NOT *.* JMP KBR DLY4 SBN 14+1 MJN DLY3 IF VALID SCHEDULING INTERVAL DLY5 JMP ILL PROCESS INCORRECT ENTRY DLY6 SHN -3 VERIFY MEMORY PAD .LE. 777B DLY7 SHN -6 ZJN DLY3 IF VALID RECALL REDUCTION JMP ILL PROCESS INCORRECT ENTRY TDLY SPACE 4 ** TDLY - TABLE OF DELAY ENTRY ADDRESSES. * ENTRY = 1 WORD. * INDEXED BY INDEX OF *TDLP*. * *T, 12/ ADDR * ADDR BYTE ADDRESS IN CONTROL WORD TDLY BSS 0 CON .JSCL+1 *JQ* CON .JSCL+2 *JS* CON .MSCL *RL* CON .MSCL+1 *CR* CON .MSCL+2 *AR* CON .MSCL+4 *MP* DFPT SPACE 4,10 *** DFPT=DTN. * ENTER SYSTEM DEFAULT REMOVABLE PACK TYPE IN *PFNL*. * DT = DEVICE TYPE. * N = NUMBER OF SPINDLES. DFPT DATA C*DFPT=* LDC TMDT CHECK DEVICE TYPE RJM SPT SEARCH PARAMETER TABLE LDI KA GET NUMBER OF SPINDLES SBN 1R1 MJN DFP1 IF NOT DIGIT (1-8) SBN 1R9-1R1 PJN DFP1 IF NOT DIGIT (1-8) LDM 1,KA LMN 1R. ZJN DFP2 IF PROPER TERMINATOR DFP1 JMP ILL PROCESS INCORRECT ENTRY DFP2 LDD T1 SET DEFAULT PACK TYPE STM .PFNL LDI KA SHN 6 STD T1 LDM .PFNL+1 LPN 77 LMD T1 STM .PFNL+1 JMP KBR RETURN DKV SPACE 4,10 *** DISK VALIDATION. * ENABLE/DISABLE DISK VALIDATION. * DEFAULT = DISK VALIDATION ENABLED. DKV DATA C*DISK VALIDATION.* LDC 10040 JMP CSB CHANGE STATUS BIT DSD SPACE 4,15 *** DSD,X,CCC-CCC * ENTER CCC-CCC AS INITIAL KEYBOARD COMMAND IF RECOVERY * X IS SELECTED. * NOTE: LEVEL 3 RECOVERY PROCESSING IS NOT ALLOWED. * * MULTIPLE COMMANDS ARE SEPARATED BY EITHER THE CHARACTER FOR * DISPLAY CODE 60 (#) OR DISPLAY CODE 63 (%). THESE DELIMITER * CHARACTERS MAY DISTORT THE *IPRDECK* DISPLAY IF THEY APPEAR * AS THE UPPER SIX BITS IN A BYTE. DSD DATA C*DSD,* RJM CDR ASSEMBLE DIGITS. LMN 1R, ZJN DSD1 IF *,* DSD0 JMP ILL PROCESS INCORRECT ENTRY DSD1 LDD AB+4 CHECK RECOVERY LMN 3 ZJN DSD0 IF LEVEL 3 RECOVERY PROCESSING REQUESTED LMN 3 LMD RM NJN DSD4 IF INCORRECT MODE AOD KA LDN PPCP READ PP COMMUNICATION POINTER CRD CM LDD CM+4 SET WORD ADDRESS ADN 10+2 STD T1 DSD2 LDN CM SET BYTE ADDRESS STD T2 DSD3 LDI KA ASSEMBLE BYTE SHN 6 LMM 1,KA STI T2 LDN 2 RAD KA AOD T2 LMN CM+5 NJN DSD3 LOOP TO END OF WORD LDD T1 STORE WORD CWD CM LDD CM+4 ZJN DSD4 IF END OF COMMAND AOD T1 ADVANCE WORD LPN 7 NJN DSD2 LOOP DSD4 JMP KBR RETURN EIN SPACE 4,10 *** EI=NN,NN,...,NN. * ENTER NN AS EI REVISION LEVEL. EIN DATA C*EI=* EINA LDN 3 SET NUMBER OF CHARACTERS TO ASSEMBLE * UJN EIN1 (MATCH ALREADY FOUND) STD T4 LDN 4 SET EI PROCESSOR FLAG RJM VMN VERIFY EI NAME LDC * ORG *-1 LOC EINA UJN EIN1 DISABLE PROCESSING LOC *O STM EINA EIN1 JMP KBR RETURN SPACE 4,5 *** ENGR. * TOGGLE ENGINEERING SWITCH. * DEFAULT = ENGINEERING SWITCH OFF. * THIS ENTRY IS IGNORED ON A SECURE SYSTEM. ENG DATA C*ENGR.* LDM .SSML LPN 7 ZJN ENG1 IF NOT SECURE SYSTEM JMP KBR RETURN ENG1 LDC 30004 JMP CSB CHANGE STATUS BIT ESP SPACE 4,10 *** EXTENDED STACK PURGING. * ENABLE/DISABLE EXTENDED STACK PURGING. * DEFAULT = STACK PURGING DISABLED. ESP DATA C*EXTENDED STACK PURGING.* LDC 30040 JMP CSB CHANGE STATUS BIT FMP SPACE 4,10 *** FLEXIBLE PARTITIONS. * ENABLE/DISABLE FLEXIBLE MEMORY PARTITIONS. * DEFAULT = FLEXIBLE PARTITIONS ENABLED. FMP DATA C*FLEXIBLE PARTITIONS.* LDC 32000 JMP CSB CHANGE STATUS BIT FOF SPACE 4,10 *** FORCED FORMATTING. * ENABLE/DISABLE FORCED FORMATTING FOR 583X DISKS. * DEFAULT = FORCED FORMATTING DISABLED. FOF DATA C*FORCED FORMATTING.* LDC 12000 JMP CSB CHANGE STATUS BIT HFI SPACE 4,10 *** HARDWARE FAULT INJECTION. * ENABLE/DISABLE HARDWARE FAULT INJECTION. * DEFAULT = HARDWARE FAULT INJECTION DISABLED. HFI DATA C*HARDWARE FAULT INJECTION.* LDK MABL CHECK MAINFRAME TYPE CRD CM LDD CM+1 SHN 21-13 MJN HFI1 IF NOT CME MAINFRAME SHN 21-6-21+13 PJN HFI1 IF 865/875 LDC 10400 JMP CSB CHANGE STATUS BIT HFI1 JMP ILL PROCESS INCORRECT ENTRY KEYPM SPACE 4,10 ** KEYPM=CC. * SET ASSUMED KEYPUNCH COMVERSION MODE ACCORDING TO CC. * CC KEYPUNCH CONVERSION MODE. * * 26 O26 CONVERSION MODE. * 29 O29 CONVERSION MODE. KEYPM DATA C*KEYPM=* LDC TKCM RJM SPT SEARCH PARAMETER TABLE SHN 13 SET BIT INDICATING DEFAULT KEYPUNCH MODE STD T2 LDM .IPRL+2 LPC 3777 LMD T2 STM .IPRL+2 JMP KBR RETURN LOCK SPACE 4 *** LOCK. * TOGGLE CONSOLE LOCK STATUS. * DEFAULT = CONSOLE UNLOCKED. *LCK EQU UNL+1 LOG SPACE 4,10 *** LOGGING. * ENABLE/DISABLE LOGGING OF UNNECESSARY DAYFILE MESSAGES. * DEFAULT = LOGGING DISABLED. LOG DATA C*LOGGING.* LDC 30020 JMP CSB CHANGE STATUS BIT MCL SPACE 4,10 *** MEMORY CLEARING. * ENABLE/DISABLE THE CLEARING OF CENTRAL AND EXTENDED * MEMORY WHEN RELEASED. * DEFAULT = MEMORY CLEARING DISABLED. MCL DATA C*MEMORY CLEARING.* LDC 2000 JMP CSB CHANGE STATUS BIT MICRO SPACE 4,10 *** MICRO=NNNNNNN,NNNNNNN,...,NNNNNNN. * ENTER SEVEN CHARACTER MICROCODE NAME. MICRO DATA C*MICRO=* MICA LDN 10 SET NUMBER OF CHARACTERS TO ASSEMBLE * UJN MIC1 (MATCH ALREADY FOUND) STD T4 LDN 0 SET MICROCODE PROCESSOR FLAG RJM VMN VERIFY MICROCODE NAME LDC * ORG *-1 LOC MICA UJN MIC1 DISABLE PROCESSING LOC *O STM MICA MIC1 JMP KBR RETURN MMA SPACE 4,10 *** MASTER MSE. * ENABLE/DISABLE MSE EXECUTIVE MASTER MODE INITIATION. * DEFAULT = MASTER MODE DISABLED. MMA DATA C*MASTER MSE.* LDN 2 JMP CSB CHANGE STATUS BIT MMS SPACE 4,10 *** MASTER MSS. * ENABLE/DISABLE MSS EXECUTIVE MASTER MODE. * DEFAULT = MASTER MODE DISABLED. MMS DATA C*MASTER MSS.* LDC 200 JMP CSB CHANGE STATUS BIT MSV SPACE 4,5 *** MS VALIDATION. * TOGGLE MASS STORAGE VALIDATION. * DEFAULT = MS VALIDATION DISABLED. MSV DATA C*MS VALIDATION.* LDN 14 JMP CSB CHANGE STATUS BIT NIF SPACE 4,10 *** NAMIAF=NC. * SET THE NUMBER OF NETWORK TERMINALS. * * NC THE NUMBER OF NETWORK TERMINALS (1-512). * * THE VALUE OF NC IS STORED INTO BYTE 4 OF WORD *EQDE* * OF THE DUMMY TT EST ENTRY. NIF DATA C*NAMIAF=* LDN TTEQ SFA EST READ EQUIPMENT ENTRY ADK EQDE CRD CM LDI KA LMN 1R. ZJN NIF3 IF DEFAULT *NC* RJM ASD ASSEMBLE NUMBER OF NETWORK TERMINALS NJN NIF2 IF .NE. 0 NIF1 JMP ILL PROCESS INCORRECT ENTRY NIF2 STD CM+4 NUMBER OF NETWORK TERMINALS SBN 1 SHN -11 NJN NIF1 IF INCORRECT NUMBER OF TERMINALS LDN TTEQ UPDATE EQUIPMENT ENTRY SFA EST ADK EQDE CWD CM NIF3 JMP KBR RETURN NOP SPACE 4,10 *** NOP - NULL SUBSYSTEM ENTRY. NOP DATA C*NOP.* JMP KBR RETURN OQS SPACE 4,10 *** OQSH=NNNNNNN. * SELECTS OUTPUT SPECIAL HANDLING LEVEL. * NNNNNNN OUTPUT QUEUE SPECIAL HANDLING LEVEL. OQS DATA C*OQSH=* SOD KA ASSEMBLE PARAMETER LDN 10 RJM ASN NJN OQS1 IF MORE THAN 7 CHARACTERS LDN CM SET POINTER TO PARAMETER RJM VAL SEARCH TABLE FOR PARAMETER MJN OQS1 IF NO MATCH FOUND SHN 6 STD T3 LDM .SSML SET SPECIAL HANDLING LEVEL LPC 7077 LMD T3 STM .SSML JMP KBR RETURN OQS1 JMP ILL PROCESS INCORRECT ENTRY PAM SPACE 4,10 *** PRIVILEGED ANALYST MODE. * ENABLE/DISABLE PRIVILEGED ANALYST MODE. * DEFAULT = PRIVILEGED ANALYST MODE DISABLED. PAM DATA C*PRIVILEGED ANALYST MODE.* LDM .SSML LPN 7 ZJN PAM1 IF NOT SECURED SYSTEM JMP KBR RETURN PAM1 LDC 30100 JMP CSB CHANGE STATUS BIT PCL SPACE 4,10 *** PCLASS,P0,P1,...,P7. * * SET PRIORITY ORDERED SERVICE CLASSES. * * EACH PARAMETER SETS THE SERVICE CLASS FOR THE INDICATED * PRIORITY LEVEL. THE DEFAULT FOR EACH NULL PARAMETER IS * ZERO. PCL4 JMP ILL PROCESS INCORRECT ENTRY PCL DATA C*PCLASS,* LDN 0 INITIALIZE PRIORITY INDEX STD T4 CRM SBUF,TR LDI KA LMN 1R. ZJN PCL3 IF TERMINATOR PCL1 LDI KA LMN 1R, ZJN PCL2 IF NULL PARAMETER LDC TJSC RJM SPT SEARCH FOR VALID SERVICE CLASS STD T2 LDM TSCM,T2 ZJN PCL4 IF SERVICE CLASS NOT ALLOWED LDD T1 SET SERVICE CLASS INTO SCT STM SBUF,T4 LDI KA LMN 1R. ZJN PCL3 IF TERMINATOR PCL2 AOD KA AOD T4 INCREMENT PRIORITY INDEX SBN 10 ZJN PCL3 IF MAXIMUM NUMBER OF PARAMETERS LDI KA LMN 1R. NJN PCL1 IF NOT END OF ENTRY PCL3 LDN 2 SET PRIORITY LEVEL SERVICE CLASSES STD T1 LDN 0 SFA JCB ADN PLSC CWM SBUF,T1 JMP KBR RETURN PFV SPACE 4,5 *** PF VALIDATION. * TOGGLE PRESERVED FILE VALIDATION. * DEFAULT = PF VALIDATION DISABLED. PFV DATA C*PF VALIDATION.* LDN 20 JMP CSB CHANGE STATUS BIT PRM SPACE 4,10 *** PRIVILEGED RDF. * TOGGLE PRIVILEGED RDF CONTROL. * DEFAULT = PRIVILEGED RDF DISABLED. PRM DATA C*PRIVILEGED RDF.* LDC 30200 JMP CSB CHANGE STATUS BIT PROBE SPACE 4,10 *** PROBE. * TOGGLE DATA PROBE. * DEFAULT = DATA PROBE DISABLED. PRB DATA C*PROBE.* LDC 20100 JMP CSB CHANGE STATUS BIT REM SPACE 4,10 *** REMOVABLE PACKS. * ENABLE/DISABLE MASS STORAGE LABEL CHECKING. * DEFAULT = LABEL CHECKING ENABLED. REM DATA C*REMOVABLE PACKS.* LDC 10100 JMP CSB CHANGE STATUS BIT RRM SPACE 4,10 *** RESIDENT RDF. * TOGGLE RESIDENT RDF CONTROL. * DEFAULT = RESIDENT RDF DISABLED. RRM DATA C*RESIDENT RDF.* LDC 30400 JMP CSB CHANGE STATUS BIT SPACE 4,10 *** SCP. * TOGGLE SCP (SYSTEM CP) FACILITY. * DEFAULT = SCP FACILITY DISABLED. SCP DATA C*SCP.* LDC 10010 TOGGLE SCP FACILITY STATUS JMP CSB CHANGE STATUS BIT SCRSIM SPACE 4,10 *** SCRSIM. * TOGGLE SELECTION OF SCR SIMULATION USING CYBER 70 * INTERLOCK REGISTER. * DEFAULT = SIMULATION DISABLED. SCRSIM DATA C*SCRSIM.* LDC 30010 SELECT CYBER 70 SCR SIMULATION JMP CSB CHANGE STATUS BIT QUEUE SPACE 4,20 *** QUEUE,SC,QT,INXXXX,LPXXXX,UPXXXX,WFXX. * SET QUEUE PARAMETERS *QN* = XXXX, FOR QUEUE *QT* OF * JOB SERVICE CLASS *SC*. * QT QUEUE * * IN INPUT * EX EXECUTING * OT OUTPUT * * * QN PARAMETER * * IL LOWER BOUND FOR INITIAL TIME SLICE (QT = EX ONLY) * LP LOWER BOUND FOR PRIORITY AGEING * UP UPPER BOUND FOR PRIORITY AGEING * WF WEIGHTING FACTOR FOR PRIORITY (POWER OF 2) * IP INITIAL SCHEDULING PRIORITY (QT = EX ONLY) QUEUE DATA C*QUEUE,* LDM 2,KA CHECK SEPARATORS LMN 1R, NJN QUE0 IF NOT *,* LDM 5,KA LMN 1R, ZJN QUE1 IF *,* PRESENT QUE0 JMP ILL PROCESS INCORRECT ENTRY QUE1 LDC TJSC SEARCH FOR SERVICE CLASS RJM SPT STD T7 SAVE INDEX AOD KA LDC TQUT SEARCH FOR QUEUE TYPE RJM SPT STD T6 SFA JCB,T7 READ CONTROL WORD ADD T6 CRD CM STD CA+1 SAVE WORD ADDRESS SHN -14 STD CA QUE2 AOD KA SKIP SEPARATOR LDC TQPN SEARCH PARAMETER TABLE RJM SPT ADN CM SET BYTE ADDRESS STD T4 RJM AOD CONVERT DIGITS STI T4 LJM QUEA-CM,T4 CHECK PARAMETER QUEA UJN QUE3 ILXXXX UJN QUE8 LPXXXX UJN QUE8 UPXXXX UJN QUE5 WFXX UJN QUE3 IPXXXX QUE3 LDD T6 CHECK QUEUE TYPE LMN TQUTA-TQUT ZJN QUE8 IF EXECUTING JOB QUE4 JMP ILL PROCESS INCORRECT ENTRY QUE5 ZJN QUE4 IF NULL WEIGHTING FACTOR SBN MXWF+1 PJN QUE4 IF WEIGHTING FACTOR TOO LARGE LCN 0 STI T4 QUE6 AOI T4 ADVANCE SHIFT COUNT LDD AB+4 SHN 21 STD AB+4 PJN QUE6 IF BIT NOT SET LDD AB+4 NJN QUE4 IF WEIGHTING FACTOR NOT POWER OF 2 QUE8 LDI KA CHECK SEPARATOR LMN 1R. ZJN QUE9 IF END OF ENTRY LJM QUE2 LOOP FOR NEXT PARAMETER QUE9 LDD CM+1 CHECK AGEING PARAMETERS SBD CM+2 PJN QUE4 IF LOWER BOUND .GE. UPPER BOUND LDD CA STORE QUEUE CONTROL SHN 14 LMD CA+1 CWD CM JMP KBR RETURN SSC SPACE 4,10 *** SECCATS=NNNNNNN,NNNNNNN,...,NNNNNNN. * DETERMINES THE SECURITY ACCESS CATEGORIES THAT WILL * BE ALLOWED IN A SECURE SYSTEM. * NNNNNNN CATEGORY NAME. * DEFAULT = ALL CATEGORIES ALLOWED. *** SECCATS=ALL. * SPECIAL CASE OF *SECCATS*. * ALLOWS ALL CATEGORIES TO RUN ON A SECURE SYSTEM. *** SECCATS=NUL. * SPECIAL CASE OF *SECCATS*. * CLEARS ALL CATEGORIES PREVIOUSLY ALLOWED * ON A SECURE SYSTEM. SSC DATA C*SECCATS=* SOD KA LDN 6 INITIALIZE MAXIMUM PARAMETER COUNT STD T5 LDN 10 ASSEMBLE PARAMETER RJM ASN NJN SSC4 IF MORE THAN 7 CHARACTERS LDD CM+1 LMI KA LMC 2RL. NJN SSC5 IF SPECIFIC ACCESS CATEGORY ENTERED LDD CM LMC 2RNU ZJN SSC1 IF *NUL* SPECIFIED LMC 2RAL&2RNU NJN SSC5 IF NOT *ALL* LCN 0 ENABLE ALL ACCESS CATEGORIES SSC1 RJM SAC ENABLE/DISABLE ACCESS CATEGORIES SSC2 JMP KBR RETURN SSC3 SOD T5 DECREMENT PARAMETER COUNT ZJN SSC2 IF MAXIMUM NUMBER OF PARAMETERS ENTERED LDI KA LMN 1R. ZJN SSC2 IF END OF PARAMETERS LDN 10 ASSEMBLE PARAMETER RJM ASN ZJN SSC5 IF .LE. 7 CHARACTERS SSC4 JMP ILL PROCESS INCORRECT ENTRY SSC5 LDN CM FWA OF PARAMETER RJM VAC SEARCH TABLE FOR PARAMETER MJN SSC4 IF NO MATCH STD T3 LDC .SSML+5 LWA+1 OF CATEGORY BYTE ADDRESS STD T1 SSCA LDN 0 * UJN SSC6 (FIRST *SECCATS* ENTRY PROCESSED) RJM SAC LDC 0 BYPASS SUBSEQUENT CALLS TO *SAC* ORG *-1 LOC SSCA UJN SSC6 (BYPASS SUBSEQUENT CALLS TO *SAC*) LOC *O STM SSCA SSC6 SOD T1 DECREMENT CATEGORY BYTE ADDRESS LCN 14 DECREMENT BIT NUMBER RAD T3 PJN SSC6 IF BIT NOT IN THIS BYTE ADC SHNI+14 CALCULATE SHIFT COUNT STM SSCB LDN 1 SSCB SHN 0 STD T0 LMC -0 CREATE BYTE MASK STM SSCC LDI T1 LPC 0 CLEAR OLD ACCESS CATEGORY BIT SSCC EQU *-1 LMD T0 MERGE NEW ACCESS CATEGORY BIT STI T1 LJM SSC3 PROCESS NEXT ACCESS CATEGORY SCU SPACE 4,10 *** SECURES,OT,LA=XXXXXXX,UA=YYYYYYY. * SET THE ORIGIN TYPE ACCESS LEVEL LIMITS. * OT ORIGIN TYPE, TO SET SERVICE LIMITS. * *SY*, TO SET SYSTEM AND ALL OTHER ORIGIN TYPE LIMITS. * XXXXXXX LOWER BOUND. * YYYYYYY UPPER BOUND. * DEFAULT = SYSTEM AND ALL OTHER ORIGIN TYPE LIMITS ARE 0. SCU DATA C*SECURES,* LDN 3 RESET BOUNDS FLAG STD T6 LDN 2 INITIALIZE PARAMETER COUNT STD CA LDC TJOT CHECK ORIGIN TYPE RJM SPT SHN -1 STD T5 LDI KA LMN 1R, NJN SCU2 IF INCORRECT SEPARATOR SCU1 AOD KA LDC TBDP CHECK PREFIX RJM SPT STD AB LDI KA LMN 1R= NJN SCU2 IF SEPARATOR NOT AN *=* LDN 10 RJM ASN NJN SCU2 IF MORE THAN 7 CHARACTERS LDN CM SET POINTER TO PARAMETER RJM VAL SEARCH TABLE FOR PARAMETER MJN SCU2 IF NO MATCH FOUND STM CN,AB AOD AB LMD T6 UPDATE LOWER/UPPER BOUNDS FLAG STD T6 SOD CA NJN SCU1 IF MORE PARAMETERS TO PROCESS LDI KA LMN 1R. ADD T6 SCU2 NJN SCU3 IF INCORRECT ENTRY STD T7 LDD CN+1 SBD CN MJN SCU3 IF LOWER BOUND .GT. UPPER BOUND LDD T5 LMK SYOT ZJN SCU4 IF SYSTEM ORIGIN TYPE LDN 0 GET SYSTEM BOUNDS SFA JCB ADK SYOT CRD AB LDD AB+1 LPN 7 SBD CN+1 MJN SCU3 IF UPPER BOUND .GT. SYSTEM UPPER BOUND LDD AB+1 SHN -3 LPN 7 SBD CN MJN SCU5 IF LOWER BOUND .GT. SYSTEM LOWER BOUND ZJN SCU5 IF LOWER BOUND .EQ. SYSTEM LOWER BOUND SCU3 JMP ILL PROCESS INCORRECT ENTRY SCU4 LDN MXOT-1 SET TO FIX ALL ORIGIN TYPE BOUNDS STD T7 SCU5 LDD CN SHN 3 RAD CN+1 SCU6 LDN 0 GET SERVICE CONTROL TABLE ADDRESS SFA JCB ADD T5 GET SERVICE CONTROL WORD CRD AB LDD AB+1 SET BOUND IN WORD SCN 77 LMD CN+1 STD AB+1 LDN 0 SFA JCB ADD T5 UPDATE SERVICE CONTROL TABLE WORD CWD AB AOD T5 ADVANCE TO NEXT ORIGIN TYPE SOD T7 PJN SCU6 IF MORE BOUNDS TO SET (OT = *SY* ONLY) JMP KBR RETURN SERVICE SPACE 4,25 *** SERVICE,SC,P1XXXX,P2XXXX,...,PNXXXX. * SET SERVICE LIMITS *PN* FOR JOB SERVICE CLASS *SC*. * PN SERVICE * * CT CONTROL POINT TIME SLICE (SECONDS) * CM CM TIME SLICE (SECONDS) * NJ MAXIMUM NUMBER OF JOBS * TD TIME OUT DELAY (SECONDS) FOR SUSPENDED JOBS * CP CONTROL POINT TIME SLICE PRIORITY * TP BASE PRIORITY FOR ON-LINE INTERACTIVE JOBS * FL MAXIMUM FIELD LENGTH/100 OF ANY JOB * AM MAXIMUM MEMORY/100 ALLOWED TO ALL JOBS * EC MAXIMUM EXTENDED MEMORY/*UEBS* FOR ANY JOB * EM MAXIMUM EXTENDED MEMORY/*UEBS* FOR ALL JOBS * DT SERVICE CLASS TO ASSIGN ON A DETACH * PR CPU PRIORITY * IT SYSTEM I/O CPU THRESHOLD * SE CPU SLICE EXTENSION * RS RECALL CPU SLICE * US UNEXTENDED CPU SLICE * * THE FOLLOWING ARE INDICES INTO TABLES OF LIMIT VALUES * DEFINED IN *COMSPFM*. * * FC NUMBER OF FILES IN CATALOG (1-7) * CS CUMULATIVE SIZE FOR INDIRECT ACCESS FILES (1-7) * FS INDIVIDUAL SIZE FOR INDIRECT ACCESS FILES (1-7) * DS INDIVIDUAL SIZE FOR DIRECT ACCESS FILES (1-7) SERVICE DATA C*SERVICE,* LDM 2,KA CHECK SEPARATOR LMN 1R, ZJN SER1 JMP ILL PROCESS INCORRECT ENTRY SER1 LDN CSAT-SVJT SET LENGTH OF JOB CONTROL BLOCK STD T7 LDC TJSC SEARCH FOR SERVICE CLASS RJM SPT SFA JCB READ JOB CONTROL WORDS ADN SVJT CRM SBUF,T7 SBD T7 STD CA+1 SAVE SERVICE BLOCK ADDRESS SHN -14 STD CA * PROCESS NEXT PARAMETER. SER2 AOD KA SKIP SEPARATOR LDC TSVP SEARCH PARAMETER TABLE RJM SPT STD T4 SAVE BYTE NUMBER SBN TSVPE-TSVP ZJN SER3 IF *DT* PARAMETER LDM SERD,T4 SET PROCESSOR ADDRESS STD T6 RJM AOD CONVERT DIGITS * LDD AB+4 LJM 0,T6 EXIT TO PROCESSOR * PROCESS *DT* PARAMETER. SER3 LDC TJSC RJM SPT SEARCH FOR VALID SERVICE CLASS STD AB+4 LDM TSCM,AB+4 SER4 NJN SER7 IF VALID VALUE SER5 JMP ILL PROCESS INCORRECT ENTRY * PROCESS *AM* PARAMETER. SER6 LDD AB+3 ALLOW *AM* UP TO 77777B STM SBUF-1,T4 SCN 7 UJN SER8 CHECK VALUE RANGE * CHECK VALUE RANGE. SER7 LDD AB+3 SER8 ADD AB+2 ADD AB+1 ADD AB NJN SER5 IF VALUE TOO LARGE * STORE VALUE. LDD AB+4 STORE VALUE STM SBUF,T4 LDI KA CHECK SEPARATOR LMN 1R, ZJP SER2 IF MORE PARAMETERS TO PROCESS LDD CA SHN 14 LMD CA+1 STORE JOB CONTROL BLOCK CWM SBUF,T7 JMP KBR RETURN * PROCESS *PR* PARAMETER. SER9 SBN 2 MJN SER10 IF PRIORITY .LT. 2 SBN 100-2 MJN SER7 IF PRIORITY .LE. 77B SER10 JMP ILL PROCESS INCORRECT ENTRY * PROCESS *RS* PARAMETER. SER11 LDM SBUF+CSJT*5-SVJT*5+4 EXISTING *US* VALUE SBD AB+4 SPECIFIED *RS* VALUE UJN SER13 ENSURE *RS* .LE. *US* * PROCESS *US* PARAMETER. SER12 SBM SBUF+CSJT*5-SVJT*5+3 EXISTING *RS* VALUE SER13 MJN SER10 IF *RS* .GT. *US* LDD AB+4 LJM SER4 ENSURE PARAMETER NONZERO * PROCESS INDEX ENTRY. SER14 LDD T4 SET FIELD POSITION SBN TSVPD-TSVP STD T0 MULTIPLY BY 3 SHN 1 ADD T0 LMD TH SET SHIFT INSTRUCTION STM SERA STM SERB LCN 7 SET MASK FIELD SERA SHN ** STM SERC LDD AB+4 SET NEW INDEX VALUE SBN 10 PJN SER10 IF INCORRECT INDEX ADN 10 SERB SHN ** STD T3 LDN TSVPD-TSVP SET SERVICE BLOCK INDEX STD T4 LDM SBUF,T4 INSERT INDEX VALUE IN EXISTING BYTE LPC ** SERC EQU *-1 LMD T3 STD AB+4 LJM SER7 CHECK VALUE RANGE SERD BSS 0 SERVICE COMMAND PROCESSORS CON ILL UNUSED CON SER7 *CT* PARAMETER CON SER7 *CM* PARAMETER CON SER7 *NJ* PARAMETER CON SER7 *TD* PARAMETER CON SER7 *CP* PARAMETER CON SER7 *TP* PARAMETER CON SER7 *FL* PARAMETER CON ILL UNUSED CON SER6 *AM* PARAMETER CON ILL UNUSED CON ILL UNUSED CON SER7 *EC* PARAMETER CON ILL UNUSED CON SER7 *EM* PARAMETER CON SER14 *FS* PARAMETER CON SER14 *CS* PARAMETER CON SER14 *FC* PARAMETER CON SER14 *DS* PARAMETER CON SER3 *DT* PARAMETER CON SER9 *PR* PARAMETER CON SER7 *IT* PARAMETER CON SER7 *SE* PARAMETER CON SER11 *RS* PARAMETER CON SER12 *US* PARAMETER SPC SPACE 4,10 *** SPC,N=X,N=X. * USE X AS DEFAULT SYSTEM PAGE CHARGE FOR PRINT DENSITY N. * N PRINT DENSITY (6 OR 8 LPI). * X LINES CHARGED PER PRINT PAGE. * DEFAULT 6=64,8=85. SPC DATA C*SPC,* SOD KA SPC1 AOD KA LDC TSPC SEARCH PARAMETER TABLE RJM SPT STD T4 SAVE ORDINAL RJM AOD SBK /BIO/PSLL PJN SPC3 IF .GE. TO LOWER LIMIT SPC2 JMP ILL PROCESS INCORRECT ENTRY SPC3 SBK /BIO/PSUL+1-/BIO/PSLL PJN SPC2 IF .GT. UPPER LIMIT LDD AB+4 STM .IPPL,T4 LDI KA CHECK NEXT CHARACTER LMN 1R, ZJN SPC1 IF MORE ENTRIES JMP KBR RETURN SPD SPACE 4,10 *** SPD=N. * SET SYSTEM DEFAULT PRINT DENSITY. * N PRINT DENSITY (6 OR 8 LPI). * N PRINT DENSITY (6 OR 8 LPI ). * DEFAULT = 6. SPD DATA C*SPD* LDC TSPD TABLE OF PRINT DENSITIES RJM SPT SEARCH FOR PARAMETER ADN 3 SHN 1+4 ORDINAL 0 OR 1 MAKES 6 OR 8 LPI STD T1 LDM .IPPL+2 LPC 7417 LMD T1 MERGE *PD* STM .IPPL+2 JMP KBR RETURN SPI SPACE 4,10 *** SPINDOWN. * ENABLE/DISABLE SPINDOWN. * DEFAULT = SPINDOWN ENABLED. SPI DATA C*SPINDOWN.* LDN 1 JMP CSB CHANGE STATUS BIT SPL SPACE 4,10 *** SPL=NNN. * SET SYSTEM DEFAULT PAGE LENGTH. * NNN LINES PER PAGE. * DEFAULT = 60. SPL DATA C*SPL=* RJM ASD SBK /BIO/PSLL PJN SPL2 IF .GE. LOWER LIMIT SPL1 JMP ILL SPL2 SBK /BIO/PSUL+1-/BIO/PSLL PJN SPL1 IF .GT. UPPER LIMIT LDM .IPPL+3 LPC 377 SHN 21-7 LMD AB+4 MERGE LOWER PORTION OF *SPS* SHN 14-4 STM .IPPL+3 LDM .IPPL+2 SCN 17 CLEAR UPPER PORTION OF *SPS* SHN 4 LMD AB+4 MERGE UPPER PORTION OF *SPS* SHN 22-4 STM .IPPL+2 JMP KBR RETURN SPW SPACE 4,10 *** SPW=NNN. * SET SYSTEM DEFAULT PRINT WIDTH. * NNN WIDTH OF PRINT OUTPUT. * DEFAULT = 136. SPW DATA C*SPW=* RJM ASD SBK /BIO/PWLL PJN SPW2 IF .GE. LOWER LIMIT SPW1 JMP ILL SPW2 SBK /BIO/PWMX+1-/BIO/PWLL PJN SPW1 IF .GT. UPPER LIMIT LDM .IPPL+3 LPC 7400 LMD AB+4 STM .IPPL+3 STORE *SPW* JMP KBR RETURN SRST SPACE 4,10 *** SRST=NNNN. * SET SECONDARY ROLLOUT SECTOR THRESHOLD. * NNNN SECTOR COUNT SUCH THAT ALL ROLLOUT FILES SMALLER * THAN NNNN WILL PICK THEIR ROLLOUT DEVICE FROM THE * LIST OF SECONDARY ROLLOUT FILE DEVICES SPECIFIED BY * THE CMRDECK COMMAND *MSAL,S= *. * DEFAULT NNNN = 0. SSR DATA C*SRST=* RJM AOD STM .IPRL+1 JMP KBR RETURN SUBCP SPACE 4,10 *** SUBCP. * TOGGLE SUB-CONTROL POINT INITIALIZATION. * DEFAULT = SUB-CONTROL POINTS DISABLED. SUBCP DATA C*SUBCP.* LDC 24000 JMP CSB CHANGE STATUS BIT SUC SPACE 4,10 *** SECONDARY USER COMMANDS. * ENABLE/DISABLE SECONDARY USER COMMANDS. * DEFAULT = SECONDARY USER COMMANDS DISABLED. * THIS ENTRY IS IGNORED ON A SECURE SYSTEM. SUC DATA C*SECONDARY USER COMMANDS.* LDM .SSML LPN 7 ZJN SUC1 IF NOT SECURE SYSTEM JMP KBR RETURN SUC1 LDC 10020 JMP CSB CHANGE STATUS BIT SYD SPACE 4,10 *** SYSTEM DEBUG. * ENABLE/DISABLE SYSTEM DEBUG. * DEFAULT = SYSTEM DEBUG DISABLED. SYD DATA C*SYSTEM DEBUG.* LDC 30002 JMP CSB CHANGE STATUS BIT TCVM SPACE 4,10 *** TCVM=CC. * SET ASSUMED TAPE CONVERSION MODE ACCORDING TO CC. * CC CONVERSION MODE * * AS ASCII 9 TRACK CONVERSION * US USASI 9 TRACK CONVERSION * EB EBCDIC 9 TRACK CONVERSION TCVM DATA C*TCVM=* LDC TTCV SEARCH PARAMETER TABLE RJM SPT NJN TCV1 IF CONVERSION NOT *AS* ADN 1 TCV1 ADN 1 STM .IPRL+3 JMP KBR RETURN TDEN SPACE 4,10 *** TDEN=CC. * SET ASSUMED TAPE DENSITY ACCORDING TO CC. * CC DENSITY * * HI 556 * LO 200 * HY 800 * HD 800 CPI * PE 1600 CPI * GE 6250 CPI TDEN DATA C*TDEN=* LDC TTDN SEARCH PARAMETER TABLE RJM SPT STD T2 SBN 3 PJN TDE1 IF NINE TRACK DENSITY AOD T2 LDM .IPRL+4 SET *MT* DENSITY SCN 17 LMD T2 UJN TDE2 TDE1 LDM .IPRL+4 SET *NT* DENSITY LPN 77 SHN 14 LMD T2 SHN 6 TDE2 STM .IPRL+4 JMP KBR RETURN TDTY SPACE 4,10 *** TDTY=CC. * SET DEFAULT TAPE DEVICE TYPE ACCORDING TO CC. * CC DEFAULT TAPE DEVICE TYPE * * MT SEVEN TRACK TAPE * CT CARTRIDGE TAPE * NT NINE TRACK TAPE * AT ACS CARTRIDGE TAPE TDTY DATA C*TDTY=* LDC TTDT SEARCH PARAMETER TABLE RJM SPT SHN 4 SET TAPE DEVICE TYPE STD T2 LDM .IPRL+4 SCN 60 LMD T2 UJN TDE2 SET DEFAULT TAPE TYPE TMS SPACE 4,10 *** TMS. * ENABLE/DISABLE TAPE MANAGEMENT SYSTEM. * DEFAULT = TMS DISABLED. TMS DATA C*TMS.* LDC 20001 JMP CSB CHANGE STATUS BIT TPS SPACE 4,10 *** TAPE PF STAGING. * ENABLE/DISABLE STAGING OF PERMANENT FILES FROM NON-ACS TAPE. * DEFAULT = TAPE PF STAGING DISABLED. TPS DATA C*TAPE PF STAGING.* LDC 10200 JMP CSB CHANGE STATUS BIT TRA SPACE 4,10 *** TRACE. * ENABLE/DISABLE TRACE. * DEFAULT = TRACE DISABLED. TRA DATA C*TRACE.* LDC 20040 JMP CSB CHANGE STATUS BIT UNL SPACE 4,10 *** UNLOCK. UNL DATA C*UNLOCK.* LDI T3 CHECK FIRST CHARACTER LMN 1RL STD T3 ZJN UNL1 IF *LOCK* COMMAND LDM .SSML LPN 77 ZJN UNL1 IF UNSECURED SYSTEM LDD TH * LDC 400&1400 UNL1 LMC 1400 JMP CSB CHANGE STATUS BIT UEC SPACE 4,10 *** USER EXTENDED MEMORY. * ENABLE/DISABLE USER EXTENDED MEMORY. * DEFAULT = USER EXTENDED MEMORY DISABLED. UEC DATA C*USER EXTENDED MEMORY.* LDN 40 JMP CSB CHANGE STATUS BIT SPACE 4,10 *** VEBL=NNNN. * SET LIMIT FOR NUMBER OF TIMES THAT *CPUMTR* WILL BYPASS * EXCHANGING TO *NOS/VE* WHEN THERE ARE PP EXCHANGES PENDING. * NNNN MAXIMUM BYPASSES BEFORE EXCHANGE TO *NOS/VE*. * DEFAULT = 0. * MAXIMUM = 7777B. VEB DATA C*VEBL=* LDC VEBL CRD CN RJM ASD ASSEMBLE BYPASS VALUE STD CN+4 LDC VEBL SET *VEBL* VALUE INTO CMR CWD CN JMP KBR RETURN TITLE PARAMETER TABLES. TBDP SPACE 4,10 ** TBDP - TABLE OF BOUNDS PARAMETERS. TBDP BSS 0 CON 2RLA CON 2RUA CON 0 TCPM SPACE 4,7 ** TCPM - TABLE OF CPUS. TCPM BSS 0 CON 2R0= CON 2R1= CON 0 TCSM SPACE 4,10 ** TCSM - TABLE OF CHARACTER SET MODES. TCSM BSS 0 CON 2R63 63 CHARACTER SET CON 2R64 64 CHARACTER SET CON 0 TERMINATOR TDLP SPACE 4,10 ** TDLP - TABLE OF DELAY PARAMETERS. TDLP BSS 0 CON 2RJQ EJT/QFT SCHEDULING CON 2RJS JOB SCHEDULER CON 2RRL RECALL DELAY REDUCTION LIMIT CON 2RCR CPU RECALL CON 2RAR AUTO RECALL CON 2RMP MEMORY PAD CON 0 TMDT SPACE 4,10 ** TMDT - TABLE OF MASS STORAGE DEVICE TYPES. LIST G TMDT BSS 0 TBL "MSEQ" CON 0 END OF TABLE LIST -G PURGMAC TBLM TJOT SPACE 4,10 ** TJOT - TABLE OF JOB ORIGIN TYPES. TJOT BSS 0 CON 2RSY,6060 CON 2RBC,6060 CON 2RRB,2REI CON 2RIA,2RTX CON 0 TJSC SPACE 4,10 ** TJSC - TABLE OF JOB SERVICE CLASSES. TJSC DATA H+"NMSC"+ CON 0 TKCM SPACE 4,10 ** TKCM - TABLE OF KEYPUNCH CONVERSION MODES. TKCM BSS 0 CON 2R26 O26 KEYPUNCH CONVERSION MODE CON 2R29 O29 KEYPUNCH CONVERSION MODE CON 0 END OF TABLE TLDA SPACE 4,10 ** TLDA - TABLE OF LID ATTRIBUTE PARAMETERS. TLDA BSS 0 CON 2R,H HOST SYSTEM CON 2R,L LINKED (REMOTE) SYSTEM CON 2R,D LID IS DISABLED CON 2R,V PRE-VALIDATE USER COMMANDS CON 0 TQPN SPACE 4 ** TQPN - TABLE OF QUEUE PARAMETERS. TQPN BSS 0 CON 2RIL LOWER BOUND FOR INITIAL TIME SLICE CON 2RLP LOWER PRIORITY RANGE CON 2RUP UPPER PRIORITY RANGE CON 2RWF WEIGHTING FACTOR FOR PRIORITY CON 2RIP INITIAL SCHEDULING PRIORITY CON 0 TQUT SPACE 4 ** TQUT - TABLE OF QUEUE TYPES. TQUT BSS 0 CON 2RIN INPUT QUEUE FILES TQUTA CON 2REX EXECUTING JOBS CON 2ROT OUTPUT QUEUE FILES CON 0 TSPC SPACE 4,10 ** TSPC - TABLE OF PRINT DENSITIES. TSPC BSS 0 CON 2R6= CON 2R8= CON 0 TSPD SPACE 4,10 ** TSPD - TABLE OF PRINT DENSITIES. TSPD BSS 0 CON 2R=6 CON 2R=8 CON 0 TSCM SPACE 4,10 ** TSCM - TABLE OF SERVICE CLASS MASK BITS. * * THIS TABLE IS INDEXED BY SERVICE CLASS VALUE. * * ONLY SERVICE CLASSES DEFINED IN THIS TABLE ARE ALLOWED FOR * THE *DT* *SERVICE* PARAMETER AND THE *CLASS* AND *PCLASS* * DIRECTIVES. TSCM INDEX LIST D .SCL HERE LIST * INDEX MXSC TSVP SPACE 4 ** TSVP - TABLE OF SERVICE PARAMETERS. * VALUES IN SERVICE CONTROL TABLE ARE ORDER DEPENDENT. TSVP BSS 0 CON 6060 CON 2RCT CONTROL POINT TIME SLICE CON 2RCM CM TIME SLICE CON 2RNJ NUMBER OF JOBS CON 2RTD TIME OUT DELAY (SUSPENDED JOBS) CON 2RCP CONTROL POINT SLICE PRIORITY CON 2RTP BASE PRIORITY FOR INTERACTIVE JOBS CON 2RFL MAXIMUM FL/JOB CON 6060 CON 2RAM MAXIMUM MEMORY AVAILABLE FOR ALL JOBS CON 6060 CON 6060 CON 2REC MAXIMUM EXTENDED MEMORY/JOB CON 6060 CON 2REM MAXIMUM EXTENDED MEMORY FOR ALL JOBS TSVPD CON 2RFS INDIVIDUAL INDIRECT ACCESS FILE SIZE CON 2RCS CUMULATIVE INDIRECT ACCESS FILE SIZE CON 2RFC NUMBER OF FILES IN CATALOG CON 2RDS INDIVIDUAL DIRECT ACCESS FILE SIZE TSVPE CON 2RDT SERVICE CLASS TO ASSIGN ON AN ATTACH CON 2RPR CPU PRIORITY CON 2RIT SYSTEM I/O CPU THRESHOLD CON 2RSE CPU SLICE EXTENSION CON 2RRS RECALL CPU SLICE CON 2RUS UNEXTENDED CPU SLICE CON 0 TTDN SPACE 4 ** TTDN - TABLE OF TAPE DENSITIES. TTDN BSS 0 CON 2RLO 200 CON 2RHI 556 CON 2RHY 800 CON 2RHD 800 CON 2RPE 1600 CON 2RGE 6250 CON 0 TTDT SPACE 4,10 ** TTDT - TABLE OF TAPE DEVICE TYPES. TTDT BSS 0 CON 2RMT SEVEN TRACK TAPE CON 2RCT CARTRIDGE TAPE CON 2RNT NINE TRACK TAPE CON 2RAT ACS CARTRIDGE TAPE CON 0 END OF TABLE TTCV SPACE 4 ** TTCV - TABLE OF TAPE CONVERSION MODES. TTCV BSS 0 CON 2RAS ASCII 9 TRACK CONVERSION CON 2RUS USASI 9 TRACK CONVERSION CON 2REB EBCDIC 9 TRACK CONVERSION CON 0 END OF TABLE TURE SPACE 4,10 TITLE SUBROUTINES. AODSUB ASDSUB ASNSUB AUN SPACE 4,10 ** AUN - ASSEMBLE USER NAME. * * ENTRY (A) = NUMBER OF CHARACTERS TO ASSEMBLE. * (KA) = ADDRESS OF CHARACTER STRING. * * EXIT (CM - CM+4) = ASSEMBLED NAME. * (A) = 0 IF ASSEMBLY TERMINATED ON *,* OR *.*. * (T0) = NUMBER OF CHARACTERS ASSEMBLED. * * USES T0 - T2. AUN2 AOD T0 ADVANCE CHARACTER COUNT SBN 1 SHN 21-0 FORM BUFFER ADDRESS ADN CM STD T1 LMD T1 CLEAR ADDRESS LMI KA INSERT CHARACTER MJN AUN3 IF CHARACTER PACKED LOW SHN 6 POSITION CHARACTER HIGH AUN3 RAI T1 ASSEMBLE BYTE AOD KA ADVANCE CHARACTER BUFFER SOD T2 DECREMENT CHARACTER COUNT NJN AUN1 IF TO END OF ASSEMBLY LDD T0 AUN SUBR ENTRY/EXIT STD T2 SET CHARACTER COUNT LDN 0 CLEAR ASSEMBLY BUFFER STD T0 CRD CM AOD KA SKIP SEPARATOR AUN1 LDI KA CHECK NEXT CHARACTER SBN 1R9+1 MJN AUN2 IF ALPHANUMERIC SBN 1R*-1R9-1 ZJN AUN2 IF (*) SBN 1R,-1R* ZJN AUNX IF *,* SBN 1R.-1R, ZJN AUNX IF *.* JMP ILL PROCESS INCORRECT ENTRY CDRSUB CPN SPACE 4,10 ** CPN - COMPARE NAMES. * * ENTRY (A) = ADDRESS OF ASSEMBLED NAME. * (CN - CN+4) = NAME FROM COMMON LIBRARIES TABLE. * * EXIT (A) = 0 IF MATCH. * * USES T1. CPN SUBR ENTRY/EXIT STD T1 LDI T1 LMD CN NJN CPNX IF NO MATCH LDM 1,T1 LMD CN+1 NJN CPNX IF NO MATCH LDM 2,T1 LMD CN+2 NJN CPNX IF NO MATCH LDM 3,T1 LMD CN+3 SCN 77 UJN CPNX RETURN ESS SPACE 4,10 ** ESS - EDIT SUBSYSTEM TABLE. * * ENTRY (NC) = SYSTEM CONTROL POINT NUMBER. * * EXIT SUBSYSTEM TABLE COPIED TO CMR. * * USES T1, CM - CM+4. ESS SUBR ENTRY/EXIT LDN 5*SSCTL-1 STD T1 ESS1 LDM .SSCT,T1 CHECK SUBSYSTEM ENTRY SBD NC MJN ESS2 IF NOT RELATIVE CP LDD NC ADN 1 RAM .SSCT,T1 SET ABSOLUTE CP ESS2 SOD T1 PJN ESS1 IF NOT END OF TABLE LDC SSCP FETCH TABLE POINTER CRD CM LDN SSCTL SET TABLE LENGTH STD T1 LDD CM+2 COPY TABLE TO CMR SHN 14 LMD CM+3 CWM .SSCT,T1 UJN ESSX RETURN SAC SPACE 4,10 ** SAC - SET (ENABLE/DISABLE) ALL SECURITY CATEGORIES. * * ENTRY (A) = 0 TO DISABLE ALL CATEGORIES. * = -0 TO ENABLE ALL CATEGORIES. SAC SUBR ENTRY/EXIT STD T0 NJN SAC1 IF ENABLING ALL CATEGORIES LDC LDNI+0 STM SSCA RESTORE SELECTIVE CATEGORY SPECIFICATION SAC1 LDM .SSML+2 SHN -10 SHN 14 LMD T0 ENABLE/DISABLE ALL CATEGORIES STM .SSML+3 STM .SSML+4 SHN -4 STM .SSML+2 UJN SACX RETURN SPT SPACE 4 ** SPT - SEARCH PARAMETER TABLE. * * ENTRY (A) = FWA OF PARAMETER TABLE. * ((KA - KA+1)) = PARAMETER NAME. * * EXIT (A) = INDEX OF ENTRY FOUND. * (T2) = TABLE ADDRESS OF ENTRY FOUND. * (T1) = ((T2)) = PARAMETER NAME. * (KA) = KEYBOARD BUFFER ADDRESS ADVANCED. * * USES T3. SPT2 LDN 2 ADVANCE BUFFER ADDRESS RAD KA LDD T2 RETURN WITH INDEX SBD T3 SPT SUBR ENTRY/EXIT STD T3 SET TABLE FWA STD T2 LDI KA ASSEMBLE PARAMETER NAME SHN 6 LMM 1,KA STD T1 LDI T2 SPT1 LMD T1 ZJN SPT2 IF MATCH FOUND AOD T2 ADVANCE TABLE LDI T2 NJN SPT1 LOOP IF NOT END OF TABLE JMP ILL PROCESS INCORRECT ENTRY SPACE 4,10 ** COMMON DECKS. CLT$ EQU 0 DEFINE *COMPGFP* ACCESS TO CLT JCB$ EQU 0 DEFINE *COMPGFP* ACCESS TO JCB *CALL COMPGFP VAL$ EQU 1 VAC$ EQU 1 SCH$ EQU 1 *CALL COMPVLC SBUF EQU * ERRNG 7776-SBUF-5*CSAT+5*SVJT BUFFER TOO LARGE TTL SET/RCM - RECOVER CENTRAL MEMORY. TITLE IDENT RCM,OVL QUAL RCM ORG OVL *COMMENT SET - RECOVER CENTRAL MEMORY. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. SPACE 4,10 .DSE SET 0 SPACE 4,10 ** MCTSUB - SUBROUTINES COMMON TO MCT PROCESSING. QUAL MCTSUB MACRO LIST G CTE SPACE 4,10 ** CTE - CREATE MEMORY CONTROL TABLE ENTRY. * * ENTRY (A) = CPA FL CONTROL WORD ADDRESS. * (KA) = CP/PCP NUMBER. * (NC) = SYSTEM CP NUMBER. * (CN) = RA/RAX BACKWARD LINK. * (CN+1) = RA/RAX FORWARD LINK. * * USES T1, AB - AB+4, CM - CM+4. * * CALLS GHA, SCA. CTE SUBR ENTRY/EXIT STD T1 LDD KA SET CURRENT CPA/PCPA ADDRESS RJM SCA ADD T1 READ MEMORY CONTROL WORD CRD CM LDD CM+4 FORM RA/RAX + FL/FLX RAD CM+3 SHN -14 NEXT POTENTIAL RA/RAX RAD CM+2 LDD CN+1 NJN CTE1 IF NOT SYSTEM CP STD CM+2 UJN CTE3 SET NO UNASSIGNED MEMORY CTE1 RJM SCA ADD T1 READ FL CONTROL WORD CRD AB SHN -7 CHECK CP/PCP LMD NC NJN CTE2 IF NOT SYSTEM CP LDD T1 RJM GHA GET HIGHEST ADDRESS CTE2 LDD AB+2 SHN 14 RA/RAX OF FORWARD LINK LMD AB+3 SBD AB REMOVE NFL SBD CM+3 CTE3 STD CN+4 SUBTRACT CURRENT RA/RAX + FL/FLX SHN -14 SBD CM+2 SET UNASSIGNED MEMORY STD CN+3 LCN FLSW CALCULATE MCT OFFSET RAD T1 ERRNZ FLSW+2-ECSW CODE DEPENDS ON VALUE SHN 21-1 LMD KA INSERT CP/PCP NUMBER SHN 1 ADC 0 APPEND BASE MCT ADDRESS CTEA EQU *-1 CWD CN STORE MCT WORD LDD CN+4 RAM .ACML+1,T1 SHN -14 ACCUMULATE UNASSIGNED MEMORY ADD CN+3 RAM .ACML,T1 LJM CTEX RETURN .ACML BSS 0 VFD 24/0 AVAILABLE CM (100B WORD BLOCKS) VFD 24/0 AVAILABLE USER XM (*UEBS* WORD BLOCKS) VFD 12/0 RESERVED GHA SPACE 4,10 ** GHA - GET HIGHEST MEMORY ADDRESS. * * ENTRY (A) = CPA FL CONTROL WORD ADDRESS. * (FL - FL+1) = EXECUTION FIELD LENGTH. * * EXIT (A) = 0. * (AB - AB+4) = FL CONTROL WORD IMAGE. GHA1 LDD FL+1 SET TOTAL CM FL STD AB+3 LDD FL CREATE FL CONTROL WORD IMAGE GHA2 STD AB+2 LDN 0 CLEAR UNUSED FIELD STD AB+1 STD AB CLEAR NFL + FL ASSIGNED STD AB+4 GHA SUBR ENTRY/EXIT CRD AB SBN FLSW ZJN GHA1 IF PROCESSING CM LDD AB+1 RAD AB+3 FORM HIGHEST ADDRESS SHN -14 UJN GHA2 CREATE FL CONTROL WORD IMAGE SCA SPACE 4,10 ** SCA - SET CP/PCP AREA ADDRESS. * * ENTRY (A) = CP/PCP NUMBER. * (NC) = SYSTEM CP NUMBER. * * EXIT (A) = CPA/PCPA ADDRESS. SCA1 ADD NC SET REAL CP AREA ADDRESS SHN 7 SCA SUBR ENTRY/EXIT SBD NC MJN SCA1 IF REAL CP ZJN SCA1 IF SYSTEM CP SBN 1 SET PCP AREA ORDINAL SHN 7 ADC 0 ADD BASE PCPA ADDRESS SCAA EQU *-1 UJN SCAX RETURN LIST * ENDM SPACE 4,10 ** MCTPRS - INLINE CODE TO PRESET *MCTSUB* SUBROUTINES. * * EXIT (NS) = MCT ENTRY COUNT. * * USES CM - CM+4. MCTPRS MACRO LIST G LDC MCTP FETCH MCT POINTER CRD CM LDD CM+1 SET FWA OF MCT STM CTEA LDD CM RAM CTEA-1 LDD CM+2 SET NUMBER OF MCT ENTRIES STD NS ERRNZ MCTP-PCPP CODE DEPENDS ON VALUE LDD CM+3 RAM SCAA-1 LDD CM+4 SET PCP AREA BASE ADDRESS STM SCAA LIST * ENDM QUAL * TITLE MAIN ROUTINE. RCM SPACE 4,10 ** RCM - RECOVER CENTRAL MEMORY. RCM RJM INO INITIALIZE OVERLAY RJM DCB DEFINE CM BUFFER SPACE RJM PTR PROCESS POINTERS RJM IPS INITIALIZE PP STATUS RJM CEI CLEAR EST INTERLOCKS RJM VEM VERIFY EI LEVEL / MICROCODE NAME LDN DFPP CRD CM FETCH DAYFILE POINTER WORD LDD CM+1 ADN EXDF*3 STD CA+1 INITIALIZE CENTRAL ADDRESS SHN -14 ADD CM STD CA RJM ROV LOAD AND EXECUTE *RCT* RCTL BSS 0 LOAD ADDRESS FOR *RCT* TITLE SUBROUTINES. SPACE 4,10 ** COMMON SUBROUTINES. IPPSUB MCTSUB SCSSUB SSESUB CEI SPACE 4,10 ** CEI - CLEAR EST INTERLOCKS (FOR SELECTED DEVICES). * * USES AB, T1. * * CALLS SSE. CEI3 SOD T1 PJN CEI1 IF NOT END OF DEVICE TYPES CEI SUBR ENTRY/EXIT LDN CEITL-1 STD T1 SET DEVICE INDEX CEI1 LDM CEIT,T1 LMC 1S17 SEARCH FOR SELECTED EQUIPMENT CEI2 RJM SSE NJN CEI3 IF EQUIPMENT NOT FOUND LDM CEIM,T1 STM CEIA SET DEVICE MASK LDD AB LPC ** CLEAR INTERLOCKS CEIA EQU *-1 STD AB SFA EST,EQ ADK EQDE UPDATE EST ENTRY CWD AB UJN CEI2 SEARCH FOR NEXT EQUIPMENT CEIT BSS 0 TABLE OF DEVICE TYPES CON 2RNC NAD CON 2RND MDI CEITL EQU *-CEIT CEIM BSS 0 TABLE OF DEVICE MASKS CON 3177 NAD CON 6777 MDI IPS SPACE 4,10 ** IPS - INITIALIZE PP STATUS. * * EXIT (CA - CA+1) = NEXT CM ADDRESS. * * USES T3, T4, T6, T7, CM - CM+4, CN - CN+4, CA - CA+1. * * CALLS APP, CLS, HPP. * CHECK FOR DISABLED PP-S. IPS3 LDM .PPL,T4 CHECK PP STATUS RETURNED BY *CTI* SHN 21-0 STM .PPL,T4 MJN IPS4 IF PP DISABLED LDD CM LMC 2R** NJN IPS5 IF PP NOT OFF ON PREVIOUS DEADSTART LDD T4 SHN 4 CALCULATE CHANNEL NUMBER LMD T3 RJM HPP HANG PP IPS4 LDD CM NJN IPS5 IF PP NAME IN PLACE LDD T7 CWM IPSA,ON IPS5 LDN 10 ADVANCE INPUT REGISTER ADDRESS RAD T7 CRD CM AOD T3 COUNT CHANNEL LMN 10D IPS6 NJN IPS3 IF PPS BANK NOT PROCESSED STD T3 AOD T4 ADVANCE STATUS INDEX LCN 10D RAD T6 NJN IPS6 IF ALL PP-S NOT CHECKED LDM .CCHN ZJN IPS9 IF NO CPP-S STD T3 IPS7 LDM .CPPL SHN 21-0 STM .CPPL PJN IPS8 IF PP NOT DISABLED LDD T7 CWM IPSA,ON IPS8 LDN 10 ADVANCE INPUT REGISTER ADDRESS RAD T7 SOD T3 NJN IPS7 IF NOT COMPLETE LOOP IPS9 LDD CA+1 STORE PSEUDO PP INDICATOR SBN 10 CWM IPSA+2,ON * CLEAR EXTENDED PP COMMUNICATION BLOCKS. LDD CN SHN 14 ADD CN+1 SBD CN+4 SHN PPXES-PPCES LENGTH OF EXTENDED PP COMMUNICATION AREA RJM CLS CLEAR EXTENDED PP COMMUNICATION AREA IPS SUBR ENTRY/EXIT * CLEAR PP COMMUNICATION AREAS. LDN PPCP CRD CN LDD CN+4 SET FWA OF PP COMMUNICATION AREA STD CA+1 STD T7 CRD CM STD T3 ADN 10 STD T4 SHN -14 STD CA LDM .PPU SET PP COUNT STD T6 ADM .CCHN SHN 3 SET END OF COMMUNICATIONS AREA SCAN RAD T4 IPS1 LDN 10 CLEAR COMMUNICATION AREA RJM CLS LDD CM LMC 2R** NJN IPS2 IF PP NOT DISABLED ON PREVIOUS DEADSTART LDD T3 CWD CM IPS2 LDN 10 ADVANCE INPUT REGISTER ADDRESS RAD T3 CRD CM READ INPUT REGISTER LMD T4 NJN IPS1 IF ALL PP-S NOT CHECKED STD T3 STD T4 RJM APP ASSIGN *CTI* INITIATED PP-S LDD NC INSERT SYSTEM CP INTO DISABLED PP IR RAM IPSA+1 LJM IPS3 PROCESS PP COMMUNICATIONS AREA IPSA VFD 18/3R***,6/**,36/ VFD 24/3RCIO PTR SPACE 4,10 ** PTR - PROCESS POINTER AREA. * * EXIT (ID) = MACHINE ID. * (LD) = LINK DEVICE STATUS. * * USES AB - AB+4, CM - CM+4, CN - CN+4, T3 - T7, EN. * * CALLS SCS. * * MACROS SFA. PTR SUBR ENTRY/EXIT LDN DSSL CRD CM ADN PLDP-DSSL GET PLD POINTER CRD CN LDN 0 DISABLE *SPLM* STD CN STD CN+1 LDD CM+4 SET RECOVERY MODE IN CMR SCN 7 LMD RM LMN 4 ADD DEADSTART IN PROGRESS FLAG STD CM+4 LDN DSSL CWD CM ADN PLDP-DSSL STORE LIBRARY LOCKED STATUS CWD CN RJM SCS SET CPU STATUS LDN JSCL CRD CN ADN PRBP-JSCL CRD CM LDD CM INTERLOCK PROBE TABLES LPC 3777 STD CM LDC 4000 SET SCHEDULER ACTIVE STD CN LDN JSCL STORE SCHEDULER INTERLOCK CWD CN ADN RDSL-JSCL CLEAR LABEL CHECK CONTROL CWD ZR ADN PRBP-RDSL CWD CM SBN PRBP-SCRL CRD CM LDD CM CLEAR EMERGENCY STEP STATUS LPC -5600 LMC 4000 SET *1MB* (ERROR LOGGING) ACTIVE STD CM LDN 0 CLEAR *1CK* CALLED STATUS STD CM+2 LDN ZERL CRD AB ADN DSDL-ZERL STORE *DSD* BUFFER INTERLOCK CWD CN SBN DSDL-MMFL PRESERVE MACHINE ID CRD ID+LD* ADN INWL-MMFL STORE SCHEDULER INTERLOCK CWM .INWL,ON SBN INWL+1-SCRL CWD CM LCN 0 INITIALIZE FLAG REGISTER STATUS STD AB+3 LDD LD LPC 777 ZJN PTR1 IF NOT MMF ENVIRONMENT SFA EST CRD CM READ EST ENTRY FOR LINK DEVICE ADN EQAE-EQDE CRD T3 LDD T3+2 SHN -6 LPN 3 STM LDSH SET SHIFT COUNT FOR LINK DEVICE LDD CM+4 SHN 3 ADN ALGL FETCH LABEL TRACK FROM MST CRD CM LDD CM+1 SET LABEL TRACK STD AB+4 PTR1 LDK EXML GET EXTENDED MEMORY PARAMETER CRD CM ADK MMFL-EXML CWD ID+LD* ADK MEFL-MMFL CRD CN ADK EFRL-MEFL CWD AB LDD CN+3 SET EXTENDED MEMORY PARAMETERS STM EMFL LDD CN+2 SCN 37 SHN 11 STM UESC SHN 2 SCN 36 STM EMAF SHN -20 STM EMSC LDD CM+4 LPC 777 STD EN ZJN PTR2 IF NO EXTENDED MEMORY EQUIPMENT SFA EST ADK EQDE CRD CM LDD CM+4 SHN 3 ADK DILL CRD AB LDD AB+3 SET EXTENDED MEMORY TYPE SHN -6 LPN 7 STM EMTY PTR2 LJM PTRX RETURN VEM SPACE 4,10 ** VEM - VERIFY EI LEVEL AND MICROCODE NAME. * * ENTRY (HO) = HARDWARE OPTIONS. * * EXIT TO *DSE* IF EI LEVEL OR MICROCODE NAME ERROR. * * USES AB - AB+4, CM - CM+4, CN - CN+4, T1 - T7. VEM SUBR ENTRY/EXIT LDM C8XX NJN VEMX IF NOT CYBER 800 TYPE MAINFRAME LDC MEBF CRD CM GET MICROCODE/EI NAMES PASSED BY *CTI* SBN MEBF-SABL CRD T1 GET MAINFRAME DESCRIPTOR ADDRESS ADN EABL+CPEI-SABL CRD AB LDD AB+1 FETCH ORIGINAL MICROCODE NAME SCN 77 SHN 6 LMD AB SHN 6 ADN 1 CRD T3 ADN 1 CRD CN LDD T3+2 SHN 21-0 PJN VEM1 IF CPU-0 IS ENABLED LDD AB+1 LPN 77 SHN 14 LMD AB+2 FETCH MICROCODE FROM CPU-1 BLOCK ADN 2 CRD CN VEM1 LDN 0 CLEAR MISMATCH FLAG STD T5 LDD T1 GET ORIGINAL EI NAME SHN 14 LMD T1+1 ADN 1 CRD AB LDN 3 COMPARE MICROCODE NAMES STD T3 VEM2 LDM CN,T3 STM VEMA+12,T3 LMM CM,T3 ZJN VEM3 IF VALUES MATCH STD T5 VEM3 SOD T3 PJN VEM2 IF COMPARE NOT COMPLETE LDD T5 NJN VEM4 IF MICROCODE ERROR LDD AB+3 STM VEMB+6 COMPARE EI LEVEL LMD CM+4 NJN VEM5 IF EI ERROR LJM VEMX RETURN VEM4 LDC VEMA *MICROCODE MISMATCH* UJN VEM6 DISPLAY ERROR AND HANG VEM5 LDC VEMB *EI MISMATCH* VEM6 JMP DSE DISPLAY ERROR AND HANG VEMA DATA C*MICROCODE MISMATCH, * VEMB DATA C*EI MISMATCH, * TITLE MEMORY MANAGEMENT ROUTINES. CFC SPACE 4,10 ** CFC - CHECK FL CONTROL WORDS. * * ENTRY (T6) = CP/PCP NUMBER. * (AB - AB+4) = FL CONTROL WORD FOR *FLSW*. * (CN - CN+4) = FL CONTROL WORD FOR *FLSW*+1. * * CALLS SCA. CFC SUBR ENTRY/EXIT LDD AB NJN CFCX IF NFL ASSIGNED LDD AB+4 ZJN CFCX IF NO FL SBD AB+1 STD AB+4 ADJUST FL STD CN+4 LDD AB+1 RESET NFL STD AB RAD AB+3 ADJUST RA SHN -14 RAD AB+2 LDD AB RAD CN+3 LDN 0 CLEAR ROLLOUT VALUE OF NFL STD AB+1 LDD T6 SET CP/PCP ADDRESS RJM SCA ADN FLSW+1 CWD CN STORE FL CONTROL WORDS SBN 1 CWD AB UJN CFCX RETURN DCB SPACE 4,15 ** DCB - DEFINE CM BUFFER SPACE. * * EXIT (EB) = RA/100 FOR *CPUMLD*. * * USES EB, AB - AB+4, CN - CN+4. * * CALLS CMA, RFL. DCB SUBR ENTRY/EXIT RJM RFL RELEASE FIELD LENGTH LDN ZERL CRD AB ADN RPLP-ZERL FETCH FWA OF RPL CRD CN LDC 2S12+AB CHECK AVAILABLE MEMORY RJM CMA LDD AB+1 ZJN DCB2 IF NO FREE MEMORY STD EB ADC CPML+PRSL-4001 PJN DCB2 IF REQUIRED FL CROSSES 131K LDD AB+3 SBK CPML+PRSL DCB1 PJN DCBX IF ENOUGH FL DCB2 LDN CMRL CRD AB GET CMR LENGTH LDD CN SHN 14 FWA OF RPL LMD CN+1 ADN 77 ROUND RPL ADDRESS SHN -6 STD EB SET NEW LOAD ADDRESS FOR *CPUMLD* LDD AB+4 SBK CPML+PRSL CHECK FL NEEDED SBD EB PJN DCB1 IF REQUIRED FL IN CMR LDC DCBA JMP DSE DISPLAY MESSAGE AND HANG DCBA DATA C*LACKING MEMORY FOR CM RECOVERY.* FFL SPACE 4,20 ** FFL - FIND FORWARD LINK FOR MCT ENTRY. * * ENTRY (KA) = MCT ORDINAL. * (NS) = MCT ENTRY COUNT. * (T2) = MEMORY TYPE INDICATOR. * = 0 FOR CENTRAL MEMORY. * = 1 FOR EXTENDED MEMORY. * (CA - CA+1) = RA + FL OF CURRENT CP/PCP. * * EXIT (T7) = FL/FLX AT FORWARD LINK CP/PCP. * (CN+1) = CP/PCP NUMBER OF FORWARD LINK. * (T5 - T6) = RA/RAX AT FORWARD LINK CP/PCP. * * ERROR TO *DSE* IF FL CONTROL WORD ERROR. * * USES T3 - T7, CM. * * CALLS RCW, SCA. FFL7 AOM CM,T2 SET CP/PCP SELECTED LDD CN+1 ZJN FFL2 IF FORWARD LINK NOT FOUND RJM SCA ADN 6 STORE SELECTION STATUS CWD CM FFL SUBR ENTRY/EXIT LDN 0 STD CN+1 PRESET NO FORWARD LINK CRD T3 LDN 17 INITIALIZE FOR SCAN STD T5 * FETCH FL CONTROL WORD FROM CP/PCP AREA. FFL1 RJM RCW ZJN FFL7 IF END OF SEARCH LDD AB+2 SBD CA VERIFY FL CONTROL WORD SHN 14 ADD AB+3 SBD CA+1 CHECK RA - CURRENT POSITION SBD AB PJN FFL3 IF NOT INVALID RA OR NFL FFL2 LDC =C*FL CONTROL WORD ERROR.* JMP DSE DISPLAY ERROR AND HANG FFL3 LDD AB+2 COMPARE WITH PREVIOUS DISTANCE SBD T5 SHN 14 ADD AB+3 CHECK RA NEAREST CURRENT POSITION SBD T6 NJN FFL5 IF NOT SAME RA LDD T3 NJN FFL1 IF PREVIOUS CP/PCP HAD NFL ASSIGNED LDD AB NJN FFL4 IF THIS CP/PCP HAS NFL ASSIGNED LDD T7 NJN FFL4 IF PREVIOUS CP/PCP HAD FL LDD NC SBD T4 FFL3.1 PJN FFL1 IF NOT PCP LDD KA ZJN FFL1 IF CP00 (CMR) FFL4 LDD AB+4 ZJN FFL6 IF CP/PCP HAS NO FL ASSIGNED * COMMON RA-S W/O FL MUST PRECEDE SAME RA WITH FL. FFL5 PJN FFL3.1 IF RA FARTHER FROM CURRENT POSITION LDD AB+2 STD T5 LDD AB+3 SET RA CLOSEST TO CURRENT POSITION STD T6 LDD AB+4 PRESERVE FL FFL6 STD T7 LDD AB SAVE NFL STD T3 LDD T4 DEFINE POTENTIAL FORWARD LINK STD CN+1 UJN FFL5 LOOP FOR NEXT CP/PCP MVE SPACE 4,10 ** MVE - MOVE NFL. * * ENTRY (CA - CA+1) = RA - NFL OF PREVIOUS CP. * (AB - AB+4) = FL CONTROL WORD. * (CN - CN+4) = FL CONTROL WORD. * * USES AB+2, AB+3, CN+1, CN+2, CM - CM+4. MVE3 ADD AB+3 COMPUTE RA + FL STD T0 SHN -14 ADD AB+2 COMPARE WITH NEXT RA - NFL SBD CA NJN MVE1 IF MOVE REQUIRED LDD T0 LMD CA+1 NJN MVE1 IF NOT CP-S WITH ADJOINING FL MVE SUBR ENTRY/EXIT LDD CN+4 NJN MVE3 IF RECOVERED SUBSYSTEM (PRESERVE FL) MVE1 LDD AB+2 SHN 14 LMD AB+3 SBD AB SET RA - NFL FOR MOVE STD CM+3 STD CM+2 SHN -14 STD CM+1 LDD CA SET RA FOR CP SHN 14 LMD CA+1 SBD CN+4 STD AB+3 SHN -14 STD AB+2 SHN 14 LMD AB+3 SBD AB SET NEW RA - NFL STD CM+4 STD CN+2 SHN -14 STD CN+1 LDD AB ZJN MVEX IF NO NFL ADD CN+4 SBN 1 STD CM LDD HO SHN 0-13 NJN MVE2 IF NOT CME MAINFRAME LDC 4000 STD CM+3 STD CM+4 MVE2 LRD CM+1 LDD CM+3 READ BLOCK OF NFL ADD CM SHN 6 CRM MBUF,HN LRD CN+1 LDD CM+4 MOVE NFL ADD CM SHN 6 CWM MBUF,HN SOD CM PJN MVE2 IF NOT END OF MOVE LJM MVEX RETURN RCW SPACE 4,20 ** RCW - READ FL CONTROL WORD FROM CP/PCP AREA. * * ENTRY (T2) = MEMORY TYPE INDICATOR. * = 0 FOR CENTRAL MEMORY. * = 1 FOR EXTENDED MEMORY. * (T4) = PREVIOUS CP/PCP NUMBER. * (KA) = CURRENT CP/PCP NUMBER. * (LA) = RELATIVE CONTROL WORD ADDRESS. * (NS) = NUMBER OF MCT ENTRIES. * * EXIT (A) = 0 IF END OF CP/PCP SCAN. * (T4) = CP/PCP FOR FL CONTROL WORD. * (AB - AB+4) = FL CONTROL WORD. * (CM - CM+4) = CP/PCP *CRCW* WORD. * * CALLS GHA, SCA. RCW SUBR ENTRY/EXIT RCW1 AOD T4 LMD NS ZJN RCWX IF END OF SEARCH LMD NS LMD KA ZJN RCW1 IF CURRENT CP/PCP LDD T4 RJM SCA SET CP/PCP AREA ADDRESS ADD LA CRD AB READ FL CONTROL WORD SBD LA ADN 6 GET CP SELECTION STATUS CRD CM LDM CM,T2 NJN RCW1 IF THIS CP/PCP ALREADY FORWARD LINK LDD T4 RCW2 LMD NC NJN RCWX IF NOT SYSTEM CP LDD LA RJM GHA GET HIGHEST MEMORY ADDRESS * LDN 0 UJN RCW2 RETURN RFL SPACE 4,15 ** RFL - RELEASE FIELD LENGTH. * * ENTRY (NC) = SYSTEM CP NUMBER. * (FL - FL+1) = EXECUTION FIELD LENGTH. * * EXIT FL OF USER JOBS AT CP-S RELEASED. * FL OF NON-RECOVERED SUBSYSTEMS RELEASED. * * USES AB - AB+4, CA - CA+1, CM - CM+4, CN - CN+4, T5 - T7. * * CALLS CFC, MVE, SCA, RMT. RFL8 RJM RMT REBUILD MEMORY CONTROL TABLE LDN ACML CWM .ACML,ON STORE UNASSIGNED MEMORY RFL SUBR ENTRY/EXIT RJM RMT LDD FL STD CN+1 SET EXECUTION MEMORY SIZE LDD FL+1 STD CN+2 LDD NC START BACKWARDS FROM SYSTEM CP STD T6 RFL1 LDD CN+1 SAVE RA - NFL STD CA LDD CN+2 STD CA+1 LDD T6 FORM MCT INDEX SHN 1 ADC 0 APPEND BASE MCT ADDRESS RFLA EQU *-1 CRD T6 READ MCT ENTRY LDD T6 ZJN RFL8 IF BACK LINKED TO CP ZERO RJM SCA ADN FLSW READ FL CONTROL WORDS CRD AB ADN 1 CRD CN ADN JCIW-FLSW-1 READ JOB CONTROL CRD CM RJM CFC CHECK FL CONTROL WORDS LDD T6 SBD NC PJN RFL4 IF PSEUDO CONTROL POINT LDC TRSS STD T5 LDI T5 CHECK SUBSYSTEM ID RFL2 LMD CM+2 ZJN RFL3 IF RECOVERED SUBSYSTEM AOD T5 LDI T5 NJN RFL2 IF NOT END OF TABLE STD CN+4 RFL3 LDD T6 CHECK CONTROL POINT LMN 1 ZJN RFL5 IF FIRST CP (NO MOVE) RFL4 RJM MVE RFL5 LDD CN+4 CLEAR FL ASSIGNMENT STD AB+4 LDD T6 SET CP/PCP ADDRESS RJM SCA ADN FLSW+1 CWD CN RESET FL CONTROL WORDS SBN 1 CWD AB ADN ECSW-FLSW FETCH EXTENDED MEMORY CONTROL WORD CRD CM ADC CPAS CRD AB SHN -7 LMD NC NJN RFL6 IF NOT LAST CP LDD AB+3 ADD AB+4 STD CM+3 SET RAX TO END OF USER XM BLOCK SHN -14 ADD AB+2 STD CM+2 RFL6 LDD CN+4 NJN RFL7 IF RECOVERED SUBSYSTEM * LDN 0 STD CM+4 CLEAR FLX LDD T6 RJM SCA ADN ECSW UPDATE CP/PCP AREA CWD CM RFL7 LJM RFL1 LOOP FOR NEXT CP TRSS BSS 0 TABLE OF RECOVERED SUBSYSTEMS CON IFSI IAF CON TRSI TAF CON BISI BATCHIO CON MTSI MAGNET CON SMSI SMF CON NVSI NVE CON FZSI FROZEN JOB CON 0 END OF TABLE RMT SPACE 4,10 ** RMT - REBUILD MEMORY CONTROL TABLE. * * ENTRY (NC) = SYSTEM CP NUMBER. * (NS) = NUMBER OF MCT ENTRIES. * * USES KA, KB, LA, ST, CA - CA+1, CN - CN+4, T2 - T7. * * CALLS CTE, FFL, SCA. RMT3 RJM FFL FIND FORWARD LINK FOR MCT ENTRY LDD KA NJN RMT5 IF NOT CP ZERO LDD CN+1 LMN 1 ZJN RMT6 IF CORRECT FORWARD LINK * LDC =C*FL CONTROL WORD ERROR.* RMT4 LJM FFL2 DISPLAY ERROR AND HANG RMT5 ADN 1 CHECK CURRENT CP/PCP LMD NC NJN RMT6 IF NOT LAST CP LDD NC LMD CN+1 NJN RMT4 IF NOT LINKED TO SYSTEM CP RMT6 LDD LA RJM CTE CREATE MCT ENTRY RMT7 LDD T7 ADD T6 SET RA/RAX + FL/FLX STD CA+1 SHN -14 ADD T5 ADJUST CURRENT POSITION STD CA LDD KA NEW BACKWARD LINK STD CN LDD CN+1 SET NEXT CP/PCP STD KA SOD KB NJN RMT3 IF NOT END OF CP/PCP-S STD CN+1 LDD KA CHECK NEXT CP LMD NC NJN RMT4 IF NOT SYSTEM CP LDD LA RJM CTE CREATE MCT ENTRY FOR SYSTEM CP SOD ST LMN ECRL PJN RMT2 IF XM YET TO BE PROCESSED RMT SUBR ENTRY/EXIT LDN 1 STD T2 RMT1 LDD T2 SET CP/PCP ADDRESS RJM SCA ADN 6 READ *MA* WORD OF EXCHANGE PACKAGE CRD CM STD ST SAVE PARTIAL ADDRESS LMD ST STD CM+1 CLEAR MONITOR ADDRESS FIELD STD CM LMD ST STORE CP/PCP SELECTION STATUS CWD CM AOD T2 ADVANCE CP/PCP NUMBER LMD NS NJN RMT1 IF MORE CP/PCP-S * LDN 0 CRM .ACML,ON CLEAR UNASSIGNED MEMORY ACCUMULATOR RMTA LDN 1 * LDN 0 (NO USER EXTENDED MEMORY) STD ST LDN CMRL RMT2 STD LA SET FL CONTROL WORD ADDRESS CRD T3 SBN FLSW ERRNZ FLSW+2-ECSW CODE DEPENDS ON VALUE SHN -1 STD T2 SET MEMORY TYPE INDICATOR CRD CN LDN 0 INITIALIZE FOR CP ZERO STD KA LDD NS SET LOOP COUNT STD KB LJM RMT7 INITIALIZE CURRENT POSITION SPACE 4,10 ** COMMON DECKS. LIST X *CALL COMPCMA LIST * SPACE 4,10 USE LITERALS DUMP LITERALS BLOCK SPACE 4,10 ERRNG MBUF-* OVERFLOW INTO BUFFER SPACE 4,10 ** COMMON SUBROUTINES. NVECPU INO SPACE 4,15 ** INO - INITIALIZE OVERLAY. * * EXIT (NC) = SYSTEM CP NUMBER. * (NS) = NUMBER OF MCT ENTRIES. * (FL - FL+1) = CM EXECUTION FL. * * ERROR TO *DSE* IF CONSOLE TYPE CHANGED BY DEADSTART. * * USES T3, AB - AB+4, CA - CA+1, CM - CM+4, CN - CN+4. * * CALLS CLS, RPN. * * MACROS MCTPRS, SFA. INO SUBR ENTRY/EXIT LDC TCMB STD T3 LDN 0 CLEAR CMR BLOCKS STD CA LDI T3 SET CM ADDRESS INO1 STD CA+1 AOD T3 LDI T3 CALCULATE WORD COUNT SBD CA+1 RJM CLS CLEAR CMR AOD T3 LDI T3 NJN INO1 IF ALL BLOCKS NOT CLEARED LDN NCPL CRD CM GET CP COUNT ADN MABL-NCPL CRD CN READ MEMORY POINTERS ADN MCTP-MABL CRD AB AOD CM+1 SET SYSTEM CP NUMBER STD NC LDD CN+2 SET EXECUTION MEMORY SIZE STD FL LDD CN+3 STD FL+1 LDD AB+1 SET MCT BASE ADDRESS STM RFLA LDD AB RAM RFLA-1 LDN ECRL FETCH EXTENDED MEMORY STATUS CRD CM LDD CM+1 NJN INO2 IF USER XM DEFINED SOM RMTA INO2 MCTPRS SET UP *MCTSUB* ROUTINES LDN DSEQ SFA EST FETCH EST ENTRY FOR DISPLAY CONSOLE ADK EQAE CRD CN LDM .DCS ZJN INO3 IF DEADSTART INITIATED FROM CC545 LDN 1 INO3 LMD CN+2 NJN INO4 IF CONSOLE TYPE CHANGED RJM RPN LJM INOX RETURN INO4 LDC INOA LJM DSE DISPLAY ERROR AND HANG INOA DATA C*CONSOLE TYPE CHANGED.* TCMB SPACE 4,10 ** TCMB - TABLE OF CMR BLOCKS CLEARED FOR RECOVERY. TCMB CON 0,JSNL CON CMCL,ZERL CON CPAL,DSDL CON DSCP*CPAS+MS1W,DSCP*CPAS+MS1W+10 CON 0 END OF TABLE SPACE 4,10 QUAL RCM EQU /RCM/RCM RCTL EQU /RCM/RCTL ERRNG 7777-*-4 IF OVERFLOW OF PP TTL SET/RCT - RECOVER CMR TABLES. TITLE IDENT RCT,RCTL QUAL RCT ORG RCTL *COMMENT SET - RECOVER CMR TABLES. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. SPACE 4,10 .DSE SET 0 RCT SPACE 4,10 ** RCT - RECOVER CMR TABLES. RCT BSS 0 ENTRY RJM PRT PRESET *RCT* * VERIFY CMR TABLES. LDN 0 STD LA RCT1 LDM TCTP,LA SET PROCESSOR ADDRESS STD T1 RJM 0,T1 VERIFY TABLE * PROCESSORS RETURN WITH (A) = TABLE LENGTH OR 0. RAD CA+1 ADVANCE CENTRAL ADDRESS SHN -14 RAD CA AOD LA INCREMENT TABLE NUMBER LMN TSGTE NJN RCT1 IF NOT END OF TABLES * COMPLETE TABLES. RJM CKB CLEAR KEYBOARD BUFFER LDC BIOL CRD CN LDD CA SET CM ADDRESS STD CN+3 SHN 14 LMD CA+1 STD CN+4 ADN 77 SHN -6 STD T0 LDD EB SET LOAD ADDRESS FOR *CPUMLD* STD CN SBD T0 PJN RCT2 IF NO CMR OVERFLOW LDC =C*CMR OVERFLOW.* JMP DSE DISPLAY ERROR AND HANG RCT2 LDC BIOL STORE CPUMTR LOAD ADDRESS CWD CN ADK DSCP*CPAS+SNSW-BIOL CRD CM LDD CM+4 CLEAR *DSD* RECOVERY INTERLOCK SCN 1 STD CM+4 LDC DSCP*CPAS+SNSW CWD CM RJM DRO DISPLAY RECOVERY OPTIONS LJM SET2 COMPLETE RECOVERY TITLE TABLE VERIFICATION PROCESSORS. BDT SPACE 4,10 ** BDT - ALLOCATE BUFFERED DEVICE CONTROL TABLES. * * EXIT (A) = TABLE LENGTH. * * USES T1, CN - CN+4. * * CALLS CLS, CTA. BDT SUBR ENTRY/EXIT LDC BIOL CRD CN LDD CN+1 ADD CN+2 ZJN BDTX IF NO BUFFERED DEVICES LDC 1S12+BIOL RJM CTA LDN /ICT/BDTAL/5 ADVANCE CENTRAL ADDRESS RAD CA+1 SHN -14 RAD CA LDD CN+4 COMPUTE LENGTH OF TABLES SBD CA+1 STD T1 PJN BDT1 IF NO BORROW SOD CN+3 AOD T1 BDT1 LDD CN+3 SBD CA SHN 14 LMD T1 UJN BDTX RETURN BST SPACE 4,10 ** BST - VERIFY BUFFER STATUS TABLES. * * EXIT (A) = 0. * TO *DSE* IF TABLE ADDRESS ERROR. * * USES EQ, CA - CA+1, CM - CM+4. * * CALLS SME. BST SUBR ENTRY/EXIT LDK MMFL CRD CM LDD CM+1 LPC 1000 ZJN BSTX IF NO SHARED BUFFERED DEVICES LDN NOPE STD EQ * PROCESS NEXT EQUIPMENT. BST1 RJM SME SEARCH FOR MASS STORAGE EQUIPMENT ZJN BSTX IF END OF MS EST ENTRIES SHN 21-11-21+13 PJN BST1 IF NOT SHARED DEVICE SHN 21-5-21+11 PJN BST1 IF NOT BUFFERED DEVICE LDD AB+4 GET BST ADDRESS SHN 3 ADK BDLL CRD CM LDD CA VERIFY BST ADDRESS LMD CM+1 NJN BST2 IF ADDRESS DOES NOT MATCH LDD CA+1 LMD CM+2 NJN BST2 IF ADDRESS DOES NOT MATCH LDK BSTL ADVANCE CM ADDRESS RAD CA+1 SHN -14 RAD CA UJP BST1 PROCESS NEXT EQUIPMENT BST2 LDC =C*BST POINTER ERROR.* JMP DSE DISPLAY MESSAGE AND HANG CHT SPACE 4,10 ** CHT - VERIFY CHANNEL TABLES. * * EXIT (A) = LENGTH OF CHANNEL TABLES. * * USES T1, T2. * * CALLS CTA. CHT SUBR ENTRY/EXIT LDC 2S12+CHTP RJM CTA LDN CTALL SET CONTROLWARE TABLE LENGTH STD T1 LDD CA READ CONTROLWARE TABLE SHN 14 LMD CA+1 ADN CTALL*2 CRM MBUF,T1 LDN 5*CTALL-1 EDIT CONTROLWARE TABLE STD T2 CHT1 LDM MBUF,T2 CLEAR LOAD FLAGS LPC 777 STM MBUF,T2 SOD T2 PJN CHT1 IF NOT END OF TABLE LDD CA SHN 14 LMD CA+1 STORE CONTROLWARE TABLE ADN CTALL*2 CWM MBUF,T1 LDN CTALL*3 LENGTH OF CHANNEL TABLES UJN CHTX RETURN CLT SPACE 4,10 ** CLT - VERIFY COMMON LIBRARIES TABLE. * * EXIT (A) = TABLE LENGTH. * * CALLS CTA. * * MACROS CFI. CLT SUBR ENTRY/EXIT LDC CLTP RJM CTA CFI CLT,CM+2 LENGTH OF TABLE UJN CLTX RETURN DFB SPACE 4,10 ** DFB - VERIFY DAYFILE BUFFERS. * * EXIT (A) = 0. * * USES T3, T6, T7, CM - CM+2. * * CALLS CDP, CLS, CTA. DFB SUBR ENTRY/EXIT LDN DFPP SET FWA OF DAYFILE POINTERS CRD T6 LDN 0 SET SYSTEM DAYFILE BUFFER NUMBER STD T3 DFB1 RJM CDP LDN 3 ADVANCE DAYFILE POINTER ADDRESS RAD T7 SHN -14 RAD T6 AOD T3 ADVANCE DAYFILE NUMBER LMN EXDF NJN DFB1 IF NOT END OF EXCESS DAYFILES LDC 2S12+DFPP RJM CTA LDN 1 SET PP DUMP BUFFER NOT BUSY STD CM+4 LDN DFPP STORE POINTER CWD CM LDC DFDS+3 CLEAR DUMP BUFFER RJM CLS LDN 0 LJM DFBX RETURN ECB SPACE 4,10 ** ECB - VERIFY *EICB* TABLES. * * EXIT (A) = LENGTH OF *EICB* TABLES. * * USES AB - AB+4, CM - CM+4, CN - CN+4, T3 - T7. * * CALLS CTA. ECB2 ADN DSCM+3-D7RS READ DFT/OS POINTER CRD CN LDD AB+3 SAVE SIZE OF *MLST* LPN 77 STD T2 LDD CN+2 READ *DFT* CONTROL WORD SHN 14 LMD CN+3 SHN -4 SHN 6 LMD CN CRD AB ADN DFRQ READ NOS REQUEST AREA POINTER CRD T3 LDD T3+2 READ NOS REQUEST HEADER SHN 14 LMD T3+3 SHN -4 SHN 6 LMD T3 CRD CM LDD AB+4 LPC 7426 CLEAR FLAGS (V, R, Z, L, E7) ADN 10 SET LOGGING FLAG STD AB+4 * POST REQUEST TO *DFT* TO UPDATE ERROR THRESHOLDS. LDM .CPU CHECK CPU CONFIGURATION LPN 2 ZJN ECB3 IF CPU-1 PRESENT LDN ZERL CLEAR THRESHOLDS FOR CPU-1 CRM ECBB,ON ECB3 LDM DFTV ZJN ECB4 IF *DFT* VERSION 3 LDK STIN&STRY SET STATUS = *INACTIVE* ECB4 LMK STRY SET STATUS = *READY* STD CM+4 LDD CN+2 REWRITE *DFT* CONROL WORD SHN 14 LMD CN+3 SHN -4 SHN 6 LMD CN CWD AB LDN ECBAL/5 SET WORD COUNT STD T3+4 LDD T3+2 WRITE NOS REQUEST HEADER SHN 14 LMD T3+3 SHN -4 SHN 6 LMD T3 CWD CM ADN 1 WRITE THRESHOLD REQUEST TO BUFFER CWM ECBA,T3+4 LDD CN+3 GET SIZE OF *DFT/OS* BUFFER LPN 17 SHN 14 LMD CN+4 ADD T2 ADD SIZE OF *MLST* ADK DSCBL+1 (A) = LENGTH OF *EICB* TABLES ECB SUBR ENTRY/EXIT LDC UEML CRD T3 ADK EIBP-UEML CRD CM LDD CM+3 ADD CM+4 ZJN ECBX IF NO *EICB* LDC 3S12+EIBP RJM CTA * CALCULATE ORIGINAL MACHINE FL. LDD CA FETCH MEMORY ALLOCATION VALUES SHN 14 LMD CA+1 ADN D7ST CRD AB ADN D7CM-D7ST CRD CM ADN 1 CRD CN LDD T3+4 LPN 2 NJP ECB1 IF UEM DEFINED LDD CN+4 CALCULATE CURRENT NVE FIELD LENGTH SBD CN+2 STD CM+1 PJN ECB0 IF NO BORROW AOD CN+1 ADJUST FOR BORROW AOD CM+1 ECB0 LDD CN+3 SBD CN+1 STD CM ADD CM+1 ZJN ECB1 IF NO NVE FL LDD CM+1 CHECK IF NVE FL IS WITHIN RESERVED BLOCK SBD CM+4 STD CM+4 PJN ECB0.1 IF NO BORROW AOD CM+3 ADJUST FOR BORROW AOD CM+4 ECB0.1 LDD CM SBD CM+3 STD CM+3 MJN ECB1 IF FL WITHIN RESERVED BLOCK ADD CM+4 ZJN ECB1 IF FL WITHIN RESERVED BLOCK LDD CM+4 CONVERT 1000B-WORD BLOCKS TO WORDS LPN 7 SHN 11 STM DSFL+1 LDD CM+3 LPN 7 SHN 14 LMD CM+4 SHN -3 STM DSFL * CLEAR CHECKPOINT AND STEP FLAGS. ECB1 LDD AB LPC 6763 STD AB LDD CA UPDATE STATUS WORD SHN 14 LMD CA+1 ADN D7ST CWD AB * PRESERVE NOS *SCD* ACTIVE STATUS AND CLEAR C170 *MDD* FLAG * PP RESIDENT SAVE AREA INTERLOCK. ADN D7RS-D7ST CRD CN LDD CN+1 LPC 1S10 PRESERVE NOS *SCD* ACTIVE STATUS STD CN+1 LDM MDDP LPN 10 SET DEDICATED *MDD* STATUS SHN 13-3 RAD CN+1 LDD CA SHN 14 LMD CA+1 ADN D7RS CWD CN LJM ECB2 UPDATE *DFT* CONTROL WORD * *DFT* THRESHOLD REQUEST INFORMATION. ECBA VFD 4/,8/RQTH,8/0,8/7,8/0,8/0,8/THCI,8/THUE IOU VFD 4/,8/RQTH,8/0,8/7,8/1,8/0,8/THCM,8/THUE MEMORY VFD 4/,8/RQTH,8/0,8/7,8/2,8/0,8/THCP,8/THUE CPU-0 ECBB VFD 4/,8/RQTH,8/0,8/7,8/2,8/1,8/THCP,8/THUE CPU-1 VFD 60/0 TERMINATOR ECBAL EQU *-ECBA LENGTH OF THRESHOLD DATA (PP WORDS) EJT SPACE 4,10 ** EJT - VERIFY EXECUTING JOB TABLE. * * EXIT (A) = EJT LENGTH. * * CALLS CTA. * * MACROS CFI. EJT SUBR ENTRY/EXIT LDN EJTP RJM CTA CFI EJT,CM+2 UJN EJTX RETURN EMB SPACE 4,10 ** EMB - VERIFY ERROR MESSAGE BUFFER. * * EXIT (A) = ERROR MESSAGE BUFFER LENGTH. * * USES AB - AB+4, CM - CM+4, CN - CN+4, T1 - T1+4. * * CALLS CTA. EMB6 LDN ZERL CRD AB CRD CN AOD AB STD AB+1 SET *MESSAGES LOST* FLAG LDC EMBMN-2 DEFAULT TO MINIMUM BUFFER SIZE EMBA EQU *-1 (ACTUAL SIZE IF WITHIN LIMITS) STD CN+4 EMB7 LDD CM+1 STORE BUFFER INTERLOCK/*IN* WORD SHN 14 LMD CM+2 CWD AB ADN 1 STORE BUFFER *OUT*/*LIMIT* WORD CWD CN LDD CN+4 ADN 2 EMB SUBR ENTRY/EXIT LDC 1S12+EMBP RJM CTA LDD CM+1 READ BUFFER INTERLOCK/*IN* WORD SHN 14 LMD CM+2 CRD AB ADN 1 READ BUFFER *OUT*/*LIMIT* WORD CRD CN LDD CN+4 ADC -EMBMN+2 ZJN EMB1 IF *LIMIT* IS AT MINIMUM MJP EMB6 IF *LIMIT* IS TOO SMALL EMB1 LDD CN+4 SET BUFFER RECOVERY SIZE STM EMBA LDN 0 STD AB+4 CLEAR INTERLOCK AND *1MD ACTIVE* FLAGS STD CM+3 SET *IN*.LT.INDEX CORRECT LDD AB+3 *IN* SBD CN+4 *LIMIT* PJP EMB6 IF *IN*.GE.*LIMIT* LDD CN+3 *OUT* STD CM+4 SET INITIAL MESSAGE INDEX EMB2 SBD CN+4 MJN EMB4 IF INDEX.LT.*LIMIT* NJP EMB6 IF INDEX.GT.*LIMIT* EMB3 STD CM+4 RESET MESSAGE INDEX EMB4 LDD AB+3 *IN* SBD CM+4 ZJP EMB7 IF ALL MESSAGE HEADERS CHECKED PJN EMB5 IF INDEX.LT.*IN* LDD CM+3 NJP EMB6 IF *IN*.LT.INDEX NOT CORRECT EMB5 STD CM+3 SET *IN*.LT.INDEX FLAG LDD CM+1 READ NEXT MESSAGE HEADER SHN 14 LMD CM+2 ADD CM+4 ADN 2 CRD T1 LDD T1+3 GET MESSAGE LENGTH FROM HEADER ZJN EMB3 IF BUFFER TERMINATOR RAD CM+4 INCREMENT BUFFER INDEX UJN EMB2 CHECK MESSAGE HEADER WORD COUNT EST SPACE 4,10 ** EST - VERIFY EQUIPMENT STATUS TABLE. * * EXIT (A) = EST LENGTH. * (LE) = LAST MASS STORAGE EQUIPMENT + 1. * * CALLS CTA, SSE. * * MACROS CFI, SFA. EST2 CFI EST,CM+2 EST SUBR ENTRY/EXIT LDN ESTP RJM CTA LDD CM+3 SET LAST MASS STORAGE EQUIPMENT + 1 STD LE * CLEAR LOAD FLAGS IN *CM* DEVICE ENTRIES. LDC 1S17+2RCM SEARCH FOR *CM* ENTRY EST1 RJM SSE NJN EST2 IF NONE FOUND SFA EST,EQ ADN EQAE GET EST ASSIGNMENT WORD CRD AB LDD AB+2 CLEAR LOAD FLAGS LPC 1777 STD AB+2 SFA EST,EQ REWRITE EST ENTRY ADN EQAE CWD AB UJN EST1 CHECK NEXT ENTRY EVT SPACE 4,10 ** EVT - VERIFY EVENT TABLE. * * EXIT (A) = TABLE LENGTH. * * USES AB - AB+4. * * CALLS CTA. EVT SUBR ENTRY/EXIT LDC EVTP RJM CTA LDD CM CLEAR INTERLOCK SHN 14 LMD CM+1 CRD AB LDD AB+4 SCN 1 STD AB+4 LDD CM SHN 14 LMD CM+1 CWD AB LDN EVTLL TABLE LENGTH UJN EVTX RETURN EXM SPACE 4,15 ** EXM - VERIFY EXTENDED MEMORY BUFFERS. * * * ENTRY (EN) = EXTENDED MEMORY EST ORDINAL IF DEFINED. * (LD) = LINK DEVICE EST ORDINAL IF DEFINED. * * EXIT (A) = 0. * * USES AB - AB+4, CM - CM+4. * * CALLS CLS, CTA. EXM SUBR ENTRY/EXIT LDK UEML CRD AB LDD AB+4 LPN 2 ADD LD LPC 777 ADD EN ZJN EXMX IF NO EXTENDED MEMORY DEFINED LDC EDBP CHECK DISPLAY BUFFER ADDRESS RJM CTA LDN EDBL CLEAR DISPLAY BUFFER RJM CLS LDD EN ZJN EXM3 IF NO EXTENDED MEMORY DEFINED LDC EPBP CRD AB LDD AB+3 SHN -6 STD AB ZJN EXM3 IF NO I/O BUFFERS LDC 3S12+EPBP RJM CTA EXM2 LDC ECBL CLEAR BUFFER RJM CLS SOD AB NJN EXM2 IF NOT END OF BUFFERS * LDN 0 EXM3 LJM EXMX RETURN EXP SPACE 4,10 ** EXP - ALLOCATE C176 EXCHANGE PACKAGES. * * EXIT (A) = 0. * * CALLS SBD, SXA. EXP SUBR ENTRY/EXIT LDD HO SHN -11 LMN 7 NJN EXP1 IF NOT C176 RJM SBD SEARCH FOR BUFFERED DEVICES RJM SXA SETUP EXCHANGE PACKAGES EXP1 LDN 0 UJN EXPX RETURN FNT SPACE 4,10 ** FNT - VERIFY FILE NAME TABLE. * * EXIT (A) = FNT LENGTH. * * USES AB - AB+4. * * CALLS CTA. * * MACROS CFI. FNT SUBR ENTRY/EXIT LDN FNTP RJM CTA LDD CA READ SYSTEM FILE FNT ENTRY SHN 14 LMD CA+1 ERRNZ SYFO SYSTEM FILE FNT ORDINAL .NE. 0 CRD AB LDD AB+4 SET SYSTEM FILE BUSY SCN 1 LMN 1 STD AB+4 LDD CA WRITE SYSTEM FILE FNT ENTRY SHN 14 LMD CA+1 ERRNZ SYFO SYSTEM FILE FNT ORDINAL .NE. 0 CWD AB CFI FNT,CM+2 UJN FNTX RETURN FOT SPACE 4,10 ** FOT - VERIFY FAMILY ORDINAL TABLE. * * EXIT (A) = FOT LENGTH. * * CALLS CTA. FOT SUBR ENTRY/EXIT LDC FOTP RJM CTA LDD CM+2 UJN FOTX RETURN INB SPACE 4,10 ** INB - VERIFY INSTALLATION BLOCK. * * EXIT (A) = LENGTH OF BLOCK. * * CALLS CTA. INB SUBR ENTRY/EXIT LDC 2S12+INBP RJM CTA LDD CM+4 UJN INBX RETURN JCA SPACE 4,10 ** JCA - VERIFY JOB CONTROL BUFFER TABLE (*JCB*). * * EXIT (A) = LENGTH OF AREA. * * CALLS CTA. JCA SUBR ENTRY/EXIT LDK JBCP RJM CTA LDC MXJC*JCBE UJN JCAX RETURN LDB SPACE 4,10 ** LDB - ALLOCATE *L* DISPLAY BUFFER. * * EXIT (A) = 0. * * CALLS CLS, CTA. LDB SUBR ENTRY/EXIT LDC 2S12+LDSP RJM CTA LDC LDSY+LCOM+5 CLEAR BUFFER RJM CLS LDN 0 UJN LDBX RETURN LID SPACE 4,10 ** LID - VERIFY LOGICAL ID TABLE. * * EXIT (A) = TABLE LENGTH. * * CALLS CTA. LID SUBR ENTRY/EXIT LDC LIDP RJM CTA LDD CM+2 UJN LIDX RETURN MCT SPACE 4,10 ** MCT - VERIFY MEMORY CONTROL TABLE. * * EXIT (A) = 0 IF NO PSEUDO CONTROL POINTS. * = LENGTH OF PSEUDO CONTROL POINT AREAS. * * USES T3. * * CALLS CTA. MCT SUBR ENTRY/EXIT LDC MCTP RJM CTA LDD CM+2 FORM MCT LENGTH SHN 1 RAD CA+1 ADVANCE CENTRAL ADDRESS SHN -14 RAD CA SOD CM+2 EXTRACT PCP COUNT SBD NC ZJN MCTX IF NO PSEUDO CONTROL POINTS STD T3 LDC 3S12+PCPP VERIFY PCP POINTER RJM CTA LDD T3 SET LENGTH OF PCP AREAS SHN 7 UJP MCTX RETURN MSA SPACE 4,10 ** MSA - VERIFY MASS STORAGE ALLOCATION TABLE. * * EXIT (A) = TABLE LENGTH. * * CALLS CTA. MSA SUBR ENTRY/EXIT LDC MSAP RJM CTA LDN MXRS UJN MSAX RETURN MST SPACE 4,10 ** MST - VERIFY MASS STORAGE TABLES. * * EXIT (A) = 0. * * USES EQ, AB - AB+4. * * CALLS RMC, SME. * * MACROS SFA. MST1 RJM RMC RECOVER MST RJM SME NJN MST1 IF NOT END OF EST MST SUBR ENTRY/EXIT LDN RDEQ STD EQ SFA EST,,EQ FETCH EST ENTRY FOR *RD* DEVICE CRD AB UJN MST1 RECOVER *RD* DEVICE ODB SPACE 4,10 ** ODB - ALLOCATE OPERATOR DISPLAY BUFFER. * * EXIT (A) = 0. * * USES CM - CM+4. * * CALLS CLS. ODB SUBR ENTRY/EXIT LDN ZERL CRD CM AOD CM SET UP INTERLOCK WORD LDD CA SHN 14 LMD CA+1 CWD CM AOD CA+1 SHN -14 RAD CA LDN LODS-1 CLEAR BUFFER RJM CLS LDN 0 UJN ODBX RETURN ORT SPACE 4,16 ** ORT - VERIFY OPTICAL DISK REQUEST TABLE. * * EXIT (A) = TABLE LENGTH. * * CALLS CTA. * * MACROS CFI. ORT SUBR ENTRY/EXIT LDC ORTP RJM CTA CHECK TABLE ADDRESS CFI ORT,CM+2 LENGTH OF TABLE UJN ORTX RETURN OST SPACE 4,16 ** OST - VERIFY OPTICAL DISK STATUS TABLE. * * EXIT (A) = TABLE LENGTH. * * USES T1. * * CALLS CTA, SSE. OST2 LDD T1 RETURN LENGTH OST SUBR ENTRY/EXIT LDC OSTP RJM CTA CHECK TABLE ADDRESS LDN 0 STD T1 LDC 1S17+2ROD OST1 RJM SSE SEARCH FOR *OD* EQUIPMENT NJN OST2 IF NO EQUIPMENT FOUND LDN OSTE RAD T1 UJN OST1 LOOP PDB SPACE 4,10 ** PDB - CLEAR PREVIEW DISPLAY BUFFER. * * USES CA, CA+1. * * CALLS CLS. PDB SUBR ENTRY/EXIT LDD CA SET INTERLOCK WORD ADDRESS SHN 14 ADD CA+1 CWM PDBA,ON INITIALIZE INTERLOCK WORD STD CA+1 ADVANCE CENTRAL ADDRESS SHN -14 STD CA LDC LPDS-1 RJM CLS CLEAR PREVIEW DISPLAY BUFFER LDN 0 UJN PDBX RETURN PDBA VFD 12/7777B,12/0,12/0,12/0,12/0 PSV SPACE 4,10 ** PSV - VERIFY PP SAVE AREAS. * * EXIT (A) = 0. * * USES CM - CM+4. * * CALLS CLS, CTA. PSV SUBR ENTRY/EXIT LDD LD SHN 0-13 ZJN PSVX IF NO ISHARED DEVICES LDC 2S12+PPSP READ POINTER WORD RJM CTA CHECK TABLE ADDRESS PSV1 LDC PPSA CLEAR SAVE AREA RJM CLS SOD CM+4 NJN PSV1 IF MORE SAVE AREAS UJN PSVX RETURN QFT SPACE 4,10 ** QFT - VERIFY QUEUE FILE TABLE. * * EXIT (A) = QFT LENGTH. * * CALLS CTA. * * MACROS CFI. QFT SUBR ENTRY/EXIT LDN QFTP RJM CTA CFI QFT,CM+2 UJN QFTX RETURN RPT SPACE 4,10 ** RPT - VERIFY RING PORT TABLE. * * EXIT (A) = TABLE LENGTH. * * USES T4. * * CALLS SSE. RPT1 LDN RPTL ADD TABLE LENGTH RAD T4 RPT2 RJM SSE SEARCH FOR *RP* EQUIPMENT ZJN RPT1 IF FOUND LDD T4 ZJN RPTX IF NO TABLE SPACE RESERVED LDD CA+1 LPN 1S"RPTSM"-1 ADD T4 RPT SUBR ENTRY/EXIT LDN 0 STD T4 LDC 1S17+2RRP UJN RPT2 SEARCH FOR EQUIPMENT SAB SPACE 4,10 ** SAB - VERIFY SYSTEM ATTRIBUTE BLOCK. * * EXIT (A) = TABLE LENGTH. * * CALLS CTA. SAB SUBR ENTRY/EXIT LDK SABL RJM CTA LDD CM+2 TABLE LENGTH UJN SABX RETURN SCD SPACE 4,10 ** SCD - VERIFY *SCD* PARAMETER TABLE. * * EXIT (A) = 0. * * USES CM - CM+4. * * CALLS CLS, CTA, SPT. SCD1 LDC PSAL CLEAR SAVE AREA RJM CLS SCD2 LDN 0 SCD SUBR ENTRY/EXIT LDM C8XX NJN SCD2 IF NOT 180-CLASS MAINFRAME LDC SCDP FETCH PARAMETER TABLE POINTER CRD CM LDD CM+2 ADD CM+3 ZJN SCD1 IF NO *SCI* PARAMETER TABLE LDC 2S12+SCDP RJM CTA RJM SPT SET UP PARAMETER TABLE UJN SCD1 RESERVE PP RESIDENT SAVE AREA SCT SPACE 4,10 ** SCT - VERIFY SUBSYSTEM CONTROL TABLE. * * EXIT (A) = TABLE LENGTH. * * CALLS CTA. SCT SUBR ENTRY/EXIT LDC 2S12+SSCP RJM CTA LDN SSCTL*2 TABLE LENGTH UJN SCTX RETURN SDA SPACE 4,10 ** SDA - VERIFY STATISTICAL DATA AREA. * * EXIT (A) = STATISTICAL DATA AREA LENGTH. * * CALLS CTA. SDA SUBR ENTRY/EXIT LDC SDAP CHECK STATISTICAL AREA POINTER RJM CTA LDN SDAL SET STATISTICAL AREA LENGTH UJN SDAX RETURN SIE SPACE 4,10 ** SIE - *SET* INTERNAL ERROR. * * ENTRY TABLE VERIFICATION PROCESSOR MISSING. * * EXIT TO *DSE*. SIE CON 0 ENTRY LDC =C+*SET* INTERNAL ERROR IN *RCM*.+ JMP DSE DISPLAY ERROR AND HANG SIT SPACE 4,10 ** SIT - VERIFY *SECDED* ID TABLE. * * EXIT (A) = 0. * * CALLS CLS, CTA. SIT SUBR ENTRY/EXIT LDM C8XX ZJN SITX IF LOWER 800 SERIES MAINFRAME LDC SCRL RJM CTA LDN 2*/SCR/UIDL CLEAR *SECDED* ID TABLE RJM CLS LDN 0 UJN SITX RETURN TRT SPACE 4,10 ** TRT - VERIFY TRACK RESERVATION TABLE POINTERS. * * EXIT (A) = 0. * * USES EQ, CM - CM+4, CN - CN+4. * * CALLS CDL, SME. TRT2 LDD AB+4 FETCH TRT LENGTH SHN 3 ADK TDGL CRD CM ADN TRLL-TDGL READ TRT ADDRESS CRD CN LDD CN+4 CHECK TRT ADDRESS LMD CA+1 NJN TRT1 IF ADDRESS BAD LDD CN+3 LPN 77 LMD CA NJN TRT1 IF ADDRESS BAD RJM CDL RAD CA+1 ADVANCE CENTRAL ADDRESS SHN -14 RAD CA TRT3 RJM SME NJN TRT2 IF NOT END OF MS EST TRT SUBR ENTRY/EXIT LDN NOPE-1 STD EQ UJN TRT3 BEGIN EQUIPMENT SEARCH TRT1 LDC =C*TRT ADDRESS ERROR.* JMP DSE DISPLAY ERROR AND HANG TITLE PRIMARY SUBROUTINES. CTA SPACE 4,10 ** CTA - CHECK TABLE ADDRESS. * * ENTRY (A) BITS 0 - 11 = POINTER WORD ADDRESS. * BITS 12 - 14 = BYTE INDEX. * (CA - CA+1) = CURRENT CM ADDRESS. * * EXIT (A) = 0. * (T5) = POINTER WORD ADDRESS. * (CM - CM+4) = POINTER WORD. * * USES T4. CTA2 LDI T4 CHECK POINTER LMD CA LPN 77 NJN CTA1 IF POINTER WORD ERROR CTA SUBR ENTRY/EXIT STD T5 SAVE POINTER WORD ADDRESS SHN -14 ADN CM SET BYTE ADDRESS WITHIN POINTER WORD STD T4 LDD T5 FETCH POINTER WORD CRD CM LDM 1,T4 CHECK POINTER VALUE LMD CA+1 ZJN CTA2 IF MATCHING ADDRESS CTA1 LDC =C*TABLE ADDRESS ERROR.* JMP DSE SPACE 4,10 ** COMMON SUBROUTINES. COMMON TITLE SUBROUTINES. CDP SPACE 4,15 ** CDP - CHECK DAYFILE POINTERS. * * ENTRY (T3) = BUFFER NUMBER. * (T6 - T7) = FWA OF DAYFILE POINTERS. * (CA - CA+1) = ADDRESS OF NEXT BUFFER. * * EXIT (CA - CA+1) ADVANCED. * * USES AB - AB+4, CM - CM+4, CN - CN+4. CDP SUBR ENTRY/EXIT LDD T6 VERIFY BUFFER ADDRESS SHN 14 LMD T7 CRD CM READ FIRST/IN POINTERS ADN 1 CRD AB ADN 1 READ DAYFILE FST CRD CN LDD CM+1 VERIFY BUFFER POINTER LMD CA+1 NJN CDP1 IF POINTER ERROR LDD CM LMD CA ZJN CDP2 IF POINTER CORRECT CDP1 LJM CTA1 *TABLE ADDRESS ERROR.* CDP2 STD CM+2 CLEAR UNUSED BYTES STD CM+3 STD AB STD AB+1 STD AB+3 LDD T3 SET BUFFER INDEX SHN 6 ADC 103 APPEND NOT BUSY / NOT INTERLOCKED STATUS STD CN+4 LDD T6 UPDATE BUFFER POINTERS SHN 14 ADD T7 CWD CM ADN 1 CWD AB ADN 1 STORE DAYFILE FST CWD CN LDD CM+1 SET NEXT BUFFER ADDRESS ADD AB+2 STD CA+1 SHN -14 ADD CM STD CA LJM CDPX RETURN RMC SPACE 4,15 ** RMC - RECOVER MSTS FROM CMR. * * ENTRY (EQ) = EST ORDINAL. * (AB - AB+4) = EST ENTRY. * (CA - CA+1) = CURRENT CM ADDRESS. * * EXIT (CA - CA+1) = CM ADDRESS ADVANCED. * TO *DSE* IF MST POINTER ERROR. * * USES T1, AB - AB+4, CA - CA+1, CM - CM+4, CN - CN+4. * * CALLS RCA. * * MACROS SFA. RMC SUBR ENTRY/EXIT LDD AB+4 SAVE MST POINTER STD T1 SHN 3 ADN ACGL GET DEVICE ACTIVITY WORD CRD CN ADN SDGL-ACGL CRD AB ADN STLL-SDGL READ DEVICE STATUS WORD CRD CM RJM RCA CHECK VALID MST POINTER LMD T1 ZJN RMC1 IF VALID ADDRESS LDC =C*MST POINTER ERROR.* JMP DSE DISPLAY MESSAGE AND HANG RMC1 LDD CN+4 CLEAR *ACGL* INTERLOCKS LPC 140 STD CN+4 LDD CN CLEAR PARITY DEVICE ACCESS BIT FOR THIS MF SCN ** (MACHINE MASK) RMCA EQU *-1 STD CN LDD AB+3 CHECK DEVICE MNEMONIC LMC 2RDE ZJN RMC1.1 IF *DE* DEVICE LMN 2RDP&2RDE ZJN RMC1.1 IF *DP* DEVICE LDN 0 CLEAR *DAS* OFFLINE UNIT / CYLINDER COUNT STD CN+1 RMC1.1 LDD AB+4 CLEAR MST/TRT INTERLOCK IN *SDGL* SCN 77 STD AB+4 LDD CM+1 CLEAR *1MV* ACTIVE FLAG LPC -200 STD CM+1 LDD CM+4 SET DEVICE NOT BUSY SCN 3 LMN 1 STD CM+4 LDD T1 SHN 3 ADN ACGL CWD CN ADN SDGL-ACGL CWD AB ADN STLL-SDGL CWD CM ADN BDLL-STLL CRD CM LDD CM CLEAR 9853/*DAS* FLAGS SCN 16 STD CM LDD CM+3 CLEAR DAS MMF PARITY DEVICE ACCESS FLAGS LPC 7177 STD CM+3 LDD T1 SHN 3 ADN BDLL CWD CM ADK DALL-BDLL CRD CN ADN CTLL-DALL CRD AB ADK MCLL-CTLL CWD ZR LDN 0 STD AB+2 CLEAR ACTIVE BUFFER COUNT STD CN+1 CLEAR UNIT INTERLOCKS LDD CN CLEAR DEVICE ACTIVITY SCN 77 STD CN LDD T1 SHN 3 ADN DALL CWD CN ADN CTLL-DALL CWD AB LDD EQ NJN RMC2 IF NOT *RD* DEVICE SFA EST,,EQ CRD CM LDC 2RRD RESTORE *RD* DEVICE TYPE STD CM+3 LDN 0 STD CM+2 SFA EST,EQ CWD CM RMC2 LDN MSTXL ADVANCE CM ADDRESS RAD CA+1 SHN -14 RAD CA LJM RMCX RETURN SBD SPACE 4,10 ** SBD - SEARCH FOR BUFFERED DEVICES. * * EXIT (KI) = BUFFERED DEVICE COUNT. * * USES EQ, CM - CM+4. * * CALLS CKB, PBD, SME. SBD1 LDD AB+4 READ MST SHN 3 ADN DILL CRD CM LDD CM+2 ZJN SBD2 IF NOT BUFFERED DEVICE RJM PBD SBD2 RJM SME NJN SBD1 IF NOT END OF EST SBD SUBR ENTRY/EXIT LDN 0 STD EQ RJM CKB CLEAR CHANNEL ACCUMULATOR UJN SBD2 ENTER LOOP TITLE LEVEL 3 OPTION PROCESSING. SPACE 4,10 * LEVEL 3 DEADSTART SYNTAX TABLE. TSYN BSS 0 CON ABT CON AUT CON DAU CON GRN CON RGO CON UPC CON 0 END OF TABLE ABT SPACE 4,10 *** ABORT. * ABORT,B. * ABORTS LEVEL 3 RECOVERY. CHECKPOINTS ALL DEVICES UNLESS * *B* IS SPECIFIED IN WHICH CASE ONLY NON-BUFFERED DEVICES * ARE CHECKPOINTED. ABT DATA C*ABORT* LDM DSTO SAVE CURRENT ABORT OPTION LPN 14 STD T1 LDI KA LMN 1R. ZJN ABT3 IF *.* LMN 1R,&1R. NJN ABT1 IF NOT *,* AOD KA LDI KA LMN 1RB ZJN ABT2 IF *B* ABT1 JMP ILL PROCESS INCORRECT ENTRY ABT2 LDN 14 ABT3 LMN 4 STD T0 SBD T1 NJN ABT4 IF NOT SAME ABORT OPTION STD T0 ABT4 LDM DSTO SET ABORT OPTION SCN 14 LMD T0 STM DSTO LPN 4 UPDATE *ABORT.* OPTION LINE SHN 21-2 ADC OBUFA RJM UDS LDD T0 UPDATE *ABORT,B.* OPTION LINE LPN 10 SHN 21-3 ADC OBUFB ABT5 RJM UDS UPDATE DISPLAY STATUS JMP KBR RETURN AUT SPACE 4,10 *** AUTOLOAD. * TOGGLE SELECTION OF AUTOLOADING OF MASS STORAGE CONTROLLERS. * INITIALLY AUTOLOADING IS SELECTED. AUT DATA C*AUTOLOAD.* LDN 2 TOGGLE AUTOLOAD OPTION BIT LMM DSTO STM DSTO LPN 2 LMN 2 SHN 21-1 ADC OBUFC JMP ABT5 UPDATE DISPLAY STATUS DAU SPACE 4,10 *** AUTO. * TOGGLE THE *DSD* *AUTO* COMMAND SELECTION. * INITIALLY *AUTO* IS SELECTED. DAU DATA C*AUTO.* AOM DAUA TOGGLE THE SELECT LPN 1 SHN 21-0 ADC OBUFE JMP ABT5 UPDATE DISPLAY STATUS DAUA CON 1 DEFAULT STATUS IS *YES* GRN SPACE 4,10 *** GRENADE. * TOGGLE SELECTION OF THE GRENADE OPERATION FOR MASS STORAGE * CONTROLLERS THAT ARE AUTOLOADED. INITIALLY THE GRENADE * OPERATION IS NOT SELECTED. * * THE GRENADE OPERATION CAN INTERRUPT ACTIVITY ON A DRIVE * WHICH IS BEING ACCESSED FROM ANOTHER CONTROLLER. GRN DATA C*GRENADE.* LDN 1 TOGGLE GRENADE OPTION BIT LMM DSTO STM DSTO LPN 1 SHN 21-0 ADC OBUFD JMP ABT5 UPDATE DISPLAY STATUS RGO SPACE 4,10 *** GO. * CONTINUE WITH RECOVERY. RGO DATA C*GO.* RGO1 LDN 0 GET CHANNEL WORD RJM GCW LDI T1 LPN 40 ZJN RGO2 IF CHANNEL UP LDN 0 SET DISPLAY REQUESTED STD DS LDC OBUFLA DISPLAY THE CHANNEL DOWN STATUS STM DRBA LJM DRO1 UPDATE DISPLAY RGO2 LDM DAUA CHECK *AUTO* SELECT LPN 1 ZJN RGO3 IF *AUTO* NOT SELECTED LDK PPCP LOCATE *DSD* PP COMMUNICATION AREA CRD CM LDD CM+4 ADN 10+2 CWM DAU,ON RGO3 LJM DROX RETURN UPC SPACE 4,10 *** UPCHAN. * CLEAR THE DOWN STATUS OF THE DEADSTART CHANNEL. UPC DATA C*UPCHAN.* LDC OBUFL RESET THE DISPLAY STM DRBA LDN 0 GET CHANNEL WORD RJM GCW LDI T1 CLEAR THE DOWN STATUS SCN 40 STI T1 LDD T2 STORE THE CHANNEL WORD SHN 14 LMD T3 CWD CM LDN CTALL ACCESS THE EJT ASSIGNMENT TABLE RJM GCW LDN 0 CLEAR POSSIBLE EJT ASSIGNMENT STI T1 LDD T2 RESTORE THE WORD SHN 14 LMD T3 CWD CM LDK ESTP CRD AB UPC1 SOD AB+2 ZJP RGO2 IF END OF EST SFA EST ADK EQDE CRD CM LDN CM INITIALIZE CHANNEL INDEX STD T1 UPC2 AOD T1 ADVANCE CHANNEL BYTE INDEX LMN CM+3 ZJN UPC1 IF NO MORE CHANNELS LDI T1 ZJN UPC1 IF NULL CHANNEL LMD DH LPN 77 NJN UPC2 IF NOT DEADSTART CHANNEL LDI T1 CLEAR DOWN STATUS LPC 4777 STI T1 SFA EST,AB+2 UPDATE EST ENTRY ADK EQDE CWD CM UJN UPC1 LOOP ON SEARCH DRO SPACE 4,10 ** DRO - DISPLAY RECOVERY OPTIONS. * * USES DP. * * CALLS AKL, CKB. * * MACROS CFNC, DFIM. * * NOTES EXIT FROM *DRO* IS THRU KEYBOARD ASSEMBLY ON * A *GO.* COMMAND. DFIM (CON SDCF),*+1 DROX LDC DDCF DESELECT DISPLAY CONTROLLER CFNC LDD TH DELAY SBN 1 NJN *-1 DCN. CH LJM * ENTRY/EXIT DRO EQU *-1 LDC DRB STM AKLB LDC ** SET *IBF* IMMEDIATE RETURN ORG *-1 LOC IBFA UJN IBFX RETURN LOC *O STM IBFA LDN DP STD LA LDC TSYN-1 SET SYNTAX TABLE ADDRESS STI LA LDN 1 SET KEYBOARD ASSEMBLY STD AM LDD DS NJP RGO1 IF NO DISPLAY REQUESTED DRO1 AOM AKLA DRO2 RJM AKL ASSEMBLE KEYBOARD LINE LDD KI ZJN DRO2 IF NO INPUT RJM CKB UJN DRO1 GET NEXT LINE DRB SPACE 4,10 ** DRB - DISPLAY LEVEL 3 RECOVERY BUFFERS. * * MACROS CFNC. DRB SUBR ENTRY/EXIT CFNC SLMF SELECT LEFT SCREEN - MEDIUM CHARACTERS LDC OBUFL DISPLAY OPTIONS * LDC OBUFLA (DEADSTART CHANNEL DOWN) DRBA EQU *-1 OAM OBUF,CH FJM. *,CH WAIT TRANSMISSION COMPLETE DCN. CH CFNC SRSF SELECT RIGHT SCREEN - SMALL CHARACTERS LDC IBUFL DISPLAY INSTRUCTIONS OAM IBUF,CH STM AKLA CFNC THCF TRANSFER HIDDEN AND CLEAR DCN. CH UJP DRBX RETURN GCW SPACE 4,10 ** GCW - GET CHANNEL CONTROL WORD. * * ENTRY (A) = CHANNEL TABLE OFFSET. * * EXIT (T1) = BYTE ADDRESS. * (T2 - T3) = CM WORD ADDRESS. * (CM - CM+4) = CHANNEL TABLE WORD. * * USES CM - CM+4, T1 - T3. GCW SUBR ENTRY/EXIT STD T3 SAVE TABLE OFFSET LDD DH DEADSTART CHANNEL STD T1 GCW1 AOD T3 INCREMENT WORD INDEX LCN 5 DIVIDE BY 5 LOOP RAD T1 PJN GCW1 IF NOT END OF DIVIDE ADN 5+CM STD T1 LDK CHTP FORM ADDRESS CRD CM LDD CM+2 SHN 14 LMD CM+3 SBN 1 ADD T3 ADD WORD INDEX CRD CM STD T3 SHN -14 STD T2 UJN GCWX RETURN UDS SPACE 4,10 ** UDS - UPDATE DISPLAY STATUS. * * *UDS* UPDATES THE SELECTION STATUS (YES OR NO) OF A * COMMAND IN THE OPTION DISPLAY BUFFER. * * ENTRY (A) = 1/ST, 5/0, 12/BUF. * ST = SELECTION STATUS (0=NO, 1=YES). * BUF = DISPLAY BUFFER ADDRESS. * * USES T1, T2. UDS SUBR ENTRY/EXIT STD T1 SAVE DISPLAY BUFFER ADDRESS SHN 1-21 SELECTION STATUS * 2 ADC UDSA STD T2 LDI T2 UPDATE DISPLAY STI T1 LDM 1,T2 STM 1,T1 UJN UDSX RETURN UDSA DATA H* NO* DATA H* YES* SPACE 4,10 * LEVEL 3 OPTION BUFFER (LEFT SCREEN). OBUF BSS 0 DFIM (CON YCPH) CON LN03,CH17 DATA H*LEVEL 3 OPTIONS* DFIM (CON LN07) CON LN13,CH09 DATA H*ABORT.* CON CH49 OBUFA DATA H* NO* DFIM (CON LN11) CON LN19,CH09 DATA H*ABORT,B.* CON CH49 OBUFB DATA H* NO* DFIM (CON LN15) CON LN25,CH09 DATA H*AUTOLOAD.* CON CH49 OBUFC DATA H* YES* DFIM (CON LN19) CON LN31,CH09 DATA H*GRENADE.* CON CH49 OBUFD DATA H* NO* DFIM (CON LN23) CON LN37,CH09 DATA H*AUTO.* CON CH49 OBUFE DATA H* YES* OBUFL EQU *-OBUF DFIM (CON LN26) CON LN43,CH09 DATA H*DEADSTART CHANNEL IS DOWN,* DFIM (CON LN27) CON LN45,CH09 DATA H$ENTER *UPCHAN.* TO CONTINUE.$ OBUFLA EQU *-OBUF * LEVEL 3 INSTRUCTION BUFFER (RIGHT SCREEN). IBUF BSS 0 CON YCPH,CH03 DATA H*INSTRUCTIONS FOR SELECTING LEVEL 3 RECOVERY OPTIONS.* CON HL03,CH07 DATA H*ENTER COMMAND TO TOGGLE SELECTION.* CON HL04,CH07 DATA H*ENTER GO. TO CONTINUE RECOVERY.* CON LN07,CH03 DATA H*ABORT.* CON LN08,CH07 DATA H*CHECKPOINT ALL DEVICES AND ABORT LEVEL 3 RECOVERY.* CON LN09,CH07 DATA H+SELECTING *ABORT.* DESELECTS *ABORT,B.*.+ CON LN11,CH03 DATA H*ABORT,B.* CON LN12,CH07 DATA H*CHECKPOINT ALL NON-BUFFERED DEVICES AND ABORT LEVEL* CON LN13,CH07 DATA H+3 RECOVERY. SELECTING *ABORT,B.* DESELECTS *ABORT.*+ CON LN15,CH03 DATA H*AUTOLOAD.* CON LN16,CH07 DATA H*TOGGLE THE SELECTION OF BUFFER CONTROLLER AUTOLOADING ,.* CON LN18,CH03 DATA H*GRENADE.* CON LN19,CH07 DATA H*TOGGLE THE SELECTION OF THE GRENADE FUNCTION. THE* CON LN20,CH07 DATA H*GRENADE FUNCTION IS ISSUED ONCE THE CONTROLWARE IS* CON LN21,CH07 DATA H*LOADED, CAUSING UNIT RESERVATIONS TO BE CLEARED ON* CON LN22,CH07 DATA H*ALL 844 UNITS PHYSICALLY CONNECTED TO EACH CONTROLLER ,.* CON LN24,CH03 DATA H*AUTO.* CON LN25,CH07 DATA H*TOGGLE THE SELECTION OF THE DSD AUTO COMMAND.* IBUFL EQU *-IBUF SPACE 4,10 USE LITERALS DUMP LITERALS BLOCK PRT SPACE 4,10 ** PRT - PRESET *RCT*. * * USES CM - CM+4. * * MACROS MDIN. PRT SUBR ENTRY/EXIT LDK MMFL CRD CM LDD CM+3 SET MACHINE MASK RAM RMCA LDM .DCS ZJN PRTX IF DEADSTART INITIATED FROM CC545 MDIN MODIFY DISPLAY GENERATORS UJN PRTX RETURN SPACE 4,10 * INSTRUCTION MODIFICATION BLOCK. DIMB ERRNG 7777-*-4 IF OVERFLOW OF PP TTL SET/SCP - SETUP CONTROL POINT AREAS. TITLE IDENT SCP,OVL QUAL SCP ORG OVL *COMMENT SET - SETUP CONTROL POINT AREAS. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. SCP SPACE 4,10 ** SCP - SETUP CONTROL POINTS. * * * USES AB - AB+4, CM - CM+4, CN - CN+4, T1 - T6. * * CALLS INO, IRS, SCA, SFL, SMT, SSF, SXP. SCP SUBR ENTRY/EXIT RJM INO INITIALIZE OVERLAY LDN 0 RJM SSF SETUP *CMRL*+1 LDC UEML CRD AB ADN CPAS-UEML SET FIRST CONTROL POINT ADDRESS STD T1 LDD HO SHN 21-13 LMD AB+4 GET CM COPY FLAG SCN 1 LMM EMAF GET EXPANDED MODE ADDRESSING FLAG SHN 10-1 LPC 700 LMD HN SET/CLEAR UEM ENABLE FLAG STM SCPG SCP1 RJM SFL SETUP CP FIELD LENGTH WORDS LDN ZERL CRD AB CRD CM CRD CN LDD T1 SET MA STD CM+1 ADN FLSW FETCH CM FL CONTROL WORD CRD T2 LDD T5 SET RA SHN 6 STD AB+1 LMD AB+1 LMD T4 SHN 6 STD AB LDD T6 SET FL SHN 6 STD CN+1 SHN -14 STD CN LDD T1 ADN 1 STORE (RA) CWD AB ADN 2-1 STORE (FL) CWD CN ADN 3-2 STORE (EM) CWM SCPG,ON ADN ECSW-4 FETCH EXTENDED MEMORY FL CONTROL WORD CRD T2 LDD T4 SET RAE SHN 14 ADD T5 SCPA SHN 21-2 * SHN 21-2+UESC STD AB SHN -6 SCN 77 STD AB+1 LDD T6 SET FLE SCPB SHN 21-2 * SHN 21-2+UESC STD CN SHN -6 SCN 77 STD CN+1 LDM EMAF ZJN SCP2 IF NOT EXPANDED MODE LDD AB CONVERT RAE TO EXPANDED FORMAT SHN 14 STD AB LMD AB+1 SHN -6 STD AB+1 LDD CN CONVERT FLE TO EXPANDED FORMAT SHN 14 STD CN LMD CN+1 SHN -6 STD CN+1 SCP2 LDD T1 ADN 4 STORE (RAE) CWD AB ADN 5-4 STORE (FLE) CWD CN ADN 6-5 STORE (MA) CWD CM ADN 7-6 STORE (EA) CWD CM ADN TFSW-7 FETCH EST ORDINAL CRD T2 LDD T2 ZJN SCP4 IF NO JOB ASSIGNED LDD T1 ADN STSW FETCH CP STATUS CRD CM LDN 0 CLEAR PP ACTIVITY STD CM SCP4 RJM IRS ADN SPCW-STSW CLEAR SPECIAL PROCESSOR CALL WORD CWD ZR ADC CRCW-SPCW CLEAR *X* STATUS CPU RECALL CRITERION CWD ZR LDD T1 SET UP FLSW+1 RJM SSF LDC 200 ADVANCE CP ADDRESS RAD T1 SHN -7 SBD NC MJP SCP1 IF NOT END OF CP-S * SET UP SYSTEM CONTROL POINT. RJM SFL SETUP FIELD LENGTH WORDS RJM SXP SETUP *CPUMTR* PRESET EXCHANGE PACKAGE ADN CWQW-15 STORE CPU SCHEDULING PARAMETERS CWM SCPD,ON ADN FLSW-CWQW-1 CWD ZR ADN JCIW-FLSW STORE JOB CONTROL CWM SCPH,ON ADN CPTW-JCIW-1 CWD ZR CRD CM ADN MP3W-CPTW CWM SCPI,ON DISABLE SRU ACCUMULATION ADN STLW-MP3W CWM SCPE,ON SET MAXIMUM LIMITS FOR SRU AND TIME ADN ALMW-STLW-1 CWM SCPE,ON ADK ACLW-ALMW-1 CWM SCPE,ON ADK AACW-ACLW-1 CWM SCPE,ON ADN CPLW-AACW-1 CWM SCPF,ON LDD T1 SETUP *FLSW*+1 RJM SSF LDM SPPC INITIALIZE PP RECALL STACK RJM IRS LDM .NPCP SET NUMBER OF PSEUDO CONTROL POINTS STD T2 ZJN SCP6 IF NONE OR CM RECOVERY * SET UP PSEUDO CONTROL POINT AREAS. LDD NC INITIALIZE PCP NUMBER STD T1 SBN CPLK CP LINK TO PCP-S SHN 7 ADN FLSW GET MEMORY CONTROL WORDS CRM MCWB,TR SCP5 AOD T1 ADVANCE AND SET PCPA ADDRESS RJM SCA ADN FLSW STORE MEMORY CONTROL WORDS CWM MCWB,TR SOD T2 NJN SCP5 IF MORE PCP-S * BUILD MEMORY CONTROL TABLE. SCP6 UJN SCP7 SKIP TABLE ON CM RECOVERY SCPC EQU SCP6 * PSN (NON CM RECOVERY) RJM SMC SET UP MEMORY CONTROL TABLE LDN ACML STORE UNASSIGNED MEMORY CWM .ACML,ON SCP7 LJM SCPX RETURN SCPD VFD 2/1,7/MPRS,3/2,12/0,9//SCD/SSSC*JCBE,3/0,24/0 SCPE VFD 60/-0 SCPF VFD 60/37777777777777777777B SCPG VFD 60/0 EXCHANGE PACKAGE WORD WITH CM COPY FLAG SCPH VFD 24/0,12/7777,24/0 SCPI VFD 1/1,59/0 TITLE SUBROUTINES. SPACE 4,10 ** COMMON SUBROUTINES. MCTSUB IRS SPACE 4,10 ** IRS - INITIALIZE PP RECALL STACK. * * ENTRY (T1) = CONTROL POINT ADDRESS. * (CM - CM+4) = *STSW* WORD. * * EXIT (A) = ADDRESS OF *STSW* WORD. * *STSW* WORD UPDATED IN CONTROL POINT AREA. * * USES T2 - T2+4. IRS SUBR ENTRY/EXIT LDN ZERL CRD T2 LDN 2 STD T2+4 IRS1 LDD T1 INITIALIZE RECALL LINKAGE BLOCK ADC RCCW-2 ADD T2+4 CWD T2 ADN RECW-RCCW CLEAR REQUEST BLOCK CWD ZR AOD T2+4 ADVANCE LINKAGE LMN LREC+1 NJN IRS1 IF NOT END OF RECALL AREA LDD CM+1 LMK PEET ZJN IRS2 IF CPU PARITY ERROR LDN 0 CLEAR ERROR FLAG STD CM+1 IRS2 LDN 1 SET NEXT AVAILABLE RECALL SLOT STD CM+4 LDD T1 STORE CONTROL POINT STATUS WORD ADN STSW CWD CM UJN IRSX RETURN SFL SPACE 4,10 ** SFL - SET CONTROL POINT FIELD LENGTH WORDS. * * ENTRY (T1) = CP ADDRESS. * (NC) = SYSTEM CONTROL POINT NUMBER. * * EXIT *FLSW* WRITTEN TO CP AREA. * *ECSW* WRITTEN TO CP AREA. SFL1 LDN SFLE-SFLD SET *FLSW* FOR REMAINING CP-S RAM SFLB LDN SFLG-SFLF SET *ECSW* FOR REMAINING CP-S SFL2 RAM SFLC SFL SUBR ENTRY/EXIT SFLA UJN SFLX RETURN IF CM RECOVERY * PSN (IF INITIALIZING CM) LDD T1 ADN FLSW CWM SFLD,ON STORE *FLSW* FOR FIRST CP * CWM SFLE,ON (*FLSW* FOR REMAINING CP-S) SFLB EQU *-1 ADK ECSW-FLSW-1 CWM SFLF,ON STORE *ECSW* FOR FIRST CP * CWM SFLG,ON (*ECSW* FOR REMAINING CP-S) * CWM SFLH,ON (*ECSW* FOR SYSTEM CP) SFLC EQU *-1 SHN -7 SBN 1 ZJN SFL1 IF FIRST CP SBD NC ADN 2 NJN SFLX IF NOT LAST CP LDN ZERL CRM SFLE,ON SET *FLSW* FOR SYSTEM CP LDN SFLH-SFLG UJN SFL2 SET *ECSW* FOR SYSTEM CP SFLD VFD 60/0 *FLSW* FOR FIRST CONTROL POINT SFLE VFD 60/0 *FLSW* FOR CONTROL POINTS SFLF VFD 60/0 *ECSW* FOR FIRST CONTROL POINT SFLG VFD 60/0 *ECSW* FOR CONTROL POINTS SFLH VFD 60/0 *ECSW* FOR SYSTEM CONTROL POINT SMC SPACE 4,10 ** SMC - SETUP MEMORY CONTROL TABLE. * * ENTRY (NC) = SYSTEM CP NUMBER. * (NS) = MCT ENTRY COUNT. * * USES KA, KB, CN - CN+4. * * CALLS CTE. SMC SUBR ENTRY/EXIT LDN 0 STD KA INITIALIZE CP NUMBER CRD CN LDD NS SET MCT ENTRY COUNT STD KB SMC1 LDD KA STD CN SET BACKWARD LINK LDD CN+1 STD KA CURRENT = PREVIOUS FORWARD LINK LMD NC ZJN SMC3 IF CREATING ENTRY FOR SYSTEM CP AOD CN+1 ADN CPLK CHECK NEW FORWARD LINK SBD NC NJN SMC2 IF NOT CP TO LINK TO PCP-S LDD NC ADN 1 SET FIRST PCP NUMBER STD CN+1 SMC2 LDD CN+1 CHECK NEW FORWARD LINK LMD NS NJN SMC4 IF NOT LINKING OUT OF PCP-S LDD NC SBN CPLK SET FORWARD LINK TO REAL CP SMC3 STD CN+1 SMC4 LDN FLSW CREATE TABLE ENTRY FOR CM RJM CTE SMCA UJN SMC5 (USER XM NOT IN UEM) ORG SMCA LDN ECSW CREATE TABLE ENTRY FOR XM RJM CTE SMC5 SOD KB NJN SMC1 IF NOT END OF TABLE UJP SMCX RETURN SSF SPACE 4,10 ** SSF - SET SECOND FLSW/CMRL WORD. * * ENTRY (A) = CONTROL POINT AREA ADDRESS. * * USES AB - AB+4. SSF SUBR ENTRY/EXIT ADN FLSW CRD AB STD T0 LDD AB+2 FORM RA - NFL SHN 14 ADD AB+3 SBD AB STD AB+2 SHN -14 STD AB+1 LDC 4000 FORM 4000 + NFL ADD AB STD AB+3 LDN 0 STD AB AOD T0 WRITE SECOND WORD CWD AB UJN SSFX RETURN SXP SPACE 4,15 ** SXP - SETUP *CPUMTR* PRESET EXCHANGE PACKAGE. * * ENTRY (EN) = EXTENDED MEMORY EST ORDINAL. * (HO) = HARDWARE OPTIONS. * (NC) = SYSTEM CONTROL POINT NUMBER. * (FL - FL+1) = CM FIELD LENGTH. * * EXIT (A) = EXCHANGE PACKAGE ADDRESS OF X5. * (T1) = EXCHANGE PACKAGE ADDRESS. * * USES AB - AB+4, CM - CM+4, CN - CN+4, T1 - T7. SXP SUBR ENTRY/EXIT LDM EMSC RAM SXPA STM SXPB PRESET SHIFT INSTRUCTIONS LPN 77 RAM SXPC LDN ZERL CRD AB CRD CM CRD CN ADN UEML-ZERL READ UEM PARAMETERS CRD T3 LDD FL+1 SET CM FIELD LENGTH SHN 6 STD CM+1 LDD FL SHN 14 LMD FL+1 SHN -6 STD CM LDD HO SET/CLEAR UEM ENABLE FLAG SHN 21-13 LMD T3+4 GET CM COPY FLAG SCN 1 LMM EMAF SET/CLEAR EXPANDED MODE ADDRESSING SHN 7-0 LPC 700 LMC 100+EEMC&1 APPEND EXIT MODE STD CN LDM EMTY ZJN SXP1 IF NO CPU ACCESS EST ENTRY PRESENT LMN 4 ZJN SXP1 IF UEM DEFINED LDD CN CLEAR CM COPY FLAG FOR *CPUMTR* LPC -400 STD CN SXP1 LDD NC SHN 7 STD AB+1 SET (MA) STD T1 ADN 1 CLEAR (RA) CWD ZR ADN 2-1 STORE (FL) CWD CM ADN 3-2 STORE (EM) CWD CN ADN 6-3 STORE (MA) CWD AB ADN 7-6 STORE (EA) CWD AB LDM DSFL+1 ADD CM+1 STD AB+1 ADJUST FL FOR DSCB SHN -14 ADM DSFL ADD CM STD AB LDN 0 CLEAR DIRECT CELLS STD CN LDD EN NJN SXP2 IF EXTENDED MEMORY EQUIPMENT DEFINED LDD T7 LPN 2 ZJP SXP6 IF NO USER XM IN UEM LDD T4 UJN SXP3 USE XM FIELD LENGTH FROM *UEML* SXP2 LDM EMFL SXP3 SHN 0 * SHN EMSC SXPA EQU *-1 SHN 17 STD CN SHN -6 SCN 77 STD CN+1 LDM EMAF ZJN SXP4 IF NOT EXTENDED MODE LDD CN SHN 14 STD CN CONVERT FLE TO EXPANDED FORMAT LMD CN+1 SHN -6 STD CN+1 LDD CM SHN 14 STD CM CONVERT RAE TO EXPANDED FORMAT LMD CM+1 SHN -6 STD CM+1 SXP4 LDM EMTY NJN SXP5 IF XM EQUIPMENT DEFINED LDD T7 LPN 2 NJN SXP7 IF UEM WITH NO EQUIPMENT SXP5 SBN 3 ZJN SXP6 IF LCME SBN 4-3 ZJN SXP7 IF UEM LDC 4000 RAD CN ENABLE FLAG REGISTER OPERATIONS LDD T7 LPN 2 ZJN SXP6 IF NOT SIMULTANEOUS UEM/EXTENDED MEMORY LDD T4 SXPB SHN 0 * SHN EMSC (EMSC = EXTENDED MEMORY SHIFT COUNT) LPN 7 SHN 11 RAD AB+1 INCREASE FL TO INCLUDE USER XM SHN -14 RAD AB LDD T4 SXPC SHN -3 * SHN -3+EMSC RAD AB LDD T1 UPDATE (FL) IN EXCHANGE PACKAGE ADN 2 CWD AB SXP6 LDN ZERL CLEAR RAE CRD CM SXP7 LDD T1 ADN 4 STORE (RAE) CWD CM ADN 5-4 STORE (FLE) CWD CN ADN 14-5 PASS FL IN X4 CWD AB ADN 15-14 PASS FLE IN X5 CWD CN LJM SXPX RETURN INO SPACE 4,10 ** INO - INTIALIZE OVERLAY. * * ENTRY (RS) = RECOVERY STATUS. * (NC) = SYSTEM CONTROL POINT NUMBER. * (FL - FL+1) = EXECUTION FIELD LENGTH. * * EXIT (NS) = NUMBER OF MCT ENTRIES. * * USES CM - CM+4, CN - CN+4. * * CALLS CLS. * * MACROS MCTPRS. INO SUBR ENTRY/EXIT LDM UESC RAM SCPA PRESET SHIFT INSTRUCTIONS STM SCPB MCTPRS SET UP *MCTSUB* ROUTINES LDD RS LPN SYMK LMN SYCM ZJN INOX IF RECOVERING CENTRAL MEMORY LDN PSNI STM SFLA ENABLE *FLSW*/*ECSW* INITIALIZATION STM SCPC LDC CPAS STD CA+1 SHN -14 STD CA LDD NC SHN 7 RJM CLS CLEAR CONTROL POINT AREAS LDN CMRL CRD CM LDD CM+4 PRESET *FLSW* FOR FIRST CP STM SFLD+3 LDD FL PRESET *FLSW* FOR CONTROL POINTS STM SFLE+2 LDD FL+1 STM SFLE+3 LDN ECRL CRD CM ADK UEML-ECRL CRD CN LDD CN+4 LPN 2 ZJN INO1 IF UEM NOT DEFINED LDD CM NJN INO1 IF UEM DEFINED AS EXTERNAL EQUIPMENT LDD CM+4 STM SFLF+3 FIRST CP RAX = CP ZERO FLX LDD CM+1 STM SFLG+3 CP RAX = TOTAL USER XM FL STM SFLH+4 UJN INO2 RETURN INO1 LDC * DISABLE XM MCT ENTRIES ORG *-1 LOC SMCA UJN SMC5 SKIP CREATION OF XM ENTRIES IN MCT LOC *O STM SMCA INO2 LJM INOX RETURN SPACE 4,10 MCWL EQU ECRL+1-FLSW LENGTH OF MEMORY CONTROL WORDS ERRNZ MCWL-3 CODE DEPENDS ON VALUE MCWB EQU 10000-5*MCWL BUFFER FOR MEMORY CONTROL WORDS SPACE 4,10 QUAL SCP EQU /SCP/SCP ERRNG 7777-*-4 IF PP OVERFLOW TTL SET - INITIALIZE SYSTEM. SPACE 4 END