*DECK  FSM
***       FSM - FSC MEMORY TEST 
***       REVISION HISTORY
**
*         FSM - FSC MEMORY TEST 
* 
* 
* 
*         AUTHOR - C. J. COPPICUS     DATE JANUARY 7, 1981. 
* 
* 
*         COPYRIGHT CONTROL DATA CORPORATION. 1981. 
* 
* 
*** 1.0   INTRODUCTION
**
*   1.0   INTRODUCTION
*         ------------
* 
*         FSM IS A MEMORY TEST FOR THE FEDERAL STANDARD CHANNEL  (FSC). 
*         THE  TEST WILL RESIDE IN A PERIPHERAL PROCESSOR (PP) AND TEST 
*         THE MEMORY IN THE FSC.  THE TEST DOES NOT USE  THE  PROCESSOR 
*         IN  THE  FSC  IN  WHICH  THE  MEMORY  IS  BEING  TESTED.  THE 
*         PROCESSOR IS PLACED IN A STOPPED CONDITION. 
* 
* 
* 
*** 1.1   RESTRICTIONS
**
*   1.1   RESTRICTIONS
*         ------------
* 
*         1.  THE TEST WILL  DESTROY THE CYBER 170 HOST FSC CONTROLWARE 
*             IN THE FSC BEING TESTED.
* 
*         2.  THE DATA PATH FROM THE CYBER 170  MAINFRAME  TO  THE  FSC 
*             MEMORY BEING TESTED IS ASSUMED TO BE WORKING. 
* 
*** 1.2   CHARACTERISTICS 
**
*   1.2   CHARACTERISTICS 
*         --------------- 
* 
*         1.  PROGRAM NAME......................................FSM 
* 
*         2.  TEST/DIAG/UTILITY/SYSTEM.........................TEST 
* 
*         3.  VIRTUAL CODE/MICROCODE/PP CODE/OTHER............MALET 
* 
*         4.  RUN TIME (DEFAULT)........................... 45 SEC. 
* 
*         5.  RUN TIME/QUICK LOOK (DEFAULT)....................N/A
* 
*         6.  LEVEL OF ISOLATION..........................DETECTION 
* 
*IF -DEF,CMSE17X
*         7.  ON-LINE/OFF-LINE/BOTH.........................ON-LINE 
*ENDIF
*IF DEF,CMSE17X 
*         7.  ON-LINE/OFF-LINE/BOTH........................OFF-LINE 
*ENDIF
* 
*IF -DEF,CMSE17X
*         8.  ON-LINE SYSTEM.............................NOS
*ENDIF
*IF DEF,CMSE17X 
*         8.  ON-LINE SYSTEM...................................NONE 
*ENDIF
* 
*IF -DEF,CMSE17X
*         9.  OFF-LINE SYSTEM..................................NONE 
*ENDIF
*IF DEF,CMSE17X 
*         9.  OFF-LINE SYSTEM..................................CMSE 
*ENDIF
* 
*         10. ASSEMBLY LANGUAGE...............................MALET 
* 
*         11. SOURCE CODE MAINTENANCE........................UPDATE 
* 
* 
*** 2.0   APPLICABLE DOCUMENTS
**
*   2.0   APPLICABLE DOCUMENTS
*         --------------------
* 
*         FSC ENGINEERING SPECIFICATION                       10358283
*         MALET REFERENCE MANUAL                              60456020
*IF -DEF,CMSE17X
*         CML REFERENCE MANUAL                                60455980
*ENDIF
*IF DEF,CMSE17X 
*         DEMOT REFERENCE MANUAL                              60456310
*         MSL100 REFERENCE MANUAL                             60455770
*ENDIF
* 
* 
*** 3.0   PROGRAM DESCRIPTION 
**
*   3.0   PROGRAM DESCRIPTION 
*         ------------------- 
* 
*   3.1   FSM 
*         --- 
* 
*   3.1.1 ABSTRACT
*         --------
* 
*         THE  FSM  TEST  WILL  TEST THE MEMORY IN THE FEDERAL STANDARD 
*         CHANNEL.
* 
* 
*         MODULE       DESCRIPTION
*         ------       -----------
* 
*         FSM00        CHECK THE PARAMETER  WORDS  ENTERED  AND  VERIFY 
*                      THAT THEY ARE VALID FOR THE FSC TO BE TESTED.
* 
*         FSM01        WRITE AND   READ   THE  FSC  MEMORY  USING  DATA 
*                      PATTERNS OF ALL ONES AND ALL ZEROS.
* 
*         FSM02        WRITE AND  READ  THE  FSC  MEMORY   USING   DATA 
*                      PATTERNS    OF   5555   HEXADECIMAL   AND   AAAA 
*                      HEXADECIMAL. 
* 
*         FSM03        WRITE AND READ THE FSC MEMORY USING AN EIGHT BIT 
*                      SLIDING  ZERO  DATA  PATTERN  (FEFE, FDFD, FBFB, 
*                      F7F7, EFEF, DFDF,  BFBF,  AND  7F7F  HEXADECIMAL 
*                      DATA PATTERNS).
* 
*         FSM04        WRITE AND READ THE FSC MEMORY USING AN EIGHT BIT 
*                      SLIDING ONE  DATA  PATTERN  (0101,  0202,  0404, 
*                      0808,  1010,  2020,  4040,  AND 8080 HEXADECIMAL 
*                      DATA PATTERNS).
* 
*         FSM05        WRITE ALL LOCATIONS IN THE FSC MEMORY  WITH  THE 
*                      ADDRESS  OF  EACH  LOCATION AND VERIFY THAT EACH 
*                      LOCATION  IN  THE  FSC   MEMORY   CONTAINS   ITS 
*                      ADDRESS. 
* 
*         FSM06        WRITE AND  READ  ALL LOCATIONS IN THE FSC MEMORY 
*                      THREE (3) TIMES USING RANDOM DATA PATTERNS.
* 
* 
***       ERROR PROCESSING
**
*         ERROR PROCESSING
*         ----------------
* 
*         MODULES FSM98A AND FSM98D PROCESS THE DRIVER DETECTED 
*         ERRORS.   MODULES FSM98C, AND FSM98D PROCESS THE MODULE 
*         DETECTED ERRORS.
* 
*         FOR  THE  MODULE  DETECTED ERRORS, THE EM REGISTER IS USED TO 
*         FLAG THE FSM98C MODULE AS TO THE TYPE OF ERROR BEING
*         REPORTED.  IF THE EC REGISTER CONTAINS A TWO, A MEMORY DATA 
*         ERROR IS TO BE REPORTED.  IF THE EC REGISTER CONTAINS A ONE,
*         A MEMORY PARITY ERROR IS TO BE REPORTED.
* 
*** 3.1.2 DESCRIPTION DETAILED
**
*   3.1.2 DESCRIPTION DETAILED
*         --------------------
* 
* 
***       OPERATIONAL PROCEDURE 
**
*         OPERATIONAL PROCEDURE 
*         --------------------- 
* 
*         1.  REFER TO THE MALET REFERENCE  MANUAL  (PUB. NO. 60456020) 
*             FOR A DETAILED DESCRIPTION OF THE MALET LANGUAGE. 
* 
*IF -DEF,CMSE17X
*         2.  REFER TO THE CML REFERENCE MANUAL (PUB. NO. 60455980)  TO 
*             RUN MALET UNDER THE NOS OPERATING SYSTEM. 
*ENDIF
*IF DEF,CMSE17X 
*         2.  REFER TO THE DEMOT REFERENCE  MANUAL  (PUB. NO. 60456310) 
*             TO RUN DEMOT UNDER THE CMSE OPERATING SYSTEM. 
* 
*         3.  REFER TO THE  MSL100  OFF-LINE MAINTENACE SYSTEM LIBRARY, 
*             VOLUME 1, REFERENCE MANUAL (PUB. NO. 60455770) TO RUN THE 
*             CMSE OFF-LINE MAINTENANCE SYSTEM. 
*ENDIF
* 
* 
***       LOADING PROCEDURE 
**
*         LOADING PROCEDURE 
*         ----------------- 
* 
*IF -DEF,CMSE17X
*         1.  REFER TO THE  CML REFERENCE MANUAL (PUB. NO. 60455980) TO 
*             RUN MALET UNDER THE NOS OPERATING SYSTEM. 
*ENDIF
*IF DEF,CMSE17X 
*         1.  REFER TO THE  DEMOT  REFERENCE MANUAL (PUB. NO. 60456310) 
*             TO RUN DEMOT UNDER THE CMSE OPERATING SYSTEM. 
* 
*         2.  REFER TO THE MSL100 OFF-LINE MAINTENACE  SYSTEM  LIBRARY, 
*             VOLUME 1, REFERENCE MANUAL (PUB. NO. 60455770) TO RUN THE 
*             CMSE OFF-LINE MAINTENANCE SYSTEM. 
*ENDIF
* 
* 
***       RUNNING PROCEDURE 
**
*         RUNNING PROCEDURE 
*         ----------------- 
* 
*IF -DEF,CMSE17X
*         1.  REFER TO THE CML REFERENCE MANUAL (PUB. NO. 60455980)  TO 
*             RUN MALET UNDER THE NOS OPERATING SYSTEM. 
*ENDIF
*IF DEF,CMSE17X 
*         1.  REFER TO THE DEMOT REFERENCE  MANUAL  (PUB. NO. 60456310) 
*             TO RUN DEMOT UNDER THE CMSE OPERATING SYSTEM. 
* 
*         2.  REFER TO THE  MSL100  OFF-LINE MAINTENACE SYSTEM LIBRARY, 
*             VOLUME 1, REFERENCE MANUAL (PUB. NO. 60455770) TO RUN THE 
*             CMSE OFF-LINE MAINTENANCE SYSTEM. 
*ENDIF
* 
* 
***       PARAMETERS
**
*         PARAMETERS
*         ----------
* 
*         THE FOLLOWING HEX PARAMETERS ARE USED BY FSM- 
* 
*         P0 - NOT USED.
* 
*         P1 - 000X - MEMORY SIZE OF THE FSC BEING TESTED.
* 
*              0000 - DEFAULT EQUALS 16K. 
*              0001 - 16K.
* 
*         P2 - NOT USED.
* 
*         P3 - NOT USED.
* 
*         P4 - NOT USED.
* 
*         P5 - NOT USED.
* 
*         P6 - NOT USED.
* 
*         P7 - NOT USED.
* 
*         P8 - NOT USED.
* 
*         P9 - NOT USED.
* 
* 
***       MESSAGES
**
*         MESSAGES
*         --------
* 
*         NORMAL MESSAGES 
*         --------------- 
* 
*         1.  FSMNN MODULE NAME 
*             THIS MESSAGE INDICATES THAT MODULE NN IS NOW RUNNING. 
* 
* 
* 
***       DAYFILE MESSAGES
**
*         DAYFILE MESSAGES
*         ----------------
* 
*         1.  FSMNN ERROR(S) = XXXXD
*             NN   = THE NUMBER OF THE MODULE IN FSM. 
*             XXXX = THE NUMBER OF ERRORS DETECTED BY THE MODULE. 
*             THIS DAYFILE MESSAGE  INDICATES  THAT  MODULE NN DETECTED 
*             XXXX  DECIMAL  NUMBER  OF  ERRORS  BY  THE  TIME  IT  HAD 
*             COMPLETED EXECUTION.
* 
* 
* 
***       ERROR MESSAGES
**
*         ERROR MESSAGES
*         --------------
* 
*         THE FOLLOWING  DISPLAY  FORMAT  IS  USED  BY  FSM  TO  REPORT 
*         PARAMETER ENTRY ERRORS TO THE USER. 
* 
*         00  FSM - FSC MEMORY TEST 
*         01  FSMNN - (M----------------------------T)
*         02
*         03  FSMNN SUSPECTED PARAMETER ERROR     (HEX. VALUES) 
*         04  (E----------------D)
*         05  P0 - P4  PPPP PPPP PPPP PPPP PPPP 
*         06  P5 - P9  PPPP PPPP PPPP PPPP PPPP 
*         07  PARAMETERS DESCRIBED IN MODULE FSM99
*         10
*         11
*         12
*         13
*         14
*         15
*         16
* 
* 
*         WHERE-
*         NN    = MODULE NUMBER.
*         E---D = DISCRIPTION OF THE ERROR. 
*         M---T = MODULE TITLE
*         PPPP = CONTENTS OF THE PARAMETER WORD.
* 
* 
* 
* 
*         THE FOLLOWING DISPLAY FORMAT IS USED BY FSM TO REPORT PRODUCT 
*         OVERLAY ERRORS WHEN TESTING THE MEMORY IN FSC TO THE USER.
* 
*         00  FSM - FSC MEMORY TEST 
*         01  FSMNN - (M----------------------------T)
*         02
*         03  FSMNN ABORTED ON (C-------------------M)
*         04   LAST FUNCTION = FFFFB  WT = WWWWB
*         05
*         06  FSMNN EXXXXB LYYYB  (E----------------M)
*         07
*         10
*         11
*         12
*         13
*         14
*         15
*         16
* 
* 
* 
* 
*         WHERE-
*         NN    = MODULE NUMBER.
*         YYY   = THE EA REGISTER WHEN THE ERROR OCCURED. 
*         C---M = COMMAND ON WHICH THE ABORT OCCURRED.
*         E---M = VERBAL DESCRIPTION OF THE ERROR CODE. 
*         FFFF  = LAST FUNCTION ISSUED TO THE FSC.
*         M---T = MODULE TITLE
*         NNNN  = CONTENTS OF THE STATUS WORD.
*         WWWW  = WORDS TRANSFERED DURING LAST DATA TRANSFER. 
*         XXXX  = THE ERROR CODE IN OCTAL.
* 
* 
*         THE  FOLLOWING DISPLAY FORMAT IS USED BY FSM TO REPORT MEMORY 
*         DATA ERRORS TO THE USER.
* 
*         00  FSM - FSC MEMORY TEST 
*         01  FSMNN - (M----------------------------T)
*         02
*         03  FSMNN ABORTED ON (C-------------------M)
*         04  FSMNN EXXXXB LYYYB  (E----------------M)
*         05  ADRS   EXP.   ACT.   DIF. (HEX. VALUES) 
*         06  AAAA   BBBB   CCCC   DDDD 
*         07  AAAA   BBBB   CCCC   DDDD 
*         10  AAAA   BBBB   CCCC   DDDD 
*         11  AAAA   BBBB   CCCC   DDDD 
*         12  AAAA   BBBB   CCCC   DDDD 
*         13  AAAA   BBBB   CCCC   DDDD 
*         14  AAAA   BBBB   CCCC   DDDD 
*         15  AAAA   BBBB   CCCC   DDDD 
*         16
* 
* 
*         WHERE-
*         NN    = MODULE NUMBER.
*         YYY   = THE EA REGISTER WHEN THE ERROR OCCURED. 
*         AAAA  = THE FAILING ADDRESS IN THE FSC MEMORY.
*         BBBB  = THE EXPECTED CONTENTS OF THE MEMORY LOCATION. 
*         CCCC  = THE ACTUAL CONTENTS OF THE MEMORY LOCATION. 
*         C---M = COMMAND ON WHICH THE ABORT OCCURRED.
*         DDDD  = THE LOGICAL DIFFERENCE OF BBBB AND CCCC.
*         E---M = VERBAL DESCRIPTION OF THE ERROR CODE. 
*         M---T = MODULE TITLE
*         XXXX  = THE ERROR CODE IN OCTAL.
* 
* 
***       ERROR CODES 
**
*         ERROR CODES 
*         ----------- 
* 
*         MODULE  ERROR     ERROR 
*         NUMBER  CODE   DESCRIPTION
*         ------  -----  -----------
* 
*         FSMNN   EXXXX  LYYY  *ERROR MESSAGE*
*                        YYY  = LINE NUMBER ON WHICH ERROR OCCURED. 
* 
* 
***       MODULE DESCRIPTIONS 
**
*         MODULE DESCRIPTIONS 
*         ------------------- 
* 
   MODULE FSM00,6000(10,11,12,45,56)LOCK
