*DECK,FSD 
***       FSD - ISD SUBSYSTEM MONITOR AND UTILITY TEST
***       REVISION HISTORY
**
*         FSD - ISD SUBSYSTEM MONITOR AND UTILITY TEST
* 
*         AUTHOR - M. S. FABBRINI       MAY 10, 1983
* 
* 
* 
*         3/15/85    MODIFICATIONS MADE TO SUPPORT EXECUTION OF FSD 
*                    ON ISD II DISK SUBSYSTEM.  ALL LEVEL II
*                    DIAGNOSTICS CORRECTIVE ACTION MODULES REMOVED. 
* 
* 
*         COPYRIGHT CONTROL DATA 1983 
*             ALL RIGHTS RESERVED 
* 
*         CONTAINED HERIN ARE SOFTWARE PRODUCTS COPYRIGHTED BY CONTROL
*         DATA CORPORATION.  REPRODUCTION WITHOUT  PERMISSION IS  PRO-
*         HIBITED.  THE COPYRIGHT NOTICE MUST APPEAR ON ALL AUTHORIZED
*         COMPLETE OR PARTIAL COPIES. 
* 
* 
*** 1.0   INTRODUCTION
**
*   1.0   INTRODUCTION
*         ------------
* 
*         FSD IS  THE INTELLIGENT  SMALL DISK (ISD) SUBSYSTEM  MONITOR
*         AND  UTILITY PROGRAM.  FSD  CONSISTS OF A  MONITOR WHICH IN-
*         VOKES  THE  ADAPTER  AND/OR  CONTROL  MODULE  BUILT-IN  SELF
*         DIAGNOSTICS,  AND A UTILITY  FOR  MAINTAINING THE  DISK SUB-
*         SYSTEM. 
* 
* 
*** 1.1   RESTRICTIONS
**
*   1.1   RESTRICTIONS
*         ------------
* 
*         1.  FSD REQUIRES THAT THE  CONTROLWARE FOR THE ADAPTER,  AND
*             THE  COMMAND  OPERATING  SYSTEM (COS)  FOR  THE  CONTROL
*             MODULE, BE AUTOLOADED PRIOR TO EXECUTION. 
* 
*         2.  TEST FSD WILL BE WRITTEN IN THE MALET LANGUAGE. 
* 
* 
*** 1.2   CHARACTERISTICS 
**
*   1.2   CHARACTERISTICS 
*         --------------- 
* 
*         1.  PROGRAM NAME.........................................FSD
* 
*         2.  PROGRAM TYPE.............................MONITOR/UTILITY
* 
*         3.  SIZE - SOURCE (INCLUDING COMMENTS).................MALET
* 
*         4.  SIZE - MEMORY (REQUIRED FOR EXECUTION)..........21500CMW
* 
*         5.  SIZE - BINARY (INCLUDING OVERLAYS).............103540PPW
* 
*         6.  TYPE OF CODE.......................................MALET
* 
*         7.  DETECTION EFFECTIVENESS (ADAPTER)....................97% *
* 
*         8.  DETECTION EFFECTIVENESS (CONTROL MODULE/DRIVE).......90% *
* 
*         9.  ISOLATION EFFECTIVENESS (ADAPTER)....................95% *
* 
*         10. ISOLATION EFFECTIVENESS (CONTROL MODULE/DRIVE).......70% *
* 
*         11. OFF-LINE SYSTEM.....................................CMSE
* 
*         12. ON-LINE SYSTEM.......................................NOS
* 
*         13. TEST CONTROL RESIDENCE................................PP
* 
*         14. LANGUAGE...........................................MALET
* 
*         15. RUN TIMES (MONITOR).........................3 MIN 30 SEC
* 
*         16. RUN TIMES (UTILITY)...................................NA
* 
*         17. SOURCE MANAGEMENT.................................UPDATE
* 
*         *  THESE ISOLATION AND DETECTION FIGURES ARE FOR THE ADAPTER
*            CONTROLWARE  AND LEVEL II DIAGNOSTICS ONLY.  FSD DOES NOT
*            HAVE  DETECTION AND/OR ISOLATION CAPABILITIES OF ITS OWN.
*            THE PERCENTAGES SHOWN ARE FOR REFERENCE ONLY.
* 
* 
*** 2.0   APPLICABLE DOCUMENTS
**
*   2.0   APPLICABLE DOCUMENTS
*         --------------------
* 
*         MALET REFERENCE MANUAL                              60456020
*         CML 3.2 REFERENCE MANUAL                            60455980
*         IMMD PRODUCT SPECIFICATION                          64713200
*         ISD II PRODUCT SPECIFICATION                        64400100
*         ISD ADAPTER CONTROLWARE ERS                         53039708
*         CM LEVEL II DIAGNOSTICS ERS                         64800703
*         FIXED SMALL DISK DESIGN REQUIREMENT                 ARH3917 
*         INTELLIGENT FIXED SMALL DISK DR                     ARH4325 
*         INTELLIGENT FIXED SMALL DISK SUBSYSTEM DR           ARH4844 
*         FSD1 PRODUCT OVERLAY ERS                            ARH5398 
* 
* 
*** 3.0   PROGRAM DESCRIPTION 
**
*   3.0   PROGRAM DESCRIPTION 
*         ------------------- 
* 
*** 3.1   FSD 
**
*   3.1   FSD 
*         --- 
* 
*** 3.1.1 ABSTRACT
**
*   3.1.1 ABSTRACT
*         --------
* 
*         THIS  PRODUCT  IS  A  TOTAL  SUBSYSTEM  MAINTENANCE  PACKAGE
*         DESIGNED  TO AID  THE USER IN REPAIRING AND MAINTAINING  THE
*         INTELLIGENT DISK SUBSYTEMS, ISD AND ISD II. 
* 
*         THE MONITOR PROVIDES THE USER WITH THE CAPABILITY TO EXECUTE
*         THE BUILT-IN  SELF DIAGNOSTICS  IN BOTH THE ADAPTER  AND THE
*         CONTROL MODULE. 
* 
*         IF AN ERROR IS REPORTED BY AN ADAPTER DIAGNOSTIC OR ISI TEST, 
*         THE MONITOR WILL EXTRACT THE ERROR  CODE FROM  THE  DETAILED
*         STATUS, DECODE IT, AND RECOMMEND CORRECTIVE ACTION. 
* 
*         IF AN ERROR IS REPORTED BY A LEVEL II DIAGNOSTIC, THE MONITOR 
*         WILL EXTRACT THE ERROR CODE,  DISPLAY IT,  AND  INSTRUCT THE
*         USER TO CONSULT THE  APPROPRIATE REFERENCE MANUAL FOR A  DE-
*         SCRIPTION OF THE ERROR. 
* 
*         THE UTILITY PROVIDES THE USER WITH AIDS TO MAINTAIN THE DISK
*         SUBSYSTEM.  EACH UTILITY  MODULE IS A COMPLETE  AND SEPARATE
*         FUNCTION.  EXECUTION DOES NOT CONTINUE FROM  ONE MAIN MODULE
*         TO THE NEXT.
* 
* 
* 
*         MODULE       DESCRIPTION
*         ------       -----------
* 
*         THESE  MODULES USE PARAMETER WORDS P0 THRU P5 TO CONTROL THE
*         TESTING  OF  THE ADAPTER, THE CONTROL MODULE, AND THE DRIVE.
*         THESE MODULES DO NOT SUPPORT MALET REPEAT CONDITION OR SCOPE
*         LOOPING.
* 
*         FSD01        THIS MODULE VERIFIES THAT THE PARAMETER ENTERED
*                      FOR THE MONITOR SECTION ARE CORRECT AND HAS THE
*                      ABILITY TO:  
* 
*                      A.  EXECUTE ALL OF THE ADAPTER SELF DIAGNOSTICS
*                          IN A PREDETERMINED SEQUENCE FOLLOWED BY THE
*                          EXECUTION  OF THE CONTROL MODULE SELF DIAG-
*                          NOSTICS IN A PREDETERMINED SEQUENCE. 
* 
*                      B.  EXECUTE ALL OF THE ADAPTER SELF DIAGNOSTICS
*                          IN A PREDETERMINED SEQUENCE. 
* 
*                      C.  EXECUTE ONE SELECTED ADAPTER DIAGNOSTIC. 
* 
*                      D.  EXECUTE ALL OF THE CONTROL MODULE SELF DIAG- 
*                          NOSTICS IN A PREDETERMINED SEQUENCE. 
* 
*                      E.  EXECUTE  ONE SELECTED  CONTROL MODULE DIAG-
*                          NOSTIC  WHICH INCLUDES ALL SUBTESTS OF THAT
*                          DIAGNOSTIC.  THE SUBTEST ARE EXECUTED IN  A
*                          PREDETERMINED SEQUENCE.
* 
*                      F.  EXECUTE  ONE  SELECTED  CONTROL MODULE SELF
*                          DIAGNOSTIC SUBTEST.
* 
*IF DEF,CMSE17X 
*                          ICI PARITY TEST. 
* 
*         THIS MODULE DOES NOT REQUIRE  ANY  PARAMETERS  AND  SUPPORTS
*         MALET REPEAT MODULE AND SCOPING LOOPS.
* 
*         FSD10        THIS MODULE INVERTS CHANNEL  PARITY TO TEST THE
*                      ICI PARITY NETWORK IN THE ADAPTER. 
* 
*ENDIF
*                           DEADMAN TIMER TEST
* 
*         THIS MODULE DOES NOT REQUIRE  ANY PARAMETERS  AND SUPPORTS
*         MALET REPEAT MODULE.
* 
*         FSD11        THIS  MODULE  TESTS  THE DEADMAN TIMER IN THE
*                      ADAPTER BOARD AND INFORMS THE USER IF UNDER 5
*                      SECONDS OR OVER 16 SECONDS.
* 
*         THESE  MODULES  DO NOT REQUIRE ANY PARAMETERS  TO RUN AND DO
*         NOT SUPPORT MALET REPEAT CONDITION OR SCOPE LOOPING.
* 
*         FSD21        THIS MODULE EXTRACTS IDENTIFICATION INFORMATION
*                      FROM  THE DETAIL STATUS AND  DISPLAYS IT ON THE
*                      SCREEN.   THE  INFORMATION   DISPLAYED  IS  THE
*                      ADAPTER CONTROLWARE REVISION LEVEL,  THE DEVICE
*                      IDENTIFICATION, THE DEVICE CAPACITY, THE DEVICE
*                      MODEL  NUMBER,  AND  THE  COS  REVISION  NUMBER
*                      (RIGHT MOST FIVE BITS ONLY). 
* 
*         FSD31        THIS MODULE COPIES THE COMMAND OPERATING SYSTEM
*                      (COS) FROM THE  RESERVED AREA  ON THE  ASSIGNED
*                      DISK INTO THE MALET SCRATCH FILE.
* 
*         FSD33        THIS MODULE COPIES THE LEVEL 2 SELF DIAGNOSTICS
*                      FROM  THE RESERVED  AREA ON THE  ASSIGNED  DISK
*                      INTO THE MALET SCRATCH FILE. 
* 
*         FSD35        THIS MODULE WRITES THE COMMAND OPERATING SYSTEM
*                      (COS) INTO  THE RESERVED AREA OF  THE  ASSIGNED
*                      DISK FROM THE MALET SCRATCH FILE.
* 
*         FSD37        THIS MODULE WRITES THE LEVEL 2 DIAGNOSTICS INTO
*                      THE RESERVED AREA OF THE ASSIGNED DISK FROM THE
*                      MALET SCRATCH FILE.
* 
*         FSD39        THIS MODULE WRITES THE ADAPTER CONTROLWARE INTO
*                      THE RESERVED AREA OF THE ASSIGNED DISK FROM THE
*                      MALET SCRATCH FILE.
* 
*         FSD41        THIS MODULE POWERS ON THE ASSIGNED DISK SPINDLE
*                      MOTOR,  AND EXECUTES THE CONTROL MODULE LEVEL 1
*                      DIAGNOSTICS.  THE MONITOR WILL REPORT ANY ERROR
*                      CONDITIONS DETECTED. 
* 
*         FSD43        THIS   MODULE  POWERS  OFF  THE  ASSIGNED  DISK
*                      SPINDLE MOTOR. 
* 
*         FSD45        THIS MODULE AUTOLOADS MA462-D CONTROLWARE  INTO
*                      THE ADAPTER AND COMMAND OPERATING SYSTEM IN THE
*                      CONTROL  MODULE  FROM  THE RESERVED AREA OF THE
*                      ASSIGNED DISK. THIS MODULE ASSUMES THAT COS AND
*                      CONTROLWARE HAVE BEEN PREVIOUSLY WRITTEN TO THE
*                      ASSIGNED  DISK.  AUTOLOADING EITHER THE ADAPTER
*                      OR  CONTROL  MODULE WILL CAUSE THE EXECUTION OF
*                      THE SELF DIAGNOSTICS TO OCCUR. THE MONITOR WILL
*                      REPORT ANY ERROR CONDITIONS DETECTED.
* 
*         FSD47        THIS MODULE AUTOLOADS MA462-D CONTROLWARE  INTO
*                      THE ADAPTER FROM THE MALET SCRATCH FILE.  AUTO-
*                      LOADING WILL CAUSE THE EXECUTION OF THE ADAPTER
*                      SELF  DIAGNOSTICS  TO OCCUR.  THIS  MODULE WILL
*                      MONITOR  THE SELF  DIAGNOSTICS  AND REPORT  ANY
*                      ERROR CONDITIONS DETECTED. 
* 
*         FSD51        THIS  MODULE  AUTOLOADS THE  CONTROL  OPERATING
*                      SYSTEM INTO THE CONTROL MODULE  FROM THE  MALET
*                      SCRATCH FILE. AUTOLOADING OF THE CONTROL MODULE
*                      WILL  CAUSE THE EXECUTION  OF THE  LEVEL 1 SELF
*                      DIAGNOSTICS TO OCCUR.  THIS MODULE WILL MONITOR
*                      THE SELF DIAGNOSTICS AND REPORT ANY ERROR  CON-
*                      DITIONS DETECTED.
* 
* 
***       ERROR PROCESSING
**
*         ERROR PROCESSING
*         ----------------
* 
*         DRIVER DETECTED ERRORS ARE PROCESSED BY ENTERING MODULE 98A.
*         THE EM REGISTER IS USED TO DETERMINE THE TYPE OF ERROR BEING
*         REPORTED. 
* 
*         MODULE DETECTED ERRORS ARE PROCESSED BY ENTERING MODULE 97A.
* 
* 
*** 3.1.2 DESCRIPTION DETAILED
**
*   3.1.2 DESCRIPTION DETAILED
*         --------------------
* 
*         1.  DETAILED DESCRIPTIONS OF THE ADAPTER AND CONTROL MODULE 
*             DIAGNOSTICS ARE CONTAINED IN APPENDICES A AND B.
* 
*         2.  THE RECOMMENDED SEQUENCE OF DIAGNOSTIC EXECUTION IS CON-
*             TAINED IN APPENDIX E. 
* 
* 
***       OPERATIONAL PROCEDURE 
**
*         OPERATIONAL PROCEDURE 
*         --------------------- 
* 
*         1.  REFER TO THE  MALET  REFERENCE MANUAL (PUB. NO. 60456020) 
*             FOR A DETAILED DESCRIPTION OF THE MALET LANGUAGE. 
* 
*         2.  REFER TO THE  CML REFERENCE MANUAL (PUB. NO. 60455980) TO 
*             RUN MALET UNDER THE NOS OR NOS/BE OPERATING SYSTEMS.
* 
* 
***       LOADING PROCEDURE 
**
*         LOADING PROCEDURE 
*         ----------------- 
* 
*         1.  REFER TO THE CML REFERENCE MANUAL (PUB. NO. 60455980)  TO 
*             RUN MALET UNDER THE NOS OR NOS/BE OPERATING SYSTEMS.
* 
* 
***       RUNNING PROCEDURE 
**
*         RUNNING PROCEDURE 
*         ----------------- 
* 
*         1.  REFER TO THE  CML REFERENCE MANUAL (PUB. NO. 60455980) TO 
*             RUN MALET UNDER THE NOS OR NOS/BE OPERATING SYSTEMS.
* 
* 
***       PARAMETERS
**
*         PARAMETERS
*         ----------
* 
*         THE  MONITOR  IS DEFAULTED TO EXECUTE ALL OF THE ADAPTER AND
*         CONTROL MODULE DIAGNOSTICS IN A PREDETERMINED SEQUENCE. THIS
*         IS ACCOMPLISHED BY SETTING PARAMETER WORD P0=0 AND P1=0. ANY
*         OTHER  ENTRY  INTO  EITHER P0 OR P1 WILL CAUSE THE EXECUTION
*         OF THE SELECTED DIAGNOSTICS AS SHOWN BELOW. IT IS ILLEGAL TO
*         SELECT  BOTH P0 AND P1 OTHER THAN AS STATED ABOVE.  REFER TO
*         APPENDIX E FOR THE DIAGNOSTIC EXECUTION SEQUENCE. 
* 
*         P0 - 0XXXH - ADAPTER SELF DIAGNOSTICS TEST NUMBER.
* 
*              0FFFH - EXECUTE  ALL ADAPTER  DIAGNOSTICS  IN A  PRESET
*                      SEQUENCE.
*              00XXH - EXECUTE ADAPTER DIAGNOSTIC XX.  REFER TO MODULE
*                      99C FOR A DESCRIPTION OF THE ADAPTER DIAGNOSTIC
*                      AND ITS TEST NUMBER. 
* 
*         P1 - 0XXXH - CONTROL MODULE LEVEL II DIAGNOSTIC TEST NUMBER.
* 
*              0FFFH - EXECUTE ALL  CONTROL  MODULE  DIAGNOSTICS  IN A
*                      PRESET SEQUENCE. 
*              0XXXH - EXECUTE CONTROL MODULE DIAGNOSTIC XXX, ALL SUB-
*                      TESTS IN A PRESET SEQUENCE. REFER TO MODULE 99D
*                      FOR A  DESCRIPTION OF EACH  LEVEL II DIAGNOSTIC
*                      AND ITS TEST NUMBER. 
* 
*         P2 - 000XH - CONTROL  MODULE  LEVEL  II  DIAGNOSTIC  SUBTEST
*                      NUMBER.
* 
*              0000H - EXECUTE ALL SUBTESTS OF THE DIAGNOSTICS. 
*              000XH - EXECUTE  SUBTEST X.  REFER TO MODULE  99D FOR A
*                      DESCRIPTION OF EACH LEVEL II DIAGNOSTIC AND ITS
*                      SUBTEST NUMBER.
* 
*         P3 - X000B - ADAPTER  DIAGNOSTIC PARAMETER. 
* 
*              6000B - LOOP ON ERROR/TEST 
*              4000B - LOOP ON ERROR
*              2000B - LOOP TEST
* 
*         P4 - 0X00B - CONTROL MODULE LEVEL II DIAGNOSTIC PARAMETER.
* 
*              0200B - LOOP ON ERROR
*              0100B - CONTINUE AFTER ERROR 
* 
*         P5 - 0XXXH - CONTROL  MODULE LEVEL II DIAGNOSTIC  REPETITION
*                      COUNT. 
* 
*         P6 THROUGH P9 - NOT USED. 
* 
* 
* 
*         PARAMETER REGISTER USAGE
* 
*         BELOW  IS A CROSS REFERENCE OF EACH MODULE AND THE PARAMETER
*         REGISTER THAT EACH USES.
* 
*         MODULE     P0  P1  P2  P3  P4  P5  P6  P7  P8  P9 
*         ------     --  --  --  --  --  --  --  --  --  -- 
* 
*         MONITOR MODULES 
* 
*         FSD01       X   X   X   X   X   X 
* 
*         DEADMAN TIMER TEST
* 
*         FSD11 
* 
*         UTILITY MODULES 
* 
*         FSD21 
*         FSD31 
*         FSD33 
*         FSD35 
*         FSD37 
*         FSD39 
*         FSD41 
*         FSD43 
*         FSD45 
*         FSD47 
*         FSD51 
* 
* 
***       MESSAGES
**
*         MESSAGES
*         --------
* 
***       NORMAL MESSAGES 
**
*         NORMAL MESSAGES 
*         --------------- 
* 
*         THE FOLLOWING MESSAGES ARE DISPLAYED DURING THE NORMAL COURSE 
*         OF EXECUTING FSD. 
* 
*          1. FSDNN - MODULE NAME 
*             THIS MESSAGE INDICATES THAT MODULE FSDNN IS NOW  RUNNING. 
* 
*          2. FSD01A - EXECUTE ADAPTER DIAGNOSTICS = *OCT 
*             THIS  RUNNING MESSAGE INDICATES THAT FSD IS EXECUTING THE 
*             ADAPTER SELF DIAGNOSTIC NN. 
* 
*          3. FSD01B - EXECUTE CM TEST = *OC, SUBTEST = *OC 
*             THIS  RUNNING MESSAGE INDICATES THAT FSD IS EXECUTING THE 
*             CONTROL MODULE SELF DIAGNOSTIC NN, SUBTEST NN.
* 
*          4. FSD11 - PAUSE - REPEAT MODULE SELECTED
*             THIS RUNNING MESSAGE INDICATES THAT REPEAT MODULE 
*             HAS BEEN SELECTED IN THE DEADMAN TIMER TEST.
* 
*          6. FSD31 ARCHIVING--*OB BLOCKS OF COS TO MALET SCRATCH FILE
*             THIS RUNNING MESSAGE INDICATES THAT THE CONTROL OPERATING 
*             SYSTEM  IS  BEING  WRITTEN TO THE MALET SCRATCH FILE FROM 
*             THE RESERVED AREA ON THE ASSIGNED DISK. 
* 
*          7. FSD33 ARCHIVING--*OB BLOCKS OF LEV II DIAG TO SCR FILE
*             THIS  RUNNING  MESSAGE  INDICATES THAT THE LEVEL II DIAG- 
*             NOSTICS  ARE BEING WRITTEN TO THE MALET SCRATCH FILE FROM 
*             THE RESERVED AREA ON THE ASSIGNED DEVICE. 
* 
*          8. FSD35 RESTORING--*OB BLOCKS OF COS TO ISD SUBSYSTEM DISK
*             THIS RUNNING MESSAGE INDICATES THAT THE COMMAND OPERATING 
*             SYSTEM  IS  BEING WRITTEN TO THE RESERVED AREA ON THE AS- 
*             SIGNED DEVICE FROM THE MALET SCRATCH FILE.
* 
*          9. FSD37 RESTORING--*OB BLOCKS OF LEV II DIAG TO ISD DISK
*             THIS  RUNNING  MESSAGE  INDICATES THAT THE LEVEL II DIAG- 
*             NOSTICS ARE BEING WRITTEN TO THE RESERVED AREA ON THE AS- 
*             SIGNED DEVICE FROM THE MALET SCRATCH FILE.
* 
*         10. FSD39 RESTORING--*OB BLOCKS OF ADAPTER CNTWR TO ISD DISK
*             THIS  RUNNING MESSAGE INDICATES THAT THE ADAPTER CONTROL- 
*             WARE  IS  BEING  WRITTEN  TO THE RESERVED AREA ON THE AS- 
*             SIGNED DEVICE FROM THE MALET SCRATCH FILE.
* 
*         11. FSD47 AUTOLOADING--*OB BLOCKS OF CNTWR TO ADAPTER RAM 
*             THIS  RUNNING  MESSAGE  INDICATES THAT THE MA462 CONTROL- 
*             WARE IS AUTOLOADED FROM THE RESERVED AREA ON THE ASSINGED 
*             DEVICE TO THE ADAPTER RAM.
* 
*         12. FSD51 AUTOLOADING--*OB BLOCKS OF COS TO CM SUBSYSTEM RAM
*             THIS RUNNING MESSAGE INDICATES THAT THE CONTROL OPERATING 
*             SYSTEM  IS BEING AUTOLOADED FROM THE RESERVED AREA ON THE 
*             ASSIGNED DEVICE TO THE CONTROL MODULE SUBSYSTEM RAM.
* 
* 
* 
***       DAYFILE MESSAGES
**
*         DAYFILE MESSAGES
*         ----------------
* 
*          1. FSDNN ERROR(S) = XXXXD
*             NN   = THE NUMBER OF THE MODULE IN FSD. 
*             XXXX = THE NUMBER OF ERRORS DETECTED BY THE MODULE. 
*             THIS DAYFILE MESSAGE INDICATES THAT MODULE FSDNN  DETECTED
*             XXXX   DECIMAL  ERRORS  BY  THE  TIME  IT  HAD   COMPLETED
*             EXECUTION.
* 
*          2. // FSD01 NOT EXECUTED-AL=*OCT, NEED AL=10B
*             THIS ERROR MESSAGE INDICATES THAT THE  AL  VALUE  (ACCESS 
*             LEVEL)  ASSIGNED  TO  THE TEST IS TOO LOW FOR THE TEST TO 
*             RUN.  THE TEST  REQUIRES  AN ACCESS LEVEL OF 10B  TO RUN. 
*             THE  MODULE  WILL SEND  THE  MESSAGE,  FSD01 NOT EXECUTED 
*             - AL=    , NEED AL=10B, TO DAYFILE AND PRINT.  THE ACCESS 
*             LEVEL MUST BE CORRECTED AND THE TEST RERUN. 
* 
*          3. // FSD01 NOT EXECUTED-AL=*OCT, NEED AL=20B
*             THIS ERROR MESSAGE INDICATES THAT THE  AL  VALUE  (ACCESS 
*             LEVEL)  ASSIGNED  TO  THE TEST IS TOO LOW FOR THE TEST TO 
*             RUN.  THE TEST  REQUIRES  AN ACCESS LEVEL OF 20B  TO RUN. 
*             THE  MODULE  WILL SEND  THE  MESSAGE,  FSD01 NOT EXECUTED 
*             - AL=    , NEED AL=20B, TO DAYFILE AND PRINT.  THE ACCESS 
*             LEVEL MUST BE CORRECTED AND THE TEST RERUN. 
* 
*          4. // FSD01 ILLEGAL PARAMETER P3 
*             THIS  ERROR  MESSAGE INDICATES  THAT THE  MONITOR/UTILITY 
*             MODULE FSD01 HAS DETECTED AN ERROR CONDITION IN PARAMETER 
*             WORD P3.  PARAMETER  WORD P3  CONTAINED  A  VALUE  OTHER- 
*             THAN 6000B,  4000B,  OR 2000B,  WHICH ARE  THE ONLY LEGAL 
*             ENTRIES FOR PARAMETER P3.  THE  MODULE WILL SEND THE MES- 
*             SAGE //FSD01 ILLEGAL  PARAMETER P3 TO  DAYFILE AND PRINT. 
*             PARAMETER WORD P3 MUST BE CORRECTED AND THE  TEST  RERUN. 
* 
*          5. // FSD01 ILLEGAL PARAMETER P4 
*             THIS  ERROR  MESSAGE INDICATES  THAT THE  MONITOR/UTILITY 
*             MODULE FSD01 HAS DETECTED AN ERROR CONDITION IN PARAMETER 
*             WORD P4.  PARAMETER  WORD P4  CONTAINED  A  VALUE  OTHER- 
*             THAN 300B, 200B, OR 100B WHICH ARE THE ONLY LEGAL ENTRIES 
*             FOR PARAMETER P4.  THE MODULE WILL SEND THE MESSAGE //FSD 
*             01  ILLEGAL PARAMETER P4 TO THE DAYFILE AND PRINT.  PARA- 
*             METER WORD P4 MUST BE CORRECTED AND THE TEST RERUN. 
* 
*          6. // FSD11 NOT EXECUTED, NEEDS AL =21,AL=*OCT// 
*             THIS ERROR MESSAGE INDICATES THAT THE  AL  VALUE  (ACCESS 
*             LEVEL)  ASSIGNED  TO  THE TEST IS TOO LOW FOR THE TEST TO 
*             RUN. THE TEST REQUIRES AN ACCESS LEVEL OF 21B TO RUN. THE 
*             MODULE WILL SEND  THE  MESSAGE  TO THE DAYFILE AND PRINT. 
*             THE ACCESS LEVEL MUST BE CORRECTED AND THE TEST RERUN.
* 
***       ERROR MESSAGES
**
*         ERROR MESSAGES
*         --------------
* 
*         THE FOLLOWING DISPLAY FORMAT IS USED BY THE MONITOR TO REPORT 
*         AN ADAPTER OR ISI ERROR AND THE RECOMMENDED CORRECTIVE ACTION.
* 
*         00 FSD - ISD SUBSYSTEM MONITOR/UTILITY
*         01 FSDNN - IN-LINE DIAGNOSTIC FAILURE DISPLAY 
*         02
*         03               ERROR CODE = EC (H)
*         04
*         05          RECOMMENDED CORRECTIVE ACTION 
*         06
*         07          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
*         10          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
*         11          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
*         12          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
*         13          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
*         14          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
*         15          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
*         16          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
*         20
*         21
*         22
*         23      ENTER -GO- FOR STATUS DISPLAYS
* 
* 
* 
*         THE FOLLOWING DISPLAY FORMAT IS USED BY THE MONITOR TO REPORT 
*         A LEVEL II DIAGNOSTIC ERROR CODE. 
* 
*         00 FSD - ISD SUBSYSTEM MONITOR/UTILITY
*         01 FSDNN  - IN-LINE DIAGNOSTIC FAILURE DISPLAY
*         02
*         03             ERROR CODE = EC (H)
*         04
*         05     CONSULT APPROPRIATE REFERENCE MANUAL 
*         06          FOR DESCRIPTION OF ERROR
*         07
*         10
*         11
*         12
*         13
*         14
*         15
*         16
*         17
*         20
*         21
*         22
*         23       ENTER -GO- FOR STATUS DISPLAYS 
* 
* 
* 
*         THE FOLLOWING  DISPLAY FORMAT IS USED  BY THE UTILITY MODULES 
*         TO PROVIDE FAILURE INFORMATION. 
* 
*         00  FSD - ISD SUBSYSTEM MONITOR/UTILITY 
*         01  FSDNN - MODULE TITLE
*         02
*         03  DESCRIPTION OF THE ERROR
*         04  WT = XXXX  WC = XXXX  LF = XXXX   (OCTAL VALUES)
*         05  B0 - B7  = XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
*         06  B8 - B15 = XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
*         07  LAST GENERAL STATUS = XXXX
*         10     DETAIL STATUS
*         11  01D=XXXX    11D=XXXX
*         12  02D=XXXX    12D=XXXX
*         13  03D=XXXX    13D=XXXX
*         14  04D=XXXX    14D=XXXX
*         15  05D=XXXX    15D=XXXX
*         16  06D=XXXX    16D=XXXX
*         17  07D=XXXX    17D=XXXX
*         20  08D=XXXX    18D=XXXX
*         21  09D=XXXX    19D=XXXX
*         22  10D=XXXX    20D=XXXX
*         23 -------------------------------------------------
* 
* 
*         THE FOLLOWING DISPLAY FORMAT  IS USED BY  THE MONITOR/UTILITY 
*         TO PROVIDE GENERAL AND DETAIL STATUS ASSOCIATED WITH AN ERROR.
* 
*         00 FSD - ISD SUBSYSTEM MONITOR/UTILITY
*         01 FSDNN - GENERAL/DETAIL STATUS DISPLAY
*         02
*         03 GENERAL STATUS = GSSSB 
*         04
*         05              DETAIL STATUS (OCTAL) 
*         06
*         07    WORD   STATUS             WORD    STATUS
*         10      1D    NNNNB              11D     NNNNB
*         11      2D    NNNNB              12D     NNNNB
*         12      3D    NNNNB              13D     NNNNB
*         13      4D    NNNNB              14D     NNNNB
*         14      5D    NNNNB              15D     NNNNB
*         15      6D    NNNNB              16D     NNNNB
*         16      7D    NNNNB              17D     NNNNB
*         17      8D    NNNNB              18D     NNNNB
*         20      9D    NNNNB              19D     NNNNB
*         21     10D    NNNNB              20D     NNNNB
*         22
*         23     ENTER -GO- FOR PROCESSOR STATUS DISPLAY
* 
* 
* 
* 
* 
*         THE FOLLOWING DISPLAY FORMAT IS USED TO PROVIDE THE D REGISTER
*         INFORMATION OF THE ADAPTER PROCESSOR STATUS.
* 
*         00 FSD - ISD SUBSYSTEM MONITOR/UTILITY
*         01 FSDNN - ADAPTER PROCESSOR STATUS ONE STATUS
*         02
*         03           D REGISTER 
*         04
*         05        D0 = NN NN NN NN(H) 
*         06        D1 = NN NN NN NN(H) 
*         07        D2 = NN NN NN NN(H) 
*         10        D3 = NN NN NN NN(H) 
*         11        D4 = NN NN NN NN(H) 
*         12        D5 = NN NN NN NN(H) 
*         13        D6 = NN NN NN NN(H) 
*         14        D7 = NN NN NN NN(H) 
*         15
*         16
*         17
*         20
*         21
*         22
*         23     ENTER -GO- FOR PROCESSOR STATUS DISPLAY
* 
* 
* 
* 
* 
*         THE FOLLOWING DISPLAY FORMAT IS USED TO PROVIDE THE A REGISTER
*         STATUS FROM THE ADAPTER PROCESSOR.
* 
*         00 FSD - ISD SUBSYSTEM MONITOR/UTILITY
*         01 FSDNN - ADAPTER PROCESSOR STATUS TWO DISPLAY 
*         02
*         03              A REGISTER
*         04
*         05         A0 = NN NN NN NN(H)
*         06         A1 = NN NN NN NN(H)
*         07         A2 = NN NN NN NN(H)
*         10         A3 = NN NN NN NN(H)
*         11         A4 = NN NN NN NN(H)
*         12         A5 = NN NN NN NN(H)
*         13         A6 = NN NN NN NN(H)
*         14         A7 = NN NN NN NN(H)
*         15
*         16
*         17
*         20
*         21
*         22
*         23     ENTER -GO- FOR PROCESSOR STATUS DISPLAY
* 
* 
* 
* 
* 
* 
*         THE FOLLOWING DISPLAY  FORMAT IS USED TO PROVIDE THE I/O PORT,
*         STATUS,  INTERRUPT,  AND PROGRAM COUNTER  REGISTERS FROM  THE 
*         ADAPTER PROCESSOR STATUS. 
* 
*         00 FSD - ISD SUBSYSTEM MONITOR/UTILITY
*         01 FSDNN - ADAPTER PROCESSOR STATUS THREE DISPLAY 
*         02
*         03            I/O PORT REGISTERS
*         04
*         05               P0 = NN NN(H)
*         06               P1 = NN NN(H)
*         07               P2 = NN NN(H)
*         10               P3 = NN NN(H)
*         11               P4 = NN NN(H)
*         12               P5 = NN NN(H)
*         13
*         14      STATUS REGISTER = NN(H) 
*         15
*         16      INTERRUPT REGISTER = NN(H)
*         17
*         20      PROGRAM COUNTER REGISTER = NN NN NN NN(H) 
*         21
*         22
*         23     END OF STATUS DISPLAYS 
* 
* 
* 
*         THE FOLLOWING DISPLAY FORMAT IS USED BY FSD21 TO PROVIDE SUB- 
*         SYSTEM COMPONENT INFORMATION. 
* 
*         00 FSD - ISD SUBSYSTEM MONITOR/UTILITY
*         01 FSD21 - SUBSYSTEM COMPONENT INFORMATION
*         02
*         03 ADAPTER CONTROLWARE REVISION LEVEL = XXB 
*         04
*         05 CONTROL MODULE UNIT NUMBER = XXB 
*         06
*         07 DRIVE UNIT NUMBER = XXB
*         10
*         11 COS REVISION LEVEL = XXB 
*         12
*         13 DEVICE IDENTIFICATION = XXXB 
*         14
*         15 DEVICE CAPACITY = XXB MB 
*         16
*         17 CONTROL MODULE MODEL NUMBER = XXB
*         20
*         21
*         22
*         23
* 
* 
* 
* 
* 
* 
***       ERROR CODES 
**
*         ERROR CODES 
*         ----------- 
* 
***       MODULE DESCRIPTIONS 
**
*         MODULE DESCRIPTIONS 
*         ------------------- 
* 
   MODULE FSD01,FSD1(110,111)LOCK 
