*DECK FLM 
***  FLM - FSC LOADER AND MONITOR 
***       REVISION HISTORY
**
*         REVISION HISTORY
*         ----------------
* 
* 
*         FLM - FSC LOADER AND MONITOR
* 
* 
* 
* 
*         AUTHOR  -  C. J.  COPPICUS     OCTOBER 1, 1980
* 
* 
* 
*         COPYRIGHT CONTROL DATA CORP.  1980
* 
* 
*** 1.0   INTRODUCTION
**  1.0   INTRODUCTION
*   1.0   INTRODUCTION
*         ------------
* 
*         FLM IS THE FEDERAL STANDARD CHANNEL LOADER AND MONITOR. 
*         FLM WILL LOAD, START EXECUTION, AND MONITOR A FSC TEST. 
* 
**   1.1  RESTRICTIONS
*    1.1  RESTRICTIONS
*         ------------
* 
*         ANY FSC TEST WRITTEN ONTO THE SYSTEM *SCRATCH* FILE MUST
*         CONTAIN A 77 AND 6PPM OR 52 TABLES. 
*         THE 77 TABLE CONTAINS THE LENGTH OF THE 
*         FSC TEST AND IS USED BY THE FLM LOADER.  THIS TABLE, HOWEVER, 
*         IS NOT DOWNLOADED INTO THE FSC WITH THE TEST. 
* 
*         THE FSC DIAGNOSTIC MUST BE CONTAINED ON THE SYSTEM FILE CALLED
*         *SCRATCH* BEFORE A RUN COMMAND IS GIVEN TO FLM. 
* 
* 
*         THE TEST PARAMETERS MUST BE ENTERED BEFORE THE FLM LOADER IS
*         RUN OR THE FSC TEST WILL RUN UNDER DEFAULT PARAMETERS.
* 
* 
* 
* 
**   1.2   CHARACTERISTICS
*    1.2   CHARACTERISTICS
*          ---------------
* 
* 
*         1.  PROGRAM NAME ..........................   FLM 
*         2.  TEST/DIAG/UTILITY/SYSTEM ..............   UTILITY 
*         3.  SIZE (SOURCE) .........................   N/A 
*         4.  SIZE (MEMORY REQUIRED FOR EXECUTION)...   N/A 
*         5.  VIRTUAL CODE/MICROCODE/PP CODE/OTHER...   PP CODE 
*         6.  RUN TIME (DEFAULT) ....................   N/A 
*         7.  RUN TIME/QUICK LOOK (DEFAULT)..........   N/A 
*         8.  RUN TIME (ALL OPTIONS/SECTIONS) .......   N/A 
*         9.  LEVEL OF ISOLATION ....................   NONE
*         10. ON-LINE/OFF-LINE/BOTH .................   BOTH
*         11. ON-LINE SYSTEM ........................   NOS 
*         12. OFF-LINE SYSTEM .......................   CMSE
*         13. RESIDENT DURING EXECUTION .............   PP
*         14. ASSEMBLY LANGUAGE .....................   MALET 
*         15. SOURCE CODE MAINTENANCE ...............   UPDATE
*         16. USES MAINTENANCE CHANNEL ..............   NO
* 
* 
* 
*** 2.0   APPLICABLE DOCUMENTS
**  2.0   APPLICABLE DOCUMENTS
*   2.0   APPLICABLE DOCUMENTS
*         --------------------
* 
* 
*         FEDERAL STANDARD CHANNEL ADAPTER                10358283
*         MALET REFERENCE MANUAL                          60456020
*         CML REFERENCE MANUAL                            60455980
*         MALET CODING DOCUMENT                   DCS NO. ARH3297 
* 
* 
* 
*** 3.0   PROGRAM DESCRIPTION 
**  3.0   PROGRAM DESRIPTION
*   3.0   PROGRAM DESRIPTION
*         --------------- 
* 
* 
**   3.1  FLM - FSC LOADER AND MONITOR
*    3.1  FLM - FSC LOADER AND MONITOR
*         --------------- 
* 
* 
*         ABSTRACT
*         --------
* 
* 
*         IF A FSC IS TO BE TESTED, CALLING FLM WILL CAUSE FLM00
*         TO EXECUTE FIRST, CHECKING THE PARAMETER ENTRIES.  NEXT, FLM01
*         WILL EXECUTE, LOADING AND THEN VERIFYING THE LOAD OF A FSC
*         RESIDENT TEST.  THEN FLM02 WILL START THE FSC 
*         PROCESSOR AND WILL CONTINUE TO MONITOR THE EXECUTION OF 
*         THE FSC TEST.  FLM02 WILL CONTINUE IN ITS MONITOR LOOP
*         UNTIL THE TEST TERMINATES.  AT THIS TIME FLM02 WILL STOP. 
* 
* 
* 
*         UPON ENTERING THE RUN FLM COMMAND, THE PARAMETER CHECK MODULE 
* 
* 
*         (FLM00) WILL SCAN THE PARAMETERS THAT THE USER KEYED IN 
*         AND WILL INFORM THE USER OF ANY ILLEGAL ENTRIES BEFORE
*         DOWNLOADING THE TEST. 
* 
* 
* 
* 
*         THE LOCAL LOADER LOADS A FSC DIAGNOSTIC FROM THE SYSTEM 
*         *SCRATCH*  FILE INTO THE LOCAL FSC MEMORY BEGINNING AT ADDRESS
*         0.  THE LOAD IS THEN CHECKED WITH A ONE-WORD VERIFY.
* 
*         BEFORE THE LOAD PROCESS ACTUALLY BEGINS, THE LENGTH OF THE
*         TEST IS CALCULATED IN ORDER TO SET UP THE ADDRESS AND LENGTH
*         REGISTERS IN THE FSC.  IN ADDITION, A VERIFY IS DONE TO 
*         INSURE THAT THE FSC TEST IS PRESENT ON THE SYSTEM FILE
*         *SCRATCH*.  FINALLY, THE FSC PROCESSOR IS STOPPED AND 
*         THE LOADING PROCESS BEGINS.  WHEN AN END-OF-RECORD IS DETECTED
*         ON THE *SCRATCH* FILE, THE LOAD IS COMPLETE.  NOW A ONE-WORD
*         VERIFY PROCESS IS DONE TO INSURE THAT THE FSC TEST WAS WRITTEN
*         INTO THE FSC MEMORY CORRECTLY.
* 
*         THE CYBER CHANNEL IS RESERVED WHILE THE FSC TEST IS BEING 
*         DOWNLOADED INTO THE FSC.  THE CHANNEL IS THEN RELEASED
*         BY THE PP WHEN AN END-OF-RECORD IS DETECTED IN THE *SCRATCH*
*         FILE. 
* 
*         THE USER WILL BE KEPT INFORMED OF HOW THE LOAD IS PRO-
*         CEEDING VIA NORMAL MESSAGES SENT THE THE KL AND OUTPUT FILE.
* 
* 
* 
*         THE MONITOR STARTS THE FSC DIAGNOSTIC EXECUTING.  THE 
*         MONITOR THEN WATCHES THE FSC MEMORY LOCATIONS CONTAINING THE
*         TEST STATUS (COMMON FSC MEMORY).  ALL CHANGES IN THE TEST 
*         STATUS WILL BE SEEN BY THE MONITOR AND THE MONITOR WILL 
*         INFORM THE USER VIA THE KL DISPLAY, TERMINAL DISPLAY OR 
*         THE PRINT FILE.  THE USER CAN DIRECT THE COURSE OF THE
*         TEST WHILE IT IS RUNNING BY CHANGING THE EXECUTIVE SWITCHES.
*         THE MONITOR WILL FREQUENTLY DOWNLOAD THE EXECUTIVE SWITCHES 
*         INTO THE COMMON FSC MEMORY WHICH WILL BE SENSED BY THE TEST.
* 
*         ALL ERRORS OCCURING DURING TEST EXECUTION DUE TO EITHER I/O 
*         PROBLEMS, OR HARDWARE PROBLEMS DETECTED BY THE TEST WILL
*         CAUSE THE TEST AND THE MONITOR TO STOP AND REPORT THE ERROR.
*         DEPENDING ON THE TYPE OF ERROR, THE USER MAY OR MAY NOT 
*         BE ABLE TO CONTINUE TEST EXECUTION. 
* 
* 
*         ERROR PROCESSING
*         ----------------
* 
* 
*         TWO TYPES OF ERRORS ARE POSSIBLE.  FIRST ARE ERRORS DETECTED
*         BY FLM.  THESE COULD BE CHANNEL PROBLEMS, NO TEST ON SCRATCH
*         FILE, PARAMETER PROBLEMS. 
* 
*         THE SECOND TYPE OF ERROR WOULD BE ERRORS DETECTED BY THE TEST 
*         FLM LOADED AND STARTED EXECUTING. 
* 
*         IN EITHER CASE ERRORS WILL BE REPORTED TO USER BY WAY OF
*         DAYFILE MESSAGES OR KL DISPLAY, OR OUTPUT FILE. 
* 
* 
* 
*** 3.1.2 DESCRIPTION DETAILED
**  3.1.2 DESCRIPTION DETAILED
*   3.1.2 DESCRIPTION DETAILED
*         --------------------
* 
* 
* 
* 
*         AFTER THE TEST IS LOADED AND VERIFIED, THE MONITOR WILL 
*         BEGIN EXECUTION.  THE FOLLOWING DESCRIBES THE MONITOR'S 
*         PROTOCOL_ 
* 
*         1. START THE FSC PROCESSOR. CHECK IF THE PROCESSOR IS 
*            RUNNING.  IF IT IS RUNNING CONTINUE AT 2. IF THE 
*            PROCESSOR IS NOT RUNNING, THE PROCESSOR MAY HAVE 
*            A PROBLEM.  FOR THIS REASON MONITOR WILL PAUSE AND 
*            DISPLAY ADDRESS 4-F  OF FSC MEMORY.  THE 
*            HARDWARE STATUS WILL ALSO BE DISPLAYED.  IF THE
*            USER CHOOSES TO CONTINUE, HE MUST ENTER GO AND 
*            THE MONITOR WILL CONTINUE AT 2.
* 
*         2. INPUT CURRENT TEST STATUS FROM THE FSC.
* 
*         3. DOWNLOAD ALL PARAMETER ENTRIES MADE BY THE USER
*            PRIOR TO THE TEST LOAD INTO THE NDI/FLM COMMON 
*            MEMORY LOCATIONS.
* 
*         4. NOW THE MONITOR MUST WAIT FOR THE FSC TO RESPOND THAT
*            THE PARAMETERS SENT WERE RECEIVED INTO FSC MEMORY. 
*            IF THE FSC ACKNOWLEDGES THAT THE PARAMETERS WERE 
*            RECEIVED, THE MONITOR CONTINUES AT 5.  IF THE MONITOR
*            RECEIVES NO ACKNOWLEDGE WITHIN A REASONABLE AMOUNT OF
*            TIME, THE MONITOR WILL STOP AND DISPLAY THE FOLLOWING
*            ERROR MESSAGE -"NO NDI RESPONSE".  THE USER MAY
*            RECOVER FROM THIS ERROR BY ENTERING A GO.  A GO COMMAND
*            WILL ACTUALLY RE-RUN THE BASIC MONITOR LOOP BEGINNING
*            AT 2.
* 
*         5. DISPLAY THE CURRENT TEST STATUS
* 
*            A. IF THE STATUS WORD DOESNT CONTAIN ANY STATUS, THE 
*               FOLLOWING ERROR MESSAGE WILL APPEAR "NO STATE BITS
*               SET".  THE USER CAN RECOVER BY ENTERING GO TO 
*               RERUN THE BASIC MONITOR LOOP. 
* 
*            B. IF THE TEST HAS STOPPED ON A USER SELECTED STOP 
*                 THAT IS, A STOP AT BEGINNING OF TEST OR STOP AT 
*                 END OF CONDITION, THE MONITOR WILL STOP AND REPORT
*                 THIS INFORMATION TO THE USER.  THE USER 
*                 CAN THEN CONTINUE WITH A GO.
* 
*            C. THE FSC RESIDENT TEST HAS BEEN WRITTEN TO PAUSE 
*               AT FREQUENT INTERVALS IN ORDER TO GIVE THE MONITOR
*               TIME TO DISPLAY THE TEST STATUS WHILE THE TEST
*               IS RUNNING.  IF THE TEST HAS STOPPED FOR THIS 
*               REASON, THE MONITOR WILL AUTOMATICALLY GIVE THE 
*               TEST A CONTINUE.  AND THE USER WILL NOT BE
*               AWARE OF THESE STOPS. 
* 
*            D. IF THE TEST STOPPED ON AN ERROR AND SCOPE LOOPING 
*               HAS BEEN ENABLED, THE MONITOR WILL NOT STOP AND 
*               REPORT THE ERROR BUT CONTINUE AT 7. 
* 
*               IF THE TEST STOPPED ON AN ERROR BUT SCOPE LOOPING 
*               HAS NOT BEEN ENABLED, THE MONITOR WILL STOP AND 
*               REPORT THE ERROR.  WHEN THE USER ENTERS GO, 
*               THE TEST WILL CONTINUE AT 7.
* 
* 
*          6. IF THE TEST STATE INDICATES THAT THE TEST IS RUNNING
* 
*             IF THE PROCESSOR HAS STOPPED WHILE THE TEST IS EXECUTING
*             THE MONITOR MAY NOT BE AWARE OF IT.  THE ONLY WAY THE 
*             MONITOR HAS TO DETERMINE IF THE PROCESSOR IS ACTUALLY 
*             RUNNING IS TO CHECK THE FSC PROCESSOR HARDWARE STATUS.
*             THEREFORE, THE MONITOR GIVES EACH TEST CONDITION AMPLE
*             TIME TO EXECUTE.  IF THE TEST HAS NOT STOPPED AFTER THIS
*             LENGTH, THE MONITOR BECOMES SUSPICIOUS AND WILL CHECK 
*             THE HARDWARE STATUS TO SEE IF THE PROCESSOR IS RUNNING. 
*             SINCE THE TEST SHOULD HAVE STOPPED DURING THIS TIME, IT 
*             IS EVIDENT THAT THE FSC PROCESSOR IS STOPPED.  THE
*             MONITOR WILL NOW REPORT THAT THE FSC PROCESSOR IS 
*             STOPPED ALONG WITH THE HARDWARE STATUS AND FSC ADDRESSES
*             4-F .  THE USER CAN CONTINUE BY ENTERING
*             A GO. 
* 
*             IF THE TIME-OUT HAS NOT BEEN REACHED, THE MONITOR WILL
*             ASSUME THAT THE PROCESSOR AND TEST ARE STILL RUNNING
*             AND CONTINUE AT 2.
* 
*          7. THE TEST STOP HAS ALREADY BEEN PROCESSED AND THE
*             USER HAS ENTERED A GO TO CONTINUE TESTING.  THE 
*             MONITOR WILL NOW SEND A CONTINUE FUNCTION TO THE
*             TEST WHICH WILL CAUSE THE TEST TO CONTINUE EXECUTION. 
*             THE MONITOR WILL NOW CONTINUE AT 2. 
***       OPERATIONAL PROCEDURE 
**        OPERATIONAL PROCEDURE 
*         OPERATIONAL PROCEDURE 
*         --------------------- 
*IF -DEF,CMSE17X
* 
*          1. REFER TO THE CML REFERENCE MANUAL(PUB. NO. 60456210)
*             FOR RUNNING MALET UNDER NOS , NOS/BE OPERATING SYSTEMS. 
* 
*ENDIF
*IF DEF,CMSE17X 
*          1. REFER TO THE MSL100 OFFLINE MAINTENANCE SYSTEM LIBRARY
*             VOLUME 1, REFERENCE MANUAL (PUB.NO. 60455770) TO RUN
*             THE CMSE OFF-LINE MAINTANCE SYSTEM. 
*ENDIF
***       LOADING PROCEDURE 
**        LOADING PROCEDURE 
*         LOADING PROCEDURE 
*         ----------------- 
* 
* 
*          ATTACH,FLM.
*          ATTACH,NDP,NDM.
*          MALET,R=FLM. 
* 
* 
* 
***       RUNNING PROCEDURE 
**        RUNNING PROCEDURE 
*         RUNNING PROCEDURE 
*         ----------------- 
* 
*          A.  TO ASSIGN FSC EQUIPMENT TO FLM 
* 
* 
*              A,EST=XXX,AL=10. 
*          OR  A,CH=XX,EQ=0,UN=0,EST=NO,DC=56,AL=10.
* 
* 
*              USE CHANNEL ASSIGNMENT IF EQUIPMENT IS NOT IN EST. 
* 
* 
*          B.  SET SCRATCH FILE EQUAL TO TEST TO BE RUN 
* 
* 
*              SCRATCH=XXX          XXX=NDP OR NDM
* 
* 
* 
*         C. TO LOAD AND RUN ONE PASS OF A FSC TEST IN THE FSC
*            UNDER DEFAULT PARAMETERS_
* 
*                R FLM
* 
*         D.  TO LOAD AND RUN ONE PASS OF A FSC TEST IN THE FSC 
*             UNDER SELECTED PARAMETERS.
* 
*                P,P....... 
*                SETSW,CLRSW.....           EXECUTIVE SWITCHES
*               SETDS,CLRDS.....            DIAGNOSTIC SWITCHES 
*                R FLM
* 
*         E. TO REPEAT A MODULE OR SERIES OF MODULES IN THE FSC TEST
* 
*                P,P5=XXXX,P6=XXXX      SELECT THE MODULES TO RUN 
*                SETSW,RT               SET REPEAT TEST 
*                R FLM                  RUN IN FSC
* 
* 
* 
*         F. IF THE TEST TERMINATES, THE FSC TEST MUST BE RELOADED
*            IN ORDER TO RUN AGAIN. 
* 
* 
*         G. TO MAKE A PARAMETER REGISTER CHANGE WHILE THE TEST IS IN 
*            PROGRESS_
* 
*                STOP                   STOP THE TEST 
*                P,P.....               MAKE PARAMETER CHANGE 
*                R FLM02                CONTINUE TESTING FSC
* 
* 
* 
*                NOTE_ THESE PARAMETER CHANGES WILL ONLY EFFECT THE 
*                      THE REMAINDER OF THE TEST UNLESS RT IS SET.
* 
* 
*         H. TO CHANGE A SWITCH IN THE EXECUTIVE REGISTER_
* 
*                STOP                   STOP THE TEST 
*                SETSW,....             SET A SWITCH IN THE ES REGISTER 
*             OR CLRSW,....          OR CLEAR A SWITCH IN THE ES REG. 
*                GO                     CONTINUE THE TEST 
* 
* 
* 
***       PARAMETERS
**        PARAMETERS
*         PARAMETERS
*         ----------
* 
* 
* 
*          LISTED BELOW ARE IMPROTANT LOCATIONS IN FSC MEMORY.
* 
*         ADDRESS (HEX)       CONTENTS (HEX)
*         -------------       --------------
*         0040               NOT USED 
* 
* 
*         0041               DIAGNOSTIC SWITCHES
* 
*                            XXX1 - STOP ON ERROR 
*                            XXX2 - REPEAT MODULE 
*                            XXX4 - REPEAT CONDITION
*                            XX1X - STOP AT BEGINNING OF CONDITION
*                            XX2X - STOP AT BEGINNING OF MODULE 
*                            XX4X - STOP AT BEGINNING OF TEST 
*                            X1XX - STOP END OF TEST
*                            X2XX - STOP END OF CONDITION 
*                            X4XX - END OF MODULE 
*                            1XXX - PROGRAMABLE SWITCH(R10) 
*                            2XXX - REPEAT TEST 
*                            4XXX - PROGRAMMABLE SWITCH(R11)
* 
* 
* 
*         0042               FUNCTION TO DIAGNOSTIC PROGRAM 
* 
*                            0000 - RESERVED
*                            0002 - CONTINUE TEST EXECUTION 
*                            0006 - ACKNOWLEDGE INDICATOR - 
*                                   USED BY NDI/MONITOR TO
*                                   COMMUNICATE PARAMETER 
*                                   CHANGES WHILE RUNNING 
*                                   FSC TEST. 
* 
* 
*         0043                NOT USED
* 
* 
*         0044               DEVICE TYPE
* 
*                            0001  -  FSC DEVICE
*                            0002  -  NAD DEVICE
* 
* 
* 
*         0045                NOT USED
* 
* 
*         0046               P0 - NOT USED
* 
* 
*         0047               P1 - MEMORY SIZE 
* 
*                            LEGAL PARAMETERS ARE_
* 
*                            0000=16K (DEFAULT) 
*                            XXX1=16K 
* 
*         0048               P2 - NOT USED
* 
*         0049               P3 - NOT USED
* 
*         004A               P4 - DISABLES
*                            XXX1 - DISABLE ERROR MESSAGE POSTING 
* 
* 
*         004B               P5 - FIRST MODULE TO BE RUN IN THE SERIES
* 
*                            0000=MODULE 0 (DEFAULT)
*                            0001=MODULE 1
*                            0002=MODULE 2
*                            0003=MODULE 3
*                            0004=MODULE 4
*                            0005=MODULE 5
*                            0006=MODULE 6
*                            0007=MODULE 7
*                            ETC
* 
*         004C               P6 - TOTAL NUMBER OF MODULES TO BE RUN 
* 
*                            0000= ALL MODULES (DEFAULT)
* 
* 
*         004D               P7 - NOT USED
* 
* 
*         004E               P8 - NOT USED
* 
* 
*         004F               P9 - NOT USED
* 
* 
* 
*         ADDRESS (HEX)       CONTENTS (HEX)
*         -------------       --------------
* 
*         0050               STATE
* 
*                            0000 - RESERVED
*                            0001 - STOPPED ON ERROR
*                            0002 - STOPPED AT BEGINNING OF TEST
*                            0003 - STOPPED AT BEGINNING OF MODULE
*                            0004 - STOPPED AT BEGINNING OF CONDITION 
*                            0005 - STOPPED AT END OF TEST
*                            0006 - STOPPED AT END OF MODULE
*                            0007 - STOPPED AT END OF CONDITION 
*                            0008 - STOPPED AT BREAKPOINT ADDRESS 
*                            0009 - STOPPED AT NOOP 
*                            000A - STOPPED WAITING FOR USER
*                                   INTERVENTION
*                            000B - STOPPED AT REQUEST OF USER
*                            000C - STOPPED WAITING FOR CONTINUE
*                            000D - TERMINATED (HUNG) 
*                            000E - STOPPED ON UNEXPECTED INTERRUPT 
*                            000F - EXECUTING 
* 
* 
* 
*         0051               NOT USED 
* 
* 
*         0052               TEST NAME
* 
*                            AABB - AA IS RESERVED
*                                 - BB= FIRST 2 CHARACTERS OF THE TEST
*                                       NAME. 
* 
*                                   CYBER 17X USES DISPLAY CODE.
*                                   CYBER 20X USES ASCII CODE.
* 
* 
*         0052               TEST NAME
* 
*                            CCDD - CC IS RESERVED
*                                 - DD= LAST 2 CHARACTERS OF THE TEST 
*                                       NAME. 
* 
*                                   CYBER 17X USES DISPLAY CODE.
*                                   CYBER 20X USES ASCII CODE.
* 
*         0053               TEST NAME
* 
*                            CCDD - CC IS THE SECOND CHARACTER OF THE 
*                                   TEST NAME.  DD IS THE THIRD CHAR- 
*                                   ACTER OF THE TEST NAME.  (BOTH ARE
*                                   IN DISPLAY CODE FOR CYBER 17X AND 
*                                   IN ASCII FOR THE CYBER 20X.)
* 
*         0054               REVISION LEVEL OF THE DIAGNOSTIC 
* 
*         0055               ASSEMBLY DATE
* 
*                            FEXX - YEAR
*                            X1EX - MONTH 
*                            XX1F - DAY 
* 
*         0056               ASSEMBLY TIME
* 
*                            X7CX - HOUR
*                            XX3F - MINUTE
* 
*         0057               MODULE AND CONDITION NUMBER
* 
*                            MMCC - MM IS THE MODULE NUMBER.
*                                   CC IS THE CONDITION NUMBER. 
* 
*         0058               ERROR CODE 
* 
*         0059               ERROR COUNT
* 
*         005A               PASS COUNT 
* 
*                            PASS COUNT IS DEFINED AS THE NUMBER OF 
*                            TIMES THROUGH THE PORTION OF THE CODE
*                            BEING REPEATED BY THE DIAGNOSTIC SWITCHES
*                            (RT,RM OR RC). IT IS NOT TO BE CONFUSED
*                            WITH THE ITERATION COUNT WHICH IS
*                            PROGRAM-DEFINED. 
* 
*         005B               P ADDRESS OF THE LAST CALL MADE BY THE 
*                            TEST TO NDI
* 
*         005C               FIXED VALUE (F501) 
* 
*         005D               CURRENT ADDRESS BEING TESTED 
* 
*         005E               EXPECTED VALUE 
* 
*         005F               ACTUAL VALUE 
* 
*         0060               ITERATION COUNT
* 
*                            THIS IS USED BY THE DIAGNOSTIC PROGRAMMER
*                            TO REPORT THE NUMBER OF TIMES THROUGH
*                            VARIOUS LOOPS DESIGNED INTO THE TEST CODE
*                            ITSELF.
* 
* 
*         0061               LAST WORD ADDRESS
* 
*                            THIS STATUS CONTAINS THE ADDRESS OF THE
*                            LAST WORD ASSEMBLED AS PART OF THE 
*                            DIAGNOSTIC.
* 
* 
*         MESSAGE BUFFER
* 
*         0070               CHARACTERS 00,01 OF THE ERROR MESSAGE
* 
*         0071               CHARACTERS 02,03 OF THE ERROR MESSAGE
* 
*         THRU
* 
*         007D               CHARACTERS 26,27 OF THE ERROR MESSAGE
* 
* 
* 
***       MESSAGES
**        MESSAGES
*         MESSAGES
*         --------
* 
* 
*         NORMAL MESSAGES 
*         --------------- 
* 
*         FLM00 - PARAMETER CHECKER 
* 
*               - INDICATES THAT THE CONTENTS OF THE PARAMETER
*                 REGISTERS ARE BEING CHECKED FOR VALID CONTENTS. 
* 
* 
*         FLM01 - FSC LOADER
*               - INDICATES THAT A FSC TEST IS BEING LOADED INTO
*                 THE FSC MEMORY
* 
*         TTT  LOADING
*               - TTT IS THE NAME OF THE FSC TEST LOADING.
*               - INDICATES THAT A FSC TEST IS BEING DOWNLOADED INTO
*                 THE FSC MEMORY. 
* 
*         TTT  LOADED 
*               - TTT IS THE NAME OF THE FSC TEST LOADED. 
*               - INDICATES THAT A FSC TEST WAS SUCCESSFULLY LOADED 
*                 INTO THE FSC. 
* 
*         TTT  LOAD CONFIRMED 
*               - TTT IS THE NAME OF THE FSC TEST.
*               - INDICATES THAT THE FSC TEST LOAD VERIFIED.
* 
*         CALCULATING LENGTH OF TTT 
*               - TTT IS THE NAME OF THE FSC TEST.
*               - INDICATES THAT THE NUMBER OF FSC WORDS IN THE TEST
*                 IS BEING CALCULATED.
* 
* 
*         FSC LOADER AND MONITOR (FLM)
*         *A*A*D   EC=DECD   LC=DECD
*         MOD=*DD   COND=*DD   PCNT=*DECD 
*         LAST CALL TO NDI FROM ADDRESS *H*H H
*         ADDR=*H*H H 
*                     ECNT=DECD       ICNT=DECD 
*         *A*A*D EXECUTING
* 
*              *A*A*D = NAME OF FSC TEST RUNNING IN THE FSC 
*              EC = ERROR COUNT WHEN SCOPE LOOPING
*              LC = LOOP COUNT WHEN SCOPE LOOPING 
*              MOD=*DD = MODULE OF FSC TEST PRESENTLY RUNNING 
*              COND=*DD = CONDITION OF FSC TEST PRESENTLY RUNNING 
*              PCNT=*DECD = PASS COUNT OF FSC TEST
*              ADDRESS *H*H H = LAST NDI ADDRESS CALLED BY FSC TEST 
*              *A*A*D = TEST NAME / MODULE RUNNING IN FSC.
* 
* 
* 
***       ERROR MESSAGES
**        ERROR MESSAGES
*         ERROR MESSAGES
*         ------------- 
* 
* 
*         FSC LOADER AND MONITOR (FLM)
*         DIAGNOSTIC *A*A   REVISION *OB
*         ASSEMBLED ON DD/MM/YY  AT HH/MM/SS
*         *A*A*D   EC=DECD   LC=DECD
*         MOD=*DD   COND=*DD   PCNT=*DECD 
*         LAST CALL TO NDI FROM ADDRESS *H*H H
*         *A*A*D  STOPPED ON ERROR
*         ERROR MESSAGE 
*         ERROR MESSAGE(CONTINUED)
*         ADDR=*H*H H 
*                     ECNT=DECD       ICNT=DECD 
* 
*              *A*A = NAME OF FSC TEST EXECUTING
*              REVISION *OB = REVISION
*              *A*A*D = NAME OF FSC TEST RUNNING IN THE FSC 
*              EC = ERROR COUNT WHEN SCOPE LOOPING
*              LC = LOOP COUNT WHEN SCOPE LOOPING 
*              MOD=*DD = MODULE OF FSC TEST PRESENTLY RUNNING 
*              COND=*DD = CONDITION OF FSC TEST PRESENTLY RUNNING 
*              PCNT=*DECD = PASS COUNT OF FSC TEST
*              ADDRESS *H*H H = LAST NDI ADDRESS CALLED BY FSC TEST 
* 
* 
* 
*         FLM00 - PARAMETER ERROR DETECTED
* 
* 
*         PROCESSOR ERROR ON MASTER CLEAR 
*               - A COMPARE ERROR WAS DETECTED WHEN FSC MEMORY
*                 LOCATIONS 4-F WERE READ.  THIS INDICATES THAT 
*                 AN ERROR OCCURRED DURING THE MASTER CLEAR 
*                 PROCESS.  THE USER CAN CONTINUE AT OWN
*                 RISK. 
* 
*          CONTENTS OF LOCATIONS 4-F
*               - THE CONTENTS OF FSC MEMORY WORDS 4-F ARE DISPLAYED
*                 IF A PROCESSOR MASTER CLEAR ERROR OCCURRED. 
* 
* 
* 
*         TTTMM STOPPED ON ERROR
*               - TTTMM IS THE NAME OF THE TEST/MODULE THAT STOPPED.
*               - INDICATES THAT AN ERROR OCCURRED AND THE TEST HAS 
*                 STOPPED.
* 
*         ERROR MMMMMMMMMMMMMMMMMMMM
*               - TEST HAS STOPPED DUE TO AN ERROR DETECTED BY THE TEST.
*                 MMMM....M IS THE TEST ERROR MESSAGE.
* 
*         EC=EEEE       ECNT=CCCC         ICNT=IIII 
*               - EEEE = ERROR CODE 
*               - CCCC = ERROR COUNT
*               - IIII = ITERATION COUNT
* 
*         ADDR=AAAA      EXP=EEEE      ACT=RRRR 
*               - AAAA = FSC ADDRESS WHERE FAILURE OCCURRED.
*               - EEEE = EXPECTED CONTENTS OF THE FAILING ADDRESS.
*               - RRRR = ACTUAL CONTENTS OF FAILING ADDRESS.
* 
* 
*         HARDWARE STATUS=HHHH
*               - FSC HARDWARE STATUS.
* 
* 
*         CLEAR RM TO TERMINATE TEST
*               - THE REPEAT MODULE SWITCH MUST BE TURNED OFF BEFORE
*                 THE TEST IS TERMINATED.  THIS WILL PREVENT THE
*                 LOADER/MONITOR MODULES FROM REPEATING BECAUSE THE 
*                 REPEAT MODULE SWITCH WAS ACCIDENTALLY LEFT ON.
* 
* 
* 
***       ERROR CODES 
**        ERROR CODES 
*         ERROR CODES 
*         ----------- 
* 
*         E0002 - CHANNEL PARITY ERROR
*               - THE CHANNEL DETECTED A PARITY ERROR WHILE DATA
*                 WAS BEING TRANSFERRED ACROSS THE CYBER CHANNEL. 
* 
* 
*         E0003 - TEST LOADED INCORRECTLY 
*               - THE ONE-WORD VERIFY PROCESS FAILED AND INDICATES
*                 THAT THE COMPLETE TEST DOES NOT RESIDE IN FSC 
*                 MEMORY. 
* 
*         E0004 - TEST NOT IN SYSTEM FILE 
*               - BEFORE THE TEST IS DOWNLOADED TO THE FSC, THE 
*                 LOADER CHECKS TO SEE IF THE FSC TEST WAS WRITTEN
*                 INTO THE SYSTEM *SCRATCH* FILE BY LOOKING FOR THE 
*                 77 HEADER TABLE.  IF THE 77 HEADER TABLE CANT BE
*                 FOUND, THIS ERROR MESSAGE IS RECEIVED.
* 
* 
* 
***       MODULE DESCRIPTION
**
*         MODULE DESCRIPTION
*         ------------------
* 
*                FLM00  - CHECKS PARAMETERS 
* 
*                FLM01  - LOADS FSC RESIDENT TEST INTO THE LOCAL FSC
*                FLM01A - CALCULATES THE FSC TEST LENGTH
*                FLM01B - REPORTS A PROCESSOR MASTER CLEAR ERROR
* 
*                FLM02  - MONITORS THE FSC RESIDENT TEST
*                FLM02A - CREATES A PARAMETER BUFFER AND TEST STOP MASKS
*                FLM02B - REPORTS TEST STOPS
*                FLM02C - DISPLAYS NORMAL TEST STATUS 
*                FLM02E - REPORTS ERRORS
*                FLM02F - STARTS FSC
* 
* 
* 
   MODULE FLM00,6000,(10,11,12,45,56)LOCK 