***       FSM00 - PARAMETER VALIDATION
**
*         FSM00 - PARAMETER VALIDATION
*         ----------------------------
* 
* 
*         PURPOSE-
*         FSM00  CHECKS  THE  PARAMETER  WORD P1 TO VERIFY THAT A VALID 
*         MEMORY SIZE HAS BEEN ENTERED.  IF A PARAMETER ENTRY ERROR  IS 
*         DETECTED,  THE  MODULES  LOOPS  ON  A  PAUSE DIRECTIVE WITH A 
*         MESSAGE TO INFORM THE USER  SO  THAT  THE  PARAMETER  CAN  BE 
*         CORRECTED AND THE TEST RERUN. 
* 
* 
*         METHOD- 
*         1.  DISPLAY AND PRINT THE RUNNING MESSAGE FOR THE MODULE. 
*         2.  VERIFY THAT PARAMETER WORD P1 CONTAINS A NUMBER FROM 0000 
*             TO  0001  AND  IF IT DOES NOT, REPORT A PARAMETER WORD P1 
*             ENTRY ERROR.
*         3.  VERIFY THAT  REPEAT  MODULE  IS  NOT SELECTED.  IF REPEAT 
*             MODULE IS SELECTED, PAUSE UNTIL REPEATE MODULE IS  TURNED 
*             OFF IN THE ES REGISTER. 
/ 
*         ENTRY-
*         PARAMETER WORDS P0 TO P9 ARE DESCRIBED IN THE MODULE FSM99. 
*         THE  ACCESS  LEVEL  FOR  THE  TEST  IS  CONTAINED  IN  THE AL 
*            REGISTER.
* 
*         EXIT- 
*         NO SPECIAL  EXIT CONDITIONS IF THE PARAMETER WORDS ARE VALID, 
*           ACCESS LEVEL OF 10B AND REPEAT MODULE IS NOT
*            ENABLED.   OTHERWISE THE PARAMETER WORD(S) OR ACCESS LEVEL 
*            MUST BE CORRECTED AND THE  TEST  RERUN  OR  REPEAT  MODULE 
*            DISABLED.
* 
*         SUBMODULES REFERENCED-NONE. 
* 
*         REGISTERS USED- 
*         B0  - PAUSE MESSAGE NUMBER. 
*         ES  - STANDARD USAGE. 
*         AL  - STANDARD USAGE. 
* 
*         BUFFERS USED-NONE.
* 
* 
0  FORMAT FSM - FSC MEMORY TEST 
1  FORMAT FSM00 - PARAMETER VALIDATION
2  FORMAT FSM00 NOT EXECUTED -AL=*OCT, NEED AL=10B
4  FORMAT FSM00 SUSPECTED PARAMETER ERROR   (HEX. VALUES) 
5  FORMAT P1 - UNUSED BITS SET
6  FORMAT P0 - P4  *OCT *OCT *OCT *OCT *OCT 
7  FORMAT P5 - P9  *OCT *OCT *OCT *OCT *OCT 
10 FORMAT PARAMETERS DESCRIBED IN MODULE FSM99
11 FORMAT //FSM00 AL TOO LOW
12 FORMAT //FSM00 PARAMETER ERROR 
13 FORMAT //FSM00 RM SELECTED 
* 
/---------DISPLAY THE RUNNING MESSAGE FOR THE MODULE. 
* 
30 MSG 1 TO DISPLAY,PRINT    *DISPLAY RUNNING MESSAGE 
* 
/---------VALIDATE THE ACCESS LEVEL FOR THE TEST. 
* 
   IF(AL.GE.10) GOTO 40       *IF ACCESS LEVEL OK 
   MSG 2 (AL) TO LINE 4 
   B0=11                     *ACCESS LEVEL PAUSE MESSAGE
   GOTO 70                   *REPORT ACCESS LEVEL ERROR 
* 
/---------VALIDATE PARAMETER WORD P1. 
* 
40 IF(P1.LE.1) GOTO 50       *IF PARAMETER WORD P1 OK 
   MSG 4 TO LINE 3           *PARAMETER ERROR MESSAGE 
   MSG 5 TO LINE 4           *P1 ERROR MESSAGE
   MSG 6 (P0,P1,P2,P3,P4) TO LINE 5  *PARAMETERS P0-P4
   MSG 7 (P5,P6,P7,P8,P9) TO LINE 6  *PARAMETERS P5-P9
   MSG 10 TO LINE 7          *FSM99 INFORMATION MESSAGE 
   B0=12                     *PARAMETER ERROR PAUSE MESSAGE 
   GOTO 70                   *REPORT PARAMETER ERROR
* 
/---------VERIFY THAT REPEAT MODULE IS NOT SELSECTED. 
* 
50 IF(ES.AND.RM.EQ.0) EXIT   *EXIT IF RM NOT SELECTED 
   B0=13                     *RM PAUSE MESSAGE
   GOTO 74                   *REPORT RM ERROR 
* 
/---------COMPLETE ERROR DISPLAY. 
* 
70 MSG 0 TO LINE 0           *ERROR DISPLAY TITLE LINE
   MSG 1 TO LINE 1           *ERROR DISPLAY MODULE NAME 
   PICTURE
* 
/---------DISPLAY PAUSE MESSAGE, PAUSE, AND LOOP. 
* 
74 MSG B0 TO DISPLAY,PRINT   *POST PAUSE MESSAGE
   PAUSE                     *REPORT ERROR TO USER
   GOTO 74                   *LOOP
   END 30                    *END OF THE MODULE 
COMPILE                      *FSM00 PARAMETER VALIDATION
   MODULE FSM01,6000(10,11,12,45,56)LOCK
***       FSM01 - ONES AND ZEROS TEST 
**
*         FSM01 - ONES AND ZEROS TEST 
*         ----------------------------
* 
* 
*         PURPOSE-
*         TEST  THE  FSC MEMORY USING DATA PATTERNS OF ALL ONES AND ALL 
*         ZEROS.
* 
* 
*         METHOD- 
*         1.  DISPLAY THE RUNNING MESSAGE FOR THE MODULE. 
*         2.  SET THE CONDITION NUMBER TO ZERO. 
*         3.  GENERATE THE DATA BUFFER OF THE DATA PATTERN TO  BE  USED 
*             TO  TEST  THE FSC MEMORY FOR THIS CONDITION.  THE INITIAL 
*             DATA  PATTERN  GENERATED  WILL  BE   0377   OCTAL   (FFFF 
*             HEXADEMICAL). 
*         4.  DISPLAY THE  RUNNING  MESSAGE  IF  SCOPING  LOOP  IS  NOT 
*             SELECTED, OR THE REPEAT CONDITION MESSAGE IF SCOPING LOOP 
*             IS SELECTED.
*         5.  RESERVE THE CHANNEL TO THE FSC. 
*         6.  MASTER CLEAR THE PROCESSOR IN THE FSC.
*         7.  WRITE THE  DATA  PATTERN  INTO  ALL  LOCATIONS IN THE FSC 
*             MEMORY. 
*         8.  DISPLAY  THE  RUNNING  MESSAGE  IF  SCOPING  LOOP  IS NOT 
*             SELECTED, OR THE REPEAT CONDITION MESSAGE IF SCOPING LOOP 
*             IS SELECTED.
*         9.  RESERVE THE CHANNEL TO THE FSC. 
*         10. READ  A  BUFFER  OF 80 HEXADECIMAL WORDS OF DATA FROM THE 
*             FSC MEMORY.  THE INITIAL READ WILL START AT ADDRESS  ZERO 
*             IN THE FSC MEMORY.
*         11. IF A MEMORY PARITY ERROR CAUSES THE  COMMAND  THAT  READS 
*             THE  DATA  FROM  THE  FSC  TO  ABORT, REPORT A FSC MEMORY 
*             PARITY ERROR IF SCOPING LOOP IS NOT SELECTED. 
*         12. CHECK THE DATA READ FROM THE FSC MEMORY.
*         13. REPEAT STEPS 11 THROUGH 14 UNTIL ALL LOCATIONS IN THE FSC 
*             MEMORY HAVE BEEN READ AND CHECKED.
*         14. IF REPEAT CONDITION IS SELECTED, REPEAT STEPS  4  THROUGH 
*             15. 
*         15. REPEAT STEPS 3 THROUGH 16 USING A  DATA  PATTERN  OF  ALL 
*             ZEROS.
*         16. IF REPEAT MODULE IS SELECTED, REPEAT STEPS 1 THROUGH  17. 
*          17. IF  ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE 
*             MODULE, SEND A MESSAGE INDICATING THE  NUMBER  OF  ERRORS 
*             DETECTED BY THE MODULE TO DISPLAY, PRINT, AND DAYFILE.
*         18. EXIT THE MODULE.
/ 
*         ENTRY-
*         B4 REGISTER CONTAINS 100 OCTAL. 
*         B9 REGISTER CONTAINS THE NUMBER OF 80 HEXADECIMAL WORD BLOCKS 
*            REQUIRED  TO  WRITE  OR  READ  THE ENTIRE FSC MEMORY BEING 
*            TESTED.
*         B13 REGISTER CONTAINS THE MODULE NUMBER.
*         OB(70) AND OB(71) CONTAINS THE DATA PATTERNS TO BE TESTED.
* 
*         EXIT- 
*         THE FSC PROCESSOR MASTER CLEARED. 
* 
*         SUBMODULES CALLED-
*         FSM98A - PROCESS PRODUCT OVERLAY ERRORS.
*         FSM98C - PROCESS MODULE DETECTED ERRORS.
*         FSM98D - POST ERROR DISPLAY 
* 
*         REGISTERS USED- 
*         B5  - DATA PATTERN COUNTER. 
*         B6  - UPPER 8 BITS OF THE FSC MEMORY ADDRESS. 
*         B7  - LOWER 8 BITS OF THE FSC MEMORY ADDRESS. 
*         B8  - FSC MEMORY BUFFER COUNTER.
*         B10 - DATA ERROR BUFFER POINTER.
*         B11 - NUMBER OF PRODUCT OVERLAY COMMAND ABORTED.
*         B14 - MODULE ERROR COUNT. 
*         B15 - MODULE LOOP COUNT.
*         BA  - DATA BUFFER BASE ADDRESS. 
*         EA  - STANDARD USAGE. 
*         EC  - STANDARD USAGE. 
*         EM  - STANDARD USAGE. 
*         ES  - STANDARD USAGE. 
*         WC  - WORD COUNT FOR COMMANDS.
* 
*         BUFFERS USED- 
*         IB(100) TO IB(500) - INPUT DATA BUFFER. 
*         OB(100) TO OB(500) - OUTPUT DATA BUFFER.
*         OB(50)  MAX ERROR COUNT 
* 
* 
* 
* 
* 
0  FORMAT FSM01 - ONES AND ZEROS TEST 
1  FORMAT FSM01 ERROR(S) = *DECD
2  FORMAT FSM01 EC=*DECD, LC=*DECD
* 
/---------DATA PATTERNS FOR THE MODULES.
* 
   DATA (OB(70),H)FF00
* 
/---------EQUATES FOR THE MODULE. 
* 
   EQUATE PMC=740, CDCN=3 
   EQUATE SETADDR=500, HSTATUS=704, WRT=702, RDD=701
   EQUATE CCMP=1, CMEMRD=4, CMEMWR=5, CPMC=6, CRES=10B
* 
/---------DISPLAY MODULE RUNNING MESSAGE. 
* 
30 MSG 0 TO DISPLAY,PRINT    *DISPLAY RUNNING MESSAGE 
   B5=0                       *INITIALIZE PASS COUNTER
   OB(50)=20B                      *INITIALIZE MAX ERROR COUNT
   B14=0                      *INITIALIZE ERROR COUNTER 
   B4=100                    *B4 REGISTER EQUALS 100
   B9=P1                     *BUILD MEMORY BLOCK COUNT
   IF(B9.EQ.0)B9=1           *IF DEFAULT MEMORY PARAMETER 
   B9=B9+1.LS.6 
   B13=1                     *MODULE NUMBER 
32 DUP OB(B5+70) TO OB(B4) FOR 400  *GENERATE PATTERN 
* 
/---------RESERVE FSC CH. AND MASTER CLEAR THE PROCESSOR. 
* 
34 GOSUB 70                  *RESERVE FSC CHANNEL 
   B11=CPMC                  *PMC COMMAND NUMBER
   FUNC PMC, ABT 74          *MASTER CLEAR THE FSC
* 
/---------INITIALIZE REGISTERS FOR WRITING FSC MEMORY.
* 
   OB(501) = 0               *FSC ADDRESS 
   OB(502) = 200             *FSC LENGTH
   B6=SETADDR                *SET ADDRESS FUNCTION
   GOSUB 52 
   B11=0                     *FUNCTION NUMBER COMMAND 
   FUNC WRT, ABT 74            *FUNCTION WRITE FSC
   B8=0 
* 
/---------WRITE THE DATA PATTERN INTO FSC MEMORY. 
* 
   BA=B4                     *INIT. BASE ADDRESS OF BUFFER
   WC=400                    *INITIALIZE WRITE WORD COUNT 
36 B11 = CMEMWR              *MEMORY WRITE COMMAND NUMBER 
   OUTB CHAIN WC WORDS FROM OB(BA), ABT 74       *WRITE 
   GOTO 36 WHILE (B8+1.NE.B9)  *LOOP TO WRITE ALL OF MEMORY 
   B11 = 3                   *DCN COMMAND NUMBER
   DCN, ABT 74               *DISCONNECT FSC CHANNEL
* 
/---------READ AND CHECK ALL LOCATIONS IN FSC MEMORY. 
* 
   B10=0                     *INITIALIZE ERROR INDEX
   B8=0                      *INITIALIZE BUFFER COUNTER 
40 GOSUB 70                  *RESERVE FSC CHANNEL 
   OB(502)=200                *FSC LENGTH 
   WC=400                    *INITIALIZE WORD COUNT 
   BA=B4                     *INIT. BASE ADDRESS OF BUFFER
   B6=B8.RS.5.OR.SETADDR
   OB(501)=B8.AND.37.LS.7 
   GOSUB 52 
   B11=0                      *FUNCTION COMMAND NUMBER
   FUNC RDD, ABT 74 
   B11=CMEMRD                *MEMORY READ COMMAND NUMBER
   INB WC WORDS TO IB(BA), ABT 74 
   GOSUB 54 
42 B11=CCMP                  *COMPARE COMMAND NUMBER
   COMPARE OB(BA) TO IB(BA) FOR WC,ABT 60  *CHECK DATA READ 
   GOTO 40 WHILE (B8+1.NE.B9)  *LOOP TO READ ALL OF MEMORY
* 
/---------DISPLAY ANY REMAINING DATA ERRORS.
* 
46 IF(B10.NE.0) ERROR 0/2 GOSUB 66  *PROCESS DATA ERRORS
* 
/---------PROCESS REPEAT CONDITION. 
* 
   IF(ES.AND.RC.EQ.0) GOTO 50  *IF REPEAT CONDITION OFF 
   IF(B14.GE.OB(50)) OB(50)=B14+20B  *INCREASE MAX ERROR COUNT
   B15=B15+1                   *UPDATE LOOP COUNT 
   GOTO 34                     *GO TO REPEAT THE CONDITION
50 GOTO 32 WHILE (B5+1.NE.2)  *LOOP TO DO TWO PASSES
* 
/---------PROCESS REPEAT MODULE.
* 
   IF(ES.AND.RM.NE.0)GOTO 30   *IF REPEAT MODULE SELECTED 
   IF(B14.NE.0)MSG 1 (B14) TO DISPLAY,PRINT,DAYFILE 
   EXIT                        *EXIT THE MODULE 