***       FSD01 - ISD SUBSYSTEM MONITOR/UTILITY 
**
*         FSD01 - ISD SUBSYSTEM MONITOR/UTILITY 
*         ------------------------------------- 
* 
* 
*    1.1  PURPOSE - 
*         FSD01 CHECKS THE ACCESS LEVEL AND VALIDATES PARAMETER WORDS P0
*         AND P1 TO  DETERMINE IF EITHER  THE ADAPTER  SELF-DIAGNOSTICS,
*         CONTROL MODULE  SELF-DIAGNOSTICS ,OR BOTH ADAPTER AND  CONTROL
*         MODULE SELF-DIAGNOSTICS ARE TO BE EXECUTED. 
* 
* 
*    1.2  METHOD -
*         1.  DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE. 
* 
*         2.  CHECK PARAMETER P0. 
*                A.  IF PARAMETER P0 IS EQUAL TO ZERO, GOTO STEP 3. 
*                B.  IF PARAMETER P0 IS EQUAL TO FFF,  EXIT TO SUB- 
*                    MODULE  FSD01A  (EXECUTE  ADAPTER  DIAGNOSTICS 
*                    ONLY,  ALL TESTS). 
*                C.  IF PARAMETER P0 IS EQUAL TO 00XX, CHECK FOR THE
*                    SELECTED ADAPTER TEST NUMBER BEING LESS THAN F,
*                    AND GOTO STEP E. 
*                D.  IF THE SELECTED ADAPTER TEST NUMBER IS  GREATER
*                    THAN F, VERIFY THAT THE ACCESS LEVEL ON THE AS-
*                    SIGN  DIRECTIVE IS EQUAL TO 20B, AND REPORT AN 
*                    ACCESS LEVEL ERROR WHEN IT IS NOT. 
*                E.  VALIDATE  PARAMETER P3 FOR LEGAL  ENTRIES  AND 
*                    REPORT AN ILLEGAL PARAMETER ERROR WHEN INVALID.
*                F.  SET THE MODULE CONDITION SWITCH TO 1, AND EXIT 
*                    TO SUBMODULE FSD01A(EXECUTE ADAPTER DIAGNOSTICS
*                    ONLY,  ONE TEST NUMBER). 
* 
*         3.  CHECK PARAMETER P1. 
*                A.  IF PARAMETER P1 IS EQUAL TO ZERO, GOTO STEP 4. 
*                B.  IF PARAMETER P1 IS EQUAL TO FFF, EXIT TO SUB-
*                    MODULE  FSD01B (EXECUTE CM DIAGNOSTICS  ONLY,
*                    ALL TESTS AND SUBTESTS). 
*                C.  IF PARAMETER P1 IS EQUAL TO 00XX, CHECK P2 FOR 
*                    A SUBTEST  SELECTION.  WHEN ALL  SUBTESTS ARE
*                    SELECTED,  SET THE  MODULE  CONDITION  SWITCH
*                    TO A 0,  AND EXIT TO FSD01C (EXECUTE CM DIAG-
*                    NOSTICS ONLY,  ONE TEST,  ALL SUBTESTS). 
*                D.  IF PARAMETER P2 SELECTS ONE SUBTEST, VALIDATE
*                    P4 AND P5 FOR  LEGAL ENTRIES,  REPORT ILLEGAL
*                    PARAMETER  ERROR WHEN INVALID,  AND  VALIDATE
*                    AN ACCESS LEVEL OF 10B WHEN P4 AND P5 ARE NON- 
*                    ZERO.
*                E.  SET THE MODULE CONDITION SWITCH TO 1 AND EXIT
*                    TO  SUBMODULE  FSD01C (EXECUTE CM DIAGNOSTICS
*                    ONLY,  ONE TEST,  ONE SUBTEST).
* 
*         4.  IF PARAMETER P0 AND P1 ARE BOTH EQUAL TO ZERO,  EXIT
*             TO SUBMODULE  FSD01A  WHICH WILL  EXIT  TO SUBMODULE
*             FSD01B (EXECUTE ADAPTER AND CM DIAGNOSTICS ALL TESTS
*             AND SUBTESTS).
* 
/ 
*    2.1  ENTRY - 
*         PARAMETER WORDS P0 TO P9 ARE DESCRIBED IN THE MODULE FSD99. 
*         THE  ACCESS  LEVEL  FOR THE  TEST  IS  CONTAINED  IN THE AL 
*         REGISTER. 
* 
*    2.2  EXIT -
*         FSD01 ERROR EXITS IF EITHER THE PARAMETER WORDS OR THE ACCESS 
*         LEVEL IS INVALID. OTHERWISE, THE PARAMETER WORD OR THE ACCESS 
*         LEVEL MUST BE CORRECTED, AND THE TEST RERUN.
* 
*         FSD01 WILL  EITHER EXIT TO SUBMODULE FSD01A (ADAPTER DIAGNOS- 
*         TICS)  OR TO  FSD01B (CONTROL MODULE DIAGNOSTICS, APPENDIX E) 
*         OR TO FSD01C (CONTROL MODULE DIAGNOSTICS, APPENDIX B) DEPEND- 
*         ING UPON PARAMETERS P0 AND P1.
* 
*    2.3  SUBMODULES REFERENCED - 
*         FSD01A - EXECUTE ADAPTER SELF-DIAGNOSTICS 
*         FSD01B - EXECUTE CONTROL MODULE SELF-DIAGNOSTICS, APPENDIX E
*         FSD01C - EXECUTE CONTROL MODULE SELF-DIAGNOSTICS, APPENDIX B
* 
*    2.4  REGISTERS USED -
*         B0 - MODULE CONDITION SWITCH
*         B1 - ERROR ABORT INDEX
*         B2 - MODULE ERROR COUNT 
*         B3 - DISPLAY LINE NUMBER
*         B4 - MESSAGE INDEX
*         B5 - EXECUTE PARAMETER V = TEST NUMBER
*         B6 - EXECUTE PARAMETER W = SUBTEST NUMBER 
*         B7 - EXECUTE PARAMETER X = LOOP 
*         B8 - EXECUTE PARAMETER Y = REPETITION COUNT 
*         AL - STANDARD USAGE.
* 
*    2.5  BUFFERS USED -
*         NONE
* 
* 
/------------------DATA DIVISION----------------------------
* 
0  FORMAT FSD01 - ISD SUBSYSTEM MONITOR/UTILITY 
1  FORMAT // FSD01 ILLEGAL PARAMETER P3 
2  FORMAT // FSD01 ILLEGAL PARAMETER P4 
3  FORMAT // FSD01 NOT EXECUTED-AL=*OCT, NEEDS AL=20B 
4  FORMAT // FSD01 NOT EXECUTED-AL=*OCT, NEEDS AL=10B 
5  FORMAT               XXXXXXXXXXXXXXXXX 
6  FORMAT               X C A U T I O N X 
7  FORMAT               XXXXXXXXXXXXXXXXX 
10 FORMAT THE PARAMETER P*O SELECTS SELF-DIAGNOSTIC LOOPING.
11 FORMAT UPON  A  -GO- DIRECTIVE,  CONTROL WILL BE GIVEN TO
12 FORMAT EITHER  THE ADAPTER OR THE CONTROL MODULE, AND FSD
13 FORMAT WILL END.  TO RECOVER FROM A SELF-DIAGNOSTIC LOOP-
14 FORMAT ING CONDITION, P*O MUST BE CLEARED AND THE ADAPTER
15 FORMAT OR THE CONTROL MODULE MUST BE AUTOLOADED. 
16 FORMAT // FSD ILLEGAL PARAMETER P0 
17 FORMAT // FSD ILLEGAL PARAMETER P1 
20 FORMAT---------------------------------------------------
* 
/------------------INITIALIZATION---------------------------
* 
30 B3 = 3                    *DISPLAY LINE NUMBER 
   B5 = 5                    *FIRST ADAPTER DIAG TO EXECUTE 
* 
/------------------TEST PARAMETERS--------------------------
* 
   IF(P0.EQ.0) GOTO 50       *IF EXECUTE ADAPTER SEQUENCED
   IF(P0.NE.7777B) GOTO 32   *IF EXECUTE 1 ADAPTER DIAG 
   EXIT TO 01A               *IF EXECUTE ADAPTER SEQUENCED
* 
32 IF(P0.GE.5) GOTO 34       *IF IN TEST SEQ RANGE
   B1 = 16B                  *ILLEGAL PARAM P0
   GOTO 76
* 
34 IF(P0.LT.26B) GOTO 36     *IF IN TEST SEQ RANGE
   B1 = 16B                  *ILLEGAL PARAM P0
   GOTO 76
* 
36 IF(P0.LT.21B) GOTO 40     *IF ADAPTER DIAGNOSTICS 5 - 20B
   IF(AL.EQ.20B) GOTO 40     *EXECUTE 1 AD DIAG 
   B1 = 3 
   GOTO 76
* 
40 IF(P3.EQ.0) GOTO 46       *IF NO LOOPING 
   MSG 0 TO LINE 1
   B4 = 5 
42 MSG B4 (3) TO LINE B3
   B3 = B3+1
   GOTO 42 WHILE(B4+1.LE.15B) 
   B3 = B3+2
   PICTURE
   PAUSE
* 
   IF(P3.EQ.4000B) GOTO 44   *IF ADAPTER LOOP ON ERROR
   IF(P3.EQ.2000B) GOTO 44   *IF ADAPTER LOOP TEST
   IF(P3.EQ.6000B) GOTO 44   *IF ADAPTER LOOP ON ERROR/TEST 
   B1 = 1                    *ILLEGAL PARAMETER P3
   GOTO 76                   *REPORT PARAMETER ERROR
* 
44 B7 = P3                   *LOAD ADAPTER PARAMETER WORD 
   IF(AL.EQ.20B) GOTO 46     *IF AL HIGH ENOUGH 
   B1 = 3                    *AL ERROR MESSAGE
   GOTO 76                   *REPORT AL ERROR 
* 
46 B0 = 1 
   B5 = P0.AND.77B           *ADAPTER PARAMETER V 
   EXIT TO 01A               *IF EXECUTE 1 ADAPTER DIAG 
* 
50 IF(P1.EQ.0) GOTO 74       *IF EXECUTE AD/CM SEQUENCED
   IF(P1.NE.7777B) GOTO 52   *IF EXECUTE 1 CM DIAGNOSTIC
   B5 = 400                  *FIRST CM DIAG TO EXECUTE
   B6 = 1                    *FIRST SUBTEST TO EXECUTE
   EXIT TO 01B               *IF EXECUTE CM SEQUENCED 
* 
52 IF(P1.GE.161B) GOTO 54    *IF IN CM TEST RANGE 
   B1 = 17B                  *ILLEGAL PARAM P1
   GOTO 76
* 
54 IF(P2.EQ.0) GOTO 66       *IF EXEC 1 CM DIAG, ALL SUBTESTS 
* 
   IF(P4.EQ.0) GOTO 62
   MSG 0 TO LINE 1
   B4 = 5 
56 MSG B4 (4) TO LINE B3     *ISSUE CAUTION MSG 
   B3 = B3+1
   GOTO 56 WHILE(B4+1.LE.15B) 
   B3 = B3+2
   PICTURE
   PAUSE
* 
   IF(P4.EQ.300B) GOTO 60    *IF CM LOOP ON ERROR 
   IF(P4.EQ.200B) GOTO 60    *IF CM LOOP ON ERROR 
   IF(P4.EQ.100B) GOTO 60    *IF CM CONTINUE AFTER ERROR
   B1 = 2                    *ILLEGAL PARAMETER P4
   GOTO 76                   *REPORT PARAMETER ERROR
* 
60 B7 = P4                   *EXECUTE CM, PARAMETER X 
   IF(AL.LT.10B) GOTO 64     *IF AL TOO LOW 
62 IF(P5.EQ.0) GOTO 72       *IF NO REPETITION COUNT
   B8 = P5                   *EXECUTE CM, PARAMETER Y 
   IF(AL.GE.10B) GOTO 72     *IF AL HIGH ENOUGH 
64 B1 = 4                    *AL ERROR MESSAGE
   GOTO 76                   *REPORT AL ERROR 
* 
66 IF(AL.GE.10B) GOTO 70
   B1 = 4                    *AL ERROR MESSAGE
   GOTO 76                   *REPORT AL ERROR 
* 
70 B5 = P1.AND.777B          *EXECUTE 1 CM DIAGNOSTIC 
   B6 = 1                    *FIRST CM DIAG SUBTEST TO EXEC 
   EXIT TO 01C               *IF EXEC 1 CM DIAG, ALL SUBTESTS 
* 
72 B0 = 1                    *MODULE CONDITION SWITCH 
   B5 = P1.AND.777B          *FIRST CM DIAG TO EXEC 
   B6 = P2.AND.77B           *FIRST CM DIAG SUBTEST TO EXEC 
   EXIT TO 01C               *IF EXEC 1 CM DIAG, 1 SUBTEST
* 
74 B6 = 1                    *FIRST CM DIAG SUBTEST TO EXECUTE
   EXIT TO 01A               *IF EXECUTE AD/CM SEQUENCED
* 
/------------------PROCESS MODULE ERRORS--------------------
* 
76 BLANK
   MSG 0 TO LINE 1           *DISPLAY MODULE TITLE
   MSG B1 (AL) TO DAYFILE, PRINT  *DISPLAY ERROR MESSAGE
   MSG B1 (AL) TO LINE 2
   IF(ES.AND.TM.NE.TM) GOTO 77
   MSG 20 TO LINE B3
77 PICTURE
   HALT 
   BLANK
   END 30                    *END OF THE MODULE 
COMPILE                      *FSD01 - ISD SUBSYSTEM MONITOR/UTILITY 
   MODULE FSD01A,FSD1(110,111)LOCK
***       FSD01A - EXECUTE ADAPTER DIAGNOSTICS
**
*         FSD01A - EXECUTE ADAPTER DIAGNOSTICS
*         ------------------------------------- 
* 
* 
*    1.1  PURPOSE - 
*         FSD01A  EXECUTES  ADAPTER  DIAGNOSTICS  DEPENDING  UPON  THE
*         MODULE CONDITION SWITCH.  IF THE MODULE CONDITION SWITCH  IS
*         NON-ZERO,  ONLY ONE ADAPTER DIAGNOSTIC  IS EXECUTED.  IF THE
*         MODULE  CONDITION  SWITCH IS  ZERO,  ALL ADAPTER DIAGNOSTICS
*         ARE EXECUTED. 
* 
* 
*    1.2  METHOD -
*         1.  DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE. 
* 
*         2.  RESERVE THE ADAPTER.
* 
*         3.  EXECUTE  ADAPTER DIAGNOSTICS  USING REGISTER B5 TO  HOLD
*             THE CURRENT TEST NUMBER AND REGISTER B7 TO HOLD THE LOOP
*             PARAMETER.
* 
*         4.  CHECK GENERAL STATUS.  IF NON-ZERO,  CALL SUBMODULE  FSD
*             97A TO PROCESS MODULE ERRORS. 
* 
*         5.  CHECK  THE MODULE  CONDITION SWITCH.  IF NON-ZERO,  GOTO
*             STEP 8. 
* 
*         6.  REPEAT STEPS 2-6 FOR ALL ADAPTER DIAGNOSTICS. 
* 
*         7.  CHECK B6,  IF ZERO, GOTO STEP 8, ELSE EXIT TO FSD01B TO 
*             EXECUTE CM DIAGNOSTICS. 
* 
*         8.  RELEASE THE ADAPTER.
* 
/ 
*    2.1  ENTRY - 
*         PARAMETER WORDS P0 TO P9 ARE DESCRIBED  IN THE MODULE  FSD99. 
*         THE  ACCESS  LEVEL  FOR  THE  TEST  IS  CONTAINED  IN  THE AL 
*         REGISTER. 
* 
*    2.2  EXIT -
*         FSD01A WILL ERROR EXIT TO SUBMODULE FSD98A FOR COMMAND ABORTS 
*         AND TO FSD97A FOR MODULE DETECTED ERRORS. 
* 
*         FSD01A WILL EXIT TO SUBMODULE FSD01B TO RUN THE CONTROL MODULE
*         SEQUENCED DIAGNOSTICS WHEN BOTH PARAMETERS PO AND P1 ARE EQUAL
*         TO ZERO.
* 
*    2.3  SUBMODULES REFERENCED - 
*         FSD01B - EXECUTE CONTROL MODULE SELF-DIAGNOSTICS, APPENDIX E
*         FSD97A - MONITOR ERROR CODE EXTRACTOR 
*         FSD98A - POST COMMAND ABORT ERROR DISPLAY 
* 
*    2.4  REGISTERS USED -
*         B0 - MODULE CONDITION SWITCH
*         B1 - ERROR ABORT INDEX
*         B2 - MODULE ERROR COUNT 
*         B3 - DISPLAY LINE NUMBER
*         B5 - EXECUTE PARAMETER V = TEST NUMBER
*         B6 - EXECUTE PARAMETER W = SUBTEST NUMBER 
*         B7 - EXECUTE PARAMETER X = LOOP 
*         B8 - EXECUTE PARAMETER Y = REPETITION COUNT 
*         B9 - TEMPORARY STORAGE
*         B14- TEMPORARY STORAGE
*         AL - STANDARD USAGE.
* 
*    2.5  BUFFERS USED -
*         NONE
* 
* 
/------------------DATA DIVISION----------------------------
* 
0  FORMAT FSD01 - ISD SUBSYSTEM MONITOR/UTILITY 
1  FORMAT FSD01A - EXECUTE ADAPTER DIAGNOSTICS
2  FORMAT FSD01A - EXECUTE ADAPTER DIAGNOSTICS = *OCT 
3  FORMAT THE  ADAPTER  IS HUNG IN A SELF-DIAGNOSTIC LOOPING
4  FORMAT CONDITION,  AND FSD HAS ENDED. TO RECOVER FROM THE
5  FORMAT SELF-DIAGNOSTIC  LOOPING  CONDITION,  RUN FSD47 TO
6  FORMAT AUTOLOAD THE ADAPTER WITH MA462-D CONTROLWARE FROM
7  FORMAT THE MALET SCRATCH FILE. 
10 FORMAT // FSD01 ERROR(S) = *DEC(10)
* 
/------------------COMMAND EQUATES--------------------------
* 
   EQUATE CRES = 1, CEXC = 2, CSGEN = 3, CSDET = 4
   EQUATE CSPRO = 5, CREL = 6 
* 
/------------------INITIALIZATION---------------------------
* 
15 MSG 1 TO DISPLAY, PRINT   *DISPLAY MODULE RUNNING MESSAGE
* 
/------------------EXECUTE ADAPTER DIAGNOSTICS--------------
* 
20 MSG 2 (B5) TO DISPLAY     *DISPLAY ADAPTER TEST
   B1 = CRES                 *COMMAND .RES. 
   RES ADAPT, ABT 70
   B1 = CEXC                 *COMMAND .EXECUTE. 
   EXECUTE AD B5 PM B7, ABT 70
   DELAY 500D MSEC           *WAIT ADAPTER BUSY 
   B1 = CSGEN                *COMMAND .STATUS GENERAL.
22 STATUS GENERAL, ABT 70 
24 IF(SB.NE.0) GOTO 60       *PROCESS MODULE ERROR
   IF(B0.EQ.1) GOTO 26       *IF EXECUTE 1 ADAPTER DIAG 
   GOTO 20 WHILE(B5+1.LE.20B)   *IF EXEC ADAPTER SEQUENCED
   IF(B6.EQ.0) GOTO 26
   B5 = 400                  *FIRST CM DIAG TO EXECUTE
   B6 = 1                    *FIRST CM SUBTEST TO EXECUTE 
   EXIT TO 01B               *IF EXECUTE CM SEQUENCED 
* 
26 B1 = CREL                 *COMMAND .REL. 
   REL, ABT 70
   GOTO 77                   *TERMINATE MONITOR TEST
* 
/------------------PROCESS MODULE ERRORS--------------------
* 
60 B2 = B2+1                 *INCREMENT ERROR COUNT 
   B1 = CSDET                *COMMAND .STATUS DETAIL. 
   STATUS DETAIL, ABT 70
   B1 = CSPRO                *COMMAND .STATUS PROCESSOR.
   STATUS PROCESSOR, ABT 70 
   B14 = 1
   CALL 97A                  *CALL MODULE ERROR PROCESSOR 
   B1 = 10
   GOTO 77                   *TERMINATE MONITOR TEST
* 
/------------------PROCESS COMMAND ABORTS-------------------- 
* 
70 IF(EC.AND.6125.EQ.6125) GOTO 60  *IF ABN GEN STATUS
   IF(EC.AND.6130.NE.6130) GOTO 74  *IF NOT DIAG TIMEOUT
   B9 = 3 
72 MSG B9 TO LINE B3
   MSG B9 TO PRINT
   B3 = B3+1
   GOTO 72 WHILE(B9+1.LE.7B)
   GOTO 77
74 B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1           *DISPLAY MODULE TITLE
   MSG 1 TO LINE 2
   CALL 98A                  *CALL ABORT ERROR PROCESSOR
   B1 = 10
77 IF(B2.NE.0) MSG B1 (B2) TO DAYFILE  *REPORT ERRORS 
   END 15                    *TERMINATE MONITOR TEST
COMPILE                      *FSD01A EXECUTE ADAPTER DIAGNOSTICS
   MODULE FSD01B,FSD1(110,111)LOCK
***       FSD01B - EXECUTE CONTROL MODULE DIAGNOSTICS 
**
*         FSD01B - EXECUTE CONTROL MODULE DIAGNOSTICS 
*         ------------------------------------------- 
* 
* 
*    1.1  PURPOSE - 
*         FSD01B EXECUTES  THE RECOMMENDED  CONTROL MODULE  DIAGNOSTIC
*         EXECUTION SEQUENCE. 
* 
* 
*    1.2  METHOD -
*         1.  DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE. 
* 
*         2.  RESERVE THE CONTROL MODULE. 
* 
*         3.  EXECUTE CONTROL MODULE DIAGNOSTICS USING REGISTER B5  TO
*             HOLD  THE CURRENT CONTROL MODULE TEST NUMBER,  AND  REG-
*             ISTER B6 TO HOLD THE CURRENT SUBTEST NUMBER.
* 
*         4.  CHECK  GENERAL STATUS.  IF NON-ZERO,  CALL SUBMODULE FSD
*             97A TO PROCESS MODULE ERRORS. 
* 
*         5.  INCREMENT THE OB BUFFER ADDRESS INDEX.
* 
*         6.  GET THE NEXT TEST NUMBER TO EXECUTE FROM OB(0) AND STORE
*             IN REGISTER B5. 
* 
*         7.  GET THE NEXT SUBTEST NUMBER TO EXECUTE FROM OB(100)  AND
*             STORE IN REGISTER B6. 
* 
*         8.  CHECK B6 FOR BIT 2**11 BEING SET.  IF SET SEND A MESSAGE
*             TO THE DAYFILE THAT SUBTEST NEEDS AL=10B TO EXECUTE. RE-
*             PEAT  STEPS 5-8 FOR REMAINING  SUBTESTS.  IF  CLEAR GOTO
*             STEP 9. 
* 
*         9.  REPEAT STEPS 2-9 FOR 43B CONTROL MODULE DIAGNOSTICS.
* 
*        10.  RELEASE THE CONTROL MODULE. 
* 
/ 
*    2.1  ENTRY - 
*         PARAMETER  WORDS P0 TO P9 ARE DESCRIBED IN THE MODULE FSD99.
*         THE  ACCESS  LEVEL  FOR  THE  TEST  IS  CONTAINED  IN THE AL
*         REGISTER. 
* 
*    2.2  EXIT -
*         FSD01B ERROR EXITS TO MODULE FSD98A FOR A COMMAND ABORT  AND
*         TO FSD97A TO PROCESS MODULE ERRORS. 
* 
*    2.3  SUBMODULES REFERENCED - 
*         FSD97A - MONITOR ERROR CODE EXTRACTOR 
*         FSD98A - POST COMMAND ABORT ERROR DISPLAY 
* 
*    2.4  REGISTERS USED -
*         B1 - ERROR ABORT INDEX
*         B2 - MODULE ERROR COUNT 
*         B5 - EXECUTE PARAMETER V = TEST NUMBER
*         B6 - EXECUTE PARAMETER W = SUBTEST NUMBER 
*         B7 - EXECUTE PARAMETER X = LOOP 
*         B8 - EXECUTE PARAMETER Y = REPETITION COUNT 
*         B9 - BUFFER ADDRESS INDEX 
*         B14- TEMPORARY STORAGE
*         AL - STANDARD USAGE.
* 
*    2.5  BUFFERS USED -
*         OB(0) TO OB(43) - LEVEL II DIAGNOSTIC TEST NUMBERS
*         OB(100) TO OB(143) - CORRESPONDING SUBTEST NUMBER 
* 
* 
/------------------DATA DIVISION----------------------------
* 
0  FORMAT FSD01 - ISD SUBSYSTEM MONITOR/UTILITY 
1  FORMAT FSD01B - EXECUTE CONTROL MODULE DIAGNOSTICS 
2  FORMAT FSD01B - EXECUTE CM TEST = *OC, SUBTEST = *OC 
3  FORMAT //FSD01B - CM TEST *OC, SUBTEST *OC NEEDS AL=10B
4  FORMAT // FSD01 ERROR(S) = *DEC(10)
* 
/------------------LEVEL II DIAGNOSTIC TEST NUMBERS---------
* 
   DATA (OB(00),CON)400,170,164,164,170,166,170,170,170,172 
   DATA (OB(12),CON)172,172,172,172,172,172,172,172,172,161 
   DATA (OB(24),CON)161,161,161,161,165,165,165,162,162,162 
   DATA (OB(36),CON)162,166,166,162,162,162,163 
* 
/------------------CORRESPONDING SUBTEST NUMBERS------------
* 
   DATA (OB(100),CON) 1, 1, 1, 2, 2, 1, 4, 4005, 6, 4 
   DATA (OB(112),CON) 1, 2, 3, 5, 10, 11, 12,13, 7, 1 
   DATA (OB(124),CON) 4002,4003,4004,5,1,2,4003,1,2,4003
   DATA (OB(136),CON) 4, 2, 3, 5,4006,4007, 1 
* 
/------------------COMMAND EQUATES--------------------------
* 
   EQUATE CRES=1, CEXC=2, CSGEN=3, CSDET=4, CREL=6
* 
/------------------INITIALIZATION---------------------------
* 
10 MSG 1 TO DISPLAY, PRINT   *DISPLAY MODULE RUNNING MESSAGE
* 
/------------------EXECUTE CONTROL MODULE DIAGNOSTICS-------
* 
20 MSG 2 (B5,B6) TO DISPLAY  *DISPLAY CM TEST/SUBTEST 
   B1 = CRES                 *COMMAND .RES. 
   RES COMOD, ABT 70
   B1 = CEXC                 *COMMAND .EXECUTE. 
   EXECUTE CM B5 SB B6 PM B7 B8, ABT 70 
   B1 = CSGEN                *COMMAND .STATUS GENERAL.
   STATUS GENERAL, ABT 70 
   IF(SB.NE.0) GOTO 60       *PROCESS MODULE ERROR
* 
22 B9 = B9+1                 *INCREMENT BUFFER ADDRESS INDEX
   B5 = OB(B9)               *LEVEL II DIAG TO EXEC 
   B6 = OB(B9+100B)          *DIAG SUBTEST TO EXEC
   IF(B6.AND.4000.NE.4000) GOTO 24  *EXEC SUBTEST 
   B6 = B6.XOR.4000          *CLEAR BIT 2**11 
   IF(AL.GE.10B) GOTO 24     *IF HIGH ENOUGH
   MSG 3 (B5,B6) TO DAYFILE  *POST MSG TO DAYFILE 
   GOTO 22                   *EXECUTE NEXT SUBTEST
24 GOTO 20 WHILE(B9+0.LE.44B)   *NO. OF DIAGS TO EXEC 
* 
26 B1 = CREL                 *COMMAND .REL. 
   REL, ABT 70
   GOTO 77                   *TERMINATE MONITOR TEST
* 
/------------------PROCESS MODULE ERRORS--------------------
* 
60 B2 = B2+1                 *INCREMENT ERROR COUNT 
   B1 = CSDET                *COMMAND .STATUS DETAIL. 
   STATUS DETAIL, ABT 70
   B14 = 2
   IF (B5.EQ.400B) B14 = 4   *IF ISI TEST 
   CALL 97A                  *CALL MODULE ERROR PROCESSOR 
   B1 = 4 
   GOTO 77                   *TERMINATE MONITOR TEST
* 
/------------------PROCESS COMMAND ABORTS-------------------- 
* 
70 IF(EC.AND.6125.EQ.6125) GOTO 60  *IF ABN GEN STATUS
   B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1           *DISPLAY MODULE TITLE
   MSG 1 TO LINE 2
   CALL 98A                  *CALL ABORT ERROR PROCESSOR
   B1 = 4 
77 IF(B2.NE.0) MSG B1 (B2) TO DAYFILE  *REPORT ERRORS 
   END 10                    *TERMINATE MONITOR TEST
COMPILE                      *FSD01B EXECUTE ADAPTER DIAGNOSTICS
   MODULE FSD01C,FSD1(110,111)LOCK
***       FSD01C - EXECUTE CONTROL MODULE DIAGNOSTICS 
**
*         FSD01C - EXECUTE CONTROL MODULE DIAGNOSTICS 
*         ------------------------------------------- 
* 
* 
*    1.1  PURPOSE - 
*         FSD01C EXECUTES  CONTROL MODULE  DIAGNOSTICS DEPENDING  UPON
*         THE MODULE CONDITION SWITCH.  IF THE MODULE CONDITION SWITCH
*         IS ZERO, ONLY ONE CONTROL MODULE DIAGNOSTIC AND ALL SUBTESTS
*         ARE EXECUTED.  IF THE MODULE CONDITION SWITCH IS A 1 ,  ONLY
*         ONE CONTROL MODULE DIAGNOSTIC AND SUBTEST ARE EXECUTED. 
* 
* 
*    1.2  METHOD -
*         1.  DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE. 
* 
*         2.  RESERVE THE CONTROL MODULE. 
* 
*         3.  EXECUTE  CONTROL MODULE  DIAGNOSTICS  USING  REGISTER B5
*             TO HOLD THE CURRENT CONTROL MODULE TEST NUMBER, AND REG-
*             ISTER B6 TO HOLD THE CURRENT SUBTEST NUMBER.
* 
*         4.  CHECK  GENERAL STATUS.  IF NON-ZERO,  CALL SUBMODULE 97A
*             TO PROCESS MODULE ERRORS. 
* 
*         5.  CHECK  THE MODULE CONDITION SWITCH.  A 1 CONDITION MEANS
*             EXECUTE  ONLY  ONE CM  DIAGNOSTIC  AND  SUBTEST.  A ZERO
*             CONDITION MEANS EXECUTE ONE DIAGNOSTIC AND REPEAT  STEPS
*             2-5 UNTIL ALL SUBTESTS HAVE BEEN EXECUTED.
* 
*         6.  RELEASE THE CONTROL MODULE. 
* 
/ 
*    2.1  ENTRY - 
*         PARAMETER  WORDS P0 TO P9 ARE DESCRIBED IN THE MODULE FSD99.
*         THE  ACCESS  LEVEL  FOR  THE  TEST  IS  CONTAINED  IN THE AL
*         REGISTER. 
* 
*    2.2  EXIT -
*         FSD01C  ERROR EXITS IF EITHER  A MODULE  ERROR OR  A COMMAND
*         ABORT OCCURS. 
* 
*    2.3  SUBMODULES REFERENCED - 
*         FSD97A - MONITOR ERROR CODE EXTRACTOR 
*         FSD98A - POST COMMAND ABORT ERROR DISPLAY 
* 
*    2.4  REGISTERS USED -
*         B0 - MODULE CONDITION SWITCH
*         B1 - ERROR ABORT INDEX
*         B2 - MODULE ERROR COUNT 
*         B5 - EXECUTE PARAMETER V = TEST NUMBER
*         B6 - EXECUTE PARAMETER W = SUBTEST NUMBER 
*         B7 - EXECUTE PARAMETER X = LOOP 
*         B8 - EXECUTE PARAMETER Y = REPETITION COUNT 
*         B9 - TEMPORARY STORAGE
*         B14- TEMPORARY STORAGE
*         AL - STANDARD USAGE.
* 
*    2.5  BUFFERS USED -
*         OB(161) TO OB(172) - SUBTESTS IN EACH CM DIAGNOSTIC 
* 
* 
/------------------DATA DIVISION----------------------------
* 
0  FORMAT FSD01 - ISD SUBSYSTEM MONITOR/UTILITY 
1  FORMAT FSD01C - EXECUTE CONTROL MODULE DIAGNOSTICS 
2  FORMAT FSD01C - EXECUTE CM TEST = *OC, SUBTEST = *OC 
3  FORMAT THE  CONTROL  MODULE  IS HUNG IN A SELF-DIAGNOSTIC
4  FORMAT LOOPING  CONDITION,  AND FSD HAS ENDED. TO RECOVER
5  FORMAT FROM  THE  SELF-DIAGNOSTIC  LOOPING CONDITION, RUN
6  FORMAT FSD51  TO AUTOLOAD THE CONTROL MODULE WITH COMMAND
7  FORMAT OPERATING SYSTEM FROM THE MALET SCRATCH FILE. 
10 FORMAT //FSD01 ERROR(S) = *DEC(10) 
* 
   DATA (OB(161B),CON) 5     *NO OF SUBTESTS IN CM DIAG 71H 
   DATA (OB(162B),CON) 7     *NO OF SUBTESTS IN CM DIAG 72H 
   DATA (OB(163B),CON) 1     *NO OF SUBTESTS IN CM DIAG 73H 
   DATA (OB(164B),CON) 3     *NO OF SUBTESTS IN CM DIAG 74H 
   DATA (OB(165B),CON) 3     *NO OF SUBTESTS IN CM DIAG 75H 
   DATA (OB(166B),CON) 3     *NO OF SUBTESTS IN CM DIAG 76H 
   DATA (OB(167B),CON) 1     *NO OF SUBTESTS IN CM DIAG 77H 
   DATA (OB(170B),CON) 14B   *NO OF SUBTESTS IN CM DIAG 78H 
   DATA (OB(172B),CON) 13B   *NO OF SUBTESTS IN CM DIAG 7AH 
   DATA (OB(400B),CON) 1     *NO OF SUBTESTS IN CM DIAG 100H
* 
/------------------COMMAND EQUATES--------------------------
* 
   EQUATE CRES=1, CEXC=2, CSGEN=3, CSDET=4, CREL=6
