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