* 
/---------SUBROUTINE TO SET FSC ADDRESS AND LENGTH. 
* 
52 B11=2                      *SET FSC ADDRESS COMMAND NUMBER 
   FUNC B6, ABT 74
   OUTB 2 WORDS FROM OB(501), ABT 74    *WRITE
54 B11= 0                     *STATUS COMMAND NUMBER
   FUNC HSTATUS, ABT 74       *FUNCTION FSC FOR STATUS
   B11=4                     *INB COMMAND NUMBER
   INB 1 WORDS TO IB(504), ABT 74          *READ STATUS 
   IF(IB(504).AND.3400.EQ.0) RETURN        *IF NO STATUS ERROR
   B11=11 
   B14=B14+1                 *UPDATE ERROR COUNT
   ERROR 0/1 GOSUB 66        *PROCESS ERROR 
   ENDSUB GOTO 46 
* 
/---------PROCESS ABORT ON COMPARE ERROR. 
* 
60 GOTO 46 WHILE (B14+1.GE.OB(50))     *UPDATE ERROR COUNT
   BA=WC.AND.7776+BA           *BUILD BUFFER INDEX
   IF(ES.AND.SL.NE.0) GOTO 62  *IF SCOPING LOOP ON
   IB(B10)=B8                  *SAVE BUFFER COUNTER 
   IB(B10+1)=BA-B4               *SAVE BUFFER INDEX 
   COPY OB(BA) TO IB(B10+2) FOR 2  *SAVE EXPECTED DATA
   COPY IB(BA) TO IB(B10+4) FOR 2  *SAVE ACTUAL DATA
   B10=B10+10                *UPDATE BUFFER POINTER 
   IF(B10.EQ.B4) ERROR 0/2 GOSUB 66  *REPORT DATA ERRORS
62 BA=BA+2                   *RESET BUFFER INDEX
   WC=500-BA                 *RESET COMPARE WORD COUNT
   GOTO 42                   *RETURN TO COMPLETE DATA CHECK 
* 
/---------REPORT DATA ERRORS IF NOT SCOPING.
* 
66 IF(ES.AND.SL.NE.0) RETURN   *IF SCOPING LOOP ON
    CALL 98C                   *REPORT ERRORS 
* 
/---------POST RUNNING MESSAGE AND RESERVE FSC CHANNEL. 
* 
70 IF(ES.AND.SL.EQ.0)MSG 0 TO DISPLAY 
   IF(ES.AND.SL.NE.0)MSG 2(B14,B15) TO DISPLAY
   B11=CRES                  *RES COMMAND NUMBER
   RES,ABT 74                *RESERVE FSC CHANNEL 
   RETURN                    *EXIT THE SUBROUTINE 
* 
/---------PROCESS COMMAND ABORTS IN THE MODULE. 
* 
74 B14=B14+1                 *UPDATE ERROR COUNT
   IF(ES.AND.SL.EQ.0) CALL 98A  *PROCESS ABORT ERROR
   ENDSUB GOTO 46               *GO TO END OF THE CONDITION 
   END 30                       *END OF THE MODULE
COMPILE                      *FSM01 ONES AND ZEROS TEST 
   MODULE FSM02,6000(10,11,12,45,56)LOCK
***       FSM02 - ALTERNATING ONES TEST 
**
*         FSM02 - ALTERNATING ONES TEST 
*         ------------------------------
* 
* 
*         PURPOSE-
*         TEST  THE  FSC MEMORY USING DATA PATTERNS OF 5555 HEXADECIMAL 
*         AND AAAA HEXADECIMAL. 
* 
* 
*         METHOD- 
*         1.  DISPLAY THE RUNNING MESSAGE FOR THE MODULE. 
*         2.  SET THE CONDITION NUMBER TO ZERO. 
*         3.  GENERATE THE DATA BUFFER OF THE DATA PATTERN TO  BE  USED 
*             TO  TEST  THE FSC MEMORY FOR THIS CONDITION.  THE INITIAL 
*             DATA  PATTERN  GENERATED  WILL  BE   0125   OCTAL   (5555 
*             HEXADEMICAL). 
*         4.  DISPLAY THE  RUNNING  MESSAGE  IF  SCOPING  LOOP  IS  NOT 
*             SELECTED, OR THE REPEAT CONDITION MESSAGE IF SCOPING LOOP 
*             IS SELECTED.
*         5.  RESERVE THE CHANNEL TO THE FSC. 
*         6.  MASTER CLEAR THE PROCESSOR IN THE FSC.
*         7.  WRITE THE  DATA  PATTERN  INTO  ALL  LOCATIONS IN THE FSC 
*             MEMORY. 
*         8.  DISPLAY  THE  RUNNING  MESSAGE  IF  SCOPING  LOOP  IS NOT 
*             SELECTED, OR THE REPEAT CONDITION MESSAGE IF SCOPING LOOP 
*             IS SELECTED.
*         9.  RESERVE THE CHANNEL TO THE FSC. 
*         10. READ  A  BUFFER  OF 80 HEXADECIMAL WORDS OF DATA FROM THE 
*             FSC MEMORY.  THE INITIAL READ WILL START AT ADDRESS  ZERO 
*             IN THE FSC MEMORY.
*         11. IF A MEMORY PARITY ERROR CAUSES THE  COMMAND  THAT  READS 
*             THE  DATA  FROM  THE  FSC  TO  ABORT, REPORT A FSC MEMORY 
*             PARITY ERROR IF SCOPING LOOP IS NOT SELECTED. 
*         12. CHECK THE DATA READ FROM THE FSC MEMORY.
*         13. REPEAT STEPS 10 THROUGH 12 UNTIL ALL LOCATIONS IN THE FSC 
*             MEMORY HAVE BEEN READ AND CHECKED.
*         14. IF REPEAT CONDITION IS SELECTED, REPEAT STEPS  4  THROUGH 
*             13. 
*         15. REPEAT STEPS 3 THROUGH 16 USING A  DATA  PATTERN  OF  252 
*             OCTAL (AAAA HEXADECIMAL). 
*         16. IF REPEAT MODULE IS SELECTED, REPEAT STEPS 1 THROUGH  15. 
*          17. IF  ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE 
*             MODULE, SEND A MESSAGE INDICATING THE  NUMBER  OF  ERRORS 
*             DETECTED BY THE MODULE TO DISPLAY, PRINT, AND DAYFILE.
*         18. EXIT THE MODULE.
/ 
*         ENTRY-
*         B4 REGISTER CONTAINS 100 OCTAL. 
*         B9 REGISTER CONTAINS THE NUMBER OF 80 HEXADECIMAL WORD BLOCKS 
*            REQUIRED  TO  WRITE  OR  READ  THE ENTIRE FSC MEMORY BEING 
*            TESTED.
*         B13 REGISTER CONTAINS THE MODULE NUMBER.
*         OB(70) AND OB(71) CONTAINS THE DATA PATTERNS TO BE TESTED.
* 
*         EXIT- 
*         THE FSC PROCESSOR MASTER CLEARED. 
*         SUBMODULES CALLED-
*         FSM98A - PROCESS PRODUCT OVERLAY ERRORS.
*         FSM98C - PROCESS MODULE DETECTED ERRORS.
*         FSM98D - POST ERROR DISPLAY 
* 
*         REGISTERS USED- 
*         B5  - DATA PATTERN COUNTER. 
*         B6  - UPPER 8 BITS OF THE FSC MEMORY ADDRESS. 
*         B7  - LOWER 8 BITS OF THE FSC MEMORY ADDRESS. 
*         B8  - FSC MEMORY BUFFER COUNTER.
*         B10 - DATA ERROR BUFFER POINTER.
*         B11 - NUMBER OF PRODUCT OVERLAY COMMAND ABORTED.
*         B14 - MODULE ERROR COUNT. 
*         B15 - MODULE LOOP COUNT.
*         BA  - DATA BUFFER BASE ADDRESS. 
*         EA  - STANDARD USAGE. 
*         EC  - STANDARD USAGE. 
*         EM  - STANDARD USAGE. 
*         ES  - STANDARD USAGE. 
*         WC  - WORD COUNT FOR COMMANDS.
* 
*         BUFFERS USED- 
*         IB(100) TO IB(500) - INPUT DATA BUFFER. 
*         OB(100) TO OB(500) - OUTPUT DATA BUFFER.
*         OB(50)  MAX ERROR COUNT 
* 
* 
* 
0  FORMAT FSM02 - ALTERNATING ONES TEST 
1  FORMAT FSM02 ERROR(S) = *DECD
2  FORMAT FSM02 EC=*DECD, LC=*DECD
* 
/---------DATA PATTERNS FOR THE MODULES.
* 
   DATA (OB(70),H) 55AA 
* 
/---------EQUATES FOR THE MODULE. 
* 
   EQUATE PMC=740, CDCN=3 
   EQUATE SETADDR=500, HSTATUS=704, WRT=702, RDD=701
   EQUATE CCMP=1, CMEMRD=4, CMEMWR=5, CPMC=6, CRES=10B
* 
/---------DISPLAY MODULE RUNNING MESSAGE. 
* 
30 MSG 0 TO DISPLAY,PRINT    *DISPLAY RUNNING MESSAGE 
   B5=0                       *INITIALIZE PASS COUNTER
   OB(50)=20B                      *INITIALIZE MAX ERROR COUNT
   B14=0                      *INITIALIZE ERROR COUNTER 
   B4=100                    *B4 REGISTER EQUALS 100
   B9=P1                     *BUILD MEMORY BLOCK COUNT
   IF(B9.EQ.0)B9=1           *IF DEFAULT MEMORY PARAMETER 
   B9=B9+1.LS.6 
   B13=2                     *MODULE NUMBER 
32 DUP OB(B5+70) TO OB(B4) FOR 400  *GENERATE PATTERN 
* 
/---------RESERVE FSC CH. AND MASTER CLEAR THE PROCESSOR. 
* 
34 GOSUB 70                  *RESERVE FSC CHANNEL 
   B11=CPMC                  *PMC COMMAND NUMBER
   FUNC PMC, ABT 74          *MASTER CLEAR THE FSC
* 
/---------INITIALIZE REGISTERS FOR WRITING FSC MEMORY.
* 
   OB(501) = 0               *FSC ADDRESS 
   OB(502) = 200             *FSC LENGTH
   B6=SETADDR 
   GOSUB 52 
   B11=0                     *FUNCTION NUMBER COMMAND 
   FUNC WRT, ABT 74            *FUNCTION WRITE FSC
   B8=0 
* 
/---------WRITE THE DATA PATTERN INTO FSC MEMORY. 
* 
36 BA=B4                     *INIT. BASE ADDRESS OF BUFFER
   WC=400                    *INITIALIZE WRITE WORD COUNT 
   B11 = CMEMWR              *MEMORY WRITE COMMAND NUMBER 
   OUTB CHAIN WC WORDS FROM OB(BA), ABT 74       *WRITE 
   GOTO 36 WHILE (B8+1.NE.B9)  *LOOP TO WRITE ALL OF MEMORY 
   B11 = 3                   *DCN COMMAND NUMBER
   DCN, ABT 74               *DISCONNECT FSC CHANNEL
* 
/---------READ AND CHECK ALL LOCATIONS IN FSC MEMORY. 
* 
   B10=0                     *INITIALIZE ERROR INDEX
   B8=0                      *INITIALIZE BUFFER COUNTER 
40 GOSUB 70                  *RESERVE FSC CHANNEL 
   OB(502)=200                *FSC LENGTH 
   WC=400                    *INITIALIZE WORD COUNT 
   BA=B4                     *INIT. BASE ADDRESS OF BUFFER
   B6=B8.RS.5.OR.SETADDR
   OB(501)=B8.AND.37.LS.7 
   GOSUB 52 
   B11=0                      *FUNCTION COMMAND NUMBER
   FUNC RDD, ABT 74 
   B11=CMEMRD                *MEMORY READ COMMAND NUMBER
   INB WC WORDS TO IB(BA), ABT 74 
   GOSUB 54 
42 B11=CCMP                  *COMPARE COMMAND NUMBER
   COMPARE OB(BA) TO IB(BA) FOR WC,ABT 60  *CHECK DATA READ 
   GOTO 40 WHILE (B8+1.NE.B9)  *LOOP TO READ ALL OF MEMORY
* 
/---------DISPLAY ANY REMAINING DATA ERRORS.
* 
46 IF(B10.NE.0) ERROR 0/2 GOSUB 66  *PROCESS DATA ERRORS
* 
/---------PROCESS REPEAT CONDITION. 
* 
   IF(ES.AND.RC.EQ.0) GOTO 50  *IF REPEAT CONDITION OFF 
   IF(B14.GE.OB(50)) OB(50)=B14+20B  *INCREASE MAX ERROR COUNT
   B15=B15+1                   *UPDATE LOOP COUNT 
   GOTO 34                     *GO TO REPEAT THE CONDITION
50 GOTO 32 WHILE (B5+1.NE.2)  *LOOP TO DO TWO PASSES
* 
/---------PROCESS REPEAT MODULE.
* 
   IF(ES.AND.RM.NE.0)GOTO 30   *IF REPEAT MODULE SELECTED 
   IF(B14.NE.0)MSG 1 (B14) TO DISPLAY,PRINT,DAYFILE 
   EXIT                        *EXIT THE MODULE 
* 
/---------SUBROUTINE TO SET FSC ADDRESS AND LENGTH. 
* 
52 B11=2                      *SET FSC ADDRESS COMMAND NUMBER 
   FUNC B6, ABT 74
   OUTB 2 WORDS FROM OB(501), ABT 74    *WRITE
54 B11= 0                     *STATUS COMMAND NUMBER
   FUNC HSTATUS, ABT 74       *FUNCTION FSC FOR STATUS
   B11=4                     *INB COMMAND NUMBER
   INB 1 WORDS TO IB(504), ABT 74          *READ STATUS 
   IF(IB(504).AND.3400.EQ.0) RETURN        *IF NO STATUS ERROR
   B11=11 
   B14=B14+1                 *UPDATE ERROR COUNT
   ERROR 0/1 GOSUB 66        *PROCESS ERROR 
   ENDSUB GOTO 46 
* 
/---------PROCESS ABORT ON COMPARE ERROR. 
* 
60 GOTO 46 WHILE (B14+1.GE.OB(50))     *UPDATE ERROR COUNT
   BA=WC.AND.7776+BA           *BUILD BUFFER INDEX
   IF(ES.AND.SL.NE.0) GOTO 62  *IF SCOPING LOOP ON
   IB(B10)=B8                  *SAVE BUFFER COUNTER 
   IB(B10+1)=BA-B4               *SAVE BUFFER INDEX 
   COPY OB(BA) TO IB(B10+2) FOR 2  *SAVE EXPECTED DATA
   COPY IB(BA) TO IB(B10+4) FOR 2  *SAVE ACTUAL DATA
   B10=B10+10                *UPDATE BUFFER POINTER 
   IF(B10.EQ.B4) ERROR 0/2 GOSUB 66  *REPORT DATA ERRORS
62 BA=BA+2                   *RESET BUFFER INDEX
   WC=500-BA                 *RESET COMPARE WORD COUNT
   GOTO 42                   *RETURN TO COMPLETE DATA CHECK 
* 
/---------REPORT DATA ERRORS IF NOT SCOPING.
* 
66 IF(ES.AND.SL.NE.0) RETURN   *IF SCOPING LOOP ON
    CALL 98C                   *REPORT ERRORS 
* 
/---------POST RUNNING MESSAGE AND RESERVE FSC CHANNEL. 
* 
70 IF(ES.AND.SL.EQ.0)MSG 0 TO DISPLAY 
   IF(ES.AND.SL.NE.0)MSG 2(B14,B15) TO DISPLAY
   B11=CRES                  *RES COMMAND NUMBER
   RES,ABT 74                *RESERVE FSC CHANNEL 
   RETURN                    *EXIT THE SUBROUTINE 