* 
/------------------INITIALIZATION---------------------------
* 
15 MSG 1 TO DISPLAY, PRINT   *DISPLAY MODULE RUNNING MESSAGE
* 
/------------------EXECUTE CONTROL MODULE DIAGNOSTICS-------
* 
20 MSG 2 (B5,B6) TO DISPLAY  *DISPLAY CM TEST/SUBTEST 
   B1 = CRES                 *COMMAND .RES. 
   RES COMOD, ABT 70
   B1 = CEXC                 *COMMAND .EXECUTE. 
   EXECUTE CM B5 SB B6 PM B7 B8, ABT 70 
   B1 = CSGEN                *COMMAND .STATUS GENERAL.
22 STATUS GENERAL, ABT 70 
24 IF(SB.NE.0) GOTO 60       *PROCESS MODULE ERROR
   IF(B0.EQ.1) GOTO 26       *IF EXEC 1 CM DIAG, 1 SUBTEST
   GOTO 20 WHILE(B6+1.LE.OB(B5))  *IF EXEC CM DIAG, ALL SUB 
* 
26 B1 = CREL                 *COMMAND .REL. 
   REL, ABT 70
   GOTO 77                   *TERMINATE MONITOR TEST
* 
/------------------PROCESS MODULE ERRORS--------------------
* 
60 B2 = B2+1                 *INCREMENT ERROR COUNT 
   B1 = CSDET                *COMMAND .STATUS DETAIL. 
   STATUS DETAIL, ABT 70
   B14 = 2
   IF (B5.EQ.400B) B14 = 4   *IF ISI TEST 
   CALL 97A                  *CALL MODULE ERROR PROCESSOR 
   B1 = 10
   GOTO 77                   *TERMINATE MONITOR TEST
* 
/------------------PROCESS COMMAND ABORTS-------------------
* 
70 IF(EC.AND.6125.EQ.6125) GOTO 60  *IF ABN GEN STATUS
   IF(EC.AND.6130.NE.6130) GOTO 74  *IF NOT DIAG TIMEOUT
   B9 = 3 
72 MSG B9 TO LINE B3
   MSG B9 TO PRINT
   B3 = B3+1
   GOTO 72 WHILE(B9+1.LE.7B)
   GOTO 77
74 B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1           *DISPLAY MODULE TITLE
   MSG 1 TO LINE 2
   CALL 98A                  *CALL ABORT ERROR PROCESSOR
   B1 = 10
77 IF(B2.NE.0) MSG B1 (B2) TO DAYFILE  *REPORT ERRORS 
   END 15                    *TERMINATE MONITOR TEST
COMPILE                      *FSD01C EXECUTE ADAPTER DIAGNOSTICS
*IF DEF,CMSE17X 
   MODULE FSD10,6000(110),LOCK
***       FSD10 - ICI PARITY ERROR STATUS TEST
**
* 
*    1.1  PURPOSE-
*         FSD10 TESTS THE ICI PARITY ERROR STATUS.
* 
*    1.2  METHOD -
*         1.  INFORM OPERATOR THAT ICI PARITY TEST IS EXECUTING.
*         2.  RESERVE THE CHANNEL.
*         3.  READ GENERAL STATUS FROM ADAPTER AND COMPARE THE STATUS 
*             READ WITH THE EXPECTED STATUS.
*         4.  ISSUE FUNCTION FOR BUFFER WRITE.
*         5.  TURN ON INVERT CHANNEL PARITY.
*         6.  OUTPUT DATA FOR BUFFER WRITE. 
*         7.  TURN OFF INVERT CHANNEL PARITY. 
*         8.  READ GENERAL STATUS AND EXPECT 5000 GENERAL STATUS. 
*         9.  READ DETAIL STATUS AND EXPECT ICI PARITY ERROR BIT
*             TO BE SET.
*         10. ISSUE FUNCTION FOR BUFFER WRITE.
*         11. OUTPUT DATA FOR BUFFER WRITE. 
*         12. READ GENERAL STATUS AND EXPECT 0000 GENERAL STATUS. 
*         13. ISSUE FUNCTION FOR BUFFER READ. 
*         14. INPUT THE DATA. 
*         15. COMPARE THE DATA READ WITH DATA WRITTEN.
*         16. REPEAT STEPS 4 THROUGH 15 FOR ALL DATA PATTERNS.
/ 
* 
*    1.3  ERRORS REPORTED - 
*         1.  GENERAL STATUS ERROR AT START.
*         2.  GENERAL STATUS INCORRECT. 
*         3.  D.S. WORD 20 BIT 5 NOT SET (ICI P.E. STATUS). 
* 
*    2.1  ENTRY - 
* 
*         SUBMODULES REFERENCED - 
*         FSD98H - ERROR PROCESSOR FOR COMMAND ABORT. 
*         FSD98I - ERROR PROCESSOR MODULE ERROR.
* 
*    2.2  REGISTERS USED -
*         B0  = EXTERNAL LOOP COUNTER.
*         B1  = MODULE NUMBER.
*         B2  = FUNCTION CODES. 
*         B3  = PATTERN COUNTER.
*         B5  = EXPECTED STATUS.
*         B6  = INTERNAL LOOP FOR BUFFER WRITE TRIES. 
*         B8  = COMMAND INDEX FOR COMMAND ABORTS. 
*         B9  = CHANNEL PARITY ERROR STATUS.
*         B10 = INTERNAL LOOP COUNTER.
*         B11 = ERROR COUNTER.
* 
1  FORMAT FSD10 - ICI PARITY ERROR STATUS TEST
2  FORMAT FSD10 ERROR(S) = *DECD
3  FORMAT FSD10 L*OC GENERAL STATUS ERROR AT START
4  FORMAT FSD10 - ICI PARITY ERROR STATUS LC=*DECD
5  FORMAT FSD10 L*OC GENERAL STATUS INCORRECT 
6  FORMAT FSD10 EC=*DECD, LC=*DECD
10 FORMAT ICI PARITY ERROR STATUS TEST. 
12 FORMAT ICI PARITY ERROR STATUS TEST COMPLETED. 
15 FORMAT CHANNEL PE STATUS TO B9 COMMAND ABORT 
16 FORMAT FSD10 L*OC D.S. WORD 20 BIT 5 NOT SET(ICI P.E. STATUS)
* 
/---------MODULE INITIALIZATION.
* 
20 B1 = 10D                   *MODULE NUMBER
   MSG 1 TO PRINT, DISPLAY   *POST MODULE TITLE 
   B11 = 0                   *CLEAR ERROR COUNT 
   B0 = 0                    *INITIALIZE EXT. LOOP COUNT
   B9 = 0        *INITIALIZE CHANNEL PARITY STATUS
* 
/---------MODULE TEST.
* 
24 B10 = 0                   *INITIALIZE INT. LOOP COUNT
   CHANNEL PE STATUS TO B9, ABT 70  *EXIT IF NOT A 17X
   MSG 10 TO LINE 4                *MODULE EXECUTION MESSAGE
26 B3 = 0                          *PATTERN COUNTER 
27 IF(B3.EQ.0)DUP 0000B TO OB FOR WC      *0000 PATTERN 
   IF(B3.EQ.1)DUP 7777B TO OB FOR WC      *7777 PATTERN 
   IF(B3.EQ.2)DUP 2525B TO OB FOR WC      *2525 PATTERN 
   IF(B3.EQ.3)DUP 5252B TO OB FOR WC      *5252 PATTERN 
   IF(B3.EQ.4)DUP 1111B TO OB FOR WC      *1111 PATTERN 
   IF(B3.EQ.5)DUP 2222B TO OB FOR WC      *2222 PATTERN 
   IF(B3.EQ.6)DUP 4444B TO OB FOR WC      *4444 PATTERN 
   B8 = 40B 
   IF(ES.AND.RM.EQ.0) MSG 4(B10) TO DISPLAY  *IF NO REPEAT
   WC = 502B
   RES, ABT 77               *RESERVE CHANNEL 
30 B8 = 42B 
   B2 = 12B                  *GENERAL STATUS FUNCTION 
   FUNC B2, ABT 77
   B8 = 43B 
   B5 = 0                    *EXPECTED STATUS 
   STATUS 1 WORDS TO SB, ABT 77  *INPUT GENERAL STATUS
34 IF(SB.NE.0) ERROR 3/1, GOTO 72       *IF GENERAL STATUS ERROR
   B8 = 42B 
   B2 = 33B                  *BUFFER WRITE FUNCTION 
   FUNC B2, ABT 77
   B8 = 44B 
   FZCP, ON, ABT 77 
   B8 = 46B 
   OUT                        *WRITE DATA AND EXPECT ERROR
   B8 = 45B 
   FZCP, OFF, ABT 77
   B8 = 42B 
   B2 = 12B                  *STATUS FUNCTION 
   FUNC B2, ABT 77
   B8 = 43B 
   B5 = 5000B                *EXPECTED STATUS 
   STATUS 1 WORDS TO SB, ABT 77 
   IF(SB.AND.5000.NE.5000) ERROR 5/2, GOTO 72  *STATUS INCORRECT
37 B8 = 42B 
   B2 = 23B                  *DETAIL STATUS 
   FUNC B2, ABT 77
   B8 = 43B 
   STATUS 20D WORDS TO SB(1), ABT 77
   IF(SB(20D).AND.40.NE.40) ERROR 16/3, GOTO 72  *STATUS INCORRECT
42 B8 = 42B 
   B2 = 33B                  *BUFFER WRITE FUNCTION 
   FUNC B2, ABT 77
   B8 = 46B 
   OUT, ABT 77                *WRITE DATA AND DO NOT EXPECT ERROR 
   B8 = 42B 
   B2 = 12B                  *STATUS FUNCTION 
   FUNC B2, ABT 77
   B8 = 43B 
   B5 = 0000B                *EXPECTED STATUS 
   STATUS 1 WORDS TO SB, ABT 77 
   IF(SB.NE.0) ERROR 5/4, GOTO 72  *STATUS INCORRECT
   B8 = 42B 
   B2 = 32B                   *BUFFER READ FUNCTION 
   FUNC B2, ABT 77
   B8 = 52B 
   IN, ABT 77                 *READ THE DATA
   B8 = 53B 
   COMPARE IB TO OB FOR WC, ABT 77
46 GOTO 27 WHILE (B3+1.LE.6)      *DO ALL PATTERNS
   B8 = 41B 
   REL, ABT 77               *RELEASE THE CHANNEL 
* 
/---------MODULE REPEAT/EXIT
* 
50 B0 = B0+1                 *INITIALIZE INT. LOOP COUNT
   IF(ES.AND.RM.EQ.0) GOTO 52  *IF NO REPEAT MODULE 
   MSG 6(B11,B0) TO DISPLAY  *DISPLAY ERROR LOOP COUNT
   GOTO 24
52 MSG 12 TO LINE 6          *MODULE COMPLETED MESSAGE
   IF(B11.EQ.0) GOTO 55      *IF NO ERRORS
   MSG 2 (B11) TO DAYFILE,PRINT  *POST ERROR COUNT TO PRINT 
   GOTO 55                       *AND DAYFILE 
* 
/---------PROCESS MODULE DETECTED ERRORS. 
* 
70 IF(ES.AND.SL.NE.0) GOTO 76    *IF SCOPE LOOP 
   MSG 1 TO LINE 1           *DISPLAY MODULE TITLE
   MSG 15 TO LINE 4   *DISPLAY ERROR MESSAGE
   CALL 98I 
   GOTO 55
72 IF(ES.AND.SL.NE.0) GOTO 76    *IF SCOPE LOOP 
   MSG 1 TO LINE 1           *DISPLAY MODULE TITLE
   MSG EM (EA) TO LINE 4  *DISPLAY ERROR MESSAGE
74 CALL 98I                  *CALL MODULE ERROR PROCESSOR 
75 GOTO 46 WHILE(B11+1.LE.2)  *CONTINUE IF ERROR COUNT NE 3 
   GOTO 50                   *ELSE EXIT 
76 B11 = B11 + 1             *INCREMENT ERROR COUNT FOR SCOPE LOOP
   GOTO 50
* 
/---------PROCESS COMMAND ABORTS. 
* 
77 IF(ES.AND.SL.NE.0) GOTO 76    *IF SCOPE LOOP 
   MSG 1 TO LINE 1           *DISPLAY MODULE TITLE
   CALL 98H                  *CALL COMMAND ABORT PROCESSOR
   GOTO 75
55 END 20 
COMPILE                      *FSD10 ICI PARITY ERROR STATUS TEST
*ENDIF
   MODULE FSD11,6000(110,111)LOCK 
**  5.2.5 FSD11 - DEAD MAN TIMER TEST 
* 
*         PURPOSE-
*         FSD11 VERIFIES THAT THE DEAD MAN TIMER
*         DEACTIVATES THE CHANNEL AFTER THE SPECIFIED 
*         AMOUNT OF TIME (FROM 5 TO 16 SECONDS).
*         THIS MODULE DOES NOT SUPPORT REPEAT CONDITION.
* 
*         ISSUE THE BLOCK TRANSFER BUFFER WRITE FUNCTION
*         ACTIVATE THE CHANNEL
*         TIME HOW LONG IT TAKES FOR THE ADAPTER TO DEACTIVATE THE
*           CHANNEL 
*         REPORT ERROR IF IT WAS TOO LONG OR TOO SHORT
*         VERIFY THAT GENERAL STATUS IS EQUAL TO 5012 
/ 
*         ENTRY-NO SPECIAL ENTRY CONDITIONS 
* 
* 
*         SUBMODULES REFERENCED-
*         FSD98I - REPORT MODULE DETECTED ERRORS
*         FSD98H - REPORT COMMAND ABORTS
*         FSD11A - INTEGER DIVISION BY 1000D
* 
*         REGISTERS USED- 
*         B0 - EXTERNAL LOOP COUNT
*         B1 - MODULE NUMBER
*         B2 - TEMPORARY STORAGE
*         B4 - TEMPORARY STORAGE
*         B5 - EXPECTED STATUS
*         B6 - UPPER 12 BITS OF TIMER 
*         B7 - LOWER 12 BITS OF TIMER 
*         B8 - COMMAND INDEX
*         B9 - MAX. TIME LIMIT (UPPER 12) 
*         B10 - MAX. TIME LIMIT (LOWER 12)
*         B11 - ERROR COUNT 
*         B12 - PASS COUNT FOR FSD11A 
*         B14 - TEMPORARY STORAGE 
*         B15 - INITIAL TIME DELAY
*         ES, EC, EM, EA - STANDARD USAGE 
* 
*         BUFFERS USED- 
*         OB(0) AND OB(1) - TIME IN MICROSECONDS
*         OB(2) AND OB(3) - TIME IN MILLISECONDS
*         OB(4) AND OB(5) - TIME IN SECONDS 
*         OB(504) - FLAG BITS 
*           FLAG1 - EXPECTED (SET)/UNEXPECTED (CLEAR) 
*                   ERROR FLAG BIT
* 
*         REMARKS-
*         5,000,000D  = 23045500B  5.0 SECONDS
*         9,000,000D  = 42252100B  9.0 SECONDS
*         13,000,000D = 61456500B  13.0 SECONDS 
*         16,000,000D = 75022000B  16.0 SECONDS 
* 
*         THE INITIAL DELAY USES A 4000D USEC DELAY 
*         TO ASSURE THAT THE REAL TIME CLOCK WRAPS AROUND.
*         THIS IS THE ONLY TECHNIQUE THAT WILL OVERRIDE 
*         THE 4.0 SECOND MAXIMUM TIME BETWEEN RELEASES
*         WHICH THE OPERATING SYSTEMS REQUIRE.
* 
* 
* 
1  FORMAT FSD11 - DEAD MAN TIMER TEST 
2  FORMAT FSD11 ERROR(S) = *DECD
3  FORMAT DEADMAN TIMER TOO SHORT (LT 5 SECONDS)
4  FORMAT DEADMAN TIMER TOO LONG (GT 16 SECONDS)
5  FORMAT TIME = *DD SECONDS + *DED MILLISECONDS
6  FORMAT LESS THAN 5.0 SECONDS 
7  FORMAT // FSD11 NOT EXECUTED, NEEDS AL=0021,AL=*OCT // 
10 FORMAT FSD11 -PAUSE- REPEAT MODULE SELECTED
11 FORMAT FSD11 L=*OCT GENERAL STATUS INCORRECT 
* 
* ---------FUNCTION CODE EQUATES
* 
   EQUATE GSTAT TO 0012 
   EQUATE BTBMW TO 0033 
* 
* ---------STATUS BIT EQUATES 
* 
   EQUATE DMT TO 5012 
* 
* ---------TIME LIMIT EQUATES 
* 
   EQUATE T5S TO 1250D, T9S TO 2250D, T13S TO 3250D  *5, 10 OR 13 SEC 
   EQUATE TD5SU TO 2304, TD5SL TO 5500    *DELAY TIME(5.0 SEC)
   EQUATE TD9SU TO 4225, TD9SL TO 2100  *DELAY TIME(9.0 SEC)
   EQUATE TD13SU TO 6145, TD13SL TO 6500  *DELAY TIME(13.0 SEC) 
   EQUATE TMAXU TO 7502, TMAXL TO 2000    *UPPER TIME LIMIT 
   EQUATE TMINU TO 2304, TMINL TO 5500    *LOWER TIME LIMIT 
* 
* 
* 
20 MSG 1 TO DISPLAY, PRINT
   IF (AL.GE.21) GOTO 22
   MSG 7 (AL) TO DISPLAY, PRINT 
   MSG 7 (AL) TO LINE 2 
21 IF(ES.AND.RM.EQ.0) GOTO 77 
   MSG 10 TO LINE 1 
   MSG 10 TO DISPLAY, PRINT 
   PAUSE
   GOTO 20
* 
* --------INITIALIZE. 
* 
22 B1=10D                    *MODULE NUMBER 
   B0=0                      *INITIALIZE LOOP COUNT 
   B11=0                     *ERROR COUNT 
   WC=1 
   BA=0 
   OB(BA)=0 
* 
*        RESERVE, CONNECT, ETC. 
* 
* 
* --------PERFORM DEAD MAN TIMER TEST.
* 
30 B2 = B2 + 1               *INCREMENT LOOP COUNT
   B6 = TD5SU                *ACCUMULATED TIME
   B7 = TD5SL 
   B15 = T5S                 *SET 5.0 SEC. DELAY
   B9 = TD9SU              *SET MAX. TIME LIMIT 
   B10 = TD9SL
* 
40 B8 = 40                   *COMMAND INDEX 
   RES, ABT 74               *RESERVE CHANNEL 
   B8 = 42
   FUNC BTBMW, ABT 74 
   B8 = 50                   *COMMAND INDEX 
   ACN, ABT 70
   B8 = 47                   *COMMAND INDEX 
   OUT CHAIN, ABT 74
   B2=0 
* 
* ---------DELAY 5.0 9.0 OR 13.0 SECONDS
* 
41 DELAY 4000D USEC 
   GOTO 41 WHILE (B2+1.LT.B15)
   B14=RT                    *START CLOCK 
* 
42 B4=B14                    *SAVE OLD TIME 
   B14=RT                    *SAVE NEW TIME 
* 
* ---------CALCULATE ELAPSED TIME 
* 
   B2=B14-B4.RS.17D          *BORROW BIT
   B2=B14-B4+B2              *ELAPSED TIME
* 
* ---------ADD ELAPSED TIME TO ACCUMULATED TIME 
* 
   B4=B7+B2.RS.12D           *CARRY BIT 
   B6=B6+B4                  *UPPER 12 BITS 
   B7=B7+B2                  *LOWER 12 BITS 
* 
   IF (B6.GT.B9) GOTO 50
   IF (B6.LT.B9) GOTO 44
   IF (B7.GT.B10) GOTO 50    *IF ETL.GT.LOWER MAX TIME, 
* 
44 B8 = 50
   ACN, ABT 42               *BOTTOM OF WAIT LOOP 
* 
   B8 = 51                   *COMMAND INDEX 
   DCN, ABT 45
* 
45 IF (B6.LT.TMINU) GOTO 54 
   IF (B6.GT.TMINU) GOTO 46 
   IF (B7.LT.TMINL) GOTO 54 
* 
46 B8 = 40                   *COMMAND INDEX 
   RES,ABT 74 
   B8 = 42
   FUNC GSTAT, ABT 74 
   B8 = 44                   *COMMAND INDEX 
   STATUS 1 WORDS TO SB, ABT 74 
   B5 = DMT                  *EXPECTED STATUS 5012
   IF (SB.AND.DMT.NE.DMT) ERROR 11/7, GOTO 70 
   GOSUB 56 
   GOTO 77                   *TERMINATE 
* 
* ---------REPORT TOO LONG ERROR
* 
50 B8 = 51                    *COMMAND INDEX
   DCN, ABT 51
51 B8 = 41                    *COMMAND INDEX
   REL, ABT 74
   IF (B15.EQ.T9S) GOTO 52
   IF (B15.EQ.T13S) GOTO 53 
   B6 = TD9SU                *ACCUMULATED TIME
   B7 = TD9SL 
   B15 = T9S                 *SET 9 SEC DELAY 
   B9 = TD13SU               *SET MAX. TIME LIMIT 
   B10 = TD13SL 
   GOTO 40                   *REPEAT DEADMAN TIMER TEST 
52 B6 = TD13SU               *ACCUMULATED TIME
   B7 = TD13SL
   B15 = T13S                *SET 13 SEC DELAY
   B9 = TMAXU                *SET MAX. TIME LIMIT 
   B10 = TMAXL
   GOTO 40                    *REPEAT DEADMAN TIMER TEST
53 ERROR 4/6, GOTO 70 
* 
* ---------REPORT TOO SHORT ERROR 
* 
54 GOSUB 56 
   ERROR 3/5, GOTO 70 
* 
* ---------CONVERT USEC TO MSEC AND SEC 
* 
56 OB(0)=B6                  *SAVE USEC 
   OB(1)=B7 
   CALL 11A                  *DIVIDE BY 1000D 
   MSG 5(OB(5),OB(3)) TO LINE 7 
   IF (OB(5).LT.4) MSG 6 TO LINE 7
   PICTURE
   RETURN 
* 
* --------PROCESS MODULE DETECTED ERRORS. 
* 
70 MSG 1 TO LINE 1              *DISPLAY MODULE TITLE 
   MSG EM (EA) TO LINE 4        *DISPLAY ERROR MESSAGE
   CALL 98I                     *CALL MODULE PROCESSOR
   GOTO 76                      *ALLOW THREE ERRORS 
* 
* --------PROCESS COMMAND ABORTS. 
* 
74 MSG 1 TO LINE 1              *DISPLAY MODULE TITLE 
   CALL 98H                     *CALL COMMAND ABORT PROCESSOR 
76 GOTO 22 WHILE(B11+1.LE.2)    *ALLOW THREE ERRORS 
* 
/--------TERMINATE. 
* 
77 IF (ES.AND.RM.NE.0) GOTO 22
   IF (B11.NE.0) MSG 4 (B11) TO DISPLAY, PRINT, DAYFILE 
   END 20 
COMPILE 
   MODULE FSD11A,6000(110,111)LOCK
*   5.2.5.2 FSD11A - INTEGER DIVIDE BY 1000D
* 
*         PURPOSE-
*         FSD11A DIVIDES THE 24 BIT NUMBER CONTAINED IN 
*         REGISTERS B6/B7 BY 1000D AND REPLACES IT WITH 
*         THE QUOTIENT. 
* 
*         METHOD- 
*         1000D IS SUBTRACTED FROM THE 24 BIT DIVIDEND
*         UNTIL IT GOES NEGATIVE.  THE NUMBER OF SUBTRACTS
*         MINUS ONE IS THEN THE QUOTIENT. 
/ 
*         ENTRY-
*         B6 - UPPER 12 BITS OF THE 24 BIT DIVIDEND 
*         B7 - LOWER 12 BITS OF THE 24 BIT DIVIDEND 
* 
*         EXIT- 
*         B6 - UPPER 12 BITS OF THE 24 BIT QUOTIENT 
*         B7 - LOWER 12 BITS OF THE 24 BIT QUOTIENT 
*         OB(502) THROUGH OB(504) ARE DESTROYED 
*         IB(502) THROUGH IB(504) ARE DESTROYED 
* 
*         SUBMODULES REFERENCED-NONE. 
* 
*         REGISTERS USED- 
*         B2 - BORROW/CARRY BIT 2**12 
*         B3 - BORROW BIT 2**24 
*         B4 - UPPER 12 BITS OF QUOTIENT
*         B5 - LOWER 12 BITS OF QUOTIENT
* 
*         BUFFERS USED- 
*         OB(502) THROUGH OB(504) AND IB(502) THROUGH 
*           IB(504) ARE USED TO SAVE THE REGISTERS. 
* 
*         REMARKS-
*         BY CHANGING THE EQUATE FOR DIVISOR, THIS MODULE 
*         CAN BE MODIFIED TO DIVIDE BY ANY NUMBER LESS
*         THAN 4096D. 
* 
*         KNOWN LIMITATIONS-
* 
* 
/---------MISCELLANEOUS EQUATES 
* 
   EQUATE DIVISOR TO 1000D
* 
/---------SAVE THE REGISTERS
* 
20 OB(503)=B0 
   OB(502)=B1 
   OB(501)=B2 
   IB(503)=B3 
   IB(502)=B4 
   IB(501)=B5 
   B4=0 
   B5=0 
* 
/---------SUBTRACT DIVISOR FROM DIVIDEND (B6/B7)
* 
30 B2=B7-DIVISOR.RS.17D      *BORROW BIT 2**12
   B3=B6-B2.RS.17D           *BORROW BIT 2**24
/ 
   B7=B7-DIVISOR+B3          *LOWER 12 BITS 
   B6=B6-B2                  *UPPER 12 BITS 
   IF (B3.NE.0) GOTO 34      *EXIT IF NEGATIVE
* 
/---------INCREMENT QUOTIENT (B4/B5)
* 
   B2=B5+1.RS.12D            *CARRY BIT 2**12 
   B4=B4+B2                  *UPPER 12 BITS 
   B5=B5+1                   *LOWER 12-BITS 
   GOTO 30
* 
/---------REPLACE DIVIDEND WITH QUOTIENT
* 
34 B6=B4                     *UPPER 12 BITS 
   B7=B5                     *LOWER 12 BITS 
* 
/---------RESTORE REGISTERS 
* 
   B0=OB(503) 
   B1=OB(502) 
   B2=OB(501) 
   B3=IB(503) 
   B4=IB(502) 
   B5=IB(501) 
* 
* ---------DO SECOND PASS FOR SEC 
* 
   IF (B12.NE.0) GOTO 40     *SECOND PASS EXIT
   OB(2)=B6                  *SAVE MSEC 
   OB(3)=B7 
   GOTO 20 WHILE(B12+1.LE.1)  *DIVIDE BY 1000D
40 OB(4)=B6                  *SAVE SEC
   OB(5)=B7 
* 
* ---------CALCULATE RESIDUAL MSEC
* 
57 B2=OB(3)-1000D.RS.17D     *BORROW BIT
   OB(2)=OB(2)-B2 
   OB(3)=OB(3)-1000D
   GOTO 57 WHILE (B7-1.NE.0)
* 
/---------EXIT
* 
   EXIT 
   END 20 
COMPILE 
   MODULE FSD21,FSD1(110,111)LOCK 
***       FSD21 - SUBSYSTEM COMPONENT IDENTIFICATION
**
*         FSD21 - SUBSYSTEM COMPONENT IDENTIFICATION
*         ------------------------------------------
* 
* 
*    1.1  PURPOSE - 
*         FSD21  EXTRACTS  IDENTIFICATION  INFORMATION  FROM THE DETAIL 
*         STATUS  AND  DISPLAYS IT ON THE SCREEN.  THE INFORMATION DIS- 
*         PLAYED  IS THE CONTROLWARE REVISION LEVEL, THE CONTROL MODULE 
*         UNIT NUMBER, THE DRIVE UNIT NUMBER, THE  COS REVISION  LEVEL, 
*         THE DEVICE  IDENTIFICATION, THE DEVICE CAPACITY, AND THE CON- 
*         TROL MODULE MODEL NUMBER. 
* 
* 
*    1.2  METHOD -
*         1.  DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE. 
* 
*         2.  RESERVE THE CONTROL MODULE. 
* 
*         3.  REQUEST DETAIL STATUS.
* 
*         4.  BUILD  A  DISPLAY CONTAINING THE FOLLOWING SUBSYSTEM COM- 
*             PONENT INFORMATION. 
*              A.  EXTRACT  THE  ADAPTER CONTROLWARE REVISION LEVEL FROM
*                  DETAIL  STATUS  WORD  4, BITS 2**9 - 2**6 AND DISPLAY
*                  THE ADAPTER CONTROLWARE REVISION LEVEL.
* 
*              B.  EXTRACT  THE  CONTROL  MODULE UNIT NUMBER FROM DETAIL
*                  STATUS  WORD 4, BITS 2**5 - 2**3 AND DISPLAY THE CON-
*                  TROL MODULE UNIT NUMBER. 
* 
*              C.  EXTRACT THE DRIVE UNIT NUMBER FROM DETAIL STATUS WORD
*                  4, BITS 2**2 - 2**0 AND DISPLAY THE DRIVE UNIT NUMBER. 
* 
*              D.  EXTRACT  THE  COS  REVISION  LEVEL FROM DETAIL STATUS
*                  WORD  18,  BITS 2**4 - 2**0  AND DISPLAY  THE COMMAND
*                  OPERATING SYSTEM REVISION LEVEL. 
* 
*              E.  EXTRACT  THE DEVICE IDENTIFICATION FROM DETAIL STATUS
*                  WORD 14, BITS 2**7 - 2**0 AND DISPLAY THE DEVICE ID. 
* 
*              F.  EXTRACT THE DEVICE CAPACITY FROM DETAIL STATUS WORD 15 
*                  BITS 2**11 - 2**8 AND DISPLAY THE DEVICE CAPACITY. 
* 
*              G.  EXTRACT  THE  CONTROL MODULE MODEL NUMBER FROM DETAIL
*                  STATUS WORD 17, BITS 2**11 - 2**4 AND DISPLAY THE
*                  CONTROL MODULE MODEL NUMBER. 
* 
*         5.  RELEASE THE CONTROL MODULE. 
* 
* 
/ 
*    2.1  ENTRY - 
*         NONE
* 
*    2.2  EXIT -
*         FSD21 ERROR EXITS TO MODULE FSD98A UPON A COMMAND ABORT.
* 
*    2.3  SUBMODULES REFERENCED - 
*         FSD98A - POST COMMAND ABORT ERROR DISPLAY 
* 
*    2.4  REGISTERS USED -
*         B0 - TEMPORARY STROAGE
*         B1 - ERROR ABORT INDEX
*         B2 - MODULE ERROR COUNT 
*         B3 - DISPLAY LINE NUMBER
* 
*    2.5  BUFFERS USED -
*         SB(1) THRU SB(24B) - HOLD DETAIL STATUS.
* 
* 
/------------------DATA DIVISION----------------------------
* 
0  FORMAT FSD - ISD SUBSYSTEM MONITOR/UTILITY 
1  FORMAT FSD21 - SUBSYSTEM COMPONENT IDENTIFICATION
2  FORMAT ADAPTER CONTROLWARE REVISION LEVEL = *OB
3  FORMAT CONTROL MODULE UNIT NUMBER = *OB
4  FORMAT DRIVE UNIT NUMBER = *OB 
5  FORMAT COMMAND OPERATING SYSTEM REVISION LEV = *OB 
6  FORMAT DEVICE IDENTIFICATION = *OCB
7  FORMAT DEVICE CAPACITY = *OB MB
10 FORMAT CONTROL MODULE MODEL NUMBER = *OB 
11 FORMAT //FSD21 ERROR(S) = *DEC(10) 
* 
/------------------COMMAND EQUATES--------------------------
* 
   EQUATE CRES = 1, CSDET = 4, CREL = 6 
* 
/------------------INITIALIZATION---------------------------
* 
20 MSG 1 TO DISPLAY, PRINT   *DISPLAY MODULE RUNNING MESSAGE
   B3 = 3                    *DISPLAY LINE NUMBER 
* 
/------------------SUBSYSTEM COMPONENT IDENTIFICATION------ 
* 
   B1 = CRES                 *COMMAND .RESERVE. 
   RES COMOD, ABT 70
   B1 = CSDET                *COMMAND .STATUS DETAIL. 
   STATUS DETAIL, ABT 70
30 MSG 0 TO LINE 1
   MSG 1 TO LINE 2
   B0 = SB(4).RS.6           *POSITION ADAPTER CNTWR
   B0 = B0.AND.17B           *EXTRACT REV LEV 
   MSG 2 (B0) TO LINE 3 
   B0 = SB(4).RS.3           *POSITION CONTROL MODULE UNIT NO.
   B0 = B0.AND.7B            *EXTRACT CM UNIT NO. 
   MSG 3 (B0) TO LINE 4 
   B0 = SB(4) 
   B0 = B0.AND.7B            *EXTRACT DRIVE UNIT NO.
   MSG 4 (B0) TO LINE 5 
   B0 = SB(18D) 
   B0 = B0.AND.37B           *EXTRACT COS REV LEV 
   MSG 5 (B0) TO LINE 6 
   B0 = SB(14D) 
   B0 = B0.AND.377B          *EXTRACT DEVICE ID 
   MSG 6 (B0) TO LINE 7 
   B0 = SB(15D).RS.8D        *POSITION DEVICE CAPACITY
   B0 = B0.AND.17B           *EXTRACT DEVICE CAPACITY 
   MSG 7 (B0) TO LINE 10
   B0 = SB(17D).RS.8D        *POSITION CM MODEL NO. 
   B0 = B0.AND.17B           *EXTRACT CM MODEL NO.
   MSG 10 (B0) TO LINE 11 
* 
50 B1 = CREL                 *COMMAND .RELEASE. 
   REL, ABT 70
   PICTURE
   GOTO 77
* 
/------------------PROCESS COMMAND ABORTS-------------------
* 
70 B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1           *DISPLAY MODULE TITLE
   MSG 1 TO LINE 2
   CALL 98A                  *CALL ABORT ERROR PROCESSOR
   B1 = 11
77 IF(B2.NE.0) MSG B1 (B2) TO DAYFILE  *REPORT ERRORS 
   END 20                    *END OF THE MODULE 
COMPILE                      *FSD21 SUBSYSTEM COMPONENT IDENTIFICATION
   MODULE FSD31,FSD1(110,111)LOCK 