***       FLM00 - PARAMETER CHECKER 
**        FLM00 - PARAMETER CHECKER 
*         FLM00 - PARAMETER CHECKER 
*         ------------------------- 
*         PURPOSE - 
*         THE CONTENTS OF THE PARAMETER REGISTERS P3,P4 
*         WILL BE CHECKED FOR ILLEGAL DATA. 
* 
*         METHOD
* 
*         1.  CHECK P1 REGISTER FOR LEGAL ENABLE BITS SET.
*             REPORT AN ERROR IF ILLEGAL BITS SET.
*         2.  CHECK P4 REGISTER FOR LEGAL DISABLE BITS
*             SET.  REPORT AN ERROR IF ILLEGAL BITS SET.
*         3.  CHECK IF REPEAT MODULE IS SET 
*         4.  CHECK P5 AND P6 FOR LEGAL ENABLES.  REPORT
*             ERROR IF ILLEGAL BITS SET.
*         5.  PAUSE FOR USER TO CORRECT THE PARAMETER 
*             WORD AND RE-RUN FLM.
* 
* 
*         ENTRY - 
*         FLM00 IS THE FIRST MODULE RUN FOLLOWING 
*         A **RUN FLM** COMMAND.
* 
*         EXIT -
*         FLM00 WILL EXIT TO THE LOADER MODULE(FLM01) PROVIDED
*         THAT THE PARAMETER WORD CONTENTS ARE VALID. 
* 
* 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         P1, P4, P5, P6,  STANDARD USAGE.
* 
* 
*         BUFFERS USED - NONE.
* 
* 
1  FORMAT FSC LOADER AND MONITOR(FLM) 
2  FORMAT FLM00 - PARAMETER CHECKER 
3  FORMAT FLM00 - PARAMETER ERROR DETECTED
4  FORMAT FLM00 - ILLEGAL MEMORY SIZE SET  (P1) 
5  FORMAT FLM00 - ILLEGAL DISABLES SET (P4) 
6  FORMAT PLEASE CORRECT PARAMETER AND RE-RUN FLM 
7  FORMAT FLM00 - RM ILLEGALLY SET
10 FORMAT FLM00 - ILLEGAL MODULE SELECT IN P5 
11 FORMAT FLM00 - ILLEGAL MODULE SELECT IN P6 
* 
/---------CHECK PARAMETER REGISTER CONTENTS 
* 
30 MSG 1 TO PRINT,DISPLAY 
   MSG 2 TO PRINT,DISPLAY 