* 
/---------PROCESS COMMAND ABORTS IN THE MODULE. 
* 
74 B14=B14+1                 *UPDATE ERROR COUNT
   IF(ES.AND.SL.EQ.0) CALL 98A  *PROCESS ABORT ERROR
   ENDSUB GOTO 46               *GO TO END OF THE CONDITION 
   END 30                       *END OF THE MODULE
COMPILE                      *FSM02 ALTERNATING ONES TEST 
   MODULE FSM03,6000(10,11,12,45,56)LOCK
***       FSM03 - SLIDING ZERO TEST TEST
**
*         FSM03 - SLIDING ZERO TEST TEST
*         ------------------------------- 
* 
* 
*         PURPOSE-
*         TEST THE FSC MEMORY USING AN 8 BIT SLIDING ZERO DATA  PATTERN 
*         (FEFE,   FDFD,   FBFB,  F7F7,  EFEF,  DFDF  ,BFBF,  AND  7F7F 
*         HEXADECIMAL). 
* 
* 
*         METHOD- 
*         1.  DISPLAY THE RUNNING MESSAGE FOR THE MODULE. 
*         2.  INITIALIZE THE CONDITION NUMBER BY SETTING IT TO ZERO.
*         3.  GENERATE THE DATA BUFFER OF THE DATA PATTERN TO  BE  USED 
*             TO  TEST  THE FSC MEMORY FOR THIS CONDITION.  THE INITIAL 
*             DATA PATTERN GENERATED WILL BE FEFE HEXADECIMAL.
*         4.  DISPLAY  THE  RUNNING  MESSAGE  IF  SCOPING  LOOP  IS NOT 
*             SELECTED, OR THE REPEAT CONDITION MESSAGE IF SCOPING LOOP 
*             IS SELECTED.
*         5.  RESERVE THE CHANNEL TO THE FSC. 
*         6.  MASTER CLEAR THE PROCESSOR IN THE FSC.
*         7.  WRITE THE DATA PATTERN INTO  ALL  LOCATIONS  IN  THE  FSC 
*             MEMORY. 
*         8.  DISPLAY THE  RUNNING  MESSAGE  IF  SCOPING  LOOP  IS  NOT 
*             SELECTED, OR THE REPEAT CONDITION MESSAGE IF SCOPING LOOP 
*             IS SELECTED.
*         9.  RESERVE THE CHANNEL TO THE FSC. 
*         10. READ A BUFFER OF 80 HEXADECIMAL WORDS OF  DATA  FROM  THE 
*             FSC  MEMORY.  THE INITIAL READ WILL START AT ADDRESS ZERO 
*             IN THE FSC MEMORY.
*          11. IF  A  MEMORY PARITY ERROR CAUSES THE COMMAND THAT READS 
*             THE DATA FROM THE FSC  TO  ABORT,  REPORT  A  FSC  MEMORY 
*             PARITY ERROR IF SCOPING LOOP IS NOT SELECTED. 
*         12. CHECK THE DATA READ FROM THE FSC MEMORY.
*         13. REPEAT STEPS 10 THROUGH 12 UNTIL ALL LOCATIONS IN THE FSC 
*             MEMORY HAVE BEEN READ AND CHECKED.
*         14. IF  REPEAT  CONDITION IS SELECTED, REPEAT STEPS 4 THROUGH 
*             13. 
*         15. INCREMENT THE CONDITION NUMBER BY ONE.
*         16. REPEAT STEPS 3 THROUGH 17 USING A DATA PATTERNS OF  FDFD, 
*             FBFB, F7F7, EFEF, DFDF, BFBF, AND 7F7F HEXADECIMAL. 
*         17. IF REPEAT MODULE IS SELECTED, REPEAT STEPS 1 THROUGH  18. 
*          18. IF  ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE 
*             MODULE, SEND A MESSAGE INDICATING THE  NUMBER  OF  ERRORS 
*             DETECTED BY THE MODULE TO DISPLAY, PRINT, AND DAYFILE.
*         19. EXIT THE MODULE.
/ 
*         ENTRY-
*         B4 REGISTER CONTAINS 100 OCTAL. 
*         B9 REGISTER CONTAINS THE NUMBER OF 80 HEXADECIMAL WORD BLOCKS 
*            REQUIRED  TO  WRITE  OR  READ  THE ENTIRE FSC MEMORY BEING 
*            TESTED.
*         B13 REGISTER CONTAINS THE MODULE NUMBER.
*         OB(70) TO OB(77) CONTAINS THE DATA PATTERNS TO BE TESTED. 
* 
*         EXIT- 
*         THE FSC PROCESSOR MASTER CLEARED. 
* 
*         SUBMODULES CALLED-
*         FSM98A - PROCESS PRODUCT OVERLAY ERRORS.
*         FSM98C - PROCESS MODULE DETECTED ERRORS.
*         FSM98D - POST ERROR DISPLAY 
* 
*         REGISTERS USED- 
*         B5  - DATA PATTERN COUNTER. 
*         B6  - UPPER 8 BITS OF THE FSC MEMORY ADDRESS. 
*         B7  - LOWER 8 BITS OF THE FSC MEMORY ADDRESS. 
*         B8  - FSC MEMORY BUFFER COUNTER.
*         B10 - DATA ERROR BUFFER POINTER.
*         B11 - NUMBER OF PRODUCT OVERLAY COMMAND ABORTED.
*         B14 - MODULE ERROR COUNT. 
*         B15 - MODULE LOOP COUNT.
*         BA  - DATA BUFFER BASE ADDRESS. 
*         EA  - STANDARD USAGE. 
*         EC  - STANDARD USAGE. 
*         EM  - STANDARD USAGE. 
*         ES  - STANDARD USAGE. 
*         WC  - WORD COUNT FOR COMMANDS.
* 
*         BUFFERS USED- 
*         IB(100) TO IB(500) - INPUT DATA BUFFER. 
*         OB(100) TO OB(500) - OUTPUT DATA BUFFER.
*         OB(50)  MAX ERROR COUNT 
* 
* 
* 
* 
0  FORMAT FSM03 - SLIDING ZERO TEST 
1  FORMAT FSM03 ERROR(S) = *DECD
2  FORMAT FSM03 EC=*DECD, LC=*DECD
* 
/---------DATA PATTERNS FOR THE MODULES.
* 
   DATA (OB(70),H) FEFD,FBF7,EFDF,BF7F
* 
/---------EQUATES FOR THE MODULE. 
* 
   EQUATE PMC=740, CDCN=3 
   EQUATE SETADDR=500, HSTATUS=704, WRT=702, RDD=701
   EQUATE CCMP=1, CMEMRD=4, CMEMWR=5, CPMC=6, CRES=10B
* 
/---------DISPLAY MODULE RUNNING MESSAGE. 
* 
30 MSG 0 TO DISPLAY,PRINT    *DISPLAY RUNNING MESSAGE 
   B5=0                       *INITIALIZE PASS COUNTER
   OB(50)=20B                      *INITIALIZE MAX ERROR COUNT
   B14=0                      *INITIALIZE ERROR COUNTER 
   B4=100                    *B4 REGISTER EQUALS 100
   B9=P1                     *BUILD MEMORY BLOCK COUNT
   IF(B9.EQ.0)B9=1           *IF DEFAULT MEMORY PARAMETER 
   B9=B9+1.LS.6 
   B13=3                     *MODULE NUMBER 
32 DUP OB(B5+70) TO OB(B4) FOR 400  *GENERATE PATTERN 
* 
/---------RESERVE FSC CH. AND MASTER CLEAR THE PROCESSOR. 
* 
34 GOSUB 70                  *RESERVE FSC CHANNEL 
   B11=CPMC                  *PMC COMMAND NUMBER
   FUNC PMC, ABT 74          *MASTER CLEAR THE FSC
* 
/---------INITIALIZE REGISTERS FOR WRITING FSC MEMORY.
* 
   OB(501) = 0               *FSC ADDRESS 
   OB(502) = 200             *FSC LENGTH
   B6=SETADDR 
   GOSUB 52 
   B11=0                     *FUNCTION NUMBER COMMAND 
   FUNC WRT, ABT 74            *FUNCTION WRITE FSC
   B8=0 
* 
/---------WRITE THE DATA PATTERN INTO FSC MEMORY. 
* 
36 BA=B4                     *INIT. BASE ADDRESS OF BUFFER
   WC=400                    *INITIALIZE WRITE WORD COUNT 
   B11 = CMEMWR              *MEMORY WRITE COMMAND NUMBER 
   OUTB CHAIN WC WORDS FROM OB(BA), ABT 74       *WRITE 
   GOTO 36 WHILE (B8+1.NE.B9)  *LOOP TO WRITE ALL OF MEMORY 
   B11 = 3                   *DCN COMMAND NUMBER
   DCN, ABT 74               *DISCONNECT FSC CHANNEL
* 
/---------READ AND CHECK ALL LOCATIONS IN FSC MEMORY. 
* 
   B10=0                     *INITIALIZE ERROR INDEX
   B8=0                      *INITIALIZE BUFFER COUNTER 
40 GOSUB 70                  *RESERVE FSC CHANNEL 
   OB(502)=200                *FSC LENGTH 
   WC=400                    *INITIALIZE WORD COUNT 
   BA=B4                     *INIT. BASE ADDRESS OF BUFFER
   B6=B8.RS.5.OR.SETADDR
   OB(501)=B8.AND.37.LS.7 
   GOSUB 52 
   B11=0                      *FUNCTION COMMAND NUMBER
   FUNC RDD, ABT 74 
   B11=CMEMRD                *MEMORY READ COMMAND NUMBER
   INB WC WORDS TO IB(BA), ABT 74 
   GOSUB 54 
42 B11=CCMP                  *COMPARE COMMAND NUMBER
   COMPARE OB(BA) TO IB(BA) FOR WC,ABT 60  *CHECK DATA READ 
   GOTO 40 WHILE (B8+1.NE.B9)  *LOOP TO READ ALL OF MEMORY
* 
/---------DISPLAY ANY REMAINING DATA ERRORS.
* 
46 IF(B10.NE.0) ERROR 0/2 GOSUB 66  *PROCESS DATA ERRORS
* 
/---------PROCESS REPEAT CONDITION. 
* 
   IF(ES.AND.RC.EQ.0) GOTO 50  *IF REPEAT CONDITION OFF 
   IF(B14.GE.OB(50)) OB(50)=B14+20B  *INCREASE MAX ERROR COUNT
   B15=B15+1                   *UPDATE LOOP COUNT 
   GOTO 34                     *GO TO REPEAT THE CONDITION
50 GOTO 32 WHILE (B5+1.NE.10B)   *LOOP TO DO EIGHT PASSES 
* 
/---------PROCESS REPEAT MODULE.
* 
   IF(ES.AND.RM.NE.0)GOTO 30   *IF REPEAT MODULE SELECTED 
   IF(B14.NE.0)MSG 1 (B14) TO DISPLAY,PRINT,DAYFILE 
   EXIT                        *EXIT THE MODULE 
* 
/---------SUBROUTINE TO SET FSC ADDRESS AND LENGTH. 
* 
52 B11=2                      *SET FSC ADDRESS COMMAND NUMBER 
   FUNC B6, ABT 74
   OUTB 2 WORDS FROM OB(501), ABT 74    *WRITE
54 B11= 0                     *STATUS COMMAND NUMBER
   FUNC HSTATUS, ABT 74       *FUNCTION FSC FOR STATUS
   B11=4                     *INB COMMAND NUMBER
   INB 1 WORDS TO IB(504), ABT 74          *READ STATUS 
   IF(IB(504).AND.3400.EQ.0) RETURN        *IF NO STATUS ERROR
   B11=11 
   B14=B14+1                 *UPDATE ERROR COUNT
   ERROR 0/1 GOSUB 66        *PROCESS ERROR 
   ENDSUB GOTO 46 
* 
/---------PROCESS ABORT ON COMPARE ERROR. 
* 
60 GOTO 46 WHILE (B14+1.GE.OB(50))     *UPDATE ERROR COUNT
   BA=WC.AND.7776+BA           *BUILD BUFFER INDEX
   IF(ES.AND.SL.NE.0) GOTO 62  *IF SCOPING LOOP ON
   IB(B10)=B8                  *SAVE BUFFER COUNTER 
   IB(B10+1)=BA-B4               *SAVE BUFFER INDEX 
   COPY OB(BA) TO IB(B10+2) FOR 2  *SAVE EXPECTED DATA
   COPY IB(BA) TO IB(B10+4) FOR 2  *SAVE ACTUAL DATA
   B10=B10+10                *UPDATE BUFFER POINTER 
   IF(B10.EQ.B4) ERROR 0/2 GOSUB 66  *REPORT DATA ERRORS
62 BA=BA+2                   *RESET BUFFER INDEX
   WC=500-BA                 *RESET COMPARE WORD COUNT
   GOTO 42                   *RETURN TO COMPLETE DATA CHECK 
* 
/---------REPORT DATA ERRORS IF NOT SCOPING.
* 
66 IF(ES.AND.SL.NE.0) RETURN   *IF SCOPING LOOP ON
    CALL 98C                   *REPORT ERRORS 
* 
/---------POST RUNNING MESSAGE AND RESERVE FSC CHANNEL. 
* 
70 IF(ES.AND.SL.EQ.0)MSG 0 TO DISPLAY 
   IF(ES.AND.SL.NE.0)MSG 2(B14,B15) TO DISPLAY
   B11=CRES                  *RES COMMAND NUMBER
   RES,ABT 74                *RESERVE FSC CHANNEL 
   RETURN                    *EXIT THE SUBROUTINE 
* 
/---------PROCESS COMMAND ABORTS IN THE MODULE. 
* 
74 B14=B14+1                 *UPDATE ERROR COUNT
   IF(ES.AND.SL.EQ.0) CALL 98A  *PROCESS ABORT ERROR
   ENDSUB GOTO 46               *GO TO END OF THE CONDITION 
   END 30                       *END OF THE MODULE
COMPILE                      *FSM03 SLIDING ZERO TEST 
   MODULE FSM04,6000(10,11,12,45,56)LOCK
