IDENT 1MC,MTC
PERIPH
BASE MIXED
SST
*COMMENT 1MC - MONITOR PARITY ERROR REPORTING.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
TITLE 1MC - MONITOR PARITY ERROR REPORTING.
SPACE 4
*** 1MC - MONITOR PARITY ERROR REPORTING.
* W. E. GOEBEL 75/08/25.
SPACE 4
*** *1MC* IS CALLED BY *CPUMTR* TO REPORT ECS PARITY
* ERRORS. *1MC* IS FORCED CM RESIDENT BY *SLL* WHEN ECS
* IS PRESENT. THIS IS NEEDED BECAUSE *1MC* CAN BE CALLED
* DIRECTLY BY *CPUMTR* MONITOR MODE. IN THIS CASE *CPUMTR*
* IS WAITING FOR *1MC* TO INDICATE IT IS READY TO RECIEVE
* DATA. BECAUSE OF THIS *1MC* MUST NOT DEPEND UPON ISSUING
* ANY MONITOR FUNCTION TO LOAD. THUS THE CM RESIDENCE
* REQUIREMENT.
* *1MC* PERFORMS THE BUFFERING IN OF ERROR DATA AND
* THEN CALLS *2MN* TO FORMAT AND ISSUE THE ACTUAL ERROR
* MESSAGES. THIS IS TO KEEP THE CM REQUIREMENT OF *1MC* AT
* A MINIMUM. IT SHOULD BE NOTED THAT *2MN* SHOULD NEVER
* BE ECS RESIDENT.
SPACE 4
*** CALL.
*
*
*T IR 18/ *1MC*,6/ SCP,12/ EST,6/ RW,18/ WC
* SCP SYSTEM CONTROL POINT NUMBER.
* EST EXTENDED MEMORY EST ORDINAL.
* RW READ / WRITE FLAG.
* 1 = READ
* 2 = WRITE
* WC WORD COUNT OF BLOCK TRANSFER.
*
*T,MB 36/, 24/ CB
* CB COMMUNICATIONS BUFFER ADDRESS.
*
* ECS ERROR INFORMATION IS BUFFERED FROM *CPUMTR* VIA A
* COMMUNICATIONS BUFFER. IT IS *1MC*-S RESPONSIBILITY TO
* CLEAR THE BUFFER INTERLOCK AFTER IT READS THE DATA.
* THIS BUFFER HAS THE FOLLOWING FORMAT -
*
*T,CB 1/ C, 47/ ,12/ IL
*T,CB+1 6/, 6/ CD, 6/ RT, 18/ CMA, 24/ ECA
*T,CB+2 60/ BAD DATA
*T,CB+3 60/ GOOD DATA
* .
* .
* .
*T,CB+N 60/0
*
* C COMPLETE FLAG (SIGNALS *1MC* TO READ DATA).
* IL BUFFER INTERLOCK (NON-ZERO WHEN SET).
* CD 3/, 1/ RU, 1/ BD, 1/ GD
* RU = RECOVERED / UNRECOVERED FLAG.
* 0 = RECOVERED
* 1 = UNRECOVERED
* BD = 1 IF BAD DATA PRESENT.
* GD = 1 IF GOOD DATA PRESENT.
* RT RETRY COUNT.
* CMA CM ADDRESS OF TRANSFER.
* ECA ECS ADDRESS OF TRANSFER.
*
* THE ERROR DATA IS TERMINATED BY A ZERO WORD.
SPACE 4
*** OPERATOR MESSAGES.
*
*
* * USER ECS DISABLED.* DUE TO UNRECOVERED ECS PARITY
* ERRORS SCHEDULING OF USER ECS JOBS HAS
* BEEN DISABLED.
SPACE 4
*CALL COMPMAC
*CALL COMSCPS
*CALL COMSDFS
*CALL COMSEVT
*CALL COMSMSC
*CALL COMSMSP
*CALL COMSPIM
SPACE 4
** DIRECT LOCATION ASSIGNMENTS.
ZR EQU 20 - 24 ZERO WORD
BP EQU 25 BUFFER POINTER
CN EQU 30 RECOVERED/UNRECOVERED FLAG
TITLE MACRO DEFINITIONS.
SPACE 4,10
** OVERLAY CONTROL.
.N SET 0
OVLB MICRO 1,, 2M BASE OVERLAY NAME
OVERLAY SPACE 4,10
** OVERLAY - GENERATE OVERLAY CONSTANTS.
*
*
* OVERLAY (TEXT),LADDR
*
* ENTRY *TEXT* = TEXT OF SUBTITLES.
* *LADDR* = LOAD ADDRESS FOR OVERLAY, DEFAULT OVL.
PURGMAC OVERLAY
OVERLAY MACRO TEXT,OVL
MACREF OVERLAY
QUAL
.N SET .N+1
.M MICRO .N,1, NOPQRSTUVWXYZ
.O MICRO 1,3, "OVLB"".M"
QUAL ".O"
TTL 1MC/".O" - TEXT
TITLE
IDENT ".O",OVL TEXT
*COMMENT 1MC - TEXT
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
ORG OVL
ENDM
SPACE 4
TITLE MTC - BUFFER IN ERROR DATA.
MTC SPACE 4
** MTC - MAIN PROGRAM.
ORG PPFW
MTC LDD MP+3 ASSEMBLE BUFFER ADDRESS
RAM MTCA-1
STM MTCB-1
LDD MP+4
STM MTCA
STM MTCB
LDN ZERL SET ZERO WORD
CRD ZR
LDN MCBL BUFFER LENGTH
STD T1
MTC1 LDC ** READ BUFFER
MTCA EQU *-1 COMMUNICATIONS BUFFER ADDRESS
CRM BUF,T1
LDM BUF
SHN 21-13
PJN MTC1 IF BUFFER NOT COMPLETE
LDC ** CLEAR BUFFER INTERLOCK
MTCB EQU *-1 COMMUNICATIONS BUFFER ADDRESS
CWD ZR
EXECUTE 2MN
SPACE 4
OVL EQU PPFW
BUF EQU PPFW-5+500*2 ALLOW TWO SECTORS FOR *2MN*
BUFL EQU MCBL*5 BUFFER LENGTH
MXBL EQU EPFW-5*3+1 MAXIMUM BUFFER LENGTH
ERRNG MXBL-BUF-BUFL CHECK BUFFER OVERFLOW
TTL 1MC/2MC - PROCESS ERROR DATA.
TITLE MAIN ROUTINE.
OVERLAY (PROCESS ERROR DATA.),OVL
SPACE 4
*** 2MN - REPORT PARITY ERRORS.
PEM LJM * ENTRY
* SET UP THOSE FIELDS IN THE BML MESSAGE WHICH ARE CONSTANT
* FOR ALL ERRORS.
LDN PARE SET ERROR CODE
STM MSGA+12
LDC /COMSDFS/HS0040+/COMSDFS/D1MC*400
STM MSGA+1
LDK MMFL ADD MACHINE ID TO MESSAGE
CRD CM
LDD CM
STM MSGA+10
LDD IR+2 ADD EST ORDINAL TO MESSAGE
STM MSGA+5
* DETERMINE THE MESSAGE ID WHICH CORRESPONDS WITH THIS DEVICE
* AND ADD IT TO THE BML MESSAGE HEADER.
SFA EST GET EST ENTRY FOR DEVICE
ADK EQDE
CRD CM
LDD CM+4 GET WORD *DILL* FROM THE MST
SHN 3
ADK DILL
CRD CM
LDN PEMBL
STD T1
PEM1 LCN 2 SCAN TABLE FOR A MATCH
RAD T1
ZJN PEM2 IF DEVICE NOT FOUND IN TABLE
LDM PEMB-2,T1
LMD CM+3
LPC 707
NJN PEM1 IF A MATCH HAS NOT YET BEEN FOUND
LDM PEMB-1,T1
PEM2 STM MSGA+0 ADD MESSAGE ID TO MESSAGE
* FOR EACH ERROR IN THE BUFFER, ISSUE A BML ERROR MESSAGE.
LDC BUF+5
STD BP SET BUFFER POINTER
LDN ZERL SET END OF DATA
CRM BUF+MCBL*5,ON
PEM3 LDM 1,BP CHECK FOR END OF BUFFER
ZJN PEM4 IF NO MORE MESSAGES IN BUFFER
RJM IBM ISSUE BML MESSAGE
LDN 3*5 ADVANCE POINTER TO NEXT ERROR IN BUFFER
RAD BP
UJN PEM3 CHECK FOR ANOTHER MESSAGE
PEM4 MONITOR DPPM
LJM PPR RETURN TO PP RESIDENT
MSGA BSSZ 6*5 BML MESSAGE BUFFER
SPACE 4,10
PEMB BSS 0 TABLE OF MESSAGE IDENTIFERS
CON 112,/COMSDFS/RM0070 (DP) ECS I - DC135 DDP
CON 110,/COMSDFS/RM0071 (DE) ECS I - COUPLER
CON 212,/COMSDFS/RM0072 (DP) ECS II - DC135 DDP
CON 210,/COMSDFS/RM0073 (DE) ECS II - COUPLER
CON 111,/COMSDFS/RM0074 (DP) ECS I - DC145 DDP
CON 211,/COMSDFS/RM0075 (DP) ECS II - DC145 DDP
CON 320,/COMSDFS/RM0076 (DE) LCME - COUPLER
CON 510,/COMSDFS/RM0207 (DE) ESM - COUPLER
CON 511,/COMSDFS/RM0210 (DP) ESM - LOW SPEED PORT
PEMBL EQU *-PEMB+2 MESSAGE ID TABLE LENGTH
TITLE SUBROUTINES.
DUE SPACE 4,15
** DUE - DISABLE USER ECS.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
DUE SUBR ENTRY/EXIT
LDN ECRL
CRD CM
LDD CM+1
SBD CM+4
ZJN DUEX IF USER ECS NOT DEFINED
LDK UEML
CRD CM
LDD CM+2
LMD IR+2
LPC 777
NJN DUEX IF NOT USER ECS EQUIPMENT
LDN SSTL
CRD CM
LDD CM
SHN 21-5
MJN DUEX IF ECS ALREADY DISABLED
LDN 40
RAD CM
LDN SSTL
CWD CM
LDN NCPL WRITE MESSAGE AT SYSTEM CP
CRD CM
AOD CM+1
SHN 7
ADN MS2W
CWM DUEA,TR
LDN ZERL ISSUE USER *ECS* DISABLED EVENT
CRD CM
LDN UEDE
STD CM+4
MONITOR EATM
LJM DUEX RETURN
DUEA DATA C* USER ECS DISABLED. *
IBM SPACE 4,10
** IBM - ISSUE BML MESSAGE.
*
* USES CM - CM+4, IR+3 - IR+4, BP, CN.
*
* CALLS DFM, DUE.
*
* MACROS MONITOR.
IBM SUBR ENTRY/EXIT
LDD IR+3 ADD READ/WRITE FLAG TO MESSAGE
SHN -6
LPN 2
STM MSGA+6
LDM 1,BP ADD RETRY COUNT TO MESSAGE
SCN 77
RAM MSGA+6
LDM 3,BP ADD ECS ADDRESS TO MESSAGE
STM MSGA+22
LDM 4,BP
STM MSGA+23
LDM 1,BP ADD CM ADDRESS TO MESSAGE
LPN 77
STM MSGA+15
LDM 2,BP
STM MSGA+16
* SET RECOVERED/UNRECOVERED STATUS.
LDI BP
LPN 4
ZJN IBM1 IF ERROR WAS RECOVERED
RJM DUE DISABLE USER ECS
LDN 1 SET ERROR UNRECOVERED
IBM1 RAM MSGA+6
* ADD WORD COUNT TO MESSAGE. IF GOOD OR BAD DATA WAS PASSED
* ALONG WITH THE OTHER ERROR DATA, THE WORD COUNT USED IS ONE,
* BECAUSE THE ERROR REFERS TO AN ACTUAL ADDRESS. IF NO
* GOOD/BAD DATA WAS PASSED, THE GIVEN WORD COUNT IS USED,
* INDICATING THAT THE ERROR OCCURRED SOMEWHERE WITHIN THAT
* WORD COUNT RANGE. THIS OCCURS WHEN *CPUMTR* RECOVERS AN
* ERROR BUT IS UNABLE TO DETERMINE THE EXACT ADDRESS WHICH
* CAUSED THE HALF EXIT.
LDI BP
LPN 3
NJN IBM2 IF GOOD OR BAD DATA WAS PASSED
LDD IR+3
LPN 77
SHN 14
LMD IR+4
UJN IBM3 ADD WORD COUNT
IBM2 LDN 1
IBM3 STM MSGA+21
SHN -14
STM MSGA+20
* ADD GOOD AND BAD DATA TO MESSAGE.
LDC MSGA+24
STM IBMC
LDD BP
ADN 5
STM IBMA
ADN 5
STM IBMB
LDI BP CHECK FOR BAD DATA
LPN 2
SHN -1
STM MSGA+17
ZJN IBM4 IF NO BAD DATA
LDD MA
CWM **,ON
IBMA EQU *-1
SBN 1
CRM MSGA+24,ON
IBM4 LDI BP CHECK FOR GOOD DATA
LPN 1
ZJN IBM6 IF NO GOOD DATA
LMI BP
LPN 3
ZJN IBM5 IF ONLY GOOD DATA
LDN 5
RAM IBMC
LDN 2
IBM5 LMN 1
STM MSGA+17
LDD MA
CWM IBMB,ON
IBMB EQU *-1
SBN 1
CRM MSGA+24,ON
* CRM MSGA+31,ON
IBMC EQU *-1
IBM6 LDN 6*5 SET BML MESSAGE LENGTH
STD CM+1
LDC MSGA+BMLN ISSUE BML MESSAGE
RJM DFM
* IF THE ERROR IS UNRECOVERED, ISSUE A MESSAGE TO THE ERRLOG
* AND TO THE SYSTEM AND JOB DAYFILES INDICATING THE TYPE OF
* ERROR AND THE DEVICE ON WHICH THE ERROR OCCURRED.
LDM MSGA+6
LPN 1
STD CN
ZJN IBM7 IF RECOVERED ERROR
LDD IR+2
SHN -3
RJM C2D
STM IBMG+1
LDD IR+2 SET EST ORDINAL IN DAYFILE MESSAGE
LPN 7
SHN 6
ADC 2R0
STM IBMG+2
LDC IBMG ISSUE SYSTEM AND DAYFILE MESSAGES
RJM DFM
LDC IBMG+ERLN ISSUE ERRLOG MESSAGE
RJM DFM
* INCREMENT THE RECOVERED OR UNRECOVERED ERROR COUNTER IN THE
* MST FOR THE CURRENT DEVICE.
IBM7 LDD CN SET BYTE NUMBER
ADN 3
STD CM+2
LDD IR+2 SET EST ORDINAL
STD CM+1
LDK ICTS SET SUBFUNCTION
STD CM+3
MONITOR SMDM INCREMENT ERROR COUNTER
LJM IBMX RETURN
IBMG DATA C*EQ000 PE MASS STORAGE ERROR.*
SPACE 4,10
* COMMON DECKS.
*CALL COMPC2D
ERRPL *-BUF OVERLAY OVERFLOWS BUFFER
END