***       FSD31 - ARCHIVE COMMAND OPERATING SYSTEM (COS)
**
*         FSD31 - ARCHIVE COMMAND OPERATING SYSTEM (COS)
*         --------------------------------------------- 
* 
* 
*    1.1  PURPOSE - 
*         FSD31 COPIES THE COMMAND OPERATING SYSTEM (COS) FROM THE  RE- 
*         SERVED AREA ON THE ASSIGNED DISK INTO THE MALET SCRATCH FILE. 
* 
* 
*    1.2  METHOD -
*         1.  DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE. 
* 
*         2.  SYSREW THE MALET SCRATCH FILE.
* 
*         3.  RESERVE THE CONTROL MODULE. 
* 
*         4.  SYSRD A 500B WORD BLOCK OF COS FROM THE CONTROL MODULE. 
* 
*         5.  SYSWR THE  500B WORD BLOCK  OF COS READ IN STEP 4 TO  THE 
*             MALET SCRATCH FILE. 
* 
*         6.  REPEAT STEPS 4 - 5 UNTIL 41B BLOCKS OF COS HAS BEEN WRIT- 
*             TEN TO THE SCRATCH FILE.
* 
*         7.  SYSRD A 300B WORD BLOCK OF COS FROM THE CONTROL MODULE. 
* 
*         8.  SYSWR THE 42B  300B WORD BLOCK OF COS  READ IN STEP 7  TO 
*             THE MALET SCRATCH FILE. 
* 
*         9.  CHECK FOR SYSRD BLOCK COUNT = 42B.
* 
*        10.  CHECK GENERAL STATUS. 
* 
*        11.  RELEASE THE CONTROL MODULE. 
* 
/ 
*    2.1  ERRORS REPORTED - 
*         INCORRECT BLOCK COUNT 
* 
*    2.2  EXIT -
*         FSD31 ERROR EXITS TO MODULE FSD98A TO PROCESS COMMAND ABORTS. 
* 
*    2.3  SUBMODULES REFERENCED - 
*         FSD98A - POST COMMAND ABORT ERROR DISPLAY 
* 
*    2.4  REGISTERS USED -
*         B0 = COS BLOCK COUNT
*         B1 - ERROR ABORT INDEX
*         B2 - MODULE ERROR COUNT 
*         B3 = DISPLAY LINE NUMBER
*         AL - STANDARD USAGE.
* 
*    2.5  BUFFERS USED -
*         NONE
* 
* 
/------------------DATA DIVISION----------------------------
* 
0  FORMAT FSD - ISD SUBSYSTEM MONITOR/UTILTIY 
1  FORMAT FSD31 - ARCHIVE COMMAND OPERATING SYSTEM (COS)
2  FORMAT ARCHIVING--*OB BLOCKS OF COS TO MALET SCRATCH FILE
3  FORMAT COS BLOCK COUNT ERROR, EXP=42B  ACT=*OB 
4  FORMAT COS ARCHIVED IN MALET SCRATCH FILE
5  FORMAT //FSD31 - ERRORS(S) = *DEC(10)
* 
/------------------COMMAND EQUATES--------------------------
* 
   EQUATE CRES=1, CSGEN=3, CSDET=4, CREL=6, CRCC=7, CRC=10
* 
/------------------INITIALIZATION---------------------------
* 
20 MSG 1 TO DISPLAY, PRINT   *DISPLAY MODULE RUNNING MESSAGE
   B0 = 1                    *COS BLOCK COUNT 
   B3 = 3                    *DISPLAY LINE NUMBER 
   WC = 500B
* 
/------------------ARCHIVE COMMAND OPERATING SYSTEM---------
* 
   SYSREW                    *REWIND MALET SCRATCH FILE 
   B1 = CRES                 *COMMAND .RES. 
   RES COMOD, ABT 70
   B1 = CRCC                 *COMMAND .READCD COS CHAIN.
40 READCD COS CHAIN, ABT 70 
   SYSWR
   MSG 2 (B0) TO DISPLAY     *DISPLAY BLOCK COUNT 
   GOTO 40 WHILE(B0+1.LE.41B)   *COS BLOCKS TO ARCHIVE
   WC = 300B                 *WORD COUNT OF 42B BLOCK 
   B1 = CRC                  *COMMAND .READCD COS.
   READCD COS, ABT 70 
   SYSWR
   MSG 2 (B0) TO DISPLAY     *DISPLAY LAST BLOCK ARCHIVED 
   B1 = CRES                 *COMMAND .RES COMOD. 
   RES COMOD, ABT 70
   IF(B0.EQ.42B) GOTO 42     *IF BLOCK COUNT CORRECT
   MSG 3 (B0) TO LINE B3
   B3 = B3+1
   GOTO 60
* 
42 B1 = CSGEN                *COMMAND .STATUS GENERAL.
   STATUS GENERAL, ABT 70 
   IF(SB.NE.0) GOTO 60       *PROVIDE STATUS INFORMATION
   MSG 0 TO LINE 1
   MSG 1 TO LINE 2
   MSG 4 TO LINE B3          *DISPLAY COS ARCHIVED
   MSG 4 TO PRINT 
* 
50 B1 = CREL                 *COMMAND .REL. 
   REL, ABT 70
   GOTO 77
* 
/------------------PROCESS MODULE ERRORS--------------------
* 
60 B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1
   MSG 1 TO LINE 2           *DISPLAY MODULE TITLE
   B1 = CSDET                *COMMAND .STATUS DETAIL. 
   STATUS DETAIL, ABT 70
   CALL 98E                  *CALL STATUS DISPLAY 
   B1 = 5 
   GOTO 77                   *TERMINATE MODULE
* 
/------------------PROCESS COMMAND ABORTS-------------------
* 
70 B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1           *DISPLAY MODULE TITLE
   MSG 1 TO LINE 2
   CALL 98A                  *CALL ABORT ERROR PROCESSOR
   B1 = 5 
77 IF(B2.NE.0) MSG B1 (B2) TO DAYFILE  *REPORT ERRORS 
   END 20                    *END OF THE MODULE 
COMPILE                      *FSD31 ARCHIVE COMMAND OPERATING SYSTEM
   MODULE FSD33,FSD1(110,111)LOCK 
***       FSD33 - ARCHIVE LEVEL II SELF DIAGNOSTICS 
**
*         FSD33 - ARCHIVE LEVEL II SELF DIAGNOSTICS 
*         ----------------------------------------- 
* 
* 
*    1.1  PURPOSE - 
*         FSD33 COPIES THE LEVEL II SELF DIAGNOSTICS FROM THE  RESERVED 
*         AREA ON THE ASSIGNED DISK INTO THE MALET SCRATCH FILE.
* 
* 
*    1.2  METHOD -
*         1.  DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE. 
* 
*         2.  SYSREW THE MALET SCRATCH FILE.
* 
*         3.  RESERVE THE CONTROL MODULE. 
* 
*         4.  SYSRD  A 500B  WORD  BLOCK OF  LEVEL II DIAGNOSTICS  FROM 
*             THE CONTROL MODULE. 
* 
*         5.  SYSWR THE 500B WORD BLOCK OF LEVEL II DIAGNOSTICS READ IN 
*             STEP 4 INTO THE MALET SCRATCH FILE. 
* 
*         6.  REPEAT STEPS 4-5 UNTIL 41B BLOCKS OF LEVEL II DIAGNOSTICS 
*             HAVE BEEN WRITTEN INTO THE SCRATCH FILE.
* 
*         7.  SYSRD A 300B WORD BLOCK OF LEVEL II DIAGNOSTICS  FROM THE 
*             CONTROL MODULE. 
* 
*         8.  SYSWR  THE 42B  300B WORD  BLOCK  OF LEVEL II DIAGNOSTICS 
*             INTO THE MALET SCRATCH FILE.
* 
*         9.  CHECK FOR A BLOCK COUNT READ = 42B
* 
*        10.  CHECK GENERAL STATUS. 
* 
*        11.  RELEASE THE CONTROL MODULE. 
* 
/ 
*    2.1  ERRORS REPORTED - 
*         INCORRECT BLOCK COUNT 
* 
*    2.2  EXIT -
*         FSD33 ERROR EXITS TO MODULE FSD98A TO PROCESS COMMAND ABORTS. 
* 
*    2.3  SUBMODULES REFERENCED - 
*         FSD98A - POST COMMAND ABORT ERROR DISPLAY 
* 
*    2.4  REGISTERS USED -
*         B0 = LEVEL II DIAGNOSTIC BLOCK COUNT
*         B1 - ERROR ABORT INDEX
*         B2 - MODULE ERROR COUNT 
*         B3 = DISPLAY LINE NUMBER
*         AL - STANDARD USAGE.
* 
*    2.5  BUFFERS USED -
*         NONE
* 
* 
/------------------DATA DIVISION----------------------------
* 
0  FORMAT FSD - ISD SUBSYSTEM MONITOR/UTILTIY 
1  FORMAT FSD33 - ARCHIVE LEVEL II SELF DIAGNOSTICS 
2  FORMAT ARCHIVING--*OB BLOCKS OF LEV II DIAG TO SCR FILE
3  FORMAT LEV II DIAG BLOCK COUNT ERROR, EXP=42B  ACT=*OB 
4  FORMAT LEVEL II DIAG ARCHIVED IN MALET SCRATCH FILE
5  FORMAT //FSD33 - ERRORS(S) = *DEC(10)
* 
/------------------COMMAND EQUATES--------------------------
* 
   EQUATE CRES=1, CSGEN=3, CSDET=4, CREL=6, CRDC=11, CRD=12 
* 
/------------------INITIALIZATION---------------------------
* 
20 MSG 1 TO DISPLAY, PRINT   *DISPLAY MODULE RUNNING MESSAGE
   B0 = 1                    *LEV II DIAG BLOCK COUNT 
   B3 = 3                    *DISPLAY LINE NUMBER 
   WC = 500B
* 
/------------------ARCHIVE COMMAND OPERATING SYSTEM---------
* 
   SYSREW                    *REWIND MALET SCRATCH FILE 
   B1 = CRES                 *COMMAND .RES. 
   RES COMOD, ABT 70
   B1 = CRDC                 *COMMAND .READCD DIAG CHAIN. 
40 READCD DIAG CHAIN, ABT 70
   SYSWR
   MSG 2 (B0) TO DISPLAY     *DISPLAY BLOCK COUNT 
   GOTO 40 WHILE(B0+1.LE.41B)   *LEV II DIAG BLOCKS TO ARCHIVE
   WC = 300B                 *WORD COUNT OF 42B BLOCK 
   B1 = CRD                  *COMMAND .READCD DIAG. 
   READCD DIAG, ABT 70
   SYSWR
   MSG 2 (B0) TO DISPLAY     *DISPLAY LAST BLOCK ARCHIVED 
   B1 = CRES                 *COMMAND .RES COMOD. 
   RES COMOD, ABT 70
   IF(B0.EQ.42B) GOTO 42     *IF BLOCK COUNT CORRECT
   MSG 3 (B0) TO LINE B3
   B3 = B3+1
   GOTO 60
* 
42 B1 = CSGEN                *COMMAND .STATUS GENERAL.
   STATUS GENERAL, ABT 70 
   IF(SB.NE.0) GOTO 60       *PROVIDE STATUS INFORMATION
   MSG 0 TO LINE 1
   MSG 1 TO LINE 2
   MSG 4 TO LINE B3          *DISPLAY LEV II DIAG ARCHIVED
   MSG 4 TO PRINT 
* 
50 B1 = CREL                 *COMMAND .REL. 
   REL, ABT 70
   GOTO 77
* 
/------------------PROCESS MODULE ERRORS--------------------
* 
60 B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1
   MSG 1 TO LINE 2           *DISPLAY MODULE TITLE
   B1 = CSDET                *COMMAND .STATUS DETAIL. 
   STATUS DETAIL, ABT 70
   CALL 98E                   *CALL STATUS DISPLAY
   B1 = 5 
   GOTO 77                   *TERMINATE MODULE
* 
/------------------PROCESS COMMAND ABORTS-------------------
* 
70 B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1           *DISPLAY MODULE TITLE
   MSG 1 TO LINE 2
   CALL 98A                  *CALL ABORT ERROR PROCESSOR
   B1 = 5 
77 IF(B2.NE.0) MSG B1 (B2) TO DAYFILE  *REPORT ERRORS 
   END 20                    *END OF THE MODULE 
COMPILE                      *FSD33 ARCHIVE LEVEL II SELF DIAGNOSTICS 
   MODULE FSD35,FSD1(110,111)LOCK 
***       FSD35 - RESTORE COMMAND OPERATING SYSTEM (COS)
**
*         FSD35 - RESTORE COMMAND OPERATING SYSTEM (COS)
*         ----------------------------------------------
* 
* 
*    1.1  PURPOSE - 
*         FSD35 WRITES THE COMMAND OPERATING SYSTEM (COS) ONTO THE  RE- 
*         SERVED AREA OF THE ASSIGNED DISK FROM THE MALET SCRATCH FILE. 
* 
* 
*    1.2  METHOD -
*         1.  DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE. 
* 
*         2.  CALL FSD98G TO CHECK FOR A VALID MALET SCRATCH FILE.
* 
*         3.  SYSREW THE MALET SCRATCH FILE.
* 
*         4.  SYSRD A 500B WORD BLOCK OF THE MALET SCRATCH FILE.
* 
*         5.  CHECK FOR 77 TABLE AND STRIP OFF WHEN PRESENT.
* 
*         6.  RESERVE THE CONTROL MODULE. 
* 
*         7.  WRITE COS TO THE ASSIGNED DISK AND START CHAINING.
* 
*         8.  SYSRD 500B WORD BLOCK OF COS FROM THE MALET SCRATCH FILE. 
* 
*         9.  REPEAT STEP 7-9 UNTIL 41B BLOCKS OF COS HAS BEEN  WRITTEN 
*             ONTO THE RESERVED AREA OF THE ASSIGNED DISK.
* 
*        10.  RESET WORD COUNT TO 300B WORDS FOR THE LAST BLOCK OF COS. 
* 
*        11.  SYSWR THE 42B BLOCK OF COS ONTO THE RESERVED AREA OF  THE 
*             ASSIGNED DISK.
* 
*        12.  CHECK THE SCRATCH FILE BLOCK COUNTER = 42B BLOCKS OF  COS 
*             AND THE SYSRD STATUS = END OF RECORD. 
* 
*        13.  CHECK FOR ABNORMAL GENERAL STATUS.
* 
*        14.  RELEASE CONTROL MODULE. 
* 
* 
/ 
* 
*    2.1  ERRORS REPORTED - 
*         SYSRD BLOCK COUNT ERROR 
*         SYSRD STATUS ERROR
* 
*    2.2  EXIT -
*         FSD35 ERROR EXITS TO MODULE FSD98A TO PROCESS COMMAND ABORTS. 
* 
*    2.3  SUBMODULES REFERENCED - 
*         FSD98A - POST COMMAND ABORT ERROR DISPLAY 
*         FSD98G - COS AND LEV II DIAG SCRATCH FILE CHECK 
* 
*    2.4  REGISTERS USED -
*         B0  - COS BLOCK COUNT 
*         B1  - ERROR ABORT INDEX 
*         B2  - MODULE ERROR COUNT
*         B3  - DISPLAY LINE NUMBER 
*         B13 - 77 TABLE WORD COUNT 
*         B15 - SYSRD STATUS
*         AL  - STANDARD USAGE. 
* 
*    2.5  BUFFERS USED -
*         IB IN USED TO STRIP OFF THE 77 TABLE FROM THE COMMAND OPERAT- 
*         ING SYSTEM. 
* 
* 
/------------------DATA DIVISION----------------------------
* 
0  FORMAT FSD - ISD SUBSYSTEM MONITOR/UTILTIY 
1  FORMAT FSD35 - RESTORE COMMAND OPERATING SYSTEM (COS)
2  FORMAT RESTORING--*OB BLOCKS OF COS TO FSD SUBSYSTEM DISK
3  FORMAT SYSRD BLOCK COUNT ERROR, EXP=42B  ACT=*OB 
4  FORMAT SYSRD STATUS ERROR, EXPECTED=01B ACTUAL=*OB 
5  FORMAT COS RESTORED ONTO FSD SUBSYSTEM DISK
6  FORMAT //FSD35 - ERRORS(S) = *DEC(10)
* 
/------------------COMMAND EQUATES--------------------------
* 
   EQUATE CRES=1, CSGEN=3, CSDET=4, CREL=6, CWCC=13, CWC=14 
* 
/------------------CHECK COS SCRATCH FILE-------------------
* 
20 B6 = 0                    *SCRATCH FILE INDEX
   CALL 98G                  *CHECK FOR A VALID SCRATCH FILE
* 
/------------------INITIALIZATION---------------------------
* 
   MSG 1 TO DISPLAY, PRINT   *DISPLAY MODULE RUNNING MESSAGE
   B0 = 1                    *COS BLOCK COUNT 
   B3 = 3                    *DISPLAY LINE NUMBER 
   B15= 0                    *SYSRD STATUS
   WC = 500B
* 
/------------------RESTORE COMMAND OPERATING SYSTEM---------
* 
30 SYSREW                    *REWIND MALET SCRATCH FILE 
   SYSRD, STATUS TO B15      *READ THE SCRATCH FILE 
   IF(IB.NE.7700B) GOTO 36   *IF NO 77 TABLE
   B13 = 1                   *IF 77 TABLE PRESENT 
   WC = 360B
   COPY IB(120B) TO IB(0) FOR WC  *STRIP OFF 77 TABLE 
36 B1 = CRES                 *COMMAND .RES. 
   RES COMOD, ABT 70
   B1 = CWCC                 *COMMAND .WRITECD COS CHAIN. 
40 WRITECD COS CHAIN, ABT 70
   MSG 2 (B0) TO DISPLAY     *DISPLAY BLOCK COUNT 
   WC = 500B
   SYSRD, STATUS TO B15 
   GOTO 40 WHILE(B0+1.LE.41B)   *COS BLOCKS TO RESTORE
   IF(B13.EQ.1) WC = 420B    *WC OF 42B BLOCK WITH 77 TABLE 
   IF(B13.EQ.0) WC = 300B    *WC OF 42B BLOCK WITHOUT 77 TABLE
* 
   B1 = CWC                  *COMMAND .WRITECD COS. 
   WRITECD COS, ABT 70
   MSG 2 (B0) TO DISPLAY     *COS BLOCKS READ 
   IF(B0.EQ.42B) GOTO 42     *IF SYSRD BLOCK COUNT GOOD 
   IF(B0.EQ.41B) GOTO 42     *IF SYSRD BLOCK COUNT GOOD 
   MSG 3 (B0) TO LINE B3     *SYSRD BLOCK CNT ERROR 
   B3 = B3+1
   GOTO 60
* 
42 SYSRD, STATUS TO B15 
   IF(B15.EQ.1) GOTO 50      *IF SYSRD STATUS EOR 
   IF(B15.EQ.2) GOTO 50      *IF SYSRD STATUS EOI 
   MSG 4 (B15) TO LINE B3    *SYSRD STATUS ERROR
   B3 = B3+1
   B1 = CRES                 *COMMAND .RESERVE. 
   RES COMOD, ABT 70
   GOTO 60
* 
50 B1 = CRES                 *COMMAND .RES COMOD. 
   RES COMOD, ABT 70
   B1 = CSGEN                *COMMAND .STATUS GENERAL.
   STATUS GENERAL, ABT 70 
   IF(SB.NE.0) GOTO 60       *PROVIDE STATUS INFORMATION
   MSG 0 TO LINE 1
   MSG 1 TO LINE 2
   MSG 5 TO LINE B3          *DISPLAY COS RESTORED
   MSG 5 TO PRINT 
   B1 = CREL                 *COMMAND .REL. 
   REL, ABT 70
   GOTO 77
* 
/------------------PROCESS MODULE ERRORS--------------------
* 
60 B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1
   MSG 1 TO LINE 2           *DISPLAY MODULE TITLE
   B1 = CSDET                *COMMAND .STATUS DETAIL. 
   STATUS DETAIL, ABT 70
   CALL 98E                  *CALL STATUS DISPLAY 
   B1 = 6 
   GOTO 77
* 
/------------------PROCESS COMMAND ABORTS-------------------
* 
70 B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1           *DISPLAY MODULE TITLE
   MSG 1 TO LINE 2
   CALL 98A                  *CALL ABORT ERROR PROCESSOR
   B1 = 6 
77 IF(B2.NE.0) MSG B1 (B2) TO DAYFILE  *REPORT ERRORS 
   END 20                    *END OF THE MODULE 
COMPILE                      *FSD35 RESTORE COMMAND OPERATING SYSTEM
   MODULE FSD37,FSD1(110,111)LOCK 
***       FSD37 - RESTORE LEVEL II SELF DIAGNOSTICS 
**
*         FSD37 - RESTORE LEVEL II SELF DIAGNOSTICS 
*         ----------------------------------------- 
* 
* 
*    1.1  PURPOSE - 
*         FSD37 WRITES THE LEVEL II SELF DIAGNOSTICS ONTO THE  RESERVED 
*         AREA OF THE ASSIGNED DISK FROM THE MALET SCRATCH FILE.
* 
* 
*    1.2  METHOD -
*         1.  DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE. 
* 
*         2.  CALL FSD98G TO CHECK FOR A VALID MALET SCRATCH FILE.
* 
*         3.  SYSREW THE MALET SCRATCH FILE.
* 
*         4.  SYSRD A 500B WORD BLOCK OF THE MALET SCRATCH FILE.
* 
*         5.  CHECK FOR 77 TABLE AND STRIP OFF WHEN PRESENT.
* 
*         6.  RESERVE THE CONTROL MODULE. 
* 
*         7.  WRITE LEVEL II DIAGNOSTICS TO THE ASSIGNED DISK AND START 
*             CHAINING IN PROGRESS. 
* 
*         8.  SYSRD 500B  WORD BLOCK OF LEVEL II  DIAGNOSTICS  FROM THE 
*             MALET SCRATCH FILE. 
* 
*         9.  REPEAT STEP 7-9 UNTIL 41B BLOCKS OF LEVEL II  DIAGNOSTICS 
*             HAVE BEEN WRITTEN ONTO THE RESERVED AREA OF THE  ASSIGNED 
*             DISK. 
* 
*        10.  RESET WORD COUNT TO 300B WORDS FOR THE LAST BLOCK OF  THE 
*             LEVEL II DIAGNOSTICS. 
* 
*        11.  SYSWR THE 42B BLOCK OF  LEVEL II DIAGNOSICS ONTO  THE RE- 
*             SERVED AREA OF THE ASSIGNED DISK. 
* 
*        12.  CHECK THE SCRATCH FILE BLOCK COUNTER = 42B BLOCKS OF LEVEL
*             II DIAGNOSTICS AND THE SYSRD STATUS = END OF RECORD.
* 
*        13.  CHECK FOR ABNORMAL GENERAL STATUS.
* 
*        14.  RELEASE CONTROL MODULE. 
* 
* 
/ 
* 
*    2.1  ERRORS REPORTED - 
*         SYSRD BLOCK COUNT ERROR 
*         SYSRD STATUS ERROR
* 
*    2.2  EXIT -
*         FSD37 ERROR EXITS TO MODULE FSD98A TO PROCESS COMMAND ABORTS. 
* 
*    2.3  SUBMODULES REFERENCED - 
*         FSD98A - POST COMMAND ABORT ERROR DISPLAY 
*         FSD98G - COS AND LEV II DIAG SCRATCH FILE CHECK 
* 
*    2.4  REGISTERS USED -
*         B0  - LEVEL II DIAGNOSTICS BLOCK COUNT
*         B1  - ERROR ABORT INDEX 
*         B2  - MODULE ERROR COUNT
*         B3  - DISPLAY LINE NUMBER 
*         B13 - 77 TABLE WORD COUNT 
*         B15 - SYSRD STATUS
*         AL  - STANDARD USAGE. 
* 
*    2.5  BUFFERS USED -
*         IB  IS USED TO STRIP OFF THE 77 TABLE FROM THE CONTROL MODULE 
*         LEVEL II DIAGNOSTICS. 
* 
* 
/------------------DATA DIVISION----------------------------
* 
0  FORMAT FSD - ISD SUBSYSTEM MONITOR/UTILTIY 
1  FORMAT FSD37 - RESTORE LEVEL II SELF DIAGNOSTICS 
2  FORMAT RESTORING--*OB BLOCKS OF LEV II DIAG TO FSD DISK
3  FORMAT SYSRD BLOCK COUNT ERROR, EXP=42B  ACT=*OB 
4  FORMAT SYSRD STATUS ERROR, EXPECTED=01B ACTUAL=*OB 
5  FORMAT LEVEL II DIAG RESTORED ONTO FSD SUBSYSTEM DISK
6  FORMAT //FSD37 - ERRORS(S) = *DEC(10)
* 
/------------------COMMAND EQUATES--------------------------
* 
   EQUATE CRES=1, CSGEN=3, CSDET=4, CREL=6, CWDC=15, CWD=16 
* 
/------------------CHECK COS SCRATCH FILE-------------------
* 
20 B6 = 1                    *LEV II DIAG SCRATCH FILE INDEX
   CALL 98G                  *CHECK FOR A VALID SCRATCH FILE
* 
/------------------INITIALIZATION---------------------------
* 
   MSG 1 TO DISPLAY, PRINT   *DISPLAY MODULE RUNNING MESSAGE
   B0 = 1                    *COS BLOCK COUNT 
   B3 = 3                    *DISPLAY LINE NUMBER 
   B15= 0                    *SYSRD STATUS
   WC = 500B
* 
/------------------RESTORE COMMAND OPERATING SYSTEM---------
* 
30 SYSREW                    *REWIND MALET SCRATCH FILE 
   SYSRD, STATUS TO B15      *READ THE SCRATCH FILE 
   IF(IB.NE.7700B) GOTO 36   *IF NO 77 TABLE
   B13 = 1                   *IF 77 TABLE PRESENT 
   WC = 360B
   COPY IB(120B) TO IB(0) FOR WC  *STRIP OFF 77 TABLE 
36 B1 = CRES                 *COMMAND .RES. 
   RES COMOD, ABT 70
   B1 = CWDC                 *COMMAND .WRITECD DIAG CHAIN.
40 WRITECD DIAG CHAIN, ABT 70 
   MSG 2 (B0) TO DISPLAY     *DISPLAY BLOCK COUNT 
   WC = 500B
   SYSRD, STATUS TO B15 
   GOTO 40 WHILE(B0+1.LE.41B)   *DIAG BLOCKS TO RESTORE 
   IF(B13.EQ.1) WC = 420B    *WC OF 42B BLOCK WITH 77 TABLE 
   IF(B13.EQ.0) WC = 300B    *WC OF 42B BLOCK WITHOUT 77 TABLE
* 
   B1 = CWD                  *COMMAND .WRITECD DIAG.
   WRITECD DIAG, ABT 70 
   MSG 2 (B0) TO DISPLAY     *DIAG BLOCKS READ
   IF(B0.EQ.42B) GOTO 42     *IF SYSRD BLOCK COUNT GOOD 
   IF(B0.EQ.41B) GOTO 42     *IF SYSRD BLOCK COUNT GOOD 
   MSG 3 (B0) TO LINE B3     *SYSRD BLOCK CNT ERROR 
   B3 = B3+1
   GOTO 60
* 
42 SYSRD, STATUS TO B15 
   IF(B15.EQ.1) GOTO 50      *IF SYSRD STATUS EOR 
   IF(B15.EQ.2) GOTO 50      *IF SYSRD STATUS EOI 
   MSG 4 (B15) TO LINE B3    *SYSRD STATUS ERROR
   B3 = B3+1
   B1 = CRES                 *COMMAND .RESERVE. 
   RES COMOD, ABT 70
   GOTO 60
* 
50 B1 = CRES                 *COMMAND .RES COMOD. 
   RES COMOD, ABT 70
   B1 = CSGEN                *COMMAND .STATUS GENERAL.
   STATUS GENERAL, ABT 70 
   IF(SB.NE.0) GOTO 60       *PROVIDE STATUS INFORMATION
   MSG 0 TO LINE 1
   MSG 1 TO LINE 2
   MSG 5 TO LINE B3          *DISPLAY DIAG RESTORED 
   MSG 5 TO PRINT 
   B1 = CREL                 *COMMAND .REL. 
   REL, ABT 70
   GOTO 77
* 
/------------------PROCESS MODULE ERRORS--------------------
* 
60 B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1
   MSG 1 TO LINE 2           *DISPLAY MODULE TITLE
   B1 = CSDET                *COMMAND .STATUS DETAIL. 
   STATUS DETAIL, ABT 70
   CALL 98E                  *CALL STATUS DISPLAY 
   B1 = 6 
   GOTO 77
* 
/------------------PROCESS COMMAND ABORTS-------------------
* 
70 B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1           *DISPLAY MODULE TITLE
   MSG 1 TO LINE 2
   CALL 98A                  *CALL ABORT ERROR PROCESSOR
   B1 = 6 
77 IF(B2.NE.0) MSG B1 (B2) TO DAYFILE  *REPORT ERRORS 
   END 20                    *END OF THE MODULE 
COMPILE                      *FSD37 RESTORE LEVEL II SELF DIAGNOSTICS 
   MODULE FSD39,FSD1(110,111)LOCK 
***       FSD39 - COPY CONTROLWARE TO DISK
**
*         FSD39 - COPY CONTROLWARE TO DISK
*         --------------------------------
* 
* 
*    1.1  PURPOSE - 
*         FSD39  WRITES  THE ADAPTER CONTROLWARE (MA462-D) ONTO THE RE- 
*         SERVED AREA OF THE ASSIGNED DISK FROM THE MALET SCRATCH FILE. 
* 
* 
*    1.2  METHOD -
*         1.  DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE. 
* 
*         2.  SYSREW THE MALET SCRATCH FILE.
* 
*         3.  SYSRD A 500B WORD BLOCK OF THE MALET SCRATCH FILE.
* 
*         4.  CHECK FOR 77 TABLE AND STRIP OFF WHEN PRESENT.
* 
*         5.  RESERVE THE CONTROL MODULE. 
* 
*         6.  WRITE ADAPTER CONTROLWARE TO THE ASSIGNED DISK AND  START 
*             CHAINING. 
* 
*         7.  SYSRD  500B WORD  BLOCK OF ADAPTER  CONTROLWARE FROM  THE 
*             MALET SCRATCH FILE. 
* 
*         8.  REPEAT STEPS 6-8 UNTIL SYSRD STATUS IS END OF RECORD. 
* 
*         9.  WRITE THE LAST BLOCK OF ADAPTER CONTROLWARE ON TO THE RE- 
*             SERVED AREA OF THE ASSIGNED DISK. 
* 
*        10.  CHECK FOR ABNORMAL GENERAL STATUS.
* 
*        11.  RELEASE CONTROL MODULE. 
* 
* 
/ 
*    2.1  ERRORS REPORTED - 
*         SYSRD STATUS ERROR
* 
*    2.2  EXIT -
*         FSD39 ERROR EXITS TO MODULE FSD98A TO PROCESS COMMAND ABORTS. 
* 
*    2.3  SUBMODULES REFERENCED - 
*         FSD98A - POST COMMAND ABORT ERROR DISPLAY 
* 
*    2.4  REGISTERS USED -
*         B1  - ERROR ABORT INDEX 
*         B2  - MODULE ERROR COUNT
*         B3  - DISPLAY LINE NUMBER 
*         B15 - SYSRD STATUS
*         AL  - STANDARD USAGE. 
* 
*    2.5  BUFFERS USED -
*         IB  IS  USED  TO  STRIP OFF THE 77 TABLE FROM THE ADAPTER CON 
*         TROLWARE. 
* 
* 
/------------------DATA DIVISION----------------------------
* 
0  FORMAT FSD - ISD SUBSYSTEM MONITOR/UTILTIY 
1  FORMAT FSD39 - COPY CONTROLWARE TO DISK
2  FORMAT RESTORING--*OB BLOCKS OF MA462-D CNTWR TO FSD DISK
3  FORMAT CNTWR RESTORE ABORT, EMPTY OR MISSING SCRATCH FILE
4  FORMAT ADAPTER CNTWR RESTORE ABORT, SYSRD=*OB GS=*OCTB 
5  FORMAT MA462-D CNTWR RESTORED ONTO FSD SUBSYSTEM DISK
6  FORMAT //FSD39 - ERRORS(S) = *DEC(10)
* 
/------------------COMMAND EQUATES--------------------------
* 
   EQUATE CRES=1, CSGEN=3, CSDET=4, CREL=6, CWCC=17, CWC=25 
* 
/------------------INITIALIZATION---------------------------
* 
20 MSG 1 TO DISPLAY, PRINT   *DISPLAY MODULE RUNNING MESSAGE
   B3 = 3                    *DISPLAY LINE NUMBER 
   B15= 0                    *SYSRD STATUS
   WC = 500B
* 
/------------------RESTORE ADAPTER CONTROLWARE--------------
* 
30 SYSREW                    *REWIND MALET SCRATCH FILE 
   SYSRD, STATUS TO B15      *READ THE SCRATCH FILE 
   IF(B15.NE.2) GOTO 32      *IF NOT EOI ON FIRST READ
   MSG 0 TO LINE 1
   MSG 1 TO LINE 2
   MSG 3 TO LINE B3          *MSG EMPTY/MISSING SCR FILE
   MSG 3 TO PRINT 
   GOTO 77
* 
32 IF(IB.NE.7700B) GOTO 34   *IF NO 77 TABLE
   WC = 360B
   COPY IB(120B) TO IB(0) FOR WC   *STRIP OFF 77 TABLE
34 B1 = CRES                 *COMMAND .RES. 
   RES COMOD, ABT 70
   B1 = CWCC                 *COMMAND .WRITECD CNTWR CHAIN. 
40 WRITECD CNTWR CHAIN, ABT 70
   WC = 500B
   SYSRD, STATUS TO B15 
   IF(B15.EQ.1) GOTO 42      *IF STATUS END OF RECORD 
   B0 = B0+1                 *INCREMENT BLOCKS READ 
   MSG 2 (B0) TO DISPLAY     *DISPLAY BLOCK COUNT 
   GOTO 40                   *UNTIL SYSRD STATUS = EOI
* 
42 WC = WT                   *WC OF LAST BLOCK READ 
   B1 = CWC                  *COMMAND .WRITECD CNTWR. 
   WRITECD CNTWR, ABT 70
50 B1 = CSGEN                *COMMAND .STATUS GENERAL.
   STATUS GENERAL, ABT 70 
   IF(SB.NE.0) GOTO 60       *PROVIDE STATUS INFORMATION
   MSG 0 TO LINE 1
   MSG 1 TO LINE 2
   MSG 5 TO LINE B3          *MSG ADAPTER CNTWR RESTORED
   MSG 5 TO PRINT 
   B1 = CREL                 *COMMAND .REL. 
   REL, ABT 70
   GOTO 77
* 
/------------------PROCESS MODULE ERRORS--------------------
* 
60 B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1
   MSG 1 TO LINE 2           *DISPLAY MODULE TITLE
   MSG 4 (B15,SB) TO LINE B3  *MSG ADAPTER CNTWR ABORT
   B3 = B3+1
   B1 = CSDET                *COMMAND .STATUS DETAIL. 
   STATUS DETAIL, ABT 70
   CALL 98E                  *CALL STATUS DISPLAY 
   B1 = 6 
   GOTO 77
* 
/------------------PROCESS COMMAND ABORTS-------------------
* 
70 B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1           *DISPLAY MODULE TITLE
   MSG 1 TO LINE 2
   CALL 98A                  *CALL ABORT ERROR PROCESSOR
   B1 = 6 
77 IF(B2.NE.0) MSG B1 (B2) TO DAYFILE  *REPORT ERRORS 
   END 20                    *END OF THE MODULE 
COMPILE                      *FSD39 COPY CONTROLWARE TO DISK
   MODULE FSD41,FSD1(110,111)LOCK 
