IDENT 1MD,MPR
PERIPH
BASE MIXED
SST
TITLE 1MD - MASS STORAGE ERROR MESSAGE PROCESSOR.
*COMMENT 1MD - MS ERROR MESSAGE PROCESSOR.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
1MD SPACE 4,10
*** 1MD - MASS STORAGE ERROR MESSAGE PROCESSOR.
* S. L. BETH 80/03/17.
* R. M. DANISCH 85/12/31.
* P. D. HAAS 86/07/01.
SPACE 4,15
*** *1MD* IS CALLED BY THE MASS STORAGE DRIVERS AND THE 819
* INTERRUPT HANDLER TO ISSUE MASS STORAGE ERROR MESSAGES. FOR
* 819 ERRORS, *1MD* MUST CONSTRUCT THE BML MESSAGE BEFORE
* ISSUING IT. FOR ALL OTHER DEVICE TYPES, IT IS ASSUMED THE
* DRIVER HAS ALREADY BUILT THE MESSAGE BEFORE CALLING *1MD*.
* ONLY BML MESSAGES ARE ISSUED FOR 819 DEVICES. BUT BML, ERROR
* LOG OR SYSTEM DAYFILE MESSAGES MAY BE ISSUED FOR OTHER DEVICE
* TYPES.
*
* *1MD* MUST BE CM RESIDENT SINCE A LOAD FROM DISK MAY NOT BE
* POSSIBLE IN A CONFIGURATION WHERE THE ONLY SYSTEM DEVICE IS
* THE DEVICE TAKING ERRORS.
1MD SPACE 4,10
*** CALL FORMAT -
*
*T 18/ 1MD, 1/, 5/ SCP, 24/, 12/ F
*
* SCP = SYSTEM CONTROL POINT NUMBER.
* F = 0 IF 819 DEVICE.
* 1 IF NOT 819 DEVICE.
1MD SPACE 4,10
*** ERROR LOG MESSAGES.
*
* * 1MD - MESSAGES LOST.* - *1MD* WAS UNABLE TO FLUSH THE ERROR
* BUFFER FAST ENOUGH TO KEEP UP WITH THE GENERATION OF
* ERROR MESSAGES BY THE DRIVER(S).
1MD SPACE 4,20
*** BINARY MAINTENANCE LOG ENTRY FORMATS.
*
* GENERAL FORMAT -
*
*T 12/ ID, 4/ DT, 1/ 0, 7/ SC, 6/ PP, 6/ CH, 6/ 0, 6/ UN, 12/ 0
*T, 12/ EO, 6/ RC, 6/ FG, 6/ CR, 6/ 0, 12/ MF, 12/ 0
*T, 12/ EC, 12/ CY, 12/ TS, 12/ LF, 12/ GS
*T, 60/ DETAILED STATUS
*T, 60/ .
*T, 60/ .
*T, 60/ .
*T, 6/ UFC, 18/ OSR, 18/ ACR, 18/ ESR
*
*
* EXTENDED MEMORY FORMAT -
*
*T 12/ ID, 4/ DT, 1/ 0, 7/ SC, 6/ PP, 6/ CH, 24/ 0
*T, 12/ EO, 6/ RC, 6/ FG, 6/ CR, 6/ 0, 12/ MF, 12/ 0
*T, 12/ EC, 48/ 0
*T, 12/ FB, 12/ FS, 12/ WC, 24/ AD
*T, 60/ ERROR DATA
*T, 60/ ERROR DATA
*
*
* 819 FORMAT -
*
*T 12/ ID, 4/ DT, 1/, 7/ SC, 36/ ACCESS PATH
*T, 12/ EO, 6/ RC, 6/ FG, 6/ CR, 6/ 0, 24/ 0
*T, 12/ PPID, 12/ BYTE COUNT, 36/ ERROR DATA
*T, 60/ ERROR DATA
*T, 60/ ERROR DATA
*T, 60/ ERROR DATA
*
*
* 887 / 9853 / 583X / 47444 FORMAT -
*
*T 12/ ID, 4/ DT, 1/0, 7/ SC, 6/PP, 6/CH, 6/EQ, 6/UN, 6/PN, 6/0
*T, 12/ EO, 6/ RC, 6/ FG, 12/ 0, 12/ MF, 12/ 0
*T, 12/ IF, 12/ F1, 12/ F2, 12/ F3, 12/ FF
*T, 12/ RS, 12/ RB, 12/ ST, 12/ CY, 12/ TS
*T, 16/ EXS, 16/ IDS, 16/ BSR, 12/ LCM
*T, 04/ LCM, 16/ LFN, 16/ CRG, 16/ CRG, 08/ CRG
*T, 08/ CRG, 16/ CRG, 16/ 000, 16/ 000, 04/ 000
*T, 12/ 000, 16/ TRG, 16/ TRG, 16/ TRG
*T, 16/ SLS, 16/ SLS, 16/ SLS, 12/ SLS
*T, 04/ SLS, 16/ SLS, 16/ SLS, 16/ SLS, 08/ DVS
*T, 08/ DVS, 16/ DVS, 16/ DVS, 16/ DVS, 04/ DVS
*T, 12/ DVS, 16/ DVS, 16/ DVS, 16/ DVS
*
*
* COMMON FIELD DESCRIPTIONS -
*
* ID MESSAGE ID. SEE *COMSDFS*.
* DT DRIVER TYPE. SEE *COMSDFS*.
* SC SYMPTOM CODE. SEE *COMSDFS*.
* PP PP NUMBER OF DRIVER.
* CH CHANNEL NUMBER.
* EQ EQUIPMENT (CONTROL MODULE/CONTROLLER) NUMBER.
* UN UNIT NUMBER.
* PN PORT NUMBER.
* EO EST ORDINAL.
* RC RETRY COUNT.
* FG FLAGS (GENERAL)
* BIT 41 UNUSED (ZERO).
* BIT 40 UNUSED (ZERO).
* BIT 39 SET IF NOT FIRST BLOCK OF MESSAGE.
* BIT 38 SET IF NOT LAST BLOCK OF MESSAGE.
* BIT 37 SET/CLEAR IF WRITE/READ OPERATION,
* RESPECTIVELY.
* BIT 36 SET/CLEAR IF UNRECOVERED/RECOVERED,
* RESPECTIVELY.
* CR RECOVERY CHANNEL.
* MF MAINFRAME ID.
* EC ERROR CODE.
* CY CYLINDER AT SEEK TIME.
* TS TRACK AND SECTOR AT SEEK TIME.
* LF LAST FUNCTION ISSUED.
* GS INITIAL GENERAL STATUS.
* EXTENDED MEMORY FIELD DESCRIPTIONS -
*
* FB FLAG BITS
* BIT 59 UNUSED (ZERO).
* BIT 58 UNUSED (ZERO).
* BIT 57 UNUSED (ZERO).
* BIT 56 UNUSED (ZERO).
* BIT 55 UNUSED (ZERO).
* BIT 54 UNUSED (ZERO).
* BIT 53 UNUSED (ZERO).
* BIT 52 UNUSED (ZERO).
* BIT 51 UNUSED (ZERO).
* BIT 50 UNUSED (ZERO).
* BIT 49 SET IF ERROR DATA WORD TWO PRESENT.
* BIT 48 SET IF ERROR DATA WORD ONE PRESENT.
* FS FUNCTION STATUS.
* WC WORD COUNT.
* AD EXTENDED MEMORY ADDRESS.
*
*
* 819 FIELD DESCRIPTIONS -
*
* ACCESS PATH = HARDWARE PATH TO DEVICE.
* PPID = INPUT REGISTER ADDRESS OF *1MD* PPU.
* BYTE COUNT = ERROR DATA BYTE COUNT.
* ERROR DATA = COPY OF DATA FROM *FLPP* DRIVER.
*
*
* 887 / 9853 / 583X /47444 FIELD DESCRIPTIONS -
*
* IF = INITIAL FAULT CODE.
* F1 = *T* REGISTER FAULT CODE (887 ONLY).
* = CHANNEL STATUS FAULT CODE (9853/583X/47444 ONLY).
* F2 = STATUS FAULT CODE.
* F3 = RECOVERY FAULT CODE.
* FF = FINAL FAULT CODE.
* RS = RESERVED.
* RB = RESIDUAL BYTE COUNT.
* ST = SECTORS TRANSFERED SINCE SEEK.
* EXS = EXECUTION STATUS (887 ONLY).
* = ENDING STATUS (9853/583X/47444 ONLY).
* IDS = IDLE STATUS (887 ONLY).
* BSR = BIT SIGNIFICANT RESPONSE (887 ONLY).
* LCM = LAST COMMAND.
* LFN = LAST ISI/IPI ADAPTOR FUNCTION.
* CRG = CHANNEL REGISTER.
* TRG = *T* REGISTER.
* SLS = SLAVE STATUS (INCLUDES 9853/583X/47444 DEVICE STATUS).
* DVS = DEVICE STATUS (887 ONLY).
* 895 (DMA ONLY) FIELD DESCRIPTIONS -
*
* UFC UPPER 4 BITS OF LAST FUNCTION.
* OSR OPERATIONAL STATUS REGISTER.
* ACR ADAPTOR CONTROL REGISTER.
* ESR ERROR STATUS REGISTER.
1MD SPACE 4,10
* COMMON DECKS.
*CALL COMPMAC
QUAL$S EQU 1 DEFINE NO QUALIFICATION FOR *COMSDFS*
*CALL COMSDFS
*CALL COMSEVT
*CALL COMSMSC
*CALL COMSMSP
*CALL COMSPIM
TITLE MACRO DEFINITIONS.
MACROS SPACE 4,10
** MACRO DEFINITIONS.
** TBLM = GENERATE MASS STORAGE TABLES.
*
* TBLM EQ
* EQ = MASS STORAGE EQUIPMENT MNEMONIC.
PURGMAC TBLM
TBLM MACRO EQ
VFD 12/2R_EQ
TEMP RMT
.2 IF -DEF,P_EQ
VFD 12/GEMX
.2 ELSE 1
VFD 12/P_EQ
TEMP RMT
TMID RMT
VFD 12/MLID_EQ
TMID RMT
ENDM
TITLE ASSEMBLY CONSTANTS.
**** ASSEMBLY CONSTANTS.
* 819 GENERAL STATUS FIELDS.
G1FD EQU 0 GROUP 1 STATUS FIELD
UNFD EQU 1 UNIT FIELD
CLFD EQU 2 CYLINDER ADDRESS
EQFD EQU 3 3/ MUX CHANNEL, 9/ EST ORDINAL
WCFD EQU 4 NUMBER OF ERROR PACKET WORDS
ADFD EQU 5 HEAD AND SECTOR
PCFD EQU 7 PREVIOUS CYLINDER
PAFD EQU 10 PREVIOUS HEAD AND SECTOR
EPFD EQU 11 START OF ERROR PACKET
* ERROR PACKET FIELDS.
G2FD EQU 0 GROUP 2 STATUS FIELD
SBFD EQU 1 SUBSYSTEM STATUS
CNFD EQU 2 CONTROLLER STATUS
RTFD EQU 3 RETRY COUNT
1MD SPACE 4,10
** DIRECT LOCATION ASSIGNMENTS.
BA EQU 16 BML DATA BUFFER ADDRESS
PA EQU 17 ERRLOG MESSAGE PARAMETER ADDRESS
ED EQU 20 ERROR DATA POINTER
WC EQU 21 PP WORD COUNT
MT EQU 22 MESSAGE TYPE
BC EQU 23 ERROR DATA BYTE COUNT
CB EQU 24 CM WORD BYTE COUNT
EP EQU 25 - 31 *EMB* POINTER WORD
EH EQU 32 - 36 *EMB* HEADER WORD 1
EO EQU 37 ERROR MESSAGE OFFSET
LN EQU 40 MESSAGE LENGTH
EL EQU 41 *ERROR LOG MESSAGES ISSUED* FLAG
ML EQU 42 MESSAGES LOST ACCUMULATOR
MD EQU 43 - 47 MESSAGE DATA ADDRESS (5 LOCATIONS)
CT EQU 57 CHANNEL TYPE
EX EQU 60 - 64 *EMB* HEADER WORD 2
****
TITLE MAIN PROGRAM.
** MPR - BUFFERED I/O MESSAGE PROCESSOR.
ORG PPFW
MPR LDN EMBP FETCH *EMB* POINTER WORD
CRD EP
LDN ZERL INITIALIZE DIRECT CELLS
CRD EL
ERRNZ EL+1-ML CODE DEPENDS ON VALUE
ERRNZ ML+1-MD CODE DEPENDS ON VALUE
MPR1 LDD EP+1
SHN 14 READ *EMB* HEADER WORD 1
LMD EP+2
CRD EH
ADN 1 READ *EMB* HEADER WORD 2
CRD EX
LDD EH+3 *IN*
SBD EX+3 *OUT*
ZJP MPR7 IF NO MORE MESSAGES
MPR2 LDD EX+3 *OUT*
SBD EX+4 *LIMIT*
MJN MPR3 IF *OUT* IN PROPER RANGE
MONITOR HNGM *OUT* BEYOND *LIMIT*
MPR3 LDD EP+1 READ NEXT MESSAGE HEADER INTO PP
SHN 14
LMD EP+2
ADD EX+3
ADN 2 ALLOW FOR *EMB* HEADER
CRD CM
LDD CM+3 MESSAGE LENGTH IN CM WORDS
ZJN MPR5 IF BUFFER TERMINATOR - RESET *EMB* *OUT*
STD LN
SHN 2
ADD LN
STD WC MESSAGE LENGTH IN PP WORDS
SBK BUFFL+1
MJN MPR4 IF MESSAGE WILL FIT IN BUFFER
MONITOR HNGM MESSAGE TOO LARGE FOR BUFFER
MPR4 LDD EP+1 READ COMPLETE MESSAGE INTO PP
SHN 14
LMD EP+2
ADD EX+3
ADN 2 ALLOW FOR *EMB* HEADER
CRM BUFF,LN
LDD CM+4
SHN -13
STD T1
LDM MPRA,T1 SET PROCESSOR ADDRESS
STD T1
RJM 0,T1 PROCESS MESSAGE
LDD EX+3 UPDATE *OUT*
ADD LN
MPR5 STD EX+3
SBD EX+4 *LIMIT*
MJN MPR5.1 IF *OUT* IN PROPER RANGE
ZJN MPR5 IF *OUT* AT *LIMIT*
MONITOR HNGM *OUT* BEYOND *LIMIT*
MPR5.1 LDD EP+1
SHN 14
LMD EP+2
ADN 1 UPDATE *EMB* HEADER WORD 2
CWD EX
LDD EH+3 *IN*
SBD EX+3 *OUT*
MPR6 NJP MPR2 IF MORE MESSAGES
LJM MPR1 REREAD HEADER AND RECHECK
MPR7 RJM GIL GET INTERLOCK, READ *EMB* HEADER WORD 1
LDD EH+1 COUNT MESSAGES LOST
RAD ML
ZJN MPR8 IF NO MESSAGES WERE LOST
STD EL
LDC MPRB+ERLN ISSUE * 1MD - MESSAGES LOST* MESSAGE
RJM DFM
MPR8 LDD EL
ZJN MPR9 IF NO ERROR LOG MESSAGES WERE ISSUED
LDN ZERL
CRD CM
LDK ELAE ISSUE *ERROR LOG ALERT* EVENT
STD CM+4
MONITOR EATM
MPR9 RJM CIL CLEAR INTERLOCK AND *1MD* ACTIVE FLAG
NJP MPR6 IF THERE ARE MESSAGES IN THE BUFFER
MONITOR DPPM DROP PP
LJM PPR EXIT
MPRA BSS 0 TABLE OF PROCESSOR ADDRESSES
CON LOG NON-819 PROCESSOR
CON FMM 819 PROCESSOR
MPRB DATA C* 1MD - MESSAGES LOST.*
TITLE MAIN PROCESSING ROUTINES.
FMM SPACE 4,10
** FMM - FORMAT AND ISSUE 819 BML MESSAGE.
*
* ENTRY (BUFF - BUFF+(EX+3)-1) = MESSAGE TO BE PROCESSED.
*
* USES BC, CB, CM+1, ED.
*
* CALLS CLM, CPD, DFM, FMT.
FMM SUBR ENTRY/EXIT
LDC BUFF+5
STD ED SET START OF ERROR DATA
FMM1 RJM CLM CLEAR MESSAGE BUFFER
* LDN 0 CLEAR CM WORD BYTE COUNT
STD CB
RJM FMT FORMAT BML DATA
LDM WCFD,ED SET ERROR DATA BYTE COUNT
ADN EPFD
STD BC
STM BYTM
FMM2 RJM CPD COPY ERROR DATA
LDN 6*5 SET *BML* MESSAGE BYTE COUNT
STD CM+1
LDC BMLM+BMLN ISSUE BML DATA
RJM DFM
* LDN 0 CLEAR BYTE COUNT IN BML DATA
STM BYTM
LDD BC
ZJP FMMX IF NO MORE DATA TO COPY
LDM RTYM SET *NOT FIRST BLOCK* FLAG
SCN 10
LMN 10
STM RTYM
UJN FMM2 COPY ADDITIONAL DATA
FMM SPACE 4,10
** BML MESSAGE BUFFER.
BMLM VFD 12/RM0006 819 MESSAGE ID
SYMM BSS 1 SYMPTOM CODE
PTHM BSS 3 PATH IDENTIFICATION
ESTM BSS 1 EST ORDINAL
RTYM BSS 1 RETRY COUNT
MFIM BSS 1 MAINFRAME ID
HUIM BSS 2 6/ FLAGS, 18/ HARDWARE IDENTIFICATION
PPIM BSS 1 PPU IDENTIFICATION
BYTM BSS 1 ERROR DATA BYTE COUNT
ERDM BSS 22 ERROR DATA
ENDM BSS 0 END OF BLOCK
LOG SPACE 4,20
* LOG - LOG NON-819 MESSAGES.
*
* THIS ROUTINE ISSUES NON-819 ERROR MESSAGES. MESSAGES
* MAY BE SENT TO THE BML, ERROR LOG OR SYSTEM DAYFILE.
*
* ENTRY (LN) = MESSAGE LENGTH IN CM WORDS.
* (WC) = MESSAGE LENGTH IN PP WORDS.
* (EP+1 - EP+2) = *EMB* ADDRESS.
* (EX+3) = OFFSET TO MESSAGE HEADER IN *EMB*.
* (BUFF - BUFF+(LN)-1) = MESSAGE TO BE PROCESSED.
*
* EXIT (EL) .NE. 0 IF ERROR LOG MESSAGE WAS ISSUED.
*
* USES CM+1, EL, MT.
*
* CALLS DFM, DV5, GEM.
LOG SUBR ENTRY/EXIT
LDN 0
STD EO
LDM BUFF+4,EO SET MESSAGE TYPE
STD MT
LMN ELDY
ZJN LOG2 IF ERROR LOG MESSAGE
LMN MLDY&ELDY
NJN LOG3 IF NOT BML MESSAGE
LDD EP+1 GET *EMB* ADDRESS
SHN 14
LMD EP+2
ADD EX+3 ADD OFFSET TO MESSAGE HEADER
ADN 3 ALLOW FOR *EMB* AND MESSAGE HEADERS
STD MD+4 SET CENTRAL MESSAGE DATA ADDRESS
SHN -14
STD MD+3
LDD WC
SBM BUFF+2,EO
RJM DV5 RECALCULATE BYTE COUNT
STD T0
SHN 2
ADM BUFF+2,EO INCLUDE RESIDUAL BYTE COUNT
ADD T0
SBN 5 EXCLUDE HEADER WORD
STD CM+1
LDC BMCN+MD
UJN LOG4 ISSUE BML MESSAGE
LOG2 LDM CM+2 PRESERVE ERRLOG ALERT FLAG
RAD EL
LOG3 LDM LOGA,MT SET DAYFILE SELECTION OPTION
SHN 14
LMC BUFF+5 ISSUE DAYFILE MESSAGE
LOG4 RJM DFM
RJM GEM GENERATE ERRLOG MESSAGE
UJP LOGX RETURN
* TABLE OF DAYFILE SELECTION OPTIONS.
LOGA INDEX
INDEX MSDY,JNMN/10000 MASTER DAYFILE
INDEX ELDY,ERLN/10000 ERROR LOG DAYFILE
INDEX MLDY,BMLN/10000 MAINTENANCE LOG DAYFILE
INDEX MLDY+1
TITLE SUBROUTINES.
CCR SPACE 4,10
** CCR - CALL CONVERSION ROUTINE.
*
* ENTRY (T5) = INDEX TO LAST CONVERSION ROUTINE USED.
*
* EXIT (T5) = INDEX TO CONVERSION ROUTINE USED.
*
* USES T1.
*
* CALLS CONVERSION ROUTINES LISTED IN *THCR*.
CCR1 LDM THCR,T5 SELECT CONVERSION ROUTINE
STD T1
RJM 0,T1 CONVERT HEX DATA
CCR SUBR ENTRY/EXIT
AOD T5
SBN THCRL
MJN CCR1 IF NOT END OF *THCR*
ZJN CCR0 IF VALID INDEX
MONITOR CHGM CONDITIONAL HANG
CCR0 STD T5 RESET INDEX
UJN CCR1 SELECT CONVERSION ROUTINE
THCR BSS 0 TABLE OF HEX CONVERSION ROUTINES
CON C1P
CON C2P
CON C3P
THCRL EQU *-THCR LENGTH OF TABLE
CDA SPACE 4,10
** CDA - CONVERT DISK ADDRESS FOR *ERMD* MESSAGE.
*
* ENTRY (A) = RELATIVE LOCATION OF DISK ADDRESS.
*
* EXIT (BA) = DATA ADDRESS ADVANCED.
*
* USES PA.
*
* CALLS C2D, C4D.
CDA SUBR ENTRY/EXIT
ADD EO
STD BA
LDC ERMD+3 SET PARAMETER ADDRESS
STD PA
RJM C4D CONVERT CYLINDER NUMBER
LDI BA
SHN -6
RJM C2D CONVERT TRACK NUMBER
STM ERMD+11
LDI BA
RJM C2D CONVERT SECTOR NUMBER
STM ERMD+16
AOD BA
UJN CDAX RETURN
CIL SPACE 4,10
** CIL - CLEAR *EMB* INTERLOCK AND RESET FLAGS.
*
* ENTRY (EP+1 - EP+2) = FWA OF *EMB*.
* (EH - EH+4) = *EMB* INTERLOCK WORD 1.
* (EX - EX+4) = *EMB* INTERLOCK WORD 2.
*
* EXIT (A) = (EH+4) = 0 IF *EMB* BUFFER IS EMPTY.
* *1MD* ACTIVE CLEARED IF *EMB* BUFFER IS EMPTY.
* *EMB* INTERLOCK CLEARED IN ALL CASES.
CIL SUBR ENTRY/EXIT
LDD EH+3 *IN*
SBD EX+3 *OUT*
ZJN CIL1 IF *EMB* EMPTY
LDN 2 AVOID CLEARING *1MD ACTIVE*
CIL1 LMN 3 INTERLOCK AND *1MD* ACTIVE
LMD EH+4 CLEAR INTERLOCK, POSSIBLY *1MD ACTIVE*
STD EH+4
LDN 0 CLEAR *MESSAGES LOST*
STD EH+1
LDD EP+1
SHN 14
LMD EP+2
CWD EH
LDD EH+4
UJN CILX RETURN
CLM SPACE 4,10
** CLM - CLEAR MESSAGE BUFFER.
*
* EXIT (A) = 0.
*
* USES T1.
CLM SUBR ENTRY/EXIT
LDN ENDM-BMLM-1
STD T1
CLM1 LDN 0 CLEAR BUFFER
STM BMLM,T1
SOD T1
NJN CLM1 IF NOT END OF BUFFER
UJN CLMX RETURN
CMP SPACE 4,10
** CMP - CONVERT BASIC MESSAGE PARAMETERS.
*
* ENTRY (EO) = BML MESSAGE OFFSET INTO *BUFF*.
*
* EXIT (CT) = CHANNEL TYPE.
*
* USES PA.
*
* CALLS CDA, C2D, C4D.
CMP SUBR ENTRY/EXIT
* INSERT PARAMETERS IN *ERMB* MESSAGE.
LDM BUFF+3*5,EO CONVERT ERROR CODE
RJM C2D
STM ERMB+7 SET IN MESSAGE
* INSERT PARAMETERS IN *ERMC* MESSAGE.
LDM BUFF+1*5+2,EO SET CHANNEL SPECIFICATION
STD CT
LPN 37 CONVERT CHANNEL NUMBER
RJM C2D
STM ERMC+3
LDD CT EXTRACT CHANNEL TYPE
LPN 40
STD CT
ZJN CMP1 IF NON-CONCURRENT CHANNEL
LDC 2RNC&2RCC
CMP1 LMC 2RNC SET CHANNEL TYPE IN MESSAGE
STM ERMC
LDM BUFF+1*5+3,EO CONVERT UNIT NUMBER
RJM C2D
STM ERMC+10
* INSERT PARAMETERS IN *ERMD* MESSAGE.
LDC BUFF+3*5+1 CONVERT DISK ADDRESS
RJM CDA
* INSERT PARAMETERS IN *ERME* MESSAGE.
LDC ERME+14 SET PARAMETER ADDRESS
STD PA
LDD CT
ZJN CMP2 IF NON-CONCURRENT CHANNEL
LDM BUFF+10*5,EO
SHN -6 CONVERT UPPER 4 BITS OF FUNCTION
RJM C2D
STI PA SET IN MESSAGE
AOD PA
CMP2 RJM C4D CONVERT LAST FUNCTION
LDC 2L..
STI PA TERMINATE MESSAGE
* INSERT PARAMETERS IN *ERMF* MESSAGE.
LDC ERMG+5 SET PARAMETER ADDRESS
STD PA
RJM C4D CONVERT GENERAL STATUS
UJP CMPX RETURN
CPD SPACE 4,15
** CPD - COPY ERROR DATA.
*
* ENTRY (BC) = ERROR PACKET BYTE COUNT.
* (CB) = CM WORD BYTE COUNT.
* (ED) = ADDRESS OF ERROR PACKET.
*
* EXIT *BML* BUFFER FILLED.
* POINTERS UPDATED.
*
* USES BC, CB, ED, T2.
CPD3 AOD T2 ADVANCE *BML* BUFFER COUNT
LMN ENDM-ERDM
ZJN CPD5 IF END OF BUFFER
LDN 0 ZERO FILL BUFFER
STM ERDM,T2
CPD4 UJN CPD3 LOOP ON ZERO FILL
CPD5 STD BC
LDD CB
ZJN CPDX IF EVEN CM WORD BYTE COUNT
CPD6 AOD ED ADVANCE ERROR DATA POINTER
AOD CB
LMN 5
NJN CPD6 IF NOT END OF CM WORD
STD CB
LDM RTYM CLEAR CONTINUATION FLAG
SCN 4
STM RTYM
CPD SUBR ENTRY/EXIT
LDN 0
STD T2
CPD1 LDI ED COPY ERROR DATA
STM ERDM,T2
AOD ED ADVANCE ERROR DATA POINTER
AOD CB
LMN 5
NJN CPD2 IF NOT FULL CM WORD
STD CB
CPD2 SOD BC DECREMENT BYTE COUNT
ZJN CPD4 IF END OF ERROR DATA
AOD T2 ADVANCE *BML* BUFFER POINTER
LMN ENDM-ERDM
NJN CPD1 IF NOT END OF *BML* BUFFER
LDM RTYM SET CONTINUATION FLAG
SCN 4
LMN 4
STM RTYM
UJN CPDX RETURN
CSD SPACE 4,10
** CSD - CONVERT STATUS DATA.
*
* ENTRY (A) = 6/ PC, 12/ MA
* PC = PARAMETER COUNT FOR MESSAGE BLOCK.
* MA = MESSAGE ADDRESS FOR 1ST PARAMETER.
*
* USES PA, T6, T7.
*
* CALLS CCR.
CSD1 RJM CCR CALL CONVERSION ROUTINE
LDD T6
SHN 21-0
NJN CSD3 IF NOT MESSAGE BOUNDARY
CSD2 LDC 200125
CSD3 STD T6 UPDATE SKIP CONTROL
SHN 1-21
LMN 2
RAD PA ADJUST PARAMETER ADDRESS
SOD T7
NJN CSD1 IF NOT END OF PARAMETERS
CSD SUBR ENTRY/EXIT
SBN 3
STD PA
SHN -14 SET PARAMETER COUNT
STD T7
ADN 1 ALLOW FOR TWO BYTE PARAMETERS
RAD T7
UJN CSD2 SET SKIP CONTROL
C1P SPACE 4,10
** C1P - CONVERT FIRST PAIR OF HEX DIGITS.
*
* ENTRY (BA) = ADDRESS OF HEX DATA.
*
* EXIT (T2) = FIRST DIGIT OF NEXT PAIR.
* (BA) = BUFFER ADDRESS ADVANCED.
*
* CALLS CHD.
C1P SUBR ENTRY/EXIT
LDI BA
STD T2 SAVE DIGIT FOR NEXT CONVERSION
SHN -4
RJM CHD CONVERT HEX DATA
AOD BA
UJN C1PX RETURN
C2P SPACE 4,10
** C2P - CONVERT SECOND PAIR OF HEX DIGITS.
*
* ENTRY (T2) = FIRST DIGIT OF PAIR.
* (BA) = ADDRESS OF HEX DATA.
*
* EXIT (T2) = NEXT PAIR FOR CONVERSION.
*
* CALLS CHD.
C2P SUBR ENTRY/EXIT
LDD T2
LPN 17 EXTRACT FIRST DIGIT
SHN 14
LMI BA SAVE NEXT PAIR OF HEX DIGITS
STD T2
SHN -10 CONVERT HEX DATA
RJM CHD
UJN C2PX RETURN
C3P SPACE 4,10
** C3P - CONVERT THIRD PAIR OF HEX DIGITS.
*
* ENTRY (T2) = PAIR FOR CONVERSION.
* (BA) = ADDRESS OF HEX DATA.
*
* EXIT (BA) = BUFFER ADDRESS ADVANCED.
*
* CALLS CHD.
C3P SUBR ENTRY/EXIT
LDD T2
RJM CHD CONVERT HEX DATA
AOD BA
UJN C3PX RETURN
C4D SPACE 4,10
** C4D - CONVERT FOUR OCTAL DIGITS.
*
* ENTRY (BA) = ADDRESS OF OCTAL DATA.
* (PA) = ADDRESS TO STORE CONVERSION.
*
* EXIT (BA) = DATA ADDRESS ADVANCED.
* (PA) = PARAMETER ADDRESS ADVANCED.
*
* CALLS C2D.
C4D SUBR ENTRY/EXIT
LDI BA
SHN -6 CONVERT UPPER TWO DIGITS
RJM C2D
STI PA STORE CONVERSION
AOD PA
LDI BA CONVERT LOWER DIGITS
RJM C2D
STI PA STORE CONVERSION
AOD BA
AOD PA
UJN C4DX RETURN
C6D SPACE 4,15
** C6D - CONVERT SIX OCTAL DIGITS.
*
* ENTRY (A) .GE. 0 IF DATA BEGINS ON HALF BYTE BOUNDARY.
* .LT. 0 IF DATA BEGINS ON FULL BYTE BOUNDARY.
* (BA) = ADDRESS OF OCTAL DATA.
* (PA) = ADDRESS TO STORE CONVERSION.
*
* EXIT (BA) = DATA ADDRESS ADVANCED.
* (PA) = PARAMETER ADDRESS ADVANCED.
*
* CALLS C2D, C4D.
C6D1 LDI BA CONVERT TWO DIGITS
RJM C2D
STI PA SET CONVERSION IN MESSAGE
AOD PA
AOD BA CONVERT FOUR DIGITS
RJM C4D
C6D SUBR ENTRY/EXIT
PJN C6D1 IF DATA ON HALF BYTE BOUNDARY
RJM C4D CONVERT FOUR DIGITS
LDI BA
SHN -6 CONVERT TWO DIGITS
RJM C2D
STI PA SET CONVERSION IN MESSAGE
AOD PA
UJN C6DX RETURN
FNT SPACE 4,10
** FMT - FORMAT *BML* MESSAGE.
*
* ENTRY (ED) = ADDRESS OF ERROR MESSAGE DATA.
*
* USES T0, T1, CM - CM+4.
FMT SUBR ENTRY/EXIT
* SET SYMPTOM CODE AND DRIVER TYPE.
LDI ED TEST UNRECOVERED DATA ERROR
ERRNZ G1FD CODE IS VALUE DEPENDENT
SHN 21-12
PJN FMT1 IF NOT UNRECOVERED DATA ERROR
LDN RS0101-100
UJN FMT4 SET SYMPTOM CODE
FMT1 SHN 12-2
PJN FMT2 IF NOT REQUEST ERROR
LDN RS0104-100
UJN FMT4 SET SYMPTOM CODE
FMT2 LDM EPFD+G2FD,ED CHECK ERROR RECOVERY
SHN 21-6
PJN FMT3 IF NOT RECOVERED DATA ERROR
LDN RS0102-100
UJN FMT4 SET SYMPTOM CODE
FMT3 LDN RS0103-100
FMT4 ADC DHCD*400+100
STM SYMM
* SET DATA PATH INFORMATION.
LDM UNFD,ED CHECK UNIT NUMBER
LPN 7
STM PTHM+1 SET VALUE IN BML MESSAGE
LPN 4
ADN 2 CHANNEL (CONTROLLER) NUMBER
STD T1
LDM EQFD,ED SET FLPP NUMBER
SHN -11
SHN 1
STD T0
LDM EQFD,ED SET EST ORDINAL
LPC 777
STM ESTM
SFA EST SET DEVICE MNEMONIC
ADK EQDE
CRD CM
LDD CM+3
ADC -2RDV
STM EQFD,ED
LDM EPFD+G2FD,ED CHECK WHICH FLPP FOUND ERROR
SHN 0-13
ADD T0 ADJUST FLPP NUMBER
SHN 6
STM MFIM
LMD T1
STM PTHM SET RECOVERY PATH
* SET RETRY COUNT + RECOVERY FLAGS.
LDM UNFD,ED SET READ/WRITE FLAG
SHN -5
LPN 2
STD T0
LDI ED
ERRNZ G1FD CODE IS VALUE DEPENDENT
SHN -12
LPN 1 EXTRACT UNRECOVERED STATUS
RAD T0
LDM EPFD+RTFD,ED SET RETRY COUNT
LPC 777
SBD HN
MJN FMT5 IF .LE. 77
LCN 1
FMT5 ADD HN RECOVERY COUNT
SHN 6
LMD T0 APPEND FLAGS
STM RTYM
LDD IA SET PP IDENTIFICATION
STM PPIM
LJM FMTX RETURN
GEM SPACE 4,15
** GEM - GENERATE ERRLOG MESSAGE FOR MASS STORAGE ERROR.
*
* ENTRY (EO) = BML MESSAGE OFFSET INTO *BUFF*.
* (LN) = BML MESSAGE LENGTH.
* (MT) = MESSAGE TYPE.
*
* EXIT (EL) = 1 IF ERRLOG MESSAGE ISSUED.
*
* USES T1, T5, T7, EL, LA, CM - CM+4.
*
* CALLS ACS, C2D, DFM.
*
* MACROS SFA.
GEM3 STD LA SAVE MESSAGE TABLE ADDRESS
GEM4 LDC ELMB+3
STD T1 SET ASSEMBLY ADDRESS
LDN 0
STI T1
LDI LA APPEND MESSAGE TO PREFIX
RJM ACS
LDC ELMB+ERLN ISSUE ERRLOG MESSAGE
RJM DFM
AOD LA ADVANCE MESSAGE TABLE ADDRESS
LDI LA
NJN GEM4 IF NOT END OF TABLE
LDN 1
STD EL SET ERRLOG ALERT STATUS
GEM SUBR ENTRY/EXIT
LDD MT
LMN MLDY
NJN GEMX IF NOT BML MESSAGE
LCN 0 INITIALIZE INDEX
STD T7
GEM0 AOD T7 ADVANCE INDEX
SBK TMIDL
ZJN GEMX IF END OF LIST
LDM TMID,T7 GET NEXT MASS STORAGE MESSAGE ID
LMM BUFF+1*5,EO
NJN GEM0 IF MESSAGE ID DOES NOT MATCH
LDM BUFF+2*5+1,EO
LPN 1
ZJN GEMX IF RECOVERED ERROR
LDM BUFF+2*5,EO
STD T5 SET EST ORDINAL
ZJN GEMX IF NO EST ORDINAL SPECIFIED
LDK ESTP CHECK MAXIMUM EST ORDINAL
CRD CM
LDD T5
SBD CM+1 MAXIMUM MASS STORAGE EST ORDINAL + 1
PJN GEMX IF NOT VALID MASS STORAGE DEVICE
SFA EST,T5
ADK EQDE READ EST ENTRY
CRD CM
LCN 0 INITIALIZE INDEX
STD T7
GEM1 AOD T7 ADVANCE INDEX
LDM TDVT,T7 CHECK NEXT MASS STORAGE DEVICE TYPE
ZJP GEMX IF END OF LIST
LMD CM+3
NJN GEM1 IF NOT MATCHING DEVICE TYPE
LDD CM+3
STM ELMB GENERATE MESSAGE PREFIX
LDD T5
LPN 7
SHN 6 SEPARATE PREFIX FROM MESSAGE
ADC 2R0,
STM ELMB+2
LDD T5 CONVERT REMAINDER OF EST ORDINAL
SHN -3
RJM C2D
STM ELMB+1
LDD LN CHECK MESSAGE LENGTH
SBN 4
PJN GEM2 IF NOT BASIC MESSAGE
LDC GEMA
LJM GEM3 ISSUE BASIC ERRLOG MESSAGE
GEM2 LDM TEMP,T7 SET PROCESSOR ADDRESS
STD T7
LJM 0,T7 EXIT TO MESSAGE PROCESSOR
GEMA CON ERMA
CON 0
GIL SPACE 4,10
** GIL - GET *EMB* INTERLOCK.
*
* ENTRY (EP+1 - EP+2) = FWA OF *EMB*.
*
* EXIT *EMB* INTERLOCK OBTAINED.
* (EH - EH+4) = *EMB* HEADER WORD 1 REFRESHED.
*
* USES CM - CM+4, EH - EH+4.
*
* MACROS DELAY, MONITOR.
GIL2 LDD EP+1
SHN 14 READ *EMB* HEADER WORD
LMD EP+2
CRD EH
GIL SUBR ENTRY/EXIT
GIL1 LDK ZERL
CRD CM
LDD EP+1 FORMAT *UTEM* REQUEST
STD CM+3
LDD EP+2
STD CM+4
MONITOR UTEM GET *EMB* INTERLOCK
LDD CM+1
ZJN GIL2 IF INTERLOCK OBTAINED
DELAY
UJN GIL1 RETRY
TITLE MESSAGE GENERATORS.
PDA SPACE 4,10
** GENERATE ERRLOG MESSAGES FOR *LDAM* TYPE DEVICES.
PDA BSS 0 ENTRY
PDB BSS 0
PDD BSS 0
PDG BSS 0
PDI BSS 0
PDJ BSS 0
PDK BSS 0
PDL BSS 0
PDM BSS 0
PDQ BSS 0
PDR BSS 0
PDX BSS 0
PDY BSS 0
PDZ BSS 0
RJM CMP CONVERT MESSAGE PARAMETERS
* INSERT PARAMETERS IN *ERMI* THRU *ERMM* MESSAGES.
LDC ERMI+2 SET PARAMETER ADDRESS
STD PA
LDN 5 NUMBER OF MESSAGES
STD T7
PDA1 LDN 4 NUMBER OF PARAMETERS / MESSAGE
STD T6
PDA2 RJM C4D CONVERT FOUR OCTAL DIGITS
LDN 2
RAD PA ADVANCE PARAMETER ADDRESS
SOD T6
NJN PDA2 IF NOT END OF MESSAGE
AOD PA
SOD T7
NJN PDA1 IF NOT END OF MESSAGES
LDC PDAT
LJM GEM3 ISSUE ERRLOG MESSAGES
PDAT CON ERMA
CON ERMB
CON ERMC
CON ERMD
CON ERME
CON ERMF
CON ERMH
CON ERMI
CON ERMJ
CON ERMK
CON ERML
CON ERMM
CON 0
TITLE MESSAGE GENERATORS.
PDC SPACE 4,10
** GENERATE ERRLOG MESSAGES FOR CCC COUPLED DEVICES.
PDC BSS 0 ENTRY
RJM CMP CONVERT MESSAGE PARAMETERS
* INSERT PARAMETERS IN *ERMZ* THRU *ERM5* MESSAGES.
LDC ERMZ-1 SET PARAMETER ADDRESS
STD PA
LDN THCRL-1 INITIALIZE CONVERSION ROUTINE INDEX
STD T5
LDN 24D NUMBER OF PARAMETERS IN MESSAGE BLOCK
STD T7
PDC1 LPN 3
ZJN PDC2 IF CROSSING MESSAGE BOUNDARY
LCN 1
PDC2 ADN 4 ADVANCE CONVERSION ADDRESS
RAD PA
RJM CCR CALL CONVERSION ROUTINE
SOD T7
NJN PDC1 IF NOT END OF PARAMETERS
* INSERT PARAMETERS IN *ERMX* MESSAGE.
LDC ERMX+12 SET PARAMETER ADDRESS
STD PA
AOD BA ADJUST BML DATA ADDRESS
LDI BA
RJM CHD CONVERT CYBER I/F STATUS
* INSERT PARAMETERS IN *ERMY* MESSAGE.
LDC ERMY+6 SET PARAMETER ADDRESS
STD PA
AOD BA ADJUST BML DATA ADDRESS
LDI BA
STD T2 SAVE STATUS FOR *C3P*
SHN -10
RJM CHD CONVERT CCC STATUS
LDN 1R -1R0
SHN 6 INSERT BLANK SEPARATOR
RAM -1,PA
RJM C3P CONVERT REMAINDER OF STATUS
LDD CT
ZJN PDC3 IF NOT DMA PATH TO DEVICE
* INSERT PARAMETERS IN *ERM6* MESSAGE.
AOD BA ADJUST DATA ADDRESS
LDC ERM6+7
STD PA
RJM C6D CONVERT OPERATIONAL STATUS REGISTER
* INSERT PARAMETERS IN *ERM7* MESSAGE.
LDC ERM7+7 SET PARAMETER ADDRESS
STD PA
LCN 0 CONVERT ADAPTOR CONTROL REGISTER
RJM C6D
* INSERT PARAMETERS IN *ERM8* MESSAGE.
LDC ERM8+7 SET PARAMETER ADDRESS
STD PA
RJM C6D CONVERT ERROR STATUS REGISTER
LDC ERM6
PDC3 STM PDCTE SET / CLEAR END OF MESSAGES
LDC PDCT
LJM GEM3 ISSUE ERRLOG MESSAGES
PDCT CON ERMA
CON ERMB
CON ERMC
CON ERMD
CON ERME
CON ERMF
CON ERMX
CON ERMY
CON ERMH
CON ERMZ
CON ERM1
CON ERM2
CON ERM3
CON ERM4
CON ERM5
PDCTE CON ERM6
CON ERM7
CON ERM8
CON 0
TITLE MESSAGE GENERATORS.
PDE SPACE 4,10
** GENERATE ERRLOG MESSAGES FOR EXTENDED MEMORY DEVICES.
PDE BSS 0 ENTRY
PDP BSS 0
* INSERT PARAMETERS IN *ERMB* MESSAGE.
LDM BUFF+3*5,EO CONVERT ERROR CODE
RJM C2D
STM ERMB+7 SET IN MESSAGE
* INSERT PARAMETERS IN *ERMG* MESSAGE.
LDC BUFF+4*5+1 SET BUFFER ADDRESS
ADD EO
STD BA
LDC ERMG+5 SET PARAMETER ADDRESS
STD PA
RJM C4D CONVERT STATUS
* INSERT PARAMETERS IN *ERMN* MESSAGE.
LDC ERMN+7 SET PARAMETER ADDRESS
STD PA
RJM C4D CONVERT WORD COUNT
* INSERT PARAMETERS IN *ERMO* MESSAGE.
LDC ERMO+5 SET PARAMETER ADDRESS
STD PA
RJM C4D CONVERT EXTENDED MEMORY ADDRESS
RJM C4D
LDC PDET
LJM GEM3 ISSUE ERRLOG MESSAGES
PDET CON ERMA
CON ERMB
CON ERMG
CON ERMN
CON ERMO
CON 0
TITLE MESSAGE GENERATORS.
PDF SPACE 4,10
** GENERATE ERRLOG MESSAGES FOR 887 DEVICES.
PDF BSS 0 ENTRY
PDH BSS 0
LDN 0
PDF1 STM PDFA
* INSERT PARAMETERS IN *ERMP* MESSAGE.
LDM BUFF+3*5+4,EO CONVERT FAULT CODE
RJM C2D
STM ERMP+7 SET IN MESSAGE
* INSERT PARAMETERS IN *ERMQ* MESSAGE.
LDM BUFF+1*5+2,EO CONVERT CPP NUMBER
SHN -6
RJM C2D
STM ERMQ+3
LDM BUFF+1*5+2,EO CONVERT CCH NUMBER
LPN 37
RJM C2D
STM ERMQ+10
LDM BUFF+1*5+4,EO APPEND PORT DESIGNATOR
ADC 2RA,
STM ERMQ+11
LDM BUFF+1*5+3,EO CONVERT EQUIPMENT (CONTROLLER) NUMBER
SHN -6
RJM C2D
SHN 6
LMN 1R,
STM ERMQ+15
LDM BUFF+1*5+3,EO CONVERT UNIT NUMBER
LPN 77
RJM C2D
STM ERMQ+21
PDF2 LDC PDNT SET LIST ADDRESS
STD LA
PDF3 LDM PDFT-PDNT,LA COPY MESSAGE LIST
STI LA
AOD LA ADVANCE LIST ADDRESS
LMC PDNT+PDFTE-PDFT
NJN PDF3 IF NOT END OF COPY
LDD LN
SBN 4
NJN PDF4 IF MESSAGE HAS MORE THAN FAULT CODE
* LDN 0
STM PDNT+PDFTC-PDFT TERMINATE MESSAGE LIST
LDC PDNT
LJM GEM3 ISSUE ERRLOG MESSAGES
* INSERT PARAMETERS IN *ERMD* MESSAGE.
PDF4 LDC BUFF+4*5+3 CONVERT DISK ADDRESS
RJM CDA
* INSERT PARAMETERS IN *ERMS* MESSAGE.
LDC ERMS+10 SET PARAMETER ADDRESS
STD PA
LDN 4 ADJUST BML DATA ADDRESS
RAD BA
LDM PDFA
NJN PDF5 IF NOT 887 DEVICE
LDI BA
LPC 377 ISOLATE COMMAND CODE
STI BA
PDF5 LDN THCRL-1 INITIALIZE CONVERSION ROUTINE INDEX
STD T5
RJM CCR CONVERT LAST COMMAND
RJM CCR
* INSERT PARAMETERS IN *ERME* MESSAGE.
LDC ERME+14 SET PARAMETER ADDRESS
STD PA
RJM CCR CONVERT LAST FUNCTION
RJM CCR
LDC 2L.. TERMINATE MESSAGE
STI PA
* INSERT PARAMETERS IN *ERMR* MESSAGE.
LDC ERMR+4 SET PARAMETER ADDRESS
STD PA
LDN 4 ITERATION COUNT
STD T7
PDF6 AOD PA SKIP BLANK SEPARATOR
RJM CCR
RJM CCR CONVERT CHANNEL DATA
SOD T7
NJN PDF6 IF MORE PARAMETERS
LDN 1R -1R0
SHN 6 INSERT BLANK SEPARATOR
RAM ERMR+14
LDD LN CHECK BML MESSAGE LENGTH
SBN 10D
PJN PDF8 IF MESSAGE INCLUDES STATUS BLOCKS
LDN 0
PDF7 STM PDFTE SET / CLEAR END OF MESSAGES
LDC PDFT
LJM GEM3 ISSUE ERRLOG MESSAGES
PDF8 LDN THCRL-1 INITIALIZE CONVERSION ROUTINE INDEX
STD T5
LDN 10 ADJUST BML DATA ADDRESS
RAD BA
LDC 0 887 VS. 9853/583X/47444 PATH SELECTOR
PDFA EQU *-1
NJP PDN1 IF 9853/583X/47444 DEVICE
* INSERT PARAMETERS IN *ERMU* AND *ERMV* MESSAGES.
LDC 7S12+ERMU+2 CONVERT STATUS DATA
RJM CSD
* INSERT PARAMETERS IN *ERMI* AND *ERMJ* MESSAGES.
LDC 10S12+ERMI+2 CONVERT STATUS DATA
RJM CSD
LDC ERMT
UJP PDF7 ISSUE ERRLOG MESSAGES
PDFT CON ERMA
CON ERMP
CON ERMQ
PDFTC CON ERMD
CON ERME
CON ERMR
CON ERMS
PDFTE CON ERMT
CON ERMU
CON ERMV
CON ERMW
CON ERMI
CON ERMJ
CON 0
TITLE MESSAGE GENERATORS.
PDN SPACE 4,10
** GENERATE ERRLOG MESSAGES FOR 9853/583X/47444 DEVICES.
PDN BSS 0 ENTRY
PEA BSS 0 DAS SSD 1X
PEB BSS 0 DAS SSD 2X
PEC BSS 0 DAS SABRE 1X
PED BSS 0 DAS SABRE 1XP
PEE BSS 0 DAS SABRE 2X
PEF BSS 0 DAS SABRE 2XP
PEG BSS 0 DAS ELITE 1X
PEH BSS 0 DAS ELITE 1XP
PEI BSS 0 DAS ELITE 2X (MP)
PEJ BSS 0 DAS ELITE 2XP (MP)
PEK BSS 0 DAS ELITE 3XP (MP)
PEL BSS 0 DAS ELITE 4X (MP)
PEM BSS 0 DAS SABRE 3XP (MP)
PEN BSS 0 DAS SABRE 4X (MP)
PEO BSS 0 DAS 3.5IN 1X
PEP BSS 0 DAS 3.5IN 1XP
PES BSS 0 DAS 3.5IN 2X (MP)
PEU BSS 0 DAS 3.5IN 2XP (MP)
PEV BSS 0 DAS 3.5IN 3XP (MP)
PEW BSS 0 DAS 3.5IN 4X (MP)
LDN 2
LJM PDF1 GENERATE ALL BUT STATUS MESSAGES
PDNT EQU BFMS-76 ADDRESS OF MESSAGE LIST
PDN1 LDC ERM9 PUT STATUS HEADER MESSAGE IN LIST
STI LA
AOD LA ADVANCE LIST ADDRESS
LDC PDNT+100
STD PA SET MESSAGE ASSEMBLY ADDRESS
STD CM
LDI BA FWA OF RESPONSE PACKET
LPN 17
SHN 14
LMM 1,BA FORM STATUS BLOCK LENGTH
SHN -10
ADN 1 ALLOW FOR PADDING ON LAST SUBSTATUS
SCN 1
STD BC SET OCTET COUNT
SBN 12
PJN PDN5 IF LENGTH NOT TOO SHORT
PDN3 SOD LA
PDN4 LDN 0 TERMINATE LIST
STI LA
LDC PDNT
LJM GEM3 ISSUE ERRLOG MESSAGES
PDN5 SBK 200
PJN PDN3 IF LENGTH TOO LONG
RJM CCR
LDN 10 LENGTH OF BASIC RESPONSE PACKET
PDN6 STD T7
ADN 1+2 INCLUDE ID WORD
SCN 1
STD T4 ALLOW FOR PADDING
RJM CCR
PDN7 LDN 4 SET LOOP CONTROL
STD T6
PDN8 LDC 2R INSERT LEADING BLANKS IN BUFFER
STI PA
AOD PA CONVERT TWO HEX DIGITS
RJM CCR
SOD T7
ZJN PDN9 IF END OF SUBSTATUS
RJM CCR
SOD T7
ZJN PDN9 IF END OF SUBSTATUS
SOD T6
NJN PDN8 IF NOT END OF MESSAGE LINE
LDN 1R &1R.
PDN9 LMN 1R. SET END OF LINE
SHN 6
STI PA TERMINATE MESSAGE LINE
LDD CM
STI LA PUT LINE IN MESSAGE LIST
AOD PA
STD CM FWA OF NEXT LINE
AOD LA
LDD T7
NJN PDN13 IF NOT END OF SUBSTATUS
* LDN 0
SBD T4 DECREMENT STATUS LENGTH
RAD BC
MJN PDN9.1 IF END OF STATUS BLOCK
NJN PDN9.2 IF NOT END OF STATUS BLOCK
PDN9.1 LJM PDN4 TERMINATE LIST
PDN9.2 LDD T4
LPN 1
ZJN PDN10 IF NOT PADDING OCTET
RJM CCR
SOD PA RESET PARAMETER ADDRESS
PDN10 LDC 2R
STI PA SET LEADING BLANKS IN BUFFER
AOD PA
RJM CCR CONVERT SUBSTATUS LENGTH
SOD T0
MJN PDN11 IF INVALID SUBSTATUS LENGTH
LPC 177
NJN PDN12 IF VALID SUBSTATUS
PDN11 LDD BC
PDN12 LJM PDN6 GENERATE NEXT MESSAGE LINE
PDN13 LDC 2R BLANK FILL START OF MESSAGE
STI PA
STM 1,PA DONT RELIST SUBSTATUS HEADER
STM 2,PA
LDN 3 ADVANCE BUFFER ADDRESS
RAD PA
LJM PDN7 CONTINUE SUBSTATUS ON NEXT LINE
TITLE MISCELLANEOUS.
TDVT SPACE 4,10
** TDVT - TABLE OF MASS STORAGE DEVICE TYPES.
TDVT BSS 0 TABLE OF DEVICE TYPES
TBL "MSEQ"
CON 0 END OF TABLE
TELM SPACE 4,10
** TELM - TABLE OF ERRLOG MESSAGES.
TELM BSS 0 TABLE OF MESSAGES
ERMA DATA Z*UNRECOVERED MASS STORAGE ERROR.*
ERMB DATA Z*ERROR CODE = NN.*
ERMC DATA Z*NCH = CC, UN = UU.*
ERMD DATA Z*CYL = YYYY, TRK = TT, SEC = SS.*
ERME DATA Z*LAST CHANNEL FUNCTION = FFFFFF.*
ERMF DATA H*GENERAL *
ERMG DATA Z*STATUS = GGGG.*
ERMH DATA Z*DETAILED STATUS.*
ERMI DATA Z* 01=XXXX 02=XXXX 03=XXXX 04=XXXX.*
ERMJ DATA Z* 05=XXXX 06=XXXX 07=XXXX 08=XXXX.*
ERMK DATA Z* 09=XXXX 10=XXXX 11=XXXX 12=XXXX.*
ERML DATA Z* 13=XXXX 14=XXXX 15=XXXX 16=XXXX.*
ERMM DATA Z* 17=XXXX 18=XXXX 19=XXXX 20=XXXX.*
ERMN DATA Z*WORD COUNT = CCCC.*
ERMO DATA Z*XM ADDR = AAAAAAAA.*
ERMP DATA Z*FAULT CODE = NN.*
ERMQ DATA Z*CPP = PP, CCH = CCB, EQ = E, UN = UU.*
ERMR DATA Z*CCH REG = DDDD EEEE OO C RRRR.*
ERMS DATA Z*LAST COMMAND = CCCC.*
ERMT DATA Z*IHD STATUS.*
ERMU DATA Z* 01=AAAA 02=BBBB 03=CCCC 04=DDDD.*
ERMV DATA Z* 05=EEEE 06=FFFF 07=GGGG.*
ERMW DATA Z*DEVICE STATUS.*
ERMX DATA Z*CYBER I/F STATUS = II.*
ERMY DATA Z*CCC STATUS = CCC.*
ERMZ DATA Z* SB00=SS SB01=SS SB02=SS SB03=SS.*
ERM1 DATA Z* SB04=SS SB05=SS SB06=SS SB07=SS.*
ERM2 DATA Z* SB08=SS SB09=SS SB10=SS SB11=SS.*
ERM3 DATA Z* SB12=SS SB13=SS SB14=SS SB15=SS.*
ERM4 DATA Z* SB16=SS SB17=SS SB18=SS SB19=SS.*
ERM5 DATA Z* SB20=SS SB21=SS SB22=SS SB23=SS.*
ERM6 DATA Z*OP STAT REG = OOOOOO.*
ERM7 DATA Z*AD CNTL REG = AAAAAA.*
ERM8 DATA Z*ER STAT REG = EEEEEE.*
ERM9 DATA Z*9853/583X/47444 STATUS.*
TEMP SPACE 4,10
** TEMP - TABLE OF ERRLOG MESSAGE PROCESSORS.
TEMP BSS 0 TABLE OF MESSAGE PROCESSORS
TEMP HERE
TMID SPACE 4,10
** TMID - TABLE OF MASS STORAGE BML MESSAGE ID-S.
TMID BSS 0 TABLE OF MESSAGE ID-S
TMID HERE
TMIDL EQU *-TMID LENGTH OF TABLE
SPACE 4,10
** COMMON DECKS.
*CALL COMPACS
CA EQU PA DEFINE CONVERSION ADDRESS
LIST X
*CALL COMPCHD
LIST *
*CALL COMPC2D
*CALL COMPDV5
1MD SPACE 4,10
OVERFLOW
BUFF SPACE 4,10
ELMB BSS 0 ERRLOG MESSAGE ASSEMBLY BUFFER
BUFF EQU ELMB+5*5 MESSAGE BUFFER
BUFFL EQU PDNT-BUFF
ERRNG PDNT-BUFF-5*200 OVERFLOW
END