***       FSM04 - SLIDING ONE TEST TEST 
**
*         FSM04 - SLIDING ONE TEST TEST 
*         ------------------------------
* 
* 
*         PURPOSE-
*         TEST THE FSC MEMORY USING AN 8 BIT SLIDING ONE  DATA  PATTERN 
*         (0101,   0202,   0404,  0808,  1010,  2020  ,4040,  AND  8080 
*         HEXADECIMAL). 
* 
* 
*         METHOD- 
*         1.  DISPLAY THE RUNNING MESSAGE FOR THE MODULE. 
*         2.  INITIALIZE THE CONDITION NUMBER BY SETTING IT TO ZERO.
*         3.  GENERATE THE DATA BUFFER OF THE DATA PATTERN TO  BE  USED 
*             TO  TEST  THE FSC MEMORY FOR THIS CONDITION.  THE INITIAL 
*             DATA PATTERN GENERATED WILL BE 0101 HEXADECIMAL.
*         4.  DISPLAY  THE  RUNNING  MESSAGE  IF  SCOPING  LOOP  IS NOT 
*             SELECTED, OR THE REPEAT CONDITION MESSAGE IF SCOPING LOOP 
*             IS SELECTED.
*         5.  RESERVE THE CHANNEL TO THE FSC. 
*         6.  MASTER CLEAR THE PROCESSOR IN THE FSC.
*         7.  WRITE THE DATA PATTERN INTO  ALL  LOCATIONS  IN  THE  FSC 
*            MEMORY.
*         8.  DISPLAY  THE  RUNNING  MESSAGE  IF  SCOPING  LOOP  IS NOT 
*             SELECTED, OR THE REPEAT CONDITION MESSAGE IF SCOPING LOOP 
*             IS SELECTED.
*         9.  RESERVE THE CHANNEL TO THE FSC. 
*         10. READ  A  BUFFER  OF 80 HEXADECIMAL WORDS OF DATA FROM THE 
*             FSC MEMORY.  THE INITIAL READ WILL START AT ADDRESS  ZERO 
*             IN THE FSC MEMORY.
*         11. IF A MEMORY PARITY ERROR CAUSES THE  COMMAND  THAT  READS 
*             THE  DATA  FROM  THE  FSC  TO  ABORT, REPORT A FSC MEMORY 
*             PARITY ERROR IF SCOPING LOOP IS NOT SELECTED. 
*         12. CHECK THE DATA READ FROM THE FSC MEMORY.
*         13. REPEAT STEPS 11 THROUGH 14 UNTIL ALL LOCATIONS IN THE FSC 
*             MEMORY HAVE BEEN READ AND CHECKED.
*         14. IF REPEAT CONDITION IS SELECTED, REPEAT STEPS  4  THROUGH 
*             15. 
*         15. INCREMENT THE CONDITION NUMBER BY ONE.
*         16. REPEAT  STEPS 3 THROUGH 17 USING A DATA PATTERNS OF 0202, 
*             0404, 0808, 1010, 2020, 4040, AND 8080 HEXADECIMAL. 
*         17. IF REPEAT  MODULE IS SELECTED, REPEAT STEPS 1 THROUGH 18. 
*         18. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION  OF  THE 
*             MODULE,  SEND  A  MESSAGE INDICATING THE NUMBER OF ERRORS 
*             DETECTED BY THE MODULE TO DISPLAY, PRINT, AND DAYFILE.
*         19. EXIT THE MODULE.
/ 
*         ENTRY-
*         B4 REGISTER CONTAINS 100 OCTAL. 
*         B9 REGISTER CONTAINS THE NUMBER OF 80 HEXADECIMAL WORD BLOCKS 
*            REQUIRED TO WRITE OR READ  THE  ENTIRE  FSC  MEMORY  BEING 
*            TESTED.
*         B13 REGISTER CONTAINS THE MODULE NUMBER.
*         OB(70) TO OB(77) CONTAINS THE DATA PATTERNS TO BE TESTED. 
* 
*         EXIT- 
*         THE FSC PROCESSOR MASTER CLEARED. 
* 
*         SUBMODULES CALLED-
*         FSM98A - PROCESS PRODUCT OVERLAY ERRORS.
*         FSM98C - PROCESS MODULE DETECTED ERRORS.
*         FSM98D - POST ERROR DISPLAY 
* 
*         REGISTERS USED- 
*         B5  - DATA PATTERN COUNTER. 
*         B6  - UPPER 8 BITS OF THE FSC MEMORY ADDRESS. 
*         B7  - LOWER 8 BITS OF THE FSC MEMORY ADDRESS. 
*         B8  - FSC MEMORY BUFFER COUNTER.
*         B10 - DATA ERROR BUFFER POINTER.
*         B11 - NUMBER OF PRODUCT OVERLAY COMMAND ABORTED.
*         B14 - MODULE ERROR COUNT. 
*         B15 - MODULE LOOP COUNT.
*         BA  - DATA BUFFER BASE ADDRESS. 
*         EA  - STANDARD USAGE. 
*         EC  - STANDARD USAGE. 
*         EM  - STANDARD USAGE. 
*         ES  - STANDARD USAGE. 
*         WC  - WORD COUNT FOR COMMANDS.
* 
*         BUFFERS USED- 
*         IB(100) TO IB(500) - INPUT DATA BUFFER. 
*         OB(100) TO OB(500) - OUTPUT DATA BUFFER.
*         OB(50)  MAX ERROR COUNT 
* 
* 
0  FORMAT FSM04 - SLIDING ONE TEST
1  FORMAT FSM04 ERROR(S) = *DECD
2  FORMAT FSM04 EC=*DECD, LC=*DECD
* 
/---------DATA PATTERNS FOR THE MODULES.
* 
   DATA (OB(70),H) 0102,0408,1020,4080
* 
/---------EQUATES FOR THE MODULE. 
* 
   EQUATE PMC=740, CDCN=3 
   EQUATE SETADDR=500, HSTATUS=704, WRT=702, RDD=701
   EQUATE CCMP=1, CMEMRD=4, CMEMWR=5, CPMC=6, CRES=10B
* 
/---------DISPLAY MODULE RUNNING MESSAGE. 
* 
30 MSG 0 TO DISPLAY,PRINT    *DISPLAY RUNNING MESSAGE 
   B5=0                       *INITIALIZE PASS COUNTER
   OB(50)=20B                      *INITIALIZE MAX ERROR COUNT
   B14=0                      *INITIALIZE ERROR COUNTER 
   B4=100                    *B4 REGISTER EQUALS 100
   B9=P1                     *BUILD MEMORY BLOCK COUNT
   IF(B9.EQ.0)B9=1           *IF DEFAULT MEMORY PARAMETER 
   B9=B9+1.LS.6 
   B13=4                     *MODULE NUMBER 
32 DUP OB(B5+70) TO OB(B4) FOR 400  *GENERATE PATTERN 
* 
/---------RESERVE FSC CH. AND MASTER CLEAR THE PROCESSOR. 
* 
34 GOSUB 70                  *RESERVE FSC CHANNEL 
   B11=CPMC                  *PMC COMMAND NUMBER
   FUNC PMC, ABT 74          *MASTER CLEAR THE FSC
* 
/---------INITIALIZE REGISTERS FOR WRITING FSC MEMORY.
* 
   OB(501) = 0               *FSC ADDRESS 
   OB(502) = 200             *FSC LENGTH
   B6=SETADDR 
   GOSUB 52 
   B11=0                     *FUNCTION NUMBER COMMAND 
   FUNC WRT, ABT 74            *FUNCTION WRITE FSC
   B8=0 
* 
/---------WRITE THE DATA PATTERN INTO FSC MEMORY. 
* 
36 BA=B4                     *INIT. BASE ADDRESS OF BUFFER
   WC=400                    *INITIALIZE WRITE WORD COUNT 
   B11 = CMEMWR              *MEMORY WRITE COMMAND NUMBER 
   OUTB CHAIN WC WORDS FROM OB(BA), ABT 74       *WRITE 
   GOTO 36 WHILE (B8+1.NE.B9)  *LOOP TO WRITE ALL OF MEMORY 
   B11 = 3                   *DCN COMMAND NUMBER
   DCN, ABT 74               *DISCONNECT FSC CHANNEL
* 
/---------READ AND CHECK ALL LOCATIONS IN FSC MEMORY. 
* 
   B10=0                     *INITIALIZE ERROR INDEX
   B8=0                      *INITIALIZE BUFFER COUNTER 
40 GOSUB 70                  *RESERVE FSC CHANNEL 
   OB(502)=200                *FSC LENGTH 
   WC=400                    *INITIALIZE WORD COUNT 
   BA=B4                     *INIT. BASE ADDRESS OF BUFFER
   B6=B8.RS.5.OR.SETADDR
   OB(501)=B8.AND.37.LS.7 
   GOSUB 52 
   B11=0                      *FUNCTION COMMAND NUMBER
   FUNC RDD, ABT 74 
   B11=CMEMRD                *MEMORY READ COMMAND NUMBER
   INB WC WORDS TO IB(BA), ABT 74 
   GOSUB 54 
42 B11=CCMP                  *COMPARE COMMAND NUMBER
   COMPARE OB(BA) TO IB(BA) FOR WC,ABT 60  *CHECK DATA READ 
   GOTO 40 WHILE (B8+1.NE.B9)  *LOOP TO READ ALL OF MEMORY
* 
/---------DISPLAY ANY REMAINING DATA ERRORS.
* 
46 IF(B10.NE.0) ERROR 0/2 GOSUB 66  *PROCESS DATA ERRORS
* 
/---------PROCESS REPEAT CONDITION. 
* 
   IF(ES.AND.RC.EQ.0) GOTO 50  *IF REPEAT CONDITION OFF 
   IF(B14.GE.OB(50)) OB(50)=B14+20B  *INCREASE MAX ERROR COUNT
   B15=B15+1                   *UPDATE LOOP COUNT 
   GOTO 34                     *GO TO REPEAT THE CONDITION
50 GOTO 32 WHILE (B5+1.NE.10B)   *LOOP TO DO TWO PASSES 
* 
/---------PROCESS REPEAT MODULE.
* 
   IF(ES.AND.RM.NE.0)GOTO 30   *IF REPEAT MODULE SELECTED 
   IF(B14.NE.0)MSG 1 (B14) TO DISPLAY,PRINT,DAYFILE 
   EXIT                        *EXIT THE MODULE 
* 
/---------SUBROUTINE TO SET FSC ADDRESS AND LENGTH. 
* 
52 B11=2                      *SET FSC ADDRESS COMMAND NUMBER 
   FUNC B6, ABT 74
   OUTB 2 WORDS FROM OB(501), ABT 74    *WRITE
54 B11= 0                     *STATUS COMMAND NUMBER
   FUNC HSTATUS, ABT 74       *FUNCTION FSC FOR STATUS
   B11=4                     *INB COMMAND NUMBER
   INB 1 WORDS TO IB(504), ABT 74          *READ STATUS 
   IF(IB(504).AND.3400.EQ.0) RETURN        *IF NO STATUS ERROR
   B11=11 
   B14=B14+1                 *UPDATE ERROR COUNT
   ERROR 0/1 GOSUB 66        *PROCESS ERROR 
   ENDSUB GOTO 46 
* 
/---------PROCESS ABORT ON COMPARE ERROR. 
* 
60 GOTO 46 WHILE (B14+1.GE.OB(50))     *UPDATE ERROR COUNT
   BA=WC.AND.7776+BA           *BUILD BUFFER INDEX
   IF(ES.AND.SL.NE.0) GOTO 62  *IF SCOPING LOOP ON
   IB(B10)=B8                  *SAVE BUFFER COUNTER 
   IB(B10+1)=BA-B4               *SAVE BUFFER INDEX 
   COPY OB(BA) TO IB(B10+2) FOR 2  *SAVE EXPECTED DATA
   COPY IB(BA) TO IB(B10+4) FOR 2  *SAVE ACTUAL DATA
   B10=B10+10                *UPDATE BUFFER POINTER 
   IF(B10.EQ.B4) ERROR 0/2 GOSUB 66  *REPORT DATA ERRORS
62 BA=BA+2                   *RESET BUFFER INDEX
   WC=500-BA                 *RESET COMPARE WORD COUNT
   GOTO 42                   *RETURN TO COMPLETE DATA CHECK 
* 
/---------REPORT DATA ERRORS IF NOT SCOPING.
* 
66 IF(ES.AND.SL.NE.0) RETURN   *IF SCOPING LOOP ON
    CALL 98C                   *REPORT ERRORS 
* 
/---------POST RUNNING MESSAGE AND RESERVE FSC CHANNEL. 
* 
70 IF(ES.AND.SL.EQ.0)MSG 0 TO DISPLAY 
   IF(ES.AND.SL.NE.0)MSG 2(B14,B15) TO DISPLAY
   B11=CRES                  *RES COMMAND NUMBER
   RES,ABT 74                *RESERVE FSC CHANNEL 
   RETURN                    *EXIT THE SUBROUTINE 
* 
/---------PROCESS COMMAND ABORTS IN THE MODULE. 
* 
74 B14=B14+1                 *UPDATE ERROR COUNT
   IF(ES.AND.SL.EQ.0) CALL 98A  *PROCESS ABORT ERROR
   ENDSUB GOTO 46               *GO TO END OF THE CONDITION 
   END 30                       *END OF THE MODULE
COMPILE                      *FSM04 SLIDING ONE TEST
   MODULE FSM05,6000(10,11,12,45,56)LOCK
***       FSM05 - ADDRESSING TEST 
**
*         FSM05 - ADDRESSING TEST 
*         ------------------------
* 
* 
*         PURPOSE-
*         TEST THE ADDRESSING IN THE FSC MEMORY.
* 
* 
*         METHOD- 
*         1.  DISPLAY  THE  RUNNING  MESSAGE  IF  SCOPING  LOOP  IS NOT 
*             SELECTED, OR THE REPEAT CONDITION MESSAGE IF SCOPING LOOP 
*             IS SELECTED.
*         2.  RESERVE THE CHANNEL TO THE FSC. 
*         3.  MASTER CLEAR THE PROCESSOR IN THE FSC.
*         4.  IF THE NUMBER OF 80 HEXADECIMAL WORDS BLOCK WRITTEN  INTO 
*             THE  FSC  MEMORY  SO  FAR  EQUALS 0, OR 200 OCTAL, OR 400 
*             OCTAL, OR 600  OCTAL,  DISPLAY  THE  RUNNING  MESSAGE  IF 
*             SCOPING  LOOP  IS  NOT  SELECTED  OR THE REPEAT CONDITION 
*             MESSAGE IF SCOPING  LOOP  IS  SELECTED  AND  RESERVE  THE 
*             CHANNEL TO THE FSC. 
*         5.  GENERATE  THE  ADDRESSING  DATA  PATTERN   FOR   THE   80 
*             HEXADECIMAL MEMORY LOCATIONS TO BE WRITTEN IN THE FSC.
*         6.  WRITE THE ADDRESSING DATA PATTERN IN THE DATA BUFFER INTO 
*             THE 80 HEXADECIMAL MEMORY LOCATIONS IN THE FSC. 
*         7.  REPEAT STEPS 5 THROUGH  8  UNTIL  THE  ENTIRE  MEMORY  IS 
*             WRITTEN IN THE FSC. 
*         8.  IF THE NUMBER OF 80 HEXADECIMAL WORDS BLOCK READ FROM THE 
*             FSC  MEMORY  SO FAR EQUALS 0, OR 200 OCTAL, OR 400 OCTAL, 
*             OR 600 OCTAL, DISPLAY THE RUNNING MESSAGE IF SCOPING LOOP 
*             IS  NOT  SELECTED  OR  THE  REPEAT  CONDITION  MESSAGE IF 
*             SCOPING LOOP IS SELECTED AND RESERVE THE CHANNEL  TO  THE 
*             FSC.
*         9.  GENERATE  THE  ADDRESSING  DATA  PATTERN   FOR   THE   80 
*             HEXADECIMAL MEMORY LOCATIONS TO BE READ FROM THE FSC. 
*         10. READ A BUFFER OF DATA FROM THE FSC MEMORY.   THE  INITIAL 
*             READ WILL START AT ADDRESS ZERO IN THE FSC MEMORY.
*         11. IF A MEMORY PARITY ERROR CAUSES THE  COMMAND  THAT  READS 
*             THE  DATA  FROM  THE  FSC  TO  ABORT, REPORT A FSC MEMORY 
*             PARITY ERROR IF SCOPING LOOP IS NOT SELECTED. 
*         12. CHECK  THE  ADDRESSING  DATA  PATTERN  READ  FROM THE FSC 
*             MEMORY. 
*         13. REPEAT  STEPS 8 THROUGH 11 UNTIL ALL LOCATIONS IN THE FSC 
*             MEMORY HAVE BEEN READ AND CHECKED.
*         14. IF  REPEAT  CONDITION IS SELECTED, REPEAT STEPS 2 THROUGH 
*             16. 
*         15. IF REPEAT  MODULE IS SELECTED, REPEAT STEPS 1 THROUGH 14. 
*         16. IF ANY ERRORS WERE DETECTED DURING THE EXECUTION  OF  THE 
*             MODULE,  SEND  A  MESSAGE INDICATING THE NUMBER OF ERRORS 
*             DETECTED BY THE MODULE TO DISPLAY, PRINT, AND DAYFILE.
*         17. EXIT THE MODULE.
/ 
*         ENTRY-
*         B4 REGISTER CONTAINS 100 OCTAL. 
*         B9 REGISTER CONTAINS THE NUMBER OF 80 HEXADECIMAL WORD BLOCKS 
*            REQUIRED TO WRITE OR READ  THE  ENTIRE  FSC  MEMORY  BEING 
*            TESTED.
*         B13 REGISTER CONTAINS THE MODULE NUMBER.
* 
*         EXIT- 
*         THE FSC PROCESSOR MASTER CLEARED. 
* 
*         SUBMODULES CALLED-
*         FSM98A - PROCESS PRODUCT OVERLAY ERRORS.
*         FSM98C - PROCESS MODULE DETECTED ERRORS.
*         FSM98D - POST ERROR DISPLAY 
* 
*         REGISTERS USED- 
*         B5  - DATA PATTERN COUNTER. 
*         B6  - UPPER 8 BITS OF THE FSC MEMORY ADDRESS. 
*         B7  - LOWER 8 BITS OF THE FSC MEMORY ADDRESS. 
*         B8  - FSC MEMORY BUFFER COUNTER.
*         B10 - DATA ERROR BUFFER POINTER.
*         B11 - NUMBER OF PRODUCT OVERLAY COMMAND ABORTED.
*         B14 - MODULE ERROR COUNT. 
*         B15 - MODULE LOOP COUNT.
*         BA  - DATA BUFFER BASE ADDRESS. 
*         EA  - STANDARD USAGE. 
*         EC  - STANDARD USAGE. 
*         EM  - STANDARD USAGE. 
*         ES  - STANDARD USAGE. 
*         WC  - WORD COUNT FOR COMMANDS.
* 
*         BUFFERS USED- 
*         IB(100) TO IB(500) - INPUT DATA BUFFER. 
*         OB(100) TO OB(500) - OUTPUT DATA BUFFER.
*         OB(50)  MAX ERROR COUNT 
* 
* 
0  FORMAT FSM05 - ADDRESSING TEST 
1  FORMAT FSM05 ERROR(S) = *DECD
2  FORMAT FSM05 EC=*DECD, LC=*DECD
* 
/---------EQUATES FOR THE MODULE. 
* 
   EQUATE PMC=740, CDCN=3 
   EQUATE SETADDR=500, HSTATUS=704, WRT=702, RDD=701
   EQUATE CCMP=1, CMEMRD=4, CMEMWR=5, CPMC=6, CRES=10B