32 IF(P1.AND.7776.EQ.0) GOTO 40  *IF LEGAL ENABLES SEL. 
   MSG 1 TO LINE 1
   MSG 2 TO LINE 2
   MSG 3 TO LINE 3
   MSG 4 TO LINE 4
   MSG 4 TO PRINT,DISPLAY 
   MSG 6 TO LINE 6
34 PAUSE
   GOTO 34
40 IF(P4.AND.7776.EQ.0) GOTO 50  *IF LEGAL DISABLES SEL.
   MSG 1 TO LINE 1
   MSG 2 TO LINE 2
   MSG 3 TO LINE 3
   MSG 5 TO LINE 4
   MSG 5 TO PRINT,DISPLAY 
   MSG 6 TO LINE 6
42 PAUSE
   GOTO 42
50 IF(ES.AND.RM.EQ.0) GOTO 60   *IF RM NOT SET
   MSG 1 TO LINE 1
   MSG 2 TO LINE 2
   MSG 3 TO LINE 3
   MSG 7 TO LINE 4
   MSG 7 TO PRINT,DISPLAY 
   MSG 6 TO LINE 6
52 PAUSE
   GOTO 52
60 IF(P5.LT.144B) GOTO 64       *IF LEGAL MODULE SELECT PARAMETER 
   MSG 1 TO LINE 1
   MSG 2 TO LINE 2
   MSG 3 TO LINE 3
   MSG 10 TO LINE 4 
   MSG 10 TO PRINT,DISPLAY
   MSG 6 TO LINE 6
62 PAUSE
   GOTO 62
64 IF(P5+P6.LT.144B) GOTO 76             *IF LEGAL MODULE SELECTS 
   MSG 1 TO LINE 1
   MSG 2 TO LINE 2
   MSG 3 TO LINE 3
   MSG 11 TO LINE 4 
   MSG 11 TO PRINT,DISPLAY
   MSG 6 TO LINE 6
66 PAUSE
   GOTO 66
76 EXIT 
   END 30 
COMPILE                      FLM00 -   CHECKS PARAMETERS
   MODULE FLM01,6000,(10,11,12,45,56)LOCK 
