IDENT 5ME,DVEX
PERIPH
BASE M
SST
5ME TITLE 5ME - MASS STORAGE VALIDATION ERROR PROCESSOR.
*COMMENT 5ME - MS VALIDATION ERROR PROCESSOR.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
SPACE 4,10
***** 5ME - MASS STORAGE VALIDATION ERROR PROCESSOR.
*
* P. D. HAAS. 76/05/27.
* J. M. MAREK. 87/04/24.
SPACE 4,10
*** 5ME TRANSLATES ERROR CODES RETURNED BY CPUMTR ON A
* *VMSM* REQUEST INTO ERRLOG MESSAGES. MESSAGES WILL NOT
* BE ISSUED IF THE ERRORS ARE ON THE ERRLOG DEVICE.
SPACE 4,10
*** ERRLOG MESSAGES.
*
* *MSER, EQXXX, TRACK COUNT.* = THE NUMBER OF AVAILABLE
* TRACKS AS MAINTAINED IN THE *TDGL* WORD OF THE MST FOR
* EST ORDINAL XXX IS INCORRECT (EC=1).
*
* *MSER, EQXXX, PF COUNT.* = THE NUMBER OF PRESERVED FILES
* INDICATED IN THE TRT FOR EST ORDINAL XXX DOES NOT MATCH THE
* COUNT MAINTAINED IN THE *ACGL* WORD OF THE MST (EC=2).
*
* *MSER, EQXXX, PERMITS CHAIN.* = THE FIRST TRACK OF THE
* PERMITS CHAIN ON EST ORDINAL XXX IS NOT RESERVED AND/OR
* PRESERVED IN THE TRT (EC=4).
*
* *MSER, EQXXX, CATALOG CHAIN.* = ERROR IN CATALOG CHAIN ON EST
* ORDINAL XXX (EC=10), CAUSED BY ONE OR MORE OF THE FOLLOWING -
* 1) LABEL TRACK NOT LINKED TO FIRST CATALOG TRACK.
* 2) NUMBER OF CATALOG TRACKS NOT A POWER OF 2.
* 3) CATALOG CHAIN NOT RESERVED.
* 4) LENGTH OF CATALOG CHAIN INCORRECT.
* 5) CATALOG CHAIN NON-CONTIGUOUS IF FLAGGED AS SUCH.
*
* *MSER, EQXXX, INDIRECT CHAIN.* = THE FIRST TRACK OF THE
* INDIRECT CHAIN ON EST ORDINAL XXX IS NOT RESERVED AND/OR
* PRESERVED IN THE TRT (EC=20).
*
* *MSER, EQXXX, PACK=VVVVVVV, DN=DD-U* = WRONG PACK MOUNTED
* ON EQUIPMENT XXX. THE PACK MOUNTED HAS A VSN OF VVVVVVV,
* A DEVICE NUMBER OF DD, AND IS RELATIVE UNIT U (IF IT IS
* PART OF MULTI-SPINDLE SET.)
SPACE 4,10
*** OPERATOR MESSAGES.
*
* *EQXXX, VALIDATION ERROR NN.* = MESSAGE FLASHED AT THE
* SYSTEM CONTROL POINT AS A RESULT OF *VMSM* ERRORS ON
* EST ORDINAL XXX. NN REPRESENTS ANY COMBINATION OF THE
* ERROR CODES (EC) IDENTIFIED WITH THE ERRLOG MESSAGES.
*
* *EQXXX, PACK=VVVVVVV, DN=DD-U* = WRONG PACK MOUNTED ON
* EQUIPMENT XXX. THE PACK MOUNTED HAS A VSN OF VVVVVVV,
* A DEVICE NUMBER OF DD, AND IS RELATIVE UNIT U (IF IT IS
* PART OF MULTI-SPINDLE SET.)
SPACE 4,10
*** ENTRY CONDITIONS.
*
* (IR+2) = ERROR CODES.
* .GT. 77 = FWA OF BUFFER CONTAINING LABEL SECTOR
* (WRONG PACK ERROR.)
* (IR+3) = EST ORDINAL.
SPACE 4,10
*** EXIT CONDITIONS.
*
* (A) = STATUS RESPONSE.
* 0 = OPERATOR ENTERED *GO*.
* .LT. 0 = DEVICE IS DOWN.
SPACE 4,10
** COMMON DECKS.
*CALL COMPMAC
*CALL COMSCPS
*CALL COMSLSD
*CALL COMSMSC
SPACE 4,10
**** DIRECT LOCATION ASSIGNMENTS.
EI EQU 17 ERROR INDEX
****
DVE TITLE MAIN LOOP.
ORG N4SS+5*PFGL+12
DVEX LJM DVE1 ENTRY FROM *PPR*
DVE EQU *-1 RETURN (FROM *EXR* CALL)
UJN DVE3 ENTRY FROM *EXR*
DVE1 LDN DVE2-DVE1 MODIFY EXIT
RAM DVE
LDD IR+2 GET ERROR FLAGS
NJN DVE4 IF ERRORS SET
DVE2 MONITOR DPPM RELEASE PP
LJM PPR EXIT (FROM *PPR* CALL)
DVE3 LDD IR+2
ZJN DVEX IF NO ERROR FLAGS
DVE4 RJM C2D CONVERT ERROR FLAGS
STM CMSG+14
LDD IR+3 CONVERT UPPER TWO DIGITS OF EST ORDINAL
STD T5
SHN -3
RJM C2D
STM CMSG+1
LDD IR+3 CONVERT LOWER DIGIT OF EST ORDINAL
LPN 7
SHN 6
RAM CMSG+2
LDN NCPL GET NUMBER OF CONTROL POINTS
CRD T6
AOD T6+1 SET ADDRESS OF SENSE SWITCH WORD
SHN 7
ADN SNSW
STD T7
LDN DFPP READ DAYFILE POINTER
CRD CM
LDD CM SET FWA OF DAYFILE POINTERS
SHN 14
LMD CM+1
ADN 3*ELDY+2
CRD CM
LDD IR+2 CHECK ERROR CODE
ADK N4SS+PFGL*5-BFMS
STD T6 SET PACK NAME ADDRESS FOR WRONG PACK
SHN -7
ZJN DVE5 IF *VMSM* ERROR CODE
LDN 40 PROHIBIT USING THIS PP TO DUMP DAYFILE
RAM DVEA
LDN 1
STD IR+2 FORCE ERROR CODE
STM DVEB POST-PROCESS THE ERROR
LCN 0
ERRNZ WPEM
DVE5 STD EI SET ERROR MESSAGE INDEX
NJN DVE6 IF WRONG PACK
LDD T7 DISPLAY MESSAGE AT SYSTEM CONTROL POINT
ADK MS2W-SNSW
CWM CMSG,TR
DVE6 AOD EI ADVANCE ERROR INDEX
LDD IR+2 CHECK NEXT ERROR FLAG
SHN 21-0
STD IR+2
PJN DVE6 IF NO ERROR SET
LDM TMSG,EI SET ADDRESS OF MESSAGE SUFFIX
STD T1
LDC CMSG+2
STD T2
DVE7 AOD T1 APPEND DESCRIPTION TO BASIC MESSAGE
AOD T2
LDI T1
STI T2
NJN DVE7 IF NOT END OF ERROR DESCRIPTION
LDD EI CHECK FOR WRONG PACK
NJN DVE10 IF NOT WRONG PACK
STD T1 MOVE PACK NAME TO MESSAGE
DVE8 LDI T6
ZJN DVE9 IF SHORT NAME
STM CMSG+6,T1
DVE9 AOD T6
AOD T1
SBN 3
MJN DVE8 IF MORE TO MOVE
LDI T6
SCN 77
RAM CMSG+11
LDI T6
RJM C2D CONVERT DEVICE NUMBER
STM CMSG+14
AOD T6
LDI T6 GET RELATIVE UNIT NUMBER
LPN 7
ZJN DVE10 IF SINGLE SPINDLE DEVICE
LDI T6
SHN -3
LPN 7
ADC 2R-0
STM CMSG+15
ERRNZ CMSG+16-CMSGL CODE ASSUMES A ZERO BYTE AFTER UNIT
DVE10 LDD T5 CHECK ERRLOG EST ORDINAL
LMD CM
ZJN DVE11 IF ERRORS ON ERRLOG DEVICE
DVEA LDC EMSG+ERLN ISSUE ERRLOG MESSAGE
* LDC EMSG+ERLN+400000 (WRONG PACK ERROR)
RJM DFM
LDD IR+2
NJP DVE6 IF MORE ERRORS
DVE11 UJN DVE13 RETURN
* PSN (WRONG PACK ERROR)
DVEB EQU *-1
* WAIT FOR A *GO* OR *DOWN* WHEN WRONG PACK MOUNTED.
LDD T7 READ SENSE SWITCH WORD
CRD CM
LDN 3 SET PAUSE + NOGO FLAGS
STD CM+3
LDD T7 STORE SENSE SWITCH WORD
CWD CM
DVE12 LDD T7 DISPLAY MESSAGE AT SYSTEM CONTROL POINT
ADN MS2W-SNSW
CWM CMSG,TR
PAUSE NE WAIT FOR A *GO* OR *DOWN*
* LDN 0 DELAY
SBN 1
NJN *-1 IF NOT DONE DELAYING
LDD T7 READ SENSE SWITCH WORD
CRD CM
LDD CM+3 CHECK ON OPERATOR INPUT
DVE13 ZJN DVE15 IF OPERATOR ENTERED *GO*
SFA EST,T5 CHECK DEVICE STATE
ADK EQDE
CRD CM
LDD CM
LPN 3
LMN 3
ZJN DVE14 IF DOWN
LDD CM
SHN 21-11
MJN DVE12 IF SHARED
LDD T5
STD CM+1
LDN DWES DOWN THE DEVICE
STD CM+2
MONITOR SEQM
DVE14 LCN 1 SET INACCESSIBLE STATUS
DVE15 LJM DVEX RETURN
TITLE TABLES AND MESSAGES.
TMSG SPACE 4,5
** TABLE OF ERROR MESSAGE SUFFIXES.
TMSG BSS 0
LOC 0
CHAR 1R0,00
CODE OTHER
WPEM CON =C* PACK= 0, DN=DD*-1 MUST BE 1 BYTE .LT. *CMSG*
* CON =C* PACK= 0, DN=DD-U* (MULTISPINDLE DEVICE)
CODE *
CON =C* TRACK COUNT.*-1
CON =C* PF COUNT.*-1
CON =C* PERMITS CHAIN.*-1
CON =C* CATALOG CHAIN.*-1
CON =C* INDIRECT CHAIN.*-1
LOC *
USE LITERALS FORCE MESSAGES HERE
EMSG SPACE 4,5
EMSG DATA 6HMSER, PREFIX FOR DETAILED ANALYSIS
CMSG DATA C*EQ000, VALIDATION ERROR NN.*
CMSGL EQU *-1
SPACE 4,5
** COMMON DECKS.
*CALL COMPC2D
OVERFLOW DVEX,EPFW,CMR
ERRPL *-DVEX+5-473 OVERFLOW ONE SECTOR
END