***       FSD41 - POWER ON FSD SPINDLE
**
*         FSD41 - POWER ON FSD SPINDLE
*         ----------------------------
* 
* 
*    1.1  PURPOSE - 
*         THIS MODULE  POWERS ON THE ASSIGNED DISK SPINDLE MOTOR.  AS A 
*         RESULT OF WHICH THE LEVEL I SELF DIAGNOSTICS ARE EXECUTED AND 
*         MONITORED.
* 
* 
*    1.2  METHOD -
*         1.  DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE. 
* 
*         2.  RESERVE THE CONTROL MODULE. 
* 
*         3.  DISPLAY WAIT SPIN-UP MESSAGE. 
* 
*         4.  ISSUE THE SPIN-UP COMMAND.  BUSY WAIT FOR SPINDLE SPIN-UP 
*             AND  LEVEL  I  POWER  ON DIAGNOSTICS IS CONTROLLED BY THE 
*             PRODUCT OVERLAY FSD1. 
* 
*         5.  CHECK FOR ABNORMAL GENERAL STATUS.
* 
*         6.  RELEASE THE CONTROL MODULE. 
* 
/ 
*    2.1  ERROR REPORTED -
*         NONE
* 
*    2.2  EXIT -
*         FSD41 ERROR EXITS TO FSD98A FOR COMMAND ABORTS AND TO  FSD97A 
*         TO PROCESS MODULE ERRORS. 
* 
*    2.3  SUBMODULES REFERENCED - 
*         FSD97A - MONITOR ERROR CODE EXTRACTOR 
*         FSD98A - POST COMMAND ABORT ERROR DISPLAY 
* 
*    2.4  REGISTERS USED -
*         B0 - SPIN DELAY CNTR
*         B1 - ERROR ABORT INDEX
*         B2 - MODULE ERROR COUNT 
*         B3 - DISPLAY LINE NUMBER
*         B14- TEMPORARY STORAGE
* 
*    2.5  BUFFERS USED -
*         NONE
* 
* 
/------------------DATA DIVISION----------------------------
* 
0  FORMAT FSD - ISD SUBSYSTEM MONITOR/UTILITY 
1  FORMAT FSD41 - POWER ON FSD SPINDLE
2  FORMAT EXECUTING DISK SPIN-UP AND LEV I POWER ON DIAGS 
3  FORMAT DISK SPIN-UP AND LEVEL I DIAGNOSTICS COMPLETED
4  FORMAT //FSD41 ERROR(S) = *DEC(10) 
* 
/------------------COMMAND EQUATES--------------------------
* 
   EQUATE CRES=1, CSGEN=3, CSDET=4, CREL=6
   EQUATE CSPU = 22 
* 
/------------------INITIALIZATION---------------------------
* 
20 MSG 1 TO DISPLAY, PRINT   *DISPLAY MODULE RUNNING MESSAGE
   B3 = 3        *DISPLAY LINE NUMBER 
* 
/------------------POWER ON FSD SPINDLE---------------------
* 
   MSG 0 TO LINE 1
   MSG 1 TO LINE 2
   MSG 2 TO LINE B3 
   B3 = B3+1
   B1 = CRES                 *COMMAND .RESERVE. 
   RES COMOD, ABT 70
30 B1 = CSPU                 *COMMAND .SPIN UP. 
   SPIN UP, ABT 70
   B1 = CSGEN                *COMMAND .STATUS GENERAL.
   STATUS GENERAL, ABT 70 
   IF(SB.NE.0) GOTO 60       *IF ABNORMAL GEN STAT
   MSG 3 TO LINE B3 
   MSG 3 TO PRINT 
   B1 = CREL                 *COMMAND .RELEASE. 
   REL, ABT 70
   GOTO 77
* 
/------------------PROCESS MODULE ERRORS--------------------
* 
60 B2 = B2+1                 *INCREMENT ERROR COUNT 
   B1 = CSDET                *COMMAND .STATUS DETAIL. 
   STATUS DETAIL, ABT 70
   B14 = 3
   CALL 97A                  *CALL MODULE ERROR PROCESSOR 
   B1 = 4 
   GOTO 77                   *TERMINATE TEST
* 
/------------------PROCESS COMMAND ABORTS-------------------
* 
70 IF(EC.AND.6125.EQ.6125) GOTO 60  *IF ABN GEN STATUS
   B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1           *DISPLAY MODULE TITLE
   MSG 1 TO LINE 2
   B3 = B3+1
   CALL 98A                  *CALL ABORT ERROR PROCESSOR
   B1 = 4 
77 IF(B2.NE.0) MSG B1 (B2) TO DAYFILE  *REPORT ERRORS 
   END 20                    *END OF THE MODULE 
COMPILE                      *FSD41 POWER ON FSD SPINDLE
   MODULE FSD43,FSD1(110,111)LOCK 
***       FSD43 - POWER OFF FSD SPINDLE 
**
*         FSD43 - POWER OFF FSD SPINDLE 
*         ----------------------------- 
* 
* 
*    1.1  PURPOSE - 
*         THIS MODULE POWERS OFF THE ASSIGNED DISK SPINDLE MOTOR. 
* 
* 
*    1.2  METHOD -
*         1.  DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE. 
* 
*         2.  RESERVE THE CONTROL MODULE. 
* 
*         3.  DISPLAY WAIT SPIN-DN MESSAGE. 
* 
*         4.  ISSUE THE SPIN-DN COMMAND.
* 
*         5.  CHECK FOR ABNORMAL GENERAL STATUS.
* 
*         6.  RELEASE THE CONTROL MODULE. 
* 
/ 
*    2.1  ERRORS REPORTED - 
*         NONE
* 
*    2.2  EXIT -
*         FSD43 ERROR EXITS TO FSD98A FOR COMMAND ABORTS AND TO  FSD97A 
*         TO PROCESS MODULE ERRORS. 
* 
*    2.3  SUBMODULES REFERENCED - 
*         FSD97A - MONITOR ERROR CODE EXTRACTOR 
*         FSD98A - POST COMMAND ABORT ERROR DISPLAY 
* 
*    2.4  REGISTERS USED -
*         B0 - SPIN DELAY CNTR
*         B1 - ERROR ABORT INDEX
*         B2 - MODULE ERROR COUNT 
*         B3 - DISPLAY LINE NUMBER
*         B14- TEMPORARY STORAGE
* 
*    2.5  BUFFERS USED -
*         NONE
* 
* 
/------------------DATA DIVISION----------------------------
* 
0  FORMAT FSD - ISD SUBSYSTEM MONITOR/UTILITY 
1  FORMAT FSD43 - POWER OFF FSD SPINDLE 
2  FORMAT EXECUTING DISK SPIN-DN
3  FORMAT DISK SPIN-DN COMPLETED
4  FORMAT //FSD43 ERROR(S) = *DEC(10) 
* 
/------------------COMMAND EQUATES--------------------------
* 
   EQUATE CRES=1, CSGEN=3, CSDET=4, CREL=6
   EQUATE CSPD=23 
* 
/------------------INITIALIZATION---------------------------
* 
20 MSG 1 TO DISPLAY, PRINT   *DISPLAY MODULE RUNNING MESSAGE
   B3 = 3                    *DISPLAY LINE NUMBER 
* 
/------------------POWER OFF FSD SPINDLE--------------------
* 
   MSG 0 TO LINE 1
   MSG 1 TO LINE 2
   MSG 2 TO LINE B3 
   B3 = B3+1
   B1 = CRES                 *COMMAND .RESERVE. 
   RES COMOD, ABT 70
30 B1 = CSPD                 *COMMAND .SPIN DN. 
   SPIN DN, ABT 70
   B1 = CSGEN                *COMMAND .STATUS GENERAL.
   STATUS GENERAL, ABT 70 
   IF(SB.NE.0) GOTO 60       *IF ABNORMAL GEN STAT
   MSG 3 TO LINE B3 
   MSG 3 TO PRINT 
   B1 = CREL                 *COMMAND .RELEASE. 
   REL, ABT 70
   GOTO 77
* 
/------------------PROCESS MODULE ERRORS--------------------
* 
60 B2 = B2+1                 *INCREMENT ERROR COUNT 
   B1 = CSDET                *COMMAND .STATUS DETAIL. 
   STATUS DETAIL, ABT 70
   B14 = 3
   CALL 97A                  *CALL MODULE ERROR PROCESSOR 
   B1 = 4 
   GOTO 77                   *TERMINATE TEST
* 
/------------------PROCESS COMMAND ABORTS-------------------
* 
70 IF(EC.AND.6125.EQ.6125) GOTO 60  *IF ABN GEN STATUS
   B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1           *DISPLAY MODULE TITLE
   MSG 1 TO LINE 2
   B3 = B3+1
   CALL 98A                  *CALL ABORT ERROR PROCESSOR
   B1 = 4 
77 IF(B2.NE.0) MSG B1 (B2) TO DAYFILE  *REPORT ERRORS 
   END 20                    *END OF THE MODULE 
COMPILE                      *FSD43 POWER OFF FSD SPINDLE 
   MODULE FSD45,FSD1(110,111)LOCK 
***       FSD45 - AUTOLOAD CONTROLWARE AND COS FROM DISK
**
*         FSD45 - AUTOLOAD CONTROLWARE AND COS FROM DISK
*         ----------------------------------------------
* 
* 
*    1.1  PURPOSE - 
*         FSD45  AUTOLOADS THE ADAPTER WITH CONTROLWARE AND THE CONTROL 
*         MODULE  WITH  COS.  THIS IS ACCOMPLISHED BY FIRST LOADING THE 
*         CM WITH COS AND THEN LOADING THE ADAPTER WITH CONTROLWARE. AS 
*         A  RESULT  OF AUTOLOADING, SELF DIAGNOSTICS ARE INVOKED, MON- 
*         ITORED, AND ERRORS DETECTED WILL BE REPORTED BY THIS MODULE.
* 
* 
*    1.2  METHOD -
*         1.  DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE. 
* 
*         2.  RESERVE THE ADAPTER.
* 
*         3.  ISSUE  THE AUTOLD FROM DISK FUNCTION. THE AUTOLD FUNCTION 
*             PERFORMS ALL OF THE SEEK POSITIONING, READS AND SELF DIAG 
*             EXECUTION.
* 
*         4.  CHECK FOR ABNORMAL GENERAL STATUS.
* 
*         5.  RELEASE THE ADAPTER.
* 
/ 
*    2.1  ENTRY - 
*         THE ASSUMPTION IS MADE THAT CONTROLWARE AND COS RESIDES ON THE
*         ASSIGNED DISK.
* 
*    2.2  EXIT -
*         FSD45 ERROR EXITS TO FSD98A FOR COMMAND ABORTS AND TO  FSD97A 
*         TO PROCESS MODULE ERRORS. 
* 
*    2.3  SUBMODULES REFERENCED - 
*         FSD97A - MONITOR ERROR CODE EXTRACTOR 
*         FSD98A - POST COMMAND ABORT ERROR DISPLAY 
* 
*    2.4  REGISTERS USED -
*         B1 - ERROR ABORT INDEX
*         B2 - MODULE ERROR COUNT 
*         B3 - DISPLAY LINE NUMBER
*         B14- TEMPORARY STORAGE
* 
*    2.5  BUFFERS USED -
*         NONE
* 
* 
/------------------DATA DIVISION----------------------------
* 
0  FORMAT FSD - ISD SUBSYSTEM MONITOR/UTILITY 
1  FORMAT FSD45 - AUTOLOAD CONTROLWARE AND COS FROM DISK
2  FORMAT EXECUTING AUTOLOAD OF CNTWR AND COS FROM DISK 
3  FORMAT AUTOLOADING OF CONTROLWARE AND COS COMPLETED
4  FORMAT //FSD45 ERROR(S) = *DEC(10) 
* 
/------------------COMMAND EQUATES--------------------------
* 
   EQUATE CRES=1, CSGEN=3, CREL=6 
   EQUATE CADSK=32
* 
/------------------INITIALIZATION---------------------------
* 
20 MSG 1 TO DISPLAY, PRINT   *DISPLAY MODULE RUNNING MESSAGE
   B3 = 3        *DISPLAY LINE NUMBER 
* 
/------------------AUTOLD CNTWR AND COS---------------------
* 
   MSG 0 TO LINE 1
   MSG 1 TO LINE 2
   MSG 2 TO LINE B3 
   B3 = B3+1
   B1 = CRES                 *COMMAND .RESERVE. 
   RES ADAPT, ABT 70
30 B1 = CADSK                *COMMAND .AUTOLD DISK. 
   AUTOLD DISK, ABT 70
   B1 = CSGEN                *COMMAND .STATUS GENERAL.
   STATUS GENERAL, ABT 70 
   IF(SB.NE.0) GOTO 60       *IF ABNORMAL GEN STAT
   MSG 3 TO LINE B3 
   MSG 3 TO PRINT 
   B1 = CREL                 *COMMAND .RELEASE. 
   REL, ABT 70
   GOTO 77
* 
/------------------PROCESS MODULE ERRORS--------------------
* 
60 B2 = B2+1                 *INCREMENT ERROR COUNT 
   B14 = 3
   CALL 97A                  *CALL MODULE ERROR PROCESSOR 
   B1 = 4 
   GOTO 77                   *TERMINATE TEST
* 
/------------------PROCESS COMMAND ABORTS-------------------
* 
70 IF(EC.AND.6125.EQ.6125) GOTO 60  *IF ABN GEN STATUS
   B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1           *DISPLAY MODULE TITLE
   MSG 1 TO LINE 2
   B3 = B3+1
   CALL 98A                  *CALL ABORT ERROR PROCESSOR
   B1 = 4 
77 IF(B2.NE.0) MSG B1 (B2) TO DAYFILE  *REPORT ERRORS 
   END 20                    *END OF THE MODULE 
COMPILE                    *FSD45 AUTOLOAD CONTROLWARE AND COS FROM DISK
   MODULE FSD47,FSD1(110,111)LOCK 
***       FSD47 - AUTOLOAD ADAPTER CONTROLWARE (MA462-D) FROM HOST
**
*         FSD47 - AUTOLOAD ADAPTER CONTROLWARE (MA462-D) FROM HOST
*         --------------------------------------------------------
* 
* 
*    1.1  PURPOSE - 
*         FSD47 AUTOLOADS ADAPTER WITH THE CONTROLWARE CONTAINED IN THE 
*         MALET  SCRATCH  FILE.  AUTOLOADING CONTROLWARE WILL RESULT IN 
*         EXECUTION OF THE SELF DIAGNOSTICS. FSD47 WILL MONITOR THE EX- 
*         ECUTION OF THE DIAGNOSTICS AND REPORT ANY ERRORS DETECTED.
* 
* 
*    1.2  METHOD -
*         1.  DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE. 
* 
*         2.  SYSREW THE MALET SCRATCH FILE.
* 
*         3.  SYSRD A 500B WORD BLOCK OF THE MALET SCRATCH FILE.
* 
*         4.  CHECK FOR 77 TABLE AND STRIP OFF WHEN PRESENT.
* 
*         5.  RESERVE THE ADAPTER.
* 
*         6.  AUTOLD ADAPTER CONTROLWARE TO THE HOST AND START CHAINING.
* 
*         7.  SYSRD  500B WORD  BLOCK OF ADAPTER  CONTROLWARE FROM  THE 
*             MALET SCRATCH FILE. 
* 
*         8.  REPEAT STEPS 6-8 UNTIL SYSRD STATUS IS END OF RECORD. 
* 
*         9.  AUTOLD THE LAST BLOCK OF ADAPTER CONTROLWARE TO THE HOST. 
* 
*        10.  CHECK FOR ABNORMAL GENERAL STATUS.
* 
*        11.  RELEASE ADAPTER.
* 
* 
/ 
*    2.1  ENTRY - 
*         MA462-D CONTROLWARE MUST BE LOADED INTO THE ASSIGNED MALET SCR
*         FILE. 
* 
*    2.2  EXIT -
*         FSD47 ERROR EXITS TO MODULE FSD97A TO PROCESS MODULE ERRORS.
*         FSD47 ERROR EXITS TO MODULE FSD98A TO PROCESS COMMAND ABORTS. 
* 
*    2.3  SUBMODULES REFERENCED - 
*         FSD97A - MONITOR ERROR CODE EXTRACTOR 
*         FSD98A - POST COMMAND ABORT ERROR DISPLAY 
* 
*    2.4  REGISTERS USED -
*         B1  - ERROR ABORT INDEX 
*         B2  - MODULE ERROR COUNT
*         B3  - DISPLAY LINE NUMBER 
*         B14 - TEMPORARY STORAGE 
*         B15 - SYSRD STATUS
*         AL  - STANDARD USAGE. 
* 
*    2.5  BUFFERS USED -
*         IB  IS  USED  TO  STRIP OFF THE 77 TABLE FROM THE ADAPTER CON 
*         TROLWARE. 
* 
* 
/------------------DATA DIVISION----------------------------
* 
0  FORMAT FSD - ISD SUBSYSTEM MONITOR/UTILTIY 
1  FORMAT FSD47 - AUTOLOAD ADAPTER CONTROLWARE FROM HOST
2  FORMAT AUTOLOADING--*OB BLOCKS OF CNTWR TO ADAPTER RAM 
3  FORMAT CNTWR AUTOLD ABORT, EMPTY OR MISSING SCRATCH FILE 
4  FORMAT ADAPTER CNTWR AUTOLD ABORT, SYSRD=*OB GS=*OCTB
5  FORMAT MA462-D CONTROLWARE AUTOLOADED INTO ADAPTER RAM 
6  FORMAT //FSD47 - ERRORS(S) = *DEC(10)
* 
/------------------COMMAND EQUATES--------------------------
* 
   EQUATE CRES=1, CSGEN=3, CREL=6, CAAC=30, CAA=31
* 
/------------------INITIALIZATION---------------------------
* 
20 MSG 1 TO DISPLAY, PRINT   *DISPLAY MODULE RUNNING MESSAGE
   B3 = 3                    *DISPLAY LINE NUMBER 
   B15= 0                    *SYSRD STATUS
   WC = 500B
* 
/------------------AUTOLOAD ADAPTER CONTROLWARE-------------
* 
30 SYSREW                    *REWIND MALET SCRATCH FILE 
   SYSRD, STATUS TO B15      *READ THE SCRATCH FILE 
   IF(B15.NE.2) GOTO 32      *IF NOT EOI ON FIRST READ
   MSG 1 TO LINE 2
   MSG 3 TO LINE B3          *MSG EMPTY SCRATCH FILE
   MSG 3 TO PRINT 
   GOTO 77
* 
32 IF(IB.NE.7700B) GOTO 34   *IF NO 77 TABLE
   WC = 360B
   COPY IB(120B) TO IB(0) FOR WC   *STRIP OFF 77 TABLE
34 B1 = CRES                 *COMMAND .RES. 
   RES ADAPT, ABT 70
   B1 = CAAC                 *COMMAND .AUTOLD ADHOST CHAIN. 
40 AUTOLD ADHOST CHAIN, ABT 70
   WC = 500B
   SYSRD, STATUS TO B15 
   IF(B15.EQ.1) GOTO 42      *IF STATUS END OF RECORD 
   B0 = B0+1                 *INCREMENT BLOCKS READ 
   MSG 2 (B0) TO DISPLAY     *DISPLAY BLOCK COUNT 
   GOTO 40                   *UNTIL SYSRD STATUS = EOI
* 
42 WC = WT                   *WC OF LAST BLOCK READ 
   B1 = CAA                  *COMMAND .AUTOLD ADHOST. 
   AUTOLD ADHOST, ABT 70
50 B1 = CSGEN                *COMMAND .STATUS GENERAL.
   STATUS GENERAL, ABT 70 
   IF(SB.NE.0) GOTO 60       *PROVIDE STATUS INFORMATION
   MSG 0 TO LINE 1
   MSG 1 TO LINE 2
   MSG 5 TO LINE B3          *MSG ADAPTER CNTWR AUTOLD
   MSG 5 TO PRINT 
   B1 = CREL                 *COMMAND .REL. 
   REL, ABT 70
   GOTO 77
* 
/------------------PROCESS MODULE ERRORS--------------------
* 
60 B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1
   MSG 1 TO LINE 2           *DISPLAY MODULE TITLE
   MSG 4 (B15,SB) TO LINE B3  *MSG ADAPTER AUTOLD ABORT 
   B3 = B3+1
   B14 = 3
   CALL 97A                  *CALL STATUS DISPLAY 
   B1 = 6 
   GOTO 77
* 
/------------------PROCESS COMMAND ABORTS-------------------
* 
70 IF(EC.AND.6125.EQ.6125) GOTO 60  *IF ABN GEN STATUS
   B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1           *DISPLAY MODULE TITLE
   MSG 1 TO LINE 2
   CALL 98A                  *CALL ABORT ERROR PROCESSOR
   B1 = 6 
77 IF(B2.NE.0) MSG B1 (B2) TO DAYFILE  *REPORT ERRORS 
   END 20                    *END OF THE MODULE 
COMPILE                    *FSD47 AUTOLOAD ADAPTER CONTROLWARE FROM HOST
   MODULE FSD51,FSD1(110,111)LOCK 
***       FSD51 - AUTOLOAD CONTROL MODULE FROM HOST 
**
*         FSD51 - AUTOLOAD CONTROL MODULE FROM HOST 
*         ----------------------------------------- 
* 
* 
*    1.1  PURPOSE - 
*         FSD51  AUTOLOADS  THE  CONTROL MODULE WITH COS FROM THE MALET 
*         SCRATCH FILE. AUTOLOADING COS RESULTS IN THE EXECUTION OF THE 
*         LEVEL I SELF DIAGNOSTICS. FSD51 WILL MONITOR THE EXECUTION OF 
*         THE DIAGNOSTICS AND REPORT ANY ERRORS DETECTED. 
* 
* 
*    1.2  METHOD -
*         1.  DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE. 
* 
*         2.  CALL FSD98G TO CHECK FOR A VALID MALET SCRATCH FILE.
* 
*         3.  SYSREW THE MALET SCRATCH FILE.
* 
*         4.  SYSRD A 500B WORD BLOCK OF THE MALET SCRATCH FILE.
* 
*         5.  CHECK FOR 77 TABLE AND STRIP OFF WHEN PRESENT.
* 
*         6.  RESERVE THE CONTROL MODULE. 
* 
*         7.  AUTOLD COS TO THE CONTROL MODULE AND START CHAINING.
* 
*         8.  SYSRD 500B WORD BLOCK OF COS FROM THE MALET SCRATCH FILE. 
* 
*         9.  REPEAT STEP 7-9 UNTIL 40B BLOCKS OF COS HAS BEEN  WRITTEN 
*             TO THE CONTROL MODULE RAM.
* 
*        10.  SET WC = 300B FOR THE LAST BLOCK OF COS READ. 
* 
*        11.  AUTOLD THE 41B BLOCK OF COS TO THE CONTROL MODULE RAM.
* 
*        12.  CHECK FOR ABNORMAL GENERAL STATUS.
* 
*        13.  RELEASE CONTROL MODULE. 
* 
* 
/ 
* 
*    2.1  ENTRY - 
*         COMMAND OPERATING SYSTEM LOADED INTO THE ASSIGNED MALET  SCR
*         FILE. 
* 
*    2.2  EXIT -
*         FSD51 ERROR EXITS TO MODULE FSD97A TO PROCESS MODULE ERRORS.
*         FSD51 ERROR EXITS TO MODULE FSD98A TO PROCESS COMMAND ABORTS. 
* 
*    2.3  SUBMODULES REFERENCED - 
*         FSD97A - MONITOR ERROR CODE EXTRACTOR 
*         FSD98A - POST COMMAND ABORT ERROR DISPLAY 
*         FSD98G - COS AND LEV II DIAG SCRATCH FILE CHECK 
* 
*    2.4  REGISTERS USED -
*         B0  - COS BLOCK COUNT 
*         B1  - ERROR ABORT INDEX 
*         B2  - MODULE ERROR COUNT
*         B3  - DISPLAY LINE NUMBER 
*         B13 - 77 TABLE WORD COUNT 
*         B14 - TEMPORARY STORAGE 
*         B15 - SYSRD STATUS
*         AL  - STANDARD USAGE. 
* 
*    2.5  BUFFERS USED -
*         IB IN USED TO STRIP OFF THE 77 TABLE FROM THE COMMAND OPERAT- 
*         ING SYSTEM. 
* 
* 
/------------------DATA DIVISION----------------------------
* 
0  FORMAT FSD - ISD SUBSYSTEM MONITOR/UTILTIY 
1  FORMAT FSD51 - AUTOLOAD CONTROL MODULE FROM HOST 
2  FORMAT AUTOLOADING--*OB BLOCKS OF COS TO CM SUBSYSTEM RAM
3  FORMAT COS AUTOLOADED INTO CONTROL MODULE SUBSYSTEM RAM
4  FORMAT //FSD51 - ERRORS(S) = *DEC(10)
* 
/------------------COMMAND EQUATES--------------------------
* 
   EQUATE CRES=1, CSGEN=3, CSDET=4, CREL=6, CACC=26 
   EQUATE CAC=27
* 
/------------------CHECK COS SCRATCH FILE-------------------
* 
20 B6 = 0                    *SCRATCH FILE INDEX
   CALL 98G                  *CHECK FOR A VALID SCRATCH FILE
* 
/------------------INITIALIZATION---------------------------
* 
   MSG 1 TO DISPLAY, PRINT   *DISPLAY MODULE RUNNING MESSAGE
   B0 = 1                    *COS BLOCK COUNT 
   B3 = 3                    *DISPLAY LINE NUMBER 
   B15= 0                    *SYSRD STATUS
   WC = 500B
* 
/------------------AUTOLD COMMAND OPERATING SYSTEM--------- 
* 
30 SYSREW                    *REWIND MALET SCRATCH FILE 
   SYSRD, STATUS TO B15      *READ THE SCRATCH FILE 
   IF(IB.NE.7700B) GOTO 36   *IF NO 77 TABLE
   B13 = 1                   *IF 77 TABLE PRESENT 
   WC = 360B
   COPY IB(120B) TO IB(0) FOR WC  *STRIP OFF 77 TABLE 
36 B1 = CRES                 *COMMAND .RES. 
   RES COMOD, ABT 70
   B1 = CACC                 *COMMAND .AUTOLD CMHOST CHAIN. 
40 AUTOLD CMHOST CHAIN, ABT 70
   MSG 2 (B0) TO DISPLAY     *DISPLAY BLOCK COUNT 
   WC = 500B
   SYSRD, STATUS TO B15 
   GOTO 40 WHILE(B0+1.LE.41B)   *COS BLOCKS TO AUTOLD 
   IF(B13.EQ.1) WC = 420B    *WC OF 42B BLOCK WITH 77 TABLE 
   IF(B13.EQ.0) WC = 300B    *WC OF 42B BLOCK WITHOUT 77 TABLE
* 
   B1 = CAC                  *COMMAND .AUTOLD CMHOST. 
   AUTOLD CMHOST, ABT 70
   B1 = CSGEN                *COMMAND .STATUS GENERAL.
   STATUS GENERAL, ABT 70 
   IF(SB.NE.0) GOTO 60       *PROVIDE STATUS INFORMATION
   MSG 0 TO LINE 1
   MSG 1 TO LINE 2
   MSG 3 TO LINE B3          *DISPLAY COS AUTOLOADED
   MSG 3 TO PRINT 
   B1 = CREL                 *COMMAND .REL. 
   REL, ABT 70
   GOTO 77
* 
/------------------PROCESS MODULE ERRORS--------------------
* 
60 B2 = B2+1                 *INCREMENT ERROR COUNT 
   B1 = CSDET                *COMMAND .STATUS DETAIL. 
   STATUS DETAIL, ABT 70
   B14 = 3
   CALL 97A                  *CALL ERROR CODE EXTRACTOR 
   B1 = 4 
   GOTO 77
* 
/------------------PROCESS COMMAND ABORTS-------------------
* 
70 IF(EC.AND.6125.EQ.6125) GOTO 60  *IF ABN GEN STATUS
   B2 = B2+1                 *INCREMENT ERROR COUNT 
   MSG 0 TO LINE 1           *DISPLAY MODULE TITLE
   MSG 1 TO LINE 2
   CALL 98A                  *CALL ABORT ERROR PROCESSOR
   B1 = 4 
77 IF(B2.NE.0) MSG B1 (B2) TO DAYFILE  *REPORT ERRORS 
   END 20                    *END OF THE MODULE 
COMPILE                      *FSD51 AUTOLOAD CONTROL MODULE FROM HOST 
   MODULE FSD89A,FSD1(110,111)LOCK
***  FSD89A - SYSTEM INTERVENTION STATUS
**
*    1.0  EXTERNAL MODULE DOCUMENTATION 
* 
*    1.1  PURPOSE 
* 
*         THIS MODULE DISPLAYS THE SYSTEM INTERVENTION
*         STATUS. 
* 
*    1.2  METHOD
* 
*         1.  READ THE ERROR CODE FROM THE B4 REGISTER. 
*         2.  DISPLAY THE SYSTEM INTERVENTION STATUS. 
* 
*    1.3  ERROR REPORTED - NONE 
* 
  
*    2.0  INTERNAL MODULE DOCUMENTATION 
* 
*    2.1  ENTRY CONDITIONS
* 
*         THE B4 REGISTER CONTAINS THE ERROR CODE.
* 
*    2.2  REGISTER AND BUFFER USAGE 
* 
*         B1 = MODULE NUMBER
*         B4 = OCTAL ERROR CODE 
* 
*    2.3  SUBMODULES USED - NONE
* 
* 
* ------------------DATA DIVISION---------------------------
* 
0  FORMAT FSD - ISD SUBSYTEM MONITOR/UTILITY
1  FORMAT FSD89A - SYSTEM INTERVENTION STATUS DISPLAY 
3  FORMAT          SYSTEM INTERVENTION CODE = *H (H)
4  FORMAT             STATUS DESCRIPTION
5  FORMAT       SEEK ERROR
6  FORMAT       UNABLE TO READ HEADER (READ CYCLE)
7  FORMAT       UNABLE TO READ DATA 
10 FORMAT       UNABLE TO READ HEADER (WRITE CYCLE) 
11 FORMAT       NO SPARE RECORDS AVAILABLE
12 FORMAT       SOFTWARE WRITE PROTECT ERROR
13 FORMAT       BOOTSTRAP LOAD REQUIRED 
14 FORMAT       DEVICE NOT FORMATTED
15 FORMAT       SPINDLE POWERED UP
16 FORMAT       ERROR LOG FULL (BUFFER) 
17 FORMAT       ERROR LOG FULL (HISTORY)
20 FORMAT     ENTER -GO- FOR STATUS DISPLAYS
* 
* ------------------INITIALIZATION--------------------------
* 
25 B1 = 89                           *MODULE NUMBER 
   MSG 0 TO LINE 0
   MSG 1 TO LINE 1
   MSG 3 (B4) TO LINE 3 
   MSG 4 TO LINE 5
* 
* ------------------TEST------------------------------------
* 
30 IF (B4 NE 41B) GOTO 32 
   MSG 5 TO LINE 7
   GOTO 70
* 
32 IF (B4 NE 101B) GOTO 34
   MSG 6 TO LINE 7
   GOTO 70
* 
34 IF (B4 NE 103B) GOTO 36
   MSG 7 TO LINE 7
   GOTO 70
* 
36 IF (B4 NE 141B) GOTO 40
   MSG 10 TO LINE 7 
   GOTO 70
* 
40 IF (B4 NE 144B) GOTO 42
   MSG 11 TO LINE 7 
   GOTO 70
* 
42 IF (B4 NE 145B) GOTO 44
   MSG 12 TO LINE 7 
   GOTO 70
* 
44 IF (B4 NE 201B) GOTO 46
   MSG 13 TO LINE 7 
   GOTO 70
* 
46 IF (B4 NE 202B) GOTO 50
   MSG 14 TO LINE 7 
   GOTO 70
* 
50 IF (B4 NE 203B) GOTO 52
   MSG 15 TO LINE 7 
   GOTO 70
* 
52 IF (B4 NE 241B) GOTO 54
   MSG 16 TO LINE 7 
   GOTO 70
* 
54 IF (B4 NE 242B) GOTO 74
   MSG 17 TO LINE 7 
   GOTO 70
* 
70 MSG 20 TO LINE 23
   PICTURE
   PAUSE
* 
* -------------------EXIT-----------------------------------
* 
   EXIT TO 98Z
* 
74 EXIT TO 89C
* 
77 END 25 
COMPILE               *FSD89A - SYSTEM INTERVENTION STATUS
   MODULE FSD89C,FSD1(110,111)LOCK
***  FSD89C - SYSTEM INTERVENTION STATUS
**
*    1.0  EXTERNAL MODULE DOCUMENTATION 
* 
*    1.1  PURPOSE 
* 
*         THIS MODULE DISPLAYS THE SYSTEM INTERVENTION
*         STATUS. 
* 
*    1.2  METHOD
* 
*         1.  READ THE ERROR CODE FROM THE B4 REGISTER. 
*         2.  DISPLAY THE SYSTEM INTERVENTION STATUS. 
* 
*    1.3  ERROR REPORTED - NONE 
* 
  
*    2.0  INTERNAL MODULE DOCUMENTATION 
* 
*    2.1  ENTRY CONDITIONS
* 
*         THE B4 REGISTER CONTAINS THE ERROR CODE.
* 
*    2.2  REGISTER AND BUFFER USAGE 
* 
*         B1 = MODULE NUMBER
*         B4 = OCTAL ERROR CODE 
* 
*    2.3  SUBMODULES USED - NONE
* 
* 
* ------------------DATA DIVISION---------------------------
* 
0  FORMAT FSD - ISD SUBSYTEM MONITOR/UTILITY
1  FORMAT FSD89C - SYSTEM INTERVENTION STATUS DISPLAY 
3  FORMAT          SYSTEM INTERVENTION CODE = *H (H)
4  FORMAT             STATUS DESCRIPTION
5  FORMAT       RS232 REQUEST ACTIVE
6  FORMAT       RS232 ACTIVITY TERMINATED 
7  FORMAT       UNABLE TO UPDATE ERROR LOG
10 FORMAT       DIAGNOSTIC FAULT DETECTED (LEVEL I) 
11 FORMAT       COMMAND BLOCK NEGATED 
12 FORMAT       STATUS CODE IS UNDEFINED
20 FORMAT     ENTER -GO- FOR STATUS DISPLAYS
* 
* ------------------INITIALIZATION--------------------------
* 
25 B1 = 89                           *MODULE NUMBER 
   MSG 0 TO LINE 0
   MSG 1 TO LINE 1
   MSG 3 (B4) TO LINE 3 
   MSG 4 TO LINE 5
* 
* ------------------TEST------------------------------------
* 
30 IF (B4 NE 243B) GOTO 32
   MSG 5 TO LINE 7
   GOTO 70
* 
32 IF (B4 NE 244B) GOTO 34
   MSG 6 TO LINE 7
   GOTO 70
* 
34 IF (B4 NE 245B) GOTO 36
   MSG 7 TO LINE 7
   GOTO 70
* 
36 IF (B4 NE 246B) GOTO 38
   MSG 10 TO LINE 7 
   GOTO 70
* 
38 IF (B4 NE 301B) GOTO 40
   MSG 11 TO LINE 7 
   GOTO 70
* 
40 MSG 12 TO LINE 7 
   GOTO 70
* 
70 MSG 20 TO LINE 23
   PICTURE
   PAUSE
* 
* -------------------EXIT-----------------------------------
* 
   EXIT TO 98Z
77 END 25 
COMPILE                 *FSD89C - SYSTEM INTERVENTION STATUS
   MODULE FSD89G,FSD1(110,111)LOCK
