5ME 
          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 