* 
/---------DISPLAY MODULE RUNNING MESSAGE. 
* 
30 MSG 0 TO DISPLAY,PRINT    *DISPLAY RUNNING MESSAGE 
   OB(50)=20B                      *INITIALIZE MAX ERROR COUNT
   B14=0                          *INITAILIZE ERROR COUNT 
   B4=100                    *B4 REGISTER EQUALS 100
   B9=P1                     *BUILD MEMORY BLOCK COUNT
   IF(B9.EQ.0)B9=1           *IF DEFAULT MEMORY PARAMETER 
   B9=B9+1.LS.6 
   B13=5                     *MODULE NUMBER 
* 
/---------RESERVE FSC CH. AND MASTER CLEAR THE PROCESSOR. 
* 
32 GOSUB 70                  *RESERVE FSC CHANNEL 
   B11=CPMC                  *PMC COMMAND NUMBER
   FUNC PMC, ABT 74           *MASTER CLEAR THE FSC 
* 
/---------INITIALIZE REGISTERS FOR WRITING FSC MEMORY.
* 
   BA=B4                     *INIT. BASE ADDRESS OF BUFFER
   WC=400                    *INITIALIZE WRITE WORD COUNT 
   B8=0                      *INITIALIZE BUFFER COUNTER 
   OB(501)=0                 *FSC ADDRESS 
   OB(502)=200               *FSC LENGTH
   B6=SETADDR 
   GOSUB 52                  *SET ADDRESS IN FSC
   B11=0                     *FUNCTION NUMBER COMMAND 
   FUNC WRT, ABT 74 
* 
/---------WRITE THE DATA PATTERN INTO FSC MEMORY. 
* 
34 GOSUB 54                  *GENERATE DATA PATTERN 
   B11=CMEMWR                *MEMORY WRITE COMMAND NUMBER 
   OUTB CHAIN WC WORDS FROM OB(BA), ABT 74
   GOTO 34 WHILE (B8+1.NE.B9)  *LOOP TO WRITE ALL OF MEMORY 
   B11=CDCN                   *DCN COMMAND NUMBER 
   DCN, ABT 74
* 
/---------READ AND CHECK ALL LOCATIONS IN FSC MEMORY. 
* 
   B10=0                     *INITIALIZE ERROR INDEX
   B8=0                      *INITIALIZE BUFFER COUNTER 
36 GOSUB 70                  *RESERVE FSC CHANNEL 
   OB(502)=200                *FSC LENGTH 
   GOSUB 54 
   WC=400                    *INITIALIZE WORD COUNT 
   BA=B4                     *INIT. BASE ADDRESS OF BUFFER
   B6=B8.RS.5.OR.SETADDR
   OB(501)=B8.AND.37.LS.7 
   GOSUB 52 
   B11=0                      *FUNCTION COMMAND NUMBER
   FUNC RDD, ABT 74 
   B11=CMEMRD                *MEMORY READ COMMAND NUMBER
   INB WC WORDS TO IB(BA), ABT 74 
   GOSUB 53 
40 B11=CCMP                  *COMPARE COMMAND NUMBER
   COMPARE OB(BA) TO IB(BA) FOR WC,ABT 60  *CHECK DATA READ 
   GOTO 36 WHILE (B8+1.NE.B9)  *LOOP TO READ ALL OF MEMORY
* 
/---------DISPLAY ANY REMAINING DATA ERRORS.
* 
42 IF(B10.NE.0) ERROR 0/2 GOSUB 66  *PROCESS DATA ERRORS
* 
/---------PROCESS REPEAT CONDITION. 
* 
   IF(ES.AND.RC.EQ.0) GOTO 44  *IF REPEAT CONDITION OFF 
   IF(B14.GE.OB(50)) OB(50)=B14+20B  *INCREASE MAX ERROR COUNT
   B15=B15+1                   *UPDATE LOOP COUNT 
   GOTO 32                     *GO TO REPEAT THE CONDITION
* 
/---------PROCESS REPEAT MODULE.
* 
44 IF(ES.AND.RM.NE.0)GOTO 30   *IF REPEAT MODULE SELECTED 
   IF(B14.NE.0)MSG 1 (B14) TO DISPLAY,PRINT,DAYFILE 
   EXIT                        *EXIT THE MODULE 
* 
/---------SUBROUTINE TO SET FSC ADDRESS AND LENGTH. 
* 
52 B11=2                      *SET FSC ADDRESS COMMAND NUMBER 
   FUNC B6, ABT 74
   OUTB 2 WORDS FROM OB(501), ABT 74    *WRITE
53 B11= 0                     *STATUS COMMAND NUMBER
   FUNC HSTATUS, ABT 74       *FUNCTION FSC FOR STATUS
   B11=4                     *INB COMMAND NUMBER
   INB 1 WORDS TO IB(504), ABT 74          *READ STATUS 
   IF(IB(504).AND.3400.EQ.0) RETURN        *IF NO STATUS ERROR
   B11=11 
   B14=B14+1                 *UPDATE ERROR COUNT
   ERROR 0/1 GOSUB 66        *PROCESS ERROR 
   ENDSUB GOTO 42 
* 
/---------GENERATE ADDRESSING DATA PATTERN. 
* 
54 IF(B8.AND.177.EQ.0) GOSUB 70  *RESERVE FSC CHANNEL 
   B6=B8.RS.1                 *SET FSC ADDRESS
   B7=B8.AND.1.LS.7 
   B0=0                      *INITIALIZE COUNTER
56 OB(B0+100)=B6             *UPPER 8 BITS OF ADDRESS 
   OB(B0+101)=B0.RS.1+B7     *LOWER 8 BITS OF ADDRESS 
   GOTO 56 WHILE (B0+2.NE.400)  *LOOP TO DO 80H ADDRESSES 
   RETURN                    *EXIT THE SUBROUTINE 
* 
/---------PROCESS ABORT ON COMPARE ERROR. 
* 
60 GOTO 42 WHILE (B14+1.GE.OB(50))     *UPDATE ERROR COUNT
   BA=WC.AND.7776+BA           *BUILD BUFFER INDEX
   IF(ES.AND.SL.NE.0) GOTO 62  *IF SCOPING LOOP ON
   IB(B10)=B8                  *SAVE BUFFER COUNTER 
   IB(B10+1)=BA-B4               *SAVE BUFFER INDEX 
   COPY OB(BA) TO IB(B10+2) FOR 2  *SAVE EXPECTED DATA
   COPY IB(BA) TO IB(B10+4) FOR 2  *SAVE ACTUAL DATA
   B10=B10+10                *UPDATE BUFFER POINTER 
   IF(B10.EQ.B4) ERROR 0/2 GOSUB 66  *REPORT DATA ERRORS
62 BA=BA+2                   *RESET BUFFER INDEX
   WC=500-BA                 *RESET COMPARE WORD COUNT
   GOTO 40                   *RETURN TO COMPLETE DATA CHECK 
* 
/---------REPORT DATA ERRORS IF NOT SCOPING.
* 
66 IF(ES.AND.SL.NE.0) RETURN   *IF SCOPING LOOP ON
    CALL 98C                   *REPORT ERRORS 
* 
/---------POST RUNNING MESSAGE AND RESERVE FSC CHANNEL. 
* 
70 IF(ES.AND.SL.EQ.0)MSG 0 TO DISPLAY 
   IF(ES.AND.SL.NE.0)MSG 2(B14,B15) TO DISPLAY
   B11=CRES                  *RES COMMAND NUMBER
   RES,ABT 74                *RESERVE FSC CHANNEL 
   RETURN                    *EXIT THE SUBROUTINE 
* 
/---------PROCESS COMMAND ABORTS IN THE MODULE. 
* 
74 B14=B14+1                 *UPDATE ERROR COUNT
   IF(ES.AND.SL.EQ.0) CALL 98A  *PROCESS ABORT ERROR
   ENDSUB GOTO 42               *GO TO END OF THE CONDITION 
   END 30                       *END OF THE MODULE
COMPILE                      *FSM05 ADDRESSING TEST 
   MODULE FSM06,6000(10,11,12,45,56)LOCK
***       FSM06 - RANDOM DATA TEST
**
*         FSM06 - RANDOM DATA TEST
*         ------------------------- 
* 
* 
*         PURPOSE-
*         TEST THE FSC MEMORY USING RANDOM DATA PATTERNS. 
* 
* 
*         METHOD- 
*         1.  DISPLAY THE RUNNING MESSAGE FOR THE MODULE. 
*         2.  SET THE CONDITION NUMBER TO ZERO. 
*         3.  INTILIALIZE THE RANDOM NUMBER GENERATOR  SEED  NUMBER  IN 
*             THE B3 REGISTER FROM THE REAL TIME CLOCK. 
*         4.  DISPLAY THE  RUNNING  MESSAGE  IF  SCOPING  LOOP  IS  NOT 
*             SELECTED, OR THE REPEAT CONDITION MESSAGE IF SCOPING LOOP 
*             IS SELECTED.
*         5.  RESERVE THE CHANNEL TO THE FSC. 
*         6.  MASTER CLEAR THE PROCESSOR IN THE FSC.
*         7.  IF  THE NUMBER OF 80 HEXADECIMAL WORDS BLOCK WRITTEN INTO 
*             THE FSC MEMORY SO FAR EQUALS 0,  OR  200  OCTAL,  OR  400 
*             OCTAL,  OR  600  OCTAL,  DISPLAY  THE  RUNNING MESSAGE IF 
*             SCOPING LOOP IS NOT  SELECTED  OR  THE  REPEAT  CONDITION 
*             MESSAGE  IF  SCOPING  LOOP  IS  SELECTED  AND RESERVE THE 
*             CHANNEL TO THE FSC. 
*         8.  GENERATE  THE  RANDOM DATA PATTERN FOR THE 80 HEXADECIMAL 
*             MEMORY LOCATIONS TO BE WRITTEN INTO THE FSC.
*         9.  WRITE THE RANDOM DATA PATTERN IN THE DATA BUFFER INTO THE 
*             80 HEXADECIMAL MEMORY LOCATIONS IN THE FSC. 
*        10.  REPEAT  STEPS  8  THROUGH  9  UNTIL THE ENTIRE MEMORY IS
*             WRITTEN IN THE FSC. 
*        11.  IF THE NUMBER OF 80 HEXADECIMAL WORDS BLOCK READ FROM THE 
*             FSC MEMORY SO FAR EQUALS 0, OR 200 OCTAL, OR  400  OCTAL, 
*             OR 600 OCTAL, DISPLAY THE RUNNING MESSAGE IF SCOPING LOOP 
*             IS NOT  SELECTED  OR  THE  REPEAT  CONDITION  MESSAGE  IF 
*             SCOPING  LOOP  IS SELECTED AND RESERVE THE CHANNEL TO THE 
*             FSC.
*        12.  GENERATE  THE RANDOM DATA PATTERN FOR THE 80 HEXADECIMAL
*             MEMORY LOCATIONS TO BE READ FROM THE FSC. 
*        13.  READ  A  BUFFER OF DATA FROM THE FSC MEMORY.  THE INITIAL 
*             READ WILL START AT ADDRESS ZERO IN THE FSC MEMORY.
*        14.  IF  A  MEMORY PARITY ERROR CAUSES THE COMMAND THAT READS
*             THE DATA FROM THE FSC  TO  ABORT,  REPORT  A  FSC  MEMORY 
*             PARITY ERROR IF SCOPING LOOP IS NOT SELECTED. 
*        15.  CHECK THE RANDOM DATA PATTERN READ FROM THE FSC MEMORY. 
*        16.  REPEAT STEPS 11 THROUGH 15 UNTIL ALL LOCATIONS IN THE FSC 
*             MEMORY HAVE BEEN READ AND CHECKED.
*        17.  IF  REPEAT  CONDITION IS SELECTED, REPEAT STEPS 4 THROUGH 
*             16. 
*        18.  INCREMENT  THE  CONDITION  NUMBER  BY  ONE  AND  IF  THE
*             CONDITION NUMBER IS NOT EQUAL TO THREE,  REPEAT  STEPS  2 
*             THROUGH 20. 
*        19.  IF REPEAT MODULE IS SELECTED, REPEAT STEPS 1 THROUGH  18. 
*        20.  IF  ANY ERRORS WERE DETECTED DURING THE EXECUTION OF THE
*             MODULE, SEND A MESSAGE INDICATING THE  NUMBER  OF  ERRORS 
*             DETECTED BY THE MODULE TO DISPLAY, PRINT, AND DAYFILE.
*        21.  EXIT THE MODULE.
* 
*         ENTRY-
*         B4 REGISTER CONTAINS 100 OCTAL. 
*         B9 REGISTER CONTAINS THE NUMBER OF 80 HEXADECIMAL WORD BLOCKS 
*            REQUIRED  TO  WRITE  OR  READ  THE ENTIRE FSC MEMORY BEING 
*            TESTED.
*         B13 REGISTER CONTAINS THE MODULE NUMBER.
* 
*         EXIT- 
*         THE FSC PROCESSOR MASTER CLEARED. 
* 
*         SUBMODULES CALLED-
*         FSM98A - PROCESS PRODUCT OVERLAY ERRORS.
*         FSM98C - PROCESS MODULE DETECTED ERRORS.
*         FSM98D - POST ERROR DISPLAY 
* 
*         REGISTERS USED- 
*         B5  - DATA PATTERN COUNTER. 
*         B6  - UPPER 8 BITS OF THE FSC MEMORY ADDRESS. 
*         B7  - LOWER 8 BITS OF THE FSC MEMORY ADDRESS. 
*         B8  - FSC MEMORY BUFFER COUNTER.
*         B10 - DATA ERROR BUFFER POINTER.
*         B11 - NUMBER OF PRODUCT OVERLAY COMMAND ABORTED.
*         B14 - MODULE ERROR COUNT. 
*         B15 - MODULE LOOP COUNT.
*         BA  - DATA BUFFER BASE ADDRESS. 
*         EA  - STANDARD USAGE. 
*         EC  - STANDARD USAGE. 
*         EM  - STANDARD USAGE. 
*         ES  - STANDARD USAGE. 
*         WC  - WORD COUNT FOR COMMANDS.
* 
*         BUFFERS USED- 
*         IB(100) TO IB(500) - INPUT DATA BUFFER. 
*         OB(100) TO OB(500) - OUTPUT DATA BUFFER.
*         OB(50)  MAX ERROR COUNT 
* 
* 
0  FORMAT FSM06 - RANDOM DATA TEST
1  FORMAT FSM06 ERROR(S) = *DECD
2  FORMAT FSM06 EC=*DECD, LC=*DECD
* 
*---------EQUATES FOR THE MODULE. 
* 
   EQUATE PMC=740, CDCN=3 
   EQUATE SETADDR=500, HSTATUS=704, WRT=702, RDD=701
   EQUATE CCMP=1, CMEMRD=4, CMEMWR=5, CPMC=6, CRES=10B