***  FSD89G - MANUAL INTERVENTION STATUS
**
*    1.0  EXTERNAL MODULE DOCUMENTATION 
* 
*    1.1  PURPOSE 
* 
*         THIS MODULE DISPLAYS THE MANUAL INTERVENTION
*         STATUS. 
* 
*    1.2  METHOD
* 
*         1.  READ THE ERROR CODE FROM THE B4 REGISTER. 
*         2.  DISPLAY THE MANUAL INTERVENTION STATUS. 
* 
*    1.3  ERROR REPORTED - NONE 
* 
  
*    2.0  INTERNAL MODULE DOCUMENTATION 
* 
*    2.1  ENTRY CONDITIONS
* 
*         THE B4 REGISTER CONTAINS THE ERROR CODE.
* 
*    2.2  REGISTER AND BUFFER USAGE 
* 
*         B1 = MODULE NUMBER
*         B4 = OCTAL ERROR CODE 
* 
*    2.3  SUBMODULES USED - NONE
* 
* 
* ------------------DATA DIVISION---------------------------
* 
0  FORMAT FSD - ISD SUBSYTEM MONITOR/UTILITY
1  FORMAT FSD89G - MANUAL INTERVENTION STATUS DISPLAY 
3  FORMAT          MANUAL INTERVENTION CODE = *H (H)
4  FORMAT             STATUS DESCRIPTION
5  FORMAT       COMMAND BLOCK OVERWRITE 
6  FORMAT       ILLEGAL COMMAND BYTE
7  FORMAT       ILLEGAL SECONDARY SEEK ADDRESS
10 FORMAT       ILLEGAL PRIMARY SEEK ADDRESS
11 FORMAT       I/O ILLEGAL WRITE ERROR 
12 FORMAT       END OF MEDIA REACHED
13 FORMAT       ILLEGAL DEVICE NUMBER 
14 FORMAT       ILLEGAL CONTROL FIELD 
15 FORMAT       ILLEGAL TERMINATION (FORMAT)
16 FORMAT       ISI I/O PARITY ERROR
17 FORMAT       R/W SCHEDULAR PARITY ERROR
20 FORMAT     ENTER -GO- FOR STATUS DISPLAYS
* 
* ------------------INITIALIZATION--------------------------
* 
25 B1 = 89                           *MODULE NUMBER 
   MSG 0 TO LINE 0
   MSG 1 TO LINE 1
   MSG 3 (B4) TO LINE 3 
   MSG 4 TO LINE 5
* 
* ------------------TEST------------------------------------
* 
30 IF (B4 NE 41B) GOTO 32 
   MSG 5 TO LINE 7
   GOTO 70
* 
32 IF (B4 NE 42B) GOTO 34 
   MSG 6 TO LINE 7
   GOTO 70
* 
34 IF (B4 NE 43B) GOTO 36 
   MSG 7 TO LINE 7
   GOTO 70
* 
36 IF (B4 NE 44B) GOTO 40 
   MSG 10 TO LINE 7 
   GOTO 70
* 
40 IF (B4 NE 45B) GOTO 42 
   MSG 11 TO LINE 7 
   GOTO 70
* 
42 IF (B4 NE 47B) GOTO 44 
   MSG 12 TO LINE 7 
   GOTO 70
* 
44 IF (B4 NE 50B) GOTO 46 
   MSG 13 TO LINE 7 
   GOTO 70
* 
46 IF (B4 NE 51B) GOTO 50 
   MSG 14 TO LINE 7 
   GOTO 70
* 
50 IF (B4 NE 52B) GOTO 52 
   MSG 15 TO LINE 7 
   GOTO 70
* 
52 IF (B4 NE 53B) GOTO 54 
   MSG 16 TO LINE 7 
   GOTO 70
* 
54 IF (B4 NE 101B) GOTO 74
   MSG 17 TO LINE 7 
   GOTO 70
* 
70 MSG 20 TO LINE 23
   PICTURE
   PAUSE
* 
* -------------------EXIT-----------------------------------
* 
   EXIT TO 98Z
* 
74 EXIT TO 89I
* 
77 END 25 
COMPILE                *FSD89G - MANUAL INTERVENTION STATUS 
   MODULE FSD89I,FSD1(110,111)LOCK
***  FSD89I - MANUAL INTERVENTION STATUS
**
*    1.0  EXTERNAL MODULE DOCUMENTATION 
* 
*    1.1  PURPOSE 
* 
*         THIS MODULE DISPLAYS THE MANUAL INTERVENTION
*         STATUS. 
* 
*    1.2  METHOD
* 
*         1.  READ THE ERROR CODE FROM THE B4 REGISTER. 
*         2.  DISPLAY THE MANUAL INTERVENTION STATUS. 
* 
*    1.3  ERROR REPORTED - NONE 
* 
  
*    2.0  INTERNAL MODULE DOCUMENTATION 
* 
*    2.1  ENTRY CONDITIONS
* 
*         THE B4 REGISTER CONTAINS THE ERROR CODE.
* 
*    2.2  REGISTER AND BUFFER USAGE 
* 
*         B1 = MODULE NUMBER
*         B4 = OCTAL ERROR CODE 
* 
*    2.3  SUBMODULES USED - NONE
* 
* 
* ------------------DATA DIVISION---------------------------
* 
0  FORMAT       NO SLAVE DEVICE RESPONSE
1  FORMAT       UNABLE TO GENERATE DEFECT LOG 
2  FORMAT       UNDEFINED STATUS CODE 
5  FORMAT       MPU PARITY ERROR
6  FORMAT       ECC FAULT 
7  FORMAT       VOLTAGE FAULT (SLAVE DEVICE)
10 FORMAT       INVALID BOOTSTRAP ERROR 
11 FORMAT       DIAGNOSTIC FAULT DETECTED (LEVEL II)
12 FORMAT       SLAVE DEVICE FAULT - DEVICE 0 BIT 0 
13 FORMAT       SLAVE DEVICE FAULT - DEVICE 1 BIT 1 
14 FORMAT       SLAVE DEVICE FAULT - DEVICE 2 BIT 2 
15 FORMAT       SLAVE DEVICE FAULT - DEVICE 3 BIT 3 
16 FORMAT       ILLEGAL SEQUENCE (DRIVE NOT READY)
17 FORMAT       WRITE PROTECTED SLAVE DEVICE ERROR
20 FORMAT     ENTER -GO- FOR STATUS DISPLAYS
* 
* ------------------INITIALIZATION--------------------------
* 
25 B1 = 89                           *MODULE NUMBER 
* 
* ------------------TEST------------------------------------
* 
30 IF (B4 NE 145B) GOTO 32
   MSG 5 TO LINE 7
   GOTO 70
* 
32 IF (B4 NE 146B) GOTO 34
   MSG 6 TO LINE 7
   GOTO 70
* 
34 IF (B4 NE 147B) GOTO 36
   MSG 7 TO LINE 7
   GOTO 70
* 
36 IF (B4 NE 151B) GOTO 40
   MSG 10 TO LINE 7 
   GOTO 70
* 
40 IF (B4 NE 152B) GOTO 42
   MSG 11 TO LINE 7 
   GOTO 70
* 
42 IF (B4 NE 201B) GOTO 44
   MSG 12 TO LINE 7 
   GOTO 70
* 
44 IF (B4 NE 202B) GOTO 46
   MSG 13 TO LINE 7 
   GOTO 70
* 
46 IF (B4 NE 204B) GOTO 50
   MSG 14 TO LINE 7 
   GOTO 70
* 
50 IF (B4 NE 210B) GOTO 52
   MSG 15 TO LINE 7 
   GOTO 70
* 
52 IF (B4 NE 301B) GOTO 54
   MSG 16 TO LINE 7 
   GOTO 70
* 
54 IF (B4 NE 302B) GOTO 56
   MSG 17 TO LINE 7 
   GOTO 70
* 
56 IF (B4 NE 303B) GOTO 60
   MSG 0 TO LINE 7
   GOTO 70
* 
60 IF (B4 NE 304B) GOTO 62
   MSG 1 TO LINE 7
   GOTO 70
* 
62 MSG 2 TO LINE 7
   GOTO 70
* 
70 MSG 20 TO LINE 23
   PICTURE
   PAUSE
* 
* -------------------EXIT-----------------------------------
* 
   EXIT TO 98Z
77 END 25 
COMPILE                *FSD89I - MANUAL INTERVENTION STATUS 
   MODULE FSD89O,FSD1(110,111)LOCK
***  FSD89O - UNDEFINED ERROR CONDITION 
**
*    1.0  EXTERNAL MODULE DOCUMENTATION 
* 
*    1.1  PURPOSE 
* 
*         THIS MODULE DISPLAYS A MESSAGE THAT THE ERROR 
*         PROCESSOR WAS UNABLE TO DETERMINE THE CAUSE OF
*         THE FAILURE.
* 
*    1.2  METHOD
* 
*         1.  DISPLAY THE UNDEFINED ERROR MESSAGE.
* 
*    1.3  ERROR REPORTED - NONE 
* 
  
*    2.0  INTERNAL MODULE DOCUMENTATION 
* 
*    2.1  ENTRY CONDITIONS
* 
*         NONE
* 
*    2.2  REGISTER AND BUFFER USAGE 
* 
*         B1 = MODULE NUMBER
* 
*    2.3  SUBMODULES USED - NONE
* 
* 
* ------------------DATA DIVISION---------------------------
* 
0  FORMAT FSD - ISD SUBSYTEM MONITOR/UTILITY
1  FORMAT FSD89O - UNDEFINED ERROR CONDITION
5  FORMAT       THE CAUSE OF THIS FAILURE IS UNDEFINED. 
6  FORMAT       EXAMINE THE GENERAL AND DETAIL STATUS 
7  FORMAT       TO DETERMINE THE FAILING CONDITION. 
20 FORMAT     ENTER -GO- FOR STATUS DISPLAYS
* 
* ------------------INITIALIZATION--------------------------
* 
25 B1 = 89                           *MODULE NUMBER 
   MSG 0 TO LINE 0
   MSG 1 TO LINE 1
* 
* ------------------TEST------------------------------------
* 
30 MSG 5 TO LINE 7
   MSG 6 TO LINE 10 
   GOTO 70
* 
70 MSG 20 TO LINE 23
   PICTURE
   PAUSE
* 
* -------------------EXIT-----------------------------------
* 
   EXIT TO 98Z
77 END 25 
COMPILE                 *FSD89O - UNDEFINED ERROR CONDITION 
   MODULE FSD90A,FSD1(110,111)LOCK
***  FSD90A - CORRECTIVE ACTION 
**
*    1.0  EXTERNAL MODULE DOCUMENTATION 
* 
*    1.1  PURPOSE 
* 
*         THIS MODULE DISPLAYS THE CORRECTIVE ACTIONS FOR 
*         ALL ADAPTER ERROR CODES.
* 
*    1.2  METHOD
* 
*         1.  READ THE ERROR CODE FROM THE B4 REGISTER. 
*         2.  DISPLAY THE CORRECTIVE ACTION.
* 
*    1.3  ERROR REPORTED - NONE 
* 
  
*    2.0  INTERNAL MODULE DOCUMENTATION 
* 
*    2.1  ENTRY CONDITIONS
* 
*         THE B4 REGISTER CONTAINS THE ERROR CODE.
* 
*    2.2  REGISTER AND BUFFER USAGE 
* 
*         B1 = MODULE NUMBER
*         B4 = OCTAL ERROR CODE 
* 
*    2.3  SUBMODULES USED - NONE
* 
* 
* ------------------DATA DIVISION---------------------------
* 
1  FORMAT FSD - ISD SUBSYSTEM MONITOR/UTILITY 
2  FORMAT FSD90A - IN-LINE DIAGNOSTIC FAILURE DISPLAY 
3  FORMAT              ERROR CODE = *H (H)
4  FORMAT           RECOMMENDED CORRECTIVE ACTION 
5  FORMAT       REPLACE THE ADAPTER BOARD 
20 FORMAT     ENTER -GO- FOR STATUS DISPLAYS
* 
* ------------------INITIALIZATION--------------------------
* 
25 B1 = 90                           *MODULE NUMBER 
* 
* ------------------TEST------------------------------------
* 
30 IF (B5 AND 77B NE 21B) GOTO 32 
   IF (B4 AND 77B EQ 12B) GOTO 70 
   GOTO 60
* 
32 IF (B5 AND 77B NE 22B) GOTO 34 
    IF (B4 AND 77B EQ 13B) GOTO 70
   GOTO 60
* 
34 IF (B5 AND 77B NE 23B) GOTO 36 
   IF (B4 AND 77B EQ 1B) GOTO 70
   GOTO 60
* 
36 IF (B5 AND 77B NE 25B) GOTO 60 
   IF (B4 AND 77B EQ 3B) GOTO 70
   GOTO 60
* 
60 MSG 1 TO LINE 0
   MSG 2 TO LINE 1
   MSG 3 (B4) TO LINE 3 
   MSG 4 TO LINE 5
   MSG 5 TO LINE 7
   GOTO 64
* 
64 MSG 20 TO LINE 23
   PICTURE
   PAUSE
   GOTO 74
* 
* -------------------EXIT-----------------------------------
* 
70 EXIT                         *RETURN TO CALLING MODULE 
* 
74 EXIT TO 98Z
77 END 25 
COMPILE                         *FSD90A - CORRECTIVE ACTION 
   MODULE FSD96K,FSD1(110,111)LOCK
***  FSD96K - FIRST ERROR DISPLAY 
**
*    1.0  EXTERNAL MODULE DOCUMENTATION 
* 
*    1.1  PURPOSE 
* 
*         THIS MODULE DISPLAYS THE ERROR CODE FOR ALL 
*         CORRECTIVE ACTION ERROR MODULES.
* 
*    1.2  METHOD
* 
*         1.  READ THE ERROR CODE FROM THE B4 REGISTER. 
*         2.  DISPLAY THE ERROR CODE. 
* 
*    1.3  ERROR REPORTED - NONE 
* 
  
*    2.0  INTERNAL MODULE DOCUMENTATION 
* 
*    2.1  ENTRY CONDITIONS
* 
*         THE B4 REGISTER CONTAINS THE ERROR CODE.
* 
*    2.2  REGISTER AND BUFFER USAGE 
* 
*         B1 = MODULE NUMBER
*         B2 = MESSAGE AND LINE COUNTER 
*         B4 = OCTAL ERROR CODE 
* 
*    2.3  SUBMODULES USED - NONE
* 
* 
* ------------------DATA DIVISION---------------------------
* 
1  FORMAT FSD - ISD SUBSYSTEM MONITOR/UTILITY 
2  FORMAT FSD96K - IN-LINE DIAGNOSTIC FAILURE DISPLAY 
3  FORMAT             ERROR CODE = *H (H) 
4  FORMAT          RECOMMENDED CORRECTIVE ACTION
5  FORMAT   CM FAILURE ERROR CODE = *H (H)
7  FORMAT       REPLACE TJV OR RVX BOARD (CM SINGLE/DUAL
10 FORMAT                                 CHANNEL I/O)
11 FORMAT       CHECK ISI I/O CABLE FOR CONTINUITY.  IF 
12 FORMAT       PROBLEM WITH CABLE, REPLACE IT. 
13 FORMAT       REPLACE EWN BOARD (CM SCHEDULAR/MEMORY) 
14 FORMAT       REPLACE THE ADAPTER BOARD 
16 FORMAT     CONSULT APPROPRIATE REFERENCE MANUAL
17 FORMAT          FOR DESCRIPTION OF ERROR 
20 FORMAT       ENTER -GO- FOR STATUS DISPLAYS
* 
* ------------------INITIALIZATION--------------------------
* 
25 B1 = 96                           *MODULE NUMBER 
* 
* ------------------TEST------------------------------------
* 
30 MSG 1 TO LINE 0
   MSG 2 TO LINE 1
   IF (B14.NE.4) GOTO 34             *IF NOT ISI TEST 
   B4 = SB(17D).AND.377B
   MSG 5 (B4) TO LINE 3 
   MSG 4 TO LINE 5
   B2=7 
32 MSG B2 TO LINE B2                 *ISI CORRECTIVE ACTION 
   GOTO 32 WHILE (B2+1.LE.14) 
   GOTO 74
34 MSG 3 (B4) TO LINE 3 
   MSG 16 TO LINE 5 
   MSG 17 TO LINE 6 
* 
* -------------------EXIT-----------------------------------
* 
74 MSG 20 TO LINE 23
   PICTURE
   PAUSE
   EXIT TO 98Z
77 END 25 
COMPILE                       *FSD96K - FIRST ERROR DISPLAY 
   MODULE FSD97A,FSD1(110,111)LOCK
***  FSD97A - EXTRACT ERROR CODE MODULE 
**
*    1.0  EXTERNAL MODULE DOCUMENTATION 
* 
*    1.1  PURPOSE 
* 
*         THIS MODULE DETERMINES WHETHER THE FAILURE WAS
*         CAUSED BY AN ADAPTER DIAGNOSTIC FAILURE, A
*         CONTROL MODULE LEVEL I OR LEVEL II DIAGNOSTIC 
*         FAILURE, A SYSTEM OR MANUAL INTERVENTION FAILURE
*         OR AN UNDEFINED FAILURE.  IF THE FAILURE IS 
*         DEFINED, THE ERROR CODE IS EXTRACTED FROM THE 
*         STATUS AND DECODED.  CONTROL IS PASSED TO THE 
*         APPROPRIATE CORRECTIVE ACTION MODULE. 
* 
*    1.2  METHOD
* 
*         1.  EXAMINE THE B14 REGISTER AND DETERMINE WHETHER
*             THIS MODULE WAS CALLED BY AN ADAPTER
*             DIAGNOSTIC A CONTROL MODULE DIAGNOSTIC OR A 
*             UTILITY FUNCTION. 
*         2.  EXTRACT THE ERROR CODE FROM THE STATUS
*             DEPENDING ON WHO CALLED THE MODULE. 
*         3.  EXIT TO THE APPROPRIATE CORRECTIVE ACTION 
*             MODULE. 
* 
*    1.3  ERROR REPORTED - NONE 
* 
  
*    2.0  INTERNAL MODULE DOCUMENTATION 
* 
*    2.1  ENTRY CONDITIONS
* 
*         B14 = CALLING MODULE BIT
*         SB  = GENERAL AND DETAIL STATUS 
*         IB  = ADAPTER PROCESSOR STATUS
* 
*    2.2  REGISTER AND BUFFER USAGE 
* 
*         B1 = MODULE NUMBER
*         B2 = SCRATCH
*         B3 = SCRATCH
*         B4 = OCTAL ERROR CODE 
*         B5 = TEST NUMBER
*         B6 = SUBTEST NUMBER 
*         B14 = CALLING MODULE BIT
*         SB  = GENERAL AND DETAIL STATUS 
* 
*    2.3  SUBMODULES USED - NONE
* 
* 
* ------------------DATA DIVISION---------------------------
* 
2  FORMAT FSD97A - EXTRACT ERROR CODE MODULE
* 
* ------------------INITIALIZATION--------------------------
* 
25 B1 = 97                           *MODULE NUMBER 
* 
* ------------------TEST------------------------------------
* 
30 IF (B14 EQ 1) GOTO 35             *ADAPTER DIAGNOSTIC
   IF (B14 EQ 2) GOTO 40             *CM DIAGNOSTIC 
   IF (B14 EQ 3) GOTO 50             *UTILITY FUNCTION
   IF (B14.EQ.4) GOTO 40             *ISI DIAGNOSTIC
* 
35 B4 = SB(0) AND 0777B              *ADAPTER ERROR CODE
   BLANK DISPLAY
   EXIT TO 90A
* 
40 B2 = SB(9D) AND 0017B             *LEVEL II ERROR CODE 
   B3 = SB(10D) AND 7400B 
   B3 = B3 RS 8D
   B2 = B2 LS 4D
   B4 = B2 OR B3
45 BLANK DISPLAY
   EXIT TO 96K
* 
50 B2 = SB(7D) AND 0100B             *UTILITY FUNCTION
   B3 = SB(7D) AND 0040B
   IF (B2 NE 0) GOTO 55              *SYSTEM INTERVENTION 
   IF (B3 NE 0) GOTO 60              *MANUAL INTERVENTION 
   BLANK DISPLAY
   EXIT TO 89O                       *UNDEFINED FAILURE 
* 
55 B2 = SB(9D) AND 7760B
   B2 = B2 RS 4 
   IF (B2 EQ 246B) GOTO 57           *LEVEL I FAILURE 
   B4 = B2                           *SYSTEM INTERVENTION 
   BLANK DISPLAY                     *       FAILURE
   EXIT TO 89A
* 
57 B4 = SB(8D) AND 0377B             *LEVEL I ERROR CODE
   GOTO 45
* 
60 B2 = SB(10D) AND 0377B            *LEVEL II FAILURE
   IF (B2 EQ 246B) GOTO 40
   B4 = B2                           *MANUAL INTERVENTION 
   BLANK DISPLAY                     *       FAILURE
   EXIT TO 89G
* 
* -------------------EXIT-----------------------------------
* 
77 END 25 
COMPILE                 *FSD97A - EXTRACT ERROR CODE MODULE 
   MODULE FSD98W,FSD1(110,111)LOCK
***  FSD98W - PROCESSOR STATUS THREE DISPLAY
**
*    1.0  EXTERNAL MODULE DOCUMENTATION 
* 
*    1.1  PURPOSE 
* 
*         THIS MODULE DISPLAYS THE I/O PORT REGISTERS AND 
*         THE STATUS, INTERRUPT AND PROGRAM COUNTER 
*         REGISTERS OF THE ADAPTER PROCESSOR. 
* 
*    1.2  METHOD
* 
*         1.  READ THE PROCESSOR STATUS FROM THE IB AND 
*             DISPLAY IT. 
* 
*    1.3  ERROR REPORTED - NONE 
* 
  
*    2.0  INTERNAL MODULE DOCUMENTATION 
* 
*    2.1  ENTRY CONDITIONS
* 
*         THE IB CONTAINS THE PROCESSOR STATUS. 
* 
*    2.2  REGISTER AND BUFFER USAGE 
* 
*         B1 = MODULE NUMBER
*         IB = PROCESSOR STATUS 
* 
*    2.3  SUBMODULES USED - NONE
* 
* 
* ------------------DATA DIVISION---------------------------
* 
0  FORMAT MODULE FSD98W 
1  FORMAT FSD - FSD1 SUBSYSTEM MONITOR/UTILITY
2  FORMAT FSD98W -ADAPTER PROCESSOR STATUS THREE DISPLAY
3  FORMAT           I/O PORT REGISTERS
4  FORMAT              P0 = *H *H(H)
5  FORMAT              P1 = *H *H(H)
6  FORMAT              P2 = *H *H(H)
7  FORMAT              P3 = *H *H(H)
10 FORMAT              P4 = *H *H(H)
11 FORMAT              P5 = *H *H(H)
12 FORMAT     STATUS REGISTER = *H(H) 
13 FORMAT     INTERRUPT REGISTER = *H(H)
14 FORMAT     PROGRAM COUNTER REGISTER = *H *H *H *H(H) 
15 FORMAT     END OF STATUS DISPLAYS
16 FORMAT ------------------------------------------------- 
* 
* ------------------INITIALIZATION--------------------------
* 
25 B1 = 98                          *MODULE NUMBER
   MSG 1 TO LINE 0                  *DISPLAY MAIN TITLE 
   MSG 2 TO LINE 1                  *DISPLAY MODULE TITLE 
* 
* ------------------TEST------------------------------------
* 
30 MSG 3 TO LINE 3                  *REGISTER TITLES
   MSG 4 2 WORDS FROM IB(64D) TO LINE 5         *P0 
   MSG 5 2 WORDS FROM IB(66D) TO LINE 6         *P1 
   MSG 6 2 WORDS FROM IB(68D) TO LINE 7         *P2 
   MSG 7 2 WORDS FROM IB(70D) TO LINE 10        *P3 
   MSG 10 2 WORDS FROM IB(72D) TO LINE 11       *P4 
   MSG 11 2 WORDS FROM IB(74D) TO LINE 12       *P5 
   MSG 12 (IB(76D)) TO LINE 14          *STATUS REGISTER
   MSG 13 (IB(77D)) TO LINE 16          *INTERRUPT REGISTER 
   MSG 14 4 WORDS FROM IB(78D) TO LINE 20  *PROGRAM COUNTER 
   MSG 15 TO LINE 22
   MSG 16 TO LINE 23
   PICTURE
   HALT 
   BLANK DISPLAY
   EXIT 
77 END 25 
COMPILE          *FSD98W - ADAPTER PROCESSOR STATUS DISPLAY 
   MODULE FSD98X,FSD1(110,111)LOCK
***  FSD98X - PROCESSOR STATUS TWO DISPLAY
**
*    1.0  EXTERNAL MODULE DOCUMENTATION 
* 
*    1.1  PURPOSE 
* 
*         THIS MODULE DISPLAYS THE A REGISTER OF THE
*         ADAPTER PROCESSOR.
* 
*    1.2  METHOD
* 
*         1.  READ THE PROCESSOR STATUS FROM THE IB AND 
*             DISPLAY IT. 
* 
*    1.3  ERROR REPORTED - NONE 
* 
  
*    2.0  INTERNAL MODULE DOCUMENTATION 
* 
*    2.1  ENTRY CONDITIONS
* 
*         THE IB CONTAINS THE PROCESSOR STATUS. 
* 
*    2.2  REGISTER AND BUFFER USAGE 
* 
*         B1 = MODULE NUMBER
*         IB = PROCESSOR STATUS 
* 
*    2.3  SUBMODULES USED - NONE
* 
* 
* ------------------DATA DIVISION---------------------------
* 
0  FORMAT MODULE FSD98X 
1  FORMAT FSD - FSD1 SUBSYSTEM MONITOR/UTILITY
2  FORMAT FSD98X -ADAPTER PROCESSOR STATUS TWO DISPLAY
5  FORMAT               A REGISTER
6  FORMAT          A0 = *H *H *H *H(H)
7  FORMAT          A1 = *H *H *H *H(H)
10 FORMAT          A2 = *H *H *H *H(H)
11 FORMAT          A3 = *H *H *H *H(H)
12 FORMAT          A4 = *H *H *H *H(H)
13 FORMAT          A5 = *H *H *H *H(H)
14 FORMAT          A6 = *H *H *H *H(H)
15 FORMAT          A7 = *H *H *H *H(H)
16 FORMAT     ENTER -GO- FOR PROCESSOR STATUS DISPLAY 
* 
* ------------------INITIALIZATION--------------------------
* 
25 B1 = 98                           *MODULE NUMBER 
   MSG 0 TO DISPLAY,PRINT            *POST MODULE NUMBER
   MSG 1 TO LINE 0                   *DISPLAY MAIN TITLE
   MSG 2 TO LINE 1                   *DISPLAY MODULE TITLE
* 
* ------------------TEST------------------------------------
* 
30 MSG 5 TO LINE 3                   *REGISTER TITLES 
   MSG 6 4 WORDS FROM IB(32D) TO LINE 5         *A0 
   MSG 7 4 WORDS FROM IB(36D) TO LINE 6         *A1 
   MSG 10 4 WORDS FROM IB(40D) TO LINE 7        *A2 
   MSG 11 4 WORDS FROM IB(44D) TO LINE 10       *A3 
   MSG 12 4 WORDS FROM IB(48D) TO LINE 11       *A4 
   MSG 13 4 WORDS FROM IB(52D) TO LINE 12       *A5 
   MSG 14 4 WORDS FROM IB(56D) TO LINE 13       *A6 
   MSG 15 4 WORDS FROM IB(60D) TO LINE 14       *A7 
   MSG 16 TO LINE 23                 *NEXT DISPLAY
   PICTURE
   PAUSE
   BLANK DISPLAY
   EXIT TO 98Y
77 END 25 
COMPILE  *FSD98X - ADAPTER PROCESSOR STATUS DISPLAY 
   MODULE FSD98Y,FSD1(110,111)LOCK
***  FSD98Y - PROCESSOR STATUS ONE DISPLAY
**
*    1.0  EXTERNAL MODULE DOCUMENTATION 
* 
*    1.1  PURPOSE 
* 
*         THIS MODULE DISPLAYS THE D REGISTER OF THE
*         ADAPTER PROCESSOR.
* 
*    1.2  METHOD
* 
*         1.  READ THE PROCESSOR STATUS FROM THE IB AND 
*             DISPLAY IT. 
* 
*    1.3  ERROR REPORTED - NONE 
* 
  
*    2.0  INTERNAL MODULE DOCUMENTATION 
* 
*    2.1  ENTRY CONDITIONS
* 
*         THE IB CONTAINS THE PROCESSOR STATUS. 
* 
*    2.2  REGISTER AND BUFFER USAGE 
* 
*         B1 = MODULE NUMBER
*         IB = PROCESSOR STATUS 
* 
*    2.3  SUBMODULES USED - NONE
* 
* 
* ------------------DATA DIVISION---------------------------
* 
0  FORMAT MODULE FSD98Y 
1  FORMAT FSD - FSD1 SUBSYSTEM MONITOR/UTILITY
2  FORMAT FSD98Y -ADAPTER PROCESSOR STATUS ONE DISPLAY
5  FORMAT               D REGISTER
6  FORMAT          D0 = *H *H *H *H(H)
7  FORMAT          D1 = *H *H *H *H(H)
10 FORMAT          D2 = *H *H *H *H(H)
11 FORMAT          D3 = *H *H *H *H(H)
12 FORMAT          D4 = *H *H *H *H(H)
13 FORMAT          D5 = *H *H *H *H(H)
14 FORMAT          D6 = *H *H *H *H(H)
15 FORMAT          D7 = *H *H *H *H(H)
16 FORMAT     ENTER -GO- FOR PROCESSOR STATUS DISPLAY 
* 
* ------------------INITIALIZATION--------------------------
* 
25 B1 = 98                           *MODULE NUMBER 
   MSG 0 TO DISPLAY,PRINT            *POST MODULE NUMBER
   MSG 1 TO LINE 0                   *DISPLAY MAIN TITLE
   MSG 2 TO LINE 1                   *DISPLAY MODULE TITLE
* 
* ------------------TEST------------------------------------
* 
30 MSG 5 TO LINE 3                   *REGISTER TITLES 
   MSG 6 4 WORDS FROM IB(0D) TO LINE 5         *D0
   MSG 7 4 WORDS FROM IB(4D) TO LINE 6         *D1
   MSG 10 4 WORDS FROM IB(8D) TO LINE 7        *D2
   MSG 11 4 WORDS FROM IB(12D) TO LINE 10       *D3 
   MSG 12 4 WORDS FROM IB(16D) TO LINE 11       *D4 
   MSG 13 4 WORDS FROM IB(20D) TO LINE 12       *D5 
   MSG 14 4 WORDS FROM IB(24D) TO LINE 13       *D6 
   MSG 15 4 WORDS FROM IB(28D) TO LINE 14       *D7 
   MSG 16 TO LINE 23                 *NEXT DISPLAY
   PICTURE
   PAUSE
   BLANK DISPLAY
   EXIT TO 98W
77 END 25 
COMPILE  *FSD98Y - ADAPTER PROCESSOR STATUS DISPLAY 
   MODULE FSD98Z,FSD1(110,111)LOCK
***  FSD98Z - GENERAL/DETAIL STATUS DISPLAY 
**
*    1.0  EXTERNAL MODULE DOCUMENTATION 
* 
*    1.1  PURPOSE 
* 
*         THIS MODULE DISPLAYS THE GENERAL AND DETAIL 
*         STATUS. 
* 
*    1.2  METHOD
* 
*         1.  READ THE GENERAL STATUS FROM THE SB AND 
*             DISPLAY IT. 
*         2.  READ THE DETAIL STATUS FROM THE SB AND
*             DISPLAY IT. 
* 
*    1.3  ERROR REPORTED - NONE 
* 
  
*    2.0  INTERNAL MODULE DOCUMENTATION 
* 
*    2.1  ENTRY CONDITIONS
* 
*         THE SB CONTAINS THE GENERAL AND DETAIL STATUSES.
* 
*    2.2  REGISTER AND BUFFER USAGE 
* 
*         B1 = MODULE NUMBER
*         SB = GENERAL AND DETAIL STATUS
* 
*    2.3  SUBMODULES USED - NONE
* 
* 
* ------------------DATA DIVISION---------------------------
* 
1  FORMAT FSD - FSD1 SUBSYSTEM MONITOR/UTILITY
2  FORMAT FSD98Z - GENERAL/DETAIL STATUS DISPLAY
3  FORMAT GENERAL STATUS =  *OCTB 
4  FORMAT                DETAIL STATUS (OCTAL)
5  FORMAT    WORD   STATUS              WORD   STATUS 
6  FORMAT      1D    *OCTB               11D    *OCTB 
7  FORMAT      2D    *OCTB               12D    *OCTB 
10 FORMAT      3D    *OCTB               13D    *OCTB 
11 FORMAT      4D    *OCTB               14D    *OCTB 
12 FORMAT      5D    *OCTB               15D    *OCTB 
13 FORMAT      6D    *OCTB               16D    *OCTB 
14 FORMAT      7D    *OCTB               17D    *OCTB 
15 FORMAT      8D    *OCTB               18D    *OCTB 
16 FORMAT      9D    *OCTB               19D    *OCTB 
17 FORMAT     10D    *OCTB               20D    *OCTB 
20 FORMAT     ENTER -GO- FOR PROCESSOR STATUS DISPLAY 
21 FORMAT   END OF STATUS DISPLAYS
22 FORMAT-------------------------------------------------- 
* 
* ------------------INITIALIZATION--------------------------
* 
25 B1 = 98                              *MODULE NUMBER
   MSG 1 TO LINE 0
   MSG 2 TO LINE 1
* 
* ------------------TEST------------------------------------
* 
30 MSG 3 (SB(0)) TO LINE 3
   MSG 4 TO LINE 5
   MSG 5 TO LINE 7
   MSG 6 (SB(1D),SB(11D)) TO LINE 10
   MSG 7 (SB(2D),SB(12D)) TO LINE 11
   MSG 10 (SB(3D),SB(13D)) TO LINE 12 
   MSG 11 (SB(4D),SB(14D)) TO LINE 13 
   MSG 12 (SB(5D),SB(15D)) TO LINE 14 
   MSG 13 (SB(6D),SB(16D)) TO LINE 15 
   MSG 14 (SB(7D),SB(17D)) TO LINE 16 
   MSG 15 (SB(8D),SB(18D)) TO LINE 17 
   MSG 16 (SB(9D),SB(19D)) TO LINE 20 
   MSG 17 (SB(10D),SB(20D)) TO LINE 21
   IF (B5 GE 160B) GOTO 40
   MSG 20 TO LINE 23
   PICTURE
   PAUSE
   GOTO 50
* 
* ------------------EXIT------------------------------------
* 
40 MSG 21 TO LINE 22
   MSG 22 TO LINE 23
   PICTURE
   HALT 
   BLANK DISPLAY
   EXIT 
* 
50 BLANK DISPLAY
   EXIT TO 98X
* 
77 END 25 
COMPILE             *FSD98Z - GENERAL/DETAIL STATUS DISPLAY 
   MODULE FSD98A,FSD1(110,111)LOCK