***       FLM01 - FSC TEST LOADER 
**        FLM01 - FSC TEST LOADER 
*         FLM01 - FSC TEST LOADER 
* 
*         PURPOSE 
*         FLM01 LOADS NDI(TEST INTERFACE) AND THE FSC TEST
*         INTO FSC MEMORY FROM THE A SYSTEM FILE.  EVEN THOUGH
*         77 AND 6PPM TABLE ARE PART OF THE SCRATCH FILE THEY 
*         ARE USED FOR FILE INFORMATION ONLY.  THESE TABLES 
*         ARE NOT TRANSFERRED TO THE FSC MEMORY.
* 
*         METHOD -
*         1. THE FSC PROCESSOR IS MASTER CLEARED. THIS WILL ALSO
*            STOP THE FSC PROCESSOR - A PREREQUISITE BEFORE LOADING 
*            THE SOFTWARE INTO THE FSC. 
*         2. THE FIRST 500B WORDS OF THE SCRATCH FILE ARE ENTERED 
*            INTO PP MEMORY(IB).  CONTAINED IN THIS 500B WORD BLOCK 
*            ARE THE 77 AND 6PPM TABLES IN ADDITION TO SOME TEST
*            SOFTWARE.
* 
*                          77 AND 6PPM TABLE
* 
*                    -------------------------------- 
*                WD  ---1------2------3-----4-----5-- 
*                   6-     -      -      -     -    - 
*                  13-     -      -      -     -    - 
*                  20-     -      -      -     -    - 
*                  25-     -      -      -     -    - 
*                  32-     -      -      -     -    - 
*                  37-     -      -      -     -    - 
*                  44-     -      -      -     -    - 
*                  51-     -      -      -     -    - 
*                  56-     -      -      -     -    - 
*                  63-     -      -      -     -    - 
*                  70-     -      -      -     -    - 
*                  75-     -      -      -     -    - 
*                 102-     -      -      -     -    - 
*                 107-     -      -      -     -113B- 
*                    -------------------------------- 
* 
*                     PP WORD 2 = NUMBER OF CM WORDS IN 77+6PPS TABLES
*                     PP WORD 113B = NUMBER OF CM WORDS IN TEST 
*                                    (THIS INCLUDES THE 6PPM TABLE WORD 
*                                     (WD.107-113B) 
* 
* 
* 
* 
*         3. THE NUMBER OF ACTUAL PP TEST WORDS PRESENTLY IN THE INPUT
*            BUFFER MUST BE CALCULATED TO SET THE WC REGISTER FOR THE 
*            FIRST WRITE TO THE FSC.
* 
*         4. EACH ADDITIONAL BLOCK (500 PP WORDS) OF THE TEST SOFTWARE
*            TO BE SENT TO THE FSC WILL INCREMENT THE BLOCK COUNTER 
*            IB(BLOCK) BY 1.  IF A BLOCK OF FEWER THAN 500 WORDS
*            REMAINS, THIS PP WORD COUNT WILL BE STORED IN IB(PPWDS). 
* 
*         5. THE FSC WORD COUNT OF THE TEST (2PP WORDS=1 FSC WORD)  IS
*            CALCULATED.
* 
*         6. USING THE FSC WORD COUNT, THE ADDRESS AND LENGTH REGISTERS 
*            IN THE DEVICE INTERFACE ARE SET. 
* 
*         7. THE TEST WILL NOW BE WRITTEN INTO FSC MEMORY.  EACH TIME A 
*            BLOCK OF DATA IS SENT, THE BLOCK COUNT WILL BE DECREMENTED 
*            UNTIL ALL BLOCKS INCLUDING THE BLOCK COUNT IN IB(PPWDS) IS 
*            TRANSFERRED.  THE I/O CHANNEL WILL REMAIN ACTIVE (USING
*            THE OUTB CHAIN COMMAND) UNTIL A DEACTIVATE COMMAND IS
*            GIVEN TO THE CHANNEL.  THIS IS THE ONLY WAY THAT A LONG
*            TEST CAN BE WRITTEN INTO THE FSC MEMORY WITHOUT RESETTING
*            THE ADDRESS AND LENGTH REGISTERS FOR EVERY BLOCK TRANSFER. 
* 
* 
* 
* 
*         ENTRY - 
*         THE TEST INCLUDING THE TEST INTERFACE MUST BE CONTAINED ON
*         THE SYSTEM FILE.
* 
*         EXIT -
*         THE TEST IS NOW LOADED INTO THE FSC MEMORY. 
* 
*         SUBMODULES REFERENCED - 
*         FLM01A - CALCULATES THE FSC TEST LENGTH 
*         FLM01B - REPORTS A PROCESSOR MASTER CLEAR ERROR 
* 
* 
* 
*         REGISTERS USED -
*         B11 - INDICATES AN ERROR IN FSC WORDS 4-F.
*         WC  = NUMBER OF WORDS IN PP BUFFER TO TRANSFER TO FSC 
*         BA  = FIRST WORD OF PP OUTPUT BUFFER TO BE SENT TO FSC MEMORY 
* 
* 
*         BUFFERS USED -
*         TO SET THE ADDRESS AND LENGTH REGISTERS IN THE FSC THE
*            FOLLOWING LOCATIONS ARE USED IN THE PP_
*         OB(501) = FSC ADDRESS REGISTER
*         OB(502) = FSC LENGTH REGISTER 
* 
*         IB(BLOCK) = IB(502) - HOLDS NUMBER OF 500 WORD BLOCKS TO
*                     TRANSFER
*         IB(PPWDS) = IB(501) - HOLDS NUMBER OF PP WORDS TO TRANSFER
*         IB(0) = WORKING BUFFER LOCATION 
*         IB(1) = WORKING BUFFER LOCATION 
* 
* 
*         REMARKS -  THE PROCESSOR MUST BE STOPPED BEFORE LOADING THE 
*         TEST.  BY ISSUING A MASTER CLEAR FUNCTION IN THIS MODULE, THE 
*         PROCESSOR IS STOPPED. THE LOAD MAY NOT FUNCTION PROPERLY IF 
*         THE PROCESSOR DOES NOT STOP.
* 
1  FORMAT FSC LOADER AND MONITOR(FLM) 
2  FORMAT FLM01 - FSC LOADER
3  FORMAT *A*A*A LOADING
4  FORMAT *A*A*A LOADED 
5  FORMAT *A*A*A LOAD CONFIRMED 
6  FORMAT E0004 - TEST NOT IN SYSTEM FILE 
7  FORMAT E0002 - CHANNEL PARITY ERROR
10 FORMAT E0003 - TEST LOADED INCORRECTLY 
11 FORMAT         ENTER GO TO RELOAD THE TEST 
12 FORMAT PROCESSOR ERROR ON MASTER CLEAR 
13 FORMAT         ENTER GO TO CONTINUE
   EQUATE CSTATUS=0704,PMC=0740 
   EQUATE SETADDR=500,LWRT=0702 
   EQUATE RD8=0701
* 
/---------MASTER CLEAR THE FSC PROCESSOR
* 
20 MSG 2 TO PRINT,DISPLAY 
22 RES, ABT 74
   FUNC PMC, ABT 74          *MC FSC PROCESSOR
   DELAY 50 USEC
   CALL 01B                  *CHECK FSC WORDS 4-F 
* 
/---------CALCULATE THE LENGTH OF THE TEST. 
* 
24 SYSREW 
   RES, ABT 74
   SYSREW 
   SYSRD, STATUS TO B10 
   IF(IB(0).NE.7700) ERROR 06/04, GOTO 74 
   CALL 01A                 *CALCULATE LENGTH OF TEST 
* 
/---------WRITE TEST INTO THE FSC MEMORY. 
* 
   SYSREW                    *REWIND SCRATCH FILE 
   OB(501)=0                 *FSC ADDRESS 
   OB(502)=0                 *FSC LENGTH
   GOSUB 50                  *SET ADDRESS AND LENGTH REG. 
   MSG 3(B5,B6,B7,B10) TO PRINT,DISPLAY 
   RES, ABT 74
30 FUNC LWRT, ABT 74
   SYSRD, STATUS TO B10          *READ BLOCK OF DATA TO PP
   RES, ABT 74
   COPY IB(BA) TO OB(0) FOR WC  *TRANSFER DATA FROM IB TO OB
   OUTB CHAIN WC WORDS FROM OB(0), ABT 74  *WRITE DATA
   BA=0                             *RESET BEGINNING ADDRESS
32 SYSRD, STATUS TO B10          *READ BLOCK OF DATA TO PP
   WC=WT
   IF(WC.EQ.0) GOTO 34
   COPY IB(BA) TO OB(0) FOR WC  *TRANSFER DATA FROM IB TO OB
   OUTB CHAIN WC WORDS FROM OB(0), ABT 74  *WRITE DATA
   IF(B10.EQ.0) GOTO 32 
34 DCN, ABT 74               *DEACTIVATE CHAN. AFTER CHAIN
   MSG 4(B5,B6,B7,B10) TO PRINT,DISPLAY 
* 
/---------VERIFY THAT THE TEST LOADED CORRECTLY(5C=F501)
* 
35 OB(501)=134B             *FSC ADDRESS
   OB(502)=1                  *FSC LENGTHS
   GOSUB 50                  *SET ADDRESS AND LENGTH REG. 
   FUNC RD8, ABT 74 
   INB 2 WORDS TO IB(0), ABT 74  *READ WORD 5C
   IF(IB(0).NE.365B), ERROR 10/03, GOTO 74  *EC=03********
   IF(IB(1).NE.001B), ERROR 10/03, GOTO 74  *EC=03********
   MSG 5(B5,B6,B7,B10) TO PRINT,DISPLAY 
   RES, ABT 74
   FUNC PMC, ABT 74 
   EXIT 
* 
/---------SUBROUTINE TO SET FSC ADDRESS AND LENGTH REGISTERS
* 
50 RES, ABT 74
   FUNC SETADDR, ABT 74 
   OUTB 2 WORDS FROM OB(501), ABT 74  *OUTPUT ADDR./LENGTH
   FUNC CSTATUS, ABT 74 
   INB 1 WORDS TO IB(0),ABT 74
   IF(IB(0).AND.2000.EQ.0) RETURN  *IF CHANNEL PARITY ERROR 
   ERROR 07/02, GOTO 74                     *EC=02**********
* 
/---------PROCESS MODULE DETECTED ERRORS
* 
74 MSG 1 TO LINE 1
   MSG 2 TO LINE 2
   MSG EM TO LINE 4                *DISPLAY ERROR MESSAGE 
   PICTURE
   HALT 
76 BLANK
   ENDSUB, GOTO 22
   END 20 
COMPILE                      FLM01 - LOADS FSC
   MODULE FLM01A,6000,(10,11,12,45,56)LOCK
***       FLM01A - CALCULATE TEST LENGTH
**        FLM01A - CALCULATE TEST LENGTH
*         FLM01A - CALCULATE TEST LENGTH
* 
* 
*         PURPOSE - 
*         FLM01A WILL CALCULATE THE LENGTH OF THE TEST
*         IN A FSC WORD COUNT.
* 
*         METHOD -
*         1. CALCULATE THE NUMBER OF TEST WORDS IN THE FIRST
*            BLOCK TRANSFER.  (REMEMBER TABLES 77 AND 6PPS
*            MAKE UP PART OF THIS BLOCK.
*         2. SET THE BA AND WC REGISTERS FOR THE FIRST
*            BLOCK TRANSFER TO THE FSC. 
*         3. CALCULATE THE TOTAL NUMBER OF PP WORDS IN THE
*            TEST.
*         4. CALCULATE THE TOTAL NUMBER OF FSC WORDS IN THE 
*            TEST.
*         5. SET IB(LENGTH1) AND IB(LENGTH2) TO HOLD THE
*            TOTAL NUMBER OF FSC WORDS TO BE WRITTEN. 
* 
* 
*         ENTRY - 
*         THE TEST HAS A HEADER WHEN IT EXISTS ON 
*         THE SCRATCH FILE.  THIS HEADER IS NOT TRANSFERED
*         TO THE FSC MEMORY.
* 
* 
*         EXIT -
*         ON EXITING FLM01A, IB(LENGTHL) AND IB(LENGTHU)
*         WILL CONTAIN THE FSC LENGTH OF THE TEST.
* 
*         SUBMODULES REFERENCED - NONE. 
* 
* 
*         REGISTERS USED -
*         B1=NUMBER OF CM WORDS IN HEADER 
*         B2=NUMBER OF PP WORDS IN HEADER 
*         B10=STATUS OF SYSTEM READ FUNCTION
*         B4=SCRATCH REGISTER 
* 
*         BA,EM,EC,WC,WT - STANDARD USAGE 
* 
*         BUFFERS USED -
*         IB(TOTALL)/IB(501)  =LOWER BITS OF PP WORD LENGTH 
*         IB(TOTALU)/IB(502) =UPPER BITS OF PP WORD LENGTH
*         IB(LENGTHL)=IB(503)=LOWER BITS OF FSC WORD LENGTH 
*         IB(LENGTHU)=IB(504)=UPPER BITS OF FSC WORD LENGTH 
*         OB(FBUFWC)=OB(500) =TEST WC OF FIRST BUFFER 
*         IB(LBUFWC)=IB(500) =TEST WC OF LAST BUFFER
* 
* 
1  FORMAT CALCULATING LENGTH OF *A*A
* 
   EQUATE TOTALL=501, TOTALU=502
   EQUATE LENGTHL=503, LENGTHU=504
* 
/---------NUMBER OF TEST WORDS IN FIRST BUFFER
* 
20 B1=IB(1)+2                      *B1=CM WORDS IN HEADER 
   B5=IB(5)                        *FIRST CHARACTER 
   B6=IB(6)                        *SECOND CHARACTER
   B7=IB(7)                        *THIRD CHARACTER 
   B10=IB(10)                      *FOURTH CHARACTER
   MSG 1(B5,B6,B7,B10) TO PRINT,DISPLAY 
   GOSUB 40                        *CALCULATE 
   BA=B2                           *ADDR. OF FIRST CW WORD
   WC=500B-B2                      *WC OF FIRST BUFFER
* 
/---------NUMBER OF TEST WORDS (PP COUNT) 
* 
22 B0=B2-2                   *UPPER 12 BITS OF CM COUNT 
   B1=B2-1                   *LOWER 12 BITS OF CM COUNT 
   B0=IB(B0)
   B1=IB(B1)
   GOSUB 40 
   IB(TOTALL)=B2             *LOWER 12 BITS OF PP COUNT 
   IB(TOTALU)=B3             *UPPER 12 BITS OF PP COUNT 
* 
/---------NUMBER OF FSC WORDS IN TEST.
* 
32 B4=IB(TOTALU).AND.1.LS.11D 
   IB(LENGTHL)=IB(TOTALL)RS.1.+B4       *LOWER PP WC
   IB(LENGTHU)=IB(TOTALU).RS.1          *UPPER PP WC
*         SET UP FOR 12/16 ASSEMBLY/DISASSEMBLY MODE
   B4=IB(LENGTHL).AND.7400.RS.8D
   IB(LENGTHL) = IB(LENGTHL).AND.0377   *LOWER FSC WC 
   IB(LENGTHU) = IB(LENGTHU).LS.4.+.B4  *UPPER FSC WC 
   EXIT 
* 
/---------SUBROUTINE TO CONVERT CM WD COUNT TO PP WD COUNT
* 
40 B2=0                             *CLEAR WORKING REGISTER 
   B3=0                             *CLEAR WORKING REGISTER 
42 IF(B2+5.GT.7777) B3=B3+1  *INCREMENT UPPER WORD OF PP WC 
   B2=B2+5                   *INCREMENT LOWER WORD OF PP WC 
   B1=B1-1                   *DECREMENT LOWER WORD OF CM WC 
   IF(B1.NE.0) GOTO 42
   IF(B0.NE.0) GOTO 44
   IF(B2.AND.1.EQ.0) RETURN  *CONVERSION COMPLETE-EVEN PP CT
   IF(B2+1.GT.7777)B3=B3+1   *MAKE PP COUNT EVEN
   B2=B2+1
   RETURN 
44 B0=B0-1                   *DECREMENT UPPER WORD OF CM WC 
   B1=7777                   *INCREMENT LOWER WORD OF CM WC 
   GOTO 42
   END 20 
COMPILE                      FLM01A - CALCULATES LENGTH OF TEST 
   MODULE FLM01B,6000,(10,11,12,45,56)LOCK
***       FLM01B - CHECK 4-F AFTER PMC/REPORT ERRORS
**        FLM01B - CHECK 4-F AFTER PMC/REPORT ERRORS
*         FLM01B - CHECK 4-F AFTER PMC/REPORT ERRORS
* 
* 
*         PURPOSE - 
*         FLM01B WILL REPORT THE FOLLOWING ERRORS_
*         1. MISCOMPARE ON LOC E BIT 9 AFTER MASTER CLEAR FUNCTION (PMC)
* 
*         METHOD -
*         1. READ CONTENTS OF E 
*         2. DISPLAY CONTENTS OF 4-F
*         3. REPORT HARDWARE STATUS IF NON-ZERO.
* 
*         ENTRY - 
*         FLM01B IS ENTERED FROM FLM01 FOLLOWING PROCESSOR
*         MASTER CLEAR. 
* 
*         EXIT -
*         RETURN TO FLM01 AFTER USER ENTERS GO. 
* 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
* 
*         REGISTERS USED -
* 
*         EM,EC,WC - STANDARD USAGE 
* 
*         BUFFERS USED -
*         OB(501) = FSC ADDRESS REGISTER
*         OB(502) = FSC LENGTH REGISTER 
*         IB(0) = HARDWARE/CONTROLWARE STATUS 
*         IB(1-71) = CONTENTS OF 4-F
* 
* 
* 
1  FORMAT FSC LOADER AND MONITOR(FLM) 
2  FORMAT FLM01 - FSC TEST LOADER 
3  FORMAT E0002 - CHANNEL PARITY ERROR
4  FORMAT   FSC HARDWARE STATUS = *OCTB 
5  FORMAT      CONTENTS OF LOCATIONS 4-F
6  FORMAT   4=*H*H H   5=*H*H H    6=*H*H H    7=*H*H H 
7  FORMAT   8=*H*H H   9=*H*H H    A=*H*H H    B=*H*H H 
10 FORMAT   C=*H*H H   D=*H*H H    E=*H*H H    F=*H*H H 
20 FORMAT       PROCESSOR ERROR ON MASTER CLEAR 
21 FORMAT         PLEASE ENTER GO TO CONTINUE 
22 FORMAT --------------------------------------------- 
* 
   EQUATE CSTATUS=0704, SETADDR=0500
   EQUATE RD8=0701
24 RES, ABT 74
* 
/---------CHECK AND REPORT 4-F MISCOMPARE.
* 
30 OB(501)=4                  *FSC ADDRESS
   OB(502)=14B                 *FSC LENGTH
   GOSUB 50 
   FUNC RD8, ABT 74            *READ WORDS 4-F. 
   INB 30B WORDS TO IB(1), ABT 74 
   IF(IB(26).AND.100.NE.100.) GOTO 32 
   EXIT 
32 MSG 5 TO LINE 7
   MSG 6 10 WORDS FROM IB(1) TO LINE 8D   *DISPLAY WORDS 4-F
   MSG 7 10 WORDS FROM IB(11) TO LINE 9D
   MSG 10 10 WORDS FROM IB(21) TO LINE 10D
* 
/---------REPORT HARDWARE STATUS
* 
45 FUNC CSTATUS, ABT 74 
   INB 1 WORDS TO IB(0), ABT 74 
   IF(IB(0).AND.3601.NE.0) MSG 4(IB(0)) TO LINE 6 
   MSG 20 TO LINE 4 
   MSG 21 TO LINE 5 
   GOTO 74
* 
/---------SUBROUTINE TO SET THE ADDRESS AND LENGTH REGISTERS
* 
50 FUNC SETADDR, ABT 74 
   OUTB 2 WORDS FROM OB(501), ABT 74  *OUTPUT ADDR./LENGTH
   FUNC CSTATUS, ABT 74 
   INB 1 WORDS TO IB(0),ABT 74     *INPUT CONTROLLER STATUS 
   IF(IB(0).AND.2000.EQ.0) RETURN  *IF CHANNEL PARITY ERROR 
   ERROR 03/02, GOTO 74                     *EC=02**********
* 
/---------PROCESS ALL ERRORS
* 
74 MSG 1 TO LINE 1
   MSG 2 TO LINE 2
   MSG EM TO LINE 3 
   PICTURE
   HALT 
   MSG 22 TO PRINT
   BLANK
   ENDSUB 
   EXIT 
   END 24 
COMPILE                      FLM01B - REPORTS MASTER CLEAR ERRORS 
   MODULE FLM02,6000,(10,11,12,45,56)LOCK 
***       FLM02 - FSC TEST MONITOR
**        FLM02 - FSC TEST MONITOR
*         FLM02 - FSC TEST MONITOR
* 
*         PURPOSE - 
*         FLM02 IS A MONITOR ROUTINE WHICH BECOMES THE COMMUNICATION
*         LINK BETWEEN THE FSC TEST AND USER.  THE MONITOR WILL 
*         CONTINUOUSLY UPDATE THE DISPLAY, PROVIDING THE USER 
*         WITH CURRENT INFORMATION ON THE TEST-S PROGRESS AND ERROR 
*         INFORMATION WHEN AN ERROR OCCURS.  THE USER CAN, IN 
*         TURN, RESPOND TO THIS INFORMATION BY ALTERING THE COURSE OF 
*         A TEST THROUGH CHANGES TO THE PARAMETER REGISTERS AND 
*         EXECUTIVE SWITCHES.  IF THE CONTENTS OF A PARAMETER REGISTER
*         IS CHANGED, FLM MUST BE RE-RUN. 
* 
*         METHOD -
* 
*         1. AFTER THE TEST/TEST INTERFACE HAS BEEN LOADED INTO FSC 
*            MEMORY A PROCESSOR GO FUNCTION WILL BE SENT FROM THE PP TO 
*            BEGIN TEST EXECUTION.
*         2. FROM NOW ON, THE MONITOR WILL WATCH THE STATE OF THE TEST
*            - THE STATE OF THE TEST IS CONTAINED IN A LOCATION IN
*              FSC MEMORY.  IT IS CONTINUOUSLY BEING UPDATED BY NDI.
* 
*                A. IF THE TEST IS RUNNING, THE MONITOR WILL LOOP ON
*                   THE FOLLOWING FUNCTIONS_
* 
*                     1. UPDATE THE DISPLAY SO THAT THE USER WILL 
*                        BE INFORMED OF THE TEST-S PROGRESS.
* 
*                     2. SEND ANY CHANGES THE USER HAS MADE IN THE
*                        PARAMETER AND/OR EXECUTIVE SWITCHES REGISTER 
*                        TO THE FSC AND MAKE SURE THAT THE TEST 
*                        INTERFACE ACKNOWLEDGES THESE CHANGES.
* 
* 
*                B. IF THE TEST IS STOPPED, THE MONITOR WILL EXECUTE
*                   THE FOLLOWING FUNCTIONS_
* 
*                     1. DISPLAY THE REASON WHY THE TEST IS STOPPED.
* 
*                     2. IF THE TEST IS STOPPED ON AN ERROR, DISPLAY
*                        ERROR INFORMATION. 
* 
*                     3. WAIT FOR THE USER TO ISSUE A GO SO THAT
*                        THE TEST CAN PROCEED.
* 
* 
*         SUBMODULES REFERENCED - 
*         FLM02A - SET OB WITH THE CONTENTS OF THE PARAMETER
*                  REGISTERS, THE ES REGISTER AND THE NDI 
*                  FUNCTION CODE. 
*         FLM02B - DETERMINE THE REASON FOR A STOP CONDITION. 
*         FLM02C - PROVIDE THE INITIAL TEST DISPLAY.
*         FLM02E - READ LOCATIONS 4-F AND ERROR MESSAGE BUFFER
*         FLM03F - DISPLAY LOCATIONS 4-F AND ERROR MESSAGE
* 
* 
*         REGISTERS USED -
*         B0  = NDI STATE STATUS. 
*         B1  = LOOP COUNTER FOR ACKNOWLEDGE. 
*         B2  = LOOP COUNTER FOR RUNNING. 
*         B3  = NDI FUNCTION CODE.
*         B4  = EXCESSIVE EXECUTION TIME INDICATOR. 
*         B6  = PROCESSOR GO FUNCTION INDICATOR.
*         B7  = ERROR COUNT.
*         B8  = DISPLAY INITIALIZATION FLAG.
*         B9  = OVERFLOW INDICATOR. 
*         B14 = WORKING REGISTER. 
*         B15 = WORKING REGISTER. 
* 
*         BUFFERS USED -
*         TO SET THE ADDRESS AND LENGTH REGISTERS IN THE FSC THE
*            FOLLOWING LOCATIONS ARE USED IN THE PP_
*         OB(501) = FSC ADDRESS REGISTER
*         OB(502) = FSC LENGTH REGISTER 
* 
* 
*         IB(0) = FSC TEST FUNCTION 
*         IB(1) = FSC TEST FUNCTION 
*         IB(2) = NOT USED
*         IB(3) = NOT USED
*         IB(4) = NOT USED
*         IB(5) = NOT USED
*         IB(6) = NOT USED
*         IB(7) = NOT USED
*         IB(10) = P0 - NOT USED
*         IB(11) = P0 - NOT USED
*         IB(13) = P1 - NOT USED
*         IB(14) = P2 - NOT USED
*         IB(15) = P2 - NOT USED
*         IB(16) = P3 - NOT USED
*         IB(17) = P3 - NOT USED
*         IB(20) = P4 - DISABLES
*         IB(21) = P4 - DISABLES
*         IB(22) = P5 - FIRST MODULE SELECTED 
*         IB(23) = P5 - FIRST MODULE SELECTED 
*         IB(24) = P6 - NUMBER OF MODULES TO EXECUTE
*         IB(25) = P6 - NUMBER OF MODULES TO EXECUTE
*         IB(26) = P7 - NOT USED
*         IB(27) = P7 - NOT USED
*         IB(30) = P8 - NOT USED
*         IB(31) = P8 - NOT USED
*         IB(32) = P9 - NOT USED
*         IB(33) = P9 - NOT USED
*         IB(34) = STATE OF TEST
*         IB(35) = STATE OF TEST
*         IB(36) = TYPE OF FSC
*         IB(37) = TYPE OF FSC
*         IB(40) = TEST NAME
*         IB(41) = TEST NAME
*         IB(42) = TEST NAME
*         IB(43) = TEST NAME
*         IB(44) = REVISION LEVEL OF DIAGNOSTIC 
*         IB(45) = REVISION LEVEL OF DIAGNOSTIC 
*         IB(46) = ASSEMBLY DATE
*         IB(47) = ASSEMBLY DATE
*         IB(50) = ASSEMBLY TIME
*         IB(51) = ASSEMBLY TIME
*         IB(52) = MODULE AND CONDITION NUMBER
*         IB(53) = MODULE AND CONDITION NUMBER
*         IB(54) = ERROR CODE 
*         IB(55) = ERROR CODE 
*         IB(56) = ERROR COUNT
*         IB(57) = ERROR COUNT
*         IB(60) = PASS COUNT 
*         IB(61) = PASS COUNT 
*         IB(62) = LAST CALL TO NDI 
*         IB(63) = LAST CALL TO NDI 
*         IB(64) = FSC WORD 5C
*         IB(65) = FSC WORD 5C
*         IB(66) = CURRENT FSC ADDRESS BEING TESTED 
*         IB(67) = CURRENT FSC ADDRESS BEING TESTED 
*         IB(70) = EXPECTED VALUE 
*         IB(71) = EXPECTED VALUE 
*         IB(72) = ACTUAL VALUE 
*         IB(73) = ACTUAL VALUE 
*         IB(74) = ITERATION COUNT
*         IB(75) = ITERATION COUNT
* 
* 
* 
*         SEE BUFFERS USED IN FLM01A MODULE.
* 
1  FORMAT FSC LOADER AND MONITOR (FLM)
2  FORMAT *A*A*D   EC=*DECD LC=*DECD
3  FORMAT MOD=*DD   COND=*DD   PCNT=*DECD 
4  FORMAT LAST CALL TO NDI FROM ADDRESS *H*H H
5  FORMAT ADDR=*H*H H 
6  FORMAT            ECNT=*DECD      ICNT=*DECD 
7  FORMAT *A*A*D EXECUTING
16 FORMAT E0003 - CHANNEL PARITY ERROR
* 
   EQUATE ACK=6, CSTATUS=0704, FCTE=2 
   EQUATE PBUF=100B, WRT=702, RD8=701, RUN=17B
   EQUATE SBUF=120B, SETADDR=500, STATE=35B 
   EQUATE STER=1, STBM=3
* 
/---------ISSUE PROCESSOR GO AND BRING UP DISPLAY.
* 
30 CALL 02C                  *DISPLAY NORMAL RUNNING DISPLAY
   B6=1                      *SET PGO FUNCTION INDICATOR
   CALL 02F 
   B6=0                      *CLEAR PGO FUNCTION INDICATOR
32 GOSUB 62                  *INPUT THE FSC TEST STATUS 
   CALL 02C                  *CREATE TEST DISPLAY ON SCREEN 
   B3=ACK 
   CALL 02A                  *PREPARE TO DOWNLOAD PARAMETERS
33 RES, ABT 74
   B1=0                      *ZERO LOOP COUNTER 
   GOSUB 60                  *DOWNLOAD PARAMETERS TO FSC
34 GOSUB 62                  *INPUT THE FSC TEST STATUS 
* 
/---------WAIT FOR NDI TO ACKNOWLEDGE FUNCTION(P9) SENT.
* 
   IF(IB(1).EQ.ACK) GOTO 40     *IF FSC RESPONDED 
   GOTO 34 WHILE (B1+1.NE.10D)  *LOOP WAITING FOR RESPONSE
   ERROR 03/01 GOTO 74          *ERROR, FSC DID NOT RESPOND 
* 
/---------KEEP THE TEST DISPLAY CURRENT.
* 
40 B0=IB(STATE)                         *SAVE TEST STATE
   B14=IB(56).LS.8+IB(57)               *B14=ERROR COUNT
   B15=IB(60).LS.8+IB(61)               *B15=PASS COUNT 
   MSG 3(IB(52)IB(53)B15) TO LINE 4     *MOD,COND,PASS COUNT
   MSG 4(IB(62)IB(63)) TO LINE 5        *LAST P ADDR
   MSG 5(IB(66)IB(67)) TO LINE 10D      *CURRENT TEST ADDR
   MSG 6(B14,IB(75)) TO LINE 11D        *ECNT,ITER. COUNT 
* 
/---------PROCESS THE CURRENT STATE OF THE FSC TEST.
* 
   IF(B0.EQ.0) ERROR 01/02 GOTO 74   *ERROR IF NO STATE BIT 
   IF(OB(B0+400).EQ.0) GOTO 50       *IF STOP NOT SELECTED
   IF(B0.NE.STER) GOTO 42            *IF NOT AN ERROR STOP
*         AN ERROR HAS OCCURRED 
   IF(ES.AND.SL.NE.0) GOTO 44        *IF SCOPE LOOPING SET
42 CALL 02B                          *PROCESS STOP CONDITION
44 IF(ES.AND.SL.NE.0) MSG 2(B4,B5,IB(52),B14,B15) TO DISPLAY
*         CHECK IF STATE=RUNNING BUT PROCESSOR IS STOPPED.
50 IF(B0.NE.RUN) GOTO 52           *IF TEST HAS STOPPED 
   MSG 7(B4,B5,IB(52)) TO LINE 6
   B3=ACK                    *PREPARE TO SEND PASS FUNCTION 
   OB(100)=OB(100)+1         *INCREMENT RUNNING LOOP COUNTER
   IF(OB(100).NE.5000) GOTO 33
   CALL 02F 
   GOTO 33
52 B3=FCTE                   *NO ERROR, SEND CONTINUE FUNC. 
   OB(100)=0                 *CLEAR LOOP COUNTER
   MSG 7(B4,B5,IB(52)) TO LINE 6
   IF(B0.EQ.STBM) MSG 7(B4,B5,IB(52)) TO PRINT,DISPLAY
54 GOTO 33
* 
/---------SEND THE PARAMETERS TO THE FSC. 
* 
60 OB(501)=PBUF              *SET UP FSC ADDRESS
   OB(502)=40B
   OB(401)=DS.AND.1B         *STOP ON ERROR 
   OB(402)=DS.AND.40B        *STOP AT BEGINNING OF TEST 
   OB(404)=DS.AND.10B        *STOP AT BEGINNING OF CONDITION
   OB(403)=DS.AND.20B        *STOP AT BEGINNING OF MODULE 
   OB(405)=DS.AND.100B       *STOP AT END OF TEST 
   OB(406)=DS.AND.400B       *STOP AT END OF MODULE 
   OB(407)=DS.AND.200B       *STOP AT END OF CONDITION
   OB(2)=DS.RS.8D 
   OB(3)=DS.AND.377B
   OB(4)=B3.RS.8D 
   OB(5)=B3.AND.377B
   GOSUB 66 
   FUNC WRT, ABT 74 
   OUTB OB(502) WORDS FROM OB(0), ABT 74  *OUTPUT PARAMETERS
   RETURN 
* 
/---------READ THE STATUS BUFFER (SBUF) IN THE FSC. 
* 
62 OB(501)=SBUF-16B          *SET BA OF TEST STATUS 
   OB(502)=37B               *SET WC OF TEST STATUS 
   RES, ABT 74
   GOSUB 66 
   FUNC RD8, ABT 74 
   INB 76B WORDS TO IB(0), ABT 74      *INPUT TEST STATUS 
   RETURN 
* 
/---------INITIIALIZE THE ADDRESS AND LENGTH REGISTERS. 
* 
66 FUNC SETADDR, ABT 74 
   OUTB 2 WORDS FROM OB(501), ABT 74    *ISSUE BA AND LENGTH
   FUNC CSTATUS, ABT 74 
   INB 1 WORDS TO IB(0),ABT 74      *INPUT CONTROLLER STATUS
   IF(IB(0).AND.2000.EQ.0) RETURN           *CHANNEL PARITY ERROR 
   ERROR 16/02, GOTO 74                     *EC=02**********
* 
/---------PROCESS COMMAND ABORT ERROR.
* 
74 B7=B7+1                          *INCREMENT ERROR COUNT
   IF(ES.AND.SL.NE.0) GOTO 76       *IF SCOPING LOOP
   IF(B8.EQ.0) CALL 02C 
   CALL 02E                  *PROCESS THE ERROR 
* 
76 IF(B8.EQ.0) ENDSUB GOTO 30       *IF ERROR AT FIRST RES. 
   ENDSUB GOTO 33 
   END 30 
COMPILE                      FLM02 - MONITOR FSC TEST STATUS
   MODULE FLM02A,6000,(10,11,12,45,56)LOCK
***       FLM02A - TEST PARAMETER SUBMODULE 
**        FLM02A - TEST PARAMETER SUBMODULE 
*         FLM02A - TEST PARAMETER SUBMODULE 
* 
* 
*         PURPOSE - 
*         STORE PARAMETERS, TEST CONDITIONS AND TEST FUNCTION 
*         SET BY THE USER IN THE OUTPUT BUFFER.  THIS 
*         DATA WILL LATER BE TRANSFERRED TO THE FSC FROM THE
*         OUTPUT BUFFER.  MODULE DEFAULT SELECT BITS WILL BE
*         SET IF THE USER HAS NOT SELECTED ANY MODULES. 
* 
*         METHOD -
*         1. STORE THE DIAGNOSTIC SWITCH REGISTER CONTENTS AND
*            THE PARAMETER REGISTERS  CONTENTS INTO OB(0-17B).
*         2. STORE THE STOP ENABLES (DIAGNOSTIC REGISTER) IN B0.
*         3. CREATE A BUFFER FROM OB(400-417) FOR USER SELECTED 
*            STOPS.  LOCATION WILL BE NONZERO TO ENABLE STOP AND
*            ZERO TO DISABLE STOP.
*         4. CLEAR THE 2 OUTPUT BUFFER WORDS (OB(501)-OB(502))
*            USED FOR ADDRESS AND LENGTH INFORMATION IN A 
*            SET ADDRESS FUNCTION.
*         5. SET B3 REGISTER TO FUNCTION CODE NECESSARY TO
*            CARRY OUT USERS ORDERS -ETC. RESTART TEST, 
*            TERMINATE TEST . 
*         6. RETURN TO CALLING MODULE.
* 
* 
*         ENTRY - 
*         THE PARAMETER REGISTERS MUST BE SET BY THE USER.
*         THE STOP ENABLES MUST BE SET BY THE USER. 
* 
* 
*         EXIT -
*         THE OUTPUT BUFFER NOW CONTAINS THE INFORMATION NECESSARY
*         TO TRANSFER THE PARAMETERS AND STOP ENABLES SET BY THE
*         USER TO THE FSC.  THE FUNCTION THAT MUST BE ISSUED
*         FOLLOWING THIS TRANSFER HAS ALSO BEEN DETERMINED. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
* 
* 
* 
*         REGISTERS USED -
*         B0  = STOP ENABLES SET BY USER. 
*         B3  = NDI FUNCTION CODE.
* 
*         BUFFERS USED -
*         OB(0-17) - CONTAINS PARAMETER REGISTER CONTENTS.
*         OB(400-417) - CONTAIN STOP ENABLES SET BY THE USER. 
*         OB(501-502) - CLEARED FOR NEXT SET ADDRESS FUNCTION.
* 
* 
1  FORMAT INIT. MONITOR PARAMETERS
2  FORMAT *A*A  RESTARTED 
* 
/---------EQUATES THE THE MODULE. 
* 
   EQUATE STBC=10B, STBM=20B, STBT=40, STEC=200B, STEM=400
   EQUATE STET=100B, STER=1, ACK=6
* 
/---------SET PARAMETERS FOR DOWNLOADING INTO FSC MEMORY. 
* 
30 MSG 1 TO DISPLAY          *DISPLAY INITIALIZING MESSAGE
   OB(0) = 0
   OB(1) = 0
   OB(2) = DS.RS.8D 
   OB(3) = DS.AND.377B
   OB(4) = 0
   OB(5) = 0
   OB(6) = 0
   OB(7) = 0
   OB(10) = 0 
   OB(11) = 1 
   OB(12) = 0 
   OB(13) = 0 
   OB(14) =P0.RS.8D 
   OB(15) = P0.AND.377
   OB(16) = P1.RS.8D
   OB(17) = P1.AND.377
   OB(20) = P2.RS.8D
   OB(21) = P2.AND.377
   OB(22) = P3.RS.8D
   OB(23) = P3.AND.377
   OB(24) = P4.RS.8D
   OB(25) = P4.AND.377
   OB(26) = P5.RS.8D
   OB(27) = P5.AND.377
   OB(30) = P6.RS.8D
   OB(31) = P6.AND.377
   OB(32) = P7.RS.8D
   OB(33) = P7.AND.377
   OB(34) = P8.RS.8D
   OB(35) = P8.AND.377
   OB(36) = P9.RS.8D
   OB(37) = P9.AND.377
* 
/---------FORM A MASK TABLE FOR EVERY TEST STOP CONDITION.
* 
   B0=DS                     *STOP ENABLES
   OB(400)=0                 *RESERVED
   OB(401)=B0.AND.STER       *STOP ON ERROR 
   OB(402)=B0.AND.STBT       *STOP AT BEGINNING OF TEST 
   OB(404)=B0.AND.STBC       *STOP AT BEGINNING OF CONDITION
   OB(403)=B0.AND.STBM       *STOP AT BEGINNING OF MODULE 
   OB(405)=B0.AND.STET       *STOP AT END OF TEST 
   OB(406)=B0.AND.STEM       *STOP AT END OF MODULE 
   OB(407)=B0.AND.STEC       *STOP AT END OF CONDITION
   OB(410)=1                 *STOP AT BREAKPOINT
   OB(411)=0                 *STOPPED AT NOOP 
   OB(412)=1                 *STOPPED WAITING USER INTERVENTION 
   OB(413)=1                 *STOPPED AT REQUEST OF USER
   OB(414)=0                 *STOPPED WAITING FOR CONTINUE
   OB(415)=1                 *TEST TERMINATED 
   OB(416)=1                 *STOPPED ON UNEXPECTED INTERRUPT 
   OB(417)=0                 *TEST RUNNING
* 
/---------EXIT THE MODULE.
* 
   EXIT 
   END 30 
COMPILE                      FLM02A - PARAMETER BUFFER AND TEST STOP MASK 
   MODULE FLM02B,6000,(10,11,12,45,56)LOCK
***       FLM02B - TEST STOP SUBMODULE
**        FLM02B - TEST STOP SUBMODULE
*         FLM02B - TEST STOP SUBMODULE
* 
* 
*         PURPOSE - 
*         FLM02B WILL BE CALLED IF THE TEST HAS STOPPED AND 
*         THIS STOP HAS BEEN REQUESTED BY THE USER OR A STOP
*         ON ERROR HAS OCCURRED.  FLM02B WILL THEN INFORM THE 
*         USER WHY THE STOP HAS OCCURRED AND IF THE STOP IS 
*         DUE TO AN ERROR. THE ACTUAL AND EXPECTED DATA WILL ALSO 
*         BE DISPLAYED. 
* 
*         METHOD -
*         1. MASK OFF EACH STATE BIT WITH ITS CORRESPONDING STOP
*            SELECT BIT.  IF THE USER HAS SELECTED A STOP,
*            THE MASKING PROCESS WILL INDICATE THIS CONDITION 
*            AND A MESSAGE WILL BE DISPLAYED TO INFORM THE
*            USER WHICH STOP ENABLE HAS STOPPED THE TEST. 
*         2. IF NO OTHER STOP HAS BEEN SET, A STOP ON ERROR IS
*            INDICATED AND THE ERROR CODE, ACTUAL AND EXPECTED
*            AND ACTUAL RESULTS ARE DISPLAYED FOR THE USER. 
*         3. IF THE TEST IS TERMINATED AND RM HAS BEEN SET, 
*            AN ERROR WILL BE REPORTED. 
*         4. RETURN TO THE CALLING MODULE.
* 
*         ENTRY - 
*         A TEST STOP MUST HAVE PREVIOUSLY OCCURRED TO ENTER
*         FLM02B. 
* 
*         EXIT -
*         A MESSAGE WILL BE POSTED DESCRIBING THE REASON FOR
*         THE TEST STOP.  IF AN ERROR HAS OCCURRED, AN EXIT 
*         WILL BE MADE TO AN ERROR REPORTING MODULE.  IF
*         AN ERROR IS NOT PRESENT, A RETURN WILL BE MADE TO 
*         THE CALLING MODULE. 
* 
* 
*         SUBMODULES REFERENCED - 
*         FLM02E - CALLED TO REPORT AN ERROR. 
* 
*         REGISTERS USED -
*         B0  = NDI STATE STATUS. 
*         B1  = MESSAGE INDEX.
*         B7  = ERROR COUNTER.
* 
*         BUFFERS USED - NONE.
* 
* 
* 
1  FORMAT *A*A*D STOPPED ON ERROR 
2  FORMAT *A*A*D STOPPED BEG. MODULE
3  FORMAT *A*A*D STOPPED BEG.CONDITION
4  FORMAT *A*A*D STOPPED END MODULE 
5  FORMAT *A*A*D STOPPED END CONDITION
6  FORMAT *A*A*D BREAKPOINT STOP
7  FORMAT *A*A*D STOPPED ON NOOP
10 FORMAT *A*A*D STOPPED FOR USER INTERVENTION
11 FORMAT *A*A*D STOPPEDAT REQUEST OF USER
12 FORMAT *A*A   STOPPED BEG. TEST
13 FORMAT *A*A   STOPPED END TEST 
14 FORMAT *A*A*D TERMINATED 
15 FORMAT *A*A*D STOPPED WAITING FOR CONTINUE 
16 FORMAT *A*A*D STOPPED AT UNEXPECTED INTERRUPT
17 FORMAT *A*A*D UNKNOWN STOP DETECTED
22 FORMAT 
23 FORMAT PAUSE - CLEAR RM TO TERMINATE TEST
24 FORMAT PAUSE - AWAITING USER GO
* 
   EQUATE STER=1, STBT=2, STBM=3, STBC=4, STET=5, STEM=6
   EQUATE STEC=7, STBP=10, STNO=11, STOI=12, STRO=13
   EQUATE STATE=35, STWC=14,STTT=15,STUI=16 
* 
/---------DETERMINE THE REASON WHY THE TEST HAS STOPPED.
* 
30 B0=IB(STATE)              *NDI STATUS WORD 
   B1=1                      *MESSAGE NUMBER
   IF(B0.EQ.STER) GOTO 62    *IF STOPPED ON ERROR 
   B1=2                      *MESSAGE NUMBER
   IF(B0.EQ.STBM) GOTO 62    *IF BEGINNING OF MODULE STOP 
   B1=3                      *MESSAGE NUMBER
   IF(B0.EQ.STBC) GOTO 62    *IF BEGINNING OF CONDITION STOP
   B1=4                      *MESSAGE NUMBER
   IF(B0.EQ.STEM) GOTO 62    *IF END OF MODULE STOP 
   B1=5                      *MESSAGE NUMBER
   IF(B0.EQ.STEC) GOTO 62    *IF END OF CONDITION STOP
   B1=6                      *MESSAGE NUMBER
   IF (B0.EQ.STBP) GOTO 62   *IF BREAKPOINT STOP
   B1=12                     *MESSAGE NUMBER
   IF(B0.EQ.STBT) GOTO 60    *IF BEGINNING OF TEST STOP 
   B1=13                     *MESSAGE NUMBER
   IF(B0.EQ.STET) GOTO 60    *IF END OF TEST STOP 
   B1=14                     *MESSAGE NUMBER
   IF(B0.EQ.STTT) GOTO 74     *IF TERMINATED
   B1=7 
   IF(B0.EQ.STNO) GOTO 62     *IF NOOP
   B1=10
   IF(B0.EQ.STOI) GOTO 62     *IF USER INTERVENTION 
   B1=11
   IF(B0.EQ.STRO) GOTO 62     *STOPPED REQUEST OF USER
   B1=15
   IF(B0.EQ.STWC) GOTO 62      *STOPPED WAITING FOR CONTINUE
   B1=16
   IF(B0.EQ.STUI) GOTO 62      *STOPPED AT UNEXPECTED INTERRUPT 
   B1=17
   GOTO 74
* 
/---------PROCESS ALL STOPS.
* 
60 MSG B1(B4,B5) TO LINE 6   *DISPLAY STOP MESSAGE
   MSG B1(B4,B5) TO PRINT,DISPLAY 
   GOTO 64
62 MSG B1(B4,B5,IB(52)) TO LINE 6      *DISPLAY STOP MESSAGE
   MSG B1(B4,B5,IB(52)) TO PRINT,DISPLAY
   IF(B0.NE.STER) GOTO 64 
   B7=B7+1
   EXIT TO 02E                     *IF TEST STOPPED ON ERROR
   EXIT 
64 PICTURE
   MSG 24 TO PRINT,DISPLAY
   PAUSE                     *WAIT FOR USER GO
   EXIT 
* 
/---------PROCESS A TEST TERMINATE STATUS.
* 
74 IF(ES.AND.RM.EQ.0) GOTO 76 
   MSG 23 TO LINE 8D         *REPORT RM SET ILLEGALLY 
   MSG 22 TO LINE 9D
   MSG 23 TO DISPLAY
   PAUSE
   GOTO 74
76 MSG B1(B4,B5,IB(52)) TO LINE 6  *DISPLAY STOP MESSAGE
   MSG B1(B4,B5) TO PRINT,DISPLAY 
   END 30                    *END THE TEST
COMPILE                      FLM02B - REPORTS TEST STOPS
   MODULE FLM02C,6000,(10,11,12,45,56)LOCK
***       FLM02C - TEST STATUS SUBMODULE
**        FLM02C - TEST STATUS SUBMODULE
*         FLM02C - TEST STATUS SUBMODULE
* 
*         PURPOSE - 
*         FLM02C WILL INITIALLY BE CALLED BY FLM02 TO DISPLAY 
*         THE TEST STATUS.  FROM THEN ON DURING TEST EXECUTION, 
*         FLM02 AND FLM02B WILL UPDATE THE STATUS DISPLAY.
* 
*         METHOD -
*         1.  THE STATUS OF THE TEST WILL BE DISPLAYED IN LINES 
*             1-15D.
* 
*         ENTRY - 
*         FLM02 WILL CALL FLM02C. 
* 
*         EXIT -
*         FLMO2C WILL EXIT TO CALLING MODULE. 
* 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
* 
* 
* 
*         REGISTERS USED -
*         B8  = DISPLAY INITIALIZATION FLAG.
*         B4  = TEST NAME.
*         B5  = TEST NAME.
*         B11 = TEMPORARY STORAGE.
*         B12 = TEMPORARY STORAGE.
*         B13 = TEMPORARY STORAGE.
*         B14 = TEMPORARY STORAGE.
*         B15 = TEMPORARY STORAGE.
* 
*         BUFFERS USED -
*         IB(0-IB(43) - HOLDS TEST STATUS FROM THE FSC. 
* 
* 
1  FORMAT FSC LOADER AND MONITOR(FLM) 
2  FORMAT DIAGNOSTIC *A*A    REVISION *OB 
4  FORMAT ASSEMBLED ON *D/*D/*D  AT *D.*D 
5  FORMAT MOD=*DD   COND=*DD   PCNT=*DECD 
6  FORMAT LAST CALL TO NDI FROM ADDRESS *H*H H
7  FORMAT                            ICNT=*DECD 
* 
/---------DISPLAY NORMAL RUNNING DISPLAY. 
30 MSG 1 TO LINE 0
   B4=IB(41)                *SAVE UPPER BITS OF TEST NAME 
   B5=IB(42).LS.6+IB(43)    *SAVE LOWER BITS OF TEST NAME 
   B12=IB(45).AND.377 
   MSG 2 (B4,B5,B12) TO LINE 1          *TEST NAME,REVISION 
   B11=IB(46).RS.1                      *YEAR 
   B12=IB(46).AND.1.LS.3                *MONTH
   B12=IB(47).RS.5+B12                  *MONTH
   B13=IB(47).AND.37                    *DAY
   B14=IB(50).LS.2                      *HOUR 
   B14=IB(51).RS.6+B14                  *HOUR 
   B15=IB(51).AND.77                    *MINUTE 
   MSG 4(B11,B12,B13,B14,B15) TO LINE 3 
   B12=IB(60).LS.8+IB(61) 
   MSG 5 (IB(52)IB(53)B12) TO LINE 4    *MOD/COND/PASS CNT
   MSG 6(IB(62)IB(63)) TO LINE 5        *LAST P ADDR. 
   MSG 7 (IB(75)) TO LINE 11D            *ITERATION COUNT 
   B8=1                   *SET DISPLAY INITIALIZATION FLAG
   EXIT 
   END 30 
COMPILE                      FLM02C - DISPLAYS NORMAL TEST STATUS 
   MODULE FLM02E,6000,(10,11,12,45,56)LOCK
***       FLM02E - TEST ERROR SUBMODULE 
**        FLM02E - TEST ERROR SUBMODULE 
*         FLM02E - TEST ERROR SUBMODULE 
* 
* 
*         PURPOSE - 
*         FLM02E WILL READ ADDRESSES  4-F OF FSC
*         MEMORY INTO PP MEMORY.  THE MESSAGE BUFFER OF 
*         THE FSC WILL ALSO BE READ INTO PP MEMORY FOR
*         DISPLAY.
* 
*         METHOD -
*         1. READ ADDRESS 4-F  OF FSC MEMORY INTO PP. 
*         2. READ THE MESSAGE BUFFER OF THE FSC MEMORY
*            INTO THE PP. 
* 
* 
*         ENTRY - 
*         FLM02E WILL BE ENTERED UPON ERROR DETECTION.
* 
*         EXIT -
*         FLM02E WILL EXIT TO FLM02F ON A TEST ERROR. 
*         FLM02E WILL RETURN TO CALLING MODULE ON 
*            COMMAND ABORT ERROR. 
* 
* 
*         SUBMODULE REFERENCED - NONE.
* 
* 
*         REGISTERS USED -
*         B7  = ERROR COUNTER.
* 
*         EM,EC,WT - STANDARD USAGE 
* 
* 
*         BUFFERS USED -
*         TO SET THE ADDRESS AND LENGTH REGISTERS IN THE FSC THE
*            FOLLOWING LOCATIONS ARE USED IN THE PP_
*         OB(501) = FSC ADDRESS REGISTER
*         OB(502) = FSC LENGTH REGISTER 
* 
1  FORMAT FSC LOADER AND MONITOR(FLM) 
2  FORMAT FLM02 - FSC TEST MONITOR
3  FORMAT E0002 - CHANNEL PARITY ERROR
4  FORMAT ERROR *A*A*A*A*A*A*A*A
5  FORMAT       *A*A*A*A*A*A
6  FORMAT EC=*OCTB   ECNT=*DECD      ICNT=*DECD 
7  FORMAT ADDR=*H*H H   EXP=*H*H H   ACT=*H*H H 
10 FORMAT --------------------------------------
11 FORMAT PAUSE - AWAITING USER GO
* 
   EQUATE CSTATUS=704,SETADDR=500,RD8=701,MSGB=160B 
* 
/---------READ ERROR MESSAGE BUFFER 
* 
30 RES, ABT 74
   IF(EC.GE.4000) GOTO 74 
   OB(501)=MSGB              *SET FSC ADDRESS TO MSG. BUFFER
   OB(502)=16B
   GOSUB 60 
   FUNC RD8, ABT 74          *READ MESSAGE BUFFER 
   INB 34B WORDS TO IB(200), ABT 74 
   IB(200)=IB(200).LS.6+IB(201) 
   IB(201)=IB(202).LS.6+IB(203) 
   IB(202)=IB(204).LS.6+IB(205) 
   IB(203)=IB(206).LS.6+IB(207) 
   IB(204)=IB(210).LS.6+IB(211) 
   IB(205)=IB(212).LS.6+IB(213) 
   IB(206)=IB(214).LS.6+IB(215) 
   IB(207)=IB(216).LS.6+IB(217) 
   IB(210)=IB(220).LS.6+IB(221) 
   IB(211)=IB(222).LS.6+IB(223) 
   IB(212)=IB(224).LS.6+IB(225) 
   IB(213)=IB(226).LS.6+IB(227) 
   IB(214)=IB(230).LS.6+IB(231) 
   IB(215)=IB(232).LS.6+IB(233) 
   IB(216)=IB(234).LS.6+IB(235) 
   IB(217)=IB(236).LS.6+IB(237) 
   IB(220)=IB(240).LS.6+IB(241) 
   IB(221)=IB(242).LS.6+IB(243) 
   IB(222)=IB(244).LS.6+IB(245) 
   IB(223)=IB(246).LS.6+IB(247) 
   IB(224)=IB(250).LS.6+IB(251) 
   IB(225)=IB(252).LS.6+IB(253) 
   IB(226)=IB(254).LS.6+IB(255) 
   IB(227)=IB(256).LS.6+IB(257) 
   IB(230)=IB(260).LS.6+IB(261) 
   IB(231)=IB(262).LS.6+IB(263) 
   IB(232)=IB(264).LS.6+IB(265) 
   IB(233)=IB(266).LS.6+IB(267) 
   MSG 4 10B WORDS FROM IB(200) TO LINE 8D
   MSG 5 6 WORDS FROM IB(210) TO LINE 9D
*         CURRENT ADDR/EXPECTED AND ACTUAL RESULTS
   MSG 7(IB(66)IB(67)IB(70)IB(71)IB(72)IB(73)) TO LINE 10D
   B12=IB(54).LS.8.+.IB(55)   *ERROR CODE 
   B13=IB(56).LS.8.+.IB(57)   *ERROR COUNT
   MSG 6(B12,B13,IB(75)) TO LINE 11D
   PICTURE
   MSG 11 TO PRINT,DISPLAY
   PAUSE
   MSG 10 TO PRINT
   EXIT TO 02F
* 
/---------SET ADDRESS AND LENGTH REGISTER IN FSC
* 
60 FUNC SETADDR, ABT 74 
   OUTB 2 WORDS FROM OB(501), ABT 74  *OUTPUT ADDR./LENGTH
   FUNC CSTATUS, ABT 74            *CHECK CONTROLLER STATUS 
   INB 1 WORDS TO IB(0),ABT 74
   IF(IB(0).AND.2000.EQ.0) RETURN    *IF CHANNEL PARITY ERROR 
   ERROR 03/02, GOTO 74                     *EC=02********* 
* 
/---------PROCESS I/O DRIVER DETECTED ERRORS. 
* 
74 B7=B7+1                   *INCREMENT ERROR COUNT 
   MSG EM TO LINE 8D
   PICTURE
   HALT 
   MSG 10 TO PRINT
   ENDSUB 
   EXIT 
   END 30 
COMPILE                      FLM02E - REPORTS ERRORS
   MODULE FLM02F,6000,(10,11,12,45,56)LOCK
***       FLM02F - HARDWARE ERROR DISPLAY SUBMODULE 
**        FLM02F -
*         FLM02F - HARDWARE ERROR DISPLAY SUBMODULE 
* 
* 
*         PURPOSE - 
*         FLM02F WILL BE CALLED TO EXECUTE A PROCESSOR
*         GO FUNCTION AND DISPLAY 4-F OF THE
*         FSC MEMORY IF THE PROCESSOR IS STOPPED. 
* 
* 
*         METHOD -
*         1.IF A TEST HAS JUST BEEN LOADED, ISSUE A 
*           PROCESSOR GO FUNCTION TO START THE FSC PROCESSOR. 
*           IF THE PROCESSOR DOES NOT BEGIN RUNNING, DISPLAY
*           LOCATION 4-F AND STOP ON ERROR. 
*           WHEN THE USER ENTERS A GO, CONTINUE RUNNING 
*           THE MONITOR EVEN THOUGH THE PROCESSOR STOPPED 
*           BIT IS SET. 
*           IF THE PROCESSOR IS RUNNING, EXIT THE MODULE. 
* 
*         2.AFTER A TEST ERROR HAS OCCURRED, CHECK IF THE 
*           PROCESSOR IS RUNNING. IF THE PROCESSOR IS NOT 
*           RUNNING, DISPLAY LOCATIONS 4-F AND
*           STOP ON AN ERROR.  WHEN THE USER ENTERS 
*           A GO, EXECUTE A PROCESSOR GO FUNCTION.  IF
*           THE PROCESSOR DOES NOT BEGIN RUNNING, DISPLAY 
*           LOCATIONS 4-F .  WHEN THE USER
*           ENTERS A GO, CONTINUE RUNNING THE MONITOR EVEN
*           THROUGH THE PROCESSOR STOPPED BIT IS SET. 
*           IF THE PROCESSOR IS RUNNING, EXIT THE MODULE. 
* 
*         ENTRY - 
*         B6,PROCESSOR GO FUNCTION INDICATOR, MUST BE SET 
*           ON ENTRY IF A PROCESSOR GO WAS JUST EXECUTED
*           TO DETERMINE IF THE PROCESSOR SHOULD OR SHOULD
*           NOT BE RUNNING. 
* 
*         EXIT -
*         SUBMODULES REFERENCED - NONE. 
* 
* 
* 
* 
*         FLM02F WILL EXIT TO THE CALLING MODULE. 
* 
* 
*         REGISTERS USED -
*         B7  = ERROR COUNTER.
*         B12 = WORKING REGISTER. 
* 
* 
*         EM,EC,WT - STANDARD USAGE 
* 
* 
*         BUFFERS USED -
*         TO SET THE ADDRESS AND LENGTH REGISTERS IN THE FSC THE
*            FOLLOWING LOCATIONS ARE USED IN THE PP_
*         OB(501) = FSC ADDRESS REGISTER
*         OB(502) = FSC LENGTH REGISTER 
* 
* 
1  FORMAT    CONTENTS OF LOCATIONS 4-F (REGISTER DISPLAY) 
2  FORMAT   4=*H*H H   5=*H*H H    6=*H*H H    7=*H*H H 
3  FORMAT   8=*H*H H   9=*H*H H    A=*H*H H    B=*H*H H 
4  FORMAT   C=*H*H H   D=*H*H H    E=*H*H H    F=*H*H H 
7  FORMAT HARDWARE STATUS=*OCTB 
10 FORMAT 
22 FORMAT   FSC PROCESSOR IS NOT RUNNING
23 FORMAT   ENTER GO TO CONTINUE AT YOUR OWN RISK 
24 FORMAT E0002 - CHANNEL PARITY ERROR
25 FORMAT ----------------------------------------
* 
   EQUATE CSTATUS=704, SETADDR=500
   EQUATE RD8=0701, PGO=720, MSGB=160B
* 
/---------SUBROUTINE TO START PROCESSOR WHEN STOPPED. 
* 
30 RES, ABT 74
   IF(B6.EQ.0) GOTO 32
   GOSUB 40      *ISSUE PGO FUNCTION AFTER TEST LOAD
   IF(IB(0).AND.2.EQ.2) EXIT  *IF PROCESSOR RUNNING 
   GOSUB 34                   *IF PROCESSOR NOT RUNNING 
   GOTO 74
32 GOSUB 42 
   GOSUB 64 
   IF(IB(0).AND.2.EQ.2) EXIT  *IF PROCESSOR RUNNING 
   GOSUB 34 
   MSG 22 TO PRINT,DISPLAY
   MSG 23 TO PRINT DISPLAY
   PAUSE
   RES, ABT 74
   GOSUB 64 
   GOSUB 40      *ISSUE PGO FUNCTION AFTER TEST LOAD
   IF(IB(0).AND.2.EQ.2) EXIT  *IF PROCESSOR RUNNING 
   GOSUB 34                   *IF PROCESSOR NOT RUNNING 
   GOTO 74
* 
/---------SUBROUTINE TO HANDLE ERROR REPORTING
* 
*         DISPLAY LOCATIONS 4-F OF FSC MEMORY 
34 MSG 7(IB(0)) TO LINE 2    *DISPLAY HARDWARE STATUS 
   OB(501)=4                 *SET ADDRESS 
   OB(502)=14B               *SET LENGTH
   GOSUB 60 
   FUNC RD8, ABT 74 
   INB 30B WORDS TO IB(300), ABT 74   *INPUT WORDS 4-F
   MSG 1 TO LINE 12D
   MSG 2 10B WORDS FROM IB(300) TO LINE 13D 
   MSG 3 10B WORDS FROM IB(310) TO LINE 14D 
   MSG 4 10B WORDS FROM IB(320) TO LINE 15D 
   MSG 22 TO LINE 8D
   MSG 23 TO LINE 9D
   RETURN 
* 
/---------ISSUE A PROCESSOR GO FUNCTION/INPUT HDWE STATUS 
* 
40 FUNC PGO, ABT 74 
42 FUNC CSTATUS, ABT 74 
   INB 1 WORDS TO IB(0), ABT 74   *INPUT HARDWARE STATUS
   RETURN 
* 
/---------SET ADDRESS AND LENGTH REGISTER IN FSC
* 
60 FUNC SETADDR, ABT 74 
   OUTB 2 WORDS FROM OB(501), ABT 74  *OUTPUT ADDR./LENGTH
   FUNC CSTATUS, ABT 74 
   INB 1 WORDS TO IB(1), ABT 74       *INPUT HARDWARE STATUS
   IF(IB(1).AND.2000.EQ.0) RETURN           *EC=02********* 
   ERROR 24/02
   MSG EM TO LINE 8D
   GOTO 74
64 MSG 10 TO LINE 2 
   MSG 10 TO LINE 8D
   MSG 10 TO LINE 9D
   MSG 10 TO LINE 12D 
   MSG 10 TO LINE 13D 
   MSG 10 TO LINE 14D 
   MSG 10 TO LINE 15D 
   MSG 10 TO LINE 16D 
   MSG 10 TO LINE 17D 
   MSG 10 TO LINE 18D 
   MSG 10 TO LINE 19D 
   MSG 10 TO LINE 20D 
   RETURN 
* 
/---------PROCESS I/O DRIVER DETECTED ERRORS. 
* 
74 B7=B7+1                         *INCREMENT ERROR COUNT 
76 PICTURE
   HALT 
   MSG 25 TO PRINT
   GOSUB 64 
   ENDSUB 
   EXIT 
   END 30 
COMPILE                      FLM02F - STARTS FSC
   MODULE FLM99,6000,(10,11,12,45,56)LOCK 
1  FORMAT COPYRIGHT CONTROL DATA CORP. 1979 
2  PAUSE
   EXIT TO 99A
/         PARAMETERS
/ 
/ 
/ 
/         EXECUTIVE SWITCHES
/ 
/                            XXX1 - STOP ON ERROR 
/                            XXX2 - REPEAT MODULE 
/                            XXX4 - REPEAT CONDITION
/                            XX1X - SCOPE LOOP
/                            XX2X - DROP FLAG 
/                            XX4X - CHECKPOINT FLAG 
/                            X1XX - PRINT LOG 
/                            X2XX - DAYFILE LOG 
/                            X4XX - K/L DISPLAY ASSIGNED
/                            1XXX - STANDBY PP OPTION FLAG
/                            2XXX - REPEAT TEST 
/                            4XXX - TERMINAL MODE 
/ 
/ 
/         DIAGNOSTIC SWITCHES 
/ 
/                            XXX1 - STOP ON ERROR 
/                            XXX2 - REPEAT MODULE 
/                            XXX4 - REPEAT CONDITION
/                            XX1X - STOP AT BEGINNING OF CONDITION
/                            XX2X - STOP AT BEGINNING OF MODULE 
/                            XX4X - STOP AT BEGINNING OF TEST 
/                            X1XX - STOP END OF TEST
/                            X2XX - STOP END OF CONDITION 
/                            X4XX - END OF MODULE 
/                            1XXX - PROGRAMABLE SWITCH(R10) 
/                            2XXX - REPEAT TEST 
/                            4XXX - PROGRAMMABLE SWITCH(R11)
/ 
/         P0 - NOT USED 
/ 
/ 
/         P1 - MEMORY SIZE
/ 
/                            LEGAL PARAMETERS ARE_
/ 
/                            0000=16K (DEFAULT) 
/                            XXX1=16K 
/ 
/ 
/         P2 - NOT USED 
*         P3 - NOT USED 
/         P4 - DISABLES 
/ 
/                            XXX1 - DISABLE ERROR MESSAGE POSTING 
/ 
/ 
/         P5 - FIRST MODULE TO BE RUN IN THE SERIES 
/ 
/ 
/                            0000=MODULE 0 (DEFAULT)
/                            0001=MODULE 1
/                            0002=MODULE 2
/                            0003=MODULE 3
/                            0004=MODULE 4
/                            0005=MODULE 5
/                            0006=MODULE 6
/                            0007=MODULE 7
/                            ETC
/ 
/ 
/         P6 - TOTAL NUMBER OF MODULES TO BE RUN
/ 
/ 
/                            0000= ALL MODULES (DEFAULT)
/ 
   END 2
COMPILE,SOURCE               FLM99 - PARAMETER DOCUMENTATION
   MODULE FLM99A,6000,(10,11,12,45,56)LOCK
1  PAUSE
   EXIT 
/ 
/ 
/ 
/         NAME     DESCRIPTION
/         ----     -----------
/ 
/         FLM00  - CHECKS PARAMETERS
/ 
/         FLM01  - LOADS FSC RESIDENT TEST INTO THE FSC 
/         FLM01A - CALCULATES THE FSC TEST LENGTH 
/         FLM01B - REPORTS A PROCESSOR MASTER CLEAR ERROR 
/ 
/         FLM02  - MONITORS THE FSC RESIDENT TEST 
/         FLM02A - CREATES A PARAMETER BUFFER AND TEST STOP MASKS 
/         FLM02B - REPORTS TEST STOPS 
/         FLM02C - DISPLAYS NORMAL TEST STATUS
/         FLM02E - REPORTS ERRORS 
/         FLM02F - STARTS FSC PROCESSOR 
/ 
/ 
/ 
/ 
/ 
   END 1
COMPILE,SOURCE               FLM99A - DESCRIPTION DOCUMENTATION 
   MODULE FLM99B,6000,(10,11,12,45,56)LOCK
1  FORMAT COPYRIGHT CONTROL DATA CORP. 1979 
2  PAUSE
   EXIT 
*                         *THE NEXT CARD IS A CALL CDNDM CARD.
*CALL CDNDM 
   END 2
COMPILE,SOURCE
   MODULE FLM99C,6000,(10,11,12,45,56)LOCK
1  FORMAT COPYRIGHT CONTROL DATA CORP. 1979 
2  PAUSE
   EXIT 
*                         *THE NEXT CARD IS A CALL CDNDP CARD.
*CALL CDNDP 
   END 2
COMPILE,SOURCE
***       FLM - FSC LOADER AND MONITOR
***       APPLICATIONS
**
*         APPLICATIONS
*         ------------
* 
*          1. FLM CAN BE USED TO LOAD AND MONITOR ANY FSC RESIDENT TEST.
*             PROVIDED THE TEST IS WRITTEN TO INTERFACE WITH NDI AND
*             IS COMPILED BY COMPASS 2 ASSEMBLER. 
* 
* 
*          2. ALL MONITOR CONTROL IS IN EXECUTIVE SWITCH REGESTER.
* 
* 
*          3. ALL TEST CONTROL IS IN THE DIAGNOSTIC REGISTER. 
* 
* 
* 
*** 3.1.3 INTERFACES
**
*         INTERFACES
*         ----------
* 
*           COVERED IN DESCRIPTION DETAILED SECTION 3.1.2 
* 
* 
* 
*** 3.1.4 TEST ABORTS 
**
*   3.1.4 TEST ABORTS 
*         ----------- 
* 
*          COVERED BY EACH TEST ERS FOR FEDERAL STANDARD CHENNEL. 
* 
* 
* 
*** 3.1.5 SYSTEM ABORTS 
**
*   3.1.5 SYSTEM ABORTS 
*         ------------- 
* 
*          PROTECTED FROM CAUSING SYSTEM ABORTS BY MALET DRIVERS. 
* 
*                           SEE MALET MANUAL
* 
* 
* 
*** 3.1.6 ERRORS
**
*   3.1.6 ERRORS
*         ------
* 
*          SEE MESSAGES IN DETAILED DESCRIPTION SECTION 3.1.2 
* 
* 
* 
*** 3.1.7 PERFORMANCE 
**
*   3.1.7 PERFORMANCE 
*         ----------- 
* 
*          SEE EACH TEST ERS FOR PERFORMANCE INFORMATION. 
* 
* 
* 
*** 3.1.9 INSTALLATION PARAMETERS 
**
*   3.1.9 INSTALLATION PARAMETERS 
*         ----------------------- 
*** 4.0   PRODUCT LEVEL DESCRIPTION 
**
*   4.0   PRODUCT LEVEL DESCRIPTION 
*         ------------------------- 
* 
* 
* 
*   4.1   PUBLICATIONS AFFECTED 
*         --------------------- 
*** 4.2   EQUIPMENT CONFIGURATION 
**
*   4.2   EQUIPMENT CONFIGURATION 
*         ----------------------- 
* 
*          1. CONTROL DATA 6000, CYBER 70, OR CYBER 170 WITH NOS
*             OPERATING SYSTEM. 
* 
*          2. FEDERAL STANDARD CHANNEL ADAPTER. 
*** 4.3   INTERFACES TO OTHER SOFTWARE PRODUCTS 
**
*   4.3   INTERFACES TO OTHER SOFTWARE PRODUCTS 
*         ------------------------------------- 
* 
* 
*          1. FLM INTERFACES TO OPERATING SYSTEM THRU MALET.
* 
*          2. FLM INTERFACES TO FSC RESIDENT TEST THRU NDI. 
*** 4.4   SECURITY
**
*   4.4   SECURITY
*         --------
* 
*         SECURITY PROVIDED BY THE OPERATING SYSTEM.
* 
* 
* 
*** 5.0   RELIABILITY, AVAILABILITY AND MAINTAINABILITY STANDARDS 
**
*   5.0   RELIABILITY, AVAILABILITY AND MAINTAINABILITY STANDARDS 
*         ------------------------------------------------------- 
* 
* 
*         THIS IS A MONITOR PROGRAM AND THUS IS EXCEPT FROM RAM STANDARDS.
* 
* 
*** 6.0   GLOSSARY
**  6.0   GLOSSARY
*   6.0   GLOSSARY
*         --------
* 
*          FSC - FEDERAL STANDARD CHANNEL ADAPTER 
*          FLM - FSC LOADER AND MONITOR 
*          MALET - MAINTANCE APPLICATION LANAGUAGE FOR EQUIPMENT TESTING
*          ERS - EXTERNAL REFERENCE SPECIFICATION 
*          LCN - LOOSLEY COUPLED NETWORK
*          NAD - NETWORK ACCESS DEVICE
*          NDI - NAD DEVICE INTERFACE ALSO USED IN FSC
*          NDP - NAD RESIDENT PROCESSOR TEST USED IN FSC
*          NDM - NAD RESIDENT MEMORY TEST USED IN FSC 