* 
*---------DISPLAY MODULE RUNNING MESSAGE. 
* 
30 MSG 0 TO DISPLAY,PRINT    *DISPLAY RUNNING MESSAGE 
   OB(50)=20B                      *INITIALIZE MAX ERROR COUNT
   B14=0                       *INITIALIZE ERROR COUNT
   B4=100                    *B4 REGISTER EQUALS 100
   B9=P1                     *BUILD MEMORY BLOCK COUNT
   IF(B9.EQ.0)B9=1           *IF DEFAULT MEMORY PARAMETER 
   B9=B9+1.LS.6 
   B13=6                     *MODULE NUMBER 
   B5=0                      *INITIALIZE PASS COUNTER 
32 B3=RT                     *RANDOM NUMBER SEED
* 
/---------RESERVE FSC CH. AND MASTER CLEAR THE PROCESSOR. 
* 
34 GOSUB 70                  *RESERVE FSC CHANNEL 
   B11=CPMC                  *PMC COMMAND NUMBER
   FUNC PMC, ABT 74          *MASTER CLEAR THE FSC
* 
/---------INITIALIZE REGISTERS FOR WRITING FSC MEMORY.
* 
   BA=B4                     *INIT. BASE ADDRESS OF BUFFER
   WC=400                    *INITIALIZE WRITE WORD COUNT 
   OB(500)=B3                *INITIALIZE SEED NUMBER
   B8=0                      *INITIALIZE BUFFER COUNTER 
   GOSUB 70 
   OB(501)=0
   OB(502)=200
   B6=SETADDR 
   GOSUB 52 
   B11=0                     *FUNCTION NUMBER COMMAND 
* 
/---------WRITE THE DATA PATTERN INTO FSC MEMORY. 
* 
   FUNC WRT, ABT 74 
36 GOSUB 54                  *GENERATE DATA PATTERN 
   B11=CMEMWR                *MEMORY WRITE COMMAND NUMBER 
   OUTB CHAIN WC WORDS FROM OB(BA), ABT 74            *WRITE
   GOTO 36 WHILE (B8+1.NE.B9)  *LOOP TO WRITE ALL OF MEMORY 
   B11=CDCN 
   DCN, ABT 74
* 
/---------READ AND CHECK ALL LOCATIONS IN FSC MEMORY. 
* 
   B10=0                     *INITIALIZE ERROR INDEX
   B8=0                      *INITIALIZE BUFFER COUNTER 
   OB(500)=B3               *INTIALIZE SEED NUMBER
40 GOSUB 70                  *RESERVE FSC CHANNEL 
   GOSUB 54                  *GENERATE DATA PATTERN 
   B6=B8.RS.5.OR.SETADDR
   OB(501)=B8.AND.37.LS.7 
   GOSUB 52 
   B11=0                      *FUNCTION COMMAND NUMBER
   FUNC RDD, ABT 74 
   WC=400                    *INITIALIZE WORD COUNT 
   BA=B4                     *INIT. BASE ADDRESS OF BUFFER
   B11=CMEMRD                *MEMORY READ COMMAND NUMBER
   INB WC WORDS TO IB(BA), ABT 74 
   GOSUB 53 
42 B11=CCMP                  *COMPARE COMMAND NUMBER
   COMPARE OB(BA) TO IB(BA) FOR WC,ABT 60  *CHECK DATA READ 
   GOTO 40 WHILE (B8+1.NE.B9)  *LOOP TO READ ALL OF MEMORY
* 
/---------DISPLAY ANY REMAINING DATA ERRORS.
* 
46 IF(B10.NE.0) ERROR 0/2 GOSUB 66  *PROCESS DATA ERRORS
* 
/---------PROCESS REPEAT CONDITION. 
* 
   IF(ES.AND.RC.EQ.0) GOTO 50  *IF REPEAT CONDITION OFF 
   IF(B14.GE.OB(50)) OB(50)=B14+20B  *INCREASE MAX ERROR COUNT
   B15=B15+1                   *UPDATE LOOP COUNT 
   GOTO 34                     *GO TO REPEAT THE CONDITION
50 GOTO 32 WHILE (B5+1.NE.3)  *LOOP THREE TIMES 
* 
/---------PROCESS REPEAT MODULE.
* 
   IF(ES.AND.RM.NE.0)GOTO 30   *IF REPEAT MODULE SELECTED 
   IF(B14.NE.0)MSG 1 (B14) TO DISPLAY,PRINT,DAYFILE 
   GOTO 76                     *END THE MODULE AND TEST SERIES
* 
/---------SUBROUTINE TO SET FSC ADDRESS AND LENGTH. 
* 
52 B11=2                      *SET FSC ADDRESS COMMAND NUMBER 
   FUNC B6, ABT 74
   OUTB 2 WORDS FROM OB(501), ABT 74    *WRITE
53 B11= 0                     *STATUS COMMAND NUMBER
   FUNC HSTATUS, ABT 74       *FUNCTION FSC FOR STATUS
   B11=4                     *INB COMMAND NUMBER
   INB 1 WORDS TO IB(504), ABT 74          *READ STATUS 
   IF(IB(504).AND.3400.EQ.0) RETURN        *IF NO STATUS ERROR
   B11=11 
   B14=B14+1                 *UPDATE ERROR COUNT
   ERROR 0/1 GOSUB 66        *PROCESS ERROR 
   ENDSUB GOTO 46 
* 
/---------GENERATE RANDOM DATA PATTERN. 
* 
54 RANDOM TO OB(100) FOR 400,START OB(500)  *GENERATE DATA
   OB(500)=OB(477)           *SAVE SEED NUMBER
   B0=B4                     *INITIALIZE BUFFER POINTER 
56 OB(B0)=OB(B0).AND.377     *MASK DATA 
   GOTO 56 WHILE (B0+1.NE.500)  *LOOP TO DO BUFFER
   RETURN                    *EXIT THE SUBROUTINE 
* 
/---------PROCESS ABORT ON COMPARE ERROR. 
* 
60 GOTO 46 WHILE (B14+1.GE.OB(50))     *UPDATE ERROR COUNT
   BA=WC.AND.7776+BA           *BUILD BUFFER INDEX
   IF(ES.AND.SL.NE.0) GOTO 62  *IF SCOPING LOOP ON
   IB(B10)=B8                  *SAVE BUFFER COUNTER 
   IB(B10+1)=BA-B4               *SAVE BUFFER INDEX 
   COPY OB(BA) TO IB(B10+2) FOR 2  *SAVE EXPECTED DATA
   COPY IB(BA) TO IB(B10+4) FOR 2  *SAVE ACTUAL DATA
   B10=B10+10                *UPDATE BUFFER POINTER 
   IF(B10.EQ.B4) ERROR 0/2 GOSUB 66  *REPORT DATA ERRORS
62 BA=BA+2                   *RESET BUFFER INDEX
   WC=500-BA                 *RESET COMPARE WORD COUNT
   GOTO 42                   *RETURN TO COMPLETE DATA CHECK 
* 
/---------REPORT DATA ERRORS IF NOT SCOPING.
* 
66 IF(ES.AND.SL.NE.0) RETURN   *IF SCOPING LOOP ON
    CALL 98C                   *REPORT ERRORS 
* 
/---------POST RUNNING MESSAGE AND RESERVE FSC CHANNEL. 
* 
70 IF(ES.AND.SL.EQ.0)MSG 0 TO DISPLAY 
   IF(ES.AND.SL.NE.0)MSG 2(B14,B15) TO DISPLAY
   B11=CRES                  *RES COMMAND NUMBER
   RES,ABT 74                *RESERVE FSC CHANNEL 
   RETURN                    *EXIT THE SUBROUTINE 
* 
/---------PROCESS COMMAND ABORTS IN THE MODULE. 
* 
74 B14=B14+1                 *UPDATE ERROR COUNT
   IF(ES.AND.SL.EQ.0) CALL 98A  *PROCESS ABORT ERROR
   ENDSUB GOTO 46               *GO TO END OF THE CONDITION 
76 END 30                       *END OF THE MODULE
COMPILE                      *FSM06 RANDOM DATA TEST
   MODULE FSM98A,6000(10,11,12,45,56)LOCK 
***       FSM98A - POST DRIVER ERROR DISPLAY
**
*         FSM98A - POST DRIVER ERROR DISPLAY
*         ----------------------------------
* 
* 
*         PURPOSE-
*         START  BUILDING  THE  ERROR DISPLAY BY PLACING THE TEST TITLE 
*         AND MODULE TITLE LINES IN THE ERROR DISPLAY,  AND  BUILD  THE 
*         ERROR DISPLAY FOR DRIVER DETECTED ERRORS. 
* 
* 
*         METHOD- 
*         1.  MOVE THE  TEST  TITLE AND MODULE TITLE LINES TO THE ERROR 
*             DISPLAY BEING BUILT.
*         2.  SET THE B3 REGISTER TO 4 IF THE KL DISPLAY IS BEING USED, 
*             OR 3 IF THE TERMINAL IS BEING USED. 
*         3.  EXIT TO  MODULE FSM98B IF THE ERROR TO BE REPORTED IS NOT 
*             A DRIVER DETECTED ERROR.
*         4.  MOVE THE  LAST FUNCTION LINE, HARDWARE/CONTROLWARE STATUS 
*             LINE, AND ERROR MESSAGE LINE TO THE ERROR DISPLAY.
*         5.  EXIT TO MODULE FSM98C.
* 
* 
* 
0  FORMAT FSM - FSC MEMORY TEST 
1  FORMAT FSM01 - ONES AND ZEROS TEST 
2  FORMAT FSM02 - ALTERNATING ONES TEST 
3  FORMAT FSM03 - SLIDING ZERO TEST 
4  FORMAT FSM04 - SLIDING ONE TEST
5  FORMAT FSM05 - ADDRESSING TEST 
6  FORMAT FSM06 - RANDOM DATA TEST
10 FORMAT  LAST FUNCTION = *OCTB  WT = *OCTB
* 
/---------BUILD THE ERROR DISPLAY.
* 
30 MSG 0 TO LINE 0              *TEST TITLE MESSAGE 
   MSG B13 TO LINE 1            *MODULE TITLE MESSAGE 
   MSG 10 (LF,WT) TO LINE 4     *LAST FUNCTION MESSAGE
   MSG EM TO LINE 6            *ERROR DESCRIPTION MESSAGE 
   EXIT TO 98D               *GO TO POST THE COMMAND ABORTED
   END 30                    *END OF THE MODULE 
COMPILE                      *FSM98A  POST DRIVER ERROR DISPLAY 
   MODULE FSM98C,6000(10,11,12,45,56)LOCK 
***       FSM98C - POST DATA ERROR DISPLAY
**
*         FSM98C - POST DATA ERROR DISPLAY
*         --------------------------------
* 
* 
*         PURPOSE-
*         BUILD  THE  FSC  PARITY  ERROR DISPLAY AND THE FSC DATA ERROR 
*         DISPLAY.
* 
* 
*         METHOD- 
*         1.  IF THE EM REGISTER CONTAINS ZERO, GO TO STEP 5. 
*         2.  MOVE THE   MEMORY  PARITY  ERROR  MESSAGE  TO  THE  ERROR 
*             DISPLAY.
*         3.  DETERMINE THE  RANGE  OF  FSC  ADDRESSES  FOR  THE MEMORY 
*             PARITY ERROR AND MOVE THE MESSAGE TO  THE  ERROR  DISPLAY 
*             FOR THE FSC MEMORY PARITY ERROR ADDRESSES.
*         4.  EXIT TO MODULE FSM98C.
*         5.  BUILD ERROR DISPLAY LINE FOR ONE FSC MEMORY DATA
*             ERROR AND MOVE THE DISPLAY LINE TO THE ERROR DISPLAY. 
*         6.  REPEAT STEP   5   UNTIL   ALL   MEMORY  DATA  ERRORS  ARE 
*             DISPLAYED.
*         7.  CLEAR THE MEMORY DATA ERROR BUFFER POINTER. 
*         8.  EXIT TO MODULE FSM98D.
* 
* 
* 
0  FORMAT FSM - FSC MEMORY TEST 
1  FORMAT FSM01 - ONES AND ZEROS TEST 
2  FORMAT FSM02 - ALTERNATING ONES TEST 
3  FORMAT FSM03 - SLIDING ZERO TEST 
4  FORMAT FSM04 - SLIDING ONE TEST
5  FORMAT FSM05 - ADDRESSING TEST 
6  FORMAT FSM06 - RANDOM DATA TEST
10 FORMAT FSM*D E*OCTB L*OCB  FSC MEMORY DATA ERROR 
11 FORMAT FSM*D E*OCTB L*OCB  FSC MEMORY PARITY ERROR 
12 FORMAT PARITY ERROR IN ADDRESS *H*H-*H*H 
13 FORMAT ADRS   EXP.   ACT.   DIF. (HEX. VALUES) 
14 FORMAT *H*H   *H*H   *H*H   *H*H 
* 
/---------BUILD THE ERROR DISPLAY.
* 
30 MSG 0 TO LINE 0               *TEST TITLE MESSAGE
   MSG B13 TO LINE 1             *MODULE TITLE MESSAGE
   IF(EC.EQ.2) GOTO 32        *PROCESS DATA ERROR 
   IF(IB(504).AND.2400.NE.0) EXIT TO 98D
   B11=13 
   MSG 11 (B13,EC,EA) TO LINE 4  *ERROR DESCRIPTION MESSAGE 
   B7=OB(501)                *BUILD FSC ERROR ADDRESS 
   B6=B6.AND 17.LS.4
   B6=B7.RS.8.OR.B6 
   B7=B7.AND.377
   B0=B7+177
   MSG 12 (B6,B7,B6,B0) TO LINE 5  *PARITY ERROR ADDRESS
   EXIT TO 98D               *GO TO POST THE COMMAND ABORTED
* 
/---------BUILD MEMORY DATA ERROR DISPLAY.
* 
32 MSG 10 (B13,EC,EA) TO LINE 4  *ERROR DESCRIPTION MESSAGE 
   MSG 13 TO LINE 5              *DATA DESCRIPTION MESSAGE
* 
/---------BUILD DISPLAY FOR THE DATA ERRORS.
* 
   B0=0                      *INITIALIZE BUFFER POINTER 
   B1=6                      *INITIALIZE DISPLAY LINE NUMBER