***       FSD98A - POST COMMAND ABORTED ERROR DISPLAY 
**
*         FSD98A - POST COMMAND ABORTED ERROR DISPLAY 
*         ------------------------------------------- 
* 
* 
*    1.1  PURPOSE - 
*         DISPLAY THE COMMAND THAT THE ABORT OCCURRED ON AND THE  ERROR 
*         MESSAGE  GENERATED BY THE PRODUCT OVERLAY AT  THE TIME OF THE 
*         ABORT.
* 
*    1.2  METHOD -
*         1.  POST THE FORMAT MESSAGE NUMBER CONTAINED IN REGISTER B1.
* 
*         2.  IF THE  ERROR CODE  IN THE  EC  REGISTER IS LESS THAN 4000B,
*             EXIT THE MODULE.
* 
*         3.  POST THE PRODUCT OVERLAY ERROR MESSAGE IN THE EM REGISTER.
* 
/ 
*    2.1  ENTRY - 
*         EC AND EM REGISTERS CONTAIN THE ERROR  CODE AND ERROR MESSAGE 
*         IF GENERATED BY THE PRODUCT OVERLAY ON AN  ABORT. B1 CONTAINS 
*         THE MALET I/O COMMAND BEING EXECUTED AT THE TIME OF THE ABORT.
* 
*    2.2  EXIT -
*         LINE 3 OF THE DISPLAY CONTAINS THE MESSAGE INDICATING THE I/O 
*         COMMAND BEING EXECUTED BY THE DRIVER AND LINE 4 CONTAINS  THE 
*         ERROR MESSAGE IF THE ERROR CODE WAS GENERATED BY MALET.  EXIT 
*         WILL ALWAYS BE TO MODULE FSD98E.
* 
*    2.3  SUBMODULES REFERENCED - 
*         FSD98E - STATUS DISPLAY 
* 
*    2.4  REGISTERS USED -
*         B1 - ERROR ABORT INDEX
*         B3 - DISPLAY LINE NUMBER
* 
*    2.5  BUFFERS USED -
*         NONE
* 
* 
/------------------DATA DIVISION----------------------------
* 
1  FORMAT ABORTED ON .RES. COMMAND
2  FORMAT ABORTED ON .EXECUTE. COMMAND
3  FORMAT ABORTED ON .STATUS GENERAL. COMMAND 
4  FORMAT ABORTED ON .STATUS DETAIL. COMMAND
5  FORMAT ABORTED ON .STATUS PROCESSOR. COMMAND 
6  FORMAT ABORTED ON .REL. COMMAND
7  FORMAT ABORTED ON .READCD COS CHAIN. COMMAND 
10 FORMAT ABORTED ON .READCD COS. COMMAND 
11 FORMAT ABORTED ON .READCD DIAG CHAIN. COMMAND
12 FORMAT ABORTED ON .READCD DIAG. COMMAND
13 FORMAT ABORTED ON .WRITECD COS CHAIN. COMMAND
14 FORMAT ABORTED ON .WRITECD COS. COMMAND
15 FORMAT ABORTED ON .WRITECD DIAG CHAIN. COMMAND 
16 FORMAT ABORTED ON .WRITECD DIAG. COMMAND 
17 FORMAT ABORTED ON .WRITECD CNTWR CHAIN. COMMAND
20 FORMAT ABORTED ON .REALLOC. COMMAND
21 FORMAT ABORTED ON .REFORM. COMMAND 
22 FORMAT ABORTED ON .SPIN UP. COMMAND
23 FORMAT ABORTED ON .SPIN DN. COMMAND
24 FORMAT ABORTED ON .DEFECT. COMMAND 
25 FORMAT ABORTED ON .WRITECD CNTWR. COMMAND
26 FORMAT ABORTED ON .AUTOLD CMHOST CHAIN. COMMAND
27 FORMAT ABORTED ON .AUTOLD CMHOST. COMMAND
30 FORMAT ABORTED ON .AUTOLD ADHOST CHAIN. COMMAND
* 
/------------------POST COMMAND ABORTED---------------------- 
* 
40 IF(B1.EQ.0) GOTO 76       *IF NO ABORT MSG 
   IF(B1.LE.30B) GOTO 50
   EXIT TO 98C               *IF HIGHER ABORT MSG 
* 
50 MSG B1 TO LINE B3         *COMMAND ABORT MESSAGE 
   B3 = B3+1                 *INCREMENT DISPLAY LINE NUMBER 
   IF(EC.LT.4000) GOTO 76 
   MSG EM TO LINE B3         *DISPLAY PRODUCT OVERLAY ERROR MESSAGE 
   B3 = B3+1
* 
/------------------MODULE EXIT------------------------------
* 
76 EXIT TO 98E               *EXIT TO STATUS DISPLAY
   END 40                    *END OF THE MODULE 
COMPILE                    *FSD98A - POST COMMAND ABORTED ERROR DISPLAY 
   MODULE FSD98C,FSD1(110,111)LOCK
***       FSD98C - POST COMMAND ABORTED ERROR DISPLAY 
**
*         FSD98C - POST COMMAND ABORTED ERROR DISPLAY 
*         ------------------------------------------- 
* 
* 
*    1.1  PURPOSE - 
*         DISPLAY THE COMMAND THAT THE ABORT OCCURRED ON AND THE  ERROR 
*         MESSAGE  GENERATED BY THE PRODUCT OVERLAY AT  THE TIME OF THE 
*         ABORT.
* 
*    1.2  METHOD -
*         1.  POST THE FORMAT MESSAGE NUMBER CONTAINED IN REGISTER B1.
* 
*         2.  IF THE  ERROR CODE  IN THE  EC  REGISTER IS LESS THAN 4000B,
*             EXIT THE MODULE.
* 
*         3.  POST THE PRODUCT OVERLAY ERROR MESSAGE IN THE EM REGISTER.
* 
/ 
*    2.1  ENTRY - 
*         EC AND EM REGISTERS CONTAIN THE ERROR  CODE AND ERROR MESSAGE 
*         IF GENERATED BY THE PRODUCT OVERLAY ON AN  ABORT. B1 CONTAINS 
*         THE MALET I/O COMMAND BEING EXECUTED AT THE TIME OF THE ABORT.
* 
*    2.2  EXIT -
*         LINE 3 OF THE DISPLAY CONTAINS THE MESSAGE INDICATING THE I/O 
*         COMMAND BEING EXECUTED BY THE DRIVER AND LINE 4 CONTAINS  THE 
*         ERROR MESSAGE IF THE ERROR CODE WAS GENERATED BY MALET.  EXIT 
*         WILL ALWAYS BE TO MODULE FSD98E.
* 
*    2.3  SUBMODULES REFERENCED - 
*         FSD98E - STATUS DISPLAY 
* 
*    2.4  REGISTERS USED -
*         B1 - ERROR ABORT INDEX
*         B3 - DISPLAY LINE NUMBER
* 
*    2.5  BUFFERS USED -
*         NONE
* 
* 
/------------------DATA DIVISION----------------------------
* 
1  FORMAT ABORTED ON .AUTOLD ADHOST. COMMAND
2  FORMAT ABORTED ON .AUTOLD DISK. COMMAND
* 
/------------------POST COMMAND ABORTED---------------------- 
* 
40 B1 = B1-30B               *COMMAND ABORT MESSAGE 
   MSG B1 TO LINE B3
   B3 = B3+1                 *INCREMENT DISPLAY LINE NUMBER 
   IF(EC.LT.4000) GOTO 76 
   MSG EM TO LINE B3         *DISPLAY PRODUCT OVERLAY ERROR MESSAGE 
   B3 = B3+1
* 
/------------------MODULE EXIT------------------------------
* 
76 EXIT TO 98E               *EXIT TO STATUS DISPLAY
   END 40                    *END OF THE MODULE 
COMPILE                    *FSD98C - POST COMMAND ABORTED ERROR DISPLAY 
   MODULE FSD98E,FSD1(110,111)LOCK
***       FSD98E - STATUS DISPLAY 
**
*         FSD98E - STATUS DISPLAY 
*         ----------------------- 
* 
* 
*    1.1  PURPOSE - 
*         DISPLAY THE GENERAL STATUS, DETAIL STATUS, AND OTHER USEFUL 
*         INFORMATION RELATED TO THE CURRENT FAILURE. 
* 
*    1.2  METHOD -
*         1.  POST FORMAT MESSAGE 1 TO LINE B3 (WT, WC, LF).
* 
*         2.  POST FORMAT MESSAGE 2, 3 TO LINE B3 (ALL B REGISTERS).
* 
*         3.  POST FORMAT MESSAGE 4 TO LINE B3 (LAST GENERAL STATUS). 
* 
*         4.  POST FORMAT MESSAGE 5, 6, 7, 8, 9, TO LINE B3 (DETAIL 
*             STATUS).
* 
*         5.  PICTURE, HALT, AND BLANK THE DISPLAY. 
* 
* 
*    2.1  ENTRY - 
*         WT - NUMBER OF WORDS TRANSMITTED
*         WC - WORD COUNT 
*         LF - LAST FUNCTION
*         SB - GENERAL STATUS 
* 
* 
*    2.2  EXIT -
*         A HALT IS EXECUTED BY THIS MODULE AND A GO IS NECESSARY TO
*         RESUME THE MODULE WHICH ERRORED.
* 
* 
*    2.3  SUBMODULES REFERENCED - 
*         NONE
* 
*    2.4  REGISTERS USED -
*         B3 - DISPLAY LINE NUMBER
*         B10- TEMPORARY STORAGE
*         B11- TEMPORARY STORAGE
* 
*    2.5  BUFFERS USED -
*         NONE
* 
* 
/------------------DATA DIVISION----------------------------
* 
1  FORMAT WT = *OCT  WC = *OCT  LF = *OCT   (OCTAL VALUES)
2  FORMAT B0 - B7  = *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT
3  FORMAT B8 - B15 = *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT
4  FORMAT LAST GENERAL STATUS = *OCT
5  FORMAT    DETAIL STATUS
6  FORMAT 01D=*OCT  11D=*OCT
7  FORMAT 02D=*OCT  12D=*OCT
10 FORMAT 03D=*OCT  13D=*OCT
11 FORMAT 04D=*OCT  14D=*OCT
12 FORMAT 05D=*OCT  15D=*OCT
13 FORMAT 06D=*OCT  16D=*OCT
14 FORMAT 07D=*OCT  17D=*OCT
15 FORMAT 08D=*OCT  18D=*OCT
16 FORMAT 09D=*OCT  19D=*OCT
17 FORMAT 10D=*OCT  20D=*OCT
20 FORMAT---------------------------------------------------- 
* 
/------------------DISPLAY USEFUL INFORMATION---------------- 
* 
40 MSG 1 (WT,WC,LF) TO LINE B3
   B3 = B3+1
   MSG 2 (B0,B1,B2,B3,B4,B5,B6,B7) TO LINE B3 
   B3 = B3+1
   MSG 3 (B8,B9,B10,B11,B12,B13,B14,B15) TO LINE B3 
   B3 = B3+1
   MSG 4 (SB) TO LINE B3
   B3 = B3+1
   MSG 5 TO LINE B3 
   B3 = B3+1
* 
/------------------DISPLAY STATUS-------------------------- 
* 
   B10 = 6
   B11 = 1                   *FIRST DETAILED STATUS WORD
50 MSG B10 (SB(B11), SB(B11+10D)) TO LINE B3
   B3 = B3+1
   B10 = B10+1
   GOTO 50 WHILE(B11+1.LE.10D)   *DISPLAY 20D WORDS OF STATUS 
   IF(ES.AND.TM.NE.TM) GOTO 70
   MSG 20 TO LINE B3
   B3 = B3+1
70 PICTURE
   HALT 
   BLANK
   EXIT                      *RETURN TO MODULE WHICH ERRORED
   END 40                    *END THE MODULE
COMPILE                      *FSD98E STATUS DISPLAY 
   MODULE FSD98G,FSD1(110,111)LOCK
***       FSD98G - COS AND LEV II DIAG SCRATCH FILE CHECK 
**
*         FSD98G - COS AND LEV II DIAG SCRATCH FILE CHECK 
*         ----------------------------------------------- 
* 
* 
*    1.1  PURPOSE - 
*         THIS  MODULE CHECKS  THE DESIGNATED MALET SCRATCH FILE TO IN- 
*         SURE THAT THE FILE IS NOT EMPTY,  AND THAT THE FILE  CONTAINS 
*         42B BLOCKS OF INFORMATION TO BE A VALID ISD SCRATCH FILE. 
* 
*    1.2  METHOD -
*         1.  DISPLAY THE MODULE RUNNING MESSAGE. 
* 
*         2.  SYSREW THE DESIGNATED MALET SCRATCH FILE. 
* 
*         3.  SET WORD COUNT TO 500B. 
* 
*         4.  SYSRD  A 500B WORD  BLOCK OF INFORMATION  FROM THE  MALET 
*             SCRATCH FILE. 
* 
*         5.  CHECK  FOR FIRST BLOCK READ.  IF NOT THE FIRST BLOCK READ 
*             GOTO STEP 6.  IF FIRST BLOCK READ, CHECK SYSRD STATUS FOR 
*             EOR AND REPORT EMPTY SCRATCH FILE IF EOR,  ELSE GOTO STEP 
*             6.
* 
*         6.  INCREMENT A BLOCK COUNTER AND DISPLAY A BLOCK COUNT LENGTH
*             MESSAGE.
* 
*         7.  REPEAT STEPS 4-6 UNTIL SYSRD STATUS IS EOR. 
* 
*         8.  CHECK BLOCK COUNTER EQUAL TO 42B BLOCKS READ. IF THE COUNT
*             IS NOT EQUAL TO 42B, REPORT INVALID SCRATCH FILE AND HALT.
*             IF THE BLOCK COUNT IS EQUAL TO 42B,  GOTO STEP 9. 
* 
*         9.  RETURN TO CALLING MODULE. 
* 
* 
/ 
*    2.1  ENTRY - 
*         NONE
* 
*    2.2  EXIT -
*         THIS MODULE EXITS TO THE CALLING MODULE.
* 
*    2.3  SUBMODULES REFERENCED - 
*         NONE
* 
*    2.4  REGISTERS USED -
*         B3 - DISPLAY LINE NUMBER
*         B4 - SCRATCH BLOCK COUNTER
*         B5 - SYSRD STATUS 
*         B6 - SCRATCH FILE INDEX 
* 
*    2.5  BUFFERS USED -
*         NONE
* 
* 
/------------------DATA DIVISION----------------------------
* 
1  FORMAT MODULE FSD98G 
2  FORMAT FSD98G - COS AND LEV II DIAG SCR FILE BLOCK CHECK 
3  FORMAT CHECKING COS SCRATCH FILE BLOCK LENGTH = *OB
4  FORMAT CHECKING LEV II DIAG SCR FILE BLOCK LENGTH=*OB
5  FORMAT CHECK ABORTED - SCRATCH FILE EMPTY OR MISSING 
6  FORMAT INVALID SCRATCH FILE
7  FORMAT SYSRD EXPECTED BLOCK LENGTH = 42B, ACTUAL = *OB 
10 FORMAT VALID SCR FILE BLOCK LENGTH FOR COS/LEV II DIAGS
* 
/------------------SYSRD SCRATCH FILE------------------------ 
* 
20 B3 = 3 
   B4 = 0                    *BLOCK COUNTER 
   WC = 500B                 *WORDS PER BLOCK 
   SYSREW                    *REWIND THE SCRATCH FILE 
* 
30 SYSRD, STATUS TO B5
   IF(B4.NE.0) GOTO 40       *IF NOT FIRST READ 
   IF(B5.NE.2) GOTO 40       *IF NOT EOI
   MSG 5 TO LINE B3          *ERROR EMPTY FILE
   GOTO 70
* 
40 IF(B6.NE.0) GOTO 50       *IF LEV II DIAGS 
   IF(B5.EQ.1) GOTO 42       *IF SYSRD EOR
   IF(B5.EQ.2) GOTO 42       *IF SYSRD EOI
   B4 = B4+1                 *INCREMENT BLOCKS READ 
   MSG 3 (B4) TO DISPLAY     *DISPLAY COS BLOCK CNT 
   GOTO 30 WHILE(B4+0.LE.41B)   *READ NEXT BLOCK
42 IF(B4.EQ.42B) GOTO 60     *IF VALID SCR FILE 
   IF(B4.EQ.41B) GOTO 60     *IF VALID SCR FILE 
   GOTO 54
* 
50 IF(B5.EQ.1) GOTO 52       *IF SYSRD EOR
   IF(B5.EQ.2) GOTO 52       *IF SYSRD EOI
   B4 = B4+1                 *INCREMENT BLOCKS READ 
   MSG 4 (B4) TO DISPLAY     *DISPLAY BLOCKS READ 
   GOTO 30 WHILE(B4+0.LE.41B)   *READ NEXT BLOCK
52 IF(B4.EQ.42B) GOTO 60     *IF VALID SCR FILE 
   IF(B4.EQ.41B) GOTO 60     *IF VALID SCR FILE 
54 MSG 6 TO LINE B3           *INVALID SCRATCH FILE 
   B3 = B3+1
   MSG 7 (B4) TO LINE B3    *EXPECTED BLOCK COUNT 
   B3 = B3+1
   GOTO 70                   *PROCESS THE ERROR 
* 
60 MSG 10 TO DISPLAY         *VALID SCRATCH FILE
   EXIT                      *RETURN TO THE CALLING MODULE
* 
/------------------PROCESS MODULE ERRORS--------------------
* 
70 B2 = B2+1
   MSG 1 TO LINE 1
   MSG 2 TO LINE 2
   PICTURE
   HALT 
   BLANK
   END 20 
COMPILE                      *FSD98G - COS AND LEV II DIAG SCRATCH FILE CHECK 
   MODULE FSD98H,6000(110,111)LOCK
***       FSD98H - COMMAND ABORT PROCESSOR
**
* 
*    1.1  PURPOSE-
*         DISPLAY THE COMMAND THAT THE ABORT OCCURRED ON AND THE
*         ERROR MESSAGE GENERATED BY THE PRODUCT OVERLAY AT THE 
*         TIME OF THE ABORT.
* 
*    1.2  METHOD -
*         1.  IF THE B8 REGISTER CONTAINS ZERO, GO TO STEP 3. 
*         2.  POST THE FORMAT MESSAGE NUMBER CONTAINED IN THE B12 
*             REGISTER WHICH IS DERIVED FROM B8.
*         3.  IF THE ERROR CODE IN THE EC REGISTER IS LESS THAN 4000
*             OCTAL, EXIT THE MODULE. 
*         4.  POST THE ERROR MESSAGE IN THE EM REGISTER.
* 
*    1.3  ERRORS REPORTED - 
* 
*    2.1  ENTRY - 
*         EC AND EM REGISTERS CONTAIN THE ERROR CODE AND ERROR
*         MESSAGE IF GENERATED BY THE PRODUCT OVERLAY ON AN ABORT 
*         B8 REGISTER CONTAINS THE NUMBER FOR THE MALET I/O COMMAND 
*         BEING EXECUTED AT THE TIME OF THE ABORT.
* 
*         EXIT- 
*         LINE 3 OF THE DISPLAY CONTAINS THE MESSAGE INDICATING THE 
*         I/O COMMAND BEING EXECUTED BY THE DRIVER AND LINE 4 CONTAINS
*         THE ERROR MESSAGE IF THE ERROR CODE WAS GENERATED BY MALET. 
*         EXIT WILL ALWAYS BE TO MODULE FSD98I. 
* 
*         SUBMODULES REFERENCED-
*         FSD98I - DISPLAY STATUS.
* 
*    2.2  REGISTERS USED -
*         B2  = FUNCTION CODES. 
*         B5  = EXPECTED STATUS.
*         B8  = COMMAND INDEX FOR COMMAND ABORTS. 
*         B12 = TEMPORARY STORAGE.
*         B13 = TEMPORARY STORAGE.
*         EC  = DRIVER ERROR CODE.
*         EM  = ERROR MESSAGE ADDRESS.
* 
1  FORMAT FSD ABORT ON .RES. COMMAND
2  FORMAT FSD ABORT ON .REL. COMMAND
3  FORMAT FSD ABORT ON .FUNC. COMMAND 
4  FORMAT FSD ABORT ON .STATUS. COMMAND 
5  FORMAT FSD ABORT ON .FZCP,ON. COMMAND
6  FORMAT FSD ABORT ON .FZCP,OFF. COMMAND 
7  FORMAT FSD ABORT ON .OUT. COMMAND
10 FORMAT FSD ABORT ON .OUT CHAIN. COMMAND
11 FORMAT FSD ABORT ON .ACN. COMMAND
12 FORMAT FSD ABORT ON .DCN. COMMAND
13 FORMAT FSD ABORT ON .IN. COMMAND 
14 FORMAT FSD ABORT ON .COMPARE. COMMAND
* 
/---------PROCESS LAST I/O MALET COMMAND EXECUTED.
* 
20 B12 = B8-37B              *INDEX B12 TO MSG
   IF(B8.EQ.0) GOTO 75       *IF NOT COMMAND NUMBER 
   MSG B12 TO LINE 3
* 
/---------MODULE EXIT 
* 
75 IF(EC.LT.4000) GOTO 76 
   MSG EM TO LINE 4          *PRODUCT OVERLAY MESSAGE 
76 EXIT TO 98I               *EXIT TO LAST FUNCTION PROCESSOR 
   END 20 
COMPILE                      *FSD98H COMMAND ABORT PROCESSOR
   MODULE FSD98I,6000(110,111)LOCK
***       FSD98I - STATUS DISPLAY 
**
* 
*    1.1  PURPOSE-
*         DISPLAY THE GENERAL STATUS AND OTHER USEFUL INFORMATION 
*         RELATED TO THE CURRENT FAILURE. 
* 
*    1.2  METHOD -
*         1.  POST FORMAT MESSAGE 1 TO LINE 7 (WT, WC, LF, ERRORS). 
*         2.  POST FORMAT MESSAGES 2, 3, 4 AND 5 TO THE DISPLAY 
*             (OB, ALL B REGISTERS).
*         4.  POST LAST GENERAL STATUS. 
*         5.  POST 20 D WORDS OF DETAIL STATUS. 
* 
*    1.3  ERRORS REPORTED - 
* 
*    2.1  ENTRY - 
*         B8  = NUMBER FOR THE LAST COMMAND EXECUTED. 
*         EC  = ERROR CODE NUMBER.
*         WT  = NUMBER OF WORDS TRANSMITTED.
*         WC  = WORD COUNT. 
*         OUTPUT DATA BUFFER CONTAINS THE EXPECTED DATA.
*        STATUS BUFFER CONTAINS GENERAL AND DETAILED STATUS.
* 
*         EXIT- 
*         B12  = NEXT LINE NUMBER IN THE DISPLAY BUFFER.
*         MESSAGES POSTED FOR THE STATUSES TO BE DISPLAYED. 
* 
*         SUBMODULES REFERENCED-
* 
*    2.2  REGISTERS USED -
*         B1  = MODULE NUMBER IN OCTAL. 
*         B5  = EXPECTED GENERAL STATUS.
*         B7  = TEMPORARY STORAGE.
*         B10 = TEMPORARY STORAGE.
*         B11 = ERROR COUNTER.
*         B12 = DISPLAY LINE NUMBER.
*         B13 = TEMPORARY STORAGE.
*         B14 = TEMPORARY STORAGE.
*         B15 = TEMPORARY STORAGE.
* 
/---------MESSAGES FOR THE STATUSES TO BE DISPLAYED.
* 
1  FORMAT WT=*OCT  WC=*OCT  LF=*OCT  ERRORS=*DEC
2  FORMAT OB(0-7) = *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
3  FORMAT B0-B7   = *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
4  FORMAT B8-B15  = *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
5  FORMAT LAST GENERAL           EXPECTED GENERAL 
6  FORMAT STATUS= *OCT           STATUS= *OCT 
7  FORMAT    DETAIL STATUS
10 FORMAT 01D=*OCT  11D=*OCT
11 FORMAT 02D=*OCT  12D=*OCT
12 FORMAT 03D=*OCT  13D=*OCT
13 FORMAT 04D=*OCT  14D=*OCT
14 FORMAT 05D=*OCT  15D=*OCT
15 FORMAT 06D=*OCT  16D=*OCT
16 FORMAT 07D=*OCT  17D=*OCT
17 FORMAT 08D=*OCT  18D=*OCT
20 FORMAT 09D=*OCT  19D=*OCT
21 FORMAT 10D=*OCT  20D=*OCT
22 FORMAT           RECOMMENDED CORRECTIVE ACTION 
23 FORMAT       REPLACE THE ADAPTER BOARD 
24 FORMAT     EXECUTE ADAPTER AND LEVEL II DIAGNOSTICS
25 FORMAT-----------------------------------------------------
26 FORMAT IB(0-7) = *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
* 
/---------BUILD THE STATUS DISPLAY FOR THE ERROR. 
* 
30 B13 = B11+1               *UPDATE ERROR COUNT
   MSG 1 (WT,WC,LF,B13) TO LINE 6 
32 B12 = 7                   *LINE NUMBER ON DISPLAY
   IF(EC.GE.4000) GOTO 40    *PRODUCT OVERLAY ERROR 
   MSG 22 TO LINE B12        *RECOMMENDED ACTION
   B12 = B12 + 1
   IF(EC.EQ.1) MSG 24 TO LINE B12   *EXECUTE ADAPTER AND LEVEL II S 
   IF(EC.EQ.2) MSG 23 TO LINE B12   *REPLACE ADAPTER BOARD
   IF(EC.EQ.3) MSG 23 TO LINE B12   *REPLACE ADAPTER BOARD
   IF(EC.EQ.4) MSG 24 TO LINE B12   *EXECUTE ADAPTER AND LEVEL II S 
   IF(EC.GE.5) MSG 23 TO LINE B12   *REPLACE ADAPTER BOARD
   B12 = B12 + 1
* 
* 
/---------DISPLAY GENERAL STATUS. 
* 
40 B12 = B12+1               *INCREMENT LINE
   MSG 5 TO LINE B12         *GENERAL STATUS
   B12 = B12+1
   MSG 6 (SB,B5) TO LINE B12   *GENERAL STATUS
   B12 = B12+2
   MSG 2 10 WORDS FROM OB TO LINE B12 
   B12 = B12 + 1
   MSG 26 10 WORDS FROM IB(WC) TO LINE B12
   B12 = B12 + 1
   MSG 3 (B0,B1,B2,B3,B4,B5,B6,B7) TO LINE B12
   B12 = B12 + 1
   MSG 4 (B8,B9,B10,B11,B12,B13,B14,B14) TO LINE B12
   B12 = B12 + 1
* 
/-----------------DETAIL STATUS DISPLAY------------------------ 
* 
   IF(EC.GE.4000) GOTO 44 
   IF(EC.GE.5) GOTO 54              *SKIP DETAILED STATUS 
44 MSG 7 TO LINE B12
   B12 = B12 + 1
   B10 = 10                  *SET MESSAGE NUMBER
   B7 = 1        *FIRST DETAILED STATUS WORD
50 MSG B10 (SB(B7), SB(B7+10D)) TO LINE B12 
   B12 = B12 + 1             *ADVANCE THE LINE
   B10 = B10 + 1             *ADVANCE MESSAGE NUMBER
   GOTO 50 WHILE (B7+1.LE.10D)   *DISPLAY 20D WORDS 
54 IF (ES.AND.TM.NE.TM) GOTO 70     *IF NOT TERMINAL MODE 
   MSG 25 TO LINE B12 
   B12 = B12 + 1
   B11 = 1
* 
/---------EXIT THE MODULE 
* 
70 PICTURE
   HALT 
   BLANK
   EXIT 
   END 30 
COMPILE                      *FSD98I STATUS DISPLAY 
   MODULE FSD99,FSD1(110,111)LOCK 
1  FORMAT COPYRIGHT CONTROL DATA CORP. 1983 
2  PAUSE
   EXIT TO 99A
/         FSD - ISD SUBSYSTEM MONITOR/UTILITY 
/         FOR ADDITIONAL DOCUMENTATION, SEE THE FOLLOWING 
/         MODULES-- 
/ 
/         FSD99              OVERVIEW 
/         FSD99A             PARAMETER DESCRIPTION
/         FSD99B             LIST OF MODULES
/         FSD99C             ADAPTER TEST DESCRIPTION 
/         FSD99D             CONTROL MODULE TEST DESCRIPTION
/ 
   END 2
COMPILE,SOURCE               *FSD99 OVERVIEW
   MODULE FSD99A,FSD1(110,111)LOCK
***   FSD99A - PARAMETER DESCRIPTION
**
* 
/ 
/  PARAMETER DESCRIPTION. 
/ 
/         P0 - 0XXXH - ADAPTER SELF DIAGNOSTICS TEST NUMBER.
/ 
/              0FFFH - EXECUTE  ALL ADAPTER DIAGNOSTICS IN A
/                      PRESET SEQUENCE. 
/              00XXH - EXECUTE ADAPTER DIAGNOSTIC XX.  REFER
/                      MODULE 99C FOR A DESCRIPTION OF  EACH
/                      ADAPTER DIAGNOSTIC ITS TEST NUMBER.
/ 
/         P1 - 0XXXH - CONTROL  MODULE  LEVEL II  DIAGNOSTIC
                       TEST NUMBER. 
/ 
/              0FFFH - EXECUTE ALL CONTROL MODULE DIAGNOSTIC
/                      IN A PRESET SEQUENCE.
/              0XXXH - EXECUTE CONTROL MODULE DIAGNOSTIC XXX, 
/                      ALL  SUBTESTS IN A  PRESET  SEQUENCE.
/                      REFER TO MODULE 99D FOR A DESCRIPTION
/                      OF EACH  LEVEL II DIAGNOSTIC  AND ITS
/                      TEST NUMBER. 
/ 
/         P2 - 000XH - CONTROL  MODULE  LEVEL  II DIAGNOSTIC
/                      SUBTEST NUMBER.
/ 
/              0000H - EXECUTE ALL SUBTESTS OF THE DIAG.
/              000XH - EXECUTE  SUBTEST X.  REFER TO  MODULE
/                      99D FOR  A DESCRIPTION OF EACH  LEVEL
/                      II DIAGNOSTIC AND ITS SUBTEST NUMBER.
/ 
/         P3 - X000B - ADAPTER DIAGNOSTIC PARAMETER 
/ 
/              6000B - LOOP ON ERROR/TEST 
/              4000B - LOOP ON ERROR
/              2000B - LOOP TEST
/ 
/         P4 - 0X00B - CONTROL  MODULE  LEVEL  II DIAGNOSTIC
/                      PARAMETER. 
/ 
/              0200B - LOOP ON ERROR
/              0100B - CONTINUE AFTER ERROR 
/ 
/         P5 - 0XXXH - CONTROL  MODULE  LEVEL  II DIAGNOSTIC
/                      REPETITION COUNT.
/ 
/         P6 THROUGH P9 - NOT USED. 
/ 
/ 
1  END 1                     *END OF THE MODULE 
COMPILE,SOURCE               *FSD99A - PARAMETER DESCRIPTION
   MODULE FSD99B,FSD1(110,111)LOCK
***   FSD99B - LIST OF MODULES
**
* 
/ 
/  MODULE    MODULE                       ACCESS        RUN TIME
/  NUMBER    DESCRIPTION                  LEVEL       ISD   ISD II
/  ------    -----------                  ------      ---   ------
/ 
/  MONITOR TEST MODULES.
/ 
/  01 EXECUTE SUBSYSTEM DIAGNOSTICS          3         68     64   SEC
/ 
*IF DEF,CMSE17X 
/  ICI PARITY TEST. 
/ 
/  10 ICI PARITY ERROR STATUS TEST           10      4 SEC
/ 
*ENDIF
/  DEADMAN TIMER TEST.
/ 
/  11 DEADMAN TIMER AND STATUS TEST          21        14     14   SEC
/ 
/  UTILITY TEST MODULES.
/ 
/  21 SUBSYSTEM COMPONENT IDENTIFICATION     3          1      1   SEC
/ 
/  31 ARCHIVE COMMAND OPERATING SYSTEM (COS) 4          5      5   SEC
/ 
/  33 ARCHIVE LEVEL II SELF DIAGNOSTICS      4          5      5   SEC
/ 
/  35 RESTORE COMMAND OPERATING SYSTEM (COS) 4          9      9   SEC
/ 
/  37 RESTORE LEVEL II SELF DIAGNOSTICS      4          9      9   SEC
/ 
/  39 COPY ADAPTER CONTROLWARE TO DISK       4          2      2   SEC
/ 
/  41 POWER ON FSD SPINDLE                   10        37     24   SEC
/ 
/  43 POWER OFF FSD SPINDLE                  10         1      1   SEC
/ 
/  45 AUTOLOAD CONTROLWARE AND COS FROM DISK 20        33     21   SEC
/ 
/  47 AUTOLOAD ADAPTER CONTROLWARE FROM HOST 20         2      2   SEC
/ 
/  51 AUTOLOAD CONTROL MODULE FROM HOST      10        18     18   SEC
/ 
1  END 1                     *END THE MODULE
COMPILE,SOURCE               *FSD99B - LIST OF MODULES
   MODULE FSD99C,FSD1(110,111)LOCK
***   FSD99C - ADAPTER TEST DESCRIPTION 
**
* 
/ 
/  TEST NUMBER    TEST NUMBER    TEST 
/      HEX     AL    OCTAL       DESCRIPTION
/  ----------- -- -----------    -----------
/ 
/       5       3      5         CHECKSUM RAM 
/ 
/       7       3      7         BUFFER MEMORY TEST 
/ 
/       8       3     10         I/O PORT TEST
/ 
/       9       3     11         RAM PARITY TEST
/ 
/       A       3     12         BUFFER PARITY TEST 
/ 
/       B       3     13         MAINTENANCE LOOP TEST
/ 
/       C       3     14         ISI TEST 
/ 
/       D       3     15         PROCESSOR TO BUFFER TEST 
/ 
/       E       3     16         BUFFER TO PROCESSOR TEST 
/ 
/       F       3     17         EXTENDED BUFFER TEST 
/ 
/      10       3     20         ISI PARITY TEST
/ 
/      11      20     21         FORCE BUSS ERR, ILLEGAL I/O
/                                ON ICI 
/ 
/      12      20     22         FORCE BUSS ERR, THE PROC 
/                                DETECTED A MEM PARITY ERROR
/ 
/      13      20     23         FORCE ADDRESS ERROR
/ 
/      14      20     24         ISI DEADMAN TIMER TEST 
/ 
/      15      20     25         FORCE EXECUTION OF AN IL-
/                                LEGAL INSTRUCTION
/ 
/ 
1  END 1                     *END OF THE MODULE 
COMPILE,SOURCE               *FSD99C - ADAPTER TEST DESCRIPTION 
   MODULE FSD99D,FSD1(110,111)LOCK