34 B2=IB(B0).AND.1.LS.7      *SAVE BIT 2**7 OF FSC ADDRESS
   IB(B0)=IB(B0).RS.1        *UPPER 8 BITS OF FSC ADDRESS 
   IB(B0+1)=IB(B0+1).RS.1.+.B2  *LOWER 8 BITS OF FSC ADDRESS
   IB(B0+6)=IB(B0+2).XOR.IB(B0+4)  *UPPER BYTE OF DIFFERENCE
   IB(B0+7)=IB(B0+3).XOR.IB(B0+5)  *LOWER BYTE OF DIFFERENCE
   MSG 14, 8 WORDS FROM IB(B0) TO LINE B1  *DATA ERROR LINE 
   B1=B1+1                       *UPDATE DISPLAY LINE NUMBER
   GOTO 34 WHILE (B0+10.NE.B10)  *LOOP TO DISPLAY ERRORS
   B10=0                      *RESET DATA ERROR BUF. POINTER
   EXIT TO 98D               *GO TO POST THE COMMAND ABORTED
   END 30                    *END OF THE MODULE 
COMPILE                      *FSM98C POST FSC DATA ERROR DISPLAY
   MODULE FSM98D,6000(10,11,12,45,56)LOCK 
***       FSM98D - POST COMMAND ABORTED ERROR DISPLAY 
**
*         FSM98D - POST COMMAND ABORTED ERROR DISPLAY 
*         ------------------------------------------- 
* 
* 
*         PURPOSE-
*         INSERT  THE  DISPLAY  LINE FOR THE MALET COMMAND ABORTED INTO 
*         THE ERROR DISPLAY AND REPORT THE ERROR TO THE USER. 
* 
* 
*         METHOD- 
*         1.  DETERMINE THE LINE IN THE ERROR DISPLAY TO POST THE MALET 
*             COMMAND ABORTED ON. 
*         2.  MOVE THE MALET  COMMAND  ABORTED  MESSAGE  TO  THE  ERROR 
*             DISPLAY.
*         3.  REPORT THE ERROR TO THE USER AND WAIT FOR A GO. 
*         4.  SENT A LINE CONTAINING ALL DASHES TO THE PRINT FILE.
*         5.  RETURN TO THE CALLING MODULE. 
* 
* 
* 
0  FORMAT FSM*D ABORTED ON FUNCTION 
1  FORMAT FSM*D ABORTED ON .COMPARE. COMMAND
2  FORMAT FSM*D ABORTED ON FUNCTION 
3  FORMAT FSM*D ABORTED ON .DISCONNECT. COMMAND 
4  FORMAT FSM*D ABORTED ON INB COMMAND
5  FORMAT FSM*D ABORTED ON OUTB CHAIN COMMAND 
6  FORMAT FSM*D ABORTED ON FUNCTION 
10 FORMAT FSM*D ABORTED ON .RES. COMMAND
11 FORMAT FSM*D ABORTED WITH CHANNEL PARITY ERROR 
12 FORMAT FSM*D ABORTED ON DEADMAN TIMEOUT
13 FORMAT FSM*D ABORTED ON MEMORY PARITY ERROR
27 FORMAT --------------------------------------------------
* 
/---------POST COMMAND ABORTED AND REPORT THE ERROR.
* 
30 IF(B11.NE.11) GOTO 32
   IF(OB(504).AND.400.EQ.400) B11=12
32 MSG B11 (B13) TO LINE 3   *COMMAND ABORTED MESSAGE 
   PICTURE
   HALT                      *REPORT THE ERROR
   MSG 27 TO PRINT
   BLANK                     *CLEAR THE DISPLAY BUFFER
   EXIT                      *RETURN TO CALLING MODULE
   END 30                    *END OF THE MODULE 
COMPILE                      *FSM98D POST ERROR DISPLAY 
   MODULE FSM99,6000(10,11,12,45,56)LOCK
1  FORMAT COPYRIGHT CONTROL DATA CORP. 1980 
/ 
/   PARAMETER DESCRIPTION.
/ 
/         P0 - NOT USED.
/ 
/         P1 - 000X - MEMORY OF THE FSC BEING TESTED. 
/              0000 - DEFAULT EQUALS 16K. 
/              0001 - 16K.
/ 
/         P2 - NOT USED.
/ 
/         P3 - NOT USED.
/ 
/         P4 - NOT USED.
/ 
/         P5 - NOT USED.
/ 
/         P6 - NOT USED.
/ 
/         P7 - NOT USED.
/ 
/         P8 - NOT USED.
/ 
/         P9 - NOT USED.
/ 
/ 
/    WARNING - THE FSM TEST WILL DESTROY THE FSC CONTROLWARE
/              IN THE FSC MEMORY BEING TESTED.
/ 
2  END 2                     *END OF THE MODULE 
COMPILE,SOURCE               *FSM99 PARAMETER DOCUMENTATION 
   MODULE FSM99A,6000(10,11,12,45,56)LOCK 
/ 
/                                        RUN
/       MODULE      MODULE NAME          TIME 
/       NUMBER    AND DESCRIPTION        FSC
/       ------    ---------------        ------ 
/ 
/         01   ONES AND ZEROS TEST                       SEC
/         02   ALTERNATING ONES TEST                     SEC
/         03   SLIDING ZERO TEST                         SEC
/         04   SLIDING ONE TEST                          SEC
/         05   ADDRESSING TEST                           SEC
/         06   RANDOM DATA TEST                          SEC
/ 
1  END 1                     *END OF THE MODULE 
COMPILE,SOURCE               *FSM99A DESCRIPTION DOCUMENTATION
***       FSM - FSC MEMORY TEST 
***       APPLICATIONS
**
*         APPLICATIONS
*         ------------
* 
* 
* 
*         1.  EACH OF THE MODULES IN THE FSM TEST PROVIDE THE USER WITH 
*             THE  ABILITY  TO  REPEAT  CONDITIONS  WHICH  WILL  REPEAT 
*             WRITING AND READING THE DATA PATTERN. 
* 
*         2.  EACH OF THE MODULES IN THE FSM TEST PROVIDE THE USER WITH 
*             THE ABILITY TO REPEAT THE MODULE. 
* 
*         3.  THE DATA  ERROR DISPLAY WILL DISPLAY UP TO EIGHT (8) DATA 
*             ERRORS AT ONE ERROR STOP.  AT THE END OF EACH  CONDITION, 
*             ANY UNREPORTED DATA ERRORS WILL BE REPORTED.
* 
*         4.  ONE PARITY ERROR WILL BE REPORTED FOR EACH 40 HEXADECIMAL 
*             FSC MEMORY ADDRESSES READ.
* 
*         5.  THE PROCESSOR IN THE FSC BEING TESTED DOES NOT HAVE TO BE 
*             IN  A  WORKING  STATE  IN ORDER TO TEST THE MEMORY IN THE 
*             FSC.
* 
* 
*** 3.1.3 INTERFACES
**
*   3.1.3 INTERFACES
*         ----------
* 
*         REFER TO SECTION 3.1.2 FOR PARAMETERS AND MESSAGES. 
* 
* 
*** 3.1.4 TEST ABORTS 
**
*   3.1.4 TEST ABORTS 
*         ----------- 
* 
* 
* 
*         1.  IF THE ACCESS LEVEL IS TOO LOW TO ACCESS  THE  MEMORY  IN 
*             THE  FSC  BEING  TESTED,  THE  PARAMETER  CHECKING MODULE 
*             (FSM00) WILL LOOP UNTIL THE ACCESS LEVEL IS CORRECTED AND 
*             THE TEST RERUN. 
* 
*         2.  IF PARAMETER  WORD  P1  DOES  NOT  CONTAIN A VALUE FROM 0 
*             THROUGH 1, THE PARAMETER  CHECKING  MODULE  (FSM00)  WILL 
*             LOOP  UNTIL  PARAMETER  WORD P1 IS CORRECTED AND THE TEST 
*             RERUN.
* 
*         3.  IF THE  PRODUCT  OVERLAY  DETECTS  AN  ERROR  DURING  THE 
*             EXECUTION  OF  A  MODULE, THE ERROR WILL BE REPORTED, AND 
*             THEN THE MODULE WILL ABORT TO THE END OF THE CONDITION. 
* 
*         4.  ANYTIME AFTER REPORTING AN ERROR, IF THE ERROR  COUNT  IS 
*             EQUAL  TO  TWENTY  (20) OCTAL OR GREATER, THE MODULE WILL 
*             ABORT TO THE END OF THE CONDITION.
* 
* 
*** 3.1.5 SYSTEM ABORTS 
**
*   3.1.5 SYSTEM ABORTS 
*         ------------- 
* 
*         NO SYSTEM ABORTS SHOULD EVER BE  CAUSED  BY  THE  TEST.   THE 
*         PRODUCT  OVERLAY  DRIVER  SHOULD  PROTECT THE SYSTEM FROM ANY 
*         ABORTS. 
* 
* 
*** 3.1.6 ERRORS
**
*   3.1.6 ERRORS
*         ------
* 
* 
*         FOR EASE OF REFERENCE, THESE MESSAGES ARE  GROUPED  WITH  ALL 
*         THE TEST MESSAGES IN 3.1.2. 
* 
*** 3.1.7 PERFORMANCE 
**
*   3.1.7 PERFORMANCE 
*         ----------- 
* 
* 
***       HARDWARE
**
*         HARDWARE
*         --------
* 
* 
*         1.  THE FSM  TEST IS DESIGNED TO DETECT ALL SOLID FAILURES IN 
*             THE MEMORY IN THE FSC.
* 
*         2.  THE FSM TEST  IS  NOT  DESIGNED  TO  DETECT  INTERMITTENT 
*             FAILURES  IN  THE FSC MEMORY.  THE POSIBILITY EXISTS THAT 
*             THE TEST COULD DETECT AN INTERMITTENT MEMORY FAILURE. 
* 
*         3.  THE FSC PROCESSOR IS NOT USED IN THE  FSC  IN  WHICH  THE 
*             MEMORY  IS  BEING  TESTED AND WILL BE PLACED IN A STOPPED 
*             CONDITION.
* 
* 
***       SOFTWARE
**
*         SOFTWARE
*         --------
* 
*         MODULE RUNNING TIMES
*         ____________________
* 
*         MODULE           RUNNING
*          NAME               TIME
*         ------            --------
* 
*IF -DEF,CMSE17X
*         FSM00             2 SEC.
*         FSM01             4 SEC.
*         FSM02             4 SEC.
*         FSM03             9 SEC.
*         FSM04             9 SEC.
*         FSM05             4 SEC.
*         FSM06            16 SEC.
*         ------------------------
*         TOTALS           45 SEC.
*ENDIF
*IF DEF,CMSE17X 
*         FSM00             4 SEC.
*         FSM01             6 SEC.
*         FSM02             6 SEC.
*         FSM03            13 SEC.
*         FSM04            13 SEC.
*         FSM05             8 SEC.
*         FSM06            19 SEC.
*         ------------------------
*         TOTALS    1 MIN. 38 SEC.
*ENDIF
* 
* 
*         1.  THE RUNNING TIMES LISTED ABOVE ARE VALID FOR A 16K MEMORY 
*             CONFIGURATION.
* 
*IF -DEF,CMSE17X
*         2.  THE MODULE RUNNING TIMES LISTED ABOVE WERE MEASURED WHILE 
*             RUNNING FSM FROM A TERMINAL UNDER THE OPERATING SYSTEM. 
* 
*ENDIF
*IF DEF,CMSE17X 
*         2.  THE MODULE RUNNING TIMES LISTED ABOVE WERE MEASURED WHILE 
*             RUNNING FSM UNDER CMSE FROM A DISK. 
*ENDIF
*         3.  FSM DEGRADES THE OPERATING SYSTEM BY DESTROYING  THE  FSC 
*             CONTROLWARE IN THE FSC BEING TESTED.
* 
* 
* 
*** 3.1.8 INSTALLATION PARAMETERS 
**
*   3.1.8 INSTALLATION PARAMETERS 
*         ----------------------- 
* 
*         THE FOLLOWING ASSEMBLY OPTION CAN BE OBTAINED BY DEFINING THE 
*         FOLLOWING  NAME  DURING  THE UPDATE RUN TO CREATE THE COMPILE 
*         FILE FOR FSM- 
* 
*         *DEFINE,CMSE17X    TO ASSEMBLE FSM FOR OFF-LINE.
* 
* 
*** 4.0   PRODUCT LEVEL DESCRIPTION 
**
*   4.0   PRODUCT LEVEL DESCRIPTION 
*         ------------------------- 
* 
*** 4.1   PUBLICATIONS AFFECTED 
**
*   4.1   PUBLICATIONS AFFECTED 
*         --------------------- 
* 
* 
*         CHANGES TO FSM AFFECTS THE FOLLOWING PUBLICATIONS-
* 
*         CML REFERENCE MANUAL                                60455980
*         DEMOT REFERENCE MANUAL                              60456310
* 
*** 4.2   EQUIPMENT CONFIGURATION 
**
*   4.2   EQUIPMENT CONFIGURATION 
*         ----------------------- 
* 
*         1.  WHEN TESTING THE MEMORY IN FSC, THE TEST WILL RESIDE IN A 
*             CYBER  170  PP  AND  TEST  THE  FSC  THROUGH  THE  DEVICE 
*             INTERFACE  CONNECTED  TO  THE  CHANNEL  ON  THE CYBER 170 
*             MAINFRAME.
* 
* 
* 
*** 4.3   INTERFACES TO OTHER SOFTWARE PRODUCTS 
**
*   4.3   INTERFACES TO OTHER SOFTWARE PRODUCTS 
*         ------------------------------------- 
* 
* 
          1.  DOES NOT INTERFACE TO ANY OTHER SOFTWARE. 
* 
*** 4.4   SECURITY
**
*   4.4   SECURITY
*         --------
* 
*IF -DEF,CMSE17X
*         SECURITY IS  PROVIDED  BY  THE  OPERATING  SYSTEM FOR ON-LINE 
*         MALET THRU THE USE OF CVL.
*ENDIF
*IF DEF,CMSE17X 
*         WHILE RUNNING  UNDER DEMOT, SECURITY FOR THE TEST IS PROVIDED 
*         BY THE ACCESS LEVEL USED ON THE ASSIGN DIRECTIVE. 
*ENDIF
* 
* 
*** 5.0   RELIABILITY, AVAILABILITY AND MAINTAINABILITY STANDARDS 
**
*   5.0   RELIABILITY, AVAILABILITY AND MAINTAINABILITY STANDARDS 
*         ------------------------------------------------------- 
* 
*         REFER TO FEDERAL STANDARD CHANNEL DR ARH 3858.
* 
*** 6.0   GLOSSARY
**
*   6.0   GLOSSARY
*         --------
* 
*IF -DEF,CMSE17X
*         CML       - COMMON MAINTENANCE LIBRARY
*ENDIF
*IF DEF,CMSE17X 
*         CMSE      - COMMON MAINTENANCE SOFTWARE EXECUTIVE 
*ENDIF
*IF -DEF,CMSE17X
*         CVL       - CUSTOMER ENGINEERING VALIDATION 
*ENDIF
*IF DEF,CMSE17X 
*         DEMOT     - DIAGNOSTIC EXECUTIVE MONITOR FOR OFF-LINE TESTING 
*ENDIF
*         ERS       - EXTERNAL REFERENCE SPECIFICATION
*         FSM       - FEDERAL STANDARD CHANNEL MEMORY TEST
*         FSC       - FEDERAL STANDARD CHANNEL
*IF -DEF,CMSE17X
*         MALET     - MAINTENANCE APPLICATION LANGUAGE   FOR  EQUIPMENT 
*                     TESTING 
*ENDIF
*IF DEF,CMSE17X 
*         MSL100    - MAINTENANCE SOFTWARE LIBRARY FOR CYBER 170
*ENDIF
*         NAD       - NETWORK ACCESS DEVICE 
*         NO.       - NUMBER
*         PP        - PERIPHERAL PROCESSOR
*         PUB.      - PUBLICATION 
*         SPEC.     - SPECIFICATION 
*         RAM.      - RELIABILITY, AVAILABILITY AND MAINTAINABILITY 
*         NDM       - NAD RESIDENT MEMORY TEST ALSO USED IN FSC 
*         NDP       - NAD RESIDENT PROCESSOR TEST ALSO USED BY FSC