***   FSD99D - CONTROL MODULE TEST DESCRIPTION
**
* 
/   TEST NUMBER    SUBTEST NUMBER    TEST 
/   HEX   OCTAL    HEX  AL  OCTAL    DESCRIPTION
/   -----------    --------------    -----------
/ 
/    71    161      0         0      SERVO TEST 
/    71    161      1    3    1      ZERO CYLINDER SEEK 
/    71    161      2   10    2      ONE CYL SEQ FWD SEEK 
/    71    161      3   10    3      ALL LENGTH SEEK
/    71    161      4   10    4      SEEK VELOCITY
/    71    161      5    3    5      ILLEGAL ADDRESS
/ 
/    72    162      0         0      READ TEST
/    72    162      1    3    1      READ CLOCK 
/    72    162      2    3    2      GENERATE DEFECTIVE CYL 
/                                    LOG TABLE
/    72    162      3    3    3      READ PRESTORED DATA
/                                    PATTERN
/    72    162      4    3    4      SCHEDULER
/    72    162      5    3    5      HEAD ADDRESSING
/    72    162      6   10    6      FIRST HEADER UP
/    72    162      7   10    7      RANDOM SECTOR READ 
/ 
/    73    163      0         0      WRITE TEST 
/    73    163      1    3    1      WRITE WORST CASE PATT
/ 
/    74    164      0         0      BUFFER TEST
/    74    164      1    3    1      COS CRC CHECK
/    74    164      2    3    2      DATA BUFFER
/    74    164      3    3    3      COMPREHENSIVE RAM
/ 
/    75    165      0         0      SECTOR TIMING TEST 
/    75    165      1    3    1      SECTOR TIMING
/    75    165      2    3    2      POSITIONER OFFSET
/    75    165      3   10    3      COMPREHENSIVE SECTOR 
/                                    TIMING 
/ 
/    76    166      0         0      ECC TIMING 
/    76    166      1    3    1      ECC LOGIC
/    76    166      2    3    2      ECC READ/WRITE 
/    76    166      3    3    3      CORRUPTION 25 BITS 
/ 
/    77    167      0   10    0      DEFECT TEST
/ 
/    78    170      0         0      INTEGRITY TEST 
/    78    170      1    3    1      ROM
/    78    170      2    3    2      MPU INTERRUPT
/    78    170      3    3    3      ECC
/    78    170      4    3    4      ECHO 
/    78    170      5   10    5      SPINDLE POWER UP 
/    78    170      6    3    6      QUIESCENT DRIVE STATUS 
/    78    170      7    3    7      INDEX/SECTOR TIMING
/    78    170      8    3    10     READ CLOCK 
/    78    170      9    3    11     GENERATE DEFECTIVE CYL 
/                                    LOG TABLE
/    78    170      A    3    12     SEEK 
/    78    170      B    3    13     WRITE
/    78    170      C    3    14     HEAD ADDRESSING
/ 
/    7A    172      0         0      DISK DRIVE DIAG TEST 
/    7A    172      1    3    1      UNIT SELECT BIT
/    7A    172      2    3    2      STROBE SIGNAL
/    7A    172      3    3    3      OFFSET SIGNAL
/    7A    172      4    3    4      DRIVE DIAGNOSTIC MUX 
/    7A    172      5    3    5      DRIVE INTERRUPT
/    7A    172      6   10    6      SPINDLE POWER UP 
/    7A    172      7    3    7      READ/WRITE SIGNAL CHECK
/    7A    172      8    3   10      DIAGNOSTIC COUNTER 
/    7A    172      9    3   11      DRIVE DIAGNOSTIC RTZ 
/    7A    172      A    3   12      SEEK DEBUG 
/    7A    172      B    3   13      HEAD SELECT AND COMPARE
/ 
/   100    400      1    3    1      ISI INTERACTION TEST 
/ 
/ 
1  END 1                     *END OF THE MODULE 
COMPILE,SOURCE               *FSD99D - CONTROL MODULE  DESCRIPTION
***       FSD - ISD SUBSYSTEM MONITOR AND UTILITY TEST
***       APPLICATIONS
**
*         APPLICATIONS
*         ------------
* 
*** 4.1    AUTOLOAD CONTROLWARE/COS FROM DISK 
**
*   4.1    AUTOLOAD CONTROLWARD/COS FROM DISK 
*          ---------------------------------- 
* 
*          THE CAPABILITY TO AUTOLOAD THE ADAPTER OR THE CONTROL
*          MODULE INDEPENDENTLY FROM DISK DOES NOT EXIST.  THEREFORE
*          MODULE FSD45 WILL AUTOLOAD BOTH THE ADAPTER AND THE
*          CONTROL MODULE FROM DISK.
* 
*** 4.2    STOPPING THE DIAGNOSTICS ONCE STARTED
**
*   4.2    STOPPING THE DIAGNOSTICS ONCE STARTED
*          -------------------------------------
* 
*          ONCE THE HOST HAS FUNCTIONED THE CONTROL MODULE TO BEGIN 
*          EXECUTION OF A DIAGNOSTIC, THE CONTROL MODULE CAN NOT BE 
*          INTERRUPTED EXCEPT BY AN AUTOLOAD FUNCTION.
* 
*** 4.3    DIAGNOSTIC EXECUTION WITH PARAMETERS 
**
*   4.3    DIAGNOSTIC EXECUTION WITH PARAMETERS 
*          ------------------------------------ 
* 
*          IF THE USER SELECTS TO RUN THE BUILT-IN DIAGNOSTICS WITH 
*          PARAMETERS SELECTED IN P3, P4 OR P5, THE MONITOR WILL
*          PAUSE AND DISPLAY A WARNING MESSAGE STATING THAT MALET WILL
*          BE ABORTED AFTER ISSUING THE FUNCTION TO EXECUTE THE 
*          DIAGNOSTIC.  THE REASON FOR THIS ABORT IS THAT MALET IS
*          UNABLE TO DISTINGUISH BETWEEN A HUNG CONDITION AND A SELECTED
*          LOOPING CONDITION.  THEREFORE, MALET IS ABORTED IN ORDER THAT
*          THE USER CAN USE ONE OF THE AUTOLOAD MODULES TO STOP THE 
*          LOOP CONDITION.
* 
*** 5.0    INTERFACES 
**
*   5.0    INTERFACES 
*          ---------- 
* 
*** 5.1    ABORT AND RECOVERY 
**
*   5.1    ABORT AND RECOVERY 
*          ------------------ 
* 
*** 5.1.1  TEST ABORTS
**
*   5.1.1  TEST ABORTS
*          -----------
* 
*          THIS SECTION IS INTENDED TO DESCRIBE ALL INSTANCES WHERE FSD 
*          MIGHT ABORT AND WHAT EFFECT THE ABORT WOULD HAVE ON THE
*          SYSTEM. FOR EASE OF REFERENCE, THESE CONDITIONS AND RESPONSES
*          ARE GROUPED WITH THE ERROR MESSAGES AND CODE IN SECT 3.1.2.
* 
*** 5.1.2  SYSTEM ABORTS
**
*   5.1.2  SYSTEM ABORTS
*          -------------
* 
*          FSD EXECUTES UNDER MALET AND IS PROTECTED FROM SYSTEM ABORTS 
*          BY THE EXECUTIVE AND DRIVER. THE ONLY INSTANCE WHERE A SYSTEM
*          ABORT MIGHT OCCUR IS IF THE USER ABORTS MALET.  IF THIS WERE 
*          TO OCCUR, FSD WOULD BE ABORTED, LEAVING THE SUBSYSTEM IN AN
*          UNKNOWN STATE. 
* 
*** 5.2    ERRORS 
**
*   5.2    ERRORS 
*          ------ 
* 
*          THIS SECTION IS INTENDED TO DESCRIBE THOSE ERROR MESSAGES NOT
*          ASSOCIATED WITH THE HARDWARE TESTING FUNCTION OF FSD.  FOR 
*          EASE OF REFERENCE, THESE MESSAGES ARE GROUPED WITH THE ERROR 
*          MESSAGES IN SECTION 3.1.2. 
* 
*** 5.3    PERFORMANCE
**
*   5.3    PERFORMANCE
*          -----------
* 
*** 5.3.1  FSD PERFORMANCE
**
*   5.3.1  FSD PERFORMANCE
*          ---------------
* 
*          FSD PERFORMANCE CHARACTERISTICS ARE DOCUMENTED IN SECT 1.2,
*          CHARACTERISTICS, OF THIS DOCUMENT AND IN SECTION 3.0,
*          PERFORMANCE CHARACTERISTICS, OF THE ISD MAINTENANCE SOFTWARE 
*          DEVELOPMENT PLAN.
* 
*** 5.3.2  IMPACT ON SYSTEM PERFORMANCE 
**
*   5.3.2  IMPACT ON SYSTEM PERFORMANCE 
*          ---------------------------- 
* 
*          FSD-S IMPACT ON THE SYSTEM-S PERFORMANCE WILL VARY FROM
*          SYSTEM TO SYSTEM DEPENDENT ON THE SUBSYSTEM-S CRITICALITY
*          AND THE TOTAL RESOURCES OF THE SYSTEM.  FOR THESE REASONS, 
*          THE IMPACT IS NON-MEASURABLE.
*          ONCE A CONTROL MODULE DIAGNOSTIC HAS BEGUN EXECUTION, THE
*          CONTROL MODULE WILL REMAIN BUSY EXECUTING THAT DIAGNOSTIC
*          UNTIL IT FINISHES.  THIS MEANS THAT THE CONTROL MODULE AND 
*          ALL DRIVES ASSOCIATED WITH THAT CONTROL MODULE ARE 
*          UNAVAILABLE TO THE SYSTEM FOR HOWEVER LONG IT TAKES THE
*          DIAGNOSTIC TO EXECUTE. 
* 
*** 5.4    INSTALLATION PARAMETERS
**
*   5.4    INSTALLATION PARAMETERS
*          -----------------------
* 
*          THERE ARE NO INSTALLATION PARAMETERS FOR THIS PRODUCT. 
* 
*** 6.0    LOGICAL DATA STRUCTURES
**
*   6.0    LOGICAL DATA STRUCTURES
*          -----------------------
* 
*          THE LOGICAL RELATIONSHIPS BETWEEN DATA ELEMENTS THAT ARE 
*          EXTERNALLY VISIBLE ARE DESCRIBED IN SECTION 3.1.1. 
* 
*** 7.0    SOFTWARE SYSTEM DESCRIPTION
**
*   7.0    SOFTWARE SYSTEM DESCRIPTION
*          ---------------------------
* 
*** 7.1    PUBLICATION AFFECTED 
**
*   7.1    PUBLICATION AFFECTED 
*          -------------------- 
* 
*          THE FOLLOWING MICROFICHE PUBLICATIONS REQUIRED THE INCLUSION 
*          OF FSD DOCUMENTATION.
* 
*             MALET DOCUMENTATION            53140094 
*             DIAGNOSTIC DOCUMENTATION       12361055 
* 
*** 7.2    EQUIPMENT CONFIGURATION
**
*   7.2    EQUIPMENT CONFIGURATION
*          -----------------------
* 
*          THE TARGET, MINIMUM AND THE MAXIMUM CONFIGURATIONS ARE 
*          DEFINED IN THE ISD SUBSYSTEM DESIGN REQUIREMENTS DOCUMENT. 
* 
*** 7.3    SOFTWARE PRODUCTS AND SYSTEMS
**
*   7.3    SOFTWARE PRODUCTS AND SYSTEMS
*          -----------------------------
* 
*          FSD UTILIZES THE FOLLOWING SOFTWARE PRODUCTS 
* 
*             MALET 
*             CMSE
*             DEMOT 
* 
*          FSD UTILIZES THE FOLLOWING SOFTWARE SYSTEMS
* 
*             NOS A170
*             MSL15X
* 
*** 7.4    EFFECT ON PERFORMANCE
**
*   7.4    EFFECT ON PERFORMANCE
*          ---------------------
* 
*          THE ADDITION OR SUBTRACTION OF HARDWARE COMPONENTS FROM THE
*          SYSTEM WILL NOT AFFECT THE PERFORMANCE OF THIS PRODUCT.
* 
*** 7.5    UNSUPPORTED CAPABILITIES 
**
*   7.5    UNSUPPORTED CAPABILITIES 
*          ------------------------ 
* 
*          NONE 
*** 7.6    HARDWARE NOT FULLY UTILIZED
**
*   7.6    HARDWARE NOT FULLY UTILIZED
*          ---------------------------
* 
*          NONE 
* 
*** 7.7    INTERFACES TO OTHER SOFTWARE PRODUCTS
**
*   7.7.   INTERFACES TO OTHER SOFTWARE PRODUCTS
*          -------------------------------------
* 
*          FSD INTERFACES TO THE NOS OPERATING SYSTEM VIA MALET AND 
*          INTERFACES TO THE MSL/CMSE SYSTEM VIA DEMOT. 
* 
*** 7.8    RESTRICTIONS AND LIMITATIONS 
**
*   7.8    RESTRICTIONS AND LIMITATIONS 
*          ---------------------------- 
* 
*          THE RESTRICTIONS AND LIMITATIONS OF THIS PRODUCT ARE DEFINED 
*          IN SECTION 1.1.
* 
*** 7.9    RELIABILITY, AVAILABILITY AND MAINTAINABILITY
**
*   7.9    RELIABILITY, AVAILABILITY AND MAINTAINABILITY
*          ---------------------------------------------
* 
*          RAM FEATURES ARE DEFINED IN THE ISD MAINTENANCE SOFTWARE 
*          DEVELOPMENT PLAN.
* 
* 
*** 8.0    APPENDICES 
**
*   8.0    APPENDICES 
*          ---------- 
* 
*** 8.1    APPENDIX A 
**
*   8.1    APPENDIX A 
*          ---------- 
* 
*                             APPENDIX A
*                             ----------
*                      ADAPTER SELF-DIAGNOSTICS 
*                      ------------------------ 
* 
*       THOSE TEST NUMBERS PRECEDED BY AN ASTERISK REQUIRE AN  ACCESS 
*       LEVEL OF 20 IN ORDER TO EXECUTE.
* 
* 
*  TEST NUMBER          TEST DESCRIPTION
*  -----------          ----------------
*  HEX  OCT 
*  ---  --- 
* 
*   5   5       CHECKSUM RAM
*                 THIS DIAGNOSTIC CHECKSUMS THE WORDS IN RAM
*                 MEMORY AND COMPARES IT TO AN EXPECTED VALUE.
* 
*   6   6       UNUSED
* 
*   7   7       BUFFER MEMORY TEST
*                 THIS SECTION WRITE PATTERNS INTO BUFFER MEMORY WITH 
*                 THE PROCESSOR.  IT THEN READS BUFFER MEMORY WITH THE
*                 PROCESSOR AND COMPARES IT TO THE EXPECTED RESULT. 
* 
*   8   10      I/O PORT TEST 
*                 THIS SECTION WILL TEST I/O PORTS 7000-700B. 
* 
*   9   11      RAM PARITY TEST 
*                 THIS SECTION WILL FORCE BOTH UPPER AND LOWER BYTE 
*                 PARITY ERRORS IN RAM USING VARIOUS DATA PATTERNS. 
*                 PARITY ERROR STOP DISABLE IS SET DURING THIS TEST, SO 
*                 THE PROCESSOR DOES NOT INTERRUPT. 
* 
*   A   12      BUFFER PARITY TEST
*                 THIS SECTION WILL FORCE PARITY ERRORS IN BUFFER MEMORY
*                 USING VARIOUS PATTERNS.  PARITY ERROR STOP DISABLE IS 
*                 SET DURING THIS TEST, SO THE PROCESSOR DOES NOT IN- 
*                 TERRUPT.
* 
*   B   13      MAINTENANCE LOOP TEST 
*                 THIS SECTION LOOPS 8 DATA WORDS FROM BUFFER MEMORY, 
*                 THROUGH THE 12/16 BIT CONVERTER BACK TO BUFFER MEMORY.
* 
*   C   14      ISI TEST
*                 THIS SECTION LOOPS DATA FROM THE PROCESSOR, THROUGH 
*                 THE ISI DATA BUS, BACK TO THE PROCESSOR.
* 
*   D   15      PROCESSOR TO BUFFER TEST
*                 THIS TEST SENDS 8 DATA WORDS FROM THE PROCESSOR,
*                 THROUGH THE ISI, THROUGH THE 12/16 BIT CONVERTER, 
*                 INTO BUFFER MEMORY. 
* 
*   E   16      BUFFER TO PROCESSOR TEST
*                 THIS SECTION SENDS 8 DATA WORDS FROM THE BUFFER,
*                 THROUGH THE 12/16 BIT CONVERTER, THROUGH THE ISI, 
*                 TO THE PROCESSOR. 
* 
*   F   17      EXTENDED BUFFER TEST
*                 THIS TEST SENDS DATA FROM THE PROCESSOR, THROUGH THE
*                 ISI, THROUGH THE 12/16 BIT CONVERTER, INTO BUFFER 
*                 MEMORY.  THE ENTIRE BUFFER MEMORY IS WRITTEN IN 16 BIT
*                 MODE WITH PATTERN EQUAL ADDRESS.  THE PROCESSOR THEN
*                 VERIFIES THAT THE DATA WAS WRITTEN CORRECTLY.  USING
*                 BUFFER CONTROL LOGIC, DATA IS THEN TRANSFERED FROM THE
*                 BUFFER, THROUGH THE 12/16 BIT CONVERTER, THROUGH THE
*                 ISI, TO THE PROCESSOR FOR VERIFICATION. 
* 
*   10  20      ISI PARITY TEST 
*                 THIS SECTION SENDS DATA WITH BAD PARITY FROM THE
*                 PROCESSOR TO THE ISI DATA BUS AND THEN VERIFIES THAT
*                 THE PARITY ERROR STATUS BIT SETS.  THIS SECTION ALSO
*                 TESTS THE CAPABILITY TO DISABLE ISI PARITY ERROR DE-
*                 TECTION.
* 
*  *11  21      ILLEGAL I/O ON ICI TEST 
*                 THIS SECTION TESTS THE ABILITY OF THE HARDWARE TO 
*                 INTERRUPT WHEN AN INPUT ON AN INACTIVE ICI IS AT- 
*                 TEMPTED.
* 
*  *12  22      MEMORY PARITY ERROR TEST
*                 THIS SECTION TESTS THE ABILITY OF THE HARDWARE TO 
*                 INTERRUPT WHEN A MEMORY PARITY ERROR OCCURS.
* 
*  *13  23      ADDRESS ERROR TEST
*                 THIS SECTION TESTS THE ABILITY OF THE HARDWARE TO 
*                 INTERRUPT WHEN READING A WORD BEGINNING AT AN ODD BYTE
*                 ADDRESS.
* 
*  *14  24      ISI DEADMAN TIMER TEST
*                 THIS SECTION OUTPUTS ONE WORD TO THE ISI WHEN COMMAND 
*                 SEQUENCE IS NOT SET. THE PROCESSOR IS HUNG IN THE OUT-
*                 PUT MODE UNTIL THE ISI TIMER EXPIRES. 
* 
*  *15  25      ILLEGAL INSTRUCTION TEST
*                 THIS SECTION TESTS THE ABILITY OF THE HARDWARE TO IN- 
*                 TERRUPT WHEN EXECUTING AN ILLEGAL INSTRUCTION.
* 
* 
*** 8.2    APPENDIX B 
**
*   8.2    APPENDIX B 
*          ---------- 
* 
*                                 APPENDIX B
*                                 ----------
*                   CONTROL MODULE LEVEL II SELF DIAGNOSTICS
*                   ----------------------------------------
* 
*       THOSE TEST NUMBERS PRECEDED BY AN ASTERISK REQUIRE AN ACCESS
*       LEVEL OF 10 OR GREATER IN ORDER TO EXECUTE. 
* 
* 
*   TEST      SUBTEST      RUN          DESCRIPTION 
*   NUMBER    NUMBER       TIME         ----------- 
*   ------    -------      ---- 
*   HEX  OCT  HEX OCT    ISD   ISD II 
*                        ---   ------ 
*    71  161   0   0                    SERVO TEST
*                                         THIS DIAGNOSTIC CONSISTS OF A 
*                                         SERIES OF SEEK TESTS THAT AL- 
*                                         LOW THE HOST TO VERIFY THE
*                                         PROPER OPERATION OF THE SERVO 
*                                         MECHANISM AND CIRCUITRY.  SEEK
*                                         TIMING AND ACCURACY ARE 
*                                         MEASURED FOR VARIOUS TYPES OF 
*                                         SEEK OPERATIONS.
* 
*                                         SERVO SUBTESTS
*                                         --------------
*    71  161   1   1      3.0   2.0 S     ZERO CYLINDER SEEK
*  * 71  161   2   2      8.0   7.0 S     ONE CYLINDER SEQ FORWARD SEEK 
*  * 71  161   3   3     59.0  38.0 S     ALL LENGTH SEEK 
*  * 71  161   4   4     12.0   9.0 S     SEEK VELOCITY 
*    71  161   5   5      3.0   3.0 S     ILLEGAL ADDRESS 
* 
* 
*    72  162   0   0                    READ TEST 
*                                         THIS DIAGNOSTIC PERFORMS A
*                                         COMPREHENSIVE CHECK OF THE
*                                         CM-S ABILITY TO READ HEADERS
*                                         AND DATA FIELDS FROM THE DISK.
*                                         ALL AVAILABLE HEADS ARE TESTED
*                                         AND THE ABILITY TO READ 
*                                         HEADERS IMMEDIATELY FOLLOWING 
*                                         SEEK OPERATIONS(UPON DETECTION
*                                         OF ON CYLINDER) IS VERIFIED.
*                                         PREGENERATED TEST PATTERNS ARE
*                                         EMPLOYED DURING PORTIONS OF 
*                                         THIS TEST.
* 
*                                         READ SUBTESTS 
*                                         ------------- 
*    72  162   1   1      3.0   3.0 S     READ CLOCK
*    72  162   2   2     11.0   9.0 S     GENERATE DEFECTIVE CYLINDER 
*                                         LOG TABLE 
*    72  162   3   3      3.0   3.0 S     READ PRESTORED DATA PATTERN 
*    72  162   4   4      3.0   3.0 S     SCHEDULER 
*    73  162   5   5      3.0   3.0 S     HEAD ADDRESSING 
*  * 72  162   6   6     12.0   9.0 S     FIRST HEADER UP 
*  * 72  162   7   7      7.0   6.0 S     RANDOM SECTOR READ
* 
*    73  163   0   0                    WRITE TEST
*                                         THIS DIAGNOSTIC PERFORMS A
*                                         COMPREHENSIVE CHECK OF THE
*                                         CM-S ABILITY TO WRITE HEADERS 
*                                         AND DATA FIELDS ONTO THE DISK.
*                                         THE WRITING IS RESTRICTED TO
*                                         RESERVED DIAGNOSTIC LOCATIONS 
*                                         SO AS NOT TO INTERFERE WITH 
*                                         HOST DATA.  WORST-CASE DATA 
*                                         PATTERNS ARE USED TO STRESS 
*                                         WRITE CIRCUITRY.  THE WRITE 
*                                         FAULT CIRCUITRY IS ALSO 
*                                         TESTED. 
* 
*                                         WRITE SUBTESTS
*                                         --------------
*    73  163   1   1      3.0   3.0 S     WRITE WORST CASE PATTERN TEST 
* 
* 
*    74  164   0   0                    BUFFER TEST 
*                                         THIS DIAGNOSTIC PERFORMS A
*                                         VERIFICATION OF THE STATIC AND
*                                         DYNAMIC RAMS IN THE CM.  SINCE
*                                         THIS TEST MAY INVOLVE A CHECK 
*                                         OF THE MEMORY AREA DESIGNATED 
*                                         FOR STORAGE OF THE COS SOFT-
*                                         WARE USED BY THE CM MICRO-
*                                         PROCESSOR THE TEST MUST FIRST 
*                                         ASCERTAIN WHETHER A LEGITIMATE
*                                         COS PROGRAM IS RESIDENT THERE.
*                                         IF COS IS RESIDENT AND A CRC
*                                         VERIFICATION SHOWS THAT THE 
*                                         PROGRAM IS STILL VALID, THIS
*                                         AREA OF MEMORY IS EXCLUDED
*                                         FROM THE BUFFER TEST.  IF COS 
*                                         IS NOT RESIDENT OR NOT VALID, 
*                                         THE COS AREA IS TESTED.  THE
*                                         FUNCTION BUFFER, USED FOR 
*                                         COMMAND BLOCKS AND
*                                         STATUS FOR THE HOST, IS NOT 
*                                         AFFECTED BY THIS TEST ( 
*                                         UNLESS THE COMPREHENSIVE
*                                         MEMORY SUBTEST IS PERFORMED)
*                                         SINCE THAT WOULD INTERFERE
*                                         WITH CONCURRENT OPERATIONS. 
*                                         THE FUNCTION BUFFER IS TESTED 
*                                         THROUGHLY DURING THE LEVEL I
*                                         DIAGNOSTICS AND DURING THE
*                                         COMPREHENSIVE MEMORY TEST.
* 
*                                         BUFFER SUBTESTS 
*                                         --------------- 
*    74  164   1   1      4.0   4.0 S     COS CRC CHECK 
*    74  164   2   2      3.0   2.0 S     DATA BUFFER 
*    74  164   3   3      3.7   3.7 S     COMPREHENSIVE RAM (COS DE-
*                                         STRUCTIVE)
* 
*    75  165   0   0                    SECTOR TIMING TEST
*                                         THIS DIAGNOSTIC CAUSES THE CM 
*                                         TO PERFORM A SERIES OF TESTS
*                                         THAT VERIFY THE SECTOR AND
*                                         INDEX TIMING ACCURACY.  THIS
*                                         VERIFIES THE SERVO TRACK IN-
*                                         TEGRITY UNDER DIFFERENT SEEK
*                                         AND OFFSET CONDITIONS.
* 
*                                         SECTOR TIMING SUBTESTS
*                                         ----------------------
*    75  165   1   1      3.0   3.0 S     SECTOR TIMING 
*    75  165   2   2      3.0   3.0 S     POSITIONER OFFSET 
*  * 75  165   3   3     45.0  39.0 S     COMPREHENSIVE SECTOR TIMING 
* 
*    76  166   0   0                    ECC TEST
*                                         THIS DIAGNOSTIC CHECKS THE ECC
*                                         CIRCUIT UTILIZED IN THE CM FOR
*                                         DETECTION AND CORRECTION OF 
*                                         ALL DATA ERRORS RECEIVED FROM 
*                                         THE DISK DRIVE.  THE TEST IS
*                                         DIVIDED INTO THREE SUBTESTS.
*                                         THE FIRST SUBTEST CHECKS THE
*                                         ECC CIRCUIT BY CYCLING PAT- 
*                                         TERNS THROUGH IT FROM THE CM
*                                         MICROPROCESSOR. THE OTHER SUB-
*                                         TESTS INVOLVE WRITING AND 
*                                         READING KNOWN PATTERNS FROM 
*                                         THE DISK AND FORCING ERRORS 
*                                         BY CORRUPTING PREWRITTEN DIAG-
*                                         NOSTIC PATTERNS.
* 
*                                         ECC SUBTESTS
*                                         ------------
*    76  166   1   1      3.0   3.0 S     ECC LOGIC 
*    76  166   2   2      3.0   3.0 S     ECC READ/WRITE
*    76  166   3   3      3.0   3.0 S     CORRUPT 25 BITS 
* 
*  * 77  167   0   0     33.0  33.0 S   DEFECT TEST 
*                                         THIS DIAGNOSTIC ALLOWS THE
*                                         HOST TO ISOLATE MEDIA FLAWS BY
*                                         STRESSING A SPECIFIED SECTOR
*                                         WITH WORST-CASE DATA PATTERNS.
*                                         NOMINAL AND OFFSET CONDITIONS 
*                                         ARE USED BY THE CM IN AN AT-
*                                         TEMPT TO LOCATE MARGINAL AREAS
*                                         OF THE DISK MEDIA.
* 
* 
*    78  170   0   0                    INTEGRITY TEST
*                                         THIS DIAGNOSTIC PERFORMS THE
*                                         SAME BASIC CONFIDENCE TEST
*                                         THAT IS PERFORMED BY THE LEVEL
*                                         I DIAGNOSTICS AND ALLOWS THE
*                                         HOST TO REAFFIRM THIS CON-
*                                         FIDENCE LEVEL PRIOR TO THE
*                                         EXECUTION OF THE LEVEL II 
*                                         DIAGNOSTICS.
* 
*                                         INTEGRITY SUBTESTS
*                                         ------------------
*    78  170   1   1      6.0   6.0 S     ROM 
*    78  170   2   2      1.0   1.0 S     MPU INTERRUPT 
*    78  170   3   3      1.0   1.0 S     ECC 
*    78  170   4   4      1.0   1.0 S     ECHO
*  * 78  170   5   5     26.0  17.0 S     SPINDLE POWER UP
*    78  170   6   6      1.0   1.0 S     QUIESCENT DRIVE STATUS
*    78  170   7   7      1.0   1.0 S     INDEX/SECTOR TIMING 
*    78  170   8   10     1.0   1.0 S     READ CLOCK
*    78  170   9   11    10.0   7.0 S     GENERATE DEFECTIVE CYLINDER 
*                                         LOG TABLE 
*    78  170   A   12     1.0   1.0 S     SEEK
*    78  170   B   13     1.0   1.0 S     WRITE 
*    78  170   C   14     1.0   1.0 S     HEAD ADDRESSING 
* 
*    7A  172   0   0                    DRIVE TEST
*                                         THIS DIAGNOSTIC ALLOWS THE
*                                         HOST TO INITIATE A CHECK OF 
*                                         THE DIAGNOSTIC HARDWARE WITHIN
*                                         THE SPECIFIED DISK DRIVE.  THE
*                                         CM ISSUES A PROGRAMMED
*                                         SEQUENCE OF TESTS TO THE DRIVE
*                                         AND MONITORS THE SPECIAL DIAG-
*                                         NOSTIC MULTIPLEX AT THE DRIVE 
*                                         INTERFACE.  THIS DIAGNOSTIC 
*                                         ALLOWS THE MONITORING OF THE
*                                         INTERNAL DRIVE SIGNALS DURING 
*                                         SPINDLE POWER UP, RTZ SEEKS,
*                                         AND A BASIC SEEK CONFIDENCE 
*                                         TEST. 
* 
*                                         DRIVE SUBTESTS
*                                         --------------
*    7A  172   1   1      3.0   3.0 S     UNIT SELECT BIT 
*    7A  172   2   2      3.0   3.0 S     STROBE SIGNAL 
*    7A  172   3   3      3.0   3.0 S     OFFSET SIGNAL 
*    7A  172   4   4      3.0   3.0 S     DRIVE DIAGNOSTIC MUX
*    7A  172   5   5      3.0   3.0 S     DRIVE INTERRUPT 
*  * 7A  172   6   6     26.0  17.0 S     SPINDLE POWER UP
*    7A  172   7   7      3.0   3.0 S     READ/WRITE SIGNALS CHECK
*    7A  172   8  10      3.0   3.0 S     DIAGNOSTIC COUNTER TEST 
*    7A  172   9  11      4.0   3.0 S     DRIVE DIAGNOSTIC RTZ
*    7A  172   A  12      4.0   3.0 S     SEEK DEBUG
*    7A  172   B  13      3.0   3.0 S     HEAD SELECT AND COMPARE 
* 
*                                         ISI INTERACTION TEST
*                                         --------------------
*   100  400   1   1      1.0   1.0 S   ISI INTERACTION TEST
*                                         THIS DIAGNOSTIC WRITES A DATA 
*                                         PATTERN INTO THE CM FUNCTION
*                                         BUFFER, READS THE DATA BACK 
*                                         BACK AND VERIFIES THE DATA. 
*                                         ALSO TRANSFERS DATA TO THE CM 
*                                         WITH A PARITY ERROR TO VERIFY 
*                                         THE CM DETECTS AND REPORTS AN 
*                                         ISI PARITY ERROR. 
* 
* 
* 
* 
*** 8.3    APPENDIX E 
**
*   8.3    APPENDIX E 
*          ---------- 
* 
*                               APPENDIX E
*                               ----------
*                      DIAGNOSTIC EXECUTION SEQUENCE
*                      -----------------------------
* 
*          THIS IS THE RECOMMENDED EXECUTION SEQUENCE OF DIAGNOSTICS. 
*          THE ASTERISKED ADAPTER TESTS REQUIRE AN ACCESS LEVEL OF 20 
*          AND CAN ONLY BE EXECUTED  IF  SELECTED  INDIVIDUALLY.  THE 
*          ASTERISKED CONTROL MODULE TESTS REQUIRE AN ACCESS LEVEL OF 
*          10 OR GREATER AND WILL BE SKIPPED IF THE ACCESS LEVEL IS 
*          UNDER 10.
* 
*       ADAPTER DIAGNOSTICS 
*       ------------------- 
* 
*       TEST                                    DESCRIPTION 
*       ----                                    ----------- 
* 
*   5   5       CHECKSUM RAM
* 
*   7   7       BUFFER MEMORY TEST
* 
*   8   10      I/O PORT TEST 
* 
*   9   11      RAM PARITY TEST 
* 
*   A   12      BUFFER PARITY TEST
* 
*   B   13      MAINTENANCE LOOP TEST 
* 
*   C   14      ISI TEST
* 
*   D   15      PROCESSOR TO BUFFER TEST
* 
*   E   16      BUFFER TO PROCESSOR TEST
* 
*   F   17      EXTENDED BUFFER TEST
* 
*   10  20      ISI PARITY TEST 
* 
*  *11  21      ILLEGAL I/O ON ICI TEST 
* 
*  *12  22      MEMORY PARITY ERROR TEST
* 
*  *13  23      ADDRESS ERROR TEST
* 
*  *14  24      ISI DEADMAN TIMER TEST
* 
*  *15  25      ILLEGAL INSTRUCTION TEST
* 
* 
* 
* 
* 
*       CONTROL MODULE DIAGNOSTICS
*       --------------------------
* 
*       TEST            SUBTEST                 DESCRIPTION 
*       ----            -------                 ----------- 
*       (H)     (O)     (H)   (O) 
* 
*       100     400      1     1                ISI INTERACTION TEST
*       78      170      1     1                ROM 
*       74      164      1     1                COS CRC CHECK 
*       74      164      2     2                DATA BUFFER 
*       78      170      2     2                MPU INTERRUPT 
*       76      166      1     1                ECC LOGIC 
*       78      170      4     4                ECHO
*     * 78      170      5     5                SPINDLE POWER UP
*       78      170      6     6                QUIESCENT DRIVE STATUS
*       7A      172      4     4                DRIVE DIAGNOSTIC MUX
*       7A      172      1     1                UNIT SELECT BIT 
*       7A      172      2     2                STROBE SIGNAL CHECK 
*       7A      172      3     3                OFFSET SIGNAL CHECK 
*       7A      172      5     5                DRIVE INTERRUPT 
*       7A      172      8     10               DIAGNOSTIC COUNTER
*       7A      172      9     11               DRIVE DIAGNOSTIC RTZ
*       7A      172      A     12               SEEK DEBUG
*       7A      172      B     13               HEAD SELECT AND COMPARE 
*       7A      172      7     7                READ/WRITE SIGNAL CHECK 
*       71      161      1     1                ZERO CYLINDER SEEK
*     * 71      161      2     2                ONE CYL SEQUENTIAL FWD
*                                               SEEK
*     * 71      161      3     3                ALL LENGTH SEEK 
*     * 71      161      4     4                SEEK VELOCITY 
*       71      161      5     5                ILLEGAL ADDRESS 
*       75      165      1     1                SECTOR TIMING 
*       75      165      2     2                POSITIONER OFFSET 
*     * 75      165      3     3                COMPREHENSIVE SECTOR
*                                               TIMING
*       72      162      1     1                READ CLOCK TEST 
*       72      162      2     2                GENERATE DEFECTIVE CYL
*                                               LOG TABLE 
*       72      162      3     3                READ PRESTORED DATA 
*                                               PATTERN 
*       72      162      4     4                SCHEDULER ERROR 
*       76      166      2     2                ECC READ/WRITE
*       76      166      3     3                CORRUPT 25 BITS 
*       72      162      5     5                HEAD ADDRESSING 
*     * 72      162      6     6                FIRST HEADER UP 
*     * 72      162      7     7                RANDOM SECTOR READ
*       73      163      1     1                WRITE WORST-CASE PATTERN
